Hệ thống mật mã
Hệ thống mật mã là việc triển khai các kỹ thuật mật mã và cơ sở hạ tầng đi kèm của chúng để cung cấp các dịch vụ an toàn thông tin. Hệ thống mật mã còn được gọi làcipher system.
Chúng ta hãy thảo luận về một mô hình đơn giản của một hệ thống mật mã cung cấp tính bảo mật cho thông tin được truyền đi. Mô hình cơ bản này được mô tả trong hình minh họa bên dưới -
Hình minh họa cho thấy người gửi muốn chuyển một số dữ liệu nhạy cảm đến người nhận theo cách mà bất kỳ bên nào chặn hoặc nghe trộm kênh liên lạc đều không thể trích xuất dữ liệu.
Mục tiêu của hệ thống mật mã đơn giản này là vào cuối quá trình, chỉ người gửi và người nhận mới biết được bản rõ.
Các thành phần của hệ thống mật mã
Các thành phần khác nhau của hệ thống mật mã cơ bản như sau:
Plaintext. Nó là dữ liệu cần được bảo vệ trong quá trình truyền.
Encryption Algorithm.Nó là một quá trình toán học tạo ra một bản mã cho bất kỳ bản rõ và khóa mã hóa nào. Nó là một thuật toán mật mã lấy bản rõ và một khóa mã hóa làm đầu vào và tạo ra một bản mã.
Ciphertext.Nó là phiên bản xáo trộn của bản rõ được tạo ra bởi thuật toán mã hóa bằng cách sử dụng một khóa mã hóa cụ thể. Bản mã không được bảo vệ. Nó chảy trên kênh công cộng. Nó có thể bị chặn hoặc bị xâm phạm bởi bất kỳ ai có quyền truy cập vào kênh liên lạc.
Decryption Algorithm,Nó là một quá trình toán học, tạo ra một bản rõ duy nhất cho bất kỳ bản mã và khóa giải mã nhất định nào. Nó là một thuật toán mật mã lấy một bản mã và một khóa giải mã làm đầu vào và xuất ra một bản rõ. Thuật toán giải mã về cơ bản đảo ngược thuật toán mã hóa và do đó có liên quan chặt chẽ với nó.
Encryption Key.Nó là một giá trị mà người gửi đã biết. Người gửi nhập khóa mã hóa vào thuật toán mã hóa cùng với bản rõ để tính toán bản mã.
Decryption Key.Nó là một giá trị mà người nhận biết. Khóa giải mã có liên quan đến khóa mã hóa, nhưng không phải lúc nào cũng giống với nó. Máy thu nhập khóa giải mã vào thuật toán giải mã cùng với bản mã để tính toán bản rõ.
Đối với một hệ thống mật mã nhất định, một tập hợp tất cả các khóa giải mã có thể có được gọi là key space.
An interceptor(kẻ tấn công) là một thực thể trái phép cố gắng xác định bản rõ. Anh ta có thể nhìn thấy bản mã và có thể biết thuật toán giải mã. Tuy nhiên, anh ta không bao giờ được biết khóa giải mã.
Các loại hệ thống mật mã
Về cơ bản, có hai loại hệ thống mật mã dựa trên cách thức mã hóa-giải mã được thực hiện trong hệ thống -
- Mã hóa khóa đối xứng
- Mã hóa khóa không đối xứng
Sự khác biệt chính giữa các hệ thống mật mã này là mối quan hệ giữa mã hóa và khóa giải mã. Về mặt logic, trong bất kỳ hệ thống mật mã nào, cả hai khóa đều được liên kết chặt chẽ với nhau. Thực tế là không thể giải mã bản mã bằng khóa không liên quan đến khóa mã hóa.
Mã hóa khóa đối xứng
Quá trình mã hóa ở đâu same keys are used for encrypting and decrypting thông tin được gọi là Mã hóa khóa đối xứng.
Việc nghiên cứu các hệ thống mật mã đối xứng được gọi là symmetric cryptography. Hệ thống mật mã đối xứng đôi khi cũng được gọi làsecret key cryptosystems.
Một vài ví dụ nổi tiếng về phương pháp mã hóa khóa đối xứng là - Tiêu chuẩn mã hóa kỹ thuật số (DES), Triple-DES (3DES), IDEA và BLOWFISH.
Trước năm 1970, tất cả các hệ thống mật mã đều sử dụng mã hóa khóa đối xứng. Ngay cả ngày nay, mức độ liên quan của nó là rất cao và nó đang được sử dụng rộng rãi trong nhiều hệ mật mã. Rất ít khả năng mã hóa này sẽ biến mất, vì nó có một số lợi thế nhất định so với mã hóa khóa bất đối xứng.
Các đặc điểm nổi bật của hệ thống mật mã dựa trên mã hóa khóa đối xứng là:
Những người sử dụng mã hóa khóa đối xứng phải chia sẻ một khóa chung trước khi trao đổi thông tin.
Các phím được khuyến nghị thay đổi thường xuyên để ngăn chặn bất kỳ cuộc tấn công nào vào hệ thống.
Cần tồn tại một cơ chế mạnh mẽ để trao đổi khóa giữa các bên giao tiếp. Do các phím được yêu cầu thay đổi thường xuyên, cơ chế này trở nên đắt đỏ và cồng kềnh.
Trong một nhóm n mọi người, để cho phép giao tiếp hai bên giữa hai người bất kỳ, số lượng khóa cần thiết cho nhóm là n × (n – 1)/2.
Độ dài của Khóa (số bit) trong mã hóa này nhỏ hơn và do đó, quá trình mã hóa-giải mã nhanh hơn so với mã hóa khóa không đối xứng.
Công suất xử lý của hệ thống máy tính cần thiết để chạy thuật toán đối xứng là ít hơn.
Thách thức của Hệ thống mật mã khóa đối xứng
Có hai thách thức hạn chế khi sử dụng mật mã khóa đối xứng.
Key establishment- Trước bất kỳ giao tiếp nào, cả người gửi và người nhận cần phải đồng ý về một khóa đối xứng bí mật. Nó yêu cầu một cơ chế thiết lập khóa an toàn tại chỗ.
Trust Issue- Vì người gửi và người nhận sử dụng cùng một khóa đối xứng, nên có một yêu cầu ngầm rằng người gửi và người nhận phải 'tin tưởng' lẫn nhau. Ví dụ, có thể xảy ra trường hợp người nhận bị mất chìa khóa cho kẻ tấn công và người gửi không được thông báo.
Hai thách thức này đang hạn chế rất nhiều đối với giao tiếp ngày nay. Ngày nay, mọi người cần trao đổi thông tin với các bên không quen thuộc và không đáng tin cậy. Ví dụ: giao tiếp giữa người bán trực tuyến và khách hàng. Những hạn chế này của mã hóa khóa đối xứng đã làm phát sinh các lược đồ mã hóa khóa không đối xứng.
Mã hóa khóa không đối xứng
Quá trình mã hóa ở đâu different keys are used for encrypting and decrypting the informationđược gọi là Mã hóa khóa không đối xứng. Mặc dù các khóa khác nhau, nhưng chúng có liên quan về mặt toán học và do đó, việc truy xuất bản rõ bằng cách giải mã bản mã là khả thi. Quá trình này được mô tả trong hình minh họa sau:
Bất đối xứng chính Encryption được phát minh trong 20 ngày kỷ để đi qua sự cần thiết của pre-shared key bí mật giữa những người giao tiếp. Các tính năng nổi bật của lược đồ mã hóa này như sau:
Mỗi người dùng trong hệ thống này cần có một cặp khóa khác nhau, private key và public key. Các khóa này có liên quan về mặt toán học - khi một khóa được sử dụng để mã hóa, khóa còn lại có thể giải mã bản mã trở lại bản rõ ban đầu.
Nó yêu cầu đặt khóa công khai vào kho lưu trữ công khai và khóa cá nhân như một bí mật được bảo vệ tốt. Do đó, lược đồ mã hóa này còn được gọi làPublic Key Encryption.
Mặc dù các khóa công khai và riêng tư của người dùng có liên quan với nhau, nhưng về mặt tính toán không khả thi để tìm từ khóa khác. Đây là một điểm mạnh của chương trình này.
Khi Host1 cần gửi dữ liệu đến Host2, anh ta sẽ lấy khóa công khai của Host2 từ kho lưu trữ, mã hóa dữ liệu và truyền.
Host2 sử dụng khóa riêng của mình để trích xuất bản rõ.
Độ dài của các khóa (số bit) trong mã hóa này lớn và do đó, quá trình mã hóa-giải mã chậm hơn so với mã hóa khóa đối xứng.
Công suất xử lý của hệ thống máy tính yêu cầu chạy thuật toán bất đối xứng cao hơn.
Hệ thống mật mã đối xứng là một khái niệm tự nhiên. Ngược lại, các hệ thống mật mã khóa công khai khá khó hiểu.
Bạn có thể nghĩ, làm thế nào mà khóa mã hóa và khóa giải mã lại có thể 'liên quan đến nhau', mà lại không thể xác định được khóa giải mã từ khóa mã hóa? Câu trả lời nằm trong các khái niệm toán học. Có thể thiết kế một hệ thống mật mã mà các khóa của nó có thuộc tính này. Khái niệm về mật mã khóa công khai là tương đối mới. Có ít thuật toán khóa công khai được biết đến hơn là thuật toán đối xứng.
Thách thức của Hệ thống mật mã khóa công khai
Các hệ thống mật mã khóa công khai có một thách thức quan trọng - người dùng cần tin tưởng rằng khóa công khai mà anh ta đang sử dụng trong giao tiếp với một người thực sự là khóa công khai của người đó và không bị một bên thứ ba độc hại giả mạo.
Điều này thường được thực hiện thông qua Cơ sở hạ tầng khóa công khai (PKI) bao gồm một bên thứ ba đáng tin cậy. Bên thứ ba quản lý an toàn và chứng thực tính xác thực của khóa công khai. Khi bên thứ ba được yêu cầu cung cấp khóa công khai cho bất kỳ người giao tiếp X nào, họ được tin tưởng cung cấp khóa công khai chính xác.
Bên thứ ba tự thỏa mãn về danh tính người dùng bằng quy trình chứng thực, công chứng hoặc một số quy trình khác - rằng X là một và duy nhất, hoặc duy nhất trên toàn cầu X. Phương pháp phổ biến nhất để cung cấp các khóa công khai đã được xác minh là nhúng chúng trong chứng chỉ được ký điện tử bởi bên thứ ba đáng tin cậy.
Mối quan hệ giữa các lược đồ mã hóa
Dưới đây là tóm tắt các thuộc tính khóa cơ bản của hai loại hệ thống mật mã:
Hệ thống mật mã đối xứng | Hệ thống mật mã khóa công khai | |
---|---|---|
Relation between Keys | Tương tự | Khác nhau, nhưng liên quan về mặt toán học |
Khóa mã hóa | Đối xứng | Công cộng |
Khóa giải mã | Đối xứng | Riêng tư |
Do những ưu điểm và nhược điểm của cả hai hệ thống, hệ thống mật mã khóa đối xứng và khóa công khai thường được sử dụng cùng nhau trong các hệ thống an toàn thông tin thực tế.
Nguyên tắc của Kerckhoff cho Hệ thống mật mã
Trong 19 ngày thế kỷ, một mật mã A. Hà Lan Kerckhoff trang bị các yêu cầu của một hệ mật tốt. Kerckhoff tuyên bố rằng một hệ thống mật mã phải được bảo mật ngay cả khi mọi thứ về hệ thống, ngoại trừ khóa, là kiến thức công khai. Sáu nguyên tắc thiết kế được xác định bởi Kerckhoff cho hệ thống mật mã là:
Trên thực tế, hệ thống mật mã phải không thể phá vỡ, nếu không muốn nói là về mặt toán học.
Việc để rơi hệ thống mật mã vào tay kẻ xâm nhập không được dẫn đến bất kỳ sự xâm phạm nào của hệ thống, tránh bất kỳ sự bất tiện nào cho người dùng.
Khóa phải dễ truyền đạt, dễ nhớ và có thể thay đổi.
Bản mã phải được truyền qua điện báo, một kênh không an toàn.
Bộ máy mã hóa và tài liệu phải được di động và có thể hoạt động bởi một người duy nhất.
Cuối cùng, điều cần thiết là hệ thống phải dễ sử dụng, không đòi hỏi sự căng thẳng về tinh thần cũng như kiến thức về một chuỗi dài các quy tắc để tuân thủ.
Quy tắc thứ hai hiện được gọi là Kerckhoff principle. Nó được áp dụng trong hầu như tất cả các thuật toán mã hóa hiện đại như DES, AES, v.v. Các thuật toán công khai này được coi là an toàn triệt để. Tính bảo mật của thông điệp được mã hóa chỉ phụ thuộc vào tính bảo mật của khóa mã hóa bí mật.
Giữ bí mật các thuật toán có thể hoạt động như một rào cản đáng kể đối với việc phân tích mật mã. Tuy nhiên, việc giữ bí mật các thuật toán chỉ có thể thực hiện được khi chúng được sử dụng trong một vòng giới hạn nghiêm ngặt.
Trong kỷ nguyên hiện đại, mật mã cần phục vụ cho những người dùng có kết nối Internet. Trong những trường hợp như vậy, việc sử dụng một thuật toán bí mật là không khả thi, do đó các nguyên tắc Kerckhoff đã trở thành hướng dẫn thiết yếu để thiết kế các thuật toán trong mật mã hiện đại.