
Схема Ель-Гамаля
План:
1 Генерація ключів
2 Робота в режимі шифрування
2.1 Шифрування
2.2 Розшифрування
2.3 Схема шифрування
2.4 Приклад
3 Робота в режимі підпису
3.1 Підпис повідомлень
3.2 Перевірка підпису
3.3 Приклад
4 Криптостійкість і особливості Примітки
Введення
Введення
Схема Ель-Гамаля (Elgamal) - криптосистема з відкритим ключем, заснована на труднощі обчислення дискретних логарифмів в кінцевому полі. Криптосистема включає в себе алгоритм шифрування і алгоритм цифрового підпису. Схема Ель-Гамаля лежить в основі стандартів електронного цифрового підпису в США ( DSA) і Росії ( ГОСТ Р 34.10-94).
Схема була запропонована Тахер Ель-Гамалем в 1984. [1] Ель-Гамаль розробив один із варіантів алгоритму Діффі-Хеллмана. Він удосконалив систему Діффі-Хеллмана і отримав два алгоритми, які використовувалися для шифрування і для забезпечення аутентифікації. На відміну від RSA алгоритм Ель-Гамаля не був запатентований і, тому, став більш дешевою альтернативою, оскільки не вимагалася оплата внесків за ліцензію. Вважається, що алгоритм потрапляє під дію патенту Діффі-Хеллмана.
1. Генерація ключів
Генерується випадкове просте число довжини бітів.
Вибирається випадкове ціле число таке, що .
Вибирається випадкове ціле число таке, що .
Обчислюється .
Відкритим ключем є трійка , Закритим ключем - число .
2. Робота в режимі шифрування
- Шіфрсістема Ель-Гамаля є фактично одним із способів вироблення відкритих ключів Діффі - Хеллмана. Шифрування за схемою Ель-Гамаля не слід плутати з алгоритмом цифрового підпису за схемою Ель-Гамаля.
2.1. Шифрування
Повідомлення шифрується таким чином:
Вибирається сесійний ключ - випадкове ціле число таке, що
Обчислюються числа і .
Пара чисел є шіфротекста.
Неважко бачити, що довжина шіфротекста в схемі Ель-Гамаля довше вихідного повідомлення вдвічі.
2.2. Розшифрування
Знаючи закритий ключ , Вихідне повідомлення можна обчислити з шіфротекста за формулою:
При цьому неважко перевірити, що
і тому
- .
Для практичних обчислень більше підходить наступна формула:
2.3. Схема шифрування
2.4. Приклад
Шифрування
Припустимо що потрібно зашифрувати повідомлення .
Зробимо генерацію ключів:
нехай . Виберемо - Випадкове ціле число таке, що .
Обчислимо .
Отже, відкритим є трійка , А закритим ключем є число .
Вибираємо випадкове ціле число таке, що 1 .
Обчислюємо число .
Обчислюємо число .
Отримана пара є шіфротекста.
Розшифрування
Необхідно отримати повідомлення за відомим шіфротекста і закритому ключу .
Обчислюємо M за формулою:
Отримали вихідне повідомлення .
Так як в схему Ель-Гамаля вводиться випадкова величина , То шифр Ель-Гамаля можна назвати шифром багатозначної заміни. Через випадковості вибору числа таку схему ще називають схемою імовірнісного шифрування. Імовірнісний характер шифрування є перевагою для схеми Ель-Гамаля, так як у схем імовірнісного шифрування спостерігається більша стійкість в порівнянні зі схемами з певним процесом шифрування. Недоліком схеми шифрування Ель-Гамаля є подвоєння довжини зашифрованого тексту в порівнянні з початковим текстом. Для схеми імовірнісного шифрування саме повідомлення і ключ не визначають шіфротекст однозначно. У схемі Ель-Гамаля необхідно використовувати різні значення випадкової величини для шифровки різних повідомлень і . Якщо використовувати однакові , То для відповідних шіфротектов і виконується співвідношення . З цього виразу можна легко обчислити , Якщо відомо .
3. Робота в режимі підпису
Цифровий підпис служить для того щоб можна було встановити зміни даних і щоб установити дійсність підписаного сторонами. Одержувач підписаного повідомлення може використовувати цифровий підпис для доказу третій стороні того, що підпис дійсно зроблена отправляющей стороною. При роботі в режимі підпису передбачається наявність фіксованої хеш-функції , значення якої лежать в інтервалі .
3.1. Підпис повідомлень
Для підпису повідомлення виконуються наступні операції:
Обчислюється дайджест повідомлення :
Вибирається випадкове число взаємно просте з і обчислюється
Обчислюється число .
Підписом повідомлення є пара .
3.2. Перевірка підпису
Знаючи відкритий ключ , Підпис повідомлення перевіряється наступним чином:
Перевіряється здійснимість умов: і . Якщо хоча б одне з них не виконується, то підпис вважається невірною.
Обчислюється дайджест
Підпис вважається вірною, якщо виконується порівняння:
3.3. Приклад