Điểm:1

Blake2b của Argon2 khác với Blake2b bình thường như thế nào?

lá cờ in

Bài này nói rằng Blake2b của Argon2 là một giảm một, cũng được đồng ý bởi Thông số kỹ thuật của Argon2 vì nó nói rằng nó chỉ sử dụng Blake2b 2 vòng.

Nhưng mặt khác, trang 15 thông số kỹ thuật của Argon2 nói rằng nó sửa đổi Blake2b để thêm các phép nhân 32 bit nhằm tăng độ trễ (tôi đoán chúng có nghĩa là cần đợi thêm chu kỳ CPU?).

Câu hỏi của tôi là:

  1. Nếu Argon2 muốn làm cho Blake2b khó hơn, tại sao nó lại giảm 12 vòng xuống chỉ còn 2?
  2. Có sự khác biệt nào khác mà tôi không đề cập ở đây không?
  3. Những khác biệt này ảnh hưởng như thế nào đến tính bảo mật của Blake2b của Argon2 so với Blake2b tiêu chuẩn được tìm thấy trong, chẳng hạn như, libsodium?

Suy nghĩ của tôi

Tôi nghĩ rằng việc Argon2 sử dụng hàm băm (Blake2b) để lấp đầy bộ nhớ không phải là lựa chọn tốt nhất. Bởi vì không có quá trình nén nào liên quan đến việc lấp đầy bộ nhớ; Đầu vào 1024 byte trở thành đầu ra 1024 byte khác. Không xảy ra nén, do đó, tất cả các vòng tích cực của hàm băm cố gắng duy trì entropy đầu vào tối đa trong khi nén thành ít byte hơn là hoàn toàn không cần thiết.

Tôi nghĩ đây là lý do tại sao Argon2 tiếp tục tạo biến thể Blake2b rút gọn của riêng mình chỉ với 2 vòng thay vì 12: bởi vì rõ ràng là không cần phải băm.

Một cách hiệu quả bằng cách sửa đổi Blake2b, Argon2 đã tạo ra một biến thể của mật mã khối đối xứng và họ cũng tiếp tục sử dụng nó như một mật mã (đầu vào cố định trở thành đầu ra cố định có kích thước bằng nhau).

Tôi nghĩ rằng cách tiếp cận tốt hơn so với Argon2 là, thay vì phát minh lại một mật mã khối đối xứng từ hàm băm (bằng cách sửa đổi Blake2b), là cắt bỏ cuộc rượt đuổi và sử dụng một mật mã đối xứng hiện có như ChaCha20.

Sử dụng mật mã đối xứng như ChaCha20 sẽ nhanh như mật mã đối xứng được phát minh lại của Argon2 (Blake2b giảm), mặc dù đó là ChaCha20 20 vòng. ChaCha20 theo các thử nghiệm của tôi chỉ chậm hơn một chút so với Argon2 khi thực hiện cùng một công việc. Cộng với các lợi ích khác: tận dụng các thư viện hiện có và nhiều nghiên cứu phân tích mật mã hơn đã được áp dụng cho các mật mã hiện có.

Điểm:1
lá cờ cn

Bạn đã đúng khi nói rằng trong trường hợp này không cần nén và rằng mật mã khối đối xứng cũng có thể được sử dụng cho mục đích này. Một số cân nhắc có thể đóng một vai trò trong việc lựa chọn Blake2b.

  1. phiên bản rút gọn được sử dụng để lấp đầy một vectơ lớn càng nhanh càng tốt, mà sau đó được truy cập để làm cho lược đồ trở nên khó nhớ. Ý tưởng đằng sau điều này có lẽ không chỉ là nhanh chóng lấp đầy một véc-tơ, mà còn có thể đặt độ cứng bộ nhớ độc lập với độ cứng thời gian. Điều này có nghĩa là thuật toán phải nhanh. Do đó số lượng vòng giảm.

  2. thuật toán không nên chạy nhanh hơn nhiều trên phần cứng tùy chỉnh, ví dụ: ASIC, hơn là trên một thiết bị người dùng thông thường. Điều này có nghĩa là, không chỉ hiệu suất thuần túy là rất quan trọng, mà còn là sự khác biệt về hiệu suất giữa các phần cứng khác nhau. Blake2b được tối ưu hóa chính xác cho các thiết bị người dùng thông thường.

  3. thuật toán không được dễ bị tấn công theo thời gian bộ đệm. Do đó, thiết kế ARX được ưu tiên hơn.

ChaCha20 cũng đáp ứng các tiêu chí này về nguyên tắc, có lẽ Blake2b chỉ hoạt động tốt hơn ở điểm 2. so với dạng rút gọn của ChaCha20. Có lẽ nó cũng đóng một vai trò mà tại thời điểm đó, các hàm băm được chú ý nhiều hơn do cuộc thi SHA-3 vừa mới hoàn thành và do đó các thuật toán băm mới như Blake2b được nghiên cứu tốt hơn so với các mật mã khối mới.

Một dấu hiệu cho thấy Blake2b phù hợp với ứng dụng này: Ngoài Argon2, nhóm Catena cũng đã phát triển một dạng Blake2b rút gọn (khác) cho mục đích tương tự.

Và một dấu hiệu cho thấy giả định của bạn về mật mã khối cũng đúng: Ngược lại, kế hoạch Scrypt, được phát triển vào năm 2010, sử dụng một dạng Salsa20 rút gọn, tiền thân của ChaCha20.

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