Mật mã học: Giải thích các thuật toán khóa đối xứng và không đối xứng

Mật mã được sinh ra từ nhu cầu thực hiện việc truyền dữ liệu ở chế độ riêng tư, vì vậy trên cơ sở, mật mã là phương pháp được áp dụng cho một thông điệp để mã hóa và giải mã nó theo cách mà chỉ người gửi và người nhận thông báo đó mới có thể nhìn thấy bản rõ, đến nỗi bất kỳ ai chặn nó khi đang truyền cũng không thể đọc được, và ngược lại, nó đủ an toàn để chống lại bất kỳ cuộc tấn công nào. điều đó có thể làm ảnh hưởng đến thông tin đang được truyền đi. Có hai loại mã hóa tùy thuộc vào loại chìa khóa của bạn. Mật mã học có các thuật toán chỉ sử dụng một khóa, hoặc mật mã đối xứng và mật mã của các thuật toán hai khóa, mật mã bất đối xứng . Ở đây chúng ta sẽ có thể xem cách hoạt động của từng loại và các thuộc tính và sự khác biệt của chúng.

Mật mã đối xứng hoặc mật mã một khóa

Mật mã đối xứng là kỹ thuật mật mã lâu đời nhất, nhưng nó vẫn cung cấp mức độ bảo mật cao. Nó dựa trên việc sử dụng một khóa bí mật duy nhất sẽ chịu trách nhiệm mã hóa và giải mã thông tin, cho dù đó là thông tin được truyền qua các giao thức như TLS hay thông tin trên thiết bị lưu trữ di động. Mật mã đối xứng là phương pháp đầu tiên được sử dụng để mã hóa thông tin, nó dựa trên thực tế là cùng một mật khẩu sẽ được sử dụng cho cả mã hóa và giải mã, do đó, điều cần thiết là tất cả người dùng muốn mã hóa hoặc giải mã thông điệp, khóa bí mật, nếu không họ sẽ không thể. Nhờ mật mã đối xứng, chúng ta có thể thực hiện liên lạc hoặc lưu trữ tệp một cách an toàn.

Mật mã học

Encryption sử dụng khóa đối xứng có nghĩa là ít nhất hai người dùng phải có khóa bí mật. Sử dụng khóa này, tất cả các tin nhắn được truyền qua kênh không an toàn, chẳng hạn như Internet, sẽ được mã hóa và giải mã, do đó chúng tôi cần mã hóa dữ liệu để duy trì tính bảo mật. Bất kỳ người dùng nào muốn truy cập vào tin nhắn được mã hóa đều phải có mật khẩu giải mã này, nếu không, nó sẽ không thể đọc được.

Phương pháp mã hóa dữ liệu dựa trên thực tế là người gửi sẽ mã hóa tin nhắn bằng khóa cá nhân của mình, anh ta sẽ gửi nó qua kênh không an toàn và người nhận sẽ phải giải mã bằng cùng một mật khẩu hoặc khóa riêng mà người gửi. đã dùng.

Có một số điểm mà thuật toán khóa đối xứng phải đáp ứng để được bảo mật khi sử dụng:

  • Một khi tin nhắn được mã hóa, cả khóa mã hóa và thông điệp rõ ràng đều không thể lấy được bằng bất kỳ phương pháp nào.
  • Nếu chúng ta biết thông điệp rõ ràng và mã hóa, nên dành nhiều thời gian và tiền bạc hơn để có được chìa khóa để truy cập thông điệp rõ ràng, hơn là giá trị có thể có của thông tin đó là bị đánh cắp.

Tấn công vũ phukẻ thù thực sự của các thuật toán mật mã đối xứng , cần phải lưu ý rằng các thuật toán này là công khai và sức mạnh của chúng phụ thuộc trực tiếp vào mức độ phức tạp của thuật toán bên trong cũng như độ dài của khóa được sử dụng để ngăn chặn các cuộc tấn công này.

Điều quan trọng nhất trong mật mã đối xứng là bảo vệ khóa cá nhân hoặc mật khẩu. Vấn đề chính nảy sinh là việc phân phối khóa cá nhân hoặc mật khẩu này cho tất cả người dùng, cả người gửi và người nhận thông tin, để mã hóa và giải mã thông tin trong tin nhắn. Điều quan trọng là tất cả người dùng của hệ thống phải bảo vệ khóa cá nhân hoặc mật khẩu tốt nhất có thể, bởi vì nếu nó rơi vào tay kẻ xấu, toàn bộ hệ thống sẽ bị xâm phạm, phải tạo khóa mới và phân phối lại khóa cá nhân cho người khác những người tham gia.

Một trong những điểm khác biệt giữa mật mã đối xứng và không đối xứng là đối xứng, tất cả người dùng đều có cùng một khóa mã hóa / giải mã, nếu chúng ta có nhiều hơn một kênh liên lạc, chúng ta sẽ có nhiều khóa riêng như các kênh liên lạc song song. Tuy nhiên, trong những điều không đối xứng, mỗi người dùng sẽ có một cặp khóa (công khai và riêng tư) cho tất cả các kênh liên lạc, bất kể số kênh an toàn cần duy trì, chúng ta chỉ phải bảo vệ khóa riêng.

Ưu điểm của thuật toán mật mã đối xứng là nhanh, rất nhanh, ngoài ra, trong những năm gần đây, tăng tốc mã hóa phần cứng đã được tích hợp vào bộ xử lý máy tính, máy chủ, bộ định tuyến và các thiết bị khác, bằng cách này, chúng ta có thể truyền dữ liệu qua VPN rất nhanh. Tốc độ cũng phụ thuộc vào thuật toán mã hóa đối xứng được sử dụng, ví dụ, AES và ChaCha20 là hai trong số những giải pháp nhanh nhất và an toàn nhất mà chúng ta có ngày nay, nhưng phần cứng của thiết bị ảnh hưởng rất nhiều.

Bây giờ chúng ta sẽ nói chi tiết về hai thuật toán đối xứng được sử dụng liên tục ngày nay, trong các kết nối HTTPS với TLS 1.2 và TLS 1.3, trong các mạng riêng ảo với IPsec, OpenVPN hoặc Dây bảo vệ, và cả trong các lĩnh vực khác mà mã hóa dữ liệu được sử dụng, như trong VeraCrypt.

AES (Tiêu chuẩn mã hóa nâng cao)

Thuật toán AES đối xứng phụ trách thay thế DES và hiện đang được sử dụng trong tất cả các kênh và giao thức an toàn như TLS, FTPES, mạng riêng ảo và nhiều hơn nữa. Mã hóa AES có thể được sử dụng trong cả phần mềm và phần cứng, AES là một thuật toán mã hóa khối, kích thước khối cố định là 128 bit . Chiều dài của khóa có thể được chọn và chúng tôi có 128, 192 và 256 bit khả dụng , là độ dài tiêu chuẩn của 128 bit, nhưng 256 bit cũng được sử dụng rộng rãi.

Một khía cạnh rất quan trọng là AES chịu trách nhiệm tạo ra ma trận 4 × 4, và sau đó một loạt các vòng mã hóa được áp dụng cho nó. Đối với khóa 128 bit, 10 vòng mã hóa được áp dụng, đối với khóa 192 bit, 12 vòng được áp dụng và đối với khóa 256 bit, số vòng được áp dụng là 14. Ngay từ đầu, nhiều nhà mật mã đã nghi ngờ tính bảo mật của nó, và Các cuộc tấn công đã được ghi lại trên một số vòng gần với vòng cuối cùng, cụ thể là 7 vòng đối với khóa 128 bit, 8 vòng đối với khóa 192 bit và 9 vòng đối với khóa 256 bit đã được giải mã.

Chế độ mã hóa là cách xử lý các khối tin nhắn mã hóa AES, có nhiều kiểu khác nhau và mỗi kiểu hoạt động theo một cách khác nhau. Ví dụ, có AES-CBC, AES-CFB và AES-OFB , chúng tôi sẽ giải thích chính xác điều này xuất hiện trong các thư viện mật mã như OpenSSL và LibreSSL.

  • CBC (Chuỗi khối mật mã) - Chế độ mã hóa này đã được sử dụng rộng rãi cùng với hàm băm để xác minh tính xác thực của dữ liệu, và vẫn được sử dụng cho đến ngày nay. Chế độ mã hóa này bao gồm XOR từng khối bản rõ với khối mã hóa trước đó. Mỗi khối được mã hóa phụ thuộc vào khối được xử lý trước đó cho đến thời điểm đó. Để thực hiện tùy chọn XOR này với khối văn bản đầu tiên, một vectơ khởi tạo IV được sử dụng. Chế độ mã hóa này được thực hiện tuần tự, không thể xử lý song song để tăng hiệu suất mã hóa / giải mã dữ liệu.
  • OFB (Phản hồi đầu ra) : trong chế độ này, khóa bí mật được sử dụng để tạo một khối giả ngẫu nhiên mà phép toán XOR với bản rõ được áp dụng để tạo bản mã. Trong trường hợp này, một vectơ khởi tạo cũng được yêu cầu, vectơ này phải là duy nhất cho mỗi thông điệp được mã hóa. Nếu một IV khác không được sử dụng, bảo mật của hệ thống sẽ bị xâm phạm. Nó cũng không thể bị cắt xén.
  • CFB (Phản hồi về mật mã) : nó được thực hiện tương tự như trong OFB, nhưng để tạo ra dòng khóa, nó mã hóa khối mã hóa cuối cùng, thay vì khối cuối cùng của dòng khóa như OFB. Mã hóa không thể được song song hóa, tuy nhiên có thể giải mã.
  • GCM ( Galois / Chế độ Counter) : Chế độ mã hóa này là một trong những chế độ tốt nhất về bảo mật và tốc độ, GCM cho phép xử lý song song và tương thích với bộ xử lý AES-NI để tăng tốc hiệu suất mã hóa / giải mã dữ liệu. Chế độ mã hóa này là AEAD, ngoài việc mã hóa dữ liệu, nó còn có khả năng xác thực và xác minh tính toàn vẹn của dữ liệu, đảm bảo rằng nó không bị sửa đổi. GCM cũng có thể chấp nhận các vectơ khởi tạo ngẫu nhiên.

Như bạn đã thấy, AES hiện là một trong những thuật toán mã hóa đối xứng quan trọng nhất và được sử dụng rộng rãi trên thế giới, tuy nhiên, chế độ mã hóa được đề xuất nhiều nhất là AES-GCM vì nó kết hợp AEAD.

ChaCha20

Thuật toán ChaCha20 là một thuật toán mã hóa đối xứng hỗ trợ 128-bit và 256-bit và các khóa tốc độ cao, không giống như AES là một mật mã khối, ChaCha20 là một mật mã dòng. Nó có các đặc điểm tương tự như người tiền nhiệm của nó là Salsa20 nhưng với một chức năng nguyên thủy của 12 hoặc 20 vòng khác nhau. Mã của nó đã được xuất bản, được chuẩn hóa bởi IETF trong RFC 7539 và trong việc triển khai phần mềm, nó hiệu quả hơn và nhanh hơn nhiều so với AES, vì vậy nó đã nhanh chóng có vị trí trong các thuật toán được sử dụng nhiều nhất hiện nay.

Để tìm hiểu lý do tại sao nó lại trở nên nổi tiếng, chúng tôi sẽ đặt Google vào giữa để mọi thứ có thể được hiểu nhanh hơn nhiều. Kết nối HTPPS tập trung vào việc cung cấp bảo mật tối đa trên các trang web mà chúng tôi truy cập hàng ngày, đó là bước tiếp theo của giao thức HTTP không có bất kỳ biện pháp bảo vệ nào. Tuy nhiên, mã hóa khác nhau giữa các trình duyệt. Cho đến một vài năm trước đây, cơ rôm cho Android đã sử dụng AES-GCM làm thuật toán mã hóa đối xứng, tuy nhiên, Google đã và đang nghiên cứu mã hóa hiện tại, an toàn và nhanh hơn trong nhiều năm.

Sự gia tăng về mức độ phổ biến xảy ra khi, sau khi ra mắt trong phiên bản Chrome dành cho máy tính để bàn, ChaCha20 để mã hóa và Poly1305 để xác thực có trên Android. Một công việc khổng lồ chuyển thành một thuật toán đối xứng cung cấp bảo mật hơn và miễn nhiễm với các loại tấn công khác nhau. Tuy nhiên, điều đáng chú ý nhất là nó đạt được hiệu suất cao gấp ba lần so với các giao thức cũ hơn như AES, theo cách này, khả năng của CPU cũng được sử dụng tốt hơn và giảm 16% chiều rộng của băng tần được sử dụng, giúp bạn có thể tận dụng kết nối nhiều hơn.

ChaCha20 được sử dụng rộng rãi trong các kết nối HTTPS, trong các kết nối SSH để quản lý máy chủ và ngay cả giao thức WireGuard VPN phổ biến cũng chỉ sử dụng ChaCha20 để mã hóa dữ liệu đối xứng. Rất có thể sắp tới chúng ta cũng sẽ thấy ChaCha20 trong các kết nối IPsec, trong thời gian chờ đợi, bạn nên sử dụng AES-GCM bất cứ khi nào có thể.

Cho đến nay phần giải thích về mật mã đối xứng, chúng tôi đã nhận xét về hai thuật toán thường được sử dụng ngày nay, có nhiều thuật toán khác trong quá khứ rất phù hợp, đặc biệt là đối với sự phát triển của những thuật toán hiện tại, vì cơ sở của những thuật toán mới là chúng. giải quyết trên kinh nghiệm của người cũ, sai lầm của họ và lợi thế của họ. Các thuật toán như DES, 3DES, RC5 hoặc IDEA đã mở đường cho các thuật toán mới để ngày nay chúng ta có các thuật toán mã hóa thực sự mạnh mẽ với khả năng chống lại các cuộc tấn công và bảo vệ tất cả thông tin của chúng ta khỏi những bàn tay không mong muốn và độc hại.

Mật mã không đối xứng hoặc mật mã khóa công khai

Mật mã khóa bất đối xứng còn được gọi là khóa công khai, nó sử dụng hai khóa khác nhau ở mỗi đầu của giao tiếp để mã hóa và giải mã nó . Mỗi người dùng thông tin liên lạc sẽ có một khóa công khai và khóa riêng tư. Khóa riêng tư sẽ phải được bảo vệ và giữ bởi chính người dùng, nó sẽ là bí mật và tuyệt đối không được ai biết, cũng như không được gửi cho ai. Khóa công khai sẽ có thể truy cập được bởi tất cả người dùng của hệ thống muốn giao tiếp.

Điểm mạnh của hệ thống mà loại thuật toán bất đối xứng này an toàn là nó dựa trên các hàm toán học mà dễ giải quyết theo một nghĩa nào đó , nhưng của ai giải quyết theo hướng ngược lại là cực kỳ phức tạp , trừ khi khóa được biết. . Khóa công khai và khóa riêng tư được tạo đồng thời và được gắn với nhau. Mối quan hệ giữa cả hai phải rất phức tạp, do đó chúng ta rất khó lấy được khóa của người kia, trong trường hợp này là lấy được khóa cá nhân vì khóa công khai được mọi người kết nối với hệ thống biết.

Các cặp phím có một số chức năng và rất quan trọng, trong đó chúng tôi nhấn mạnh:

  • Mã hóa thông tin.
  • Đảm bảo tính toàn vẹn của dữ liệu được truyền.
  • Đảm bảo tính xác thực của tổ chức phát hành.

Mã hóa khóa bất đối xứng

Nếu một người có cặp khóa mã hóa tin nhắn bằng khóa công khai của người nhận, thì tin nhắn đó chỉ có thể được giải mã bằng khóa cá nhân được liên kết. Nếu chúng tôi mã hóa một thư bằng khóa riêng tư, chúng tôi sẽ không thể giải mã nó bằng chính khóa cá nhân, chúng tôi phải sử dụng khóa công khai (trong trường hợp này, nó không được coi là mã hóa, nhưng tính xác thực của người gửi được kiểm tra, với điều này chúng tôi sẽ xác minh rằng người gửi thực sự nói là).

Cấu trúc toán học về cách hoạt động của mã hóa bất đối xứng là:

  • Tin nhắn + khóa công khai = Tin nhắn được mã hóa
  • Tin nhắn được mã hóa + khóa riêng = Tin nhắn được giải mã
  • Message + private key = Tin nhắn đã ký
  • Tin nhắn đã ký + khóa công khai = Xác thực

Như chúng ta đã nhận xét trước đây khi nói về mật mã khóa đối xứng, mã hóa đối xứng cung cấp tính bảo mật (chỉ người nhận mới có thể đọc tin nhắn). Mật mã không đối xứng cung cấp các thuộc tính khác: tính xác thực, tính toàn vẹn và tính không từ chối. Để một thuật toán được coi là an toàn, nó phải tuân thủ những điều sau:

  • Nếu bản mã được biết, nó phải rất khó hoặc gần như không thể giải nén được bản rõ và khóa cá nhân bằng bất kỳ phương pháp nào.
  • Nếu bản rõ và mã hóa được biết, nó sẽ đắt hơn để có được khóa cá nhân so với bản rõ .
  • Nếu dữ liệu đã được mã hóa bằng khóa công khai, chỉ nên có một khóa riêng có khả năng giải mã nó , và ngược lại.

Ưu điểm của mã hóa bất đối xứng so với mã hóa đối xứng là khóa công khai có thể được biết bởi tất cả người dùng của hệ thống, tuy nhiên, điều này không xảy ra với khóa riêng và do kết quả của mã hóa đối xứng, cả hai người dùng phải biết cùng một khóa. (và mật khẩu phải được gửi đến từng người dùng khác nhau thông qua kênh liên lạc đã thiết lập).

Hoạt động của hệ thống đối xứng và không đối xứng

Hạn chế chính của loại mã hóa này là sự chậm chạp của nó , việc sử dụng loại khóa này làm chậm quá trình mã hóa thông tin liên lạc. Giải pháp cho điều này là sử dụng cả mã hóa không đối xứng và đối xứng (như các giao thức như IPSec hoặc OpenVPN cho các mạng riêng ảo, HTTPS cho các kết nối web an toàn hoặc trong các kết nối SFTP / FTPES).

Sự kết hợp mật mã này xảy ra như sau. Chúng tôi tạo khóa thuật toán đối xứng, mã hóa nó bằng khóa công khai của người nhận, gửi dữ liệu được mã hóa qua kênh liên lạc không an toàn và sau đó người nhận sẽ giải mã dữ liệu bằng khóa riêng của họ. Với khóa thuật toán đối xứng trong dấu hai chấm, đây là lúc giao tiếp sử dụng mã hóa đối xứng có thể bắt đầu, điều này làm cho quá trình giao tiếp nhanh hơn nhiều so với việc chúng ta chỉ sử dụng mật mã không đối xứng trong tất cả các giao tiếp.

Ví dụ rõ ràng về nơi loại phương pháp kết hợp này được sử dụng là các VPN, chẳng hạn như OpenVPN hoặc IPsec, trong đó khóa phiên mà người dùng đã biết được tạo lại thường xuyên để tăng cường bảo mật truyền thông hơn nữa mà không gây ra sự chậm trễ đáng kể trong quá trình truyền dữ liệu .

Trả lời thách thức

Để tăng tính bảo mật, phương pháp này xác minh rằng người gửi thực sự là người mà anh ta tuyên bố là , vì điều này, một văn bản được gửi đến người gửi và anh ta sẽ mã hóa nó bằng khóa cá nhân của mình (những gì anh ta thực sự đang làm là ký nó), người gửi sẽ gửi cho chúng tôi văn bản được mã hóa (đã ký) và chúng tôi sẽ giải mã khóa (chúng tôi sẽ xác minh chữ ký) tận dụng thực tế là chúng tôi có khóa công khai của tổ chức phát hành, và cuối cùng, chúng tôi sẽ so sánh rằng thông điệp thu được có giống với thông điệp mà chúng tôi đã gửi trước đó hay không.

Nếu người dùng mạo danh nhà phát hành thực, họ sẽ không có khóa cá nhân, do đó, "thử thách" sẽ không thành công và dữ liệu sẽ không được giao tiếp.

Chữ ký số

Chữ ký điện tử cho phép người nhận tin nhắn rằng nguồn gốc là xác thực , chúng tôi cũng có thể kiểm tra xem thông báo đã được sửa đổi hay chưa. Việc làm giả chữ ký điện tử hầu như không thể xảy ra trừ khi họ biết khóa riêng của người ký (và chúng tôi đã nói trước rằng khóa riêng phải được lưu và không ai được biết). Dưới đây là hai giai đoạn để hiện thực hóa chữ ký điện tử:

  • Quy trình chữ ký: người gửi mã hóa dữ liệu bằng khóa riêng và gửi đến người nhận.
  • Xác minh chữ ký: người nhận giải mã dữ liệu bằng khóa công khai của người gửi và xác minh rằng thông tin khớp với dữ liệu gốc (nếu trùng khớp thì chưa được sửa đổi).

Trong chữ ký điện tử, các hàm băm như SHA2-256 và SHA2-512 được sử dụng vì, như chúng tôi đã giải thích trước đây, mã hóa không đối xứng rất chậm. Người gửi thông tin liên lạc sẽ áp dụng chức năng HASH cho tin nhắn gốc để lấy dấu vân tay. Sau đó, dấu vân tay sẽ được mã hóa bằng khóa cá nhân và được gửi đến người nhận qua kênh không an toàn để giải mã. Người nhận cũng sẽ băm dữ liệu của bạn và so sánh kết quả (kết quả họ nhận được và kết quả họ nhận được). Nếu kết quả của việc so sánh những dữ liệu này là âm, nghĩa là có sự khác biệt giữa những gì đã thu được và những gì đã nhận được, thông tin đã bị thay đổi và dữ liệu dấu vân tay sẽ thay đổi. Nếu kết quả giống nhau, giao tiếp sẽ diễn ra mà không có vấn đề gì.

Với tất cả những điều này, chúng tôi đã hoàn thành:

  • Tính xác thực, người phát hành là người mà họ nói họ là . Chữ ký ở điểm xuất phát và điểm đến giống nhau.
  • Chính trực, tin nhắn chưa được sửa đổi . Những gì nhận được và những gì nhận được là như nhau.
  • Không từ chối, người gửi không thể phủ nhận đã gửi tin nhắn cho người nhận . Chữ ký điện tử không thay đổi.

Nếu chúng ta muốn bảo mật thông tin liên lạc, tất cả những gì chúng ta phải làm là yêu cầu người gửi mã hóa thông điệp gốc bằng khóa công khai của người nhận.

Các thuật toán mã hóa khóa bất đối xứng

Bây giờ chúng tôi sẽ liệt kê hai thuật toán bất đối xứng chính được sử dụng ngày nay và chúng tôi sẽ giải thích cách chúng hoạt động.

Diffie – Hellman

Bản thân nó không phải là một thuật toán bất đối xứng, nó là một giao thức thiết lập quan trọng, nó được sử dụng để tạo khóa cá nhân ở cả hai đầu của một kênh liên lạc không an toàn . Nó được sử dụng để lấy khóa cá nhân mà thông tin sau này sẽ được mã hóa cùng với thuật toán mã hóa đối xứng. Điểm mạnh của Diffie-Hellman là tính bảo mật của nó nằm ở chỗ khó tính toán logarit rời rạc của các số lớn (Diffie-Hellmann cũng cho phép sử dụng các đường cong elip).

Vấn đề với thuật toán này là nó không cung cấp xác thực, nó không thể xác thực danh tính của người dùng, do đó, nếu người dùng thứ ba ở giữa giao tiếp, họ cũng sẽ được cung cấp các khóa và do đó, có thể thiết lập giao tiếp với người gửi và người nhận mạo danh danh tính. Để tránh điều này, có một số giải pháp giúp giảm thiểu và giải quyết vấn đề, chẳng hạn như sử dụng chứng chỉ kỹ thuật số.

RSA

Thuật toán bất đối xứng tuyệt vời, thuật toán này dựa trên cặp khóa , công khai và riêng tư mà chúng ta đã nói trước đây. Tính bảo mật của thuật toán này nằm ở vấn đề tính toán các số nguyên rất lớn và trong vấn đề RSA, bởi vì việc giải mã hoàn toàn một bản mã bằng RSA hiện là không thể, mặc dù có thể giải mã một phần. Một số đặc điểm rất quan trọng của RSA là độ dài khóa, hiện tại ít nhất nên sử dụng độ dài 2048 bit, mặc dù người ta khuyến nghị rằng nó là 4096 bit hoặc cao hơn để bảo mật cao hơn.

Lợi thế:

  • Bài toán về sự phân bố của các khóa đối xứng (mã hóa đối xứng) đã được giải quyết.
  • Nó có thể được sử dụng để được sử dụng trong chữ ký điện tử.

Nhược điểm:

  • Bảo mật phụ thuộc vào hiệu quả của máy tính.
  • Nó chậm hơn các thuật toán khóa đối xứng.
  • Khóa cá nhân phải được mã hóa bằng một số thuật toán đối xứng.

DSA

Thuật toán này cũng hoàn toàn không đối xứng, một nhược điểm của DSA là nó muốn có nhiều thời gian tính toán hơn RSA cho sự bình đẳng phần cứng. DSA được sử dụng rộng rãi như một thuật toán chữ ký điện tử, nó hiện là một tiêu chuẩn, nhưng DSA không được sử dụng để mã hóa dữ liệu, chỉ như một chữ ký điện tử. Thuật toán này được sử dụng rộng rãi trong các kết nối SSH để xác minh chữ ký số của máy khách, ngoài ra, có một biến thể của DSA dựa trên đường cong elliptic (ECDSA), và nó có sẵn trong tất cả các thư viện mật mã hiện tại như OpenSSL, GnuTLS hoặc LibreSSL. Một tính năng khác của DSA là độ dài khóa, độ dài khóa tối thiểu là 512 bit, mặc dù phổ biến nhất là sử dụng 1024 bit.

Bây giờ bạn đã biết hai loại mật mã và các thuộc tính của mỗi loại, với điều này bạn sẽ biết nơi đáng sử dụng một loại và nơi khác . Theo thời gian, các phương pháp này sẽ thay đổi hoặc sẽ được cập nhật lên các phương pháp an toàn hơn, vì với sự phát triển của hiệu suất máy tính, các cuộc tấn công vào loại phương pháp bảo mật này được tăng cường, nhưng hiện tại, những phương pháp đang có hiệu lực và tiếp tục được sử dụng thì không đã bị lật đổ chưa, chúng là những thứ chúng tôi vừa giải thích cho bạn.