Phương pháp DES mã hóa từ xcó 64 bit với khóa kcó 56 bit thành một từ có y64 bit.
Thuật toán mã hóa bao gồm 3 giai đoạn:
1. Với từ cần mã hóa xcó độ dài 64 bit, tạo ra từ x0(cũng có độ dài 64 bit) bằng cách
hoán vị các bit trong từ xtheo một hoán vị cho trước IP(Initial Permutation)
7 trang |
Chia sẻ: luyenbuizn | Lượt xem: 1636 | Lượt tải: 0
Nội dung tài liệu Đồ án Bảo mật thông tin - Hệ mã Des, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
ĐỒ Á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ừ x0 (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
x0 = IP(x) = L0R0, L0 gồm 32 bit bên trái của x0, R0 gồm 32 bit bên phải của x0
L0 R0
x0
Hình.1 Biểu diễn dãy 64 bit x thành 2 thành phần L và R
2. Xác định các cặp từ 32 bit Li, Ri với 1≤ i ≤ 16theo quy tắc sau:
Li = Ri-1
Ri = Li-1⊕ f (Ri-1, Ki)
với ⊕ biểu diễn phép toán XOR trên hai dãy bit, K1, K2, ..., K16 là các dãy 48 bit phát
sinh từ khóa K cho trước (Trên thực tế, mỗi khóa Ki được phát sinh bằng cách hoán vị
các bit trong khóa K cho trước).
Li-1 Ri-1
f Ki
⊕
Li Ri
Hình.2 Quy trình phát sinh dãy 64 bit LiRi từ dãy 64 bit Li-1Ri-1và khóa Ki
3. Áp dụng hoán vị ngược IP-1 đối với dãy bit R16L16, thu được từ y gồm 64 bit. Như
vậy, y = IP-1 (R16L16)
ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MÃ DES
NGÔ THỊ TUYẾT HÀ – T012825
Hàm f được sử dụng ở bước 2 là
A
B1 B2 B3 B4 B5 B6 B7 B8
S1
J
E(A)
S2 S3 S4 S5 S6 S7 S8
C1 C2 C3 C4 C5 C6 C7 C8
f(A,J)
E
+
P
ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MÃ DES
NGÔ THỊ TUYẾT HÀ – T012825
Hàm f có gồm 2 tham số: Tham số thứ nhất A là một dãy 32 bit, tham số thứ hai J là
một dãy 48 bit. Kết quả của hàm f là một dãy 32 bit. Các bước xử lý của hàm f(A, J)như
sau:
• Tham số thứ nhất A (32 bit) được mở rộng thành dãy 48 bit bằng hàm mở rộng E.
Kết quả của hàm E(A) là một dãy 48 bit được phát sinh từ A bằng cách hoán vị theo
một thứ tự nhất định 32 bit của A, trong đó có 16 bit của A được lập lại 2 lần trong
E(A).
• Thực hiện phép toán XOR cho 2 dãy 48 bit E(A) và J, ta thu được một dãy 48 bit B.
Biểu diễn B thành từng nhóm 6 bit như sau:B = B1B2B3B4B5B6B7B8
• Sử dụng 8 ma trận S1, S2,..., S8, mỗi ma trận Si 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 Bj = b1b2b3b4b5b6,
Sj(Bj) được xác định bằng giá trị của phần tử tại dòng r cột c của Sj, trong đó, chỉ số
dòng r có biểu diễn nhị phân là b1b6, chỉ số cột c có biểu diễn nhị phân là b2b3b4b5.
Bằng cách này, ta xác định được các dãy 4 bit Cj = Sj(Bj), 1 ≤ j ≤ 8.
• Tập hợp các dãy 4 bit Cj lại. ta có được dãy 32 bit C = C1C2C3C4C5C6C7C8. 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.
Hoán vị ngược IP-1 sẽ là:
IP-1
40
39
38
37
8
7
6
5
48
47
46
45
16
15
14
13
56
55
54
53
24
23
22
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
49
20
19
18
17
60
59
58
57
28
27
26
25
Hàm mở rộng E được đặc tả theo bảng sau:
E – bảng chọn bit
32
4
8
12
16
20
24
28
1
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
32
5
9
13
17
21
25
29
1
Tám S-hộp và hoán vị P sẽ được biểu diễn như sau:
S1
14
0
4
15
4
15
1
12
13
7
14
8
1
4
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
12
11
7
14
5
9
3
10
9
5
10
0
0
3
5
6
7
8
0
13
S2
15
3
0
13
1
13
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
7
0
8
6
2
1
12
7
13
10
6
12
12
6
9
0
0
9
3
5
5
11
2
14
10
5
15
9
S3
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
5
10
0
7
1
2
11
4
13
8
1
15
12
5
2
14
7
14
12
3
11
12
5
11
4
11
10
5
2
15
14
2
8
1
7
12
S4
ĐỒ Á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
12
10
6
15
11
1
9
0
7
13
10
3
13
8
1
4
15
9
2
7
1
4
8
2
3
5
5
12
14
11
11
1
5
12
12
10
2
7
4
14
8
2
15
9
4
14
S5
2
14
4
11
12
11
2
8
4
2
1
12
1
12
11
7
7
4
10
0
10
7
13
14
11
13
7
2
6
1
8
13
8
5
15
6
5
0
9
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
S6
12
10
9
4
1
15
14
3
10
4
15
2
15
2
5
12
9
7
2
9
2
12
8
5
6
9
12
15
8
5
3
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
8
6
13
S7
4
13
1
6
11
0
4
11
2
11
11
13
14
7
13
8
15
4
12
1
0
9
3
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
15
5
2
6
8
9
3
1
6
2
12
S8
13
1
7
2
2
15
11
1
8
13
4
14
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
10
9
14
11
13
0
5
0
15
3
0
14
3
5
12
9
5
6
7
2
8
11
P
16
29
1
5
2
32
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
tra sự bằng nhau (để phát hiện lỗi). Các bit ở các vị trí 8, 16, ..., 64 được xác định, sao cho
mỗi byte chứa số lẻ các số 1. Vì vậy, từng lỗi có thể được phát hiện trong mỗi 8 bit. Các
bit kiểm tra sự bằng nhau là được bỏ qua khi tính lịch khóa.
1. Cho khóa 64 bit K, loại bỏ các bit kiểm tra và hoán vị các bit còn lại của K
tương ứng với hoán vị (cố định) PC-1. Ta viết PC-1(K) = C0D0, với C0 bao gồm 28 bit đầu
tiên của PC-1(K) và D0 là 28 bit còn lại.
2. Với i nằm trong khoảng từ 1 đến 16, ta tính
Ci = LSi(Ci-1)
Di = LSi(Di-1)
và Ki = PC-2(CiDi), LSi 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:
Các hoán vị PC-1 và PC-2 được sử dụng trong việc tính lịch khóa là như sau:
PC-1
57 49 41 33 25 17 9
K
PC-1
C0 D0
C1 D1 PC-2 K1
LS1LS1
LS2 LS2
...
LS16 LS16
C16 D16 PC-2 K16
ĐỒ Á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
2
11
55
62
6
13
50
59
34
7
54
61
5
42
51
60
39
46
53
28
34
43
52
31
38
45
20
26
35
44
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
12
27
31
51
39
50
24
6
4
20
37
45
56
36
1
21
26
13
47
33
34
29
5
10
8
2
55
48
53
32
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.
Các file đính kèm theo tài liệu này:
- do_an_bao_mat_thong_tin_2.pdf