Mật mã khối này chỉ XOR các khối tin nhắn […]
Việc bạn nói về "khối tin nhắn" ở đây cho thấy rằng bạn đang làm việc từ một trong những định nghĩa (sai) khủng khiếp dành cho người mới bắt đầu về "mật mã khối" nói rằng đó là mật mã mã hóa từng khối một tin nhắn có độ dài thay đổi . Rất nhiều lời giải thích giới thiệu nói rằng, nhưng đó không phải là cách thuật ngữ được sử dụng bởi các nhà mật mã học thực tế, vì vậy tôi thấy rằng "định nghĩa" thân thiện với người mới bắt đầu (được cho là) chỉ sai và khó hiểu.
Mật mã khối trong mật mã lý thuyết là một thuật toán nhằm mục đích triển khai thực tế của một họ hoán vị giả ngẫu nhiênâmột thuật toán có khóa bí mật thực hiện chức năng xáo trộn các khối dữ liệu có độ dài cố định theo kiểu mà trên thực tế không thể phân biệt được với một hoán vị được chọn ngẫu nhiên trong miền của nó. Câu trả lời này trên trang web này diễn ra khá dài về nó.
Điều bạn muốn nói chính xác là "mật mã khối" ở đây rất quan trọng bởi vì nếu bạn đang sử dụng "mật mã mã hóa các thông điệp có độ dài thay đổi từng khối một" mà tôi chỉ trích, thì đề xuất của bạn ở đây:
Mật mã khối này chỉ XOR các khối thông báo bằng các khóa khác nhau được lấy từ khóa chính
...thực sự là một cách hợp lý để xây dựng mật mã có độ dài thay đổi an toàn từ mật mã khối (theo đúng nghĩa). sử dụng rộng rãi CTR chế độ hoạt động trên thực tế hoạt động theo những dòng này—bạn tạo ra luồng khóa (cái mà bạn gọi là "các khóa khác nhau được lấy từ khóa chính") bằng cách áp dụng mật mã khối cho bộ đếm khối tin nhắn.
Tuy nhiên, có một lỗ hổng lớn trong đề xuất của bạn vì bạn không nói cách lấy các khóa phụ từ khóa chính, ngoài việc cho rằng nó "an toàn về mặt mật mã"—điều đó có nghĩa là gì an toàn trong ứng dụng này và làm thế nào để bạn đạt được nó? Trên thực tế, đây là một điểm khác biệt lớn khi bạn đề cập đến các mạng thay thế/hoán vị, bởi vì đó là "nước sốt đặc biệt" mà AES đang sử dụng để đáp ứng yêu cầu đó, mà bạn hoàn toàn không thể đạt được nếu tất cả những gì bạn có là một bậc thầy phím và XOR.
Vì vậy, để trình bày lại và tóm tắt:
- Mặc dù có rất nhiều tài liệu dành cho người mới bắt đầu nói rằng "mật mã khối" là một thuật toán mã hóa một thông điệp có độ dài thay đổi từng khối một, nhưng đó không phải là định nghĩa kỹ thuật thực tế trong mật mã học.
- Ý tưởng của bạn về việc mã hóa một tin nhắn có độ dài thay đổi bằng cách chia nó thành các khối và XOR từng khối một cách độc lập với các khóa được tạo bằng "bộ mở rộng khóa", về bản chất, rất hợp lý và rất phổ biến.
- Tuy nhiên, bạn tìm hiểu về cách hoạt động của bộ mở rộng khóa và điều đó chính xác là nơi các kỹ thuật như mạng thay thế/hoán vị (hoặc các lựa chọn thay thế như mạng Feistel) phù hợp. Đó là một trong những điều làm cho AES phù hợp để sử dụng làm "bộ mở rộng khóa" của bạn cho ứng dụng này.