Mật mã dòng mã hóa một chuỗi số nhị phân liên tục bằng cách sử dụng các phép biến đổi tuần hoàn thời gian trên thông tin bản rõ. Do đó, loại mã hóa này hoạt động từng bit, sử dụng dòng khóa để tạo bản mã cho độ dài tùy ý của tin nhắn văn bản thuần túy.
Mật mã kết hợp một khóa (128/256 bit) và một chữ số nonce (64-128 bit) để tạo dòng khóa và một số giả ngẫu nhiên được XOR với bản rõ để tạo bản mã.
Mặc dù khóa và nonce có thể được sử dụng lại, nhưng dòng khóa phải là duy nhất cho mỗi dự phòng mã hóa để cung cấp bảo mật. Mật mã mã hóa luồng thực hiện điều này bằng cách sử dụng thanh ghi dịch chuyển phản hồi để tạo một nonce duy nhất (số chỉ được sử dụng một lần) để tạo ra dòng khóa.
Các lược đồ mã hóa cần mật mã dòng ít có khả năng gây ra lỗi trên toàn hệ thống vì lỗi trong quá trình dịch một bit thường không ảnh hưởng đến khối văn bản rõ hoàn chỉnh.
Mã hóa luồng cũng xuất hiện theo cách tuyến tính, liên tục, tạo ra việc thực hiện đơn giản hơn và nhanh hơn. Nói cách khác, mật mã luồng thiếu tính khuếch tán vì mỗi chữ số bản rõ được ánh xạ tới một đầu ra bản mã.
Hơn nữa, chúng không xác minh tính xác thực và khiến chúng dễ bị chèn. Nếu tin tặc phân chia thuật toán mã hóa, chúng có thể thêm hoặc thay đổi tin nhắn đã mã hóa mà không bị phát hiện.
Mật mã dòng thường được sử dụng để mã hóa thông tin trong các ứng dụng không thể quyết định lượng văn bản thuần túy và trong các phương pháp sử dụng có độ trễ thấp. Mật mã luồng tạo ra việc sử dụng thứ gì đó được gọi là luồng khóa.
Dòng khóa là một đầu ra 8 bit ngẫu nhiên được tạo ra bằng cách cung cấp khóa cho bộ tạo bit giả ngẫu nhiên. Đầu ra 8 bit được tạo ra được gọi là dòng khóa và được sử dụng để mã hóa và giải mã thông tin trong một thuật toán mã hóa dòng nhất định.
Trình tạo luồng bit phải được thực hiện như một quy trình thuật toán để luồng bit mật mã có thể được tạo bởi cả hai người dùng.
Trong phương pháp này, bộ tạo dòng bit là một thuật toán điều khiển bằng khóa và sẽ tạo ra một dòng bit mạnh về mặt mật mã. Giờ đây, hai người dùng được yêu cầu chỉ chia sẻ khóa tạo và mỗi người có thể tạo luồng khóa.
Lợi thế của Stream Cipher
-
Với trình tạo số giả ngẫu nhiên được thiết kế phù hợp, mật mã luồng có thể an toàn như mật mã khối có độ dài khóa bằng nhau.
-
Ưu điểm chính của mật mã luồng là mật mã luồng không sử dụng mật mã khối như một khối xây dựng thường nhanh hơn và sử dụng ít codethan làm mật mã khối hơn.
-
Đối với các ứng dụng cần mã hóa / giải mã luồng dữ liệu, bao gồm cả qua kênh truyền thông dữ liệu hoặc trình duyệt / liên kết Web, mật mã dòng astream có thể là giải pháp thay thế ưu việt.
-
Đối với các ứng dụng quản lý bằng các khối thông tin, bao gồm truyền dữ liệu truyền, e-mail và cơ sở dữ liệu, mật mã khối có thể phù hợp hơn.
-
Tuy nhiên, loại mật mã này có thể được sử dụng trong bất kỳ ứng dụng nào về cơ bản.