Cơ sở thiết kế cho S-box được đưa ra trong phần 4.3 của bài báo. Tôi sẽ thử và mở rộng lý do.
Loại S-box tồi tệ nhất sẽ là một hàm tuyến tính, tức là một hàm trong đó mọi bit đầu ra chỉ là XOR của một số bit đầu vào nhất định. Vì phần còn lại của hàm vòng HIỆN TẠI chỉ liên quan đến việc di chuyển các bit xung quanh và phép XOR của khóa tròn, hộp S tuyến tính sẽ dẫn đến một mật mã trong đó mỗi bit đầu ra là một phép XOR của các bit đầu vào nhất định và các bit khóa tròn.Sau đó, thu thập một số đầu vào và đầu ra phù hợp sẽ cho phép một người phá mã rất đơn giản bằng cách sử dụng đại số tuyến tính.
Phân tích mật mã khối thường tập trung vào các thuộc tính của mật mã gần giống như hoạt động giống như một hàm tuyến tính trong một tỷ lệ thời gian có thể phát hiện được.
thám mã tuyến tính
Sẽ vẫn còn tệ nếu XOR của một tập hợp các bit đầu vào và bit chính nhất định bằng với XOR của một tập hợp các bit đầu ra nhất định hơn một nửa thời gian. Các chi tiết chính xác về cách biến điều này thành một cuộc tấn công rất dài, nhưng nó sẽ liên quan đến việc thu thập một số lượng lớn các cặp đầu vào/đầu ra phù hợp, tính toán các XOR có liên quan và xem liệu hầu hết thời gian chúng khớp hay không khớp. Điều này sẽ cung cấp thông tin về các bit khóa tròn. Để tránh tình huống này, các nhà mật mã tìm kiếm các hộp S trong đó đối với bất kỳ tập con bit đầu vào và bất kỳ tập con bit đầu ra nào, các XOR chỉ bằng nhau khoảng một nửa thời gian (hoặc càng gần càng tốt). Tiêu chí 3 của bài báo nói rằng đối với S-box HIỆN TẠI, các XOR sẽ bằng ít nhất 4 lần trong số 16 và nhiều nhất là 12 lần trên 16. Mọi thứ có thể tồi tệ hơn nếu tập hợp con chúng tôi chọn trong mỗi trường hợp là một bit đơn lẻ. trong trường hợp đó, chúng tôi có thể tương quan một bit đầu vào với một bit đầu ra duy nhất bằng cách theo dõi chỉ qua một hộp S mỗi vòng. Điều này thúc đẩy tiêu chí 4 xác định rằng khi các tập hợp con bao gồm một bit đơn lẻ thì chúng khớp chính xác 6 lần trong số 16 hoặc chính xác 10 lần trong số 16.
thám mã vi sai
Một cách khác để biểu diễn thuộc tính tuyến tính của mật mã là nói rằng với mọi đầu vào $a$ và $b$ chúng ta có $\mathrm{Enc}(a\oplus b)=\mathrm{Enc}(a)\oplus\mathrm{Enc}(b)$. Một lần nữa, nếu các thuộc tính tương tự xuất hiện trong mật mã của chúng ta trong một tỷ lệ thời gian đáng kể thì điều này có thể bị khai thác. Do đó, các nhà mật mã cũng cố gắng thiết kế các mật mã sao cho bất kỳ sự khác biệt cố định nào của đầu vào $\Delta x$ và bất kỳ sự khác biệt cố định nào của kết quả đầu ra $\Delta y$ phương trình $\mathrm{Enc}(x\oplus\Delta x)=\mathrm{Enc}(x)\oplus\Delta y$ đại khái chỉ có một giải pháp $x$ (khoảng một nửa thời gian có hai giải pháp và một nửa thời gian không có giải pháp nào). Một lần nữa, vì hộp S là phần phi tuyến tính duy nhất của mật mã nên điều này trở thành yêu cầu rằng sự khác biệt đầu vào và đầu ra trong hộp S phải tương quan càng ít càng tốt. Sau đó, Tiêu chí 1 nói rằng trong số tất cả các khác biệt đầu vào và đầu ra có thể có, mối tương quan tối đa là tìm ra một khác biệt đầu vào tạo ra cùng một khác biệt đầu ra cho 4 trong số 16 đầu vào có thể (tức là hai cặp). Một lần nữa, thuộc tính bit đơn nguy hiểm hơn vì sự khác biệt sẽ lan truyền qua các vòng, đi qua một hộp S duy nhất trong mỗi vòng. Theo đó, tiêu chí 2 được thêm vào, nói rằng đối với bất kỳ đầu vào nào chỉ khác nhau một bit duy nhất, đầu ra của chúng không khác nhau chỉ một bit duy nhất.
Vì chỉ có 16! các hộp S-box 4 bit có thể và rất nhiều tính đối xứng giữa các lớp S-box nhất định, có thể kiểm tra toàn diện tất cả các hộp S có thể cho các thuộc tính được mô tả ở trên. Phân tích này đã được thực hiện, cho phép các nhà mật mã lựa chọn các hộp S có kích thước này khi biết rằng chúng về cơ bản là tối ưu về các đặc tính tuyến tính và vi phân. Vẫn còn một số hộp S đáp ứng các yêu cầu này và nhóm PRESENT tuyên bố đã chọn một hộp đặc biệt phù hợp để triển khai phần cứng. Tôi hiểu điều này có nghĩa là chức năng được đại diện bởi hộp S có thể được đánh giá với một số lượng cổng nhỏ hoặc với độ sâu mạch nhỏ (tôi không có chi tiết về điểm cụ thể này).