Cosa c'è di speciale in


12

Nel Tiny Encryption Algorithm :

Diversi multipli di una costante magica sono usati per prevenire attacchi semplici basati sulla simmetria dei round. La costante magica, 2654435769 o 9E3779B9 16 è scelta per essere , dove ϕ è il rapporto aureo.232/ϕ

Quali proprietà ha che lo rende utile in questo contesto?232/ϕ


Risposte:


11

AFAIK, tali valori "magici" hanno le seguenti due proprietà:

  1. Sono in qualche modo unici e sembrano casuali.
  2. Possono prendere parte a operazioni algebriche ripetutamente; cioè anche dopo aver applicato alcune operazioni specifiche (ad esempio moltiplicazione o esponenziazione) più volte, il valore "magico" è ancora in grado di generare nuovi valori.

È possibile trovare un caso simile nell'MD5 . Considera la seguente riga:

k[i] := floor(abs(sin(i + 1)) × (2 pow 32))

Qui, ha lo sin(i + 1)scopo di generare valori magici; che sono unici, dall'aspetto casuale, e possono funzionare per molti i. (In realtà, ivaria tra 0..63).

Modifica: leggendo il documento originale su TEA , si comprende che la risposta data da "Steven Stadnicki" è corretta. Nota che la costante magica è delta del nome:

Un diverso multiplo del delta viene utilizzato in ogni round in modo che nessun bit del multiplo non cambi frequentemente. Sospettiamo che l'algoritmo non sia molto sensibile al valore di delta e dobbiamo semplicemente evitare un valore negativo. Si noterà che il delta risulta essere strano con il troncamento o l'arrotondamento più vicino, quindi non sono necessarie ulteriori precauzioni per garantire che tutte le cifre della somma cambino.

Poiché vengono utilizzati solo 32 multipli di delta (uno per round), non è strano che l'algoritmo non sia molto sensibile a nessun delta specifico. (Vedi la risposta di Steven Stadnicki per maggiori informazioni.)

Modifica 2: Per inciso, MD4 usa radici quadrate di 2 (0x5a827999) e 3 (0x6ed9eba1) come costanti "magiche" nelle sue operazioni. La sezione 5.4.4 del libro Network Security: Private Communication in a Public World spiega bene questo:

Per dimostrare che i progettisti non hanno scelto intenzionalmente un valore diabolico della costante, la costante si basa sulla radice quadrata di 2.

Questa spiegazione è la stessa del punto riportato di seguito in un commento di Gilles.


Sembra ragionevole. Quindi 2 ^ 32 / pi o 2 ^ 32 / sqrt (2) avrebbero funzionato altrettanto bene, allora?

@Tim: credo di si, ma è fondamentale ricontrollare i nuovi numeri magici nel contesto delle operazioni interne TEA.
MS Dousti,

5
Inoltre, un motivo per scegliere una costante matematica come 2 ^ 32 / phi, piuttosto che un valore generato casualmente con proprietà accettabili, è quello di dare un senso di fiducia che questo non è un valore scelto per ulteriori proprietà non rivelate - un valore backdoor .
Gilles 'SO- smetti di essere malvagio' il

2
@Gilles, in effetti, sono anche chiamati "niente nel mio numero di manica" per questo motivo, vedi en.wikipedia.org/wiki/Nothing_up_my_sleeve_number
Henno Brandsma,

12

φnφφ{nφ}{nα}α

Cπ=232/π=1367130551(355Cπ)mod232=41157Cφ=232/φ=2654435769n|(nCφ)mod232|216n=28657XnXn+kk232


1
Sadeq: 'mod 1' si riferisce alla parte frazionaria dei multipli - in questo caso questi sarebbero [.62, .24, .85, .47, .09, .71, .33, .94, .56,. 18]. Equidistribuzione nel limite significa che qualsiasi sottointervallo [a, b] di [0, 1] contiene la proporzione (ba) attesa di questi valori; mentre risulta che le parti frazionarie dei multipli di qualsiasi numero irrazionale sono uniformemente distribuite su [0, 1], quelle del rapporto aureo si avvicinano a quella distribuzione uniforme più velocemente di qualsiasi altro numero; non si "raggruppano" sull'intervallo di unità.
Steven Stadnicki,

8
π113π{(n+113)π}{nπ}

8
questa è una proprietà molto accurata del rapporto aureo
Suresh Venkat,

2
Grazie per l'ottima descrizione. Era davvero fantastico! Hai commenti su k[i], come definito in MD5? (Vedi la mia risposta sopra.)
MS Dousti,

2
sin(nx)xaiΣaik[i]=0
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.