Perché non modificare leggermente un'histhake esistente per crearne di tuoi? [duplicare]

5

Ho letto questa interessante domanda su perché improvvisare la propria funzione hash con le funzioni hash esistenti è pessimo . Tuttavia, ciò si concentra in modo specifico sul "mixaggio" di hash. Cosa succede se, ad esempio, modifico i turni perpendicolari dell'hash MD5? Esempio:

Sposta i turni fin ora

s[ 0..15] := { 7, 12, 17, 22,  7, 12, 17, 22,  7, 12, 17, 22,  7, 12, 17, 22 }
s[16..31] := { 5,  9, 14, 20,  5,  9, 14, 20,  5,  9, 14, 20,  5,  9, 14, 20 }
s[32..47] := { 4, 11, 16, 23,  4, 11, 16, 23,  4, 11, 16, 23,  4, 11, 16, 23 }
s[48..63] := { 6, 10, 15, 21,  6, 10, 15, 21,  6, 10, 15, 21,  6, 10, 15, 21 }

I miei turni di turno leggermente aggiustati

s[ 0..15] := { 5, 14, 19, 22,  5, 14, 19, 22,  5, 14, 19, 22,  5, 14, 19, 22 }
s[16..31] := { 6, 12, 14, 21,  6, 12, 14, 21,  6, 12, 14, 21,  6, 12, 14, 21 }
s[32..47] := { 4, 11, 16, 23,  4, 11, 16, 23,  4, 11, 16, 23,  4, 11, 16, 23 }
s[48..63] := { 7,  9, 11, 17,  7,  9, 11, 17,  7,  9, 11, 17,  7,  9, 11, 17 }

Queste modifiche cambiano drasticamente l'esito della mia stessa "hash". Questo è solo un piccolo esempio da cambiare. Il mio ragionamento dietro questo è che temporaneamente impedisce gli attacchi Rainbow. Se ho degli utenti sciatti con password come thisisnopassword , pandabear & 12346 sarebbero leggermente più sicuri dopo che il mio database sarebbe stato violato perché non esistono tabelle Arcobaleno per l'hash "mio".

A proposito, ho scelto gli importi del turno per turno perché non sono riuscito a trovare una motivazione chiara sul perché sono stati scelti in modo specifico, vedi questa domanda.

    
posta Thomas W 12.10.2015 - 19:20
fonte

2 risposte

15

Cambiare ciecamente turni di turno ha un effetto indefinito sulla forza. Ad esempio, potresti avere una quantità simile di collisioni, potresti avere ordini di grandezza più quantità di collisioni, turni di turni definiti inizialmente con probabilità di collisioni note, turni di turno cambiati casualmente no.

Ascolta la gente qui sopra, usa la salatura, è specificatamente usata per servire al tuo scopo. Alterare il motore dell'auto che stai guidando è uno sport divertente con esiti fatali.

    
risposta data 12.10.2015 - 20:26
fonte
4

Se hai le conoscenze per essere in grado di testare in modo adeguato gli effetti delle tue modifiche sulla sicurezza, o in altro modo, del risultato, allora ovviamente dovresti andare avanti!

Il problema è che il vecchio detto "non rollare il tuo" con crypto è ben fondato perché sembra facile pensare a come potresti farlo tu stesso, ma se non siamo ben informati, testare la forza crittografica è complesso , se non di più, rispetto ai nuovi algoritmi.

Apporta le tue modifiche, pubblicale insieme alla spiegazione e, ove possibile, dimostrazione di una maggiore sicurezza, fai revisionare il tuo lavoro da esperti di Crypto e il gioco è fatto. Se non riesci a fare nessuno o tutti questi passaggi, lascialo a persone che passano la vita a dedicarsi a ciò che è giusto.

Intendiamoci - si potrebbe dire questo su molte cose nella vita:)

    
risposta data 12.10.2015 - 20:35
fonte

Leggi altre domande sui tag