Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Криптографія.doc
Скачиваний:
38
Добавлен:
18.08.2019
Размер:
1.28 Mб
Скачать

39. Шифрування і Дешифрування в криптосистемы rsa

Шифрування. Вихідне повідомлення розбивається на блоки М. однакової довжини. Кожен блок представляється у вигляді великого десяткового числа, менше п, і шифрується окремо. Шифрування блока М (М- десяткове число) здійснюється за наступною формулою:

де С- шифроблок, що відповідає блоку відкритого повідомлення М. Шифрблоки з'єднуються в шифрограму.

Дешифрування. При дешифруванні шифрограма розбивається на блоки відомої довжини і кожен шифрблок дешифрується окремо за наступною формулою:

Функція хешування. Функцією хешування називається перетворення даних, що переводить рядок бітів М довільної довжини в рядок бітів h (M) деякої фіксованої довжини (кілька десятків чи сотень біт). Хеш-функція h (M) повинна задовольняти наступним умовам:

■=> хеш-функція h (M) повинна бути чутливою до будь-яких змін вхідної послідовності М;

•=> для даного значення h (M) повинно бути неможливо знайти значення м- ^ для даного значення h (M) повинно бути неможливо знайти значення М №М таке, щоіі(М') =h(M) .

Ситуація, за якої для різних вхідних послідовностей М, М співпадають значення їх хеш-образів: називається колізією При побудові хеш-образу, вхідна послідовність М розбивається на блоки А/ фіксованої довжини і оброблгється поблочно за формулою:

Хеш-значення, що обчислюється при введенні останнього блоку повідомлення, стає хеш-значенням всього повідомлення. В якості прикладу розглянемо спрощений варіант хеш-функціїіз рекомендацій МККТТХ.509: де п = pq, piq- великі прості числа, HQ - довільний початковий вміст, А/ - /-тий блок повідомлення М-М1М2... Мк.

44. Генерування ключів в криптосистемі Рабіна

Генерація ключа

Як будь-яка асиметрична криптосистема, система Рабіна використовує і відкритий і закритий ключі. Відкритий ключ необхідний для шифрування документів і може бути опублікований для загального огляду. Закритий ключ повинен бути відомий тільки одержувачам зашифрованих повідомлень.

Процес генерації ключів наступний:

Вибираються два великих простих числа p і q, які задовольняють умові . Такий спеціальний вид простих чисел сильно прискорює процедуру вилучення коренів за модулем р і q. Тоді n - відкритий ключ. Числа p і q - закритий ключ.

Для шифрування повідомлення необхідний відкритий ключ n. Щоб розшифрувати зашифрований текст потрібні p і q.

Розглянемо простий приклад. Нехай p=7 і q=77, тоді n=77 . Відкритий ключ, 77, публікується для загального огляду, за допомогою його шифруються повідомлення. Закриті ключі, 7 та 11, залишаються відомі тільки власникові, і за допомогою їх розшифровуються повідомлення. Такий вибір ключів - добре підходить для прикладу. Але поганий для практичного використання, тому що розкладання на множники 77 тривіально.

Шифрування

Для шифрування використовується тільки відкритий ключ n. За допомогою його вихідний текст перетворюється в зашифрований. Для шифрування повідомлення m потрібно просто обчислити:

.

Таким чином, шифрування складається з операції множення по модулю N, що забезпечує більш високу швидкість шифрування, ніж в RSA , навіть якщо в останній вибирають невелику шифруючу експоненту.

У нашому прикладі. Нехай вихідним текстом є m=20. Тоді зашифрованим текстом буде:

Розшифрування

Розшифрування в цьому алгоритмі більш складне. Для нього потрібен закритий ключ p і q. Процес виглядає наступним чином: Спочатку, використовуючи алгоритм Евкліда , з рівняння знаходимо числа і .

Далі, використовуючи китайську теорему про залишки , можна обчислити числа.

Один з цих коренів r,-r, s,-s є істинним відкритим текстом m.

Повернемося в нашому прикладу: В результаті розшифровки отримуємо: . Бачимо, що один з коренів є вихідним текстом m.