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

Mã hóa và giải mã mật mã Morbit. 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 đó luồng chấm-gạch-x được đọc theo từng hai ký hiệu một, và mỗi trong chín cặp khả dĩ được thay bằng một chữ số từ một đến chín theo thứ tự do một từ khóa quy định. 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

Khóa quyết định mỗi cặp Morse trở thành chữ số nào. Hãy dùng một từ khóa chín chữ cái (các chữ cái của nó được đánh số 1-9 theo thứ tự bảng chữ cái, các chữ trùng nhau xét từ trái sang phải) hoặc một dãy chín chữ số 1-9 nhập trực tiếp. Bất cứ thứ gì khác sẽ quay về thứ tự 1-9 thông thường. Cả hai bên đều phải dùng cùng một khóa.

Văn bản gốc
Chữ số mã hóa

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

Bảng cặp → chữ số

..

5

.-

6

.x

8

-.

9

--

3

-x

1

x.

7

x-

2

xx

4

Cách sử dụng Morbit Cipher

  1. 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ã Morbit, 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. 2

    Đặt khóa

    Nhập một từ khóa chín chữ cái hoặc một dãy chín chữ số 1-9. Khóa quyết định mỗi cặp Morse trở thành chữ số nào, và cả hai bên đều phải dùng cùng một khóa để khớp với nhau.

  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õ. 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 luồng được cắt thành các cặp với chữ số dưới mỗi cặp.

  4. 4

    Đọc bảng cặp

    Mở bảng cặp để xem cả chín cặp Morse cùng chữ số mà mỗi cặp ánh xạ tới theo khóa hiện tại.

  5. 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ã Morbit

Mật mã Morbit là gì?

Mật mã Morbit biến mã Morse thông thường thành một chuỗi các chữ số từ 1 đến 9, để cho các dấu chấm và gạch quen thuộc không bao giờ xuất hiện trong thông điệp hoàn chỉnh. Nó thuộc cùng họ với các mật mã thủ công dựa trên Morse như Fractionated Morse và Pollux, tất cả đều được American Cryptogram Association lập danh mục và gìn giữ, và nó là một lựa chọn được ưa chuộng trong các cuộc săn giải đố và thử thách capture-the-flag bởi vì đầu ra trông giống một dãy số vô nghĩa.

Tên gọi của nó là sự kết hợp của Morse và bit, và ý tưởng cốt lõi nằm ở sự phân tách. Sau khi thông điệp được chuyển thành Morse, luồng các dấu chấm, gạch và dấu phân cách được cắt thành các cặp và mỗi cặp được thay bằng một chữ số duy nhất. Bởi vì hai ký hiệu Morse hầu như không bao giờ khớp gọn gàng với một chữ cái của bản rõ, mỗi chữ số mã hóa cuối cùng đều mang theo các mảnh của những chữ cái lân cận. Chính sự pha trộn đó xóa đi nhịp điệu đặc trưng của Morse và san phẳng tần suất chữ cái mà lẽ ra sẽ làm lộ thông điệp.

Ba ký hiệu, chín cặp

Để biến Morse thành một chuỗi liền mạch duy nhất bạn cần một dấu phân cách. Morbit dùng chữ cái x: một chữ x giữa các chữ cái và hai chữ xx giữa các từ. Vì vậy thông điệp giờ đây chỉ sử dụng đúng ba ký hiệu — chấm, gạch và x — và không gì khác.

Đọc hai ký hiệu trong số đó cùng một lúc thì có 3 × 3 = 9 cặp khả dĩ, được liệt kê theo một thứ tự cố định: chấm-chấm, chấm-gạch, chấm-x, gạch-chấm, gạch-gạch, gạch-x, x-chấm, x-gạch, và x-x. Chín cặp, và đúng chín chữ số từ 1 đến 9 để đặt tên cho chúng. Sự khớp gọn gàng đó chính là toàn bộ lý do khiến mật mã này hoạt động: mỗi cặp có chữ số riêng của mình, không cặp nào thừa và không cặp nào thiếu.

Từ khóa và việc gán chữ số

Chín cặp luôn được liệt kê theo cùng một thứ tự cố định. Cái thay đổi là chữ số được viết bên dưới mỗi cặp. Khi không có từ khóa, các cặp đơn giản nhận các chữ số từ 1 đến 9 theo thứ tự. Một từ khóa sẽ xáo trộn chúng: lấy một từ chín chữ cái, đánh số các chữ cái của nó từ 1 đến 9 theo thứ tự bảng chữ cái — với các chữ trùng nhau xét từ trái sang phải — rồi đọc hoán vị đó đối chiếu với chín cặp.

Ví dụ, từ khóa MORSECODE có các chữ cái được đánh số là 5, 6, 8, 9, 3, 1, 7, 2, 4, vì vậy cặp đầu tiên chấm-chấm trở thành 5, cặp thứ hai chấm-gạch trở thành 6, và cứ thế tiếp tục. Bảng trực tiếp ở trên hiển thị ánh xạ này và cập nhật ngay khoảnh khắc bạn thay đổi khóa. Bạn cũng có thể nhập trực tiếp một dãy chín chữ số 1 đến 9 nếu bạn muốn. Khóa là bí mật chung: người gửi và người nhận phải dùng cùng một khóa.

Mật mã Morbit hoạt động như thế nào

Việc mã hóa diễn ra qua ba 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, nếu chuỗi thu được có số ký hiệu lẻ, thêm một chữ x vào cuối để nó chia chẵn thành các cặp — việc đệm bằng x thay vì một dấu chấm hay gạch là quan trọng, bởi vì một dấu chấm thừa sau này sẽ bị đọc thành một chữ cái sai lạc. Thứ ba, đọc chuỗi theo từng hai ký hiệu một và thay mỗi cặp bằng chữ số của nó lấy từ khóa.

Sức mạnh của mật mã nằm ở việc ghép cặp đó. Một chữ cái đơn lẻ của bản rõ, một khi đã được chuyển thành Morse và nối với các chữ cái lân cận bằng các dấu phân cách, sẽ trải ra trên nhiều cặp, và mỗi cặp cũng mượn một ký hiệu từ chữ cái ở một bên. Do đó việc khôi phục một chữ cái của bản rõ đồng nghĩa với việc cũng phải dựng lại phần Morse xung quanh, và đó chính là điều đánh bại các cuộc tấn công đếm chữ cái đơn giản vốn phá vỡ một mật mã thay thế thông thường. 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 hiển thị luồng được cắt thành các cặp với chữ số dưới mỗi cặp.

Một ví dụ minh họa

Lấy cụm từ MORE BITS với từ khóa MORSECODE. Trong Morse, MORE là gạch-gạch x gạch-gạch-gạch x chấm-gạch-chấm x chấm, và BITS là gạch-chấm-chấm-chấm x chấm-chấm x gạch x chấm-chấm-chấm, với hai chữ xx đánh dấu khoảng trống giữa hai từ. Nối lại với nhau đây là một luồng 27 ký hiệu, một độ dài lẻ, vì vậy một chữ x được thêm vào cuối để thành 28.

Bây giờ đọc 28 ký hiệu theo từng hai ký hiệu một để được 14 cặp, và biến mỗi cặp thành chữ số của nó bằng khóa MORSECODE (chấm-chấm là 5, gạch-gạch là 3, chấm-x là 8, và cứ thế tiếp tục). Kết quả là 32379749578158. Việc giải mã đảo ngược quá trình một cách chính xác: mỗi chữ số trở thành cặp của nó, các cặp được nối lại thành luồng Morse, và luồng đó được đọc qua bảng Morse để khôi phục MORE BITS.

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

Việc giải mã chỉ đơn giản là chạy ba bước theo chiều ngược lại. Mỗi chữ số được tra cứu trong khóa để khôi phục cặp ký hiệu Morse của nó, các cặp được nối lại thành một chuỗi chấm-gạch-x dài, và chuỗi đó được tách tại các dấu phân cách — một chữ x kết thúc một chữ cái, hai chữ xx kết thúc một từ. Đọc mỗi chuỗi chấm và gạch trở lại qua bảng Morse sẽ dựng lại văn bản gốc. Bất kỳ phần đệm x nào được thêm vào trong quá trình mã hóa đều nằm vô hại ở cuối và biến mất, vì vậy một thông điệp được mã hóa bằng công cụ này luôn giải mã trở lại chính xác.

Để 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ẽ ghép các cặp với những chữ số 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. 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

Morbit là một trong một nhóm nhỏ các mật mã giấy-bút dựa trên Morse — cùng với Fractionated Morse và Pollux — đã được American Cryptogram Association lập danh mục và gìn giữ cho mục đích phân tích mật mã giải trí. Chúng tưởng thưởng cho những người giải có thể nhận ra cấu trúc Morse ẩn giấu, và chúng vẫn là một thành phần quen thuộc của các thử thách mật mã chính bởi vì bước phân tách khiến chúng thú vị hơn một phép thay thế thuần túy.

Theo tiêu chuẩn hiện đại, mật mã này không an toàn. Sự phân tách đá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 thống kê mạnh mẽ, 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 Morbit 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 kết hợp mã hóa với phép thay thế làm cho một mật mã mạnh hơ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ã Morbit là gì?
Đó là một mật mã thủ công ẩn mã Morse bên trong một dãy các chữ số từ 1 đến 9. Thông điệp được viết bằng Morse với x phân cách các chữ cái và xx phân cách các từ, luồng chấm-gạch-x được đọc theo từng hai ký hiệu một, và mỗi trong chín cặp khả dĩ được thay bằng một chữ số từ một bảng có khóa. Bởi vì các cặp hiếm khi khớp với từng chữ cái đơn lẻ, mỗi chữ số mã hóa pha trộn các phần của những chữ cái lân cận.
Tại sao lại có đúng chín cặp?
Sau khi thông điệp ở dạng Morse, chỉ có ba ký hiệu được dùng: chấm, gạch và dấu phân cách x. Đọc hai ký hiệu một lúc cho ra 3 × 3 = 9 tổ hợp, từ chấm-chấm cho đến x-x. Có đúng chín chữ số từ 1 đến 9 để gán nhãn cho chúng, nên mỗi cặp có chữ số riêng của mình, không cặp nào thừa và không cặp nào thiếu.
Từ khóa có tác dụng gì?
Từ khóa quy định mỗi trong chín cặp trở thành chữ số nào. Lấy một từ chín chữ cái và đánh số các chữ cái của nó từ 1 đến 9 theo thứ tự bảng chữ cái, các chữ trùng nhau xét từ trái sang phải; hoán vị đó được đọc đối chiếu với chín cặp theo thứ tự cố định của chúng. Khi không có từ khóa, các cặp đơn giản nhận các chữ số từ 1 đến 9 theo thứ tự, nên từ khóa là bí mật chung mà cả người gửi và người nhận đều phải dùng.
Bạn có thể đưa ra một ví dụ minh họa không?
Với từ khóa MORSECODE, cụm từ MORE BITS trở thành các chữ số 32379749578158. Thông điệp trước tiên được viết bằng Morse thành một luồng 27 ký hiệu, được đệm thêm một chữ x thành 28, rồi đọc theo từng cặp, với mỗi cặp được biến thành chữ số của nó bằng khóa MORSECODE (khóa này đánh số các cặp là 5, 6, 8, 9, 3, 1, 7, 2, 4).
Làm thế nào để tôi giải mã một thông điệp Morbit?
Đảo ngược các bước: tra cứu mỗi chữ số để được cặp ký hiệu Morse của nó, nối các cặp thành một chuỗi chấm-gạch-x, tách nó tại các dấu phân cách (một chữ x giữa các chữ cái, hai chữ xx giữa các từ), và đọc mỗi chuỗi chấm và gạch trở lại qua bảng Morse. Trong công cụ này, hãy chọn Giải mã và nhập cùng một khóa đã được dùng để mã hóa.
Tại sao việc đệm lại được làm bằng x mà không phải bằng một dấu chấm hay gạch?
Nếu luồng Morse có số ký hiệu lẻ, thêm một ký hiệu nữa để cặp cuối cùng được trọn vẹn. Đệm bằng x hiệu quả vì x là một dấu phân cách: một dấu phân cách ở cuối đơn giản đánh dấu sự kết thúc của chữ cái hoặc từ cuối cùng và biến mất khi thông điệp được giải mã. Đệm bằng một dấu chấm hay gạch thì lại sẽ bị đọc thành một ký hiệu Morse thật và có thể thêm vào một chữ cái thừa sai lạc.
Nó có xử lý số và dấu câu không?
Chữ cái và chữ số được mã hóa, vì cả hai đều có mã Morse chuẩn. Dấu câu và các ký hiệu khác bị loại bỏ, và bất kỳ chuỗi khoảng trống nào cũng trở thành một dấu ngắt từ duy nhất. Điều này có nghĩa là một dạng viết tắt như "it's" được xử lý như từ duy nhất ITS, phù hợp với các bản triển khai tham chiếu phổ biến của mật mã này.
Tôi có thể dùng một số chín chữ số làm khóa thay cho một từ không?
Có. Nếu bạn nhập một dãy chín chữ số gồm các chữ số từ 1 đến 9 — mỗi chữ số dùng đúng một lần — nó được dùng trực tiếp làm phép gán cặp-sang-chữ số. Một từ khóa chín chữ cái chỉ là một cách dễ nhớ hơn để ghi nhớ cùng loại hoán vị đó. Bất cứ thứ gì không phải là một dãy chín chữ số hợp lệ cũng không phải là một từ chín chữ cái sẽ quay về thứ tự 1-9 thông thường.
Morbit khác với Fractionated Morse như thế nào?
Cả hai đều viết thông điệp bằng Morse trước và cả hai đều phân tách luồng chấm-gạch-x, nhưng Morbit đọc luồng theo từng hai ký hiệu một và xuất ra các chữ số từ 1 đến 9, trong khi Fractionated Morse đọc nó theo từng ba ký hiệu một và xuất ra các chữ cái từ A đến Z. Do đó Morbit tạo ra văn bản mã hóa dạng số, còn Fractionated Morse tạo ra các chữ cái.
Mật mã Morbit có an toàn không?
Không. Sự phân tách đánh bại phép đếm tần suất đơn giản, nhưng phần Morse nền tảng để lại những khuôn mẫu thống kê mạnh mẽ, và mật mã này thất thủ trước các phương pháp giải cổ điển và trước máy tính, đặc biệt khi khóa bị đoán ra hoặc bị tái sử dụng hoặc khi có sẵn nhiều văn bản mã hóa. Nó tuyệt vời cho các câu đố và việc học hỏi, 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ột 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 và khóa của bạn trong phần URL nằm sau ký hiệu #, mà trình duyệt không bao giờ gửi tới một 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

Fractionated Morse Cipher

Pollux Cipher

Straddling Checkerboard

Trình dịch mã Morse

Mật mã Caesar

Mật mã Vigenère