Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình

Sử dụng stream cipher (mã luồng) trong an ninh thông tin

Mã luồng là phương pháp mã hóa nơi một luồng chữ số mật mã giả ngẫu nhiên được trộn với chữ số văn bản thuần túy. Luồng chữ số mật mã giả ngẫu nhiên này được áp dụng cho mỗi chữ số nhị phân, một bit tại một thời điểm. Phương pháp mã hóa này sử dụng số lượng vô hạn chữ số mật mã giả ngẫu nhiên cho mỗi khóa.

Mã luồng có thể được dùng cho mật mã khóa đối xứng, hoặc khi cùng một khóa được dùng để mã hóa và giải mã dữ liệu. Mã luồng mã hóa độ dài tùy ý văn bản thuần túy, một bit tại một thời điểm, với thuật toán cần khóa.

Để loại mã hóa này vẫn an toàn, các chữ số mật mã giả ngẫu nhiên của nó phải không thể dự đoán và khóa không nên được sử dụng nhiều hơn một lần. Các chữ số mật mã giả ngẫu nhiên được sản xuất qua một số giá trị hạt ngẫu nhiên cần thanh ghi dịch số.

Mã hóa của mỗi chữ số phụ thuộc vào trạng thái gần đây của mật mã, bảo chứng tên mã trạng thái cho cái này. RC4 là mã luồng nổi tiếng thường được dùng trong phần mềm.

Mã luồng xuất hiện trong nhiều hương vị như mã luồng tự đồng bộ tính toán mỗi bit trong keystream như một hàm của n bit trước trong keystream. Nó được định nghĩa là "tự đồng bộ" vì quá trình giải mã có thể giữ đồng bộ với quá trình mã hóa chỉ bằng cách hiểu bao xa vào keystream n-bit nó là.

Một vấn đề là lan truyền lỗi; bit bị lỗi trong truyền tải sẽ dẫn đến n bit lỗi ở phía nhận. Mã luồng đồng bộ tạo keystream theo cách độc lập của luồng thông điệp nhưng bằng cách sử dụng cùng hàm tạo keystream tại người gửi và người nhận. Mặc dù mã luồng không lan truyền lỗi truyền tải, chúng theo bản chất là định kỳ nên keystream sẽ cuối cùng lặp lại.

Các loại cơ bản của mã luồng cũng sẽ được định nghĩa như các chế độ hoạt động của mã luồng, vì nó sẽ được hiển thị rằng chúng có thể được chuyển đổi lẫn nhau bởi các cấu trúc đơn giản và chung. Tương tự, một số nguyên thủy mật mã được xây dựng từ mã luồng cũng sẽ được定义为码流的服务模式。

Một số mã luồng trong chế độ KG có thể được转换为SCM模式,通过让下一个状态函数也依赖于当前的明文位。在此方面需要尊重的主要元素是单个明文位的变化应该导致在随后的keystream(密文)序列中出现随机外观的变化(前向传播效应)。

KG模式应满足相同的属性,但关于原始状态位的变化。因此,通过将明文位插入一个或多个内部状态位,特别是那些具有显著前向传播效应的位,可以简单地实现适应。