Ir al contenido principal

Entradas

Mostrando las entradas etiquetadas como Firma digital

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 (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...

Criptografía (CCLXXXIV): el algoritmo ElGamal

El algoritmo ElGamal , un algoritmo de cifrado asimétrico  que debe su nombre al criptógrafo egipcio  Taher Elgamal que lo describió en 1984, se basa en el mismo principio que en el que se fundamenta el intercambio de clave de Diffie-Hellman  (ver este post donde explico este protocolo criptográfico ). Como en todo criptosistema de clave pública un usuario dispone de dos claves :  una pública , que debe estar en posesión de cualquier persona que pretenda enviarle un mensaje cifrado,  y otra privada , que el usuario utilizará para descifrar los mensajes que le envíen y que sólo él posee. Es decir,  el emisor cifrará el mensaje con la clave pública del receptor y sólo éste podrá descifrarlo utilizando su clave privada . Pues bien, estableciendo una analogía entre este algoritmo de cifrado y el citado protocolo de intercambio de clave con dos intervinientes en la comunicación, que comparten una clave de sesión ( 'k' ), el secreto compartido, que viene dada ...

Criptografía (CCLXXIX): Descifrado RSA y verificación firma digital en python

En el post anterior puse un script  en python para  implementar la firma digital y el cifrado con el algoritmo   RSA , y en éste  incluyo otro  script en python para  implementar el descifrado con el mismo algoritmo y la verificación de la firma digital , e s decir, para las operaciones  que se realizan en la comunicación en el lado del receptor. Como se ve en la figura anterior, la clave de sesión (la clave con la que se ha cifrado el texto en claro), se descifra utilizando la clave privada del receptor  ( criptografía asimétrica ) , que es el único que la posee y, por tanto, el único que puede descifrarla, y  posteriormente se descifra el criptograma o texto en claro cifrado mediante la clave de sesión ( criptografía simétrica ). Tal y como indique en el citado post , este esquema de cifrado, además de para mantener el secreto de la comunicación ( confidencialidad ), sirve  para garantizar al receptor que el emisor  es realmente ...