Matemàtiques per a Multimèdia - II
codificació - criptografia - criptoanàlisi
PRÀCTICA 1
Pràctica 1
1. Codificació.....................................................................
3
2. Criptografia de clau privada..........................................
11
3. Criptoanàlisi..................................................................
16
4. Criptografia de clau pública..........................................
21
5. Recurs Flash................................................................
26
6. Recursos......................................................................
28
-2-
índex
Matemàtiques per a Multimèdia - II
-3-
mecanismes més simples dels codis correctors d’errors
codificació
Matemàtiques per a Multimèdia - II Pràctica 1
Matemàtiques per a Multimèdia - II
Pràctica 1
codificació
L’objectiu d’aquesta part de la pràctica és explicar els mecanismes més simples dels codis correctors d’errors a partir d’un exemple de la vida real. Com a mínim haureu de desenvolupar l’exemple seguint l’estil (i millorant) les explicacions de l’exemple de les pàgines 29-33 del mòdul de codificació. L’exemple amb què il·lustrareu les idees és el següent: “Després de la jubilació de James Bond, heu ocupat la seva plaça al servei de Sa Majestat. A la vostr primera missió, heu de infiltrar-vos en la Caserna General del Comandamen Nuclear a Corea del Nord, obrir la seva caixa forta, i comunicar a Moneypenny, de manera xifrada, el que trobeu a l’interior d’aquesta, segons el codi que heu acordat prèviament.” Teranyines 000
Una ampolla del millor whisky 001
La temporada 11 d’American Idol en DVD 010 Un pollastre de goma 100
El llistat complet dels números de telèfon dels 101 generals de l’exèrcit nord-coreà
Els plànols de la planta de producció de bom- 110 bes nuclears
Un gra d’arròs 111
-4-
Matemàtiques per a Multimèdia - II
Pràctica 1
per començar
codificació
Abans d’iniciar la missió hem de ser conscients que la transmissió codificada de dades pot generar errors. Com que la informació que recollirem serà de gran importància no ens podem permetre cap error. Per això ens haurem d’assegurar que la transmissió de les dades serà segura i que en cas que hi hagi algun problema podrem identificar dos factors:
• el possible error que s’hagi pogut produir en la transmissió. • en quina part del codi es troba l’error detectat. D’entrada veiem que tenim un grup de paraules que pertanyen a C2, un subconjunt de Z2. És a dir, partim d’una codificació en sistema binari amb paraules de tres dígits de longitud. Quines seran les característiques que presenta aquest subconjunt?
• Pertanyen un codi no linial. • Totes les paraules del codi estan formades per tres bits. Això és així perquè treballem amb sistema binari i per poder codificar-les totes necessitarem una longitud de dígits que ens permeti incloure totes les paraules. Això tan sols ho podrem aconseguir considerant 23=8.
• Com que la longitud mínima que pot tenir aquest grup de paraules és de tres dígits, no hi ha cap paraula que tingui bit de paritat.
• La no presència del bit de paritat implica que les paraules tenen poca redundància, fet que dificultarà la detecció i resolució de possibles errors.
Bit de paritat És un mètode per a la detecció d’errors de transmisió o emmagatzemament de dades. Consisteix en afegir 1 bit per a cada paraula, on s’especifica si la quantitat de bits amb valor 1 de la paraula és parell o senar.
els errors en els codis no linials Per saber quants errors podrem detectar en el nostre codi haurem de tenir presents quatre conceptes:
• distància de Hamming: nombre de dígits en què es dife-
Aquest mètode detecta els errors, però no els corregeix (només en el cas que la paraula transmesa sigui de mida 1 bit).
rencien dues paraules. Això serà imprescindible per trobar la distància mínima d’un codi.
• distància mínima d’un codi (d): és la mínima de totes les
Detecció d’errors
distàncies entre les seves paraules. Per poder-la calcular
Per calcular el nombre d’errors
abans haurem de calcular la distància de Hamming entre to-
que es poden detectar en un
tes les paraules.
gurp de paraules s’haurà d’obvi-
• detecció d’errors (d-1): es refereix al nombre d’errors que podrem detectar en el codi. Serà la distància mínima - 1. -5-
ar sempre el 0.
Matemàtiques per a Multimèdia - II
Pràctica 1
codificació
• correcció d’errors (e): un cop establerta la quantitat d’errors que es poden detectar estarem en disposició de calcular quants errors es poden corregir.
Tenint això present, podem calcular quants errors podrem detectar i quants errors podrem corregir amb el codi que ens han assignat. Distància entre les paraules del codi C2
000
001
001
1
0
1
2
000 010 100 101 110 111
0 1 2 2 3
010
2
0
1
3
3 2
100
2
0
1
1
2
101
1
0
2
1
110
2
0 1
Codi
Distància entre paraules
d
C2
0, 1, 2, 3
1
111
0
Com es pot observar, el codi assignat ens permetrà detectar tan sols un error i no ens donarà la possibilitat de corregir-ne cap. Davant d’aquesta conclusió serà necessari afegir redundància al nostre codi per assegurar-nos que podrem detectar i corregir els possibles errors generats durant la transmissió.
-6-
Matemàtiques per a Multimèdia - II
Pràctica 1
afegint redundància Davant la poca consistència de detecció i correcció que mostra el codi que ens han adjudicat, haurem de crear un codi detector i corrector d’errors, en el nostre cas un codi linial. Per crear un codi linial necessitem dues matrius:
• una matriu generadora (G), que ens permetrà obtenir les paraules del codi linial.
• una matriu de paritat (H), que en permetrà detectar i corregir els errors que el codi permeti. Un cop obtingudes aquestes dues matrius procedirem de la següent manera:
1. Multipliquem totes les paraules per la matriu generadora per tal d’obtenir totes les paraules del codi linial.
2. Trasmetem el codi. 3. Rebem el codi i comprovem que no hi ha hagut cap error en la recepció. Per fer-ho caldrà multiplicar cada codi rebut per la matriu de paritat (H):
• si el vector resultant està format per zeros la paraula és pertanyent al codi.
• si el resultat no és un vector format per zeros la paraula no pertany al codi.
4. En el cas que ens trobem una paraula no pertanyent al codi la matriu de paritat ens permetrà detectar on es troba l’error:
• comparem el resultat amb les columnes de la matriu de paritat. La columna coincident ens indicarà la posició on hi ha la errada. Com que treballem amb sistema binari, la solució serà senzilla. A l’igual que una funció booleana, si una opció és incorrecta n’hi haurà prou de substituir-la per l’altra. Seguint aquest procediment ara podrem transformar el codi inicial en paraules de codi linial. Per fer-ho ens servirem de les matrius G i H que ja ens han estat facilitades en el moment d’emprendre la missió.
-7-
codificació
Matemàtiques per a Multimèdia - II
Pràctica 1
transformant en codi linial
codificació
Multipliquem cada paraula del codi inicial per la matriu generadora.
Amb aquest procediment hem obtinguts les paraules del codi linial. Ara els objectes trobats a la caixa forta canvien la seva codificació: paraula
codi inicial
codi linial
ampolla
001
0011011
teranyines DVD
pollastre
llistat telefònic
plànols planta nuclear gra d’arròs
000
0000000
010
0101110
100
1001101
110
1100011
101
1010110
111
1111000
Per altra banda, haurem d’esbrinar quina quantitat d’errors podrem detectar i quants podrem corregir.
Calcular (d) als codis linials
En el nostre cas podem afirmar que:
En els codis linials la distància
• d = 4 • errors detectables: d-1 = 4-1 = 3 • errors corregibles:
mínima es troba buscant quants uns té la paraula del codi amb menys uns, obviant la paraula formada íntegrament per zeros.
-8-
Matemàtiques per a Multimèdia - II
Pràctica 1
comprovant el codi linial Un cop rebut els missatges serà el moment de comprovar que no hi ha cap error. Com es pot observar, totes les paraules donen com a resultat un vector format per zeros, fet que confirma que la transmissió s’ha fet de manera correcta. Però... què hauria passat si una d’aquestes paraules hagués tingut un error? En el següent apartat platejarem aquest hipotètic cas.
-9-
codificació
Matemàtiques per a Multimèdia - II
Pràctica 1
detectant i corregint un error Imaginem que la paraula que codifica el gra d’arròs no s’ha trasmès de manera correcta i enlloc d’arribar (1111000) ha arribat (0111000)... què passaria en aquest cas? Doncs el primer que detectarem és que el producte de la matriu de paritat per la paraula no dóna com a resultat un vector format per zeros.
Això ens alerta de que aquesta paraula no pertany al codi. Com que el codi ens permet corregir fins a un error, comprovarem que aquest es troba en el primer dígit, doncs el resultat del producte coincideix amb la primera columna de la matriu de paritat.
D’aquesta manera podrem corregir l’error canviant el dígit de la primera posició (1 en comptes de 0) per interpretar correctament el missatge codificat.
- 10 -
codificació
- 11 -
xifrat i desxifrat de missatges amb mètode Cèsar
criptografia de clau privada
Matemàtiques per a Multimèdia - II Pràctica 1
Matemàtiques per a Multimèdia - II
Pràctica 1
un canal insegur La criptografia en general no tindria cap raó de ser sense l’existència dels canals insegurs. Des dels inicis de la Història l’home ha tingut la necessitat de transmetre
criptografia de clau privada
missatges privats preservant la seguretat i l’autencitat del mateix. Però l’existència de canals insegurs va generar l’aparició de sistemes que afavorisin aquesta seguretat i autenticitat. Així doncs, la solució va ser enviar els missatges encriptats, de manera que el possible atacant del canal no fos capaç d’interpretar el missatge. Al llarg dels segles s’han creat diferents sistemes criptogràfics, uns més rudimentaris que d’altres, però tots amb un mateix objectiu. Ja els grecs van destacar en aquest camp, ideant l’Escítalo, un sistema d’encriptació amb una cinta plena de lletres i un pal que permetia llegir missaltges sempre i quan l’emissor i el Escítalo
receptor compartissin el mateix decodificador.
També l’Imperi Romà va veure
Clau Cèsar
com s’ideaven sistemes de trans-
Juli Cèsar va utilitzar aquest
missió segura de missatges. Entre
mètode amb la clau secreta
ells va destacar el sistema d’en-
k=3.
criptació Cèsar, mètode que deu el seu nom a Juli Cèsar, persona que el va idear. Però no va ser fins al 1949 quan
Màquina ENIGMA
Claude Elwood Shannon va crear
la criptografia científica, fruit de la gran herència que va deixar la II Guerra Mundial. En aquells anys els alemanys van aconseguir a màxima sofisticació de l’encriptació de clau privada amb la màquina Enigma, que el matemàtic Alan Turing va poder interceptar.
què és?
Un sistema criptogràfic de clau privada es caracteritza per l’existència d’un sol codi o clau secreta que només és conegut per l’emissor i el receptor. D’aquesta manera qualsevol missatge podrà se encriptar amb la clau acordada i serà desencriptat seguint el mateix procediment. Matemàticament, cadascun dels elements que intervenen en aquest procés s’identifica d’una manera diferent:
Clau simètrica La clau privada també es coneix com clau simètrica perquè el mateix procés que s’empra per encriptar és vàlid per desencriptar.
• m = missatge • k = clau privada • c = missatge encriptat. - 12 -
Matemàtiques per a Multimèdia - II
Pràctica 1
criptografia de clau privada
A partir d’aquí podrem establir dues funcions:
• c = Ek(m) si volem encriptar un missatge. • m= D(c) >> m=Dk(Ek(m)) si volem desencriptar aquest missatge.
el mètode Cèsar El sistema de clau privada de Juli Cèsar consisteix en encriptar un missatge caràcter a caràcter a partir d’una clau
Aritmètica modular
k. Històricament, l’algoritme de Cèsar es basava en un
L’algoritme de Cèsar, a l’igual
conjunt que comprenia 26 claus, una per cada lletra de
que molts altres sistemes de
l’alfabet. Tot i així, aquest nombre pot variar si l’emissor i el
numeració, es basa en càlculs
receptor es posen d’acord en ampliar el nombre de claus
d’aritmètica modular.
amb què treballar. N’hi hauria prou, per exemple, incloent els nombres del 0 al 9.
L’aritmètica modular estableix la
Seguint aquest mètode el sistema de claus quedaria de la següent manera:
quantitat base que marcarà el
A
B
C
D
E
F
G
H
Ñ
O
P
Q
R
S
T
U
1
15
2
16
3
17
4
18
5
19
6
20
7
21
8
22
I
J
K
L
M
N
9
10
11
12
13
14
23
24
25
26
27
28
V
W
X
Y
Z
Amb aquest sistema hem intercanviat missatges al Fòrum de la nostra aula. Per ferho s’ha seguit el següent procediment:
que ha calgut fer ha estar consesuar una clau amb el nostre interlocutor. En aquest cas s’ha acordat que k=8.
funció: c = E8(m) [canviem cada caràcter pel que està 8 unitats més endavant]. c = jwuihaizlihkizsm mshlptiza cpuapybiazmhawybmthihsbghlmhñi
e
s
!
i
n
t
o
q
j
w
s
m
c
p
a
w
m
h
l
v t
e
u
i
u
a
y
b
G ñ
u a i
dels angles,...). Quan un nombre supera el
a m-1. Llavors direm que el nombre és congruent amb el residu que
mòdul. Per exemple:
m = Bona tarda Carles! El dimarts vint-i-quatre toquem a Luz de Gas.
a
les hores, mòdul 360 en el cas
ha quedat dins dels límits del
2. ENCRIPTAR EL MISSATGE.
n
mòdul (mòdul 24 en el cas de
múltiples necessaris per arribar
Com que estem treballant sobre un sistema d’encriptació de clau privada, el primer
o
quantitat és el que s’anomena
mòdul (m) se li ha de restar els
1. ESTABLIR UNA CLAU PRIVADA.
B
sistema de numeració. Aquesta
t
h
a
m
s
E -
l i
p
e
m
s
.
m
t
a i
h -
h
r
d
a
d
i
m
u
a
z
l
l
p
y
b
q a i
h
C
a
r
t
i
h
t
i
z
a
i
a
z
m
h
s
b
g
h
l
L
- 13 -
a t
u
k
r
z
i
r
e
z s
d
Matemàtiques per a Multimèdia - II
Pràctica 1
Tot i que aquí hem codificat el missatge a partir de la taula, el missatge que s’ha enviat al Fòrum ha estat encriptat amb l’applet de Flash. Com es pot observar, l’aplicació ha generat algunes alteracions, com els espais de la posició 28 o els guions, que no són presents en els valors del mòdul.
3. DESENCRIPTAR EL MISSATGE. c = jwuihaizlihqibtmm xmzwhybmhapuñbmbhtwsaih wza funció: m = D8 (E8(m))
[canviem cada caràcter pel que està 8 unitats més enrere].
c = Bona tarda Jaume. Espero que tingueu molta sort. j
w
t
m
a
p
u
w
z
B m t
s
o e i
o
u n
n r
i
a
m E ñ g a t
h
s
b u
a
i
z
x
m
z
w
m
b
h
t
t
p e
a e u
r r
l
d o
m
i
h
q
h
y s
a
w o
.
- 14 -
q l
i
b
b
m
h
a
i
J
u t
a e a
u
h
criptografia de clau privada
Matemàtiques per a Multimèdia - II
Pràctica 1
Tal i com ha passat amb l’encriptació del missatge. la desencriptació també s’ha fet amb l’aplicació Flash, amb els mateixos resultats. En alguns casos hi ha hagut alguna variació amb els espais, fet que no ha afectat al sentit global del missatge.
- 15 -
criptografia de clau privada
- 16 -
atac criptoanalític i investigació exhaustiva de claus
criptoanàlisi
Matemàtiques per a Multimèdia - II Pràctica 1
Matemàtiques per a Multimèdia - II
Pràctica 1
per començar
criptologia
Per poder explicar de manera acurada el concepte de criptologia ens anirà bé una passa enrere i definir de nou el concepte de criptografia. La criptografia és la ciència i l’art d’emprar les matemàtiques per assegurar una transmissió segura i autèntica de qualsevol missatge.1 La tramesa de missatges encriptats implica alhora la possibilitat de poder-los interceptar i interpretar. Aquests dos aspectes conformaran la globalitat de la criptografia: CRIPTOGRAFIA = CRIPTOLOGIA + CRIPTOANÀLISI
• La criptologia s’ocupa de les tècniques que alteren la representació gràfica dels missatges per tal de fer-los inintel· ligibles a qualsevol intrús que intercepti el missatge.
• La criptoanàlisi s’ocupa de les tècniques susceptibles de trencar un criptosistema. En aquest apartat ens centrarem en aquest segon aspecte, basant-nos en la desencriptació d’un missatge presentat al Fòrum.
cerca exhaustiva de claus En l’apartat anterior hem fet una promera presentació del concepte de criptoanàlisi. En aquest ens centrarem sobre una de les tècniques d’aquest àmbit: la cerca exhaustiva de claus. Aquest mètode se centra en el desxifrat de sistemes criptogràfics de clau privada. D’entrada el que podem afirmar és que com més petit sigui el nombre de claus possibles més efectiu serà el mètode. Per això serà un sistema ideal per a interceptar i identificar missatges encriptats amb el sistema d’encriptació Cèsar. La facilitat o dificultat per trencar un missatge encriptat a partir d’aquest sistema rau en el criteri de probabilitat.
critoanàlisi i probabilitat
Fortalesa del sistema Cèsar
La probabilitat de que succeeixi un esdeveniment està directament relacionada amb
El sistema d’encriptació Cèsar
la quatitat de casos favorables i la quantitat de casos possibles que es poden donar
presenta poca fortalesa davant
en una situació concreta. Dit d’una altra manera:
d’un atac a partir d’una cerca exhaustiva de claus.
P(S) = nombre de casos favorables (S) / nombre de casos possibles
El fet que estigui composat tan sols per 26 claus fa que la seva
Aquesta relació entre casos favorables i casos possibles és de summa importància
desencriptació sigui molt senzi-
a l’hora de valorar la facilitat o dificultat d’encertar en un atac amb cerca exhaustiva
lla, fins i tot de manera manual.
1 Cruells P. Sáez G.: Criptografia de clau privada, pàg.5 [material docent] UOC.
Tan sols cal provar les 26 claus.
- 17 -
Matemàtiques per a Multimèdia - II
Pràctica 1
de claus. Com més petit sigui el nombre de casos possibles més senzill serà trencar un missatge. Com més gran sigui el nombre de casos possibles, més difícil serà posar en pràctica aquesta tècnica amb resultats satisfactoris. Això fa que sistemes com el Cèsar quedin molt exposats davant d’un tipus d’atac com aquest.
• casos favorables = 1 • casos possibles = 26 • P (S) = 1/26 Dit d’una altra manera, trencar un missatge encriptat amb sistema Cèsar ens demanarà, com a màxim, un total de 26 intents. Aquest és el motiu que fa que el sistema de clau Cèsar sigui poc robust, ja que la probabilitat d’encertar és molt alta.
criptoanalitzant un missatge Per demostrar la fragilitat del sistema hem triat de manera aleatòria un missatge publicat al Fòrum que ha estat encriptat amb el sistema Cèsar. Per fer-ne la criptoanàlisi treballarem de manera manual seguint el següent mètode:
1 2 3
Prenem una mostra del missatge. (VCZOÑGOAHW)
Apliquem una a una les claus sobre la mostra presa.
Un cop descoberta la clau l’apliquem sobre la totalitat del missatge.
- 18 -
criptologia
Matemàtiques per a Multimèdia - II
Pràctica 1
criptologia
ATAC CRIPTOANALÍTIC mostra
CERCA EXHAUSTIVA DE CLAUS k
m
VCZOÑGOAHW
1
UBYÑNFÑ GV
VCZOÑGOAHW
3
S WMLDMYET
VCZOÑGOAHW VCZOÑGOAHW VCZOÑGOAHW VCZOÑGOAHW VCZOÑGOAHW VCZOÑGOAHW VCZOÑGOAHW
2 4 5 6 7 8 9
VCZOÑGOAHW
10
VCZOÑGOAHW
12
VCZOÑGOAHW
14
VCZOÑGOAHW VCZOÑGOAHW VCZOÑGOAHW
11
13 15
TAXNMENZFU RZVLKCLXDS
QYUKJBKWCR PXTJIAJVBQ OWSIH IUAP
ÑVRHGZHT O
NUQGFYGSZÑ MTPFEXFRYN
LSOEDWEQXM KRÑDCVDPWL JQNCBUCOVK IPMBATBÑUJ HOLA SANTI
Al quizè intent hem aconseguit trencar la clau d’aquest missatge. Si apliquem aquesta clau a la totalitat de c obtenim el següent missatge:
• m = D15(c) • m = D15(vczoñgoahwrcaqgñsaqofoñeisroñzoñqzoiñdipz wqoñrwiñzoñzcifrsgñeisñho psñsagñvs ñrsajwofñ wggohusgñlwtfohgsagñgsuiw ñzzsuwahhoawo)
• m = hola santi doncs encara queda la clau publica diu la lourdes que tambe ens hem denviar missatges xifrats ens seguim llegint tania N’hi haurà prou amb acabar d’introduir els signes que no estan inclosos en l’alfabet per acabar de tenir el missatge sencer. Hola Santi, doncs encara queda la clau publica. Diu la Lourdes que també ens hem d’enviar missatges xifrats. Ens seguim llegint. Tània
- 19 -
Matemàtiques per a Multimèdia - II
Pràctica 1
un altre sistema: l’atac estadístic La poca complexitat del sistema Cèsar ens ha permès realitzar un atac de manera manual. Però quan l’encriptació en clau privada es fa amb sistemes més complexos (substitucions, Vigenère,...) la cosa es complica. Llavors es pot recórrer a l’atac estadístic L’atac estadístic consisteix en trobar el símbol encriptat que apareix més cops per relacionar-lo amb el caràcter més freqüent de la llengua original. Això ens permetrà associar en pocs intents caràcters xifrats a lletres de l’idioma original. Per fer-ho, caldrà obtenir una llista amb les freqüències de l’alfabet en què es basa el missatge. En el nostre cas ja sabem que el missatge està escrit en català. Mirant la seva taula de freqüències podem afirmar el següent:
• Les vocals ocupen el 50% del total. • Les lletres E i A són les més utilitzades, amb un 30% del total. • Les consonants més freqüents són: S, R, L, N, T (en conjunt apareixen amb una freqüència d’un 30%).
• Les lletres menys freqüents són: W, K, Z, Ç (cadascuna amb una freqüència per sota del 0,2%). No farem aquí un atac estadísitc en la seva totalitat però sí que podem extreure algunes dades interessants: símbol
freqüencia
caràcter
o
15/132
A
s
12/132
E
w
9/132
I
a
8/132
N
i
7/132
U
4/132
R
g
z
h f
c
e d l
10/132
8/132 6/132
S
L
T
3/132
O
1/132
P
2/132 1/132
Q X
Tal i com es pot comprovar, l’atac estadístic ens aproxima de manera força ajustada a la taula de freqüències dels caràcters en català. Una anàlisi més acurada ens permetria desencriptar el missatge sense massa problemes.
- 20 -
criptologia
- 21 -
xifrat i desxifrat de missatges amb mètode RSA
criptografia de clau pública
Matemàtiques per a Multimèdia - II Pràctica 1
Matemàtiques per a Multimèdia - II
Pràctica 1
un canvi radical Fins ara hem estat treballant sobre diferents sistemes de codificació i encriptació basats en una clau privada, és a dir, basats en una clau simètrica que tan sols com-
criptografia de clau pública
parteixen l’emissor i el receptor. Però la dècada dels 70 va presenciar l’aparició d’un gir copernicà en els fonaments matemàtics de la criptografia: l’aparició dels sistemes de criptografia de clau pública. El seu fonament és molt senzill:
Clau asimètrica El sistema criptogràfic de clau pública també s’anomena de
cada emissor disposa de dues claus, una d’encriptació (e) i una de desencriptació (d), de tal manera que tan sols cal fer pública la primera, mentre que la segona resta únicament en coneixement del propietari.
clau asimètrica. A diferència dels sistemes criptogràfics de clau privada, on la clau (k) permet encriptar i desencriptar (m), la criptografia
Això suposa un clar avantatge sobre els sistemes de clau privada. Ara ja no és necessari que l’emissor i el receptor es posin d’acord a l’hora d’escollir la clau ni hi ha la necessitat de trobar un canal segur per posar-se d’acord o per distribuir claus o missatges, a més d’altres avantatges que anirem desgranant més endavant.
en què es basa?
de clau pública rep aquest nom perquè la clau d’encriptació (e) no permet la desencriptació de (m). Aquesta s’haurà de fer amb la clau (d), de propietat exclusiva del receptor.
La criptografia de clau pública es basa en una funció trampa a partir de l’aplicació de les propietats de l’aritmètica modular sobre nombres primers molt grans. El fet de tenir dues claus fa que l’emissor pugui encriptar però no sàpiga quin serà el criteri de desencriptació, ja que aquest tan sols el coneix el receptor. Això es pot dur a terme perquè la clau pública i la clau privada guarden una relació inversa, és a dir, que aplicades ambdues de manera consecutiva aconsegueixen generar i revertir una encriptació. Matemàticament això s’aconsegueix a partir del mètode RSA.
RSA Aquest mètode rep el seu nom de l’acrònim Rivest, Shamir, Adlman, creadors l’any 1978 de l’algoritme de clau pública. La fortalesa d’aquest algoritme rau en el fet que va ser el primer en establir una funció uniderec-
el mètode RSA
cional (funció trampa) basada
Basat doncs en la potenciació modular a partir de mòduls de nombres primers,
en l’aplicació de la potència en
aquest sistema crea les claus de la següent manera:
el conjunt d’enters modulars a
1 2 3
Es busquen dos nombres primers primers prou grans (l’ideal
partir de la propietat de l’ele-
seria entre 100 i 300 xifres). Aquests dos nombres seran p i q.
ment invers de la multiplicació.
S’obté n, que és el resultant de resoldre el producte p·q. [ n=p·q ] S’obté phi(n), que és el resultant de resoldre el producte (p1)·(q-1). Aquest producte ens indica la quantitat d’inversos que podem trobar dins del mòdul n. [ phi(n)=(p-1)·(q-1)] - 22 -
Matemàtiques per a Multimèdia - II
4 5 6
Pràctica 1
es busca el nombre e. Aquest nombre ha de ser relatiu primer de phi(n), és a dir, no ha de compartir cap divisor amb ell.
criptografia de clau pública
es calcula el nombre d. En el nostre cas aquest càlcul el rea-
Càlcul del nombre d
litza la calculadora RSA.
El càlcul del nombre d no és conceptualment complicat però
es fa pública la clau (e, n) i es manté en secret la clau privada
si és costosa la seva resolució si
(d).
es treballa amb nombres grans.
encriptació
d = e - 1 (mòd phi(n))
Amb la clau pública i privada ja establertes ja estem en disposció d’encriptar missatges. Per fer-ho ens servirem de la clau pública d’un company i el missatge que hem trasmès a través del Fòrum. Volem enviar un missatge a en Carles, que ha deixat al Fòrum la seva clau pública: (13, 391). El nostre missatge serà m = Hola Carles.
1 2 3
Traduïm el nostre missatge a versió numèrica. m = Hola Carles
Per transformar m en un missatge en versió numèrica hem
m = 0917130100030120130621
seguit una codificació bàsica
Dividim m en blocs d’una longitud igual a (longitud.n)-1. 0 || 917 || 130 || 100 || 030 || 120 || 130 || 621
estàndard. Aquest sistema es basa en l’adjudicació consecutiva de dos
Encriptem els blocs amb la clau pública (e) del receptor. E(eCarlesnCarles)(000) = 0
dígits a cada caràcter de l’alfabet, inclòs l’espai (00 és l’espai en blanc, 01=a, 02=b,..., 28=z).
E(eCarlesnCarles)(917) = 152 E(eCarlesnCarles)(130) = 143 E(eCarlesnCarles)(100) = 87 E(eCarlesnCarles)(030) = 319 E(eCarlesnCarles)(120) = 205 E(eCarlesnCarles)(130) = 143 E(eCarlesnCarles)(621) = 161
4
Versió numèrica
En el cas que alguna encriptació tingui una longitud inferior a (longitud.n) caldrà igualar amb zeros. 0 = 000 || 87 = 087
- 23 -
Matemàtiques per a Multimèdia - II
6
Pràctica 1
Un cop ens hem assegurat que tots els blocs pertanyen al conjunt d’enters (mòd n) enviem c. c = 000 152 143 087 319 205 143 161
criptografia de clau pública
desencriptació Al nostre torn, nosaltres també hem fet pública la nostra clau i hem rebut un missatge encriptat (c) que ara haurem de desencriptar. Per fer-ho revertirem els passos del procés d’encriptació.
Càlcul de la clau pública • p = 89 • q = 97
Hem comunicat al Fòrum la nostra clau pública: (533,8633). Hem rebut un missatge d’en Carles.
• n = 8633 • phi(n) = 8448 • e = 533 • d = 317
- 24 -
Matemàtiques per a Multimèdia - II
1 2
Pràctica 1
Identifiquem els blocs. han de tenir la mateixa longitud que n. c =5845 || 8332 || 5657 || 7332 || 4174 Desencriptem els blocs amb la clau privada (d) del receptor. E(dJaumenJaume)(5485) = 917 E(dJaumenJaume)(8332) = 1301 E(dJaumenJaume)(5657) = 11 E(dJaumenJaume)(7332) = 123 E(dJaumenJaume)(4174) = 1406
3 4 5
En el cas que alguna encriptació tingui una longitud inferior a (longitud.n) caldrà igualar amb zeros. 917 = 0917 || 11 = 0011 || 123 = 0123 Traduïm el nostre missatge a versió numèrica. m = 09 17 13 01 00 11 01 23 14 06 Traduïm el nostre missatge a versió literal. m = Hola Jaume
per acabar Com hem pogut comprovar, l’encriptació amb clau pública és molt més segura i complexa de criptoanalitzar que no pas la privada perquè la seguretat d’aquest mètode criptogràfic es basa en la dificultat de trobar les arrels d’índex e d’un element c. En la següent taula trobem una comparativa entre els dos sistemes. CRIPTOGRAFIA DE CLAU PRIVADA
CRIPTOGRAFIA DE CLAU PÚBLICA
els usuaris han d’acordar una clau
els usuaris no han d’acordar la clau
cada usuari disposa de la mateixa clau
cada usuari disposa de dos claus
la clau d’encriptació és privada
la clau d’encriptació és pública
es basa en un sistema simètric
es basa en un sistema asimètric
requereix un canal segur
no requereix un canal segur
no assegura autenticitat del missatge
assegura l’autenticitat del missatge
no assegura la integritat del missatge
assegura l’autenticitat del missatge
no assegura l’autoria del missatge
assegura l’autoria del missatge
- 25 -
criptografia de clau pública
- 26 -
activitat sobre encriptació per alumnes de Cicle Mitjà
CèsarApp
Matemàtiques per a Multimèdia - II Pràctica 1
Matemàtiques per a Multimèdia - II
Pràctica 1
CèsarApp
Presentem aquí CèsarApp, una senzilla aplicació interactiva desenvolupada íntegrament amb Flash partir de programació en codi ActionScript 3.0.
• L’objectiu primer d’aquesta aplicació és fer una aproximació a l’encriptació de clau privada a partir del sistema Cèsar.
• Presentat d’una manera lúdica i interactiva, pot ser una bona eina per treballar sobre pissarra digital interactiva.
• Per accedir-hi cal obrir l’arxiu default.html.
- 27 -
Matemàtiques per a Multimèdia - II
Pràctica 1
• http://ca.wikipedia.org/wiki/Bit_de_paritat • http://www.saberhistoria.com.ar/2010/04/08/cesar-sin-cesarea/
• http://es.wikipedia.org/wiki/Enigma_(máquina) • http://gaussianos.com/criptografia-cifrado-de-clave-publica-i/ • http://neo.lcc.uma.es/evirtual/cdd/tutorial/presentacion/rsa.html • http://casacaseycourtney.files.wordpress.com/2008/08/rsa1.jpg • http://ca.wikipedia.org/wiki/Freq%C3%BC%C3%A8ncia_de_les_ lletres
• UOC - material docent
- 28 -
bibliografia
busto_piedra_julio_cesar/