Elementos de Criptografia
Elementos de Criptografia
Elementos de Criptografia
criptografa
Lloren Huguet Rotger
Josep Rif Coma
Juan Gabriel Tena Ayuso
PID_00200951
Los textos e imgenes publicados en esta obra estn sujetos excepto que se indique lo contrario a
una licencia de Reconocimiento-NoComercial-SinObraDerivada (BY-NC-ND) v.3.0 Espaa de
Creative Commons. Podis copiarlos, distribuirlos y transmitirlos pblicamente siempre que citis
el autor y la fuente (FUOC. Fundaci per a la Universitat Oberta de Catalunya), no hagis un uso
comercial y no hagis una obra derivada. La licencia completa se puede consultar en
http://creativecommons.org/licenses/by-nc-nd/3.0/es/legalcode.es
CC-BY-NC-ND PID_00200951
Elementos de criptografa
ndice
Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.
1.1.
Criptosistema DES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.
Criptosistema IDEA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
1.3.
Criptosistema AES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
1.4.
14
16
2.1.
Funciones unidireccionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
2.2.
Criptosistema RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
2.2.1.
18
2.2.2.
2.
19
Criptosistema ElGamal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
2.3.1.
21
2.3.2.
22
2.4.
23
2.5.
25
2.5.1.
El algoritmo MD5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
2.5.2.
El algoritmo SHA-1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
29
2.3.
2.6.
2.6.1.
la recomendacin X.509 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
32
33
3.1.
Criptografa cuntica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
3.2.
2.6.2.
3.
3.3.
post-cuntica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
3.2.1.
37
3.2.2.
Cdigos lineales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
3.2.3.
43
3.2.4.
45
3.2.5.
46
47
3.3.1.
Criptosistema de McEliece . . . . . . . . . . . . . . . . . . . . . . . . . . . .
47
3.3.2.
Criptosistema de Niederreiter. . . . . . . . . . . . . . . . . . . . . . . . .
49
CC-BY-NC-ND PID_00200951
Elementos de criptografa
Ejercicios de autoevaluacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
51
Solucionario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
52
Bibliografa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
56
CC-BY-NC-ND PID_00200951
Elementos de criptografa
Introduccin
Tradicionalmente, la criptografa tiene como objetivo la transmisin o almacenamiento de mensajes indescifrables para todo receptor que no disponga de
la clave del algoritmo de descifrado.
Hoy, la criptografa se presenta como la solucin al problema de la vulnerabilidad de los sistemas de transmisin, o de almacenamiento, con respecto al
secreto y a la autenticidad de la informacin transmitida, o almacenada. El
objetivo concerniente a la privacidad y autenticidad asociados a una red de
sistemas es evitar que un espa pueda violar o eliminar la proteccin del sistema en referencia a las lneas de comunicacin, a la conexin de acceso a la
red (contraseas) y a la utilizacin de los recursos de un determinado sistema.
En tiempos pasados, la criptografa ha sido una actividad casi exclusivamente
utilizada en la diplomacia y en la guerra, pero, a partir de la Segunda Guerra
Mundial, la aparicin de los ordenadores ha hecho que todos los sistemas criptogrficos utilizados antes, excepto el mtodo de Vernam (basado en claves de
un solo uso y del cual se puede demostrar matemticamente su inviolabilidad), formen parte de la historia puesto que la velocidad en el tratamiento de
la informacin hace que sea un juego de nios el problema de encontrar sus
correspondientes claves (criptoanlisis).
De esta simplicidad de los mtodos clsicos es un ejemplo el sistema criptogrfico, llamado de Julio Csar, por ser l su primer usuario, utilizado todava
durante la segunda guerra mundial, que consista en numerar los caracteres
alfabticos y cifrar el mensaje m como el criptograma c, mediante una traslacin cclica que hoy enunciaramos como c = (m + k) (mod 25), donde m es el
valor numrico asignado a cada letra del alfabeto {A = 0,B = 1,...,Z = 24}, por
ejemplo, y para un cierto valor de k previamente elegido (Cesar escoga k = 3).
Lectura recomendada
Para hacer ms
comprensible este mdulo
didctico se puede
acompaar del libro de
Criptografa de J. Domingo,
J. Herrera y H. Rif-Pous de
los estudios de Informtica
y Multimedia, de la UOC.
CC-BY-NC-ND PID_00200951
Elementos de criptografa
y Dk , respectivamente.
Criptoanlisis
Fuente
Cifrado
Ek(m) = c
Descifrado
Dk(c) = m
Ek
Mtodos
de cifrado
Receptor
Dk
Mtodos
de descifrado
Claves
Canal seguro
Principios de Kerchoff
Adems, siempre se deber tener en cuenta los objetivos de privacidad y autenticidad, donde se considera:
En criptografa, las
propiedades deseables de un
criptosistema constituyen los
principios de Kerckhoff; de
entre ellos, los ms
importantes: Si el
criptosistema no es
tericamente irrompible, al
menos lo debe ser en la
prctica. La efectividad del
criptosistema no debe
depender de que su diseo
permanezca en secreto. El
criptosistema debe ser fcil
de usar. La clave debe ser
fcilmente memorizable, para
evitar recurrir a notas escritas.
Los criptogramas deberan
ser alfanumricos.
CC-BY-NC-ND PID_00200951
Elementos de criptografa
Lectura recomendada
W. Diffie; M. Hellman.
New Directions in
Criptography. IEEE
Transactions on Information
Theory (vol. IT-22).
CC-BY-NC-ND PID_00200951
Objetivos
En los materiales didcticos de este mdulo el estudiante encontrar los contenidos necesarios para alcanzar los objetivos siguientes:
Elementos de criptografa
CC-BY-NC-ND PID_00200951
Elementos de criptografa
Nos referiremos a los criptosistemas como simtricos o de clave privada cuando el emisor y el receptor comparten una nica clave k. Por esto, establecemos
como caracterstica principal la existencia de un canal seguro a travs del cual
el emisor transmite al legtimo receptor su clave privada k de forma que queda
protegida ante un criptoanalista.
Criptoanlisis
Fuente
Cifrado
Ek(m) = c
Descifrado
Dk(c) = m
Claves
Receptor
Canal seguro
El emisor quiere enviar cifrado el mensaje m, por lo cual, mediante el algoritmo de cifrado calcula el criptograma c a partir de m y de la clave k:
Ek (m) = c
El receptor debe ser capaz de descifrar el criptograma c, a partir del conocimiento de la clave k, es decir, reencontrar el mensaje m mediante:
Dk (c) = m
CC-BY-NC-ND PID_00200951
10
Elementos de criptografa
Li = Ri1 ,
Ri = L1 f (Ri1 ,ki )
donde es la operacin or-exclusiva y ki es una sub-clave de 48 bits obtenida
a partir de la clave original k.
Cada una de las 16 iteraciones del algoritmo DES utiliza una clave diferente
de 48 bits, ki , calculada a partir de la clave k de 64 bits, la cual posee 8 bits de
control en las posiciones 8,16,24,32,40,48,56,63, mediante una permutacin
P1 de 56 bits. El resultado P1 (k) se divide en dos partes de 28 bits cada uno,
a los que se aplica un desplazamiento a la izquierda diferente para cada subclave ki .
Enlace de inters
Se puede encontrar un
aplicativo de simulacin del
DES, de uso libre, en la
direccin:
www.criptored.upm.es.
CC-BY-NC-ND PID_00200951
Elementos de criptografa
11
Nota
Permutacin inicial PI
R0
L0
f(R0,k1)
k1
R1
L1
f(R1,R2)
k2
L2
R2
L14
R14
f(R14,k15)
k15
R15
L15
f(R15,k16)
R16
k16
L16
Inversa de PI
c = texto cifrado
CC-BY-NC-ND PID_00200951
12
Elementos de criptografa
El mtodo de triple cifrado puede ser utilizado para evitar el ataque criptoanaltico del meet in the middle.
16
+ 1 (este valor, 2
16
Enlace de inters
Se puede encontrar un
aplicativo para la
simulacin del IDEA, de uso
libre, en la direccin:
www.criptred.upm.es.
CC-BY-NC-ND PID_00200951
m1
k11
Elementos de criptografa
13
m2
k12
m3
k13
k15
m4
k14
k16
7 pasos
ms
k91
k92
c1
k93
k94
c3
c2
c4
+1
Enlace de inters
Se puede encontrar un
aplicativo de simulacin del
AES, de uso libre,
denominado AES Inspector
en la direccin:
www.formaestudio.como
/rijndaelinspector.
CC-BY-NC-ND PID_00200951
14
Elementos de criptografa
Criptoanlisis
tres transformaciones, o capas distintas donde se tratan los bits, que constan de:
Las operaciones implicadas en AES se expresan en trminos algebraicos empleando cierta aritmtica de bytes. En esta aritmtica, la suma y el producto
de bytes son justamente la suma y el producto en el cuerpo finito F28 , construido a partir del polinomio primitivo: p(X) = X8 + X4 + X3 + X + 1.
El disponer de un estndar de
cifrado de uso generalizado
tiene un gran inconveniente:
que todo el mundo quiere
romperlo. Al exigir claves con
una longitud mnima de 128
bits, el NIST dotaba a su
cifrado de una seguridad ms
que suficiente contra un
ataque de fuerza bruta; el
nico mtodo que venci al
anterior estndar, el DES.
Descubrir una clave de 128
bits comprobando una a una
todas las posibles es una
tarea prcticamente eterna
para cualquier ordenador de
hoy en da. Incluso para
todos ellos trabajando juntos.
Y 256 bits son garanta de
sobra contra todos los
ordenadores electrnicos que
se construyan en las prximas
dcadas. Ser necesario algo
ms que fuerza bruta para
derrotar al AES. Durante el
concurso, el vencedor
Rijndael (igual que el resto de
los finalistas) prob ser
inmune a todos los mtodos
de criptoanlisis conocidos
hasta aquel momento.
CC-BY-NC-ND PID_00200951
15
Elementos de criptografa
Cifrado en bloque: donde el texto original se procesa en bloques disjuntos de 64 bits, los bloques de salida de los cuales, tambin de 64 bits, se
concatenan para formar el texto cifrado. Este modo suele llamarse ECB
(Electronic Code-Book). Esta manera de cifrar/descifrar impide, por un lado,
la supresin y/o insercin de bloques de texto cifrado, porque en cualquier
caso el receptor sera incapaz de descifrar el criptograma recibido y, por lo
tanto, quedara alertado de las posibles intrusiones. Por otro lado, los ataques estadsticos tambin se complican, debido a la interdependencia del
texto cifrado a lo largo de todo el proceso. Una alternativa es el denominado cifrado en bloques encadenados, consistente en dividir el texto que
hay que cifrar en bloques y hacer depender el bloque n-simo de texto cifrado/descifrado del bloque (n 1)-simo. Es decir:
cn = Ek (mn cn1 )
mn = Dk (cn ) cn1
El primer bloque de entrada al proceso de cifrado est formado por la or
exclusiva entre el primer bloque del mensaje y los 64 bits del vector inicial
c0 = VI, el cual es compartido por los algoritmos de cifrado y de descifrado.
Este modo suele denotarse CBC (Cipher Block Chaining).
Secreto perfecto de
Shannon
El hecho de que los registros
de desplazamiento que
generan la secuencia binaria
k1 ,k2 ...kn tengan un periodo
finito est en contraposicin
con los requerimiento del
secreto perfecto de Shannon,
porque, si el texto a cifrar es
muy largo, se repetir la clave
de forma determinista.
CC-BY-NC-ND PID_00200951
16
Elementos de criptografa
Separabilidad
escritura/lectura
Este tipo de criptosistemas
son muy indicados para la
proteccin de ficheros
pblicos, puesto que el
hecho de poder escribir
informacin sobre el fichero
no implica poderla leer y
viceversa, porque las claves
de escritura y lectura son
independientes, pese a que
estn relacionadas.
Firma digital
En general, se enva la firma
por una parte y el mensaje,
cifrado o no, por otra parte;
segn la necesidad de
privacidad del mensaje. As, si
A quiere enviar un mensaje
firmado a B, enviar m, o
EkB (m) y la firma
correspondiente:
s = DkA (h(m)). Entonces, B
recupera m con su clave
privada que compara con el
resultado de aplicar el cifrado
con la clave pblica de A a s.
Si ambos resultados
coinciden se acepta la
autenticacin y de lo
contrario se rechaza. Incluso,
como veremos ms adelante,
lo que se enviar es el
mensaje m, cifrado o no, y la
firma de un resumen del
mensaje: h(m) (funcin de
hash). En tal caso la firma
ser: s = DkA h(m) (ver el
algoritmo de firma DSA).
CC-BY-NC-ND PID_00200951
17
Elementos de criptografa
Observar que la definicin no es muy precisa: los trminos fcilmente calculable, para casi todo y computacionalmente factible son muy imprecisos, aunque se
pueden definir matemticamente para que tengan un sentido perfectamente
preciso.
.
Definicin 2.2 (Funcin unidireccional con trampilla).
Una familia de funciones invertibles fk con dominio Uk , con ndice k,
se llama funcin unidireccional con trampilla si, dado k, se pueden encontrar algoritmos Ek y Dk que calculen fcilmente fk (x) y fk1 (y) x Uk
Algoritmo de multiplicar
y elevar
Para valores de x grandes,
podemos usar el mtodo
binario de exponenciacin
(D. E. Knuth (1981). The Art
of Computer Programming.
vol. 2 Semi-Numerical
Algorithms. Addisson Wesley).
Por ejemplo (vase el
algoritmo 3.2 del mdulo
Cuerpos finitos de esta
asignatura), para calcular 25
se puede realizar de esta
forma: 25 = 16+8+1 =
(((2 )2 )2 )2 ((2 )2 )2 .
CC-BY-NC-ND PID_00200951
18
Elementos de criptografa
grandes y e cumple 0 < e < (n) y mcd(e, (n)) = 1. El algoritmo Ek para calcular
fk (x) es relativamente fcil; es la exponenciacin por el mtodo de multiplicar y elevar mencionado anteriormente. Hacer pblico este algoritmo requiere
Clculo de (n)
Para valores grandes de p y q,
no es computacionalmente
eficiente el clculo de (n),
para quien no conoce los
valores de p y q.
divulgar n y e.
Teorema de Euler
donde d es el nico 0 < d < n tal que e d = 1 (mod (n)). El algoritmo fk1 es
Trampilla
fcil de calcular para quien conoce la clave (d,n). Pero solo conocer d, quien
conozca (n), difcilmente calculable para quien no conoce la factorizacin de
n en p y q (esta es la trampilla de la funcin unidireccional utilizada).
La manera de obtener un buen esquema de cifrado y descifrado recae en la posibilidad de obtener (n). Rivest, Shamir y Adleman sugieren este tratamiento:
CC-BY-NC-ND PID_00200951
19
Elementos de criptografa
Veamos un ejemplo aunque los valores empleados no son los que se podran
usar en la realidad.
para ambos objetivos de privacidad y autenticidad. En base a esta conmutatividad se puede utilizar el RSA para construir firmas digitales.
En este caso, si suponemos dos usuarios A y B, con claves pblicas (eA ,nA ) y
(eB ,nB ) y claves privadas (dA ,nA ) y (dB ,nB ), respectivamente, podremos arbitrar
un sistema de firma digital como se ha mencionado anteriormente.
Si el usuario A quiere enviar el mensaje m, firmado digitalmente, al usuario B,
proceder de la forma siguiente:
Por parte del usuario A:
1) Firmar m con su clave privada: s = D(dA ,nA ) (m)
2) Cifrar la firma con la clave pblica de B: c = E(eB ,nB ) (s)
CC-BY-NC-ND PID_00200951
Elementos de criptografa
20
Ejemplo 2.2.
Usuario A:
Sean p = 29 y q = 7 los valores escogidos por A. Entonces nA = 29 7 = 203 y (nA ) =
28 6 = 168.
Supongamos que A escoge: (eA = 19,nA = 203) como clave pblica, entonces (dA =
115,nA = 203) ser su clave privada.
Usuario B:
Sean p = 13 y q = 17 los valores escogido por B. Entonces nB = 13 17 = 221 y (nB ) =
12 16 = 192.
Supongamos que B escoge: (eB = 11,nB = 221) como clave pblica, entonces (dB = 35,nB =
221) ser su clave privada.
Si suponemos que el conjunto de mensajes originales es M = {A,B,...,Y,Z} y la correspondiente asignacin numrica es Mn = {2,3,...,26,27}, y queremos firmar digitalmente
el texto original EDI o, numricamente, 060510, haremos sucesivamente:
Nota
El usuario B acepta EDI como
el mensaje que le ha enviado
A, sencillamente porque para
l es inteligible; pero esto en
muchos casos no sera
suficiente. Tal y como
veremos, en otros casos, la
estrategia de firma ser
diferente.
CC-BY-NC-ND PID_00200951
Elementos de criptografa
21
Ver tambin
El algoritmo DSA se estudia
en el subapartado 2.4 de este
mdulo.
de aqu, cada usuario U escoge al azar un entero rU [2,p 1] que ser su clave
privada. Su clave pblica ser yU = rU (mod p) Fp .
Entonces, si un usuario A quiere transmitir al usuario B el criptograma correspondiente al mensaje original m Fp , deber hacer las siguientes operaciones
dentro de Fp :
.
Fortaleza
Nota
El resultado de esta operacin
ha de ser, efectivamente,
igual a m, ya que KrB
(mod p) = (rB )k
(mod p) = (yB )k (mod p).
Ejemplo 2.3.
Supongamos el cuerpo finito F23 y sea = 5 el elemento primitivo elegido*. Si rA = 13,
la clave pblica del usuario A ser yA = 513 (mod 23) = 21. Si rB = 17, la clave pblica del
usuario B ser yB = 517 (mod 23) = 15.
Si el usuario A quiere transmitir al usuario B el mensaje m = 18 efectuar los siguientes
clculos:
1) Tomar al azar un entero, por ejemplo k = 7, y calcular K = 57 (mod 23) = 17
2) Cifrar m = 18, sabiendo que yB = 15, como: c = E15 (18) = 18 157 (mod 23) = 14.
3) Transmitir el par de nmeros (17,14).
CC-BY-NC-ND PID_00200951
22
Elementos de criptografa
Entonces el usuario B podr recuperar m a partir del par de nmeros recibidos, (K,c),
haciendo las siguientes operaciones dentro de F23 :
1) Calcular = 1717 (mod 23) = 11
2) Calcular c/ = 14/11 (mod 23) = 18; (111 (mod 23) = 21).
Este resultado coincide con el valor del mensaje original, m = 18.
valores que solo conoce el usuario A; por lo tanto solo l ser capaz de calcular
la firma s.
3) La firma digital es el par de nmeros (K,s). Entonces transmitir (K,s,m),
aunque, opcionalmente, quiz pueda querer tambin cifrar el mensaje m, c =
Firma ElGamal
Se puede calcular, de forma
directa, haciendo
s = (m rA K) k1
(mod q 1).
m = (yA )K Ks
(mod p)
Ejemplo 2.4. Suponemos que continuamos con las mismas hiptesis del ejemplo anterior: F23 , = 5, rA = 13 y rB = 17 La clave pblica del usuario A es yA = 21 y la clave
pblica del usuario B es yB = 15.
Si A quiere transmitir el mensaje m = 18 al usuario B de forma secreta y autenticada, har
los siguientes clculos:
Verificacin
Efectivamente: (yA )K = (K )rA
Ks = (k )s = (mrA K) =
m (K )rA
El producto de ambas
igualdades resulta ser, m .
CC-BY-NC-ND PID_00200951
23
Elementos de criptografa
Los nmeros p, q y son pblicos para todos los usuarios de la red, mientras
que x es la clave privada e y es la clave pblica.
Sea m el mensaje que A quiere enviar a B, firmado para que B pueda autenticarlo.
El usuario A, del cual se suponen conocidos los parmetros anteriores, excepto
x, deber realizar las siguientes operaciones:
Funcin unidireccional
hash
Una funcin hash, h, viene
definida por una serie de
operaciones que transforman
un mensaje m, de longitud
variable, en una secuencia de
pocos bits, h(m), de longitud
fija, como veremos en el
prximo subapartado.
CC-BY-NC-ND PID_00200951
Elementos de criptografa
24
s = ((h(m) + x r) k1 ) (mod q)
3) Enviar el mensaje m y su firma digital (r,s).
Verificacin de firma
SHA
h(m)
x
Signatura
r
s
DSA
p,q,g
Fichero
pblico
Verificacin
p,q,g
SHA
Signatura
rechazada
h(m)
No
DSA
v=r
S
Signatura
aceptada
CC-BY-NC-ND PID_00200951
25
Ejemplo 2.5.
Suponemos que el conjunto de mensajes originales es M = {A,B,...,Y,Z} y la correspondiente asignacin numrica Mn = {2,3,...,26,27}. Si el usuario A quiere firmar digitalmente el texto original EDI o, numricamente, 060510, teniendo en cuenta los parmetros
del criptosistema, har las siguientes operaciones:
Parmetros pblicos:
p = 29,q = 7 (n = (p 1)/q = 28/7 = 4)
= 54 (mod 29)=16; (g = 5)
Clave privada: x = 3
Clave pblica y = 163 (mod 29) = 7
Parmetro aleatorio secreto: k = 6
Elementos de criptografa
Criticidad de la funcin
de hash
Si suponemos que enviamos
un texto diferente con la
misma firma (EDJ, 6, 1), el
usuario B hara los siguientes
clculos:
h(EDJ) = 8;
(h(06,05,11) = 6 11
(mod 29) = 8)
w = 11 (mod 7) = 1
u1 = 8 1 (mod 7) = 1
u2 = 6 1 (mod 7) = 6
v = (161 76 (mod 29))
(mod 7) = 23
(mod 7) = 2(6= r = 6), con lo
cual no se autenticara la
firma.
Sin embargo, hay que
observar que si el mensaje
firmado hubiera sido BUS,
como que
h(BUS) = h(03,22,20) = 3 20
(mod 29) = 2, derivara la
misma firma. Con lo cual, se
puede ver que la eleccin de
la funcin de hash es crtica
respecto a este algoritmo.
Enlace de inters
Se puede encontrar un
aplicativo de simulacin de
las funciones hash MD5 y
SHA-1, de uso libre, en la
direccin:
www.criptored.upm.es.
CC-BY-NC-ND PID_00200951
26
Elementos de criptografa
Paso 3: Iniciar el buffer MD. Para guardar tanto los resultados intermedios
como el resultado final, se utiliza un buffer de 128 bits, el cual se representa
por cuatro palabras de 32 bits, A,B,C,D, que se inician con los siguientes
valores hexadecimales:
01234567
89ABCDEF
FEDCBA98
76543210
CC-BY-NC-ND PID_00200951
Elementos de criptografa
27
Yq
512
512
MDq
32 A
B
128
C
D
512
512
512
32
fF
A
B
C
D
fG
A
B
C
D
fF
A
B
C
D
+
+
fI
+
+
512
512
512
512
T[1_16]
T[17_32]
T[33_48]
T[49_64]
128
Cada etapa tiene como entrada el respectivo bloque de 512 bits (Yq ) y el
valor del buffer A,B,C,D de 128 bits y actualiza el contenido del buffer. En
cada etapa tambin se utiliza una cuarta parte de los 64 elementos de una
tabla T[1..,64] que proporciona un conjunto seudo-aleatorio de secuencias
de 32 bits, que sirven para eliminar cualquier regularidad en los datos de
entrada. Por lo tanto, el proceso del bloque Yq consiste en coger como
entrada el mismo Yq y el resultado (message digest) intermedio correspondiente MDq para producir el MDq+1 . Las sumas que se hacen al final de las
cuatro etapas son sumas (mod 232 ).
Paso 5: Salida. Tras procesar los L bloques de 512 bits, la salida MDL1 del
L-simo bloque de proceso es la secuencia hash de 128 bits.
32
128
MDq + 1
CC-BY-NC-ND PID_00200951
28
Elementos de criptografa
El algoritmo tiene como entrada un mensaje de longitud menor que 264 bits
y produce una salida de 160 bits (el message digest). El mensaje de entrada se
procesa en bloques de 512 bits, siguiendo los pasos:
67452301
EFCDAB89
98BADCFE
10325476
C3D2E1F0
Paso 5: Salida. Tras procesar los L bloques de 512 bits, la salida SHAL1 del
L-simo bloque de proceso es la secuencia hash de 160 bits.
SHA-2 y SHA-3
Actualmente, se utiliza la
variante SHA-2, desarrollada
en el 2005 a partir del la
SHA-1, donde la salida puede
ser de 224, 256, 384 o 512
bits, para aumentar la
dificultad de ser roto.
Adems, est en marcha un
concurso pblico para
disear el nuevo estndar
SHA-3, que seguramente se
har pblico durante 2012.
CC-BY-NC-ND PID_00200951
Elementos de criptografa
29
Yq
512
512
512
512
32
SHAq
32 A
B
160
C
D
E
PASO0
A
B
C
D
E
PASO1
...
A
B
C
D
E
+
+
PASO79
32
160
SHAq + 1
+
+
32
K0
32
K1
32
160
K79
Para dar cumplimiento a estas dos condiciones, se utiliza el certificado electrnico, emitido por una autoridad de certificacin (CA). El apoyo tecnolgico
del certificado electrnico es la criptografa de clave pblica. As, puede verse un certificado electrnico como un documento electrnico que asocia una
clave pblica con su propietario.
Por esto, el certificado digital contendr la clave pblica junto con datos de
carcter personal del poseedor de la clave (nombre, DNI...). Normalmente contiene ms informacin (fechas de validez y otras), as como tambin se refiere
Lectura recomendada
Para hacer ms
comprensible este
subapartado es
recomendable el mdulo 7
del libro de Criptografa de
J. Domingo, J. Herrera y H.
Rif-Pous de los estudios de
Informtica y Multimedia
de la UOC.
CC-BY-NC-ND PID_00200951
30
Elementos de criptografa
al mbito de utilizacin del certificado, lo que se conoce como poltica de certificacin. Por ejemplo, si es un certificado de uso personal o nos acredita para
actuar en una empresa.
Al realizar una firma electrnica se suele adjuntar el certificado electrnico del
firmante de forma que se puede extraer su clave pblica para verificar la firma
y a la vez comprobar la identidad del firmante.
Una infraestructura de clave pblica (PKI, public key infrastructure) es una estructura de sistemas informticos, procedimientos de operacin, protocolos,
polticas de certificacin, repositorios de informacin, estndares, declaraciones de prcticas y recursos humanos, la finalidad de los cuales es ofrecer a los
usuarios una plataforma para la gestin de la identidad digital.
Una PKI dispone de los elementos y de la arquitectura necesarios para integrar
todos los procedimientos de solicitud de certificados, verificacin de identidades, generacin de claves, almacenamiento y publicacin de certificados electrnicos, renovacin, revocacin, etc.
Las infraestructuras de clave pblica se fundamentan en la interaccin de diversos subsistemas, de los cuales destacan los siguientes:
Autoridad de certificacin, CA. Una autoridad de certificacin (CA: certificate authority), es una entidad de confianza, cuya finalidad es emitir,
renovar y revocar certificados electrnicos. Las autoridades de certificacin
constituyen el ncleo de las infraestructuras de clave pblica, que permiten
utilizar los certificados electrnicos con total seguridad.
Ejemplos de autoridad de certificacin
En la actualidad, un usuario puede escoger entre mltiples CA para conseguir un
certificado electrnico, pero las ms utilizadas son; a nivel internacional Verisign, a
nivel estatal FNMT y en el mbito cataln CATCert.
Verisign* es una de las empresas de mayor reputacin internacional y prestigio en el
mundo de la certificacin digital y la seguridad de la informacin. Aunque su abanico de servicios es muy amplio (soluciones comerciales para comercio electrnico,
servidores seguros, tarjetas inteligentes, servidores de nombres de dominio, consultora,...), el ms conocido es el de CA para la expedicin de certificados electrnicos,
ampliamente utilizados en Internet.
Fbrica Nacional de Moneda y Timbre (FNMT)**, es un organismo pblico nacional espaol que depende del Ministerio de Economa que tiene establecida una
arquitectura de certificacin, CERES, para autenticar y garantizar la confidencialidad
de las comunicaciones entre ciudadanos, empresas u otras instituciones y administraciones pblicas a travs de redes abiertas de comunicacin.
CATCert*** es la Agencia Catalana de Certificacin que emite y gestiona la idCAT que
es un certificado electrnico que garantiza la identidad de las personas en Internet y
permite operar con diferentes administraciones.
* http://www.verisign.com
** http://www.fnmt.es
*** http://www.catcert.cat
CC-BY-NC-ND PID_00200951
31
Certificados electrnicos. Un certificado electrnico es un archivo o documento electrnico expedido y firmado por una CA en el cual se vincula
una identidad a una clave pblica, ligado, a su vez, a la correspondiente
clave privada.
Para obtener un certificado electrnico, el usuario se dirige a una RA (autoridad de registro); sta verifica la identidad del usuario y pide a la CA que
expida el certificado.
Directorio lightweight directory access protocol, LDAP. Su finalidad, dentro de una PKI, es la de mantener un registro de usuarios y actuar como
almacn para los certificados electrnicos y la lista de certificados revocados (CRL), que veremos ms adelante. El protocolo LDAP es una versin
simplificada del protocolo X.500 que especifica tanto el modelo de informacin como los mecanismos de acceso a la misma.
Elementos de criptografa
CC-BY-NC-ND PID_00200951
32
Elementos de criptografa
CC-BY-NC-ND PID_00200951
33
Elementos de criptografa
Algoritmo de Shor
CC-BY-NC-ND PID_00200951
34
Elementos de criptografa
Complejidad
1978. Ha habido mejoras y parece ser que la mejor complejidad posible seguir
siendo ms o menos la misma, salvo que quizs en lugar del factor 2 habr una
constante algo menor.
Ver tambin
El algoritmo de Bennet y
Brassard se estudia en el
subapartado 3.1 de este
mdulo.
CC-BY-NC-ND PID_00200951
35
Elementos de criptografa
B utiliza, aleatoriamente, un detector polarizado para detectar polarizaciones vertical-horizontal o polarizaciones en diagonal, pero no las dos al mismo tiempo.
Protocolo de Ekert
En 1991 Artur Ekert present
otro protocolo diferente al de
Bennet y Brasard. En este
caso, A y B reciben los
fotones de una pareja
entrelazada. En este caso,
la seguridad se basa en el
efecto
Einstein-Podolsky-Rosen.
CC-BY-NC-ND PID_00200951
Elementos de criptografa
36
Por ejemplo:
A enva a B:
B utiliza:
B obt:
1101100
Esta secuencia no es conocida por el espa que intenta interferir en la comunicacin entre A y B, puesto que la conversacin (sobre un canal inseguro)
entre A y B solo deca qu detectores se haban usado correctamente. Y,
cada detector puede dar, indistintamente, ambos resultados 1 o 0.
Cualquier espa que intercepte los fotones que enva A los deber re-enviar a
B y, bsicamente, tiene dos grandes problemas:
En una de cada cuatro veces, el detector que est usando el espa no coincide ni con el de A ni con el de B (que, a su vez, coincide con el de A).
En estos casos, A y B estn de acuerdo en el detector que han usado, pero
el bit que obtendrn uno y otro ser distinto. Si A y B descubren (por un
canal que no hace falta que sea secreto) algunos de los bits obtenidos en el
protocolo podrn deducir la presencia del espa y abortar el proceso.
Hay algunos prototipos de este protocolo que estn funcionando sobre fibra
ptica entre distancias del orden de los 200 km (Toshiba Research-2003).
Aun cuando la fsica cuntica nos asegura la validez del protocolo anterior,
desde los primeros intentos de construccin de prototipos que lo implementarn ha habido varios problemas que han aplazado su comercializacin. No
es tan sencilla la construccin segura de todos los dispositivos implicados
CC-BY-NC-ND PID_00200951
Elementos de criptografa
37
Ruido
Emisor
Codificador
Decodificador
Receptor
CC-BY-NC-ND PID_00200951
38
Elementos de criptografa
.
Definicin 3.1 (Cdigo-bloque).
Dada una fuente de informacin S = {A1 ,A2 , ,Ak } y un alfabeto F, se
considera el producto cartesiano Fn .
Ejemplo 3.1.
Supongamos el caso en el que tenemos que transmitir dos posibles mensajes, S = {A1 ,A2 }
donde A1 = Hace sol y A2 = Llueve. El canal por el cual debe circular la transmisin
es binario, es decir, el alfabeto ser F2 = {0,1}.
Un cdigo-bloque para S puede ser C(2,3) = {A1 (0,0,0); A2 (1,1,1)}.
.
Definicin 3.2 (Distancia de Hamming).
Dados dos elementos x,y Fn , definimos su distancia de Hamming
como:
Distancia y mtrica
La distancia de Hamming
satisface las propiedades de la
definicin matemtica de
distancia y define una
mtrica.
x,y,z Fn :
1) dH (x,x) = 0
2) dH (x,y) = dH (y,x)
es decir, la distancia entre dos vectores x e y es la cantidad de componentes diferentes que tienen entre uno u otro.
CC-BY-NC-ND PID_00200951
39
.
Definicin 3.3 (Distancia mnima).
Dado un cdigo C(M,n), definiremos la distancia mnima d, del cdigo,
como:
d = min{dH (x,y) : x 6= y,x,y C}.
.
Definicin 3.4 (Regla de descodificacin a distancia mnima).
Dado un cdigo C(M,n), definiremos la regla de descodificacin a distancia mnima como la que descodifica un vector recibido u Fn por la
.
Definicin 3.5 (Capacidad correctora).
Podemos considerar en Fn las bolas centradas en las palabras-cdigo de
radio el mximo valor posible de forma que las bolas sean disjuntas.
El radio de estas bolas se puede calcular como c = d1
2 y este valor se
denomina capacidad correctora del cdigo.
Diremos que el cdigo es c-corrector.
F}, de dimensin n, sobre F, con las operaciones suma y producto por escalares
Elementos de criptografa
CC-BY-NC-ND PID_00200951
40
.
Definicin 3.7 (Peso de un vector).
El peso wt(v) de un vector v Fn es el nmero de coordenadas no nulas
de este vector. Es decir:
.
Definicin 3.8 (Error de transmisin).
Un error en la transmisin se corresponde con un cambio de coordenada entre la palabra-cdigo de entrada y el vector de salida.
.
Definicin 3.10 (Matriz generadora).
De la definicin de cdigo lineal resulta que todo conjunto de k vectores
de Fn , linealmente independientes, constituye una base de un cdigo
lineal C(n,k). As, todo cdigo lineal puede ser definido por la matriz
k n, donde las k filas son k vectores independientes, de una cierta base
de C.
v =aG
y dando a a = (a1 ,a2 , ,ak ) todos los valores posibles (qk en total),
obtendremos todas las palabras-cdigo de C.
Elementos de criptografa
Coincidencia en los
valores del peso mnimo
y de distancia mnima
Un cdigo lineal tiene la
propiedad que la suma de
dos palabras-cdigo es una
palabra-cdigo, por lo tanto:
dH (u,v) =
#{i : ui 6= vi } =
#{i : ui vi 6= 0} =
wt(u v)
As, en un cdigo lineal, la
distancia entre dos
palabras-cdigo es igual al
peso de otra palabra-cdigo
y, en consecuencia, la
distancia mnima, no nula,
coincide con el peso mnimo
del conjunto de
palabras-cdigo no nulas.
CC-BY-NC-ND PID_00200951
41
Elementos de criptografa
.
Ortogonalidad
Ejemplo 3.2.
Para construir un cdigo lineal binario C(6,3) podemos tomar la siguiente matriz generadora:
B
B
G36 = B 0
@
0
C
C
.
1 C
A
0
v =aG
wt(v)
(0,0,0)
(0,0,0,0,0,0)
(1,0,0)
(1,1,1,0,0,0)
(0,1,0)
(0,1,0,0,1,1)
(0,1,1)
(0,1,0,0,1,1)
(0,0,1)
(0,0,1,1,1,0)
(1,1,0)
(1,0,0,1,0,1)
(1,0,1)
(1,1,0,1,1,0)
(1,1,1)
(1,0,1,0,1,1)
El peso mnimo del cdigo, que coincide con la distancia mnima, es 3 y, por lo tanto,
podr detectar hasta 2 errores en la transmisin, pero solo podr corregir 1.
Por otra parte, se puede verificar que la matriz H36 es una matriz de control para el cdigo C(6,3) anterior, puesto que las tres filas de H son una base del subespacio ortogonal
a C.
0
H36
1
B
B
=B 1
@
0
C
C
.
1 C
A
1
Ortogonal, o perpendicular,
va a significar que el
producto escalar sea cero.
CC-BY-NC-ND PID_00200951
42
S : Fn Fnk ,
tal que cada vector u Fn se transforma en S(u) = H uT . Este valor S(u)
recibe el nombre de sndrome del vector u.
.
Lema 3.14.
Existe una correspondencia biunvoca entre los qnk cosets posibles y los
qnk sndromes posibles.
A causa de esta correspondencia biunvoca entre cosets y sndromes, y habiendo hecho la eleccin de los lderes de los cosets tomando un vector de peso
Elementos de criptografa
CC-BY-NC-ND PID_00200951
43
Elementos de criptografa
Ejemplo 3.3.
Descodificar el vector u = (1,1,0,1,0,1), usando la descodificacin va sndrome, por el
cdigo C(6,3) del ejercicio anterior (este cdigo es 1-corrector).
.
Definicin 3.16 (Cdigos cclicos).
Un cdigo C de longitud n se llama cclico si toda permutacin cclica
de una palabra-cdigo es tambin una palabra-cdigo. Es decir:
v = (v0 ,v1 , ,vn1 ) C = v = (vn1 ,v0 , ,vn2 ) C
Si solo se ha producido un
error, entonces estamos
seguros de que v = v es
realmente la palabra-cdigo
que se haba enviado. De lo
contrario, si se ha producido
ms de un error, entonces la
descodificacin, aun cuando
v C, sera incorrecta.
CC-BY-NC-ND PID_00200951
44
Si llamamos C(X) al conjunto de los polinomios asociados a las palabrascdigo de C, observaremos que: v (X) = X v(X) vn1 Xn ; es decir, que: v (X) =
X v(X) (mod Xn 1).
.
Lema 3.17.
Fn [X], con la suma habitual de polinomios y el producto a(X) b(X) =
.
Lema 3.18.
Un cdigo lineal C(n,k) es cclico C(X) es un ideal de Fn [X]/(Xn 1).
Los dos lemas anteriores nos permiten escribir el siguiente resultado, que es la
base de la construccin de los cdigos lineales y cclicos.
.
Teorema 3.19.
Sea C un cdigo lineal y cclico de longitud n (ideal de Fn [X]/(Xn 1)).
Sea g(X) un polinomio mnico (el coeficiente del trmino de mayor
grado es 1) de grado ms pequeo dentro de C(X). Sea r el grado de
g(X). Entonces se cumple:
1) g(X) es el nico polinomio mnico de grado r en C(X).
2) g(X) es el generador de C(X) como ideal principal de Fn [X]/(Xn 1)
(es decir, v(X) C(X) existe h(X) tal que v(X) = g(X) h(X)).
3) g(X) divide Xn 1 (con n longitud del cdigo).
4) {Xi g(X),0 i (n r 1)}, genera C(X) como subespacio vectorial.
v(X) =
Pnr1
i=0
Este teorema nos permite asegurar que todo polinomio g(X) Fn [X], de grado
r, divisor de Xn 1 genera un cdigo lineal y cclico C(n,k) que tiene por matriz
generadora:
Elementos de criptografa
CC-BY-NC-ND PID_00200951
Gkn
B
B
B
B
B
B
B
=B
B
B
B
B
B
B
@
Elementos de criptografa
45
g0
g1
gn1
g0
g1
gn1
g0
g1
C
C
C
C
0 C
C
C
C
C.
C
C
C
C
C
A
gn1
(mod Xn 1).
Polinomio mnimo de i
Teorema 3.20.
Para todo entero n de la forma n = 2m 1, m 3, y todo entero c tal
polinomio generador:
.
Definicin 3.21 (Los cdigos cclicos BCH).
Un cdigo con las caractersticas del teorema anterior se llama cdigo
BCH primitivo.
i 2
mi (X) = s1
j=0 (X ( ) )
CC-BY-NC-ND PID_00200951
Elementos de criptografa
46
B
B
B
B
B
B
B
H=B
B
B
B
B
B
B
@
n1
...
3(n1)
2c1
(2c1)2
...
(2c1)(n1)
C
C
C
C
C
C
C
C,
C
C
C
C
C
C
A
ya que que v(X) = v0 +v1 X+...+vn1 Xn1 , vi F, ser el polinomio asociado a una
palabra-cdigo v, si y solo si, v(i ) = 0,i = 1,3, ,2c 1. Es decir, las palabras
cdigo son mltiplos del polinomio g(X) que tiene, por construccin, como
ceros los elementos ,3 , ,2c1 (y, tambin, 2 ,6 , ,2c ).
En la tabla siguiente podemos ver los parmetros de algunos cdigos BCH.
n
g(X)
X3 + X + 1
X6 + X5 + X4 + X3 + X2 + X + 1
15
11
X4 + X + 1
X8
7
X10
+ X7 + X6 + X4 + 1
X8
+ X5 + X4 + X2 + X + 1
31
26
X5 + X4 + X2 + 1
21
X10 + X9 + X8 + X6 + X5 + X3 + 1
16
5
7
11
6
X25
X24
X20
X21
g(X) = (X ) (X 2 ) (X d1 )
Correccin de paquetes
de errores
Los smbolos de las
palabras-cdigo son
elementos i F2m , lo cual
quiere decir que cada
smbolo que se transmite por
el canal es un elemento de m
coordenadas binarias. Por lo
tanto, un cdigo de
Reed-Solomon (n,k), en
realidad transmite m k bits
de informacin mediante una
palabra-cdigo de n m bits.
En consecuencia, es
importante sealar que, con
estos cdigos, los errores no
son bits aleatorios sino que
pueden ser paquetes de m
bits, que ser considerado
como un solo error. Esta
caracterstica mejora la
capacidad correctora global,
puesto que en realidad puede
corregir hasta c paquetes de
m errores (cada error es un
cambio de un i por un j ).
CC-BY-NC-ND PID_00200951
Elementos de criptografa
47
Nota
Un cdigo lineal siempre satisface que d n k + 1 (cota de Singleton). Un cdigo que
satisface la igualdad se llama MDS (mxima distancia separable). Evidentemente, los
cdigos RS son de mxima distancia separable.
H(nk)n
B
B
B
B
B
B
B
B
B
=B
B
B
B
B
B
B
B
B
@
n1
...
2(n1)
...
3(n1)
d1
2(d1)
...
(d1)(n1)
C
C
C
C
C
C
C
C
C
C,
C
C
C
C
C
C
C
C
A
ya que v(X) = v0 +v1 X+...+vn1 Xn1 , vi Fm . En este caso, v(X) ser el polinomio
las palabras cdigo son mltiplos del polinomio g(X) que, por construccin,
tiene por ceros los elementos ,2 , ,d1 .
En 1969, Berlekamp y Massey dieron un algoritmo muy eficiente de descodificacin, basado en el teorema de Dirichlet. Estos cdigos han sido ampliamente utilizados en sistemas de almacenamiento de datos (CDs, DVDs,...), en
mdems de alta velocidad (ADSL, DSL,...), en televisin digital (TDT, MPEG2,
MPEG4, . . . ) y tambin propuestos para ser usados en criptografa.
CC-BY-NC-ND PID_00200951
48
ci = EG (mi ) = mi G + e,
siendo e Fn un vector de error arbitrario, escogido por B, tal que wt(e) c.
Pese a tratarse de un criptosistema en el cual los procesos de cifrado y descifrado son relativamente rpidos, en la actualidad se utiliza escasamente. Esto
es debido, principalmente, a los tamaos de clave (219 bits para la clave pblica) y al factor de expansin del mensaje que hace que el criptograma tenga
un tamao un 60 % mayor que el mensaje original. Sin embargo, dado que el
algoritmo de Shor no afecta a este criptosistema, parece ofrecer resistencia al
criptoanlisis basado en computacin cuntica.
Elementos de criptografa
CC-BY-NC-ND PID_00200951
49
Elementos de criptografa
Supongamos que el un usuario B quiere enviar un mensaje cifrado a otro usuario A, que tiene H , como hemos descrito antes, como clave pblica:
ci = (H ) (mi )T F2m ,
que da el sndrome de mi .
CC-BY-NC-ND PID_00200951
McEliece
Niederreiter
Elementos de criptografa
50
(n,c)
(2048,32)
(2048,40)
(4096,22)
(4096,45)
texto original
1928
1888
4024
3904
criptograma
2048
2048
4096
4096
73 kb
86 kb
123 kb
234 kb
texto original
232
280
192
352
criptograma
352
4408
264
540
73 kb
86 kb
123 kb
234 kb
Lectura recomendada
R. Overbeack; N. Sendrier.
(2009). Code-based
cryptography. A: D.
Bernstein; J. Buchmann; J.
Ding (eds.). Post-Quantum
Cryptography (pgs. 95-145).
Springer.
CC-BY-NC-ND PID_00200951
51
Ejercicios de autoevaluacin
1. Un usuario de una red ha recibido el criptograma: 1611,3556,4744,3504 resultado de cifrar
caracteres, individualmente, de M = {A,B, ,Y,Z} {A = 02,B = 03, ,Y = 26,Z = 27};
empleando el criptosistema RSA con la clave pblica n = 7597 y e = 4947. Encontrar el
mensaje original.
2. Utilizar un criptosistema RSA para dos usuarios A y B, con el mismo valor de
n = 151953280470109
Elementos de criptografa
CC-BY-NC-ND PID_00200951
52
Elementos de criptografa
Solucionario
1. Para resolver el problema nos ayudaremos del software SAGE. En primer lugar hace falta
factorizar n:
sage: n = 7597
sage: factor(n)
71 * 107
A continuacin encontraremos el inverso e = 4947 mdulo (n) = 70 106 = 7420:
sage:
sage:
sage:
sage:
3
e = 4947
phi = 7420
d = inverse_mod(e,phi)
print d
power_mod(1611,d,n)
power_mod(3556,d,n)
power_mod(4744,d,n)
power_mod(3504,d,n)
Finalmente, m = ABCD.
2. Utilizaremos el software SAGE para simplificar los clculos. Para empezar, necesitamos pasar del texto alfabtico a mensajes numricos que nos permitan efectuar las operaciones RSA.
Para hacerlo necesitamos definir algunas operaciones previas, las de codificar/descodificar
letras, codificar/descodificar cadenas, cifrar/descifrar nmeros, cifrar/descifrar mensajes. Damos por hecho que la programacin elemental utilizada es conocida por el estudiante:
alphabet = abcdefghijklmnopqrstuvwxyz
L = len(alphabet)
def codifica_char(lletra):
return alphabet.index(lletra)
def descodifica_char(n):
return alphabet[n]
def codifica_text(missatge):
return [codifica_char(c) for c in text]
def descodifica_chain(llista):
return .join([descodifica_char(v) for v in llista])
def chiper_RSA(llista,n,e):
return [power_mod(valor,e,n) for valor in llista]
def unchiper_RSA(llista,n,d):
return [power_mod(valor,d,n) for valor in llista]
a) Con estas definiciones previas podemos cifrar el mensaje que nos dan:
sage:
sage:
sage:
sage:
m = Los ordenadores cunticos pueden dejar obsoletos los mtodos actuales de cifrado
n = 151953280470109
e = 17
chiper_RSA(codifica_text(m),n,e)
CC-BY-NC-ND PID_00200951
53
Elementos de criptografa
(mod p), o sea 57 = 30(a)2 (mod 71) y, por lo tanto a = 57301 (mod 71) = 9
(mod 71).
CC-BY-NC-ND PID_00200951
54
p=1231451311
alfa=21
xA=113
xB=97
k=247
m=9161302
R=IntegerModRing(p)
Elementos de criptografa
CC-BY-NC-ND PID_00200951
Elementos de criptografa
55
p=124540019
q=17389
q=10083255
x=12496
k=9557
m=5246
r=mod(alfa^k,q)
r
s=mod((m+x*r)/k,q)
s
w=mod(1/s,q)
uno1=mod(m*w,q)
uno2=mod(r*w,q)
v=mod(alfa^uno1*y^uno2,q)
v
Dado que el valor de v = 13752 coincide con el valor de r, la firma se dara por vlida.
6. La polarizacin en que A ha enviado los mencionados bits debe ser coherente con la que
ha recibido B, puesto que estos bits no han sido desestimados. Por lo tanto A ha enviado:
\/|
La polarizacin que ha utilizado Ernesto en el bit 13 es
L N
16 puede haber utilizado
o
indistintamente.
y en el bit 15
. En los bits 14 y
CC-BY-NC-ND PID_00200951
Elementos de criptografa
56
Bibliografa