Generación de claves particulares de curva elíptica Diffie-Hellman [cerrado]

1

Quiero generar un par de claves ECDH (64 bytes cada una), donde los primeros 12 bytes de la clave pública se adaptarán a mi formato.

Por ejemplo, si tengo una secuencia única "13456789ABC", me gustaría usarla como los primeros 12 bytes de la clave pública de 64 bytes de longitud (el resto de la longitud se rellena con los valores generados). Para cada generación de claves, la secuencia cambiará un poco, por lo que es única.

Así que básicamente estoy preguntando dos cosas:

  1. ¿Es esto posible?
  2. ¿Hay un generador que me permita especificar un prefijo de una longitud adecuada para la clave pública?
pregunta RunoTheDog 31.05.2017 - 20:22
fuente

2 respuestas

1

Respuestas rápidas:

  1. No es imposible, pero más o menos en el ámbito de la derrota de PKI, por lo que no es fácil por mucho (todavía). [edit: si alguna vez se vuelve fácil, ¡es posible que desee dejar de usar esa implementación de PKI por seguridad!]
  2. No me he encontrado con un generador de este tipo.

PKI dificulta eso por diseño (no necesariamente en implementación, aunque eso es una digresión), por lo que es posible que desee buscar soluciones de diseño que se adapten mejor a sus necesidades. O indique su necesidad subyacente, para explorar posibilidades.

    
respondido por el Sas3 01.06.2017 - 05:07
fuente
0

Esto es muy similar al problema de generar una clave de Bitcoin cuya dirección tiene algún contenido predeterminado, llamada dirección de "vanidad" por analogía con las placas de automóviles de "vanidad" disponibles en muchos (la mayoría ?) jurisdicciones con costo adicional, excepto que Bitcoin necesita adivinar aproximadamente 6 bits para cada carácter deseado en la dirección de resultado. Vea otra pila para Qs sobre eso. Presumiblemente podría modificar el programa Vanitygen de Bitcoin para manejar su caso, ya que la parte difícil es la multiplicación de puntos; El hashing es relativamente barato y la base58 es insignificante.

No está claro si realmente quiere bytes fijos (y posiblemente su tamaño de byte, aunque como no pensó en especificar, probablemente solo conozca las máquinas de clase PC que usan bytes de 8 bits) ) o dado que el ejemplo que dio es todos los dígitos hexadecimales válidos si realmente quiere decir dígitos fijos en la representación hexadecimal que se usa a menudo para mostrar y, a veces, para almacenar o transportar claves EC (y otras cosas en criptografía moderna).

  • Si desea corregir 11 dígitos hexadecimales, que son 44 bits; basado en las estimaciones aproximadas en enlace es probable que tarde menos de un día o, como mucho, unos días en un hardware razonable.

  • Si desea reparar 11 bytes de 8 bits, es mucho más costoso, por ejemplo, cien mil años si usa un millón de máquinas de clase PC, algo menos si tiene hardware personalizado diseñado y fabricado para ti.

respondido por el dave_thompson_085 01.06.2017 - 09:09
fuente

Lea otras preguntas en las etiquetas