05/07/10 5:52
HeDo
Postato originariamente da a_butta:
Ciao a tutti.
Sono intenzionato ad avvicinarmi allo studio di algoritmi di criptazione. Da qualche giorno ho un po' visto alcune codifiche come md5 e sha1 ma tutto a livello molto elementare, senza indagare nell'algoritmo vero e proprio.
Quello che voglio chiedervi è un consiglio da dove iniziare e su cosa a studiare questi algoritmi, se mi servono altri tipi di base o basta una discreta (ma non potente) conoscenza della matematica (quella di 4a scientifico pni).
Mi chiedevo: ci sono dei libri che trattano lo studio di algoritmi, come si svolgono, ma anche dalle basi (cioè cosa sono e come funzionano)... insomma un po' di tutto questo.
Grazie mille
prima di compare un libro (che cmq consiglio), leggi approfonditamente gli articoli della wiki in inglese, sono ben fatti:
en.wikipedia.org/wiki/…
en.wikipedia.org/wiki/…
en.wikipedia.org/wiki/…
en.wikipedia.org/wiki/…
Ultima modifica effettuata da HeDo 05/07/10 5:53
aaa
05/07/10 9:59
netarrow
E' evidente che se vuoi studiare "gli algoritmi di criptazione" devi studiare anche "gli algoritmi" in generale.
Ti consiglio di leggere "Introduzione agli algoritmi e strutture dati", fra gli autori c'è anche un certo Rivest, co-creatore del RSA.
aaa
06/07/10 18:08
a_butta
Postato originariamente da HeDo:
molto semplicisticamente mi verrebbe da dire
nbit = lunghezzatesto * 8
considerando che un char è 1 byte che è 8 bit
è vero! Però a me è venuto un altro dubbio (molto probabilmente sto facendo un'enorme confusione): in wikipedia c'è scritto:
MD5 processes a variable-length message into a fixed-length output of 128 bits.
l'output md5() di una qualsiasi stringa produce una sequenza di 32 caratteri, che moltiplicati per 8 danno 256bit. Ho ragionato: presuppongo che wikipedia non dica boiate, così ho pensato che la stringa che dà in output l'md5 è esadecimale, e so inoltre che una cifra esadecimale è espressa in 4 bit (F = 1111). Dunque qui si tratta non tanto di stringa, quanto proprio un numero esadecimale che covertito in binario dia proprio 32*4, cioè 128 bit.
Allora non riesco a capire: quando io passo alla funzione di criptazione una stringa, metti md5('PIPPO') io devo considerarla nella sua scrittura esadecimale, oppure devo considerare ogni carattere normalmente come un pacco di 8bit?
Inoltre tu mi hai detto 1 carattere = 8 bit. Tuttavia tutte le funzioni bitwise che utilizza php, a quanto ho capito (posso sbagliarmi e chiedo scusa per l'ignoranza) lavorano codificando la stringa in ASCII, ma l'ascii prevede una scrittura a 7 bit per ogni carattere. Mi manca qualcosa?
Chiedo scusa se la mia domanda può essere considerata banale ma sono veramente proprio all'inizio con queste cose, quindi spero possiate perdonare la mia ignoranza...
Grazie mille dell'aiuto!
Ultima modifica effettuata da a_butta 06/07/10 18:13
aaa