Mật mã Pollux
Mã hóa và giải mã mật mã Pollux. Trước tiên thông điệp được viết bằng mã Morse với một chữ x giữa các chữ cái và hai chữ x giữa các từ, sau đó mỗi dấu chấm, dấu gạch và dấu phân cách được thay bằng một trong các chữ số từ không đến chín mà bạn gán cho nó. Bởi vì nhiều chữ số có thể đại diện cho cùng một ký hiệu, nên cùng một chữ cái mỗi lần lại được viết khác nhau. Hãy theo dõi quá trình xử lý trực tiếp từ chữ cái sang Morse rồi sang chữ số, rồi sao chép, tải xuống hoặc chia sẻ kết quả. Mọi thứ đều chạy ngay trong trình duyệt của bạn.
Khóa
Khóa quy định mỗi chữ số 0-9 đại diện cho ký hiệu nào. Hãy nhập mười ký hiệu, mỗi ký hiệu cho một chữ số theo thứ tự từ 0 đến 9, dùng dấu chấm (.), dấu gạch (-), hoặc một chữ x cho dấu phân cách. Khóa phải bao gồm ít nhất một ký hiệu mỗi loại để mỗi ký hiệu đều có một chữ số. Ví dụ x...x--xxx khiến 0, 4, 7, 8 và 9 là dấu phân cách, 1, 2 và 3 là dấu chấm, còn 5 và 6 là dấu gạch. Bất cứ thứ gì không dùng được sẽ quay về khóa mặc định này, và cả hai bên đều phải dùng cùng một khóa.
Nhập văn bản ở trên để xem kết quả tại đây.
Bảng khóa (ký hiệu → chữ số)
Ký hiệu
Chữ số
•
Chấm
–
Gạch
×
Dấu phân cách (x)
Cách sử dụng Pollux Cipher
- 1
Chọn mã hóa hoặc giải mã
Chọn Mã hóa để biến văn bản gốc thành các chữ số mật mã Pollux, hoặc Giải mã để biến các chữ số mã hóa trở lại thành văn bản gốc.
- 2
Đặt khóa
Nhập mười ký hiệu, mỗi ký hiệu cho một chữ số từ 0 đến 9, dùng dấu chấm, dấu gạch, hoặc một chữ x cho dấu phân cách. Hãy chắc chắn rằng cả ba ký hiệu đều xuất hiện để mỗi ký hiệu đều có một chữ số, và dùng cùng một khóa ở cả hai bên.
- 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õ. Khi mã hóa, bảng các bước hiển thị mỗi chữ cái trên mã Morse của nó, rồi toàn bộ luồng theo từng ký hiệu một với chữ số dưới mỗi ký hiệu.
- 4
Đọc bảng khóa
Mở bảng khóa để xem những chữ số nào đại diện cho dấu chấm, dấu gạch và dấu phân cách theo khóa hiện tại của bạn.
- 5
Sao chép, tải xuống hoặc chia sẻ
Sao chép kết quả, tải nó 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 chính xác văn bản và khóa của bạn sẵn sàng để dùng.
Tìm hiểu về mật mã Pollux
Mật mã Pollux là gì?
Mật mã Pollux giấu một thông điệp bên trong một dãy trông vô hại gồm các chữ số 0 đến 9. Nó hoạt động bằng cách trước tiên chuyển văn bản thành mã Morse rồi ngụy trang phần Morse đó: mỗi dấu chấm, mỗi dấu gạch và mỗi dấu phân cách đều được thay bằng một con số. Bởi vì thông điệp hoàn chỉnh chẳng có gì ngoài các chữ số, nó không để lộ dấu hiệu rõ ràng nào cho thấy có mã Morse đang ẩn bên dưới, và đó chính là điều khiến nó trở thành một lựa chọn được ưa chuộng trong các cuộc săn giải đố, phòng thoát hiểm, cùng các thử thách capture-the-flag và CodeBusters của Science Olympiad.
Pollux thuộc cùng họ nhỏ các mật mã giấy-bút dựa trên Morse như Fractionated Morse và Morbit, tất cả đều được American Cryptogram Association lập danh mục và gìn giữ. Điều khiến Pollux khác biệt là cách dùng khéo léo nhiều chữ số hơn số ký hiệu: chỉ có ba ký hiệu Morse nhưng có mười chữ số, nên mỗi ký hiệu được trao cho vài chữ số để ẩn mình. Chỉ một ý tưởng đó thôi đã là toàn bộ mánh khóe, và đó là điều san phẳng tần suất chữ cái mà một người phá mã lẽ ra sẽ dựa vào.
Ba ký hiệu, mười chữ số
Một khi thông điệp được viết bằng Morse, nó chỉ dùng đúng ba ký hiệu: dấu chấm, dấu gạch, và một dấu phân cách, ở đây viết là x — một chữ x giữa các chữ cái và hai chữ xx giữa các từ. Để mã hóa nó, bạn quyết định trong các chữ số 0 đến 9 chữ số nào sẽ đại diện cho dấu chấm, chữ số nào cho dấu gạch, và chữ số nào cho dấu phân cách. Không có quy tắc cố định; yêu cầu duy nhất là mỗi ký hiệu trong ba ký hiệu phải có ít nhất một chữ số, để không có gì bị bỏ lại mà không có con số và việc giải mã vẫn khả thi.
Với mười chữ số chia cho ba ký hiệu, hầu hết các ký hiệu cuối cùng đều có hai, ba hoặc nhiều chữ số để lựa chọn. Khi bạn gặp một dấu chấm trong luồng, bạn có thể viết bất kỳ chữ số nào được gán cho dấu chấm. Sự tự do đó chính là trái tim của Pollux: chữ E, một dấu chấm đơn lẻ, có thể là số 1 ở chỗ này và là số 3 ở chỗ khác, nên một kẻ tấn công đếm xem mỗi chữ số xuất hiện thường xuyên ra sao học được gần như chẳng có gì về việc chữ cái nào là phổ biến.
Chọn lựa giữa các chữ số
Bởi vì một ký hiệu đơn lẻ có thể ánh xạ tới vài chữ số, người mã hóa phải chọn một chữ số mỗi lần. Theo truyền thống, lựa chọn được thực hiện ngẫu nhiên, nên cùng một thông điệp được mã hóa hai lần sẽ tạo ra hai chuỗi số khác nhau — một đặc tính hữu ích càng làm khó việc phân tích.
Tuy nhiên, một công cụ trực tuyến lại phải có tính lặp lại: nhập cùng một văn bản với cùng một khóa thì bạn luôn phải nhận được cùng một kết quả, và một liên kết được chia sẻ phải mở lại đúng những gì bạn đã thấy. Công cụ này giữ được sự đa dạng mà không cần tính ngẫu nhiên bằng cách lần lượt luân chuyển qua các chữ số của mỗi ký hiệu. Nếu dấu chấm được gán 1, 2 và 3, thì dấu chấm đầu tiên trở thành 1, dấu chấm tiếp theo thành 2, dấu chấm tiếp theo thành 3, rồi quay lại 1, và cứ thế tiếp tục. Đầu ra vẫn trải đều trên tất cả các chữ số khả dụng, nhưng giờ đây nó có thể tái tạo được — và việc giải mã không bao giờ phụ thuộc vào chữ số nào đã được chọn, bởi vì mỗi chữ số ánh xạ trở lại đúng một ký hiệu.
Mật mã Pollux hoạt động như thế nào
Việc mã hóa diễn ra qua hai bước. Thứ nhất, viết toàn bộ thông điệp bằng Morse, đặt một chữ x giữa các chữ cái và hai chữ x giữa các từ. Thứ hai, đi qua luồng chấm-gạch-x đó theo từng ký hiệu một và thay mỗi ký hiệu bằng một trong các chữ số bạn đã gán cho nó. Không có phần đệm và không có việc nhóm nào phải bận tâm: mỗi ký hiệu đơn giản trở thành một chữ số duy nhất, nên một luồng hai mươi ký hiệu trở thành đúng hai mươi chữ số.
Bảng các bước ở trên trình bày điều này một cách trực tiếp. Hàng trên ghép mỗi chữ cái với mã Morse của nó, còn hàng dưới trải ra toàn bộ luồng theo từng ký hiệu một với chữ số mà mỗi ký hiệu đã trở thành ở bên dưới. Hãy quan sát một chữ cái được lặp lại và bạn sẽ thấy nó nhận những chữ số khác nhau, bằng chứng nhìn thấy được cho cách Pollux rải các con số của nó. Bảng khóa bên dưới hiển thị, đối với khóa hiện tại, chính xác những chữ số nào thuộc về dấu chấm, dấu gạch và dấu phân cách.
Một ví dụ minh họa
Lấy lời cầu cứu SOS với khóa x...x--xxx, khóa này khiến 1, 2 và 3 là dấu chấm, 5 và 6 là dấu gạch, còn 0, 4, 7, 8 và 9 là dấu phân cách. Trong Morse, SOS là chấm-chấm-chấm cho S, gạch-gạch-gạch cho O, và lại chấm-chấm-chấm cho S, được nối lại bằng các dấu phân cách đơn thành luồng mười một ký hiệu chấm chấm chấm x gạch gạch gạch x chấm chấm chấm.
Bây giờ thay mỗi ký hiệu, luân chuyển qua các chữ số của nó. Ba dấu chấm đầu tiên nhận 1, 2 và 3; dấu phân cách đầu tiên nhận 0; ba dấu gạch nhận 5, 6 và 5 (dấu gạch chỉ có hai chữ số, nên nó luân chuyển trở lại); dấu phân cách tiếp theo nhận 4; và ba dấu chấm cuối cùng lại nhận 1, 2 và 3. Kết quả là 12305654123. Việc giải mã đảo ngược nó: mỗi chữ số trở thành ký hiệu của nó — 1, 2, 3 là dấu chấm, 0 và 4 là dấu phân cách, 5 và 6 là dấu gạch — dựng lại chấm chấm chấm x gạch gạch gạch x chấm chấm chấm, mà đọc trở lại qua bảng Morse là SOS.
Giải mã một thông điệp Pollux
Việc giải mã đơn giản một cách tuyệt vời vì không có sự nhập nhằng nào: mỗi chữ số đại diện cho đúng một ký hiệu. Tra cứu mỗi chữ số trong khóa để biến chuỗi số trở lại thành các dấu chấm, dấu gạch và dấu phân cách, nối chúng thành một luồng dài, rồi tách nó tại các dấu phân cách — một chữ x kết thúc một chữ cái và hai chữ xx kết thúc một từ — và đọc mỗi chuỗi chấm và gạch trở lại qua bảng Morse để khôi phục văn bản.
Để giải mã đúng, bạn phải dùng cùng một khóa đã được dùng để mã hóa; một khóa khác sẽ ánh xạ các chữ số tới những ký hiệu sai và phần Morse sẽ trở nên vô nghĩa. Bởi vì chỉ chữ cái và chữ số mới có mã Morse, bất kỳ dấu câu hay ký hiệu nào khác trong thông điệp gốc đều đã bị loại bỏ trong quá trình mã hóa và sẽ không quay trở lại, và một dạng viết tắt như "it's" sẽ trở lại thành từ duy nhất ITS. Các khoảng trống giữa các nhóm chữ số mã hóa bị bỏ qua khi giải mã, nên không quan trọng văn bản mã hóa được viết liền mạch hay thành các khối năm chữ số gọn gàng.
Lịch sử, công dụng và tính bảo mật
Pollux là một trong số ít các mật mã dựa trên Morse — cùng với Fractionated Morse và Morbit — được American Cryptogram Association thu thập cho mục đích phân tích mật mã giải trí, và nó đã tìm thấy một cuộc đời thứ hai trong các cuộc thi học đường như CodeBusters của Science Olympiad, nơi học sinh học cách khôi phục khóa từ những khuôn mẫu mà phần Morse để lại phía sau. Mánh khóe dùng nhiều ký hiệu mã hóa hơn số ký hiệu bản rõ, để vài ký hiệu cùng đại diện cho một, là một bài học nhỏ nhưng tinh tế về cách đánh bại việc đếm tần suất.
Theo tiêu chuẩn hiện đại, Pollux không an toàn. Việc trải mỗi ký hiệu trên vài chữ số đánh bại phép phân tích tần suất ngây thơ, nhưng phần Morse nền tảng áp đặt những khuôn mẫu mạnh mẽ, ai cũng biết — không bao giờ có ba dấu phân cách xuất hiện liên tiếp, một số mã ngắn rất phổ biến — và một khóa đã biết hoặc đoán được, hay đơn giản là đủ lượng văn bản mã hóa, sẽ cho phép một người giải kiên trì hoặc một máy tính khôi phục thông điệp. Hãy xem Pollux như một câu đố và một công cụ dạy học, một minh họa sinh động về việc ngụy trang một mã bằng một mã khác nâng cao rào cản ra sao, và đừng bao giờ coi nó như một cách để bảo vệ các bí mật thực sự. Để có sự bảo mật 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 đánh giá như AES.
Câu hỏi thường gặp
Mật mã Pollux là gì?
Khóa Pollux hoạt động như thế nào?
Tại sao nhiều chữ số có thể có nghĩa là cùng một ký hiệu?
Tại sao cùng một văn bản lại cho cùng các chữ số ở đây?
Bạn có thể đưa ra một ví dụ minh họa không?
Làm thế nào để tôi giải mã một thông điệp Pollux?
Nó có xử lý số và dấu câu không?
Điều gì xảy ra nếu khóa của tôi không hợp lệ?
Pollux khác với Morbit và Fractionated Morse như thế nào?
Mật mã Pollux có an toàn không?
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