Crittografia e numeri primi

Slides:



Advertisements
Presentazioni simili
Le frazioni Vogliamo ampliare l’insieme numerico N con un insieme numerico nel quale sia sempre possibile eseguire la divisione . Per fare ciò dobbiamo.
Advertisements

Equazioni e calcoli chimici
Appunti di analisi matematica: Integrale Definito
Ricorrenze Il metodo di sostituzione Il metodo iterativo
I numeri naturali ….. Definizione e caratteristiche
Equazioni di primo grado
2. Introduzione alla probabilità
Sistema di riferimento sulla retta
Gli Elementi di Euclide
Laboratorio di crittografia
Crittografia Concetti matematici.
I SEGRETI PER IL SUCCESSO SU LAVORO
Capitolo 8 Sistemi lineari.
LE MATRICI.
CALCOLO COMBINATORIO Principio fondamentale del calcolo combinatorio
6. Catene di Markov a tempo continuo (CMTC)
Introduzione alle curve ellittiche
= 2x – 3 x Definizione e caratteristiche
esponente del radicando
2ab2 2b4 4x − 2y a 3b2y3 3b2y3b Definizione e caratteristiche
Definizione e caratteristiche
1 Grandezze omogenee, commensurabili e incommensurabili
RB-alberi (Red-Black trees)
6. Catene di Markov a tempo continuo (CMTC)
CRITTOGRAFIA La crittografia, ovvero la scienza dei messaggi segreti sicuri, nasce come raccolta di tecniche e sistemi per nascondere messaggi tra regnanti,
Iterazione enumerativa (for)
Testo consigliato Crittografia, P. Ferragina e F. Luccio, Ed. Bollati Boringhieri, € 16.
Superman è stato qui!!!.
(pane quotidiano dell’algebra, dannazione… degli studenti)
NUMERI RELATIVI.
CALCOLO LETTERALE Concetto di monomio Addizione di monomi
I numeri by iprof.
I numeri relativi by iprof.
Le matrici e I Sistemi lineari.
Il calcolo combinatorio
SEGNALI COMPLESSI: modulazione in fase e quadratura SEZIONE 7
corso DI GEOMETRIA DESCRITTIVA
I numeri interi relativi
MATRICI classe 3 A inf (a.s ).
MOLTIPLICAZIONE COMBINATORIA
Una trattazione elementare esposta in modo essenziale e funzionale.
Le operazioni con i numeri
CALCOLO COMBINATORIO Prof Sandro Pistori.
Definizione di determinante
Crittografia e numeri primi I incontro lunedì 8 novembre 2010 Piano Lauree Scientifiche.
LA CRITTOGRAFIA QUANTISTICA
Metodo della moltiplicazione
Scritture Segrete Lezione n. 3 Breve storia della crittografia e dei
Programmazione di calcolatori
Crittografia Classica. Notazioni P : Insieme dei messaggi in chiaro C : Insieme dei messaggi criptati f : Funzione di Trasformazione Crittografica K E.
I.P.S.I.A. “L. Settembrini” Via G. Deledda, 11 – Milano
Le equazioni x2 − 4 = 0 1 x = x0 + v • t + a • t2 2
Modulo 5 - Database. Contenuti della lezione 5.1.1Concetti Fondamentali 5.1.2Organizzazione di un Database 5.1.3Relazioni 5.2.1Lavorare con i database.
Equazioni.
La quantità chimica LA MOLE La quantità chimica:la mole.
La Crittografia Tesina di matematica Di Marcon Giulia
Calcolo letterale.
liceo Lioy e liceo Pigafetta, 10 febbraio 2011
Corso di Matematica Discreta 4
NUMERI PRIMI E CRITTOGRAFIA
DALLA CRITTOGRAFIA CLASSICA ALLA CRITTOGRAFIA MODERNA
Codici prefissi Un codice prefisso è un codice in cui nessuna parola codice è prefisso (parte iniziale) di un’altra Ogni codice a lunghezza fissa è ovviamente.
Crittografia/ Steganografia
Informatica Lezione 10 Psicologia dello sviluppo e dell'educazione (laurea magistrale) Anno accademico:
MASSIMO COMUNE DENOMINATORE (M.C.D)
Divisione tra un polinomio ed un binomio Regola di Ruffini
DIPENDENZA STATISTICA TRA DUE CARATTERI Per una stessa collettività può essere interessante studiare più caratteri presenti contemporaneamente in ogni.
DEFINIZIONE. I multipli di un numero sono costituiti dall’insieme dei prodotti ottenuti moltiplicando quel numero per la successione dei numeri naturali.
Le frazioni A partire da N vogliamo costruire un nuovo insieme numerico nel quale sia sempre possibile eseguire la divisione. Per fare ciò dobbiamo introdurre.
Transcript della presentazione:

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

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

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

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.

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 è:

[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.

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

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

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

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

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 …

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! = 51090942171709440000 ~ 5•1019 possibili riordinamenti del nostro alfabeto Con le funzioni affini abbiamo 20*12 possibili permutazioni

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

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

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

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.

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

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

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

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%

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%

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.

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…..

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.

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

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.

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.

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

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

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:

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.

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

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

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)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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)

Étienne Bézout (1730 – 1783)

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

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

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.

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

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

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]

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

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

Le chiffre indéchiffrable

Blaise de Vigenère (1523 – 1596)

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 =

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

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

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

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

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’])

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-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])