In general nu.
În criptografie, apariția unor șiruri de numere „aleatoare” este în general destul de suspectă --- ce se întâmplă dacă există anumite alegeri „slabe” de numere care duc la nesiguranța întregii construcții? De unde știi că designerul nu și-a folosit libertatea în alegerea acestor numere pentru a încorpora o ușă din spate? Rețineți că aceasta face se întâmplă, exemple celebre sunt:
Rețineți că există anumite „constante arbitrare” care sunt văzute ca fiind mai puțin suspecte --- alegerile comune sunt cifrele $\pi$, sau lucruri de acest fel (să zicem cifrele lui $\sqrt{2}$ sau $\sqrt{3}$). Acestea sunt adesea numite nimic din mâneca mea, și poate fi atins atunci când proiectantul are nevoie doar de niște numere arbitrare care să satisfacă unele constrângeri minime pe care „majoritatea” numerelor ar trebui să le satisfacă.
Oricum, revenind la RIPEMD.
A fost specificat inițial în lucrarea din 1995 „Integrity primitives for secure information systems”. (Am găsit această informație prin acest link).
În special, specificația este conținută în acest document.
Vă atrag atenția la pagina 75 a documentului (la pagina 7 a pdf-ului).
Cele patru constante folosite în aceste operații nu sunt alese aleatoriu; ei
sunt partea întreagă a $2^{30}\sqrt{2}, 2^{30}\sqrt{3}, 2^{30}\sqrt[3]{2}, 2^{30}\sqrt[3]{3}$ respectiv. Cu toate acestea, nu există un motiv specific pentru această alegere.
Aceasta explică constantele din constante adăugate
parte din fișierul pe care l-ați legat --- nu sunt nimic din mâneca mea.
Din păcate, tabelul despre care întrebați nu este explicat în mod satisfăcător.
Autorii declară că reproduc o modificare a funcției de compresie a MD4 (inclusiv tabelul pe care l-ați observat), dar pur și simplu afirmă că includ modificări ale lui B. den Boer, pe care le citează ca fiind Comunicări personale (deci motivul lor special pentru modificare este necunoscut).
Din nefericire, nici alt material de pe cifră nu este iluminator.
Considera acest atac pe hash.
Autorii menționează (după cum este ușor de văzut) că indicii „selectării cuvântului mesaj” trebuie să fie în mod specific o permutare (aceasta a fost menționată și în specificația inițială), dar nu este clar De ce acele permutări particulare au fost alese.
Ultimul lucru pe care îl voi menționa este că uneori vă aflați într-o situație în care există multe opțiuni posibile ale unora structurat obiect (ca o permutare, deci nu poți spera că cifrele lui $\pi$ va fi suficient), și trebuie să alegeți unul.
O strategie pe care o puteți face (în loc să o scoateți din aer) este:
- încercați să „clasați” obiectele structurate în funcție de o metrică de eficiență și apoi
- alege „primul” (într-o ordine naturală) dintre obiectele „cele mai eficiente”.
Acest lucru este vag, așa că un exemplu anume poate fi util.
Proiectarea AES necesită aritmetică $\mathsf{GF}(2^8)$. Orice polinom ireductibil de grad 8 peste $\mathbb{F}_2$ definește o copie „diferită” (dar toate reciproc izomorfe) a $\mathsf{GF}(2^8)$.
Având în vedere că acesta este cazul, ce polinom alegeți în proiectarea AES?
Designerii AES justifică această alegere (și altele pe care le puteți găsi interesante). secțiunea 7 din propunerea lor.
Polinomul $m(x)$ ... pentru înmulțirea în $\mathsf{GF}(2^8)$ este primul din lista de polinoame ireductibile de gradul 8, dat în [LiNi86, p. 378].
Așa că fac apel la o ordine de la alți autori decât ei.
De asemenea, am văzut (și am crezut că am avut pentru AES în special) alegerea de a:
- colectează toate polinoamele ireductibile
- sortați-le după greutatea de hamming (metrica eficienței)
- dintre cele cu greutate minimă de hamming, alegeți-l pe primul lexicografic.
Desigur, acest lucru nu este, din păcate, util pentru masa dvs.