¿Alternativas a SHA-1?
En algunas aplicaciones he usado SHA-1 como hash. Visto lo visto, no hay que echarse a temblar (al menos yo para el nivel de criticidad que necesito para tales aplicaciones), ya que según he leído, 2^69 intentos son los que necesitaron para "romper" la función. La alternativa que elegí en su dia, cuando leí que SHA-1 podía estar comprometido, fue la función Tiger (exactamente una emulación Tiger192 para máquinas de 32 bits). Y ahora viene mi pregunta: ¿Qué sabemos de esta función? Por lo que sé, es una función de código abierto y libre de patentes, pero esto no siempre es una garantía. ¿Sabéis si ha habido algún ataque serio a esta función? ¿Cuál sería un candidato ideal para sustituir a SHA-1?...
Y, citando a Schneier, ¿Ha llegado el momento de que haya un concurso público -como el que se hizo para AES- para dar a luz a un nuevo estándar de hash?

- 3198 lecturas
Twitter

A mi me da confianza...
Yo he elegido Tiger para mi aplicación criptográfica SKS. Aparte de la confianza en sus programadores, la velocidad de su algoritmo y el tamaño del resumen (192 bits) lo hacían muy apropiado a mis intereses.
Los autores agradecen cualquier notificación de debilidad del algoritmo y, hasta la fecha, aún no han recibido ninguna. La alternativa de los nuevos SHA (SHA256, por ejemplo) no está muy clara; mucha gente critica el uso de oscuras constantes que no se sabe muy bien por qué se eligen. En contraposición, el diseño de TIGER es muy diáfano.
Apoyo lo del concurso. Igual presento alguna idea...
SKS, criptografía de curva elíptica de bolsillo
http://sks.anarres.tk
Yo apoyo el concurso
No estamos considerando todos los supuestos cuando pensamos que algo es difícil o improbable por mera estadística. Me intentaré explicar mejor, cuando montamos un sistema criptográfico lo hacemos pensando en que es seguro. Casi siempre, mirando a la teoría de la complejidad matemática, pero nadie se pone en el caso de que alguien logre solucionar de hoy a mañana el problema de la factorización, ¿es imposible? está claro que no.
Evidentemente, bajar el nivel de complejidad del SHA-1 en un 99,99 % como dicen que han logrado los chinos, demuestra que ese escenario es probable y/o posible y que es necesario tener un plan de contingencia para todos los sistemas. Puestos a malas, no importa que los chinos no lo hayan logrado, hemos de pensar que lo han hecho, o que alguien lo puede hacer de un día para otro, con el SHA-1, con el Fenced DES o con el RSA, eso da lo mismo. Puesto a las malas y siendo consecuentes, ni siquiera nos debemos fiar demasiado de la ley de Moore, santa santorum de todos los que implantan un sistema criptográfico.
Ya se que 2**69 es mucho todavía, pero no se trata de eso, no debemos dejar que nos dejen mirando a otro lado. Todos dicen, señores, el riesgo del SHA-1 es pequeño, el nivel de complejidad es un 99,999% menor ya lo sabemos, pero todavía son necesarios 0,3 meses del mejor ordenador del mundo para atacarlo y no afecta nada más a las aplicaciones de hash sensibles a la colisión... está bien, pero no es ese el problema.
Hay que mirar al escenario que se puede producir si a alguien le suena la flauta por casualidad y se carga el 90% de la criptografía que se usa en el planeta con una ecuación de segundo grado mágica. El punto de partida es el escenario que se produciría si el SHA-1 quedase con un nivel de complejidad de O(n**10) y consideramos que es global, no solamente militar, bancario, civil, etc... afecta a todos y a casi todo, es un hecho estratégico. En un entorno global no vale evaluar y establecer planes ante la situación más probable, sobre todo, cuando la más peligrosa supone el desastre total.
El amigo Bruce con otros amigos ya nos ha hablado del peligro de los monocultivos tecnológicos en su obra "CyberInsecurity, The cost of monopoly. El habla de Windows, pero en el caso de la criptografía también pasa algo parecido. La navaja suiza de la criptografía, es decir, los códigos hash son un doble monocultivo.
A) Casi todos parten de la idea del MD4 con variaciones
B) Casi todas las implementaciones se basan en MD5 (basura tecnológica del siglo pasado) o el SHA-1 según recomendaban las agencias americanas del ramo.
Lo peor no es eso, es que la mayoría de las implementaciones de estos algoritmos por motivos de eficacia y velocidad, se han realizado en hardware no actualizable fácilmente.
Mis recomendaciones son:
a) Más I+D+i dedicada a la criptografía
b) Establecer planes de contingencia adecuados por si el sistema que pensamos infalible, deja de serlo de hoy para mañana. Es necesario saber con precisión la tecnología que usa cada sistema y la forma en la que la tiene implementada. No basta con una recomendación para pasar al SHA-2XX hay que hacer más, pan para hoy y hambre para mañana. En este caso la transición ha sido suave, la crónica de una muerte anunciada desde mediados del año pasado. ¿pero si en lugar de 2**26 se plantan en 2**4 de golpe? Tampoco se pueden implementar sistemas criptográficos como cajas negras sin saber lo que hacen y cómo lo hacen.
c) Es necesario evitar los monocultivos tecnológicos en tecnologías críticas y factibles de ser atacadas. También hay que evitar los monocultivos ideológicos. El hecho de que se limite el número de interlocutores válidos a la hora de hablar de temas de criptografía, es decir, que solamente sea oficial la opinión de algunos, es muy peligroso cuando la sociedad depende cada día más de la tecnología y las comunicaciones.
d) Dar la misma importancia a todos los elementos de la cadena de cifrado, en esto me refiero a todas las tecnologías implicadas. Es decir, no pensar que lo importante es el cifrado y que la firma/autenticación es algo secundario ya que su importancia depende
del escenario.
e) Los sistemas criptográficos han de diseñarse de forma y manera que se puedan aplicar los planes de contigencia de la mejor forma posible. Al igual que se contempla un compromiso de claves, se ha de contemplar la caida de un sistema criptográfico. Para ello, hace falta tener uno alternativo ya preparado. En Arte Militar se dice que sin reservas no hay mando y es verdad. Si no tienes reservas, no puedes hacer nada, no mandas, solamente ves como se desarrolla la batalla ante tus ojos sin poder hacer nada más que esperar a tu suerte. Para ello, hace falta el concurso que dice Bruce... es decir tener alternativas, siempre alternativas.