ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MÃ DES
NGÔ THỊ TUYẾT HÀ – T012825
II. HỆ MÃ CHUẨN DES (Data Encryption Standard)
II.1 Đặc tả DES
Phương pháp DES mã hóa từ x có 64 bit với khóa k có 56 bit thành một từ có y 64 bit.
Thuật toán mã hóa bao gồm 3 giai đoạn:
1. Với từ cần mã hóa x có độ dài 64 bit, tạo ra từ x
0
(cũng có độ dài 64 bit) bằng cách
hoán vò các bit trong từ x theo một hoán vò cho trước IP (Initial Permutation). Biểu diễn
x
0
= IP(x) = L
0
R
0
, L
0
gồm 32 bit bên trái của x
0
, R
0
gồm 32 bit bên phải của x
0
L
0
R
0
x
0
được phát sinh bằng cách hoán vò
các bit trong khóa K cho trước).
L
i
-1
R
i
-1
f
K
i
⊕
L
i
R
i
Hình.2 Quy trình phát sinh dãy 64 bit L
i
R
i
từ dãy 64 bit L
i-1
R
i-1
và khóa K
i
3. Áp dụng hoán vò ngược IP
Hàm f được sử dụng ở bước 2 là
4
S
5
S
6
S
7
S
8
C
1
C
2
C
3
C
4
C
5
C
6
C
7
C
8
f(A,J)
E
+
• Sử dụng 8 ma trận S
1
, S
2
, , S
8
, mỗi ma trận S
i
có kích thước 4×16 và mỗi dòng của
ma trận nhận đủ 16 giá trò từ 0 đến 15. Xét dãy gồm 6 bit B
j
= b
1
b
2
b
3
b
4
b
5
b
6
,
S
j
(B
j
) được xác đònh bằng giá trò của phần tử tại dòng r cột c của S
C
4
C
5
C
6
C
7
C
8
. Dãy 32
bit thu được bằng cách hoán vò C theo một quy luật P nhất đònh chính là kết quả của
hàm F(A, J)
các hàm được sử dụng trong DES.
Hoán vò khởi tạo IP sẽ như sau: IP
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
Điều này có nghóa là bit thứ 58 của x là bit đầu tiên của IP(x); bit thứ 50 của x là
bit thứ hai của IP(x) v.v.
21
64
63
62
61
32
31
30
29
ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MÃ DES
NGÔ THỊ TUYẾT HÀ – T012825
36
35
34
33
4
3
2
1
44
43
42
41
12
11
10
9
52
51
50
5
9
13
17
21
25
29
2
6
10
14
18
22
26
30
3
7
11
15
19
23
27
31
4
8
12
16
20
24
28
8
2
2
14
13
4
15
2
6
9
11
13
2
1
8
1
11
7
3
10
15
5
10
6
12
11
6
12
9
3
14
8
8
4
7
10
14
7
11
1
6
15
10
3
11
2
4
15
3
8
13
4
4
14
1
2
9
12
5
11
3
10
13
13
1
0
7
6
10
9
0
4
13
14
9
9
0
6
3
8
6
3
4
15
9
15
6
3
8
14
2
8
1
7
12
S
4
ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MÃ DES
NGÔ THỊ TUYẾT HÀ – T012825
7
13
10
3
13
8
6
15
14
11
9
0
3
5
0
6
0
6
11
1
5
12
12
10
2
7
4
14
8
2
15
9
4
14S
5
2
14
4
11
12
11
2
8
4
15
3
15
12
0
15
10
5
9
13
3
6
10
0
9
3
4
14
8
0
5
9
6
14
3
S
6
12
10
0
6
7
11
13
1
0
14
3
13
4
1
4
14
10
7
14
0
1
6
7
11
13
0
5
3
11
8
11
4
8
1
7
10
13
10
14
7
3
14
10
9
12
3
15
5
9
5
6
0
7
12
8
15
5
2
0
14
10
4
8
1
7
6
10
9
4
15
3
12
10
11
7
14
8
1
4
2
13
10
12
0
15
9
5
6
12
3
6
19
22
7
12
15
18
8
27
13
11
20
28
23
31
24
3
30
4
21
17
26
10
14
9
6
25
ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MÃ DES
NGÔ THỊ TUYẾT HÀ – T012825
K là xâu có độ dài 64 bit, trong đó có 56 bit dùng làm khóa và 8 bit dùng để kiểm
i
= PC-2(C
i
D
i
), LS
i
biểu diễn phép chuyển chu trình (cyclic shift) sang trái hoặc của
một hoặc của hai vò trí tùy thuộc vào trò của i; đẩy một vò trí nếu i = 1, 2, 9 hoặc 16 và
đẩy 2 vò trí trong những trường hợp còn lại. PC-2 là một hoán vò cố đònh khác.
Việc tính lòch khóa được minh họa như hình vẽ sau:
LS
2
LS
16
LS
16
C
16
D
16
PC-2 K
16
ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MÃ DES
NGÔ THỊ TUYẾT HÀ – T012825
1
10
19
63
7
14
21
58
23
30
37
12
18
27
36
15
22
29
4
PC-2
14
3
23
16
41
30
44
46
17
28
19
7
50
40
49
42
11
15
Bây giờ ta sẽ hiển thò kết quả việc tính lòch khóa. Như đã nhận xét ở trên, mỗi
vòng sử dụng khóa 48 bit tương ứng với 48 bit trong K. Các thành phần trong các bảng sau
sẽ chỉ ra các bit trong K được sử dụng trong các vòng khác nhau.