DE112017000394T5 - Kryptografische asic enthaltend eine schaltungscodierte transformationsfunktion - Google Patents

Kryptografische asic enthaltend eine schaltungscodierte transformationsfunktion Download PDF

Info

Publication number
DE112017000394T5
DE112017000394T5 DE112017000394.6T DE112017000394T DE112017000394T5 DE 112017000394 T5 DE112017000394 T5 DE 112017000394T5 DE 112017000394 T DE112017000394 T DE 112017000394T DE 112017000394 T5 DE112017000394 T5 DE 112017000394T5
Authority
DE
Germany
Prior art keywords
cryptographic
block
integrated circuit
hash coding
hash
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112017000394.6T
Other languages
English (en)
Inventor
Edward L. Rodriguez De Castro
Adrian George Port
Sagar V. Reddy
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Blockchain Asics Inc
Original Assignee
Blockchain Asics Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Blockchain Asics Inc filed Critical Blockchain Asics Inc
Publication of DE112017000394T5 publication Critical patent/DE112017000394T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/76Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1458Denial of Service
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Abstract

Es ist eine transformationsfähige integrierte Schaltung zur Verwendung in kryptografischen Proof-of-Work-Systemen vorgesehen. Die transformationsfähige integrierte Schaltung enthält einen Transformationsblock, der unter anderen Schaltungsanordnungskomponenten in dem kryptografischen Datenpfad der transformationsfähigen integrierten Schaltung eingebettet ist. Der Transformationsblock kann zu einer Zeit nach der Herstellung der integrierten Schaltung konfiguriert werden, um als Schaltungsanordnung eine beliebige von mehreren mathematischen Transformationsfunktionen zu verkörpern, wodurch einem Benutzer ermöglicht wird, systemisch die Ergebnisse von kryptografischen Operationen, die durch die integrierte Schaltung durchgeführt werden, zu modifizieren, während das hohe Leistungsvermögen und Effizienzeigenschaften von anwendungsspezifischen integrierten Schaltungen bewahrt werden. Ausführungsbeispiele der hier offenbarten Technologie ergeben einen bisher unerreichbaren Flexibilitätspegel bei der Entwicklung von anwendungsspezifischen integrierten Schaltungen innerhalb Proof-of-Work-Verifizierungssystemen, wie privaten Blockchain-Systemen, öffentlichen Blockchain-Systemen, digitaler Rechtsverwaltung, sicheren Token und anderen kryptografiebezogenen Gebieten.

Description

  • Technisches Gebiet
  • Die offenbarte Technologie bezieht sich allgemein auf die Gestaltung von integrierten elektronischen Schaltungen, und insbesondere beziehen sich einige Ausführungsbeispiele auf die Gestaltung von kryptografischen integrierten Schaltungen
  • Hintergrund
  • Anwendungsspezifische integrierte Schaltungen (ASICs) sind integrierte Schaltungen, die gestaltet und hergestellt sind, um einem bestimmten Zweck oder einer bestimmten Anwendung zu dienen. ASICs sehen eine schnellere Rechengeschwindigkeit im Vergleich zu langsameren, allgemeineren Lösungen vor, wie Softwarelösungen, die auf Universalprozessoren ablaufen, oder vor Ort programmierbare Gate Arrays (FPGAs). Wie der Name aussagt, sind ASICs im Allgemeinen so gestaltet, dass sie nur eine spezifische Anwendung durchführen, wodurch sich ein Kompromiss zwischen Flexibilität und Rechengeschwindigkeit ergibt. Die Wichtigkeit von ASICs auf Kryptografie bezogenen Gebieten nimmt zu, wie Proof-of-Work-Systemen, digitalen Rechtsverwaltungssystemen und anderen Anwendungen, die im Allgemeinen strenge Geschwindigkeits- und Effizienzanforderungen haben.
  • Figurenliste
  • Die hier offenbarte Technologie wird gemäß einem oder mehreren verschiedenen Ausführungsbeispielen im Einzelnen mit Bezug auf die folgenden Figuren beschrieben. Die Zeichnungen sind nur für Zwecke der Veranschaulichung vorgesehen und stellen lediglich typische Ausführungsbeispiele der offenbarten Technologie dar. Diese Zeichnungen sind vorgesehen, das Verständnis des Lesers für die offenbarte Technologie zu erleichtern und sollen nicht als Beschränkung der Breite, des Bereichs und der Anwendbarkeit hiervon betrachtet werden. Es ist festzustellen, dass aus Gründen der Klarheit und Einfachheit der Illustration diese Zeichnungen nicht notwendigerweise maßstabsgerecht sind.
    • 1 illustriert ein beispielhaftes kryptografisches Verarbeitungssystem, innerhalb dessen Ausführungsbeispiele der hier offenbarten Technologie implementiert sein können.
    • 2 illustriert eine beispielhafte transformationsfähige integrierte Schaltung gemäß Ausführungsbeispielen der hier offenbarten Technologie, die einen programmierbaren Transformationsblock, enthält, der sich an einem der Punkte entlang des Datenpfads der integrierten Schaltungen befindet, der als Teil der hier offenbarten Technologie betrachtet wird.
    • 3 illustriert eine beispielhafte transformationsfähige integrierte Schaltung gemäß Ausführungsbeispielen der hier offenbarten Technologie, die einen programmierbaren Transformationsblock enthält, der sich an einem anderen Punkt entlang des Datenpfads der integrierten Schaltungen befindet, der als Teil der hier offenbarten Technologie betrachtet wird.
    • 4 illustriert eine beispielhafte transformationsfähige integrierte Schaltung gemäß Ausführungsbeispielen der hier offenbarten Technologie, die zwei programmierbare Transformationsblöcke enthält, die sich beide an Punkten entlang des Datenpfads der integrierten Schaltungen befinden, der als Teil der hier offenbarten Technologie betrachtet wird.
    • 5A illustriert eine beispielhafte programmierbare Transformationsblockkonfiguration vor der Codierung der Transformationsfunktion gemäß Ausführungsbeispielen der hier offenbarten Technologie.
    • 5B illustriert einen beispielhaften programmierbaren Transformationsblock, der gemäß einem binären Schlüssel entsprechend Ausführungsbeispielen der hier offenbarten Technologie codiert wurde.
    • 6 illustriert einen beispielhaften Funktionscodierprozess gemäß Ausführungsbeispielen der hier offenbarten Technologie.
    • 7 ist ein Blockschaltbild eines grundsätzlichen kryptografischen Verarbeitungssystems, das eine kryptografische integrierte Schaltung mit mehreren kryptografischen Verarbeitungskernen gemäß Ausführungsbeispielen der hier offenbarten Technologie implementiert.
    • 8 illustriert eine beispielhafte transformationsfähige integrierte Schaltung mit mehreren kryptografischen Verarbeitungskernen gemäß Ausführungsbeispielen der hier offenbarten Technologie.
    • 9 illustriert eine andere beispielhafte transformationsfähige integrierte Schaltung mit mehreren kryptografischen Verarbeitungskernen, wobei jeder kryptografische Verarbeitungskern einen programmierbaren Transformationsblock enthält, gemäß Ausführungsbeispielen der hier offenbarten Technologie.
    • 10 illustriert eine beispielhafte transformationsfähige integrierte Doppelzweckschaltung gemäß Ausführungsbeispielen der hier offenbarten Technologie.
    • 11 illustriert eine beispielhafte Berechnungskomponente, die bei der Implementierung verschiedener Merkmale von Ausführungsbeispielen der offenbarten Technologie verwendet werden kann.
    • 12 illustriert eine beispielhafte transformationsfähige Validationsvorrichtung für ein kryptografisches Ergebnis, die einen transformationsfähigen kryptografischen Hash-Codierungskern und einen Konfigurationsschlüssel enthält.
    • 13 illustriert ein Beispiel für eine transformationsfähige Validationsvorrichtung für ein kryptografisches Ergebnis, die zwei separate transformationsfähige kryptografische Hash-Codierungskerne und zwei separate Konfigurationsschlüssel enthält.
  • Es ist nicht beabsichtigt, dass die Figuren umfassend sind oder die Erfindung auf die offenbarte genaue Form beschränken. Es ist darauf hinweisen, dass die Erfindung mit Modifikationen und Änderungen ausgeübt werden kann, und dass die offenbarte Technologie nur durch die Ansprüche und deren Äquivalente beschränkt ist.
  • Detaillierte Beschreibung der Ausführungsbeispiele
  • Gemäß verschiedenen Ausführungsbeispielen der offenbarten Technologie ist eine integrierte Schaltung vorgesehen zur Verwendung bei kryptografischen Verifizierungsprozessen auf einer Proof-of-Work-Basis, enthaltend, aber nicht hierauf beschränkt, kryptografische Netzwerktransaktions-Verifizierungssysteme, die häufig auf dem sich entwickelnden Gebiet der Blockchain-Technologie verwendet werden. Die integrierte Schaltung enthält einen oder mehrere Schaltungsblöcke, die eine kryptografische Funktion implementieren, im Allgemeinen eine kryptografische Einweg-Funktion (OWF), die schwierig umzukehren ist, wie einen sicheren Hash-Codierungsalgorithmus. Eine oder mehrere Transformationsfunktionen, die von einem oder mehreren Benutzern ausgewählt und als Blöcke einer Datenpfadschaltung verkörpert werden, sind auf dem Datenpfad von integrierten Schaltungen an einem Punkt vor zumindest einem der vorbeschriebenen Schaltungsblöcke, die eine kryptografische Funktion implementieren, angeordnet. Jeder Schaltungsblock, der die Transformationsfunktion implementiert, kann durch den Benutzer programmiert werden durch Zuführen eines Konfigurationsschlüssels, beispielsweise eines Schlüssels, der aus einer Reihe von binären Digits zusammengesetzt ist. Ein derartiger Schlüssel ist dann als Datenpfadschaltung innerhalb des Transformationsblocks verkörpert.
  • Folgend einer derartigen Programmierung bewirkt die Schaltung innerhalb des Transformationsblocks eine spezifische programmatische Transformation, die den von dem Benutzer programmierten Schlüssel auf die Daten reflektiert, die sie von der Schaltung vor ihr entlang des Datenpfads der integrierten Schaltungen empfängt, und leitet transformierte Daten zu weiteren Schaltungen entlang des Datenpfads weiter. Somit beeinflusst, ungeachtet des Inhalts der von dem Transformationsblock empfangenen Daten, die Transformation, die er anwendet, direkt und folgerichtig den endgültigen Wert, der von den weiteren Schaltungen entlang des Datenpfads berechnet wird, enthaltend die Blöcke oder Schaltungsblöcke, die eine vorbeschriebene kryptografische Funktion implementieren.
  • Aufgrund der Interaktion der Transformation mit den mathematischen Eigenschaften der einbezogenen kryptografischen Algorithmen, insbesondere ihrer Natur als OWFs, die schwierig umzukehren sind (hier und an anderen Punkten dieses Dokuments können Begriffe wie „schwierig“ und „leicht“ in dem Sinn von Rechenkomplexitätstheorie verstanden werden, insbesondere polynomer Zeittheorie), ist die kombinierte Wirkung die Erzeugung einer systemischen Transformation der in dem endgültigen Wert enthaltenen Bits, der von der Schaltung berechnet wurde, die nicht leicht entschlüsselt wird, nicht leicht von Störungen unterscheidbar ist und nicht leicht kopierbar von einer Partei, der das vollständige vorherige Wissen über den oder die Schlüssel des Benutzers fehlt, aber doch vollständig übereinstimmend und leicht kopierbar und somit verifizierbar durch eine Partei mit früherem Wissen über die Schlüssel oder Zugriff zu den Mitteln für deren Verwendung bei der Berechnung, selbst wenn ihr das Wissen über diese fehlt, ist (wie einer Partei, die im Besitz einer ASIC ist, die zur Verkörperung der Schlüssel innerhalb der Datenpfadschaltungen programmiert ist).
  • Die Anwendung des Vorstehenden innerhalb des häufig für Proof-of-Work-Berechnungen verwendeten Feldes der Blockchain-Technologie ermöglicht eine große Ausdehnung in der Flexibilität ihrer Anwendung. Insbesondere ermöglicht sie Benutzern, tatsächlich eine nahezu unbegrenzte Anzahl von orthogonalen Blockchains zu schaffen. Jede derartige Blockchain kann vollständig selbständig und getrennt voneinander sein, wie es durch einen eindeutigen Satz von gültigen Lösungen des Proof-of-Work-Problems gekennzeichnet ist, doch alle derartigen Blockchains sind vollständig intern kohärent hinsichtlich der kryptografischen Referenzen jedes Blocks gegenüber dem vorhergehenden, und vollständig demonstrierbar für jede Partei mit Zugriff zu einer ASIC, die konfiguriert ist, innerhalb der kryptografischen Struktur der gegebenen Blockchain zu arbeiten.
  • Somit ermöglichen verschiedene Ausführungsbeispiele der hier beschriebenen Technologie die Schaffung einer neuen Generation von ASICs, die für die Netzwerktransaktionsverifizierung von Blockchain-Operationen dediziert sind, die in der Lage sind, Transaktionen über eine nahezu unbegrenzte Anzahl von selbständigen und vollständig orthogonalen Blockchains zu verifizieren, öffentlich oder privat. Derartige Blockchains können sicher in der unmittelbaren Nähe voneinander und über mehrere oder die gleichen Netzwerke betrieben werden.
  • Zusätzlich sind verschiedene Implementierungen der hier beschriebenen Technologie vorgesehen, die verschiedene Verfahren zum Verwenden des Transformationsfunktionsschlüssels oder der Transformationsfunktionsschlüssel als Datenpfadschaltungen innerhalb der integrierten Schaltung in einer solchen Weise beschreiben, dass sie zu einem sehr beschränkten Leistungsoverhead führen, wodurch Kernvorteile, die ASICs gegenüber anderen Typen von Lösungen in Bezug auf Geschwindigkeit und Effizienz haben, zurückgehalten werden.
  • Weiterhin werden verschiedene Verfahren vorgesehen, um weiterhin den oder die Schlüssel, die als Datenpfadschaltungen innerhalb der integrierten Schaltung verkörpert sind, zu schützen. Derartige Verfahren enthalten, ohne Beschränkung: verschiedene Verfahren zum Verhindern der Entdeckung des Schlüssels oder der Schlüssel über eine Analyse der Eingaben und Ausgaben der integrierten Schaltung, die Verwendung von einer oder mehreren Sperrsicherungen in der Verbindungsschaltung zwischen der Konfigurationsschnittstelle, über die der Benutzer die Transformationsfunktion und den Schaltungsblock oder die Schaltungsblöcke der Schaltung, die die Transformation als Schaltung verkörpert, programmieren kann; die Verwendung von mehrteiligen Schlüsseln; die Verwendung von mehreren Transformationsfunktionen; die Verwendung von Transformationsfunktionen, zu denen nur während des Herstellungsprozesses der integrierten Schaltung zugegriffen werden kann; und andere.
  • Andere Merkmale und Aspekte der offenbarten Technologie werden ersichtlich anhand der folgenden detaillierten Beschreibung, die in Verbindung mit den begleitenden Zeichnungen gegeben wird, die beispielhaft die Merkmale gemäß Ausführungsbeispielen der offenbarten Technologie illustrieren.
  • Proof-of-Work-Verifizierungssysteme sind eine Klasse von Verifizierungssystemen, die auf der Lösung komplexer Rechenprobleme basiert, nicht für einen intrinsischen Wert der angekommenen Antwort, sondern für den als Beweis dienenden Wert, den eine derartige Antwort liefert, dass eine beträchtliche Menge von Rechenarbeit aufgewendet wurde, um ein derartiges Ergebnis zu erzeugen. Daher der Name. Poof-of-Work-Verifizierungssysteme haben Anwendungen über einen breiten Bereich von modernen Rechensystemen, enthaltend, ohne Beschränkung: Systeme, die für die Abschreckung der Ablehnung von Service(DoS)-Netzwerkattacken verwendet werden; Systeme, die für die Verhinderung von unerwünschter kommerzieller E-Mail (Spam) verwendet werden; und Systeme, die für andere Anwendungen verwendet werden.
  • Eine derartige andere Verwendung von Proof-of-Work-Verifizierung in ihren Operationen ist der kryptografische Netzwerktransaktions-Verifizierungsprozess, der dem sich entwickelnden Gebiet der Blockchain-Technologie unterliegt. Die Bockchain-Technologie enthält die verschiedenen unterliegenden Technologien, die dezentralisierte vertrauenslose Transaktionssysteme ermöglichen, wie solche, die kryptografische Währungen stützen, von denen die bekannteste Bitcoin ist.
  • Als ein Mittel zum Vorsehen eines Kontextes, innerhalb dessen einige Implementierungen der hier beschriebenen Technologie arbeiten können, ist es nützlich, kurz zu diskutieren, wie Blockchainsysteme arbeiten, bevor in eine Beschreibung jeder Illustration eingetreten wird.
  • Eine Blockchain ist eine Auflistung von nicht editierbaren Registrierungen in zeitlicher Folge, die alle vergangenen Transaktionen innerhalb eines Systems beginnend von der Zeit eines anfänglichen Transaktionsblocks (der als der Ursprungsblock bezeichnet werden kann) bis zu dem gegenwärtigen identifiziert. Transaktionsblöcke, enthaltend detaillierte Informationen, betreffend eine oder mehrere gültige Transaktionen, die innerhalb des Netzwerks stattgefunden haben, aber nicht in irgendeinem Transaktionsblock enthalten waren, der vorher zu der Blockchain angefügt wurde, werden kontinuierlich an das Ende der Blockchain angefügt.
  • Jeder Transaktionsblock wird durch einen oder mehrere eindeutige Anfangsblöcke identifiziert, die eine Bezugnahme auf alle innerhalb des Transaktionsblocks enthaltene Transaktionen sowie andere sachdienliche Informationen enthalten. Als ein Beispiel kann eine Bezugnahme auf verschiedene Transaktionen, die in einem Transaktionsblock enthalten sind, mittels einer Merkle-Damgärd-Konstruktion oder durch andere Mittel in einen Transaktionsanfangsblock eingefügt werden.
  • Anfangstransaktionsblöcke und die in diesen enthaltenen Informationen sind das primäre Organisationsprinzip einer Blockchain. Beispielsweise können Anfangstransaktionsblöcke unter anderem eine kryptografisch verifizierbare Bezugnahme auf den Anfangstransaktionsblock des unmittelbar vorhergehenden gültigen Blocks von Transaktionen in der Blockchain enthalten. Derartige Bezugnahmen verbinden kryptografisch alle benachbarten Blöcke miteinander, jeder zu jedem. Dies führt zu der Organisation aller Blöcke in eine einzige ununterbrochene Kette von Blöcken oder Blockchain, in der gleichen Weise wie ein Satz von physikalischen Kettenverbindungen jede mit der vorhergehenden Form einer physikalischen Kette verbunden hat.
  • Welche Transaktionsblöcke an das Ende der Blockchain anzufügen sind, kann durch ein Proof-of-Work-System identifiziert werden, wie vorstehend beschrieben ist. Ein derartiges Proof-of-Work-System kann auf kryptografischen OWFs basieren, wie ebenfalls vorstehend beschrieben ist. OWFs werden manchmal als kryptografische Hash-Codieroperationen bezeichnet. Innerhalb des Gebiets der Blockchain-Technologie können sie manchmal auch als Hash-Codieroperationen bezeichnet werden.
  • Innerhalb des Gebiets der Blockchain-Technologie wird der Proof-of-Work-Verifizierungsprozess im Allgemeinen bei Anfangstransaktionsblöcken durchgeführt anstelle der Transaktionen selbst. Aus diesem Grund kann, während der Proof-of-Work-Prozess durchgeführt wird, ein Transaktionsblock durch viele Anfangstransaktionsblöcke in Bezug genommen werden, obgleich schließlich die überwiegende Mehrheit von diesen verworfen wird. Somit ist es vollständig normal für jede Gruppe von Transaktionen, durch eine große Anzahl von Anfangstransaktionsblöcken in Bezug genommen zu werden, von denen alle korrekt gebildet sind gemäß dem Protokoll und von denen alle wahre und genaue Informationen enthalten, von denen jedoch alle geringfügig verschieden voneinander sind.
  • Derartige Anfangstransaktionsblöcke werden manchmal als Kandidatenanfangs-Transaktionsblöcke bezeichnet. Es ist völlig normal, dass die Anzahl von Kandidatenanfangs-Transaktionsblöcken groß ist, besonders, wenn Hochleistungs-ASICs einbezogen sind. Beispielsweise kann eine einzige Hochleistungs-ASIC mehrere hundert Milliarden Kandidatenanfangs-Transaktionsblöcke pro Sekunde zusammensetzen, Hash-Codieren, Auswerten und Verwerfen.
  • Im Allgemeinen werden Kandidatenanfangs-Transaktionsblöcke einem oder mehreren Hash-Codierungsvorgängen unterzogen, und der sich ergebende Hash-Wert wird mit bestimmten vorexistierenden Kriterien für die Gültigkeit verglichen. In dem Fall von Bitcoin sind die verwendeten besonderen Hash-Codieroperationen zwei aufeinanderfolgende Anwendungen der 256-Bit-Version der zweiten Version des Secure Hashing Algorithm (SHA), wie durch das National Institute for Standards in Technology (NIST) definiert ist. Dies wird manchmal als SHA-256 bezeichnet, und zwei aufeinanderfolgende Anwendungen hiervon werden manchmal als Doppel-SHA-256 bezeichnet. Zur Vereinfachung kann es manchmal auch als Doppel-SHA bezeichnet werden. Jedoch bedeutet dies nichts, da dies lediglich der spezifische Algorithmus ist, der in dem Fall von Bitcoins verwendet wird; andere Blockchains können andere Algorithmen verwenden und tun dies. In gleicher Weise können verschiedene hier verwendete Ausführungsbeispiele der Technologie verschiedene unterschiedliche Algorithmen innerhalb des Gebiets der Blockchain-Technologie verwenden, während andere Ausführungsbeispiele auf andere Gebiete als die Blockchain-Technologie anwendbar sind.
  • Wie bei anderen Verwendungen von Proof-of-Work-Verifizierungssystemen üblich ist, bestimmt der Vergleich von Kandidatenergebnissen mit den Gültigkeitskriterien die weitere Verarbeitung. Wenn der Kandidatenanfangs-Transaktionsblock verfehlt, die Gültigkeitskriterien zu bestehen, wird er verworfen, und das System bewegt sich zu der Verarbeitung des nächsten Kandidatenanfangs-Transaktionsblocks. Wenn der Kandidatenanfangs-Transaktionsblock die Gültigkeitskriterien besteht, wird er als ein gültiger Anfangstransaktionsblock betrachtet.
  • Wenn ein gültiger Anfangstransaktionsblock gefunden wird, werden eine Reihe von anderen Operationen durchgeführt. Innerhalb des Gebiets der Blockchain-Technologie kulminieren derartige Operationen im Allgemeinen in der Anfügung des gültigen Anfangstransaktionsblocks an das Ende der Blockchain, zusammen mit den Transaktionsblöcken, auf die er Bezug nimmt. Andere Operationen wie das Verteilen einer Belohnung an die Partei, die zuerst die Entdeckung des gültigen Anfangstransaktionsblocks berichtet hat, können auch auftreten. Nachfolgend beginnt die Suche nach einem neuen gültigen Anfangstransaktionsblock von Neuem und der Prozess wiederholt sich.
  • Vorstehend werden allgemein bestimmte Aspekte des Gebiets der Blockchain-Technologie beschrieben, insbesondere einige Aspekte, die sich auf die Natur der Blockchain, den Prozess des Anfügens neuer Transaktionsblöcke an diese, die Rolle und die Zusammensetzung von Anfangstransaktionsblöcken, die Operation des Proof-of-Work-Prozesses und andere beziehen. Jedoch wurden diese vielen anderen Aspekte der Blockchain-Technologie nicht beschrieben.
  • Als ein Beispiel und ohne Beschränkung wird vorstehend nicht beschrieben, was als die andere Hälfte dieses Prozesses charakterisiert werden kann, das heißt, der Prozess des Erzeugens von Transaktionen als Gegensatz zu dem Prozess des Gruppierens und Verarbeitens von Transaktionen. Im Allgemeinen sind die Aspekte der Blockchain-Technologie, die detaillierter beschrieben wird, diejenigen, die der hier beschriebenen Technologie am meisten zugehörig sind, und einige von ihren Anwendungen innerhalb kryptografischer integrierter Schaltungen, die auf diesem Gebiet verwendet werden, während Aspekte, die im Allgemeinen durch Software, die auf Universal-Mikroprozessoren ablaufen, durchgeführt werden oder in anderer Weise weniger zugehörig zu der hier beschriebenen Technologie sind, werden weniger detailliert oder überhaupt nicht beschrieben.
  • Die vorherrschenden Prinzipien hinter der Operation aller Aspekte einer Blockchain sind durch ein Protokoll definiert, das häufig als ein Blockchain-Protokoll bezeichnet wird. Dies enthält solche Aspekte, die vorstehend im Einzelnen beschrieben sind. Umgekehrt sind Blolckchain-Protokolle so gestaltet, dass sie besonderen Notwendigkeiten der spezifischen Anwendung, der zu dienen die Blockchain gestaltet ist, genügen, wie durch den Protokollgestalter interpretiert wird. Derartige Anforderungen können von Fall zu Fall variieren, und somit müssen nicht alle Blockchain-Protokolle die gleichen sein. Tatsächlich können einige beträchtlich variieren.
  • Das Blockchain-Protokoll, das die Operationen der Bitcoin unterliegenden Blockchain beherrscht, wird manchmal einfach als das Bitcoin-Protokoll bezeichnet. Das Bitcoin-Protokoll ist eine zukunftsträchtige Arbeit in dem engen Sinn des Begriffs; das meiste, wenn nicht alles von dem, was wir nun als eine Blockchain-Technologie bezeichnen, ist eine abgeleitete Arbeit in einem Grad oder einem anderen auf der Grundlage des Bitcoin-Protokolls.
  • Jede Blockchain wird durch ein Blockchain-Netzwerk aufrechterhalten, das auf dem Gebiet der Blockchain-Technologie manchmal einfach als das Netzwerk bezeichnet wird. Im Wesentlichen ist die Definition eines Blockchain-Netzwerks gerade heraus: es ist die Sammlung von Hardware und Software, die eine Blockchain durch Implementieren der durch das Protokoll definierten Richtlinien aufrechterhält. In der Praxis können Blockchain-Netzwerke komplex sein. Sie sind verteilte heterogene Kombinationen einer großen Verschiedenheit von Vorrichtungen, permanent oder intermittierend mit dem Netzwerk verbunden, laufen mit unterschiedlicher Software, die zu verschiedenen Zeiten von verschiedenen Leuten geschrieben wurde, führen unterschiedliche Operationen durch und arbeiten zusammen in einem vertrauenslosen System. Einige Blockchain-Netzwerke können extensiv und verwenden eine beträchtlich fortgeschnittene Technologie, enthaltend komplizierte kryptografische ASICs.
  • Im Allgemeinen hat sich eine Technologie zum Lösen der rechnerisch intensiven Proof-of-Work-Berechnungen, die in Blockchain-Systeme einbezogen sind, in den letzten Jahren schnell entwickelt. Beispielsweise wurde in dem Fall von Bitcoin-Transaktionen der Proof-of-Work-Prozess, der in die Entdeckung von gültigen Anfangstransaktionsblöcken einbezogen ist, ursprünglich unter Verwendung von Softwareanwendungen, die auf Universalprozessoren ablaufen, durchgeführt. Jedoch sind die Geschwindigkeit und die Effizienz in Proof-of-Work-Systemen überragend, einschließlich solcher, die innerhalb des Kontextes von Blockchain-Systemen verwendet werden. Demgemäß haben sich Bitcoin-Miningoperationen zu spezialisierten Hardwarelösungen hin bewegt, einschließlich ASICs. ASICs ergeben eine tiefgreifende Erhöhung von Geschwindigkeit und Effizienz, die aus der Leitungspegelgeschwindigkeit folgt, mit der Berechnungen durchgeführt werden können. Wie der Name aussagt, werden ASICs entworfen und hergestellt, um eine spezifische Anwendung durchzuführen, in diesem Fall die mathematischen Operationen, die in die Implementierung eines spezifischen kryptografischen Protokolls einbezogen sind.
  • Der Erfolg des Bitcoin-Netzwerks hat die sichere Natur der Blockchain-Technologie nachgewiesen. Demgemäß hat die Verwendung von Blockchains auf anderen verwandten Gebieten mit der Zeit Interesse gewonnen. Jedoch sind ASICs so gestaltet, dass sie spezifischen Elementen des Protokolls innerhalb dessen, wofür sie zu implementieren sind, eng angepasst, insbesondere den Elementen des Protokolls, das die Besonderheiten des durch das Protokoll definierten Proof-of-Work-Systems beschreibt. Für das Bitcoin-Netzwerk ist jedes ASIC gestaltet zum Zusammensetzen von Anfangsblöcken mit großer Geschwindigkeit, wie durch das Bitcoin-Protokoll beschrieben ist, Unterziehen von diesen zwei aufeinanderfolgenden Stufen der 256-Bit-Version des Secure Hashing Algorithm (SHA-256)-Protokolls und schließlich Prüfen der Gültigkeit des sich ergebenden binären 256 Bit-Hashwerts durch Vergleichen von diesem mit einem vorbestimmten Gültigkeitstest, der in dem Fall des Bitcoin-Protokolls als der Schwierigkeitspegel verkörpert ist, wie vorstehend diskutiert wurde.
  • Dies beschränkt die Flexibilität und die Gelegenheit, die Blockchain-Technologie außerhalb des Bitcoin-Netzwerks selbst fortzupflanzen, oder von Netzwerken, die in einem Grad oder einem anderen darauf basieren oder „gekettet“ sind, da Hochleistungs-Proof-of-Work-Implementierungen im Allgemeinen die Verwendung von ASICs erfordern und ASICs der gegenwärtigen Generation nur in der Lage sind, ein hochspezifisches Proof-of-Work-System zu implementieren. Darüber hinaus kann, aufgrund der Natur des Proof-of-Work-Prozesses, jede private Blockchain, die auf dem gleichen Proof-of-Work-System, das von Bitcoin verwendet wird, für den eigenen Proof-of-Work-Prozess beruht, leicht durch dritte Parteien gestört werden, die eine kommerziell erhältliche Ausrüstung verwenden, die zum Lösen des durch das Bitcoin-Protokoll definierten Proof-of-Work-Systems gestaltet ist.
  • Ausführungsbeispiele der hier offenbarten Technologie sind auf die Gestaltung, Herstellung und Verwendung von anwendungsspezifischen integrierten Schaltungen für auf die Kryptografie bezogene Anwendungen gerichtet. Genauer gesagt, verschiedene Ausführungsbeispiele der hier offenbarten Technologie beziehen sich auf ASICs mit einer oder mehreren programmierbaren Transformationsfunktionen, die als in den Hochgeschwindigkeits-Datenpfad der integrierten Schaltung eingebundene Schaltungen verkörpert sind. Durch Codierung der Transformationsfunktion als Datenpfadschaltung ermöglichen Ausführungsbeispiele der hier offenbarten Technologie ASICs, ein beliebiges aus einem sehr breiten Bereich von Proof-of-Work-Systemen als durch den Benutzer ausgewählt zu implementieren.
  • Dies wiederum ermöglicht Blockchain-Systemen, sicher betrieben zu werden, selbst in der Anwesenheit einer großen Anzahl von anderen ASICs, die spezifisch gestaltet sind, um die Proof-of-Work-Berechnungen zu lösen, die in die Transaktionsverifizierung von kryptografischen Netzwerken von Blockchain-Transaktionen einbezogen sind, enthalten, aber nicht beschränkt auf, Bitcoin-Mining-ASICs, die anderenfalls die Sicherheit oder Integrität von auf Blockchain basierenden Systemen, die nicht die hier offenbarte Technologie verkörpern, bedrohen können.
  • Derartige Ausführungsbeispiele der hier beschriebenen Technologie ermöglichen die Schaffung einer gesamten neuen Generation von ASICs mit spezifischer Gestaltung für Blockchain-Anwendungen, die einen gegenwärtig nicht vorstellbaren Pegel von Flexibilität und Sicherheit liefern. Weiterhin ermöglichen Implementierungen der hier beschriebenen Technologie das Erreichen einer derartigen Flexibilität als Antwort auf nahezu vernachlässigbare Kosten des Verarbeitungsvermögens.
  • Bevor die Ausführungsbeispiele der Technologie der vorliegenden Offenbarung im Einzelnen diskutiert werden, ist es hilfreich, den gesamten Arbeitsfluss, der die Verarbeitung der Proof-of-Work-Operationen, die in die Netzwerk-Transaktionsverifizierung von Blockchain-Transaktionen durch Systeme, die ASICs, die für diese Anwendung gestaltet sind, einbezogen sind, umgibt, zu diskutieren.
  • 1 illustriert ein Beispiel eines kryptografischen Netzwerktransaktions-Verifizierungssystems 100 eines allgemeinen Typs, das üblicherweise für Blockchain-Anwendungen verwendet wird und eine integrierte Schaltung 103 enthält, die für diese Anwendung gestaltet ist, innerhalb der Ausführungsbeispiele der hier offenbarten Technologie implementiert sein können.
  • Zur Vereinfachung der Diskussion werden die Elemente und die Gesamtoperation des beispielhaften kryptografischen Verarbeitungssystems 100 mit Bezug auf das Bitcoin-Protokoll und das die Bitcoin-Blockchain stützende Netzwerk beschrieben. Obgleich sie in dieser Weise beschrieben ist, ist für einen Fachmann, der die vorliegende Offenbarung liest, offensichtlich, dass das beispielhafte kryptografische Netzwerktransaktions-Verifizierungssystem 100 auf Verwendungen, die andere als das Bitcoin-Netzwerk sind, anwendbar ist.
  • Beispiele für andere Anwendungen können sowohl private als auch öffentliche Blockchains enthalten, die für andere Anwendungen als diejenigen, die allgemein mit Bitcoin assoziiert sind, verwendet werden. Einige Beispiele für Anwendungen, die andere als diejenigen, die mit Bitcoin assoziiert sind, die die Blockchain-Technologie verwenden können, enthalten nicht abschließend: Zwischenbank-Ausgleichssysteme; Börsensysteme; Warenaustauschsysteme; digitale Rechtsverwaltungssysteme; Eigentumsrechts-Registrierungssysteme; Registrierungssysteme des gewerblichen Rechtsschutzes; Lagersteuersysteme; Erfüllungssysteme; Paketverfolgungssysteme; Zahlungssysteme; Sicherheitsidentifizierungssysteme; Verwendung von Fonds- und Transparenzsysteme; allgemeine Buchhaltungssysteme; allgemeine Zahlungssysteme; allgemeine Registrierungssysteme, allgemeine Finanzsysteme; und andere.
  • Das beispielhafte kryptografische Netzwerktransaktions-Verifizierungssystem 100 enthält eine integrierte Schaltung 103. Bei verschiedenen Ausführungsbeispielen kann die integrierte Schaltung 103 eine oder mehrere Verarbeitungskomponenten, enthaltend eine Konfigurationsschnittstelle 104, eine Anfangstransaktionsblock-Bildungsvorrichtung 105, einen Puffer 106, einen kryptografischen Hash-Codierungskern 107, eine Bewertungsvorrichtung 111 und eine Entscheidungsmaschine 112. Bei einigen Ausführungsbeispielen können eine oder mehrere Komponenten in eine einzige integrierte Schaltung kombiniert sein, wie in 1 illustriert ist, in der alle Komponenten, die in der integrierten Schaltung 103 dargestellt sind, körperlich Teil derselben integrierten Schaltung sind (das heißt, alle die innerhalb desselben Siliziumstücks gebildet sind). Bei anderen Ausführungsbeispielen können einige von diesen aus verschiedenen Siliziumstücken gebildet und durch eine Verbindungsschaltung miteinander kombiniert sein. Jede der Komponenten wird im Einzelnen mit Bezug auf das beispielhafte kryptografische Verarbeitungssystem 100 diskutiert.
  • Ein Benutzer 101 kann durch die Konfigurationsschnittstelle 104 einen oder mehrere Parameter der integrierten Schaltung konfigurieren. Nicht beschränkende Beispiele von Parametern der integrierten Schaltung, die durch den Benutzer 101 konfiguriert werden können, enthalten: Initialisierung; interne Taktgeschwindigkeit; oder Modus der Kombination mit anderen Netzwerksystemen; unter anderen. Bei einigen Ausführungsbeispielen kann der Benutzer 101 ein mit der integrierten Schaltung 103 über ein Endgerät kommunizierender Mensch sein. Bei anderen Ausführungsbeispielen kann der Benutzer 101 ein automatischer Prozess sein, der auf einem System oder Netzwerk abläuft. Bei verschiedenen Ausführungsbeispielen kann die Konfigurationsschnittstelle 104 auch durch den Benutzer 101 verwendet werden, um Operationscharakteristiken der integrierten Schaltung 103 zu überwachen. Nicht beschränkende Beispiele für Operationscharakteristiken, die überwacht und zu dem Benutzer 101 geliefert werden können, können enthalten: gegenwärtige Aktivitäten; Operationstemperatur; Operationsspannung; oder Fehlerzustand; unter anderen.
  • Jeder Kandidatenanfangs-Transaktionsblock, der nachfolgend von der integrierten Schaltung 103 verarbeitet wird, wird durch die Anfangstransaktionsblock-Bildungsvorrichtung 105 unter Verwendung einer Kombination aus von der Bildungsvorrichtung selbst erzeugten Daten und von der Transaktion erhaltenen Daten und Systemdaten 102b zusammengesetzt. Bei verschiedenen Ausführungsbeispielen werden die Transaktions- und Systemdaten 102b durch einen vorhergehenden Prozess kompiliert, die Mining-Software 102a. In vielen Fällen ist die Mining-Software 102a ein Stück von Software, die auf einem Universalprozessor abläuft und mit dem Rest des Blockchain-Netzwerks über eine Verbindung zu dem öffentlichen Internet kommuniziert, welches sie verwendet, um die Transaktions- und Systemdaten 102b zu kompilieren.
  • Gewisse Eigenschaften der Gesamtarchitektur von Blockchain-Systemen, insbesondere die gut gestaltete Abteilungsbildung zwischen verschiedenen Aspekten des Systems, ergeben eine wirksame Isolierung zwischen den Operationen der integrierten Schaltung 103 und den Besonderheiten betreffend die Operationen der Mining-Software 102a. Als ein Ergebnis sind die meisten Besonderheiten betreffend die Operationen der Mining-Software, die enthalten, wo sie sich körperlich aufhält, welche Vorgänge sie verwendet, um dem Rest des Netzwerks zu kommunizieren, welche Vorgänge sie verwendet, um Netzwerkdaten in die Transaktions- und Systemdaten 102b zu kompilieren, und andere, sind transparent für die Operationen der integrierten Schaltung 103. In gleicher Weise ist, ob das Netzwerk, mit dem die Mining-Software 102a verbunden ist, das Bitcoin-Netzwerk oder ein anderes Netzwerk, das für die Aufrechterhaltung einer anderen Blockchain verantwortlich ist, auch transparent für die integrierte Schaltung 103, und für verschiedene Ausführungsbeispiele der hier beschriebenen Technologie.
  • Die Transaktions- und Systemdaten 102b können beispielsweise enthalten: Systemdatum und -zeit; Protokollversion; eine Merkle-Dammgård-Konstruktion, die die Gruppe von individuellen Transaktionen darstellt, die in dem Transaktionsblock enthalten sind; einen eindeutigen Identifizierer für den jüngsten Block, der an die Blockchain anzufügen ist; unter anderen. Bei Empfang der Transaktions- und Systemdaten 102b werden diese von der Anfangstransaktionsblock-Bildungsvorrichtung 105 weiterhin sorgfältig bearbeitet, um einen oder mehrere Kandidatenanfangs-Transaktionsblöcke zu erzeugen.
  • Bei verschiedenen Ausführungsbeispielen kann die Anfangstransaktionsblock-Bildungsvorrichtung 105 die Transaktions- und Systemdaten 102b analysieren und diesen bestimmte andere Elemente hinzufügen, wie einen sequenziellen Zähler, um eine Reihe von Anfangstransaktionsblöcken zu erzeugen, die sämtlich gültig gebildet sind und sämtlich angemessen den gleichen Satz von Transaktionen darstellen, aber sämtlich leicht verschieden voneinander sind.
  • Bei verschiedenen Ausführungsbeispielen kann die Rate, mit der die Anfangstransaktionsblock-Bildungsvorrichtung 105 Anfangstransaktionsblöcke erzeugen kann, die sämtlich genau einen Block von Transaktionen wie von den Transaktions- und Systemdaten 102b empfangen darstellen, aber sämtlich geringfügig voneinander verschieden sind, schnell sein, in dem Bereich von mehreren Milliarden oder mehreren hundert Milliarden individuellen Kandidatenanfangs-Transaktionsblöcken pro Sekunde. Abhängig von der Implementierung kann ein Speicher 106 geschaffene Kandidatenanfangs-Transaktionsblöcke, die auf die Verarbeitung durch den Hash-Codierungskern 107 warten, speichern.
  • Jede integrierte Schaltung 103 kann einen oder mehrere Hash-Codierungskerne oder andere kryptografische Verarbeitungskerne enthalten. Aus Gründen der Einfachheit ist das beispielhafte kryptografische Verarbeitungssystem 100 so gezeigt, dass es einen einzigen Hash-Codierkern 107 enthält. Bei verschiedenen Ausführungsbeispielen können mehrere parallel Hash-Codier- oder andere kryptografische Verarbeitungskerne implementiert sein, wie in 7 illustriert ist. Der Hash-Codierkern 107 enthält einen oder mehrere Hash-Codierblöcke, In dem in 1 illustrierten Beispiel enthält der Hash-Codierkern 107 zwei Hash-Codierblöcke 108, 110. Ein Hash-Codierblock kann ein Satz von Schaltungen konfiguriert sein, die die mathematischen Operationen durchführen, die durch den anwendbaren Hash-Codierstandard definiert sind. Bei verschiedenen Ausführungsbeispielen kann der Hash-Codierkern 107 einen gemeinsamen Hash-Codierstandard verkörpern, wie beispielsweise den Secure Hashing Algorithm (SHA). Bei einigen Ausführungsbeispielen kann die 256-Bit-Version von SHA (SHA-256) verwendet werden. Bei anderen Ausführungsbeispielen kann der Hash-Codierkern 107 einen einzigen Hash-Codierblock enthalten. Verschiedene Ausführungsbeispiele können mehr als zwei Hash-Codierblöcke enthalten.
  • In dem illustrierten Ausführungsbeispiel von 1 ist jeder Hash-Codierblock 108, 110 so gestaltet, dass er eine Folge von mathematischen Operationen gemäß dem SHA-256-Standard durchführt. Der Hash-Codierkern 107 verarbeitet jeden Kandidatenanfangs-Transaktionsblock gemäß dem implementierten kryptografischen Standard. Bei einigen Ausführungsbeispielen kann ein erster Hash-Codierblock 108 die durch die Anfangstransaktionsblock-Bildungsvorrichtung 105 erzeugten Kandidatenanfangs-Transaktionsblöcke als eine Eingabe annehmen und diese einer mathematischen Operation, die durch einen Standard-Hash-Codieralgorithmus definiert ist, unterziehen. Der erste Hash-Codierblock 108 gibt einen ersten Hash-Wert 109 für jeden Kandidatenanfangs-Transaktionsblock aus, den er von der Anfangstransaktionsblock-Bildungsvorrichtung 105 empfängt. Jeder erste Hash-Wert 109 ist mit einem gegebenen Kandidatenanfangs-Transaktionsblock assoziiert, wobei er als ein Typ von „digitaler Signatur“ wirkt. Bei verschiedenen Ausführungsbeispielen kann der erste Hash-Wert 109 weiterhin durch einen zweiten Hash-Codierblock 110 verarbeitet werden. Dies ist eine Darstellung der doppelten Hash-Codieroperation, wie diejenige, die innerhalb des Bitcoin-Netzwerks verwendet wird. Bei einigen Ausführungsbeispielen kann der zweite Hash-Codierblock 110 die gleiche kryptografische Operation wie der erste Hash-Codierblock 108 implementieren. Bei verschiedenen Ausführungsbeispielen kann der zweite Hash-Codierblock 110 eine andere kryptografische Operation als der erste kryptografische Hash-Codierblock 108 implementieren.
  • Die Ausgabe des Hash-Codierkerns 107 wird mit den vorexistierenden Kriterien zum Identifizieren eines gültigen Blocks verglichen. Bei verschiedenen Ausführungsbeispielen kann die Ausgabe des Hash-Codierkerns 107 die Ausgabe aus dem zweiten Hash-Codierblock 110 sein. Eine Bewertungsvorrichtung 111 der integrierten Schaltung 103 nimmt den von dem Hash-Codierkern 107 ausgegebenen endgültigen Hash-Wert für jeden Kandidatenanfangs-Transaktionsblock und prüft, ob die verarbeitete Ausgabe den vorbestimmten Gültigkeitskriterien genügt. In dem besonderen Fall des Bitcoin-Netzwerks werden die Gültigkeitskriterien durch einen bestimmten numerischen Wert (häufig als der Schwierigkeitspegel bezeichnet) ausgedrückt, den der numerische Wert der 256 Bit-Zahl, die durch die endgültige Hash-Ausgabe erzeugt wird, nicht überschreiten sollte, wenn er als gültig zu betrachten ist. Somit besteht, wenn der numerische Wert des endgültigen Hash den Gültigkeitspegel um einen beliebigen Betrag überschreitet, der Kandidatenanfangs-Transaktionsblock nicht den Gültigkeitstest, und wenn er den Schwierigkeitspegel nicht überschreitet, besteht er den Gültigkeitstest. In Blockchain-Systemen, die andere als das eine, das mit dem Bitcoin-Netzwerk assoziiert ist, sind, können einige Ausführungsbeispiele die gleichen Kriterien zum Bestimmen der Gültigkeit verwenden, während andere Ausführungsbeispiele andere Kriterien zum Bestimmen der Gültigkeit verwenden können.
  • Wenn die Bewertungsvorrichtung 111 bestimmt, dass der endgültige Hash-Wert den Gültigkeitskriterien nicht genügt, kann die Entscheidungsmaschine 112 den Kandidatenanfangs-Transaktionsblock, der mit der von der Bewertungsvorrichtung 111 bewerteten verarbeiteten Ausgabe assoziiert ist, verwerfen. Wenn die Bewertungsvorrichtung 111 bestimmt, dass der endgültige Hash-Wert den Gültigkeitskriterien genügt, dann teilt die Entscheidungsmaschine 112 diesen Umstand extern über eine zu einer Erfolgsnachricht-Empfangsvorrichtung 113a gesendete Erfolgsnachricht 113b mit. Eine Erfolgsnachricht 113b zusammen mit anderen Informationen, die mit ihr assoziiert sind, wie den Anfangstransaktionsblöcken, die mit ihr und anderen Punkten assoziiert sind, ist der kryptografische Proof-of-Work, den zu erzeugen das gesamte System gestaltet ist.
  • Bei verschiedenen Ausführungsbeispielen kann die Erfolgsnachricht-Empfangsvorrichtung 113b die gleiche wie die Mining-Software 102a sein. Bei anderen Ausführungsbeispielen kann die Erfolgsnachricht-Empfangsvorrichtung 113b ein anderer Prozess als die Mining-Software 102a sein. Bei Empfang der Erfolgsnachricht 113b kann die Erfolgsnachricht-Empfangsvorrichtung 113a eine Anzahl von nachfolgenden Aktionen durchführen. Bei verschiedenen Ausführungsbeispielen beziehen sich derartige Aktionen im Allgemeinen auf die Kommunikation der Entdeckung eines gültigen Anfangstransaktionsblocks zu dem Rest des Netzwerks, und kulminiert im Allgemeinen mit dem Anfügen eines neuen Transaktionsblocks an das Ende der Blockchain und dem Start der Suche nach dem nächsten gültigen Block von Transaktionen. In dem spezifischen Fall des Bitcoin-Netzwerks können derartige Aktionen zusätzlich andere Aspekte wie das Verteilen einer Belohnung an die erste Partei, die die Entdeckung eines neuen gültigen Anfangstransaktionsblocks berichtet, und andere enthalten.
  • Jedoch ist es, und wie es der Fall mit der vorstehenden Beschreibung betreffend die Operations-Mining-Software 102a war, wert, festzustellen, dass die exakte Natur der Erfolgsnachricht-Empfangsvorrichtung 113b und der Spezifikationen betreffend welche Aktionen folgend dem Empfang der Erfolgsnachricht 113a vorgenommen oder nicht vorgenommen werden können, für verschiedene Ausführungsbeispiele der hier beschriebenen Technologie transparent ist. In gleicher Weise ist der Umstand, ob die Erfolgsnachricht-Empfangsvorrichtung 113b mit dem Netzwerk kommuniziert, das mit der Aufrechterhaltung der Bitcoin unterliegenden Blockchain assoziiert ist, oder dem Netzwerk, das mit der Aufrechterhaltung einer anderen Blockchain assoziiert ist, für einige Ausführungsbeispiele der hier beschriebenen Technologie transparent.
  • Mit dem grundsätzlichen Arbeitsfluss der Blockchain-Technologie, die mit Bezug auf eine beispielhafte Implementierung beschrieben wird, werden Ausführungsbeispiele der hier offenbarten Technologie mit Bezug auf das beispielhafte kryptografische Verarbeitungssystem 100 in 1 diskutiert. Zur Erleichterung der Diskussion werden die Ausführungsbeispiele mit Bezug auf Bitcoin und die hiermit assoziierte Blockchain-Implementierung diskutiert. Wie vorstehend diskutiert ist, ist jedoch für einen diese Beschreibung lesenden Fachmann offensichtlich, dass die hier beschriebenen Ausführungsbeispiele auf vielen anderen verwandten Gebieten anwendbar sind.
  • 2 illustriert eine beispielhafte transformationsfähige integrierte Schaltung 203 gemäß Ausführungsbeispielen der hier offenbarten Technologie. Die beispielhafte transformationsfähige integrierte Schaltung 203 ist innerhalb eines kryptografischen Verarbeitungssystems 200 implementiert, ähnlich dem mit Bezug auf 1 beschriebenen System 100. Die transformationsfähige integrierte Schaltung 203 kann eine Konfigurationsschnittstelle 204, eine Anfangstransaktionsblock-Bildungsvorrichtung 205, einen Puffer 206, einen kryptografischen Verarbeitungskern 207, eine Bewertungsvorrichtung 211 und eine Entscheidungsmaschine 212 enthalten, ähnlich den vorstehend mit Bezug auf die integrierte Schaltung 103 in 1 diskutierten Komponenten.
  • Wie vorstehend diskutiert wurde, ordnen Ausführungsbeispiele der hier offenbarten Technologie eine als Schaltung verkörperte Transformationsfunktion innerhalb des kryptografischen Datenpfads einer integrierten Schaltung 203 an. In dem in 2 illustrierten Beispiel enthält der kryptografische Verarbeitungskern 207 der transformationsfähigen integrierten Schaltung 203 zwei Hash-Codierblöcke 208, 210 und einen programmierbaren Transformationsblock 215. Die Hash-Codierblöcke 208, 210 können implementiert sein, um eine Hash-Codierung oder eine andere kryptografische Funktion wie beispielsweise eine Schaltung zum Durchführen eines Hash-Codierprozesses gemäß dem SHA-256-Standard enthalten.
  • In dem illustrierten Beispiel ist der programmierbare Transformationsblock 215 ein Block aus elektronischer Schaltung, der spezifisch gestaltet ist, um geeignet zu sein, direkt in den Liniengeschwindigkeits-Datenpfad einer kryptografischen integrierten Hochleistungsschaltung integriert zu sein, aber noch in der Lage zu verbleiben, programmiert zu werden, um irgendeine aus einem weiten Bereich von möglichen mathematischen Transformationsoperationen bei Eingabedaten, die sie von einer Schaltung vor ihr in dem Datenpfad für integrierte Schaltungen empfangen hat, durchzuführen und die sich ergebenden transformierten Daten zu einer Schaltung, die ihr in dem Datenpfad für integrierte Schaltungen nachfolgt, mit voller Liniengeschwindigkeit auszugeben.
  • Bei einigen Ausführungsbeispielen wie dem in 2 illustrierten ist der programmierbare Transformationsblock 215 in den Datenpfad des kryptografischen Verarbeitungskerns 207 integriert. Die ASIC in diesem Beispiel ist derart konfiguriert, dass alle Komponenten innerhalb des kryptografischen Verarbeitungskerns 307 entlang eines einzigen Hochgeschwindigkeits-Datenpfads angeordnet sind, ein einziger Eingabepunkt und ein einziger Ausgabepunkt an jedem Ende des Datenpfads vorhanden ist und kein externer Zugriff zu Signalen, die sich zwischen den den kryptografischen Verarbeitungskern 207 aufweisenden Komponenten bewegen, vorhanden ist. Die Integration des programmierbaren Transformationsblocks 215 in den Hochgeschwindigkeits-Datenpfad innerhalb des kryptografischen Verarbeitungskerns 207 ermöglicht, dass der kryptografische Verarbeitungskern 207 mit Leitungsgeschwindigkeit arbeitet, und somit leidet die Schaltung insgesamt nur sehr wenig an einer Verschlechterung des Leistungsvermögens im Vergleich mit einem kryptografischen Verarbeitungskern, der nicht den programmierbaren Transformationsblock 215 enthält. Dies wird erzielt durch Verkörpern einer Transformationsfunktion als eine Datenpfadschaltung (das heißt, einen programmierbaren Transformationsblock 215), in einer Weise, die nachfolgend im Einzelnen offenbart wird.
  • In gleicher Weise schützt die Anordnung der Schaltung innerhalb des kryptografischen Verarbeitungskerns 207 in einem vereinigten Datenpfad den Konfigurationsschlüssel 214 (im Einzelnen mit Bezug auf die 5A, 5B und 6 diskutiert) vor einer Erfassung. Der kryptografische Verarbeitungskern 207 enthält einen einzigen Eingangspunkt und einen einzigen Ausgangspunkt an jedem Ende und hat keinen externen Zugriff auf Signale, die sich zwischen den den kryptografischen Verarbeitungskern 207 aufweisenden Komponenten bewegen. Daher ist die Schaltung innerhalb des kryptografischen Verarbeitungskerns 207 (z.B. der programmierbare Transformationsblock 215) gegen Offenbarung oder Entdeckung des Konfigurationsschlüssels 214, der in dem programmierbaren Transformationsblock 215 verkörpert ist, geschützt durch Vergleichen der Eingaben und der Ausgaben, die durch die verschiedenen entlang des Datenpfads angeordneten Komponenten erzeugt werden.
  • In dem spezifischen Fall des in 2 illustrierten Ausführungsbeispiels ist der Datenpfad innerhalb des kryptografischen Verarbeitungskerns 207 so angeordnet, dass der einzige Eingangspunkt für alle von dem kryptografischen Verarbeitungskern 207 verarbeiteten Daten der erste Hash-Codierblock 208 ist. Von hier werden Daten wie Anfangstransaktionsblöcke entlang eines Datenpfads vorwärtsbewegt, der sie durch den programmierbaren Transformationsblock 215 und dann durch den zweiten Hash-Codierblock 210 nimmt. Der zweite Hash-Codierblock 210 ist der einzige Ausgangspunkt, und nachfolgende Daten verlassen den kryptografischen Verarbeitungskern 207 und werden zu der Bewertungsvorrichtung 211 weiterbewegt. Das Anordnen des programmierbaren Transformationsblocks 215 vor zumindest einem Hash-Codierblock (in diesem Beispiel vor dem Hash-Codierblock 210) schützt vor einer Entdeckung des Konfigurationsschlüssels 214, der in dem programmierbaren Transformationsblock 215 verkörpert ist, über analytische Techniken. Beispielsweise schützt eine derartige Anordnung vor einer Entdeckung des Konfigurationsschlüssels 214 durch Einfügung von Daten, die bekannt sind, ein bestimmtes Ergebnis zu erzeugen, nachdem sie einem besonderen Satz von kryptografischen Prozessen (z.B. doppelter SHA-256-Hashcodierung) unterzogen wurden, und dann Vergleichen des durch den transformationsfähigen kryptografischen Verarbeitungskern 207 erzeugten Ergebnisses, um den Konfigurationsschlüssel 214 abzuleiten.
  • Bei anderen Ausführungsbeispielen kann, wie nachfolgend im Einzelnen mit Bezug auf 3 diskutiert wird, der programmierbare Transformationsblock 215 vor dem ersten Hash-Codierblock 208 angeordnet werden, derart, dass der einzige Eingabepunkt des kryptografischen Verarbeitungskerns 207 der programmierbare Transformationsblock 215 ist.
  • Bei verschiedenen Ausführungsbeispielen kann der programmierbare Transformationsblock 215 zu einer Zeit nachfolgend der Herstellung der transformationsfähigen integrierten Schaltung 203 programmiert werden, um folgerichtig eine beliebige aus einem weiten Bereich von möglichen mathematischen Transformationen bei den durch diese mit Leitungsgeschwindigkeit strömenden Daten aufgrund seines Orts in dem Datenpfad der integrierten Schaltung 203 durchzuführen.
  • Bei einigen Ausführungsbeispielen kann der Mechanismus, durch den der programmierbare Transformationsblock 215 in der Lage ist, eine derartige Programmierung anzunehmen und zurückzuhalten, über einen Typ von nichtflüchtigem Festwertspeicher (NVRAM) sein, einschließlich, aber nicht beschränkend, eines Flash-Speichers oder anderer Typen von nichtflüchtigen Speichern. Bei verschiedenen Ausführungsbeispielen können die Mittel zum Konfigurieren des programmierbaren Transformationsblocks 215 über einmal programmierbare (OTP) Schaltungskomponenten sein, enthalten, aber nicht hierauf beschränkt, Mikrosicherungen oder andere Typen von OTP-Schaltungskomponenten. Mikrosicherungen werden allgemein verwendet bei einfachen Aspekten von integrierter Schaltungsherstellung, wie Schreiben von Herstellungsinformationen in integrierte Schaltungen während der Herstellung, oder Heilen fehlerhafter Speicherbänke, die während des Testens identifiziert werden. Zur Vereinfachung der Diskussion wird die Technologie der vorliegenden Offenbarung mit Bezug auf einen programmierbaren Transformationsblock 215, der Mikrosicherungen aufweist diskutiert, wie im Einzelnen mit Bezug auf die 5 und 6 diskutiert wird.
  • Verschiedene Ausführungsbeispiele der transformationsfähigen integrierten Schaltung 203 kann die Konfigurierung eines programmierbaren Transformationsblocks 215 mittels eines Konfigurationsschlüssels 214 ermöglichen. Bei verschiedenen Ausführungsbeispielen kann der Konfigurationsschlüssel 214 durch den über die Konfigurationsschnittstelle 204 einwirkenden Benutzer 201 codiert werden. Bei derartigen Ausführungsbeispielen betrachtet die hier offenbarte Technologie mehrere verschiedene Parteien, die potentiell die Rolle des Benutzers 201 für den Zweck der Codierung des Konfigurationsschlüssels 214 in den programmierbaren Transformationsblock 215 annehmen. Derartige Parteien können beispielsweise in der Fabrik den IC-Hersteller, einen oder mehrere Endnutzer oder einige Kombinationen der Vorgenannten enthalten.
  • Bei einigen Ausführungsbeispielen kann, wenn der Benutzer 201 eine einzige Partei ist, der Benutzer 201 einen Konfigurationsschlüssel 104 liefern, der definiert, welche Transformation für jedes Bit, das die durch den programmierbaren Transformationsblock 215 empfangenen Daten aufweist, anzuwenden ist. Beispielsweise kann, wenn der programmierbare Transformationsblock 215 für ein 256-Bit-System gestaltet ist, der Benutzer 201 einen Konfigurationsschlüssel 214 eingeben, der definiert, welche Transformation, wenn überhaupt, der programmierbare Transformationsblock 215 für alle 256 empfangenen Datenbits anwendet. Daher hat diese Partei die Freiheit, jede beliebige der 2^256 mathematischen Operationen, die der programmierbare Transformationsblock 215 zu konfigurieren in der Lage ist, unter Verwendung eines 256-Bit-Schlüssels durchzuführen.
  • In gleicher Weise, und fortfahrend mit dem vorstehenden 256-Bit-Beispiel, kann bei Ausführungsbeispielen, bei denen der Benutzer 201 eine oder mehrere Parteien aufweist, die Konfiguration des programmierbaren Transformationsblocks 215 durch jeden von dem einen oder den mehreren Benutzern 201 durchgeführt werden, von denen jeder einen Teil des Konfigurationsschlüssels 214 beiträgt. Ein derartiges Schema kann manchmal als ein Mehrschlüssel-Schema bezeichnet werden, und der sich ergebende Schlüssel kann manchmal als ein mehrteiliger Schlüssel bezeichnet werden. Bei einigen Ausführungsbeispielen kann jeder von dem einen oder den mehreren Benutzern 201 konfigurieren, welche Transformation, wenn überhaupt, der programmierbare Transformationsblock 215 auf einen Subsatz der Datenbits, die er empfängt, angewendet wird, während bei anderen Ausführungsbeispielen jeder von dem einen oder den mehreren Benutzern einen Teilschlüssel beitragen kann, der nachfolgend in einen Schlüssel in einer Weise verarbeitet wird, die keinem der Benutzer erlaubt, zu bestimmen, welche Transformation, wenn überhaupt, der programmierbare Transformationsblock 215 auf irgendein oder mehrere spezifische Bits von Daten, die er empfängt, anzuwenden hat.
  • Bei verschiedenen Ausführungsbeispielen der hier beschriebenen Technologie erzeugt, wenn der programmierbare Transformationsblock 215 vor zumindest einem Schaltungsblock, der eine kryptografische OWF wie der zweite Hash-Codierblock 210, der einen kryptografischen Standardalgorithmus in der Illustration implementiert, implementiert, angeordnet ist, die kombinierte Wirkung der Interaktion der programmierbaren Transformationsfunktion 215 und gewisser mathematischer Eigenschaften der einbezogenen kryptografischen Algorithmen, insbesondere ihre Natur als OWFs, die schwer umzukehren sind (hier können die Begriffe „schwer“ und „leicht“ in dem Sinn von rechnerischer Komplexitätstheorie, insbesondere polynomer Zeittheorie verstanden werden) bestimmte spezifische Ergebnisse. Genauer gesagt, die kombinierte Wirkung besteht darin, dass selbst eine geringe Änderung, die durch den programmierbaren Transformationsblocks 215 eingeführt wird, wie die Änderung eines einzigen Bits, eine Pauschaltransformation der in dem von dem Hash-Codierkern 207 berechneten endgültigen Wert enthaltenen Bits ergibt, die nicht leicht entschlüsselt wird, nicht leicht von Störungen unterscheidbar ist und nicht leicht durch eine Partei kopierbar ist, der das vollständige frühere Wissen über den Konfigurationsschlüssel 214 und spezifische Aspekte der Gestaltung der programmierbaren Transformationsfunktionen 215 fehlt, aber noch vollständig folgerichtig und leicht kopierbar und somit verifizierbar durch eine Partei mit einem derartigen Wissen oder einem Zugang zu den Mitteln zu deren Verwendung bei einer Berechnung ist, selbst wenn das Wissen über diese fehlt (wie einer Partei, die im Besitz der gleichen ASIC oder einer anderen ASIC, die die hier beschriebene Technologie verkörpert und mit dem gleichen Konfigurationsschlüssel 214 innerhalb ihrer Datenpfadschaltung programmiert ist) ist.
  • Die Wirkungen der Anwendung der hier beschriebenen, in dem vorhergehenden Absatz umrissenen Technologie haben Verwendungen innerhalb des Gebiets der Blockchain-Technologie, die eine Verschiedenheit von innovativen und wertvollen Anwendungen über mehrere verschiedene Felder ermöglichen. Derartige Anwendungen wurden vorstehend erwähnt und werden nachfolgend weiter diskutiert.
  • Bei einigen Ausführungsbeispielen kann der programmierbare Transformationsblock 215 so konfiguriert sein, dass er einem Endnutzer ermöglicht, verschiedene Transformationsschemata zu programmieren, wie Transponierungsschemata, die die Position innerhalb der Eingabe und Ausgabe von bestimmten spezifischen Bits transponieren, während andere unverändert gelassen werden. Bei verschiedenen Ausführungsbeispielen kann der programmierbare Transformationsblock 215 so konfiguriert sein, dass er ein direktes Bitumwandlungs-Transformationsschema durchführt, wobei einige Bits invertiert werden, während andere unverändert bleiben.
  • Zur Vereinfache der Diskussion wird die Technologie der vorliegenden Offenbarung mit Bezug auf ein direktes Bitinversions-Transformationsschema diskutiert, bei dem ein 256-Bit-Konfigurationsschlüssel 204 bestimmt, welche Transformation bei jedem der 256 Bits anzuwenden ist, die durch den programmierbaren Transformationsblock 215 empfangen wurden, mittels des folgenden Codes: Bits, die an Positionen empfangen wurden, an denen der 256-Bit-Konfigurationsschlüssel einen Wert „0“ enthalten hat, sind in einer Weise zu behandeln (zum Beispiel werden unverändert gelassen), während diejenigen, die an Positionen empfangen wurden, an denen der 256-Bit-Konfigurationsschlüssel einen Wert „1“ enthält, in einer unterschiedlichen Weise zu behandeln sind (zum Beispiel invertiert werden). Eine derartige Transformation wird im Einzelnen in der auf die 5A, 5B und 6 bezogenen Beschreibung diskutiert.
  • Folgend der Erzeugung des endgültigen Hash-Werts durch den zweiten Hash-Codierblock 210 ist der durch die Bewertungsvorrichtung 11 und die Entscheidungsmaschine 212 in 2 durchgeführte Bewertungsprozess ähnlich dem mit Bezug auf 1 beschriebenen. Der erste Schritt in dem Prozess besteht darin, dass die Bewertungsvorrichtung 211 bestimmt, ob der durch einen besonderen Anfangstransaktionsblock erzeugte endgültige Hash-Wert den Gültigkeitskriterien genügt oder nicht.
  • Wenn der endgültige Hash-Wert den Gültigkeitskriterien nicht genügt (wie es allgemein in der großen Mehrheit der Fälle ist), werden sowohl der endgültige Hash-Wert als auch der Anfangstransaktionsblock, der diesen erzeugt hat, verworfen. Wenn der endgültige Hash-Wert den Gültigkeitskriterien genügt, werden der endgültige Hash-Wert und der Anfangstransaktionsblock, der den endgültigen Hash-Wert erzeugt hat, zu der Entscheidungsmaschine 212 durchgelassen. Nach Empfang der Erfolgsanzeige kann die Entscheidungsmaschine 212 dann eine Erfolgsnachricht 213b zu der Erfolgsnachrichten-Empfangsvorrichtung 213a ausgeben. Zusätzlich, und auch mit Bezug auf 1 diskutiert, kann die Erfolgsnachrichten-Empfangsvorrichtung 213a die gleiche wie die Mining-Software 202a sein oder nicht.
  • Was unterschiedlich ist, ist, dass die Inklusion des programmierbaren Transformationsblocks 215, seine nachfolgende Programmierung durch den Benutzer mit einem bestimmten Konfigurationsschlüssel 214 und die Interaktion der sich ergebenden transformierten Daten mit dem zweiten Hash-Codierkern 210 eine Änderung in dem endgültigen Hash-Wert bewirkt haben können, der von dem Hash-Codierkern 203 für einen oder mehr als einen Anfangstransaktionsblock, der durch die Anfangstransaktionsblock-Bildungsvorrichtung 205 erzeugt und zu der Bewertungsvorrichtung 211 geführt wurde, berechnet wurde. Weiterhin haben, wie vorstehend diskutiert wurde, derartige Änderungen bestimmte eindeutige und nützliche mathematische Eigenschaften.
  • Vorausgesetzt, dass die Aufgabe der Bewertungsvorrichtung 211 darin besteht, die von dem Hash-Codierkern 203 empfangenen Hash-Werte mit gewissen vorbestimmten Gültigkeitskriterien zu vergleichen und auf dieser Basis zu bewerten, ob die Hash-Werte den Gültigkeitstest bestehen oder nicht bestehen, ergibt sich, dass eine Änderung des von der Bewertungsvorrichtung 211 empfangenen Hash-Werts zu einer Änderung dahingehend führen kann, die die Bewertungsvorrichtung hinsichtlich der Gültigkeit oder Ungültigkeit des empfangenen Hash-Werts vornehmen kann.
  • Weiterhin vorausgesetzt, dass die Operation des Proof-of-Work-Systems auf der Entdeckung einer gültigen Proof-of-Work in der Form eines Hash-Werts, der den Gültigkeitskriterien genügt, basiert, zusätzlich vorausgesetzt, dass die Operation des kryptografischen Netzwerktransaktions-Verifizierungssystems auf dem Proof-of-Work-System basiert, zusätzlich vorausgesetzt, dass die Konstruktion der Blockchain mittels Anfügen neuer Blöcke an das Ende der Blockchain auf dem kryptografischen Netzwerktransaktions-Verifizierungssystem basiert, und zusätzlich vorausgesetzt, dass die durch die Transformationsfunktion eingeführten Änderungen vollständig kohärent und leicht kopierbar sind, selbst wenn sie von einem externen Beobachter von Störungen nicht unterscheidbar sind, dann folgt, dass eine Änderung, wenn sie folgerichtig durch ein Blockchain-Netzwerk angewendet wird, auch wenn sie leicht ist, in dem Konfigurationsschlüssel 214 eine systemische Änderung der Operationen des Blockchain-Systems ergibt.
  • Daher ermöglichen gewisse Ausführungsbeispiele der hier offenbarten Technologie die Schaffung von mehreren orthogonalen Blockchains, von denen jede einem vollständig unterschiedlichen Satz von Anfangstransaktionsblöcken Gültigkeit zuweist gemäß dem Konfigurationsschlüssel 214, den jeder Benutzer 201 auswählt, für die Anwendung bei dem programmierbaren Transformationsblock 215.
  • Bei verschiedenen Ausführungsbeispielen können ein oder mehrere Nullwerte des Konfigurationsschlüssels 214 gegeben sein, die, wenn sie in den programmierbaren Transformationsblock 215 programmiert sind, bewirken, dass der programmierbare Transformationsblock 215 keine Änderung der durch ihn hindurchgehenden Information bewirkt, und somit bewirken, dass die Anwesenheit des programmierbaren Transformationsblocks 215 keine Änderung in dem endgültigen Hash-Wert bewirkt, der durch den kryptografischen Verarbeitungskern 207 für jeden der Anfangstransaktionsblöcke, die von der Anfangstransaktionsblock-Bildungsvorrichtung 205 empfangen und zu der Bewertungsvorrichtung 211 weitergeleitet wurden, berechnet wird. Bei einigen Ausführungsbeispielen ein Nullkonfigurationsschlüssel durch eine Reihe von Nullen mit der gleichen Länge wie der Länge des Konfigurationsschlüssels dargestellt werden, was bei einigen Ausführungsbeispielen eine Länge von 256 Bits sein kann.
  • Bei verschiedenen Ausführungsbeispielen, die einen oder mehrere Nullschlüssel enthalten, ist die Gesamtwirkung des Programmierens der programmierbaren Transformationsfunktion mit einem Nullschlüssel derart, dass der Satz von Anfangstransaktionsblock-Hashwerten, die von der Bewertungsvorrichtungen als gültig betrachtet werden, nicht geändert wird, was dazu führt, dass die Ausgabe von dem kryptografischen Verarbeitungskern 207 funktional identisch mit der Ausgabe von dem Hash-Codierkern 107, der mit Bezug auf 1 diskutiert wurde, ist. Das heißt, eine transformationsfähige integrierte Schaltung, die die hier beschriebene Technologie verkörpert und mit einem Nullschlüssel programmiert ist, verhält sich so, dass sie die gleichen Ergebnisse produziert wie eine integrierte Schaltung, die die hier beschriebene Technologie nicht verkörpert, und somit geeignet ist, Proof-of-Work-Berechnungen innerhalb des Kontextes der gleichen Proof-of-Work-Systeme durchzuführen, enthaltend, aber nicht hierauf beschränkt, die kryptografische NetzwerkTransaktionsverifizierung der Bitcoin-Transaktion (auch als Bitcoin-Mining bezeichnet. Dieser Aspekt der hier beschriebenen Technologie hat kommerzielle Zusammenhänge, da er die Verwendung von integrierten Schaltungen ermöglicht, die Ausführungsbeispiele der in der vorliegenden Offenbarung beschriebenen Technologie als nützlich für den Zweck von Mining-Bitcoin verkörpern, zusätzlich zur Nützlichkeit für einen weiten Bereich von anderen Anwendungen.
  • Bei derartigen Ausführungsbeispielen und bei anderen Ausführungsbeispielen, die nicht die Figur eines Nullkonfigurationsschlüssels verkörpern, bewirkt die Programmierung des programmierbaren Transformationsblocks 215 mit einem Konfigurationsschlüssel 214, der von dem Nullkonfigurationsschlüssel verschieden ist, eine Änderung in dem endgültigen Hash-Wert, der durch den kryptografischen Hash-Codierkern 217 für jeden der Kandidatenanfangs-Transaktionsblöcke, die von der Anfangstransaktionsblock-Bildungsvorrichtung 205 erzeugt und zu der Bewertungsvorrichtung 211 weitergeleitet wurden, berechnet wurde. Dies seinerseits bewirkt eine Änderung dahingehend, welcher Subsatz von allen Kandidatenanfangs-Transaktionsblöcken durch die Bewertungsvorrichtung 211 als gültig erachtet wird, und somit zu der Entscheidungsmaschine 212 weitergeleitet wird, was dann nach außerhalb der integrierten Schaltung 203 in der Form einer Erfolgsnachricht 213b kommuniziert wird.
  • Weiterhin bewirkt, und wie vorstehend beschrieben ist, aufgrund der Interaktion der programmierbaren Transformationsfunktion 215 mit bestimmten mathematischen Funktionen von OWFs wie den meisten modernen kryptografischen Hash-Codierungs-Standardfunktionen jede Änderung (enthaltend ein einziges Digit) in der Eingabe einer kryptografischen Hash-Codierfunktion eine Pauschaländerung des resultierenden Hash-Werts, die nicht leicht von Störungen unterscheidbar ist.
  • Wie vorstehend erwähnt ist, kann bei einigen Ausführungsbeispielen der programmierbare Transformationsblock 215 vor dem ersten Hash-Codierblock angeordnet sein, derart, dass der einzige Eingabepunkt des kryptografischen Verarbeitungskerns der programmierbare Transformationsblock ist. Ein Beispiel hierfür ist in 3 illustriert. Gemäß 3 wird bei dieser beispielhaften Anordnung die durch den programmierbaren Transformationsblock 315 verkörperte Transformationsfunktion auf die Anfangstransaktionsblöcke angewendet, bevor jede Hash-Codieroperation durch Hash-Codierblöcke 308, 310 angewendet wird. Obgleich in dem Ausführungsbeispiel von 3 an einem anderen Ort angeordnet, genügt der Ort des programmierbaren Transformationsblocks 315 innerhalb des Datenpfads noch der Bedingung, dass er vor zumindest einem Hash-Codierblock angeordnet ist (in diesem Fall ist er vor dem ersten Hash-Codierblock 308 und dem zweiten Hash-Codierblock 310 angeordnet). Somit ist das durch 3 illustrierte Ausführungsbeispiel funktional ähnlich dem in 2 illustrierten Ausführungsbeispiel und liefert die gleichen wesentlichen Eigenschaften, sowohl hinsichtlich der Eigenschaften der Ergebnisse, die es erzeugt, als auch hinsichtlich des Schutzes, den es gegen die Entdeckung des Konfigurationsschlüssels 314, der innerhalb des programmierbaren Transformationsblocks 315 verkörpert ist, durch analytische Techniken liefert, wie vorstehend beschrieben ist.
  • Bei einigen Ausführungsbeispielen kann eine einzelne integrierte Schaltung mehr als einen programmierbaren Transformationsblock 215 enthalten. 4 illustriert eine derartige transformationsfähige integrierte Schaltung 400. In derartigen Fällen können Ausführungsbeispiele implementiert sein, für mehr als einen Benutzer die Fähigkeit zum Programmieren eines vollständigen Konfigurationsschlüssels bereitzustellen.
  • Derartige Ausführungsbeispiele implementieren einen Prozess, der einige Eigenschaften mit sowohl Kaskadenverschlüsselungen als auch Mehrsignatur-Schemata teilt, aber von beiden verschieden ist. Genauer gesagt, Kaskadenverschlüsselungen enthalten die Verwendung der sequenziellen Anwendung von Verschlüsselungen, das heißt, Prozessen, die Daten in einer solchen Weise verschlüsseln, dass sie zu einer späteren Zeit entschlüsselt werden können, das heißt, wieder lesbar werden. Verschiedene Ausführungsbeispiele der hier beschriebenen und in 4 illustrierten Technologie enthalten ein ähnliches Konzept der Kaskadierung, das heißt sequenzielle Anwendung von kryptografischen Operationen, aber enthalten nicht die Verwendung von Verschlüsselungen jeder Art. Stattdessen enthalten sie die sequenzielle Anwendung von Transformationen und OWFs (wie kryptografische Hash-Codierprozesse). OWFs sind unter anderem dahingehend verschieden von Verschlüsselungen, dass ihre definierende Charakteristik derart ist, dass sie unentschlüsselbar anstatt entschlüsselbar sind. In ähnlicher Weise ist bei verschiedenen Ausführungsbeispielen der hier beschriebenen und in 4 illustrierten Technologie das Endprodukt eine Reihe von Zeichen, die darstellen, was als mehrere digitale Signaturen, die für ein digitales Dokument angewendet werden, gedacht werden kann. Jedoch ist die definierende Charakteristik von digitalen Signaturen jeder Art, dass sie durch eine Partei validiert werden können, die von dem Unterzeichner verschieden ist, oder einer, de den Schlüssel des Unterzeichners hält. Dies ist nicht der Fall verschiedener Ausführungsbeispiele der hier beschriebenen Technologie, die in diesem Kontext als eine Signatur gedacht werden kann, die nur durch den Unterzeichner verifiziert werden kann. Weiterhin sind mehr Signatur-Schemata häufig in der Weise gestaltet, dass jede Signatur von den anderen verschieden ist, und individuell verifiziert werden kann. Dies ist wieder nicht der Fall für verschiedene Ausführungsbeispiele der hier beschriebenen Technologie, die spezifisch in einer solchen Weise gestaltet sind, dass kein ursprünglicher Unterzeichner in der Lage ist, die Signatur ohne die Anwesenheit des Anderen zu validieren.
  • Somit sind verschiedene Ausführungsbeispiele der hier beschriebenen Technologie verschieden sowohl Kaskadenverschlüsselungen als auch digitalen Mehrsignatur-Schemata und anderen gegenwärtigen kryptografischen Technologien. Während ein gemeinsamer Name aufgrund ihrer Neuheit fehlt, kann ein derartiges System als ein kasdadierendes transformiertes Mehrschlüssel-Einweg-Funktionssystem beschrieben werden.
  • Einige Ausführungsbeispiele, bei denen der kryptografische Hash-Codieralgorithmus als Schaltung in zumindest dem zweiten Hash-Codierblock 410 verkörpert ist, können ein bewährter kryptografischer Standard-Hash-Codieralgorithmus sein, der enthält, ohne hierauf beschränkt zu sein: SHA-2 in seinen verschiedenen Implementierungen; Keccak/SHA-3 in seinen verschiedenen Implementierungen; Skein in seinen verschiedenen Implementierungen; Grøstl in seinen verschiedenen Implementierungen; JH in seinen verschiedenen Implementierungen; und anderen, oder können ein Nichtstandard-Hash-Codieralgorithmus sein, der, obgleich er kein Standard ist, noch ein OWF ist, der schwer umzukehren ist (wobei der Begriff „schwer“ in dem Sinn von polynomer Zeittheorie zu verstehen ist. Bei derartigen Ausführungsbeispielen ermöglicht die hier beschriebene und in 4 illustrierte Technologie die Implementierung eines sicheren kaskadierenden transformierten Mehrschlüssel-Einweg-Funktionssystems, wie vorstehend beschrieben ist.
  • Bei einigen Ausführungsbeispielen können sowohl der erste als auch der zweite programmierbare Transformationsblock 418, 415 durch einen ersten und einen zweiten Konfigurationsschlüssel 417, 414, die eine Länge von 256 Bits haben, programmiert werden, während bei anderen Ausführungsbeispielen entweder einer oder beide in Abhängigkeit von den Spezifikationen der Implementierungen eine verschiedene Länge haben können.
  • Bei verschiedenen Ausführungsbeispielen der hier beschriebenen und auch in 4 illustrierten Technologie kann eine erste Partei, die als die primäre Autorität bezeichnet werden kann, die Konfigurationsschnittstelle 404 verwenden, um den ersten Konfigurationsschlüssel 417, der als der primäre Schlüssel bezeichnet werden kann, in den ersten Transformationsblock 418 zu programmieren, was als die primäre Transformation bezeichnet werden kann. Getrennt kann eine zweite Partei, die als die sekundäre Autorität bezeichnet werden kann, die Konfigurationsschnittstelle 404 verwenden, um den zweiten Konfigurationsschlüssel 414, der als der sekundäre Schlüssel bezeichnet werden kann, in den zweiten programmierbaren Transformationsblock 415 zu programmieren, was als die sekundäre Transformation bezeichnet werden kann.
  • Bei gewissen Ausführungsbeispielen der hier beschriebenen und auch in 4 illustrierten Technologie können eine oder beide von der primären Autorität und der sekundären Autorität aus mehreren verschiedenen Parteien zusammengesetzt sein. Bei einigen derartigen Ausführungsbeispielen kann die primäre Partei insgesamt den primären Schlüssel als einen mehrteiligen Schlüssel programmieren, während die sekundäre Partei insgesamt den sekundären Schlüssel als einen mehrteiligen Schlüssel programmieren kann. Bei anderen Ausführungsbeispielen können entweder einer oder beide Schlüssel gemeinsam durch beide von der primären und der sekundären Partei als mehrteilige Schlüssel konfiguriert sein. Bei bestimmten Ausführungsbeispielen können die von der primären Partei, der sekundären Partei oder beiden programmierten Schlüssel Nullschlüssel sein. Bei anderen Ausführungsbeispielen können der erste und der zweite programmierbare Transformationsblock 418, 415 durch einen einzigen Konfigurationsschlüssel, der von dem Benutzer 401 durch die Konfigurationsschnittstelle 404 eingegeben wird, programmiert sein.
  • Bei anderen Ausführungsbeispielen der hier beschriebenen und nicht in 4 illustrierten Technologie kann der Prozess im Allgemeinen ähnlich sein, mit der Ausnahme, dass die von der primären Autorität verwendete Konfigurationsschnittstelle von der von der sekundären Autorität verwendeten Konfigurationsschnittstelle verschieden ist. Bei einigen derartigen Ausführungsbeispielen kann die von der primären Autorität verwendete Konfigurationsschnittstelle in einer solchen Weise geschaffen werden, dass sie während des Herstellungsprozesses der integrierten Schaltung zugreifbar ist, aber in den sich ergebenden beendeten Teilen nicht zugreifbar ist, während die Konfigurationsschnittstelle, die für die sekundäre Autorität verwendet wird, in einer solchen Weise strukturiert sein kann, dass sie sowohl während des Herstellungsprozesses als auch in den sich ergebenden fertiggestellten Teilen zugreifbar ist. Bei anderen Ausführungsbeispielen der hier beschriebenen Technologie kann die relative Zugreifbarkeit oder Nichtzugreifbarkeit jeder Konfigurationsschnittstelle unterschiedlich strukturiert sein.
  • Bei einigen Ausführungsbeispielen der hier beschriebenen und auch nicht in 4 illustrierten Technologie kann der Prozess im Allgemeinen ähnlich dem in 4 illustrierten sein, mit der Ausnahme, dass die Gestaltungmehr als zwei Hash-Codierrunden oder mehr als zwei programmierbare Transformationsfunktionen, oder beide hat.
  • 5A illustriert die Konfiguration eines beispielhaften programmierbaren Transformationsblocks 515 vor der Codierung gemäß Ausführungsbeispielen der hier offenbarten Technologie. Der programmierbare Transformationsblock 515 enthält Sätze von programmierbaren Schaltungen, die die durch den Konfigurationsschlüssel 514 (in 5B illustriert) dargestellte Transformationsfunktion definieren. Bei verschiedenen Ausführungsbeispielen kann der programmierbare Transformationsblock 515 so konfiguriert sein, dass er einer von mehreren Transponierungsoperationen freigibt, wodurch ein oder mehrere Bits von Eingabedaten (z.B. 1a1, 1b1, usw.) mit einem anderen Bit der Eingabedaten transponiert werden, um modifizierte Ausgabedaten (z.B. 5a1, 5b1, usw.) zu erzeugen. Bei anderen Ausführungsbeispielen kann der programmierbare Transformationsblock 515 so konfiguriert sein, dass er eine von mehreren direkten Bitinversions- oder Bitkippoperationen freigibt, wodurch ein oder mehrere Bits von Eingabedaten gekippt werden, um modifizierte Ausgabedaten zu erzeugen.
  • Verschiedene Ausführungsbeispiele, die ein direktes Bitinversions-Transformationschema wie hier beschrieben verwenden, können so implementiert sein, dass sie den Vorteil des Umstands ausnutzen, dass ein binärer 256-Bit-Konfigurationsschlüssel ein prägnantes Mittel darstellt, um einen Zugriff zu dem vollständigen Schlüsselraum, der durch die programmierbare Transformationsfunktion 215 bereitgestellt wird, freizugeben. Das heißt, 256 Bits sind die minimale Länge, die erforderlich ist, um dem Benutzer zu ermöglichen, zu spezifizieren, welche unter den 256 verschiedenen Transformationen durch die programmierbare Transformationsfunktion 215 bei dem ersten Hash-Wert 209 durchzuführen ist. Die Verwendung eines direkten Bitinversions-Transformationsschemas kann auch die Verwendung einer minimalen Menge von neuen Schaltungselementen ermöglichen, um die Transformationsfunktion als Datenpfadschaltung zu verkörpern. Dies ist wichtig, da der Umstand, dass die Transformationsfunktion als Datenpfadschaltung verkörpert ist, bedeutet, dass jede zusätzliche Schaltung, die in dem Datenpfad angeordnet ist, mit Leitungsgeschwindigkeit arbeitet und zu einer Gesamtverschlechterung des Leistungsvermögens der transformationsfähigen integrierten Schaltung 203 insgesamt führt.
  • Bei verschiedenen Ausführungsbeispielen kann die Konfiguration des programmierbaren Transformationsblocks 515 so wenig wie ein einziges NICHT-Glied zu den Datenpfadschaltungen der transformationsfähigen integrierten Schaltung hinzufügen. Zum Vergleich kann jeder Hash-Codierblock, abhängig von den Einzelheiten seiner Gestaltung, angenähert 4000 Tore enthalten. Daher kann der programmierbare Transformationsblock 515 sehr bescheidene 128 Tore (unter der Annahme eines 256-Bit-Schlüssels) zu dem kryptografischen Datenpfad hinzufügen, der vorher angenähert 8000 Tore (unter der Annahme eines doppelten SHA-256-Hash-Codierprozesses) enthielt. Daher kann die durch den programmierbaren Transformationsblock 515 eingeführte Verschlechterung des Leistungsvermögens bei verschiedenen Ausführungsbeispielen sehr begrenzt sein, soweit, dass in der Praxis der Unterschied des Leistungsvermögens durch andere Faktoren in einem solchen Ausmaß überschattet wird, dass es schwierig ist, ihn getrennt zu quantifizieren.
  • Ein direktes Bitinversions-Transformationsschema kann auch ein direktes Mittel bereitstellen, alle Wirkungen der programmierbaren Transformation 215 außer Kraft zu setzen, indem einfach alle Werte in dem 256-Bit-Konfigurationsschlüssel auf null gesetzt werden. Ein derartiger Schlüssel kann als ein Nullschlüssel bezeichnet werden. Ein Ergebnis hiervon ist die Vereinfachung des Prozesses des Konfigurierens einer transformationsfähigen integrierten Schaltung 203 derart, dass sie in einer Weise arbeitet, die nicht unterscheidbar von einer vergleichbaren integrierten Schaltung, die nicht die programmierbare Transformationsfunktion 215 enthält, ist. Das praktische Ergebnis hiervon ist, dass integrierte Schaltungen, die die hier beschriebene Technologie enthalten, leicht so konfiguriert werden können, dass sie in der gleichen Weise wie Standard-Bitcoin-Mining-ASICs arbeiten und verwendet werden zum Schürfen von Bitcoins ohne besondere Schwierigkeit (abgesehen von und zusätzlich in der Lage zu sein, in einer Weise zu arbeiten, die durch Bitcoin-Mining-ASICs, die die hier beschriebene Technologie nicht enthalten, nicht kopierbar ist).
  • Zur Vereinfachung der Diskussion werden die 5B und 6 mit Bezug auf eine direkte Bitinversionskonfiguration diskutiert.
  • Die Codierung des programmierbaren Transformationsblocks ist in 5B illustriert. Der beispielhafte programmierbare Transformationsblock 520 ist als gemäß dem Konfigurationsschlüssel 514 codiert gezeigt. Um den innerhalb des programmierbaren Transformationsblocks 520 enthaltenen Konfigurationsschlüssel 514 anzuzeigen, werden geschwärzte Kästchen verwendet, um anzuzeigen, dass eine Mikrosicherung unwirksam gemacht wurde (d.h., Anhalten des Durchgangs von Daten durch die unwirksame Mikrosicherung). Beispielsweise geht in dem illustrierten Beispiel, wenn die Mikrosicherung 3a2 unwirksam ist, das Eingabebit 1a2 ungeändert durch den programmierbaren Transformationsblock 520 hindurch. Wenn die Mikrosicherung 2b2 unwirksam gemacht ist, wird das Eingabebit 1b2 durch die Bitkippvorrichtung 4b2 invertiert, wenn es durch den programmierbaren Transformationsblock 520 hindurchgeht.
  • 6 illustriert eine beispielhafte Funktion eines Codierprozesses gemäß Ausführungsbeispielen der hier offenbarten Technologie. Stufe 1 stellt einen programmierbaren Transformationsblock 15 in einem uncodierten Zustand dar, ähnlich dem programmierbaren Transformationsblock 515 in 5A. Wie illustriert ist, ist der programmierbare Transformationsblock 15 für eine Sechs-Bit-Nachricht konfiguriert. Bei anderen Ausführungsbeispielen kann der programmierbare Transformationsblock 15 für eingegebene Reihen jeder Länge konfiguriert sein, wie einer Länge von 256 Bits.
  • In Stufe 2 ist der programmierbare Transformationsblock 15 codiert, wobei er den Konfigurationsschlüssel 14 wie durch den Benutzer geliefert enthält. Wie illustriert ist, weist der Konfigurationsschlüssel 14 die Reihe „011000“ auf. Die entsprechenden Mikrosicherungen sind gemäß dem Konfigurationsschlüssel 14 unwirksam gemacht, wie durch die geschwärzten Kästchen innerhalb der programmierbaren Transformationsschaltung 15 illustriert ist. In der Stufe 3 kann eine Sperrsicherung 16 folgend der Codierung des programmierbaren Transformationsblocks 15 unwirksam gemacht werden, wodurch der Konfigurationsschlüssel 14 vor Entdeckung geschützt wird. Eine Sperrsicherung 16 kann in der Programmierschaltung angeordnet sein, durch die der programmierbare Transformationsblock 15 durch den Benutzer programmiert wird. Indem die Sperrsicherung 16 unwirksam gemacht wird, kehrt der kryptografische Verarbeitungskern, der den programmierbaren Transformationsblock 15 enthält, zurück, um einen einzigen Eingabepunkt und einen einzigen Ausgabepunkt zu haben, wodurch der vorstehend im Einzelnen mit Bezug auf 2 diskutierte Schutztyp erhalten wird.
  • Bei verschiedenen Ausführungsbeispielen können mehrere kryptografische Verarbeitungskerne parallel innerhalb derselben integrierten Schaltung enthalten sein. 7 ist ein Blockschaltbild eines grundsätzlichen kryptografischen Verarbeitungssystems 700, das mehrere kryptografische Verarbeitungskerne enthält. Die integrierte Schaltung 703 und entsprechende Prozesse und Komponenten sind ähnlich denjenigen, die vorstehend mit Bezug auf die grundsätzliche Systemgestaltung in 1 diskutiert wurden. Anfangstransaktionsblöcke, die von der Anfangstransaktionsblock-Bildungsvorrichtung 705 erzeugt werden, können zu einem der mehreren parallelen kryptografischen Verarbeitungskerne 707, 708, 709, 710 geführt werden. Auf diese Weise können mehrere Anfangstransaktionsblöcke parallel verarbeitet werden, wodurch die Gesamtgeschwindigkeit des Systems erhöht wird.
  • Wenn mehrere kryptografische Verarbeitungskerne implementiert sind, können einige Ausführungsbeispiele den programmierbaren Transformationsblock implementieren, um die Fähigkeit zum Erzeugen von eindeutigen Blockchains vorzusehen, wie vorstehend diskutiert wurde. 8 illustriert eine beispielhafte Transformationsfähige integrierte Schaltung 803 mit mehreren kryptografischen Verarbeitungskernen gemäß Ausführungsbeispielen der hier offenbarten Technologie. Die transformationsfähige integrierte Schaltung 803 ist ähnlich der grundlegenden integrierten Schaltung 703, die mit Bezug auf 7 diskutiert wurde. Ein programmierbarer Transformationsblock 815 ist innerhalb der Datenpfadschaltungen der transformationsfähigen integrierten Schaltung 803 angeordnet. Obgleich als außerhalb der kryptografischen Verarbeitungskerne 807, 808, 809, 810 dargestellt, befindet sich der programmierbare Transformationsblock 815 tatsächlich zwischen den beiden Hash-Codierblöcken der kryptografischen Verarbeitungskerne 807, 808, 809, 810. Zur Vereinfachung des Betrachtens ist der programmierbare Transformationsblock 815 so gezeigt, dass er außerhalb ist, um zu illustrieren, dass der gleiche Konfigurationsschlüssel 814 innerhalb jedes der kryptografischen Verarbeitungskerne 807, 808, 809, 810 bei verschiedenen Ausführungsbeispielen verkörpert sein kann. Bei anderen Ausführungsbeispielen kann jeder kryptografische Verarbeitungskern seine eigene Programmierschaltung haben, wie in 9 illustriert ist. Auf diese Weise können ein oder mehre Benutzer 901 einen oder mehrere Konfigurationsschlüssel 914a, 914b, 914c, 914d programmieren.
  • Bei verschiedenen Ausführungsbeispielen kann die integrierte Schaltung zusätzliche, nichtkryptographische Prozesse enthalten. 10 illustriert eine beispielhafte integrierte Doppelzweckschaltung 1006, die innerhalb des Verarbeitungssystems 1000 gemäß Ausführungsbeispielen der hier offenbarten Technologie implementiert ist. Die integrierte Doppelzweckschaltung 1006 enthält einen kryptografischen Teil, der einen kryptografischen Verarbeitungskern 1004 enthält. Der kryptografische Verarbeitungskern 1004 kann in ähnlicher Weise wie der vorstehend mit Bezug auf 2 diskutierte kryptografische Verarbeitungskern 207 konfiguriert sein. In 10 kann der Benutzer 1001 den programmierbaren Transformationsblock des kryptografischen Verarbeitungskerns 1004 über einen durch die Konfigurationsschnittstelle 1002 eingegebenen Konfigurationsschlüssel 1003 konfigurieren.
  • Der Universalteil 1007 der integrierten Doppelzweckschaltung 1006 kann Komponenten enthalten, die für allgemeine Zwecke gestaltet sind, wie eine zentrale Verarbeitungseinheit oder einen System-auf-Chip(SoC)-Prozessor, der zum Durchführen einer Anzahl von zusätzlichen Funktionen (z.B. Grafik, Audio, Kommunikationsverarbeitung usw.) durchzuführen. Ersatzspeicherzellen können auch in dem Universalteil 1007 bei einigen Ausführungsbeispielen enthalten sein, um einen Austausch fehlerhafter Speicherkomponenten zu ermöglichen. Bei einigen Ausführungsbeispielen kann der Universalteil 1007 seine eigene Schnittstelle 1009 haben, durch die ein Benutzer 1008 die Komponenten des Universalteils 1007 konfigurieren kann. Zusätzlich kann der Benutzer 1008 bei einigen Ausführungsbeispielen Systeminformationen 1010 in einen Permanentspeicher des Universalteils 1007 schreiben. Bei verschiedenen Ausführungsbeispielen können die Konfigurationsschnittstelle 1002 und die Schnittstelle 1009 ein einzelner Satz von elektrischen Schaltungen sein, und der Benutzer 1001 und der Benutzer 1008 können derselbe sein. Eine bidirektionale Kommunikationsverbindung 1005 kann den kryptografischen Verarbeitungskern 1004 mit dem Universalteil 1007 verbinden, wodurch der CPU oder dem SoC ermöglicht wird, durchzuführende Aufgaben zu dem kryptografischen Verarbeitungskern 1004 zu senden und Ergebnisse von Berechnungen zu empfangen. Die integrierte Schaltung 1006 kann mit lokalen Ressourcen 1011 und externen Ressourcen 1012 zusammenwirken. Interne Ressourcen 1011 können, aber nicht hierauf beschränkt, der Benutzer 1001 oder 1008, ein lokaler Speicher oder Softwareanwendungen, die lokal auf der integrierten Doppelzweckschaltung 1006 ablaufen, sein. Externe Ressourcen 1012 können einen externen Speicher oder andere Knoten innerhalb des Netzwerks, mit dem die integrierte Schaltung 1006 verbunden ist, enthalten.
  • Gelegentlich kann die integrierte Doppelzweckschaltung 1006 mit anderen Knoten in einem vertrauenslosen Netzwerk verbunden sein, wie durch eine ungesicherte Funk- oder leitungsgebundene Verbindung. Bei einigen Ausführungsbeispielen kann der Universalteil 1007 konfiguriert sein, mehrere Prozesse, die gestaltet sind zum sicheren Identifizieren einer integrierten Schaltung, die einen Transformationsblock gemäß der hier dargestellten Technologie enthält, über ein vertrauensloses Netzwerk durchzuführen. Ein Reihengenerator 1013 kann zu Systeminformationen 1010 zugreifen, die durch den Benutzer 1008 in die integrierte Schaltung 1006 geschrieben sind, und derartige Systeminformationen 1010 mit Transaktionsinformationen kombinieren, wie Transaktions- und Systemdaten 102b, die mit Bezug auf 1 diskutiert wurden. Der Reihengenerator 1013 kann dann die Daten zu dem Nachrichtengenerator 1014 senden.
  • Der Nachrichtengenerator 1014 kann die Daten über die bidirektionale Kommunikationsverbindung 1004 zu dem kryptografischen Verarbeitungskern 1004 senden. Auf diese Weise können die Daten verarbeitet werden, um eine transformationscodierte Reihe zu erzeugen, die der kryptografische Verarbeitungskern 1004 dann zu dem Nachrichtengenerator 1014 zurücksenden kann. Der Nachrichtengenerator 1014 kann dann eine Netzwerknachricht 1015 erzeugen. Die Netzwerknachricht 1015 kann die von dem Reihengenerator 1013 ausgegebenen anfänglichen Daten enthalten. Bei verschiedenen Ausführungsbeispielen können zusätzliche Informationen in der Netzwerk-Nachricht 1015 enthalten sein, enthaltend, aber nicht beschränkt hierauf: Systemdatum und - zeit; vorher empfangene externe Nachrichten; oder die transformationscodierte Reihe; unter anderen. Die Netzwerknachricht 1015 wird dann zu einer IO-Komponente 1016 gesendet. Bei anderen Ausführungsbeispielen kann die IO-Komponente 1016 lokale Kommunikationsprotokolle, externe Kommunikationsprotokolle oder eine Kombination hiervon enthalten.
  • In 12 ist eine Illustration dessen gezeigt, was als eine transformationsfähige kryptografische Ergebnisvalidationsvorrichtung bezeichnet werden kann. Die Illustration zeigt eine Implementierung der hier beschriebenen Technologie, in der eine integrierte Schaltung 1203 eine Programmier- und Konfigurationsschnittstelle 1204, einen transformationsfähigen Hash-Codierkern 1205 und einen Konfigurationsschlüssel 1206 enthält. Zwei Benutzer 1201, 1202 greifen zu der integrierten Schaltung zu, wobei der Benutzer 1201 zu der Programmier- und Konfigurationsschnittstelle 1204 zugreift und der Benutzer 1202 zu dem transformationsfähigen Hash-Codierkern zugreift.
  • Wie aus dem Diagramm ersichtlich ist, ist die in 12 illustrierte Schaltung im Allgemeinen einfacher als die in vorhergehenden Diagrammen illustrierten Schaltungen. Bei einigen Ausführungsbeispielen ist die in 12 illustrierte Schaltung zusätzlich eine Schaltung mit geringerem Energieverbrauch und geringerem Leistungsvermögen als einigen der in vorhergehenden Diagrammen illustrierten Ausführungsbeispiele. Bei bestimmten Ausführungsbeispielen besteht der Gesamtzweck dieser Schaltung darin, eine Verifizierung von durch einige Ausführungsbeispiele der hier offenbarten Technologie erzeugten Ergebnisse zu ermöglichen, wie einigen der in vorhergehenden Diagrammen illustrierten Ausführungsbeispiele. Der allgemeine Operationsmodus ist der, dass der Benutzer 11201 die Programmier- und Konfigurationsschnittstelle 1204 nutzen kann, um sowohl verschiedene Parameter der Operation der integrierten Schaltung wie Taktgeschwindigkeit, externe Konfigurationen und andere zu konfigurieren als auch einen oder mehrere Konfigurationsschlüssel 1204 in die programmierbare Transformationsfunktion oder -funktionen innerhalb des transformationsfähigen Hash-Codierkerns 1205 zu programmieren, wo sie als Datenpfadschaltungen verkörpert sind. Bei einigen Implementierungen werden gewisse Dinge wie: die Art, in der die Programmierung durchgeführt wird; der Mechanismus, durch den der/die Konfigurationsschlüssel 1204 als Datenpfadschaltungen verkörpert werden; die Mechanismen, die zum Schützen des Schlüssels, wenn er in die programmierbare Transformationsfunktion programmiert ist, verwendet werden; und andere Dinge allgemein in einer Weise durchgeführt, die im Allgemeinen ähnlich der Weise ist, in der sie bei einigen anderen Implementierungen, die durch frühere Diagramme illustriert sind, durchgeführt werden.
  • Bei einigen Implementierungen kann, folgend der Programmierung des programmierbaren Transformationsblocks innerhalb des transformationsfähigen Hash-Codierkerns 1205, der Benutzer 2 einfach einige Eingabewerte eingeben, die dann direkt als Eingabedaten nachfolgend zu dem transformationsfähigen Hash-Codierkern 1205, kommuniziert werden, bei Beendigung der Berechnungen führt dann der transformationsfähige Hash-Codierkern 1205 den berechneten endgültigen Hash-Wert zu dem Benutzer 2 zurück. Wenn die Implementierung der hier beschriebenen Technologie im Allgemeinen die gleiche in dem transformationsfähigen Hash-Codierkern 1205 wie in einer anderen transformationsfähigen Schaltung, die vorher derartige Operationen durchgeführt hat, ist, sind die Eingabedaten wie beispielweise ein Anfangstransaktionsblock in beiden Fällen die gleichen, und der/die Konfigurationsschlüssel, der/die in beide programmiert ist/sind, ist/sind in beiden Fällen auch die gleichen, und dann ist der endgültige Hash-Wert, der durch beide integrierten Schaltungen berechnet wird, auch der gleiche. Somit kann die Gültigkeit von bestimmten Dingen, die beispielsweise Anfangstransaktionsblöcke von der Blockchain, andere Anfangstransaktionsblöcke, andere Kandidatenanfangs-Transaktionsblöcke und andere enthalten können, validiert werden. Weiterhin kann durch Verwendung einer Schaltung wie bei einigen Ausführungsbeispielen der in 12 illustrierten Schaltung eine derartige Verifizierung durchgeführt werden, ohne dass der Benutzer 2 das Wissen der Schlüssel oder der in den programmierbaren Transformationsblock programmierten Schlüssel benötigt.
  • Bei einigen Ausführungsbeispielen kann der Benutzer eine Person sein, während bei anderen Ausführungsbeispielen der Benutzer ein automatischer Prozess sein kann, wie Wallet-Software, Mining-Software oder andere Arten von automatischen Prozessen. Bei bestimmten Ausführungsbeispielen kann der Benutzer 2 auch Zugriff zu der Konfiguration der verschiedenen Operationsaspekte der integrierten Schaltung wie vorstehend beschrieben haben. Bei bestimmten Ausführungsbeispielen kann eine einzige Schnittstelle für die Konfiguration der verschiedenen Operationsaspekte der integrierten Schaltung insgesamt, die Programmierung von Schlüsseln und das Erhalten von endgültigen transformationsfähigen Hash-Werten, die auf der Grundlage von durch den Benutzer gelieferten Daten berechnet wurden, vorgesehen sein, während bei anderen Ausführungsbeispielen einige oder alle derartigen Funktionen getrennt sein können. Bei bestimmten Ausführungsbeispielen kann die in 12 illustrierte integrierte Schaltung Teil eines größeren Computersystems sein, wie eines Mining-Systems, einer Hardware-Wallet, einem Sicherheitstoken oder Kopierschutz oder anderen. Bei einigen Ausführungsbeispielen können verschiedene Implementierungen der in 12 integrierten Schaltung Teil eines Systems sein, das eine oder mehrere integrierte Schaltungen enthält, die andere Implementierungen der hier beschriebenen Technologie enthalten, wie einige in den vorhergehenden Figuren illustrierten Implementierungen.
  • Bei bestimmten Ausführungsbeispielen können verschiedene Implementierungen der in 12 illustrierten integrierten Schaltung körperlich in dasselbe Siliziumstück als andere Ausführungsbeispiele der hier beschriebenen Technologie integriert sein. Bei einigen derartigen Ausführungsbeispielen kann die in 12 illustrierte integrierte Schaltung zusätzlich weiterhin mit anderen Ausführungsbeispielen der hier offenbarten Technologie verbunden sein. Beispielsweise kann in verschiedenen derartigen Fällen die in 12 illustrierte Schaltung einen geteilten Zugriff zu dem programmierbaren Transformationsblock wie andere Schaltungen innerhalb derselben integrierten Schaltung haben, in einer Weise, die ähnlich der ist, bei der mehrere verschiedene Hash-Codierkerne Zugriff zu einer einzigen Transformationsfunktion haben, wie in den 8 und 9 illustriert wurde. Bei verschiedenen anderen Ausführungsbeispielen kann die in 12 illustrierte Schaltung physisch in dasselbe Siliziumstück integriert sein wie eine andere integrierte Schaltung, die eine unterschiedliche Aufgabe durchführt, wie ein Mikroprozessor, ein Netzwerkprozessor, ein System-auf-einem-Chip, und andere. Bei bestimmten Ausführungsbeispielen kann der programmierbare Transformationsblock den Konfigurationsschlüssel als Schaltung durch Mittel von einmal programmierbaren Schaltungselementen wie Mikrosicherungen verkörpern, während bei bestimmten Ausführungsbeispielen wiederschreibbare Schaltungselemente wie nvRAM verwendet werden können, und bei anderen Ausführungsbeispielen andere Verfahren verwendet werden können.
  • In 13 ist eine Illustration vorgesehen, die eine integrierte Schaltung 1303 zeigt, die insgesamt ähnlich der integrierten Schaltung in 12 ist, aber zwei getrennte transformationsfähige Hash-Codierkerne 1305, 1309 enthält, die jeweils durch einen anderen Konfigurationsschlüssel 1306, 1307 programmiert werden. Zusätzlich zeigt die in 13 vorgesehen Illustration auch drei Benutzer 1301, 1302 und 1308, von denen jeder Zugriff zu der Programmier- und Konfigurationsschnittstelle 1304, dem ersten transformationsfähigen Hash-Codierkern 1305 und dem zweiten transformationsfähigen Hash-Codierkern 1309 hat.
  • Das Operationsverfahren und der Gesamtzweck der in 13 illustrierten integrierten Schaltung ist ähnlich dem Operationsverfahren und dem Gesamtzweck der in 12 illustrierten integrierten Schaltung, aber bei einigen Ausführungsbeispielen kann die in 13 illustrierte integrierte Schaltung verwendet werden, um mehrere Schlüssel anstatt nur eines Schlüssels zu halten. Bei einigen Ausführungsbeispielen kann eine Konfiguration wie die in 13 vorgesehene verwendet werden, um zwei getrennte Schlüssel innerhalb einer einzigen transformationsfähigen kryptografischen Ergebnisvalidationsvorrichtung aufrechterhalten. Bei anderen Ausführungsbeispielen können mehr als zwei Konfigurationsschlüssel 1306, 1307 und bei einigen derartigen Ausführungsbeispielen mehr als zwei transformationsfähige kryptografische Kerne enthalten sein. Wie in der die 12 begleitenden Beschreibung beschrieben wurde, können verschiedene Ausführungsbeispiele verschiedene Variationen betrachten, bei denen verschiedene Benutzer Zugriff dazu haben, welche Funktionalitäten durch die integrierte Schaltung gestützt werden, welches Verfahren zum Programmieren des Konfigurationsschlüssels in die programmierbare Transformationsfunktion oder -funktionen verwendet wird, die verschiedenen Typen von Hardware, in die die beschriebene Schaltung integriert sein kann, und andere.
  • In diesem Dokument erfolgte eine explizite Bezugnahme nur auf bestimmte kryptografische Hash-Codieralgorithmen, insbesondere die zweite Iteration der Secure.Hashing-Algorithm-Familie (SHA-2), und innerhalb dieser besonders die 256-Bit-Version. Jedoch ist die hier beschriebene Technologie vollständig anwendbar auf andere kryptografische Hash-Codieralgorithmen, enthaltend, ohne hierauf beschränkt zu sein: SHA-2 in seinen verschiedenen Implementierungen; Keccak/SHA-3 in seinen verschiedenen Implementierungen; Skein in seinen verschiedenen Implementierungen; Grøstl in seinen verschiedenen Implementierungen; JH in seinen verschiedenen Implementierungen; und andere.
  • Der hier verwendete Begriff „Satz“ kann sich auf jede Sammlung von Elementen beziehen, ob endlich oder unendlich. Der Begriff „Subsatz“ kann sich auf jede Sammlung von Elementen beziehen, wobei die Elemente aus einem Hauptsatz genommen sind; ein Subsatz kann der gesamte Hauptsatz sein. Der Begriff „geeigneter Subsatz“ bezieht sich auf einen Subsatz, der weniger Elemente als der Hauptsatz enthält. Der Begriff „Sequenz“ kann sich auf einen geordneten Satz oder Subsatz beziehen. Die Begriffe „weniger als“, „weniger als oder gleich“, „größer als“ und „größer als oder gleich“ können hier verwendet werden, um die Beziehungen zwischen verschiedenen Objekten oder Teilen von geordneten Sätzen oder Sequenzen zu beschreiben; diese Begriffe sind so zu verstehen, dass sie sich auf eine angemessene Ordnungsbeziehung beziehen, die auf die geordneten Objekte anwendbar ist.
  • Der Begriff „Werkzeug“ kann verwendet werden, um sich auf jede Vorrichtung zu beziehen, die konfiguriert ist, eine genannte Funktion durchzuführen. Beispielweise können Werkzeuge eine Sammlung aus einer oder mehreren Komponenten enthalten und können auch aus Hardware, Software oder einer Kombination aus diesen bestehen. Somit kann beispielsweise ein Werkzeug eine Sammlung aus einer oder mehreren Softwarekomponenten, Hardwarekomponenten, Software/Hardware-Komponenten oder einer beliebigen Kombination oder Permutation hiervon sein. Als ein anderes Beispiel kann ein Werkzeug eine Rechenvorrichtung oder ein anderes Gerät, bei dem Software abläuft oder in dem Hardware implementiert ist, sein.
  • Der hier verwendete Begriff „Komponente“ kann eine gegebene Einheit einer Funktionalität, die gemäß einem oder mehreren Ausführungsbeispielen der hier offenbarten Technologie durchgeführt werden kann, beschreiben. Eine Komponente kann unter Verwendung einer beliebigen Form von Hardware, Software oder einer Kombination von diesen implementiert werden. Beispielsweise können eine/einer oder mehrere Prozessoren, Steuervorrichtungen, ASICs, PLAs, PALs, CPLDs, FPGAs, logische Komponenten, Softwareroutinen oder andere Mechanismen implementiert werden, um eine Komponente zu bilden. Bei der Implementierung können die hier beschriebenen verschiedenen Komponenten als diskrete Komponenten implementiert werden, oder die beschriebenen Funktionen und Merkmale können teilweise oder insgesamt zwischen einer oder mehreren Komponenten geteilt werden. Mit anderen Worten, die verschiedenen Merkmale und die hier beschriebene Funktionalität können, wie für einen Fachmann, der diese Beschreibung liest, offensichtlich ist, in jeder gegebenen Anwendung implementiert werden und können in einer oder mehreren getrennten oder gemeinsam verwendeten Komponenten in verschiedenen Kombinationen und Permutationen implementiert werden. Auch wenn verschiedene Merkmale oder Elemente der Funktionalität individuell als separate Komponenten beschrieben oder beansprucht werden, ist für den Fachmann offensichtlich, dass diese Merkmale und die Funktionalität zwischen einer oder mehreren gemeinsamen Software- und Hardwareelementen geteilt werden können, und eine derartige Beschreibung soll nicht erfordern oder bedeuten, dass getrennte Hardware- oder Softwarekomponenten verwendet werden, um derartige Merkmale oder eine derartige Funktionalität zu implementieren.
  • Wenn Komponenten oder Komponenten der Technologie insgesamt oder teilweise unter Verwendung von Software implementiert werden, können bei einem Ausführungsbeispiel diese Softwareelemente implementiert werden, um mit einer Rechen- oder Verarbeitungskomponente betrieben zu werden, die in der Lage ist, die mit Bezug hierauf beschriebene Funktionalität auszuführen. Eine derartige beispielhafte Rechenkomponente ist in 11 gezeigt. Verschiedene Ausführungsbeispiele sind hinsichtlich dieser beispielhaften Rechenkomponente 1100 beschrieben. Nach dem Lesen dieser Beschreibung wird für einen Fachmann offensichtlich, wie die Technologie unter Verwendung anderer Rechenkomponenten oder -strukturen zu implementieren ist.
  • Gemäß 11 kann die Rechenkomponente 1100 beispielsweise Rechen- oder Verarbeitungsfähigkeiten darstellen, die innerhalb des Desktop, Laptop- und Notebook-Computern; tragbaren Rechenvorrichtungen (PDAs, Smartphones, Mobiltelefonen, Palm-Tops, usw.); Großrechnern, Supercomputern, Arbeitsplatzrechnern oder Servern; oder jedem beliebigen anderen Typ von Rechenvorrichtungen für spezielle oder allgemeine Zwecke, die für eine gegebene Anwendung oder Umgebung erwünscht oder geeignet sind, darstellen. Die Rechenkomponente 1100 kann auch Rechenfähigkeiten darstellen, die in eine gegebene Vorrichtung eingebettet oder in anderer Weise für diese verfügbar sind. Beispielsweise kann eine Rechenkomponente in anderen elektronischen Vorrichtungen gefunden werden, wie beispielsweise digitalen Kameras, Navigationssystem, Mobiltelefonen, tragbaren Rechenvorrichtungen, Modems, Routern, WAPs, Endgeräten und anderen elektronischen Vorrichtungen, die irgendeine Form von Verarbeitungsfähigkeit enthalten können.
  • Die Rechenkomponente 1100 kann beispielsweise einen oder mehrere Prozessoren, Steuervorrichtungen, Steuerkomponenten oder andere Verarbeitungsvorrichtungen wie einen Prozessor 1104 enthalten. Der Prozessor 1104 kann unter Verwendung einer Verarbeitungsmaschine für allgemeine Zwecke oder spezielle Zwecke implementiert sein, wie beispielsweise einem Mikroprozessor, einer Steuervorrichtung oder einer anderen Steuerlogik. In dem illustrierten Beispiel ist der Prozessor 1104 mit einem Bus 1102 verbunden, obgleich jedes Kommunikationsmedium verwendet werden kann, um das Zusammenwirken mit anderen Komponenten der Rechenkomponente 1100 zu erleichtern oder extern zu kommunizieren.
  • Die Rechenkomponente 1100 kann auch eine oder mehrere Speicherkomponenten enthalten, die hier einfach als Hauptspeicher 1108 bezeichnet wird. Beispielsweise können vorzugsweise Speicher mit wahlfreiem Zugriff (RAM) oder andere dynamische Speicher verwendet werden, um Informationen und Befehle, die von dem Prozessor 1104 auszuführen sind, zu speichern. Der Hauptspeicher 1108 kann auch zum Speichern vorübergehender variabler oder anderer Zwischeninformationen während der Ausführung von durch den Prozessor 11044 auszuführenden Befehlen verwendet werden. Die Rechenkomponente 1100 kann in gleicher Weise einen Festwertspeicher („ROM“) oder eine andere statische Speichervorrichtung, die mit dem Bus 1102 gekoppelt ist, zum Speichern statischer Informationen und von Befehlen für den Prozessor 1104 enthalten.
  • Die Rechenkomponente 1100 kann auch eine oder mehrere verschiedene Formen eines Informationsspeichermechanismus 1110 enthalten, der beispielsweise ein Medienlaufwerk 1112 und eine Speichereinheit-Schnittstelle 1120 enthalten kann. Das Medienlaufwerk 1112 kann ein Laufwerk oder einen anderen Mechanismus zum Stützen eines festen oder entfernbaren Speichermediums 1114 enthalten. Beispielsweise können ein Plattenlaufwerk, ein Diskettenlaufwerk, ein Magnetband-Laufwerk, ein Laufwerk für eine optische Scheibe, eine CD oder DVD (R oder RW) oder ein anderes Laufwerk für ein entfernbares oder festes Medium vorgesehen sein. Demgemäß können Speichermedien 1114 beispielweise eine Festplatte, eine Diskette, ein Magnetband, eine Kassette, eine optische Scheibe, eine CD oder DVD, oder ein anderes festes oder entfernbares Medium enthalten, das von dem Medienlaufwerk 1112 gelesen, beschrieben oder zugegriffen wird. Wie diese Beispiele illustrieren, können die Speichermedien 1114 ein computerverwendbares Speichermedium, in dem Computersoftware oder Daten gespeichert sind, enthalten.
  • Bei alternativen Ausführungsbeispielen kann der Informationsspeichermechanismus 1110 andere ähnliche Instrumente zum Ermöglichen, dass Computerprogramme oder andere Befehle oder Daten in die Rechenkomponente 1100 geladen werden, enthalten. Derartige Instrumente können beispielsweise eine feste oder entfernbare Speichereinheit 1122 und eine Schnittstelle 1120 enthalten. Beispiele für derartige Speichereinheiten 1122 und Schnittstellen 1120 können eine Programmkassette und Kassettenschnittstelle, einen entfernbaren Speicher (zum Beispiel einen Flash-Speicher oder eine andere entfernbare Speicherkomponente) und Speicherschlitz, einen PCMCIA-Schlitz und -karte und andere feste oder entfernbare Speichereinheiten 1122 und Schnittstellen 1120, die ermöglichen, dass Software und Daten von der Speichereinheit 1122 zu der Rechenkomponente 1100 übertragen werden, enthalten.
  • Die Rechenkomponente 1100 kann auch eine Kommunikationsschnittstelle 1124 enthalten. Die Kommunikationsschnittstelle 1124 kann verwendet werden, um zu ermöglichen, dass Software und Daten zwischen der Rechenkomponente 1100 und externen Vorrichtungen übertragen werden. Beispiele für die Kommunikationsschnittstelle 1124 können ein Modem oder Softmodem, eine Netzwerk-Schnittstelle (wie ein Ethernet, eine Netzwerk-Schnittstellenkarte, WiMedia, IEEE 802.XX oder andere Schnittstelle), einen Kommunikationsport (wie beispielsweise einen USB-Port, IR-Port, RS232-Port Bluetooth®-Schnittstelle, oder anderen Port, oder andere Kommunikationsschnittstelle enthalten. Software und Daten, die über die Kommunikationsschnittstelle 1124 übertragen werden, werden typischerweise auf Signalen getragen, die elektronische, elektromagnetische (die optische enthalten) oder andere Signale sein können, die in der Lage sind, durch eine gegebene Kommunikationsschnittstelle 1124 ausgetauscht zu werden. Diese Signale können über einen Kanal 1128 zu der Kommunikationsschnittstelle 1124 geliefert werden. Dieser Kanal 1128 kann Signale tragen und kann unter Verwendung eines leitungsgebundenen oder leitungslosen Kommunikationsmediums implementiert werden. Einige Beispiele für einen Kanal können eine Telefonlinie, eine zellulare Verbindung, eine RF-Verbindung, eine optische Verbindung, eine Netzwerk-Schnittstelle, ein lokales oder Weitbereichs-Netzwerk und andere leitungsgebundene oder leitungslose Kommunikationskanäle enthalten.
  • In diesem Dokument werden die Begriffe „Computerprogrammmedium“ und „computerverwendbares Medium“ verwendet für eine allgemeine Bezugnahme auf Medien wie beispielsweise den Speicher 1108, die Speichereinheit 1120, Medien 1114 und den Kanal 1128. Diese und andere verschiedene Formen von Computerprogrammmedien oder computerverwendbaren Medien können in das Tragen von einer oder mehrerer Sequenzen von einem oder mehreren Befehlen zu einer Verarbeitungsvorrichtung für die Ausführung einbezogen sein. Solche auf einem Medium verkörperten Befehle werden allgemein als ein „Computerprogrammcode“ oder ein „Computerprogrammprodukt“ bezeichnet (die in der Form von Computerprogrammen oder anderen Gruppierungen gruppiert sein können). Wenn sie ausgeführt werden, können derartige Befehle der Rechenkomponente 1100 ermöglichen, Merkmale oder Funktionen der hier diskutierten offenbarten Technologie auszuführen.
  • Während vorstehend verschiedene Ausführungsbeispiele der offenbarten Technologie beschrieben wurden, ist darauf hinzuweisen, dass sie nur beispielhaft präsentiert wurden und nicht beschränkend sind. In gleicher Weise können die verschiedenen Diagramme eine beispielhafte strukturelle oder andere Konfiguration der offenbarten Technologie darstellen, was zum Verständnis der Merkmale und der Funktionalität, die in der offenbarten Technologie enthalten sein können, beitragen soll. Die offenbarte Technologie ist nicht auf die illustrierten beispielhaften Strukturen oder Konfigurationen beschränkt, sondern die gewünschten Merkmale können unter Verwendung verschiedener alternativer Strukturen und Konfigurationen implementiert werden. Es ist für einen Fachmann offensichtlich, wie alternative funktionale, logische oder physische Unterteilungen und Konfigurationen implementiert werden können, um die gewünschten Merkmale der hier offenbarten Technologie zu implementieren. Auch kann eine Vielzahl von verschiedenen Namen wesentlicher Komponenten, die andere als die hier dargestellten sind, auf die verschiedenen Unterteilen angewendet werden. Zusätzlich soll hinsichtlich der Flussdiagramme, Operationsbeschreibungen und Verfahrensansprüche die Reihenfolge, in der die Schritte darin dargestellt sind, nicht vorschreiben, dass verschiedene Ausführungsbeispiele implementiert werden, um die geschilderte Funktionalität in der gleichen Reihenfolge zu implementieren, sofern der Kontext nicht etwas anderes vorschreibt.
  • Obgleich die offenbarte Technologie vorstehend hinsichtlich verschiedener Ausführungsbeispiele und Implementierungen beschrieben wird, ist darauf hinzuweisen, dass die verschiedenen Merkmale, Aspekte und Funktionalität, die in einem oder mehreren der individuellen Ausführungsbeispiele beschrieben sind, in ihrer Anwendbarkeit nicht auf das spezielle Ausführungsbeispiel, mit dem sie beschrieben sind, beschränkt sind, sondern stattdessen allein oder in verschiedenen Kombinationen bei einem oder mehreren der anderen Ausführungsbeispiele der offenbarten Technologie angewendet werden können, ungeachtet dessen, ob derartige Ausführungsbeispiele beschrieben sind oder nicht und ungeachtet dessen, ob derartige Merkmale als Teil eines beschriebenen Ausführungsbeispiels präsentiert werden oder nicht. Demgemäß sollten die Breite und der Bereich der hier offenbarten Technologie nicht durch irgendeines der vorbeschriebenen Ausführungsbeispiele beschränkt werden.
  • In diesem Dokument verwendete Begriffe und Ausdrücke und Variationen von diesen sind, sofern dies nicht ausdrücklich anders festgestellt wird, als nicht abschließend auszulegen, im Gegensatz zu beschränkend. Beispiele hierfür sind: der Begriff „enthaltend“ sollte als „enthaltend ohne Beschränkung“ oder dergleichen bedeutend ausgelegt werden; der Begriff „beispielhaft“ wird verwendet, um beispielhafte Fälle des diskutierten Gegenstands anzugeben, nicht als eine erschöpfende oder beschränkende Liste hiervon; der Begriff „ein/eine“ sollte als „zumindest ein/eine“, „ein/eine oder mehr“ oder dergleichen bedeutend gelesen werden; und Adjektive „konventionell“, „herkömmlich“, „normal“, „Standard“, „bekannt“ sowie Begriffe mit ähnlicher Bedeutung sollten nicht als den beschriebenen Gegenstand auf eine gegebene Zeitperiode oder einen Gegenstand, der für eine gegebene Zeit verfügbar ist, beschränkt ausgelegt werden, sondern sollte stattdessen so gelesen werden, dass sie konventionelle, herkömmliche, normale oder Standard-Technologien umfassen, die jetzt oder zu jeder Zeit in der Zukunft verfügbar oder bekannt sind. In gleicher Weise umfassen, wenn dieses Dokument sich auf Technologien bezieht, die dem Fachmann bekannt oder für diesen offensichtlich sind, solche Technologien, die dem Fachmann jetzt oder zu jeder beliebigen Zeit in der Zukunft bekannt oder für diesen offensichtlich sind.
  • Die Anwesenheit von verbreiternden Wörtern und Ausdrücken wie „ein oder mehr“, „zumindest“, „aber nicht hierauf beschränkt“ oder andere derartige Ausdrücke in einigen Fällen sollen nicht so gelesen werden, dass sie bedeuten, dass der engere Fall in Fällen beabsichtigt oder erforderlich ist, in denen derartige verbreiternde Ausdrücke nicht vorhanden sind. Die Verwendung des Begriffs „Komponente“ bedeutet nicht, dass die Komponenten oder die Funktionalität, die als Teil der Komponente beschrieben oder beansprucht sind, sämtlich in einem gemeinsamen Paket konfiguriert sind. Stattdessen können beliebige oder alle der verschiedenen Komponenten einer Komponente, ob Steuerlogik oder andere Komponenten, in einem einzelnen Paket kombiniert oder getrennt aufrechterhalten werden und können weiterhin in mehreren Gruppierungen oder Paketen oder über mehrere Orte verteilt sein.
  • Zusätzlich sind die hier dargestellten verschiedenen Ausführungsbeispiele in der Form von beispielhaften Blockschaltbildern, Flussdiagrammen und anderen Illustrationen beschrieben. Wie für den Fachmann nach dem Lesen dieses Dokuments ersichtlich ist, können die illustrierten Ausführungsbeispiele und ihre verschiedenen Alternativen ohne Beschränkung auf die illustrierten Beispiele implementiert werden. Beispielsweise sollten Blockschaltbilder und ihre begleitende Beschreibung nicht als eine bestimmte Struktur oder Konfiguration vorschreibend ausgelegt werden.

Claims (20)

  1. Kryptografische integrierte Schaltung, welche aufweist: einen Transformationsblock, aufweisend einen Satz von elektronischen Schaltungen, die in eine Datenpfad-Schaltungsanordnung der kryptografischen integrierten Schaltung integriert sind; und zu einer Zeit nachfolgend der Herstellung der integrierten Schaltung programmierbar ist zum Durchführen einer Transformationsoperation bei Daten, die von einer Datenpfad-Schaltungsanordnung vor dem Transformationsblock empfangen wurden; eine Programmierschaltung, die den Transformationsblock und eine Konfigurationsschnittstelle kommunikativ koppelt; wobei die integrierte Schaltung innerhalb einer kryptografischen Schaltung implementiert ist und ein Benutzer den Transformationsblock durch die Konfigurationsschnittstelle hindurch derart programmieren kann, dass der Transformationsblock gemäß einem Konfigurationsschlüssel konfiguriert ist.
  2. Kryptografische integrierte Schaltung nach Anspruch 1, bei der der Transformationsblock einen Konfigurationsschlüssel aufweist, der durch den Benutzer programmierbar ist, und konfiguriert ist als Datenpfad-Schaltungsanordnung, die in der Lage ist, mit der gleichen Geschwindigkeit wie andere Schaltungen entlang der integrierten Schaltungen des kryptografischen Datenpfads betrieben zu werden.
  3. Kryptografische integrierte Schaltung nach Anspruch 2, bei der die Datenpfad-Schaltungsanordnung weiterhin einen Hash-Codierblock aufweist, der konfiguriert ist zum Anwenden eines Hash-Codieralgorithmus, der gemäß einem kryptografischen Standard, der durch ein Proof-of-Work-Protokoll spezifiziert ist, bestimmt ist.
  4. Kryptografische integrierte Schaltung nach Anspruch 2, weiterhin aufweisend einen permanenten und untilgbaren Mechanismus zum Verkörpern des von dem Benutzer eingegebenen Schlüssels als physische Schaltungsanordnung in dem Datenpfad der integrierten Schaltungen.
  5. Kryptografische integrierte Schaltung nach Anspruch 2, weiterhin aufweisend einen nichtpermanenten Mechanismus zum Verkörpern des von dem Benutzer eingegebenen Schlüssels als physische Schaltungsanordnung in dem Datenpfad der integrierten Schaltungen.
  6. Kryptografische integrierte Schaltung nach Anspruch 2, bei der der Transformationsblock konfiguriert ist zum Implementieren eines direkten Bitumkehrungsschemas.
  7. Kryptografische integrierte Schaltung nach Anspruch 2, bei der der Transformationsblock konfiguriert ist zum Implementieren eines Bittransponierungsschemas.
  8. Kryptografische integrierte Schaltung nach Anspruch 2, bei der die integrierte Schaltung gestaltet und hergestellt ist, um einen sicheren Hash-Codieralgorithmus zu implementieren.
  9. Kryptografische integrierte Schaltung nach Anspruch 1, bei der die Datenpfad-Schaltungsanordnung weiterhin einen ersten Hash-Codierblock, der konfiguriert ist zum Anwenden eines ersten Hash-Codieralgorithmus, der gemäß einem kryptografischen Standard, der durch ein Proof-of-Work-Protokoll spezifiziert ist, bestimmt ist, und einen zweiten Hash-Codierblock, der konfiguriert ist zum nachfolgenden Anwenden eines zweiten Hash-Codieralgorithmus, der gemäß einem kryptografischen Standard, der durch ein Proof-of-Work-Protokoll spezifiziert ist, bestimmt ist, aufweist.
  10. Kryptografische integrierte Schaltung nach Anspruch 9, bei der der Transformationsblock sich vor dem ersten Hash-Codierblock derart befindet, dass eine Ausgabe des Transformationsblocks eine Eingabe in den ersten Hash-Codierblock ist.
  11. Kryptografische integrierte Schaltung nach Anspruch 9, bei der der Transformationsblock sich zwischen dem ersten und dem zweiten Hash-Codierblock derart befindet, dass eine Ausgabe des ersten Hash-Codierblocks eine Eingabe in den Transformationsblock ist und eine Ausgabe des Transformationsblocks eine Eingabe in den zweiten Hash-Codierblock ist.
  12. Kryptografische integrierte Schaltung nach Anspruch 9, weiterhin aufweisend einen zweiten Transformationsblock.
  13. Kryptografische integrierte Schaltung nach Anspruch 1, bei der die Datenpfad-Schaltungsanordnung mehrere kryptografische Kerne aufweist, wobei jeder kryptografische Kern der mehreren kryptografischen Kerne einen ersten Hash-Codierblock aufweist.
  14. Kryptografische integrierte Schaltung nach Anspruch 13, bei der jeder kryptografische Kern der mehreren kryptografischen Kerne einen Transformationsblock aufweist.
  15. Kryptografische integrierte Schaltung nach Anspruch 1, bei der die Datenpfad-Schaltungsanordnung mehrere kryptografische Kerne aufweist, wobei jeder kryptografische Kern der mehreren kryptografischen Kerne zwei Hash-Codierblöcke aufweist, die aufeinanderfolgend derart verbunden sind, dass eine Ausgabe von dem ersten Hash-Codierblock eine Eingabe in einen zweiten Hash-Codierblock entweder direkt oder nach dem Durchgang durch zusätzliche Schaltungsanordnungsblöcke ist.
  16. Kryptografische integrierte Schaltung nach Anspruch 15, bei der der erste Transformationsblock sich vor dem ersten Hash-Codierblock befindet, derart, dass eine Ausgabe des Transformationsblocks eine Eingabe in den ersten Hash-Codierblock ist, und der zweite Transformationsblock sich vor dem zweiten Hash-Codierblock befindet, derart, dass eine Ausgabe von dem ersten Hash-Codierkern eine Eingabe in den zweiten Transformationsblock ist und eine Ausgabe von dem zweiten Transformationsblock eine Eingabe in den zweiten Hash-Codierblock ist.
  17. Kryptografische integrierte Schaltung nach Anspruch 15, bei der beide Transformationsblöcke sich vor dem ersten Hash-Codierblock befinden, derart, dass die kombinierte Ausgabe von beiden Transformationsblöcken eine Eingabe in den ersten Hash-Codierblock ist.
  18. Kryptografische integrierte Schaltung nach Anspruch 15, bei der beide Transformationsblöcke sich hinter dem ersten Hash-Codierblock befinden, derart, dass eine Ausgabe von dem ersten Hash-Codierblock eine Eingabe in die Transformationsblöcke ist, und vor dem zweiten Hash-Codierblock derart, dass die kombinierte Ausgabe von beiden Transformationsblöcken eine Eingabe in den zweiten Hash-Codierblock ist.
  19. Kryptografische integrierte Schaltung nach Anspruch 15, bei der ein erster Transformationsblock von jedem kryptografischen Kern der mehreren kryptografischen Kerne gemeinsam verwendet wird und ein zweiter Transformationsblock von jedem kryptografischen Kern der mehreren kryptografischen Kerne gemeinsam verwendet wird.
  20. Kryptografische integrierte Schaltung nach Anspruch 1, weiterhin aufweisend eine Sperrsicherung, die innerhalb der Programmierschaltung angeordnet ist, wobei der Transformationsblock unzugänglich ist, wenn die Sperrsicherung gesperrt ist.
DE112017000394.6T 2016-01-15 2017-01-13 Kryptografische asic enthaltend eine schaltungscodierte transformationsfunktion Pending DE112017000394T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/997,113 2016-01-15
US14/997,113 US10262164B2 (en) 2016-01-15 2016-01-15 Cryptographic ASIC including circuitry-encoded transformation function
PCT/US2017/013377 WO2017123902A1 (en) 2016-01-15 2017-01-13 Cryptographic asic including circuitry-encoded transformation function

Publications (1)

Publication Number Publication Date
DE112017000394T5 true DE112017000394T5 (de) 2018-10-25

Family

ID=59311516

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112017000394.6T Pending DE112017000394T5 (de) 2016-01-15 2017-01-13 Kryptografische asic enthaltend eine schaltungscodierte transformationsfunktion

Country Status (6)

Country Link
US (2) US10262164B2 (de)
CN (2) CN108885675B (de)
DE (1) DE112017000394T5 (de)
HK (1) HK1258400A1 (de)
RU (2) RU2746014C2 (de)
WO (1) WO2017123902A1 (de)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10200196B1 (en) 2018-04-25 2019-02-05 Blockchain Asics Llc Cryptographic ASIC with autonomous onboard permanent storage
US10885228B2 (en) 2018-03-20 2021-01-05 Blockchain ASICs Inc. Cryptographic ASIC with combined transformation and one-way functions
US10936758B2 (en) 2016-01-15 2021-03-02 Blockchain ASICs Inc. Cryptographic ASIC including circuitry-encoded transformation function

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8874477B2 (en) 2005-10-04 2014-10-28 Steven Mark Hoffberg Multifactorial optimization system and method
US9185095B1 (en) 2012-03-20 2015-11-10 United Services Automobile Association (Usaa) Behavioral profiling method and system to authenticate a user
US10979410B1 (en) 2015-05-04 2021-04-13 United Services Automobile Association (Usaa) Systems and methods for utilizing cryptology with virtual ledgers in support of transactions and agreements
US10263981B1 (en) 2015-12-02 2019-04-16 United Services Automobile Association (Usaa) Public authentication systems and methods
US10454677B1 (en) 2016-02-24 2019-10-22 United Services Automobile Associate (USAA) Cryptographic key generation from biometric data
US10680833B2 (en) * 2016-02-26 2020-06-09 Apple Inc. Obtaining and using time information on a secure element (SE)
US10523447B2 (en) 2016-02-26 2019-12-31 Apple Inc. Obtaining and using time information on a secure element (SE)
US10630490B2 (en) 2016-02-26 2020-04-21 Apple Inc. Obtaining and using time information on a secure element (SE)
US11694520B2 (en) * 2016-04-22 2023-07-04 Americorp Investments Llc System and method for purchasing lottery tickets
US10826685B1 (en) * 2016-06-28 2020-11-03 Amazon Technologies, Inc. Combined blockchain integrity
US11854011B1 (en) 2016-07-11 2023-12-26 United Services Automobile Association (Usaa) Identity management framework
US10367645B2 (en) * 2016-10-26 2019-07-30 International Business Machines Corporation Proof-of-work for smart contracts on a blockchain
US10657526B2 (en) 2016-10-28 2020-05-19 International Business Machines Corporation System and method to dynamically setup a private sub-blockchain based on agility of transaction processing
US10296764B1 (en) 2016-11-18 2019-05-21 Amazon Technologies, Inc. Verifiable cryptographically secured ledgers for human resource systems
US10862959B2 (en) * 2016-11-28 2020-12-08 Keir Finlow-Bates Consensus system and method for adding data to a blockchain
US10476665B1 (en) * 2016-12-28 2019-11-12 Wells Fargo Bank, N.A. Cryptographic algorithm status transition
US10509891B2 (en) * 2017-05-03 2019-12-17 Cisco Technology, Inc. Method and system for content and service sharing
US10762506B1 (en) 2017-05-11 2020-09-01 United Services Automobile Association Token device for distributed ledger based interchange
EP3649558B8 (de) * 2017-07-06 2024-04-17 Chromaway AB Verfahren und system für ein verteiltes datenverarbeitungssystem
US10805085B1 (en) 2017-08-24 2020-10-13 United Services Automobile Association (Usaa) PKI-based user authentication for web services using blockchain
US10630760B2 (en) * 2018-03-28 2020-04-21 Ca, Inc. Adaptive encryption in checkpoint recovery of file transfers
US11159376B2 (en) * 2018-05-24 2021-10-26 International Business Machines Corporation System and method for network infrastructure analysis and convergence
WO2020003131A1 (en) * 2018-06-25 2020-01-02 Blocktest Global Systems and methods to automatically evaluate blockchain-based solution performance
CN108846705A (zh) * 2018-06-26 2018-11-20 李建欣 一种数字积分服务系统、方法和电子装置
US10404473B1 (en) * 2018-09-05 2019-09-03 Accelor Ltd. Systems and methods for processing transaction verification operations in decentralized applications
US10432405B1 (en) 2018-09-05 2019-10-01 Accelor Ltd. Systems and methods for accelerating transaction verification by performing cryptographic computing tasks in parallel
CN109117607B (zh) * 2018-09-06 2021-01-26 杭州安恒信息技术股份有限公司 一种基于私有链的软件许可管理方法和系统
US20200082405A1 (en) * 2018-09-12 2020-03-12 NEC Laboratories Europe GmbH Method and system for client support in a blockchain network
KR20200034020A (ko) 2018-09-12 2020-03-31 삼성전자주식회사 전자 장치 및 그의 제어 방법
US10681083B2 (en) * 2018-12-29 2020-06-09 Alibaba Group Holding Limited System and method for detecting replay attack
US11283634B2 (en) 2018-12-29 2022-03-22 Advanced New Technologies Co., Ltd. System and method for detecting replay attack
US10735464B2 (en) 2018-12-29 2020-08-04 Alibaba Group Holding Limited System and method for detecting replay attack
EP3545665B1 (de) 2018-12-29 2023-05-03 Advanced New Technologies Co., Ltd. System und verfahren zur erkennung einer wiedergabeattacke
WO2020150011A1 (en) 2019-01-15 2020-07-23 Blockchain Asics, Inc. Dynamic transform in blockchain header validation
US11296887B2 (en) * 2019-08-02 2022-04-05 Unisys Corporation Blockchain mechanism for safety-critical systems
US11682095B2 (en) 2020-02-25 2023-06-20 Mark Coast Methods and apparatus for performing agricultural transactions

Family Cites Families (195)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0812537B2 (ja) 1993-03-11 1996-02-07 日本電気株式会社 暗号化装置
US5774552A (en) 1995-12-13 1998-06-30 Ncr Corporation Method and apparatus for retrieving X.509 certificates from an X.500 directory
US6581162B1 (en) 1996-12-31 2003-06-17 Compaq Information Technologies Group, L.P. Method for securely creating, storing and using encryption keys in a computer system
JP3988172B2 (ja) 1997-04-23 2007-10-10 ソニー株式会社 情報処理装置および方法、並びに記録媒体
US6704871B1 (en) 1997-09-16 2004-03-09 Safenet, Inc. Cryptographic co-processor
US6708273B1 (en) 1997-09-16 2004-03-16 Safenet, Inc. Apparatus and method for implementing IPSEC transforms within an integrated circuit
US6307936B1 (en) 1997-09-16 2001-10-23 Safenet, Inc. Cryptographic key management scheme
US7373517B1 (en) 1999-08-19 2008-05-13 Visto Corporation System and method for encrypting and decrypting files
US6763465B1 (en) 1999-11-23 2004-07-13 International Business Machines Corporation Method of ensuring that the PC is not used to make unauthorized and surreptitious telephone calls
SE522531C2 (sv) 1999-11-24 2004-02-17 Micronic Laser Systems Ab Metod och anordning för märkning av halvledare
EP1132873A1 (de) 2000-03-07 2001-09-12 THOMSON multimedia Elektronisches Börsensystem
US7177421B2 (en) 2000-04-13 2007-02-13 Broadcom Corporation Authentication engine architecture and method
US7003107B2 (en) 2000-05-23 2006-02-21 Mainstream Encryption Hybrid stream cipher
US7558965B2 (en) 2000-08-04 2009-07-07 First Data Corporation Entity authentication in electronic communications by providing verification status of device
US20020147918A1 (en) 2001-04-05 2002-10-10 Osthoff Harro R. System and method for securing information in memory
US20060291650A1 (en) 2001-05-22 2006-12-28 Viswanath Ananth State-varying hybrid stream cipher
US20020184512A1 (en) 2001-05-31 2002-12-05 Cardoso Augusto C. Method and apparatus for supporting remote configuration to facilitate subscriber management
GB0114317D0 (en) 2001-06-13 2001-08-01 Kean Thomas A Method of protecting intellectual property cores on field programmable gate array
US7134041B2 (en) 2001-09-20 2006-11-07 Evault, Inc. Systems and methods for data backup over a network
US7234021B1 (en) 2001-10-05 2007-06-19 Emc Corporation Methods and apparatus for accessing data elements using improved hashing techniques
US7840803B2 (en) 2002-04-16 2010-11-23 Massachusetts Institute Of Technology Authentication of integrated circuits
US7483945B2 (en) 2002-04-19 2009-01-27 Akamai Technologies, Inc. Method of, and system for, webcasting with just-in-time resource provisioning, automated telephone signal acquisition and streaming, and fully-automated event archival
JP4326189B2 (ja) 2002-06-10 2009-09-02 健 坂村 自律型icカード及び通信システム
SG105005A1 (en) 2002-06-12 2004-07-30 Contraves Ag Device for firearms and firearm
US7469338B2 (en) 2002-07-29 2008-12-23 Broadcom Corporation System and method for cryptographic control of system configurations
KR100723399B1 (ko) 2002-08-06 2007-05-30 삼성전자주식회사 비스무트 티타늄 실리콘 산화물, 비스무트 티타늄 실리콘산화물 박막 및 그 제조방법
US6912435B2 (en) 2002-08-28 2005-06-28 Inficon Lt Inc. Methods and systems for controlling reticle-induced errors
US7724907B2 (en) 2002-11-05 2010-05-25 Sony Corporation Mechanism for protecting the transfer of digital content
US7191341B2 (en) 2002-12-18 2007-03-13 Broadcom Corporation Methods and apparatus for ordering data in a cryptography accelerator
AU2004237046B2 (en) * 2003-05-02 2008-02-28 Giritech A/S Pervasive, user-centric network security enabled by dynamic datagram switch and an on-demand authentication and encryption scheme through mobile intelligent data carriers
US7398399B2 (en) 2003-12-12 2008-07-08 International Business Machines Corporation Apparatus, methods and computer programs for controlling performance of operations within a data processing system or network
US7644278B2 (en) 2003-12-31 2010-01-05 International Business Machines Corporation Method for securely creating an endorsement certificate in an insecure environment
US7472369B1 (en) 2004-06-03 2008-12-30 Altera Corporation Embedding identification information on programmable devices
US20060041510A1 (en) 2004-08-19 2006-02-23 Securemedia International Method for a secure system of content distribution for DVD applications
US20070093234A1 (en) 2004-08-20 2007-04-26 Willis John A Identify theft protection and notification system
US20060059368A1 (en) 2004-09-10 2006-03-16 International Business Machines Corporation System and method for processing by distinct entities securely configurable circuit chips
US20060072748A1 (en) 2004-10-01 2006-04-06 Mark Buer CMOS-based stateless hardware security module
US7418100B2 (en) * 2004-10-20 2008-08-26 Cisco Technology, Inc. Enciphering method
US8667580B2 (en) 2004-11-15 2014-03-04 Intel Corporation Secure boot scheme from external memory using internal memory
US20060182283A1 (en) 2005-02-14 2006-08-17 Tricipher, Inc. Architecture for asymmetric crypto-key storage
US7818584B1 (en) 2005-01-25 2010-10-19 Altera Corporation One-time programmable memories for key storage
US7725738B1 (en) 2005-01-25 2010-05-25 Altera Corporation FPGA configuration bitstream protection using multiple keys
US7606362B1 (en) 2005-01-25 2009-10-20 Altera Corporation FPGA configuration bitstream encryption using modified key
KR100666328B1 (ko) 2005-02-11 2007-01-09 삼성전자주식회사 온 칩 메모리를 이용한 기밀 정보 보안 장치 및 보안 방법
JP2006260614A (ja) 2005-03-15 2006-09-28 Sony Corp ディスク製造方法、データ記録装置、情報記録媒体、情報処理装置および方法、並びにコンピュータ・プログラム
JP2006295872A (ja) 2005-03-18 2006-10-26 Matsushita Electric Ind Co Ltd 機器固有鍵の生成方法、これを用いた機密情報処理機能を備えた機密情報lsi、これを搭載したホスト機器、これに用いられる認証機能付き記録媒体、および認証機能を備えた記録媒体付き携帯端末
US9171187B2 (en) 2005-05-13 2015-10-27 Nokia Technologies Oy Implementation of an integrity-protected secure storage
US7533905B2 (en) 2005-06-02 2009-05-19 Hewlett-Packard Development Company, L.P. Anti-counterfeiting system and method
US20070005963A1 (en) 2005-06-29 2007-01-04 Intel Corporation Secured one time access code
CN1815948B (zh) * 2005-06-30 2010-04-28 西南交通大学 基于复合非线性数字滤波器的混沌散列构造方法
US8132005B2 (en) 2005-07-07 2012-03-06 Nokia Corporation Establishment of a trusted relationship between unknown communication parties
EP1748343A1 (de) 2005-07-29 2007-01-31 STMicroelectronics Limited Personalisierung eines Schaltkreises
US20070090920A1 (en) 2005-10-22 2007-04-26 Canter James M Apparatus and Method for Controlling Access to Remotely Located Equipment
US20070101156A1 (en) 2005-10-31 2007-05-03 Manuel Novoa Methods and systems for associating an embedded security chip with a computer
US7389426B2 (en) 2005-11-29 2008-06-17 Research In Motion Limited Mobile software terminal identifier
US20070208918A1 (en) 2006-03-01 2007-09-06 Kenneth Harbin Method and apparatus for providing virtual machine backup
DE602006005220D1 (de) 2006-03-06 2009-04-02 St Microelectronics Res & Dev Schaltungssicherheit
US7894602B2 (en) 2006-03-31 2011-02-22 Sap Ag System and method for generating pseudo-random numbers
US8989387B2 (en) 2006-03-31 2015-03-24 International Business Machines Corporation Using identifier tags and authenticity certificates for detecting counterfeited or stolen brand objects
CN101416246B (zh) 2006-03-31 2011-04-20 国际商业机器公司 用于检测伪造的或者盗用的品牌物品的方法和装置
US20070245159A1 (en) 2006-04-18 2007-10-18 Oracle International Corporation Hash function strengthening
US20070255966A1 (en) 2006-05-01 2007-11-01 Vincenzo Condorelli Cryptographic circuit with voltage-based tamper detection and response circuitry
US9489318B2 (en) 2006-06-19 2016-11-08 Broadcom Corporation Method and system for accessing protected memory
US7675313B1 (en) 2006-08-03 2010-03-09 Lattice Semiconductor Corporation Methods and systems for storing a security key using programmable fuses
US7971017B1 (en) 2006-08-21 2011-06-28 Rockwell Automation Technologies, Inc. Memory card with embedded identifier
JP5001123B2 (ja) 2006-12-07 2012-08-15 パナソニック株式会社 記録デバイス、集積回路、アクセス制御方法、プログラム記録媒体
US20080148001A1 (en) 2006-12-14 2008-06-19 Telefonaktiebolaget L M Ericsson (Publ) Virtual Secure On-Chip One Time Programming
US8046571B1 (en) 2006-12-18 2011-10-25 Marvell International Ltd. System-on-a-chip (SoC) security using one-time programmable memories
JP5073312B2 (ja) 2007-02-16 2012-11-14 株式会社日立製作所 Icタグシステム
US8769637B2 (en) 2007-03-23 2014-07-01 Sap Ag Iterated password hash systems and methods for preserving password entropy
US8065515B2 (en) 2007-04-23 2011-11-22 Cisco Technology, Inc. Autoconfigured prefix delegation based on distributed hash
US20090024784A1 (en) 2007-07-20 2009-01-22 Wang Liang-Yun Method for writing data into storage on chip and system thereof
US9158957B2 (en) 2007-09-07 2015-10-13 Apple Inc. Finger sensing apparatus using hybrid matching and associated methods
US8782396B2 (en) 2007-09-19 2014-07-15 Verayo, Inc. Authentication with physical unclonable functions
US8402241B2 (en) 2007-10-02 2013-03-19 Advanced Micro Devices, Inc. Method and apparatus to control access to device enable features
WO2009057641A1 (ja) 2007-10-30 2009-05-07 Kyocera Corporation 情報処理装置
US9866370B2 (en) 2007-12-05 2018-01-09 Itt Manufacturing Enterprises, Llc Configurable ASIC-embedded cryptographic processing engine
US7890917B1 (en) 2008-01-14 2011-02-15 Xilinx, Inc. Method and apparatus for providing secure intellectual property cores for a programmable logic device
US20090202068A1 (en) 2008-02-07 2009-08-13 Amjad Qureshi Media security through hardware-resident proprietary key generation
US8850568B2 (en) * 2008-03-07 2014-09-30 Qualcomm Incorporated Method and apparatus for detecting unauthorized access to a computing device and securely communicating information about such unauthorized access
US8150039B2 (en) 2008-04-15 2012-04-03 Apple Inc. Single security model in booting a computing device
US20090259855A1 (en) 2008-04-15 2009-10-15 Apple Inc. Code Image Personalization For A Computing Device
US8209762B2 (en) 2008-06-24 2012-06-26 Ricoh Company, Ltd. Approach for printing locked print data using user and print data authentication
US8726364B2 (en) 2008-06-30 2014-05-13 Intel Corporation Authentication and access protection of computer boot modules in run-time environments
US8332931B1 (en) 2008-09-04 2012-12-11 Marvell International Ltd. Processing commands according to authorization
US7715247B2 (en) 2008-09-06 2010-05-11 Juhan Kim One-time programmable read-only memory with a time-domain sensing scheme
EP2350911B1 (de) 2008-09-30 2014-08-27 Stepover GmbH Verfahren und einrichtung zum elektronischen erfassen einer handschriftlichen signatur und zum schützen von biometrischen daten
US20100088752A1 (en) 2008-10-03 2010-04-08 Vikram Nagulakonda Identifier Binding for Automated Web Processing
TWI498827B (zh) 2008-11-21 2015-09-01 Verayo Inc 非連網射頻辨識裝置物理不可複製功能之鑑認技術
US8442218B2 (en) 2009-02-27 2013-05-14 Red Hat, Inc. Method and apparatus for compound hashing via iteration
JP2010252305A (ja) 2009-03-25 2010-11-04 Renesas Electronics Corp 半導体集積回路及びその制御方法
US8347096B2 (en) 2009-07-10 2013-01-01 Vasco Data Security, Inc. Authentication token with incremental key establishment capacity
US8448009B2 (en) 2009-08-17 2013-05-21 Sandisk Il Ltd. Method and memory device for generating a time estimate
US8644499B2 (en) 2009-09-14 2014-02-04 Broadcom Corporation Method and system for securely protecting a semiconductor chip without compromising test and debug capabilities
US20110119293A1 (en) 2009-10-21 2011-05-19 Randy Gilbert Taylor Method And System For Reverse Pattern Recognition Matching
US8719587B2 (en) 2009-12-18 2014-05-06 CompuGroup Medical AG Computer implemented method for generating a pseudonym, computer readable storage medium and computer system
US20120060039A1 (en) 2010-03-05 2012-03-08 Maxlinear, Inc. Code Download and Firewall for Embedded Secure Application
US8612398B2 (en) 2010-03-11 2013-12-17 Microsoft Corporation Clean store for operating system and software recovery
US9177152B2 (en) 2010-03-26 2015-11-03 Maxlinear, Inc. Firmware authentication and deciphering for secure TV receiver
US9231768B2 (en) 2010-06-22 2016-01-05 International Business Machines Corporation Utilizing a deterministic all or nothing transformation in a dispersed storage network
US8949616B2 (en) 2010-09-13 2015-02-03 Ca, Inc. Methods, apparatus and systems for securing user-associated passwords used for identity authentication
US20120151223A1 (en) 2010-09-20 2012-06-14 Conde Marques Ricardo Nuno De Pinho Coelho Method for securing a computing device with a trusted platform module-tpm
US20120069995A1 (en) 2010-09-22 2012-03-22 Seagate Technology Llc Controller chip with zeroizable root key
US10360561B2 (en) 2010-12-14 2019-07-23 Lime Light RM, Inc. System and method for secured communications between a mobile device and a server
US20140156531A1 (en) 2010-12-14 2014-06-05 Salt Technology Inc. System and Method for Authenticating Transactions Through a Mobile Device
EP2506176A1 (de) 2011-03-30 2012-10-03 Irdeto Corporate B.V. Erzeugung eines einzigartigen Schlüssels bei der Chipherstellung
JP5930235B2 (ja) * 2011-03-31 2016-06-08 イルデト ビー ヴイIrdeto B.V. 暗号ハッシュ関数の実行を保護する方法とシステム
US20170109676A1 (en) 2011-05-08 2017-04-20 Panaya Ltd. Generation of Candidate Sequences Using Links Between Nonconsecutively Performed Steps of a Business Process
US20170109668A1 (en) 2011-05-08 2017-04-20 Panaya Ltd. Model for Linking Between Nonconsecutively Performed Steps in a Business Process
US8725112B2 (en) 2011-06-05 2014-05-13 Apple Inc. Activation solution
US8523657B2 (en) 2011-09-13 2013-09-03 Igt Gaming system, gaming device and method for utilizing bitcoins
US9054874B2 (en) 2011-12-01 2015-06-09 Htc Corporation System and method for data authentication among processors
US9800405B2 (en) 2012-03-02 2017-10-24 Syphermedia International, Inc. Blackbox security provider programming system permitting multiple customer use and in field conditional access switching
US10778659B2 (en) 2012-05-24 2020-09-15 Smart Security Systems Llc System and method for protecting communications
US9100189B2 (en) 2012-08-31 2015-08-04 Freescale Semiconductor, Inc. Secure provisioning in an untrusted environment
US9100174B2 (en) 2012-08-31 2015-08-04 Freescale Semiconductor, Inc. Secure provisioning in an untrusted environment
GB201219521D0 (en) 2012-10-30 2012-12-12 Rex Edmund Generative scheduling method
CA2930752A1 (en) 2012-11-15 2014-05-22 Behzad Malek System and method for location-based financial transaction authentication
TWI622969B (zh) 2012-12-17 2018-05-01 印奈克斯托股份有限公司 用以使用物理特性來標記製造物品的方法及設備
US8938792B2 (en) * 2012-12-28 2015-01-20 Intel Corporation Device authentication using a physically unclonable functions based key generation system
KR20140099757A (ko) 2013-02-04 2014-08-13 삼성전자주식회사 전자장치 및 전자장치의 펌웨어 업그레이드 방법
US9117179B2 (en) 2013-03-11 2015-08-25 International Business Machines Corporation Predicting user activity in social media applications
US9495668B1 (en) 2013-05-10 2016-11-15 EMC IP Holding Company LLC Computing solutions to a problem involving inversion of a one-way function
US9230137B2 (en) 2013-05-30 2016-01-05 Dell Products, L.P. Secure original equipment manufacturer (OEM) identifier for OEM devices
US10181124B2 (en) 2013-05-30 2019-01-15 Dell Products, L.P. Verifying OEM components within an information handling system using original equipment manufacturer (OEM) identifier
GB2514771B (en) 2013-06-03 2015-10-21 Broadcom Corp Methods of securely changing the root key of a chip, and related electronic devices and chips
US9479328B1 (en) 2013-06-11 2016-10-25 Amazon Technologies, Inc. Secure key provisioning
US20150003607A1 (en) 2013-06-26 2015-01-01 Samsung Electronics Co., Ltd. Secure connection method and apparatus of electronic device
KR20150008546A (ko) 2013-07-15 2015-01-23 삼성전자주식회사 보안 다운로드 및 기능 실행방법 및 장치
US9386008B2 (en) 2013-08-19 2016-07-05 Smartguard, Llc Secure installation of encryption enabling software onto electronic devices
RU2552135C2 (ru) * 2013-09-09 2015-06-10 Общество с ограниченной ответственностью "СмартТелеМакс" Устройство защиты от атак для сетевых систем
JP2015065495A (ja) 2013-09-24 2015-04-09 ルネサスエレクトロニクス株式会社 暗号鍵供給方法、半導体集積回路および暗号鍵管理装置
US9672385B2 (en) 2013-10-07 2017-06-06 Microsemi SoC Corporation Method of improving FPGA security using authorization codes
US20150134555A1 (en) 2013-11-08 2015-05-14 Tracker Corp Document error resolution
US9779243B2 (en) 2013-11-13 2017-10-03 Via Technologies, Inc. Fuse-enabled secure BIOS mechanism in a trusted computing system
US9798880B2 (en) 2013-11-13 2017-10-24 Via Technologies, Inc. Fuse-enabled secure bios mechanism with override feature
PT3095044T (pt) 2013-11-19 2020-12-24 Top Galore Ltd Aparelhos e métodos de mineração de blocos
US9219722B2 (en) 2013-12-11 2015-12-22 Globalfoundries Inc. Unclonable ID based chip-to-chip communication
US20150213253A1 (en) 2014-01-28 2015-07-30 Qualcomm Incorporated Authorizing an application for use by a computing device
US11270298B2 (en) * 2014-04-14 2022-03-08 21, Inc. Digital currency mining circuitry
US10340038B2 (en) 2014-05-13 2019-07-02 Nant Holdings Ip, Llc Healthcare transaction validation via blockchain, systems and methods
US9582262B2 (en) 2014-06-16 2017-02-28 Wipro Limited Systems and methods for installing upgraded software on electronic devices
US11055707B2 (en) * 2014-06-24 2021-07-06 Visa International Service Association Cryptocurrency infrastructure system
US9928080B2 (en) 2014-09-30 2018-03-27 International Business Machines Corporation Hardware security module access management in a cloud computing environment
US9331989B2 (en) 2014-10-06 2016-05-03 Micron Technology, Inc. Secure shared key sharing systems and methods
US20160148232A1 (en) 2014-11-21 2016-05-26 The Nielsen Company (Us), Llc Using hashed media identifiers to determine audience measurement data including demographic data from third party providers
US9870487B2 (en) 2014-12-30 2018-01-16 Data I/O Corporation Automated manufacturing system with adapter security mechanism and method of manufacture thereof
US11627639B2 (en) 2015-01-26 2023-04-11 Ievgen Verzun Methods and apparatus for HyperSecure last mile communication
WO2016120826A2 (fr) * 2015-01-30 2016-08-04 Enrico Maim Systèmes et procédés pour la gestion d'engagements en réseau d'entités sécurisées
US9374373B1 (en) * 2015-02-03 2016-06-21 Hong Kong Applied Science And Technology Research Institute Co., Ltd. Encryption techniques for improved sharing and distribution of encrypted content
EP3259928B1 (de) 2015-02-18 2023-07-26 Telefonaktiebolaget LM Ericsson (publ) Einrichtung und verwaltung von identitäten für eingeschränkte vorrichtungen
US11023968B2 (en) 2015-03-05 2021-06-01 Goldman Sachs & Co. LLC Systems and methods for updating a distributed ledger based on partial validations of transactions
US9813392B2 (en) 2015-03-06 2017-11-07 Qualcomm Incorporated Apparatus and method for providing a public key for authenticating an integrated circuit
US9893885B1 (en) 2015-03-13 2018-02-13 Amazon Technologies, Inc. Updating cryptographic key pair
US10735200B2 (en) 2015-03-27 2020-08-04 Comcast Cable Communications, Llc Methods and systems for key generation
US20160283920A1 (en) 2015-03-28 2016-09-29 Justin Fisher Authentication and verification of digital data utilizing blockchain technology
US9667600B2 (en) 2015-04-06 2017-05-30 At&T Intellectual Property I, L.P. Decentralized and distributed secure home subscriber server device
US10812274B2 (en) 2015-05-07 2020-10-20 Blockstream Corporation Transferring ledger assets between blockchains via pegged sidechains
CA2988318A1 (en) 2015-06-04 2016-12-08 Chronicled, Inc. Open registry for identity of things
US20170228731A1 (en) 2016-02-09 2017-08-10 Fmr Llc Computationally Efficient Transfer Processing and Auditing Apparatuses, Methods and Systems
US11120436B2 (en) 2015-07-17 2021-09-14 Mastercard International Incorporated Authentication system and method for server-based payments
US20170126414A1 (en) 2015-10-28 2017-05-04 Texas Instruments Incorporated Database-less authentication with physically unclonable functions
US20180331832A1 (en) 2015-11-05 2018-11-15 Allen Pulsifer Cryptographic Transactions System
US9912776B2 (en) 2015-12-02 2018-03-06 Cisco Technology, Inc. Explicit content deletion commands in a content centric network
US10262164B2 (en) 2016-01-15 2019-04-16 Blockchain Asics Llc Cryptographic ASIC including circuitry-encoded transformation function
EP3405862B1 (de) 2016-01-19 2020-11-18 Priv8Pay, Inc. Authentifizierung von netzwerkknoten
US11107071B2 (en) 2016-02-01 2021-08-31 Apple Inc. Validating online access to secure device functionality
US11354658B2 (en) 2016-02-11 2022-06-07 Mastercard International Incorporated Method and system for offline blockchain exchanges
US20170250796A1 (en) 2016-02-18 2017-08-31 Gideon Samid Trans Vernam Cryptography: Round One
CN107306183B (zh) 2016-04-22 2021-12-21 索尼公司 客户端、服务端、方法和身份验证系统
US10594480B2 (en) 2016-05-13 2020-03-17 Gideon Samid Efficient proof of knowledge of arbitrarily large data which remains unexposed
SG11201810306XA (en) 2016-05-20 2018-12-28 Moog Inc Secure and traceable manufactured parts
US11204597B2 (en) 2016-05-20 2021-12-21 Moog Inc. Outer space digital logistics system
US9967088B2 (en) 2016-05-23 2018-05-08 Accenture Global Solutions Limited Rewritable blockchain
US11107088B2 (en) 2016-05-27 2021-08-31 Chronicled, Inc. Open registry for internet of things
US20180108024A1 (en) 2016-06-03 2018-04-19 Chronicled, Inc Open registry for provenance and tracking of goods in the supply chain
US10411905B2 (en) 2016-07-01 2019-09-10 Intel Corporation Public key infrastructure using blockchains
US20180046956A1 (en) 2016-08-11 2018-02-15 Panaya Ltd. Warning About Steps That Lead to an Unsuccessful Execution of a Business Process
US10250694B2 (en) 2016-08-19 2019-04-02 Ca, Inc. Maintaining distributed state among stateless service clients
US11074584B2 (en) 2016-09-23 2021-07-27 Raise Marketplace, Llc Authorizing exchange item redemption in an exchange item marketplace network
US10516538B2 (en) 2016-11-01 2019-12-24 Netcomm Inc. System and method for digitally signing documents using biometric data in a blockchain or PKI
MY181840A (en) 2016-11-04 2021-01-08 Thomson Licensing Devices and methods for client device authentication
US20180184290A1 (en) 2016-12-22 2018-06-28 Cypress Semiconductor Corporation Embedded Certificate Method for Strong Authentication and Ease of Use for Wireless IoT Systems
US10382485B2 (en) 2016-12-23 2019-08-13 Vmware, Inc. Blockchain-assisted public key infrastructure for internet of things applications
US10484346B2 (en) 2017-02-07 2019-11-19 Microsoft Technology Licensing, Llc Establishment of consortium blockchain network
JP2018133744A (ja) 2017-02-16 2018-08-23 パナソニックIpマネジメント株式会社 通信システム、車両、および監視方法
US11263326B2 (en) 2017-06-02 2022-03-01 Apple Inc. Method and apparatus for secure system boot
US20190102558A1 (en) 2017-06-02 2019-04-04 Apple Inc. Method and Apparatus for Secure System Boot
US10397230B2 (en) 2017-06-15 2019-08-27 International Business Machines Corporation Service processor and system with secure booting and monitoring of service processor integrity
US10528740B2 (en) 2017-06-15 2020-01-07 International Business Machines Corporation Securely booting a service processor and monitoring service processor integrity
JP6882678B2 (ja) 2017-06-30 2021-06-02 富士通株式会社 衝突検出システムおよび衝突検出方法
US20190080093A1 (en) 2017-09-12 2019-03-14 Qualcomm Incorporated Secure selective load of dynamic paged segments in memory constrained systems
KR102434444B1 (ko) 2017-11-29 2022-08-19 한국전자통신연구원 가상 트러스트 컴퓨팅 베이스를 이용한 기기 보안성 검증 방법 및 장치
US10372943B1 (en) 2018-03-20 2019-08-06 Blockchain Asics Llc Cryptographic ASIC with combined transformation and one-way functions
US10256974B1 (en) 2018-04-25 2019-04-09 Blockchain Asics Llc Cryptographic ASIC for key hierarchy enforcement

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10936758B2 (en) 2016-01-15 2021-03-02 Blockchain ASICs Inc. Cryptographic ASIC including circuitry-encoded transformation function
US10885228B2 (en) 2018-03-20 2021-01-05 Blockchain ASICs Inc. Cryptographic ASIC with combined transformation and one-way functions
US10404463B1 (en) 2018-04-25 2019-09-03 Blockchain Asics Llc Cryptographic ASIC with self-verifying unique internal identifier
US10200196B1 (en) 2018-04-25 2019-02-05 Blockchain Asics Llc Cryptographic ASIC with autonomous onboard permanent storage
US10404454B1 (en) 2018-04-25 2019-09-03 Blockchain Asics Llc Cryptographic ASIC for derivative key hierarchy
US10607031B2 (en) 2018-04-25 2020-03-31 Blockchain Asics Llc Cryptographic ASIC with autonomous onboard permanent storage
US10607032B2 (en) 2018-04-25 2020-03-31 Blockchain Asics Llc Cryptographic ASIC for key hierarchy enforcement
US10796024B2 (en) 2018-04-25 2020-10-06 Blockchain ASICs Inc. Cryptographic ASIC for derivative key hierarchy
US10262163B1 (en) 2018-04-25 2019-04-16 Blockchain Asics Llc Cryptographic ASIC with unique internal identifier
US10256974B1 (en) 2018-04-25 2019-04-09 Blockchain Asics Llc Cryptographic ASIC for key hierarchy enforcement
US11042669B2 (en) 2018-04-25 2021-06-22 Blockchain ASICs Inc. Cryptographic ASIC with unique internal identifier
US11093654B2 (en) 2018-04-25 2021-08-17 Blockchain ASICs Inc. Cryptographic ASIC with self-verifying unique internal identifier
US11093655B2 (en) 2018-04-25 2021-08-17 Blockchain ASICs Inc. Cryptographic ASIC with onboard permanent context storage and exchange

Also Published As

Publication number Publication date
RU2019136310A3 (de) 2020-07-30
US20190272393A1 (en) 2019-09-05
RU2746014C2 (ru) 2021-04-05
HK1258400A1 (zh) 2019-11-08
US20170206382A1 (en) 2017-07-20
RU2708358C1 (ru) 2019-12-05
RU2019136310A (ru) 2019-12-23
WO2017123902A1 (en) 2017-07-20
CN108885675A (zh) 2018-11-23
US10936758B2 (en) 2021-03-02
CN111382464B (zh) 2023-12-12
CN108885675B (zh) 2020-03-03
CN111382464A (zh) 2020-07-07
US10262164B2 (en) 2019-04-16

Similar Documents

Publication Publication Date Title
DE112017000394T5 (de) Kryptografische asic enthaltend eine schaltungscodierte transformationsfunktion
DE112012002277B4 (de) Verknüpfen von Schlüssel-Steuerdaten bei Diensten allgemeiner kryptografischer Architektur
CN109417479A (zh) 密码逻辑可重写区块链
DE112019001438T5 (de) Kryptographisches asic mit kombinierten funktionen
CN109118168A (zh) 一种基于区块链机制的政务服务过程追溯系统及其构建方法
DE112013005242T5 (de) Sicherungsbescheinigung zur Bereitstellung von geheimen Schlüsseln bei der Herstellung von integrierten Schaltungen
EP1618519A2 (de) Verfahren zur verarbeitung von daten
EP3688928B1 (de) Dataculestruktur und verfahren zum manipulationssicheren speichern von daten
WO2018162115A1 (de) Übergang von einer booleschen maskierung zu einer arithmetischen maskierung
DE102010029735A1 (de) Verfahren zum Generieren eines Bitvektors
DE102019110501A1 (de) Fehlerkorrekturcode-speichersicherheit
EP3735650B1 (de) Persönliche dokumentenblockchain-struktur
DE102019107699A1 (de) Sichere Kommunikation in einem nichtdeterministischen Netzwerk
EP3552344B1 (de) Bidirektional verkettete blockchainstruktur
Iusem et al. Central paths, generalized proximal point methods, and Cauchy trajectories in Riemannian manifolds
DE102021130812A1 (de) Implementieren einer opportunistischen authentifizierung von verschlüsselten daten
Guo et al. The improved split‐step θ methods for stochastic differential equation
DE102020121075A1 (de) Einrichtung und Verfahren zur Authentifizierung von Software
Chen et al. Testing and support recovery of correlation structures for matrix-valued observations with an application to stock market data
EP3576001A1 (de) Computerimplementiertes verfahren zum übergeben eines datenstrings von einer anwendung an eine datenschutzeinrichtung
DE102019110440A1 (de) Replay-Schutz für Speicher auf der Basis eines Schlüsselauffrischens
Dryden et al. Exit time moments and eigenvalue estimates
DE102017125930A1 (de) Computerimplementiertes Verfahren zum Ersetzen eines Datenstrings durch einen Platzhalter
DE112021005862T5 (de) Selbstprüfende blockchain
DE102017000167A1 (de) Anonymisierung einer Blockkette

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication