You are on page 1of 118

1

Criptografa de clave pblica


Gerardo Rodrguez Snchez
Departamento de Matemtica Aplicada
Universidad de Salamanca
E-mail: gerardo@usal.es
2
Problemas de la Clave Secreta
La clave secreta ha de intercambiarse de forma segura
(entrevista?).
La clave secreta ha de modificarse con frecuencia.
Problema de almacenamiento de las claves: para
comunicarse con n usuarios, cada uno de ellos necesita
n(n 1)/2 claves.
Imposibilidad de firmar digitalmente los mensajes.
3
Criptografa de Clave Pblica
Se utiliza diferente clave para cifrar mensajes que para
descifrarlos (Internet, empresas, usuarios).

Protocolo de cambio de clave de Diffie-Hellman
4
Criptografa de Clave Pblica
RSA
Basado en la dificultad de factorizar nmeros enteros.
Claves de 1024 bits.
ElGamal
Basado en la dificultad de calcular logaritmos discretos.
Claves de 1024 bits.
5
Cambio de clave Diffie-Hellman (1)
o A y B seleccionan pblicamente un grupo cclico finito
G, |G| = n, y un generador o.

o A genera un nmero aleatorio a, calcula o
a
y lo enva a B.

o B genera un nmero aleatorio b, calcula o
b
y lo enva a A.
6
Cambio de clave Diffie-Hellman (2)
o A recibe o
b
y calcula (o
b
)
a
= o
ba
.

o B recibe o
a
y calcula (o
a
)
b
= o
ab
.

o CONCLUSIN: A y B comparten el mismo elemento
secreto del grupo: o
ab
.

7
Seguridad del cambio de clave Diffie-
Hellman (3)
Son pblicos los siguientes elementos:
el grupo G, su orden n, el generador o
Se pueden intervenir los siguientes datos:
o
a
, o
b

Se pretende calcular el valor de:
o
ab

Se supone que es un problema intratable
(Teora de la complejidad computacional).
8
Ejemplo de cambio de clave Diffie-Hellman
(1)
1. A y B seleccionan (Z
53
)
*
y un generador o = 2.

2. A genera a = 29, calcula o
a
= 2
29
(mod 53) = 45 y lo
enva a B.

3. B genera b = 19, calcula o
b
= 2
19
(mod 53) = 12 y lo
enva a A.

4. A recibe o
b
= 12 y calcula (o
b
)
a
= 12
29
(mod 53) = 21.
9
Ejemplo de cambio de clave Diffie-Hellman
(2)
5. B recibe o
a
= 45 y calcula (o
a
)
b
= 45
19
(mod 53) = 21.

A y B comparten el mismo elemento secreto del grupo:
o
ab
= 21.

Conociendo (Z
53
)
*
, o = 2, o
a
= 45, o
b
= 12, calcular o
ab
.
10
Criptosistema RSA: claves (1)
Generacin de claves:
Se eligen dos nmeros primos distintos, grandes y
cercanos: p, q, y se calcula n = p q.
Se considera el grupo (Z
n
)
*
, cuyo orden es
|(n) = (p 1)(q 1).
Se elige un nmero e primo con |(n).
Se calcula el inverso de e en (Z
n
)
*
: d, es decir,
e d 1 mod. |(n).
11
Criptosistema RSA: claves (2)
Generacin de claves :

La clave pblica es el par (n, e).

La clave privada es el nmero d.

Se deben mantener ocultos tambin los valores de p, q y
|(n).
12
Criptosistema RSA: cifrado y descifrado
Cifrado:
1. B obtiene la clave pblica de A: (n, e).

2. B representa el mensaje que quiere enviar, m, en el
conjunto (Z
n
)*, trocendolo si es preciso.

3. B calcula m
e
(mod. n) c, que enva a A.

13
Criptosistema RSA: cifrado y descifrado
Descifrado:

1. A utiliza su clave privada, d, para calcular

c
d
(mod. n) m
ed
(mod. n) m.

14
Criptosistema RSA: seguridad
Dado un entero positivo, n, producto de dos primos
distintos grandes de tamao parecido: p y q, un entero
positivo e, tal que MCD(e, |(n)) = 1, y un entero c,
encontrar otro entero m tal que
m
e
c (mod. n).

Hiptesis: La seguridad del RSA es equivalente al
problema de factorizar.

15
Ejemplo de RSA
Determinacin de la clave

Elegimos dos nmeros primos p y q, los multiplicamos
para obtener el mdulo RSA, n, y determinamos |(n)
p =383
q = 521
n = p q = 383 521 = 199543
|(n) = (p-1)(q-1) = 382 520 = 198640
Elegimos el exponente de cifrado, 2< e <198640, primo
con |(n), por ejemplo, e=3.
16
Determinacin de la clave

Calculamos el exponente de descifrado d, que es el
inverso de e mdulo |(n): d = 132427
Damos a conocer nuestra clave pblica: (199543, 3).
Ocultamos nuestra clave privada: d=132427, as como
los restantes valores p = 383, q = 521 y |(n) =
198640.
Ejemplo de RSA
17
Cifrado del mensaje
Supongamos que un usuario B desea enviarnos el
mensaje RSA. Los pasos a seguir sern los siguientes:
Localiza nuestra clave pblica: (199543, 3).
B escribe el mensaje a enviar como un nmero menor
que 199543 y primo con l. Por ejemplo,
puede considerar la siguiente representacin de letras
por nmeros (sin la ):
A40, B41, C42,..., Y424, Z425
y emplear la base 26 para representar cualquier
palabra.
Ejemplo de RSA
18
Cifrado del mensaje
En nuestro ejemplo: R417, S418, A40 con lo que el
mensaje sera:
m = 17 26
2
+18 26+0 = 911
B cifra el mensaje anterior calculando:
c m
e
(mod. n) 911
3
(mod. 199543) 189147
que es el criptograma a enviar.
Este valor puede convertirse de nuevo en base 26 para
convertirlo en letras:
c =189147 = 10 26
3
+19 26
2
+ 20 26+ 23 4
KTUX
Ejemplo de RSA
19
Descifrado del mensaje
Una vez hemos recibido el criptograma (189147 o KTUX),
utilizamos nuestra clave privada d = 132427 para calcular:
m c
d
(mod. n) 189147
132427
(mod. 199543).
El clculo de este nmero se realiza con la siguiente
estrategia:
d=132427=(100000010101001011)
2
=2
17
+2
10
+2
8
+2
6
+2
3
+
2+1
Ejemplo de RSA
20
Descifrado del mensaje

Calculamos las siguientes potencias, cada una de las cuales
es el cuadrado de la anterior y hacemos mdulo 199543:
189147
2
124053 189147
4
191106 189147
8
145661
189147
16
118817 189147
32
11782
189147
64
133139 189147
128
189545 189147
256
188504
189147
512
138291 189147
1024
18 189147
2048
324
189147
4096
104976 189147
8192
198401
189147
16384
106906 189147
32768
67511
189147
65536
173001 189147
131072
90974
Ejemplo de RSA
21
Descifrado del mensaje
Ahora basta multiplicar las potencias de la expresin en base
2 de la clave privada y reducir mod. 199543 tras cada
producto:
189147 124053 190964 190964 145661 112090
112090 133139 128626 128626 188504 45574
45574 18 22160 22160 90974 911
que coincide con el nmero enviado.


Ejemplo de RSA
22
Ejemplo de RSA real: determinacin de la clave
Elegimos dos nmeros primos de 512 bits cada uno:
p = 99139 39965 46089 30824 88909 93861 03286 96951
12542 27785 63290 53802 69243 59622 97966 62570
51166 31784 15643 33030 16752 83735 31885 76891
66571 64285 73232 22921 38706 46645 4667
q = 13136 91819 25708 96843 02581 72409 47022 42864
58333 11752 43481 96993 06139 88470 36911 06258
28665 95507 45575 89427 96421 73663 31154 90105
78349 59036 89416 42907 63853 18510 41021
23
Ejemplo de RSA real: determinacin de la clave
Calculamos ahora n, que tiene 1024 bits:
n = 13023 86182 92318 89502 81446 21088 35570 66154
05574 73331 40682 54739 98959 56538 57163 11615
41258 54863 46136 57472 70014 83693 94664 97674
40264 93450 88904 88932 37197 32536 99623 85944
66298 94133 32414 06479 20780 49438 83915 47728
71066 51988 01638 29581 61596 27668 24197 08727
22204 06157 69033 71955 35028 37798 65973 36760
32443 19911 37588 05059 05389 5007
24
Ejemplo de RSA real: determinacin de la clave
Calculamos ahora | (n)
| (n) = 13023 86182 92318 89502 81446 21088 35570 66154
05574 73331 40682 54739 98959 56538 57163 11615
41258 54863 46136 57472 70014 83693 94664 97674
40264 93450 88904 88932 37197 32536 99621 55436
08140 90954 33158 91752 02824 75927 58318 51855
25756 53877 77904 98939 17269 60590 99043 70901
35345 34755 41723 90985 14659 94363 88023 86692
77788 52514 85590 27820 73639 9320
25
Ejemplo de RSA real: determinacin de la clave
Como exponente de cifrado elegimos e = 65537 = 2
16
+1, mientras
que el exponente de descifrado es:
d = 16516 06202 03467 10050 48918 84868 90218 92489
18279 99581 50695 43180 80680 06590 48611 11408
16546 34751 39652 57374 55344 81434 97422 92471
72748 50400 58881 01914 48242 51509 06748 05656
23580 43535 93387 51598 50264 21324 46463 09835
51972 56416 71447 94037 48482 18482 95184 74535
17075 11535 81529 12320 91084 24120 45236 48596
01095 63033 24342 09716 36483 433
26
Ejemplo de RSA real: cifrado del mensaje
Supongamos que el mensaje a transmitir utilizando la clave pblica
(n,e) es:
Hasta la fecha no se ha demostrado de forma rigurosa la
equivalencia entre resolver el problema de la factorizacin y
romper el criptosistema RSA.
Para transformar el mensaje en un nmero menor que el mdulo
RSA y primo con l, se utiliza la base 256 dada por los valores
ASCII de los caracteres que componen el mensaje. Como la
longitud del mensaje no puede ser mayor que el mdulo RSA, se
analiza si es preciso trocear el mensaje.
27
Ejemplo de RSA real: cifrado del mensaje
m
1
= 34591 23054 20684 92221 54004 31463 55718 40131
37946 50256 99770 12379 52245 48266 91597 68390
89367 27153 70468 41774 43004 17303 60120 13102
23597 42585 57180 20667 78546 06812 75424 51035
61893 92809 52751 30985 62992 14551 08844 27863
83635 95214 39334 39345 58318 94335 36299 26978
14144 61358 60603 23404 84057 33961 81735 90951
71716 01412 29657 69676 146
m
2
= 31029 37695 14888 24008 25180 81526 70973 28927
96416 57111 46496
28
Ejemplo de RSA real: cifrado del mensaje
c
1
= 24283 83009 28360 92697 52894 91397 11182 33327
01972 51994 66194 67116 15452 51338 36137 91948
61510 99909 69538 57591 62731 96550 16598 26516
28223 74514 60203 01145 55449 76420 73563 67035
62024 22363 16254 50805 03386 81854 29313 76893
22373 92781 30286 52114 52126 18961 46028 71599
71878 80429 73749 97653 74787 98609 84624 04766
58549 16062 48613 00369 22093 872
29
Ejemplo de RSA real: cifrado del mensaje
c
2
= 38682 54957 70121 92903 21010 10135 17239 71957
23710 93292 77161 21301 87357 13461 04331 73889
57425 36031 34884 61661 51664 31071 46625 14562
56910 77963 89701 42435 54123 55176 62692 53475
35346 82015 24635 33695 20098 88439 34168 44397
93387 91590 76644 51408 56154 28962 22028 65447
75223 55380 20368 32538 03134 56525 82206 82408
11962 36481 98184 80787 46237 430
30
Ejemplo de RSA real: descifrado del mensaje
El mensaje descifrado correspondiente a cada uno de los bloques
enviados es el siguiente:
Hasta la fecha no se ha demostrado de forma rigurosa la
equivalencia entre resolver el problema de la factorizacin y
romper

el criptosistema RSA.
31
Precursores de la criptografa de clave pblica y
del RSA
1976: Protocolo de cambio de clave de Diffie-Hellman
1978: Criptosistema RSA
1997: Criptgrafos del Cuartel General de Comunicaciones del
Gobierno Britnico
1973 Cocks
1970 Ellis
1974 Williamson
32
Firma digital RSA
Sean (n
B
,e
B
) y d
B
las claves pblica y privada de un usuario B y sean
(n
A
,e
A
) y d
A
las claves correspondientes del usuario A.
Si B quiere mandar junto con el criptograma c correspondiente al
mensaje m, su firma digital para dicho mensaje, el protocolo a seguir
es:
B calcula el valor de su firma r m
dB
(mod. n
B
) con su
exponente de descifrado d
B
.
B cifra el valor anterior con la clave pblica de A,
s r
eA
(mod.n
A
) y transmite a A el par (c,s).
33
Firma digital RSA
Para que A pueda verificar que la firma corresponde a B slo tiene
que ejecutar los siguientes pasos:
A recupera la firma de B para el mensaje m calculando
s
dA
r

(mod. n
A
).
A comprueba si la firma cifrada coincide con el mensaje
r
eB
m

(mod. n
B
).
34
Eleccin de los primos p y q.
p y q deben ser de la misma longitud.
En la actualidad se recomienda que p y q tengan cada uno una
longitud mnima de 512 bits y, por tanto, n tenga al menos 1024
bits (alrededor de 309 dgitos).
p y q no deben estar demasiado cercanos.
Si no fuera as se podra factorizar n encontrando x e y tales
que x
2
-n=y
2
, pues entonces p = x-y, q = x+y.
35
Eleccin de los primos p y q.
Un primo impar p se dice robusto si verifica:
p-1 tiene un factor primo grande r.
p+1 tiene un factor primo grande s.
r-1 tiene un factor primo grande t.
MCD(p-1,q-1) debe ser pequeo.
p-1 y q-1 deben contener factores primos grandes.
p y q deben ser robustos.
36
.
Eleccin del exponente de cifrado e.
Una vez que se ha seleccionado un valor grande para el mdulo
RSA se recomienda seleccionar un exponente de cifrado e pequeo
para facilitar la tarea de cifrado m
e
(mod. n).
Por esta razn se recomienda que el exponente de cifrado sea
e = 3 e = 65537
Sin embargo no se debe usar valores pequeos de e al enviar un
mismo mensaje m a varios destinatarios.
37
Eleccin del exponente de descifrado d.
El exponente de descifrado d debe ser de longitud aproximada a la
de n.
Si longitud en bits (d) O (1/4) longitud en bits (n) existe un
algoritmo eficiente para calcular d.
38
Mensajes inocultables.
Un mensaje m es inocultable si se cifra a s mismo, es decir:
m
e
m (mod. n)
El nmero de mensajes inocultables es
(1+mcd(e-1,p-1)) (1+mcd(e-1,q-1))
Al menos hay 9 mensajes inocultables. No afecta a la seguridad
del RSA.
39
Rcord de factorizacin.
El rcord del mdulo RSA ms grande factorizado lo logr el 9 de
Mayo de 2005 un equipo de investigadores alemanes, dirigidos por
J. Franke, de la Agencia Alemana para la Seguridad de las
Tecnologas de la Informacin (BSI).
Dicho equipo ostentaba el anterior rcord al lograr factorizar en
Diciembre de 2003 el mdulo RSA-576 de 174 dgitos.
El nmero factorizado ahora es el RSA-200 de 200 dgitos.
40
Rcord de factorizacin.
El RSA-200 factorizado es:
n = 2799783391 1221327870 8294676387 2260162107
0446786955 4285375600 0992932612 8400107609
3456710529 5536085606 1822351910 9513657886
3710595448 2006576775 0985805576 1357909873
4950144178 8631789462 9518723786 9221823983
41
Rcord de factorizacin.
p = 3532461934 4027701212 7260497819 8464368671
1974001976 2502364930 3468776121 2536794232
0005854795 6528088349
q = 7925869954 4683330333 4708584148 0059687737
9758573642 1996073433 0341455767 8728181521
3538140930 4740185467
42
Rcord de factorizacin.
La siguiente tabla recoge algunos de los mdulos RSA por
factorizar y los premios ofrecidos. Pueden consultarse las
siguientes direcciones para una completa informacin sobre este
asunto:
http://www.rsasecurity.com/rsalabs/challenges/factoring/numbers.html
http://www.rsasecurity.com/rsalabs/challenges/factoring
http://www.npac.syr.edu/factoring/overview/RSAFCAList.txt
43
Nmero Dgitos Premio Fecha
RSA-200 200 9-5-2005
RSA-576 174 10000$ 3-12-2003
RSA-640 193 20000$ Abierto
RSA-704 212 30000$ Abierto
RSA-768 232 50000$ Abierto
RSA-896 270 75000$ Abierto
RSA-1024 309 100000$ Abierto
RSA-1536 463 150000$ Abierto
RSA-2048 617 200000$ Abierto
44
Consideraciones finales.
No se ha demostrado si los procesos de factorizar el mdulo
RSA y romper el criptosistema son equivalentes.

Hay otros criptosistemas del estilo RSA para los que s se ha
demostrado dicha equivalencia: criptosistemas de Williams
(1980), Kurosawa (1988), Loxton (1992),...
45
Criptosistema de ElGamal: claves
Generacin de claves:
1. Se elige un nmero primo grande: p.
2. Se considera el grupo (Z
p
)
*
(en general, se puede considerar un
grupo finito G) cuyo orden es (p 1).
3. Se elige un generador del grupo o.
4. Se selecciona un nmero aleatorio 0 < a < p 1 y se calcula
o
a
(mod p)
46
Criptosistema de ElGamal: claves
Generacin de claves:

La clave pblica es (p, o, o
a
).
La clave privada es el nmero a.
47
Criptosistema de ElGamal: cifrado y descifrado
Cifrado:
1. B obtiene la clave pblica de A: (p, o, o
a
),
2. B representa el mensaje que quiere enviar, m, en el conjunto
{0, 1, ..., p 1}, trocendolo si es preciso,
3. B genera un nmero aleatorio v, 0 < v < p 1,
4. B calcula o
v
(mod. p), y o m (o
a
)
v
(mod. p).
5. B enva a A el par (,o).
48
Criptosistema de ElGamal: cifrado y descifrado
Descifrado:
1. A utiliza su clave privada, a, para calcular

a


(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

You might also like