Giới thiệu DES
DES (Data Encryption Standard) - Tiêu chuẩn mã hóa dữ liệu. Thuật toán DES được IBM phát minh đầu những năm 1970. Nhận plaintext khối 64-bit, biến đổi thành ciphertext cần khóa 64-bit để mã hóa. Thuật toán dùng cùng khóa để mã hóa và giải mã (symmetric key algorithm).
Đặc điểm chính
- DES dùng công nghệ block cipher (mật mã khối) biến đổi chuỗi bit độ dài cố định thành chuỗi bit mã hóa cùng kích thước.
- Kích thước khối chuẩn 64-bit, nhưng chỉ dùng 56 bit để mã hóa. 8 bit còn lại dùng cho parity (chẵn/lẻ).
- DES là tiêu chuẩn mã hóa mạnh trên khối plaintext 64-bit, trả về ciphertext 64-bit. Tạo ra hoán vị giữa 2⁶⁴ sắp xếp có thể của 64 bit.
- Đầu vào thực tế 64-bit nhưng khóa thực sự 56-bit. Bit ít trọng số nhất mỗi byte dùng cho parity (lẻ cho DES) hoặc đặt tùy ý, không tăng cường bảo mật.
- 2⁵⁶ tổ hợp khóa khả thi → được một số chuyên gia coi là khá an toàn (khi đó).
Hai thành phần chính của hệ thống dựa trên DES
- Thuật toán (algorithm) - cố định, công khai.
- Khóa (key) - bí mật chung giữa người gửi và người nhận.
Thuật toán DES: quy trình phức tạp tương tác bao gồm thay thế (substitutions), hoán vị (permutations), phép toán toán học.
Tiến bộ của DES
- Mở rộng khóa lên 128-bit.
- Multi-pass DES: nhiều lần mã hóa/giải mã (thường 3) với nhiều khóa khác nhau.
Bản chất cốt lõi
Ở mức đơn giản nhất, thuật toán chỉ là tập hợp 2 kỹ thuật cơ bản của mã hóa: confusion (nhiễu loạn) và diffusion (khuếch tán).
Lịch sử liên quan
Khối xây dựng cơ bản DES = một vòng (round) áp dụng confusion và diffusion trên plaintext phụ thuộc khóa. DES dựa trên Feistel block cipher gọi là LUCIFER, do Horst Feistel (IBM) tạo ra năm 1971. DES yêu cầu 16 vòng cấu trúc Feistel, khóa khác nhau mỗi vòng.