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.- Se ponen de acuerdo para es
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(p,a,x1,y1,x2,y2): if x1 == -1 and y1 == -1: x3, y3 = x2, y2