Có những loại mật mã hoán vị nào? Sắp xếp lại tuyến đường

(Xem thêm )

Ảnh hưởng lớn Sự phát triển của mật mã bị ảnh hưởng bởi các công trình của nhà toán học người Mỹ Claude Shannon xuất hiện vào giữa thế kỷ 20. Những công trình này đã đặt nền móng cho lý thuyết thông tin, đồng thời phát triển một bộ máy toán học phục vụ nghiên cứu trong nhiều lĩnh vực khoa học liên quan đến thông tin. Hơn nữa, người ta thường chấp nhận rằng lý thuyết thông tin như một ngành khoa học ra đời vào năm 1948 sau khi xuất bản tác phẩm “Lý thuyết toán học về truyền thông” của K. Shannon.

Trong tác phẩm “Lý thuyết truyền thông trong các hệ thống bí mật”, Claude Shannon đã tóm tắt kinh nghiệm tích lũy trước đó trong quá trình phát triển mật mã. Hoá ra là ngay cả trong những mật mã rất phức tạp, những thành phần sau đây có thể được xác định là những thành phần điển hình: mật mã đơn giản Làm sao mật mã thay thế, mật mã hoán vị hoặc sự kết hợp của chúng.

Đặc điểm chính mà mật mã được phân loại là loại biến đổi được thực hiện trên bản rõ trong quá trình mã hóa. Nếu các đoạn của bản rõ (các chữ cái riêng lẻ hoặc nhóm chữ cái) được thay thế bằng một số phần tương đương của chúng trong bản mã thì mật mã tương ứng thuộc loại mật mã thay thế. Nếu các chữ cái của bản rõ trong quá trình mã hóa chỉ thay đổi vị trí với nhau thì chúng ta đang xử lý mật mã hoán vị. Để tăng độ tin cậy của mã hóa, văn bản mã hóa thu được bằng một mật mã nhất định có thể được mã hóa lại bằng mật mã khác.


Cơm. 6.1.

Tất cả các kết hợp có thể có của các loại mật mã khác nhau đều dẫn đến lớp mật mã thứ ba, thường được gọi là mật mã thành phần. Lưu ý rằng mật mã tổng hợp có thể không được bao gồm trong lớp mật mã thay thế hoặc lớp mật mã hoán vị (Hình 6.1).

6.3 Mật mã hoán vị

Mật mã hoán vị, như tên gọi của nó, biến đổi hoán vị của các chữ cái trong bản rõ. Một ví dụ điển hình Mật mã hoán vị là mật mã "Scital". Thường xuyên văn bản thô chia thành các phân đoạn chiều dài bằng nhau và mỗi phân đoạn được mã hóa độc lập. Ví dụ: giả sử độ dài của các đoạn bằng nhau và là ánh xạ một-một của tập hợp vào chính nó. Sau đó, mật mã hoán vị hoạt động như thế này: một đoạn văn bản gốc được chuyển đổi thành một đoạn văn bản mã hóa.

Một ví dụ kinh điển về mật mã như vậy là hệ thống sử dụng thẻ có lỗ - lưới tản nhiệt, khi dán lên một tờ giấy, chỉ để lại một số phần của nó. Khi được mã hóa, các chữ cái trong tin nhắn sẽ khớp với các lỗ này. Khi được giải mã, tin nhắn sẽ khớp với sơ đồ kích thước yêu cầu, sau đó áp dụng dấu băm, sau đó chỉ hiển thị các chữ cái của bản rõ.

Các tùy chọn mật mã hoán vị khác cũng có thể thực hiện được, chẳng hạn như mật mã cột và hoán vị kép.

6.3.1 Mã hóa hoán vị cột

Trong quá trình giải mã, các chữ cái của bản mã được viết thành cột theo chuỗi số khóa, sau đó văn bản gốc được đọc theo hàng. Để dễ nhớ phím hơn hãy sắp xếp lại các cột trong bảng theo từ khóa hoặc một cụm từ, tất cả các ký tự của nó đều là số được xác định theo thứ tự các chữ cái tương ứng trong bảng chữ cái.

Khi giải các bài toán giải mã các mật mã hoán vị, cần khôi phục lại thứ tự ban đầu của các chữ cái trong văn bản. Để thực hiện việc này, phân tích tính tương thích của ký tự được sử dụng mà bảng tương thích có thể trợ giúp (xem).

Bảng 6.1. Sự kết hợp của các chữ cái tiếng Nga
G VỚI Bên trái Ở bên phải G VỚI
3 97 l, d, k, t, v, r, n MỘT l, n, s, t, r, v, k, m 12 88
80 20 tôi, e, y, tôi, một, o B o, s, e, a, r, y 81 19
68 32 tôi, t, a, e, tôi, o TRONG o, a, i, s, s, n, l, r 60 40
78 22 r, y, a, i, e, o G o, a, p, l, tôi, v 69 31
72 28 r, tôi, y, a, tôi, e, o D e, a, i, o, n, y, p, v 68 32
19 81 m, tôi, l, d, t, r, n E n, t, r, s, l, v, m, tôi 12 88
83 17 r, e, i, a, y, o e, tôi, d, a, n 71 29
89 11 o, e, a, và 3 a, n, c, o, m, d 51 49
27 73 r, t, m, tôi, o, l, n s, n, c, i, e, m, k, h 25 75
55 45 b, v, e, o, a, i, s ĐẾN o, a, i, p, y, t, l, e 73 27
77 23 g, v, s, i, e, o, a L tôi, e, o, a, b, tôi, yu, y 75 25
80 20 tôi, s, a, tôi, e, o M tôi, e, o, y, a, n, p, s 73 27
55 45 d, b, n, o, a, tôi, e N o, a, i, e, s, n, y 80 20
11 89 r, p, k, v, t, n VỀ c, s, t, r, i, d, n, m 15 85
65 35 trong, với, y, a, tôi, e, o P o, p, e, a, y, tôi, l 68 32
55 45 tôi, k, t, a, p, o, e R a, e, o, tôi, u, tôi, s, n 80 20
69 31 s, t, v, a, e, i, o VỚI t, k, o, i, e, b, s, n 32 68
57 43 h, y, i, a, e, o, s T o, a, e, i, b, v, r, s 63 37
15 85 p, t, k, d, n, m, r bạn t, p, s, d, n, y, w 16 84
70 30 n, a, e, o, và F và, e, o, a, e, o, a 81 19
90 10 y, e, o, a, s, và X o, tôi, s, n, v, p, r 43 57
69 31 e, yu, n, a, và C tôi, e, a, s 93 7
82 18 e, a, y, tôi, o H e, tôi, t, n 66 34
67 33 b, y, s, e, o, a, i, v Sh e, tôi, n, a, o, l 68 32
84 16 e, b, a, tôi, y SCH e, tôi, một 97 3
0 100 m, r, t, s, b, c, n Y L, x, e, m, i, v, s, n 56 44
0 100 n, s, t, l b n, k, v, p, s, e, o và 24 76
14 86 s, s, m, l, d, t, r, n E n, t, r, s, k 0 100
58 42 b, o, a, tôi, l, y YU d, t, sch, c, n, p 11 89
43 57 o, n, r, l, a, i, s TÔI c, s, t, p, d, k, m, l 16 84

Khi phân tích tính tương thích của các chữ cái với nhau, cần lưu ý sự phụ thuộc của hình thức của các chữ cái trong văn bản thuần túy vào một số lượng đáng kể các chữ cái đứng trước. Để phân tích các mẫu này, khái niệm xác suất có điều kiện được sử dụng.

Câu hỏi về sự phụ thuộc của các chữ cái trong bảng chữ cái trong bản rõ vào các chữ cái trước đó đã được nhà toán học nổi tiếng người Nga A.A. Markov (1856-1922). Ông đã chứng minh rằng sự xuất hiện của các chữ cái trong bản rõ không thể được coi là độc lập với nhau. Về vấn đề này, A.A. Markov lưu ý một mẫu văn bản mở ổn định khác gắn liền với sự xen kẽ các nguyên âm và phụ âm. Ông đã tính toán tần suất xuất hiện của các nguyên âm lớn ( g, g), nguyên âm phụ âm ( g, s), phụ âm-nguyên âm ( s, g), phụ âm-phụ âm ( s, s) bằng văn bản tiếng Nga có độ dài ký tự. Kết quả tính toán được thể hiện ở bảng sau:

Bảng 6.2. Sự xen kẽ của nguyên âm và phụ âm
G VỚI Tổng cộng
G 6588 38310 44898
VỚI 38296 16806 55102

Ví dụ 6.2 Bản rõ, giữ khoảng cách giữa các từ, được ghi lại trong một bảng. Bắt đầu ở dòng đầu tiên, văn bản được viết từ trái sang phải, chuyển từ dòng này sang dòng khác, mã hóa bao gồm việc sắp xếp lại các cột. Tìm bản rõ.

Văn bản mật mã:

D TRONG Y T
G VỀ E R VỀ
bạn b D bạn B
M M TÔI Y R P

Giải pháp. Hãy gán số cho các cột theo thứ tự chúng xuất hiện. Nhiệm vụ của chúng ta là tìm thứ tự các cột trong đó văn bản sẽ có ý nghĩa.

Hãy lập một bảng:

1 2 3 4 5 6
1 X
2 X
3 X
4 X
5 X
6 X

Một ô (, ) trong bảng này có nghĩa là số cột theo sau số cột. Chúng tôi đánh dấu các trường hợp không thể thực hiện được bằng dấu "X".

Không thể kết hợp các cột 1, 2 và 5, 2 vì nguyên âm không thể xuất hiện trước dấu mềm. Trình tự các cột 2, 1 và 2, 5 cũng không thể xảy ra. Bây giờ, từ dòng thứ 3, 1, 5 và 5, 1 là không thể, vì УУ là một bigram không đặc trưng cho tiếng Nga. Tiếp theo, hai dấu cách liên tiếp không thể có trong văn bản, nghĩa là chúng ta phải đặt “X” vào các ô 3, 4 và 4, 3. Hãy quay lại dòng thứ ba. Nếu cột 2 theo sau cột 4, từ sẽ bắt đầu bằng dấu mềm. Ta điền dấu “X” vào ô 4, 2. Từ dòng đầu tiên: tổ hợp 4, 5 là không thể, tổ hợp 3, 5 cũng không được. Kết quả suy luận của chúng ta được trình bày trong bảng:

1 2 3 4 5 6
1 X X X
2 X X X
3 X X X
4 X X X X
5 X X X
6 X

Vì vậy, sau cột 6 thì nhất thiết phải theo sau cột 5. Nhưng khi ta đánh dấu “X” vào ô 6, 2 thì ta được: cột 2 nối tiếp cột 3. Tiếp theo, ta gạch bỏ 5, 1 và 2, 1, do đó, chúng ta cần kiểm tra các tùy chọn: ..6532... và...65432... . Nhưng (4, 3) đã bị gạch bỏ trước đó. Vì vậy, các tùy chọn còn lại cho việc sắp xếp các cột là:

  • 1, 6, 5, 3, 2, 4
  • 6, 5, 3, 2, 4, 1
  • 4, 1, 6, 5, 3, 2
  • 1, 4, 6, 5, 3, 2

Hãy viết 6, 5, 3, 2 cột liên tiếp:

6 5 3 2
T S - V.
R G
b Tại d b
P R TÔI tôi

Cố gắng đặt cột 1 trước cột 6 sẽ dẫn đến MP bigram ở hàng cuối cùng và kết hợp DTY ở hàng đầu tiên. Các lựa chọn còn lại là: 653241, 146532.

Trả lời: 653241 - key, văn bản đơn giản: you\_on\_the road\_be\_stubborn (dòng từ một bài hát nổi tiếng trong những năm 1970).

Hãy đưa ra một ví dụ khác về phân tích mật mã hoán vị cột.

Ví dụ 6.3 Giải mã: SVPOOSLUYYST\_EDPSOKOKAIZO

Giải pháp. Văn bản chứa 25 ký tự, cho phép bạn viết nó bằng Ma trận vuông 5x5. Được biết, việc mã hóa được thực hiện theo từng cột nên việc giải mã phải được thực hiện bằng cách thay đổi thứ tự của các cột.

Trong mã hóa hoán vị, các ký tự của văn bản được mã hóa được sắp xếp lại theo các quy tắc nhất định trong khối văn bản được mã hóa này.

Sắp xếp lại đơn giản

Một khối mã hóa có kích thước n cột, m hàng và một chuỗi khóa được chọn, được hình thành từ một chuỗi số tự nhiên 1,2,...,n bằng hoán vị ngẫu nhiên.

Việc mã hóa được thực hiện theo thứ tự sau:

    Văn bản được mã hóa được viết thành các dòng liên tiếp dưới các số thứ tự khóa, tạo thành khối mã hóa có kích thước n*m.

    Bản mã được viết thành các cột theo thứ tự tăng dần của số cột được chỉ định bởi chuỗi khóa.

    Điền vào khối mới vân vân.

Ví dụ: hãy mã hóa văn bản

LOAD_ORANGES_IN THÙNG

kích thước khối 8*3 và khóa 5-8-1-3-7-4-6-2.

Một bảng hoán vị đơn giản sẽ có dạng:

G R U Z I T E _

QUẢ CAM

Y _ B O C H K A H

Tin nhắn được mã hóa:

WEB_NHZLOESLGAYEIAICHRP_

Việc giải mã được thực hiện theo thứ tự sau:

    Một khối ký tự có kích thước n*m được trích xuất từ ​​bản mã.

    Khối này được chia thành n nhóm m ký tự.

    Các ký hiệu được ghi vào các cột của bảng hoán vị có số trùng với số nhóm trong khối. Văn bản được giải mã được đọc theo các hàng của bảng hoán vị.

    Một khối ký tự mới được phân bổ, v.v.

Hoán vị phức tạp theo bảng

Khi hoán vị giữa các bảng trở nên phức tạp hơn, các ô không sử dụng của bảng sẽ được đưa vào bảng hoán vị để tăng độ mạnh của mật mã. Số lượng và vị trí của các phần tử không được sử dụng là khóa mã hóa bổ sung.

Khi mã hóa văn bản, các ký tự văn bản không được ghi vào các phần tử không sử dụng và không có ký tự nào từ chúng được ghi vào văn bản mã hóa - chúng chỉ đơn giản là bị bỏ qua. Khi giải mã, các ký tự bản mã cũng không được đưa vào các phần tử không được sử dụng.

Để tăng thêm độ mạnh mật mã của mật mã, trong quá trình mã hóa, bạn có thể thay đổi khóa, kích thước của bảng hoán vị, số lượng và vị trí của các phần tử không được sử dụng theo một thuật toán nào đó và thuật toán này trở thành một khóa mật mã bổ sung.

Hoán vị phức tạp theo tuyến đường

Độ mạnh mã hóa cao có thể được đảm bảo bằng cách làm phức tạp các hoán vị dọc theo các tuyến đường kiểu Hamilton. Trong trường hợp này, các đỉnh của một siêu khối nhất định được sử dụng để ghi lại các ký tự của bản mã và các ký tự của bản mã được đọc dọc theo các tuyến đường Hamilton và một số tuyến đường khác nhau được sử dụng. Ví dụ: hãy xem xét mã hóa bằng các tuyến Hamilton với n=3.

Cấu trúc của siêu khối ba chiều được thể hiện trong Hình 6.

Hình 6. Siêu khối ba chiều

Số đỉnh của khối lập phương xác định trình tự chứa đầy các ký hiệu văn bản mã hóa khi tạo thành một khối. Nói chung, một siêu khối n chiều có n 2 đỉnh.

Hình 7. Các tuyến đường Hamilton

Chuỗi hoán vị ký hiệu trong khối được mã hóa cho sơ đồ đầu tiên là 5-6-2-1-3-4-8-7 và đối với sơ đồ thứ hai là 5-1-3-4-2-6-8- 7. Tương tự, bạn có thể nhận được chuỗi hoán vị cho các tuyến đường khác: 5-7-3-1-2-6-8-4, 5-6-8-7-3-1-2-4, 5-1-2 -4-3 -7-8-6, v.v.

Kích thước của siêu khối và số loại tuyến đường Hamilton được chọn tạo thành khóa bí mật của phương pháp.

Độ mạnh của hoán vị đơn giản được xác định duy nhất bởi kích thước của ma trận hoán vị được sử dụng. Ví dụ: khi sử dụng ma trận 16*16, số hoán vị có thể đạt tới 1,4E26. Không thể sắp xếp một số tùy chọn như vậy ngay cả khi sử dụng máy tính. Độ ổn định của các hoán vị phức tạp thậm chí còn cao hơn. Tuy nhiên, cần lưu ý rằng khi mã hóa bằng hoán vị, các đặc tính xác suất được bảo toàn hoàn toàn. văn bản nguồn, điều này làm cho việc phân tích mật mã trở nên dễ dàng hơn.

Mã hóa bằng phương pháp bình phương ma thuật.

Hình vuông ma thuật là những bảng hình vuông có các số tự nhiên liên tiếp được ghi trong các ô của chúng, bắt đầu từ 1, tổng các số này cho mỗi cột, hàng và đường chéo bằng nhau.

Khi mã hóa, các chữ cái của bản rõ phải được nhập vào ô vuông ma thuật theo cách đánh số các ô của nó. Để có được bản mã, hãy đọc nội dung của từng hàng trong bảng đã hoàn thành.

Hãy mã hóa cụm từ “MAGIC POWER” bằng cách sử dụng hình vuông ma thuật 4x4. Để làm điều này, chúng ta sẽ chọn một trong 880 tùy chọn cho các ô vuông ma thuật có kích thước nhất định (Hình 8a). Sau đó chúng ta nhập từng chữ cái của tin nhắn vào một ô riêng của bảng kèm theo số tương ứng với số thứ tự của chữ cái trong cụm từ gốc (Hình 8b). Khi đọc từng hàng trong bảng đã điền, chúng ta nhận được bản mã: “_GAIAESSCHYA_KIALM”.

Hình 8. Ví dụ về mã hóa bằng bình phương ma thuật

dọc theo các đường đi khác nhau của một hình hình học.

Ví dụ đơn giản nhất về hoán vị là hoán vị với khoảng thời gian cố định d. Trong phương pháp này, thông điệp được chia thành các khối theo d các ký tự và hoán vị tương tự được thực hiện trong mỗi khối. Quy tắc thực hiện hoán vị là một khóa và có thể được xác định bằng một số hoán vị của hoán vị đầu tiên. d số tự nhiên. Kết quả là bản thân các chữ cái của tin nhắn không thay đổi mà được truyền đi theo một thứ tự khác.

Ví dụ: với d=6, bạn có thể lấy 436215 làm khóa hoán vị. Điều này có nghĩa là trong mỗi khối gồm 6 ký tự, ký tự thứ tư lên vị trí đầu tiên, ký tự thứ ba lên vị trí thứ hai, ký tự thứ sáu lên vị trí thứ ba, v.v. Giả sử bạn cần mã hóa văn bản sau:

Số ký tự trong tin nhắn gốc là 24 nên tin nhắn phải được chia thành 4 khối. Kết quả mã hóa bằng hoán vị 436215 sẽ là thông điệp

OETET_TLSKDISHR_YAFNAVOI

Về mặt lý thuyết, nếu một khối bao gồm d ký tự, sau đó là số lượng hoán vị có thể có d!=1*2*...*(d-1)*d . Do đó, trong ví dụ cuối cùng d=6, số hoán vị là 6!=1*2*3*4*5*6=720. Do đó, nếu kẻ tấn công chặn được tin nhắn được mã hóa trong ví dụ trên, anh ta sẽ phải mất không quá 720 lần thử để giải quyết tin nhắn gốc (giả sử đối thủ đã biết kích thước khối).

Để tăng sức mạnh mật mã, hai hoặc nhiều hoán vị với các chu kỳ khác nhau có thể được áp dụng tuần tự cho tin nhắn được mã hóa.

Một ví dụ khác về phương pháp hoán vị là sắp xếp lại bảng. Trong phương pháp này, văn bản nguồn được viết dọc theo các hàng của bảng và đọc dọc theo các cột của cùng một bảng. Trình tự điền hàng và cột đọc có thể là bất kỳ thứ tự nào và được chỉ định bằng một khóa.

Hãy xem một ví dụ. Cho bảng mã hóa có 4 cột và 3 hàng (kích thước khối là 3*4=12 ký tự). Hãy mã hóa văn bản sau:

Số ký tự trong tin nhắn gốc là 24 nên tin nhắn phải được chia thành 2 khối. Hãy viết từng khối vào bảng riêng của nó theo từng dòng (Bảng 2.9).

Bảng 2.9. Mã hóa bằng phương pháp hoán vị bảng
1 khối
E T VỀ
T E ĐẾN VỚI
T D L
2 khối
TÔI Sh
F R VỀ TRONG
MỘT N TÔI

Sau đó, chúng ta sẽ đọc từng khối trong bảng một cách tuần tự theo từng cột:

ETTTE OKD SLYAFA RNSHOIVYA

Bạn có thể đọc các cột không tuần tự, nhưng, ví dụ, như thế này: thứ ba, thứ hai, thứ nhất, thứ tư:

OKDTE ETT SLSHOI RNYAFAIVA

Trong trường hợp này, thứ tự đọc các cột sẽ là chìa khóa.

Nếu như kích thước tin nhắn không phải là bội số của kích thước khối, bạn có thể bổ sung tin nhắn bằng bất kỳ ký hiệu nào không ảnh hưởng đến ý nghĩa, ví dụ: dấu cách. Tuy nhiên, điều này không được khuyến khích vì nó cung cấp cho kẻ thù, trong trường hợp chặn mật mã, thông tin về kích thước của bảng hoán vị được sử dụng (độ dài khối). Sau khi xác định độ dài khối, kẻ tấn công có thể tìm thấy độ dài khóa (số cột trong bảng) trong số các ước số độ dài khối.

Hãy xem cách mã hóa và giải mã một tin nhắn không phải là bội số của kích thước của bảng hoán vị. Hãy mã hóa từ

THAY ĐỔI

Số ký tự trong tin nhắn gốc là 9. Hãy viết tin nhắn vào bảng theo từng dòng (Bảng 2.10) và để trống ba ô cuối cùng.

Sau đó chúng ta sẽ đọc tuần tự từ bảng theo cột:

PMAEERNEC

Để giải mã, trước tiên hãy xác định số cột hoàn chỉnh, tức là số ký tự ở dòng cuối cùng. Vì điều này họ chia kích thước tin nhắn(trong ví dụ của chúng tôi – 9) theo số cột hoặc kích thước khóa (trong ví dụ – 4). Phần còn lại của phép chia sẽ là số cột đầy đủ: 9 mod 4 = 1. Do đó, trong ví dụ của chúng tôi có 1 cột đầy đủ và 3 cột ngắn. Bây giờ bạn có thể đặt các chữ cái trong tin nhắn vào đúng vị trí của chúng và giải mã tin nhắn. Vì khóa mã hóa là số 1234 (các cột được đọc tuần tự), nên khi giải mã, ba ký tự đầu tiên (PMA) được ghi vào cột đầu tiên của bảng hoán vị, hai ký tự tiếp theo (EE) - trong cột thứ hai, hai cái tiếp theo (RN) - ở phần thứ ba và hai cái cuối cùng (EK) - ở phần thứ tư. Sau khi điền vào bảng, chúng tôi đọc các hàng và nhận được Tin nhắn gốc THAY ĐỔI.

Có các phương pháp hoán vị khác có thể được thực hiện trong phần mềm và phần cứng. Ví dụ: khi truyền dữ liệu được ghi ở dạng nhị phân, sẽ thuận tiện hơn khi sử dụng bộ phận phần cứng xáo trộn theo một cách nào đó bằng cách nối dây thích hợp, các bit của thông điệp n-bit gốc. Vì vậy, nếu chúng ta lấy kích thước khối là 8 bit, chẳng hạn, chúng ta có thể sử dụng khối hoán vị như

Câu chuyện

Thời gian chính xác sự xuất hiện của mật mã hoán vị không được biết đến. Rất có thể những người ghi chép thời cổ đại đã sắp xếp lại các chữ cái trong tên vị vua của họ để che giấu tên thật của ông ta hoặc vì mục đích nghi lễ.

Một trong những thiết bị mã hóa lâu đời nhất mà chúng ta biết đến là Scytala. Người ta chắc chắn biết rằng kẻ lang thang đã được sử dụng trong cuộc chiến của Sparta chống lại Athens vào cuối thế kỷ thứ 5 trước Công nguyên. đ.

Tổ tiên của đảo chữ được coi là nhà thơ và nhà ngữ pháp Lycophron, sống ở Hy Lạp cổ đại vào thế kỷ thứ 3 trước Công nguyên đ. Như tác giả Byzantine John Tsets đã báo cáo, từ tên của Vua Ptolemy, ông đã sáng tác đảo chữ đầu tiên mà chúng ta biết đến: Ptolemaios - Aro Melitos, được dịch có nghĩa là “từ mật ong”, và từ tên của Nữ hoàng Arsinoe - là “ Kỷ nguyên ion"(màu tím của Hera).

Mật mã hoán vị đơn giản

Thông thường, khi mã hóa và giải mã một mật mã hoán vị đơn giản, bảng hoán vị được sử dụng:

1 (\displaystyle 1) 2 (\displaystyle 2) 3 (\displaystyle 3) ... n (\displaystyle n)
Tôi 1 (\displaystyle I_(1)) Tôi 2 (\displaystyle I_(2)) Tôi 3 (\displaystyle I_(3)) ... Tôi n (\displaystyle I_(n))

Dòng đầu tiên là vị trí của ký tự trong bản rõ, dòng thứ hai là vị trí của ký tự trong bản mã. Vì vậy, với độ dài tin nhắn n (\displaystyle n) ký tự tồn tại chính xác N! (\displaystyle n!\ ) phím.

Mật mã hoán vị tuyến đường

Cái gọi là hoán vị tuyến đường sử dụng một số hình hình học (phẳng hoặc ba chiều) đã trở nên phổ biến. Các phép biến đổi bao gồm thực tế là một đoạn văn bản gốc được viết thành một hình như vậy theo một quỹ đạo nhất định và được viết ra theo một quỹ đạo khác. Một ví dụ về mật mã này là mật mã Scytala.

Bảng mã hóa hoán vị định tuyến

Được sử dụng rộng rãi nhất là mật mã lộ trình hoán vị dựa trên hình chữ nhật (bảng). Ví dụ: bạn có thể viết tin nhắn vào một bảng hình chữ nhật dọc theo tuyến đường: theo chiều ngang, bắt đầu từ góc trên bên trái, luân phiên từ trái sang phải. Chúng ta sẽ sao chép tin nhắn dọc theo lộ trình: theo chiều dọc, bắt đầu từ góc trên bên phải, luân phiên từ trên xuống dưới.

P R tôi e
R tôi MỘT R w
R Tại T N
quần què P e R e
Với T MỘT N
V. ĐẾN

CRYPTOGRAM: vângoeomrnrniateairmuptkprrysv

Việc đảo ngược các bước được mô tả sẽ không gây ra bất kỳ khó khăn nào trong việc giải mã.

Mật mã hoán vị dọc

Một kiểu hoán vị tuyến đường - hoán vị dọc - đã trở nên phổ biến. Mật mã này cũng sử dụng một bảng hình chữ nhật trong đó thông điệp được viết thành hàng từ trái sang phải. Mật mã được viết theo chiều dọc, với các cột được chọn theo thứ tự được xác định bởi khóa.

VĂN BẢN XÓA: ví dụ về hoán vị tuyến đường

PHÍM: (3, 1, 4, 2, 5)

P R tôi e
R tôi MỘT R w
R Tại T N
quần què P e R e
Với T MỘT N
V. ĐẾN

MÃ HÓA: rmuptkmrnrnrnprrysviateaeshoeo

Đổ đầy dòng cuối cùng các bảng có các chữ cái “không hoạt động” là không thực tế, vì nhà giải mã nhận được mật mã này sẽ nhận được thông tin về độ dài của khóa số.

Mã "lưới quay"

Năm 1550, nhà toán học người Ý Gerolamo Cardano (1501-1576) đã đề xuất trong cuốn sách On Subtleties công nghệ mới mã hóa tin nhắn - mạng.

Ban đầu, mạng lưới Cardano là một tấm giấy nến có lỗ để viết các chữ cái, âm tiết hoặc từ của thông điệp. Sau đó, giấy nến được gỡ bỏ và nơi miễn phí chứa đầy văn bản ít nhiều có ý nghĩa. Phương pháp che giấu thông tin này đề cập đến kỹ thuật giấu tin.

Sau đó, mật mã "mạng quay" đã được đề xuất - mật mã chuyển vị (hình học) đầu tiên. Mặc dù có một sự khác biệt lớn Giữa đề xuất ban đầu của Cardano và mật mã mạng xoay, các phương pháp mã hóa dựa trên stencil thường được gọi là "Mạng Cardano".

Để mã hóa và giải mã bằng mật mã này, một khuôn tô có các ô bị cắt sẽ được tạo ra. Khi áp dụng giấy nến cho một bảng có cùng kích thước với bốn những cách có thể, các vết cắt của nó phải bao phủ hoàn toàn tất cả các ô của bảng đúng một lần.

Khi mã hóa, một khuôn tô được đặt trên bàn. Các chữ cái của bản rõ được viết vào các ô hiển thị dọc theo một tuyến đường nhất định. Tiếp theo, giấy nến được lật lại ba lần, mỗi lần thực hiện thao tác đổ đầy.

Mật mã được viết ra từ bảng kết quả dọc theo một tuyến đường cụ thể. Điều quan trọng là khuôn tô, đường khắc và thứ tự các lượt.

Phương pháp này mã hóa được sử dụng để truyền thông tin mật Những người cai trị Hà Lan vào những năm 1740. Trong Thế chiến thứ nhất, quân đội của Kaiser Wilhelm đã sử dụng mật mã "lưới quay". Người Đức đã sử dụng thanh kích cỡ khác nhau Tuy nhiên, chỉ trong một thời gian rất ngắn (bốn tháng), trước sự thất vọng lớn lao của các nhà giải mã người Pháp, những người mới bắt đầu chọn chìa khóa cho chúng. Đối với các lưới có kích thước khác nhau, người Pháp nghĩ ra tên mã riêng: Anna (25 chữ cái), Bertha (36 chữ cái), Dora (64 chữ cái) và Emile (81 chữ cái).

Aatbash, mật mã Scital, mạng Cardano - phương pháp đã biết giấu thông tin khỏi con mắt tò mò. Theo nghĩa cổ điển, mật mã hoán vị là một phép đảo chữ. Bản chất của nó nằm ở chỗ các chữ cái trong bản rõ thay đổi vị trí theo một quy tắc nhất định. Nói cách khác, khóa mật mã là thay đổi thứ tự các ký tự trong mở tin nhắn. Tuy nhiên, sự phụ thuộc của khóa vào độ dài của văn bản mã hóa đã tạo ra nhiều bất tiện cho việc sử dụng loại mật mã này. Nhưng những người đứng đầu thông minh đã tìm ra những giải pháp thú vị, xảo quyệt được mô tả trong bài viết.

Nhóm đảo ngược

Để làm quen với mã hóa bằng phương pháp hoán vị, chúng tôi sẽ đề cập đến một trong những ví dụ đơn giản nhất. Thuật toán của nó bao gồm việc chia một tin nhắn thành n khối, sau đó quay ngược lại và hoán đổi. Hãy xem một ví dụ.

  • "Ngày đang trôi qua và không khí tối tăm trên bầu trời."

Hãy chia thông điệp này thành các nhóm. TRONG trong trường hợp này n = 6.

  • "Denukh odili nebav ozd uhtemny."

Bây giờ chúng ta hãy mở rộng các nhóm, viết từng nhóm từ cuối.

  • "hunned vaben dzo methu yyn."

Hãy sắp xếp lại chúng theo một cách nhất định.

  • "ilido methu yyn huned vaben dzo."

Đối với một người thiếu hiểu biết, thông điệp ở dạng này chẳng khác gì rác rưởi. Tuy nhiên, tất nhiên, người nhận tin nhắn sẽ chịu trách nhiệm về thuật toán giải mã.

chèn giữa

Thuật toán mã hóa nhất định hoán vị phức tạp hơn một chút:

  1. Chia tin nhắn thành các nhóm có số ký tự chẵn.
  2. Chèn thêm các chữ cái vào giữa mỗi nhóm.

Hãy xem một ví dụ.

    "Ông ấy đã dẫn dắt các sinh vật trên trái đất vào giấc ngủ."

    "Zemn yetv ariu vodi lkosnu."

    "Zeamn yeabtv araiu voabdi lkoasnu."

Trong trường hợp này, các chữ cái xen kẽ “a” và “ab” được chèn vào giữa các nhóm. Các phần chèn có thể khác nhau, tùy thuộc vào số lượng khác nhau và đừng lặp lại chính mình. Ngoài ra, bạn có thể mở rộng từng nhóm, xáo trộn chúng, v.v.

Mã mật mã "Sandwich"

Một ví dụ thú vị và đơn giản khác về mã hóa hoán vị. Để sử dụng nó, bạn cần chia văn bản gốc thành 2 nửa và viết từng ký tự giữa các chữ cái của nửa kia. Hãy chỉ ra nó bằng một ví dụ.

  • "Từ lao động của họ; chỉ có tôi cô đơn, vô gia cư."

Chia thành hai nửa với số chữ cái bằng nhau.

  • "Tôi là người vô gia cư duy nhất không có sức lao động."

Bây giờ hãy viết nửa đầu của tin nhắn với khoảng cách lớn giữa các chữ cái.

  • "Về t i h t u do o v l i s h ."

Và trong những khoảng trống này, chúng ta sẽ đặt các chữ cái của nửa sau.

  • "Oyatoidhitnrbuedzodvolminshy."

Cuối cùng, hãy nhóm các chữ cái thành một loại từ (thao tác tùy chọn).

  • "Oyatoi dhi tnrbue dzodvol minshyy."

Rất dễ dàng để mã hóa văn bản bằng phương pháp này. Dòng kết quả vô nghĩa sẽ phải mất một thời gian để những người chưa quen biết có thể làm sáng tỏ.

Sắp xếp lại theo “lộ trình”

Tên này được đặt cho các mật mã được sử dụng rộng rãi vào thời cổ đại. Con đường xây dựng của họ là bất kỳ hình hình học. Bản rõ được viết thành hình như vậy theo một mẫu nhất định và được truy xuất theo nghịch đảo của nó. Ví dụ: một tùy chọn có thể là viết văn bản gốc vào bảng bằng cách sử dụng sơ đồ: một con rắn bò theo chiều kim đồng hồ qua các ô và một tin nhắn được mã hóa được soạn bằng cách viết các cột thành một hàng, từ đầu đến cuối. Đây cũng là mã hóa hoán vị.

Hãy xem một ví dụ về cách mã hóa văn bản. Hãy cố gắng tự mình xác định lộ trình ghi và lộ trình mã hóa.

    "Tôi đang chuẩn bị chịu đựng chiến tranh."

Chúng ta sẽ viết tin nhắn vào một bảng có kích thước 3x9 ô. Kích thước bảng có thể được xác định dựa trên độ dài tin nhắn hoặc một số bảng cố định có thể được sử dụng nhiều lần.

Chúng ta sẽ soạn mật mã bắt đầu từ bên phải góc trên cùng những cái bàn.

  • "Launlvosoyatovvygidtaerprzh."

Đảo ngược các bước được mô tả không khó. Chỉ cần làm ngược lại là đủ. Phương pháp này cực kỳ tiện lợi vì nó giúp bạn dễ dàng ghi nhớ quy trình mã hóa và giải mã. Nó cũng thú vị vì bất kỳ hình dạng nào cũng có thể được sử dụng làm mật mã. Ví dụ, một hình xoắn ốc.

Hoán vị dọc

Loại mật mã này cũng là một biến thể của hoán vị tuyến đường. Nó thú vị chủ yếu vì sự hiện diện của chìa khóa. Phương pháp này đã phổ biến rộng rãi trong quá khứ và cũng sử dụng bảng để mã hóa. Thông báo được viết vào bảng theo cách thông thường - từ trên xuống dưới và mật mã được viết theo chiều dọc, đồng thời duy trì thứ tự được chỉ định bởi khóa hoặc mật khẩu. Hãy xem một ví dụ về mã hóa như vậy.

    "Cả với con đường đau khổ và với lòng nhân ái"

Chúng tôi sử dụng một bảng có kích thước 4x8 ô và viết thông điệp của mình vào đó theo cách thông thường. Và để mã hóa, chúng tôi sử dụng khóa 85241673.

Bây giờ, sử dụng phím làm chỉ dẫn thứ tự, hãy viết các cột thành một dòng.

  • "Gusetmsntmayapoysaotmserinid."

Điều quan trọng cần lưu ý là với phương pháp mã hóa này, các ô trống trong bảng không được chứa đầy các chữ cái hoặc ký hiệu ngẫu nhiên, hy vọng rằng điều này sẽ làm phức tạp mật mã. Trên thực tế, ngược lại, hành động như vậy sẽ gợi ý cho kẻ thù. Bởi vì độ dài khóa sẽ bằng một trong các ước số độ dài tin nhắn.

Giải mã ngược hoán vị dọc

Hoán vị dọc rất thú vị vì việc giải mã một tin nhắn không chỉ đơn giản là tuân theo một thuật toán ngược lại. Bất cứ ai biết khóa đều biết có bao nhiêu cột trong bảng. Để giải mã một tin nhắn, bạn cần xác định số dòng dài và dòng ngắn trong bảng. Điều này sẽ cho phép bạn xác định điểm bắt đầu từ đâu để bắt đầu viết mật mã vào bảng để đọc bản rõ. Để thực hiện việc này, hãy chia độ dài tin nhắn cho độ dài khóa và lấy phần còn lại là 30/8=3 và 6.

Như vậy, chúng ta biết được rằng bảng có 6 cột dài và 2 cột ngắn, không chứa đầy chữ cái. Nhìn vào khóa, chúng ta thấy rằng quá trình mã hóa bắt đầu ở cột thứ 5 và nó phải dài. Vì vậy, chúng tôi thấy rằng 4 chữ cái đầu tiên của mật mã tương ứng với cột thứ năm của bảng. Bây giờ bạn có thể viết ra tất cả các chữ cái vào vị trí của chúng và đọc tin nhắn bí mật.

Loại này thuộc về cái gọi là mật mã stencil, nhưng cốt lõi của nó là mã hóa bằng phương pháp hoán vị ký hiệu. Chìa khóa là một khuôn tô có hình cái bàn với các lỗ được khoét trên đó. Trên thực tế, khuôn tô có thể có bất kỳ hình dạng nào, nhưng phổ biến nhất là hình vuông hoặc hình bàn.

Giấy nến Cardano được tạo bằng cách sử dụng theo nguyên tắc sau: các ô bị cắt không được chồng lên nhau khi xoay 90°. Nghĩa là, sau 4 lần xoay khuôn tô quanh trục của nó, các khe trong đó không được trùng nhau dù chỉ một lần.

Hãy sử dụng mạng Cardano đơn giản làm ví dụ (trong hình bên dưới).

Bằng cách sử dụng khuôn tô này, chúng tôi sẽ mã hóa cụm từ “Hỡi Muses, tôi sẽ gửi đơn kháng cáo cho bạn”.

- VỀ - M - -
bạn
Z Y
ĐẾN
TRONG MỘT
M

Chúng ta điền các chữ cái vào các ô của khuôn tô theo quy tắc: đầu tiên từ phải sang trái, sau đó từ trên xuống dưới. Khi hết ô, xoay khuôn tô 90° theo chiều kim đồng hồ. Bằng cách này, chúng tôi có được bảng sau.

Và lượt cuối cùng.

- - M - - -

Sau khi gộp 4 bảng thành một, chúng ta nhận được thông điệp được mã hóa cuối cùng.

TÔI VỀ M M G VỚI
TRONG VỀ bạn B VỀ R
G Z MỘT Z SCH Y
TRONG G ĐẾN G MỘT bạn
G TRONG G N G MỘT
M VỚI b b E G

Mặc dù tin nhắn có thể vẫn giữ nguyên nhưng sẽ thuận tiện hơn nếu nhận được một biểu đồ mật mã trông quen thuộc để truyền đi. Để thực hiện việc này, bạn có thể điền các chữ cái ngẫu nhiên vào các ô trống và viết các cột thành một dòng:

  • "YAVGVGM OOZGVS MUAKG MBZGN GOSCHAGE SRYUAG"

Để giải mã được thông điệp này, người nhận phải có một bản sao chính xác stencil được sử dụng để mã hóa. Mật mã này trong một khoảng thời gian dàiđược coi là khá ổn định. Nó cũng có nhiều biến thể. Ví dụ: sử dụng 4 lưới Cardano cùng một lúc, mỗi lưới xoay theo cách riêng.

Phân tích mật mã hoán vị

Tất cả mật mã hoán vị dễ bị tổn thương trước việc phân tích tần số. Đặc biệt trong trường hợp độ dài tin nhắn tương đương với độ dài khóa. Và thực tế này không thể thay đổi được bằng cách sử dụng lặp đi lặp lại các hoán vị, cho dù chúng có phức tạp đến đâu. Do đó, trong mật mã, chỉ những mật mã sử dụng nhiều cơ chế cùng một lúc, ngoài hoán vị, mới có thể ổn định.