Bạn có nghĩ rằng các sơ đồ mã hóa bảo toàn định dạng (FPE) có bất kỳ hạn chế nào đối với các mật mã khối thông thường khác không?
Trên thực tế, người ta có thể xem một lược đồ FPE như là một sự khái quát hóa của một mật mã khối truyền thống. Xét cho cùng, một mật mã khối thông thường được cố định ở một kích thước khối cụ thể; với FPE, chúng tôi có thể sử dụng bất kỳ kích thước khối nào mà chúng tôi thấy thuận tiện (ví dụ: toàn bộ thông báo).
FPE có nhiều ứng dụng để trở thành một lĩnh vực nghiên cứu trong tương lai không?
Tôi cũng tin như thế. Một điều thú vị về FPE (với một tinh chỉnh; hầu hết các sơ đồ FPE đều cho phép một sơ đồ) là dễ dàng xây dựng một sơ đồ AEAD có khả năng chịu được lạm dụng khá cao:
Để mã hóa, bạn sẽ lấy tin nhắn $M$, và nối thêm $k$ số không và $\ell$ các bit ngẫu nhiên (hoặc nonce; bộ giải mã sẽ khôi phục các bit này và do đó chúng có thể được sử dụng làm số thứ tự nếu cần). Mã hóa điều đó bằng sơ đồ FPE, sử dụng AAD làm tinh chỉnh.
Để giải mã, bạn giải mã bằng sơ đồ FPE bằng cách sử dụng AAD làm tinh chỉnh; phân tích kết quả và kiểm tra xem $k$ số không xuất hiện ở cuối.
Rõ ràng đây là sơ đồ AAD an toàn (giả sử rằng sơ đồ FPE là an toàn). Thêm vao Đoa:
Nếu người gửi sử dụng tính ngẫu nhiên xấu cho $\ell$ các bit ngẫu nhiên, nó sẽ trở thành một sơ đồ xác định trong đó đối thủ có thể xác định xem cùng một thông điệp có được gửi hai lần hay không, nhưng không thể xác định bất cứ điều gì ngoài điều đó.
Nếu người nhận quên kiểm tra $k$ số 0, thì điều này trở thành một kế hoạch cắt xén hoàn toàn, trong đó kẻ thù có thể thay đổi thông điệp được giải mã thành một thứ gì đó ngẫu nhiên, nhưng không thể làm gì ngoài điều đó. Điều này trái ngược với nhiều sơ đồ AEAD, trong đó nếu bộ giải mã quên kiểm tra thẻ, thì mã hóa sẽ trở nên dễ uốn (và AAD về cơ bản bị bỏ qua).
Vì vậy, nếu điều này là rất tuyệt vời, nhược điểm là gì? Chà, một vấn đề quan trọng là hiệu suất - các chương trình FPE hiện tại khá chậm và do đó, thiết kế đơn giản này không được sử dụng. Một chương trình FPE hoạt động tốt hơn (nhưng vẫn an toàn) sẽ làm cho điều này trở nên hấp dẫn hơn nhiều.
Một nhược điểm rõ ràng khác là FPE không thể được triển khai theo cách "một lượt" (trong đó chúng tôi xử lý thông báo theo từng phần); điều này thuận tiện khi chúng ta cần xử lý các tin nhắn lớn; tuy nhiên, rõ ràng là việc có thể thực hiện mã hóa chống lạm dụng (trong trường hợp thiếu entropy nonce chỉ rò rỉ nếu các thông điệp giống hệt nhau) là không tương thích với mã hóa một lần và khả năng thực hiện giải mã chống lạm dụng (khi quên kiểm tra tính toàn vẹn cho phép kẻ tấn công tích cực chỉ chọn ngẫu nhiên bản rõ) không tương thích với giải mã một lượt.