Criptografía de clave pública
PID_00206069
Ninguna parte de esta publicación, incluido el diseño general y la cubierta,
puede ser copiada,
reproducida, almacenada o transmitida de ninguna forma, ni por ningún medio,
sea éste eléctrico,
químico, mecánico, óptico, grabación, fotocopia, o cualquier otro, sin la
previa autorización escrita
de los titulares del copyright.

Índice
- 1.Introducción a la criptografía de clave pública: RSA
- 1.1.Introducción
- 1.2.Clave pública: RSA
- 1.2.1.Método
- 1.2.2.Uso real del sistema RSA
- 2.Firmas digitales
- 3.PGP: un buen ejemplo del uso de clave privada y pública
- 3.1.PGP: Pretty Good Privacy
- 3.1.1.Bases del método
- 3.1.2.Instalación y configuración del PGP
- 3.1.3.Uso del PGP
- 3.1.PGP: Pretty Good Privacy
- Ejercicios de autoevaluación
1.Introducción a la criptografía de clave pública: RSA
1.1.Introducción
En 1976, Whitfield Diffie y Martin Hellman provocan un giro total en la concepción
de la criptografía, con la publicación de su artículo "New Directions in Cryptography".


En este artículo plantean cómo comunicarse de forma segura sin un intercambio previo
y secreto de claves. Para conseguir un tipo de comunicación de este tipo, suponen
que cada persona dispone de una clave de cifrado y de una de descifrado. La clave
de cifrado de cada persona es conocida por todo el mundo, ya que figura en un listado
público de acceso libre (la llamada clave pública). La clave privada de cada persona es mantenida en secreto por su dueño. Para proceder
a una comunicación segura, el emisor consulta la clave pública del receptor con la
que cifra el mensaje. Sólo el receptor podrá entender este mensaje cifrado, ya que
es el único que conoce la clave privada con la que descifrarlo. Este planteamiento
nuevo supuso una revolución porque evita uno de los principales problemas de los criptosistemas
de clave privada: el intercambio previo de claves entre emisor y receptor.
La criptografía de clave pública se llama de clave asimétrica, ya que en ésta se utilizan
dos claves diferentes, una para cifrar y otra para descifrar (de aquí la no simetría).
En contraste, la criptografía de clave privada se denomina de clave simétrica, ya
que el proceso de cifrado y de descifrado es el mismo pero aplicado de forma inversa.
Emisor y receptor tienen una información simétrica, puesto que los dos conocen la
clave que se ha utilizado. Por ejemplo, si se utiliza para cifrar un sistema César
con clave privada 2, entonces para descifrar se tiene que utilizar un sistema César
con clave 27 – 2 = 25. El sistema DES es otro de los ejemplos, ya que se utiliza el
mismo algoritmo que para cifrar pero siguiendo los pasos en sentido inverso.
Puesto que la función de cifrado es pública, es muy importante que no se pueda deducir
a partir de ésta la función de descifrado. Para conseguir esta seguridad, Diffie y
Hellman propusieron el uso de funciones unidireccionales. Una función unidireccional
es aquella que permite calcular imágenes fácilmente. Ahora bien, dada la imagen de
un elemento desconocido, éste es muy difícil de calcular. El símil es que la función
sólo va bien en una dirección: de elemento a imagen, pero no de imagen a elemento.
Un mensaje se cifra fácilmente con una función unidireccional, pero para el descifrarlo
se debe usar la función en sentido inverso, y esto es muy difícil de calcular. Sin
embargo, para el receptor, el descifrado tiene que ser fácil. Para ello se considera
lo que se denomina una función unidireccional con trampa, en la que el receptor, por medio de una información adicional (la clave privada),
puede descifrar mensajes fácilmente.
Diffie, Hellman y Merkle trabajaron en la Universidad de Stanford buscando una función
unidireccional para realizar el modelo criptográfico propuesto. Fueron tres investigadores
del MIT (Massachusetts Institute of Technology), Ronald Rivest, Adi Shamir y Leonard
Adleman, quienes hicieron la primera propuesta de función unidireccional mediante
el uso de potencias en el conjunto de los enteros modulares en el año 1977.

La criptografía de clave pública soluciona dos problemas que tiene la criptografía
de clave privada. El primero es el de ponerse de acuerdo en una clave para comunicarse.
En aplicaciones militares de la criptografía se han utilizado los periodos de paz
para poner de acuerdo a emisor y receptor sobre cuál es la clave que hay que utilizar.
Otra de las soluciones al problema de la clave común es suponer que se tiene un canal
seguro por el que se transmite la clave privada. Este canal puede ser un canal que
sólo se usa de forma ocasional para establecer y renovar las claves. Otras veces,
no es el uso de un canal lo que permite poner de acuerdo a emisor y receptor en el
valor de la clave, sino que es un proceso criptográfico el que establece la clave
común. Éste es el caso de la predistribución de claves que se utiliza en la televisión
de pago. En la criptografía de clave pública se consigue que emisor y receptor no
se tengan que poner previamente de acuerdo en el valor de la clave. Esto es así, ya
que para efectuar la comunicación sólo se necesita que el emisor utilice la clave
pública del receptor, y esta clave es conocida por todo el mundo. El receptor debe
utilizar su clave privada (que no da a conocer a nadie) para descifrar el mensaje.
Hay que pensar que se dispone de un directorio de claves públicas que es como un listín
telefónico en el que se puede consultar la clave pública de todos los usuarios.
Además, la cantidad de claves utilizadas es menor en un sistema de clave pública que
en un sistema de clave privada. En un sistema de clave privada hay que acordar claves
para que cada pareja de usuarios se pueda comunicar, mientras que en el caso de un
sistema de clave pública, cada usuario tiene dos claves. Sin embargo, no es ésta la
única ventaja que tienen los sistemas de clave pública. Con un sistema de clave pública
se pueden obtener otras prestaciones aparte de la confidencialidad en las comunicaciones,
como son la autenticidad, la integridad y el no-repudio. Los sistemas de clave pública
están presentes en gran parte de la criptografía que se usa actualmente, a veces,
en una astuta combinación con la clave privada, como sucede, por ejemplo en el programa
PGP.
1.2.Clave pública: RSA
En un sistema de clave pública, cada usuario dispone de una clave pública y de una
clave privada. Las claves públicas e de todos los usuarios están recogidas en un directorio accesible para todo el mundo.
Mientras tanto, cada usuario mantiene en secreto su clave privada d. Si Alicia quiere enviar un mensaje m a Blas, sólo tiene que consultar en el directorio público cuál es la clave pública
de Blas eBlas, y cifrar con ésta el mensaje, obteniendo c = EeBlas (m). Cuando Blas recibe por el canal inseguro el mensaje cifrado c, puede descifrarlo por medio de su clave privada dBlas haciendo m = DdBlas (c).

Para ello se requiere que las funciones Ee, Dd de una pareja de clave pública e y clave privada d verifiquen Dd(Ee(m)). Como que el conocimiento público de la clave de cifrado no tiene que dejar al descubierto
la función de descifrado, se utiliza para cifrar una función especial, llamada función unidireccional con trampa. Una función unidireccional con trampa ƒ es aquélla en la que calcular la imagen
ƒ(m), en nuestro caso, el cifrado de un mensaje, es muy fácil. En cambio, dado un mensaje
cifrado c, es muy difícil calcular cuál es el mensaje sin cifrar m, es decir, es muy difícil calcular un m tal que ƒ(m) = c. Cuando decimos es "muy fácil" o es "muy difícil" nos referimos en términos de tiempo de cálculo en un ordenador. El receptor legítimo
del mensaje conoce un dato especial de la función (la clave secreta) que le permite
calcular el mensaje original de una forma rápida. Ésta es la denominada trampa de
la función.
El primer ejemplo conocido de función unidireccional con trampa es el de la potencia
en el conjunto de los enteros modulares. Esta función unidireccional es la utilizada
en el más conocido de los criptosistemas de clave pública: el RSA. Hagamos una descripción
completa del sistema de clave pública RSA creado por Rivest, Shamir y Adleman en 1977.
1.2.1.Método
Sean dos números primos p, q muy grandes (guardados en secreto) y n = p · q. Sean además e y d tales que e · d ≡ 1 mod (p – 1)(q – 1). Utilicemos como función para cifrar:
E(e,n)(m) = me mod n
y como función para descifrar, la función:
D(d,n)(m) = md mod n
Para que esta función sirva para descifrar, se necesita que D(d,n)(E(e,n)(m)) = m, esto es, D(d,n)(xe) = m, o lo que es lo mismo, (me)d ≡ m mod n. Se puede probar que si e y d están escogidos de forma que e · d ≡ 1 mod (p – 1)(q – 1), entonces med ≡ m mod n, siempre que m no sea divisible por p ni por q, hecho resultante de un teorema muy conocido, denominado teorema de Euler.

La clave pública del usuario en cuestión es el par (e,n), y la clave privada es (d,n). Veamos unos ejemplos de transmisión de información por medio del sistema RSA.
Ejemplo
Alicia quiere enviar el mensaje m = NO a Blas, para lo cual consulta en un fichero público la clave pública de Blas. Por
su lado, Blas ha dado a conocer previamente a todo el mundo su clave pública por medio
del fichero de claves de acceso libre:
(e,n) = (131,6319)
pero su clave privada, (d,n) = (4091,6319), la tiene guardada en secreto. La clave privada está construida a
partir de los primos p = 71, q = 89 con
n = p · q = 71 · 89 = 6319, (p – 1) · (q – 1) = 70 · 88 = 6160
Para calcular la clave privada a partir de la clave pública, ha utilizado el applet
calculadoraRSA.
Alicia obtiene una codificación numérica del mensaje utilizando la tabla:
|
A
|
B
|
C
|
Ç
|
D
|
E
|
F
|
G
|
H
|
I
|
J
|
K
|
L
|
M
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
00 |
01 |
02 |
03 |
04 |
05 |
06 |
07 |
08 |
09 |
10 |
11 |
12 |
13 |
14 |
N
|
Ñ
|
O
|
P
|
Q
|
R
|
S
|
T
|
U
|
V
|
W
|
X
|
Y
|
Z
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
Así obtiene: m = 1517. Para cifrarlo con la clave pública de Blas, calcula:
c = E(e,n)(1517) = 1517131 ≡ 3360 mod 6319

Ahora envía por el canal (inseguro) el mensaje cifrado c = 3360. Cuando Blas recibe el mensaje cifrado, lo descifra con su clave privada de
la manera siguiente:
m = D(d,n)(3360) = 33604091 ≡ 1517 mod 6319

y mirando el convenio de conversión numérica, obtiene que el mensaje enviado es m = NO.
Hagamos un cifrado de un mensaje un poco más realista. Para ello se pueden comprobar
todos los cálculos con el uso del applet calculadoraRSA (1) . Supongamos que Alicia escoge p = 5557, q = 5623, por tanto, n = p · q = 31247011, (p – 1)(q – 1) = 5556 · 5622 = 31235832. Para calcular una clave privada y una clave pública,
Blas escoge como clave pública eBlas = 6666666 y, al calcular la clave privada correspondiente, observa que el applet
le indica que no es posible, ya que tiene un factor en común con (p – 1) · (q – 1) = 98882652 (ambos son divisibles por 6). Prueba con eBlas = 6666667 y el applet calcula la clave privada dBlas = 95755. Blas da a conocer a todo el mundo su clave pública:
(eBlas,nBlas) = (6666667,31247011)
Una vez establecida la clave pública, la comunicación puede comenzar. Alicia le quiere
enviar a Blas el mensaje m = A MI SI. En primer lugar, lo traduce a versión numérica m = 01001410002110 según el convenio que hemos establecido anteriormente. En segundo
lugar, lo divide en fragmentos que le vayan bien para cifrar, es decir, fragmentos
inferiores a nBlas. Podemos adoptar el convenio de enviar bloques de una cifra menos de las que tiene
el módulo con que se trabaja, en este caso, siete cifras m = 0100141 0002110. A continuación cifra cada bloque:
E(eBlas,nBlas)(0100141) = 1001416666667 ≡ 09341147 mod 31247011
E(eBlas,nBlas)(0002110) = 21106666667 ≡ 10344344 mod 31247011
Debemos tener en cuenta que por el canal se enviarán elementos del conjunto de enteros
módulo nBlas = 31247011. Así, Alicia enviará:
c = 09341147 10344344
Cuando Blas lo reciba, procederá a hacer el descifrado utilizando su clave privada:
D(dBlas,nBlas)(09341147) = 934114795755 ≡ 0100141 mod 31247011
D(dBlas,nBlas)(10344344) = 1034434495755 ≡ 0002110 mod 31247011
Ahora, para convertirlo en un mensaje literal, tiene que completar con ceros, si es
necesario: m = 0100141 0002110 y por tanto, el mensaje enviado es m = A MI SI.
En todo caso en este cifrado más realista hay que cifrar bloques de 7 cifras (una
menos que tiene el módulo) y si fuera necesario se rellena con ceros al final para
que nos salga un numero entero de bloques.
Alicia ha dado a conocer su clave pública y mantiene en secreto la clave privada:
(dAlicia,nAlicia) = (21902843,30970799)
Alicia ha recibido como respuesta c = 0 07756120 28432390 23710446. Calculemos qué está diciendo Blas:
D(dAlicia,nAlicia)(0) = 021902843 ≡ 0 mod 30970799
D(dAlicia,nAlicia)(07756120) = 775612021902843 ≡ 6210024 mod 30970799
D(dAlicia,nAlicia)(28432390) = 2843239021902843 ≡ 1500201 mod 30970799
D(dAlicia,nAlicia)(23710446) = 2371044621902843 ≡ 7131317 mod 30970799
por tanto m = 0 6210024 1500201 7131317 que es lo mismo que decir m = ES UN ROLLO.
Actividad
Ejercicio 1
Supongamos que sois Blas y que queréis enviar a Alicia el mensaje: m = CAMBIEMOS DE PELICULA. Describid todos los pasos y cálculos que debéis seguir (con la ayuda del applet)
utilizando la clave pública de Alicia: (eAlicia,nAlicia) = (131315,30970799).
Ejercicio 2
Alicia tiene que enviar a Blas el mensaje m = PREFIERO JFK. Explicad todos los cálculos que tiene que hacer y calculad el mensaje
cifrado.
Ejercicio 3
Descifrad lo que ha contestado Blas c = 1 29271900 11058964 6474833.
Ejercicio 4
Buscad dos números primos para generar una clave pública y una privada con el uso
del applet del RSA. Enviad la clave pública al foro del campus virtual. Utilizad las
claves hechas públicas en el foro para enviar algún mensaje corto a algún compañero.
Descifrad los que recibáis. (Indicación: en la dirección http://www.utm.edu/research/primes/lists/small/1000.txt encontraréis listados de números primos, no utilicéis primos que den un producto
superior a 31 000 000).
Applet del RSA
Ejercicio 5
Averiguad quiénes fueron James Ellis, Clifford Cocks y Malcolm Williamson. (Indicación:
utilizad un buscador de Internet.)
Un último comentario sobre la definición del criptosistema RSA es que la función de
cifrado y de descifrado son la misma, la denominada función potencial, con la única
diferencia de sus exponentes:
E(e,n)(m) = me mod n, D(d,n)(m) = md mod n
La seguridad de este método criptográfico se basa en la dificultad de encontrar las
raíces de índice e de un elemento c, es decir, dado c y e, encontrad m tal que:
me ≡ c mod n
1.2.2.Uso real del sistema RSA
Evidentemente, el convenio que hemos adoptado para codificar numéricamente el mensaje
y la longitud acordada para los bloques (una unidad menos que el número de cifras
del módulo) no corresponde con los utilizados en implementaciones reales del RSA.
Entre otras cosas, se tienen que escoger todos estos parámetros de forma que nunca
se cifre el número 0 ni el número 1, ya que para descifrar estos números no es necesaria
la clave privada.
Comentemos que la clave privada se puede obtener a partir de la clave pública si se
conocen los dos números primos p y q, es decir, si se conoce la descomposición factorial de n = p · q. Sin embargo, si no se conoce la descomposición factorial de n = p · q, no se conoce hasta ahora ninguna manera rápida de calcular la clave privada a partir
de la clave pública. Se podría pensar que una descomposición es un cálculo rápido
de hacer, no ya a mano, sino con el uso de ordenadores. Pues, por lo que se sabe hasta
ahora, no lo es cuando los números que se utilizan son grandes (del orden de 200 cifras).
El cálculo de la factorización de un número es, en general, un proceso muy lento del
que se conocen métodos muy sofisticados pero que no permiten hacer una factorización
muy rápida. Sirva como ejemplo que, con los últimos avances matemáticos para factorizar
con la cooperación de muchos ordenadores a la vez, se consiguió en febrero de 1999
factorizar el número n = p · q utilizado en el RSA-140:
n = 2129024631 8258757547 4978820162 7151749780 6703963277 2162782333 8321538194 9984056495
9113665738 5302191831 678310738 7995317230 88956923087 3441936471
como el producto de dos números primos de 70 cifras:
n = p · q = 33987174230284385545301236276138758356339
86495969597423490929302771479 *
62642001874012850961516549482644422
19302037178623509019111660653946049
De todas maneras, a parte de la cooperación de muchos ordenadores para hacer esta
descomposición, se necesitaron un par de meses de cálculo. Siguiendo el dicho "más
vale prevenir que lamentar", se escogen dos números primos en el criptosistema RSA
muy grandes (del orden de 200 cifras) y se mantienen en secreto.
La cuestión de que una función sea unidireccional está relacionada con la potencia
de cálculo de que se disponga. Actualmente, en un RSA con exponentes (claves pública
y privada) calculados con n = p·q, donde los primos son del orden de los del RSA-140, se puede considerar que no son
funciones unidireccionales, ya que, como se ha comentado, este módulo fue descompuesto
en 1999. De todas maneras, el sistema RSA se sigue considerando seguro, ya que simplemente
aumentando el número de dígitos de los primos utilizados, el tiempo necesario para
descomponer aumenta de una manera inalcanzable. Sirva como ejemplo el siguiente, debido
al experto en seguridad Simson Garfinkel:
Si se utilizan para el módulo del RSA dos primos de 65 cifras, descomponer el producto
n = p·q de 130 cifras por medio de un ordenador con procesador Intel Pentium a 100 MHz y
8 MB de RAM podría tardar aproximadamente unos cincuenta años. Si pusiéramos a trabajar
cien millones de ordenadores personales (los vendidos en el año 1995), se tardaría
unos quince segundos. Si triplicamos el número de cifras de los números primos utilizados,
entonces el tiempo necesario se desborda exageradamente. Por ejemplo, en transacciones
bancarias importantes se utilizan números primos de unos 308 dígitos para los que
se necesitaría más de mil años para descifrar la clave (es decir, descomponer el número
n = p·q). Fijémonos en que casi se ha triplicado el número de cifras del módulo y el tiempo
necesario para descomponerlo se ha disparado brutalmente.
2.Firmas digitales
2.1.Introducción
Uno de los principales problemas a los que da solución la criptografía de clave pública
es el problema de la autenticidad. El problema de la autenticidad surge cuando nos planteamos si es cierto que el mensaje
que hemos recibido ha sido enviado por quien dice que lo ha enviado. No hay que olvidar
que en un sistema de clave pública, las claves públicas de cada usuario son de libre
acceso para todo el mundo, por lo que cualquiera puede enviar un mensaje diciendo
que es de otra persona. Se puede dar una solución al problema de la autenticidad por
medio de un criptosistema de clave pública cuando la función de cifrado y de descifrado
verifican:
Ee(Dd(m)) = m
Fijémonos en el orden de la composición de estas dos funciones; en el apartado anterior
sólo necesitábamos que el orden fuera el inverso. Cuando se verifica esta propiedad,
se dice que el sistema de clave pública goza de la propiedad de firma digital. Por ejemplo, las funciones de cifrado y descifrado del RSA verifican esta propiedad,
es decir:
E(e,n)(D(d,n)(m)) = m
Pero veamos por qué decimos que se puede conseguir autenticidad en nuestras comunicaciones
si las funciones de cifrado y descifrado verifican la propiedad de firma digital.
Para conseguir autenticidad en la comunicación procederemos a firmar digitalmente
los mensajes. Una firma digital es parecida a una firma manuscrita, ya que se trata
de un añadido a un escrito para certificar que efectivamente es cierto que el autor
del mensaje es quien dice ser. Una firma manuscrita consiste en un garabato cuyo autor,
se supone, es la única persona que sabe reproducirlo. Como veremos a continuación,
con una firma digital se consigue esta seguridad y alguna otra prestación.
Supongamos que Alicia quiere enviar un mensaje m a Blas, pero de forma que Blas pueda estar seguro de que quien se lo ha enviado es
ella. Supongamos que lo vamos a enviar sin cifrar porque la confidencialidad del contenido
del mensaje no es importante. Alicia procede de la manera siguiente: hace la llamada
firma digital del mensaje m:
s = DdAlicia
(m)
A continuación envía a Blas el mensaje m y su firma, s. Cuando Blas recibe mensaje y firma sólo tiene que utilizar la clave pública de Alicia
para comprobar que m = EeAlicia
(s). Si es cierta esta igualdad, será porque el mensaje lo ha firmado Alicia, ya que
es la única que tiene acceso a esta clave privada. Fijémonos en que una de las ventajas
suplementarias de la firma digital es que cualquier persona puede comprobar la firma
del mensaje, ya que cualquiera puede utilizar la clave pública de Alicia.
Ejemplo
Supongamos que Alicia quiere enviar el mensaje m = SOY ALICIA a Blas. Blas y Alicia han dejado en un directorio de acceso libre sus claves públicas
y han guardado sus claves privadas. Nosotros conocemos todos los valores para simular
los cálculos:
p = 5557, q = 5623, nAlicia = nBlas = p · q = 31247011
eAlicia = 98765, dAlicia = 16746821
eBlas = 335593, dBlas = 2314441
En el criptosistema RSA, cuando se quiere que dos usuarios puedan firmar indistintamente,
entonces deberán compartir el valor del módulo.
Para calcular la firma digital del mensaje, Alicia tiene que escribir su equivalente
numérico en bloques de siete cifras: m = 0211727 0001131 0031001. A continuación cifrará con su clave privada para encontrar
la firma digital:
D(dAlicia nAlicia)(0211727) = 211727 16746821 ≡ 26412105 mod 31247011
D(dAlicia nAlicia)(0001131) = 1131 16746821 ≡ 17882258 mod 31247011
D(dAlicia nAlicia)(0031001) = 31001 16746821 ≡ 22304389 mod 31247011
Por tanto, la firma digital del mensaje m es s = 26412105 17882258 22304389. Alicia enviará a Blas:
(m,s) = (0211727 0001131 0031001, 26412105 17882258 22304389)
Blas efectuará la comprobación m = EeAlicia
(s) para dar por válido el mensaje firmado.
Para proporcionar confidencialidad además de autenticidad, Alicia puede enviar a Blas
la firma digital cifrada para protegerla del resto de usuarios. Es decir, con la clave
pública de Blas calcula la firma digital s = DdAlicia
(m) del mensaje m y, a continuación, lo envía cifrado para que sólo Blas lo pueda entender. Por tanto,
envía c = EeBlas
(s). Cuando Blas reciba c, simplemente lo descifrará para obtener la firma s = DdBlas
(c), y a continuación obtendrá el mensaje con m = EeAlicia
(s).
Con el mecanismo de firma digital no sólo se consigue confidencialidad y autenticidad
en la comunicación, también se consiguen dos prestaciones más: la integridad y el no-repudio. La integridad del mensaje se consigue, ya que si el mensaje se ve
alterado durante el envío, el proceso de verificación alertará de esta modificación.
Además, la firma de un mensaje no permite que el emisor pueda negar su autoría, ya
que es la única persona que puede haberlo firmado. Ésta es la cualidad denominada
de no-repudio de la firma digital.
Otra aplicación de la firma digital es para certificar que una determinada clave pública
de un usuario es de quien dice ser. Este efecto es necesario, ya que se pueden recibir
mensajes en los que se nos informe de la clave privada de un determinado usuario,
pero ¿quién nos asegura que es verdaderamente la clave pública de quien dice que es?
La certificación la hace una autoridad de certificación que puede ser, por ejemplo,
el gestor del directorio de claves públicas. La autoridad de certificación crea los
certificados, que consisten en una copia de la clave privada firmada por la autoridad
de certificación. En programas como PGP, la certificación no la hace una autoridad
de certificación, sino que los propios usuarios se certifican entre ellos, de forma
que cada usuario decide en quién tiene confianza y en quién no. De este modo, las
claves públicas llevan asociadas la lista de las firmas de los usuarios que firman
(es decir, certifican) la clave como correcta.
2.2.Otros criptosistemas de clave pública
Se han propuesto otros sistemas de clave pública, entre los que destacan el criptosistema
ElGamal y el criptosistema basado en curvas elípticas.
El criptosistema RSA basa su seguridad en la dificultad de encontrar la base de una
potencia cuando se conoce el exponente y el resultado de la potencia, es decir, dados
c y e, hay que encontrar m tal que me ≡ c mod n, o lo que sería lo mismo, encontrar la raíz de índice e del elemento c. El criptosistema ElGamal basa su seguridad en la dificultad de encontrar el logaritmo
de un elemento en el conjunto de los enteros modulares, es decir, dados c y m, encontrar e tal que me ≡ c mod n. Los criptosistemas basados en curvas elípticas también tienen su seguridad basada
en la dificultad de cálculo de un logaritmo, pero esta vez el cálculo del logaritmo
se da en un grupo definido geométricamente, en lugar de en el conjunto de los enteros
modulares.
Respecto a la propiedad de firma digital, no todos estos sistemas la verifican, por
lo que se han propuesto variantes de la definición básica de firma digital de un sistema
de clave pública.
3.PGP: un buen ejemplo del uso de clave privada y pública
3.1.PGP: Pretty Good Privacy
Pretty Good Privacy (PGP) es un programa que permite cifrar ficheros y mensajes de
correo electrónico, así como firmarlos digitalmente. Por tanto, este programa proporciona,
en primer lugar, confidencialidad en el almacenamiento de ficheros y en el envío de
mensajes. En segundo lugar, proporciona autenticidad al usar firma digital. Así, también
se controla la integridad del fichero o mensaje, ya que la firma digital depende del
contenido de éstos. De esta forma, se detecta la modificación del mensaje o fichero
durante la transmisión o en el tiempo que ha estado almacenado. Otra de las funcionalidades
que aporta PGP es que el autor del fichero o mensaje de correo electrónico no podrá
negar la autoría del mismo (es la denominada no-repudio).
El PGP fue desarrollado originalmente por Philip R. Zimmermann en 1991; en las últimas
versiones ha colaborado también el MIT (Massachusetts Institute of Technology). Su
nombre se podría traducir por 'privacidad bastante buena' (o 'intimidad').


3.1.1.Bases del método
El proceso básico que realiza el PGP es enviar el mensaje cifrado con un sistema de
clave privada, pero la clave de cifrado se envía protegida con un sistema de clave
pública. Veamos qué haría Alicia para enviar un mensaje a Blas con PGP. En primer
lugar, Alicia envía el mensaje cifrado con el sistema de clave privada IDEA. Este
sistema, que no detallaremos aquí, es muy parecido al DES. Alicia ha elegido un sistema
de clave privada para cifrar el mensaje, dado que es mucho más rápido que un sistema
de clave pública. Para enviar de forma segura a Blas la clave privada con la que se
ha hecho el cifrado con IDEA, se utiliza el sistema de clave pública RSA. Por tanto,
Alicia consultará la clave pública de RSA de Blas y con ésta cifrará la clave de IDEA
que ha utilizado. A continuación enviará el mensaje cifrado acompañado de la clave
IDEA cifrada con RSA. Cuando Blas reciba las dos informaciones, utilizará su clave
privada (que sólo él tiene) para descifrar con qué clave IDEA ha cifrado el mensaje.
Ahora será muy fácil descifrar el mensaje con la clave IDEA utilizada.

Este juego de clave privada y clave pública está ingeniosamente elegido de forma que
el algoritmo que va más rápido se utiliza para cifrar la información que suele ser
más larga, es decir, el mensaje que hay que cifrar. El sistema de clave pública (que
es más lento) se utiliza para enviar de forma protegida la clave secreta con la que
se ha cifrado el mensaje. Esta clave IDEA casi siempre será más corta que el propio
mensaje. Además, el proceso que ideó Zimmermann está diseñado de forma que es transparente
para el usuario, es decir, el usuario no tiene que pensar en ningún momento si le
toca cifrar con IDEA o con RSA, ni tiene que preocuparse de cómo generar los números
primos con los que crear la clave privada y la clave pública de RSA, ya que el programa
se ocupa de todo. Por ejemplo, se necesita generar la clave pública y la privada para
el RSA que sean únicas y que no coincidan con las de otro usuario. Esto se consigue
añadiendo un componente aleatorio que PGP obtiene del teclado y del movimiento del
ratón por parte del usuario.
Como se puede observar, el proceso que realiza PGP no aporta sustancialmente ninguna
idea nueva a los procesos criptográficos descritos hasta ahora. La combinación de
clave pública y clave privada ya había sido descrita por otros investigadores con
anterioridad a Zimmermann. La originalidad de PGP radica en el hecho de diseñar todo
el paquete de programas, de forma que el usuario no se tenga que ocupar de nada cuando
utiliza su programa de correo, además de conseguir que todo el proceso tenga lugar
en un modesto PC.
PGP también trabaja para firmar los mensajes, no sólo para cifrarlos. De esta forma
se obtiene la autenticidad e integridad que hemos comentado anteriormente.
Hemos hecho una descripción a grandes rasgos de los procesos que permite realizar
PGP. En el desarrollo real de PGP se utiliza una serie de técnicas para aligerar los
cálculos. Por ejemplo, en lugar de cifrar el mensaje de correo electrónico o el fichero,
se cifra el comprimido de éstos por medio del método de compresión ZIP. De esta forma, se cifra una cantidad de información menor. Para las firmas digitales
también se utilizan las denominadas funciones de hash, que son unas funciones especiales de utilidad criptográfica que permiten que el
proceso sea más rápido.
3.1.2.Instalación y configuración del PGP
Tratemos ahora el tema de la obtención de PGP, así como su instalación y utilización
en la práctica.
Se tiene que seleccionar el sistema operativo y la versión del programa PGP que más
nos interese (en general, la última). La descarga se hace en un directorio de nuestro
ordenador.
Veamos los pasos de instalación para Windows. Hay que tener en cuenta que la instalación
puede presentar diferencias sobre la explicada a continuación, ya que podemos estar
hablando de versiones diferentes, pero el proceso de instalación será muy similar.
En primer lugar, se hace doble clic sobre el fichero, con lo que se descomprimirá
el programa de instalación en el directorio que se desee. A continuación, se ejecuta
el fichero de instalación setup.exe con el comando Ejecutar del menú Inicio. A partir de este momento, el programa de
instalación dialoga con el usuario para personalizar el programa:

Es conveniente no tener ningún otro programa ejecutándose a la vez. Después aparecen
las advertencias típicas sobre derechos de copyright en un programa de libre acceso. A continuación hay que introducir los datos personales
del usuario:

El programa de instalación propone instalar el programa en la carpeta de programas.
En caso de que no sea el sitio más adecuado para el usuario, se puede elegir otro.

A continuación, el programa de instalación pide qué perfil de programa se quiere instalar.
Lo principal en este menú es tener claro qué programa de correo electrónico se va
a utilizar para así seleccionarlo.

Durante unos instantes, el programa trabaja para instalar PGP:

Para finalizar, hay que indicar al programa de instalación qué adaptador de red se
va a utilizar:

El programa instalador pregunta si se tienen ficheros de claves anteriores que se
quieran aprovechar. Si no es el caso, se contesta que no. Antes de utilizar el programa,
hay que reiniciar el PC.
A partir de ahora, el programa PGP estará siempre presente cuando se arranque Windows.
La presencia de este programa queda reflejada en la barra de tareas por medio de un
icono que representa un candado:

Para activar alguna de las opciones bastará con clicar con el ratón encima de este
icono. Antes de realizar ninguna operación con PGP, se debe proceder a la generación
de claves (pública y secreta). Para ello se debe ejecutar el programa PGPkeys.exe
que se encontrará al hacer clic sobre el candado.

A continuación hay que introducir los datos personales a los que estará asociada la
pareja de claves:

El programa de generación de claves pregunta qué tipo de claves se desea escoger:
de tipo RSA o de tipo Diffie-Hellman/DSS (estas segundas son otro tipo de claves criptográficas).
A continuación, pregunta el tamaño que se desea que tengan las claves. En general,
el menor tamaño se considera para uso Casual y Commercial, mientras que los tamaños mayores son para un uso Military. Si el PC es suficientemente potente, vale la pena conseguir más seguridad con la
clave más grande. Además, el programa de instalación pide que se escoja entre claves
que caduquen dentro de un cierto tiempo (opción recomendada) o que no caduquen nunca:

Se pregunta ahora una frase-contraseña para proteger la clave privada. Se puede observar
la calidad de la frase que se está escribiendo por medio del indicador que figura
en la ventana. A continuación hay que volver a escribirla para confirmarla. Ahora
el programa tardará unos instantes en generar la clave. Vale la pena fijarse en cómo
el programa va informando de cuándo se está generando el primer número primo y el
segundo número primo, con los que obtendrán las claves pública y privada.
Cuando las claves están generadas, el programa pregunta si se quiere colocar en un
servidor público para que cualquiera la pueda utilizar para cifrar los mensajes que
le envíe. Es una operación que se puede dejar para más adelante y que se puede realizar
ejecutando el programa PGPkeys.exe otra vez. A continuación se muestra el fichero
de claves públicas en el que aparte de la nuestra figuran otras que vienen con el
programa (que pueden ser borradas, si se prefiere).

Cuando se intente salir del programa desde el menú File, se ofrecerá la posibilidad de hacer una copia de seguridad del fichero de claves
en un disquete. Esta acción es muy recomendada para tener una copia de las claves
en el caso de que nuestro disco duro tenga algún problema en un futuro. En caso de
pérdida de la clave privada, será imposible descifrar los mensajes.
El último paso en la personalización del programa es una pequeña configuración del
mismo. Para hacerla, bastará con clicar con el ratón el candado para, así, acceder
al menú Options del programa. En este menú hay que tener activada la opción Always Encrypt to default key que aparece dentro de la pestaña General para poder descifrar los propios mensajes. Otra opción que conviene configurar es
la opción Word-wrap clearsigned messages at column situada en la pestaña Email, en la que conviene poner unas unidades menos de la longitud a que su programa de
correo recorta las líneas de los mensajes (valor que se puede consultar en el programa
de correo).
3.1.3.Uso del PGP
La clave secreta está en el fichero secring.skr protegida con la frase-contraseña
que se introdujo. La clave pública, junto con las claves públicas de las personas
con quienes mantenga correspondencia están en el fichero pubring.skr.
Para dar a conocer nuestra clave pública, bastará con enviarla a la persona que nos
interesa o bien dejarla en un servidor de claves (un ordenador de libre acceso que contiene una gran cantidad de claves). De hecho,
cuanta más gente conozca nuestra clave pública, más difícil se hace una suplantación
de nuestra identidad. Para hacer cualquiera de las dos acciones bastará con activar
el programa de PGPKeys que se encuentra en el candado (haciendo clic con el botón
derecho del ratón). Para dar a conocer nuestra clave pública a una persona, simplemente
seleccionaremos nuestra clave del listado y, haciendo clic con el botón derecho del
ratón, le pediremos que la exporte a un fichero. Este fichero, que tiene la forma
nombre.ASC, se adjunta en los mensajes de correo electrónico para que lo utilice la
otra persona para comunicarse de forma segura con nosotros. Si intentamos abrir el
fichero generado, obtendremos un texto con la forma:
-----BEGIN PGP PUBLIC KEY BLOCK----- Version: PGPfreeware 6.5.8 for non-commercial use <http://www.pgp.com> mQENAzo7mSkAAAEIANmXbTR0seOQsgkdSG1M2vWLLrUV0iiuMsgysp3hVGWY5lr4 UhA2sHUVxoliCGmUGtmpq9EXuH66nuqiuIqwh49hw7IB5mPPc472svvA/AXFlBY5 q6uGiaQ3cokqpb1KgrSLqzaAq3DsirIMCjtMqrQMx6Rau5/8hxFps2O5gv+Gk5aH EDc+K1pxtp3uCiTvV4/pjUTlLKrPc76FPMnfQhH5VgvuLmLY2W1EOWwsxlPp9Ex7 DEqFixi+jLg5Syv8SMA1HUaicYqoke9QCMbnxwgVlFQxxH50DI9K3j+3JMgoL6kq Ro/9iGcLXrcD2orYJJM0wH254uVgjVE9kui1fKEABRG0KEdlcm3hbiBT4WV6IGkg TW9yZW5vIDxnZXJtYW5AbWF0LnVwYy5lcz6JARUDBRA6O5kpjVE9kui1fKEBAfE8 CAC2DtBEkdtMQ8CGciy2ets2V6tfYhtIRjw2uyGtrU6BKtd6zozqALME05G2+i/f MVSCu+VMMqj1VbEg375T1/Uo3cdsUOXPoIeUnzzsbzDvgK9nt1B09RK6wyXOBsI4 mfCizNReMCmmP5K0Ldc+bShzqbh4p?DObs//3h+dGSZTsjZhvmJlHxGllBdmrl4i r+GO2C69/vBwcqDb2vgTi0Zq18lUMLCGqiJsv63FQlqPk0DVMOaFn01sdWKObEdD ecdw6z+cXDOCAwCAsmmCnq2lRy+Sye240Xm5FYJjxaO3/m1rzsu07BREMo4s892M /cHuUnoIdy3Iiur1ICOJV7nl =6Med -----END PGP PUBLIC KEY BLOCK-----
Para hacer pública la clave en un servidor, hay que ir al menú Server y elegir un servidor de los que se encuentran en la opción Send to..., o bien dejarla en nuestra página web personal. Para sólo comunicarla a otra persona,
se puede adjuntar el fichero de la clave en un mensaje de correo electrónico o bien
copiarla al final del mensaje de correo electrónico.
Para enviar un correo electrónico a otra persona, necesitamos su clave pública. Ésta
se consigue por medio de una importación de su fichero nombre.ASC desde el menú Keys opción Import. El fichero con la clave pública se puede obtener de un servidor de claves (yendo
al menú Server opción Search). Otra posibilidad es que el receptor nos haya adjuntado el fichero de su clave en
un mensaje anterior. Si nos han enviado la clave como un texto al final de un mensaje,
se deberá grabar en un fichero de texto con nombre y extensión nombre.ASC (en el que
nombre es el nombre del propietario de la clave).
De todas maneras, cuando se recibe la clave pública de una persona que no se conoce,
es conveniente que vaya firmada por alguna persona de nuestra confianza, de modo que
se asegure que pertenece a la persona que dice ser su propietaria. Los firmantes de
una clave recibida se pueden consultar haciendo clic el símbolo "+" que aparece a
la izquierda del nombre de la clave en el programa PGPKeys. Si queremos firmar una
clave que tenemos almacenada, deberemos seleccionar el nombre del propietario de la
clave y accionar la opción Sign... con el botón derecho. Con esta acción estamos indicando que la clave que tenemos
almacenada es propiedad de la persona que dice que es el propietario. Cuando verificamos
la autoría de un mensaje firmado digitalmente que hemos recibido, obtendremos un mensaje
de alerta (Invalid Key) si la autoría se comprueba con una clave que no ha sido firmada por nosotros.
Para firmar un mensaje, simplemente se selecciona el texto del mensaje escrito y se
copia en el portapapeles (es decir, se hace Ctrl+c). A continuación, se hace clic
sobre la opción Sign dentro de Clipboard, que se nos ofrece al activar el candado. Haciendo un Paste (Ctrl+v) obtendremos el mensaje con su firma digital a continuación. Un ejemplo de
mensaje firmado es el siguiente:
-----BEGIN PGP SIGNED MESSAGE----- Hola Pol, Como puedes comprobar, estoy utilizando por primera vez el firmado digital de un mensaje. Es una operación muy simple que te asegura que soy realmente yo quien te está escribiendo. Fíjate que sólo he firmado el mensaje, por lo que la firma digital te asegurará la autoría del mensaje y la integridad de él, además de no poder negar que he sido la autora del mensaje. Lo que no consigo con esta opción es la confidencialidad... pero no me importa. Un abrazo, Ana Gimaré
-----BEGIN PGP SIGNATURE----- Version: PGPfreeware 6.5.8 for non-commercial use <http://www.pgp.com> iQEVAwUBOjyIyI1RPZLotXyhAQFw9AgA2J+JBIqNgVYsR+IUUT4b98ekLIxmceaf 2hS30Xsu9vk9X8F7WL5o4ZrFuLIL6xnIVYn1Y0wz9/pM2bu7vM1VRO9+PT3a4V8I 4Joqy9GMHv6/GGs1V7fGEZ6zCEkSp1EPDz16jeVa/L/5nbsSxxc6aKhuS7q8Mxko vTMZZSAjp7P8Sw4map5wvtgFtPvdd4kY0cq53mTO4/ZBMMgseH045sLmf+1/5KOk VRnHTXzxvNxJJro8USeBc6AuWkszYNTfJnsUkCPOcumShU9tlS29vZENEOYzIae0 xIQEtSMFTh5dvcXrumLNwZ5P6+dsNaXpi2ZjqevSMPia1VEMko6H8w== =Cmwj -----END PGP SIGNATURE-----
Conviene tener en cuenta una firma en un mensaje no cifrado nos aporta autenticidad,
integridad y no-repudio, pero no confidencialidad.
Para hacer cualquier otro tipo de acción (cifrado o cifrado más firma, etc.) habrá
que escoger la opción correspondiente del mismo menú anterior. Por ejemplo, si ciframos
y firmamos, obtendríamos un texto que presentara la siguiente forma:
-----BEGIN PGP MESSAGE----- Version: PGPfreeware 6.5.8 for non-commercial use <http://www.pgp.com> hQEMA41RPZLotXyhAQf/QciijnMyf5Fgza+u25FhfPH/wsu+kgpAghFcyPJh8y+c WwZ37a3oTHa3q3/Z90QMMjifqAh+Ehcf/XU2+pknpfqB4WkTnZloGvFJq7080y1Z 6hIhpQ+Zzk3RtKDddWuY0cY++KqJIxNv4Ry2McrIK26hxs3eQckh+yZHfa36gBk+ nuTEi637QwllgFfLSVOlM9GsBQ019UiSETdzdW7usGcCO4vAtpQORZHXJnj/h6r+ ZBbbrgFxyAYcR6HKSDhfQP1d+c0VkFasjLEm1F8pzSBX0Nv4b5SPbi3aMXcUVuIH e7FEt6wvqroF2obGgxq4RpF0YY3q+KWUfWIUsfliwYUCDgOSv+EnQvCgoBAH/1q+ BUJc9WGw3toxtJ+d6Z5jpy5YEgl82OfCpNg4BHhraQTbS5U/afNShqeva4p1D1Dj N2bPkTpDXBnCSM16JFzAv+vmzkXQ/Eb4O9MD7IeFdmgJkeI/JffQxQfaQes5osTl yHhnxQD+feiQQmNcYBRyVY8f/poCCGR1QoAapoF/vsrTu1UfjiuWANb96l3a5ZbV xLYq1QeaGH4QskdPMAtFqmgs/+J/nQ2uVw3PfHNYY+NVoLFeepr24o1VFBIhqQoC TGHo+R+C+Q6aEDuXM9gU2mhgyr+XSQaAnjhzFYiJFkLTqZlwb5E1qLcV2L4rvaPa WGNh4yxDipUTPj9bbYEIAIk/Jasbb6SMe8MPwUppnVKVjKDtZtP+TOPuM/N9ghGK dqaQEQrqStBPZaVpavSqrJzFqK4G574K4FLey24llsv48lZf6zXpigJ4lImoQpRU yHwVoQd8hk86ByX1Kg3L9ygD27DG1Qaghd1O4thidELLqGDH6mLkv+QMICKHZ3Gc p5njTUpgvDdxGChJKi9hHqKoQtOt2J3fFjYCKT8XtwWvFGC7OcbYzCTaIcyhndG3 G5cmTlhksDnabvo5i7AWEt7LyZzC0FdjxzF4mC3UoncB1yKYJRustxQpa2bqnPA4 IXcgLYZEZpcB+a0s0nXbac+/wnicx4f6of9Tpl8IM2ilAqQMlWUpGm8n5qLMbs5A FqyzwNUnGm0DTrY/k94pmedUnehHoXb/AmbgCDtKUw8yZcWuL7SndtGJFvXVBUjP 2xq1k+1h0OxJh362MVSORLhEd5FJjft9IjVmb+9p7dlDIzZmcnjbGljzjRM1+v5I B3nFDqbJ/l0kEZkBHISCOkFoVsSt+iQ3BqRxfSh57jrLh0iXcy+TvPl9TV8l0Gaa iaRwjUR0ze+43jWfi/jjzVlkXtFK7KaAyCZZSOAFanyRs3y2bDPyrUwIxLPdTl8P ubNKplfjEX2lb6MvmbfRqKTj/nZOkm/H1WvSh/CWnjdD7XmtzJXTw8So/nzg2219 tnKgf4l7mCApIO0Rzd901vaBgBWAl5ovREhBs2JlWT7v0EPYJ8S8MF3vjES30y0q Qym8xDVjRtESh1fsX/tGCIWJ1OWnWWv9IFJ1EZxFBokB3z/1+znRHOTMColcPt43 d6C+XbKGVR0e/ycRWTpKv+2IYdp+mFjyY23E1qEr+zVl3uW4F5K7sk6wgvHl5gIo SyOZJPe+5fsbsVM5RFKzULsgmrB0kDILqEj+mL6/LpvKBfNYhINM69p6h4P55kfS eVYlWj4fSWiu+bYWELBMNxwvjtEJCyAUZjMi75fD9emRSgLxu3zoIjWOu9fa+QgQ 9njKfhPhx+KlUr6BeNE7nAfQWjSMyrEW0w84sg59iQBR2356F+GnqMMAeSc/hu/S OAWuT2Ts6AEJ8wqyaC+by549/8mR+opW6XuBLop2C/YX/JLBkpZklTxyu11zmJiS Nhd3XM5hmJC2sUtpmFCGdz4jrwFW1xGbU9v4B+Pz36ojHo0HLXCpdQbeIlUwmZZz tBERX0UnF4jQ4m65lgDlkeQu9Fs+NP3akYyNcKjycPnc0R4yB4QA =VJax -----END PGP MESSAGE-----
Tenemos el mismo comentario al respecto del descifrado y verificación de firma digital.
Hay otras maneras de aligerar el proceso de firma y cifrado. Una de éstas es el uso
de la opción Current Window en lugar de la opción Clipboard (esta opción no siempre da los resultados esperados, en cualquier caso hay que tener
cuidado de que la ventana del mensaje esté en primer plano). En el caso de que el
programa de correo que utilicemos soporte PGP por medio de módulos, todo el proceso
anteriormente descrito es mucho más fácil. Bastará con utilizar los menús nuevos que
aparecerán para accionar las utilidades PGP. Esta facilidad se podrá utilizar siempre
que se haya indicado durante el proceso de instalación qué programa de correo se utiliza
habitualmente.
Además, el programa PGP permite aplicar el cifrado y la firma digital a cualquier
tipo de fichero creado con cualquier programa (e, incluso, a una carpeta de ficheros).
Esta opción se puede efectuar siempre que tengamos seleccionado un fichero (por ejemplo,
desde el Explorador). Cuando hagamos clic con el botón derecho del ratón, podremos
elegir la opción PGP y, a partir de aquí, seguir los mismos pasos que se han comentado
anteriormente.

Si lo que se quiere es enviar un fichero de forma segura, íntegra, etc., tendremos
que hacerlo con la clave pública del destinatario; pero si lo queremos hacer sobre
un determinado fichero de nuestro ordenador, entonces deberemos utilizar nuestra propia
clave pública.
Actividad
Ejercicio 1
Firmad sin cifrar y firmad cifrando distintos textos desde un procesador de texto
cualquiera. Cifrad un fichero binario y tratad de abrirlo después.
Ejercicio 2
Si tenéis un programa de correo que soporte los menús PGP, firmad sin cifrar y firmad
cifrando distintos mensajes.
Ejercicio 3
Dad a conocer en el campus vuestra clave pública para establecer comunicaciones de
todo tipo con PGP.
Ejercicio 4
Averiguad en qué consisten las opciones Conventional Encryption, Self Decrypting Archive y Wipe original.
Ejercicio 5
Averiguad en qué consiste el programa GnuPG (o, simplemente, GPG) y cuáles son sus
principales diferencias con PGP. (Indicación: haced una búsqueda en Internet o en
alguna de las revistas digitales de criptografía.)
Una última opción que comentaremos es la opción Wipe. Esta opción permite el borrado seguro de ficheros, ya que el borrado habitual de
ficheros es reversible por diferentes aplicaciones.
Ejercicios de autoevaluación
1. La criptografía de clave pública nace como un intento de mejorar...
a) la velocidad de cifrado de los sistemas de clave privada más usados.
a) la velocidad de cifrado de los sistemas de clave privada más usados.
b) la gestión de claves de los sistemas de clave privada.
c) para sustituir el obsoleto sistema RSA.
2. En un sistema de clave pública...
a) se deben poner de acuerdo el receptor y el emisor en el valor de la clave que hay que utilizar.
a) se deben poner de acuerdo el receptor y el emisor en el valor de la clave que hay que utilizar.
b) se deben mantener en secreto el directorio de claves públicas.
c) cada usuario tiene que dar a conocer a todo el mundo su clave pública.
3. En los sistemas de clave pública, además de confidencialidad se puede obtener...
a) autenticidad, integridad y no-repudio.
a) autenticidad, integridad y no-repudio.
b) integridad y no-repudio, pero no se puede obtener autenticidad.
c) repudio, pero no autenticidad ni integridad.
4. Para que Alicia pueda enviar un mensaje a Blas por medio de un sistema de clave pública,
necesita conocer...
a) la clave pública de Blas.
a) la clave pública de Blas.
b) la clave privada de Alicia.
c) la clave privada de Blas.
5. La función de cifrado y descifrado en un sistema de clave pública para obtener confidencialidad
deben verificar...
a) Ee(Dd(m)) = m.
a) Ee(Dd(m)) = m.
b) Ee(Ee(m)) = m.
c) Dd(Ee(m)) = m.
6. Una función unidireccional para cifrar mensajes es...
a) una función con la que es difícil calcular sus imágenes (mensajes cifrados).
a) una función con la que es difícil calcular sus imágenes (mensajes cifrados).
b) una función con la que es fácil calcular sus imágenes (mensajes cifrados) y, a
su
vez, dado un mensaje cifrado, es muy difícil calcular el mensaje original sin cifrar.
c) una función con la que es difícil calcular sus imágenes (mensajes cifrados), pero
con la que, dado un mensaje cifrado, es muy fácil calcular el mensaje original sin
cifrar.
7. Las siglas RSA significan...
a) Rivest, Shamir y Adleman, que son los creadores de este sistema.
a) Rivest, Shamir y Adleman, que son los creadores de este sistema.
b) Royal Society of Algebra, sociedad matemática que avala el funcionamiento del sistema
RSA.
c) Rodríguez & Sáez Asociados, famosa firma comercializadora de este sistema.
8. Los cálculos en la función de cifrado y la de descifrado del RSA son básicamente...
a) la primera una potencia y la segunda no.
a) la primera una potencia y la segunda no.
b) la segunda una potencia y la primera no.
c) potencias.
9. El módulo utilizado en un sistema RSA, que es producto de dos números primos, es...
a) imposible de descomponer debido al tamaño de los números utilizados.
a) imposible de descomponer debido al tamaño de los números utilizados.
b) fácil de descomponer, justamente por ser producto de dos números primos.
c) muy difícil de descomponer debido al tamaño de los números utilizados.
10. Para cifrar un mensaje por medio del sistema RSA, se ha hecho el cálculo: 4802131 = 2959 mod 6319.
a) 4802 puede ser la clave privada y 2959, la clave pública.
a) 4802 puede ser la clave privada y 2959, la clave pública.
b) 2959 puede ser la clave privada y 6319, el mensaje cifrado.
c) 4802 y 2959 son el mensaje y el mensaje cifrado.
11. El no-repudio consiste en que...
a) el emisor del mensaje no puede negar su autoría.
a) el emisor del mensaje no puede negar su autoría.
b) el mensaje no se ha visto alterado durante el envío.
c) únicamente el receptor podrá descifrar el mensaje.
12. Garantizar la autenticidad de un mensaje consiste en que...
a) sólo quien debe recibir el mensaje pueda leerlo.
a) sólo quien debe recibir el mensaje pueda leerlo.
b) quien dice haber escrito un mensaje sea ciertamente su autor.
c) el mensaje no ha sido modificado durante la transmisión.
13. El PGP es un sistema...
a) de clave pública.
a) de clave pública.
b) de clave privada.
c) combinado de clave pública y clave privada.
14. En el sistema PGP...
a) se utiliza el sistema de clave privada IDEA con una clave enviada de forma segura con el sistema de clave pública RSA.
a) se utiliza el sistema de clave privada IDEA con una clave enviada de forma segura con el sistema de clave pública RSA.
b) se utiliza el sistema de clave pública IDEA con una clave comprimida con ZIP.
c) se utiliza el sistema de clave pública DES con una clave enviada de forma segura
con
el sistema de clave privada IDEA.
Solucionario
1. a) Incorrecto. En general, los sistemas de clave privada son más rápidos.b) Correcto.
c) Incorrecto. El sistema RSA es un sistema de clave pública.
2. a) Incorrecto. No. Esto sería un sistema de clave privada.
b) Incorrecto. Justamente, las claves públicas tienen que ser públicas.
c) Correcto.
3. a) Correcto.
b) Incorrecto. La autenticidad se obtiene por medio de firmas digitales.
c) Incorrecto. El no-repudio, la autenticidad y la integridad se obtienen por medio de firmas digitales.
4. a) Correcto.
b) Incorrecto. No es necesario si sólo se quiere enviar un mensaje sin firmar.
c) Incorrecto. La clave privada del receptor no es necesaria en ningún caso.
5. a) Incorrecto. El orden en que se están aplicando las dos funciones no es el que se necesita. Ésta es la condición adicional que se necesita para la firma digital.
b) Incorrecto. Tiene que haber una relación entre las dos funciones.
c) Correcto.
6. a) Incorrecto. Repasad el concepto de función unidireccional.
b) Correcto.
c) Incorrecto. Las dificultades son precisamente al revés.
7. a) Correcto.
b) Incorrecto. Son las iniciales de los creadores.
c) Incorrecto. Son las iniciales de los creadores.
8. a) Incorrecto.
b) Incorrecto.
c) Correcto.
9. a) Incorrecto. Teóricamente, siempre es posible hacer una descomposición factorial.
b) Incorrecto. Si fuera fácil de descomponer, romperíamos el sistema RSA.
c) Correcto.
10. a) Incorrecto. Las claves son los exponentes, tanto en la función de cifrado como en la función de descifrado.
b) Incorrecto. Las claves son los exponentes, tanto en la función de cifrado como en la función de descifrado.
c) Correcto.
11. a) Correcto.
b) Incorrecto. Ésta es la definición de integridad.
c) Incorrecto. Ésta es la definición de confidencialidad.
12. a) Incorrecto. Ésta es la definición de confidencialidad.
b) Correcto.
c) Incorrecto. Ésta es la definición de integridad.
13. a) Incorrecto. No sólo.
b) Incorrecto. No sólo.
c) Correcto.
14. a) Correcto.
b) Incorrecto. IDEA no es un sistema de clave pública.
c) Incorrecto. No se utiliza el sistema DES.