You are on page 1of 16

TRNG I HC HNG HI VIT NAM

KHOA CNG NGH THNG TIN

BO CO BI TP LN
AN TON BO MT THNG TIN

M PHNG H CH K IN T RSA
Gio vin hng dn: ng Hong Anh
Nhm 1:
1. V nh Trung (Nhm trng)
2. Chu c Thin
3. Mc Vn Ngha
4. Nguyn Trung Kin
Lp

: Cnt49 h1.

Hi Phng - 2012

Bo co bi tp ln M phng h ch k RSA

MC LC
....................................................................................................................................... 2
Chng 1: C s l thuyt..........................................................................................2
....................................................................................................................................... 2
1.Ch k in t............................................................................................................... 2
2.H ch k in t.......................................................................................................... 2
3.H ch k RSA............................................................................................................... 3

Chng 2: Kho st thc t v xc lp d n............................................................4


1.Nhu cu thc tin..........................................................................................................4
2.Gii php........................................................................................................................ 4
3.Thnh lp nhm pht trin...........................................................................................4

Chng 3: Phn tch v thit k.................................................................................5


1.c t yu cu.............................................................................................................. 5
2.Thit k giao din v tng tc ngi dng..............................................................7

Chng 4: Ci t.......................................................................................................8
1.Cc cng c s dng....................................................................................................8
2.Cc giao din................................................................................................................. 9
3.Cc m lnh v thut ton..........................................................................................15

Ti liu tham kho.....................................................................................................16

Chng 1: C s l thuyt
1. Ch k in t
L mt nh danh in t c to ra bi my tnh c cc t chc s dng
nhm t c tnh hiu qu v c hiu lc nh l cc ch k tay.
L mt c ch xc thc ha cho php ngi to ra thng ip nh km mt
m s vo thng ip ging nh l vic k mt ch k ln mt vn bn bnh
thng.
2. H ch k in t
Mt s ch k in t l b 5 (P, A, K, S, V) tha mn cc iu kin di y:
P l tp hu hn cc bc in (thng ip, bn r) c th.
A l tp hu hn cc ch k c th.
V nh Trung Chu c Thin Mc Vn Ngha Nguyn Trung Kin

Bo co bi tp ln M phng h ch k RSA
K l tp khng gian kha (tp hu hn cc kha c th).
Vi mi kha k K tn ti mt thut ton sigk S v mt thut ton xc
mnh verk V. Mi sigk: P A v verk: P x A {TRUE, FALSE} l nhng
hm sao cho mi bc in x P v mi ch k y A tha mn phng trnh
di y.
+ Ver(x, y) = TRUE nu y = sig(x)
+ Ver(x, y) = FALSE nu y sig(x)
Vi mi k K, hm sigk v verk l cc hm a thc thi gian. Hm ver k s l
hm cng khai cn hm sigk l b mt. Khng th d dng tnh ton gi mo ch
k ca B trn bc in x, ngha l vi x cho trc ch c B mi c th tnh c y
ver(x, y ) = TRUE. Mt s ch k khng th an ton v iu kin v mt
ngi C no c th kim tra tt c ch s y trn bc in x nh dng thut ton
ver() cng khai cho ti khi anh ta tm thy ch k ng. V th, nu c thi
gian, C lun c th gi mo ch k ca B. Nh vy mc ch ca chng ta l tm
cc s ch k in t an ton v mt tnh ton.
Ch rng ai c th gi mo ch k ca B trn mt bc in ngu nhin x
bng cch tnh x = ek(y) vi y no ; khi y = sigk(x). Mt bin php xung
quanh vn kh khn ny l yu cu cc bc in cha phn d ch k gi
mo kiu ny khng ph hp vi ton b ni dung ca bc in x tr mt xc sut
rt nh. C th dng hm Bm (hash function) nh MD4, MD5 trong vic tnh kt
ni cc s k in t s loi tr phng php gi mo ny.
3. H ch k RSA
Da vo u im ca h m RSA, nu thit lp c s ch k da trn bi
ton phn tch ra tha s nguyn t th an ton ca ch k s rt cao. Vic thit
lp s xc thc ch k RSA rt n gin, ta ch cn o ngc hm m ha v
gii m. Sau y l s ch k RSA :
Cho n = p*q, trong p, q l cc s nguyn t. t P = A = Z n v nh ngha
K = {(n, p, q, a, b) : n = p*q, p v q l cc s nguyn t, a*b 1(mod (n))}.
Cc gi tr n v b l kha cng khai ; cn p, q l kha b mt.
Vi k = (n, p, q, a, b), ta xc nh :
V nh Trung Chu c Thin Mc Vn Ngha Nguyn Trung Kin

Bo co bi tp ln M phng h ch k RSA
+ sigk(x) = xa mod n
+ verk(x, y) = TRUE x yb (mod n) vi x, y Zn
Thng thng, ch k c kt hp vi hm m ha cng khai. Gi s A mun
gi mt bc in c m ha v c k n cho B. Vi bn r x cho trc, A
s tnh ton ch k ca mnh y = sig A(x) v sau m ha c x, y s dng kha
cng khai eB ca B, kt qu nhn c l z = e B(x, y). Bn m z s c gi ti B,
khi B nhn c z, u tin anh ta gii m vi hm gii m d B ca mnh nhn
c (x, y). Sau anh ta dng hm xc minh cng khai ca A kim tra xem
verA(x, y) = TRUE hay khng.

Chng 2: Kho st thc t v xc lp d n


1. Nhu cu thc tin
Trong qu trnh hc tp mn An ton bo mt thng tin, nhiu khi chng ta phi
tnh ton vi nhng s m rt ln khng th tnh bng tay hay dng ng dng my
tnh ca Windows c.
Cc bi tp lin quan n RSA thng xuyn phi tnh ton vi s m kh ln,
do chng ta rt cn mt chng trnh my tnh tin cho vic hc tp tnh ton
mt cch nhanh chng.
2. Gii php
T nhu cu thc tin i hi chng ta phi xy dng mt ng dng m phng RSA
3. Thnh lp nhm pht trin
Nhm pht trin ng dng m phng h ch k in t RSA gm 4 thnh vin
vi bng phn cng cng vic nh sau:
H tn

Vai tr

Cng vic
- Kho st thc t v xc lp d n
- Gim st cng vic

V nh Trung

Trng nhm

- Phn tch thit k


- H tr k thut
- Kim tra v hon thin chng trnh

V nh Trung Chu c Thin Mc Vn Ngha Nguyn Trung Kin

Bo co bi tp ln M phng h ch k RSA

Chu c Thin

Thnh vin

Nguyn Trung Kin

Thnh vin

Mc Vn Ngha

Thnh vin

- Ci t cc nt sinh
- Ci t cc nt m ha v gii m
- Ci t cc nt tnh v kim tra
- Ci t cc nt k v xc thc ch k
- Ci t cc nt xem, m v lu

Chng 3: Phn tch v thit k


1. c t yu cu
1.1. Mc ch
Xy dng mt chng trnh m phng h ch k RSA p ng nhu cu hc
thut.
1.2. M t tng quan
Chng trnh dng m phng h ch k RSA.
C giao din ngi dng trc quan, d s dng.
H tr tnh ton trn s nguyn ln.
H tr c t ng tnh ton v cho php ngi dng t nhp v c kim tra
tnh hp l ca cc yu t u vo.
Cho php m v lu cc yu t u vo v u ra.
1.3. Yu cu chc nng
Cho php t nhp hoc sinh ngu nhin cc s nguyn t ln p, q vi s bit
c nhp vo ti a l 1024 bit cng nh t ng kim tra xem p, q c phi
l s nguyn t hay khng.
T ng tnh (n) = (p-1)*(q-1) mi khi thay i p hoc q.
Cho php t nhp hoc tnh ton n = p*q cng nh kim tra xem n c bng
p*q hay khng.
V nh Trung Chu c Thin Mc Vn Ngha Nguyn Trung Kin

Bo co bi tp ln M phng h ch k RSA
Cho php t nhp hoc tnh ton e vi e l s nguyn t cng nhau vi (n)
v < n cng nh kim tra xem e c ng l s nguyn t cng nhau vi (n)
hay khng
Cho php t nhp hoc tnh ton d vi d l phn t ngc ca e trn vnh
Z(n) v < n cng nh kim tra xem d c ng l phn t ngc ca e trn
vnh Z(n) hay khng.
Cho php xem kha cng khai (e, n) v kha b mt (d, p, q).
Cho php m file cha kha cng khai (e, n) v kha b mt (d, p, q) c
kim tra tnh hp l ca d liu.
Cho php lu kha cng khai v kha b mt.
Cho php m file cha ni dung bn r, bn m.
Cho php lu file cha ni dung bn r, bn m, bn gii m.
Cho php so snh ni dung bn gii m v bn r.
Cho php m ha bn r, gii m bn m, k ln bn r v xc thc ch k
trn bn m.
1.4. Yu cu phi chc nng
1.4.1. Yu cu v tin cy v hiu sut
Phi p ng c y cc chc nng, c bit l chc nng k v
xc thc ch k phi nhanh v chnh xc.
1.4.2. Yu cu v mi trng
Phn mm hot ng trn mi trng t Microsoft Windows XP SP2 v
Net framework 2.0 tr ln.
1.4.3. Yu cu v giao din
Giao din c trnh by khoa hc, hp l v m bo m thut hi ha
vi mc ch ca phn mm, tun th cc chun v truy cp thng tin.
1.4.4. Thnh phn bn ngoi
C th s dng th vin x l s ln m ngun m bn ngoi.
V nh Trung Chu c Thin Mc Vn Ngha Nguyn Trung Kin

Bo co bi tp ln M phng h ch k RSA
2. Thit k giao din v tng tc ngi dng
Thit k ton b cc chc nng trn cng mt form. B cc form chia ra lm 3
phn chnh theo chiu ngang:
1.5. Phn 1 - bn tri (60%):
Hin th giao din ca cc yu t u vo v chia tip lm 3 phn theo chiu
dc, phn trn l giao din nhp cc s nguyn t ln p v q, phn gia l nhp n
v hin th (n), phn di l giao din nhp e v d.
Giao din nhp p, q: Trn cng bn tri l mt NumericUpdown nhp s
bit, trn cng bn phi l nt Sinh sinh ngu nhin mt s nguyn t, bn
di l mt RichTextBox hin th d liu.
Giao din nhp n: Trn cng bn tri l nt Kim tra kim tra xem n c
bng p*q hay khng, trn cng bn phi l nt Tnh tnh n = p*q, bn
di l mt RichTextBox hin th d liu.
Giao din (n): Mt RichTextBox hin th d liu.
Giao din nhp e: Trn cng bn tri l nt Kim tra kim tra xem e c
nguyn t cng nhau vi (n) hay khng, trn cng bn phi l nt Sinh
sinh ngu nhin mt s e nguyn t cng nhau vi (n), bn di l mt
RichTextBox hin th d liu.
Giao din nhp d: Trn cng bn tri l nt Kim tra kim tra xem d c l
phn t ngc ca e hay khng, trn cng bn phi l nt Tnh tnh d l
phn t nghch o ca e, bn di l mt RichTextBox hin th d liu.
1.6. Phn 2 - gia (10%):
Hin th cc nt lnh chnh bao gm: M ha, Gii m, K, Xc thc, Xem
kha cng khai, Xem kha b mt, M kha cng khai, M kha b mt, Lu kha
cng khai, Lu kha b mt.
1.7. Phn 3 - bn phi (30%):
Hin th giao din Bn r, Bn m, Bn gii m.

V nh Trung Chu c Thin Mc Vn Ngha Nguyn Trung Kin

Bo co bi tp ln M phng h ch k RSA
Giao din nhp Bn r: Trn cng bn tri l nt M m file bn r, trn
cng bn phi l nt Lu lu bn r, bn di l mt RichTextBox
hin th d liu.
Giao din nhp Bn m: Trn cng bn tri l nt M m file bn m,
trn cng bn phi l nt Lu lu bn m, bn di l mt RichTextBox
hin th d liu.
Giao din Bn gii m: Trn cng bn tri l nt So snh kim tra xem
bn gii m c ging bn r hay khng, trn cng bn phi l nt Lu lu
bn gii m, bn di l mt RichTextBox hin th d liu.

Chng 4: Ci t
1. Cc cng c s dng
Microsoft Visual Studio 2008 v 2010, ngn ng C#, netframe work 2.0
Th vin BigInteger (codeproject)
Microsoft Word, Exel 2007 v 2010.

V nh Trung Chu c Thin Mc Vn Ngha Nguyn Trung Kin

Bo co bi tp ln M phng h ch k RSA
2. Cc giao din
1.8. Giao din chnh

1.9. Giao din sinh s nguyn t p vi 512 bit

V nh Trung Chu c Thin Mc Vn Ngha Nguyn Trung Kin

Bo co bi tp ln M phng h ch k RSA
1.10.

Giao din tnh n, sinh e v tnh d

1.11.

Giao din m kha cng khai

V nh Trung Chu c Thin Mc Vn Ngha Nguyn Trung Kin

10

Bo co bi tp ln M phng h ch k RSA

1.12.

Giao din lu kha cng khai

V nh Trung Chu c Thin Mc Vn Ngha Nguyn Trung Kin

11

Bo co bi tp ln M phng h ch k RSA
1.13.

Giao din sau khi m ha

1.14.

Giao din sau khi gii m

V nh Trung Chu c Thin Mc Vn Ngha Nguyn Trung Kin

12

Bo co bi tp ln M phng h ch k RSA

1.15.

Giao din sau khi k

1.16.

Giao din sau khi xc thc ch k

V nh Trung Chu c Thin Mc Vn Ngha Nguyn Trung Kin

13

Bo co bi tp ln M phng h ch k RSA
1.17.

Giao din lu bn r

V nh Trung Chu c Thin Mc Vn Ngha Nguyn Trung Kin

14

Bo co bi tp ln M phng h ch k RSA
1.18.

Giao din m bn m

1.19.

Giao din so snh bn gii m v bn r

3. Cc m lnh v thut ton


1.20.

Hm khi to s nguyn ln t mt chui

BigInteger(string s, int radix);


Vi s l chui s nguyn ln v radix l h c s (chng hn 10 => h thp
phn)
V d:
V nh Trung Chu c Thin Mc Vn Ngha Nguyn Trung Kin

15

Bo co bi tp ln M phng h ch k RSA
BigInteger k = new BigInteger(123456, 10); //k=123456

1.21.

Hm sinh ngu nhin mt s nguyn t ln

static BigInteger genPseudoPrime(int bits, int confidence, Random rand);


Sinh ngu nhin mt s nguyn t ln c s bit l bits, tin cy ca thut ton
xc sut kim tra s nguyn t Rabin Miller l confidence v ngu nhin l
rand.
//V d: sinh ngu nhin s nguyn t c 512 bits, tin cy l 50.

BigInteger p = BigInteger.genPseudoPrime(512, 50, new Random());


1.22.

Hm tnh c s chung ln nht

public BigInteger GCD(BigInteger bi)


//Tnh c s chung ln nht ca hai s nguyn k v phi

k.GCD(phi);
1.23.

Hm tnh phn t ngc

public BigInteger modInverse(BigInteger modulus)


//Tm d l phn t ngc ca e trn vnh s nguyn phi

d = e.modInverse(phi);
1.24.

Hm tnh am mod n

public BigInteger modPow(BigInteger exp, BigInteger n)


//Tm m = m^e mod n

V d: m = m.modPow(e, n);

Ti liu tham kho


1. Gio trnh An ton bo mt thng tin - ThS. Nguyn Hu Tun
2. BigInteger Class ca Chew Keong TAN http://www.codeproject.com/Articles/2728/C-BigInteger-Class
3. Wikipedia

V nh Trung Chu c Thin Mc Vn Ngha Nguyn Trung Kin

16

You might also like