Frage zur Kryptografie mit öffentlichen Schlüsseln - Wird zum Signieren ein privater oder ein öffentlicher Schlüssel verwendet? Verwirrung zwischen dem Schlüssel zum Signieren und dem zum Verschlüsseln

Ich bin relativ neu in Kryptographie und Blockchain und lerne, wie Public-Key-Kryptographie funktioniert und wie sie in der Umgebung von Bitcoin angewendet wird.

Ich habe zwei verschiedene Artikel gelesen, der erste war sinnvoll, aber der zweite hat mich verwirrt.

Aus dem 1. Artikel ( https://www.blockchain-council.org/blockchain/how-does-blockchain-use-public-key-cryptography/ ) verstehe ich, dass der private Schlüssel des Absenders verwendet wird, um die digitale Transaktion zu signieren und Der öffentliche Schlüssel des Absenders wird vom Miner/Empfänger verwendet, um die Signatur des Absenders zu verifizieren.

Ein zweiter Artikel, den ich gelesen habe ( https://www.ibm.com/support/knowledgecenter/en/SSB23S_1.1.0.14/gtps7/s7pkey.html ) über Kryptografie mit öffentlichen Schlüsseln hat es jedoch umgekehrt; Verwenden Sie zuerst den öffentlichen Schlüssel und dann den privaten Schlüssel. Ich habe das Bild vom zweiten Link angehängt:

Was verstehe ich falsch? Warum ist die Verwendung der Tasten in umgekehrter Reihenfolge?

Vielen Dank im Voraus für Ihren Beitrag...

Antworten (3)

Was verstehe ich falsch?

Sie verwechseln mehrere unterschiedliche Verwendungen von Kryptografie, mehrere unterschiedliche Zwecke:

  • Authentifizierung
  • Nichtablehnung
  • Privatsphäre
  • Beweis der Integrität

Kryptografie im Allgemeinen

Zwecke

Privatsphäre

Wenn Sie jemandem eine private Nachricht so senden möchten, dass niemand, der die Nachricht abfängt, sie lesen kann, verschlüsseln Sie die Nachricht normalerweise mit einem symmetrischen (geheimen Schlüssel) Algorithmus und einem neu erstellten geheimen Schlüssel. Anschließend verschlüsseln Sie den geheimen Schlüssel mit dem öffentlichen Schlüssel des beabsichtigten Empfängers. Dadurch wird sichergestellt, dass nur der beabsichtigte Empfänger den geheimen Schlüssel für die Nachricht entschlüsseln kann, indem er seinen privaten Schlüssel verwendet (den niemand sonst kennt). Nach dem Entschlüsseln des geheimen Schlüssels ist der beabsichtigte Empfänger in der Lage, die Nachricht unter Verwendung des symmetrischen Algorithmus zu entschlüsseln.

Beachten Sie, dass Sie nur einen symmetrischen Algorithmus verwenden, um die Nachricht zu verschlüsseln, da solche Algorithmen viel schneller sind als asymmetrische (Public-Key) Algorithmen. Es dient in erster Linie der Effizienz, aus keinem anderen Grund.

Authentifizierung

Wenn Sie jemandem eine Nachricht senden und nachweisen möchten, dass Sie die Nachricht gesendet haben, verwenden Sie ein anderes Verfahren. Sie erstellen mithilfe eines Hash-Algorithmus einen kryptografischen Hash der Nachricht. Sie verschlüsseln diesen Hash dann mit Ihrem privaten Schlüssel (den nur Sie kennen). Der verschlüsselte Hash wird mit der Nachricht gesendet. Dieser verschlüsselte Hash wird als digitale Signatur bezeichnet. Der Empfänger der Nachricht kann Ihren öffentlichen Schlüssel verwenden, um den Hash zu extrahieren und ihn mit einem neu berechneten Hash der Nachricht zu vergleichen. Wenn die Hashes übereinstimmen, ist dies ein Beweis dafür, dass Sie die Nachricht gesendet haben.

Arten der Verschlüsselung

Asymmetrisch

Asymmetrisch bedeutet, dass Sie unterschiedliche Schlüssel zum Verschlüsseln und Entschlüsseln verwenden. Es gibt sowohl einen privaten als auch einen öffentlichen Schlüssel. daher der Name "Public-Key-Kryptographie".

Symmetrisch

Im Gegensatz dazu ist DES ein Beispiel für einen symmetrischen (nicht asymmetrischen) Algorithmus , der ein symmetrischer Verschlüsselungsalgorithmus ist, da es nur einen Schlüssel gibt und derselbe Schlüssel sowohl zum Verschlüsseln als auch zum Entschlüsseln verwendet wird. Der Schlüssel ist ein gemeinsam genutzter „Secret-Key“ – daher die Namen „Secret-Key-Kryptografie“ oder „Shared-Key-Kryptografie“.


Kryptographie in Bitcoin

Von dem, was ich gelesen habe, verwendet Bitcoin

  • Hash-Algorithmen
  • Digitale Signaturen
    • ECDSA für Unterschriften auf Transaktionen

Beachten Sie, dass ECDSA asymmetrisch ist

Beachten Sie auch, dass Bitcoin sich um Anonymität und nicht um Privatsphäre kümmert (die Blockchain ist öffentlich, nicht privat). Daher verwendet Bitcoin keine Verschlüsselung für Datenschutzzwecke. Ihre Wallet-Software verwendet möglicherweise Verschlüsselung, um Ihre geheimen Schlüssel hinter einem Passwort zu verbergen – aber das ist nicht Teil der BitCoin-Spezifikation.


Verweise

Bitcoin verwendet also die von Ihnen erwähnte 'Authentifizierungs'-Methode, richtig? und nicht die „Privacy“-Methode. Die andere Antwort auf diese Frage von MCCCS besagt, dass „asymmetrische Verschlüsselung“ von Bitcoin nicht verwendet wird; Ihre Antwort legt jedoch nahe, dass "wir einen kryptografischen Hash der Nachricht erstellen". Ich bin mir nicht sicher, ob ich das überdenke!
@DCH: Der für einen kryptografischen Hash verwendete Algorithmus ist ein "Einweg" - oder "Falltür" -Algorithmus, kein Verschlüsselungsalgorithmus. Asymmetrische Verschlüsselung wird verwendet, um digitale Signaturen zu erstellen. Siehe en.bitcoin.it/wiki/How_bitcoin_works „Public-Key Cryptography“ ist ein anderer Name für „asymmetrische Verschlüsselung“. Siehe en.wikipedia.org/wiki/Public-key_cryptography

Der erste Artikel handelt davon, wie Bitcoin (den Hash von) Daten signiert, um den Besitz (und die Ausgabe) von Münzen nachzuweisen. Es ist nichts verschlüsselt, es wird als Authentifizierungsschema verwendet.

Im zweiten Artikel geht es um asymmetrische Verschlüsselung . Es dient der Verschlüsselung von Daten, nicht der Authentifizierung. Es ist nicht das, was Bitcoin verwendet. (Siehe auch: ECIES)

Sie haben unterschiedliche Zwecke. Lassen Sie sich nicht verwirren.

Die beiden Artikel sprechen über zwei sehr unterschiedliche Dinge.

Der 1. Artikel handelt von digitalen Signaturen, die verwendet werden, um zu beweisen, dass jemand eine Nachricht geschrieben hat und nicht imitiert wurde. Diese werden in Bitcoin ausgiebig verwendet. Der Absender der Nachricht verwendet seinen eigenen privaten Schlüssel zum Signieren, der Empfänger verwendet den öffentlichen Schlüssel des Absenders, um zu überprüfen, ob die Signatur authentisch ist.

Der zweite Artikel befasst sich mit der Verschlüsselung, die verwendet wird, um den Inhalt einer Nachricht vor allen außer dem beabsichtigten Empfänger zu verbergen. Dies wird in Bitcoin überhaupt nicht verwendet. An Orten, an denen es verwendet wird, verwendet der Absender den öffentlichen Schlüssel des Empfängers zum Verschlüsseln, und der Empfänger verwendet seinen eigenen privaten Schlüssel zum Entschlüsseln und zum Zugriff auf die Informationen.