Ir al contenido principal

Entradas

Criptografía (CCXC): Criptografía de curva elíptica (ECC)

Tal y como nos cuenta wikipedia, la Criptografía de Curva Elíptica (ECC, por las siglas e n inglés de ' Elliptic curve cryptography ') es una v ariante  de la  criptografía asimétrica o de clave pública basada en las  matemáticas  de las  curvas elípticas  y se emplea para implementar algunos de los criptosistemas de este tipo ya existentes. Antes que nada, decir que sigo empeñado en compartir lo que voy aprendiendo sobre criptología de la forma más comprensible que pueda y esperando no equivocarme demasiado al contarlo, pero en este caso no sé si voy a ser capaz; la criptografía moderna tiene una profunda base matemática que supera con creces mi capacidad y talento (tal y como suelo decir, poco en ambos casos). Por tanto, fruto de ese empeño y de mi propia incapacidad, voy a evitar entrar en mayores profundidades matemáticas y a centrarme en lo que he entendido sobre el uso de estas curvas en la   criptografía , pero en este caso es inevitable un ...

Criptografía (CCLXXXVIII): Descifrado y verificación firma digital ElGamal en python

En un  post anterior  puse un script  en python para  implementar la firma digital y el cifrado  con el  esquema de firma digital   y el   esquema de cifrado   ElGamal, respectivamente , y en éste  incluyo otro  script en python para  implementar el descifrado y la verificación de la firma digital  con esos mismos esquemas, e s decir, para las operaciones  que se realizan en la comunicación en el lado del receptor. Antes  de ver el script, creo que conviene recordar cómo se realizan dichas operaciones , para lo que recomiendo leer  este post  en el que expliqué este asunto referido al caso de RSA , pero que es lo mismo para el caso de aplicar los esquemas de  firma digital   y de   cifrado   ElGamal. El script que pongo a continuación implementa las operaciones  de descifrado de la clave de sesión   mediante el esquema de cifrado ElGamal   y el descifrado del texto en ...

Criptografía (CCLXXXIX): Ataque a la firma digital ElGamal

  Tal y como decía  en este post : "El eslabón más débil de la cadena de seguridad (y la criptografía no es una excepción) lo constituimos las personas". Es decir,  podemos tener un algoritmo criptográfico muy robusto  (muy seguro conceptualmente), como es el caso del esquema de firma digital Elgamal ,  pero si las personas  que lo administramos y/o utilizamos  no hacemos un uso adecuado del mismo éste podría ser "roto" con relativa facilidad . Ejemplos de lo anterior, pero hay multitud de ellos, son la mala utilización de la máquina enigma durante la WWII o la elección no adecuada de los dos números primos factores del módulo en RSA  o, incluso algo bastante más reciente y que tiene mucho que ver con lo que voy a contar en esta entrada, cuando en 2010 un grupo de hackers conocido como  'fail0verflow' se hizo con la clave privada usada por Sony para firmar el software de la consola PlayStation 3 aprovechándose de la mala utilización por pa...

Criptografía (CCLXXXVII): Firma digital y cifrado ElGamal en python

Continúo poniendo scripts de programación en python para automatizar tareas que tengan relación con la  criptografía . En este post incluyo un  script en python para  implementar la firma digital y el cifrado con el  esquema de firma digital   y el   esquema de cifrado ElGamal . Antes de poner el script, recordar que en  este post  referido a  RSA , decía que   l os esquemas modernos de cifrado utilizan conjuntamente los conceptos de   clave pública   y   clave privada , es decir, el mensaje o archivo completo se cifra con un algoritmo de  clave privada o simétrica  (por ejemplo,  AES ) y luego la clave empleada en ese cifrado (clave de sesión), a su vez, se cifra con un algoritmo de  clave pública o asimétrica  (por ejemplo,  RSA ): Por tanto, como se ve en la figura anterior, el texto en claro se cifra mediante una clave de sesión, un número correspondiente a cada mensaje particular, y la c...

Criptografía (CCLXXXVI): Esquema de firma digital ElGamal

En un post anterior traté sobre el algoritmo de cifrado ElGamal y en esta entrada voy a explicar el esquema de firma digital ElGamal , propuesto también por el criptógrafo egipcio Taher Elgamal en 1984. Como en el caso de RSA, ya expliqué en este post cómo se firma y verifica la firma en ese criptosistema , el emisor del mensaje firma un hash del mensaje con su clave privada y el receptor verifica la firma utilizando la clave pública del emisor , con lo que se pretende garantizar tanto la autenticidad del mensaje como su integridad,  es decir, tanto que la persona que lo ha enviado es el emisor legítimo (es quien dice ser) como que el mensaje no ha sido interceptado y alterado por un tercero. Los protocolos de firma digital y verificación de la firma digital utilizando este esquema de firma son los siguientes : Protocolo de firma digital : 1.- Para firmar digitalmente un mensaje ( ' M' )  el emisor obtiene un resumen del mismo mediante una función hash , h(M) ; de t...