Crear un par de claves privadas, públicas RSA que ya tienen números generados

7

Quiero saber cómo generar pares de claves RSA de trabajo , con la sintaxis correcta. Digamos que ya he generado de alguna manera mis números para una clave 512bit , que son:

e = 00065537

d = 2a3ff2f501835d7d0f7ccad34265525b0c91f800fc252324e4bb5668392ba55a65d812d91fcpcpcpcpcpcpcpcpcpcp

m = 4bb26cf2e1e1cdbbf78f89a60d5af5cf094a7216f9fe2d0e2288dc14e6005e0b6bf46ccpcgggggggbbbbbb2b3281f9cfgfgf2255f0c6pfgbbcbggbb2b3281e9ff1cf8725ffccbbbcbbgbb2b32bfg1bfg1cfgfcfc2b5fbcbbbbbbbbbc32bfg1bff1cfbfb2cfbfbf2cfg2bfcf2cfb2bff1cfbfbfbfb2ffffff30ff

¿Cómo puedo generar un par de claves adecuado a partir de esto? ¿Hay un generador en algún lugar para automatizar eso? La mejor solución para mí sería generar ese par de llaves en javascript que funcionaría aquí enlace con pidcrypt.

    
pregunta magnac 13.08.2013 - 20:42
fuente

1 respuesta

9

Un par de claves RSA consiste en lo siguiente:

  • El módulo n , un entero grande que es igual al producto de dos enteros primos grandes, p y q .
  • El exponente público e .
  • El exponente privado d . d es tal que ed = 1 cuando se toma el módulo p-1 , y también cuando se toma el módulo q-1 .
  • El primer factor p .
  • El segundo factor q .
  • El valor d p = d mod p-1 .
  • El valor d q = d mod q-1 .
  • El valor q '= q -1 mod p .

La clave pública contiene solo n y e .

La clave privada contiene todos los valores especificados anteriormente. Stricto sensu , solo se necesitan n y d para una implementación de RSA simple, pero los otros valores permiten una operación más rápida y también "enmascaramiento" (protección contra fugas de canal lateral), por lo que el RSA standard define que una clave privada contiene todos los valores (consulte apéndice A.1 ).

A partir del valor que tiene, asumiendo que su "m" es realmente el módulo RSA, los otros valores pueden volver a calcularse con algún esfuerzo (menos de un segundo de CPU, pero más tiempo humano del que deseo invertir) eso). De todos estos valores, podría codificar claves públicas y privadas RSA que cumplen con los estándares; pero esto requiere un cierto conocimiento de ASN.1 . Finalmente, una clave RSA de 512 bits es débil; use al menos 1024 bits, preferiblemente más (2048 bits deberían estar bien). Algunas implementaciones de RSA se negarán a trabajar con claves RSA de menos de 1024 bits.

Línea inferior: no genere la clave usted mismo; utilice OpenSSL . Con la herramienta de línea de comandos:

openssl genrsa -out rsakey.pem 2048

generará una clave privada de RSA de 2048 bits con toda la codificación adecuada; entonces esto:

openssl rsa -in rsakey.pem -pubout

imprimirá la clave pública , nuevamente con la codificación hecha.

    
respondido por el Thomas Pornin 13.08.2013 - 22:12
fuente

Lea otras preguntas en las etiquetas