- •1. Характеристика бази практики
- •2. 2. Мета переддипломної практики.
- •3. Індивідуальне завдання
- •4. Зміст та результати виконаних робіт.
- •4.1. Календарний план-графік науково-дослідної практики
- •4.2. Результати виконання індивідуального завдання.
- •4.2.1. Опис алгоритму шифрування rsa.
- •4.2.2. Алгоритм створення відкритого і секретного ключів
- •4.2.4. Результати роботи програми:
- •5. Висновки
- •4.2.3. Код програми
4.2. Результати виконання індивідуального завдання.
4.2.1. Опис алгоритму шифрування rsa.
Криптографічні системи з відкритим ключем використовують так звані односторонні функції, які мають наступну властивість:
Якщо відомо
,
то
обчислити
відносно простоЯкщо відомо
,
то для обрахування
нема простого(ефективного) шляху.
Під однобічністю розуміється не теоретична односпрямованість, а практична неможливість обчислити зворотне значення, використовуючи сучасні обчислювальні кошти, за доступний для огляду інтервал часу.
В основу криптографічного системи з відкритим ключем RSA покладена складність завдання факторизации твори двох великих простих чисел. Для шифрування використовується операція піднесення до степеня за модулем великого числа. Для дешифрування за розумний час (зворотної операції) необхідно вміти обчислювати функцію Ейлера від даного великого числа, для чого необхідно знати розкладання числа на прості множники.
В криптографічного системі з відкритим ключем кожен учасник має в своєму розпорядженні як відкритим ключем (англ. Public key), так і закритим ключем (англ. Private key). В криптографічного системі RSA кожен ключ складається з пари цілих чисел. Кожен учасник створює свій відкритий і закритий ключ самостійно. Закритий ключ кожен з них тримає в секреті, а відкриті ключі можна повідомляти кому завгодно або навіть публікувати їх. Відкритий і закритий ключі кожного учасника обміну повідомленнями в криптосистеме RSA утворюють «узгоджену пару» в тому сенсі, що вони є взаємно зворотними, тобто:
допустимих
пар відкритого та закритого ключів
відповідні
функції шифрування
і
розшифрування
такі,
що
повідомлень
,
де
—
множина допустимих значень,
4.2.2. Алгоритм створення відкритого і секретного ключів
RSA-ключі генеруються таким чином:
1. Вибираються два різних випадкових простих числа і заданого розміру (наприклад, 1024 біта кожне).
2.
Обчислюється їх
,
який називається модулем.
3. Обчислюється значення функції Ейлера від числа:
4.
Вибирається ціле число
(
),
взаємно просте зі значенням функції.
Звичайно як беруть прості числа, що
містять невелику кількість одиничних
біт в двійковій запису, наприклад, прості
числа Ферма 17, 257 або 65 537.
• Число називається відкритою експонентою (англ. Public exponent)
• Час, необхідний для шифрування з використанням швидкого зведення в ступінь, пропорційно числу одиничних біт в.
• Занадто малі значення , наприклад 3, потенційно можуть послабити безпеку схеми RSA.
5.
Обчислюється число
,
мультиплікативно зворотне до числа
по модулю
,
тобто число, яке задовольняє умові:
• Число називається секретної експонентою. Зазвичай, воно обчислюється за допомогою розширеного алгоритму Евкліда.
6.
Пара
публікується в якості відкритого ключа
RSA (англ. RSA public key).
7.
Пара
грає роль закритого ключа RSA (англ. RSA
private key) і тримається в секреті.
Етап |
Опис операцій |
Результат операцій |
Генерація ключів |
Вибрати два різних простих числа |
|
Обрахувати модуль |
|
|
Обрахувати функцію Ейлера |
|
|
Вибрати відкриту експоненту |
|
|
Обрахувати секретну експоненту |
|
|
Опублікувати відкритий ключ |
|
|
Зберегти закритий ключ |
|
|
Шифрование |
Вибрати текст для шифрування |
|
Зашифрувати повідомлення |
|
|
Расшифрование |
Розшифрувати повідомлення |
|
