T

Text Machine

Công cụ văn bản mạnh mẽ, ngay trong trình duyệt của bạn

Mật mã Nihilist

Mã hóa và giải mã mật mã Nihilist, mật mã bằng số của những nhà cách mạng Nga thế kỷ 19. Mỗi chữ cái trước tiên được biến thành tọa độ hai chữ số của nó trên một ô vuông Polybius, rồi một từ khóa lặp lại — được biến thành số theo cùng cách ấy — được cộng vào bên dưới, nên mật mã là một dòng các con số. Trộn ô vuông, đặt từ khóa cộng, theo dõi quá trình cộng tọa độ trực tiếp, rồi sao chép, tải xuống hoặc chia sẻ kết quả. Mọi thứ đều chạy trong trình duyệt của bạn.

Từ khóa

Khóa ô vuông

Khóa cộng

Khóa ô vuông trộn ô vuông Polybius vốn trao cho mỗi chữ cái tọa độ của nó; khóa cộng được biến thành số trên cùng ô vuông đó và cộng vào bên dưới thông điệp, lặp lại khi cần. Cả hai bên phải dùng cùng một ô vuông và cùng các khóa. Để trống khóa cộng để xem các tọa độ thuần túy.

Văn bản thường
Số mật mã

Nhập văn bản ở trên để xem kết quả tại đây.

Ô vuông Polybius

1

2

3

4

5

1

A
B
C
D
E

2

F
G
H
I/J
K

3

L
M
N
O
P

4

Q
R
S
T
U

5

V
W
X
Y
Z

Cách sử dụng Mật mã Nihilist

  1. 1

    Chọn mã hóa hoặc giải mã và một ô vuông

    Chọn Mã hóa để biến văn bản thường thành các số mật mã Nihilist, hoặc Giải mã để biến các số trở lại. Chọn ô vuông 5×5 cho chữ cái hoặc ô vuông 6×6 để mang thêm cả chữ số.

  2. 2

    Đặt hai từ khóa

    Tùy chọn nhập một từ khóa ô vuông để trộn ô vuông Polybius, và một từ khóa cộng được cộng lên trên thông điệp. Cả hai bên phải dùng cùng một ô vuông và cùng các khóa. Để trống khóa cộng để xem các tọa độ thuần túy.

  3. 3

    Nhập hoặc dán văn bản của bạn

    Nhập thông điệp của bạn và nó được chuyển đổi ngay khi bạn gõ. Bảng các bước hiển thị mỗi chữ cái phía trên tọa độ của nó, số khóa tuần hoàn được cộng vào bên dưới, và số mật mã kết quả.

  4. 4

    Đọc ô vuông

    Mở ô vuông Polybius để xem mọi chữ cái cùng với các số hàng và cột của nó, và mọi ô của từ khóa được làm nổi bật.

  5. 5

    Sao chép, tải xuống hoặc chia sẻ

    Sao chép kết quả, tải xuống dưới dạng tệp văn bản, hoặc chia sẻ một liên kết mở lại công cụ với đúng văn bản, ô vuông và các từ khóa của bạn, sẵn sàng để dùng.

Tìm hiểu về Mật mã Nihilist

Mật mã Nihilist là gì?

Mật mã Nihilist là một mật mã thủ công từ thập ni 1880, được đặt theo tên phong trào Nihilist của Nga — những nhà cách mạng chống lại chế độ Sa hoàng và cần một cách để chuyển các thông điệp bí mật. Nó được xây dựng từ hai ý tưởng đơn giản xếp chồng lên nhau: một ô vuông Polybius, vốn biến mọi chữ cái thành một cặp chữ số, và một khóa số lặp lại được cộng lên trên. Bản thân không ý tưởng nào là mới, nhưng việc kết hợp phép thay thế bằng tọa độ với phép cộng tuần hoàn khiến mật mã Nihilist mạnh hơn rõ rệt so với từng phần riêng lẻ, và nó trở thành tổ tiên của cả một họ mật mã bằng số của Nga và Liên Xô về sau.

Vì đầu ra là một dòng các con số chứ không phải chữ cái, mật mã Nihilist trông khá khác với các mật mã chữ cái cổ điển như Caesar hay Vigenère. Tuy nhiên bên dưới bề mặt, nó có quan hệ mật thiết: bước Polybius chính là phép thay thế bằng tọa độ mà các mật mã Bifid và ADFGX sử dụng, còn bước cộng khóa là ý tưởng khóa lặp lại của Vigenère được thực hiện bằng số học thay vì chữ cái. Nghiên cứu nó là một cách rõ ràng để thấy các nhà mật mã đã xây dựng những mật mã lớn hơn bằng cách xếp lớp các mảnh nhỏ, đã được hiểu rõ như thế nào.

Mật mã Nihilist hoạt động ra sao

Bắt đầu với một ô vuông Polybius: một lưới 5×5 chứa bảng chữ cái (với I và J dùng chung một ô), với các hàng và cột được đánh số từ 1 đến 5. Khi ấy mỗi chữ cái có một tọa độ hai chữ số — chữ số hàng theo sau là chữ số cột của nó. Thông điệp được biến thành một danh sách các số tọa độ này. Cho đến đây thì đây chính xác là mật mã Polybius.

Bây giờ lấy một từ khóa và biến mỗi chữ cái của nó thành một tọa độ trên cùng ô vuông đó, cho ra một danh sách ngắn các số khóa. Viết các số thông điệp thành một hàng và lặp lại các số khóa bên dưới chúng, quay lại đầu khóa mỗi khi bạn dùng hết. Cuối cùng, cộng mỗi số thông điệp với số khóa bên dưới nó như một phép cộng thập phân thông thường. Các số kết quả — thường là hai hoặc ba chữ số mỗi số — chính là văn bản mã, được viết ra cách nhau bằng các dấu cách. Việc giải mã chỉ đơn giản trừ đi cùng các số khóa lặp lại đó và đọc các tọa độ khôi phục được trên ô vuông.

Ô vuông và hai từ khóa

Mật mã Nihilist dùng hai bí mật độc lập. Bí mật thứ nhất là chính ô vuông. Công cụ này xây dựng ô vuông từ một từ khóa ô vuông tùy chọn, đúng như cách một ô vuông Polybius hay Playfair có khóa được tạo ra: các chữ cái độc nhất của từ khóa được viết vào trước, theo thứ tự và không lặp lại, rồi phần còn lại của bảng chữ cái theo sau. Ô vuông trực tiếp bên dưới làm nổi bật các ô của từ khóa để bạn có thể theo dõi sự pha trộn; để trống từ khóa ô vuông sẽ dùng ô vuông theo thứ tự bảng chữ cái thuần túy.

Bí mật thứ hai là từ khóa cộng. Các chữ cái của nó được tra cứu trên chính ô vuông ấy để trở thành các số khóa được cộng vào thông điệp. Hai khóa làm những việc khác nhau — khóa ô vuông quyết định mỗi chữ cái có tọa độ gì, còn khóa cộng quyết định cái gì được cộng lên trên — và cả người gửi lẫn người nhận đều phải cùng chia sẻ cả hai. Trong công cụ này bạn có thể để trống khóa cộng để xem các tọa độ thuần túy hiện ra mà không có gì được cộng vào, đây là một cách hữu ích để thấy bước Polybius riêng lẻ trước khi phép cộng được xếp lớp vào.

Chọn ô vuông 5×5 hay 6×6

Mật mã Nihilist kinh điển dùng một ô vuông 5×5 gồm 25 ô. Vì bảng chữ cái Latinh có 26 chữ cái, I và J dùng chung một ô, nên một chữ J được giải mã đọc trở lại thành I — sự thỏa hiệp Polybius tiêu chuẩn. Các tọa độ chạy từ 11 đến 55, và một số mật mã (tọa độ cộng khóa) rơi vào đâu đó giữa 22 và 110.

Công cụ này cũng cung cấp một ô vuông 6×6 gồm 36 ô, vốn chứa riêng cả 26 chữ cái cộng với mười chữ số 0 đến 9. Điều đó cho phép mật mã mang các con số — hữu ích cho ngày tháng, tọa độ bản đồ và số lượng — mà không phải viết chúng ra bằng chữ, đổi lại là các tọa độ lớn hơn một chút (11 đến 66) và các số mật mã (lên đến 132). Chọn ô vuông bằng nút chuyển ở trên; lưới tham chiếu trực tiếp tự đánh số lại để khớp, và cả hai bên phải thống nhất về việc họ đang dùng ô vuông nào.

Một ví dụ Nihilist thực hành

Lấy từ ATTACK với từ khóa ô vuông ZEBRAS và từ khóa cộng RUSSIAN. Với ZEBRAS được điền vào trước, ô vuông đọc là Z E B R A ở hàng trên cùng, rồi S C D F G, rồi H I K L M, rồi N O P Q T, rồi U V W X Y. Đọc tọa độ trên đó, ATTACK trở thành 15 45 45 15 22 33, và từ khóa RUSSIAN trở thành 14 51 21 21 32 15 41.

Bây giờ viết các số khóa bên dưới các số thông điệp, lặp lại khi cần, và cộng: 15+14 = 29, 45+51 = 96, 45+21 = 66, 15+21 = 36, 22+32 = 54, 33+15 = 48. Vậy ATTACK mã hóa thành 29 96 66 36 54 48. Để giải mã, trừ đi cùng các số khóa — 29−14 = 15, 96−51 = 45, và cứ thế — rồi đọc 15 45 45 15 22 33 trở lại trên ô vuông thành ATTACK. Đổi một trong hai từ khóa sẽ thay đổi mọi số mật mã mà vẫn giải mã chính xác.

Giải mã một thông điệp Nihilist

Việc giải mã đảo ngược các bước. Tách văn bản mã thành các số của nó, viết các số của từ khóa cộng bên dưới chúng theo cùng chu kỳ lặp lại, và trừ. Mỗi kết quả là một tọa độ hai chữ số; tách nó thành một chữ số hàng và một chữ số cột rồi tra ô trên ô vuông để khôi phục chữ cái. Công cụ này làm tất cả những điều đó cho bạn khi bạn chọn Giải mã và nhập đúng ô vuông, từ khóa ô vuông và từ khóa cộng đã được dùng để mã hóa.

Nếu một số bị sai lệch, hoặc dùng sai khóa hay sai ô vuông, một phép trừ có thể rơi ra ngoài lưới — chẳng hạn một chữ số hàng hoặc cột bằng 0, hoặc lớn hơn ô vuông. Khi điều đó xảy ra, công cụ hiển thị một dấu "?" cho vị trí ấy thay vì đoán. Vì chỉ có chữ cái nằm trong ô vuông 5×5 (và chữ cái cùng chữ số trong ô vuông 6×6), mọi dấu cách và dấu câu trong thông điệp gốc đã bị bỏ đi trong khi mã hóa và sẽ không xuất hiện lại.

Lịch sử và độ an toàn

Mật mã Nihilist được những nhà cách mạng Nga sử dụng vào thập niên 1870 và 1880 và đã đặt tên cho toàn bộ cách tiếp cận cộng một khóa vào các tọa độ Polybius. Tầm quan trọng lịch sử thực sự của nó là như một điểm khởi đầu: các nhà mật mã đã cải tiến nó từng bước thành những hệ thống mạnh hơn, bao gồm mật mã VIC của Liên Xô được điệp viên Reino Häyhänen sử dụng vào thập niên 1950, vốn giữ phần lõi Polybius-và-cộng nhưng bọc nó trong phép hoán vị bổ sung và một lịch trình khóa phức tạp. Mật mã ADFGVX của Thế chiến thứ nhất cũng chia sẻ chính ý tưởng thay thế bằng tọa độ ấy.

Theo tiêu chuẩn hiện đại, mật mã Nihilist cơ bản là yếu. Khóa lặp lại với một chu kỳ ngắn, nên một khi kẻ tấn công đoán được độ dài khóa thì mật mã sụp đổ trước cùng loại phân tích vốn phá mật mã Vigenère, và phép thay thế Polybius thêm sự rối rắm nhưng ít sức mạnh thực sự. Việc dùng lại một khóa qua nhiều thông điệp khiến nó càng yếu hơn. Giá trị của nó ngày nay là về giáo dục — nó là một minh họa sống động về việc xếp lớp một ô vuông tọa độ với một khóa lặp lại tiến tới mật mã học nghiêm túc như thế nào. Để bảo vệ thông tin thực sự, hãy luôn dùng một thuật toán hiện đại, đã được giới chuyên môn bình duyệt như AES, và giữ mật mã Nihilist cho lịch sử, các câu đố và các thử thách capture-the-flag.

Câu hỏi thường gặp

Mật mã Nihilist là gì?
Mật mã Nihilist là một mật mã thủ công của Nga thế kỷ 19 kết hợp một ô vuông Polybius với một khóa số lặp lại. Mỗi chữ cái được biến thành tọa độ hai chữ số của nó trên ô vuông, và các tọa độ của một từ khóa được cộng vào bên dưới, tuần hoàn ngang qua thông điệp. Đầu ra là một dòng các con số. Nó được đặt theo tên những nhà cách mạng Nihilist của Nga đã dùng nó và là tổ tiên của các mật mã bằng số sau này của Nga và Liên Xô.
Mật mã Nihilist hoạt động như thế nào?
Xây dựng một ô vuông Polybius và đọc ra tọa độ hai chữ số của mỗi chữ cái, biến thông điệp thành số. Biến một từ khóa thành tọa độ theo cùng cách, viết chúng bên dưới các số thông điệp lặp lại khi cần, và cộng mỗi cặp như một phép cộng thập phân thông thường. Các số hai hoặc ba chữ số kết quả chính là văn bản mã. Việc giải mã trừ đi cùng các số khóa lặp lại đó và đọc các tọa độ trở lại trên ô vuông.
Hai từ khóa dùng để làm gì?
Mật mã Nihilist dùng hai bí mật độc lập. Từ khóa ô vuông trộn ô vuông Polybius, quyết định mỗi chữ cái có tọa độ nào. Từ khóa cộng được biến thành số trên cùng ô vuông đó và cộng lên trên thông điệp. Chúng làm những việc khác nhau, và cả người gửi lẫn người nhận đều phải chia sẻ cả hai. Trong công cụ này, từ khóa ô vuông là tùy chọn và từ khóa cộng có thể để trống để hiển thị các tọa độ thuần túy.
Bạn có thể cho một ví dụ Nihilist thực hành không?
Với từ khóa ô vuông ZEBRAS và từ khóa cộng RUSSIAN, ATTACK đọc ra trên ô vuông là 15 45 45 15 22 33 và RUSSIAN là 14 51 21 21 32 15. Cộng khóa vào bên dưới thông điệp cho ra 15+14=29, 45+51=96, 45+21=66, 15+21=36, 22+32=54, 33+15=48, vậy ATTACK mã hóa thành 29 96 66 36 54 48. Trừ đi cùng các số khóa giải mã nó thẳng trở lại thành ATTACK.
Làm thế nào để giải mã một mật mã Nihilist?
Tách văn bản mã thành các số của nó, viết các tọa độ của từ khóa cộng bên dưới theo cùng chu kỳ lặp lại, và trừ. Mỗi kết quả là một tọa độ hai chữ số; tách nó thành một chữ số hàng và một chữ số cột rồi tra ô trên ô vuông. Trong công cụ này, chọn Giải mã và nhập đúng ô vuông, từ khóa ô vuông và từ khóa cộng đã được dùng để mã hóa, rồi nó dựng lại thông điệp cho bạn.
Vì sao văn bản mã được tạo thành từ các con số?
Vì bước Polybius thay thế mỗi chữ cái bằng một tọa độ hai chữ số, rồi phép cộng khóa cộng thêm một số nữa lên trên, kết quả tự nhiên là bằng số chứ không phải bằng chữ. Một số mật mã trên ô vuông 5×5 nằm giữa 22 và 110, nên nó có hai hoặc ba chữ số. Các số được viết cách nhau bằng các dấu cách để mỗi số có thể được đọc và trừ riêng lẻ khi giải mã.
Sự khác biệt giữa ô vuông 5×5 và 6×6 là gì?
Ô vuông 5×5 kinh điển chứa 25 chữ cái với I và J dùng chung một ô, nên nó chỉ có thể mang chữ cái và một chữ J được giải mã trở lại thành I. Ô vuông 6×6 có 36 ô, chứa riêng cả 26 chữ cái cộng với các chữ số 0 đến 9, nên nó cũng có thể mã hóa các con số. Tùy chọn 6×6 tạo ra các tọa độ và số mật mã lớn hơn một chút. Cả hai bên phải dùng cùng một ô vuông.
Ô vuông Nihilist có bắt buộc phải dùng một từ khóa không?
Không. Ô vuông có thể là bảng chữ cái thuần túy được viết theo thứ tự, đó là dạng đơn giản nhất. Việc dùng một từ khóa trộn ô vuông để các tọa độ khó dự đoán hơn, theo cùng cách một ô vuông Polybius hay Playfair có khóa hoạt động: các chữ cái độc nhất của từ khóa đến trước, rồi phần còn lại của bảng chữ cái. Công cụ này khiến từ khóa ô vuông trở thành tùy chọn, và để trống nó sẽ dùng ô vuông theo thứ tự bảng chữ cái thuần túy.
Điều gì xảy ra với dấu cách, dấu câu và J?
Chỉ các ký tự tồn tại trên ô vuông mới được mã hóa. Dấu cách và dấu câu không nằm trên ô vuông, nên chúng bị bỏ đi trong khi mã hóa và không xuất hiện lại khi bạn giải mã. Trên ô vuông 5×5, J dùng chung một ô với I, nên một chữ J được mã hóa thành I và giải mã trở lại thành I. Trên ô vuông 6×6, các chữ số 0 đến 9 được bao gồm, nên các con số được giữ lại.
Mật mã Nihilist liên quan đến các mật mã khác như thế nào?
Nó nằm ở giao điểm của nhiều mật mã. Bước tọa độ của nó là ô vuông Polybius, cũng được các mật mã Bifid và ADFGX sử dụng. Phép cộng khóa lặp lại của nó là cùng ý tưởng với mật mã Vigenère, được thực hiện bằng số học thay vì bằng chữ cái. Và nó là tổ tiên trực tiếp của các mật mã bằng số sau này của Nga và Liên Xô, nổi tiếng nhất là mật mã VIC, vốn giữ phần lõi Polybius-và-cộng và thêm nhiều lớp bao quanh nó.
Mật mã Nihilist an toàn đến mức nào?
Không an toàn theo tiêu chuẩn hiện đại. Khóa cộng lặp lại với một chu kỳ ngắn, nên một khi chu kỳ đó được tìm ra thì mật mã có thể bị phá bằng cùng các kỹ thuật phá mật mã Vigenère, và phép thay thế Polybius thêm sự rối rắm nhưng ít sự bảo vệ thực sự. Việc dùng lại một khóa qua nhiều thông điệp càng làm nó yếu hơn. Nó là một mật mã thủ công hợp lý vào thập niên 1880 và rất tốt cho việc học, nhưng để bảo vệ thực sự hãy dùng một thuật toán hiện đại như AES.
Văn bản của tôi có được tải lên máy chủ không?
Không. Toàn bộ việc mã hóa và giải mã diễn ra hoàn toàn trong trình duyệt của bạn, nên văn bản của bạn không bao giờ được tải lên, ghi lại hay lưu trữ. Ngay cả một liên kết chia sẻ cũng giữ văn bản, ô vuông và các từ khóa của bạn trong phần URL nằm sau dấu thăng, phần mà trình duyệt không bao giờ gửi đến máy chủ, nên thông điệp của bạn vẫn riêng tư cho đến khi bạn chọn chia sẻ liên kết.

Công cụ liên quan

Tiếp tục với những công cụ hữu ích này

Ô vuông Polybius

Bazeries Cipher

Mật mã Caesar

Mật mã Vigenère

Mật mã Atbash

Mật mã Rail Fence