Số sánh mã hóa khóa bí mật và mã hóa khóa công công

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

Số sánh mã hóa khóa bí mật và mã hóa khóa công công
. 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
Số sánh mã hóa khóa bí mật và mã hóa khóa công công
(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 ạ
    Số sánh mã hóa khóa bí mật và mã hóa khóa công công
    )

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ỏ đó ạ
    Số sánh mã hóa khóa bí mật và mã hóa khóa công công
    )

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,...

Số sánh mã hóa khóa bí mật và mã hóa khóa công công

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

Số sánh mã hóa khóa bí mật và mã hóa khóa công công
)

  • 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

Số sánh mã hóa khóa bí mật và mã hóa khóa công công

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
    Số sánh mã hóa khóa bí mật và mã hóa khóa công công
    )
  • 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

Số sánh mã hóa khóa bí mật và mã hóa khóa công công

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

Số sánh mã hóa khóa bí mật và mã hóa khóa công công
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

Số sánh mã hóa khóa bí mật và mã hóa khóa công công
)

  • 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
    Số sánh mã hóa khóa bí mật và mã hóa khóa công công
    )

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ả

Số sánh mã hóa khóa bí mật và mã hóa khóa công công
.

Thanks for reading

Số sánh mã hóa khóa bí mật và mã hóa khóa công công

Mã hóa khóa công cộng (tiếng Anh: Public key) là một trong những kĩ thuật cơ bản để mã hóa thông tin trên Internet, và được sử dụng để phòng tránh rủi ro trong thương mại điện tử.

Số sánh mã hóa khóa bí mật và mã hóa khóa công công

Hình minh họa (Nguồn: notebookbft)

Khái niệm

Mã hóa khóa công cộng trong tiếng Anh gọi là: Public key.

Mã hóa khóa công cộng (còn gọi là mã hóa không đối xứng) là việc sử dụng hai mã khóa trong quá trình mã hóa: một mã khóa dùng để mã hóa thông điệp và một khóa khác dùng để giải mã. 

Hai mã khóa này có quan hệ với nhau về mặt thuật toán sao cho dữ liệu được mã hóa bằng khóa này sẽ được giải mã bằng khóa kia. 

Như vậy thực chất, phương pháp mã hóa này dùng một cặp mã khóa cho quá trình mã hóa: một mã khóa gọi là mã khóa công cộng và một là mã khóa riêng. 

Mã khóa công cộng là mã khóa có thể công khai cho nhiều người biết, còn mã khóa riêng được giữ bí mật và chỉ mình chủ nhân của nó được biết. Tất nhiên, cả hai mã khóa này đều được bảo vệ tránh bị đánh cắp hoặc thay đổi.

Thuật ngữ mật mã hóa khóa bất đối xứng thường được dùng đồng nghĩa với mật mã hóa khóa công khai mặc dù hai khái niệm không hoàn toàn tương đương. 

Có những thuật toán mật mã khóa bất đối xứng không có tính chất khóa công khai và bí mật như đề cập ở trên mà cả hai khóa (cho mã hóa và giải mã) đều cần phải giữ bí mật. 

Trong mật mã hóa khóa công khai, khóa cá nhân phải được giữ bí mật trong khi khóa công khai được phổ biến công khai. Trong 2 khóa, một dùng để mã hóa và khóa còn lại dùng để giải mã. Điều quan trọng đối với hệ thống là không thể tìm ra khóa bí mật nếu chỉ biết khóa công khai. 

Mục đích

Hệ thống mật mã hóa khóa công khai có thể sử dụng với các mục đích:

Mã hóa: giữ bí mật thông tin và chỉ có người có khóa bí mật mới giải mã được. 

Tạo chữ kí số: cho phép kiểm tra một văn bản có phải đã được tạo với một khóa bí mật nào đó hay không.

Thỏa thuận khóa: cho phép thiết lập khóa dùng để trao đổi thông tin mật giữa 2 bên. 

Thông thường, các kĩ thuật mật mã hóa khóa công khai đòi hỏi khối lượng tính toán nhiều hơn các kĩ thuật mã hóa khóa đối xứng nhưng những lợi điểm mà chúng mang lại khiến cho chúng được áp dụng trong nhiều ứng dụng.

Thuận lợi và khó khăn

- Thuận lợi

Các hệ thống khoá công khai mang lại một số thuận lợi, so với các giải pháp mã hoá khoá riêng.

+ Thứ nhất, việc kết hợp các khoá (được yêu cầu cung cấp cho các thông báo bí mật giữa một số lượng người khổng lồ) là nhỏ. Nếu có N người muốn chia sẻ thông tin với người khác một cách bí mật thì chỉ cần duy nhất N cặp khoá công khai, ít hơn rất nhiều so với hệ thống khoá riêng tương đương. 

+ Thứ hai, việc phân phối khoá không phải là một vấn đề. Khoá công khai của mỗi người có thể được gửi đi theo đường bí mật nếu cần thiết và không yêu cầu bất kì sự kiểm soát đặc biệt nào khi phân phối. 

+ Thứ ba, các hệ thống khoá công khai có khả năng thực thi chữ kí số. Điều này có nghĩa là một tài liệu điện tử có thể được kí và gửi cho người nhận bất kì, cùng với chống chối bỏ. Có nghĩa là, với kĩ thuật khoá công khai, khó có thể tồn tại một người nào khác ngoài người kí - sinh ra chữ kí điện tử; 

Thêm vào đó, người kí không thể chối bỏ việc kí tài liệu sau khi đã kí. 

- Khó khăn

Các hệ thống khoá công khai có một số khó khăn. Một trong các khó khăn đó là quá trình mã hoá và giải mã khá chậm so với các hệ thống khoá riêng. Khoảng thời gian chênh lệch này sẽ tăng lên một cách nhanh chóng nếu tiến hành thương mại trên Internet. 

Người ta không có ý định thay thế các hệ thống khoá riêng bằng các hệ thống khoá công khai mà sử dụng kết hợp để bổ sung cho nhau. Các hệ thống khoá công khai được sử dụng để truyền các khoá riêng cho các thành viên. 

So sánh phương pháp mã hóa khóa công cộng với phương pháp mã hóa khóa bí mật, cả hai phương pháp này đều có những ưu và nhược điểm riêng. Việc sử dụng phương pháp nào sẽ do chính các bên quyết định căn cứ vào mức độ cần bảo mật và môi trường hoạt động giao dịch. 

Tuy nhiên, phương pháp mã hóa khóa công cộng rất phù hợp khi có nhiều bên cùng tham gia vào quá trình truyền thông trên mạng bởi vì trong những trường hợp như vậy, các bên rất khó có thể tin tưởng lẫn nhau cũng như khó có thể chia sẻ cùng một mã khóa bí mật. 

Đây chính là các đặc điểm cơ bản của các giao dịch thương mại điện tử trên Internet.

(Tài liệu tham khảo: Bài giảng Thương mại Điện tử, Trần Công Nghiệp, 2008, NXB Trường Đại học Kinh tế và Quản trị Kinh doanh)

Tuyết Nhi