Mật mã truyền thống
Trong chương thứ hai, chúng ta đã thảo luận về các nguyên tắc cơ bản của mật mã hiện đại. Chúng tôi đã đánh đồng mật mã với một bộ công cụ trong đó các kỹ thuật mật mã khác nhau được coi là công cụ cơ bản. Một trong những công cụ này là Mã hóa khóa đối xứng trong đó khóa được sử dụng để mã hóa và giải mã là giống nhau.
Trong chương này, chúng ta thảo luận kỹ hơn về kỹ thuật này và các ứng dụng của nó để phát triển các hệ mật mã khác nhau.
Hệ thống mật mã trước đây
Trước khi tiếp tục, bạn cần biết một số thông tin về các hệ thống mật mã lịch sử -
Tất cả các hệ thống này đều based on symmetric key encryption kế hoạch.
Dịch vụ bảo mật duy nhất mà các hệ thống này cung cấp là bảo mật thông tin.
Không giống như các hệ thống hiện đại là kỹ thuật số và coi dữ liệu là số nhị phân, các hệ thống trước đó hoạt động trên bảng chữ cái như phần tử cơ bản.
Các hệ thống mật mã trước đó cũng được gọi là Mật mã. Nói chung, mật mã chỉ đơn giản là một tập hợp các bước (một thuật toán) để thực hiện cả mã hóa và giải mã tương ứng.
Mật mã Caesar
Nó là một mật mã đơn chữ cái, trong đó mỗi chữ cái của bản rõ được thay thế bằng một chữ cái khác để tạo thành bản mã. Đây là một dạng đơn giản nhất của lược đồ mật mã thay thế.
Hệ thống mật mã này thường được gọi là Shift Cipher. Khái niệm là thay thế mỗi bảng chữ cái bằng một bảng chữ cái khác được 'dịch chuyển' bởi một số cố định từ 0 đến 25.
Đối với loại lược đồ này, cả người gửi và người nhận đều đồng ý về một 'số chuyển đổi bí mật' để chuyển bảng chữ cái. Con số này nằm trong khoảng từ 0 đến 25 sẽ trở thành khóa mã hóa.
Tên 'Caesar Cipher' đôi khi được sử dụng để mô tả Shift Cipher khi sử dụng 'shift of three'.
Quy trình chuyển đổi mật mã
Để mã hóa một ký tự rõ ràng, người gửi đặt thước trượt bên dưới tập hợp các ký tự rõ ràng đầu tiên và trượt nó sang TRÁI theo số vị trí của sự thay đổi bí mật.
Sau đó, ký tự bản rõ được mã hóa thành ký tự bản mã trên thước trượt bên dưới. Kết quả của quá trình này được mô tả trong hình minh họa sau đây cho sự thay đổi ba vị trí đã thỏa thuận. Trong trường hợp này, 'hướng dẫn' của bản rõ được mã hóa thành bản mã 'WXWRULO'. Đây là bảng chữ cái bản mã cho Shift 3 -
Khi nhận được bản mã, người nhận cũng biết sự dịch chuyển bí mật, đặt thước trượt của mình bên dưới bảng chữ cái bản mã và trượt nó đến RIGHT theo số ca đã thỏa thuận, trong trường hợp này là 3.
Sau đó, anh ta thay thế ký tự bản mã bằng ký tự bản rõ trên thước trượt bên dưới. Do đó, bản mã 'WXWRVERO' được giải mã thành 'hướng dẫn'. Để giải mã một tin nhắn được mã hóa bằng Shift 3, hãy tạo bảng chữ cái bản rõ bằng cách sử dụng dịch chuyển '-3' như hình dưới đây:
Giá trị bảo mật
Caesar Cipher là not a securehệ thống mật mã vì chỉ có 26 khóa khả thi để thử. Kẻ tấn công có thể thực hiện tìm kiếm khóa toàn diện với tài nguyên máy tính hạn chế có sẵn.
Mật mã thay thế đơn giản
Nó là một cải tiến đối với Caesar Cipher. Thay vì chuyển các bảng chữ cái theo một số nào đó, lược đồ này sử dụng một số hoán vị của các chữ cái trong bảng chữ cái.
Ví dụ, AB… ..YZ và ZY …… BA là hai hoán vị rõ ràng của tất cả các chữ cái trong bảng chữ cái. Hoán vị không là gì ngoài một tập hợp các bảng chữ cái lộn xộn.
Với 26 chữ cái trong bảng chữ cái, các hoán vị có thể có là 26! (Giai thừa của 26) bằng 4x10 26 . Người gửi và người nhận có thể chọn bất kỳ hoán vị nào trong số các hoán vị có thể có này làm bảng chữ cái bản mã. Hoán vị này là khóa bí mật của lược đồ.
Quy trình mật mã thay thế đơn giản
Viết các bảng chữ cái A, B, C, ..., Z theo thứ tự tự nhiên.
Người gửi và người nhận quyết định một hoán vị được chọn ngẫu nhiên của các chữ cái trong bảng chữ cái.
Bên dưới bảng chữ cái thứ tự tự nhiên, viết ra hoán vị đã chọn của các chữ cái trong bảng chữ cái. Để mã hóa, người gửi thay thế từng ký tự bản rõ bằng cách thay thế ký tự hoán vị nằm ngay bên dưới nó trong bảng. Quá trình này được thể hiện trong hình minh họa sau. Trong ví dụ này, hoán vị được chọn là K, D, G, ..., O. Bản rõ 'điểm' được mã hóa thành 'MJBXZ'.
Đây là một bảng chữ cái Ciphertext lộn xộn, trong đó thứ tự của các chữ cái ciphertext là một khóa.
Khi nhận được bản mã, người nhận, người cũng biết hoán vị được chọn ngẫu nhiên, sẽ thay thế mỗi chữ cái của bản mã ở hàng dưới cùng bằng chữ cái rõ ràng tương ứng ở hàng trên cùng. Bản mã 'MJBXZ' được giải mã thành 'point'.
Giá trị bảo mật
Mật mã thay thế đơn giản là một cải tiến đáng kể so với Mật mã Caesar. Số lượng khóa có thể có là lớn (26!) Và ngay cả các hệ thống máy tính hiện đại cũng chưa đủ mạnh để có thể thoải mái khởi động một cuộc tấn công vũ phu nhằm phá vỡ hệ thống. Tuy nhiên, Mật mã thay thế đơn giản có thiết kế đơn giản và nó dễ có sai sót trong thiết kế, ví dụ như việc chọn hoán vị rõ ràng, hệ thống mật mã này có thể dễ dàng bị phá vỡ.
Mật mã đơn pha và đa pha
Mật mã một pha là một mật mã thay thế, trong đó đối với một khóa nhất định, bảng chữ cái mật mã cho mỗi bảng chữ cái đơn giản được cố định trong suốt quá trình mã hóa. Ví dụ, nếu 'A' được mã hóa thành 'D', đối với bất kỳ số lần xuất hiện nào trong bản rõ đó, 'A' sẽ luôn được mã hóa thành 'D'.
Tất cả các mật mã thay thế mà chúng ta đã thảo luận trước đó trong chương này đều là đơn pha; những mật mã này rất dễ bị phá mã.
Mật mã đa pha là một mật mã thay thế trong đó bảng chữ cái mật mã cho bảng chữ cái đơn giản có thể khác nhau ở những vị trí khác nhau trong quá trình mã hóa. Hai ví dụ tiếp theo,playfair and Vigenere Cipher are polyalphabetic ciphers.
Playfair Cipher
Trong sơ đồ này, các cặp chữ cái được mã hóa, thay vì các chữ cái đơn lẻ như trong trường hợp mật mã thay thế đơn giản.
Trong mật mã playfair, ban đầu một bảng khóa được tạo. Bảng khóa là một lưới 5 × 5 bảng chữ cái đóng vai trò là khóa để mã hóa bản rõ. Mỗi bảng trong số 25 bảng chữ cái phải là duy nhất và một chữ cái của bảng chữ cái (thường là J) bị bỏ qua khỏi bảng vì chúng ta chỉ cần 25 bảng chữ cái thay vì 26. Nếu bản rõ chứa J, thì nó được thay thế bằng I.
Người gửi và người nhận tin tưởng vào một khóa cụ thể, chẳng hạn như 'hướng dẫn'. Trong bảng khóa, các ký tự đầu tiên (từ trái sang phải) trong bảng là cụm từ, không bao gồm các ký tự trùng lặp. Phần còn lại của bảng sẽ được điền bằng các chữ cái còn lại của bảng chữ cái, theo thứ tự tự nhiên. Bảng chính hoạt động là -
Quy trình của Playfair Cipher
Đầu tiên, một thông điệp rõ ràng được chia thành các cặp gồm hai chữ cái (digraph). Nếu có một số lẻ các chữ cái, một Z được thêm vào chữ cái cuối cùng. Giả sử chúng tôi muốn mã hóa thông điệp "giấu tiền". Nó sẽ được viết là -
HI DE MO NE YZ
Các quy tắc mã hóa là -
Nếu cả hai chữ cái nằm trong cùng một cột, hãy lấy chữ cái bên dưới mỗi chữ cái (quay trở lại trên cùng nếu ở dưới cùng)
T | U | O | R | Tôi | 'H' và 'I' nằm trong cùng một cột, do đó hãy lấy chữ cái bên dưới chúng để thay thế. HI → QC |
A | L | S | B | C | |
D | E | F | G | H | |
K | M | N | P | Q | |
V | W | X | Y | Z |
Nếu cả hai chữ cái ở cùng một hàng, lấy chữ cái ở bên phải của mỗi chữ cái (quay trở lại bên trái nếu ở xa nhất bên phải)
T | U | O | R | Tôi | 'D' và 'E' ở cùng một hàng, do đó hãy lấy chữ cái ở bên phải của chúng để thay thế. DE → EF |
A | L | S | B | C | |
D | E | F | G | H | |
K | M | N | P | Q | |
V | W | X | Y | Z |
Nếu cả hai quy tắc trên đều không đúng, hãy tạo một hình chữ nhật với hai chữ cái và lấy các chữ cái trên góc đối diện nằm ngang của hình chữ nhật.
Sử dụng các quy tắc này, kết quả của việc mã hóa 'giấu tiền' với khóa 'hướng dẫn' sẽ là:
QC EF NU MF ZV
Giải mã mật mã Playfair đơn giản như thực hiện ngược lại quy trình tương tự. Người nhận có cùng một khóa và có thể tạo cùng một bảng khóa, sau đó giải mã bất kỳ tin nhắn nào được thực hiện bằng khóa đó.
Giá trị bảo mật
Nó cũng là một mật mã thay thế và rất khó bị phá vỡ so với mật mã thay thế đơn giản. Như trong trường hợp mật mã thay thế, cũng có thể phân tích mật mã trên Playfair, tuy nhiên, nó sẽ dựa trên 625 cặp chữ cái có thể có (bảng chữ cái 25x25) thay vì 26 bảng chữ cái khác nhau.
Mật mã Playfair được sử dụng chủ yếu để bảo vệ các bí mật quan trọng nhưng không quan trọng, vì nó sử dụng nhanh và không cần thiết bị đặc biệt.
Mật mã Vigenere
Lược đồ mật mã này sử dụng một chuỗi văn bản (chẳng hạn như một từ) làm khóa, sau đó được sử dụng để thực hiện một số thay đổi trên bản rõ.
Ví dụ, giả sử khóa là 'điểm'. Mỗi bảng chữ cái của khóa được chuyển đổi thành giá trị số tương ứng: Trong trường hợp này,
p → 16, o → 15, i → 9, n → 14 và t → 20.
Do đó, khóa là: 16 15 9 14 20.
Quy trình Mật mã Vigenere
Người gửi và người nhận quyết định một khóa. Nói 'điểm' là chìa khóa. Biểu diễn số của khóa này là '16 15 9 14 20'.
Người gửi muốn mã hóa tin nhắn, hãy nói 'tấn công từ phía đông nam'. Anh ta sẽ sắp xếp bản rõ và khóa số như sau:
Bây giờ anh ta dịch từng bảng chữ cái bản rõ theo số được viết bên dưới nó để tạo ra bản mã như hình dưới đây -
Ở đây, mỗi ký tự bản rõ đã được dịch chuyển bởi một số lượng khác nhau - và số lượng đó được xác định bởi khóa. Khóa phải nhỏ hơn hoặc bằng kích thước của thư.
Để giải mã, máy thu sử dụng cùng một khóa và dịch chuyển bản mã nhận được theo thứ tự ngược lại để thu được bản rõ.
Giá trị bảo mật
Vigenere Cipher được thiết kế bằng cách tinh chỉnh mật mã Caesar tiêu chuẩn để giảm hiệu quả phân tích mật mã trên bản mã và làm cho hệ thống mật mã mạnh mẽ hơn. Nó là đáng kểmore secure than a regular Caesar Cipher.
Trong lịch sử, nó thường xuyên được sử dụng để bảo vệ thông tin chính trị và quân sự nhạy cảm. Nó được gọi làunbreakable cipher do khó khăn mà nó đặt ra cho việc phân tích mật mã.
Các biến thể của Mật mã Vigenere
Có hai trường hợp đặc biệt của mật mã Vigenere -
Độ dài từ khóa giống như thông báo rõ ràng. Trường hợp này được gọi làVernam Cipher. Nó an toàn hơn mật mã Vigenere điển hình.
Mật mã Vigenere trở thành một hệ thống mật mã có độ bí mật hoàn hảo, được gọi là One-time pad.
Pad dùng một lần
Hoàn cảnh là -
- Độ dài của từ khóa giống độ dài của bản rõ.
- Từ khóa là một chuỗi bảng chữ cái được tạo ngẫu nhiên.
- Từ khóa chỉ được sử dụng một lần.
Giá trị bảo mật
Hãy để chúng tôi so sánh mật mã Shift với bàn phím một lần.
Shift Cipher - Dễ bẻ
Trong trường hợp mật mã Shift, toàn bộ thông báo có thể có sự thay đổi từ 1 đến 25. Đây là một kích thước rất nhỏ và rất dễ bị xử lý. Tuy nhiên, với mỗi ký tự hiện có sự thay đổi riêng lẻ từ 1 đến 26, các khóa có thể tăng lên theo cấp số nhân cho thông báo.
Một lần Pad - Không thể phá vỡ
Hãy để chúng tôi nói rằng, chúng tôi mã hóa tên "điểm" bằng một tập tin một lần. Nó là một văn bản 5 chữ cái. Để phá vỡ bản mã bằng vũ lực, bạn cần thử tất cả các khả năng của các khóa và tiến hành tính toán cho (26 x 26 x 26 x 26 x 26) = 26 5 = 11881376 lần. Đó là cho một tin nhắn có 5 bảng chữ cái. Do đó, đối với một tin nhắn dài hơn, việc tính toán sẽ phát triển theo cấp số nhân với mỗi bảng chữ cái bổ sung. Điều này làm cho nó không thể tính toán để phá vỡ bản mã bằng vũ lực.
Mật mã chuyển vị
Nó là một loại mật mã khác mà thứ tự của các bảng chữ cái trong bản rõ được sắp xếp lại để tạo ra bản mã. Các bảng chữ cái rõ ràng thực tế không được thay thế.
Một ví dụ là mật mã 'chuyển vị cột đơn giản' trong đó bản rõ được viết theo chiều ngang với độ rộng bảng chữ cái nhất định. Sau đó, bản mã được đọc theo chiều dọc như hình.
Ví dụ, bản rõ là "tượng vàng ở trong hang thứ mười một" và khóa ngẫu nhiên bí mật được chọn là "năm". Chúng tôi sắp xếp văn bản này theo chiều ngang trong bảng với số cột bằng giá trị khóa. Văn bản kết quả được hiển thị bên dưới.
Bản mã thu được bằng cách đọc cột theo chiều dọc xuống từ cột đầu tiên đến cột cuối cùng. Bản mã là 'gnuneaoseenvltiltedasehetivc'.
Để giải mã, người nhận chuẩn bị bảng tương tự. Số cột bằng số khóa. Số hàng thu được bằng cách chia tổng số bảng chữ cái bản mã cho giá trị khóa và làm tròn thương số thành giá trị số nguyên tiếp theo.
Sau đó người nhận ghi bản mã nhận được theo chiều dọc xuống và từ trái sang phải cột. Để có được văn bản, anh ta đọc theo chiều ngang từ trái sang phải và từ hàng trên xuống hàng dưới.