Mật mã dòng vs Mật mã khối | Mật mã nhà nước vs Mật mã khối
Trong mật mã học, mật mã Stream và mật mã khối là hai thuật toán mã hóa / giải mã thuộc về mật mã khóa đối xứng. Thông thường, một mật mã lấy một văn bản đơn giản làm đầu vào và tạo ra một bản mã làm đầu ra. Khối mật mã mã hóa khối bit có độ dài cố định bằng cách sử dụng một phép biến đổi không có giá trị. Luồng mã hóa mã hóa các luồng bit có độ dài khác nhau và sử dụng biến đổi khác nhau trên mỗi bit.
Mật mã dòng là gì?
Mật mã dòng thuộc họ mật mã khóa đối xứng. Mật mã luồng kết hợp các bit văn bản đơn giản với luồng bit mật mã giả với việc sử dụng thao tác XOR (độc quyền hoặc). Dòng mật mã mã hóa các chữ số văn bản đơn giản cùng một lúc với các biến đổi khác nhau cho các chữ số liên 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, mật mã luồng còn được gọi là mật mã trạng thái. Thông thường, các bit / cắn đơn được sử dụng dưới dạng các chữ số đơn. Để tránh những lo ngại về bảo mật, cần đảm bảo rằng cùng một trạng thái bắt đầu không được sử dụng nhiều lần. Mật mã dòng được sử dụng rộng rãi nhất là RC4.
Mật mã khối là gì?
Một mật mã khối là một mật mã khóa đối xứng khác. Mật mã khối hoạt động trên các khối (nhóm bit) với độ dài cố định. Mật mã khối sử dụng một phép biến đổi (không thay đổi) cố định cho tất cả các chữ số trong khối. Ví dụ, khi một văn bản đơn giản khối x-bit (cùng với khóa bí mật) được cung cấp làm đầu vào cho công cụ mã hóa khối, nó tạo ra khối 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ã phục hồi khối x-bit gốc của bản rõ bằng cách sử dụng khối x-bit của bản 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à các khối này sẽ được mã hóa (riêng lẻ) bằng cùng một khóa. Tuy nhiên, vì cùng một khóa được sử dụng, mỗi chuỗi lặp lại trong văn bản thuần trở thành chuỗi lặp lại giống nhau trong văn bản mã hóa và điều này có thể gây ra mối lo ngại về bảo mật. Mật mã khối phổ biến là DES (Tiêu chuẩn mã hóa dữ liệu) và AES (Tiêu chuẩn mã hóa nâng cao).
Sự khác biệt giữa Mật mã dòng và Mật mã khối là gì?
Mặc dù cả mật mã dòng và mật mã khối đều thuộc họ mật mã mã hóa đối xứng, có một số khác biệt chính. Mật mã khối mã hóa các khối bit có độ dài cố định, trong khi mật mã luồng kết hợp các bit văn bản đơn giản với luồng bit mật mã giả sử dụng thao tác XOR. Mặc dù các thuật toán mã khối sử dụng cùng một phép biến đổi, các thuật toán mã hóa dòng sử dụng các phép biến đổi khác nhau dựa trên trạng thái của động cơ. Mật mã dòng thường thực thi nhanh hơn mật mã khối. Về độ phức tạp phần cứng, mật mã dòng tương đối ít phức tạp hơn. Mật mã luồng là ưu tiên điển hình so với mật mã khối khi văn bản thuần có sẵn với số lượng khác nhau (ví dụ: 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ã dòng và mật mã khối không rõ ràng lắm. Lý do là, khi sử dụng một số chế độ hoạt động nhất định, mật mã khối có thể được sử dụng để hoạt động như một mật mã luồng bằng cách cho phép nó mã hóa đơn vị dữ liệu nhỏ nhất có sẵn.