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

Mã hóa và giải mã mật mã Trithemius, mật mã đa bảng đầu tiên, được tu viện trưởng người Đức Johannes Trithemius công bố năm 1508. Nó dịch chuyển chữ cái thứ nhất đi 0, chữ cái thứ hai đi 1, chữ cái thứ ba đi 2, và cứ thế — một phép dịch chuyển tăng dần đều đặn mà không cần khóa. Chuyển giữa mã hóa và giải mã và theo dõi quá trình tính toán hình thành trực tiếp. Mọi thứ đều chạy trong trình duyệt của bạn.

Mật mã Trithemius là không khóa: lịch dịch chuyển luôn là 0, 1, 2, 3, … nên không có gì để nhập ngoài văn bản của bạn. Bất kỳ ai biết phương pháp đều có thể giải mã nó — chỉ cần chuyển sang Giải mã và dán bản mã.

Bản rõ
Bản mã

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

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

  1. 1

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

    Chọn Mã hóa để biến bản rõ thành bản mã Trithemius, hoặc Giải mã để khôi phục bản rõ từ bản mã. Vì mật mã là không khóa, chiều là thiết lập duy nhất bạn cần chọn.

  2. 2

    Gõ hoặc dán văn bản của bạn

    Nhập thông điệp bạn muốn chuyển đổi. Mật mã chạy tự động ngay khi bạn gõ, áp dụng phép dịch chuyển tăng dần 0, 1, 2, 3, … vào lần lượt từng chữ cái.

  3. 3

    Theo dõi quá trình tính toán

    Mở quá trình tính toán từng chữ cái để thấy phép dịch chuyển được áp dụng ở mỗi vị trí và chữ cái mà nó tạo ra. Phép dịch chuyển tăng thêm một ở mỗi chữ cái và đặt lại sau 26 chữ cái.

  4. 4

    Đọc, sao chép và chia sẻ

    Đọc kết quả, rồi sao chép nó, 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 đúng chiều và văn bản của bạn. Mọi thứ đều ở lại trong trình duyệt của bạn.

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

Mật mã Trithemius là gì?

Mật mã Trithemius được xem rộng rãi là mật mã thay thế đa bảng đầu tiên. Nó được tu viện trưởng dòng Biển Đức người Đức Johannes Trithemius công bố trong tác phẩm Polygraphiae libri sex năm 1508 của ông, cuốn sách in sớm nhất về mật mã học. Thay vì dịch chuyển mọi chữ cái cùng một lượng, như một mật mã Caesar làm, mật mã Trithemius dịch chuyển mỗi chữ cái một lượng tăng dần đều đặn: chữ cái thứ nhất dịch đi 0, chữ thứ hai đi 1, chữ thứ ba đi 2, và cứ thế dọc theo thông điệp. Vì phép dịch chuyển thay đổi ở mỗi vị trí, một chữ cái bản rõ đơn lẻ có thể trở thành nhiều chữ cái bản mã khác nhau, điều này che giấu mẫu hình tần suất chữ cái vốn để phá một mật mã dịch chuyển đơn giản.

Điều khiến mật mã Trithemius khác thường giữa các mật mã đa bảng là nó không có khóa. Lịch các phép dịch chuyển 0, 1, 2, 3, … là cố định và công khai, nên không có từ hay con số bí mật nào phải thỏa thuận — bất kỳ ai biết phương pháp đều có thể đọc được thông điệp. Đó cũng là điểm yếu của nó, nhưng về mặt lịch sử ý tưởng này mang tính cách mạng: nó giới thiệu tabula recta, hình vuông các bảng chữ cái đã dịch chuyển mà mật mã Vigenère về sau sẽ mượn và kết hợp với một từ khóa bí mật.

Mật mã Trithemius hoạt động ra sao

Đánh số bảng chữ cái từ A là 0 đến Z là 25. Đi dọc theo thông điệp và giữ một bộ đếm bắt đầu từ 0 và tăng thêm một ở mỗi chữ cái. Để mã hóa, cộng bộ đếm vào chữ cái và cuộn vòng quanh bảng chữ cái bằng phần dư cho 26, nên chữ cái bản mã là C = (P + i) mod 26, trong đó i là vị trí của chữ cái. Để giải mã thì bạn trừ chính bộ đếm đó thay vào đó, P = (C − i) mod 26, phép này hoàn tác phép dịch chuyển và trả về chữ cái ban đầu.

Chỉ 26 chữ cái được dịch chuyển. Dấu cách, dấu câu, chữ số và các ký tự khác đi thẳng qua và không làm bộ đếm tiến lên, nên phép dịch chuyển tăng dần vẫn được xếp thẳng hàng với những chữ cái có ý nghĩa. Chữ hoa chữ thường được giữ nguyên. Vì phép dịch chuyển được lấy bằng phần dư cho 26, lịch dịch chuyển lặp lại mỗi 26 chữ cái: chữ cái thứ hai mươi bảy lại được dịch chuyển đi 0, chữ thứ hai mươi tám đi 1, và cứ thế. Điều đó khiến mật mã Trithemius giống hệt một mật mã Vigenère có từ khóa là toàn bộ bảng chữ cái, ABCDEFGHIJKLMNOPQRSTUVWXYZ.

Ví dụ thực hành

Mã hóa thông điệp HELLO. Năm chữ cái nằm ở các vị trí 0, 1, 2, 3 và 4, nên các phép dịch chuyển là 0, 1, 2, 3 và 4. Cộng mỗi phép dịch chuyển cho ra H cộng 0 là H, E cộng 1 là F, L cộng 2 là N, L cộng 3 là O, và O cộng 4 là S. Bản mã là HFNOS. Để ý rằng hai chữ L đã trở thành các chữ cái khác nhau, N và O, bởi vì chúng nằm ở các vị trí khác nhau — đúng là điều mà một phép dịch Caesar cố định không bao giờ làm được.

Để giải mã HFNOS, trừ chính các phép dịch chuyển tăng dần đó. H trừ 0 là H, F trừ 1 là E, N trừ 2 là L, O trừ 3 là L, và S trừ 4 là O, ghép thành HELLO trở lại. Các bước mã hóa và giải mã là ảnh phản chiếu của nhau, và vì lịch các phép dịch chuyển là cố định, người nhận không cần gì ngoài việc biết rằng đó là một mật mã Trithemius.

Bảng tabula recta

Trithemius trình bày mật mã của ông cùng với một tabula recta, tiếng Latinh nghĩa là bảng thẳng: một lưới 26 nhân 26 trong đó hàng thứ nhất là bảng chữ cái thường, hàng thứ hai là bảng chữ cái dịch chuyển đi một, hàng thứ ba dịch chuyển đi hai, và cứ thế xuống đến phép dịch chuyển hai mươi lăm. Để mã hóa chữ cái thứ nhất bạn đọc nó từ hàng thứ nhất, chữ cái thứ hai từ hàng thứ hai, chữ thứ ba từ hàng thứ ba, bước xuống một hàng cho mỗi chữ cái kế tiếp của thông điệp.

Bảng này là đóng góp bền lâu của mật mã Trithemius. Vài thập kỷ sau Giovan Battista Bellaso, và rồi mật mã Vigenère mang tên ông, vẫn giữ cùng tabula recta nhưng chọn hàng bằng một từ khóa bí mật thay vì bước qua các hàng theo thứ tự cố định. Vì vậy mật mã Trithemius là tổ tiên trực tiếp của cả họ mật mã bảng từ khóa, bao gồm Vigenère, Beaufort và Gronsfeld.

Trithemius, Vigenère và khóa lũy tiến

Sẽ hữu ích khi đặt mật mã Trithemius cạnh các hậu duệ của nó. Mật mã Vigenère cộng một từ khóa lặp lại vào thông điệp, C = (P + K) mod 26, trong đó mỗi chữ cái khóa cung cấp một phép dịch chuyển từ 0 đến 25. Mật mã Trithemius là trường hợp đặc biệt khi từ khóa đó là toàn bộ bảng chữ cái theo thứ tự, nên các phép dịch chuyển đơn giản là 0, 1, 2, 3, …, 25 rồi lặp lại. Nói cách khác, Trithemius là Vigenère được khóa bằng ABCDEFGHIJKLMNOPQRSTUVWXYZ.

Đây là lý do mật mã Trithemius đôi khi được gọi là mật mã khóa lũy tiến: phép dịch chuyển tiến thêm một ở mỗi bước thay vì được chọn bởi một điều bí mật. Cái giá của việc không có khóa là không có bí mật nào cả, nên mật mã chỉ bảo vệ một thông điệp trước người không nhận ra phương pháp. Việc thêm một từ khóa bí mật, như Bellaso và Vigenère đã làm, chính là bước biến ý tưởng giảng dạy này thành một mật mã chống lại phân tích suốt ba thế kỷ.

Cách phá mật mã Trithemius

Phá mật mã Trithemius là chuyện tầm thường, bởi vì không có gì bí mật để khôi phục. Lịch các phép dịch chuyển 0, 1, 2, 3, … là công khai, nên bất kỳ ai nghi ngờ một mật mã Trithemius đều có thể đơn giản trừ phép dịch chuyển tăng dần và đọc thông điệp ngay lập tức. Không có độ dài khóa nào để tìm và không có khóa nào để đoán; nhận ra mật mã cũng chính là phá nó.

Ngay cả một nhà phân tích không biết phương pháp cũng có một thời gian dễ dàng. Lịch cố định nghĩa là chữ cái thứ nhất không bị dịch chuyển, nên nó thường để lộ mật mã, và thử một nhúm nhỏ các độ lệch khởi đầu nhanh chóng làm lộ ra văn bản đọc được. Điều này rất khác với Vigenère, nơi từ khóa bí mật buộc kẻ tấn công phải đi qua phép kiểm tra Kasiski và chỉ số trùng hợp. Mật mã Trithemius được hiểu rõ nhất như bộ khung giáo dục mà trên đó những mật mã mạnh hơn, có khóa, về sau được dựng nên.

Mật mã Trithemius có an toàn không?

Không. Mật mã Trithemius không cung cấp bất kỳ sự an toàn nào, bởi vì nó không có khóa — toàn bộ phương pháp của nó là công khai, nên bất kỳ ai nhận ra nó đều có thể đọc thông điệp ngay tức khắc. Ngay cả theo tiêu chuẩn của các mật mã thủ công lịch sử khác, nó thuần túy là một công cụ giảng dạy, có giá trị trong việc cho thấy một phép dịch chuyển đa bảng hoạt động ra sao chứ không phải để giấu giếm bất cứ điều gì.

Ngày nay mật mã Trithemius được ưa thích vì mục đích học tập và giải trí. Đó là phần giới thiệu rõ ràng nhất có thể về tabula recta và về ý tưởng dịch chuyển lũy tiến đằng sau Vigenère, và nó xuất hiện trong các câu đố, phòng trốn thoát và các thử thách cướp cờ như một mật mã đa bảng đầu tiên nhẹ nhàng. Để bảo vệ thông tin thực sự, bạn nên dựa vào các thuật toán hiện đại, được kiểm chứng kỹ lưỡng như AES thay vào đó.

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

Mật mã Trithemius là gì?
Mật mã Trithemius là mật mã thay thế đa bảng đầu tiên, được tu viện trưởng người Đức Johannes Trithemius công bố năm 1508. Nó dịch chuyển mỗi chữ cái một lượng tăng dần đều đặn — chữ thứ nhất đi 0, chữ thứ hai đi 1, chữ thứ ba đi 2, và cứ thế — dùng tabula recta mà ông giới thiệu. Nó không có khóa, điều khiến nó trở thành tổ tiên không khóa của mật mã Vigenère.
Mật mã Trithemius hoạt động như thế nào?
Đánh số bảng chữ cái từ A là 0 đến Z là 25 và giữ một bộ đếm bắt đầu từ 0 và tăng thêm một ở mỗi chữ cái. Để mã hóa, cộng bộ đếm vào chữ cái theo modulo 26: C = (P + i) mod 26. Để giải mã, trừ thay vào đó: P = (C − i) mod 26. Chỉ các chữ cái được dịch chuyển; dấu cách, chữ số và dấu câu đi xuyên qua và không làm bộ đếm tiến lên.
Mật mã Trithemius có cần khóa không?
Không. Mật mã Trithemius là không khóa: lịch các phép dịch chuyển 0, 1, 2, 3, … là cố định và công khai, nên không có gì để nhập ngoài văn bản của bạn. Đây là đặc tính định nghĩa của mật mã và cũng là điểm yếu của nó, bởi vì bất kỳ ai nhận ra phương pháp đều có thể giải mã thông điệp mà không cần bất kỳ bí mật nào.
Bạn có thể cho một ví dụ về mật mã Trithemius không?
Mã hóa HELLO cho ra HFNOS. Các chữ cái nằm ở các vị trí 0 đến 4, nên các phép dịch chuyển là 0, 1, 2, 3, 4: H cộng 0 là H, E cộng 1 là F, L cộng 2 là N, L cộng 3 là O, và O cộng 4 là S. Hai chữ L trở thành các chữ cái khác nhau bởi vì chúng nằm ở các vị trí khác nhau. Giải mã HFNOS với cùng các phép dịch chuyển tăng dần trả về HELLO.
Trithemius khác mật mã Vigenère như thế nào?
Mật mã Trithemius là trường hợp đặc biệt của Vigenère có từ khóa là toàn bộ bảng chữ cái theo thứ tự, nên các phép dịch chuyển đơn giản là 0, 1, 2, 3, … rồi lặp lại. Vigenère thay lịch cố định đó bằng một từ khóa bí mật, đó là điều mang lại cho nó sức mạnh thực sự. Tóm lại, Trithemius là Vigenère được khóa bằng ABCDEFGHIJKLMNOPQRSTUVWXYZ.
Trithemius khác mật mã Caesar như thế nào?
Một mật mã Caesar dịch chuyển mọi chữ cái cùng một lượng cố định, nên nó là đơn bảng và cùng một chữ cái bản rõ luôn ánh xạ tới cùng một chữ cái bản mã. Mật mã Trithemius tăng phép dịch chuyển thêm một ở mỗi vị trí, nên nó là đa bảng: cùng một chữ cái bản rõ thường trở thành một chữ cái bản mã khác nhau tùy thuộc vào nơi nó xuất hiện.
Tabula recta là gì?
Tabula recta là một lưới 26 nhân 26 các bảng chữ cái mà Trithemius giới thiệu, trong đó mỗi hàng là bảng chữ cái dịch chuyển thêm một vị trí so với hàng phía trên. Để mã hóa, bạn đọc chữ cái thứ nhất từ hàng thứ nhất, chữ thứ hai từ hàng thứ hai, và cứ thế. Mật mã Vigenère về sau vẫn giữ cùng bảng đó nhưng chọn các hàng bằng một từ khóa bí mật.
Làm thế nào để giải mã một mật mã Trithemius?
Chuyển công cụ sang Giải mã và dán bản mã. Vì mật mã là không khóa, không cần khóa nào — công cụ trừ phép dịch chuyển tăng dần 0, 1, 2, 3, … để khôi phục bản rõ. Nhận ra rằng một thông điệp là mật mã Trithemius là tất cả những gì cần để đọc nó.
Mật mã có thay đổi dấu cách và dấu câu không?
Không. Chỉ 26 chữ cái được dịch chuyển. Dấu cách, dấu câu và chữ số đi xuyên qua không đổi, và chúng không làm bộ đếm vị trí tiến lên, nên phép dịch chuyển tăng dần vẫn được căn thẳng với các chữ cái. Chữ hoa chữ thường được giữ nguyên, nên kết quả giữ được hình dạng của văn bản gốc của bạn.
Phép dịch chuyển ra sao sau 26 chữ cái?
Vì phép dịch chuyển được lấy bằng phần dư cho 26, nó cuộn vòng lại. Chữ cái thứ hai mươi bảy lại được dịch chuyển đi 0, chữ thứ hai mươi tám đi 1, và cứ thế, lặp lại lịch dịch chuyển. Đây chính là lý do mật mã Trithemius bằng với một mật mã Vigenère được khóa bằng toàn bộ bảng chữ cái 26 chữ.
Mật mã Trithemius có an toàn không?
Không. Mật mã Trithemius không cung cấp sự an toàn nào cả, bởi vì nó không có khóa và phương pháp của nó là công khai. Bất kỳ ai nhận ra nó đều có thể đọc thông điệp ngay lập tức. Tốt nhất nên xem nó như một mật mã giáo dục và giải đố cùng một mảnh của lịch sử mật mã học. Để bảo vệ thực sự, hãy dùng một thuật toán hiện đại như AES thay và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ộ 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ữ dữ liệu của bạn trong phần URL nằm sau dấu thăng, phần mà trình duyệt không bao giờ gửi đến 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

Mật mã Beaufort

Mật mã Gronsfeld

Mật mã Porta

Mật mã Vigenère

Mật mã Autokey

Mật mã Running Key