- •ВВЕДЕНИЕ
- •1. ОСНОВНЫЕ ПОНЯТИЯ
- •2. ИСТОРИЧЕСКИЕ ШИФРЫ
- •3. МОДУЛЯРНАЯ АРИФМЕТИКА
- •4. АСИММЕТРИЧНЫЕ СИСТЕМЫ ШИФРОВАНИЯ. КРИПТОСИСТЕМА RSA
- •5. ПРОСТЫЕ ЧИСЛА. ГЕНЕРАЦИЯ ПРОСТЫХ ЧИСЕЛ
- •6. АТАКА ВИНЕРА НА RSA
- •7. РЮКЗАЧНЫЙ МЕТОД ШИФРОВАНИЯ
- •9. КРИПТОСИСТЕМА НА ОСНОВЕ ЭЛЛИПТИЧЕСКИХ КРИВЫХ
- •10. СИММЕТРИЧНЫЕ КРИПТОСИСТЕМЫ
- •11. СТАНДАРТ ШИФРОВАНИЯ ДАННЫХ DES
- •12. СТАНДАРТ КРИПТОСИСТЕМЫ РОССИИ ГОСТ 28147-89
- •13. ДЕЙСТВИЯ НАД ПОЛИНОМАМИ В ПОЛЕ
- •14. УСОВЕРШЕНСТВОВАННЫЙ СТАНДАРТ ШИФРОВАНИЯ AES
- •15. УСТАНОВЛЕНИЕ ПОДЛИННОСТИ ОБЪЕКТА
- •16. КРИПТОГРАФИЧЕСКИЕ ХЕШ-ФУНКЦИИ
- •СПИСОК ЛИТЕРАТУРЫ
|
x5∙= x10 |
= x |
||
|
|
|
x |
|
|
|
|
∙6 |
11 |
|
|
|
x |
= x |
|
∙ |
|
∙7 |
12 |
∙x |
= |
x13 |
|
|
3 |
x8 |
|
|
|
∙x2 |
|
|
|
|
x∙0 ∙x1
Рис. 5.1. ρ -алгоритм
6.АТАКА ВИНЕРА НА RSA
Валгоритме RSA для ускорения процесса расшифрования необходимо использовать небольшие расшифровывающие
экспоненты (секретные ключи) kc . Однако слишком малый секретный ключ использовать нельзя, так как его можно определить простым
перебором. Кроме того, при малых kc применима атака Винера,
основанная на цепных дробях. Пусть |
α1 |
− |
|
положительное |
||||||||||||||||
|
|
|||||||||||||||||||
действительное |
число. Положим |
q1 = [α1 ] |
− целая |
часть |
α1 , тогда |
|||||||||||||||
α = q + (α − q ) = q + |
1 |
|
= q + |
|
1 |
, |
|
|
|
|
|
|
1 |
|
||||||
1 |
|
|
|
|
|
|
|
|
|
|||||||||||
1 |
1 |
1 |
1 |
1 |
1 |
α |
|
|
|
α2 |
= |
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|||
|
|
|
|
|
α1 − q1 |
|
|
|
|
|
где |
α1 |
− q1 |
− |
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
положительное действительное число. Положим q2 = [α2 ] , тогда
34
α = q + (α − q ) = q + |
|
|
1 |
|
|
|
= q + |
1 |
, |
|
|
|
|
|
|
||||||||||||||||
|
|
1 |
|
|
|
|
|
||||||||||||||||||||||||
|
2 |
|
|
2 |
|
2 |
|
|
2 |
2 |
|
|
|
|
|
|
|
|
|
2 |
α3 |
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
α2 − q2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
α3 |
= |
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
α2 |
− q2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
где |
|
и т. д.; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
α |
|
= q + |
1 |
, |
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
i |
|
|
αi+1 |
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
qi |
= [αi ] ,αi+1 |
= |
|
|
1 |
. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
αi − qi |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
где |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Окончательно имеем: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
α1 = q1 + |
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
q2 + |
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
q3 |
+ L |
|
|
|
1 |
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
qi + |
1 |
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
αi − qi . |
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
Представление |
числа α1 |
|
в |
вышеуказанном виде |
называется |
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
α = m |
||
разложением его в цепную дробь. При рациональном |
1 |
n цепная |
|||||||||||||||||||||||||||||
дробь будет конечной, при иррациональном – бесконечной. Пусть имеем разложение числа α1 в цепную дробь.
δ |
1 |
= q1 |
= |
P1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
Выражение |
1 |
|
Q1 |
называется первой подходящей дробью |
||||||||||||||
|
|
|||||||||||||||||
числа α1 . Здесь P1 = q1,Q1 = 1. |
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
δ |
|
= q + |
|
1 |
= q2 ×q1 +1 |
= |
q2 ×P1 + P0 |
= P2 |
, |
|||||||
|
|
|
2 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|||
Выражение |
|
|
|
|
q |
|
q + 0 |
|
|
q ×Q + Q Q |
где |
|||||||
|
|
|
|
|
|
2 |
2 |
|
|
2 |
1 |
0 |
2 |
|||||
|
|
|
|
|
|
|
|
|
|
|||||||||
P0 = 1,Q0 = 0, называется второй подходящей дробью.
35
δ |
|
= q + |
1 |
|
|
|
= q + |
|
q3 |
|
|
= |
q1q2q3 + q1 + q3 |
= |
|
|
1 |
|
|
|
|
|
|
|
|||||
|
3 |
1 |
q2 + |
1 |
q2q3 +1 |
|
q2q3 +1 |
|
||||||
|
|
|
q3 |
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
= q3 (q1q2 +1) + q1 |
= |
|
|
q3P2 + P1 |
= |
P3 |
|
|
|
|
||||
|
q3q2 +1 |
|
q3Q2 + Q1 |
Q3 |
− третья подходящая дробь. При |
|||||||||
этом P3 = q3P2 |
+ P1,Q3 = q3Q2 + Q1. |
|
|
|
||||||||||
По аналогии имеем i – подходящая дробь.
|
|
|
|
|
|
|
|
|
|
|
|
δ |
|
|
= |
P |
|
= |
|
q P− |
+ P− |
2 |
, |
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
3 |
|
i |
|
|
|
|
1 |
i 1 |
|
i |
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
Q |
|
|
q Q − |
+ Q |
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
− |
2 |
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
i |
|
|
|
|
|
i |
i 1 |
|
i |
|
|
|
|
|||
где |
|
P = q P− |
+ P− |
,Q = q Q |
− + Q − |
2 . |
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||
|
i |
|
i i 1 |
|
i 2 |
i |
i i 1 |
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
Одним из важных свойств цепных дробей является тот факт, что |
||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
P |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
если несократимая дробь Q удовлетворяет неравенству |
|
|||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
α |
1 |
− |
P |
|
≤ |
|
1 |
, |
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Q |
|
2Q2 |
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
P |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
то |
|
Q − одна из подходящей дробей числа α1 . Виннер предложил |
||||||||||||||||||||||||||||||||
использовать цепные дроби для атаки на RSA. Оказывается, что если |
||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
kc < |
1 ×n4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
секретный ключ |
|
3 |
|
|
(n – |
модуль), то выполняется неравенство |
||||||||||||||||||||||||||||
|
|
|
|
|||||||||||||||||||||||||||||||
|
k0 |
− |
k |
|
< |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
k |
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
n |
|
|
kc |
|
|
2k02 |
и, |
следовательно, |
|
kc |
|
− |
|
|
|
подходящая |
дробь для |
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
k0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
= 1+ kϕ(n) ), |
рациональной дроби |
n (здесь k0 |
− открытый ключ, k0kc |
||||||||||||||||||||||||||||||||
но тогда один из знаменателей подходящих дробей
36
|
|
Q = q Q − |
+ Q − ,Q = 0,Q = 1,α = k0 |
,q = [α |
] |
, αi+1 = |
1 |
|
|
|
|
||||||||||
|
|
αi − qi |
|
|
|
|
|||||||||||||||
|
|
i |
|
i |
i 1 |
|
i 2 |
|
0 |
1 |
1 |
n |
i |
i |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
является секретным ключом kc . |
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
Рассмотрим работу этого алгоритма на простом примере. Пусть |
|||||||||||||||||||
n |
= |
7387 |
= |
|
× |
|
k |
0 |
= 2405 |
. Зная p, |
q, можно |
определить |
k |
c |
= 3 |
. |
|||||
|
|
83 89 и |
|
|
|
|
|||||||||||||||
Проверим, является ли один из знаменателей подходящих дробей секретным ключом:
k0 = |
2405 = 0 + |
1 |
= 0 + |
|
1 . |
||
n |
7387 |
7387 |
|
3 + |
172 |
|
|
|
|
2405 |
2405 |
|
|
||
На этом этапе Q2 |
= q2 ×Q1 + Q0 = 3×1+ 0 = 3 − секретный ключ. |
||||||
Замечание: при |
определении |
секретного ключа kc каждый |
|||||
знаменатель подходящей дроби Qi проверяется при расшифровании
известного сообщения T0 : Tc = T0k0 modn . Если TcQi modn = T0 , то Qi − секретный ключ, иначе выбирается следующий знаменатель.
7. РЮКЗАЧНЫЙ МЕТОД ШИФРОВАНИЯ
Выберем пару натуральных взаимно простых чисел w, n и будем считать их секретными. Число w назовем множителем, n – модуль НОД(w,n)=1. Дополнительно выберем секретную последовательность
положительных чисел { b1,b2 ,K bm} = b − рюкзачный вектор, такую, что b2 > b1,b3 > b1 + b2 ,K bm > b1 + b2 + K bm−1 и n > b1 + b2 + K + bm . Такая последовательность называется быстрорастущей. На ее основе
построим |
несекретную |
(открытую) |
последовательность |
|||||||
a = { a1,a2 K am} , |
где |
ai = (w×bi )modn |
. Сообщение |
T0 |
= { x1 |
, x2 K xm} |
, |
|||
|
|
|
|
|
|
|
||||
37
являющееся |
набором |
нулей |
|
и единиц, |
шифруется |
по |
|
правилу |
|||||||||||
Tа =x |
|
|
a +x |
|
|
+ Ka +x |
|
|
|
m |
|
|
|
|
|
|
|
|
|
1 |
2 2 |
|
m |
m |
=a x |
|
i |
|
|
|
|
|
|
|
|||||
ш |
1 |
|
|
|
å i |
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
i=1 |
|
. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Для нахождения открытого текста получатель по имеющемуся w |
||||||||||||||||||
вычисляет w−1mod n и находит |
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
m |
|
|
|
|
m |
|
m |
|
|
|
|
|
|
|
|
|
w−1 ×Tш = å(w−1ai )xi = å(w−1w)bi xi = åbi xi = S. |
|
|
|
||||||||||||
|
|
|
|
|
|
|
i=1 |
|
|
|
|
i=1 |
|
i=1 |
|
|
|
|
|
|
Так как получатель знает секретную последовательность b , то |
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
m |
|
|
|
|
|
ему |
остается |
|
только |
решить |
уравнение |
åbi xi = S |
относительно |
||||||||||||
|
i=1 |
|
|||||||||||||||||
неизвестных |
|
x1, x2 K xm , |
т. |
|
е. |
найти открытый |
текст |
T0 . |
|||||||||||
Быстрорастущая последовательность чисел { b1,b2 K bm} |
позволяет |
||||||||||||||||||
легко осуществить это по следующему алгоритму: если |
S ³ bm , то |
||||||||||||||||||
x =1 |
, |
иначе |
|
(S < b ) x = 0 |
. Далее, если |
S - b ³ b − |
|
x − = 1, |
|||||||||||
m |
|
|
|
m |
|
m |
|
m |
m |
1 , то |
m 1 |
|
|||||||
иначе |
|
x − |
= 0. |
В общем виде если |
|
|
|
|
|
|
|
||||||||
|
m 1 |
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
m |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
S - å bj xj ³ bi , |
то xi = 1, иначе xi = 0. |
|
|
|
|
||||||||
|
|
|
|
|
|
j=i+1 |
|
|
|
|
|
|
|
|
|||||
Индекс i принимает значения m,m −1,K 2,1. |
|
|
|
|
|
|
|||||||||||||
|
Этот |
метод можно |
пояснить |
на простом |
примере: если |
из |
|||||||||||||
рюкзака весом S можно достать груз весом bm , то xm = 1 (иначе xm = 0
), тогда вес рюкзака уменьшится и станет равным S - bm . Далее мы
пытаемся извлечь груз весом |
b − |
. Если это удается сделать, то вес |
||||||
m |
1 |
|||||||
рюкзака станет равным |
S - b |
- b |
− |
, т. е. |
x − |
= 1. |
В противном случае |
|
m |
m |
1 |
m 1 |
|
||||
38
он останется прежним S − bm и xm−1 = 0. Процесс продолжается до тех
пор, пока рюкзак не станет пустым (S = 0).
Для шифрования сообщения на русском языке будем использовать буквы алфавита, кроме буквы ё.
А Б В Г Д Е Ж З И Й К |
Л М Н О П |
||||||||||||||
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
Р С Т У Ф Х Ц Ч Ш Щ Ъ |
Ы |
Ь Э Ю Я |
|||||||||||||
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 28 |
29 |
30 |
31 |
|
|
Модуль n возьмем равным 32, множитель wНОД= 3( |
|
(3,32) = 1), |
||||||||||||
буквы сообщения представляются 5-битовыми словами, из-за этого
буква ё не рассматривается. В качестве рюкзачного вектора b возьмем быстрорастущую последовательность {1,2,4,8,16} , которая
должна храниться в секрете. Используя |
ее, находим координаты |
||||||||||
открытого |
(несекретного) |
вектора |
a = { a1,a2 ,a3 |
,a4 |
,a5} |
по формуле |
|||||
|
|
|
|
|
|||||||
ai = (wbi )mod n : |
|
|
|
|
|
|
|
|
|
|
|
a1 = (3×1)mod32 = 3, |
a2 = (3×2)mod32 = 6 , a3 = (3×4)mod32 = 12; |
|
|
||||||||
a4 = (3×8)mod32 = 24 , a5 = (3×16)mod32 = 16. |
|
|
|
|
|
|
|||||
В итоге a = { 3,6,12,24,16} . |
|
|
|
|
|
|
|
|
|
||
|
|
|
|
TПЧЕЛА= { |
} |
|
|
|
|
|
|
Зашифруем |
сообщение |
0 |
|
|
. |
Представим |
буквы |
||||
|
|
|
|||||||||
сообщения |
5-битовыми |
словами, используя |
нумерацию |
букв |
|||||||
в алфавите: |
П −15 = { 01111} ; Ч − 23 = |
{10111} ; |
Е − 5 = { 00101} ; |
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
Л −11 = { 01011} ; |
А − 0 = { 00000} . |
|
|
|
|
|
|
|
|||
39
5
Tш = åai xi .
Шифруем сообщение: |
i=1 |
|
П: (3×0 + 6×1+12×1+ 24×1+16 ×1)mod32 = 58mod32 = 26 − Ъ ;
Ч: (3×1+ 6 ×0 +12 ×1+ 24 ×1+16 ×1)mod32 = 55mod32 = 23 − Ч ;
Е: (3×0 + 6×0 +12×1+ 24×0 +16×1)mod32 = 28mod32 = 28 − Ь;
Л: (3×0 + 6×1+12×0 + 24×1+16×1)mod32 = 46mod32 = 14 − О ;
А: 0 − А.
Витоге
Тш = { ЪЧЬОА} .
Расшифруем полученное сообщение: Tш . Для этого найдем
мультипликативную инверсию для w из условия (w−1 ´w)mod n = 1. Для w = 3 это w−1 = 11.
|
Ъ – 26. |
(11×26)mod32 = 286mod32 = 30. |
|
|
|
|
|
|
|
|
|
Первую букву открытого текста (5-битовое слово) находим из |
|||||
решения уравнения: |
|
|
|
|
|
|
1×x1 + 2 ×x2 + 4 ×x3 + 8 ×x4 +16 ×x5 = 30. |
|
|
||
Согласно |
алгоритму т. к. 30>16, то |
x5 |
= 1. |
Вычисляем |
|
|
|
||||
30 −16 = 14 > 8, |
тогда x4 = 1. Далее аналогично: 14 − 8 = 6 > 4 , x3 = 1; |
||||
6 − 4 = 2 = 2 , x2 = 1; 2 − 2 = 0 < 1, x1 = 0. |
|
|
|
||
Получаем { 01111} = 15− П. По аналогии:
Ч – 23. (11×23)mod32 = 253mod32 = 29.
1´x + 2 ´x |
+ 4´x |
+ 8´x |
+16´xЧ= 29 Þ {10111} = 23 - |
|
|||
1 |
2 |
3 |
|
4 |
|
5 |
. |
|
|
|
|
|
|
|
|
Ь – 28. |
(11×28)mod32 = 308mod32 = 20. |
|
|||||
|
|
|
|
|
|
|
|
1´x + 2 ´x |
+ 4´x |
|
+ 8´x |
4 |
+16´xЕ= 20 Þ { 00101} = 5 - |
|
|
1 |
2 |
3 |
|
5 |
. |
||
|
|
|
|
|
|
|
|
О – 14. (11×14)mod32 = 154mod32 = 26.
40
1´x + 2 ´x |
+ 4 ´x + 8´x |
+16´xЛ= 26 Þ { 01011} =11- |
|
||
1 |
2 |
3 |
4 |
5 |
. |
|
|
|
|
|
|
А – 0. Þ { 00000} = 0 - А. Открытый текст ПЧЕЛА.
8.КРИПТОСИСТЕМА ЭЛЬ-ГАМАЛЯ
Воснову схемы Эль-Гамаля (1985 г.) положен алгоритм шифрования, базирующийся на трудности дискретного
логарифмирования, т. е. для amodx n = b при больших а, п невозможно решить обратную задачу: найти x = loga b . Для того чтобы получить пару ключей ko ,kc (асимметричная криптосистема), необходимо:
1)выбрать большие простые числа р, п ( p < n);
2)выбрать случайное число kc (kc < n) , которое является секретным ключом;
3)вычислить открытый ключ ko = pmodkc n ;
4)для шифрования сообщения T0 выбрать случайное целое число к: 0 < k < n, НОД(k,n −1) = 1;5
5)вычислить два числа а = pmodk n ,b = k0kT0mod n , которые являются шифротекстом Tш (a,b).
Для того чтобы расшифровать Tш , используя секретный ключ kc ,
находят отношение |
|
|
|
|
|
|
|
|
||||
æ |
b |
ömod n = |
æ k0k |
´T0 |
ömod n = |
æ |
pkkc ´T0 |
ömod n = T . |
||||
ç |
|
ç |
|
|||||||||
|
kc ¸ |
ç |
p |
kkc |
¸ |
p |
kkc |
¸ |
0 |
|||
è a |
ø |
è |
|
ø |
è |
|
ø |
|
||||
41
