Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка1_new.doc
Скачиваний:
6
Добавлен:
06.05.2019
Размер:
1.63 Mб
Скачать

Контрольні питання:

  1. Криптографія та криптоаналіз. Їх мета та задачі.

  2. Основні методи шифрування та їх суть.

  3. Основні способи криптоаналітичних атак.

  4. Основні методи криптоаналізу.

Література:

1.

2.

3.

Лабораторна робота № 4

Тема. Асиметричні шифри та їх криптоаналіз

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

Завдання для самостійної підготовки

Користуючись конспектом лекцій і літературою, що рекомендується, проробити наступні питання:

– вимоги до асиметричних шифрів та основні методи асиметричного шифрування;

– основні методи криптоаналізу асиметричних шифрів.

Короткі теоретичні відомості

Суть асиметричних систем полягає в тому, що кожним адресатом генеруються два пов'язані між собою ключі. Перший з них є відкритим. З його допомогою повідомлення можна лише зашифрувати, але неможливо розшифрувати. Відкритий ключ передається по відкритому каналу зв’язку всім потенційним кореспондентам. Другий ключ є закритим (секретним). З його допомогою повідомлення можна лише розшифрувати. Секретний ключ зберігається в таємниці в місці його генерації.

В асиметричних системах (системах з відкритим ключем) має бути неможливим наступне:

1. Відновлення відкритого тексту на основі відкритого ключа.

2. Визначення закритого ключа на основі відкритого ключа.

Криптографічні системи з відкритим ключем базуються на існуванні так званих необоротних або однобічних функцій y = f(x), що мають наступну властивість: при відомому значенні x обчислити значення y відносно легко (в розумінні потрібної кількості операцій), однак при відомому y немає простого шляху обчислення значення x.

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

Асиметричні криптоалгоритми використовуються для вирішення наступних задач захисту інформації:

1. Як самостійні засоби шифрування даних при їх передачі й зберіганні.

2. Як засоби розподілу ключів. (При однаковій довжині ключа асиметричні криптоалгоритми є більш трудомісткими і менш стійкими, ніж симетричні. Тому практично за їх допомогою раціонально розподіляти ключі для симетричних криптосистем (обсяг яких, як інформації, незначний) по відкритих каналах, а потім, за допомогою симетричних криптоалгоритмів здійснювати обмін великими інформаційними потоками).

3. Як засоби аутентифікації користувачів.

Найбільш розповсюдженим асиметричним криптоалгоритмом є алгоритм RSA (за прізвищами його авторів – Rivest, Shamir, Adleman) стійкість якого базується на обчислювальній складності задачі розкладу на множники великого числа.

Алгоритм RSA.

Нехай користувач А хоче передати користувачу В зашифроване повідомлення.

Для цього користувач В:

1) обирає два довільних великих простих числа p і q і тримає їх в таємниці (при сучасних обчислювальних потужностях комп’ютерів для забезпечення достатньої для практики криптостійкості ці числа повинні бути приблизно однакової розрядності і мати довжину 200 і більше десяткових розрядів. Для спрощення обчислень в даній лабораторній роботі приймемо p=3, q=11);

2) обчислює значення модуля n=pq (n=3·11=33);

3) обчислює функцію Ейлера (n)=(p-1)(q-1) ((n)=2·10=20) і вибирає випадкове число е взаємно просте з (N) – відкритий ключ (нехай e=7);

4) обчислює значення закритого ключа d, що задовольняє умові ed≡1(mod φ(n)), наприклад, з допомогою розширеного алгоритму Евкліда (в нашому випадку 7·d = k·20 + 1, звідки при k = 1, d = 3);

5) пересилає користувачу А пару чисел (e, n) по незахищеному каналу.

При цьому користувач А:

1) розбиває вихідний відкритий текст М (наприклад "ключ") у цифровому вигляді (в нашому випадку М=13142926) на блоки, кожний з яких є числом з діапазону mi = 0, 1, …, n-1 (в нашому випадку m1 = 13, m2 = 14, m3= 29, m4 = 26);

2) за допомогою відкритого ключа e шифрує текст, представлений у вигляді послідовності чисел mi, за формулою ci = mie mod n (в нашому випадку с1 = 137mod 33=07, с2 = 20, с3 = 17, с4 = 05);

3) відправляє криптограму C={ci} (в нашому випадку С=07201705) користувачу В.

Користувач В розшифровує прийняту криптограму C, використовуючи закритий ключ d за формулою mi=cid mod n (в нашому випадку m1 = 73mod 33=13 і т.д).

У результаті буде отримана послідовність чисел {mi}, що являють собою вихідне повідомлення М.

Зловмисник знає значення e, n, ci, але не знає d. Задача визначення числа d зводиться до задачі розкладу на множники числа n. Після цього можна буде знайти (n) і обчислити d. Таким чином законний користувач знаючи закритий ключ може досить легко розшифрувати повідомлення. Зловмисник, не маючи закритого ключа, повинен вирішити задачу великої обчислювальної складності для його знаходження.