Data Encryption Алгоритъм
с публичен ключ RSA
Data Encryption алгоритъм с публичен ключ е най-обещаващите в момента (RSA - Rivest, Шамир и Aldeman - неговите изобретатели).
Председател - дели само от една и от само себе си;
Взаимно prostym- нямат общо делител, различна от 1;
В резултат на операция и мод J - остатък на разделянето число и да й.
За да използвате алгоритъма RSA, трябва първо да генерира публични и частни ключове с помощта на следните стъпки:
1) Изберете два много големи прости числа р и р.
2) Определяне на N, чрез умножаване на р р (п = р * р).
3) Изберете голяма случаен номер, който се нарича г. Този номер трябва да бъде председател на резултата от умножението (р-1) * (р-1).
4) определя множество д, за които следното равенство е вярно (д * г) мод ((р-1) * (р-1)) = 1.
5) Hazovem обществен ключови числа д и н и таен ключ - chmsla г и п.
Сега, за да кодира данни за известен ключ, направете следното:
- прекъсне шифрован текст на блокове, всеки от които може да бъде под формата на М (I) = 0,1,2. N-1 (т.е. само до п-1).
- криптиране текста разглежда като поредица от числа М (I) с формула С (l) = (М (I) ^ д) мод п.
За декриптиране на данните с помощта на таен ключ трябва да изпълнява следните изчисления: M (I) = (C (I) ^ г) мод п. Резултатът ще бъде получена от множество номера М (I), които представляват изходния код.
Е, по-ясно да представим алгоритъма RSA, следните примери:
Криптиране и декриптиране на съобщението "SAV" за RSA алгоритъм. За простота, аз ще използва малък брой (на практика - това е необходимо да се вземат много по-голям).
1) Изберете р = 3 и Q = 11.
2) Определяне на п = 3 * 11 = 33.
3) Да се намери (р-1) * (р-1) = 20. По този начин, г е равно на, например 3: (г = 3).
4) Изберете брой е по следната формула: (д * 3) мод 20 = 1. Следователно е е равен на 7, например: (д = 7).
5) представлява криптирани съобщението като поредица от числа в диапазона 0-32 (запомнящо, който завършва в п-1). Letter А = 1, В = 2, С = 3.
Сега ние криптира съобщението с помощта на публичния ключ
С1 = (3 х 7) мод 2187 = 33 мод 33 = 9;
С2 = (1 * 7) мод 33 = 33 мод 1 = 1;
С3 = (2 ^ 7) мод 33 = 128 мод 33 = 29;
Сега дешифрирате с частния ключ.
M1 = (9 х 3) мод 33 = 729 мод 33 = 3 (С);
М2 = (1 ^ 3) мод 33 = 33 мод 1 = 1 (А);
М3 = (29 х 3) мод 33 = 24389 мод 33 = 2 (V);
Всички данни се разшифрован.
Криптографски алгоритъм RSA се основава на предположението, че е изключително трудно да се определи таен ключ познатото, тъй като е необходимо да се реши проблема за съществуването на делителя на цяло число. Този проблем е NP-пълна, и, като следствие от този факт, не позволява ceychas ефективни (полином) решения. Освен това, въпросът за съществуването на ефективни алгоритми за решаване на NP-пълни проблеми е много отворен. Ако използвате номер, състоящ се от 200 цифри (такива и трябва да се използва, когато се шифрова данните) за незаконно декриптиране трябва да генерира огромен брой операции (около 10 ^ 23).
P.S / данни по-горе не трябва да се използват за незаконни цели!
[Възникна грешка при обработката на настоящата директива]
Свързани статии