# Diceware: vì sao mấy con xúc xắc đặt mật khẩu giỏi hơn bạn

> Năm 1995, Arnold Reinhold giải bài toán ngẫu nhiên của con người bằng năm con xúc xắc và một danh sách 7.776 từ. Mỗi lần gieo đáng giá 12,9 bit, và là 12,9 bit thật.

2026-02-12 · David Carrero · password.es
Original: https://password.es/vi/blog/diceware-xuc-xac-tao-mat-khau-tot-hon-ban/

---

Hãy nghĩ một từ ngẫu nhiên. Ngay bây giờ, từ đầu tiên bật ra trong đầu.

Dù là từ nào đi nữa, **nó không hề ngẫu nhiên**. Đó là một từ của bạn: thứ gì đó
bạn vừa đọc tuần này, một vật đang nằm trước mặt, chữ cái mở đầu tên bạn. Khi
người ta yêu cầu một con người tạo ra ngẫu nhiên, thứ nhận lại là tự truyện. Mà
tự truyện thì đoán được.

Toàn bộ vấn đề của mật khẩu nằm gọn ở đó. Không phải vì con người lười — dĩ nhiên
cũng có phần đó — mà vì chúng ta **không có khả năng tạo ra sự ngẫu nhiên**. Ta
thích vài chữ cái nhất định, ta né các ký tự lặp lại vì thấy "trông không ngẫu
nhiên", ta xen kẽ nguyên âm với phụ âm mà chẳng hay biết, và khi bị đòi một con
số, ta lôi ra thứ có sẵn trong tay: ngày tháng, tuổi tác, những con số có ý
nghĩa. Kẻ tấn công không cần biết bạn là ai để khai thác điều đó. Chỉ cần biết
bạn là người.

## Một kỹ sư, năm con xúc xắc và một danh sách

Năm 1995, **Arnold G. Reinhold** đăng lên trang web của mình một phương pháp mà
ông gọi là *Diceware*. Ý tưởng đơn giản đến mức hơi bực mình khi phải ngồi giải
thích: nếu vấn đề là con người không biết chọn ngẫu nhiên, thì hãy tước quyền
chọn khỏi tay con người.

Toàn bộ quy trình gói trong ba dòng:

1. Bạn gieo **năm con xúc xắc** và ghi kết quả theo thứ tự. Chẳng hạn ra
   `4-2-6-1-3`.
2. Bạn tra `42613` trong một danh sách.
3. Đó là từ của bạn. Lặp lại cho từ tiếp theo.

Danh sách có **7.776 mục**, và con số ấy không phải bốc đại: đó là 6⁵, tức mọi
kết quả có thể của năm con xúc xắc. Mỗi tổ hợp — từ `11111` đến `66666` — trỏ tới
một mục khác nhau, không mục nào bị bỏ sót cũng không mục nào lặp lại. Danh sách
gốc trộn các từ tiếng Anh ngắn với vài âm tiết, chữ số và ký hiệu rời rạc, chính
vì tìm cho đủ 7.776 từ *đẹp* khó hơn ta tưởng nhiều.

Điều quan trọng không nằm ở danh sách. Nó nằm ở con xúc xắc.

## Vì sao 12,9 bit đúng là 12,9 bit

Đây là phần gần như không ai hiểu, và cũng là phần duy nhất đáng kể.

Entropy của một từ Diceware là log₂(7.776) = **12,9 bit**. Đó là số học, không
phải bảo mật: có 7.776 kết quả và tất cả đều có xác suất y hệt nhau.

So sánh với chuyện xảy ra khi chính bạn chọn. Nếu tôi bảo bạn lấy một từ từ cuốn
từ điển 7.776 từ, phép tính *trông có vẻ* giống hệt — cũng 7.776 lựa chọn — nhưng
không phải, bởi bạn không chọn chúng với xác suất như nhau. Bạn sẽ chọn từ thông
dụng, từ bạn thích, từ bạn vừa nhìn thấy hôm nay. Cuốn từ điển đó có 12,9 bit
trên giấy và ít hơn nhiều trong đầu bạn, còn kẻ tấn công thì sắp danh sách theo
tần suất và thử trước những từ mà người ta hay chọn. **Entropy không phải là có
bao nhiêu lựa chọn: nó là còn lại bao nhiêu lựa chọn sau khi đã trừ đi những gì
kẻ tấn công biết về sở thích của bạn.**

Xúc xắc không có sở thích. Chúng cũng chẳng có trí nhớ: con xúc xắc không biết
lần gieo trước đã ra `rừng`, nên nó không tránh lặp lại, không cố tìm sự đa dạng
và cũng không thấy ngượng khi bật ra hai từ mở đầu giống nhau. Vì thế 12,9 bit
của Diceware là **12,9 bit thật**, chứ không phải con số lạc quan in trên tờ rơi
quảng cáo.

Và cũng vì thế phép cộng mới chạy đúng hướng. Mỗi từ cộng thêm:

- Năm từ: khoảng **64 bit**.
- Sáu từ: khoảng **77 bit**.
- Bảy từ: khoảng **90 bit**.

Đó là phép cộng sạch sẽ, không phải phép nhân thần kỳ, bởi mỗi lần gieo đều độc
lập với các lần còn lại. Reinhold khuyên đừng xuống dưới năm từ, và dùng sáu từ
trở lên cho những thứ thật sự quan trọng. Bạn có thể tự thấy hiệu ứng đó ở
[trình tạo mật khẩu](/vi/): thêm một từ luôn cộng đúng bấy nhiêu, và chữ "luôn"
ấy chính là toàn bộ phát minh.

## Bí mật không nằm ở danh sách

Phản bác tự nó nhảy ra: *nếu danh sách công khai thì phá chẳng phải dễ hơn sao?*

Không, và nên nói thật chậm chỗ này. **12,9 bit đã giả định sẵn rằng kẻ tấn công
có danh sách trong tay.** Nó cũng giả định hắn biết bạn dùng Diceware, biết cụm
từ của bạn có bao nhiêu từ và biết thứ tự bạn gõ chúng ra. Tất cả những thứ đó đã
bị trừ hết. Thứ duy nhất hắn không biết là xúc xắc của bạn đã ra gì, và đó chính
là thứ bạn đang đếm khi nói "77 bit".

Ngược hoàn toàn với những gì ta làm với `P@ssw0rd`, nơi toàn bộ hy vọng được đặt
vào chuyện chẳng ai nghĩ ra việc thay `a` bằng `@`. Người ta nghĩ ra rồi. Đó là
một trong những quy tắc đầu tiên mà bất kỳ công cụ tấn công từ điển nào cũng áp
dụng. Nếu bạn thấy ngứa tay muốn thử, hãy đưa nó vào
[công cụ kiểm tra](/vi/kiem-tra/) và xem nó trụ được bao lâu.

## EFF và các danh sách thay thế

Năm 2016, **Electronic Frontier Foundation** công bố danh sách từ riêng của họ
dành cho các cụm mật khẩu gieo xúc xắc. Danh sách dài vẫn giữ nguyên 7.776 mục —
vẫn năm con xúc xắc ấy, vẫn 12,9 bit ấy — nhưng thay đổi nội dung: loại bỏ các âm
tiết lạ và ký hiệu, đưa vào những từ thông thường, dễ gõ và dễ phân biệt với
nhau. Họ cũng công bố các danh sách ngắn, gồm 1.296 từ (6⁴, bốn con xúc xắc, 10,3
bit mỗi từ): một danh sách gồm những từ ngắn hơn và dễ nhớ hơn, một danh sách
khác được thiết kế sao cho mỗi từ phân biệt với các từ còn lại ngay từ những chữ
cái đầu và có thể tự động hoàn thành. Đổi lại, mỗi lần gieo đáng giá ít hơn và
phải gieo nhiều lần hơn.

Điều thanh lịch ở đây là **số học không thay đổi theo khẩu vị của bất kỳ ai**. Số
mục mới là thứ quyết định. Bạn có thể tự làm danh sách của mình bằng tiếng Mường,
tiếng Ê Đê hay tiếng Klingon: miễn là nó có 7.776 mục khác nhau và bạn chọn bằng
xúc xắc, mỗi từ vẫn đáng giá 12,9 bit. Thứ duy nhất bạn đang quyết định khi đổi
danh sách là kết quả có dễ chịu với bạn tới đâu, chứ không phải nó an toàn tới
đâu.

## Ba cách làm hỏng chuyện

Diceware hỏng theo ba kiểu, và cả ba đều là cùng một lỗi: con người lại thò tay
vào.

- **Gieo lại vì "từ này tôi không thích".** Nếu bạn loại bỏ kết quả thì bạn không
  còn dùng xúc xắc nữa: bạn đang dùng ý thích của mình với một con xúc xắc làm
  đạo cụ. Ra gì thì lấy nấy.
- **Sắp xếp lại các từ cho nghe xuôi tai như một câu.** Thứ tự cũng là một phần
  của lần gieo.
- **"Nâng cấp" nó bằng một dấu `!` ở cuối và một chữ hoa ở đầu.** Chuyện đó chẳng
  thêm được gì trước một kẻ tấn công vốn biết thừa rằng người ta hay đặt `!` ở
  cuối và chữ hoa ở đầu. Nếu buộc phải tuân thủ một chính sách ngớ ngẩn thì cứ
  làm, nhưng đừng tưởng bạn vừa kiếm thêm được chút an toàn nào: bạn kiếm được nó
  bằng cách gieo thêm một lần nữa.

Và một lời nhắc mà Reinhold đã đưa ra từ đầu: xúc xắc thường là quá đủ dùng —
loại dùng trong sòng bạc chính xác hơn, nhưng không cần thiết — nên gieo trên mặt
phẳng nhẵn, và kết quả ra sao thì ghi đúng như vậy.

## Tóm lại

Một cụm sáu từ gieo bằng xúc xắc thì gõ lâu hơn `P@ssw0rd`, dễ nhớ hơn
`Tr0ub4dor&3` và đắt hơn nhiều bậc độ lớn để phá so với cả hai. Không phải vì nó
rắc rối hơn — nó chẳng rắc rối gì, chỉ là sáu từ bình thường — mà vì **nó là thứ
duy nhất trong mật khẩu của bạn mà bạn không hề quyết định**.

Đó là toàn bộ câu chuyện tiếu lâm của Diceware: mật khẩu tốt nhất bạn có thể có
là mật khẩu mà ý kiến của bạn không được tham gia.

---

*Nguồn: Arnold G. Reinhold, “The Diceware Passphrase Home Page” và danh sách
7.776 từ của ông (1995) · Electronic Frontier Foundation, các danh sách từ dành
cho cụm mật khẩu gieo xúc xắc (2016) · phần số học có thể tự kiểm chứng: 6⁵ =
7.776 và log₂(7.776) ≈ 12,92 bit mỗi từ.*
