Tiêu chuẩn mã hóa dữ liệu (DES) là một thuật toán mã hóa khối tạo ra văn bản thuần túy trong các khối 64 bit và biến đổi chúng thành văn bản mã bằng cách sử dụng các khóa 48 bit. Đây là một thuật toán khóa đối xứng, định nghĩa rằng khóa tương tự được sử dụng để mã hóa và giải mã thông tin.
DES nhận bản rõ 64 bit và tạo ra bản mã 64 bit; tại vị trí giải mã, DES lấy bản mã 64 bit và tạo ra khối bản rõ 64 bit. Cùng một khóa mật mã 56 bit có thể được sử dụng cho cả mã hóa và giải mã.
Bản chất chính của DES là các thuật toán là cố định và là dữ liệu công khai. Tuy nhiên, khóa thực sự được sử dụng được chia sẻ bí mật giữa người khởi tạo và người nhận truyền.
Những tiến bộ trong DES bao gồm việc kéo dài một khóa lên 128 bit và DES đa đường chuyền bao gồm nhiều đường chuyền nói chung là ba bước mã hóa và giải mã bằng cách sử dụng nhiều khóa.
DES là kết quả của một dự án nghiên cứu được cài đặt bởi International Business Machines (IBM) vào cuối những năm 1960, dẫn đến một mật mã được gọi là LUCIFER. Vào những năm 1970 ban đầu, nó được xác định là làm suy giảm LUCIFER và nhiều cải tiến đã được giới thiệu.
Thuật toán thực hiện 16 vòng mã hóa và đối với mỗi vòng, một khóa duy nhất được tạo ra. Trước khi chuyển đổi sang các bước, điều cần thiết là phải hiểu rằng trong bản rõ, các bit được gắn nhãn từ 1 đến 64 trong đó 1 là bit quan trọng nhất và 64 là bit quan trọng nhất. Quá trình tạo khóa như sau -
-
Bộ tạo khóa tròn tạo ra mười sáu khóa 48 bit từ một mật mã 56 bit. Khóa mật mã được cung cấp dưới dạng khóa 64 bit, trong đó 8 bit bổ sung là bit chẵn lẻ, sẽ bị loại bỏ trước khi quá trình tạo khóa thực sự bắt đầu.
-
Quá trình giảm bit chẵn lẻ làm giảm các bit chẵn lẻ (bit 8, 16, 24, 32… 64) khỏi khóa 64 bit và hoán vị bit còn lại theo các quy tắc được xác định trước như hiển thị trong bảng giảm bit chẵn lẻ bên dưới.
-
56 bit còn lại này thường được sử dụng để tạo khóa.
-
Sau khi hoán vị, các khóa được chia thành hai phần 28 bit. Mỗi phần được thay đổi sang trái một hoặc hai bit tùy thuộc vào các vòng.
-
Trong vòng 1, 2, 9 và 16, dịch chuyển là một bit và trong các vòng khác là hai bit. Hai phần được tích hợp để tạo thành phần 56 bit.
-
Do đó, hộp D nén biến đổi nó thành 48 bit. 48 bit này đang được sử dụng làm khóa cho một vòng.
57 | 49 | 41 | 33 | 25 | 17 | 09 | 01 |
58 | 50 | 42 | 34 | 26 | 18 | 10 | 02 |
59 | 51 | 43 | 35 | 27 | 19 | 11 | 03 |
60 | 52 | 44 | 36 | 63 | 55 | 47 | 39 |
31 | 23 | 15 | 07 | 62 | 54 | 46 | 38 |
30 | 22 | 14 | 06 | 61 | 53 | 45 | 37 |
29 | 21 | 13 | 05 | 28 | 20 | 12 | 04 |