En el algoritmo de cifrado minúsculo :
Se usan diferentes múltiplos de una constante mágica para evitar ataques simples basados en la simetría de las rondas. La constante mágica, 2654435769 o 9E3779B9 16 se elige para ser , donde ϕ es la proporción áurea.
¿Qué propiedades tiene que lo hace útil en este contexto?
cr.crypto-security
MS Dousti
fuente
fuente
Respuestas:
AFAIK, tales valores "mágicos" tienen las siguientes dos propiedades:
Puede encontrar un caso similar en el MD5 . Considere la siguiente línea:
k[i] := floor(abs(sin(i + 1)) × (2 pow 32))
Aquí,
sin(i + 1)
está destinado a generar valores mágicos; que son únicos, de aspecto aleatorio y pueden funcionar para muchosi
. (En realidad,i
varía en 0..63).Editar: Al leer el documento original sobre TEA , uno entiende que la respuesta dada por "Steven Stadnicki" es correcta. Tenga en cuenta que la constante mágica es el nombre delta:
Como solo se usan 32 múltiplos de delta (uno por cada ronda), no es extraño que el algoritmo no sea muy sensible a ningún delta específico. (Vea la respuesta de Steven Stadnicki para más información).
Edición 2: Incidentalmente, MD4 usa raíces cuadradas de 2 (0x5a827999) y 3 (0x6ed9eba1) como constantes "mágicas" en sus operaciones. La sección 5.4.4 del libro Seguridad de la red: comunicación privada en un mundo público explica esto bien:
Esta explicación es la misma que se señala a continuación en un comentario de Gilles.
fuente
Una razón por la que hace un 'número mágico' particularmente útil en este contexto es que se garantiza que los múltiplos están 'máximamente lejos' de los enteros (esto tiene que ver con la falta de términos grandes en la fracción continua para ) y, por lo tanto, la secuencia (o más exactamente, sus segmentos iniciales) se distribuye de manera más uniforme mod 1 que la secuencia para cualquier otro irracional .n φ φ { n φ } { n α } αφ nφ φ {nφ} {nα} α
Para dar un ejemplo: supongamos que elegimos una constante mágica . Entonces , un resultado inesperadamente pequeño para un múltiplo tan pequeño de nuestra constante mágica. Por el contrario, si usamos la constante mágica , entonces la más pequeña para la cual (abusando un poco de la notación) es . En la práctica, esto puede conducir a cosas como correlaciones inesperadamente grandes entre los valores y de un generador lineal de números aleatorios congruentes para algunos pequeñosCπ=⌊232/π⌋=1367130551 (355Cπ)mod232=41157 Cφ=⌊232/φ⌋=2654435769 n |(nCφ)mod232|≤216 n=28657 Xn Xn+k k ; en su mayor parte, sin embargo, es magia negra folclórica, basada más en la intuición de que 'pequeños múltiplos de este número siendo pequeños mod serán malos' que en cualquier resultado teórico específico.232
fuente
k[i]
, como se define en MD5? (Vea mi respuesta más arriba.)