Điểm:0

RC4-40 với thiết lập IV (32-bit)

lá cờ pk

tôi đã lấy cái này triển khai RC4 được viết bằng C.

Tôi có khóa 40 bit và IV 32 bit (cả ở dạng hex).

Vì vậy, câu hỏi là về bước KSA:

  1. Tôi nên chuyển đổi giá trị khóa hex thành mảng char như thế nào? Chỉ cần chuyển đổi nó thành dài?

  2. Tôi nên giới thiệu IV ở đâu? (Một số viết để nối nó với chìa khóa, những người khác viết rằng S đã là IV)

  3. Nếu S đã là IV, tôi nên chuyển đổi IV 32-bit của mình thành mảng 40-bit như thế nào? cách sau?

    for (int i = 0; i < 32; i++) S[i] = (iv >> (32 - 1 - i)) & 1; ?

Tôi đã thực hiện một số điều tra trước khi hỏi ở đây nhưng không thể tìm thấy câu trả lời.

fgrieu avatar
lá cờ ng
Như đã nói trong [câu trả lời](https://crypto.stackexchange.com/a/99456/555), 40 bit là khóa quá ngắn và không thể an toàn. Và việc ghép ngay cả một khóa rộng hơn và IV là không an toàn. Do đó, không rõ câu hỏi "nên" được hiểu như thế nào. Có phải nó đang tái tạo một số hệ thống hiện có? Trong trường hợp nào thì nên nghiên cứu hệ thống này là gì và nó làm gì. Ghép khóa và IV (và có lẽ đệm bằng số 0 thành 256 byte) sẽ là một trong những cách đơn giản nhất. Nhưng một lần nữa, điều này là không an toàn. Nếu muốn có một hệ thống an toàn dựa trên RC4, thì [key streching](https://en.wikipedia.org/wiki/Key_stretching) sẽ hữu ích.
Điểm:3
lá cờ fr

RC4 không dùng IV. Điều này tương đối không phổ biến trong mật mã dòng, nhưng đó là trường hợp trong RC4.

Có vẻ như chỉ ghép khóa với IV và đây là cách tiếp cận được thực hiện trong WEP. Cách tiếp cận này cũng hoàn toàn không an toàn, vì RC4 dễ bị tấn công bởi các khóa liên quan. Kết hợp với thực tế là dòng khóa RC4 có độ lệch đáng kể ngay cả khi được sử dụng với một khóa hoàn toàn ngẫu nhiên, điều này thường đủ để khôi phục văn bản gốc. Làm điều này cho WEP có thể được thực hiện bằng các công cụ tự động tương đối nhanh chóng ngay cả đối với khóa 104 bit.

Bạn không nên sử dụng RC4 cho bất kỳ mục đích nào trong những ngày này và chắc chắn không phải với khóa 40 bit. Nếu bạn cần mật mã luồng an toàn với IV, tôi khuyên dùng ChaCha20 với khóa 256 bit. Nó an toàn hơn và nhanh hơn RC4.

Nếu bạn dự định sử dụng IV ngẫu nhiên, thì tôi khuyên dùng biến thể XChaCha20, cho phép một nonce 192-bit ngẫu nhiên. Nonce cho ChaCha20 thông thường quá ngắn để sử dụng nonce ngẫu nhiên do nguy cơ va chạm, nhưng sẽ ổn nếu bạn định sử dụng cách tiếp cận nonce dựa trên phản tác dụng.

Nếu bạn đang sử dụng điều này trong thế giới thực, bạn cũng sẽ muốn bảo vệ tính toàn vẹn, thường được cung cấp bởi Poly1305 kết hợp với ChaCha, nhưng bạn cũng có thể sử dụng HMAC mã hóa-sau đó-MAC.

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