- เปิดตัว
swift-homomorphic-encryptionแพ็กเกจโอเพนซอร์สใหม่ของ Swift - Homomorphic Encryption (HE) คือเทคโนโลยีการเข้ารหัสที่สามารถคำนวณบนข้อมูลที่เข้ารหัสไว้ได้โดยไม่ต้องถอดรหัส
- ไคลเอนต์ส่งข้อมูลที่เข้ารหัสแล้วไปยังเซิร์ฟเวอร์ และเซิร์ฟเวอร์จะประมวลผลแล้วส่งผลลัพธ์กลับมา
- เซิร์ฟเวอร์จะไม่ถอดรหัสข้อมูลต้นฉบับหรือเข้าถึงกุญแจถอดรหัส
- เปิดโอกาสใหม่ในการปกป้องความเป็นส่วนตัวและความปลอดภัยของข้อมูลผู้ใช้ในบริการคลาวด์
กรณีการใช้งานของ Apple
- ใช้ Homomorphic Encryption กับฟีเจอร์ใหม่ใน iOS 18 อย่าง Live Caller ID Lookup
- Live Caller ID Lookup ส่งคำขอที่เข้ารหัสไปยังเซิร์ฟเวอร์เพื่อดึงข้อมูลเกี่ยวกับหมายเลขโทรศัพท์
- เซิร์ฟเวอร์จะไม่ทราบหมายเลขโทรศัพท์เฉพาะที่อยู่ในคำขอ
- สามารถทดสอบฟีเจอร์นี้ได้ผ่านแพ็กเกจ
live-caller-id-lookup-example
คุณสมบัติหลัก
- รองรับ Swift on Server, เฟรมเวิร์ก HTTP อย่าง Hummingbird และการทำงานข้ามแพลตฟอร์ม
- ทำเบนช์มาร์กได้ง่ายผ่านไลบรารี Benchmark
- ใช้ primitive ด้านการเข้ารหัสระดับล่างที่มีประสิทธิภาพจาก Swift Crypto
Private Information Retrieval (PIR)
- Live Caller ID Lookup อาศัย Private Information Retrieval (PIR)
- ไคลเอนต์ส่งคีย์เวิร์ดไปยังเซิร์ฟเวอร์เพื่อค้นหาค่าที่เกี่ยวข้อง
- ออกแบบให้เซิร์ฟเวอร์ไม่ทราบคีย์เวิร์ดดังกล่าว
- ใช้ Homomorphic Encryption เพื่อจัดการฐานข้อมูลขนาดใหญ่ได้อย่างมีประสิทธิภาพ
Homomorphic Encryption
- Homomorphic Encryption สามารถคำนวณบนข้อมูลที่เข้ารหัสได้โดยไม่ต้องถอดรหัส
- เวิร์กโฟลว์ทั่วไป:
- ไคลเอนต์เข้ารหัสข้อมูลอ่อนไหวแล้วส่งไปยังเซิร์ฟเวอร์
- เซิร์ฟเวอร์คำนวณบน ciphertext
- เซิร์ฟเวอร์ส่ง ciphertext ของผลลัพธ์กลับไปยังไคลเอนต์
- ไคลเอนต์ถอดรหัสผลลัพธ์
- มีการอิมพลีเมนต์ Brakerski-Fan-Vercauteren (BFV) HE scheme
- BFV มีพื้นฐานจากปัญหา RLWE ที่ทนทานต่อควอนตัม
ตัวอย่างการใช้งาน Homomorphic Encryption
- มีประโยชน์กับแอปพลิเคชันหลากหลายแบบที่เน้นการปกป้องความเป็นส่วนตัว
- ตัวอย่างโค้ด:
import HomomorphicEncryption // Bfv 체계에 대한 몇 가지 암호화 파라미터를 선택하는 것으로 시작 // *이 암호화 파라미터는 안전하지 않으며 테스트용으로만 적합* let encryptParams = try EncryptionParameters(from: .insecure_n_8_logq_5x18_logt_5) // 매개변수를 사용하여 HE 계산을 위한 사전 계산을 수행 let context = try Context(encryptionParameters: encryptParams) // Coefficient 인코딩을 사용하여 N 값을 인코딩 let values: [UInt64] = [8, 5, 12, 12, 15, 0, 8, 5] let plaintext: Bfv.CoeffPlaintext = try context.encode(values: values, format: .coefficient) // 비밀 키를 생성하고 이를 사용하여 일반 텍스트를 암호화 let secretKey = try context.generateSecretKey() let ciphertext = try plaintext.encrypt(using: secretKey) // 일반 텍스트를 해독하면 원래 값을 얻을 수 있음 let decrypted = try ciphertext.decrypt(using: secretKey) let decoded: [UInt64] = try decrypted.decode(format: .coefficient) precondition(decoded == values)
สรุปของ GN⁺
- Homomorphic Encryption เปิดความเป็นไปได้ใหม่ให้บริการคลาวด์ โดยยังคงปกป้องความเป็นส่วนตัวของข้อมูล
- มีการนำไปใช้กับฟีเจอร์ใน iOS 18 ของ Apple ซึ่งพิสูจน์การใช้งานจริงได้แล้ว
- ชุมชน Swift สามารถพัฒนาแอปพลิเคชันด้านการปกป้องความเป็นส่วนตัวได้หลากหลาย
- โครงการอื่นที่มีความสามารถคล้ายกัน ได้แก่ Microsoft SEAL และ IBM HELib
1 ความคิดเห็น
ความเห็นจาก Hacker News