Crittografia con Python - Imparando.net...Prof. Alessandro Bugatti DES - La Lotteria Cinese Idea:...

Post on 11-Jul-2020

1 views 0 download

Transcript of Crittografia con Python - Imparando.net...Prof. Alessandro Bugatti DES - La Lotteria Cinese Idea:...

Prof. Alessandro Bugatti

Crittografia con Python

Corso introduttivoMarzo 2015

Con materiale adattato dal libro “Hacking Secret Cypher With Python” di Al Sweigart (http://inventwithpython.com/hacking/index.html)

Prof. Alessandro Bugatti

Cifrari a trasposizione

• A differenza di quelli a sostituzione non trasformano le lettere ma le riordinano

M E G A B U C K

7 4 5 1 2 8 3 6

p l e a s e t r Testo in chiaro pleasetransferonemilliondollarsto myswissbankaccountsixtwotwo Testo cifrato AFLLSKSOSELAWAIATOOSSCTCLNMOMANT ESILYNTWRNNTSOWDPAEDOBUOERIRICXB

a n s f e r o n

e m i l l i o n

d o l l a r s t

o m y s w i s s

b a n k a c c o

u n t s i x t w

o t w o a b c d

Prof. Alessandro Bugatti

Cifrari a trasposizione

• Per verificare di essere in presenza di un cifrario a trasposizione basta verificare la statistica delle lettere che non viene alterata

• Bisogna poi capire su quante colonne è stata fatta la trasposizione: si fanno delle supposizioni su parole probabili

• Si vede quale delle k(k-1) colonne danno la migliore corrispondenza dei digrammi

Prof. Alessandro Bugatti

Esempio

• Supponiamo di sapere che compaia la parola milliondollars

• Supponendo varie lunghezze si trova quella corrispondente all’apparizione delle varie parti della parola avvolta su se stessa (con lunghezza 8 si troverebbero MO, IL, LL, LA, IR e OS)

• Si procede permutando le colonne e analizzando la frequenza dei digrammi

Prof. Alessandro Bugatti

Algoritmi moderni

● Gli algoritmi crittografici moderni si dividono in due grandi famiglie– Algoritmi a chiave segreta o simmetrici: la chiave è

segreta e l’algoritmo è composto da una complicata serie di sostituzioni e trasposizioni

– Algoritmi a chiave pubblica o asimmetrici: le chiavi sono due, una pubblica e una privata e si basano sull’aritmetica modulare o sui logaritmi discreti

Prof. Alessandro Bugatti

Algoritmi a chiave segreta

● Utilizzo di un algoritmo molto complesso tramite concatenazione di blocchi di trasposizione e sostituzione

S-box

De

co

de

r: 3

to

8

En

co

de

r: 8

to

3

Blocco di sostituzione

P-box

Blocco di trasposizione

Prof. Alessandro Bugatti

Algortimi a chiave segreta

● Concatenazione di più blocchi per la creazione di un cifrario

S 1

S 2

P 1 P 4P 3P 2

S 3

S 4

S 5

S 6

S 7

S 8

Cifrario di produzione

(c)

S 9

S 10

S 11

S 12

Prof. Alessandro Bugatti

DES - Data Encryption Standard

● Sviluppato da IBM nel 1977 e adottato come standard ufficiale dal governo statunitense per le informazioni non classificate

● Blocchi di 64 bit di testo in chiaro generano 64 bit di testo cifrato

● L’algoritmo è parametrizzato da una chiave a 56 bit.

Prof. Alessandro Bugatti

DES - Data Encryption Standard

(b)(a)

Initial transposition

Iteration 16

L f(R , K )i-1 i-1 i

Ri-1Li-164 bit plaintext

64 bit ciphertext 32 bits Li

32 bits Ri

Iteration 2

Iteration 1

56 b

it ke

y

32 bit swap

Inverse transposition

Prof. Alessandro Bugatti

DES: problemi e varianti

● Al di là della sua complessità il DES è un cifrario a sostituzione monoalfabetico con caratteri di lunghezza 64 bit

● Anche se decoficare il codice può essere difficile, esistono situazioni in cui è molto facile cambiare il testo codificato per ottenerne una versione alterata ma valida

Prof. Alessandro Bugatti

DES - Problemi e varianti

Name Position Bonus

16 8 8Bytes

D a v i s , B o b b i e J a n i t o r $ 5

C o l l i n s , K i m M a n a g e r $ 1 0 0 , 0 0 0

B l a c k , R o b i n B o s s $ 5 0 0 , 0 0 0

A d a m s , L e s l i e C l e r k $ 1 0

Prof. Alessandro Bugatti

DES: problemi e varianti

● Per prevenire questo tipo di attacchi si concatenano i blocchi del DES in modo che eventuali scambi portino ad ottenere messaggi non validi

● Modalità:– concatenazione a blocchi– feedback– output feedback

Prof. Alessandro Bugatti

DES - Concatenazione a blocchi

(a) (b)

#

E

IV

Key

Key

IV

P0

C0

#

E

P1

C1

#

E

P2

C2

#

E

P3

C3

D

#

C0

P0

D

#

C1

P1

D

#

C2

P2

D

#

Decryption box

Encryption box

Exclusive OR

C3

P3

Prof. Alessandro Bugatti

DES - Rottura del codice

● Con chiavi lunghe 56 bit 256 chiavi (inizialmente chiave a 112 bit)

● Esistono progetti per macchine in grado di rompere DES in meno di quattro ore, però molto costose

● Altra idea: la Lotteria Cinese

Prof. Alessandro Bugatti

DES - La Lotteria Cinese● Idea:

– Fornire ogni radio/televisione di un processore DES in grado di effettuare 1.000.000 codifiche/s ognuno con uno spazio delle chiavi differente

– Mandare in broadcast la coppia testo in chiaro/ testo cifrato

– Con 1.200.000.000 apparecchi in 60 s verrebbe esplorato tutto lo spazio delle chiavi

– Messaggio di vincita della lotteria

Prof. Alessandro Bugatti

DES – Attacchi reali

● EFF DES Cracker: costo circa 250000 dollari (1998), attacco a forza bruta con successo in circa 2 giorni.

● COPACABANA machine: costo circa 10000 dollari (2006) utilizzando hardware commerciale, attacco a forza bruta con successo in circa una settimana

Prof. Alessandro Bugatti

DES: miglioramenti

● Applicandolo due volte con due chiavi diverse si ottengono 2112 chiavi (circa 5 x 1033)

● Impossibilità di esplorare tutto lo spazio delle chiavi

● In realtà esiste un attacco (meet-in-the-middle) che riduce lo spazio delle chiavi a 257

● Stessa difficoltà del DES semplice

Prof. Alessandro Bugatti

Attacco Meet-in-the-middle

● Conoscendo un testo in chiaro P e il testo cifrato corrispondente C

C=EK1(EK2(P))● Trovo tutte le codifiche di P usando tutte le chiavi

possibili (256)● Trovo tutte le decodifiche di C usando tutte le

chiavi possibili (256)● Cerco una corrispondenza poiché

DK1(C)= EK2(P)

Prof. Alessandro Bugatti

DES - Codifica tripla

K1

E

K2

D

K1

EP C

K1

D

K2

E

Codifica Decodifica

K1

DC P

● EDE al posto di EEE per motivi di retrocompatibilità (basta porre K1=K2)

● Non si conoscono metodi per forzarlo

Prof. Alessandro Bugatti

AES – Advanced Encryption Standard

● Sostituto del DES adottato dal governo statunitense per informazioni classificate Top Secret

● Chiave a 128, 192 o 256 bit● Blocchi da 128 bit

Prof. Alessandro Bugatti

Un'anticipazione golosa

● Due volontari:● Prendete i numeri 753 e 413● Scegliete un numero a caso x (e ricordatevelo)

minore di 413● Elevate 753 alla x e fate modulo 413● Dite a voce alta il numero ottenuto, chiamiamolo y● Prendete y e elevatelo a x modulo 413