criptografia_avanzada_(modulo_3)
TRANSCRIPT
-
7/24/2019 Criptografia_avanzada_(Modulo_3)
1/60
Protocolos
criptogrficosLloren Huguet Rotger
Josep Rif Coma
Juan Gabriel Tena AyusoPID_00200954
-
7/24/2019 Criptografia_avanzada_(Modulo_3)
2/60
Los textos e imgenes publicados en esta obra estn sujetos excepto que se indique lo contrario auna licencia de Reconocimiento-NoComercial-SinObraDerivada (BY-NC-ND) v.3.0 Espaa deCreative Commons. Podis copiarlos, distribuirlos y transmitirlos pblicamente siempre que citisel autor y la fuente (FUOC. Fundaci per a la Universitat Oberta de Catalunya), no hagis un usocomercial y no hagis una obra derivada. La licencia completa se puede consultar enhttp://creativecommons.org/licenses/by-nc-nd/3.0/es/legalcode.es
-
7/24/2019 Criptografia_avanzada_(Modulo_3)
3/60
CC-BY-NC-ND PID_00200954 Protocolos criptogrficos
ndice
Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1. Protocolos de gestin y distribucin de claves . . . . . . . . . . . . . . . 9
1.1. Protocolo de transporte de una clave privada . . . . . . . . . . . . . . . . . 10
1.2. Protocolo de intercambio de dos claves de Needham-Schroeder 11
1.3. Protocolo de distribucin de claves centralizado . . . . . . . . . . . . . . 11
1.4. Protocolo de acuerdo de claves de Diffie-Hellman . . . . . . . . . . . . 12
2. Protocolos de autenticacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.1. Protocolo de tres pasos de Shamir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2. Protocolo de Omura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3. Protocolo de Needham-Schroeder. .. .. . . . . . . . . . . . . . . . . . . . . . . . . 20
2.4. Protocolo de Kerberos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.5. Protocolo STS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.6. Otros protocolos: ISO, CCITT X.509, SSL . . . . . . . . . . . . . . . . . . . . . 24
2.7. Protocolos de identificacin de conocimiento nulo . . . . . . . . . . . 26
3. Transacciones electrnicas seguras: dinero electrnico . . . . . 30
3.1. Protocolo de Chaum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.2. Transacciones sin rastro. Firmas digitales ciegas de Chaum . . . 33
3.3. Sistemas de pago electrnicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4. Protocolos de transferencia inconsciente. . . . . . . . . . . . . . . . . . . . . 38
4.1. Protocolo de Rabin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.2. Protocolos de compromiso de bits .. . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.3. Firma electrnica de contratos: Protocolo de Even . . . . . . . . . . . . 43
4.4. Protocolo de correo electrnico certificado. . . . . . . . . . . . . . . . . . . . 46
5. Esquemas umbral y reparto de secretos. . . . . . . . . . . . . . . . . . . . . . . 49
5.1. Esquema de Shamir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
6. Votaciones electrnicas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
6.1. Garantizar la privacidad y la correccin de los resultados .. . . . 53
6.2. Garantizar la auditora de la votacin .. .. . .. . . . . . . . . . . . . . . . . . . 55
-
7/24/2019 Criptografia_avanzada_(Modulo_3)
4/60
CC-BY-NC-ND PID_00200954 Protocolos criptogrficos
Ejercicios de autoevaluacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Solucionario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Bibliografa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
-
7/24/2019 Criptografia_avanzada_(Modulo_3)
5/60
CC-BY-NC-ND PID_00200954 5 Protocolos criptogrficos
Introduccin
Las comunicaciones electrnicas ofrecen nuevas posibilidades en los inter-
cambios de informacin, sobre todo en el campo de las transacciones comer-
ciales y en la administracin electrnica.
En el mundo no electrnico los intercambios de informacin, llevados a cabo
con medios ms convencionales, presentan problemas de seguridad y descon-
fianza que se resuelven a travs de un arbitraje con terceras partes de confian-
za, como, por ejemplo, jueces, notarios y agentes postales, entre otros, que
tradicionalmente son los que han dado seguridad a estos intercambios.
En las transacciones electrnicas, llevadas a cabo mediante protocolos de co-
municacin, la seguridad tiene un papel incluso ms relevante, ya que ne-
cesita dar, adems, una proteccin contra posibles amenazas, como son las
manipulaciones desautorizadas de los datos o las falsificaciones.
Al conjunto de acciones bien definidas y coordinadas descritas por un cierto
algoritmo, que permiten una interaccin entre dos, o ms, usuarios para llevar
a cabo un intercambio de datos o de informacin, se le llamaprotocolo.
Los protocolos criptogrficos son aquellos que, para llevar a cabo esta in-
teraccin, usan funciones criptogrficas para poder asegurar los requisitos de
seguridad en las comunicaciones entre los usuarios que intervienen en el in-
tercambio: la confidencialidad, la integridad, la autenticidad y el no repudio.
Vamos a encontrar ejemplos de uso de los protocolos criptogrficos en mbi-
tos tan diversos cmo: en comercio electrnico, donde tienen que utilizarse
firmas compartidas; en correo electrnico seguro, donde se necesitar algo
ms que un acuse de recibo; en la implementacin de sistemas electrnicos depagos con la utilizacin de firmas ciegas o en sistemas de votacin electrnica.
En muchos casos se necesitar, tambin, el arbitraje de una tercera parte de
confianza para garantizar todos los requisitos de seguridad en estas transac-
ciones electrnicas.
La diversidad de mbitos hace que exista tambin una amplia variedad de
protocolos criptogrficos para dar respuesta a los diferentes objetivos, pero
todos ellos se usan, generalmente, para eliminar desconfianzas.
Podemos dar la siguiente clasificacin, segn los objetivos que se quieran
lograr:
-
7/24/2019 Criptografia_avanzada_(Modulo_3)
6/60
CC-BY-NC-ND PID_00200954 6 Protocolos criptogrficos
Gestin y distribucin de claves. Permiten y garantizan la generacin,
almacenamiento, mantenimiento y distribucin de claves de un sistema
criptogrfico de clave privada. En algunos casos, esta distribucin se har
utilizando criptosistemas de clave pblica.
Autenticacin de usuario. Permiten garantizar que el remitente de un
mensaje, con quien se establece comunicacin, es realmente quien preten-
de ser.
Transacciones electrnicas seguras. Permiten realizar las operaciones ban-
carias habituales, en particular, implementar sistemas de pago electrnicos
sustitutivos de las tarjetas de crdito y de dbito en las transacciones eco-
nmicas en el comercio electrnico, con una utilizacin muy especial en
el caso de micropagos (menos de 10 e).
Transferencias inconscientes o transcordadas. Permiten a un usuario en-
viar un mensaje o un secreto, entre dos posibles, a otro usuario. El usuario
emisor no conoce cul de los dos ha recibido el receptor. Estos protocolos
permiten la firma electrnica de contratos.
Compromiso de bit. Permiten a un usuario de una red comprometerse
con la eleccin de un bit (o ms, generalmente con una serie de bits) sin
revelar tal eleccin hasta un momento posterior. El protocolo garantiza a
la otra parte que el usuario no cambia su eleccin.
Comparticin de secretos. Permiten distribuir un cierto secreto entre un
conjunto de participantes de manera que ciertos subconjuntos prefijados
entre los participantes puedan, uniendo sus participaciones, recuperar el
secreto.
Pruebas de conocimiento nulo. Permiten a un usuario de una red con-
vencer a otro que el primero posee una cierta informacin, sin revelar nada
sobre el contenido de la misma.
Votaciones electrnicas. Permiten realizar un proceso electoral electrni-
camente, garantizando la privacidad de cada votante y la imposibilidad de
fraude.
-
7/24/2019 Criptografia_avanzada_(Modulo_3)
7/60
CC-BY-NC-ND PID_00200954 7 Protocolos criptogrficos
Objetivos
En los materiales didcticos de este mdulo el estudiante encontrar los con-
tenidos necesarios para alcanzar los objetivos siguientes:
1. Conocer los protocolos ms importantes de gestin y distribucin de claves.
2. Conocer los protocolos ms importantes de autenticacin.
3. Conocer los protocolos ms importantes de transacciones electrnicas se-
guras y sistemas de pago electrnico.
4. Conocer los protocolos ms importantes para implementar la firma de con-
tratos y el correo electrnico certificado.
5. Conocer los fundamentos de los esquemas de umbral.
6. Conocer los fundamentos de las votaciones electrnicas.
-
7/24/2019 Criptografia_avanzada_(Modulo_3)
8/60
-
7/24/2019 Criptografia_avanzada_(Modulo_3)
9/60
CC-BY-NC-ND PID_00200954 9 Protocolos criptogrficos
1. Protocolos de gestin y distribucin de claves.
Uno de los problemas de la criptografa de clave privada est en la distribucin
de las claves entre los usuarios de una red de comunicaciones, en la que cada
pareja de usuarios A,B necesita compartir una clave KAB, para crear un canal
privado virtual entre ambos.
Esta clave no puede ser enviada por la propia red de comunicaciones (que
consideraremos insegura) y que, adems, por motivos de seguridad, debe ser
cambiada peridicamente. Muchas veces,KABes desechable y se la llamaclavede sesin.
Por lo que hace a la gestin de claves, sta comporta interrogantes, como ase-
gurar quines asumen la responsabilidad de la creacin de las claves (con di-
ferentes alternativas: autoridad central o sistema totalmente descentralizado),
construir diferentes tipos de claves (de comunicaciones, maestras, de sesin),
definir los requisitos de seguridad en el almacenamiento de las mismas, etc.
En este apartado pondremos nfasis en los protocolos de distribucin:
Notacin
A lo largo de este mdulo,cuando nos referimos a unsistema criptogrfico de clavepblica, la notacin queusaremos, asociada a unusuarioU, ser:
IdU: Identidad usuario. EU(m): Proceso de cifrar
un mensajem, con la
clave pblica deU. DU(c): Proceso de des
cifrar un criptogramac,con la clave privada deU.
1) Gestin de claves en los sistemas criptogrficos de clave pblica. En un
sistema criptogrfico de clave pblica, donde cada usuario Udispone de su pa-
reja de claves:EUpara cifrar yDUpara descifrar, no es necesaria la distribucin
de las clave para cifrar; al contrario, han de estar accesibles para cualquiera que
desee utilizarlas y poder comunicarse con el propietario de las mismas. Existe,
sin embargo, el riesgo de la impersonacin, es decir, un adversario C puede
hacer creer que su clave pblicaECes la clave pblica de otro usuario.
Consideramos cuatro esquemas posibles de gestin de claves pblicas:
Anuncio pblico: cada participante difunde su clave pblica al resto de
usuarios. El riesgo de impersonacin es grande.
Directorio pblico: mantenido por una cierta autoridad, una tercera parte
de confianza, con acceso directo y libre (para lectura) por parte de cual-
quier usuario al directorio de claves TPD (trusted public directory). Cualquier
usuarioUregistra en el TPD su identidad; IdU; y su clave pblica, EU, en
persona o mediante comunicacin autorizada, lo cual, en principio, elimi-
na el riesgo de la impersonacin.
Autoridad pblica: similar al anterior, pero los usuarios no tienen acceso
directo al directorio de claves, sino que interaccionan con un centro de
-
7/24/2019 Criptografia_avanzada_(Modulo_3)
10/60
CC-BY-NC-ND PID_00200954 10 Protocolos criptogrficos
distribucin de clavesKDC (key directory centre). Si el usuarioA desea cono-
cer la clave pblica del usuario B, debe formular una peticin expresa a la
autoridad que mantiene el directorio.
*Ver el subapartado 2.6 del
mdulo Elementos de
criptografa.
Autoridad certificadora: es una tercera parte de confianza,T, que expide
a cada usuario Uun certificado de su clave pblica, ligada a su identidad
IdU, junto con otros datos. Este certificado va firmado con la clave privada
deT. As, un usuarioA puede enviar a otro usuario B este certificado y ste
puede comprobar, utilizando la clave pblica de la autoridad ET, la validez
de la clave, la identidad del emisor, as como los otros datos incluidas, entre
ellos el periodo de vigencia del certificado, etc.*
2) Distribucin de claves en los sistemas criptogrficos de clave privada.
En los sistemas criptogrficos de clave privada, las claves se deben distribuir de
forma centralizada puesto que en otro caso, el administrador de una red ten-
dra que proporcionar claves a cada pareja de usuarios que quieran intercam-
biarse informacin secreta. Esto querra decir que el administrador necesitara
tener almacenadas`n
2
=
n(n 1)
2 =O(n2) claves, y cada usuario (n 1) claves.
En un sistema criptogrfico de clave privada, dos usuarios A y B pueden esta-
blecer una claveKAB, compartida por ambos, por dos mtodos:
Transporte de claves: un usuario crea una clave y la transfiere, con segu-
ridad, al otro usuario (alternativamente, puede ser una tercera parte quien
la crea y transfiere a ambos).
Acuerdo de claves (key agreement): la clave es calculada por los usuarios
como una cierta funcin de la informacin suministrada por ambos usua-
rios. En principio ningn usuario, por s mismo, puede predeterminar el
valor de esta clave.
Un problema adicional que puede plantearse es el de la autenticacin de las
claves y de los usuarios que las acuerdan o envan. Tal autenticacin ser re-
suelta con los protocolos de distribucin, en la mayora de casos utilizando
sistemas criptogrficos de clave pblica para distribuir una clave privada.
1.1. Protocolo de transporte de una clave privada
Este protocolo permite transferir una clave KA, elegida por el usuarioA, a otro
usuarioB, mediante un algoritmo de un solo paso.
Supondremos que el usuario A tiene acceso a una copia autenticada de EB y
que usa un parmetro temporal,TP.
Protocolo
A B. El usuarioA enva aB:EB(IdA,KA,TP)
-
7/24/2019 Criptografia_avanzada_(Modulo_3)
11/60
CC-BY-NC-ND PID_00200954 11 Protocolos criptogrficos
Ahora, el usuarioBpuede descifrar lo que ha recibido, con su clave privada DB
y, de este modo, verificar la identidad del emisor, el parmetro temporal TPy
asociar la claveKAal usuarioA.
Resumen de las transacciones del protocolo:
A B
EB(IdA,KA,TP))
1.2. Protocolo de intercambio de dos claves de Needham-Schroeder
Este protocolo permite intercambiar dos claves secretas entre dos usuarios A
y B, respectivamente, KA y KB, con solo 3 pasos, al mismo tiempo que los
usuarios se autentican mutuamente.
Autenticaciones
Autenticacin de Bporparte de A: el usuarioAcomprueba queRAescorrecto, con lo cualautentica aB y confirmaque ha recibidoKB.
Autenticacin de A por
parte deB
: el usuarioBcomprueba queRB escorrecto, con lo cualautentica aA y confirmaque ha recibidoKA.
Protocolo
A B. El usuarioA elige un nmero aleatorioRAy envaa B:EB(IdA,KA,RA).
B A. El usuarioB descifra lo que ha recibido, con su clave privada DB,
y obtieneRA, adems de la clave pblica y la identidad de A. AhoraB elige
otro nmero aleatorioRB y enva aA:EA(KB,RA,RB).
A B. El usuarioA descifra lo que ha recibido, con su clave privada DA,y obtiene RB, adems de la clave pblica y la identidad de B, y enva a B:
EB(RB).
Resumen de las transacciones del protocolo:
A B
EB(IdA,KA,RA)
EA(KB,RA,RB)
EB(RB)
1.3. Protocolo de distribucin de claves centralizado
Este protocolo permite la distribucin de una clave de sesin a dos usuarios A
yB, para utilizar en un sistema criptogrfico de clave privada.
Caso prctico
Se puede pensar en un
protocolo donde se quierausar una clave de sesin parautilizar con el sistemaAES,mientras que la distribucinse hace con un sistemaElGamal.
Supongamos queA yB disponen de un sistema criptogrfico de clave pblica y
que, en este caso, interviene una autoridad pblica,T, que gestiona un centro
de distribucin de clavesKDC.
-
7/24/2019 Criptografia_avanzada_(Modulo_3)
12/60
CC-BY-NC-ND PID_00200954 12 Protocolos criptogrficos
Para iniciar el protocolo, el usuarioA comunica a la autoridad pblica T, que
se quiere comunicar con B y, para ello, solicita la identidad deB y una clave
de sesinKABpara compartir. Adems, se utilizar un parmetro temporal TP,
para controlar el plazo de vigencia.
Protocolo
T A. La autoridad pblicaTenva aA:EA(IdB,KAB,TP,EB(IdA,KAB,TP)).
El usuario A descifra lo que ha recibido, con su clave privada DA, y obtiene:
IdB,KAB, el parmetroTPy EB(IdA,KAB,TP).
A B. El usuarioA enva aB:EB(IdA,KAB,TP).
El usuario B descifra lo que ha recibido, con su clave privada DB, y obtiene:
IdA,KABy TP.
Finalmente, para iniciar la transmisin con total garanta, hara falta un acuse
de recibo por parte deB a A, contrastando la validez del valor TP.
Resumen de las transacciones del protocolo:
T A
EA(IdB,KAB,TP,EB(IdA,KAB,TP))
A B
EB(IdA,KAB,TP)
1.4. Protocolo de acuerdo de claves de Diffie-Hellman
Este protocolo se basa en la funcin exponencial y el logaritmo discreto, en
un cuerpo finito Zp, y no necesita ninguna otra intervencin ms que la de
los propios usuarios. La seguridad del protocolo se basa, precisamente, en la
intractabiliddad del clculo del logaritmo discreto.
Todos los usuarios conocen el valor del primo p y el de un elemento primitivo
Zp.
Cada usuario Ubusca al azar xU Zp , que guarda secreto, y hace pblico el
valor deyU =xU (mod p). As, cada usuarioUcoloca (IdU,yU) en el directorio
pblicoTPD.
-
7/24/2019 Criptografia_avanzada_(Modulo_3)
13/60
CC-BY-NC-ND PID_00200954 13 Protocolos criptogrficos
Para compartir una clave de sesin,KAB, entre dos usuariosA y B, stos harn
lo siguiente.
Protocolo
El usuarioA obtieneyBdelTDP, calculaKA= yxA
B (mod p) =xBxA (modp).
El usuarioB obtieneyA del TDP, calculaKB= yxB
A (mod p) =xAxB (modp).
AhoraA y B ya pueden compartir una misma clave KAB = KA = KB (efectiva-
mente:xAxB (modp) = xBxA (mod p)) para intercambiarse mensajes, en un
sistema criptogrfico de clave privada, sin queA necesite del valor secretoxB,
niB necesite del valor secretoxA.
Resumen del protocolo:
A B
KA= yxA
B (mod p) KB= yxB
A (mod p)
Simulador de clculosen Zp
Para comprobar los clculosde este ejemplo, podis usaraplicativos de uso libre,como SAGE(http://www.sagemath.org).
Ejemplo 1.1.
Ay B quieren intercambiar una clave de sesinKAB, usando el cuerpo Zp, conp = 1999 yel elemento primitivo = 33. En realidad, este valor de p debera ser muy grande.
Supongamos queA escogexA = 47 y B escogexB = 117. Entonces, ambos usuarios harnlos siguientes clculos:
El usuarioA calculayA = xA (mod p) = 3347 (mod 1999) = 1343;
El usuario B calcula yB = xB (modp) = 33117 (mod 1999) = 1991;
As, (IdA,yA= 1343), (IdB,yB = 1991) figurarn en elTPD.
Protocolo
El usuarioA calculaKAB = yxAB (mod p) = 199147 (mod 1999) = 1506. El usuarioB calculaKBA = y
xBA (mod p) = 1343
117 (mod 1999) = 1506.
La clave secreta compartida por A y B serKAB = KBA = 1506.
Nota
El protocolo de acuerdo de claves de Diffie-Hellman es vulnerable, frente a ataques deimpersonacin.
Puede haber un espa activo-pasivo,C, que enve mensajes a B, a partir de los que recibedeA. Los usuariosAyBcreen que estn interconectados cuando en realidad sus mensajesson filtrados y/o manipulados por C, puesto que es Cquien realmente est conectado con
Ay con B.
-
7/24/2019 Criptografia_avanzada_(Modulo_3)
14/60
CC-BY-NC-ND PID_00200954 14 Protocolos criptogrficos
Protocolo para impedir la impersonacin
Este problema de autenticacin de A por parte de B, o deB por parte de A, se
puede resolver con la intervencin de una autoridad pblica T.
El usuarioA enva aTla peticin que quiere conectarse con B.
T A. La autoridad pblicaTenva aA los siguientes certificados:
CA= DT(IdA,EA,TP) iCB= DT(IdB,EB,TP)
dondeTPes un parmetro temporal.
A B. El usuarioA calcula una clave de sesinKABy la enva aB, debida-
mente firmada y cifradaEB(CA,CB,X= DA(KAB)).
El usuario B comprueba, aplicando su clave privada, DB, a lo que acaba de
recibir; el certificado de A,CA, su certificado, CB, y la clave pblica de A, EA,
con la cual puede calcular la clave de sesin: KAB= EA(X).
A partir de ahora, los usuariosAy B, ya pueden empezar la transmisin segura
con la clave de sesin KAB.
Resumen de las transacciones para evitar el ataque de impersonacin:
T A
CA= DT(IdA,EA,TP); CB = DT(IdB,EB,TP)
A B
EB(CA,CB,X= DA(KAB))
-
7/24/2019 Criptografia_avanzada_(Modulo_3)
15/60
CC-BY-NC-ND PID_00200954 15 Protocolos criptogrficos
2. Protocolos de autenticacin.
Los protocolos de autenticacin permiten verificar la identidad de un usuario
A, ante un usuario B, de forma que B pueda confirmar que es el usuario A
quien le ha envado un cierto mensaje.
Son protocolos que demuestran la identidad de A a B (en este apartado, lla-
maremos a verificador al usuario B). A veces, la identificacin consiste en
demostrar la posesin de un cierto secreto (que puede ser una clave), sin ne-
cesidad de revelarlo.
En general, el usuario A deber proporcionar una respuesta a un ciertodesafo
planteado por el verificador (normalmente, dentro de un plazo de tiempo
determinado). Por esto, a veces, a estos protocolos se los denomina de desafo-
respuesta.
Para la implementacin, un protocolo de autenticacin debera satisfacer los
requisitos siguientes:
Tendra que implementar conjuntamente con un protocolo de intercambio
de claves. Es este ltimo el que demuestra que no solo todos los participan-
tes son quienes dicen ser, sino que, adems, puede haber un intercambio
de informacin.
Tendran que encadenarse los mensajes que se van cruzando dentro de una
ejecucin concreta de forma que no pudieran ser sacados de contexto.
Tendra que evitarse la utilizacin de sellados de tiempo, lo que se conoce
comotimestamps, como herramienta de seguridad, aun cuando son tiles
desde un punto de vista administrativo y documental.
Tendra que evitarse que la revelacin de las claves intercambiadas en una
sesin comprometiera el secreto de las claves intercambiadas previamente. Tendra que poderse aadir a los datos a cifrar, en cada paso, algn otro
dato seleccionado aleatoriamente por los participantes lo que se conoce
comoadd your own salt, de manera que se impedir que la otra parte dis-
ponga de clculos que de otra manera no podra efectuar.
.
Definicin 2.1 (Protocolo de autenticacin seguro).
Diremos que un protocolo de autenticacin es seguro si, en el momento
en que un usuario acepta la identidad del otro, los registros que amboshan guardado de la sesin de autenticacin coinciden. Y, adems, no
debe ser computacionalmente eficiente que un tercer usuario pueda re-
cuperar el desafo aceptado.
-
7/24/2019 Criptografia_avanzada_(Modulo_3)
16/60
CC-BY-NC-ND PID_00200954 16 Protocolos criptogrficos
.
Definicin 2.2 (Protocolo de autenticacin directo).
Diremos que el protocolo es de autenticacin directa si acaba inter-
cambiando mensajes entre los participantes usando las claves generadas
previamente.
Ejemplo 2.1.
Veremos dos protocolos de desafo-respuesta y, en ambos casos, usaremos un sistemacriptogrfico de clave pblica.
Protocolo 1:
Supongamos queA, para identificarse, quiere demostrar a B que posee la clave de desci-fradoDA, de un sistema criptogrfico de clave pblica.
B A. El verificadorB, enva a A: (IdB,d = (EA(RB)), donde des el desafo y RB unnmero aleatorio escogido porB.
A B. El usuarioA, dentro del plazo establecido, con su clave privadaDA, recuperaRB = DA(d), y lo enva aB.
El verificadorB, aceptar la identificacin deA si el valor recibido coincide conRB que lmismo haba enviado.
Resumen de las transacciones del protocolo:
A B
IdB,d= (EA(RB)
RB = DA(d)
Protocolo 2:
B A. El verificadorB, enva a A: (IdB,RB), dondeRB es un nmero escogido por B.
A B. El usuarioA, dentro del plazo establecido, usando su clave privadaDAenva:(RA,IdB,DA(RA,RB,IdB)), dondeRAes un nmero escogido porA, y lo enva a B.
El verificadorB, aplicar, con la clave pblica de A,EAa la ltima componente del vector
recibido y comprobar la coincidencia deIdBy RAcon las dos primeras componentes delvector recibido y, adems, que RB coincide con el que l mismo le haba enviado.
Resumen de las transacciones del protocolo:
A B
IdB,RB
RA,IdB,DA(RA,RB,IdB)
2.1. Protocolo de tres pasos de Shamir
Este protocolo permite el envo de informacin secreta deA a B, sin intercam-
bio previo de claves, a la vez queB tendr la certeza de que el emisor es A.
-
7/24/2019 Criptografia_avanzada_(Modulo_3)
17/60
CC-BY-NC-ND PID_00200954 17 Protocolos criptogrficos
Para llevar a cabo este protocolo necesitamos una funcin criptogrfica que
sea conmutativa para cada pareja de usuarios, EA EB= EB EA.
Protocolo
A B. El usuarioA cifra con su clave pblica el mensaje m: EA(m), y lo
enva aB.
El usuarioB no puede calcularm, puesto que no conoce DA.
B A. El usuario B cifra con su clave pblica lo que acaba de recibir:
EB(EA(m)), y lo enva aA.
A B. El usuarioA, debido a la propiedad conmutativa presupuesta, pue-
de descifrar con su clave privada lo que ha recibido y recuperar EB(m), queenva aB. Efectivamente:DA(EB(EA(m)) = DA(EA(EB(m)) =EB(m)
AhoraB puede conocerm, descifrando con su clave privada lo que ha obteni-
do:m = DB(EB(m))) y, al mismo tiempo, estar seguro de que este mensaje lo
ha enviadoA.
Resumen de las transacciones del protocolo:
A B
EA(m)
EB(EA(m))
EB(m)
Nota
Este esquema no asegura la autenticacin ni, en general, el secreto como se puede ver enel siguiente ejemplo.
Ejemplo 2.2.
Usaremos el sistema criptogrfico de clave pblica, de Pohlig-Hellmanque, basando suseguridad en el problema del logaritmo discreto, consiste en:
Escoger un grupo multiplicativoZp , dondep es un nmero primo grande.
Cada usuario elige un valoreU, relativamente primo con (p) = p 1 y calculadU =e1U
(mod (p)). La clave secreta de cada usuario ser el valor dU.
Para un mensajem y un criptogramac:
Cifrado:EA(m) =meA (mod p) y
Descifrado:DA(c) = cdA (mod p)
-
7/24/2019 Criptografia_avanzada_(Modulo_3)
18/60
CC-BY-NC-ND PID_00200954 18 Protocolos criptogrficos
Evidentemente, este sistema criptogrfico de clave pblica cumple la condicin mencio-nadaEA EB = EB EA.
Por lo tanto, es seguro respecto al secreto, pero no desde el punto de vista de la autenti-cacin, como veremos en el ataque de impersonacin de Massey-Omura.
Empecemos con un ejemplo numrico de este protocolo:Tomandop= 103; si el usuarioA escoge e
A= 19 (d
A= e1
A (mod (p)) = 191 (mod 102) =
43) y el usuarioB escogeeB = 23 (dB = e1B (mod (p)) = 23
1 (mod 102) = 71);suponiendo que el mensaje que A quiere enviar a B es m = 10, el protocolo de tres pasosde Shamir sera el siguiente:
A B. El usuarioA enva aB:EA(m) = 1019 (mod 103) = 3.
El usuarioB no puede calcularm = 10, puesto que no conoceDA.
B A. El usuarioB calculaEB(EA(m)) = EB(3) = 323 (mod 103) = 95.
A B. El usuarioA puede calcular el valor de EB(m), mediante su clave privada DA:EB(m) = DA(EB(EA(m) = DA(95) = 95
43 (mod 103) = 27. El usuario A enva el valor 27aB.
Este valor coincide, efectivamente, conEB(10) = 1023 (mod 103) = 27.
Ataque de impersonacin de Massey-Omura
Veamos ahora, como en el ejemplo anterior, que un espa C se puede interpo-
ner entre los dos usuariosA y B violando el secreto de la transmisin.
Este tipo de ataques, tambin son conocidos como man-in-the-middle.
Protocolo
Si el usuario A quiere enviar un mensaje m, cifrado, al usuario B, calcula
EA(m) =meA (mod p).
A B. El usuarioA envaEA(m) aB
Si un espaC intercepta este mensaje cifrado puede retornar a A:
EC(EA(m)) = (meA )eC (mod p)
A C. el espaC envaEC(EA(m)) aA.
El usuarioA no t ningn mecanismo para comprobar que lo que recibe sea
deB.
SiA no desconfa, sigue con el tercer paso del protocolo de tres pasos de Sha-
mir:
DA((meA )eC ) (mod p) = ((meA )eC )dA (modp) =meC (modp).
-
7/24/2019 Criptografia_avanzada_(Modulo_3)
19/60
CC-BY-NC-ND PID_00200954 19 Protocolos criptogrficos
A B. El usuarioA piensa que enva EB(m) y, en cambio, est enviando
EC(m) = meC (modp).
El espaC al recibir este valor, y dado que l conoceDC, puede calcular: (meC )dC
(mod p) = m.
De este modo el espaC ha podido conocer el mensaje m que A quera enviar
aB.
Resumen de las transacciones del ataque de impersonacin
A C
EC(EA(m)))
EC(m)
Ejemplo 2.3.
Usaremos el mismo sistema criptogrfico de clave pblica, de Pohlig-Hellman que en elejemplo anterior.
Tomemos p = 103; ya conocemos las claves pblicas y privadas de A y B, respectivamente:{eA = 19,dA = 43}y {eB = 23,dB = 71}.
Suponiendo que los parmetros del espa C sean {eC= 5,dC = 41} el ataque de autenticacin
seguira los siguientes pasos. Supongamos que el mensaje que se quiere enviar es m = 10:
A B. El usuarioA calculaEA(m) = 1019 (mod 103) = 3 y lo enva a B.
El espaC intercepta este mensaje y calcula:
EC(EA(m)) = (meA )eC (mod p) = 35 (mod 103) = 37.
A C. El espaC enva aA:EC(EA(m)) = 37.
El usuarioA no tiene ningn mecanismo para comprobar que lo que recibe es de B y, al nodesconfiar, descifra el mensaje recibido, mediante su clave privada dA:DA(EC(EA(m)) = DA(37) = 3743 (mod 103) = 90
A B. El usuarioA piensa que enva a B el valor 90 = DA(EB(EA(m)) = meB (mod p),
pero en realidad est enviando DA(EC(EA(m)) = EC(m).
El espaC recibe este valor y dado que l posee dC puede calcular: (meC )dC (mod p) = m. Para
ello calcula:DC(90) = 9041 (mod 103) = 10; y, por tanto, C conoce el mensaje m = 10 que A
enviaba aB.
2.2. Protocolo de Omura
Este es un protocolo semejante al de Diffie-Hellman de acuerdo de claves,
que permite la autenticacin de dos usuarios, sin que nadie ms que ellos
intervenga.
-
7/24/2019 Criptografia_avanzada_(Modulo_3)
20/60
CC-BY-NC-ND PID_00200954 20 Protocolos criptogrficos
Sea Zpun elemento primitivo y supongamos que cada usuarioUtiene una
clave secretaxUy una clave pblicayU=xU (modp).
Protocolo
Una vez queA ha informado aB que l esA y que lo quiere probar, el protocolo
consiste en los dos pasos siguientes:
B A. El usuarioBescoge al azar un valorx, calculay= x (modp) y enva
ya A.
A B. El usuarioA calculayxA (modp) y enva el resultado aB.
El usuario B verifica la igualdad entre lo que acaba de recibir (yxA (mod p) y
el clculo a partir de la clave pblica de A y el valor x por l escogido ((yA)x
(mod p)). En caso de igualdad, acepta la autenticacin de A y, de lo contrario,
la rechaza.
Resumen de las transacciones del protocolo
A B
y= x (modp)
yxA (modp)
Ejemplo 2.4.
Utilizamos los parmetros del ejemplo 1.1.
Sea el cuerpo Zp, conp = 1999 y el elemento primitivo = 33.
Supongamos las claves pblicas y privadas deA y B, respectivamente:{xA = 47,yA =
xA (mod p) = 1343,xB = 117,yB = xB (modp) = 1991}
Los pasos del protocolo son (suponiendo que el usuario B ha sido avisado de que elusuarioA quera autenticarse):
B A.B escoge el valorx = 13, calcula y= 13 (mod 1999) = 319 y lo enva aA.
A B.A calculayxA (mod p) = 31947 (mod 1999) = 1465 y enva el resultado a B.
El usuario B verifica si el valor recibido coincide con = (yA)x (mod p). Efectivamente:
134313 (mod 1999) = 1465 y el usuario B da por autenticado al usuarioA.
2.3. Protocolo de Needham-Schroeder
Este es un protocolo de autenticacin e intercambio de claves, usando un
sistema criptogrfico de clave pblica y mediante un centro de distribucin de
-
7/24/2019 Criptografia_avanzada_(Modulo_3)
21/60
CC-BY-NC-ND PID_00200954 21 Protocolos criptogrficos
claves, KDC, gestionado por la autoridad pblica T, que sigue los siguientes
pasos.
Protocolo
A T. El usuario A enva a T: DA(IdA,IdB,RA), donde RA es un nmero
aleatorio escogido porA.
T A. La autoridadTdevuelve aA:EA(RA,IdB,KAB,EB(KAB,IdA)), dondeKAB
es la clave de sesin, generada por elKDC, que han de utilizar A y B en su
intercambio.
A B. El usuarioA envaEB(KAB,IdA) aB.
B A. El usuarioB enva, cifrando con la clave de sesin: EKAB (RB) a A,dondeRB es un nmero aleatorio escogido por B.
A B. El usuarioA devuelveEKAB (RB 1) aB.
Cuando el usuarioB, descifrando con la clave de sesin, KAB, recibe el valor de
RB 1, da por autenticado al usuarioA.
Resumen de las transacciones del protocolo:
A T
DA(IdA,IdB,RA)
EA(RA,IdB,KAB,EB(KAB,IdA))
A B
EB(KAB,IdA)
EKAB (RB)
EKAB (RB 1)
2.4. Protocolo de Kerberos
Este es un protocolo de distribucin de claves de sesin, mediante un centro
de distribucin de claves, KDC, que proporciona autenticacin del usuario
y establece la clave de sesin entre dos usuarios A y B, usando un sistema
criptogrfico de clave privada y terceras partes de confianza.
-
7/24/2019 Criptografia_avanzada_(Modulo_3)
22/60
CC-BY-NC-ND PID_00200954 22 Protocolos criptogrficos
Hay otras versiones del protocolo para poder utilizar sistemas criptogrficos
de clave pblica.
ConsideramosT, el servidor de autenticacin Kerberos, como tercera parte de
confianza.
El protocolo de Kerberos se basa en el protocolo que acabamos de ver de
Needham-Schroeder. Se usan vales y sellado de tiempo para asegurar la iden-
tidad de los usuarios.
La utilizacin de los vales y del periodo de validez de la clave KAB evita que
pueda haber ataques usando claves de sesin utilizadas previamente.
Autenticacin Kerberos
Kerberos permite laautenticacin deA anteB.Incluye sellado de tiempo yuna autoridad decertificacinon-line, quecomparte una clave privadacon cada usuario para hacerlas operaciones de cifradoEAT,EBT. ElvaleB vaacompaado delautenticador.
Protocolo
A T. El usuarioA envaT: (IdA,IdB,RA,TSA), dondeRAes un valor aleato-
rio escogido porA y TSA es un sellado de tiempo deA.
T A. El servidor de autenticacin enva aA: (valeB,EAT(KAB,RA,L,IdB),
dondeEATes la operacin de cifrar con la clave privada que comparten A y
T,L indica el periodo de validez de la claveKABy elvaleB= EBT(KAB,IdA,L).
A B. El usuarioA enva a B: (valeB,autenticador), donde autenticador =
EKAB (IdA,TSA), creado porA y que contiene el sellado de tiempo,TSAcifrado
con la clave de sesin KAB.
B A. El usuarioB enva aA:EKAB (IdA,TSA)
A partir de aqu, los usuariosA y B comparten una clave de sesinKABy estn
mutuamente autenticados.
Resumen de las transacciones del protocolo:
A T
IdA,IdB,RA,TSA
valeB,EAT(k,NA,L,IdB)
A B
valeB,autenticador
EKAB (TSA)
-
7/24/2019 Criptografia_avanzada_(Modulo_3)
23/60
CC-BY-NC-ND PID_00200954 23 Protocolos criptogrficos
2.5. Protocolo STS
Este protocolo responde al acrnimo (station-to-station) y fue creado por Diffie,
Oorschot, Wiener como una propuesta de protocolo seguro para la autentica-
cin y el intercambio de claves, basado en un sistema criptogrfico de clave
pblica.
Consideraciones dediseo
Los valoresp y los escogecada usuario y mejor si sondiferentes, puesto que losataques ms eficientes allogaritmo discreto se basanen la construccin de tablas apartir del conocimiento dep.En el segundo pasoB enva a
Asu certificadoCertB = (IdB,EB,DT(B,EB)). Deeste modoA podr calcularEB y comprobar queyB secorresponde con elhashfirmadoDB{yB,yA}. Esto daautenticidad aB.El usuarioB tiene que utilizarlos parmetros pasados porAen el primer paso, en lugarde buscarlos en un directoriopblico. En el tercer paso elcertificado deA asegura aBque estos parmetros soncorrectos.
Supondremos que, al igual que en el protocolo de Diffie-Hellman, todos los
usuarios conocen el valor del nmero primo py del elemento primitivo Zp
y que cada usuario Usube (IdU,yU) al directorio pblico TPD (recordar que cada
usuario haba escogido un valor xU Zp , que guardaba secreto, y calculaba el
valor pblicoyU=xU (mod).
Protocolo
A B. El usuarioA escoge un valorxA y calculayA = xA (mod p). Enton-
ces, enva aB: (,p,yA).
B A. El usuarioB escoge un valorxBy calculayB= xB (mod p) as como
tambin calcula la clave de sesin KAB= yxB
A (mod p).
Entonces, enva aA: (yB,CertB,EKAB (DB{yB,yA}),
donde {yB,yA} significa el resultado de aplicar una funcin de hash a los
parmetrosyB,yA.
A B. El usuarioA tambin puede calcular la clave de sesin KAB = yxA
B
(modp) y enva a A: (CertA,EKAB (DA{yA,yB})
En este protocolo,CertA = (IdA,EA,,p,DT(IdA,EA,,p)), dondeDT(IdA,EA,,p) es
la firma de una autoridad de certificacin Tsobre estos parmetros.
En el ltimo paso del protocolo, el usuarioA queda autenticado ante el usua-
rioB.
Resumen de las transacciones del protocolo:
A B
(,p,yA)
yB,CertB,EKAB(DB{yB,yA})
CertA,EKAB(DA{yA,yB})
-
7/24/2019 Criptografia_avanzada_(Modulo_3)
24/60
CC-BY-NC-ND PID_00200954 24 Protocolos criptogrficos
2.6. Otros protocolos: ISO, CCITT X.509, SSL
Para acabar este apartado, veamos otros protocolos que se pueden considerar
estndares:
1) ISO (CD 9798-3. 1991). Es equivalente al protocolo STS en el cual susti-
tuimos las exponenciales x,y por valores aleatorios RA,RB. Sin embargo, de
este modo obtenemos un protocolo de autenticacin pero sin intercambio de
claves.
Protocolo
A B. El usuarioA envaRA a B.
B A. El usuarioB envaRA, junto con (CertB,DB({RB,RA})), aA.
A B. El usuarioA envaB:CertA,DA({RB,RA})
Resumen de las transacciones del protocolo:
A B
RA
RA,CertB,DB({RB,RA})
CertA,DA{RB,RA}
2) CCITT X.509. Es un algoritmo de intercambio de claves, con autenticacin,
de tres pasos y se basa en un sistema criptogrfico de clave pblica.
El usuario A que quiere intercambiar una clave KAB, con B, tiene una copia
autenticada deEB.
Protocolo
A B. El usuarioA enva aB: (SA,CertA,DA(SA)), donde
SA= (RA,IdA,EB(KAB)), yRAes un nmero aleatorio escogido por A.
B A. El usuarioB enva aA: (SB,CertB,DB(SB)), donde
SB= (RB,IdB,EA(KAB)), yRB es un nmero aleatorio escogido por B.
A B. El usuarioA enva aB: (RB,IdB,DA(SB,IdB)).
Evidentemente, B ha podido autenticar A y descifrando: DB(EB(KAB) = KAB,
obtiene la clave de sesin KABque emplear para comunicarse con A.
-
7/24/2019 Criptografia_avanzada_(Modulo_3)
25/60
CC-BY-NC-ND PID_00200954 25 Protocolos criptogrficos
Resumen de las transacciones del protocolo:
A B
SA,CertA,DA(SA)
SB,CertB,DB(SB)
RB,IdB,DA(SB,IdB)
3) SSL (Secure Socket Layer). Es un protocolo abierto creado por Netscape y
ha llegado a ser un estndar para Internet. Se implementa entre la capa de
aplicacin (HTTP, Telnet, FTP,...) y la capa de transporte (TCP).
El SSL es transparente para la aplicacin que lo utiliza y aade los siguientes
servicios seguros a una conexin TCP/IP:
Cifrado de datos usando los sistemas criptogrficos de clave privada: DES,
RC4.
Autenticacin, usando los sistemas criptogrficos de clave pblica: RSA,
DSA. Implementa tanto la autenticacin mutua emisor/receptor como la
de servidor/cliente.
Integridad de los datos mediante funcioneshashMAC (message authentica-
tion code): SHA, MD5.
Fases del SSL
Fragmentacin delmensaje en bloques demedida menor que 214bytes. TCP aadefiabilidad.
Posibilidad decompresin (opcional).
Clculo de un MAC. Cifrado de los datos y del
MAC (messageauthentication code).
Transmisin por TCP.
El protocolo SSL sigue los siguientes pasos:
1) A B. El usuarioA enva un valor aleatorioRA a B.
2) B A. El usuarioB enva aA: (RB,CertB,DB(RB,RA)).
3) A B. El usuarioA enva, opcionalmente, aB: (CertA,DA(RA,RB)).
4) B A. El usuarioB escoge una clave de sesinKABy enva aA: (EA(KAB),RA).
5) A B. El usuarioA enva aB:EKAB (RA).
En este ltimo paso, el usuario B cifra con la clave KAB, el valor aleatorio RA
que le haba enviadoA en el paso anterior.
Resumen de las transacciones del protocolo:
Observaciones
El paso tercero esopcional.
En el cuarto paso,B haescogido la clave desesin,KAB.
En el quinto paso,A, cifra
con la claveKAB, el valoraleatorioRA que le habaenviadoB, en el pasoanterior.
A B
RA
RB,CertB,DB(RB,RA)
CertA,DA(RA,RB)
EA(KAB),RA
EKAB (RA)
-
7/24/2019 Criptografia_avanzada_(Modulo_3)
26/60
CC-BY-NC-ND PID_00200954 26 Protocolos criptogrficos
2.7. Protocolos de identificacin de conocimiento nulo
En los protocolos de desafo-respuesta, vistos anteriormente, aunque el usua-
rio A no revele el secreto, el usuario B puede conseguir alguna informacin
durante el proceso.
Condiciones de unaprueba de conocimientonulo
1) SiA posee el secreto,siempre podr convencer aBque acepte su demostracin.
2) SiA no posee el secreto,la probabilidad que engae aBpuede hacerse tan pequeacomo se quiera, repitiendo elprocedimiento el suficientenmero de veces.
.
Definicin 2.3 (Prueba de conocimiento nulo).
Una prueba de conocimiento nulo es un proceso interactivo donde el
candidato convence al verificador, hasta un nivel aceptable, que cono-
ce, o tiene algn secreto, sin que el verificador pueda extraer ninguna
informacin de la prueba que no pudiera haber extrado por cualquier
otro procedimiento, con o sin la participacin del candidato o, incluso,
si este miente en la prueba.
Las pruebas de conocimiento nulo adoptan la forma de una demostracin
interactiva, implicando un cierto nmero de etapas y, en cada una de ellas, se
seguir el siguiente protocolo:
Protocolo bsico
A B. El usuarioA quiere probar algo al verificador B y le enva algn
elemento para su identificacin.
B A. El verificadorB presenta un desafo aA.
A B. El usuarioA tiene que efectuar unos clculos privadamente y enviar
al verificadorB una respuesta al desafo planteado.
Si alguna de las respuestas es incorrecta,Bdeduce queAno dispone del secreto
y rechaza su identidad. Por el contrario, si en todas las etapas la respuesta es
correcta, entoncesB acepta queA conoce (o tiene) el secreto.
Protocolo de Fiat-Shamir
Sea n = p1 p2, que todo el mundo puede conocer, generado por una terce-
ra parte de confianza Ty que mantiene secretos los valores de los nmeros
primosp1 y p2.
Cada usuarioU elige un elemento xU Zn y calcula yU = x
2U (mod n). As, la
clave secreta deA serxA y la clave pblica yA, que se registra en el directorio
pblico deT.
-
7/24/2019 Criptografia_avanzada_(Modulo_3)
27/60
CC-BY-NC-ND PID_00200954 27 Protocolos criptogrficos
Protocolo
A B. El usuarioA genera al azar un valor r Zn, calculay1 =r2 (modn)
y lo enva a B, junto con un mensaje diciendo que quiere probar su iden-
tidad.
B A. El verificadorB enva aA un bit, al azar:y2 {0,1}.
A B El usuarioA calculay3 de la siguiente manera:
siy2= 0, entonces y3= r (mod n)
siy2 = 1, entoncesy3= r xA (modn)
y enva aB el valory3.
Finalmente, la verificacin la lleva a cabo el usuario B que comprueba que
siy2= 0, entoncesy23=r
2 (modn) =y1
siy2= 1, entonces y23=r
2 yA (mod n) =y1 yA (mod n)
Si no se cumple la verificacin, B rechaza la identidad de A.
Impersonacin
Un usuarioC impersonando a
Apuede enviar a B y1 = r2
yA(mod n). Entonces, podraresponder correctamentey3 = r, solo en el supuesto dequey2 = 1. Siy2 = 0nopodr efectuar los clculos.Por lo tanto, solo tiene unaprobabilidad de acierto de0,5 en cada ronda.
Este protocolo tiene que llevarse a cabo unas cuantas veces. Si se repite kveces,
la probabilidad que alguien impersone a A es 2k, y puede ser tan pequea
como queramos, dependiente del valor dek.
Resumen de las transacciones del protocolo:
A B
y1 = r2
(mod n)
y2 {0,1}
y3
Ejemplo 2.5. Supongamos los valores, n = p1 p2 = 5 11 = 55; la clave secreta de A,xA = 13, y la clave pblica de A,yA = x
2A (mod n) = 13
2 (mod 55) = 4
Con estas premisas, el protocolo sigue los siguientes pasos:
A B. El usuarioA toma el valor r= 30 y calcula y1
=r2 (mod n) = 302 (mod 55) =20 y lo enva aB, junto con un mensaje diciendo que quiere probar su identidad.
B A. El verificadorB enva aA un bit, al azar: y2 {0,1}. Supongamosy2 = 1. A B. El usuarioA calculay3.
Como quey2= 1, entoncesy3= r xA (mod n) = 30 13 (mod 55) = 5 y lo enva aB.
-
7/24/2019 Criptografia_avanzada_(Modulo_3)
28/60
CC-BY-NC-ND PID_00200954 28 Protocolos criptogrficos
Finalmente, la verificacin la lleva a cabo el usuarioB, que comprueba: puesto quey2= 1,siy23 = r
2 yA (mod n) = y1 yA (mod n).
Efectivamente: 20 4 (mod 55) = 25 = 52, y da por buena la identidad deA.
Protocolo de Schnorr
Este protocolo de identificacin se basa en el problema del logaritmo discreto
y hace intervenir a una tercera parte de confianza que desempea las siguien-
tes acciones:
Escoge dos primos p y q, de unos 1024 bits y 160 bits respectivamente, tales
queq | p 1. Tambin escoge un valor, tal que 1 p 1, de ordenq, y un
parmetro de seguridadt, tal que:t 40 y 2t q.
La autoridadTenva a cada participante, firmada mediante su clave privada,DT(p,q,).
Por otra parte, el usuario que se quiere identificar,A, dispone de su identifica-
cinIdA, su clave privada, que consiste en un nmeroa tal que 0 a q 1
y la correspondiente clave pblica es v = a (mod p); as como tambin del
certificado emitido porT:CertA= (IdA,v,DT(IdA,v)).
Protocolo
A B. El usuarioA escoge aleatoriamente un valorr, tal que 1 r (p 1) y
enva aB el CertAyx = r (modp)
B A. Despus de queB ha verificado la clave pblica de A, le enva el valor
etal que 1 e 2t.
A B. El usuarioA enva al verificadorB:y= (a e + r) (mod q).
El verificadorB acepta la identidad deA si y ve (mod p) =x.
Efectivamente, como es de ordenq, entonces:
y ve (mod p) = ae+r ve (mod p) =ae r ae (mod p) = r (mod p) = x
Resumen de las transacciones del protocolo:
A B
CertA
,x= r (modp)
e: 1 e 2t
y= (a e + r) (mod q)
-
7/24/2019 Criptografia_avanzada_(Modulo_3)
29/60
CC-BY-NC-ND PID_00200954 29 Protocolos criptogrficos
Ejemplo 2.6.
Supongamos que una tercera parte de confianzaTha escogido:
Los valores de los primosp = 103 yq = 17. Obsrvese que 10217
= 6.
Para encontrar el valor de busca un elemento primitivo en Zp; por ejemplo = 6y toma = 6 (mod 103) = 100. Efectivamente, de la construccin se deriva que elorden de es 17.
Para simplificar el ejemplo, omitiremos sin perder rigor el parmetro de seguridadt,t 40 y 2t q.
La autoridadTenva a cada participante copia autenticada de (p= 103,q= 17,= 100).
Los parmetros de A, aparte del identificador IdA, son su clave privada que suponemosa = 11 y su correspondiente clave pblica v= 10011 (mod 103) = 8. As, el certificadoemitido porTes: CertA = (IdA,8,DT(IdA,8)).
Protocolo
A B. El usuarioA escoge aleatoriamente un valorr= 5 y enva a B el CertA y x = 1005
(mod 103) = 66.
B A. Despus de queB ha verificado la clave pblica de A, le enva el valor que haescogido:e = 13.
A B. El usuarioA enva al verificador B:y= 11 13 + 5 (mod 17) = 12.
El verificador B acepta la identidad de A puesto que y ve (modp) = 10012 813
(mod 103) = 64 30 (mod 103) = 66 que coincide con el valor de x = 66 previamen-te calculado.
-
7/24/2019 Criptografia_avanzada_(Modulo_3)
30/60
CC-BY-NC-ND PID_00200954 30 Protocolos criptogrficos
3. Transacciones electrnicas seguras:dinero electrnico
.
Un problema usual en el mundo de las transacciones es que un usuario A
quiera hacer una transaccin con un banco, B, de forma que, de una parte, B
debe poder autenticar a A y, por otra parte, A debe tener un certificado de B
que le asegure que este no negar la transaccin ya realizada.
El problema es fcil de resolver si utilizamos las firmas electrnicas como sus-
titutos del dinero, como propone David Chaum (a finales de los ochenta).
3.1. Protocolo de Chaum
Supongamos un comprador,A, que quiere interactuar conB, que ahora consi-
deraremos que es el banco, para pedirle poner disponer de una cierta cantidad
de dinero que, posiblemente ms tarde, querr utilizar para poder pagar algu-
na compra.
Protocolo
A B. El usuarioA genera, al azar, un nmerom grande y crea un docu-
mento personalizado,docAB, en el cual explica al banco que quiere dispo-
ner deXe. Firma el nmero escogido, calculandoDA(m) y usando la clave
pblica deB le enva: (IdA,EB(DA(m)),docAB)
B A. El banco recibe los mensajes, identificaA y leedocAB. Con la clave
pblica deA, y con su clave privada, puede recuperar el nmero m. Ahora
ya puede descontar losXe de la cuenta de A. El banco firmar el nmero
m, aadiendo un documento docBA firmado, DB(docBA). Enviar a A estasdos firmas, cifradas con la clave pblica de A: (EA(DB(m)),EA(DB(docBA))).
Al usuarioAle interesa tener (DB(docBA), y no solodocBA, para poder demostrar
ante terceros, en caso necesario, que el banco le ha descontado X e de su
cuenta y que estos corresponden a su nmero m.
Si ahora hacemos intervenir a un vendedor V, cuandoA va a comprar aV, el
correspondiente protocolo seguir los siguientes pasos:
A V. El comprador A enva a V: (IdA,DB(m),DB(docBA)). El vendedor
podr autenticar los mensajes firmados por B y conocer la identidad del
compradorA y el hecho de que dispone de un valor deXe.
-
7/24/2019 Criptografia_avanzada_(Modulo_3)
31/60
CC-BY-NC-ND PID_00200954 31 Protocolos criptogrficos
Nota
El comprador A podra enviar estos valores cifrados, con EV, y firmados con DA:DA(EV(DB(m))) yDA(EV(DB(docBA))).
V B. El vendedorVenva al banco:DV(DB(m)). El banco comprueba que
el mensaje es correcto (correspondiente a un nmero firmado previamente
por el propio banco); deposita en la cuenta de V losXe y escribe en una
lista de nmeros caducados el nmero m, para evitar que le vuelva a ser
presentado otra vez.
B V. El banco enva firmado undocBVde la transaccin hecha al vende-
dorV:DB(docBV).
A partir de este momento, V ya puede dar la mercanca a A, junto con un
documento firmado,DV(docVA) de haber cobrado del banco.
Resumen de las transacciones del protocolo:
A B
IdA,EB(DA(m)),docAB
EA(DB(m)),EA(DB(docBA))
A V
IdA,DB(m),DB(docBA)
B V
DV(DB(m)),DV(DB(docBA))
DB(docBV)
Ejemplo 3.1.
Utilizemos como parmetros de los criptosistemas RSA del usuario A, del banco B y delvendedorV, respectivamente:
nA= 7 17 = 119 yeA = 5; entonces (nA) = 6 16 = 96 y dA= 51 (mod 96) = 77.
Por lo tanto: clave pblica (eA,nA) = (5,119) y clave secreta(dA,nA) = (77,119).
nB = 5 11 = 55 y eB = 3; entonces(nB) = 4 10 = 40 y dB= 31 (mod 40) = 27.
Por lo tanto: clave pblica (eB,nB) = (3,55) y clave secreta (dB,nB) = (27,55).
nV= 3 19 = 57 yeV= 7; entonces (nV) = 2 18 = 36 y dV= 71 (mod 36) = 31.
Por lo tanto: clave pblica (eV,nV) = (7,57) y clave secreta (dV,nV) = (31,57).
-
7/24/2019 Criptografia_avanzada_(Modulo_3)
32/60
CC-BY-NC-ND PID_00200954 32 Protocolos criptogrficos
El protocolo de Chaum seguir los siguientes pasos:
Protocolo
El usuarioA har:
Generar al azarm = 8.
CalcularDA(m) = mdA (mod nA) = 8
77 (mod 119) = 43.
Generar un documento personalizado, docAB en el que explica al banco que quiere dis-poner de 300 e.
A B. El compradorA enviar al banco: (IdA,EB(DA(m)),docAB).
Es decir: su identidad, EB(DA(m)) = EB(43) = 433 (mod 55) = 32 y el documento
docAB.
El banco,B, una vez recibido EB(DA(m)) = 32, har:
AplicarDB(EB(DA(m))) =DB(32) = 3227 (mod 55) = 43(= DA(m)).
AplicarEA(DA(m)) = EA(43) = 435 (mod 119) = 8(=m).
Descontar 300 e de la cuenta deA y firmar el nmerom:
DB(m) = DB(8) = 827 (mod 55) = 2.
Adems, el banco redacta un documento, docBAy lo enva firmado a A:DB(docBA).
B A. El banco enva aA:
EA
(DB
(m)) = EA
(2) = 25 (mod 119) = 32.
EA(DB(docBA)).
Supongamos ahora la intervencin del vendedor V, con cuentas en el mismo ban-coB.
Si A hace un pedido al vendedor por el valor de 300 e, le entrega DB(m) = 2 yDB(docBA).
V B. El vendedor entrega al banco:
DV(DB(m)) = DV(2) = 231 (mod 57) = 41 yDV(DB(docBA)).
El banco har:
Comprobar que el mensaje es correcto EV(DV(DB(m))) = DB(m) y que tambin lo esel documentodocVB.
Depositar en la cuenta del vendedor 300 e.
Escribir en una lista de nmeros caducados el nmero m para evitar que se puedavolver a usar.
B V. El banco enva firmado undocBVde la transaccin hecha al vendedor V:
DB(docBV)
A partir de este momento, Vya puede dar la mercanca a A , junto con un documentofirmado,DV(docVA) de haber cobrado del banco.
-
7/24/2019 Criptografia_avanzada_(Modulo_3)
33/60
CC-BY-NC-ND PID_00200954 33 Protocolos criptogrficos
3.2. Transacciones sin rastro. Firmas digitales ciegas de Chaum
En el protocolo que acabamos de describir hay autenticidadpero noprivacidad.
El banco sabe (por el nmero m del billete) que A ha comprado a V y, en
general, podr seguir el rastro de las operaciones comerciales de A.
Para obviar este problema, D. Chaum (1992) propone una variante del proto-
colo usando firmas digitales ciegas, que consiste en hacer firmar al banco un
documento que contiene un nmero escondido.
De este modo, el usuario A sacar a la luz el nmero y lo har servir junto
con el documento firmado por el banco, cuando le convenga. Por otra parte,
el banco no sabr a quin corresponden los nmeros de los billetes que se
utilizan.
Nivel de seguridad de lasfirmas ciegas
Las firmas ciegas garantizanla integridad,confidencialidad yautenticidad de los datos, almismo tiempo que segarantiza el anonimato delcomprador.El comprador est protegidoante posibles actuacionesfraudulentas de falta de
entrega de mercancas oservicios por parte devendedores, puesto que encualquier momento elcomprador puede revelar suidentidad y, en este caso,seguir la traza del flujo deldinero.
El mtodo de Chaum es vlido para cualquier sistema criptogrfico de clave
pblica (como RSA) que cumpla: EU(xy) = EU(x)EU(y) y DU(xy) = DU(x)DU(y)
para cualquier usuarioU.
Vamos a desarrollar este protocolo suponiendo que estamos usando el cripto-
sistemaRSA.
Protocolo
A B. El usuarioA, antes de dar el nmero m al banco, selecciona otro
nmero grande,k, escogido al azar y del cual puede calcular k1 (mod nB).
El usuario A calcula EB(k) y enva: m EB(k) (modnB), firmado y secreto a
B. Es decir, enva aB:EB(DA(m EB(k)).
B A. El banco descifra y autentica el mensaje recibido y obtienem EB(k)
(modnB). A continuacin firma este mensaje calculando DB(m EB(k)) =
k DB(m) (mod nB). (Observar que el banco no conoce el nmero m que
acaba de firmar, solo conoce k DB(m) (mod nB)).
Ahora el banco devuelve, como en el caso general, un documento a A,
docBA, y tambin el nmero firmadok DB(m) (mod n).
El usuario A calcula k DB(m) k1 (modnB) = DB(m) y obtiene un nmero
firmado por el banco que, cuando el vendedor lo presente al banco, ser hecho
efectivo y, adems, el banco desconocer al propietario del nmero del billete.
Resumen de las transacciones del protocolo:
A B
EB(DA(m EB(k)))
k DB(m) (mod nB),docBA
-
7/24/2019 Criptografia_avanzada_(Modulo_3)
34/60
CC-BY-NC-ND PID_00200954 34 Protocolos criptogrficos
Simplificacin
Para ms claridad en lospasos del protocolo, noshemos ahorrado firmarlo ycifrarlo.
El banco no conoce elnmero que firma
Con esta operacin, el bancoha firmado el mensajeoriginalm = 65, sin conocersu valor. Observar que21 esel mismo valor que obtendrael banco si hubiera firmadocon su clave privada elmensajem = 65: Es decir:6561 (mod 851) = 21.
Ejemplo 3.2. (Firma ciega de Chaum)
Adesea que el Banco, B, le firme el mensajem = 65.
Supongamos que las claves pblica y privada de B son:nB = 851,eB = 13,dB = 61.
(Los parmetros deB son:pB = 23,qB = 37, (nB)= 792, todos ellos guardados en un lugarseguro, junto condB).
Supongamos queA escogek = 51, y calcula 511 (mod 851) = 267.
A B. El usuarioA calcula:
M= m keB (mod nB) = 65 5113 (mod 851) = 65 458 (mod 851) = 836 y envaMal
Banco.
B A. El Banco hace:
firma este mensaje recibido,M, con su clave privada:
MdB (mod n)B= 83661 (mod 851) = 220,
y lo enva a A, junto con un documentodocBA.
El usuarioA, como conocek1 (mod nB) = 267, puede calcular: 276 220 (mod 851) = 21,que es la firma del banco dem, sin que el banco conozcam.
3.3. Sistemas de pago electrnicos
Con la aparicin y generalizacin del comercio electrnico se ha hecho nece-
saria la creacin de sistemas electrnicos de pago adaptados a la situacin no
presencial de los usuarios involucrados.
Los sistemas de pago electrnico todava utilizan, mayoritariamente, dinero
asociado a una tarjeta emitida por una entidad financiera, pero hoy ya pode-
mos hablar de dinero electrnico, en el sentido que acabamos de ver, que lo
hace un sistema de pago ms adecuado, y ms seguro, en las transacciones
electrnicas.
Los sistemas de pago electrnico en la actualidad son, bsicamente:
Cheques electrnicos. Sustitutos de los cheques de papel, consisten en un
mensaje con una firma digital, representando un valor monetario, que se
hace efectivo a travs de una tercera parte de confianza y hace uso de las
redes interbancarias existentes.
Moneda electrnica. Sustituta de la moneda fsica que debe preservar el
anonimato del comprador, permitiendo realizar pagos que no queden re-
gistrados y no vinculen a los usuarios con sus compras. Cuando la transfe-
rencia se haceoff-line, se deber garantizar la que sea posible la transferen-
cia y la seguridad frente a la falsificacin o del uso de la misma moneda en
ms de un pago.
-
7/24/2019 Criptografia_avanzada_(Modulo_3)
35/60
CC-BY-NC-ND PID_00200954 35 Protocolos criptogrficos
Tarjeta de crdito. Aun cuando todava es el sistema de pago ms utiliza-
do, los receptores se pueden poner en contacto con el banco para verificar
la disponibilidad de fondo, aunque, normalmente, no se realiza la verifi-
cacin de la identidad del usuario. A diferencia de la moneda electrnica,
las tarjetas de crdito identifican a su propietario y, adems, los pagos se
pueden vincular entre ellos.
Micropagagos. Diseados especialmente para reducir los costes de comu-
nicacin, almacenamiento y procesamiento relacionados con el pago cuan-
do las cantidades a transferir son pequeas. De este modo se permite un
cierto relajamiento de las medidas de seguridad, puesto que los riesgos es-
tn ms controlados, y en la mayora de casos el anonimato del usuario
que realiza el pago se sacrifica para reducir costes.
Los sistemas de pago vienen definidos por las reglas mediante las cuales los
participantes en una operacin de compra/venta (comprador, bancos emisor
y adquirente, comercio, pasarela de pago y autoridad certificadora) intercam-
bian dinero y productos o servicios.
Los procedimientos, o pasos, en los sistemas de pago con moneda electrnica
son, bsicamente:
1) Establecimiento de la cuenta. Es una operacin que se realiza una sola
vez, en la cual se vincula la identidad o el seudnimo del comprador a lanueva cuenta. El comprador dispondr de un par de claves correspondientes a
un sistema criptogrfico de clave pblica y de un certificado autenticando su
clave pblica.
2) Retirada de fondo: obtencin de la moneda electrnica . La entidad fi-
nanciera emisora carga en la cuenta del comprador el valor solicitado pre-
viamente para llevar a cabo una compra o el valor de la moneda electrnica
solicitada. La moneda electrnica puede ser de dbito si se extrae su valor de
la cuenta del usuario antes del pago (este procedimiento requiere la autenti-
cacin del usuario), o de crdito si el pago se hace posteriormente y, en estecaso, la identificacin de la cuenta del pagador se realiza durante el depsito.
3) Pago. El comprador entrega la informacin necesaria y suficiente al comer-
cio para hacer el pago de los bienes que quiere comprar. Tambin puede dar
esta informacin a la pasarela de pago.
4) Depsito. La entidad financiera adquirente recibe la informacin y cobra
de la entidad emisora, a travs de la red financiera una vez ha comprobado
que no se ha depositado dos veces la misma moneda. Finalmente, ingresa el
valor de la compra, o de las monedas electrnicas implicadas, en la cuenta del
comercio. En sistemas que permiten la transferencia de las monedas electr-
nicas tambin puede optar por transferir la moneda a un tercero.
-
7/24/2019 Criptografia_avanzada_(Modulo_3)
36/60
CC-BY-NC-ND PID_00200954 36 Protocolos criptogrficos
Una primera clasificacin de los sistemas de pago puede venir marcada por
el importe a transferir. As hablaremos de micropagos, cuando el importe de
la operacin es inferior a los 10 e. Por encima de esta cantidad se hablar
de macropagos. Aunque todo sistema de pago debe satisfacer una serie de
requisitos de seguridad, es obvio que en el caso de micropagos estos sern
ms laxos para que el coste de la seguridad sea proporcionado al valor que
se transfiere. No es lo mismo proteger un pago de 10 e , que proteger uno de
100.000 e.
Una segunda clasificacin es la de sistemas on-liney sistemasoff-line. Los pro-
tocoloson-lineexigen el acceso a un servidor para cada transaccin.
Para los sistemas de pagoon-line, el concepto de dinero electrnico, propuesto
por D. Chaum, permite conjugar las prestaciones que ofrecen las redes tele-
mticas con las propiedades intrnsecas de los sistemas de pago tradicional:anonimato, privacidad y dificultad de falsificacin. La diferencia entre el di-
nero electrnico y el de curso legal actual es su soporte, que pasa de ser fsico
a una cadena de bits.
La no falsificacin, o evitar el doble uso, del dinero electrnico exige una
verificacin, contra una cierta base de datos, para asegurarse de que no haya
sido utilizado previamente. Si la verificacin se hace off-line necesita mayor
proteccin del anonimato, es decir, que no se pueda establecer ningn vnculo
entre el dinero electrnico y la identidad del propietario, que si se haceon-line.
Tal como hemos visto antes, estos sistemas se basan en firmas ciegas.
En general, el dinero electrnico est pensado para ser utilizado en Internet
o, actualmente, en sistemas basados en terminales mviles. Se trata de reem-
plazar las monedas y billetes de curso legal por un sistema informacional,
manteniendo las prestaciones de anonimato y no trazabilidad utilizando crip-
tografa de clave pblica. Los billetes y monedas electrnicas se almacenan
localmente, pero se requiere que el usuario tenga una cuenta bancaria asocia-
da, a partir de la que se descontar la cantidad que corresponda al billete o
moneda electrnica.
El funcionamiento general de este sistema es parecido al que se ha descrito en
el protocolo de Chaum:
1) El comprador solicita monedas electrnicas. Estas se identifican con un n-
mero de serie. Este nmero permite garantizar la unicidad puesto que permite
detectar duplicidades. El anonimato del propietario de las monedas electrni-
cas se protege mediante firmas ciegas.
2) Una vez el banco ha descontado el valor correspondiente de las monedas
electrnicas entregadas al comprador, estas se almacenan en el terminal del
comprador.
-
7/24/2019 Criptografia_avanzada_(Modulo_3)
37/60
CC-BY-NC-ND PID_00200954 37 Protocolos criptogrficos
3) Cuando el comprador hace el pedido de bienes o servicios al vendedor, le
entrega las monedas electrnicas correspondientes al valor de la compra.
4) El vendedor, antes de servir el pedido, entrega las monedas electrnicas al
banco y le solicita su validacin.
5) El servidor del banco accede a una base de datos donde consta el nmero
de serie de todas las monedas que han sido utilizadas. Con esta operacin se
detecta si ha habido doble uso. Si no hay duplicidad, se responde al vendedor
sobre la autenticidad de las monedas electrnicas y, si se realiza la operacin
de compra, automticamente se ingresa el importe en su cuenta y se aade el
nmero de serie correspondiente a la base de datos correspondiente.
6) El vendedor entrega los productos al comprador.
A nivel de seguridad, se garantiza la integridad, confidencialidad y autenti-
cidad, al mismo tiempo que se facilita el anonimato del comprador. El com-
prador est protegido ante posibles actuaciones deshonestas de vendedores en
cuanto a no entregas de productos se refiere, puesto que en un momento da-
do el comprador puede desvelar su identidad y en este caso se podra trazar el
flujo del dinero.
Resumen de las transacciones del protocolo:
Comprador Banco
solicita monedas electrnicas
descuento del valor de las monedas
Comprador Comercio
pedido de bienes o servicios
Comercio Banco
validacin de las monedas electrnicas
valda o rechaza
Comercio Comprador
si el banco valda, sirve bienes o servicios
-
7/24/2019 Criptografia_avanzada_(Modulo_3)
38/60
CC-BY-NC-ND PID_00200954 38 Protocolos criptogrficos
4. Protocolos de transferencia inconsciente.
La transferencia inconsciente o transcordada (oblivius transfer) consiste en la
transferencia de un secreto entre dos usuarios A y B de forma que la proba-
bilidad de que B lo obtenga es de un 50 %, sin queA pueda saber si B lo ha
obtenido, o no.
Estos tipos de protocolos dan lugar a otros protocolos ms complejos, como
los de compromiso de bits o los de prueba de conocimiento nulo y, en
general, a los protocolos que permiten la firma electrnica de contratos.
4.1. Protocolo de Rabin
El secreto consiste en la factorizaci del valor nAde la clave pblica del sistema
RSA deA.
Protocolo
B A. El usuarioBescoge un valor x, 1 x nA 1, y enva a A:z = x2
(modnA)
A B. El usuarioA calcula las cuatro races cuadradas de:
z (mod nA) = {x,nA x,y,nA y}
y enva una de ellas a B (esto solo lo puede hacer A, porque conoce los
valorespA y qA, con los cuales ha calculadonA).
Seavla raz enviada aB.
El usuarioB comprueba sivcoincide cony, o con nAy. Si coincide, se podr
factorizarnA; de lo contrario no se podr.
Resumen de las transacciones del protocolo
A B
z= x2 (modnA)
v= z1/2 (mod nA)
Nota
Hay una equivalencia computacional entre factorizar nA = pA qA y calcular races cua-dradas en ZnA , como queda justificado en el cuadro y en el teorema siguientes.
-
7/24/2019 Criptografia_avanzada_(Modulo_3)
39/60
CC-BY-NC-ND PID_00200954 39 Protocolos criptogrficos
.
Cuadrados y races cuadradas en Zp, dondep es un nmero primo
Si Zp puede pasar que exista, o no,x Zp tal quex2 =.
En el primer caso se dice que es un residuo cuadrtico En el segundo,
se dice que es un residuo no-cuadrtico.
A excepcin de 0 Zp, hay exactamente p1
2 residuos cuadrticos (QR)
y p12 residuos no cuadrticos (QNR) enZp.
Si Zp, esp1
2 =
8>>>:
1 si es QR
1 si es QNR
Es computacionalmente eficiente (hay un algoritmo determinista-
polinomial) saber si Zp es QR o QNR.
No es computacionalmente eficiente encontrar un elemento QNR.
De todos modos, s hay algoritmos no deterministas de complejidad
polinmica que resuelven el problema de manera sencilla.
Es computacionalmente eficiente calcular la raz cuadrada de un ele-
mento QR.
Cuadrados y racescuadradas en Zn, donden= p1 p2
Hay exactamente n14
elementos QR en Zn y cada
uno de ellos tiene,exactamente, cuatro racescuadradas.Ejemplo:En Z15, el elemento4 Z15es un QR y tienecuatro races, que son:{2,13,7,8}.Los QR en Zn, son aquelloselementos en los que elmdulop1y, tambin, elmdulop2, son QR.
.
Teorema 4.1. Si n = p1 p2, dondep1y p2son nmeros primos diferen-
tes e impares, y si y son races cuadradas, esencialmente diferentes,
(es decir = ), de un cierto QR, entonces:
mcd( + ,n) =p1, omcd( + ,n) = p2
Probabilidad de queB
conozca nA es 1/2
Del teorema tambin sededuce que la probabilidadde queB conozcanA = p1 p2es1/2 puesto que el espaciode muestras tiene4resultados posibles (las4races cuadradas dez), de lascuales solo2 sirven parafactorizarnA (yy nAy). As,si cada bit de un secreto setransmite mediantetransferencia inconsciente, laprobabilidad de queB pueda
conocer el secreto es de2t,sites el nmero de bits delsecreto.
Ejemplo 4.1.
SupongamosnA = 5 11 = 55.
B A. El usuarioB escoge un valorx = 13 y enva a A:z = 132 (mod 55) = 4.
A B. El usuarioA calcula las cuatro races cuadradas de 4 (mod 55) = {13,55 13,2,55 2}= {13,42,2,53}y enva una de ellas a B.Seav= 2 la raz enviada.
El usuario B comprueba si v= 2 coincide con y, o con 55 y. Como coincide, se podrfactorizarnA = 55 puesto que mcd(13 + 2,55) =mcd(15,55) = 5.
Igual hubiera pasado siv= 53, puesto que mcd(13 + 53,55) = mcd(66,55) = 11, que es unfactor denA= 55.
Si se hubiera enviado v= 42 no se hubiera podido factorizar nA, puesto que mcd(13 +42,55) =mcd(55,55) = 55.Igualmente parav= 13, puesto quemcd(13 + 13,55) =mcd(26,55) = 1.
-
7/24/2019 Criptografia_avanzada_(Modulo_3)
40/60
CC-BY-NC-ND PID_00200954 40 Protocolos criptogrficos
4.2. Protocolos de compromiso de bits
En este protocolo, un usuario A se compromete frente a otro usuario B con
un valor, de tal manera queA no lo pueda cambiar y B no lo pueda descubrir
hasta que el propioA no haya abierto el compromiso.
Es un protocolo til en otros protocolos, como el de lanzamiento de monedas
o el de pruebas de conocimiento nulo, y debe cumplir las siguientes propie-
dades:
Se debe poder comprometer cualquiera de los dos valores posibles para
cada bit.
De la apertura del compromiso,B solo obtendr el valor del bit compro-
metido.
No se debe poder modificar el valor comprometido, aunque se cambie la
manera de abrir el compromiso.
El usuarioB no debe poder conocer nada sobre la manera de abrir los com-
promisos aunque haya visto abrir algunos.
Otros protocolos decompromiso de bits
En la literatura hay otrasimplementaciones deprotocolos de compromisode bits, usando sistemascriptogrficos de clavesecreta, logaritmos discretos,funciones de hash, residuoscuadrticos o, incluso, grafosno isomorfos.
1) Protocolo: Usando transferencia inconsciente
Para comprometer un bit b, el usuario A escoge n bits aleatorios b i, tales que
b1 b2 bn = b, y se siguen los tres pasos siguientes, donde es la
operacin XOR.
Protocolo
1) Compromiso: El usuarioA enva aBcada bitbipor orden, mediante trans-
ferencia inconsciente.
2) Apertura: El usuarioA enva aB todos los bitsbi.
3) Verificacin: El usuario B compara los bits bi, recibidos dentro del plazo
del compromiso, con los correspondientes de la apertura.
Nota
La probabilidad de fraude, por parte de A, es menor que 12
. Si se ejecuta el protocolo k
veces, la probabilidad de fraude ser menor que 2k.
2) Protocolo: Lanzamiento de moneda por telfono
El protocolo de Rabin puede ser utilizado para el problema de tirar una mone-
da al aire, y resolver una apuesta entre dos usuarios A y B de manera telem-
tica.
-
7/24/2019 Criptografia_avanzada_(Modulo_3)
41/60
CC-BY-NC-ND PID_00200954 41 Protocolos criptogrficos
Apuesta
Cara B puede factorizarn
Cruz B no puede factorizarn
Protocolo
A B: El usuarioA construye, al azar, dos nmeros primos, diferentes y gran-
des:p1,p2 y calculan = p1 p2. Envan al usuarioB.
B A: El usuario B escoge, al azar, un elemento primitivo, Zn, calcula
= 2 (mod n) y enva al usuarioA.
A B: El usuario A calcula las cuatro races cuadradas de y enva una al
usuarioB. Sea la raz enviada.
B A: El usuarioB le dice aA si ha salido CARA o CRUZ.
Tal como hemos visto antes, si = , el usuario B podr factorizarn. De lo
contrario, si = , no podr factorizarn.
Resumen de las transacciones del protocolo:
A B
n
= 2 (modn)
= 1/2 (modn)
CARA o CRUZ
Este protocolo fue propuesto por Mario Blum (1982) y se trata, tal como he-
mos visto antes, de resolver una apuesta entre dos usuarios A y B, distantes
entre s, mediante el lanzamiento de una moneda a cara o cruz. Si uno de los
dos hace trampa, sin necesidad de un tercero el otro lo puede detectar.
Puede haber dos casos posibles de trampa:
trampa de A
El usuarioA lanza la moneda y anota el resultado.
-
7/24/2019 Criptografia_avanzada_(Modulo_3)
42/60
CC-BY-NC-ND PID_00200954 42 Protocolos criptogrficos
El usuarioB hace su apuesta y se la dice a A.
El usuarioA le dice aB, que justamente ha salido lo contrario.
trampa de B
El usuarioA lanza la moneda y anota el resultado.
El usuarioB hace su apuesta y se la dice a A.
El usuarioA le dice aB, que justamente no ha salido lo que l haba dicho.
El usuarioB niega su primera apuesta y replica a A dicindole que precisa-
mente lo que ha salido era lo que l haba apostado.
Cmo resolver el problema de manera que si uno hace trampa el otro lo
detecte? Las soluciones pasan por el protocolo de transferencia inconsciente
de Rabin que hemos visto, o el protocolo propuesto por Blum, basado en una
funcin unidireccional sobre un conjunto de nmeros tal que la mitad deellos son pares y la otra mitad impares.
Nmeros de Blum
Son los nmerosn = p1 p2tales que ambos primosp1 yp2 son congruentes con 3 delmdulo 4.En este caso, aparte del ceroy de p1 y p2, la mitad de losresiduos cuadrticos en Znson pares y la otra mitad son
impares. Adems, el valor dezidentificay, ya que de lascuatro races cuadradas de z,nicamente hay una que, asu vez, sea un residuocuadrtico.
El esquema general del protocolo, una vez el usuarioAha escogido un nmero
de Blum:n = p1 p2 es:
Protocolo
A B. El usuarioAescoge un valorx Zny calculay= x2 (modn) y z = y2
(modn). El usuarioA envaz a B.
B A. El usuarioB, una vez recibido z, apuesta por la paridad de y (es
decir, si es o no un nmero par).
A B. El usuarioA le informa si ha acertado o no. Adems le muestra los
valores dex y y, al mismo tiempo que le demuestra quen es un nmero de
Blum.
El usuarioB comprueba quey= x2 (modn) yz = y2 (modn).
Ambos usuariosA yB han actuado con un 50 % de probabilidad de engao en
el primero y el segundo paso del protocolo.
Resumen de las transacciones del protocolo:
A B
z
paridad(y)
{S o No},x,y,p1,p2
-
7/24/2019 Criptografia_avanzada_(Modulo_3)
43/60
CC-BY-NC-ND PID_00200954 43 Protocolos criptogrficos
Ejemplo 4.2.
El usuarioA escoge un nmero de Blum, por ejemplo: n = 7 11 = 77.
A B. El usuarioA escoge un valorx = 13 y calcula:y= x2 (mod n) = 132 (mod 77) = 15 y
z= y2 (mod n) = 152 (mod 77) = 71.Aenvaz a B.
B A. El usuarioB, una vez recibido z, apuesta por la paridad de y.Suponemos que apuesta porypar.
A B. El usuarioA le informa de que no ha acertado en la apuesta.Para demostrarlo, le enva los valores de x = 13,y= 15 y n = 7 11 = 77.El usuarioA le demuestra quen es un nmero de Blum y B puede verificar el valor dez, a partir de los valores de x y yrecibos.
En este caso,B comprueba que se haba equivocado en su apuesta.
4.3. Firma electrnica de contratos: Protocolo de Even
Se trata de permitir la firma electrnica de un documento entre dos usuarios
AyB, sin intermediarios, de forma que se cumplan estas dos condiciones:
Que ambos usuarios queden obligados a culminar la firma, solo a partir de
un punto del protocolo.
Que la firma no pueda falsificarse y, adems, pueda ser comprobada por elotro usuario.
1) Protocolo bsico
Suponemos que el usuario A dispone de dos claves secretas y las correspon-
dientes claves pblicas de un sistema criptogrfico de clave pblica: (EA1,DA1);
(EA2,DA2).
Suponemos que el usuarioB elige una clave secreta KB.
Transferenciainconsciente
Los pasos de este protocolose corresponden bsicamentecon una transferenciainconsciente.
A B. El usuarioA enva aB sus dos claves pblicasEA1 y EA2.
B A. El usuarioB escoge una de las dos claves y cifra su clave KB, en-
viando el resultado a A.
A B. El usuarioA escoge una de sus dos claves privadas y descifra lo que
ha recibido deB.
A B. El usuarioA cifra el primer bloque del mensaje a firmar, usando la
supuesta clave encontrada en el paso anterior, y lo enva a B.
-
7/24/2019 Criptografia_avanzada_(Modulo_3)
44/60
CC-BY-NC-ND PID_00200954 44 Protocolos criptogrficos
El usuarioB descifrar con la claveKB el bloque de firma recibido.
El usuario A repetir el tercero y cuarto paso para cada bloque de firma y B
siempre descifrar con la claveKB el bloque de firma recibido.
Cuando se hayan acabado todos los bloques de firma, el usuario A repetir el
cuarto paso, utilizando ahora la otra clave privada, y B descifrar con la clave
KB el bloque de firma recibido.
.
SiA y B han escogido al azar la misma clave (con una probabilidad del
50%),B descifrar un mensaje con sentido en la primera ronda. Si no,
recibir un mensaje sin sentido y tendr que esperar hasta recibir el
ltimo bloque de la segunda ronda para obtener el texto en claro.
Sin embargo, A no tiene ninguna manera de saber cundo B ha podi-
do descifrar correctamente el criptograma, lo cual le fuerza a acabar el
protocolo.
2) Protocolo de Even
Este protocolo se basa en sistemas criptogrficos de clave privada y sigue los
siguientes pasos:
Inicialmente, tanto el usuarioA como el usuarioB escogen entre un conjunto
de 2nclaves de un sistema criptogrfico de clave privada:
El usuarioA escoge el conjunto {K1,K2, ,Kn,Kn+1, ,K2n}, tomadas en pare-
jas: {(K1,Kn+1),(K2,Kn+2), ,(Kn,K2n)}.
El usuario B escoge el conjunto {K1 ,K2 , ,K
n ,K
n+1, ,K
2n}, tomadas en pa-
rejas {(K1 ,Kn+1),(K
2 ,K
n+2), ,(K
n ,K
2n)}.
Protocolo
A B. El usuarioAcifra un mensajeMA, conocido porB, con las 2nclaves:
EK1 (MA),EK2 (MA),...,EK2n (MA) y enva los 2ncriptogramas ordenados a B.
El usuarioAse comprometer, ms adelante, a firmar el contrato siBpuede
presentarle algn par de claves (Ki,Kn+i).
B A. El usuarioBcifra un mensajeMB, conocido porA, con las 2nclaves:
EK1 (MB),EK2
(MB),...,EK2n
(MB) y enva los 2ncriptogramas ordenados a A.
-
7/24/2019 Criptografia_avanzada_(Modulo_3)
45/60
CC-BY-NC-ND PID_00200954 45 Protocolos criptogrficos
El usuarioBse comprometer, ms adelante, a firmar el contrato siApuede
presentarle algn par de claves (Ki,Kn+i).
A B. El usuarioA enva aBcada par (Ki,Kn+i) ordenados mediante una
transferencia inconsciente; es decir, enviando Ki oKn+i con igual probabi-
lidad.
B A. El usuario B har lo mismo, enviando a A, ordenadamente, los
pares (Ki,Kn+i)
Nota
En este punto A y B tienen la mitad de las claves uno del otro.
Si la longitud de cada clave es de L bits, entonces los usuariosA y B realizan elsiguiente bucle, 1 i 2n, para las clavesKi y K
i que no se han usado en los
pasos anteriores:
.
Algoritmo 4.2
for 1 j L
begin
Aenva aB el bit j-simo de todas estas claves Ki
Benva aA el bit j-simo de todas estas claves Ki
end
Observar que el algoritmo es parecido al del protocolo de compromiso bit a
bit. Al realizar este bucle completo, A y B tienen las 2n claves uno del otro y
se supone que pueden firmar el contrato.
Resumen de las transacciones del protocolo:
A B
EK1 (MA),EK2 (MA),...,EK2n (MA)
EK1 (MB),EK2
(MB),...,EK2n
(MB)
{Kio Kn+i}
{Ki o Kn+i}
-
7/24/2019 Criptografia_avanzada_(Modulo_3)
46/60
CC-BY-NC-ND PID_00200954 46 Protocolos criptogrficos
4.4. Protocolo de correo electrnico certificado
Pese a que los sistemas actuales de correo electrnico permiten el acuse de
recibo por parte del receptor (el emisor pide al receptor que le comunique que
ha recibido el correo que le ha enviado, sin que esto implique la aceptacin
de su contenido); cuando enviamos un correo electrnico, cmo podemos
estar seguros de que el mensaje enviado ha llegado al destinatario autorizado
y solo l conoce el contenido?
La propuesta de este protocolo es la implementacin del correo electrnico
certificado.
As, si un usuario A desea enviar un mensaje electrnico como correo certi-
ficado a un usuario B, le descubrir el mensaje, es decir, le enviar la clave,
solo despus de que el usuarioB le haya enviado el acuse de recibo correspon-diente.
Esto es tal como sucede con el correo regular certificado; antes de ver el men-
saje hemos firmado que hemos recibido el sobre que lo contiene.
El protocolo que sigue es muy parecido al que hemos visto de Even para la
firma de contratos.
Protocolo
El usuario A escoge aleatoriamente n+ 1 claves {a0,a1, ,an} de un sistema
criptogrfico de clave privada. Las claves {a1, ,an} sern la parte izquierda
de la claveKEAi , y la parte derecha,KDAi ser {an+1,an+2, ,a2n}, dondean+i =
a0 ai, para 1 i n.
Los usuariosA y B se ponen de acuerdo en un mensaje de validacin V.
El usuario A, con la clave a0 cifra el documento M: C0 = Ea0 (M) y despus
cifra el mensaje de validacin Vcon las 2n claves secretas; {KEAi , KDAi } para
1 i n:
Cifrado de validacin de la parte izquierda: VEAi =EKEAi (V).
Cifrado de validacin de la parte derecha: VDAi =EKDAi (V).
A B. El usuarioA enva aB, el valor C0y los pares ordenados (VEAi ,VDAi ),
para 1 y n.
De forma similar, el usuario B genera n pares de claves KEBi y KDBi . Tambingenerar n pares de mensajes acuse de recibo de la parte izquierda: REi y
acuse de recibo de la parte derecha: RDi y cifra las parejas (REi,RDi) en el
-
7/24/2019 Criptografia_avanzada_(Modulo_3)
47/60
CC-BY-NC-ND PID_00200954 47 Protocolos criptogrficos
sistema criptogrfico de clave privada, con las claves (KEBi ,KDBi ) obteniendo
(EBi ,DBi ).
B A. El usuarioB enva aA las parejas ordenadas (EBi ,DBi ).
A B. Mediante una transferencia inconsciente, el usuario A enva a B
una de las dos claves secretas:KEAi oKDAi .
B A. Mediante una transferencia inconsciente, el usuario B enva a A:
KEBi oKDBi .
Este proceso se repite hasta haber enviado los n valores de las claves de cada
usuario.
Resumen de las transacciones del protocolo:
A B
C0,{VEAi ,VDAi }
{(EBi ,DBi )}
{KEAio KDAi }
{KEBio KDBi }
Comprobacin:
El usuario B usa las claves enviadas por A, KEA1 o KDA1, para comprobar
que al descifrarDKEAi (V) oDKDAi (V) obtiene el mensaje de validacinV.
El usuarioA usa las claves enviadas porB,