Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1
Jose de Jess ngel ngel
Criptografa Para Principiantes
(Versin 1.0)
Jos de Jess Angel Angel
jesus@seguridata.com
Objetivo: Este artculo tiene como propsito explicar algunas
herramientas de seguridad informtica, tratando de enfatizar la
importancia de la criptografa; se busca dar una explicacin lo ms
sencilla posible. Para un estudio ms completo se recomienda ver la
bibliografa.
Criptografa para principiantes
2
Jose de Jess ngel ngel
ndice
0 Prefacio....................................................................... 3
1 Introduccin................................................................ 8
2 Criptografa simtrica.................................................. 12
DES....................................................................... 13
TDES .................................................................... 13
AES........................................................................ 15
Funiones de Flujo................................................. 15
Funiones Hash...................................................... 15
3 Criptografa asimtrica................................................. 21
RSA....................................................................... 22
Esquema de cifrado............................................... 24
Esquema de firma digital....................................... 24
Aspectos importantes............................................ 26
CCE....................................................................... 27
4 Otras herramientas criptogrficas................................ 31
A) Comparticin de Secretos................................ 31
B) Criptografa Visual............................................ 32
C) Dinero Electrnico............................................ 35
5 Certificados Digitales................................................... 37
6 Infraestructura de claves pblicas............................... 39
7 Comercio Electrnico................................................... 43
8 Protocolos de seguridad.............................................. 45
SSL........................................................................ 46
SET........................................................................ 47
9 Vocabulario sobre criptografa..................................... 50
10 Vocabulario matemtico usado
frecuentemente en criptografa.................................. 52
11 Bibliografa................................................................. 55
Seguridad en cmputo........................................... 55
Criptografa y Teora de los Nmeros................... 55
Protocolos (SSL, SET)........................................... 58
Infraestructura de claves pblicas y certificados
digitales.................................................................. 58
Criptografa Visual................................................. 59
Comparticin de Secretos.................................
59
Criptografa para principiantes
3
Jose de Jess ngel ngel
0 Prefacio
El uso de tcnicas criptogrficas tiene como propsito prevenir algunas faltas de
seguridad en un sistema computarizado. La seguridad en general debe de ser
considerada como un aspecto de gran importancia en cualquier corporacin que
trabaje con sistemas computarizado. El hecho que gran parte de actividades
humanas sea cada vez ms dependiente de los sistemas computarizados hace
que la seguridad juegue un papel importante [6].
Quiz antes sea importante mencionar algunos datos relacionados con la
seguridad antes de comenzar con el desarrollo del tema
En el reporte Computer Crime Survey del FBI, proporcionado por Secure Site
E-News del 22 de mayo de 1999, de la compaa VeriSign, se dieron los
siguientes datos:
Se estudiaron 521 compaas de varias ramas de la industria y de diferentes
tamaos. Estas estn actualmente trabajando para que su sistema computarizado
sea seguro.
El 61% de estas compaas ha tenido experiencias de perdida debido al uso de
no autorizado de su sistema computarizado.
El 32 % de estas organizaciones estn usando ahora mtodos de identificacin
segura en su sitio de Internet.
El promedio de perdida de robo o perdida de informacin esta sobre $1.2 M de
dlares.
El promedio de perdida por sabotaje esta sobre $1.1 M dlares.
El 50% de todas las compaas reportaron abuso de del uso de la red
El 94% de las organizaciones tiene actualmente un sitio en la web.
Criptografa para principiantes
4
Jose de Jess ngel ngel
A la pregunta qu tipo de tecnologa de seguridad usa? Se contesto con lo
siguiente:
Se cuenta con un control en el acceso 89%.
Cuenta con archivos cifrados 59%.
Cuanta con sistema de passwords 59%.
Usa Firewalls 88%.
Una sistema de log-in cifrados 44%.
Usa smart-cards 37%.
Detencin de intrusos 40%.
Certificados digitales para la autenticacin 32%.
A la pregunta Cul es ms frecuente origen de un ataque?
Un hacker independiente 74%.
Un competidor 53%.
Un empleado disgustado 86%.
Su organizacin provee servicio de comercio electrnico?
S, el 29%.
Su web-site ha tenido un acceso no autorizado en los ltimos 12 meses?
S 18%.
No 44%.
No sabe 38%.
Enseguida presentamos un reporte dado a conocer, en unos cursos de criptografa
industrial en Blgica, en junio de 1997, en donde se mide la frecuencia de
incidentes de seguridad de la informacin relacionada con sus causas [7][8].
Frecuencia Razn
50-60% Errores debido a la inexperiencia, reacciones de pnico, mal
uso,
15-20% Empleados disgustados, accidentes de mantenimiento,
10-15% Desastres naturales como inundaciones, incendios,
3-5% Causas externas: hackers
Criptografa para principiantes
5
Jose de Jess ngel ngel
Otro aspecto importante a considerar es el crecimiento enorme que ha tenido la
red Internet, algunos datos importantes son los proporcionados por Paul Van
Oorschot de Entrust Technologies en una conferencia del ciclo The Mathematics
of Public Key Cryptography en junio de 1999:
! Se duplica l trafico de Internet cada 100 das.
! En enero de 1999 hubo 150 millones de personas en lnea, 75 de ellas en
USA.
! El comercio sobre Internet se duplica cada ao.
! Podra llegar a $1 trilln de dlares lo comercializado en Internet en el ao
2002.
! A la radio le tomo 40 aos, a la televisin 10 aos para alcanzar 50 millones de
usuarios a la red le ha tomado menos de 5.
Estos datos slo son algunos de los que frecuentemente son dados a conocer por
algn medio, y aunque algunos obedecen a intereses comerciales, lo que s es
cierto es el enorme cambio que han tenido gran cantidad de actividades a raz del
uso de Internet que incluso se ha considerado como el invento ms importante de
fin de siglo y de ah lo primordial de todo lo relacionado con su seguridad.
Siempre podremos encontrar razones para reafirmar la trascendencia que tiene la
seguridad en los sistemas computarizados, enseguida nos dedicamos a dar una
introduccin de cmo podemos atacar este problema.
El disear una estrategia de seguridad depende en general de la actividad que se
desarrolle, sin embargo, se pueden considerar los siguientes tres pasos generales:
el primero crear una poltica global de seguridad, el segundo realizar un anlisis
de riesgos y el tercero aplicar las medidas correspondientes [3][9][10].
Poltica global de seguridad: aqu se establece el estatus de la informacin para
la empresa o la organizacin, debe de contener un objetivo general, la importancia
de la tecnologa de la informacin para la empresa, el periodo de tiempo de
validez de la poltica, los recursos con que se cuenta, objetivos especficos de la
empresa.
Debe de establecerse la calidad de la informacin que se maneja segn su
objetivo, esto quiere decir que se determine cundo o para quin la informacin
debe ser confidencial, cundo debe verificarse su integridad y cundo debe de
verificarse la autenticidad tanto de la informacin como de los usuarios.
Anlisis de riesgos: consiste en listar todo tipo de riesgos a los cuales esta
expuesta la informacin y cules son las consecuencias, los posibles atacantes
entre persona, empresas y dependencias de inteligencia, las posibles amenazas
etc., enumerar todo tipo de posible prdida, desde prdidas directas como dinero,
clientes, tiempo etc., as como indirectas, crditos no obtenidos, prdida de
imagen, implicacin en un litigio, prdida de imagen, prdida de confianza
etctera.
Criptografa para principiantes
6
Jose de Jess ngel ngel
El riesgo se puede calcular por la formula riesgo = probabilidad prdida, por
ejemplo el riesgo de perder un contrato por robo de informacin confidencial es
igual a la probabilidad de que ocurra el robo multiplicado por la prdida total en
pesos de no hacer el contrato. El riesgo de fraude en transacciones financieras es
igual a la probabilidad de que ocurra el fraude por la prdida en pesos de que
llegara ocurrir ese fraude. Si la probabilidad es muy pequea el riesgo es menor,
pero si la probabilidad es casi uno, el riesgo puede ser casi igual a la perdida total.
Si por otro lado la prdida es menor aunque la probabilidad de que ocurra el
evento sea muy grande tenemos un riesgo menor. Por ejemplo la prdida de una
transaccin de 300 pesos con una probabilidad muy grande de que ocurra al usar
criptografa dbil, el riesgo llega a ser menor por lo que depende de la poltica de
seguridad para que este riesgo se asuma.
Medidas de seguridad: esta parte la podemos plantear como la terminacin de la
toda la estructura de seguridad de la informacin. Una vez planteada una poltica
de seguridad, o sea decir cuanto vale la informacin (en un anlisis de riesgo),
decir que tanto pierdo si le ocurre algo a mi informacin o que tanto se gana si
est protegida, debemos de establecer las medidas para que cumpliendo con la
poltica de seguridad las prdidas sean las menores posibles y que esto se
transforme en ganancias, ya sean materiales o de imagen.
Las posibles medidas que se pueden establecer se pueden dividir segn la
siguiente tabla:
PF: guardias a la entrada del edificio, control en el acceso de entrada, proteccin al hardware,
respaldo de datos,
DF: monitor de vigilancia, detector de metales, detector de movimiento,
CF: respaldo de fuente de poder,
PT: firewalls, criptografa, bitcora,
DT: control de acceso lgico, sesin de autenticacin,
CT: programa antivirus,
PO: cursos de actualizacin, organizacin de las claves,
DO: monitoreo de auditoria,
CO: respaldos automticos, plan de incidentes (sanciones),
Tipos Proteccin
Fsica
Medidas
Tcnicas
Medidas de
Organizacin
Preventivas PF PT PO
Detectivas DF DT DO
Correctiva CF CT CO
Criptografa para principiantes
7
Jose de Jess ngel ngel
En resumen debemos de mencionar que no existe un sistema computarizado que
garantice al 100% la seguridad de la informacin debido a la inmensa cantidad de
diferentes formas con que se puede romper la seguridad de un sistema [2]. Sin
embargo, una buena planeacin de la estrategia para dar seguridad a la
informacin puede resultar desde la salvacin de una empresa hasta la obtencin
de grandes ganancias directas en dinero efectivo, o como ganancias indirectas
mejorando la imagen y la seguridad de la empresa. Uno de los objetivos
principales de establecer una poltica de seguridad es el de reducir al mnimo los
riegos posibles, implementando adecuadamente las diferentes medidas de
seguridad [1][4][5].
Enseguida repasamos algunas de las tcnicas de seguridad que pertenecen a la
criptografa, tratando de exponerlas de una forma sencilla de comprender. Para
un estudio ms profundo se puede recurrir a la amplia bibliografa.
Criptografa para principiantes
8
Jose de Jess ngel ngel
1 Introduccin
La palabra criptografa proviene del griego kryptos, que significa esconder y
grphein, escribir, es decir, escritura escondida. La criptografa ha sido usada a
travs de los aos para mandar mensajes confidenciales cuyo propsito es que
slo las personas autorizadas puedan entender el mensaje.
Alguien que quiere mandar informacin confidencial aplica tcnicas criptogrficas
para poder esconder el mensaje (lo llamaremos cifrar o encriptar), manda el
mensaje por una lnea de comunicacin que se supone insegura y despus solo el
receptor autorizado pueda leer el mensaje escondido (lo llamamos descifrar o
descencriptar)
Desde sus inicios la criptografa lleg a ser una herramienta muy usada en el
ambiente militar, por ejemplo en la segunda gran guerra tuvo un papel
determinante, una de las mquinas de cifrado que tuvo gran popularidad se llam
ENIGMA. Al terminar la guerra las agencias de seguridad de las grandes
potencias invirtieron muchos recursos para su investigacin. La criptografa como
la conocemos hoy, surgi con la invencin de la computadora.
Criptografa para principiantes
9
Jose de Jess ngel ngel
Una buena referencia sobre la historia de la criptografa desde sus inicios hasta la
2gran guerra es el libro The Codebreakers de D. Kahn, y en Machine
Cryptography and Modern Cryptanalysis (C.A. Deavours, L. Kruh) se puede
encontrar algo de la historia de la posguerra. Tambin es recomendable
consultar a W. Friedman y a G.J. Simmons.
La criptografa actual se inicia en la segunda mitad de la dcada de los aos 70.
No es hasta la invencin del sistema conocido como DES (Data Encryption
Standard) en 1976 que se da a conocer mas ampliamente, principalmente en el
mundo industrial y comercial. Posteriormente con el sistema RSA (Rivest, Shamir,
Adleman) en 1978, se abre el comienzo de la criptografa en un gran rango de
aplicaciones: en transmisiones militares, en transacciones financieras, en
comunicacin de satlite, en redes de computadoras, en lneas telefnicas, en
transmisiones de televisin etctera.
La criptografa se divide en dos grandes ramas, la criptografa de clave privada o
simtrica y la criptografa de clave pblica o asimtrica, DES pertenece al primer
grupo y RSA al segundo. (Las referencias ms conocidas sobre criptografa de
carcter general son [29][38][43][67][68][70][72][73][76])
Para poder entender un poco de la criptografa, es tiempo de plantear que tipo de
problemas resuelve sta. Los principales problemas de seguridad que resuelve la
criptografa son: la privacidad, la integridad, la autenticacin y el no rechazo.
La privacidad, se refiere a que la informacin slo pueda ser leda por personas
autorizadas.
Ejemplos: en la comunicacin por telfono, que alguien intercepte la comunicacin
y escuche la conversacin quiere decir que no existe privacidad. Si mandamos
una carta y por alguna razn alguien rompe el sobre para leer la carta, ha violado
la privacidad.
En la comunicacin por Internet es muy difcil estar seguros de la privacidad de la
comunicacin, ya que no se tiene control de la lnea de comunicacin. Por lo tanto
al cifrar (esconder) la informacin cualquier intercepcin no autorizada no podr
desvelar la informacin. Esto es posible si se usan tcnicas criptogrficas, en
particular la privacidad se logra si se cifra el mensaje con un mtodo simtrico.
La integridad, se refiere a que la informacin no pueda ser alterada en el
transcurso de ser enviada.
Ejemplos: cuando compramos un boleto de avin y los datos del vuelo son
cambiados, puede afectar los planes del viajero. Una vez hecho un deposito en el
banco, si no es capturada la cantidad correcta causar problemas. La integridad
es muy importante en las transmisiones militares ya que un cambio de informacin
puede causar graves problemas.
Criptografa para principiantes
10
Jose de Jess ngel ngel
En Internet las compras se puede hacer desde dos ciudades muy distantes, la
informacin tiene necesariamente que viajar por una lnea de transmisin de la
cual no se tiene control, si no existe integridad podran cambiarse por ejemplo el
nmero de una tarjeta de crdito, los datos del pedido, en fin, informacin que
causara problemas a cualquier comercio y cliente.
La integridad tambin se puede solucionar con tcnicas criptogrficas
particularmente con procesos simtricos o asimtricos.
La autenticidad, se refiere a que se pueda confirmar que el mensaje recibido
haya sido mandado por quien dice lo mando o que el mensaje recibido es el que
se esperaba.
Ejemplo: cuando se quiere cobrar un cheque a nombre de alguien, quien lo cobra
debe de someterse a un proceso de verificacin de identidad para comprobar que
en efecto es la persona quien dice ser, esto en general se lleva a cabo con una
credencial que anteriormente fue certificada y acredita la identidad de la persona
que la porta. La verificacin se lleva a cabo comparando la persona con una foto
o con la comparacin de una firma convencional.
Por Internet es muy fcil engaar a una persona con quien se tiene comunicacin
respecto a la identidad, resolver este problema es por lo tanto muy importante
para efectuar comunicacin confiable.
Las tcnicas necesarias para poder verificar la autenticidad tanto de personas
como de mensajes usan quiz la ms conocida aplicacin de la criptografa
asimtrica que es la firma digital, de algn modo sta reemplaza a la firma
autgrafa que se usa comnmente. Para autenticar mensajes se usa criptografa
simtrica.
El no rechazo, se refiere a que no se pueda negar la autora de un mensaje
enviado.
Criptografa para principiantes
11
Jose de Jess ngel ngel
Cuando se disea un sistema de seguridad, una gran cantidad de problemas
pueden ser evitados si se puede comprobar la autenticidad, garantizar privacidad,
asegurar integridad y el no-rechazo de un mensaje.
La criptografa simtrica y asimtrica conjuntamente con otras tcnicas, como el
buen manejo de las claves y la legislacin adecuada resuelven satisfactoriamente
los anteriormente problemas planteados, como lo veremos en los captulos
posteriores.
Criptografa para principiantes
12
Jose de Jess ngel ngel
2 Criptografa Simtrica
La criptografa simtrica se refiere al conjunto de mtodos que permiten tener
comunicacin segura entre las partes siempre y cuando anteriormente se hayan
intercambiado la clave correspondiente que llamaremos clave simtrica. La
simetra se refiere a que las partes tienen la misma llave tanto para cifrar como
para descifrar.
Este tipo de criptografa se conoce tambin como criptografa de clave privada o
criptografa de llave privada.
Existe una clasificacin de este tipo de criptografa en tres familias, la criptografa
simtrica de bloques (block cipher), la criptografa simtrica de lluvia (stream
cipher) y la criptografa simtrica de resumen (hash functions). Aunque con ligeras
modificaciones un sistema de criptografa simtrica de bloques puede modificarse
para convertirse en alguna de las otras dos formas, sin embargo es importante
verlas por separado dado que se usan en diferentes aplicaciones.
La criptografa simtrica ha sido la ms usada en toda la historia, sta a podido ser
implementada en diferente dispositivos, manuales, mecnicos, elctricos, hasta
los algoritmos actuales que son programables en cualquier computadora. La idea
general es aplicar diferentes funciones al mensaje que se quiere cifrar de tal modo
que solo conociendo una clave pueda aplicarse de forma inversa para poder as
descifrar.
Aunque no existe un tipo de diseo estndar, quiz el ms popular es el de
Fiestel, que consiste esencialmente en aplicar un nmero finito de interacciones
de cierta forma, que finalmente da como resultado el mensaje cifrado. Este es el
caso del sistema criptogrfico simtrico ms conocido, DES.
Criptografa para principiantes
13
Jose de Jess ngel ngel
DES
DES es un sistema criptogrfico (ver referencias en:[47][29][52]), que toma como
entrada un bloque de 64 bits del mensaje y este se somete a 16 interacciones, una
clave de 56 bits, en la prctica el bloque de la clave tiene 64 bits, ya que a cada
conjunto de 7 bits se le agrega un bit que puede ser usada como de paridad.
Dependiendo de la naturaleza de la aplicacin DES tiene 4 modos de operacin
(ver referencias en: [48][54][56]) para poder implementarse: ECB (Electronic
Codebook Mode) para mensajes cortos, de menos de 64 bits, CBC (Cipher Block
Chaining Mode) para mensajes largos, CFB (Cipher Block Feedback) para cifrar
bit por bit byte por byte y el OFB (Output Feedback Mode) el mismo uso pero
evitando propagacin de error.
En la actualidad no se ha podido romper el sistema DES desde la perspectiva de
poder deducir la clave simtrica a partir de la informacin interceptada, sin
embargo con un mtodo a fuerza bruta, es decir probando alrededor de 2
56
posibles claves, se pudo romper DES en Enero de 1999. Lo anterior quiere decir
que, es posible obtener la clave del sistema DES en un tiempo relativamente
corto, por lo que lo hace inseguro para propsitos de alta seguridad. La opcin que
se ha tomado para poder suplantar a DES ha sido usar lo que se conoce como
cifrado mltiple, es decir aplicar varias veces el mismo algoritmo para fortalecer la
longitud de la clave, esto a tomado la forma de un nuevo sistema de cifrado que se
conoce actualmente como triple-DES o TDES.
TDES
TDES El funcionamiento de TDES [53] consiste en aplicar 3 veces DES de la
siguiente manera: la primera vez se usa una clave K1(azul) junto con el bloque
B0, de forma ordinaria E (de Encription), obteniendo el bloque B1. La segunda ves
se toma a B1 con la clave K2 (roja), diferente a K1 de forma inversa, llamada D
(de Descencription) y la tercera vez a B2 con una clave K3 (verde) diferente a K1
y K2, de forma ordinaria E (de Encription), es decir, aplica de la interaccin 1 a la
16 a B0 con la clave K1, despus aplica de la 16 a la 1, a B1 con la clave K2,
finalmente aplica una vez mas de la 1 a la 16 a B2 usando la clave K3, obteniendo
finalmente a B3. En cada una de estas tres veces aplica el modo de operacin
ms adecuado.
Criptografa para principiantes
14
Jose de Jess ngel ngel
El proceso del cifrado con TDES se puede apreciar en las siguientes figuras:
Este sistema TDES usa entonces una clave de 168 bits, aunque se ha podido
mostrar que los ataques actualmente pueden romper a TDES con una
complejidad de 2
112
, es decir efectuar al menos 2
112
operaciones para obtener la
clave a fuerza bruta, adems de la memoria requerida [44].
Se opt por TDES ya que es muy fcil Inter-operar con DES y proporciona
seguridad a mediano plazo.
En los ltimos 20 aos se han diseado una gran cantidad de sistemas
criptogrficos simtricos, entre algunos de ellos estn: RC-5 [37], IDEA [25], FEAL
[40], LOKI91 [16], DESX [33], Blowfish [39], CAST [11], GOST [18], etctera.
Sin embargo no han tenido el alcance de DES, a pesar de que algunos de ellos
tienen mejores propiedades.
Podemos afirmar que el estado actual de la criptografa simtrica es la bsqueda
de un nuevo sistema que pueda reemplazar a DES en la mayor parte de
aplicaciones. Es as como se ha optado por convocar a un concurso de sistemas
criptogrficos simtricos y que este decida quien ser el nuevo estndar al menos
para los prximos 20 aos.
Criptografa para principiantes
15
Jose de Jess ngel ngel
AES
El NIST (National Institute of Standards Technology) [74] convoc a un concurso
para poder tener un sistema simtrico que sea seguro y pueda usarse al menos en
los prximos 20 aos como estndar. En la mitad del ao de 1998 se aceptaron 15
candidatos, estos se han sometido a pruebas pblicas y por parte del NIST.
Actualmente se cuentan con 5 finalistas que son: MARS, RC6, Rijndael, Serpent,
y Twofish, se espera que el candidato elegido se tenga a mediados del ao 2000.
Las principales caractersticas que se pide a AES son que al menos sea tan
seguro y rpido como TDES, es decir, que al menos evite los ataques conocidos.
Adems de que pueda ser implementado en una gran parte de aplicaciones. Una
vez designado AES este podr ser usado tanto como cifrador de bloques (block
cipher), como cifrador de lluvia (stream cipher), como funcin resumen (hash
function), y como generador de nmeros seudoaleatorios.
Funciones de Flujo
Los cifradores de flujo o stream ciphers, son usados donde se cuente con un
ancho de banda restringido (el nmero de bits que se transmiten a la vez), adems
de que se requiere independencia en los bloques transmitidos, entonces la mejor
opcin es cifrar bit por bit o byte por byte, este tipo de cifradores tiene la
caracterstica adems de ser muy rpido. Los algoritmos ms conocidos de este
tipo estn RC-4, SEAL [66] y WAKE.
Entre los ataques ms potentes a la criptografa simtrica estn el criptoanlisis
diferencial [12] y lineal [28], sin embargo no han podido ser muy eficientes en la
prctica por lo tanto, por el momento despus de que un sistema criptogrfico es
publicado y se muestra inmune a estos dos tipos de ataques (y algunos otros
ms) la mayor preocupacin es la longitud de las claves [26].
Funciones Hash
Una herramienta fundamental en la criptografa, son las funciones hash [60]. Son
usadas principalmente para resolver el problema de la integridad de los mensajes,
as como la autenticidad de mensajes y de su origen.
Una funcin hash es tambin ampliamente usada para la firma digital, ya que los
documentos a firmar son en general demasiado grandes, la funcin hash les
asocia una cadena de longitud 160 bits que los hace ms manejables para el
propsito de firma digital.
Criptografa para principiantes
16
Jose de Jess ngel ngel
De forma grfica la funcin hash efecta lo siguiente:
Esto es, un mensaje de longitud arbitraria lo transforma de forma nica a un
mensaje de longitud constante.
Cmo hace esto?
La idea general es la siguiente:
La funcin hash toma como entrada una cadena de longitud arbitraria, digamos
5259 bits,
luego divide ste mensaje en partes iguales, digamos de 160bits; como en este
caso y en general el mensaje original no ser un mltiplo de 160, entonces para
completar un nmero entero de partes de 160 bits al ltimo se le agrega un
relleno, digamos de puros ceros. En nuestro caso en 5259 caben 32 partes de 160
bits y sobran 139, entonces se agregarn 21 ceros ms.
Criptografa para principiantes
17
Jose de Jess ngel ngel
Entonces el mensaje toma la forma X = X1, X2, X3,,Xt donde cada Xi tiene
igual longitud (160bits por ejemplo).
Posteriormente se asocia un valor constante a un vector inicial IV y
H0=IV
Ahora se obtiene H1 que es el resultado de combinar H0 con X1 usando una
funcin de compresin f
H1 = f(H0,X1)
Posteriormente se obtiene H2, combinando H1 y X2 con f
H2 = f(H1,X2)
Se hace lo mismo para obtener H3
H3 = f(H2,X3)
Hasta llegar a Ht
Ht = f(Ht-1, Xt)
Entonces el valor hash ser h(M) = Ht
Criptografa para principiantes
18
Jose de Jess ngel ngel
De alguna forma lo que se hace es tomar el mensaje partirlo en pedazos de
longitud constante y combinar de alguna forma pedazo por pedazo hasta obtener
un solo mensaje de longitud fija como muestra la figura siguiente:
Las funciones hash (o primitivas hash) pueden operar como: MDC (Modification
Detection Codes) MAC (Massage Authentication Codes) [57][64].
Los MDC sirven para resolver el problema de la integridad de la informacin, al
mensaje se le aplica un MDC (una funcin hash) y se manda junto con el propio
mensaje, al recibirlo el receptor aplica la funcin hash al mensaje y comprueba
que sea igual al hash que se envi antes.
Es decir, se aplica un hash al mensaje M y se enva con el mensaje (M, h(M)),
cuando se recibe se le aplica una vez ms el hash (ya que M fue enviado)
obteniendo h(M), si h(M)=h(M), entonces se acepta que el mensaje se a
transmitido sin alteracin.
Criptografa para principiantes
19
Jose de Jess ngel ngel
Los MAC sirven para autenticar el origen de los mensaje as como tambin su
integridad, para hacer esto se combina el mensaje M con una clave privada K y se
les aplica un hash h(M,K). Se enva esto y al llegar a su destino si se comprueba
la integridad de la clave privada K, entonces se demuestra que el nico origen del
mensaje es el que tiene la parte propietaria de la otra clave K.
De forma simple se muestra en la siguiente figura el funcionamiento de un MAC.
Las propiedades que deben de tener las primitivas hash son:
1) Resistencia a la preimagen: significa que dada cualquier imagen, es
computacionalmente imposible encontrar un mensaje x tal que h(x)=y. Otra
forma como se conoce esta propiedad es que h sea de un solo sentido.
2) Resistencia a una 2preimagen: significa que dado x, es
computacionalmente imposible encontrar una x tal que h(x)=h(x). Otra forma
de conocer esta propiedad es que h sea resistente a una colisin suave.
3) Resistencia a colisin: significa que es computacionalmente imposible
encontrar dos diferentes mensajes x, x tal que h(x)=h(x). Esta propiedad
tambin se conoce como resistencia a colisin fuerte.
Para ilustrar la necesidad de estas propiedades veamos los siguientes ejemplos:
Consideremos un esquema de firma digital con apndice, entonces la firma se
aplica a h(x), en este caso h debe ser un MDC con resistencia a una 2
preimagen, ya que de lo contrario un atacante C que conozca la firma sobre h(x),
puede encontrar otro mensaje x tal que h(x) = h(x) y reclamar que la firma es del
documento x.
Si el atacante C puede hacer que el usuario firme un mensaje, entonces el
atacante puede encontrar una colisin (x, x) (en lugar de lo ms difcil que es
encontrar una segunda preimagen de x) y hacer firmar al usuario a x diciendo que
firmo x. En este caso es necesaria la propiedad de resistencia a colisin.
Criptografa para principiantes
20
Jose de Jess ngel ngel
Por ltimo si (e,n) es la clave pblica RSA de A, C puede elegir aleatoriamente un
y y calcular z = y
e
mod n, y reclamar que y es la firma de z, si C puede encontrar
una preimagen x tal que z = h(x), donde x es importante para A. Esto es evitable si
h es resistente a preimagen.
Las funciones hash ms conocidas son las que se crean a partir de un block
cipher como: DES [29], MD5 [62], SHA-1, y RIPEMD 160 [65].
Actualmente se ha podido encontrar debilidades en las funciones hash que tienen
como salida una cadena de 128 bits, por lo que se ha recomendado usar salidas
de 160bits. As mismo se han encontrado ataques a MD5 y SHA-0 (antecesora de
SHA-1), esto ha dado lugar a que se dirija la atencin sobre la funcin has
RIPEMD-160.
El ataque ms conocido (de fuerza bruta) a una funcin hash es conocido como
birthday attack y se basa en la siguiente paradoja, si hay 23 personas en un local
existe una probabilidad de al menos 1/2, de que existan dos personas con el
mismo cumpleaos. Aunque parezca muy difcil esa posibilidad se puede
mostrar que en general al recorrer la raz cuadrada del nmero de un conjunto de
datos, se tiene la probabilidad de al menos de encontrar dos iguales.
Al aplicar esto a una funcin hash, es necesario recorrer entonces la raz cuadrada
de 2
160
mensajes para poder encontrar dos con el mismo hash, o sea encontrar
una colisin. Por lo tanto una funcin hash son salida 2
160
tiene una complejidad
de 2
80
, y una funcin de 128 bits (38 dgitos) de salida tiene una complejidad de
2
64
, por lo que es recomendable usar actualmente salida de 160 bits (48 dgitos).
Criptografa para principiantes
21
Jose de Jess ngel ngel
3 Criptografa Asimtrica
La criptografa asimtrica es por definicin aquella que utiliza dos claves diferentes
para cada usuario, una para cifrar que se le llama clave pblica y otra para
descifrar que es la clave privada. El nacimiento de la criptografa asimtrica se dio
al estar buscando un modo ms prctico de intercambiar las llaves simtricas.
Diffie y Hellman [20], proponen una forma para hacer esto, sin embargo no fue
hasta que el popular mtodo de Rivest Shamir y Adleman RSA publicado en 1978
[36], cuando toma forma la criptografa asimtrica, su funcionamiento esta basado
en la imposibilidad computacional de factorizar nmeros enteros grandes.
Actualmente la Criptografa asimtrica [32] es muy usada; sus dos principales
aplicaciones son el intercambio de claves privadas [50] y la firma digital. Una firma
digital se puede definir como una cadena de caracteres que se agrega a un
archivo digital que hace el mismo papel que la firma convencional que se escribe
en un documento de papel ordinario. Los fundamentos de la criptografa asimtrica
pertenecen a la teora de nmeros, algo de esto lo podemos ver en los textos A
course in Number Theory and Cryptography y Algebraic Aspects of Cryptography
de N. Koblitz, as como en Elementary Number Theory and Its Applications de K.H.
Rosen.
En la actualidad la criptografa asimtrica o de clave pblica se divide en tres
familias segn el problema matemtico en el cual basan su seguridad. La primera
familia es la que basa su seguridad en el Problema de Factorizacin Entera PFE
[15], los sistemas que pertenecen a esta familia son, el sistema RSA, y el de
Rabin Williams RW [46]. La segunda familia es la que basa su seguridad en el
Problema del Logaritmo Discreto PLD, a esta familia pertenece el sistema de Diffie
Hellman DH de intercambio de claves y el sistema DSA [55] de firma digital. La
tercera familia es la que basa su seguridad en el Problema del Logaritmo Discreto
Elptico PLDE, en este caso hay varios esquemas tanto de intercambio de claves
como de firma digital que existen como el DHE (Diffie Hellman Elptico), DSAE,
(Nyberg-Rueppel) NRE, (Menezes, Qu, Vanstone) MQV [30], etctera.
Criptografa para principiantes
22
Jose de Jess ngel ngel
Aunque a las familias anteriores pertenecen los sistemas asimtricos ms
conocidos, existen otro tipo de sistemas que basan su seguridad en problemas
diferentes como por ejemplo, en el Problema del Logaritmo Discreto Hiperelptico,
sobre problemas de retculas y sobre subconjuntos de clases de campos
numricos reales y complejos.
RSA
RSA, en el caso de RSA [17] el problema matemtico es el de la factorizacin de
un nmero entero n grande (1024 bits, que equivale a un nmero de 308 dgitos),
este nmero entero se sabe es producto de dos nmeros primos p,q de la misma
longitud, entonces la clave pblica es el nmero n y la privada es p,q. El
razonamiento del funcionamiento de RSA es el siguiente:
a) a cada usuario se le asigna un nmero entero n, que funciona como su clave
pblica
b) solo el usuario respectivo conoce la factorizacin de n (o sea p,q), que
mantiene en secreto y es la clave privada
c) existe un directorio de claves pblicas
d) si alguien quiere mandar un mensaje m a algn usuario entonces elige su clave
pblica n y con informacin adicional tambin pblica puede mandar el
mensaje cifrado c, que solo podr descifrar el usuario correspondiente, el
mensaje m convertido a nmero (codificacin) se somete a la siguiente
operacin (donde e es constante y pblico)
c m n
e
= mod
Criptografa para principiantes
23
Jose de Jess ngel ngel
e) Entonces el mensaje c puede viajar sin problema por cualquier canal inseguro
f) cuando la informacin cifrada llega a su destino el receptor procede a descifrar
el mensaje con la siguiente frmula
g) Se puede mostrar que estas formulas son inversas y por lo tanto dan el
resultado deseado, (n,e) son la clave pblica, la clave privada es la pareja (p,q)
o equivalentemente el nmero d. La relacin que existe entre d y e es que uno
es el inverso multiplicativo del otro mdulo (n) donde (n) es el mnimo comn
mltiplo de p-1 y q-1, o tambin puede usarse (n)=(p-1)(q-1) esto significa que
la clave privada o el la pareja p,q o es el nmero d.
En trminos muy generales es as como funciona el sistema RSA. Sin embargo en
la realidad existen dos formas que son las ms comunes, estas formas depende
de la aplicacin y se llaman el esquema de firma y el esquema de cifrado, cada
una de estas dos diferentes aplicaciones consiste en una serie de pasos que a
continuacin se describen
Esquema de Cifrado
Uso: este esquema se usa principalmente para cifrar claves de sistemas
simtricos (claves de 128 bits aprox.)
1) Se toma el mensaje M (por ejemplo una clave simtrica de 128 bits (38
dgitos), como en la practica actual es recomendable usar arreglos de longitud
de 1024 bits (308 dgitos), los complementa esos 128 bits con una serie de
tcnicas para obtener un arreglo de 1024 bits, despus se aplica un proceso de
codificacin para que la computadora entienda al mensaje como un nmero
entero m.
2) Se le aplica la formula de cifrado de RSA al entero m
3) Se enva el nmero entero c
68a9bc498ff034e0572fd5d267193f2a
e12b7fa8d735cd927a7166bc3f4e5b82
a6bc937ade8ba4073e25ca9e7f48b26f
m c n
d
= mod
Criptografa para principiantes
24
Jose de Jess ngel ngel
4) Al recibir este nmero se aplica la formula de descifrado al entero c para
obtener el entero m
5) Se decodifica m para obtener el mensaje M
Ejemplo simple
Generacin de parmetros
1) p = 3, q = 5 (se eligen don nmeros primos como clave privada)
2) n = 15 ( se calcula el producto, es la clave pblica)
3) (n)=(3-1)(5-1)=8
4) Sea e=3, entonces d=3, ya que e*d = 3*3 =9 mod 8 =1 (como este caso
solo es para mostrar el funcionamiento no importa que d sea igual a e, sin
embargo en la prctica e es pequeo y d es muy grande)
5) Si el mensaje es m=2
Proceso de cifrado
6) El mensaje cifrado es c= m
e
mod n, es decir, c=2
3
mod 15, o sea c=8
Proceso de descifrado
7) Para descifrar el mensaje m=8
3
mod 15, es decir, m=512 mod 15, asi m=2
(ya que 512/15=2 mod 15 = m)
Por lo tanto es correcto el funcionamiento.
Esquema de Firma Digital
Existen dos tipos de esquemas sobre firma digital, el que se denomina esquema
de firma digital con apndice [46][61] y el esquema de firma digital con mensaje
recuperable. Tambin cualquier esquema de firma cuenta con dos partes la
primera parte se denomina proceso de firma (similar al cifrado) y la segunda parte
proceso de verificacin de la firma (similar al descifrado). Otros esquemas de firna
digital se encuentran en [42].
El esquema ms usado y conocido es el esquema de firma con apndice y
consiste en los siguientes puntos:
Proceso de Firma
1) El mensaje a firmar es M, se le aplica una funcin hash que reduce su longitud
de forma nica a un mensaje H(M) de longitud de 128 o 160 bits, lo que
permite ver cualquier mensaje de cualquier longitud como una cadena de
caracteres de longitud constante.
Criptografa para principiantes
25
Jose de Jess ngel ngel
2) H(M) se somete tambin a un proceso de codificacin, por lo tanto se obtiene
un nmero h(M), al que se le aplica la formula con la potencia d,
equivalentemente con la clave privada del firmante para obtener
3) Se enva entonces el mensaje firmado s
Proceso de Verificacin
1) El que recibe s, se supone conoce el mensaje M, aplica la funcin de
verificacin que depende de la clave pblica de quien se dice propietario del
mensaje
2) Ahora se aplica la funcin hash al mensaje M y si h(M)=h entonces acepta la
firma
En un esquema con mensaje recuperable no es necesario saber el mensaje,
despus de que la firma es aceptada el mensaje puede recuperarse a partir de la
firma.
Ejemplo simple:
Tomemos los mismos parmetros del ejemplo en el esquema de cifrado, p=3, q=5,
m=2, =8, e=3, d=3
Proceso de Firma
1) La firma del documento m es: s= m
d
mod n = 2
3
mod 15 =8
2) El mensaje firmado es entonces (m,s) = (2,8)
Proceso de verificacin
3) Aplicando la funcin de verificacin s
e
mod n = 8
3
mod 15 = 2
4) Como 2 (el obtenido de la anterior frmula) = 2 (el mensaje enviado)
5) Entonces la firma es vlida
n M h s
d
mod ) ( =
n s h
e
mod ' =
Criptografa para principiantes
26
Jose de Jess ngel ngel
Aspectos Importantes
1) La longitud de las claves
Existe una gran discusin [26], sobre este aspecto pero sin duda en la actualidad
se acepta que es recomendable usar claves de longitud 768 (231 dgitos) para
actividades personales,1024 bits (308 dgitos) para corporaciones y 2048 (616
dgitos) para actividades de alto riesgo. La longitud de las claves tiene que ver
con la seguridad del sistema si el nmero n pudiese ser factorizado entonces sin
mucha dificultad puede calcular a d a partir de e, p, y q por lo tanto descifrar
cualquier mensaje. El ltimo rcord conocido sobre factorizacin de nmeros
enteros producto de dos primos de la misma longitud es de 512 bits (155 dgitos)
dgitos alcanzado en Jul de 1999.
2) La aleatoriedad de las claves
La generacin de las claves RSA es muy importante, muchos ataques son
evitados si las claves son elegidas de forma aleatoria [63], esto incrementara la
seguridad del sistema.
3) mtodo de codificacin
El mtodo que actualmente es usado para aplicaciones en el esquema de cifrado
es el OAEP, este resiste a los ataques que actualmente se conocen y el estndar
ms conocido sobre RSA es el PKCS#1 v.2 de la RSA Data Security.
En el caso de Esquemas de firma digital el mtodo de codificacin recomendable
es PSS que esta descrito en PKCS#1 v 2.1
4) Eleccin de parmetros
La eleccin adecuada de los parmetros que se usan aumenta la seguridad del
sistema as como su fcil y rpida implementacin. Como elegir a e=65537 = (01
00 01)16, para poder efectuar la operacin exponente eficientemente. Adems de
elegir d la clave privada de longitud grande para evitar el ataque de Wiener [45].
Los nmeros primos p,q adems de ser generados aleatoriamente deben de tener
la misma longitud y no estar cerca.
Criptografa para principiantes
27
Jose de Jess ngel ngel
CCE
CCE otro tipo de criptografa de clave pblica es el que usa curvas elpticas
definidas en un campo finito. La diferencia que existe entre este sistema y RSA es
el problema matemtico en el cual basan su seguridad. RSA razona de la
siguiente manera: te doy el nmero 15 y te reta a encontrar los factores primos. El
problema en el cual estn basados los sistemas que usan curvas elpticas que
denotaremos como CCE es el del logaritmo discreto elptico, en este caso su
razonamiento con nmeros sera algo como: te doy el nmero 15 y el 3 y te reta a
encontrar cuantas veces tienes que sumar el mismo 3 para obtener 15.
En lo que sigue nos dedicaremos a explicar un poco lo ms importante de los CCE
1) Entenderemos como una curva elptica a una ecuacin de la forma siguiente:
Donde las constantes a,b,c,d y e pertenecen a cierto conjunto llamado campo F,
que para propsitos de la criptografa o es un campo primo (Z
p
) o un campo de
caracterstica 2, o sea donde los elementos son n-adas de ceros y unos (F
2
n
)
2) A un punto que satisface la ecuacin anterior se le llama punto racional. Si el
campo es finito, entonces el conjunto de puntos (x,y) que satisfacen la
ecuacin es finito y es llamado conjunto de puntos racionales de la curva E
sobre el campo F. Al conjunto de puntos racionales lo podemos representar
como
E representa la ecuacin y O es un punto que no tiene coordenadas y hace el
papel de cero (llamado punto al infinito) ya que en este conjunto los puntos
puede sumarse y tiene las mismas propiedades que la suma de los nmeros
enteros, es decir lo que se conoce como un grupo abeliano.
Ejemplo: veamos una curva elptica simple, si la ecuacin es y
2
=x
3
+4x+3 y el
campo Z
5
, es decir el conjunto {0,1,2,3,4}, entonces las parejas que satisfacen
la ecuacin son {(2,2), (2,3}, por lo tanto la curva elptica es E: {O, (2,2),
(2.3)}. En este caso E tiene 3 puntos racionales.
3) La suma de estos puntos tiene una explicacin geomtrica muy simple, si la
grfica representa a todos los puntos que satisfacen la ecuacin de la curva
elptica, y queremos sumar a P y Q, trazamos una lnea recta que pase por P y
Q, la ecuacin de la curva es de grado 3 y la lnea de grado 1, entonces
existen siempre tres soluciones, en este caso la tercera solucin esta dibujada
como el punto -P-Q, enseguida se procede a dibujar una lnea recta paralela al
y axy by x cx dx e
2 3 2
+ + = + + +
E O P P P P
n
: , , , ,...,
1 2 3
Criptografa para principiantes
28
Jose de Jess ngel ngel
eje Y que pase por -P-Q, esta lnea vertical tambin intercepta tres veces a la
recta, todas las lneas verticales interceptan al punto especial llamado infinito y
que geomtricamente esta en el horizonte del plano, el tercer punto es por
definicin P+Q, como se muestra en la figura
4) No es difcil obtener frmulas para calcular las coordenadas del punto P+Q a
partir de las coordenadas del punto P y del punto Q. Por ejemplo si el campo
de definicin de la curva es un campo primo Z
p
, entonces las frmulas de suma
son las siguientes
5) La anterior forma de sumar puntos de una curva elptica es un poco extraa
sin embargo, es esta extraeza lo que permita que sea un poco ms difcil
romper los CCE. En el rea de las matemticas conocida como teora de
grupos se sabe que estos grupos son muy simples llamados grupo abelianos
finitos lo que permite tambin que los CCE sean fcil de implementar,
llamaremos al nmero de puntos racionales de la curva como el orden de la
curva. En nuestro ejemplo P
0
=O, P
1
=(2,2), P
2
=(2,3), donde 2P
1
=P
2
.
( )
=
+
=
=
=
Q P
y
a x
Q P
x x
y y
y x x y
x x x
,
2
3
,
1
2
1
1 2
1 2
1 3 1 3
2 1
2
3