Đề XuấT, 2024

Editor Choice

Sự khác biệt giữa Mật mã khối và Mật mã dòng

Mã hóa khối và mật mã dòng là các phương thức được sử dụng để chuyển đổi văn bản đơn giản thành văn bản mã hóa trực tiếp và thuộc họ mật mã khóa đối xứng.

Sự khác biệt chính giữa mật mã khối và mật mã luồng là mật mã khối mã hóa và giải mã một khối văn bản tại một thời điểm. Mặt khác, mã hóa dòng mã hóa và giải mã văn bản bằng cách lấy một byte của văn bản tại một thời điểm.

Biểu đồ so sánh

Cơ sở để so sánhKhóa mật mãMật mã dòng
Căn bản
Chuyển đổi văn bản đơn giản bằng cách lấy khối của nó tại một thời điểm.
Chuyển đổi văn bản bằng cách lấy một byte của văn bản đơn giản tại một thời điểm.
Phức tạp
Thiết kế đơn giản
Phức tạp tương đối
Không có bit nào được sử dụng
64 bit trở lên
8 bit
Nhầm lẫn và khuếch tán
Sử dụng cả nhầm lẫn và khuếch tánChỉ dựa vào nhầm lẫn
Các chế độ thuật toán được sử dụng
ECB (Sách mã điện tử)
CBC (Chuỗi khối mã hóa)
CFB (Phản hồi mật mã)
OFB (Phản hồi đầu ra)
Sự đảo ngược
Đảo ngược văn bản được mã hóa là khó.
Nó sử dụng XOR để mã hóa có thể dễ dàng đảo ngược thành văn bản thuần túy.
Thực hiện
Mật mã Feistel
Mật mã Vernam

Định nghĩa về mật mã khối

Mã hóa khối nhận một tin nhắn và chia nó thành một khối có kích thước cố định và chuyển đổi một khối tin nhắn ngay lập tức. Ví dụ: chúng tôi có một tin nhắn bằng văn bản đơn giản STREET_BY_STREET 'bắt buộc phải được mã hóa. Sử dụng mật mã bock, lúc đầu, STREET phải được mã hóa, sau đó là mã _BY_ Lần và cuối cùng là tại STREET Lần cuối cùng.
Trong thực tế, giao tiếp chỉ diễn ra trong bit. Do đó, STREET thực sự có nghĩa là tương đương nhị phân của ký tự ASCII của STREET. Sau đó, bất kỳ thuật toán mã hóa những điều này; các bit kết quả được chuyển đổi trở lại thành tương đương ASCII của chúng.

Một vấn đề rõ ràng liên quan đến việc sử dụng thuật toán mã khối là lặp lại văn bản, trong đó mật mã tương tự được tạo ra. Do đó, nó sẽ đưa ra một gợi ý cho nhà phân tích mật mã, giúp dễ dàng tìm ra các chuỗi định kỳ của văn bản thuần túy. Kết quả là, nó có thể tiết lộ toàn bộ tin nhắn.

Để khắc phục vấn đề này, chế độ xích được sử dụng. Trong kỹ thuật này, khối văn bản mật mã trước được trộn với khối hiện tại, do đó, đối với văn bản mật mã mơ hồ, điều này tránh các mẫu khối lặp lại có cùng nội dung.

Định nghĩa về mật mã dòng

Stream Mật mã thường mã hóa một byte tin nhắn tại thời điểm đó thay vì sử dụng các khối. Hãy lấy một ví dụ, giả sử thông điệp gốc (văn bản thuần túy) là màu xanh da trời, màu xanh da trời trong ASCII (tức là định dạng văn bản). Khi bạn chuyển đổi các ASCII này thành các giá trị nhị phân tương đương, nó sẽ cung cấp đầu ra ở dạng 0 và 1. Hãy để nó được dịch trong 010111001.

Để mã hóa và giải mã, một trình tạo bit giả ngẫu nhiên được sử dụng trong đó một khóa và văn bản thuần túy được tải. Trình tạo bit giả ngẫu nhiên tạo ra một luồng các số 8 bit dường như ngẫu nhiên được gọi là luồng chính. Đặt khóa đầu vào là 100101011. Bây giờ khóa và văn bản gốc được XOR. Logic XOR rất đơn giản để hiểu.
XOR tạo ra đầu ra là 1 khi một đầu vào bằng 0 và đầu vào khác là 1. Đầu ra là 0 nếu cả hai đầu vào đều 0 hoặc cả hai đầu vào đều 1.

Nhầm lẫn là một phương pháp đảm bảo rằng một văn bản mật mã không đưa ra manh mối nào về văn bản thuần gốc.
Phổ biến là một chiến lược được sử dụng để tăng cường sự dư thừa của văn bản đơn giản bằng cách trải rộng nó trên các hàng và cột.

Sự khác biệt chính giữa Mật mã khối và Mật mã dòng

  1. Kỹ thuật mã hóa khối liên quan đến mã hóa một khối văn bản tại một thời điểm, tức là đơn lẻ. Tương tự, giải mã văn bản bằng cách lấy hết khối này đến khối khác. Ngược lại, kỹ thuật mã hóa Stream liên quan đến mã hóa và giải mã một byte văn bản tại một thời điểm.
  2. Mật mã khối sử dụng cả nhầm lẫn và khuếch tán trong khi mật mã luồng chỉ dựa vào nhầm lẫn.
  3. Kích thước thông thường của khối có thể là 64 hoặc 128 bit trong mật mã khối. Ngược lại, 1 byte (8 bit) tại một thời điểm được chuyển đổi trong mật mã luồng.
  4. Mật mã khối sử dụng các chế độ thuật toán ECB (Sách mã điện tử)CBC (Mã hóa chuỗi khối) . Ngược lại, mật mã Stream sử dụng các chế độ thuật toán CFB (Phản hồi mật mã)OFB (Phản hồi đầu ra) .
  5. Mật mã luồng sử dụng chức năng XOR để chuyển đổi văn bản thuần thành văn bản mã hóa, đó là lý do tại sao nó dễ dàng đảo ngược các bit XORed. Trong khi đó, mật mã khối không sử dụng XOR để làm như vậy.
  6. Mật mã khối sử dụng cùng một khóa để mã hóa từng khối trong khi mật mã luồng sử dụng một khóa khác nhau cho mỗi byte.

Phần kết luận:

Mã hóa khối và mật mã dòng khác nhau theo cách mà văn bản đơn giản được mã hóa và giải mã. Ý tưởng đằng sau mật mã khối là chia văn bản đơn giản thành các khối mã hóa thêm các khối đó. Trong khi mật mã luồng chuyển đổi văn bản đơn giản từng bit tương tự như luồng.

Top