Swift divulga pacote de Homomorphic Encryption
(swift.org)- Divulgado o novo pacote open source de Swift,
swift-homomorphic-encryption - Homomorphic Encryption (HE) é uma tecnologia de criptografia que permite realizar operações em dados criptografados sem precisar descriptografá-los
- O cliente envia dados criptografados ao servidor, e o servidor processa esses dados e retorna o resultado
- O servidor não descriptografa os dados originais nem acessa a chave de descriptografia
- Oferece uma nova oportunidade para proteger a privacidade e a segurança dos dados dos usuários em serviços de nuvem
Casos de uso da Apple
- A Homomorphic Encryption é usada no Live Caller ID Lookup, novo recurso do iOS 18
- O Live Caller ID Lookup envia consultas criptografadas ao servidor para fornecer informações sobre números de telefone
- O servidor não sabe qual é o número de telefone específico da solicitação
- É possível testar o recurso por meio do pacote
live-caller-id-lookup-example
Principais recursos
- Suporte a Swift on Server, ao framework HTTP Hummingbird e a múltiplas plataformas
- Benchmarking fácil por meio da biblioteca Benchmark
- Primitivas criptográficas de baixo nível e alto desempenho do Swift Crypto
Private Information Retrieval (PIR)
- O Live Caller ID Lookup depende de Private Information Retrieval (PIR)
- O cliente envia uma palavra-chave ao servidor e recupera o valor relacionado
- Implementado de forma que o servidor não saiba qual é a palavra-chave
- Usa Homomorphic Encryption para processar bancos de dados de grande escala com eficiência
Homomorphic Encryption
- Homomorphic Encryption permite operar sobre dados criptografados sem descriptografá-los
- Fluxo de trabalho geral:
- O cliente criptografa dados sensíveis e os envia ao servidor
- O servidor executa operações sobre o texto cifrado
- O servidor envia o texto cifrado resultante ao cliente
- O cliente descriptografa o resultado
- Implementa o esquema de HE Brakerski-Fan-Vercauteren (BFV)
- O BFV é baseado no problema RLWE, com resistência quântica
Exemplos de uso de Homomorphic Encryption
- Útil para várias aplicações de proteção de privacidade
- Código de exemplo:
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)
Resumo do GN⁺
- A Homomorphic Encryption abre novas possibilidades para serviços de nuvem ao proteger a privacidade dos dados
- Já foi aplicada a um recurso do iOS 18 da Apple, comprovando sua utilidade prática
- A comunidade Swift pode desenvolver várias aplicações de proteção de privacidade
- Outros projetos com funcionalidades semelhantes incluem Microsoft SEAL e IBM HELib
1 comentários
Comentários no Hacker News