DE112021006008T5 - Sichere übertragung grosser datenmengen - Google Patents

Sichere übertragung grosser datenmengen Download PDF

Info

Publication number
DE112021006008T5
DE112021006008T5 DE112021006008.2T DE112021006008T DE112021006008T5 DE 112021006008 T5 DE112021006008 T5 DE 112021006008T5 DE 112021006008 T DE112021006008 T DE 112021006008T DE 112021006008 T5 DE112021006008 T5 DE 112021006008T5
Authority
DE
Germany
Prior art keywords
key
encrypted
data
transcoder
computer
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
DE112021006008.2T
Other languages
English (en)
Inventor
Steven Robert Hetzler
Guerney Hunt
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112021006008T5 publication Critical patent/DE112021006008T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/088Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
    • 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/0471Network 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 encryption by an intermediary, e.g. receiving clear information at the intermediary and encrypting the received information at the intermediary before forwarding
    • 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
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0682Tape device
    • 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/76Proxy, i.e. using intermediary entity to perform cryptographic operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/062Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying encryption of the keys

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)
  • Storage Device Security (AREA)

Abstract

Ein durch einen Computer ausgeführtes Verfahren umfasst ein Empfangen, durch einen Codeumsetzer, von zweiten verschlüsselten Daten. Bei den zweiten verschlüsselten Daten handelt es sich um Daten, die in einem ersten Schlüssel verschlüsselt wurden, um erste verschlüsselte Daten zu erstellen, welche dann in einem zweiten Schlüssel verschlüsselt werden, um die zweiten verschlüsselten Daten zu erstellen. Das Verfahren umfasst ein Empfangen des zweiten Schlüssels und ein Entschlüsseln der zweiten verschlüsselten Daten unter Verwendung des zweiten Schlüssels, um die ersten verschlüsselten Daten zu erhalten. Das Verfahren umfasst ein Verschlüsseln der ersten verschlüsselten Daten unter Verwendung eines dritten Schlüssels, um dritte verschlüsselte Daten zu erstellen, und ein Senden der dritten verschlüsselten Daten an einen Zielknoten. Ein durch einen Computer ausgeführtes Verfahren umfasst ein Empfangen, durch einen Codeumsetzer, eines zweiten verschlüsselten Schlüssels. Bei dem zweiten verschlüsselten Schlüssel handelt es sich um einen Schlüssel, der in einem ersten Schlüssel verschlüsselt wurde, um einen ersten verschlüsselten Schlüssel zu erstellen, welcher dann in einem zweiten Schlüssel verschlüsselt wird, um den zweiten verschlüsselten Schlüssel zu erstellen.

Description

  • HINTERGRUND
  • Die vorliegende Erfindung betrifft eine Übertragung großer Datenmengen unter Verwendung von Speichersystemen, und insbesondere betrifft diese Erfindung sichere Codeumsetzer für eine Übertragung großer Datenmengen in Cloud-Speichersystemen und Netzwerken.
  • Es ist wünschenswert, Daten zwischen verschiedenen Computerknoten sicher gemeinsam zu nutzen. Eine sichere Datenübertragung ist besonders vorteilhaft, um Berechnungsfunktionen in der Nähe von gespeicherten Daten bereitzustellen. Zum Beispiel kann jeder Knoten über eine spezielle Berechnungsfunktion verfügen (z.B. eine Datenbank, eine Inferenzeinheit usw.). Zugriffskontrollen werden in Ansätzen nach dem Stand der Technik herkömmlicherweise verwendet, um eine gemeinsame Nutzung von Daten einzuschränken. Zugriffskontrollen sind nicht absolut sicher und können zu Datenlecks führen. Zum Beispiel können Zugriffsrechte ausgeweitet werden, die Kontrollen können falsch konfiguriert sein usw.
  • In weiteren Ansätzen nach dem Stand der Technik verschlüsselt ein Quellenknoten die gespeicherten Daten. In einem weiteren Ansatz kann der Quellenknoten Daten entschlüsseln und die Daten über eine sichere Verbindung zur gemeinsamen Nutzung senden. In noch einem weiteren Ansatz entschlüsselt der Quellenknoten die Daten und der Quellenknoten kann den Entschlüsselungsschlüssel des Quellenknotens mit einem Zielknoten gemeinsam nutzen. Bei diesen Anwendungen gibt es viele Möglichkeiten für Datenlecks. Für einige Anwendungen kann eine homomorphe Verschlüsselung verwendet werden, um einen sicheren Zugriff auf Daten bereitzustellen, jedoch ist die homomorphe Verschlüsselung auf Situationen beschränkt, in denen der Zielknoten Berechnungen an Daten durchführen darf, ohne Zugriff auf den einfachen Text der Daten zu haben. Der Nutzen der homomorphen Verschlüsselung ist durch ihre langsame Verarbeitung eingeschränkt.
  • Diese verschiedenen Ansätze nach dem Stand der Technik erfordern tendenziell einen hohen Grad an Vertrauen in den Zielknoten. Darüber hinaus mangelt es diesen herkömmlichen Ansätzen an Flexibilität für einen Funktionsersatz. Es besteht weiterhin Bedarf in der Technik an einem Verfahren zur sicheren gemeinsamen Nutzung von Daten und zum Ermöglichen von Operationen (wie z.B. Berechnungen in der Nähe des Speichers) bei gleichzeitiger Bereitstellung eines hohen Grades an Sicherheit für gemeinsam genutzte Daten, einschließlich der Möglichkeit, die gemeinsame Nutzung zu beenden, insbesondere, wenn sich der Zielknoten ungebührlich verhält.
  • KU RZDARSTELLU NG
  • Ein durch einen Computer ausgeführtes Verfahren, gemäß einem Aspekt, umfasst ein Empfangen, durch einen Codeumsetzer, von zweiten verschlüsselten Daten. Bei den zweiten verschlüsselten Daten handelt es sich um Daten, die in einem ersten Schlüssel verschlüsselt wurden, um erste verschlüsselte Daten zu erstellen, welche dann in einem zweiten Schlüssel verschlüsselt werden, um die zweiten verschlüsselten Daten zu erstellen. Das Verfahren umfasst ein Empfangen, durch den Codeumsetzer, des zweiten Schlüssels und ein Entschlüsseln, durch den Codeumsetzer, der zweiten verschlüsselten Daten unter Verwendung des zweiten Schlüssels, um die ersten verschlüsselten Daten zu erhalten. Das Verfahren umfasst auch ein Verschlüsseln, durch den Codeumsetzer, der ersten verschlüsselten Daten unter Verwendung eines dritten Schlüssels, um dritte verschlüsselte Daten zu erstellen, und ein Senden, durch den Codeumsetzer, der dritten verschlüsselten Daten an einen Zielknoten. Das durch einen Computer ausgeführte Verfahren bietet den Vorteil, dass es dem Zielknoten ermöglicht, Zugriff auf durch den Quellenknoten gespeicherte Daten zu haben und die Daten so lange zu entschlüsseln, wie der Codeumsetzer dies dem Zielknoten erlaubt. Das durch einen Computer ausgeführte Verfahren, gemäß einer Ausführungsform, kann ein Senden, durch den Codeumsetzer, des dritten Schlüssels an den Zielknoten umfassen. Der Zielknoten entschlüsselt die dritten verschlüsselten Daten unter Verwendung des dritten Schlüssels, um die ersten verschlüsselten Daten zu erhalten. Der Zielknoten entschlüsselt die ersten verschlüsselten Daten unter Verwendung des ersten Schlüssels, um die Daten zu erhalten. Diese Ausführungsform gibt dem Zielknoten vorteilhaft Zugriff auf doppelt verschlüsselte Daten, die der Zielknoten entschlüsseln kann, und verhindert Datenlecks, wenn der Codeumsetzer nie Zugriff auf den ersten Schlüssel hat.
  • Das durch einen Computer ausgeführte Verfahren, gemäß einer Ausführungsform, kann ein Ersetzen, durch den Codeumsetzer, des dritten Schlüssels durch einen Dummy-Schlüssel umfassen, um eine gemeinsame Nutzung von Daten zwischen dem Quellenknoten und dem Zielknoten zu beenden. Diese Ausführungsform beschränkt den Zugriff eines Zielknotens selbst dann vorteilhaft auf die gespeicherten Daten, wenn der Zielknoten seine eigene Kopie des dritten Schlüssels verwaltet.
  • Ein System, gemäß einem weiteren Aspekt, umfasst einen Prozessor und Logik, die in den Prozessor integriert ist, durch den Prozessor ausführbar ist oder in den Prozessor integriert und durch den Prozessor ausführbar ist. Die Logik ist so konfiguriert, dass sie das vorstehende Verfahren durchführt.
  • Ein Computerprogrammprodukt, gemäß einem noch weiteren Aspekt, umfasst ein oder mehrere durch einen Computer lesbare Speichermedien und Programmanweisungen, die zusammen auf dem einen oder den mehreren durch einen Computer lesbaren Speichermedien gespeichert sind. Die Programmanweisungen umfassen Programmanweisungen, die dazu dienen, das vorstehende Verfahren durchzuführen.
  • Ein durch einen Computer ausgeführtes Verfahren, gemäß einem Aspekt, umfasst ein Empfangen, durch einen Codeumsetzer, eines zweiten verschlüsselten Schlüssels. Bei dem zweiten verschlüsselten Schlüssel handelt es sich um einen Schlüssel, der in einem ersten Schlüssel verschlüsselt wurde, um einen ersten verschlüsselten Schlüssel zu erstellen, welcher dann in einem zweiten Schlüssel verschlüsselt wird, um den zweiten verschlüsselten Schlüssel zu erstellen. Das Verfahren umfasst ein Empfangen, durch den Codeumsetzer, des zweiten Schlüssels und ein Entschlüsseln, durch den Codeumsetzer, des zweiten verschlüsselten Schlüssels unter Verwendung des zweiten Schlüssels, um den ersten verschlüsselten Schlüssel zu erhalten. Das Verfahren umfasst auch ein Verschlüsseln, durch den Codeumsetzer, des ersten verschlüsselten Schlüssels unter Verwendung eines dritten Schlüssels, um einen dritten verschlüsselten Schlüssel zu erstellen, und ein Senden, durch den Codeumsetzer, des dritten verschlüsselten Schlüssels an den Zielknoten. Dieser Aspekt verbessert die Effizienz der Codeumsetzung, wobei eine Codeumsetzung von Schlüsseln effizienter als eine Codeumsetzung von verhältnismäßig längeren Datenblöcken sein kann.
  • Das durch einen Computer ausgeführte Verfahren, gemäß einer Ausführungsform, kann ein Senden, durch den Codeumsetzer, des dritten Schlüssels an einen Zielknoten umfassen. Der Zielknoten entschlüsselt den dritten verschlüsselten Schlüssel unter Verwendung des dritten Schlüssels, um den ersten verschlüsselten Schlüssel zu erhalten. Der Zielknoten entschlüsselt den ersten verschlüsselten Schlüssel unter Verwendung des ersten Schlüssels, um den Schlüssel zu erhalten. Diese Ausführungsform gibt dem Zielknoten vorteilhaft Zugriff auf doppelt verschlüsselte Daten, die der Zielknoten entschlüsseln kann, und verhindert Datenlecks, wenn der Codeumsetzer nie Zugriff auf den ersten Schlüssel hat.
  • Das durch einen Computer ausgeführte Verfahren, gemäß einer Ausführungsform, kann umfassen, dass der Zielknoten den Schlüssel zum Entschlüsseln von Daten von dem Quellenknoten verwendet. Diese Ausführungsform kann vorteilhaft doppelte Verschlüsselungsprozesse für verhältnismäßig längere Datenblöcke umgehen, während sie gleichzeitig die Sicherheit einer doppelten Verschlüsselung bietet.
  • Ein Computerprogrammprodukt, gemäß einem noch weiteren Aspekt, umfasst ein oder mehrere durch einen Computer lesbare Speichermedien und Programmanweisungen, die zusammen auf dem einen oder den mehreren durch einen Computer lesbaren Speichermedien gespeichert sind. Die Programmanweisungen umfassen Programmanweisungen, die dazu dienen, das vorstehende Verfahren durchzuführen.
  • Weitere Aspekte und Ansätze der vorliegenden Erfindung gehen aus der folgenden ausführlichen Beschreibung hervor, die in Zusammenschau mit den Zeichnungen beispielhaft die Grundgedanken der Erfindung veranschaulicht.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Bevorzugte Ausführungsformen der vorliegenden Erfindung werden nun lediglich beispielhaft und unter Bezugnahme auf die folgenden Zeichnungen beschrieben:
    • 1 stellt eine Cloud-Computing-Umgebung gemäß einer einzelnen Ausführungsform der vorliegenden Erfindung dar.
    • 2 stellt Abstraktionsmodellschichten gemäß einer einzelnen Ausführungsform der vorliegenden Erfindung dar.
    • 3 ist eine Darstellung einer allgemeinen Architektur gemäß einer einzelnen Ausführungsform der vorliegenden Erfindung.
    • 4 ist eine Darstellung einer allgemeinen Architektur gemäß einer einzelnen Ausführungsform der vorliegenden Erfindung.
    • Die 5A bis 5D sind Darstellungen von allgemeinen Architekturen gemäß einer einzelnen Ausführungsform der vorliegenden Erfindung.
    • 6 ist ein Ablaufplan eines Verfahrens gemäß einer einzelnen Ausführungsform der vorliegenden Erfindung.
    • 7 ist ein Ablaufplan eines Verfahrens gemäß einer einzelnen Ausführungsform der vorliegenden Erfindung.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die folgende Beschreibung erfolgt zu dem Zweck, die allgemeinen Grundgedanken der vorliegenden Erfindung zu veranschaulichen, und sie ist nicht als Einschränkung der hier beanspruchten erfindungsgemäßen Konzepte zu verstehen. Darüber hinaus können bestimmte hierin beschriebene Merkmale in Kombination mit anderen beschriebenen Merkmalen in einer jeden der verschiedenen möglichen Kombinationen und Permutationen verwendet werden.
  • Sofern hierin nicht ausdrücklich anders definiert, sind alle Begriffe in ihrer weitestmöglichen Auslegung zu verstehen, die Bedeutungen, welche sich aus der Spezifikation ergeben, sowie Bedeutungen, die der Fachmann versteht und/oder die in Wörterbüchern, Abhandlungen usw. definiert sind, einschließt.
  • Es ist auch anzumerken, dass die Singularformen „ein“, „eine“, „einer“ und „der“, „die“, „das“ in der in der Spezifikation und den beigefügten Ansprüchen verwendeten Weise Pluralbezüge einschließen, sofern nichts anderes angegeben ist. Es wird des Weiteren darauf hingewiesen, dass die Begriffe „aufweist“ und/oder „aufweisend“, wenn sie in dieser Beschreibung verwendet werden, das Vorhandensein von angegebenen Merkmalen, ganzen Zahlen, Schritten, Operationen, Elementen und/oder Komponenten bezeichnen, das Vorhandensein oder das Hinzufügen von einem oder mehreren anderen/weiteren Merkmalen, ganzen Zahlen, Schritten, Operationen, Elementen, Komponenten und/oder Gruppen davon jedoch nicht ausschließen.
  • Die folgende Beschreibung offenbart mehrere Ausführungsformen einer Freigabe des Zugriffs auf gespeicherte Daten zwischen einem Quellenknoten und einem Zielknoten unter Verwendung eines Codeumsetzers, um den Zielknoten mit Zugriff auf die Daten, ohne Zugriff auf den/die geheimen Schlüssel der Quelle zur Entschlüsselung der gespeicherten Daten, auszustatten.
  • In einer einzelnen allgemeinen Ausführungsform umfasst ein durch einen Computer ausgeführtes Verfahren ein Empfangen, durch einen Codeumsetzer, von zweiten verschlüsselten Daten. Bei den zweiten verschlüsselten Daten handelt es sich um Daten, die in einem ersten Schlüssel verschlüsselt wurden, um erste verschlüsselte Daten zu erstellen, welche dann in einem zweiten Schlüssel verschlüsselt werden, um die zweiten verschlüsselten Daten zu erstellen. Das Verfahren umfasst ein Empfangen, durch den Codeumsetzer, des zweiten Schlüssels und ein Entschlüsseln, durch den Codeumsetzer, der zweiten verschlüsselten Daten unter Verwendung des zweiten Schlüssels, um die ersten verschlüsselten Daten zu erhalten. Das Verfahren umfasst auch ein Verschlüsseln, durch den Codeumsetzer, der ersten verschlüsselten Daten unter Verwendung eines dritten Schlüssels, um dritte verschlüsselte Daten zu erstellen, und ein Senden, durch den Codeumsetzer, der dritten verschlüsselten Daten an einen Zielknoten.
  • In einer weiteren allgemeinen Ausführungsform umfasst ein System einen Prozessor und Logik, die in den Prozessor integriert ist, durch den Prozessor ausführbar ist oder in den Prozessor integriert und durch den Prozessor ausführbar ist. Die Logik ist so konfiguriert, dass sie das vorstehende Verfahren durchführt.
  • In einer weiteren allgemeinen Ausführungsform umfasst ein Computerprogrammprodukt ein oder mehrere durch einen Computer lesbare Speichermedien und Programmanweisungen, die zusammen auf dem einen oder den mehreren durch einen Computer lesbaren Speichermedien gespeichert sind. Die Programmanweisungen umfassen Programmanweisungen zur Durchführung des vorstehenden Verfahrens.
  • In einer einzelnen allgemeinen Ausführungsform umfasst ein durch einen Computer ausgeführtes Verfahren ein Empfangen, durch einen Codeumsetzer, eines zweiten verschlüsselten Schlüssels. Bei dem zweiten verschlüsselten Schlüssel handelt es sich um einen Schlüssel, der in einem ersten Schlüssel verschlüsselt wurde, um einen ersten verschlüsselten Schlüssel zu erstellen, welcher dann in einem zweiten Schlüssel verschlüsselt wird, um den zweiten verschlüsselten Schlüssel zu erstellen. Das Verfahren umfasst ein Empfangen, durch den Codeumsetzer, des zweiten Schlüssels und ein Entschlüsseln, durch den Codeumsetzer, des zweiten verschlüsselten Schlüssels unter Verwendung des zweiten Schlüssels, um den ersten verschlüsselten Schlüssel zu erhalten. Das Verfahren umfasst auch ein Verschlüsseln, durch den Codeumsetzer, des ersten verschlüsselten Schlüssels unter Verwendung eines dritten Schlüssels, um einen dritten verschlüsselten Schlüssel zu erstellen, und ein Senden, durch den Codeumsetzer, des dritten verschlüsselten Schlüssels an den Zielknoten.
  • In einer weiteren allgemeinen Ausführungsform umfasst ein Computerprogrammprodukt ein oder mehrere durch einen Computer lesbare Speichermedien und Programmanweisungen, die zusammen auf dem einen oder den mehreren durch einen Computer lesbaren Speichermedien gespeichert sind. Die Programmanweisungen umfassen Programmanweisungen zur Durchführung des vorstehenden Verfahrens.
  • Es sei von vornherein klargestellt, dass das Umsetzen der hierin angeführten Lehren nicht auf eine Cloud-Computing-Umgebung beschränkt ist, obwohl diese Offenbarung eine ausführliche Beschreibung von Cloud-Computing umfasst. Stattdessen können Ausführungsformen der vorliegenden Erfindung gemeinsam mit jeder beliebigen weiteren Art von jetzt bekannter oder später erfundener Datenverarbeitungsumgebung umgesetzt werden.
  • Cloud-Computing ist ein Servicebereitstellungsmodell zum Ermöglichen eines problemlosen bedarfsgesteuerten Netzwerkzugriffs auf einen gemeinsam genutzten Pool von konfigurierbaren Datenverarbeitungsressourcen (z.B. Netzwerken, Netzwerkbandbreite, Servern, Verarbeitung, Arbeitsspeichern, Speichern, Anwendungen, virtuellen Maschinen und Services), die mit minimalem Verwaltungsaufwand bzw. minimaler Interaktion mit einem Anbieter des Service schnell bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Eigenschaften umfassen, mindestens drei Dienstmodelle und mindestens vier Implementierungsmodelle.
  • Bei den Eigenschaften handelt es sich um die folgenden:
  • On-Demand Self-Service: Ein Cloud-Nutzer kann einseitig automatisch nach Bedarf für Datenverarbeitungsfunktionen wie Serverzeit und Netzwerkspeicher sorgen, ohne dass eine menschliche Interaktion mit dem Anbieter der Dienste erforderlich ist.
  • Broad Network Access: Es sind Funktionen über ein Netzwerk verfügbar, auf die durch Standardmechanismen zugegriffen wird, welche die Verwendung durch heterogene Thin- oder Thick-Client-Plattformen (z.B. Mobiltelefone, Laptops und PDAs) unterstützen.
  • Resource-Pooling: Die Datenverarbeitungsressourcen des Anbieters werden zusammengeschlossen, um mehreren Nutzern unter Verwendung eines Multi-Tenant-Modells zu dienen, wobei verschiedene physische und virtuelle Ressourcen dynamisch nach Bedarf zugewiesen und neu zugewiesen werden. Es gibt eine gefühlte Standortunabhängigkeit, da der Nutzer allgemein keine Kontrolle bzw. Kenntnis über den genauen Standort der bereitgestellten Ressourcen hat, aber in der Lage sein kann, einen Standort auf einer höheren Abstraktionsebene festzulegen (z.B. Land, Staat oder Rechenzentrum).
  • Rapid Elasticity: Funktionen können für eine schnelle horizontale Skalierung (scale out) schnell und elastisch bereitgestellt werden, in einigen Fällen auch automatisch, und für ein schnelles Scale-in schnell freigegeben werden. Für den Nutzer erscheinen die für das Bereitstellen verfügbaren Funktionen häufig unbegrenzt und sie können jederzeit in jeder beliebigen Menge gekauft werden.
  • Measured Service: Cloud-Systeme steuern und optimieren die Verwendung von Ressourcen automatisch, indem sie eine Messfunktion auf einer gewissen Abstraktionsebene nutzen, die für die Art von Dienst geeignet ist (z.B. Speicher, Verarbeitung, Bandbreite sowie aktive Benutzerkonten). Die Nutzung von Ressourcen kann überwacht, gesteuert und gemeldet werden, wodurch sowohl für den Anbieter als auch für den Nutzer des verwendeten Dienstes Transparenz geschaffen wird.
  • Bei den Servicemodellen handelt es sich um die folgenden:
  • Software as a Service (SaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, die in einer Cloud-Infrastruktur laufenden Anwendungen des Anbieters zu verwenden. Die Anwendungen sind über eine Thin-Client-Schnittstelle wie einen Web-Browser (z.B. auf dem Web beruhende E-Mail) von verschiedenen Client-Einheiten her zugänglich. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter das Netzwerk, Server, Betriebssysteme, Speicher bzw. sogar einzelne Anwendungsfunktionen, mit der möglichen Ausnahme von eingeschränkten benutzerspezifischen Anwendungskonfigurationseinstellungen.
  • Platform as a Service (PaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, durch einen Nutzer erstellte bzw. erhaltene Anwendungen, die unter Verwendung von durch den Anbieter unterstützten Programmiersprachen und Tools erstellt wurden, in der Cloud-Infrastruktur einzusetzen. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter Netzwerke, Server, Betriebssysteme bzw. Speicher, hat aber die Kontrolle über die eingesetzten Anwendungen und möglicherweise über Konfigurationen des Application Hosting Environment.
  • Infrastructure as a Service (laaS): Die dem Nutzer bereitgestellte Funktion besteht darin, das Verarbeiten, Speicher, Netzwerke und andere grundlegende Datenverarbeitungsressourcen bereitzustellen, wobei der Nutzer in der Lage ist, beliebige Software einzusetzen und auszuführen, zu der Betriebssysteme und Anwendungen gehören können. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, hat aber die Kontrolle über Betriebssysteme, Speicher, eingesetzte Anwendungen und möglicherweise eine eingeschränkte Kontrolle über ausgewählte Netzwerkkomponenten (z.B. Host-Firewalls).
  • Bei den Einsatzmodellen handelt es sich um die folgenden:
  • Private Cloud: Die Cloud-Infrastruktur wird einzig und allein für eine Organisation betrieben. Sie kann durch die Organisation oder einen Dritten verwaltet werden und kann sich in den eigenen Räumen oder in fremden Räumen befinden.
  • Community Cloud: Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine spezielle Benutzergemeinschaft, die gemeinsame Angelegenheiten hat (z.B. Mission, Sicherheitsanforderungen, Richtlinien sowie Überlegungen bezüglich der Einhaltung von Vorschriften). Sie kann durch die Organisationen oder einen Dritten verwaltet werden und kann sich in den eigenen Räumen oder in fremden Räumen befinden.
  • Public Cloud: Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Industriegruppe zur Verfügung gestellt und sie gehört einer Cloud-Dienste verkaufenden Organisation.
  • Hybrid Cloud: Die Cloud-Infrastruktur ist eine Zusammensetzung aus zwei oder mehreren Clouds (privat, Benutzergemeinschaft oder öffentlich), die zwar einzelne Einheiten bleiben, aber durch eine standardisierte oder proprietäre Technologie miteinander verbunden sind, die Daten- und Anwendungsportierbarkeit ermöglicht (z.B. Cloud-Zielgruppenverteilung für den Lastenausgleich zwischen Clouds).
  • Eine Cloud-Computing-Umgebung ist dienstorientiert mit Fokus auf Statusunabhängigkeit, geringer Kopplung, Modularität und semantischer Interoperabilität. Im Herzen von Cloud-Computing liegt eine Infrastruktur, die ein Netzwerk aus zusammengeschalteten Knoten umfasst.
  • Unter Bezugnahme auf 1 ist eine veranschaulichende Cloud-Computing-Umgebung 50 abgebildet. Wie gezeigt ist, umfasst die Cloud-Computing-Umgebung 50 einen oder mehrere Cloud-Computing-Knoten 10, mit denen von Cloud-Nutzern verwendete lokale Datenverarbeitungseinheiten wie beispielsweise ein elektronischer Assistent (PDA, personal digital assistant) oder ein Mobiltelefon 54A, ein Desktop-Computer 54B, ein Laptop-Computer 54C und/oder ein Automobil-Computer-System 54N Daten austauschen können. Die Knoten 10 können miteinander Daten austauschen. Sie können physisch oder virtuell in ein oder mehrere Netzwerke wie private, Benutzergemeinschafts-, öffentliche oder hybride Clouds gruppiert werden (nicht gezeigt), wie vorstehend beschrieben wurde, oder in eine Kombination daraus. Dies ermöglicht es der Cloud-Computing-Umgebung 50, Infrastruktur, Plattformen und/oder Software als Dienste anzubieten, für die ein Cloud-Nutzer keine Ressourcen auf einer lokalen Datenverarbeitungseinheit vorhalten muss. Es sei darauf hingewiesen, dass die Arten der in 1 gezeigten Datenverarbeitungseinheiten 54A bis N lediglich veranschaulichend sein sollen und dass die Datenverarbeitungsknoten 10 und die Cloud-Computing-Umgebung 50 über eine beliebige Art Netzwerk und/oder über eine beliebige Art von über ein Netzwerk aufrufbarer Verbindung (z.B. unter Verwendung eines Web-Browsers) mit einer beliebigen Art von computergestützter Einheit Daten austauschen können.
  • Unter Bezugnahme auf 2 ist ein Satz von funktionalen Abstraktionsschichten gezeigt, die von der Cloud-Computing-Umgebung 50 (1) bereitgestellt werden. Es sollte von vornherein klar sein, dass die in 2 gezeigten Komponenten, Schichten und Funktionen lediglich veranschaulichend sein sollen und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie dargestellt ist, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt:
  • Eine Hardware- und Softwareschicht 60 umfasst Hardware- und Softwarekomponenten. Zu Beispielen für Hardware-Komponenten gehören: Mainframe-Computer 61; auf der RISC- (Reduced Instruction Set Computer) Architektur beruhende Server 62; Server 63; Blade-Server 64; Speichereinheiten 65; und Netzwerke sowie Netzwerkkomponenten 66. In einigen Ausführungsformen umfassen Softwarekomponenten eine Netzwerk-Anwendungsserver-Software 67 und eine Datenbanksoftware 68.
  • Eine Virtualisierungsschicht 70 stellt eine Abstraktionsschicht bereit, aus der die folgenden Beispiele für virtuelle Einheiten bereitgestellt werden können: virtuelle Server 71; virtueller Speicher 72; virtuelle Netzwerke 73, darunter virtuelle private Netzwerke; virtuelle Anwendungen und Betriebssysteme 74; und virtuelle Clients 75.
  • In einem Beispiel kann eine Verwaltungsschicht 80 die nachstehend beschriebenen Funktionen bereitstellen. Eine Ressourcen-Bereitstellung 81 stellt die dynamische Beschaffung von Datenverarbeitungsressourcen sowie anderen Ressourcen bereit, die zum Durchführen von Aufgaben innerhalb der Cloud-Computing-Umgebung verwendet werden. Ein Messen und eine Preisfindung 82 stellen die Kostenverfolgung beim Verwenden von Ressourcen innerhalb der Cloud-Computing-Umgebung sowie die Abrechnung oder Rechnungsstellung für den Verbrauch dieser Ressourcen bereit. In einem Beispiel können diese Ressourcen Anwendungssoftwarelizenzen umfassen. Eine Sicherheit stellt die Identitätsüberprüfung für Cloud-Nutzer und Aufgaben sowie Schutz für Daten und andere Ressourcen bereit. Ein Benutzerportal 83 stellt Nutzern und Systemadministratoren den Zugang zu der Cloud-Computing-Umgebung bereit. Eine Verwaltung des Dienstumfangs 84 stellt die Zuordnung und Verwaltung von Cloud-Computing-Ressourcen bereit, so dass die benötigten Dienstziele erreicht werden. Ein Planen und Erfüllen von Vereinbarungen zum Dienstumfang (SLA, Service Level Agreement) 85 stellt die Anordnung vorab und die Beschaffung von Cloud-Computing-Ressourcen, für die eine zukünftige Anforderung vorausgesehen wird, gemäß einem SLA bereit.
  • Eine Arbeitslastschicht 90 stellt Beispiele für die Funktionalität bereit, für welche die Cloud-Computing-Umgebung verwendet werden kann. Zu Beispielen für Arbeitslasten und Funktionen, die von dieser Schicht bereitgestellt werden können, gehören: Abbildung und Navigation 91; Software-Entwicklung und Lebenszyklusverwaltung 92; Bereitstellung von Ausbildung in virtuellen Klassenzimmern 93; Datenanalytikverarbeitung 94; Transaktionsverarbeitung 95; und eine sichere Übertragung großer Datenmengen 96.
  • Verschiedene Ausführungsformen der vorliegenden Erfindung umfassen die Freigabe des Zugriffs auf gespeicherte Daten zwischen einem Quellenknoten und einem Zielknoten unter Verwendung eines sicheren Codeumsetzers, um den Zielknoten mit Zugriff auf die Daten, ohne Zugriff auf die geheimen Schlüssel der Quelle zur Entschlüsselung der gespeicherten Daten, auszustatten. In bevorzugten Ausführungsformen werden die gespeicherten Daten durch den Quellenknoten mit einem ersten Quellenschlüssel verschlüsselt und die verschlüsselten Daten (z.B. erste verschlüsselte Daten) werden durch den Quellenknoten mit einem zweiten Quellenschlüssel weiter verschlüsselt, um doppelt verschlüsselte Daten (z.B. zweite verschlüsselte Daten) zu erstellen. Der erste Quellenschlüssel wird mit dem Zielknoten gemeinsam genutzt und der zweite Quellenschlüssel wird mit dem sicheren Codeumsetzer gemeinsam genutzt. Der Codeumsetzer stellt einen dritten Schlüssel bereit und nutzt den dritten Schlüssel gemeinsam mit dem Zielknoten. Der Codeumsetzer entschlüsselt die doppelt verschlüsselten Daten unter Verwendung des zweiten Schlüssels und verschlüsselt die jetzt einzeln verschlüsselten Daten erneut in dem dritten Schlüssel, um doppelt verschlüsselte Daten unter Verwendung des dritten Schlüssels (z.B. dritte verschlüsselte Daten) zu erstellen. Der Codeumsetzer nutzt den dritten Schlüssel gemeinsam mit dem Zielknoten. Der Zielknoten greift auf die doppelt verschlüsselten Daten (z.B. in dem ersten Schlüssel verschlüsselt und in dem dritten Schlüssel weiter verschlüsselt) über den Codeumsetzer zu. Die doppelt verschlüsselten Daten werden in einem Datenspeicher für persistente Daten gespeichert.
  • Vorteilhafterweise ermöglichen mindestens einige Ausführungsformen der vorliegenden Erfindung dem Zielknoten, so lange auf Daten zuzugreifen und sie zu entschlüsseln, wie der Codeumsetzer dies dem Zielknoten erlaubt (z.B. gemäß einer zwischen dem Quellenknoten und dem Codeumsetzer festgelegten Richtlinie für eine gemeinsame Nutzung). Darüber hinaus hat der Codeumsetzer nie Zugriff auf die Daten von einfachem Text, und der Zielknoten wird an einem zukünftigen Zugriff auf die gespeicherten Daten gehindert, sobald die Richtlinie für eine gemeinsame Nutzung geändert wird.
  • In weiteren Ansätzen verschlüsselt der Quellenknoten jeden Datenchunk mit einem anderen Chunk-Schlüssel (z.B. wird jeder Datenchunk mit einem eindeutigen Chunk-Schlüssel verschlüsselt) und verwendet mindestens einige Ausführungsformen der vorliegenden Offenbarung, um jeden Datenchunk zu verschlüsseln und jeden Datenchunk zu transcodieren. Dieser Schlüssel-je-Chunk-Ansatz verringert die Verschlüsselungslast für den Codeumsetzer erheblich.
  • Mindestens einige der hierin beschriebenen Ausführungsformen sind vorteilhaft mit symmetrischen Verschlüsselungstechniken verwendbar, was im Vergleich zu verhältnismäßig langsameren Verschlüsselungsverfahren mit öffentlichem Schlüssel zur Übertragung von Daten zwischen Knoten in einem System zu einer verhältnismäßig höheren Leistungsfähigkeit führt.
  • 3 stellt eine allgemeine Architektur gemäß verschiedenen Konfigurationen dar. Die Architektur 300 kann gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung in verschiedenen Konfigurationen in beliebigen der Umgebungen, die unter anderem in den 1 bis 2 und 4 bis 7 dargestellt sind, ausgeführt sein. Natürlich können mehr oder weniger Elemente als diejenigen, die in 3 ausdrücklich beschrieben sind, in der Architektur 300 enthalten sein, wie der Fachmann verstehen dürfte, nachdem er die vorliegenden Beschreibungen gelesen hat.
  • Die Architektur 300 umfasst eine allgemeine Architektur, die einen Quellenknoten 302, einen Speicher 304 und einen Zielknoten 306 aufweist. Der Quellenknoten 302 umfasst eine Quellenknoten-Berechnungsressource 308, einen ersten Schlüssel k1 310 und einen zweiten Schlüssel k2 312. Der Quellenknoten 302 umfasst eine Quellenknoten-Managerfunktion 314, eine k1-Verschlüsselungs-/Entschlüsselungsfunktion 316 des Quellenknotens und eine k2-Verschlüsselungs-/Entschlüsselungsfunktion 318 des Quellenknotens. Jede hierin beschriebene Verschlüsselungs-/Entschlüsselungsfunktion kann so konfiguriert sein, dass sie Daten unter Verwendung von (einem) geeigneten Schlüssel(n) und (einer) beliebigen, bekannten Verschlüsselungstechnik(en) verschlüsselt und/oder entschlüsselt, wie der Fachmann verstehen dürfte, nachdem er die vorliegende Offenbarung gelesen hat. Der Quellenknoten 302 kann eine Mehrzahl von ersten Schlüsseln, eine Mehrzahl von zweiten Schlüsseln, eine Mehrzahl von Sätzen von ersten Schlüsseln, eine Mehrzahl von Sätzen von zweiten Schlüsseln usw. umfassen.
  • Bei dem Speicher 304 kann es sich um ein Speichersystem, ein Solid-State-Laufwerk (SSD, solid state drive), eine Festplatte, ein Bandlaufwerk, einen Speicherklassenspeicher, einen DRAM, einen persistenten Speicher oder einen beliebigen Typ von in der Technik bekanntem Speicher oder eine beliebige Kombination daraus handeln.
  • Die Architektur 300 umfasst einen sicheren Codeumsetzer 320. Der sichere Codeumsetzer 320 umfasst eine Managerfunktion 322 des sicheren Codeumsetzers und einen sicheren Schlüsselspeicher 324 für den zweiten Schlüssel k2 312. Der sichere Codeumsetzer 320 kann in mindestens einigen Ansätzen einen Schlüsselgenerator 326 umfassen. Der sichere Codeumsetzer 320 umfasst einen dritten Schlüssel k3 328. Der sichere Codeumsetzer 320 umfasst eine k2-Verschlüsselungs-/Entschlüsselungsfunktion 330 des sicheren Codeumsetzers und eine k3-Verschlüsselungs-/Entschlüsselungsfunktion 332 des sicheren Codeumsetzers.
  • In verschiedenen Ansätzen erzeugt der Schlüsselgenerator 326 den dritten Schlüssel k3 328. Der dritte Schlüssel k3 328 kann in einigen Ansätzen durch den Quellenknoten 302 erzeugt werden. In weiteren Ansätzen kann der dritte Schlüssel k3 328 durch den Zielknoten 306 erzeugt werden. In bevorzugten Ausführungsformen wird der dritte Schlüssel k3 328 durch den Schlüsselgenerator 326 oder den Quellenknoten 302 erzeugt, um das Sicherheitsrisiko eines schwachen Schlüssels, eine Wiederverwendung von Schlüsseln usw. zu vermeiden. In noch weiteren Ansätzen kann jeder hierin beschriebene Schlüssel durch einen in der Technik bekannten Schlüsselgenerator und/oder Schlüsselmanager (nicht gezeigt) erzeugt und/oder verwaltet werden, wie es für einen Fachmann beim Lesen der vorliegenden Offenbarung offensichtlich werden dürfte.
  • Der sichere Codeumsetzer 320 kann so ausgelegt sein, dass er Operationen für eine gemeinsame Nutzung durchführt, die vorzugsweise jeweils durch getrennte Richtlinien angegeben sind. Der Codeumsetzer kann über eine Mehrzahl von Schlüsselspeichern und/oder eine Mehrzahl von Verschlüsselungs-/Entschlüsselungsfunktionen des sicheren Codeumsetzers verfügen. Diese zusätzlichen Richtlinien (und zugehörigen Komponenten) bieten zusätzliche Sicherheit für jede Richtlinie für eine gemeinsame Nutzung (z.B. kann jede Richtlinie für eine gemeinsame Nutzung einen getrennten, eindeutigen dritten Schlüssel haben, obgleich die Richtlinien für eine gemeinsame Nutzung auf dieselben Daten zugreifen können).
  • Der sichere Codeumsetzer 320 kann in Hardware, Software usw. oder einer beliebigen Kombination daraus ausgeführt sein. Um die gewünschte Sicherheit zu erreichen, schützt der sichere Codeumsetzer 320 den zweiten Schlüssel k2 312 vor Zugriff außerhalb des sicheren Codeumsetzers 320, um eine geschwächte oder aufgehobene Sicherheit aufgrund von Datenlecks zu verhindern.
  • Der Zielknoten 306 umfasst eine Zielknoten-Berechnungsressource 334, einen Schlüsselspeicher 336 für den ersten Schlüssel k1 310 und einen Schlüsselspeicher 338 für den dritten Schlüssel k3 328. Der Zielknoten 306 umfasst eine Zielknoten-Managerfunktion 340. Der Zielknoten 306 umfasst eine k1-Verschlüsselungs-/Entschlüsselungsfunktion 342 des Zielknotens und eine k3-Verschlüsselungs-/Entschlüsselungsfunktion 344 des Zielknotens.
  • Eine beispielhafte Ausführung gemäß verschiedenen Ausführungsformen der Architektur 300 wird unter Bezugnahme auf die Pfeile und/oder die Verbindungslinien von 3 beschrieben. Der Quellenknoten 302 speichert Daten in dem Speicher 304. Daten in der Verwendung in der gesamten vorliegenden Offenbarung können Anwendungsdaten, Metadaten, Schlüssel, einen beliebigen anderen Typ von Informationen oder eine beliebige Kombination daraus umfassen, wie es für einen Fachmann beim Lesen der vorliegenden Offenbarung offensichtlich werden dürfte. In der Verwendung in der gesamten Offenbarung kann die Verschlüsslung durch die Verschlüsselungsnotation „encrypt(key,data)“ und die Entschlüsselung kann durch die Entschlüsselungsnotation „decrypt(key,data)“ veranschaulicht sein. Der Quellenknoten 302, der eine Einheit von Daten speichert, die mit „P“ bezeichnet ist, verschlüsselt die Daten, P, vorzugsweise unter Verwendung der k1-Verschlüsselungs-/Entschlüsselungsfunktion 316 des Quellenknotens, welche den ersten Schlüssel k1 310 verwendet, als C1 = encrypt(k1,P). Die k2-Verschlüsselungs-/ Entschlüsselungsfunktion 318 des Quellenknotens verschlüsselt das Ergebnis (C1) unter Verwendung des zweiten Schlüssels k2 312 weiter als C2 = encrypt(k2,C1). Verschlüsselte Daten C2 werden in einer Operation 346 an den Speicher 304 gesendet. Die gespeicherten Daten werden in der Kombination aus dem ersten Schlüssel k1 310 und dem zweiten Schlüssel k2 312 verschlüsselt. In einigen Ansätzen können Daten, die keine Verschlüsselung für eine gemeinsame Nutzung erfordern, in einer Operation 348 direkt an den Speicher 304 gesendet werden. In verschiedenen Ansätzen kann der Speicher 304 eine darauf befindliche Verschlüsselungs-/Entschlüsselungsfunktion (nicht gezeigt) zum Durchführen einer weiteren Verschlüsselung umfassen, um die Daten auf eine Weise zu speichern, die für einen Fachmann beim Lesen der vorliegenden Offenbarung offensichtlich werden dürfte.
  • Vorzugsweise authentifizieren sich der Quellenknoten 302, der Speicher 304, der Zielknoten 306 und der sichere Codeumsetzer 320 gegenseitig, um die Identität des jeweils anderen zu bestätigen, bevor die Daten gemeinsam genutzt werden. In verschiedenen Ansätzen kann die Identität einer jeden Komponente in der Architektur 300 gemäß in der Technik bekannten Protokollen authentifiziert werden. In einigen Ansätzen kann die Authentifizierung Teil eines Einrichtens von sicheren Übertragungsverbindungen zwischen den Parteien sein. In bevorzugten Ausführungsformen sind alle Übertragungsverbindungen sicher (z.B. verschlüsselt). Zum Beispiel kann der Quellenknoten 302 den gemeinsamen Zugriff für Daten mit dem Zielknoten 306 unter Verwendung einer Richtlinie für eine gemeinsame Nutzung einrichten. Die Richtlinie für eine gemeinsame Nutzung kann Richtlinieninformationen wie beispielsweise den Satz von Daten, die gemeinsam genutzt werden sollen, die Dauer der gemeinsamen Nutzung, die Menge an Daten, die gemeinsam genutzt werden sollen, andere Zugriffsberechtigungen usw. oder eine beliebige Kombination daraus aufweisen. Richtlinieninformationen können in einer Operation 350 zwischen der Quellenknoten-Managerfunktion 314 und der Managerfunktion 322 des sicheren Codeumsetzers gesendet werden (z.B. von der Quellenknoten-Managerfunktion 314 an die Managerfunktion 322 des sicheren Codeumsetzers). Die Managerfunktion 322 des sicheren Codeumsetzers kann bestätigen, dass die Richtlinieninformationen korrekt sind und dass die Richtlinie durch den sicheren Codeumsetzer 320 unterstützt wird. Eine solche Bestätigung kann einen Datenaustausch mit der Zielknoten-Managerfunktion 340 in einer Operation 352 umfassen, um eine Unterstützung der Richtlinie durch den Zielknoten 306 zu bestätigen. Als Reaktion darauf, dass die Identitäten einer jeden Komponente und die Richtlinieninformationen bestätigt werden, kann der Quellenknoten 302 den zweiten Schlüssel k2 312 in einer Operation 354 an den sicheren Codeumsetzer 320 senden. Der sichere Codeumsetzer 320 speichert eine Kopie des zweiten Schlüssels k2 312 in dem sicheren Schlüsselspeicher 324 für den zweiten Schlüssel k2 312.
  • In bevorzugten Ausführungsformen haben weder der sichere Codeumsetzer 320 noch der Zielknoten 306 Zugriff auf sowohl den ersten Schlüssel k1 310 als auch den zweiten Schlüssel k2 312. Ohne einen solchen Zugriff können der sichere Codeumsetzer 320 und der Zielknoten 306 die im Speicher 304 durch den Quellenknoten 302 gespeicherten Daten nicht entschlüsseln. In einer einzelnen bevorzugten Ausführungsform ist der sichere Schlüsselspeicher 324 für den zweiten Schlüssel k2 312 flüchtig, so dass der sichere Codeumsetzer 320 im Falle eines Stromausfalls die betroffenen Parteien erneut authentifizieren muss (und umgekehrt), um die gemeinsame Nutzung wieder herzustellen. Im Falle eines Stromausfalls authentifiziert der sichere Codeumsetzer 320 auch den Schlüsselspeicher 338 für den dritten Schlüssel k3 328 erneut, und umgekehrt, um die gemeinsame Nutzung wieder herzustellen. Die Dauer, über die der sichere Codeumsetzer 320 den zweiten Schlüssel k2 312 in dem sicheren Schlüsselspeicher 324 für den zweiten Schlüssel k2 312 speichert, wird durch die Richtlinie für eine gemeinsame Nutzung festgelegt, wie vorstehend beschrieben ist. Als Reaktion darauf, dass die gemeinsame Nutzung beendet wird, wie durch die Richtlinie für eine gemeinsame Nutzung angegeben, schreddert (z.B. löscht oder zerstört in anderer Weise) der sichere Codeumsetzer 320 die gespeicherte Kopie des zweiten Schlüssels k2 312 auf beliebige Weise, wie es für einen Fachmann beim Lesen der vorliegenden Offenbarung offensichtlich werden dürfte. Ein Schreddern des zweiten Schlüssels k2 312 ist vorteilhaft für den sicheren Schlüsselspeicher 324 für den zweiten Schlüssel k2 312, um den Zugriff auf die Informationen über den gespeicherten Schlüssel auf die k2-Verschlüsselungs-/Entschlüsselungsfunktion 330 des sicheren Codeumsetzers zu beschränken. Dieses Schreddern verhindert eine Preisgabe des zweiten Schlüssels k2 312.
  • Als Teil des Einrichtens einer gemeinsamen Nutzung von Daten im Anschluss an die Bestätigung der Richtlinie kann der sichere Codeumsetzer 320 einen dritten Schlüssel k3 328 unter Verwendung des Schlüsselgenerators 326 erzeugen. Der dritte Schlüssel k3 328 wird in einer Operation 356 an den Zielknoten 306 gesendet. Der Zielknoten 306 speichert eine Kopie des dritten Schlüssels k3 328 in dem Schlüsselspeicher 338 für den dritten Schlüssel k3 328. Des Weiteren, als Teil des Einrichtens einer gemeinsamen Nutzung von Daten im Anschluss an die Bestätigung der Richtlinie, sendet der Quellenknoten 302 den ersten Schlüssel k1 310 in einer Operation 358 an den Zielknoten 306. Der Zielknoten 306 speichert eine Kopie des ersten Schlüssels k1 310 in dem Schlüsselspeicher 336 für den ersten Schlüssel k1 310. In bevorzugten Ausführungsformen sind sowohl der Schlüsselspeicher 336 für den ersten Schlüssel k1 310 als auch der Schlüsselspeicher 338 für den Dritter-Schlüssel-Speicher 312 flüchtig. In einem bevorzugten Ansatz löscht der sichere Codeumsetzer 320 den dritten Schlüssel k3 328 und beendet die Annahme von Anforderungen für gemeinsam genutzte Daten von dem Zielknoten 306, sobald die gemeinsame Nutzung endet. In weiteren Ansätzen ersetzt der sichere Codeumsetzer 320 den dritten Schlüssel k3 328 durch einen Dummy-Schlüssel auf beliebige Weise, die für einen Fachmann beim Lesen der vorliegenden Offenbarung offensichtlich werden dürfte, und so, dass jedwede Anforderungen für gemeinsam genutzte Daten von dem Zielknoten 306 zu keinen Daten und/oder unbrauchbaren Daten führen (z.B. nicht lesbar, wenn der Zielknoten 306 nur den ersten Schlüssel k1 310 hat und bei Verwendung des dritten Schlüssels keine mit k1 verschlüsselten Daten mehr am Zielknoten 306 zurückgegeben werden). Wenn der Zielknoten 306 Schreibzugriff auf die gemeinsam genutzten Daten hat, beendet ein Dummy-Schlüssel den gesamten Schreibzugriff auf eine Weise, die für einen Fachmann beim Lesen der vorliegenden Offenbarung offensichtlich werden dürfte.
  • In weiteren Ansätzen teilt der Quellenknoten 320 dem Zielknoten 306 mit, dass die gemeinsame Nutzung beendet wurde. Als Reaktion auf die Beendigung der gemeinsamen Nutzung löscht der Zielknoten 306 die gespeicherten Kopien des ersten Schlüssels k1 310 und des dritten Schlüssels k3 328. Die Richtlinie für eine gemeinsame Nutzung kann auf beliebige Weise beendet werden, die für einen Fachmann beim Lesen der vorliegenden Offenbarung offensichtlich werden dürfte, wie beispielsweise durch einen Befehl von dem Quellenknoten 302 an einen der folgenden, den sicheren Codeumsetzer 320, den Speicher 304, den Zielknoten 306 usw., oder eine beliebige Kombination daraus.
  • In beispielhaften Ausführungen führt der Zielknoten 306 Leseoperationen durch, indem er in einer Operation 360 Daten von dem sicheren Codeumsetzer 320 anfordert. Der Zielknoten 306 kann nicht direkt auf die gemeinsam genutzten Daten aus dem Speicher 304 zugreifen, da sie unter Verwendung des zweiten Schlüssels k2 312 verschlüsselt werden, der dem Zielknoten 306 nicht zur Verfügung steht. Wenn der Leseanforderung durch die Richtlinie für eine gemeinsame Nutzung stattgegeben wird, liest der sichere Codeumsetzer 320 die zu der Leseanforderung gehörenden Daten in einer Operation 362 aus dem Speicher 304. Die zu der Leseanforderung gehörenden Daten sind als C2 = encrypt(k2,C1) codiert, wie vorstehend beschrieben ist. Die zu der Leseanforderung gehörenden Daten werden in einer Operation 364 unter Verwendung der k2-Verschlüsselungs-/Entschlüsselungsfunktion 330 des sicheren Codeumsetzers, welche den zweiten Schlüssel k2 312 verwendet, als C1 = decrypt(k2,C2) entschlüsselt. Die zugehörigen Daten (die jetzt nur in dem ersten Schlüssel k1 310 verschlüsselt sind) werden in einer Operation 366 unter Verwendung der k3-Verschlüsselungs-/Entschlüsselungsfunktion 332 des sicheren Codeumsetzers verschlüsselt, welche den dritten Schlüssel k3 328 verwendet. Die zugehörigen Daten vor der Operation 366 sind immer noch als C1= encrypt(k1,P) verschlüsselt und der erste Schlüssel k1 310 steht dem sicheren Codeumsetzer 320 nicht zur Verfügung. Daher kann der sichere Codeumsetzer 320 die durch den Quellenknoten 302 in dem Speicher 304 gespeicherten Daten nicht entschlüsseln. Die k3-Verschlüsselungs-/Entschlüsselungsfunktion 332 des sicheren Codeumsetzers, die den dritten Schlüssel k3 328 verwendet, verschlüsselt die zugehörigen Daten als C3 = encrypt(k3,C1) (die Daten werden z.B. in sowohl dem ersten Schlüssel k1310 als auch dem dritten Schlüssel k3 328 verschlüsselt). Die verschlüsselten Daten werden in der Operation 360 an den Zielknoten 306 gesendet. Der Zielknoten 306 kann die Daten unter Verwendung der k3-Verschlüsselungs-/Entschlüsselungsfunktion 344 des Zielknotens, die den dritten Schlüssel k3 328 verwendet, als C1= decrypt(k3,C3) entschlüsseln (z.B. sind die zugehörigen Daten jetzt nur in dem ersten Schlüssel k1 310 verschlüsselt). Der Zielknoten 306 kann die Daten unter Verwendung der k1-Verschlüsselungs-/Entschlüsselungsfunktion 342 des Zielknotens, die den ersten Schlüssel k1 310 verwendet, als P = decrypt(k1,C1) entschlüsseln (der Zielknoten 306 erlangt z.B. Zugriff auf die Daten in Klartext).
  • In bevorzugten Ausführungsformen wird eine Dauer der gemeinsamen Nutzung zwischen dem Zielknoten 306 und dem Quellenknoten 302 unter Verwendung des sicheren Codeumsetzers 320 beendet, indem jedwede Übertragung in der Operation 360 gemäß den hierin beschriebenen Informationen der Richtlinie für eine gemeinsame Nutzung eingestellt wird. In verschiedenen Ansätzen wird, wenn der Übertragungskanal zwischen dem Zielknoten 306 und dem sicheren Codeumsetzer 320 offen gelassen wird, die Dauer der gemeinsamen Nutzung zwischen dem Zielknoten 306 und dem Quellenknoten 302 dadurch beendet, dass der sichere Codeumsetzer 320 den dritten Schlüssel k3 328 und/oder den zweiten Schlüssel k2 312 schreddert. In weiteren Ansätzen kann der sichere Codeumsetzer 320 die Dauer der gemeinsamen Nutzung beenden, indem er den dritten Schlüssel k3 328 und/oder den zweiten Schlüssel k2 312 durch einen Dummy-Schlüssel eines in der Technik bekannten Typs ersetzt. Ein Schreddern oder Ersetzen des dritten Schlüssels k3 328 und/oder des zweiten Schlüssels k2 312 bietet selbst dann zusätzliche Sicherheit, wenn die Übertragung in der Operation 360 zum Beispiel versehentlich oder infolge eines Ausgestaltungsfehlers offen bleibt. Ein sich ungebührlich verhaltender Zielknoten empfängt keine brauchbaren Daten von dem sicheren Codeumsetzer, wenn der Codeumsetzer nicht über den richtigen Schlüssel zum Entschlüsseln der verschlüsselten Daten verfügt. Wie es für einen Fachmann beim Lesen der vorliegenden Offenbarung offensichtlich werden dürfte, muss ein sicherer Codeumsetzer 320 gegebenenfalls mit dem Quellenknoten 302 und/oder dem Zielknoten 306 neu verhandeln, um nach dem Schreddern eines Schlüssels eine Dauer der gemeinsamen Nutzung fortzusetzen oder wieder aufzunehmen. Diese „Schlüsselrotation“ bietet dem System zusätzliche Sicherheitsmerkmale, ohne dass alle im Speicher gespeicherten Daten neu verschlüsselt werden müssen. In herkömmlichen Systemen zum Beispiel, wenn der Codeumsetzer einen Schlüssel verlieren sollte, umfasst ein Ansatz ein erneutes Verschlüsseln aller Daten im Speicher, was im Vergleich zu dem vorstehend erwähnten Prozess des Neuverhandelns verhältnismäßig viel Zeit in Anspruch nehmen kann.
  • Vor dem Speichern der Einheit von Daten, P, verschlüsselt der Zielknoten 306 die Daten, P, unter Verwendung der k1-Verschlüsselungs-/Entschlüsselungsfunktion 342 des Zielknotens, die den ersten Schlüssel k1 310 verwendet, als C1= encrypt(k1,P). Der Zielknoten 306 verschlüsselt das Ergebnis C1 unter Verwendung der k3-Verschlüsselungs-/ Entschlüsselungsfunktion 344 des Zielknotens, die den dritten Schlüssel k3 328 verwendet, weiter als C3 = encrypt(k3,C1). Eine Schreibanforderung für die Daten (C2) wird in der Operation 360 an den sicheren Codeumsetzer 320 gesendet. Wenn der Schreibanforderung durch die gemeinsam genutzte Richtlinie stattgegeben wird, nimmt der sichere Codeumsetzer 320 die Schreibanforderung an. Die Daten werden als C3 = encrypt(k3,C1) codiert, wie vorstehend beschrieben ist. Die Schreibdaten werden durch die k3-Verschlüsselungs-/Entschlüsselungsfunktion 332 des sicheren Codeumsetzers unter Verwendung des dritten Schlüssels k3 328 als C1= decrypt(k3,C3) entschlüsselt. Die Schreibdaten werden in der Operation 366 an die k2-Verschlüsselungs-/ Entschlüsselungsfunktion 330 des sicheren Codeumsetzers gesendet. Die Schreibdaten in der Operation 366 sind immer noch als C1 = encrypt(k1,P) verschlüsselt. Der erste Schlüssel k1310 steht dem sicheren Codeumsetzer 320 nicht zur Verfügung. Somit kann der sichere Codeumsetzer 320 die durch den Zielknoten 306 gespeicherten Schreibdaten nicht entschlüsseln. Die k2-Verschlüsselungs-/Entschlüsselungsfunktion 330 des sicheren Codeumsetzers verschlüsselt die Schreibdaten unter Verwendung des zweiten Schlüssels k2 312 weiter als C2 = encrypt(k2,C1). Die verschlüsselten Daten (z.B. in dem ersten Schlüssel k1 310 und in dem zweiten Schlüssel k2 312) werden in der Operation 362 an den Speicher 304 gesendet. Der Quellenknoten 302 kann die Daten als C1 = decrypt(k2,C2) und P = decrypt(k1,C2) unter Verwendung der k2-Verschlüsselungs-/Entschlüsselungsfunktion 318 des Quellenknotens bzw. der k1-Verschlüsselungs-/Entschlüsselungsfunktion 316 des Quellenknotens entschlüsseln, welche die entsprechenden Schlüssel verwenden, wie es für einen Fachmann in Anbetracht der vorliegenden Offenbarung offensichtlich werden dürfte.
  • In einem alternativen Ansatz können die Daten durch den Quellenknoten 302 in einem vierten Schlüssel (nicht gezeigt) verschlüsselt werden, und der vierte Schlüssel kann gemäß den verschiedenen vorstehend beschriebenen Ausführungsformen verschlüsselt werden. Somit handelt es sich bei dem vierten Schlüssel um die zu verschlüsselnden Daten. In diesem Ansatz ist die Codeumsetzung verhältnismäßig effizienter, wenn die Schlüssel anstelle der Daten transcodiert werden. Zum Beispiel kann ein Datenblock eine Länge von 4 kB und ein Schlüssel kann eine Länge von 32 B haben. Eine Codeumsetzung solcher Schlüssel ist ungefähr 128 Mal effizienter als eine Codeumsetzung der Datenblöcke. In diesem Ansatz können die Daten (z.B. die verschlüsselten Schlüssel) im Anschluss an die Verschlüsselung mit dem vierten Schlüssel in der Operation 346 an den Speicher 304 gesendet werden, wodurch die k1-Verschlüsselungs-/Entschlüsselungsfunktion 316 des Quellenknotens und die k2-Verschlüsselungs-/Entschlüsselungsfunktion 318 des Quellenknotens umgangen werden. Bei der Codeumsetzung können die Daten (z.B. die verschlüsselten Schlüssel) in einer Operation 368 an den Zielknoten gesendet werden, wodurch die k2-Verschlüsselungs-/ Entschlüsselungsfunktion 330 des sicheren Codeumsetzers und die k3-Verschlüsselungs-/ Entschlüsselungsfunktion 332 des sicheren Codeumsetzers umgangen werden.
  • In weiteren Ansätzen können zusätzliche Informationen bei der Verschlüsselung verwendet werden, die von dem sicheren Codeumsetzer 320 isoliert werden müssen. Zum Beispiel kann ein Initialisierungsvektor (IV) bei der Verschlüsselung verwendet werden. Ein IV kann sich auf eine beliebige Anzahl beziehen, die mit einem geheimen Schlüssel zur Verschlüsselung von Daten verwendet und nur einmal verwendet wird, wie der Fachmann verstehen dürfte. Durch Verwendung des IV bei der Verschlüsselung mit einem ersten Schlüssel wird verhindert, dass der IV der Verschlüsselung mit einem zweiten Schlüssel zugänglich gemacht wird. Die IV-Informationen können verwendet werden, um in Abhängigkeit von der Ausführung des IV vorteilhaft eine Umsetzungssymmetrie zu brechen, um zusätzliche Sicherheit zu bieten, wie es für einen Fachmann beim Lesen der vorliegenden Offenbarung offensichtlich werden dürfte. Zum Beispiel ist der IV bei AES-XTS eine Adresse, die die Symmetrie für die Adressen bricht. In Fällen, in denen der IV auf dem Dateninhalt beruht, bleibt die Umsetzungssymmetrie bestehen. In bevorzugten Ausführungsformen werden die IV-Informationen mit dem Zielknoten 306 gemeinsam genutzt, jedoch werden die IV-Informationen nicht mit dem sicheren Codeumsetzer 320 gemeinsam genutzt. Ein IV kann ungeachtet dessen, ob ein IV für die Verschlüsselung mit einem ersten Schlüssel verwendet wird, für die Verschlüsselung mit einem zweiten Schlüssel verwendet werden, ohne die Sicherheit der Architektur zu schwächen, wie hierin beschrieben ist. Wenn der IV für die Verschlüsselung mit einem zweiten Schlüssel dem sicheren Codeumsetzer 320 bekannt sein muss, können die Informationen, um den IV abzuleiten, Teil eines Aushandelns einer sicheren Verbindung zwischen dem sicheren Codeumsetzer 320 und dem Quellenknoten 302 sein, wie es für einen Fachmann beim Lesen der vorliegenden Offenbarung offensichtlich werden dürfte.
  • In einem sicheren Schlüssel-je-Chunk-Deduplizierungssystem können Fingerabdrücke an Klartextchunks von Daten berechnet werden, und die Datenchunks werden mit einem chunkspezifischen Schlüssel verschlüsselt (z.B. wird jeder Datenchunk mit einem eindeutigen Datenchunk-Schlüssel verschlüsselt, wie beispielsweise dem vorstehend beschriebenen vierten Schlüssel). Die Fingerabdrücke werden in einem fünften Schlüssel (z.B. einem Fingerabdruckschlüssel) verschlüsselt, um zu verhindern, dass das Deduplizierungsspeichersystem eine Verbindung von bestimmten Fingerabdrücken und bestimmtem einfachen Text herstellen kann. Für eine Codeumsetzung gemäß den verschiedenen, hierin beschriebenen Ausführungsformen kann es sich bei dem Datenchunk-Schlüssel um Daten handeln, die durch einen Quellenknoten in einem ersten Schlüssel und einem zweiten Schlüssel zu verschlüsseln sind. Der erste Schlüssel und der zweite Schlüssel zum Verschlüsseln der Fingerabdrücke können sich von dem ersten Schlüssel und dem zweiten Schlüssel zum Verschlüsseln der Datenchunk-Schlüssel unterscheiden. Die unterschiedlichen Fingerabdruck- und Chunkschlüssel-Datensätze werden zur Verwendung an einem Zielknoten sicher transcodiert. Im Allgemeinen kann es in der gesamten vorliegenden Offenbarung mehrere erste Schlüssel und mehrere zweite Schlüssel geben, um Daten, Schlüssel, Metadaten usw. zu transcodieren, die zwischen einem Quellenknoten und einem Zielknoten unter Verwendung eines sicheren Codeumsetzers sicher gemeinsam genutzt werden.
  • In noch einem weiteren Ansatz gibt es für ein sicheres Deduplizierungssystem einen Satz von zweiten Schlüsseln, die zu einer Schlüsselgruppe gehören, wobei die Schlüsselgruppe einen ersten Schlüssel, einen Fingerabdruckschlüssel und einen Deduplizierungsschlüssel aufweist. In diesem Ansatz kann das Speichersystem die deduplizierten Daten so speichern, dass der Deduplizierungsschlüssel sie nicht entschlüsseln kann. Ein sicherer Codeumsetzer, wie beispielsweise einer, der so konfiguriert ist, dass er mindestens einige der verschiedenen, vorstehend ausführlich beschriebenen Ausführungsformen durchführt, kann verwendet werden, um Daten aus einem der zweiten Schlüssel in den Deduplizierungsschlüssel für die Schlüsselgruppe oder aus dem Deduplizierungsschlüssel für die Schlüsselgruppe in einen der zweiten Schlüssel zu transcodieren.
  • In einer weiteren Ausführungsform kann die Schlüsselgruppe anstelle eines gemeinsamen ersten Schlüssels einen Satz von ersten Schlüsseln aufweisen. In diesem Ansatz gibt es vorzugsweise einen ersten Schlüssel für jeden zweiten Schlüssel und für den Deduplizierungsschlüssel, wie es für einen Fachmann beim Lesen der vorliegenden Offenbarung offensichtlich werden dürfte.
  • 4 stellt eine allgemeine Architektur gemäß verschiedenen Konfigurationen dar. Die Architektur 400 kann gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung in verschiedenen Konfigurationen in beliebigen der Umgebungen, die unter anderem in den 1 bis 3 and 5A bis 7 dargestellt sind, ausgeführt sein. Natürlich können mehr oder weniger Elemente als diejenigen, die in 4 ausdrücklich beschrieben sind, in der Architektur 400 enthalten sein, wie der Fachmann verstehen dürfte, nachdem er die vorliegenden Beschreibungen gelesen hat.
  • Bei der Architektur 400 handelt es sich um eine Variante von mindestens einigen der in 3 gezeigten Aspekten und daher haben gemeinsame Merkmale eine gemeinsame Nummerierung. Die Architektur 400 umfasst eine allgemeine Architektur, die einen Quellenknoten 302, einen Speicher 304 und einen Zielknoten 306 aufweist. Der Quellenknoten 302 umfasst eine Quellenknoten-Berechnungsressource 308, einen ersten Schlüssel k1 310 und einen zweiten Schlüssel k2 312. Der Quellenknoten 302 umfasst eine Quellenknoten-Managerfunktion 314, eine k1-Verschlüsselungs-/Entschlüsselungsfunktion 316 des Quellenknotens und eine k2-Verschlüsselungs-/Entschlüsselungsfunktion 318 des Quellenknotens. Jede hierin beschriebene Verschlüsselungs-/Entschlüsselungsfunktion kann Daten unter Verwendung der zugeordneten Schlüssel verschlüsseln und/oder entschlüsseln, wie der Fachmann verstehen dürfte, nachdem er die vorliegende Offenbarung gelesen hat.
  • Die Architektur 400 umfasst einen sicheren Codeumsetzer 320. Der sichere Codeumsetzer 320 umfasst eine Managerfunktion 322 des sicheren Codeumsetzers und einen sicheren Schlüsselspeicher 324 für den zweiten Schlüssel k2 312. Der sichere Codeumsetzer 320 kann in mindestens einigen Ansätzen einen Schlüsselgenerator 326 umfassen. Der sichere Codeumsetzer 320 umfasst einen dritten Schlüssel k3 328. In verschiedenen Ansätzen erzeugt der Schlüsselgenerator 326 den dritten Schlüssel k3 328. In weiteren Ansätzen kann jeder Schlüssel, der hierin beschrieben ist, durch einen in der Technik bekannten Schlüsselgenerator und/oder Schlüsselmanager (nicht gezeigt) erzeugt und/oder verwaltet werden. Der sichere Codeumsetzer 320 umfasst eine k2-Verschlüsselungs-/Entschlüsselungsfunktion 330 des sicheren Codeumsetzers und eine k3-Verschlüsselungs-/Entschlüsselungsfunktion 332 des sicheren Codeumsetzers.
  • Der sichere Codeumsetzer 320 kann so ausgelegt sein, dass er Operationen für eine gemeinsame Nutzung durchführt, die vorzugsweise jeweils durch getrennte Richtlinien angegeben sind. Der Codeumsetzer kann über eine Mehrzahl von Schlüsselspeichern und/oder eine Mehrzahl von Verschlüsselungs-/Entschlüsselungsfunktionen des sicheren Codeumsetzers verfügen. Diese zusätzlichen Richtlinien (und zugehörigen Komponenten) bieten zusätzliche Sicherheit für jede Richtlinie für eine gemeinsame Nutzung (z.B. kann jede Richtlinie für eine gemeinsame Nutzung einen getrennten, eindeutigen dritten Schlüssel haben, obgleich die Richtlinien für eine gemeinsame Nutzung auf dieselben Daten zugreifen können).
  • Der Zielknoten 306 umfasst eine Zielknoten-Berechnungsressource 334, einen Schlüsselspeicher 336 für den ersten Schlüssel k1 310 und einen Schlüsselspeicher 338 für den dritten Schlüssel k3 328. Der Zielknoten 306 umfasst eine Zielknoten-Managerfunktion 340. Der Zielknoten 306 umfasst eine k1-Verschlüsselungs-/Entschlüsselungsfunktion 342 des Zielknotens und eine k3-Verschlüsselungs-/Entschlüsselungsfunktion 344 des Zielknotens.
  • Die Architektur 400 von 4 veranschaulicht eine beispielhafte Ausführung eines Systems, in dem die Daten nicht doppelt verschlüsselt sind (z.B. wie in den bevorzugten Ausführungsformen von 3 gezeigt und beschrieben ist). Hier speichert der Quellenknoten 302 Daten in dem Speicher 304, ohne die Daten in dem ersten Schlüssel k1 310 und ohne die Daten in dem zweiten Schlüssel k2 312 zu verschlüsseln. Der zweite Codeumsetzer 320 kommuniziert nicht mit dem Speicher 304. Vielmehr liest der Quellenknoten 302 alle Daten aus dem Speicher 304. Der Quellenknoten 302 erzeugt den ersten Schlüssel k1 310 und den zweiten Schlüssel k2 312. Die Managerfunktion 322 des sicheren Codeumsetzers übergibt alle Lese- und Schreibanforderungen an die Quellenknoten-Managerfunktion 314 des Quellenknotens 302.
  • Für eine Leseanforderung verschlüsselt die k1-Verschlüsselungs-/ Entschlüsselungsfunktion 316 des Quellenknotens die Daten unter Verwendung des ersten Schlüssels k1 310, um erste verschlüsselte Daten zu erhalten. Die k2-Verschlüsselungs-/ Entschlüsselungsfunktion 318 des Quellenknotens verschlüsselt die verschlüsselten Daten unter Verwendung des zweiten Schlüssels k2 312, um zweite verschlüsselte Daten zu erhalten. Die zweiten verschlüsselten Daten werden in der Operation 350 an die Managerfunktion 322 des sicheren Codeumsetzers gesendet und die zweiten verschlüsselten Daten werden transcodiert, wie unter Bezugnahme auf 3 ausführlich beschrieben ist. Für eine Schreibanforderung werden die Daten entschlüsselt, wie hierin beschrieben ist, und in Klartext zurück in den Speicher 304 geschrieben.
  • Für Kunden, die zu einer doppelten Verschlüsselung aller Daten übergehen wollen, können Schreibanforderungen in verschiedenen Ansätzen doppelt verschlüsselt geschrieben werden, wobei Metadaten mit dem Block und dem Dateisystem gespeichert werden, um den Verschlüsselungsstatus der Daten in einer beliebigen, in der Technik bekannten Weise anzugeben. Alle neuen Daten werden doppelt geschützt (z.B. doppelt verschlüsselt) und alle „alten“ Daten werden, nachdem sie vollständig referenziert wurden, doppelt geschützt. Auf diese Weise kann ein System den Zustand von Dateien verfolgen, während es Hintergrundaufgaben für Dateien hat, die eine gewählte Schutzstufe erreichen, es referenziert die verbleibenden Daten, wodurch die verbleibenden Daten vollständig geschützt werden (z.B. doppelt verschlüsselt).
  • In einer weiteren Ausführungsform kann der sichere Codeumsetzer 320, wenn er Zugriff auf den Speicher 304 hat (der in 3 gezeigt ist), geändert werden, um sich die Metadaten der Datei anzuschauen, um deren Verschlüsselungszustand festzustellen. Wenn die Datei geschützt ist (z.B. doppelt verschlüsselt), kann der sichere Codeumsetzer 320 die Datei wie zuvor (wie in 3) direkt lesen, andernfalls kann der sichere Codeumsetzer die Quellenknoten-Managerfunktion 314 um die Daten bitten. Die mit dieser Ausführungsform verbundene Sicherheit ist weniger wünschenswert als die von 3, die vorstehend beschrieben wurde (bei der der sichere Codeumsetzer 320 z.B. alle Daten von der Quellenknoten-Managerfunktion 314 anfordert). Ein Zulassen von unverschlüsselten Daten in dem Speicher 304 ist am sichersten, wenn der Zielknoten 306 keinen Zugriff auf die gespeicherten Daten hat.
  • Die 5A bis 5D stellen eine allgemeine Architekturen gemäß verschiedenen Konfigurationen dar. Die Architektur 500 kann gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung in verschiedenen Konfigurationen in beliebigen der Umgebungen, die unter anderem in den 1 bis 3 und 6 bis 7 dargestellt sind, ausgeführt sein. Natürlich können mehr oder weniger Elemente als diejenigen, die in den 5A bis 5D ausdrücklich beschrieben sind, in der Architektur 500 enthalten sein, wie der Fachmann verstehen dürfte, nachdem er die vorliegenden Beschreibungen gelesen hat.
  • Jede Architektur 500 umfasst einen Quellenknoten 302 (der unter Bezugnahme auf die 3 bis 4 beschrieben ist), einen Speicher 304 (der unter Bezugnahme auf die 3 bis 4 beschrieben ist), einen Zielknoten 306 (der unter Bezugnahme auf die 3 bis 4 beschrieben ist) und einen sicheren Codeumsetzer 320 (der unter Bezugnahme auf die 3 bis 4 beschrieben ist). Wie gezeigt ist, kann sich der sichere Codeumsetzer 320 an einer beliebigen Position in einem System befinden. Zum Beispiel, wie in 5A gezeigt ist, kann der sichere Codeumsetzer 320 Teil des Quellenknotens 302 sein. Diese Konfiguration kann sich in einem Komplex zentraler Verarbeitungseinheiten (CPUs), einem IOhub, einer Brücke, einer CPU selbst, einer Netzschnittstellenkarte (z.B. einer SmartNIC) usw. befinden.
  • Wie in 5B gezeigt ist, kann sich der sichere Codeumsetzer 320 in einem Speichernetz befinden, das mit dem Quellenknoten 302, dem Speicher 304 und dem Zielknoten 306 verbunden ist. Diese Konfiguration kann sich in einem Schalter, einer Edge-Anwendung, einem Gateway usw. befinden.
  • Wie in 5C gezeigt ist, kann der sichere Codeumsetzer 320 Teil des Speichers 304 sein. Der sichere Codeumsetzer 320 kann direkt in den Speicher, den Speichercontroller, in einen Hostbusadapter, eine SmartNIC usw. integriert sein.
  • Wie in 5D gezeigt ist, kann der sichere Codeumsetzer 320 Teil des Zielknotens 306 sein. Diese Konfiguration kann sich in einem CPU-Komplex, einem IOhub, einer Brücke, einer CPU selbst, einer SmartNIC usw. befinden.
  • In verschiedenen Ansätzen wäre es vorteilhaft, wenn sich ein sicherer Codeumsetzer an einer jeden von mehreren Positionen befinden würde (z.B. an allen vier gezeigten Positionen in den 5A bis 5D), um das Einrichten einer gemeinsamen Nutzung unter Verwendung der besten Codeumsetzer-Position für die jeweilige Operation zu ermöglichen. Zum Beispiel ist eine Codeumsetzung an dem Quellenknoten vorteilhaft für einen direkt an der Quelle angeschlossenen Speicher. In einem weiteren Beispiel ist eine Codeumsetzung am Speicher vorteilhaft für eine Skalierung und Netzauslastung, wie der Fachmann verstehen dürfte. In einigen Fällen kann ein Zielknoten für eine erste gemeinsame Nutzung der Quellenknoten für eine zweite gemeinsame Nutzung sein und es wäre vorteilhaft, wenn sich die Codeumsetzungsfunktion an jedem Quellenknoten und an jedem Zielknoten befinden würde. Aus einer Sicherheitsperspektive verwendet man eine Codeumsetzungsfunktion, wie sie hierin beschrieben ist, gegebenenfalls besser nicht an einem Zielknoten (selbst wenn es eine Codeumsetzungsfunktion an dem Ziel gibt) als Codeumsetzungsposition für die in 3 gezeigte gemeinsame Nutzung. Dies kann dazu führen, dass sich sowohl der erste Schlüssel als auch der zweite Schlüssel an dem Zielknoten befinden. Für die stärkste Sicherheit, wenn alle Knoten (z.B. die Quellenknoten, der Speicher und die Zielknoten) jeweils über eine Codeumsetzungsfunktion verfügen, verwenden die Protokolle für einen Zugriff auf Daten in bevorzugten Ausführungsformen den Codeumsetzer in dem/den Zielknoten nicht, wie es für einen Fachmann beim Lesen der vorliegenden Offenbarung offensichtlich werden dürfte.
  • Für eine starke Sicherheit ist es vorteilhaft, den ersten Schlüssel und den zweiten Schlüssel als ein Paar für eine Datenisolation zu behandeln. Zum Beispiel sollte es sich bei dem Satz von in dem ersten Schlüssel verschlüsselten Informationen um den gleichen Satz von Informationen handeln, die in dem zweiten Schlüssel verschlüsselt sind. Wenn mehrere zweite Schlüssel einen gemeinsamen ersten Schlüssel verwenden, kann es Situationen geben, in denen Daten in einer Weise über Schlüsselgrenzen bewegt werden könnten, welche die Daten Datenlecks aussetzt.
  • In bevorzugten Ausführungsformen kann jeder in den 3 bis 5D gezeigte Pfeil sowie jede beliebige Übertragung zwischen den hierin beschriebenen Komponenten zusätzliche Protokolle für eine in der Technik bekannte Übertragungsverschlüsselung umfassen. Zum Beispiel kann ein Übertragungsverschlüsselungsprotokoll, das die Protokolle Secure Sockets Layer (SSL), Transport Layer Security (TSL) usw. umfasst, verwendet werden, um die Schlüssel zwischen dem Quellenknoten und dem Zielknoten, zwischen dem Quellenknoten und dem sicheren Codeumsetzer und zwischen dem sicheren Codeumsetzer und dem Zielknoten usw. zu übertragen, wie es für einen Fachmann beim Lesen der vorliegenden Offenbarung offensichtlich werden dürfte.
  • Bezug nehmend auf 6 ist ein Ablaufplan eines Verfahrens 600 gemäß einer einzelnen Ausführungsform gezeigt. Das Verfahren 600 kann gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung in verschiedenen Konfigurationen in beliebigen der Umgebungen, die unter anderem in den 1 bis 5D und 7 dargestellt sind, ausgeführt sein. Natürlich können mehr oder weniger Operationen als diejenigen, die in 6 ausdrücklich beschrieben sind, in dem Verfahren 600 enthalten sein, wie der Fachmann verstehen dürfte, nachdem er die vorliegenden Beschreibungen gelesen hat.
  • Jeder der Schritte des Verfahrens 600 kann durch eine beliebige geeignete Komponente der Betriebsumgebung durchgeführt werden. Zum Beispiel kann das Verfahren 600 in verschiedenen Ausführungsformen teilweise oder ganz durch Computer oder eine andere Einheit durchgeführt werden, die über einen oder mehrere darin befindliche Prozessoren verfügt. Der Prozessor, z.B. (eine) Prozessorschaltung(en), (ein) Chip(s) und/oder (ein) Modul(e), die/der/das in Hardware und/oder Software ausgeführt ist/sind und vorzugsweise über mindestens eine Hardwarekomponente verfügt/verfügen, können in einer beliebigen Einheit verwendet werden, um einen oder mehrere Schritte des Verfahrens 600 durchzuführen. Zu veranschaulichenden Prozessoren gehören, ohne darauf beschränkt zu sein, eine zentrale Verarbeitungseinheit (CPU), eine anwendungsspezifische integrierte Schaltung (ASIC, application specific integrated circuit), eine im Feld programmierbare Gatter-Anordnung (FPGA, field programmable gate array) usw., Kombinationen daraus oder eine beliebige andere geeignete in der Technik bekannte Datenverarbeitungseinheit.
  • Wie in 6 gezeigt ist, umfasst das Verfahren 600 eine Operation 602. Die Operation 602 umfasst ein Empfangen, durch einen Codeumsetzer, von zweiten verschlüsselten Daten. Bei den zweiten verschlüsselten Daten handelt es sich um Daten, die in einem ersten Schlüssel verschlüsselt wurden, um erste verschlüsselte Daten zu erstellen, welche dann in einem zweiten Schlüssel verschlüsselt werden, um die zweiten verschlüsselten Daten zu erstellen. In bevorzugten Ausführungsformen findet die Verschlüsselung von Daten in erste verschlüsselte Daten und dann die Verschlüsselung von ersten verschlüsselten Daten in die zweiten verschlüsselten Daten an einem Quellenknoten statt. Der Quellenknoten weist den ersten Schlüssel und den zweiten Schlüssel auf.
  • In einem Ansatz werden die zweiten verschlüsselten Daten zumindest teilweise auf der Grundlage von Datenanforderungen von dem Codeumsetzer an den Speicher empfangen. Als Reaktion auf ein Empfangen einer Anforderung für die Daten von einem Zielknoten kann der Codeumsetzer eine Datenanforderung direkt an den Speicher senden. Der Speicher kann die zweiten verschlüsselten Daten in einem Ansatz als Reaktion auf die Datenanforderung direkt an den Codeumsetzer senden. Zum Beispiel können die Daten in einem ersten Schlüssel verschlüsselt werden, um erste verschlüsselte Daten zu erstellen, die dann in einem zweiten Schlüssel verschlüsselt werden, um die zweiten verschlüsselten Daten an einem Quellenknoten zu erstellen, bevor der Quellenknoten die zweiten verschlüsselten Daten in dem Speicher speichert. Der Speicher kann die zweiten verschlüsselten Daten als Reaktion auf eine Datenanforderung von dem Codeumsetzer an den Codeumsetzer senden.
  • In einem weiteren Ansatz werden die zweiten verschlüsselten Daten zumindest teilweise auf der Grundlage von Datenanforderungen von dem Codeumsetzer an den Quellenknoten empfangen. Als Reaktion auf ein Empfangen einer Anforderung für die Daten von einem Zielknoten kann der Codeumsetzer eine Datenanforderung an den Quellenknoten senden. Der Quellenknoten kann die zweiten verschlüsselten Daten in dem Speicher speichern und der Quellenknoten kann die zweiten verschlüsselten Daten (die zuvor in dem Speicher gespeichert waren) an den Codeumsetzer senden.
  • In noch einem weiteren Ansatz kann der Quellenknoten die Daten unverschlüsselt in dem Speicher speichern. Als Reaktion auf ein Empfangen einer Anforderung von dem Codeumsetzer für die Daten kann der Quellenknoten die unverschlüsselten Daten aus dem Speicher extrahieren und die unverschlüsselten Daten dann mit dem ersten Schlüssel verschlüsseln, um erste verschlüsselte Daten zu erstellen, und dann die ersten verschlüsselten Daten mit dem zweiten Schlüssel verschlüsseln, um die zweiten verschlüsselten Daten zu erstellen, die als Reaktion auf eine Datenanforderung von dem Codeumsetzer an den Quellenknoten an den Codeumsetzer gesendet werden.
  • In verschiedenen Ausführungsformen werden die zweiten verschlüsselten Daten an dem Codeumsetzer aus einem Speicher, von einem Quellenknoten usw. auf der Grundlage von Datenanforderungen von mindestens einem Zielknoten empfangen. Es kann eine beliebige Anzahl von Zielknoten geben, die Daten von einem Quellenknoten über den Codeumsetzer anfordern. In einigen Ansätzen kann der Codeumsetzer die zweiten verschlüsselten Daten als Reaktion auf Datenanforderungen von dem Zielknoten gemäß Informationen der Richtlinie für eine gemeinsame Nutzung zwischen dem Quellenknoten, dem Zielknoten, dem Speicher, dem Codeumsetzer usw. empfangen. Die Informationen der Richtlinie für eine gemeinsame Nutzung können umfassen, welche Daten zwischen welchen Entitäten gemeinsam genutzt werden dürfen, einen Zeitraum für eine Dauer der gemeinsamen Nutzung zwischen beliebigen Entitäten, eine Anzahl von Operationen in Verbindung mit einer Dauer der gemeinsamen Nutzung zwischen beliebigen Entitäten, eine Menge an Daten, die je Dauer der gemeinsamen Nutzung zwischen beliebigen Entitäten gemeinsam genutzt werden darf, usw. In verschiedenen Ansätzen legen die Informationen der Richtlinie für eine gemeinsame Nutzung fest, wann die Dauer der gemeinsamen Nutzung beendet werden soll. Die Dauer der gemeinsamen Nutzung kann in verschiedenen Ausführungsformen gemäß der Richtlinie, als Reaktion auf ein Schreddern von mindestens einem Schlüssel, als Reaktion auf eine Anforderung, die Dauer der gemeinsamen Nutzung durch den Quellenknoten zu beenden, ein Ausschaltereignis, ein beliebiges anderes Triggerereignis usw. oder eine Kombination daraus beendet werden.
  • In mindestens einigen Ansätzen speichert ein Quellenknoten Daten in dem Speicher. Bei den Daten kann es sich um unverschlüsselte Daten, die zweiten verschlüsselten Daten, andere mit einem Schlüssel verschlüsselte Daten (z.B. Daten, die vor der Verschlüsselung mit dem ersten Schlüssel und dann dem zweiten Schlüssel in einem anderen Schlüssel als dem ersten oder dem zweiten Schlüssel verschlüsselt werden) usw. handeln. In bevorzugten Ausführungsformen weist der Quellenknoten den ersten Schlüssel und den zweiten Schlüssel auf. Die zugehörige Verschlüsselung der Daten, um die ersten verschlüsselten Daten zu erstellen, und dann die Verschlüsselung der ersten verschlüsselten Daten, um die zweiten verschlüsselten Daten zu erstellen, kann in einigen Ansätzen durch mindestens eine Verschlüsselungs-/Entschlüsselungsfunktion auf dem Quellenknoten durchgeführt werden. In weiteren Ansätzen kann jeder Schlüssel einer getrennten Verschlüsselungs-/Entschlüsselungsfunktion zugeordnet sein, die sich auf dem Quellenknoten befindet, wie der Fachmann im Hinblick auf die vorliegende Offenbarung verstehen dürfte.
  • Eine Operation 604 umfasst ein Empfangen, durch den Codeumsetzer, des zweiten Schlüssels. In verschiedenen Ansätzen wird der zweite Schlüssel von dem Quellenknoten empfangen. In verschiedenen Ansätzen sendet der Quellenknoten dem Codeumsetzer eine Kopie des zweiten Schlüssels, die der Codeumsetzer für eine bestimmte Zeitdauer, eine Anzahl von Operationen usw., wie durch die Informationen der Richtlinie für eine gemeinsame Nutzung angegeben ist, sicher speichert. In mindestens einigen Ausführungsformen kann der Codeumsetzer als Reaktion auf ein Ende der Dauer der gemeinsamen Nutzung (wie z.B. durch die Richtlinie für eine gemeinsame Nutzung festgelegt, wie durch den Quellenknoten angefordert usw.) den zweiten Schlüssel schreddern und/oder er ersetzt den zweiten Schlüssel auf eine Weise durch einen Dummy-Schlüssel, die für einen Fachmann beim Lesen der vorliegenden Offenbarung offensichtlich werden dürfte. Der Dummy-Schlüssel kann von einem beliebigen, in der Technik bekannten Typ sein.
  • In weiteren Ansätzen kann der zweite Schlüssel von einem Schlüsselmanager empfangen werden. Ein Schlüsselmanager kann mit dem Quellenknoten, dem Zielknoten und/oder einer beliebigen anderen Komponente in dem Netzwerk verbunden sein, um Schlüssel zur gemeinsamen Nutzung von Daten zwischen dem Quellenknoten und dem Zielknoten bereitzustellen, zu erzeugen, zu verwalten usw.
  • Eine Operation 606 umfasst ein Entschlüsseln, durch den Codeumsetzer, der zweiten verschlüsselten Daten unter Verwendung des zweiten Schlüssels, um die ersten verschlüsselten Daten zu erhalten. Bei den zweiten verschlüsselten Daten, wie vorstehend beschrieben, handelt es sich um Daten, die in dem ersten Schlüssel verschlüsselt wurden, um die ersten verschlüsselten Daten zu erstellen, und die dann in dem zweiten Schlüssel verschlüsselt wurden, um die zweiten verschlüsselten Daten zu erstellen. Gemäß der Operation 606 kann der Codeumsetzer eine Verschlüsselungs-/Entschlüsselungsfunktion und den zweiten Schlüssel (in einigen Ansätzen durch den Quellenknoten gesendet) an dem Codeumsetzer verwenden, um die ersten verschlüsselten Daten zu erhalten. Der Codeumsetzer erhält die Daten vorzugsweise nie in Klartext (oder die ursprünglichen Daten in einer anderen mit einem Schlüssel verschlüsselten Form), wenn der Codeumsetzer keinen Zugriff auf den ersten Schlüssel hat (z.B., um die ersten verschlüsselten Daten zu entschlüsseln, um die Daten zu erhalten).
  • Eine Operation 608 umfasst ein Verschlüsseln, durch den Codeumsetzer, der ersten verschlüsselten Daten unter Verwendung eines dritten Schlüssels, um dritte verschlüsselte Daten zu erstellen. Die ersten verschlüsselten Daten (die z.B. nur in dem ersten Schlüssel verschlüsselt sind) können durch eine Verschlüsselungs-/ Entschlüsselungsfunktion auf dem Codeumsetzer mit einem neuen, dritten Schlüssel verschlüsselt werden, um die dritten verschlüsselten Daten zu erstellen. Bei der Verschlüsselungs-/Entschlüsselungsfunktion kann es sich um die gleiche Verschlüsselungs-/ Entschlüsselungsfunktion der Operation 606 handeln oder sie kann sich von dieser unterscheiden (z.B. von dieser getrennt sein, nur zur Verwendung mit dem dritten Schlüssel gedacht sein usw.). In mindestens einigen Ansätzen kann der dritte Schlüssel durch den Codeumsetzer durch einen Schlüsselgenerator auf dem Codeumsetzer erzeugt werden. In weiteren Ansätzen kann jeder beliebige Schlüssel durch einen mit dem Quellenknoten, dem Codeumsetzer, dem Zielknoten usw. verbundenen Schlüsselmanager und/oder Schlüsselgenerator erzeugt und/oder verwaltet werden.
  • In verschiedenen Ansätzen umfasst das Verfahren 600 ein Senden, durch den Codeumsetzer, des dritten Schlüssels an einen Zielknoten. In bevorzugten Ansätzen ist der Zielknoten, der den dritten Schlüssel empfängt, der Zielknoten, von dem die Anforderung für die Daten stammt. In verschiedenen Ansätzen sendet der Codeumsetzer dem Zielknoten eine Kopie des dritten Schlüssels, die der Zielknoten für eine bestimmte Zeitdauer, eine Anzahl von Operation usw., wie durch die Informationen der Richtlinie für eine gemeinsame Nutzung angegeben ist, und/oder auf eine beliebige Weise sicher speichert, die für einen Fachmann beim Lesen der vorliegenden Offenbarung offensichtlich werden dürfte. In bevorzugten Ausführungsformen schreddert der Codeumsetzer als Reaktion auf ein Ende der Dauer der gemeinsamen Nutzung (wie z.B. wie durch die Richtlinie für eine gemeinsame Nutzung festgelegt, wie durch den Quellenknoten angefordert usw.) den dritten Schlüssel und/oder ersetzt den dritten Schlüssel auf eine beliebige Weise durch einen Dummy-Schlüssel, um die gemeinsame Nutzung von Daten zwischen dem Quellenknoten und dem Zielknoten zu beenden, welche für einen Fachmann beim Lesen der vorliegenden Offenbarung offensichtlich werden dürfte. Der Dummy-Schlüssel kann von einem beliebigen, in der Technik bekannten Typ sein.
  • In weiteren Ansätzen kann der dritte Schlüssel von einem Schlüsselmanager an den Zielknoten gesendet werden. Ein Schlüsselmanager kann mit dem Quellenknoten, dem Zielknoten und/oder einer beliebigen anderen Komponente in dem Netzwerk verbunden sein, um Schlüssel zur gemeinsamen Nutzung von Daten zwischen dem Quellenknoten und dem Zielknoten bereitzustellen, zu erzeugen, zu verwalten usw.
  • Eine Operation 610 umfasst ein Senden, durch den Codeumsetzer, der dritten verschlüsselten Daten an den Zielknoten. Bei den dritten verschlüsselten Daten, wie vorstehend beschrieben, handelt es sich um die ersten verschlüsselten Daten (z.B. in dem ersten Schlüssel verschlüsselte Daten), die unter Verwendung des dritten Schlüssels verschlüsselt werden, um die dritten verschlüsselten Daten zu erstellen. Der Zielknoten empfing den ersten Schlüssel in verschiedenen Ansätzen direkt von dem Quellenknoten. Der Zielknoten ist in verschiedenen Ansätzen so konfiguriert, dass er die dritten verschlüsselten Daten unter Verwendung des dritten Schlüssels entschlüsselt, um die ersten verschlüsselten Daten unter Verwendung einer Verschlüsselungs-/Entschlüsselungsfunktion auf dem Zielknoten zu erhalten. Der Zielknoten ist so konfiguriert, dass er die ersten verschlüsselten Daten unter Verwendung des ersten Schlüssels entschlüsselt, um die Daten unter Verwendung einer Verschlüsselungs-/Entschlüsselungsfunktion auf dem Zielknoten zu erhalten (welche gleich der Verschlüsselungs-/Entschlüsselungsfunktion zum Entschlüsseln der dritten verschlüsselten Daten, um die ersten verschlüsselten Daten zu erhalten, sein oder sich von dieser unterscheiden kann). Bei den Daten, wie vorstehend erläutert wurde, kann es sich um Daten in Klartext, unverschlüsselte Daten, Daten von einfachem Text, Daten in einer anderen mit einem Schlüssel verschlüsselten Form usw. handeln.
  • In einer einzelnen Ausführungsform umfassen die Daten (z.B. die unverschlüsselten Daten) eine Mehrzahl von Datenchunks, wobei jeder Datenchunk in einem vierten Schlüssel verschlüsselt ist. Der vierte Schlüssel kann in dem ersten Schlüssel verschlüsselt werden, um einen ersten verschlüsselten vierten Schlüssel zu erstellen, der dann in dem zweiten Schlüssel verschlüsselt wird, um einen zweiten verschlüsselten vierten Schlüssel zu erstellen. In mindestens einigen Ansätzen kann jeder Datenchunk einem anderen vierten Schlüssel zugeordnet sein, wie für einen Fachmann beim Lesen der vorliegenden Offenbarung offensichtlich werden dürfte. In der vorstehenden Ausführungsform kann der Codeumsetzer den zweiten verschlüsselten vierten Schlüssel und den zweiten Schlüssel auf eine Weise empfangen, die ähnlich der in der Operation 602 bzw. der Operation 604 beschriebenen ist. Der Codeumsetzer kann den zweiten verschlüsselten vierten Schlüssel unter Verwendung des zweiten Schlüssels entschlüsseln, um den ersten verschlüsselten vierten Schlüssel (der jetzt z.B. nur mit dem ersten Schlüssel verschlüsselt ist) auf eine ähnliche Weise zu empfangen, wie sie in der Operation 606 beschrieben ist. Der Codeumsetzer kann den ersten verschlüsselten vierten Schlüssel unter Verwendung des dritten Schlüssels verschlüsseln, um auf eine ähnliche Weise, wie sie in der Operation 608 beschrieben ist, einen dritten verschlüsselten vierten Schlüssel zu erstellen. Der Codeumsetzer kann den dritten Schlüssel und den dritten verschlüsselten vierten Schlüssel (z.B. den in dem ersten Schlüssel verschlüsselten vierten Schlüssel, um den ersten verschlüsselten vierten Schlüssel zu erhalten, woraufhin der erste verschlüsselte vierte Schlüssel dann in dem dritten Schlüssel verschlüsselt wird, um den dritten verschlüsselten vierten Schlüssel zu erhalten) an den Zielknoten senden (wie z.B. in der Operation 610 und im Verfahren 600 beschrieben ist), und der Zielknoten kann so konfiguriert sein, dass er die dritten verschlüsselten Fingerabdrücke unter Verwendung des dritten Schlüssels (der in verschiedenen Ansätzen von dem Codeumsetzer oder einem Schlüsselmanager empfangen wird) entschlüsselt, um den ersten verschlüsselten vierten Schlüssel zu erhalten. Der Zielknoten kann den ersten verschlüsselten vierten Schlüssel dann unter Verwendung des ersten Schlüssels entschlüsseln, den der Zielknoten in verschiedenen Ansätzen von dem Quellenknoten oder einem Schlüsselmanager empfängt, um den vierten Schlüssel zu erhalten. Der vierte Schlüssel kann verwendet werden, um die Datenchunks zu entschlüsseln, die in dem vierten Schlüssel verschlüsselt an den Zielknoten gesendet werden. Eine Codeumsetzung des Schlüssels/der Schlüssel anstelle der Daten kann effizienter sein, wenn die Schlüssel eine verhältnismäßig kürzere Länge haben als die durch den Zielknoten angeforderten Datenblöcke.
  • Gemäß einigen Ansätzen umfassen die Daten (z.B. die unverschlüsselten Daten) eine Mehrzahl von Datenchunks, wobei jeder Datenchunk einen damit verbundenen und/oder daraus berechneten Fingerabdruck hat. Jeder Fingerabdruck kann unter Verwendung von SHA-256 oder einem beliebigen anderen, in der Technik bekannten, sicheren Hash-Algorithmus berechnet werden. Die Fingerabdrücke können gemäß mindestens einigen der hierin beschriebenen Ausführungsformen doppelt verschlüsselt sein. Verschlüsselte Fingerabdrücke können in einer sicheren Schlüssel-je-Chunk-Deduplizierung verwendet werden, so dass die Fingerabdruckdaten zur Verwendung an dem Zielknoten sicher transcodiert werden können. Die verschlüsselten Fingerabdrücke können verwendet werden, um Deduplizierungsmöglichkeiten festzustellen, als eine durchgängige Integritätsprüfung, um zusätzlichen Datenschutz bereitzustellen, usw. Es kann eine beliebige Anzahl von Schlüsseln geben, um Daten, Fingerabdrücke, Metadaten usw. für eine sichere gemeinsame Nutzung gemäß mindestens einigen der hierin beschriebenen Operationen zu transcodieren. In bevorzugten Ansätzen des vorstehenden Aspekts ist jedem Datenchunk mindestens ein eindeutiger Schlüssel im Vergleich zu einem beliebigen anderen Datenchunk zugeordnet (z.B. wird er mit mindestens einem eindeutigen Schlüssel verschlüsselt/entschlüsselt). In verschiedenen Ansätzen kann jeder Datenchunk der Daten und/oder jeder Fingerabdruck seinem eigenen ersten Schlüssel, zweiten Schlüssel oder ersten und zweiten Schlüssel zugeordnet sein. Auf diese Weise bieten mindestens einige Ausführungsformen der vorliegenden Offenbarung eine vorwärts gerichtete Sicherheit, indem sie mindestens einen Schlüssel für jeden Datenchunk, der zum Zielknoten unterwegs ist, ändern. Dem Zielknoten liegt dieser Datenchunk in Klartext vor (nachdem der Datenchunk gegebenenfalls transcodiert wurde), jedoch kann der Quellenknoten angeben, wie viele Daten der Zielknoten empfängt, indem er den Schlüssel für jeden Datenchunk ändert.
  • Bezug nehmend auf 7 ist ein Ablaufplan eines Verfahrens 700 gemäß einer einzelnen Ausführungsform gezeigt. Das Verfahren 700 kann gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung in verschiedenen Konfigurationen in beliebigen der Umgebungen, die unter anderem in den 1 bis 6 und 7 dargestellt sind, ausgeführt werden. Natürlich können mehr oder weniger Operationen als diejenigen, die in 7 ausdrücklich beschrieben sind, in dem Verfahren 700 enthalten sein, wie der Fachmann verstehen dürfte, nachdem er die vorliegenden Beschreibungen gelesen hat.
  • Jeder der Schritte des Verfahrens 700 kann durch eine beliebige geeignete Komponente der Betriebsumgebung durchgeführt werden. Zum Beispiel kann das Verfahren 700 in verschiedenen Ausführungsformen teilweise oder ganz durch Computer oder eine andere Einheit durchgeführt werden, die über einen oder mehrere darin befindliche Prozessoren verfügt. Der Prozessor, z.B. (eine) Prozessorschaltung(en), (ein) Chip(s) und/oder (ein) Modul(e), die/der/das in Hardware und/oder Software ausgeführt ist/sind und vorzugsweise über mindestens eine Hardwarekomponente verfügt/verfügen, können in einer beliebigen Einheit verwendet werden, um einen oder mehrere Schritte des Verfahrens 700 durchzuführen. Zu veranschaulichenden Prozessoren gehören, ohne darauf beschränkt zu sein, eine zentrale Verarbeitungseinheit (CPU), eine anwendungsspezifische integrierte Schaltung (ASIC, application specific integrated circuit), eine im Feld programmierbare Gatter-Anordnung (FPGA, field programmable gate array) usw., Kombinationen daraus oder eine beliebige andere geeignete in der Technik bekannte Datenverarbeitungseinheit.
  • Wie in 7 gezeigt ist, umfasst das Verfahren 700 eine Operation 702. Die Operation 702 umfasst ein Empfangen, durch einen Codeumsetzer, eines zweiten verschlüsselten Schlüssels. Bei dem zweiten verschlüsselten Schlüssel handelt es sich um einen Schlüssel, der in einem ersten Schlüssel verschlüsselt wurde, um einen ersten verschlüsselten Schlüssel zu erstellen, welcher dann in einem zweiten Schlüssel verschlüsselt wird, um den zweiten verschlüsselten Schlüssel zu erstellen. In bevorzugten Ausführungsformen findet die Verschlüsselung des Schlüssels in den ersten verschlüsselten Schlüssel und dann die Verschlüsselung des ersten verschlüsselten Schlüssels in den zweiten verschlüsselten Schlüssel an einem Quellenknoten statt. Der Quellenknoten weist den ersten Schlüssel und den zweiten Schlüssel auf.
  • Eine Operation 704 umfasst ein Empfangen, durch den Codeumsetzer, des zweiten Schlüssels. In verschiedenen Ansätzen wird der zweite Schlüssel von dem Quellenknoten empfangen. In verschiedenen Ansätzen sendet der Quellenknoten dem Codeumsetzer eine Kopie des zweiten Schlüssels, die der Codeumsetzer für eine bestimmte Zeitdauer, eine Anzahl von Operationen usw., wie durch die Informationen der Richtlinie für eine gemeinsame Nutzung angegeben ist, sicher speichert. In mindestens einigen Ausführungsformen kann der Codeumsetzer als Reaktion auf ein Ende der Dauer der gemeinsamen Nutzung (wie z.B. durch die Richtlinie für eine gemeinsame Nutzung festgelegt, wie durch den Quellenknoten angefordert usw.) den zweiten Schlüssel schreddern und/oder er ersetzt den zweiten Schlüssel durch einen Dummy-Schlüssel, wie für einen Fachmann beim Lesen der vorliegenden Offenbarung offensichtlich werden dürfte. Der Dummy-Schlüssel kann von einem beliebigen, in der Technik bekannten Typ sein.
  • In weiteren Ansätzen kann der zweite Schlüssel von einem Schlüsselmanager empfangen werden. Ein Schlüsselmanager kann mit dem Quellenknoten, dem Zielknoten und/oder einer beliebigen anderen Komponente in dem Netzwerk verbunden sein, um Schlüssel zur gemeinsamen Nutzung von Daten zwischen dem Quellenknoten und dem Zielknoten bereitzustellen, zu erzeugen, zu verwalten usw.
  • Eine Operation 706 umfasst ein Entschlüsseln, durch den Codeumsetzer, des zweiten verschlüsselten Schlüssels unter Verwendung des zweiten Schlüssels, um den ersten verschlüsselten Schlüssel zu erhalten. Bei dem zweiten verschlüsselten Schlüssel, wie vorstehend beschrieben, handelt es sich um einen Schlüssel, der in dem ersten Schlüssel verschlüsselt wurde, um den ersten verschlüsselten Schlüssel zu erstellen, und der dann in dem zweiten Schlüssel verschlüsselt wurde, um den zweiten verschlüsselten Schlüssel zu erstellen. Gemäß der Operation 706 kann der Codeumsetzer eine Verschlüsselungs-/ Entschlüsselungsfunktion und den zweiten Schlüssel (in einigen Ansätzen durch den Quellenknoten gesendet) an dem Codeumsetzer verwenden, um den ersten verschlüsselten Schlüssel zu erhalten. Der Codeumsetzer erhält den Schlüssel vorzugsweise nie in Klartext, wenn der Codeumsetzer keinen Zugriff auf den ersten Schlüssel hat (z.B., um den ersten verschlüsselten Schlüssel zu entschlüsseln, um den Schlüssel zu erhalten).
  • Eine Operation 708 umfasst ein Verschlüsseln, durch den Codeumsetzer, des ersten verschlüsselten Schlüssels unter Verwendung eines dritten Schlüssels, um einen dritten verschlüsselten Schlüssel zu erstellen. Der erste verschlüsselte Schlüssel (der z.B. nur in dem ersten Schlüssel verschlüsselt ist) kann durch eine Verschlüsselungs-/ Entschlüsselungsfunktion auf dem Codeumsetzer mit einem neuen, dritten Schlüssel verschlüsselt werden, um den dritten verschlüsselten Schlüssel zu erstellen. Bei der Verschlüsselungs-/Entschlüsselungsfunktion kann es sich um die gleiche Verschlüsselungs-/ Entschlüsselungsfunktion der Operation 706 handeln oder sie kann sich von dieser unterscheiden (z.B. von dieser getrennt sein, nur zur Verwendung mit dem dritten Schlüssel gedacht sein usw.). In mindestens einigen Ansätzen kann der dritte Schlüssel durch den Codeumsetzer durch einen Schlüsselgenerator auf dem Codeumsetzer erzeugt werden. In weiteren Ansätzen kann jeder beliebige Schlüssel durch einen mit dem Quellenknoten, dem Codeumsetzer, dem Zielknoten usw. verbundenen Schlüsselmanager und/oder Schlüsselgenerator erzeugt und/oder verwaltet werden.
  • In mindestens einigen Ansätzen umfasst das Verfahren 700 ein Senden, durch den Codeumsetzer, des dritten Schlüssels an einen Zielknoten. In verschiedenen Ansätzen sendet der Codeumsetzer dem Zielknoten eine Kopie des dritten Schlüssels, die der Zielknoten für eine bestimmte Zeitdauer, eine Anzahl von Operationen usw., wie durch Informationen einer Richtlinie für eine gemeinsame Nutzung angegeben ist, sicher speichert. In bevorzugten Ausführungsformen schreddert der Codeumsetzer als Reaktion auf ein Ende einer Dauer der gemeinsamen Nutzung (wie z.B. durch die Richtlinie für eine gemeinsame Nutzung festgelegt, wie durch den Quellenknoten angefordert usw.) den dritten Schlüssel und/oder ersetzt den dritten Schlüssel auf eine beliebige Weise durch einen Dummy-Schlüssel, um die gemeinsame Nutzung von Daten zwischen dem Quellenknoten und dem Zielknoten zu beenden, welche für einen Fachmann beim Lesen der vorliegenden Offenbarung offensichtlich werden dürfte. Der Dummy-Schlüssel kann von einem beliebigen, in der Technik bekannten Typ sein.
  • In weiteren Ansätzen kann der dritte Schlüssel von einem Schlüsselmanager an den Zielknoten gesendet werden. Ein Schlüsselmanager kann mit dem Quellenknoten, dem Zielknoten und/oder einer beliebigen anderen Komponente in dem Netzwerk verbunden sein, um Schlüssel zur gemeinsamen Nutzung von Daten zwischen dem Quellenknoten und dem Zielknoten bereitzustellen, zu erzeugen, zu verwalten usw.
  • Eine Operation 710 umfasst ein Senden, durch den Codeumsetzer, des dritten verschlüsselten Schlüssels an den Zielknoten. Bei dem dritten verschlüsselten Schlüssel, wie vorstehend beschrieben, handelt es sich um den ersten verschlüsselten Schlüssel (z.B. einen in dem ersten Schlüssel verschlüsselten Schlüssel), der unter Verwendung des dritten Schlüssels verschlüsselt wird, um den dritten verschlüsselten Schlüssel zu erstellen. Der Zielknoten empfing den ersten Schlüssel in verschiedenen Ansätzen direkt von dem Quellenknoten. Der Zielknoten ist in verschiedenen Ansätzen so konfiguriert, dass er den dritten verschlüsselten Schlüssel unter Verwendung des dritten Schlüssels entschlüsselt, um den ersten verschlüsselten Schlüssel unter Verwendung einer Verschlüsselungs-/ Entschlüsselungsfunktion auf dem Zielknoten zu erhalten. Der Zielknoten ist so konfiguriert, dass er den ersten verschlüsselten Schlüssel unter Verwendung des ersten Schlüssels entschlüsselt, um den Schlüssel unter Verwendung einer Verschlüsselungs-/ Entschlüsselungsfunktion auf dem Zielknoten zu erhalten (welche gleich der Verschlüsselungs-/Entschlüsselungsfunktion zum Entschlüsseln des dritten verschlüsselten Schlüssels, um den ersten verschlüsselten Schlüssel zu erhalten, sein oder sich von dieser unterscheiden kann). Bei dem Schlüssel, wie vorstehend erläutert wurde, kann es sich um einen Schlüssel in Klartext, einen unverschlüsselten Schlüssel usw. handeln.
  • In verschiedenen Ansätzen kann der Zielknoten den Schlüssel (z.B. den unverschlüsselten Schlüssel) verwenden, um Daten von dem Quellenknoten zu entschlüsseln. Zum Beispiel kann dieser unverschlüsselte Schlüssel der erste Schlüssel in mindestens einigen der in dem Verfahren 600 von 6 beschriebenen Operationen sein.
  • Bei der vorliegenden Erfindung, gemäß bevorzugten Ausführungsformen, kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt auf jeder möglichen Integrationsstufe technischer Details handeln. Das Computerprogrammprodukt kann ein durch einen Computer lesbares Speichermedium (oder -medien) mit durch einen Computer lesbaren Programmanweisungen darauf umfassen, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch ein System zur Ausführung von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die folgenden: eine auswechselbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein auswechselbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch kodierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. Lichtwellenleiterkabel durchlaufende Lichtimpulse) oder durch einen Draht übermittelte elektrische Signale.
  • Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Switches, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmwareanweisungen, zustandssetzende Daten, Konfigurationsdaten für eine integrierte Schaltung oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können 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 fernen Computer oder vollständig auf dem fernen Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch einen beliebigen Typ Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel durch das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, vor Ort programmierbare Gatter-Anordnungen (FPGA, field-programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern bzw. Schaubildern mittels durch einen Computer lesbarer Programmanweisungen ausgeführt werden können.
  • Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktion/Schritts umsetzen.
  • Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte umsetzen.
  • Die Ablaufpläne und die Blockschaltbilder bzw. Schaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in dem Ablaufplan oder in den Blockschaltbildern bzw. Schaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, das bzw. der eine oder mehrere ausführbare Anweisungen zur Ausführung der festgelegten logischen Funktion(en) aufweist. In einigen alternativen Ausführungen können die in den Blöcken angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit als ein Schritt durchgeführt, gleichzeitig ausgeführt, im Wesentlichen gleichzeitig ausgeführt, in einer sich teilweise oder ganz zeitlich überlappenden Weise ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaltbilder bzw. Schaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern bzw. Schaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
  • Überdies kann ein System gemäß verschiedenen Ausführungsformen einen Prozessor und Logik umfassen, die in den Prozessor integriert und/oder durch den Prozessor ausführbar ist, wobei die Logik so konfiguriert ist, dass sie einen oder mehrere der hierin genannten Prozessschritte durchführt. Mit „integriert in“ ist gemeint, dass der Prozessor über Logik verfügt, die darin als Hardware-Logik, wie zum Beispiel eine anwendungsspezifische integrierte Schaltung (ASIC), eine FPGA usw., eingebettet ist. Mit „durch den Prozessor ausführbar“ ist gemeint, dass es sich bei der Logik um Hardware-Logik; Software-Logik wie zum Beispiel Firmware, einen Teil eines Betriebssystems, einen Teil eines Anwendungsprogramms; usw. oder eine bestimmte Kombination aus Hardware- und Software-Logik handelt, auf die der Prozessor zugreifen kann und die so konfiguriert ist, dass sie den Prozessor veranlasst, nach der Ausführung durch den Prozessor eine bestimmte Funktionalität durchzuführen. Software-Logik kann auf einem lokalen und/oder einem fernen Arbeitsspeicher eines beliebigen Arbeitsspeichertyps gespeichert sein, wie in der Technik bekannt ist. Ein beliebiger, in der Technik bekannter Prozessor kann verwendet werden, wie beispielsweise ein Software-Prozessormodul und/oder ein Hardware-Prozessor wie beispielsweise eine ASIC, eine FPGA, eine zentrale Verarbeitungseinheit (CPU), eine integrierte Schaltung (IC), eine Grafikverarbeitungseinheit (GPU) usw.
  • Es dürfte klar sein, dass die verschiedenen Merkmale der vorstehenden Systeme und/oder methodischen Vorgehensweisen beliebig kombiniert werden können und auf diese Weise eine Mehrzahl von Kombinationen aus den vorstehenden Beschreibungen schaffen.
  • Es dürfte sich des Weiteren verstehen, dass Ausführungsformen der vorliegenden Erfindung in Form eines Services bereitgestellt werden können, der zugunsten eines Kunden implementiert wird, um Service-on-Demand anzubieten.
  • Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung erfolgten zum Zweck der Veranschaulichung, sie sollen jedoch nicht erschöpfend oder auf die offenbarten Ausführungsformen beschränkt sein. Viele Änderungen und Varianten sind für den Fachmann erkennbar, ohne vom Umfang und Wesen der beschriebenen Ausführungsformen abzuweichen. Die hierin verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung oder technische Verbesserung gegenüber auf dem Markt befindlichen Technologien am besten zu erklären bzw. um anderen Fachleuten das Verständnis der hierin offenbarten Ausführungsformen zu ermöglichen.

Claims (29)

  1. Durch einen Computer ausgeführtes Verfahren, das umfasst: Empfangen, durch einen Codeumsetzer, von zweiten verschlüsselten Daten, wobei es sich bei den zweiten verschlüsselten Daten um Daten handelt, die in einem ersten Schlüssel verschlüsselt wurden, um erste verschlüsselte Daten zu erstellen, welche dann in einem zweiten Schlüssel verschlüsselt werden, um die zweiten verschlüsselten Daten zu erstellen; Empfangen, durch den Codeumsetzer, des zweiten Schlüssels; Entschlüsseln, durch den Codeumsetzer, der zweiten verschlüsselten Daten unter Verwendung des zweiten Schlüssels, um die ersten verschlüsselten Daten zu erhalten; Verschlüsseln, durch den Codeumsetzer, der ersten verschlüsselten Daten unter Verwendung eines dritten Schlüssels, um dritte verschlüsselte Daten zu erstellen; und Senden, durch den Codeumsetzer, der dritten verschlüsselten Daten an einen Zielknoten.
  2. Durch einen Computer ausgeführtes Verfahren nach Anspruch 1, wobei der zweite Schlüssel von einem Quellenknoten empfangen wird.
  3. Durch einen Computer ausgeführtes Verfahren nach Anspruch 1, wobei die zweiten verschlüsselten Daten zumindest teilweise auf der Grundlage von Datenanforderungen von dem Codeumsetzer an den Speicher empfangen werden.
  4. Durch einen Computer ausgeführtes Verfahren nach Anspruch 2, wobei die zweiten verschlüsselten Daten zumindest teilweise auf der Grundlage von Datenanforderungen von dem Codeumsetzer an den Quellenknoten empfangen werden.
  5. Durch einen Computer ausgeführtes Verfahren nach Anspruch 1, Senden, durch den Codeumsetzer, des dritten Schlüssels an den Zielknoten, wobei der Zielknoten so konfiguriert ist, dass er die dritten verschlüsselten Daten unter Verwendung des dritten Schlüssels entschlüsselt, um die ersten verschlüsselten Daten zu erhalten, wobei der Zielknoten so konfiguriert ist, dass er die ersten verschlüsselten Daten unter Verwendung des ersten Schlüssels entschlüsselt, um die Daten zu erhalten.
  6. Durch einen Computer ausgeführtes Verfahren nach Anspruch 1, wobei die Daten eine Mehrzahl von Datenchunks umfassen, wobei jeder Datenchunk in einem vierten Schlüssel verschlüsselt wird, wobei der vierte Schlüssel in dem ersten Schlüssel verschlüsselt wird, um einen ersten verschlüsselten vierten Schlüssel zu erstellen, der dann in dem zweiten Schlüssel verschlüsselt wird, um einen zweiten verschlüsselten vierten Schlüssel zu erstellen; Empfangen, durch den Codeumsetzer, des zweiten verschlüsselten vierten Schlüssels; Entschlüsseln, durch den Codeumsetzer, des zweiten verschlüsselten vierten Schlüssels unter Verwendung des zweiten Schlüssels, um den ersten verschlüsselten vierten Schlüssel zu erhalten; Verschlüsseln, durch den Codeumsetzer, des ersten verschlüsselten vierten Schlüssels unter Verwendung des dritten Schlüssels, um einen dritten verschlüsselten vierten Schlüssel zu erstellen; Senden, durch den Codeumsetzer, des dritten Schlüssels an den Zielknoten; und Senden, durch den Codeumsetzer, des dritten verschlüsselten vierten Schlüssels an den Zielknoten.
  7. Durch einen Computer ausgeführtes Verfahren nach Anspruch 2, wobei sich der Codeumsetzer auf dem Quellenknoten befindet.
  8. Durch einen Computer ausgeführtes Verfahren nach Anspruch 3, wobei sich der Codeumsetzer in dem Speicher befindet.
  9. Durch einen Computer ausgeführtes Verfahren nach Anspruch 3, wobei sich der Codeumsetzer in einem mit dem Quellenknoten und dem Speicher verbundenen Speichernetz befindet.
  10. Durch einen Computer ausgeführtes Verfahren nach Anspruch 1, das umfasst: Ersetzen, durch den Codeumsetzer, des dritten Schlüssels durch einen Dummy-Schlüssel, um eine gemeinsame Nutzung von Daten zwischen dem Quellenknoten und dem Zielknoten zu beenden.
  11. Verfahren nach Anspruch 1, wobei sich erste, zweite und dritte verschlüsselte Daten auf erste, zweite und dritte verschlüsselte Schlüssel beziehen.
  12. Durch einen Computer ausgeführtes Verfahren nach Anspruch 11, Senden, durch den Codeumsetzer, des dritten Schlüssels an einen Zielknoten, wobei der Zielknoten so konfiguriert ist, dass er den dritten verschlüsselten Schlüssel unter Verwendung des dritten Schlüssels entschlüsselt, um den ersten verschlüsselten Schlüssel zu erhalten, wobei der Zielknoten so konfiguriert ist, dass er den ersten verschlüsselten Schlüssel unter Verwendung des ersten Schlüssels entschlüsselt, um den Schlüssel zu erhalten.
  13. Durch einen Computer ausgeführtes Verfahren nach Anspruch 12, wobei der Zielknoten den Schlüssel zum Entschlüsseln von Daten von dem Quellenknoten verwendet.
  14. Durch einen Computer ausgeführtes Verfahren, das umfasst: Empfangen, durch einen Codeumsetzer, eines zweiten verschlüsselten Schlüssels, wobei es sich bei dem zweiten verschlüsselten Schlüssel um einen Schlüssel handelt, der in einem ersten Schlüssel verschlüsselt wurde, um einen ersten verschlüsselten Schlüssel zu erstellen, welcher dann in einem zweiten Schlüssel verschlüsselt wird, um den zweiten verschlüsselten Schlüssel zu erstellen, Empfangen, durch den Codeumsetzer, des zweiten Schlüssels, Entschlüsseln, durch den Codeumsetzer, des zweiten verschlüsselten Schlüssels unter Verwendung des zweiten Schlüssels, um den ersten verschlüsselten Schlüssel zu erhalten, Verschlüsseln, durch den Codeumsetzer, des ersten verschlüsselten Schlüssels unter Verwendung eines dritten Schlüssels, um einen dritten verschlüsselten Schlüssel zu erstellen; und Senden, durch den Codeumsetzer, des dritten verschlüsselten Schlüssels an einen Zielknoten.
  15. Durch einen Computer ausgeführtes Verfahren nach Anspruch 14, Senden, durch den Codeumsetzer, des dritten Schlüssels an einen Zielknoten, wobei der Zielknoten so konfiguriert ist, dass er den dritten verschlüsselten Schlüssel unter Verwendung des dritten Schlüssels entschlüsselt, um den ersten verschlüsselten Schlüssel zu erhalten, wobei der Zielknoten so konfiguriert ist, dass er den ersten verschlüsselten Schlüssel unter Verwendung des ersten Schlüssels entschlüsselt, um den Schlüssel zu erhalten.
  16. Durch einen Computer ausgeführtes Verfahren nach Anspruch 15, wobei der Zielknoten den Schlüssel zum Entschlüsseln von Daten von dem Quellenknoten verwendet.
  17. System, das aufweist: einen Prozessor; und Logik, die in den Prozessor integriert ist, durch den Prozessor ausführbar ist oder in den Prozessor integriert und durch den Prozessor ausführbar ist, wobei die Logik so konfiguriert ist, dass sie: zweite verschlüsselte Daten durch einen Codeumsetzer empfängt, wobei es sich bei den zweiten verschlüsselten Daten um Daten handelt, die in einem ersten Schlüssel verschlüsselt wurden, um erste verschlüsselte Daten zu erstellen, welche dann in einem zweiten Schlüssel verschlüsselt werden, um die zweiten verschlüsselten Daten zu erstellen; den zweiten Schlüssel durch den Codeumsetzer empfängt; die zweiten verschlüsselten Daten unter Verwendung des zweiten Schlüssels durch den Codeumsetzer entschlüsselt, um die ersten verschlüsselten Daten zu erhalten; die ersten verschlüsselten Daten unter Verwendung eines dritten Schlüssels durch den Codeumsetzer verschlüsselt, um dritte verschlüsselte Daten zu erstellen; und die dritten verschlüsselten Daten durch den Codeumsetzer an einen Zielknoten sendet.
  18. System nach Anspruch 17, wobei der zweite Schlüssel von einem Quellenknoten empfangen wird.
  19. System nach Anspruch 17, wobei die zweiten verschlüsselten Daten zumindest teilweise auf der Grundlage von Datenanforderungen von dem Codeumsetzer an den Speicher empfangen werden.
  20. System nach Anspruch 18, wobei die zweiten verschlüsselten Daten zumindest teilweise auf der Grundlage von Datenanforderungen von dem Codeumsetzer an den Quellenknoten empfangen werden.
  21. System nach Anspruch 17, Logik, die so konfiguriert ist, dass sie, durch den Codeumsetzer, den dritten Schlüssel an den Zielknoten sendet, wobei der Zielknoten so konfiguriert ist, dass er die dritten verschlüsselten Daten unter Verwendung des dritten Schlüssels entschlüsselt, um die ersten verschlüsselten Daten zu erhalten, wobei der Zielknoten so konfiguriert ist, dass er die ersten verschlüsselten Daten unter Verwendung des ersten Schlüssels entschlüsselt, um die Daten zu erhalten.
  22. System nach Anspruch 17, wobei die Daten eine Mehrzahl von Datenchunks umfassen, wobei jeder Datenchunk in einem vierten Schlüssel verschlüsselt wird, wobei der vierte Schlüssel in dem ersten Schlüssel verschlüsselt wird, um einen ersten verschlüsselten vierten Schlüssel zu erstellen, der dann in dem zweiten Schlüssel verschlüsselt wird, um einen zweiten verschlüsselten vierten Schlüssel zu erstellen; und Logik, die so konfiguriert ist, dass sie: den zweiten verschlüsselten vierten Schlüssel durch den Codeumsetzer empfängt; den zweiten verschlüsselten vierten Schlüssel unter Verwendung des zweiten Schlüssels durch den Codeumsetzer entschlüsselt, um den ersten verschlüsselten vierten Schlüssel zu erhalten; den ersten verschlüsselten vierten Schlüssel unter Verwendung des dritten Schlüssels durch den Codeumsetzer verschlüsselt, um einen dritten verschlüsselten vierten Schlüssel zu erstellen; den dritten Schlüssel durch den Codeumsetzer an den Zielknoten sendet; und den dritten verschlüsselten vierten Schlüssel durch den Codeumsetzer an den Zielknoten sendet.
  23. System nach Anspruch 18, wobei sich der Codeumsetzer auf dem Quellenknoten befindet.
  24. System nach Anspruch 19, wobei sich der Codeumsetzer in dem Speicher befindet.
  25. System nach Anspruch 19, wobei sich der Codeumsetzer in einem mit dem Quellenknoten und dem Speicher verbundenen Speichernetz befindet.
  26. System nach Anspruch 17, das Logik umfasst, die so konfiguriert ist, dass sie: den dritten Schlüssel durch den Codeumsetzer durch einen Dummy-Schlüssel ersetzt, um eine gemeinsame Nutzung von Daten zwischen dem Quellenknoten und dem Zielknoten zu beenden.
  27. Computerprogrammprodukt, wobei das Computerprogrammprodukt aufweist: ein oder mehrere durch einen Computer lesbare Speichermedien und Programmanweisungen, die zusammen auf dem einen oder den mehreren durch einen Computer lesbaren Speichermedien gespeichert sind, wobei die Programmanweisungen aufweisen: Programmanweisungen, um, durch einen Codeumsetzer, zweite verschlüsselte Daten zu empfangen, wobei es sich bei den zweiten verschlüsselten Daten um Daten handelt, die in einem ersten Schlüssel verschlüsselt wurden, um erste verschlüsselte Daten zu erstellen, welche dann in einem zweiten Schlüssel verschlüsselt werden, um die zweiten verschlüsselten Daten zu erstellen; Programmanweisungen, um, durch den Codeumsetzer, den zweiten Schlüssel zu empfangen; Programmanweisungen, um, durch den Codeumsetzer, die zweiten verschlüsselten Daten unter Verwendung des zweiten Schlüssels zu entschlüsseln, um die ersten verschlüsselten Daten zu erhalten; Programmanweisungen, um, durch den Codeumsetzer, die ersten verschlüsselten Daten unter Verwendung eines dritten Schlüssels zu verschlüsseln, um dritte verschlüsselte Daten zu erstellen; und Programmanweisungen, um, durch den Codeumsetzer, die dritten verschlüsselten Daten an einen Zielknoten zu senden.
  28. Computerprogrammprodukt, wobei das Computerprogrammprodukt aufweist: ein oder mehrere durch einen Computer lesbare Speichermedien und Programmanweisungen, die zusammen auf dem einen oder den mehreren durch einen Computer lesbaren Speichermedien gespeichert sind, wobei die Programmanweisungen aufweisen: Programmanweisungen, um, durch einen Codeumsetzer, einen zweiten verschlüsselten Schlüssel zu empfangen, wobei es sich bei dem zweiten verschlüsselten Schlüssel um einen Schlüssel handelt, der in einem ersten Schlüssel verschlüsselt wurde, um einen ersten verschlüsselten Schlüssel zu erstellen, welcher dann in einem zweiten Schlüssel verschlüsselt wird, um den zweiten verschlüsselten Schlüssel zu erstellen, Programmanweisungen, um, durch den Codeumsetzer, den zweiten Schlüssel zu empfangen, Programmanweisungen, um, durch den Codeumsetzer, den zweiten verschlüsselten Schlüssel unter Verwendung des zweiten Schlüssels zu entschlüsseln, um den ersten verschlüsselten Schlüssel zu erhalten, Programmanweisungen, um, durch den Codeumsetzer, den ersten verschlüsselten Schlüssel unter Verwendung eines dritten Schlüssels zu verschlüsseln, um einen dritten verschlüsselten Schlüssel zu erstellen; und Programmanweisungen, um, durch den Codeumsetzer, den dritten verschlüsselten Schlüssel an einen Zielknoten zu senden.
  29. Computerprogramm, das Programmcode-Mittel aufweist, die so ausgelegt sind, dass sie das Verfahren nach einem der Ansprüche 1 bis 16 durchführen, wenn das Programm auf einem Computer ausgeführt wird.
DE112021006008.2T 2020-12-30 2021-12-15 Sichere übertragung grosser datenmengen Pending DE112021006008T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/138,539 2020-12-30
US17/138,539 US11743241B2 (en) 2020-12-30 2020-12-30 Secure data movement
PCT/IB2021/061771 WO2022144663A1 (en) 2020-12-30 2021-12-15 Secure data movement

Publications (1)

Publication Number Publication Date
DE112021006008T5 true DE112021006008T5 (de) 2023-11-30

Family

ID=82117938

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112021006008.2T Pending DE112021006008T5 (de) 2020-12-30 2021-12-15 Sichere übertragung grosser datenmengen

Country Status (6)

Country Link
US (1) US11743241B2 (de)
JP (1) JP2024503327A (de)
CN (1) CN116746114A (de)
DE (1) DE112021006008T5 (de)
GB (1) GB2617757B (de)
WO (1) WO2022144663A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230216733A1 (en) * 2021-12-31 2023-07-06 Fortinet, Inc. Distributed node discovery and overlay path management on a data communication network
US11579783B1 (en) * 2022-03-09 2023-02-14 Vim Inc. Multi-tenant storage

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4074057B2 (ja) 2000-12-28 2008-04-09 株式会社東芝 耐タンパプロセッサにおける暗号化データ領域のプロセス間共有方法
US7181017B1 (en) 2001-03-23 2007-02-20 David Felsher System and method for secure three-party communications
US7266611B2 (en) 2002-03-12 2007-09-04 Dilithium Networks Pty Limited Method and system for improved transcoding of information through a telecommunication network
US7305711B2 (en) * 2002-12-10 2007-12-04 Intel Corporation Public key media key block
DE102005027232A1 (de) 2005-06-13 2006-12-14 Siemens Ag Verfahren und Anordnung zum sicheren Übertragen von Daten in einem ein Mehrsprungverfahren nutzenden Kommunikationssystem
US8761401B2 (en) * 2006-08-28 2014-06-24 Motorola Mobility Llc System and method for secure key distribution to manufactured products
US9104618B2 (en) 2008-12-18 2015-08-11 Sandisk Technologies Inc. Managing access to an address range in a storage device
JP5327380B2 (ja) * 2010-03-31 2013-10-30 富士通株式会社 暗号処理装置および暗号処理方法
CN102098318B (zh) 2011-03-23 2013-08-14 电子科技大学 多跳网络的端到端匿名安全通信方法
KR101428875B1 (ko) * 2011-11-30 2014-08-12 주식회사 알티캐스트 Hls 기반 보안 처리 시스템 및 그 방법
US8681992B2 (en) * 2012-02-13 2014-03-25 Alephcloud Systems, Inc. Monitoring and controlling access to electronic content
US8966287B2 (en) 2012-03-26 2015-02-24 Symantec Corporation Systems and methods for secure third-party data storage
US9847979B2 (en) * 2013-03-15 2017-12-19 Verimatrix, Inc. Security and key management of digital content
US9043613B2 (en) 2013-06-28 2015-05-26 International Business Machines Corporation Multiple volume encryption of storage devices using self encrypting drive (SED)
US9887836B1 (en) * 2014-09-26 2018-02-06 Amazon Technologies, Inc. Unified management of cryptographic keys using virtual keys and referrals
US9210187B1 (en) * 2015-01-13 2015-12-08 Centri Technology, Inc. Transparent denial of service protection
US10127389B1 (en) * 2015-03-30 2018-11-13 Amazon Technologies, Inc. Performing operations on intelligent storage with hardened interfaces
EP3086585B1 (de) 2015-04-23 2019-12-11 Nxp B.V. Verfahren und system zur sicherung von in einem netzwerk kommunizierten daten
US10033702B2 (en) 2015-08-05 2018-07-24 Intralinks, Inc. Systems and methods of secure data exchange
US10992461B2 (en) * 2015-11-20 2021-04-27 Genetec Inc. Secure layered encryption of data streams
US9946895B1 (en) * 2015-12-15 2018-04-17 Amazon Technologies, Inc. Data obfuscation
ES2899933T3 (es) 2016-03-15 2022-03-15 Datomia Res Labs Ou Gestión y seguridad de datos del sistema de almacenamiento distribuido
US10528485B2 (en) 2016-09-30 2020-01-07 Intel Corporation Method and apparatus for sharing security metadata memory space
US20180219674A1 (en) * 2017-01-06 2018-08-02 Microsoft Technology Licensing, Llc Successive cryptographic techniques
US10708244B2 (en) * 2017-06-07 2020-07-07 Virtual Connect Technologies, Inc. System and method for encryption, storage and transmission of digital information
US10505950B2 (en) * 2017-07-10 2019-12-10 Dark Matter L.L.C. System, method, and computer program product for multi-layer encryption of an efficient broadcast message
EP3891924A4 (de) * 2017-10-24 2022-10-05 Bitcache Limited Datenübertragung
US10187200B1 (en) * 2017-12-18 2019-01-22 Secure Channels Inc. System and method for generating a multi-stage key for use in cryptographic operations
US11038691B2 (en) * 2018-01-03 2021-06-15 JJD Software LLC Database platform for maintaining secure data
CN111527762B (zh) * 2018-01-04 2024-08-09 昕诺飞控股有限公司 用于设备到设备通信网络中端到端安全通信的系统和方法
US11050724B2 (en) * 2018-03-22 2021-06-29 Cisco Technology, Inc. IaaS-aided access control for information centric networking with Internet-of-Things
US10965653B2 (en) * 2018-03-28 2021-03-30 Xaptum, Inc. Scalable and secure message brokering approach in a communication system
CN110581763B (zh) 2018-06-09 2022-07-15 成都零光量子科技有限公司 一种量子密钥服务区块链网络系统
US11507676B2 (en) * 2018-06-26 2022-11-22 Sri International Selectively sharing data in unstructured data containers
US11019098B2 (en) * 2018-06-29 2021-05-25 Intel Corporation Replay protection for memory based on key refresh
US11005828B1 (en) * 2018-11-19 2021-05-11 Bae Systems Information And Electronic Systems Integration Inc. Securing data at rest
US11265300B1 (en) * 2018-12-29 2022-03-01 Whatsapp Llc Methods and systems for transmitting anonymized information
US11082235B2 (en) * 2019-02-14 2021-08-03 Anchor Labs, Inc. Cryptoasset custodial system with different cryptographic keys controlling access to separate groups of private keys
US20200142735A1 (en) 2019-09-28 2020-05-07 Intel Corporation Methods and apparatus to offload and onload workloads in an edge environment

Also Published As

Publication number Publication date
GB202310748D0 (en) 2023-08-30
JP2024503327A (ja) 2024-01-25
US11743241B2 (en) 2023-08-29
GB2617757B (en) 2024-03-06
US20220210139A1 (en) 2022-06-30
CN116746114A (zh) 2023-09-12
WO2022144663A1 (en) 2022-07-07
GB2617757A (en) 2023-10-18

Similar Documents

Publication Publication Date Title
DE102012219155B4 (de) Verschlüsseln von Datenobjekten zur Datensicherung
DE112021001766B4 (de) Inhaltskontrolle durch datenaggregationsdienste dritter
DE112018004390B4 (de) Sichere zugriffsverwaltung für werkzeuge innerhalb einer sicheren umgebung
DE102019123253A1 (de) System und einrichtung für datenvertraulichkeit im distributed ledger
DE112021004937T5 (de) Sicheres erneutes verschlüsseln von homomorph verschlüsselten daten
DE112018004332B4 (de) Hinauszögern von entropieausschöpfung in schlüsselverwaltungssystemen mit hardware-sicherheitsmodulen
DE112018003544T5 (de) Anonyme verschlüsselte daten
DE102017126706A1 (de) System von Enklaven
DE112014000584T5 (de) Erreichen von Speichereffizienz bei durchgängiger Verschlüsselung unter Verwendung von nachgelagerten (Downstream-)Decryptern
DE112012002741T5 (de) Identitäts- und Berechtigungsprüfungsverfahren für die Sicherheit einer Cloud-Datenverarbeitungsplattform
DE202013012514U1 (de) Protokollstrukturierte Datenträgerverschlüsselung bei virtuellen Maschinen
DE112021006008T5 (de) Sichere übertragung grosser datenmengen
DE102011077218B4 (de) Zugriff auf in einer Cloud gespeicherte Daten
DE112020005625T5 (de) Binden sicherer objekte eines sicherheitsmoduls an einen sicheren gast
DE112016000790B4 (de) Instanziierung von Broadcast-Verschlüsselungsschemata zur Laufzeit
DE112020000134T5 (de) Sicherer, mehrstufiger zugriff auf verschleierte daten für analysen
DE112020002164T5 (de) Sichere datenspeicherung auf der grundlage von verschleierung durch verteilung
DE102016105062A1 (de) Nähengestützte Berechtigungsprüfung für einheitenübergreifend verteilte Daten
DE112021003270T5 (de) Deduplizierung von mit mehreren schlüsseln verschlüsselten daten
DE112020003357T5 (de) Undurchsichtige verschlüsselung für datendeduplizierung
DE112021002747T5 (de) Sicheres wiederherstellen von geheimen schlüsseln
DE112021006372T5 (de) Sichere bereitstellung einer datenverarbeitungsressource unter verwendung einer homomorphen verschlüsselung
DE112020002343T5 (de) Verteilung von Sicherheitsberechtigungsnachweisen
DE112021001764T5 (de) Ermitteln eines urhebers eines verschlüsselten objekts
DE112022004045T5 (de) Verwalten von proprietären strukturierten objekten

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R084 Declaration of willingness to licence