Phân tích kỹ thuật mã hóa Homomorphic: Xử lý dữ liệu không cần giải mã
Mã hóa đồng cấu (homomorphic encryption, HE) là kỹ thuật cho phép thực hiện phép tính trực tiếp trên dữ liệu đã mã hóa, và khi giải mã kết quả, ta nhận được đúng kết quả như khi tính trên dữ liệu gốc. Nhờ đó, một máy chủ đám mây có thể xử lý dữ liệu của bạn mà không bao giờ nhìn thấy nội dung. Đổi lại, HE chậm hơn tính toán thông thường rất nhiều lần, dữ liệu mã hóa lớn hơn, và lập trình phức tạp. Bài viết phân tích các loại HE, cơ chế "nhiễu" làm nên giới hạn của nó, các thư viện phổ biến và những bài toán thực tế phù hợp.
Bài toán mà HE giải quyết
Mã hóa truyền thống bảo vệ dữ liệu khi lưu trữ và khi truyền, nhưng để xử lý thì phải giải mã. Ở thời điểm đó, dữ liệu nằm dạng rõ trong bộ nhớ máy chủ, phơi bày trước quản trị viên, phần mềm độc hại hoặc nhà cung cấp hạ tầng. Đây là khoảng trống "dữ liệu khi đang dùng" được nhắc tới trong bài mã hóa dữ liệu đám mây. HE lấp khoảng trống đó bằng toán học thay vì dựa vào phần cứng tin cậy.
Ý tưởng cốt lõi qua ví dụ đơn giản
Giả sử có hàm mã hóa E. Một hệ mã là đồng cấu với phép cộng nếu E(a) kết hợp với E(b) theo một phép toán nào đó cho ra E(a + b). Bệnh viện mã hóa số liệu, gửi lên máy chủ; máy chủ "cộng" các bản mã và trả về bản mã của tổng; chỉ bệnh viện giải mã được kết quả. Máy chủ làm đúng việc mà không biết từng con số.
Ba cấp độ của mã hóa đồng cấu
| Loại | Phép tính hỗ trợ | Ví dụ | Ghi chú |
|---|---|---|---|
| Đồng cấu một phần (PHE) | Chỉ cộng hoặc chỉ nhân, không giới hạn số lần | Paillier (cộng), RSA thuần (nhân) | Nhanh, dùng cho bỏ phiếu điện tử, tổng hợp số liệu |
| Đồng cấu hạn chế (SHE) | Cả cộng và nhân nhưng số lần giới hạn | Các lược đồ trên lưới không có bootstrapping | Đủ cho mạch tính toán nông |
| Đồng cấu hoàn toàn (FHE) | Phép tính tùy ý | BGV, BFV, CKKS, TFHE | Linh hoạt nhất nhưng tốn tài nguyên nhất |
Bước ngoặt đến năm 2009 khi Craig Gentry đề xuất lược đồ FHE khả thi đầu tiên, chứng minh rằng tính toán tùy ý trên dữ liệu mã hóa là có thể về nguyên tắc.
Nhiễu và bootstrapping: trái tim kỹ thuật
Các lược đồ FHE hiện đại dựa trên bài toán học có lỗi trên lưới (Learning With Errors và các biến thể), cùng họ bài toán làm nền cho mật mã hậu lượng tử (xem bài mật mã hậu lượng tử và tương lai bảo mật). Mỗi bản mã chứa một lượng "nhiễu" nhỏ để đảm bảo an toàn. Phép cộng làm nhiễu tăng ít, nhưng phép nhân làm nhiễu tăng nhanh. Khi nhiễu vượt ngưỡng, bản mã không giải mã đúng được nữa.
Bootstrapping là kỹ thuật "làm mới" bản mã: chạy chính mạch giải mã một cách đồng cấu trên bản mã, tạo ra bản mã mới cùng giá trị nhưng nhiễu thấp. Đây là thao tác tốn kém nhất, và phần lớn nỗ lực nghiên cứu nhằm làm nó nhanh hơn hoặc tránh phải dùng.
Các lược đồ phổ biến và khi nào dùng
- BFV và BGV: tính toán chính xác trên số nguyên, phù hợp thống kê, đếm, so khớp, tra cứu riêng tư.
- CKKS: tính toán xấp xỉ trên số thực, phù hợp học máy, phân tích số liệu nơi sai số nhỏ chấp nhận được.
- TFHE: tối ưu cho phép toán trên bit và bootstrapping nhanh, phù hợp logic, so sánh, hàm phi tuyến.
Kỹ thuật "đóng gói" (batching) cho phép nhét nhiều giá trị vào một bản mã và xử lý song song, giúp cải thiện đáng kể hiệu năng thực tế.
Thư viện và công cụ
Một số thư viện mã nguồn mở được dùng rộng rãi gồm Microsoft SEAL, OpenFHE (kế thừa PALISADE), HElib, Lattigo (Go) và các công cụ của Zama như TFHE-rs. Các trình biên dịch FHE đang được phát triển để lập trình viên viết mã gần như bình thường và để công cụ tự chuyển sang mạch đồng cấu, chọn tham số an toàn. Cộng đồng cũng có nỗ lực chuẩn hóa tham số bảo mật cho HE, giúp tránh cấu hình yếu.
Ứng dụng thực tế đã khả thi
- Tra cứu riêng tư: người dùng gửi truy vấn đã mã hóa, máy chủ tìm trong cơ sở dữ liệu và trả kết quả mã hóa mà không biết người dùng tra gì. Apple đã công bố sử dụng mã hóa đồng cấu cho một số tính năng tra cứu trên thiết bị.
- Kiểm tra mật khẩu bị lộ: trình duyệt kiểm tra mật khẩu có trong danh sách rò rỉ mà không gửi mật khẩu cho máy chủ, thường kết hợp HE hoặc các giao thức giao tập riêng tư.
- Phân tích dữ liệu y tế, tài chính liên tổ chức: nhiều bên đóng góp dữ liệu mã hóa để tính thống kê chung.
- Suy luận học máy riêng tư: chạy mô hình đã huấn luyện trên dữ liệu đầu vào mã hóa, phù hợp mô hình nhỏ.
- Bỏ phiếu điện tử: cộng phiếu mã hóa bằng hệ đồng cấu cộng.
Giới hạn cần cân nhắc
- Hiệu năng: chậm hơn tính toán thường nhiều bậc độ lớn, tùy phép toán và lược đồ.
- Kích thước: bản mã và khóa lớn hơn nhiều so với dữ liệu gốc, tốn băng thông và bộ nhớ.
- Không che mẫu truy cập: HE bảo vệ giá trị, nhưng nếu thiết kế giao thức kém, cấu trúc truy vấn hay kích thước kết quả vẫn có thể rò rỉ thông tin.
- Không chứng minh tính đúng: máy chủ có thể tính sai mà người dùng không biết; cần kết hợp kỹ thuật kiểm chứng như Zero-Knowledge Proof nếu cần đảm bảo.
- Độ phức tạp: chọn tham số sai có thể làm hệ thống không an toàn hoặc kết quả sai.
HE trong bức tranh công nghệ bảo vệ quyền riêng tư
HE thường được so sánh với điện toán bảo mật dựa trên phần cứng (vùng bộ nhớ cô lập), tính toán đa bên an toàn (MPC) và quyền riêng tư vi sai. Mỗi kỹ thuật có điểm mạnh riêng: phần cứng tin cậy nhanh nhưng phải tin nhà sản xuất chip; MPC phù hợp nhiều bên cùng tính; quyền riêng tư vi sai bảo vệ cá nhân trong kết quả thống kê. Hệ thống thực tế thường kết hợp vài kỹ thuật. Khi phần cứng tăng tốc chuyên dụng cho FHE trưởng thành, phạm vi ứng dụng của HE sẽ còn mở rộng.
Câu hỏi thường gặp
Mã hóa đồng cấu có thay thế được mã hóa thông thường không?
Không. HE dùng cho trường hợp cần xử lý dữ liệu mà không giải mã. Với lưu trữ và truyền tải, mã hóa đối xứng thông thường như AES nhanh và phù hợp hơn nhiều.
FHE chậm đến mức nào?
Tùy phép toán, lược đồ và phần cứng, FHE có thể chậm hơn tính toán trên dữ liệu rõ hàng nghìn lần hoặc hơn. Các tối ưu như đóng gói dữ liệu và bootstrapping nhanh đang thu hẹp khoảng cách.
Doanh nghiệp nhỏ có nên dùng mã hóa đồng cấu không?
Thường chưa cần, trừ khi có bài toán rất cụ thể như chia sẻ dữ liệu nhạy cảm với đối tác. Bắt đầu bằng mã hóa lưu trữ, kiểm soát truy cập và tối thiểu hóa dữ liệu sẽ hiệu quả hơn.
Mã hóa đồng cấu có an toàn trước máy tính lượng tử không?
Các lược đồ FHE hiện đại dựa trên bài toán lưới, cùng họ với nhiều thuật toán hậu lượng tử, nên được cho là chống được máy tính lượng tử theo hiểu biết hiện tại.
Bài liên quan

Bảo mật dữ liệu trên đám mây: Mã hóa ở trạng thái nghỉ và chuyển động
Giải thích mã hóa dữ liệu đám mây ở trạng thái nghỉ và khi chuyển động, mã hóa phong bì, các mô hình quản lý khóa KMS, HSM và danh sách việc cho doanh nghiệp.

Cách bảo vệ file tài liệu quan trọng bằng mã hóa GPG/PGP
Hướng dẫn mã hóa file bằng GPG: mã hóa bằng mật khẩu, bằng khóa công khai, ký số, mã hóa thư mục, quản lý và sao lưu khóa, các sai lầm cần tránh.

Hàm băm Cryptographic Hash Functions: Vai trò trong xác thực dữ liệu
Hàm băm mật mã hoạt động thế nào, ba tính chất bảo mật cốt lõi, so sánh MD5, SHA-1, SHA-2, SHA-3 và ứng dụng trong chữ ký số, lưu mật khẩu, kiểm tra tệp.

Hiểu rõ về chứng chỉ SSL/TLS và cách thức hoạt động trên Website
Giải thích chứng chỉ SSL/TLS: nội dung chứng chỉ, chuỗi tin cậy, bắt tay TLS 1.3, các loại DV, OV, EV, ý nghĩa ổ khóa và cấu hình HTTPS đúng cho quản trị web.