Trong thời đại số, việc bảo vệ thông tin và tài sản trực tuyến là điều quan trọng hơn bao giờ hết. Hai yếu tố then chốt giúp đảm bảo an ninh này là khóa công khai (public key) và khóa bí mật (private key). Chúng hoạt động như một cặp chìa khóa kỹ thuật số, mở ra cánh cửa đến thế giới giao dịch trực tuyến, tiền mã hoá và nhiều ứng dụng khác.
Public Key & Private Key là gì?
Public Key và Private Key về cơ bản được sử dụng để giải mã các thông điệp được mã hóa trong một thuật toán toán học phức tạp trong phương pháp mật mã. Mặc dù public key có thể được phân phối rộng rãi, nhưng private key được sử dụng trong ngữ cảnh tiền mã hoá có nghĩa là được giữ kín đáo như một mật khẩu để bảo vệ tài sản kỹ thuật số của bạn.
- Khóa công khai (Public Key): Tưởng tượng nó như địa chỉ nhà của bạn. Bất kỳ ai cũng có thể biết và sử dụng nó để gửi thư cho bạn. Trong thế giới kỹ thuật số, khóa công khai được sử dụng để mã hóa thông tin, chỉ có thể được giải mã bởi khóa cá nhân tương ứng.
- Khóa cá nhân (Private Key): Đây là chìa khóa riêng của bạn, tương tự như chìa khóa nhà. Chỉ bạn mới có quyền truy cập và sử dụng nó. Khóa cá nhân được sử dụng để giải mã thông tin đã được mã hóa bởi khóa công khai tương ứng và để tạo chữ ký số, xác nhận danh tính và quyền sở hữu của bạn.
Các phương pháp mật mã được sử dụng trong tiền mã hoá
Hashing (Băm):
Giống như việc tạo “dấu vân tay kỹ thuật số” cho thông tin. Nó biến đổi dữ liệu thành một chuỗi ký tự duy nhất, không thể đảo ngược. Bất kỳ thay đổi nào trong dữ liệu sẽ tạo ra một “dấu vân tay” hoàn toàn khác, giúp chúng ta phát hiện xem thông tin có bị giả mạo hay không. Hashing cũng giúp tạo địa chỉ ví ngắn gọn và dễ nhớ hơn từ một dãy ký tự dài và phức tạp.
Symmetric encryption (Mã hóa đối xứng):
Đây là một trong những cách mã hóa phổ biến nhất, dễ nhất nhưng hiệu quả. Tưởng tượng bạn và bạn của bạn có cùng một chiếc chìa khóa đặc biệt. Bạn sử dụng chìa khóa đó để “khóa” thông điệp bí mật trước khi gửi cho bạn mình, và chỉ bạn của bạn, người có cùng chiếc chìa khóa, mới có thể “mở khóa” và đọc được nội dung. Phương pháp này nhanh chóng và hiệu quả, nhưng cần đảm bảo rằng chiếc chìa khóa không bị rơi vào tay kẻ xấu.
Asymmetric encryption (Mã hóa không đối xứng):
Không giống như đối xứng, lần này, bạn có hai chiếc chìa khóa: một chiếc “khóa công khai” để mọi người gửi thông tin cho bạn, và một chiếc “khóa cá nhân” chỉ bạn mới có để “mở khóa” thông tin đó. Chiếc “khóa công khai” giống như địa chỉ nhà của bạn, ai cũng có thể biết, còn “khóa bí mật” giống như chìa khóa nhà, chỉ bạn mới được giữ. Phương pháp này an toàn hơn vì bạn không cần chia sẻ “chìa khóa bí mật” với ai, nhưng nó cũng chậm hơn so với mã hóa đối xứng. Quy trình mã hoá bao gồm:
- Người gửi nhận được Public key của người nhận địa chỉ.
- Người gửi sử dụng khóa này mã hóa thông tin.
- Người gửi gửi thông tin được mã hóa đến người nhận.
- Người nhận sử dụng Private key của mình để giải mã dữ liệu.
Giả sử, A (người gửi) muốn gửi 1 BTC cho B (người nhận). A biết Public key của B và sử dụng nó để mã hóa giao dịch. B nhận giao dịch và giải mã chuyển khoản 1 BTC của A bằng Private key. B nên là người duy nhất có thể cho phép giao dịch vì không ai khác biết Private key của B.
Khi nói đến tiền mã hoá, private key là thứ bạn sở hữu về mặt vật lý. Nó chứng minh quyền quản lý tài sản kỹ thuật số của bạn và cho phép bất kỳ giao dịch nào. Ai biết khóa này đều có thể sử dụng các khoản tiền liên quan.
So sánh chi tiết giữa Public key và Private key
Đặc điểm | Public Key (Khóa công khai) | Private Key (Khóa bí mật) |
Tính chất | Công khai, có thể chia sẻ tự do | Bí mật, tuyệt đối không được chia sẻ |
Hình thức | Chuỗi ký tự dài, phức tạp, thường được biểu diễn dưới dạng hexadecimal (ví dụ: 0x…) | Tương tự Public Key, là một chuỗi ký tự dài và phức tạp |
Chức năng chính | Mã hóa thông tin;Xác minh chữ ký số | Giải mã thông tin;Tạo chữ ký số |
Cách tạo | Được tạo cùng với Private Key trong một cặp khóa thông qua thuật toán mật mã | Được tạo cùng với Public Key trong một cặp khóa thông qua thuật toán mật mã |
Lưu trữ | Có thể lưu trữ ở bất kỳ đâu, miễn là dễ dàng truy cập khi cần | Phải được lưu trữ an toàn và bí mật, ví dụ: ví phần cứng, ứng dụng ví với mật khẩu mạnh |
Chia sẻ | Có thể chia sẻ công khai, ví dụ: đăng trên trang web, gửi qua email | Không được chia sẻ với bất kỳ ai, kể cả người thân hoặc bạn bè |
Rủi ro | Nếu mất Public Key, bạn vẫn có thể truy cập dữ liệu nếu có Private Key | Nếu mất Private Key, bạn sẽ mất quyền truy cập vào dữ liệu và tài sản kỹ thuật số |
Ứng dụng | Tiền mã hoá: Địa chỉ ví để nhận tiền mã hoá Giải mã email: Khóa PGP để mã hóa và giải mã email SSH: Khóa để xác thực truy cập từ xa vào hệ thống máy tính |
Tiền mã hoá: Khóa để chi tiêu tiền mã hoá Chữ ký số: Khóa để tạo chữ ký số xác minh danh tính và tính xác thực của tài liệu SSL/TLS: Khóa để thiết lập kết nối an toàn giữa máy khách và máy chủ |
Address và mnemonics keys (seeds) là gì?
Address (địa chỉ ví) là gì?
Nhiều người thường nhầm lẫn rằng Địa chỉ ví (address) là Public key nhưng thật ra không phải. Address là mã khóa được tạo ra từ Public key thông qua một loạt các thuật toán mật mã phức tạp như Hashing. Address dùng để biểu diễn lại Public key theo một cách ngắn gọn với ít ký tự để dễ sử dụng hơn. Một Address có dạng tương tự như: 0xe1fb525a8944bfcf1e64a3f165bcb7e2338d5ccd. Về cơ bản, bạn có thể suy ra địa chỉ ví từ Public key nhưng không thể suy ra Public key từ địa chỉ ví.
Mnemonics keys (seeds) là gì?
Việc ghi nhớ Public-Private key không dễ dàng như việc nhớ ID và mật khẩu bảo mật thông thường mà chúng ta đang dùng. Nếu bạn bị mất các mã khóa này, đặc biệt là Private key, bạn sẽ mất quyền truy cập vào tài khoản vĩnh viễn. Để khắc phục điều này, hầu hết các Blockchain sử dụng khóa Mnemonic – khóa ghi nhớ (hay seeds – các cụm từ ghi nhớ). Chúng thường là các cụm từ có ý nghĩa và dễ nhớ hơn so với một loạt các ký tự bất kỳ.
Ví dụ về các cụm từ ghi nhớ (Seeds/Mnemonic key):
- Assault
- Episode
- Fence
- …
Các Mnemonic/Seed key gồm 12,18 hoặc 24 từ dễ nhớ được gắn với một khóa riêng nhất định. Chúng được tạo ra sau khi sử dụng phương thức toán học được gọi là BIP 39 với việc mã hóa 128-256 bit dữ liệu ngẫu nhiên thành 12-24 cụm từ.