T

Text Machine

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

Trình nhận dạng mật mã

Không chắc đang xem loại mật mã nào? Dán đoạn văn bản bí ẩn và công cụ này sẽ phân tích tập ký tự, tần suất chữ cái và chỉ số trùng hợp để xếp hạng những mật mã khả dĩ nhất — rồi đưa bạn thẳng đến bộ giải mã phù hợp. Mọi thứ đều chạy trong trình duyệt của bạn.

Thử một mẫu:

Văn bản mã hóa cần nhận dạng

Dán văn bản vào ô trên và những mật mã khả dĩ nhất sẽ hiện ra ở đây, xếp hạng theo độ tin cậy.

Cách sử dụng Trình nhận dạng mật mã

  1. 1

    Dán văn bản bí ẩn của bạn

    Sao chép mã hoặc văn bản mã hóa không rõ và dán vào ô. Nó có thể là chữ cái, chấm và gạch Morse, Base64, số, hoặc gần như bất cứ thứ gì.

  2. 2

    Đọc bản tóm tắt phân tích

    Xem số ký tự, có bao nhiêu chữ cái, tập ký tự được phát hiện, và chỉ số trùng hợp, vốn gợi ý liệu mật mã đã dùng một bảng chữ hay nhiều bảng.

  3. 3

    Xem lại các phỏng đoán xếp hạng

    Những mật mã khả dĩ nhất hiện ra dưới dạng thẻ, sắp xếp theo độ tin cậy từ Rất có thể xuống Khó xảy ra, mỗi thẻ kèm lý do ngắn giải thích tín hiệu đã kích hoạt.

  4. 4

    Mở bộ giải mã phù hợp

    Nhấn vào bộ giải mã chuyên dụng cho ứng viên đầu bảng để hoàn tất việc giải mã. Nếu có nhiều gợi ý, hãy thử lần lượt từ đầu danh sách xuống.

  5. 5

    Chia sẻ hoặc xóa

    Sao chép một liên kết chia sẻ mở lại công cụ với đúng văn bản của bạn, hoặc xóa ô để bắt đầu lại. Mọi thứ vẫn nằm trong trình duyệt của bạn.

Cách nhận dạng một mật mã không rõ

Trình nhận dạng mật mã là gì?

Trình nhận dạng mật mã là công cụ nhận một đoạn văn bản bí ẩn và cho bạn biết loại mật mã hay mã hóa nào nhiều khả năng đã tạo ra nó. Thay vì đoán mò hoặc lần lượt thử mọi bộ giải mã, bạn chỉ dán văn bản mã hóa một lần và nhận được danh sách ứng viên xếp hạng — Caesar, Vigenère, Base64, Morse, và hơn nữa — mỗi loại kèm mức độ tin cậy và liên kết trực tiếp tới bộ giải mã phù hợp.

Đây là điểm khởi đầu tự nhiên mỗi khi bạn gặp văn bản đã mã hóa mà không được cho biết nó được tạo ra như thế nào: một thử thách capture-the-flag, một manh mối phòng thoát hiểm, một câu đố geocaching, một trò chơi thực tế thay thế, hoặc một mẩu tin mật mã. Biết được họ mật mã giúp thu hẹp hàng chục khả năng xuống còn một hay hai, để bạn có thể ngừng tìm kiếm và bắt đầu giải mã.

Trình nhận dạng mật mã hoạt động thế nào

Trình nhận dạng dùng phân tích mật mã cổ điển, không phải học máy, nên mọi kết luận đều có thể giải thích được. Nó chạy văn bản của bạn qua một loạt kiểm tra, từ rõ ràng nhất đến tinh tế nhất. Đầu tiên nó xét tập ký tự: văn bản chỉ gồm chấm và gạch là Morse, chỉ gồm số không và số một là nhị phân, chỉ gồm chữ số thập lục phân là hex, và bảng chữ Base64 với độ dài là bội số của bốn là Base64. Các chuỗi số nhỏ gợi ý đến hình vuông Polybius, cách đánh số chữ cái A1Z26, hoặc mã ASCII.

Khi văn bản là chữ cái thông thường, công cụ chuyển sang thống kê. Nó đo chỉ số trùng hợp để quyết định xem một bảng chữ đã được dùng (đơn bảng chữ) hay nhiều bảng (đa bảng chữ), rồi chạy kiểm tra phép dịch Caesar và kiểm tra Atbash bằng cách tính điểm chi bình phương so với tần suất chữ cái tiếng Anh. Sự kết hợp giữa tập ký tự, hồ sơ tần suất, và các manh mối cấu trúc như độ dài và mẫu lặp lại tạo nên danh sách xếp hạng mà bạn thấy.

Chỉ số trùng hợp, giải thích cặn kẽ

Chỉ số trùng hợp, hay IoC, đo khả năng hai chữ cái lấy ngẫu nhiên từ văn bản là giống nhau. Văn bản tiếng Anh thông thường có IoC khoảng 0.067 vì một số chữ cái, như E và T, phổ biến hơn nhiều so với những chữ khác. Văn bản hoàn toàn ngẫu nhiên nằm gần 0.038, nơi mọi chữ cái đều có khả năng xuất hiện như nhau.

Con số duy nhất này là manh mối hữu ích nhất cho các mật mã dựa trên chữ cái. Mật mã Caesar, Atbash và thay thế bằng từ khóa chỉ đổi một chữ cái lấy một chữ khác, nên hồ sơ tần suất gồ ghề của tiếng Anh được giữ nguyên và IoC vẫn cao, gần 0.066. Các mật mã đa bảng chữ như Vigenère dùng nhiều bảng chữ cùng lúc, làm phẳng tần suất và kéo IoC xuống gần 0.04. Vậy nên IoC cao nói lên đơn bảng chữ, IoC thấp nói lên đa bảng chữ, còn giá trị ở giữa là gợi ý nên thử cả hai.

Đọc các manh mối từ tập ký tự

Nhiều cách mã hóa tự lộ diện chỉ qua bảng chữ của chúng. Mã Morse chỉ dùng chấm, gạch và dấu phân cách. Nhị phân chỉ dùng chữ số 0 và 1, thường thành nhóm tám. Thập lục phân dùng chữ số 0 đến 9 và chữ cái A đến F, với số lượng ký tự chẵn. Base64 dùng chữ cái hoa và thường, chữ số, dấu cộng và dấu gạch chéo, thường kết thúc bằng một hoặc hai dấu bằng làm đệm, với tổng độ dài là bội số của bốn.

Các con số mang ý nghĩa riêng. Cặp chữ số từ 1 đến 5 là tọa độ của một hình vuông Polybius. Các số đều nằm trong khoảng 1 đến 26 nhiều khả năng là A1Z26, trong đó 1 là A và 26 là Z. Các số lớn hơn trong khoảng 32 đến 126 là mã ký tự ASCII thập phân. Văn bản chỉ tạo từ các chữ cái A, D, F, G, V và X là dấu hiệu không thể nhầm lẫn của mật mã chiến trường ADFGX hoặc ADFGVX dùng trong Thế chiến thứ nhất.

Mật mã đơn bảng chữ so với đa bảng chữ

Nếu văn bản là chữ cái và IoC cao, gần như chắc chắn bạn đang nhìn một mật mã đơn bảng chữ, trong đó mỗi chữ cái rõ luôn ánh xạ tới cùng một chữ cái mã hóa. Đơn giản nhất là mật mã Caesar, dịch mọi chữ cái đi cùng một lượng; trình nhận dạng xác nhận điều đó khi đúng một phép dịch biến văn bản thành tiếng Anh. Atbash là trường hợp đặc biệt đảo ngược bảng chữ để A trở thành Z. Nếu cả phép dịch lẫn phép đảo đều không hiệu quả mà IoC vẫn cao, thì đó là thay thế tổng quát bằng từ khóa hoặc affine, cần một bộ giải thay thế.

Nếu IoC thấp, mật mã dùng nhiều hơn một bảng chữ. Ví dụ kinh điển là Vigenère, áp dụng một từ khóa lặp lại để mỗi vị trí có thể dùng một phép dịch khác nhau; họ hàng của nó gồm Beaufort, Gronsfeld và Porta. Một manh mối riêng, độ dài chẵn không có chữ cái lặp trong từng cặp, lại chỉ tới một mật mã đa đồ như Playfair, vốn mã hóa hai chữ cái một lúc.

Cần làm gì sau khi nhận dạng được mật mã

Nhận dạng chỉ là bước đầu tiên. Mỗi ứng viên trong kết quả liên kết tới bộ giải mã chuyên dụng cho mật mã đó, nơi bạn có thể hoàn tất công việc. Với mật mã Caesar, bộ giải mã có thể thử vét cạn cả 25 phép dịch và chọn ra phép tốt nhất bằng phân tích tần suất. Với Base64, Morse, nhị phân hay hex, bộ chuyển đổi phù hợp biến mã thẳng lại thành văn bản. Với Vigenère và các mật mã thay thế, bạn thường cần khóa hoặc một bộ giải, nhưng biết được họ mật mã sẽ cho bạn biết chính xác nên dùng kỹ thuật nào.

Khi xuất hiện nhiều ứng viên, hãy làm từ trên xuống bắt đầu với ứng viên đáng tin nhất. Trình nhận dạng cố ý đưa ra nhiều hơn một khả năng khi bằng chứng còn mơ hồ, vì một thông điệp ngắn hiếm khi cho câu trả lời dứt khoát. Thử bộ giải mã đầu danh sách hầu như luôn xác nhận hoặc loại trừ phỏng đoán chỉ trong vài giây.

Những giới hạn cần ghi nhớ

Không trình nhận dạng tự động nào là hoàn hảo. Các thông điệp rất ngắn không chứa đủ chữ cái để thống kê đáng tin cậy, nên một mẫu năm chữ cái có thể mơ hồ ngay cả khi một đoạn văn sẽ rõ ràng. Các thông điệp được mã hóa qua nhiều lớp, chẳng hạn một mật mã Caesar rồi chuyển sang Base64, ban đầu chỉ lộ ra lớp ngoài cùng; hãy giải nó rồi chạy lại trình nhận dạng trên kết quả.

Công cụ tập trung vào các mật mã cổ điển và các cách mã hóa thông dụng, những họ thường xuất hiện trong câu đố, trò chơi và lịch sử. Nó không cố nhận dạng mật mã hiện đại như AES hay RSA, vốn được thiết kế để đầu ra trông hoàn toàn ngẫu nhiên và không mang cấu trúc nhận dạng nào. Hãy coi kết quả là những gợi ý chuyên môn chỉ bạn tới bộ giải mã phù hợp, chứ không phải một phán quyết bảo đảm.

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

Trình nhận dạng mật mã là gì?
Trình nhận dạng mật mã phân tích một đoạn văn bản không rõ và cho bạn biết loại mật mã hay mã hóa nào nhiều khả năng đã tạo ra nó. Thay vì thử từng bộ giải mã bằng tay, bạn chỉ dán văn bản mã hóa một lần và nhận danh sách ứng viên xếp hạng, mỗi loại kèm mức độ tin cậy và liên kết tới bộ giải mã phù hợp.
Làm sao nó biết đó là mật mã gì?
Nó dùng phân tích mật mã cổ điển. Đầu tiên nó kiểm tra tập ký tự, vì Morse, nhị phân, thập lục phân, Base64 và mã số mỗi loại dùng một bảng chữ đặc trưng. Với văn bản dựa trên chữ cái, nó đo tần suất chữ cái và chỉ số trùng hợp, rồi chạy kiểm tra Caesar và Atbash, kết hợp mọi bằng chứng thành một danh sách xếp hạng. Nó hoàn toàn dựa trên quy tắc, nên mọi kết quả đều kèm lời giải thích.
Chỉ số trùng hợp là gì?
Chỉ số trùng hợp đo khả năng hai chữ cái lấy ngẫu nhiên từ văn bản là giống nhau. Tiếng Anh khoảng 0.067 và văn bản ngẫu nhiên khoảng 0.038. Các mật mã đơn bảng chữ giữ giá trị cao, gần 0.066, trong khi các mật mã đa bảng chữ như Vigenère làm phẳng nó về gần 0.04, đây là manh mối hữu ích nhất để phân biệt hai họ này.
Nó có nhận dạng được mọi mật mã không?
Không. Nó bao quát các mật mã cổ điển và các cách mã hóa thông dụng gặp trong câu đố, trò chơi và lịch sử, tổng cộng hơn mười lăm họ. Nó không nhận dạng mật mã hiện đại như AES hay RSA, vốn được thiết kế để đầu ra trông ngẫu nhiên và không mang cấu trúc. Hãy coi kết quả là những gợi ý mạnh chỉ bạn tới bộ giải mã phù hợp chứ không phải câu trả lời bảo đảm.
Tại sao nó gợi ý nhiều hơn một mật mã?
Khi bằng chứng còn mơ hồ, công cụ cố ý liệt kê nhiều khả năng sắp xếp theo độ tin cậy để bạn không bỏ lỡ câu trả lời. Đặc biệt các thông điệp ngắn hiếm khi cho phán quyết dứt khoát, nên thấy hai hay ba ứng viên là bình thường. Hãy bắt đầu với ứng viên đáng tin nhất và làm dần xuống danh sách.
Nó báo văn bản của tôi là văn bản thường. Điều đó nghĩa là gì?
Điều đó nghĩa là phân bố chữ cái đã khớp với tiếng Anh thông thường, nên văn bản có thể hoàn toàn chưa được mã hóa, hoặc nó dùng một mật mã giữ nguyên tần suất bình thường. Nếu bạn mong đợi một mật mã, hãy kiểm tra xem thông điệp có đơn giản là đọc được không, hay nó đã được mã hóa theo cách giữ nguyên thống kê giống tiếng Anh.
Công cụ có giải mã thông điệp luôn không?
Trình nhận dạng tập trung vào việc cho bạn biết mật mã bạn đang có là gì. Để giải mã, hãy nhấn liên kết trên ứng viên đầu bảng, nó sẽ mở bộ giải mã chuyên dụng cho mật mã đó. Một số, như Caesar, Base64, Morse, nhị phân và hex, giải mã tức thì; số khác, như Vigenère, thường cần khóa hoặc một bộ giải, nhưng bạn sẽ biết chính xác nên dùng công cụ nào.
Văn bản của tôi có được tải lên máy chủ không?
Không. Toàn bộ phân tích 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 nhật ký hay lưu trữ. Ngay cả liên kết chia sẻ cũng giữ văn bản của bạn trong phần URL nằm sau dấu thăng, vốn được 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ẻ.
Nó có thể phát hiện những mật mã và cách mã hóa nào?
Trong số đó nó nhận dạng mã Morse, nhị phân, thập lục phân, Base64, Baconian, hình vuông Polybius, mã số A1Z26 và ASCII, ADFGX và ADFGVX, các mật mã dịch chuyển Caesar và ROT, Atbash, thay thế bằng từ khóa và affine, Vigenère và các mật mã đa bảng chữ khác, cùng các mật mã chữ đôi kiểu Playfair.
Tại sao nó không thể nhận dạng các thông điệp rất ngắn?
Các kiểm tra thống kê như phân tích tần suất và chỉ số trùng hợp cần đủ chữ cái để đáng tin cậy. Một nhúm ký tự không chứa đủ thông tin để tách mật mã này khỏi mật mã khác, nên các mẫu ngắn thường trả về kết quả mơ hồ hoặc không nhận dạng được. Thông điệp càng dài, việc nhận dạng càng chắc chắn.
Làm sao tôi nhận dạng một mật mã bằng tay?
Trước hết hãy nhìn bảng chữ: chấm và gạch nghĩa là Morse, số không và số một nghĩa là nhị phân, và một bảng chữ gồm A, D, F, G, V, X nghĩa là ADFGX. Với chữ cái, hãy kiểm tra tần suất; nếu một chữ cái mã hóa chiếm ưu thế giống cách E làm trong tiếng Anh, thì đó có lẽ là một phép dịch hay thay thế đơn giản, còn nếu tần suất trông phẳng, thì nhiều khả năng là đa bảng chữ. Công cụ này tự động hóa đúng những kiểm tra đó.
Khác biệt giữa một mật mã và một cách mã hóa là gì?
Một cách mã hóa như Base64, thập lục phân hay Morse chỉ biểu diễn văn bản dưới dạng khác và không cần khóa bí mật để đảo ngược. Một mật mã như Caesar hay Vigenère cố ý giấu thông điệp và cần khóa để giải mã. Trình nhận dạng xử lý cả hai, vì khi đối mặt với văn bản bí ẩn bạn trước hết cần biết mình đang đối mặt với loại nào trong hai loại đó.

Công cụ liên quan

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

Mật mã Caesar

Mật mã Vigenère

Mật mã Atbash

Mật mã Rail Fence

Mật mã Playfair

Mật mã Affine