Điểm:4

Tại sao mật mã khối chủ yếu được sử dụng làm mật mã dòng?

lá cờ al

Sử dụng mật mã khối với việc sử dụng chế độ CTR hoặc GCM mang lại cho chúng tôi mật mã luồng, điểm khác biệt duy nhất là CTR không bao gồm thẻ MAC hoặc AAD nhưng GCM thì có. Tôi nghĩ rằng đây là những phương thức hoạt động được sử dụng phổ biến nhất cho mật mã khối vì ECB không an toàn và CBC không thể song song hóa.

Điều này có làm giảm kích thước khối thuật toán hiệu quả xuống 1 bit khi một bit được ánh xạ tới một bit khác tùy thuộc vào các bit dòng khóa không? Sẽ không tốt hơn nếu giữ kích thước khối của mật mã?

Điểm:7
lá cờ in

Tại sao mật mã khối chủ yếu được sử dụng làm mật mã dòng?

Chế độ CTR không cần phần đệm như chế độ CBC đã gây ra nhiều cuộc tấn công trong nhiều năm được gọi là cuộc tấn công tiên tri đệm [1] [2]. Cuối cùng, CBC bị xóa khỏi TLS, TLS 1.3 chỉ có mật mã chế độ CTR (rfc 8446).

          +---------------------------------+-------------+
          | Mô tả | Giá trị |
          +---------------------------------+-------------+
          | TLS_AES_128_GCM_SHA256 | {0x13,0x01} |
          | | |
          | TLS_AES_256_GCM_SHA384 | {0x13,0x02} |
          | | |
          | TLS_CHACHA20_POLY1305_SHA256 | {0x13,0x03} |
          | | |
          | TLS_AES_128_CCM_SHA256 | {0x13,0x04} |
          | | |
          | TLS_AES_128_CCM_8_SHA256 | {0x13,0x05} |
          +---------------------------------+-------------+

Các cuộc tấn công và quyết định của TLS đã làm tăng việc sử dụng chế độ CTR. Hãy nhớ rằng hầu hết tất cả bảo mật internet đều dựa trên TLS. Theo khảo sát của SSLlabs, %46,6 trang web chấp nhận TLS 1.3 ( Hỗ trợ giao thức )

Cả chế độ CTR lẫn CBC hay CFB (tất cả các hoạt động ở chế độ lưu trữ) đều không có MAC theo thiết kế. Để có máy mac, hãy sử dụng HMAC hoặc sử dụng GCM, CCM, Poly1305, v.v.

Nếu chúng ta nói về chế độ về mặt lý thuyết thì CBC và CTR chỉ có thể cung cấp Ind-CPA. Ngoài cái này cần tính toàn vẹn cho Ind-CCAx. Mặt khác, mã hóa được xác thực (GCM,CCM,Poly1305) cung cấp bảo mật cao hơn Ind-CCAx,

Điều này không làm giảm kích thước khối thuật toán hiệu quả xuống 1 bit khi một bit được ánh xạ tới một bit khác tùy thuộc vào các bit luồng khóa?

Chà, nếu bạn sử dụng CBC và áp dụng phần đệm, thì bạn thực thi nhiều nội dung hơn là loại bỏ các bit không cần thiết của khối. Trong cả hai trường hợp, số khối được mã hóa gần như giống nhau (ngoại trừ nếu khối đã đầy, thì đối với PKCS#7, người ta cần thêm một khối). Sau đó, áp dụng phần đệm và bỏ phần đệm là các chức năng bổ sung để áp dụng. Chế độ CTR cần x-hoặc luồng.

Như đã lưu ý trong các nhận xét, chế độ CTR có khả năng song song hóa cao, thậm chí cho phép truy cập ngẫu nhiên hoặc lưu trữ trước luồng. Các màn trình diễn OpenSLL bên dưới trên máy của tôi

tốc độ mởssl -evp aes-128-cbc aes-128-ctr
loại 16 byte 64 byte 256 byte 1024 byte 8192 byte 16384 byte
aes-128-cbc 818912.47k 1365115.22k 1404590.75k 1409671.85k 1410523.14k 1411497.98k
aes-128-ctr 561928.57k 1899517.87k 3908505.17k 5220669.78k 5835377.32k 5876869.80k

Như chúng ta có thể thấy, ngoại trừ các tin nhắn rất ngắn CTR đánh bại CBC trong AES-NI.

Sẽ không tốt hơn nếu giữ kích thước khối của mật mã?

Không

  • Chúng ta phải đối phó với phần đệm và các vấn đề không an toàn của nó, tại sao không loại bỏ nó hoàn toàn khi chúng ta có chế độ CTR.

  • Nó cũng tăng kích thước dữ liệu lên tối đa 16 byte cho AES.

  • Chế độ CTR theo thiết kế sử dụng PRF thay vì PRP (mật mã khối là của PRP), điều này cung cấp nhiều chức năng hơn để sử dụng - tương tự như khi chúng tôi sử dụng ChaCha20. Trong chế độ CBC, chúng tôi phải sử dụng PRP.


Tất nhiên, không có gì là hoàn hảo! Mỗi chế độ đều có ưu và nhược điểm. Tùy thuộc vào bối cảnh, người ta có thể thích cái này hơn cái khác. Theo lẽ thường, trong mật mã hiện đại, chúng tôi thích các chế độ mã hóa được xác thực như AES-GCM (có thể với SIV) và ChaCha20-Poly1305 (xChaCha20-1305 tốt hơn cho các nonce 192 bit).

SEJPM avatar
lá cờ us
Ngoài ra, khả năng song song hóa của mật mã luồng (đặc biệt đối với mật mã dựa trên AES) cũng hữu ích trong xử lý đơn luồng dưới dạng các lệnh độc lập _love_ của bộ xử lý hiện đại. Điều này có thể dễ dàng mang lại cho bạn hiệu suất AES tốt hơn từ 4-8 lần từ chế độ nối tiếp như mã hóa CBC sang chế độ song song như CTR. Một đối số tương tự được áp dụng khi bạn không có hướng dẫn AES mà thay vào đó có triển khai AES được chia bit.
kelalaka avatar
lá cờ in
Vâng, chính xác, vì OP đã được đưa vào nên _CBC không song song hóa được_ (mặc dù việc giải mã không phải như vậy), tôi đã không viết về điều này. AFAIK, dấu ngoặc đơn mà bạn sử dụng là do kích thước khối của ChaCha20, phải không?

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