Kupyna ( en ucraniano : Купина ) es una función hash criptográfica definida en la norma nacional ucraniana DSTU 7564:2014. [ 2 ] [ 3 ] Fue creada para reemplazar una función hash GOST obsoleta definida en la antigua norma GOST 34.11-95, similar a la función hash Streebog estandarizada en Rusia.
Además de la función hash, el estándar también describe la generación de códigos de autenticación de mensajes utilizando Kupyna con tamaños de resumen de 256, 384 y 512 bits.
Descripción
La función hash Kupyna utiliza la función de compresión Davies-Meyer basada en el cifrado Even-Mansour . La función de compresión consta de dos permutaciones fijas, T ⊕ y T + , tomadas del cifrado de bloques Kalyna [ 4 ] y que constan de cuatro operaciones: AddRoundConstant, SubBytes, ShiftBytes y MixColumns. La función round utiliza cuatro cajas S diferentes . [ 5 ]
La función puede devolver un resumen de longitud arbitraria, de 8 a 512 bits; la función que devuelve un resumen de n bits se denomina Kupyna-n. Las longitudes de resumen recomendadas son 256, 384 y 512 bits.
Los diseñadores afirman que los ataques diferenciales y de rebote son ineficaces después de 4 rondas de la función de compresión. [ 6 ]
Kupyna es el nombre ucraniano de Polygonatum odoratum .
Ejemplos de hashes de Kupyna
Valores hash de una cadena vacía.
Kupyna-256("") 0x cd5101d1ccdf0d1d1f4ada56e888cd724ca1a0838a3521e7131d4fb78d0f5eb6 Kupyna-512("") 0x656b2f4cd71462388b64a37043ea55dbe445d452aecd46c3298343314ef04019 \ bcfa3f04265a9857f91be91fce197096187ceda78c9c1c021c294a0689198538
Como ocurre con todas las funciones hash criptográficas, incluso un pequeño cambio en el mensaje dará como resultado (con una probabilidad abrumadora) un hash que difiere del original en, en promedio, la mitad de los bits de salida, debido al efecto avalancha . Por ejemplo, añadir un punto al final de la frase:
Kupyna-256 ("El rápido zorro marrón salta sobre el perro perezoso") 0x996899f2d7422ceaf552475036b2dc120607eff538abf2b8dff471a98a4740c6 Kupyna-256("El rápido zorro marrón salta sobre el perro perezoso.") 0x 88ea8ce988fe67eb83968cdc0f6f3ca693baa502612086c0dcec761a98e2fb1f
Criptoanálisis
Christoph Dobraunig, Maria Eichlseder y Florian Mendel describen un ataque de colisión utilizando un ataque de rebote en Kupyna-256 reducido a 4 rondas con una complejidad temporal de 2 67 y en Kupyna-256 reducido a 5 rondas con una complejidad temporal de 2 120 , basado en ataques de rebote en Grøstl . [ 1 ]
Jian Zou y Le Dong también describen un ataque de colisión en Kupyna-256 reducido a 5 rondas con una complejidad temporal de 2 120 , así como un ataque de pseudo-preimagen en Kupyna-256 de 6 rondas con complejidades de tiempo y memoria de 2 250 y en Kupyna-512 de 8 rondas con complejidades de tiempo y memoria de 2 498. Señalan que estos ataques no amenazan ninguna afirmación de seguridad de Kupyna. [ 7 ]
Onur Duman publicó un análisis de fallos diferenciales sobre Kupyna cuando se utiliza para esquemas MAC. Según el artículo, recuperar un byte del estado requiere entre 2,21 y 2,42 fallos. [ 8 ]
Referencias
- 1 2 Christoph Dobraunig; Maria Eichlseder; Florian Mendel (2015-10-01). "Análisis de la función hash Kupyna-256" (PDF) .
- ↑ http://jurliga.ligazakon.ua/news/2015/2/16/124401.htm Extensión de las normas nacionales para algoritmos y protocolos criptográficos (en ruso)
- ↑ https://eprint.iacr.org/2015/885.pdf Un nuevo estándar de Ucrania: la función hash de Kupyna
- ↑ https://eprint.iacr.org/2015/650.pdf Un nuevo estándar de cifrado de Ucrania: el cifrado de bloques Kalyna
- ↑ https://github.com/Roman-Oliynykov/Kupyna-reference Implementación de referencia de la función hash de Kupyna (DSTU 7564:2014)
- ↑ http://www.slideshare.net/oliynykov/kupyna Propiedades principales del nuevo estándar nacional ucraniano sobre función hash criptográfica
- ↑ Jian Zou; Le Dong (2015-10-02). "Criptoanálisis de la función hash de Kupyna con rondas reducidas" (PDF) .
- ↑ Onur Duman (15 de junio de 2016). "Aplicación del análisis de fallos a algunos estándares criptográficos" (PDF) .
- funciones hash criptográficas