Por Paul Fahn
(traducción por
Lic. J. Andrés Hall
y Cynthia R. Neme)
Lic. J. Andrés Hall
y Cynthia R. Neme)
RSA Laboratories
100 Marine Parkway
Redwood City, CA 94065
100 Marine Parkway
Redwood City, CA 94065
Copyright (c) 1993 de RSA Laboratories,
una división de RSA Data Security, Inc.
Quedan reservados todos los derechos.
una división de RSA Data Security, Inc.
Quedan reservados todos los derechos.
Versión 2.0, 2f
Ultima revisión:
20 de septiembre de 1993.
Traducción:
15 de enero de 1996
Ultima revisión:
20 de septiembre de 1993.
Traducción:
15 de enero de 1996
CONTENIDO
1.1 ¿Qué es el encriptado?
1.2 ¿Qué es la autenticación? ¿Qué es una firma digital?
1.3 ¿Qué es la criptografía con clave pública?
1.4 ¿Cuales son las ventajas y desventajas de la criptografía con clave pública sobre la criptografía con clave privada?
1.5 ¿Se puede patentar la criptografía en los Estados Unidos?
1.6 ¿Se puede exportar la criptografía desde los Estados Unidos?
2. RSA
2.1 ¿Qué es el sistema RSA?
2.2 ¿Porqué es mejor utilizar el sistema RSA que el DES?
2.3 ¿A qué velocidad opera el sistema RSA?
2.4 ¿Cuánto más largos son los mensajes si se utiliza el sistema RSA?
2.5 ¿Qué se necesita para quebrar el sistema RSA?
2.6 ¿Son necesarios números primos fuertes en el sistema RSA?
2.7 ¿Qué tamaño debe tener el módulo utilizado en el sistema RSA?
2.8 ¿Qué tamaño deben tener los números primos?
2.9 ¿Cómo se hace para encontrar números al azar para las claves?
2.10 ¿Qué ocurre si los usuarios del sistema RSA se quedan sin números primos suficientes?
2.11 ¿Cómo se sabe si un número es primo?
2.12 ¿Cómo se utiliza el RSA en la práctica para el encriptado?
2.13 ¿Cómo se utiliza el RSA en la práctica para la autenticación?
2.14 ¿Sirve el sistema RSA para detectar documentos alterados y errores de transmisión?
2.15 ¿Cuáles son las alternativas para el sistema RSA?
2.16 ¿Se utiliza hoy en día el sistema RSA?
2.17 ¿Se considera hoy en día al sistema RSA un estándar oficial?
2.18 ¿Es el sistema RSA un estándar de facto? ¿Porqué es importante un estándar de facto?
2.19 ¿Ha sido patentado el sistema RSA?
2.20 ¿Se puede exportar el RSA desde los Estados Unidos?
3. ADMINISTRACIÓN DE CLAVES
3.1 ¿Qué problema de administración de claves presenta la criptografía con clave pública?
3.2 ¿Quién necesita una clave?
3.3 ¿Cómo se obtiene un par de claves?
3.4 ¿Es aconsejable que varios usuarios compartan una clave pública o privada?
3.5 ¿En qué consisten los certificados?
3.6 ¿Cómo se utilizan los certificados?
3.7 ¿Quién emite un certificado y cómo?
3.8 ¿Qué es UFC, o, cómo almacenan sus claves privadas las autoridades certificantes?
3.9 ¿Son susceptibles de ataque las autoridades certificantes?
3.10 ¿Qué ocurre si la clave de una autoridad certificante se pierde o se encuentra comprometida?
3.11 ¿En qué consisten las Listas de Revocación de Certificados (LRCs)?
3.12 ¿Qué ocurre cuando vence una clave?
3.13 ¿Qué ocurre si pierdo mi clave privada?
3.14 ¿Qué ocurre si mi clave privada se encuentra comprometida?
3.15 ¿Cómo debo guardar mi clave privada?
3.16 ¿Cómo encuentro la clave pública de otro usuario?
3.17 ¿Cómo se mantiene la validez de las firmas después del vencimiento de sus respectivas claves ¿o ¿Cómo se verifica una firma después de veinte años?
3.18 ¿En qué consiste un servicio de sellado digital de fecha y hora?
4. EL FACTOREO Y EL LOGARITMO DISCRETO
4.1 ¿En qué consiste un función unidireccional?
4.2 ¿Cuál es la importancia de la funciones unidireccionales en criptografía?
4.3 ¿En que consiste el problema de factoreo?
4.4 ¿Qué importancia tiene el factoreo en los sistemas criptográficos?
4.5 ¿Se ha simplificado el factoreo con el paso del tiempo?
4.6 ¿Cuáles son los mejores métodos de factoreo que se utilizan en la actualidad?
4.7 ¿Cuáles son las perspectivas para los avances teóricos del factoreo?
4.8 ¿En qué consiste el Desafío de Factoreo RSA?
4.9 ¿En qué consiste el problema del logaritmo discreto?
4.10 ¿Qué es más fácil: el factoreo o el logaritmo discreto?
5. DES
5.1 ¿En qué consiste el DES?
5.2 ¿Ha sido quebrado el sistema DES?
5.3 ¿Cómo se utiliza el sistema DES en forma segura?
5.4 ¿Se puede exportar el sistema DES desde los Estados Unidos?
5.5 ¿Cuáles son las alternativas para el DES?
5.6 ¿DES es un grupo?
6. CAPSTONE, CLIPPER Y DSS
6.1 ¿En qué consiste Capstone?
6.2 ¿En qué consiste Clipper?
6.3 ¿Cómo funciona el chip de Clipper?
6.4 ¿Quiénes son las entidades autorizadas para el depósito de claves?
6.5 ¿Qué es Skipjack?
6.6 ¿Es Clipper controvertido?
6.7 ¿En qué situación se encuentra Clipper actualmente?
6.8 ¿En qué consiste DSS?
6.9 ¿Es seguro el sistema DSS?
6.10 ¿Se encuentra patentado el uso de DSS?
6.11 ¿En qué categoría se encuentra actualmente DSS?
7. NIST Y NSA.
7.1 ¿Qué es NIST?
7.2 ¿Qué papel desempeña NIST en criptografía?
7.3 ¿Qué significa NSA?
7.4 ¿Qué papel desempeña la NSA en la criptografía comercial?
8. PREGUNTAS GENERALES
8.1 ¿Qué categoría legal tienen los documentos firmados digitalmente?
8.2 ¿En qué consiste una función de "hash"? ¿Qué es un digesto de mensaje ("message digest")?
8.3 ¿Qué significa MD2, MD4 y MD5?
8.4 ¿Qué significa SHS?
8.5 ¿En qué consiste Kerberos?
8.6 ¿En qué consisten RC2 y RC4?
8.7 ¿En qué consiste PEM?
8.8 ¿En qué consiste RIPEM?
8.9 ¿En qué consiste PKCS?
8.10 ¿En qué consiste RSAREF?
9. AGRADECIMIENTOS
10. BIBLIOGRAFIA
11. RSA LABORATORIES, INC.
- INTRODUCCION
- ¿Qué es el encriptado?
- ¿Qué es la autenticación? ¿Qué es una firma digital?
- ¿Qué es la criptografía con clave pública?
- ¿Cuales son las ventajas y desventajas de la criptografía con clave pública sobre la criptografía con clave privada?
- ¿Se puede patentar la criptografía en los Estados Unidos?
- ¿Se puede exportar la criptografía desde los Estados Unidos?
- RSA
- ¿Qué es el sistema RSA?
- ¿Porqué es mejor utilizar el sistema RSA que el DES?
- ¿A qué velocidad opera el sistema RSA?
- ¿Cuánto más largos son los mensajes si se utiliza el sistema RSA?
- ¿Qué se necesita para quebrar el sistema RSA?
- ¿Son necesarios números primos fuertes en el sistema RSA?
- ¿Qué tamaño debe tener el módulo utilizado en el sistema RSA?
- ¿Qué tamaño deben tener los números primos?
- ¿Cómo se hace para encontrar números al azar para las claves?
- ¿Qué ocurre si los usuarios del sistema RSA se quedan sin números primos suficientes?
- ¿Cómo se sabe si un número es primo?
- ¿Cómo se utiliza el RSA en la práctica para el encriptado?
- ¿Cómo se utiliza el RSA en la práctica para la autenticación?
- ¿Sirve el sistema RSA para detectar documentos alterados y errores de transmisión?
- ¿Cuáles son las alternativas para el sistema RSA?
- ¿Se utiliza hoy en día el sistema RSA?
- ¿Se considera hoy en día al sistema RSA un estándar oficial?
- ¿Es el sistema RSA un estándar de facto? ¿Porqué es importante un estándar de facto?
- ¿Ha sido patentado el sistema RSA?
- ¿Se puede exportar el RSA desde los Estados Unidos?
- ADMINISTRACIÓN DE CLAVES
- ¿Qué problema de administración de claves presenta la criptografía con clave pública?
- ¿Quién necesita una clave?
- ¿Cómo se obtiene un par de claves?
- ¿Es aconsejable que varios usuarios compartan una clave pública o privada?
- ¿En qué consisten los certificados?
- ¿Cómo se utilizan los certificados?
- ¿Quién emite un certificado y cómo?
- ¿Qué es UFC, o, cómo almacenan sus claves privadas las autoridades certificantes?
- ¿Son susceptibles de ataque las autoridades certificantes?
- ¿Qué ocurre si la clave de una autoridad certificante se pierde o se encuentra comprometida?
- ¿En qué consisten las Listas de Revocación de Certificados (LRCs)?
- ¿Qué ocurre cuando vence una clave?
- ¿Qué ocurre si pierdo mi clave privada?
- ¿Qué ocurre si mi clave privada se encuentra comprometida?
- ¿Cómo debo guardar mi clave privada?
- ¿Cómo encuentro la clave pública de otro usuario?
- ¿Cómo se mantiene la validez de las firmas después del vencimiento de sus respectivas claves ¿o ¿Cómo se verifica una firma después de veinte años?
- ¿En qué consiste un servicio de sellado digital de fecha y hora?
- EL FACTOREO Y EL LOGARITMO DISCRETO
- ¿En qué consiste un función unidireccional?
- ¿Cuál es la importancia de la funciones unidireccionales en criptografía?
- ¿En que consiste el problema de factoreo?
- ¿Qué importancia tiene el factoreo en los sistemas criptográficos?
- ¿Se ha simplificado el factoreo con el paso del tiempo?
- ¿Cuáles son los mejores métodos de factoreo que se utilizan en la actualidad?
- ¿Cuáles son las perspectivas para los avances teóricos del factoreo?
- ¿En qué consiste el Desafío de Factoreo RSA?
- ¿En qué consiste el problema del logaritmo discreto?
- ¿Qué es más fácil: el factoreo o el logaritmo discreto?
- DES
- ¿En qué consiste el DES?
- ¿Ha sido quebrado el sistema DES?
- ¿Cómo se utiliza el sistema DES en forma segura?
- ¿Se puede exportar el sistema DES desde los Estados Unidos?
- ¿Cuáles son las alternativas para el DES?
- ¿DES es un grupo?
- CAPSTONE, CLIPPER Y DSS
- ¿En qué consiste Capstone?
- ¿En qué consiste Clipper?
- ¿Cómo funciona el chip de Clipper?
- ¿Quiénes son las entidades autorizadas para el depósito de claves?
- ¿Qué es Skipjack?
- ¿Es Clipper controvertido?
- ¿En qué situación se encuentra Clipper actualmente?
- ¿En qué consiste DSS?
- ¿Es seguro el sistema DSS?
- ¿Se encuentra patentado el uso de DSS?
- ¿En qué categoría se encuentra actualmente DSS?
- NIST Y NSA.
- ¿Qué es NIST?
- ¿Qué papel desempeña NIST en criptografía?
- ¿Qué significa NSA?
- ¿Qué papel desempeña la NSA en la criptografía comercial?
- PREGUNTAS GENERALES
- ¿Qué categoría legal tienen los documentos firmados digitalmente?
- ¿En qué consiste una función de "hash"? ¿Qué es un digesto de mensaje ("message digest")?
- ¿Qué significa MD2, MD4 y MD5?
- ¿Qué significa SHS?
- ¿En qué consiste Kerberos?
- ¿En qué consisten RC2 y RC4?
- ¿En qué consiste PEM?
- ¿En qué consiste RIPEM?
- ¿En qué consiste PKCS?
- ¿En qué consiste RSAREF?
- AGRADECIMIENTOS
- BIBLIOGRAFIA 1. American National Standards Institute. Working Draft: American National Standard X9.30-199X: Public Key Cryptography Using Irreversible Algorithms for the Financial Services Industry: Part 1: The Digital Signature Algorithm (DSA). American Bankers Association, Washington, D.C., March 4, 1993.
- RSA LABORATORIES, INC.
El encriptado es la transformación de
datos en signos ilegibles para quien no disponga de la clave secreta
para desencriptarlos. Su propósito consiste en asegurarle al usuario
privacidad, ocultando la información de aquellos a quienes no está
dirigida, incluso de aquellos que tienen acceso a la información
encriptada. Por ejemplo, se puede encriptar información en un disco
rígido para evitar que ojos no autorizados puedan leerla.
En una implementación multi-usuario el encriptado
otorga seguridad a las comunicaciones que se producen a través de un
medio inseguro. Un pantallazo general sería el siguiente: Alicia
quiere enviar un mensaje a Juan, pero quiere que solamente él lo lea.
Alicia encripta el mensaje, llamado texto plano, con una clave de
encriptado. El texto encriptado, llamado texto cifrado, llega a Juan.
Juan desencripta el texto cifrado con una clave de desencriptado y lee
el mensaje. Carlos, un atacante, podría tratar de obtener la clave
secreta o de recuperar el texto plano sin utilizar la clave secreta. En
un sistema de encriptado de textos seguro, el texto plano no se puede
obtener desde el cifrado a menos que se utilice la clave de
desencriptado. En un sistema criptográfico de encriptado simétrico, una
sola clave sirve tanto para el encriptado como para el desencriptado.
La criptografía tiene ya milenios de existencia. Ver
Kahn (27) si desea una buena historia de la criptografía, lea a Rivest
(69) y Brassard (10) para una introducción a la criptografía moderna.
La autenticación digital es un proceso
por el cual el receptor de un mensaje digital puede determinar la
identidad del que lo envía y/o la integridad del mensaje. Los
protocolos de autenticación se basan en sistemas de encriptado
convencionales con clave secreta (como en el caso de DES) o con clave
pública (como en el caso del sistema RSA), la autenticación en los
sistemas con clave pública utiliza firmas digitales.
En el presente documento, la autenticación se
referirá generalmente al uso de firmas digitales, cuya función respecto
de los documentos digitales es similar a la de la firma de puño y letra
en los documentos impresos: la firma es el sello irrefutable que
permite atribuir a una persona algo escrito o su conformidad en un
documento. El receptor, o un tercero, pueden verificar que el documento
esté firmado, sin lugar a dudas, por la persona cuya firma aparece en
el documento y que éste no haya sufrido alteración alguna. El sistema
de firma digital consta de dos partes: un método que haga imposible la
alteración de la firma y otro que permita verificar que la firma
pertenece efectivamente al firmante. La firma digital de seguridad no
se puede rechazar, es decir, el que firma un documento no podrá alegar
más tarde que la firma fue falsificada.
A diferencia del encriptado, las firmas digitales son
un invento reciente cuya necesidad surgió con la expansión de las
comunicaciones digitales.
La criptografía tradicional se basa en
el concepto de que tanto el que envía el mensaje como el que lo recibe
conocen y utilizan la misma clave secreta. El que envía el mensaje
utiliza una clave secreta para encriptarlo y el que lo recibe utiliza la
misma clave para desencriptarlo. Este método se conoce como
criptografía con clave secreta. El principal problema consiste en
conseguir que ambas partes conozcan la misma clave sin que ningún
tercero se entere. Si se encuentran geográficamente alejados, deberán
confiar en un correo privado, sistema telefónico o cualquier otro método
de transmisión para que la clave se mantenga en secreto. Si la clave
es interceptada, quien la conozca podrá luego utilizarla para leer todos
los mensajes encriptados. La producción, transmisión y almacenamiento
de las claves se denomina administración de claves, todos los sistemas
criptográficos deben lidiar con la administración de claves. La
criptografía con clave secreta ha tenido a menudo dificultades para
brindar la seguridad necesaria en este aspecto.
La criptografía con clave pública fue inventada por
Whitfield Diffie y Martin Hellman (29) en 1976 con el propósito de
resolver el problema de la administración de claves. En el nuevo
sistema, cada persona obtiene un par de claves, llamadas clave pública y
clave privada. La clave pública de cada persona se publica y la
privada se mantiene en secreto. La necesidad de un remitente y un
receptor de compartir la misma clave queda eliminada: las
comunicaciones solo necesitan de la clave pública y entonces la clave
privada no se transmite ni se comparte. Ya no es necesario confiar en
los canales de comunicación, corriendo el riesgo de que alguien esté
escuchando en la línea telefónica o de que se viole el secreto de la
clave privada. Cualquier persona puede enviar un mensaje confidencial
con solo utilizar la clave pública, pero el mensaje solo puede
desencriptarse con la clave privada que posee solamente el receptor.
Más aún, la criptografía con clave pública puede utilizarse tanto para
la autenticación (firmas digitales) como para mantener la privacidad
(encriptado).
El encriptado funciona de la siguiente manera:
cuando Alicia le quiere enviar un mensaje a Juan, obtiene la clave
pública de Juan en un directorio, la utiliza para encriptar el mensaje y
lo envía. Cuando Juan lo recibe, utiliza su clave privada para
desencriptarlo y leerlo. Nadie escucha ni puede desencriptar el
mensaje. Juan recibe mensajes que sólo él puede desencriptar. Demás
está decir que es imprescindible que la clave privada no pueda deducirse
de la clave pública.
El autenticado funciona de la siguiente manera:
Alicia firma un mensaje y procesa tanto su clave privada como el mensaje
mismo, el producto se denomina firma digital y se adjunta al mensaje en
el momento de enviarlo. Juan verifica la firma mediante otro proceso
que involucra al mensaje, la firma y la clave pública de Alicia. Si los
resultados mantienen una simple relación matemática, la firma se
verifica como verdadera, de otro modo, la firma podría ser fraudulenta o
el mensaje podría estar alterado y por lo tanto quedaría descartado.
Una buena reseña histórica de la criptografía de clave pública está dada por Diffie (27), que es uno de sus inventores.
La ventaja principal de la clave
pública es su mayor seguridad. Las claves privadas no se transmiten ni
se revelan a persona alguna. En el sistema con clave secreta, siempre
existe la posibilidad de que sea descubierta durante la transmisión.
Otra ventaja importante del sistema con clave pública
consiste en que proporciona un método de firma digital. La
autenticación por medio de sistemas con clave secreta requiere que
algunos secretos se compartan y algunas veces hasta requiere de la
confianza en un tercero. El remitente puede alegar que desconoce un
mensaje que previamente ha firmado diciendo que la clave compartida no
fue mantenida en el debido secreto por alguna de las partes. Por
ejemplo, el sistema Kerberos de autenticación con clave secreta
involucra una base de datos central que conserva copias de las claves
secretas de todos los usuarios. Un mensaje autenticado por el sistema
Kerberos (79) no sería válido legalmente ya que un ataque a la base de
datos podría dar lugar a una falsificación masiva. La autenticación con
clave pública evita este tipo de inconvenientes ya que cada usuario es
responsable de mantener en secreto su clave privada. Por ello, la
autenticación con clave pública no es repudiable.
Se puede demostrar a un tercero, como ser un juez,
que los mensajes con firma digital son auténticos, lo que les otorga
validez legal. Los sistemas como Kerberos fueron diseñados para
autenticar el acceso a redes, más que para autenticar documentos, tarea
que se facilita mediante las firmas digitales.
La desventaja de utilizar el método de encriptado con
clave pública es la velocidad: existen métodos de encriptado con clave
privada que funcionan a mayor velocidad que cualquier método de
encriptado con clave pública pero ambos métodos pueden combinarse para
obtener lo mejor de cada uno: la seguridad de la clave pública y la
velocidad de la clave privada.
El sistema con clave pública se puede utilizar para
encriptar una clave secreta que luego se utiliza para encriptar el
volumen de un archivo o mensaje. Esta tema se amplía en la pregunta
2.12, en el caso de uso del sistema RSA. La criptografía con clave
pública no pretende reemplazar a la de clave privada sino complementarla
con el fin de ganar en seguridad. Las técnicas de clave pública se
utilizaron por primera vez para intercambiar claves con seguridad (29) y
es aún una de sus funciones principales.
La criptografía con clave secreta mantiene su
innegable importancia y es materia de estudio e investigación. Algunos
sistemas de encriptado con clave secreta se desarrollan en las preguntas
5.1 y 5.5.
Los sistemas criptográficos son
patentables. Muchos sistemas criptográficos con clave secreta han sido
patentados, incluido DES (ver pregunta 5.1). Las ideas básicas de la
criptografía con clave pública se encuentran en las Patentes de Estados
Unidos Nro.4.200.770 con fecha 18/8/80 con la autoría de M. Hellman, W.
Diffie y R. Merkle, y que fuera otorgada el 29/4/80 y la Nro. 4.218.582
otorgada a M. Hellman y R. Merkle. Otras patentes similares se
otorgaron en diversas partes del mundo. Los derechos de licencia
exclusivos para ambas patentes pertenecen a Public Key Partners (PKP),
de Sunnyvale, California. También poseen los derechos del sistema RSA.
En general, estas patentes se otorgan juntas.
Todos los desafíos legales que enfrentan las patentes
de sistemas con clave pública se han presentado a juicio. En un caso
reciente, PKP demandó a TRW Corporation que utilizaba una criptografía
con clave pública (el sistema ElGamal) sin licencia, TRW alegó que no la
necesitaba. En Junio de 1992 se llegó a un acuerdo por el que TRW
acordaba atenerse a la licencia de las patentes.
Algunas solicitudes de patentes para sistemas
criptográficos se han visto bloqueadas por la intervención de la NSA
(Agencia de Seguridad Nacional, "National Security Agency") la Ley de
Prohibición de Publicación de los Inventos de 1940 y la Ley de Seguridad
Nacional de 1947 (Ver Landau (46) para información sobre casos
relacionados con criptografía.)
Todos los productos criptográficos
necesitan licencias de exportación del Departamento de Estado que actúa
bajo la autoridad de Regulación del Tráfico Internacional de Armas
(ITAR), que define a los dispositivos criptográficos, incluido el
software, como municiones de guerra. El gobierno de los Estados Unidos
históricamente se ha negado a otorgar licencias de exportación para
productos de encriptado con robustez mayor a un cierto nivel mínimo
(aunque no lo ha dicho públicamente)
De acuerdo con la normativa vigente, un vendedor que
desee exportar un producto utilizando la criptografía, debe primero
presentar su pedido al Departamento de Estado, Oficina de Control de
Comercio de Defensa. El procedimiento de exportación es, por lo
general, simple y eficaz. Si la jurisdicción permanece en el
Departamento de Estado, quizás se necesite una revisión más detallada
antes de aprobar o negar el procedimiento de exportación. En cuanto a
este punto, puede intervenir la NSA (ver pregunta 7.3). Los detalles de
la aprobación de la exportación cambian con frecuencia.
La NSA ejerce un control de facto en la exportación
de los productos criptográficos. El Departamento de Estado no otorgará
una licencia sin la aprobación de la NSA y, en general, otorga toda
licencia aprobada antes por la NSA. Asimismo, la decisión en cuanto a
la exportación de criptografía pertenece en última instancia a la NSA.
La política de la NSA no restringe la exportación de
sistemas criptográficos de autenticación, sólo se ocupa del uso de la
criptografía en su aspecto de privacidad. Un vendedor que desea
exportar un producto sólo para autenticación obtendrá una licencia de
exportación siempre y cuando demuestre que el producto no sea fácilmente
modificable para encriptado, lo cual se aplica a productos de la
robustez del sistema RSA con sus claves de gran tamaño. Más aún, los
procedimientos burocráticos son más simples para los productos de
autenticación que para los de privacidad. Un producto para
autenticación necesita la aprobación del Departamento de Estado y de la
NSA sólo una vez, mientras que un producto de encriptado puede necesitar
ser aprobado para cada venta o para cada revisión del producto.
La política de exportación es siempre materia de gran
controversia, ya que muchos vendedores de software y hardware
consideran que las normas de exportación son demasiado restrictivas y
complicadas. La Asociación de Editores de Software (SPA - Software
Publishers Association), un grupo representativo de la industria del
software, ha negociado recientemente con el gobierno a fin de lograr
simplificar las normas para la obtención de una licencia de exportación.
Se llegó a un acuerdo por el cual se permite simplificar los
procedimientos de exportación para dos métodos de encriptado masivo RS2 y
RS4 (ver pregunta 8.6) cuando la longitud de la clave es limitada.
También, la política de exportaciones es menos restrictiva para las
oficinas de empresas estadounidenses radicadas en el extranjero o sus
sucursales.
En marzo de 1992, el Consejo de Seguridad Informática
y de la Privacidad (Computer Security and Privacy Advisory Board) votó
unánimemente recomendar una revisión nacional de la política
criptográfica, incluyendo la política de exportaciones. El Consejo
ayuda a la NIST (ver pregunta 7.1) cuyos miembros pertenecen tanto al
gobierno como al sector privado. El Consejo estableció que un debate
público es el único medio por el cual se puede consensuar una política
que satisfaga los intereses de todas las partes: la seguridad nacional y
las fuerzas de seguridad desean imponer restricciones a la
criptografía, especialmente en cuanto a la exportación, mientras que
otras agencias de gobierno e industrias privadas desean una mayor
libertad para utilizar o exportar criptografía. La política de
exportación, tradicionalmente, fue decidida solo por las fuerzas de
seguridad, sin que los interesados dieran demasiado impulso al comercio
de los sistemas criptográficos. La política de exportación de los
Estados Unidos puede sufrir drásticos cambios en los años venideros.
El RSA es un sistema criptográfico con
clave pública tanto para encriptado como para autenticación que fue
inventado por Ron Rivest, Adi Shamir y Leonard Adleman en 1977.
Funciona de la siguiente manera: se toman dos números primos grandes, p
y q, y se calcula su producto n = pq; n se denomina módulo. Elija un
número e, menor que n y primo relativamente de (p-1) (q-1) y halle el
inverso d, mod (p-1) (q-1), que significa que de = 1 mod (p-1) (q-1); e y
d se denominan el exponente público y privado, respectivamente. La
clave pública es el par (n, e) y la privada es d. Los factores p y q
deben mantenerse en secreto o ser destruidos.
Es difícil, presumiblemente, obtener la clave privada
d a partir de la clave pública (n, e). Sin embargo, si se pudiera
descomponer n en p ó q, se podría obtener la clave privada d. Por lo
tanto toda la seguridad del sistema RSA se basa en el concepto de que
factorear es difícil. Un sistema sencillo de factoreo quebraría el
sistema RSA (ver preguntas 2.5 y 4.4).
El sistema RSA se utiliza para autenticación y
privacidad de la siguiente manera (en la práctica el uso varía, ver
preguntas 2.12 y 2.13).
El sistema RSA para encriptado funciona del siguiente
modo: supongamos que Alicia quiere enviarle un mensaje privado, m, a
Juan. Alicia crea el texto cifrado, c, exponenciando: c = m^e mod n,
donde e y n son la clave pública de Juan. Para desencriptarlo, Juan
también exponencia: m = c^d mod n, y recupera el mensaje - original m.
La relación entre e y d asegura que Juan recupere el mensaje
correctamente.
Como solo Juan conoce el número d, solo él puede desencriptar el mensaje.
El sistema RSA de autenticación funciona del
siguiente modo: supongamos que Alicia quiere enviarle a Juan un
documento m firmado. Alicia crea una firma digital s exponenciando: s =
m^d mod n, donde d y n constituyen el par de claves de Alicia. Ella
envía el documento m y la firma s a Juan. Para verificar la firma, Juan
exponencia y controla que el mensaje m se pueda recobrar: m = s^e mod
n, donde e y n son la clave pública de Alicia.
De este modo el encriptado y la autenticación se
producen sin compartir ninguna clave secreta: cada persona utiliza sólo
las claves públicas de otros usuarios y sus propias claves privadas.
Cualquiera puede enviar un mensaje encriptado o verificar un documento
firmado utilizando sólo claves públicas, pero solamente alguien que
posee la clave privada correcta puede desencriptar o firmar el mensaje.
El RSA no es una alternativa del DES
ni lo reemplaza, mejor dicho, lo complementa (como cualquier otro
cifrado para encriptado masivo de datos) y se utiliza junto con el DES
para crear un medio seguro de comunicaciones. (Nota: ampliación sobre
DES en la pregunta 5.1).
El RSA agrega dos funciones importantes que no
proporciona el DES: el intercambio seguro de claves sin un previo
intercambio de claves secretas y la firma digital. Para encriptar
mensajes, RSA y DES se utilizan en combinación: primero se encripta el
mensaje con una clave DES elegida al azar y luego, antes de enviarlo por
un medio poco seguro, se encripta la clave DES por medio del RSA. Se
envían juntos, el mensaje DES encriptado y la clave DES encriptada a
través del RSA. Este protocolo se conoce como el "sobre digital RSA".
Se podría preguntar el motivo por el cual no se
utiliza el sistema RSA para encriptar el mensaje directamente y así
evitar el uso del DES. Aunque podría aplicarse a mensajes cortos, el
DES (u otro sistema de encriptado) es preferible en el caso de un
mensaje largo ya que es mucho más veloz que el RSA (ver pregunta 2.3).
En algunas situaciones, el RSA no es necesario y
basta con el DES. Esto incluye a los entornos con multiusuarios donde
es posible intercambiar claves DES en forma segura, por ejemplo, si
ambas partes se reúnen en privado. El sistema RSA es poco necesario en
un entorno con un solo usuario, por ejemplo, si se desea mantener
encriptados los archivos personales, solo se necesita el DES. El RSA y
la criptografía con clave pública, en general, se aplican mejor en
entornos con multiusuarios. Cualquier sistema que utilice firmas
digitales necesita del RSA o de algún otro sistema con clave pública.
Una "operación RSA", ya sea de
encriptado o desencriptado, de firma o verificación es, en esencia, una
exponenciación modular que puede efectuarse mediante una serie de
multiplicaciones modulares.
En aplicaciones prácticas, es común elegir exponentes
públicos pequeños para la clave pública; en realidad, grupos enteros de
usuarios pueden utilizar el mismo exponente público. Así, el
encriptado es más rápido que el desencriptado y la verificación que la
firma. Cuando de algoritmos se trata, la operación con clave pública
requiere O(k^2) pasos, las operaciones con clave privada O(k^4) pasos. K
es el número de bits en el módulo, "O" se refiere al orden de tiempo
asintótico de operación de un algoritmo.
Comercialmente, se puede obtener la implementación de
RSA en hardware y frecuentemente se anuncian chips más modernos y
veloces. El chip actual de RSA (76) más rápido posee una velocidad
superior a 600 KBit por segundo con un módulo de 512 bits, lo cual
implica que efectúa más de 1000 operaciones con clave privada por
segundo. Se espera que la velocidad del RSA alcance 1 Mbit/seg. dentro
de aproximadamente un año.
En comparación, el DES es mucho más rápido que el
RSA. En software, DES es por lo menos 100 veces más rápido que el RSA.
En hardware, es entre 1000 y 10.000 veces más rápido, dependiendo de la
implementación. El RSA acortará la brecha en pocos años, pero nunca
igualará la velocidad del DES.
Sólo es necesaria una pequeña
expansión de datos cuando se utiliza el sistema RSA. Para el
encriptado, el mensaje se puede agrandar hasta un tamaño que sea un
múltiplo del largo del bloque, por lo general 64 bits, ya que, por lo
general, se combina con un bloque cifrado con clave secreta como el DES
(ver pregunta 2.12). Encriptar la clave DES requiere tantos bits
adicionales como la longitud del módulo RSA.
Para autenticación, se adjunta una firma digital RSA
al documento. Una firma RSA, incluyendo información tal como el nombre
del firmante, ocupa solo unos cientos de bytes. Se pueden incluir uno o
más certificados (ver pregunta 3.5) y se pueden utilizar en combinación
con cualquier método de firma digital. Un certificado tipo ocupa solo
unos cientos de bytes.
Hay varias interpretaciones del
significado de "quebrar" el sistema RSA. El que causaría un daño mayor
sería si un atacante descubriese la clave privada correspondiente a una x
clave pública, lo cual le permitiría leer todos los mensajes
encriptados con esa clave pública y fraguar firmas. El método obvio
consiste en factorear el módulo público n en sus dos factores primos p y
q. De p, q y e, el exponente público, el atacante puede con facilidad
deducir d, la clave privada. La dificultad se presenta con el factoreo
de n, por lo tanto la seguridad del sistema RSA depende de la dificultad
del factoreo. En realidad, la tarea de recuperar la clave privada
equivale a la tarea de factorear un módulo: puede usar d para factorear
n y utilizar el factoreo de n para encontrar d (ver preguntas 4.5 y 4.6
referentes a las últimas novedades en materia de factoreo). Es
necesario aclarar que las mejoras en el hardware no son suficientes para
debilitar el sistema RSA, mientras se utilicen las claves del largo
apropiado; en realidad, los adelantos en el hardware tendrían que
reforzar la seguridad del RSA (ver pregunta 4.5).
Otro modo de quebrar el RSA consiste en hallar una
técnica para calcular las raíces de e mod n. Como c = m^e, la raíz e de
c es el mensaje m. Este ataque puede permitir que alguien recupere el
mensaje encriptado y falsifique las firmas sin saber la clave privada.
No tiene semejanza con el factoreo y no se conocen métodos de este tipo
con los que se haya tratado de quebrar el RSA.
Los métodos de "sabotaje" mencionados son los únicos
posibles para recuperar mensajes encriptados con una cierta clave. Hay,
sin embargo, otras formas que apuntan a recuperar simplemente mensajes.
Aún si tuviera éxito, el atacante no podría desencriptar otros
mensajes con la misma clave.
La forma más simple de ataque a un mensaje consiste
en adivinar el texto plano. El atacante ve un texto cifrado, infiere
que el mensaje dice "Atacar al amanecer" y encripta este mensaje
inferido con la clave pública del destinatario. Por comparación con el
texto cifrado original, el atacante sabe si su mensaje inferido ha sido
cierto. El ataque puede ser desbaratado si se agregan algunos bits al
azar al mensaje. Otro ataque al mensaje puede ocurrir si alguien envía
el mismo mensaje m a otros tres usuarios, quienes a su vez tienen el
exponente público e = 3. El atacante que sabe esto y ve los tres
mensajes podrá recobrar el mensaje m. Existen algunos ataques a textos
cifrados "elegidos" en los cuales el atacante crea un texto cifrado y
logra ver el correspondiente texto plano, quizás engañando a un usuario
legítimo para que desencripte un mensaje falso. (Davida [23]
proporciona algunos ejemplos).
Existen otros ataques que no apuntan al RSA sino a
una implementación no segura del sistema. No se consideran "sabotajes
al RSA" porque no se trata de aprovechar una falla en el algoritmo RSA
sino en su implementación. Por ejemplo, si alguien guarda su clave
privada sin tomar las medidas de seguridad necesarias, un atacante puede
descubrirla. Nunca es demasiado el hincapié que se hace cuando se
afirma que el sistema RSA requiere una implementación segura, medidas de
seguridad matemáticas, tales como elegir una clave larga, y que todos
estos recaudos no son suficientes. En la práctica, los ataques exitosos
apuntan a implementaciones poco seguras y a la administración de
claves. Ver la sección 3 donde se trata el tema de administración de
claves.
En todos los tratados acerca del
sistema RSA, se ha sugerido que, cuando se elige un par de claves, se
deben usar los números primos "fuertes" p y q para generar el módulo n.
Los números primos fuertes son aquellos con ciertas propiedades que
hacen que el producto n sea difícil de factorear por medio de métodos de
factoreo específicos, dichas propiedades incluyen, por ejemplo, la
existencia de un factor primo grande, de p-1 y otro factor primo grande
de p+1. Se recurre a los números primos de muchas cifras para que
resistan los ataques y sean difíciles de descifrar.
Sin embargo, recientes avances en materia de factoreo
(ver pregunta 4.6) parecen haber obviado las ventajas que presentan los
números primos fuertes, el algoritmo de factoreo de curva elíptica es
uno de ellos. Los nuevos métodos de factoreo tienen buenas
posibilidades de éxito con números primos fuertes y débiles, por lo
tanto elegir un número fuerte no es garantía contra el ataque. Por
ahora la respuesta es negativa, los números fuertes no son necesarios
para utilizar el sistema RSA aunque no se corre ningún riesgo al
usarlos, excepto que formar un par de claves lleva más tiempo. Sin
embargo, se podrán desarrollar en un futuro nuevos algoritmos de
factoreo que apunten a números primos con ciertas propiedades, si es
así, elegir números primos fuertes podrá ser útil para incrementar la
seguridad.
El tamaño de un módulo RSA depende de
las propias necesidades de seguridad. Cuanto más largo sea el módulo,
mayor es la seguridad pero también más lentas son las operaciones RSA.
Se puede elegir un largo de módulo considerando, primero, las
necesidades de seguridad, es decir el valor de la información protegida
y, segundo, cuánto tiempo necesita estar protegida y cuán poderoso puede
ser el potencial enemigo. También es posible que una clave de mayor
tamaño permita que un documento firmado digitalmente sea válido por un
lapso mayor de tiempo (ver pregunta 3.17).
Rivest (72) presenta un análisis exhaustivo de la
seguridad obtenido en base a la longitud de módulo, en el contexto del
logaritmo discreto de módulo primo, pero que se aplica también al RSA.
Las estimaciones de Rivest implican que un módulo de 512 bits se puede
factorear con un esfuerzo de U$S 8.200.000, cifra que será menor en el
futuro. Por eso, se recomienda utilizar un módulo más largo, quizás de
768 bits de longitud. Aquellos que quieran proteger información más
valiosa (o muy expuesta a una falsificación digital) utilizarán un
módulo más largo. Una autoridad certificante (ver pregunta 3.5) podría
utilizar un módulo de 1000 bits de longitud o más ya que la validez de
tantos pares de claves dependen de la seguridad de una sola clave
central.
La clave de un usuario individual vencerá luego de un
cierto lapso, por ejemplo, dos años (ver pregunta 3.12). En el momento
del vencimiento, el usuario generará una nueva clave que debería
contener unos dígitos más que la anterior para así reflejar el aumento
de la velocidad de las computadoras en solo dos años. Los esquemas de
longitud de clave recomendada serán probablemente publicados por las
autoridades certificantes o un organismo público.
Los usuarios deben recordar que el tiempo estimado
para quebrar el sistema RSA son solamente promedios. Un gran esfuerzo
de factoreo, que ataque varios miles de módulos RSA, pueden tener éxito
en un tiempo razonable. Aunque la seguridad de una clave individual es
mayor, con algunos métodos de factoreo existe un mínima posibilidad de
deducirla.
En cuanto al tiempo adicional necesario a medida que
se incrementa el tamaño de la clave (ver pregunta 2.3), el duplicar la
longitud del módulo, aumenta el tiempo requerido para las operaciones
con clave pública (encriptado y verificación de firmas) por un factor de
4 y para las operaciones con clave privada (desencriptado y firma) por
un factor de 8. La razón de que las operaciones con clave pública se
ven menos afectadas que las de clave privada consiste en que el
exponente público puede permanecer fijo cuando el módulo se incrementa
mientras que el exponente privado se incrementa proporcionalmente. El
tiempo de generación de una clave se incrementa por un factor de 16
duplicando el largo del módulo. Pero esta operación es poco frecuente
entre los usuarios.
Los dos números primos, p y q, que
componen el módulo, deben tener una longitud aproximadamente igual.
Así, el módulo es más difícil de factorear que si uno de los números
primos es pequeño. Si se elige utilizar un módulo de 512 bits, los
números primos deberían tener una longitud de 256 bits.
Es necesaria una fuente de números al
azar para encontrar dos números primos que compongan un módulo. Si se
utiliza un método predecible para generar los números primos, un
atacante puede tratar de recrear el proceso de generación de la clave.
Los números al azar obtenidos mediante un proceso
físico son en principio los mejores. Se puede utilizar un elemento del
hardware, como por ejemplo el diodo, que se encuentra disponible en los
comercios en forma de plaqueta para agregar a la computadora. Otra idea
válida es utilizar movimientos físicos de un usuario, tales como la
velocidad de tipeo medida en microsegundos. Por cualquier método, los
números al azar pueden aún contener ciertas correlaciones que evitan una
suficiente aleatoriedad estadística. Por lo tanto, es mejor operar con
una eficaz función de "hash". (ver pregunta 8.2) antes de utilizarlos.
Otro enfoque consiste en usar un generador de número
de pseudo azar alimentado con una semilla al azar. Como se trata de
algoritmos determinísticos, es importante encontrar uno que sea
impredecible y también usar una semilla realmente al azar. Existen
muchos trabajos escritos acerca de los generadores de números de pseudo
azar. Ver Knuth (41) para una introducción.
Hay que tener en cuenta que no se necesitan números
al azar para determinar los exponentes privados y públicos del sistema
RSA, luego de elegir el módulo. Simplemente se elige un valor
arbitrario para el exponente público, que determina el exponente privado
o viceversa.
Hay suficientes números primos como
para que no se agoten nunca. Por ejemplo, la cantidad de números primos
con 512 bits de longitud o menos, excede 10^{150} de acuerdo con el
teorema del número primo, lo cual supera la cantidad de átomos que
existen en el universo conocido.
Se recomienda generalmente utilizar
tests de primalidad probabilística que son más rápidos que comprobar si
un número es efectivamente primo. Se puede utilizar un test de
probabilidad que decide si un número es primo con un margen de error
menor que 2^{100}. Para informarse sobre algunos resultados empíricos
acerca de la confiabilidad de tests simples de primalidad, vea Rivest
(70). Se pueden realizar tests rápidamente y sus resultados son
altamente seguros. Un simple algoritmo para elegir los números primos
probables fue analizado recientemente por Brand y Damgard (9).
El sistema RSA se combina con un
sistema criptográfico con clave secreta, como el DES, para encriptar un
mensaje por medio de un sobre digital RSA.
Supongamos que Alicia quiere enviar un mensaje
encriptado a Juan. Primero encripta el mensaje con el sistema DES y
utiliza una clave DES elegida al azar. Luego busca la clave pública de
Juan y la utiliza para encriptar esa clave DES. El mensaje encriptado
mediante el DES y la clave DES encriptada mediante el sistema RSA,
forman el sobre digital RSA y se envían a Juan. Una vez recibido el
sobre digital, Juan desencripta la clave DES con su clave privada y
luego utiliza esa clave DES para desencriptar el mensaje.
Supongamos que Alicia quiere enviar un
mensaje firmado a Juan. Utiliza una función de "hash" en el mensaje
(ver pregunta 8.2) para crear un digesto de mensaje ("message digest")
que sirve como una huella digital del mensaje. Luego, encripta el
digesto de mensaje con su clave privada RSA. Esta es la firma digital
que envía a Juan junto con el mensaje. Juan recibe el mensaje y la
firma, desencripta la firma con la clave pública de Alicia para
recuperar el digesto de mensaje. Luego, ejecuta el "hash" del mensaje
con la misma función de "hash" que utilizó Alicia y compara el resultado
con el digesto de mensaje desencriptado de la firma. Si son iguales,
la firma queda verificada y se puede comprobar que el mensaje proviene
de Alicia. Si en cambio, no son iguales, el mensaje no fue enviado por
Alicia. Se debe tener en cuenta que para la autenticación, los roles de
las claves pública y privada son los opuestos que en el encriptado,
donde la clave pública se utiliza para encriptar y la privada para
desencriptar.
En la práctica, el exponente público es mucho menor
que el exponente privado. Esto significa que la verificación de una
firma se efectúa más rápidamente que la firma misma. Es mejor así, ya
que un mensaje o documento será firmado por un individuo una vez, en
cambio, la firma será verificada varias veces.
No es probable que alguien encuentre un mensaje cuyo
"hash" arroje un valor predeterminado o dos mensajes cuyos "hash"
arrojen el mismo valor. Si alguna de estas alternativas fuera posible,
un intruso podría adjuntar un mensaje falso a la firma de Alicia. Las
funciones de "hash" como MD4 y MD5 (ver pregunta 8.3) se han diseñado
específicamente para demostrar que encontrar un número duplicado es casi
imposible y se las considera apropiadas para utilizarlas en
criptografía.
La firma digital puede estar acompañada por uno o más
certificados. Un certificado es un documento firmado que atestigua la
identidad del firmante y su clave pública. Su propósito es evitar que
una persona se haga pasar por otra utilizando una clave pública
fraudulentemente registrada por ésta en nombre de otro. Si se incluye
un certificado, el receptor del mensaje (o un tercero) puede comprobar
la autenticidad de la clave pública del mensaje, presuponiendo que la
clave pública es confiable.
Una firma digital RSA es superior a
una firma manuscrita ya que atestigua el contenido del mensaje y, al
mismo tiempo, a la identidad del firmante. Siempre que se utilice la
función segura de "hash" (ver pregunta 8.2), no hay posibilidades de
quitarle la firma a un documento y adjuntársela a otro o de alterar el
mensaje firmado. El más mínimo cambio en un documento firmado hará
fracasar el proceso de verificación de la firma digital. El sistema de
autenticación RSA permite verificar la integridad de un documento
firmado. Por supuesto, si la verificación de la firma falla, no quedará
claro si hubo un intento de fraguarla o si se trató de un mero error en
la transmisión.
Se han propuesto muchos otros sistemas
criptográficos con clave pública, tal como lo revelan los informes de
las conferencias anuales sobre criptografía. Un problema matemático,
llamado el problema de la mochila ("knapsack"), fue la base de varios
sistemas (52) que no prosperaron porque muchas versiones fueron
quebradas. Otro sistema, diseñado por ElGamal (30), se basa en el
problema del logaritmo discreto. El sistema ElGamal, en parte, fue la
base para muchos otros sistemas de firma, incluido uno de Schnorr (75)
que, a su vez, fue la base del DSS, el estándar de firma digital
propuesto por NIST (ver pregunta 6.8). Debido a la propuesta de NIST,
los méritos relativos de estos sistemas de firmas versus las firmas RSA,
recibieron mucha atención (57). ElGamal se ha utilizado con éxito,
aunque es más lento que el RSA para el encriptado y la verificación y
las firmas son más largas.
En 1976, antes de la aparición del RSA, Diffie y
Hellman (29), propusieron un sistema para intercambio de claves
únicamente que permite un intercambio seguro de claves en un sistema
convencional de claves secretas. Este sistema se encuentra actualmente
en uso.
Los sistemas criptográficos basados en operaciones
matemáticas sobre curvas elípticas fueron propuestos (43,56), como así
también los sistemas criptográficos basados en la exponenciación
discreta en el campo finito GF(2^n). Los últimos son muy rápidos en
hardware, sin embargo, existen dudas acerca de la seguridad porque el
problema subyacente puede ser más fácil de resolver que el factoreo (64,
34). Existen también algunos métodos probabilísticos de encriptado (8,
32), cuyo mayor atractivo consiste en que resisten los ataques de
quienes apuntan a adivinar el contenido de un texto cifrado (ver
pregunta 2.5) pero a costa de la expansión de los datos a encriptar. En
el encriptado probabilístico, el mismo texto plano encriptado dos veces
bajo la misma clave dará, con alta probabilidad, dos textos cifrados
diferentes.
Para las firmas digitales, Rabin (68) propuso un
sistema que es equivalente al factoreo. Esto constituye un avance sobre
el RSA, con el cual se podrían tener dudas acerca de la posibilidad de
sufrir un ataque no relacionado con el factoreo. Sin embargo, el método
de Rabin es susceptible al ataque por medio de un mensaje elegido en el
cual el atacante logra que el usuario firme mensajes de un forma
especial. Otro esquema de firma, ideado por Fíat y Shamir (31), se basa
en los protocolos interactivos de conocimiento cero ("zero knowledge"),
pero se pueden adaptar a las firmas. Es más rápido que el RSA y
comprobablemente equivalente al factoreo, pero esas firmas son más
largas que las del sistema RSA. Otras variantes acortan la longitud de
la firma (17). Un sistema es "equivalente al factoreo" si recuperar una
clave privada es comprobablemente tan difícil como utilizando factoreo.
La fraguación es más sencilla que el factoreo en algunos de éstos
sistemas.
Las ventajas del RSA sobre otros sistemas
criptográficos con clave pública incluye el hecho de que se puede usar
tanto para el encriptado como para la autenticación, y que ha estado
disponible desde hace mucho tiempo y ha superado un exhaustivo
escrutinio. El sistema RSA ha recibido más atención, estudio y
utilización real que en ningún otro método con clave pública por lo cual
el RSA posee más evidencia empírica acerca de su seguridad que otros
sistemas más nuevos pero menos estudiados. En realidad, un gran número
de sistemas criptográficos con clave pública que eran aparentemente
seguros, con el tiempo fallaron. Ver [13] para algunos casos empíricos.
La utilización del sistema RSA está
experimentando una rápida expansión y puede llegar a ser omnipresente en
los próximos años. Hoy en día, se utiliza en una gran variedad de
productos, plataformas e industrias del mundo entero. Se encuentra en
productos comerciales de software y se planea una expansión mayor. RSA
está incluido en sistemas Microsoft, Apple, Sun y Novell actuales y
futuros. En cuanto al hardware, el sistema RSA se puede encontrar en
teléfonos seguros, en tarjetas de redes Ethernet y en tarjetas
inteligentes. El RSA se utiliza también en muchos organismos estatales
estadounidenses, grandes compañías, laboratorios y universidades.
La adopción del sistema RSA parece utilizarse más
rápidamente para autenticación (firmas digitales) que para una mayor
privacidad (encriptado). Quizá, esto se deba a que los productos para
autenticación son más fáciles de exportar (ver pregunta 1.6).
El sistema RSA forma parte de muchos
estándares oficiales en todo el mundo. El estándar ISO 9796
(Organización Internacional de Estándares, "International Standards
Organization") incluye al RSA como un algoritmo criptográfico, como así
también el CCITT (Comité Internacional de Consulta en Telegrafía y
Telefonía, "Consultative Committee in International Telegraphy and
Telephony") mediante el estándar de seguridad X.509. El RSA forma parte
de los estándares de SWIFT (Sociedad para las Telecomunicaciones
Financieras Interbancarias Mundiales, "Society for Worldwide Interbank
Financial Telecommunications"), de los estándares de ETEBAC 5 del
sistema financiero francés y del borrador del estándar ANSI X9.31 del
sistema bancario estadounidense. También el estándar australiano de
administración de claves, AS2805.6.5.3 especifica RSA.
El RSA se encuentra en el PEM (Correo con
Privacidadad del Internet "Privacy Enhanced Mail") (ver pregunta 8.7) y
en el PKCS para la industria del software (ver pregunta 8.9). El taller
de implementadores de OSI (OIW) ha lanzado acuerdos entre
implementadores referidos a PKCS y PEM, que incluyen al sistema RSA.
Otros estándares están en etapa de desarrollo y se
anunciarán dentro de los dos años próximos. Se espera que muchos
incluyan el RSA como sistema adicional o recomendado para autenticación
y/o privacidad. Ver (38) para una reseña de estándares de criptografía.
El RSA es el sistema criptográfico con
clave pública más utilizado hoy en día y se lo llama a menudo un
estándar de facto. Sin tener en cuenta los estándar oficiales, la
existencia de un estándar de facto es sumamente importante para el
desarrollo de una economía digital. Si un sistema con clave pública se
utiliza en todas partes para autenticación, entonces, los documentos
firmados digitalmente se pueden intercambiar entre usuarios de
diferentes países usando diferente software sobre diferentes
plataformas. Esta interoperatividad es necesaria para desarrollar una
economía verdaderamente digital.
La falta de autenticación segura ha constituido un
gran obstáculo para alcanzar la promesa de que las computadoras
reemplazarán al papel. Los papeles son todavía necesarios en todos el
mundo para los contratos, cheques, cartas oficiales, documentos legales e
identificación. Ante este núcleo de papeleo necesario para llevar a
cabo las transacciones, no ha sido posible que las transacciones
electrónicas reemplacen completamente a las tradicionales. Las firmas
digitales son la herramienta exacta para convertir los documentos
labrados en papel en documentos electrónicos. La firma digital hace
posible, por ejemplo, confeccionar contratos de leasing, testamentos,
pasaportes, libretas universitarias, cheques y padrones de votantes que
solo existen en la forma electrónica y cuya versión en papel sería solo
una copia de la primera. Todo sería posible mediante un estándar
aceptado para firmas digitales.
El sistema RCA está patentado bajo el
número U.S. Patent 4,405,829, emitido el 20/09/83 y que se encuentra en
poder de Public Key Partners (PKP), de Sunnyvale, California. La
patente vence 17 años después de emitida, en el año 2.000. La licencia
para el sistema RSA se otorga junto con otras patentes de criptografía
con clave pública (ver pregunta 1.5). PKP posee un estándar, basado en
una política de licencias basada en el pago de derechos que se puede
modificar bajo circunstancias especiales. Si un vendedor de software,
que posee la licencia para patentes de clave pública, incorpora el RSA
en un producto comercial, quien compre el producto tiene el derecho
legal de utilizar el RSA en el contexto de ese software. El gobierno de
los Estados Unidos puede usar el RSA sin una licencia ya que el
gobierno contribuyó con fondos a la producción del sistema. El RSA no
está patentado fuera de los Estados Unidos.
En los Estados Unidos, se necesita una licencia para
"hacer, usar o vender" RSA. Sin embargo, PKP normalmente autoriza el
uso no comercial de RSA en forma gratuita, con permiso escrito
especificando los motivos personales, académicos o intelectuales para el
uso. Aún más, los laboratorios RSA han puesto a disposición (en los
Estados Unidos y Canadá) sin cargo, una colección de rutinas
criptográficas en un código fuente, incluyendo el algoritmo de RSA. Se
puede utilizar, mejorar y redistribuir con fines no comerciales. (Ver
pregunta 8.10).
La exportación de RSA se rige por las mismas leyes que todos los demás productos criptográficos. (Ver pregunta 1.6).
El RSA utilizado para autenticación se puede exportar
más fácilmente que en su uso para privacidad. En el primer caso, la
exportación se permite sin importar el tamaño de la clave (módulo),
aunque el exportador deberá demostrar que el producto no se puede
utilizar con facilidad para encriptado. En el caso del RSA utilizado
para encriptado, el Gobierno de los Estado Unidos, por lo general, no
admite la exportación si el tamaño de la clave excede los 512 bits. La
política de exportación es materia de debate, y la categoría de
exportación del RSA puede cambiar dentro de los próximos dos años.
A pesar de la política estadounidense, el sistema RSA está disponible en productos de origen no norteamericano.
Utilizar métodos seguros es esencial.
En la práctica, la mayoría de los ataques a los sistemas con clave
pública apuntan a los niveles de administración de claves, más que al
algoritmo criptográfico en sí mismo. Los problemas de administración de
claves mencionados se discuten en detalle en puntos subsiguientes.
Los usuarios deben poder obtener de manera segura un
par de claves que se adecue a sus necesidades específicas de seguridad y
eficiencia. Deben contar con un medio para conocer las claves públicas
de otros usuarios y publicar las propias. Deben tener confianza en la
legitimidad de las claves ajenas, de otro modo, un intruso puede cambiar
las claves públicas publicadas en el directorio o hacerse pasar por
otro usuario. Los certificados se utilizan a estos efectos. Deben ser
imposibles de fraguar, se deben obtener de un modo seguro y procesarse
de modo tal que un intruso no pueda darles un uso impropio. Otorgar
certificados debe ser un procedimiento seguro, sin posibilidad de
ataque. Si la clave privada de alguien se pierde o se encuentra
comprometida, los demás deben estar alerta para no encriptar mensajes
bajo una clave invalidada ni aceptar mensajes firmados con dicha clave.
Los usuarios deben contar con un método de almacenamiento seguro de
claves privadas: ningún intruso podrá encontrarlas pero deben estar al
alcance de la mano para su uso. Las claves son válidas hasta su fecha
de vencimiento, que será elegida adecuadamente y publicada en un medio
seguro. Algunos documentos necesitan contar con firmas verificables más
allá del plazo de vencimiento de las mismas.
Aunque la mayoría de estos problemas en la
administración de claves se presentan en cualquier sistema criptográfico
con clave pública, por una cuestión de conveniencia se desarrollan en
el contexto del sistema RSA.
Cualquier usuario que desee firmar
mensajes o recibir mensajes encriptados debe tener un par de claves.
Algunas personas pueden necesitar más de un par de claves. Por ejemplo,
alguien quiere utilizar una clave conectada con su trabajo y otra para
su uso personal. Otras entidades electrónicas, incluyendo los modems,
puestos de trabajo e impresoras, o entidades físicas como una empresa,
la recepción de un hotel o la oficina de registro de una universidad
también necesitarán claves.
Cada usuario debe generar su propio
par de claves. Dentro de una organización puede ser tentador tener un
solo departamento que genere claves para todos los miembros que lo
requieran, pero implica un problema de seguridad ya que involucra la
transmisión de claves privadas por medio de una red, sin pensar en las
catastróficas consecuencias que podría causar un ataque al departamento
generador de claves. Cada nodo en la red debe poder generar su propia
clave, de modo que las claves privadas nunca se transmitan y no se
necesite confiar en una fuente externa que genere las claves. Por
supuesto, el software utilizado para generar las claves debe ser
confiable. Los sistemas de autenticación con clave secreta, como el
Kerberos, a menudo no permiten generar claves localmente sino que es
preciso utilizar un servidor central que las genere.
Una vez generada, el usuario debe registrar su clave
pública en alguna administración central, denominada autoridad
certificante. La autoridad certificante le devuelve al usuario un
certificado que atestigua la veracidad de la clave pública junto con
otra información (Ver preguntas 3.5 y siguientes). La mayoría de los
usuarios obtiene solo un certificado por clave para simplificar la tarea
de registro asociada con la clave.
En el sistema RSA, cada persona debe
tener un único módulo y exponente privado, es decir, una clave privada
única. El exponente público, por otro lado, puede ser común a un grupo
de usuarios sin que se comprometa la seguridad. Algunos exponentes
públicos utilizados corrientemente son 3 y 2 ^{16} + 1 ya que son
números pequeños, las operaciones de clave pública (encriptado y
verificación de firma) son rápidas en comparación con las operaciones de
clave privada (desencriptado y firma). Si un exponente público se
convierte en un estándar, el software y hardware se pueden optimizar
para ese valor.
En los sistemas con clave pública basados en
logaritmos discretos, como en el caso de ElGamal, Diffie-Hellman o DSS,
se ha sugerido con frecuencia que un grupo de gente comparta un módulo.
Esta situación sería más tentadora para un atacante porque se podrían
quebrar todas las claves con solo un poco más de esfuerzo que el que
implicaría quebrar una sola clave. Para un atacante, el costo promedio
para quebrar una clave es mucho menor con un módulo en común que si cada
clave tiene un módulo distinto. Por lo tanto, se debe tener suma
precaución cuando se utiliza un módulo en común, ya que debería ser muy
grande.
Los certificados son documentos
digitales que atestiguan que una clave pública pertenece a determinado
individuo o entidad. Permiten la verificación en caso de reclamos de
que una clave pública dada pertenece fehacientemente a una determinada
persona. Los certificados ayudan a evitar que alguien utilice una clave
falsa haciéndose pasar por otro.
En su forma más simple, los certificados contienen
una clave pública y un nombre, la fecha de vencimiento de la clave, el
nombre de la autoridad certificante, el número de serie del certificado y
quizás otros datos. Esencialmente, contiene la firma digital del que
otorga el certificado. El formato más ampliamente aceptado de un
certificado está definido como el estándar internacional CCITT X.509
(19). De este modo, los certificados se pueden leer con una aplicación
que cumpla con el X.509. Mayores refinamientos se encuentran en el
conjunto de estándares PKCS (ver pregunta 8.9) y el estándar PEM (ver
pregunta 8.7). Se pueden encontrar mayores detalles en Kent (40)
La autoridad certificante emite los certificados (ver
pregunta 3.7) que están firmados con la clave privada de esa autoridad
certificante.
Se da a conocer un certificado para
generar confianza en la legitimidad de su clave pública. Quien
verifique la firma también puede verificar el certificado del firmante
para asegurarse de que no haya habido falsificaciones o representaciones
falsas. Estos pasos se pueden llevar a cabo con mayor o menor rigor de
acuerdo con el contexto.
La forma más segura de usar la autenticación consiste
en adjuntar uno o más certificados con cada mensaje firmado. El
receptor del mensaje puede verificar el certificado utilizando la clave
pública de la autoridad certificante y, una vez que así se asegura de la
clave pública del remitente, verifica la firma del mensaje. Puede
haber dos o más certificados adjuntos a un mensaje formando una cadena
jerárquica donde un certificado confirma la veracidad del certificado
previo. Al final de una cadena de certificados jerárquicos se encuentra
una autoridad certificante de primera línea en la cual se confía y que
no necesita ser confirmada por nadie. La clave pública de la autoridad
de primera línea debe ser conocida ampliamente, por ejemplo, por medio
de una publicación.
Cuanto más conocido es el remitente, menor es la
necesidad de adjuntar y verificar certificados. Si Alicia envía
mensajes a Juan todos los días, ella puede adjuntar una cadena de
certificados el primer día para que Juan las verifique. Juan almacena
la clave pública de Alicia y no se necesitan más certificados ni
verificaciones en lo sucesivo. Un remitente, cuya compañía es conocida
para el receptor puede adjuntar un solo certificado (emitida por la
compañía), mientras que un remitente cuya compañía es desconocida para
el destinatario deberá adjuntar dos certificados. Una buena regla de
oro consiste en adjuntar la cantidad de certificados necesarias, de modo
que la autoridad máxima de la cadena sea conocida para el receptor.
De acuerdo con los estándares PKCS para la
criptografía con clave pública (ver pregunta 8.9), cada firma apunta a
un certificado que otorga validez a la clave pública del firmante.
Específicamente, cada firma contiene el nombre del emisor del
certificado y el número de serie del certificado. De este modo, aún si
no se adjuntaran certificados al mensaje, el verificador puede utilizar
esa cadena preestablecida de certificados para controlar la condición de
la clave pública.
Los certificados los emite una
autoridad certificante (AC), que puede ser cualquier administración
central de confianza que pueda confirmar las identidades de aquellos a
quienes otorga los certificados. Una compañía puede emitir certificados
a sus empleados, una universidad a sus estudiantes, una ciudad a sus
ciudadanos. Para evitar que se falsifiquen los certificados, la clave
pública de la AC deber ser confiable: una AC debe publicar su clave
pública o proporcionar un certificado de una autoridad mayor que
atestigüe la validez de su clave. Esta solución da origen a jerarquías
de ACs.
La emisión de certificados funciona del siguiente
modo. Alicia genera su propio par de claves y envía su clave pública a
una AC apropiada, con alguna prueba de su identidad. La AC corrobora la
identificación y toma otras medidas necesarias para asegurarse de que
el pedido haya procedido de Alicia y luego le envía a Alicia un
certificado que atestigua que la clave le pertenece, junto con la
jerarquía de certificados que verifican la clave pública de esa AC.
Alicia puede presentar esta cadena de certificados cuando desee
demostrar la legitimidad de su clave pública.
Como la AC debe controlar la identificación, las
organizaciones hallarán más cómodo actuar como AC para sus propios
miembros y empleados. Algunas AC podrán emitir certificados a
individuos que no pertenezcan a ella.
Distintas AC pueden emitir certificados de acuerdo
con diferentes niveles de pedido de identificación. Una AC puede exigir
una licencia de conductor, otra querrá un pedido formal por escrito,
otra las huellas digitales de los solicitantes. Cada AC podrá publicar
sus propios requisitos de identificación de modo que los verificadores
puedan conferir a la relación nombre-clave el nivel apropiado de
seguridad.
Un ejemplo de los requisitos de emisión de un
certificado es, por ejemplo, el OCE (Ambito Abierto de Colaboración
Informática, "Open Collaborative Enviroment") de Apple Computer. Los
usuarios del sistema pueden generar un par de claves y pedir el
certificado de la clave pública. El pedido de certificación debe
hacerse por escrito.
Es fundamental que las claves privadas
de las autoridades certificantes se archiven con seguridad, porque si
se encontraran comprometidas podrían dar lugar a falsificaciones no
detectables. Un modo de lograr la seguridad necesaria consiste en
almacenar las claves en una caja inviolable, llamada Unidad para Firmar
de Certificados o UFC. La caja debe autodestruir su contenido en caso
de ataque y debe estar protegida con un escudo de radiación
electromagnética. Nadie, ni siquiera los empleados de la AC, deben
tener acceso a la clave privada, pero si podrán utilizarla para emitir
certificados.
Hay diferentes diseños para la caja. He aquí la
descripción del diseño hallado en algunas implementaciones. El UFC se
puede activar por un conjunto de diferentes claves de datos, es decir,
claves físicas capaces de almacenar información digital. Las claves de
datos utilizan tecnología para compartir información secreta de modo que
diferentes personas deban utilizar sus claves de datos para activar la
caja. Esto evita que un empleado disgustado emita certificados falsos.
Si la caja se destruye, por ejemplo en un incendio,
no se compromete la seguridad. Los certificados firmados por la caja
son válidos siempre que el verificador utilice la clave pública
correcta. Algunas cajas se fabrican de modo que si se pierde una clave
privada se puede recuperar en una nueva caja. Ver pregunta 3.10 para
una ampliación acerca de la pérdida de las claves privadas de las AC.
Bolt, Beranek y Newman (BBN) venden una caja UFC y
Data Security RSA vende un sistema completo de emisión de certificados
basado en la UFC de BBN.
Se podría pensar acerca de muchos ataques dirigidos a las autoridades certificantes.
Pensemos en el siguiente ataque: supongamos que Juan
quiere hacerse pasar por Alicia. Si él puede firmar convincentemente
como Alicia, puede enviar un mensaje al banco de Alicia pidiendo extraer
U$S10.000 de la cuenta y que le envíen el dinero. Para perpetrar este
ataque, Juan genera un par de claves y envía la clave pública a una
autoridad certificante haciéndose pasar por Alicia y solicitando un
certificado de su clave pública. Si la AC cae en ésta la trampa y le
envía a Juan el certificado, él podrá luego engañar al banco y su ataque
resultará exitoso. Para evitar dichos ataques la AC debe verificar que
un pedido de certificación provenga de quien dice haberlo solicitado.
La AC puede pedir que Alicia se presente en persona y muestre su partida
de nacimiento. Algunas autoridades pueden requerir pocas pruebas de
identificación, pero el banco no debería aceptar mensajes cuya
identificación pueda resultar dudosa. Cada AC debe declarar
públicamente sus requisitos de identificación así se podrá otorgar un
nivel de confianza adecuado a los certificados.
Un atacante que descubre la clave privada de una
autoridad certificante puede falsificar certificados. Por esta razón,
una autoridad certificante debe tomar medidas de precaución extremas
para evitar el acceso no autorizado a su clave privada. La clave
privada se debe guardar en una caja de máxima seguridad (UFC, Unidad
para Firmar Certificados). Ver pregunta 3.8.
La clave pública de la autoridad certificante puede
ser objeto de un extensivo ataque por medio del factoreo. Por ello, las
autoridades certificantes deben utilizar claves de gran tamaño,
preferentemente de 1000 bits o más y deben cambiarlas regularmente. Las
AC de primer nivel constituyen una excepción: no sería práctico para
ellas cambiar la clave con frecuencia porque la clave puede estar
escrita en un software que sea utilizado por muchos verificadores.
Otro ataque podría ser el siguiente. Alicia soborna a
Juan, que trabaja para una autoridad certificante, para que emita un
certificado a nombre de Pedro. Alicia puede enviar mensajes firmados en
nombre de Pedro y cualquiera que reciba esos mensajes creerá en su
autenticidad ya que toda una cadena de certificados valederos acompañará
al mensaje. Este ataque se puede evitar si se requiere que dos o más
empleados sean necesarios para generar un certificado. El atacante
tendrá que sobornar a más de una persona. por ejemplo, en algunas UFC
utilizadas en este momento, tres empleados deben insertar su clave de
datos con información secreta para autorizar a la UFC a generar un
certificado. Desafortunadamente, pueden existir otros modos de generar
un certificado falso sobornando sólo a un empleado. Si un certificado
requiere el control de un solo empleado, se lo puede sobornar y deslizar
una solicitud falsa en una pila de solicitudes auténticas. De
cualquier modo, un empleado corrupto nunca podrá revelar la clave
privada de la AC siempre y cuando se la guarde con el debido cuidado.
Otro tipo de ataque involucra la falsificación de
documentos viejos. Alicia intenta factorear el módulo de una autoridad
certificante. Le lleva 15 años pero finalmente lo logra y consigue una
clave privada antigua. La clave ya venció, pero ella puede falsificar
un documento de 15 años de antigüedad validando una clave pública falsa
de otra persona, por ejemplo, Juan. Ella podrá falsificar un documento
firmado por Juan de 15 años atrás, como podría ser un testamento a su
favor. El problema subyacente que trae aparejado este ataque consiste
en cómo autenticar un documento firmado años atrás. Ver pregunta 3.17.
Cabe resaltar que los ataques a las autoridades
certificantes no amenazan la privacidad de los mensajes entre usuarios,
como podría suceder si se atacara a un centro de distribución de claves
secretas.
Si la clave de una autoridad
certificante se pierde o destruye pero no se compromete, los
certificados firmados con la clave vieja son válidos, siempre y cuando
el verificador sepa cómo utilizar la clave pública vieja para verificar
el certificado.
En algunos diseños de UFC, se guardan copias
encriptadas de la clave privada de la AC. Una AC que pierde su clave
puede recuperarla, cargando la copia encriptada en la UFC que puede
desencriptarla utilizando información única que se encuentra guardada en
la UFC. La copia encriptada solo podrá desencriptarse utilizando la
UFC. Si se destruye la UFC, el fabricante puede proporcionar otra con
la misma información interna, de modo que se pueda recuperar la clave.
Si la clave de una autoridad certificante se
encuentra comprometida, la situación es mucho más peligrosa. Un
atacante que descubre la clave privada de una autoridad certificante
puede generar certificados falsos en nombre de ella, lo cual podría dar
lugar a falsificaciones no detectables. Por esta razón, todas las
precauciones a tomar son pocas, incluidas las que se sugieren en las
preguntas 3.8 y 3.9. Si la clave está en peligro, la autoridad
certificante debe cesar inmediatamente de emitir certificados con su
vieja clave y cambiarla por una nueva. Si se sospecha que se emitieron
certificados falsos, todos los certificados se deben recuperar y emitir
nuevamente con la clave nueva. Estas medidas no serán tan drásticas si
los certificados llevan un registro digital de fecha y hora (Ver
pregunta 3.18). Si la clave de una AC se encuentra comprometida, no
invalida las claves de los usuarios sino los certificados que las
autentican. Si la clave de una autoridad de primera línea se encuentra
en peligro significaría una catástrofe ya que la clave puede estar
incluida en aplicaciones que verifican los certificados.
Una Lista de Revocación de
Certificados es una lista de claves públicas que se revocaron antes de
que se produzca su fecha de vencimiento. Hay varias razones por las
cuales una clave puede necesitar ser revocada y figurar en la lista.
Una clave puede haber sido comprometida. Una clave puede ser usada por
un individuo dentro de una empresa. Si fuera despedido, la empresa no
querría que pudiera firmar mensajes con esa clave y por lo tanto
aparecería en la lista de revocación.
Cuando se verifica una firma, se puede controlar la
lista para asegurarse de que la clave del firmante no haya sido
revocada. Si vale la pena perder tiempo en realizar estas
comprobaciones, o no, depende del valor del documento.
Las Listas de Revocación de Certificados son
mantenidas por las autoridades certificantes y proporcionan información
acerca de las claves que originalmente fueron certificadas por la AC.
Las listas solo mencionan a las claves en uso ya que las vencidas no se
aceptan en ningún caso. Cuando la clave llega a su fecha de vencimiento
se retira de la lista. Aunque las listas de Revocación de Certificados
se mantienen mediante la distribución, hay repositorios centrales, o
sea nodos en las redes, que contienen las últimas listas de varias
organizaciones. Una institución, como ser un banco, podría querer
contar con sus propios repositorios para que las listas se utilicen en
cada transacción.
Para resguardase de un ataque a largo
plazo por medio del factoreo, cada clave debe contar con una fecha de
vencimiento luego de la cual no será válida. El plazo de vencimiento
debe ser menor al que tomaría factorear esa clave, o al menos
equivalente. La clave debe ser lo suficientemente larga como para que
la posibilidad de factorearla antes del vencimiento sea prácticamente
nula. El período de validez, junto con el valor de la clave y la fuerza
estimada de un eventual atacante, determinan el largo apropiado para la
clave.
La fecha de vencimiento acompaña a la clave pública
en un certificado o directorio de claves públicas. El programa de
verificación de la firma debe controlar la fecha de vencimiento y no
debe aceptar un mensaje firmado con una clave vencida. Esto significa
que cuando una clave vence, todo lo que fue firmado con ella ya no es
válido. Por supuesto, existen casos en que es importante que un
documento se considere válido por un período mayor de tiempo. (Ver
pregunta 3.17.)
Luego del vencimiento, el usuario elige una nueva
clave, quizás con más dígitos para reflejar tanto el aumento en el
rendimiento del hardware como las recientes mejoras en los algoritmos de
factoreo. Los planteos del largo de clave recomendada se publican. Un
usuario puede postergar el vencimiento de su clave si ésta ha vencido,
si es lo suficientemente larga o si no ha sido comprometida. La AC
emitirá un nuevo certificado para la misma clave y todas la firmas
nuevas apuntarán al nuevo certificado y no al anterior. Sin embargo, el
hecho de que el hardware continúe mejorando, obliga a reemplazar las
viejas claves por nuevas y de mayor longitud cada pocos años. El
reemplazo de claves permite sacar ventaja de los avances del hardware
para incrementar la seguridad del sistema criptográfico. Un hardware
más veloz incrementa la seguridad, pero solo si el largo de las claves
se incrementa con regularidad. (Ver pregunta 4.5)
Si se pierde o destruye su clave
privada, pero no ha sido comprometida, ya no podrá firmar o desencriptar
mensajes, pero cualquier documento firmado previamente con la clave
perdida continuará siendo válido. Si se olvida de la palabra de acceso a
su clave, o si el disco donde fue almacenada está dañado, necesita una
nueva clave de inmediato para minimizar el número de mensajes que le
envíen encriptados con su vieja clave y que ya no podrá leer.
Si su clave privada se encuentra
comprometida, es decir, si sospecha que un atacante la haya obtenido,
debe dar por sentado que algún enemigo leerá los mensajes encriptados
que le fueron enviados y firmará documentos con su nombre. La seriedad
de las consecuencias que este hecho podría acarrear resalta la
importancia de proteger su clave privada con fuertes mecanismos de
seguridad.
Debe notificar de inmediato a su autoridad
certificante y hacer que su clave aparezca en la Lista de Revocación de
Certificados (ver pregunta 3.11), que de esta forma dará a conocer que
su clave ha sido revocada. Elija una nueva clave y obtenga los
certificados correspondientes. Puede querer firmar nuevamente con la
nueva clave documentos que ya hubiera firmado con la anterior, los
documentos que, aparte de la firma, cuentan con el registro de digital
de fecha y hora pueden ser válidos. Debería considerar cambiar los
métodos de almacenamiento de su clave privada para evitar otro ataque
similar.
Las claves privadas se deben almacenar
con seguridad, ya que la falsificación y la pérdida de privacidad
pueden ser el resultado de una clave comprometida. La clave privada no
debe guardarse jamás en la forma de texto plano. La manera más sencilla
de guardarla consiste en encriptar la clave bajo una palabra de acceso y
grabarla en un disco. Por supuesto, la palabra de acceso elegida se
debe mantener a resguardo y no debe guardarla escrita ni deber ser
fácilmente deducible. Guardar la clave encriptada en un disco al que no
se pueda acceder mediante una red de computación, tales como un
disquette o un disco rígido que no se encuentre en red, dificultará
cualquier ataque. Eventualmente, las claves privadas podrán guardarse
en una memoria portátil, tal como una tarjeta inteligente. Un protocolo
de preguntas y respuestas será más seguro que una simple palabra de
acceso. Los usuarios que requieran medidas de seguridad extremas, como
las autoridades certificantes, deben utilizar recursos especiales para
proteger sus claves (ver pregunta 3.8).
Supongamos que desea encontrar la
clave pública de Juan. Hay diferentes maneras posibles. Puede llamarlo
y pedirle que se la envíe por correo electrónico. Las autoridades
certificantes pueden proporcionar servicios de directorio para ubicar
las claves. Si Juan trabaja para la empresa X, buscara en la guía de
las autoridades certificantes de X. Las guías deben ser seguras ante
intromisiones, de modo que los usuarios tengan confianza en que las
claves públicas publicadas en la guía pertenezcan al usuario allí
nombrado. Si no, su mensaje encriptado puede ser enviado a la persona
equivocada.
Con el tiempo, aparecerán guías con la información
completa que funcionarán como páginas amarillas en línea. Si satisfacen
los estándares CCITT X.509 (19) podrán contener certificados como las
claves públicas, lo cual disminuye los requisitos de seguridad de las
guías.
Por lo general, una clave vence
después de dos años y un documento firmado con una clave vencida no debe
aceptarse. Sin embargo, en algunos casos es necesario que los
documentos firmados sean legalmente válidos por más tiempo (por ejemplo:
contratos de leasing u otros contratos). ¿Cómo se manejan estos
casos?. Se han sugerido algunas soluciones pero no está claro cuál es
la mejor. Algunas posibilidades se detallan a continuación.
Se puede tener una clave de largo plazo o una normal
de dos años de duración. Las claves de largo plazo deben tener un
módulo más extenso y ser guardadas con medidas de seguridad extremas.
Si una clave de largo plazo vence en 50 años, cualquier documento
firmado con ella será válido dentro de ese lapso. El problema de este
método es que cualquier clave que se encuentre en peligro deberá
permanecer en la Lista de Revocación de Certificados hasta su
vencimiento (ver pregunta 3.11), si claves de 50 años de plazo aparecen
con frecuenta en las listas, las mismas tomarían proporciones
desmedidas. Se puede solucionar de la siguiente forma: registrar la
clave de largo plazo de acuerdo al procedimiento normal, por ejemplo,
por dos años. Cuando venza, si no se encuentra comprometido, se podrá
recertificar. Es decir, recibirá un certificado por otros dos años. Si
una clave se encuentra en peligro, aparecerá en las listas durante dos
años y no cincuenta.
Un problema del método previamente descripto consiste
en que alguien trate de invalidar un contrato de largo plazo negándose a
renovar su clave. En ese caso, colocar un registro digital de fecha y
hora al contrato en el momento de firmarlo solucionaría el problema (ver
pregunta 3.18) ya que se podría comprobar la validez del contrato aún
si la clave de un firmante se encuentra en peligro en algún momento
posterior a la firma del contrato. La solución del registro digital de
fecha y hora se puede aplicar a todos los documentos.
Un Servicio de Sellado Digital de
Fecha y Hora (SSDFH, "Digital Time-Stamping Service") emite un sello
fechador que asocia una fecha digital con un documento en un modo
criptográficamente seguro. El sellado digital de fecha y hora se puede
utilizar con posterioridad para probar que un documento electrónico
existía en el momento que indican la fecha y hora digital. Por ejemplo,
un físico al cual se le ocurre una idea genial, la escribe en un
procesador de textos y le pone un sello fechador digital. El documento y
la fecha pueden probar en un futuro que el científico merece el Premio
Nobel aunque el trabajo haya sido publicado antes por otro científico.
He aquí otro ejemplo: Supongamos que Alicia firma un
documento y quiere agregarle la fecha. Ella procesa el resumen del
documento ("message digest") utilizando una función de "hash" de
seguridad (ver pregunta 8.2) y lo envía (no el documento completo) al
servicio de registro digital de fecha y hora y recibe un registro
digital de fecha y hora que consiste en el digesto del mensaje, la fecha
y la hora en que fue recibido en el servicio de registro de fecha y
hora, y la firma de ese servicio de registro digital de fecha y hora.
Como el resumen del documento no revela la información que contiene el
documento, el servicio de registro de fecha y hora no puede espiar el
contenido de los documentos. Más tarde, Alicia podrá presentar el
documento y ese registro con la fecha y hora. Un verificador procesa el
resumen del documento y comprueba que concuerde con el resumen del
documento sellado con la fecha y hora y así verifica la firma del
servicio de registro digital de fecha y hora.
Para que sea confiable, el registro de fecha y hora
tendrá que evitar ser falsificado. Consideremos los requisitos para un
servicio de registro como el descripto. Primero, el propio servicio de
registro deberá utilizar una clave de gran longitud si quiere que el
sellado sea confiable por varias décadas. Segundo, la clave privada del
servicio de registro debe ser guardada con máxima seguridad, en una
caja inviolable. Tercero, las fechas y horas deben provenir de un
reloj, también conservado en la caja inviolable, que no puede ser
reprogramado y que mantendrá la hora exacta durante años o quizás
décadas. Cuarto, tiene que ser difícil crear sellos digitales de fecha y
hora sin utilizar esa caja inviolable.
Un método de registro digital de fecha y hora
criptográficamente fuerte utilizando solo el software (4) fue
implementado por Bellcore (una subsidiaria de ATT). Evita muchos de los
requerimientos descriptos, como el hardware inviolable. El sistema de
registro Bellcore combina esencialmente el valor de "hash" de los
documentos con estructuras de datos denominadas árboles binarios cuyos
valores "raíz" se publican regularmente en los periódicos. Un registro
digital de fecha y hora se forma con un conjunto de valores de "hash"
que le permiten al verificador reprocesar la raíz del árbol. Como las
funciones de "hash" son unidireccionales (ver pregunta 8.2), el conjunto
de valores de "hash" que les otorgan validez no se pueden falsificar.
La fecha asociada al documento mediante el registro es la fecha de
publicación.
El uso del sellado digital de fecha y hora es
importante, más aún esencial, para mantener la validez de los documentos
a través de los años (ver pregunta 3.17). Supongamos que un
propietario y un inquilino firman un contrato a 20 años. La clave
pública utilizada para firmar el contrato vencerá luego de dos años.
Recertificar las claves o volver a firmar los contratos cada dos años
requiere de la colaboración de ambas partes varios años después de la
firma original. Si una parte no se encuentra satisfecha con el contrato
puede rehusarse a cooperar. La solución consiste en registrar el
contrato con el servicio de registro digital de fecha y hora en el
momento de la firma. Ambas partes recibirán copia del registro que
podrá utilizarse años después para reclamar la validez del contrato
original.
En el futuro, es posible que el servicio de registro
digital de fecha y hora se utilice para todo: desde contratos
empresarios de largo plazo hasta diarios personales y cartas. Hoy en
día, si un historiador descubre las cartas perdidas de Cervantes, su
autenticidad se corrobora con medios físicos. Pero si algo similar
ocurriera dentro de 100 años, las únicas pruebas de su autenticidad
serán los archivos de la computadora del autor y el registro con la
fecha.
Una función unidireccional es una
función matemática que es mucho más fácil de realizar en una sola
dirección (hacia adelante) que en dirección inversa. Uno puede computar
la función en minutos pero le llevaría meses o años computar la función
inversa. Una función unidireccional con puerta-trampa es una función
unidireccional cuya inversa es fácil de computar si se conoce una cierta
parte de la información (la puerta-trampa), pero muy difícil de lograr
de otro modo.
Los sistemas criptográficos con clave
pública se basan en funciones unidireccionales con puerta-trampa. La
clave pública proporciona información acerca de una instancia en
particular de la función, la clave privada proporciona información
acerca de la puerta-trampa. Quien conozca la puerta-trampa podrá llevar
a cabo la función en ambas direcciones. Quien no posea la
puerta-trampa solo podrá realizarla en una sola dirección: hacia
adelante. La dirección hacia adelante se usa para el encriptado y
verificación de firmas, mientras que la inversa para desencriptado y
firma digital.
En casi todos los sistemas con clave pública, el
tamaño de la clave corresponde al tamaño de los inputs a la función
unidireccional; cuanto más larga sea la clave, mayor será la diferencia
entre el esfuerzo necesario para computar la función en forma directa
vs. en forma inversa (para quien no posea la puerta-trampa). Para que
una firma digital sea segura durante años, es necesario que utilizar una
función unidireccional con puerta-trampa con inputs lo suficientemente
grandes como para que quien no posea la puerta-trampa necesite años para
procesar la función inversa.
Todos los sistemas criptográficos con clave pública
se basan en funciones que se presume son unidireccionales, aunque ésto
no se haya comprobado aún. Esto significa que es teóricamente posible
que se descubra que un algoritmo pueda computarse fácilmente en su
función inversa sin necesidad de conocer la puerta-trampa. Si esto
llegara a descubrirse, todos los sistemas criptográficos basados en
funciones unidireccionales serían inútiles y completamente inseguros.
Factorear consiste en descomponer un
número entero en un conjunto de números enteros más pequeños (factores)
que multiplicados entre sí forman el número entero original. Por
ejemplo, los factores de 15 son 3 y 5. El problema de factoreo consiste
en encontrar el 3 y 5 a partir del 15. El factoreo de números primos
requiere descomponer un número en sus factores primos. Cada número
entero posee un factoreo de número entero único. Multiplicar los dos
números primos enteros es sencillo. Factorear el producto es mucho más
difícil.
Factorear es el problema,
presumiblemente difícil, en el cual se basan muchos sistemas
criptográficos, incluido el RSA. Factorear un módulo RSA (ver pregunta
2.1) le permitiría a un atacante conocer la clave privada, de modo que
cualquier persona que pueda factorear el módulo puede desencriptar
mensajes y falsificar firmas. La seguridad del sistema depende de que
factorear sea difícil. Desafortunadamente, no se ha comprobado que
factorear sea dificultoso y existe la posibilidad de que se descubra un
método veloz de factoreo (ver pregunta 4.7) aunque los investigadores lo
consideran como una posibilidad remota.
Factorear un número de muchas cifras lleva más tiempo
que factorear uno sencillo. Por esta razón la medida de los módulos en
el sistema RSA determina la seguridad del uso de dicho sistema: cuanto
más largo sea el módulo, mayor tiempo le tomará a un atacante
factorearlo y mayor será la resistencia del sistema a los atacantes.
Factorear se ha simplificado durante
los últimos quince años por dos razones: el hardware de las
computadoras se ha vuelto más poderoso y se han desarrollado mejores
algoritmos de factoreo.
La mejora del hardware continuará inexorablemente,
pero es importante saber que esas mismas mejoras hacen que el sistema
RSA sea cada vez más seguro. Esto ocurre porque la misma mejora en el
hardware que le permite a un atacante factorear un número dos dígitos
más largo utilizando el mismo tiempo que si tuviera dos dígitos menos,
le permite al sistema RSA utilizar una clave con una docena de dígitos
adicionales o más. Un usuario puede elegir una clave con una docena más
de dígitos que la anterior sin que ello le reste velocidad pero, a su
vez, a un atacante le será mucho más difícil alcanzar su objetivo. Por
eso, aunque las mejoras favorezcan al atacante, más favorecen al usuario
legítimo. Esta regla general puede fallar en el sentido que factorear
puede lograrse en el futuro utilizando máquinas más veloces, atacando
claves antiguas del sistema RSA. En este panorama el atacante se
beneficia con las ventajas de la mejora del hardware. Este aspecto
demanda hoy la utilización de claves más largas que las que se
consideraban garantizadas. También requiere el reemplazo de la clave
RSA por una clave más larga cada pocos años para poder beneficiarse con
todo avance en materia de seguridad que ofrezcan las mejoras en el
hardware. Este punto es válido también para otros sistemas con clave
pública.
Mejores algoritmos de factoreo han sido de mayor
ayuda al atacante del sistema RSA que cualquier mejora en el hardware.
Como el sistema RSA, y la criptografía en general, han atraído mucha
atención, lo mismo ocurrió con los problemas de factoreo y por ello
muchos investigadores encontraron nuevos métodos de factoreo o mejoraron
oros ya existentes. Esto ha facilitado el factoreo para números de
cualquier medida, independientemente de la velocidad del hardware. Sin
embargo, el factoreo es todavía un problema de difícil solución.
Sobre todo, cualquier disminución reciente en la
seguridad debida a un avance en los algoritmos se puede complementar
incrementando el largo de la clave. En realidad, entre los avances del
hardware de las computadoras en general y los especialmente diseñados
para sistemas como el RSA, el aumento en el tamaño de la clave
(manteniendo una velocidad constante en las operaciones RSA) se ha
mantenido al nivel e incluso excedido los avances en la eficiencia de
los algoritmos, contrarrestando cualquier pérdida de seguridad en las
operaciones RSA. Mientras el hardware continúe mejorando a más
velocidad de la que pueda disminuir la complejidad de los algoritmos de
factoreo, se incrementará la seguridad del sistema RSA, si presuponemos
que los usuarios aumentan con regularidad el largo de las claves. La
pregunta abierta consiste en saber la velocidad que puedan alcanzar
estos algoritmos. Debe haber un límite en la velocidad de factoreo,
pero ese límite no se conoce aún.
El factoreo es un campo muy activo en
la investigación de matemáticos y científicos en computación, los
mejores algoritmos de factoreo se mencionan más adelante con algunas
referencias y la eficiencia asintótica de O. La O mide el orden de
velocidad de un algoritmo, proporcionando un límite superior a la
cantidad de operaciones (en orden de magnitud) en términos de n, el
número a factorear y p, un número primo factor de n Ver (41), (42), (47)
y (11). Para una explicación detallada de notación O, ver (22).
Los algoritmos de factoreo se presentan en dos
sabores: para fines especiales o para fines generales. La eficiencia
del primero depende de los factores desconocidos, mientras que la
eficiencia del segundo depende del número a factorear. Los algoritmos
con fines especiales son mejores para factorear números con factores
pequeños, pero los números utilizados para el módulo en el sistema RSA
no tienen ningún factor pequeño. Por ello, los algoritmos con fines
generales son los más importantes en el contexto de la criptografía y su
seguridad.
Los algoritmos de factoreo con fines especiales
incluyen el método Pollard Rho (66) con un tiempo de cómputo estimado en
O(p^ {1/2}) y el método Pollard p-1 (67) con un tiempo de cómputo de
O(p'), donde p' es el mayor factor del número primo de p-1. Ambos toman
un tiempo que es exponencial en el tamaño de p, el factor primo
encontrado, por ello, estos algoritmos son lentos para la mayoría de los
trabajos de factoreo. El Método de la Curva Elíptica (MCE) (50) es
superior a los anteriores: su tiempo asintótico de operación es O(exp
(2 ln p ln ln p)). El MCE es utilizado en la práctica para encontrar
factores de números generados al azar, ya que no es lo suficientemente
fuerte como para factorear un módulo RSA de gran tamaño.
El mejor algoritmo de factoreo con fines generales es
el "Number Field Sieve", que opera en un tiempo de aprox. O(exp (1.9
(ln n)^{1/3} (ln ln n)^{2/3})). Solo se ha implementado recientemente
(15) y no es lo suficientemente práctico como para realizar las
operaciones de factoreo deseadas. En cambio el algoritmo con fines
generales de uso más popular es "Multiple Polynomial Quadratic Sieve"
(MPQS) (77), cuyo tiempo de operación es O(exp (ln n ln ln n)^{1/2}).
El MPQS (y algunas de sus variantes) es el único algoritmo de fines
generales que ha factoreado con éxito números superiores a 110 dígitos.
Una variante conocida como el PPMPQS (49) adquirió especial
popularidad.
Se espera que dentro de unos pocos años, el PPMPQS
"Number Field Sieve" superará al MPQS como el algoritmo de factoreo más
utilizado, mientras que el tamaño de los números posibles de factorear
se extenderá más allá de los 120 dígitos (hoy el umbral de los números
posibles de factorear) hasta números de 130 o 140 dígitos. Un "número
general" no tiene una forma especial que pueda hacerlo fácil de
factorear. Un módulo RSA es un "número general". Observe que un número
de 512 bits tiene unos 155 dígitos.
Los números que tienen una forma especial ya se
pueden factorear hasta 155 dígitos o más (48). El Proyecto Cunningham
(14) sigue los pasos de las factorizaciones de los números con estas
formas especiales y confecciona una lista denominada "los 10 más
buscados" que incluye las operaciones de factoreo deseadas. Otra forma
de supervisar la capacidad de factoreo puede consistir en mirar los
resultados recientes del Desafío de Factoreo RSA (ver pregunta 4.8).
Aunque se considera al factoreo un
problema matemático de difícil solución, esto aún no se ha probado. Por
lo tanto, existe la posibilidad de que se descubra un sencillo
algoritmo de factoreo. Este avance que debilitaría todo el sistema RSA,
sería sorprendente y un grupo de investigadores dedicados a la
investigación del factoreo lo considera una posibilidad muy remota.
Otra posibilidad consiste en que alguien pruebe que
factorear es difícil. Esta posibilidad es más factible que la anterior
pero también sería inesperada dado el estado actual de las
investigaciones teóricas del factoreo. Este avance garantizaría la
seguridad del sistema RSA a partir de una determinada longitud de clave.
El RSA Data Security Inc. (RSADSI)
patrocina un concurso de factoreo con premios en efectivo. Aquellos que
puedan factorear los números listados por RSADSI ganan puntos que los
llevarán rumbo al premio. Factorear números pequeños gana más puntos
que factorear números grandes. Los resultados del concurso pueden ser
de utilidad a aquellos que desean saber qué avances hay en materia de
factoreo. Los resultados muestran el tamaño de los números factoreados,
los algoritmos utilizados y cuánto tiempo se requirió para factorear
cada número. Envíe un e-mail a challenge-info@rsa.com para recibir
información al respecto.
El problema del logaritmo discreto, en
su fórmula más común, consiste en encontrar un exponente x en la
fórmula y = g^x mod p. En otras palabras, tratar de encontrar la
respuesta a la siguiente pregunta: ¿A qué potencia debo elevar g para
obtener y, módulo número primo p?
Al igual que el problema del factoreo,
computacionalmente, el problema del logaritmo discreto se considera
difícil y se lo conoce como la dirección dificultosa de una función
unidireccional. Por esta razón, ha sido la base de varios sistemas
criptográficos con clave pública incluidos ElGamal y DSS (ver preguntas
2.15 y 6.8) respectivamente. El problema del logaritmo discreto
mantiene la misma relación con estos sistemas que el factoreo mantiene
con el RSA, la seguridad de los sistemas descansa en la suposición de
que el logaritmo discreto es difícil de computar.
En los últimos años, el problema del logaritmo
discreto ha recibido mucha atención, se pueden encontrar descripciones
de algunos de los algoritmos más eficientes en (47), (21) y (33). Se
espera que los mejores problemas del logaritmo discreto muestren tiempos
de cómputo similares a los de los mejores algoritmos de factoreo.
Rivest (72) analiza el tiempo estimado para resolver el problema del
logaritmo discreto tanto en lo referente al poder de cómputo como al
dinero necesario.
El tiempo de cómputo asintótico del
mejor algoritmo de logaritmo discreto es aprox. el mismo que para el
mejor algoritmo de factoreo con fines generales. Por lo tanto, requiere
tanto esfuerzo resolver el problema del logaritmo discreto módulo a
número primo de 512 bits como factorear el módulo RSA de 512 bits. Un
trabajo (45) cita la evidencia experimental de que el problema del
logaritmo discreto es algo más difícil que el factoreo. Los autores
sugieren que el esfuerzo necesario para factorear un número entero de
110 dígitos es igual al esfuerzo de resolver un logaritmo discreto de
módulo a número primo de 100 dígitos. Esta diferencia es tan ínfima que
no debería pesar en el momento de elegir una sistema criptográfico.
Históricamente, se ha dado el caso de que un avance
algorítmico en el factoreo o el logaritmo discreto luego se aplicó al
otro sistema. Esto sugiere que el grado de dificultad de ambos
problemas está muy relacionado y que cualquier avance, positivo o
negativo, afectará a ambos problemas en forma simultánea.
DES es el Estándar de Encriptado de
Datos ("Data Encryption Standard"), un encriptado por medio de cifrado
en bloque definido y endosado por el gobierno de los Estados Unidos en
1977 como estándar oficial. Los detalles se encuentran en la
publicación oficial FIPS (59). Fue desarrollado originalmente por IBM.
DES se estudió extensivamente durante los últimos 15 años y es el
sistema criptográfico más conocido y utilizado en el mundo.
DES es un sistema criptográfico simétrico de clave
secreta. Cuando se utiliza para comunicaciones, tanto el remitente como
el receptor deben conocer la misma clave secreta que se usa tanto para
encriptado como para el desencriptado del mensaje. El DES puede ser
utilizado también por un solo usuario para encriptado: se pueden
guardar archivos encriptados en un disco rígido. Si se utiliza en un
medio de usuarios múltiples, distribuir la clave con seguridad puede
llegar a ser un serio inconveniente; la criptografía con clave pública
se ideó justamente para resolver este problema (ver pregunta 1.3). DES
opera en bloques de 64 bits con una clave de 56 bits. Fue diseñado para
ser implementado en hardware y opera con relativa rapidez. Funciona
para encriptar grandes cantidades de información.
El NIST (ver pregunta 7.1) ha recertificado cada 5
años al sistema DES como un estándar oficial de gobierno de los Estados
Unidos, la última recertificación fue efectuada en 1993. NIST indicó,
sin embargo, que podrá no recertificar al sistema nuevamente.
Nunca se ha "quebrado" el sistema DES a
pesar de los esfuerzos de los investigadores durante los últimos años.
El método obvio de ataque consiste en forzar una exhaustiva búsqueda
del espacio de la clave lo cual toma 2^{55} operaciones de promedio.
Tiempo atrás, se sugirió (28) que un enemigo rico y poderoso podría
construir una computadora especial para quebrar el sistema DES en un
lapso razonable. Más tarde, Hellman (36) presentó un compromiso tiempo y
memoria que permite mejorar las búsquedas exhaustivas si el espacio en
memoria es abundante, luego de un exhaustivo preprocesamiento. Estas
ideas sembraron dudas en cuanto a la seguridad del sistema DES. También
ha habido dudas de que la NSA habría debilitado intencionalmente al
DES. A pesar de las sospechas, no existe un modo posible de quebrar el
DES más rápidamente que por medio de la búsqueda exhaustiva. El costo
de una computadora especial para realizar una búsqueda exhaustiva se
calcula en un millón de dólares (80).
Sin embargo, recientemente, Eli Biham y Adi Shamir
anunciaron el primer ataque al DES que es mejor que la búsqueda
exhaustiva (6,7) utilizando una nueva técnica que se conoce como
criptoanálisis diferencial. Este ataque requiere un encriptado de
2^{47} textos planos elegidos cuidadosamente, es decir elegidos por el
atacante. Aunque es solamente un avance teórico, este ataque no podría
llevarse a cabo en la práctica bajo circunstancias normales porque
requiere que el atacante tenga fácil acceso al dispositivo DES para
encriptar los textos por él elegidos. Otro ataque, conocido como
criptoanálisis lineal (51) no requiere de estos textos elegidos.
El consenso indica que DES, utilizado de forma
apropiada, es seguro contra todo enemigo, excepto los más poderosos. En
realidad, el encriptado triple DES (ver pregunta 5.3) puede ser seguro
absolutamente contra todos. Biham y Shamir han establecido que
consideran seguro al DES. Se utiliza en una gran variedad de sistemas
criptográficos, y prácticamente todos los sistemas criptográficos con
clave pública lo utilizan en algún nivel.
Cuando se utiliza el sistema DES,
existen diversas consideraciones prácticas a tener en cuenta que pueden
afectar la seguridad de la información encriptada. Se deben cambiar las
claves con frecuencia para prevenir ataques que requieran un sostenido
análisis de la información. En un contexto de comunicaciones, se debe
encontrar la forma de transmitir las claves con seguridad entre el
remitente y el receptor. El uso del sistema RSA u otra técnica de
administración de clave, resuelve ambos problemas: se genera una clave
DES diferente para cada sesión y la administración de claves segura lo
proporciona el encriptado de la clave DES con la clave pública RSA del
receptor. Bajo estas circunstancias, el sistema RSA se puede usar como
una herramienta para mejorar la seguridad del DES (o de cualquier otro
cifrado con clave secreta).
Si se desea encriptar archivos guardados en un disco
rígido con el DES, no es posible cambiar las claves con frecuencia, ello
significaría desencriptar y re-encriptar todos los archivos con cada
cambio de clave. En cambio hay que tener una clave DES maestra con la
cual encriptar la lista de claves DES utilizadas para encriptar los
archivos, luego se podrá cambiar la clave maestra con frecuencia y poco
esfuerzo.
Una técnica poderosa para mejorar la seguridad del
DES radica en el encriptado triple, es decir, encriptar cada bloque de
mensaje bajo tres claves DES diferentes. El encriptado triple se
considera equivalente al doble del tamaño de la clave de DES, a 112
bits, y debe evitar que un enemigo capaz de buscar una sola clave pueda
desencriptar mensajes (53). Por supuesto, utilizar el encriptado triple
lleva el triple de tiempo que un encriptado simple.
Aparte de las aplicaciones mencionadas, DES se puede
usar para encriptado en diferentes formas oficialmente definidas.
Algunas son más seguras que otras. El modo ECB (libro de código
electrónico o "electronic codebook") encripta cada bloque de texto plano
de 64 bits uno después de otro bajo la misma clave de 56 bits. En el
modo CBC (cadena de bloque cifrado o "cipher block chaining"), cada
bloque de texto plano de 64 bits se encadena mediante la operación
lógica de "O" exclusivo ("exclusive OR") con el bloque previo de texto
cifrado antes de ser encriptado con la clave DES. De esta forma, el
encriptado de cada bloque depende de los anteriores y el mismo bloque de
texto plano de 64 bits puede encriptarse a diferentes textos cifrados
dependiendo del contexto en el mensaje total. Este modo CBC ayuda a
prevenir ciertos ataques aunque es débil ante la búsqueda exhaustiva o
el criptoanálisis diferencial. El modo CFB (feedback cifrado o "cipher
feedback") permite utilizar el DES con bloques de longitud menor a 64
bits. Se pueden encontrar descripciones detalladas en (60).
En la práctica, el modo de DES más utilizado es el
CBC y se especifica en diversos estándares. Para mayor seguridad se
puede utilizar el triple encriptado con el modo CBC, pero como el DES
simple con el modo CBC se considera seguro, el triple encriptado no es
necesario.
Exportar el sistema DES, ya sea en
hardware o software, está regulado estrictamente por el Departamento de
Estado de los Estados Unidos y la NSA (ver pregunta 1.6). El gobierno
es reacio a aprobar la exportación del DES, a pesar de que se encuentra
disponible en otros países. Las instituciones financieras y las
subsidiarias en el extranjero de empresas norteamericanas son la
excepción.
A través de los años, varios
algoritmos de encriptado masivo se han diseñando como alternativas del
DES. Uno se denomina FEAL (Algoritmo de encriptado rápido, "Fast
Encryption Algorithm") un cifrado para el cual se han desarrollado
varios ataques (6) aunque se han propuesto otras versiones. Otro
cifrado designado por Lai y Massey (44) se conoce como IDEA y parece
prometedor aunque no se lo ha estudiado con la profundidad suficiente
como para confiar plenamente en su seguridad. El gobierno de los
Estados Unidos anunció hace poco tiempo un nuevo algoritmo denominado
Skipjack (ver pregunta 6.5) como parte del proyecto Capstone. Skipjack
opera con bloques de información de 64 bits, como DES, pero utiliza
claves de 80 bits en lugar de 56 bits. Sin embargo, los detalles acerca
de Skipjack permanecen secretos de modo que solo se lo consigue en
versión hardware de fabricantes autorizados por el gobierno.
Rivest desarrolló los cifrados RC2 y RC4 (ver
pregunta 8.6), que pueden ser dotados de la seguridad necesaria, ya que
utilizan claves de tamaños variables. Más veloz que DES, al menos en
versión software, presentan la ventaja de pertenecer a una categoría
especial de algoritmos de encriptado para la cual el gobierno simplifica
el proceso de aprobación de la exportación si el tamaño de la clave se
limita a 40 bits.
Con frecuencia se pregunta si el
encriptado con DES es cerrado en cuanto a su composición, es decir, ¿el
encriptado simple de un texto bajo una clave es siempre equivalente en
cuanto a su seguridad al encriptado de un texto bajo una clave y luego
al re-encriptado del resultado bajo otra clave? ¿Es decir, es DES un
grupo desde el punto de vista algebraico? Si es así, DES debe ser más
débil que lo esperado (39). Sin embargo, la respuesta es negativa. DES
no es un grupo (18). Este tema se aclaró recientemente luego de años
de especulación y evidencia circunstancial. El resultado parece
implicar que las técnicas tales como el encriptado triple incrementan la
seguridad del DES.
Capstone es el proyecto a largo plazo
del gobierno de los Estados Unidos para desarrollar un conjunto de
estándares para los sistemas criptográficos al alcance del público en
general, como lo autoriza la Ley de Seguridad Informática de 1987
("Computer Security Act"). Las agencias primordialmente responsables de
Capstone son NIST y NSA (ver sección 7). El plan requiere que los
elementos de Capstone se conviertan en estándares oficiales, en cuyo
caso tanto el gobierno como las empresas privadas que hagan negocios con
el gobierno tendrán que utilizar el sistema Capstone.
Existen cuatro componentes principales de Capstone:
un algoritmo de encriptado masivo de datos, un algoritmo de firma
digital, un protocolo de intercambio de claves y una función de "hash".
El algoritmo de encriptado se denomina Skipjack (ver pregunta 6.5),
pero se lo conoce como Clipper que es el chip de encriptado que incluye
al Skipjack (ver pregunta 6.2). El algoritmo de firma digital es DSS
(ver pregunta 6.8) y la función de "hash" es SHS (ver pregunta 8.4
acerca de SHS y 8.2 acerca de las funciones de "hash"). El protocolo de
intercambio de claves no ha sido anunciado todavía.
Todas los componentes de Capstone disponen de una
seguridad de 80 bits: todas las claves involucradas tienen 80 bits de
longitud y sus otros aspectos se han diseñado para resistir un ataque de
80 bits, es decir, un esfuerzo de 2^{80} operaciones. Con el tiempo,
el gobierno planea ubicar todo el sistema criptográfico Capstone en un
solo chip.
Clipper es un chip de encriptado
desarrollado y patrocinado por el gobierno de los Estados Unidos como
parte del proyecto Capstone (ver pregunta 6.11). Anunciado por la Casa
Blanca en abril de 1993 (65), Clipper fue diseñado para equilibrar los
intereses de las fuerzas de seguridad con los intereses de los
ciudadanos y de las industrias. Las fuerzas federales de seguridad que
desean acceder a las comunicaciones de personas sospechadas de
actividades ilícitas, por ejemplo, interceptando comunicaciones, se
encuentran amenazadas por la seguridad de la criptografía. La industria
y los ciudadanos, sin embargo, quieren comunicaciones seguras y buscan
la solución en la criptografía.
La tecnología de Clipper apunta a satisfacer los
intereses de ambas partes mediante una clave en depósito. La idea es
que las comunicaciones deberían ser encriptadas con un algoritmo seguro
pero las claves las guardarían una o más partes (entidades autorizadas
para el depósito de claves) y serían accesibles para las fuerzas de
seguridad cuando así lo autorice la Justicia. Por ejemplo, las
comunicaciones personales serían inaccesibles a ojos no autorizados y
las comunicaciones comerciales serían inaccesibles para el espionaje
industrial. Sin embargo, el FBI podría escuchar las comunicaciones de
terroristas o criminales.
Clipper fue propuesto como un estándar oficial de los
Estados Unidos (62). Tendría que ser utilizado por quien realice
negocios con el gobierno federal y para las comunicaciones internas del
gobierno. Para cualquier otra persona, la utilización de Clipper es
voluntaria. AT&T anunció un teléfono seguro que utiliza el chip
Clipper.
El chip de Clipper contiene un
algoritmo de encriptado denominado Skipjack (ver pregunta 6.5) cuyos
detalles no se han dado a publicidad. Cada chip contiene una unidad de
clave U de 80 bits, que está en depósito dividida en dos partes en las
entidades autorizadas para el depósito de claves. Ambas partes deben
ser conocidas para poder recuperar la clave. También presenta un número
de serie y una clave de familia, F, de 80 bits que es común a todos los
chips Clipper. El chip se fabrica de modo que no pueda dilucidarse a
partir del chip ni las claves ni el algoritmo Skipjack.
Cuando dos partes deciden comunicarse, primero
acuerdan una "clave de sesión" K de 80 bits. El método por el cual
eligen la clave queda librado al criterio del implementador; un método
de clave pública como RSA o Diffie-Hellman son elecciones apropiadas.
El mensaje se encripta con la clave K y se envía. K no es una clave en
depósito. Aparte del mensaje encriptado, otra parte de la información,
llamada el LEAF (Campo de Acceso de las Fuerzas de Seguridad, "Law
Enforcement Access Field") se crea y envía. Incluye la clave de sesión K
encriptada con la unidad U y luego se concatena con el número de serie
del remitente y una cadena de autenticaciones y, por último, se encripta
con una clave de familia. Los detalles exactos del campo de las
fuerzas de seguridad permanecen secretos.
El receptor desencripta el campo de las fuerzas de
seguridad, comprueba la cadena de autenticación y desencripta el mensaje
con la clave K.
Supongamos que las fuerzas de seguridad desean
intervenir una línea de comunicaciones. Utilizan la clave de familia
para desencriptar el campo de acceso que le corresponde, las fuerzas de
seguridad conocen el número de serie y poseen una versión encriptada de
la clave de sesión. Presentan una orden autorizando a las dos entidades
de depósito de claves, junto con el número de serie. Las entidades de
depósito le proporcionan cada una las dos mitades de la clave y luego
proceden al desencriptado para obtener la clave de sesión K. Las
fuerzas de seguridad luego utilizan K para desencriptar el mensaje real.
Puede obtener más detalles acerca del funcionamiento del chip Clipper en Denning (26).
No se ha decidido cuáles serán las
organizaciones que actuarán como entidades autorizadas para el depósito
de claves, es decir, que guardarán las claves del chip Clipper. Las
fuerzas de seguridad no podrán actuar como tales y es posible que al
menos una agencia sea ajena al gobierno.
Es esencial que las entidades autorizadas para el
depósito de claves mantengan bases de datos extremadamente seguras para
estas claves ya que el acceso no autorizado combinado a ambas bases de
datos en depósito podría conducir a la intervención no autorizada de
comunicaciones privadas. En realidad, las entidades de depósito serán
el blanco favorito de quien desee comprometer el sistema Clipper. El
chip Clipper es otro blanco posible.
Skipjack es el algoritmo de encriptado
contenido en el chip Clipper que fue diseñado por la NSA. Utiliza una
clave de 80 bits para encriptar bloques de datos de 64 bits. La misma
clave se utiliza para el desencriptado. Skipjack se puede utilizar del
mismo modo que DES (ver pregunta 5.3) y puede ser más seguro que éste
último ya que utiliza claves de 80 bits y embrolla la información en 32
pasos o "vueltas". DES utiliza claves de 56 bits y embrolla la
información solo 16 veces.
Los detalles de Skipjack son confidenciales. La
decisión de no publicar los detalles del algoritmo fue criticada. Mucha
gente sospecha que Skipjack no es seguro, ya sea debido a un descuido
por parte de sus diseñadores o por la inclusión deliberada de una
puerta-trampa secreta. Por otro lado, se ha tratado de descubrir las
debilidades de DES a través de los años, ya que sus detalles son de
conocimiento público. Estos numerosos intentos (y el hecho de que hayan
fallado) han hecho que se considere al DES como confiable. Como
Skipjack no es público, no se lo puede analizar y por ello el nivel de
confianza debido puede no llegar a manifestarse.
Al tanto de tales críticas, el gobierno invitó a un
grupo de criptógrafos independientes a examinar el algoritmo Skipjack.
Emitieron un informe (12) donde establecían que, aunque el estudio era
limitado para llegar a una conclusión definitiva, creían que Skipjack
era seguro.
Otra consecuencia de la confidencialidad de Skipjack
consiste en que no puede implementarse en versión software sino solo en
la versión hardware cuya fabricación ha sido autorizada por el gobierno.
El propósito del chip Clipper ha
generado mucha controversia y ha sido tema de intensas críticas.
Desafortunadamente, dos problemas distintos se han mezclado en la
amplitud del comentario público y el intercambio de opiniones.
Primero, se discute todo el concepto de las claves en
depósito. Aquellos a favor, lo ven como un modo de obtener
comunicaciones seguras para el público en general al mismo tiempo que
les permite a las fuerzas de seguridad monitorear las comunicaciones de
los sospechosos. Aquellos en contra, lo califican como una intromisión
innecesaria e ineficiente del gobierno en las vidas privadas de los
ciudadanos. Argumentan que las claves en depósito infringen el derecho a
la privacidad y la libertad de expresión. Tomará mucho tiempo y mucho
debate público para que la sociedad llegue a un acuerdo acerca del rol
que deberían cumplir las claves en depósito.
Segundo, existen varias objeciones acerca del
propósito de Clipper, es decir, las objeciones a esta forma particular
de implementación de las claves en depósito y a la idea de claves en
depósito en general. Las objeciones comunes son: que el algoritmo
Skipjack no es público (ver pregunta 6.5) y puede no ser seguro, que las
entidades autorizadas para el depósito de claves no son suficientes,
que las claves de las entidades de depósito pueden ser vulnerables a un
ataque, que las claves de los chips Clipper no se generan de un modo
suficientemente seguro, que no habrá suficiente competencia entre los
implementadores, lo que resultará en chips caros y lentos, que no es
posible implementarlo en versión software y que el tamaño de la clave es
fijo y no se podría incrementar de ser necesario.
Micali (55) ha propuesto un sistema alternativo que
también apunta a equilibrar los intereses privados de los ciudadanos que
actúan dentro de la ley con los propósitos de investigación de las
fuerzas de seguridad. Conocida como criptografía justa con clave
pública, su función y propósito son similares a los del chip Clipper,
pero los usuarios pueden elegir sus propias claves, las cuales pueden
ser registradas en las entidades autorizadas de depósito de claves. El
sistema no requiere del hardware y puede implementarse en su versión
software.
Clipper se encuentra bajo estudio.
Tanto el poder Ejecutivo como el Legislativo lo están considerando y un
panel de consulta recomendó un exhaustivo y extensivo debate público
acerca de la política criptográfica. NIST ha invitado al público a
enviar sus comentarios como parte de su propia revisión.
DSS significa Estándar de Firma
Digital ("Digital Signature Standard"), y requiere al DSA (Algoritmo de
Firma Digital, "Digital Signature Algorithm"). Es parte del proyecto
Capstone (ver pregunta 6.1). Fue seleccionado por NIST en cooperación
con la NSA (ver sección 7) para ser el estándar de autenticación digital
del gobierno de los Estados Unidos. Se encuentra todavía en discusión
si el gobierno debería adoptarlo como estándar, o no.
DSS se basa en el problema del logaritmo discreto
(ver pregunta 4.9) y deriva de los sistemas criptográficos propuestos
por Schnorr (75) y ElGamal (30). Solo sirve para autenticación. Para
una descripción detallada de DSS, ver (63) o (57).
DSS ha encontrado una respuesta poco favorable por
parte de la industria de la computación, que tiene muchas esperanzas de
que el gobierno elija el algoritmo de RSA como estándar oficial dado que
RSA es más utilizado. Muchos artículos en la prensa (54) discuten
acerca de la insatisfacción de la industria con respecto a DSS. La
crítica a DSS se concentra en los siguientes aspectos: no es posible el
intercambio de claves, el sistema criptográfico subyacente es demasiado
reciente y no se lo ha estudiado lo suficiente como para que los
usuarios confíen en su resistencia al ataque, la verificación de las
firmas con DSS es demasiado lenta, la existencia de un segundo estándar
de autenticación les causará muchos inconvenientes a los vendedores de
software y hardware que ya han estandarizado al RSA, y que el proceso
por el cual NIST eligió a DSS fue secreto y arbitrario con la fuerte
influencia de la NSA. Otras críticas fueron dirigidas por NIST a través
de la modificación de la propuesta original. Un mayor detalle de las
críticas varias podrá encontrarlo en (57) y una respuesta proporcionada
por NIST en (78).
En el sistema DSS, la generación de una firma es más
fácil que la verificación, mientras que en el sistema RSA, la
verificación de la firma es más rápida que la generación de la misma (si
los exponentes privados y públicos se eligen con esta propiedad, lo que
es usualmente el caso). NIST reclama que este aspecto es una ventaja
de DSS pero muchos involucrados con la criptografía piensan que es mejor
que la verificación sea una operación rápida.
Las críticas más serias respecto a DSS
apuntan a la seguridad. En un principio DSS se propuso con un tamaño
fijo de clave de 512 bits. Después de mucha crítica en este aspecto,
NIST efectuó una revisión de DSS para permitir el uso de claves de hasta
1024 bits. Más grave es el hecho de que DSS no ha estado en el mercado
lo suficiente como para probar su resistencia ante el ataque y aunque
el problema del logaritmo discreto es antiguo, la forma en que se lo
utiliza en DSS fue propuesta primero por Schnorr en 1989 (75) para su
uso criptográfico y no ha recibido demasiado análisis público. En
general, cualquier sistema criptográfico nuevo podría presentar serias
fallas que solo se descubren después de varios años de estudio por parte
de los criptógrafos. En realidad, ya ha ocurrido en el pasado, ver
(13) si desea encontrar ejemplos detallados. RSA ha resistido 15 años
de riguroso análisis. Al no contar con pruebas matemáticas de su
seguridad, nada mejor para comprobar la confiabilidad del sistema que
intentar quebrarlo repetidamente. Aunque DSS puede llegar a ser un
sistema fuerte, su corto recorrido deja dudas a despejar en los años
venideros.
Algunos investigadores advierten acerca de la
existencia de números primos puerta-trampa en DSS, lo que facilitaría un
ataque. Estos números son casos raros y se pueden evitar si se
utilizan los procedimientos correctos en la generación de claves (78).
NIST ha solicitado una patente para el
DSS y existen reclamos de que éste ya está cubierto con otras patentes
de clave pública. NIST anunció recientemente su intención de otorgar
derechos exclusivos de sub-licencias para la patente de DSS a Public Key
Partners (PKP) quienes también poseen los derechos de sub-licencias de
otras patentes que pueden cubrir a DSS (ver pregunta 1.5). En el
acuerdo entre NIST y PKP, PKP estableció públicamente lineamientos por
los que otorgará licencias para el uso del DSS. PKP estableció que DSS
se puede utilizar sin pagar derechos en caso de uso personal, no
comercial o en caso de uso gubernamental. Ver (61) detalles del acuerdo
y de la política licenciataria.
Luego de que NIST emitiera la
propuesta de DSS en agosto de 1991, existió un período en el cual se
solicitó la opinión del público. NIST revisó luego la propuesta en base
a esos comentarios. DSS se puede emitir como una publicación oficial
FIPS y convertirse en un estándar oficial del gobierno de los Estados
Unidos., aunque no está definido cuándo tendría lugar. DSS se encuentra
en el proceso de convertirse en un estándar junto con RSA para la
industria de servicios financieros. Un reciente borrador del estándar
(1) contiene una versión mejorada de DSS.
NIST es la sigla del Instituto
Nacional de Estándares y Tecnología ("National Institute of Standards
and Technology"), antiguamente una división del Departamento de Comercio
de los Estados Unidos previamente conocida como NBS (Consejo Nacional
de Estándares, "National Bureau of Standards"). A través de su
Laboratorio de Sistemas Informáticos apunta a promover sistemas abiertos
e interoperables que estimularían el desarrollo de actividad económica
basada en la computación. NIST emite estándares y lineamientos que
espera sean adoptados por todos los sistemas informáticos de los Estados
Unidos y promociona talleres y seminarios. Los estándares oficiales se
publican como FIPS (Estándares Federales para el Procesamiento de la
Información, "Federal Information Processing Standards").
En 1987, el Congreso sancionó la Ley de Seguridad
Informática (Computer Security Act) que autoriza a NIST a desarrollar
los estándares para garantizar la seguridad de información confidencial
pero no clasificada como secreta en los sistemas informáticos del
gobierno. Animó a NIST a trabajar con otras agencias del gobierno e
industrias privadas a fin de evaluar los estándares de seguridad
informática.
NIST emite estándares para las rutinas
criptográficas que las agencias gubernamentales de los Estados Unidos
están obligadas a observar y el sector privado, en general, adopta. En
enero de 1977, NIST declaró a DES (ver pregunta 5.1) el estándar de
encriptado oficial de los Estados Unidos y publicado como publicación
FIPS 46. El DES pronto se convirtió un estándar de facto en todo el
país.
Hace algunos años, se le solicitó a NIST elegir un
conjunto de estándares criptográficos para los Estados Unidos. Esto se
conoce como el proyecto Capstone (ver sección 6). Luego de un tiempo de
deliberaciones cuasi secretas y en cooperación con la NSA, NIST emitió
propuestas para varios estándares en criptografía, incluyendo las firmas
digitales (DSS) y el encriptado de datos (el chip de Clipper), piezas
que conforman el proyecto Capstone.
Se ha criticado a NIST por otorgarle a la NSA
demasiado poder para establecer los estándares criptográficos debido al
conflicto de intereses entre la NSA y el Departamento de Comercio y
NIST. La NSA tiene más experiencia en criptografía y criptoanalistas y
cuenta con criptógrafos más calificados que los del NIST. Sería poco
realista pensar que NIST despreciaría tan valiosa asistencia.
La NSA (Agencia De Seguridad Nacional,
"National Security Agency") es una agencia ultra secreta del gobierno
estadounidense que fue creada por Harry Truman en 1952. Su misma
existencia se mantuvo en secreto durante años. Para informarse de la
historia de la NSA, ver Bamford (2). La NSA debe escuchar y decodificar
todas las comunicaciones extranjeras de interés para la seguridad de
los Estados Unidos. También se utilizó su poder en diversas formas (ver
pregunta 7.4) para evitar que la criptografía llegue al alcance del
público y, así, evitar que enemigos de los Estados Unidos empleen los
métodos de encriptado difíciles de quebrar para la NSA.
Como principal agencia criptográfica del gobierno, la
NSA cuenta con amplios recursos informáticos y financieros y emplea a
un gran grupo de criptógrafos. Los avances de la criptografía logrados
en la NSA no se dan a conocer públicamente, su reserva ha levantado
rumores acerca de la capacidad de la NSA para quebrar sistemas
criptográficos populares como el DES y acerca de que la NSA haya
colocado puntos débiles, llamados puerta-trampa, en los sistemas
criptográficos avalados por el gobierno como el DES. Estos rumores no
se han negado ni confirmado y el criterio utilizado por la NSA para
seleccionar los estándares nunca fue dado a conocer.
Los avances recientes en la industria informática y
de las telecomunicaciones han sometido a las acciones de la NSA a un
escrutinio sin precedentes y la agencia ha sido objeto de terribles
críticas por impedir que las industrias estadounidenses puedan utilizar o
vender herramientas criptográficas seguras. Las dos razones
principales de esta crítica son, por un lado, el colapso de la Unión
Soviética y, por otro, el desarrollo y expansión de las herramientas
criptográficas con clave pública accesibles comercialmente. Bajo
presión, la NSA se vería obligada a cambiar su política.
La ley limita las actividades de la
NSA a tareas de inteligencia internacional. Sin embargo, la NSA se
ocupa del desarrollo de la criptografía comercial debido a que la
posibilidad de obtener comercialmente herramientas criptográficas
poderosas podría impedir a la NSA decodificar las comunicaciones
internacionales. En otras palabras, la NSA se preocupa de que la
criptografía comercial segura no caiga en las manos equivocadas.
La NSA ha establecido que no existe objeción al uso
de criptografía segura en la industria estadounidense. Tampoco puso
objeciones a las herramientas criptográficas utilizadas para
autenticación, como opuestas a las utilizadas para privacidad. Sin
embargo, se considera que la NSA sigue políticas cuyo efecto en la
práctica consisten en limitar o debilitar las herramientas
criptográficas utilizadas por ciudadanos estadounidenses que actúan en
el marco de la ley, y empresas. Ver Barlow (3) respecto del tema del
efecto de la NSA en la criptografía comercial.
La NSA influye sobre la criptografía comercial de
diferentes formas. Primero, controla la exportación de criptografía
desde los Estados Unidos (ver pregunta 1.6), y, por lo general, no
aprueba la exportación de productos para encriptado a menos que el
tamaño de la clave se limite estrictamente. Sin embargo, aprueba la
exportación de cualquier producto utilizado solo para autenticación, sin
importar el largo de la clave, siempre y cuando el producto no pueda
modificarse y utilizarse para encriptado. La NSA también bloqueó la
posibilidad de que los métodos de encriptado se patenten o publiquen, ya
que significaría una amenaza para la seguridad nacional, ver Landau
(46). Además, la NSA cumple el papel de "consejera" para NIST en la
evaluación y selección de estándares gubernamentales de seguridad
informática. En este aspecto, ha cumplido un rol prominente y
controvertido en la selección de DES y en el desarrollo de un conjunto
de estándares conocidos como el proyecto Capstone (ver sección 6) que
incluye DSS y el chip de Clipper. La NSA puede presionar el mercado
para que las empresas produzcan (o no) materiales criptográficos, ya que
la NSA es un importante cliente de las mismas.
La criptografía está en la mira del público como
nunca antes y se ha convertido en materia de debate nacional. La
categoría de la criptografía y el papel de juega la NSA cambiarán sin
duda en el futuro.
Si las firmas digitales reemplazaran a
las de puño y letra deben tener la misma validez legal que estas
últimas, es decir, los documentos firmados con firmas digitales deben
ser legalmente válidos. NIST ha establecido que su propuesto Estándar
de Firma Digital DSS (ver pregunta 6.8) debería ser capaz de "servir
como prueba a un tercero de que el documento fue firmado por quien
generó la firma". El gobierno de los Estados Unidos firmará sus órdenes
de compra de acuerdo a tales estándares, lo cual implica que respalda
la autoridad legal de la firma digital en una corte de justicia. Los
análisis preliminares de jurisprudencia dieron como resultado que las
firmas digitales cumplirían con los requerimientos legales en la mayoría
de los casos, incluyendo el uso comercial según se define en el UCC
(Código de Uniforme de Comercio, "Uniform Commercial Code"). Una
decisión de la GAO (Oficina de Contaduría del Gobierno, "Government
Accounting Office") requerida por NIST también confirma que las firmas
digitales tendrán la misma categoría legal que las escritas. (20).
Sin embargo, como la validez de los documentos con
firma digital nunca se disputó en un tribunal, el tratamiento legal no
está del todo definido. Si se diera el caso, los tribunales emitirán
normas que colectivamente definirán qué métodos de firma digital,
tamaños de claves, y precauciones de seguridad se aceptarán para
considerar legal a la firma digital.
Las firmas digitales tienen potencialmente una mayor
autoridad legal que las escritas. Si se firma de puño y letra un
contrato de diez páginas en la página décima, no se puede asegurar que
las primeras nueve páginas no hayan sido alteradas. Si el contrato se
firma digitalmente, un tercero puede verificar que ni siquiera un bit
del documento haya sido alterado.
Hoy en día, si dos personas desean firmar
digitalmente una serie de contratos, firmarán un contrato en papel donde
acuerden que en el futuro todos los contratos firmados en forma digital
por ellos, con un cierto método de firma y un determinado tamaño de
clave serán válidos.
Una función de "hash" es una función
que toma un argumento de tamaño variable y da un resultado de tamaño
fijo, que se denomina valor de "hash". Si la función de "hash" es
unidireccional, es decir, difícil de invertir, también se denomina
función de digesto de mensaje ("message digest") y el resultado se
denomina digesto de mensaje. La idea es que éste resumen represente
concisamente el mensaje o documento completo del cual fue obtenido. Se
puede considerar al digesto de mensaje como "huella digital" de un
documento mayor. Ejemplos de estas funciones de "hash" son MD4, MD5 y
SHS (ver preguntas 8.3 y 8.4).
Aunque las funciones de "hash" en general cumplen
diferentes funciones en los programas de computación, en criptografía se
utilizan para generar un digesto de mensaje que representa a un archivo
o mensaje de mayor longitud. Como las funciones de "hash" son más
rápidas que las de firma, es más eficiente procesar una firma digital
utilizando un digesto de mensaje, que es pequeño, que en base al
documento en toda su extensión. Además, un digesto se puede hacer
público sin revelar los detalles del documento que lo origina. Es
importante utilizar las funciones de "hash" en registro digital de fecha
y hora con firma digital, ya que así se puede obtener el fechado sin
revelar el contenido del documento al servicio de sellado. (ver
pregunta 3.18)
Una función de "hash" utilizada para autenticación
digital debe tener ciertas propiedades que la hagan lo suficientemente
segura para uso criptográfico. Específicamente, debe ser imposible
encontrar un mensaje cuyo valor de "hash" resulte en un valor
predeterminado, tal como poder encontrar dos mensajes distintos con un
único valor de "Hash ". La capacidad de encontrar un mensaje cuyo
"hash" sea de un determinado valor, le permitiría a un atacante
sustituir un mensaje real firmado por uno falso. También le permitiría a
una persona desconocer falsamente un mensaje alegando que ha firmado
otro mensaje con un valor de "hash" idéntico al del mensaje, violando
así la calidad de no repudio que poseen las firmas digitales. Encontrar
dos mensajes con idéntico valor de "hash" le permitiría a un atacante
engañar a un usuario para que firme un mensaje falso con un valor de
"hash" idéntico al real, pero con un contenido distinto. El digesto de
mensaje debe ser lo suficientemente largo como para evitar que un
atacante realice una búsqueda exhaustiva . Por ejemplo, si una función
de "hash" produce un resultado de 100 bits, una búsqueda exhaustiva
llevaría 2^{100} intentos para encontrar un valor similar y,
aproximadamente, 2^{50} intentos promedio para encontrar dos mensajes
que produzcan el mismo digesto.
Un sistema de firma digital se puede quebrar atacando
el problema matemático en el cual se basa la firma digital o la función
de "hash" utilizada para crear digestos de documentos. Cuando se elija
una función de autenticación, es necesario elegir un método y una
función de "hash" que resistan al ataque. Reforzar solo uno de los dos
componentes es inútil pues el atacante se dirigirá hacia el más débil.
En realidad, atacar la función de "hash" en la práctica es más difícil,
ya que requiere de una gran cantidad de memoria y la habilidad de
engañar al usuario para que firme un mensaje en especial. Con 2^{64}
operaciones, un atacante puede encontrar dos mensajes con el mismo valor
de "hash" bajo cualquiera de las funciones de "hash" de tipo MD. El
esfuerzo es comparable al necesario para quebrar un módulo RSA de 512
bits, por eso, MD5 constituye una buena elección si se trabaja con un
módulo RSA de 512 bits. Sin embargo, aquellos con grandes necesidades
de seguridad, como las autoridades certificantes, utilizan un módulo
mayor y una función de "hash" que produce un resumen más extenso, ya sea
SHS (resumen de 160 bits) o una versión modificada de MD4 que produce
un resumen 256 bits (ver 71).
MD2, MD4 y MD5 (MD quiere decir
digesto de mensaje o "message digest") son funciones de "hash" de amplia
utilización que fueron diseñadas por Ron Rivest específicamente para su
uso en criptografía. Producen resúmenes de 128 bits y no se conoce
ningún ataque más rápido que supere en eficiencia a la búsqueda
exhaustiva.
MD2 es la más lenta de las tres. MD4 (71) es la más
rápida. MD5 (73) fue llamada por Rivest "MD4 con cinturón de
seguridad", ya que tiene un diseño más conservador que MD4. Su diseño
proporciona mayor seguridad contra los ataques, pero es alrededor de un
33% más lenta que MD4. MD5 es, de los tres, el algoritmo más usado.
MD4 y MD5 están disponibles al público para uso irrestricto y MD2 para
su uso con PEM (ver pregunta 8.7). Los detalles acerca de MD2, MD4 y
MD5 con código de fuente en C están disponibles en los Internet RFCs
(Solicitud de Comentarios, "Request For Comment") 1319, 1320 y 1321
respectivamente.
No se han descubierto ataques factibles a ninguno de
los algoritmos MD, aunque ciertas teorías recientes encontraron algunas
propiedades estructurales interesantes. (24, 25).
El SHS (Estándar de "Hash" Seguro,
"Secure "hash" Standard") (58) es una función de "hash" propuesta por
NIST (ver pregunta 7.1) y adoptado por el gobierno de los Estados
Unidos. Está diseñada para ser utilizada con el DSS (Estándar de Firma
Digital, "Digital Signature Standard", ver pregunta 6.8) y forma parte
del proyecto Capstone (ver pregunta 6.1). SHS produce un valor de
"hash" de 160 bits en base a un mensaje de tamaño variable. SHS es
similar en su estructura a MD4 y MD5. Es alrededor de un 25% más lento
que MD5 pero más seguro porque produce un digesto de mensaje 25% más
extenso que las funciones MD. SHS es la única parte del proyecto
Capstone que fue adoptada oficialmente como estándar por el gobierno.
Kerberos es un sistema de
autenticación en red con clave secreta desarrollado en MIT (79), que
utiliza el sistema DES para encriptado y autenticación. A diferencia de
un sistema de autenticación con clave pública, no produce firmas
digitales: Kerberos fue diseñado para autenticar accesos a recursos de
red y no para autenticar la autoría de documentos. Kerberos proporciona
una autenticación en tiempo real en un medio distribuido pero no es
útil para la verificación de documentos ante terceros.
En el sistema Kerberos, existe un sitio designado en
la red, denominado servidor Kerberos, que realiza funciones
adminstrativas centralizadas para la administración de claves. El
servidor mantiene la base de datos que contiene las claves secretas de
todos los usuarios, genera claves de sesión cuando dos usuarios
requieren comunicaciones seguras y autentica la identidad de un usuario
que requiere ciertos servicios de la red.
Kerberos, como cualquier otro sistema con clave
secreta, requiere de la confianza en un tercero. En el caso de Kerberos
se trata del servidor. Si el servidor se encontrara en peligro, la
integridad del sistema se caería. La criptografía con clave pública fue
designada precisamente para evitar tener que confiar en terceros o en
líneas de comunicaciones (ver pregunta 1.4). Kerberos se puede ser
adecuado para aquellos que no requieren de las funciones y propiedades
más robustas de los sistemas con clave pública.
RC2 y RC4 son algoritmos de encriptado
de tamaño de clave variable diseñados por Ron Rivest para el encriptado
masivo de datos. Son alternativas al DES (ver pregunta 5.1) y son
tanto o más rápidos que DES. Pueden ser más seguros que DES debido a su
capacidad para utilizar claves más extensas pero pueden ser más
riesgosos si se utilizan claves cortas.
RC2 es un algoritmo de encriptado de bloque simétrico
con clave de tamaño variable que puede servir como reemplazo de DES,
por ejemplo, en versiones para exportar productos que de otro modo
utilizarían DES. RC2 se puede utilizar del mismo modo que DES (ver
pregunta 5.3) incluyendo el encriptado triple. RC2 es aproximadamente
el doble de rápido que DES, al menos en software. RC4 es un algoritmo
de encriptado de clave simétrica de tamaño variable y es 10 o más veces
más rápido que DES en software. Tanto RC2 como RC4 son muy compactos en
términos del tamaño de sus códigos.
Un acuerdo entre el Software Publishers Association
(SPA) y el gobierno de los Estados Unidos le otorga a RC2 y RC4 una
categoría especial en el cual la aprobación para la exportación es un
proceso más simple y rápido que el usual para la criptografía. Sin
embargo para estar en condiciones de obtener esta aprobación de
exportación rápida, el producto debe limitar el tamaño de las claves de
RC2 y RC4 a 40 bits, aunque se permiten 56 bits para subsidiarias y
oficinas en el extranjero de empresas estadounidenses. Una cadena
adicional de 40 bits, denominada "salt", se puede utilizar para malograr
ataques por medio de búsqueda de posibles encriptados en una gran
tabla. El "salt" se añade a la clave de encriptado y esta clave
alargada se utiliza para encriptar el mensaje, luego se envía el "salt",
sin encriptar, junto con el mensaje. RC2 y RC4 fueron utilizados por
quienes quieren exportar sus productos, dado que el DES casi nunca se
aprueba para la exportación. RC2 y RC4 son algoritmos pertenecientes a
RSA Data Security, Inc. y sus detalles no se han publicado.
PEM (estándar de Correo de Internet
con Privacidad, "Internet Privacy-Enhanced Mail standard") fue diseñado y
propuesto, pero no oficialmente adoptado, por el Consejo de Actividades
de Internet ("Internet Activities Board") a fin de proporcionarle
seguridad al correo electrónico de Internet. Diseñado para trabajar con
el actual e-mail de Internet, PEM incluye funciones de encriptado,
autenticación y administración de claves. Permite utilizar sistemas de
clave pública o privada. Se utilizan diversas herramientas de
criptografía: para cada mensaje por correo electrónico, el algoritmo
específico de encriptado, el algoritmo de firma digital y la función de
"hash" aparecen en el encabezado. PEM solo utiliza ciertos algoritmos
criptográficos, mientras que otros pueden agregarse después. DES en el
modo CBC es el único algoritmo de encriptado de mensaje que PEM utiliza
actualmente, mientras que RSA y DES se utilizan indistintamente para la
administración de claves. PEM también incluye el uso de certificados,
avalando la estructura propuesta por el estándar CCITT X.509.
Se pueden encontrar más detalles acerca de PEM en los
Internet RFCs (Solicitud de Comentario, "Request For Comment") 1421 a
1424. PEM tiene posibilidades de ser adoptado por el Consejo de
Actividades de Internet en el plazo de un año. La empresa Trusted
Information Systems (Sistemas de Información Confiable) ha desarrollado
una implementación no comercial de PEM y otras que estarán disponibles
en breve.
RIPEM es un programa desarrollado por
Mark Riordan que otorga seguridad al correo de Internet. Sirve para
encriptado y firma digital y utiliza rutinas de RSA y DES de RSAREF (ver
pregunta 8.10). RIPEM no es del todo compatible con PEM, y por
ejemplo, no incluye certificados. Sin embargo, futuras versiones lo
incluirán y serán totalmente compatibles con PEM. RIPEM está disponible
en su uso no comercial en los Estados Unidos y Canadá. (Puede obtener
RIPEM por medio de una cuenta ftp en ripem.msu.edu.)
PKCS (Estándares de Criptografía con
Clave Pública, "Public Key Cryptography Standards") consiste en un
conjunto de estándares diseñados por RSA Data Security Inc. en
cooperación con un consorcio de la industria informática que agrupa a
Apple, Microsoft, DEC, Lotus, Sun y MIT. PKCS fue citado por el OIW
(Taller de Implementadores OSI, "OSI Implemetor's Workshop") como método
de implementación de estándares OSI. PKCS es compatible con PEM (ver
pregunta 8.7) pero se extiende más allá de PEM. Por ejemplo, PEM solo
permite manejar datos ASCII, mientras que el PKCS está diseñado también
para datos binarios. PKCS es compatible con el estándar CCITT X.509.
PKCS incluye estándares de implementación de
algoritmos específicos e independientes. Los algoritmos específicos
incluyen los sistemas de intercambio de claves RSA, DES y
Diffie-Hellman. También define la sintaxis del algoritmo independiente
para firmas digitales, sobres digitales (para encriptado) y
certificación. Ello permite a quien implemente cualquier algoritmo
criptográfico que se atenga a una sintaxis estándar de modo preservar la
interoperatividad. Los documentos que detallan los estándares PKCS se
pueden obtener enviando un e-mail a pkcs@rsa.com o por ftp anónimo a
rsa.com.
RSAREF es una serie de rutinas
criptográficas en código fuente en "C" portable, obtenible sin cargo de
los Laboratorios RSA, una división de RSA Data Security, Inc. Incluye
RSA, MD2, MD5 y DES. El intercambio de claves mediante Diffie-Hellman
se incluirá en versiones subsiguientes. Incluye subrutinas de bajo
nivel, como ser la exponenciación modular tanto como funciones
criptográficas de alto nivel, como la verificación de firma digital.
Las rutinas aritméticas pueden manejar números enteros de precisión
múltiple y las rutinas del algoritmo de RSA pueden administrar tamaños
variables de clave. RSAREF es compatible con los estándares PEM y PKCS.
RSAREF se encuentra disponible a los ciudadanos
estadounidenses y canadienses y a los residentes permanentes en los
Estados Unidos. Se puede utilizar en forma personal y no comercial,
pero no se puede utilizar comercialmente o enviar fuera de los Estados
Unidos o Canadá. La licencia RSAREF contiene más detalles acerca del
uso permitido y no permitido. RSAREF se encuentra disponible en
Internet enviando un e-mail a rsaref@rsa.com o por ftp a rsa.com
Agradezco a Burt Kaliski, Jim Bidzos, Matt
Robshaw, Steve Dusse, Kurt Stammberger, George Parsons, John Gilmore,
Stuart Haber, Dorothy Denning y Dennis Branstad la información y la
valiosa ayuda proporcionadas y al Lic. J. Andrés Hall y a Cynthia R.
Neme en la traducción de la presente monografía.
2. J. Bamford. The Puzzle Palace. Houghton Mifflin, Boston, 1982.
3. J.P. Barlow. Decrypting the puzzle palace. Communications of the ACM, 35(7):25--31, July 1992.
4. D. Bayer, S. Haber, and W.S. Stornetta. Improving the efficiency and reliablility of digital time-stamping. In R.M. Capocelli, editor, Sequences '91: Methods in Communication, Security, and Computer Science, Springer-Verlag, Berlin, 1992.
5. P. Beauchemin, G. Brassard, C. Crepeau, C. Goutier, and C. Pomerance. The generation of random numbers that are probably prime. J. of Cryptology, 1:53--64, 1988.
6. E. Biham and A. Shamir. Differential Cryptanalysis of the Data Encryption Standard. Springer-Verlag, New York, 1993.
7. E. Biham and A. Shamir. Differential cryptanalysis of the full 16-round DES. In Advances in Cryptology --- Crypto '92, Springer-Verlag, New York, 1993.
8. M. Blum and S. Goldwasser. An efficient probabilistic public-key encryption scheme which hides all partial information. In Advances in Cryptology --- Crypto '84, pages 289--299, Springer-Verlag, New York, 1985.
9. J. Brandt and I. Damgard. On generation of probable primes by incremental search. In Advances in Cryptology --- Crypto '92, Springer-Verlag, New York, 1993.
10. G. Brassard. Modern Cryptology. Volume 325 of Lecture Notes in Computer Science, Springer-Verlag, Berlin, 1988.
11. D.M. Bressoud. Factorization and Primality Testing. Undergraduate Texts in Mathematics, Springer-Verlag, New York, 1989.
12. E.F. Brickell, D.E. Denning, S.T. Kent, D.P. Maher, and W. Tuchman. Skipjack Review, Interim Report: The Skipjack Algorithm. July 28, 1993.
13. E.F. Brickell and A.M. Odlyzko. Cryptanalysis: A survey of recent results. Proceedings of the IEEE, 76:578--593, 1988.
14. J. Brillhart, D.H. Lehmer, J.L. Selfridge, B. Tuckerman, and S.S. Wagstaff Jr. Factorizations of b^n +/- 1, b = 2,3,5,6,7,10,11,12 up to High Powers. Volume 22 of Contemporary Mathematics, American Mathematical Society, Providence, Rhode Island, 2nd edition, 1988.
15. J. Buchmann, J. Loho, and J. Zayer. An implementation of the general number field sieve. In Advances, in Cryptology --- Crypto '93, Springer-Verlag, New York, 1994. To appear.
16. J.P. Buhler, H.W. Lenstra, and C. Pomerance. Factoring integers with the number field sieve. 1992. To appear.
17. M.V.D. Burmester, Y.G. Desmedt, and T. Beth. Efficient zero-knowledge identification schemes for smart cards. Computer Journal, 35:21--29, 1992.
18. K.W. Campbell and M.J. Wiener. Proof that DES is not a group. In Advances in Cryptology --- Crypto '92, Springer-Verlag, New York, 1993.
19. CCITT (Consultative Committee on International Telegraphy and Telephony). Recommendation X.509: The Directory---Authentication Framework. 1988.
20. Comptroller General of the United States. Matter of National Institute of Standards and Technology --- Use of Electronic Data Interchange Technology to Create Valid Obligations. December 13, 1991. File B-245714.
21. D. Coppersmith, A.M. Odlyzko, and R. Schroeppel. Discrete logarithms in GF(p). Algorithmica, 1:1--15, 1986.
22. T.H. Cormen, C.E. Leiserson, and R.L. Rivest. Introduction to Algorithms. MIT Press, Cambridge, Massachusetts, 1990.
23. G. Davida. Chosen signature cryptanalysis of the RSA public key cryptosystem. Technical Report TR-CS-82-2, Dept of EECS, University of Wisconsin, Milwaukee, 1982.
24. B. den Boer and A. Bosselaers. An attack on the last two rounds of MD4. In Advances in Cryptology --- Crypto '91, pages 194--203, Springer-Verlag, New York, 1992.
25. B. den Boer and A. Bosselaers. Collisions for the compression function of MD5. In Advances in Cryptology --- Eurocrypt '93, 1993. Preprint.
26. Dorothy E. Denning. The Clipper encryption system. American Scientist, 81(4):319--323, July--August 1993.
27. W. Diffie. The first ten years of public-key cryptography. Proceedings of the IEEE, 76:560--577, 1988.
28. W. Diffie and M.E. Hellman. Exhaustive cryptanalysis of the NBS Data Encryption Standard. Computer, 10:74--84, 1977.
29. W. Diffie and M.E. Hellman. New directions in cryptography. IEEE Transactions on Information Theory, IT-22:644--654, 1976.
30. T. ElGamal. A public-key cryptosystem and a signature scheme based on discrete logarithms. IEEE Transactions on Information Theory, IT-31:469--472, 1985.
31. A. Fiat and A. Shamir. How to prove yourself: Practical solutions to identification and signature problems. In Advances in Cryptology --- Crypto '86, pages 186--194, Springer-Verlag, New York, 1987.
32. S. Goldwasser and S. Micali. Probabilistic encryption. J. of Computer and System Sciences, 28:270--299, 1984.
33. D.M. Gordon. Discrete logarithms using the number field sieve. March 28, 1991. To appear.
34. D.M. Gordon and K.S. McCurley. Massively parallel computation of discrete logarithms. In Advances in Cryptology --- Crypto '92, Springer-Verlag, New York, 1993.
35. J. Hastad. Solving simultaneous modular equations of low degree. SIAM J. Computing, 17:336--241, 1988.
36. M.E. Hellman. A cryptanalytic time-memory trade off. IEEE Transactions on Information Theory, IT-26:401--406, 1980.
37. D. Kahn. The Codebreakers. Macmillan Co., New York, 1967.
38. B.S. Kaliski. A survey of encryption standards. RSA Data Security, Inc., September 2, 1993.
39. B.S. Kaliski Jr., R.L. Rivest, and A.T. Sherman. Is the data encryption standard a group ¿J. of Cryptology, 1:3--36, 1988.
40. S. Kent. RFC 1422: Privacy Enhancement for Internet Electronic Mail, Part II: Certificate-Based Key Management. Internet Activities Board, February 1993.
41. D.E. Knuth. The Art of Computer Programming. Volume 2, Addison-Wesley, Reading, Mass., 2nd edition, 1981.
42. N. Koblitz. A Course in Number Theory and Cryptography. Springer-Verlag, New York, 1987.
43. N. Koblitz. Elliptic curve cryptosystems. Mathematics of Computation, 48:203--209, 1987.
44. X. Lai and J.L. Massey. A proposal for a new block encryption standard. In Advances in Cryptology --- Eurocrypt '90, pages 389--404, Springer-Verlag, Berlin, 1991.
45. B.A. LaMacchia and A.M. Odlyzko. Computation of discrete logarithms in prime fields. Designs, Codes and Cryptography, 1:47--62, 1991.
46. S. Landau. Zero knowledge and the Department of Defense. Notices of the American Mathematical Society, 35:5--12, 1988.
47. A.K. Lenstra and H.W. Lenstra Jr. Algorithms in number theory. In J. van Leeuwen, editor, Handbook of Theoretical Computer Science, MIT Press/Elsevier, Amsterdam, 1990.
48. A.K. Lenstra, H.W. Lenstra Jr., M.S. Manasse, and J.M. Pollard. The factorization of the ninth Fermat number. 1991. To appear.
49. A.K. Lenstra and M.S. Manasse. Factoring with two large primes. In Advances in Cryptology --- Eurocrypt '90, pages 72--82, Springer-Verlag, Berlin, 1991.
50. H.W. Lenstra Jr. Factoring integers with elliptic curves. Ann. of Math., 126:649--673, 1987.
51. M. Matsui. Linear cryptanalysis method for DES cipher. In Advances in Cryptology --- Eurocrypt '93, Springer-Verlag, Berlin, 1993. To appear.
52. R.C. Merkle and M.E. Hellman. Hiding information and signatures in trapdoor knapsacks. IEEE Transactions on Information Theory, IT-24:525--530, 1978.
53. R.C. Merkle and M.E. Hellman. On the security of multiple encryption. Communications of the ACM, 24:465--467, July 1981.
54. E. Messmer. NIST stumbles on proposal for public-key encryption. Network World, 9(30), July 27, 1992.
55. S. Micali. Fair public-key cryptosystems. In Advances in Cryptology --- Crypto '92, Springer-Verlag, New York, 1993.
56. V.S. Miller. Use of elliptic curves in cryptography. In Advances in Cryptology --- Crypto '85, pages 417--426, Springer-Verlag, New York, 1986.
57. National Institute of Standards and Technology (NIST). The Digital Signature Standard, proposal and discussion. Communications of the ACM, 35(7):36--54, July 1992.
58. National Institute of Standards and Technology (NIST). FIPS Publication 180: Secure Hash Standard (SHS). May 11, 1993.
59. National Institute of Standards and Technology (NIST). FIPS Publication 46-1: Data Encryption Standard. January 22, 1988. Originally issued by National Bureau of Standards.
60. National Institute of Standards and Technology (NIST). FIPS Publication 81: DES Modes of Operation. December 2, 1980. Originally issued by National Bureau of Standards.
61. National Institute of Standards and Technology (NIST). Notice of proposal for grant of exclusive patent license. Federal Register, 58(108), June 8, 1993.
62. National Institute of Standards and Technology (NIST). A proposed Federal Information Processing Standard for an Escrowed Encryption Standard (EES). Federal Register, 58(145), July 30, 1993.
63. National Institute of Standards and Technology (NIST). Publication XX: Announcement and Specifications for a Digital Signature Standard (DSS). August 19, 1992.
64. A.M. Odlyzko. Discrete logarithms in finite fields and their cryptographic significance. In Advances in Cryptology --- Eurocrypt '84, pages 224--314, Springer-Verlag, Berlin, 1984.
65. Office of the Press Secretary. Statement. The White House, April 16, 1993.
66. J. Pollard. Monte Carlo method for factorization. BIT, 15:331--334, 1975.
67. J. Pollard. Theorems of factorization and primality testing. Proc. Cambridge Philos. Soc., 76:521--528, 1974.
68. M.O. Rabin. Digitalized signatures as intractable as factorization. Technical Report MIT/LCS/TR-212, MIT, 1979.
69. R.L. Rivest. Cryptography. In J. van Leeuwen, editor, Handbook of Theoretical Computer Science, MIT Press/Elsevier, Amsterdam, 1990.
70. R.L. Rivest. Finding four million random primes. In Advances in Cryptology --- Crypto '90, pages 625--626, Springer-Verlag, New York, 1991.
71. R.L Rivest. The MD4 message digest algorithm. In Advances in Cryptology --- Crypto '90, pages 303--311, Springer-Verlag, New York, 1991.
72. R.L. Rivest. Response to NIST's proposal. Communications of the ACM, 35:41--47, July 1992.
73. R.L. Rivest. RFC 1321: The MD5 Message-Digest Algorithm. Internet Activities Board, April 1992.
74. R.L. Rivest, A. Shamir, and L. Adleman. A method for obtaining digital signatures and public-key cryptosystems. Communications of the ACM, 21(2):120--126, February 1978.
75. C.P. Schnorr. Efficient identification and signatures for smart cards. In Advances in Cryptology --- Crypto '89, pages 239--251, Springer-Verlag, New York, 1990.
76. M. Shand and J. Vuillemin. Fast implementations of RSA cryptography. In Proceedings of the 11th IEEE Symposium on Computer Arithmetic, pages 252--259, IEEE Computer Society Press, Los Alamitos, CA, 1993.
77 R.D. Silverman. The multiple polynomial quadratic sieve. Math. Comp., 48:329--339, 1987.
78. M.E. Smid and D.K. Branstad. Response to comments on the NIST proposed Digital Signature Standard. In Advances in Cryptology --- Crypto '92, Springer-Verlag, New York, 1993.
79. J.G. Steiner, B.C. Neuman, and J.I. Schiller. Kerberos: an authentication service for open network systems. In Usenix Conference Proceedings, pages 191--202, Dallas, Texas, February 1988.
80. M.J. Wiener. Efficient DES key search. August 20, 1993. Presented at Crypto '93 rump session.
Para más información sobre RSA Laboratories, dirigirse a
100 Marine Parkway
Redwood City, CA 94065
(415) 595-7703
(415) 595-4126 (fax)
Favor dirigir comentarios y sugerencias a faq-editor@rsa.com.
No hay comentarios:
Publicar un comentario