Giả sử các từ không được lặp lại, điều này sẽ đưa ra tổng số khả năng:
$N(L) = \sum_{i=1}^L {170000 \choose i}$
Không: đây là tổng số bộ của $L$ các từ, nhưng các từ phải theo thứ tự, vì vậy giá trị thực sự là
$N(L) = \sum_{i=1}^L \frac{170000!}{i!}$.
Hơn nữa, không có lý do gì để không lặp lại các từ: điều này chỉ làm cho cụm mật khẩu dễ đoán hơn một chút. Vì vậy số lượng $L$cụm từ mật khẩu -word thực sự là $170000^{L}$. Số lượng mật khẩu của $1$ đến $L$ từ là
$$N(L) = \sum_{i=1}^L 170000^i$$
Kẻ tấn công thực sự có khả năng biết số lượng từ trong cụm mật khẩu, nhưng điều này không thay đổi nhiều về số lượng.
Làm phép tính, $N(14) < 2^{256} < N(15)$.
Vậy có đúng không khi cho rằng, nếu kẻ tấn công biết "mật khẩu" thực sự là một cụm mật khẩu được tạo thành từ các khóa tiếng Anh, thì cụm mật khẩu đó ít nhất phải là 18 15-word long để nó không phải là liên kết yếu hơn trong sơ đồ mã hóa AES?
Vẫn không, vì chi phí kiểm tra cụm mật khẩu cao hơn chi phí kiểm tra khóa. Để kiểm tra cụm mật khẩu, trước tiên kẻ thù phải lấy khóa từ cụm mật khẩu, sau đó kiểm tra khóa. Việc lấy khóa từ cụm mật khẩu cố tình chậm: nó sử dụng một kéo dài phím chức năng.
Việc kéo dài khóa chậm hơn bao nhiêu so với phép tính băm phụ thuộc vào việc lựa chọn thuật toán strecting khóa, vào cách nó được tham số hóa và phần cứng mà kẻ tấn công có. Đối với lực lượng vũ phu ở quy mô này, chi phí thiết kế phần cứng là không đáng kể và chi phí bị chi phối bởi mức tiêu thụ điện năng. Đối với chức năng kéo dài phím hoạt động lặp lại kế thừa như PBKDF2, lượng silicon cung cấp năng lượng cho quá trình kéo dài phím không cao hơn đáng kể so với AES. Thông thường, việc chọn một hệ số chậm sao cho một lần chạy tốn vài phần mười giây, so với vài phần tỷ giây đối với phần AES, nghĩa là tỷ lệ khoảng $2^{26}$. Với chức năng kéo dài phím hiện đại cũng là bộ nhớ cứng, tỷ lệ này cao hơn vì bạn cũng phải cấp nguồn cho RAM. tôi sẽ sử dụng $2^{30}$ như tỷ lệ.
Điều này có nghĩa là để AES yếu hơn trước lực lượng vũ phu so với cụm mật khẩu, chúng ta cần $N(L) \ge 2^{256}/2^{30} = 2^{226}$, đạt được cho $L \ge 13$.
Nhưng… con số này không có ý nghĩa! Hoàn toàn không cần phải bẻ khóa cụm mật khẩu chậm hơn bẻ khóa AES, bởi vì bẻ khóa AES đã vượt quá khả năng. Nếu việc bẻ khóa cụm mật khẩu là không thể, nhưng âít khả thi hơnâ so với AES, thì điều đó vẫn không thể.
Mạng Bitcoin sử dụng khoảng 0,4% tổng sản lượng điện của thế giới (nguồn: â 100 TWh/năm ra khỏi trên 25000 TWh/năm) rồi tính â $2^{93}$ băm/năm. Giả sử bạn nhận được cùng một số thao tác cơ bản trên mỗi Wh để bẻ khóa cụm mật khẩu, với chênh lệch hệ số chi phí là $2^{30}$ Tôi đã ước tính ở trên, điều này có nghĩa là giới hạn trên cho việc bẻ khóa cụm mật khẩu là $2^{63}$ mỗi năm.
Vì vậy, nếu bạn muốn khóa của mình được bảo mật khỏi kẻ thù cấp NSA để một nghìn năm, bạn cần $N(L) \ge 1000 \cdot 2^{63} \approx 2^{73}$, đạt được cho $L \ge 5$.
Ở cấp độ sức mạnh chống lại vũ phu này, vũ phu không phải là vấn đề đáng lo ngại. Hay đúng hơn, âbrute forceâ như trong siêu máy tính không phải là vấn đề đáng lo ngại. Lực lượng vũ phu đáng lo ngại được áp dụng với một công cụ cùn.
Thực tế thực tế thực tế: kẻ tấn công thực sự có động cơ sẽ tìm thấy cụm mật khẩu thông qua lừa đảo hoặc, ví dụ: Thực ra người dùng cẩn thận và những kẻ tấn công mạnh mẽ, bằng cách cài đặt máy ảnh hoặc cài đặt phần mềm độc hại. (Hoặc một sự kết hợp của chúng.)