để cho Chia sẻ bí mật của Shamir (SSS) được xây dựng từ trường hữu hạn $K = \mathbb F_{p^m}$, I E. $K$ là một phần mở rộng trường hữu hạn với $p^m$ yếu tố, $order(K) = p^m$.
Khi kẻ tấn công truy cập vào $k-1$ sau đó $k$ cổ phiếu của SSS, còn lại tất cả các giá trị từ $K$ có cùng xác suất trở thành ứng cử viên của cổ phiếu cuối cùng. Điều này là do tài sản của SSS; nó có một kế hoạch chia sẻ bí mật hoàn hảo (tức là nó có bí mật hoàn hảo ). Vì vậy; kẻ tấn công không học được gì trừ khi họ nắm giữ tất cả các cổ phần.
Kẻ tấn công, trong khi giữ $k-1$ chia sẻ, có $p^m$ các ứng cử viên có thể bằng nhau cho phần cuối cùng. Khả năng duy nhất đối với họ là cố gắng phân biệt tất cả chúng với hàng thật, không có gì hơn.
Chà, thay vì trả tiền (hoặc ăn cắp) cho $k-1$ chia sẻ họ chỉ có thể thử tất cả các $p^m$ các phần tử của trường. Bởi vì;
- Họ không có lợi thế là có $k-1$ cổ phiếu hoặc $1$ cổ phiếu Tất cả đều giống nhau, SSS có bí mật hoàn hảo.
Bây giờ, vì mật khẩu được tạo từ bí mật chung, nên có giới hạn về số lượng mật khẩu có thể có; $p^m$. Giả sử rằng một phương pháp băm mật khẩu sai được sử dụng, chẳng hạn như SHA-256 thuần túy, thì kích thước của trường phải lớn hơn $2^{93}$ vì những người khai thác Bitcoin có thể đạt được lượng SHA-256D này trong một năm. Do đó, nên có một trường có thứ tự lớn hơn $2^{128}$.
Người ta cần một thuật toán băm mật khẩu tốt hơn như Argon2id để hạn chế khả năng của kẻ tấn công. Ví dụ: nếu bạn sử dụng PBKDF2 với số lần lặp là 1M ( Argon2 cũng có số lần lặp), thì bạn sẽ giảm khả năng tìm kiếm của kẻ tấn công bằng $\xấp xỉ 2^{20}$. Nếu bạn sử dụng bộ nhớ cứng và số luồng hỗ trợ các chức năng băm mật khẩu như Argon2, thì bạn sẽ giảm khả năng song song hóa của kẻ tấn công, đặc biệt là trong các trường hợp ASIC/GPU. Quyết định rủi ro của bạn và bảo mật mục tiêu, sau đó điều chỉnh các tham số của hàm băm mật khẩu. Và đừng quên thêm một muối ngẫu nhiên để băm mật khẩu.
Nếu chia sẻ cũng được sử dụng để tạo khóa mã hóa, phần chia sẻ phải bằng hoặc lớn hơn kích thước khóa. Lý do đơn giản là đây người ta không thể tăng entropy bằng cách băm.
Có khả năng kẻ tấn công có thể thực hiện vũ phu và tìm mật khẩu nếu có cách kiểm tra xem mật khẩu đã đoán có đúng hay không (như sử dụng thông tin đăng nhập trên trang web nhiều lần cho đến khi bạn vào được)?
Chà, hầu hết các trang web/hệ thống tốt đều bảo vệ chống lại các cuộc tấn công này bằng cách hạn chế số lần thử mật khẩu hoặc có xác thực 2 yếu tố. Tuy nhiên, chúng tôi có thể cho rằng kẻ tấn công truy cập DB để lấy hàm băm của (các) mật khẩu. Đây là mô hình tấn công thường thấy trong bảo mật mật khẩu. Vì vậy, hãy tăng thứ tự trường.
Liệu đơn đặt hàng $n$ của vật chất trường hữu hạn trong một cuộc tấn công vũ phu như vậy? Sẽ làm tăng giá trị của $n$ cung cấp bảo mật bổ sung trong một kịch bản như vậy?
Yes và Yes như trên.