|
������ � �������� ����������. ����� � �����.
���� ���-������.
����� ���� ������.
�������� ���� ElGamal ������� � ���, ��� �� ���������� �����������
������� ������� ��������� ax == b (mod p)
�����������. ����� Z(n) ��������� ������ �� ������ n, �����
Z*(n) - ����������������� ������ ��������� ��������� � Z(n). �����
ab (mod n) ����� ���������� ���������� a � ������� b � ������ Z(n).
H������, ��� ���� p - ������� �����, �� ������ Z*(p) ��������� Z(p-1).
����� ����� p � 2p+1 - �������, p>2,v � w - ���������� �����������������
����� Z*(p) � Z*(2p+1) ��������������.
�����. ���� v - ���������� Z*(p), �� v0 = (p + (p+1)v) (mod 2p )
- ���������� ����������������� ������ Z*(2p). (��� ������, ��������, ���������
Z*(p) ).
����� p, 2p+1, v, v0, w ����������� ��� ������ ���������.
������.
������H�� ������ - ����� x �� Z*(p).
�������� ������ (y) ��������� � ��� ����.
- ������� ������� z=v0x (mod 2p), z ����������� ������ Z*(2p).
- H������ ��������� ��� �������� ������ y = wz (mod 2p+1),
y ����������� ������ Z*(2p+1).
�������. ��� ����� ������ ���������� ������ (x) �������� ������ (y)
����� �������� ���������� ����������������� ������ Z*(2p+1).
������� �������, ��������� ya = b (mod 2p+1) ��������� ������������
a ��� ����� b.
��������������. ����� w^z ����� ���������� ������ Z*(2p+1) iff
����� z � 2p ������� ������. H� z = v0x (mod 2p), ��� v0 - ����������
������ Z*(2p).
�������HH�� �������.
����� s - ����� (����������), � �������� ���� ����� ����������� �������,
s ����������� ������ Z(2p). ��� ����� �������� ��������� �����
r �� ������ Z*(2p), ���������� Z*(p), � � �������� ������� ������
���� ����� (a,b), ���
a = a(r,s) = z-1*r*s = v0(-x)*r*s (mod 2p);
b = b(r,s) = wr (mod 2p+1).
��� ���
Z*(2p) = Z*(p)+Z*(2) = Z*(p) = Z(p-1),
��
1/z = z-1 = v0-x = v0(p-1-x).
����� �������, ��� ����������� ������� ��������� ����� ��������� ������
(x), ������ ������ z=v0x.
��� �������� ����������� ������� ����� ��������������� ����������
ya = bs (mod 2p+1).
� ����� ����,
ya = (wz)^(z-1*r*s) = w^(z*z-1*r*s) = wrs = (wr)^s = bs (mod 2p+1)
�������������, ��� �������� ����������� ������� ���������� ����� ������
�������� ������ (y).
��� ���������� ������� ����� s(����) ��������� � ������� ����������������
���-������� (������ MD4, �� ������).
����:
�����������.
p, 2p+1 - ������� �����,
v, w - ���������� ����� Z*(p) � Z*(2p+1) �������������,
v0 = p + (p+1)v - ���������� Z*(2p),
x - ��������� ������, ����� �� Z(p-1),
z - ������������� ��������� �� Z(2p),
y - �������� ������, ����� �� Z*(2p+1),
s - �������������� �����,
r - ��������� ����� �� Z(2p),
(a,b) - ����������� �������,
a �� Z(2p),
b �� Z*(2p+1),
(c,d) - ������������� ���������,
c �� Z*(2p+1),
d �� Z*(2p+1),
e - ������������� ��������� �� Z*(2p+1).
H��������� ��������� ����� �� ����������. x =>y
- v0 = p + (p+1)*v (mod 2p)
- z = v0x (mod 2p)
- y = wz (mod 2p+1)
����������� ������� x, s, r =>a, b (r - ���������)
- v0 = p + (p+1)*v (mod 2p)
- a = v0(p-1-x)*r*s (mod 2p)
- b = ws (mod 2p+1)
�������� ������� y, s, a, b =>y/n
- ya == bs (mod 2p+1)
���������� y, s, r =>c, d
- e = yr (mod 2p+1)
- c = wr (mod 2p+1)
- d = s*e (mod 2p+1)
����������� x, c, d =>s
- v0 = p + (p+1)*v (mod 2p)
- z = v0x (mod 2p)
- 1/e = c2p-z (mod 2p+1)
- s = d/e (mod 2p+1)
| |