Реферат: Основи криптографії

Таблиця 1. Таблиця заміни при шифруванні.

А Б В Г Д Е Ж З И Й К Л М Н О П Р С
00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17
Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32

Одним з відомих алгоритмів дешифрування системи RSA є метод ітерацій. Згідно з ним вихідне повідомлення можна отримати з шифрованого повторним шифруванням доти поки не отримаємо відкритий текст.

Приклад 1 . Нехай р =383, q = 563, n =215629, E =49. В цьому випадку відкритий текст повністю отримується уже через 10 ітерацій повторного шифрування. Щоби в цьому впевнитися, достатньо довести, що 4910 =1 mod (p -1)(q -1). Виконання цієї рівності можна перевірити навіть на калькуляторі: (494 =5764801 -> 494 =183017 mod 214684 … 499 =56957 mod 214684 -> 4910 = 1 mod 214684).

Інший метод атаки на шифр RSA – метод розкриття чисел p і q . Справа в тому, що n=pq (як і самі ці числа p і q ) повинні бути досить великими, щоби розкласти його на множники було дуже складно (в цьому і полягає складність цього алгоритму шифрування). Бажано, щоби p і q вибиралися випадковим чином і не були „дуже близькими” одне до одного. Покажемо, яким чином можна використати близькість значень p і q. Будемо вважати, що p > q (що не накладає зайвих обмежень). Тоді для величин x =( p + q )/2, y =( pq )/2 справедливе співвідношення: x 2 -y 2 =n . Перебираючи у порядку зростання варіанти x >, легко знайти розв’язок рівняння x 2 -y 2 =n , так як x =( p + q )/2 буде близьким до у випадку близькості p і q .

Приклад 2 . Нехай n =pq =851. Використаємо описаний спосіб для знаходження p і q . Так як =29.17, беремо x =30 і обчислюємо 302 -851=49 і з першої спроби знаходимо розв’язок x =30 і y =7. Таким чином, p =30+7=37, q =30-7=23.

Крім вказаних обмежень на p , q , E , D накладаються й інші обмеження.

Система шифрування RSA може бути застосована для цифрового підпису. У випадку підпису повідомлення М відправник обчислює P=ME mod n . Отримувач, який має М та Р , перевіряє справедливість співвідношення РD =М mod n і впевнюється у справжності повідомлення М .

Приклад 3 . Нехай p =3, q =11, n =3x11=33, E =7, D =3. Тоді відправник повідомлення М =”02” обчислює цифровий підпис Р =27 mod 33=29 і відправляє повідомлення „02, 29” отримувачу. Той, в свою чергу, перевіряє справжність повідомлення „02”, обчисливши М=(293 ) mod 33=2.

Насправді підписують не саме повідомлення, а його т.зв. хеш-функцію. Спочатку оригінальне повідомлення обробляється деякою функцією, яка має таку властивість, що приймає на вході рядки різної довжини, а на виході видає деякий „дайджест”, як правило, однакової і меншої, ніж вхідна, довжини. Хеш-функція виконує математичні обчислення, у результаті яких обчислюється значення хеш-функції. Хеш-функція може бути дуже простою. Наприклад, вона може виконати підсумовування всіх одиниць двійкового коду, або додати значення кодів всіх літер рядка, що обробляється (т.зв. контрольна сума) і т.д. Головне полягає в тому, що значення хеш-функції повинно залежати від усього вхідного рядка, щоби не можна було (в крайньому разі було б дуже важко) підібрати два різних вхідних рядки з однаковим значенням хеш-функції. Якщо таке трапляється, то кажуть що виникла колізія. Ми будемо користуватися найпростішою хеш-функцією, яка дуже недосконала і може викликати значні колізії. Однак, вона дуже проста і не потребує витрат машинного часу, а також складного програмування. Ця функція просто сумує всі значення символів за табл. 1 за модулем 33:

H(M)= (3)

До отриманого таким чином числа застосовують алгоритм прикладу 3, отримуючи, таким чином, зашифрований цифровий підпис. Отримувач, маючи повідомлення і цифровий підпис, розшифровує текст повідомлення, знаходить хеш-функцію від нього за формулою (3), розшифровує цифровий підпис, і порівнює отримані значення. Якщо вони однакові, повідомлення і цифровий підпис є істинними.

Проблема адміністрування криптографічними ключами вважається основним недоліком симетричних криптоалгоритмів. Цю проблему можна вирішити за допомогою асиметричної криптографії, тобто взагалі не використовувати симетричні криптоалгоритми. Однак такий підхід вважають нераціональним, оскільки асиметричні алгоритми працюють значно повільніше за симетричні і не можуть використовуватися у ряді важливих криптографічних застосувань. Іншим способом розповсюдження ключів є специфічні алгоритми, розроблені спеціально для таких застосувань. Одним з таких алгоритмів відкритого розповсюдження ключів є алгоритм Діффі-Хеллмана. Нехай учасники інформаційного обміну, сторони А і В, домовилися використати цей алгоритм для обміну ключами. Для цього необхідно виконати наступні обчислення. Спочатку А і В обирають велике просте число р , модуль системи. Для цього числа р обирають первісний корінь а . Числа р і а відкрито передають по каналах зв‘язку, так щоб їх мали обидві сторони.

Далі виконується наступний протокол:

a. А генерує ціле велике випадкове число х і відправляє В число:

;

2) В генерує велике ціле випадкове число у і відправляє А число:

;

3) А обчислює:

4) В обчислює:

.

І k , і k’ дорівнюють .

Отже сторони А і В отримали один і той самий криптографічний ключ, не пересилаючи його каналами зв‘язку. Ніхто з осіб, що прослуховують цей канал, не зможе обчислити значення ключа. Адже їм відомі тільки p , a , X , Y , а для знаходження ключа необхідно розв‘язати задачу дискретного логарифмування. Тому А і В мають цілком таємний ключ, який більше ніхто не знає.Вибір а і р може помітно впливати на безпеку системи. Найголовніше, це те, що р повинно бути великим, таким, щоби задача дискретного логарифмування у скінченому полі була складною обчислювальною проблемою. Можна обирати довільне а , яке є первісним коренем за модулем р ; немає причин, за якими не можна було б обрати а найменшим з можливих, навіть однорозрядним. Навіть необов‘язково, щоби а було первісним коренем, воно повинно лише утворювати досить велику підгрупу мультиплікативної групи за модулем р .Програмний генератор двійкових послідовностей BBS (назву утворено від перших літер його авторів – Ленори та Мануеля Блум та Майка Шуба, Blum-Blum-Shub) вважають одним з найсильніших програмних генераторів псевдовипадкових послідовностей. Він вважається криптографічно стійким, і може використовуватися у серйозних криптографічних застосуваннях [2].

Нехай є два простих числа, p i q , причому pq ≡3 mod 4. Добуток цих чисел n=pq називається цілим числом Блума. Оберемо ще одне випадкове число, х , взаємно просте з n та обчислимо x 0x mod n . Це число вважається стартовим числом генератора.Далі можна обчислити наступні біти послідовності за формулою: x ix i-1 2 mod n та s ix i mod 2. Останнє визначає, що в якості виходу генератора обирається молодший біт числа x і . Найцікавішою властивістю генератора BBS є те, що для визначення значення і -го біту зовсім необов‘язково знати усі попередні і -1 бітів. Для безпосереднього обчислення значення і -го біту достатньо знати p та q .Безпека цієї схеми ґрунтується на складності розкладання n на множники. Число n можна опублікувати, так що кожен зможе генерувати біти за допомогою цього генератора. Однак поки криптоаналітик не розкладе n на множники, він не зможе передбачити вихід генератора.Більше того, генератор BBS непередбачуваний як в правому, так і в лівому напрямках. Це означає, що отримавши послідовність бітів, криптоаналітик не зможе передбачити ні наступний, ні попередній біти послідовності. Причиною цього є не якійсь заплутаний механізм генерації, а математика розкладання n на множники.

Приклад:

p =19;q =23

і 0 1 2 3 4 5 6 7
х i 101 150 213 358 123 271 25 188
S i 1 0 1 0 1 1 1 0

p=q ≡3 mod 4

n =437

x =233

К-во Просмотров: 201
Бесплатно скачать Реферат: Основи криптографії