Tải bản đầy đủ (.pdf) (31 trang)

Mã nén lecture3- DES

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.56 MB, 31 trang )

1
Lecture 3: Chuẩn mã hóa dữ liệu
DES (Data Encryption Standard)
1. Vài nét về lịch sử phát triển DES
2. Khái quát các vấn đề mã hóa DES
3. Chi tiết giải thuật mã hóa DES
4. Các phương thức sử dụng
2
I. Vài nét về lịch sử phát triển DES
DES được công bố vào tháng 1 năm 1977, DES là một chuẩn đã
được sử dụng rộng rãi cho bảo mật dữ liệu trong các hệ thống máy
tính.
Kể từ đócứ 5 năm một lần, DES lại được Uỷ ban Tiêu chuẩn
Quốc gia Mỹ xem xét lại. Theo công bố năm 1998 thì mọi hệ DES,
với những khả năng của máy tính hiện nay, đều có thể bẻ khóa trong
vòng 2 giờ.
Tuy nhiên, cho đến nay DES vẫn là một mô hình chuẩn cho các
ứng dụng bảo mật trong thực tế.
3
II. Khái quát thuật toán mã hóa DES
-DES làthuật toán mã hóa khối (block cipher) nghĩa là
nó làm việc trên các khối bản rõ (plaintext blocks) 64
bít, (tương đương với 16 số hecxa) và trả về các khối
mã hóa (ciphertext blocks) cùng kích thước 64 bít.
- Để mã hóa, DES dùng các “keys” cũng có độ dài 64 bít.
Tuy nhiên mỗi key đócó8 bít bị lờ đi trong giải thuật
DES, vì vậy kích thước “key” thực sự là 56 bít.
4
0123456789EFABCD
0E329232EA6D0D73
0E329232EA6D0D73


0123456789EFABCD
0000000000000000
Thuật toán
mã hóa
Khóa K
Thuật toán
Giải mã
Mô hình mã hóa DES
Bản
tin rõ
Bản
tin mã
hóa
Khóa để mã hóa
Bản tin cần mã hóa
Bản đã mã hóa
0000000000000000
5
• Sơ đồ khối thực hiện giải thuật DES
- Input: Bản rõ M
- Output: Bản mã hóa C
* Các bước (lời giải thô):
B1: Khối bản rõ 64 bít được hoán vị
(hoán vị khởi đầu) để thay đổi thứ tự
của các bít.
B2: Chia bản rõ vừa hoán vị bít làm
hai nửa trái L
0
và phải R
0

, mỗi nửa
32 bít.
B3: Dùng 16 vòng lặp, tính LnRn
(n=1..16) theo quy tắc:
L
n
= R
n-1
R
n
=L
n-1
+ f(R
n-1
,K
n
)
B4: Tại vòng lặp cuối cùng n=16, ta
đươc L
16
R
16
, đổi vị trí 2 nửa này cho
nhau thành R
16
L
16
B5: Hoán vị thứ tự bít cho R
16
L

16
, ta
được đầu ra là bản mã hóa cần tìm.
6
• Chi tiết các bước thực hiện của giải thuật DES
Để chi tiết hóa thuật toán DES, cần
phải tìm hiểu một số vấn đề :
1. Cách hoán vị bít.
2. Cách tạo 16 khóa con K
i
(Subkeys) từ K.
3. Cách tính hàm f.
4. Cách thức mã hóa khối dữ liệu 64 bít.
7
Sơ đồ tạo các khóa con (Subkeys)
Vòng
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Dịch trái
1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1
K+ (56bits)
K (64bits)
PC-1
Bảng PC-1
D0 (28bits)C0 (28bits)
D1 (28bits)C1 (28bits)
<< <<
D16 (28bits)C16 (28bits)
<< <<
….. …..
<< <<

Bảng dịch trái các bít
K1 (48bits)
PC-2
K16 (48bits)
PC-2
…..
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
Bảng 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
8
Ví dụ tạo các khóa con
• Giả sử khóa K ban đầu, áp dụng bảng PC-1 tính K+:
K = 00010011 00110100 01010111 01111001 10011011 10111100 11011111 11110001
K+ = 1111000 0110011 0010101 0101111 0101010 1011001 1001111 0001111
• Từ K+, chia 2 nửa C
0
D
0
, mỗi nửa 28 bít
C0 = 1111000 0110011 0010101 0101111
D0 = 0101010 1011001 1001111 0001111
Bảng PC-1 (56 bít)
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
1
1
9
Ví dụ tạo các khóa con (tiếp)
• Ví dụ: Từ C
0
D
0
đã có ở trên
C0 = 1111000011001100101010101111
D0 = 0101010101100110011110001111
Vòng lặp 1: dịch trái C
0
D
0
1 bít ta được cặp C
1
D
1
C1 = 1110000110011001010101011111
D1 = 1010101011001100111100011110
Vòng lặp 2: dịch trái C
1
D
1
1 bít ta được.C
2
D

2
C2 = 1100001100110010101010111111
D2 = 0101010110011001111000111101
Vòng
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Dịch trái
1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1
Bảng dịch trái các bít
10
Ví dụ tạo các khóa con (tiếp)
•Vậy, qua 16 vòng lặp ta sẽ có các cặp từ C
1
D
1
đến C
16
D
16
• Để hình thành các khóa K
n
, 1≤n≤16, ta phải dựa vào các
cặp C
n
D
n
đã tính ở trên và tra vào bảng hoán vị bít PC-2
• Ví dụ: Giả sử ta đang có
C
1
D

1
= 1110000110 0110010101 0101111110 1010101100 1100111100 011110
K
1
= 000110 110000 001011 101111 111111 000111 000001 110010
•Tương tự, các khóa K
2
, K
3
,…, K
16
tương ứng tính được
dựa vào C
2
D
2
, C
3
D
3
,…, C
16
D
16
và bảng PC-2
Bảng PC-2 (48 bít)
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

11
Mã hóa khối dữ liệu 64 bits
IP (64 bít)
M (64 bít)
Bảng IP
Bảng IP (64 bít)
R0 (32bits)L0 (32bits)
R1=L0 ⊕ F(R0, K1)
L1=R0
R16=L15 ⊕ F(R15, K16)
L16=R15
….. …..
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
Xử lý qua 16 lần lặp, 1≤n≤16, tính
L
n
R
n
theo quy tắc:
L
n
= R
n-1

R
n
= L
n-1
⊕ f(R
n-1
,K
n
)
R16 L16
IP
-1
C (đã mã hóa)
Bảng IP
-1
12
IP (64 bít)
M (64 bít)
Bảng IP
Bảng IP (64 bít)
R0 (32bits)L0 (32bits)
R1=L0 ⊕ F(R0, K1)
L1=R0
R16=L15 ⊕ F(R15, K16)
L16=R15
….. …..
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
R16 L16
IP
-1
C (đã mã hóa)
Bảng IP
-1
Ví dụ:
M = 00000001 00100011 01000101 01100111
10001001 10101011 11001101 11101111
IP = 11001100 00000000 11001100 11111111
11110000 10101010 11110000 10101010
• Chia IP thành 2 nửa L0, R0
L0 = 1100 1100 0000 0000 1100 1100 1111 1111
R0 = 1111 0000 1010 1010 1111 0000 1010 1010
Mã hóa khối dữ liệu 64 bits

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×