Nó đã làm với một số lý do cơ bản cho việc mã hóa:
- Hãy chắc chắn rằng một thông điệp không bị thay đổi trên đường vận chuyển (bất biến)
- Hãy chắc chắn rằng một tin nhắn không được đọc quá cảnh (bảo đảm)
- Hãy chắc chắn rằng thông điệp là từ người nó nói đó là từ (Authentic)
- Hãy chắc chắn rằng thông điệp là không giống như một bản gửi trước đây (không Replay)
- vv
Có một vài điều bạn cần bao gồm, sau đó, để đảm bảo rằng điều trên là đúng. Một trong những điều quan trọng là một giá trị ngẫu nhiên.
Ví dụ, nếu tôi mã hóa "Quá nhiều bí mật" với một chìa khóa, nó có thể đi ra với "dWua3hTOeVzO2d9w"
Có hai vấn đề với điều này - một kẻ tấn công có thể có thể phá vỡ các mã hóa dễ dàng hơn vì Tôi đang sử dụng một bộ ký tự rất hạn chế. Hơn nữa, nếu tôi gửi cùng một tin nhắn một lần nữa, nó sẽ đi ra chính xác như nhau. Cuối cùng, kẻ tấn công có thể ghi lại và gửi lại tin nhắn và người nhận sẽ không biết rằng tôi đã không gửi nó, ngay cả khi kẻ tấn công đã không phá vỡ nó.
Nếu tôi thêm một số rác ngẫu nhiên vào chuỗi mỗi khi tôi mã hóa nó, sau đó không chỉ làm cho nó khó crack hơn, nhưng thông báo được mã hóa thì khác nhau mỗi lần.
Các tính năng khác của mật mã trong các viên đạn trên được cố định bằng cách sử dụng các phương tiện khác (ngẫu nhiên giá trị, xác thực hai chiều, v.v.).
Nguồn ngẫu nhiên xấu giới hạn ký tự đặt lại, do đó dễ phá vỡ hơn và nếu dễ đoán, hoặc bị giới hạn, thì kẻ tấn công có ít đường dẫn để thử khi thực hiện tấn công vũ phu.
-Adam
Nguồn
2009-01-31 20:20:31