You are on page 1of 22

Mt m i xng Gii thut DES

Phm Nguyn Khang BM. Khoa hc my tnh pnkhang@cit.ctu.edu.vn

Data Encryption Standard


DES c cng nhn vo nm 1977 bi Vin nghin cu quc gia v chun ca M (NIST National Institut of Standards and Technology) Nguyn l:
S dng mt kha K to ra n kha con K1, K2, , Kn Hon v d liu (Initial Permutation) Thc hin n vng lp, mi vng lp
D liu c chia thnh hai phn p dng php ton thay th ln mt phn, phn cn li gi nguyn Hon v 2 phn cho nhau (tri phi)

Hon v d liu (Final Permutation)

Simplified DES Gii thiu


Gii thut DES n gin ha (S-DES) c pht trin bi GS. Edwward Schaefer ti i hc Santa Clara vo nm 1996. Gii thut S-DES vi t tham s hn DES, ch mang tnh hn lm, gip sinh vin c mt khung nhn tng qut trc khi tm hiu gii thut DES. Mt m ha: dng khi bng r 8-bit v kha 10bit, sn sinh khi bng m 8-bit. Gii mt m: dng khi bng m 8-bit v kha 10-bit, sn sinh khi bng r 8-bit.

S-DES Quy trnh chnh


Mt m ha:
Ciphertext = IP-1(fk2(SW(fk1(IP(Plaintext))))) Trong K1 = P8(Shift(P10(key))) K2 = P8(Shift(Shift(P10(key))))

Gii mt m:
Plaintext = IP-1(fk1(SW(fk2(IP(Ciphertext)))))

S-DES Sinh kha


Mt kha 10-bit c chia s gia ngi gi v ngi nhn T kha ny, 2 kha con c sinh ra cung cp cho cc bc ring bit ca qu trnh m ha v gii m. P10 c dng: 3 5 2 7 4 10 1 9 8 6 P8 c dng: 6 3 7 4 8 5 10 9 V d: kha 1010000010 P10: 10000 01100 LS-1: 00001 11000 P8 (K1): 1010 0100 LS-2: 00100 00011 P8 (K2): 0100 0011

S-DES Mt m ha
IP: 2 6 3 1 4 8 5 7 IP-1: 4 1 3 5 7 2 8 6 fK(L, R) = (L F(R, SK), R) SK l kha con (K1 hoc K2) E/P: 4 1 2 3 2 3 4 1 P4 : 2 3 4 1 Hp thay th S-Box:
S0 S1

SW: hon v hai na khi 4-bit

S-DES Mt m ha
Ghp bit 1, bit 4 lm hng Ghp bit 2, bit 3 lm ct Tra bng, i gi tr ra s nh phn (2 bit) V d:
u vo ca S0 l 0111 Bit 0 & 4: 01 hng 1 Bit 2 & 3: 11 ct 3 Tra bng c 0 00
0 1 S1 2 3 0 0 S0 1 2 3 1 3 0 3 0 0 2 3 2 1 0 2 2 1 1 1 0 0 1 2 3 1 1 3 2 2 1 1 0 3 2 0 3 2 3 3 3 0 3

DES
Kha
L thuyt: 56 bits = 7 bytes Thc t (trn Java) s dng 8 bytes (1 byte khng s dng) Sinh ra 16 kha con K1, K2, , K16

Khi:
64 bits

S vng lp:
16

DES S hot ng

DES Tm tt gii thut


To 16 kha con C [0]D [0] = PC-1(KEY) for i = 1 to 16 C[i] = LeftShift[i](C[i-1]) D[i] = LeftShift[i](D[i-1]) K[i] = PC-2(C[i]D[i]) end for M ha khi d liu L[0]R[0] = IP(plain block) for i=1 to 16 L[i] = R[i-1] R[i] = L[i-1] XOR F(R[i-1], K[i]) end for cipher block = FP(R[16]L[16])

DES Tm tt gii thut


Gii m khi d liu
R[16]L[16] = IP(cipher block) for i=1 to 16 R[i-1] = L[i] L[i-1] = R[i] xor f(L[i], K[i]) end for plain block = FP(L[0]R[0])

DES nh gi hiu nng


Kha 56 bits c 256 = 7.2 * 1016 kha Tn cng kiu brute-force vi 1 encryption/us mt 1142 nm Trn thc t, vi nhng thit b chuyn dng v phn cng t tin (20 triu USD vo nm 1977) c th b kha DES trong 10 gi

An ton hn na vi DES: 3-DES (TripleDES)


M ha DES DES-1 DES

Bn r

K1

K2

K3

Bn mt

DES-1

DES

DES-1

Gii m

Gii thut m ha khc


Blowfish
C th hot ng vi b nh < 5KB Kch thc kha thay i, c th n 448 bit

AES: Advanced Encryption Standard RC2 v RC4


Do Ron Rivest(Rons code) ngh Kch thc kha t 1 n 2048 bit

RC5
Kch thc kha l mt tham s u vo

IDEA: International Data Encryption Algorithm


Kha 128 bit, c s dng bi PGP

Phng php m ha khi - ECB


ECB Electronic Codebook Chia thng ip thnh cc khi 64 bits, nhi thm d liu vo khi cui (nu cn thit) M ha: Cj = Ek(Pj)

Phng php m ha khi - ECB


Gii m: Pj = Dk(Cj) Ch thch hp cho vic m ha cc thng ip ngn. Bng m ca thng ip di c tnh an ton khng cao.

Phng php m ha khi - CBC


CBC Cipher Block Chaining M ha: Cj = Ek(Cj-1 XOR Pj) C hai pha m ha v gii m u dng chung vector IV (initialization vector) thao tc trn khi d liu u tin

Phng php m ha khi - CBC


Gii m: Pj = Cj-1 XOR Dk(Cj) Ch khi u tin:
C0 = Ek(IV XOR Pj) P0 = IV XOR Dk(C1)

Phng php m ha khi - CFB


CFB Cipher FeedBack M ha: Cj = Pj XOR Ek(Cj-1)

Phng php m ha khi - CFB


Gii m: Pj = Cj XOR Dk(Cj-1)

Phng php m ha khi - OFB


OFB Output FeedBack M ha

Phng php m ha khi - OFB


Gii m

You might also like