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

  • 2019.
  • Mật mã khối và mật mã dòng là hai phương pháp mã hóa thông tin phổ biến trong lĩnh vực bảo mật. Tuy nhiên, chúng có một số khác biệt cơ bản.Mật mã khối là phương pháp mã hóa trong đó dữ liệu được chia thành các khối cố định và sau đó được mã hóa. Trong khi đó, mật mã dòng mã hóa dữ liệu theo từng dòng riêng lẻ. Mật mã khối thường được sử dụng cho các ứng dụng cần độ chính xác cao, chẳng hạn như truyền tải thông tin tài chính. Trong khi đó, mật mã d

    Cách mã hóa và giải mã giữa mật mã khối và mật mã luồng có sự khác biệt. Mật mã khối sẽ mã hóa và giải mã văn bản trên một khối văn bản cùng lúc. Trong khi đó, mật mã luồng sẽ thực hiện mã hóa và giải mã văn bản bằng cách xử lý từng byte của văn bản tại một thời điểm.

    Biểu đồ so sánh

    Cơ sở để so sánh Khó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án Chỉ 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ột khối được dùng làm đầu vào cho quá trình mã hóa, nó sẽ chứa một thông điệp được phân chia thành các khối có kích thước nhất định và được chuyển đổi ngay lập tức. Ví dụ, khi có một thông điệp đơn giản như STREET_BY_STREET, ta sử dụng thuật toán mã hóa block để mã hóa. Đầu tiên, chúng ta sẽ mã hóa khối STREET, sau đó là khối _BY_ và cuối cùng là khối STREET cuối cùng.

    Việc truyền thông trong thực tế chỉ diễn ra dưới dạng các bit. Vì vậy, STREET thực sự có ý nghĩa tương đương với nhị phân của ký tự ASCII của STREET. Sau đó, các thuật toán mã hóa sẽ thực hiện việc này và các bit kết quả sẽ được chuyển đổi trở lại thành các ký tự ASCII tương đương của chúng.

    Sử dụng phương pháp mã khối gặp phải một trở ngại đáng kể, đó là sự lặp lại của văn bản và dẫn đến việc tạo ra mật mã giống nhau. Điều này khiến cho việc phân tích mật mã trở nên dễ dàng hơn, vì nhà phân tích có thể dễ dàng nhận ra các chuỗi định kỳ của văn bản gốc và từ đó tiết lộ toàn bộ nội dung tin nhắn.

    Để giải quyết vấn đề này, ta có thể áp dụng phương pháp xích. Theo cách này, khối hiện tại sẽ được pha trộn với khối văn bản mã hóa trước để tránh tình trạng lặp lại các khối có nội dung giống nhau với văn bản mã hóa không rõ ràng.

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

    Stream cipher thường mã hóa một byte tin nhắn tại thời điểm đó bằng cách thay vì sử dụng các khối. Ví dụ, giả sử thông điệp ban đầu (văn bản thuần túy) là màu xanh da trời, trong định dạng ASCII. Khi bạn chuyển đổi các ký tự ASCII này thành các giá trị nhị phân tương đương, nó sẽ cho ra kết quả ở dạng 0 và 1. Hãy chuyển đổi nó thành chuỗi 010111001.

    Mật mã dòng là một phương pháp mã hóa thông tin bằng cách sử dụng một khối mã hóa đơn giản để mã hóa mỗi dòng dữ liệu trước khi ghi vào bộ nhớ hoặc truyền đi. Phương pháp này được sử dụng để bảo vệ dữ liệu khỏi việc bị đánh cắp hoặc thay đổi bởi những kẻ tấn công. Mật mã dòng giúp tăng độ an toàn và bảo mật cho dữ liệu trong các hệ thống lưu trữ và truyền thông.

    Để mã hóa và giải mã, chúng ta sử dụng một công cụ tạo số ngẫu nhiên, trong đó khóa và văn bản thuần túy được tải. Công cụ tạo số ngẫu nhiên sẽ tạo ra một chuỗi số 8 bit dường như ngẫu nhiên, được gọi là chuỗi chính. Đầu vào là khóa có giá trị 100101011. Sau đó, khóa và văn bản gốc được XOR với nhau. Phép toán XOR rất đơn giản để hiểu.

    Khi một trong hai đầu vào là 0 và đầu vào còn lại là 1, kết quả của phép XOR sẽ là 1. Trong trường hợp cả hai đầu vào đều là 0 hoặc cả hai đầu vào đều là 1, phép XOR sẽ cho ra kết quả là 0.

    Một kỹ thuật đảm bảo rằng nội dung mã hóa không tiết lộ bất kỳ thông tin nào về nội dung gốc là sơ suất. Phương pháp phổ biến được áp dụng để tăng cường sự thừa thải của văn bản đơn giản bằng cách phân bố nó trên các dòng và cột.

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

  • Phương pháp mã hóa khối liên quan đến việc mã hóa các đoạn văn bản một cách riêng lẻ tại một thời điểm. Tương tự, giải mã được thực hiện bằng cách lấy các khối từ đoạn này đến đoạn khác. Ngược lại, phương pháp mã hóa Stream liên quan đến việc mã hóa và giải mã từng byte của đoạn văn bản tại một thời điểm.
  • Mật khẩu khối được tạo ra bằng cách sử dụng cả sự rối loạn và phân tán, trong khi mật khẩu dòng chỉ dựa trên sai sót ngẫu nhiên.
  • Trong thuật toán mã hóa khối, kích thước tiêu chuẩn của khối thường là 64 hoặc 128 bit. Trái lại, trong thuật toán mã hóa luồng, mỗi lần xử lý được thực hiện trên 1 byte (8 bit).
  • Các phương pháp mã hóa khối bao gồm ECB (Mã điện tử) và CBC (Mã hóa chuỗi khối) được sử dụng trong mật mã. Trong khi đó, phương pháp mã hóa Stream sử dụng CFB (Mật mã phản hồi) và OFB (Mật mã phản hồi đầu ra).
  • Tại sao mã hóa luồng có thể dễ dàng đảo ngược các bit XORed? Điều này là do mã hóa luồng sử dụng phép toán XOR để chuyển đổi văn bản gốc thành văn bản mã hóa. Trái lại, mã hóa khối không sử dụng phép toán XOR để thực hiện quá trình này.
  • Sử dụng một khóa đồng nhất để mã hóa từng khối trong mã khối, trong khi đó mã luồng sử dụng các khóa khác nhau cho mỗi byte.
  • Phần kết luận:

    Tư tưởng đằng sau thuật toán mã khối là phân chia nội dung đơn giản thành các phân đoạn, sau đó mã hóa và giải mã từng phân đoạn. Tuy nhiên, mã hóa dòng sử dụng cách chuyển đổi nội dung đơn giản từng bit như một dòng liên tục, không phân chia thành các phân đoạn. Vì thế, phương pháp mã hóa và giải mã của hai loại mã này được thực hiện theo cách khác nhau.

    Trả lời

    Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *