punto di partenza in crittografia e crittografia [chiuso]

14

Recentemente sto crescendo la passione per la sicurezza / crittografia / crittografia. Seguo alcune persone famose in questo dominio su twitter e leggo articoli sul web. Tuttavia, questo argomento sembra profondo e ogni volta che leggo qualcosa di nuovo, ottengo un sovraccarico di informazioni.

Credo che la ragione di ciò sia che non ho le mie basi corrette in questo. Qual è il modo migliore per approfondire questo? C'è qualche libro per principianti su cui impostare un piede? Gradirei qualsiasi punto di partenza che mi guidasse nella giusta direzione e sceglierei le cose da lì.

    
posta tony9099 07.11.2014 - 07:58
fonte

3 risposte

19

Un possibile percorso nella crittografia è attraverso implementazione . Prendi alcune funzioni standard o set di funzioni, ad es. la famiglia di funzioni hash SHA . Dallo standard, produci il tuo codice; lo standard include alcuni vettori di test che ti aiuteranno a verificare che la tua implementazione sia corretta. Quindi confronta il tuo codice con le librerie esistenti, ad es. OpenSSL , Crypto ++ e sphlib ; confronta il tuo codice e scopri cosa potresti fare per rendere il tuo codice più veloce e / o più fluido. Sebbene ottenere un'immediata implementazione della funzione hash non sia estremamente utile di per sé (poiché le implementazioni veloci sono già disponibili gratuitamente), l'esercizio ti garantirà una conoscenza precisa e approfondita di come funzionano queste funzioni, e che sarà un strong risorsa per comprendere i documenti di ricerca su di loro.

Le funzioni di hash sono un buon punto di partenza poiché tendono ad essere specificate con precisione e non usano alcuna chiave. Dopo aver imparato alcune funzioni di hash, prova HMAC . Quindi procedere alla crittografia simmetrica (in particolare RC4 , DES e 3DES e AES ). A quel punto avrai alcune nozioni sul funzionamento interno di qualche cifrario simmetrico e, forse più importante, saprai come leggere e capire le specifiche dell'algoritmo.

Ulteriori passi saranno quelli di dilettarsi in crypto asimmetrico, in pratica RSA . La crittografia asimmetrica richiede un po 'di matematica; potresti voler dare un'occhiata al Manuale di crittografia applicata , che è liberamente disponibile ed è un buon libro di riferimento (questo libro non ha alcun rapporto con la "Crittografia applicata" di Bruce Schneier - quest'ultimo è un libro introduttivo spesso citato, ma molto meno utile come riferimento). Se si desidera implementare la propria RSA, l'uso di un linguaggio di programmazione o di una libreria che fornisce aritmetica di intere dimensioni renderà le cose più semplici (ad es. Java con java.math.BigInteger , C # /. NET 4.0 con System.Numerics.BigInteger o una libreria esterna come GMP ). In alternativa, vai avanti e scrivi il tuo codice intero più grande (di nuovo, un esercizio sano); per questo, ti consigliamo di leggere il capitolo 14 del Manuale .

Dopo aver eseguito le funzioni hash, HMAC, crittografia simmetrica e RSA, puoi procedere a scrivere la tua libreria SSL / TLS, iniziando con TLS 1.0 . La scrittura di un client TLS in grado di connettersi e interagire con il server TLS esistente ti fornirà una conoscenza approfondita dell'handshake SSL / TLS e sarai in grado di comprendere tutte le ricerche sugli attacchi noti su SSL e su come sono risolti (ad es. BEST, Barboncino,...). Utilizza questa risposta come guida di lettura su TLS.

L'implementazione non è l'unico modo per imparare la crittografia, ma funziona.

    
risposta data 07.11.2014 - 11:19
fonte
5

Dipende da cosa esattamente stai cercando.

Per un'introduzione generale alla sicurezza, inclusa la crittografia, sto attualmente seguendo il corso online gratuito link , che consiglio vivamente. È organizzato come sessioni e il prossimo inizia a gennaio.

Per una discussione a livello principiante sulla crittografia e la crittoanalisi in particolare, il Code Book di Simon Singh è una buona introduzione alla storia della crittografia e alle sfide del campo: link

Per un tour esperto sull'argomento, che ti darà anche materiale di riferimento se tenti di implementare o utilizzare algoritmi crittografici, ho sentito cose molto positive sui libri di Bruce Schneier, come Applied Cryptography, ma non ne possiedo uno personalmente .

EDIT: Apparentemente, Applied Cryptography è un vecchio e ha dimostrato di avere un certo numero di difetti, quindi è meglio usare uno dei suoi sostituti più recenti come Cryptography Engineering ( link ). Grazie per l'avviso, Xander!

    
risposta data 07.11.2014 - 09:02
fonte
3

Raccomando di leggere "Cryptography - Un'introduzione molto breve" di Fred Piper. Un piccolo libro conciso con contenuti eccellenti per comprendere le basi della crittografia.

    
risposta data 07.11.2014 - 10:21
fonte

Leggi altre domande sui tag