Tiêu chuẩn mã hóa dữ liệu (DES) là một thuật toán mật mã khối lấy 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ã sử dụng các khóa 48 bit. Nó là một thuật toán khóa đối xứng. Nó có thể xác định rằng cùng một khóa có thể được sử dụng để mã hóa và giải mã dữ liệu.
Thiết kế của DES được IBM phát minh vào năm 1994. Có một số thử nghiệm về DES đã chứng minh rằng nó đáp ứng một số yếu tố cần thiết như đã tuyên bố. Có một số thiết kế được ban hành như sau -
Hộp chữ S - S-Boxes là một thủ tục chấp nhận đầu vào 48 bit từ hoạt động XOR có chứa khóa nén và RPT mở rộng và tạo ra đầu ra 32 bit bằng kỹ thuật thay thế. Việc thay thế được thực hiện bởi tám hộp thay thế (còn được gọi là hộp S).
Có một số thuộc tính của S-Boxes như sau -
-
Các mục của mỗi hàng là hoán vị của các giá trị trong số 0 và 15.
-
Hộp S là phi tuyến tính. Nói cách khác, đầu ra không phải là một biến đổi liên kết của đầu vào.
-
Nếu nó có thể thay đổi một bit riêng lẻ trong đầu vào, hai hoặc nhiều bit sẽ được chuyển đổi lại ở đầu ra.
-
Nếu hai đầu vào của hộp S chỉ khác nhau ở hai bit giữa (bit 3 và 4), thì thông lượng đầu vào sẽ khác nhau một phần ở hai bit. Nói cách khác, S (x) và S (x ⊕ 001100) phải khác nhau một phần hai bit, trong đó x là đầu vào và S (x) là đầu ra.
-
Nếu hai đầu vào của hộp S khác nhau ở hai bit đầu tiên (bit 1 và 2) và giống nhau ở hai bit cuối (5 và 6), thì hai đầu ra sẽ khác nhau. Nói cách khác, bắt buộc phải có quan hệ sau S (x) ≠ S (x ⊕ 11bc00), trong đó b và c là các bit tùy ý.
Hộp D - Hộp D là hộp hoán vị có các tính năng tương tự như các mật mã chuyển vị truyền thống. Có các thuộc tính sau của D-Boxes như sau -
-
Mỗi đầu vào S-box xuất hiện từ đầu ra của một S-box khác nhau (trong vòng trước đó).
-
Không có đầu vào nào cho một hộp S nhất định xuất hiện từ đầu ra từ hộp tương tự (trong vòng trước đó).
-
Bốn đầu ra từ mỗi hộp S chuyển đến 6 hộp chữ S riêng biệt (ở vòng sau).
-
Không có hai bit đầu ra nào từ hộp S chuyển đến cùng một hộp S (trong vòng tiếp theo).
-
Đối với mỗi hộp S, hai bit đầu ra đi đến hai bit đầu tiên hoặc cuối cùng của hộp S trong vòng tiếp theo. Hai bit đầu ra khác hiển thị các bit giữa của hộp S trong vòng sau.
Số vòng chơi - DES sử dụng mười sáu vòng mật mã Feistel. Nó đã được chứng minh rằng sau tám vòng, mỗi bản mã là một hàm của mọi bit bản rõ và mọi bit khóa; bản mã là một hàm ngẫu nhiên của bản rõ và bản mã. Vì vậy, có vẻ như tám vòng phải là đủ.