I. Thuật toán DES

1. Giới thiệu về thuật toán DES

DES (Data Encryption Standard) là thuật toán mã hóa đối xứng, được chuẩn hóa vào năm 1977 bởi Viện Tiêu chuẩn và Công nghệ Quốc gia Hoa Kỳ (NIST) với sự hỗ trợ của Cơ quan An ninh Quốc gia (NSA). Được phát triển bởi IBM vào đầu những năm 1970 với tên gọi ban đầu là “Lucifer”, DES sử dụng khóa 56-bit để mã hóa dữ liệu theo khối 64-bit, trở thành tiêu chuẩn vàng trong bảo mật thông tin suốt nhiều thập kỷ. Sự ra đời của DES đã đặt nền móng cho các thuật toán mã hóa hiện đại, mặc dù ngày nay nó đã được thay thế bởi các giải pháp tiên tiến hơn như AES.

2. Cấu trúc và nguyên lý hoạt động của DES

DES sử dụng cấu trúc mạng Feistel, một thiết kế phổ biến cho các thuật toán mã hóa khối, giúp tăng tính bảo mật qua các phép biến đổi lặp. Dữ liệu 64-bit được chia thành hai nửa (trái và phải). Trong mỗi vòng mã hóa, nửa bên phải được xử lý qua hàm F, kết quả được kết hợp (XOR) với nửa bên trái, rồi hai nửa đổi chỗ. Hàm F sử dụng các kỹ thuật như mở rộng bit, hoán vị (P-box), và hộp thay thế (S-box) để tăng độ phức tạp. Mỗi vòng dùng một khóa con 48-bit, tạo từ khóa chính 56-bit qua hoán vị và dịch vòng. DES thực hiện 16 vòng mã hóa để đảm bảo dữ liệu được bảo vệ mạnh mẽ.

Sơ đồ quy trình DES

Hình 1: Sơ đồ quy trình thuật toán DES

2.1. Bảng hoán vị khởi tạo (IP)

Bước hoán vị khởi tạo (IP) của DES sắp xếp lại vị trí 64 bit dữ liệu đầu vào theo bảng IP, giữ nguyên giá trị các bit. Quá trình này tăng độ phức tạp và chuẩn bị dữ liệu cho các vòng mã hóa tiếp theo.

585042342618102
605244362820124
625446383022146
645648403224168
57494133251791
595143352719113
615345372921135
635547393123157

Bảng hoán vị khởi tạo (IP)

2.2. Hàm F

Sơ đồ hàm F

Hình 2: Sơ đồ quy trình hàm F

Hàm F là lõi xử lý chính trong mỗi vòng mã hóa của DES, chịu trách nhiệm biến đổi dữ liệu để tăng tính bảo mật trong cấu trúc mạng Feistel. Hàm F nhận nửa bên phải 32 bit của dữ liệu, kết hợp với khóa con, và tạo ra một chuỗi 32 bit mới để kết hợp (XOR) với nửa bên trái. Quy trình này bao gồm các bước phức tạp nhằm làm rối dữ liệu và tăng tính không tuyến tính, khiến việc giải mã mà không có khóa trở nên cực kỳ khó khăn. Cụ thể, hàm F thực hiện như sau:

Nhờ các bước trên, hàm F biến đổi dữ liệu một cách phức tạp, đảm bảo DES đạt được mức bảo mật cao qua 16 vòng mã hóa.

2.3. Khóa con (Subkeys)

Sơ đồ hàm F

Hình 3: Sơ đồ quy trình tạo khóa con

Trong DES, khóa con (subkeys) là các chuỗi bit được tạo từ khóa chính 64-bit để sử dụng trong 16 vòng mã hóa của hàm F. Mỗi vòng yêu cầu một khóa con 48-bit khác nhau, được tạo qua một quy trình gồm hoán vị, chia nửa, dịch vòng trái, và chọn bit. Quy trình này đảm bảo các khóa con đủ đa dạng và phức tạp, tăng tính bảo mật của thuật toán. Cụ thể, quá trình tạo khóa con bao gồm các bước sau:

Hoán vị PC-1: Khóa chính 64-bit được sắp xếp lại theo bảng PC-1, loại bỏ 8 bit kiểm tra chẵn lẻ (parity bits) để còn 56 bit. Chuỗi 56 bit này được chia thành hai nửa bằng nhau: C (28 bit) và D (28 bit).

5749413325179
1585042342618
1025951433527
1911360524436
63554739312315
7625446383022
1466153453729
211352820124

Bảng hoán vị PC-1

Dịch vòng trái: Hai nửa C và D được dịch vòng trái (left shift) độc lập theo số lần cố định cho mỗi vòng mã hóa, từ 1 hoặc 2 bit, theo bảng số lần dịch bit. Quá trình này tạo ra các phiên bản khác nhau của C và D cho mỗi vòng, đảm bảo các khóa con không lặp lại.

Vòng12345678910111213141516
Số lần dịch trái1122222212222221

Bảng số lần dịch bit (Shift Schedule)

Hoán vị PC-2: Sau mỗi lần dịch vòng trái, hai nửa C và D (tổng 56 bit) được kết hợp và hoán vị qua bảng PC-2 để chọn 48 bit, tạo ra một khóa con 48-bit cho mỗi vòng mã hóa. Quá trình này lặp lại 16 lần để tạo 16 khóa con khác nhau.

1417112415
3281562110
2319124268
1672720132
415231374755
304051453348
444939563453
464250362932

Bảng hoán vị PC-2

2.4: Hoán vị cuối (IP-1)

Sau 16 vòng mã hóa, hai nửa dữ liệu L (trái) và R (phải) được kết hợp thành một chuỗi 64-bit. Chuỗi này được sắp xếp lại vị trí các bit theo bảng hoán vị cuối (FP) để tạo ra bản mã hoàn chỉnh. Bảng FP là nghịch đảo của bảng hoán vị ban đầu (IP), nghĩa là nó đảo ngược quá trình sắp xếp của IP, đảm bảo tính đối xứng giữa mã hóa và giải mã. Mỗi bit trong chuỗi 64-bit được ánh xạ sang một vị trí mới theo bảng FP, giữ nguyên giá trị bit.

408481656246432
397471555236331
386461454226230
375451353216129
364441252206028
353431151195927
342421050185826
33141949175725

Bảng 2.4.1: Bảng hoán vị cuối (IP-1)

Quay lại trang chủ

Web hosting by Somee.com