Điểm:2

Băm mật khẩu sau lượng tử có an toàn không?

lá cờ az
Luc

Các máy tính hiện tại không thể phá vỡ các mật khẩu được băm ở mức hợp lý, chẳng hạn như 14 ký tự chữ và số do CSPRNG tạo ($\xấp xỉ$80 bit entropy).

Thuật toán của Grover áp dụng cho các hàm băm như tôi hiểu (đã đề cập, ví dụ: trong câu trả lời này), nghĩa là với bất kỳ đầu ra MD5 128 bit nào, nó có thể tìm thấy đầu vào (hoặc xung đột của chúng) trong $\sqrt{2^{128}}=2^{64}$ đánh giá thuật toán, cung cấp một máy tính có đủ qubit. Nếu máy tính lượng tử có thể đánh giá MD5 đủ nhanh (hoặc đủ rẻ để tạo đủ bản sao), điều này sẽ phá vỡ hoàn toàn MD5 bất kể mật khẩu của người dùng mạnh đến đâu.

Tuy nhiên, việc tìm kiếm một khóa ngẫu nhiên 256 bit được chạy qua hàm băm 256 bit (hoặc mạnh hơn) vẫn nằm ngoài tầm với.

Điều gì sẽ xảy ra nếu bản thân hàm băm là an toàn hậu lượng tử, ví dụ: SHA-512, nhưng đầu vào là mật khẩu? Có bất kỳ thuật toán lượng tử nào đã biết có thể tìm thấy đầu vào trong các đánh giá ít hơn đáng kể so với tìm kiếm vũ phu truyền thống ($\frac{2^{80}}{2}$ trung bình cho ví dụ trên)? Có phải thuật toán Grover (hoặc bất kỳ thuật toán lượng tử áp dụng nào khác) chỉ áp dụng để làm suy yếu chính hàm băm hay nó cũng có thể chỉ tìm kiếm các đầu vào hợp lý (a-z, A-Z, 0-9 <= 14 ký tự) để giảm không gian tìm kiếm?

Nói rõ hơn, tôi hiểu rằng bất kỳ chức năng băm trần nào (ngay cả với các đầu ra dài không cần thiết như SHA-512) đều là một cách tệ hại để lưu trữ mật khẩu người dùng và nên sử dụng Argon2 hoặc tương tự, nhưng tôi nghĩ rằng độ cứng của bộ nhớ và các khía cạnh khác có thể khiến câu hỏi quá rộng hoặc một câu trả lời ít áp dụng rộng rãi.

Điểm:4
lá cờ my

Có phải thuật toán Grover (hoặc bất kỳ thuật toán lượng tử áp dụng nào khác) chỉ áp dụng để làm suy yếu chính hàm băm hay nó cũng có thể chỉ tìm kiếm các đầu vào hợp lý (a-z, A-Z, 0-9 <= 14 ký tự) để giảm không gian tìm kiếm?

Grover's là một phương pháp tìm kiếm chung - nó không biết hoặc không quan tâm đến cách chức năng được đưa ra diễn giải đầu vào. Nếu bạn cung cấp cho nó một hàm diễn giải các đầu vào là "(a-z, A-Z, 0-9 <=14 ký tự)", thì nó sẽ hoạt động với nó, với độ phức tạp dự kiến.

Mặt khác, câu hỏi liên quan có thể là "việc sử dụng Máy tính lượng tử có ý nghĩa kinh tế, trái ngược với trang trại GPU hoặc một số ASIC?" Tôi đề nghị trong vài thập kỷ tới (nghĩa là cho đến khi công nghệ Máy tính lượng tử trải qua một số thế hệ), các phương pháp cổ điển sẽ nhanh hơn trong trường hợp này.

Một số lý do cho việc này:

  • Chi phí của một hoạt động Điện toán lượng tử có thể được dự kiến ​​là nhiều lớn hơn chi phí của một cổ điển tương ứng. Đây là một yếu tố không đổi khi so sánh cả hai - tuy nhiên, nếu yếu tố không đổi này có lẽ là một tỷ hoặc một nghìn tỷ, thì thực sự không nên bỏ qua.

  • Song song hóa - các tìm kiếm trên máy tính cổ điển (như cái này) hoàn toàn có thể song song hóa (mà một trang trại GPU hoặc bộ ASIC sẽ tận dụng tối đa). Ngược lại, thuật toán của Grover (hoặc bất kỳ tìm kiếm Quantum Oracle tương tự nào) thì không - bạn hiểu rằng $n^2$ tăng tốc nếu bạn có thể thực hiện $O(n)$ các thao tác nối tiếp nhau. Tuy nhiên, nếu bạn không thể đợi lâu như vậy và cần triển khai nhiều Máy tính lượng tử để thực hiện tìm kiếm, thì bạn sẽ không nhận được điều đó $n^2$ tăng tốc giữa chúng. Ví dụ: để thực hiện tìm kiếm nhanh hơn 100 lần, bạn cần số lượng Máy tính lượng tử gấp 10.000 lần.

  • Tái sử dụng tìm kiếm chính. Với tính toán cổ điển, chúng ta có thể tạo bảng Cầu vồng - việc tạo bảng đó mất khoảng thời gian tìm kiếm đầy đủ; tuy nhiên, sau khi hoàn thành, việc thực hiện tìm kiếm lặp lại trên các mật khẩu băm khác nhau sẽ không tốn kém. Ngược lại, việc chạy thuật toán của Grover sẽ thực hiện tìm kiếm trên một mật khẩu duy nhất - nếu chúng tôi muốn kiểm tra một hàm băm khác, chúng tôi phải trả tiền cho toàn bộ quá trình tìm kiếm lại. Tất nhiên, bạn có thể xây dựng một bảng Rainbow trên Máy tính lượng tử; tuy nhiên, tôi không tin rằng bạn sẽ tăng được bất kỳ tốc độ Lượng tử nào và tôi chưa nghe nói về một giải pháp thay thế mà bạn sẽ tăng tốc Lượng tử.

Giờ đây, theo thời gian, chúng ta có thể kỳ vọng một cách hợp lý rằng chi phí của Máy tính lượng tử sẽ giảm (và giảm nhanh hơn so với chi phí so sánh của điện toán cổ điển) và chúng ta có thể kỳ vọng Máy tính lượng tử sẽ nhanh hơn theo thời gian (do đó yêu cầu ít song song hóa hơn); Tôi chỉ không mong đợi một trong hai xu hướng xảy ra trong đêm ...

Nói rõ hơn, tôi hiểu rằng bất kỳ chức năng băm trần nào (ngay cả với các đầu ra dài không cần thiết như SHA-512) đều là một cách tệ hại để lưu trữ mật khẩu người dùng và nên sử dụng Argon2 hoặc tương tự, nhưng tôi nghĩ rằng độ cứng của bộ nhớ và các khía cạnh khác có thể khiến câu hỏi quá rộng hoặc một câu trả lời ít áp dụng rộng rãi.

Với sự hiểu biết hiện tại của chúng tôi về sự đánh đổi vốn có trong Máy tính lượng tử (có thể là không có cơ sở đáng kể), một chức năng cứng của bộ nhớ sẽ khá khó khăn đối với Máy tính lượng tử. Việc đánh giá một hàm băm như vậy có vẻ sẽ yêu cầu một bộ nhớ Lượng tử lớn và (theo những gì chúng tôi biết) có vẻ rất tốn kém [1].

Thuật toán của Grover sẽ được áp dụng (một lần nữa, nó không quan tâm hàm băm là gì); tuy nhiên nó có vẻ khá đắt.

Vì vậy, giả sử rằng những dự đoán của chúng tôi là chính xác, hàm băm bộ nhớ cứng (Argon2) thậm chí sẽ có khả năng chống lại Điện toán lượng tử cao hơn so với các hàm băm đơn giản.


[1]: Tôi tin rằng ít nhất một phần lý do là nếu bạn có Bộ nhớ lượng tử lớn và truy cập nó cho một địa chỉ vướng víu, thì cuối cùng bạn sẽ thực hiện các thao tác trên từng ô nhớ (hoặc ít nhất, mọi ô đơn lẻ có thể là được xử lý bởi địa chỉ vướng víu). Ngược lại, với bộ nhớ cổ điển, bạn chỉ cần truy cập vào ô đang được đánh địa chỉ. Nếu chúng ta đang nói về một bộ nhớ có 1.000.000 vị trí có thể định địa chỉ, thì điều này có nghĩa là Bộ nhớ lượng tử có thể cần thực hiện gấp 1.000.000 lần số thao tác so với trường hợp cổ điển.

fgrieu avatar
lá cờ ng
Lý do đó có thể được sử dụng để hỗ trợ DSA đó với $p$ lớn (ví dụ 8192 bit), 256-bit $q$ và Argon2 làm hàm băm, có thể được kỳ vọng sẽ chống lại sự gia tăng (giả thuyết) của CRQC lâu hơn ECDSA với secp256r1 và SHA-256?
poncho avatar
lá cờ my
@fgrieu: tốt, với DSA và ECDSA, bạn sẽ sử dụng Shor's, thay vì Grover's và Shor's không quan tâm hàm băm là gì. Mặt khác, từ những gì chúng tôi biết về Shor's, ECDSA-P256 có vẻ dễ dàng hơn DSA-8192, phần lớn là do các phép toán đường cong elliptic có thể sẽ rẻ hơn các phép toán mod p=8192 bit tương ứng (không phải tôi' tôi muốn cho rằng DSA-8192 là An toàn lượng tử...)
lá cờ az
Luc
Cảm ơn vì câu trả lời xuất sắc! Phần tăng tốc (gạch đầu dòng thứ hai) nghe có vẻ phản trực giác, nhưng thực sự tôi cũng nhận được kết quả tương tự nếu tôi giải quyết nó. Đối với thế hệ sau: với một số máy tính lượng tử (QC) thực hiện các phép toán $2^{32}$, mỗi phần là các phép toán $\frac{2^{32}}{QCs}$ và mỗi phần có thể thực hiện phần của mình trong $\sqrt{share} $ thời gian.Đối với 2 QC, đó là $2^{15,5}$ thời gian trong khi ban đầu sẽ mất 1 QC $2^{16}$ thời gian: tăng tốc ít hơn hai trong khi sử dụng gấp đôi số QC. Với 8 QC, tốc độ tăng tốc chỉ là 2,8Ã. Điều đó kết hợp với nhau cho đến khi đạt được 10.000 QC, cuối cùng tốc độ tăng lên là 100Ã (mỗi QC bổ sung hầu như không đáng kể).

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