Ai đã nghĩ ra mật mã hoán vị các chữ cái. Mật mã hoán vị dọc. Mật mã hoán vị đơn giản

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ã sắp xếp lại 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 thể tích). 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

Phổ biến nhất mã định tuyến 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ã sắp xếp lại theo chiều 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).

Khối mật mã

Bởi vì văn bản thô Vì thông điệp thường có độ dài tùy ý, đôi khi khá lớn nên nó được chia thành các khối nhỏ hơn có độ dài cố định. Văn bản của các khối này được mã hóa riêng biệt và độc lập với nhau.

Mật mã khối khóa đơn được chia thành 3 nhóm:

Mật mã hoán vị

Mật mã thay thế

Mật mã tổng hợp.

Khi sử dụng mật mã hoán vị, được thiết kế để loại bỏ ý nghĩa của thông báo bằng cách thay đổi thứ tự xen kẽ các ký hiệu của nó, các ký tự văn bản gốc được sắp xếp lại theo một quy tắc (khóa) nhất định trong một khối nhất định. Kết quả là, thứ tự xuất hiện bình thường và ý nghĩa của thông điệp thông tin bị phá vỡ. Trong trường hợp này, có sự phân biệt giữa mật mã hoán vị đơn giản và phức tạp.

Một mật mã hoán vị đơn giản sắp xếp lại một nhóm các chữ cái văn bản một cách thông thường theo khóa hoán vị đã chọn (quy tắc). Có rất nhiều ví dụ từ lịch sử về việc sử dụng các mật mã như vậy để mã hóa thủ công. Trong trường hợp này, các bảng đặc biệt thường được sử dụng, cung cấp các thủ tục mã hóa (khóa) đơn giản, theo đó các chữ cái trong tin nhắn được sắp xếp lại. Chìa khóa cho những bảng như vậy là kích thước của bảng, một cụm từ chỉ rõ một hoán vị hoặc các tính năng đặc biệt khác của bảng.

Một ví dụ về mật mã hoán vị đơn giản nhất được hiển thị trong Hình 2. 5.5.

Cơm. 5.5. Mật mã đơn giản nhất hoán vị.

Như có thể thấy từ hình. 5.5, để mã hóa thông báo “YUSTACE ALEX GẶP NGƯỜI ĐÀN ÔNG KẾT NỐI CỦA BẠN”, thông báo sau phải được viết dưới dạng bảng, chẳng hạn như 5 hàng và 6 cột. Nội dung tin nhắn được viết theo cột, không bao gồm dấu cách. Nếu cột cuối cùng không đầy đủ, nó sẽ được điền ngẫu nhiên bằng bất kỳ chữ cái nào. Để nhận được tin nhắn được mã hóa, văn bản gốc được đọc từng dòng (từ trái sang phải) và viết theo nhóm, ví dụ: 5 chữ số. Cuối cùng

quy trình này không liên quan đến quá trình mã hóa và chỉ được thực hiện để giúp việc viết ra văn bản không có bất kỳ ý nghĩa nào trở nên thuận tiện hơn. Để giải mã văn bản đó, bạn cần biết khóa, cụ thể là số hàng và cột trong bảng hay nói cách khác là kích thước của nó.

Một phương pháp mã hóa thực tế hơn, rất giống với phương pháp trước đó, được mô tả dưới đây. Nó chỉ khác ở chỗ các cột trong bảng được sắp xếp lại theo từ khóa, một cụm từ hoặc một tập hợp số có độ dài bằng một dòng trong bảng.

Khi mã hóa bằng phép hoán vị đơn giản, bản mã được viết thành các dòng liên tiếp bên dưới các ký hiệu từ khóa, không được lặp lại. Để đơn giản cho việc ghi nhớ khóa, người ta sử dụng một từ khóa, các chữ cái của nó được đánh số theo thứ tự vị trí của chúng trong bảng chữ cái, đặt quy tắc hoán vị. Bản mã được viết thành các cột theo trình tự trong đó các chữ cái của khóa nằm trong bảng chữ cái hoặc theo thứ tự các số trong chuỗi tự nhiên, nếu khóa là kỹ thuật số. Quá trình mã hóa sử dụng mật mã hoán vị đơn giản được minh họa trong hình. 5.6. Giả sử bạn cần mã hóa một tin nhắn thông tin



“HỌP SẼ ĐƯỢC TỔ CHỨC VÀO NGÀY MAI.”

Để mã hóa bản rõ này, chúng ta viết nó không có dấu cách (sự tham gia của phần sau vào quy trình mã hóa, do tính chất của chúng). Tân sô cao lặp lại, làm suy yếu đáng kể độ mạnh mật mã của mật mã) và chọn khóa mã hóa, ví dụ: 245 136. Theo khóa này, gồm 6 chữ số, chúng ta sẽ chia toàn bộ thông điệp thông tin thành các khối, mỗi khối sẽ chứa 6 chữ cái của văn bản. Sau khi chia thành các khối ta được 4 khối, mỗi khối có 6 chữ cái và 1 khối có 5 chữ cái. Trong những trường hợp như vậy, nhóm chữ cái cuối cùng tin nhắn gốcđược bổ sung ngẫu nhiên các ký hiệu khác nhau cho đến khi thu được một khối hoàn chỉnh. Trong trường hợp của chúng tôi, chỉ thiếu một chữ cái, vì vậy chúng tôi chọn bất kỳ chữ cái nào, ví dụ Ъ và thêm nó vào cuối khối thứ năm.

Cơm. 5.6. Mã hoán vị đơn giản

Tiếp theo, sử dụng khóa 245 136, các chữ cái của bản rõ gốc được sắp xếp lại. Ví dụ: chữ số đầu tiên của khóa là 2, biểu thị rằng trong khối mới chữ cái đầu tiên của bản mã sẽ là chữ cái thứ hai của khối văn bản gốc, chữ số thứ hai của khóa là 4, biểu thị chữ cái thứ hai của khóa. bản mã là chữ cái thứ tư trong khối văn bản gốc, v.v. d.

Cuối cùng, sau khi hoán vị tất cả các khối, chúng ta thu được bản mã. Đọc xong chúng ta thấy nó hoàn toàn không có bất kỳ nội dung ngữ nghĩa nào.

Để làm cho khóa dễ nhớ hơn, người ta thường sử dụng từ khóa. TRONG trong trường hợp này- đây là từ "ROOT". Trong đó, số 1 của phím tương ứng với chữ cái E, vì nó là chữ cái đầu tiên trong số các chữ cái của từ này được tìm thấy trong bảng chữ cái của chúng ta, số 2 - chữ K (vì lý do tương tự), v.v.

Thông báo tương tự có thể được mã hóa bằng cách sử dụng một bảng chẳng hạn như 5 hàng và 6 cột (độ dài của từ khóa). Văn bản nguồn được viết theo cột và tạo thành bảng (Hình 5.7). Từ khóa chỉ định quy tắc sắp xếp lại các cột. Nếu các chữ cái giống nhau xuất hiện trong một từ khóa, chúng sẽ được đánh số theo thứ tự từ trái sang phải. Bản mã thứ hai thu được, như có thể thấy trong hình. 5.7 hoàn toàn khác so với phiên bản đầu tiên.

Cơm. 5.7. Mã hóa bằng bảng

Nhược điểm chính của mật mã này là độ mạnh mật mã thấp. Bằng cách phân tích văn bản mã hóa (không có nhiều tùy chọn), bạn có thể dễ dàng xác định độ dài có thể có của từ mã được sử dụng trong quá trình mã hóa.

Để tăng cường độ mật mã của văn bản mã hóa thu được ở trên, bạn có thể thử mã hóa lại. Phương pháp mã hóa này được gọi là hoán vị kép. Bản chất của phương pháp này là như sau. Văn bản thu được sau lần mã hóa đầu tiên được mã hóa lần thứ hai bằng cách sử dụng bảng có kích thước khác (độ dài của hàng và cột được chọn khác nhau). Ngoài ra, bạn có thể sắp xếp lại các hàng trong một bảng và các cột trong một bảng khác. Bạn có thể điền vào bảng bằng văn bản nguồn những cách khác: ngoằn ngoèo, rắn, xoắn ốc, v.v.

Một mật mã hoán vị đơn giản sử dụng các thuộc tính bảng được gọi là bình phương ma thuật (Hình 5.8) đã được sử dụng từ thời Trung cổ. Hình vuông ma thuật là các bảng đều nhau trong đó tất cả các ô đều được lấp đầy số tự nhiên, bắt đầu từ 1. Hơn nữa, những con số này có tổng cho cùng một số cho mỗi cột, mỗi hàng và các đường chéo của hình vuông ma thuật (trong trường hợp của chúng tôi, đây là số 34). Văn bản nguồn - CHỜ GẶP BẠN JUSTACE, khi điền vào ô vuông ma thuật nó được nhập theo thứ tự các số tự nhiên, ví dụ số 1 được thay bằng 1 chữ cái văn bản nguồn(G), số 12 - 12 chữ cái của tin nhắn (C), v.v. Sau khi viết bản rõ, nội dung của bảng được đọc từng dòng, tạo ra bản mã có hoán vị các chữ cái.

Cơm. 5.8. Hình vuông ma thuật

Mật mã hoán vị

Phương pháp này bao gồm thực tế là 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 ký tự được mã hóa, tức là. các phép biến đổi chỉ dẫn đến thay đổi về thứ tự các ký tự trong tin nhắn gốc. Chúng ta hãy xem xét một số biến thể phổ biến nhất của phương pháp này - hoán vị đơn giản, phức tạp trong bảng và phức tạp về tuyến đường.

Mã hóa sắp xếp lại đơn giản (sắp xếp lại theo chiều dọc) được thực hiện như sau:

1) từ khóa có ký tự không lặp lại được chọn;

2) văn bản mã hóa được viết thành dòng liên tiếp dưới các ký hiệu từ khóa;

3) văn bản mã hóa được viết thành các cột theo trình tự trong đó các chữ cái của khóa nằm trong bảng chữ cái (hoặc theo thứ tự các số trong chuỗi tự nhiên, nếu khóa là kỹ thuật số).

Để minh họa, đây là ví dụ về mã hóa bằng cách sắp xếp lại tin nhắn đơn giản: “HÃY CẨN THẬN VỚI ĐẠI DIỆN CỦA BẠN CỦA CÔNG TY PHOENIX.” Trong trường hợp này chúng tôi áp dụng chìa khóa kỹ thuật số 5 – 8 – 1 – 3 – 7 – 4 – 6 – 2. Trong văn bản nguồn, một chữ cái được sử dụng thay cho dấu cách MỘT.

B bạn D b T E MỘT VỀ
VỚI T VỀ R VỀ N Y
MỘT VỚI MỘT P R E D VỚI
T MỘT TRONG T E L E
M MỘT F R M Y MỘT
F E N ĐẾN VỚI MỘT MỘT

Bằng cách viết văn bản theo cột và nhóm các ký tự theo năm, chúng ta sẽ có được văn bản được mã hóa ở dạng:

DO VF NOYSE LRP IIEZH EEMSB S TMF NDLY TOPT RKUTS A E .

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

1) đếm số ký tự trong bản mã và chia cho số ký tự trong khóa;

2) viết từ khóa và dưới các dấu hiệu của nó theo trình tự thích hợp, viết các ký hiệu văn bản mã hóa với số lượng quy định ở trên;

3) đọc văn bản nguồn theo các hàng trong bảng.

Số lượng khóa không quá m!, trong đó m là số cột của bảng.

Điểm yếu của mã hóa bằng hoán vị đơn giản là do độ dài văn bản được mã hóa lớn, các mẫu ký hiệu khóa có thể xuất hiện trong văn bản mã hóa. Để loại bỏ nhược điểm này, bạn có thể thay đổi khóa sau khi mã hóa một số ký tự nhất định. Bằng cách thay đổi khóa đủ thường xuyên, độ mạnh của mã hóa có thể được tăng lên đáng kể. Tuy nhiên, đồng thời, việc tổ chức quá trình mã hóa và giải mã trở nên phức tạp hơn.

Để lấy và ghi nhớ một phím số, có Các phương pháp khác nhau. Một trong những cách phổ biến nhất là gán số cho các chữ cái theo thứ tự ABC bức thư Hãy lấy từ VĨNH VIỄN làm ví dụ. Chữ A hiện diện trong đó nhận được vị trí số 1. Nếu một chữ cái xuất hiện nhiều lần thì số lần xuất hiện của nó được đánh số tuần tự từ trái sang phải. Do đó, lần xuất hiện thứ hai của chữ A sẽ nhận được số 2. Trong từ này không có chữ B thì chữ B nhận số 3, v.v.:

P E R E VỚI T MỘT N VỀ TRONG ĐẾN MỘT

Làm cho việc sắp xếp lại bảng trở nên khó khăn hơn Thực tế là để ghi lại các ký tự của văn bản được mã hóa, một bảng đặc biệt được sử dụng, trong đó một số yếu tố phức tạp được đưa vào. Điều phức tạp là một số ô bảng nhất định không được sử dụng (chúng trống trong hình). Số lượng và vị trí của các phần tử không được sử dụng là khóa bổ sung mã hóa. Văn bản được mã hóa theo khối m x n – S phần tử (m xnkích thước bảng, s– số phần tử không sử dụng) được ghi vào bảng. Mã hóa sâu hơn tương tự như hoán vị đơn giản.

B bạn D b T E MỘT VỀ VỚI
T VỀ R VỀ N Y MỘT
VỚI MỘT VỀ R E D VỚI T MỘT
TRONG T E L E M MỘT F
R M Y MỘT F E N
ĐẾN VỚI MỘT MỘT MỘT MỘT MỘT MỘT MỘT

Văn bản được mã hóa sẽ trông như thế này: DOPR BSWIK RRTM OY N ENSEF UT I SS AF I HOE EE T ME TJ DL.

Trong quá trình giải mã, các ký tự bản mã được ghi vào các cột trong bảng theo trình tự các ký tự chính, bỏ qua các phần tử không sử dụng. Văn bản nguồn được đọc từng dòng. Bằng cách thay đổi kích thước của bảng, trình tự các ký tự chính cũng như số lượng và vị trí của các phần tử không được sử dụng, bạn có thể đạt được độ mạnh cần thiết của văn bản mã hóa.

Một lựa chọn khác là mật mã "Lưới quay" . dành cho các tin nhắn có độ dài 4mk. Lấy một khuôn tô có kích thước 2m*2k ô, cắt m*k ô sao cho khi dán lên một tờ giấy cùng khổ 4 những cách khác(xoay 90°) các phần cắt của nó bao phủ hoàn toàn toàn bộ diện tích của tờ giấy. Các chữ cái của tin nhắn được nhập tuần tự vào các phần cắt stencil theo từng dòng, trong mỗi dòng từ trái sang phải, cho từng vị trí trong số 4 vị trí có thể có của nó trước theo cách quy định. Số lượng giấy nến có thể có, tức là số lượng khóa trong mật mã này là 4 mk (với kích thước khuôn tô là 8 * 8, số lượng tùy chọn vượt quá 4 tỷ).

Có thể đạt được cường độ mã hóa rất cao việc sắp xếp lại phức tạp dọc theo các tuyến đường giống như Hamiltonian. 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 và ba tuyến đường được thể hiện trong hình. 7 và một ví dụ về mã hóa ở Hình 2. số 8.

Mật mã thay thế (thay thế) dựa trên một phép toán đại số gọi là thay thế. Hoán vị là ánh xạ một-một của tập hữu hạn M lên chính nó. Số N phần tử của tập hợp được gọi là độ thay thế. Số n số thực sự được di chuyển bằng phép thay thế được gọi là độ dài của chu trình thay thế.

Mật mã hoán vị là một mật mã, sự chuyển đổi từ đó được thay đổi thứ tự xuất hiện duy nhất các ký tự của văn bản nguồn nhưng không tự thay đổi chúng.

Điểm yếu của mật mã thay thế. Nếu ở mở tin nhắn Nếu một ký hiệu xuất hiện thường xuyên thì ký hiệu tương ứng sẽ xuất hiện với cùng tần suất trong tin nhắn được mã hóa. Đối với số lượng lớn văn bản, điều này dẫn đến việc phân tích mật mã thành công. Vì vậy, không thể mã hóa các tin nhắn đủ dài bằng một khóa.

Mạng (như một phần tử của mã hóa) - bất kỳ mật mã khối nào cũng là sự kết hợp của hai sơ đồ đầu tiên. Sử dụng khái niệm “mạng” trong chặn mã hóa bao gồm sự lặp lại lặp đi lặp lại của các hoạt động ban đầu (sự lặp lại là các chu kỳ hoặc vòng và bản thân các hoạt động là các lớp). Một số lớp có thể chứa các khóa. Điều này cho phép:

  1. Làm cho mật mã trở nên dễ phức tạp (bằng cách tăng số vòng)
  2. Cắt theo kích thước Mã chương trình
  3. Thống nhất công thức mã hóa thuật toán

Mạng Feisil (Feistel) là phương pháp xây dựng chu trình mã hóa theo thuật toán mã hóa lặp dựa trên thanh ghi dịch, có chức năng phản hồi tùy thuộc vào khóa tròn (số vòng tối ưu là từ 8 đến 32)

DES – Tiêu chuẩn mã hóa liên bang Hoa Kỳ (1997-2001).

Kiến trúc – mạng Faisil cân bằng, cổ điển với các hoán vị bit đầu tiên và cuối cùng nhìn chung. Kích thước khóa là 56 bit. Dựa vào nó - tiêu chuẩn quốc tế ISO 8372-87. Thuật toán được thiết kế để mã hóa dữ liệu theo khối 64 bit.

DES là sự kết hợp của hai phương pháp chính:

  1. Thay thế
  2. Sắp xếp lại.

Một sự kết hợp duy nhất của hai phương pháp này được áp dụng cho văn bản.



DES có 16 vòng, nghĩa là sự kết hợp các phương pháp tương tự được áp dụng cho bản rõ 16 lần.

Vòng khóa được áp dụng bằng thao tác XOR

Văn bản nguồn=>Hoán vị ban đầu=>Mã hóa * 16(<=Ключ) =>Hoán vị cuối cùng => bản mã

Mục đích của hoán vị ban đầu là phân bố đều các bit liền kề trên các khối.

Chức năng tương tự có thể được sử dụng để mã hóa và giải mã, nhưng các khóa được sử dụng theo thứ tự ngược lại.

DES cung cấp 4 loại công việc:

  1. Bảng mật mã điện tử ECB. Bản rõ được xử lý theo khối 64 bit, được mã hóa bằng một khóa
  2. CBC - chuỗi khối. Loại bỏ nhược điểm của chế độ đầu tiên. Giá trị đầu vào của thuật toán mã hóa được đặt bằng chênh lệch XOR giữa khối văn bản gốc hiện tại và khối văn bản mã hóa thu được ở bước trước. Như vậy, tất cả các khối của văn bản gốc đều được kết nối (text=>ciphertext=>XOR=>text=>ciphertext)
  3. CFB – phản hồi bản mã. Thuật toán được chuyển đổi thành mật mã luồng, nghĩa là mỗi ký tự có thể được mã hóa và truyền ngay lập tức đến người nhận
  4. OFB – phản hồi đầu ra. Một phần của bản mã được đưa vào thanh ghi dịch. Đối với mỗi phiên mã hóa, trạng thái ban đầu mới của thanh ghi sẽ được sử dụng.

Bốn chế độ được cho là đủ để sử dụng DES trong hầu hết mọi lĩnh vực mà thuật toán phù hợp

Việc triển khai phần cứng của thuật toán trên một chip riêng biệt giúp có thể đạt được tốc độ cao mã hóa với kích thước thiết bị nhỏ.

AES là tiêu chuẩn mã hóa liên bang Hoa Kỳ hiện đang được sử dụng.

AES là một tiêu chuẩn mã hóa tiên tiến.

Yêu cầu:

  1. Mật mã phải là khối
  2. Mật mã phải có độ dài khối 128 bit
  3. Mật mã phải hỗ trợ các khóa có độ dài 128, 192, 256 bit

Thuật toán này thật độc đáo khóa mật mã, vì nó không sử dụng mạng Feishtel để chuyển đổi tiền điện tử.

Thuật toán biểu diễn từng khối dữ liệu được mã hóa dưới dạng mảng hai chiều byte có kích thước 4x4, 4x6 hoặc 4x8 tùy thuộc vào độ dài khối đã đặt.

Thuật toán bao gồm một số vòng nhất định (từ 10 đến 14 - điều này phụ thuộc vào kích thước khối và độ dài khóa).

GOST 28147089 – Tiêu chuẩn của Nga về mã hóa dữ liệu và bảo vệ dữ liệu.

Thuật toán được thiết kế cho phần cứng và triển khai phần mềm, đáp ứng các yêu cầu mật mã cần thiết và không áp đặt các hạn chế về mức độ bí mật của thông tin được bảo vệ.

Thuật toán thực hiện mã hóa các khối dữ liệu 64 bit bằng khóa 256 bit bao gồm 8 khóa con 32 bit.

Trên mọi vòng thứ iĐầu nối K i được sử dụng.

Thuật toán mã hóa GOST 28147-89 có những ưu điểm của các thuật toán khác dành cho hệ thống đối xứng và vượt trội hơn chúng về khả năng của chúng.

Ở mỗi vòng thứ i của thuật toán GOST, hoạt động sau đây:

L i =R i -1 , R i =L i -1 (cộng vòng tròn)f(R i -1 , K i)

Sau khi hoàn thành 32 thao tác này, việc thực hiện thuật toán mã hóa sẽ hoàn tất.

Ưu điểm của GOST là có khả năng bảo vệ chống lại việc áp đặt dữ liệu sai (chế độ chèn giả), cũng như chu trình mã hóa giống nhau ở cả 4 chế độ (thuật toán) của GOST.

Độ mạnh mật mã cao được đảm bảo nhờ độ dài khóa lớn (256 bit) và 32 vòng chuyển đổi.

Tiêu chuẩn bao gồm các chế độ (thuật toán):

  1. Chế độ thay thế dễ dàng
  2. Chế độ gamma
  3. Chế độ gamma với nhận xét
  4. Chế độ tạo mô phỏng chèn

Thuật toán mã hóa bất đối xứng.

Trong các thuật toán mã hóa bất đối xứng (hoặc mật mã với khóa công khai) một khóa (công khai) được sử dụng cho thông tin được mã hóa và khóa khác (bí mật) được sử dụng để giải mã

Các khóa này khác nhau và không thể bắt nguồn từ nhau.

Sơ đồ trao đổi thông tin:

  1. Người nhận tính toán khóa công khai và khóa bí mật, khóa bí mật được giữ bí mật nhưng khóa công khai được cung cấp (thông báo cho người gửi, một nhóm người dùng mạng, công bố)
  2. Người gửi sử dụng khóa chung của người nhận để mã hóa tin nhắn gửi đến người nhận
  3. Người nhận nhận được tin nhắn và giải mã nó bằng khóa riêng của mình

Cách sử dụng phương pháp bất đối xứng mã hóa

Việc sử dụng các mật mã như vậy trở nên khả thi nhờ K. Shannon, người đã đề xuất xây dựng một mật mã theo cách mà lời giải của nó tương đương với việc giải vấn đề toán học, đòi hỏi khối lượng tính toán vượt quá khả năng của máy tính hiện đại(ví dụ: các phép tính với số nguyên tố lớn và tích của chúng; tìm giá trị của tích P=x*y)

Hệ thống mã hóa dữ liệu RSA.

Phương pháp phát triển nhất hiện nay bảo vệ mật mã thông tin có khóa đã biết là RSA, được đặt tên theo các chữ cái đầu trong tên của những người phát minh ra nó (Rivest, Shamir, Adleman)

Để sử dụng Thuật toán RSA, trước tiên bạn phải tạo khóa chung và khóa riêng bằng cách chạy bước tiếp theo:

  1. Chọn hai cái rất lớn số nguyên tố p và q và xác định n là kết quả của việc nhân p với q (n=p*q)
  2. Chọn lớn số ngẫu nhiên d. Số này phải nguyên tố cùng nhau với m, là kết quả của phép nhân (p-1)(q-1)
  3. Xác định một số e mà hệ thức sau đây là đúng (e*d)mod(m)=1 hoặc e=(1mod(m))/d
  4. Khóa công khai sẽ được số e, n, và khóa bí mật là số d, n

Việc tạo khóa được tô sáng màu đỏ.

Hệ thống mật mã bất đối xứng dựa trên các đường cong elip.

Trên cơ sở các đường cong elip E, có thể thực hiện không chỉ các thuật toán mật mã mã hóa bất đối xứng, mà còn là sự phát triển chung chìa khoá bí mậtđể mã hóa đối xứng.

Các hệ thống mật mã dựa trên các đường cong elip cho phép sử dụng đáng kể kích thước nhỏ hơn khóa so với các thuật toán mã hóa khác trong khi vẫn duy trì cùng mức độ mạnh mã hóa.

Đối với các triển khai ở trên, các đường cong elip trên trường Galois GF(p) với số hữu hạn p gồm các phần tử thuộc hai loại được sử dụng:

  1. Đường cong elip trên trường hữu hạn loại E(GF(p)), trong đó p là một số nguyên tố
  2. Đường cong elip trên trường hữu hạn loại E(GF(2m)), trong đó p=2m

Ví dụ: Thuật toán mã hóa bất đối xứng dựa trên các đường cong elip ECES (Lược đồ mã hóa đường cong Elliptic)

Thuật toán ElGamal.

Hệ thống ElGamal là một hệ thống mật mã khóa công khai dựa trên bài toán logarit. Thuật toán nàyđược sử dụng cho cả mã hóa và chữ ký số.

Tập hợp các tham số hệ thống bao gồm số nguyên tố p và số nguyên g, lũy thừa của nó, modulo p, tạo ra con số lớn phần tử Z p

Các phương pháp thay thế.

Mật mã thay thế thay thế một số ký tự bằng các ký tự khác nhưng vẫn giữ nguyên thứ tự của chúng trong tin nhắn.

4 loại thay thế (thay thế):

  1. Đơn chữ cái. Công thức = Y i =k 1 X i +k 2 (modN), trong đó Y i là ký tự thứ i của bảng chữ cái, k 1, k 2 là các hằng số, X i là ký tự thứ i của bản rõ, N là ký tự thứ i của bản rõ độ dài của bảng chữ cái được sử dụng.

Ví dụ. Thay thế - bản rõ, Khóa - Khóa

  1. Thay thế đồng âm - thay thế một ký tự văn bản gốc khớp với một số ký tự văn bản mã hóa. Phương pháp này được sử dụng để làm biến dạng tính chất thống kê mật mã. Thay thế bảng được sử dụng. Các giá trị được sử dụng lần lượt từ cột.
  1. Thay thế nhiều bảng chữ cái là việc sử dụng nhiều bảng chữ cái. Bảng chữ cái thay đổi ở mỗi bước mã hóa. Việc thay thế từng bước các chữ cái theo bảng được sử dụng.
  2. Thay thế đa giác - được hình thành từ một bảng chữ cái bằng các quy tắc đặc biệt. Mật mã được đặt trong một ma trận và bản rõ được chia thành các cặp ký hiệu XiXi+1

Mật mã hoán vị.

Sự khác biệt giữa mật mã hoán vị là chỉ thay đổi thứ tự các ký tự của văn bản tương tự, nhưng bản thân chúng không thay đổi.

Ví dụ. Dòng chữ "Nạp cam vào thùng Anh em Karamazov"

Bản mã “Ptr_aezguionl_byseit_kramchaizryamaak_a__v_____oi”

Sắp xếp lại đơn giản mà không cần chìa khóa là một trong những cách tốt nhất phương pháp đơn giản mã hóa. Các chữ cái được trộn theo một số quy tắc, nhưng các quy tắc này có thể khác nhau - cả đơn giản và phức tạp.

Chuyển vị

Giả sử chúng ta có một cụm từ: “Có THỂ, NHƯNG KHÔNG”. Và chúng tôi muốn mã hóa nó. Cách dễ nhất là viết ngược toàn bộ cụm từ: “Anh ấy thật hung ác, ONJOM”. Bạn có thể để nguyên thứ tự các từ trong câu nhưng viết ngược lại từng từ: "ONJOM, Anh ấy thật hung ác". Hoặc bạn có thể hoán đổi vị trí cho mỗi hai chữ cái: "OMNZ,UNENLYAZ". Điều này được gọi là "chuyển vị" hoặc sắp xếp lại đơn giảnở dạng tinh khiết nhất của nó.

Chuyển đổi

Mật mã này sử dụng một bảng. Thông điệp được viết vào bảng theo hàng và đọc theo cột để tạo thành văn bản mã hóa. Chà, hoặc ngược lại - nó được viết theo cột và đọc theo hàng. Chúng ta dường như lật ngược cái bàn theo đường chéo của nó, đi qua góc trên bên trái và góc dưới bên phải. Các nhà toán học gọi phương pháp này là đảo ngược chuyển vị bảng.

Để mã hóa bạn cần vẽ kích thước phù hợp bảng, nhập văn bản được mã hóa vào đó theo từng dòng, sau đó viết nó ra thành các cột trong một dòng. Để giải mã, bạn chỉ cần cung cấp khóa mã hóa ở dạng kích thước bảng. Hình ảnh dưới đây là từ ABCDEFGHIJKL hóa ra ADGJBEHKCFIL. Đồng ý rằng, nếu không có hình ảnh thì gần như không thể hiểu được đó là một bảng chữ cái.

Vì vậy, ví dụ, chúng ta cần mã hóa văn bản “Tôi đã dựng lên một tượng đài cho chính mình, không phải do tay ai làm ra; con đường của người dân đến đó sẽ không bị che khuất.” . Nó có 72 ký tự. 72 là một số tiện lợi, nó chia hết cho 2,4,6,8,12,18,24,36 nên các bạn có thể dùng bảng 2x36, 3x24, 4x18, 6x12, 8x9, 9x8, 12x6, 18x4, 24x3, 36x2 :). Chúng tôi quyết định khóa (kích thước bảng), nhập văn bản theo hàng và sau đó viết lại thành cột.

Hình trên hiển thị các tùy chọn với các bảng 9x8, 8x9, 4x18 và 18x4. Đối với tùy chọn thứ ba (bảng 4×18), bạn sẽ nhận được văn bản sau:

“Yamievvnkoy u atr yakboieor, n zs oyaopt ezgrtn enatnd pans d uvykmeryoanta (4:18)»

Trong trường hợp này, tôi lấy văn bản “nguyên trạng”, tức là có khoảng cách giữa các từ và dấu chấm câu. Nhưng nếu văn bản có ý nghĩa thì không được sử dụng dấu chấm câu và dấu cách giữa các từ.

Hàng rào

Một phiên bản chuyển vị đơn giản (với bảng hai dòng) là “hàng rào cọc”. “Về thiết kế,” nó giống như một hàng rào bàn cờ.

Đây là một phương pháp mã hóa rất đơn giản, thường được học sinh sử dụng. Cụm từ được viết thành hai dòng: chữ lẻ viết ở trên, chữ chẵn ở dưới. Sau đó, bạn cần phải viết ra hợp đồng trước dòng trên cùng, sau đó là cái dưới cùng. Việc mã hóa này có thể được thực hiện dễ dàng trong đầu bạn mà không cần phải viết ra hai dòng trước.

“Tôi đã dựng lên một tượng đài cho chính mình, không phải do tay ai làm ra” chuyển thành “YAYANKEEODINRKTONY PMTISBVZVGEUOVRY.”

Skitala

Được biết, vào thế kỷ thứ 5 trước Công nguyên, những người cai trị Sparta, quốc gia hiếu chiến nhất trong số các quốc gia Hy Lạp, đã có một hệ thống liên lạc quân sự bí mật phát triển tốt và mã hóa tin nhắn của họ bằng cách sử dụng “skalta”, thiết bị mật mã đơn giản đầu tiên thực hiện phương pháp hoán vị đơn giản.

Mã hóa được thực hiện như sau. Một dải giấy da được quấn theo hình xoắn ốc (xoay vòng) trên một thanh hình trụ, được gọi là “skitala” và một số dòng văn bản thông báo được viết trên đó dọc theo thanh. Sau đó, một dải giấy da có chữ viết được lấy ra khỏi thanh. Các chữ cái trên dải này hóa ra được đặt một cách hỗn loạn. Để khôi phục văn bản, cần phải có một thanh lang thang có cùng đường kính.

Về cơ bản, scytale là một chiếc bàn phẳng thông thường được quấn quanh một hình trụ.

Người ta tin rằng tác giả của phương pháp phá mật mã của kẻ lang thang là Aristotle, người đã quấn băng dính trên một cây gậy hình nón cho đến khi xuất hiện những đoạn văn bản có thể đọc được. Ban đầu, thiết bị cổ xưa được sử dụng để lưu trữ các công thức nấu ăn bí mật. Bây giờ, thay vì một dải giấy da hẹp, bạn có thể sử dụng ngoằn ngoèo, và bút chì sẽ đóng vai kẻ lang thang.

Sự thay đổi

Có thể đạt được kết quả tương tự nếu các chữ cái trong tin nhắn được viết qua một số vị trí nhất định cho đến khi hết văn bản. Dưới đây là ví dụ về một câu đố đã hoàn thành được biên soạn theo các quy tắc này. “Ba phân số bốn” là gợi ý ba từ đã được mã hóa, bạn cần đọc từng chữ cái thứ tư (4-8-12-16-..), khi đọc hết thì quay lại đầu bằng cách dịch 1 chữ cái bên trái (3-7- 11-15-..), v.v. Hình ảnh bên dưới có nội dung “Đi dọc theo tuyến đường được chỉ định”.

Hoán vị đơn theo khóa

Một phương pháp mã hóa thực tế hơn được gọi là hoán vị khóa đơn rất giống với phương pháp trước đó. Nó chỉ khác ở chỗ các cột trong bảng không bị dịch chuyển mà được sắp xếp lại theo từ khóa, cụm từ hoặc tập hợp số theo độ dài của một dòng trong bảng. Cụm từ được mã hóa được viết thành từng dòng trong bảng phù hợp. Sau đó phía trên bảng được chèn dòng trống và một từ khóa/cụm từ/chuỗi số phù hợp với nó. Từ khóa/cụm từ/chuỗi này sau đó được sắp xếp theo bảng chữ cái/ý nghĩa và các cột được sắp xếp theo nó, do đó sẽ xáo trộn toàn bộ bảng. Cụm từ được mã hóa sau đó được viết ra từng hàng từ bảng xáo trộn này.

Ví dụ: bạn có thể tạo một câu đố dựa trên Sudoku. Người giải sẽ nhận được dòng chữ “-UROMKULO BUYOZEBYADL NZYATLYA TSBADNEPU EMMDNITOYO ICHTYUKNOO UNYYVYCHOS HIEPOTODTs PRMGOUIK-” và được yêu cầu giải Sudoku trong đó một trong các dòng được đánh dấu.

Bạn sẽ phải giải câu đố này như sau: đầu tiên bạn cần viết văn bản vào bảng 9x9, sau đó giải Sudoku, vẽ một bảng 9x9 trống, viết một dòng chính từ dòng được đánh dấu phía trên nó, sau đó nhập các cột trong bảng dưới các số theo số thứ tự của chúng trong bảng gốc.

Đối với trẻ em, bạn có thể sử dụng phương pháp tương tự nhưng đơn giản hơn, thậm chí không cần dùng số và vẽ ngay thứ tự hoán vị dưới dạng đường dẫn.

Hoán vị kép

Để tăng cường bảo mật, bạn có thể mã hóa lại tin nhắn đã được mã hóa. Phương pháp này được gọi là "hoán vị kép". Để làm điều này, kích thước của bảng thứ hai được chọn sao cho độ dài của các hàng và cột của nó không giống như trong bảng đầu tiên. Tốt nhất là chúng tương đối nguyên tố. Ngoài ra, các cột trong bảng đầu tiên có thể được sắp xếp lại và các hàng trong bảng thứ hai.

Sắp xếp lại tuyến đường

Chuyển vị thông thường của bảng (điền hàng, đọc theo cột) có thể phức tạp và đọc không phải theo cột mà theo hình rắn, ngoằn ngoèo, xoắn ốc hoặc một số cách khác, tức là. thiết lập một lộ trình đi qua bảng. Những phương pháp điền vào bảng như vậy, nếu chúng không làm tăng độ mạnh của mật mã thì sẽ khiến quá trình mã hóa trở nên thú vị hơn nhiều. Đúng, quá trình giải mã trở nên phức tạp hơn, đặc biệt nếu tuyến đường không xác định và vẫn cần được tìm ra.

Trong hình trên, chuỗi ký tự “ABVGDEYEZHZIYKLMNOPRSTUFHTSCSHSHSHCHYYYYUYA.,?” nhập từng dòng vào bảng 6x6 rồi đọc dọc theo lộ trình được chỉ định bởi các dòng. Các mã hóa sau đây thu được:

    AYOLSCHEBZHMTSHYUVZNUSHYAGIOF.DYPKHY, EKRTS?

    AYOLSCHEYUYA,

    ABELZHVGZMSCHTNIDEYOUSHEYUSHFPKRHYA.YTS,?

    AYOLSCHEYUSHTMZHBVZNUSHYA.ЪFOIGDYPKHY,?BTsRKE

    NZVBAYOZHMLSTSHCHEYASCHUF.,?YHTSRPYKEDGIO

Và ở đây bạn cần phải đi vòng quanh bàn “với nước đi của hiệp sĩ”, và lộ trình đã được vẽ sẵn nên đây chỉ dành cho các bạn nhỏ :)

Nhưng nếu bạn trình bày câu đố này như hình bên dưới, thì nó sẽ không hề dễ dàng chút nào, vì có thể có nhiều lựa chọn để di chuyển xung quanh hiệp sĩ và bạn sẽ cần phải tìm ra câu trả lời đúng duy nhất trong số tất cả các lựa chọn này.

Đã mã hóa “Pushkin. Kỵ sĩ đồng”.

Hoán vị "Hình vuông ma thuật"

Hình vuông ma thuật (hoặc ma thuật) là những bảng hình vuông có các số tự nhiên liên tiếp từ 1 đến n 2 (trong đó n là kích thước của hình vuông) được ghi trong các ô của chúng, tổng các số này ở mỗi cột, mỗi hàng và mỗi đường chéo bằng nhau.

Trong bình phương Lạc Thụ bậc ba (3×3), được biết đến ở Trung Quốc cổ đại, hằng số bình phương 15 được lặp lại 8 lần:

    dọc theo ba đường ngang: 2+9+4 = 7+5+3 = 6+1+8 = 15

    dọc theo ba chiều dọc: 2+7+6 = 9+5+1 = 4+3+8 = 15

    dọc theo hai đường chéo: 2+5+8 = 4+5+6 = 15

Nhân tiện, hằng số của một hình vuông lẻ có thể được tính dễ dàng bằng cách nhân số trung bình của chuỗi tạo thành hình vuông với thứ tự của hình vuông. Đối với hình vuông bậc 3 (3×3), hằng số là 1234 5 6789 *3=15.

Tiếp theo, để mã hóa tin nhắn, trước tiên bạn phải chọn hoặc soạn một hình vuông ma thuật có kích thước phù hợp, sau đó vẽ một bảng trống có cùng kích thước và nhập lần lượt các chữ cái của văn bản vào bảng theo các số. trong quảng trường ma thuật. Sau đó, chúng ta chỉ cần viết từng chữ cái trong bảng thành một chuỗi dài. Thứ tự của hình vuông phải bằng thứ tự làm tròn mặt lớn gốc của độ dài của chuỗi được mã hóa sao cho chuỗi đó khớp hoàn toàn với hình vuông. Nếu dòng ngắn hơn thì phần còn lại có thể được điền bằng các chữ cái hoặc số tùy ý.

Thoạt nhìn, có vẻ như có rất ít hình vuông ma thuật. Tuy nhiên, số lượng của chúng tăng lên rất nhanh khi kích thước của hình vuông tăng lên. Vì vậy, chỉ có một hình vuông ma thuật có kích thước 3x3, nếu bạn không tính đến các phép quay và phản xạ của nó. Số lượng ô vuông ma thuật bậc 4 đã được tính bằng hàng trăm, bậc 5 - tính bằng hàng trăm nghìn. Vì vậy, hình vuông kỳ diệu kích thước lớn có thể là cơ sở tốt cho một hệ thống mã hóa đáng tin cậy vào thời điểm đó, vì việc liệt kê thủ công tất cả các tùy chọn chính cho mật mã này là điều không thể tưởng tượng được.

Có một phương pháp rất đơn giản để tạo các hình vuông ma thuật kỳ lạ, tức là. kích thước 3x3, 5x5, 7x7, v.v. Đây là phương pháp “sân thượng” hoặc “kim tự tháp”.

Một hình vuông được vẽ Đúng kích cỡ và các bậc thang bậc thang được thêm vào đó (được biểu thị bằng một đường chấm). Tiếp theo, dọc theo các đường chéo từ trên xuống dưới sang phải, hình vuông được điền các số liên tiếp. Sau đó, các “sân thượng” được chuyển vào bên trong hình vuông: bên phải - sang trái, bên trái - sang phải, tầng trên - xuống và tầng dưới - lên. Hóa ra đó là một hình vuông ma thuật!

Dựa trên phương pháp này, bạn có thể tạo ra các câu đố khác nhau. Nếu bạn sử dụng phương pháp trực tiếp, bạn sẽ nhận được một câu đố như thế này:

Để giải câu đố này, bạn cần di chuyển các chữ cái từ “ruộng bậc thang” thành một hình vuông, khi đó hình vuông sẽ có nội dung tin nhắn đầy đủ. Câu “Sau cầu có phục kích, không qua được, qua sông vào chỗ cạn” được mã hóa ở đây.

Và nếu bạn sử dụng phương pháp ngược lại, bạn sẽ có được câu đố như thế này.

Để giải, bạn cần rút các chữ cái tương ứng từ hình vuông vào các “ruộng bậc thang”.

Đối với hình vuông 4x4, 6x6, v.v. như là những cách đơn giản không có phần tổng hợp nào về chúng, vì vậy việc sử dụng những cái làm sẵn sẽ dễ dàng hơn. Ví dụ: hình vuông Durer.