Red de conocimiento informático - Aprendizaje de programación - Algoritmo de cifrado de curva elíptica ECC (I)

Algoritmo de cifrado de curva elíptica ECC (I)

Dirección BTC: 1FmWXNJT3jVKaHBQs2gAs6PLGVWx1zPPHf

Dirección Ethernet: 0xd91c747b4a76B8013Aa336Cbc52FD95a7a9BD3D9

Con la popularidad de blockchain, el algoritmo de curva elíptica también se ha convertido en un tema candente en criptografía. La criptografía de curva elíptica se utiliza en Bitcoin para generar direcciones.

El método de representación general de la curva elíptica:

La curva elíptica no es en realidad una elipse, pero como se muestra en la siguiente figura:

Bitcoin usa una elipse Una curva elíptica especial: secp256k1, su fórmula es la siguiente:

¿Cómo se cifra esto?

En el siglo XIX, un joven noruego, Niels Abel, abstrajo el grupo aditivo (también conocido como grupo abeliano o grupo conmutativo) de las operaciones algebraicas ordinarias, realizando la aritmética de números reales y elipses. curvas está unificada en el grupo de aditivos. ¿qué significa eso?

¡La suma, resta, multiplicación y división que usamos con números reales también se puede usar con curvas elípticas!

Sí, las curvas elípticas también pueden realizar operaciones de suma y multiplicación.

Un grupo en matemáticas es un conjunto para el que definimos una operación binaria, a la que llamamos "suma" y representada por el símbolo +. Suponiendo que el grupo que queremos operar está representado por "...", entonces la suma debe tener las siguientes cuatro propiedades:

Si sumamos una quinta condición:

Ley conmutativa: a + b = b + a

Entonces este grupo se llama grupo infinito. Según esta definición, el conjunto de los números enteros es un grupo infinito.

Por cierto, Galois y Abel desarrollaron de forma independiente la teoría de grupos y son conocidos como los fundadores de la teoría de grupos moderna, pero ambos genios murieron jóvenes.

Como se mencionó anteriormente, podemos definir un grupo basado en curvas elípticas. Específicamente:

En la curva elíptica, hay dos puntos disjuntos y asimétricos A y B. Los dos puntos intersecan la curva en el punto X. El punto de simetría entre X y el eje x es R, y R es El resultado de A+B es la suma de curvas elípticas. Ésta es la definición aditiva de curva elíptica.

Debido a que la ecuación de una curva elíptica tiene un término, la curva elíptica debe ser simétrica con respecto al eje x

Curva:,

Coordenadas: A = (2,5), B = (3,7)

A y B están exactamente en la curva, porque las coordenadas satisfacen la ecuación de la curva

Cómo encontrar el tercer punto de intersección ?

Encuentra la ecuación de la recta que pasa por dos puntos A y B.

Supongamos que la ecuación de la recta es: , m es la pendiente de la recta: , m es la pendiente de la recta

Obtener además c=1

Ecuaciones simultáneas:

X (-1, - 1) El método de sustitución de la coordenada x -1 simplemente satisface la ecuación, por lo que los dos puntos A y B en la línea recta se cruzan con la curva en X (-1, -1). ,-1), entonces el punto de simetría del punto X con respecto al eje x es R(-1,1), es decir, A(2,5)+B(3,5)=R(-1,1) .

Según la fórmula de la LEY DE GRUPO de la curva elíptica, podemos calcular fácilmente el punto R.

Ecuación de curva:

Cuando A=(x1,y1), B=(x2,y2), R=A+B=(x3,y3), x1≠x2,

, m es la pendiente

x3= ​​​​

y3=m(x1-x3)-y1

A=( 2,5 ), B=(3,7) , R=(),1) es la pendiente. -1,1) es consistente con la fórmula anterior.

¿La suma de curvas elípticas obedece la ley conmutativa?

Calcule (A+B) primero, luego calcule A+B+C

Calcule B+C primero, luego calcule B+C+A

Ver Imagen, el resultado es el mismo.

¿Cómo se calcula A+A?

Cuando dos puntos coinciden, es imposible trazar una "línea recta que pase por los dos puntos", en este caso,

Dibujar una tangente a la curva elíptica que pasa por el punto A y. se cruzan en el punto X, el punto de simetría del punto X en el eje x es 2A. Este cálculo se llama "la operación de duplicación en la curva elíptica".

La siguiente figura muestra la operación de multiplicación de curva elíptica:

Introduciremos los problemas de logaritmo discreto de curva elíptica y de campo finito en "Algoritmo de cifrado de curva elíptica ECC (2)", y el curva elíptica El cifrado es la aplicación del problema del logaritmo discreto.

Referencias:

/blockchain-101-foundational-math

/blockchain-101-elliptic-curve-cryptography

https : //andrea.corbellini.name/2015/05/17/elliptic-curve-cryptography-a-gentle-introduction/