Bài viết được lấy từ https://truongphuoc.wordpress.com/2023/02/28/blockchain-16-he-mat-bat-doi-xung/
Xin chào các bạn, trong bài trước mình đã trình bày về hệ mật đối xứng và thuật toán AES. Trong bài viết này mình sẽ trình bày về hệ mật bất đối xứng nhé.
Hạn chế của hệ mật đối xứng
Mình có một bài toán như sau: An đang ở Mỹ còn Bình ở Việt Nam. An và Bình đang thương thảo một thương vụ kinh doanh quan trọng, liên quan đến sự an nguy công ty. Công cũng có một công ty và là đối thủ của An và Bình, Công rất muốn xem cuộc nói chuyện giữa An và Bình để có đối sách cho công ty mình.
An muốn gửi cho Bình tin nhắn: "Hợp đồng là 10 triệu đô" qua mạng internet. Giờ ta có vấn đề cần giải quyết: Làm cách nào để An gửi cho Bình tin nhắn an toàn, tin nhắn đó chỉ An và Bình mới có thể hiểu được. Dù Công có xem được tin nhắn cũng không hiểu gì.
Muốn làm được chúng ta bắt buộc phải mã hóa tin nhắn, ví dụ chúng ta sử dụng thuật toán AES-128 đã học ở bài trước, với Key mã hóa là Key123. An gửi tin nhắn đã mã hóa cho Bình. Bình muốn xem được tin nhắn đã mã hóa này phải có Key123 để giải mã.
Nếu An và Bình có thể gặp mặt với nhau trực tiếp thì hay rồi, An có thể đưa Bình Key123 một cách an toàn, sau đó có thể trao đổi với nhau bằng AES với Key123 này dù cả 2 ở bất kỳ đâu. Nhưng tại vì hai người ở quá xa nhau và không thể gặp nhau trực tiếp. Điều này cũng tương tự như chúng ta sử dụng internet, rất khó để gặp nhau trực tiếp được. Thế làm cách nào để An có thể đưa Bình Key123 một cách an toàn? Chúng ta lại quay lại bài toán An và Bình muốn trao đổi thông tin một cách an toàn. Và bài toán này lại lặp lại mãi.
Do cùng sử dụng cùng một Key để mã hóa và giải mã tin nhắn nên An và Bình phải tìm cách trao đổi Key an toàn. Lại quay lại bài toán trao đổi tin nhắn an toàn.
Hệ mật bất đối xứng
Hệ mật bất đối xứng là hệ mật có Key mã hóa và Key giải mã khác nhau. Với Key mã hóa được gọi là Public Key, Key giải mã gọi là Private Key.
Hệ mật bất đối xứng
Quay lại với bài toán trên, giờ thay vì sử dụng thuật toán AES-128, An và Bình sử dụng một thuật toán bất kỳ thuộc hệ mật bất đối xứng.
- Với thuật toán này Bình sẽ tạo ra một cặp Key: Private Key và Public Key.
- Bình giữ lại Private key cho mình, sau đó gửi cho An Public Key.
- Sau khi nhận được Public Key của Bình, An sẽ sử dụng Key này để mã hóa thông tin "Hop dong la 10 trieu do" tạo ra Cypher message.
- An gửi tin nhắn Cypher message cho Bình.
- Bình sử dụng Private Key của mình để giải mã Cypher message An gửi.
An = Alice, Bình = Bob
Bằng cách này An và Bình đã có thể trao đổi thông tin một cách an toàn rồi. Tại vì Private Key rất quan trọng nên nó phải được giấu kỹ, chỉ mình Bình được biết Private Key của mình mà thôi. Nếu để Công biết Private Key này thì Công sẽ xem được tin nhắn An gửi cho Bình. Còn Public Key thì ai cũng có thể biết.
Thế là mình đã trình bày về hệ mật bất đối xứng rồi, trong các bài tiếp theo mình sẽ trình bày về các thuật toán mã hóa trong hệ mật này nhé: RSA và Elliptic Curve.
Link bài viết gốc https://truongphuoc.wordpress.com/2023/02/28/blockchain-16-he-mat-bat-doi-xung/