Ist Hashing ein optionaler Schritt zur Verwendung mit Public-Key-Kryptographie für Blockchain

Ich bin verwirrt von den Public-Key-Kryptografieversionen, die ich bisher gelesen habe. Sind die Schritte optional, abhängig von den Arten der Blockchain oder beziehen sie sich auf verschiedene Methoden?

Version 1 =========

Alice zu Bob

Schritt 1. Inhalt > Hash > Digest > Mit Alices privatem Schlüssel verschlüsseln > Digitale Signatur

Schritt 2. Digitale Signatur > Verschlüsseln mit Alices privatem Schlüssel + Bobs öffentlichem Schlüssel > Digest

Schritt 3. Digest an Bob senden

In den obigen Schritten verwendet Alice den privaten Schlüssel ZWEIMAL. Verschlüsseln Sie zuerst den Digest des Inhalts. Zweites Mal zusammen mit Bobs öffentlichem Schlüssel verschlüsseln.

Ist Hashing optional?

Wird der Hash automatisch generiert, sobald er mit Alices privatem Schlüssel verschlüsselt wurde?

Oder ist das Verschlüsseln mit Alices privatem Schlüsselschritt optional?

Ist Schritt 2 auch optional? oder sind alle oben genannten Schritte automatisiert?

Bob erhielt

Schritt 1. Digest > Alices öffentlicher Schlüssel > Inhalt

Schritt 2. Digest > Bobs privater Schlüssel > Inhalt

=

=

Version 2 =========

Alice zu Bob

Schritt 1. Alice generiert das Schlüsselpaar

Schritt 2. Alice gibt Bob ihren öffentlichen Schlüssel

Schritt 3. Alice verschlüsselt Inhalte mit ihrem eigenen privaten Schlüssel

In den obigen Schritten hat Alice den Inhalt nicht zuerst gehasht.

Bob erhielt

Schritt 1. Bob entschlüsselt mit Alices öffentlichem Schlüssel

Was ist, wenn jemand anderes den öffentlichen Schlüssel von Alice hat, kann er ihn nicht auch entschlüsseln?

=

=

Version 3 =========

Alice zu Bob

Schritt 1. Alice verschlüsselt mit Bobs öffentlichem Schlüssel

Bob erhielt

Schritt 1. Bob entschlüsselt mit seinem eigenen privaten Schlüssel

=

=

Antworten (1)

Fragen wie diese können nicht beantwortet werden, ohne das von Ihnen verwendete digitale Signaturschema anzugeben.

Allgemein

Im Allgemeinen besteht ein digitales Signaturschema aus 3 Algorithmen:

  • KeyGen() -> (PrivKey, PubKey): generiert einen privaten Schlüssel und einen entsprechenden öffentlichen Schlüssel.
  • Sign(PrivKey,Message) -> Signature: signiert eine Nachricht mit einem gegebenen privaten Schlüssel.
  • Verify(PubKey,Message,Signature) -> Bool: verifiziert eine Signatur gegen einen öffentlichen Schlüssel und eine Nachricht.

Welche Datentypen betroffen sind, hängt von dem spezifischen Schema ab.

ECDSA

In ECDSA, dem in Bitcoin verwendeten digitalen Signaturschema, ist der private Schlüssel eine Zahl, der öffentliche Schlüssel ein Punkt auf einer elliptischen Kurve, die Nachricht ein Byte-Array und die Signatur ein Paar aus zwei Zahlen.

ECDSA erfordert einen Hash-Schritt. Tatsächlich ist es ohne den Hashing-Schritt vollständig kaputt.

Nirgendwo ist jedoch eine Verschlüsselung beteiligt. Es gibt einfach einen Signieralgorithmus und einen Verifizierungsalgorithmus.

RSA

Der Fehler, den Sie machen, das Signieren als "Verschlüsselung mit dem privaten Schlüssel" zu bezeichnen, ist weit verbreitet, da digitale Signaturschemata häufig so erklärt werden.

Dies gilt für einige spezifische Signaturschemata, aber nicht für alle. Dies gilt insbesondere für RSA. Die privaten und öffentlichen Schlüssel sind dort austauschbar, so dass das Verschlüsselungsschema tatsächlich durch das Austauschen zu einem Signaturschema wird.

Peter. Danke. Ich bin verwirrt. Nachdem Sie so viele Artikel über Blockchain gelesen haben, wird die Kryptografie mit öffentlichen Schlüsseln verwendet. Ich bin davon ausgegangen, dass alle Daten auf Blockchain verschlüsselt sind. Oder Blockchain verschlüsselt standardmäßig alle Daten. Da die Verschlüsselung nicht Teil des ECDSA ist, bedeutet das, dass auf Bitcoin nichts verschlüsselt wird? Ist der Hashing-Schritt ein automatisierter Prozess, der durch das Signieren des privaten Schlüssels ausgelöst wird?
Es gibt nirgendwo in der Blockchain eine Verschlüsselung. Das ist nicht möglich, da alle Daten öffentlich sein müssen. Wenn Daten in der Kette verschlüsselt wären, wäre es nicht möglich, sie von allen zu verifizieren (was der springende Punkt ist, Überprüfbarkeit).
Sowohl die Signieroperation als auch die Verifizierungsoperation beinhalten einen Hash in ECDSA.
Ich denke, ich muss die meisten Dinge, die ich über Blockchain gelesen habe, neu lernen. Die meisten Referenzen, auf die ich online stieß, bezogen sich auf die Schlüssel zum Verschlüsseln und Entschlüsseln von Daten in der Blockchain. Haben Sie zufällig einige Referenzen, die Ihnen helfen können, zu verstehen, wie Blockchain mit Daten umgeht?
Ein Ratschlag: Ignorieren Sie jegliches Schreiben, das von „Blockchain ist X“ spricht. Blockchain ist ein Modewort, das alles bedeuten kann, von „einer Datenbank mit Hashes“ über „eine Kryptowährung, deren Sicherheit sich aus wirtschaftlichen Anreizen ergibt“ bis hin zu „der Geschäftslogik etwas Kryptografie hinzufügen“. Eigentlich ausgereifte Systeme haben oft keinen Bezug zum Hype um Blockchains.