- Công bố
swift-homomorphic-encryption, một gói mã nguồn mở mới cho Swift - Mã hóa đồng hình (HE) là kỹ thuật mã hóa cho phép thực hiện phép toán trên dữ liệu đã mã hóa mà không cần giải mã
- Client gửi dữ liệu đã mã hóa lên server, và server thực hiện tính toán rồi trả về kết quả
- Server không giải mã dữ liệu gốc cũng như không truy cập vào khóa giải mã
- Mở ra cơ hội mới để bảo vệ quyền riêng tư và bảo mật dữ liệu người dùng trong các dịch vụ đám mây
Trường hợp sử dụng của Apple
- Apple sử dụng mã hóa đồng hình trong Live Caller ID Lookup, một tính năng mới của iOS 18
- Live Caller ID Lookup gửi truy vấn đã mã hóa đến server để cung cấp thông tin về số điện thoại
- Server không biết số điện thoại cụ thể trong yêu cầu
- Có thể thử nghiệm tính năng này thông qua gói
live-caller-id-lookup-example
Tính năng chính
- Hỗ trợ Swift on Server, framework HTTP Hummingbird và đa nền tảng
- Benchmarking dễ dàng thông qua thư viện Benchmark
- Các primitive mật mã mức thấp hiệu năng cao của Swift Crypto
Private Information Retrieval (PIR)
- Live Caller ID Lookup phụ thuộc vào Private Information Retrieval (PIR)
- Client gửi từ khóa lên server và truy xuất giá trị liên quan
- Được triển khai để server không biết từ khóa
- Xử lý cơ sở dữ liệu quy mô lớn hiệu quả bằng cách sử dụng mã hóa đồng hình
Mã hóa đồng hình
- Mã hóa đồng hình cho phép thực hiện phép toán trên dữ liệu đã mã hóa mà không cần giải mã
- Quy trình làm việc điển hình:
- Client mã hóa dữ liệu nhạy cảm và gửi lên server
- Server thực hiện phép toán trên bản mã
- Server gửi bản mã kết quả lại cho client
- Client giải mã kết quả
- Triển khai lược đồ HE Brakerski-Fan-Vercauteren (BFV)
- BFV dựa trên bài toán RLWE có khả năng kháng lượng tử
Ví dụ sử dụng mã hóa đồng hình
- Hữu ích cho nhiều ứng dụng bảo vệ quyền riêng tư khác nhau
- Mã ví dụ:
import HomomorphicEncryption // Bắt đầu bằng việc chọn một số tham số mã hóa cho lược đồ Bfv // *Các tham số mã hóa này không an toàn và chỉ phù hợp cho mục đích thử nghiệm* let encryptParams = try EncryptionParameters(from: .insecure_n_8_logq_5x18_logt_5) // Sử dụng các tham số để thực hiện tiền tính toán cho phép tính HE let context = try Context(encryptionParameters: encryptParams) // Mã hóa giá trị N bằng cách sử dụng Coefficient encoding let values: [UInt64] = [8, 5, 12, 12, 15, 0, 8, 5] let plaintext: Bfv.CoeffPlaintext = try context.encode(values: values, format: .coefficient) // Tạo khóa bí mật và dùng nó để mã hóa plaintext let secretKey = try context.generateSecretKey() let ciphertext = try plaintext.encrypt(using: secretKey) // Giải mã plaintext sẽ thu được các giá trị ban đầu let decrypted = try ciphertext.decrypt(using: secretKey) let decoded: [UInt64] = try decrypted.decode(format: .coefficient) precondition(decoded == values)
Tóm tắt của GN⁺
- Mã hóa đồng hình mở ra những khả năng mới cho dịch vụ đám mây đồng thời bảo vệ quyền riêng tư dữ liệu
- Đã được áp dụng vào một tính năng của Apple trên iOS 18, cho thấy tính thực tiễn
- Cộng đồng Swift có thể phát triển nhiều ứng dụng bảo vệ quyền riêng tư khác nhau
- Các dự án khác cung cấp tính năng tương tự gồm có Microsoft SEAL, IBM HELib, v.v.
1 bình luận
Ý kiến trên Hacker News