Nói Alice và Peter mỗi người có một thẻ nhớ flash USB 4GB. Họ gặp nhau và lưu trên cả hai gậy có tên alice_to_peter.key
(2GB) và peter_to_alice.key
(2GB) chứa các bit được tạo ngẫu nhiên. Họ không bao giờ gặp lại, nhưng giao tiếp điện tử. Alice cũng duy trì một biến được gọi alice_pointer
và Peter duy trì biến được gọi peter_pointer
, cả hai biến ban đầu được đặt thành không.
Khi Alice cần gửi tin nhắn cho Peter, cô ấy sẽ làm (nơi n
là byte thứ n của tin nhắn):
encrypted_message_to_peter[n] = message_to_peter[n] XOR alice_to_peter.key[alice_pointer + n]
encrypted_payload_to_peter = alice_pointer + encrypted_message_to_peter
alice_pointer += length(encrypted_message_to_peter)
(và để bảo mật tối đa, phần được sử dụng của khóa có thể bị xóa)
Peter nhận encrypted_payload_to_peter
, đọc alice_pointer
được lưu trữ ở đầu tin nhắn và không:
message_to_peter[n] = encrypted_message_to_peter[n] XOR alice_to_peter.key[alice_pointer + n]
Và để bảo mật tối đa, sau khi đọc tin nhắn cũng xóa phần đã sử dụng của khóa.
- EDIT: Trên thực tế bước này với thuật toán đơn giản này (không có kiểm tra và xác thực tính toàn vẹn) làm giảm tính bảo mật, xem bài đăng Palo Ebermann dưới đây.
Khi Peter cần gửi tin nhắn cho Alice, họ làm ngược lại, lần này là peter_to_alice.key
và peter_pointer
.
Với lược đồ tầm thường này, họ có thể gửi mỗi ngày trong 50 năm tới 2GB / (50 * 365) = ~ 115kB dữ liệu được mã hóa theo cả hai hướng. Nếu họ cần thêm dữ liệu để gửi, họ có thể sử dụng các khóa lớn hơn, ví dụ với HD 2TB ngày nay (khóa 1TB), có thể đổi 60MB / ngày trong 50 năm tới! Đó là rất nhiều dữ liệu trong thực tế; ví dụ, bằng cách sử dụng nén, nó mất hơn một giờ để liên lạc bằng giọng nói chất lượng cao.
Đối với tôi, dường như không có cách nào để kẻ tấn công đọc các tin nhắn được mã hóa mà không có chìa khóa, bởi vì ngay cả khi chúng có một máy tính cực kỳ nhanh, với lực lượng vũ phu, chúng có thể nhận được mọi tin nhắn có thể dưới giới hạn, nhưng đây là một con số thiên văn tin nhắn và kẻ tấn công không biết tin nhắn nào trong số chúng là tin nhắn thực sự.
Tôi có đúng không Là chương trình truyền thông này thực sự an toàn tuyệt đối? Và nếu nó an toàn, nó có tên riêng không? Mã hóa XOR nổi tiếng, nhưng tôi đang tìm tên của ứng dụng thực tế cụ thể này bằng các phím lớn ở cả hai bên? Tôi khiêm tốn mong đợi rằng ứng dụng này đã được phát minh ra trước mặt tôi. :-)
Lưu ý: Nếu nó hoàn toàn an toàn thì thật tuyệt vời, vì với các thiết bị lưu trữ lớn giá rẻ ngày nay, việc truyền thông an toàn sẽ rẻ hơn nhiều so với mật mã lượng tử đắt tiền và điều này có bảo mật tương đương!
EDIT:
Tôi nghĩ rằng điều này sẽ thực tế hơn trong tương lai khi chi phí lưu trữ giảm.Nó có thể giải quyết giao tiếp an toàn mãi mãi.Ngày nay, bạn không có gì chắc chắn nếu ai đó tấn công thành công các mật mã hiện tại ngay cả một năm sau đó và khiến việc triển khai thường tốn kém của nó không an toàn. Trong nhiều trường hợp trước khi giao tiếp xảy ra, khi cả hai bên gặp nhau, đó là lúc tạo ra các phím. Tôi nghĩ rằng nó hoàn hảo cho giao tiếp quân sự, ví dụ giữa các tàu ngầm có thể có HD với các phím lớn và trung tâm quân sự có thể có HD cho mỗi tàu ngầm. Nó cũng có thể thiết thực trong cuộc sống hàng ngày, ví dụ như để kiểm soát tài khoản ngân hàng của bạn, bởi vì khi bạn tạo tài khoản, bạn sẽ gặp ngân hàng, v.v.