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

Mã hóa và giải mã mật mã Della Porta, một mật mã đa bảng dựa trên từ khóa được học giả người Ý Giovan Battista della Porta công bố vào năm 1563. Nó có tính thuận nghịch: cùng một từ khóa vừa mã hóa vừa giải mã, nên không có chế độ giải mã riêng. Nhập một từ khóa và theo dõi 13 bảng chữ cái ghép cặp hoạt động trực tiếp. Mọi thứ đều chạy trong trình duyệt của bạn.

Porta có tính thuận nghịch: cùng một từ khóa vừa mã hóa vừa giải mã. Để giải mã một thông điệp, hãy dán bản mã vào và nhập đúng từ khóa đó, và kết quả chính là bản rõ ban đầu. Không có nút giải mã riêng.

Từ khóa

Từ khóa

Từ khóa là bí mật được chia sẻ giữa người gửi và người nhận. Nó lặp lại dọc theo thông điệp, và mỗi chữ cái của nó chọn một trong 13 bảng chữ cái thuận nghịch. Vì các bảng chữ cái được ghép cặp, A và B chọn cùng một bảng, C và D chọn bảng kế tiếp, và cứ thế. Chỉ các chữ cái được dùng; mọi dấu cách, chữ số hoặc dấu câu trong từ khóa đều bị bỏ qua.

Văn bản
Kết quả

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

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

  1. 1

    Nhập từ khóa

    Gõ từ khóa bí mật được chia sẻ, chẳng hạn CIPHER. Chỉ các chữ cái của nó được dùng; mọi dấu cách, chữ số hoặc dấu câu đều bị bỏ qua. Cùng một từ khóa được dùng cho cả mã hóa và giải mã.

  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: bản rõ để mã hóa, hoặc bản mã Porta để giải mã. Mật mã chạy tự động ngay khi bạn gõ, và quá trình tính toán từng chữ cái cập nhật trực tiếp bên dưới.

  3. 3

    Đọc kết quả thuận nghịch

    Vì Porta có tính thuận nghịch, cùng một từ khóa phục vụ cả hai chiều. Để khôi phục một thông điệp, dán bản mã vào và nhập đúng từ khóa đã được dùng để mã hóa nó; kết quả là bản rõ ban đầu.

  4. 4

    Xem, sao chép và chia sẻ

    Mở quá trình tính toán để xem cặp khóa và bảng chữ cái nào đã mã hóa mỗi chữ cái, rồi 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 đúng từ khóa và văn bản của bạn.

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

Mật mã Porta là gì?

Mật mã Porta, đầy đủ hơn là mật mã Della Porta, là một mật mã thay thế đa bảng được nhà bác học người Ý Giovan Battista della Porta mô tả trong cuốn sách năm 1563 của ông, De Furtivis Literarum Notis. Giống mật mã Vigenère, nó dùng một từ khóa lặp lại để cùng một chữ cái bản rõ có thể mã hóa thành nhiều chữ cái bản mã khác nhau tùy vào vị trí của nó, điều này làm phẳng những mẫu tần suất chữ cái vốn để lộ một phép thay thế đơn giản. Đó là một trong những hệ thống đa bảng thực dụng sớm nhất, và trong nhiều thế kỷ nó được ngưỡng mộ vì vừa khá mạnh vừa dễ dùng bằng tay.

Điều khiến Porta khác biệt là bảng chỉ gồm 13 bảng chữ cái thuận nghịch của nó thay vì 26 hàng đã dịch chuyển của một bảng vuông Vigenère đầy đủ. Mỗi bảng chữ cái được dựng sao cho nửa đầu của bảng chữ cái luôn trao đổi với nửa sau, điều này đem lại cho mật mã đặc tính hữu ích nhất của nó: nó có tính thuận nghịch, nghĩa là chính cùng một phép toán vừa mã hóa vừa giải mã. Della Porta thường được nhớ đến như một trong những người sáng lập mật mã học hiện đại, và bảng tự nghịch đảo gọn gàng này là ý tưởng gắn liền nhất với tên ông.

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

Đánh số bảng chữ cái từ A là 0 đến Z là 25. Từ khóa được lặp lại bao nhiêu lần tùy cần để xếp một chữ cái khóa dưới mỗi chữ cái của thông điệp. Mỗi chữ cái khóa chọn một trong 13 hàng, và các hàng đi theo cặp: A hoặc B chọn hàng đầu tiên, C hoặc D chọn hàng thứ hai, E hoặc F chọn hàng thứ ba, và cứ thế cho đến Y hoặc Z, vốn chọn hàng thứ mười ba. Gọi số cặp đó là r, chạy từ 0 cho A hoặc B đến 12 cho Y hoặc Z, một chữ cái bản rõ ở nửa đầu của bảng chữ cái (A–M, giá trị 0–12) mã hóa thành C = 13 + ((P + r) mod 13), rơi vào đâu đó trong nửa sau N–Z. Một chữ cái ở nửa sau ánh xạ trở lại nửa đầu với C = (P − 13 − r) mod 13.

Trên giấy, việc này được thực hiện bằng bảng Porta, một lưới gồm 13 hàng. Để mã hóa một chữ cái, bạn tìm hàng ứng với chữ cái khóa hiện thời, định vị chữ cái bản rõ trong hàng đó, và đọc ra chữ cái đối tác của nó. Chữ cái là những ký tự duy nhất được biến đổi; dấu cách, chữ số và dấu câu đi thẳng qua và không tiêu tốn một chữ cái khóa, nên từ khóa vẫn được xếp thẳng hàng với những chữ cái có ý nghĩa. Quá trình tính toán trực tiếp bên dưới công cụ cho thấy chính xác điều này với mỗi chữ cái trong thông điệp của bạn, bao gồm cả cặp khóa nào đã chọn bảng chữ cái.

Ví dụ thực hành

Mã hóa thông điệp HELLO với từ khóa KEY. Lặp lại từ khóa cho ra các chữ cái khóa K, E, Y, K, E xếp thẳng dưới H, E, L, L, O. Chữ cái khóa K thuộc cặp K hoặc L, nên nó chọn hàng đó, và trong hàng đó H mã hóa thành Z. Chữ cái khóa E thuộc cặp E hoặc F, và trong hàng đó E mã hóa thành T. Chữ cái khóa Y, từ cặp Y hoặc Z, biến L thành X. K lại biến chữ L kế tiếp thành Q, và E biến O thành M. Bản mã là ZTXQM.

Bây giờ giải mã ZTXQM với cùng từ khóa KEY và cùng thủ tục. Trong hàng K hoặc L, Z ánh xạ trở lại thành H; trong hàng E hoặc F, T ánh xạ trở lại thành E; trong hàng Y hoặc Z, X ánh xạ trở lại thành L; K trả Q về L; và E trả M về O. Kết quả lại là HELLO. Phép toán y hệt đã khôi phục thông điệp, và đó chính là toàn bộ ý nghĩa của mật mã Porta.

Vì sao Porta là nghịch đảo của chính nó

Đặc tính thuận nghịch được dựng sẵn vào hình dạng của mỗi hàng. Mỗi bảng chữ cái ghép nửa đầu của các chữ cái, A–M, với nửa sau, N–Z, sao cho bất kỳ chữ cái A–M nào ánh xạ tới một chữ cái N–Z cho trước thì chữ cái N–Z đó ánh xạ thẳng trở lại. Mã hóa đưa một chữ cái nửa đầu vào nửa sau, và đưa kết quả trở lại qua cùng một hàng sẽ đưa nó về nhà lần nữa. Phép xoay do cặp khóa đặt ra triệt tiêu vì đúng cùng lý do đó, nên mã hóa hai lần đưa bạn trở về nơi bạn đã bắt đầu.

Điều này thực sự tiện lợi. Với Vigenère bạn phải cộng khi mã hóa và trừ khi giải mã, nên hai chiều dùng những thủ tục khác nhau. Với Porta chỉ có một thủ tục để học, và một bảng duy nhất hay một công cụ duy nhất phục vụ cả hai chiều. Đó là lý do công cụ này không có nút giải mã riêng: bạn chỉ cần nhập đúng từ khóa và dán bất kỳ văn bản nào bạn muốn chuyển đổi.

Porta, Vigenère, và Beaufort

Sẽ hữu ích nếu xếp song song các mật mã từ khóa có quan hệ mật thiết. Mật mã Vigenère cộng khóa vào bản rõ, C = (P + K) mod 26, và cần phép trừ ngược lại để giải mã. Mật mã Beaufort trừ bản rõ ra khỏi khóa, C = (K − P) mod 26, và có tính thuận nghịch. Mật mã Porta đạt tới tính thuận nghịch theo một cách khác: thay vì dịch chuyển toàn bộ bảng chữ cái, nó chia đôi bảng và hoán đổi hai nửa, chỉ dùng 13 bảng chữ cái ghép cặp được định khóa bằng các cặp chữ cái. Tất cả chúng đều chia sẻ một từ khóa lặp lại và một bảng in, đó là lý do chúng dễ bị nhầm lẫn.

Vì hình học khác nhau, một thông điệp được mã hóa bằng một trong các mật mã này sẽ trông như vô nghĩa dưới mật mã khác. Công cụ này hiện thực bảng Della Porta thuận nghịch cổ điển. Nếu bạn cần quy tắc cộng, công cụ Vigenère trên Text Machine bao quát Vigenère và các chế độ liên quan của nó, còn công cụ Beaufort bao quát mật mã từ khóa thuận nghịch còn lại.

Cách phá mật mã Porta

Porta thừa hưởng những điểm mạnh và những điểm yếu của bất kỳ mật mã đa bảng dùng khóa lặp lại nào. Hàng phòng thủ của nó là một chữ cái bản rõ ánh xạ tới nhiều chữ cái bản mã khác nhau, điều này làm phẳng những đỉnh tần suất chữ cái rõ rệt vốn để lộ một phép thay thế đơn giản. Điểm yếu của nó là khóa lặp lại. Một khi nhà phân tích đoán được độ dài của từ khóa, bản mã tách thành các cột riêng biệt mà mỗi cột được mã hóa bằng một bảng chữ cái cố định duy nhất, và mỗi cột trở thành một phép thay thế thuận nghịch đơn giản khuất phục trước phân tích tần suất.

Cách cổ điển để tìm độ dài khóa là phép kiểm tra Kasiski, vốn tìm các nhóm chữ cái lặp lại và đo khoảng cách giữa chúng, cùng với chỉ số trùng hợp, vốn đo mức độ không đồng đều của tần suất chữ cái. Theo một nghĩa nào đó, Porta yếu hơn Vigenère: vì các chữ cái khóa đi theo cặp, mỗi cột chỉ có 13 bảng chữ cái khả dĩ thay vì 26, nên một khi đã biết độ dài khóa, nhà phân tích chỉ cần thử cả 13 bảng cho mỗi cột. Do đó một thông điệp Porta chỉ mạnh bằng đúng mức từ khóa của nó dài, khó đoán, và chỉ được dùng một lần.

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

Không. Theo tiêu chuẩn hiện đại, mật mã Porta không cung cấp sự an toàn thực sự nào. Một từ khóa ngắn hoặc lặp lại nhanh chóng khuất phục trước các phương pháp Kasiski và chỉ số trùng hợp ở trên, và ngay cả một từ khóa dài cũng không thể chống chọi một nhà phân tích quyết tâm có máy tính. Nó thuộc về thời đại của các mật mã thủ công, nơi sức hấp dẫn của nó là một bảng thuận nghịch thông minh, dễ dùng chứ không phải sức mạnh bất khả phá.

Ngày nay mật mã Porta được quý trọng vì mục đích học tập và giải trí. Đó là một cách tuyệt vời để hiểu phép thay thế đa bảng và ý tưởng tao nhã về một mật mã tự nghịch đảo, và nó xuất hiện thường xuyên trong các câu đố, phòng trốn thoát và thử thách cướp cờ. Để 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ã Porta là gì?
Mật mã Porta, hay mật mã Della Porta, là một mật mã thay thế đa bảng được học giả người Ý Giovan Battista della Porta công bố vào năm 1563. Giống mật mã Vigenère, nó dịch chuyển mỗi chữ cái bằng một từ khóa lặp lại, nhưng nó dùng một bảng chỉ gồm 13 bảng chữ cái thuận nghịch vốn hoán đổi hai nửa của bảng chữ cái, điều này khiến nó có tính thuận nghịch: cùng một phép toán vừa mã hóa vừa giải mã.
Mật mã Porta hoạt động như thế nào?
Đánh số bảng chữ cái từ A là 0 đến Z là 25 và lặp lại từ khóa dọc theo thông điệp. Mỗi chữ cái khóa chọn một trong 13 bảng chữ cái, được ghép cặp sao cho A hoặc B chọn bảng đầu tiên, C hoặc D chọn bảng kế tiếp, và cứ thế. Trong một bảng chữ cái, nửa đầu A–M hoán đổi với nửa sau N–Z. Chỉ các chữ cái bị thay đổi; dấu cách, chữ số và dấu câu đi xuyên qua và không làm từ khóa tiến lên.
Mật mã Porta có giống mật mã Vigenère không?
Chúng là họ hàng gần nhưng không giống nhau. Vigenère cộng khóa vào bản rõ, C = (P + K) mod 26, và dùng một bước khác để giải mã. Thay vào đó Porta chia đôi bảng chữ cái và hoán đổi hai nửa bằng 13 bảng chữ cái ghép cặp, điều này khiến nó có tính thuận nghịch nên một bước làm cả hai chiều. Một thông điệp được mã hóa bằng cái này sẽ không giải mã đúng dưới cái kia.
Vì sao mật mã Porta có tính thuận nghịch?
Mỗi bảng chữ cái Porta ghép nửa đầu của các chữ cái, A–M, với nửa sau, N–Z, nên mỗi chữ cái ánh xạ tới một đối tác vốn ánh xạ thẳng trở lại. Mã hóa đưa một chữ cái vào nửa đối diện, và đưa kết quả qua cùng một hàng sẽ đưa nó về nhà, trong khi phép xoay do cặp khóa đặt ra triệt tiêu. Do đó áp dụng mật mã hai lần trả về thông điệp, nên một phép toán vừa mã hóa vừa giải mã.
Bạn có thể cho một ví dụ về mật mã Porta không?
Mã hóa HELLO với từ khóa KEY cho ra ZTXQM. Các chữ cái khóa K, E, Y, K, E chọn các bảng chữ cái ghép cặp của chúng, và trong mỗi bảng chữ cái của thông điệp hoán đổi thành H→Z, E→T, L→X, L→Q, O→M. Giải mã ZTXQM với cùng từ khóa KEY và cùng thủ tục trả về HELLO, vì bảng là nghịch đảo của chính nó.
Làm thế nào để giải mã một mật mã Porta?
Dùng đúng từ khóa đã được dùng để mã hóa, và dán bản mã vào công cụ. Vì Porta có tính thuận nghịch nên không có chế độ giải mã riêng: nhập từ khóa và bản mã sẽ tạo ra bản rõ ban đầu một cách trực tiếp. Nếu bạn không biết từ khóa, bạn phải khôi phục nó bằng phép phá mã.
Vì sao mật mã Porta chỉ có 13 bảng chữ cái?
Porta nhóm 26 chữ cái khóa thành 13 cặp, và mỗi cặp chia sẻ một bảng chữ cái: A hoặc B chọn bảng đầu tiên, C hoặc D chọn bảng thứ hai, và cứ thế cho đến Y hoặc Z. Mỗi bảng chữ cái hoán đổi nửa đầu của các chữ cái với nửa sau, đó chính là điều khiến mật mã có tính thuận nghịch. Cái giá phải trả là hai chữ cái khóa khác nhau có thể hành xử y hệt nhau, điều này làm giảm nhẹ sức mạnh của từ khóa.
Tôi nên dùng từ khóa nào?
Bất kỳ từ hay cụm từ nào gồm các chữ cái đều dùng được. Một từ khóa dài hơn, ít đoán trước được hơn thì mạnh hơn, bởi vì sự an toàn của mật mã phụ thuộc vào việc từ khóa dài, khó đoán, và không bao giờ được dùng lại. Những từ khóa ngắn hoặc thông dụng nhanh chóng bị phá. Dấu cách, chữ số và dấu câu trong từ khóa đều bị bỏ qua, nên chỉ các chữ cái của nó là quan trọng.
Mật mã Porta có thay đổi dấu cách và dấu câu không?
Không. Chỉ 26 chữ cái được mã hóa. Dấu cách, chữ số và dấu câu đi xuyên qua không đổi, và chúng không tiêu tốn một chữ cái từ khóa, nên từ khóa vẫn được căn thẳng với những chữ cái mà nó biến đổi. Chữ hoa chữ thường được giữ nguyên trong kết quả nên kết quả giữ được hình dạng của văn bản gốc của bạn.
Làm thế nào để phá mật mã Porta?
Porta là một mật mã dùng khóa lặp lại, nên cuộc tấn công giống với cuộc tấn công phá Vigenère. Trước tiên tìm độ dài khóa bằng phép kiểm tra Kasiski và chỉ số trùng hợp, rồi tách bản mã thành các cột chia sẻ một bảng chữ cái. Vì các chữ cái khóa được ghép cặp, mỗi cột chỉ có 13 bảng chữ cái khả dĩ, nên nhà phân tích có thể thử cả 13 và chọn bảng đọc ra thành ngôn ngữ.
Mật mã Porta có an toàn không?
Không. Theo tiêu chuẩn hiện đại, nó không cung cấp sự an toàn thực sự nào: một từ khóa lặp lại khuất phục trước phép phá mã cổ điển, và ngay cả những từ khóa dài cũng không thể chống chọi một chiếc máy tính. 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 và từ khóa 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ã Trithemius

Mật mã Vigenère

Mật mã Autokey

Mật mã Running Key