Anda di halaman 1dari 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final

Firma Digital de Documentos

Realizado por Lisandro Dorfman [71299] [ldorfman@ford.com] Ariel Pablo Topasso [72064] [atopasso@ieee.org]

Primer Cuatrimestre de 1998

Criptografa y Seguridad Electrnica Trabajo Prctico Final

ndice General

ndice Temtico ndice General _________________________________________________________ 2


ndice Temtico _____________________________________________________________ 2 ndice de Figuras y Tablas ____________________________________________________ 4

Prefacio_______________________________________________________________ 5
Introduccin Terica_______________________________________________________________ Implementacin de un Esquema de Firma Digital ________________________________________ Implementaciones de la Firma Digital por medio de Biometric Tokens _______________________ Visin Legal en el Mundo: __________________________________________________________ 5 5 5 5

Introduccin terica_____________________________________________________ 6
Firma de documentos utilizando criptosistemas simtricos y una autoridad certificante _ 7 Firma de documentos utilizando criptosistemas de clave pblica ____________________ 8 Generalidades Inconvenientes Esenciales ______________________________________ 9 Formalizacin ______________________________________________________________ 9
RSA___________________________________________________________________________ 10 MD5 __________________________________________________________________________ 11

El problema del almacenamiento de las claves privadas ___________________________ 13


DES___________________________________________________________________________ IDEA__________________________________________________________________________ Modos de funcionamiento de un algoritmo de cifrado por bloques __________________________ ECB ________________________________________________________________________ CBC ________________________________________________________________________ CFB_________________________________________________________________________ OFB_________________________________________________________________________ 14 15 17 17 18 18 19

Implementacin de un Esquema de Firma Digital____________________________ 20


Generalidades _____________________________________________________________ 20 Diagramas de Flujo _________________________________________________________ 21
Programa Principal _____________________________________________________________ Secuencia de Firmado___________________________________________________________ Generacin de Claves para RSA___________________________________________________ Almacenamiento en disco de la Clave Pblica ________________________________________ Aplicacin de la Funcin de Hash _________________________________________________ Cifrado del resultado del Hash Adjuntar firma al Mensaje _____________________________ Proceso de Verificacin de Firma__________________________________________________ 21 21 21 22 22 22 23

Cdigo Fuente Implementado ________________________________________________ 24


Declaraciones principales e inicializacin _____________________________________________ 24 MD5 __________________________________________________________________________ 25 RSA___________________________________________________________________________ 30 66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires
Pgina 2 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final Funciones Accesorias _____________________________________________________________ 32

Implementaciones de la Firma Digital por medio de Biometric Tokens ___________ 37


"Biometric Token": Identidad Biomtrica ______________________________________ 37 Sistemas de Biomediciones Fsico/Anatmicas: __________________________________ 39
Escaneo de Iris:__________________________________________________________________ Anlisis de los patrones de iris ____________________________________________________ Perfil Tecnolgico del Reconocimiento del Iris _______________________________________ Reconocimiento facial por termografa _______________________________________________ Caractersticas de la tecnologa____________________________________________________ Reconocimiento facial por morfografa _______________________________________________ Proceso de reconocimiento _______________________________________________________ Proceso de identificacin ________________________________________________________ Palma/mano ____________________________________________________________________ Imagen de huellas digitales_________________________________________________________ Proceso de reconocimiento _______________________________________________________ 39 40 40 42 42 43 43 43 44 44 44

Sistemas de Biomediciones Fsicas/Conducta ____________________________________ 45


Reconocimiento de voz____________________________________________________________ 45 Cualidades de la Verificacin Vocal________________________________________________ 45 Identificacin de firma ____________________________________________________________ 46

Visin Legal en el Mundo _______________________________________________ 47


Anlisis etimolgico de la palabra "firmar"_____________________________________ 47 Definicin de trminos concernientes al vocabulario de Firma Digital estrictamente desde el punto de vista legislativo ___________________________________________________ 48
Anexo I ________________________________________________________________________ 48 Anexo II _______________________________________________________________________ 50

Planteo de la situacin legislativa mundial actual referente a la Firma Digital ________ 51


Posibles soluciones a implementar ___________________________________________________ 52

Sntesis de la normativa aplicada a la firma digital de documentacin, focalizndose la misma en el decreto 427/98 de la Repblica Argentina y el proyecto de Ley de Firma Digital de Alemania _________________________________________________________ 53
Decreto Nro. 427 ________________________________________________________________ Anexo I: Infraestructura de Firma Digital para el Sector Pblico Nacional ____________________ Organismo Licenciante __________________________________________________________ Organismo Auditante ___________________________________________________________ Autoridad Certificante Licenciada _________________________________________________ Suscriptor De Certificado De Clave Pblica__________________________________________ Certificados de Clave Pblica_____________________________________________________ Condiciones de Validez del Certificado de Clave Pblica _______________________________ Borrador del proyecto de ley de Firma Digital Alemana:__________________________________ Reglamentacin _______________________________________________________________ 54 55 55 56 56 58 58 59 59 60

Bibliografa___________________________________________________________ 63

66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Pgina 3 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final

ndice de Figuras y Tablas


Tabla 1 Factorizacin utilizando el algoritmo Special Number Field Sieve____________________ Fig. 1 - MD5 ________________________________________________________________________ Fig. 2 - DES ________________________________________________________________________ Fig. 3 - IDEA _______________________________________________________________________ Fig. 4 - CBC con tamao de bloque = tamao unidad de datos ________________________________ Fig. 5 - CFB con tamao de bloque = tamao unidad de datos_________________________________ Fig. 6 - OFB con tamao de bloque = tamao unidad de datos ________________________________ Fig. 7 - Partes constitutivas del Ojo ______________________________________________________ Fig. 8 - Patrn de Iris tomado a 50 cm ___________________________________________________ Fig. 9 - Iris y su codificacin ___________________________________________________________ Fig. 10 - Sistema de reconocimiento por altavoz ____________________________________________ Tabla 2 Certificado de Clave Pblica ___________________________________________________ 11 12 15 17 18 19 19 39 39 40 45 58

66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Pgina 4 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final

Prefacio
El tema que se desarrolla es el de Firma Digital o Firma Electrnica. La investigacin respecto de este tema abarca una larga serie de tems que se dividen en 4 subtemas para facilitar su mejor anlisis y entendimiento: i. ii. iii. iv. Introduccin terica Implementacin de un Esquema de Firma Digital Implementaciones de la Firma Digital por medio de Biometric Tokens Visin legal en el mundo

A continuacin se describe brevemente cada uno de estos subtemas, para orientar al lector respecto del enfoque adoptado en el tema bajo anlisis.

Introduccin Terica
Se definen los trminos usados mas comnmente en la temtica de Firma Digital, se analizan brevemente los protocolos clsicos, y en detalle aquellos de aplicacin prctica. Son descriptos los algoritmos necesarios para su implementacin. Se analizan los problemas fundamentales encontrados al pasar de la teora a la prctica.

Implementacin de un Esquema de Firma Digital


Sobre la base terica previamente descripta, se procede a la implementacin de un esquema sencillo de firma digital, para lo cual se utiliza el lenguaje Visual Basic. Son implementados en particular, los algoritmos MD5 (funcin de hash) y RSA (criptosistema de clave pblica). Se realiza un programa de demostracin que gua al usuario paso a paso a travs de las distintas etapas involucradas en el esquema de firma implementado.

Implementaciones de la Firma Digital por medio de Biometric Tokens


Se definen los Biometric Tokens y sus caractersticas principales; se relacionan con el tema bajo estudio, la Firma Digital, y se describen aplicaciones de hardware que se complementan para la autenticacin e identificacin de una persona (escaneo de retina, reconocimiento facial, huellas dactilares, etc.)

Visin Legal en el Mundo:


Se realiza un anlisis etimolgico de la palabra "firmar, se definen trminos concernientes al vocabulario de Firma Digital estrictamente desde el punto de vista legislativo; se plantea la situacin legislativa mundial actual referente a la Firma Digital (situacin actual, posibles soluciones a implementar); se analiza la normativa aplicada a la firma digital de documentacin, focalizndose el mismo en el proyecto de ley de Firma Digital de Alemania y el decreto Nro. 427/98 de la Repblica Argentina

66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Pgina 5 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final

Introduccin terica
Se describen sucintamente las motivaciones, caractersticas principales, y algoritmos utilizados actualmente en el rea de la criptografa orientada a la obtencin de firmas digitales; seguimos los lineamientos generales de [Schneier, 1996]. De un anlisis superficial del uso de la firma (clsica) en nuestra organizacin social y jurdica actual, destacamos rpidamente los siguientes aspectos esenciales (e ideales) que la caracterizan, a saber, La firma tiene carcter de autntica: convence a quien recibe un documento firmado de que el firmante ha deliberadamente (esto es, con intencin) firmado el documento. La firma no es falsificable: es prueba de que slo el firmante, y no otra persona, ha firmado el documento. La firma no es reusable: es parte del documento; no es susceptible de ser trasladada a otro documento. El documento firmado es inalterable; una vez firmado, el documento no puede ser alterado. La firma no puede ser repudiada: la persona firmante no puede declamar el no haber efectuado la firma.

En la realidad, es claro que ninguna de las caractersticas mencionadas anteriormente se cumple estrictamente; de cualquier modo, el objetivo para quien disea esquemas de firmado digital ser siempre lograr una solucin cuyas caractersticas se aproximen tanto como sea posible a aquellas del objeto ideal. Ahora bien, al intentar un primer acercamiento al problema de la posible implementacin de estos esquemas en un medio informtico, notamos que, Es muy sencillo en general copiar archivos utilizando una computadora. Es muy sencillo en general modificar documentos utilizando una computadora, agregando, quitando, o editando secciones del mismo.

Esto quita sentido al uso de la solucin trivial: adosar una imagen de la firma manuscrita al documento en cuestin. Vamos a proponer dos esquemas de firmado digital de documentos, basados en un caso en tcnicas que utilizan criptografa simtrica, y en el otro, en criptografa de clave pblica. Recordamos brevemente que, Criptografa Simtrica: es aquella en la cul es necesario establecer un nica clave, secreta, convenida entre los dos usuarios del canal de comunicacin. Por cada par de usuarios es necesaria una clave diferente; el valor de la clave se torna tan alto como el de la informacin que se encripta, ya que de ser descubierta la clave, lo ser tambin toda la informacin intercambiada. Criptografa de clave pblica: se caracteriza por requerir, en forma independiente para cada usuario (podrn ser dos o ms, esto es indistinto), dos claves: una clave secreta, y una clave privada. Se presupone que es computacionalmente imposible obtener (lase calcular), a partir de la clave pblica, a la clave secreta. Conceptualmente, cualquier persona que posea la clave pblica podr encriptar mensajes utilizando este esquema, pero nicamente los podr desencriptar aquella persona que posea la clave privada correspondiente.

66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Pgina 6 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final

Firma de documentos utilizando criptosistemas simtricos y una autoridad certificante


Identificaremos, tal como es la prctica usual en la bibliografa, a dos usuarios, Alice: usuario que posee un documento y desea firmarlo digitalmente, y Bob: usuario que recibir el documento firmado (y por lo tanto desear tener la seguridad de que el texto ha sido generado por Alice); necesitaremos tambin a una tercera persona, que denominaremos Trent: representa a la autoridad certificante (a veces llamada trusted arbitrator); Trent puede, por hiptesis, comunicarse con Alice y con Bob; comparte una clave secreta KA con Alice, y KB con Bob; estas claves (a utilizar en el criptosistema simtrico) son establecidas previamente al inicio del protocolo que a continuacin ser descripto. Alice encripta su mensaje para Bob utilizando KA y lo enva a Trent Trent desencripta el mensaje utilizando KA Trent crea un nuevo mensaje, del cul formarn parte el mensaje original (en dos versiones: desencriptado, y encriptado con KA), y una certificacin de que el mensaje ha sido enviado por Alice; luego encriptar al nuevo mensaje utilizando la clave KB Trent enviar el nuevo mensaje a Bob Bob desencriptar el mensaje recibido utilizando KB; l podr leer el mensaje original de Alice y la confirmacin de Trent afirmando que el mensaje fue originado por Alice

Es posible ahora analizar al protocolo en funcin de las caractersticas ideales buscadas en un esquema de firma digital. Observamos lo siguiente, La firma es autntica: esto se basa en la confianza que depositamos en Trent, la autoridad certificante; es claro que si surgen problemas con dicha autoridad, todo el esquema de firma ser puesto en duda. Trent asegura a Bob que el mensaje fue originado por Alice; en tanto Bob confe en Trent, y la clave secreta KB sea conocida nicamente por Trent y por Bob, es posible aceptar este hecho. La firma no es falsificable: slo Alice y Trent conocen KA; luego si alguien hubiese intentado engaar a Trent hacindose pasar por Alice, hubiese sido detectado en el paso 2 del protocolo; luego Trent no hubiese emitido su certificado. La firma no es reusable: si Bob hubiese tratado de tomar el certificado que le entreg Trent, para adjuntarlo a otro mensaje (falso, supuestamente enviado por Alice hacia Bob, pero en realidad creado por Bob), Trent (o cualquier otra autoridad certificante) podra pedir a Bob el mensaje y tambin el mensaje original encriptado por Alice con KA; luego inmediatamente detectara el intento de Bob, ya que Bob por hiptesis no conoce la clave KA, y por lo tanto no puede abrir y modificar el mensaje original de Alice; slo Trent puede hacer esto ltimo (aunque supuestamente nunca lo har). El documento firmado no podr ser alterado; ya que si lo fuese, Trent podra probar que el documento fue alterado, utilizando un mecanismo similar al descripto en el punto anterior. Alice no puede repudiar al documento enviado: Trent ha certificado que el documento fue enviado por Alice, y por hiptesis, los usuarios depositan su confianza en Trent.

El inconveniente principal del protocolo analizado es el siguiente: cada intercambio de mensajes requiere la intervencin de Trent, la autoridad certificante; esto implica un costo muy grande en trminos de procesamiento y utilizacin de la red; por otro lado, la seguridad de todo el esquema de firma depender de Trent; l deber ser completamente seguro e infalible, ya que 66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires
Pgina 7 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final poseer una base de datos con las claves secretas (KA, KB, etc.) de todos los usuarios del sistema. Esto hace que, si bien el sistema funciona en teora, en la prctica sea de aplicacin restringida.

Firma de documentos utilizando criptosistemas de clave pblica


La idea fundamental aqu es tomar partido de la naturaleza de los criptosistemas de clave pblica para crear un esquema de firma digital. Por hiptesis, todos los usuarios tienen acceso a las claves pblicas; luego para firmar un documento, bastara en principio con encriptarlo con la clave privada correspondiente al usuario que lo cre, y distribuirlo: el resto de los usuarios podr desencriptarlo, ya que todos poseen la clave pblica requerida, pero no podrn modificarlo, ya que si bien se tiene acceso al texto plano (es decir, sin encriptar), no es posible, una vez hecha alguna modificacin, generar nuevamente el documento firmado, ya que no se cuenta con la clave privada necesaria para llevar esto a cabo. Es claro que podemos considerar a este esquema como seguro en tanto el algoritmo de clave pblica subyacente al mismo lo sea. El protocolo bsico es muy sencillo, Alice encripta el documento con su clave privada, firmando de sta forma al documento. Alice enva el documento firmado a Bob. Bob desencripta el documento con la clave pblica de Alice, verificando de sta forma la firma. La ventaja evidente de este protocolo respecto de aquel discutido en la seccin anterior, radica en que no requiere de una autoridad certificante a travs de la cual deban circular todos los mensajes intercambiados entre los usuarios. A continuacin, anlogamente a lo hecho antes, se analiza el protocolo en funcin de las caractersticas ideales buscadas en un esquema de firma digital; La firma es autntica: cuando Bob verifica el mensaje utilizando la clave pblica de Alice, el tiene la certeza de que ha sido Alice quien ha producido la firma. La firma no es falsificable: slo Alice conoce su clave privada. La firma no es reusable: la firma es una funcin del documento y no puede ser transferida a ningn otro documento. El documento firmado es inalterable: si sucede cualquier tipo de alteracin, el documento ya no podr ser verificado utilizando la clave pblica de Alice. La firma no puede ser repudiada: Bob no necesita a Alice para verificar fehacientemente que la firma pertenece a Alice.

Desde ya, el protocolo mencionado no es infalible: carece an de un componente esencial: la nocin de la temporalidad; es decir, la asignacin de un dado tiempo de vida a la firma, a contar desde la fecha de emisin; la necesidad es visible claramente si mencionamos una posible aplicacin: la firma digital de cheques: en caso de no poseer una fecha de emisin, sera trivial la copia digital del documento ms la firma (en conjunto), para utilizarlos nuevamente. Lamentablemente, los criptosistemas de clave pblica utilizados actualmente exigen una gran capacidad de clculo, lo cul torna su uso ineficiente para la firma de documentos de gran extensin. La solucin es simple y elegante; radica en la aplicacin de una funcin de hash, tambin conocida como de digesto, que posee la propiedad de, dado un documento de extensin arbitraria, producir una cadena de bits, de longitud fija (por ejemplo 128 160 bits), que lo 66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Pgina 8 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final caracterice; particularmente, las funciones de hash empleadas en criptografa tienen las siguientes propiedades adicionales [Stinson, 1995] strongly collision free, es decir, es computacionalmente no factible el poder encontrar dos mensajes x x tales que hash(x) = hash(x). one way, es decir, dado un resultado obtenido de la funcin de hash, z, es computacionalmente no factible el poder encontrar un mensaje x tal que hash(x)=z. La idea es, dado un documento a firmar, aplicar la funcin de hash para obtener una cadena de bits de longitud fija que lo caracterice de manera casi unvoca, y luego aplicar el criptosistema de clave pblica a dicha cadena de bits. Por ltimo, la firma estar constituida por el resultado de la aplicacin del criptosistema; se ha logrado as, adems, separar a la firma digital del documento en s.

Generalidades Inconvenientes Esenciales


Ambos esquemas revistos adolecen de un inconveniente: nada impide a Alice (usuario que firma el documento) argumentar que su clave privada ha sido robada y es por lo tanto de conocimiento pblico; ms an, es posible que Alice misma haga pblica su clave con el objeto de invalidar documentos previamente firmados. Hasta cierto punto, esto puede evitarse utilizando en el protocolo de firma el concepto temporal mencionado anteriormente, pero siempre existir un gap temporal gracias al cual Alice podra probar (jurdicamente) que no firm un documento cuando en realidad s lo hizo. Esta es la causa de que se estn investigando (y en algunos casos utilizando) dispositivos electrnicos a prueba de abusos (tamper-resistant) para el almacenamiento de claves privadas, de modo que ni an el dueo de la misma (Alice) conozca su contenido. En una seccin posterior del presente trabajo se describen medios no convencionales de firma que permiten obtener la clave privada (o su equivalente, segn sea el algoritmo) a partir de caractersticas personales, como las huellas dactilares, la retina ocular, etc. Otro problema citado profusamente en la bibliografa es el concerniente a la distribucin de claves pblicas; la forma trivial consiste en organizar una base de datos de acceso pblico con las claves, pero aqu surge un inconveniente: qu sucede si una tercera persona (llammosla Mallory) tiene la posibilidad de modificar la clave pblica de alguno de los usuarios, sustituyndola por la propia? Tendr la posibilidad de firmar arbitrariamente documentos simulando ser Alice, ya que Bob, al realizar la verificacin de la firma del documento, ser provisto (por la base de datos de acceso pblico) con la clave pblica de Mallory (que haba sustituido a la clave pblica original de Alice). Una posible solucin a este inconveniente, utilizada en la prctica, est dada por el uso de una autoridad certificante (tambin conocido como KDC, key distribution center), que ser la encargada de distribuir las claves pblicas de los usuarios del sistema, pero entregando, junto con cada clave pblica, un certificado de validez de la misma, que consiste simplemente en su propia firma del documento clave pblica que est entregando; se presupone que todos los usuarios poseen la clave pblica del KDC, de modo que podrn a su vez verificar la autenticidad de la clave pblica que ste les enva. Desde ya, es posible que Mallory modifique la clave pblica del KDC que posee por ejemplo Alice, si bien esto le sera ms dificultoso que atacar a la base de datos pblica. En la prctica, por ejemplo, encontramos que el programa Microsoft Internet Explorer 4.02, que soporta criptografa de clave pblica, tiene incluido, en su cdigo interno, la clave pblica (denominada root key) del KDC constituido por la firma estadounidense Verisign, Inc.

Formalizacin
Formalmente, siguiendo a [Stinson, 1995], podemos decir que un esquema de firma digital es un 5-upla (P,A,K,S,V), en donde se satisfacen las siguientes condiciones: 66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires
Pgina 9 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final P es el conjunto finito de todos los posibles mensajes A es el conjunto finito de todas las posibles firmas K, el espacio de claves, es un conjunto finito con todas las posibles claves para cada k K, hay un algoritmo de firmado sigK S, y un algoritmo de verificacin correspondiente, verk V. Cada uno de los sigk:P A y verk:PxA {verdadero, falso}, son funciones tales que la siguiente ecuacin se satisface para cada mensaje x P y para cada firma y A:

verdadero sii y = sig (x ) ver (x, y ) = falso sii y sig (x )

Segn este esquema, es claro que la funcin ver() deber ser hecha pblica, y la funcin sig() privada. Tambin deber ser computacionalmente no factible la falsificacin de la firma; esto es, que dado un mensaje x, no le sea posible a una persona que no posea la funcin sig() realizar la firma (aunque dicha persona posea la funcin ver()). De aqu inferimos que los esquemas clsicos criptografa de clave pblica se prestan en forma natural para aplicaciones de firma digital.

RSA
Un caso frecuentemente utilizado en la prctica, y tambin implementado en el presente trabajo, es la construccin del esquema de firma digital sobre el algoritmo de clave pblica RSA (por Rivest-Shamir-Adleman, sus creadores), donde Sea n=pq, donde p y q son primos. Sea P=A=Zn, y definimos K={(n,p,q,a,b): n=pq, p, q primos, ab1 mod((n))} Los valores n y b constituirn la clave pblica, y los valores p, q, a a la clave secreta. Para K definimos: sigK(x)=xa mod n verK(x)= verdadero si y slo si xyb mod n. La variable x representa al resultado obtenido de la funcin de hash aplicada al documento a firmar; un caso tpico es el algoritmo MD5, tambin implementado en el presente trabajo; posteriormente ser descripto con mayor detalle; otro caso tpico es el algoritmo SHA (Secure Hash Algorithm) que forma parte del esquema de firma DSA (Digital Signature Algorithm), propuesto por la Agencia Nacional de Seguridad estadounidense como un standard para firmado digital. Este algoritmo (RSA) basa su seguridad en la dificultad de realizar la factorizacin (descomposicin en factores primos) de un nmero de gran tamao (a mayor cantidad de dgitos, mayor seguridad); esto es as ya que es posible ver que si una tercera persona logra factorizar al nmero n (que es parte de la clave pblica), podr fcilmente obtener el valor a, ya que posee al valor b (que tambin es parte de la clave pblica). Luego esta tercera persona podr firmar documentos del mismo modo en que lo puede hacer el dueo de la clave secreta. Si bien no ha sido demostrado matemticamente en forma rigurosa, se piensa (conjetura) hoy da que no existe un algoritmo que permita descomponer un nmero cualquiera en sus factores primos en un tiempo que vare menos que exponencialmente con la cantidad de dgitos del mismo. Decimos que los algoritmos actuales de factorizacin insumen un tiempo de cmputo que vara exponencialmente con la cantidad de dgitos d, o segn la notacin usual son del tipo O(ed). Luego ser necesario trabajar con una longitud de n tal que no sea posible, en un perodo de tiempo razonable, con el poder de clculo actual y el previsto en un futuro cercano, poder factorizarlo. El algoritmo ms rpido conocido actualmente para realizar factorizaciones se denomina Special Number Field Sieve, y es un derivado (muy, muy lejano) del sencillo y conocido algoritmo de la Criba de Eratstenes. Los requerimientos de potencia de clculo suelen medirse en una unidad conocida como mips-ao; un mips-ao es la potencia de clculo de una 66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires
Pgina 10 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final computadora capaz de realizar 1 mips (milln de instrucciones por segundo), trabajando durante un ao. Como referencia, se considera que un microprocesador Pentium de 100MHz es capaz de realizar, en promedio, 50 mips. La tabla siguiente, actualizada al ao 1997, puede servir de gua al seleccionar el largo de una clave: Cantidad de bits en el Nmero 512 768 1024 1280 1536 2048 mips-ao requeridos para la factorizacin <200 100000 3 107 3 109 2 1011 4 1014

Tabla 1 Factorizacin utilizando el algoritmo Spec ial N umber Field Sieve

Un hecho interesante es que, en el ao 1994, se logr factorizar por primera vez un nmero de 129 dgitos, trabajo para el cual se utiliz el tiempo libre de cientos de computadoras enlazadas por Internet, durante alrededor de un ao; estimaciones sugieren que el poder de clculo utilizado fue de slo el 0.03 por ciento del total que constituyen todas las computadoras que forman parte de la red de redes Internet (en ese mismo ao). Surge asimismo la necesidad de generar al nmero n a partir de dos factores primos, que debern ser como vimos, de gran longitud. Esencialmente por el mismo motivo por el cual no es posible descomponer un nmero muy grande en sus factores primos, tampoco es sencillo asegurar que un dado nmero sea o no primo. Es por ello que este problema se ataca con una estrategia probabilstica: se genera un nmero al azar, y ste se aplica como entrada a un algoritmo que responde (en el caso del tipo Montecarlo) no si el nmero definitivamente no es primo, y, para la respuesta s, existe una dada probabilidad de que el nmero en cuestin sea realmente primo. Una propiedad interesante de este tipo de algoritmos es que, por medio de sucesivas aplicaciones del mismo, es posible disminuir la probabilidad de error (la probabilidad de considerar como primo a un nmero que en realidad no lo es) tanto como se quiera; desde ya, a menor probabilidad de error deseada, mayor tiempo de clculo. Notamos que el problema de la generacin de nmeros primos aleatorios no es menor, si consideramos que se trata de nmeros de ms de 100 dgitos. El problema de la longitud de las claves se retoma en una seccin posterior, al tratar el tema de su almacenamiento. Observamos finalmente que existen esquemas de firma digital, notablemente el ya mencionado DSA, que basan su seguridad en otro problema matemtico, por ejemplo, en la dificultad del clculo de logaritmos discretos sobre campos numricos finitos; el criptosistema de clave pblica ms conocido que aprovecha este hecho se denomina ElGamal (nombre de su autor), y sobre ste ltimo ha sido construido DSA. Sin embargo, se cree en general que el problema de la factorizacin es ms intratable que el de la obtencin de logaritmos; si bien en ninguno de los dos casos pueden realizarce afirmaciones rigurosas.

MD5
MD5 procesa el texto de entrada (documento a firmar) en bloques de 512 bits, subdivididos en 16 subbloques de 32 bits. La salida del algoritmo est dada por cuatro subbloques de 32 bits, lo que en suma nos da un resultado de 128 bits. En primer lugar, dado el mensaje, ste es completado (de una manera particular) de modo que la longitud resultante (en bits) sea mltiplo de 512. Esto se lleva a cabo agregando, al final del mensaje, una secuencia de bits dada por: Sea d = 447 (|mensajeOriginal| mod 512) Sea l la representacin binaria de |mensajeOriginal| mod 64, |l|=64 nuevoMensaje=mensajeOriginal||1||0d||l 66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Pgina 11 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final dnde la notacin |x| se lee cardinalidad longitud de la cadena de bits x, y el smbolo || implica concatenacin de cadenas; en definitiva, garantizamos que la longitud del mensaje nuevoMensaje ser siempre mltiplo de 512. Luego se inicializan cuatro variables de 32 bits: A=0x01234567 B=0x89abcdef C=0xfedcba98 D=0x76543210 Se describe ahora al loop principal del algoritmo, que se aplicar a cada uno de los bloques de 512 bits. Las cuatro variables son copiadas en otras cuatro, llamadas respectivamente a, b, c y d. El loop principal consta de cuatro rounds, muy similares entre s. Cada uno de ellos consta de 16 operaciones; stas consisten en funciones no lineales sobre tres de las cuatro variables a, b, c y d; el resultado de stas se adiciona a la cuarta variable; asimismo se adiciona una constante y el valor del subbloque de texto sobre el que se est computando; luego se realiza un desplazamiento hacia la derecha de una cantidad variable de bits. El resultado de la sumatoria y desplazamiento mencionados ser el nuevo valor de la cuarta variable. Las funciones no lineales utilizadas estn dadas por: f(x,y,z) = (x And y) Or ((Not x) And z) g(x,y,z) = (x And z) Or (y And (Not z)) h(x,y,z) = x Xor y Xor z i(x,y,z) = y Xor (x Or (Not z)) Estas funciones tienen la propiedad matemtica de que, si los bits correspondientes de x, y, y z son independientes y estadsticamente insesgados, entonces cada bit del resultado tendr tambin estas propiedades. Sea MJ el j-simo subbloque del mensaje (0 <= J <= 15), y RotateLeft(x,s) represente un desplazamiento circular hacia la izquierda de s bits; entonces las cuatro operaciones (una para cada round) sern FF(a,b,c,d,Mj,s,ti) = b + RotateLeft( (a + f(b, c, d) + Mj + ti) , s) GG(a,b,c,d,Mj,s,ti) = b + RotateLeft( (a + g(b, c, d) + Mj + ti) , s) HH(a,b,c,d,Mj,s,ti) = b + RotateLeft( (a + h(b, c, d) + Mj + ti) , s) II(a,b,c,d,Mj,s,ti) = b + RotateLeft( (a + i(b, c, d) + Mj + ti) , s).

Fig. 1 - MD5

66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Pgina 12 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final A modo de ejemplo, transcribimos el cdigo correspondiente al primer round: Call FF(a, b, c, d, m(0), 7, 3614090360) Call FF(d, a, b, c, m(1), 12, 3905402710) Call FF(c, d, a, b, m(2), 17, 606105819) Call FF(b, c, d, a, m(3), 22, 3250441966) Call FF(a, b, c, d, m(4), 7, 4118548399) Call FF(d, a, b, c, m(5), 12, 1200080426) Call FF(c, d, a, b, m(6), 17, 2821735955) Call FF(b, c, d, A, m(7), 22, 4249261313) Call FF(a, b, c, d, m(8), 7, 1770035416) Call FF(d, a, b, c, m(9), 12, 2336552879) Call FF(c, d, a, b, m(10), 17, 4294925233) Call FF(b, c, d, a, m(11), 22, 2304563134) Call FF(a, b, c, d, m(12), 7, 1804603682) Call FF(d, a, b, c, m(13), 12, 4254626195) Call FF(c, d, a, b, m(14), 17, 2792965006) Call FF(b, c, d, a, m(15), 22, 1236535329) '*1* '*2* '*3* '*4* '*5* '*6* '*7* '*8* '*9* ' * 10 * ' * 11 * ' * 12 * ' * 13 * ' * 14 * * 15 * ' * 16 *

El cdigo completo correspondiente a la implementacin del algoritmo MD5 se encuentra en la seccin Implementacin de un Esquema de Firma Digital. Mencionamos asimismo que existe otro algoritmo muy utilizado en la prctica, denominado Secure Hash Algorithm (SHA) desarrollado por la National Security Agency (NSA) estadounidense en base a un antecesor del algoritmo antes descripto (MD4); posee propiedades similares, siendo su fundamental diferencia respecto a MD5, el que produce como resultado una cadena de 160 bits, en lugar de 128. Es el algoritmo utilizado por las agencias federales estadounidenses.

El problema del almacenamiento de las claves privadas


Como mencionamos anteriormente, en al prctica los esquemas de firma digital son implementados sobre criptosistemas de clave pblica; estudiamos tambin el hecho de que stos requieren dos claves, la clave pblica y la clave privada. Ahora bien, en general, las claves que utilizan stos algoritmos son nmeros enteros con ciertas propiedades (por ejemplo, cumplen la condicin de primalidad en un dado campo finito). Tpicamente, para que el criptosistema de clave pblica sea considerado computacionalmente seguro (es decir, que el algoritmo no pueda ser quebrado con los recursos disponibles en este momento y en un futuro previsible) se requiere que las claves tengan una longitud, que usualmente se mide en dgitos binarios, del orden de 700 a 1024 bits, si bien actualmente existen implementaciones que permiten claves de hasta 4096 bits; para tener una nocin ms concreta de lo que esto significa, notamos que aproximadamente, la cantidad de dgitos decimales contenidos en un nmero de b dgitos binarios es de

d=

log 2 (10 )

entonces, para b=700, tendremos 211 dgitos, y para b=4096, 1234 dgitos. Es claro que no ser razonable exigir al usuario la capacidad de recordar la clave; sta deber estar almacenada de alguna manera. Tenemos bsicamente tres opciones: la opcin trivial es almacenar la clave en un archivo de del sistema en el que se opera el esquema de firma digital; claramente actuando de esta manera la seguridad de nuestro sistema estar limitada por cun difcil le sea a una persona distinta del usuario el acceso al sistema: si terceras personas tienen acceso a la clave privada del usuario, carece de sentido en general la utilizacin del esquema de firma digital. 66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Pgina 13 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final Descartada la primera opcin, distinguimos las restantes: almacenar la clave en un archivo del sistema, utilizando un criptosistema convencional de clave simtrica (lase cifrado por bloques), almacenar la clave fuera del sistema. Respecto de sta ltima opcin, es la elegida cuando se requieren muy altos niveles de seguridad; en general la clave es almacenada en smart cards, tarjetas electrnicas construidas de modo tal que No es posible desarmarlas en modo alguno para obtener la clave almacenada (tamper resistant, como mencionamos anteriormente) Implementan protocolos de autentificacin, e incluso el criptosistema de clave pblica completo, en su interior: de sta manera hacen innecesario que la clave sea entregada al sistema; es decir, la clave privada del usuario en ningn momento es comunicada al exterior de la tarjeta.

Sin embargo, esta opcin requiere, para un usuario de computadoras personales tpicas, la adicin de hardware adicional que permita el uso de las tarjetas. En muchos casos, el nivel de seguridad requerido no es tan elevado como para requerir el uso de las mismas, y se opta por almacenar la clave privada dentro del mismo sistema, utilizando para ello un algoritmo de cifrado por bloques convencional, de modo de encriptar el archivo que contendr la clave. Repetimos que ste hecho disminuye el nivel de seguridad del esquema de firma, ya que para quebrarlo bastar quebrar al archivo encriptado que contiene la clave privada; an as en muchos casos el nivel logrado es aceptable; por otra parte siempre ser posible almacenar el archivo en cuestin en disquete, de modo que la seguridad del esquema estar dada ahora, adems de por aquella del criptosistema de clave simtrica, por nuestra capacidad de almacenar el dispositivo (disquete) en forma segura. En la prctica, nos encontramos con que se suelen utilizar bsicamente dos algoritmos: DES (o alguna de sus variantes, por ejemplo triple-DES; DES: Data Encryption Standard), e IDEA (International Data Encryption Algorithm). Si bien internamente estn basados en principios diferentes, ambos tienen la caracterstica de ser algoritmos de cifrado por bloques: dado un bloque de texto de entrada de cierta longitud, y una clave de cierta longitud, ambos producen el cifrado correspondiente, de igual longitud a la del texto de entrada.

DES
Las caractersticas fundamentales de DES son las siguientes: se trata de un algoritmo de cifrado por bloques, cada uno de 64 bits de longitud; es un algoritmo simtrico, en el sentido de que el mismo algoritmo, con la misma clave, es utilizado tanto para la encriptar como para desencriptar. El largo de la clave es 56 bits (usualmente se expresa a la clave como un nmero de 64 bits, pero 8 de stos han sido pensados para chequeo de paridad, y no son utilizados a lo largo del algoritmo). Esencialmente, el algoritmo realiza secuencias de permutaciones y sustituciones sobre el texto a encriptar combinado con la clave; consta de 16 rounds en los cuales estas operaciones son realizadas. El algoritmo utiliza solo aritmtica convencional (cf. aritmtica modular) y operaciones lgicas, sobre enteros de 64 y 32 bits; esto permite eficientes implementaciones en hardware. DES trabaja de la siguiente manera: dado un bloque de 64 bits del texto a encriptar, en primer lugar realiza una permutacin inicial sobre el mismo; luego el bloque es partido en dos mitades, la izquierda y la derecha, de 32 bits cada una. Luego se suceden 16 rounds de operaciones idnticas, llamadas Funcin f, en las que los datos son combinados con la clave. Por ltimo, al terminar el ltimo round, las mitades izquierda y derecha son reunidas, y se realiza una permutacin final.

66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Pgina 14 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final

Fig. 2 - DES

En cada round, los bits de la clave son desplazados, y luego 48 bits de sta son seleccionados. Los 32 bits de la mitad derecha son convertidos, por medio de una permutacin expansiva, en 48; luego stos son combinados con una versin desplazada de la clave correspondiente al round en anlisis (de 48 bits) utilizando una XOR, y el resultado de esto es enviado a travs de 8 cajas S (simples tablas de permutacin), produciendo 32 nuevos bits, y permutado nuevamente. Las cuatro operaciones mencionadas constituyen lo que denominamos Funcin f. La salida de esta funcin es combinada con la correspondiente a la mitad izquierda por medio de otra XOR; el resultado de estas operaciones pasar a ser la nueva mitad derecha; la antigua mitad derecha pasa a ser la nueva mitad izquierda. Todo esto se repetir 16 veces, constituyendo a los 16 rounds de DES.

IDEA
Este es un algoritmo de cifrado por bloques, de 64 bits de longitud; la clave que utiliza es de 128 bits; el mismo algoritmo se utiliza tanto para encriptar como para desencriptar, sin embargo, la clave es tratada en forma distinta para el cifrado y el descifrado. Los distintos pasos del algoritmo han sido justificados matemticamente por sus autores (Xuejia Lai y James Massey); se basa en el principio de mezcla de operaciones de distintos grupos algebraicos. Tres son los grupos algebraicos mezclados, dados por las operaciones XOR 16 Suma en mdulo 2 16 Multiplicacin en mdulo 2 +1

66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Pgina 15 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final Estas ltimas operaciones (que son las nicas que el algoritmo necesita, es decir, no se requieren permutaciones) operan sobre subbloques de 16 bits. Dado un bloque de 64 bits del texto a encriptar, ste es dividido en cuatro subbloques de 16 bits cada uno: X1, X2, X3, y X4. stos ltimos sern la entrada al primer round del algoritmo; en total, se utilizan 8 rounds. En cada round, sobre los cuatro subbloques se aplican XOR, sumas y multiplicaciones, entre s y en combinacin con seis subclaves de 16 bits cada una. Entre round y round, el segundo y tercer subbloque son intercambiados. Finalmente, los cuatro subbloques son combinados con cuatro subclaves en lo que constituye la transformacin final. En cada round, se produce la siguiente secuencia de eventos 1) 2) 3) 4) 5) 6) 7) 8) 9) 10) 11) 12) 13) 14) Multiplicacin de X1 con la primer subclave Suma de X2 con la segunda subclave Suma de X3 con la tercer subclave Multiplicacin de X4 con la cuarta subclave XOR de los resultados de 1) y 3) XOR de los resultados de 2) y 4) Multiplicacin del resultado de 5) con la quinta subclave Suma de los resultados de 6) y 7) Multiplicacin del resultado de 8) con la sexta subclave suma de los resultados de 7) y 9) XOR de los resultados de 1) y 9) XOR de los resultados de 3) y 9) XOR de los resultados de 2) y 10) XOR de los resultados de 4) y 10)

El resultado producido en cada round est dado por 11), 12), 13), y 14), Intercambiando los valores de 12) y 13) obtendremos los valores cuatro valores de entrada necesarios para el round siguiente. Luego del octavo round, se realiza la transformacin final, 1) 2) 3) 4) Multiplicacin de X1 y la primer subclave (subclave 1 de la transformacin final) Suma de X2 y la segunda subclave Suma de X3 y la tercer subclave Multiplicacin de X4 y la cuarta subclave

Por ltimo, los cuatro bloques resultantes vuelven a unirse para formar el bloque de 64 bits de salida.

66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Pgina 16 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final

Fig. 3 - ID EA

En total, el algoritmo requiere 52 subclaves (seis para cada uno de los ocho rounds, y cuatro ms para la transformacin final). stas son creadas a partir de la clave original de 128 bits; sta ltima es partida en 8 bloques de 16 bits, constituyendo las 6 claves del primer round, y las dos primeras claves del segundo round; luego la clave original es desplazada 25 bits a la izquierda en forma circular, de donde se obtienen las 8 subclaves siguientes; luego se realiza un nuevo desplazamiento, etc. Para desencriptar, se utilizar el mismo algoritmo, pero con una operacin adicional sobre las subclaves; algunas de ellas debern ser invertidas (ya sea respecto de la suma o de la multiplicacin) previo al inicio del primer round.

Modos de funcionamiento de un algoritmo de cifrado por bloques


ECB Dado un algoritmo de cifrado por bloques, el modo ms sencillo de utilizacin estar dado por, a partir del texto a cifrar partido en bloques, encriptar cada bloque independientemente de los dems, y todos con la misma clave. Este procedimiento se suele denominar modo ECB (Electronic CodeBook mode). En este modo, un bloque de texto dado producir siempre el mismo resultado (ciphertext). Luego en teora es posible crear, de antemano, los ciphertexts correspondientes a todos los posibles bloques de entrada; siendo el tamao de bloque fijo, por ejemplo de 64 bits, 64 entonces podremos pre-computar el ciphertext correspondiente a cada uno de los 2 bloques de texto posibles; recordamos que el ciphertext es funcin tambin de la clave deberemos pre64 56 computar los 2 ciphertexts que corresponden a cada una de las 2 claves posibles. Si bien no hay dificultades tericas, en la prctica, actualmente, esto no se lleva a cabo. El inconveniente fundamental con este modo, es que si un criptanalista (persona dedicada al anlisis de sistemas criptogrficos) toma posesin del texto original y el ciphertext 66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Pgina 17 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final correspondiente a varios mensajes, entonces podr compilar (parcialmente) una lista de textos y ciphertexts correspondientes, que podr aplicar al anlisis de nuevos mensajes. La ventaja fundamental es que este modo es susceptible de ser implementado en paralelo, es decir, con varios procesadores trabajando simultneamente sobre distintas partes del mensaje; esto es ideal para aplicaciones que requieran alta velocidad. CBC El concepto que este modo (Cipher Block Chaining) introduce es el de feedback. El ciphertext que surgi como resultado de encriptar al bloque de texto n, es reintroducido en el sistema al encriptar el bloque n+1; en otras palabras, cada bloque de ciphertext es usado para modificar el modo en que ser encriptado el bloque siguiente. En concreto, en este modo, cada bloque de texto es aplicado a la entrada de una funcin XOR junto con el ciphertext correspondiente al bloque anterior; y el resultado de la XOR ser la entrada al algoritmo de cifrado. La regla de descifrado es anloga. La ventaja de este modo es que el cifrado de cada bloque depende de todos los bloques anteriores: esto prcticamente imposibilita al criptanalista la construccin de una tabla con los bloques de texto y sus ciphertext correspondientes. Es como si, bloque a bloque, se utilizara una clave diferente para el algoritmo de cifrado. El gran inconveniente es el siguiente: si por algn motivo se produce un error en alguno de los bloques cifrados, y por lo tanto el texto recuperado al descifrar no coincide con el original, entonces todos los bloques subsiguientes sern descifrados errneamente; es decir, se produce una propagacin de errores. Esto se debe a la naturaleza realimentada de este modo.

Fig. 4 - CBC c on tamao de bloque = tamao unidad de datos

CFB En el modo CFB (Cipher FeedBack Mode), los datos de entrada pueden ser cifrados utilizando unidades (lase bloques) ms pequeas que el tamao de bloque del algoritmo de cifrado subyacente (DES, IDEA, etc.). Un algoritmo trabajando en modo CFB opera sobre una cola del mismo tamao que el del bloque de entrada al mismo. Inicialmente, dicha cola contiene al vector de inicio, IV. Luego la cola es aplicada como entrada al algoritmo de cifrado; los bits de la unidad de datos a cifrar son ingresados a una XOR junto con los bits correspondientes del ciphertext producido (contando a partir de la izquierda); el resultado, que tendr el mismo tamao que la unidad de datos, ser la unidad datos cifrada. Este ltimo valor podr ahora ser transmitido a travs del canal inseguro. Adems requerimos que este ciphertext sea reintroducido en la cola (a partir de la derecha), previo desplazamiento hacia la izquierda de la misma; el sistema queda ahora preparado para recibir una nueva unidad de datos, y as siguiendo. De manera anloga al modo CBC, el texto cifrado producido por el modo CFB para un dado bloque, depender del valor de todos los bloques anteriormente cifrados (notar nuevamente el concepto de feedback). 66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires
Pgina 18 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final

Fig. 5 - CFB c on tamao de bloque = tamao unidad de datos

OFB El Output FeedBack mode es similar al anteriormente descripto, pero aqu el texto a cifrar no es introducido a la cola de cifrado; sta est compuesta nicamente por el bloque cifrado anteriormente (feedback); la consecuencia fundamental de este proceder es que se evita la propagacin de errores: un error en un bit del ciphertext, producir, luego del descifrado, un error de un slo bit en el texto recuperado. Para aplicaciones que utilicen firma digital, al no haber limitaciones por ancho de banda del canal de transmisin (recordemos que la firma posee un tamao reducido y constante, independiente del tamao del mensaje a firmar), ni problemas de ruido, y siendo relativamente pequeos los textos a cifrar (correspondientes a la clave privada del criptosistema de clave pblica), la utilizacin de cualquiera de los 3 ltimos modos mencionados es, en la prctica, equivalente.

Fig. 6 - OFB c on tamao de bloque = tamao unidad de datos

66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Pgina 19 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final

Implementacin de un Esquema de Firma Digital

Generalidades
El objeto de sta seccin es mostrar cmo, a partir de los distintos elementos tratados en la introduccin terica, es posible construir un esquema de firma digital que rena las caractersticas bsicas discutidas. La implementacin ha sido realizada en lenguaje Visual Basic versin 5.0 Enterprise; est basada en las implementaciones de los distintos algoritmos analizadas en [Schneier, 1996]; si bien stas han sido realizadas en lenguaje C, han sido adaptadas en su totalidad para el presente trabajo. En el caso particular del algoritmo DES, se ha utilizado un componente ActiveX denominado arDES, difundido en Internet (y creado en Junio del presente ao) con carcter de freeware. Es necesario destacar que en Internet existen implementaciones de prcticamente la totalidad de los algoritmos necesarios para implementar un esquema de firma digital, incluyendo cdigos fuente, difundidas como freeware. El inconveniente en nuestro caso es que la totalidad de esas implementaciones han sido realizadas en C; esto es as sencillamente porque los algoritmos en cuestin requieren un poder de clculo muy elevado, slo conseguible en las mquinas actuales utilizando C. Pero en particular, para aplicaciones de firma digital, el tiempo de clculo no es un factor crtico: en general, los documentos son de un tamao comparativamente reducido, y los algoritmos criptogrficos se aplican sobre cadenas de texto pequeas y de longitud fija (por ejemplo los 128 bits de resultado de la funcin de hash, o los 1024 bits de una clave secreta). En el peor de los casos, slo ser necesaria una implementacin eficiente de la funcin de hash, para permitir el uso del esquema con documentos de gran longitud. Se ha elegido realizar la implementacin en Visual Basic, y no en C, porque el objeto de la misma es demostrar claramente el funcionamiento del esquema, y no el esquema en s; es por ello que el nfasis se ha puesto en la presentacin, y no en cun eficiente son los algoritmos implementados; en estos trminos, la mejor opcin para la implementacin es Visual Basic. Por otra parte, en trminos prcticos, carece de sentido codificar nuevamente un algoritmo sobre el cual ya han trabajado una cantidad de especialistas en el tema, y que (particularidad de los algoritmos criptogrficos) se encuentran en Internet en forma gratuita. Por otra parte, estimamos que en muy poco tiempo ms, las implementaciones hechas en C sern portadas a componentes ActiveX, con lo cul ya no habr un costo en tiempo de ejecucin al no utilizar C. En trminos generales, el mayor inconveniente que ha surgido al utilizar Visual Basic, es la poca flexibilidad (alto automatismo) que provee para manejar variables numricas. Por ejemplo, si en C definimos dos variables enteras (32 bits en un sistema operativo como Windows 98), y las sumamos almacenando el resultado en otra variable entera no signada, sabemos que 32 el resultado siempre ser < 2 ; sin embargo, realizar esto mismo en Visual Basic puede generar un error de overflow si el resultado de la suma excede 232-1; en C este exceso es ignorado, tomando como resultado slo los 32 bits menos significativos de la operacin. Algo anlogo sucede con la multiplicacin; VB generar errores por overflow, mientras que C los ignorar. Normalmente, el detectar estos errores de overflow es de utilidad, pero en el caso particular de los algoritmos criptogrficos, esto no es as: algoritmos como IDEA se basan en esta particularidad (mas all del lenguaje C, sta es una particularidad de los microprocesadores). Por este motivo se notar que se ha hecho uso (durante la codificacin), en clculos intermedios (por ejemplo en la implementacin de MD5), de variables de 64 bits que finalmente son convertidas a mdulo 232. A continuacin, los diagramas de flujo correspondientes a los distintos mdulos de la implementacin. 66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires
Pgina 20 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final

Diagramas de Flujo
Programa Principal Inicializacin Formulario Principal Comenzar Esquema de Firma Acerca De....

Seleccin de comando

Terminar Programa

Secuencia de Firmado Generacin de claves pblica y privada Publicacin de clave pblica, almacenamiento en disco de clave privada utilizando DES Aplicacin de MD5 al Mensaje a Firmar

Comienzo Esquema de Firma

Fin proceso de Firma

Agregado de Firma a Mensaje Original

Cifrado de clave del hash con RSA

Generacin de Claves para RSA Generacin de nmeros primos aleatorios (p y q) Clculo de n y (n); generacin de d Clculo de e utilizando el Algoritmo Extendido de Euclides

Comienzo Proceso de Generacin

66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Update de Formulario Paso #1

Pgina 21 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final

Almacenamiento en disco de la Clave Pblica Creacin de Objeto DES Seteo de clave Cifrado de clave pblica

Inicializacin Formulario Paso #2

Ingreso de Pass-Phrase

Almacenamiento en Disco de texto cifrado

Liberar Objeto DES Finalizar Paso #2

Aplicacin de la Funcin de Hash Llevar longitud de mensaje a mltiplo de 512 bits, segn especifiaciones de MD5 Aplicar los cuatro rounds del algoritmo a cada bloque de texto

Inicializacin Algoritmo MD5

Devolver resultado Hash

Inicializacin Formulario Paso #4

Recuperar de Disco el texto cifrado

Ingreso de Pass-Phrase

Creacin de Objeto DES Seteo de clave Descifrado de clave privada

Encriptar resultado del hash con RSA Adjuntar firma a Mensaje Original

Liberar Objeto DES Finalizar Paso #4 Comenzar Paso #5

Cifrado del resultado del Hash Adjuntar firma al Mensaje

66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Pgina 22 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final Proceso de Verificacin de Firma

Comienzo Proceso de Verificacin

Mensaje Firmado? S

Separar Mensaje de Firma

Descifrar Hash almacenado en Firma; Calcular Hash Mensaje

No Advertencia: Se ha detectado alteracin Son Iguales ?

No

S Informacin: Se ha verificado la integridad del Mensaje

66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Pgina 23 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final

Cdigo Fuente Implementado

Declaraciones principales e inicializacin


Option Explicit 'Declaraciones y funciones varias del programa de demostracin 'de Firma Digital Public RSAclavePublica As Long Public RSAclavePrivada As Long Public RSAmodulo As Long Public RSAresultado(1 To 32) As Long Public MD5Resultado As String Public DESClave As String Public cipherTextDES As String Public Mensaje As String Public TextoPorDefault As String Public HeaderFirma As String Public Sub Main() 'Secuencia de inicializacin del programa ChDir App.Path ' cambiamos de directorio, movindonos al directorio de la aplicacin. Randomize 'por la generacin de nmeros aleatorios {1234, 4to numero) HeaderFirma = "[||]" & Chr(13) & Chr(10) & "______________" & Chr(13) & Chr(10) & "FIRMA DIGITAL:" & Chr(13) & Chr(10) & "|[]|" TextoPorDefault = "Este es el texto que ser firmado digitalmente." & Chr(13) & Chr(10) frmFirma.Show End Sub Public Function GenerarClaveParaDES(passPhrase As String) As String 'Devuelve una cadena de 8 caracteres (64 bits) que son generados 'a partir de la passphrase pasada como parametro utilizando 'la funcin de hash md5. Dim resultadoMD5 As String Dim primeraParte As String, segundaParte As String Dim claveDES As String Dim i As Integer, resultXOR As String, valorByte As Byte 'DES requiere una password de 64 bits, a partir de los cuales 'crea su propia password de 56 bits. ' -> primero hasheo la passphrase, tomo la XOR de los primeros ' 64 bits con los segundos, y esa ser mi password para DES. resultadoMD5 = MD5HashString(passPhrase) 'devuelve 128 bits -> 32 caracteres primeraParte = HexaABinario(Left(resultadoMD5, 16)) segundaParte = HexaABinario(Right(resultadoMD5, 16)) For i = 1 To 64 resultXOR = resultXOR & Trim(Str(Val(Mid(primeraParte, i, 1)) Xor Val(Mid(segundaParte, i, 1)))) Next i 'con la cadena binaria de 64 bits, formo el equivalente ascii (8 caracteres) 'que utilizara el algoritmo DES For i = 0 To 7

66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Pgina 24 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final


valorByte = CByte(BinarioADecimal(Mid(resultXOR, i * 8 + 1, 8), 8)) claveDES = claveDES & Chr(valorByte) Next i GenerarClaveParaDES = claveDES End Function Public Sub AvisoCalculo(formulario As Form, calculando As Boolean) 'enciende o apaga el aviso de 'calculando...' With formulario If calculando Then .lblCalculando.Visible = True Else .lblCalculando.Visible = False End If .lblCalculando.Refresh End With End Sub

MD5
Option Explicit ' 'Implementacin de la funcin de Hash MD5 'Segn Bruce Schneier, Applied Cryptography, 2nd Ed., Sec. 24.5 'Ariel Pablo Topasso - 1998 ' 'Uses: biblioteca de funciones Matemticas Public Function MD5HashString(plaintext As String) As String 'Devuelve 128 bits (una cadena con la representacin hexadecimal correspondiente) 'con el valor del hash correspondiente a la cadena m. 'La cadena plaintext SERA MODIFICADA por esta funcion. Dim A_ As Currency, B_ As Currency, C_ As Currency, D_ As Currency Dim A As Currency, b As Currency, C As Currency, d As Currency 'utilizo el tipo currency (64 bits) y no el long (32) ya que este 'ltimo es signado en VisualBasic y esto genera inconvenientes al trabajar 'en mdulo 2^32, que es como esta pensado originariamente este algoritmo. Dim cantBloques As Long Dim i As Long, m(0 To 15) As Currency 'm representa un bloque de 512 bits Dim j As Integer Inicializar A_, B_, C_, D_ 'hago un padding del plaintext, de modo que su longitud siempre sera 'multiplo de 512 bits. padPlaintextString plaintext cantBloques = Len(plaintext) / 64 '64 bytes son 512 bits 'loop principal For i = 1 To cantBloques For j = 0 To 15 'cargo el bloque en m. m(j) = StringADecimal(Mid(plaintext, i * 64 - 63 + 4 * j, 4), 32) Next j

66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Pgina 25 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final


A = A_ b = B_ C = C_ d = D_ Round1 A, b, C, d, m Round2 A, b, C, d, m Round3 A, b, C, d, m Round4 A, b, C, d, m A_ = Mod32(A_ + A) B_ = Mod32(B_ + b) C_ = Mod32(C_ + C) D_ = Mod32(D_ + d) Next i 'fin loop principal 'au revoir MD5HashString = DecimalAHexa(A_, 32, True) & DecimalAHexa(B_, 32, True) & DecimalAHexa(C_, 32, True) & DecimalAHexa(D_, 32, True) End Function Private Sub Inicializar(A_ As Currency, B_ As Currency, C_ As Currency, D_ As Currency) 'Carga los valores iniciales (nmeros mgicos) 'Nota: no puedo cargar los nmero directamente en hexadecimal (&Hxxx) ya que ' vBasic toma el bit ms significativo como bit de signo. A_ = 19088743 B_ = 2309737967@ C_ = 4275878552@ D_ = 1985229328@ End Sub Private Function StringADecimal(cadena As String, largoPalabra As Integer) As Currency 'Devuelve un entero (modulo 2^largoPalabra) que representa a la cadena 'Pre: len(cadena)=largoPalabra/8 Dim tempDec As Currency Dim cantBytes As Integer, i As Integer cantBytes = largoPalabra / 8 For i = 1 To cantBytes tempDec = tempDec + Asc(Mid(cadena, i, 1)) * 2 ^ (cantBytes - i) Next i StringADecimal = tempDec End Function Private Static Function Mod32(numero As Currency) As Currency 'Devuelve el numero pasado como parametro en mdulo 2^32. 'Implemento esto porque la funcin intrnseca de Vbasic "mod" trabaja 'nicamente con nmeros <= 2^31. Do While numero >= 4294967296@ numero = numero - 4294967296@ Loop Do While numero < 0 numero = numero + 4294967296@ Loop Mod32 = numero End Function Private Sub padPlaintextString(plaintext As String)

66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Pgina 26 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final


'Nota: el tamao de una variable string esta limitado ' por aprox. +2MB, y la funcion len() devuelve un long (32 bits) con la cantidad de bytes. ' -> para variables string, la longitud (en bits) siempre sera mltiplo de 8. ' Basado en Stinson, Cryptography, theory and practice, p258 Dim longitud As Long, d As Long, i As Integer Dim tempStr As String, longBytes_tempstr As Integer Dim tempStrAscii As String longitud = Len(plaintext) * 8 'longitud en bits del mensaje d = 447 - (longitud Mod 512) 'd un ("mltiplo de 8" menos 1) tempStr = "1" For i = 1 To d tempStr = tempStr & "0" Next i tempStr = tempStr & DecimalABinario(longitud, 64, False) 'la longitud de tempstr es mltiplo de 8; tomo de a 8 bits y paso a ascii longBytes_tempstr = Len(tempStr) / 8 For i = 1 To longBytes_tempstr tempStrAscii = tempStrAscii + Chr(BinarioADecimal(Left(tempStr, 8), 8)) tempStr = Mid(tempStr, 9) Next i plaintext = plaintext & tempStrAscii End Sub Private Function f(x As Currency, y As Currency, z As Currency) As Currency x = x - 2 ^ 31: y = y - 2 ^ 31: z = z - 2 ^ 31 'Obs: el desplazamiento es necesario porque las funciones bitwise ' de vbasic trabajan con en 32 bits unicamente, y convierten los ' argumentos a long integer signados antes de ejecutarse. [Chequeado OK] f = (x And y) Or ((Not x) And z) x = x + 2 ^ 31: y = y + 2 ^ 31: z = z + 2 ^ 31 End Function Private Function g(x As Currency, y As Currency, z As Currency) As Currency x = x - 2 ^ 31: y = y - 2 ^ 31: z = z - 2 ^ 31 g = (x And z) Or (y And (Not z)) x = x + 2 ^ 31: y = y + 2 ^ 31: z = z + 2 ^ 31 End Function Private Function h(x As Currency, y As Currency, z As Currency) As Currency x = x - 2 ^ 31: y = y - 2 ^ 31: z = z - 2 ^ 31 h = x Xor y Xor z x = x + 2 ^ 31: y = y + 2 ^ 31: z = z + 2 ^ 31 End Function Private Function i(x As Currency, y As Currency, z As Currency) As Currency x = x - 2 ^ 31: y = y - 2 ^ 31: z = z - 2 ^ 31 i = y Xor (x Or (Not z)) x = x + 2 ^ 31: y = y + 2 ^ 31: z = z + 2 ^ 31 End Function

66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Pgina 27 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final

Private Sub FF(ByRef A As Currency, b As Currency, C As Currency, d As Currency, Mj As Currency, s As Byte, ti As Currency) A = Mod32(b + RotateLeft(Mod32(A + f(b, C, d) + Mj + ti), s)) End Sub Private Sub GG(ByRef A As Currency, b As Currency, C As Currency, d As Currency, Mj As Currency, s As Byte, ti As Currency) A = Mod32(b + RotateLeft(Mod32(A + g(b, C, d) + Mj + ti), s)) End Sub Private Sub HH(ByRef A As Currency, b As Currency, C As Currency, d As Currency, Mj As Currency, s As Byte, ti As Currency) A = Mod32(b + RotateLeft(Mod32(A + h(b, C, d) + Mj + ti), s)) End Sub Private Sub II(ByRef A As Currency, b As Currency, C As Currency, d As Currency, Mj As Currency, s As Byte, ti As Currency) A = Mod32(b + RotateLeft(Mod32(A + i(b, C, d) + Mj + ti), s)) End Sub Private Sub Round1(A As Currency, b As Currency, C As Currency, d As Currency, m() As Currency) 'M(i) es un array de elementos currency, 0<=i<=15 Call FF(A, b, C, d, m(0), 7, 3614090360#) ' * 1 * Call FF(d, A, b, C, m(1), 12, 3905402710#) ' * 2 * Call FF(C, d, A, b, m(2), 17, 606105819) '*3* Call FF(b, C, d, A, m(3), 22, 3250441966#) ' * 4 * Call FF(A, b, C, d, m(4), 7, 4118548399#) ' * 5 * Call FF(d, A, b, C, m(5), 12, 1200080426) ' * 6 * Call FF(C, d, A, b, m(6), 17, 2821735955#) ' * 7 * Call FF(b, C, d, A, m(7), 22, 4249261313#) ' * 8 * Call FF(A, b, C, d, m(8), 7, 1770035416) '*9* Call FF(d, A, b, C, m(9), 12, 2336552879#) ' * 10 * Call FF(C, d, A, b, m(10), 17, 4294925233#) ' * 11 * Call FF(b, C, d, A, m(11), 22, 2304563134#) ' * 12 * Call FF(A, b, C, d, m(12), 7, 1804603682) ' * 13 * Call FF(d, A, b, C, m(13), 12, 4254626195#) ' * 14 * Call FF(C, d, A, b, m(14), 17, 2792965006#) ' * 15 * Call FF(b, C, d, A, m(15), 22, 1236535329) ' * 16 * End Sub Private Sub Round2(A As Currency, b As Currency, C As Currency, d As Currency, m() As Currency) 'M(i) es un array, 0<=i<=15 Call GG(A, b, C, d, m(1), 5, 4129170786#) ' * 17 * Call GG(d, A, b, C, m(6), 9, 3225465664#) ' * 18 * Call GG(C, d, A, b, m(11), 14, 643717713) ' * 19 * Call GG(b, C, d, A, m(0), 20, 3921069994#) ' * 20 * Call GG(A, b, C, d, m(5), 5, 3593408605#) ' * 21 * Call GG(d, A, b, C, m(10), 9, 38016083) ' * 22 * Call GG(C, d, A, b, m(15), 14, 3634488961#) ' * 23 * Call GG(b, C, d, A, m(4), 20, 3889429448#) ' * 24 * Call GG(A, b, C, d, m(9), 5, 568446438) ' * 25 * Call GG(d, A, b, C, m(14), 9, 3275163606#) ' * 26 * Call GG(C, d, A, b, m(3), 14, 4107603335#) ' * 27 * Call GG(b, C, d, A, m(8), 20, 1163531501) ' * 28 * Call GG(A, b, C, d, m(13), 5, 2850285829#) ' * 29 * Call GG(d, A, b, C, m(2), 9, 4243563512#) ' * 30 * Call GG(C, d, A, b, m(7), 14, 1735328473) ' * 31 * Call GG(b, C, d, A, m(12), 20, 2368359562#) ' * 32 *

66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Pgina 28 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final


End Sub Private Sub Round3(A As Currency, b As Currency, C As Currency, d As Currency, m() As Currency) 'M(i) es un array, 0<=i<=15 Call HH(A, b, C, d, m(5), 4, 4294588738#) ' * 33 * Call HH(d, A, b, C, m(8), 11, 2272392833#) ' * 34 * Call HH(C, d, A, b, m(11), 16, 1839030562) ' * 35 * Call HH(b, C, d, A, m(14), 23, 4259657740#) ' * 36 * Call HH(A, b, C, d, m(1), 4, 2763975236#) ' * 37 * Call HH(d, A, b, C, m(4), 11, 1272893353) ' * 38 * Call HH(C, d, A, b, m(7), 16, 4139469664#) ' * 39 * Call HH(b, C, d, A, m(10), 23, 3200236656#) ' * 40 * Call HH(A, b, C, d, m(13), 4, 681279174) ' * 41 * Call HH(d, A, b, C, m(0), 11, 3936430074#) ' * 42 * Call HH(C, d, A, b, m(3), 16, 3572445317#) ' * 43 * Call HH(b, C, d, A, m(6), 23, 76029189) ' * 44 * Call HH(A, b, C, d, m(9), 4, 3654602809#) ' * 45 * Call HH(d, A, b, C, m(12), 11, 3873151461#) ' * 46 * Call HH(C, d, A, b, m(15), 16, 530742520) ' * 47 * Call HH(b, C, d, A, m(2), 23, 3299628645#) ' * 48 * End Sub Private Sub Round4(A As Currency, b As Currency, C As Currency, d As Currency, m() As Currency) 'M(i) es un array, 0<=i<=15 Call II(A, b, C, d, (0), 6, 4096336452#) Call II(d, A, b, C, (7), 10, 1126891415) Call II(C, d, A, b, (14), 15, 2878612391#) Call II(b, C, d, A, (5), 21, 4237533241#) Call II(A, b, C, d, (12), 6, 1700485571) Call II(d, A, b, C, (3), 10, 2399980690#) Call II(C, d, A, b, (10), 15, 4293915773#) Call II(b, C, d, A, (1), 21, 2240044497#) Call II(A, b, C, d, (8), 6, 1873313359) Call II(d, A, b, C, (15), 10, 4264355552#) Call II(C, d, A, b, (6), 15, 2734768916#) Call II(b, C, d, A, (13), 21, 1309151649) Call II(A, b, C, d, (4), 6, 4149444226#) Call II(d, A, b, C, (11), 10, 3174756917#) Call II(C, d, A, b, (2), 15, 718787259) Call II(b, C, d, A, (9), 21, 3951481745#) End Sub ' * 49 * ' * 50 * ' * 51 * ' * 52 * ' * 53 * ' * 54 * ' * 55 * ' * 56 * ' * 57 * ' * 58 * ' * 59 * ' * 60 * ' * 61 * ' * 62 * ' * 63 * ' * 64 *

Private Function RotateLeft(word As Currency, s As Byte) As Currency 'rota los primeros 32 bits la variable word, s bits a la izquierda 'en forma circular. 'Notar: la funcin Or de Vbasic acepta byte, integer o long, pero no Currency Dim tempBin As String tempBin = DecimalABinario(word, 32) tempBin = Right(tempBin, 32 - s) & Left(tempBin, s) RotateLeft = BinarioADecimal(tempBin, 32) End Function

66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Pgina 29 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final

RSA
Option Explicit ' 'Implementacin del algoritmo de clave pblica RSA '(este algoritmo est patentado en U.S.A.) 'Segn Bruce Schneier, Applied Cryptography, 2nd Ed. 'Ariel Pablo Topasso - 1998 ' Public Sub GenerarClavesRSA(publica As Long, privada As Long, modulo As Long, p As Long, q As Long) 'Genera las claves pblica, privada, y el mdulo necesarios 'para encriptar/desencriptar utilizando RSA 'Devuelve: la clave publica, la clave privada, el modulo ' y los numeros primos p y q a partir de los cuales se ' generaron las anteriores '(La generacin de los nmeros primos aleatorios es por "bsqueda intensiva" ' <> generacin probabilstica) ' Los nmeros generados tienen una "longitud" de 32 bits ' (nuestro objetivo es demostrar conceptos, no obtener ' implementaciones de uso prctico) Dim d As Long, fi As Long, e As Long Dim m As Long, x As Long Dim n As Long Dim salir As Boolean 'Randomize (necesario pero hecho en la inicializacion del programa) salir = False Do Do p = Rnd * 200 \ 1 'buscamos un nro entero primo Loop While EsPrimo(p) = False Do q = Rnd * 200 \ 1 'buscamos otro Loop While EsPrimo(q) = False n=p*q\1 fi = (p - 1) * (q - 1) \ 1 'funcin fi de Euler d = Rnd * n \ 1 If Not (d = 0 Or n = 0 Or d = 1) Then e = Euclides(fi, d) If Not (e = 0 Or e = 1) Then x = PotenciaModuloRSA(255, e, n) 'Verificamos: encriptamos 'el valor 255 con la clave 'pblica e, en mdulo n. 'notamos que el numero a encriptar deber ser en mdulo menor que n. If PotenciaModuloRSA(x, d, n) = 255 And n > 4095 Then 'Desencriptamos con la clave privada d, 'al obtener 255 -> el resultado es correcto. salir = True End If

66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Pgina 30 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final


End If End If Loop Until salir = True publica = e privada = d modulo = n 'Slo til durante el debugging 'If PotenciaModuloRSA(x, d, n) = 255 Then ' MsgBox "Clave Pblica: " & e & vbCrLf & "Clave Privada: " & d & vbCrLf & "Mdulo: " & n 'End If End Sub Private Function Euclides(ByVal A As Long, ByVal b As Long) As Long 'Algoritmo de Euclides Dim r As Long, p As Long, q As Long Dim r1 As Long, p1 As Long, q1 As Long Dim q2 As Long, p2 As Long, r2 As Long Dim n As Long, C As Long, s As Long, x As Long r1 = A: r = b p1 = 0: p = 1 q1 = 2: q = 0 n = -1 Do Until r = 0 r2 = r1: r1 = r p2 = p1: p1 = p q2 = q1: q1 = q n=n+1 r = r2 Mod r1 C = r2 \ r1 p = (C * p1) + p2 q = (C * q1) + q2 Loop s = (b * p1) - (A * q1) If s > 0 Then x = p1 Else x = (0 - p1) + A End If Euclides = x End Function Private Function EsPrimo(intNumero As Long) As Boolean Dim intCant As Integer If intNumero < 2 Or (intNumero Mod 2) = 0 Then EsPrimo = False Exit Function End If intCant = 2 EsPrimo = True Do 'busqueda exhaustiva

66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Pgina 31 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final


If intNumero Mod intCant = 0 Then EsPrimo = False 'detectamos un multiplo Exit Function End If intCant = intCant + 1 Loop While intCant <= Sqr(intNumero) End Function Public Function PotenciaModuloRSA(ByVal x As Long, ByVal p As Long, ByVal m As Long) As Long 'Algoritmo de square and multiply, potenciacin en mdulo m Dim y As Long y=1 Do While p > 0 Do While (p / 2) = (p \ 2) 'mientras p sea par x = (x * x) Mod m p=p/2 Loop y = (x * y) Mod m p=p-1 Loop PotenciaModuloRSA = y End Function

Funciones Accesorias
Public Function SumaBinaria(sumando1 As Long, sumando2 As Long) As Long 'Devuelve un entero long (32 bits) representando el resultado de la suma 'binaria (ignorando el posible bit de carry que resulte de las representaciones 'binarias de sumando1 y sumando2. -> Nunca se producir error de OverFlow 'Notar que en VBasic los enteros tipo Long son "signados"; Dim tempSum As Currency '@ == indica "currency data type" tempSum = CCur(sumando1) + CCur(sumando2) '4294967296 = 2^32 If tempSum < -2147483648@ Then tempSum = tempSum + 4294967296@ If tempSum > 2147483647 Then tempSum = tempSum - 4294967296@ 'otra posibilidad: tempSum=ccur(sumando1+2147483648)+ccur(sumando2+2147483648) mod 4294967296@ 'pero no funciona porque la funcion mod acepta como argumentos a numeros tipo long, y aqui podria haber numeros mas grandes que 2147483648. SumaBinaria = CLng(tempSum) End Function Public Function Ceil(numero As Double) As Long 'Devuelve el entero mayor o igual que el nmero pasado como parmetro 'Nota: la funcin de vbasic Fix() es equivalente a floor() de matlab If numero > Fix(numero) Then Ceil = Fix(numero) + 1 Else 'el numero es entero Ceil = Fix(numero) End If End Function Public Function DecimalABinario(ByVal numeroDecimal As Currency, largoPalabra As Long, Optional sumarOffsetLong As Boolean = False) As String

66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Pgina 32 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final


'Devuelve un string con la representacion binaria del nmero decimal (supuesto>=0) ' pasado como parmetro, truncada segn el valor de largoPalabra, con el bit ' ms significativo a la izquierda; ' la longitud de la representacin binaria ser: largoPalabra bits. ' Obs: en VBasic, el tipo long (32 bits) es signado -> se deber sumar 2^31 antes de hacer la conversin. ' sumarOffsetLong: si es True, suma 2^31 al numeroDecimal antes de hacer la conversin =>convierte un nmero tipo long (signado) a entero no signado ' Notar que el tipo currency es similar a integer pero de 64 bits en lugar de 16. ' y soporta 15 digitos en su parte entera en lugar de los 10 del tipo long. Dim numeroBin As String Dim i As Long, cantBitsEnNumeroDec As Double If sumarOffsetLong = True Then numeroDecimal = numeroDecimal + 2147483648@ 'sumo 2^31 If numeroDecimal > 0 Then cantBitsEnNumeroDec = Ceil(Log(numeroDecimal) / Log(2)) Else cantBitsEnNumeroDec = largoPalabra End If For i = Max(cantBitsEnNumeroDec, CDbl(largoPalabra)) - 1 To 0 Step -1 If Int(numeroDecimal / (2 ^ i)) = 1 Then numeroBin = numeroBin & "1" numeroDecimal = numeroDecimal - (2 ^ i) Else numeroBin = numeroBin & "0" End If Next i If cantBitsEnNumeroDec > largoPalabra Then 'trunco numeroBin = Right(numeroBin, largoPalabra) End If DecimalABinario = numeroBin End Function Public Function BinarioADecimal(ByVal numeroBinario As String, largoPalabra As Long) As Currency 'Devuelve un entero >=0 con el valor decimal del numero representado en binario ' en el string pasado como parmetro (truncado segn el valor de largoPalabra, con el bit ' ms significativo a la izquierda); ' la longitud de la representacin binaria ser: largoPalabra bits. ' Notar que el tipo currency es similar a integer pero de 64 bits en lugar de 16. ' y soporta 15 digitos en su parte entera en lugar de los 10 del tipo long. Dim numeroDec As Currency Dim i As Long, cantBitsEnNumeroBin As Long cantBitsEnNumeroBin = Len(numeroBinario) 'agrega ceros a la izquierda si hacen falta For i = 1 To largoPalabra - cantBitsEnNumeroBin numeroBinario = "0" & numeroBinario Next i numeroBinario = Right(numeroBinario, largoPalabra) 'trunco For i = largoPalabra - 1 To 0 Step -1 numeroDec = numeroDec + Val(Mid(numeroBinario, largoPalabra - i, 1)) * 2 ^ i Next i BinarioADecimal = numeroDec End Function

66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Pgina 33 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final


Public Function DecimalAHexa(numero As Currency, largoPalabra As Long, Optional sumarOffsetLong As Boolean = False) As String 'Devuelve la representacin hexadecimal del nmero pasado como parmetro, 'utilizando un string. (Obs: tipo long -> 32 bits) 'largoPalabra: cantidad de bits a utilizar en la representacion hexa, puede ' o no ser mltiplo de 4, la representacion en hexa sera truncada segn el valor de este parmetro 'sumarOffsetLong: le suma a nmero el valor 2^31 para evitar el problema de que los enteros tipo long en Vbasic son signados. 'Uses: DecimalABinario() Dim numeroBin As String, numeroHex As String Dim tempDec As Byte, tempNibble As String Dim i As Long, j As Long 'paso a binario (bit mas significativo a la izquierda) numeroBin = DecimalABinario(numero, largoPalabra, sumarOffsetLong) For i = 1 To Fix(largoPalabra / 4) tempNibble = Right(numeroBin, 4) Do While Len(tempNibble) < 4 'nibble == 1 solo digito hexa (4 bits) tempNibble = "0" & tempNibble Loop tempDec = 0 For j = 1 To 4 tempDec = tempDec + Mid(tempNibble, j, 1) * 2 ^ (4 - j) Next j numeroHex = Hex(tempDec) & numeroHex numeroBin = Mid(numeroBin, 1, Len(numeroBin) - 4) Next i 'pudieron haber quedado hasta 3 bits de numeroBin sin procesar (los mas significativos) '-> los proceso: If Len(numeroBin) > 0 Then Do While Len(numeroBin) < 4 'nibble == 1 solo digito hexa (4 bits) numeroBin = "0" & numeroBin Loop tempDec = 0 For j = 1 To 4 tempDec = tempDec + Mid(numeroBin, j, 1) * 2 ^ (4 - j) Next j numeroHex = Hex(tempDec) & numeroHex End If DecimalAHexa = numeroHex End Function Public Function HexaABinario(numeroHexa As String, Optional largoPalabra As Integer = -1) As String 'Devuelve la representacin binaria del nmero en hexa (string) pasado como parmetro, 'utilizando un string. 'largoPalabra: cantidad de bits a utilizar en la representacion binaria, puede ' o no ser mltiplo de 4, la representacion en binario sera truncada ' segn el valor de este parmetro (se devuelven los bits menos significativos) ' (menos significativos == los de la derecha) ' por default, devuelve 4*cantidad_de_digitos_binarios bits. Const BinTbl = "0000000100100011010001010110011110001001101010111100110111101111" Dim i As Integer, tempStr As String Dim largoOriginal As Integer For i = 1 To Len(numeroHexa) tempStr = tempStr + Mid(BinTbl, Val("&h" & Mid(numeroHexa, i, 1)) * 4 + 1, 4) Next If largoPalabra > -1 Then HexaABinario = Right(tempStr, largoPalabra)

66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Pgina 34 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final


largoOriginal = Len(HexaABinario) For i = largoOriginal To largoPalabra - 1 'si faltan 0s los agrega HexaABinario = "0" & HexaABinario Next i Else 'por default, devuelve 4*cantidad_de_digitos_binarios bits. HexaABinario = tempStr End If End Function Public Function Sign(ByRef A As Double, ByRef b As Double) As Double 'Devuelve el parmetro a, pero con su signo cambiado, segn lo indique b 'Utilizada por las funciones del libro 'Numerical Recipes in C. 'Obs: no confundir con la funcin intrnseca de VB sgn(), que devuelve el signo If b >= 0# Then Sign = Abs(A) Else Sign = -Abs(A) End If End Function Private Sub cmdCertificar_Click() 'Extrae la la firma digital del mensaje, luego la desencripta 'utilizando la clave publica de RSA, recrea el mensaje original '(sin la firma), calcula el hashOriginal, y por ltimo lo compara 'con el hash obtenido de la firma digital. Dim errorEnFirma As Boolean Dim mensajeOriginalConHeader As String Dim firma As String Dim posFinMensaje As Long, posComFirma As Long, tmpCaracter As Long Dim firmaRSA(1 To 32) As Long Dim strNumero As String, i As Long, posMarca As Long Dim hashMensajeOriginal As String, hashRegistradoEnFirma As String 'marca de fin de mensaje original: [||] 'marca de comienzo de secuencia de claves: |[]| 'separo firma y mensaje original errorEnFirma = False posFinMensaje = InStr(1, txtTextoAFirmar, "[||]") posComFirma = InStr(1, txtTextoAFirmar, "|[]|") + 3 If posFinMensaje = 0 Or posComFirma = 0 Then errorEnFirma = True If Not errorEnFirma Then firma = Right(txtTextoAFirmar, Len(txtTextoAFirmar) - posComFirma) mensajeOriginalConHeader = Left(txtTextoAFirmar, posComFirma) posMarca = 1: i = 1 Do While Not errorEnFirma And i <= 32 posMarca = InStr(1, firma, "|") If posMarca = 0 Then errorEnFirma = True: Exit Do strNumero = Left(firma, posMarca) firmaRSA(i) = Val(strNumero) firma = Mid(firma, posMarca + 1) i=i+1 Loop If i <= 32 Then errorEnFirma = True If Not errorEnFirma Then 'procedemos a calcular el hash del mensaje original 'desencriptar la firma con la clave publica de rsa

66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Pgina 35 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final


'y comparar hashMensajeOriginal = MD5HashString(mensajeOriginalConHeader) 'desencripto For i = 1 To 32 If firmaRSA(i) < 0 Or firmaRSA(i) > RSAmodulo Then errorEnFirma = True: Exit For tmpCaracter = PotenciaModuloRSA(firmaRSA(i), RSAclavePublica, RSAmodulo) If tmpCaracter < 0 Or tmpCaracter > 255 Then errorEnFirma = True: Exit For hashRegistradoEnFirma = hashRegistradoEnFirma & Chr(tmpCaracter) Next i 'comparo If Trim(hashMensajeOriginal) <> Trim(hashRegistradoEnFirma) Then errorEnFirma = True 'detectamos un cambio End If End If End If If errorEnFirma Then mAdvertencia ("Se ha detectado que el mensaje y/o la firma han sido alterados!") Else mMensaje ("El mensaje original no ha sido alterado") End If stbStatus.Panels.Item(1).text = "Es posible ahora comprobar el funcionamiento de la certificacin de mensajes modificando al original; reComenzar; o Salir" End Sub Private Sub cmdEncriptarConRSA_Click() frmRSAPaso4.Show vbModal cmdEncriptarConRSA.Enabled = False cmdAdjuntarLaFirmaAlMensaje.Enabled = True cmdAdjuntarLaFirmaAlMensaje.SetFocus stbStatus.Panels.Item(1).text = "Status: El resultado de la funcin de Hash ha sido encriptado con RSA" End Sub

66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Pgina 36 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final

Implementaciones de la Firma Digital por medio de Biometric Tokens

"Biometric Token": Identidad Biomtrica

Un "Biometric Token" es un ente de datos encriptados totalmente transportable que contiene las caractersticas nicas de una firma (conjunto de caractersticas fsicas, de comportamiento, que hacen a una persona nica) junto con informacin que asegura quien firm. La firma es guardada como un conjunto de mediciones, cada una representando una caracterstica nica.

Un biometric token posee las siguientes funciones y datos:

Afirma la identidad:

El nombre del signatario, u otra identificacin nica como nmero de cuenta, nmero de documento, etc. Timestamp:

La fecha y hora en que la firma fue realizada Checksum del Documento:

Une el acto individual de la firma a un nico documento para prevenir la reutilizacin de la firma. Una de las formas de implementarlo es a travs del algoritmo MD5. Adems, el identificador biomtrico debe acercarse lo mximo posible a los siguientes atributos: Variabilidad mxima de la cualidad biomtrica elegida en la poblacin mundial, ya que esto determina la unicidad del identificado Inmutabilidad frente al paso del tiempo e intervenciones Eficiencia computacional para la codificacin y reconocimiento del patrn de identificacin

66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Pgina 37 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final

Una de las ventajas ms importantes es que al PIN (personal identification number) es imposible olvidarlo, ya que el mismo forma parte de la persona a la cual identifica.

Actualmente los sistemas de identificacin pueden ser clasificados como: Sistemas de Biomediciones Fsico/Anatmicas:

Escaneo de Retina e Iris Reconocimiento Facial: a)Termogrfico b)Morfolgico Palma/mano Imagen de huellas digitales

Sistemas de biomediciones Fsico/Conducta:

Reconocimiento de voz Identificacin de firma

Sistemas de biomediciones Fsico/Genticos:

ADN

Luego de esta clasificacin se define a cada uno de los sistemas, y se los ilustra por medio del instrumental que se utiliza para su captura, por el proceso, o por el resultado de los mismos.

66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Pgina 38 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final

Sistemas de Biomediciones Fsico/Anatmicas:

Escaneo de Iris:
La tecnologa de reconocimiento del iris identifica a los individuos por medio del anlisis computacional de los patrones encontrados en el iris del ojo humano. Esta tecnologa es totalmente diferente a la de escaneo de retina.

El iris de cada ojo es absolutamente nico. En toda la poblacin humana, no hay dos iris que se parezcan en sus caracteres matemticos, an en gemelos (monocigotos), siendo as que, basados en la cantidad de variaciones independientes de cdigos de iris (IrisCodeTM), la probabilidad de que dos iris produzcan exactamente el mismo IrisCode es aproximadamente 1 en 1078 (la poblacin de la Tierra es de alrededor de 1010).

Fig. 7 - Partes c onstitutivas del Ojo

El iris es el anillo de tejido coloreado que rodea a la pupila del ojo. Es un rgano interno protegido dentro del ojo, detrs de la crnea y el humor acuoso, visible externamente desde una distancia de hasta un metro, ya que estos medios pticos son transparentes. El iris est compuesto de tejido elstico conectivo, cuya morfognesis prenatal se completa durante el 8vo. mes de embarazo. Consiste de ligamentos con forma de peine adheridos en una intrincada red que revela estriaciones, procesos ciliares, criptas, anillos, surcos, coronas, manchas, vascularizaciones y otras caractersticas. Durante el primer ao de vida el manto de clulas cromatforas (informacin del color) generalmente cambia el color del iris, pero la documentacin clnica indica que los patrones trabeculares permanecen estables durante toda la vida.

Siendo un rgano interno del ojo, el iris es inmune a las variaciones del medio ambiente, exceptuando la respuesta de la pupila a la luz. Las deformaciones elsticas que ocurren con la dilatacin de la pupila son revertidas matemticamente por algoritmos que localizan los contornos externos e internos del iris. La movilidad de la pupila, an en ausencia de cambio de luz (llamada "hippus"), y las deformaciones elsticas asociadas que crea en la textura del iris, proveen un test contra las fotografas, ojos de vidrio, u otra simulacin de un iris viviente. Otro test en contra de la falsificacin de identidad, involucra fuentes de luz infrarroja que causan cambios en las reflexiones especulares de la cornea, detectando as los lentes de contacto que puedan tener impreso en los mismos impresiones de los patrones del iris.

Fig. 8 - Patr n de Ir is tomado a 50 c m

66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Pgina 39 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final Que hay sobre la "Iridologia"? Es afectado el iris por los cambios en los estados de nimo, salud, personalidad? Hay una creencia popular acerca de que el iris refleja el estado de salud, humor, personalidad de una persona. La prctica de interpretar estas caractersticas del iris es denominada Iridologa, pero esta prctica no es aceptada por los mdicos ni la comunidad cientfica. Qu sucede con los cambios de color del iris producidos por medicaciones o lentes de contacto? No influye, ya que la tcnica de escaneo es insensible al color.

La estructura y patrones del iris son capturados en imagen y luego codificados por el proceso IrisScan. Por la textura, naturaleza fisiolgica y la generacin aleatoria del iris, es que la duplicacin artificial es virtualmente imposible.

Anlisis de los patrones de iris

Las dos dimensiones de modulacin que componen los patrones del iris pueden ser extradas por demodulaciones matemticas utilizando onditas (wavelets) de Gabor de 2D de valores complejos. Primero es necesario localizar con precisin los contornos internos y externos del iris, y detectar y destruir los parpadeos si es que molestan. Estas operaciones son ejecutadas por operadores integrodiferenciales. Luego un sistema de coordenadas adimensional es definido, el cual mapea el tejido de una manera que es invariante a los cambios de las contracciones de la pupila, al factor de zoom de la Fig. 9 - Ir is y su c odific acin cmara y a la distancia al ojo. El sistema de coordenadas automticamente compensa las variaciones del tejido del iris producido por las dilataciones de la pupila. Se ve en la Fig. 9 arriba a la izquierda un IrisCode de 256 bytes de informacin.

Perfil Tecnolgico del Reconocimiento del Iris Probabilidad que dos iris produzcan el mismo cdigo: 1 en 1078 Variables independientes (grados de libertad): 266 Tamao de la codificacin del iris (sin comprimir): 512 bytes Densidad de informacin de un cdigo de iris: 3.4 bits por mm2 de iris Exactitud: Cross-over error rate: 1 en 1,200,000 (Cross-over: error medio medido con un criterio
de decisin que produce iguales medias de falsas aceptaciones que falsos rechazos)

Velocidad promedio de reconocimiento (base de datos con 100,000 cdigos de iris): 2 segundos Verificacin: 3 segundos

Concluyendo, se puede extraer como puntos ms sobresalientes de esta tecnologa de reconocimiento, a los siguientes, 66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Pgina 40 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final

La textura del iris es una caracterstica fenotpica (no gentica), por lo cual, an clonando a personas, sera imposible obtener una rplica exacta. Se comprob estadsticamente que los patrones del iris que se utilizan para identificacin, no estn correlacionados y son estadsticamente independientes, con lo cual se obtienen 266 grados de libertad, dando como resultado un nmero astronmico de codificaciones posibles (1078). El iris es claramente visible a la distancia, y el sistema es no intrusivo, a diferencia del escaneo de retina. Su aislacin y proteccin del medio ambiente, como un rgano interno del ojo, y su inalterabilidad a lo largo de la vida lo posicionan como el "biometric token" por excelencia. La respuesta fisiolgica del iris a la luz y a las oscilaciones naturales de la pupila, lo dotan de cualidades importantsimas en contra de las substituciones por fotografas o por otra simulacin con tejido viviente.

66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Pgina 41 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final

Reconocimiento facial por termografa

La termografa facial, o tambin denominada reconocimiento facial en 3-D, identifica a las personas por los patrones nicos de emisin de calor los cuales crean una "firma facial". Este tipo de firma se basa en que el sistema vascular que yace por debajo del rostro humano, produce una firma facial nica cuando el calor atraviesa los tejidos faciales y es emitido a travs de la piel. La cmara infrarroja captura estos patrones a los que se hace referencia como "termogramas". El termograma es ledo por la computadora, digitalizado, encriptado y archivado. Cuando la computadora lee un termograma, elimina los patrones vasculares pertenecientes a los odos y nariz, ya que son muy sensibles a los cambios de temperatura

Caracter sticas de la tecnologa

Pasiva: Condice con el criterio de un programa de verificacin de identidad no intrusivo. Esto significa que la identidad puede ser verificada sin contacto, sin una vista total de la cmara y con personas no-cooperantes. Independiente de la luz: Al encontrarse el espectro infrarrojo por debajo de la luz visible, la cmara infrarroja puede capturar independientemente de las condiciones de luz ambiental. Invulnerable a la simulacin: Aun en el caso de cirugas plsticas, estas no pueden redireccionar el flujo de sangre a travs del sistema vascular. Exactitud, velocidad y disponibilidad mayores que otros sistemas de identificacin como: digitalizacin de huellas dactilares, retinagramas, reconocimiento de voz. Mnimo espacio de almacenamiento: solo requiere de 2 a 4 KBytes para guardar un termograma facial digitalizado.

66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Pgina 42 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final

Reconocimiento facial por morfografa


Este proceso se basa en un mtodo de reconocimiento facial llamado "eigenfaces". Fundamentalmente cada imagen que formar parte de la base de datos, es mapeada en una serie de nmeros a los que se refieren como "coeficientes". Estos coeficientes reducen las caractersticas de la cara de un individuo a 128 nmeros enteros, los que conforman una matriz, la cual posteriormente ser utilizada para futuras validaciones. Tomando la distancia entre el "vector imagen capturado" y el "vector imagen almacenado", dicha distancia es calculada en un sistema de coordenadas llamado "espacio facial". Si la distancia calculada es mayor que un valor predeterminado, las dos imgenes son declaradas como no coincidentes, en el caso contrario hay coincidencia.

Proceso de reconocimiento

25 12 ... ... 58

8 ... ... ... 2

... ... ... ... ...

... ... .... ... ...

17 2 ... ... 41

Proceso de identificacin

66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Pgina 43 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final

Palma/mano
Un sistema de lectura de mano escanea la mano y guarda la imagen en la PC. La imagen es utilizada para identificar y verificar a una persona. La tecnologa de este sistema se basa en ubicar la mano en un escner de 3D que examina y mapea las dimensiones de la mano incluyendo la longitud, ancho, espesor, la superficie, etc. Ms de 90 mediciones para cada mano son guardadas como un template para ser utilizada en el futuro para autentificar e identificar a dicha persona.

Imagen de huellas digitales


Este sistema coincide casi en su totalidad con el de palma/mano, pero en este caso el instrumental necesario es de menor dimensin y menor costo.

Proceso de reconocimiento

Se genera un patrn nico con las mediciones realizadas

66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Pgina 44 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final

Sistemas de Biomediciones Fsicas/Conducta

Reconocimiento de voz
El sistema de verificacin del patrn vocal graba y digitaliza la voz del usuario guardndola como un patrn en la computadora. Luego la voz del usuario es comparada con el patrn en futuras visitas. Otra tecnologa desarrollada para el mismo fin denominada "TESPAR", convierte la voz en una codificacin digital la cual produce una matriz de nmeros que es nica para cada persona.

El reconocimiento de la voz no depende nicamente del sonido de la voz, sino tambin de otros parmetros: de que manera la boca y el paladar son utilizados para crear el sonido, etc..

Grabado de Voz y Preprocesamiento

Extraccin de Caractersticas

Registro

Generacin de Patrones

Confrontacin de patrones

Update
Base de Datos de Voces Decisin Otra Informacin

Resultado del Reconocimiento


Fig. 10 - Sistema de r ec onocimiento por altavoz

Cualidades de la Verificacin Vocal Natural: Es un sistema no intrusivo Conveniente: Posee la capacidad de realizar log-in remotos a travs de la Red Telefnica Fcil de programar

66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Pgina 45 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final Bajo costo: Los elementos utilizados son comunes (telfonos, micrfonos) Speech Server

Speaker Verification Unit

Red Telefnica

Fig. 11 - Sistema de Ver ific acin por altavoz a tr avs de la r ed

Estos sistemas de voz son relativamente seguros, pero para aumentar an ms su confiabilidad e invulnerabilidad es necesario que estos sistemas tengan la capacidad de detectar presiones de aire para asegurar que grabaciones realizadas previamente no sean utilizadas para vulnerar al sistema.

Identificacin de firma
El sistema PenOp (el ms comercializado en el mercado) se basa en el anlisis de mediciones biomtricas del comportamiento de la firma, generalmente 42, que incluyen entre las ms importantes: direccin de golpe, cantidad de golpes, orden, velocidad y aceleracin mxima y mnima, etc.

66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Pgina 46 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final

Visin Legal en el Mundo

Anlisis etimolgico de la palabra "firmar"


Firmar: del latn firmare: afirmar, asegurar. Poner nombre y apellido en un escrito. Asegurar: de a y seguro. Seguro: del latn securus: seguro, sereno. Protegido, inmune.

Analizando la etimologa de la palabra "firmar" se puede observar cmo el trmino por s mismo, a travs de su significado, brinda una definicin clara y concisa a lo que hace referencia: "Afirmar, asegurar. Ponerle nombre y apellido a un escrito. Protegerlo, inmunizarlo" Afirmar: Decir fehacientemente que una persona es tal. Ponerle nombre y apellido a un escrito: Identificar un mensaje en forma unvoca. El mensaje pertenece a la persona X con sus caractersticas que la definen como nica. Asegurar: Protegerlo, Inmunizarlo de ataques externos que traten de alterar de cualquier forma el contenido del mensaje y/o las caractersticas que definen a una persona como nica, para identificarse como otra distinta a la original. Para terminar de conceptualizar la de idea de Firma Digital al trmino "firmar" hay que adosarle otra palabra a la que se aplica la firma: DOCUMENTO.

Segn la doctrina, un documento es todo objeto o cosa, producto de la actividad humana, preexistente al proceso (legal), cuya funcin es representar un hecho. Los 3 elementos principales del documento resultan entonces en que es: Material Representativo Anterior al potencial litigio

Sintetizando la definicin se puede decir que: " un documento es un hecho material y representativo producto de la actividad humana"

66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Pgina 47 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final

Definicin de trminos concernientes al vocabulario de Firma Digital estrictamente desde el punto de vista legislativo
A continuacin se transcriben los Anexos I y II de la Resolucin Nro.427/98 los cuales ilustran a los lectores del mismo, sobre el glosario aceptado como vlido en la legislacin Argentina y sobre el cual se basaran las futuras leyes. Al finalizar la definicin de los trminos, se cuenta con el conocimiento necesario sobre los mismos para poder interpretar la resolucin, el decreto presidencial y los anexos.

Anexo I
DOCUMENTO DIGITAL: Representacin digital de actos, hechos o datos jurdicamente relevantes. DOCUMENTO DIGITAL FIRMADO: Documento Digital al cual se le ha aplicado una Firma Digital. EMISIN DE UN CERTIFICADO: La creacin de un certificado por parte de una autoridad certificante licenciada. ENTEORGANISMO AUDITANTE: rgano administrativo encargado de auditar la actividad del Enteorganismo licenciante y de las autoridades certificantes licenciadas. ENTEORGANISMO LICENCIANTE: rgano administrativo encargado de otorgar las licencias a las autoridades certificantes y de supervisar la actividad de las autoridades certificantes licenciadas. FIRMA DIGITAL: Resultado de una transformacin de un Documento Digital empleando un criptosistema asimtrico y un digesto seguro, de forma tal que una persona que posea el Documento Digital inicial y la Clave Pblica del firmante pueda determinar con certeza: 1. Si la transformacin se llev a cabo usando la Clave Privada que corresponde a la Clave Publica del firmante, lo que impide su repudio. 2. Si el Documento Digital ha sido modificado desde que se efectu la transformacin, lo que garantiza su integridad. La conjuncin de los dos requisitos anteriores garantiza su NO REPUDIO y su INTEGRIDAD. FUNCIN DE DIGESTO SEGURO: Es una funcin matemtica que transforma un documento digital en una secuencia de bits de longitud fija, llamada DIGESTO SEGURO, de forma tal que: 1. Se obtiene la misma secuencia de bits de longitud fija, el mismo resultado, cada vez que se calcula esta funcin respecto del mismo documento digital; 2. Es computacionalmente no factible inferir o reconstituir un documento digital a partir de su digesto seguro; 3. Es computacionalmente no factible encontrar dos documentos digitales diferentes que produzcan el mismo digesto seguro. INTEGRIDAD: Condicin de no-alteracin de un Documento Digital. LISTA DE CERTIFICADOS REVOCADOS: Es la lista publicada por la autoridad certificante licenciada, de los certificados de Clave Pblica por ella emitidos cuya vigencia ha cesado antes de su fecha de vencimiento, por acto revocatorio.

66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Pgina 48 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final NO REPUDIO: Cualidad de la Firma Digital, por la cual su autor no puede desconocer un Documento Digital que l ha firmado digitalmente. PAR DE CLAVES: Clave Privada y su correspondiente Clave Pblica en un Criptosistema asimtrico, tal que la Clave Publica puede verificar una Firma Digital creada por la Clave Privada. PERODO DE VIGENCIA (de un certificado): Perodo durante el cual el suscriptor puede firmar Documentos Digitales utilizando la Clave Privada correspondiente a la Clave Pblica contenida en el Certificado, de modo tal que la Firma Digital no sea repudiable. El Perodo de Vigencia de un Certificado comienza en la fecha y hora en que fue emitido por la Autoridad Certificante Licenciada, o en una fecha y hora posterior si as lo especifica el Certificado, y termina en la fecha y hora de su vencimiento o revocacin. PUBLICAR: Dar a conocer, notificar o comunicar por cualquier medio. REVOCACIN DE UN CERTIFICADO: Accin de dejar sin efecto en forma permanente un Certificado a partir de una fecha cierta, incluyndolo en la Lista de Certificados Revocados dndolo a publicidad. SELLADO DIGITAL DE FECHA Y HORA: Accin mediante la cual la Autoridad Certificante Licenciada adiciona la fecha, hora, minutos y segundos (como mnimo) de su intervencin, a un Documento Digital de la informacin digital o a su DIGESTO SEGURO. La informacin resultante del proceso antes descripto es firmada digitalmente por la AUTORIDAD CERTIFICANTE LICENCIADA. SISTEMA CONFIABLE: Equipos de computacin, software y procedimientos relacionados que: 1. Sean razonablemente confiables para resguardar contra la posibilidad de intrusin o de uso indebido; 2. Brinden un grado razonable de disponibilidad, confiabilidad, confidencialidad y correcto funcionamiento; 3. Sean razonablemente aptos para el desempeo de sus funciones especficas; 4. Cumplan con los requisitos de seguridad generalmente aceptados. SUSCRIPTOR: Persona: 1. A cuyo nombre se emite un Certificado, y 2. Que es titular de la Clave Privada correspondiente a la Clave Pblica includa en dicho Certificado. T CNICAMENTE CONFIABLE: Dcese de los SISTEMAS CONFIABLES que cumplen con los estndares tecnolgicos que al efecto dicte la Secretara de la Funcin Pblica de la Jefatura de Gabinete de Ministros. Respecto de las longitudes de claves a utilizar, se requerir como mnimo una cantidad de bits igual o superior al doble de la longitud de las claves que se puedan quebrar al momento de (generar el Par de Claves, o crear la Firma Digital, o Verificar la Firma Digital). Respecto de las longitudes de digestos de Documento Digital a utilizar, se requerir como mnimo una cantidad de bits igual o superior al doble de la longitud de digestos de Documento Digital que se puedan quebrar al momento de (generar el Par de Claves, o crear la Firma Digital, o VERIFICAR la Firma Digital). T ERCERO: Todo aquel que ostenta un derecho subjetivo o inters legtimo . VERIFICACIN DE UNA FIRMA DIGITAL: Con relacin a un Documento Digital, a una Firma Digital, el correspondiente a un Certificado de Clave Pblica y a una Lista de Certificados Revocados, es la determinacin fehaciente de que: 1. El Documento Digital fue firmado digitalmente con la Firma Digital creada en base a la Clave Privada correspondiente a la Clave Pblica includa en el Certificado; 2. El Documento Digital no fue alterado desde que fue firmado digitalmente. 66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires Pgina 49 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final Para aquel documento cuya naturaleza pudiera exigir la necesidad de certificacin de fecha cierta, o bien sta fuere conveniente dado sus efectos, deber determinarse adicionalmente que el mismo fue firmado digitalmente durante el Perodo de Vigencia del correspondiente Certificado.

Anexo II
AUTORIDAD CERTIFICANTE LICENCIADA: rgano administrativo que emite Certificados de Clave Pblica. CERTIFICADO O CERTIFICADO DE CLAVE PBLICA: Documento Digital emitido y firmado digitalmente por una Autoridad Certificante Licenciada, que asocia una Clave Pblica con su Suscriptor durante el dentro del Perodo de Vigencia del Certificado, y que asimismo hace plena prueba dentro de la Administracin Sector Pblico Nacional, de la veracidad de su contenido. CLAVE PRIVADA: En un Criptosistema Asimtrico, es aquella que se utiliza para crear una Firma Digital. CLAVE PBLICA: En un Criptosistema Asimtrico, es aquella que se utiliza para verificar una Firma Digital. COMPUTACIONALMENTE NO F ACTIBLE: Dcese de aquellos clculos matemticos asistidos por computadora que para ser llevados a cabo requieren de tiempo y recursos informticos que superan ampliamente a los disponibles en la actualidad. CORRESPONDER: Con referencia a un cierto Par de Claves, significa pertenecer a dicho par. CRIPTOSISTEMA ASIMTRICO: Algoritmo que utiliza un Par de Claves, una Clave Privada para firmar digitalmente y su correspondiente Clave Pblica para verificar esa Firma Digital, cuya Clave Privada crea una Firma Digital, y cuya correspondiente Clave Pblica se utiliza para Verificar esa Firma Digital. A efectos de este Decreto, se entiende que el Criptosistema Asimtrico deber ser Tcnicamente Confiable. DIGESTO SEGURO (Hash Result): La secuencia de bits de longitud fija ser el resultado producido por una Funcin de Digesto Seguro luego de procesar un Documento Digital.

66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Pgina 50 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final

Planteo de la situacin legislativa mundial actual referente a la Firma Digital


Hoy en da uno de los aspectos decisivos para afianzar el comercio electrnico en Internet, medio de comunicacin en pleno crecimiento y que probablemente sea la manera de realizar cualquier tipo de transaccin electrnica en el futuro, est constituido por el entorno jurdico, es decir, las leyes que sirvan de soporte para las transacciones, e introduzcan el concepto de seguridad jurdica en el mercado digital. Existe una opinin generalizada de que, si ya es complicado, en la vida presente, demostrar la existencia de una deuda que no se ha formalizado en un ttulo ejecutivo, la dificultad probatoria ser mayor en una plataforma contractual en la que el consentimiento se transmite en forma de bits. Es evidente que los que basan sus compromisos comerciales en el clebre apretn de manos, tendrn que recurrir a la realidad virtual para poder sellar as sus acuerdos a travs de Internet. Pero los que tienen por norma documentar sus transacciones con contratos escritos podrn comprobar en poco tiempo, que la firma digital aporta una eficacia probatoria igual, o incluso superior a la que aporta la firma original en papel. La firma digital es el instrumento que permitir, entre otras cosas, determinar de forma fiable si las partes que intervienen en una transaccin son realmente las que dicen ser, y si el contenido del contrato ha sido alterado o no posteriormente, como se ha mencionado anteriormente.

La primera ley que ha regulado los aspectos jurdicos de la firma digital como instrumento probatorio se aprob el ao pasado en Utah. Posteriormente surgieron proyectos legislativos en Georgia, California y Washington. En Europa, el primer pas que ha aprobado una Ley sobre la materia ha sido Alemania. Es evidente que la eficacia de estas leyes radica en su uniformidad, ya que si su contenido difiere en cada estado, ser difcil su aplicacin a un entorno global como Internet. Por ello, el esfuerzo a realizar a partir de ahora deber centrarse en la concepcin de un modelo supraestatal, que pueda ser implantado de manera uniforme en las leyes nacionales e internacionales. Tal tarea puede encomendarse a organismos internacionales como UNCITRAL1, que ya dispone de experiencia en iniciativas similares en esta materia.

La Comisin Europea (CE) emiti una comunicacin con fecha 8 de octubre de 1997, la cual persigue el fin de sensibilizar a los Estados sobre el creciente uso de Internet como plataforma de comunicacin y de comercio, as como de la necesidad de establecer un marco uniforme en materia de cifrado de la informacin y firma digital. Esta comunicacin recuerda que los mensajes en Internet pueden ser interceptados y manipulados, y esta circunstancia puede impedir que se conceda validez a los documentos enviados a travs de la red. Las tecnologas de cifrado pueden resolver este problema, ya que constituyen una herramienta esencial para garantizar la seguridad y la fiabilidad de las comunicaciones y transacciones electrnicas.
1

UNCITRAL: United Nations Commission on International Trade Law, establece un Modelo de leyes para el comercio electrnico.

66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Pgina 51 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final

Dos aplicaciones importantes de estas tecnologas son las firmas digitales y el cifrado de mensajes. Varios Estados han anunciado su intencin de promulgar leyes especficas relativas a la encriptacin, y algunos ya lo han hecho. Pero la divergencia legal y tcnica de estas regulaciones podra constituir un serio obstculo para el Mercado Interior e impedir el desarrollo de nuevas actividades econmicas relacionadas con el comercio electrnico.

Los objetivos de la Comunicacin de la CE son: El desarrollo de un marco legal que asegure el funcionamiento de los productos y servicios de cifrado en el Mercado Interior. Establecer un marco europeo (internacional) para las firmas digitales.

Esta Comunicacin anuncia la intencin de la Comisin de proponer una legislacin que cubra estos dos objetivos durante el primer semestre de 1998. Actualmente el uso de firmas digitales exige el ajuste y la armonizacin de diversas reas. La mayor parte de los problemas se centran en los siguientes puntos: Ausencia de requisitos uniformes para las autoridades de certificacin. Ausencia de requisitos uniformes para los productos de firma digital. Ausencia de normas uniformes en materia de responsabilidad. Ausencia de normas uniformes respecto al reconocimiento legal de las firmas digitales y su eficacia probatoria.

La evidente naturaleza de las firmas digitales, que traspasa las fronteras de cada pas, exige el reconocimiento mutuo de los requisitos legales establecidos en esta materia por cada Estado, con el fin de evitar la fragmentacin del comercio electrnico en el Mercado Interior.

Posibles soluc iones a implementar


En la comunicacin se propone la siguiente estrategia a seguir: Establecer un marco comunitario para las firmas digitales con el fin de que la regulacin de cada Estado no genere barreras internas para el comercio electrnico. Determinar requisitos comunes para las autoridades de certificacin en Europa. El sistema jurdico de cada Estado debe reconocer y tratar las firmas digitales de manera idntica a las firmas convencionales. La interoperabilidad entre diferentes sistemas de cifrado y firma digital es absolutamente necesaria. 66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Pgina 52 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final

Sntesis de la normativa aplicada a la firma digital de documentacin, focalizndose la misma en el decreto 427/98 de la Repblica Argentina y el proyecto de Ley de Firma Digital de Alemania
Una Firma Digital es el resultado de la aplicacin de ciertos procedimientos tcnicos a un Documento Digital utilizando un sistema criptogrfico extremadamente seguro.

La implementacin de esta tecnologa permitir a la Administracin Pblica Nacional hacer ms eficientes sus circuitos administrativos, al hacer posible la identificacin fehaciente del autor y/o emisor de la informacin, y al otorgar garantas de que el documento digital no ha sido alterado desde el momento de su firma.

Consciente de esta situacin, la Secretara de la Funcin Pblica integra desde hace dos aos el Subcomit de Criptografa y Firma Digital y ha dedicado importantes esfuerzos a viabilizar la introduccin de esta tecnologa. Como resultado, el 16 de abril de 1998, el Presidente de la Nacin, Dr. Carlos Sal Menem, firm el Decreto N 427/98, que permite el uso de esta tecnologa para los actos internos del Sector Pblico Nacional que no produzcan efectos jurdicos individuales en forma directa, y sienta las bases para la creacin de una Infraestructura de Autoridades Certificantes de la Administracin Pblica Nacional. En el marco de esta normativa, la Secretara de la Funcin Pblica es autoridad de aplicacin. En la Resolutiva Final del 16 Abril 1998, se enunci: " VISTO los Decretos Nros.: 660 del 24 de junio de 1996 y 998 del 30 de agosto de 1996, la Resolucin N 45 del 17 de marzo de 1997 de la SECRETARIA DE LA FUNCION PUBLICA de la JEFATURA DE GABINETE DE MINISTROS, y considerando: " la necesidad de optimizar la actividad de la Administracin Pblica Nacional adecuando sus sistemas de registracin de datos, tendiendo a eliminar el uso del papel y automatizando sus circuitos administrativos, amerita la introduccin de tecnologa de ltima generacin, entre las cuales se destacan aquellas relativas al uso de la firma digital, susceptible de la misma o superior garanta de confianza que la firma olgrafa " considerando necesario estimular la difusin de las citadas tecnologas a travs del dictado de una norma de jerarqua superior, que promueva la extensin del uso de la firma digital a todo el mbito del Sector Pblico Nacional " Que el mecanismo de la firma digital cumple con la condicin de no repudio " " establecer una Infraestructura de Firma Digital para el Sector Pblico Nacional Que las funciones del Organo Auditante recaigan en la CONTADURIA GENERAL DE LA NACION,

66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Pgina 53 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final Que la presente medida se dicta en uso de las facultades conferidas por el Artculo 99 inciso 1 de la CONSTITUCION NACIONAL2.

A partir de las necesidad de los puntos anteriormente explicados acerca de la firma digital, es que el Presidente argentino aprob el Decreto Nro. 427, el cual se detalla a continuacin Artculo por Artculo, y en donde por cada artculo se extrae el concepto ms importante de cada uno.

Decreto Nro. 427


ARTCULO 1- Autorzase por el plazo de dos aos, a contar del dictado de los manuales de procedimiento y de los estndares aludidos en el artculo 6 del presente Decreto, el empleo de la firma digital en la instrumentacin de los actos internos del Sector Pblico Nacional, que no produzcan efectos jurdicos individuales en forma directa " En el rgimen del presente Decreto la firma digital tendr los mismos efectos de la firma olgrafa, siempre que se hayan cumplido los recaudos establecidos en el Anexo I y dentro del mbito de aplicacin definido en el artculo 3. ARTCULO 2- Los trminos del este reglamento tendrn los alcances definidos en el Glosario que como Anexo II integra el presente Decreto. ARTCULO 3- El siguiente Decreto se aplicara a todo el mbito del Sector Pblico Nacional, dentro del cual se comprende Administracin centralizada y la descentralizada, Entes autrquicos, Empresas del Estado, Sociedades del Estado, Sociedades Annimas con participacin estatal mayoritaria, Bancos y entidades financieras oficiales Todo otro ente, cualquiera que sea su denominacin o naturaleza jurdica, en el que el Estado Nacional o sus organismos descentralizados tengan participacin suficiente para la formacin de sus decisiones.

ARTCULO 4- Los organismos del Sector Pblico Nacional debern arbitrar los medios que resulten adecuados para extender el empleo de la tecnologa de la firma digital " ARTCULO 5- La correspondencia entre una clave pblica, elemento del par de claves que permite verificar una firma digital, y el agente titular de la misma, ser acreditada mediante un certificado de clave pblica emitido por una Autoridad Certificante Licenciada. Los requisitos y condiciones para la vigencia y validez de los certificados de clave pblica (emisin, aceptacin, revocacin, expiracin y dems contingencias del procedimiento), as como las condiciones bajo las cuales deben operar las Autoridades Certificantes Licenciadas integrantes de la Infraestructura de Firma Digital para el Sector Pblico Nacional, quedan establecidas en el citado Anexo I. ARTCULO 6- " la Secretara de la Funcin Pblica, es la Autoridad de Aplicacin del presente Decreto, estando facultada, adems, para dictar los manuales de procedimiento de las Autoridades Certificantes Licenciadas y de los Organismos Auditante y Licenciante, y los

Art. 99: Atribuciones del Poder Ejecutivo: El presidente de la Nacin tiene las siguientes atribuciones: Inciso 1: Es el jefe supremo de la nacin, jefe del gobierno y responsable poltico de la administracin general del pas.

66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Pgina 54 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final estndares tecnolgicos aplicables a las claves " cuyos contenidos debern reflejar el ltimo estado del arte " ARTCULO 7- "" ARTCULO 8- La Secretara de la Funcin Pblica de la Jefatura de Gabinete de Ministros cumplir las funciones de Organismo Licenciante con los alcances definidos en el Anexo I del presente Decreto. ARTCULO 9- La Contadura General de la Nacin " cumplir las funciones de Organismo Auditante en los trminos de lo establecido en el Anexo I del presente Decreto " ARTCULO 10- "..." ARTCULO 11- "..." ARTCULO 12- Comunquese, publquese, dse a la Direccin Nacional del Registro Oficial y archvese. Luego de sintetizar los artculos del decreto, se analiza de la misma forma en cuanto a su contenido los Anexos I y II correspondientes a la Infraestructura de Firma Digital para el Sector Publico Nacional

Anexo I: Infraestructura de Firma Digital para el Sector Pblico Nacional


Organismo Licenciante Funciones: Otorga, deniega y revoca las licencias para las autoridades certificantes y emite certificados de clave pblica, que permiten verificar las firmas digitales de los certificados que stas emitan; Verifica que las autoridades certificantes licenciadas utilicen sistemas tcnicamente confiables; Considera para su aprobacin el manual de procedimientos y el plan de seguridad; Acuerda con el organismo auditante el plan de auditora para las autoridades certificantes licenciadas; Dispone la realizacin de auditoras y resuelve los conflictos individuales que se susciten entre el suscriptor de un certificado y la autoridad certificante licenciada emisora del mismo; Resuelve todas aquellas contingencias respecto a la Infraestructura de firma digital.

Obligaciones: Abstenerse de generar, exigir, conocer o acceder bajo ninguna circunstancia, a la clave privada de cualquier SUSCRIPTOR de los certificados que emita; Mantener el control de su propia clave privada e impedir su divulgacin; Revocar su propio certificado de clave pblica frente al compromiso de su clave privada; Permitir el acceso pblico permanente a los certificados de clave pblica que ha emitido, por medio de conexiones de telecomunicaciones pblicamente accesibles.

66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Pgina 55 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final Permitir el ingreso de los funcionarios autorizados del organismo auditante a su local operativo, poner a su disposicin toda la informacin necesaria, y proveer la asistencia del caso; Publicar su propio certificado DE Clave Publica en el Boletn Oficial, y en DOS (2) diarios de difusin nacional, durante TRES (3) das consecutivos a partir del da de su emisin; Revocar los certificados emitidos en favor de las autoridades certificantes licenciadas cuando las claves pblicas que en ellos figuran dejan de ser TECNICAMENTE CONFIABLES; Registrar las presentaciones que le sean formuladas, as como el trmite conferido a cada una de ellas.

Organismo Auditante Funciones: Audita: al organismo licenciante a las autoridades certificantes licenciadas; a las autoridades certificantes previo a la obtencin de sus licencias; a las autoridades certificantes licenciadas a solicitud del organismo licenciante; Acuerda con el organismo licenciante el plan de auditora Efecta las revisiones de cumplimiento de las recomendaciones formuladas en las auditoras.

Obligaciones: Utilizar tcnicas de auditora apropiadas en sus evaluaciones; Evaluar: la confiabilidad y calidad de los sistemas utilizados la integridad, confidencialidad y disponibilidad de los datos, el cumplimiento con las especificaciones del manual de procedimientos el plan de seguridad Verificar que se utilicen sistemas TECNICAMENTE CONFIABLES; Emitir informes de auditora con los hallazgos, conclusiones y recomendaciones en cada caso; Realizar revisiones de seguimiento de las auditoras, para determinar si el organismo auditado ha tomado las acciones correctivas que surjan de las recomendaciones; Emitir informes con las conclusiones de las revisiones de seguimiento de auditoras; Intervenir en los simulacros de planes de contingencia.

Autoridad Certificante Licenciada Funciones: Emite certificados de Clave Publica; Condiciones: a) recibir del agente requeriente una solicitud de emisin de certificado de clave pblica, firmada digitalmente con la correspondiente clave privada; b) verificar fehacientemente la informacin identificatoria del solicitante,

66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Pgina 56 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final La autoridad certificante licenciada puede, opcionalmente, incluir en un certificado informacin no verificada, debiendo indicar claramente tal cualidad. Revoca certificados de clave pblica; a) por solicitud de su Suscriptor; o de un Tercero; o b) si llegara a determinar que un certificado fue emitido en base a una informacin falsa, o c) si llegara a determinar que las Claves Publicas contenidas en los certificados dejan de ser T ECNICAMENTE CONFIABLES Provee, opcionalmente, el servicio de Sellado Digital de Fecha y Hora.

Obligaciones: Adicionalmente a sus obligaciones emergentes como suscriptora de su certificado emitido por el organismo licenciante, la autoridad certificante licenciada debe: Abstenerse de generar, exigir, o por cualquier otro medio tomar conocimiento o acceder bajo ninguna circunstancia, a la clave privada del suscriptor; Mantener el control de su clave privada e impedir su divulgacin; Solicitar inmediatamente la revocacin de su certificado, cuando tuviera sospechas fundadas de que su clave privada ha sido comprometida; Solicitar al organismo licenciante la revocacin de su certificado cuando la clave publica en l contenida deje de ser Tcnicamente Confiable; Informar inmediatamente al organismo licenciante sobre cualquier cambio en los datos contenidos en su certificado, o sobre cualquier hecho significativo que pueda afectar la informacin contenida en el mismo; Operar utilizando un sistema Tcnicamente Confiable; Notificar al solicitante sobre las medidas necesarias que ste est obligado a adoptar para crear Firmas Digitales seguras y para su verificacin confiable; y de las obligaciones que ste asume por el slo hecho de ser suscriptor de un certificado de clave pblica; Mantener la documentacin respaldatoria de los certificados emitidos por DIEZ (10) aos a partir de su fecha de vencimiento o revocacin; Permitir el acceso pblico permanente a los certificados que ha emitido, y a la Lista de certificados revocados, por medio de conexiones de telecomunicaciones pblicamente accesibles.

Cese de Actividades: Los certificados emitidos por una autoridad certificante licenciada que cesa en sus funciones se revocarn a partir del da y la hora en que cesa su actividad, a menos que sean transferidos a otra autoridad certificante licenciada. Si los certificados son transferidos a otra autoridad certificante licenciada, toda la documentacin pertinente tambin deber ser transferida a ella.

Requisitos para obtener la licencia de autoridad certificante: La autoridad certificante que desee obtener una licencia deber: 1. Presentar una solicitud; 2. Contar con un dictamen favorable emitido por el organismo auditante;

66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Pgina 57 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final 3. Someter a aprobacin del organismo licenciante el manual de procedimientos, el plan de seguridad y el de cese de actividades, as como el detalle de los componentes tcnicos a utilizar; 4. Emplear para el ejercicio de las actividades de certificacin, personal tcnicamente idneo; 5. Presentar toda otra informacin relevante al proceso de otorgamiento de licencias que sea exigida por el organismo licenciante.

Suscriptor De Certificado De Clave Pblica Obligaciones del suscriptor: Proveer todos los datos requeridos por la autoridad certificante licenciada bajo declaracin jurada; Mantener el control de su clave privada e impedir su divulgacin; Informar inmediatamente a la autoridad certificante licenciada: sobre cualquier circunstancia que pueda haber comprometido su clave privada licenciada cuando cambie alguno de los datos contenidos en el certificado que hubieran sido objeto de verificacin.

Certificados de Clave Pblica El certificado de clave pblica contendr, como mnimo, los siguientes datos: Suscriptor Nombre Documento Tipo Clave Pblica Algoritmo a utilizar con la Clave Pblica Nmero de Serie Perodo de Vigencia Autoridad Certificante Licenciada Emisora Firma Digital (identificando algoritmos utilizados)
Tabla 2 C ertificado de C lave Pblic a

Nmero

66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Pgina 58 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final Condiciones de Validez del Certificado de Clave Pblica Condiciones sine qua non para la validez de un certificado: 1. HA SIDO EMITIDO POR UNA AUTORIDAD CERTIFICANTE LICENCIADA; 2. NO HA SIDO REVOCADO; 3. NO HA EXPIRADO.

Borrador del proyecto de ley de Firma Digital Ale mana:


A continuacin se detallan y sintetizan los artculos que conforman el proyecto de ley de Firma Digital Alemana. Los artculos que no poseen ningn tipo de aclaracin es porque se han analizado en la reglamentacin Argentina, y el objeto de los artculos es de similar contenido; y aquellos que s son aclarados es porque no estn contemplados en el decreto. ARTCULO 1. Objetivo y Area de Aplicacin 4. El propsito de esta ley es crear las condiciones generales para las firmas digitales bajo las cuales se las pueda considerar seguras y que las falsificaciones de firmas digitales y las falsificaciones de informacin firmada puedan ser verificadas sin lugar a duda. 5. La aplicacin de otros procedimientos para firmas digitales est permitida en la medida que las firmas digitales no son requeridas legalmente bajo esta ley. ARTCULO 2. Definiciones ARTCULO 3. La Autoridad ARTCULO 4. Otorgamiento de licencias para certificadores ARTCULO 5. Emisin de certificados de claves de firmas y sellos de fecha y hora ARTCULO 6. Deber de informar El certificador deber informar al solicitante en lo referente al articulo 5 prrafo 1 concerniente a las medidas necesarias para contribuir a asegurar la firma digital y su verificacin confiable. Deber informar al solicitante respecto a los componentes tcnicos que cumplan los requerimientos " ARTCULO 7. Contenido de los certificados ARTCULO 8. Bloqueo de certificados ARTCULO 9. Sello de Fecha y Hora ARTCULO 10. Documentacin ARTCULO 11. Cese de las actividades ARTCULO 12. Proteccin de la informacin ARTCULO 13. Control e Implementacin de Responsabilidades. ARTCULO 14. Componentes tcnicos 1. Para la generacin y almacenamiento de claves de firma y la generacin y verificacin de firmas digitales, se debern utilizar componentes tcnicos que tengan caractersticas seguras que hagan confiablemente detectable la falsificacin de firmas digitales y la 66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires
Pgina 59 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final falsificacin de informacin firmada, y que protejan contra el uso no autorizado de las claves de firma privadas. 2. Los componentes tcnicos utilizados para generar firmas digitales debern permitir que el firmante identifique en forma confiable y previa la informacin que va a firmar. Para la verificacin de la informacin firmada, se debern usar aquellos componentes tcnicos que tengan caractersticas seguras que permitan determinar que la informacin no ha sido alterada, a cual informacin se refiere la firma digital y a cual propietario de la clave de firma se le atribuye la firma digital. 3. "..." ARTCULO 15. Certificados extranjeros 1. Las firmas digitales que se puedan verificar con una clave pblica de firma para la cual exista un certificado extranjero de otro Estado miembro de la Unin Europea o de otro Estado firmante del Tratado en el Area Econmica Europea son equivalentes a firmas digitales segn esta ley, en tanto puedan demostrar un nivel de seguridad equivalente. 2. El prrafo 1 tambin se aplica a otros Estados en la medida en que se suscriban acuerdos internacionales relativos al reconocimiento de certificados. 3. "" ARTCULO 16. Ordenanza Legal El gobierno federal tiene el poder para promulgar a travs de la Ordenanza Legal las disposiciones necesarias para implementar segn los Artculos 3 a 15: 1. Los detalles de los procedimientos para otorgar, transferir y revocar una licencia, as como el procedimiento de cese de las actividades licenciadas; 2. Las circunstancias que originan honorarios segn el Articulo 4 prrafo 6, y el monto de los honorarios; 3. Los detalles de las obligaciones de los certificadores; 4. El periodo de validez de los certificados de clave de firma; 5. Los detalles de la estructura de control sobre los certificadores; 6. Los detalles de los requisitos de los componentes tcnicos, as como la verificacin de los componentes tcnicos y la confirmacin de que los requisitos hayan sido cumplidos; 7. El plazo en el cual debera comenzar a usarse una nueva firma digital, as como los procedimientos asociados. (Nota general: Este proyecto de ley no especifica la responsabilidad civil de los certificadores.)

Reglamentacin Borrador Final, 20 de diciembre de 1996. ARTCULO 1. Procedimiento para el Otorgamiento y la Revocacin de Licencias ARTCULO 2. Costos 3. Se impondrn costos (honorarios y gastos) para los siguientes servicios pblicos: 1. El otorgamiento de una licencia o su rechazo; 2. La revocacin de una licencia; 3. La denegacin total o parcial de una apelacin; 4. La emisin de certificados; 5. La verificacin de informes de auditora segn lo expresado en el Artculo 15, prrafo 2 as como tambin de los controles segn el Artculo 15, prrafo (3); 6. La transferencia de documentacin segn lo expresado en el artculo 11, prrafo (2) de la Ley de Firma Digital. 66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Pgina 60 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final Se debern utilizar las siguientes tarifas horarias como base para el clculo de honorarios para servicios pblicos, segn los expresado en " ARTCULO 3. Procedimiento de solicitud ARTCULO 4. Instruccin del solicitante ARTCULO 5. Creacin y Almacenamiento de claves de firma e informacin de identificacin 1. Si el propietario de la clave de firma genera sus propias claves de firma, entonces el certificador deber convencerse de que dicho propietario de clave de firma utiliz componentes tcnicos apropiados " 2. Si las claves de firma o los datos de identificacin segn lo expresado en el prrafo (1), sentencia 2 son provistos por el certificador, ste deber tomar las medidas necesarias para evitar la divulgacin inadvertida de las claves privadas o de los datos de identificacin, como as tambin evitar su almacenamiento por parte del certificador. (Nota: Debe evitarse el almacenamiento con posterioridad a su generacin.) ARTCULO 6. Distribucin de claves de firma e Informacin de identificacin ARTCULO 7. Validez de los certificados 1. El perodo de validez de un certificado no puede exceder los 3 aos. El lapso entre la emisin y el comienzo del perodo de validez de un certificado, no podr exceder los seis meses. 2. El perodo de validez de un certificado de atributo no podr superar el perodo de validez del certificado de clave de firma al cual se refiere. ARTCULO 8. Registros pblicos de certificados 1. El certificador deber registrar los certificados emitidos por l, por un plazo de al menos 10 aos a partir del comienzo de su validez, en un registro de acuerdo con las disposiciones del artculo 5, prrafo (1), sentencia 2 de la Ley de Firma Digital. 2. La Autoridad deber registrar los certificados emitidos por ella, por un plazo de al menos 15 aos desde el comienzo de su validez, en un registro de acuerdo con las disposiciones del artculo 4, prrafo (5), sentencia 3 de la Ley de Firma Digital. Si se reconocen certificados extranjeros, lo anterior tambin se aplica a las claves pblicas de firma de los ms altos certificadores de dichos pases. La Autoridad deber publicar en el Boletn Federal las conexiones de telecomunicaciones bajo las cuales puede accederse a los certificados. ARTCULO 9. Procedimiento para el bloqueo de certificados 1. El certificador deber dar a conocer a los propietarios de claves de firma y a los terceros cuya informacin se encuentra incorporada en un certificado, as como a la Autoridad, un nmero telefnico por medio del cual podrn hacer que se bloquee inmediatamente un certificado. 2. " el bloqueo de certificados deber ser indicado inequvocamente en el registro segn lo expresado en el artculo 8, con indicacin del momento preciso, y no podr ser revocado " ARTCULO 10. Confiabilidad del Personal: " El certificador deber convencerse de la confiabilidad de las personas que asisten en la emisin de los certificados de claves de firma o de sellados de fecha y hora " ARTCULO 11. Proteccin de componentes tcnicos: El certificador deber tomar medidas necesarias para proteger contra accesos no autorizados a los componentes tcnicos y a las claves de firma privadas utilizadas la creacin de certificados y sellados de fecha y hora. 66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Pgina 61 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final ARTCULO 12. Plan de seguridad ARTCULO 13. Documentacin ARTCULO 14. Cese de Actividades ARTCULO 15. Control de certificadores ARTCULO 16. Requerimientos para componentes tcnicos 4. Los componentes tcnicos necesarios para la creacin de las claves de firma debern disearse de modo tal que, con un grado casi absoluto de certeza, cada clave ocurra slo una vez y la clave privada no pueda ser calculada a partir de la clave pblica. Se debe asegurar la confidencialidad de la clave privada, la cual no debe poder copiarse " 5. Los componentes tcnicos necesarios para la creacin o verificacin de firmas digitales deben ser diseados de manera tal que la clave privada de firma no pueda ser calculada a partir de la firma, y que la firma no pueda ser falsificada de otro modo. Debe ser posible utilizar la clave privada de firma slo despus de la identificacin del propietario, a travs de la posesin y del conocimiento, y no debe ser revelada durante el uso. Pueden utilizarse otras caractersticas, tales como las biomtricas, para la identificacin del propietario de la clave de firma. Los componentes tcnicos necesarios para recoger los datos de identificacin se deben disear de manera tal que dichos datos no sean revelados " 6. Los componentes tcnicos utilizados para mantener o acceder en forma verificable a los certificados, segn lo expresado en el artculo 5, prrafo (1), sentencia 2 de la Ley de Firma Digital, deben disearse de manera tal que slo personal autorizado pueda efectuar entradas y cambios, que el desbloqueo de un certificado bloqueado no pueda pasar desapercibido, y que pueda ser verificada la autenticidad de los informes. Slo los certificados que son mantenidos en forma verificable no necesitan ser accedidos pblicamente. Cualquier cambio en los componentes tcnicos respecto a las tcnicas de seguridad debe poder ser reconocido por el operador. 7. La Autoridad deber mantener un catlogo de las medidas de seguridad apropiadas, que ser publicado en el Boletn Federal, cuyas medidas debern ser tenidas en cuenta en lo que respecta a los componentes tcnicos. El catlogo deber elaborarse sobre la base de la informacin de la Oficina Federal para la Seguridad en Tecnologa de la Informacin, en consulta con expertos de las reas cientfica y comercial. ARTCULO 17. Verificacin de los componentes tcnicos 8. Los componentes tcnicos deben ser verificados con respecto al cumplimiento de los requerimientos de los "Criterios para la Evaluacin de la Seguridad de los Sistemas de Tecnologa de la Informacin", como sigue " ARTCULO 18. Firmas Digitales renovadas despus de un cierto plazo 1. Si la informacin se necesita en forma firmada por un tiempo prolongado, deber contener la fecha de emisin y deber ser firmada nuevamente con una firma digital que contenga un sellado de fecha y hora dentro de los 5 aos a ms tardar. Si las firmas digitales anteriores han retenido su valor de seguridad, la nueva firma debe incluirlas. 2. Si la confirmacin de seguridad de los componentes tcnicos usados para la creacin de firmas digitales se extiende segn lo expresado en el artculo 17, prrafo 2, entonces el plazo mencionado en prrafo (1) se extiende correspondientemente. ARTCULO 19. Entrada en vigencia

66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Pgina 62 de 63

Criptografa y Seguridad Electrnica Trabajo Prctico Final

Bibliografa
[Stinson, 1995]: [Schneier, 1996]: [Corripio, 1979]: [CGC, 1998]: [Microsoft, 1997] [Intellitrak] [Miros] [NewMarket] [PenOp] [Qvoice] [Sensar] [Visage] [Iriscan] [FDAlem] D. R. Stinson, Cryptography, theory and practice, CRC Press, 1995. Bruce Schneier, Applied Cryptography, 2nd Edition: protocols, algorithms, and source code in C, John Wiley & Sons, 1996. Fernando Corripio, Diccionario Etimolgico General de la Lengua Castellana, Editorial Bruguera, 1979. Congreso General Constituyente, Constitucin de la Nacin Argentina, 22 de Agosto de 1994. Microsoft , Visual Basic Books Online, Microsoft Press, 1997. Intellitrak Technologies Inc., Voice, www.intellitrak.com Miros Inc, Face Recognition, www.miros.com New Market Solutions, Fingerprint, Retinal Scanning, www.cardsolutions.com PenOp Inc, Signature Verification, www.penop.com Qvoice Inc, Facial Biometrics, Voice, Fingerprint, www.qvtrek.com Sensar Inc., Iris Scan, www.sensar.com Visage Technology, Facial Biometrics, www.viisage.com Iriscan Inc, Iris Scan, www.iriscan.com/basis.htm Traduccin al castellano de legislacin alemana, Firma Digital, www.spf.gov.ar

66-69 Criptografa y Seguridad Informtica Facultad de Ingeniera Universidad de Buenos Aires

Pgina 63 de 63