- •Теоретичні відомості
- •Історія розвитку rsa.
- •Опис алгоритму.
- •Процес створення пари ключів.
- •Шифрування
- •Аутентифікація повідомлення.
- •Розподіл ключів.
- •Характеристики безпеки rsa.
- •Порівняльна статистичних характеристик алгоритмів rsa та idea.
- •Контрольні запитання.
- •Література
- •79008, М. Львів, пл. Митна, 1
Опис алгоритму.
Алгоритм складається з трьох етапів :
Генерація ключів.
Шифрування.
Дешифрування.
Процес створення пари ключів.
Вибирають два досить великі прості числа 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)
Аутентифікація повідомлення.
В алгоритмі шифрування 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.
