Criptograf - PowerPoint PPT Presentation

1 / 118
About This Presentation
Title:

Criptograf

Description:

Title: Presentaci n de PowerPoint Author: Angel Martin del rey Last modified by: Propietario Created Date: 4/17/2005 3:47:40 PM Document presentation format – PowerPoint PPT presentation

Number of Views:47
Avg rating:3.0/5.0
Slides: 119
Provided by: AngelMart2
Category:

less

Transcript and Presenter's Notes

Title: Criptograf


1
Criptografía de clave pública
  • Gerardo Rodríguez Sánchez
  • Departamento de Matemática Aplicada
  • Universidad de Salamanca
  • E-mail gerardo_at_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
Criptografía de Clave Pública
  • Se utiliza diferente clave para cifrar mensajes
    que para descifrarlos (Internet, empresas,
    usuarios).
  • Protocolo de cambio de clave de Diffie-Hellman

4
Criptografía de Clave Pública
  • RSA
  • Basado en la dificultad de factorizar números
    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)
  • A y B seleccionan públicamente un grupo
    cíclico finito G, G n, y un generador ?.
  • A genera un número aleatorio a, calcula ?a y lo
    envía a B.
  • B genera un número aleatorio b, calcula ?b y lo
    envía a A.

6
Cambio de clave Diffie-Hellman (2)
  • A recibe ?b y calcula (?b)a ?ba.
  • B recibe ?a y calcula (?a)b ?ab.
  • CONCLUSIÓN A y B comparten el mismo elemento
    secreto del grupo ?ab.

7
Seguridad del cambio de clave Diffie-Hellman (3)
Son públicos los siguientes elementos el grupo
G, su orden n, el generador ? Se pueden
intervenir los siguientes datos ?a, ?b Se
pretende calcular el valor de ?ab Se supone que
es un problema intratable
(Teoría de la complejidad computacional).
8
Ejemplo de cambio de clave Diffie-Hellman (1)
  1. A y B seleccionan (Z53) y un generador ? 2.
  2. A genera a 29, calcula ?a 229 (mod 53) 45 y
    lo envía a B.
  3. B genera b 19, calcula ?b 219 (mod 53) 12 y
    lo envía a A.
  4. A recibe ?b 12 y calcula (?b)a 1229 (mod 53)
    21.

9
Ejemplo de cambio de clave Diffie-Hellman (2)
  • B recibe ?a 45 y calcula (?a)b 4519 (mod 53)
    21.
  • A y B comparten el mismo elemento secreto del
    grupo
  • ?ab 21.
  • Conociendo (Z53), ? 2, ?a 45, ?b 12,
    calcular ?ab.

10
Criptosistema RSA claves (1)
Generación de claves Se eligen dos números
primos distintos, grandes y cercanos p, q, y se
calcula n p q. Se considera el grupo (Zn),
cuyo orden es ?(n) (p 1)(q 1). Se elige
un número e primo con ?(n). Se calcula el
inverso de e en (Zn) d, es decir, e d ? 1
mod. ?(n).
11
Criptosistema RSA claves (2)
Generación de claves La clave pública es el
par (n, e). La clave privada es el número d. Se
deben mantener ocultos también los valores de p,
q y ?(n).
12
Criptosistema RSA cifrado y descifrado
  • Cifrado
  • B obtiene la clave pública de A (n, e).
  • B representa el mensaje que quiere enviar, m, en
    el conjunto (Zn), troceándolo si es preciso.
  • B calcula me (mod. n) ? c, que envía a A.

13
Criptosistema RSA cifrado y descifrado
  • Descifrado
  • A utiliza su clave privada, d, para calcular
  • cd (mod. n) ? med (mod. n) ? m.

14
Criptosistema RSA seguridad
Dado un entero positivo, n, producto de dos
primos distintos grandes de tamaño parecido p y
q, un entero positivo e, tal que MCD(e, ?(n))
1, y un entero c, encontrar otro entero m tal
que me ? c (mod. n). Hipótesis La seguridad
del RSA es equivalente al problema de factorizar.
15
Ejemplo de RSA
  • Determinación de la clave
  • Elegimos dos números primos p y q, los
    multiplicamos para obtener el módulo 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, 2lt e lt198640,
    primo con ?(n), por ejemplo, e3.

16
Ejemplo de RSA
  • Determinación de la clave
  • Calculamos el exponente de descifrado d, que
    es el inverso de e módulo ?(n) d 132427
  • Damos a conocer nuestra clave pública (199543,
    3).
  • Ocultamos nuestra clave privada d132427, así
    como los restantes valores p 383, q 521 y
    ?(n) 198640.

17
Ejemplo de RSA
  • Cifrado del mensaje
  • Supongamos que un usuario B desea enviarnos
    el mensaje RSA. Los pasos a seguir serán los
    siguientes
  • Localiza nuestra clave pública (199543, 3).
  • B escribe el mensaje a enviar como un número
    menor que 199543 y primo con él.
    Por ejemplo, puede considerar la siguiente
    representación de letras por números (sin la Ñ)
    A?0,
    B?1, C?2,..., Y?24, Z?25
    y emplear la base 26
    para representar cualquier palabra.

18
Ejemplo de RSA
  • Cifrado del mensaje
  • En nuestro ejemplo R?17, S?18, A?0 con
    lo que el mensaje sería m 17 26218
    260 911
  • B cifra el mensaje anterior calculando c ? me
    (mod. n) ? 9113 (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 26319 262 20 26 23 ? KTUX

19
Ejemplo de RSA
  • Descifrado del mensaje
  • Una vez hemos recibido el criptograma (189147 o
    KTUX), utilizamos nuestra clave privada d
    132427 para calcular m ? cd (mod. n) ?
    189147132427(mod. 199543).
  • El cálculo de este número se realiza con la
    siguiente estrategia
    d132427(100000010101001011)22172102826232
    1

20
Ejemplo de RSA
  • Descifrado del mensaje
  • Calculamos las siguientes potencias, cada una de
    las cuales es el cuadrado de la anterior y
    hacemos módulo 199543
  • 1891472?124053 1891474?191106 1891478?145661
    18914716?118817 18914732?11782
    18914764?133139 189147128?189545 189147256
    ?188504 189147512 ?138291 1891471024?18 189147204
    8 ?324 1891474096 ?104976 1891478192?198401
    18914716384?106906 18914732768?67511
    18914765536 ? 173001 189147131072?90974

21
Ejemplo de RSA
  • Descifrado del mensaje
  • Ahora basta multiplicar las potencias de la
    expresión 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 número enviado.

22
Ejemplo de RSA real determinación de la clave
Elegimos dos números 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 determinación 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 determinación 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 determinación de la clave
Como exponente de cifrado elegimos e 65537
2161, 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 pública (n,e) es Hasta la
fecha no se ha demostrado de forma rigurosa la
equivalencia entre resolver el problema de la
factorización y romper el criptosistema
RSA. Para transformar el mensaje en un número
menor que el módulo 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
módulo RSA, se analiza si es preciso trocear el
mensaje.
27
Ejemplo de RSA real cifrado del mensaje
m1 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
m2 31029 37695 14888 24008 25180 81526
70973 28927 96416 57111
46496
28
Ejemplo de RSA real cifrado del mensaje
c1 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
c2 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
factorización y romper el criptosistema RSA.
31
Precursores de la criptografía de clave pública y
del RSA
1976 Protocolo de cambio de clave de
Diffie-Hellman 1978 Criptosistema RSA 1997
Criptógrafos del Cuartel General de
Comunicaciones del Gobierno Británico 1973
Cocks 1970 Ellis 1974 Williamson
32
Firma digital RSA
  • Sean (nB,eB) y dB las claves pública y privada
    de un usuario B y sean (nA,eA) y dA 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 ? mdB (mod. nB)
    con su exponente de descifrado dB.
  • B cifra el valor anterior con la
    clave pública de A, s ? reA (mod.nA) y
    transmite a A el par (c,s).

33
Firma digital RSA
  • Para que A pueda verificar que la firma
    corresponde a B sólo tiene que ejecutar los
    siguientes pasos
  • A recupera la firma de B para el
    mensaje m calculando sdA? r (mod. nA).
  • A comprueba si la firma cifrada coincide
    con el mensaje reB ? m (mod. nB).

34
Elección 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 mínima de 512 bits y, por
    tanto, n tenga al menos 1024 bits (alrededor de
    309 dígitos).
  • p y q no deben estar demasiado cercanos.
  • Si no fuera así se podría factorizar n
    encontrando x e y tales que x2-ny2, pues
    entonces p x-y, q xy.

35
Elección de los primos p y q.
  • MCD(p-1,q-1) debe ser pequeño.
  • p-1 y q-1 deben contener factores primos
    grandes.
  • p y q deben ser robustos.

Un primo impar p se dice robusto si
verifica p-1 tiene un factor primo grande
r. p1 tiene un factor primo grande s. r-1
tiene un factor primo grande t.
36
.
Elección del exponente de cifrado e.
Una vez que se ha seleccionado un valor grande
para el módulo RSA se recomienda seleccionar un
exponente de cifrado e pequeño para facilitar la
tarea de cifrado me (mod. n). Por esta razón
se recomienda que el exponente de cifrado sea
e 3 ó e 65537 Sin embargo no se debe
usar valores pequeños de e al enviar un mismo
mensaje m a varios destinatarios.
37
Elección del exponente de descifrado d.
El exponente de descifrado d debe ser de
longitud aproximada a la de n. Si longitud en
bits (d) ? (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 me ? m (mod. n) El número de
mensajes inocultables es (1mcd(e-1,p-1))
(1mcd(e-1,q-1)) Al menos hay 9 mensajes
inocultables. No afecta a la seguridad del RSA.
39
Récord de factorización.
El récord del módulo RSA más 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
Tecnologías de la Información (BSI). Dicho
equipo ostentaba el anterior récord al lograr
factorizar en Diciembre de 2003 el módulo RSA-576
de 174 dígitos. El número factorizado ahora es
el RSA-200 de 200 dígitos.
40
Récord de factorización.
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
Récord de factorización.
p 3532461934 4027701212 7260497819
8464368671 1974001976 2502364930 3468776121
2536794232 0005854795 6528088349 q
7925869954 4683330333 4708584148
0059687737 9758573642 1996073433 0341455767
8728181521 3538140930 4740185467
42
Récord de factorización.
La siguiente tabla recoge algunos de los módulos
RSA por factorizar y los premios ofrecidos.
Pueden consultarse las siguientes direcciones
para una completa información sobre este
asunto http//www.rsasecurity.com/rsalabs/challen
ges/factoring/numbers.html http//www.rsasecurity
.com/rsalabs/challenges/factoring http//www.npac.
syr.edu/factoring/overview/RSAFCAList.txt
43
Número Dígitos 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 módulo 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
  • Generación de claves
  • Se elige un número primo grande p.
  • Se considera el grupo (Zp) (en general, se puede
    considerar un grupo finito G) cuyo orden es (p
    1).
  • Se elige un generador del grupo ?.
  • Se selecciona un número aleatorio 0 lt a lt p
    1 y se calcula ?a (mod p)

46
Criptosistema de ElGamal claves
Generación de claves La clave pública es (p,
?, ?a). La clave privada es el número a.
47
Criptosistema de ElGamal cifrado y descifrado
  • Cifrado
  • B obtiene la clave pública de A (p, ?, ?a),
  • B representa el mensaje que quiere enviar, m, en
    el conjunto 0, 1, ..., p 1, troceándolo si es
    preciso,
  • B genera un número aleatorio v, 0 lt v lt p 1,
  • B calcula ? ? ?v (mod. p), y ? ? m (?a)v (mod.
    p).
  • B envía a A el par (?,?).

48
Criptosistema de ElGamal cifrado y descifrado
  • Descifrado
  • A utiliza su clave privada, a, para calcular
    ? a ? (?v)a (mod. p) en G y su inverso ?p 1
    a (mod. p)
  • El resultado lo multiplica por ? para obtener
    m ?p 1 a ? ? ? a m ?a (mod. p) ? m
    (mod. p)

49
Criptosistema de ElGamal seguridad
Por seguridad y eficacia, el grupo G y el
elemento ? deben elegirse de forma que se
verifiquen las siguientes condiciones La
operación en G debería ser fácil de
aplicar. Por seguridad el problema del logaritmo
discreto en el subgrupo cíclico de G generado por
? debería ser difícil.
50
Ejemplo ElGamal determinación de la clave.
  • Consideremos p 15485863, el grupo (Z15485863)
    y un generador de dicho grupo ? 7.
  • A elige a28236 y calcula ?a ?
    728236? 12506884 (mod. 15485863) Este
    par es la clave privada y pública de A.
  • B elige b21702 y calcula ?b?
    721702? 8890431 (mod. 15485863) Este par
    es la clave privada y pública de B.

51
Ejemplo ElGamal cifrado del mensaje.
Supongamos que A quiere mandar a B el mensaje
mHIJO Codificamos el mensaje utilizando el
alfabeto de 26 letras H?7, I?8, J?9,O ?14 con lo
que el mensaje sería m 7 2638 2629
2614 128688
52
Ejemplo ElGamal cifrado del mensaje.
A elige el número v 480 y calcula ? ? 7480
(mod. 15485863) ? 12001315 (mod. 15485863) (?b)v
? 8890431480 ? 9846598 (mod. 15485863) ? ? m
(?a)v ? 1286688 9846598 ? 8263449 (mod.
15485863)
53
Ejemplo ElGamal cifrado del mensaje.
A codifica la pareja (12001315, 8263449) en
base 26 12001315 1 265 0 264 6 26321
26211 261 ?BAGVLB 8263449 18 264 2
2634 2620 2625 ? SCEAZ y envía a B la
pareja (BAGVLB, SCEAZ).
54
Ejemplo ElGamal descifrado del mensaje.
B codifica la pareja (BAGVLB, SCEAZ) en base
26 BAGVLB 1265026462632126211261
12001315 ? SCEAZ 182642263426202625
8263449 ? B calcula ? b ? 1200131521702 ?
9846598 (mod. 15485863) y su inverso ? p1b?
1200131515464160? 14823281 (mod. 15485863)
55
Ejemplo ElGamal descifrado del mensaje.
Finalmente B calcula el mensaje inicial ?p 1
a ? ? 14823281 8263449 ? 128688 (mod.
15485863) que codificado en base 26 es el mensaje
inicial 128688 7 2638 2629 2614 ? HIJO
56
Firma digital ElGamal.
  • El esquema diseñado por ElGamal para firmar
    digitalmente un mensaje es el siguiente
  • A genera un número aleatorio h tal que
    MCD(h,p-1)1.
  • A calcula el elemento r? ?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 rs? (?h)s (mod. p)
  • B calcula el elemento (?a)r (mod. p)
  • B calcula (?a)r (?h)s (mod. p) y comprueba
    que es igual a ?m (mod. p)

58
Firma digital ElGamal.
Para conseguir la falsificación de la firma de A
en el mensaje m, un escucha tendría que resolver
la ecuación ?m (?a)r rs con las incógnitas
r y s. Si fija r y trata de resolver la ecuación
en s se encontraría con un problema de logaritmo
discreto, mientras que si fija s e intenta
resolver la ecuación para r se encontraría 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 cíclico de orden n.
    Dados un generador g ? G, y un elemento e ? G, el
    problema del logaritmo discreto (PLD) en G
    consiste en calcular un entero x , 0 ? x ? n - 1,
    de modo que gx e.
  • Este problema (computacionalmente difícil) 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 Zp.
  • Grupo multiplicativo de un cuerpo finito de
    característica 2.
  • Subgrupo propio del grupo multiplicativo de un
    cuerpo finito.
  • El grupo de las unidadades de Zn, siendo n un
    entero compuesto.
  • El grupo de puntos de una curva elíptica
    definida sobre un cuerpo finito.
  • El jacobiano de una curva hiperelíptica definida
    sobre un cuerpo finito.

61
Grupos para el PLD
  • Se puede resolver en PLD sobre Zp en un tiempo
    subexponencial exp((1.923 o(1))(log p)1/3(log
    log p)2/3), por lo que p debería elegirse muy
    grande (210 bits), lo que lleva a problemas
    computacionales (tiempo y espacio).
  • Se debe mantener la dificultad computacional del
    problema, reducir el tamaño de las claves para
    utilizar menor tiempo de computación y utilizar
    menor espacio físico (menor amplitud de banda
    para facilitar la implementación en tarjetas
    inteligentes, teléfonos móviles, localizadores
    personales, etc.)

62
Bibliografía (1)
  • W. Diffie and M. Hellman, New directions in
    Cryptography, IEEE Trans. Inform. Theory 22
    (1976), 644-654.
  • R. Durán Díaz, L. Hernández Encinas y J. Muñoz
    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. Fúster Sabater, D. Guía Martínez, L. Hernández
    Encinas, F. Montoya Vitini y J. Muñoz Masqué,
    Técnicas criptográficas de protección de datos,
    RA-MA, Madrid, 3ª ed., 2004.

63
Bibliografía (2)
  • N. Koblitz, A course in number theory and
    cryptography, Springer-Verlag, 2ª ed., Berlín,
    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 códigos secretos, Debate,
    Barcelona, 2000.

64
Esquema de la charla
  1. Introducción
  2. Identificación amigo-enemigo
  3. Lanzamiento de una moneda por teléfono
  4. Póquer por teléfono
  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 electrónico
  13. Otros protocolos

65
Introducción definición
  • Protocolo. (Del b. lat. protocollum, y este del
    gr. p??t??????). Plan escrito y detallado de un
    experimento científico, un ensayo clínico o una
    actuación médica. (Diccionario de la Real
    Academia Española de la Lengua)
  • Protocolo. Es el conjunto de acciones coordinadas
    que realizan dos o más partes o entidades con el
    objeto de llevar a cabo un intercambio de datos o
    información.
  • Los Protocolos criptográficos serán aquellos que
    cumplen esta función usando para ello algoritmos
    y métodos criptográficos.
  • Su objetivo es dar una solución a distintos
    problemas de la vida real, especialmente aquellos
    en donde puede existir un grado de desconfianza
    entre las partes.

66
Introducción ejemplos
1.- El problema de la identificación del
usuario Cómo permitir que un usuario se
identifique y autentique ante una máquina -y
viceversa- con una clave, password y no pueda ser
suplantado por un tercero? 2.- El problema del
lanzamiento de la moneda Cómo permitir que dos
usuarios realicen una prueba con probabilidad ½
-como es el lanzamiento de una moneda- si éstos
no se encuentran físicamente frente a frente y, a
la vez, asegurar que ninguno de los dos hace
trampa?
67
Introducción ejemplos
3.- El problema de la firma de contratos Cómo
permitir que dos o más usuarios que se encuentran
físicamente 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 mínimo de un
secreto Cómo poder demostrar y convencer a otra
persona o a un sistema que uno está en posesión
de un secreto, sin por ello tener que desvelarlo
ni a ella ni a un tercero?
68
Introducción ejemplos
5.- El problema del juego de póquer mental o por
teléfono Cómo permitir que dos o más usuarios
puedan jugar a través de la red una partida de
póquer -o de cualquier otro juego de cartas - si
no están físicamente en una misma mesa de juego y
asegurando, al mismo tiempo, que ninguno de ellos
va a hacer trampa? 6.- El problema de la
división de un secreto o del umbral Si tenemos un
único secreto, y por tanto muy vulnerable, cómo
permitir que ese secreto sea dividido en n
partes, de forma que juntando al menos k lt n
partes sea posible reconstruirlo y, en cambio,
con k - 1 partes, sea imposible su
reconstrucción?
69
Introducción ejemplos
7.- El problema del esquema electoral o voto
electrónico Cómo realizar unas elecciones a
través de una red, de forma que pueda asegurarse
que el voto es único y secreto, que los votantes
y mesas estén autenticados, y se pueda comprobar
que el voto se contabiliza adecuadamente? 8.-
El problema de la transmisión por canales
subliminales Dos usuarios desean intercambiar
información a través de un tercero del cual
desconfían. Cómo pueden hacerlo sin cifrar la
información de forma que este tercero sólo vea un
mensaje con texto en claro aparentemente inocente?
70
Introducción ejemplos
9.- El problema del millonario Dos usuarios
desean conocer cuál de los dos tiene más dinero
en su cuenta corriente. Cómo pueden hacerlo de
forma que, una vez terminado el protocolo, ambos
sepan quién de los dos es más rico sin por ello
desvelar el dinero que tiene el otro? 10.- El
problema del correo electrónico con acuse de
recibo Cómo hacer que una vez recibido un correo
electrónico, éste sólo pueda ser leído (abierto)
si el receptor envía, con anterioridad al emisor,
un acuse de recibo como sucede de forma similar
con el correo ordinario certificado?
71
Introducción ejemplos
Cómo podemos calcular la edad media de un grupo
de personas sin conocer la edad de cada una de
las personas?
...
...
aleatorio
72
Identificación Amigo-Enemigo
El avión A le envía un reto al avión B, sabiendo
que sólo lo puede resolver si cuenta con alguna
información que sólo 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 pública
para desarrollar un protocolo de identificación
amigo-enemigo
73
Identificación Amigo-Enemigo
  • Cada usuario Ui , i 1,..., k, posee en su
    terminal sus claves RSA, pública y privada pi y
    si, y las claves públicas de todos sus aliados
    pj , j 1,..., k, .
  • Si el usuario Ui quiere verificar la identidad
    del usuario Uj procede como sigue
  • Ui genera un mensaje aleatorio, m, lo cifra
    utilizando la clave pública de Uj , c Epj(m) y
    se lo envía.
  • Uj descifra el mensaje recibido m Dsj(c) y se
    lo devuelve a Ui, en un plazo previamente
    acordado.
  • Ui compara el mensaje recibido con el mensaje
    original. En caso de coincidencia, Uj es amigo y
    en otro caso, enemigo.

74
Lanzamiento de una moneda por teléfono
Dos personas han de tomar una decisión por
teléfono y para ello una de ellas lanza una
moneda al aire. Es posible diseñar algún
protocolo que evite hacer trampas?
75
Lanzamiento de una moneda por teléfono
  • A elige dos números primos grandes, p y q, y
    comunica su producto, n pq, a B.
  • B elige un número aleatorio u ?(1, n/2), y
    comunica a A el valor z u2(mod n) .
  • A calcula las cuatro raíces de z módulo n ? x,
    ? y. Si x e y son los mínimos valores para ? x, ?
    y, respectivamente, se tiene que u x y v y.
  • A hace la hipótesis 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 hipótesis el i-ésimo bit de u
    es 0 ó el i-ésimo bit de u es 1.

76
Lanzamiento de una moneda por teléfono
  • B responde a A si su hipótesis es correcta o no.
  • B da a conocer a A el número u.
  • A muestra a B la factorización de n.
  • Nota A no puede saber el valor de u por tanto,
    la probabilidad de que su hipótesis sea cierta es
    del 50. Si B quisiera hacer trampa cambiando u
    después de conocer la hipótesis de A, es porque
    conocería x e y, por lo que podría factorizar n.
    Para evitarlo A no comunica x ó y a B, sino un
    solo bit de su hipótesis.

77
Póquer por teléfono
A y B quieren jugar una partida de póquer por
teléfono sin trampas y sin que haya un
árbitro. Las condiciones de la partida de póquer
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
Póquer por teléfono
Sean (pA , sA) y (pB , sB) las parejas de claves
pública/privada de los usuarios A y B, de tal
forma que el criptosistema de clave pública sea
conmutativo EpA (EpB(m)) EpB (EpA(m)) .
  • El protocolo es como sigue
  • B cifra (baraja) las 52 cartas con su clave
    pública y las envía a A ordenadas de manera
    aleatoria
  • c1 EpB(cp(1)) ,..., c52 EpB(cp(52)) .
  • A elige sus cinco cartas, cj1,...,cj5, las cifra
    con su clave pública y se las envía a B
  • EpA(cj1) ,..., EpA(cj5)

79
Póquer por teléfono
  • B descifra con su clave privada las 5 cartas y
    se las devuelve a A
  • ESB(EpA(cj1)) EpA(cj1) ,..., ESB(EpA(cj5))
    EpA(cj5) .
  • A descifra con su clave privada las 5 cartas
    recibidas y conoce su mano
  • ESA(EpA(cj1)) cj1 ,..., ESA(EpA(cj5)) cj5.
  • A elige la mano de B (de entre las cartas
    cifradas por A y no pertenecientes a su mano) y
    le envía las cartas a B ci1,...,ci5 .
  • B descrifra con su clave secreta estas 5 cartas,
    obteniendo así su mano
  • ESB(ci1) ci1 ,..., ESB(ci5) ci5.

80
El problema del millonario
Dos millonarios quieren saber cuál de los dos es
más rico pero sin que ninguno conozca la fortuna
del otro. Supongamos que FA es la fortuna de A y
que FB es la fortuna de B. Utilizaremos el
criptosistema RSA para diseñar un protocolo que
permita llevar a cabo el deseo de los
millonarios. Supongamos, además, que FA, FB lt 100.
81
El problema del millonario
  • Sean (nA, eA), dA y (nB, eB), dB las claves
    públicas y privadas de A y B, respectivamente.
  • El protocolo es como sigue
  • B elige un número aleatorio grande x, acotado
    por un valor fijado de antemano, y lo cifra con
    la clave pública de A
  • B da a conocer a A el valor del número k - FB .
  • A calcula de manera secreta los números

82
El problema del millonario
  • A elige un número primo grande p lt x , y calcula
    los números
  • Para cada uno de estos valores, A verifica que
  • En caso contrario, A elegiría otro número primo
    p.
  • A da a conocer a B la siguiente sucesión
    ordenada de números
  • B prueba si el FB-ésimo número de la sucesión es
    congruente con x módulo p. Si es así, entonces FA
    ? FB en caso contrario se tendrá que FB gt FA.

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 diseñar un protocolo para
conseguir tal fin?
84
Venta de secretos
  • Supongamos que A posee varios secretos para
    vender s1,...,sk , e imaginemos que B quiere
    comprarle uno de ellos sj .
  • El protocolo es como sigue
  • A construye k criptosistemas RSA de claves (ni,
    ei) y di, de tal forma que pi, qi 3 (mod 4).
  • A dice a B las k claves públicas, (ni, ei), y
    los secretos cifrados
  • B elige al azar k números x1,..., xk , calcula
    sus cuadrados módulo ni , , y sus
    símbolos de Jacobi

85
Venta de secretos
  • B comunica a A los siguientes valores
  • A calcula las raíces cuadradas de los valores
    recibidos y comunica a B las que corresponden a
    los símbolos de Jacobi de la lista.
  • Entonces B posee dos raíces cuadradas diferentes
    de
  • por lo que puede factorizar el módulo nj y
    obtener el secreto sj.

86
Descubrimiento mínimo
Debemos convencer a una persona de que poseemos
cierta información secreta sin revelarle nada de
dicha información (Conocimiento nulo)
87
Descubrimiento mínimo
  • A posee una información y desea convencer a B de
    ello, pero sin darle tal información. Determinar
    cuál es la mínima cantidad de información que A
    debe revelar a B para que este último se convenza
    de que el primero posee la información que dice
  • El protocolo es como sigue
  • A comunica a B que conoce la factorización del
    módulo RSA n pq.
  • B elige un número entero aleatorio x y comunica
    a A el valor de x4(mod n) .
  • A calcula las raíces cuadradas de x4(mod n) y
    comunica a B el valor de una de ellas x2(mod n)
    .
  • B comprueba que el valor enviado por A es una
    raíz cuadrada de x4(mod n) , elevando al cuadrado
    tal valor.

88
Transferencia inconsciente
Supongamos que la persona A conoce un
secreto. Vamos a diseñar 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 pérdida de generalidad podemos suponer que el
    secreto que A posee es la factorización del
    módulo RSA, n pq.
  • El protocolo es como sigue
  • B elige un número x y da a conocer a A el valor
    de x2 (mod n).
  • A calcula las cuatro raíces cuadradas de x2 (mod
    n), que son ? x y ? y, y da a conocer sólo una de
    ellas, u, a B. (Obsérvese que A no sabe cuál de
    ellas es x)
  • B comprueba si u es congruente con ? x (mod n).
    Si es así, B no obtiene ninguna información
    nueva en caso contrario, B obtendría dos raíces
    cuadradas diferentes de n, y podría factorizarlo.
  • A no sabe cuál 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. Diseñaremos un método 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 tamaño de sus
    claves RSA (nA, eA), dA, y (nB, eB), dB, de tal
    forma que pA, qA, pB, qB 3 (mod 4).
  • A y B cifran sus secretos y los intercambian con
    sus claves públicas.
  • A y B eligen, respectivamente
  • A y B se intercambian los valores de

92
Intercambio de secretos
  • A y B calculan las cuatro raíces cuadradas
    módulo nA y nB de cada valor recibido y
    seleccionan las dos más pequeñas.
  • A y B se intercambian los 100 pares de raíces
    cuadradas, enviando 100 pares de bits cada vez,
    comenzando por los bits más significativos y
    verificando que los valores recibidos son restos
    cuadráticos (para evitar trampas).
  • A y B conocen dos raíces distintas de cada bi y
    ai, con lo que pueden factorizar el módulo RSA
    del otro y descubrir el secreto que cifró.

93
Firma de un contrato
Dos personas quieren firmar un contrato a través
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 pública para diseñar 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 tamaño de los
    módulos RSA que van a utilizar y se intercambian
    sus respectivas claves públicas (nA, eA) y (nB,
    eB),
  • A envía a B un contrato firmado utilizando su
    firma digital (es decir, firmado mediante su
    clave privada, dA), en el que asegura que el
    contrato es válido si B sabe cómo factorizar nA.
  • B procede de manera análoga enviando su contrato
    firmado digitalmente mediante su clave privada dB
    .
  • Una vez que cada participante ha leído el
    contrato firmado digitalmente por la otra parte y
    ha verificado la firma digital, se intercambian
    los factores primos de los respectivos módulos
    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
sólo si A obtiene la confirmación de recepción
por parte de B. Utilizaremos el criptosistema
RSA para diseñar 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 envía a B su clave pública.
  • B envía a A su clave pública junto con el
    acuerdo firmado digitalmente (con su clave
    privada) de que si A puede factorizar nB,
    entonces B factoriza nA y obtiene cualquier
    correo, m, que esté cifrado por A.
  • A y B se intercambian los factores primos de sus
    módulos mediante el protocolo de intercambio de
    secretos.
  • Cuando B factoriza nA, puede leer el correo
    enviado por A.
  • Como A factoriza nB, obtiene el certificado
    firmado por B.

97
Voto electrónico
Todos tenemos de una u otra forma una idea
intuitiva, aunque quizás no completa, sobre cómo
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
técnicas y protocolos criptográficos aunque no se
trata sólo de un problema de implementación
técnica es menester tener en cuenta otros
factores importantes, a saber Socio-políticos,
económicos, jurídicos, legislativos...
98
Voto electrónico
Un esquema de votación electrónica es una
aplicación distribuida y constituida por un
conjunto de mecanismos criptográficos y
protocolos que, de forma conjunta, permiten que
se realicen elecciones en una red de
computadores, de forma segura, incluso suponiendo
que los electores legítimos pueden tener un
comportamiento malicioso. Andreu Riera Tesis
Doctoral Universidad Autónoma de Barcelona,
España, 1999.
99
Voto electrónico
  • Requisitos de un esquema electoral
  • Sólo pueden votar quienes estén censados.
  • El voto debe ser secreto.
  • El voto debe ser único por cada votante.
  • Se contabilizarán todos los votos válidos.
  • 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, práctico y, dentro
    de lo posible, de uso universal.

100
Voto electrónico
  • Primera aproximación del voto electrónico
  • MCV Mesa Central de Votación
  • El votante cifra su voto con la clave pública de
    MCV.
  • El votante envía su voto a la MCV.
  • La MCV descifra el voto y lo contabiliza.
  • La MCV hace público el resultado.
  • Qué problemas presenta este esquema? TODOS...
  • La MCV no sabe de dónde vienen los votos, si
    éstos son válidos o no y si alguien vota más de
    una vez. Además 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 electrónico
  • Segunda aproximación del voto electrónico
  • El votante firma su voto con su clave privada y
    lo cifra luego con la clave pública de MCV.
  • El votante envía su voto a la MCV.
  • La MCV descifra el voto, lo contabiliza y hace
    público 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 electrónico
  • Tercera aproximación del voto electrónico
  • El tercer esquema contempla dos mesas
  • MCV Mesa Central de Votación
  • MCL Mesa Central de Legitimación
  • La MCL evita que la MCV conozca a quién ha
    votado el votante, mediante un protocolo entre
    ambas, y además gestionan una lista de votantes
    censados.
  • La MCL y la MCV deben ser organismos diferentes.

103
Voto electrónico
  • El protocolo es como sigue
  • El votante A envía a la MCL el mensaje Buenos
    días, soy A y vengo a votar
  • La MCL verifica si A está censado. Si no es un
    votante legítimo rechaza la solicitud. Si es
    legítimo, le envía un número aleatorio de
    identificación único i(A) y le borra de la lista
    para impedir que vuelva a votar.
  • Nota. El número i(A) debe ser mucho mayor que el
    número de votantes. Por ejemplo, para un millón
    de votantes, unos 10100 números.
  • La MCL envía a la MCV la lista de números de
    validación.

104
Voto electrónico
  • El votante A escoge una identificación secreta
    s(A) y envía a la MCV el mensaje formado por el
    trío i(A), v(A), s(A)?, donde i(A) es su
    identificación, v(A) es su voto y s(A) es su
    número secreto.
  • Nota. Puede generarlo internamente con su sistema
    de cifra. Será también un valor de muchos
    dígitos.
  • La MCV verifica que el número i(A) de
    identificación se encuentra en el conjunto N de
    los números censados y cruza los datos para
    evitar que se vote más de una vez.
  • Seguidamente quita i(A) del conjunto N y añade
    s(A) al conjunto de electores que han optado por
    la opción v(A).
  • La MCV contabiliza los votos y hace público el
    resultado, junto con la lista de números secretos
    s(A) que han votado a la opción v(A).

105
Voto electrónico
  • Algunas consideraciones sobre este protocolo
  • Obsérvese que cada elector puede comprobar si su
    voto ha sido contabilizado sin hacer pública su
    opción.
  • 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
    solución está en el uso de una diversidad de
    esquemas más desarrollados que evitan esta
    anomalía mediante protocolos, entre ellos ANDOS
    (All-or-Nothing Disclosure Of Secrets)
    Distribución Anónima de Números de Validación.

106
Voto electrónico
Otros esquemas de mesas electorales Hay muchos
otros esquemas con dos mesas, una única mesa e
incluso ninguna, cada uno con sus características
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 electrónico
  • Estado del arte
  • Existen diversos modelos y esquemas, algunos de
    ellos probados con éxito con un número reducido
    de electores.
  • No está todavía bien solucionado el problema de
    la protección física y lógica de la red ante
    ataques masivos, denegación de servicio, etc. Es
    el principal problema al que se enfrentan estos
    esquemas, su difícil escalabilidad en sistemas
    grandes y abiertos.
  • No obstante, el proceso de unas elecciones vía
    Internet realizable, práctico y seguro en cuanto
    a la privacidad y autenticidad, es completamente
    factible.

108
Otros protocolos esquemas umbrales
  • Existen otros protocolos criptográficos que no
    hacen uso de las técnicas proporcionadas por la
    clave pública en su diseño, y no por ello son
    menos importantes.
  • Entre ellos podemos señalar de manera destacada a
    los protocolos para el reparto de secretos y, más
    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 criptográficas

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, S1 ,..., Sn , 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
    obtendría ninguna información sobre el secreto S.
  • Las sombras son creadas por una persona de
    confianza mútua (PCM).
  • El esquema se dice que es ideal cuando el tamaño
    de las sombras es igual o inferior al tamaño del
    secreto.
  • El esquema (k, n)-umbral más famoso es el debido
    a Shamir (1979) y está basado en la interpolación
    de Lagrange.

110
Otros protocolos esquemas umbrales
  • El esquema de Shamir es como sigue
  • Sea S?Z el secreto a ser repartido.
  • La PCM selecciona un primo p gt max(S, n).
  • Selecciona de manera aleatoria los números
    enteros
  • a1, a2,,ak?1 ? Zp .
  • Construye el polinomio S a1x a2x2 ak-1 x
    k?1? Zpx .
  • Las sombras a repartir son Si P(i) (mod p), 1
    i n.
  • Para recuperar el secreto se han de juntar, al
    menos, k sombras S1,, Sk. En este caso
    tendríamos k puntos (i, Si ), 1 i k, de tal
    forma que el término 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 gt max(16, 6).
  • Se elige de forma aleatoria los enteros 2 ? Z23
    , 23? Z23.
  • Se construye el polinomio P(x) 16 2x 19x2
    ? Z23x .
  • Construimos las sombras
  • S1 P(1) 14, S2 P(2) 4, S3 P(3) 9,
  • S4 P(4) 6, S5 P(5) 18, S6 P(6) 22.
  • Juntando al menos tres sombras, S1, S3 y S6, el
    polinomio interpolador que pasa por esos puntos
    es
  • 16 2x 9x2 ? Z23x.

112
Otros protocolos criptografía visual
  • Una variante de los esquemas umbrales es la
    denominada criptográfia 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. Más recientemente se han desarrollado
    protocolos similares para imágenes en tonos de
    grises o en color.

113
Otros protocolos criptografía visual
  • La imagen secreta no es más que rectángulo
    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
    píxeles de la imagen original, dos píxeles, cada
    uno de los cuales ocupará en lugar del píxel
    original pero en cada una de las sombras.
  • Cada uno de los píxeles de cada una de las
    sombras se separará en otros cuatro píxeles, dos
    blancos y dos negros.

114
Otros protocolos criptografía visual
  • El protocolo es como sigue
  • Se lanza una moneda al aire
  • Si el resultado es cara, se elige como píxeles
    para cada una de las sombras los dos píxeles de
    la línea superior.
  • Si es cruz elige como píxeles para cada sombra
    los dos píxeles de la línea inferior.

115
Otros protocolos criptografía visual
  • Obsérvese que
  • Cada pixel de la imagen original da lugar a dos
    pixeles, uno para cada sombra.
  • Los píxeles blancos pierden contraste al
    recuperar la imagen original secreta.
  • La obtención del cuádruple 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 información
    adicional si se observa un grupo de píxeles en
    cualquiera de las sombras).

116
Otros protocolos criptografía visual
Imagen original
Imagen recuperada
lanzamientos
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
Sombras
117
Otros protocolos criptografía visual
118
Bibliografía
  • R. Durán Díaz, L. Hernández Encinas y J. Muñoz
    Masqué, El criptosistema RSA, RA-MA, Madrid,
    2005.
  • A. Fúster Sabater, D. Guía Martínez, L.
    Hernández Encinas, F. Montoya Vitini y J. Muñoz
    Masqué, Técnicas criptográficas de protección 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 informática y
    Criptografía. Material docente de libre
    distribución. Madrid 2005
Write a Comment
User Comments (0)
About PowerShow.com