CH
NG 4:
Data Encryption Standard và
Advanced Encryption Standard
N i dung
Data Encryption Standard
Advanced Encryption Standard (
c thêm)
Mã hóa tích (Product Cipher)
Mã hóa ch s d ng phép thay th (substitution) hay
phép i ch (transposition) không an toàn (do c
tính c a ngôn ng )
S d ng liên ti p các thao tác mã hóa n gi n s
t o ra cách mã hóa thông tin an toàn h n
Substitution k t h p v i Substitution an toàn h n 1
phép Substitution
Transposition k t h p v i Transposition an toàn h n 1
phép Transposition
Substitution k t h p Transposition cho k t qu an toàn
h n nhi u so v i vi c ch dùng m t lo i thao tác (thay
th hay i ch )
ây là ý t ng m
hóa hi n i.
u cho các ph
ng pháp mã
Quy trình mã hóa theo kh i
Quy trình mã hóa theo kh i
Data Path:
! "ng, quy trình mã hóa bao
g#m nhi u chu k$ mã hóa (round) liên ti p nhau;
m i chu k$ g#m nhi u thao tác mã hóa
Key Schedule: T% khóa g&c (secret key), phát sinh
(có quy lu't) các giá tr( khóa s
c s d ng
trong m i chu k$ mã hóa (round key)
Data Encryption Standard
Data Encryption Standard
Mã hóa theo kh&i (block cipher)
Ý t ng: mã hóa tích (product cipher)
Key: 56 bit
Block: 64 bit
c IBM phát tri)n t% *
* áp Lucifer
Chính th+c công b& ,- 1975
c ch n là Chu.n x lý thông tin liên bang
(Federal Information Processing Standard - /0123
n,m 1976
Gi i thu't mã hóa và gi i mã
c công b&
Data Encryption Standard
Thu t toán b o m t DES
V m t khái ni m DES là thu't toán m , ngh4a là
m i ng "i u bi t thu't toán này.
Tuy nhiên chìa khoá c a DES có
dài t i 56
bit, ngh4a là s& l n th t&i a ) tìm
c chìa
khoá 56 n 256, trung bình là 255 =
36.028.797.018.963.968 l n, m t con s& r7t l n!.
DES
c th8c hi n nh" các phép d(ch, hoán v( và
các phép toán logic trên các bit
Quy trình c a thu t toán DES
DES nh'n vào m t thông i p M 64 bit, m t khóa
K 56 bit và cho ra m t b ng mã C 64 bit.
u tiên, áp d ng m t phép hoán v( bit kh i t o
IP vào M cho ra M’: M’ 9 IP(M).
B c hai, chia M’ thành hai ph n: n a trái L0 =
32 bit và n a ph i R0 9 32 bit.
B c ba, thi hành các phép toán sau v i i = 1, 2,
… 16 (có 16 vòng).
Li = Ri-1
Ri = Li-1 ⊕ f(Ri-1, Ki)
Cu&i cùng hoán v( v i phép hoán v( IP-1 )
c
b n mã cu&i cùng C.
Quy trình Mã hóa c a gi i thu t DES
IP: Initial Permutation
FP: Final Permutation
FP = IP-1
Ghi chú:
FP và IP không có ý ngh4a v m t
mã hóa, chi có tác d ng ) n p
d li u vào và ra các kh&i d li u
(theo c ch ph n c+ng gi a th'p
niên 1970!!!)
! "#
Hoán V Bit Kh i T o
58
50
42
34
26
18
10
2
60
52
44
36
28
20
12
4
62
54
46
38
30
22
14
6
64
56
48
40
32
24
16
8
57
49
41
33
25
17
9
1
59
51
43
35
27
19
11
3
61
53
45
37
29
21
13
5
63
55
47
39
31
23
15
7
Ví d : Bit th+ 58 c a x tr thành bit u tiên c a IP(x)
Bit th+ 50 c a x tr thành bit th+ hai c a IP(x)
Quy trình mã hóa
⊕
Li = Ri-1
Ri = Li-1 ⊕ f (Ri-1, Ki)
$
Quy t c m r ng 32 bit thành 48 bit
B ng ch n l a bit E
32
1
2
3
4
5
4
5
6
7
8
9
8
9
10
11
12
13
12
13
14
15
16
17
16
17
18
19
20
21
20
21
22
23
24
25
24
25
26
27
28
29
28
29
30
31
32
1
Hàm $ trong DES
!
)
* "
%
&
⊕
)
'
(
)
S-box
S1
14
4 13
0 15
4
1
2 15 11
8
3 10
5
9
0
7
6 12 11
9
5
3
8
3 10
5
0
7
4 14
2 13
1 14
8 13
6
2 11 15 12
9
2
9
1
5 11
3 14 10
0
6 13
9
7
2 13 12
0
5 10
8 14 12
0
1 10
6
9 11
6
9
3
7 12
0
5 14
15 12
8
4
1 10
6 12
7
7
S2
15
1
8 14
6 11
3 13
4
0 14
7 11 10
13
8 10
7 15
1
"# $%&' (
2
3
4 13
3 15
4
) *
4
1
5
2 11
+
'
8 12
6
&!( ',
-,
5
2 15
9
) *-
S-box
S3
10
0
9 14
6
3 15
13
7
0
9
3
4
13
6
4
9
8 15
1 10 13
0
6
9
5
6 10
1 13 12
7 11
4
2
8
2
8
5 14 12 11 15
1
3
0 11
1
2 12
7
8
7
5 10 14
4 15 14
3 11
5
2 12
9 10
1
2
8
5 11 12
4 15
0
4
7
2 12
1 10 14
9
7 13 15
1
3 14
5
2
8
4
4
5 11 12
7
2 14
S4
7 13 14
3
0
6
6 15
13
8 11
5
10
6
9
0 12 11
3 15
0
6 10
1 13
3
8
9
S-box
S5
2 12
14 11
4
11
2
4
1
2 12
7 10 11
6
8
5
4
1
5
0 15 10
9 12
7 13
1 11 10 13
8 12
7
1 14
7
8 15
2 13
3 15 13
5
0 14
9
3
9
8
6
6
3
0 14
6 15
0
9 10
4
5
3
3
4 14
7
5 11
S6
12
1 10 15
10 15
9
2
6
8
0 13
9
5
6
1 13 14
0 11
3
8
3
7
0
4 10
1 13 11
6
1
6
4
2
7 12
9 14 15
5
2
8 12
2 12
9
5 15 10 11 14
4
3
7
0
8 13
S-box
S7
4 11
13
1
2 14 15
0
8 13
4
9
1 10 14
4 11 13 12
3
7 14 10 15
0 11
6 11 13
7
8
1
4 10
7
3 12
3
9
7
5 10
6
1
5 12
2 15
8
6
6
0
5
9
2
3 12
8
9
5
0 15 14
2
1 10
9
3 14
5
0 12
4 12
5
6 11
0 14
2
6 10 13 15
S8
13
2
8
4
6 15 11
1 15 13
8 10
7 11
4
1
9 12 14
1 14
7
4 10
2
3
7
0
8 13 15 12
9
0
3
7
9
2
3
5
8
5
6 11
B ng hoán v P
P
16
7
20
21
29
12
28
17
1
15
23
26
5
18
31
10
2
8
24
14
32
27
3
9
19
13
30
6
22
11
4
25
Key Schedule
Th't t , K là m t dãy 64 bits trong ó có 56 bits
làm khóa và 8 bits dùng ) ki)m tra l i (Ki)m tra
ch:n l;).
Các bit n
) ki)m tra ch:n l;.
Cho m t khóa K 64 bits, ta s b= các bit ki)m tra
ch:n l; ta s
c 56 bits khóa.
Cho 56 bit này hoán v( theo b ng hoán v( PC-1.
Ta có: PC-1(K) = C0D0
Trong ó: C0 ch+a 28 bit bên trái
D0 ch+a 28 bit bên ph i
Key Schedule
Cho i ch y t% >cho n 16 tính:
Ci = LSi(Ci-1)
Di = LSi(Di-1)
Ki = PC-2(CiDi)
V i LSi là d(ch chuy)n vòng sang trái m t hay hai
v( trí tùy thu c vào giá tr( c a i.
D(ch chuy)n m t v( trí n u i = 1,2,9 hay 16, d(ch
chuy)n hai v( trí trong các tr "ng h p còn l i,
Key Schedule
Các hoán v trong Key Schedule
PC-1
57
49
41
33
25
17
9
1
58
50
42
34
26
18
10
2
59
51
43
35
27
19
11
3
60
52
44
36
63
55
47
39
31
23
15
7
62
54
46
38
30
22
14
6
61
53
45
37
29
21
13
5
28
20
12
4
./*
0
12 2 )2 2
)32)12* 2 )
Các hoán v trong Key Schedule
PC-2
14
17
11
24
1
5
3
28
15
6
21
10
23
19
12
4
26
8
16
7
27
20
13
2
41
52
31
37
47
55
30
40
51
45
33
48
44
49
39
56
34
53
46
42
50
36
29
32
./)1
0
42 12 2 *2
*2 12) 2*)!