2011-07-03 34 views
5

Me gustaría implementar «mi propio motor de cifrado híbrido» utilizando la criptografía de curva elíptica asimétrica en lugar de otros algoritmos como RSA o ElGamal.Implementación de ECC en C

Suponiendo que deseo usar curvas que brindan mayor seguridad, ¿cuáles debo emplear? De acuerdo con lo que he leído, creo que probablemente la curva de 521 bits es ideal. ¿Hay esquemas más seguros?

¿Cuáles son las implementaciones más seguras en C/C++ (sin usar el C++ STL) contra, por ejemplo, ataques de canal lateral? Me gustaría implementarlo como un módulo «separado», por lo que agradecería un código fuente limpio o buenas referencias.

+11

¿Su propio motor "híbrido"? ** Tenga cuidado. ** La primera regla de la criptografía es "no se puede hacer un mejor trabajo que los profesionales". Es muy probable que cualquier cambio que realice en los algoritmos existentes los debilite, a menos que tenga experiencia en criptografía y comprenda completamente cómo funcionan los esquemas de cifrado, e incluso entonces, podría debilitar el cifrado. –

+0

¿Vas a proteger los códigos de armas nucleares de tu nación con esa curva criptográfica de curva elíptica de 521 bits? Solo me pregunto qué secretos podría tener que una implementación estándar de FIPS 186-3 con un tamaño principal de 256 bits o simplemente curve-25519 no es lo suficientemente bueno para. Esos son de fácil acceso, de una magnitud mucho más rápida, y no es probable que ninguno de ellos se rompa durante su vida, ni que factorizar el EC sea el punto de entrada en primer lugar (cuando es mucho más) probablemente para encontrar un exploit de implementación o hacer ingeniería social). – Damon

+0

Esa "primera regla" falla en cero. –

Respuesta

1

Antes de siquiera pensar si alguna de las curvas estándar podría no ser lo suficientemente segura, simplemente me aseguraré de que el modo de encriptación sea realmente seguro contra los simples ataques de texto cifrado elegidos. Creo que el artículo de Cramer and Shoup "Diseño y análisis de esquemas prácticos de encriptación de clave pública seguros contra el ataque de texto cifrado adaptable", 2003 es un buen punto de partida para analizar esquemas de cifrado híbridos.

En cuanto a los ataques de temporización: OpenSSL contiene implementaciones para un número pequeño de curvas seleccionadas que se han implementado para que se ejecuten en tiempo constante.