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

Mã hóa và giải mã Scytale, mật mã trên thanh gậy của người Sparta cổ đại và là thiết bị mật mã quân sự lâu đời nhất. Quấn thông điệp của bạn quanh một thanh gậy có đường kính tùy chọn, viết dọc theo nó, rồi đọc ra theo một thứ tự đã bị xáo trộn. Điều chỉnh đường kính và theo dõi lưới hình thành trực tiếp. Mọi thứ đều chạy trong trình duyệt của bạn.

Cài đặt thanh gậy

Đường kính

4

Đường kính chính là khóa của mật mã: nó quyết định bao nhiêu chữ cái cuộn quanh thanh gậy trong một vòng, tức là số cột trong lưới. Người gửi và người nhận phải dùng cùng một đường kính.

Bản rõ
Bản mã

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

Sơ đồ lưới scytale

Ví dụ với thông điệp IAMHURTVERYBADLYHELP được quấn quanh một thanh gậy bốn chữ cái. Gõ văn bản của riêng bạn ở trên để thấy nó trên lưới.

1
2
3
4
I
A
M
H
U
R
T
V
E
R
Y
B
A
D
L
Y
H
E
L
P

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

  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ã scytale, hoặc Giải mã để khôi phục thông điệp gốc từ bản mã.

  2. 2

    Đặt đường kính thanh gậy

    Chọn đường kính, thứ quyết định bao nhiêu chữ cái cuộn quanh thanh gậy và do đó lưới dùng bao nhiêu cột. Để giải mã, hãy đặt cùng đường kính đã được dùng để mã hóa.

  3. 3

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

    Nhập thông điệp của bạn. Mật mã chạy tự động ngay khi bạn gõ, và sơ đồ lưới bên dưới cập nhật để cho thấy chính xác văn bản của bạn cuộn quanh thanh gậy như thế nào.

  4. 4

    Đọc, xem và chia sẻ kết quả

    Văn bản đã chuyển đổi của bạn xuất hiện ngay lập tức. Mở sơ đồ lưới để xem các cột được đọc ra sao, 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 cài đặt và văn bản của bạn.

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

Mật mã Scytale là gì?

Scytale, đôi khi được viết là skytale, là một mật mã hoán vị cổ điển và là thiết bị mật mã lâu đời nhất mà lịch sử biết đến. Người Hy Lạp cổ đại, và đặc biệt là người Sparta, đã dùng nó như một mật mã quân sự từ khoảng thế kỷ thứ bảy trước Công nguyên. Một scytale chỉ đơn giản là một thanh gậy gỗ có độ dày cố định: một dải giấy da hoặc da được quấn theo hình xoắn ốc quanh nó, thông điệp được viết dọc theo chiều dài thanh gậy, và khi tháo dải ra thì các chữ cái nằm theo một thứ tự lộn xộn, chỉ có ý nghĩa trở lại khi được quấn quanh một thanh gậy có cùng đường kính.

Giống như mọi mật mã hoán vị, Scytale không bao giờ thay thế chữ cái này bằng chữ cái khác theo cách mật mã thay thế làm. Nó giữ nguyên từng ký tự y như ban đầu và chỉ thay đổi thứ tự, nên bản mã luôn là một đảo chữ của thông điệp gốc. Bí mật duy nhất mà người gửi và người nhận cùng chia sẻ là độ dày của thanh gậy.

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

Cách dễ nhất để tái hiện thanh gậy trên giấy là dùng một lưới. Đường kính của thanh gậy quyết định bao nhiêu chữ cái vừa quấn quanh nó trong một vòng trọn vẹn; con số đó trở thành số cột. Bạn viết thông điệp vào lưới theo từng hàng một, từ trái sang phải, lấp đầy mỗi hàng trước khi chuyển sang hàng tiếp theo, đúng như cách bạn viết dọc theo thanh gậy khi dải giấy cuộn xoắn quanh nó. Khi toàn bộ thông điệp đã được đặt vào, bạn đọc lưới trở lại bằng cách đi thẳng xuống cột thứ nhất, rồi cột thứ hai, và cứ thế, ghép các cột lại với nhau để tạo thành bản mã.

Mọi ký tự đều tham gia, nên dấu cách và dấu câu được di chuyển vòng quanh giống như các chữ cái chứ không bị giữ nguyên tại chỗ. Số lượng ký tự không bao giờ thay đổi, đó là dấu hiệu đặc trưng của một mật mã hoán vị. Việc đọc xuống theo các cột của một lưới vốn được lấp đầy theo các hàng chính là điều tạo ra thứ tự bị xáo trộn — và đó cũng chính xác là điều mà việc tháo dải giấy thực hiện.

Ví dụ thực hành

Lấy thông điệp IAMHURTVERYBADLYHELP với một thanh gậy chứa được bốn chữ cái quanh nó, nên lưới có bốn cột. Viết hai mươi chữ cái theo từng hàng sẽ lấp đầy năm hàng: IAMH, rồi URTV, rồi ERYB, rồi ADLY, rồi HELP. Đó là thông điệp được viết dọc theo thanh gậy.

Bây giờ đọc thẳng xuống lần lượt từng cột. Cột thứ nhất ghép thành IUEAH, cột thứ hai ARRDE, cột thứ ba MTYLL, và cột thứ tư HVBYP. Ghép lại với nhau, bản mã là IUEAHARRDEMTYLLHVBYP. Mọi chữ cái của bản gốc vẫn còn nguyên, chỉ là bị xáo thành một thứ tự mới, và kết quả có độ dài chính xác bằng đầu vào.

Cách giải mã một mật mã Scytale

Để giải mã, bạn cần một thanh gậy có cùng đường kính — cùng số cột. Từ độ dài của bản mã và số cột đó, bạn biết được lưới cao bao nhiêu và chính xác bao nhiêu chữ cái thuộc về mỗi cột, kể cả những cột hơi ngắn hơn khi thông điệp không lấp đầy một hình chữ nhật hoàn hảo. Bạn cắt bản mã thành các cột đó, đặt chúng cạnh nhau, và đọc lưới trở lại theo các hàng để khôi phục thông điệp gốc.

Công cụ này làm tất cả những việc đó cho bạn. Chuyển sang Giải mã, đặt cùng đường kính đã được dùng để mã hóa, và dán bản mã vào. Nếu bạn không biết đường kính, bạn chỉ cần thử lần lượt từng giá trị — chỉ có một số ít giá trị hợp lý mà thôi — cho đến khi kết quả đọc ra thành ngôn ngữ rõ ràng.

Đường kính và khóa

Đường kính của thanh gậy chính là toàn bộ khóa của mật mã Scytale. Một thanh gậy dày hơn chứa được nhiều chữ cái hơn quanh chu vi của nó, cho nhiều cột hơn và một cách xáo trộn khác; một thanh gậy mỏng hơn chứa được ít hơn. Một đường kính chỉ vừa một chữ cái quanh nó thì chẳng làm gì cả, vì một cột đơn lẻ không có gì để sắp xếp lại, nên phạm vi hữu ích bắt đầu từ hai.

Có một sự đối ngẫu gọn gàng ẩn trong mật mã: mã hóa một thông điệp có độ dài cho trước với một đường kính giống hệt như giải mã nó với số hàng tương ứng, bởi vì đọc một lưới xuống theo các cột và đọc nó ngang theo các hàng là những phép toán nghịch đảo của nhau. Đây là lý do vì sao người gửi và người nhận chỉ cần thống nhất một con số duy nhất — độ dày của thanh gậy mà cả hai cùng cầm.

Cách phá mật mã Scytale

Scytale có một không gian khóa rất nhỏ. Bí mật duy nhất là một con số nhỏ duy nhất, nên kẻ tấn công chỉ cần thử mọi đường kính hợp lý — hai, rồi ba, rồi bốn, và cứ thế — giải mã với từng giá trị và đọc lấy kết quả nào có nghĩa. Việc tìm kiếm vét cạn này chỉ mất chốc lát ngay cả khi làm bằng tay và tức thời bằng máy tính. Vì độ dài thông điệp giới hạn số cột đáng để thử, khối lượng công việc còn nhỏ hơn cả vẻ ban đầu của nó.

Vì mật mã là một phép hoán vị thuần túy, bản thân các chữ cái không bị động đến, nên tần suất chữ cái của bản mã khớp chính xác với ngôn ngữ thông thường. Bản thân điều đó là một manh mối: văn bản có thống kê chữ cái hoàn toàn bình thường nhưng đọc ra vô nghĩa là một dấu hiệu mạnh cho thấy một mật mã hoán vị như Scytale đang được dùng, và khi đó nhà phân tích có thể tập trung vào việc khôi phục thứ tự thay vì các chữ cái.

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

Không. Với chỉ một con số nhỏ duy nhất làm khóa và một cách phá vét cạn nhanh chóng, Scytale không cung cấp sự bảo vệ thực sự nào cho thông tin cần được giữ bí mật. Vào thời cổ đại, giá trị của nó nằm ở tốc độ và sự tiện lợi ngoài chiến trường hơn là ở sức mạnh, và một số sử gia cho rằng lợi ích chính của nó là xác thực và xử lý nhanh chóng cũng nhiều như tính bí mật.

Ngày nay, Scytale được quý trọng vì mục đích giảng dạy và giải trí. Đó là một cách lý tưởng để giới thiệu ý tưởng về phép hoán vị, một cơ chế thú vị cho các câu đố, phòng trốn thoát và thử thách cướp cờ, và một mảnh hữu hình của lịch sử mật mã học. Để có sự an toàn thực sự, người ta dùng các thuật toán hiện đại như AES thay vào đó.

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

Mật mã scytale là gì?
Scytale là một mật mã hoán vị cổ điển và là thiết bị mật mã lâu đời nhất được biết đến. Người Sparta cổ đại quấn một dải giấy da quanh một thanh gậy có độ dày cố định, viết thông điệp dọc theo thanh gậy, rồi tháo dải ra để các chữ cái rơi vào một thứ tự bị xáo trộn. Nó không thay thế bất kỳ chữ cái nào; nó chỉ sắp xếp lại thứ tự của chúng, nên bản mã là một đảo chữ của bản rõ.
Mật mã scytale hoạt động như thế nào?
Tái hiện thanh gậy dưới dạng một lưới mà số cột bằng với số chữ cái vừa quấn quanh thanh gậy. Viết thông điệp vào lưới theo từng hàng một, rồi đọc nó trở lại bằng cách đi thẳng xuống lần lượt từng cột và ghép các cột lại với nhau. Việc đọc theo từng cột của một lưới được lấp đầy theo từng hàng chính là điều xáo trộn thứ tự, đúng như việc tháo dải giấy thực hiện.
Bạn có thể cho một ví dụ về scytale không?
Với một thanh gậy chứa được bốn chữ cái quanh nó, thông điệp IAMHURTVERYBADLYHELP trở thành IUEAHARRDEMTYLLHVBYP. Viết nó theo từng hàng cho ra các hàng IAMH, URTV, ERYB, ADLY và HELP, và đọc xuống bốn cột cho ra IUEAH, ARRDE, MTYLL và HVBYP. Mọi chữ cái gốc vẫn còn đó, chỉ là bị xáo, và độ dài không đổi.
Làm thế nào để giải mã một mật mã scytale?
Chuyển sang Giải mã và đặt cùng đường kính đã được dùng để mã hóa, rồi dán bản mã vào. Từ độ dài bản mã và đường kính, công cụ tính ra mỗi cột cao bao nhiêu, cắt bản mã thành các cột, đặt chúng cạnh nhau, và đọc lưới trở lại theo các hàng để khôi phục thông điệp gốc.
Đường kính trong mật mã scytale là gì?
Đường kính là khóa. Nó quyết định bao nhiêu chữ cái cuộn quanh thanh gậy trong một vòng, tức là số cột trong lưới. Một thanh gậy dày hơn cho nhiều cột hơn và một cách xáo trộn khác; một thanh gậy mỏng hơn cho ít hơn. Đường kính bằng một thì chẳng làm gì cả, nên phạm vi hữu ích bắt đầu từ hai, và cả người gửi lẫn người nhận đều phải dùng cùng một giá trị.
Tại sao scytale được gọi là một mật mã hoán vị?
Một mật mã hoán vị che giấu thông điệp bằng cách thay đổi thứ tự các ký tự của nó chứ không phải bằng cách thay thế những ký tự mới. Scytale làm đúng như vậy: nó giữ nguyên mọi chữ cái gốc nhưng chuyển nó đến một vị trí mới được quy định bởi việc quấn dải giấy quanh thanh gậy, nên kết quả là một sự sắp xếp lại của chính các chữ cái đó.
Mật mã scytale có thay đổi dấu cách và dấu câu không?
Có. Vì nó là một mật mã hoán vị, mọi ký tự đều tham gia, nên dấu cách, chữ số và dấu câu được sắp xếp lại cùng với các chữ cái chứ không bị giữ nguyên tại chỗ. Tổng số ký tự luôn giữ nguyên. Nhiều người dùng trong lịch sử loại bỏ dấu cách trước, nhưng công cụ này giữ lại chúng để việc giải mã khôi phục văn bản của bạn một cách chính xác.
Sự khác biệt giữa mật mã scytale và mật mã rào chắn (rail fence) là gì?
Cả hai đều là mật mã hoán vị sắp xếp lại các chữ cái bằng một con số nhỏ làm khóa, và cả hai đều có thể được vẽ thành một lưới. Scytale lấp đầy lưới theo các hàng và đọc xuống theo các cột, một phép hoán vị cột đơn thuần với các cột được giữ theo thứ tự tự nhiên. Rào chắn thay vào đó vạch một đường ziczac lên xuống qua một tập các thanh ray. Chúng tạo ra những cách xáo trộn khác nhau từ cùng một văn bản.
Làm thế nào để phá một mật mã scytale?
Không gian khóa rất nhỏ, nên bạn chỉ cần thử giải mã với từng đường kính hợp lý — hai, rồi ba, rồi bốn, và cứ thế — và giữ lấy kết quả nào đọc được. Việc tìm kiếm vét cạn này nhanh ngay cả khi làm bằng tay. Tần suất chữ cái bình thường kết hợp với văn bản bị xáo trộn, không đọc được là một gợi ý mạnh cho thấy một mật mã hoán vị như scytale đang được dùng.
Mật mã scytale có an toàn không?
Không. Với chỉ một con số nhỏ duy nhất làm khóa, nó có thể bị phá vét cạn trong vài giây, nên nó không cung cấp sự an toàn thực sự nào cho thông tin nhạy cảm. Tốt nhất nên hiểu 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ự, nên dùng các 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ữ văn bản 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ẻ.
Làm thế nào để viết một mật mã scytale bằng mã lập trình?
Sắp xếp thông điệp vào một lưới với mỗi cột tương ứng một chữ cái vừa quấn quanh thanh gậy, lấp đầy nó theo từng hàng. Để mã hóa, đọc lưới xuống lần lượt từng cột và ghép các cột lại. Để giải mã, tính chiều cao của mỗi cột từ độ dài bản mã và số cột, cắt bản mã thành các cột đó, và đọc chúng trở lại theo các hàng. Công cụ chạy trong trình duyệt này dùng đúng cách tiếp cận đó và xử lý đầy đủ Unicode theo từng điểm mã.

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ã Rail Fence

Mật mã hoán vị cột

Mật mã Caesar

Mật mã Vigenère

Mật mã Atbash

Mật mã Playfair