⒈ General encryption algorithms include
The general encryption algorithms are mainly divided into three categories: symmetric encryption algorithms, asymmetric encryption algorithms and one-sided hash algorithms:
Entschlüsselung, verwenden Sie das gleiche und für große Datenverschlüsse, das für große Datenverschlüsse geeignet ist und ist für eine große Datenverschlüsselung. Zu den allgemeinen Algorithmen gehören AES (Advanced Encryption Standard), der Hauptalgorithmus, der DES ersetzt, durch eine Schlüssellänge von 128/192/256 Bit, hohe Sicherheit; DES/3DES, DES KEY 56 BIT, Niedrige Sicherheit, 3DES - Dies ist die dreifache Verschlüsselung DES mit Tastenlänge 168 Bit, schwere Kompatibilität; RC4/RC5, Stream -Verschlüsselungsalgorithmus, RC4 wird in den frühen SSL -Protokollen häufig verwendet, und RC5 unterstützt die Schlüssellänge. Asymmetrischer Verschlüsselungsalgorithmus: Durch die Verwendung öffentlicher Schlüssel (öffentlich) und private Schlüssel (Geheimnisse) muss die Verschlüsselung von offenen Schlüssel entschlüsselt werden, was sehr sicher, aber langsam ist. Zu den allgemeinen Algorithmen gehören RSA, das am häufigsten verwendete, die Verschlüsselung und digitale Signaturen unterstützt und Probleme löst, die auf einer großen Anzahl basieren. ECC (Verschlüsselung einer elliptischen Kurve) mit kürzeren Schlüssel zu dem gleichen Sicherheitsniveau, das für mobile Geräte geeignet ist und -in -Systeme geeignet ist; DSA, das für digitale Signaturen entwickelt wurde und die Integrität von Daten und die Identität des Absenders überprüft. Ein einseitiger Hash -Algorithmus (Hash -Algorithmus): irreversible, wesentliche Daten in einen Hash konvertieren mit einer festen Länge zum Speichern von Datentestkennwörtern. Allgemeine Algorithmen umfassen MD5, das den 128-Bit-Wert des Hash erzeugt. Hohe Sicherheitsszenarien werden nicht mehr aus den Risiken einer Kollision empfohlen. SHA-Serien, einschließlich SHA-1 (160-Bit, unzureichende Sicherheit), SHA-256 (256-Bit, in der Blockchain weit verbreitete Verwendung in der Blockchain usw.), SHA-3 (letzter Standard); HMAC, der Hash -Algorithmus in Kombination mit Tasten, erhöht den Test der Datenintegrität.
Zusätzlich gibt es eine unveröffentlichte Codierungsmethode, die Binärdaten in gedruckte Zeichen (64 Typ) umwandelt, um HTTP, Bildcodierung usw. zu übertragen und zurückgezogen werden kann. AndersVerschlüsselungsalgorithmen sind für verschiedene Szenarien geeignet. Die symmetrische Verschlüsselung ist für die lokale Datenverschlüsselung geeignet, die asymmetrische Verschlüsselung wird zum Austausch von Schlüssel verwendet, und der Hash -Algorithmus wird zum Speichern von Kennwort und zur Überprüfung von Dateien verwendet.
⒉ Was bedeutet Verschlüsselung in Blockchain (was ist der Blockchain -Verschlüsselungsalgorithmus)
Was ist symmetrische Verschlüsselung in Blockchain? Was ist eine asymmetrische Verschlüsselung?symmetrischer Verschlüsselungsalgorithmus bezieht sich auf die Verwendung desselben geheimen Schlüssels beim Verschlingen und Entschlüsseln. Im Gegensatz zu symmetrischen Verschlüsselungsalgorithmen erfordern asymmetrische Verschlüsselungsalgorithmen öffentliche und private Schlüssel. Der öffentliche Schlüssel und der private Schlüssel sind ein Paar. Wenn die Daten mit dem öffentlichen Schlüssel verschlüsselt sind, kann sie nur mit dem entspre chenden privaten Schlüssel entschlüsselt werden.
Asymmetrische Verschlüsselung ist in der Sicherheit besser als die symmetrische Verschlüsselung. Beide Parteien in symmetrisch verschlüsselter Kommunikation verwenden den gleichen geheimen Schlüssel. Wenn der geheime Schlüssel einer Partei durchgesickert ist, wird die gesamte Kommunikation geknackt.
Gelenkverschlüsselung verwendet ein Paar geheime Schlüssel, eine für die Verschlüsselung und die andere zur Entschlüsselung, und der öffentliche Schlüssel ist öffentlich, und der geheime Schlüssel wird von selbst gespeichert. Es besteht keine Notwendigkeit, den geheimen Schlüssel vor der Kommunikation zu synchronisieren und das Risiko von Hackern zu vermeiden, die Informationen während der Synchronisierung privater Schlüssel stehlen.
【Deep Knowledge】 Schematisches Diagramm der Verschlüsselung (Verschlüsselung, Signatur) von BlockchainSetzen Sie zuerst ein Bild der Ethereum -Architektur ein:
im Lernprozess, ein einzelnes Modul wird hauptsächlich zum Lernen verwendet, einschließlich P2P, Cryptography, Network, Protokoll. Das Geheimnis wird das Problem mit dem Schlüsseln. Übertragung. Wenn der Schlüssel symmetrisch ist, kann der Schlüsselaustausch nur offline durchgeführt werden. Wenn der Schlüssel online übertragen wird, kann er abgefangen werden. Daher wird eine asymmetrische Verschlüsselung verwendet, zwei Schlüssel, ein privater Schlüssel für sich aufbewahrt und der andere öffentliche Schlüssel offenbart. Öffentliche Schlüssel können online übertragen werden. Es sind keine Offline -Transaktionen erforderlich. Stellen Sie die Sicherheit der Daten sicher.
Wie in der oh2en Abbildung gezeigt, sendet Knoten A Daten an Knoten B, und zu diesem Zeitpunkt wird die öffentliche Schlüsselverschlüsselung verwendet. Knoten A erhält den öffentlichen Schlüssel von Knoten B von seinem eigenen öffentlichen Schlüssel, um die Klartextdaten zu verschlüsseln und den Chiffretext zu erhalten, und sendet sie an Knoten B. Knoten B verwendet einen eigenen privaten Schlüssel zum Entschlüsseln.
2. Meldungsmanipulationen können nicht behoben werden.
Wie oben gezeigt, verwendet Knoten A den öffentlichen Schlüssel von B für die Verschlüsselung und überträgt dann den Chiffretext an Knoten B. Knoten B nimmt den öffentlichen Schlüssel von Knoten A, um den Chiffretext zu entschlüsseln.
1. Da der öffentliche Schlüssel von A öffentlich ist, ist der Chiffretext, sobald der Online -Hacker die Nachricht abfängt, nutzlos. Um es unverblümt auszudrücken, kann diese Verschlüsselungsmethode gelöst werden, solange die Nachricht abgefangen wird.
2. Es gibt auch Probleme mit der Unfähigkeit, die Quelle der Nachricht und das Problem der Manipulation von Nachrichten zu bestimmen.
Wie in der oh2en Abbildung gezeigt, verwendet der Knoten A zuerst den öffentlichen Schlüssel von B, um den Chiffrettext 1 zu verschlüsseln, und verwendet dann den privaten Schlüssel von A, um CipheText 1 zu verschlüsseln, um die Chiffretext zu erhalten.
1. Wenn Data Ciphertext 2 im Netzwerk abgefangen wird, kann Ciphertext 2 mit dem öffentlichen Schlüssel von A entschlüsselt werden, da der öffentliche Schlüssel von A und CipheText 1 entschlüsselt werden kann. Dies scheint also eine doppelte Verschlüsselung zu sein, aber tatsächlich ist die private Schlüsselsignatur auf der letzten Schicht ungültig. Im Allgemeinen möchten wir alle, dass die Signatur für die originellsten Daten unterzeichnet wird. Wenn die Signatur hinter sich gelegt wird, fehlt der Unterschrift die Sicherheit, da der öffentliche Schlüssel öffentlich ist.
2. Es gibt Leistungsprobleme, die asymmetrische Verschlüsselung selbst ist sehr ineffizient und zwei Verschlüsselungsprozesse wurden durchgeführt.
Wie oben gezeigt, wird der Knoten A zuerst mit As privatem Schlüssel verschlüsselt und dann mit Bs öffentlichem Schlüssel verschlüsselt. Nach Erhalt der Nachricht verwendet der Knoten B zuerst den privaten Schlüssel von B zum Entschlüsseln und dann zum Entschlüsseln von A's öffentlichem Schlüssel.
1. Wenn dieCipheText Data 2 wird von einem Hacker abgefangen, da Ciphertext 2 nur mit Bs privatem Schlüssel entschlüsselt werden kann, und nur Bs privates Schlüssel ist, dass andere nicht vertraulich sein können. Daher ist die Sicherheit die höchste.
2. Wenn der Knoten B den Chiffretext 1 entschlüsselt, kann er nur den öffentlichen Schlüssel von A verwenden, um ihn zu entschlüsseln. Nur Daten, die durch den privaten Schlüssel von A verschlüsselt sind, können erfolgreich mit dem öffentlichen Schlüssel von A entschlüsselt werden. Nur der Knoten A hat einen privaten Schlüssel von A, sodass festgestellt werden kann, dass die Daten vom Knoten A übertragen werden. Nach zwei asymmetrischen Verschlüsselung sind die Leistungsprobleme relativ schwerwiegend.
Basierend auf dem oh2en Problem der Manipulation von Daten haben wir die Nachrichtenauthentifizierung eingeführt. Der Verschlüsselungsprozess nach der Nachrichtenauthentifizierung lautet wie folgt:
Vor dem Knoten A sendet eine Nachricht eine Nachricht. Es ist erforderlich, Hash -Berechnungen für die Klartextdaten durchzuführen. Erhalten Sie eine Zusammenfassung und senden Sie die Beleuchtung gleichzeitig mit den ursprünglichen Daten an Knoten B. Wenn der Knoten B die Nachricht empfängt, entschlüsselt er die Nachricht. Die Hash -Zusammenfassung und die ursprünglichen Daten werden analysiert, und dann wird die gleiche Hash -Berechnung für die Originaldaten durchgeführt, um die Zusammenfassung 1 zu erhalten, und die Zusammenfassung wird mit der Zusammenfassung verglichen. Wenn dieselbe ist, wurde sie nicht manipuliert, wenn sie unterschiedlich ist, bedeutet dies, dass es sich um Manipulationen handelt.
Bei der Übertragung des Prozesses werden am Ende der Hash und das Hash1 unterscheiden, solange der Chiffretext 2 manipuliert wird.
Das Signaturproblem kann nicht gelöst werden, dh beide Seiten greifen sich gegenseitig an. A gibt nie die Nachrichten zu, die er sendet. Zum Beispiel sendet A eine Fehlermeldung an B, wodurch B zu Verlusten leidet. Aber As Ablehnung wurde nicht von sich selbst geschickt.
Im Prozess von (iii) gibt es keine Möglichkeit, die gegenseitigen Angriffe zwischen den beiden Parteien zu lösen. Was bedeutet es? Dies kann daran liegen, dass die von A gesendete Nachricht nicht gut für Knoten A ist, und später bestreitet A, dass die Nachricht nicht von ihr gesendet wurde.
Um dieses Problem zu lösen, wurden Unterschriften eingeführt. Hier fusionieren wir die Verschlüsselungsmethode in (ii) -4 mit Nachrichtensignaturen.
In der oh2en Abbildung verwenden wir den privaten Schlüssel von Knoten A, um die von ihm gesendeten zusammenfassenden Informationen zu unterzeichnen, und verschlüsseln dann den Signatur + Originaltext und verwenden dann den öffentlichen Schlüssel von B, um ihn zu verschlüsseln. Nachdem B den Chiffretext erhielt, entschlüsselt er ihn zuerst mit Bs privatem Schlüssel und entschlüsselt dann die Digest mit dem öffentlichen Schlüssel von A. Nur durch Vergleich, ob der Inhalt der Verdauung zweimal gleich ist. Dies vermeidet nicht nur das Problem der Manipulationen, sondern vermeidet auch die Angriffe zwischen beiden Seiten. Da ein die Informationen unterschrieben hat, kann sie nicht verweigert werden.
Um die Leistungsprobleme beim Verschlingen von Daten asymmetrisch zu lösen, wird häufig eine Hybridverschlüsselung verwendet. Hier müssen wir die symmetrische Verschlüsselung einführen, wie in der folgenden Abbildung gezeigt:
Wenn Datenverschlüsseln von Daten vergrößert werden, verwenden wir den von beiden Parteien geteilten symmetrischen Schlüssel, um zu verschlüsseln. Versuchen Sie, symmetrische Schlüssel nicht im Netzwerk zu übertragen, um Verlust zu vermeiden. Der gemeinsame symmetrische Schlüssel wird hier basierend auf seinem eigenen privaten Schlüssel und dem öffentlichen Schlüssel der anderen Partei berechnet, und dann werden die Daten mit dem symmetrischen Schlüssel verschlüsselt. Wenn die andere Partei die Daten erhält, berechnet sie auch den symmetrischen Schlüssel und entschlüsselt den Chiffretext.
Die oh2en symmetrischen Schlüssel sind nicht sicher, da der private Schlüssel von A und B in der Regel in kurzer Zeit festgelegt sind, sodass auch die gemeinsamen symmetrischen Schlüssel festgelegt sind. Um die Sicherheit zu verbessern, besteht der beste Weg darin, für jede Interaktion einen temporären gemeinsamen symmetrischen Schlüssel zu generieren. Wie können wir also in jeder Interaktion einen zufälligen symmetrischen Schlüssel ohne Übertragung erzeugen?
Wie generiert ich also einen zufälligen gemeinsam genutzten Schlüssel zur Verschlüsselung?
Für den Senderknoten A wird jedes Mal ein temporäres asymmetrisches Schlüsselpaar erzeugt, wenn es gesendet wird, und dann kann ein symmetrischer Schlüssel basierend auf dem öffentlichen Schlüssel des Knotens B und dem temporären asymmetrischen privaten Schlüssel (Ka Algorithm-Keeyagreement) berechnet werden. Dann werden die Daten mit dem symmetrischen Schlüssel verschlüsselt. Der ProzessFür den gemeinsam genutzten Schlüssel ist wie folgt:
Für Knoten B wird beim Empfang der übertragenen Daten der zufällige öffentliche Schlüssel des Knotens A analysiert, und dann wird der symmetrische Schlüssel (KA -Algorithmus) unter Verwendung des zufälligen öffentlichen Taste des Knotens A und dem privaten Schlüssel der Knoten B selbst berechnet. Verwenden Sie dann vertrauliche Daten mit symmetrischen Schlüssel.
Die oh2en Verschlüsselungsmethoden haben immer noch viele Probleme, z. Aufgrund der begrenzten Zeit und der Fähigkeit wird es vorübergehend ignoriert.
Welche Art von Verschlüsselung sollte verwendet werden?
Es wird hauptsächlich auf der Grundlage der Sicherheitsstufe der zu übertragenden Daten berücksichtigt. In der Tat reicht es aus, nicht wichtige Daten zu authentifizieren und zu signieren, aber sehr wichtige Daten erfordern eine Verschlüsselungslösung mit einem relativ hohen Sicherheitsniveau.
Die Kennwortsuite ist ein Konzept des Netzwerkprotokolls. Es enthält hauptsächlich Algorithmen wie Identitätsauthentifizierung, Verschlüsselung, Nachrichtenauthentifizierung (MAC) und Schlüsselaustausch.
Im Übertragungsprozess des gesamten Netzwerks sind die folgenden Kategorien von Algorithmen gemäß der CIPHER -Suite hauptsächlich in die folgenden Kategorien unterteilt: Es wird hauptsächlich für die Authentifizierung verwendet, wenn der Client und der Serverhandschlag.
Nachrichtenauthentifizierungsalgorithmus: wie SHA1, SHA2, SHA3. Hauptsächlich für Nachrichtenverdauungen verwendet.
Batch -Verschlüsselungsalgorithmus: Zum Beispiel wird AES hauptsächlich zum Verschlüsselung des Informationsflusses verwendet.
Pseudo-Random-Nummer-Algorithmus: Beispielsweise verwendet die Pseudo-Random-Funktion von TLS1.2 die Hash-Funktion des Mac-Algorithmus, um einen Master-Schlüssel zu erstellen-einen 48-Byte-privaten Schlüssel, der von beiden Parteien geteilt wird. Der Hauptschlüssel fungiert als Entropiequelle beim Erstellen eines Sitzungsschlüssels (z. B. Erstellen eines Mac).
Im Netzwerk erfordert die Übertragung einer Nachricht in den folgenden vier Stufen im Allgemeinen eine Verschlüsselung, um die sichere und zuverlässige Übertragung der Nachricht sicherzustellen.
Handshake-/Netzwerkverhandlungsphase:
In der Handshake -Phase zwischen den beiden Parteien ist Verbindungsverhandlungen erforderlich. Die Hauptverschlüsselungsalgorithmen umfassen RSA, DH, ECDH usw. Zu den verwendeten Hauptverschlüsselungsmethoden gehören RSA, DSA, ECDSA (ECC -Verschlüsselung, DSA -Signatur) usw.
Zu den verwendeten Hauptverschlüsselungsmethoden gehören DES, RC4, AES usw.Authentifizierungsstufe der Nachrichtenidentität/fuhrbesichtige Stufe:
Der Hauptzweck besteht Die Hauptverschlüsselungsmethoden umfassen MD5, SHA1, SHA2, SHA3 usw.
ECC: EllipticcurvesCryptography, Kryptographie der elliptischen Kurve. Es ist ein Algorithmus, der auf der Ellipse öffentliche und private Schlüssel basiert. Wird verwendet, um öffentlich-private Schlüssel zu generieren.
ECDSA: Wird für digitale Signaturen verwendet, ist ein digitaler Signaturalgorithmus. Eine effektive digitale Signatur gibt dem Empfänger Grund zu der Annahme, dass die Nachricht von einem bekannten Absender erstellt wurde, damit der Absender nicht leugnen kann, dass die Nachricht gesendet wurde (authentifiziert und unbestreitbar) und dass sich die Nachricht während des Versandprozesses nicht geändert hat. Der ECDSA -Signaturalgorithmus ist eine Kombination aus ECC und DSA. Der gesamte Signaturprozess ähnelt DSA. Der Unterschied besteht darin, dass der in der Signatur angewendete Algorithmus ECC ist und der endgültige signierte Wert ebenfalls in R und S unterteilt ist. Hauptsächlich in der Identitätsauthentifizierungsphase verwendet.
ECDH: Es ist auch ein Hoffman -Baumschlüssel, der auf dem ECC -Algorithmus basiert. Durch ECDH können beide Parteien ein gemeinsames Geheimnis aushandeln, ohne Geheimnisse zu teilen. Dieser gemeinsame geheime Schlüssel wird vorübergehend zufällig für die aktuelle Kommunikation generiert. Sobald die Kommunikation istunterbrochen, der Schlüssel verschwindet. Es wird hauptsächlich in der Handshake -Beratungsphase verwendet.
ECIES: Ist ein integriertes Verschlüsselungsschema, das auch als Hybridverschlüsselungsschema bezeichnet wird und die semantische Sicherheit gegen ausgewählte Klartext- und ausgewählte Kennwort -Textangriffe bietet. ECIEs können verschiedene Funktionen von Funktionen verwenden: Schlüsselverhandlungsfunktion (KA), wichtige Ableitung Funktion (KDF), symmetrisches Verschlüsselungsschema (ENC), Hash-Funktion (Hash) und H-MAC-Funktion (MAC).
ECC ist ein Ellipse -Verschlüsselungsalgorithmus, der hauptsächlich sagt, wie man auf der Ellipse gemäß öffentlichem und privatem Schlüssel generiert und irreversibel ist. ECDSA verwendet hauptsächlich den ECC -Algorithmus, um zu signieren, während ECDH den ECC -Algorithmus verwendet, um symmetrische Schlüssel zu erzeugen. Alle oben genannten drei sind Anwendungen des ECC -Verschlüsselungsalgorithmus. In realen Szenarien verwenden wir häufig Hybridverschlüsselung (symmetrische Verschlüsselung, asymmetrische Verschlüsselung kombiniert, Signaturtechnologie usw.). ECIES ist eine integrierte (hybride) Verschlüsselungslösung, die durch den zugrunde liegenden ECC -Algorithmus bereitgestellt wird. Dies umfasst asymmetrische Verschlüsselung, symmetrische Verschlüsselung und Signaturfunktionen.
metacharset = "utf-8"
Diese Vorbestellungsbedingung soll sicherstellen, dass die Kurve keine Singularitäten enthält.
Wenn sich die Kurvenparameter A und B weiter ändern, nimmt die Kurve auch verschiedene Formen an. Zum Beispiel:
Die Grundprinzipien aller asymmetrischen Verschlüsselung basieren grundsätzlich auf einer Formel k = kg. Wobei K den öffentlichen Schlüssel darstellt, K den privaten Schlüssel repräsentiert und G einen ausgewählten Basispunkt darstellt. Der Algorithmus der asymmetrischen Verschlüsselung besteht darin, sicherzustellen, dass die Formel nicht umgekehrt berechnet werden kann (dh g/k kann nicht berechnet werden). *
Wie berechnet ECC den öffentlichen und privaten Schlüssel? Hier werde ich es nach meinem eigenen Verständnis beschreiben.
Ich verstehe, dass die Kernidee von ECC lautet: Wählen Sie einen Basispunkt G in der Kurve aus, nehmen Sie dann zufällig einen Punkt k (als private Schlüssel) in der ECC -Kurve und berechnen Sie dann unseren öffentlichen Schlüssel K auf KG. Und stellen Sie sicher, dass der öffentliche Schlüssel K auch auf der Kurve sein muss. *
Wie berechnet ich KG? Wie berechnet man KG, um sicherzustellen, dass das Endergebnis irreversibel ist? Dies ist, was der ECC -Algorithmus lösen muss.
Erstens wählen wir zufällig eine ECC-Kurve, a = -3, b = 7, um die folgende Kurve zu erhalten:
In dieser Kurve wähle ich zufällig zwei Punkte aus. Wie berechne ich die Multiplikation dieser beiden Punkte? Wir können das Problem vereinfachen. Die Multiplikation kann alle durch Addition ausgedrückt werden, z. B. 22 = 2+2, 35 = 5+5+5. Solange wir die Zugabe an der Kurve berechnen können, können wir die Multiplikation theoretisch berechnen. Solange Sie dieser Kurve Berechnungen hinzufügen können, können Sie die Multiplikation theoretisch theoretisch berechnen und den Wert von Ausdrücken wie K*g theoretisch berechnen.
Wie berechnet ich die Zugabe von zwei Punkten auf der Kurve? Um die Irreversibilität zu gewährleisten, passt ECC das Additionssystem in der Kurve an.
In der Realität 1+1 = 2, 2+2 = 4, aber im ECC -Algorithmus ist das Additionssystem, das wir verstehen, unmöglich. Daher ist ein für diese Kurve geeignetes benutzerdefiniertes Additionssystem erforderlich.
ECC -Definition, in der Graphie findet die Maschine eine gerade Linie, die sich mit der ECC -Kurve an drei Punkten überschneidet (und auch zwei Punkte). Diese drei Punkte sind p, q und R.
Dann P+Q+R = 0. Wobei 0 nicht der 0 -Punkt auf der Achse ist, sondern der unendliche Punkt in ECC. Das heißt, der Infinity -Punkt wird als 0 Punkte definiert.
In ähnlicher Weise können wir p+q = -r erhalten. Da R und -r über die X -Achse symmetrisch sind, können wir seine Koordinaten auf der Kurve finden.
p+r+q = 0, so p+r = -q, wie in der oh2en Abbildung gezeigt.
Das oh2e beschreibt, wie die Zugabe in der Welt der ECC -Kurven durchgeführt wird.
Aus der oh2en Abbildung ist ersichtlich, dass es nur zwei Kreuzungen zwischen einer geraden Linie und einer Kurve gibt, was bedeutet, dass eine gerade Linie die Tangente einer Kurve ist. Zu dieser Zeit überlappen sich P und R.
Das heißt,P = r. Gemäß dem oben genannten Additionssystem von ECC, P+R+Q = 0, können Sie P+R+Q = 2p+Q = 2R+Q = 0
so erhalten, dass Sie 2p = -q erhalten (kommt es näher an die Formel k = kg unseres asymmetrischen Algorithmus).
Wir kamen also zu der Schlussfolgerung, dass eine Multiplikation berechnet werden kann, die Multiplikation jedoch nur berechnet werden kann, wenn der Punkt tangential ist, und sie kann nur als Multiplikation von 2 berechnet werden. Algorithmus.
Können wir also die Multiplikation einer Zahl zufällig berechnen? Die Antwort lautet ja. Das heißt, die DOT -Produktberechnungsmethode.
Wählen Sie eine Zufallszahl k aus, also was ist K*p gleich?
Wir wissen, dass in der Computerwelt alles binär ist. Da ECC die Multiplikation von 2 berechnen kann, können wir die Zufallszahl k als binär beschreiben und sie dann berechnen. Wenn k = 151 = 10010111
weil 2p = -q, wird KP auf diese Weise berechnet. Dies ist der Punkt mehrerer Generationalgorithmus. Daher kann unter dem ECC -Kurvensystem eine Multiplikation berechnet werden, so dass diese asymmetrische Verschlüsselungsmethode möglich ist.
, warum diese Berechnung irreversibel ist. Dies erfordert viel Abzug, und ich verstehe es auch nicht. Aber ich denke, es kann auf diese Weise verstanden werden:
Unsere Uhren haben im Allgemeinen Zeitskalen. Wenn wir jetzt am 1. Januar 1990 0:00:00 als Ausgangspunkt verwenden, wenn wir Ihnen sagen, dass die Zeit bis zum Ausgangspunkt um ein ganzes Jahr vergangen ist, können wir die Zeit berechnen, in der es erscheint. Das heißt, wir können die Stunde, Minute und den zweiten Zeiger auf 00:00:00 auf die Uhr richten. Andererseits sagte ich, dass die Stunde, Minute und Sekundenzeigung auf der Uhr jetzt auf 00:00:00 hinweisen. Können Sie mir sagen, wie viele Jahre seit dem Ausgangspunkt vergangen sind?
ECDSA -Signaturalgorithmus ähnelt im Grunde genommen anderen DSAs und RSAs, die beide private Schlüsselsignaturen und öffentliche Schlüsselüberprüfung verwenden. Das Algorithmus -System verwendet jedoch den ECC -Algorithmus. Beide Parteien der Interaktion müssen dasselbe Parametersystem annehmen. Das Signaturprinzip lautet wie folgt:
Wählen Sie einen unendlichen Punkt in der Kurve als Basispunkt g = (x, y). Nehmen Sie zufällig ein wenig K auf der Kurve als privaten Schlüssel, und K = k*g berechnet den öffentlichen Schlüssel.
Signaturprozess:
Erstellen Sie eine Zufallszahl R und berechnen Sie rg.
Signaturverifizierungsprozess:
Nachrichten m, rg, s
Berechnen Sie den Hash -Wert H basierend auf der Nachricht. Wenn gleich, ist die Überprüfung erfolgreich.
Formel Inferenz:
hg/s+xk/s = hg/s+x (kg)/s = (h+xk)/gs = rg
Vor dem Einführen des Prinzips erklären Sie, dass ECC das Bindungsrecht und das Austauschgesetz erfüllt.
Hier ist ein Beispiel zu Wiki, um zu veranschaulichen, wie man einen gemeinsamen geheimen Schlüssel erzeugt. Sie können sich auch auf das Beispiel von Aliceandbob beziehen.
Alice und Bob müssen kommunizieren, und beide Parteien haben die Prämisse, öffentliche und private Schlüssel zu sein, die von ECCs basierend auf demselben Parametersystem generiert werden. Daher gibt es ECC und hat einen gemeinsamen Basispunkt G.
Bob verwendet den öffentlichen Schlüsselalgorithmus KB = KB*G, um den öffentlichen Schlüssel KB und den privaten Schlüssel KB und den öffentlichen KB öffentlich zu generieren.
Computing ECDH -Stufe:
Alice verwendet die Berechnungsformel q = ka*kb, um einen geheimen Schlüssel Q zu berechnen.Q '= kb*ka, um einen geheimen Schlüssel Q' zu berechnen.
gemeinsam genutzte Schlüsselüberprüfung:
q = kakb = ka*kb*g = ka*g*kb = ka*kb = kb*ka = q '
Daher muss der von beiden Parteien berechnete gemeinsame Schlüssel mit Q. q -Taste eingeteilt werden.
In Ethereum wird die Eciec -Verschlüsselungshülle in :
1 verwendet. Unter ihnen verwendet der Hash -Algorithmus den sichersten SHA3 -Algorithmus Keccak.
2. Der Signaturalgorithmus verwendet ECDSA
3. Die Authentifizierungsmethode verwendet H-mac
4. Das ECC -Parametersystem verwendet SecP256K1. Für andere Parametersysteme siehe hier, wird H-MAC als Hash-basierte MessageAuthenticationCode bezeichnet. Das Modell lautet wie folgt:
Wenn die UDP -Kommunikation in Ethereum (die Verschlüsselungsmethoden der RPC -Kommunikation unterschiedlich sind) wird die oh2e Implementierungsmethode übernommen und erweitert.
Erstens lautet die Struktur der UDP -Kommunikation von Ethereum wie folgt:
wobei SIG Signaturinformationen mit einem privaten Schlüssel verschlüsselt sind. MAC ist eine Verdauung der gesamten Nachricht, PTYPE ist der Ereignistyp der Nachricht, und Daten sind die von RLP codierten Übertragungsdaten.
Die gesamte Verschlüsselungs-, Authentifizierungs- und Signaturmodell seines UDP lautet wie folgt:
Blockchain -VerschlüsselungstechnologieFähigkeiten zur digitalen Verschlüsselung sind der Schlüssel zur Verwendung und Entwicklung von Blockchain -Fähigkeiten. Sobald die Verschlüsselungsmethode geknackt ist, wird die Datensicherheit der Blockchain in Frage gestellt und die Panzerbarkeit der Blockchain wird nicht mehr vorhanden. Der Verschlüsselungsalgorithmus ist in einen symmetrischen Verschlüsselungsalgorithmus und einen asymmetrischen Verschlüsselungsalgorithmus unterteilt. Blockchain verwendet zuerst asymmetrische Verschlüsselungsalgorithmen. Das kryptografische System der öffentlichen Schlüssel in asymmetrischen Verschlüsselungsalgorithmen ist im Allgemeinen in drei Kategorien unterteilt, basierend auf den Problemen, auf denen es basiert: Problem mit großer ganzzahliger Differenzierung, diskretem logarithmischem Problem und elliptischer Kurvenproblem. Zunächst wird die Einführung von Blockchain -Verschlüsselungskompetenz -Verschlüsselungsalgorithmen im Allgemeinen in symmetrische Verschlüsselung und asymmetrische Verschlüsselung unterteilt. Die asymmetrische Verschlüsselung bezieht sich auf Verschlüsselungsfähigkeiten, die in die Blockchain integriert sind, um die Sicherheitsanforderungen und die Überprüfung der Eigentümerschaft zu erfüllen. Die asymmetrische Verschlüsselung verwendet normalerweise zwei asymmetrische Kennwörter im Verschlüsselungs- und Entschlüsselungsprozess, als öffentliche Schlüssel und private Schlüssel. Asymmetrische Schlüsselpaare haben zwei Eigenschaften: Eine ist, dass nach einem Schlüssel (öffentlicher oder privater Schlüssel) verschlüsselt ist und nur den anderen entspre chenden Schlüssel entschlüsseln kann. Zweitens kann der öffentliche Schlüssel anderen offenbart werden, während der private Schlüssel vertraulich ist und andere den entspre chenden privaten Schlüssel nicht durch den öffentlichen Schlüssel berechnen können. Die asymmetrische Verschlüsselung ist im Allgemeinen in drei Primärtypen unterteilt: Problem der Differenzdifferenzierung von großem Ganzzahl, diskretes logarithmisches Problem und Problem mit elliptischer Kurve. Die Problemklasse der Differenzierung der großen Ganzzahl bezieht sich auf die Verwendung des Produkts von zwei großen Primzahlen als verschlüsselte Zahlen. Da das Auftreten von Primzahlen unregelmäßig ist, können wir nur Lösungen durch kontinuierliche Versuchsberechnungen finden. Diskrete logarithmische Problemklasse bezieht sich auf einen asymmetrischen verteilten Verschlüsselungsalgorithmus, der auf der Schwierigkeit diskreter Logarithmen und starker Einweg-Hashing-Funktionen basiert. Elliptische Kurven beziehen sich auf die Verwendung planarer elliptischer Kurven, um einen Satz asymmetrischer spezieller Werte zu berechnen, und Bitcoin verwendet diesen Verschlüsselungsalgorithmus. Die Verwendung von Szenarien der asymmetrischen Verschlüsselung in Blockchain umfasst hauptsächlich Informationsverschlüsselung, digitale Signatur und Anmeldeauthentifizierung. (1) Im Informationsverschlüsselungsszenario verschlüsselt der Absender (bezeichnet A) die Informationen mit dem öffentlichen Schlüssel des Empfängers (bezeichnet B) und sendet sie an B und B entschlüsselt die Informationen mit seinem eigenen privaten Schlüssel. Dies ist das Szenario für die Bitcoin -Transaktionsverschlüsselung. (2) Im Szenario Digital Signature verwendet der Absender A seinen eigenen privaten Schlüssel, um die Informationen zu verschlüsseln und an B. B zu sendenSchlüssel zum Entschlüsseln der Informationen und dann sicherstellen, dass die Informationen von A. (3) im Szenario der Anmeldeauthentifizierung gesendet werden, verwendet der Client den privaten Schlüssel, um die Anmeldeinformationen zu verschlüsseln und an den Server zu senden, und der Server verwendet dann den öffentlichen Schlüssel des Clients, um die Authentifizierungs -Login -Informationen zu entschlüsseln. Bitte beachten Sie die Unterschiede zwischen den oben genannten drei Verschlüsselungsplänen: Informationsverschlüsselung ist die öffentliche Schlüsselverschlüsselung und die private Schlüsselentschlüsselung, um die Sicherheit von Informationen zu gewährleisten. Die digitale Signatur ist eine private Schlüsselverschlüsselung und die öffentliche Schlüsselentschlüsselung, um das Eigentum an der digitalen Signatur zu gewährleisten. Authentifizierende private Schlüsselverschlüsselung, öffentliche Schlüsselentschlüsselung. Wenn Sie das Bitcoin-System als Beispiel einnehmen, ist der asymmetrische Verschlüsselungsmechanismus in Abbildung 1 dargestellt: Das Bitcoin-System erzeugt im Allgemeinen eine 256-Bit-Zufallszahl als privaten Schlüssel, indem der Zufallszahlengenerator am unteren Rand des Betriebssystems aufgerufen wird. Die Gesamtmenge an privaten Schlüsseln von Bitcoin ist groß, und es ist äußerst schwierig, alle privaten Schlüsselräume zu durchqueren, um private Tasten von Bitcoin zu erhalten, daher ist die Passwortwissenschaft sicher. Zur einfachen Identifizierung wird der 256-Bit-Bitcoin-private Schlüssel über den SHA256-Hash-Algorithmus und Base58 umgewandelt, um einen privaten Schlüssel mit 50-Charakter zu bilden, der für Benutzer leicht erkennen und schreiben kann. Der öffentliche Schlüssel von Bitcoin ist eine 65-Byte-Zufallszahl, die vom privaten Schlüssel über den elliptischen Kurvenalgorithmus SecP256K1 generiert wird. Der öffentliche Schlüssel kann verwendet werden, um die in Bitcoin -Transaktionen verwendete Adresse zu generieren. Der Erzeugungsprozess ist, dass der öffentliche Schlüssel zum ersten Mal von SHA256 und RIPEMD160 gehasht wird, um ein 20-Byte-Zusammenfassungergebnis (d. H. Das Ergebnis von Hash160) zu erzeugen, und dann durch die SHA256-Hash-Algorithmus und Base58 transformiert, um eine 33-Charter-Bitcoin-Adresse zu bilden. Öffentliche Schlüssel Generation Die how ist irreversibel, dh der private Schlüssel kann nicht aus dem öffentlichen Schlüssel abgeleitet werden. Die öffentlichen und privaten Tasten von Bitcoin werden normalerweise in Bitcoin -Brieftaschendateien gespeichert, und die privaten Schlüssel sind die wichtigsten. Der private Schlüssel zu verlieren bedeutet, alle Bitcoin -Eigenschaften an der entspre chenden Adresse zu verlieren. In den vorhandenen Bitcoin- und Blockchain-Systemen wurden multi-private Schlüsselverschlüsselungsfähigkeiten auf der Grundlage der praktischen Nutzungsanforderungen abgeleitet, um zunehmend empfindliche und chaotische Szenarien wie Multisignaturen zu erfüllen.
⒊ Was sind die wichtigsten kryptografischen Technologien der Blockchain?
Der spezifische Inhalt und die Klassifizierung sind wie folgt:1. Übersicht über asymmetrische Verschlüsselungsalgorithmen
Asymmetrische Verschlüsselung ist die Verwendung von zwei asymmetrischen Kennwörtern im Verschlüsselungs- und Entschlüsselungsprozess, nämlich den öffentlichen Schlüssel und den privaten Schlüssel. Der öffentliche Schlüssel kann anderen weitergegeben werden, während der private Schlüssel vertraulich behandelt wird. Nachdem die Informationen mit einem der Schlüssel (öffentliche oder private Schlüssel) verschlüsselt haben, kann nur der andere entspre chende Schlüssel entpackt werden.2. Die Hauptmethoden der asymmetrischen Verschlüsselungsalgorithmen
DIVIS -Ganzzahl -Zersetzungsprobleme Kategorie: Verwenden Sie das Produkt von zwei größeren Primzahlen als verschlüsselte Zahl. Da das Auftreten von Primzahlen unregelmäßig ist, kann das Finden einer Cracking -Methode nur durch kontinuierliche Versuchsberechnungen erfolgen. Diskrete logarithmische Problemklasse: Ein asymmetrischer verteilter Verschlüsselungsalgorithmus, bei dem starke Einweg-Hash-Funktionen auf der Grundlage der Schwierigkeit des diskreten Logarithmus verwendet werden. Elliptische Kurvenklasse: Verwenden Sie die Ebene Elliptische Kurven, um gruppierte asymmetrische Spezialwerte zu berechnen, und Bitcoin verwendet diese Art von Verschlüsselungsalgorithmus.3. Anwendungsszenarien der asymmetrischen Verschlüsselungstechnologie
Informationsverschlüsselung: Der Absender der Informationen verwendet den öffentlichen Schlüssel des Empfängers, um die Informationen vor dem Senden zu verschlüsseln, und der Empfänger verwendet seinen eigenen privaten Schlüssel, um die Informationen zu entschlüsseln, um die Sicherheit der Informationen zu gewährleisten. Digitale Signatur: Der Absender verwendet seinen eigenen privaten Schlüssel, um die Informationen zu verschlüsseln und zu senden. Der Empfänger verwendet den öffentlichen Schlüssel des Absenders, um die Informationen zu entschlüsseln, wodurch sichergestellt wird, dass die Informationen vom Absender gesendet werden. Login -Authentifizierung: Der Client verwendet den privaten Schlüssel, um die Anmeldeinformationen zu verschlüsseln und sendet sie an den Server. Nach dem Empfangen verwendet der Server den öffentlichen Schlüssel des Clients, um die Anmeldeinformationen zu entschlüsseln und zu authentifizieren.Zusammenfassend ist die kryptografische Technologie von Blockchain auf asymmetrische Verschlüsselungsalgorithmen zentriert. Durch die Kombination von öffentlichen und privaten Schlüssel gewährleistet es die Sicherheit, Integrität und Unveränderlichkeit von Daten im Blockchain -System.
Verständnis der Logik und den Prinzipien der Blockchain -Technologie in einem Artikel
Blockchain -Technologie ist ein neues Modell der Computertechnologieanwendungen wie verteilte Datenspeicherung, Punktdelieferung, Konsensmechanismus und Algorite -Verschlüsselung. Als Basistechnologie und Bitcoin -Infrastruktur handelt es sich im Grunde genommen um eine dezentrale Datenbank.
1. Blockchain -Technologie -Logik
Blockchain -Technologie -Logik kann in drei Stufen unterteilt werden: Protokollbeschichtung, erweiterte Beschichtung und Anwendungsschicht.
Protokollschicht
Definition: Die Protokollbeschichtung ist die niedrigste Technologie, ähnlich wie ein Computerbetriebssystem, die Pflege eines Netzwerkknotens und die Bereitstellung eines Brandes für den Anruf.
technische Komposition: Enthält hauptsächlich vier Aspekte: Netzwerkprogrammierung, verteilte Algorithmen, verschlüsselte Signaturen und Datenspeichertechnologie. Unter diesen sind Netzwerkprogrammierfunktionen eine wesentliche Überlegung bei der Auswahl von Programmiersprachen, da verteilte Algorithmen im Wesentlichen in der Geschäftslogik implementiert werden, die Verschlüsselungssignaturtechnologie direkt und mittel verwendet wird, und die Datenbanktechnologie ist auch insbesondere auf der Nutzung der Nutzung.
Weiterer Abschnitt: Die Protokollschicht kann weiter in Speicher- und Netzwerkschichten unterteilt werden. Die Datenspeicherung kann kostenlos sein und hat eine größere Wahlfreiheit. Verteilte Algorithmen, verschlüsselte Signaturen usw. müssen bei der Implementierung des Punkt-zu-Punkt-Netzwerks verwendet werden, sodass es zur Netzwerkschicht gehört.
Erweiterte Schicht
Definition: Die erweiterte Ebene ähnelt einem Computerantrieb, um Blockchain -Produkte praktischer zu gestalten.
Typ: Derzeit gibt es zwei Typen: Eine ist eine Vielzahl von Handelsmärkten, die ein wichtiger Kanal für Fiat -Währungen für den Austausch gegen Kryptographie sind. Die andere besteht darin, die Expansion in bestimmte Richtungen durchzuführen, z. Unter ihnen ist "Smart Contracts" die Entwicklung regulärer Anwendungen auf Expansionsebene.
technische Verwendung: Es gibt keine Einschränkung der in fortschrittlichen Ebenen verwendeten Technologien und können verteiltes Speicher, maschinelles Lernen, VR, Internet -Dinge, Big Data und mehr umfassen. Die Wahl der Programmiersprache ist auch unabhängiger und kann vollständig von der Protokollschicht getrennt werden.
Anwendungsschicht
Definition: Die Anwendungsschicht ähnelt einer Vielzahl von Softwareprogrammen auf einem Computer und ist ein Produkt, das sie tatsächlich direkt verwenden kann. Anwendungsstatus
: Die Anwendungsschicht ist zu diesem Zeitpunkt nahezu leer, und der sofortige Markt muss die Anwendung angezeigt, die den Markt beleuchtet, wodurch die Blockchain -Technologie schnell in das gewöhnliche Haus eintritt. Light Wallet (Client) ist die einfachste und häufigste Anwendung von Anwendungsschichten.
2. Blockchain -Technologieprinzipien
Blockchain -Technologie bezieht sich kurz auf Technologien, die gemeinsam zuverlässige Datenbanken durch Dezentralisierung und günstige Aufgabe führen. Dies ist das Ergebnis der Integration verschiedener früherer Kunsttechnologien, die mit Bedacht mit Datenbanken kombiniert werden, um neue Methoden zur Datenaufzeichnung, Lieferung, Speicherung und Präsentation zu bilden.
Desentralisation und Vertrauen
Desentralisation: Die Blockchain -Technologie ermöglicht es jedem im System, an der Datenaufzeichnung und -speicherung teilzunehmen, anstatt die Aufzeichnungen und Speicherarbeit zur Fertigstellung an die zentrale Organisation zu senden.
Vertrauen: Im Blockchain -System müssen die Teilnehmer die Hintergrundinformationen anderer nicht verstehen und sich nicht darauf verlassen müssenGarantie oder Garantie von Institutionen Dritter. Die Blockchain -Technologie stellt sicher, dass Systemaufzeichnungen, Senden und Speichern von Wertübertragungsaktivitäten sowie die Endergebnisse zuverlässig sein müssen.
Kollektive Wartung und zuverlässige Datenbank
Kollektive Wartung: Die Blockchain -Technologie baut das eigene Netzwerk von P2P durch verteilte kollektive Betriebsmethoden auf. In diesem Netzwerk kann jeder an der Aufzeichnung, Speicherung und Bestätigung von Daten teilnehmen.
Zuverlässige Datenbank: Durch komplexe Überprüfungsmechanismen behalten Blockchain -Datenbanken Integrität, Kontinuität und Konsistenz. Während einige Teilnehmer es falsch machen, können sie die Integrität der Blockchain nicht ändern und die Daten im Block nicht beschädigen.
Zeitstempel und asymmetrische Verschlüsselung
Zeitstempel: Jede Blockchain -Daten enthält Zeitstempel, die Zeit- und Datenvariabilität gewährleisten.
Asymmetrische Verschlüsselung: Die Blockchain -Technologie verwendet asymmetrische Verschlüsselungsalgorithmen, um die Datensicherheit und die Datenschutz zu gewährleisten. Asymmetrische Verschlüsselungsalgorithmen umfassen zwei Teile: öffentlicher Schlüssel und privater Schlüssel. Öffentliche Schlüssel werden verwendet, um Daten zu verschlüsseln, und persönliche Schlüssel werden verwendet, um Daten zu entschlüsseln. Allgemeine Mechanismen und byzantinische allgemeine Mechanismen
Byzantinische allgemeine Probleme: Die Quelle des Prinzips der Blockchain-Technologie kann in ein allgemeines Problem des Math-Byzantinischen Problems zusammengefasst werden. Es erstreckt sich auf das Leben von Internetzhonglai, wie es verhindern kann, dass sie von böswilligen Zerstörern getäuscht und irregeführt werden und falsche Entscheidungen ohne zuverlässigen zentralen Knoten und zuverlässigen Kanal treffen können.
Konsensmechanismus: Blockchain -Technologie löst byzantinische allgemeine Probleme und bietet eine Möglichkeit, ein Konsensnetzwerk zu erstellen, ohne einem einzigen Knoten zu vertrauen. Der Konsensmechanismus ist ein mathematischer Algorithmus im Blockchain -System, um Vertrauen zu schaffen und die Rechte und Interessen zwischen verschiedenen Knoten zu gewinnen.
Es erstellt ein eigenes P2P -Netzwerk durch verteilte kollektive Betriebsmethoden und gewährleistet die Integrität, Kontinuität und Konsistenz von Daten durch komplexe Verifizierungsmechanismen und Konsensusalgorithmen. Mit der kontinuierlichen Entwicklung und Verbesserung der Blockchain -Technologie wird es in verschiedenen Bereichen eine immer wichtigere Rolle spielen.