Алгоритъм за криптиране на Rsa. Пример за алгоритъм за криптиране на rsa

Помислете за работата на асиметрична RSA ... Предложен е от трима математици Роналд Ривест ( Р. Ривест), Ади Шамир ( А. Шамир) и Ленард Адлман ( Л. Адлеман) през 1978г.

Под просто число ще разберем число, което се дели само на 1 и само по себе си. Евклид в своите „Принципи“ показа, че за всяко просто число има по-голямо просто число, тоест броят на простите числа е безкраен.

Доказателства.Да кажем, че има най-голямо просто число стр, дефинирайте произведението на всички прости числа P=2∙3∙5∙7∙…∙стр.

Помислете за броя P+1. Той или самият е просто число, голямо стр или произведението на прости числа, по-големи от P... Стигнахме до противоречие, така че броят на прости числа е безкраен.

2∙3+1=7; 2∙3∙5+1=31; 2∙3∙5∙7+1=211;

2∙3∙5∙7∙11+1=2311; 2∙3∙5∙7∙11∙13+1=30031=59∙509.

Взаимно прости числа ще извикаме такива числа, които нямат общ делител, освен 1 .

И накрая, в резултат на операцията i mod j ще разгледаме останалата част от целочисленото деление iна j. За да използвате алгоритъма RSA, първо трябва да генерирате публичния и частния ключ, като следвате стъпките по-долу.

1. Изберете две много големи прости числа r и q.

2. Определете н в резултат на умножение r На q (n \u003d p q).

3. Изберете голямо произволно число, което ще извикаме д... Това число трябва да бъде съвместно с резултата от умножението (p - 1) (q - 1).

4. Определете такова число дза което е вярно следното отношение (e d) mod ((p - 1) (q - 1)) \u003d 1.

5. Да извикаме числата д и н, а тайният ключ са цифрите ди н.

Сега, за да шифровате данни с помощта на известен ключ ( д, н), трябва да направите следното:

- разделя кодирания текст на блокове, всеки от които може да бъде представен като число M (i);

- криптиране на текст, разглеждан като поредица от числа M (i) според формулата С (i) \u003d (M (i) e) mod n... За да дешифрирате тези данни с помощта на секретния ключ (d, n), трябва да се извършат следните изчисления: M (i) \u003d (C (i) d) mod n... Резултатът ще бъде набор от числа M (i), които са оригиналният текст.

Алгоритъм RSA се основава на една от доказаните теореми на Ойлер, специален случай на който гласи, че ако числото н представими като две прости числа стр и q, след това за всеки х важи равенството

x (p-1) (q-1) mod n = 1.

Ще използваме тази формула за дешифриране на RSA съобщения. За да направим това, повдигаме и двете му части до степен (- у):

(x (- y) (p-1) (q-1)) mod n \u003d 1 (- y) \u003d 1.



Сега нека умножим двете страни по x:

(x (-y) (p-1) (q-1) +1) mod n = 1· x \u003d x.

Нека сега си припомним как са създадени публичният и частният ключ. Ние избрахме д такъв, че

e d + (p-1) (q-1) y \u003d 1,

e d \u003d (-y) (p-1) (q-1) +1.

Следователно, в последния израз на предишния параграф, можем да заменим степента с числото (д г).Получаваме (x e d) mod n \u003d x... За да прочетете съобщението c i \u003d ((m i) e) mod n просто го вдигнете до степента дпо модул м:

((c i) d) mod n \u003d ((m i) e d) mod n \u003d m i.

Ето един прост пример за използване на метода RSA за криптиране на CAB съобщение. За простота ще използваме много малки числа (на практика се използват големи числа).

1. Да избираме p \u003dq \u003d11.

2. Определете n \u003d3· 11=33.

3. Намерете (p - 1) (q - 1) \u003d20. Като д изберете произволно число, което е съвместно с 20, например d \u003d3.

4. Изберете номер д... Като такова число може да се приеме всяко число, за което има отношение 3) мод20 = 1,
например 7.

5. Нека представим криптираното съобщение като последователност от цели числа в диапазона 0 ... 32. Нека писмото И представен с номер 1, буква IN - цифрата 2 и буквата ОТ - номер 3. Тогава съобщението може да бъде представено като поредица от числа 312. Нека шифроваме съобщението с помощта на ключа (7, 33):

С (1) \u003d (З 7) мод 33 \u003d 2187 мод 33 \u003d 9,

С (2) \u003d (1 7) mod 33 \u003d 1 mod 33 \u003d 1,

С (З) \u003d (2 7) мод 33 \u003d 128 мод 33 \u003d 29.

6. Нека се опитаме да дешифрираме съобщението (9, 1, 29), получено в резултат на криптиране с известен ключ, въз основа на секретния ключ (3, 33):

M (1) \u003d (9 3) mod 33 \u003d 729 mod 33 \u003d 3,

М (2) \u003d (1 3) mod 33 \u003d 1 mod 33 \u003d 1,

M (Z) \u003d (29 3) mod 33 \u003d 24389 mod 33 \u003d 2.

По този начин, в резултат на дешифриране на съобщението, се получава оригиналното CAB съобщение.

Криптографската сила на алгоритъма RSA се основава на предположението, че е изключително трудно да се определи тайният ключ от известния публичен, тъй като за това е необходимо да се реши проблемът със съществуването на целочислени делители. Понастоящем този проблем не допуска ефективно (полиномиално) решение. В това отношение за ключовете, състоящи се от 200 двоични цифри (и именно тези числа се препоръчват да се използват), традиционните методи за намиране на делители изискват огромен брой операции (около 10 23).

Крипто системата RSA се използва в голямо разнообразие от платформи и в много индустрии. Той е вграден в много повече и повече търговски продукти. Използва се от операционните системи Microsoft, Apple, Sun и Novell. В хардуера алгоритъмът RSA се използва в защитени телефони, на мрежови карти Ethernet, на смарт карти и се използва широко в криптографското оборудване на Zaxus (Rasal). В допълнение, алгоритъмът е включен във всички основни протоколи за сигурни интернет комуникации, включително S / MIME, SSL и S / WAN, и се използва и в много институции, например в държавни служби, в повечето корпорации, в правителствени лаборатории и университети. ...

Технологията за криптиране RSA BSAFE се използва от над 500 милиона потребители по целия свят. Тъй като в повечето случаи се използва RSA алгоритъм, той може да се счита за най-разпространената криптосистема с публичен ключ в света и този брой има явна тенденция да се увеличава с нарастването на потребителите на Интернет.

RSA използва два вида ключове - e и d, където e е публично, а d е тайно. Да предположим, че P е оригиналният текст, а C е текстът на шифъра. Алис използва C \u003d P e mod n, за да създаде шифър текст C от оригиналния текст P; Боб използва P \u003d C d mod n, за да извлече оригиналния текст (файл), изпратен от Алиса. Много голям брой n модули са създадени с помощта на процеса на генериране на ключове, който ще обсъдим по-късно.

За криптиране и декриптиране се използва степенуване по модул. Както обсъждахме в лекции 12-13, когато се използва бързият алгоритъм, степенуването по модул е \u200b\u200bосъществимо за полиномиално време. Намирането на модулния логаритъм обаче е толкова трудно, колкото разширяването на число в модул. За него няма полиномиален времеви алгоритъм. Това означава, че Алис може да шифрова съобщението с публичния ключ (e) по полиномно време. Боб също може да го дешифрира за полиномиално време (защото знае d). Но Ева не може да дешифрира това съобщение, защото ще трябва да изчисли e-тия корен на C, използвайки модулна аритметика. Фигура 14.5 показва идеята зад RSA.


Фигура: 14.5.

С други думи, Алис използва еднопосочна функция (степенуване по модул) с вратичка, известна само на Боб. Ив не познава вратичката, така че не може да дешифрира съобщението. Ако някой ден се намери полиномиален алгоритъм за модула за изчисляване на e-тия корен от n, тогава степенуването n по модул вече няма да бъде еднопосочна функция.

Процедура

Фигура 14.6 показва общата идея за процедурата, използвана в RSA.

RSA използва степенуване за криптиране / декриптиране. За да атакува затворения текст, Ева трябва да изчисли


Фигура: 14.6.
Две алгебрични структури

RSA използва две алгебрични структури: пръстен и група.

Пръстени за криптиране / дешифриране... Шифроването и декриптирането се извършва с помощта на комутативен пръстен с две аритметични операции: събиране и умножение. В RSA този пръстен е публично достъпен, тъй като модул n е публично достъпен. Всеки може да изпрати съобщение до Боб, използвайки този пръстен за криптиране.

Групи за генериране на ключове... RSA използва мултипликативна група за генериране на ключове. Групата поддържа само умножение и деление (мултипликативно обратно), които са необходими за създаване на публични и частни ключове. Тази група трябва да бъде скрита, защото нейният модул е \u200b\u200bтаен. Ще видим, че ако Ева намери този модул, тя лесно може да атакува криптографската система.

RSA използва две алгебрични структури: отворен пръстен R \u003d< Z н , +, x\u003e и тайната група G \u003d< Z (н) * , x\u003e.

Генериране на ключове

Боб използва стъпките, показани в Алгоритъм 14.2, за да създаде своите публични и частни ключове. След генериране на ключовете, Боб декларира кортежа (e, n) като свой публичен ключ за достъп: Боб съхранява d като свой личен ключ. Боб може да пусне p, q и; те не могат да променят частния му ключ, без да променят модула. За безопасност препоръчителният размер за всеки прост p или q е 512 бита (почти 154 десетични цифри). Това определя размера на устройството, n 1024 бита (309 цифри).

14.2. Генериране на RSA ключ

В RSA кортежът (e, n) е публичният ключ за достъп; цяло число d - таен ключ.

Шифроване

Всеки може да изпрати съобщение до Боб, използвайки неговия публичен ключ за достъп. Шифроването в RSA може да се извърши с помощта на алгоритъм на полиномиална времева сложност, както е показано в алгоритъм 14.3. Алгоритъмът за бързо степенуване е обсъден в лекции 12-13. Размерът на изходния текст трябва да бъде по-малък от n; ако размерът на изходния текст е по-голям, тогава той трябва да бъде разделен на блокове.

Криптосистемата RSA при всеки цикъл на криптиране трансформира двоичен блок с чист текст m с размер на дължината (n), считан за цяло число, в съответствие с формулата: c \u003d m e (mod n).

Освен това n \u003d pq , където p и q са произволни прости числа с голяма ширина, които се унищожават след генерирането на модула и ключовете. Публичният ключ се състои от двойка числа e и n . Подключ e е избран като достатъчно голям брой от диапазона 1< e < φ(n), с условием: НОД(e, j(n)) = 1, где j(n) - наименьшее общее кратное чисел p–1 и q–1. Освен това, решавайки уравнението xe + yφ (n) \u003d 1 в цели числа x, y, задаваме d \u003d x, т.е. ed \u003d 1 (j (n)). Освен това за всички m отношението m ed \u003d m (n) , следователно познаването на d позволява дешифриране на криптограми.

За да се гарантира надеждна информационна сигурност, има две изисквания за системите с публични ключове.

1. Преобразуването на оригиналния текст трябва да изключи неговото възстановяване въз основа на публичния ключ.

2. Определянето на частния ключ въз основа на публичния ключ също трябва да бъде невъзможно за изчисление. В този случай е желателна точна долна граница за сложността (броя операции) на разбиването на шифъра.

Алгоритмите за криптиране с публичен ключ се използват широко в съвременните информационни системи.

Нека разгледаме изграждането на RSA криптосистема, като използваме прост пример.

1. Изберете p \u003d 3 и q \u003d 11.

2. Определете n \u003d 3 ∙ 11 \u003d 33.

3. Намерете j (n) \u003d (p - 1) (q - 1) \u003d 20.

5. Нека изберем число d, което удовлетворява 7d \u003d 1 (мод 20).

Лесно е да се види, че d \u003d 3 (мод 20).

Нека представим криптираното съобщение като последователност от цели числа, използвайки съответствието: A \u003d 1, B \u003d 2, C \u003d 3, ..., Z \u003d 26. Тъй като size (n) \u003d 6 , тогава нашата криптосистема е в състояние да шифрова буквите от латинската азбука, считани за блокове, Нека публикуваме публичния ключ (e, n) \u003d (7, 33) и поканим други участници в тайната комуникационна система да криптира съобщения, изпратени до нашия адрес, използвайки го. Нека такова съобщение бъде CAB , което в избраното от нас кодиране приема формата (3, 1, 2). Подателят трябва да шифрова всеки блок и да изпрати кодирано съобщение на нашия адрес:

RSA (C) \u003d RSA (3) \u003d 3 7 \u003d 2187 \u003d 9 (мод 33);
RSA (A) \u003d RSA (1) \u003d 1 7 \u003d 1 (мод 33);
RSA (B) \u003d RSA (1) \u003d 2 7 \u003d 128 \u003d 29 (мод 33).

След като получим криптирано съобщение (9, 1, 29), ще можем да го декриптираме въз основа на секретния ключ (d, n) \u003d (3, 33), като повдигнем всеки блок до степен d \u003d 3:

9 3 \u003d 729 \u003d 3 (мод 33);
1 3 \u003d 1 (мод 33);
29 3 \u003d 24389 \u003d 2 (мод 33).

За нашия пример е лесно да принудим грубия сила на секретния ключ. На практика това е невъзможно, тъй като за практическа употреба понастоящем следните стойности са препоръчителен размер (n) :


· 512-768 бита - за физически лица;

· 1024 бита - за търговска информация;

2048 бита - за класифицирана информация.

Пример за изпълнение на алгоритъма RSA е показан в списъци 18.1 и 18.2 (компилатори - Delphi, FreePascal).

Листинг 18.1. Пример за изпълнение на алгоритъм RSA на езика Pascal

програма Rsa;
($ APPTYPE CONSOLE)
($ IFDEF FPC)
($ MODE DELPHI)
($ ENDIF)

използва SysUtils, uBigNumber;

// Генератор на случайни числа

var t: масив от байт;
var pos: Цяло число;
var cbox: масив от байт \u003d
(237, 240, 161, 1, 130, 141, 205, 98, 27, 169, 181, 202, 173, 47, 114, 224, 35, 183, 79, 82, 153, 220, 172, 22, 17, 11, 200, 131, 14, 154, 167, 91, 250, 31, 213, 112, 126, 241, 236, 155, 198, 96, 87, 143, 244, 151, 134, 38, 129, 233, 186, 101, 41, 94, 231, 115, 113, 199, 51, 145, 229, 37, 69, 180, 85, 33, 207, 163, 102, 187, 4, 89, 7, 44, 75, 88, 81, 120, 10, 232, 221, 168, 230, 158, 247, 211, 216, 156, 95, 64, 242, 215, 77, 165, 122, 5, 15, 119, 100, 43, 34, 48, 30, 39, 195, 222, 184, 92, 78, 135, 103, 166, 147, 32, 60, 185, 26, 251, 214, 90, 139, 45, 73, 150, 97, 116, 136, 68, 219, 248, 191, 192, 16, 8, 243, 50, 132, 105, 62, 201, 204, 65, 0, 99, 182, 121, 194, 108, 160, 170, 56, 226, 206, 254, 117, 178, 9, 197, 234, 127, 58, 171, 40, 29, 177, 142, 3, 228, 188, 162, 212, 157, 49, 175, 174, 140, 70, 106, 123, 66, 196, 246, 179, 42, 218, 71, 217, 227, 18, 164, 24, 67, 159, 25, 111, 255, 193, 245, 2, 238, 133, 21, 137, 152, 109, 148, 63, 124, 203, 104, 54, 55, 223, 80, 107, 210, 225, 149, 252, 76, 12, 189, 93, 46, 23, 13, 36, 209, 61, 249, 110, 144, 86, 52, 253, 72, 28, 53, 57, 125, 59, 235, 84, 128, 208, 146, 20, 74, 6, 239, 190, 83, 19, 138, 118, 176);

процедура InicMyRandom;
var i: Цяло число;
var s: низ;
започнете
WriteLn ("Въведете малко текст, за да инициализирате генератора
произволни числа (до 256 знака): ");
ReadLn (и);
i: \u003d 1;
докато аз<=255) and (i<=Length(s)) do

Въведение 3

Основна част 5

1 История на създаването 5

2 Описание на алгоритъма 5

2.1 Създаване на ключове 6

2.2 Шифроване и дешифриране 6

2.3 Пример за употреба 7

Заключение 9

Списък на използваните източници 10

Въведение

Криптографията е специална система за промяна на обикновеното писане, използвана, за да направи текста разбираем само за ограничен брой хора, които познават тази система.

Криптографията е наука за защита на информацията с помощта на математически методи.

Съвременната криптография включва:

    симетрични криптосистеми;

    асиметрични криптосистеми;

    системи за електронен цифров подпис (EDS);

    хеш функции;

    управление на ключове;

    получаване на скрита информация;

    квантова криптография.

Симетрично криптиране - симетричните алгоритми са тези, които използват един и същ секретен ключ (известен само на подателя и получателя) за криптиране и декриптиране.

Общи симетрични алгоритми за криптиране:

    AES (Advanced Encryption Standard) - американски стандарт за криптиране;

    GOST 28147-89 - вътрешен стандарт за криптиране на данни;

    DES (Data Encryption Standard) е стандарт за криптиране на данни в САЩ до AES;

    3DES (Triple-DES, тройна DES);

    IDEA (Международен алгоритъм за шифроване на данни);

    SEED е корейският стандарт за криптиране на данни;

    Camellia е шифър, сертифициран за употреба в Япония;

    XTEA е най-простият алгоритъм за изпълнение.

Асиметричните криптоалгоритми са предназначени предимно да премахнат основния недостатък на симетричните криптосистеми - сложността на управлението и разпределението на ключовете.

Основата на всички асиметрични криптоалгоритми е голямата изчислителна сложност на възстановяването на чист текст, без да се знае частният ключ.

Примери за асиметрични криптоалгоритми:

    Дифи-Хелман;

    RSA - Rivest, Shamir, Adelman - се основава на сложността на проблема с факторирането на големи числа за кратко време;

    DSA - алгоритъм за цифров подпис, американски стандарт;

    GOST R 34.10 - 94, 2001, RF стандарти.

В това резюме ще разгледаме подробно асиметричния криптоалгоритъм на криптиране - алгоритъма RSA.

Главна част

RSA (буквално съкращение за Rivest, Shamir и Adleman) е криптографски алгоритъм с публичен ключ, основан на изчислителната сложност на проблема с факторирането на големи цели числа. Криптосистемата RSA е първата система, подходяща както за криптиране, така и за цифров подпис.

    История на създаването

Публикувано през ноември 1976 г. от Уитфийлд Дифи и Мартин Хелман, New Directions in Cryptography, революционизира разбирането за криптографските системи, като полага основите на криптографията с публичен ключ. Впоследствие разработеният алгоритъм на Diffie-Hellman позволи на две страни да получат споделен таен ключ, използвайки несигурен комуникационен канал. Този алгоритъм обаче не реши проблема с удостоверяването. Без допълнителни средства потребителите не могат да бъдат сигурни с кого са генерирали споделената тайна.

След преглед на тази статия трима учени Роналд Лин Ривест, Ади Шамир и Леонард Адлеман от Масачузетския технологичен институт (MIT) се заеха с търсенето на математическа функция, която да реализира моделът на криптографска система с публичен ключ, формулиран от Whitfield Diffie и Martin Hellman. След като работиха над над 40 възможни опции, те успяха да намерят алгоритъм, базиран на разликата в това колко лесно е да се намерят големи прости числа и колко е трудно да се раздели произведението на две големи прости числа, наречени по-късно RSA. Системата е кръстена на първите букви от имената на нейните създатели.

    Описание на алгоритъма

Първата стъпка във всеки асиметричен алгоритъм е да се създаде двойка публичен / частен ключ и да се разпространи публичният ключ „по целия свят“.

      Генериране на ключове

За алгоритъма RSA етапът на генериране на ключове се състои от следните операции:

Числото се нарича отворена степен

      Шифроване и дешифриране

Да предположим, че подателят иска да изпрати съобщение до получателя.

Съобщенията са цели числа в диапазона от 0 до, т.е. ... Фигура 1 показва диаграма на RSA алгоритъма.

Фигура 1 - Диаграма на RSA алгоритъма

Алгоритъм на подателя:

Алгоритъм на приемника:

Уравнения (1) и (2), на които се основава RSA схемата, дефинират взаимно обратни трансформации на множеството.

      Пример за употреба

Таблица 1 показва пример за използване на RSA алгоритъм. Подателят изпрати шифрованото съобщение „111111“ и получателят, използвайки своя личен ключ, го дешифрира.

Таблица 1 - Фазово изпълнение на RSA алгоритъма

Описание на операцията

Резултат от операцията

Генериране на ключове

Изберете две прости числа

Модул за изчисляване

Изчислете функцията на Ойлер

Изберете отворен изложител

Изчислете тайния показател

Шифроване

Изберете текст за криптиране

Изчислете шифротекст

Дешифриране

Изчислете оригиналното съобщение

Заключение

В това есе беше подробно обсъден алгоритъмът за асиметрично криптиране на RSA. Описана е историята на създаването му, описани са алгоритми за създаване на ключове, криптиране и декриптиране. Представен е и пример за практическо използване на RSA алгоритъма.

Списък на използваните източници

    Семенов Ю.А. Интернет протоколи // М.: Проспект, 2011. - 114 с.

    Беляев А.В. Методи и средства за защита на информацията // ЧФ СПбДТУ, 2010. - 142с.

    Венбо М. Съвременна криптография. Теория и практика // М.: Уилямс, 2005. - 768 с.

    Шнайер Б. Приложна криптография. Протоколи, алгоритми, изходни текстове // М.: Триумф, 2002. - 816 с.

    RSA алгоритъм // Интернет ресурс: http://ru.wikipedia.org/wiki/Rsa

Схемата Rivest-Shamir-Adleman (RSA) в момента е единствената широко приета и практически прилагана схема за криптиране с публичен ключ.

Схемата RSA е блоков шифър, в който както обикновеният текст, така и шифърът са цели числа от 0 до p - 1 за някои п.

Откритият текст се криптира в блокове, всеки от които съдържа двоична стойност, по-малка от дадено число п. Това означава, че дължината на блока не трябва да надвишава log2 ("). На практика дължината на блока е избрана да бъде 2 до бита къде 2 к Схемата, разработена от Ривест, Шамир и Адлеман, се основава на изрази с правомощия. Шифроването и декриптирането за блока за свободен текст M и блока за шифротекст C могат да бъдат представени като следните формули:

И подателят, и получателят трябва да знаят значението п. Подателят знае значението д, и само получателят знае стойността д. По този начин тази схема е алгоритъм за криптиране с публичен ключ KU \u003d (д, п), и частен ключ KR \u003d (d, n).

За да се използва този алгоритъм за криптиране с публичен ключ, трябва да бъдат изпълнени следните изисквания:

Трябва да има такива ценности e, d и p, Какво M ed \u003d М (мод p) за всички M p.

IVT трябва да бъде сравнително лесно да се изчисли и C c1 за всички стойности на M p.

Трябва да е почти невъзможно да се определи д според наличните нейната стр.

Нека първо да анализираме първото изискване, а останалите да разгледаме по-късно. Необходимо е да се намери отношение на формата

Следствието от теоремата на Ойлер е най-подходящо: за такива произволни две прости числа r и q и всякакви две такива цели числа пийт, Какво n \u003d pqn0 и произволно цяло число да се важат следните взаимоотношения:

където φ (π) е функция на Ойлер, чиято стойност е равна на броя положителни цели числа, по-малки от p и взаимно прости с п.

В случай на проста r и q имаме f (pq) - (p - 1 ) (q - 1). Следователно необходимото съотношение се получава при условието

Това е еквивалентно на следните взаимоотношения:

тези. тя d са взаимно обратни по модул φ (i). Имайте предвид, че поради правилата на аритметиката в класовете на остатъци, това може да бъде само когато д (и следователно д) е съвместно с φ (u). В еквивалентната нотация (f (/ 7), г) \u003d.

Сега имаме всичко, което да представлява схемата RSA. Компонентите на веригата са:

r и q - две прости числа (тайна, избрана);

n - pq (отворен, изчислен);

такива дче (f (i), д) \u003d 1,1 д

д = д л (mod f (/?)) (тайна, изчислена).

Частният ключ се състои от (d, n), и отворете от (f, n).Да предположим, че потребител A публикува публичния си ключ и сега потребител B е на път да му препрати съобщението на M.

След това потребител Б изчислява кодираното съобщение

След като получи този шифротекст, потребителят А го дешифрира чрез изчисляване

Има смисъл да се даде обосновка за този алгоритъм тук. Са избрани тя d такъв, че

Следователно формата kts\u003e (n) +. Но по следствие от теоремата на Ойлер, за такива произволни две прости числа r и qu цели числа n \u003d pqn М, че О отношенията

Следователно

Сега имаме

Таблица 10.1 обобщава алгоритъма RSA и Фиг. 10.1 показва пример за приложението му. В този пример ключовете се изчисляват, както следва:

  • 1. Избрани са два прости числа: p- 7 wq- 17.
  • 2. Изчислено n \u003d pq \u003d 7 х 17 \u003d 119.
  • 3. Изчислете φ (n) - (p -) (q - 1) = 96.
  • 4. Избираем дсъвместно с f (P) \u003d 96 и по-малко от f (i); в този случай \u003d 5.
  • 5. Това се определя д, Какво де \u003d 1 (мод 96) и d 96. Съответната стойност е d \u003d 77, тъй като 77 x 5 \u003d 385 \u003d 4 x 96 + 1.
  • 6. Резултатът е публичен ключ KU \u003d (5, 119) и частен ключ KR \u003d (77, 119).

Този пример показва използването на тези клавиши с входния свободен текст M \u003d 19. Шифроването повишава 19 до петата степен, което води до 2 476 099. В резултат на разделянето на 119, остатъкът е 66. Следователно, 19 5 \u003d 66 (mod 119), и следователно шифърът ще бъде 66. След дешифрирането се оказва, че


Фигура: 10.1.

Таблица 10.1



Свързани статии: