Điểm:1

Chế độ mật mã khối nào được sử dụng tốt nhất trong các tình huống thực tế?

lá cờ sa

Đối với một kỳ thi mà tôi đang học, tôi tự hỏi chế độ mật mã khối nào là tốt nhất để sử dụng trong một số tình huống nhất định.

Chúng tôi đã tìm hiểu về các chế độ mật mã khối này: ECB, CBC, CFB (+ s-bit), OFB (+ s-bit) và CTR.
Theo những gì tôi hiểu: một số có thể song song, một số thì không. Một số có thể được chuyển thành mật mã luồng (s-bit), một số thì không. Một số có lan truyền lỗi tồi tệ hơn. Mỗi người đều có (không) lợi thế của họ.

Câu hỏi của tôi là, phương pháp mật mã khối nào được ưu tiên trong một số trường hợp nhất định, chẳng hạn như để trò chuyện video, lưu trữ mật khẩu, gửi dữ liệu bằng bộ điều khiển vi mô, ...

kelalaka avatar
lá cờ in
Chào mừng bạn đến với Cryptography.Se Đây là một câu hỏi khá rộng không thể trả lời đầy đủ.
lá cờ sa
Chà, rất có thể giáo sư của tôi vẫn sẽ hỏi tôi điều này trong kỳ thi, và tôi sẽ cần đưa ra câu trả lời... Ví dụ: để lưu trữ mật khẩu, sử dụng ECB thực sự là một ý tưởng tồi bởi vì các khối bằng nhau được mã hóa trong cùng một cách. Tôi đang tìm những manh mối khác như vậy.
kelalaka avatar
lá cờ in
Đối với mật khẩu, chúng tôi không mã hóa, chúng tôi sử dụng thuật toán băm mật khẩu, đây là câu trả lời chính xác. Xem [Cách băm mật khẩu an toàn?](https://security.stackexchange.com/q/211/86735). Nếu bạn khăng khăng muốn mã hóa thì làm cách nào để giữ khóa mã hóa an toàn?
SAI Peregrinus avatar
lá cờ si
IMO, một trong các GCM-SIV, GCM, OCB, CTR hoặc XTS để mã hóa (không phải băm mật khẩu). OCB nhanh nhất nhưng không được hỗ trợ rộng rãi (nó đã được cấp bằng sáng chế cho đến gần đây) và không chống sử dụng sai mục đích, GCM-SIV tốt cho hầu hết các mục đích sử dụng và không sử dụng sai mục đích nhưng là 2-pass, GCM phổ biến nhưng không sử dụng sai mục đích -kháng, XTS không xác thực và do đó yếu hơn nhưng không mở rộng bản mã nên nó được sử dụng để mã hóa toàn bộ đĩa và CTR là khối xây dựng cho các chế độ xác thực và đôi khi được sử dụng khi xác thực được cung cấp ở cấp độ khác của giao thức . Phần còn lại ít hữu ích hơn nhiều.
Swashbuckler avatar
lá cờ mc
@kelalaka Đôi khi chúng tôi mã hóa mật khẩu, điều này phụ thuộc vào mục đích sử dụng mật khẩu. Nếu nó đang được sử dụng để chúng tôi xác thực thì chúng tôi sẽ không sử dụng, nếu chúng tôi đang lưu trữ mật khẩu để xác thực một thứ khác thì chúng tôi sẽ mã hóa.
lá cờ kr
@kelalaka: "*Đối với mật khẩu, chúng tôi không mã hóa, chúng tôi sử dụng thuật toán băm mật khẩu*" - Điều này chỉ đúng trong một trường hợp, khi cần mật khẩu để xác thực người dùng. Nhưng khi người dùng lưu trữ mật khẩu trong trình quản lý mật khẩu, thì tất nhiên những mật khẩu này hoặc thông thường toàn bộ cơ sở dữ liệu mật khẩu được mã hóa, ví dụ: với AES-256. Nếu một người muốn phát triển trình quản lý mật khẩu, điều rất quan trọng là chọn chế độ nào.
kelalaka avatar
lá cờ in
Có, tôi chỉ xem xét xác thực. Không đề cập đến các cách sử dụng khác khi người ta cần mật khẩu thay vì giá trị băm.
lá cờ cn
ECB là một lựa chọn tồi cho bất cứ điều gì. Trừ khi bạn có thể đảm bảo, cùng một tin nhắn sẽ không bao giờ được gửi hai lần với cùng một khóa. Đây là một hạn chế đối với các tin nhắn - và tốt hơn là nên tránh điều đó.
Điểm:1
lá cờ ng

Trong các tình huống thực tế, ngoại trừ khả năng tương thích với các hệ thống hiện có, nó hiếm khi được sử dụng trực tiếp bất kỳ chế độ mã hóa nào được liệt kê trong câu hỏi, bởi vì chúng tốt nhất cung cấp mã hóa an toàn (báo trước: ECB không), điều này không không phải bao gồm các nhu cầu của hầu hết các tình huống thực tế.

Trong các ứng dụng thực tế, nếu một người cần mã hóa, thông thường người ta cũng cần ngăn chặn sự thay đổi thông điệp mà không bị phát hiện (ví dụ: xóa một phần của thông báo, thay đổi một phân đoạn). Vì vậy, nó cần một chế độ cung cấp mã hóa xác thực¹, chẳng hạn như GCM kết hợp với mật mã khối AES. Nó đủ nhanh để "trò chuyện video" với CPU hiện đại và đủ đơn giản để "gửi dữ liệu bằng bộ điều khiển vi mô".

Như là mã hóa xác thực chế độ thường sẽ sử dụng nội bộ một trong các chế độ của câu hỏi để mã hóa mà nó cung cấp, ví dụ: GCM sử dụng CTR.ECB/CBC/CFB/OFB có xu hướng bị loại bỏ dần đối với CTR, vì CTR đơn giản, nhanh chóng, dễ dàng song song hóa và cho phép truy cập đọc/sửa đổi/ghi trực tiếp vào các tệp lớn mà không cần mã hóa lại những gì tiếp theo. Nhược điểm duy nhất của nó là

  • Tính linh hoạt², nhưng điều đó hoàn toàn được giải quyết bằng mã hóa được xác thực.
  • Độ nhạy tái sử dụng của Vector khởi tạo/nonce. Điều này có thể được giảm thiểu bằng các quy trình tốt để tạo IV hoặc các chế độ mã hóa được xác thực chống lạm dụng như GCM-SIV.

Để "lưu trữ mật khẩu", chúng tôi thường không muốn sử dụng mã hóa, điều này ngụ ý khả năng giải mã, khi chúng tôi thường có thể sống với một hệ thống không bao giờ yêu cầu giải mã mật khẩu và do đó ít bị rò rỉ dữ liệu hơn (có một số trường hợp ngoại lệ như trình quản lý mật khẩu). Đối với mật khẩu, lựa chọn đầu tiên là phần cứng bảo mật được thiết kế để lưu trữ mật khẩu. Lựa chọn thứ hai là lưu trữ trên đĩa kết quả của hàm băm chậm và có muối của mật khẩu, như Argon2. Lựa chọn cuối cùng là mã hóa xác thực mật khẩu. Lưu ý vấn đề xác thực: chỉ với mã hóa, người ta sợ rằng ai đó có quyền truy cập đọc/ghi vào mật khẩu được mã hóa có thể đặt lại mật khẩu của người dùng thành mật khẩu đã biết mà không cần khóa, nếu họ biết mật khẩu của người dùng khác.


¹ Theo nghĩa là bản rõ được giải mã khớp chính xác với bản rõ đã được mã hóa bằng khóa mã hóa, điều này làm cho nó xác thực.

² Theo nghĩa cho phép thay đổi ý nghĩa của văn bản rõ đã giải mã thành văn bản gốc đã biết, ví dụ: biến đổi trả $1000 đến trả $9800. Chế độ CBC hoặc CFB làm cho cuộc tấn công như vậy trở nên khó khăn hơn nhưng không cung cấp mã hóa được xác thực đầy đủ.

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