Verwenden der Bitcoin-Wallet-PKI zur Nachrichtenverschlüsselung

Ist es für einen Nachrichtensender möglich, eine Nachrichtenzeichenfolge mit der öffentlichen Wallet-Adresse eines Empfängers zu verschlüsseln, diesen verschlüsselten Text per E-Mail an den Empfänger zu senden und dann den Empfänger die Nachricht mit seinem Wallet (privaten Schlüssel) entschlüsseln zu lassen?

Ich spreche nicht davon, die Blockchain zu spammen, die Nachricht könnte per IM/E-Mail gesendet werden, sobald sie verschlüsselt ist.

Es ist also so etwas wie die Verwendung von gpg, aber mit dem öffentlichen/privaten Schlüssel der Brieftasche.

Ist das möglich?

Antworten (3)

Die Kryptografie, die Bitcoin für private Wallet-Schlüssel verwendet, ist ECDSA unter Verwendung der Kurve secp256k1:

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

Es dient zum Signieren von Nachrichten und ist für keine Verschlüsselungsmethode nützlich.

Es gibt andere Methoden zum Verschlüsseln und Übermitteln einer Nachricht, ... Gli.ph , BitMessage , GPG/OpenPGP und mehr.

Wenn Sie der Partei vertrauen, an die Sie Geld senden, könnte diese Partei die Nachrichtensignaturfunktion im Client verwenden, um eine Nachricht zu signieren, die Ihnen sagt, welcher GPG-Schlüssel zum Beispiel zum Verschlüsseln einer Nachricht an diese Partei verwendet werden soll. Das würde Ihnen die Gewissheit geben, dass Sie eine Nachricht verschlüsseln, die wirklich nur von der Partei gelesen werden kann, die die Kontrolle über diese Bitcoin-Adresse hat und die Nachricht signiert hat.

Sie können die Bitcoin-Adresse nicht direkt verwenden, aber wenn das Geld in der Adresse jemals ausgegeben wurde, können Sie den damit verbundenen öffentlichen Schlüssel in der Blockchain sehen und mit dieser Python-Implementierung verschlüsseln: https:// github.com/ikndevs/jeeq

Bitcointalk-Diskussion hier: https://bitcointalk.org/index.php?topic=196378.5

Ist das sicher? Das klingt, als würde es ein kryptografisches Primitiv auf eine Weise verwenden, die nie beabsichtigt war.

Es ist nicht möglich, etwas (wenn eine Adresse angegeben ist) so zu verschlüsseln, dass der Besitzer es entschlüsseln kann.

Wenn jedoch eine Nachricht, eine Adresse und eine Signatur der Nachricht durch den jeweiligen privaten Schlüssel bereitgestellt werden, ist es möglich, den öffentlichen Schlüssel wiederherzustellen, den Sie verwenden können.

Es ist jedoch nicht ganz so einfach - die meisten Verschlüsselungsschemata mit öffentlichem Schlüssel haben eine Begrenzung der Daten, die verschlüsselt werden können (begrenzt durch die Schlüsselgröße). Aus diesem Grund erzeugen GPG und andere, die Public-Key-Kryptografie verwenden, für jede Nachricht einen Zufallsgenerator für die symmetrische Verschlüsselung und verschlüsseln den neuen Schlüssel mit dem öffentlichen EC/RSA-Schlüssel des Empfängers.

Es könnte möglich sein, secp256k1 als Basis dafür zu verwenden, aber letztendlich ist die Wahl der Kurve ein kleines Detail im Gesamtdesign des Schemas.

Nur weil Sie secp256k1 auf diese Weise verwenden können, heißt das nicht, dass Sie es tun sollten - es gibt bereits seit Jahren Software, die genau dies kann.