DE102019107699A1 - Sichere Kommunikation in einem nichtdeterministischen Netzwerk - Google Patents

Sichere Kommunikation in einem nichtdeterministischen Netzwerk Download PDF

Info

Publication number
DE102019107699A1
DE102019107699A1 DE102019107699.4A DE102019107699A DE102019107699A1 DE 102019107699 A1 DE102019107699 A1 DE 102019107699A1 DE 102019107699 A DE102019107699 A DE 102019107699A DE 102019107699 A1 DE102019107699 A1 DE 102019107699A1
Authority
DE
Germany
Prior art keywords
destination node
message
node
path
nodes
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
DE102019107699.4A
Other languages
English (en)
Inventor
Rod D. Waltermann
Joseph Michael Pennisi
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.)
Lenovo Singapore Pte Ltd
Original Assignee
Lenovo Singapore Pte Ltd
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 Lenovo Singapore Pte Ltd filed Critical Lenovo Singapore Pte Ltd
Publication of DE102019107699A1 publication Critical patent/DE102019107699A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0407Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
    • H04L63/0421Anonymous communication, i.e. the party's identifiers are hidden from the other party or parties, e.g. using an anonymizer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/48Routing tree calculation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0209Architectural arrangements, e.g. perimeter networks or demilitarized zones
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0478Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload applying multiple layers of encryption, e.g. nested tunnels or encrypting the content with a first key and then with at least a second key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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
    • 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
    • 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/3247Cryptographic 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 involving digital signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Zur sicheren Kommunikation in einem nichtdeterministischen Netzwerk bestimmt ein Prozessor einen ersten Kommunikationspfad zu einem ersten Zielknoten in einem Netzwerk von Knoten, das als ein ungerichteter Graph organisiert ist. Der Kommunikationspfad ist ein aufspannender Baum von Pfadknoten des ungerichteten Graphs. Der Prozessor verschlüsselt weiter eine Nachricht an den ersten Zielknoten mit einer Verschlüsselung unter Verwendung einer Menge von ersten Verschlüsselungsschlüsseln. Zusätzlich kommuniziert der Prozessor die verschlüsselte Nachricht über die Pfadknoten des ersten Kommunikationspfads. Jede Transaktion von jedem Pfadknoten mit der verschlüsselten Nachricht aufgezeichnet wird und die verschlüsselte Nachricht an dem ersten Zielknoten mit einer Teilmenge der Menge von ersten Verschlüsselungsschlüsseln entschlüsselt wird. Die Teilmenge der Menge von ersten Verschlüsselungsschlüsseln werden von Schlüsselhalteknoten gehalten, die sich in Kommunikation mit dem ersten Zielknoten befinden.

Description

  • FELD
  • Der hierin offenbarte Gegenstand betrifft sichere Kommunikation und betrifft insbesondere sichere Kommunikation in einem nichtdeterministischen Netzwerk.
  • HINTERGRUND
  • Knoten kommunizieren oft in nichtdeterministischen Netzwerken.
  • KURZE ZUSAMMENFASSUNG
  • Eine Vorrichtung für eine sichere Kommunikation in einem nichtdeterministischen Netzwerk ist offenbart. Die Vorrichtung enthält eine Netzwerkverbindung, einen Prozessor und einen Speicher, der Code speichert der von dem Prozessor ausführbar. Der Prozessor bestimmt einen ersten Kommunikationspfad zu einem ersten Zielknoten in einem Netzwerk von Knoten, das als ein ungerichteter Graph organisiert ist und sich in Kommunikation mit der Netzwerkverbindung befindet. Der Kommunikationspfad ist ein aufspannender Baum von Pfadknoten des ungerichteten Graphs. Der Prozessor verschlüsselt weiter eine Nachricht an den ersten Zielknoten mit einer Verschlüsselung unter Verwendung einer Menge von ersten Verschlüsselungsschlüsseln. Zusätzlich kommuniziert der Prozessor die verschlüsselte Nachricht über die Pfadknoten des ersten Kommunikationspfads. Jede Transaktion von jedem Pfadknoten mit der verschlüsselten Nachricht wird aufgezeichnet und die verschlüsselte Nachricht wird an dem ersten Zielknoten mit einer Teilmenge der Menge von ersten Verschlüsselungsschlüsseln entschlüsselt. Die Teilmenge der Menge von ersten Verschlüsselungsschlüsseln werden von Schlüsselhalteknoten gehalten, die sich in Kommunikation mit dem ersten Zielknoten befinden. Ein Verfahren und Programmprodukt führen auch die Funktionen der Vorrichtung durch.
  • Figurenliste
  • Eine genauere Beschreibung der oben kurz beschriebenen Ausführungsformen wird durch Bezugnahme auf spezifische Ausführungsformen dargestellt, die in den beigefügten Zeichnungen illustriert sind. Mit dem Verständnis, dass diese Zeichnungen nur einige Ausführungsformen abbilden und deshalb nicht als den Gegenstand einschränkend verstanden werden sollen, werden die Ausführungsformen mit zusätzlicher Spezifizität und Detail durch die Verwendung der beigefügten Zeichnungen beschrieben und erläutert, in denen:
    • 1A ein schematisches Diagramm ist, das eine Ausführungsform eines nichtdeterministischen Netzwerks illustriert;
    • 1B ein schematisches Diagramm ist, das eine Ausführungsform eines Kommunikationspfads illustriert;
    • 1C ein schematisches Diagramm ist, das eine alternative Ausführungsform eines Kommunikationspfads illustriert;
    • 2A ein schematisches Blockdiagramm ist, das eine Ausführungsform einer Nachricht illustriert;
    • 2B ein schematisches Blockdiagramm ist, das eine Ausführungsform von Kommunikationspfaddaten illustriert;
    • 2C ein schematisches Blockdiagramm ist, das eine Ausführungsform einer Kommunikationspfad-Datenbank illustriert;
    • 2D ein schematisches Blockdiagramm ist, das eine Ausführungsform einer Blockkettenaufzeichnung illustriert;
    • 2E ein schematisches Blockdiagramm ist, das eine Ausführungsform einer Menge von Verschlüsselungsschlüsseln illustriert;
    • 2F ein schematisches Blockdiagramm ist, das eine Ausführungsform von Knoten-Verschlüsselungsschlüsseln illustriert;
    • 3A ein schematisches Blockdiagramm ist, das eine Ausführungsform einer verschlüsselten Nachricht illustriert;
    • 3B ein schematisches Blockdiagramm ist, das eine alternative Ausführungsform einer verschlüsselten Nachricht illustriert;
    • 4 ein schematisches Blockdiagramm ist, das eine Ausführungsform eines Knotens illustriert; und
    • 5 ein schematisches Flussdiagramm ist, das eine Ausführungsform eines sicheren Kommunikationsverfahrens illustriert.
  • DETAILLIERTE BESCHREIBUNG
  • Wie von einem Fachmann verstanden werden wird, können Aspekte der Ausführungsformen in einem System, Verfahren oder Programmprodukt ausgeführt sein. Dementsprechend können Ausführungsformen die Form einer vollständigen Hardware-Ausführungsform, einer vollständigen Software-Ausführungsform (inklusive Firmware, residenter Software, Mikrocode, etc.) oder einer Ausführungsform, die Software- und Hardwareaspekte kombiniert, annehmen, auf die alle im Allgemeinen hierin als „Schaltkreis“, „Modul“ oder „System“ Bezug genommen werden kann. Weiterhin können Ausführungsformen die Form eines Programmprodukts annehmen, das in einem oder mehreren computerlesbaren Speichergeräten ausgeführt sein kann, die maschinenlesbaren Code, computerlesbaren Code und/oder Programmcode speichern, auf den im Folgenden als Code Bezug genommen wird. Die Speichergeräte können greifbar, nicht transient und/oder nicht übertragend sein, Die Speichergeräte können keine Signale enthalten. In einer bestimmten Ausführungsform verwenden die Speichergeräte nur Signale, um auf Code zuzugreifen.
  • Viele von den in dieser Spezifikation beschriebenen, funktionalen Einheiten wurden als Module bezeichnet, um deren Unabhängigkeit der Implementierung besonders zu betonen. Zum Beispiel kann ein Modul als ein Hardware-Schaltkreis implementiert sein, umfassend benutzerdefinierte VLSI-Schaltkreise oder Gatteranordnungen, handelsübliche Halbleiter, so wie Logikchips, Transistoren oder andere diskrete Komponenten. Ein Modul kann auch in programmierbaren Hardwaregeräten implementiert sein, so wie einer feldprogrammierbaren Gatteranordnung, programmierbarer Anordnungslogik, programmierbaren Logikgeräten oder dergleichen.
  • Module können auch in Code und/oder Software zur Ausführung durch verschiedene Prozessoren implementiert sein. Ein identifiziertes Modul von Code kann zum Beispiel einen oder mehrere physikalische oder logische Blöcke von ausführbarem Code enthalten, die zum Beispiel als ein Objekt, Prozedur oder Funktion organisiert sein können. Nichtsdestotrotz müssen die ausführbaren Dateien eines identifizierten Moduls nicht physikalisch zusammen angeordnet sein, jedoch können sie uneinheitliche Anweisungen, die an verschiedenen Orten gespeichert sind, enthalten, die, wenn sie logisch verknüpft werden, die Module enthalten und den genannten Zweck für das Modul erreichen.
  • Tatsächlich kann ein Modul von Code eine einzelne Anweisung oder viele Anweisungen sein und kann sogar über viele verschiedenen Codesegmente, unter verschiedenen Programmen und über viele verschiedenen Speichergeräte verteilt sein. In gleicher Weise können Betriebsdaten, die hierin illustriert sind, innerhalb von Modulen identifiziert sein und können in jeglicher passenden Form ausgeführt und innerhalb jeglicher passenden Art von Datenstruktur organisiert sein. Die Betriebsdaten können als eine einzelne Datenmenge gesammelt sein oder können über verschiedene Orte verteilt sein, inklusive verschiedener computerlesbarer Speichergeräte. Wenn ein Modul oder Teile eines Moduls in Software implementiert sind, sind die Softwareteile auf einem oder mehreren computerlesbaren Speichergeräten gespeichert.
  • Jegliche Kombination von einem oder mehreren computerlesbaren Medien kann verwendet werden. Das computerlesbare Medium kann ein computerlesbares Speichermedium sein. Das computerlesbare Speichermedium kann ein Speichergerät sein, das den Code speichert. Das Speichergerät kann zum Beispiel ein elektronisches Speichergerät, magnetisches Speichergerät, optisches Speichergerät, elektromagnetisches Speichergerät, Infrarot-Speichergerät, holografisches Speichergerät, mikromechanisches Speichergerät oder Halbleitersystem, -vorrichtung oder -gerät oder jede passende Kombination der vorgenannten, ist aber nicht darauf beschränkt.
  • Spezifischere Beispiele (eine nicht abschließende Liste) des Speichergeräts würden die Folgenden enthalten: eine elektrische Verbindung, die eine oder mehrere Drähte aufweist, eine tragbare Computerdiskette, eine Festplatte, einen wahlfreien Zugriffsspeicher (RAM), einen Nur-Lese-Speicher (ROM), einen löschbaren Nur-Lese-Speicher (EPROM oder Flash-Speicher), ein tragbarer Kompaktdisk-Nur-Lese-Speicher (CD-ROM), ein optisches Speichergerät, ein magnetisches Speichergerät oder jede passende Kombination der Vorgenannten. In dem Kontext dieses Dokuments kann ein computerlesbares Speichermedium ein greifbares Medium sein, das ein Programm zur Verwendung von oder in Verbindung mit einem Instruktionsausführungssystem, -vorrichtung oder -gerät enthält oder speichert.
  • Code zum Durchführen der Bedienungen für Ausführungsformen kann in jeglicher Kombination von einer oder mehreren Programmiersprachen geschrieben sein, inclusive einer Objekt-orientierten Programmiersprache, so wie Python, Ruby, Java, Smalltalk, C++ oder dergleichen konventionellen, prozeduralen Programmiersprachen, so wie die „C“-Programmiersprache oder dergleichen und/oder Maschinensprache, so wie Assemblersprachen. Der Code kann vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernten Computer oder vollständig auf dem entfernten Computer oder Server ausgeführt werden. In dem letzteren Szenario kann der Computer mit dem Computer des Benutzers durch jegliche Art von Netzwerk verbunden sein, inklusive (LAN) oder einem Weitverkehrsnetz (WAN) oder die Verbindung kann mit einem externen Computer erzeugt werden (zum Beispiel durch das Internet unter Verwendung eines Internetdienstanbieters) .
  • Ein Bezug in dieser Spezifikation auf „die eine Ausführungsform“ oder „eine Ausführungsform“ oder eine ähnliche Sprache meint, dass ein bestimmtes Merkmal, Struktur oder Charakteristik, die in Verbindung mit der Ausführungsform beschrieben ist, in zumindest einer Ausführungsform enthalten ist. Deshalb kann sich das Auftreten sämtlicher Phrasen „in der einen Ausführungsform“ oder „in einer Ausführungsform“ und eine ähnliche Sprache in dieser Beschreibung auf dieselbe Ausführungsform beziehen, muss es aber nicht, sondern meint „eine oder mehrere aber nicht alle Ausführungsformen“, soweit nicht ausdrücklich anderweitig spezifiziert. Die Begriffe „enthaltend“, „umfassend“, „aufweisend“ und Variationen davon bedeuten „enthaltend“, jedoch nicht darauf „beschränkt“, soweit nicht ausdrücklich anderweitig spezifiziert. Eine Aufzählungsliste von Gegenständen impliziert nicht, dass sich eines oder alle von den Gegenständen ausschließen, soweit nicht ausdrücklich anderweitig spezifiziert. Die Begriffe „ein“, „eine“ und „der“, „die“, „das“ beziehen sich auch auf „ein oder mehrere“, soweit nicht ausdrücklich anderweitig spezifiziert.
  • Weiterhin können die beschriebenen Merkmale, Strukturen oder Charakteristiken der Ausführungsformen in jeder passenden Weise kombiniert werden. In der folgenden Beschreibung werden zahlreiche spezifische Details bereitgestellt, so wie Beispiele von Programmierungen, Softwaremodulen, Benutzerauswahlen, Netzwerkübertragungen, Datenbankanfragen, Datenbankstrukturen, Hardwaremodulen, Hardwareschaltkreisen, Hardwarechips, etc., um ein gründliches Verständnis von Ausführungsformen bereitzustellen. Ein Fachmann wird jedoch erkennen, dass die Ausführungsformen ohne eine oder mehrere der spezifischen Details oder mit anderen Verfahren, Komponenten, Materialien, etc. ausgebildet sein können. In anderen Beispielen sind wohlbekannte Strukturen, Materialien oder Bedienungen nicht im Detail gezeigt oder beschrieben, um Verwirrung von Aspekten einer Ausführungsform zu vermeiden.
  • Aspekte der Ausführungsformen sind unten in Bezug auf schematische Flussdiagramme und/oder schematische Blockdiagramme von Verfahren, Vorrichtungen, Systemen und Programmprodukten gemäß Ausführungsformen beschreiben. Jeder Block der schematischen Ablaufdiagramme und/oder schematischen Blockdiagramme und Kombinationen von Blöcken in den schematischen Ablaufdiagrammen und/oder schematischen Blockdiagrammen können durch Code implementiert werden. Dieser Code kann an einen Prozessor eines Allzweckcomputers, Sonderzweckcomputers oder eine andere programmierbare Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, sodass die Instruktionen, die von dem Prozessor des Computers oder der anderen Datenverarbeitungsvorrichtung ausgeführt werden, Mittel für die Implementierung der Funktionen/Handlungen erzeugt, die in den schematischen Flussdiagrammen und/oder Block oder Blöcken der schematischen Blockdiagramme spezifiziert sind.
  • Der Code kann auch in einem Speichergerät gespeichert sein, das einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Geräte steuern kann, in einer bestimmten Weise zu funktionieren, sodass die Instruktionen, die in dem Speichergerät gespeichert sind, einen Fertigungsartikel erzeugen, inklusive Instruktionen, die die Funktionen/Handlungen, die in den schematischen Flussdiagrammen und/oder Block oder Blöcken der schematischen Blockdiagramme spezifiziert sind, implementieren.
  • Der Code kann auch auf einen Computer, andere programmierbare Datenverarbeitungsvorrichtung oder andere Geräte geladen werden, um eine Reihe von Bedienschritten zu bewirken, die auf dem Computer, anderen programmierbaren Vorrichtung oder anderen Geräten einen computerimplementierten Prozess erzeugen, sodass der Code, der auf dem Computer oder anderen programmierbaren Vorrichtung ausgeführt wird, Prozesse zur Implementierung der Funktionen/Handlungen, die in dem Flussdiagramm und/oder Block oder Blöcken des Blockdiagramms spezifiziert sind.
  • Die schematischen Flussdiagramme und/oder schematischen Blockdiagramme in den Figuren illustrieren die Architektur, Funktionalität und Bedienung von möglichen Implementierungen von Vorrichtungen, Systemen, Verfahren und Programmprodukten gemäß verschiedenen Ausführungsformen. Diesbezüglich kann jeder Block in den schematischen Flussdiagrammen und/oder schematischen Blockdiagrammen ein Modul, Segment oder Teil von Code repräsentieren, der eine oder mehrere ausführbare Instruktionen von dem Code zur Implementierung der spezifizierten logischen Funktion(en) umfasst.
  • In einigen alternativen Implementierungen können die in dem Block notierten Funktionen außerhalb der Ordnung auftreten, in der sie in den Figuren notiert sind, auftreten. Zum Beispiel können zwei Blöcke, die nacheinander gezeigt sind, tatsächlich im Wesentlichen gleichzeitig ausgeführt werden oder die Blöcke können manchmal in der entgegensetzten Reichenfolge ausgeführt werden, abhängig von der involvierten Funktionalität. Andere Schritte und Verfahren können als äquivalent in Funktion, Logik oder Effekt zu einem oder mehreren Blöcken oder Teilen davon aus den illustrierten Figuren verstanden werden.
  • Obwohl verschiedene Pfeiltypen und Linientypen in dem Flussdiagramm und/oder Blockdiagrammen benutzt werden können, sollen diese nicht als den Gegenstand der entsprechenden Ausführungsformen verstanden werden. Tatsächlich können einige Pfeile oder andere Verbinder verwendet werden, um nur auf den logischen Fluss der abgebildeten Ausführungsform hinzuweisen. Zum Beispiel kann ein Pfeil auf ein Warte- oder Überwachungsperiode von unbestimmter Dauer zwischen aufgezählten Schritten der abgebildeten Ausführungsform hinweisen. Auch kann jeder Block der Blockdiagramme und/oder Flussdiagramme und Kombinationen von Blöcken in den Blockdiagrammen und/oder Flussdiagrammen von Systemen implementiert sein, die auf Sonderzweck-Hardware basieren, die die spezifizierten Funktionen oder Handlungen durchführen oder Kombinationen von Sonderzweck-Hardware und Code.
  • Die Beschreibung von Elementen in jeder Figur kann sich auf Elemente von weiterführenden Figuren beziehen. Gleiche Zahlen beziehen sich auf gleiche Elemente in allen Figuren, inklusive alternativer Ausführungsformen gleicher Elemente.
  • 1A ist ein schematisches Diagramm, das eine Ausführungsform eines nichtdeterministischen Netzwerks 100 illustriert. Das nichtdeterministische Netzwerk 100 kann Kommunikation zwischen einer Mehrzahl von Knoten 105 unterstützen. In einer Ausführungsform ist das nichtdeterministische Netzwerk 100 ein Internet-der-Dinge-(IoT-)Netzwerk. In der abgebildeten Ausführungsform enthält das nichtdeterministische Netzwerk 100 eine Mehrzahl von Gerätknoten 105b und eine Mehrzahl von Routerknoten 105a. Die Knoten 105 sind durch Kanten 110 verbunden. Eine Kante 110 kann eine drahtgebundene Verbindung, eine drahtlose Verbindung Kombinationen davon sein. Das nichtdeterministische Netzwerk 100 kann sich weiter in Kommunikation mit einem Netzwerk 115 befinden, so wie ein lokales Netzwerk, ein Weitverkehrsnetzwerk, ein Wi-Fi-Netzwerk, ein mobiles Telefonnetzwerk, das Internet oder Kombinationen davon.
  • Kommunikationen zwischen den Knoten 105 sind nichtdeterministisch. Zum Beispiel kann eine erste Nachricht, die zwischen zwei Knoten kommuniziert wird, einen ersten Kommunikationspfad nehmen, während eine zweite Nachricht, die zwischen denselben zwei Knoten 105 kommuniziert wird, einen zweiten Kommunikationspfad nehmen kann. Auf einen Knoten 105 entlang des Kommunikationspfads kann als ein Pfadknoten 105 Bezug genommen werden.
  • Unglücklicherweise macht es die nichtdeterministische Natur des Netzwerks 100 verwundbar für eine Manipulation. Zum Beispiel könnte ein bösartig Handelnder einen der Knoten 105 kompromittieren und den kompromittierten Knoten 105 verwenden, um Kommunikationen zwischen den Knoten 105 abzufangen und/oder zu modifizieren, auf das Netzwerk 115 zuzugreifen und anderweitig unbefugte und/oder bösartige Handlungen durchzuführen.
  • Die hierin beschriebenen Ausführungsformen bestimmen Kommunikationspfade und kommunizieren verschlüsselte Nachrichten über die Kommunikationspfade, um das nichtdeterministische Netzwerk 100 zu sichern. Als Ergebnis bleiben andere Knoten 105, das nichtdeterministische Netzwerk 100 das Netzwerk 115 sicher, selbst wenn ein erster Knoten 105 kompromittiert wird.
  • 1B ist ein schematisches Diagramm, das eine Ausführungsform eines ersten Kommunikationspfads 120a illustriert. In einer Ausführungsform kann ein erster Knoten 105b1 eine erste Nachricht über den ersten Kommunikationspfad 120a an einen ersten Zielknoten 105b2 in dem nichtdeterministischen Netzwerk 100 von 1A übertragen. Der erste Kommunikationspfad 120a kann beim Aufstarten des ersten Knotens 105b1 bestimmt werden. Zusätzlich kann der erste Kommunikationspfad 120a beim Aufstarten des nichtdeterministischen Netzwerks 100 bestimmt werden. In einer Ausführungsform wird der erste Kommunikationspfad 120a dynamisch in Erwiderung darauf bestimmt, dass die Nachricht bereit ist, zu übertragen.
  • Wenn zusätzlich der erste Zielknoten 105b2 nicht in der Lage ist, die Nachricht zu empfangen, die über den ersten Kommunikationspfad 120a kommuniziert wird, kann ein alternativer Zielknoten 105b3 die Nachricht für den ersten Zielknoten 105b2 empfangen.
  • 1C ist ein schematisches Diagramm, das eine alternative Ausführungsform eines Kommunikationspfads 120 illustriert. In der abgebildeten Ausführungsform ist ein zweiter Kommunikationspfad 120b zwischen dem ersten Knoten 105b1 und dem ersten Zielknoten 105b2 des nichtdeterministischen Netzwerks von 1A gezeigt. Eine zweite Nachricht kann über den zweiten Kommunikationspfad 120b an den ersten Zielknoten 105b2 kommuniziert werden.
  • In einer alternativen Ausführungsform wird die Nachricht an einen Wissensendknoten 105a4 als den ersten Zielknoten kommuniziert. Der Wissensendknoten 105a4 kann ein Knoten 105 sein, der Wissen über den ersten Knoten 105b1 hat und von dem angenommen wird, dass er sich in Kommunikation mit einem zweiten und/oder finalen Zielknoten 105b2 befindet. Die Nachricht kann von dem ersten Knoten 105b1 an den ersten Zielknoten 105a4 über einen Kommunikationspfad 120 und von dem ersten Zielknoten 105a4 an den zweiten Zielknoten 105b2 über einen anderen Kommunikationspfad 120 kommuniziert werden.
  • 2A ist ein schematisches Blockdiagramm, das eine Ausführungsform einer Nachricht 200 illustriert. Die Nachricht 200 kann als eine Datenstruktur in einem Speicher organisiert sein. Zusätzlich kann die Nachricht 120 als organisierte Daten über eine Kante 110 zwischen Knoten 105 übertragen werden. In der abgebildeten Ausführungsform enthält die Nachricht 200 Daten 201 und Kommunikationspfaddaten 220. Die Daten 201 können von dem ersten Gerät 105b1 erzeugt werden und unabhängig von den Kommunikationspfaddaten 220 sein. Die Kommunikationspfaddaten 220 können den Kommunikationspfad 120 beschreiben. Die Kommunikationspfaddaten 220 werden detaillierte in 2B beschrieben.
  • 2B ist ein schematisches Blockdiagramm, das eine Ausführungsform der Kommunikationspfaddaten 220 illustriert. In der abgebildeten Ausführungsform enthalten die Kommunikationspfaddaten 220 eine Mehrzahl von Knotenidentifikatoren 221. Jeder Knotenidentifikator 221 kann einen Pfadknoten 105 in dem Kommunikationspfad 120 identifizieren. In einer bestimmten Ausführungsform sind die Knotenidentifikatoren 221 in einer sequenziellen Reihenfolge aufgelistet, wobei die Nachricht 200 von Pfadknoten 105 zu Pfadknoten 105 in der sequenziellen Reihenfolge kommuniziert wird.
  • In einer Ausführungsform enthalten die Kommunikationspfaddaten 220 enthält einen oder mehrere von einem Wissensendknotenidentifikator 223 und einem finalen Zielknotenidentifikator 225. Der Wissensendknotenidentifikator 223 kann enthalten sein, um die Nachricht 200 an einen finalen Zielknoten 105 zu senden der sich jenseits des Wissens des sendenden Knotens 105 befindet. Zum Beispiel kann der sendende Knoten 105 kein Wissen über Kommunikationspfade 120 zu dem finalen Zielknoten 105 haben. Als Ergebnis kann der sendende Knoten 105 einen Wissensendknoten 105 in dem Wissensendknotenidentifikator 223 identifizieren sowie den finalen Zielknoten 105 in dem finalen Zielknotenidentifikator 225 identifizieren. Die Nachricht 200 kann über einen ersten Kommunikationspfad 120, der von den Knotenidentifikatoren 221 identifiziert wurde, zu dem Wissensendknoten 105, der von dem Wissensendknotenidentifikator 223 identifiziert wurde kommuniziert werden. Der Wissensendknoten 105 kann dann einen zweiten Kommunikationspfad 120 zu einem zweiten Zielknoten 105 bestimmen. Der zweite Zielknoten 105 kann ein anderer Wissensendknoten 105 sein, der in dem Wissensendknotenidentifikator 223 spezifiziert ist, wobei der finale Zielknoten 105 in dem finalen Zielknotenidentifikator 225 spezifiziert ist. Alternativ kann der zweite Zielknoten 105 der finale Zielknoten 105 sein und kann mit dem finalen Zielknotenidentifikator 225 spezifiziert sein. Die Verwendung des Wissensendknotenidentifikators 223 und des finalen Zielknotenidentifikators 225 ermöglicht dem sendenden Knoten 105, Nachrichten 200 an Zielknoten 105 zu kommunizieren, über die der sendende Knoten 105 nur ein unvollständiges Wissen über die dazwischenliegenden Knoten 105 hat.
  • 2C ist ein schematisches Blockdiagramm, das eine Ausführungsform der Kommunikationspfad-Datenbank 229 illustriert. Die Kommunikationspfad-Datenbank 229 kann eine zentralisierte Datenbank sein, die Kommunikationspfade 120 für eine Mehrzahl von Knoten 105 speichert. Zum Beispiel kann ein Routerknoten 105a die Kommunikationspfad-Datenbank 229 pflegen. Die Kommunikationspfad-Datenbank 229 kann Kommunikationspfaddaten 220 für eine Mehrzahl Kommunikationspfaden 120 speichern.
  • 2D ist ein schematisches Blockdiagramm, das eine Ausführungsform einer Blockkettenaufzeichnung 210 illustriert. Die Blockkettenaufzeichnung 210 kann verwendet werden, um Nachrichtentransaktionen 215 zwischen Knoten aufzuzeichnen. Die Blockkettenaufzeichnung 210 enthält mehrere Blöcke 217. Aus Gründen der Einfachheit sind drei Blöcke 217a-c in der abgebildeten Ausführungsform gezeigt. Es kann jedoch jede Zahl von Blöcken 217 verwendet werden. Jeder Block 217 kann an einem Knoten 105 gespeichert werden. Die Blöcke 217 der Blockkettenaufzeichnung 210 können über mehrere Knoten 105 geteilt und synchronisiert werden. Manche Knoten 105 können eine Blockkettenaufzeichnung 210 unabhängig mit mehreren Blöcken 217 pflegen.
  • Jeder Block 217 kann eine Mehrzahl von Nachrichtentransaktionen 215 aufzeichnen. Die Nachrichtentransaktionen 215 können gehasht werden. In einer Ausführungsform werden die gehashten Nachrichtentransaktionen 215 für jeden Block 217 verglichen. Der Block 217 kann nur in der Blockkettenaufzeichnung 210 aufgezeichnet werden, wenn es eine Übereinstimmung für jede Instanz des Blocks 217 gibt.
  • In einer Ausführungsform wird Arbeitsnachweis 211 für jeden Block 217 berechnet. Der Arbeitsnachweis 211 kann so berechnet werden, dass er ein Verschlüsselungsmerkmal aufweist, das schwierig zu berechnen aber einfach zu verifizieren ist. In einer Ausführungsform beinhaltet der Arbeitsnachweis 231 vorherigen Blöcke 213. Der Arbeitsnachweis 231 kann verwendet werden, um die Selbstkonsistenz eines jeden Blocks 217 der Blockkettenaufzeichnung 210 zu validieren.
  • 2E ist ein schematisches Blockdiagramm, das eine Ausführungsform einer Menge 230 von Verschlüsselungsschlüsseln 231 illustriert. Die Menge 230 von Verschlüsselungsschlüsseln 231 enthält eine Mehrzahl von N Verschlüsselungsschlüsseln 231. Die Menge 230 von Verschlüsselungsschlüsseln 231 kann verwendet werden, um die Nachricht 200 zu verschlüsseln. Zum Beispiel kann ein sendender Knoten 105 die Menge 230 von Verschlüsselungsschlüsseln 231 verwenden, um die Nachricht 200 zu verschlüsseln. In einer Ausführungsform wird nur eine Teilmenge 233 von M Verschlüsselungsschlüsseln 231 der Menge 230 von N Verschlüsselungsschlüsseln 231 benötigt, um die Nachricht 200 zu entschlüsseln. Zum Beispiel kann ein Zielknoten 105 die Teilmenge 233 der Menge 230 von Verschlüsselungsschlüsseln 231 verwenden, um eine verschlüsselte Nachricht zu entschlüsseln.
  • 2F ist ein schematisches Blockdiagramm, das eine Ausführungsform von Knoten-Verschlüsselungsschlüsseln 240 illustriert. In der abgebildeten Ausführungsform kann ein Knoten 105 einen Verschlüsselungsschlüssel 231 aufweisen. Der Verschlüsselungsschlüssel 231 kann von einem Pfadknoten 105 verwendet werden, um eine verschlüsselte Nachricht teilweise zu entschlüsseln, wenn die Nachricht 200 an dem Pfadknoten 105 empfangen wird. Zusätzlich kann der Verschlüsselungsschlüssel 231 von einem Schlüsselhalteknoten 105 an einen Zielknoten 105 bereitgestellt werden.
  • 3A ist ein schematisches Blockdiagramm, das eine Ausführungsform einer verschlüsselten Nachricht 300 illustriert. In der abgebildeten Ausführungsform ist die Nachricht 200 mit einer Verschlüsselung 305 verschlüsselt. Die Verschlüsselung 305 kann erzeugt werden unter Verwendung der Menge 230 von Verschlüsselungsschlüsseln 231. Zusätzlich kann die einzelne Verschlüsselung 305 mit der Teilmenge 233 der Menge 230 von Verschlüsselungsschlüssel 231 entschlüsselt werden.
  • 3B ist ein schematisches Blockdiagramm, das eine alternative Ausführungsform der verschlüsselten Nachricht 300 illustriert. In der abgebildeten Ausführungsform ist die Nachricht 200 mit der Verschlüsselung 305 wie in 3A gezeigt verschlüsselt. Jede nachfolgende Transaktion der verschlüsselten Nachricht 300 durch einen Pfadknoten 105 wird als eine Nachrichtentransaktion 215 von einer Zwiebelschalenaufzeichnung 310 aufgezeichnet, wobei jede nachfolgende Nachrichtentransaktion 215 vorherigen Nachrichtentransaktionen 215, die Verschlüsselung 305 und die Nachricht 200 einkapselt. Die Zwiebelschalenaufzeichnung 310 kann eine Mehrzahl von Schichten von Nachrichtentransaktionen 215 umfassen. Jede Schicht kann eine Nachrichtentransaktion 215 repräsentieren. Zusätzlich kann jede Schicht von einem Knoten 105 signiert und an die verschlüsselte Nachricht 300 angehängt werden. Der Zielknoten 105 kann die Signatur von jedem Knoten 105 validieren.
  • In einer Ausführungsform entschlüsselt jeder Pfadknoten 105, der die verschlüsselte Nachricht 300 verarbeitet, einen Bereich der Verschlüsselung 305 mit dem Verschlüsselungsschlüssel 231 des Pfadknotens 105. Die Verschlüsselung 305 der Nachricht 200 kann verbleiben, aber die nachfolgende Verschlüsselung 305 enthält nicht den Verschlüsselungsschlüssel 231 des verarbeitenden Pfadknotens 105.
  • In einer alternativen Ausführungsform verschlüsselt jede Transaktion 215 die verschlüsselte Nachricht 300 weiter mit dem Verschlüsselungsschlüssel 231 des Knotens 105 der die Transaktion 215 durchführt.
  • 4 ist ein schematisches Blockdiagramm, das eine Ausführungsform eines Knotens 105 illustriert. In der abgebildeten Ausführungsform enthält der Knoten 105 einen Prozessor 405, einen Speicher 410 und eine Netzwerkverbindung 415. Der Speicher 410 kann ein Halbleiter-Speichergerät, Festplatte, ein optisches Speichergerät, ein mikromechanisches Speichergerät oder Kombinationen davon enthalten. Der Speicher 410 kann Code speichern. Der Prozessor 405 kann den Code ausführen. Die Netzwerkverbindung 415 kann mit anderen Knoten 105 in dem nichtdeterministischen Netzwerk 100 kommunizieren.
  • 5 ist ein schematisches Flussdiagramm, das eine Ausführungsform eines sicheren Kommunikationsverfahrens 500 illustriert. Das Verfahren 500 kann Nachrichten 200 zwischen den Knoten 105 des nichtdeterministischen Netzwerk 100 sicher kommunizieren. Das Verfahren 500 kann von einem oder mehreren Knoten 105 und/oder den Prozessoren 405 davon durchgeführt werden.
  • Das Verfahren 500 startet in einer Ausführungsform damit, dass der Prozessor 405 eine Kommunikationspfad 120 zu einem Zielknoten 105 in einem Netzwerk von Knoten 105 bestimmt 505. Das Netzwerk von Knoten 105 kann das nichtdeterministische Netzwerk 100 sein. Zusätzlich kann das Netzwerk von Knoten 105 als ein ungerichteter Graph organisiert sein, wobei Kanten 110 zwischen den Knoten 105 bidirektionale Kommunikationskanäle sind.
  • Die Zielknoten 105 können der finale Zielknoten 105 sein, der durch den finalen Zielknotenidentifikator 225 spezifiziert ist. Alternativ kann der Zielknoten 105 ein Wissensendknoten 105 sein. Der Knotenidentifikator 221 für den Wissensendknoten 105 kann als der Wissensendknotenidentifikator 223 aufgezeichnet sein. Der Knotenidentifikator 221 des finalen Zielknotens 105 kann als der finale Zielknotenidentifikator 225 aufgezeichnet sein.
  • Der Kommunikationspfad 120 kann ein aufspannender Baum der Pfadknoten 105 des ungerichteten Graphen sein. Der aufspannende Baum kann eine Teilmenge des nichtdeterministischen Netzwerks 100 sein, wobei all die Knoten 105 mit einer minimal möglichen Anzahl von Kanten 110 umfasst sind. Als ein Ergebnis weist der aufspannende Baum keine zyklischen Verbindungen auf, wobei zwei Knoten 105 durch mehr als einen Kommunikationspfad 120 verbunden sind. Deshalb ist jeder Pfadknoten 105 des Kommunikationspfads 120 bekannt.
  • In einer Ausführungsform wird der Kommunikationspfad 120 in einer Datenstruktur so wie die Kommunikationspfaddaten 220 aufgezeichnet und an die Nachricht 200 angehängt wie in 2A gezeigt. Zusätzlich kann der Kommunikationspfad 120 als eine Datenstruktur so wie die Kommunikationspfaddaten 220 in der Kommunikationspfad-Datenbank 229 aufgezeichnet werden.
  • Der Prozessor 405 kann die Nachricht 200 an einen ersten Zielknoten 105 mit einer Verschlüsselung 305 verschlüsseln 510. Die Verschlüsselung 305 kann jeden Verschlüsselungsschlüssel 231 der Menge 230 von Verschlüsselungsschlüsseln 231 verwenden. Die Verschlüsselungsschlüssel 231 der Menge 230 sind bekannt, da jeder Pfadknoten 105 des Kommunikationspfads 120 auch bekannt ist. Die Verschlüsselung 305 kann nur die Teilmenge 233 der Menge 230 von Verschlüsselungsschlüsseln 231 zum Entschlüsseln verwenden. In einer bestimmten Ausführungsform wird die Nachricht 200 mit einem Kassenbuch-Verschlüsselungsalgorithmus verschlüsselt 510.
  • Der Prozessor 405 kann weiter die verschlüsselte Nachricht 300 über die Pfadknoten 105 des Kommunikationspfads 120 kommunizieren 515. In einer Ausführungsform wird jede Transaktion 215 von jedem Pfadknoten 105 mit der Nachricht 200 und/oder verschlüsselten Nachricht 300 aufgezeichnet. Jede Transaktion 215 kann als eine Blockkettenaufzeichnung 210 aufgezeichnet werden, wie in 2D beschrieben. Die Blöcke 217 der Blockkettenaufzeichnung 210 können an einem oder mehreren Abrechnungsknoten 105 aufgezeichnet werden.
  • In einer Ausführungsform wird jede Transaktion 215 von jedem Pfadknoten 105 mit der Nachricht 200 und/oder verschlüsselten Nachricht 300 als eine Zwiebelschalenaufzeichnung 310 aufgezeichnet, wie in 3B gezeigt. Die Zwiebelschalenaufzeichnung 310 kann eine Mehrzahl von Schichten enthalten. Jede Schicht kann eine Nachrichtentransaktion 215 sein und kann von dem Pfadknoten 215, der die Nachricht 200 und/oder die verschlüsselte Nachricht 300 verarbeitet, signiert werden. Die Schicht kann an die Nachricht 200 und/oder verschlüsselte Nachricht 300 angehängt werden. Der Kassenbuch-Verschlüsselungsalgorithmus kann die Nachrichtentransaktionen 215 und/oder Blöcke 217 der Blockkettenaufzeichnungen 210 von 2D verschlüsseln.
  • Der Prozessor 405 kann die verschlüsselte Nachricht 300 entschlüsseln 525. In einer Ausführungsform wird die verschlüsselte Nachricht 300 an dem Zielknoten 105 mit der Teilmenge 233 der Menge 230 von Verschlüsselungsschlüssel 231 entschlüsselt 525. Die Teilmenge 233 von Verschlüsselungsschlüsseln 231 kann von Schlüsselhalteknoten 105 gehalten werden, die sich in Kommunikation mit dem Zielknoten 105 befinden. In einer Ausführungsform akquiriert der Zielknoten 105 die Verschlüsselungsschlüssel 231 der Teilmenge 233 von den Schlüsselhalteknoten 105. Zum Beispiel kann der Zielknoten 105 drei Verschlüsselungsschlüssel 231 von drei Schlüsselhalteknoten 105 anfragen. Die Schlüsselhalteknoten 105 können Kanten 110 mit den Zielknoten 105 teilen.
  • In einer bestimmten Ausführungsform entschlüsselt 525 jeder Pfadknoten 105, die verschlüsselte Nachricht 300 verarbeitet die verschlüsselte Nachricht 300 mit einem Verschlüsselungsschlüssel 231 von der Teilmenge 233 von Verschlüsselungsschlüsseln 231 und der Zielknoten 105 entschlüsselt 525 die verschlüsselte Nachricht 300 mit einem anderen Verschlüsselungsschlüssel 231 von der Teilmenge 233 von Verschlüsselungsschlüsseln 231. Als ein Ergebnis muss die verschlüsselts Nachricht 300 von jedem Pfadknoten 105 des Kommunikationspfads 120 verarbeitet werden, um entschlüsselt 525 zu werden.
  • Der Prozessor 405 kann jede Nachrichtentransaktion 215 entlang des Kommunikationspfads 120 verifizieren 530. Die Nachrichtentransaktionen 215 entlang des Kommunikationspfads 120 können an dem Zielknoten 105 verifiziert 530 werden. In einer Ausführungsform werden die Nachrichtentransaktionen 215 der Zwiebelschale 310 auf eine Manipulation inspiziert. Zusätzlich können die Nachrichtentransaktionen 215 von einem oder mehreren Blöcken 217 auf Manipulation inspiziert werden.
  • Der Prozessor 405 kann bestimmen 535, ob der Zielknoten 105 ein finaler Zielknoten 105 ist. Der Prozessor 405 kann den Knotenidentifikator 221 des Zielknotens 105 mit dem Wissensendknotenidentifikator 223 und dem finalen Zielknotenidentifikator 225 vergleichen. Wenn der Knotenidentifikator 221 des Zielknotens 105 der finale Zielknotenidentifikator 225 ist, ist der Zielknoten 105 der finale Zielknoten 105 und das Verfahren 500 endet.
  • Wenn der Knotenidentifikator 221 des Zielknotens 105 der Wissensendknotenidentifikator 223 ist, kann der Prozessor 405 einen zweiten Kommunikationspfad 120 zu einem zweiten Zielknoten 105 bestimmen 505. Der zweite Zielknoten 105 kann der finale Zielknoten 105 sein, der von dem finalen Zielknotenidentifikator 225 spezifiziert ist. Alternativ kann der zweite Zielknoten 105 ein Wissensendknoten 105 sein. Der Knotenidentifikator 221 für den Wissensendknoten 105 kann als der Wissensendknotenidentifikator 223 aufgezeichnet sein.
  • Der Prozessor 405 kann weiter die Nachricht 200 an den zweiten Zielknoten 105 mit einer Verschlüsselung 305 unter Verwendung einer Menge 230 von zweiten Verschlüsselungsschlüsseln 231 verschlüsseln 510. Die Verschlüsselung 305 kann eine Teilmenge 233 der Menge 230 von zweiten Verschlüsselungsschlüsseln 231 benötigen, um sie zu entschlüsseln. Der Prozessor 405 kann die verschlüsselte Nachricht 300 kommunizieren 515, jede Transaktion 215 von jedem Pfadknoten 105 aufzeichnen 520, die verschlüsselte Nachricht 300 entschlüsseln 525, die Transaktionen 215 verifizieren 530, erneut bestimmen 535, ob der Zielknoten 105 der finale Zielknoten 105 ist, wie oben beschrieben, bis der Zielknoten 105 der finale Zielknoten 105 ist und das Verfahren 500 endet. Al sein Ergebnis kann die Nachricht 200 durch eine Reihe von Wissensendknoten 105 kommuniziert werden, bis der finale Zielknoten 105 erreicht ist.
  • Die Ausführungsformen bestimmen einen Kommunikationspfad 120 zu einem Zielknoten 105 in einem Netzwerk von Knoten 105, das als ein ungerichteter Graph organisiert ist, wobei der Kommunikationspfad 120 ein aufspannender Baum von Pfadknoten 105 des ungerichteten Graphs ist. Als ein Ergebnis ist jeder Pfadknoten 105 des Kommunikationspfads 120 bekannt. Die Ausführungsformen verschlüsseln weiter die Nachricht 200 zu dem Zielknoten 105 mit einer Verschlüsselung 305, die die Teilmenge 233 der Menge 230 von Verschlüsselungsschlüsseln 231 zum Entschlüsseln benötigt.
  • Die Ausführungsformen kommunizieren weiter die verschlüsselte Nachricht 300 über die Pfadknoten 105 des Kommunikationspfads 120 wobei die verschlüsselte Nachricht an dem Zielknoten 105 mit der Teilmenge 233 von Verschlüsselungsschlüsseln 231 entschlüsselt wird. Als ein Ergebnis wird die Nachricht 200 sicher innerhalb der nichtdeterministischen Netzwerks 100 kommuniziert.
  • Ausführungsformen können in anderen spezifischen Formen ausgeübt werden. Die beschriebenen Ausführungsformen sollen in allen Belangen nur als illustrativ und nicht beschränkend verstanden werden. Auf den Gegenstand der Erfindung wird daher in den beigefügten Ansprüchen hingewiesen, anstatt in der vorangegangenen Beschreibung. Alle Änderungen, die innerhalb der Bedeutung und im Bereich der Äquivalenz der Ansprüche liegen, sollen innerhalb deren Umfang gefasst sein.

Claims (21)

  1. Was beansprucht wird, ist:
  2. Vorrichtung, umfassend: - eine Netzwerkverbindung; - ein Prozessor; - einen Speicher, der Code speichert, der von dem Prozessor ausführbar zum: - Bestimmen eines ersten Kommunikationspfads zu einem ersten Zielknoten in einem Netzwerk von Knoten, das als ein ungerichteter Graph organisiert ist und sich in Kommunikation mit der Netzwerkverbindung befindet, wobei der erste Kommunikationspfad ein aufspannender Baum von Pfadknoten des ungerichteten Graphs ist; - Verschlüsseln einer Nachricht an den ersten Zielknoten mit einer Verschlüsselung unter Verwendung einer Menge von ersten Verschlüsselungsschlüsseln; und - Kommunizieren der verschlüsselten Nachricht über die Pfadknoten des ersten Kommunikationspfads, wobei jede Transaktion von jedem Pfadknoten mit der verschlüsselten Nachricht wird und die verschlüsselte Nachricht an dem ersten Zielknoten mit einer Teilmenge der Menge von ersten Verschlüsselungsschlüsseln entschlüsselt wird, wobei die Teilmenge der Menge von ersten Verschlüsselungsschlüsseln von Schlüsselhalteknoten gehalten wird, die sich in Kommunikation mit dem ersten Zielknoten befinden.
  3. Vorrichtung nach Anspruch 1, wobei jede Transaktion als eine Blockkettenaufzeichnung an einem oder mehreren Abrechnungsknoten aufgezeichnet wird.
  4. Vorrichtung nach Anspruch 1, wobei jede Transaktion als eine Zwiebelschalenaufzeichnung aufgezeichnet wird, die eine Mehrzahl von Schichten umfasst, wobei jede Schicht von einem Knoten signiert und an die Nachricht angehängt wird und wobei der erste Zielknoten die Signatur von jedem Knoten validiert.
  5. Vorrichtung nach Anspruch 1, wobei die Nachricht mit einem Kassenbuch-Verschlüsselungsalgorithmus verschlüsselt ist.
  6. Vorrichtung nach Anspruch 1, wobei jeder Pfadknoten die verschlüsselte Nachricht mit einem Verschlüsselungsschlüssel der Teilmenge der Menge von ersten Verschlüsselungsschlüsseln entschlüsselt und der ersten Zielknoten die verschlüsselte Nachricht mit einem anderen Verschlüsselungsschlüssel der Teilmenge der Menge von ersten Verschlüsselungsschlüsseln entschlüsselt.
  7. Vorrichtung nach Anspruch 1, wobei der erste Kommunikationspfad beim Aufstarten bestimmt wird.
  8. Vorrichtung nach Anspruch 1, wobei der erste Kommunikationspfad dynamisch in Erwiderung darauf bestimmt wird, dass die Nachricht bereit ist zu übertragen.
  9. Vorrichtung nach Anspruch 1, wobei der erste Kommunikationspfad in einer zentralisierten Kommunikationspfad-Datenbank aufgezeichnet wird.
  10. Vorrichtung nach Anspruch 1, wobei der erste Kommunikationspfad in einer Datenstruktur, die der Nachricht angehängt ist, aufgezeichnet wird.
  11. Vorrichtung nach Anspruch 1, wobei der erste Zielknoten ein Wissensendknoten ist und der erste Zielknoten weiter: - einen zweiten Kommunikationspfad zu einem zweiten Zielknoten bestimmt; und - die Nachricht an den zweiten Zielknoten mit einer Verschlüsselung verschlüsselt, die eine Menge von zweiten Verschlüsselungsschlüsseln umfasst, und eine Teilmenge der Menge von zweiten Verschlüsselungsschlüsseln benötigt, um sie zu entschlüsseln.
  12. Vorrichtung nach Anspruch 1, wobei jede Transaktion entlang des ersten Kommunikationspfads an dem Zielknoten verifiziert wird.
  13. Verfahren, umfassend: - Bestimmen eines ersten Kommunikationspfads zu einem ersten Zielknoten in einem Netzwerk von Knoten, das als ungerichteter Graph organisiert ist und sich in Verbindung mit der Netzwerkverbindung befindet, wobei der erste Kommunikationspfad ein aufspannender Baum von Pfadknoten des ungerichteten Graphs ist, durch Verwendung eines Prozessors ; - Verschlüsseln einer Nachricht an den ersten Zielknoten mit einer Verschlüsselung unter Verwendung einer Menge von ersten Verschlüsselungsschlüsseln; und - Kommunizieren der verschlüsselten Nachricht über Pfadknoten des ersten Kommunikationspfads, wobei jede Transaktion von jedem Pfadknoten mit der verschlüsselten Nachricht aufgezeichnet wird und die verschlüsselte Nachricht an dem ersten Zielknoten mit einer Teilmenge der Menge von ersten Verschlüsselungsschlüsseln entschlüsselt wird, wobei die Teilmenge der Menge von ersten Verschlüsselungsschlüsseln von Schlüsselhalteknoten gehalten wird, die sich in Kommunikation mit dem ersten Zielknoten befinden.
  14. Verfahren nach Anspruch 12, wobei jede Transaktion als eine Blockkettenaufzeichnung an einem oder mehreren Abrechnungsknoten aufgezeichnet wird.
  15. Verfahren nach Anspruch 12, wobei jede Transaktion als eine Zwiebelschalenaufzeichnung aufgezeichnet wird, die eine Mehrzahl von Schichten umfasst, wobei jede Schicht von einem Knoten signiert und an die Nachricht angehängt wird und wobei der erste Zielknoten die Signatur von jedem Knoten validiert.
  16. Verfahren nach Anspruch 12, wobei die Nachricht mit einem Kassenbuch-Verschlüsselungsalgorithmus verschlüsselt ist.
  17. Verfahren nach Anspruch 12, wobei jeder Pfadknoten die verschlüsselte Nachricht mit einem Verschlüsselungsschlüssel der Teilmenge der Menge von ersten Verschlüsselungsschlüsseln entschlüsselt und der ersten Zielknoten die verschlüsselte Nachricht mit einem anderen Verschlüsselungsschlüssel der Teilmenge der Menge von ersten Verschlüsselungsschlüsseln entschlüsselt.
  18. Programmprodukt, umfassend ein computerlesbares Speichermedium, das Code speichert, der von einem Prozessor ausführbar ist, wobei der ausführbare Code Code umfasst zum: - Bestimmen eines ersten Kommunikationspfads zu einem ersten Zielknoten in einem Netzwerk von Knoten, das als ungerichteter Graph organisiert ist und sich in Verbindung mit der Netzwerkverbindung befindet, wobei der erste Kommunikationspfad ein aufspannender Baum von Pfadknoten des ungerichteten Graphs ist; - Verschlüsseln einer Nachricht an den ersten Zielknoten mit einer Verschlüsselung unter Verwendung einer Menge von ersten Verschlüsselungsschlüsseln; und - Kommunizieren der verschlüsselten Nachricht über Pfadknoten des ersten Kommunikationspfads, wobei jede Transaktion von jedem Pfadknoten mit der verschlüsselten Nachricht aufgezeichnet wird und die verschlüsselte Nachricht an dem ersten Zielknoten mit einer Teilmenge der Menge von ersten Verschlüsselungsschlüsseln entschlüsselt wird, wobei die Teilmenge der Menge von ersten Verschlüsselungsschlüsseln von Schlüsselhalteknoten gehalten wird, die sich in Kommunikation mit dem ersten Zielknoten befinden.
  19. Programmprodukt nach Anspruch 17, wobei jede Transaktion als eine Blockkettenaufzeichnung an einem oder mehreren Abrechnungsknoten aufgezeichnet wird.
  20. Programmprodukt nach Anspruch 17, wobei jede Transaktion als eine Zwiebelschalenaufzeichnung aufgezeichnet wird, die eine Mehrzahl von Schichten umfasst, wobei jede Schicht von einem Knoten signiert und an die Nachricht angehängt wird und wobei der erste Zielknoten die Signatur von jedem Knoten validiert.
  21. Programmprodukt nach Anspruch 17, wobei die Nachricht mit einem Kassenbuch-Verschlüsselungsalgorithmus verschlüsselt ist.
DE102019107699.4A 2018-03-27 2019-03-26 Sichere Kommunikation in einem nichtdeterministischen Netzwerk Pending DE102019107699A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/936,895 US20190306129A1 (en) 2018-03-27 2018-03-27 Secure communication in a nondeterministic network
US15/936,895 2018-03-27

Publications (1)

Publication Number Publication Date
DE102019107699A1 true DE102019107699A1 (de) 2019-10-02

Family

ID=65995483

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019107699.4A Pending DE102019107699A1 (de) 2018-03-27 2019-03-26 Sichere Kommunikation in einem nichtdeterministischen Netzwerk

Country Status (5)

Country Link
US (1) US20190306129A1 (de)
EP (1) EP3547642B1 (de)
CN (1) CN110311884B (de)
DE (1) DE102019107699A1 (de)
GB (1) GB2575704B (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11239999B1 (en) * 2018-04-25 2022-02-01 Tyson York Winarski Blockchain network communications system
US10650023B2 (en) * 2018-07-24 2020-05-12 Booz Allen Hamilton, Inc. Process for establishing trust between multiple autonomous systems for the purposes of command and control
CN110891061B (zh) * 2019-11-26 2021-08-06 中国银联股份有限公司 数据的加解密方法、装置、存储介质及加密文件
CN113596034A (zh) * 2021-07-30 2021-11-02 安徽高山科技有限公司 基于伪装轻节点的区块链隐私通讯方法、设备及存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4706080A (en) * 1985-08-26 1987-11-10 Bell Communications Research, Inc. Interconnection of broadcast networks
US7010590B1 (en) * 1999-09-15 2006-03-07 Datawire Communications Networks, Inc. System and method for secure transactions over a network
US7159108B2 (en) * 2002-10-04 2007-01-02 International Business Machines Corporation Anonymous peer-to-peer networking
JP2007005898A (ja) * 2005-06-21 2007-01-11 Toshiba Corp ノード装置、匿名通信方法及び匿名通信プログラム
KR20080103118A (ko) * 2007-02-26 2008-11-27 (주)아이젠데이타시스템 서버 공유에 따른 데이터베이스 안전 관리시스템
CN102404737B (zh) * 2011-12-29 2014-07-02 重庆邮电大学 基于动态探测的无线传感器网络安全路由的方法
EP2823619B1 (de) * 2012-03-07 2019-12-25 Google Technology Holdings LLC Richtlinie für sichere paketübertragung unter verwendung von pfaden mit erforderlichen knoten sowie von verschlüsselungssignaturen
CN103607726B (zh) * 2013-11-25 2016-08-31 河海大学常州校区 无线传感器网络中基于正六边形的移动锚节点路径规划方法
US9641338B2 (en) * 2015-03-12 2017-05-02 Skuchain, Inc. Method and apparatus for providing a universal deterministically reproducible cryptographic key-pair representation for all SKUs, shipping cartons, and items
CN106656798B (zh) * 2016-12-30 2020-03-27 质数链网科技成都有限公司 一种计算决策路径的方法及分布式节点
US20190371106A1 (en) * 2017-01-30 2019-12-05 EXO One Pty Ltd Voting system and method

Also Published As

Publication number Publication date
EP3547642A1 (de) 2019-10-02
GB2575704B (en) 2021-07-28
CN110311884A (zh) 2019-10-08
CN110311884B (zh) 2021-08-17
GB201904134D0 (en) 2019-05-08
GB2575704A (en) 2020-01-22
US20190306129A1 (en) 2019-10-03
EP3547642B1 (de) 2020-07-15

Similar Documents

Publication Publication Date Title
DE102019107699A1 (de) Sichere Kommunikation in einem nichtdeterministischen Netzwerk
WO2020216065A1 (zh) 一种区块链中的投票方法及装置
DE102019208032A1 (de) Verfahren und system für fehlertolerante und sichere mehrparteienberechnung mit spdz
DE112020005289B4 (de) Teilweise sortierte blockchain
DE102017126706A1 (de) System von Enklaven
DE112018000779T5 (de) Tokenbereitstellung für Daten
DE112013000357B4 (de) System zum Authentifizieren einer Annahme einer Zeichenfolge durch einen Automaten
DE102014113582B4 (de) Vorrichtung, Verfahren und System für die kontextbewusste Sicherheitssteuerung in einer Cloud-Umgebung
WO2022088606A1 (zh) 基于联邦学习的gbdt与lr融合方法、装置、设备和存储介质
DE112015002927B4 (de) Generierung und Verwaltung geheimer Chiffrierschlüssel auf Kennwortgrundlage
DE112015000213T5 (de) Passwortgestützte Berechtigungsprüfung
DE102015214267A1 (de) Verfahren und System zum Erzeugen eines sicheren Kommunikationskanals für Endgeräte
DE212015000047U1 (de) Sichere Anmeldung ohne Passwörter
DE102013213316A1 (de) Zufallsbitstromgenerator mit verbesserter rückwärts gerichteter Gemeinhaltung
Brandao et al. Robust device-independent randomness amplification with few devices
DE102015003236A1 (de) Verfahren und System zum Bereitstellen von temporären, sicheren Zugang ermöglichenden virtuellen Betriebsmitteln
DE102013213354A1 (de) Zufallsbitstromgenerator mit garantierter mindestperiode
DE202015104128U1 (de) Datenzugriffssystem
DE102019113510A1 (de) Vorrichtung und Verfahren zur Bereitstellung von geschützten Informationen
DE10393847T5 (de) Verfahren und Vorrichtung zum Auffinden einer gemeinsam genutzten vertraulichen Information ohne Beeinträchtigung nicht-gemeinsam genutzter vertraulicher Informationen
EP3811260B1 (de) Kryptografiemodul und betriebsverfahren hierfür
DE102015115295A1 (de) Verfahren und vorrichtung zur verarbeitung von daten
DE102015103251B4 (de) Verfahren und System zum Verwalten von Nutzerdaten eines Nutzerendgeräts
DE202020005753U1 (de) Verwalten von Benutzeridentitäten in einem verwalteten Multi-Tenant-Dienst
DE112012000780T5 (de) Verarbeiten von Berechtigungsprüfungsdaten

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R082 Change of representative

Representative=s name: GRUENECKER PATENT- UND RECHTSANWAELTE PARTG MB, DE