- Messaggio, cifrario, chiave
- Emittente: testo in chiaro -> cifratura -> testo cifrato
- Ricevente: testo cifrato -> decifratura -> testo in chiaro
- Crittoanalisi: decrittazione
- Crittologia: crittografia + crittoanalisi
RISORSE
- Simon Singh – Codici e segreti – www.simonsingh.net
- Andrea Sgarro – Crittografia
- Andrea Sgarro – Codici segreti
- Tesina: CRITTOLOGIA
Algoritmi
Storici
- Per sostituzione
- monoalfabetici (Cifrario di Cesare)
- polialfabetici
- Per trasposizione, poligrafici
Moderni
- Crittografia simmetrica (Chiave segreta, DES, AES)
- Crittografia asimmetrica (Chiave pubblica, chiave segreta, RSA, DSA)
Riepilogo
Tecnica di crittografia | Emittente | Messaggio trasmesso | Ricevente |
Nessuna | m | m | m |
Messaggio cifrato | f(m) | c | f-1(c) |
Simmetrica | f(m, k) | c | f-1(c, k) |
Asimmetrica | f(m, pk) | c | f-1(c, sk) |
Crittografia simmetrica
Cronologia
- 1972
1974: Richieste pubbliche di uno standard di cifratura - 1975: DES, pubblicazione
- 1977: FIPS PUB 46, standard
- 1988: FIPS 46-1
- 1993: FIPS 46-2
- 1999: FIPS 46-3, si raccomanda il Triple DES (TDES, 2TDES)
- 2001: FIPS 197: AES (Advanced Encryption Standard), selezionato con competizione internazionale
- 2005: Ritiro del FIPS 46-3
DES
- Data Encryption Standard
- il nome originale dell’algoritmo ideato da IBM era DEA (Data Encryption Algorithm) e derivava dal progetto Lucifer
- il blocco in chiaro è di 64 bit
- il testo cifrato è della stessa lunghezza
- la chiave ha 56 bit (IBM intendeva utilizzare una chiave a 128 bit ma l’NSA ha spinto per 64 bit per poi giungere a 56 bit)
- 8 parole di 8 bit, ogni parola è di 7 bit e un bit di parità
- 16 fasi identiche di
- espansione
- miscelazione con la chiave
- sostituzione
- permutazione
- Altri sistemi simili: RC5, Blowfish, IDEA, NewDES, SAFER, CAST5 e FEAL
- Evoluzioni: DES-X, GDES
AES
- Advanced Encryption Standard
- il blocco in chiaro è di 128 bit
- la chiave può essere di 128, 192 o 256
- l’implentazione software è più veloce del DES
- proposto da due crittografi belgi col nome Rijndael, deriva da Square e SHARK
- primo classificato su Serpent, Twofish, RS6, MARS, …
RISORSE ONLINE
Crittografia asimmetrica
Chiave pubblica e chiave privata
- X genera una chiave pubblica PK e una chiave privata SK
- X rende nota la chiave pubblica a chiunque voglia comunicare con lui
- Y scrive il messaggio m, lo cifra tramite la chiave pubblica di X e lo spedisce a X
- X riceve il messaggio cifrato c, lo decifra tramite la chiave privata e ottiene m
Osserva
- Se Z conosce la chiave pubblica PK e intercetta c non può ottenere m perché non conosce la chiave privata SK.
- Se Z vuole scoprire la chiave privata SK deve risolvere un problema numerico noto ma difficilissimo
RSA
- Rivest Shamir Adleman
- il nome è l’acronimo dei cognomi di tre ricercatori del MIT
- Ronald Rivest
- Adi Shamir
- Leonard Adleman
- presentato nel 1978
- brevettato nel 1983
- scaduto nel 2000
- per forzarlo è necessario fattorizzare un numero enorme come prodotto di due numeri primi
- oggi viene considerato sicuro (non fattorizzabile) un numero che in base 10 ha almeno 300 cifre, quindi una chiave di 1024 bit e oltre
Generazione delle chiavi
Scelgo due numeri primi a caso (grandi a piacere…)
- p = 3
- q = 11
Calcolo
- (p-1)(q-1)
2*10 = 20 - n = p*q
3*11 = 33
Scelgo
- e = 7 tale che
- e < n
- coprimo con (p-1)(q-1)
- d = 3 tale che
- e*d mod (p-1)(q-1) = 1
3*7 mod 20 = 21 mod 20 = 1
- e*d mod (p-1)(q-1) = 1
Ottengo
- PK = (n,e) = (33, 7), chiave pubblica
- SK = (n,d) = (33, 3), chiave privata
Cifratura | Decifratura |
Sia m = 15 il messaggio in chiaro.
Calcolo: c = me (mod n)
e lo spedisco |
Ricevo il messaggio cifrato c = 27.
Calcolo: m = cd (mod n)
e ottengo il messaggio in chiaro! |
DSA
- Digital Signature Algorithm
- Un’alternativa alla difficoltà dell’operazione di fattorizzazione
- Utilizza il logaritmo discreto