Professional Documents
Culture Documents
(o
v
)
a
(mod. p) en G y su inverso
p 1 a
(mod. p)
2. El resultado lo multiplica por o para obtener m:
p 1 a
o
a
m
a
(mod. p) m (mod. p)
49
Criptosistema de ElGamal: seguridad
Por seguridad y eficacia, el grupo G y el elemento o deben
elegirse de forma que se verifiquen las siguientes condiciones:
La operacin en G debera ser fcil de aplicar.
Por seguridad el problema del logaritmo discreto en el subgrupo
cclico de G generado por o debera ser difcil.
50
Ejemplo ElGamal: determinacin de la clave.
Consideremos p = 15485863, el grupo (Z
15485863
)
*
y un generador
de dicho grupo o = 7.
A elige a=28236 y calcula
o
a
7
28236
12506884 (mod. 15485863)
Este par es la clave privada y pblica de A.
B elige b=21702 y calcula
o
b
7
21702
8890431 (mod. 15485863)
Este par es la clave privada y pblica de B.
51
Ejemplo ElGamal: cifrado del mensaje.
Supongamos que A quiere mandar a B el mensaje m=HIJO
Codificamos el mensaje utilizando el alfabeto de 26 letras:
H47, I48, J49,O 414
con lo que el mensaje sera:
m = 7 26
3
+8 26
2
+9 26+14 = 128688
52
Ejemplo ElGamal: cifrado del mensaje.
A elige el nmero v = 480 y calcula
7
480
(mod. 15485863) 12001315 (mod. 15485863)
(o
b
)
v
8890431
480
9846598 (mod. 15485863)
o m (o
a
)
v
1286688 9846598 8263449 (mod. 15485863)
53
Ejemplo ElGamal: cifrado del mensaje.
A codifica la pareja (12001315, 8263449) en base 26:
12001315= 1 26
5
+0 26
4
+6 26
3
+21 26
2
+11 26+1 4BAGVLB
8263449= 18 26
4
+2 26
3
+4 26
2
+0 26+25 4 SCEAZ
y enva a B la pareja (BAGVLB, SCEAZ).
54
Ejemplo ElGamal: descifrado del mensaje.
B codifica la pareja (BAGVLB, SCEAZ) en base 26:
BAGVLB = 126
5
+026
4
+626
3
+2126
2
+1126+1 = 12001315 =
SCEAZ= 1826
4
+226
3
+426
2
+026+25 = 8263449 = o
B calcula
b
12001315
21702
9846598 (mod. 15485863)
y su inverso
p1b
12001315
15464160
14823281 (mod.
15485863)
55
Ejemplo ElGamal: descifrado del mensaje.
Finalmente B calcula el mensaje inicial:
p 1 a
o 14823281 8263449 128688 (mod. 15485863)
que codificado en base 26 es el mensaje inicial:
128688 = 7 26
3
+8 26
2
+9 26+14 4 HIJO
56
Firma digital ElGamal.
El esquema diseado por ElGamal para firmar digitalmente un
mensaje es el siguiente:
A genera un nmero aleatorio h tal que MCD(h,p-1)=1.
A calcula el elemento r
o
h
(mod. p) .
A resuelve la congruencia m
a r +h s (mod. p-1).
La firma digital de A para el mensaje m es el par (r,s).
57
Firma digital ElGamal.
Para que el receptor B del mensaje compruebe la firma de A
realiza el siguiente protocolo:
B calcula r
s
(o
h
)
s
(mod. p)
B calcula el elemento (o
a
)
r
(mod. p)
B calcula (o
a
)
r
(o
h
)
s
(mod. p) y comprueba que es igual a
o
m
(mod. p)
58
Firma digital ElGamal.
Para conseguir la falsificacin de la firma de A en el mensaje m,
un escucha tendra que resolver la ecuacin
o
m
=(o
a
)
r
r
s
con las incgnitas r y s. Si fija r y trata de resolver la ecuacin en
s se encontrara con un problema de logaritmo discreto, mientras
que si fija s e intenta resolver la ecuacin para r se encontrara
con una congruencia exponencial mixta para la que no hay
algoritmo conocido (Problema de la firma digital de ElGamal)
59
Problema del Logaritmo Discreto
Sea G un grupo multiplicativo cclico de orden n. Dados un
generador g e G, y un elemento e e G, el problema del logaritmo
discreto (PLD) en G consiste en calcular un entero x , 0 s x s n - 1,
de modo que g
x
= e.
Este problema (computacionalmente difcil) es la base de varios
criptosistemas (cambio de clave de Diffie-Hellman, ElGamal) y de
varios esquemas de firma digital (ElGamal y Digital Signature
Standard, DSS).
60
Grupos para el PLD
- Grupo multiplicativo de un cuerpo finito: Z
p
*
.
- Grupo multiplicativo de un cuerpo finito de caracterstica 2.
- Subgrupo propio del grupo multiplicativo de un cuerpo finito.
- El grupo de las unidadades de Z
n
*, siendo n un entero
compuesto.
- El grupo de puntos de una curva elptica definida sobre un
cuerpo finito.
- El jacobiano de una curva hiperelptica definida sobre un
cuerpo finito.
61
Grupos para el PLD
1 Se puede resolver en PLD sobre Z
p
*
en un tiempo subexponencial:
exp((1.923 + o(1))(log p)
1/3
(log log p)
2/3
), por lo que p debera
elegirse muy grande (2
10
bits), lo que lleva a problemas
computacionales (tiempo y espacio).
1 Se debe mantener la dificultad computacional del problema,
reducir el tamao de las claves para utilizar menor tiempo de
computacin y utilizar menor espacio fsico (menor amplitud de
banda para facilitar la implementacin en tarjetas inteligentes,
telfonos mviles, localizadores personales, etc.)
62
Bibliografa (1)
W. Diffie and M. Hellman, New directions in Cryptography,
IEEE Trans. Inform. Theory 22 (1976), 644-654.
R. Durn Daz, L. Hernndez Encinas y J. Muoz Masqu, El
criptosistema RSA, RA-MA, Madrid, 2005.
T. ElGamal, A public key cryptosystem and a signature scheme
based on discrete logarithms, IEEE Trans. Inform. Theory 31
(1985), 469-472.
A. Fster Sabater, D. Gua Martnez, L. Hernndez Encinas, F.
Montoya Vitini y J. Muoz Masqu, Tcnicas criptogrficas de
proteccin de datos, RA-MA, Madrid, 3 ed., 2004.
63
Bibliografa (2)
N. Koblitz, A course in number theory and cryptography,
Springer-Verlag, 2 ed., Berln, 1994.
A. Menezes, P. van Oorschot and S. Vanstone, Handbook of
applied Cryptography, CRC Press, Boca Raton, FL., 1997.
R. Rivest, A. Shamir and L. Adleman, A method for obtaining
digital signatures and public-key cryptosystems, Comm. of the
ACM 21 (1978), 120-126.
S. Singh, Los cdigos secretos, Debate, Barcelona, 2000.
64
Esquema de la charla
1. Introduccin
2. Identificacin amigo-enemigo
3. Lanzamiento de una moneda por telfono
4. Pquer por telfono
5. El problema del millonario
6. Venta de secretos
7. Conocimiento nulo
8. Transferencia inconsciente
9. Intercambio de secretos
10. Firma de un contrato
11. Correo con acuse de recibo
12. Voto electrnico
13. Otros protocolos
65
Introduccin: definicin
Protocolo. (Del b. lat. protocollum, y este del gr.
). Plan escrito y detallado de un experimento
cientfico, un ensayo clnico o una actuacin mdica.
(Diccionario de la Real Academia Espaola de la Lengua)
Protocolo. Es el conjunto de acciones coordinadas que
realizan dos o ms partes o entidades con el objeto de llevar a
cabo un intercambio de datos o informacin.
Los Protocolos criptogrficos sern aquellos que cumplen
esta funcin usando para ello algoritmos y mtodos
criptogrficos.
Su objetivo es dar una solucin a distintos problemas de la
vida real, especialmente aquellos en donde puede existir un
grado de desconfianza entre las partes.
66
Introduccin: ejemplos
1.- El problema de la identificacin del usuario
Cmo permitir que un usuario se identifique y autentique ante
una mquina -y viceversa- con una clave, password y no pueda
ser suplantado por un tercero?
2.- El problema del lanzamiento de la moneda
Cmo permitir que dos usuarios realicen una prueba con
probabilidad -como es el lanzamiento de una moneda- si stos
no se encuentran fsicamente frente a frente y, a la vez, asegurar
que ninguno de los dos hace trampa?
67
Introduccin: ejemplos
3.- El problema de la firma de contratos
Cmo permitir que dos o ms usuarios que se encuentran
fsicamente alejados puedan realizar la firma de un contrato,
asegurando que ninguno de los firmantes va a modificar las
condiciones ni negarse a ltima hora a dicha firma?
4.- El problema del descubrimiento mnimo de un secreto
Cmo poder demostrar y convencer a otra persona o a un
sistema que uno est en posesin de un secreto, sin por ello tener
que desvelarlo ni a ella ni a un tercero?
68
Introduccin: ejemplos
5.- El problema del juego de pquer mental o por telfono
Cmo permitir que dos o ms usuarios puedan jugar a travs de la
red una partida de pquer -o de cualquier otro juego de cartas - si
no estn fsicamente en una misma mesa de juego y asegurando, al
mismo tiempo, que ninguno de ellos va a hacer trampa?
6.- El problema de la divisin de un secreto o del umbral
Si tenemos un nico secreto, y por tanto muy vulnerable,
cmo permitir que ese secreto sea dividido en n partes,
de forma que juntando al menos k < n partes sea posible
reconstruirlo y, en cambio, con k - 1 partes, sea imposible
su reconstruccin?
69
Introduccin: ejemplos
7.- El problema del esquema electoral o voto electrnico
Cmo realizar unas elecciones a travs de una red, de forma que
pueda asegurarse que el voto es nico y secreto, que los votantes y
mesas estn autenticados, y se pueda comprobar que el voto se
contabiliza adecuadamente?
8.- El problema de la transmisin por canales subliminales
Dos usuarios desean intercambiar informacin a travs de un
tercero del cual desconfan. Cmo pueden hacerlo sin cifrar la
informacin de forma que este tercero slo vea un mensaje con
texto en claro aparentemente inocente?
70
Introduccin: ejemplos
9.- El problema del millonario
Dos usuarios desean conocer cul de los dos tiene ms dinero en su
cuenta corriente. Cmo pueden hacerlo de forma que, una vez
terminado el protocolo, ambos sepan quin de los dos es ms rico
sin por ello desvelar el dinero que tiene el otro?
10.- El problema del correo electrnico con acuse de recibo
Cmo hacer que una vez recibido un correo electrnico, ste slo
pueda ser ledo (abierto) si el receptor enva, con anterioridad al
emisor, un acuse de recibo como sucede de forma similar con el
correo ordinario certificado?
71
Introduccin: ejemplos
Cmo podemos calcular la edad media de un grupo de personas
sin conocer la edad de cada una de las personas?
1
E A+
2 1
) ( E E A + +
n n
E E E A + + + +
) (
1 1
...
...
3
10 >> A
aleatorio
media
n
A E E A
n
=
+ + + ) (
1
72
Identificacin Amigo-Enemigo
?
El avin A le enva un reto al avin B, sabiendo que slo lo
puede resolver si cuenta con alguna informacin que slo
comparte con sus aliados. Si es capaz de devolverle el reto
resuelto le considerar amigo, en otro caso supondr que es
un enemigo.
Podemos utilizar la clave pblica para desarrollar un
protocolo de identificacin amigo-enemigo
73
Identificacin Amigo-Enemigo
Cada usuario U
i
, i = 1,..., k, posee en su terminal sus claves
RSA, pblica y privada: p
i
y s
i
, y las claves pblicas de todos sus
aliados: p
j
, j = 1,..., k, .
Si el usuario U
i
quiere verificar la identidad del usuario U
j
procede como sigue:
U
i
genera un mensaje aleatorio, m, lo cifra utilizando la
clave pblica de U
j
, c = E
p
j
(m) y se lo enva.
U
j
descifra el mensaje recibido m D
s
j
(c) y se lo devuelve a
U
i
, en un plazo previamente acordado.
U
i
compara el mensaje recibido con el mensaje original. En
caso de coincidencia, U
j
es amigo y en otro caso, enemigo.
i j =
74
Lanzamiento de una moneda por
telfono
Dos personas han de tomar una decisin por telfono y para
ello una de ellas lanza una moneda al aire. Es posible disear
algn protocolo que evite hacer trampas?
75
Lanzamiento de una moneda por
telfono
A elige dos nmeros primos grandes, p y q, y comunica su
producto, n = p q, a B.
B elige un nmero aleatorio u e(1, n/2), y comunica a A el valor
z = u
2
(mod n) .
A calcula las cuatro races de z mdulo n: x, y. Si x e y son
los mnimos valores para x, y, respectivamente, se tiene que u
= x y v = y.
A hace la hiptesis de si u = x o u = y, es decir, halla el menor i
de modo que el i-simo bit de x es distinto del i-simo bit de y, y le
comunica a B su hiptesis: el i-simo bit de u es 0 el i-simo
bit de u es 1.
76
Lanzamiento de una moneda por
telfono
B responde a A si su hiptesis es correcta o no.
B da a conocer a A el nmero u.
A muestra a B la factorizacin de n.
Nota: A no puede saber el valor de u; por tanto, la probabilidad de
que su hiptesis sea cierta es del 50%. Si B quisiera hacer trampa
cambiando u despus de conocer la hiptesis de A, es porque
conocera x e y, por lo que podra factorizar n. Para evitarlo A no
comunica x y a B, sino un solo bit de su hiptesis.
77
Pquer por telfono
A y B quieren jugar una partida de pquer por telfono sin trampas
y sin que haya un rbitro.
Las condiciones de la partida de pquer son las siguientes:
1. Uno de ellos baraja y el otro reparte.
2. Cada mano tiene 5 cartas y todas ellas son equiprobables.
3. Las manos de A y B son disjuntas.
4. Cada jugador conoce sus cartas pero no las del adversario.
5. Cada jugador debe poder conocer si el adversario hace trampa.
78
Pquer por telfono
Sean (p
A
, s
A
) y (p
B
, s
B
) las parejas de claves pblica/privada de los
usuarios A y B, de tal forma que el criptosistema de clave pblica
sea conmutativo:
E
p
A
(E
p
B
(m)) = E
p
B
(E
p
A
(m)) .
El protocolo es como sigue:
B cifra (baraja) las 52 cartas con su clave pblica y las enva a A
ordenadas de manera aleatoria:
c
1
= E
p
B
(c
t(1)
) ,..., c
52
= E
p
B
(c
t(52)
) .
A elige sus cinco cartas, c
j
1
,...,c
j
5
, las cifra con su clave pblica y
se las enva a B:
E
p
A
(c
j
1
) ,..., E
p
A
(c
j
5
)
79
Pquer por telfono
B descifra con su clave privada las 5 cartas y se las devuelve a A:
E
S
B
(E
p
A
(c
j
1
)) = E
p
A
(c
j
1
) ,..., E
S
B
(E
p
A
(c
j
5
)) = E
p
A
(c
j
5
) .
A descifra con su clave privada las 5 cartas recibidas y conoce su
mano:
E
S
A
(E
p
A
(c
j
1
)) = c
j
1
,..., E
S
A
(E
p
A
(c
j
5
)) = c
j
5
.
A elige la mano de B (de entre las cartas cifradas por A y no
pertenecientes a su mano) y le enva las cartas a B: c
i
1
,...,c
i
5
.
B descrifra con su clave secreta estas 5 cartas, obteniendo as su
mano:
E
S
B
(c
i
1
) = c
i
1
,..., E
S
B
(c
i
5
) = c
i
5
.
80
El problema del millonario
Dos millonarios quieren saber cul de los dos es ms rico pero
sin que ninguno conozca la fortuna del otro.
Supongamos que F
A
es la fortuna de A y que F
B
es la fortuna de
B. Utilizaremos el criptosistema RSA para disear un protocolo
que permita llevar a cabo el deseo de los millonarios.
Supongamos, adems, que F
A
, F
B
< 100.
81
El problema del millonario
Sean (n
A
, e
A
), d
A
y (n
B
, e
B
), d
B
las claves pblicas y privadas de A
y B, respectivamente.
El protocolo es como sigue:
B elige un nmero aleatorio grande x, acotado por un valor
fijado de antemano, y lo cifra con la clave pblica de A:
B da a conocer a A el valor del nmero k - F
B
.
A calcula de manera secreta los nmeros:
( ). mod
A
e
n x k
A
( ) ( ) . 100 1 , mod s s + i n i F k y
A
d
B i
A
82
El problema del millonario
A elige un nmero primo grande p < x , y calcula los nmeros:
Para cada uno de estos valores, A verifica que
En caso contrario, A elegira otro nmero primo p.
A da a conocer a B la siguiente sucesin ordenada de nmeros:
B prueba si el F
B
-simo nmero de la sucesin es congruente
con x mdulo p. Si es as, entonces F
A
> F
B
; en caso contrario se
tendr que F
B
> F
A
.
( ) . 100 1 , mod s s i p y z
i i
< <
>
=
p z
z z
i j i
i
j i
0
2
, ,
. , 1 , , 1 , 1 , , , ,
100 2 1 2 1
p z z z z z z
A A A
F F F
+ + +
+ +
83
Venta de secretos
Imaginemos que una persona decide crear un negocio de venta
de secretos de tal forma que cuando alguien le compra uno,
sabe que ha hecho una venta pero no sabe qu secreto en
concreto ha vendido. Es posible disear un protocolo para
conseguir tal fin?
84
Venta de secretos
Supongamos que A posee varios secretos para vender: s
1
,...,s
k
,
e imaginemos que B quiere comprarle uno de ellos: s
j
.
El protocolo es como sigue:
A construye k criptosistemas RSA de claves (n
i
, e
i
) y d
i
, de tal
forma que p
i
, q
i
3 (mod 4).
A dice a B las k claves pblicas, (n
i
, e
i
), y los secretos cifrados
B elige al azar k nmeros x
1
,..., x
k
, calcula sus cuadrados
mdulo n
i
, , y sus smbolos de Jacobi:
( )
i i
n x mod
2
( ). mod
i
e
i i
n s c
i
=
|
.
|
\
|
i
i
n
x
85
Venta de secretos
B comunica a A los siguientes valores:
A calcula las races cuadradas de los valores recibidos y
comunica a B las que corresponden a los smbolos de Jacobi de
la lista.
Entonces B posee dos races cuadradas diferentes de
por lo que puede factorizar el mdulo n
j
y obtener el secreto s
j
.
( ) ( ) ( )
|
.
|
\
|
|
|
.
|
\
|
|
.
|
\
|
k
k
j
j
k k j j
n
x
n
x
n
x
n x n x n x
1
1
2 2
1
2
1
mod mod mod
( )
j j
n x mod
2
86
Descubrimiento mnimo
Debemos convencer a una persona de que
poseemos cierta informacin secreta sin
revelarle nada de dicha informacin
(Conocimiento nulo)
87
Descubrimiento mnimo
A posee una informacin y desea convencer a B de ello, pero sin
darle tal informacin. Determinar cul es la mnima cantidad de
informacin que A debe revelar a B para que este ltimo se
convenza de que el primero posee la informacin que dice
El protocolo es como sigue:
A comunica a B que conoce la factorizacin del mdulo RSA n =
p q.
B elige un nmero entero aleatorio x y comunica a A el valor de
x
4
(mod n) .
A calcula las races cuadradas de x
4
(mod n) y comunica a B el
valor de una de ellas: x
2
(mod n) .
B comprueba que el valor enviado por A es una raz cuadrada de
x
4
(mod n) , elevando al cuadrado tal valor.
88
Transferencia inconsciente
Supongamos que la persona A conoce un secreto.
Vamos a disear un protocolo (basado en el criptosistema RSA)
mediante el cual A da a conocer a otra persona B dicho secreto
con una probabilidad del 50%, sin que al finalizar el mismo, A
sepa si B conoce el secreto o no.
89
Transferencia inconsciente
Sin prdida de generalidad podemos suponer que el secreto que
A posee es la factorizacin del mdulo RSA, n = p q.
El protocolo es como sigue:
B elige un nmero x y da a conocer a A el valor de x
2
(mod n).
A calcula las cuatro races cuadradas de x
2
(mod n), que son x
y y, y da a conocer slo una de ellas, u, a B. (Obsrvese que A
no sabe cul de ellas es x)
B comprueba si u es congruente con x (mod n). Si es as, B
no obtiene ninguna informacin nueva; en caso contrario, B
obtendra dos races cuadradas diferentes de n, y podra
factorizarlo.
A no sabe cul de las dos situaciones es en la que se encuentra
B, por lo que no sabe si al final B consigui o no el secreto.
90
Intercambio de secretos
Supongamos que dos personas, A y B, conocen sendos secretos
de tal forma que quieren intercambiarlos de modo que ninguno
d a conocer su secreto sin recibir el secreto del otro.
Disearemos un mtodo basado en el criptosistema RSA que nos
permita implementar dicho protocolo.
91
Intercambio de secretos
El protocolo es como sigue:
A y B se ponen de acuerdo en el tamao de sus claves RSA:
(n
A
, e
A
), d
A
, y (n
B
, e
B
), d
B
, de tal forma que p
A
, q
A
,
p
B
, q
B
3
(mod 4).
A y B cifran sus secretos y los intercambian con sus claves
pblicas.
A y B eligen, respectivamente:
A y B se intercambian los valores de:
( )
( )
100 1 ,
100 1 ,
2 / 1
2 / 1
s s e
s s e
i b
i a
B
A
n i
n i
Z
Z
( )
( ) 100 1 , mod
100 1 , mod
2
2
s s
s s
i n b
i n a
A i
B i
92
Intercambio de secretos
A y B calculan las cuatro races cuadradas mdulo n
A
y n
B
de
cada valor recibido y seleccionan las dos ms pequeas.
A y B se intercambian los 100 pares de races cuadradas,
enviando 100 pares de bits cada vez, comenzando por los bits
ms significativos y verificando que los valores recibidos son
restos cuadrticos (para evitar trampas).
A y B conocen dos races distintas de cada b
i
y a
i
, con lo que
pueden factorizar el mdulo RSA del otro y descubrir el secreto
que cifr.
93
Firma de un contrato
Dos personas quieren firmar un contrato a travs de una red,
de modo que ninguno de ellos pueda romper el protocolo con
la firma del otro y sin firmar su parte.
Se puede utilizar los criptosistemas de clave pblica para
disear un protocolo que les permita firmar el contrato de
manera segura.
94
Firma de un contrato
El protocolo es como sigue:
A y B se ponen de acuerdo en el tamao de los mdulos RSA
que van a utilizar y se intercambian sus respectivas claves
pblicas: (n
A
, e
A
) y (n
B
, e
B
),
A enva a B un contrato firmado utilizando su firma digital
(es decir, firmado mediante su clave privada, d
A
), en el que
asegura que el contrato es vlido si B sabe cmo factorizar n
A
.
B procede de manera anloga enviando su contrato firmado
digitalmente mediante su clave privada d
B
.
Una vez que cada participante ha ledo el contrato firmado
digitalmente por la otra parte y ha verificado la firma digital,
se intercambian los factores primos de los respectivos mdulos
haciendo uso del protocolo de intercambio de secretos.
95
Correo con acuse de recibo
Una persona A quiere enviar un correo, m, a
otra persona B, de modo que B pueda leer
dicho correo slo si A obtiene la
confirmacin de recepcin por parte de B.
Utilizaremos el criptosistema RSA para
disear un protocolo que le permita a B leer
el mensaje una vez que A obtiene el acuse de
recibo.
96
Correo con acuse de recibo
El protocolo es como sigue:
A enva a B su clave pblica.
B enva a A su clave pblica junto con el acuerdo firmado
digitalmente (con su clave privada) de que si A puede factorizar
n
B
, entonces B factoriza n
A
y obtiene cualquier correo, m, que
est cifrado por A.
A y B se intercambian los factores primos de sus mdulos
mediante el protocolo de intercambio de secretos.
Cuando B factoriza n
A
, puede leer el correo enviado por A.
Como A factoriza n
B
, obtiene el certificado firmado por B.
97
Voto electrnico
Todos tenemos de una u otra forma una idea
intuitiva, aunque quizs no completa, sobre
cmo se desarrolla un proceso electoral.
La pregunta es si es posible realizar este tipo de
eventos desde Internet, lo que se conoce como
esquema electoral.
La respuesta es s con la ayuda de tcnicas y
protocolos criptogrficos aunque no se trata slo
de un problema de implementacin tcnica; es
menester tener en cuenta otros factores
importantes, a saber: Socio-polticos,
econmicos, jurdicos, legislativos...
98
Voto electrnico
Un esquema de votacin electrnica es una aplicacin
distribuida y constituida por un conjunto de mecanismos
criptogrficos y protocolos que, de forma conjunta, permiten
que se realicen elecciones en una red de computadores, de
forma segura, incluso suponiendo que los electores legtimos
pueden tener un comportamiento malicioso.
Andreu Riera
Tesis Doctoral
Universidad Autnoma de Barcelona, Espaa, 1999.
99
Voto electrnico
Requisitos de un esquema electoral:
Slo pueden votar quienes estn censados.
El voto debe ser secreto.
El voto debe ser nico por cada votante.
Se contabilizarn todos los votos vlidos.
El recuento parcial no debe afectar a votos que se emitan con
posterioridad.
Cada votante debe poder comprobar que su voto ha sido tenido
en cuenta en el escrutinio.
Se debe proteger el proceso contra ataques en red.
El proceso debe ser factible, prctico y, dentro de lo posible, de
uso universal.
100
Voto electrnico
Primera aproximacin del voto electrnico
MCV = Mesa Central de Votacin
El votante cifra su voto con la clave pblica de MCV.
El votante enva su voto a la MCV.
La MCV descifra el voto y lo contabiliza.
La MCV hace pblico el resultado.
Qu problemas presenta este esquema? TODOS...
La MCV no sabe de dnde vienen los votos, si stos son vlidos o
no y si alguien vota ms de una vez. Adems puede conocer la
identidad del votante por lo que se vulnera el secreto del voto. Lo
nico que aqu se protege es el secreto del voto ante terceros.
101
Voto electrnico
Segunda aproximacin del voto electrnico
El votante firma su voto con su clave privada y lo cifra luego con
la clave pblica de MCV.
El votante enva su voto a la MCV.
La MCV descifra el voto, lo contabiliza y hace pblico el
resultado.
Qu problema tenemos ahora?
En este nuevo esquema se satisface que cada votante autorizado
vote una sola vez, no obstante seguimos vulnerando el secreto del
voto ante la MCV.
102
Voto electrnico
Tercera aproximacin del voto electrnico
El tercer esquema contempla dos mesas:
MCV = Mesa Central de Votacin
MCL = Mesa Central de Legitimacin
La MCL evita que la MCV conozca a quin ha votado el votante,
mediante un protocolo entre ambas, y adems gestionan una lista
de votantes censados.
La MCL y la MCV deben ser organismos diferentes.
103
Voto electrnico
El protocolo es como sigue:
El votante A enva a la MCL el mensaje: Buenos das, soy A
y vengo a votar
La MCL verifica si A est censado. Si no es un votante
legtimo rechaza la solicitud. Si es legtimo, le enva un
nmero aleatorio de identificacin nico i(A) y le borra de la
lista para impedir que vuelva a votar.
Nota. El nmero i(A) debe ser mucho mayor que el nmero de
votantes. Por ejemplo, para un milln de votantes, unos 10
100
nmeros.
La MCL enva a la MCV la lista de nmeros de validacin.
104
Voto electrnico
El votante A escoge una identificacin secreta s(A) y enva a la
MCV el mensaje formado por el tro [i(A), v(A), s(A)|, donde i(A)
es su identificacin, v(A) es su voto y s(A) es su nmero secreto.
Nota. Puede generarlo internamente con su sistema de cifra. Ser
tambin un valor de muchos dgitos.
La MCV verifica que el nmero i(A) de identificacin se
encuentra en el conjunto N de los nmeros censados y cruza los
datos para evitar que se vote ms de una vez.
Seguidamente quita i(A) del conjunto N y aade s(A) al conjunto
de electores que han optado por la opcin v(A).
La MCV contabiliza los votos y hace pblico el resultado, junto
con la lista de nmeros secretos s(A) que han votado a la opcin
v(A).
105
Voto electrnico
Algunas consideraciones sobre este protocolo
Obsrvese que cada elector puede comprobar si su voto ha sido
contabilizado sin hacer pblica su opcin.
Qu pasa si MCV y MCL no son independientes?
Si las dos mesas, MCV y MCL, no tienen la idoneidad y la
integridad que se presume, la solucin est en el uso de una
diversidad de esquemas ms desarrollados que evitan esta
anomala mediante protocolos, entre ellos ANDOS (All-or-
Nothing Disclosure Of Secrets) Distribucin Annima de
Nmeros de Validacin.
106
Voto electrnico
Otros esquemas de mesas electorales
Hay muchos otros esquemas con dos mesas, una nica mesa e
incluso ninguna, cada uno con sus caractersticas propias. Entre
ellos tenemos:
- Modelo de Cohen y Fisher (1985)
- Modelo de Fujioka y otros (1992)
- Modelo de Park y otros (1993)
- Modelo de Sako y Killian (1995)
- Modelo de Borrel y Rif (1996)
107
Voto electrnico
Estado del arte
Existen diversos modelos y esquemas, algunos de ellos
probados con xito con un nmero reducido de electores.
No est todava bien solucionado el problema de la proteccin
fsica y lgica de la red ante ataques masivos, denegacin de
servicio, etc. Es el principal problema al que se enfrentan estos
esquemas, su difcil escalabilidad en sistemas grandes y
abiertos.
No obstante, el proceso de unas elecciones va Internet
realizable, prctico y seguro en cuanto a la privacidad y
autenticidad, es completamente factible.
108
Otros protocolos: esquemas
umbrales
Existen otros protocolos criptogrficos que no hacen uso de las
tcnicas proporcionadas por la clave pblica en su diseo, y no
por ello son menos importantes.
Entre ellos podemos sealar de manera destacada a los protocolos
para el reparto de secretos y, ms concretamente, a los esquemas
(k, n)-umbrales.
Estos protocolos tienen un amplio abanico de aplicaciones:
Apertura de cajas fuertes
Lanzamiento de misiles
Almacenamiento seguro de
claves criptogrficas
109
Otros protocolos: esquemas
umbrales
Grosso modo, un esquema (k, n)-umbral para el reparto de un
secreto, S, es un procedimiento por el cual, a partir del secreto S
se computan n sombras, S
1
,..., S
n
, de tal forma que para poder
recuperar el secreto original es necesario juntar, al menos, k de
dichas sombras y no menos. De hecho, si se juntaran k 1
sombras no se obtendra ninguna informacin sobre el secreto S.
Las sombras son creadas por una persona de confianza mtua
(PCM).
El esquema se dice que es ideal cuando el tamao de las
sombras es igual o inferior al tamao del secreto.
El esquema (k, n)-umbral ms famoso es el debido a Shamir
(1979) y est basado en la interpolacin de Lagrange.
110
Otros protocolos: esquemas
umbrales
El esquema de Shamir es como sigue:
Sea SeZ el secreto a ser repartido.
La PCM selecciona un primo p > max(S, n).
Selecciona de manera aleatoria los nmeros enteros:
a
1
, a
2
,,a
k1
e Z
p
.
Construye el polinomio: S + a
1
x + a
2
x
2
++a
k-1
x
k1
e Z
p
[x] .
Las sombras a repartir son: S
i
= P(i) (mod p), 1 i n.
Para recuperar el secreto se han de juntar, al menos, k sombras:
S
1
,, S
k
. En este caso tendramos k puntos: (i, S
i
), 1 i k, de
tal forma que el trmino independiente del polinomio
interpolador que pasa por ellos es S.
111
Otros protocolos: esquemas
umbrales
Como ejemplo, construiremos un esquema (3, 6)-umbral.
Sea S = 16 el secreto a ser repartido.
Se selecciona el primo p = 23 > max(16, 6).
Se elige de forma aleatoria los enteros 2 e Z
23
,
23e Z
23
.
Se construye el polinomio P(x) = 16 + 2x + 19x
2
e Z
23
[x] .
Construimos las sombras:
S
1
= P(1) = 14, S
2
= P(2) = 4, S
3
= P(3) = 9,
S
4
= P(4) = 6, S
5
= P(5) = 18, S
6
= P(6) = 22.
Juntando al menos tres sombras, S
1
, S
3
y S
6
, el polinomio
interpolador que pasa por esos puntos es:
16 + 2x + 9x
2
e Z
23
[x].
112
Otros protocolos: criptografa visual
Una variante de los esquemas umbrales es la denominada
criptogrfia visual (Naor y Shamir, 1994).
La imagen secreta se divide en 2 sombras que son repartidas
entre sendos participantes.
Superponiendo dichas sombras se obtiene la imagen original
(con algo de ruido).
Este esquema (2, n)-umbral se puede extender a un esquema (k,
n)-umbral cualquiera.
Inicialmente la imagen secreta era en blanco y negro. Ms
recientemente se han desarrollado protocolos similares para
imgenes en tonos de grises o en color.
113
Otros protocolos: criptografa visual
La imagen secreta no es ms que rectngulo dividido en
pixeles,
Los pixeles que definen la imagen secreta son blancos y
negros.
El esquema (2, 2)-umbral para dividir la imagen secreta
consiste en obtener de cada uno de los pxeles de la imagen
original, dos pxeles, cada uno de los cuales ocupar en lugar
del pxel original pero en cada una de las sombras.
Cada uno de los pxeles de cada una de las sombras se
separar en otros cuatro pxeles, dos blancos y dos negros.
114
Otros protocolos: criptografa visual
El protocolo es como sigue:
Se lanza una moneda al aire:
Si el resultado es cara, se elige como pxeles para cada
una de las sombras los dos pxeles de la lnea superior.
Si es cruz elige como pxeles para cada sombra los dos
pxeles de la lnea inferior.
115
Otros protocolos: criptografa visual
Obsrvese que:
Cada pixel de la imagen original da lugar a dos pixeles,
uno para cada sombra.
Los pxeles blancos pierden contraste al recuperar la
imagen original secreta.
La obtencin del cudruple pixel blanco-negro o negro-
blanco de la sombra tiene la misma probabilidad (p = 0'5), y
no depende del color del pixel original,
El proceso es aleatorio (lanzar una moneda) y los
resultados obtenidos en cada prueba son independientes (no
se obtiene informacin adicional si se observa un grupo de
pxeles en cualquiera de las sombras).
116
Otros protocolos: criptografa visual
c c x x x c x c
x x c c x x x x
c c x x c c x c
c c x c x c c x
x x c c x c x c
x x c c x c x c
c x x c x x x c
c c c x x c c x
Imagen original Imagen recuperada
Sombras
lanzamientos
117
Otros protocolos: criptografa visual
118
Bibliografa
R. Durn Daz, L. Hernndez Encinas y J. Muoz Masqu, El
criptosistema RSA, RA-MA, Madrid, 2005.
A. Fster Sabater, D. Gua Martnez, L. Hernndez Encinas,
F. Montoya Vitini y J. Muoz Masqu, Tcnicas criptogrficas
de proteccin de datos, RA-MA, Madrid, 3 ed., 2004.
A. Menezes, P. van Oorschot and S. Vanstone, Handbook of
applied Cryptography, CRC Press, Boca Raton, FL., 1997.
J. Rami Aguirre. Seguridad informtica y Criptografa.
Material docente de libre distribucin. Madrid 2005