Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Zah_RSA.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
769 Кб
Скачать
☆

Опис алгоритму.

Алгоритм складається з трьох етапів :

  • Генерація ключів.

  • Шифрування.

  • Дешифрування.

Процес створення пари ключів.

Вибирають два досить великі прості числа p і q . Для їх добутку n=p*q значення функції Ойлера дорівнює

(n)=(p-1)*(q-1)=n-p-q+1. (4.1)

Далі випадковим чином вибирають елемент e, що не перевищує значення (n) і взаємно простий з ним.

Іншими словами e є випадковим елементом із множини Z*(n). Для е за алгоритмом Евкліда знаходимо елемент d, обернений до е в Z*(n), тобто такий, що

d<(n) і ed1(mod(n)). (4.2)

Рис.1. Блок схема алгоритму генерації ключів.

Як результат покладають :

Відкритий ключ : e,n.

Таємний ключ : d,n.

Блок схему генерації ключів показано на рис. 3.

Як видно з рисунка в даному алгоритмі використовується наступні під алгоритми :

  • знаходження простих чисел див. Рисунку 4.2.

  • знаходження найменшого спільного дільника (NDS) дивися рисунок 4.3.

  • знаходження числа D за алгоритмом Евкліда (MOD) дивися рисунок 4.4.

Шифрування

Шифрування відбувається блоками. Для цього повідомлення записують у цифровій формі і розбивають на блоки так, що кожен блок позначає число, яке не перевищує n.

Скажімо, якщо блок записаний у вигляді війкового слова довжини m, то повинна виконуватись нерівність 2m<n. Блок M розглядається як елемент кільця Zn і як такий може підноситись до степеня за модулем n.

Алгоритм шифрування E у системі RSA полягає у піднесенні M до степеня e, дивися рисунок 4.5. Записуємо це так

E(M)=Memod(n). (4.3)

В результаті отримується блок криптотексту C=E(M), який також є цифровим записом якогось елемента кільця Zn.

DX(EX(M))= EX(DX(M))=M. (4.4)

Рис. 2. Блок схема алгоритму знаходження простих чисел.

Аутентифікація повідомлення.

В алгоритмі шифрування RSA кожен абонент X має пару ключів - загальновідомий відкритий (nX,eX) і таємний dX, який знає лише X і ніхто інший. Таким чином, будь хто може скористатись алгоритмом шифрування EX абонента X, але тільки він сам володіє алгоритмом дешифрування DX. Важливим є виконання таких співвідношень для довільного повідомлення M. Ці співвідношення зводяться до рівностей :

(MeX)dX=(MdX)eX=M в ZnX (4.5)

І виражають той факт, що шифруюче відображення EX та дешифруюче DX є взаємно оберненими.

Припустимо, що абонент А хоче переслати повідомлення M абонентові Б таким чином, щоб той був певен, що повідомлення справді послане абонентом А, а не опонентом. Для цього пропонується такий протокол, в якому (Ea,Da) та (Eb,Db) - алгоритми шифрування да дешифрування абонентів А та Б.

  • Абонент А обчислює C=Eb(Da(M)) і посилає C абоненту Б

  • Абонент Б отримавши C, обчислює M=Ea(Db(C)).

Коректність протоколу зводиться до рівності :

EA(DB(EB(DA(M))))=M, (4.6)

яка випливає із співвідношення (4.5).

Рис. 3. Блок схема алгоритму знаходження найменшого спільного дільника (NDS).

Рис. 4. Блок схема алгоритму знаходження числа D за алгоритмом Евкліда (MOD).

Ефективність. Абоненти А та Б використовують ефективні алгоритми шифрування та дешифрування криптосистеми RSA. Зауважимо, що абонент А використовує свій приватний алгоритм Da та відомий всім алгоритм Eb. Те ж саме із абонентом Б - він використовує особистий алгоритм Db і загальновідомий алгоритм Ea.

Рис. 5. Блок схема алгоритму шифрування та дешифрування.

Конфіденційність. Під конфіденційністю цього протоколу ми розуміємо його надійність як звичайної криптосистеми для пересилання повідомлень. В такому розумінні конфіденційність є досить інтуїтивним фактом, що грунтується на надійності алгоритму RSA.

Перед опонентом, який перехопив криптотекст C, виникає завдання визначити M із Eb(Da(M)). Припустимо, що опонент знає навіть набагато більше, а саме приватний алгоритм Da абонента А. Тоді визначення M для опонента рівносильне визначенню Da(M). Але визначення Da(M) із Eb(Da(M)) є нічим іншим, як задачею зламу RSA.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]