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ã VIC

Mã hóa và giải mã bằng mật mã VIC, mật mã thủ công đáng gờm của Liên Xô mà điệp viên Reino Häyhänen mang theo. Từ một ngày tháng, một cụm từ ghi nhớ, một số cá nhân và một nhóm khóa năm chữ số, nó dẫn xuất ra một bảng kẻ ô vắt dòng và hai phép hoán vị theo cột, phép thứ hai bị gián đoạn. Mọi thứ đều chạy ngay trong trình duyệt của bạn.

Mật mã VIC là mật mã thủ công phức tạp nhất của Chiến tranh Lạnh. Từ bốn bí mật nhỏ, một ngày tháng, một cụm từ ghi nhớ, một số cá nhân và một nhóm khóa năm chữ số, một chuỗi tạo khóa dài dựng nên một bảng kẻ ô vắt dòng và hai phép hoán vị theo cột, phép thứ hai bị gián đoạn. Hãy đặt bốn phần khóa bên dưới, rồi mã hóa hoặc giải mã. Chỉ chữ cái, chữ số và dấu chấm được mang theo; mọi thứ khác đều bị bỏ qua. Hãy dùng cùng bốn phần khóa để giải mã.

Chế độ

Khóa

Ngày tháng (6+ chữ số)

Một ngày tháng được viết dưới dạng chữ số, ví dụ 139195. Năm chữ số đầu khởi động chuỗi tạo khóa; chữ số thứ sáu quyết định nơi nhóm khóa được giấu trong thông điệp.

Cụm từ khóa (20+ chữ cái)

Một dòng văn bản dễ nhớ, chẳng hạn một câu lời bài hát. Hai mươi chữ cái đầu được sử dụng; dấu cách và dấu câu đều bị bỏ qua.

Số cá nhân

Một số nhỏ từ 1 đến 99 mà cả hai bên liên lạc ghi nhớ.

Nhóm khóa (5 chữ số)

Một nhóm năm chữ số ngẫu nhiên, khác nhau cho mỗi thông điệp. Nó được truyền đi công khai, giấu bên trong bản mã.

Văn bản
Kết quả

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

Cách các khóa được dẫn xuất

Chuỗi tạo khóa

Mỗi dòng được dựng từ những dòng phía trên nó: A là nhóm khóa, B là ngày tháng, và C là A trừ B. E.1 và E.2 đến từ cụm từ khóa. Sau đó chuỗi cộng, đánh thứ tự và kết hợp các chữ số xuống tới S, đầu đề của bảng kẻ ô, và hai khóa hoán vị.

A

72401

B

13919

C

69592

E.1

8017942653

E.2

6013589427

F.1

6959254417

G

4966196060

H

3288628787

J

3178429506

Khối (K–P)

K

5064805552

L

5602850077

M

1620350748

N

7823857125

P

5051328370

S

5961328470

Đầu đề bảng kẻ ô (S)

5961328470

Bề rộng hoán vị 1

13

Bề rộng hoán vị 2

6

Khóa hoán vị 1

0668005552551

Khóa hoán vị 2

758838

Vị trí chỉ báo

5

Bảng kẻ ô vắt dòng

Hàng trên cùng chứa tám chữ cái thông dụng dưới câu ghi nhớ AT ONE SIR; chữ số đầu đề của hai cột trống làm tiền tố cho các hàng dưới. Một chữ cái thông dụng dùng một chữ số, mọi chữ cái khác dùng hai chữ số.

5
9
6
1
3
2
8
4
7
0
A
T
O
N
E
S
I
R
6
B
C
D
F
G
H
J
K
L
M
8
P
Q
U
V
W
X
Y
Z
.
/

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

  1. 1

    Chọn mã hóa hoặc giải mã

    Chọn Mã hóa để biến một thông điệp thành bản mã VIC, hoặc Giải mã để khôi phục thông điệp. Việc giải mã cần đúng cùng ngày tháng, cụm từ khóa, số cá nhân và nhóm khóa đã được dùng để mã hóa.

  2. 2

    Đặt ngày tháng

    Nhập một ngày tháng dưới dạng chữ số, ví dụ 139195. Năm chữ số đầu khởi động chuỗi tạo khóa, và chữ số thứ sáu quyết định nơi nhóm khóa được giấu trong thông điệp hoàn chỉnh.

  3. 3

    Đặt cụm từ khóa và số cá nhân

    Nhập một cụm từ dễ nhớ có ít nhất hai mươi chữ cái và một số cá nhân nhỏ từ 1 đến 99. Đây là những bí mật cố định mà cả hai bên liên lạc thống nhất trước.

  4. 4

    Đặt nhóm khóa

    Nhập một nhóm khóa năm chữ số ngẫu nhiên, hoặc nhấn Ngẫu nhiên để tạo một nhóm. Nhóm khóa chính là chỉ báo: nó thay đổi cho mỗi thông điệp và được gửi đi giấu bên trong bản mã.

  5. 5

    Nhập thông điệp của bạn và đọc kết quả

    Nhập hoặc dán văn bản của bạn. Chỉ chữ cái, chữ số và dấu chấm được mã hóa; mọi thứ khác đều bị bỏ qua. Sao chép hoặc tải xuống kết quả, hoặc chia sẻ một liên kết mở lại công cụ với đúng khóa và văn bản của bạn.

Tìm hiểu về mật mã VIC

Mật mã VIC là gì?

Mật mã VIC là một mật mã bút và giấy được tình báo Liên Xô sử dụng vào những năm 1950 và được công nhận rộng rãi là mật mã thủ công phức tạp nhất từng được triển khai. Nó được đặt tên theo Reino Häyhänen, một điệp viên KGB có mật danh là VICTOR. Dù không dùng gì hơn ngoài một cây bút chì, giấy và vài bí mật được ghi nhớ, hệ thống này kết hợp phép thay thế và phép hoán vị triệt để đến mức các nhà phân tích mật mã Mỹ không thể phá nổi một thông điệp chặn bắt nào cho đến khi chính Häyhänen đào tẩu và giải thích cách nó vận hành.

Điều khiến VIC đáng nể là nó gói gọn sức mạnh của một mật mã cơ giới vào một quy trình mà một điệp viên có thể mang theo hoàn toàn trong đầu. Một thủ tục tạo khóa ngắn biến một ngày tháng, một cụm từ ghi nhớ, một số cá nhân và một nhóm năm chữ số ngẫu nhiên thành toàn bộ vật liệu mà mật mã cần: một bảng kẻ ô vắt dòng để biến chữ cái thành chữ số, và hai phép hoán vị theo cột, phép thứ hai bị gián đoạn, để xáo trộn kết quả. Công cụ này tái hiện toàn bộ quá trình ấy và hiển thị từng bước ngay khi nó diễn ra.

Cách mật mã VIC hoạt động

Việc mã hóa một thông điệp bằng VIC có ba giai đoạn. Đầu tiên là chuỗi tạo khóa: một dãy các phép toán chữ số đơn giản, cộng không nhớ, trừ không mượn và xếp hạng, mở rộng bốn phần khóa thành một dòng đầu đề của bảng kẻ ô cùng hai khóa hoán vị với bề rộng của chúng. Sau đó thông điệp được chuyển thành chữ số bằng một bảng kẻ ô vắt dòng, một bảng gọn gàng trong đó những chữ cái thông dụng nhất dùng một chữ số còn phần còn lại dùng hai chữ số. Cuối cùng các chữ số ấy được xáo trộn bằng hai phép hoán vị theo cột.

Phần khéo léo là phép hoán vị thứ hai, vốn bị gián đoạn: những vùng tam giác của lưới được giữ chỗ và chỉ được điền sau khi phần còn lại đã xong, phá vỡ các cột ngăn nắp vốn khiến các mật mã hoán vị thông thường dễ bị tấn công hơn. Ở bước cuối cùng, nhóm khóa ngẫu nhiên được luồn trở lại vào bản mã tại một vị trí được ấn định bởi ngày tháng, để người nhận có thể khôi phục chỉ báo và lặp lại chuỗi tạo khóa. Kết quả là một chuỗi các nhóm chữ số không để lộ một khuôn mẫu nào của ngôn ngữ gốc.

Chuỗi tạo khóa

Mọi thứ trong VIC đều bắt nguồn từ chuỗi tạo khóa. Nhóm khóa năm chữ số trở thành dòng A và năm chữ số đầu của ngày tháng trở thành dòng B; trừ B khỏi A mà không mượn cho ra dòng C. Cụm từ khóa cung cấp thêm hai dòng: mười chữ cái đầu và mười chữ cái tiếp theo của nó mỗi nhóm được đánh số theo thứ tự bảng chữ cái để tạo thành các dòng E.1 và E.2. Dòng C sau đó được kéo dài bằng phép cộng dây chuyền, một quá trình trễ pha trong đó mỗi chữ số mới là tổng của hai chữ số trước đó, rồi được kết hợp với các dòng cụm từ để tạo ra thêm chữ số.

Từ những thứ này, chuỗi nuôi lớn một khối năm mươi chữ số, lại bằng phép cộng dây chuyền. Đánh số hàng cuối của khối đó cho ra dòng S, dòng này trở thành đầu đề của bảng kẻ ô vắt dòng. Hai chữ số rút ra từ khối, cộng với số cá nhân, ấn định bề rộng của hai phép hoán vị, và đọc khối theo từng cột theo một thứ tự được đặt khóa sẽ tạo ra chính hai khóa hoán vị. Sơ đồ trực tiếp trong công cụ này bày ra từng dòng một trong số đó để bạn có thể theo dõi quá trình dẫn xuất từ bốn bí mật cho đến tận các khóa hoàn chỉnh.

Bảng kẻ ô vắt dòng

Bảng kẻ ô vắt dòng là một bảng nhỏ biến chữ cái và chữ số thành một dòng các con số. Mười cột của nó được gán nhãn bằng dòng đầu đề S. Hàng trên cùng mang tám chữ cái có tần suất cao, được đặt dưới một câu ghi nhớ đã thống nhất trước, ở đây là câu kinh điển AT ONE SIR, mà hai khoảng trống của nó đánh dấu các cột được để trống. Chữ số đầu đề của hai cột trống ấy trở thành tiền tố cho hai hàng bên dưới, vốn chứa phần còn lại của bảng chữ cái, một dấu chấm và một ký hiệu chuyển số.

Vì các chữ cái thông dụng nằm ở hàng trên cùng, chúng được mã hóa thành chỉ một chữ số mỗi chữ, trong khi các chữ cái ít thông dụng hơn dùng hai chữ số, tiền tố của hàng theo sau là nhãn của cột. Mã không đều, tự đồng bộ này giữ cho bản mã ngắn gọn và loại bỏ các tần suất chữ cái rõ ràng mà một phép thay thế đơn giản sẽ để lộ. Chữ số trong thông điệp được gửi ở chế độ con số, được đánh dấu bằng ký hiệu chuyển số, với mỗi chữ số được viết ba lần để không thể nhầm lẫn với một mã chữ cái.

Hai phép hoán vị

Một khi thông điệp đã là một dòng chữ số, VIC xáo trộn nó hai lần. Phép hoán vị thứ nhất là một phép hoán vị theo cột thông thường: các chữ số được viết vào các hàng có bề rộng cố định, rồi các cột được đọc ra theo một thứ tự được đặt bởi khóa hoán vị thứ nhất. Riêng điều này đã trộn các chữ số khá tốt, nhưng tự thân một phép hoán vị theo cột để lại những quy luật mà những người phá mã giàu kinh nghiệm có thể khai thác, nhất là khi nhiều thông điệp dùng chung một khóa.

Phép hoán vị thứ hai khép lại khe hở đó bằng cách bị gián đoạn. Những vùng tam giác của lưới được giữ chỗ theo một khuôn mẫu bậc thang được đặt khóa bởi khóa hoán vị thứ hai; thông điệp trước tiên chỉ điền các ô nằm ngoài những tam giác đó, rồi quay lại điền chính các tam giác. Đọc các cột ra theo thứ tự được đặt khóa sẽ đan xen hai lần điền, nên các chữ số cuối cùng được khuấy trộn triệt để. Chính sự gián đoạn này, xếp chồng lên trên bảng kẻ ô và phép hoán vị thứ nhất, đã mang lại cho VIC danh tiếng đáng gờm.

Reino Häyhänen và vụ đồng năm xu rỗng

Mật mã VIC được phát hiện qua một trong những giai thoại nổi tiếng nhất của hoạt động gián điệp Chiến tranh Lạnh. Năm 1953 một cậu bé bán báo ở Brooklyn đánh rơi một đồng năm xu bị bung ra, để lộ một tấm ảnh tí hon chụp một cột các con số. FBI không thể đọc được thông điệp, và đồng năm xu rỗng nằm yên như một bí ẩn chưa lời giải suốt bốn năm. Bước đột phá đến vào năm 1957 khi Reino Häyhänen, một điệp viên Liên Xô đóng tại New York dưới mật danh VICTOR, đào tẩu sang Hoa Kỳ và mô tả mật mã một cách chi tiết.

Thông tin của Häyhänen cũng giúp lật tẩy cấp trên của ông, viên sĩ quan hoạt động bí mật cấp cao được biết đến với tên Rudolf Abel, người về sau được trao đổi để lấy phi công máy bay U-2 người Mỹ Francis Gary Powers. Mật mã mà Häyhänen tiết lộ tinh vi đến mức các nhà phân tích đã đặt tên nó theo ông, và Cơ quan An ninh Quốc gia NSA đã từ lâu nêu nó như một ví dụ cho việc một mật mã thủ công có thể mạnh đến mức nào. Những bí mật của nó được an toàn không phải vì các thông điệp bị phá, mà chỉ vì một con người đã bước ra và trao chúng đi.

Mật mã VIC an toàn đến mức nào?

Theo tiêu chuẩn của các mật mã thủ công, VIC là ngoại hạng. Việc xếp chồng một bảng kẻ ô vắt dòng lên trên hai phép hoán vị, một trong đó bị gián đoạn, loại bỏ các tần suất chữ cái và phá hủy cấu trúc cột vốn cho phép các nhà phân tích tấn công những hệ thống đơn giản hơn. Với một nhóm khóa ngẫu nhiên mới cho mỗi thông điệp và một khóa được dựng từ những bí mật mà một điệp viên chỉ cần ghi nhớ, nó hoàn toàn kháng lại được phân tích mật mã của thời đại nó; hệ thống bị xâm phạm bởi một kẻ đào tẩu, chứ không phải bởi việc phá mã.

Tuy nhiên, trước các máy tính hiện đại, VIC không mang lại sự bảo vệ thực sự nào. Không gian khóa của nó, dù lớn đối với một người làm việc bằng tay, là chuyện vặt để một cỗ máy duyệt qua, và các phép toán nền tảng đã được hiểu rõ. Như cỗ máy Enigma hay bất kỳ hệ thống cổ điển nào, ngày nay nó được thưởng thức tốt nhất như một mảnh lịch sử và như một minh họa tuyệt đẹp về cách phép thay thế, phép hoán vị và việc quản lý khóa cẩn trọng kết hợp với nhau. Để bảo vệ thông tin thật sự, bạn nên luôn dùng một thuật toán hiện đại đã được kiểm chứng kỹ như AES.

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

Mật mã VIC là gì?
Mật mã VIC là một mật mã bút và giấy của Liên Xô từ những năm 1950, thường được gọi là mật mã thủ công phức tạp nhất từng được sử dụng. Nó kết hợp một bảng kẻ ô vắt dòng với hai phép hoán vị theo cột, phép thứ hai bị gián đoạn, tất cả đều được đặt khóa từ một ngày tháng, một cụm từ ghi nhớ, một số cá nhân và một nhóm khóa năm chữ số ngẫu nhiên. Nó được đặt tên theo điệp viên Liên Xô Reino Häyhänen, người có mật danh là VICTOR.
Tại sao nó được gọi là mật mã VIC?
VIC là dạng rút gọn của VICTOR, mật danh của Reino Häyhänen, điệp viên KGB đã dùng mật mã này khi hoạt động ở New York. Sau khi ông đào tẩu năm 1957 và mô tả hệ thống cho tình báo Mỹ, các nhà phân tích đã đặt tên nó theo ông. Đôi khi nó cũng được gọi là mật mã VICTOR hoặc, theo cách nó được phát hiện, là mật mã đồng năm xu rỗng.
Mật mã VIC hoạt động như thế nào?
Đầu tiên một chuỗi tạo khóa mở rộng bốn phần khóa thành một đầu đề bảng kẻ ô và hai khóa hoán vị. Thông điệp sau đó được biến thành chữ số bằng một bảng kẻ ô vắt dòng, nơi các chữ cái thông dụng dùng một chữ số còn những chữ khác dùng hai chữ số. Các chữ số ấy được xáo trộn bằng hai phép hoán vị theo cột, phép thứ hai bị gián đoạn bởi các vùng tam giác được giữ chỗ, và cuối cùng nhóm khóa được chèn vào bản mã tại một vị trí được ấn định bởi ngày tháng.
Chuỗi tạo khóa là gì?
Chuỗi tạo khóa là dãy các phép toán chữ số biến bốn phần khóa thành mọi thứ mà mật mã cần. Nó trừ ngày tháng khỏi nhóm khóa, đánh số các chữ cái của cụm từ khóa, và lặp đi lặp lại việc dùng phép cộng dây chuyền, một tổng cộng dồn trễ pha không nhớ, để nuôi lớn một khối năm mươi chữ số. Từ khối đó nó đọc ra dòng đầu đề bảng kẻ ô cùng hai khóa hoán vị và bề rộng của chúng.
Bảng kẻ ô vắt dòng là gì?
Bảng kẻ ô vắt dòng là một bảng nhỏ chuyển chữ cái thành chữ số. Tám chữ cái thông dụng nằm ở hàng trên cùng và được mã hóa thành một chữ số mỗi chữ, trong khi các chữ cái còn lại, một dấu chấm và một ký hiệu chuyển số nằm ở hai hàng dưới và dùng hai chữ số. Điều này làm cho bản mã ngắn hơn và che giấu các tần suất chữ cái mà một phép thay thế thuần túy sẽ để lộ.
Phép hoán vị gián đoạn là gì?
Phép hoán vị VIC thứ hai bị gián đoạn: những vùng tam giác của lưới được giữ chỗ theo một khuôn mẫu bậc thang được đặt bởi một khóa. Thông điệp điền tất cả các ô nằm ngoài các tam giác trước, rồi quay lại điền các tam giác, và các cột được đọc ra theo thứ tự được đặt khóa. Điều này phá vỡ các cột đều đặn của một phép hoán vị thông thường và là một phần lớn lý do khiến VIC khó phá đến vậy.
Vụ đồng năm xu rỗng là gì?
Năm 1953 một cậu bé bán báo ở Brooklyn tìm thấy một đồng năm xu rỗng chứa một ảnh chụp vi mô của một cột các con số. FBI không thể đọc được thông điệp đã mã hóa, và nó vẫn chưa được giải cho đến khi điệp viên Liên Xô Reino Häyhänen đào tẩu vào năm 1957 và tiết lộ mật mã VIC. Vụ việc đã giúp lật tẩy mạng lưới điệp viên của Rudolf Abel và trở thành một trong những câu chuyện nổi tiếng nhất về gián điệp Chiến tranh Lạnh.
Làm thế nào để giải mã một thông điệp VIC?
Chuyển công cụ sang Giải mã và nhập đúng cùng ngày tháng, cụm từ khóa, số cá nhân và nhóm khóa đã được dùng để mã hóa, rồi dán bản mã dưới dạng các nhóm chữ số. Thông điệp gốc sẽ hiện ra. Không có đủ cả bốn phần khóa thì thông điệp không thể khôi phục được, vì mỗi phần đều nuôi vào chuỗi tạo khóa dựng nên bảng kẻ ô và các phép hoán vị.
Nhóm khóa hay chỉ báo là gì?
Nhóm khóa là một số năm chữ số ngẫu nhiên được chọn mới cho mỗi thông điệp. Nó gieo mầm cho chuỗi tạo khóa, nên mỗi thông điệp được mã hóa bằng các khóa khác nhau trên thực tế, và sau đó nó được giấu trong bản mã hoàn chỉnh tại một vị trí được đặt bởi chữ số thứ sáu của ngày tháng. Người nhận rút nó trở ra, lặp lại chuỗi tạo khóa, và nhờ vậy có thể giải mã thông điệp.
Mật mã VIC an toàn đến mức nào?
Đối với một mật mã thủ công, nó là xuất sắc. Bảng kẻ ô loại bỏ các tần suất chữ cái và hai phép hoán vị, với phép thứ hai bị gián đoạn, phá hủy các khuôn mẫu vốn cho phép các nhà phân tích phá những hệ thống đơn giản hơn. Nó chưa bao giờ bị phá chỉ từ việc chặn bắt và chỉ bị xâm phạm khi một điệp viên đào tẩu. Tuy vậy, trước các máy tính hiện đại, nó không mang lại sự bảo mật thực sự nào và nên được xem như một mật mã lịch sử và giảng dạy.
Văn bản của tôi có được tải lên một máy chủ không?
Không. Mọi việc mã hóa và giải mã đều diễn ra hoàn toàn trong trình duyệt của bạn, nên văn bản và khóa 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ữ dữ liệu của bạn trong phần của URL sau dấu thăng, phần mà trình duyệt không bao giờ gửi tới máy chủ, nên nó vẫn riêng tư cho đến khi bạn chọn chia sẻ.

Công cụ liên quan

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

Straddling Checkerboard

Bazeries Cipher

Mật mã Caesar

Mật mã Vigenère

Mật mã Atbash

Mật mã Rail Fence