Điểm:1

Salsa20/ChaCha20 có còn cung cấp tính toàn vẹn khi mã hóa bitmap không?

lá cờ in

Thứ lỗi cho tôi về câu hỏi này. Tôi có ý tưởng mã hóa các tệp *.bmp bitmap bằng ChaCha20/Salsa20 mà không cần Poly1305.

Đây chỉ là một chương trình đơn giản, trong đó tôi có thể mã hóa các hình ảnh bitmap *.bmp, với CipherText thu được ở dạng các tệp *.bmp vẫn có thể mở được và hiển thị các pixel ngẫu nhiên đã được mã hóa. Hình ảnh minh họa bên dưới:

Hình minh họa

  1. Điều này có thể không?
  2. Nếu vậy, Ciphertext khi được giải mã có tạo ra cùng một tệp Bitmap như PlaintText (Cả hai đều có cùng giá trị tổng kiểm tra) không?.
Điểm:3
lá cờ in
  1. Điều này (vẫn cung cấp tính toàn vẹn khi mã hóa bitmap) có khả thi không?

Không, ChaCha20 chỉ là một mật mã luồng, bản thân nó không cung cấp tính toàn vẹn/tính xác thực của thông báo; không phải không có sự thay đổi đáng kể - và sau đó nó sẽ được gọi là một cái gì đó khác.

  1. Nếu vậy, Ciphertext khi được giải mã có tạo ra cùng một tệp Bitmap như PlaintText (Cả hai đều có cùng giá trị tổng kiểm tra) không?.

Đúng, trừ khi bản mã bị thay đổi giải mã vẫn là nghịch đảo của mã hóa. Mật mã vừa xác định vừa có thể đảo ngược khi được khởi tạo bằng (các) khóa phù hợp.

Thẻ xác thực (Poly1305) được sử dụng để phát hiện xem bản mã (hoặc thẻ) có bị thay đổi do hỏng (lỗi truyền, lỗi trong quá trình lưu trữ) hoặc do cố ý của kẻ tấn công hay không. Không bắt buộc phải duy trì tính toàn vẹn nếu không có sự thay đổi bên ngoài nào diễn ra.


Vì ChaCha20 là một mật mã luồng (không nhận biết văn bản rõ), chức năng mã hóa là nghịch đảo của chính nó: nó tạo ra một luồng khóa, sau đó XOR'ed với bản rõ để mã hóa và với bản mã để giải mã.

Nhược điểm của điều đó là bạn không thể đơn giản đặt một "nôi" hoặc giá trị đã biết vào bản rõ để phát hiện xem quá trình giải mã có thành công hay không - về cơ bản, bất kỳ giá trị nào trong bản rõ kết quả đều có thể được thay đổi theo ý muốn bằng cách thay đổi bản mã.


Khá thường xuyên có những vị trí trong tệp mà bạn có thể ẩn thông tin. Ví dụ, bạn có thể xem Tiêu đề DIB hoặc bảng màu/hồ sơ nếu bạn muốn lưu trữ các byte bổ sung, chẳng hạn như thẻ xác thực Poly1305.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.