Presentando Skein

Las funciones hash pueden considerarse la principal fuerza de trabajo de la criptografía moderna. Creadas originalmente para mejorar la eficiencia de las firmas digitales, ahora se utilizan en casi todas las partes de la infraestructura donde se almacena e intercambia información. Se pueden encontrar en protocolos criptográficos, en el proceso de trabajar con claves de cifrado, conexiones web seguras e incluso en la búsqueda de malware. Sin funciones hash, la mayoría de las cosas que nos rodean simplemente no funcionarían.





Las funciones hash más comunes son SHA-0, SHA-1 y SHA-2, que incluyen SHA-256 y SHA-512. Pero a finales de la primera década del siglo XXI, se presentaron métodos de ingeniería de colisiones para cada uno de ellos, que mostraban la presencia de vulnerabilidades en los algoritmos y cuestionaban la seguridad de una firma digital electrónica basada en estas funciones hash. En este sentido, el Instituto Nacional de Estándares y Tecnología de EE. UU. (NIST) anunció en 2007 un concurso para un nuevo estándar criptográfico SHA-3.





Introducción

Armado con una lista de requisitos que incluía resistencia a ataques conocidos, minimización del uso de memoria y optimización para procesadores de 64 bits, un equipo de científicos dirigido por Bruce Schneier, autor de los cifrados en bloque Twofish y Blowfish, presentó su familia de funciones hash variables en 2008 madeja de profundidad de bits, que literalmente significa "madeja de hilo". Desafortunadamente para los autores, en 2012 el algoritmo Skein perdió ante el más rápido y menos vulnerable Keccak en la final SHA-3. 





La madeja consta de tres partes:





  • cifrado de bloque de tres peces simétrico configurable





  • bloque único de iteraciones (UBI)





  • sistema de argumentos opcional





Vayamos en orden.





Tres peces

Threefish — , Skein. , , , Blowfish Twofish. Threefish - (sp-), , MIX, , XOR 2 64 . , 4 . tweak-.





Threefish TF(K, T, P),  





K





T — tweak-





P -





. Threefish 256, 512 1024 . , . : 72 80 256/512- 1024- . Tweak- 128 .





MIX (k1, k2) (g1, g2) , :





g1 = (k1 + k2) mod 264





g2 = (k2 ≪ R) ⊕ g1 , R — ,





UBI

Skein Threefish Unique Block Iteration. UBI . , , . F(S, A, T):





S Nb





A





T





A, , n Nb





F(S, A, T) :





H0=S





Hi+1 = TF(Hi ; T + min(NA; (i+1) Nb) + ai 2126 + bi (B2119+ 2127) ; Ai)Ai





a0=bk-1= 1, ai=bi=0, A 8 B=0, B=1





, . Skein , -.





: , , , . :





  • Configuration





  • Output





:





  • Public Key - , ,





  • Message -





  • Nonce -





  • Key - Skein MAC(message authentication code) KDF(key derivation function)





  • Personalization - ,





Skein

, . Skein, -, . UBI-. 3, UBI: , , . S = 0. Skein .





264 , , .





Al final, me gustaría mencionar las áreas de aplicación de la función hash Skein. Usando el sistema de argumentos adicionales, es posible configurar el algoritmo para calcular los códigos de autenticación de mensajes MAC o HMAC (MAC basado en hash). La madeja también puede servir como generador de números aleatorios o como mecanismo para calcular una firma digital electrónica.








All Articles