Metodi di analisi della cripta per rompere o trovare debolezza in un algoritmo di crittografia? [chiuso]

2

In che modo i cryptanalisti lavorano su un algoritmo relativo ai fattori di diffusione / confusione per trovare punti deboli in un algoritmo, ad esempio come i cryptanalisti potrebbero trovare debolezza sul DES? ci sono metodi o software per questo?

O se una persona progetta una crittografia simmetrica, come può testarla da punti di debolezza e probabilità di ottenere informazioni sui dati principali?

Ad esempio, dopo aver progettato un algoritmo di crittografia, lui / lei crittografa un testo con quell'algoritmo e ora lui / lei ha testo cifrato, come può testarlo che è sufficiente disorganizzazione?

    
posta Ali 06.05.2015 - 12:25
fonte

2 risposte

8

Per la crittanalisi, si applica il solito metodo a tre punti:

  1. annota il problema.
  2. Pensa davvero.
  3. Scrivi la risposta.

E questo è tutto ciò che può essere detto genericamente.

La metodologia di un crittanalista è quasi la stessa di quella dei ricercatori di qualsiasi altra scienza. Il nucleo del lavoro quotidiano di un crittografo è leggere, leggere, leggere tutti i documenti. Accumula conoscenze e idee. Quindi , quando il crittografo vede la progettazione di un algoritmo crittografico, il suo subconscio può riconoscere il modello, manifestandosi nel cervello del crittografo come qualcosa del tipo: "mmh, questo sembra il tipo di struttura che Schrupkovski stava rompendo il suo articolo presentato a NoWhereCrypt'93, tranne che questo è in modalità bitslice con un FFT extra ". In definitiva, la ricerca consiste nel mettere insieme idee e concetti provenienti da molte fonti distinte.

La sicurezza di un algoritmo crittografico non può essere testata, né tanto meno dimostrata (anche se si possono avere delle belle prove di riduzione, che sfortunatamente coprono solo una parte del problema, per definizione). Ciò che può essere dimostrato è insecurity : se trovi un attacco, allora l'algoritmo è rotto. Per assicurarsi che un algoritmo sia probabilmente sicuro, lascia che alcuni crittografi provino a romperlo; molti crittografi per un sacco di tempo. Se nessuno può romperlo, allora l'algoritmo potrebbe andare bene. Questa è l'intera idea del concorso AES , ad esempio.

Il trucco difficile è attirare i crittografi. Devi fare diverse cose:

  1. Devi fare i compiti. L'algoritmo deve essere descritto completamente, in modo matematico leggibile ( not come codice in qualsiasi lingua).

  2. Dovresti anche spiegare perché alcune classi generiche di attacchi non si applicano al tuo progetto (es. crittanalisi differenziale ).

  3. L'algoritmo deve essere interessante, il che significa in sostanza che deve essere efficiente più delle alternative esistenti. Per la crittografia simmetrica, ciò significa che l'algoritmo deve essere più veloce di AES, o veloce come AES ma con implementazioni a tempo costante, o suscettibile di implementazioni estremamente compatte, o qualche altro vantaggio simile. Nessuno investirà tempo nel tentativo di rompere un algoritmo che non verrebbe comunque utilizzato poiché è troppo lento o troppo grande.

  4. Brevetti. Non applicare per un brevetto. La maggior parte dei crittografi fugge quando vedono un brevetto, perché non comprendono appieno le conseguenze del lavorare su algoritmi brevettati (sono specialisti della crittografia, non della legge sui brevetti). Brevettare un algoritmo crittografico è, in pratica, un ottimo modo per garantire che l'algoritmo non riceva il controllo esterno e non verrà utilizzato.

risposta data 06.05.2015 - 17:49
fonte
0

Suppongo che la tua domanda sia:

In che modo le persone determinano se un sistema crittografico è debole?

Bene, ci sono due tipi di persone che hanno bisogno di farlo come hai sottolineato: quelli che hanno creato il sistema e quelli che vogliono rompere il sistema.

Se il processo è simmetrico, tutto ciò di cui abbiamo bisogno è che il processo non sia lineare. Questo è il motivo per cui AES ha vinto - è lungo ed esteso, e non è affatto lineare (il significato lineare non può essere mappato da matrici).

Ogni sistema può essere rotto in qualche modo, e le persone hanno bisogno di determinare quanto tempo richiede quel processo. Se il processo è simmetrico, sappiamo come crearlo - ci vuole solo un po '.

Se i computer diventano troppo veloci, allora dobbiamo passare a un nuovo cryptosystem. Questo è il motivo per cui abbiamo lasciato il DES: siamo sempre nuovi sarebbe abbastanza debole per il calcolo veloce e quando i computer più veloci sono usciti, abbiamo dovuto passare.

Quindi abbiamo cercato di trovare un criptosistema che impiegasse molto più tempo per interrompere.

Quelli che fanno il criptosistema devono sapere come romperlo in ogni modo possibile.

Per crittosistemi come RSA ed ECC, potrebbe essere abbastanza difficile sapere come decifrarlo. La sicurezza di questi è basata su ciò che viene chiamato: NP-hard problems.

Questi sono problemi che sono davvero difficili da risolvere e i computer non fanno lo squat per aiutarli a decifrarli.

Sì, i computer possono scomporre i numeri più velocemente degli umani, ma gli algoritmi necessari sono MOLTO lenti.

Ci sono molti problemi NP-difficili là fuori però.

Puoi prendere uno di questi e creare un crittosistema, e probabilmente sarà sicuro! Ecco come hanno fatto ECC - hanno scelto un problema NP-random casuale, hanno scoperto che tutti i calcoli erano veloci e facili e basta!

    
risposta data 06.05.2015 - 19:34
fonte

Leggi altre domande sui tag