được mã hóa LOOQLOTQWMUOAEFAEN được phân chia ra, người ta có thể xác định được tần suất xuất hiện của mỗi chữ cái và so sánh chúng với tần suất
xuất hiện của các chữ cái trong tiếng Anh: ‘O’ được sử dụng 4 lần trong bản tin mã hóa, L,Q,A và A xuất hiện mỗi chữ cái 2 lần. 9 chữ cái có tần suất xuất hiện
nhiều nhất trong tiếng Anh là E, T, A, O, N, I, S, R và H. Từ đó có thể suy đốn được bản tin mã hóa [23].
2.2.2.4. Các mã hốn vị
Ý tưởng đằng sau mật mã hoán vị là tạo ra một sự thay đổi vị trí của các chữ cái trong bản tin gốc, điều này sẽ làm xuất hiện bản tin mã hóa. Mã hóa
hốn vị khơng có tính bảo mật cao bởi vì chúng khơng thay đổi các chữ cái trong bản tin gốc hoặc thậm chí là xuất hiện nhiều lần, nhưng chúng có thể được
xây dựng để trở thành phương pháp mã hóa bảo mật hơn. Một ví dụ của mã hốn vị là mã rail fence.
•
Mã Rail fence: là một hoán vị theo cột hết sức đơn giản, lấy một chuỗi và chia nhỏ các chữ cái thành hai nhóm theo đường zigzag như dưới đây:
Bản tin gốc : WHEN-DRINKING-WATER-REMEMBER-ITS-SOURCE.
Zig : W E D I K N W T R E E B R T S U C Zag: H N R N I G A E R M M E I S O R E.
Bản tin mã hóa = zig+zag =
WEDIKNWTREEBRTSUCHNRNIGAERMMEIORE
•
Mật mã Scytale: Vào thế kỉ thứ 4 trước công nguyên, một thiết bị tên là Scytale được sử dụng để mã hóa các bản tin của quân đội và chính phủ
Spartan. Thiết bị bao gồm một trụ gỗ với một dải giấy cuộn quanh nó. Khi giấy được bỏ đi, nó đơn giản chỉ là một dãy các chữ cái hỗn độn, nhưng
trong khi cuốn xung quanh trụ gỗ, bản tin sẽ trở nên rõ ràng. Scytale lấy ý tưởng từ mã hóa rail fence và mở rộng nó bằng cách sử dụng một khóa có
độ dài xác định để hỗ trợ việc che giấu bản tin.
Ví dụ văn bản gốc là When drinking water, remember its source, độ dài là 34, ta chọn độ dài khóa là 4. Chia bản tin độ dài 34 ra các khóa độ dài 4, ta được
8 còn dư 2. Do đó ta làm tròn độ dài mỗi hàng của Scytale lên 9 và thêm vào bản tin 2 chữ cái Z.
41
W H
E N
D R
I N
K I
N G
W A
T E
R R
E M
E M
B E
R I
T S
S O
U R
C E
Z Z
Bảng 2.1 : Mã hóa Scytale
Bằng cách sắp xếp các chữ cái theo từng cột từ trái qua phải ta thu được : WIESHNMSEGEONWMUDABRRTECIERENRIZKRTZ.
Để giải mã, ta biết rằng kích thước của khóa là 4, do đó ta viết 4 chữ cái đầu tiên từ trên xuống dưới rồi đến 4 chữ cái tiếp theo. Đọc các chữ cái và bỏ đi
các chữ cái cuối cùng ta sẽ nhận được bản tin gốc.
Điều không thuận lợi cho phương pháp này là với những bản tin nhỏ, văn bản mã hóa có thể dễ dàng bị phát hiện bằng cách thử các giá trị khóa khác
nhau. Mã Rail fence khơng có tính thực tế cao, do việc thiết kế đơn giản và bất kỳ người nào cũng có thể bẻ gãy. Ngược lại mã Scytale thực tế lại rất hữu dụng
cho việc đưa những bản tin nhanh cần thiết để giải mã bằng tay. Vấn đề chính của cả hai loại mã này là các chữ cái khơng thay đổi, do đó đếm tần suất xuất
hiện của các chữ cái có thể giúp khôi phục bản tin gốc. [23]
2.2.2.5. Mật mã Hill
Một loại mật mã khác cũng liên quan đến việc chuyển đổi các chữ cái đó là mật mã Hill, được phát triển bởi nhà toán học Lester Hill vào năm 1929 [11].
Mật mã Hill là một ví dụ của mật mã khối. Mật mã khối là một loại mật mã mà các nhóm các chữ cái được mã hóa cùng với nhau theo các khối có độ dài bằng
nhau.
Để mã hóa một bản tin sử dụng mật mã Hill, người gửi và người nhận trước hết phải thống nhất về ma trận khóa A cỡ n× n. A phải là ma trận khả
nghịch. Bản tin gốc sau đó sẽ được mã hóa theo các khối có kích thước n. Ví dụ ta xét ma trận 2×2 và bản tin sẽ được mã hóa theo các khối 2 kí tự.
Ma trận A: , bản tin MISSISSIPI
42