Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОЗІ / Лекц_ї / Лекц_я 12.doc
Скачиваний:
51
Добавлен:
05.06.2015
Размер:
129.54 Кб
Скачать

Криптоаналіз алгоритмів з відкритим ключем

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

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

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

Нарешті, існує форма атаки, специфічна для способів використання систем з відкритим ключем. Це атака ймовірного повідомлення. Припустимо, наприклад, що повідомлення, яке посилається, складається винятково з 56-бітного ключа сесії для алгоритму симетричного шифрування. Супротивник може зашифрувати всі можливі ключі, використовуючи відкритий ключ, і може дешифрувати будь-яке повідомлення, що відповідає переданому зашифрованому тексту. Таким чином, незалежно від розміру ключа схеми відкритого ключа, атака зводиться до лобової атаки на 56-бітний симетричний ключ. Захист від подібної атаки складається в додаванні певної кількості випадкових біт у прості повідомлення.

Обговорення криптоаналізу rsa

Можна визначити чотири можливих підходи для криптоаналізу алгоритму RSA:

  1. Лобова атака: перебрати всі можливі закриті ключі.

  2. Розкласти n на два простих співмножники. Це дасть можливість обчислити Φ(n) = ( p-1) · (q-1) и d = e-1 (mod Φ(n)).

  3. Визначити Φ(n) безпосередньо, без початкового визначення р и q. Це також дасть можливість визначити d = e-1 (mod Φ(n)).

  4. Визначити d безпосередньо, без початкового визначення Φ(n).

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

Більшість дискусій про криптоаналізі RSA фокусується на задачі розкладання n на два простих співмножники. У цей час невідомі алгоритми, за допомогою яких можна було б розкласти число на два простих множники для дуже великих чисел (тобто кілька сотень десяткових цифр). Кращий з відомих алгоритмів дає результат, пропорційний:

L (n) = esqrt (ln n * ln (ln n))

Поки не розроблені кращі алгоритми розкладання числа на прості множники, можна вважати, що величина n від 100 до 200 цифр у цей час є досить безпечною. На сучасному етапі вважається, що число з 100 цифр може бути розкладене на множники за час порядку двох тижнів. Для дорогих конфігурацій (тобто порядку $10 млн) число з 150 цифр може бути розкладене приблизно за рік. Розкладання числа з 200 цифр перебуває за межами обчислювальних можливостей. Наприклад, навіть якщо обчислювальний рівень в 1012 операцій у секунду досяжний, що вище можливостей сучасних технологій, то буде потрібно понад 10 років для розкладання на множники числа з 200 цифр із використанням існуючих алгоритмів.

Для відомих у цей час алгоритмів задача визначення (n) по даним е и n, принаймні, порівнянна за часом із задачею розкладання числа на множники.

Для того щоб уникнути вибору значення n, що могло б легко розкладатися на співмножники, на р и q повинне бути накладене багато додаткових обмежень: р и q повинні друг від друга відрізнятися по довжині тільки декількома цифрами. Таким чином:

  • Обоє значення р и q повинні бути від 1075 до 10100.

  • Обоє числа (р - 1) і (q - 1) повинні містити великий простий співмножник.

  • gcd (p -1, q - 1) повинен бути маленьким.

Соседние файлы в папке Лекц_ї