¿Que es la Criptografía?
La criptografía (del griego κρύπτω krypto, «oculto», y γράφω graphos, «escribir», literalmente «escritura oculta») es el arte o ciencia de cifrar y descifrar información mediante técnicas especiales y se emplea frecuentemente para permitir un intercambio de mensajes que sólo puedan ser leídos por personas a las que van dirigidos y que poseen los medios para descifrarlos.
La palabra criptografía es un término genérico que describe todas las técnicas que permiten cifrar mensajes o hacerlos ininteligibles sin recurrir a una acción específica. El verbo asociado es cifrar.
La criptografía se basa en la aritmética: En el caso de un texto, consiste en transformar las letras que conforman el mensaje en una serie de números (en forma de bits ya que los equipos informáticos usan el sistema binario) y luego realizar cálculos con estos números para:
* modificarlos y hacerlos incomprensibles. El resultado de esta modificación (el mensaje cifrado) se llama texto cifrado, en contraste con el mensaje inicial, llamado texto simple.
* asegurarse de que el receptor pueda descifrarlos.

El cifrado normalmente se realiza mediante una clave de cifrado y el descifrado requiere una clave de descifrado. Las claves generalmente se dividen en dos tipos:
* Las claves simétricas: son las claves que se usan tanto para el cifrado como para el descifrado. En este caso hablamos de cifrado simétrico o cifrado con clave secreta.
* Las claves asimétricas: son las claves que se usan en el caso del cifrado asimétrico (también llamado cifrado con clave pública). En este caso, se usa una clave para el cifrado y otra para el descifrado.

Conceptos
En la jerga de la criptografía, la información original que debe protegerse se denomina texto en claro o texto plano. El cifrado es el proceso de convertir el texto plano en un galimatías ilegible, denominado texto cifrado o criptograma. Por lo general, la aplicación concreta del algoritmo de cifrado (también llamado cifra) se basa en la existencia de una clave: información secreta que adapta el algoritmo de cifrado para cada uso distinto. Cifra es una antigua palabra arábiga para designar el número cero; en la Antigüedad, cuando Europa empezaba a cambiar del sistema de numeración romano al arábigo, se desconocía el cero, por lo que este resultaba misterioso, de ahí probablemente que cifrado signifique misterioso.
Las dos técnicas más sencillas de cifrado, en la criptografía clásica, son la sustitución (que supone el cambio de significado de los elementos básicos del mensaje -las letras, los dígitos o los símbolos-) y la trasposición (que supone una reordenación de los mismos); la gran mayoría de las cifras clásicas son combinaciones de estas dos operaciones básicas.
El descifrado es el proceso inverso que recupera el texto plano a partir del criptograma y la clave. El protocolo criptográfico especifica los detalles de cómo se utilizan los algoritmos y las claves (y otras operaciones primitivas) para conseguir el efecto deseado. El conjunto de protocolos, algoritmos de cifrado, procesos de gestión de claves y actuaciones de los usuarios, es lo que constituyen en conjunto un criptosistema, que es con lo que el usuario final trabaja e interactúa.
Existen dos grandes grupos de cifras: los algoritmos que usan una única clave tanto en el proceso de cifrado como en el de descifrado, y los que emplean una clave para cifrar mensajes y una clave distinta para descifrarlos. Los primeros se denominan cifras simétricas, de clave simétrica o de clave privada, y son la base de los algoritmos de cifrado clásico. Los segundos se denominan cifras asimétricas, de clave asimétrica o de clave pública y forman el núcleo de las técnicas de cifrado modernas.
En el lenguaje cotidiano, la palabra código se usa de forma indistinta con cifra. En la jerga de la criptografía, sin embargo, el término tiene un uso técnico especializado: los códigos son un método de criptografía clásica que consiste en sustituir unidades textuales más o menos largas o complejas, habitualmente palabras o frases, para ocultar el mensaje; por ejemplo, "cielo azul" podría significar «atacar al amanecer». Por el contrario, las cifras clásicas normalmente sustituyen o reordenan los elementos básicos del mensaje -letras, dígitos o símbolos-; en el ejemplo anterior, «rcnm arcteeaal aaa» sería un criptograma obtenido por transposición. Cuando se usa una técnica de códigos, la información secreta suele recopilarse en un libro de códigos.
Con frecuencia los procesos de cifrado y descifrado se encuentran en la literatura como encriptado y desencriptado, aunque ambos son neologismos erróneos —anglicismos de los términos ingleses encrypt y decrypt— todavía sin reconocimiento académico. Hay quien hace distinción entre cifrado/descifrado y encriptado/desencriptado según estén hablando de criptografía simétrica o asimétrica, pero la realidad es que la mayoría de los expertos hispanohablantes prefieren evitar ambos neologismos hasta el punto de que el uso de los mismos llega incluso a discernir a los aficionados y novatos en la materia de aquellos que han adquirido más experiencia y profundidad en la misma.
Ideológicamente cifrar equivale a escribir y descifrar a leer lo escrito.

Historia de la criptografía
La historia de la criptografía es larga y abunda en anécdotas. Ya las primeras civilizaciones desarrollaron técnicas para enviar mensajes durante las campañas militares, de forma que si el mensajero era interceptado la información que portaba no corriera el peligro de caer en manos del enemigo. Posiblemente, el primer criptosistema que se conoce fuera documentado por el historiador griego Polibio: un sistema de sustitución basado en la posición de las letras en una tabla. También los romanos utilizaron sistemas de sustitución, siendo el método actualmente conocido como César, porque supuestamente Julio César lo empleó en sus campañas, uno de los más conocidos en la literatura (según algunos autores, en realidad Julio César no usaba este sistema de sustitución, pero la atribución tiene tanto arraigo que el nombre de este método de sustitución ha quedado para los anales de la historia). Otro de los métodos criptográficos utilizados por los griegos fue la escítala espartana, un método de trasposición basado en un cilindro que servía como clave en el que se enrollaba el mensaje para poder cifrar y descifrar.
En 1465 el italiano Leon Battista Alberti inventó un nuevo sistema de sustitución polialfabética que supuso un gran avance de la época. Otro de los criptógrafos más importantes del siglo XVI fue el francés Blaise de Vigenère que escribió un importante tratado sobre "la escritura secreta" y que diseñó una cifra que ha llegado a nuestros días asociada a su nombre. A Selenus se le debe la obra criptográfica "Cryptomenytices et Cryptographiae" (Luneburgo, 1624). Durante los siglos XVII, XVIII y XIX, el interés de los monarcas por la criptografía fue notable. Las tropas de Felipe II emplearon durante mucho tiempo una cifra con un alfabeto de más de 500 símbolos que los matemáticos del rey consideraban inexpugnable. Cuando el matemático francés François Viète consiguió criptoanalizar aquel sistema para el rey de Francia, a la sazón Enrique IV, el conocimiento mostrado por el rey francés impulsó una queja de la corte española ante del papa Pío V acusando a Enrique IV de utilizar magia negra para vencer a sus ejércitos. Por su parte, la reina María Estuardo, reina de Escocia, fue ejecutada por su prima Isabel I de Inglaterra al descubrirse un complot de aquella tras un criptoanálisis exitoso por parte de los matemáticos de Isabel.
Durante la Primera Guerra Mundial, los Alemanes usaron el cifrado ADFGVX. Este método de cifrado es similar a la del tablero de ajedrez Polibio. Consistía en una matriz de 6 x 6 utilizado para sustituir cualquier letra del alfabeto y los números 0 a 9 con un par de letras que consiste de A, D, F, G, V, o X.
Desde el siglo XIX y hasta la Segunda Guerra Mundial, las figuras más importantes fueron la del holandés Auguste Kerckhoffs y la del prusiano Friedrich Kasiski. Pero es en el siglo XX cuando la historia de la criptografía vuelve a experimentar importantes avances. En especial durante las dos contiendas bélicas que marcaron al siglo: la Gran Guerra y la Segunda Guerra Mundial. A partir del siglo XX, la criptografía usa una nueva herramienta que permitirá conseguir mejores y más seguras cifras: las máquinas de cálculo. La más conocida de las máquinas de cifrado posiblemente sea la máquina alemana Enigma: una máquina de rotores que automatizaba considerablemente los cálculos que era necesario realizar para las operaciones de cifrado y descifrado de mensajes. Para vencer al ingenio alemán, fue necesario el concurso de los mejores matemáticos de la época y un gran esfuerzo computacional. No en vano, los mayores avances tanto en el campo de la criptografía como en el del criptoanálisis no empezaron hasta entonces.
Tras la conclusión de la Segunda Guerra Mundial, la criptografía tiene un desarrollo teórico importante, siendo Claude Shannon y sus investigaciones sobre teoría de la información esenciales hitos en dicho desarrollo. Además, los avances en computación automática suponen tanto una amenaza para los sistemas existentes como una oportunidad para el desarrollo de nuevos sistemas. A mediados de los años 70, el Departamento de Normas y Estándares norteamericano publica el primer diseño lógico de un cifrador que estaría llamado a ser el principal sistema criptográfico de finales de siglo: el Estándar de Cifrado de Datos o DES. En esas mismas fechas ya se empezaba a gestar lo que sería la, hasta ahora, última revolución de la criptografía teórica y práctica: los sistemas asimétricos. Estos sistemas supusieron un salto cualitativo importante, ya que permitieron introducir la criptografía en otros campos que hoy día son esenciales, como el de la firma digital.
Criptoanálisis
El criptoanálisis consiste en la reconstrucción de un mensaje cifrado en texto simple utilizando métodos matemáticos. Por lo tanto, todos los criptosistemas deben ser resistentes a los métodos de criptoanálisis. Cuando un método de criptoanálisis permite descifrar un mensaje cifrado mediante el uso de un criptosistema, decimos que el algoritmo de cifrado ha sido decodificado.
Generalmente, se distinguen cuatro métodos de criptoanálisis:
* Un ataque de sólo texto cifrado consiste en encontrar la clave de descifrado utilizando uno o más textos cifrados;
* Un ataque de texto simple conocido consiste en encontrar la clave de descifrado utilizando uno o más textos cifrados conociendo el texto correspondiente;
* Un ataque de texto simple elegido consiste en encontrar la clave de descifrado utilizando uno o más textos cifrados. El atacante tiene la opción de generarlos a partir de textos simples;
* Un ataque de texto cifrado elegido consiste en encontrar la clave de descifrado utilizando uno o más textos cifrados. El atacante tiene la opción de generarlos a partir de los textos simples.
Cifrado de sustitución

El cifrado de sustitución consiste en reemplazar una o más entidades (generalmente letras) de un mensaje por una o más entidades diferentes.
Existen varios tipos de criptosistemas de sustitución:
* La sustitución monoalfabética consiste en reemplazar cada una de las letras del mensaje por otra letra del alfabeto.
* La sustitución polialfabética consiste en utilizar una serie de cifrados monoalfabéticos que son re-utilizados periódicamente.
* La sustitución homófona hace posible que cada una de las letras del mensaje del texto plano se corresponda con un posible grupo de caracteres distintos.
* La sustitución poligráfica consiste en reemplazar un grupo de caracteres en un mensaje por otro grupo de caracteres.
Cifrado César
Este código de cifrado es uno de los más antiguos ya que su uso se remonta a Julio César. El principio de cifrado se basa en la adición de un valor constante a todos los caracteres de un mensaje o, más precisamente, a su código ASCII (American National Standard Code for Information Interchange).
Simplemente es cuestión de cambiar todos los valores de los caracteres de un mensaje en un determinado número de posiciones, es decir, sustituir cada letra por otra. Por ejemplo, si cambiamos 3 posiciones del mensaje "COMMENT CA MARCHE", obtenemos "FRPPHQW FD PDUFKH". Cuando el valor agregado da una letra posterior a la Z, podemos simplemente continuar empezando por la A. Esto quiere decir que aplicamos un módulo 26.
Como, por ejemplo, en la película 2001: Una Odisea al Espacio, el ordenador se llamó HAL. Este nombre es, en realidad, IBM desplazado una posición hacia abajo...
El carácter que corresponde al valor que se agregó al mensaje para el cifrado se llama clave. En este caso, la clave es C, ya que es la 3º letra del alfabeto.
Este sistema de cifrado es, en verdad, muy fácil de implementar, pero su desventaja es que es totalmente asimétrico, ya que se puede realizar una simple sustracción para averiguar el mensaje inicial. Un método básico consiste en una simple sustracción de los números 1 al 26 para ver si alguno de estos números nos da un mensaje inteligible.
Un método más avanzado consiste en calcular la frecuencia con que aparecen las letras en el mensaje codificado (esto se hace cada vez más fácil a medida que el mensaje es más largo). Según el idioma, algunas letras se usan con más frecuencia que otras (por ejemplo, en francés la letra E es la más usada). De esta forma, la letra que aparece con más frecuencia en el texto cifrado mediante el cifrado César será la que corresponda a la letra E y una simple sustracción nos da la clave de cifrado.
Cifrado ROT13
El caso específico del cifrado César donde la clave de cifrado es N (la 13º letra del alfabeto) se denomina ROT13 (se eligió el número 13, la mitad de 26, para que sea posible cifrar y descifrar fácilmente mensajes textuales).
Cifrado por transposición

El método de cifrado por transposición consiste en reordenar datos para cifrarlos a fin de hacerlos ininteligibles. Esto puede significar, por ejemplo, reordenar los datos geométricamente para hacerlos visualmente inutilizables.
La técnica asiria
La técnica de cifrado asiria es, probablemente, la principal prueba de que los métodos de cifrado se utilizaron en Grecia ya en el año 600 AC para encubrir mensajes escritos en tiras de papiro.
La técnica consiste en:
* enrollar una tira de papiro alrededor de un cilindro llamado scytale,
* escribir el texto a lo largo en la tira enrollada (el mensaje del ejemplo mostrado arriba es "comment ça marche".
Cuando se desenrolla el mensaje, ya no tiene significado ("cecaeonar mt c m mh". Para descifrar el mensaje, el destinatario simplemente necesita tener un cilindro del mismo diámetro. En realidad, un descifrador de códigos (¡había descifradores de códigos en esa época!) puede descifrar el mensaje probando cilindros con una serie de diámetros diferentes; esto significa que el método puede romperse estadísticamente (los caracteres sólo tienen que tomarse uno a uno, separados por una determinada distancia).
El cifrado simétrico
El cifrado simétrico (también conocido como cifrado de clave privada o cifrado de clave secreta) consiste en utilizar la misma clave para el cifrado y el descifrado.
El cifrado consiste en aplicar una operación (un algoritmo) a los datos que se desea cifrar utilizando la clave privada para hacerlos ininteligibles. El algoritmo más simple (como un OR exclusivo) puede lograr que un sistema prácticamente a prueba de falsificaciones (asumiendo que la seguridad absoluta no existe).
Sin embargo, en la década de 1940, Claude Shannon demostró que, para tener una seguridad completa, los sistemas de clave privada debían usar claves que tengan, como mínimo, la misma longitud del mensaje cifrado. Además, el cifrado simétrico requiere que se utilice un canal seguro para intercambiar la clave y esto disminuye en gran medida la utilidad de este tipo de sistema de cifrado.
La mayor desventaja de un criptosistema de clave secreta está relacionada con el intercambio de las claves. El cifrado simétrico se basa en el intercambio de un secreto (las claves). Surge, entonces, el problema de la distribución de las claves:
Así, un usuario que desea comunicarse con varias personas y garantizar al mismo tiempo niveles separados de confidencialidad debe utilizar el mismo número de claves privadas que de personas. Para un grupo de una cantidad N de personas que utilizan un criptosistema de clave secreta, es necesario distribuir una cantidad de claves equivalente a N* (N-1) / 2.
En la década de 1920, Gilbert Vernam y Joseph Mauborgne desarrollaron el método One-Time Pad (también conocido como "One-Time Password", abreviado OTP), basado en una clave privada generada de forma aleatoria que se usa sólo una vez y después se destruye. En el mismo período, el Kremlin y la Casa Blanca se comunicaban a través del famoso teléfono rojo, un teléfono que cifraba las llamadas mediante una clave privada que utilizaba el método one-time pad. La clave privada se intercambiaba a través de valija diplomática (que cumplía el papel de canal seguro).
Cifrado asimétrico

El principio del cifrado asimétrico apareció en 1976, con la publicación de un trabajo sobre criptografía por Whitfield Diffie y Martin Hellman.
Clave Pública

En un criptosistema asimétrico (o criptosistema de clave pública), las claves se dan en pares:
* Una clave pública para el cifrado;
* Una clave secreta para el descifrado.
En un sistema de cifrado con clave pública, los usuarios eligen una clave aleatoria que sólo ellos conocen (ésta es la clave privada). A partir de esta clave, automáticamente se deduce un algoritmo (la clave pública). Los usuarios intercambian esta clave pública mediante un canal no seguro.
Cuando un usuario desea enviar un mensaje a otro usuario, sólo debe cifrar el mensaje que desea enviar utilizando la clave pública del receptor (que puede encontrar, por ejemplo, en un servidor de claves como un directorio LDAP). El receptor podrá descifrar el mensaje con su clave privada (que sólo él conoce).
Este sistema se basa en una función que es fácil de calcular en una dirección (llamada función trapdoor de único sentido) y que, matemáticamente, resulta muy difícil de invertir sin la clave privada (llamada trapdoor).
Para ilustrarlo con un ejemplo, sería como si un usuario creara de forma aleatoria una pequeña llave metálica (la clave privada) y luego produjera una gran cantidad de candados (claves públicas) que guarda en un casillero al que puede acceder cualquiera (el casillero sería el canal no seguro). Para enviarle un documento, cada usuario puede usar un candado (abierto), cerrar con este candado una carpeta que contiene el documento y enviar la carpeta al dueño de la clave pública (el dueño del candado). Sólo el dueño podrá abrir la carpeta con su clave privada.
Claves de sesión
Los algoritmos asimétricos (que tienen un papel en los criptosistemas de clave pública) permiten eliminar problemas relacionados con las claves compartidas mediante un canal seguro. Sin embargo, son mucho menos eficaces (en términos de cálculos de tiempo) que los algoritmos simétricos.
El concepto de clave de sesión es un término medio entre el cifrado simétrico y asimétrico que permite combinar las dos técnicas.
El principio de las claves de sesión es simple: consiste en generar de forma aleatoria una clave de sesión de un tamaño razonable y en cifrar esta clave utilizando un algoritmo de cifrado de clave pública (más precisamente, utilizando la clave pública del receptor).
El receptor puede descifrar la clave de sesión con su clave privada. El emisor y el receptor comparten una clave que sólo ellos conocen. Por lo tanto, pueden enviar otros documentos cifrados utilizando un algoritmo de cifrado simétrico.
Firmas electrónicas
El paradigma de firmas electrónicas (también llamadas firmas digitales) es un proceso que hace posible garantizar la autenticidad del remitente (función de autenticación) y verificar la integridad del mensaje recibido.
Las firmas electrónicas también poseen una función de reconocimiento de autoría, es decir, hacen posible garantizar que el remitente ha enviado verdaderamente el mensaje (en otras palabras, se aseguran de que el remitente no pueda negar el envío del mensaje).

Una función hash es una función que hace posible obtener un hash (también llamado resumen de mensaje) de un texto, es decir, obtener una serie moderadamente corta de caracteres que representan el texto al cual se le aplica esta función hash. La función hash debe ser tal que asocie únicamente un hash con un texto plano (esto significa que la mínima modificación del documento causará una modificación en el hash). Además, debe ser una función unidireccional para que el mensaje original no pueda ser recuperado a partir del hash. Si existiera una forma de encontrar el texto plano desde el hash, se diría que la función hash presenta una "trapdoor".
Como tal, puede decirse que la función hash representa la huella digital de un documento.
Los algoritmos hash más utilizados son:
* MD5 (MD que significa Message Digest; en castellano, Resumen de mensaje). Desarrollado por Rivest en 1991, el MD5 crea, a partir de un texto cuyo tamaño es elegido al azar, una huella digital de 128 bits procesándola en bloques de 512 bits. Es común observar documentos descargados de Internet que vienen acompañados por archivos MD5: este es el hash del documento que hace posible verificar su integridad.
* SHA (Secure Hash Algorithm; en castellano, Algoritmo Hash Seguro) crea una huella digital que tiene 160 bits de longitud.
SHA-1 es una versión mejorada de SHA que data de 1994. Produce una huella digital de 160 bits a partir de un mensaje que tiene una longitud máxima de 264 bits y los procesa en bloques de 512 bits.
Al enviar un mensaje junto con su hash, es posible garantizar la integridad de dicho mensaje, es decir, el destinatario puede estar seguro de que el mensaje no ha sido alterado (intencionalmente o por casualidad) durante la comunicación.
Cuando un destinatario recibe un mensaje simplemente debe calcular el hash del mensaje recibido y compararlo con el hash que acompaña el documento. Si se falsificara el mensaje (o el hash) durante la comunicación, las dos huellas digitales no coincidirían.
Al utilizar una función hash se puede verificar que la huella digital corresponde al mensaje recibido, pero nada puede probar que el mensaje haya sido enviado por la persona que afirma ser el remitente.
Para garantizar la autenticidad del mensaje, el remitente simplemente debe cifrar (generalmente decimos firmar) el hash utilizando su clave privada (el hash firmado se denomina sello) y enviar el sello al destinatario.
Al recibir el mensaje, el destinatario deberá descifrar el sello con la clave pública del remitente, luego deberá comparar el hash obtenido con la función hash del hash recibido como adjunto. Esta función de creación de sellos se llama sellado.
Infraestructura de llave publica (PKI)

Los algoritmos de cifrado asimétrico se basan en el hecho de compartir una clave pública entre varios usuarios. En general, esta clave se comparte mediante un directorio electrónico (normalmente en formato LDAP) o una página Web.
Sin embargo, este modo de compartir presenta un inconveniente importante: nada garantiza que la clave pertenezca al usuario con el que está asociada. Un hacker puede corromper la clave pública que aparece en el directorio remplazándola con su propia clave pública. Por consiguiente, el hacker podrá descifrar todos los mensajes que se cifraron con la clave que aparece en el directorio.
Un certificado permite asociar una clave pública con una entidad (una persona, un equipo, etc.) para garantizar su validez. El certificado es como la tarjeta de identificación de la clave, emitido por una entidad llamada Entidad de certificación (que frecuentemente se abrevia CA, por sus siglas en inglés).
La entidad de certificación es responsable de emitir los certificados, de asignarles una fecha de validez (similar a la fecha de vencimiento de los alimentos) y de revocarlos antes de esta fecha en caso de que la clave (o su dueño) estén en una situación de riesgo.

Los certificados son pequeños archivos divididos en dos partes:
* La parte que contiene la información
* La parte que contiene la firma de la entidad de certificación
La estructura de los certificados está estandarizada por la norma X.509 (más precisamente, X.509v3) de la UIT, que define la información que contiene el certificado:
* La versión de X.509 a la que corresponde el certificado;
* El número de serie del certificado;
* El algoritmo de cifrado utilizado para firmar el certificado;
* El nombre (DN, siglas en inglés de Nombre distinguido) de la entidad de certificación que lo emite;
* La fecha en que entra en vigencia el certificado;
* La fecha en que finaliza el período de validez del certificado;
* El objeto de utilización de la clave pública;
* La clave pública del dueño del certificado;
* La firma del emisor del certificado (huella digital).
La entidad de certificación firma toda esta información (información + clave pública del solicitante) y esto implica que una función hash crea una huella digital de esta información y luego este hash se cifra con la clave privada de la entidad de certificación. La clave pública se distribuye antes de tiempo para permitir a los usuarios verificar la firma de la entidad de certificación con su clave pública.

Cuando un usuario desea comunicarse con otra persona, sólo debe obtener el certificado del receptor. Este certificado contiene el nombre y la clave pública del receptor, y está firmado por la entidad de certificación. De esta forma, es posible verificar la validez del mensaje aplicando, primero, la función hash a la información contenida en el certificado y, segundo, descifrando la firma de la entidad de certificación con la clave pública y comparando los dos resultados.
Existen varios tipos de certificados en función del nivel de sus firmas:
* Los certificados firmados localmente son certificados de uso interno. Al estar firmados por un servidor local, este tipo de certificados permiten garantizar los intercambios confidenciales dentro de una organización, por ejemplo, en una Intranet. Los certificados firmados localmente se pueden usar para autentificar usuarios.
* Los certificados firmados por una entidad de certificación son necesarios cuando se deben garantizar los intercambios seguros con usuarios anónimos, por ejemplo, en el caso de una página Web segura al que pueda acceder el público general. La certificación de un tercero garantiza al usuario que el certificado pertenece efectivamente a la organización a la que dice pertenecer.
Los certificados se utilizan principalmente en tres tipos de contextos:
* Los certificados de cliente se almacenan en la estación de trabajo del usuario o se integran en un contenedor como una tarjeta inteligente, y permiten identificar a un usuario y asociarlo con ciertos privilegios. En la mayoría de los casos, se transmiten al servidor cuando se establece una conexión y el servidor asigna privilegios en función de la acreditación del usuario. Son verdaderas tarjetas de identificación digitales que usan un par de claves asimétricas con una longitud de 512 a 1024 bits.
* Los certificados de servidor se instalan en un servidor Web y permiten conectar un servicio con el dueño del servicio. En el caso de página Web, permiten garantizar que la dirección URL de la página Web y especialmente su dominio pertenecen realmente a tal o cual compañía. También permiten proteger las transacciones con usuarios gracias al protocolo SSL.
* Los certificados VPN (Red privada virtual) se instalan en un equipo de red y permiten cifrar flujos de comunicación de extremo a extremo entre dos puntos (por ejemplo, dos ubicaciones de una compañía). En este tipo de escenario, los usuarios tienen un certificado cliente, los servidores aplican un certificado de servidor y el equipo de comunicación usa un certificado especial (generalmente un certificado IPSec).
Criptosistema

El cifrado Vigenère
El cifrado Vigenère es un criptosistema simétrico, es decir, utiliza la misma clave para cifrar y descifrar. El cifrado Vigenère se asemeja mucho al cifrado César, pero su diferencia radica en que el primero utiliza una clave más larga para contrarrestar el gran problema del cifrado César: el hecho de que una letra sólo puede ser codificada de una forma. Para resolver este problema, se utiliza una palabra clave en lugar de un carácter simple.
En primer lugar, se asocia cada letra con una cifra correspondiente.
Se codifica un texto con una palabra agregándole las letras de otra palabra (llamada palabra clave) a cada una de sus letras. La palabra clave se agrega indefinidamente en el texto que se va a cifrar, y después se agrega el código ASCII de cada una de las letras de la palabra clave al texto a cifrar.
A pesar de que el cifrado es mucho más sólido que el cifrado César, aún así se puede romper fácilmente. Cuando los mensajes son mucho más largos que la palabra clave, es posible identificar el largo de la palabra clave y utilizar, para cada secuencia de palabra clave, el método de cálculo de la frecuencia con que aparecen las letras, y determinar así los caracteres de las palabras claves una a la vez...
Para evitar este problema, una solución es utilizar una palabra clave que sea casi igual de larga como el texto, a fin de evitar un estudio estadístico del texto cifrado. Este tipo de sistema de cifrado se llama sistema one-time pad. El problema con este tipo de método es la longitud de la clave de cifrado (cuanto más largo el texto a ser cifrado, más grande deberá ser la clave) que impide su memorización e implica una probabilidad mucho más grande de errores en la clave (un solo error hace que el texto sea imposible de leer...).
Enigma
La necesidad de cifrar mensajes apareció a finales de la Primera Guerra Mundial (a pesar de que las técnicas de cifrado ya existían desde hacía tiempo).
Fue un alemán que vivía en su país, el Dr. Arthur Scherbius, quien desarrolló la máquina Enigma con propósitos comerciales. Esta máquina se utilizaba para codificar mensajes.
El modelo A de esta máquina (Chieffrienmaschinen Aktien Gesellschaft) se presentó en 1923, en el Congreso Postal Universal de Berna. Su precio (equivalente a 30.000 euros actuales) la convirtió en un gran fracaso. No obstante, la idea se popularizó y la Marina alemana retomó el proyecto en 1925 y lo confió a la división de cifrado del ministerio de guerra alemán (Chiffrierstelle). El modelo Enigma M3 fue adoptado por el Wehrmacht (ejército alemán) el 12 de enero de 1937.
Lo que los alemanes desconocían era que los servicios de contraespionaje franceses y polacos también habían estado trabajando, desde 1930, en un método de cifrado. Para esto, el Capitán Gustave Bertrand del servicio de inteligencia francés reclutó a Hans Thilo Schmidt (nombre clave, Asche), que trabajaba en ese momento para la Chiffrierstelle
Cuando la Segunda Guerra Mundial estalló en 1939, los aliados podían descifrar los mensajes Enigma. El 24 de julio de 1939, Marian Rejewski (jefe de Biuro Szyfrow - el servicio europeo más avanzado involucrado en la investigación de cifrado alemán) le dio un modelo de la máquina Enigma al Captain Bertrand y a Alistair Denniston, director de la división de cifrado de los servicios de Inteligencia británicos.
Luego la guerra se intensificó y los esfuerzos de cifrado se aceleraron. Entre los meses de octubre y junio de 1939, más de 4.000 mensajes cifrados fueron decodificados por los servicios secretos franceses. Estas operaciones recibieron un nombre: Operación Z para los franceses y Ultra Secret para los ingleses.
En agosto de 1939, los ingleses establecieron sus servicios de Código y Cifrado en Bletchley Park (a 80 km de Londres). No menos de 12.000 científicos y matemáticos ingleses, franceses y polacos trabajaron para romper el código Enigma. Entre estos matemáticos se encontraba uno de los inventores de la informática moderna: Alan Turing, quien supervisó todo este trabajo.
Los mensajes descifrados en Bletchley Park se dirigían a Hut 6 a través de una cinta transportadora y luego se enviaban a la estación para ser traducidos (2 estaciones por equipo):
* una para mensajes no urgentes
* otra para mensajes urgentes
Los mensajes traducidos procedentes de la Luftwaffe eran enviados a 3A, y aquellos mensajes que eran del ejército se enviaban a 3M (A=aviación; M=ejército). Las letras Z eran asignadas de acuerdo a la importancia de los mensajes (1Z: no muy importante; 5Z: extremadamente urgente). Luego, se resumía la información y se enviaba en 3 copias:
* una al SIS (Servicio de Inteligencia) de Broadway,
* otra al correspondiente departamento del ministerio o a Whitehall,
* y otra al general competente en este área.
Los ingleses fueron capaces de descifrar los mensajes codificados. Sin embargo, como la Kriegsmarine (Marina de guerra alemana) utilizaba diferentes métodos de cifrado, el descifrado resultaba difícil. Un importante logro fue la captura de un Enigma y sus instrucciones en el U-110. Esto hizo posible averiguar las posiciones de los submarinos y reducir el tonelaje hundido por los U-Boots (Puede ver la película U-571).
El 1º de febrero de 1942 entró en marcha Enigma M4. Durante once meses los aliados fueron incapaces de descifrar sus mensajes.
A lo largo de la guerra, se descifraron más de 18.000 mensajes al día, algo que hizo posible que las fuerzas aliadas descubrieran la intenciones de Alemania. El último mensaje cifrado se encontró en Noruega, firmado por el Almirante Doenitz: "El Führer está muerto. La batalla continúa". Los alemanes nunca sospecharon que su preciada máquina podía ser descifrada.

El funcionamiento de Enigma era particularmente simple: estaba equipado con un teclado para introducir mensajes, diferentes rotores para codificar y un panel de luz para los resultados.
Cuando se presionaba una tecla en el tablero, se encendía una letra en el panel de luz. Había 3 ruedas para codificar, llamadas "Scrambler-Rotors" (Rotores de codificación), que conectaban el tablero con el panel de luz.
Por ejemplo, con un sólo rotor, cuando se presionaB, la corriente pasa a través del rotor y A se enciende en el panel de luz.
Para hacer la máquina más compleja, cuando se presiona una tecla, el rotor giraba una tuerca. Después de presionar, se obtenía lo siguiente.

Dependiendo del modelo (M3 o M4), el sistema tenía 3 o 4 rotores. El segundo y tercer rotor se movían hacia una tuerca cuando el anterior había realizado una vuelta completa. Había también un panel de enchufes que mezclaba las letras del alfabeto y un proyector que enviaba la corriente hacia los rotores antes de mostrar los resultados.
En total, para las máquinas Enigma equipadas con 26 letras, había 17.576 combinaciones (26 x 26 x 26) relacionadas con la orientación de cada uno de los tres rotores, 6 combinaciones posibles relacionadas con el orden de los rotores y, por lo tanto, 100.391.791.500 conexiones posibles cuando se conectaban los seis pares de letras del panel de enchufes: 12 letras elegidas sobre 26 (¡26! /(12!14!)), luego 6 letras sobre 12 (¡12!/¡6!), y ya que algunos pares eran iguales (A/D y D/A), era necesario dividir por 26.
Por lo tanto, las máquinas Enigma podían cifrar un texto utilizando ¡1016 (17.576 * 6 * 100.391.791.500) combinaciones diferentes!
Los polacos inventaron "la Bomba" (posteriormente llamada "Ultra", que hizo posible descubrir los esquemas de Enigma. Sin embargo, durante el año 1938, era el propio operario quien establecía el esquema. Los polacos encontraron la solución a este problema: cada mensaje contenía palabras repetidas o bien palabras recurrentes (llamadas "hembras".
Esto fue una pista en lo que se refiere al eje (esquema básico del rotor). Para descubrir el esquema, los polacos pasaron a utilizar la "tabla" (hojas perforadas que correspondían a todas las permutaciones del eje). Estas hojas se apilaban una sobre otra de acuerdo a la posición de las "hembras".
El próximo paso era encontrar el punto en el que una serie de agujeros se alineaban desde arriba hacia abajo en la pila.
DES
El 15 de mayo de 1973, el NBS (National Bureau of Standars, en castellano: Agencia Nacional de Normalización) hoy en día denominada NIST (National Institute of Standars and Technology, en castellano: Instituto Nacional de Normalización y Tecnología), hizo un llamamiento en el Federal Register (el equivalente en España del Boletín Oficial del Estado) para la creación de un algoritmo de cifrado que cumpliera con los siguientes requisitos:
* ofrecer un alto nivel de seguridad relacionado con una pequeña clave utilizada para cifrado y descifrado
* ser comprensible
* no depender de la confidencialidad del algoritmo
* ser adaptable y económico
* ser eficaz y exportable
A finales de 1974, IBM propuso "Lucifer", que gracias a la NSA (National Standard Agency, en castellano: Agencia Nacional de Seguridad) fue modificado el 23 de noviembre de 1976, convirtiéndose en DES (Data Encryption Standard, en castellano: Estándar de Cifrado de Datos). El DES fue aprobado por el NBS en 1978. El DES fue estandarizado por el ANSI (American National Standard Institute, en castellano: Instituto Nacional Americano de Normalización) bajo el nombre de ANSI X3.92, mas conocido como DEA (Data Encrytion Algorithm, en castellano: Algoritmo de Cifrado de Datos).
Se trata de un sistema de cifrado simétrico por bloques de 64 bits, de los que 8 bits (un byte) se utilizan como control de paridad (para la verificación de la integridad de la clave). Cada uno de los bits de la clave de paridad (1 cada 8 bits) se utiliza para controlar uno de los bytes de la clave por paridad impar, es decir, que cada uno de los bits de paridad se ajusta para que tenga un número impar de "1" dentro del byte al que pertenece. Por lo tanto, la clave tiene una longitud "útil" de 56 bits, es decir, realmente sólo se utilizan 56 bits en el algoritmo.
El algoritmo se encarga de realizar combinaciones, sustituciones y permutaciones entre el texto a cifrar y la clave, asegurándose al mismo tiempo de que las operaciones puedan realizarse en ambas direcciones (para el descifrado). La combinación entre sustituciones y permutaciones se llama cifrado del producto.
La clave es codificada en 64 bits y se compone de 16 bloques de 4 bits, generalmente anotadas de k1 a k16. Dado que "solamente" 56 bits sirven para el cifrado, ¡puede haber hasta 256 (o 7.2*1016) claves diferentes!

Las partes principales del algoritmo son las siguientes:
* fraccionamiento del texto en bloques de 64 bits (8 bytes),
* permutación inicial de los bloques,
* partición de los bloques en dos partes: izquierda y derecha, denominadas I y D respectivamente,
* fases de permutación y de sustitución repetidas 16 veces (denominadas rondas),
* reconexión de las partes izquierda y derecha, seguida de la permutación inicial inversa.
En 1990, Eli Biham y Adi Shamir desarrollaron el criptoanálisis diferencial, que buscaba pares de textos planos y pares de textos cifrados. Este método funciona con un máximo de 15 rondas, mientras que en el algoritmo presentado anteriormente admite 16 rondas.
Por otro lado, aunque una clave de 56 bits ofrece una enorme cantidad de posibilidades, muchos procesadores pueden calcular más de 106 claves por segundo. Con lo que, cuando se utilizan al mismo tiempo una gran cantidad de máquinas, es posible que un gran organismo (un Estado, por ejemplo) encuentre la clave correcta...
Una solución a corto plazo requiere que se encadenen tres cifrados DES mediante dos claves de 56 bits (esto equivale a una clave de 112 bits). Este proceso se llama Triple DES, denominado TDES (algunas veces 3DES o 3-DES).
El TDES permite aumentar de manera significativa la seguridad del DES, pero posee la desventaja de requerir más recursos para el cifrado y descifrado.
Por lo general, se reconocen diversos tipos de cifrado triple DES:
* DES-EEE3: Cifrado triple DES con 3 claves diferentes,
* DES-EDE3: una clave diferente para cada una de las operaciones de triple DES (cifrado, descifrado, cifrado),
* DES-EEE2 y DES-EDE2: una clave diferente para la segunda operación (descifrado).
En 1997, elNIST lanzó una nueva convocatoria para que desarrollar el AES (Advanced Encryption Standard, en castellano: Estándar de Cifrado Avanzado), un algoritmo de cifrado cuyo objetivo era reemplazar al DES.
El sistema de cifrado DES se actualizaba cada 5 años. En el año 2000, durante su última revisión y después de un proceso de evaluación que duró 3 años, el NIST seleccionó como nuevo estándar un algoritmo diseñado conjuntamente por dos candidatos belgas, el Sr. Vincent Rijmen y el Sr. Joan Daemen. El nuevo algoritmo, llamado por sus inventores RIJNDAEL reemplazará, de ahora en adelante, al DES.
RSA

El primer algoritmo de cifrado de clave pública (cifrado asimétrico) fue desarrollado por R. Merckle y M. Hellman en 1977. Gracias al trabajo de los famosos analistas criptográficos Shamir, Zippel y Herlestman, se quedó obsoleto rápidamente.
En 1978 apareció el algoritmo de clave pública creado por Rivest, Shamir y Adelman (de aquí el nombre RSA). Este algoritmo todavía se usaba en 2002 para proteger los códigos de las armas nucleares de Estados Unidos y Rusia.
El funcionamiento del criptosistema RSA se basa en la dificultad para factorizar grandes números enteros.
Digamos que p y q son dos números primos, y d un número entero tal que d se factoriza en (p-1)*(q-1)). De esta manera, el terceto (p,q,d) representa la clave privada.
Así, la clave pública es un doblete (n, e) creado con la clave privada a través de las siguientes transformaciones:
n = p * q e = 1/d mod((p-1)(q-1))
Digamos que M es el mensaje a enviar. El mensaje M necesita factorizarse en la clave n. El descifrado se basa en el teorema de Euler, que estipula que si M y n se factorizan, entonces:
Mphi(n) = 1 mod(n)
Phi(n) será la función totient y, en este ejemplo, tendría un valor de (p-1)*(q-1).
Por lo tanto, es necesario que M no sea un múltiplo de p, q o n. Una solución sería dividir el mensaje M en bits Mi de manera que la cantidad de números en cada Mi sea estrictamente inferior a la de p y q. Esto supone entonces que p y q son grandes, que es lo que sucede en la práctica ya que el principio de RSA yace en la dificultad de encontrar p y q en un período de tiempo razonable cuando se conoce n; esto asume que p y q son grandes.
Supongamos que un usuario (llamado Bob) quiere enviar un mensaje M a una persona (llamémosla Alice). Simplemente necesita obtener la clave pública de Alice (n,e) y luego calcular el mensaje cifrado c:
c = Me mod(n)
Luego, Bob envía el mensaje c a Alice, quien es capaz de descifrarlo con su clave privada (p,q,d):
M = Me*d mod(n) = cd mod(n)
PGP - Pretty Good Privacy

PGP (Pretty Good Privacy) es un criptosistema (sistema de cifrado) inventado por Philip Zimmermann, un analista de sistemas. Desde 1984 hasta 1991, Philip Zimmermann trabajó en un programa que permitiera ejecutar el algoritmo RSA en los PC (PGP).
Sin embargo, dado que estaba utilizando RSA sin la autorización de sus autores, su investigación le costó 3 años de juicios, cuyo resultado fue que, desde 1993, el programa se vendiera por unos US$150.
Es extremadamente rápido y fiable, lo que lo hace casi imposible de criptoanalizar.
PGP es un sistema de criptografía híbrido que usa una combinación de funciones tomadas de la criptografía de clave pública y de la criptografía simétrica.
Cuando un usuario cifra un texto con PGP, los datos primero se comprimen. Esta compresión de datos permite reducir el tiempo de transmisión a través del canal de comunicación, ahorra espacio en disco y, lo más importante, aumenta la seguridad criptográfica.
La mayoría de los criptoanalistas sacan provecho de los modelos encontrados en formato de sólo texto para descubrir el cifrado. La compresión reduce estos modelos de sólo texto y mejora considerablemente su resistencia a los criptoanalistas.
El cifrado se realiza, principalmente, en dos fases:
* PGP crea una clave secreta IDEA en forma aleatoria y cifra los datos con esta clave
* El PGP cifra la clave secreta IDEA y la envía usando la clave pública RSA del receptor.
El descifrado también se produce en dos fases:
* PGP descifra la clave secreta IDEA usando la clave privada RSA.
* PGP descifra los datos con la clave secreta IDEA obtenida previamente.
El método de cifrado combina la fácil utilización del cifrado de la clave pública con la velocidad del cifrado convencional. El cifrado convencional es aproximadamente 1000 veces más rápido que los algoritmos de cifrado de clave pública. El cifrado de clave pública resuelve el problema de la distribución de la clave. Combinados, estos dos métodos mejoran el rendimiento y administración de las claves sin poner el peligro la seguridad.
La PGP ofrece las siguientes funciones:
* Firmas digitales y verificación de la integridad de los mensajes: función que se basa en el uso simultáneo de la función hash (MD5) y del sistema RSA. La función MD5 condensa el mensaje y produce un resultado de 128 bits que después se cifra, gracias al algoritmo RSA, por la clave privada del emisor.
* Cifrado de archivos locales: función que utiliza el algoritmo IDEA.
* Generación de claves públicas o privadas: cada usuario cifra su mensaje mediante las claves privadas IDEA. La transferencia de las claves electrónicas IDEA utiliza el sistema RSA. Por lo tanto, PGP ofrece dispositivos para la generación de claves adaptados al sistema. El tamaño de las claves RSA se propone de acuerdo con varios niveles de seguridad: 512, 768, 1024 ó 1280 bits.
* Administración de claves: función responsable de la distribución de la clave pública del usuario a los remitentes que desean enviarle mensajes cifrados.
* Certificación de claves: esta función permite agregar un sello digital que garantice la autenticidad de las claves públicas. Es una característica original de PGP, que basa su confianza en una noción de proximidad social en vez de en una entidad de certificación central.
* Revocación, desactivación y registro de claves: función que permite producir certificados de revocación.
Protocolos seguros
Secure Sockets Layers (SSL)

SSL (Secure Socket Layers) es un proceso que administra la seguridad de las transacciones que se realizan a través de Internet. El estándar SSL fue desarrollado por Netscape, junto con Mastercard, Bank of America, MCI y Silicon Graphics. Se basa en un proceso de cifrado de clave pública que garantiza la seguridad de los datos que se envían a través de Internet. Su principio consiste en el establecimiento de un canal de comunicación seguro (cifrado) entre dos equipos (el cliente y el servidor) después de una fase de autenticación.
El sistema SSL es independiente del protocolo utilizado; esto significa que puede asegurar transacciones realizadas en la Web a través del protocolo HTTP y también conexiones a través de los protocolos FTP, POP e IMAP. SSL actúa como una capa adicional que permite garantizar la seguridad de los datos y que se ubica entre la capa de la aplicación y la capa de transporte ( por ejemplo, el protocolo TCP).
De esta forma, SSL es transparente para el usuario (es decir, el usuario puede no conocer que está usando SSL).
Actualmente, casi todos los navegadores soportan el protocolo SSL.
A mediados de 2001, la patente SSL ,que hasta ese momento había pertenecido a Netscape, fue adquirida por IETF (Internet Engineering Task Force) y adoptó el nombre de TLS (Transport Layer Security).

La seguridad de las transacciones a través de SSL 2.0 se basa en el intercambio de claves entre un cliente y un servidor. Una transacción segura SSL se realiza de acuerdo al siguiente modelo:
* Primero, el cliente se conecta al servidor comercial protegido por SSL y pide la autenticación. El cliente también envía la lista de los criptosistemas que soporta, clasificada en orden descendente por la longitud de la clave.
* El servidor que recibe la solicitud envía un certificado al cliente que contiene la clave pública del servidor firmado por una entidad de certificación (CA), y también el nombre del criptosistema que está más alto en la lista de compatibilidades (la longitud de la clave de cifrado - 40 o 128 bits - será la del criptosistema compartido que tiene el tamaño de clave de mayor longitud).
* El cliente verifica la validez del certificado (y por consiguiente, la autenticidad del vendedor), luego crea una clave secreta al azar (más precisamente un supuesto bloque aleatorio), cifra esta clave con la clave pública del servidor y envía el resultado del servidor (clave de sesión).
* El servidor es capaz de descifrar la clave de sesión con su clave privada. De esta manera, hay dos entidades que comparten una clave que sólo ellos conocen. Las transacciones restantes pueden realizarse utilizando la clave de sesión, garantizando la integridad y la confidencialidad de los datos que se intercambian.
SSH
Internet hace posible realizar una gran variedad de operaciones remotas, en especial, administrar un servidor y transferir archivos. El protocolo Telnet y los comandos BSD R (rhs, rlogin y rexec) que permiten que los usuarios realicen estas tareas, tienen la gran desventaja de transmitir el intercambio de información en texto plano en la red, en particular, el nombre de acceso y la contraseña para acceder a equipos remotos. Tal es así que un hacker que se encuentre ubicado en una red entre el usuario y un equipo remoto puede controlar el tráfico, es decir, utilizar una herramienta llamada rastreador que puede capturar paquetes que circulan en la red y obtener el nombre de acceso y la contraseña para acceder al equipo remoto.
Ya que es imposible controlar todas las infraestructuras físicas ubicadas entre el usuario y el equipo remoto (al ser Internet una red abierta por definición), la única solución es confiar en la seguridad a un nivel lógico (al nivel de los datos).
El protocolo SSH (Secure Shell) es la respuesta a este problema ya que posibilita a sus usuarios (o servicios TCP/IP) acceder a un equipo a través de una comunicación cifrada (llamada túnel).
Es un protocolo que hace posible que un cliente (un usuario o incluso un equipo) abra una sesión interactiva en una máquina remota (servidor) para enviar comandos o archivos a través de un canal seguro.
* Los datos que circulan entre el cliente y el servidor están cifrados y esto garantiza su confidencialidad (nadie más que el servidor y el cliente pueden leer la información que se envía a través de la red). Como resultado, no es posible controlar la red con un rastreador.
* El cliente y el servidor se autentifican uno a otro para asegurarse que las dos máquinas que se comunican son, de hecho, aquellas que las partes creen que son. El hacker ya no puede adoptar la identidad del cliente o de su servidor (falsificación).
SSH es un protocolo, es decir, un método estándar que permite a los equipos establecer una conexión segura. Como tal, existe una variedad de implementaciones de clientes y servidores SSH. Algunas requieren el pago de una cuota, en tanto que otras son gratuitas o de código abierto: puede encontrar algunos clientes SSH en la sección de descargas de commentcamarche.
Una conexión SSH se establece en varias fases:
* En primera instancia, se determina la identidad entre el servidor y el cliente para establecer un canal seguro (capa segura de transporte).
* En segunda instancia, el cliente inicia sesión en el servidor.
El establecimiento de una capa segura de transporte comienza con la fase de negociación entre el cliente y el servidor para ponerse de acuerdo en los métodos de cifrado que quieren utilizar.
Después, para establecer una conexión segura, el servidor envía al cliente su clave de host. El cliente genera una clave de sesión de 256 bits que cifra con la clave pública del servidor y luego la envía al servidor junto con el algoritmo utilizado. El servidor descifra la clave de sesión con su clave privada y envía al cliente un mensaje de confirmación cifrado con la clave se sesión. Después de esto, las comunicaciones restantes se cifran gracias a un algoritmo de cifrado simétrico, mediante la clave de sesión compartida entre el cliente y el servidor.
HTTP Seguro
S-HTTP (Secure HTTP) es un proceso de transacciones HTTP (HyperText Transfer Protocol; en castellano, Protocolo de Transferencia de Hipertexto) que se basa en el perfeccionamiento del protocolo HTTP creado en 1994 por EIT (Enterprise Integration Technologies). Este proceso hace posible establecer una conexión segura para transacciones de comercio electrónico mediante mensajes cifrados, y garantizar a los clientes la confidencialidad de los números de tarjetas bancarias y su información personal. La compañía Terisa Systems desarrolló una de las implementaciones de SHTTP para incluir una conexión segura entre los servidores y los clientes Web.
A diferencia de SSL (Secure Socket Layer) que funciona transportando capas, SHTTP garantiza la seguridad del mensaje mediante el protocolo HTTP, que marca individualmente los documentos HTML con certificados. En tanto que SSL es independiente de la aplicación utilizada y puede cifrar todo tipo de comunicación, SHTTP está íntimamente relacionado con el protocolo HTTP y cifra mensajes de forma individual.
Los mensajes SHTTP se basan en tres componentes:
* el mensaje HTTP
* las preferencias criptográficas del remitente
* las preferencias del destinatario
Así, para descifrar un mensaje SHTTP, el destinatario analiza los encabezados del mensaje para determinar el tipo de método que se utilizó para cifrar el mensaje. Luego, basándose en sus preferencias criptográficas presentes y pasadas, y en las preferencias criptográficas pasadas del remitente, el destinatario puede descifrar el mensaje.
Cuando SSL y SHTTP competían, muchas personas se dieron entonces cuenta de que estos dos protocolos de seguridad eran complementarios, ya que no trabajaban en el mismo nivel. El SSL garantiza una conexión segura a Internet, mientras que el SHTTP garantiza intercambios HTTP seguros.
Como resultado, la compañía Terisa Systems, especializada en protección de red y formada por RSA Data Security y EIT, desarrolló un kit de programación que permitió a los administradores desarrollar servidores Web implementando los protocolos SSL y SHTTP (SecureWeb Server Toolkit) así como clientes Web capaces de soportar estos protocolos (SecureWeb Client Toolkit).
SET

SET (Secure Electronic Transaction; en castellano, Transacción Electrónica Segura) es un protocolo desarrollado por Visa y Mastercard y que utiliza el estándar SSL (Secure Socket Layer).
SET se basa en el uso de una firma electrónica del comprador y una transacción que involucra, no sólo al comprador y al vendedor, sino también a sus respectivos bancos.
Cuando se realiza una transacción segura por medio de SET, los datos del cliente son enviados al servidor del vendedor, pero dicho vendedor sólo recibe la orden. Los números de la tarjeta del banco se envían directamente al banco del vendedor, quien podrá leer los detalles de la cuenta bancaria del comprador y contactar con el banco para verificarlos en tiempo real.
S/MIME
El S/MIME (Secure MIME o Secure Multipurpose Mail Extension) es un proceso de seguridad utilizado para el intercambio de correo electrónico que hace posible garantizar la confidencialidad y el reconocimiento de autoría de los mensajes electrónicos.
El S-MIME está basado en el estándar MIME, cuyo objetivo es permitir a los usuarios adjuntar a sus mensajes electrónicos archivos diferentes a los archivos de texto ASCII (American National Standard Code for Information Interchange). Por lo tanto, el estándar MIME hace posible que podamos adjuntar todo tipo de archivos a nuestros correos electrónicos.
S-MIME fue desarrollado originalmente por la compañía RSA Data Security. Ratificado en julio de 1999 por el IETF (Internet Engineering Task Force), S-MIME se convirtió en un estándar cuyas especificaciones se incluyen en las RFC (Request for Comments, Solicitudes de Comentarios), desde la 2630 a la 2633.
El estándar S-MIME se basa en el principio de cifrado de clave pública. Por lo tanto, S-MIME permit

