Điểm:1

Thuật toán dẫn xuất khóa cứng bộ nhớ trong đó cần có tất cả bộ nhớ được yêu cầu tại mọi thời điểm

lá cờ in

Lý lịch. Tất cả các thuật toán MKDF (KDF cứng bộ nhớ) mà tôi biết (Scrypt, Argon2, Balloon) không thực sự yêu cầu tất cả bộ nhớ tại mọi thời điểm trong thời gian chạy triển khai thuật toán, mà thay vào đó yêu cầu một hình phạt tính toán nặng nề khi sử dụng ít bộ nhớ hơn .

Đại khái, biểu đồ sử dụng bộ nhớ theo thời gian trông như thế này (tất nhiên, MKDF tốt hơn sẽ có nhiều mức tăng đột biến liền kề hơn): nhập mô tả hình ảnh ở đây (Hình ảnh từ ở đó)

Tôi nghĩ hạn chế này (không cần bộ nhớ mọi lúc) là do cách thức hoạt động của các máy tính có mục đích chung (ví dụ: CPU, RAM).

Câu hỏi. Nếu chúng tôi nới lỏng giả định về phần cứng (ví dụ: cho phép phần cứng chuyên dụng), chúng tôi có thể xác định thuật toán MKDF yêu cầu tất cả bộ nhớ của nó tại mọi thời điểm không? Ví dụ. chúng ta có thể làm cho nó sao cho biểu đồ hiển thị một đường thẳng không?

Suy nghĩ của tôi cho đến nay. Hãy tưởng tượng nếu chúng ta có một mặt phẳng bộ nhớ cơ học, trong đó trạng thái của mọi bit bộ nhớ được kết nối với trạng thái của mọi bit khác, sao cho nếu chúng ta lật giá trị của một bit, nó sẽ gây ra việc lật mọi bit khác trong toàn bộ bộ nhớ.

Với mặt phẳng bộ nhớ cơ học này, chúng tôi thực hiện một lệnh duy nhất lật 1 bit và thao tác đơn đó sẽ lật trạng thái của tất cả các bit khác một cách cơ học.

Nếu mối quan hệ giữa các bit không thể dự đoán được (ví dụ: tương tự như cách một thay đổi nhỏ trong giá trị khối của văn bản rõ ràng dẫn đến thay đổi hoàn toàn trong văn bản mật mã), thì tôi đoán bộ nhớ cơ học này đã trở thành MKDF có thể hoạt động như thế này:

  1. Người dùng khởi tạo bộ nhớ bằng cách lấp đầy nó bằng các bit ngẫu nhiên được tạo ra từ một số hạt giống. Điều này được thực hiện chỉ một lần.
  2. Người dùng mã hóa mật khẩu của mình theo các bit quan trọng nhất trên mặt phẳng bộ nhớ cơ học. Điều này rõ ràng được thực hiện mỗi khi người dùng muốn lấy một khóa an toàn hơn từ mật khẩu của mình.
  3. Vì người dùng đang mã hóa mật khẩu của mình trong các bit đầu tiên của trang bộ nhớ cơ học đó, trạng thái của tất cả các bit trong trang bộ nhớ cơ học sẽ thay đổi theo cách không thể đoán trước.
  4. Cuối cùng, khi người dùng mã hóa xong mật khẩu của mình, anh ta chỉ cần chọn các bit ít quan trọng nhất của mặt phẳng bộ nhớ cơ học đó làm khóa dẫn xuất.

Nếu một đối thủ cố gắng làm điều này với một mặt phẳng bộ nhớ cơ học nhỏ hơn (với ít bit bộ nhớ hơn), thì khóa dẫn xuất của anh ta sẽ hoàn toàn ngẫu nhiên.

Nếu dự đoán của tôi là đúng và việc triển khai phần cứng như vậy là khả thi, thì:

  • Đây là một nền tảng cho các thuật toán dựa trên phần cứng MKDF luôn yêu cầu cùng một lượng bộ nhớ, tại từng khoảnh khắc trong thời gian chạy của chức năng dẫn xuất khóa.
  • Người dùng mua một mặt phẳng bộ nhớ cơ học duy nhất cho thông tin đăng nhập của riêng mình, vì vậy người dùng có thể mua nó vì đây là một lần mua hàng. Nhưng đối thủ sẽ phải mua nhiều tờ này để thực hiện chúng song song. Vì vậy, tôi đoán nó có thể mở rộng cho người dùng, nhưng không thể mở rộng cho đối thủ.

Tôi đoán chúng ta có thể thực hiện mặt phẳng bộ nhớ cơ học này bằng cách sử dụng:

  • Lượng tử vướng víu có lẽ là một cách suy nghĩ tự nhiên hơn về nó.
  • Một bảng cơ khí lớn với nhiều dầu mỡ để các bánh răng không bị kẹt.
  • Điện tử cho một giải pháp thay thế nhỏ hơn và ít nhờn hơn.
caveman avatar
lá cờ in
@kelalaka - Đúng, nhưng số tiền không liên quan đến câu hỏi. Đối với bất kỳ dung lượng bộ nhớ nào bạn đặt trong chúng, việc triển khai không cần tất cả bộ nhớ tại mọi thời điểm.
caveman avatar
lá cờ in
@kelalaka - Tôi biết điều đó rồi. Đã thêm một biểu đồ để hiển thị rõ hơn những gì tôi muốn nói.
caveman avatar
lá cờ in
Đúng. Cùng một đồ thị; nó đang hiển thị khái niệm áp dụng cho tất cả các MKDF mà tôi biết cho đến nay (tức là khoảng 5?).
kelalaka avatar
lá cờ in
Không, vừa được thử nghiệm, chắc chắn, mức sử dụng bộ nhớ Argon2 không phải là hai lần tăng đột biến, có rất ít thời gian giảm bộ nhớ không thể sử dụng để khấu hao...
caveman avatar
lá cờ in
@kelalaka - Bạn không hiểu biểu đồ đó hoạt động như thế nào. Tôi sẽ dừng lại ở đây.
kelalaka avatar
lá cờ in
Tôi đã xem xét mức tăng bộ nhớ của mình mỗi giây. Và, có rất nhiều thứ để khấu hao. Cài đặt Argon2 và thử.. ( xem hình ảnh trên [chat](https://chat.stackexchange.com/transcript/message/59379296#59379296) )
ckamath avatar
lá cờ ag
Câu hỏi hay. Tôi nghĩ khái niệm mà bạn quan tâm được gọi là *độ phức tạp không gian duy trì* và đã được khám phá [tại đây](https://eprint.iacr.org/2018/147). Họ cũng đưa ra cách xây dựng MHF với độ phức tạp không gian bền vững cao trong mô hình tiên tri ngẫu nhiên.

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