Умови та обмеження для даних, що вводяться користувачем (додаткові перевірки):
1) p і q - повинні бути простими числами;
2) rи Kc - повинні бути взаімнопростимі числами.
У програмній реалізації всі операції, такі як додавання, множення, ділення, різниця, повинні виконуватися за допомогою арифметики з довгими числами. Також існує ряд процедур, для прискорення роботи деяких операцій з довгими числами, такі як:
. алгоритм Евкліда;
. алгоритм швидкого зведення в ступінь по модулю.
Загальний вигляд алгоритму:
В
У бл.4 і здійснюється отримання секретного ключа, при шифруванні, на підставі якого файл можна буде дешифрировать.
Отримання секретного ключа K cосуществляется наступним чином:
знаходиться значення функції Ейлера від r, яке далі передається у функцію Евкліда разом зі значенням відкритого ключа Ко (див. додаток 4).
2.2 Дешифрування
Для розшифрування шіфротекста необхідно скористатися значенням Кс, а також необхідно знати значення r. Тобто ключем буде пара значень - (Кс, r). p> Інші ж значення: Pи q - зберігаються в секреті. Так само користувач, який буде намагатися справити дешифрацию файлу, буде мати при собі значення відкритого ключа Ко. p> Дешифрування проводиться шляхом зведення шіфротекста в ступінь закритого ключа Kс за модулем r.
Отримання вихідного тексту з зашифрованого можливо за рахунок того, що має виконуватися властивість відкритого та закритого ключів, для яких має виконуватися рівність:
(Kо В· Kс) mod? (r) = 1,
де? (r) - функція Ейлера від r. p> Якщо ж який-небудь користувач вирішить зламати даний шифр, то він зіткнеться з необхідністю методом підбору визначати шукане значення функції Ейлера, тобто розкладати на прості множники велике число r.
На сьогоднішній день дана задача не має ефективного вирішення, а використання традиційних методів пошуку множників для чисел розмірністю порядка22048 не дозволяє здійснити злом криптосистеми за розумний час. p> Саме числа порядку 22048рекомендуется використовувати в даному алгоритмі.
3. Порівняльний аналіз
Принципова відмінність криптосистеми RSA від симетричних криптосистем полягає в тому, що розкриття ключа, яким було вироблено шифрування, не тягне за собою розкриття початкового тексту. Даний факт допускає пересилання ключа шифрування без використання будь-яких захищених каналів зв'язку. Це забезпечується властивістю криптосистеми RSA, відповідно до якого використаний для шифрування даних відкритий ключ не підходить для їх розшифрування. Для розшифрування використовується закритий ключ, який не може бути отриманий з відкритого. (В.Н. Ярмолік) <...