0Pricing
Cryptology Academy · Aula

Circuit ORAM e Desempenho Prático

Examine as melhorias do Circuit ORAM e o custo de desempenho no mundo real das construções ORAM.

Circuit ORAM e Desempenho Prático é uma aula grátis de Cryptology Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Cryptology Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Cryptology Academy inclui 4 aulas no total.

Objetivos de projeto do Circuit ORAM

Circuit ORAM, proposto por Wang, Chan e Shi (2015), foi projetado para minimizar a sobrecarga de largura de banda e, ao mesmo tempo, ser simples de implementar em estruturas de computação segura (circuitos codificados e compartilhamento de segredos). Sua principal inovação é reduzir o tamanho do compartimento para Z = 2 blocos (em comparação com Z = 5 no Path ORAM), reduzindo a largura de banda pela metade e mantendo uma probabilidade de falha desprezível. O procedimento de despejo foi reformulado para poder ser expresso como um pequeno circuito booleano.

Redução do tamanho dos compartimentos

No Path ORAM com Z = 5, a probabilidade de transbordamento do buffer temporário é controlada pela existência de vários blocos por compartimento, para acomodar a atribuição aleatória de blocos aos caminhos. Circuit ORAM prova que Z = 2 é suficiente quando se usa um procedimento determinístico de despejo (despejo em profundidade primeiro), em vez de um despejo aleatório. Isso reduz pela metade o armazenamento no servidor e a sobrecarga de comunicação em comparação com o Path ORAM com os mesmos parâmetros de segurança.

Circuit ORAM para computação segura

Circuit ORAM foi projetado especificamente para ter um procedimento de despejo que possa ser expresso como um circuito booleano eficiente. Em protocolos de computação segura (circuitos codificados, SPDZ), o próprio acesso à ORAM deve ser avaliado de forma obliviosa — o servidor que executa a computação não pode descobrir qual posição de memória está sendo acessada. O circuito simples e determinístico de despejo do Circuit ORAM é muito mais eficiente para ser codificado do que o procedimento de despejo do Path ORAM.

Detalhamento da sobrecarga de comunicação

Para um banco de dados com N blocos de tamanho B bytes, Circuit ORAM exige 2 * log N * B bytes por acesso (lendo e gravando um caminho com Z = 2 blocos por compartimento). Para N = 2^20 blocos de 4KB cada, isso corresponde a 160KB por acesso, em comparação com 400KB no Path ORAM (Z=5). A sobrecarga de largura de banda em comparação com o texto claro é de cerca de 40 vezes para parâmetros típicos, abaixo das 100 vezes do Path ORAM.

Oblix: Estruturas de dados obliviosas

Oblix (Misra, Schlegel, Sherwood, Tsudik, 2018) usa Circuit ORAM para criar versões obliviosas de estruturas de dados de alto nível: listas encadeadas obliviosas, mapas obliviosos (tabelas de dispersão) e filas de prioridade obliviosas. Essas estruturas permitem computação obliviosa sobre dados dinâmicos sem revelar padrões de acesso. Oblix é executado dentro de enclaves Intel SGX e tem como alvo a interseção privada de conjuntos e consultas privadas a bancos de dados.

TaoStore: ORAM assíncrona

TaoStore (Sahin, Zhu, Gunter, Borisov, 2016) estende o Path ORAM para oferecer acesso assíncrono de alta vazão, processando várias solicitações ORAM em paralelo e agrupando as remoções de caminhos. Ao combinar acessos ao mesmo caminho, TaoStore alcança uma vazão significativamente maior (solicitações por segundo) do que as construções ORAM síncronas, tornando-o adequado para servidores de armazenamento em nuvem com muitos clientes simultâneos.

Obladi: armazenamento transacional com acesso oculto

Obladi (Crooks, Park, Alvisi, Iyengar, 2018) constrói um sistema completo de armazenamento transacional sobre o Path ORAM. Obladi oferece suporte a transações ACID sobre armazenamento criptografado com ocultação do padrão de acesso. Ele introduz a execução adiada: as transações são agrupadas em épocas e executadas de modo a ocultar quais registros específicos foram acessados em cada época. Obladi funciona como um proxy confiável entre os clientes e o sistema de armazenamento em nuvem não confiável.

Latência prática do ORAM

Para um ORAM de 1GB (262.144 blocos de 4KB) implantado na AWS, com um cliente acessando blocos pela internet, a latência do Path ORAM é de aproximadamente 50 a 200ms por acesso (dominada pelo tempo de ida e volta dos acessos aos compartimentos, com log N = 18). Com buscas paralelas nos compartimentos, esse valor pode ser reduzido. Para aplicações locais em SGX, com o ORAM na RAM, a latência fica na faixa de 1 a 10ms por acesso, o que é aceitável para muitas aplicações de computação segura.

Sobrecarga de largura de banda na prática

A sobrecarga de largura de banda do ORAM depende muito dos padrões de acesso. Para um ORAM de armazenamento em nuvem de 1TB, com blocos de 1MB, cada acesso transfere cerca de 25MB (sobrecarga de 25 vezes para log N = 25 níveis). Para blocos pequenos (4KB), a sobrecarga por acesso é menor em bytes absolutos, mas maior em termos relativos. As organizações que implantam ORAM devem reservar largura de banda para uma amplificação de 20 a 50 vezes e garantir que seus enlaces de rede e custos de saída da nuvem levem isso em conta.

ORAM versus equipamento confiável

Uma alternativa ao ORAM para a privacidade de acesso é o equipamento confiável: Intel SGX ou AMD SEV fornece um ambiente de execução confiável no qual nem mesmo o sistema operacional hospedeiro pode observar a computação ou os padrões de acesso à memória (com as defesas apropriadas). O SGX sem ORAM ainda vaza padrões de acesso no nível de páginas para o equipamento, portanto é necessário usar ORAM dentro do SGX para obter proteção completa. Em comparação com o ORAM puro, o equipamento confiável reduz a sobrecarga de largura de banda, mas exige confiança no fabricante do equipamento e na cadeia de fornecimento.

Quando implantar ORAM

O ORAM é apropriado quando: o adversário observa os padrões de acesso no lado do servidor (provedor de nuvem, co-inquilino), a sensibilidade dos dados justifica uma sobrecarga de largura de banda de 20 a 50 vezes e o próprio padrão de acesso revelaria informações sensíveis. Para a maioria das aplicações, a criptografia padrão com gerenciamento cuidadoso de chaves é suficiente. O ORAM é uma ferramenta especializada para cenários de alta segurança: análise de dados médicos, aprendizado de máquina privado, sistemas de negociação financeira e bancos de dados de aplicação da lei.

Questionário sobre o tamanho dos compartimentos do Circuit ORAM

Qual tamanho de compartimento o Circuit ORAM utiliza e por que isso representa uma melhoria em relação ao Path ORAM?

Recapitulação do Circuit ORAM e do desempenho prático

O Circuit ORAM reduz o tamanho do compartimento para Z=2 (em comparação com Z=5 do Path ORAM), reduzindo a largura de banda pela metade por meio de remoções determinísticas que priorizam os níveis mais profundos. Ele foi projetado para ser usado em computação segura com circuitos embaralhados. A sobrecarga prática é uma amplificação de largura de banda de 40 vezes para parâmetros típicos. Os sistemas de produção incluem Oblix (SGX + estruturas de dados com acesso oculto), TaoStore (ORAM de alta vazão com processamento em lotes) e Obladi (ORAM transacional). O ORAM dentro do SGX é necessário porque o SGX sozinho vaza padrões de acesso no nível de páginas.

Perguntas Frequentes

A aula “Circuit ORAM e Desempenho Prático” é grátis?

Sim — o texto completo de “Circuit ORAM e Desempenho Prático” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Cryptology Academy, atualize para CoddyKit PRO. O curso de Cryptology Academy inclui 4 aulas no total.

O que vou aprender em “Circuit ORAM e Desempenho Prático”?

Examine as melhorias do Circuit ORAM e o custo de desempenho no mundo real das construções ORAM. Você pratica Cryptology Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Cryptology Academy?

Nenhuma experiência prévia é necessária. Cryptology Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Circuit ORAM e Desempenho Prático”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Cryptology Academy?

Sim. Cada aula de Cryptology Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. A Ameaça do Vazamento de Padrões de Acesso
  2. Path ORAM: Ocultando Acessos à Memória
  3. Circuit ORAM e Desempenho Prático
  4. ORAM em Armazenamento em Nuvem e Processadores Seguros
← Voltar para Cryptology Academy