Шифрування з секретним ключем

Информация - Компьютеры, программирование

Другие материалы по предмету Компьютеры, программирование




РЕФЕРАТ З ТЕМИ:

Шифрування з секретним ключем

1. Шифрування з секретним ключем

Алгоритм RSA СФ алгоритмом асиметричноi криптографii. Вiн був запропонований трьома дослiдниками-математиками Рональдом Ривестом (R. Rivest) , Ади Шамиром (A. Shamir) i Леонардом Адльманом (L. Adleman) в 1977-78 роках.

Першим етапом будь-якого асиметричного алгоритму СФ створення пари ключiв: вiдкритого i закритого та поширення вiдкритого ключа "по усьому свiту". Для алгоритму RSA етап створення ключiв складаСФться з наступних операцiй:

  1. Вибираються два простих числа p та q
  2. ОбчислюСФться iх добуток n=(p*q)
  3. ВибираСФться довiльне число e (e<n), таке, що НОД(e,(p-1)(q-1))=1, тобто e повинне бути взаСФмно простим iз числом (p-1)(q-1).
  4. Методом РДвклiда в цiлих числах знаходиться рiшення рiвняння e*d+(p-1)(q-1)*y=1. Тут невiдомими СФ змiннi d i y - метод Евклiда саме i знаходить безлiч пар (d,y), кожна з яких СФ рiшенням рiвняння в цiлих числах.
  5. Два числа (e,n) - публiкуються як вiдкритий ключ.
  6. Число d зберiгаСФться в найсуворiшому секретi - це i СФ закритий ключ, що дозволить читати всi послання, зашифрованi за допомогою пари чисел (e,n).

Як же виробляСФться шифрування за допомогою цих чисел:

  1. Вiдправник розбиваСФ своСФ повiдомлення на блоки, рiвнi k=[log2(n)] бiт, де квадратнi дужки позначають узяття цiлоi частини вiд дробового числа.
  2. Подiбний блок може бути iнтерпретований як число з дiапазону (0;2k-1). Для кожного такого числа (назвемо його mi) обчислюСФться ci=((mi)e)mod n. Блоки ci i СФ зашифроване повiдомлення РЗх можна спокiйно передавати по вiдкритому каналу, оскiльки операцiя зведення в ступiнь по модулi простого числа, СФ необоротним математичним завданням. Зворотна iй операцiя "логарифмування в кiнцевому полi" СФ на кiлька порядкiв бiльше складним завданням. Тобто навiть, якщо зловмисник знаСФ числа e i n, те по ci прочитати вихiднi повiдомлення mi вiн не може нiяк, крiм як повним перебором mi.

А от на прийомнiй сторонi процес дешифрування все-таки можливий, i допоможе нам у цьому збережене в секретi число d. Досить давно була доведена теорема Ейлера, окремий випадок якоi затверджуСФ, що якщо число n представимо у виглядi двох простих чисел p i q, то для будь-якого x маСФ мiiе рiвнiсть (x(p-1)(q-1))mod n = 1. Для дешифрування RSA-повiдомлень скористаСФмося цiСФю формулою. Зведемо обидвi ii частини в ступiнь (-y): (x(-y)(p-1)(q-1))mod n = 1(-y) = 1. Тепер помножимо обидвi ii частини на x: (x(-y)(p-1)(q-1)+1)mod n = 1*x = x.

А тепер згадаСФмо як ми створювали вiдкритий i закритий ключi. Ми пiдбирали за допомогою алгоритму Евклiда d таке, що e*d+(p-1)(q-1)*y=1, тобто e*d=(-y)(p-1)(q-1)+1. А отже в останнiй рiвностi попереднього абзацу ми можемо замiнити показник ступеня на число (e*d). ОдержуСФмо (xe*d)mod n = x. Тобто для того щоб прочитати повiдомлення ci=((mi)e)mod n досить звести його в ступiнь d по модулi m: ((ci)d)mod n = ((mi)e*d)mod n = mi.

Операцii зведення в ступiнь бiльших чисел досить трудомiсткi для сучасних процесорiв, навiть якщо вони виробляються по оптимiзованим за часом алгоритмам. Тому звичайно весь текст повiдомлення кодуСФться звичайним блоковим шифром (набагато бiльше швидким), але з використанням ключа сеансу, а от сам ключ сеансу шифруСФться саме асиметричним алгоритмом за допомогою вiдкритого ключа одержувача i мiститься в початку файлу.

2. Характеристики стандартних алгоритмiв шифрування з секретним ключем

2.1 Симетричне шифрування

Свою iсторiю алгоритми симетричного шифрування ведуть зi стародавностi: саме цим способом приховання iнформацii користувався римський iмператор Гай Юлiй Цезар в I столiттi до н.е., а винайдений iм алгоритм вiдомий як "криптосистема Цезаря".

У наш час найбiльш вiдомий алгоритм симетричного шифрування DES (Data Encryption Standard), розроблений в 1977 р. Донедавна вiн був "стандартом США", оскiльки уряд цiСФi краiни рекомендував застосовувати його для реалiзацii рiзних систем шифрування даних. Незважаючи на те, що DES планувалося використати не бiльше 10-15 рокiв, його замiнили тiльки в 1997 р.

Основна причина замiни стандарту шифрування - його вiдносно слабка криптостойкiсть, причина якоi в тiм, що довжина ключа DES становить усього 56 значущий бiт. Вiдомо, що будь-який криптостiйкий алгоритм можна зламати, перебравши усi можливi варiанти ключiв шифрування (так званий метод грубоi сили - brute force attack). Легко пiдрахувати, що кластер з 1 млн. процесорiв, кожний з яких обчислюСФ 1 млн. ключiв у секунду, перевiрить 256 варiантiв ключiв DES майже за 20 ч. А оскiльки по нинiшнiх мiрках такi обчислювальнi потужностi цiлком реальнi, ясно, що 56-бiтовий ключ занадто короткий i алгоритм DES необхiдно замiнити на бiльш ефективний.

Сьогоднi усе ширше використовуються два сучасних крипостiйких алгоритми шифрування: вiтчизняний стандарт ГОСТ 28147-89 i новий криптостандарт США - AES (Advanced Encryption Standard).

2.2 Стандарт ГОСТ 28147-89

Алгоритм, обумовлений ГОСТ 28147-89 (рис. 1), маСФ довжину ключа шифрування 256 бiт. Вiн шифруСФ iнформацiю блоками по 64 бiт (такi алгоритми називаються блоковими), якi потiм розбиваються на два субблоки по 32 бiт (N1 i N2). Субблок N1 обробляСФться певним чином, пiсля чого його значення складаСФться зi значенням субблока N2 (додавання виконуСФться по модулю 2, тобто застосовуСФться логiчна операцiя XOR - "виключне або"), а потiм субблоки мiняються мiiями. Дане перетворення виконуСФться певне число разiв ("раундiв"): 16 або 32 залежно вiд режиму роботи алгоритму. У кожному рау?/p>