mã hóa thông tin

28
TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHỆ KHOA CÔNG NGHỆ THÔNG TIN Môn: Bảo Mật Thông Tin Bài thực hành số 2 Bài 1: Viết chương trình mã hóa và giãi mã văn bản với thuật toán mã hóa DES. Chương trình có thể thực hiện các chức năng sau: Cho phép nhập văn bản vào hệ thống. Cho phép nhập khóa bảo vệ văn bản. Cho phép ghi File và mở File. 1.1 Hướng dẫn mã hóa DES: DES Là một hệ mật mã được sử dụng rộng rãi nhất trên thế giới. DES được IBM pht trin vào nhng năm 1970 và được xem như cải biên của hệ mật mã LUCIPHER. DES được chấp nhận bi National Bureau of Standards, ngày nay gi là NIST (National Institute of Standards and Technology). DES tr thành chun mã ha d liệu chnh thc của chnh phủ Hoa K vào năm 1977. M ô tả thuật toán: DES là thuật ton mã ha khối (block cipher), mỗi khối d liệu c độ dài 64 bit. Một block bản gốc sau khi mã ha tạo ra

Upload: nguyen-dinh-tham

Post on 15-Nov-2015

9 views

Category:

Documents


1 download

DESCRIPTION

Bảo mật thông tin

TRANSCRIPT

TRNG I HC K THUT CNG NGHKHOA CNG NGH THNG TINMn: Bo Mt Thng Tin

Bi thc hnh s 2

Bi 1: Vit chng trnh m ha v gii m vn bn vi thut ton m ha DES.Chng trnh c th thc hin cc chc nng sau: Cho php nhp vn bn vo h thng.Cho php nhp kha bo v vn bn.Cho php ghi File v m File.1.1 Hng dn m ha DES: DES L mt h mt m c s dng rng ri nht trn th gii. DES c IBM phat trin vao nhng nm 1970 v c xem nh ci bin ca h mt m LUCIPHER. DES c chp nhn bi National Bureau of Standards, ngay nay goi la NIST (National Institute of Standards and Technology). DES tr thanh chun ma hoa d liu chinh thc cua chinh phu Hoa Ky vao nm 1977. M t thut ton: DES l thut ton m ha khi (block cipher), mi khi d liu c di 64 bit. Mt block bn gc sau khi m ha to ra mt block bn m. Qu trnh m ha v gii m u dng chung mt kha. Kha c di l 56 bit, cng thm 8 bit chn l c s dng kim sot li. Cc bit chn l nm cc v tr 8, 16, 2464. tc l c 8 bit th c mt bit kim sot li .

Hnh 1: S hot ng ca DESTheo s hat ng ca DES nh trn ta c th thy:DES thc hin trn tng block bn gc. Sau khi thc hin hon v khi u (Initial Permutation IP) khi d liu c chia lm hai na tri v phi, mi na 32 bit. Qu trnh c lp li qua 16 vng, mi vng l mt hm f. Sau 16 vng lp, hai na tri v phi c kt hp li v thc hin hon v cui cng (hon v ngc Inverse Initial Permutation) kt thc thut ton. Mi vng ca DES c thc hin theo cc bc sau:

Hnh 2: Mt vng hot ng ca DESBc 1: S dng hon v khi u thay i th t cc bit. Bng P3.B10: Bng hon v khi u: (hon v bit 1 thnh bit 58, bit 2 thnh bit 50.)585042342618102605244362820124

625446383022146645648403224168

57494133251791595143352719113

615345372921135635547393123157

Bc 2: Bn gc c chia lm hai na tri v phi, mi na 32 bit.Bc 3: Ban u kha 64 bit c b i 8 bit kim sot li. S lai b c thc hin theo bng sau:

Bng 1:Bng loi b 8 bit kim sot li57494133251791585042342618

10259514335271911360524436

635547393123157625446383022

1466153453729211352820124

Sau kha c chia lm hai na, mi na 28 bit.Bc 4: Cc na ca kha ln lt c dch tri (s bit dch l 1 hay 2 ty theo vng thc hin).Bng 2: Bng dch :Vng12345678910111213141516

S bit dch1122222212222221

Cc na c ghp li vi nhau, hon v v chn ra 48 bit bng cch i ch cc bit theo bng hon v nn - compression permutation ( hay cn gi l hon v la chn- permuted choice):Bng 3: Bng hon v nn: (bit v tr 14 ca kha dch c chuyn ti v tr 1 ca u ra, bit v tr 17 ca kha dch c chuyn ti v tr 2 ca u ra,, bit th 18 b lai b)14171124153281562110

23191242681672720132

415231374755304051453348

444939563453464250362932

Bc 5: 32 bit ca bn gc bn phi c m rng thnh 48 bit XOR vi 48 bit kha. Khi bit ny li thc hin hon v mt ln na, thay i th t cc bit bng cch lp li mt s bit ( hon v m rng - Expansion Permutation).Bng 4: Bng hon v m rng hp E ( bit v tr th 32 ca khi d liu vo c chuyn ti v tr th nht trong khi d liu ra, bit v tr th 4 ca khi d liu vo c chuyn ti v tr th 5 v 7 trong khi d liu ra,)3212345456789

8910111212121314151617

161718192021202122232425

24252627282928293031321

Bc 6: kt qu ca bc 3 v bc 5 c XOR vi nhau.Buc 7: Kt qu ca bc 6 c chuyn thnh 32 bit bng cch s dng hm thay th v la chn.S thay th c thc hin bi 8 hp thay th (substitution boxes, S-boxes). Khi 48 bit c chia thnh 8 khi 6 bit. Mi khi c thc hin trn mt hp S ring bit (separate S-box): khi 1 c thc hin trn hp S1, khi 2 c thc hin trn hp S2Mi hp S l mt bng gm 4 hng v 16 ct. Mi phn t ca hp l mt s 4 bit. Vi su bit vo hp S s xc nh c s hng v s ct tm ra kt qu.Cch thc xc nh kt qu: nhn vo 6 bit ln lt l b1, b2, b3, b4, b5, v b6. Bit b1v b6 c kt hp li thnh mt s 2 bit tng ng vi s hng trong bng (c gi tr t 0 n 3). Bn bit gia c kt hp li thnh mt s 4 bit tng ng vi s ct trong bng ( nhn gi tr t 0 n 15).V d : Dng hp S th 6. Nu d liu nhn vo l 110010. Bit u tin kt hp vi bit cui to thnh 10 (khi i sang s thp phn c gi tr bng 2 tng ng vi hng th 2). Bn bit gia kt hp li thnh 1001(khi i sang s thp phn c gi tr bng 9 tng ng vi ct th 9) => Gi tr cn tm hng 2 ct 9 l 0. Nh vy gi tr 0000 c thay th cho 110010.Dng hp S th nht. Nu d liu nhn vo l 011011. Bit u tin kt hp vi bit cui to thnh 01 (khi i sang s thp phn c gi tr bng 1 tng ng vi hng 1). Bn bit gia kt hp li thnh 1101(khi i sang s thp phn c gi tr bng 13 tng ng vi ct th 13) => Gi tr cn tm hng 1 ct 13 l 5. Nh vy gi tr 0101 c thay th cho 011011.Bng 5: Bng hp S:Hp S th nht.1441312151183106125907

0157414213110612119538

4114813621115129731050

1512824917511314100613

Hp S th hai.1518146113497213120510

3134715281412011069115

0147111041315812693215

1381013154211671205149

Hp S th ba.1009146315511312711428

1370934610285141211151

1364981530111212510147

1101306987415143115212

Hp S th t.7131430691012851112415

1381156150347212110149

1069012117131513145284

3150610113894511127214

Hp S th nm.2124171011685315130149

1411212471315015103986

4211110137815912563014

1181271142136150910453

Hp S th su.1211015926801334147511

1015427129561131401138

9141552812370410113116

4321295151011141760813

Hp S th by.4112141508133129751061

1301174911014351221586

1411131237141015680592

6111381410795015142312

Hp S th tm.1328461511110931450127

1151381037412561101492

7114191214206101315358

2114741081315129035611

Kt qu ca s thay th l 8 khi 4 bit c sinh ra, chng c kt hp li thnh mt khi 32 bit. Khi ny c chuyn ti bc tip theo: hp hon v P (P-box permutation). Hon v bc ny nh x mi bit d liu vo ti mt v tr trong khi d liu ra, khng c bit no b b qua cng nh c s dng hai ln. n cn c gi l hon v trc tip (straight permutation).Bng 6: Bng hp hon v P cho bit v tr ca mi bit cn chuyn (bit 1 chuyn ti bit 16, bit 2 chuyn ti bit 7) 16720212912281711523265183110

28241432273919133062211425

Buc 8: Kt qu ca bc 7 c XOR vi na tri 32 bit c to ra bc 2.Bc 9: kt qu to ra bc 8 tr thnh na phi mi, na phi c (to bc 2) tr thnh na tri mi.Sau khi thc hin ht 16 vng lp hon v cui cng c thc hin kt thc thut ton.Hon v cui cng l nghch o ca hon v khi u.Bng 7: Bng hon v cui 408481656246432397471555236331

386461454226230375451353216129

364441252206028353431151195927

34242105018582633141949175725

0. Cc ch hat ng ca DES C bn ch lm vic uc pht trin cho DES: Ch sch m in t (ECB). Ch phn hi m (CFB). Ch lin kt khi m (CBC Cipher Block Chaining). Ch phn hi u ra (OFB).1.2 Hng dn thc hnhBc 1: Thit K Form : Bc 2: Vit hm x l s kinB2.1 Hm doCopy

B2.2 Hm m Ha v gii m

B2.3 Hm thc hin

B2.4 Vit chc nng M Ha

B2.5 Vit Chc nng Gii M

B2.6 Vit chc nng Ghi FILE

B2.7 Vit chc nng M FILE

Bc 3: Kim Tra

Bi 2: Vit chng trnh m ha v gii m vn bn vi thut ton m ha 3DES.Chng trnh c th thc hin cc chc nng sau: Cho php nhp vn bn vo h thng.Cho php nhp kha bo v vn bn.Cho php ghi File v m File.2.1 Hng dn thut ton TRIPLEDES:TripleDES mt bin th an ton hn ca DES cn c gi l DESede hay 3DES. TripleDES c tnh bo mt cao hn DES do s dng 3 vng DES vi cc kha khc nhau. Vng u tin v vng th ba l vng m ha, vng th hai l vng gii m. DESede c th dng hai hoc ba kha c di 56, 112 hoc 168. nu dng hai kha th kha u tin c dng cho vng th nht v vng th ba, kha th hai dng cho vng th hai. M ha vi ba kha 56 bit ( 168 bit).Bng B1: 3DES M ha vi ba kha 56 bitNGi GINGI NHN

Bc 1: m ha plaintext bng kha th nhtBc 1:gii m bn m vi kha th ba

Bc 2: m ha vn bn c to ra bc 1 bng kha th haiBc 2: gii m vn bn c to ra bc 1 bng kha th hai

Bc 3: m ha vn bn c to ra bc 2 bng kha th ba, to ra bn m gi cho ngi nhn.Bc 3: gii m vn bn c to ra bc 2 bng kha th nht, to ra bn gc do ngi gi gi.

M ha vi hai kha 56 bit ( 112 bit)Bng B2: 3DES M ha vi hai kha 56 bitNGi GINGI NHN

Bc 1: m ha plaintext bng kha th nhtBc 1:gii m bn m vi kha th nht

Bc 2: gii m vn bn c to ra bc 1 bng kha th haiBc 2: m ha vn bn c to ra bc 1 bng kha th hai

Bc 3: m ha vn bn c to ra bc 2 bng kha th nht, to ra bn m gi cho ngi nhn.Bc 3: gii m vn bn c to ra bc 2 bng kha th nht, to ra bn gc do ngi gi gi.

M ha vi mt kha 56 bit Bng B3: 3DES M ha vi mt kha 56 bitNGi GINGI NHN

Bc 1: m ha plaintext Bc 1:gii m bn m nhn c t ngi gi.

Bc 2: gii m vn bn c to ra bc 1

Bc 3: m ha vn bn c to ra bc,to ra bn m gi cho ngi nhn.

Mc d 3DES c tnh bo mt cao hn DES, nhng thc t t c s dng v to ra c bn m phi chy ba ln DES, nn tc chm, chim nhiu ti nguyn.2.2 Hng dn thc hnhBc 1: Thit K Form :

Bc 2: Vit hm x l s kinB2.1: Khai bo cc bin sau

B2.2: Vit phng thc m ha encrypt

B2.3: Vit phng thc gii m decryptB2.4 Vit hm x l s kin m haBc 3: Kim Tra

Bi 3: Vit chng trnh m ha v gii m vn bn vi thut ton m ha AES.Chng trnh c th thc hin cc chc nng sau: Cho php nhp vn bn vo h thng.Cho php nhp kha bo v vn bn.Cho php ghi File v m File.3.1 Hng dn thut ton AES:AES ch lm vic vi khi d liu 128 bt vkhac di 128, 192 hoc 256 bt. Cc kha con s dng trong cc chu trnh c to ra biqu trnh to kha con Rijndael Rijndael c th lm vic vi d liu v kha c di bt k l bi s ca 32 bt nm trong khong t 128 ti 256 bt.Hu ht cc php ton trong thut ton AES u thc hin trong mt trng hu hn. AES lm vic vi tng khi d liu 44byte(ting Anh:state, khi trong Rijndael c th c thm ct). Qu trnhm habao gm 4 bc:a. AddRoundKey mi byte ca khi c kt hp vi kha con, cc kha con ny c to ra t qu trnh to kha con Rijndael.b. SubBytes y l php th (phi tuyn) trong mi byte s c th bng mt byte khc theo bng tra (Rijndael S-box).c. ShiftRows i ch, cc hng trong khi c dch vng.d. MixColumns qu trnh trn lm vic theo cc ct trong khi theo mt php bin i tuyn tnh.Ti chu trnh cui th bcMixColumnsc thay th bng bcAddRoundKeyBcAddRoundKey:Ti bc ny, kha con c kt hp vi cc khi. Kha con trong mi chu trnh c to ra t kha chnh vi qu trnh to kha con Rijndael; mi kha con c di ging nh cc khi. Qu trnh kt hp c thc hin bng cchXORtng bt ca kha con vi khi d liu.

BcSubBytesCc byte c th thng qua bng traS-box. y chnh l qu trnh phi tuyn ca thut ton. Hp S-box ny c to ra t mtphp nghch otrongtrng hu hnGF (28) c tnh cht phi tuyn. chng li cc tn cng da trn cc c tnh i s, hp S-box ny c to nn bng cch kt hp php nghch o vi mt php bin i affine kh nghch. Hp S-box ny cng c chn trnh cc im bt ng (fixed point).

BcShiftRowsCc hng c dch vng mt s v tr nht nh. i vi AES, hng u c gi nguyn. Mi byte ca hng th 2 c dch tri mt v tr. Tng t, cc hng th 3 v 4 c dch 2 v 3 v tr. Do vy, mi ct khi u ra ca bc ny s bao gm cc byte 4 ct khi u vo. i vi Rijndael vi di khi khc nhau th s v tr dch chuyn cng khc nhau.

BcMixColumnsBn byte trong tng ct c kt hp li theo mt php bin i tuyn tnh kh nghch. Mi khi 4 byte u vo s cho mt khi 4 byte u ra vi tnh cht l mi byte u vo u nh hng ti c 4 byte u ra. Cng vi bcShiftRows,MixColumns to ra tnh chtkhuych tncho thut ton. Mi ct c xem nh mt a thc trong trng hu hn v c nhn vi a thcc(x) = 3x3+x2+x+ 2(modulox4+ 1). V th, bc ny c th c xem l phpnhnma trntrong trng hu hn.

Tm li: Thut ton AES c khi d liu 128 bit , di kha 128,192, 256 bit , cu trc mng thay th-hon v , s chu trnh 10,12,14 ty theo di kha.3.2 Hng dn thc hnhBc 1: Thit K Form :

Bc 2: Vit hm x l s kinB2.1: Vit hm x l s kin ng nhp

B2.2: Vit hm x l s kin ng k

B2.3: Vit hm x l s kin m ha

B2.3 Vit hm x l s kin gii mB2.4 Vit hm x l s kin ghi File

B2.5 Vit hm x l s kin m FileBc 3: Kim Tra

Bi Tp: Vit phn mm m ha vn bn vi cc thut ton m ha trn.Chng trnh c th thc hin cc chc nng sau: Cho php nhp vn bn vo h thng.Cho php nhp kha bo v vn bn.Cho php m File v Ghi File. Cho php bn gi m ha d liu v bn nhn m ha d liu vi kha K. ( sinh vin nghin cu vit them chc nng..)