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ế độ
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ã.
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ố.
Cách sử dụng Mật mã VIC
- 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
Đặ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
Đặ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
Đặ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
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ì?
Tại sao nó được gọi là mật mã VIC?
Mật mã VIC hoạt động như thế nào?
Chuỗi tạo khóa là gì?
Bảng kẻ ô vắt dòng là gì?
Phép hoán vị gián đoạn là gì?
Vụ đồng năm xu rỗng là gì?
Làm thế nào để giải mã một thông điệp VIC?
Nhóm khóa hay chỉ báo là gì?
Mật mã VIC an toàn đến mức nào?
Văn bản của tôi có được tải lên một máy chủ không?
Công cụ liên quan
Tiếp tục với những công cụ hữu ích này