Mật mã học - Hướng dẫn nhanh

Con người từ thời đại có hai nhu cầu cố hữu - (a) giao tiếp và chia sẻ thông tin và (b) giao tiếp có chọn lọc. Hai nhu cầu này đã làm nảy sinh nghệ thuật mã hóa thông điệp theo cách mà chỉ những người có mục đích mới có thể truy cập thông tin. Những người không được phép không thể trích xuất bất kỳ thông tin nào, ngay cả khi các tin nhắn lộn xộn rơi vào tay họ.

Nghệ thuật và khoa học của việc che giấu các thông điệp nhằm tạo ra bí mật trong an toàn thông tin được công nhận là mật mã.

Từ 'cryptography' được tạo ra bằng cách kết hợp hai từ Hy Lạp, 'Krypto' có nghĩa là ẩn và 'graphene' nghĩa là viết.

Lịch sử mật mã

Nghệ thuật mật mã được coi là ra đời cùng với nghệ thuật viết. Khi các nền văn minh phát triển, loài người được tổ chức thành các bộ lạc, nhóm và vương quốc. Điều này dẫn đến sự xuất hiện của các ý tưởng như quyền lực, các trận chiến, quyền tối cao và chính trị. Những ý tưởng này tiếp tục thúc đẩy nhu cầu tự nhiên của con người là liên lạc bí mật với người nhận có chọn lọc, từ đó đảm bảo sự phát triển liên tục của mật mã.

Nguồn gốc của mật mã được tìm thấy trong các nền văn minh La Mã và Ai Cập.

Chữ tượng hình - Kỹ thuật mật mã cũ nhất

Bằng chứng đầu tiên được biết đến về mật mã có thể bắt nguồn từ việc sử dụng 'chữ tượng hình'. Khoảng 4000 năm trước, người Ai Cập đã từng giao tiếp bằng những thông điệp được viết bằng chữ tượng hình. Mật mã này là bí mật chỉ được biết đến với các kinh sư, những người đã từng thay mặt các vị vua để truyền thông điệp. Một trong những chữ tượng hình như vậy được hiển thị bên dưới.

Sau đó, các học giả đã chuyển sang sử dụng các mật mã thay thế đơn chữ cái đơn giản trong khoảng thời gian từ 500 đến 600 trước Công nguyên. Điều này liên quan đến việc thay thế các bảng chữ cái của tin nhắn bằng các bảng chữ cái khác với một số quy tắc bí mật. Điều nàyrule trở thành một key để lấy lại tin nhắn từ tin nhắn bị cắt xén.

Phương pháp mật mã La Mã trước đây, thường được gọi là Caesar Shift Cipher, Dựa vào việc chuyển các chữ cái của một tin nhắn theo một số đã thỏa thuận (ba là lựa chọn phổ biến), người nhận tin nhắn này sau đó sẽ chuyển các chữ cái lại theo cùng một số và nhận được tin nhắn gốc.

Steganography

Steganography cũng tương tự nhưng bổ sung thêm một khía cạnh khác cho Cryptography. Trong phương pháp này, mọi người không chỉ muốn bảo vệ tính bí mật của thông tin bằng cách che giấu nó, mà họ còn muốn đảm bảo rằng bất kỳ người nào không được phép không có bằng chứng cho thấy thông tin đó tồn tại. Ví dụ,invisible watermarking.

Trong kỹ thuật lấy mật mã, người nhận không chủ ý hoặc kẻ xâm nhập không biết thực tế là dữ liệu được quan sát có chứa thông tin ẩn. Trong mật mã, kẻ xâm nhập thường biết rằng dữ liệu đang được truyền đạt, vì chúng có thể thấy thông điệp được mã hóa / xáo trộn.

Sự phát triển của mật mã

Trong và sau thời kỳ Phục hưng Châu Âu, các quốc gia Ý và Giáo hoàng khác nhau đã dẫn đầu sự phát triển nhanh chóng của các kỹ thuật mật mã. Nhiều kỹ thuật phân tích và tấn công khác nhau đã được nghiên cứu trong thời đại này để phá mã bí mật.

  • Các kỹ thuật mã hóa được cải tiến chẳng hạn như Vigenere Codingra đời trong 15 thứ thế kỷ, trong đó cung cấp di chuyển ký tự trong tin nhắn với một số nơi biến thay vì di chuyển chúng cùng một số nơi.

  • Chỉ sau 19 ngày thế kỷ, mật mã phát triển từ ad hoc phương pháp tiếp cận để mã hóa để nghệ thuật phức tạp hơn và khoa học về an ninh thông tin.

  • Trong những năm đầu 20 thứ thế kỷ, sự phát minh ra máy cơ khí và điện, chẳng hạn nhưEnigma rotor machine, cung cấp các phương tiện mã hóa thông tin tiên tiến và hiệu quả hơn.

  • Trong suốt thời kỳ Chiến tranh thế giới thứ hai, cả hai cryptographycryptanalysis trở thành toán học quá mức.

Với những tiến bộ đang diễn ra trong lĩnh vực này, các tổ chức chính phủ, đơn vị quân đội và một số công ty đã bắt đầu áp dụng các ứng dụng của mật mã. Họ sử dụng mật mã để bảo vệ bí mật của họ khỏi những người khác. Giờ đây, sự xuất hiện của máy tính và Internet đã mang lại hiệu quả cho mật mã trong tầm với của những người bình thường.

Mật mã hiện đại là nền tảng của bảo mật máy tính và truyền thông. Nền tảng của nó dựa trên các khái niệm khác nhau của toán học như lý thuyết số, lý thuyết độ phức tạp tính toán và lý thuyết xác suất.

Đặc điểm của mật mã học hiện đại

Có ba đặc điểm chính tách biệt mật mã hiện đại với cách tiếp cận cổ điển.

Mật mã cổ điển Mật mã học hiện đại
Nó thao tác các ký tự truyền thống, tức là các chữ cái và chữ số trực tiếp. Nó hoạt động trên chuỗi bit nhị phân.
Nó chủ yếu dựa trên "bảo mật thông qua sự che khuất". Các kỹ thuật được sử dụng để mã hóa được giữ bí mật và chỉ các bên liên quan đến giao tiếp mới biết về chúng. Nó dựa trên các thuật toán toán học được biết đến rộng rãi để mã hóa thông tin. Bí mật có được thông qua một khóa bí mật được sử dụng làm hạt giống cho các thuật toán. Khó khăn về tính toán của các thuật toán, không có khóa bí mật, v.v. khiến kẻ tấn công không thể lấy được thông tin ban đầu ngay cả khi anh ta biết thuật toán được sử dụng để mã hóa.
Nó yêu cầu toàn bộ hệ thống mật mã để giao tiếp bí mật. Mật mã hiện đại yêu cầu các bên quan tâm đến giao tiếp an toàn chỉ được sở hữu khóa bí mật.

Bối cảnh của Mật mã

Mật mã học, nghiên cứu về các hệ thống mật mã, có thể được chia thành hai nhánh:

  • Cryptography
  • Cryptanalysis

Mật mã là gì?

Mật mã học là nghệ thuật và khoa học tạo ra một hệ thống mật mã có khả năng cung cấp bảo mật thông tin.

Mật mã liên quan đến việc bảo mật dữ liệu kỹ thuật số thực tế. Nó đề cập đến việc thiết kế các cơ chế dựa trên các thuật toán toán học cung cấp các dịch vụ bảo mật thông tin cơ bản. Bạn có thể coi mật mã là việc thiết lập một bộ công cụ lớn chứa các kỹ thuật khác nhau trong các ứng dụng bảo mật.

Cryptanalysis là gì?

Nghệ thuật và khoa học phá vỡ văn bản mật mã được gọi là phá mã.

Phân tích mật mã là nhánh chị em của mật mã và cả hai cùng tồn tại. Quá trình mật mã tạo ra văn bản mật mã để truyền hoặc lưu trữ. Nó liên quan đến việc nghiên cứu cơ chế mật mã với ý định phá vỡ chúng. Phân tích mật mã cũng được sử dụng trong quá trình thiết kế các kỹ thuật mật mã mới để kiểm tra sức mạnh bảo mật của chúng.

Note - Mật mã học quan tâm đến việc thiết kế các hệ thống mật mã, trong khi phân tích mật mã nghiên cứu sự phá vỡ các hệ thống mật mã.

Dịch vụ bảo mật của mật mã

Mục tiêu chính của việc sử dụng mật mã là cung cấp bốn dịch vụ bảo mật thông tin cơ bản sau đây. Bây giờ chúng ta hãy xem các mục tiêu có thể được dự định thực hiện bằng mật mã.

Bảo mật

Bảo mật là dịch vụ bảo mật cơ bản được cung cấp bởi mật mã. Nó là một dịch vụ bảo mật giữ thông tin từ một người không được phép. Nó đôi khi được gọi làprivacy hoặc là secrecy.

Tính bảo mật có thể đạt được thông qua nhiều phương tiện bắt đầu từ bảo mật vật lý đến việc sử dụng các thuật toán toán học để mã hóa dữ liệu.

Toàn vẹn dữ liệu

Đây là dịch vụ bảo mật xử lý việc xác định bất kỳ thay đổi nào đối với dữ liệu. Dữ liệu có thể bị sửa đổi bởi một thực thể trái phép một cách cố ý hoặc vô tình. Dịch vụ toàn vẹn xác nhận rằng dữ liệu có còn nguyên vẹn hay không kể từ lần cuối cùng được tạo, truyền hoặc lưu trữ bởi người dùng được ủy quyền.

Tính toàn vẹn của dữ liệu không thể ngăn chặn việc thay đổi dữ liệu, nhưng cung cấp một phương tiện để phát hiện liệu dữ liệu có bị thao túng theo cách trái phép hay không.

Xác thực

Xác thực cung cấp nhận dạng của người khởi tạo. Nó xác nhận với người nhận rằng dữ liệu nhận được chỉ được gửi bởi một người gửi đã được xác định và xác minh.

Dịch vụ xác thực có hai biến thể -

  • Message authentication xác định người khởi tạo tin nhắn mà không liên quan đến bộ định tuyến hoặc hệ thống đã gửi tin nhắn.

  • Entity authentication là sự đảm bảo rằng dữ liệu đã được nhận từ một thực thể cụ thể, chẳng hạn như một trang web cụ thể.

Ngoài trình khởi tạo, xác thực cũng có thể cung cấp sự đảm bảo về các tham số khác liên quan đến dữ liệu như ngày và thời gian tạo / truyền.

Không bác bỏ

Đây là một dịch vụ bảo mật đảm bảo rằng một thực thể không thể từ chối quyền sở hữu của một cam kết hoặc một hành động trước đó. Đó là sự đảm bảo rằng người tạo ra dữ liệu ban đầu không thể từ chối việc tạo hoặc truyền dữ liệu nói trên cho người nhận hoặc bên thứ ba.

Tính không từ chối là đặc tính được mong muốn nhất trong các tình huống có khả năng xảy ra tranh chấp về việc trao đổi dữ liệu. Ví dụ: một khi đơn đặt hàng được đặt dưới dạng điện tử, người mua không thể từ chối đơn đặt hàng, nếu dịch vụ không từ chối đã được bật trong giao dịch này.

Nguyên thủy mật mã

Nguyên thủy của Mật mã học không gì khác ngoài các công cụ và kỹ thuật trong Mật mã có thể được sử dụng một cách chọn lọc để cung cấp một tập hợp các dịch vụ bảo mật mong muốn -

  • Encryption
  • Hàm băm
  • Mã xác thực tin nhắn (MAC)
  • Chữ ký kỹ thuật số

Bảng sau đây cho thấy các nguyên tắc có thể tự đạt được một dịch vụ bảo mật cụ thể.

Note - Các nguyên thủy mật mã có quan hệ mật thiết với nhau và chúng thường được kết hợp để đạt được một tập hợp các dịch vụ bảo mật mong muốn từ một 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ỉ có 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à đầu 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, 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 liên kết chặt chẽ với nhau. Thực tế không thể giải mã được 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ó vẫn 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 tiền 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 keypublic 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 kia 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ù khóa công khai và khóa 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 cần 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ã có thể 'liên quan' với nhau, và vẫn 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 lý 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 mọi sự bất tiện 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 giới hạn nghiêm ngặt.

Trong kỷ nguyên hiện đại, mật mã cần phải 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.

Trong thời đại hiện nay, không chỉ kinh doanh mà hầu như tất cả các mặt của đời sống con người đều do thông tin chi phối. Do đó, việc bảo vệ thông tin hữu ích khỏi các hoạt động độc hại như tấn công đã trở nên cấp thiết. Chúng ta hãy xem xét các loại tấn công mà thông tin thường phải chịu.

Các cuộc tấn công thường được phân loại dựa trên hành động được thực hiện bởi kẻ tấn công. Do đó, một cuộc tấn công có thểpassive hoặc là active.

Tấn công bị động

Mục tiêu chính của một cuộc tấn công thụ động là đạt được unauthorized access to the information. Ví dụ, các hành động như chặn và nghe trộm kênh liên lạc có thể được coi là tấn công bị động.

Những hành động này về bản chất là thụ động, vì chúng không ảnh hưởng đến thông tin cũng như không làm gián đoạn kênh liên lạc. Một cuộc tấn công thụ động thường được coi là đánh cắp thông tin. Sự khác biệt duy nhất trong việc đánh cắp hàng hóa vật chất và ăn cắp thông tin là việc đánh cắp dữ liệu vẫn khiến chủ sở hữu phải sở hữu dữ liệu đó. Do đó, tấn công thông tin thụ động còn nguy hiểm hơn việc ăn cắp hàng hóa, vì việc đánh cắp thông tin có thể bị chủ sở hữu không nhận ra.

Tấn công chủ động

Một cuộc tấn công chủ động bao gồm việc thay đổi thông tin theo một cách nào đó bằng cách tiến hành một số quá trình trên thông tin. Ví dụ,

  • Sửa đổi thông tin theo cách trái phép.

  • Bắt đầu truyền thông tin ngoài ý muốn hoặc trái phép.

  • Thay đổi dữ liệu xác thực như tên người khởi tạo hoặc dấu thời gian được liên kết với thông tin

  • Xóa dữ liệu trái phép.

  • Từ chối quyền truy cập thông tin đối với người dùng hợp pháp (từ chối dịch vụ).

Mật mã học cung cấp nhiều công cụ và kỹ thuật để thực hiện các hệ thống mật mã có khả năng ngăn chặn hầu hết các cuộc tấn công được mô tả ở trên.

Giả định về kẻ tấn công

Chúng ta hãy xem môi trường phổ biến xung quanh các hệ thống mật mã theo sau là các kiểu tấn công được sử dụng để phá vỡ các hệ thống này -

Môi trường xung quanh hệ thống mật mã

Trong khi xem xét các cuộc tấn công có thể xảy ra đối với hệ thống mật mã, cần phải biết môi trường của các hệ thống mật mã. Các giả định và kiến ​​thức về môi trường của kẻ tấn công quyết định khả năng của anh ta.

Trong mật mã, ba giả định sau được đưa ra về môi trường bảo mật và khả năng của kẻ tấn công.

Chi tiết về sơ đồ mã hóa

Việc thiết kế một hệ thống mật mã dựa trên hai thuật toán mật mã sau:

  • Public Algorithms - Với tùy chọn này, tất cả các chi tiết của thuật toán đều nằm trong phạm vi công cộng, được mọi người biết đến.

  • Proprietary algorithms - Các chi tiết của thuật toán chỉ được biết bởi người thiết kế hệ thống và người sử dụng.

Trong trường hợp các thuật toán độc quyền, bảo mật được đảm bảo thông qua sự che giấu. Các thuật toán riêng có thể không phải là thuật toán mạnh nhất vì chúng được phát triển nội bộ và có thể không được nghiên cứu rộng rãi về điểm yếu.

Thứ hai, chúng chỉ cho phép giao tiếp giữa các nhóm kín. Do đó, chúng không phù hợp với giao tiếp hiện đại, nơi mọi người giao tiếp với số lượng lớn các thực thể đã biết hoặc chưa biết. Ngoài ra, theo nguyên tắc của Kerckhoff, thuật toán được ưu tiên công khai với độ mạnh của mã hóa nằm trong khóa .

Do đó, giả định đầu tiên về môi trường an ninh là encryption algorithm is known to the attacker.

Tính sẵn có của bản mã

Chúng tôi biết rằng một khi bản rõ được mã hóa thành bản mã, nó sẽ được đưa vào kênh công khai không an toàn (ví dụ như email) để truyền. Do đó, kẻ tấn công rõ ràng có thể cho rằng nó cóaccess to the ciphertext generated by the cryptosystem.

Tính sẵn có của Bản rõ và Bản mã

Giả định này không rõ ràng như giả định khác. Tuy nhiên, có thể có những tình huống mà kẻ tấn công có thểaccess to plaintext and corresponding ciphertext. Một số trường hợp có thể xảy ra như vậy là -

  • Kẻ tấn công tác động đến người gửi để chuyển đổi bản rõ theo sự lựa chọn của mình và lấy được bản mã.

  • Người nhận có thể vô tình tiết lộ bản rõ cho kẻ tấn công. Kẻ tấn công có quyền truy cập vào bản mã tương ứng được thu thập từ kênh mở.

  • Trong hệ thống mật mã khóa công khai, khóa mã hóa nằm trong miền mở và được biết đến với bất kỳ kẻ tấn công tiềm năng nào. Sử dụng khóa này, anh ta có thể tạo ra các cặp bản rõ và bản mã tương ứng.

Các cuộc tấn công mật mã

Mục đích cơ bản của kẻ tấn công là phá vỡ một hệ thống mật mã và tìm ra bản rõ từ bản mã. Để có được bản rõ, kẻ tấn công chỉ cần tìm ra khóa giải mã bí mật, vì thuật toán đã nằm trong miền công khai.

Do đó, anh ta nỗ lực tối đa để tìm ra khóa bí mật được sử dụng trong hệ thống mật mã. Một khi kẻ tấn công có thể xác định được khóa, hệ thống bị tấn công được coi là bị hỏng hoặc bị xâm nhập .

Dựa trên phương pháp luận được sử dụng, các cuộc tấn công vào hệ thống mật mã được phân loại như sau:

  • Ciphertext Only Attacks (COA)- Trong phương pháp này, kẻ tấn công có quyền truy cập vào một bộ (các) bản mã. Anh ta không có quyền truy cập vào bản rõ tương ứng. COA được cho là thành công khi bản rõ tương ứng có thể được xác định từ một tập bản mã nhất định. Đôi khi, khóa mã hóa có thể được xác định từ cuộc tấn công này. Các hệ thống mật mã hiện đại được bảo vệ chống lại các cuộc tấn công chỉ sử dụng bản mã.

  • Known Plaintext Attack (KPA)- Trong phương pháp này, kẻ tấn công biết bản rõ cho một số phần của bản mã. Nhiệm vụ là giải mã phần còn lại của bản mã bằng cách sử dụng thông tin này. Điều này có thể được thực hiện bằng cách xác định khóa hoặc thông qua một số phương pháp khác. Ví dụ tốt nhất của cuộc tấn công này là phân tích mật mã tuyến tính chống lại mật mã khối.

  • Chosen Plaintext Attack (CPA)- Trong phương pháp này, kẻ tấn công có mã hóa văn bản mà mình lựa chọn. Vì vậy, anh ta có cặp bản mã-bản rõ mà mình lựa chọn. Điều này đơn giản hóa nhiệm vụ xác định khóa mã hóa của anh ta. Một ví dụ của cuộc tấn công này là phân tích mật mã vi sai được áp dụng chống lại mật mã khối cũng như các hàm băm. Một hệ thống mật mã khóa công khai phổ biến, RSA cũng dễ bị tấn công bởi các cuộc tấn công đã chọn.

  • Dictionary Attack- Cuộc tấn công này có nhiều biến thể, tất cả đều liên quan đến việc biên dịch một 'từ điển'. Trong phương pháp đơn giản nhất của cuộc tấn công này, kẻ tấn công xây dựng một từ điển các bản mã và bản rõ tương ứng mà hắn đã học được trong một khoảng thời gian. Trong tương lai, khi kẻ tấn công lấy được bản mã, anh ta sẽ tham khảo từ điển để tìm bản rõ tương ứng.

  • Brute Force Attack (BFA)- Trong phương pháp này, kẻ tấn công cố gắng xác định khóa bằng cách thử tất cả các khóa có thể. Nếu khóa dài 8 bit, thì số khóa có thể có là 2 8 = 256. Kẻ tấn công biết bản mã và thuật toán, bây giờ hắn thử lần lượt tất cả 256 khóa để giải mã. Thời gian để hoàn thành cuộc tấn công sẽ rất cao nếu phím dài.

  • Birthday Attack- Đòn tấn công này là một biến thể của kỹ thuật bạo lực. Nó được sử dụng để chống lại hàm băm mật mã. Khi học sinh trong lớp được hỏi về ngày sinh của họ, câu trả lời là một trong 365 ngày có thể có. Chúng ta hãy giả định ngày sinh của học sinh đầu tiên là 3 thứ Tháng Tám Sau đó, để tìm ra sinh viên tiếp theo có ngày sinh là 3 thứ Tháng Tám, chúng ta cần phải tìm hiểu 1,25 * ?? √365 ≈ 25 sinh viên.

    Tương tự, nếu hàm băm tạo ra các giá trị băm 64 bit, thì các giá trị băm có thể có là 1,8 x 10 19 . Bằng cách liên tục đánh giá chức năng cho các đầu vào khác nhau, dự kiến ​​sẽ có được cùng một đầu ra sau khoảng 5,1x10 9 đầu vào ngẫu nhiên.

    Nếu kẻ tấn công có thể tìm thấy hai đầu vào khác nhau cung cấp cùng một giá trị băm, thì đó là collision và hàm băm đó được cho là đã bị hỏng.

  • Man in Middle Attack (MIM) - Mục tiêu của cuộc tấn công này hầu hết là các hệ thống mật mã khóa công khai, nơi có sự trao đổi khóa trước khi liên lạc diễn ra.

    • Máy chủ A muốn giao tiếp với máy chủ B , do đó yêu cầu khóa công khai của B .

    • Kẻ tấn công chặn yêu cầu này và gửi khóa công khai của anh ta.

    • Do đó, bất cứ thứ gì mà máy chủ A gửi đến máy chủ B , kẻ tấn công đều có thể đọc được.

    • Để duy trì thông tin liên lạc, những kẻ tấn công tái mã hóa các dữ liệu sau khi đọc với khóa công khai của mình và gửi đến B .

    • Kẻ tấn công gửi khóa công khai của mình như là một khóa công khai ‘s để B mất nó như thể nó được lấy nó từ một .

  • Side Channel Attack (SCA)- Loại tấn công này không chống lại bất kỳ loại hệ thống mật mã hoặc thuật toán cụ thể nào. Thay vào đó, nó được đưa ra để khai thác điểm yếu trong thực thi vật lý của hệ thống mật mã.

  • Timing Attacks- Họ khai thác thực tế rằng các phép tính khác nhau cần thời gian khác nhau để tính trên bộ xử lý. Bằng cách đo thời gian như vậy, có thể biết về một tính toán cụ thể mà bộ xử lý đang thực hiện. Ví dụ, nếu quá trình mã hóa mất nhiều thời gian hơn, điều đó cho thấy rằng khóa bí mật đã lâu.

  • Power Analysis Attacks - Các cuộc tấn công này tương tự như các cuộc tấn công định thời ngoại trừ lượng điện năng tiêu thụ được sử dụng để lấy thông tin về bản chất của các tính toán cơ bản.

  • Fault analysis Attacks - Trong các cuộc tấn công này, lỗi được tạo ra trong hệ thống mật mã và kẻ tấn công nghiên cứu kết quả đầu ra để có thông tin hữu ích.

Tính thực tiễn của các cuộc tấn công

Các cuộc tấn công vào các hệ thống mật mã được mô tả ở đây mang tính học thuật cao, vì phần lớn chúng đến từ cộng đồng học thuật. Trên thực tế, nhiều cuộc tấn công học thuật liên quan đến các giả định khá phi thực tế về môi trường cũng như khả năng của kẻ tấn công. Ví dụ, trong cuộc tấn công đã chọn-bản mã, kẻ tấn công yêu cầu một số lượng không thực tế các cặp bản mã-bản rõ được chọn có chủ ý. Nó có thể không thực tế hoàn toàn.

Tuy nhiên, thực tế là bất kỳ cuộc tấn công nào tồn tại đều phải là một nguyên nhân đáng lo ngại, đặc biệt nếu kỹ thuật tấn công có tiềm năng cải thiện.

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 dịch chuyển 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ã 'WXWR YOUO'. Đâ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 phím 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

Đây là một cải tiến đối với Mật mã Caesar. 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. Đối vớ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 đây. 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à 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 ký tự bản mã ở hàng dưới cùng bằng ký tự 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 bạo lực 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ã đơn 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 gồm các 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 (đi từ trái sang phải) trong bảng là cụm từ, loại trừ 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 đó, 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

Việc giải mã mật mã Playfair cũng đơ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ã, người nhận 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ả của việc phân tích mật mã trên bản mã và làm cho một 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ễ vỡ

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ễ gây bạo lực. Tuy nhiên, với mỗi ký tự hiện có sự thay đổi riêng lẻ từ 1 đến 26, các phím 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 "point" 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 có đượ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 đó máy thu 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.

Dữ liệu số được biểu diễn dưới dạng chuỗi ký số nhị phân (bit) không giống như bảng chữ cái. Các hệ thống mật mã hiện đại cần xử lý chuỗi nhị phân này để chuyển đổi sang chuỗi nhị phân khác. Dựa trên cách xử lý các chuỗi nhị phân này, một lược đồ mã hóa đối xứng có thể được phân loại thành:

Mật mã khối

Trong lược đồ này, văn bản nhị phân thuần túy được xử lý trong các khối (nhóm) bit tại một thời điểm; tức là một khối các bit bản rõ được chọn, một loạt các thao tác được thực hiện trên khối này để tạo ra một khối các bit bản mã. Số lượng bit trong một khối là cố định. Ví dụ, các lược đồ DES và AES có kích thước khối lần lượt là 64 và 128.

Mật mã dòng

Trong lược đồ này, bản rõ được xử lý từng bit một, tức là một bit của bản rõ được lấy và một loạt các thao tác được thực hiện trên nó để tạo ra một bit bản mã. Về mặt kỹ thuật, mật mã dòng là mật mã khối với kích thước khối là một bit.

Sơ đồ cơ bản của mật mã khối được mô tả như sau:

Mật mã khối lấy một khối các bit văn bản rõ và tạo ra một khối các bit bản mã, thường có cùng kích thước. Kích thước của khối được cố định trong lược đồ đã cho. Việc lựa chọn kích thước khối không ảnh hưởng trực tiếp đến sức mạnh của sơ đồ mã hóa. Độ bền của mật mã phụ thuộc vào độ dài khóa.

Kích thước khối

Mặc dù bất kỳ kích thước khối nào đều có thể chấp nhận được, bạn cần lưu ý các khía cạnh sau khi chọn kích thước khối.

  • Avoid very small block size- Nói kích thước khối là m bit. Khi đó, các kết hợp bit bản rõ có thể là 2 m . Nếu kẻ tấn công phát hiện ra các khối văn bản thuần túy tương ứng với một số khối bản mã đã gửi trước đó, thì kẻ tấn công có thể khởi động một kiểu 'tấn công từ điển' bằng cách xây dựng từ điển các cặp bản rõ / bản mã được gửi bằng khóa mã hóa đó. Kích thước khối lớn hơn làm cho việc tấn công khó khăn hơn vì từ điển cần phải lớn hơn.

  • Do not have very large block size- Với kích thước khối quá lớn, mật mã hoạt động kém hiệu quả. Các bản rõ như vậy sẽ cần phải được đệm trước khi được mã hóa.

  • Multiples of 8 bit - Kích thước khối được ưu tiên là bội số của 8 vì nó dễ thực hiện vì hầu hết các bộ xử lý máy tính xử lý dữ liệu theo bội số 8 bit.

Padding trong Block Cipher

Mật mã khối xử lý các khối có kích thước cố định (ví dụ 64 bit). Chiều dài của các bản rõ chủ yếu không phải là bội số của kích thước khối. Ví dụ, một bản rõ 150 bit cung cấp hai khối 64 bit mỗi khối với khối thứ ba số dư 22 bit. Khối bit cuối cùng cần được chèn thêm thông tin dư thừa để chiều dài của khối cuối cùng bằng với kích thước khối của lược đồ. Trong ví dụ của chúng tôi, 22 bit còn lại cần có thêm 42 bit dự phòng được thêm vào để cung cấp một khối hoàn chỉnh. Quá trình thêm các bit vào khối cuối cùng được gọi làpadding.

Quá nhiều đệm làm cho hệ thống hoạt động kém hiệu quả. Ngoài ra, phần đệm đôi khi có thể làm cho hệ thống không an toàn, nếu phần đệm luôn được thực hiện với các bit giống nhau.

Lược đồ mật mã khối

Có một số lượng lớn các lược đồ mật mã khối đang được sử dụng. Nhiều người trong số họ được công chúng biết đến. Các mật mã khối phổ biến và nổi bật nhất được liệt kê dưới đây.

  • Digital Encryption Standard (DES)- Mật mã khối phổ biến của những năm 1990. Bây giờ nó được coi là một mật mã khối 'bị hỏng', chủ yếu do kích thước khóa nhỏ của nó.

  • Triple DES- Nó là một sơ đồ biến thể dựa trên các ứng dụng DES lặp đi lặp lại. Nó vẫn là một mật mã khối được kính trọng nhưng không hiệu quả so với các mật mã khối nhanh hơn mới có sẵn.

  • Advanced Encryption Standard (AES) - Đây là một mật mã khối tương đối mới dựa trên thuật toán mã hóa Rijndael đã giành chiến thắng trong cuộc thi thiết kế AES.

  • IDEA- Nó là một mật mã khối đủ mạnh với kích thước khối là 64 và kích thước khóa là 128 bit. Một số ứng dụng sử dụng mã hóa IDEA, bao gồm các phiên bản đầu tiên của giao thức Pretty Good Privacy (PGP). Việc sử dụng chương trình IDEA bị hạn chế áp dụng do các vấn đề về bằng sáng chế.

  • Twofish- Lược đồ mật mã khối này sử dụng kích thước khối 128 bit và khóa có độ dài thay đổi. Nó là một trong những thí sinh lọt vào vòng chung kết AES. Nó dựa trên mã hóa khối Blowfish trước đó với kích thước khối là 64 bit.

  • Serpent- Một mật mã khối có kích thước khối 128 bit và độ dài khóa là 128, 192 hoặc 256 bit, cũng đã lọt vào vòng chung kết cuộc thi AES. Nó là một mã chậm hơn nhưng có thiết kế an toàn hơn so với mật mã khối khác.

Trong các phần tiếp theo, trước tiên chúng ta sẽ thảo luận về mô hình mật mã khối, tiếp theo là DES và AES, hai trong số những mật mã khối hiện đại có ảnh hưởng nhất.

Feistel Cipher không phải là một lược đồ cụ thể của mật mã khối. Nó là một mô hình thiết kế mà từ đó có nhiều mật mã khối khác nhau. DES chỉ là một ví dụ về Mật mã Feistel. Một hệ thống mật mã dựa trên cấu trúc mật mã Feistel sử dụng cùng một thuật toán cho cả mã hóa và giải mã.

Quy trình mã hóa

Quá trình mã hóa sử dụng cấu trúc Feistel bao gồm nhiều vòng xử lý bản rõ, mỗi vòng bao gồm một bước “thay thế” sau đó là một bước hoán vị.

Cấu trúc Feistel được thể hiện trong hình minh họa sau:

  • Khối đầu vào cho mỗi vòng được chia thành hai nửa có thể được ký hiệu là L và R cho nửa bên trái và nửa bên phải.

  • Trong mỗi vòng, nửa bên phải của khối R đi qua không đổi. Nhưng nửa bên trái, L, trải qua một hoạt động phụ thuộc vào R và khóa mã hóa. Đầu tiên, chúng tôi áp dụng một hàm mã hóa 'f' nhận hai đầu vào - khóa K và R. Hàm tạo ra đầu ra f (R, K). Sau đó, chúng tôi XOR đầu ra của hàm toán học với L.

  • Trong triển khai thực tế của Feistel Cipher, chẳng hạn như DES, thay vì sử dụng toàn bộ khóa mã hóa trong mỗi vòng, một khóa phụ thuộc vòng (khóa con) được lấy từ khóa mã hóa. Điều này có nghĩa là mỗi vòng sử dụng một khóa khác nhau, mặc dù tất cả các khóa con này đều liên quan đến khóa gốc.

  • Bước hoán vị ở cuối mỗi vòng sẽ hoán đổi L đã sửa đổi và R. không sửa đổi. Do đó, L của vòng tiếp theo sẽ là R của vòng hiện tại. Và R cho vòng tiếp theo là đầu ra L của vòng hiện tại.

  • Các bước thay thế và hoán vị trên tạo thành một 'vòng'. Số vòng được quy định bởi thiết kế thuật toán.

  • Khi vòng cuối cùng hoàn thành thì hai khối con, 'R' và 'L' được nối theo thứ tự này để tạo thành khối bản mã.

Phần khó khăn trong việc thiết kế Feistel Cipher là lựa chọn hàm tròn 'f'. Để là lược đồ không thể phá vỡ, hàm này cần có một số thuộc tính quan trọng nằm ngoài phạm vi thảo luận của chúng ta.

Quy trình giải mã

Quá trình giải mã trong mật mã Feistel gần như tương tự. Thay vì bắt đầu với một khối bản rõ, khối bản mã được đưa vào phần bắt đầu của cấu trúc Feistel và quá trình sau đó hoàn toàn giống như được mô tả trong hình minh họa đã cho.

Quá trình này được cho là gần như tương tự và không hoàn toàn giống nhau. Trong trường hợp giải mã, sự khác biệt duy nhất là các khóa con được sử dụng trong mã hóa được sử dụng theo thứ tự ngược lại.

Việc hoán đổi cuối cùng của 'L' và 'R' trong bước cuối cùng của Mật mã Feistel là điều cần thiết. Nếu chúng không được hoán đổi thì văn bản mã kết quả không thể được giải mã bằng cách sử dụng cùng một thuật toán.

Số vòng

Số vòng được sử dụng trong Mật mã Feistel phụ thuộc vào độ bảo mật mong muốn từ hệ thống. Số lượng vòng nhiều hơn cung cấp hệ thống an toàn hơn. Nhưng đồng thời, nhiều vòng hơn có nghĩa là quá trình mã hóa và giải mã chậm không hiệu quả. Do đó, số vòng trong hệ thống phụ thuộc vào sự cân bằng giữa hiệu quả và bảo mật.

Tiêu chuẩn mã hóa dữ liệu (DES) là một mật mã khối khóa đối xứng được xuất bản bởi Viện Tiêu chuẩn và Công nghệ Quốc gia (NIST).

DES là một triển khai của Mật mã Feistel. Nó sử dụng cấu trúc Feistel 16 vòng. Kích thước khối là 64-bit. Mặc dù, độ dài khóa là 64 bit, DES có độ dài khóa hiệu dụng là 56 bit, vì 8 trong số 64 bit của khóa không được sử dụng bởi thuật toán mã hóa (chỉ hoạt động như các bit kiểm tra). Cấu trúc chung của DES được mô tả trong hình minh họa sau:

Vì DES dựa trên Feistel Cipher, tất cả những gì cần thiết để chỉ định DES là:

  • Chức năng vòng
  • Lịch trình chính
  • Bất kỳ xử lý bổ sung nào - Hoán vị ban đầu và cuối cùng

Hoán vị ban đầu và cuối cùng

Các hoán vị ban đầu và cuối cùng là các hộp Hoán vị thẳng (hộp P) là các hoán vị của nhau. Chúng không có ý nghĩa mật mã trong DES. Các hoán vị ban đầu và cuối cùng được hiển thị như sau:

Chức năng vòng

Trung tâm của mật mã này là hàm DES, f . Hàm DES áp dụng khóa 48 bit cho 32 bit ngoài cùng bên phải để tạo ra đầu ra 32 bit.

  • Expansion Permutation Box- Vì đầu vào bên phải là 32 bit và phím tròn là 48 bit nên trước tiên chúng ta cần mở rộng đầu vào bên phải thành 48 bit. Lôgic hoán vị được mô tả bằng đồ thị trong hình minh họa sau:

  • Logic hoán vị được mô tả bằng đồ thị thường được mô tả dưới dạng bảng trong đặc tả DES được minh họa như hình minh họa:

  • XOR (Whitener).- Sau hoán vị mở rộng, DES thực hiện phép toán XOR trên phần bên phải mở rộng và phím tròn. Phím tròn chỉ được sử dụng trong thao tác này.

  • Substitution Boxes.- Các hộp S thực hiện việc trộn thật (nhầm lẫn). DES sử dụng 8 hộp S, mỗi hộp có đầu vào 6 bit và đầu ra 4 bit. Tham khảo hình minh họa sau -

  • Quy tắc S-box được minh họa bên dưới:

  • Có tổng cộng tám bảng S-box. Đầu ra của tất cả tám hộp s sau đó được kết hợp thành phần 32 bit.

  • Straight Permutation - Đầu ra 32 bit của S-box sau đó chịu sự hoán vị thẳng với quy tắc được hiển thị trong hình minh họa sau:

Tạo chìa khóa

Bộ tạo khóa tròn tạo ra 16 khóa 48 bit từ khóa mật mã 56 bit. Quá trình tạo khóa được mô tả trong hình minh họa sau:

Logic cho hộp P chẵn lẻ, dịch chuyển và nén được đưa ra trong mô tả DES.

Phân tích DES

DES thỏa mãn cả hai thuộc tính mong muốn của mật mã khối. Hai thuộc tính này làm cho mật mã rất mạnh.

  • Avalanche effect - Một sự thay đổi nhỏ trong bản rõ dẫn đến sự thay đổi rất lớn trong bản mã.

  • Completeness - Mỗi bit của bản mã phụ thuộc vào nhiều bit của bản rõ.

Trong vài năm gần đây, phân tích mật mã đã tìm thấy một số điểm yếu trong DES khi khóa được chọn là khóa yếu. Các phím này sẽ được tránh.

DES đã được chứng minh là một mật mã khối được thiết kế rất tốt. Không có cuộc tấn công phá mã đáng kể nào trên DES ngoài việc tìm kiếm khóa toàn diện.

Tốc độ tìm kiếm khóa triệt để đối với DES sau năm 1990 bắt đầu gây khó chịu cho người dùng DES. Tuy nhiên, người dùng không muốn thay thế DES vì phải mất một lượng lớn thời gian và tiền bạc để thay đổi các thuật toán mã hóa được áp dụng rộng rãi và được nhúng trong các kiến ​​trúc bảo mật lớn.

Cách tiếp cận thực dụng không phải là từ bỏ DES hoàn toàn, mà là thay đổi cách thức sử dụng DES. Điều này dẫn đến các sơ đồ sửa đổi của Triple DES (đôi khi được gọi là 3DES).

Ngẫu nhiên, có hai biến thể của Triple DES được gọi là Triple DES 3 phím (3TDES) và Triple DES 2 phím (2TDES).

3-KEY Triple DES

Trước khi sử dụng 3TDES, trước tiên người dùng tạo và phân phối khóa 3TDES K, bao gồm ba khóa DES khác nhau K 1 , K 2 và K 3 . Điều này có nghĩa là khóa 3TDES thực có độ dài 3 × 56 = 168 bit. Sơ đồ mã hóa được minh họa như sau:

Quá trình mã hóa-giải mã như sau:

  • Mã hóa các khối bản rõ bằng cách sử dụng DES đơn lẻ với khóa K 1 .

  • Bây giờ giải mã đầu ra của bước 1 bằng cách sử dụng DES đơn lẻ với khóa K 2 .

  • Cuối cùng, mã hóa đầu ra của bước 2 bằng cách sử dụng DES đơn lẻ với khóa K 3 .

  • Đầu ra của bước 3 là bản mã.

  • Giải mã một bản mã là một quá trình ngược lại. Đầu tiên người dùng giải mã bằng K 3, sau đó mã hóa bằng K 2 và cuối cùng là giải mã bằng K 1 .

Do thiết kế này của Triple DES như một quá trình mã hóa-giải mã-mã hóa, có thể sử dụng triển khai 3TDES (phần cứng) cho DES đơn lẻ bằng cách đặt K 1, K 2 và K 3 có cùng giá trị. Điều này cung cấp khả năng tương thích ngược với DES.

Biến thể thứ hai của Triple DES (2TDES) giống với 3TDES ngoại trừ K 3 được thay thế bằng K 1 . Nói cách khác, người dùng mã hóa các khối bản rõ bằng khóa K 1, sau đó giải mã bằng khóa K 2, và cuối cùng mã hóa lại bằng khóa K 1 . Do đó, 2TDES có độ dài khóa là 112 bit.

Hệ thống Triple DES an toàn hơn đáng kể so với DES đơn lẻ, nhưng đây rõ ràng là một quá trình chậm hơn nhiều so với mã hóa sử dụng DES đơn lẻ.

Thuật toán mã hóa đối xứng phổ biến hơn và được chấp nhận rộng rãi hơn có thể gặp ngày nay là Tiêu chuẩn mã hóa nâng cao (AES). Nó được tìm thấy nhanh hơn ít nhất sáu lần so với DES gấp ba lần.

Cần thay thế cho DES vì kích thước khóa của nó quá nhỏ. Với sức mạnh tính toán ngày càng tăng, nó được coi là dễ bị tấn công trước cuộc tấn công tìm kiếm khóa toàn diện. Triple DES được thiết kế để khắc phục nhược điểm này nhưng nó bị chậm.

Các tính năng của AES như sau:

  • Mật mã khối đối xứng khóa đối xứng
  • Dữ liệu 128 bit, khóa 128/192/256 bit
  • Mạnh hơn và nhanh hơn Triple-DES
  • Cung cấp đầy đủ thông số kỹ thuật và chi tiết thiết kế
  • Phần mềm có thể triển khai trong C và Java

Hoạt động của AES

AES là một dạng lặp chứ không phải là mật mã Feistel. Nó dựa trên 'mạng thay thế-hoán vị'. Nó bao gồm một loạt các hoạt động được liên kết, một số liên quan đến việc thay thế các đầu vào bằng các đầu ra cụ thể (thay thế) và một số khác liên quan đến việc xáo trộn các bit xung quanh (hoán vị).

Điều thú vị là AES thực hiện tất cả các tính toán của nó trên byte chứ không phải bit. Do đó, AES coi 128 bit của khối văn bản rõ là 16 byte. 16 byte này được sắp xếp thành bốn cột và bốn hàng để xử lý như một ma trận -

Không giống như DES, số vòng trong AES có thể thay đổi và phụ thuộc vào độ dài của khóa. AES sử dụng 10 vòng cho các phím 128 bit, 12 vòng cho các phím 192 bit và 14 vòng cho các phím 256 bit. Mỗi vòng này sử dụng một khóa tròn 128 bit khác nhau, được tính từ khóa AES ban đầu.

Sơ đồ cấu trúc AES được đưa ra trong hình minh họa sau:

Quy trình mã hóa

Ở đây, chúng tôi giới hạn mô tả về một vòng mã hóa AES điển hình. Mỗi vòng bao gồm bốn quy trình phụ. Quy trình của vòng đầu tiên được mô tả dưới đây -

Thay thế Byte (SubByte)

16 byte đầu vào được thay thế bằng cách tra cứu một bảng cố định (hộp S) được đưa ra trong thiết kế. Kết quả là trong một ma trận gồm bốn hàng và bốn cột.

Shiftrows

Mỗi hàng trong số bốn hàng của ma trận được chuyển sang trái. Bất kỳ mục nhập nào 'rơi ra' được chèn lại ở phía bên phải của hàng. Ca được thực hiện như sau:

  • Hàng đầu tiên không bị dịch chuyển.

  • Hàng thứ hai được dịch chuyển một (byte) vị trí sang trái.

  • Hàng thứ ba được dịch chuyển hai vị trí sang trái.

  • Hàng thứ tư được chuyển ba vị trí sang trái.

  • Kết quả là một ma trận mới bao gồm 16 byte giống nhau nhưng được dịch chuyển đối với nhau.

MixColumns

Mỗi cột bốn byte hiện được chuyển đổi bằng cách sử dụng một hàm toán học đặc biệt. Hàm này nhận bốn byte của một cột đầu vào và xuất ra bốn byte hoàn toàn mới, thay thế cột ban đầu. Kết quả là một ma trận mới khác bao gồm 16 byte mới. Cần lưu ý rằng bước này không được thực hiện trong vòng cuối cùng.

Addroundkey

16 byte của ma trận bây giờ được coi là 128 bit và được XOR thành 128 bit của khóa tròn. Nếu đây là vòng cuối cùng thì đầu ra là bản mã. Nếu không, 128 bit kết quả được hiểu là 16 byte và chúng ta bắt đầu một vòng tương tự khác.

Quy trình giải mã

Quá trình giải mã bản mã AES tương tự như quá trình mã hóa theo thứ tự ngược lại. Mỗi vòng bao gồm bốn quy trình được tiến hành theo thứ tự ngược lại -

  • Thêm phím tròn
  • Trộn các cột
  • Chuyển hàng
  • Thay thế byte

Vì các quy trình con trong mỗi vòng diễn ra theo cách ngược lại, không giống như Feistel Cipher, các thuật toán mã hóa và giải mã cần được triển khai riêng biệt, mặc dù chúng có liên quan rất chặt chẽ.

Phân tích AES

Trong mật mã ngày nay, AES được chấp nhận và hỗ trợ rộng rãi trong cả phần cứng và phần mềm. Cho đến nay, không có cuộc tấn công phân tích mật mã thực tế nào chống lại AES được phát hiện. Ngoài ra, AES được tích hợp tính linh hoạt về độ dài khóa, cho phép mức độ 'kiểm chứng trong tương lai' chống lại sự tiến bộ trong khả năng thực hiện các tìm kiếm toàn diện.

Tuy nhiên, cũng giống như DES, bảo mật AES chỉ được đảm bảo nếu nó được triển khai chính xác và quản lý khóa tốt được sử dụng.

Trong chương này, chúng ta sẽ thảo luận về các phương thức hoạt động khác nhau của mật mã khối. Đây là các quy tắc thủ tục cho mật mã khối chung. Điều thú vị là các chế độ khác nhau dẫn đến các thuộc tính khác nhau đạt được, điều này làm tăng thêm tính bảo mật của mật mã khối cơ bản.

Mật mã khối xử lý các khối dữ liệu có kích thước cố định. Thông thường, kích thước của một tin nhắn lớn hơn kích thước khối. Do đó, thông điệp dài được chia thành một loạt các khối thông báo tuần tự và mật mã hoạt động trên các khối này tại một thời điểm.

Chế độ Sổ mã điện tử (ECB)

Chế độ này là cách đơn giản nhất để xử lý một loạt các khối tin nhắn được liệt kê tuần tự.

Hoạt động

  • Người dùng lấy khối bản rõ đầu tiên và mã hóa nó bằng khóa để tạo ra khối bản mã đầu tiên.

  • Sau đó, anh ta lấy khối bản rõ thứ hai và thực hiện theo cùng một quy trình với cùng một khóa, v.v.

Chế độ ECB là deterministic, nghĩa là, nếu khối văn bản rõ P1, P2,…, Pm được mã hóa hai lần trong cùng một khóa, các khối bản mã đầu ra sẽ giống nhau.

Trên thực tế, về mặt kỹ thuật, đối với một khóa nhất định, chúng ta có thể tạo một sổ mã gồm các bản mã cho tất cả các khối bản rõ có thể có. Sau đó, mã hóa sẽ chỉ yêu cầu tìm kiếm bản rõ được yêu cầu và chọn bản mã tương ứng. Do đó, hoạt động này tương tự như việc gán các từ mã trong sổ mã và do đó có tên chính thức - Chế độ hoạt động của Sổ mã điện tử (ECB). Nó được minh họa như sau:

Phân tích Chế độ ECB

Trong thực tế, bất kỳ dữ liệu ứng dụng nào thường có một phần thông tin có thể đoán được. Ví dụ, có thể đoán được mức lương. Một bản mã từ ECB có thể cho phép kẻ tấn công đoán bản rõ bằng cách thử-và-sai nếu thông báo bản rõ nằm trong khoảng có thể dự đoán được.

Ví dụ: nếu một bản mã từ chế độ ECB được biết là mã hóa một con số tiền lương, thì một số lượng nhỏ thử nghiệm sẽ cho phép kẻ tấn công khôi phục con số đó. Nói chung, chúng tôi không muốn sử dụng mật mã xác định, và do đó chế độ ECB không nên được sử dụng trong hầu hết các ứng dụng.

Chế độ chuỗi khối mật mã (CBC)

Chế độ hoạt động của CBC cung cấp sự phụ thuộc của thông báo để tạo ra bản mã và làm cho hệ thống không xác định.

Hoạt động

Hoạt động của chế độ CBC được mô tả trong hình minh họa sau. Các bước như sau:

  • Tải vectơ khởi tạo n-bit (IV) vào thanh ghi trên cùng.

  • XOR khối văn bản rõ n-bit với giá trị dữ liệu trong thanh ghi trên cùng.

  • Mã hóa kết quả của phép toán XOR với mật mã khối cơ bản bằng khóa K.

  • Nạp khối bản mã vào thanh ghi cao nhất và tiếp tục hoạt động cho đến khi tất cả các khối bản rõ được xử lý.

  • Để giải mã, dữ liệu IV được XOR với khối bản mã đầu tiên được giải mã. Khối bản mã đầu tiên cũng được đưa vào để đăng ký thay thế IV để giải mã khối bản mã tiếp theo.

Phân tích Chế độ CBC

Trong chế độ CBC, khối bản rõ hiện tại được thêm vào khối bản mã trước đó, và sau đó kết quả được mã hóa bằng khóa. Do đó, giải mã là quá trình ngược lại, bao gồm việc giải mã bản mã hiện tại và sau đó thêm khối bản mã trước đó vào kết quả.

Lợi thế của CBC so với ECB là việc thay đổi IV dẫn đến các bản mã khác nhau cho thông điệp giống hệt nhau. Mặt hạn chế, lỗi trong quá trình truyền được lan truyền đến một số khối khác trong quá trình giải mã do hiệu ứng chuỗi.

Điều đáng nói là chế độ CBC tạo cơ sở cho một cơ chế xác thực nguồn gốc dữ liệu nổi tiếng. Do đó, nó có lợi thế hơn đối với những ứng dụng yêu cầu cả mã hóa đối xứng và xác thực nguồn gốc dữ liệu.

Chế độ phản hồi mật mã (CFB)

Trong chế độ này, mỗi khối bản mã được 'đưa trở lại' vào quá trình mã hóa để mã hóa khối bản rõ tiếp theo.

Hoạt động

Hoạt động của chế độ CFB được mô tả trong hình minh họa sau. Ví dụ, trong hệ thống hiện tại, một khối thông báo có các bit kích thước 's' trong đó 1 <s <n. Chế độ CFB yêu cầu một vectơ khởi tạo (IV) là khối đầu vào n bit ngẫu nhiên ban đầu. IV không cần phải bí mật. Các bước hoạt động là -

  • Nạp IV vào thanh ghi trên cùng.

  • Mã hóa giá trị dữ liệu trong thanh ghi cao nhất với mật mã khối bên dưới bằng khóa K.

  • Chỉ lấy số lượng bit quan trọng nhất (bit bên trái) của đầu ra của quá trình mã hóa và XOR chúng với khối bản rõ bit 's' để tạo khối bản mã.

  • Nạp khối bản mã vào thanh ghi trên cùng bằng cách chuyển dữ liệu đã có sẵn sang bên trái và tiếp tục hoạt động cho đến khi tất cả các khối bản rõ được xử lý.

  • Về cơ bản, khối bản mã trước đó được mã hóa bằng khóa, và sau đó kết quả được XOR thành khối bản rõ hiện tại.

  • Các bước tương tự được thực hiện để giải mã. IV được quyết định trước được tải ban đầu khi bắt đầu giải mã.

Phân tích Chế độ CFB

Chế độ CFB khác nhiều so với chế độ ECB, bản mã tương ứng với một khối bản rõ nhất định không chỉ phụ thuộc vào khối bản rõ đó và khóa mà còn phụ thuộc vào khối bản mã trước đó. Nói cách khác, khối bản mã phụ thuộc vào thông điệp.

CFB có một tính năng rất lạ. Trong chế độ này, người dùng giải mã bản mã chỉ bằng quy trình mã hóa của mật mã khối. Thuật toán giải mã của mật mã khối cơ bản không bao giờ được sử dụng.

Rõ ràng, chế độ CFB đang chuyển đổi mật mã khối thành một loại mật mã luồng. Thuật toán mã hóa được sử dụng như một bộ tạo dòng khóa để tạo ra dòng khóa được đặt trong thanh ghi dưới cùng. Dòng khóa này sau đó được XOR với bản rõ như trong trường hợp mật mã dòng.

Bằng cách chuyển đổi mật mã khối thành mật mã dòng, chế độ CFB cung cấp một số đặc tính ưu việt của mật mã dòng trong khi vẫn giữ lại các thuộc tính ưu việt của mật mã khối.

Mặt khác, lỗi truyền được lan truyền do thay đổi các khối.

Chế độ phản hồi đầu ra (OFB)

Nó liên quan đến việc cung cấp các khối đầu ra liên tiếp từ mật mã khối bên dưới trở lại nó. Các khối phản hồi này cung cấp chuỗi bit để cung cấp thuật toán mã hóa hoạt động như bộ tạo luồng khóa như trong trường hợp chế độ CFB.

Luồng khóa được tạo là XOR-ed với các khối bản rõ. Chế độ OFB yêu cầu IV là khối đầu vào n bit ngẫu nhiên ban đầu. IV không cần phải bí mật.

Hoạt động được mô tả trong hình minh họa sau:

Chế độ bộ đếm (CTR)

Nó có thể được coi là một phiên bản dựa trên phản hồi của chế độ CFB mà không có phản hồi. Trong chế độ này, cả người gửi và người nhận đều cần truy cập vào một bộ đếm đáng tin cậy, bộ đếm này sẽ tính giá trị được chia sẻ mới mỗi khi khối bản mã được trao đổi. Bộ đếm dùng chung này không nhất thiết phải có giá trị bí mật, nhưng thách thức là cả hai bên phải giữ bộ đếm được đồng bộ hóa.

Hoạt động

Cả mã hóa và giải mã trong chế độ CTR đều được mô tả trong hình minh họa sau. Các bước hoạt động là -

  • Nạp giá trị bộ đếm ban đầu trong thanh ghi trên cùng là giống nhau cho cả người gửi và người nhận. Nó đóng vai trò giống như IV trong chế độ CFB (và CBC).

  • Mã hóa nội dung của bộ đếm bằng khóa và đặt kết quả vào thanh ghi phía dưới.

  • Lấy khối văn bản rõ đầu tiên P1 và XOR khối này vào nội dung của thanh ghi phía dưới. Kết quả của điều này là C1. Gửi C1 cho người nhận và cập nhật bộ đếm. Bản cập nhật bộ đếm thay thế phản hồi bản mã trong chế độ CFB.

  • Tiếp tục theo cách này cho đến khi khối văn bản rõ cuối cùng được mã hóa.

  • Quá trình giải mã là quá trình ngược lại. Khối bản mã được XOR với đầu ra là nội dung được mã hóa có giá trị bộ đếm. Sau khi giải mã, mỗi bộ đếm khối bản mã được cập nhật như trong trường hợp mã hóa.

Phân tích Chế độ Bộ đếm

Nó không phụ thuộc vào thông điệp và do đó một khối bản mã không phụ thuộc vào các khối bản rõ trước đó.

Giống như chế độ CFB, chế độ CTR không liên quan đến quá trình giải mã của mật mã khối. Điều này là do chế độ CTR thực sự đang sử dụng mật mã khối để tạo luồng khóa, được mã hóa bằng hàm XOR. Nói cách khác, chế độ CTR cũng chuyển đổi mật mã khối thành mật mã luồng.

Nhược điểm nghiêm trọng của chế độ CTR là nó yêu cầu một bộ đếm đồng bộ ở người gửi và người nhận. Mất đồng bộ dẫn đến khôi phục bản rõ không chính xác.

Tuy nhiên, chế độ CTR có gần như tất cả các ưu điểm của chế độ CFB. Ngoài ra, nó không truyền lỗi truyền tải ở tất cả.

Mật mã khóa công khai

Không giống như mật mã khóa đối xứng, chúng tôi không tìm thấy lịch sử sử dụng mật mã khóa công khai. Nó là một khái niệm tương đối mới.

Mật mã đối xứng rất phù hợp cho các tổ chức như chính phủ, quân đội và các tập đoàn tài chính lớn có liên quan đến thông tin liên lạc được phân loại.

Với sự lan rộng của các mạng máy tính không an toàn hơn trong vài thập kỷ qua, nhu cầu thực sự là sử dụng mật mã ở quy mô lớn hơn. Khóa đối xứng được cho là không thực tế do những thách thức mà nó phải đối mặt đối với việc quản lý khóa. Điều này đã tạo ra các hệ thống mật mã khóa công khai.

Quá trình mã hóa và giải mã được mô tả trong hình minh họa sau:

Các thuộc tính quan trọng nhất của lược đồ mã hóa khóa công khai là:

  • Các khóa khác nhau được sử dụng để mã hóa và giải mã. Đây là một thuộc tính đặt lược đồ này khác với lược đồ mã hóa đối xứng.

  • Mỗi người nhận sở hữu một khóa giải mã duy nhất, thường được gọi là khóa riêng của mình.

  • Người nhận cần xuất bản khóa mã hóa, được gọi là khóa công khai của mình.

  • Một số đảm bảo về tính xác thực của khóa công khai là cần thiết trong chương trình này để tránh bị kẻ thù là người nhận giả mạo. Nói chung, loại hệ thống mật mã này liên quan đến bên thứ ba đáng tin cậy xác nhận rằng một khóa công khai cụ thể chỉ thuộc về một cá nhân hoặc tổ chức cụ thể.

  • Thuật toán mã hóa đủ phức tạp để ngăn kẻ tấn công suy diễn bản rõ từ bản mã và khóa mã hóa (công khai).

  • Mặc dù khóa cá nhân và khóa công khai có liên quan với nhau về mặt toán học, nhưng việc tính khóa riêng từ khóa công khai là không khả thi. Trên thực tế, phần thông minh của bất kỳ hệ thống mật mã khóa công khai nào là thiết kế mối quan hệ giữa hai khóa.

Có ba loại lược đồ Mã hóa khóa công khai. Chúng ta thảo luận về chúng trong các phần sau -

Hệ thống mật mã RSA

Hệ thống mật mã này là một trong những hệ thống ban đầu. Nó vẫn là hệ thống mật mã được sử dụng nhiều nhất cho đến ngày nay. Hệ thống được phát minh bởi ba học giảRon Rivest, Adi Shamir,Len Adleman và do đó, nó được gọi là hệ thống mật mã RSA.

Chúng ta sẽ thấy hai khía cạnh của hệ thống mật mã RSA, thứ nhất là tạo cặp khóa và thứ hai là các thuật toán giải mã-mã hóa.

Tạo cặp khóa RSA

Mỗi người hoặc một bên muốn tham gia giao tiếp bằng cách sử dụng mã hóa cần phải tạo một cặp khóa, đó là khóa công khai và khóa cá nhân. Quá trình tiếp theo trong quá trình tạo khóa được mô tả dưới đây:

  • Generate the RSA modulus (n)

    • Chọn hai số nguyên tố lớn là p và q.

    • Tính n = p * q. Đối với mã hóa mạnh không thể phá vỡ, hãy gọi n là một số lớn, thường tối thiểu là 512 bit.

  • Find Derived Number (e)

    • Con số e phải lớn hơn 1 và nhỏ hơn (p - 1) (q - 1).

    • Không được có thừa số chung cho e và (p - 1) (q - 1) trừ 1. Nói cách khác hai số e và (p - 1) (q - 1) là nguyên tố.

  • Form the public key

    • Cặp số (n, e) tạo thành khóa công khai RSA và được công khai.

    • Điều thú vị là mặc dù n là một phần của khóa công khai, nhưng khó khăn trong việc phân tích một số nguyên tố lớn đảm bảo rằng kẻ tấn công không thể tìm thấy trong thời gian hữu hạn hai số nguyên tố (p & q) được sử dụng để lấy n. Đây là điểm mạnh của RSA.

  • Generate the private key

    • Khóa riêng d được tính từ p, q và e. Với n và e cho trước, có số duy nhất d.

    • Số d là nghịch đảo của e modulo (p - 1) (q - 1). Điều này có nghĩa là d là số nhỏ hơn (p - 1) (q - 1) sao cho khi nhân với e, nó có giá trị bằng 1 modulo (p - 1) (q - 1).

    • Mối quan hệ này được viết bằng toán học như sau:

ed = 1 mod (p − 1)(q − 1)

Thuật toán Euclid mở rộng lấy p, q và e làm đầu vào và cho d làm đầu ra.

Thí dụ

Dưới đây là một ví dụ về việc tạo cặp Khóa RSA. (Để dễ hiểu, các số nguyên tố p & q lấy ở đây là các giá trị nhỏ. Thực tế, các giá trị này rất cao).

  • Cho hai số nguyên tố là p = 7 và q = 13. Như vậy, môđun n = pq = 7 x 13 = 91.

  • Chọn e = 5, là lựa chọn hợp lệ vì không có số nào là nhân tử chung của 5 và (p - 1) (q - 1) = 6 × 12 = 72, trừ 1.

  • Cặp số (n, e) = (91, 5) tạo thành khóa công khai và có thể được cung cấp cho bất kỳ ai mà chúng tôi muốn có thể gửi cho chúng tôi tin nhắn được mã hóa.

  • Nhập p = 7, q = 13 và e = 5 vào Thuật toán Euclid mở rộng. Đầu ra sẽ là d = 29.

  • Kiểm tra xem d được tính là đúng bằng máy tính -

de = 29 × 5 = 145 = 1 mod 72
  • Do đó, khóa công khai là (91, 5) và khóa riêng là (91, 29).

Mã hóa và Giải mã

Khi cặp khóa đã được tạo, quá trình mã hóa và giải mã tương đối đơn giản và dễ dàng về mặt tính toán.

Điều thú vị là RSA không trực tiếp hoạt động trên các chuỗi bit như trong trường hợp mã hóa khóa đối xứng. Nó hoạt động trên số modulo n. Do đó, cần phải biểu diễn bản rõ là một chuỗi các số nhỏ hơn n.

Mã hóa RSA

  • Giả sử người gửi muốn gửi một số tin nhắn văn bản cho ai đó có khóa công khai là (n, e).

  • Người gửi sau đó biểu diễn bản rõ là một chuỗi các số nhỏ hơn n.

  • Để mã hóa bản rõ đầu tiên P, là một số modulo n. Quá trình mã hóa là bước toán học đơn giản như:

C = Pe mod n
  • Nói cách khác, bản mã C bằng bản rõ P nhân với chính nó e lần và sau đó rút gọn modulo n. Điều này có nghĩa là C cũng là một số nhỏ hơn n.

  • Quay trở lại ví dụ Tạo khóa của chúng tôi với bản rõ P = 10, chúng tôi nhận được bản mã C -

C = 105 mod 91

Giải mã RSA

  • Quá trình giải mã RSA cũng rất đơn giản. Giả sử rằng người nhận cặp khóa công khai (n, e) đã nhận được bản mã C.

  • Người nhận nâng C lên thành sức mạnh của khóa cá nhân của mình d. Kết quả modulo n sẽ là P bản rõ.

Plaintext = Cd mod n
  • Quay trở lại ví dụ số của chúng tôi, bản mã C = 82 sẽ được giải mã thành số 10 bằng cách sử dụng khóa riêng 29 -

Plaintext = 8229 mod 91 = 10

Phân tích RSA

Tính bảo mật của RSA phụ thuộc vào điểm mạnh của hai chức năng riêng biệt. Hệ thống mật mã RSA là sức mạnh của hệ thống mật mã khóa công khai phổ biến nhất dựa trên khó khăn thực tế của việc tính toán các số rất lớn.

  • Encryption Function - Nó được coi như một hàm một chiều chuyển bản rõ thành bản mã và nó có thể được đảo ngược chỉ khi có kiến ​​thức về khóa riêng d.

  • Key Generation- Khó khăn trong việc xác định khóa riêng từ khóa công khai RSA tương đương với việc tính toán môđun n. Do đó, kẻ tấn công không thể sử dụng kiến ​​thức về khóa công khai RSA để xác định khóa riêng RSA trừ khi anh ta có thể nhân tố n. Nó cũng là một hàm một chiều, đi từ giá trị p & q đến môđun n rất dễ dàng nhưng ngược lại thì không.

Nếu một trong hai chức năng này được chứng minh là không theo một chiều, thì RSA sẽ bị hỏng. Trên thực tế, nếu một kỹ thuật bao thanh toán hiệu quả được phát triển thì RSA sẽ không còn an toàn nữa.

Sức mạnh của mã hóa RSA giảm mạnh so với các cuộc tấn công nếu số p và q không phải là số nguyên tố lớn và / hoặc khóa công khai e được chọn là một số nhỏ.

Hệ thống mật mã ElGamal

Cùng với RSA, có các hệ thống mật mã khóa công khai khác được đề xuất. Nhiều người trong số họ dựa trên các phiên bản khác nhau của Bài toán Logarit rời rạc.

Hệ mật mã ElGamal, được gọi là Biến thể đường cong Elliptic, dựa trên Bài toán Logarit rời rạc. Nó suy ra sức mạnh từ giả định rằng không thể tìm thấy các logarit rời rạc trong khung thời gian thực tế cho một số nhất định, trong khi hoạt động nghịch đảo của lũy thừa có thể được tính toán một cách hiệu quả.

Chúng ta hãy xem qua một phiên bản đơn giản của ElGamal hoạt động với số modulo p. Trong trường hợp các biến thể của đường cong elliptic, nó dựa trên các hệ thống số khá khác nhau.

Thế hệ cặp chìa khóa ElGamal

Mỗi người dùng hệ thống mật mã ElGamal tạo ra cặp khóa thông qua như sau:

  • Choosing a large prime p. Nói chung, một số nguyên tố có độ dài từ 1024 đến 2048 bit được chọn.

  • Choosing a generator element g.

    • Số này phải từ 1 đến p - 1, nhưng không được là bất kỳ số nào.

    • Nó là một bộ sinh của nhóm nhân số nguyên modulo p. Điều này có nghĩa là với mọi số nguyên m đồng nguyên tố với p, có một số nguyên k sao cho g k = a mod n.

      Ví dụ, 3 là máy phát của nhóm 5 (Z 5 = {1, 2, 3, 4}).

N 3 n 3 n mod 5
1 3 3
2 9 4
3 27 2
4 81 1
  • Choosing the private key. Khóa riêng x là bất kỳ số nào lớn hơn 1 và nhỏ hơn p-1.

  • Computing part of the public key. Giá trị y được tính từ các tham số p, g và khóa riêng x như sau:

y = gx mod p
  • Obtaining Public key. Khóa công khai ElGamal bao gồm ba tham số (p, g, y).

    Ví dụ, giả sử rằng p = 17 và g = 6 (Có thể khẳng định rằng 6 là máy phát của nhóm Z 17 ). Khóa riêng x có thể là bất kỳ số nào lớn hơn 1 và nhỏ hơn 71, vì vậy chúng tôi chọn x = 5. Giá trị y sau đó được tính như sau:

y = 65 mod 17 = 7
  • Như vậy khóa riêng là 62 và khóa công khai là (17, 6, 7).

Mã hóa và Giải mã

Việc tạo cặp khóa ElGamal tương đối đơn giản hơn so với quy trình tương đương cho RSA. Nhưng mã hóa và giải mã phức tạp hơn RSA một chút.

Mã hóa ElGamal

Giả sử người gửi muốn gửi một bản rõ cho ai đó có khóa công khai ElGamal là (p, g, y), thì -

  • Người gửi biểu diễn bản rõ dưới dạng một chuỗi số modulo p.

  • Để mã hóa bản rõ đầu tiên P, được biểu diễn dưới dạng một modulo số p. Quá trình mã hóa để lấy được bản mã C như sau:

    • Tạo ngẫu nhiên một số k;
    • Tính hai giá trị C1 và C2, trong đó -
C1 = gk mod p
C2 = (P*yk) mod p
  • Gửi bản mã C, bao gồm hai giá trị riêng biệt (C1, C2), được gửi cùng nhau.

  • Đề cập đến ví dụ tạo khóa ElGamal của chúng tôi được đưa ra ở trên, bản rõ P = 13 được mã hóa như sau:

    • Tạo ngẫu nhiên một số, giả sử k = 10
    • Tính hai giá trị C1 và C2, trong đó -
C1 = 610 mod 17
C2 = (13*710) mod 17 = 9
  • Gửi bản mã C = (C1, C2) = (15, 9).

Giải mã ElGamal

  • Để giải mã bản mã (C1, C2) bằng khóa riêng x, hai bước sau được thực hiện:

    • Tính toán nghịch đảo mô đun của (C1) x modulo p, là (C1) -x , thường được gọi là hệ số giải mã.

    • Lấy bản rõ bằng cách sử dụng công thức sau:

C2 × (C1)-x  mod p = Plaintext
  • Trong ví dụ của chúng tôi, để giải mã bản mã C = (C1, C2) = (15, 9) sử dụng khóa riêng x = 5, hệ số giải mã là

15-5  mod 17 = 9
  • Trích xuất bản rõ P = (9 × 9) mod 17 = 13.

Phân tích ElGamal

Trong hệ thống ElGamal, mỗi người dùng có một khóa riêng x. và cóthree components của khóa công khai - prime modulus p, generator g, and public Y = gx mod p. Điểm mạnh của ElGamal dựa trên độ khó của bài toán logarit rời rạc.

Kích thước khóa an toàn thường> 1024 bit. Ngày nay, ngay cả khóa dài 2048 bit cũng được sử dụng. Về mặt tốc độ xử lý, Elgamal khá chậm, nó được sử dụng chủ yếu cho các giao thức xác thực chính. Do hiệu quả xử lý cao hơn, các biến thể Đường cong Elliptic của ElGamal ngày càng trở nên phổ biến.

Mật mã đường cong Elliptic (ECC)

Elliptic Curve Cryptography (ECC) là một thuật ngữ được sử dụng để mô tả một bộ công cụ và giao thức mật mã có tính bảo mật dựa trên các phiên bản đặc biệt của bài toán logarit rời rạc. Nó không sử dụng số modulo p.

ECC dựa trên các tập hợp số được liên kết với các đối tượng toán học được gọi là đường cong elliptic. Có các quy tắc để cộng và tính toán bội số của những số này, cũng giống như các số modulo p.

ECC bao gồm các biến thể của nhiều lược đồ mật mã ban đầu được thiết kế cho các số mô-đun như mã hóa ElGamal và Thuật toán chữ ký số.

Người ta tin rằng bài toán logarit rời rạc khó hơn nhiều khi áp dụng cho các điểm trên một đường cong elliptic. Điều này sẽ nhắc chuyển từ các số modulo p sang các điểm trên đường cong elliptic. Cũng có thể đạt được mức bảo mật tương đương với các khóa ngắn hơn nếu chúng ta sử dụng các biến thể dựa trên đường cong elliptic.

Các khóa ngắn hơn dẫn đến hai lợi ích:

  • Dễ dàng quản lý khóa
  • Tính toán hiệu quả

Những lợi ích này làm cho các biến thể dựa trên đường cong elliptic của lược đồ mã hóa rất hấp dẫn đối với ứng dụng khi tài nguyên máy tính bị hạn chế.

Lược đồ RSA và ElGamal - So sánh

Hãy để chúng tôi so sánh ngắn gọn các lược đồ RSA và ElGamal trên các khía cạnh khác nhau.

RSA ElGamal
Nó hiệu quả hơn cho việc mã hóa. Nó hiệu quả hơn để giải mã.
Nó kém hiệu quả hơn cho việc giải mã. Nó hiệu quả hơn để giải mã.
Đối với một cấp độ bảo mật cụ thể, cần có các khóa dài trong RSA. Để có cùng mức độ bảo mật, cần có các khóa rất ngắn.
Nó được chấp nhận và sử dụng rộng rãi. Nó là mới và không phải là rất phổ biến trên thị trường.

Cho đến nay, chúng tôi đã thảo luận về việc sử dụng các lược đồ đối xứng và khóa công khai để đạt được tính bảo mật của thông tin. Với chương này, chúng ta bắt đầu thảo luận về các kỹ thuật mật mã khác nhau được thiết kế để cung cấp các dịch vụ bảo mật khác.

Trọng tâm của chương này là về tính toàn vẹn của dữ liệu và các công cụ mật mã được sử dụng để đạt được điều tương tự.

Đe doạ đối với tính toàn vẹn của dữ liệu

Khi thông tin nhạy cảm được trao đổi, người nhận phải có sự đảm bảo rằng tin nhắn vẫn còn nguyên vẹn từ người gửi dự định và không bị sửa đổi một cách vô ý hoặc khác. Có hai loại mối đe dọa toàn vẹn dữ liệu khác nhau, đó làpassiveactive.

Đe doạ thụ động

Loại mối đe dọa này tồn tại do những thay đổi ngẫu nhiên trong dữ liệu.

  • Các lỗi dữ liệu này có thể xảy ra do nhiễu trong kênh liên lạc. Ngoài ra, dữ liệu có thể bị hỏng trong khi tệp được lưu trữ trên đĩa.

  • Mã sửa lỗi và tổng kiểm tra đơn giản như Kiểm tra dự phòng theo chu kỳ (CRC) được sử dụng để phát hiện mất tính toàn vẹn của dữ liệu. Trong các kỹ thuật này, một bản tóm tắt dữ liệu được tính toán bằng toán học và được nối vào dữ liệu.

Các mối đe dọa đang hoạt động

Trong loại mối đe dọa này, kẻ tấn công có thể thao túng dữ liệu với mục đích xấu.

  • Ở cấp độ đơn giản nhất, nếu dữ liệu không có thông báo, nó có thể được sửa đổi mà không bị phát hiện. Hệ thống có thể sử dụng các kỹ thuật gắn CRC vào dữ liệu để phát hiện bất kỳ sửa đổi đang hoạt động nào.

  • Ở mức độ đe dọa cao hơn, kẻ tấn công có thể sửa đổi dữ liệu và cố gắng lấy thông báo mới cho dữ liệu đã sửa đổi từ thông báo thoát. Điều này có thể thực hiện được nếu thông báo được tính bằng các cơ chế đơn giản như CRC.

  • Cơ chế bảo mật như các hàm Hash được sử dụng để giải quyết các mối đe dọa sửa đổi đang hoạt động.

Hàm băm cực kỳ hữu ích và xuất hiện trong hầu hết các ứng dụng bảo mật thông tin.

Hàm băm là một hàm toán học chuyển đổi một giá trị số đầu vào thành một giá trị số nén khác. Đầu vào cho hàm băm có độ dài tùy ý nhưng đầu ra luôn có độ dài cố định.

Các giá trị được trả về bởi một hàm băm được gọi là message digest hoặc đơn giản hash values. Hình sau minh họa hàm băm -

Đặc điểm của hàm băm

Các tính năng điển hình của hàm băm là:

  • Fixed Length Output (Hash Value)

    • Hàm băm bao gồm dữ liệu có độ dài tùy ý thành độ dài cố định. Quá trình này thường được gọi làhashing the data.

    • Nói chung, hàm băm nhỏ hơn nhiều so với dữ liệu đầu vào, do đó, các hàm băm đôi khi được gọi là compression functions.

    • Vì hàm băm là một đại diện nhỏ hơn của dữ liệu lớn hơn, nó cũng được gọi là digest.

    • Hàm băm với đầu ra n bit được gọi là n-bit hash function. Các hàm băm phổ biến tạo ra các giá trị từ 160 đến 512 bit.

  • Efficiency of Operation

    • Nói chung đối với bất kỳ hàm băm nào h với đầu vào x, tính toán h (x) là một phép toán nhanh.

    • Các hàm băm tính toán nhanh hơn nhiều so với mã hóa đối xứng.

Thuộc tính của hàm băm

Để trở thành một công cụ mật mã hiệu quả, hàm băm mong muốn có các thuộc tính sau:

  • Pre-Image Resistance

    • Thuộc tính này có nghĩa là rất khó tính toán để đảo ngược một hàm băm.

    • Nói cách khác, nếu một hàm băm h tạo ra giá trị băm z, thì sẽ là một quá trình khó khăn để tìm bất kỳ giá trị đầu vào x nào có giá trị băm thành z.

    • Thuộc tính này bảo vệ chống lại kẻ tấn công chỉ có giá trị băm và đang cố gắng tìm đầu vào.

  • Second Pre-Image Resistance

    • Thuộc tính này có nghĩa là được cung cấp một đầu vào và hàm băm của nó, sẽ khó tìm thấy một đầu vào khác với cùng một hàm băm.

    • Nói cách khác, nếu một hàm băm h cho đầu vào x tạo ra giá trị băm h (x), thì rất khó để tìm thấy bất kỳ giá trị đầu vào nào khác y sao cho h (y) = h (x).

    • Thuộc tính này của hàm băm bảo vệ chống lại kẻ tấn công có giá trị đầu vào và giá trị băm của nó, và muốn thay thế giá trị khác làm giá trị hợp pháp thay cho giá trị đầu vào ban đầu.

  • Collision Resistance

    • Thuộc tính này có nghĩa là khó có thể tìm thấy hai đầu vào khác nhau có độ dài bất kỳ dẫn đến cùng một hàm băm. Thuộc tính này còn được gọi là hàm băm không va chạm.

    • Nói cách khác, đối với một hàm băm h, rất khó để tìm thấy bất kỳ hai đầu vào khác nhau x và y sao cho h (x) = h (y).

    • Vì hàm băm là hàm nén với độ dài băm cố định, không thể có hàm băm không có xung đột. Tính chất không va chạm này chỉ xác nhận rằng những va chạm này sẽ khó tìm thấy.

    • Thuộc tính này khiến kẻ tấn công rất khó tìm thấy hai giá trị đầu vào có cùng một hàm băm.

    • Ngoài ra, nếu một hàm băm có khả năng chống va chạm then it is second pre-image resistant.

Thiết kế thuật toán băm

Trọng tâm của hàm băm là một hàm toán học hoạt động trên hai khối dữ liệu có kích thước cố định để tạo mã băm. Hàm băm này tạo thành một phần của thuật toán băm.

Kích thước của mỗi khối dữ liệu khác nhau tùy thuộc vào thuật toán. Thông thường, kích thước khối là từ 128 bit đến 512 bit. Hình minh họa sau minh họa hàm băm:

Thuật toán băm liên quan đến các vòng của hàm băm ở trên giống như một mật mã khối. Mỗi vòng lấy một đầu vào có kích thước cố định, thường là sự kết hợp của khối thông báo gần đây nhất và đầu ra của vòng cuối cùng.

Quá trình này được lặp lại trong nhiều vòng theo yêu cầu để băm toàn bộ thông báo. Sơ đồ thuật toán băm được mô tả trong hình minh họa sau:

Kể từ đó, giá trị băm của khối thông báo đầu tiên trở thành đầu vào cho hoạt động băm thứ hai, đầu ra của nó sẽ thay đổi kết quả của hoạt động thứ ba, v.v. Hiệu ứng này, được gọi làavalanche ảnh hưởng của băm.

Hiệu ứng tuyết lở dẫn đến các giá trị băm khác nhau đáng kể cho hai thông báo khác nhau dù chỉ một bit dữ liệu.

Hiểu sự khác biệt giữa hàm băm và thuật toán một cách chính xác. Hàm băm tạo ra mã băm bằng cách hoạt động trên hai khối dữ liệu nhị phân có độ dài cố định.

Thuật toán băm là một quá trình sử dụng hàm băm, chỉ định cách thông báo sẽ được chia nhỏ và kết quả từ các khối thông báo trước đó được liên kết với nhau như thế nào.

Các hàm băm phổ biến

Hãy cùng chúng tôi xem sơ qua một số hàm băm phổ biến -

Thông báo Thông báo (MD)

MD5 là hàm băm phổ biến nhất và được sử dụng rộng rãi trong một số năm.

  • Họ MD bao gồm các hàm băm MD2, MD4, MD5 và MD6. Nó đã được chấp nhận là Chuẩn Internet RFC 1321. Nó là một hàm băm 128-bit.

  • Các thông báo MD5 đã được sử dụng rộng rãi trong thế giới phần mềm để đảm bảo tính toàn vẹn của tệp được truyền. Ví dụ: máy chủ tệp thường cung cấp tổng kiểm tra MD5 được tính toán trước cho các tệp, để người dùng có thể so sánh tổng kiểm tra của tệp đã tải xuống với nó.

  • Năm 2004, các vụ va chạm đã được tìm thấy trong MD5. Một cuộc tấn công phân tích được báo cáo là thành công chỉ trong một giờ bằng cách sử dụng cụm máy tính. Cuộc tấn công va chạm này dẫn đến MD5 bị xâm phạm và do đó nó không còn được khuyến khích sử dụng.

Chức năng băm an toàn (SHA)

Họ SHA bao gồm bốn thuật toán SHA; SHA-0, SHA-1, SHA-2 và SHA-3. Mặc dù cùng một họ nhưng có cấu trúc khác nhau.

  • Phiên bản gốc là SHA-0, một hàm băm 160 bit, được xuất bản bởi Viện Tiêu chuẩn và Công nghệ Quốc gia (NIST) vào năm 1993. Nó có một số điểm yếu và không trở nên phổ biến. Sau đó vào năm 1995, SHA-1 được thiết kế để sửa chữa những điểm yếu được cho là của SHA-0.

  • SHA-1 được sử dụng rộng rãi nhất trong các hàm băm SHA hiện có. Nó được sử dụng trong một số ứng dụng và giao thức được sử dụng rộng rãi bao gồm bảo mật Lớp cổng bảo mật (SSL).

  • Vào năm 2005, một phương pháp đã được tìm thấy để phát hiện ra các vụ va chạm đối với SHA-1 trong khung thời gian thực tế khiến khả năng sử dụng lâu dài của SHA-1 bị nghi ngờ.

  • Họ SHA-2 có bốn biến thể SHA khác là SHA-224, SHA-256, SHA-384 và SHA-512 tùy thuộc vào số lượng bit trong giá trị băm của chúng. Chưa có cuộc tấn công thành công nào được báo cáo về hàm băm SHA-2.

  • Mặc dù SHA-2 là một hàm băm mạnh. Mặc dù khác biệt đáng kể nhưng thiết kế cơ bản của nó vẫn theo thiết kế của SHA-1. Do đó, NIST đã kêu gọi thiết kế hàm băm cạnh tranh mới.

  • Vào tháng 10 năm 2012, NIST đã chọn thuật toán Keccak làm tiêu chuẩn SHA-3 mới. Keccak mang lại nhiều lợi ích, chẳng hạn như hiệu suất hiệu quả và khả năng chống lại các cuộc tấn công tốt.

RIPEMD

RIPEMD là từ viết tắt của RACE Integrity Primaries Assessment Message Digest. Tập hợp các hàm băm này được thiết kế bởi cộng đồng nghiên cứu mở và thường được biết đến như một họ các hàm băm châu Âu.

  • Bộ này bao gồm RIPEMD, RIPEMD-128 và RIPEMD-160. Cũng tồn tại các phiên bản 256 và 320 bit của thuật toán này.

  • RIPEMD gốc (128 bit) dựa trên các nguyên tắc thiết kế được sử dụng trong MD4 và được phát hiện là cung cấp khả năng bảo mật đáng ngờ. Phiên bản RIPEMD 128-bit ra đời như một bản sửa lỗi thay thế nhanh chóng để khắc phục các lỗ hổng trên RIPEMD gốc.

  • RIPEMD-160 là phiên bản cải tiến và là phiên bản được sử dụng rộng rãi nhất trong gia đình. Phiên bản 256 và 320 bit giảm nguy cơ va chạm ngẫu nhiên, nhưng không có mức độ bảo mật cao hơn so với RIPEMD-128 và RIPEMD-160 tương ứng.

Xoáy nước

Đây là một hàm băm 512-bit.

  • Nó có nguồn gốc từ phiên bản sửa đổi của Tiêu chuẩn mã hóa nâng cao (AES). Một trong những nhà thiết kế là Vincent Rijmen, người đồng sáng tạo ra AES.

  • Ba phiên bản của Whirlpool đã được phát hành; cụ thể là WHIRLPOOL-0, WHIRLPOOL-T và WHIRLPOOL.

Các ứng dụng của hàm băm

Có hai ứng dụng trực tiếp của hàm băm dựa trên các thuộc tính mật mã của nó.

Lưu trữ mật khẩu

Hàm băm cung cấp bảo vệ cho việc lưu trữ mật khẩu.

  • Thay vì lưu trữ mật khẩu rõ ràng, hầu hết tất cả các quy trình đăng nhập đều lưu trữ các giá trị băm của mật khẩu trong tệp.

  • Tệp Mật khẩu bao gồm một bảng các cặp có dạng (id người dùng, h (P)).

  • Quá trình đăng nhập được mô tả trong hình minh họa sau:

  • Kẻ xâm nhập chỉ có thể xem các mã băm của mật khẩu, ngay cả khi anh ta đã truy cập mật khẩu. Anh ta không thể đăng nhập bằng cách sử dụng hàm băm cũng như không thể lấy mật khẩu từ giá trị hàm băm vì hàm băm có thuộc tính kháng trước hình ảnh.

Kiểm tra tính toàn vẹn của dữ liệu

Kiểm tra tính toàn vẹn của dữ liệu là một ứng dụng phổ biến nhất của các hàm băm. Nó được sử dụng để tạo tổng kiểm tra trên các tệp dữ liệu. Ứng dụng này cung cấp sự đảm bảo cho người dùng về tính đúng đắn của dữ liệu.

Quá trình này được mô tả trong hình minh họa sau:

Kiểm tra tính toàn vẹn giúp người dùng phát hiện bất kỳ thay đổi nào được thực hiện đối với tệp gốc. Tuy nhiên, nó không cung cấp bất kỳ sự đảm bảo nào về tính nguyên bản. Kẻ tấn công, thay vì sửa đổi dữ liệu tệp, có thể thay đổi toàn bộ tệp và tính toán tất cả các băm mới cùng nhau và gửi đến người nhận. Ứng dụng kiểm tra tính toàn vẹn này chỉ hữu ích nếu người dùng chắc chắn về tính nguyên gốc của tệp.

Trong chương trước, chúng ta đã thảo luận về các mối đe dọa toàn vẹn dữ liệu và việc sử dụng kỹ thuật băm để phát hiện xem có bất kỳ cuộc tấn công sửa đổi nào đã diễn ra trên dữ liệu hay không.

Một loại mối đe dọa khác tồn tại đối với dữ liệu là thiếu message authentication. Trong mối đe dọa này, người dùng không chắc chắn về người khởi tạo thông báo. Xác thực thông điệp có thể được cung cấp bằng cách sử dụng các kỹ thuật mật mã sử dụng khóa bí mật như được thực hiện trong trường hợp mã hóa.

Mã xác thực tin nhắn (MAC)

Thuật toán MAC là một kỹ thuật mật mã khóa đối xứng để cung cấp xác thực thông điệp. Để thiết lập quy trình MAC, người gửi và người nhận dùng chung một khóa K đối xứng.

Về cơ bản, MAC là một tổng kiểm tra được mã hóa được tạo ra trên thông điệp cơ bản được gửi cùng với một thông báo để đảm bảo xác thực thông báo.

Quá trình sử dụng MAC để xác thực được mô tả trong hình minh họa sau:

Bây giờ chúng ta hãy cố gắng hiểu toàn bộ quá trình một cách chi tiết -

  • Người gửi sử dụng một số thuật toán MAC được biết đến rộng rãi, nhập thông điệp và khóa bí mật K và tạo ra giá trị MAC.

  • Tương tự như hàm băm, hàm MAC cũng nén một đầu vào dài tùy ý thành một đầu ra có độ dài cố định. Sự khác biệt chính giữa băm và MAC là MAC sử dụng khóa bí mật trong quá trình nén.

  • Người gửi chuyển tiếp tin nhắn cùng với MAC. Ở đây, chúng tôi giả định rằng thông báo được gửi rõ ràng, vì chúng tôi lo ngại về việc cung cấp xác thực nguồn gốc của thông báo, không phải tính bảo mật. Nếu yêu cầu bảo mật thì thư cần mã hóa.

  • Khi nhận được thông điệp và MAC, người nhận cung cấp thông điệp đã nhận và khóa bí mật được chia sẻ K vào thuật toán MAC và tính toán lại giá trị MAC.

  • Bây giờ người nhận kiểm tra sự bình đẳng của MAC mới tính với MAC nhận được từ người gửi. Nếu chúng khớp nhau, thì người nhận chấp nhận tin nhắn và tự đảm bảo rằng tin nhắn đã được gửi bởi người gửi dự định.

  • Nếu MAC được tính toán không khớp với MAC do người gửi gửi, người nhận không thể xác định đó là thông điệp đã bị thay đổi hay nó là nguồn gốc đã bị làm giả. Điểm mấu chốt, người nhận tin chắc rằng tin nhắn không phải là tin nhắn chính hãng.

Hạn chế của MAC

Có hai hạn chế chính của MAC, cả hai đều do tính chất hoạt động đối xứng của nó -

  • Establishment of Shared Secret.

    • Nó có thể cung cấp xác thực tin nhắn giữa những người dùng hợp pháp được quyết định trước, những người đã chia sẻ khóa.

    • Điều này yêu cầu thiết lập bí mật chung trước khi sử dụng MAC.

  • Inability to Provide Non-Repudiation

    • Không từ chối là đảm bảo rằng người khởi tạo thông điệp không thể từ chối bất kỳ thông điệp và cam kết hoặc hành động nào đã gửi trước đó.

    • Kỹ thuật MAC không cung cấp dịch vụ không thoái thác. Nếu người gửi và người nhận vướng vào tranh chấp về nguồn gốc của thông điệp, MAC không thể cung cấp bằng chứng rằng một thông điệp thực sự đã được gửi bởi người gửi.

    • Mặc dù không có bên thứ ba nào có thể tính toán MAC, nhưng người gửi vẫn có thể phủ nhận việc đã gửi tin nhắn và cho rằng người nhận đã giả mạo nó, vì không thể xác định được bên nào trong hai bên đã tính toán MAC.

Cả hai hạn chế này có thể được khắc phục bằng cách sử dụng chữ ký số dựa trên khóa công khai được thảo luận trong phần sau.

Chữ ký điện tử là khóa công khai ban đầu của xác thực thông điệp. Trong thế giới vật lý, người ta thường sử dụng chữ ký viết tay trên các tin nhắn viết tay hoặc đánh máy. Chúng được sử dụng để ràng buộc người ký vào thông điệp.

Tương tự, chữ ký điện tử là một kỹ thuật liên kết một người / thực thể với dữ liệu kỹ thuật số. Ràng buộc này có thể được xác nhận độc lập bởi người nhận cũng như bất kỳ bên thứ ba nào.

Chữ ký điện tử là một giá trị mật mã được tính toán từ dữ liệu và một khóa bí mật chỉ người ký mới biết.

Trong thế giới thực, người nhận tin nhắn cần đảm bảo rằng tin nhắn đó thuộc về người gửi và anh ta không thể từ chối nguồn gốc của thông điệp đó. Yêu cầu này rất quan trọng trong các ứng dụng kinh doanh, vì khả năng xảy ra tranh chấp về dữ liệu được trao đổi là rất cao.

Mô hình chữ ký số

Như đã đề cập trước đó, lược đồ chữ ký số dựa trên mật mã khóa công khai. Mô hình của lược đồ chữ ký số được mô tả trong hình minh họa sau:

Những điểm sau đây giải thích chi tiết toàn bộ quá trình:

  • Mỗi người áp dụng chương trình này có một cặp khóa công khai-riêng tư.

  • Nói chung, các cặp khóa được sử dụng để mã hóa / giải mã và ký / xác minh là khác nhau. Khóa cá nhân được sử dụng để ký được gọi là khóa chữ ký và khóa công khai là khóa xác minh.

  • Người ký cung cấp dữ liệu cho hàm băm và tạo dữ liệu băm.

  • Giá trị băm và khóa chữ ký sau đó được cung cấp cho thuật toán chữ ký tạo ra chữ ký điện tử trên hàm băm đã cho. Chữ ký được thêm vào dữ liệu và sau đó cả hai đều được gửi đến người xác minh.

  • Người xác minh cung cấp chữ ký số và khóa xác minh vào thuật toán xác minh. Thuật toán xác minh cung cấp một số giá trị dưới dạng đầu ra.

  • Trình xác minh cũng chạy cùng một hàm băm trên dữ liệu nhận được để tạo giá trị băm.

  • Để xác minh, giá trị băm này và đầu ra của thuật toán xác minh được so sánh. Dựa trên kết quả so sánh, người xác minh quyết định xem chữ ký điện tử có hợp lệ hay không.

  • Vì chữ ký điện tử được tạo bởi khóa 'riêng tư' của người ký và không ai khác có thể có khóa này; người ký không thể từ chối việc ký dữ liệu trong tương lai.

Cần lưu ý rằng thay vì ký dữ liệu trực tiếp bằng thuật toán ký, thông thường một băm dữ liệu được tạo. Vì hàm băm của dữ liệu là một đại diện duy nhất của dữ liệu, nên chỉ cần ký hàm băm thay cho dữ liệu là đủ. Lý do quan trọng nhất của việc sử dụng băm thay vì dữ liệu trực tiếp để ký là hiệu quả của chương trình.

Giả sử RSA được sử dụng làm thuật toán ký. Như đã thảo luận trong chương mã hóa khóa công khai, quá trình mã hóa / ký sử dụng RSA liên quan đến phép lũy thừa mô-đun.

Việc ký dữ liệu lớn thông qua lũy thừa mô-đun rất tốn kém về mặt tính toán và tốn thời gian. Hàm băm của dữ liệu là một bản tóm tắt dữ liệu tương đối nhỏ, do đósigning a hash is more efficient than signing the entire data.

Tầm quan trọng của Chữ ký số

Trong số tất cả các nguyên bản về mật mã, chữ ký điện tử sử dụng mật mã khóa công khai được coi là công cụ rất quan trọng và hữu ích để đạt được an toàn thông tin.

Ngoài khả năng cung cấp tính năng không từ chối thông điệp, chữ ký điện tử còn cung cấp khả năng xác thực thông điệp và tính toàn vẹn dữ liệu. Hãy cùng chúng tôi xem ngắn gọn cách thức đạt được điều này bằng chữ ký điện tử -

  • Message authentication - Khi người xác minh xác thực chữ ký điện tử bằng khóa công khai của người gửi, người đó được đảm bảo rằng chữ ký chỉ được tạo bởi người gửi sở hữu khóa cá nhân bí mật tương ứng chứ không phải ai khác.

  • Data Integrity- Trong trường hợp kẻ tấn công có quyền truy cập vào dữ liệu và sửa đổi nó, việc xác minh chữ ký số ở đầu thu không thành công. Hàm băm của dữ liệu đã sửa đổi và đầu ra do thuật toán xác minh cung cấp sẽ không khớp. Do đó, người nhận có thể từ chối thông báo một cách an toàn giả sử rằng tính toàn vẹn của dữ liệu đã bị vi phạm.

  • Non-repudiation- Vì giả định rằng chỉ người ký mới có kiến ​​thức về khóa chữ ký, anh ta chỉ có thể tạo chữ ký duy nhất trên một dữ liệu nhất định. Do đó, người nhận có thể xuất trình dữ liệu và chữ ký số cho bên thứ ba để làm bằng chứng nếu có tranh chấp phát sinh trong tương lai.

Bằng cách thêm mã hóa khóa công khai vào lược đồ chữ ký số, chúng tôi có thể tạo ra một hệ thống mật mã có thể cung cấp bốn yếu tố bảo mật thiết yếu là - Quyền riêng tư, Xác thực, Tính toàn vẹn và Không thoái thác.

Mã hóa bằng chữ ký số

Trong nhiều giao tiếp kỹ thuật số, người ta mong muốn trao đổi một thông điệp được mã hóa hơn là văn bản rõ ràng để đạt được tính bảo mật. Trong lược đồ mã hóa khóa công khai, khóa công khai (mã hóa) của người gửi có sẵn trong miền mở và do đó bất kỳ ai cũng có thể giả mạo danh tính của mình và gửi bất kỳ tin nhắn mã hóa nào đến người nhận.

Điều này làm cho người dùng sử dụng PKC để mã hóa tìm kiếm chữ ký số cùng với dữ liệu được mã hóa là điều cần thiết để đảm bảo xác thực tin nhắn và không từ chối.

Điều này có thể được lưu trữ bằng cách kết hợp chữ ký điện tử với sơ đồ mã hóa. Hãy để chúng tôi thảo luận ngắn gọn về cách đạt được yêu cầu này. Cótwo possibilities, sign-then-encryptencrypt-then-sign.

Tuy nhiên, hệ thống tiền điện tử dựa trên ký hiệu sau đó mã hóa có thể bị người nhận lợi dụng để giả mạo danh tính người gửi và gửi dữ liệu đó cho bên thứ ba. Do đó, phương pháp này không được ưa thích. Quá trình mã hóa sau đó ký đáng tin cậy hơn và được áp dụng rộng rãi. Điều này được mô tả trong hình minh họa sau:

Người nhận sau khi nhận được dữ liệu được mã hóa và chữ ký trên đó, trước tiên sẽ xác minh chữ ký bằng khóa công khai của người gửi. Sau khi đảm bảo tính hợp lệ của chữ ký, anh ta sẽ truy xuất dữ liệu thông qua giải mã bằng khóa riêng của mình.

Tính năng khác biệt nhất của Cơ sở hạ tầng khóa công khai (PKI) là nó sử dụng một cặp khóa để đạt được dịch vụ bảo mật cơ bản. Cặp khóa bao gồm khóa cá nhân và khóa công khai.

Vì các khóa công khai nằm trong miền mở, chúng có khả năng bị lạm dụng. Do đó, cần thiết lập và duy trì một số loại cơ sở hạ tầng đáng tin cậy để quản lý các khóa này.

Quản lý khóa

Không cần phải nói rằng tính bảo mật của bất kỳ hệ thống mật mã nào phụ thuộc vào việc các khóa của nó được quản lý an toàn như thế nào. Nếu không có các quy trình an toàn để xử lý các khóa mật mã, lợi ích của việc sử dụng các chương trình mật mã mạnh sẽ có thể bị mất.

Người ta quan sát thấy rằng các sơ đồ mật mã hiếm khi bị xâm phạm thông qua các điểm yếu trong thiết kế của chúng. Tuy nhiên, chúng thường bị xâm nhập thông qua việc quản lý khóa kém.

Có một số khía cạnh quan trọng của quản lý chính như sau:

  • Các khóa mật mã không là gì ngoài những phần dữ liệu đặc biệt. Quản lý khóa đề cập đến việc quản lý an toàn các khóa mật mã.

  • Quản lý khóa giải quyết toàn bộ vòng đời của khóa như được mô tả trong hình minh họa sau:

  • Có hai yêu cầu cụ thể về quản lý khóa đối với mật mã khóa công khai.

    • Secrecy of private keys. Trong suốt vòng đời của khóa, khóa bí mật phải được giữ bí mật với tất cả các bên ngoại trừ những người là chủ sở hữu và được phép sử dụng chúng.

    • Assurance of public keys.Trong mật mã khóa công khai, các khóa công khai nằm trong miền mở và được coi là các phần dữ liệu công khai. Theo mặc định, không có đảm bảo nào về việc khóa công khai có chính xác hay không, nó có thể được liên kết với ai hoặc nó có thể được sử dụng để làm gì. Do đó, việc quản lý khóa của khóa công khai cần tập trung rõ ràng hơn nhiều vào việc đảm bảo mục đích của khóa công khai.

Yêu cầu quan trọng nhất về 'đảm bảo khóa công khai' có thể đạt được thông qua cơ sở hạ tầng khóa công khai (PKI), một hệ thống quản lý khóa để hỗ trợ mật mã khóa công khai.

Cơ sở hạ tầng khóa công khai (PKI)

PKI cung cấp sự đảm bảo về khóa công khai. Nó cung cấp việc xác định các khóa công khai và phân phối của chúng. Giải phẫu của PKI bao gồm các thành phần sau.

  • Chứng chỉ khóa công khai, thường được gọi là 'chứng chỉ số'.
  • Mã thông báo Khóa cá nhân.
  • Chứng nhận thẩm quyền.
  • Cơ quan đăng ký.
  • Hệ thống quản lý chứng chỉ.

Giấy chứng nhận điện tử

Tương tự, một chứng chỉ có thể được coi là thẻ ID được cấp cho người đó. Người dân sử dụng chứng minh thư như bằng lái xe, hộ chiếu để chứng minh nhân thân. Chứng chỉ số thực hiện điều cơ bản tương tự trong thế giới điện tử, nhưng có một điểm khác biệt.

Chứng thư số không chỉ được cấp cho người mà chúng có thể được cấp cho máy tính, gói phần mềm hoặc bất kỳ thứ gì khác cần chứng minh danh tính trong thế giới điện tử.

  • Chứng chỉ kỹ thuật số dựa trên tiêu chuẩn ITU X.509 xác định định dạng chứng chỉ tiêu chuẩn cho chứng chỉ khóa công khai và xác thực chứng chỉ. Do đó, chứng chỉ số đôi khi còn được gọi là chứng chỉ X.509.

    Khóa công khai liên quan đến máy khách người dùng được Cơ quan cấp chứng chỉ (CA) lưu trữ trong chứng chỉ số cùng với các thông tin liên quan khác như thông tin máy khách, ngày hết hạn, cách sử dụng, nhà phát hành, v.v.

  • CA ký kỹ thuật số toàn bộ thông tin này và bao gồm chữ ký điện tử trong chứng chỉ.

  • Bất kỳ ai cần sự đảm bảo về khóa công khai và thông tin liên quan của khách hàng, anh ta thực hiện quy trình xác thực chữ ký bằng khóa công khai của CA. Việc xác thực thành công đảm bảo rằng khóa công khai được cung cấp trong chứng chỉ thuộc về người có thông tin chi tiết được cung cấp trong chứng chỉ.

Quá trình lấy Chứng chỉ số của một cá nhân / tổ chức được mô tả trong hình minh họa sau.

Như trong hình minh họa, CA chấp nhận đơn từ khách hàng để chứng nhận khóa công khai của anh ta. CA, sau khi xác minh hợp lệ danh tính của khách hàng, sẽ cấp chứng chỉ số cho khách hàng đó.

Cơ quan chứng nhận (CA)

Như đã thảo luận ở trên, CA cấp chứng chỉ cho máy khách và hỗ trợ người dùng khác xác minh chứng chỉ. CA chịu trách nhiệm xác định chính xác danh tính của khách hàng yêu cầu cấp chứng chỉ và đảm bảo rằng thông tin chứa trong chứng chỉ là chính xác và ký số vào chứng chỉ đó.

Các chức năng chính của CA

Các chức năng chính của CA như sau:

  • Generating key pairs - CA có thể tạo một cặp khóa độc lập hoặc cùng với máy khách.

  • Issuing digital certificates- CA có thể được coi là PKI tương đương với cơ quan hộ chiếu - CA cấp chứng chỉ sau khi khách hàng cung cấp thông tin xác thực để xác nhận danh tính của mình. Sau đó, CA ký chứng chỉ để ngăn chặn việc sửa đổi các chi tiết có trong chứng chỉ.

  • Publishing Certificates- CA cần xuất bản các chứng chỉ để người dùng có thể tìm thấy chúng. Có hai cách để đạt được điều này. Một là xuất bản các chứng chỉ tương đương với một danh bạ điện thoại điện tử. Cách khác là gửi chứng chỉ của bạn cho những người mà bạn nghĩ có thể cần bằng cách này hay cách khác.

  • Verifying Certificates - CA cung cấp khóa công khai của mình trong môi trường để hỗ trợ xác minh chữ ký của anh ta trên chứng chỉ số của khách hàng.

  • Revocation of Certificates- Đôi khi, CA thu hồi chứng chỉ đã cấp do một số lý do như bị người dùng xâm phạm khóa cá nhân hoặc mất lòng tin vào máy khách. Sau khi thu hồi, CA duy trì danh sách tất cả chứng chỉ đã thu hồi có sẵn cho môi trường.

Các loại chứng chỉ

Có bốn loại chứng chỉ điển hình -

  • Class 1 - Các chứng chỉ này có thể dễ dàng đạt được bằng cách cung cấp địa chỉ email.

  • Class 2 - Các chứng chỉ này yêu cầu cung cấp thêm thông tin cá nhân.

  • Class 3 - Chỉ có thể mua những chứng chỉ này sau khi đã kiểm tra danh tính của người yêu cầu.

  • Class 4 - Chúng có thể được sử dụng bởi các chính phủ và tổ chức tài chính cần mức độ tin cậy rất cao.

Cơ quan đăng ký (RA)

CA có thể sử dụng Cơ quan đăng ký bên thứ ba (RA) để thực hiện các kiểm tra cần thiết đối với người hoặc công ty yêu cầu chứng chỉ để xác nhận danh tính của họ. RA có thể xuất hiện với khách hàng như một CA, nhưng họ không thực sự ký vào chứng chỉ được cấp.

Hệ thống quản lý chứng chỉ (CMS)

Đó là hệ thống quản lý thông qua đó các chứng chỉ được xuất bản, tạm thời hoặc vĩnh viễn bị đình chỉ, gia hạn hoặc thu hồi. Hệ thống quản lý chứng chỉ thường không xóa chứng chỉ vì có thể cần phải chứng minh trạng thái của chúng tại một thời điểm, có lẽ vì lý do pháp lý. Một CA cùng với RA liên quan chạy các hệ thống quản lý chứng chỉ để có thể theo dõi trách nhiệm và nghĩa vụ của họ.

Mã thông báo khóa cá nhân

Trong khi khóa công khai của máy khách được lưu trữ trên chứng chỉ, khóa riêng bí mật liên quan có thể được lưu trữ trên máy tính của chủ sở hữu khóa. Phương pháp này thường không được chấp nhận. Nếu kẻ tấn công giành được quyền truy cập vào máy tính, anh ta có thể dễ dàng truy cập vào khóa riêng. Vì lý do này, khóa cá nhân được lưu trữ trên quyền truy cập mã thông báo lưu trữ di động an toàn được bảo vệ thông qua mật khẩu.

Các nhà cung cấp khác nhau thường sử dụng các định dạng lưu trữ khác nhau và đôi khi là độc quyền để lưu trữ khóa. Ví dụ: Entrust sử dụng định dạng .epf độc quyền, trong khi Verisign, GlobalSign và Baltimore sử dụng định dạng .p12 tiêu chuẩn.

Hệ thống phân cấp của CA

Với mạng lưới rộng lớn và các yêu cầu của truyền thông toàn cầu, thực tế là không khả thi nếu chỉ có một CA đáng tin cậy mà tất cả người dùng có được chứng chỉ của họ. Thứ hai, chỉ có một CA có thể dẫn đến khó khăn nếu CA bị xâm phạm.

Trong trường hợp đó, mô hình chứng chỉ phân cấp được quan tâm vì nó cho phép các chứng chỉ khóa công khai được sử dụng trong môi trường mà hai bên giao tiếp không có mối quan hệ tin cậy với cùng một CA.

  • CA gốc nằm ở đầu phân cấp CA và chứng chỉ của CA gốc là chứng chỉ tự ký.

  • Các CA, trực thuộc CA gốc (Ví dụ: CA1 và CA2) có chứng chỉ CA được ký bởi CA gốc.

  • Các CA dưới CA cấp dưới trong hệ thống phân cấp (Ví dụ: CA5 và CA6) có chứng chỉ CA của họ do CA cấp dưới cấp cao hơn ký.

Cơ quan cấp chứng chỉ (CA) được phản ánh trong chuỗi chứng chỉ. Chuỗi chứng chỉ theo dõi một đường dẫn của chứng chỉ từ một nhánh trong cấu trúc phân cấp đến gốc của cấu trúc phân cấp.

Hình minh họa sau đây cho thấy cấu trúc phân cấp CA với chuỗi chứng chỉ dẫn từ chứng chỉ thực thể qua hai chứng chỉ CA cấp dưới (CA6 và CA3) đến chứng chỉ CA cho CA gốc.

Xác minh chuỗi chứng chỉ là quá trình đảm bảo rằng một chuỗi chứng chỉ cụ thể là hợp lệ, được ký chính xác và đáng tin cậy. Quy trình sau đây xác minh chuỗi chứng chỉ, bắt đầu bằng chứng chỉ được xuất trình để xác thực -

  • Một khách hàng có tính xác thực đang được xác minh sẽ cung cấp chứng chỉ của anh ta, thường cùng với chuỗi chứng chỉ lên đến Root CA.

  • Người xác minh lấy chứng chỉ và xác thực bằng cách sử dụng khóa công khai của tổ chức phát hành. Khóa công khai của nhà phát hành được tìm thấy trong chứng chỉ của nhà phát hành nằm trong chuỗi bên cạnh chứng chỉ của khách hàng.

  • Bây giờ nếu CA cao hơn đã ký chứng chỉ của nhà phát hành, được người xác minh tin cậy, thì việc xác minh sẽ thành công và dừng lại ở đây.

  • Ngoài ra, chứng chỉ của tổ chức phát hành được xác minh theo cách tương tự như đã thực hiện cho khách hàng ở các bước trên. Quá trình này tiếp tục cho đến khi tìm thấy CA đáng tin cậy ở giữa hoặc nếu không nó sẽ tiếp tục cho đến khi Root CA.

Ngày nay, các mạng đã trở nên toàn cầu và thông tin đã ở dạng kỹ thuật số của bit và byte. Thông tin quan trọng giờ đây được lưu trữ, xử lý và truyền dưới dạng kỹ thuật số trên hệ thống máy tính và các kênh truyền thông mở.

Vì thông tin đóng một vai trò quan trọng như vậy nên kẻ thù đang nhắm mục tiêu vào hệ thống máy tính và các kênh liên lạc mở để đánh cắp thông tin nhạy cảm hoặc phá vỡ hệ thống thông tin quan trọng.

Mật mã hiện đại cung cấp một tập hợp các kỹ thuật mạnh mẽ để đảm bảo ngăn chặn ý định xấu xa của kẻ thù trong khi đảm bảo người dùng hợp pháp có quyền truy cập thông tin. Ở đây trong chương này, chúng ta sẽ thảo luận về những lợi ích mà chúng ta rút ra từ mật mã, những hạn chế của nó, cũng như tương lai của mật mã.

Mật mã - Lợi ích

Mật mã là một công cụ bảo mật thông tin thiết yếu. Nó cung cấp bốn dịch vụ cơ bản nhất của bảo mật thông tin -

  • Confidentiality - Kỹ thuật mã hóa có thể bảo vệ thông tin và truyền thông khỏi sự tiết lộ và truy cập trái phép thông tin.

  • Authentication - Các kỹ thuật mật mã như MAC và chữ ký số có thể bảo vệ thông tin chống lại giả mạo và giả mạo.

  • Data Integrity - Các hàm băm mật mã đóng vai trò quan trọng trong việc đảm bảo với người dùng về tính toàn vẹn của dữ liệu.

  • Non-repudiation - Chữ ký điện tử cung cấp dịch vụ không từ chối để đề phòng tranh chấp có thể phát sinh do người gửi từ chối chuyển thông điệp.

Tất cả các dịch vụ cơ bản này được cung cấp bởi mật mã đã cho phép tiến hành hoạt động kinh doanh trên các mạng sử dụng hệ thống máy tính một cách cực kỳ hiệu quả và hiệu quả.

Mật mã - Hạn chế

Ngoài bốn yếu tố cơ bản của an toàn thông tin, có những vấn đề khác ảnh hưởng đến việc sử dụng hiệu quả thông tin -

  • Thông tin được mã hóa mạnh mẽ, xác thực và được ký kỹ thuật số có thể được difficult to access even for a legitimate uservào thời điểm quyết định quan trọng. Mạng hoặc hệ thống máy tính có thể bị tấn công và làm cho không hoạt động bởi kẻ xâm nhập.

  • High availability,một trong những khía cạnh cơ bản của bảo mật thông tin, không thể được đảm bảo thông qua việc sử dụng mật mã. Cần có các phương pháp khác để đề phòng các mối đe dọa như từ chối dịch vụ hoặc sự cố hoàn toàn của hệ thống thông tin.

  • Một nhu cầu cơ bản khác về bảo mật thông tin của selective access controlcũng không thể được thực hiện thông qua việc sử dụng mật mã. Các thủ tục và kiểm soát hành chính được yêu cầu phải được thực hiện tương tự.

  • Mật mã không bảo vệ chống lại các lỗ hổng và threats that emerge from the poor design of systems,giao thức và thủ tục. Chúng cần được khắc phục thông qua thiết kế và thiết lập cơ sở hạ tầng phòng thủ thích hợp.

  • Mật mã có giá. Cái giá phải trả là về mặt thời gian và tiền bạc -

    • Việc bổ sung các kỹ thuật mật mã trong quá trình xử lý thông tin dẫn đến sự chậm trễ.

    • Việc sử dụng mật mã khóa công khai yêu cầu thiết lập và duy trì cơ sở hạ tầng khóa công khai yêu cầu ngân sách tài chính lớn.

  • Tính bảo mật của kỹ thuật mật mã dựa trên độ khó tính toán của các vấn đề toán học. Bất kỳ bước đột phá nào trong việc giải quyết các vấn đề toán học như vậy hoặc tăng sức mạnh tính toán đều có thể khiến một kỹ thuật mật mã dễ bị tấn công.

Tương lai của mật mã

Elliptic Curve Cryptography(ECC) đã được phát minh nhưng ưu điểm và nhược điểm của nó vẫn chưa được hiểu rõ. ECC cho phép thực hiện mã hóa và giải mã trong thời gian ngắn hơn đáng kể, do đó cho phép truyền một lượng dữ liệu cao hơn với độ bảo mật tương đương. Tuy nhiên, như các phương pháp mã hóa khác, ECC cũng phải được kiểm tra và chứng minh là an toàn trước khi nó được chấp nhận để sử dụng cho mục đích chính phủ, thương mại và tư nhân.

Quantum computationlà hiện tượng mới. Trong khi các máy tính hiện đại lưu trữ dữ liệu bằng định dạng nhị phân gọi là "bit" trong đó có thể lưu trữ "1" hoặc "0"; một máy tính lượng tử lưu trữ dữ liệu bằng cách sử dụng chồng chất lượng tử của nhiều trạng thái. Nhiều trạng thái có giá trị này được lưu trữ trong "bit lượng tử" hoặc "qubit". Điều này cho phép tính toán các con số nhanh hơn vài bậc so với bộ xử lý bóng bán dẫn truyền thống.

Để hiểu được sức mạnh của máy tính lượng tử, hãy xem xét RSA-640, một số có 193 chữ số, có thể được tính toán bởi tám mươi máy tính 2.2GHz trong khoảng thời gian 5 tháng, một máy tính lượng tử sẽ tính trong vòng chưa đầy 17 giây. Những con số thường mất hàng tỷ năm để tính toán có thể chỉ mất vài giờ hoặc thậm chí vài phút với một máy tính lượng tử được phát triển hoàn chỉnh.

Theo quan điểm của những thực tế này, mật mã hiện đại sẽ phải tìm kiếm các vấn đề khó hơn về mặt tính toán hoặc đưa ra các kỹ thuật hoàn toàn mới để lưu trữ các mục tiêu mà mật mã hiện đại phục vụ.