Mật mã Rail Fence
Mã hóa và giải mã mật mã Rail Fence, phép chuyển vị zigzag cổ điển viết thông điệp của bạn theo đường chéo băng qua một loạt hàng rào rồi đọc lại từng hàng một. Điều chỉnh số hàng rào và độ lệch rồi xem hàng rào hình thành trực tiếp. Mọi thứ đều chạy trong trình duyệt của bạn.
Hàng rào
Độ lệch
Hàng rào quy định zigzag dùng bao nhiêu hàng. Độ lệch dịch chuyển vị trí trên hàng rào nơi ký tự đầu tiên bắt đầu, để ở 0 cho mật mã chuẩn.
Nhập văn bản ở trên để xem kết quả rail fence tại đây.
Sơ đồ hàng rào zigzag
Ví dụ với từ WEAREDISCOVERED. Nhập văn bản của riêng bạn ở trên để xem nó trên hàng rào.
Cách sử dụng Mật mã Rail Fence
- 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 văn bản mã hóa rail fence, hoặc Giải mã để khôi phục thông điệp gốc từ văn bản mã hóa.
- 2
Đặt số hàng rào và độ lệch
Chọn zigzag dùng bao nhiêu hàng rào. Để độ lệch ở không cho mật mã chuẩn, hoặc thay đổi nó để khớp với một thông điệp đã được mã hóa kèm độ lệch. Để giải mã, hãy dùng đúng thiết lập đã dùng để mã hóa.
- 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. Mật mã chạy tự động khi bạn gõ, và sơ đồ hàng rào zigzag bên dưới cập nhật để cho thấy chính xác văn bản của bạn nằm trên các hàng rào ra sao.
- 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ơ đồ hàng rào để xem đường zigzag, rồi sao chép kết quả, tải 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 thiết lập và văn bản của bạn.
Tìm hiểu về mật mã Rail Fence
Mật mã Rail Fence là gì?
Mật mã Rail Fence, còn gọi là mật mã zigzag, là một mật mã chuyển vị cổ điển. Thay vì thay thế các chữ cái bằng những chữ cái khác như mật mã thay thế làm, nó giữ nguyên mọi chữ cái y hệt và chỉ đơn giản sắp xếp lại thứ tự của chúng. Thông điệp được viết theo đường zigzag lên xuống băng qua một loạt đường ngang tưởng tượng gọi là hàng rào, và văn bản mã hóa được tạo ra bằng cách đọc các hàng rào đó lần lượt nối tiếp nhau.
Vì bí mật duy nhất là số hàng rào, Rail Fence là một trong những mật mã dễ dùng bằng tay nhất. Nó từng được dùng làm mật mã chiến trường nhanh gọn trong Nội chiến Hoa Kỳ và vẫn là một mật mã quen thuộc trong các câu đố, phòng thoát hiểm, thử thách capture-the-flag và các bài học mật mã học nhập môn, nơi nó thường là ví dụ đầu tiên về phép chuyển vị.
Mật mã Rail Fence hoạt động như thế nào
Chọn một số hàng rào, chẳng hạn ba. Bắt đầu trên hàng rào trên cùng, bạn viết thông điệp mỗi ký tự một cột, di chuyển theo đường chéo xuống hàng rào dưới cùng, rồi nảy ngược lên trên cùng, rồi lại xuống, vạch thành một đường zigzag. Khi mọi ký tự đã được đặt, bạn đọc lại lưới từng hàng rào trọn vẹn một lần, từ hàng rào trên cùng xuống dưới cùng, rồi nối các mảnh đó lại với nhau để tạo thành văn bản mã hóa.
Mọi ký tự đều tham gia vào đường zigzag, nên khoảng trắng và dấu câu được di chuyển vòng quanh giống như các chữ cái thay vì được giữ nguyên vị trí. Số lượng ký tự không bao giờ thay đổi, đó chính là dấu hiệu đặc trưng của một mật mã chuyển vị: văn bản mã hóa luôn là một đảo chữ của thông điệp gốc.
Ví dụ thực hành
Lấy thông điệp WEAREDISCOVEREDFLEEATONCE với ba hàng rào. Viết nó theo đường zigzag đặt W, E, C, R, L, T, E lên hàng rào trên cùng; E, R, D, S, O, E, E, F, E, A, O, C lên hàng rào giữa; và A, I, V, D, E, N lên hàng rào dưới cùng. Đọc các hàng rào theo thứ tự cho ra WECRLTE, rồi ERDSOEEFEAOC, rồi AIVDEN.
Nối lại với nhau, văn bản mã hóa là WECRLTEERDSOEEFEAOCAIVDEN. Lưu ý rằng mọi chữ cái của bản gốc vẫn còn nguyên, chỉ bị xáo trộn thành một thứ tự mới, và kết quả có độ dài đúng bằng đầu vào.
Làm thế nào để giải mã một mật mã Rail Fence
Để giải mã, trước tiên bạn dựng lại hàng rào trống cho số hàng rào đã biết và cùng độ dài thông điệp, đánh dấu mỗi vị trí thuộc về hàng rào nào. Đếm các dấu đó cho bạn biết có bao nhiêu ký tự nằm trên mỗi hàng rào, nhờ vậy bạn có thể cắt văn bản mã hóa thành mảnh có kích thước đúng cho từng hàng rào.
Sau đó bạn đặt mỗi mảnh trở lại lên hàng rào của nó và đọc hàng rào theo thứ tự zigzag ban đầu, hàng rào trên-nảy-xuống-dưới-rồi-lên-lại, để khôi phục văn bản 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 số hàng rào và độ lệch đã dùng để mã hóa, rồi dán văn bản mã hóa.
Hàng rào, độ lệch và khóa
Số hàng rào chính là khóa của mật mã. Với một hàng rào thì không có zigzag và văn bản không đổi, nên khoảng hữu ích bắt đầu từ hai hàng rào. Khi số hàng rào tiến gần độ dài của thông điệp, đường zigzag trở nên phẳng dần và phép xáo trộn yếu đi, điều đó có nghĩa là chỉ những giá trị nằm khoảng giữa hai và một nửa độ dài thông điệp mới sắp xếp lại văn bản một cách có ý nghĩa.
Độ lệch tùy chọn dịch chuyển điểm bắt đầu của đường zigzag, như thể ký tự đầu tiên bắt đầu từ lưng chừng hàng rào thay vì trên hàng rào trên cùng. Để độ lệch ở không sẽ cho ra mật mã chuẩn theo sách giáo khoa; thay đổi nó tạo ra một biến thể liên quan, và phải đặt lại đúng độ lệch đó để giải mã. Một chu kỳ zigzag trọn vẹn trải dài 2 × (rails − 1) cột trước khi mẫu hình lặp lại.
Làm thế nào để phá mật mã Rail Fence
Rail Fence có không gian khóa rất nhỏ. Với một thông điệp có độ dài cho trước, chỉ có một nhúm số hàng rào hợp lý để thử, nên kẻ tấn công có thể đơn giản giải mã với hai hàng rào, rồi ba, rồi bốn, và cứ thế, và đọc bất kỳ kết quả nào có nghĩa. Cuộc tìm kiếm vét cạn này chỉ tốn vài khoảnh khắc ngay cả khi làm bằng tay và tức thì bằng máy tính.
Vì mật mã này là một phép chuyể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 văn bản mã hóa khớp chính xác với văn bản thông thường. Đó tự nó đã là một manh mối: văn bản có thống kê chữ cái bình thường nhưng đọc lên vô nghĩa là một dấu hiệu mạnh cho thấy một mật mã chuyển vị như Rail Fence đang được dùng.
Mật mã Rail Fence có an toàn không?
Không. Với quá ít khóa khả dĩ và một cuộc phá vét cạn nhanh chóng, Rail Fence không cung cấp sự bảo vệ thực sự nào cho thông tin cần giữ bí mật. Trong lịch sử nó được coi trọng vì tốc độ và sự đơn giản trên chiến trường hơn là vì độ mạnh, và đôi khi nó được kết hợp với một bước thay thế để tạo ra một mật mã ghép mạnh hơn.
Ngày nay giá trị của nó mang tính giáo dục và giải trí. Đó là một cách lý tưởng để dạy ý tưởng về phép chuyển vị, một cơ chế thú vị cho câu đố và trò chơi, và một mảnh 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 thế.
Câu hỏi thường gặp
Mật mã rail fence là gì?
Mật mã rail fence hoạt động như thế nào?
Bạn có thể cho một ví dụ rail fence không?
Làm thế nào để tôi giải mã một mật mã rail fence?
Số hàng rào có tác dụng gì?
Độ lệch trong mật mã rail fence là gì?
Mật mã rail fence có thay đổi khoảng trắng và dấu câu không?
Làm thế nào để bạn phá một mật mã rail fence?
Tại sao rail fence được gọi là một mật mã chuyển vị?
Mật mã rail fence có an toàn không?
Văn bản của tôi có được tải lên máy chủ không?
Làm thế nào để tôi viết một mật mã rail fence bằng mã lập trình?
Công cụ liên quan
Tiếp tục với những công cụ hữu ích này