Estoy diseñando un protocolo seguro (con fines académicos / de aprendizaje) y estoy en el punto en el que necesito (re) diseñar el paso de intercambio clave.
En mi implementación anterior, solía confiar en RSA para cifrar y luego firmar un par de claves AES generadas aleatoriamente que luego usaría para el cifrado de tráfico.
Me ha llamado la atención que el uso de Diffie Hellman para el intercambio de claves podría ser mejor para mis necesidades, pero no estoy muy cómodo usando un algoritmo que no entiendo lo suficiente, por lo tanto las preguntas:
Me gustaría usar EC-DHE y leí que la clave generada no fue aleatoria (léase: tiene alguna estructura, supongo que proviene de los conceptos matemáticos subyacentes). Siempre escuché que el uso de claves generadas aleatoriamente fue altamente recomendado para algoritmos de cifrado simétrico. Incluso si tengo la clave DHE resultante, no será "aleatorio". ¿Todavía está bien usarlo para ese propósito?
Entendí (corríjame si me equivoco), que en EC-DHE, la elección de la curva elíptica es básicamente una forma fácil de elegir los parámetros DH. ¿Hay algo que deba tener en cuenta al elegir la curva elíptica? ¿Debo dejar que los usuarios decidan qué EC pueden usar?