Khóa riêng và khóa chung trong ECC
Để tạo khóa công khai trong ECC 256 bit (Bitcoin sử dụng secp256k1), người ta cần 256 bit ngẫu nhiên thống nhất để tạo khóa bí mật $k$ (số 256-bit) và xuất bản $[k]G$, tức là phép nhân vô hướng với điểm gốc $G$ và điều này được bảo vệ bởi vấn đề logarit rời rạc trên ECC và nếu nhóm đường cong là chung thì cuộc tấn công nổi tiếng nhất có chi phí $2^{128}$. Hãy nhớ rằng một lần Máy tính lượng tử mật mã được xây dựng, thuật toán của Shor khi áp dụng cho DLog, tính bảo mật sẽ biến mất!
Mật khẩu ngẫu nhiên không khó nhớ sử dụng Dicewire xkcd936
Con người khó nhớ 64 ô lục giác ngẫu nhiên, vì vậy các nhà nghiên cứu đã phát minh ra dây xúc xắc và Bip39 tương tự như vậy. Trong Bip39, thay vì nhớ 64 ô, một lần cuộn các số ngẫu nhiên, có thể bằng cách tung đồng xu công bằng hoặc nhận từ /dev/urandom
để chọn từ trong danh sách từ của Bip39. Được biết rằng 24 từ tạo ra entropy khoảng 256 bit.
Các từ được chọn không công khai và giữ bí mật mọi lúc.
Bây giờ chúng ta có thể coi việc sử dụng cụm mật khẩu là
- Để đạt đượctừ chối hợp lý
- Để tăng tính ngẫu nhiên khi nguồn ngẫu nhiên để tạo khả năng ghi nhớ 24 từ không đáng tin cậy như người ta hy vọng và
- Sử dụng hạt giống ghi nhớ làm nguồn entropy và bảo vệ nó bằng cụm mật khẩu.
Nếu chúng ta đọc câu hỏi như,
Cho rằng những kẻ tấn công (không phải chúng tôi) biết hạt giống ghi nhớ 24 từ, số lượng ký tự mà tôi nên chọn cho mật khẩu của mình sao cho rất khó đoán với siêu máy tính rất nhanh? Hoặc tốt hơn, bao nhiêu hoán vị là đủ để nó an toàn?
Vì vậy, chúng tôi cho rằng từ ghi nhớ 24 từ không được bảo mật đúng cách.
Trước hết, repo khoảng 8 tuổi (created_at": "2013-11-19T17:18:41Z ) cũ hơn cuộc thi băm mật khẩu mới nhất được tổ chức vào năm 2015. Việc họ đề cập đến PBKDF2 chứ không phải Argon2 là điều bình thường. Có vẻ như tài liệu này không được cập nhật cho nhu cầu ngày nay! Nhưng việc đề xuất lặp lại 2048 là không bình thường và vẫn có những ứng cử viên tốt hơn vào thời điểm đó.
- Bcrypt 1999 - lặp lại, không có độ cứng bộ nhớ
- PBKDF2 2000 - lặp lại, không có độ cứng bộ nhớ
- Scrypt 2009 - lặp lại, có độ cứng bộ nhớ
- Argon2 2015 - lặp lại, có độ cứng bộ nhớ và có bộ đếm song song.
Đầu tiên, không sử dụng các ký tự, hãy sử dụng lại Bip39 hoặc dicewire để tạo cụm mật khẩu. Vì vậy, với 12 từ, người ta có thể đạt được entropy khoảng 128 bit và điều này ngay cả với hàm băm đơn giản như SHA1 hoặc SHA256 thay vì PBKDF2 hoặc Argon2, đủ an toàn từ Hội nghị thượng đỉnh và Sức mạnh tập thể của các Công cụ khai thác BitCoin nơi Công cụ khai thác từng đạt được $\khoảng 2^{92,09}$ SHA256d mỗi năm vào ngày 7 tháng 2 năm 2021. Nếu chúng tôi cho rằng đây là mục tiêu bảo mật cho mật khẩu của bạn, thì đối với PBKDF2
sử dụng phép lặp như 1M để bạn có thể giảm sức mạnh tập thể xuống $\khoảng 2^{70}$ và giảm Hội nghị thượng đỉnh xuống khoảng $~2^{50}$*. Điều thú vị về phép lặp này là có thể điều chỉnh theo nhu cầu của bạn. (Người ta có thể sử dụng điểm chuẩn của Hashcat trên NVidia RTX 3090 để điều chỉnh bảo mật mục tiêu theo siêu máy tính chứa nhiều RTX thay vì sức mạnh tập thể của các thợ đào).
Bản ghi nhớ 12 từ sẽ rất an toàn cho Summit, Bip39 6 chữ sẽ vượt qua sức mạnh của nó. tuy nhiên, chúng tôi có những lựa chọn thay thế tốt hơn, ngay cả khi đó và bây giờ - Tiền điện tử và Argon2!
Sử dụng Argon2 bất cứ khi nào có thể
Ngày nay, những người khai thác bitcoin sử dụng rộng rãi ASIC và GPU để song song hóa ồ ạt quá trình khai thác. Bây giờ, chúng ta có các cơ chế giống như Argon2 chống lại chúng
bộ nhớ điều chỉnh để giảm sức mạnh tìm kiếm ASIC và GPU. Ngay cả trên PC và không thể khai thác thời gian sử dụng bộ nhớ.
điều chỉnh song song để lõi của CPU không thể chạy hoàn toàn trong các phiên bản song song.
Và, một lần nữa số lần lặp lại để giảm thời gian tìm kiếm đơn lẻ.
Các thông số Argon2 phải được đo lường trước khi quyết định và việc ghi nhớ 12 từ vẫn sẽ khá an toàn cho Argon2. Có thể nói Bip39 6 chữ sẽ an toàn trước Hội nghị thượng đỉnh.
Hoặc tốt hơn, bao nhiêu hoán vị là đủ để nó an toàn?
Đọc đây là hoán vị của 24 từ. Sau đó, chúng tôi có 24! và bằng cách sử dụng Công thức xấp xỉ của chuỗi
$$n! \sim \sqrt{2 \pi n}\left(\frac{n}{e}\right)^n$$ sau đó thiết lập $n=24$
$$24! \sim \sqrt{2 \pi 24}\left(\frac{24}{e}\right)^{24} \sim 6.2\mathrm{e}{+23} \sim 2^{80}$$
Điều này khá tốt (khoảng 8 từ Bip39), tuy nhiên, hãy nhớ rằng, nếu kẻ tấn công biết cách ghi nhớ 24 từ, thì entropy của khóa dẫn xuất $k$ cùng với cụm mật khẩu không thể vượt qua $2^{80}$. Nếu bạn ổn với entropy 80 bit thì với Argon2id với các tham số đẹp, điều này đủ để bảo mật trước việc tìm kiếm mật khẩu. $2^{50}\ll 2^{80}$
Tuy nhiên, lời khuyên là hãy sử dụng một bản ghi nhớ 24 từ mới nếu bạn có thể giữ nó an toàn để người ta có thể tìm ra cách khai thác $80$-bit entropy - không rõ ràng ngay bây giờ nếu không ép buộc cụm mật khẩu. Nếu không,
Lời khuyên cuối cùng; sử dụng các trình quản lý mật khẩu như keepass và password1 khi bạn chỉ cần một mật khẩu tốt, tốt nhất là từ dicewire hoặc Bip39. Họ có thể tạo mật khẩu thực sự ngẫu nhiên cho các nhu cầu và kho mật khẩu được bảo vệ bằng mật khẩu của bạn và phần còn lại do họ xử lý.
*Hãy nhớ rằng con số này là gần đúng, không chính xác. Chúng ta không thể chắc chắn nếu không ngồi trên bàn điều khiển của Siêu máy tính - Summit