You are on page 1of 15

HC VIN CNG NGH BU CHNH VIN THNG

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

H Ch Minh, ngy 29 thng 3 nm 2015

HC VIN CNG NGH BU CHNH VIN THNG


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

H Ch Minh, ngy 29 thng 3 nm 2015

NHN XT CA GIO VIN


...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................

MC LC
I.TNG QUAN V THUT TON MT M MERKLE-HELLMAN................................................................1
1.

Lch s hnh thnh:..................................................................................................................................1

2.

Khi nim:.................................................................................................................................................1

II. C CH HNH THNH.....................................................................................................................................2


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.

M phng trn Matlab bng giao din ha ngi dng GUI:.........................................................9


a)

Giao din GUI........................................................................................................................................9

b)

Code matlab............................................................................................................................................9

I.TNG QUAN V THUT TON MT M MERKLE-HELLMAN


1. Lch s hnh thnh:
1978, hai ng Merkle Hellman xut mt thut ton m ha PKC
(Public Key Cryptosystems-H m ha cng khai) da trn bi ton xp ba l.
Sau 2 nm, h mt xp ba l Merkle-Hellman b ph v do tnh khng an
ton v bo mt.
2. Khi nim:
Mt h m PKC c to nn t hm kiu 1 chiu. Hm 1 chiu c
hiu:

Khi cho hm y = f(x), c x ta tnh c y d dng, nhng khi cho y


ta kh khn hn khi tm ra x
Tnh tch 3 s nguyn t 11,13,17 ra kt qu 2431, nhng khi cho

a=2431 th rt kh tm 3 s nguyn t m tch bng a.


Theo nn tng , Merkle - Hellman xut mt thut ton m ha
PKC da trn 1 bi ton xp ba l nh sau:
- Cho 1 tp hp cc s dng

s1 , s 2 ,..., s n

tm 1 tp hp ch s S (1,2,...,n) sao cho


VD: Cho (

s1 , s2 , s3 , s4

, 1 i n v 1 s z dng. Hy

s1 s 2 ... s n z

)= (1,3,4,5) v z = 8. Vy ta s c S=(2,4) , S=(1,2,3)

T bi ton ng thng ny chng ta s kho st cc kh nng vn dng


to ra thut ton m khi PKC. S u tin nh sau:
Cho 1 vecto mang a=(
1 khi tin X= (

a1 , a 2 , a3 , a 4

X1, X 2 , X 3 , X 4

Ta thc hin php m ha cho ra m


X 1 * a1 X 2 * a2 X 3 * a3 X 4 * a4

z=
(1)
Gii m th cho z , cho vecto mang v tm X tha mn (1)

Nghin cu v m phng thut ton Merkle-Hellman

Trang

y l 1 hm 1 chiu vi vic to m th d nhng gii m th cc kh,


l c s hnh thnh 1 ca by. m ha c d dng hn th Merkle s
dng 1 vecto mang c bit, l vecto mang siu tng( Super-increasing).
Super-increasing c hiu nh sau:
-Thnh phn i+1 lun tng cc thnh phn trc .
Cho vecto mang siu tng s = (1,3,5,10) v z = 11, ta d dng tm c
X=

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

vi thnh phn ln nht trong

phn cn li ca vector, nu ln hn th thnh phn ny c chn tc l


tng ng bng 1, cn ngc li th
zi

Xi

Xi

tng ng bng 0. Sau tip tc

zi X i

chuyn sang bc sau vi +1 = - .


Vic quan trng chnh l phi ngy trang vecto siu tng thnh 1 vecto
khc ch ngi ch bit thi cn ngi ngoi khng th no bit c. Nn
Merkle-Hellman nu ra 1 cch l bin i dy siu tng theo modulo
nguyn t p vi p >

si

(1 i n).

Nghin cu v m phng thut ton Merkle-Hellman

Trang

II. C CH HNH THNH


Mt m ha cng khai cho php ngi s dng trao i cc thng tin mt
vi nhau vi kha c nhn(PR) c gi b mt cn kha cng khai (PU) th
c a ra. 1 h thng khng th tm ra kha b mt (PR) nu ch bit kha
cng khai (PU).

1. To kha
Khi B mun gi thng tin X=(

X1, X 2 , X 3 , X 4

) cho A , th A phi thc

hin qu trnh to kha. To kha bng cch A chn dy siu tng

s1 , s2 ,..., sn

lm kha mt (PR), sau A i tnh kha cng khai (PU)

t (t1 , t 2 ,..., t n )

, vi

ti a si (mod p)

. A gi t (PU) cho B qua knh mt

trc. Khi B mi dng kha cng khai gi tin cho A.


Vi p l 1 s nguyn t, a nguyn t cng nhau vi p v
p>

si

(1 i n) ; 1 a p-1

A
Dy siu tng s
(PR)

Sinh kha

Kha cng khai t


(PU)

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:

Nghin cu v m phng thut ton Merkle-Hellman

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

Kha cng khai t


ca A
(PU)

M ha
Gii m
A
Thng tin
X

Nghin cu v m phng thut ton Merkle-Hellman

Kha b mt ca A
(PR)

Trang

A nhn c bn m K, khi A s thc hin qu trnh gii m:


Tnh c

a 1

z a 1 y (mod p )

l nghch o ca a theo modulo nguyn t p

a .a 1 mod p

Li c z = s.X nn ta d dng tm li c thng tin X.

Thut ton tm nghch o theo modulo s p.


Vic xy dng Knapsack vi ca by i hi phi tnh
gi tr nghch o ca a theo modul p.
a 1

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 th thut ton ny s cho ta

=1 , tc l

n1

chnh l nghch

n2

VD: Tm nghch o ca 39 theo modulo 11


t

n1

= 39,

n2

=11 , ta c bng tnh nh sau:

Khi to

a1 1

Cp nht
n1

n2

b1 0 b2 1 r mod( n1 , n 2 ) q div (n1 , n 2 )

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

chnh l nghch o ca 39 theo modulo 11.

*Chng ta i tm hiu v d nh sau v h mt Merkle-Hellman:


Gi s A chn dy siu tng s = (2,3,7,15,30) c 5 phn t, dng m ha
mt s 5 bit v chn p=59, a=40. A tnh ra kha cng khai t = (21,2,44,10,20).
Gi t cho B qua knh cng cng.
B mun gi cho A bn tin X = (1,1,0,1,1). Th B tnh bn m:
y = 21+2+10+20=53
B gi y cho A
A nhn c y, v tnh

z a 1 y (mod p)

= 31*53mod 59 = 50. Tip theo A

dng thut gii trn tm ra x :


X 1 * s1 X 2 * s 2 X 3 * s 3 X 4 * s 4 z

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)

Nghin cu v m phng thut ton Merkle-Hellman

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)

Nghin cu v m phng thut ton


Merkle-Hellman
Nhp
s phn t ca

Trang

To chui bit random


x = rand(1,n)

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

2. M phng trn Matlab bng giao din ha ngi dng GUI:


a) Giao din GUI

Bc 1: Nhp s phn t ca dy siu tng s.


Bc 2: Nhp dy siu tng s da trn s phn t cho
Bc 3: Bm (1) Tnh tng ca dy siu tng.

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

Code c gn cho nt (1) nh sau:


function tinhtong_Callback(hObject, eventdata, handles)
Nghin cu v m phng thut ton Merkle-Hellman

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));

Code c gn cho nt (2) nh sau:


function ktnguyento_Callback(hObject, eventdata, handles)
%kiem tra so nguyen to
p=str2num(get(handles.nguyento,'string'));
S=str2num(get(handles.tong,'string'));
dem=0;
for i=1:p
if rem(p,i)==0
dem=dem+1;
end
end;
if p<S
disp('So khong phu hop');
elseif dem==2
disp('So nguyen to phu hop');
else
disp('So vua nhap khong phai la so nguyen to');
end

Code c gn cho nt (3) nh sau:


function run_Callback(hObject, eventdata, handles)
a=str2num(get(handles.soa,'string'));
n=str2num(get(handles.sophantu,'string'));
s=str2num(get(handles.sieutang,'string'));
p=str2num(get(handles.nguyento,'string'));
c=p;
y=0;
x=round(rand(1,n));
%tao khoa cong khai va tinh ban ma y:
for i=1:n
t(i)=rem((a*s(i)),p); %tao khoa cong khai
y=y+x(i)*t(i); %tinh ban ma y
end
%qua trinh giai ma:
%tinh phan tu nghich dao cua a theo modulo p:
b0=0;
b1=1;
while a>0
r=rem(p,a);
if r==0
break;
end
q=fix(p/a);
a1=b0-b1*q;
p=a;
a=r;
b0=b1;
Nghin cu v m phng thut ton Merkle-Hellman

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));

Nghin cu v m phng thut ton Merkle-Hellman

Trang

You might also like