
Mã hóa khóa bí mật là phương pháp sử dụng cùng một khóa bí mật để thực hiện cả việc mã hóa và giải mã dữ liệu, còn gọi là mã hóa đối xứng. Có thể hình dung đơn giản như một chiếc chìa khóa cửa: cùng một chìa vừa dùng để khóa, vừa dùng để mở.
Trong lĩnh vực tiền điện tử, thuật ngữ "khóa bí mật" thường gây nhầm lẫn. "Khóa bí mật" của ví dùng để ký giao dịch và dựa trên mật mã bất đối xứng; còn "mã hóa khóa bí mật" lại chỉ mã hóa đối xứng, tức dùng chung một bí mật để bảo vệ dữ liệu. Dù đều liên quan đến "khóa/bí mật", nhưng mục đích sử dụng hoàn toàn khác nhau.
Mã hóa khóa bí mật sử dụng một bí mật duy nhất cho cả hai quá trình mã hóa và giải mã, phù hợp với các trường hợp bảo mật cá nhân hoặc nhóm nhỏ. Ngược lại, mã hóa khóa công khai dùng cặp khóa: "khóa công khai" chia sẻ rộng rãi để mã hóa và "khóa bí mật" riêng tư để giải mã. Phương pháp này lý tưởng để truyền thông tin an toàn tới một người nhận cụ thể.
Trong Web3, cặp khóa công khai/bí mật thường được dùng cho "chữ ký", khi khóa bí mật xác nhận giao dịch một cách không thể giả mạo. Mã hóa khóa bí mật chủ yếu phục vụ "bảo vệ lưu trữ", ví dụ mã hóa cụm từ ghi nhớ hoặc tệp sao lưu khóa bí mật trước khi lưu cục bộ hoặc trên đám mây. Mã hóa khóa công khai giải quyết "làm sao gửi bảo mật cho người khác", còn mã hóa khóa bí mật xử lý "làm sao tự lưu trữ an toàn".
Ví thường không dùng trực tiếp mật khẩu đăng nhập để mã hóa khóa bí mật của bạn. Thay vào đó, ví sẽ chuyển mật khẩu thành một khóa mã hóa mạnh hơn thông qua Hàm dẫn xuất khóa (KDF). Sau đó, ví dùng thuật toán đối xứng để mã hóa cụm từ ghi nhớ hoặc khóa bí mật và kèm thông tin chống giả mạo.
Quy trình phổ biến: nhập mật khẩu → KDF sử dụng "muối" (số ngẫu nhiên) và các tham số để biến mật khẩu thành khóa mạnh → tạo "IV" (vector khởi tạo, như vạch xuất phát, đảm bảo mỗi lần mã hóa cùng nội dung sẽ cho kết quả khác nhau) → mã hóa bằng thuật toán đối xứng → đính kèm "MAC" (kiểm tra toàn vẹn, như con dấu, nếu bị thay đổi sẽ xác thực thất bại) → lưu trữ mã hóa cùng với muối, IV và thông số KDF trong tệp JSON "keystore".
Tệp keystore JSON của Ethereum (V3) phổ biến sử dụng scrypt hoặc PBKDF2 làm KDF, sau đó mã hóa bằng AES-128-CTR kết hợp xác thực MAC. Khi mở khóa, ví sẽ dẫn xuất lại khóa theo đúng tham số, kiểm tra MAC rồi mới giải mã nội dung. Thiết kế này giúp phục hồi trên nhiều thiết bị thuận tiện và ngăn không lưu khóa bí mật dạng văn bản thuần trên ổ đĩa.
Các thuật toán đối xứng chủ đạo gồm AES và ChaCha20. AES (Tiêu chuẩn mã hóa nâng cao) có hỗ trợ phần cứng mạnh và hiệu năng cao; các chế độ thường dùng gồm GCM (kèm xác thực) và CTR (bộ đếm). ChaCha20-Poly1305 phù hợp với thiết bị di động không có tăng tốc phần cứng AES.
Các KDF phổ biến để dẫn xuất mật khẩu gồm scrypt, PBKDF2 và gần đây là Argon2. Có thể hình dung KDF như công cụ chuyển mật khẩu dễ đoán thành khóa khó bị tấn công vét cạn. Tham số càng cao thì chi phí cho mỗi lần tấn công càng lớn.
Đến năm 2024, nhiều ví và công cụ vẫn dùng scrypt/PBKDF2 kết hợp AES (ví dụ, keystore Ethereum dùng AES-128-CTR+MAC). Ngoài ra, AES-256-GCM và ChaCha20-Poly1305 cũng phổ biến cho mã hóa dữ liệu ở cấp ứng dụng.
Ứng dụng phổ biến nhất là bảo vệ cụm từ ghi nhớ ví và tệp sao lưu khóa bí mật. Lưu cụm từ ghi nhớ dạng văn bản thuần rất rủi ro; dùng mã hóa khóa bí mật để tạo tệp keystore.json giúp giảm đáng kể nguy cơ rò rỉ.
Các ứng dụng khác gồm mã hóa tệp nhạy cảm tại chỗ như ghi nhận giao dịch, khóa API, ghi chú nghiên cứu; hoặc truyền khóa xuất ra giữa các thiết bị cá nhân (dùng cùng mật khẩu trên nhiều thiết bị). Với tin nhắn hoặc đồng bộ đám mây, mã hóa trước khi tải lên giúp giảm thiểu tác động nếu máy chủ bị rò rỉ.
Hiểu lầm lớn là nhầm lẫn giữa "mã hóa khóa bí mật" và "dùng khóa bí mật để ký". Ký xác minh danh tính; mã hóa khóa bí mật giữ bí mật dữ liệu—hai mục đích khác nhau.
Rủi ro phổ biến gồm: mật khẩu yếu dễ bị vét cạn; quên mật khẩu khiến không thể giải mã; dùng lại IV hoặc sai tham số KDF làm giảm bảo mật; lưu dữ liệu mã hóa không bảo vệ trên ứng dụng chat hoặc email; hoặc mã hóa trên thiết bị nhiễm mã độc dẫn đến bị ghi lại phím hoặc sửa đổi.
Khi liên quan đến tài sản: luôn dùng mật khẩu mạnh và tham số KDF phù hợp; chỉ thao tác trên thiết bị sạch; sao lưu an toàn dữ liệu mã hóa và tham số; cân nhắc kết hợp ví phần cứng với lưu trữ ngoại tuyến cho tài sản lớn.
Tăng tham số KDF sẽ nâng chi phí tính toán cho mỗi lần giải mã—giúp chống tấn công nhưng có thể làm chậm mở khóa trên thiết bị cũ hoặc di động. Cân đối mức tham số theo khả năng thiết bị và tần suất sử dụng: dùng thiết lập mạnh cho sao lưu giá trị lớn; giảm dần cho nhu cầu thường xuyên.
Lựa chọn thuật toán cũng cần cân nhắc: AES thường nhanh hơn trên CPU hiện đại; ChaCha20-Poly1305 hiệu quả hơn trên thiết bị không có tăng tốc AES. GCM có xác thực tích hợp, tiện lợi; CTR cần kết hợp với MAC—linh hoạt nhưng đòi hỏi triển khai cẩn trọng.
Mã hóa khóa bí mật là một dạng mã hóa đối xứng, dùng cùng một khóa bí mật để mã hóa và giải mã—lý tưởng khi cần tự lưu trữ dữ liệu an toàn. Trong ví Web3, quá trình này thường gồm dẫn xuất khóa qua KDF, mã hóa bằng AES hoặc ChaCha20, lưu cùng muối, IV và MAC trong tệp keystore. Khác với mã hóa/ký khóa công khai tập trung vào truyền thông bảo mật hoặc xác thực, mã hóa khóa bí mật chuyên về bảo vệ lưu trữ. Đảm bảo bảo mật cần mật khẩu mạnh, tham số phù hợp, triển khai đúng và sao lưu đa điểm.
Một khi đã mất thì khóa bí mật không thể phục hồi—đây là đặc điểm bảo mật cốt lõi của blockchain. Khóa bí mật là cách duy nhất để truy cập tài khoản; không công ty hay hệ thống sao lưu nào có thể giúp bạn phục hồi. Cần lưu giữ khóa bí mật hoặc cụm từ ghi nhớ ở nơi an toàn—tốt nhất là ví lạnh hoặc thiết bị ngoại tuyến—và tuyệt đối không chụp màn hình hoặc chia sẻ cho bất kỳ ai.
Mức độ an toàn phụ thuộc vào loại ví bạn chọn. Ví phần cứng (ví lạnh) lưu khóa bí mật ngoại tuyến với rủi ro bị đánh cắp cực thấp; ví phần mềm chạy trên điện thoại hoặc máy tính có thể gặp rủi ro nếu thiết bị bị nhiễm mã độc hoặc hacker. Với tài sản lớn, hãy dùng ví phần cứng; với giao dịch nhỏ hằng ngày, ví phần mềm uy tín như ví chính thức của Gate vẫn ổn—luôn bật khóa màn hình thiết bị và bảo vệ bằng phần mềm diệt virus.
Đều là hai hình thức truy cập cùng một tài khoản: khóa bí mật là chuỗi hex 64 ký tự; cụm từ ghi nhớ gồm 12–24 từ tiếng Anh. Cả hai đều truy cập cùng một tài khoản. Cụm từ ghi nhớ dễ nhớ và sao lưu hơn; khóa bí mật trực tiếp hơn. Khuyến nghị nên sao lưu cụm từ ghi nhớ thay vì khóa bí mật—quy trình nhập giống nhau cho cả hai.
Khóa bí mật đại diện quyền sở hữu tuyệt đối tài sản—ai có khóa sẽ kiểm soát toàn bộ tiền trong tài khoản. Nền tảng uy tín (bao gồm Gate) không bao giờ yêu cầu bạn cung cấp khóa bí mật hoặc cụm từ ghi nhớ—đây là chiêu lừa đảo phổ biến. Nếu ai đó tự xưng đại diện nền tảng yêu cầu khóa bí mật, hãy chặn và báo cáo ngay.
Cùng một cụm từ ghi nhớ có thể tạo ra các khóa bí mật và địa chỉ khác nhau trên nhiều blockchain—nhưng khóa bí mật của mỗi chuỗi là riêng biệt. Ví dụ, dùng cùng cụm từ ghi nhớ trên Ethereum và Bitcoin sẽ tạo hai khóa bí mật và địa chỉ riêng biệt. Thiết kế này cho phép một cụm từ ghi nhớ quản lý tài sản đa chuỗi—nhưng bạn cần quản lý rủi ro riêng trên mỗi mạng.


