Sự khác biệt giữa Stream Cipher và Block Cipher
Stream Cipher vs Block Cipher | Cơ chế mã hoá của tiểu bang và mã hóa khối
Trong mật mã, mật mã luồng và mật mã chặn là hai thuật toán mã hóa / giải mã thuộc về nhóm mật mã khoá đối xứng. Thông thường một mật mã lấy một văn bản thuần như đầu vào và tạo ra một bản mã bằng đầu ra. Khóa mật mã mã hóa các khối bit cố định bằng cách sử dụng một phép biến đổi không đổi. Mã mật mã dòng mã hóa các luồng bit có chiều dài khác nhau và sử dụng biến đổi khác nhau trên từng bit.
Mật mã luồng là gì?Mật mã luồng trực thuộc họ mật mã khoá đối xứng. Mã nhị phân dòng được kết hợp với các bit văn bản thuần bằng một dòng mã hóa giả ngẫu nhiên bằng việc sử dụng thao tác XOR (độc quyền hoặc). Mã mật mã luồng mã hóa văn bản đồng bằng văn bản một chữ một lần với biến đổi khác nhau cho các chữ số kế tiếp. Bởi vì mã hóa của mỗi chữ số phụ thuộc vào trạng thái hiện tại của công cụ mã hóa, các mật mã luồng còn được gọi là mã hoá trạng thái. Thông thường, các bit đơn / vết cắn được sử dụng làm các chữ số đơn. Để tránh mối quan tâm về an ninh, cần đảm bảo rằng cùng một trạng thái ban đầu không được sử dụng nhiều hơn một lần. Mật mã được sử dụng rộng rãi nhất là RC4.
Một mật mã khối là một mật mã khóa đối xứng khác. Khóa mật mã hoạt động trên các khối (nhóm bit) có chiều dài cố định. Khóa mã sử dụng một phép biến đổi cố định (không thay đổi) cho tất cả các chữ số trong khối. Ví dụ, khi một khối văn bản đơn giản (cùng với khóa bí mật) được cung cấp như là đầu vào cho công cụ mã hóa khối, nó tạo ra khối văn bản x-bit tương ứng của bản mã. Việc chuyển đổi thực tế phụ thuộc vào khóa bí mật. Tương tự, thuật toán giải mã khôi phục lại khối văn bản gốc x-bit bằng bản thô bằng cách sử dụng khối văn bản x-bit của mật mã và khóa bí mật ở trên làm đầu vào. Trong trường hợp thông báo đầu vào quá dài so với kích thước của khối, nó sẽ được chia thành các khối và những khối này sẽ được mã hoá riêng lẻ bằng một khóa. Tuy nhiên, vì cùng một phím được sử dụng, mỗi trình tự lặp lại trong văn bản thuần trở thành cùng một chuỗi lặp lại trong văn bản mật mã, và điều này có thể gây ra mối quan tâm về an ninh. Các mã khoá phổ biến là DES (Chuẩn mã hoá dữ liệu) và AES (Chuẩn mã hóa nâng cao).
Mặc dù mật mã luồng và mật mã chặn thuộc về mật mã mã đối xứng, nhưng có một số điểm khác biệt chính. Khóa mật mã mã hóa các khối chiều dài cố định của các bit, trong khi mật mã luồng kết hợp các bit văn bản thuần bằng một luồng bit mật mã giả ngẫu nhiên sử dụng thao tác XOR. Mặc dù các mật mã khối sử dụng cùng một sự biến đổi, các mật mã luồng sử dụng các biến đổi khác nhau dựa trên trạng thái của động cơ.Các mật mã luồng thường thực hiện nhanh hơn các mã khoá chặn. Xét về độ phức tạp phần cứng, mật mã luồng tương đối ít phức tạp hơn. Mã mật mã luồng là ưu tiên điển hình đối với mật mã khối khi văn bản thuần túy có sẵn ở các số lượng khác nhau (ví dụ như kết nối wifi an toàn) vì mật mã khối không thể hoạt động trực tiếp trên các khối ngắn hơn kích thước khối. Nhưng đôi khi, sự khác biệt giữa mật mã luồng và mật mã khối không rõ ràng. Lý do là, khi sử dụng các chế độ hoạt động nhất định, một mật mã khối có thể được sử dụng để hoạt động như một mật mã dòng bằng cách cho phép nó mã hóa đơn vị dữ liệu nhỏ nhất có sẵn.