У нас: 141825 рефератів
Щойно додані Реферати Тор 100
Скористайтеся пошуком, наприклад Реферат        Грубий пошук Точний пошук
Вхід в абонемент



Реферат - Цифрові підписи
15
є, які зберігають 32-бітові числа. їхні початкові значення в шістнадцятковій системі такі:

а, b, с, d такі ж, як і в алгоритмі MD5, а є = c3d2elf0. Один цикл (на вхідному блоці довжини 512) описують так:

де значенняКi, наведені в шістнадцятковій системі, такі:

Функція ft, визначає32-бітове значення:

та

У кінці одного циклу отримують значення а, b, с, d, e, які додають до відповідних їм початкових значень, і переходять до опрацювання наступного блока Мi.

Значення хешувальної функції є послідовністю бітів конкатенації остаточних зна-чень у регістрах a b с d e (160 бітів).

Алгоритм RIPEMD-160

Алгоритм RIPEMD-160 (і його модифікації RIPEMD-128 і RIPEMD-160) створений за європейським проектом RIPE (Race Integrity Primitives Evaluation; швидке визна-чення примітивів цілісності) для використання поза США. Основою для цього алгорит-му взято алгоритм MD4.

RIPEMD-160 перетворює послідовності довільної довжини в стиснуті 160-бітові послідовності. Головні операції в цьому алгоритмі: додавання за модулем 232, циклічний зсув, а також побітові операції: сума за модулем 2, диз'юнкція, кон'юнкція, інверсія.

У табл. 5.1 наведено порівняльні характеристики швидкостей програмної реаліза-ції різних алгоритмів хешування.

Генерування коротких підписів

Ідеєю, яка дає змогу генерувати короткі підписи, є підписування замість самого документа М деякого значення Н(М), де Н є однонапрямленою хешувальною функцією. У цьому разі досягається додатковий ефект: підпис можна наводити, не оприлюднюючи самого змісту документа.

Підписи, утворені за допомогою алгоритму RSA

Сьогодні підписування за допомогою алгоритму RSA є одним із найпопулярніших методів генерування коротких підписів. Це підписування виконують так.

Для документа М обчислюють значення Н(М), де Я є фіксованою хешувальною функцією. Сторона Л шифрує Н(М) за допомогою свого приватного ключа, викорис-товуючи алгоритм RSA. Отримана криптограма - це цифровий підпис сторони А під до-кументом М.

Перевірка підпису сторони А потребує дешифрування цього підпису публічним ключем сторони А. Після дешифрування перевіряють, чи в результаті отримано Н(М).

Цифровий підпис Епь-Гамаля

Початкові умови. Вибирають просте число р та велике число g : 1 < g < р - 1. В ідеальному випадку g є твірною в Zp*. Кожен користувач А вибирає випадкове число а<р- 1, обчислює h = g mod p та виставляє g,p,h як публічний ключ. У цьому разі число а є приватним ключем особи А.

Генерування підпису. Особа А виконує підписування конкретного документа М так:

вибирає число r, яке взаємно просте з р - 1; обчислює S1 =gr mod p; обчислює r’ = r-1 mod (p - 1) (оскільки НСД(r, р - 1) = 1, то існує таке r’,
що r- r'=1 mod(p- 1)); обчислює s2 = (М – as1)- r' mod (p - 1), оскільки виконується порівняння
М = (as1 + rs2) mod (p - 1); подає (s1, s2) як підпис для документа М.

Верифікація підпису. Особа В перевіряє виконання порівняння gM = hs1gs2 (mod p). Зазначимо, що на підставі малої теореми Ферма

Цифровий підпис Ель-Гамаля має той недолік, що складається з двох чисел тієї ж величини, що й число р. Оскільки розкриття таких підписів ґрунтується на розв'язу-ванні задачі дискретного логарифмування за модулем р, то необхідне використання ве-ликих чисел р, наприклад з 1024 бітами у двійковому зображенні. У цьому випадку цифровий підпис Ель-Гамаля складатиметься із 2048 бітів.

Цифровий підпис Шнорра

Початкові умови. Вибирають велике просте число р таке, що р-1 має досить великий простий дільник q (рекомендованими є р > 2512, q > 2140). Також вибирають таке число h 1, що hq = l(mod p). Параметри р, q, h виставляють публічно.

Кожен користувач А вибирає випадкове число 1 < а < р - 1 та обчислює число v =(hq)-1 mod p. Зазначимо, що в цьому разі виконується порівняння ha v = 1(mod p). Сторона А виставляє число v як публічний ключ, а число а є її приватним ключем.

Генерування підпису. Особа А виконує підписування конкретного документа М так:

вибирає випадкове число 1 < r < q-1 обчислює X = hr mod p; обчислює S1 =f(MX), де f є деякою хешувальною функцією, MX означає конкатенацію М і X в один текст; обчислює s2 = (r + as1 )mod q подає (s1, s2) як підпис для документа М.

Верифікація підпису. З метою перевіряння підпису особа В виконує такі дії: обчислює Z = hs2vs1 modр; якщо s1 =f(MZ), то підпис є справжнім.

Коректність підписування ґрунтується на тому факті, що Z-X. Справді, вико-нуються такі рівності:

Алгоритм цифрового підпису DSA

Розглянемо алгоритм цифрового підпису DSA. (Digital Signature Algorithm).

О Початкові умови. Вибирають такі числа:

просте число р з L бітами в двійковому зображенні, де 512<L<1024 і 64IL; число q, яке є дільником числа р - 1 зі щонайменше 160 бітами у двійковому
зображенні; елемент h з множини Zp*, який має порядок q; випадкове число а, де а < q число b = ha(mod p).

Число а є приватним ключем алгоритму DSA, який слугує для утворення під-писів. Число b є публічним ключем, який відповідає числу а. Параметри р, q, h ви-ставляють публічно.

Генерування підпису. Власник ключа а підписує документ М в такий спосіб:

вибирає випадкове число 1 < r < q — 1; обчислює r' = r-1 mod q; обчислює s1 = (hr mod p) mod q; обчислює s2 =r’ (f(M)) + as1) mod q; подає пару (s1, s2) як підпис для документа М.

Зазначимо, що алгоритм DSA використовує хешувальну функцію SHA: ДМ) = SHA(M), що перетворює вхідну послідовність у послідовність довжини 160 бітів.

Верифікація підпису. З метою перевіряння підпису особа В виконує такі обчис-лення:

обчислює s' =
Сторінки: 1 2 3 4 5