Oh chico, por dónde empezar.
El grande es definitivamente cajas negras. Los investigadores de criptomonedas se preocupan por cosas como el problema de desinstalación del Modelo aleatorio de Oracle. Los investigadores de seguridad están en el otro extremo y desean que todo se pueda utilizar como una caja negra, no solo funciones hash. Esta es una fuente constante de tensión.
Para ilustrar, si observa el análisis formal de los protocolos de seguridad, por ejemplo , la lógica BAN , verá que el cifrado simétrico se trata como un "cifrado de bloque ideal". Aquí hay una sutil distinción: la lógica BAN (y otras técnicas de análisis de protocolo) no pretenden ser pruebas de seguridad; más bien, son técnicas para encontrar fallas. Por lo tanto, no es estrictamente cierto que el modelo de cifrado ideal esté involucrado aquí. Sin embargo, es empíricamente cierto que la mayoría del análisis de seguridad tiende a limitarse al modelo formal, por lo que el efecto es el mismo.
Ni siquiera hemos hablado de practicantes todavía. Estos tipos generalmente ni siquiera tienen la menor idea de que las cripto primitivas no están destinadas a ser cajas negras, y dudo que esto vaya a cambiar alguna vez: décadas de intentar golpear esto en sus cabezas no ha hecho una diferencia.
Para ver qué tan grave es el problema, considere este aviso de seguridad relacionado con la falsificación de firma de API. El error se debe en parte al ataque de extensión de longitud en la construcción Merkle-Damgard (que es algo realmente muy básico) y afecta a Flickr, DivShare, iContact, Mindmeister, Myxer, RememberTheMilk, Scribd, Vimeo, Voxel, Wizehhive y Zoomr. Los autores señalan que esta no es una lista completa.
Creo que los practicantes merecen la mayor parte de la culpa de este triste estado de cosas. Por otro lado, tal vez los teóricos de la criptografía también necesiten repensar su posición. Su línea ha sido: "las cajas negras son imposibles de construir; ni siquiera lo vamos a intentar". A lo que digo, dado que está claro que sus construcciones se usarán (mal) como cajas negras de todos modos, ¿por qué no al menos intentar que estén lo más cerca posible de las cajas negras?
El artículo Merkle-Damgard Revisited es un gran ejemplo de lo que estoy hablando. Estudian la noción de seguridad de que "la función de hash de longitud arbitraria H debe comportarse como un oráculo aleatorio cuando el bloque de construcción de longitud fija se ve como un oráculo aleatorio o un cifrado de bloque ideal". Este tipo de investigación teórica tiene el potencial de ser muy útil en la práctica.
Ahora veamos su ejemplo de evaluación de circuitos. Ruego no estar de acuerdo con su razonamiento. No es como si tomaras un binario compilado y lo convirtieras ciegamente en un circuito. Más bien, aplicaría la evaluación de circuito solo a la función de comparación subyacente, que generalmente es bastante simple. Fairplay es una implementación de evaluación de circuitos. Un colega mío que trabajó con él me dice que es sorprendentemente rápido. Si bien es cierto que la eficiencia es un problema con la evaluación de circuitos (y sí sé de instancias del mundo real donde fue rechazada por este motivo), está lejos de ser un espectáculo espectacular.
La segunda razón por la que no estoy de acuerdo con usted es que si piensa en algunos de los escenarios típicos de la vida real en los que posiblemente desee llevar a cabo una evaluación de circuito ajeno, por ejemplo, cuando dos compañías están decidiendo si fusionar, los costos computacionales los involucrados son triviales en comparación con el esfuerzo humano general y el presupuesto.
Entonces, ¿por qué nadie usa la evaluación genérica de la función segura en la práctica? Gran pregunta Esto me lleva a mi segunda diferencia entre teoría y práctica: ¡la confianza realmente existe en la práctica! No todo debe hacerse en el modelo paranoico. El conjunto de problemas que la gente realmente quiere resolver usando cripto es mucho, mucho más pequeño de lo que imaginan los criptógrafos.
Conozco a alguien que comenzó una empresa que intentaba vender servicios de cómputo multiparte seguros a clientes empresariales. Adivina qué, nadie lo quería. La forma en que abordan estos problemas es firmar un contrato que especifique lo que puede y no puede hacer con los datos, y que destruirá los datos una vez que haya terminado de usarlos para el propósito previsto. La mayoría de las veces, esto funciona bien.
Mi último punto de diferencia entre teoría y práctica es sobre PKI. Los documentos de cifrado con frecuencia escriben una frase en alguna parte que dice "asumimos una PKI". Desafortunadamente, los certificados digitales para usuarios finales (a diferencia de los sitios web o empleados en un contexto corporativo, donde existe una jerarquía natural) nunca se materializaron. Este artículo clásico describe la hilaridad que se produce cuando le pides a personas normales que usen PGP. Me han dicho que el software ha mejorado mucho desde entonces, pero el diseño subyacente y los problemas arquitectónicos y las limitaciones humanas no son muy diferentes hoy en día.
No creo que los criptógrafos deberían hacer algo diferente como consecuencia de esta falta de una PKI del mundo real, excepto para ser conscientes del hecho de que limita la aplicabilidad del mundo real de los protocolos criptográficos. Lo tiré porque es algo que estoy tratando de arreglar.