Criptología

Principios de Criptología

La criptología tiene por objeto esconder la información contenida en ciertos datos, así como transformarla por motivos como identificación del propietario de los datos, del autor, del remitente de un mensaje, compresión, etc. La criptografía es la rama de la criptología que se encarga de encriptar y desencriptar, o lo que es lo mismo, cifrar y descifrar mensajes. Encripción o cifrado es el acto de convertir el texto original en texto encriptado o cifrado por medio de un algoritmo y un secreto de encripción, el texto cifrado debe ser inintelegible para alguien que no posea el secreto de desencripción. Análogamente, la desencripción nos devuelve el texto original a partir del texto cifrado por medio de un algoritmo y un secreto de desencripción. El criptoanálisis es la rama que se encarga de obtener el texto original a partir del texto cifrado, sin poseer acceso legítimo al secreto de encripción.

La criptografía clásica cuenta con métodos muy variados, sin embargo, al no contar con criptoanálisis sistemático, estos métodos resultan hoy día bastante vulnerables, es decir, cualquiera con un presupuesto razonable puede hacerse de los recursos humanos y de cómputo necesarios para romper los métodos clásicos esencialmente en tiempo real. Por lo tanto, estos métodos son no sólo inservibles, sino incluso peligrosos, pues al ser utilizados por individuos ignorantes y en productos vendidos por compañías igualmente ignorantes o sin escrúpulos, brindan una ilusión de seguridad que es peor que la franca ausencia de la misma, pues en tal caso, al menos se está consciente de la vulnerabilidad, con lo cual uno evita usar el canal de comunicaciones inseguro para transmitir datos sensibles.

En contraste, la criptografía moderna puede proteger incluso a individuos de escasos recursos, no sólo del familiar o colega entrometido, sino también de gobiernos poderosos o grandes corporaciones multinacionales, es decir, de enemigos con vastos recursos que pueden, incluso, incluir laboratorios de criptoanálisis. Para esto, la criptografía moderna echa mano de algoritmos públicos revisados por pares implementados en programas de cómputo o softwares. Este punto merece aclararse y enfatizarse: un algoritmo secreto es peligroso, pues al no haber sido revisado por la comunidad académica, constituye un hueco potencial en la seguridad del usuario. Así, se afirma que a menos que éste tenga un departamento de investigación en criptología, un algoritmo secreto es una muy mala idea. Cabe mencionar, que incluso un experto puede cometer errores triviales y en el caso en el que nadie revise su trabajo, no habrá quien descubra esa situación. Por esto, los algoritmos de encripción modernos tienen dos tipos de entradas: el texto a ser encriptado y la o las llaves de encripción. De esta forma, el algoritmo se hace público para que pueda ser revisado y el secreto, que sigue siendo necesario, se transfiere a las llaves de encripción y /o desencripción.

Principios de encripción

Existen dos tipos principales de algoritmos de encripción sobre los cuales están construidos los protocolos más complicados: encripción simétrica y asimétrica, también conocidas respectivamente como de llave secreta y de llave pública. Los primeros algoritmos modernos que se desarrollaron son los simétricos. La simetría a la que alude el nombre se da entre las llaves, es decir, estos algoritmos usan la misma llave para encriptar y para desencriptar. Esto tiene el inconveniente de que para establecer un canal de comunicación seguro con estos algoritmos, el emisor y el receptor se tienen que poner de acuerdo en una llave. De estar lejos el uno del otro, su seguridad se vería comprometida si un enemigo interceptara la transmisión de la llave, lo cual se conoce como un ataque de capa y espada. Otros ataques de capa y espada a los que es susceptible la criptografía de llave simétrica incluyen soborno, chantaje, intimidación y tortura del emisor o receptor o incluso, de algún courier o mensajero que se use para la llave. Estos ataques permitirían al enemigo obtener todos los datos transmitidos. Sin embargo, hay ataques incluso más peligrosos, por ejemplo el conocido como man-in-the-middle u hombre-en medio. En este ataque el enemigo consigue interrumpir el canal de comunicaciones, por ejemplo, cortando un cable y uniendo ambos extremos a un equipo de cómputo o por ejemplo, interceptando a un courier. Así, cuando la llave es enviada, el enemigo la recibe y la sustituye por otra. Es evidente que este ataque compromete la seguridad del canal de formas mucho más severas, pues el interceptor puede no sólo escuchar los datos transmitidos, sino también sustituirlos por otros fabricados por él. En fin, la criptografía simétrica implica este problema de distribución de llaves, por eso, también se conoce como criptografía de llave secreta.

Es aquí donde entra la criptografía asimétrica o de llave pública. En este caso, cualquiera que vaya a actuar como receptor, genera una pareja de llaves, mediante un algoritmo accesorio, que se conocen como llave pública y llave privada. A continuación, reparte su llave pública a cualquier posible emisor, incluso, posiblemente publicándola en algún medio masivo o base de datos y guarda celosamente su llave privada. De esta forma, cualquiera que quiera mandarle un mensaje, lo encripta con su llave pública y se evita el problema de distribución de llaves, pues la llave pública no sirve para desencriptar los datos cifrados con ella misma.

En la práctica, la encripción de llave pública es mucho más pesada computacionalmente que la simétrica; por esta razón, a menudo se usan esquemas híbridos donde un algoritmo asimétrico se utiliza para establecer un canal seguro, y este canal se emplea para distribuir la llave para un algoritmo simétrico, a esta llave se le conoce como llave de sesión, pues para mayor seguridad se actualizará en cada nueva sesión de comunicación. Así se obtiene lo mejor de dos mundos: se evita el problema de distribución de llaves, pero se aprovecha el bajo costo computacional del algoritmo simétrico durante el resto de la sesión. Hay algunos esquemas híbridos incluso más complicados, los cuales están más allá del enfoque de este trabajo.

Además de permitir el intercambio seguro de mensajes, la criptología usa los esquemas y algoritmos de encripción para elaborar protocolos complejos que permiten, por ejemplo: repartir un secreto entre m personas de tal manera que se necesiten, al menos, n para abrirlo; crear dinero digital anónimo, de tal manera que un banco emisor pueda comprobar su autenticidad y evitar su duplicidad sin conocer la identidad del usuario; así como para comprobarle a alguien con certeza casi absoluta que se conoce un secreto sin divulgar el mismo.

Firmas digitales

Una clase de protocolos que nos interesa particularmente en este trabajo es el de las firmas digitales. Basándonos en un algoritmo asimétrico se puede construir un protocolo simple de firma digital invirtiendo el uso de las llaves; es decir, si el emisor encripta un mensaje con su llave privada, el receptor lo puede desencriptar con la llave pública correspondiente. Este mensaje no será secreto, puesto que la llave de desencripción es pública, pero la identidad del emisor queda garantizada, ya que él es el único que posee su llave privada. La integridad del mensaje también queda garantizada, en virtud de que si alguien lo modificara, necesitaría la llave privada para volverlo a firmar. Así, este protocolo cumple con los mínimos requisitos para ser un protocolo de firma digital. Sin embargo, este protocolo probablemente no se use, porque sería computacionalmente muy caro. Una modificación trivial que lo vuelve más práctico, consiste en usar una función de hash, que crea una especie de resumen del mensaje. Al encriptarse este resumen con la llave privada del emisor, se obtienen los mismos resultados anteriormente mencionados a un costo computacional alcanzable. Existen otros protocolos para firma digital más sofisticados que nos brindan más beneficios, como la posibilidad de que una firma digital no sea repudiable; esto es, que el autor de la firma no pueda negarlo convincentemente. Estos protocolos no pueden ser detallados en este trabajo por su complejidad, pero para quien tenga la iniciativa de estudiarlos puede remitirse a textos especializados en la materia de criptología como el texto que consultamos que aparece en nuestra bibliografía[63].



[63] Para comprender plenamente el funcionamiento de la firma electrónica se recomienda visitar el sitio http://www.howstuffworks.com/encryption.htm