Oh garoto, por onde começar.
O grande é definitivamente caixas pretas. Pesquisadores de criptografia se preocupam com coisas como o problema da instabilidade do Random Oracle Model. Os pesquisadores de segurança estão no outro extremo e desejam que tudo seja utilizável como uma caixa preta, não apenas funções de hash. Esta é uma fonte constante de tensão.
Para ilustrar, se você examinar a análise formal dos protocolos de segurança, por exemplo , a lógica BAN , verá que a criptografia simétrica é tratada como uma "cifra de bloco ideal". Há uma distinção sutil aqui - a lógica BAN (e outras técnicas de análise de protocolo) não afirmam ser provas de segurança; pelo contrário, são técnicas para encontrar falhas. Portanto, não é estritamente verdade que o modelo de cifra ideal esteja envolvido aqui. No entanto, é empiricamente verdade que a maior parte da análise de segurança tende a ser limitada ao modelo formal; portanto, o efeito é o mesmo.
Ainda nem falamos sobre praticantes. Esses caras geralmente nem têm idéia de que as primitivas de criptografia não são caixas pretas, e duvido que isso mude - décadas de tentativas de colocar isso em suas cabeças não fizeram diferença.
Para ver o quão ruim é o problema, considere este aviso de segurança relacionado à capacidade de perdoabilidade da assinatura da API. O bug se deve em parte ao ataque de extensão de comprimento na construção Merkle-Damgard (que é realmente muito básico) e afeta o Flickr, DivShare, iContact, Mindmeister, Myxer, RememberTheMilk, Scribd, Vimeo, Voxel, Wizehhive e Zoomr. Os autores observam que esta não é uma lista completa.
Eu acho que os profissionais merecem a maior parte da culpa por esse triste estado de coisas. Por outro lado, talvez os teóricos da criptografia precisem repensar sua posição também. A linha deles era: "caixas-pretas são impossíveis de construir; nós nem vamos tentar". Pelo que digo, já que é claro que suas construções serão (des) usadas como caixas-pretas de qualquer maneira, por que não tentar ao menos torná-las o mais próximo possível das caixas-pretas?
O artigo Merkle-Damgard Revisited é um ótimo exemplo do que estou falando. Eles estudam a noção de segurança de que "a função arbitrária de hash de comprimento H deve se comportar como um oráculo aleatório quando o bloco de construção de comprimento fixo é visto como um oráculo aleatório ou uma cifra de bloco ideal". Esse tipo de pesquisa teórica tem o potencial de ser extremamente útil na prática.
Agora vamos ao seu exemplo de avaliação de circuitos. Eu imploro para discordar do seu raciocínio. Não é como se você pegasse um binário compilado e o transformasse cegamente em um circuito. Em vez disso, você aplicaria a avaliação de circuito apenas à função de comparação subjacente, que geralmente é bastante simples. Fairplay é uma implementação de avaliação de circuitos. Um colega meu que trabalhou com ele me diz que é surpreendentemente rápido. Embora seja verdade que a eficiência seja um problema com a avaliação de circuitos (e eu conheço casos do mundo real em que ela foi rejeitada por esse motivo), está longe de ser um empecilho.
A segunda razão pela qual discordo de você é que, se você pensar em alguns dos cenários típicos da vida real, nos quais é possível que você deseje realizar uma avaliação de circuito inconsciente - por exemplo, quando duas empresas estão pensando em mesclar - os custos computacionais envolvidos são triviais em comparação com o esforço e orçamento humanos em geral.
Então, por que ninguém usa a avaliação de funções seguras genérica na prática? Ótima pergunta. Isso me leva à minha segunda diferença entre teoria e prática: a confiança realmente existe na prática! Nem tudo precisa ser feito no modelo paranóico. O conjunto de problemas que as pessoas realmente querem resolver usando criptografia é muito, muito menor do que o que os criptógrafos imaginam.
Conheço alguém que iniciou uma empresa tentando vender serviços de computação multipartidários seguros para clientes corporativos. Adivinha o quê - ninguém queria. A maneira como eles abordam esses problemas é assinar um contrato especificando o que você pode ou não fazer com os dados, e que você os destruirá após terminar de usá-los para a finalidade pretendida. Na maioria das vezes, isso funciona muito bem.
Meu último ponto de diferença entre teoria e prática é sobre PKI. Os papéis criptográficos freqüentemente colocam uma frase em algum lugar dizendo "assumimos uma PKI". Infelizmente, os certificados digitais para usuários finais (ao contrário de sites ou funcionários em um contexto corporativo, onde existe uma hierarquia natural) nunca se materializaram. Este artigo clássico descreve a alegria que ocorre quando você pede que pessoas normais usem PGP. Disseram-me que o software melhorou muito desde então, mas os problemas subjacentes de design e arquitetura e as limitações humanas não são muito diferentes hoje.
Eu não acho que os criptografadores devam estar fazendo algo diferente como consequência dessa falta de PKI do mundo real, exceto para estar ciente do fato de que isso limita a aplicabilidade do mundo real de protocolos criptográficos. Eu o joguei porque é algo que estou tentando consertar.