Professional Documents
Culture Documents
Merkle Hellman #
Merkle Hellman #
C S TI THNH PH H CH MINH
--------- ----------
BO CO TIU LUN:
NGHIN CU V M PHNG THUT TON
MT M
MERKLE - HELLMAN
GVHD:
Ths. Nguyn c Ch
Lp:
D11CQVT01
SVTH:
L Tn Thnh
Nguyn Mnh Huy
Nguyn Minh Hng
V nh Trung Tn
L Thanh Tng
BO CO TIU LUN:
NGHIN CU V M PHNG THUT TON
MT M
MERKLE - HELLMAN
GVHD:
Ths. Nguyn c Ch
Lp:
D11CQVT01
SVTH:
L Tn Thnh
Nguyn Mnh Huy
Nguyn Minh Hng
V nh Trung Tn
L Thanh Tng
MC LC
I.TNG QUAN V THUT TON MT M MERKLE-HELLMAN................................................................1
1.
2.
Khi nim:.................................................................................................................................................1
To kha.....................................................................................................................................................3
2.
M ha:......................................................................................................................................................3
3.
Gii m:......................................................................................................................................................4
III. NG DNG......................................................................................................................................................6
IV. S V CA GII PHP DNG KNAPSACK (1982-1984)...................................................................6
1.
im yu:...................................................................................................................................................6
2.
:...................................................................................................................................................................6
IV. M PHNG......................................................................................................................................................7
1.
S thut ton:.......................................................................................................................................7
2.
b)
Code matlab............................................................................................................................................9
s1 , s 2 ,..., s n
s1 , s2 , s3 , s4
, 1 i n v 1 s z dng. Hy
s1 s 2 ... s n z
a1 , a 2 , a3 , a 4
X1, X 2 , X 3 , X 4
z=
(1)
Gii m th cho z , cho vecto mang v tm X tha mn (1)
Trang
X1, X 2 , X 3 , X 4
t z =
X 1 * s1 X 2 * s2 X 3 * s3 X 4 * s4
sao cho z =
nh sau:
z0
X4 1
z1 z 0 s 4 1
X3 0
z 2 z1 1
X2 0
z 2 z1 z 3 1
X1 1
z 4 z 3 s1 0
bc i, tng ch l
zi
(
(
(
X1 X 2 X 3
X1 X 2
X1
1)
0 1)
0 0 1)
(1 0 0 1)
.Ta em so snh
zi
Xi
Xi
zi X i
si
(1 i n).
Trang
1. To kha
Khi B mun gi thng tin X=(
X1, X 2 , X 3 , X 4
s1 , s2 ,..., sn
t (t1 , t 2 ,..., t n )
, vi
ti a si (mod p)
si
(1 i n) ; 1 a p-1
A
Dy siu tng s
(PR)
Sinh kha
2. M ha:
B mun trao bn tin
X ( X 1 , X 2 ,..., X n )
cho A, th B tnh bn m K nh
sau:
Trang
y X i ti
i 1
B gi y cho A
Kha cng khai t
(PU)
Thng tin
X
y
3. Gii m:
A dng kha cng khai m ha nhng li dng kha b mt gii m.
B
Thng tin
X
M ha
Gii m
A
Thng tin
X
Kha b mt ca A
(PR)
Trang
a 1
z a 1 y (mod p )
a .a 1 mod p
Thut ton tm x =
mod p, sao cho xa = 1 (mod p)
c gi l thut ton GCD m rng hay Euclide m
rng (GCD - Greatest common divior - c s chung ln
nht).
Trong khi i tm USCLN ca hai s nguyn
lun cc gi tr a,b sao cho GCD(
T suy ra nu ta bit (
tm c a, b tho mn
o ca a theo modulo
n1 , n 2
n1 , n2
a.n1 b.n2
n1
n2
a.n1 b.n 2
,) =
ngi ta s tnh
=1 , tc l
n1
chnh l nghch
n2
n1
= 39,
n2
Khi to
a1 1
Cp nht
n1
n2
n1 n 2
a1 a 2 b1 b2 a 2 a1 q * a 2 b2 b1 q * b2
a1
39
11
6
3
1
11
6
5
1
0
6
5
1
1
1
1 thut ton Merkle-Hellman
-1
Nghin cu v 5m phng
b1
a2
b2
0
1
-3
4
0
1
-1
2
1
-3
4
-7
Trang
a a2 2
Thy c
z a 1 y (mod p)
tng ng vi
X 1 * 2 X 2 * 3 X 3 * 7 X 4 *15 X 5 * 30 50
z z0
X5 1
z1 z 0 s 5 50 30 20
X4 1
z 2 z1 s 4 20 15 5
X3 0
z3 z 2 5
X2 1
z 4 z3 s2 5 3 2
X1 1
z 5 z 4 s1 2 2 0
(
(
(
(
X1 X 2 X3 X 4
X1 X 2 X 3
X1 X 2
X1
1)
1 1)
0 1 1)
1 0 1 1)
(1 1 0 1 1)
Trang
III. NG DNG
ng dng r rng nht ca mt m ha Merkle-Hellman ni ring v kha
cng khai ni chung l bo mt. mt vn bn c m ha bng kha cng khai
ca mt ngi s dng th ch c th gii m vi kha b mt ca ngi .
Cc thut ton to ch k s kha cng khai c th dng nhn thc. Mt
ngi s dng c th m ha vn bn vi kha b mt ca mnh. Nu mt ngi
khc c th gii m vi kha cng khai ca ngi gi th c th tin rng vn bn
thc s xut pht t ngi gn vi kha cng khai .
Cc c im trn cn c ch cho nhiu ng dng khc nh: tin in t,
tha thun kha.
IV. S V CA GII PHP DNG KNAPSACK (1982-1984)
1. im yu:
Tn ti kh nng c ngi c th tm ra kha b mt, cha c thut ton m
ha kha bt i xng no c chng minh l an ton trc cc tn cng da
trn bn cht ton hc. Nhiu im yu ca 1 s thut ton m ha kha bt i
xng c tm ra trong qu kh.
2. :
Shamir-Adleman ch ra ch yu ca GP ny bng cch i tm 1 cp (s,p)
sao cho n c th bin i ngc a v a (t Public key v Private key).
1984, Brickell tuyn b s v ca h thng Knapsack vi dung lng tnh
ton khong 1 gi my Cray -1, vi40 vng lp chnh v c 100 trng s.
IV. M PHNG
1. S thut ton:
Begin
... s nguyn t dy
siu tng
Tnh
Nhp
Nhp
kha
Nhp
s
dy
cng
nguyn
1 siu
acng(PU)
<tng
pt p
T
ti a si (mod p)
Trang
Bn m
n
K X iti
i 1
Qu trnh gii m
T a 1 K (mod p)
i = n1
T si
xi 0
T
T T si
Thng tin X
xi 1
End
Nghin cu v m phng thut ton Merkle-Hellman
Trang
s1 , s2 ,..., sn
si
Bc 4: Nhp s nguyn t p theo iu kin p > (1 i n), bm (2) Kim tra xem s va nhp c l s nguyn t khng.
Bc 5: Nhp s a, a nguyn t cng nhau vi p (1 a p-1)
Bc 6: Bm (3) Kt qu s hin th r rng trn giao din.
b) Code matlab
Nt (1), (2), (3) l thc hin lnh hnh thnh nn bi m phng ny trn
matlab
Trang
n=str2num(get(handles.sophantu,'string'));
S=0;
%tinh tong day sieu tang nhap vao:
s=str2num(get(handles.sieutang,'string'));
for j=1:(n)
S=S+s(j);
end
set(handles.tong,'string',num2str(S));
Trang
b1=a1;
end
if a1<0
a1=a1+c;
end
z=rem((a1*y),c);
%giai ma ban tin bang thuat toan xep ba lo:
m=zeros(1,n);
for i=n:-1:1
if z>=s(i)
z=z-s(i);
m(i)=1;
else
m(i)=0;
end
end
set(handles.phantunghichdao,'string',num2str(a1));
set(handles.data,'string',num2str(x));
set(handles.khoacongkhai,'string',num2str(t));
set(handles.banma,'string',num2str(y));
set(handles.ketqua,'string',num2str(m));
Trang