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

Cơ sở lý thuyết mật mã CHUẨN dữ LIỆU 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 (625.86 KB, 25 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
HỌC VIỆN KỸ THUẬT MẬT MÃ

CƠ SỞ LÝ THUYẾT MẬT MÃ
CHUẨN DỮ LIỆU DES

Giảng viên hướng dẫn:
Sinh viên thực hiện:


LỜI NÓI ĐẦU
Mật mã là ngành khoa học ứng dụng tốn học vào việc biến đổi thơng tin
thành một dạng khác với mục đích che giấu nội dụng, ý nghĩa thơng tin cần mã hóa.
Đây là một ngành quan trọng và được ứng dụng nhiều trong đời sống xã hội.Ngày
nay, các ứng dụng mã hóa và bảo mật thơng tin đang được sử dụng ngày càng phổ
biến hơn trong các lĩnh vựng khác trên thế giới, từ các lĩnh vững an ninh, quân sự,
quốc phòng,… cho đến các lĩnh vực dân sự như thương mại điện tử, ngân hàng…
Cùng với sự phát triển của khoa học máy tính và internet, các nghiên cứu và
ứng dụng khoa học mật mã ngày càng trở nên đa dạng hơn, mở ra nhiều hướng
nghiên cứu chuyên sâu vào từng lĩnh vực ứng dụng đặc thù với những đặc trưng
riêng. ứng dụng của khảo học mật mã khơng chỉ đơn thuần là mã hóa và giải mã
thơng tin mà cịn bao gồm nhiều vấn đề khác cần được nghiên cứu và giải quyết:
chứng thực nguồn gốc nội dung thông tin (kỹ thuật chữ ký điện tử), chứng nhận tính
xác thực về người sở hữu mà hóa ( chứng nhận khóa cơng cộng), các quy trình giúp
trao đổi thông tin và thực hiện giao dịch điện thử an toàn trên mạng… Những kết
quả nghiên cứu về mật mã cũng đã được đưa vào trong các hệ thống phức tạp hơn,
kết hơp với những kỹ thuật khác để đáp ứng yêu cầu đa dạng của các hệ thống ứng
dụng khác nhau trong thực tế, ví dụ như hệ thống bỏ phiếu bầu cử qua mạng, hệ
thống đào tạo từ xa, hệ thống quản lý an ninh của các đơn vị với hướng tiếp cận sinh
trắc học, hệ thống cung cấp dịch vụ multinedia trên mạng với yêu cầu cung cấp dịch
vụ và bảo vệ bản quyền sở hữu trí tuệ đối với thơng tin số.


DES là một tiêu chuẩn mã hóa dữ liệu được cơng bố vào năm 1975 và được FIPS
chọn làm chuẩn chính thức vào năm 1976, sau đó được sử dụng rộng dãi trên thế
giới.
Ngày nay, khi DES khơng cịn đủ độ an tồn do lượng bit mã hóa quá nhỏ và bị
thay thế bởi nhiều chuẩn mã hóa dữ liệu cao hơn như Triple DES, AES (Advanced
Encryption Standard) ,…nhưng sự ra đời của chuẩn mã hóa DES vẫn được chú ý và
coi là nền tảng ban đầu của các chuẩn mã hóa của tương lai.
1


MỤC LỤC
I.

GIỚI THIỆU CHUNG VỀ DES ................................................................... 1
1.

Lịch sử hình thành DES............................................................................. 1

2.

Một số cột mốc quan trọng ........................................................................ 2

3.

Ưu và nhược điểm của DES ...................................................................... 2
3.1. Ưu điểm ............................................................................................... 2
3.2. Nhược điểm ......................................................................................... 2

II.


THUẬT TỐN MÃ HĨA DES ................................................................... 2
1.

Đặc điểm chung ......................................................................................... 2

2.

Mơ tả thuật tốn ......................................................................................... 3
2.1. Hoán vi khởi tạo và hoán vị kết thúc .................................................. 5
2.2. Thuật tốn sinh khóa con .................................................................... 6
2.3. Cấu trúc vòng lặp của DES ................................................................. 8
2.3.1. Hàm Expand.................................................................................. 9
2.3.2. Hàm S-boxes ............................................................................... 10
2.3.3. Hàm P-Box.................................................................................. 12

3.
III.

Ví dụ về DES ........................................................................................... 12
ĐỘ AN TOÀN CỦA DES ...................................................................... 18

1.

Điểm yếu của DES .................................................................................. 18

2.

Các dạng tấn công DES ........................................................................... 19



DANH MỤC BẢNG BIỂU
Bảng 1: Hoán vị khởi tạo (Initial Permutation) .................................................... 5
Bảng 2:Hoán vị kết thúc (Final permutation) ....................................................... 6
Bảng 3: hốn vị có chọn lọc 1(Permuted choice 1) .............................................. 6
Bảng 4: Quy tắc dịch bit key ................................................................................. 7
Bảng 5: hốn vị có chọn lọc 2(Permuted choice 2) .............................................. 7
Bảng 6: Hoán vị mở rộng 32 bit lên 48 bit ......................................................... 10
Bảng 7: S-Box .................................................................................................... 12
Bảng 8: Hoán vị sắp xếp lại trong P-box ............................................................ 12
Hình 1:Sơ đồ giải thuật mã hóa DES

4

Hình 2: Sơ đồ thuật tốn sinh khóa con (Key Scheduler) - Nguồn: Wikipedia ... 8
Hình 3: Cấu trúc một vòng lặp của DES............................................................... 9


I. GIỚI THIỆU CHUNG VỀ DES
1. Lịch sử hình thành DES
Vào những năm đầu thập kỷ 70, nhu cầu có một chuẩn chung về thuật toán mật
mã đã trở nên rõ ràng. Các lý do chính là:
• Sự phát triển của công nghệ thông tin và của nhu cầu an tồn & bảo mật
thơng tin: sự ra đời của các mạng máy tính tiền thân của Internet đã cho
phép khả năng hợp tác và liên lạc số hóa giữa nhiều cơng ty, tổ chức
trong các dự án lớn của chính phủ Mỹ.
• Các thuật tốn ‘cây nhà lá vườn’ khơng thể đảm bảo được tính tin cậy
địi hỏi cao.
• Các thiết bị khác nhau địi hỏi sự trao đổi thơng tin mật mã thống nhất,
chuẩn.
Một chuẩn chung cần thiết phải có với các thuộc tính như:

➢ Bảo mật ở mức cao.
➢ Thuật tốn được đặc tả và cơng khai hồn tồn, tức là tính bảo mật
khơng được phép dựa trên những phần che giấu đặc biệt của thuật toán.
➢ Việc cài đặt phải dễ dàng để đem lại tính kinh tế.
➢ Phải mềm dẻo để áp dụng được cho muôn vàn nhu cầu ứng dụng.
Năm 1973, Cục quản lý các chuẩn quốc gia của Mỹ đã có văn bản cổ động cho
việc tạo lập các hệ mật mã chuẩn ở cơ quan đăng ký liên bang của Mỹ. Điều này
đã dẫn đến sự công bố vào năm 1977 của cục An ninh Quốc gia Mỹ (NSA) về
Data Encryption Standard, viết tắt là DES. Thực chất, DES được phát triển bởi
IBM như là sự sửa đổi của một hệ mã trước kia được biết với cái tên Lucipher.
Trong khoảng 2 thập kỷ tiếp theo, DES là hệ mã được dùng rộng rãi nhất và cũng
là gây ra nhiều nghi ngờ, tranh cãi trong lĩnh vực này: xung quanh các nguyên tắc
thiết kế đảm bảo tính mật, chiều dài khóa tương đối ngắn và khả năng NSA còn
1


che giấu cửa sau (backdoor) để có thể bẻ khóa, phá mã ít tốn kém hơn thơng
thường.
2. Một số cột mốc quan trọng
• 1976 – DES được phê làm tiêu chuẩn chính thức.
• 1977 – DES được xác nhận làm tiểu chuẩn của FIPS (FIPS PUB 46).
• 1988 – DES được xác nhận lần hai với tên FIPS 46-1, thay thế FIPS PUB
46.
• 1993 – DES được xác nhận lần ba với tên FIPS 46-2.
• 1988 – Thiết bị thám mã Deep Crack của tổ chức Electronic Frontier
Foundation phá được một khóa của DES trong vịng 56 giờ.
• 1999 – Deep Crack cùng với distributed.net phá được một khóa của DES
trong vịng 22 giờ và 15 phút.
• 2005 – NIST bãi bỏ FIPS 46-3
3. Ưu và nhược điểm của DES

3.1. Ưu điểm
Tác dụng đồng loạt: Khi ta thay đổi 1 bit trong khóa sẽ gây ra tác động đồng
loạt làm thay đổi nhiều bit trên bản mã. Đây là tính chất mong muốn của khóa
trong thuật tốn mã hóa. Nếu thay đổi 1 bít đầu vào hoặc khố sẽ kéo theo thay đổi
một nửa số bít đầu ra, do đó khơng thể đốn khố được. Có thể nói rằng DES thể
hiện tác động đồng loạt mạnh.
Phương pháp mã hóa nhanh hơn nhiều so với thuật toán TDES/AES
3.2. Nhược điểm
Hiện nay DES được xem là khơng đủ an tồn. Ngun nhân chủ yếu do độ dài
khóa quá nhỏ, khóa DES đã từng bị phá trong vòng chưa đến 24 giờ. Nhiều
phương pháp đã được đưa ra để thám mã DES và thành cơng.
II. THUẬT TỐN MÃ HĨA DES
1. Đặc điểm chung
2


- DES là thuật tốn mã hóa khối1 gồm 16 vịng, ngồi ra DES có them một
hốn vị khởi tạo trước khi vào vịng một và một hốn vị khởi tạo sau vịng
16.
- Kích thước của khối là 64 bit. Ví dụ: một bản tin “welcome_to_HaNoi”
được biểu diễn theo mã ASCII thì mã DES sẽ chia ra làm 2 phần để mã hóa
từng đợt một, mỗi phần 8 chữ cái (64 bit): “welcome_”, “to_HaNoi”
- Khóa dùng trong DES có độ dài 64 bit. Tuy nhiên chỉ có 56 bit thực sự được
sử dụng, 8 bit còn lại chỉ dùng cho việc kiểm tra chẵn lẻ.
- Mỗi vòng của DES dùng khóa con có kích thước 48 bit được sinh ra từ khóa
chính.
- Thuật tốn được thực hiện lặp lại 16 lần.
2. Mơ tả thuật tốn

Mã hóa khối là những thuật tốn mã hóa đối xứng hoạt động trên những khối thơng tin có độ dài xác định

(block) với những chuyển đổi xác định. Q trình chuyển đổi cịn sử dụng them khóa bí mật để cá biệt hóa q trình.
Việc giả mã cũng diễn rs tương tự như khi mã hóa.
1

3


Hình 1:Sơ đồ giải thuật mã hóa DES

Ký hiệu ⊕ thể hiện phép XOR. Hàm F làm biến đổi một nửa của khối đang xử
lý với một khóa con, đầu ra sau F được kết hợp với nửa còn lại của khối và hai
phần được tráo đổi để xử lý trong chu trình kế tiếp. Sau chu trình cuối cùng thì hai
nửa khơng bị tráo đổi, đây là đặc điểm của cấu trúc Feistel khiến cho q trình mã
hóa và giải mã trở nên giống nhau. Quá trình giải mã DES chính là ngược lại của
q trình mã hóa.
4


Q trình mã hóa DES gồm 3 phần chính: Phần thứ nhất là hoán vị khởi tạo và
hoán vị kết thúc, phần thứ hai là các vòng Feistel, phần thứ ba là thuật tốn sinh
khóa con. Sau đây là chi tiết từng phần.
2.1. Hoán vi khởi tạo và hoán vị kết thúc
Bản rõ được chia thành các khối 64 bit, các bit trong khối được đánh số từ 1
đến 64 theo thứ tự từ trái sang phải, từ đó ta có các ma trận hốn vị.
• Hốn vị khởi tạo (Initial Permutation) sẽ hoán đổi các bit theo quy tắc
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
Bảng 1: Hoán vị khởi tạo (Initial Permutation)
Ở đây, bit đầu tiên của đầu ra được lấy từ bit thứ 58 của đầu vào, bit thứ hai
được lấy từ bit 50,… và bit cuối cùng của đầu ra là bit thứ 7 của đầu vào.
• Hốn vị kết thúc (Final permutation)
IP−1
40

8

48 16 56 24 64 32

39

7

47 15 55 23 63 31

38

6


46 14 54 22 62 30

37

5

45 13 53 21 61 29

5


36

4

44 12 52 20 60 28

35

3

43 11 51 19 59 27

34

2

42 10 50 18 58 26


33

1

41

9

49 17 57 25

Bảng 2:Hoán vị kết thúc (Final permutation)
Hốn vị kết thúc chính là hoán vị nghịch đảo của hoán vị khởi tạo. Hoán vị
khởi tạo và hốn vị kết thúc khơng có ý nghĩa bảo mật, sự tồn tại của hai hoán vị
này được nhận định là do yếu tố lịch sử.
2.2. Thuật tốn sinh khóa con
Trong 16 vịng lặp của DES, các khóa được sử dụng tại mỗi vịng là khác nhau,
16 khóa này được gọi là khóa con và được sinh ra từ khóa chính của DES bằng
thuật tốn sinh khóa con. Trong thuật tốn sinh khóa con này (lập lịch khóa), khóa
chính K (64 bit) sẽ đi qua 16 bước biến đổi, tại mỗi bước này một khóa con được
sinh ra với độ dài 48 bit.
Ban đầu, khóa K (64 bit) được rút trích và hốn vị thành một khóa 56 bit (tức
chỉ sử dụng 56 bit) theo quy tắc PC-1:
PC-1
Left
57 49 41 33 25 17

Right
9

1


58 50 42 34 26 18

10

2

19 11

63 55 47 39 31 23 15
7

59 51 43 35 27 14
3

62 54 46 38 30 22
6

60 52 44 36 21 13

61 53 45 37 29
5

28 20 12

4

Bảng 3: hốn vị có chọn lọc 1(Permuted choice 1)
Hốn vị có chọn lọc này chỉ chọn 56 bit trong tổng số 64 bit của khóa, tám bit
cịn lại (8, 16, 24, 32, 40, 48, 56, 64) được chỉ định để sử dụng như là bit chẵn lẻ

(parity bits).
6


Khóa 56 bit được chia thành 2 phần: nửa trái KLi và nửa phải KRi, mỗi nửa có
kích thước 32 bit.
Sau khi được chia thành hai phần KLi và KRi, khóa sẽ đi vào q trình dịch bit
theo quy tắc: tại vòng thứ i (i = 1, 2, 3, 4, 5, …, 16) thì KLi và KRi sẽ được dịch
sang trái ri bit, với ri được định nghĩa:
Vòng i

1

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

ri

1

1 2 2 2 2 2 2 1

2

2

2

2

2


2

1

Bảng 4: Quy tắc dịch bit key
Tại các vòng 1, 2, 9, 16 thì KLi và KRi sẽ được dịch sang trái 1 bit, các vòng còn
lại sẽ được dịch sang trái 2 bit.
Cuối cùng, Khóa Ki của mỗi vịng được tạo ra bằng cách hoán vị và nén 56 bit
của KLi và KRi thành 48 bit theo quy tắc:
PC-2
14 17 11 24

1

3

5

28 15

6

21 10

23 19 12

4

26


8

27 20 13

2

16

7

41 52 31 37 47 55
30 40 51 45 33 48
44 49 39 56 34 53
46 42 50 36 29 32
Bảng 5: hoán vị có chọn lọc 2(Permuted choice 2)
PC-2 hoạt động tương tự PC-1, chỉ khác ở sự hoán vị. Trong hoán vị lần này
các bit 9, 18, 22, 25, 35, 38, 42, 54 sẽ bị loại bỏ, 48 bit còn lại chính là khóa con
được sinh ra.

7


Hình 2: Sơ đồ thuật tốn sinh khóa con (Key Scheduler) - Nguồn: Wikipedia

Qua sơ đồ ta có thể thấy 56 bit của khóa chính được sử dụng và 8 bit kiểm tra
chẵn lẻ (parity bits) sẽ bị lọc ra ở biến đổi PC1. Các bộ biến đổi PC1 và PC2 chỉ
đơn giản là các bộ hốn vị có chọn lọc (permuted choice). Các biến đổi R1 và R2
tương ứng là các phép dịch vòng bit sang trái 1 bit và 2 bit.
2.3. Cấu trúc vòng lặp của DES

Một vòng mã hóa của DES sẽ thực hiện chia khối 64 bit thành 2 phần là L và R,
mỗi phần 32 bit. Sau đó đem phần R biến đổi qua hàm F rồi thực hiện hoán vị giữa
L và R rồi kết hợp thành khối 64 bit.

8


Hình 3: Cấu trúc một vịng lặp của DES
Một vịng lặp của DES được thể hiện như sau:
𝐿𝑖 = 𝑅𝑖−1
𝑅𝑖 = 𝐿𝑖−1 ⊕ 𝑓(𝑅𝑖−1 , 𝐾𝑖 ) với i = 1, 2, 3, …, 16
𝑓(𝑅𝑖−1 , 𝐾𝑖 ) = 𝑃_𝑏𝑜𝑥(𝑆_𝑏𝑜𝑥𝑒𝑠(𝐸𝑥𝑝𝑎𝑛𝑑(𝑅𝑖−1 ) ⊕ 𝐾𝑖 ))
Trong đó hàm Expand vừa mở rộng vừa hoán vị Ri-1 từ 32 bit lên 48 bit. Hàm
S-boxes sẽ nén 48 bit lại còn 32 bit. Hàm P-box là một hoán vị 32 bit. Các hàm
trên được mô tả cụ thể như sau:
2.3.1. Hàm Expand
Đầu tiên 32 bit của Ri-1 sẽ được mở rộng thành 48 bit sử dụng thuật toán hoán
vị mở rộng2 (expansion permutation) với việc nhân đôi một số bit.
Hàm Expand thực hiện đánh số các bit của Ri-1 từ 1 đến 32 theo thứ tự từ trái
sang phải. Hàm Expand thực hiện hoán vị mở rộng 32 bit thành 48 bit theo quy tắc:

2

Phương pháp này nhìn chung là lặp lại hai bit cuối của hàng trước.

9


E
31


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

Bảng 6: Hoán vị mở rộng 32 bit lên 48 bit
48 bit thu được sau quá trình mở rộng được XOR với 48 bit của khóa con đã
được tạo ra từ khóa chính ở trên.
2.3.2. Hàm S-boxes
48 bit sau khi trộn được chia làm 8 khối con, mỗi khối 6 bit (b0b1b2b3b4b5) và
được xử lý qua hộp thay thế S-box. Đầu ra của mỗi S-box là một khối 4 bit theo
một chuyển đổi phi tuyến được thực hiện bằng các bảng tra dưới đây.
b1b2b3b4

S1

b0b5

0000

0001

0010

0011

0100


0101

0110

0111

1000

1001

1010

1011

1100

1101

1110

1111

00

14

4

13


1

2

15

11

8

3

10

6

12

5

9

0

7

01

0


15

7

4

14

2

13

1

10

6

12

11

9

5

3

8


10

4

1

14

8

13

6

2

11

15

12

9

7

3

10


5

0

11

15

12

8

2

4

9

1

7

5

11

3

14


10

0

6

13

b1b2b3b4

S2

b0b5

0000

0001

0010

0011

0100

0101

0110

0111


1000

1001

1010

1011

1100

1101

1110

1111

00

15

1

8

14

6

11


3

4

9

7

2

13

12

0

5

10

01

3

13

4

7


15

2

8

14

12

0

1

10

6

9

11

5

10

0

14


7

11

10

4

13

1

5

8

12

6

9

3

2

15

11


13

8

10

1

3

15

4

2

11

6

7

12

0

5

14


9

10


b1b2b3b4

S3

b0b5

0000

0001

0010

0011

0100

0101

0110

0111

1000

1001


1010

1011

1100

1101

1110

1111

00

10

0

9

14

6

3

15

5


1

13

12

7

11

4

2

8

01

13

7

0

9

3

4


6

10

2

8

5

14

12

11

15

1

10

13

6

4

9


8

15

3

0

11

1

2

12

5

10

14

7

11

1

10


13

0

6

9

8

7

4

15

14

3

11

5

2

12

b1b2b3b4


S4

b0b5

0000

0001

0010

0011

0100

0101

0110

0111

1000

1001

1010

1011

1100


1101

1110

1111

00

7

13

14

3

0

6

9

10

1

2

8


5

11

12

4

15

01

13

8

11

5

6

15

0

3

4


7

2

12

1

10

14

9

10

10

6

9

0

12

11

7


13

15

1

3

14

5

2

8

4

11

3

15

0

6

10


1

13

8

9

4

5

11

12

7

2

14

b1b2b3b4

S5

b0b5

0000


0001

0010

0011

0100

0101

0110

0111

1000

1001

1010

1011

1100

1101

1110

1111


00

2

12

4

1

7

10

11

6

8

5

3

15

13

0


14

9

01

14

11

2

12

4

7

13

1

5

0

15

10


3

9

8

6

10

4

2

1

11

10

13

7

8

15

9


12

5

6

3

0

14

11

11

8

12

7

1

14

2

13


6

15

0

9

10

4

5

3

b1b2b3b4

S6

b0b5

0000

0001

0010

0011


0100

0101

0110

0111

1000

1001

1010

1011

1100

1101

1110

1111

00

12

1


10

15

9

2

6

8

0

13

3

4

14

7

5

11

01


10

15

4

2

7

12

8

5

6

1

13

14

0

11

3


8

10

9

14

15

5

2

8

12

3

7

0

4

10

1


13

11

6

11

4

3

2

12

9

5

15

10

11

14

1


7

6

0

8

13

b1b2b3b4

S7
b0b5

0000

0001

0010

0011

0100

0101

0110


0111

1000

1001

1010

1011

1100

1101

1110

1111

00

4

11

2

14

15


0

8

13

3

12

9

7

5

10

6

1

01

13

0

11


7

4

9

1

10

14

3

5

12

2

15

8

6

11


10


1

4

11

13

12

3

8

14

10

15

6

8

0

5

9


2

11

6

11

13

8

1

4

10

7

9

5

0

15

14


2

3

12

b1b2b3b4

S8

b0b5

0000

0001

0010

0011

0100

0101

0110

0111

1000


1001

1010

1011

1100

1101

1110

1111

00

13

2

8

4

6

15

11


1

10

9

3

14

5

0

12

7

01

1

15

13

8

10


3

7

4

12

5

6

11

0

14

9

2

10

7

11

4


1

9

12

14

2

0

6

10

13

15

3

5

8

11

2


1

14

7

4

10

8

13

15

12

9

0

3

5

6

11


Bảng 7: S-Box
Khối S-box đảm bảo phần quan trọng cho độ an tồn của DES, nếu khơng có
S-box thì q trình thám mã sẽ là tuyến tính và việc thám mã sẽ rất đơn giản.
Hàm S-boxes của DES biến đổi 48 bit thành 32 bit. Tuy nhiên, nếu chỉ lập một
bảng tra cứu thì bảng này phải có 216 dịng và 232 cột. Để giảm kích thước của
bảng tra cứu người ta chia S-boxes ra thành 8 S-box con, mỗi S-box con sẽ biến
đổi số 6 bit thành 4 bit.
2.3.3. Hàm P-Box
Cuối cùng, 32 bit thu được sau s box sẽ được sắp xếp lại theo một thứ tự cho
trước gọi là P-box. Hàm P-box thực hiện hoán vị 32 bit đầu vào theo quy tắc:
P
16

7

20 21 29 12 28 17

1

15 23 26

2

8

5

18 31 10


24 14 32 27

19 13 30

6

22 11

3

9

4

25

Bảng 8: Hốn vị sắp xếp lại trong P-box
3. Ví dụ về DES
Giả sử ta có một bản rõ đang ở dạng hexa – hệ cơ số 16:
12


0123456789ABCDEF
Và dùng khóa:
123457799BBCDFF1
Khóa sau khi chuyển sang dạng nhị phân và loại bỏ các bit kiểm tra(hốn vị có
chọn lọc PC-1) là:
00010010011010010101101111001001101101111011011111111000
Sau khi chuyển bản rõ về dạng nhị phân và thực hiện hoán vị IP ta thu được L0
và R0 như sau:

L0 = 11001100000000001100110111111111
L1 =R0 = 11110000101010101111000010101010
Sau đó thực hiện 16 vòng lặp của phép mã như sau:
E(R0) = 011110100001010101010101011110100001010101010101
K1 = 000110110000001011101111111111000111000001110010
E(R0)  K1 = 011000010001011110111010100001100110010100100111
S-box outputs = 01011100100000101011010110010111
f(R0,K1) = 00100011010010101010100110111011
L2 = R1 = 11101111010010100110010101000100

E(R1) = 011101011110101001010100001100001010101000001001
K2 = 011110011010111011011001110110111100100111100101
E(R1) K2 = 000011000100010010001101111010110110001111101100
S-box outputs = 11111000110100000011101010101110
f(R1,K2) = 00111100101010111000011110100011

13


L3 = R2 = 11001100000000010111011100001001

E(R2) = 111001011000000000000010101110101110100001010011
K3 = 010101011111110010001010010000101100111110011001
E(R2) K3 = 101100000111110010001000111110000010011111001010
S-box outputs = 00100111000100001110000101101111
f(R2,K3) = 01001101000101100110111010110000
L4 =R3 = 10100010010111000000101111110100

E(R3) =01010000010000101111100000000101011111111010100
K4 = 011100101010110111010110110110110011010100011101

E(R3) K4 = 001000101110111100101110110111100100101010110100
S-box outputs = 00100001111011011001111100111010
f(R3,K4) = 10111011001000110111011101001100
L5 = R4 = 01110111001000100000000001000101

E(R4) = 101110101110100100000100000000000000001000001010
K5 = 011111001110110000000111111010110101001110101000
E(R4)  K5 = 110001100000010100000011111010110101000110100010
S-box outputs = 01010000110010000011000111101011
f(R4,K5) = 00101000000100111010110111000011
L6 = R5 = 10001010010011111010011000110111

E(R5) = 110001010100001001011111110100001100000110101111

14


K6 = 011000111010010100111110010100000111101100101111
E(R5)  K6 =101001101110011101100001100000001011101010000000
S-box outputs = 01000001111100110100110000111101
f(R5,K6) = 10011110010001011100110100101100
L7 = R6 = 11101001011001111100110101101001

E(R6) = 111101010010101100001111111001011010101101010011
K7 = 111011001000010010110111111101100001100010111100
E(R6)  K7 = 000110011010111110111000000100111011001111101111
S- box outputs = 00010000011101010100000010101101
f(R6,K7) = 10001100000001010001110000100111
L8 = R7 = 00000110010010101011101000010000


E(R7) = 000000001100001001010101010111110100000010100000
K8 = 111101111000101000111010110000010011101111111011
E(R7)  K8 = 111101110100100001101111100111100111101101011011
S-box outputs = 01101100000110000111110010101110
f(R7,K8) = 00111100000011101000011011111001
L9 = R8 = 11010101011010010100101110010000

E(R8) = 011010101010101101010010101001010111110010100001
K9 = 111000001101101111101011111011011110011110000001
E(R8)  K9 = 100010100111000010111001010010001001101100100000
S-box outputs = 00010001000011000101011101110111

15


f(R8,K9) = 00100010001101100111110001101010
L10 = R9 = 00100100011111001100011001111010

E(R9) = 000100001000001111111001011000001100001111110100
K10 = 101100011111001101000111101110100100011001001111
E(R9)  K10 = 101000010111000010111110110110101000010110111011
S-box outputs = 11011010000001000101001001110101
f(R9,K10) = 01100010101111001001110000100010
L11 = R10 = 10110111110101011101011110110010

E(R10) = 010110101111111010101011111010101111110110100101
K11 = 001000010101111111010011110111101101001110000110
E(R10)  K11 = 011110111010000101111000001101000010111000100011
S-box outputs = 01110011000001011101000100000001
f(R10,K11) = 11100001000001001111101000000010

L12 = R11 = 11000101011110000011110001111000

E(R11) = 011000001010101111110000000111111000001111110001
K12 = 011101010111000111110101100101000110011111101001
E(R11)  K12 = 000101011101101000000101100010111110010000011000
S-box outputs = 01110011000001011101000100000001
f(R11,K12) = 11000010011010001100111111101010
L13 = R12 = 01110101101111010001100001011000

16


E(R12) = 001110101011110111111010100011110000001011110000
K13 = 100101111100010111010001111110101011101001000001
E(R12)  K13 = 101011010111100000101011011101011011100010110001
Sbox outputs = 10011010110100011000101101001111
f(R12,K13) = 11011101101110110010100100100010
L14 = R13 = 00011000110000110001010101011010

E(R13) = 000011110001011000000110100010101010101011110100
K13 = 010111110100001110110111111100101110011100111010
E(R13)  K14 = 010100000101010110110001011110000100110111001110
S-box outputs = 01100100011110011001101011110001
f(R13,K14) = 10110111001100011000111001010101
L15 = R14 = 11000010100011001001011000001101

E(R14) = 111000000101010001011001010010101100000001011011
K15 = 101111111001000110001101001111010011111100001010
E(R14)  K15 = 010111111100010111010100011101111111111101010001
S-box outputs = 10110010111010001000110100111100

f(R14,K15) = 01011011100000010010011101101110
R16 = R15 = 01000011010000100011001000110100

E(R15) = 001000000110101000000100000110100100000110101000
K16 = 110010110011110110001011000011100001011111110101
E(R15)  K16 = 111010110101011110001111000101000101011001011101

17


S-box outputs 10100111100000110010010000101001
f(R15,K16) = 11001000110000000100111110011000
L16 = 00001010010011001101100110010101

Cuối cùng áp dụng IP-1 vào L16,R16:
1000010111101000000100110101010000001111000010101011010000000101
Chuyển lại sang mã hexa ta được bản mã:
85E813540F0AB405
III. ĐỘ AN TỒN CỦA DES
1. Điểm yếu của DES
• Tính bù
𝐷𝑘 (𝑝) = 𝐶 ⇔ 𝐷𝑘̅ (𝑝̅) = 𝐶̅
Cho nên nếu biết mã C được mã hóa từ tin p với khóa 𝑘 thì suy ra 𝐶̅ được mã
hóa từ tin 𝑝̅ với khóa 𝑘̅. Tính chất này chính là một điểm yếu của DES bởi vì nhờ
đó mà kẻ tấn cơng có thể loại trừ một nửa số khóa cần phải thử thi tiến hành phép
thử - giải mã theo kiểu tìm kiếm vét cạn khơng gian khóa.
• Khóa yếu
Các khóa yếu là các khóa con được sinh ra từ thuật tốn sinh khóa con đều như
nhau K1 = K2 = K3 = … =K16, điều đó khiến cho sinh mã và giải mã là giống hệt
nhau.

𝐷𝑘 = 𝐷𝐾−1
Có tất cả 4 khóa yếu như sau:
1) [00000001 00000001 00000001 … 00000001]
2) [11111110 11111110 11111110 … 11111110]
3) [11100000 11100000 11100000 11100000
11110001 11110001 11110001 11110001]
18


4) [0001111 0001111 0001111 0001111
00001110 00001110 00001110 00001110]
Bên cạnh đó, cịn có 6 cặp khóa nửa yếu (semi-weak keys). Mã hóa với một
khóa trong cặp K1 tương đương với giải mã với khóa cịn lại K2.
Tuy nhiên có thể tránh được những khóa này khi thực hiện thuật tốn bằng cách
thử hoặc chọn khóa một cách ngẫu nhiên. Như vậy khả năng chọn phải khóa yếu là
rất nhỏ.
2. Các dạng tấn cơng DES
Tấn cơng vét cạn (Brute Force Attack): Vì khóa của mã DES có chiều dài là 56
bít nên để tiến hành brute-force attack, cần kiểm tra 256 khóa khác nhau. Hiện nay
với những thiết bị phổ dụng, thời gian gian để thử khóa là rất lớn nên việc phá mã
là không khả thi (xem bảng). Tuy nhiên vào năm 1998, tổ chức Electronic Frontier
Foundation (EFF) thông báo đã xây dựng được một thiết bị phá mã DES gồm
nhiều máy tính chạy song song, trị giá khoảng 250.000$. Thời gian thử khóa là 3
ngày. Hiện nay mã DES vẫn còn được sử dụng trong thương mại, tuy nhiên người
ta đã bắt đầu áp dụng những phương pháp mã hóa khác có chiều dài khóa lớn hơn
(128 bít hay 256 bít) như TripleDES hoặc AES.
Phương pháp vi sai (differential cryptanalysis): Năm 1990 Biham và Shamir đã
giới thiệu phương pháp phá mã vi sai. Phương pháp vi sai tìm khóa ít tốn thời gian
hơn brute-force. Tuy nhiên phương pháp phá mã này lại địi hỏi phải có 247 cặp
bản rõ - bản mã được lựa chọn (chosen-plaintext). Vì vậy phương pháp này là bất

khả thi dù rằng số lần thử có thể ít hơn phương pháp brute-force.
Phương pháp thử tuyến tính (linear cryptanalysis): Năm 1997 Matsui đưa ra
phương pháp phá mã tuyến tính. Trong phương pháp này, cần phải biết trước 243
cặp bản rõ-bản mã (known-plaintext). Tuy nhiên 243 cũng là một con số lớn nên
phá mã tuyến tính cũng khơng phải là một phương pháp khả thi.

19


TÀI LIỆU THAM KHẢO
/> /> /> />

NHẬN XÉT CỦA GIẢNG VIÊN
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................

...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................


×