Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 1525|Respuesta: 3

Algoritmo de cifrado Curve25519

[Copiar enlace]
Publicado el 2025-2-12 17:05:02 | | | |
urve25519 es el nivel más alto de función Diffie-Hellman disponible para una amplia gama de escenarios, diseñado por el profesor Daniel J. Bernstein. En criptografía, Curve25519 es una curva elíptica que proporciona seguridad de 128 bits y está diseñada para usarse con el esquema de negociación de claves de curvas elípticas Diffie-Hellman (ECDH). Es una de las curvas ECC más rápidas y no está cubierta por ninguna patente conocida.

Dada la clave de 32 bytes del usuario, curve25519 calcula la clave pública de 32 bytes del usuario. Dada la clave pública de 32 bytes de ese usuario y la de 32 bytes de otro, curve25519 calcula una clave compartida de 32 bytes para que ambos usuarios la utilicen. Este secreto puede usarse para autenticar y cifrar información para ambos usuarios.

2. Descargar y compilar Curve25519

La biblioteca curve25519 calcula la función curve25519 a una velocidad muy alta. La biblioteca tiene una amplia gama de aplicaciones. Puedes y debes aplicarlo en tu propio programa en lugar de enlazar a una biblioteca compartida; El código compilado es de unos 16KB, dependiendo de la CPU.

Descargar y compilar

Descargar

compilar


3. Usa Curve25519

Para cualquier programa en C que use curve25519, modifica el programa para incluir curve25519.h y modifica el makefile para vincular el programa con curve25519.a y indicar que el programa depende de curve25519.a y curve25519.h.

Claves de cálculo

Internamente, para generar una clave curva25519 de 32 bytes, primero genera un secreto de 32 bytes aleatorios a partir de una fuente de seguridad criptográfica: mysecret[0], mysecret[1], ..., mysecret[31]. Luego haz lo siguiente:
mysecret[0] &= 248;
misecreto[31] &= 127;
mysecret[31] |= 64;
Genera una clave Curve25519 de 32 bytes llamada mysecret[0], mysecret[1], ..., mysecret[31].

En el futuro, la versión de la biblioteca soportará una función de compresión curve25519_ que comprime 128 bytes de hashing en 32 bytes, añadiendo cierta protección contra generadores de números aleatorios insuficientes; Una función de curve25519_ clamp que convierte 32 bytes en una clave; y una combinación más fácil de usar de curve25519_ funciones de generación de claves, que convierten directamente 128 bytes en claves.

Claves públicas de cálculo

Para generar una clave pública de 32 bytes que coincida con la clave de 32 bytes mypublic[0], mypublic[1], ..., mypublic[31], llama a la función
curve25519(mypublic, mysecret, basepoint);
donde el punto base constante es:

const punto base de caracteres sin signo[32] = {9};
Las futuras versiones de la biblioteca permitirán funciones públicas curve25519_ más concisas.

Generar una clave compartida

Dado el llamado de otro usuario de Curve25519 clave pública hispublic[0], hispublic[1], ..., hispublic[31],

curve25519(compartido, mi secreto, su público);
Generar claves compartidas de 32 bytes compartidas[0], compartidas[1], ..., compartidas[31]. Otra persona puede generar la misma clave compartida basándose en su propia clave privada y en la tuya pública.
Entonces ambos podéis hacer hash de esta clave compartida y usar el resultado como clave, por ejemplo para Poly1305-AES.
Las futuras versiones de la biblioteca soportarán una función de extensión curve25519_ que hashee directamente una clave de 32 bytes para generar 128 bytes como clave, y es la más fácil de usar, una combinación curve25519_ función compartida.

4. Referencia

[Ed25519 y Curve25519 explicados]El inicio de sesión del hipervínculo es visible.
[Cifrado y descifrado de Curve25519 y uso ED25519 de firmas]El inicio de sesión del hipervínculo es visible.
[ED25519]El inicio de sesión del hipervínculo es visible.
[Implementación de ED25519 Android]El inicio de sesión del hipervínculo es visible.
[[ED25519 Implementación en C]El inicio de sesión del hipervínculo es visible.
[ed25519 Implementación en Java]El inicio de sesión del hipervínculo es visible.

Texto original en:El inicio de sesión del hipervínculo es visible.




Anterior:Plugin de Asistencia para el Desarrollo de Código VS Angular Serie 18 (Treinta y Uno)
Próximo:Superordenador personal de IA del Proyecto NVIDIA DIGITS
 Propietario| Publicado el 12-02-2025 17:07:50 |
Código de implementación .NET/C#:


Prueba




Curve25519.cs (31 KB, Número de descargas: 1, 售价: 10 粒MB)
Publicado el 13-2-2025 16:26:18 |
Tiene buena pinta, apóyalo.
Publicado el 14-2-2025 09:51:22 |
Tiene buena pinta, apóyalo
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com