Giới thiệu chung về DES
Chuẩn mó hoỏ dữ liệu DES được Văn phũng tiờu chuẩn của Mỹ (U.S National Bureau for Standards) cụng bố năm 1971 để sử dụng trong cỏc cơ quan chớnh phủ liờn bang. Giải thuật được phỏt triển tại Cụng ty IBM dựa trờn hệ mó hoỏ LUCIFER của Feistel.
DES là thuật toỏn mó hoỏ khối (block algorithm), với cỡ của một khối là 64 bớt. Một khối 64 bớt bản rừ được đưa vào, sau khi mó hoỏ dữ liệu đưa ra là một khối bản mó 64 bớt. Cả mó hoỏ và giải mó đều sử dụng cựng một thuật toỏn và khoỏ.
Khoỏ mó hoỏ cú độ dài 64 bớt, trong đú cú 8 bớt chẵn lẻ được sử dụng để kiểm soỏt lỗi. Cỏc bớt chẵn lẻ nằm ở cỏc vị trớ 8, 16, 24,... , 64. Tức là cứ 8 bớt khoỏ thỡ trong đú cú 1 bớt kiểm soỏt lỗi, bớt này qui định số bớt cú giỏ trị “1” của khối 8 bớt đú theo tớnh bự chẵn.
Nền tảng để xõy dựng khối của DES là sự kết hợp đơn giản của cỏc kỹ thuật thay thế và hoỏn vị bản rừ (bản gốc) dựa trờn khoỏ, đú là cỏc vũng lặp. DES sử dụng 16 vũng lặp, nú ỏp dụng cựng một kiểu kết hợp của cỏc kỹ thuật trờn khối bản rừ 16 lần (hỡnh 4.7).
Thuật toỏn chỉ sử dụng cỏc phộp toỏn số học và lụgớc trờn cỏc số 64 bớt, vỡ vậy nú dễ dàng thực hiện vào những năm 1970 trong điều kiện về cụng nghệ phần cứng lỳc bấy giờ. Ban đầu, sự thực hiện cỏc phần mềm kiểu này rất thụ sơ, nhưng hiện tại thỡ việc đú đó tốt hơn, và với đặc tớnh lặp đi lặp lại của thuật toỏn đó tạo nờn ý tưởng sử dụng chớp với mục đớch đặc biệt này.
Túm lại DES cú một số đặc điểm sau: − Sử dụng khoỏ 56 bớt.
− Xử lý khối vào 64 bớt, biến đổi khối vào thành khối ra 64 bớt. − Mó hoỏ và giải mó được sử dụng cựng một khoỏ.
DES thường được sử dụng để mó hoỏ cỏc dũng dữ liệu mạng và mó hoỏ dữ liệu được lưu trữ trờn đĩa.
Mụ tả thuật toỏn
DES thực hiện trờn từng khối 64 bớt bản rừ. Sau khi thực hiện hoỏn vị khởi đầu, khối dữ liệu được chia làm hai nửa trỏi và phải, mỗi nửa 32 bớt. Tiếp đú, cú 16 vũng lặp giống hệt nhau được thực hiện, được gọi là cỏc hàm ƒ, trong đú dữ liệu được kết hợp với khoỏ. Sau 16 vũng lặp, hai nửa trỏi và phải được kết hợp lại và hoỏn vị cuối cựng (hoỏn vị ngược) sẽ kết thỳc thuật toỏn.
L15=R14 R15=L14⊕ƒ(R14,K15) Văn bản gốc IP L0 R0 L1=R0 R1=L0⊕ƒ(R0,K1) ƒ L2=R1 R2=L1⊕ƒ(R1,K2) ƒ R16=L15⊕ƒ(R15,K16) L16=R15 ƒ K1 K2 Văn bản mật mó IP-1 K16
89 Trong mỗi vũng lặp, cỏc bớt của khoỏ được dịch đi và cú 48 bớt được chọn ra từ 56 bớt của khoỏ. Nửa phải của dữ liệu được mở rộng thành 48 bớt bằng một phộp hoỏn vị mở rộng, tiếp đú khối 48 bớt này được kết hợp với khối 48 bớt đó được thay đổi và hoỏn vị của khoỏ bằng toỏn tử XOR. Khối kết quả của phộp tớnh XOR được lựa chọn ra 32 bớt bằng cỏch sử dụng thuật toỏn thay thế và hoỏn vị lần nữa. Đú là bốn thao tỏc tạo nờn hàm ƒ. Tiếp đú, đầu ra của hàm ƒ được kết hợp với nửa trỏi bằng một toỏn tử XOR. Kết quả của cỏc bước thực hiện này trở thành nửa phải mới; nửa phải cũ trở thành nửa trỏi mới. Sự thực hiện này được lặp lại 16 lần, tạo thành 16 vũng của DES (hỡnh 4.7).
Nếu Bi là kết quả của vũng thứ i, Li và Ri là hai nửa trỏi và phải của Bi, Ki là khoỏ 48 bớt của vũng thứ i, và ƒ là hàm thực hiện thay thế, hoỏn vị và XOR với khoỏ, ta cú biểu diễn của một vũng sẽ như sau:
Li=Ri-1
Ri=Li-1 XOR ƒ(Ri-1,Ki)
Chi tiết về thuật toỏn DES được trỡnh bày trong cỏc tài liệu về Lý thuyết mật mó, đề nghị bạn đọc tự tỡm tài liệu nghiờn cứu thờm.