DE112021005979T5 - Sichere gemeinsame nutzung von speicher - Google Patents

Sichere gemeinsame nutzung von speicher Download PDF

Info

Publication number
DE112021005979T5
DE112021005979T5 DE112021005979.3T DE112021005979T DE112021005979T5 DE 112021005979 T5 DE112021005979 T5 DE 112021005979T5 DE 112021005979 T DE112021005979 T DE 112021005979T DE 112021005979 T5 DE112021005979 T5 DE 112021005979T5
Authority
DE
Germany
Prior art keywords
key
data
encrypted data
source node
node
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
DE112021005979.3T
Other languages
English (en)
Inventor
Steven Robert Hetzler
Guerney Hunt
Charles Johns
James Kahle
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 DE112021005979T5 publication Critical patent/DE112021005979T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories

Abstract

Ein durch einen Computer ausgeführtes Verfahren umfasst ein Empfangen, durch einen Quellenknoten, einer Anforderung von einem Zielknoten für Daten, die in einer durch den Quellenknoten kontrollierten Region eines gemeinsam genutzten Speichers gespeichert sind. Die Daten sind in einem lokalen Schlüssel des Quellenknotens verschlüsselt. Das Verfahren umfasst ein Entschlüsseln, durch den Quellenknoten, der lokal verschlüsselten Daten unter Verwendung des lokalen Schlüssels und ein Verschlüsseln, durch den Quellenknoten, der entschlüsselten Daten unter Verwendung eines ersten Schlüssels, um erste verschlüsselte Daten zu erzeugen. Das Verfahren umfasst auch ein Verschlüsseln, durch den Quellenknoten, der ersten verschlüsselten Daten unter Verwendung eines zweiten Schlüssels, um zweite verschlüsselte Daten zu erzeugen, und ein Senden, durch den Quellenknoten, der zweiten verschlüsselten Daten an den Zielknoten.

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Erfindung betrifft im Allgemeinen eine sichere gemeinsame Nutzung von Speicher unter Verwendung von Speichersystemen und insbesondere sichere Codeumsetzer, um eine gemeinsame Nutzung von Speicher in Cloud-Speichersystemen und Netzwerken sicherzustellen.
  • HINTERGRUND
  • Es ist wünschenswert, in einem gemeinsam genutzten Speicher gespeicherte 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.
  • Bei 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 das Ziel 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 in einem gemeinsam genutzten Speicher 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.
  • KURZDARSTELLUNG
  • Ein durch einen Computer ausgeführtes Verfahren, gemäß einem Aspekt, umfasst ein Empfangen, durch einen Quellenknoten, einer Anforderung von einem Zielknoten für Daten, die in einer durch den Quellenknoten kontrollierten Region eines gemeinsam genutzten Speichers gespeichert sind. Die Daten sind in einem lokalen Schlüssel des Quellenknotens verschlüsselt. Das Verfahren umfasst ein Entschlüsseln, durch den Quellenknoten, der lokal verschlüsselten Daten unter Verwendung des lokalen Schlüssels und ein Verschlüsseln, durch den Quellenknoten, der entschlüsselten Daten unter Verwendung eines ersten Schlüssels, um erste verschlüsselte Daten zu erzeugen. Das Verfahren umfasst auch ein Verschlüsseln, durch den Quellenknoten, der ersten verschlüsselten Daten unter Verwendung eines zweiten Schlüssels, um zweite verschlüsselte Daten zu erzeugen, und ein Senden, durch den Quellenknoten, der zweiten verschlüsselten Daten an den Zielknoten. Dieser Aspekt ermöglicht vorteilhaft eine gemeinsame Nutzung und Handhabung von Speicherbereichen innerhalb eines lokalen Speichers.
  • Das durch einen Computer ausgeführte Verfahren, gemäß einem optionalen Aspekt, umfasst, dass die Region des gemeinsam genutzten Speichers durch eine Mehrzahl von Zielknoten angefordert wird. Mindestens zwei der Zielknoten sind jeweils einem anderen zweiten Schlüssel zugeordnet. Dieser optionale Aspekt bietet den Vorteil von getrennten Richtlinien für eine gemeinsame Nutzung für jeden Zielknoten und ermöglicht dem Quellenknoten, den Zugriff für jeden Zielknoten unabhängig zu kontrollieren.
  • Ein Computerprogrammprodukt, gemäß einem 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 zur Durchführung des vorstehenden Verfahrens.
  • Ein durch einen Computer ausgeführtes Verfahren, gemäß einem weiteren Aspekt, umfasst ein Empfangen, durch einen Zielknoten, 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 Zielknoten, des zweiten Schlüssels und ein Empfangen, durch den Zielknoten, des ersten Schlüssels. Das Verfahren umfasst auch ein Entschlüsseln, durch den Zielknoten, der zweiten verschlüsselten Daten unter Verwendung des zweiten Schlüssels, um die ersten verschlüsselten Daten zu erhalten, und ein Entschlüsseln, durch den Zielknoten, der ersten verschlüsselten Daten unter Verwendung des ersten Schlüssels, um die Daten zu erhalten. Dieser Aspekt passt das Lade-/ Speichermodell für Speicher vorteilhaft an, um die Möglichkeit bereitzustellen, den Zugriff auf Daten im Speicher zwischen einem Quellenknoten und einem Zielknoten freizugeben.
  • Das durch einen Computer ausgeführte Verfahren, gemäß einem optionalen Aspekt, umfasst, dass der erste Schlüssel von einem Schlüsselmanager empfangen wird. Dieser optionale Aspekt bietet den Vorteil eines Schlüsselmanagers, der die Richtlinie für eine gemeinsame Nutzung zwischen dem Zielknoten und dem Quellenknoten ausführt.
  • Ein durch einen Computer ausgeführtes Verfahren, gemäß einem weiteren Aspekt, umfasst ein Empfangen, durch einen Zielknoten, 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. Der erste Schlüssel ist einer Region des Speichers zugeordnet, die durch einen Quellenknoten kontrolliert wird. Der zweite Schlüssel ist dem Zielknoten zugeordnet. Das Verfahren umfasst ein Empfangen, durch den Zielknoten, des zweiten Schlüssels und ein Empfangen, durch den Zielknoten, des ersten Schlüssels. Das Verfahren umfasst auch ein Entschlüsseln, durch den Zielknoten, der zweiten verschlüsselten Daten unter Verwendung des zweiten Schlüssels, um die ersten verschlüsselten Daten zu erhalten, und ein Entschlüsseln, durch den Zielknoten, der ersten verschlüsselten Daten unter Verwendung des ersten Schlüssels, um die Daten zu erhalten. Dieser Aspekt vereinfacht vorteilhaft eine gemeinsame Nutzung zwischen dem Zielknoten und dem Quellenknoten, indem Sicherheit vor Datenlecks hinzukommt und die Zugriffskontrolle dem Quellenknoten übergeben wird.
  • Das durch einen Computer ausgeführte Verfahren, gemäß einem optionalen Aspekt, umfasst, dass der zweite Schlüssel von dem Quellenknoten empfangen wird. Dieser optionale Aspekt bietet den Vorteil, dass dem Quellenknoten ermöglicht wird, die letztendliche Kontrolle über die gemeinsame Nutzung zwischen dem Zielknoten und dem Quellenknoten zu behalten.
  • Ein durch einen Computer ausgeführtes Verfahren, gemäß einem weiteren 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 einer durch einen Quellenknoten kontrollierten Region eines gemeinsam genutzten Speichers gespeichert sind. Die Daten werden in einem ersten Schlüssel verschlüsselt, um erste verschlüsselte Daten zu erstellen, die 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, ein Senden, durch den Codeumsetzer, des dritten Schlüssels an einen Zielknoten und ein Senden, durch den Codeumsetzer, der dritten verschlüsselten Daten an den Zielknoten. Dieser Aspekt ermöglicht dem Zielknoten vorteilhaft, so lange auf Daten zuzugreifen und sie zu entschlüsseln, wie der Codeumsetzer dies dem Zielknoten gemäß einer zwischen dem Quellenknoten und dem Codeumsetzer festgelegten Richtlinie für eine gemeinsame Nutzung gestattet.
  • Das durch einen Computer ausgeführte Verfahren, gemäß einem optionalen Aspekt, umfasst, dass der dritte Schlüssel von einem Codeumsetzer-Manager empfangen wird. Dieser optionale Aspekt bietet den Vorteil, dass dem Manager des sicheren Codeumsetzers ermöglicht wird, verhältnismäßig schwierige Funktionen für den/die Codeumsetzer durchzuführen, wie beispielsweise das Erzeugen der Schlüssel, und er sorgt dafür, dass verhältnismäßig einfache Funktionen über die sicheren Codeumsetzer mit dem Speicher verbunden bleiben.
  • 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.
  • Figurenliste
    • 1 stellt eine Cloud-Computing-Umgebung gemäß einem Aspekt der vorliegenden Erfindung dar.
    • 2 stellt Abstraktionsmodellschichten gemäß einem Aspekt der vorliegenden Erfindung dar.
    • 3 ist eine Darstellung einer allgemeinen Architektur gemäß einem Aspekt der vorliegenden Erfindung.
    • 4 ist eine Darstellung einer allgemeinen Architektur gemäß einem Aspekt der vorliegenden Erfindung.
    • Die 5A bis 5D sind Darstellungen von allgemeinen Architekturen gemäß einem Aspekt der vorliegenden Erfindung.
    • 6 ist ein Ablaufplan eines Verfahrens gemäß einem Aspekt der vorliegenden Erfindung.
    • 7 ist ein Ablaufplan eines Verfahrens gemäß einem Aspekt der vorliegenden Erfindung.
    • 8 ist ein Ablaufplan eines Verfahrens gemäß einem Aspekt der vorliegenden Erfindung.
    • 9 ist ein Ablaufplan eines Verfahrens gemäß einem Aspekt 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 Aspekte der Freigabe des Zugriffs auf einen durch einen Quellenknoten kontrollierten Speicher an einen oder mehrere Zielknoten, vorzugsweise unter Verwendung eines Codeumsetzers, um den Zielknoten mit Zugriff auf den Speicher, ohne Zugriff auf den/die geheimen Schlüssel der Quelle zur Entschlüsselung des Speichers, auszustatten.
  • In einem allgemeinen Aspekt umfasst ein durch einen Computer ausgeführtes Verfahren ein Empfangen, durch einen Quellenknoten, einer Anforderung von einem Zielknoten für Daten, die in einer durch den Quellenknoten kontrollierten Region eines gemeinsam genutzten Speichers gespeichert sind. Die Daten sind in einem lokalen Schlüssel des Quellenknotens verschlüsselt. Das Verfahren umfasst ein Entschlüsseln, durch den Quellenknoten, der lokal verschlüsselten Daten unter Verwendung des lokalen Schlüssels und ein Verschlüsseln, durch den Quellenknoten, der entschlüsselten Daten unter Verwendung eines ersten Schlüssels, um erste verschlüsselte Daten zu erzeugen. Das Verfahren umfasst auch ein Verschlüsseln, durch den Quellenknoten, der ersten verschlüsselten Daten unter Verwendung eines zweiten Schlüssels, um zweite verschlüsselte Daten zu erzeugen, und ein Senden, durch den Quellenknoten, der zweiten verschlüsselten Daten an den Zielknoten.
  • In einem weiteren allgemeinen Aspekt 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 einem weiteren allgemeinen Aspekt umfasst ein durch einen Computer ausgeführtes Verfahren ein Empfangen, durch einen Zielknoten, 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 Zielknoten, des zweiten Schlüssels und ein Empfangen, durch den Zielknoten, des ersten Schlüssels. Das Verfahren umfasst auch ein Entschlüsseln, durch den Zielknoten, der zweiten verschlüsselten Daten unter Verwendung des zweiten Schlüssels, um die ersten verschlüsselten Daten zu erhalten, und ein Entschlüsseln, durch den Zielknoten, der ersten verschlüsselten Daten unter Verwendung des ersten Schlüssels, um die Daten zu erhalten.
  • In einem weiteren allgemeinen Aspekt umfasst ein durch einen Computer ausgeführtes Verfahren ein Empfangen, durch einen Zielknoten, 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. Der erste Schlüssel ist einer Region des Speichers zugeordnet, die durch einen Quellenknoten kontrolliert wird. Der zweite Schlüssel ist dem Zielknoten zugeordnet. Das Verfahren umfasst ein Empfangen, durch den Zielknoten, des zweiten Schlüssels und ein Empfangen, durch den Zielknoten, des ersten Schlüssels. Das Verfahren umfasst auch ein Entschlüsseln, durch den Zielknoten, der zweiten verschlüsselten Daten unter Verwendung des zweiten Schlüssels, um die ersten verschlüsselten Daten zu erhalten, und ein Entschlüsseln, durch den Zielknoten, der ersten verschlüsselten Daten unter Verwendung des ersten Schlüssels, um die Daten zu erhalten.
  • In einem weiteren allgemeinen Aspekt 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 einer durch einen Quellenknoten kontrollierten Region eines gemeinsam genutzten Speichers gespeichert sind. Die Daten werden in einem ersten Schlüssel verschlüsselt, um erste verschlüsselte Daten zu erstellen, die 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, ein Senden, durch den Codeumsetzer, des dritten Schlüssels an einen Zielknoten und ein Senden, durch den Codeumsetzer, der dritten verschlüsselten Daten an den Zielknoten.
  • 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. Vielmehr können Aspekte der vorliegenden Erfindung gemeinsam mit jedem beliebigen weiteren Typ 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 Aspekte 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 gemeinsame Nutzung von Speicher 96.
  • Verschiedene Aspekte der vorliegenden Erfindung umfassen die Freigabe des Zugriffs auf Daten im Speicher zwischen einem Quellenknoten und einem Zielknoten. In bevorzugten Aspekten verwendet der Quellenknoten einen lokalen Schlüssel, um die in einem lokalen Speicher gespeicherten Daten zu verschlüsseln. Für den gemeinsam zu nutzenden Speicher werden die Daten von dem lokalen Schlüssel entschlüsselt und dann 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.
  • Mindestens einige Aspekte der vorliegenden Erfindung umfassen die Freigabe des Zugriffs auf Daten im Speicher 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 Aspekten 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 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, und der Zielknoten kann auf die nicht verschlüsselten Daten unter Verwendung des ersten Schlüssels und des dritten Schlüssels zugreifen.
  • Mindestens einige der Aspekte der vorliegenden Erfindung passen das Lade-/ Speichermodell für Speicher an, um die Möglichkeit bereitzustellen, den Zugriff auf Daten im Speicher zwischen einem Quellenknoten und einem Zielknoten freizugeben. Zum Beispiel befassen sich verschiedene hierin offenbarte Operationen mit einer gemeinsamen Nutzung von lokalem Speicher, der Handhabung von Speicherbereichen mit mehreren Zielen, der Codeumsetzung von Speichercontrollern usw.
  • Vorteilhafterweise ermöglichen mindestens einige Aspekte der vorliegenden Erfindung dem Zielknoten, so lange auf Daten zuzugreifen und sie zu entschlüsseln, wie der Codeumsetzer dies dem Zielknoten gestattet (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 einfachen Daten, und der Zielknoten wird an einem zukünftigen Zugriff auf die Daten gehindert, sobald die Richtlinie für eine gemeinsame Nutzung geändert wird.
  • Mindestens einige der hierin beschriebenen Aspekte 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äß der vorliegenden Erfindung in verschiedenen Konfigurationen in beliebigen der Umgebungen, die unter anderem in den 1 bis 2 und 4 bis 9 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 lokalen Speicher 304 des Quellenknotens und einen Zielknoten 306 aufweist. In verschiedenen Ansätzen wird ein Bereich des lokalen Speichers 304 des Quellenknotens zwischen dem Quellenknoten 302 und dem Zielknoten 306 gemeinsam genutzt. Der Quellenknoten 302 umfasst eine Quellenknoten-Berechnungsfunktion 308 und einen Quellenknoten-Speichercontroller 310. Die Quellenknoten-Berechnungsfunktion 308 weist einen Verschlüsselungsschlüssel 312 des lokalen Speichers des Quellenknotens (z.B. den lokalen Schlüssel) auf, der mit der Verschlüsselungs-/Entschlüsselungsfunktion 314 des lokalen Schlüssels des Quellenknotens verwendet wird, um Daten im lokalen Speicher 304 des Quellenknotens zu verschlüsseln und zu entschlüsseln. 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. In bevorzugten Aspekten ist der Verschlüsselungsschlüssel 312 des lokalen Speichers des Quellenknotens nicht gemeinsam nutzbar (z.B. wird der Verschlüsselungsschlüssel 312 des lokalen Speichers des Quellenknotens 312 sicher gespeichert, so dass er durch die Verschlüsselungs-/ Entschlüsselungsfunktion 314 des lokalen Schlüssels des Quellenknotens verwendet werden kann, jedoch ist der Verschlüsselungsschlüssel 312 des lokalen Speichers des Quellenknotens nicht extrahierbar). Ein beliebiger lokaler Schlüssel (z.B. ein lokaler Verschlüsselungsschlüssel) kann ephemer sein, da ein Stromausfall des Speichers (lokal oder fern) den lokalen Schlüssel, die in dem Speicher gespeicherten Daten usw. schreddert oder auf andere Weise zerstört.
  • Der Quellenknoten 302 weist eine Funktion 316 des Quellenknotens zur Verwaltung der gemeinsamen Nutzung, eine Richtlinie 318 für eine gemeinsame Nutzung, einen ersten Schlüssel 322, einen Schlüsselgenerator 320 und einen zweiten Schlüssel 324 auf. Der Quellenknoten 302 weist eine Verschlüsselungs-/Entschlüsselungsfunktion 326 des ersten Schlüssels des Quellenknotens und eine Verschlüsselungs-/Entschlüsselungsfunktion 328 des zweiten Schlüssels des Quellenknotens auf. In verschiedenen Ansätzen erzeugt der Schlüsselgenerator 320 den zweiten Schlüssel 324. Der zweite Schlüssel 324 kann in einigen Ansätzen durch den Quellenknoten 302 erzeugt werden. In weiteren Ansätzen kann der zweite Schlüssel 324 durch den Zielknoten 306 erzeugt werden. In bevorzugten Aspekten wird der zweite Schlüssel 324 durch den Schlüsselgenerator 320 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 (wie beispielsweise einen Schlüsselmanager 338) erzeugt und/oder verwaltet werden, wie es für einen Fachmann beim Lesen der vorliegenden Offenbarung offensichtlich werden dürfte.
  • Der Zielknoten 306 umfasst einen lokalen Speicher 330 des Zielknotens, eine Zielknoten-Berechnungsfunktion 332, einen Zielknoten-Speichercontroller 334 und eine Funktion 336 des Zielknotens zur Verwaltung der gemeinsamen Nutzung.
  • Eine beispielhafte Ausführung der Architektur 300 wird unter Bezugnahme auf die Pfeile von 3 beschrieben. Vorzugsweise erstellt der Quellenknoten 302 die Richtlinie 318 für eine gemeinsame Nutzung, bevor ein Bereich des lokalen Speichers 304 des Quellenknotens gemeinsam genutzt wird. Die Richtlinie 318 für eine gemeinsame Nutzung kann Informationen wie beispielsweise den/die gemeinsam zu nutzenden Speicherbereich(e), den/die Zielknoten, mit dem/denen eine gemeinsame Nutzung erfolgen soll, den zulässigen Zugriff auf den Speicher einschließlich der Dauer, zulässige Schreib-/ Leseoperationen, die Anzahl der zulässigen Operationen usw. oder eine beliebige Kombination daraus umfassen. In verschiedenen Ansätzen kann die Richtlinie 318 umfassen, welche Regionen des gemeinsam genutzten Speichers zwischen welchen Entitäten gemeinsam genutzt werden dürfen, sie kann einen Zeitraum für eine Dauer der gemeinsamen Nutzung zwischen beliebigen Entitäten, eine Anzahl von Operationen, die einer Dauer der gemeinsamen Nutzung zwischen beliebigen Entitäten zugeordnet ist, den Typ der Operationen, der einer Dauer der gemeinsamen Nutzung zwischen beliebigen Entitäten zugeordnet ist, eine Menge der Daten, die je Dauer der gemeinsamen Nutzung zwischen beliebigen Entitäten gemeinsam genutzt werden darf usw. umfassen. In verschiedenen Ansätzen kann die Richtlinie 318 die Zugriffstypen (z.B. Lesen, Schreiben, Lesen/Schreiben usw.) festlegen, die der Zielknoten 306 auf gemeinsam genutzte Daten hat. Jedwede Versuche, auf gemeinsam genutzte Daten zuzugreifen, die nicht mit der Richtlinie 318 vereinbar (z.B. ungültig) sind, werden auf eine Weise zurückgewiesen, die für einen Fachmann beim Lesen der vorliegenden Offenbarung offensichtlich werden dürfte. Wenn zum Beispiel dem angeforderten Bereich kein Schlüssel zugeordnet ist oder der angeforderte Bereich nicht von der Richtlinie gedeckt ist, gibt der Schlüsselmanager keinen ersten Schlüssel für die Anforderung zurück, wie nachstehend beschrieben ist. In einem weiteren Beispiel kann in einer Mehrzahl von Zielknoten, die dieselbe oder eine andere Speicherregion anfordern, ein Zielknoten Lesezugriff haben (gemäß seiner Richtlinie für eine gemeinsame Nutzung), ein anderer Zielknoten kann Schreibzugriff (gemäß seiner Richtlinie für eine gemeinsame Nutzung) und ein dritter Zielknoten kann Schreib-/Lesezugriff haben (gemäß seiner Richtlinie für eine gemeinsame Nutzung). Jeder Zielknoten kann eine gesonderte Richtlinie für eine gemeinsame Nutzung haben, die unabhängig von der Anzahl der Anforderungen sein kann, die jeder Zielknoten stellen darf. Die Richtlinie für eine gemeinsame Nutzung kann in einigen Ansätzen unabhängig von dem Typ des Zugriffs und/oder auf die Anzahl der Anforderungen dieses Typs, die zulässig sind, beschränkt sein.
  • Verschiedene, hierin beschriebene Aspekte gehen davon aus, dass die Datenanforderung zulässig (z.B. gültig) ist. Vorzugsweise authentifizieren sich der Quellenknoten 302 und der Zielknoten 306 gegenseitig, um die Identität des jeweils anderen zu bestätigen, bevor ein Bereich des lokalen Speichers 304 des Quellenknotens gemeinsam genutzt wird. In einem Ansatz authentifizieren sich die Funktion 316 des Quellenknotens zur Verwaltung der gemeinsamen Nutzung und die Funktion 336 des Zielknotens zur Verwaltung der gemeinsamen Nutzung gegenseitig, um die Identität der jeweils anderen zu bestätigen (z.B. die Identität des Quellenknotens 302 und die Identität des Zielknotens 306). 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 Aufbaus von sicheren Übertragungsverbindungen zwischen den Parteien sein. In bevorzugten Aspekten sind alle Übertragungsverbindungen sicher (z.B. verschlüsselt).
  • Der Quellenknoten 302 fordert einen ersten Schlüssel 322 von dem Schlüsselmanager 338 an, der einen Satz von ersten Schlüsseln 340 erstellt und pflegt. Der Schlüsselgenerator 320 erstellt einen zweiten Schlüssel 324. Der zweite Schlüssel 324 ist vorzugsweise temporal (z.B. kann der zweite Schlüssel 324 durch den Quellenknoten 302 als Reaktion darauf geschreddert werden, dass die Richtlinie für eine gemeinsame Nutzung mit dem Zielknoten 306 beendet wird). Der Quellenknoten 302 teilt dem Schlüsselmanager 338 mit, dem Zielknoten 306 den Zugriff auf den ersten Schlüssel 322 gemäß der Richtlinie 318 zu gestatten. In mindestens einigen Ansätzen kann sich die Richtlinie 318 in dem Schlüsselmanager 338 befinden. In einem weiteren Ansatz kann sich die Richtlinie 318 in einem Richtlinienmanager (nicht gezeigt) befinden, der sich außerhalb des Quellenknotens 302 befindet. Der Zielknoten 306 fordert den ersten Schlüssel 322 von dem Schlüsselmanager 338 bei einer Operation 342 an. Der Zielknoten 306 speichert den ersten Schlüssel 322 in einem Erster-Schlüssel-Speicher 344. Der Quellenknoten 302 sendet eine Kopie des zweiten Schlüssels 324 in einer Operation 346 an den Zielknoten 306. Der Zielknoten 306 speichert den zweiten Schlüssel 324 in einem Zweiter-Schlüssel-Speicher 348. Der/die einem Schlüssel zugeordnete(n) Speicherbereich(e) kann/können auch in dem Schlüsselmanager 338 auf eine Weise gespeichert sein, die für einen Fachmann offensichtlich werden dürfte. Zum Beispiel kann jeder erste Schlüssel 322 in dem Satz von ersten Schlüsseln 340 einem Bereich des lokalen Speichers 304 des Quellenknotens zugeordnet sein. Als Reaktion auf ein Empfangen einer Anforderung von dem Zielknoten 306 für in dem lokalen Speicher 304 des Quellenknotens gespeicherte Daten sendet der Schlüsselmanager 338 einen entsprechenden ersten Schlüssel 322 für den Bereich von Daten, welcher der Anforderung zugeordnet ist.
  • In bevorzugten Ausführungen entschlüsselt, wenn der Zielknoten 306 eine Leseoperation aus der Region des gemeinsam genutzten Speichers (z.B. des lokalen Speichers 304 des Quellenknotens) durchführt, die Verschlüsselungs-/ Entschlüsselungsfunktion 314 des lokalen Schlüssels des Quellenknotens die Daten unter Verwendung des Verschlüsselungsschlüssels 312 des lokalen Speichers des Quellenknotens. Die Verschlüsselungs-/Entschlüsselungsfunktion 326 des ersten Schlüssels des Quellenknotens verschlüsselt die unverschlüsselten Daten unter Verwendung des ersten Schlüssels 322, um erste verschlüsselte Daten (z.B. in dem ersten Schlüssel 322 verschlüsselte Daten) zu erhalten. Die ersten verschlüsselten Daten werden dann durch die Verschlüsselungs-/Entschlüsselungsfunktion 328 des zweiten Schlüssels des Quellenknotens unter Verwendung des zweiten Schlüssels 324 verschlüsselt, um zweite verschlüsselte Daten (z.B. in dem ersten Schlüssel 322 und dann in dem zweiten Schlüssel 324 verschlüsselte Daten) zu erhalten. Die doppelt verschlüsselten Daten (z.B. die zweiten verschlüsselten Daten) werden in einer Operation 350 an den Zielknoten 306 gesendet.
  • Der Zielknoten 306 weist eine Verschlüsselungs-/Entschlüsselungsfunktion 352 des zweiten Schlüssels des Zielknotens und eine Verschlüsselungs-/Entschlüsselungsfunktion 354 des ersten Schlüssels des Zielknotens auf. In verschiedenen Ansätzen umfasst der Zielknoten einen Verschlüsselungsschlüssel 356 des lokalen Speichers des Zielknotens zur Verwendung mit einer Verschlüsselungs-/Entschlüsselungsfunktion 358 des lokalen Schlüssels des Zielknotens. Die Verschlüsselungs-/Entschlüsselungsfunktion 352 des zweiten Schlüssels des Zielknotens entschlüsselt die zweiten verschlüsselten Daten unter Verwendung des in dem Zweiter-Schlüssel-Speicher 348 gespeicherten zweiten Schlüssels 324, um erste verschlüsselte Daten (z.B. Daten, die nur in dem ersten Schlüssel 322 verschlüsselt sind) zu erhalten. Die Verschlüsselungs-/Entschlüsselungsfunktion 354 des ersten Schlüssels des Zielknotens entschlüsselt die ersten verschlüsselten Daten unter Verwendung des in dem Erster-Schlüssel-Speicher 344 gespeicherten ersten Schlüssels 322, um die unverschlüsselten Daten zu erhalten. In verschiedenen Ansätzen werden die einfachen Daten an den Zielknoten-Speichercontroller 334 ausgegeben. Die Verschlüsselungs-/Entschlüsselungsfunktion 358 des lokalen Schlüssels des Zielknotens kann die einfachen Daten unter Verwendung des Verschlüsselungsschlüssels 356 des lokalen Speichers des Zielknotens verschlüsseln. Die Daten, die jetzt in dem Verschlüsselungsschlüssel 356 des lokalen Speichers des Zielknotens verschlüsselt sind, können in dem lokalen Speicher 330 des Zielknotens gespeichert werden. In einem alternativen Ansatz können die entschlüsselten Daten (z.B. die einfachen Daten, die in keinem Schlüssel verschlüsselt sind) auf eine Weise an die Zielknoten-Berechnungsfunktion 332 gesendet werden, um daran Operationen durchzuführen, welche für einen Fachmann beim Lesen der vorliegenden Offenbarung offensichtlich werden dürfte.
  • Der Quellenknoten 302 kann dem Zielknoten 306 die Genehmigung zur gemeinsamen Nutzung jederzeit entziehen. In einigen Ansätzen teilt der Quellenknoten 302 dem Zielknoten 306 mit, dass die gemeinsame Nutzung beendet wurde. Als Reaktion auf die Beendigung der gemeinsamen Nutzung löscht der Zielknoten vorzugsweise die gespeicherten Kopien des ersten Schlüssels 322 und des zweiten Schlüssels 324. 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 den Zielknoten 306, den Schlüsselmanager 338, eine beliebige andere Komponente usw., oder eine beliebige Kombination daraus. In weiteren Ansätzen kann die Richtlinie für eine gemeinsame Nutzung durch eine Anforderung von dem Zielknoten 306 an den Quellenknoten 302 beendet werden.
  • In weiteren Ansätzen kann der Quellenknoten 302 die Genehmigung zur gemeinsamen Nutzung entziehen, indem er den zweiten Schlüssel 324 auf eine in der Technik bekannte Weise schreddert (z.B. löscht oder auf andere Weise zerstört). Ein Schreddern des zweiten Schlüssels 324 hindert den Zielknoten 306 an einem zukünftigen Zugriff auf einfachen Text aus dem lokalen Speicher 304 des Quellenknotens selbst dann, wenn der Zielknoten 306 ein Mittel findet, die Richtlinie 318 zu umgehen. Somit bleibt die Geheimhaltung selbst dann gewahrt, wenn sich der Zielknoten 306 ungebührlich verhält, indem er den in dem Erster-Schlüssel-Speicher 344 bzw. dem Zweiter-Schlüssel-Speicher 348 gespeicherten ersten Schlüssel 322 und zweiten Schlüssel 324 behält, nachdem die Richtlinie für eine gemeinsame Nutzung gemäß der Richtlinie 318 beendet wurde.
  • Nachdem der erste Schlüssel 322 durch den Schlüsselmanager 338 und der zweite Schlüssel 324 durch den Quellenknoten 302 geliefert wurde, kann der Quellenknoten 302 vorteilhafterweise die letztendliche Kontrolle über die gemeinsame Nutzung behalten. Wenn der zweite Schlüssel 324 dem Schlüsselmanager 338 nicht zur Verfügung steht, verfügt der Schlüsselmanager 338 nicht über genügend Informationen, um einem Zielknoten 306 den Zugriff auf die Daten in einer Region des gemeinsam genutzten Speichers zu ermöglichen. In weiteren Ansätzen kann der Satz von ersten Schlüsseln 340 für zusätzliche Sicherheit und Zugriffskontrolle in dem Quellenknoten 302 gespeichert werden.
  • 4 stellt eine allgemeine Architektur gemäß verschiedenen Konfigurationen dar. Die Architektur 400 kann gemäß der vorliegenden Erfindung in verschiedenen Konfigurationen in beliebigen der Umgebungen, die unter anderem in den 1 bis 3 und 5A bis 9 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.
  • 4 ist ein vereinfachter Aspekt, um mehrere Bereiche des lokalen Speichers eines Quellenknotens mit mehreren Zielknoten gemeinsam zu nutzen. Die Verwendung des ersten Schlüssels und des zweiten Schlüssels, wie in 3 beschrieben, vereinfacht vorteilhaft eine solche gemeinsame Nutzung, indem Sicherheit vor Datenlecks hinzukommt und die Zugriffskontrolle dem Quellenknoten übergeben wird.
  • Die Architektur 400 umfasst eine allgemeine Architektur, die einen Quellenknoten 402, einen lokalen Speicher 404 des Quellenknotens und eine Mehrzahl von Zielknoten aufweist. Die Zielknoten umfassen einen Zielknoten 1406, einen Zielknoten 2 408, einen Zielknoten 3 410 und einen Zielknoten 4412. Der Quellenknoten 402 nutzt 3 Regionen des lokalen Speichers 404 des Quellenknotens gemeinsam mit den 4 Zielknoten. Die erste Region des lokalen Speichers 404 des Quellenknotens wird mit dem Zielknoten 1 406 und dem Zielknoten 4 412 gemeinsam genutzt. Die zweite Region des lokalen Speichers 404 des Quellenknotens wird mit dem Zielknoten 2 408 gemeinsam genutzt. Die dritte Region des lokalen Speichers 404 des Quellenknotens wird mit dem Zielknoten 3 410 gemeinsam genutzt.
  • Der Quellenknoten 402 fordert 3 erste Schlüssel (einen ersten Schlüssel k1414, einen ersten Schlüssel k2 416, einen ersten Schlüssel k3 418) von dem Schlüsselmanager 420 an, einen ersten Schlüssel für jede Region des lokalen Speichers 404 des Quellenknotens. Im Einzelnen kann der erste Schlüssel k1 414 einer ersten Region des Speichers in dem lokalen Speicher 404 des Quellenknotens, der erste Schlüssel k2 416 kann einer zweiten Region des Speichers in dem lokalen Speicher 404 des Quellenknotens und der erste Schlüssel k3 418 kann einer dritten Region des Speichers in dem lokalen Speicher 404 des Quellenknotens entsprechen. Der Quellenknoten 402 erstellt 4 zweite Schlüssel (einen zweiten Schlüssel k1 422, einen zweiten Schlüssel k2 424, einen zweiten Schlüssel k3 426, einen zweiten Schlüssel k4 428), einen für jeden Zielknoten. Im Einzelnen kann der zweite Schlüssel k1422 dem Zielknoten 1406, der zweite Schlüssel k2 424 kann dem Zielknoten 2 408, der zweite Schlüssel k3 426 kann dem Zielknoten 3 410 und der zweite Schlüssel k4 428 kann dem Zielknoten 4 412 entsprechen. Der Quellenknoten 402 kann jeden der zweiten Schlüssel auf eine Weise an den zugeordneten Zielknoten senden, die für einen Fachmann beim Lesen der vorliegenden Offenbarung offensichtlich werden dürfte.
  • Es ist vorteilhaft, dass die ersten Schlüssel je gemeinsam genutzter Region und die zweiten Schlüssel je Zielknoten unterschiedlich sind. Die unterschiedlichen ersten Schlüssel sorgen dafür, dass die Datenregionen kryptografisch getrennt bleiben. Die unterschiedlichen zweiten Schlüssel ermöglichen es, dass die Richtlinien für eine gemeinsame Nutzung für jedesZiel getrennt kontrolliert werden. Zum Beispiel beendet ein Widerrufen eines ersten Schlüssels in bevorzugten Aspekten die gemeinsame Nutzung einer Region und ein Widerrufen eines zweiten Schlüssels beendet die gemeinsame Nutzung eines Zielknotens (z.B. die Dauer der gemeinsamen Nutzung zwischen dem Quellenknoten 402 und dem dem widerrufenen zweiten Schlüssel zugeordneten Zielknoten). Auf diese Weise wird der Zugriff auf die Daten in dem lokalen Speicher 404 des Quellenknotens für jeden Zielknoten und jede Region in dem Speicher unabhängig kontrolliert.
  • In einem alternativen Aspekt kann der Quellenknoten 402 Zielknoten zu Gruppen zusammenfassen. Jeder Gruppe von Zielknoten kann der Zugriff auf denselben Speicherbereich für die gleiche Zeitdauer gewährt werden. Eine beispielhafte Ausführung des vorstehenden Aspekts kann in einer Cloudumgebung verwendet werden, in der ein Unternehmen A Informationen mit einem Unternehmen B gemeinsam nutzt und die Zielknoten Einzelpersonen innerhalb des Unternehmens A darstellen. Wenn eines der beiden Unternehmen die Zusammenarbeit beendet, schreddert das Unternehmen A den der Zusammenarbeit zugeordneten zweiten Schlüssel. Alle Parteien im Unternehmen A, die auf der Grundlage der Zusammenarbeit auf die Informationen zugegriffen haben, verlieren den Zugriff.
  • Vorzugsweise fordert der Zielknoten 1406 vor der gemeinsamen Nutzung den ersten Schlüssel k1 414 von dem Schlüsselmanager420 in einer Operation 430 an und der Zielknoten 4 412 fordert den ersten Schlüssel k1 414 von dem Schlüsselmanager 420 in einer Operation 432 an. Der Zielknoten 2 408 fordert den ersten Schlüssel k2 416 von dem Schlüsselmanager 420 in einer Operation 434 an. Der Zielknoten 3 410 fordert den ersten Schlüssel k3 418 von dem Schlüsselmanager 420 in einer Operation 436 an.
  • In der vorliegenden Ausführung kann eine Verschlüsselungs-/ Entschlüsselungsfunktion 438 des ersten Schlüssels des Quellenknotens beliebige der ersten Verschlüsselungsschlüssel (z.B. den ersten Schlüssel k1414, den ersten Schlüssel k2 416, den ersten Schlüssel k3 418) verwenden, um die entsprechende Region von in dem lokalen Speicher 404 des Quellenknotens gespeicherten Daten auf eine Weise zu verschlüsseln, die für einen Fachmann beim Lesen der vorliegenden Offenbarung offensichtlich werden dürfte. In weiteren Ansätzen kann eine Verschlüsselungs-/Entschlüsselungsfunktion (nicht gezeigt) des zweiten Schlüssels des Quellenknotens beliebige der zweiten Verschlüsselungsschlüssel (den zweiten Schlüssel k1422, den zweiten Schlüssel k2 424, den zweiten Schlüssel k3 426, den zweiten Schlüssel k4 428) verwenden, um die Daten für den entsprechenden Zielknoten auf eine Weise zu verschlüsseln, die für einen Fachmann beim Lesen der vorliegenden Offenbarung offensichtlich werden dürfte.
  • Für mit dem Zielknoten 1 406 gemeinsam genutzte Daten verschlüsselt die Verschlüsselungs-/Entschlüsselungsfunktion 438 des ersten Schlüssels des Quellenknotens die Daten in der ersten Region mit dem ersten Schlüssel k1414. Eine Verschlüsselungs-/ Entschlüsselungsfunktion 440 des zweiten Schlüssels k1 des Quellenknotens verschlüsselt die Daten in der ersten Region dann mit dem zweiten Schlüssel k1422, um zweite verschlüsselte Daten zu erhalten. Die zweiten verschlüsselten Daten (z.B. in dem ersten Schlüssel k1414 und dann in dem zweiten Schlüssel k1 422 verschlüsselte Daten) werden in einer Operation 442 an den Zielknoten 1 406 gesendet.
  • Für mit dem Zielknoten 2 408 gemeinsam genutzte Daten verschlüsselt die Verschlüsselungs-/Entschlüsselungsfunktion 438 des ersten Schlüssels des Quellenknotens die Daten in der zweiten Region mit dem ersten Schlüssel k2 416. Eine Verschlüsselungs-/ Entschlüsselungsfunktion 444 des zweiten Schlüssels k2 des Quellenknotens verschlüsselt die Daten in der zweiten Region dann mit dem zweiten Schlüssel k2 424, um zweite verschlüsselte Daten zu erhalten. Die zweiten verschlüsselten Daten (z.B. in dem ersten Schlüssel k2 416 und dann in dem zweiten Schlüssel k2 424 verschlüsselte Daten) werden in einer Operation 446 an den Zielknoten 2 408 gesendet.
  • Für mit dem Zielknoten 3 410 gemeinsam genutzte Daten verschlüsselt die Verschlüsselungs-/Entschlüsselungsfunktion 438 des ersten Schlüssels des Quellenknotens die Daten in der dritten Region mit dem ersten Schlüssel k3 418. Eine Verschlüsselungs-/ Entschlüsselungsfunktion 448 des zweiten Schlüssels k3 des Quellenknotens verschlüsselt die Daten in der dritten Region dann mit dem zweiten Schlüssel k3 426, um zweite verschlüsselte Daten zu erhalten. Die zweiten verschlüsselten Daten (z.B. in dem ersten Schlüssel k3 418 und dann in dem zweiten Schlüssel k3 426 verschlüsselte Daten) werden in einer Operation 450 an den Zielknoten 3 410 gesendet.
  • Für mit dem Zielknoten 4 412 gemeinsam genutzte Daten verschlüsselt die Verschlüsselungs-/Entschlüsselungsfunktion 438 des ersten Schlüssels des Quellenknotens die Daten in der ersten Region mit dem ersten Schlüssel k1414. Eine Verschlüsselungs-/ Entschlüsselungsfunktion 452 des zweiten Schlüssels k4 des Quellenknotens verschlüsselt die Daten in der ersten Region dann mit dem zweiten Schlüssel k4 428, um zweite verschlüsselte Daten zu erhalten. Die zweiten verschlüsselten Daten (z.B. in dem ersten Schlüssel k1414 und dann in dem zweiten Schlüssel k4 428 verschlüsselte Daten) werden in einer Operation 454 an den Zielknoten 4 410 gesendet.
  • Der Zielknoten 1406 umfasst eine Verschlüsselungs-/Entschlüsselungsfunktion 456 des zweiten Schlüssels des Zielknotens 1 und eine Verschlüsselungs-/ Entschlüsselungsfunktion 458 des ersten Schlüssels des Zielknotens 1. Als Reaktion auf ein Empfangen der zweiten verschlüsselten Daten (z.B. in dem ersten Schlüssel k1414 und dann in dem zweiten Schlüssel k1 422 verschlüsselte Daten) kann die Verschlüsselungs-/ Entschlüsselungsfunktion 456 des zweiten Schlüssels des Zielknotens 1 die zweiten verschlüsselten Daten unter Verwendung des zweiten Schlüssels k1422 entschlüsseln, um erste verschlüsselte Daten (z.B. in dem ersten Schlüssel k1 414 verschlüsselte Daten) zu erhalten. Die Verschlüsselungs-/Entschlüsselungsfunktion 458 des ersten Schlüssels des Zielknotens 1 kann die ersten verschlüsselten Daten dann unter Verwendung des ersten Schlüssels k1 414 entschlüsseln, um die Daten in Klartext zu erhalten.
  • Der Zielknoten 2 408 umfasst eine Verschlüsselungs-/Entschlüsselungsfunktion 460 des zweiten Schlüssels des Zielknotens 2 und eine Verschlüsselungs-/ Entschlüsselungsfunktion 462 des ersten Schlüssels des Zielknotens 2. Als Reaktion auf ein Empfangen der zweiten verschlüsselten Daten (z.B. in dem ersten Schlüssel k2 416 und dann in dem zweiten Schlüssel k2 424 verschlüsselte Daten) kann die Verschlüsselungs-/ Entschlüsselungsfunktion 460 des zweiten Schlüssels des Zielknotens 2 die zweiten verschlüsselten Daten unter Verwendung des zweiten Schlüssels k2 424 entschlüsseln, um erste verschlüsselte Daten (z.B. in dem ersten Schlüssel k2 416 verschlüsselte Daten) zu erhalten. Die Verschlüsselungs-/Entschlüsselungsfunktion 462 des ersten Schlüssels des Zielknotens 2 kann die ersten verschlüsselten Daten dann unter Verwendung des ersten Schlüssels k2 416 entschlüsseln, um die Daten in Klartext zu erhalten.
  • Der Zielknoten 3 410 umfasst eine Verschlüsselungs-/Entschlüsselungsfunktion 464 des zweiten Schlüssels des Zielknotens 3 und eine Verschlüsselungs-/ Entschlüsselungsfunktion 466 des ersten Schlüssels des Zielknotens 3. Als Reaktion auf ein Empfangen der zweiten verschlüsselten Daten (z.B. in dem ersten Schlüssel k3 418 und dann in dem zweiten Schlüssel k3 426 verschlüsselte Daten) kann die Verschlüsselungs-/ Entschlüsselungsfunktion 464 des zweiten Schlüssels des Zielknotens 3 die zweiten verschlüsselten Daten unter Verwendung des zweiten Schlüssels k3 426 entschlüsseln, um erste verschlüsselte Daten (z.B. in dem ersten Schlüssel k3 418 verschlüsselte Daten) zu erhalten. Die Verschlüsselungs-/Entschlüsselungsfunktion 466 des ersten Schlüssels des Zielknotens 3 kann die ersten verschlüsselten Daten dann unter Verwendung des ersten Schlüssels k3 418 entschlüsseln, um die Daten in Klartext zu erhalten.
  • Der Zielknoten 4 412 umfasst eine Verschlüsselungs-/Entschlüsselungsfunktion 468 des zweiten Schlüssels des Zielknotens 4 und eine Verschlüsselungs-/ Entschlüsselungsfunktion 470 des ersten Schlüssels des Zielknotens 4. Als Reaktion auf ein Empfangen der zweiten verschlüsselten Daten (z.B. in dem ersten Schlüssel k1414 und dann in dem zweiten Schlüssel k4 428 verschlüsselte Daten) kann die Verschlüsselungs-/ Entschlüsselungsfunktion 468 des zweiten Schlüssels des Zielknotens 4 die zweiten verschlüsselten Daten unter Verwendung des zweiten Schlüssels k4 428 entschlüsseln, um erste verschlüsselte Daten (z.B. in dem ersten Schlüssel k1 414 verschlüsselte Daten) zu erhalten. Die Verschlüsselungs-/Entschlüsselungsfunktion 470 des ersten Schlüssels des Zielknotens 4 kann die ersten verschlüsselten Daten dann unter Verwendung des ersten Schlüssels k1 414 entschlüsseln, um die Daten in Klartext zu erhalten.
  • Die Verwendung der unterschiedlichen zweiten Schlüssel, zum Beispiel des zweiten Schlüssels k1422 und des zweiten Schlüssels k4 428, ermöglicht dem Quellenknoten 402, den Zugriff auf die gemeinsame, gemeinsam genutzte Region des lokalen Speichers 404 des Quellenknotens einzeln zu kontrollieren. Zum Beispiel kann eine gemeinsame Nutzung mit dem Zielknoten 1406 durch den Quellenknoten 402 beendet werden, indem der zweite Schlüssel k1 422 geschreddert wird. Der Zielknoten 1406 kann Daten aus der gemeinsam genutzten Region selbst dann nicht entschlüsseln, wenn er seine eigene Kopie des zweiten Schlüssels (des zweiten Schlüssels k1422) und des ersten Schlüssels (des ersten Schlüssels k1 414) behält. Der Zielknoten 4 412, der gemeinsamen Zugriff auf die Region des lokalen Speichers 404 des Quellenknotens hatte, kann unter Verwendung des ersten Schlüssels k1 414 und seines eigenen zweiten Schlüssels (des zweiten Schlüssels k4 428) weiterhin auf die gemeinsam genutzte Region zugreifen.
  • Die 5A bis 5D stellen allgemeine Architekturen gemäß verschiedenen Konfigurationen dar. Die Architekturen 500 können gemäß der vorliegenden Erfindung in verschiedenen Konfigurationen in beliebigen der Umgebungen, die unter anderem in den 1 bis 4 und 6 bis 9 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.
  • Die 5A bis 5D stellen Varianten von allgemeinen Architekturen zur gemeinsamen Nutzung von Regionen von fernem Speicher dar, der durch einen Quellenknoten unter Verwendung einer sicheren Codeumsetzer-Funktion kontrolliert wird. Daher haben gemeinsame Merkmale eine gemeinsame Nummerierung, wie es für einen Fachmann beim Lesen der vorliegenden Offenbarung offensichtlich werden dürfte.
  • Die Architektur 500 von 5A umfasst einen Quellenknoten 502 und einen Zielknoten 504. Der Quellenknoten 502 umfasst eine Quellenknoten-Berechnungsressource 506 und eine Funktion 508 zur Verwaltung der gemeinsamen Nutzung des Quellenknotens. Der Quellenknoten 502 umfasst eine Verschlüsselungs-/Entschlüsselungsfunktion 510 des ersten Schlüssels des Quellenknotens und eine Verschlüsselungs-/Entschlüsselungsfunktion 512 des zweiten Schlüssels des Quellenknotens. Der Quellenknoten 502 weist einen Speichercontroller 514 des lokalen Speichers des Quellenknotens auf, der über eine Verschlüsselungs-/Entschlüsselungsfunktion 516 des lokalen Speichers des Quellenknotens verfügt, die einen Verschlüsselungsschlüssel 518 des lokalen Speichers des Quellenknotens verwendet. Der Quellenknoten ist vorzugsweise mit einem Schlüsselmanager 520 und einem lokalen Speicher 522 des Quellenknotens verbunden. Der Schlüsselmanager 520 speichert und verwaltet einen Satz von ersten Schlüsseln 524 und einen Satz von zweiten Schlüsseln 526. In einigen Ansätzen umfasst die Architektur 500 keinen Schlüsselmanager 520, und der Quellenknoten 502 pflegt den Satz von ersten Schlüsseln 524 und den Satz von zweiten Schlüsseln 526.
  • In verschiedenen Ansätzen fordert der Quellenknoten 502 einen ersten Schlüssel 528 des Satzes von ersten Schlüsseln 524 von dem Schlüsselmanager 520 an. Der Quellenknoten fordert auch einen zweiten Schlüssel 530 des Satzes von zweiten Schlüsseln 526 von dem Schlüsselmanager 520 an. Sowohl der erste Schlüssel 528 als auch der zweite Schlüssel 530 können durch den Quellenknoten 502 verwendet werden, um einen Bereich von in dem Speicher gespeicherten Daten mit dem Zielknoten 504 gemeinsam zu nutzen.
  • Eine Quellenknoten-Berechnungsressource 506 speichert Daten in dem lokalen Speicher 522 des Quellenknotens unter Verwendung des Speichercontrollers 514 des lokalen Speichers des Quellenknotens. Daten können bei ihrer Erstellung über einen Pfad 532 gespeichert werden. In bevorzugten Aspekten kann eine sichere Verschlüsselung für die Daten durch den Verschlüsselungsschlüssel 518 des lokalen Speichers des Quellenknotens bereitgestellt werden, der mit der Verschlüsselungs-/Entschlüsselungsfunktion 516 des lokalen Speichers des Quellenknotens verwendet wird, die Teil des Speichercontrollers 514 des lokalen Speichers des Quellenknotens sein kann. Der Verschlüsselungsschlüssel 518 des lokalen Speichers des Quellenknotens ist vorzugsweise ephemer.
  • Die Quellenknoten-Berechnungsressource 506 kann Daten auch in einem fernen Speicher 534 speichern. Der Quellenknoten 502 kann mit einem sicheren Codeumsetzer 536 und einem Manager 538 des sicheren Codeumsetzers verbunden sein. Der sichere Codeumsetzer 536 weist einen Zweiter-Schlüssel-Speicher 540 für den zweiten Schlüssel 530, einen Speichercontroller 542 eines sicheren Codeumsetzers, eine Verschlüsselungs-/ Entschlüsselungsfunktion 544 des zweiten Schlüssels des sicheren Codeumsetzers und eine Richtlinienverwaltungsfunktion 546 auf. Die Richtlinienverwaltungsfunktion 546 des sicheren Codeumsetzers 536 bietet den Vorteil, dass sie eine Fortsetzung der gemeinsamen Nutzung zwischen dem Quellenknoten 502 und dem Zielknoten 504 unter Verwendung des sicheren Codeumsetzers 536 selbst dann ermöglicht, wenn der sichere Codeumsetzer 536 von dem Manager 538 des sicheren Codeumsetzers entkoppelt wird (wodurch das System z.B. fehlertoleranter wird). In bevorzugten Aspekten schränkt der Zweite-Schlüssel-Speicher 540 für den zweiten Schlüssel 530 den Zugriff auf den gespeicherten zweiten Schlüssel 530 für die Verschlüsselungs-/Entschlüsselungsfunktion 544 des zweiten Schlüssels des sicheren Codeumsetzers ein. Der Manager 538 des sicheren Codeumsetzers kann in verschiedenen Ansätzen mit einer Mehrzahl von Codeumsetzern (nicht gezeigt) verbunden sein. Der Manager 538 des sicheren Codeumsetzers kann verhältnismäßig schwierige Funktionen für den/die Codeumsetzer vorteilhaft durchführen und dafür sorgen, dass verhältnismäßig einfache Funktionen über die sicheren Codeumsetzer mit dem Speicher verbunden bleiben.
  • Um den fernen Speicher gemeinsam zu nutzen, sind die ersten Schlüssel und die zweiten Schlüssel vorzugsweise persistent, wobei der Quellenknoten 502 und der ferne Speicher 534 unabhängig voneinander ausfallen können. Der Schlüsselmanager 520 stellt einen Ansatz zur dauerhaften Festlegung der Schlüssel dar.
  • Regionen des fernen Speichers 534 können zwischen dem Quellenknoten 502 und dem Zielknoten 504 gemeinsam genutzt werden. Die Richtlinienverwaltungsfunktion 546 auf dem sicheren Codeumsetzer 536 speichert Informationen der Richtlinie für eine gemeinsame Nutzung, stellt diese bereit und führt sie aus, wie in 3 und anderen FIGUREN beschrieben ist. Nachdem der Manager 538 des sicheren Codeumsetzers (z.B. unter Verwendung der Funktion 548 des Managers des sicheren Codeumsetzers) und der sichere Codeumsetzer 536 (z.B. unter Verwendung der Richtlinienverwaltungsfunktion 546) authentifiziert wurden, sendet der Quellenknoten 502 Bereichsbesitzinformationen an die Richtlinienverwaltungsfunktion 546. In bevorzugten Aspekten sendet der Quellenknoten 502 den zweiten Schlüssel 530 in einer Operation 552 sicher an den sicheren Codeumsetzer 536, und der sichere Codeumsetzer 536 speichert den zweiten Schlüssel 530 in dem Zweiter-Schlüssel-Speicher 540. Als Reaktion auf ein Bestätigen der Richtlinie und ein Authentifizieren des Zielknotens 504 unter Verwendung der Funktion 550 des Zielknotenmanagers sendet der Quellenknoten 502 in einer Operation 554 den ersten Schlüssel 528 an den Zielknoten 504, und der Zielknoten 504 speichert den ersten Schlüssel 528 in dem Erster-Schlüssel-Speicher 556. Ein Schlüsselgenerator 558 auf dem Manager 538 des sicheren Codeumsetzers erzeugt einen dritten Schlüssel 560 und sendet den dritten Schlüssel 560 in einer Operation 562 an den sicheren Codeumsetzer 536. In weiteren Ansätzen verwaltet und/oder erzeugt der sichere Codeumsetzer 536 den dritten Schlüssel 560 ohne den Manager 538 des sicheren Codeumsetzers. Der sichere Codeumsetzer 536 speichert den dritten Schlüssel 560 vorzugsweise im Dritter-Schlüssel-Speicher 564 des sicheren Codeumsetzers.
  • Wenn der Quellenknoten 502 Daten in den fernen Speicher 534 schreibt, werden die Daten zuerst durch die Verschlüsselungs-/Entschlüsselungsfunktion 510 des ersten Schlüssels des Quellenknotens unter Verwendung des ersten Schlüssels 528 verschlüsselt, um erste verschlüsselte Daten (z.B. in dem ersten Schlüssel 528 verschlüsselte Daten) zu erhalten. Die ersten verschlüsselten Daten werden dann durch die Verschlüsselungs-/ Entschlüsselungsfunktion 512 des zweiten Schlüssels des Quellenknotens unter Verwendung des zweiten Schlüssels 530 verschlüsselt, um zweite verschlüsselte Daten (z.B. in dem ersten Schlüssel 528 und dann in dem zweiten Schlüssel 530 verschlüsselte Daten) zu erhalten. Die zweiten verschlüsselten Daten werden in einer Operation 566 an den sicheren Codeumsetzer 536 gesendet. Der sichere Codeumsetzer 536 kann die zweiten verschlüsselten Daten in dem fernen Speicher 534 speichern.
  • Wenn der Zielknoten 504 eine Leseoperation aus der gemeinsam genutzten Region des fernen Speichers 534 durchführt, entschlüsselt die Verschlüsselungs-/ Entschlüsselungsfunktion 544 des zweiten Schlüssels des sicheren Codeumsetzers die zweiten verschlüsselten Daten unter Verwendung des zweiten Schlüssels 530, um die ersten verschlüsselten Daten (z.B. in dem ersten Schlüssel 528 verschlüsselte Daten) zu erhalten. Der sichere Codeumsetzer 536 hat keinen Zugriff auf die Daten in Klartext, wobei der sichere Codeumsetzer 536 nicht über den ersten Schlüssel 528 verfügt. Der sichere Codeumsetzer 536 verschlüsselt die ersten verschlüsselten Daten mit dem dritten Schlüssel 560 unter Verwendung einer Verschlüsselungs-/Entschlüsselungsfunktion 568 des dritten Schlüssels des sicheren Codeumsetzers, um dritte verschlüsselte Daten (z.B. in dem ersten Schlüssel 528 und dann in dem dritten Schlüssel 560 verschlüsselte Daten) zu erhalten. Die dritten verschlüsselten Daten werden in einer Operation 570 an den Zielknoten 504 gesendet.
  • Der Zielknoten 504 empfängt den dritten Schlüssel 560 in einer Operation 572 von dem Manager 538 des sicheren Codeumsetzers und speichert den dritten Schlüssel 560 in einem Dritter-Schlüssel-Speicher 574 des Zielknotens. Der Zielknoten 504 entschlüsselt die dritten verschlüsselten Daten (z.B. in dem ersten Schlüssel 528 und dann in dem dritten Schlüssel 560 verschlüsselte Daten) unter Verwendung einer Verschlüsselungs-/ Entschlüsselungsfunktion 576 des dritten Schlüssels des Zielknotens, welche den dritten Schlüssel 560 verwendet, um die ersten verschlüsselten Daten (z.B. in dem ersten Schlüssel 528 verschlüsselte Daten) zu erhalten. Der Zielknoten 504 entschlüsselt die ersten verschlüsselten Daten unter Verwendung einer Verschlüsselungs-/Entschlüsselungsfunktion 578 des ersten Schlüssels des Zielknotens, welche den ersten Schlüssel 528 verwendet, um die Daten in Klartext zu erhalten.
  • In einigen Ansätzen können die einfachen Daten (z.B. die Daten in Klartext) an einen Speichercontroller 580 des Zielknotens ausgegeben werden. Eine Verschlüsselungs-/ Entschlüsselungsfunktion 582 des lokalen Speichers des Zielknotens kann die einfachen Daten unter Verwendung eines Verschlüsselungsschlüssels 584 des lokalen Speichers des Zielknotens verschlüsseln. Die lokal verschlüsselten Daten können in einem lokalen Speicher 586 des Zielknotens gespeichert werden. In weiteren Ansätzen kann auf die einfachen Daten direkt durch eine Zielknoten-Berechnungsressource 587 auf eine Weise zugegriffen werden, die für einen Fachmann beim Lesen der vorliegenden Offenbarung offensichtlich werden dürfte.
  • 5B ist eine Variante von 5A, und gemeinsame Merkmale haben eine gemeinsame Nummerierung. 5B stellt eine allgemeine Architektur 500 dar, die über Schlüsselmanager 588 und 589 verfügt. Der Schlüsselmanager 588 kann zum Speichern, Verwalten, Pflegen usw. des Satzes von ersten Schlüsseln 524 dienen. Ebenso kann der Schlüsselmanager 589 zum Speichern, Verwalten, Pflegen usw. des Satzes von zweiten Schlüsseln 526 dienen. Der Schlüsselmanager 588 kann den ersten Schlüssel 528 an den Quellenknoten 502 senden und der Schlüsselmanager 589 kann den zweiten Schlüssel 530 an den Quellenknoten 502 senden. Ein Unterhalten von getrennten Schlüsselmanagern bietet zusätzliche Sicherheit in dem System, in dem jede Komponente jeden Schlüsselmanager einzeln authentifiziert und so den Authentifizierungsprozess ergänzt.
  • 5C ist eine Variante von 5A, und gemeinsame Merkmale haben eine gemeinsame Nummerierung. 5C stellt eine allgemeine Architektur 500 dar, in der der Schlüsselmanager 520 in einer Operation 590 den zweiten Schlüssel 530 direkt dem sicheren Codeumsetzer 536 zur Speicherung in dem Zweiter-Schlüssel-Speicher 540 bereitstellt. In diesem Aspekt stellt der Schlüsselmanager 520 dem Quellenknoten 502 nach wie vor eine Kopie des zweiten Schlüssels 530 bereit, um eine Verschlüsselung der ersten verschlüsselten Daten unter Verwendung der Verschlüsselungs-/Entschlüsselungsfunktion 512 des zweiten Schlüssels des Quellenknotens durchzuführen, wie vorstehend beschrieben wurde, um zweite verschlüsselte Daten (z.B. Daten, die mit dem ersten Schlüssel 528 unter Verwendung der Verschlüsselungs-/Entschlüsselungsfunktion 510 des ersten Schlüssels des Quellenknotens und dann mit dem zweiten Schlüssel 530 unter Verwendung der Verschlüsselungs-/Entschlüsselungsfunktion 512) des zweiten Schlüssels des Quellenknotens verschlüsselt wurden) durchzuführen.
  • 5D ist eine Variante von 5A, und gemeinsame Merkmale haben eine gemeinsame Nummerierung. 5D stellt eine allgemeine Architektur 500 dar, die einen Knoten 591 eines Ziels 1 und einen Knoten 592 eines Ziels 2 sowie einen Knoten 593 eines Ziels 3 umfasst. Wie gezeigt ist, kann ein Schlüsselmanager 520 in Aspekten, die mehrere Ziele haben, verschiedene erste Schlüssel in dem Satz von ersten Schlüsseln 524 pflegen, wobei jeder erste Schlüssel mit einem zugeordneten Zielknoten verwendet werden kann. Der Schlüsselmanager 520 kann jeden der ersten Schlüssel (einen ersten Schlüssel k1 594, einen ersten Schlüssel k2 595 und einen ersten Schlüssel k3 596) an den Quellenknoten 502 senden. Der Quellenknoten 502 kann jeden ersten Schlüssel auf eine Weise an den jeweiligen Zielknoten senden, die für einen Fachmann beim Lesen der vorliegenden Offenbarung offensichtlich werden dürfte. Zum Beispiel kann der erste Schlüssel k1 594 von dem Quellenknoten 502 an den Zielknoten 1591, der erste Schlüssel k2 595 kann von dem Quellenknoten 502 an den Zielknoten 2 592 und der erste Schlüssel k3 596 kann von dem Quellenknoten 502 an den Zielknoten 3 593 gesendet werden. Der sichere Codeumsetzer 536 kann jedem der Zielknoten eine Kopie des dritten Schlüssels 560 senden, wie vorstehend beschrieben ist.
  • In einigen Aspekten kann jeder Zielknoten ebenso einem anderen zweiten Schlüssel 530 des Satzes von zweiten Schlüsseln 526 zugeordnet sein. In noch weiteren Ansätzen kann jede Region des fernen Speichers 534 mit einem anderen ersten Schlüssel oder jede Region des fernen Speichers 534 kann mit demselben ersten Schlüssel verschlüsselt werden.
  • In verschiedenen Aspekten verschlüsselt der Quellenknoten Daten doppelt unter Verwendung der Verschlüsselungs-/Entschlüsselungsfunktion 510 des ersten Schlüssels des Quellenknotens und dann der Verschlüsselungs-/Entschlüsselungsfunktion 512 des zweiten Schlüssels des Quellenknotens gemäß mindestens einigen der hierin beschriebenen Ansätze, um zweite verschlüsselte Daten zu erhalten. In bevorzugten Ansätzen kann die Verschlüsselungs-/Entschlüsselungsfunktion 510 des ersten Schlüssels des Quellenknotens beliebige Schlüssel des Satzes von ersten Schlüsseln 524 (den ersten Schlüssel k1 594, den ersten Schlüssel k2 595 und den ersten Schlüssel k3 596) verwenden, um eine Verschlüsselung/Entschlüsselung durchzuführen. Ebenso kann die Verschlüsselungs-/ Entschlüsselungsfunktion 512 des zweiten Schlüssels des Quellenknotens beliebige Schlüssel des Satzes von zweiten Schlüsseln (in Aspekten, in denen jedes Ziel einem anderen zweiten Schlüssel zugeordnet ist) verwenden, um eine Verschlüsselung/Entschlüsselung durchzuführen. In weiteren Ansätzen kann jeder andere erste Schlüssel und/oder jeder andere zweite Schlüssel seine eigene Verschlüsselungs-/Entschlüsselungsfunktion haben.
  • Der sichere Codeumsetzer 536 kann die zweiten verschlüsselten Daten empfangen. In Aspekten, in denen jedes Ziel einem anderen zweiten Schlüssel zugeordnet ist, empfängt der sichere Codeumsetzer in einer Operation 552 auch jede Kopie der verschiedenen zweiten Schlüssel. Die Verschlüsselungs-/Entschlüsselungsfunktion 544 des zweiten Schlüssels des sicheren Codeumsetzers kann die zweiten verschlüsselten Daten unter Verwendung des zweiten Schlüssels 530 entschlüsseln, um erste verschlüsselte Daten (z.B. in dem entsprechenden ersten Schlüssel verschlüsselte Daten) zu erhalten. Die Verschlüsselungs-/Entschlüsselungsfunktion 568 des dritten Schlüssels des sicheren Codeumsetzers verschlüsselt die ersten verschlüsselten Daten unter Verwendung des dritten Schlüssels 560, um dritte verschlüsselte Daten zu erhalten, wie vorstehend beschrieben ist.
  • In bevorzugten Aspekten sendet der sichere Codeumsetzer 536 die dritten verschlüsselten Daten an den entsprechenden Zielknoten auf eine Weise, die für einen Fachmann beim Lesen der vorliegenden Offenbarung offensichtlich werden dürfte. Zum Beispiel werden dritte verschlüsselte Daten (z.B. in dem ersten Schlüssel k1594 und dann in dem dritten Schlüssel 560 verschlüsselte Daten) an den Zielknoten 1 591 gesendet, der den ersten Schlüssel k1 594 aufweist, dritte verschlüsselte Daten (z.B. in dem ersten Schlüssel k2 595 und dann in dem dritten Schlüssel 560 verschlüsselte Daten) werden an den Zielknoten 2 592 gesendet, der den ersten Schlüssel k2 595 aufweist, und dritte verschlüsselte Daten (z.B. in dem ersten Schlüssel k3 596 und dann in dem dritten Schlüssel 560 verschlüsselte Daten) werden an den Zielknoten 3 593 gesendet, der den ersten Schlüssel k3 596 aufweist.
  • Jeder Zielknoten kann unter Verwendung seines jeweiligen Schlüssels gemäß den verschiedenen vorstehend beschriebenen Aspekten die dritten verschlüsselten Daten entschlüsseln, um erste verschlüsselte Daten zu erhalten, und die ersten verschlüsselten Daten dann entschlüsseln, um Daten in Klartext zu erhalten.
  • Der Zielknoten 1 591 verwendet die Verschlüsselungs-/Entschlüsselungsfunktion 576 des dritten Schlüssels des Zielknotens, um die dritten verschlüsselten Daten unter Verwendung des dritten Schlüssels 560 zu entschlüsseln, um erste verschlüsselte Daten zu erhalten. Der Zielknoten 1 591 verwendet dann eine Verschlüsselungs-/ Entschlüsselungsfunktion 597 des ersten Schlüssels k1 des Zielknotens 1, um die ersten verschlüsselten Daten unter Verwendung des ersten Schlüssels k1 594 zu entschlüsseln, um die Daten in Klartext zu erhalten.
  • Der Zielknoten 2 592 verwendet die Verschlüsselungs-/Entschlüsselungsfunktion 576 des dritten Schlüssels des Zielknotens, um die dritten verschlüsselten Daten unter Verwendung des dritten Schlüssels 560 zu entschlüsseln, um erste verschlüsselte Daten zu erhalten. Der Zielknoten 2 592 verwendet dann eine Verschlüsselungs-/ Entschlüsselungsfunktion 598 des ersten Schlüssels k2 des Zielknotens 2, um die ersten verschlüsselten Daten unter Verwendung des ersten Schlüssels k2 595 zu entschlüsseln, um die Daten in Klartext zu erhalten.
  • Der Zielknoten 3 593 verwendet die Verschlüsselungs-/Entschlüsselungsfunktion 576 des dritten Schlüssels des Zielknotens, um die dritten verschlüsselten Daten unter Verwendung des dritten Schlüssels 560 zu entschlüsseln, um erste verschlüsselte Daten zu erhalten. Der Zielknoten 3 593 verwendet dann eine Verschlüsselungs-/ Entschlüsselungsfunktion 599 des ersten Schlüssels k3 des Zielknotens 3, um die ersten verschlüsselten Daten unter Verwendung des ersten Schlüssels k2 596 zu entschlüsseln, um die Daten in Klartext zu erhalten.
  • In verschiedenen Aspekten kann es mehrere Quellenknoten und/oder mehrere Zielknoten geben. In weiteren Aspekten kann ein Zielknoten ein Quellenknoten für einen weiteren Zielknoten sein. Eine beliebige Anzahl von fernen Speichern, die mit einer beliebigen Komponente verbunden sind, kann in einem Netzwerk zur gemeinsamen Nutzung des Speichers zwischen (einem) Quellenknoten und (einem) Zielknoten vorhanden sein.
  • In bevorzugten Aspekten kann jeder Pfeil und/oder jede Verbindungslinie, die in den 3 bis 5D gezeigt sind, 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äß einem Aspekt gezeigt. Das Verfahren 600 kann gemäß der vorliegenden Erfindung in verschiedenen Aspekten in beliebigen der Umgebungen, die unter anderem in den 1 bis 5D und 7 bis 9 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 Aspekten 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 Quellenknoten, einer Anforderung von einem Zielknoten für Daten, die in einer Region des gemeinsam genutzten Speichers des Quellenknotens gespeichert sind. Die Anforderung von dem Zielknoten kann auf eine in der Technik bekannte Weise empfangen werden. In einigen Ansätzen betrifft die Anforderung eine Region des gemeinsam genutzten Speichers des Quellenknotens, die sich in dem lokalen Speicher des Quellenknotens befindet. In weiteren Ansätzen betrifft die Anforderung eine Region des gemeinsam genutzten Speichers des Quellenknotens, die sich in dem fernen Speicher des Quellenknotens befindet und durch den Quellenknoten kontrolliert wird. In der gesamten vorliegenden Offenbarung bezieht sich die Anforderung für eine Region des gemeinsam genutzten Speichers austauschbar auf eine Anforderung für Daten, die der Region (z.B. dem Bereich) des gemeinsam genutzten Speichers zugeordnet sind, wie es für einen Fachmann beim Lesen der vorliegenden Offenbarung offensichtlich werden dürfte.
  • In verschiedenen Ansätzen sind die Daten in einem lokalen Schlüssel des Quellenknotens verschlüsselt. Der Quellenknoten weist den lokalen Schlüssel auf. Der lokale Schlüssel ist nicht extrahierbar (z.B. nicht gemeinsam nutzbar) und wird vorzugsweise in dem Quellenknoten sicher gespeichert. In bevorzugten Aspekten verwendet der Quellenknoten den lokalen Schlüssel, um die in dem lokalen Speicher (z.B. dem lokal verschlüsselten Speicher) gespeicherten Daten zu verschlüsseln.
  • Eine Operation 604 umfasst ein Entschlüsseln, durch den Quellenknoten, der lokal verschlüsselten Daten unter Verwendung des lokalen Schlüssels. Die lokal verschlüsselten Daten werden entschlüsselt, um Daten in Klartext zu erhalten. In bevorzugten Aspekten verwendet der Quellenknoten eine Verschlüsselungs-/ Entschlüsselungsfunktion des Quellenknotens, um die lokal verschlüsselten Daten zu entschlüsseln, um Daten in Klartext zu erhalten.
  • Eine Operation 606 umfasst ein Verschlüsseln, durch den Quellenknoten, der entschlüsselten Daten unter Verwendung eines ersten Schlüssels, um erste verschlüsselte Daten zu erzeugen. Erste verschlüsselte Daten bezieht sich auf in dem ersten Schlüssel verschlüsselte Daten. In bevorzugten Aspekten findet die Verschlüsselung der entschlüsselten Daten unter Verwendung eines ersten Schlüssels, um erste verschlüsselte Daten zu erhalten, an dem Quellenknoten statt. Der Quellenknoten weist den ersten Schlüssel auf.
  • Eine Operation 608 umfasst ein Verschlüsseln, durch den Quellenknoten, der ersten verschlüsselten Daten unter Verwendung eines zweiten Schlüssels, um zweite verschlüsselte Daten zu erzeugen. Zweite verschlüsselte Daten bezieht sich auf Daten, die zuerst in einem ersten Schlüssel und dann mit dem zweiten Schlüssel verschlüsselt wurden. Wie in der gesamten vorliegenden Offenbarung verwendet, können zweite verschlüsselte Daten austauschbar mit doppelt verschlüsselten Daten verwendet werden, sofern nichts anderes angegeben ist. In bevorzugten Aspekten 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.
  • Eine Operation 610 umfasst ein Senden, durch den Quellenknoten, der zweiten verschlüsselten Daten an den Zielknoten. Die zweiten verschlüsselten Daten können auf eine in der Technik bekannte Weise gesendet werden. In verschiedenen Ansätzen ist der Zielknoten so konfiguriert, dass er die zweiten verschlüsselten Daten unter Verwendung des zweiten 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 zweiten verschlüsselten Daten, um die ersten verschlüsselten Daten zu erhalten, sein oder sich von dieser unterscheiden kann). Bei den Daten kann es sich um Daten in Klartext, unverschlüsselte Daten, einfache Daten, Daten in einer anderen mit einem Schlüssel verschlüsselten Form usw. handeln, die der Region des gemeinsam genutzten Speichers des Quellenknotens zugeordnet sind, welche von dem Zielknoten angefordert wurde.
  • In einigen Ansätzen umfasst das Verfahren 600 ein Senden, durch den Quellenknoten, des zweiten Schlüssels an den Zielknoten. Der Quellenknoten kann den zweiten Schlüssel an den Zielknoten senden, und der Zielknoten verwendet den zweiten Schlüssel, um die zweiten verschlüsselten Daten (z.B. in dem ersten Schlüssel und dann in dem zweiten Schlüssel verschlüsselte Daten) zu entschlüsseln, um die ersten verschlüsselten Daten (z.B. in dem ersten Schlüssel verschlüsselte Daten) zu erhalten. In weiteren Ansätzen kann der Zielknoten den zweiten Schlüssel von einem Schlüsselmanager empfangen, wie es für einen Fachmann beim Lesen der vorliegenden Offenbarung offensichtlich werden dürfte.
  • In einigen Ansätzen empfängt der Zielknoten den ersten Schlüssel von einem Schlüsselmanager. 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 Speicher zwischen dem Quellenknoten und dem Zielknoten bereitzustellen, zu erzeugen, zu verwalten usw. In bevorzugten Aspekten stellt der Schlüsselmanager dem Quellenknoten den ersten Schlüssel bereit, und der Quellenknoten verwendet den ersten Schlüssel, um erste verschlüsselte Daten zu erzeugen, wie in der Operation 606 beschrieben ist. In weiteren bevorzugten Aspekten stellt der Schlüsselmanager dem Zielknoten auch den ersten Schlüssel bereit, und der Zielknoten verwendet den ersten Schlüssel, um die ersten verschlüsselten Daten (zuvor die zweiten verschlüsselten Daten) zu entschlüsseln, um die Daten in Klartext zu erhalten. In weiteren Ansätzen kann der erste Schlüssel durch den Zielknoten direkt von dem Quellenknoten empfangen werden, wie es für einen Fachmann beim Lesen der vorliegenden Offenbarung offensichtlich werden dürfte.
  • In mindestens einigen Ansätzen kann die Region des gemeinsam genutzten Speichers durch eine Mehrzahl von Zielknoten angefordert werden. In bevorzugten Aspekten sind mindestens zwei der Zielknoten jeweils einem anderen zweiten Schlüssel zugeordnet. Zum Beispiel kann ein Quellenknoten die Region des gemeinsam genutzten Speichers (z.B. die diesem zugeordneten Daten) für jeden von zwei Zielknoten in demselben ersten Schlüssel verschlüsseln, um erste verschlüsselte Daten zu erhalten. Der Quellenknoten kann die ersten verschlüsselten Daten in einem zweiten Schlüssel (k1) verschlüsseln, um zweite verschlüsselte Daten zu erhalten, welche an einen ersten Zielknoten gesendet werden sollen. Der Quellenknoten kann die ersten verschlüsselten Daten in einem anderen zweiten Schlüssel (k2) verschlüsseln, um zweite verschlüsselte Daten zu erhalten (die anders aussehen als die zweiten verschlüsselten Daten, die an den ersten Zielknoten gesendet wurden), welche an einen zweiten Zielknoten gesendet werden sollen.
  • Bezug nehmend auf 7 ist ein Ablaufplan eines Verfahrens 700 gemäß einem Aspekt gezeigt. Das Verfahren 700 kann gemäß der vorliegenden Erfindung in verschiedenen Aspekten in beliebigen der Umgebungen, die unter anderem in den 1 bis 6 und 8 bis 9 dargestellt sind, ausgeführt sein. 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 Aspekten 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 Zielknoten, 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 Aspekten 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.
  • In bevorzugten Aspekten 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 separaten Verschlüsselungs-/Entschlüsselungsfunktion zugeordnet sein, die sich auf dem Quellenknoten befindet, wie der Fachmann im Hinblick auf die vorliegende Offenbarung verstehen dürfte.
  • In verschiedenen Ansätzen werden die zweiten verschlüsselten Daten zumindest teilweise auf der Grundlage von (einer) Datenanforderung(en) von dem Zielknoten an den Quellenknoten für Daten empfangen, die in einer Region des gemeinsam genutzten Speichers des Quellenknotens gespeichert sind. In einigen Ansätzen entsprechen die zweiten verschlüsselten Daten den in der Region des gemeinsam genutzten Speichers gespeicherten Daten. Die in der Region des gemeinsam genutzten Speichers gespeicherten Daten können in einem lokalen Verschlüsselungsschlüssel verschlüsselt und in einem lokalen Speicher gespeichert sein. Als Reaktion auf eine Anforderung für die in einer Region des gemeinsam genutzten Speichers gespeicherten Daten kann der Quellenknoten die in der Region des gemeinsam genutzten Speichers gespeicherten Daten unter Verwendung eines lokalen Verschlüsselungsschlüssels entschlüsseln, wie in der Operation 604 des Verfahrens 600 beschrieben ist. In weiteren Ansätzen sind die in einer Region des gemeinsam genutzten Speichers gespeicherten Daten nicht in einem lokalen Verschlüsselungsschlüssel verschlüsselt.
  • In mindestens einigen Ansätzen kann die Region des gemeinsam genutzten Speichers durch eine Mehrzahl von Zielknoten auf eine Weise angefordert werden, die für einen Fachmann beim Lesen der vorliegenden Offenbarung offensichtlich werden dürfte.
  • Eine Operation 704 umfasst ein Empfangen, durch den Zielknoten, des zweiten Schlüssels. In verschiedenen Ansätzen sendet der Quellenknoten dem Zielknoten eine Kopie des zweiten Schlüssels, die der Zielknoten für eine bestimmte Zeitdauer, eine Anzahl von Operationen usw. sicher speichert, wie durch Informationen einer zwischen dem Quellenknoten und dem Zielknoten festgelegten Richtlinie für eine gemeinsame Nutzung angegeben ist. In mindestens einigen Aspekten kann der Zielknoten als Reaktion auf ein Ende der Dauer der gemeinsamen Nutzung (z.B. wie 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.
  • Eine Operation 706 umfasst ein Empfangen, durch den Zielknoten, des ersten Schlüssels. In einigen Ansätzen empfängt der Zielknoten den ersten Schlüssel von einem Schlüsselmanager. 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 Speicher zwischen dem Quellenknoten und dem Zielknoten bereitzustellen, zu erzeugen, zu verwalten usw. In weiteren Ansätzen kann der erste Schlüssel durch den Zielknoten direkt von dem Quellenknoten empfangen werden, wie es für einen Fachmann beim Lesen der vorliegenden Offenbarung offensichtlich werden dürfte.
  • Eine Operation 708 umfasst ein Entschlüsseln, durch den Zielknoten, 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.
  • Eine Operation 710 umfasst ein Entschlüsseln, durch den Zielknoten, der ersten verschlüsselten Daten unter Verwendung des ersten Schlüssels, um die Daten zu erhalten. Der Zielknoten kann eine Verschlüsselungs-/Entschlüsselungsfunktion und den zweiten Schlüssel (der in einigen Ansätzen durch den Quellenknoten gesendet wird) verwenden, um die ersten verschlüsselten Daten zu erhalten. Der Zielknoten kann eine Verschlüsselungs-/ Entschlüsselungsfunktion und den ersten Schlüssel (der in einigen Ansätzen durch den Schlüsselmanager gesendet wird) verwenden, um die Daten zu erhalten. Bei den Daten, wie vorstehend erläutert wurde, kann es sich um Daten in Klartext, unverschlüsselte Daten, einfache Daten, Daten in einer anderen mit einem Schlüssel verschlüsselten Form usw. handeln.
  • Bezug nehmend auf 8 ist ein Ablaufplan eines Verfahrens 800 gemäß einem Aspekt gezeigt. Das Verfahren 800 kann gemäß der vorliegenden Erfindung in verschiedenen Aspekten in beliebigen der Umgebungen, die unter anderem in den 1 bis 7 und 9 dargestellt sind, ausgeführt werden. Natürlich können mehr oder weniger Operationen als diejenigen, die in 8 ausdrücklich beschrieben sind, in dem Verfahren 800 enthalten sein, wie der Fachmann verstehen dürfte, nachdem er die vorliegenden Beschreibungen gelesen hat.
  • Jeder der Schritte des Verfahrens 800 kann durch eine beliebige geeignete Komponente der Betriebsumgebung durchgeführt werden. Zum Beispiel kann das Verfahren 800 in verschiedenen Aspekten 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 800 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 8 gezeigt ist, umfasst das Verfahren 800 eine Operation 802. Die Operation 802 umfasst ein Empfangen, durch einen Zielknoten, 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 Aspekten 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.
  • In verschiedenen Aspekten ist der erste Schlüssel einer durch den Quellenknoten kontrollierten Region des Speichers zugeordnet und der zweite Schlüssel ist dem Zielknoten zugeordnet. Zum Beispiel kann die Region des Speichers durch den Zielknoten oder eine Mehrzahl von Zielknoten, die den Zielknoten umfasst, angefordert werden. Jeder Zielknoten kann demselben ersten Schlüssel zugeordnet sein. In bevorzugten Aspekten sind mindestens zwei der Zielknoten jeweils einem anderen zweiten Schlüssel zugeordnet. Zum Beispiel kann ein Quellenknoten die Region des gemeinsam genutzten Speichers (z.B. die diesem zugeordneten Daten) für jeden von zwei Zielknoten in demselben ersten Schlüssel verschlüsseln, um erste verschlüsselte Daten zu erhalten. Der Quellenknoten kann die ersten verschlüsselten Daten in einem zweiten Schlüssel (k1) verschlüsseln, um zweite verschlüsselte Daten zu erhalten, welche an einen ersten Zielknoten gesendet werden sollen. Der Quellenknoten kann die ersten verschlüsselten Daten in einem anderen zweiten Schlüssel (k2) verschlüsseln, um zweite verschlüsselte Daten zu erhalten (die anders aussehen als die zweiten verschlüsselten Daten, die an den ersten Zielknoten gesendet wurden), welche an einen zweiten Zielknoten gesendet werden sollen.
  • In einem weiteren Aspekt kann jeder Zielknoten einem anderen ersten Schlüssel zugeordnet sein. In diesem Aspekt kann der Quellenknoten verschiedene Regionen des Speichers mit jedem der Zielknoten gemeinsam nutzen. Jede Region des Speichers kann durch einen anderen ersten Schlüssel geschützt sein. In weiteren Aspekten kann jeder Zielknoten einem anderen ersten Schlüssel zugeordnet sein, wobei der Quellenknoten über mehr als eine externe Speicherregion verfügt. Jede externe Speicherregion kann anderen ersten Schlüsseln und/oder anderen zweiten Schlüsseln zugeordnet sein.
  • In weiteren Ansätzen kann jeder Zielknoten einem anderen ersten Schlüssel und demselben zweiten Schlüssel zugeordnet sein. In bevorzugten Aspekten sind mindestens zwei der Zielknoten jeweils einem anderen ersten Schlüssel zugeordnet. Zum Beispiel kann ein Quellenknoten die Region des gemeinsam genutzten Speichers (z.B. die diesem zugeordneten Daten) in einem ersten Schlüssel für einen ersten Zielknoten verschlüsseln und dieselbe oder eine andere Region des gemeinsam genutzten Speichers mit einem anderen ersten Schlüssel für einen zweiten Zielknoten verschlüsseln, um zwei verschiedene Sätze mit ersten verschlüsselten Daten zu erhalten. Jeder Satz der ersten verschlüsselten Daten kann mit demselben zweiten Schlüssel verschlüsselt werden, um zwei verschiedene Sätze mit zweiten verschlüsselten Daten zu erhalten. Der Quellenknoten kann jede zweite verschlüsselte Datenangabe auf eine Weise an den jeweiligen Zielknoten senden, die für einen Fachmann beim Lesen der vorliegenden Offenbarung offensichtlich werden dürfte.
  • In verschiedenen Aspekten entsprechen die zweiten verschlüsselten Daten vorzugsweise der Region des gemeinsam genutzten Speichers, die durch den Quellenknoten kontrolliert wird. Zum Beispiel kann es sich bei den zweiten verschlüsselten Daten um die Daten handeln, die in der Region des gemeinsam genutzten Speichers gespeichert sind, welche mit dem Quellenknoten verbunden ist. In weiteren Aspekten entsprechen die zweiten verschlüsselten Daten der durch den Quellenknoten kontrollierten Region des gemeinsam genutzten Speichers, wobei der gemeinsam genutzte Speicher von dem Quellenknoten entfernt ist.
  • In bevorzugten Aspekten 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 separaten Verschlüsselungs-/Entschlüsselungsfunktion zugeordnet sein, die sich auf dem Quellenknoten befindet, wie der Fachmann im Hinblick auf die vorliegende Offenbarung verstehen dürfte.
  • In verschiedenen Ansätzen sind die in dem gemeinsam genutzten Speicher des Quellenknotens gespeicherten Daten in einem lokalen Schlüssel des Quellenknotens verschlüsselt. Der Quellenknoten weist den lokalen Schlüssel auf. Der lokale Schlüssel ist nicht extrahierbar (z.B. nicht gemeinsam nutzbar) und wird vorzugsweise in dem Quellenknoten sicher gespeichert. In bevorzugten Aspekten verwendet der Quellenknoten den lokalen Schlüssel, um die in dem lokalen Speicher (z.B. dem lokal verschlüsselten Speicher) gespeicherten Daten zu verschlüsseln. Die lokal verschlüsselten Daten aus dem lokal verschlüsselten Speicher können durch den Quellenknoten unter Verwendung des lokalen Schlüssels vor der Verschlüsselung in dem ersten Schlüssel, um erste verschlüsselte Daten zu erhalten, entschlüsselt werden, wie in mindestens einigen Aspekten des Verfahrens 600 beschrieben ist.
  • Eine Operation 804 umfasst ein Empfangen, durch den Zielknoten, des zweiten Schlüssels. In verschiedenen Ansätzen sendet der Quellenknoten dem Zielknoten eine Kopie des zweiten Schlüssels, die der Zielknoten für eine bestimmte Zeitdauer, eine Anzahl von Operationen usw. sicher speichert, wie durch Informationen einer zwischen dem Quellenknoten und dem Zielknoten festgelegten Richtlinie für eine gemeinsame Nutzung definiert ist. In mindestens einigen Aspekten kann der Zielknoten als Reaktion auf ein Ende der Dauer der gemeinsamen Nutzung (z.B. wie 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.
  • Eine Operation 806 umfasst ein Empfangen, durch den Zielknoten, des ersten Schlüssels. In einigen Ansätzen empfängt der Zielknoten den ersten Schlüssel von einem Schlüsselmanager. 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 Speicher zwischen dem Quellenknoten und dem Zielknoten bereitzustellen, zu erzeugen, zu verwalten usw. In weiteren Ansätzen kann der erste Schlüssel durch den Zielknoten direkt von dem Quellenknoten empfangen werden, wie es für einen Fachmann beim Lesen der vorliegenden Offenbarung offensichtlich werden dürfte.
  • Eine Operation 808 umfasst ein Entschlüsseln, durch den Zielknoten, 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. Der Zielknoten kann eine Verschlüsselungs-/Entschlüsselungsfunktion und den zweiten Schlüssel (der in einigen Ansätzen durch den Quellenknoten gesendet wird) verwenden, um die ersten verschlüsselten Daten zu erhalten.
  • Eine Operation 810 umfasst ein Entschlüsseln, durch den Zielknoten, der ersten verschlüsselten Daten unter Verwendung des ersten Schlüssels, um die Daten zu erhalten. Der Zielknoten kann eine Verschlüsselungs-/Entschlüsselungsfunktion und den zweiten Schlüssel (der in einigen Ansätzen durch den Quellenknoten gesendet wird) verwenden, um die ersten verschlüsselten Daten zu erhalten. Der Zielknoten kann eine Verschlüsselungs-/ Entschlüsselungsfunktion und den ersten Schlüssel (der in einigen Ansätzen durch den Schlüsselmanager gesendet wird) verwenden, um die Daten zu erhalten. Bei den Daten, wie vorstehend erläutert wurde, kann es sich um Daten in Klartext, unverschlüsselte Daten, einfache Daten, Daten in einer anderen mit einem Schlüssel verschlüsselten Form usw. handeln.
  • Bezug nehmend auf 9 ist ein Ablaufplan eines Verfahrens 900 gemäß einem Aspekt gezeigt. Das Verfahren 900 kann gemäß der vorliegenden Erfindung in verschiedenen Aspekten in beliebigen der Umgebungen, die unter anderem in den 1 bis 8 dargestellt sind, durchgeführt werden. Natürlich können mehr oder weniger Operationen als diejenigen, die in 9 ausdrücklich beschrieben sind, in dem Verfahren 900 enthalten sein, wie der Fachmann verstehen dürfte, nachdem er die vorliegenden Beschreibungen gelesen hat.
  • Jeder der Schritte des Verfahrens 900 kann durch eine beliebige geeignete Komponente der Betriebsumgebung durchgeführt werden. Zum Beispiel kann das Verfahren 900 in verschiedenen Aspekten 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 900 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 9 gezeigt ist, umfasst das Verfahren 900 eine Operation 902. Die Operation 902 umfasst ein Empfangen, durch einen Codeumsetzer, von zweiten verschlüsselten Daten. Bei den zweiten verschlüsselten Daten handelt es sich um Daten, die in einer durch einen Quellenknoten kontrollierten Region des gemeinsam genutzten Speichers gespeichert sind, welche 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 Aspekten 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 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.
  • In verschiedenen Aspekten werden die zweiten verschlüsselten Daten an dem Codeumsetzer aus dem gemeinsam genutzten 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 aus der Region des gemeinsam genutzten Speichers anfordern, welche durch einen Quellenknoten über den Codeumsetzer kontrolliert wird. 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 Codeumsetzer usw. empfangen. Die Informationen der Richtlinie für eine gemeinsame Nutzung können den/die gemeinsam zu nutzenden Speicherbereich(e), den/die Zielknoten, mit dem/denen eine gemeinsame Nutzung erfolgen soll, den zulässigen Zugriff auf den Speicher einschließlich der Dauer, zulässige Schreib-/Leseoperationen, die Anzahl der zulässigen Operationen, welche Regionen des gemeinsam genutzten Speichers 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, die einer Dauer der gemeinsamen Nutzung zwischen beliebigen Entitäten zugeordnet ist, den Typ der Operationen, der einer Dauer der gemeinsamen Nutzung zwischen beliebigen Entitäten zugeordnet ist, eine Menge der Daten, die je Dauer der gemeinsamen Nutzung zwischen beliebigen Entitäten gemeinsam genutzt werden darf, usw. umfassen. 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 Aspekten 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, eine Anforderung, die Dauer der gemeinsamen Nutzung durch einen Zielknoten zu beenden, ein Ausschaltereignis, ein beliebiges anderes Triggerereignis usw. oder eine Kombination daraus beendet werden.
  • In verschiedenen Aspekten ist der erste Schlüssel einer durch den Quellenknoten kontrollierten Region des Speichers zugeordnet und der zweite Schlüssel ist einem Zielknoten zugeordnet. Zum Beispiel kann die Region des Speichers durch den Zielknoten oder eine Mehrzahl von Zielknoten, die den Zielknoten umfasst, angefordert werden. Jeder Zielknoten kann demselben ersten Schlüssel zugeordnet sein. In bevorzugten Aspekten sind mindestens zwei der Zielknoten jeweils einem anderen zweiten Schlüssel und/oder einem anderen ersten Schlüssel zugeordnet.
  • In einigen Ansätzen kann jeder Zielknoten einem anderen ersten Schlüssel zugeordnet sein, wenn der Speicher, der gemeinsam genutzt wird, lokal verschlüsselt (z.B. in einem lokalen Verschlüsselungsschlüssel verschlüsselt) ist. Wenn es sich bei dem gemeinsam zu nutzenden Speicher um dieselbe ferne Speicherregion handelt, welche durch den Quellenknoten kontrolliert wird, kann der erste Schlüssel für jeden Zielknoten gleich sein. Wenn der gemeinsam zu nutzende Speicher verschiedene Regionen des fernen Speichers umfasst, die durch den Quellenknoten kontrolliert werden, kann der erste Schlüssel für jeden Zielknoten anders sein.
  • In verschiedenen Aspekten entsprechen die zweiten verschlüsselten Daten vorzugsweise der Region des gemeinsam genutzten Speichers des Quellenknotens. Zum Beispiel kann es sich bei den zweiten verschlüsselten Daten um die Daten handeln, die in der Region des gemeinsam genutzten Speichers gespeichert sind, welche mit dem Quellenknoten verbunden ist. In weiteren Aspekten entsprechen die zweiten verschlüsselten Daten der durch den Quellenknoten kontrollierten Region des gemeinsam genutzten Speichers, wobei der gemeinsam genutzte Speicher von dem Quellenknoten entfernt ist.
  • In bevorzugten Aspekten 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.
  • In verschiedenen Ansätzen sind die in dem gemeinsam genutzten Speicher des Quellenknotens gespeicherten Daten in einem lokalen Schlüssel des Quellenknotens verschlüsselt. Der Quellenknoten weist den lokalen Schlüssel auf. Der lokale Schlüssel ist nicht extrahierbar (z.B. nicht gemeinsam nutzbar) und wird vorzugsweise in dem Quellenknoten sicher gespeichert. In bevorzugten Aspekten verwendet der Quellenknoten den lokalen Schlüssel, um die in dem lokalen Speicher (z.B. dem lokal verschlüsselten Speicher) gespeicherten Daten zu verschlüsseln. Die lokal verschlüsselten Daten aus dem lokal verschlüsselten Speicher können durch den Quellenknoten unter Verwendung des lokalen Schlüssels vor der Verschlüsselung in dem ersten Schlüssel, um erste verschlüsselte Daten zu erhalten, entschlüsselt werden, wie in mindestens einigen Aspekten des Verfahrens 600 beschrieben ist.
  • Eine Operation 904 umfasst ein Empfangen, durch den Codeumsetzer, des zweiten Schlüssels. Der zweite Schlüssel kann von dem Quellenknoten gesendet werden. 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. sicher speichert, wie durch Informationen einer Richtlinie für eine gemeinsame Nutzung angegeben ist. In mindestens einigen Aspekten kann der Codeumsetzer als Reaktion auf ein Ende der Dauer der gemeinsamen Nutzung (z.B. wie 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.
  • Eine Operation 906 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 in der gemeinsam genutzten Region des Speichers gespeicherte 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 906 kann der Codeumsetzer eine Verschlüsselungs-/Entschlüsselungsfunktion und den zweiten Schlüssel (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), wobei 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 908 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 (z.B. nur in dem ersten Schlüssel verschlüsselt) 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 906 handeln oder sie kann sich von dieser unterscheiden (z.B. von dieser getrennt, nur zur Verwendung mit dem dritten Schlüssel usw. sein). In bevorzugten Ansätzen wird der dritte Schlüssel von einem Codeumsetzer-Manager an dem Codeumsetzer empfangen. In weiteren Ansätzen sendet der Codeumsetzer-Manager den dritten Schlüssel an den Codeumsetzer und den Zielknoten. Der Codeumsetzer-Manager kann den dritten Schlüssel erzeugen und den dritten Schlüssel auf eine Weise an den Codeumsetzer und/oder den Zielknoten senden, die für einen Fachmann beim Lesen der vorliegenden Offenbarung offensichtlich werden dürfte. 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.
  • Eine Operation 910 umfasst 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 stammte. 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 Aspekten schreddert der Codeumsetzer als Reaktion auf ein Ende der Dauer der gemeinsamen Nutzung (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.
  • Eine Operation 912 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 wurden, 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, einfache Daten, Daten in einer anderen mit einem Schlüssel verschlüsselten Form usw. handeln.
  • Bei der vorliegenden Erfindung 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 Modifikationen und Varianten sind für den Fachmann erkennbar, ohne vom Umfang 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 (22)

  1. Durch einen Computer ausgeführtes Verfahren, das umfasst: Empfangen, durch einen Quellenknoten, einer Anforderung von einem Zielknoten für Daten, die in einer durch den Quellenknoten kontrollierten Region eines gemeinsam genutzten Speichers gespeichert sind, wobei die Daten in einem lokalen Schlüssel des Quellenknotens verschlüsselt sind; Entschlüsseln, durch den Quellenknoten, der lokal verschlüsselten Daten unter Verwendung des lokalen Schlüssels; Verschlüsseln, durch den Quellenknoten, der entschlüsselten Daten unter Verwendung eines ersten Schlüssels, um erste verschlüsselte Daten zu erzeugen; Verschlüsseln, durch den Quellenknoten, der ersten verschlüsselten Daten unter Verwendung eines zweiten Schlüssels, um zweite verschlüsselte Daten zu erzeugen; und Senden, durch den Quellenknoten, der zweiten verschlüsselten Daten an den Zielknoten.
  2. Durch einen Computer ausgeführtes Verfahren nach Anspruch 1, wobei der Zielknoten den ersten Schlüssel von einem Schlüsselmanager empfängt.
  3. Durch einen Computer ausgeführtes Verfahren nach Anspruch 1 oder Anspruch 2, das ein Senden, durch den Quellenknoten, des zweiten Schlüssels an den Zielknoten umfasst.
  4. Durch einen Computer ausgeführtes Verfahren nach einem der vorhergehenden Ansprüche, wobei die Region des gemeinsam genutzten Speichers durch eine Mehrzahl von Zielknoten angefordert wird, wobei mindestens zwei der Zielknoten jeweils einem anderen zweiten Schlüssel zugeordnet sind.
  5. Durch einen Computer ausgeführtes Verfahren nach einem der vorhergehenden Ansprüche, wobei der Zielknoten so konfiguriert ist, dass er die zweiten verschlüsselten Daten unter Verwendung des zweiten 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, das umfasst: Empfangen, durch einen Zielknoten, 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 Zielknoten, des zweiten Schlüssels; Empfangen, durch den Zielknoten, des ersten Schlüssels; Entschlüsseln, durch den Zielknoten, der zweiten verschlüsselten Daten unter Verwendung des zweiten Schlüssels, um die ersten verschlüsselten Daten zu erhalten; und Entschlüsseln, durch den Zielknoten, der ersten verschlüsselten Daten unter Verwendung des ersten Schlüssels, um die Daten zu erhalten.
  7. Durch einen Computer ausgeführtes Verfahren nach Anspruch 6, wobei die zweiten verschlüsselten Daten Daten entsprechen, die in einer durch einen Quellenknoten kontrollierten Region eines gemeinsam genutzten Speichers gespeichert sind.
  8. Durch einen Computer ausgeführtes Verfahren nach Anspruch 7, wobei die Region des gemeinsam genutzten Speichers durch den Zielknoten angefordert wird.
  9. Durch einen Computer ausgeführtes Verfahren nach Anspruch 7, wobei die Region des gemeinsam genutzten Speichers durch eine Mehrzahl von Zielknoten angefordert wird.
  10. Durch einen Computer ausgeführtes Verfahren nach Anspruch 7, wobei der zweite Schlüssel von dem Quellenknoten empfangen wird.
  11. Durch einen Computer ausgeführtes Verfahren nach einem der Ansprüche 6 bis 10, wobei der erste Schlüssel von einem Schlüsselmanager empfangen wird.
  12. Durch einen Computer ausgeführtes Verfahren nach einem der Ansprüche 6 bis 11, wobei der erste Schlüssel einer durch einen Quellenknoten kontrollierten Region des Speichers zugeordnet ist und wobei und der zweite Schlüssel dem Zielknoten zugeordnet ist.
  13. Durch einen Computer ausgeführtes Verfahren nach Anspruch 12, wobei die durch den Quellenknoten kontrollierte Region des gemeinsam genutzten Speichers durch den Zielknoten angefordert wird.
  14. Durch einen Computer ausgeführtes Verfahren nach Anspruch 12, wobei die durch den Quellenknoten kontrollierte Region des gemeinsam genutzten Speichers durch eine Mehrzahl von Zielknoten angefordert wird, wobei jeder Zielknoten demselben ersten Schlüssel zugeordnet ist, wobei mindestens zwei der Zielknoten jeweils einem anderen zweiten Schlüssel zugeordnet sind.
  15. 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 einer durch einen Quellenknoten kontrollierten Region eines gemeinsam genutzten Speichers gespeichert sind, wobei 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 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; Senden, durch den Codeumsetzer, des dritten Schlüssels an einen Zielknoten; und Senden, durch den Codeumsetzer, der dritten verschlüsselten Daten an den Zielknoten.
  16. Durch einen Computer ausgeführtes Verfahren nach Anspruch 15, wobei der zweite Schlüssel von dem Quellenknoten empfangen wird.
  17. Durch einen Computer ausgeführtes Verfahren nach Anspruch 15 oder Anspruch 16, wobei der dritte Schlüssel von einem Codeumsetzer-Manager empfangen wird.
  18. Durch einen Computer ausgeführtes Verfahren nach einem der Ansprüche 15 bis 17, wobei die zweiten verschlüsselten Daten der durch den Quellenknoten kontrollierten Region des Speichers entsprechen.
  19. Durch einen Computer ausgeführtes Verfahren nach einem der Ansprüche 15 bis 18, wobei die durch den Quellenknoten kontrollierte Region des Speichers durch den Zielknoten angefordert wird.
  20. Durch einen Computer ausgeführtes Verfahren nach einem der Ansprüche 15 bis 19, wobei die durch den Quellenknoten kontrollierte Region des Speichers durch eine Mehrzahl von Zielknoten angefordert wird, wobei jeder Zielknoten demselben ersten Schlüssel zugeordnet ist, wobei mindestens zwei der Zielknoten jeweils einem anderen zweiten Schlüssel zugeordnet sind.
  21. Durch einen Computer ausgeführtes Verfahren nach einem der Ansprüche 15 bis 20, 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. Computerprogrammprodukt, das 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 durch einen Prozessor ausführbar sind, um das Verfahren nach einem der vorhergehenden Ansprüche durchzuführen.
DE112021005979.3T 2020-12-30 2021-12-08 Sichere gemeinsame nutzung von speicher Pending DE112021005979T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/138,552 2020-12-30
US17/138,552 US20220207191A1 (en) 2020-12-30 2020-12-30 Secure memory sharing
PCT/IB2021/061458 WO2022144643A1 (en) 2020-12-30 2021-12-08 Secure memory sharing

Publications (1)

Publication Number Publication Date
DE112021005979T5 true DE112021005979T5 (de) 2023-08-31

Family

ID=82119350

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112021005979.3T Pending DE112021005979T5 (de) 2020-12-30 2021-12-08 Sichere gemeinsame nutzung von speicher

Country Status (6)

Country Link
US (1) US20220207191A1 (de)
JP (1) JP2024501168A (de)
CN (1) CN116745766A (de)
DE (1) DE112021005979T5 (de)
GB (1) GB2616811A (de)
WO (1) WO2022144643A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11579783B1 (en) * 2022-03-09 2023-02-14 Vim Inc. Multi-tenant storage

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5940870A (en) * 1996-05-21 1999-08-17 Industrial Technology Research Institute Address translation for shared-memory multiprocessor clustering
AU2005241560A1 (en) * 2004-05-05 2005-11-17 Ims Software Services, Ltd. Data encryption applications for multi-source longitudinal patient-level data integration
US8761401B2 (en) * 2006-08-28 2014-06-24 Motorola Mobility Llc System and method for secure key distribution to manufactured products
CN102065135B (zh) * 2010-12-15 2013-02-13 中国联合网络通信集团有限公司 点对点数据获取方法、系统及服务器
EP2695101B1 (de) * 2011-04-04 2022-11-09 Nextlabs, Inc. Schutz von dokumenten durch richtlinien und verschlüsselung
US9154815B2 (en) * 2011-05-06 2015-10-06 Disney Enterprises, Inc. Method and system for securing multimedia data streamed over a network
WO2014030186A1 (ja) * 2012-08-23 2014-02-27 富士通株式会社 中継装置、中継方法、中継プログラムおよび中継システム
WO2015011526A1 (en) * 2013-07-24 2015-01-29 Freescale Semiconductor, Inc. Data processing device and method for protecting a data processing device against tampering
US20160335201A1 (en) * 2014-01-28 2016-11-17 Hewlett Packard Enterprise Development Lp Data and instruction set encryption
US10910089B2 (en) * 2015-03-20 2021-02-02 Universal Patient Key, Inc. Methods and systems providing centralized encryption key management for sharing data across diverse entities
US10127389B1 (en) * 2015-03-30 2018-11-13 Amazon Technologies, Inc. Performing operations on intelligent storage with hardened interfaces
US9800560B1 (en) * 2015-04-23 2017-10-24 Symantec Corporation Systems and methods for monitoring encrypted data transmission
US20210167955A1 (en) * 2017-10-24 2021-06-03 Bitcache Limited Data transmission
US11863541B2 (en) * 2018-01-04 2024-01-02 Signify Holding B.V. System and method for end-to-end secure communication in device-to-device communication networks
CN108768633B (zh) * 2018-05-30 2022-03-25 腾讯科技(深圳)有限公司 实现区块链中信息共享的方法及装置
US11218446B2 (en) * 2018-06-15 2022-01-04 Orock Technologies, Inc. Secure on-premise to cloud communication
FR3094520B1 (fr) * 2019-03-25 2021-10-22 St Microelectronics Rousset Clé de chiffrement et/ou de déchiffrement
CN112133396B (zh) * 2020-09-23 2023-02-03 深圳平安智慧医健科技有限公司 医疗数据共享方法、装置、电子设备及介质
CN112150147A (zh) * 2020-09-23 2020-12-29 安徽省吉翔信息科技有限公司 一种基于区块链的数据安全存储系统

Also Published As

Publication number Publication date
GB2616811A (en) 2023-09-20
JP2024501168A (ja) 2024-01-11
CN116745766A (zh) 2023-09-12
US20220207191A1 (en) 2022-06-30
WO2022144643A1 (en) 2022-07-07

Similar Documents

Publication Publication Date Title
DE112018001285B4 (de) Kryptografische Schlüsselerzeugung mit Anwendung auf Datendeduplizierung
DE102019123253A1 (de) System und einrichtung für datenvertraulichkeit im distributed ledger
DE112011101729B4 (de) Verwaltung von Ressourcenzugriff
DE112018003544T5 (de) Anonyme verschlüsselte daten
DE102017126706A1 (de) System von Enklaven
DE112021004937T5 (de) Sicheres erneutes verschlüsseln von homomorph verschlüsselten daten
DE112018004390B4 (de) Sichere zugriffsverwaltung für werkzeuge innerhalb einer sicheren umgebung
DE112014000357T5 (de) Schlüsselverwaltung in mandantenfähigen Umgebungen
DE112020005620T5 (de) Sichere föderation verteilter stochastischer gradientenabstiege
DE112014000584T5 (de) Erreichen von Speichereffizienz bei durchgängiger Verschlüsselung unter Verwendung von nachgelagerten (Downstream-)Decryptern
DE102011077218B4 (de) Zugriff auf in einer Cloud gespeicherte Daten
DE112016000790B4 (de) Instanziierung von Broadcast-Verschlüsselungsschemata zur Laufzeit
DE112021001766T5 (de) Inhaltskontrolle durch datenaggregationsdienste dritter
DE102016105062A1 (de) Nähengestützte Berechtigungsprüfung für einheitenübergreifend verteilte Daten
DE112020000134T5 (de) Sicherer, mehrstufiger zugriff auf verschleierte daten für analysen
DE112021005561T5 (de) Implementieren einer widerstandsfähigen deterministischen verschlüsselung
DE112021002099T5 (de) Hypervisor-geschützter schlüssel
DE112021003270T5 (de) Deduplizierung von mit mehreren schlüsseln verschlüsselten daten
DE112020002343T5 (de) Verteilung von Sicherheitsberechtigungsnachweisen
DE112021006372T5 (de) Sichere bereitstellung einer datenverarbeitungsressource unter verwendung einer homomorphen verschlüsselung
DE112021006008T5 (de) Sichere übertragung grosser datenmengen
DE102021129514A1 (de) Binden von post-quanten-zertifikaten
DE112020003357T5 (de) Undurchsichtige verschlüsselung für datendeduplizierung
DE112021004770T5 (de) Ultraschallübertragung von aufgeteilten schlüsseln für verbesserte sicherheit
DE102021130812A1 (de) Implementieren einer opportunistischen authentifizierung von verschlüsselten daten

Legal Events

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