Mật mã đơn giản: mô tả các mã và mật mã phổ biến

Mục lục:

Mật mã đơn giản: mô tả các mã và mật mã phổ biến
Mật mã đơn giản: mô tả các mã và mật mã phổ biến
Anonim

Nhu cầu mã hóa thư từ xuất hiện trong thế giới cổ đại, và các mật mã thay thế đơn giản đã xuất hiện. Các thông điệp được mã hóa quyết định số phận của nhiều trận chiến và ảnh hưởng đến tiến trình lịch sử. Theo thời gian, con người ngày càng phát minh ra nhiều phương pháp mã hóa tiên tiến hơn.

Mã và mật mã, nhân tiện, là các khái niệm khác nhau. Đầu tiên có nghĩa là thay thế mỗi từ trong tin nhắn bằng một từ mã. Thứ hai là mã hóa từng ký hiệu thông tin bằng một thuật toán cụ thể.

Sau khi toán học bắt đầu mã hóa thông tin và lý thuyết về mật mã được phát triển, các nhà khoa học đã khám phá ra nhiều đặc tính hữu ích của khoa học ứng dụng này. Ví dụ: các thuật toán giải mã đã giúp làm sáng tỏ các ngôn ngữ đã chết như tiếng Ai Cập cổ đại hoặc tiếng Latinh.

Steganography

Steganography lâu đời hơn mã hóa và mã hóa. Nghệ thuật này đã có từ rất lâu đời. Nghĩa đen của nó là "viết ẩn" hoặc "viết mật mã". Mặc dù steganography không hoàn toàn đáp ứng các định nghĩa về mã hoặc mật mã, nó nhằm mục đích che giấu thông tin với người lạ.mắt.

Steganography hoặc cryptography
Steganography hoặc cryptography

Steganography là mật mã đơn giản nhất. Những nốt ruồi được bao phủ bởi sáp là những ví dụ điển hình, hoặc một thông điệp trên cái đầu cạo trọc ẩn dưới lớp lông mọc. Ví dụ rõ ràng nhất về kỹ thuật đọc mật mã là phương pháp được mô tả trong nhiều cuốn sách trinh thám bằng tiếng Anh (và không chỉ), khi các thông điệp được truyền qua một tờ báo, nơi các chữ cái được đánh dấu một cách kín đáo.

Nhược điểm chính của kỹ thuật in steganography là một người lạ chăm chú có thể nhận thấy nó. Do đó, để ngăn thông điệp bí mật bị đọc một cách dễ dàng, các phương pháp mã hóa và mã hóa được sử dụng cùng với kỹ thuật in ẩn.

ROT1 và mật mã Caesar

Tên của mật mã này là XOAY 1 chữ cái về phía trước, và nó được nhiều học sinh biết đến. Nó là một mật mã thay thế đơn giản. Bản chất của nó nằm ở chỗ, mỗi chữ cái được mã hóa bằng cách dịch chuyển theo thứ tự bảng chữ cái của 1 chữ cái về phía trước. A -> B, B -> C, …, Z -> A. Ví dụ: chúng tôi mã hóa cụm từ "Nastya của chúng tôi khóc rất to" và chúng tôi nhận được "Obtua dspnlp rmbsheu chung".

Mật mã ROT1 có thể được tổng quát hóa thành một số hiệu số tùy ý, sau đó nó được gọi là ROTN, trong đó N là số mà mã hóa các chữ cái sẽ được dịch chuyển. Ở dạng này, mật mã đã được biết đến từ thời cổ đại và được gọi là "mật mã Caesar".

Đĩa Cyrillic cho mật mã của Caesar
Đĩa Cyrillic cho mật mã của Caesar

Caesar cipher rất đơn giản và nhanh chóng, nhưng nó là một mật mã hoán vị đơn giản và do đó rất dễ bị phá vỡ. Có nhược điểm như vậy nên chỉ thích hợp với những trò đùa trẻ con thôi.

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

Những loại mật mã hoán vị đơn giản này nghiêm trọng hơn và được sử dụng tích cực cách đây không lâu. Trong Nội chiến Hoa Kỳ và Chiến tranh Thế giới thứ nhất, nó được sử dụng để gửi tin nhắn. Thuật toán của ông bao gồm việc sắp xếp lại các chữ cái ở các vị trí - viết tin nhắn theo thứ tự ngược lại hoặc sắp xếp lại các chữ cái theo cặp. Ví dụ: hãy mã hóa cụm từ "Mã Morse cũng là một mật mã" -> "akubza ezrom - hedgehog rfish".

Với một thuật toán tốt xác định các hoán vị tùy ý cho từng ký tự hoặc nhóm của chúng, mật mã có khả năng chống bẻ khóa đơn giản. Nhưng! Chỉ trong thời gian đến hạn. Vì mật mã dễ dàng bị phá vỡ bởi vũ lực đơn giản hoặc đối sánh từ điển, ngày nay bất kỳ điện thoại thông minh nào cũng có thể xử lý việc giải mã của nó. Do đó, với sự ra đời của máy tính, mật mã này cũng được chuyển sang thể loại dành cho trẻ em.

Morse mã

ABC là một phương tiện trao đổi thông tin và nhiệm vụ chính của nó là làm cho việc truyền tải thông điệp dễ dàng và dễ hiểu hơn. Mặc dù điều này trái với mục đích của mã hóa. Tuy nhiên, nó hoạt động giống như những mật mã đơn giản nhất. Trong hệ thống Morse, mỗi chữ cái, số và dấu chấm câu có mã riêng, được tạo thành từ một nhóm dấu gạch ngang và dấu chấm. Khi gửi tin nhắn bằng điện báo, dấu gạch ngang và dấu chấm thể hiện tín hiệu dài và ngắn.

Kirin và Latinh trong mã Morse
Kirin và Latinh trong mã Morse

Điện báo và mã Morse … Morse là người đầu tiên được cấp bằng sáng chế cho phát minh "của mình" vào năm 1840, mặc dù các thiết bị tương tự đã được phát minh ở Nga và Anh trước ông. Nhưng ai quan tâm bây giờ … Điện báo và bảng chữ cáiMã Morse có tác động rất lớn đến thế giới, cho phép truyền thông điệp gần như tức thời qua các khoảng cách lục địa.

Thay thế đơn pha

Mã ROTN và Morse được mô tả ở trên là ví dụ về các phông chữ thay thế đơn pha. Tiền tố "mono" có nghĩa là trong quá trình mã hóa, mỗi chữ cái của tin nhắn gốc được thay thế bằng một chữ cái hoặc mã khác từ bảng chữ cái mã hóa duy nhất.

Giải mã các mật mã thay thế đơn giản không khó, và đây là nhược điểm chính của chúng. Chúng được giải quyết bằng cách liệt kê hoặc phân tích tần số đơn giản. Ví dụ, người ta biết rằng các chữ cái được sử dụng nhiều nhất trong tiếng Nga là “o”, “a”, “i”. Do đó, có thể giả định rằng trong bản mã, các chữ cái xuất hiện thường có nghĩa là "o", hoặc "a", hoặc "và". Dựa trên những cân nhắc này, tin nhắn có thể được giải mã ngay cả khi không cần tìm kiếm trên máy tính.

Được biết rằng Mary I, Nữ hoàng Scotland từ năm 1561 đến năm 1567, đã sử dụng một mật mã thay thế đơn pha rất phức tạp với một số kết hợp. Tuy nhiên, kẻ thù của cô đã có thể giải mã các thông điệp, và thông tin đủ để kết án nữ hoàng đến tử hình.

Mật mã Gronsfeld, hoặc thay thế đa pha

Mật mã đơn giản được công bố là vô dụng bởi mật mã. Do đó, nhiều người trong số họ đã được cải thiện. Mật mã Gronsfeld là một sửa đổi của mật mã Caesar. Phương pháp này có khả năng chống hack cao hơn nhiều và nằm ở chỗ mỗi ký tự của thông tin được mã hóa được mã hóa bằng một trong các bảng chữ cái khác nhau, được lặp lại theo chu kỳ. Có thể nói đây là một ứng dụng đa chiềumật mã thay thế đơn giản nhất. Trên thực tế, mật mã Gronsfeld rất giống với mật mã Vigenère được thảo luận bên dưới.

Thuật toán mã hóa ADFGX

Đây là mật mã nổi tiếng nhất trong Chiến tranh thế giới thứ nhất được người Đức sử dụng. Mật mã có tên như vậy vì thuật toán mã hóa dẫn tất cả các bản mã đến sự thay thế của các chữ cái này. Bản thân sự lựa chọn của các chữ cái đã được xác định bởi sự thuận tiện của chúng khi được truyền qua các đường điện báo. Mỗi chữ cái trong mật mã được đại diện bởi hai. Hãy xem một phiên bản thú vị hơn của hình vuông ADFGX bao gồm các số và được gọi là ADFGVX.

A D F G V X
A J Q A 5 H D
D 2 E R V 9 Z
F 8 Y Tôi N K V
G Ư P B F 6 Ô
V 4 G X S 3 T
X W L Q 7 C 0

Thuật toán bình phương ADFGX như sau:

  1. Chọn n chữ cái ngẫu nhiên cho các cột và hàng.
  2. Xây dựng ma trận N x N.
  3. Nhập bảng chữ cái, số, ký tự nằm rải rác ngẫu nhiên trên các ô vào ma trận.

Hãy tạo một hình vuông tương tự cho tiếng Nga. Ví dụ, hãy tạo một hình vuông ABCD:

A B B G D
A E / E N b / b A I / Y
B W V / F G / R З D
B Sh / Sh B L X Tôi
G R M Ô Yu P
D F T T S Ư

Ma trận này trông lạ vì một hàng ô chứa hai chữ cái. Điều này có thể chấp nhận được, ý nghĩa của thông điệp không bị mất đi. Nó có thể được khôi phục một cách dễ dàng. Mã hóa cụm từ "Mật mã thu gọn" bằng bảng sau:

1 2 3 4 5 6 7 8 9 10 11 12 13 14
Cụm từ K Ô M P A K T N S Y Ш & F R
Mật mã bw gv gb đâu ag bw db ab dg địa ngục wa địa ngục bb

Vì vậy, thông điệp được mã hóa cuối cùng trông giống như sau: "bvgvgbgdagbvdbabdgvdvaadbbga". Tất nhiên, người Đức đã thực hiện một đường dây tương tự thông qua một số mật mã khác. Và cuối cùng thì nó hoạt động rất ổn địnhđể bẻ khóa tin nhắn được mã hóa.

Vigenère mật mã

Mật mã này là một thứ tự có độ bền cao hơn để chống bẻ khóa so với những mật mã đơn pha, mặc dù nó là một mật mã thay thế văn bản đơn giản. Tuy nhiên, do thuật toán mạnh mẽ, nó đã được coi là không thể hack từ lâu. Lần đầu tiên đề cập đến nó có từ thế kỷ 16. Vigenère (một nhà ngoại giao người Pháp) được cho là người phát minh ra nó một cách sai lầm. Để hiểu rõ hơn về những gì đang bị đe dọa, hãy xem xét bảng Vigenère (hình vuông Vigenère, tabula trực tràng) cho tiếng Nga.

Bảng Vigenère với bảng chữ cái tiếng Nga
Bảng Vigenère với bảng chữ cái tiếng Nga

Hãy bắt đầu mã hóa cụm từ "Kasperovich cười". Nhưng để mã hóa thành công, cần có một từ khóa - hãy để nó là "mật khẩu". Bây giờ chúng ta hãy bắt đầu mã hóa. Để thực hiện việc này, chúng tôi viết khóa nhiều lần sao cho số ký tự từ khóa đó tương ứng với số ký tự trong cụm từ được mã hóa, bằng cách lặp lại khóa hoặc cắt:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
Cụm từ: K A С P E R Ô B & W С M E E T С Tôi
Phím P A R Ô L b P A R Ô L b P A R Ô L

Bây giờ, bằng cách sử dụng bảng Vigenère, như trong mặt phẳng tọa độ, chúng tôi đang tìm một ô là giao điểm của các cặp chữ cái và chúng tôi nhận được: K + P=b, A + A=B, C + P=C, v.v.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
Mật mã: b B B Yu С N Yu G Sch F E Y X F G A L

Chúng tôi hiểu rằng "Kasperovich cười"="bvusnyugschzh eykhzhgal".

Bẻ khóa mật mã Vigenère rất khó vì phân tích tần suất cần biết độ dài của từ khóa để hoạt động. Vì vậy, cách hack là ném ngẫu nhiên độ dài của từ khóa và cố gắng bẻ khóa thông điệp bí mật.

Cũng cần nói thêm rằng ngoài một khóa hoàn toàn ngẫu nhiên, một bảng Vigenère hoàn toàn khác có thể được sử dụng. Trong trường hợp này, ô vuông Vigenère bao gồm một bảng chữ cái tiếng Nga được viết theo từng dòng với sự dịch chuyển một. Điều này đề cập đến chúng tôi về mật mã ROT1. Và cũng giống như trong mật mã Caesar, phần bù có thể là bất kỳ thứ gì. Hơn nữa, thứ tự của các chữ cái không nhất thiết phải theo thứ tự bảng chữ cái. Trong trường hợp này, bản thân bảng có thể là chìa khóa, nếu không biết nó sẽ không thể đọc thông báo, ngay cả khi biết khóa.

Mã thực bao gồm các kết quả phù hợp cho từngtừ của một mã riêng biệt. Để làm việc với chúng, cái gọi là sách mã là cần thiết. Trên thực tế, đây là cùng một từ điển, chỉ chứa bản dịch các từ thành mã. Một ví dụ điển hình và đơn giản về mã là bảng ASCII - một mật mã quốc tế gồm các ký tự đơn giản.

Bảng mã ASCII
Bảng mã ASCII

Ưu điểm chính của mật mã là chúng rất khó giải mã. Phân tích tần suất hầu như không hoạt động khi chúng bị tấn công. Điểm yếu của các mã, trên thực tế, chính là các cuốn sách. Đầu tiên, việc chuẩn bị của họ là một quá trình phức tạp và tốn kém. Thứ hai, đối với kẻ thù, chúng biến thành một đối tượng mong muốn và việc đánh chặn một phần thậm chí của cuốn sách buộc bạn phải thay đổi tất cả các mã hoàn toàn.

Vào thế kỷ 20, nhiều bang đã sử dụng mật mã để chuyển dữ liệu bí mật, thay đổi sổ mã sau một thời gian nhất định. Và họ cũng tích cực săn lùng sách của những người hàng xóm và đối thủ.

Bí ẩn

Mọi người đều biết rằng Enigma là cỗ máy mật mã chính của Đức Quốc xã trong Thế chiến thứ hai. Cấu trúc của Enigma bao gồm sự kết hợp giữa mạch điện và cơ. Việc mật mã sẽ xuất hiện như thế nào phụ thuộc vào cấu hình ban đầu của Enigma. Đồng thời, Enigma tự động thay đổi cấu hình của nó trong quá trình hoạt động, mã hóa một tin nhắn theo nhiều cách trong toàn bộ chiều dài của nó.

Trái ngược với những mật mã đơn giản nhất, "Enigma" đưa ra hàng nghìn tỷ sự kết hợp khả dĩ, khiến việc bẻ khóa thông tin được mã hóa gần như không thể. Đổi lại, Đức Quốc xã đã có một sự kết hợp nhất định được chuẩn bị cho mỗi ngày, mà họđược sử dụng vào một ngày cụ thể để gửi tin nhắn. Vì vậy, ngay cả khi Enigma rơi vào tay kẻ thù, nó không thể giải mã các tin nhắn mà không cần nhập đúng cấu hình mỗi ngày.

Máy mật mã Enigma của Đức Quốc xã
Máy mật mã Enigma của Đức Quốc xã

Hack "Enigma" đã được cố gắng tích cực trong toàn bộ chiến dịch quân sự của Hitler. Tại Anh, vào năm 1936, một trong những thiết bị máy tính đầu tiên (máy Turing) được chế tạo cho việc này, nó trở thành nguyên mẫu của máy tính trong tương lai. Nhiệm vụ của anh là mô phỏng hoạt động của hàng chục Bí ẩn đồng thời và chạy các thông điệp của Đức Quốc xã bị chặn thông qua chúng. Nhưng ngay cả máy Turing cũng chỉ thỉnh thoảng có thể bẻ khóa tin nhắn.

Mã hóa khóa công khai

Thuật toán mã hóa phổ biến nhất, được sử dụng ở khắp mọi nơi trong công nghệ và hệ thống máy tính. Theo quy luật, bản chất của nó nằm ở sự hiện diện của hai khóa, một trong số đó được truyền công khai, và khóa thứ hai là bí mật (riêng tư). Khóa công khai được sử dụng để mã hóa tin nhắn và khóa riêng tư được sử dụng để giải mã.

Thuật toán mã hóa khóa công khai
Thuật toán mã hóa khóa công khai

Khóa công khai thường là một số rất lớn chỉ có hai ước, không đếm một và chính là số đó. Cùng với nhau, hai ước số này tạo thành một khóa bí mật.

Hãy xem xét một ví dụ đơn giản. Gọi khóa công khai là 905. Các ước của nó là các số 1, 5, 181 và 905. Khi đó, khóa bí mật sẽ là, ví dụ, số 5181. Bạn đang nói quá dễ dàng? Điều gì xảy ra nếu trong vai tròsố công sẽ là số có 60 chữ số? Khó về mặt toán học để tính ước số của một số lớn.

Để có một ví dụ sinh động hơn, hãy tưởng tượng bạn đang rút tiền từ máy ATM. Khi đọc thẻ, dữ liệu cá nhân được mã hóa bằng một khóa công khai nhất định, và về phía ngân hàng, thông tin được giải mã bằng khóa bí mật. Và khóa công khai này có thể được thay đổi cho mỗi hoạt động. Và không có cách nào để nhanh chóng tìm ra các ước số chính khi chặn nó.

Độ bền phông chữ

Sức mạnh mật mã của một thuật toán mã hóa là khả năng chống lại hack. Tham số này là quan trọng nhất đối với bất kỳ mã hóa nào. Rõ ràng, mật mã thay thế đơn giản, có thể được giải mã bởi bất kỳ thiết bị điện tử nào, là một trong những mật mã không ổn định nhất.

Ngày nay, không có tiêu chuẩn thống nhất nào để có thể đánh giá độ bền của mật mã. Đây là một quá trình tốn nhiều công sức và lâu dài. Tuy nhiên, có một số hoa hồng đã đưa ra các tiêu chuẩn trong lĩnh vực này. Ví dụ: các yêu cầu tối thiểu đối với Tiêu chuẩn mã hóa nâng cao hoặc thuật toán mã hóa AES do NIST Hoa Kỳ phát triển.

Để tham khảo: mật mã Vernam được công nhận là mật mã có khả năng chống phá vỡ tốt nhất. Đồng thời, ưu điểm của nó là theo thuật toán của nó, nó là mật mã đơn giản nhất.

Đề xuất: