Sử dụng kết hợp mật mã đối xứng và bất đối xứng. HTTP là gì

Phần này giải quyết các vấn đề sau:

  • Các loại mật mã
  • Mật mã thay thế
  • Mật mã hoán vị
  • Phương pháp mã hóa
  • Thuật toán đối xứng và bất đối xứng
  • Mật mã đối xứng
  • Mật mã bất đối xứng
  • Chặn và truyền mật mã
  • Các vectơ khởi tạo
  • Phương pháp mã hóa lai
Mật mã đối xứng được chia thành hai loại chính: thay thế và hoán vị. Mật mã thay thế thay thế các bit, ký hiệu hoặc khối bằng các bit, ký hiệu hoặc khối khác. Mật mã hoán vị không thay đổi văn bản nguồn, thay vào đó chúng di chuyển ý nghĩa ban đầu trong văn bản nguồn - chúng sắp xếp lại các bit, ký tự hoặc khối ký tự để ẩn ý nghĩa ban đầu.

Mật mã thay thế sử dụng một khóa chỉ định cách thực hiện việc thay thế. TRONG mật mã của Caesar mỗi ký tự được thay thế bằng ký tự ba vị trí xa hơn so với ký tự đó trong bảng chữ cái. Thuật toán là bảng chữ cái và chìa khóa là hướng dẫn “dịch chuyển theo ba ký tự”.

Phép thay thế được sử dụng bởi các thuật toán đối xứng hiện đại, nhưng rất khó để so sánh với một phương pháp đơn giản như mật mã Caesar. Tuy nhiên, mật mã Caesar là một ví dụ đơn giản và rõ ràng về khái niệm hoạt động của mật mã thay thế.

Trong mật mã hoán vị, các giá trị được xáo trộn hoặc đặt theo thứ tự khác. Phím này chỉ định vị trí mà giá trị sẽ được di chuyển tới đó, như trong Hình 6-6.

Hình 6-6. Mật mã hoán vị


Đây là ví dụ đơn giản nhất về mật mã hoán vị, nó chỉ cho thấy cách thực hiện hoán vị. Nếu có liên quan đến các hàm toán học phức tạp, hoán vị có thể trở nên khá khó bẻ khóa. Các thuật toán đối xứng hiện đại đồng thời sử dụng các chuỗi dài các thay thế và hoán vị phức tạp của các ký hiệu của thông điệp được mã hóa. Thuật toán chứa khả thi phương pháp thay thế và hoán vị (thể hiện bằng công thức toán học). Điều quan trọng là các hướng dẫn cho thuật toán, xác định chính xác cách thực hiện phải quá trình xử lý xảy ra và theo trình tự nào. Để hiểu mối quan hệ giữa thuật toán và khóa, hãy xem Hình 6-7. Nói một cách hình tượng, thuật toán tạo ra nhiều hộp khác nhau, mỗi hộp có bộ công thức toán học riêng (khác với các hộp khác) chỉ ra các bước thay thế và hoán vị phải được thực hiện trên các bit rơi vào hộp này. Để mã hóa một thông điệp, giá trị của mỗi bit phải đi qua các hộp khác nhau. Tuy nhiên, nếu mỗi thư của chúng ta đi qua cùng một bộ hộp thư theo cùng một trình tự, kẻ tấn công có thể dễ dàng đảo ngược quy trình này, bẻ khóa mật mã và lấy được bản rõ của thư của chúng ta.

Hình 6-7. Mối quan hệ giữa khóa và thuật toán


Để ngăn chặn kẻ tấn công, một khóa được sử dụng, đây là một tập hợp các giá trị cho biết nên sử dụng hộp nào, theo trình tự nào và với những giá trị nào. Vì vậy, nếu tin nhắn A được mã hóa bằng khóa 1 thì khóa yêu cầu tin nhắn phải đi qua các ô 1, 6, 4 và 5. Khi cần mã hóa tin nhắn B, chúng ta sử dụng khóa 2, tức là tin nhắn phải đi qua các ô 8. , 3, 2 và 9. Khóa bổ sung tính ngẫu nhiên và bí mật cho quá trình mã hóa.

Các mật mã thay thế và hoán vị đơn giản dễ bị tấn công phân tích tần số (phân tích tần số). Trong mọi ngôn ngữ, một số từ và mẫu được sử dụng thường xuyên hơn những từ và mẫu khác. Ví dụ, trong văn bản tiếng Anh chữ “e” thường được sử dụng thường xuyên hơn. Khi thực hiện phân tích tần số của tin nhắn, kẻ tấn công tìm kiếm các mẫu 8 bit được lặp lại thường xuyên nhất (tạo nên ký tự). Ví dụ: nếu anh ta tìm thấy 12 mẫu 8 bit trong một tin nhắn ngắn, anh ta có thể kết luận rằng rất có thể đó là chữ cái "e" - chữ cái được sử dụng thường xuyên nhất trong ngôn ngữ. Bây giờ kẻ tấn công có thể thay thế các bit này bằng chữ "e". Điều này sẽ giúp anh ta thuận lợi hơn trong quá trình cho phép anh ta thiết kế ngược và khôi phục tin nhắn ban đầu.

Các thuật toán đối xứng hiện đại sử dụng các kỹ thuật thay thế và hoán vị trong quá trình mã hóa, nhưng chúng sử dụng (nên sử dụng) toán học quá phức tạp để cho phép một cuộc tấn công phân tích tần số đơn giản như vậy thành công.

Chức năng tạo khóa.Để tạo các khóa phức tạp, khóa chính thường được tạo trước tiên, từ đó các khóa đối xứng được tạo. Ví dụ: nếu một ứng dụng chịu trách nhiệm tạo khóa phiên cho mỗi thực thể truy cập vào nó thì ứng dụng đó không nên chỉ cung cấp các bản sao của cùng một khóa. Các thực thể khác nhau yêu cầu các khóa đối xứng khác nhau trên mỗi kết nối để giảm thiểu khoảng thời gian sử dụng chúng. Ngay cả khi kẻ tấn công chặn lưu lượng và bẻ khóa, hắn sẽ chỉ có thể xem thông tin được truyền trong phiên tương ứng. Phiên mới sẽ sử dụng một khóa khác. Nếu hai hoặc nhiều khóa được tạo từ một khóa chính thì chúng được gọi là khóa con (khóa con).

Các hàm tạo khóa (KDF – hàm dẫn xuất khóa) được sử dụng để tạo các khóa bao gồm các giá trị ngẫu nhiên. Các giá trị khác nhau có thể được sử dụng độc lập hoặc cùng nhau làm vật liệu khóa ngẫu nhiên. Các thuật toán được tạo ra sử dụng hàm băm, mật khẩu và/hoặc muối cụ thể được truyền qua các hàm toán học được thuật toán chỉ định nhiều lần. Vật liệu quan trọng này đi qua các chức năng này càng nhiều lần thì mức độ tin cậy và bảo mật mà toàn bộ hệ thống mật mã có thể cung cấp càng cao.


GHI CHÚ. Hãy nhớ rằng thuật toán vẫn ở trạng thái tĩnh. Tính ngẫu nhiên của quá trình mã hóa được đảm bảo chủ yếu bằng vật liệu chính.


Mặc dù có nhiều phần trong quá trình mã hóa nhưng có hai phần chính: thuật toán và khóa. Như đã nêu trước đó, các thuật toán được sử dụng trong hệ thống máy tính là các công thức toán học phức tạp đưa ra các quy tắc chuyển đổi văn bản gốc thành văn bản mã hóa. Khóa là một chuỗi các bit ngẫu nhiên được thuật toán sử dụng để thêm tính ngẫu nhiên vào quá trình mã hóa. Để hai thực thể giao tiếp bằng mã hóa, chúng phải sử dụng cùng một thuật toán và trong một số trường hợp, cùng một khóa. Trong một số công nghệ mã hóa, người nhận và người gửi sử dụng cùng một khóa, trong khi ở các công nghệ khác, họ phải sử dụng các khóa khác nhau nhưng có liên quan đến nhau để mã hóa và giải mã thông tin. Các phần sau đây giải thích sự khác biệt giữa hai loại phương pháp mã hóa này.

Các thuật toán mật mã được chia thành thuật toán đối xứng sử dụng khóa đối xứng (còn gọi là khóa bí mật) và thuật toán bất đối xứng , sử dụng khóa bất đối xứng (còn gọi là khóa chung và khóa riêng).

Trong hệ thống mật mã sử dụng mật mã đối xứng, người gửi và người nhận sử dụng hai bản sao của cùng một khóa để mã hóa và giải mã thông tin, như trong Hình 6-8. Do đó, khóa có chức năng kép và được sử dụng trong cả quá trình mã hóa và giải mã. Khóa đối xứng còn được gọi là chìa khóa bí mật, bởi vì Kiểu mã hóa này yêu cầu mỗi người dùng phải giữ bí mật khóa và bảo vệ nó một cách thích hợp. Nếu kẻ tấn công lấy được khóa này, hắn có thể sử dụng nó để giải mã bất kỳ tin nhắn nào được mã hóa trên đó bị chặn.

Hình 6-8. Khi sử dụng thuật toán đối xứng, người gửi và người nhận sử dụng cùng một khóa để mã hóa và giải mã dữ liệu


Mỗi cặp người dùng yêu cầu hai bản sao của cùng một khóa để trao đổi dữ liệu một cách an toàn bằng cách sử dụng mật mã đối xứng. Ví dụ: nếu Dan và Irina cần trao đổi dữ liệu, cả hai đều cần có một bản sao của cùng một khóa. Nếu Dan cũng muốn tương tác với Norm và Dave bằng mật mã đối xứng, anh ấy cần có ba khóa riêng biệt - một khóa cho mỗi người bạn. Đây không phải là vấn đề lớn cho đến khi Dan cần tương tác với hàng trăm người khác trong vài tháng và duy trì lịch sử trò chuyện. Rốt cuộc, điều này sẽ yêu cầu sử dụng khóa thích hợp để trao đổi thư từ với từng người nhận cụ thể. Trong trường hợp này, nó có thể trở thành một nhiệm vụ khó khăn. Nếu mười người cần liên lạc an toàn với nhau bằng mật mã đối xứng, họ sẽ cần 45 khóa. Nếu một trăm người cần tương tác, họ sẽ cần 4950 phím. Công thức tính số lượng khóa đối xứng cần thiết như sau:

Số lượng khóa = N(N – 1)/2, trong đó N là số lượng người đăng ký


Khi sử dụng thuật toán đối xứng, người gửi và người nhận sử dụng cùng một khóa cho quá trình mã hóa và giải mã thông tin. Tính bảo mật của các thuật toán như vậy phụ thuộc hoàn toàn vào mức độ người dùng bảo vệ khóa. Trong trường hợp này, an ninh phụ thuộc hoàn toàn vào nhân viên, họ phải giữ bí mật chìa khóa của mình. Nếu một khóa bị xâm phạm, tất cả các tin nhắn được mã hóa bằng khóa đó có thể bị kẻ tấn công giải mã và đọc. Trên thực tế, nó càng trở nên phức tạp hơn vì các khóa cần được phân phối và cập nhật một cách an toàn khi cần thiết. Nếu Den cần tương tác với Norm lần đầu tiên, Den phải quyết định cách đưa chìa khóa cho Norm một cách an toàn. Nếu anh ta thực hiện việc này theo cách không an toàn, chẳng hạn như chỉ gửi khóa qua email, thì khóa đó có thể dễ dàng bị kẻ tấn công chặn và sử dụng. Vì vậy, Dan phải trao chìa khóa cho Norm một cách khác thường. Ví dụ: Dan có thể ghi chìa khóa vào ổ đĩa flash và đặt nó trên bàn của Norm hoặc gửi nó cho Norm thông qua một người chuyển phát nhanh đáng tin cậy. Quá trình phân phối khóa đối xứng có thể là một nhiệm vụ rất phức tạp và cồng kềnh.

Vì cả hai người dùng đều sử dụng cùng một khóa để mã hóa và giải mã tin nhắn nên hệ thống mật mã đối xứng có thể cung cấp tính bảo mật nhưng không cung cấp tính xác thực hoặc chống chối bỏ. Thuật toán mã hóa như vậy sẽ không cho phép bạn chứng minh ai thực sự đã gửi tin nhắn, bởi vì cả hai người dùng đều sử dụng cùng một khóa.

Nhưng nếu các hệ thống mật mã đối xứng có rất nhiều thiếu sót và vấn đề thì tại sao chúng lại được sử dụng ở hầu hết mọi nơi? Bởi vì chúng cung cấp tốc độ xử lý rất cao và rất khó hack. Các thuật toán đối xứng nhanh hơn nhiều so với các thuật toán bất đối xứng. Họ có thể mã hóa và giải mã lượng lớn dữ liệu tương đối nhanh chóng. Ngoài ra, dữ liệu được mã hóa bằng thuật toán đối xứng sử dụng khóa dài rất khó bị bẻ khóa.

Danh sách sau đây mô tả điểm mạnh và điểm yếu của hệ thống mật mã khóa đối xứng:

Điểm mạnh:

  • Nhanh hơn nhiều so với các hệ thống bất đối xứng
  • Khó hack khi sử dụng phím dài
Các mặt yếu:
  • Yêu cầu cơ chế chuyển khóa an toàn
  • Mỗi cặp người dùng cần một khóa duy nhất; Khi số lượng người dùng tăng lên, số lượng khóa ngày càng tăng có thể khiến việc quản lý chúng trở nên không thực tế.
  • Cung cấp tính bảo mật nhưng không cung cấp tính xác thực hoặc chống chối bỏ
Dưới đây là một số ví dụ về thuật toán đối xứng, sẽ được thảo luận chi tiết sau trong phần Mật mã khối và luồng.
  • RC4, RC5 và RC6
Liên kết liên quan:
  • Bảo mật trong các hệ thống mở, Nút 208, “Mật mã khóa đối xứng,” của Paul Markovitz, Ấn bản đặc biệt 800-7 của NIST (tháng 7 năm 1994)
Trong mật mã khóa đối xứng, cùng một khóa bí mật được sử dụng để mã hóa và giải mã, trong khi ở các hệ thống khóa chung, các khóa khác nhau được sử dụng cho các mục đích này. không đối xứng ) phím. Trong trường hợp này, hai khóa bất đối xứng khác nhau có liên quan về mặt toán học. Nếu tin nhắn được mã hóa bằng một khóa thì cần có một khóa khác để giải mã nó.

Trong các hệ thống khóa công khai, một cặp khóa được tạo ra, một khóa là riêng tư và khóa kia là khóa công khai. Khóa công khai(khóa công khai) có thể được mọi người biết đến và khóa riêng(khóa riêng) chỉ có chủ nhân của nó mới biết. Thông thường, khóa công khai được lưu trữ trong các thư mục và cơ sở dữ liệu về địa chỉ email được cung cấp công khai cho bất kỳ ai muốn sử dụng các khóa đó để mã hóa và giải mã dữ liệu khi tương tác với các cá nhân. Hình 6-9 minh họa việc sử dụng các phím bất đối xứng khác nhau.
Khóa chung và khóa riêng của hệ thống mật mã bất đối xứng có liên quan về mặt toán học, nhưng nếu ai đó có khóa chung của người khác thì không thể biết khóa riêng tương ứng của họ. Do đó, nếu kẻ tấn công lấy được bản sao khóa chung của Bob, điều này không có nghĩa là bằng phép thuật toán học nào đó hắn sẽ có thể lấy được khóa riêng tương ứng của Bob. Tuy nhiên, nếu ai đó nắm giữ được khóa riêng của Bob thì sẽ xảy ra vấn đề lớn. Do đó, không ai khác ngoài chủ sở hữu có quyền truy cập vào khóa riêng.

Hình 6-9. Hệ thống mật mã bất đối xứng


Nếu Bob mã hóa dữ liệu bằng khóa riêng của mình thì người nhận sẽ cần khóa chung của Bob để giải mã dữ liệu đó. Người nhận không chỉ có thể giải mã tin nhắn của Bob mà còn có thể trả lời Bob bằng một tin nhắn được mã hóa. Để làm điều này, anh ta cần mã hóa câu trả lời của mình bằng khóa chung của Bob, sau đó Bob có thể giải mã câu trả lời này bằng khóa riêng của mình. Khi sử dụng thuật toán bất đối xứng, không thể mã hóa và giải mã tin nhắn bằng cùng một khóa; các khóa này, mặc dù có liên quan về mặt toán học nhưng không giống nhau (không giống như các thuật toán đối xứng). Bob có thể mã hóa dữ liệu bằng khóa riêng của mình, sau đó người nhận có thể giải mã dữ liệu bằng khóa chung của Bob. Bằng cách giải mã tin nhắn bằng khóa chung của Bob, người nhận có thể chắc chắn rằng tin nhắn thực sự đến từ Bob, vì tin nhắn chỉ có thể được giải mã bằng khóa chung của Bob nếu nó được mã hóa bằng khóa riêng tương ứng của Bob. Điều này cung cấp khả năng xác thực vì Bob (có lẽ) là người duy nhất có khóa riêng này. Nếu người nhận muốn chắc chắn rằng người duy nhất có thể đọc được phản hồi của mình sẽ là Bob thì anh ta phải mã hóa tin nhắn của mình gửi cho Bob bằng khóa chung của Bob. Khi đó chỉ Bob mới có thể giải mã được tin nhắn này vì chỉ anh ấy mới có khóa riêng cần thiết để làm việc đó.

Ngoài ra, người nhận có thể chọn mã hóa dữ liệu bằng khóa riêng của họ thay vì khóa chung của Bob. Điều này sẽ mang lại cho anh ta điều gì? Xác thực. Bob sẽ biết rằng tin nhắn đó là của anh ấy chứ không phải của ai khác. Nếu anh ta mã hóa dữ liệu bằng khóa chung của Bob, điều này sẽ không cung cấp xác thực vì bất kỳ ai cũng có thể lấy được khóa công khai của Bob. Nếu anh ta sử dụng khóa riêng của mình để mã hóa dữ liệu thì Bob có thể chắc chắn rằng tin nhắn đó đến từ anh ta. Khóa đối xứng không cung cấp xác thực vì cả hai bên đều sử dụng cùng một khóa, điều này không thể đảm bảo rằng tin nhắn đến từ một người cụ thể.

Nếu người gửi quan tâm nhiều hơn đến tính bảo mật của thông tin được truyền đi thì anh ta nên mã hóa tin nhắn của mình bằng khóa chung của người nhận. Nó được gọi là định dạng tin nhắn an toàn (định dạng tin nhắn an toàn), vì chỉ người có khóa riêng tương ứng mới có thể giải mã tin nhắn này.

Nếu việc xác thực quan trọng hơn đối với người gửi, anh ta nên mã hóa dữ liệu được truyền bằng khóa riêng của mình. Điều này sẽ cho phép người nhận chắc chắn rằng người mã hóa dữ liệu là người có khóa riêng tương ứng. Nếu người gửi mã hóa dữ liệu bằng khóa chung của người nhận thì điều này không cung cấp xác thực vì khóa công khai có sẵn cho tất cả mọi người.

Mã hóa dữ liệu bằng khóa riêng của người gửi được gọi là mở định dạng tin nhắn (định dạng tin nhắn mở), bởi vì bất kỳ ai cũng có thể giải mã dữ liệu này bằng khóa chung của người gửi. Tính bảo mật không được đảm bảo.

Cả khóa riêng và khóa chung đều có thể được sử dụng để mã hóa và giải mã dữ liệu. Đừng nghĩ rằng khóa chung chỉ cần để mã hóa và khóa riêng chỉ cần để giải mã. Cần hiểu rằng nếu dữ liệu được mã hóa bằng khóa riêng thì không thể giải mã được bằng khóa đó. Dữ liệu được mã hóa bằng khóa riêng có thể được giải mã bằng khóa chung tương ứng. Và ngược lại.

Thuật toán bất đối xứng chậm hơn thuật toán đối xứng vì Các thuật toán đối xứng thực hiện các hàm toán học tương đối đơn giản trên các bit trong quá trình mã hóa và giải mã. Chúng thay thế và xáo trộn (di chuyển) các bit xung quanh, việc này không phức tạp lắm và không sử dụng nhiều CPU. Sở dĩ chúng có khả năng chống hack là vì chúng thực hiện các chức năng này nhiều lần. Do đó, trong các thuật toán đối xứng, một tập hợp các bit trải qua một chuỗi thay thế và hoán vị dài hơn.

Thuật toán bất đối xứng chậm hơn thuật toán đối xứng vì họ sử dụng toán học phức tạp hơn nhiều để thực hiện các chức năng của mình, việc này đòi hỏi nhiều thời gian CPU hơn. Tuy nhiên, các thuật toán bất đối xứng có thể cung cấp khả năng xác thực và chống chối bỏ tùy thuộc vào thuật toán được sử dụng. Ngoài ra, các hệ thống bất đối xứng cho phép quy trình phân phối khóa đơn giản và dễ quản lý hơn các hệ thống đối xứng và không gặp phải các vấn đề về khả năng mở rộng mà các hệ thống đối xứng gặp phải. Lý do cho những khác biệt này là với các hệ thống bất đối xứng, bạn có thể gửi khóa chung của mình cho tất cả những người bạn muốn tương tác, thay vì sử dụng khóa riêng cho từng người trong số họ. Tiếp theo, trong phần Phương pháp mã hóa kết hợp của Miền này, chúng ta sẽ xem xét cách sử dụng hai hệ thống này cùng nhau để đạt được kết quả tốt nhất.

GHI CHÚ. Mật mã khóa công khai là mật mã bất đối xứng. Những thuật ngữ này được sử dụng thay thế cho nhau.

Sau đây là những điểm mạnh và điểm yếu của thuật toán khóa bất đối xứng:

Điểm mạnh

  • Quá trình phân phối khóa tốt hơn hệ thống đối xứng
  • Khả năng mở rộng tốt hơn các hệ thống đối xứng
  • Có thể cung cấp xác thực và chống chối bỏ
Mặt yếu
  • Hoạt động chậm hơn nhiều so với hệ thống đối xứng
  • Thực hiện các phép biến đổi toán học phức tạp
Dưới đây là ví dụ về các thuật toán có khóa bất đối xứng.
  • Hệ thống mật mã đường cong Elliptic (ECC)
  • Thuật toán Diffie-Hellman
  • El Gamal
  • Thuật toán chữ ký số (DSA – Digital Signature Algorithm)
  • ba lô
Chúng tôi sẽ xem xét kỹ hơn các thuật toán này trong Miền này, trong phần “Các loại hệ thống bất đối xứng”.

Bảng 6-1 cung cấp một bản tóm tắt ngắn gọn về những khác biệt chính giữa hệ thống đối xứng và bất đối xứng.

Bảng 6-1. Sự khác biệt giữa hệ thống đối xứng và bất đối xứng


GHI CHÚ. Chữ ký số sẽ được thảo luận sau trong phần Chữ ký số.
Liên kết liên quan:
  • Bảo mật trong các hệ thống mở, Nút 210, “Mật mã khóa bất đối xứng,” của Paul Markovitz, Ấn bản đặc biệt 800-7 của NIST (tháng 7 năm 1994)
  • Các câu hỏi thường gặp về Mật mã ngày nay, Phiên bản 4.1, Phần 2.1.4.5, “Chế độ phản hồi đầu ra là gì?” bởi Phòng thí nghiệm RSA
Có hai loại thuật toán đối xứng chính: mật mã khối, hoạt động trên các khối bit và mật mã dòng, hoạt động trên từng bit một.

Nếu bạn sử dụng để mã hóa và giải mã dữ liệu khóa mật mã , thông điệp được chia thành các khối bit. Các khối này sau đó được chuyển đến các hàm toán học để xử lý, mỗi lần một khối. Hãy tưởng tượng bạn cần mã hóa tin nhắn gửi cho mẹ mình bằng mật mã khối hoạt động theo khối 64 bit. Tin nhắn của bạn dài 640 bit nên được chia thành 10 khối 64 bit riêng biệt. Mỗi khối được truyền tuần tự đến đầu vào của hàm toán học. Quá trình này tiếp tục cho đến khi mỗi khối được chuyển thành bản mã. Sau đó, bạn gửi một tin nhắn được mã hóa cho mẹ bạn. Nó sử dụng cùng một mật mã khối và cùng một khóa. 10 khối bản mã này được đưa vào thuật toán theo thứ tự ngược lại cho đến khi thu được bản rõ gốc.


Để đảm bảo độ mạnh của mật mã, nó phải sử dụng đầy đủ hai phương pháp cơ bản: nhầm lẫn và khuếch tán. Trộn thường được thực hiện bằng cách sử dụng thay thế, trong khi khuếch tán - sử dụng sắp xếp lại. Để một mật mã thực sự mạnh, nó phải sử dụng cả hai phương pháp này để khiến kỹ thuật đảo ngược gần như không thể thực hiện được. Mức độ trộn và phân tán được biểu thị bằng tính ngẫu nhiên của giá trị khóa và độ phức tạp của các hàm toán học được sử dụng.

Trong các thuật toán, sự tán xạ có thể xảy ra ở cả cấp độ của các bit riêng lẻ trong khối và ở cấp độ của chính các khối đó. Việc xáo trộn được thực hiện bằng cách sử dụng các hàm thay thế phức tạp để ngăn kẻ tấn công hiểu cách các giá trị ban đầu được thay thế và lấy được bản rõ gốc. Hãy tưởng tượng rằng tôi có 500 khối gỗ, mỗi khối có một chữ cái trên đó. Tôi xếp chúng thành một tin nhắn (văn bản thuần túy) từ chúng. Sau đó tôi thay thế 300 khối này bằng các khối từ một bộ khác (xáo trộn bằng cách thay thế). Sau đó, tôi sắp xếp lại tất cả các khối này (phân tán bằng cách xáo trộn) và để lại đống này. Để bạn có thể xây dựng lại câu gốc của tôi, bạn cần thay thế các khối bằng các khối đúng và đặt chúng theo đúng trình tự. Chúc may mắn!

Việc xáo trộn được thực hiện để tạo mối quan hệ giữa khóa và bản mã thu được. Mối quan hệ này phải phức tạp nhất có thể để không thể mở khóa dựa trên phân tích bản mã. Mỗi giá trị trong bản mã phải phụ thuộc vào một số phần của khóa, nhưng đối với người quan sát mối quan hệ này giữa các giá trị khóa và giá trị bản mã phải xuất hiện hoàn toàn ngẫu nhiên.

Mặt khác, tán xạ có nghĩa là một bit của bản rõ ảnh hưởng đến nhiều bit của bản mã. Việc thay thế một giá trị trong bản rõ sẽ dẫn đến việc thay thế nhiều giá trị trong bản mã chứ không chỉ một giá trị. Trên thực tế, trong một mật mã khối thực sự mạnh, khi một bit trong bản rõ bị thay đổi thì khoảng 50% số bit trong bản mã sẽ thay đổi. Những thứ kia. Nếu bạn chỉ thay đổi một bit trong bản rõ thì khoảng một nửa bản mã sẽ thay đổi.

Mật mã khối sử dụng cả xáo trộn và phân tán trong phương thức hoạt động của chúng. Hình 6-10 thể hiện một ví dụ khái niệm về mật mã khối đơn giản. Nó được cung cấp bốn khối, mỗi khối bốn bit để xử lý. Thuật toán khối đang được xem xét có hai mức hộp thay thế bốn bit, được gọi là hộp S. Mỗi hộp S chứa các bảng tra cứu được thuật toán sử dụng làm hướng dẫn mã hóa các bit.

Hình 6-10. Thông báo được chia thành các khối bit trên đó các chức năng thay thế và phân tán được thực hiện


Khóa chỉ định (xem Hình 6-10) hộp S nào sẽ được sử dụng trong quá trình xáo trộn thông báo gốc từ bản rõ có thể đọc được sang bản mã không thể đọc được. Mỗi hộp S chứa các phương pháp thay thế và hoán vị khác nhau có thể được thực hiện trên mỗi khối. Đây là một ví dụ rất đơn giản. Trong thực tế, hầu hết các mật mã khối đều hoạt động với các khối 32, 64 hoặc 128 bit và có thể sử dụng nhiều hộp S hơn.

Như đã nêu trước đó, mật mã khối thực hiện các hàm toán học trên các khối bit. Không giống như họ, dòng mật mã (mật mã luồng) không chia thông điệp thành các khối. Chúng xử lý tin nhắn dưới dạng một luồng bit và thực hiện các hàm toán học trên từng bit riêng biệt.

Khi sử dụng mật mã dòng, quá trình mã hóa sẽ chuyển đổi từng bit của văn bản gốc thành một chút văn bản mã hóa. Mật mã dòng sử dụng bộ tạo dòng khóa tạo ra dòng bit được XOR với các bit văn bản gốc để tạo ra văn bản mã hóa. Điều này được thể hiện trong Hình 6-11.

Hình 6-11. Trong mật mã dòng, các bit được tạo bởi bộ tạo dòng khóa được XOR với các bit văn bản gốc của thông báo

GHI CHÚ. Quá trình này rất giống với việc sử dụng các miếng đệm mã hóa một lần được mô tả trước đó. Các bit riêng lẻ trong bảng đệm một lần được sử dụng để mã hóa các bit riêng lẻ của tin nhắn bằng thao tác XOR và trong thuật toán luồng, các bit riêng lẻ được tạo bởi trình tạo luồng khóa cũng được sử dụng để mã hóa các bit của tin nhắn bằng cách sử dụng Hoạt động XOR.

Nếu một hệ thống mật mã chỉ phụ thuộc vào thuật toán dòng đối xứng, kẻ tấn công có thể lấy được một bản sao của bản rõ và bản mã thu được, XOR chúng cùng nhau và tạo ra một dòng khóa đã sử dụng mà sau này hắn có thể sử dụng để giải mã các tin nhắn khác. Vì vậy, những người thông minh đã quyết định nhét chìa khóa vào luồng này.

Trong mật mã khối, khóa xác định chức năng nào được áp dụng cho bản rõ và theo thứ tự nào. Khóa đảm bảo tính ngẫu nhiên của quá trình mã hóa. Như đã nêu trước đó, hầu hết các thuật toán mã hóa đều là nguồn mở nên mọi người biết chúng hoạt động như thế nào. Bí mật duy nhất là chìa khóa. Trong mật mã dòng, tính ngẫu nhiên cũng đạt được thông qua khóa, làm cho dòng bit mà bản rõ được kết hợp ngẫu nhiên nhất có thể. Khái niệm này được minh họa trong Hình 6-12. Như bạn có thể thấy trong hình này, cả người gửi và người nhận đều phải có cùng một khóa để tạo cùng một luồng khóa để có thể mã hóa và giải mã thông tin một cách chính xác.

Hình 6-12. Người gửi và người nhận phải có cùng một khóa để tạo cùng một luồng khóa



Các vectơ khởi tạo (IV) là các giá trị ngẫu nhiên được thuật toán sử dụng để đảm bảo rằng không có mẫu nào trong quá trình mã hóa. Chúng được chia sẻ bằng khóa và không cần mã hóa khi gửi đến người nhận. Nếu không sử dụng vectơ khởi tạo thì hai bản rõ giống hệt nhau được mã hóa bằng cùng một khóa sẽ tạo ra cùng một bản mã. Mẫu như vậy sẽ đơn giản hóa đáng kể nhiệm vụ của kẻ tấn công là phá vỡ phương thức mã hóa và tiết lộ khóa. Nếu tin nhắn của bạn có một phần lặp lại (một cụm từ hoặc một từ), bạn cần đảm bảo rằng khi bạn mã hóa từng phần lặp lại của văn bản gốc của tin nhắn, một văn bản mã hóa khác sẽ được tạo, tức là. sẽ không có mẫu nào được tạo. Để đảm bảo tính ngẫu nhiên cao hơn trong quá trình mã hóa, vectơ khởi tạo được sử dụng cùng với khóa.

Mật mã dòng mạnh và hiệu quả có các đặc điểm sau:

  • Các mẫu không lặp lại trong thời gian dài trong các giá trị luồng khóa. Các bit được tạo bởi dòng khóa phải là ngẫu nhiên.
  • Luồng khóa không thể đoán trước về mặt thống kê. Các bit được tạo ra ở đầu ra của bộ tạo dòng khóa sẽ không thể đoán trước được.
  • Luồng khóa không có mối quan hệ tuyến tính với khóa. Nếu ai đó đã lấy được các giá trị của luồng khóa thì điều này sẽ không dẫn đến việc họ nhận được giá trị khóa.
  • Luồng khóa thống nhất về mặt thống kê (số lượng số 0 và số 1 gần bằng nhau). Luồng khóa không được bị chi phối bởi số 0 hoặc số 1.
Mật mã dòng yêu cầu tính ngẫu nhiên và mã hóa từng bit một. Điều này đòi hỏi nhiều năng lượng CPU hơn mật mã khối, do đó, mật mã dòng phù hợp hơn để triển khai trong phần cứng. Và mật mã khối, vì chúng không yêu cầu nhiều tài nguyên bộ xử lý nên dễ thực hiện hơn ở cấp độ phần mềm.
GHI CHÚ. Tất nhiên, có cả mật mã khối, được triển khai ở cấp độ phần cứng và mật mã dòng, hoạt động ở cấp độ phần mềm. Tuyên bố trên chỉ đơn giản là hướng dẫn thiết kế và triển khai "cách thực hành tốt nhất".


Truyền mật mã và miếng đệm một lần. Mật mã dòng cung cấp cùng loại bảo mật như các miếng đệm một lần, vì vậy chúng hoạt động theo cách tương tự. Mật mã dòng thực sự không thể cung cấp mức độ bảo mật giống như các miếng đệm một lần vì chúng được thực hiện dưới dạng phần mềm và công cụ tự động. Tuy nhiên, điều này làm cho mật mã dòng trở nên thực tế hơn.


Trước đây, chúng ta đã xem xét các thuật toán đối xứng và bất đối xứng và lưu ý rằng thuật toán đối xứng nhanh nhưng có một số nhược điểm (khả năng mở rộng kém, quản lý khóa phức tạp, chỉ cung cấp tính bảo mật), trong khi thuật toán bất đối xứng không có những nhược điểm này nhưng chúng rất chậm. Bây giờ chúng ta hãy xem xét các hệ thống lai sử dụng cả phương pháp mã hóa đối xứng và bất đối xứng.

Sử dụng kết hợp các thuật toán bất đối xứng và đối xứng


Mật mã khóa công khai sử dụng hai khóa (công khai và riêng tư) được tạo bởi thuật toán bất đối xứng, nó được sử dụng để bảo vệ các khóa mã hóa và phân phối chúng. Khóa bí mật được tạo bằng thuật toán đối xứng và được sử dụng cho quá trình mã hóa chính. Đây là sự sử dụng kết hợp của hai thuật toán khác nhau: đối xứng và bất đối xứng. Mỗi thuật toán đều có những ưu điểm và nhược điểm riêng và việc sử dụng chúng cùng nhau cho phép bạn tận dụng tối đa từng thuật toán.

Trong phương pháp kết hợp, hai công nghệ này bổ sung cho nhau, mỗi công nghệ thực hiện các chức năng riêng của mình. Thuật toán đối xứng tạo ra các khóa dùng để mã hóa phần lớn dữ liệu, trong khi thuật toán bất đối xứng tạo ra các khóa dùng để tự động phân phối khóa đối xứng.

Khóa đối xứng được sử dụng để mã hóa tin nhắn bạn gửi. Khi bạn của bạn nhận được tin nhắn mà bạn đã mã hóa, anh ấy cần giải mã nó, việc này yêu cầu khóa đối xứng để mã hóa tin nhắn của bạn. Nhưng bạn không muốn gửi khóa này một cách không an toàn vì... tin nhắn có thể bị chặn và kẻ tấn công có thể lấy khóa không được bảo vệ từ tin nhắn đó để sử dụng sau này nhằm giải mã và đọc tin nhắn của bạn. Bạn không nên sử dụng khóa đối xứng để mã hóa tin nhắn trừ khi nó được bảo vệ đúng cách. Để bảo mật khóa đối xứng, có thể sử dụng thuật toán bất đối xứng để mã hóa nó (xem Hình 6-13). Nhưng tại sao chúng ta lại sử dụng khóa đối xứng để mã hóa tin nhắn và khóa bất đối xứng để mã hóa khóa đối xứng? Như đã đề cập trước đó, thuật toán bất đối xứng chậm vì nó sử dụng toán học phức tạp hơn. Và vì tin nhắn của bạn rất có thể sẽ dài hơn khóa, nên sử dụng thuật toán nhanh hơn (đối xứng) để mã hóa nó và thuật toán chậm hơn (không đối xứng) cung cấp các dịch vụ bảo mật bổ sung sẽ phù hợp để mã hóa khóa.

Hình 6-13. Trong hệ thống lai, khóa bất đối xứng được sử dụng để mã hóa khóa đối xứng và khóa đối xứng được sử dụng để mã hóa tin nhắn


Điều này hoạt động như thế nào trong thực tế? Giả sử Bill gửi cho Paul một tin nhắn và chỉ muốn Paul có thể đọc được nó. Bill mã hóa tin nhắn bằng khóa bí mật, bây giờ nó có bản mã và khóa đối xứng. Khóa phải được bảo mật nên Bill mã hóa khóa đối xứng bằng khóa bất đối xứng. Thuật toán bất đối xứng sử dụng khóa riêng và khóa chung, vì vậy Bill mã hóa khóa đối xứng bằng khóa chung của Paul. Bây giờ Bill có bản mã tin nhắn và bản mã khóa đối xứng. Tại sao Bill mã hóa khóa đối xứng bằng khóa chung của Paul mà không phải bằng khóa riêng của anh ấy? Nếu Bill mã hóa nó bằng khóa riêng của mình thì bất kỳ ai cũng có thể giải mã nó bằng khóa chung của Bill và nhận được khóa đối xứng. Tuy nhiên, Bill không muốn bất kỳ ai có khóa công khai của mình có thể đọc được tin nhắn của mình gửi cho Paul. Bill chỉ muốn Paul có cơ hội này. Vì vậy Bill đã mã hóa khóa đối xứng bằng khóa chung của Paul. Nếu Paul bảo vệ tốt khóa riêng của mình thì chỉ có anh ấy mới có thể đọc được tin nhắn của Bill.

Paul nhận được tin nhắn của Bill và sử dụng khóa riêng của anh ấy để giải mã khóa đối xứng. Sau đó Paul sử dụng khóa đối xứng để giải mã tin nhắn. Bây giờ Paul có thể đọc được một tin nhắn quan trọng và bí mật từ Bill.

Khi chúng tôi nói rằng Bill sử dụng một khóa để mã hóa tin nhắn và Paul sử dụng cùng một khóa để giải mã nó, điều này không có nghĩa là họ thực hiện tất cả các thao tác này một cách thủ công. Phần mềm hiện đại thực hiện tất cả những điều này cho chúng ta mà không yêu cầu chúng ta phải có kiến ​​thức đặc biệt để sử dụng nó.

Mọi thứ ở đây khá đơn giản, bạn cần nhớ các khía cạnh sau:

  • Thuật toán bất đối xứng thực hiện mã hóa và giải mã bằng cách sử dụng khóa riêng và khóa chung có liên quan về mặt toán học.
  • Thuật toán đối xứng thực hiện mã hóa và giải mã bằng khóa bí mật chung.
  • Khóa đối xứng (bí mật) được sử dụng để mã hóa tin nhắn thực.
  • Khóa chung được sử dụng để mã hóa khóa đối xứng để truyền an toàn.
  • Khóa bí mật giống như khóa đối xứng.
  • Khóa bất đối xứng có thể là riêng tư hoặc công khai.
Vì vậy, khi sử dụng hệ thống kết hợp, thuật toán đối xứng sẽ tạo một khóa bí mật dùng để mã hóa dữ liệu hoặc tin nhắn và khóa bất đối xứng sẽ mã hóa khóa bí mật.

Khóa phiên (khóa phiên) là khóa đối xứng được sử dụng để mã hóa tin nhắn trao đổi giữa hai người dùng. Khóa phiên không khác gì khóa đối xứng được mô tả trước đó nhưng nó chỉ hợp lệ cho một phiên giao tiếp giữa những người dùng.

Nếu Tanya có một khóa đối xứng mà cô ấy thường xuyên sử dụng để mã hóa tin nhắn giữa cô ấy và Lance thì khóa đối xứng đó không cần phải được tạo lại hoặc thay đổi. Họ chỉ cần sử dụng cùng một khóa mỗi khi tương tác bằng mã hóa. Tuy nhiên, việc sử dụng lại cùng một khóa trong thời gian dài sẽ làm tăng khả năng bị chặn và xâm phạm thông tin liên lạc an toàn. Để tránh điều này, bạn nên tạo một khóa đối xứng mới mỗi lần Tanya và Lance cần liên lạc và chỉ sử dụng nó cho một phiên giao tiếp, sau đó hủy nó (xem Hình 6-14). Ngay cả khi họ cần tương tác lại chỉ sau một giờ, khóa phiên mới sẽ được tạo.

Hình 6-14. Khóa phiên được tạo cho mỗi phiên tương tác của người dùng và chỉ có hiệu lực trong phiên đó


Phong bì kỹ thuật số. Khi mọi người lần đầu tiên làm quen với mật mã, việc sử dụng các thuật toán đối xứng và bất đối xứng cùng nhau có thể gây nhầm lẫn. Tuy nhiên, những khái niệm này rất quan trọng để hiểu vì chúng thực sự là những khái niệm cơ bản, cốt lõi của mật mã. Quá trình này không chỉ được sử dụng trong ứng dụng email hoặc trong một số sản phẩm, nó còn xác định thứ tự xử lý dữ liệu và khóa đối xứng khi truyền đi.
Việc sử dụng kết hợp hai công nghệ này được gọi là phương pháp kết hợp, nhưng nó cũng có tên tổng quát hơn - phong bì kỹ thuật số (phong bì kỹ thuật số).




Khóa phiên cung cấp mức độ bảo vệ cao hơn so với khóa đối xứng tĩnh, bởi vì nó chỉ có giá trị trong một phiên giao tiếp giữa hai máy tính. Nếu kẻ tấn công có thể chặn khóa phiên, hắn sẽ chỉ có thể sử dụng nó để truy cập trái phép vào thông tin được truyền trong một khoảng thời gian ngắn.

Nếu hai máy tính cần giao tiếp bằng mã hóa, trước tiên chúng phải trải qua quy trình “bắt tay”, trong đó chúng đồng ý về thuật toán mã hóa sẽ được sử dụng để truyền khóa phiên nhằm mã hóa thêm dữ liệu khi máy tính giao tiếp. Về cơ bản, hai máy tính thiết lập kết nối ảo với nhau, gọi là phiên. Sau khi phiên kết thúc, mỗi máy tính sẽ hủy mọi cấu trúc dữ liệu được tạo cho phiên đó, giải phóng tài nguyên và hủy khóa phiên đã sử dụng. Hệ điều hành và các ứng dụng thực hiện những việc này ở chế độ nền và người dùng không cần phải lo lắng về điều đó. Tuy nhiên, chuyên gia bảo mật phải hiểu sự khác biệt giữa các loại khóa và các vấn đề liên quan đến chúng.


GHI CHÚ. Khóa riêng và khóa đối xứng không được lưu trữ và/hoặc truyền dưới dạng bản rõ. Mặc dù điều này có vẻ hiển nhiên nhưng nhiều sản phẩm phần mềm đã bị xâm phạm vì lý do này.

Vấn đề bảo mật không dây. Chúng tôi đã xem xét các tiêu chuẩn 802.11 khác nhau và giao thức WEP trong Miền 05. Trong số danh sách rộng lớn các vấn đề với WEP, có một vấn đề liên quan đến mã hóa dữ liệu. Nếu chỉ sử dụng WEP để mã hóa lưu lượng không dây thì hầu hết các triển khai chỉ sử dụng một khóa đối xứng thống kê để mã hóa các gói. Một trong những thay đổi và ưu điểm của chuẩn 802.11i là nó đảm bảo rằng mỗi gói được mã hóa bằng một khóa phiên duy nhất.

Xin chào!
Chúng ta hãy xem mật mã đối xứng và bất đối xứng là gì - tại sao chúng được gọi như vậy, chúng được sử dụng để làm gì và chúng khác nhau như thế nào.

Nói chính xác thì nói thuật toán mã hóa đối xứng và bất đối xứng thì đúng hơn.

Mật mã học (crypto - ẩn, ẩn), là khoa học che giấu những gì được viết, khoa học che giấu thông tin.

Hầu hết các thuật toán mã hóa được sử dụng đều mở, nghĩa là mọi người đều có thể xem mô tả thuật toán. Khóa mã hóa là bí mật, nếu không có nó thì không thể mã hóa, chứ đừng nói đến việc giải mã thông tin.

Thuật toán mã hóa đối xứng là thuật toán sử dụng cùng một khóa để mã hóa và giải mã. Nghĩa là, nếu chúng ta muốn trao đổi tin nhắn được mã hóa với một người bạn, trước tiên chúng ta phải đồng ý về khóa mã hóa mà chúng ta sẽ sử dụng. Tức là chúng ta sẽ có một khóa mã hóa cho hai người.

Trong các thuật toán đối xứng, khóa mã hóa là một điểm yếu và cần phải cẩn thận hơn để đảm bảo rằng khóa này không bị người khác phát hiện ra.

Thuật toán mã hóa bất đối xứng là thuật toán trong đó các khóa khác nhau nhưng có liên quan về mặt toán học được sử dụng để mã hóa và giải mã. Các khóa liên quan như vậy được gọi là cặp tiền điện tử. Một trong số đó là đóng (riêng tư), thứ hai là mở (công khai). Đồng thời, thông tin được mã hóa bằng khóa chung chỉ có thể được giải mã bằng khóa riêng và ngược lại, những gì được mã hóa bằng khóa riêng chỉ có thể được giải mã bằng khóa chung.
Bạn lưu trữ khóa riêng ở một nơi an toàn và không ai biết ngoại trừ bạn và bạn phân phối một bản sao của khóa chung cho mọi người. Do đó, nếu ai đó muốn trao đổi tin nhắn được mã hóa với bạn, họ sẽ mã hóa tin nhắn bằng khóa chung của bạn, khóa này có sẵn cho tất cả mọi người và tin nhắn này chỉ có thể được giải mã bằng khóa riêng của bạn.

Bây giờ về lý do tại sao và tại sao các thuật toán đối xứng và bất đối xứng được sử dụng:
Bảng cho thấy rằng để mã hóa một lượng lớn thông tin, để mã hóa luồng (ví dụ: VPN có mã hóa), các thuật toán đối xứng nhanh và không yêu cầu được sử dụng.

Nhưng nếu chúng ta cần bảo mật tối đa một lượng nhỏ thông tin, trong khi không bị hạn chế về thời gian và tài nguyên máy tính, thì chúng ta có thể sử dụng mật mã bất đối xứng.

Tất nhiên, trong cuộc sống, mọi thứ hơi khác một chút so với trên lý thuyết.
Trong cuộc sống, người ta sử dụng sự kết hợp của các thuật toán đối xứng và bất đối xứng.

Ví dụ: VPN có mã hóa:

    Bước đầu tiên sử dụng thuật toán khóa bất đối xứng để lấy khóa mã hóa đối xứng ().
Ở bước thứ hai, dữ liệu phát trực tuyến được mã hóa bằng thuật toán đối xứng với khóa được tạo ở bước đầu tiên.

Vì vậy, thông thường người ta sử dụng khóa đối xứng để mã hóa nhanh chóng lượng lớn dữ liệu. Trong trường hợp này, để trao đổi và truyền khóa đối xứng, thuật toán mã hóa bất đối xứng được sử dụng.

Mật mã cổ điển hoặc mật mã khóa đơn dựa vào việc sử dụng thuật toán mã hóa đối xứng, trong đó mã hóa và giải mã chỉ khác nhau về thứ tự thực hiện và hướng của một số bước. Các thuật toán này sử dụng cùng một phần tử bí mật (khóa) và hành động thứ hai (giải mã) là sự đảo ngược đơn giản của hành động đầu tiên (mã hóa). Do đó, thông thường mỗi người tham gia trao đổi có thể mã hóa và giải mã tin nhắn. Cấu trúc sơ đồ của một hệ thống như vậy được thể hiện trong hình. 2.1.


Cơm. 2.1.

Ở phía gửi có nguồn tin nhắn và nguồn khóa. Nguồn khóa chọn một khóa K cụ thể trong số tất cả các khóa có thể có của một hệ thống nhất định. Khóa K này được truyền theo cách nào đó đến bên nhận và người ta cho rằng nó không thể bị chặn, ví dụ, khóa được truyền bởi một người chuyển phát nhanh đặc biệt (do đó mã hóa đối xứng còn được gọi là mã hóa với khóa riêng). Nguồn tin nhắn tạo ra một số tin nhắn M, sau đó được mã hóa bằng khóa đã chọn. Kết quả của thủ tục mã hóa là thu được một thông điệp mã hóa E (còn gọi là mật mã). Tiếp theo, mật mã E được truyền qua kênh liên lạc. Vì kênh liên lạc mở, không được bảo vệ, chẳng hạn như kênh vô tuyến hoặc mạng máy tính, nên tin nhắn được truyền đi có thể bị kẻ thù chặn lại. Ở bên nhận, mật mã E được giải mã bằng khóa và nhận được tin nhắn gốc M.

Nếu M là một thông điệp, K là một khóa và E là một thông điệp được mã hóa thì chúng ta có thể viết

nghĩa là, tin nhắn được mã hóa E là một chức năng nào đó của tin nhắn gốc M và khóa K. Phương thức mã hóa hoặc thuật toán được sử dụng trong hệ thống mật mã xác định hàm f trong công thức trên.

Do sự dư thừa lớn của ngôn ngữ tự nhiên nên việc thực hiện một thay đổi có ý nghĩa trực tiếp thành tin nhắn được mã hóa là vô cùng khó khăn, do đó, mật mã cổ điển cũng cung cấp khả năng bảo vệ chống lại việc áp đặt dữ liệu sai lệch. Nếu độ dư thừa tự nhiên không đủ để bảo vệ tin nhắn khỏi bị sửa đổi một cách đáng tin cậy thì độ dư thừa có thể được tăng lên một cách giả tạo bằng cách thêm một tổ hợp điều khiển đặc biệt vào tin nhắn, được gọi là chèn giả.

Có nhiều phương pháp mã hóa khác nhau bằng khóa riêng (Hình 2). 2.2. Trong thực tế, các thuật toán hoán vị và thay thế cũng như các phương pháp kết hợp thường được sử dụng.


Cơm. 2.2.

Trong các phương pháp hoán vị, các ký tự trong văn bản nguồn được hoán đổi cho nhau theo một quy tắc nhất định. Trong các phương pháp thay thế (hoặc thay thế), các ký tự văn bản gốc được thay thế bằng một số văn bản mã hóa tương đương. Để cải thiện tính bảo mật của mã hóa, văn bản được mã hóa bằng một phương pháp có thể được mã hóa lại bằng phương pháp khác. Trong trường hợp này, thu được một mật mã kết hợp hoặc tổng hợp. Mật mã đối xứng khối hoặc dòng hiện đang được sử dụng trong thực tế cũng được phân loại là mật mã kết hợp vì chúng sử dụng một số thao tác để mã hóa tin nhắn. “Nguyên tắc xây dựng mật mã khối bằng khóa riêng”, “Thuật toán mã hóa DES và AES”, “Thuật toán chuyển đổi dữ liệu mật mã GOST 28147-89”, và bài giảng này thảo luận về các mật mã thay thế và hoán vị được con người sử dụng từ xa xưa. Chúng ta nên làm quen với các mật mã này vì phép thay thế và hoán vị được sử dụng như các phép toán phức hợp trong mật mã khối hiện đại.

Chúng tôi đã phát hành một cuốn sách mới, Tiếp thị nội dung trên mạng xã hội: Cách thu hút người theo dõi và khiến họ yêu thích thương hiệu của bạn.

Đặt mua

HTTP là thứ cho phép truyền dữ liệu. Ban đầu, nó được tạo ra để gửi và nhận tài liệu có chứa các liên kết bên trong nhằm thực hiện chuyển đổi sang tài nguyên của bên thứ ba.

Chữ viết tắt có nghĩa là “Giao thức truyền siêu văn bản”, được dịch có nghĩa là “giao thức truyền tải”. HTTP thuộc nhóm lớp ứng dụng dựa trên các chi tiết cụ thể được OSI sử dụng.

Để hiểu rõ hơn ý nghĩa của HTTP, chúng ta hãy xem xét một sự tương tự đơn giản. Hãy tưởng tượng rằng bạn đang giao tiếp với một người nước ngoài trên mạng xã hội. Anh ấy gửi cho bạn một tin nhắn bằng tiếng Anh, bạn nhận được nó. Nhưng bạn không thể hiểu được nội dung vì bạn nói ngôn ngữ không tốt. Để giải mã thông điệp, hãy sử dụng từ điển. Đã hiểu bản chất, bạn trả lời người nước ngoài bằng tiếng Nga và gửi câu trả lời. Người nước ngoài nhận được câu trả lời và với sự trợ giúp của người phiên dịch, sẽ giải mã được thông điệp. Để đơn giản hóa toàn bộ cơ chế, các giao thức Internet HTTP thực hiện chức năng của một trình dịch. Với sự trợ giúp của họ, trình duyệt có thể dịch nội dung được mã hóa của các trang web và hiển thị nội dung của chúng.

HTTP để làm gì?

Giao thức HTTP được sử dụng để trao đổi thông tin bằng mô hình máy khách-máy chủ. Máy khách soạn và truyền yêu cầu đến máy chủ, sau đó máy chủ xử lý và phân tích yêu cầu đó, sau đó phản hồi sẽ được tạo và gửi cho người dùng. Khi kết thúc quá trình này, máy khách sẽ đưa ra một lệnh mới và mọi thứ sẽ lặp lại.

Do đó, giao thức HTTP cho phép bạn trao đổi thông tin giữa các ứng dụng người dùng khác nhau và các máy chủ web đặc biệt, cũng như kết nối với các tài nguyên web (thường là trình duyệt). Ngày nay, giao thức được mô tả đảm bảo hoạt động của toàn bộ mạng. Giao thức truyền dữ liệu HTTP cũng được sử dụng để truyền thông tin qua các giao thức cấp thấp hơn khác, ví dụ: WebDAV hoặc SOAP. Trong trường hợp này, giao thức là một phương tiện vận chuyển. Nhiều chương trình cũng dựa vào HTTP làm công cụ chính để trao đổi thông tin. Dữ liệu được trình bày ở nhiều định dạng khác nhau, ví dụ: JSON hoặc XML.

HTTP là một giao thức trao đổi thông tin qua kết nối IP/TCP. Thông thường, máy chủ sử dụng cổng TCP 80 cho mục đích này. Nếu cổng không được chỉ định, phần mềm máy khách sẽ sử dụng cổng loại TCP 80 theo mặc định. Trong một số trường hợp, các cổng khác có thể được sử dụng.

Giao thức HTTP sử dụng sơ đồ mã hóa đối xứng và sử dụng các hệ thống mật mã đối xứng. Hệ thống mật mã đối xứng liên quan đến việc sử dụng cùng một khóa để mã hóa và giải mã thông tin.

Sự khác biệt giữa HTTP và HTTPS là gì

Sự khác biệt có thể được phát hiện ngay cả từ việc giải mã các chữ viết tắt. HTTPS là viết tắt của Bảo mật giao thức truyền siêu văn bản. Do đó, HTTP là một giao thức độc lập và HTTPS là phần mở rộng để bảo vệ nó. HTTP truyền thông tin không được bảo vệ, trong khi HTTPS cung cấp bảo vệ bằng mật mã. Điều này đặc biệt đúng đối với các tài nguyên được ủy quyền có trách nhiệm. Đây có thể là mạng xã hội hoặc trang web hệ thống thanh toán.

Sự nguy hiểm của việc truyền dữ liệu không được bảo vệ là gì? Một chương trình đánh chặn có thể chuyển chúng cho kẻ tấn công bất cứ lúc nào. HTTPS có một tổ chức kỹ thuật phức tạp cho phép bạn bảo vệ thông tin một cách đáng tin cậy và loại bỏ khả năng truy cập trái phép vào thông tin đó. Sự khác biệt nằm ở các cổng. HTTPS thường hoạt động trên cổng 443.

Do đó, HTTP được sử dụng để truyền dữ liệu và HTTPS cho phép truyền dữ liệu an toàn bằng cách sử dụng mã hóa và ủy quyền trên các tài nguyên có mức độ bảo mật cao.

Chức năng bổ sung

HTTP rất giàu chức năng và tương thích với nhiều tiện ích mở rộng khác nhau. Thông số kỹ thuật 1.1 được sử dụng ngày nay cho phép tiêu đề Nâng cấp được sử dụng để chuyển đổi và hoạt động thông qua các giao thức khác khi trao đổi dữ liệu. Để thực hiện việc này, người dùng phải gửi yêu cầu đến máy chủ có tiêu đề này. Nếu máy chủ cần chuyển sang một sàn giao dịch cụ thể bằng giao thức khác, nó sẽ trả về một yêu cầu cho máy khách, hiển thị trạng thái “Yêu cầu nâng cấp 426”.

Tính năng này đặc biệt phù hợp để trao đổi thông tin qua WebSocket (có đặc tả RFC 6455, cho phép bạn trao đổi dữ liệu bất kỳ lúc nào mà không cần các yêu cầu HTTP không cần thiết). Để di chuyển sang WebSocket, một người dùng sẽ gửi yêu cầu có tiêu đề Nâng cấp và giá trị “websocket”. Tiếp theo, máy chủ phản hồi với “101 Giao thức chuyển mạch”. Sau thời điểm này, quá trình truyền thông tin qua WebSocket bắt đầu.

TERENIN Alexey Alekseevich, Ứng viên Khoa học Kỹ thuật

Các thuật toán mật mã dùng để đảm bảo an toàn thông tin khi tương tác trên INTERNET

Tổng quan ngắn gọn về các thuật toán mã hóa phổ biến nhất hiện nay, mô tả của chúng, cũng như các vấn đề gặp phải trong quá trình triển khai và các khía cạnh quan trọng trong sử dụng thực tế được trình bày.

Bảo vệ thông tin bằng các phương pháp chuyển đổi mật mã bao gồm việc thay đổi các thành phần của nó (từ, chữ cái, âm tiết, số) bằng các thuật toán đặc biệt hoặc giải pháp phần cứng và mã khóa, nghĩa là đưa thông tin về dạng ẩn. Để làm quen với thông tin được mã hóa, quy trình ngược lại được sử dụng: giải mã (giải mã). Việc sử dụng mật mã là một trong những phương pháp phổ biến giúp tăng cường đáng kể tính bảo mật khi truyền dữ liệu trong mạng máy tính, dữ liệu được lưu trữ trong các thiết bị bộ nhớ từ xa, cũng như khi trao đổi thông tin giữa các đối tượng ở xa.

Để chuyển đổi (mã hóa), một số thuật toán hoặc thiết bị thường được sử dụng để thực hiện một thuật toán nhất định mà nhiều người có thể biết đến. Quá trình mã hóa được kiểm soát bằng cách sử dụng mã khóa thay đổi định kỳ, đảm bảo thể hiện thông tin nguyên bản mỗi lần khi sử dụng cùng một thuật toán hoặc thiết bị. Biết khóa cho phép bạn giải mã văn bản một cách đơn giản và đáng tin cậy. Tuy nhiên, nếu không biết khóa, quy trình này thực tế có thể không thực hiện được ngay cả với thuật toán mã hóa đã biết.

Ngay cả việc chuyển đổi thông tin đơn giản cũng là một phương tiện rất hiệu quả để che giấu ý nghĩa của nó đối với hầu hết những người vi phạm không có kỹ năng.

Tổng quan lịch sử ngắn gọn về sự phát triển của mã hóa

Nguồn gốc của mật mã bắt nguồn từ chữ tượng hình Ai Cập. Kể từ thời cổ đại, khi Ai Cập và Ba Tư phát triển mạnh mẽ, các sứ giả đã được sử dụng cho các nhiệm vụ quân sự và nhà nước quan trọng nhất, mang nội dung của thông điệp trên giấy da hoặc trong đầu để truyền tải bằng lời nói, phương pháp sau được ưa chuộng hơn. Ngay cả khi đó, ít nhiều đã xuất hiện những cách thành công để bảo vệ thông tin được truyền đi khỏi các cuộc tấn công của kẻ đánh chặn. Hãy để chúng tôi trích dẫn một truyền thuyết nổi tiếng từ thế giới Cổ đại. Một vị vua nào đó, bị bắt, đã xăm một hình xăm lên đầu một nô lệ - một thông điệp gửi đến đồng minh. Khi tóc mọc lại, người nô lệ di chuyển đến người nhận tin và nhà vua được trả tự do. Nguyên mẫu của kỹ thuật giấu tin hiện đại.

Người Hy Lạp cổ đại sử dụng những que tròn có cùng đường kính, trên đó quấn các dải giấy da. Dòng chữ được thực hiện dọc theo chiều dài của thanh. Chỉ có thể gấp văn bản thành văn bản có thể đọc được nếu bạn có một cây gậy có cùng đường kính.

Ở La Mã cổ đại, khoa học về mật mã, được dịch từ tiếng Latin là chữ viết bí mật, rõ ràng đã bắt đầu hình thành. Mật mã Caesar xuất hiện khi mỗi chữ cái được thay thế bằng một chữ cái đứng thứ ba trong bảng chữ cái.

Ở châu Âu và Trung Á hấp dẫn thời Trung cổ, đã có sự phát triển nhanh chóng về mật mã và giải mã - các phương pháp phá vỡ văn bản mật mã. Công trình có hệ thống đầu tiên về mật mã được coi là cuốn sách của kiến ​​trúc sư Leon Battisti Alberti (1404 - 1472). Một trong những nhà giải mã đầu tiên là François Viète (1540 - 1603), tại triều đình vua Henry IV của Pháp. Đồng thời, các cố vấn từ gia đình Adgenti, những người còn có thể được gọi là các nhà giải mã, đã phục vụ tại triều đình của Giáo hoàng. Toàn bộ thời kỳ cho đến giữa thế kỷ 17. đầy đủ các công trình về mật mã và phân tích mật mã.

Vào thế kỷ 19 và nửa đầu thế kỷ 20. Đối với thư từ ngoại giao bí mật, nhiều quốc gia, bao gồm cả Nga, sử dụng các phương pháp mã hóa, các khóa được biên soạn từ các đoạn trích của một số văn bản nhất định trong sách thông thường (sách mật mã).

Kể từ đầu thế kỷ XX. - từ Thế chiến thứ nhất - các máy mã hóa đặc biệt bắt đầu được sử dụng.

Máy Enigma của Đức, mật mã do người Anh tiết lộ, đã được biết đến rộng rãi. Để không tiết lộ sự thật về việc tiết lộ mật mã của Đức, chính phủ Anh đã gây thương vong lớn cho dân thường mà không cảnh báo người dân của hai thành phố lớn về vụ đánh bom sắp xảy ra. Nhưng điều này sau đó đã giúp giành được lợi thế đáng kể trong các trận hải chiến phía bắc với Đức, khi các tàu ngầm và tàu tuần dương bất khả chiến bại của Đức bị tiêu diệt.

Sau Thế chiến II, máy tính tiếp quản mật mã. Trong một thời gian dài, đây là miền của những siêu máy tính mạnh nhất thời bấy giờ.

Các ấn phẩm về chủ đề này được phân loại nghiêm ngặt và việc sử dụng nghiên cứu khoa học trong lĩnh vực này là đặc quyền trong nước. Chỉ có tác phẩm sách giáo khoa của Von Neumann vào những năm 40 được công bố rộng rãi, trong đó mô tả, ngoài các nguyên tắc xây dựng hệ thống máy tính, một số phương pháp gây ảnh hưởng độc hại khác có thể có nhằm phá vỡ quy trình tính toán “hợp pháp”, cũng như tác phẩm kinh điển của Shannon, trong đó đặt nền móng cho mật mã máy tính.

Từ những năm 70 công bố mở xuất hiện: Haffey-Dilman năm 1976. Năm 1970, có một phát minh bí mật của James Ellis (Anh) trong lĩnh vực mật mã. Thuật toán mật mã bất đối xứng nổi tiếng nhất là RSA, được phát triển bởi Ronald Rivest, Eddie Shamir và Len Edleman vào năm 1977. Thuật toán RSA có tầm quan trọng rất lớn bởi vì. có thể được sử dụng cho cả mã hóa khóa công khai và tạo chữ ký số điện tử.

Đây là một thời kỳ mang tính cách mạng trong sự phát triển của khoa học mật mã. Các phương pháp mới để phân phối bí mật thông tin quan trọng trong các hệ thống máy tính mở đã xuất hiện và mật mã bất đối xứng ra đời.

Nhưng ngay cả sau đó, trong một thời gian dài, đặc quyền sử dụng mật mã trong bảo vệ dữ liệu vẫn thuộc về các dịch vụ của chính phủ và các tập đoàn lớn. Công nghệ điện toán thời đó, với sức mạnh cần thiết cho việc chuyển đổi mật mã, rất đắt tiền.

Vào thời điểm đó, các tiêu chuẩn chính của nhà nước về thuật toán mã hóa đã xuất hiện (Hoa Kỳ và một số nước Châu Âu), việc sử dụng chúng được quy định khi làm việc với thông tin được phân loại là bí mật nhà nước.

Bức màn bí mật xung quanh các công nghệ này thậm chí còn dẫn đến thực tế là ở Hoa Kỳ, thuật toán mật mã được coi là vũ khí và lệnh cấm xuất khẩu phần cứng và phần mềm mã hóa đã được đưa ra. Sau đó, các hạn chế xuất khẩu được đưa ra đối với độ dài của khóa được sử dụng trong các thuật toán mã hóa bên ngoài Hoa Kỳ, cho phép các cơ quan tình báo Mỹ giải mã các tin nhắn bằng sức mạnh tính toán sẵn có mà không cần biết khóa rút gọn. Vào ngày 1 tháng 3 năm 2001, các hạn chế xuất khẩu đã được dỡ bỏ. Do sự kiện xảy ra vào ngày 11 tháng 9 cùng năm, sự kiểm soát của chính phủ đã được thắt chặt. Chính phủ Hoa Kỳ đang xem xét các phương án để áp dụng lại các biện pháp kiểm soát xuất khẩu đối với các công cụ mã hóa.

Hãy quay trở lại những năm 70. Kể từ thời điểm đó, cả nghiên cứu khoa học lẫn việc phát triển các công cụ máy tính đều không dừng lại. Sức mạnh tính toán của siêu máy tính tăng lên vài năm một lần. Một máy tính cá nhân xuất hiện. Sức mạnh của máy tính cá nhân gần bằng sức mạnh của siêu máy tính cách đây 10 năm. Bây giờ máy tính cá nhân thậm chí còn trở nên mạnh mẽ hơn.

Từ những năm 80 Người dùng bình thường có cơ hội sử dụng các công cụ mật mã trên máy tính của mình, điều này bị các cơ quan chính phủ ngăn chặn kịch liệt, việc giám sát hoạt động của công dân nước này trở nên khó khăn hơn, bao gồm cả các phần tử tội phạm.

Việc phát hành chương trình PGP (Pretty Good Privacy) của Phil Zimmermann (phiên bản 1.0 được phát hành năm 1991) và việc cung cấp quyền sử dụng mở và miễn phí đã mang lại những cơ hội tuyệt vời cho người dùng máy tính thông thường. Phil Zimmermann thậm chí còn bị tuyên bố là kẻ thù của nhà nước và bị kết án tù.

Sức mạnh tính toán ngày càng tăng buộc phải sử dụng các thuật toán chuyển đổi mật mã ngày càng phức tạp hoặc tăng độ dài của khóa được sử dụng trong mã hóa.

Các tiêu chuẩn cho thuật toán mã hóa đã trở nên lỗi thời và không đáng tin cậy. Thông tin được khóa bằng một khóa nhất định không còn có thể được giữ bí mật đủ lâu - miễn là theo yêu cầu của các quy định của chính phủ. Ví dụ, lưu trữ thông tin hoàn toàn bí mật ở dạng mã hóa trong 5 năm có nghĩa là kẻ thù, sở hữu phương tiện tính toán mạnh nhất, liên tục tìm kiếm các khóa có thể, rất có thể sẽ không tìm thấy khóa cần thiết để giải mã thông tin được lưu trữ trong thời gian này.

Các cuộc thi bắt đầu được tổ chức để tiết lộ một số thông tin được mã hóa bằng thuật toán của một trong các tiêu chuẩn. Người chiến thắng sẽ được trao giải thưởng tiền mặt đáng kể cũng như danh tiếng trên toàn thế giới trong cộng đồng thông tin. Bằng cách hợp nhất các máy tính thông thường trong một mạng máy tính để hoạt động song song nhằm giải quyết một vấn đề nhất định, người dùng đã tập hợp thành nhóm và cùng nhau chọn một khóa.

Độ dài khóa 48 bit có nghĩa là cần phải thực hiện 248 lần tìm kiếm. Chẳng hạn, việc tăng độ dài khóa chỉ thêm 16 bit có nghĩa là cần phải liệt kê 2 gấp 16 lần.

Nhưng ngay cả kích thước khóa này cũng có thể giải quyết được vấn đề phá mật mã cho các nhóm thống nhất trong nhiều ngày, thậm chí hàng giờ làm việc song song. Sau đó, cần phải chuyển sang các phím dài hơn vài lần so với những phím đã đề cập. Nhưng đây chỉ là biện pháp tạm thời và các tiêu chuẩn mới cho thuật toán chuyển đổi mật mã (AES ở Hoa Kỳ) gần đây đã được áp dụng.

Hiện nay, trên báo chí đã xuất hiện nhiều ấn phẩm dành riêng cho vấn đề này. Nhiều cuốn sách được xuất bản, cả được dịch và của các tác giả Nga. Vấn đề bảo vệ thông tin khỏi bị tiết lộ và sửa đổi có thể được giải quyết bằng mật mã. Sự phức tạp của bộ máy toán học của mật mã hiện đại vượt xa bộ máy được sử dụng để phát triển vũ khí hạt nhân và hệ thống không gian.

Mật mã hiện đại được chia thành đối xứng và bất đối xứng. Đối xứng - dành cho mật mã dòng, khối và hỗn hợp. Mật mã bất đối xứng tốn nhiều tài nguyên hơn và trong mật mã đối xứng có vấn đề về phân phối khóa hiệu quả. Các hệ thống trao đổi an toàn hiện đại dựa trên việc sử dụng mật mã hỗn hợp. Khi bắt đầu phiên trao đổi, các bên gửi cho nhau các khóa phiên bí mật thông qua mật mã bất đối xứng, sau đó các khóa này được sử dụng để mã hóa đối xứng dữ liệu đã gửi. Hệ thống mật mã bất đối xứng cho phép các khóa được phân phối trong các hệ thống mã hóa đối xứng.

Các hệ thống viễn thông của chính phủ và quân sự chỉ sử dụng mã hóa đối xứng (thường sử dụng khóa một lần). Điều này là do tính bảo mật của hệ thống khóa công khai chưa được chứng minh một cách chặt chẽ về mặt toán học và điều ngược lại cũng chưa được chứng minh.

Mã hóa thông tin không nên được chấp nhận như một liều thuốc chữa bách bệnh cho mọi mối đe dọa thông tin. Nó cần được coi là một trong những biện pháp bảo vệ thông tin bắt buộc như một phần của hệ thống bảo mật thông tin toàn diện. Việc sử dụng mã hóa nên được kết hợp với các biện pháp lập pháp, tổ chức và các biện pháp bảo vệ khác.

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

Các thuật toán mã hóa được thiết kế để giải quyết vấn đề đảm bảo bí mật thông tin. Hiện nay, các phương pháp mã hóa được sử dụng rộng rãi để che giấu thông tin. Từ xa xưa, mã hóa đã và vẫn là hình thức bảo vệ hiệu quả nhất.

Mã hóa được định nghĩa là sự chuyển đổi qua lại của thông tin không được bảo vệ (mở) thành dạng được mã hóa (đóng) - văn bản mã hóa, trong đó kẻ tấn công không thể truy cập hoàn toàn được. Mã hóa sử dụng khóa, sự hiện diện của khóa có nghĩa là khả năng mã hóa và/hoặc giải mã thông tin. Điều quan trọng cần lưu ý là bản thân phương thức mã hóa không cần phải giữ bí mật, vì chỉ biết nó sẽ không cho phép bạn giải mã được bản mã.

Các hệ thống mật mã hiện đại có thể được phân chia rõ ràng theo phương pháp sử dụng khóa thành hệ thống mật mã có khóa bí mật (đối xứng) và có khóa chung (bất đối xứng). Nếu sử dụng cùng một khóa để mã hóa và giải mã thì hệ thống mật mã được gọi là đối xứng.

Các hệ thống mật mã đối xứng bao gồm DES, AES, GOST 28147-89, v.v. Một hướng mới trong mật mã là việc phát minh ra các hệ thống mật mã khóa công khai bất đối xứng, chẳng hạn như RSA, DSA hoặc El-Gamal.

Trong các hệ thống mật mã bất đối xứng, các khóa khác nhau mà thực tế có thể suy ra được từ nhau được sử dụng để mã hóa và giải mã, một trong số đó (khóa giải mã) được giữ bí mật và khóa còn lại (khóa mã hóa) được công khai. Điều này cho phép truyền các thông điệp bí mật qua một kênh không an toàn mà không cần truyền khóa bí mật trước. Chính mật mã khóa công khai đã phá vỡ vòng luẩn quẩn của mật mã đối xứng, khi để tổ chức việc trao đổi thông tin bí mật, trước tiên cần phải phân phối khóa bí mật.

Hệ thống mật mã khóa công khai sẽ được thảo luận chi tiết sau, nhưng bây giờ chúng ta hãy quay lại hệ thống mật mã đối xứng (KS).

Thành phần quan trọng nhất của CS là mật mã hoặc thủ tục chuyển đổi nghịch đảo bản rõ M thành bản mã M":

M' = E(M),
M = D(M’),

trong đó E là hàm mã hóa và D là hàm giải mã.

Cách tiếp cận được chấp nhận rộng rãi trong mật mã là xây dựng một mật mã sao cho độ bí mật của nó chỉ được xác định bởi độ bí mật của khóa K S (quy tắc Kerkoff). Do đó, mật mã phải có khả năng chống bẻ khóa, ngay cả khi nhà giải mã tiềm năng biết toàn bộ thuật toán mã hóa ngoại trừ giá trị của khóa được sử dụng và có toàn bộ văn bản của mật mã bị chặn.

Thực tiễn đã chỉ ra rằng thuật toán càng nổi tiếng thì càng có nhiều người làm việc với nó, nó càng được chứng minh và do đó đáng tin cậy hơn. Do đó, các thuật toán được công chúng biết đến hiện nay đã đứng vững trước thử thách của thời gian, nhưng mật mã bí mật của chính phủ lại bộc lộ nhiều sai sót và thiếu sót, vì không thể tính đến mọi thứ.

Sơ đồ được chấp nhận chung để xây dựng các hệ thống mật mã đối xứng là hoán vị tuần hoàn và thay thế các bit trong một khối có độ dài cố định, thuật toán của khối này được xác định bằng khóa bí mật.


Một thuật toán mã hóa được coi là mạnh nếu có dữ liệu riêng tư và biết khóa bí mật thì không thể lấy được thông tin về dữ liệu mở. Người ta đã chứng minh một cách chặt chẽ rằng không thể xây dựng một mật mã mạnh tuyệt đối, ngoại trừ trường hợp khi kích thước của khóa bí mật bằng (hoặc lớn hơn) kích thước của dữ liệu được mã hóa. Trường hợp này khó thực hiện trong thực tế vì Các công cụ bảo vệ mật mã thực sự được sử dụng và có sẵn trên thị trường sử dụng mật mã mà nhiệm vụ khôi phục bản rõ từ văn bản đã đóng rất khó tính toán, nghĩa là nó đòi hỏi nhiều tài nguyên đến mức cuộc tấn công trở nên không thực tế về mặt kinh tế.

Trong số các mật mã đối xứng, phổ biến nhất và được sử dụng thường xuyên nhất là mật mã sau (kích thước khối tính bằng bit được ký hiệu là b, số chu kỳ là r và độ dài khóa là l):

DES- Tiêu chuẩn chính phủ Mỹ (b=64, r=16, l=56). Hiện tại, DES đã được chứng minh là không đủ mạnh để chống lại các cuộc tấn công bạo lực.
Ba DES và DESX(b = 64, r = 16, l = 168;112) - ứng dụng tuần tự thuật toán DES với các khóa khác nhau, mang lại khả năng chống hack đáng kể.
Ý TƯỞNG- (b = 64, r = 8, l = 128) . Nghiên cứu tích cực về sức mạnh của nó đã tiết lộ một số điểm yếu trong đó, nhưng khả năng sử dụng chúng là không đáng kể.
RC5- một mật mã được tham số hóa với kích thước khối thay đổi (b I), số chu kỳ (r Ј 255) và số bit khóa (l Ј 2040). Các nghiên cứu về sức mạnh của nó đã chỉ ra rằng tại b = 64, nó không thể tiếp cận được đối với phân tích vi phân ở r = 12 và phân tích tuyến tính ở r = 7.
GOST 28147-89- Chuẩn mã hóa dữ liệu của Nga (b=64, r=32, l=256). Nhiều khóa yếu đã được tìm thấy cho GOST, làm giảm đáng kể sức mạnh hiệu quả của nó trong các chế độ mã hóa đơn giản. Việc đánh giá sức mạnh mật mã của GOST cũng phức tạp bởi thực tế là phần quan trọng nhất của thuật toán - các nút thay thế hoặc hộp S theo thuật ngữ của mật mã DES - không được mô tả trong tiêu chuẩn và các quy luật tạo ra nó vẫn chưa được biết. Đồng thời, người ta đã chứng minh rằng có khả năng cao thu được các nút thay thế yếu giúp đơn giản hóa việc phân tích mật mã của một mật mã nhất định.
Cá nóc là mật mã khối 64 bit được phát triển bởi Schneier vào năm 1993, được thực hiện thông qua các hoán vị và thay thế phụ thuộc khóa. Tất cả các hoạt động đều dựa trên XOR và bổ sung trên các từ 32 bit. Khóa có độ dài thay đổi (tối đa 448 bit) và được sử dụng để tạo một số mảng khóa con. Mật mã được tạo riêng cho máy 32 bit và nhanh hơn đáng kể so với DES.

Hoa Kỳ hiện đã áp dụng một tiêu chuẩn mã hóa mới, AES. Một cuộc thi đã được tổ chức giữa các thuật toán mã hóa, thuật toán nào đã giành chiến thắng và hình thành nên nền tảng của AES - Rijndael. Rijndael là mật mã khối lặp có độ dài khối thay đổi và độ dài khóa khác nhau. Mô tả chi tiết hơn về thuật toán này và kết quả của cuộc thi được đưa ra trong.

Một số lượng khá lớn các thuật toán đối xứng đã được phát triển, công bố và nghiên cứu trên thế giới (Bảng 1), trong đó chỉ có DES và bản sửa đổi Triple DES được thử nghiệm đầy đủ theo thời gian. Bảng này không bao gồm các thuật toán ít được biết đến và được nghiên cứu kém, chẳng hạn như An toàn hơn, v.v.

Bảng 1. Tổng quan về các phương pháp mã hóa đối xứng

Độ dài khóa, bit

Kích thước khối, bit

Chi phí lựa chọn khóa, MIPS x năm

Ghi chú

DES Được IBM phát triển vào năm 1977 cho chính phủ Hoa Kỳ. Trong 20 năm, người ta không tìm ra cách nào để bẻ khóa mật mã, ngoài việc tìm kiếm toàn diện trung bình 25% tất cả các khóa, nhưng với khả năng hiện đại, nó cho phép bạn đạt được thành công
Ba DES Lặp lại thuật toán DES ba lần với các khóa khác nhau. Độ dài khóa hiệu dụng là 112 bit.
Ý TƯỞNG Được phát triển vào năm 1992 bởi Lai và Massey. Chưa bị hack cho đến nay
GOST 28147-89

không có dữ liệu

Là tiêu chuẩn nhà nước ở Nga
RC5

10 3 trở lên

Khóa 40 bit đã bị bẻ khóa bằng vũ lực vào năm 1997 trong 3,5 giờ, khóa 48 bit trong 313 giờ
Cá nóc

không có dữ liệu

Được phát triển bởi Schneier vào năm 1993.
Mật mã Feistel này được tạo riêng cho máy 32 bit và nhanh hơn đáng kể so với DES
AES (Rijndael) Độ dài khóa và độ dài khối có thể là 128, 192 hoặc 256 bit, độc lập với nhau Được đề xuất bởi các nhà giải mã Joan Daemen và Vincent Rijmen.
Thuật toán không có điểm yếu bảo mật nào được biết đến (theo NIST).

Hiện tại, các thuật toán đối xứng có độ dài khóa lớn hơn 100 bit (Triple DES và IDEA, v.v.) không phải là không thể phá vỡ được. Thuật toán GOST trong nước, so với chúng, có đặc điểm là độ phức tạp tăng lên cả khi tạo các nút thay thế và khi tạo khóa. Ngoài ra, đối với thuật toán GOST, có khả năng cao tạo ra khóa không ổn định, điều này trong một số chế độ mã hóa sẽ làm giảm độ dài khóa hiệu quả của nó từ 2.256 xuống 2.62.

Triple DES là một thuật toán đã được chứng minh tốt hơn IDEA và cung cấp hiệu suất chấp nhận được. Thuật toán Triple DES là việc áp dụng thuật toán DES ba lần cho cùng một dữ liệu nhưng với các khóa khác nhau.

DES đã thâm nhập vào Nga và được sử dụng khá rộng rãi trong thực tế như một phần không thể thiếu của nhiều phần mềm và phần cứng khác nhau, trong đó được biết đến rộng rãi nhất là hệ thống S.W.I.F.T., mô-đun VISA và EUROPAY bí mật, mô-đun bí mật của ATM và thiết bị đầu cuối giao dịch, và cuối cùng , nhưng chiêc thẻ thông minh. Các cuộc thảo luận đặc biệt căng thẳng xung quanh thuật toán mã hóa dữ liệu đều do thẻ thông minh gây ra. Đồng thời, có những lý do nghiêm túc để tin rằng độ tin cậy của các hệ thống mật mã trong nước có nguồn gốc chuyển đổi sẽ vượt trội hơn so với các hệ thống mật mã nước ngoài.

Tuy nhiên, luật pháp Nga cũng như luật pháp của nhiều quốc gia khác chỉ cho phép sử dụng các tiêu chuẩn mã hóa quốc gia.

Thuật toán GOST 28147-89 được xây dựng trên nguyên tắc giống như DES; nó là một mật mã khối cổ điển có khóa bí mật, nhưng khác với DES ở độ dài khóa lớn hơn, số vòng lớn hơn và sơ đồ đơn giản hơn để xây dựng các vòng chúng tôi. Trong bảng Hình 2 hiển thị các tham số chính của nó, để thuận tiện - so sánh với các tham số của DES.

Bảng 2. So sánh tham số của mật mã DES và GOST

Nếu thông tin bí mật cần được trao đổi giữa những người tin tưởng lẫn nhau, tức là. các thành viên của cùng một tổ chức có thể sử dụng mật mã đối xứng. Tất nhiên, cả hai (hoặc nhiều) bên phải có sẵn khóa mã hóa để tương tác.

Để mô tả ngắn gọn kịch bản trao đổi thông tin, nó như sau:

  • một tập tin hiện có chứa thông tin bí mật được tạo hoặc sử dụng;
  • tệp được mã hóa bằng khóa mà cả hai bên đều biết, được xác định bằng thuật toán mã hóa;
  • File mã hóa được chuyển đến thuê bao, phương tiện lưu trữ không quá quan trọng, có thể là đĩa mềm, e-mail, tin nhắn trên mạng hoặc kết nối modem; rất thuận tiện, giảm thiểu rủi ro, cũng như lưu trữ tất cả các tập tin chứa thông tin bí mật ở dạng mã hóa. Khi đó, nếu máy tính, máy tính xách tay của nhân viên đi công tác hoặc ổ cứng rơi vào tay kẻ tấn công, các tập tin bị khóa bằng chìa khóa sẽ không thể đọc trực tiếp được. Ngày nay thế giới sử dụng các hệ thống tự động mã hóa tất cả thông tin được lưu trữ trong máy tính xách tay; họ cũng cung cấp chế độ đăng nhập bắt buộc; nếu nhân viên buộc phải khởi động máy tính xách tay thì bằng cách nhập mật khẩu đặc biệt thay vì mật khẩu thông thường, mọi thông tin có thể bị hủy ; tất nhiên, chế độ khôi phục được cung cấp sau hành động này. Ổ cứng có thể được tháo ra khỏi máy tính một cách đơn giản, việc tháo nó ra khỏi vùng được bảo vệ không quá khó (so với toàn bộ máy tính);
  • về phía bên nhận, người nhận hợp pháp, sở hữu khóa, sẽ mở các tệp được mã hóa để sử dụng tiếp.

Nhiều phương pháp biến đổi bảo vệ hiện đại có thể được phân thành bốn nhóm lớn: hoán vị, thay thế (thay thế), phương pháp cộng và kết hợp. Các phương pháp hoán vị và thay thế thường được đặc trưng bởi độ dài khóa ngắn và độ tin cậy của khả năng bảo vệ của chúng được xác định bởi độ phức tạp của thuật toán chuyển đổi. Các phương pháp bổ sung được đặc trưng bởi các thuật toán chuyển đổi đơn giản và sức mạnh mật mã của chúng dựa trên việc tăng độ dài khóa.

Phá vỡ mật mã

Có một cách để phá mật mã bằng cách thử tất cả các tùy chọn chính. Tiêu chí cho tính đúng đắn của một biến thể là sự hiện diện của một “từ có thể xảy ra” trong văn bản.

Tập hợp tất cả các khóa có thể được liệt kê và bản mã được giải mã bằng từng khóa. Trong văn bản “giả mở” thu được, một từ có thể xảy ra sẽ được tìm kiếm. Nếu không có từ đó, văn bản hiện tại sẽ bị từ chối và việc chuyển sang phím tiếp theo được thực hiện. Nếu tìm thấy một từ như vậy, một biến thể của phím sẽ được hiển thị trên màn hình. Sau đó, việc tìm kiếm chìa khóa tiếp tục cho đến khi hết toàn bộ bộ tùy chọn. Có thể phát hiện một số khóa trong đó có một từ có thể xảy ra trong “bản rõ giả”.

Sau khi tìm kiếm hoàn tất, cần giải mã văn bản bằng các khóa tìm thấy. “Văn bản giả” được hiển thị trên màn hình để kiểm soát trực quan. Nếu người vận hành nhận ra văn bản là mở thì tác vụ mở đầu sẽ kết thúc. Nếu không, tùy chọn khóa này sẽ bị từ chối và quá trình chuyển đổi sang khóa tiếp theo sẽ được thực hiện.

Phương pháp bạo lực có thể được chống lại bằng cách tăng độ dài của khóa mã hóa được sử dụng. Hơn nữa, việc tăng chiều dài của nó lên chỉ 8 bit sẽ tăng số lượng tùy chọn tìm kiếm lên tương ứng là 2,8 lần, lên 64 bit – lên 2,64 lần.

Trong số các vấn đề cố hữu trong việc sử dụng thuật toán mã hóa mật mã, cần nêu bật vấn đề phân phối khóa. Trước khi các bên giao tiếp có thể gửi tin nhắn được mã hóa cho nhau, họ phải trao đổi khóa mã hóa qua một số kênh bí mật. Ngoài ra, một số lượng lớn các khóa phải được cập nhật trong hệ thống trao đổi thông tin.

Các thuật toán mã hóa mật mã không thể thiết lập tính toàn vẹn của tin nhắn nhận được (tức là để đảm bảo rằng tin nhắn không bị sửa đổi trong quá trình truyền). Quyền tác giả chỉ có thể được xác nhận bằng cách sở hữu một khóa cụ thể, vì vậy bất kỳ ai trở thành chủ sở hữu khóa của người khác sẽ có thể chuyển tin nhắn của họ dưới dạng tin nhắn được gửi từ người dùng khác.

Vấn đề phân phối khóa bí mật qua kênh liên lạc công cộng có thể được giải quyết bằng thuật toán Diffie-Hellman. Nhưng thuật toán này thuộc về thuật toán mã hóa bất đối xứng. Họ sử dụng hai khóa: công khai và riêng tư.

Các thuật toán mật mã bất đối xứng nhận được sự phát triển nhanh chóng vào những năm 70. thế kỷ trước. Các thuật toán như vậy cũng có thể giải quyết các vấn đề về xác nhận quyền tác giả và tính xác thực, giúp tổ chức trao đổi thông tin được mã hóa giữa các bên không tin tưởng lẫn nhau. Ngoài ra, việc sử dụng các thuật toán bất đối xứng sẽ giảm số lượng khóa phải được phân phối giữa các bên tương tác theo một bậc độ lớn. Các hệ thống mã hóa bất đối xứng bao gồm một cơ sở dữ liệu công khai về các khóa công khai có thể được phân phối qua các kênh liên lạc mở và việc tiết lộ chúng sẽ không dẫn đến sự xâm phạm hệ thống, đó là lý do tại sao chúng được gọi là mở.

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

Các hệ thống mật mã khóa công khai thường được xây dựng trên cơ sở một bài toán phức tạp để tính một hàm nghịch đảo của một hàm đã cho. Các hàm như vậy được gọi là một chiều, tức là sự đảo ngược của họ là một nhiệm vụ gần như không thể. Bản chất của phương pháp mã hóa là chức năng của tin nhắn được mã hóa được tính theo hướng chuyển tiếp bằng cách sử dụng khóa chung của thuê bao nhận và khi giải mã (tính hàm nghịch đảo) khóa bí mật của nó được sử dụng. Như người ta có thể mong đợi, người ta biết rất ít về các vấn đề toán học thỏa mãn các yêu cầu đã liệt kê và chỉ một số ít trong số chúng được sử dụng để xây dựng các mật mã dùng trong thực tế. Chúng ta hãy xem xét một số hệ thống mật mã khóa công khai nổi tiếng nhất.

  • RSA. Bài toán phân tích nhân tử (tính thừa số nguyên tố) của một số nguyên lớn được sử dụng. Được xây dựng dựa trên phép nhân hai số nguyên tố có chữ số lớn. Được sử dụng rộng rãi trong các giao thức xác thực và bảo mật mật mã.
  • El-Gamal. Dựa trên bài toán logarit rời rạc trong trường hữu hạn. Được sử dụng trong các tiêu chuẩn chữ ký số điện tử (EDS) DSS, GOST R34.10-94, v.v.
  • Đường cong elip. Dựa trên bài toán logarit rời rạc trên đường cong elip trong trường hữu hạn.

Các bài toán nghịch đảo của nhân tử hóa và logarit rời rạc được giải bằng các phương pháp gần với tìm kiếm vét cạn, khi số lớn thì khó tính toán.
Hệ thống mật mã khóa công khai được sử dụng chủ yếu trong ba lĩnh vực:

  • đóng thông tin;
  • xác thực bằng chữ ký số;
  • phân phối khóa công khai được bảo vệ chống chặn (hệ thống mật mã Diffie-Hellman).

Những ưu điểm và nhược điểm của hệ thống mật mã bất đối xứng sẽ được thảo luận chi tiết hơn trong phần này.

Hàm băm

Các giao thức bảo vệ tính toàn vẹn và tính xác thực khi tạo mô phỏng và chữ ký số sử dụng hàm băm “nén” mật mã để có thể thu được giá trị với số bit cố định từ khối dữ liệu có độ dài tùy ý.
Để giảm khối lượng chữ ký số và giảm thời gian tạo và xác minh, nó được áp dụng cho các giá trị băm, thường ngắn hơn nhiều so với tin nhắn gốc. Một số yêu cầu được đặt ra đối với các hàm băm mật mã nhằm mục đích gây khó khăn cho việc giả mạo chữ ký số bằng cách tìm ra sự sửa đổi khối dữ liệu trong đó giá trị của hàm băm và do đó, chữ ký số không thay đổi.
Các hàm băm được sử dụng rộng rãi nhất dựa trên hệ thống hoán vị và thay thế lặp lại theo chu kỳ (độ dài của giá trị băm được tạo ra tính bằng bit được biểu thị trong ngoặc đơn):

  • MD5 (128);
  • SHA-1 (160);
  • GOST (256).

Bảng 1. Danh sách và tham số của hàm băm

Hàm băm

Độ dài giá trị, bit

Kích thước khối, bit

Hiệu suất, Mb/giây

Ghi chú

không có dữ liệu

Được phát triển bởi Ron Rivest vào năm 1989.
Va chạm được phát hiện trong chức năng nén đơn giản hóa

Được phát triển bởi Ron Rivest vào năm 1990.
Đã phát hiện va chạm

Được phát triển bởi Ron Rivest vào năm 1991.
Va chạm được phát hiện trong chức năng nén

Được phát triển vào năm 1995 trong dự án RIPE của Châu Âu

Được phát triển vào năm 1995 bởi NIST

GOST của Nga

Trong bảng 1 không hiển thị các hàm băm hiếm khi được sử dụng và kỳ lạ, cũng như các hàm băm được xây dựng trên mật mã khối đối xứng theo sơ đồ Meyer–Matyas và Davies–Price.
Các hàm băm được đề cập sẽ được mô tả chi tiết hơn trong.
Mặc dù bảo vệ mật mã khóa công khai hoặc hệ thống mật mã bất đối xứng đã được sử dụng đặc biệt rộng rãi kể từ cuối những năm 70. , chúng có một nhược điểm rất nghiêm trọng - hiệu suất cực kỳ thấp. Về vấn đề này, trong thực tế, sơ đồ bảo vệ mật mã kết hợp thường được sử dụng. Khi thiết lập kết nối và xác thực các bên, mật mã “khóa công khai” được sử dụng, sau đó khóa phiên được tạo để mã hóa đối xứng, khóa này sẽ đóng tất cả lưu lượng truy cập giữa những người đăng ký. Khóa phiên cũng được phân phối bằng khóa chung.



Cơm. 2. Sơ đồ thuật toán hệ mật mã bất đối xứng

Bảng 2. Hệ thống mật mã bất đối xứng

Tên phương thức

Phương pháp hack
(mat. vấn đề)

Sức mạnh mật mã, MIPS

Ghi chú

2.7 1028 cho khóa 1300 bit

Được phát triển vào năm 1977 bởi Ron Rivest, Adi Shamir và Leonard Eidelman.
Bao gồm nhiều tiêu chuẩn

phân tích số nguyên tố lớn

El-Gamal
(El Gamal)

tìm logarit rời rạc trong trường hữu hạn

với cùng độ dài khóa, độ mạnh mật mã bằng RSA

Được thiết kế bởi ElGamal. Được sử dụng trong thuật toán chữ ký số của DSS tiêu chuẩn DSA

phương trình eliptic

giải phương trình eliptic

sức mạnh và tốc độ mật mã cao hơn RSA

Hướng hiện đại. Được phát triển bởi nhiều nhà toán học hàng đầu

Phương pháp RSA hiện là tiêu chuẩn thực tế trong các hệ thống bảo mật thông tin và được CCITT (Ủy ban tư vấn về điện báo và điện thoại quốc tế) khuyến nghị trong tiêu chuẩn X.509. RSA được sử dụng trong nhiều tiêu chuẩn quốc tế (S-HTTP, PEM, S-MIME, S/WAN, STT, SSL, PCT, SWIFT, ANSI X.9.31, v.v.), trong hệ thống thẻ tín dụng, trong hệ điều hành để bảo vệ các giao thức mạng.
Một lượng lớn nghiên cứu khoa học đã được thực hiện trên các phương pháp RSA và El-Gamal, một số lượng lớn các phương pháp phân tích mật mã và bảo vệ chống lại các cuộc tấn công đã được nghiên cứu và độ mạnh mật mã đã được tính toán chi tiết tùy thuộc vào độ dài khóa và các yếu tố khác. thông số. Cả hai phương pháp đều có cùng độ mạnh mật mã (có cùng độ dài khóa) và tốc độ gần như nhau. Xét rằng phương pháp đường cong elip đang được thử nghiệm và chưa bị tấn công nhiều như phương pháp RSA và El-Gamal, việc sử dụng hai phương pháp sau trong các hệ thống mã hóa có vẻ thích hợp hơn.
Một mô tả chi tiết về các thuật toán này được đưa ra trong.

Chữ ký số điện tử

Nếu thông tin được trao đổi giữa các bên không tin tưởng lẫn nhau hoặc muốn thực hiện các hành động chống lại nhau (ngân hàng và khách hàng, cửa hàng và người mua), thì cần phải sử dụng các phương pháp mã hóa bất đối xứng, cũng như phương pháp chữ ký số.
Cần phải đảm bảo không chỉ tính bảo mật mà còn cả tính toàn vẹn của tin nhắn (không có khả năng thay thế tin nhắn hoặc thay đổi bất cứ điều gì trong đó), cũng như quyền tác giả. Ngoài ra, cần đề phòng tác giả tin nhắn từ chối gửi tin nhắn đã ký.
Chữ ký điện tử của tài liệu cho phép bạn thiết lập tính xác thực của nó. Ngoài ra, các biện pháp mật mã còn cung cấp khả năng bảo vệ chống lại các hành động độc hại sau:

  • từ chối (từ chối) - thuê bao A tuyên bố rằng anh ta không gửi tin nhắn cho B, mặc dù thực tế là anh ta đã làm vậy;
  • sửa đổi (thay đổi) – thuê bao B thay đổi tài liệu và tuyên bố rằng mình đã nhận được tài liệu này (đã sửa đổi) từ thuê bao A;
  • thay thế - thuê bao B tạo một tài liệu (mới) và nói rằng anh ta đã nhận được nó từ thuê bao A;
  • chặn chủ động - kẻ xâm nhập (được kết nối với mạng) chặn tài liệu (tệp) và thay đổi chúng;
  • “giả trang” – thuê bao B gửi tài liệu thay mặt cho thuê bao A;
  • lặp lại – thuê bao B lặp lại tài liệu đã truyền trước đó mà thuê bao A đã gửi cho thuê bao B.

Tất cả các loại hành động ác ý nêu trên đều gây ra thiệt hại đáng kể. Ngoài ra, khả năng xảy ra các hành vi độc hại làm suy yếu niềm tin vào công nghệ máy tính. Vấn đề xác thực có thể được giải quyết dựa trên phương pháp mã hóa bằng cách phát triển các thuật toán và chương trình đặc biệt.
Khi chọn thuật toán và công nghệ xác thực, cần cung cấp khả năng bảo vệ đáng tin cậy chống lại tất cả các loại hành động (mối đe dọa) độc hại nêu trên. Tuy nhiên, trong khuôn khổ mật mã cổ điển (khóa đơn), rất khó để bảo vệ khỏi tất cả các loại mối đe dọa trên, vì về cơ bản có khả năng xảy ra các hành động nguy hiểm bởi một trong các bên sở hữu khóa bí mật.
Chẳng hạn, không ai có thể ngăn cản người đăng ký tạo bất kỳ tài liệu nào, mã hóa nó bằng khóa chung hiện có của khách hàng và ngân hàng, sau đó tuyên bố rằng anh ta đã nhận được tài liệu này từ một người truyền hợp pháp.
Sẽ hiệu quả hơn khi sử dụng các sơ đồ dựa trên mật mã hai khóa. Trong trường hợp này, mỗi thuê bao truyền có khóa chữ ký bí mật riêng và tất cả các thuê bao đều có khóa chung không bí mật của thuê bao truyền.
Các khóa công khai này có thể được hiểu là một tập hợp các quan hệ xác minh cho phép người ta đánh giá tính xác thực của chữ ký của thuê bao truyền, nhưng không cho phép người ta khôi phục khóa chữ ký bí mật. Người đăng ký truyền hoàn toàn chịu trách nhiệm về khóa riêng của mình. Không ai ngoài anh ta có thể tạo ra một chữ ký chính xác. Khóa bí mật của thuê bao truyền có thể được coi là con dấu cá nhân và chủ sở hữu phải bằng mọi cách có thể hạn chế quyền truy cập vào nó của những người không được phép. .
Để triển khai ý tưởng mã hóa mở trên thực tế, cần tìm câu trả lời cụ thể và mang tính xây dựng cho các câu hỏi sau:

  • Làm thế nào để “trộn” khóa riêng của người dùng với nội dung của tài liệu để chúng trở nên không thể tách rời?
  • Làm cách nào để kiểm tra xem nội dung của tài liệu được ký và khóa cá nhân của người dùng có xác thực hay không mà không cần biết trước cái này hay cái kia?
  • Làm thế nào để đảm bảo rằng tác giả có thể sử dụng lại cùng một khóa riêng lẻ để ký điện tử cho một số lượng lớn tài liệu điện tử?
  • Làm cách nào chúng tôi có thể đảm bảo rằng không thể khôi phục khóa cá nhân của người dùng bằng bất kỳ số lượng tài liệu điện tử nào được ký với nó?
  • Làm thế nào để đảm bảo tính xác thực của việc xác minh chữ ký số và nội dung của tài liệu điện tử?
  • Làm thế nào để đảm bảo giá trị pháp lý của một tài liệu điện tử có chữ ký số tồn tại mà không có bản sao giấy hoặc hình thức thay thế khác?

Phải mất khoảng 20 năm để trả lời tất cả những câu hỏi này kể từ khi ý tưởng này được đưa ra lần đầu tiên vào năm 1976 trong một bài báo của Whitfield Diffie và Martin Hellman. Bây giờ chúng ta có thể nói chắc chắn rằng tất cả những vấn đề này đã được giải quyết: có đầy đủ các phương tiện kỹ thuật để cấp phép cho các tài liệu điện tử, được gọi là chữ ký số. Các nguyên tắc hiện đại để xây dựng hệ thống chữ ký số rất đơn giản và tinh tế:

  • phương pháp tính toán và xác minh chữ ký số của tất cả người dùng hệ thống đều giống nhau và dựa trên các bài toán phổ biến;
  • phương pháp tính khóa xác thực chữ ký số và khóa tạo chữ ký số riêng lẻ cũng giống nhau đối với mọi người và được nhiều người biết đến;
  • các khóa riêng lẻ để tạo chữ ký số được người dùng tự chọn theo luật ngẫu nhiên từ một tập hợp lớn tất cả các khóa có thể có;
  • Với một thuật toán chữ ký số cụ thể, sức mạnh của nó có thể được đánh giá mà không liên quan đến bất kỳ thông tin “bí mật” nào chỉ dựa trên các kết quả toán học đã biết và các giả định hợp lý về sức mạnh tính toán của kẻ tấn công tiềm năng.

Bảo vệ bằng mật mã có nghĩa là đảm bảo tính xác thực và xác thực của thông tin, bên cạnh việc giải quyết vấn đề duy trì tính bảo mật của thông tin. Các chức năng này được thực hiện bằng công nghệ chữ ký số.
Sơ đồ hoạt động của chữ ký số được thể hiện trong hình. 3.



Cơm. 3. Thuật toán chữ ký số điện tử

Đầu vào của thuật toán là một tệp, không nhất thiết phải là văn bản, yêu cầu chính đối với tham số đầu vào của chữ ký số là độ dài cố định, để làm điều này, hàm băm được sử dụng.
Về mặt lý thuyết, việc sử dụng các phương tiện mã hóa khác nhau hứa hẹn triển vọng tươi sáng cho tất cả các công ty sử dụng Internet trong hoạt động của họ, nhưng ở đây nảy sinh một vấn đề mới - tìm ra sự thỏa hiệp với nhà nước và luật pháp của nhà nước, vấn đề này sẽ được đề cập chi tiết.
Theo Luật Liên bang “Về chữ ký điện tử số” số 1-F3 ngày 10 tháng 1 năm 2002, chữ ký số điện tử trên văn bản điện tử được công nhận tương đương với chữ ký viết tay trên văn bản giấy. Quy định pháp lý cũng được cung cấp cho việc tổ chức quản lý tài liệu điện tử, phân phối khóa công khai và khóa riêng, xây dựng trung tâm chứng nhận và xác định trách nhiệm của các bên.
Việc thông qua luật này, mặc dù có một số điểm không chắc chắn, đã giúp điều chỉnh việc sử dụng các phương tiện mã hóa bất đối xứng, trong trường hợp này là chữ ký số, để bảo vệ dữ liệu trên Internet.

Văn học

  1. Shannon C.E. Lý thuyết truyền thông của hệ thống bí mật. Tạp chí Kỹ thuật Hệ thống Bell số 28, 1949, tr. 656 - 715.
  2. Ấn bản Tiêu chuẩn Xử lý Thông tin Liên bang 46-2. Tiêu chuẩn mã hóa dữ liệu (DES). NIST, Bộ Thương mại Hoa Kỳ, Washington D.C., 1993.
  3. GOST 28147-89. Các hệ thống xử lý thông tin. Bảo vệ mật mã. Thuật toán chuyển đổi mật mã.
  4. Bruce Schneier, Mật mã ứng dụng: Giao thức, thuật toán và mã nguồn trong C. John Willey & Sons, 1994.
  5. Nechvatal James. Mật mã khóa công khai. NIST, Gaithersburg, 1990.
  6. Weiner M. Tìm kiếm khóa DES hiệu quả: Báo cáo kỹ thuật TR-244, Trường Khoa học Máy tính, Đại học Carleton, 1994.
  7. Odlyzko A.M. Tương lai của hệ số nguyên. Cryptobytes, Phòng thí nghiệm RSA.- tập. 1, N 2, 1995, tr. 5 - 12.
  8. Rogaway P. Tính bảo mật của DESX. Cryptobytes, Phòng thí nghiệm RSA, tập. 2, N 2, 1996, tr. 8 - 11.
  9. Kaliski B., Robshaw M. Mã hóa đa dạng: cân nhắc tính bảo mật và hiệu suất. //Tiến sĩ Tạp chí của Dobb, tháng 1 năm 1996, tr. 123 - 127.
  10. Rivest R.L. Thuật toán mã hóa RC5. Cryptobytes, Phòng thí nghiệm RSA, tập. 1, N 1, 1995, tr. 9 - 11.
  11. Kaliski B., Yiqun Lisa Yin. Về tính bảo mật của thuật toán RC5. Cryptobytes, Phòng thí nghiệm RSA, tập. 1, N 2, 1995, tr. 12.
  12. Oleinik V. Xoay vòng trong thuật toán chuyển đổi dữ liệu mật mã GOST 28147-89. http://www.dekart.ru
  13. Andrei Vinokurov. Thuật toán mã hóa GOST 28147-89, việc sử dụng và triển khai nó cho các máy tính chạy nền tảng Intel x86.
  14. Cá nóc là gì? http://www.halyava.ru/aaalexey/CryptFAQ.html.
  15. Linn J. Nâng cao quyền riêng tư cho thư điện tử trên Internet: Phần I: Quy trình xác thực và mã hóa thư. RFC 1421, 1993.
  16. Evtushenko Vladimir. Ba DES. Tiêu chuẩn mới? http://www.bgs.ru/russian/security05.html.
  17. GOST28147-89 là gì? http://www.halyava.ru/aaalexey/GOST.html.
  18. Andrew Jelly. /Tiêu chuẩn mật mã trong thiên niên kỷ mới/, http://www.baltics.ru/~andrew/AES_Crypto.html.
  19. Thuật toán mã hóa Rijndael. http://www.stophack.ru/spec/rijndael.shtml.