Điểm:1

XORing một chuỗi được mã hóa Base64 có an toàn không?

lá cờ cz

Về mặt lý thuyết, có an toàn không khi mã hóa một chuỗi bằng Base64 và sau đó XOR chuỗi đó bằng một khóa ngẫu nhiên hoặc có điểm yếu tiềm ẩn nào có thể bị khai thác không?

Rõ ràng điều này không có ý nghĩa gì trong thực tế, nhưng tôi tò mò liệu điều này có an toàn như XORing và sau đó là Base64ing hay không.

Điểm:2
lá cờ cn

Nếu bạn lấy một bản rõ bí mật $P$ chiều dài $n$ và một khóa sử dụng một lần $K$, cũng có độ dài $n$, được tạo ngẫu nhiên (theo nghĩa mật mã của thuật ngữ này), bản mã $C = P \oplus K$ thu được bằng cách xoring chúng không tiết lộ bất cứ điều gì về $P$ đối thủ không biết $K$, khác với chiều dài của $P$. Đối với đối phương, $P$ có thể là bất kỳ chuỗi nào có độ dài $n$.

Nếu lần đầu tiên bạn mã hóa bản rõ trong Base64 và sử dụng một khóa $K'$ chiều dài $n' = \mathsf{length}(\mathsf{Base64}(P))$, bản mã $C' = \mathsf{Base64}(P) \oplus K'$ không tiết lộ bất cứ điều gì khác hơn là chiều dài của $\mathsf{Base64}(P)$, tương ứng một đối một với độ dài là $P$. Vì vậy, việc giải nén mã hóa Base64 cũng tốt như việc giải mã thông báo gốc.

Lưu ý rằng điều quan trọng là khóa là ngẫu nhiên. Nếu bản thân khóa được mã hóa trong Base64, tức là nếu bạn xuất bản bản mã $\mathsf{Base64}(P) \oplus \mathsf{Base64}(K)$, điều này sẽ rò rỉ khá nhiều thông tin về tin nhắn. Xor một khóa ngẫu nhiên hoạt động vì đối với mỗi vị trí trong bản mã, mọi ký tự đều có thể cho bản rõ, tương ứng với mọi ký tự cho khóa. Nhưng, ví dụ, nếu một nhân vật trong $\mathsf{Base64}(P) \oplus \mathsf{Base64}(K)$ có bit 0x40 được đặt (giả sử mã hóa dựa trên ASCII), có một $52/64$ cơ hội mà ký tự tương ứng trong $\mathsf{Base64}(P)$ là một trong những 0123456789-/, bởi vì có một $52/64$ cơ hội mà ký tự tương ứng trong $\mathsf{Base64}(P)$ là một lá thư.

Trong khi mã hóa các kết quả của mã hóa Base64 không làm rò rỉ thêm thông tin mã hóa tin nhắn gốc, tiến trình thực hiện mã hóa hoặc giải mã Base64 có thể rò rỉ thông tin về tin nhắn thông qua các kênh phụ.

Điểm:2
lá cờ in

Về mặt lý thuyết, có an toàn không khi mã hóa một chuỗi bằng Base64 và sau đó XOR chuỗi đó bằng một khóa ngẫu nhiên hoặc có điểm yếu tiềm ẩn nào có thể bị khai thác không?

Không, điều này là an toàn. Nó thậm chí có thể là khinh bỉ an toàn hơn nếu mã hóa loại bỏ một số thông tin kích thước.

Tuy nhiên, XOR mã hóa chỉ an toàn nếu nó khớp chặt chẽ với phần đệm một lần, chắc chắn không phải phần đệm nhiều lần; tức là luồng khóa được XOR'ed hiện cần phải là miễn là tin nhắn được mã hóa cơ sở 64. Trong trường hợp bộ đệm nhiều lần được sử dụng, mã hóa cơ sở 64 có thể sẽ cung cấp hơn thông tin về bản rõ cho kẻ tấn công.

Rõ ràng điều này không có ý nghĩa gì trong thực tế, nhưng tôi tò mò liệu điều này có an toàn như XORing và sau đó là Base64ing hay không.

Chà, nếu nó hợp lý thì tùy, đôi khi những thứ như chuỗi XML và JSON cần được mã hóa và điều đó về cơ bản có nghĩa là mã hóa mã hóa cơ sở 64 được nhúng (nếu có).

Tuy nhiên, thực tế không có lý do gì để mã hóa cơ sở 64 trước khi mã hóa nếu bạn đã có định dạng tin nhắn nhị phân. Bên cạnh đó, bạn nên sử dụng sơ đồ AEAD tốt hơn nhiều so với một số mật mã dựa trên XOR, ngay cả khi nó giống với bảng mã một lần.

hhhhhhhh avatar
lá cờ cz
Nếu một bảng nhiều lần được sử dụng, những điểm yếu chính xác là gì? I E. tại sao sử dụng một lại tiết lộ thêm thông tin cho kẻ tấn công?
Maarten Bodewes avatar
lá cờ in
Có rất nhiều câu hỏi ở đây về điều đó, nhưng [câu hỏi này từ năm 2012](https://crypto.stackexchange.com/q/2249/1172) có lẽ là điểm khởi đầu tốt nhất.

Đă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.