Uso de la billetera PKI de bitcoin para el cifrado de mensajes

¿Es posible que el remitente de un mensaje cifre una cadena de mensaje con la dirección de la billetera pública del receptor, envíe este texto cifrado por correo electrónico al receptor y luego haga que el receptor descifre el mensaje usando su billetera (clave privada)?

No estoy hablando de enviar spam a la cadena de bloques, el mensaje podría enviarse mediante mensajería instantánea/correo electrónico una vez cifrado.

Entonces es como usar gpg pero con la clave pública/privada de la billetera.

es posible?

Respuestas (3)

La criptografía que usa Bitcoin para las claves privadas de la billetera es ECDSA, usando la curva secp256k1:

http://en.bitcoin.it/wiki/Elliptic_Curve_Digital_Signature_Algorithm

Es para firmar mensajes y no es útil para ningún método de encriptación.

Existen otros métodos para cifrar y comunicar un mensaje,... Gli.ph , BitMessage , GPG/OpenPGP, y más.

Si confiaba en la parte a la que está enviando fondos, esa parte podría usar la capacidad de firma de mensajes en el cliente para firmar un mensaje que le diga qué clave GPG usar para cifrar un mensaje para esa parte, por ejemplo. Eso le daría la seguridad de que está encriptando un mensaje que realmente solo puede leer la parte que tiene el control de esa dirección de Bitcoin y firmó el mensaje.

No puede usar la dirección de bitcoin directamente, pero si alguna vez se gastaron los fondos en la dirección, entonces puede ver la clave pública asociada con ella en la cadena de bloques, y puede cifrarla usando esta implementación de python: https:// github.com/ikndevs/jeeq

Discusión de bitcointalk aquí: https://bitcointalk.org/index.php?topic=196378.5

¿Es esto seguro? Esto suena como si estuviera usando una primitiva criptográfica de una manera que nunca fue intencionada.

No es posible cifrar algo (si se le da una dirección) de forma que el propietario pueda descifrarlo.

Sin embargo, si proporciona un mensaje, una dirección y una firma del mensaje con la clave privada respectiva, es posible recuperar la clave pública que puede usar.

Sin embargo, no es tan simple: la mayoría de los esquemas de cifrado de clave pública tienen un límite en los datos que se pueden cifrar (limitado por el tamaño de la clave). Debido a esto, GPG y otros que utilizan criptografía de clave pública implican generar un cifrado simétrico aleatorio de cada mensaje y cifran la nueva clave con la clave pública EC/RSA de los destinatarios.

Podría ser posible usar secp256k1 como base para esto, pero en última instancia, la elección de la curva es un detalle menor en el diseño general del esquema.

El hecho de que pueda emplear secp256k1 de esta manera no significa que deba hacerlo: ya existe un software que ha existido durante años que puede hacer precisamente esto.