La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Crittografia e numeri primi

Presentazioni simili


Presentazione sul tema: "Crittografia e numeri primi"— Transcript della presentazione:

1 Crittografia e numeri primi
Piano Lauree Scientifiche Crittografia e numeri primi III incontro lunedì 22 novembre 2010

2 Le dispense degli incontri “Crittografia e numeri primi” sono sul sito
matheteresa.wikidot.com

3 Scaletta dell’incontro (per gli insegnanti)
Analisi delle frequenze Algoritmo euclideo Identità di Bezout Cifrario di Vigenére

4 Cifrare con l’addizione
Un messaggio può essere cifrato utilizzando una permutazione dell’alfabeto (e di eventuali altri caratteri). Il Codice Cesare cifra utilizzando una cifratura per traslazione del tipo Qualsiasi valore dello spostamento 0 < [a] < n va bene. Questa cifratura è molto semplice da decifrare poiché è sufficiente determinare lo spostamento di una lettera per ottenere di conseguenza tutti gli altri.

5 Cifrare con la moltiplicazione
Un’altra permutazione dell’alfabeto può essere ottenuta utilizzando la funzione moltiplicativa La funzione f è però una funzione di cifratura se e solo se [a] è invertibile in Zn e… [a] è invertibile in Zn se e solo se MCD(a, n) = 1 La funzione di decifratura è:

6 [m]  [m’] = [a]  [m] + [b]
Cifrario affine Un cifrario affine è un’applicazione Ck che contenga una moltiplicazione e una traslazione (in modo che lo [0] non abbia come immagine sé stesso). La nostra chiave sarà una coppia di numeri k = ([a], [b]) e la funzione cifrante sarà f : Zn  Zn [m]  [m’] = [a]  [m] + [b] La funzione Ck va bene se e solo se è biunivoca, cioè se e solo se è invertibile. Si mostra facilmente che ciò accade esattamente quando [a] invertibile.

7 Come determinare la chiave di decifratura?
m’ = a  m + b [m’] = [a]  [m] + [b]

8 Determina la chiave di decifratura relativa alla
chiave di cifratura Ck = ([5], [4])

9 Determina la chiave di decifratura relativa alla
chiave di cifratura Ck = ([11], [6])

10 Analisi delle frequenze
Se si associa un ordine anche all’elenco dei caratteri del nostro alfabeto, la funzione di cifratura Ck produce una permutazione dell’ordine con cui compaiono i caratteri. a b c d e f g h i l m n o p q r s t u v z H D N B G M Q A T R L V C P F O U Z E S I

11 Analisi delle frequenze
Quante sono le possibili permutazioni del nostro alfabeto di 21 lettere? A partire dalla prima lettera (A) possiamo pensare di posizionarla In 21 posizioni, la seconda in 20 e così via….. a b c d e f g h i l m n o p q r s t u v z A

12 Analisi delle frequenze
Quante sono le possibili permutazioni del nostro alfabeto di 21 lettere? A partire dalla prima lettera (A) possiamo pensare di posizionarla In 21 posizioni, la seconda in 20 e così via….. Pertanto, in totale abbiamo 21•20•19•18•……•2•1 permutazioni possibili del nostro alfabeto 21! = ~ 5•1019 possibili riordinamenti del nostro alfabeto Con le funzioni affini abbiamo 20*12 possibili permutazioni

13 Analisi delle frequenze
Tutti questi 21! = possibili riordinamenti del nostro alfabeto si portano però dietro la stessa informazione: la distribuzione di frequenze dei caratteri è costante

14 Analisi delle frequenze
Testo da cifrare: Questa mattina un battaglione del nostro esercito ha perlustrato le coltivazioni abbandonate alle pendici del monte. Possiamo calcolare il numero di volte in cui ciascun carattere è stato utilizzato nel testo [totale 100 caratteri]: a b c d e f g h i l m n o p q r s t u v z 12 3 4 1 8 2 9

15 Analisi delle frequenze
Testo da cifrare: Questa mattina un battaglione del nostro esercito ha perlustrato le coltivazioni abbandonate alle pendici del monte.

16 Analisi delle frequenze
Aggiungiamo altro testo, altri 100 caratteri siamo quindi a 200: Questa mattina un battaglione del nostro esercito ha perlustrato le coltivazioni abbandonate alle pendici del monte. Gli abitanti hanno bruciato tutte le colture in modo da non lasciare nulla al nemico che avanzava. Domani sera partiremo.

17 Analisi delle frequenze
Confrontiamo la nostra distribuzione di frequenze con quella ottenuta considerando il primo capitolo dei promessi sposi

18 Analisi delle frequenze
Possiamo confrontare la distribuzione di frequenze della lingua italiana Nei secoli, per esempio confrontando i promessi sposi con La Divina Commedia

19 Analisi delle frequenze
Possiamo confrontare anche le distribuzioni di frequenze nelle varie Lingue: inglese, francese, italiano.

20 Analisi delle frequenze
Tutti i messaggi cifrati con un sistema monoalfabetico si portano dietro una informazione che può essere utilizzata per decriptare. Conoscendo la distribuzione di frequenze teorica possiamo tentare qualche accoppiamento per ridurre il numero di possibili permutazioni. a b c d e f g h i l m n o p q r s t u v z 10,4% 1,1% 4,6% 3,9% 12,3% 0,9% 2,0% 1,2% 10,0% 5,7% 2,6% 7,6% 9,6% 2,9% 0,7% 6,6% 5,4% 6,1% 3,5% 2,2%

21 Analisi delle frequenze
Testo cifrato: MQAOPT HIPPA FT FQHT LEAHT EGLAZEOVA QH TPPTVVI ZE OINLNAOT. ZIGTHE OVAHZANAGI T RTFFA. A B C D E F G H I L M N O P Q R S T U V Z frequenze nel messaggio cifrato 14% 0% 7% 6% 4% 8% 1% possibili accoppiamenti e a i distribuz. Teorica delle frequenze 10,4% 1,1% 4,6% 3,9% 12,3% 0,9% 2,0% 1,2% 10,0% 5,7% 2,6% 7,6% 9,6% 2,9% 0,7% 6,6% 5,4% 6,1% 3,5% 2,2%

22 Analisi delle frequenze
B C D E F G H I L M N O P Q R S T U V Z frequenze nel messaggio cifrato 14% 0% 7% 6% 4% 8% 1% possibili accoppiamenti e a i distribuz. Teorica delle frequenze 10,4% 1,1% 4,6% 3,9% 12,3% 0,9% 2,0% 1,2% 10,0% 5,7% 2,6% 7,6% 9,6% 2,9% 0,7% 6,6% 5,4% 6,1% 3,5% 2,2% Possibile decifrazione del testo cifrato: MQeOPa HIPPe Fa FQHa LEeHa EGLeZEOVe QH aPPaVVI ZE OINLNeOa. ZIGaHE OVeHZeNeGI a RaFFe.

23 Analisi delle frequenze
Possibile decifrazione del testo cifrato: MQeOPa HIPPe Fa FQHa LEeHa EGLeZEOVe QH aPPaVVI ZE OINLNeOa. ZIGaHE OVeHZeNeGI a RaFFe. Per la decifrazione completa ci possiamo anche aiutare osservando che ci sono alcuni caratteri ripetuti che fanno pensare alle doppie: Ci sono nel testo due gruppi di PP: proviamo a sostituire la lettera T: Possibile decifrazione del testo cifrato: MQeOta HItte Fa FQHa LEeHa EGLeZEOVe QH attaVVI ZE OINLNeOa. ZIGaHE OVeHZeNeGI a RaFFe. Allora forse VV può essere cc…..

24 Analisi delle frequenze
…e la I può essere una o.. Possibile decifrazione del testo cifrato: MQeOta Hotte Fa FQHa LEeHa EGLeZEOce QH attacco ZE OoNLNeOa. ZoGaHE OceHZeNeGI a RaFFe.

25 Analisi delle frequenze
Come possiamo bloccare l’analisi delle frequenze? Non usando un codice monoalfabetico, modificando cioè la funzione con la posizione (cambiando per esempio la chiave) Cifrando i caratteri più frequenti con caratteri diversi (Leon Battista Alberti nel De Cifris) Cifrando non i caratteri singoli, ma a gruppi di due o tre lettere consecutive. In questo caso il numero di “caratteri” utilizzati aumenta notevolmente . Lavorando per esempio con gruppi di due lettere: aa ab ac ad… ba bb bc bd…. ….. zu zv zz AA AB AC AD… BA BB BC BD…. ….. ZU ZV ZZ

26 Testo da cifrare: Questa mattina un battaglione del nostro esercito ha perlustrato le coltivazioni abbandonate alle pendici del monte. Posso per esempio eliminare gli spazi Questamattinaunbattaglionedelnostroesercitohaperlustrato lecoltivazioniabbandonateallependicidelmonte. e suddividere poi il messaggio in tanti digrammi (cioè blocchi di due lettere): Qu es ta ma tt in au nb at ta gl io ne de ln os tr oe se rc it oh ap er lu st ra to le co lt iv az io ni ab ba nd on at ea ll ep en di ci de lm on te. Ogni digramma viene trattato come un unico carattere e, volendolo poi trattare con una funzione matematica, ogni digramma corrisponde a un numero.

27 Ci possiamo chiedere quanti sono i digrammi che andremo ad utilizzare.
b c d e f g h i l m n o p q r s t u v z cb eg ge qu st Osservazione: possiamo costruire il prodotto cartesiano Z21×Z21 e determinare il numero di “caratteri” utilizzati.

28 Associando le lettere a gruppi di due lavoriamo
con 21×21=441 caratteri. Quindi in questo caso l’insieme diventa Z441 Se invece raggruppassimo i caratteri a gruppi di tre o quattro, ecc.. il numero degli elementi dell’insieme su cui viene applicata la funzione di cifratura aumenterebbe notevolmente: Trigrammi (gruppi di tre lettere): Z21×21×21=Z9261 gruppi di quattro lettere: Z21×21×21×21=Z194481

29 Supponiamo di associare le lettere del nostro messaggio a gruppi
come possiamo dare un valore numerico a ciascun digramma? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 a b c d e f g h i j k l m n o p q r s t u v w x y z Esempio: digramma gl viene tradotto nel numero 6×21+11=137 Esempio: trigramma ndo viene tradotto nel numero 13×212 +3×21+14=5810

30 Analisi delle frequenze
Lavorando con i digrammi si ottiene una distribuzione di frequenze, ma molto meno utilizzabile. In figura otteniamo la distribuzione dei digrammi in lingua inglese:

31 Bloccare l’analisi delle frequenze si traduce in
insiemi più numerosi. I numeri utilizzati diventano più grandi e potrebbe non essere più così semplice calcolare il MCD(a,n) e determinare l’inverso di [a] per decifrare.

32 Proviamo a determinare il MCD (1633 , 3763)
Si ha: 1633 = 23  71 3763 = 71  53 MCD (1633, 3763) = 71

33 Definizione Dati due numeri interi a e b, il loro Massimo Comun Divisore è un intero positivo d tale che: d divide a e d divide b 2. se d’ divide sia a che b, allora d’ divide d

34 Algoritmo euclideo per il calcolo del MCD
(presente negli Elementi di Euclide, permette il calcolo del MCD tra due numeri senza ricorrere alla fattorizzazione) MCD (44880, 5292)

35 a = b * quoziente + resto 44880 = 5292 * 8 + 2544 a = b * q1 + r1 5292 = 2544 * 2 + 204 b = r1 * q2 + r2 2544 = 204 * 12 + 96 r1 = r2 * q3 + r3 204 = 96 * 2 + 12 r2 = r3 * q4 + r4 96 = 12 * 8 + MCD (44880, 5292) = 12

36 MCD (1547, 560) = MCD (3522, 321) =

37

38

39 1547 = 560 * + = * + = * + = * + = * + MCD (1547, 560) = a = b *
quoziente + resto 1547 = 560 * + = * + = * + = * + = * + MCD (1547, 560) =

40 3522 = 321 * + = * + = * + = * + = * + MCD (3522, 321) = a = b *
quoziente + resto 3522 = 321 * + = * + = * + = * + = * + MCD (3522, 321) =

41 Verifichiamo che l’ultimo resto non nullo divide tutti i resti che lo precedono
L’ultimo resto non nullo (12) divide il resto precedente (96) Infatti nell’ultima riga si legge: 96 = 12 * 8 + 0

42 L’ultimo resto non nullo (12) divide anche 204
Infatti nelle ultime due righe si legge: 204 = 96 * 96 = 12 * 8 + 0 E sostituendo si ha: 204 = (12 * 8) * = 12 * (8 * 2 + 1) = 12 * 17

43 L’ultimo resto non nullo (12) divide anche 2544
2544 = 204 * 204 = 96 * = 12 * 17 96 = 12 * 8 + 0 E sostituendo si ha: 2544 = 204 * = (12 * 17) * * 8 = = 12 * (12 * ) = 12 * 212

44 Dunque l’ultimo resto non nullo divide tutti i resti che lo precedono

45 Verifichiamo che l’ultimo resto non nullo divide a e b
Infatti dall’uguaglianza 5292 = 2544 * , si deduce che: Se 12 divide i resti 2544 e 204, allora 12 divide 5292 E dall’uguaglianza = 5292 * , si deduce che: Se 12 divide e 2544, allora 12 divide 44880 Dunque l’ultimo resto non nullo (12) divide sia a (44880) che b (5292)

46 Si può concludere che l’ultimo resto non nullo è un divisore comune di a e b, e divide quindi il loro MCD! Verifichiamo, viceversa, che ogni divisore comune di a e b è anche divisore dell’ultimo resto non nullo

47 Riscriviamo l’uguaglianza
44880 = 5292 * al modo seguente: * 8 = 2544 Se n è un divisore comune di e 5292, allora n divide anche il resto 2544

48 Riscriviamo l’uguaglianza
5292 = 2544 * al modo seguente: * 2 = 204 Se n è un divisore comune di e 5292, allora n divide anche il resto 204

49 Riscriviamo l’uguaglianza
2544 = 204 * al modo seguente: 2544 – 204 * 12 = 96 Se n è un divisore comune di e 5292, allora n divide anche il resto 96

50 Riscriviamo l’uguaglianza
204 = 96 * al modo seguente: 204 – 96 * 2 = 12 Se n è un divisore comune di e 5292, allora n divide anche il resto 12

51 Si può concludere che “ogni divisore comune di a e b (e quindi anche il MCD (a, b)) divide l’ultimo resto non nullo”!

52 Se l’ultimo resto non nullo divide il MCD (a, b) e il MCD (a, b) divide l’ultimo resto non nullo, allora l’ultimo resto non nullo è uguale al MCD (a, b)

53 Étienne Bézout (1730 – 1783)

54 Massimo Comun Divisore
Dati due numeri interi a e b un loro massimo comun divisore è un intero positivo d tale che d divide a e d divide b se t divide sia a che b allora t divide d Si dimostra, che ogni coppia di numeri interi a, b ammette un massimo comun divisore, che risulta essere unico, ed è indicato con il simbolo MCD(a,b). Due numeri interi a, b tali che MCD(a,b) = 1 si dicono coprimi o relativamente primi

55 a = b * quoziente + resto 44880 = 5292 * 8 + 2544 2 204 12 96

56 Identità di Bèzout L’algoritmo di Euclide ci permette, una volta individuato MCD (a, b), di trovare due numeri interi s, t tali che d = s ´ a + t ´ b Questa relazione si chiama IDENTITA’ DI BEZOUT.

57 44880 = 5292 ´ r1= 2544= ´ 8 5292 = 2544 ´ r2=204 = ´ 2 2544 = 204 ´ r3 = 96 = ´ 12 204 = 96 ´ MCD = r4= 12= ´ 2

58 r1=2544= ´ 8 r2 = 204 = ´ 2 r3 = 96 = ´ 12 MCD= 12 = 204 –96´2 = 204 – ( ´ 12) ´ 2 = 204 – 2544 ´ ´ 24 = 204 ´ 25 – 2544 ´ 2 = ( ´ 2) ´ 25 – 2544 ´ 2= = 5292 ´ 25 – 2544 ´ 52 = 5292 ´ 25 –(44880 –5292 ´ 8) ´ 52= = 5292 ´ 441 – ´ 52 12 = 441 ´ 5292 – 52 ´ 4480

59 Come determinare l’inverso
a è invertibile modulo n se e solo se MCD(a,n)= 1. MCD(a,n)= 1 = s a+n t (Bezout) Modulo n [1] = [s a+n t] = [s a]+[n t] = [s] [a]+[n] [t]

60 Nascita dei codici polialfabetici
Leon Battista Alberti – disco cifrante Giovan Battista Bellaso – tavola reciproca Blaise de Vigenère – cifrario di Vigenère

61 Cifrari polialfabetici Giovan Battista Bellaso (Brescia1505 - ….)
contrassegno : VIRTVTIOMNIAPARENTVIRTVTIOMNIAPARENTVI testo chiaro : larmataturchescapartiraacinquediluglio testo cifrato: fyboueyldanuofszlpiincupnshmlrnxoiznrd

62 Le chiffre indéchiffrable

63 Blaise de Vigenère (1523 – 1596)

64 a b c d e f g h i j k l m n o p q r s t u v w x y z 1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 testo in chiaro a b c d e f g h i j k l m n o p q r s t u v w x y z 26 =

65 y L U C E testo in chiaro a p u n t m e o l s A b c d f g h i j k q r
v w J x R y Y z

66 y L U C E testo in chiaro a p u n t m e o l s b c d f g h i j k q r v
w J x R y Y z N Q P H V S F O D

67 V E N T O testo cifrato M I H Z F X R a b c d e f g h i j k l m n o p q r s t u v w x y z

68 V E N T O testo cifrato M I H Z F X R a b c d e f g h i j k l m n o p q r s t u v w x y z

69 f : ( Z26 , Zp) (Z26 ) p: dimensione della chiave
Cifrare con il metodo Vigenère e la matematica: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 a b c d e f g h i j k l m n o p q r s t u v w x y z f : ( Z26 , Zp) (Z26 ) p: dimensione della chiave ([m],[Kp])  ([m’])

70 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 a b c d e f g h i j k l m n o p q r s t u v w x y z

71 f-1 : ( Z26 , Zp) (Z26 ) p: dimensione della chiave
Decifrare Vigenère …..conoscendo la chiave…. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 a b c d e f g h i l m n o p q r s t u v z Determinazione della chiave di decifratura: P:{[11],[20],[2],[4]} decifratura 10 1 19 17 P’:{[10],[1],[19],[17]} M B V T f-1 : ( Z26 , Zp) (Z26 ) p: dimensione della chiave ([m’],[K’p])  ([m])


Scaricare ppt "Crittografia e numeri primi"

Presentazioni simili


Annunci Google