Ir al contenido principal

Entradas

Mostrando las entradas etiquetadas como Criptografía

Criptografía (CCXCIV): Intercambio de clave de Diffie-Hellman en curvas elípticas (ECDH)

Ya expliqué en este post en qué consiste el protocolo de intercambio de clave de Diffie-Hellman y cómo se lleva a efecto entre dos usuarios. Además, también decía que  este protocolo criptográfico   se utiliza generalmente para el intercambio seguro de una clave, que será empleada en una sesión para el cifrado y descifrado utilizando un criptosistema de clave simétrica o secreta , entre dos  interlocutores a través de un canal inseguro , c omo puede ser Internet, y, por tanto, su objetivo  es salvaguardar  el secreto de la clave de sesión si las comunicaciones entre ambos son interceptadas por un tercero . Pues bien, en esta entrada voy a explicar cómo se lleva a cabo  el protocolo de Diffie-Hellmann en Curvas Elíptic as ( ' Elliptic curve Diffie–Hellman' o   'ECDH' por sus siglas en inglés) . Sean A (Alicia) y B (Bernardo) los dos interlocutores que desean intercambiar una clave de sesión . A y B  actuarían de la siguiente manera: 1.- ...

Criptografía (CCXCIII): Multiplicación escalar en una curva elíptica sobre un cuerpo finito ℤp en python

Continúo poniendo scripts de programación en python para automatizar tareas que tengan relación con la  criptografía . En el post anterior puse un script en python para implementar  la suma de dos puntos de una   curva elíptica   definida sobre un   cuerpo finito   ℤ p , y en éste  incluyo uno  que implementa la multiplicación escalar de un punto de una   curva elíptica   definida sobre el mismo tipo de cuerpo ; la operación que constituye la base de la Criptografía de Curva Elíptica (ECC) . E l   pseudocódigo  para implementar la multiplicación escalar es: -  Script python para implementar la multiplicación escalar de un punto de una curva elíptica definida sobre un cuerpo finito  ℤ p : El  script  es el siguiente: #!/usr/bin/env python # -*- coding: utf-8 -*- # MULTIPLICACIÓN DE UN PUNTO DE UNA CURVA ELÍPTICA (CE) POR UN ESCALAR: # # http://mikelgarcialarragan.blogspot.com/ import sympy def suma_puntos...

Criptografía (CCXCII): Suma de puntos de una curva elíptica sobre un cuerpo finito ℤp 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 que implementa la suma de dos puntos de una curva elíptica definida sobre un cuerpo finito   ℤ p . Ya expliqué en   este post  como se podía obtener el punto resultado de sumar dos puntos de una  curva elíptica  definida sobre los números reales mediante el llamado método de la cuerda y la tangente, y en esta entrada indico el algoritmo para hacerlo con las fórmulas matemáticas oportunas en una  curva elíptica  definida sobre un  cuerpo finito   ℤ p . E l   pseudocódigo  para implementar dicha suma es: -  Script python para implementar la suma de dos puntos de una curva elíptica definida sobre un cuerpo finito  ℤ p : El  script  es el siguiente: #!/usr/bin/env python # -*- coding: utf-8 -*- # SUMA DE DOS PUNTOS DE UNA CURVA ELÍPTICA (CE): # ...

Criptografía (CCXCI): Curva elíptica sobre cuerpo finito ℤp en python

Otro post con un script 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  obtener los puntos de una  curva elíptica  definida sobre un  cuerpo finito  del tipo  ℤ p y para obtener la representación gráfica de ambas curvas,  la definida sobre los número reales y la definida sobre el cuero finito  ℤ p . En el post anterior puse como ejemplo de lo anterior la curva sobre números reales que sirve para ilustrar este post: Y decía que  al definir la  curva elíptica   sobre un   cuerpo finito   se obtiene algo  que  se asemeja poco o nada a la representación gráfica de la curva sobre números reales, más bien  tiene el aspecto de un conjunto de puntos aleatorios , pero que todavía se puede observar la simetría . El  script  es el siguiente: -  Script python para la obtención y representación de los p...

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