Upload
tictools
View
123
Download
12
Embed Size (px)
DESCRIPTION
Pràctica de Mates(II) - CODIFICACIÓ i ENCRIPTACIÓ. Grau en Multimèdia. UOC
Citation preview
PRÀC
TIC
A 1
codi
ficac
ió -
crip
togr
afia
- cr
ipto
anàl
isi
Matemàtiques per a Multimèdia - II
Matemàtiques per a Multimèdia - II Pràctica 1
- 2 -
1. Codificació.....................................................................
2. Criptografia de clau privada..........................................
3. Criptoanàlisi..................................................................
4. Criptografia de clau pública..........................................
5. Recurs Flash................................................................
6. Recursos......................................................................
3
11
16
21
26
28 índe
x
Matemàtiques per a Multimèdia - II Pràctica 1
- 3 -
codi
ficac
ióm
ecan
ism
es m
és s
impl
es d
els
codi
s co
rrec
tors
d’e
rror
s
Matemàtiques per a Multimèdia - II Pràctica 1
- 4 -
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 Mo-
neypenny, de manera xifrada, el que trobeu a l’interior d’aquesta,
segons el codi que heu acordat prèviament.”
Teranyines 000Una ampolla del millor whisky 001
La temporada 11 d’American Idol en DVD 010Un pollastre de goma 100
El llistat complet dels números de telèfon dels
generals de l’exèrcit nord-coreà
101
Els plànols de la planta de producció de bom-
bes nuclears
110
Un gra d’arròs 111
codificació
Bit de paritatÉs un mètode per a la detec-
ció 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.
Aquest mètode detecta els
errors, però no els corregeix
(només en el cas que la paraula
transmesa sigui de mida 1 bit).
Detecció d’errorsPer calcular el nombre d’errors
que es poden detectar en un
gurp de paraules s’haurà d’obvi-
ar sempre el 0.
Matemàtiques per a Multimèdia - II Pràctica 1
- 5 -
per començarAbans 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 impor-
tà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 co-
dificar-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 pa-
raules é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 reso-
lució de possibles errors.
els errors en els codis no linialsPer 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-
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
distàncies entre les seves paraules. Per poder-la calcular
abans haurem de calcular la distància de Hamming entre to-
tes les paraules.
• detecció d’errors (d-1): es refereix al nombre d’errors que
podrem detectar en el codi. Serà la distància mínima - 1.
codificació
Matemàtiques per a Multimèdia - II Pràctica 1
- 6 -
• correcció d’errors (e): un cop establerta la quantitat d’er-
rors 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 010 100 101 110 111000 0001 1 0010 1 2 0100 1 2 2 0101 2 1 3 1 0110 2 3 1 1 2 0111 3 2 2 2 1 1 0
Codi Distància entre paraules d
C2 0, 1, 2, 3 1
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à ne-
cessari afegir redundància al nostre codi per assegurar-nos que podrem detectar i
corregir els possibles errors generats durant la transmissió.
codificació
Matemàtiques per a Multimèdia - II Pràctica 1
- 7 -
afegint redundànciaDavant 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 corre-
gir 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 pa-
raula 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 facilita-
des en el moment d’emprendre la missió.
codificació
Calcular (d) als codis linialsEn els codis linials la distància
mínima es troba buscant quants
uns té la paraula del codi amb
menys uns, obviant la paraula
formada íntegrament per zeros.
Matemàtiques per a Multimèdia - II Pràctica 1
- 8 -
transformant en codi linialMultipliquem 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
teranyines 000 0000000ampolla 001 0011011
DVD 010 0101110pollastre 100 1001101
llistat telefònic 101 1010110plànols planta nuclear 110 1100011
gra d’arròs 111 1111000
Per altra banda, haurem d’esbrinar quina quantitat d’errors podrem detectar i quants
podrem corregir.
En el nostre cas podem afirmar que:
• d = 4
• errors detectables: d-1 = 4-1 = 3
• errors corregibles:
codificació
Matemàtiques per a Multimèdia - II Pràctica 1
- 9 -
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 re-
sultat 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.
codificació
Matemàtiques per a Multimèdia - II Pràctica 1
- 10 -
detectant i corregint un errorImaginem que la paraula que codifica el gra d’arròs no s’ha trasmès de manera cor-
recta 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.
codificació
Matemàtiques per a Multimèdia - II Pràctica 1
- 11 -
crip
togr
afia
de c
lau
priva
daxi
frat
i de
sxifr
at d
e m
issa
tges
am
b m
ètod
e Cè
sar
Clau CèsarJuli Cèsar va utilitzar aquest
mètode amb la clau secreta
k=3.
Clau simètricaLa clau privada també es coneix
com clau simètrica perquè el
mateix procés que s’empra per
encriptar és vàlid per desen-
criptar.
Matemàtiques per a Multimèdia - II Pràctica 1
- 12 -
un canal insegurLa 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
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 segu-
retat i autenticitat.
Així doncs, la solució va ser enviar els missatges encriptats, de manera que el pos-
sible atacant del canal no fos capaç d’interpretar el missatge.
Al llarg dels segles s’han creat diferents sistemes criptogràfics, uns més rudimenta-
ris 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
receptor compartissin el mateix decodificador.
També l’Imperi Romà va veure
com s’ideaven sistemes de trans-
missió segura de missatges. Entre
ells va destacar el sistema d’en-
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
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 se-
guint el mateix procediment.
Matemàticament, cadascun dels elements que intervenen en aquest procés s’iden-
tifica d’una manera diferent:
• m = missatge
• k = clau privada
• c = missatge encriptat.
criptografiade clau privada
Escítalo
Màquina ENIGMA
Matemàtiques per a Multimèdia - II Pràctica 1
- 13 -
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 mis-
satge.
el mètode CèsarEl sistema de clau privada de Juli Cèsar consisteix en en-
criptar un missatge caràcter a caràcter a partir d’una clau
k. Històricament, l’algoritme de Cèsar es basava en un
conjunt que comprenia 26 claus, una per cada lletra de
l’alfabet. Tot i així, aquest nombre pot variar si l’emissor i el
receptor es posen d’acord en ampliar el nombre de claus
amb què treballar. N’hi hauria prou, per exemple, incloent els nombres del 0 al 9.
Seguint aquest mètode el sistema de claus quedaria de la següent manera:A B C D E F G H I J K L M N1 2 3 4 5 6 7 8 9 10 11 12 13 14Ñ O P Q R S T U V W X Y Z15 16 17 18 19 20 21 22 23 24 25 26 27 28
Amb aquest sistema hem intercanviat missatges al Fòrum de la nostra aula. Per fer-
ho s’ha seguit el següent procediment:
1. ESTABLIR UNA CLAU PRIVADA.Com que estem treballant sobre un sistema d’encriptació de clau privada, el primer
que ha calgut fer ha estar consesuar una clau amb el nostre interlocutor. En aquest
cas s’ha acordat que k=8.
2. ENCRIPTAR EL MISSATGE.m = Bona tarda Carles! El dimarts vint-i-quatre toquem a Luz de Gas.
funció: c = E8(m) [canviem cada caràcter pel que està 8 unitats més endavant].
c = jwuihaizlihkizsm mshlptiza cpuapybiazmhawybmthihsbghlmhñi
B o n a t a r d a C a rj w u i h a i z l i h k i zl e s ! E l d i m a r t ss m m s h l p t i z av i n t - i - q u a t r ec p u a p y b i a z m ht o q u e m a L u z da w y b m t h i h s b g h le G a s .m h ñ i
criptografiade clau privada
Aritmètica modularL’algoritme de Cèsar, a l’igual
que molts altres sistemes de
numeració, es basa en càlculs
d’aritmètica modular.
L’aritmètica modular estableix la
quantitat base que marcarà el
sistema de numeració. Aquesta
quantitat és el que s’anomena
mòdul (mòdul 24 en el cas de
les hores, mòdul 360 en el cas
dels angles,...).
Quan un nombre supera el
mòdul (m) se li ha de restar els
múltiples necessaris per arribar
a m-1.
Llavors direm que el nombre és
congruent amb el residu que
ha quedat dins dels límits del
mòdul. Per exemple:
Matemàtiques per a Multimèdia - II Pràctica 1
- 14 -
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’apli-
cació 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 u i h a i z l i h q i bB o n a t a r d a J a ut m m x m z w h y b m hm e E s p e r o q u ea p u ñ b m b h t w s a i ht i n g u e u m o l t a
w z as o r t .
criptografiade clau privada
Matemàtiques per a Multimèdia - II Pràctica 1
- 15 -
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.
criptografiade clau privada
Matemàtiques per a Multimèdia - II Pràctica 1
- 16 -
crip
toan
àlis
iat
ac c
ripto
anal
ític
i inv
estig
ació
exh
aust
iva
de c
laus
Matemàtiques per a Multimèdia - II Pràctica 1
- 17 -
criptologiaper començarPer 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 inter-
ceptar 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 re-
presentació 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 desen-
criptació d’un missatge presentat al Fòrum.
cerca exhaustiva de clausEn 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 ex-
haustiva 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 pos-
sibles 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 probabilitatLa probabilitat de que succeeixi un esdeveniment està directament relacionada amb
la quatitat de casos favorables i la quantitat de casos possibles que es poden donar
en una situació concreta. Dit d’una altra manera:
P(S) = nombre de casos favorables (S) / nombre de casos possibles
Aquesta relació entre casos favorables i casos possibles és de summa importància
a l’hora de valorar la facilitat o dificultat d’encertar en un atac amb cerca exhaustiva
1 Cruells P. Sáez G.: Criptografia de clau privada, pàg.5 [material docent] UOC.
Fortalesa del sistema CèsarEl sistema d’encriptació Cèsar
presenta poca fortalesa davant
d’un atac a partir d’una cerca
exhaustiva de claus.
El fet que estigui composat tan
sols per 26 claus fa que la seva
desencriptació sigui molt senzi-
lla, fins i tot de manera manual.
Tan sols cal provar les 26 claus.
1123
Matemàtiques per a Multimèdia - II Pràctica 1
- 18 -
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 dema-
narà, 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 missatgePer 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:
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.
criptologia
Matemàtiques per a Multimèdia - II Pràctica 1
- 19 -
ATAC CRIPTOANALÍTICCERCA EXHAUSTIVA DE CLAUS
mostra k mVCZOÑGOAHW 1 UBYÑNFÑ GVVCZOÑGOAHW 2 TAXNMENZFUVCZOÑGOAHW 3 S WMLDMYETVCZOÑGOAHW 4 RZVLKCLXDSVCZOÑGOAHW 5 QYUKJBKWCRVCZOÑGOAHW 6 PXTJIAJVBQVCZOÑGOAHW 7 OWSIH IUAPVCZOÑGOAHW 8 ÑVRHGZHT OVCZOÑGOAHW 9 NUQGFYGSZÑVCZOÑGOAHW 10 MTPFEXFRYNVCZOÑGOAHW 11 LSOEDWEQXMVCZOÑGOAHW 12 KRÑDCVDPWLVCZOÑGOAHW 13 JQNCBUCOVKVCZOÑGOAHW 14 IPMBATBÑUJVCZOÑGOAHW 15 HOLA SANTI
Al quizè intent hem aconseguit trencar la clau d’aquest missatge. Si apliquem aques-
ta 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ñ wggo-
husgñ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 tam-
bé ens hem d’enviar missatges xifrats.
Ens seguim llegint.
Tània
criptologia
criptologia
Matemàtiques per a Multimèdia - II Pràctica 1
- 20 -
un altre sistema: l’atac estadísticLa 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àctero 15/132 As 12/132 Eg 10/132 Sw 9/132 Ia 8/132 Nz 8/132 Li 7/132 Uh 6/132 Tf 4/132 Rc 3/132 Oe 2/132 Qd 1/132 Pl 1/132 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.
Matemàtiques per a Multimèdia - II Pràctica 1
- 21 -
crip
togr
afia
de c
lau
públ
ica
xifr
at i
desx
ifrat
de
mis
satg
es a
mb
mèt
ode
RSA
23
11
Matemàtiques per a Multimèdia - II Pràctica 1
- 22 -
criptografiade clau pública
un canvi radicalFins 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-
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:
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.
Això suposa un clar avantatge sobre els sistemes de clau privada. Ara ja no és ne-
cessari 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?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.
el mètode RSABasat doncs en la potenciació modular a partir de mòduls de nombres primers,
aquest sistema crea les claus de la següent manera:
Es busquen dos nombres primers primers prou grans (l’ideal
seria entre 100 i 300 xifres). Aquests dos nombres seran p i q.
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 (p-
1)·(q-1). Aquest producte ens indica la quantitat d’inversos
que podem trobar dins del mòdul n. [ phi(n)=(p-1)·(q-1)]
Clau asimètricaEl sistema criptogràfic de clau
pública també s’anomena de
clau asimètrica.
A diferència dels sistemes
criptogràfics de clau privada,
on la clau (k) permet encriptar i
desencriptar (m), la criptografia
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 exclusi-
va del receptor.
RSAAquest 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-
cional (funció trampa) basada
en l’aplicació de la potència en
el conjunt d’enters modulars a
partir de la propietat de l’ele-
ment invers de la multiplicació.
456
11
23
4
Matemàtiques per a Multimèdia - II Pràctica 1
- 23 -
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.
es calcula el nombre d. En el nostre cas aquest càlcul el rea-
litza la calculadora RSA.
es fa pública la clau (e, n) i es manté en secret la clau privada
(d).
encriptacióAmb la clau pública i privada ja establertes ja estem en disposció d’encriptar missat-
ges. 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.
Traduïm el nostre missatge a versió numèrica.
m = Hola Carles
m = 0917130100030120130621
Dividim m en blocs d’una longitud igual a (longitud.n)-1.
0 || 917 || 130 || 100 || 030 || 120 || 130 || 621
Encriptem els blocs amb la clau pública (e) del receptor.
E(eCarlesnCarles)(000) = 0
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
En el cas que alguna encriptació tingui una longitud inferior a
(longitud.n) caldrà igualar amb zeros.
0 = 000 || 87 = 087
Càlcul del nombre dEl càlcul del nombre d no és
conceptualment complicat però
si és costosa la seva resolució si
es treballa amb nombres grans.
d = e - 1 (mòd phi(n))
criptografiade clau pública
Versió numèricaPer transformar m en un mis-
satge en versió numèrica hem
seguit una codificació bàsica
estàndard.
Aquest sistema es basa en
l’adjudicació consecutiva de dos
dígits a cada caràcter de l’alfa-
bet, inclòs l’espai (00 és l’espai
en blanc, 01=a, 02=b,..., 28=z).
6Matemàtiques per a Multimèdia - II Pràctica 1
- 24 -
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
desencriptacióAl nostre torn, nosaltres també hem fet pública la nostra clau i hem rebut un missat-
ge encriptat (c) que ara haurem de desencriptar. Per fer-ho revertirem els passos
del procés d’encriptació.
Hem comunicat al Fòrum la nostra clau pública: (533,8633).
Hem rebut un missatge d’en Carles.
Càlcul de la clau pública• p = 89
• q = 97
• n = 8633
• phi(n) = 8448
• e = 533
• d = 317
criptografiade clau pública
12
3
45
Matemàtiques per a Multimèdia - II Pràctica 1
- 25 -
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
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 acabarCom 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 claucada usuari disposa de la mateixa clau cada usuari disposa de dos claus
la clau d’encriptació és privada la clau d’encriptació és públicaes basa en un sistema simètric es basa en un sistema asimètric
requereix un canal segur no requereix un canal segurno assegura autenticitat del missatge assegura l’autenticitat del missatgeno assegura la integritat del missatge assegura l’autenticitat del missatge
no assegura l’autoria del missatge assegura l’autoria del missatge
criptografiade clau pública
Matemàtiques per a Multimèdia - II Pràctica 1
- 26 -
Cès
arAp
pac
tivita
t sob
re e
ncrip
taci
ó pe
r alu
mne
s de
Cic
le M
itjà
CèsarApp
Matemàtiques per a Multimèdia - II Pràctica 1
- 27 -
Presentem aquí CèsarApp, una senzilla aplicació interactiva desenvolupada ínte-
grament 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.
Matemàtiques per a Multimèdia - II Pràctica 1
- 28 -
bibl
iogr
afia
• http://ca.wikipedia.org/wiki/Bit_de_paritat
• http://www.saberhistoria.com.ar/2010/04/08/cesar-sin-cesarea/
busto_piedra_julio_cesar/
• 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