So sánh mã hóa đối xứng và mã hóa công khai

Hôm nay mình xin giới thiệu khái niệm cơ bản về hệ mật mã khóa đối xứng và bất đối xứng. Cái này mình cũng đã được học qua ở trường rồi nhưng học xong cũng không còn nhớ là bao

So sánh mã hóa đối xứng và mã hóa công khai
. Thế nên hôm nay mình viết bài này để xem kiến thức còn nhớ được bao nhiêu
So sánh mã hóa đối xứng và mã hóa công khai
(tất nhiên mình cũng phải đọc lại giáo trình đã được học).

Trước tiên để đi đến 2 khái niệm về mã hóa đối xứng và bất đối xứng thì mình xin giới thiệu qua về khái niệm về mật mã học.

Mật mã học (cryptography)

Là ngành khoa học nghiên cứu các phương pháp toán học để mã hóa giữ mật thông tin. Bao gồm mã hóa và giải mã.

  • Mã hóa là biến đổi cách thức biểu diễn thông tin từ dạng bản rõ (chúng ta có thể đọc được) sang dạng bản mã (chỉ người giải mã mới hiểu được), nó giúp chúng ta che giấu, giữ mật thông tin trong khi lưu trữ cũng như truyền thông tin đi.
  • Giải mã là quá trình ngược lại đó là biến bản mã thành bản rõ. (Dễ hiểu phải không ạ
    So sánh mã hóa đối xứng và mã hóa công khai
    )

Chức năng cơ bản của mật mã đó là:

  • Tính bí mật: nó đảm bảo tính bí mật của dữ liệu mà mình gửi đi và chỉ những người liên quan mới biết được nội dung.
  • Tính toàn vẹn : đảm bảo dữ liệu không thể bị mất mát hoặc chỉnh sửa trong qua trình gửi và nhận mà không bị phát hiện.
  • Tính xác thực: đảm bảo danh tính của thực thể được xác minh.
  • Tính không thể chối từ: đảm bảo người gửi không thể chối cãi với thông tin mình gửi đi (Tránh kiểu ăn ốc đổ vỏ đó ạ
    So sánh mã hóa đối xứng và mã hóa công khai
    )

Hệ mật mã khóa đối xứng

Là những hệ mật được sử dụng chung 1 khóa trong quá trình mã hóa và mã hóa. Do đó khóa phải được giữ bí mật tuyện đối.

Một số hệ mật mã khóa đối xứng hiện đại mà mình thấy hay được sử dụng là DES, AES, RC4, RC5,...

So sánh mã hóa đối xứng và mã hóa công khai

Hệ mật sẽ bao gồm:

  • Bản rõ (plaintext-M): bản tin được sinh ra bởi bên gửi
  • Bản mật (ciphertext-C): bản tin che giấu thông tin của bản rõ, được gửi tới bên nhận qua một kênh không bí mật
  • Khóa (Ks): nó là giá trị ngẫu nhiên và bí mật được chia sẻ giữa các bên trao đổi thông tin và được tạo ra từ:
    • Bên thứ 3 được tin cậy tạo và phân phối tới bên gửi và bên nhận
    • Hoặc, bên gửi tạo ra và chuyển cho bên nhận
  • Mã hóa (encrypt-E): C = E(KS, M)
  • Giải mã (decrypt): M = D(KS, C) = D(KS, E(KS, M))

Cơ chế hoạt động (dễ hiểu lắm

So sánh mã hóa đối xứng và mã hóa công khai
)

  • Người gửi sử dụng khóa chung (Ks) để mã hóa thông tin rồi gửi cho nguời nhận.
  • Người nhận nhận được thông tin đó sẽ dùng chính khóa chung (Ks) để giải mã.

Tuy nhiên cái gì cũng có mặt hạn chế của nó, và thằng này cũng vậy

So sánh mã hóa đối xứng và mã hóa công khai

Mặt hạn chế

  • Do dùng chung khóa để mã hóa và giải mã => nếu bị mất hoặc bị đánh cắp bởi hacker sẽ bị lộ thông tin, bảo mật không cao.
  • Cần kênh mật để chia sẻ khóa bí mật giữa các bên => Làm sao để chia sẻ một cách an toàn ở lần đầu tiên.
  • Để đảm bảo liên lạc an toàn cho tất cả mọi người trong một nhóm gồm n người => cần tổng số lượng lớn khóa là n(n-1)/2 (tốn nhiều quá ha
    So sánh mã hóa đối xứng và mã hóa công khai
    )
  • Khó ứng dụng trong các hệ thống mở.
  • Không thể dùng cho mục đích xác thực hay mục đích chống thoái thác được.

Và để khắc phục những nhược điểm đó thì hệ mật mã khóa bất đối xứng (hay còn gọi là hệ mật mã khóa công khai) đã ra đời

So sánh mã hóa đối xứng và mã hóa công khai

Hệ mật mã khóa bất đối xứng

Ở hệ mật này thay vì nguời dùng dùng chung 1 khóa như ở hệ mật mã khóa đối xứng thì ở đây sẽ dùng 1 cặp khóa có tên là public key và private key.

Hệ mật mã khóa bất đối xứng mình thấy được dùng nhiều nhất là RSA

So sánh mã hóa đối xứng và mã hóa công khai
Hệ mật sẽ bao gồm:

  • Bản rõ (plaintext-M): bản tin được sinh ra bởi bên gửi
  • Bản mật (ciphertext-C): bản tin che giấu thông tin của bản rõ, được gửi tới bên nhận qua một kênh không bí mật
  • Khóa: Bên nhận có 1 cặp khóa:
    • Khóa công khai (Kub) : công bố cho tất cả mọi người biết (kể cả hacker)
    • Khóa riêng (Krb) : bên nhận giữ bí mật, không chia sẻ cho bất kỳ ai
  • Mã hóa (encrypt-E): C = E(Kub, M)
  • Giải mã (decrypt): M = D(Krb, C) = D(Krb, E(Kub, M))

Yêu cầu đối với cặp khóa (Kub, Krb) là:

  • Hoàn toàn ngẫu nhiên
  • Có quan hệ về mặt toán học 1-1.
  • Nếu chỉ có giá trị của Kub không thể tính được Krb.
  • Krb phải được giữ mật hoàn toàn.

Cơ chế hoạt động (cũng dễ hiểu không kém đối xứng

So sánh mã hóa đối xứng và mã hóa công khai
)

  • Người gửi(A) gửi thông tin đã được mã hóa bằng khóa công khai (Kub) của người nhận(B) thông qua kênh truyền tin không bí mật
  • Người nhận(B) nhận được thông tin đó sẽ giải mã bằng khóa riêng (Krb) của mình.
  • Hacker cũng sẽ biết khóa công khai (Kub) của B tuy nhiên do không có khóa riêng (Krb) nên Hacker không thể xem được thông tin gửi

Ưu điểm của hệ mật này đó là

  • Không cần chia sẻ khóa mã hóa(khóa công khai) một cách bí mật => Dễ dàng ứng dụng trong các hệ thống mở.
  • Khóa giải mã(khóa riêng) chỉ có B biết => An toàn hơn, có thể xác thực nguồn gốc thông tin
  • n phần tử chỉ cần n cặp khóa.(tốt hơn hẳn thằng đối xứng r
    So sánh mã hóa đối xứng và mã hóa công khai
    )

Nhược điểm:

Tấn công người đứng giữa: kẻ tấn công lợi dụng việc phân phối khóa công khai để thay đổi khóa công khai. Sau khi đã giả mạo được khóa công khai, kẻ tấn công đứng ở giữa 2 bên để nhận các gói tin, giải mã rồi lại mã hóa với khóa đúng và gửi đến nơi nhận để tránh bị phát hiện.

Dạng tấn công kiểu này có thể phòng ngừa bằng các phương pháp Trao đổi khóa Diffie-Hellman nhằm đảm bảo nhận thực người gửi và toàn vẹn thông tin.

Trên đây là những khái niệm cơ bản mà mình nghĩ bất kỳ ai cũng có thể nắm qua được nó. Để hiểu sâu hơn thì mọi người cần bỏ nhiều thời gian nghiên cứu nó vì đây là lĩnh vực về an ninh mạng mà mình thấy không dễ ăn gì cả

So sánh mã hóa đối xứng và mã hóa công khai
.

Thanks for reading

So sánh mã hóa đối xứng và mã hóa công khai

Các hệ thống mật mã ngày nay gồm hai lĩnh vực là mật mã đối xứng và mật mã bất đối xứng. Nếu mật mã đối xứng chính là mã hóa đối xứng, thì mật mã bất đối xứng lại được chia thành hai ứng dụng khác nhau: mã hóa bất đối xứng và chữ ký số.

Chúng ta có thể minh họa như sau:

Bài viết này sẽ nói về các thuật toán mã hóa đối xứng và mã hóa bất đối xứng.

 

Mã hóa đối xứng và mã hóa bất đối xứng

Các thuật toán mã hóa thường được chia thành hai loại là mã hóa đối xứng và mã hóa bất đối xứng. Sự khác biệt cơ bản giữa hai phương pháp mã hóa này là các thuật toán mã hóa đối xứng sử dụng một khóa đơn, còn mã hóa bất đối xứng sử dụng hai khóa khác nhau nhưng có liên quan. Chính sự khác biệt tuy có vẻ đơn giản này khiến hai hai hình thức kỹ thuật mã hóa này hoàn toàn khác nhau về chức năng và cách sử dụng của chúng.

Khóa mã hóa

Trong mật mã học, các thuật toán mã hóa tạo ra các khóa dưới dạng một chuỗi bit, được sử dụng để mã hóa và giải mã một đoạn thông tin. Cách thức các khóa này được sử dụng tạo nên sự khác biệt giữa mã hóa đối xứng và bất đối xứng

Trong khi thuật toán mã hóa đối xứng sử dụng cùng một khóa để thực hiện cả hai chức năng mã hóa và giải mã, thuật toán mã hóa bất đối xứng lại sử dụng hai khóa khác nhau, một khóa để mã hóa dữ liệu và một khóa khác để giải mã nó. Trong các hệ thống bất đối xứng, khóa được sử dụng để mã hóa được gọi là khóa công khai và có thể được chia sẻ với người khác. Còn khóa được sử dụng để giải mã là khóa cá nhân và cần được giữ bí mật.

Ví dụ: nếu Alice gửi cho Bob một thông điệp được bảo vệ bằng phương thức mã hóa đối xứng, cô ấy cần chia sẻ cho Bob khóa mà cô ấy đã sử dụng để mã hóa để anh ấy có thể giải mã thông điệp. Điều này có nghĩa là nếu một tác nhân độc hại lấy được khóa, họ có thể truy cập thông tin được mã hóa.

Tuy nhiên, thay vào đó, nếu Alice sử dụng sơ đồ bất đối xứng, cô ấy sẽ mã hóa thông điệp bằng khóa công khai của Bob, do vậy Bob sẽ có thể giải mã nó bằng khóa cá nhân của mình. Do đó, phương thức mã hóa bất đối xứng cung cấp mức độ bảo mật cao hơn, bởi vì ngay cả khi ai đó lấy được tin nhắn và tìm thấy khóa công khai của Bob, họ cũng không thể giải mã tin nhắn.

Độ dài của khóa

Mã hóa đối xứng và mã hóa bất đối xứng còn khác nhau ở độ dài của các khóa, độ dài này được đo bằng bit và liên quan trực tiếp đến mức độ bảo mật mà mỗi thuật toán mã hóa cung cấp.

Trong các sơ đồ đối xứng, các khóa được chọn ngẫu nhiên và độ dài của chúng thường được đặt ở mức 128 hoặc 256 bit, tùy thuộc vào mức độ bảo mật được yêu cầu. Tuy nhiên, trong mã hóa bất đối xứng, độ dài này phụ thuộc vào mối quan hệ toán học giữa khóa công khai và khóa cá nhân, hay nói cách khác có một mối quan hệ toán học giữa hai khóa. Bởi vì những kẻ tấn công có thể khai thác mối quan hệ này để bẻ khóa mã hóa, các khóa không đối xứng cần có độ dài lớn hơn để đảm bảo mức độ bảo mật tương tự. Có thể thấy rõ sự khác biệt về độ dài khóa của hai phương thức này khi xét rằng để cung cấp một mức độ bảo mật tương đương, khóa đối xứng chỉ cần độ dài 128 bit trong khi khóa bất đối xứng cần phải dài đến 2.048 bit.

Ưu điểm và nhược điểm

Cả hai loại mã hóa đều có những ưu điểm và nhược điểm. Các thuật toán mã hóa đối xứng có tốc độ nhanh hơn và đòi hỏi sức mạnh tính toán thấp hơn, nhưng nhược điểm khi sử dụng loại mã hóa này là cần gửi khóa. Vì phương thức này sử dụng cùng một khóa để mã hóa và giải mã thông tin, nên khóa đó phải được gửi cho bất kỳ ai cần truy cập dữ liệu, và điều này sẽ tự nhiên mở ra các nguy cơ về bảo mật (như đã minh họa ở trên).

Ngược lại, mã hóa bất đối xứng giải quyết vấn đề gửi khóa vì phương thức này sử dụng khóa công khai để mã hóa và khóa cá nhân để giải mã. Tuy nhiên, đổi lại, các hệ thống mã hóa bất đối xứng có tốc độ chậm hơn nhiều so với hệ thống đối xứng và đòi hỏi nhiều khả năng tính toán hơn vì khóa của chúng có độ dài lớn hơn nhiều.

Các ứng dụng

Mã hóa đối xứng

Do có tốc độ nhanh hơn nên mã hóa đối xứng được sử dụng rộng rãi để bảo vệ thông tin trong các hệ thống máy tính hiện đại. Ví dụ, Hoa Kỳ sử dụng Tiêu chuẩn Mã hóa Nâng cao (AES) để mã hóa thông tin mật và nhạy cảm. AES đã thay thế Tiêu chuẩn Mã hóa Dữ liệu (DES) cũ, tiêu chuẩn này được phát triển vào những năm 1970 như một tiêu chuẩn cho mã hóa đối xứng.

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

Có thể sử dụng mã hóa bất đối xứng cho các hệ thống mà trong đó nhiều người dùng có thể cần mã hóa và giải mã tệp hoặc bộ dữ liệu, đặc biệt trong trường hợp không có giới hạn về tốc độ và sức mạnh tính toán. Ví dụ, có thể sử dụng phương thức mã hóa này trong hệ thống email được mã hóa, trong đó khóa công khai được sử dụng để mã hóa các email và khóa cá nhân được sử dụng để giải mã chúng. 

Hệ thống kết hợp

Mã hóa đối xứng và bất đối xứng được sử dụng kết hợp trong nhiều hệ thống. Ví dụ, một số hệ thống kết hợp điển hình là các giao thức mã hóa Security Sockets Layer (SSL) và Transport Layer Security (TLS), được thiết kế cho giao tiếp bảo mật trong mạng Internet. Các giao thức SSL hiện được coi là không an toàn và nên được ngừng sử dụng. Ngược lại, các giao thức TLS được coi là an toàn và đã được sử dụng rộng rãi bởi tất cả các trình duyệt web chính.

 

Tiền mã hóa có sử dụng mã hóa không?

Nhiều ví tiền mã hóa sử dụng các kỹ thuật mã hóa như một cách để tăng mức độ bảo mật cho người dùng cuối. Ví dụ, các thuật toán mã hóa được sử dụng khi người dùng đặt mật khẩu cho ví tiền mã hóa của họ, điều đó có nghĩa là tệp được sử dụng để truy cập phần mềm đã được mã hóa.

Tuy nhiên, do Bitcoin và các loại tiền mã hóa khác sử dụng các cặp khóa công khai-khóa cá nhân, mọi người thường hiểu nhầm rằng các hệ thống blockchain sử dụng thuật toán mã hóa bất đối xứng. Tuy nhiên, như lưu ý trước, mã hóa bất đối xứng và chữ ký số là hai ứng dụng chính của mật mã bất đối xứng (mã khóa công khai).

Do đó, không phải tất cả các hệ thống chữ ký số đều sử dụng các kỹ thuật mã hóa, kể cả nếu chúng bao gồm cả khóa công khai và khóa cá nhân. Trong thực tế, một thông điệp có thể được ký điện tử mà không được mã hóa. RSA là một ví dụ về thuật toán có thể được sử dụng để ký các thông điệp được mã hóa, nhưng thuật toán chữ ký số mà Bitcoin sử dụng (có tên là ECDSA) hoàn toàn không sử dụng mã hóa.

Kết luận

Cả mã hóa đối xứng và mã hóa bất đối xứng đều đóng vai trò quan trọng trong việc đảm bảo bảo mật cho thông tin nhạy cảm và việc thông tin liên lạc trong thế giới phụ thuộc vào kỹ thuật số như ngày nay. Mặc dù cả hai phương thức này đều hữu ích, mỗi phương thức đều có những ưu điểm và nhược điểm riêng và do đó chúng được ứng dụng theo các cách thức khác nhau. Khi khoa học mật mã tiếp tục phát triển để chống lại các mối đe dọa mới hơn và tinh vi hơn, cả hai hệ thống, mật mã đối xứng và mật mã bất đối xứng đều sẽ được sử dụng cho bảo mật máy tính.