12 pontos por GN⁺ 2024-08-01 | 1 comentários | Compartilhar no WhatsApp
  • 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

 
GN⁺ 2024-08-01
Comentários no Hacker News
  • Consulta de número de telefone é um exemplo didático de caso em que a criptografia homomórfica não funciona na prática
  • A criptografia homomórfica é interessante como se movesse a simulação para um universo paralelo inacessível
  • Quem tiver interesse em FHE deveria conferir a Zama.ai, que recentemente criou uma FHE prática
  • Este provavelmente será o primeiro caso de uso real de HE. Em geral, ela era considerada lenta demais para ser útil, mas este é um excelente caso de uso
  • Este é um anúncio muito importante no longo prazo, embora não vá parecer assim de imediato
    • Este é um grande anúncio para casos de uso relacionados a IA e PII
  • Fico curioso para saber como isso se compara à FHE da Zama.ai
  • FHE é legal, mas fico me perguntando para quantos casos de uso ela realmente serve. Ela oferece melhores garantias de segurança aos usuários, mas será que eles realmente se importam se uma organização prometer um ambiente de execução seguro na nuvem?
    • Além disso, do ponto de vista de engenharia, usar FHE exige refatorar o fluxo e se comprometer com todo o processamento downstream de forma rígida. Se a lei não obrigar isso, será que as organizações terão motivação suficiente?
  • O nome é engraçado, porque HME não é nada rápido em vários sentidos
    • Acho que a solução de verdade são enclaves seguros, mas isso também tem suas dificuldades
  • Algo que sempre quis saber sobre FHE: o padrão-ouro da criptografia moderna é a segurança IND-CCA. Por definição, FHE não pode satisfazer esse critério (modificar um texto cifrado de forma a causar um efeito previsível no texto plano é justamente a definição de ataque de texto cifrado escolhido). Então, quão perto os esquemas modernos de FHE chegam disso? Ou seja, quanta segurança se sacrifica para obter as vantagens da FHE?
  • Não entendo como o servidor pode corresponder um texto cifrado a um valor sem conhecer a chave. Como o servidor determina que esse texto cifrado corresponde a um valor específico? Se o servidor constrói esse banco de dados de texto cifrado-valor, como ele sabe qual algoritmo deve usar para transformar o valor em texto cifrado e armazená-lo?