DE112021005837T5 - Dezentrale sendeverschlüsselung und schlüsselerzeugungseinrichtung - Google Patents

Dezentrale sendeverschlüsselung und schlüsselerzeugungseinrichtung Download PDF

Info

Publication number
DE112021005837T5
DE112021005837T5 DE112021005837.1T DE112021005837T DE112021005837T5 DE 112021005837 T5 DE112021005837 T5 DE 112021005837T5 DE 112021005837 T DE112021005837 T DE 112021005837T DE 112021005837 T5 DE112021005837 T5 DE 112021005837T5
Authority
DE
Germany
Prior art keywords
key
determining
blockchain
media
keys
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
DE112021005837.1T
Other languages
English (en)
Inventor
Dulce B. Ponceleon
Nitin Gaur
Petr Novotny
Luis Angel Bathen
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 DE112021005837T5 publication Critical patent/DE112021005837T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

Ein Prozessor kann einen oder mehrere Schlüssel in ein Medium integrieren. Der eine oder mehrere Schlüssel können jeweils einer spezifischen Instanz zugehörig sein, und der eine oder mehrere Schlüssel können in einer Blockchain enthalten sein. Der Prozessor kann feststellen, dass eine erste spezifische Instanz eingetreten ist. Der Prozessor kann einen ersten Schlüssel bereitstellen, der der ersten spezifischen Instanz zugehörig ist. Der Prozessor kann festlegen, den Zugriff auf den Inhalt des Mediums zu erlauben.

Description

  • HINTERGRUND
  • Die vorliegende Offenbarung bezieht sich allgemein auf das Gebiet der digitalen Medien und insbesondere auf Dezentralisieren der Sendeverschlüsselung und Schlüsselerzeugung, die digitalen Medien zugehörig sind.
  • Die Sendeverschlüsselung befasst sich derzeit mit dem Problem des Sendens verschlüsselter Daten. Bei jeder Übertragung gibt es eine Gruppe von „privilegierten“ Benutzern, die die Daten entschlüsseln können, und eine Gruppe von „gesperrten“ (z.B. nichtkonformen) Benutzern, die keinen Zugriff auf die Daten haben sollten. Darüber hinaus gibt es eine Zentrale, die zunächst an alle Benutzer Schlüssel verteilt und bei jeder Sitzung verschlüsselte Daten sendet. Der derzeitige Prozess für die Sendeverschlüsselung und Schlüsselerzeugung in Bezug auf digitale Medien ist daher vollständig zentralisiert.
  • KURZDARSTELLUNG
  • Ausführungsformen der vorliegenden Offenbarung umfassen ein Verfahren, ein System und ein Computerprogrammprodukt zur dezentralen Sendeverschlüsselung. Ein Prozessor kann einen oder mehrere Schlüssel in ein Medium integrieren. Der eine oder mehrere Schlüssel können jeweils einer spezifischen Instanz zugehörig sein, und der eine oder mehrere Schlüssel können in einer Blockchain enthalten sein. Der Prozessor kann feststellen, dass eine erste spezifische Instanz eingetreten ist. Der Prozessor kann einen ersten Schlüssel bereitstellen, der der ersten spezifischen Instanz zugehörig ist. Der Prozessor kann festlegen, den Zugriff auf den Inhalt des Mediums zu erlauben.
  • Die vorstehende Kurzdarstellung ist nicht dazu gedacht, jede veranschaulichte Ausführungsform oder jede Implementierung der vorliegenden Offenbarung zu beschreiben.
  • Figurenliste
  • Die in der vorliegenden Offenbarung enthaltenen Zeichnungen sind in der Beschreibung enthalten und bilden einen Teil davon. Sie veranschaulichen Ausführungsformen der vorliegenden Offenbarung und dienen zusammen mit der Beschreibung dazu, die Grundgedanken der Offenbarung zu erläutern. Die Zeichnungen veranschaulichen lediglich bestimmte Ausführungsformen und beschränken die Offenbarung nicht.
    • 1A veranschaulicht eine beispielhafte Blockchain-Architektur gemäß Ausführungsformen der vorliegenden Offenbarung.
    • 1B veranschaulicht einen Blockchain-Transaktionsablauf gemäß Ausführungsformen der vorliegenden Offenbarung.
    • 2A veranschaulicht ein beispielhaftes System eines zentralen Ansatzes zur Sendeverschlüsselung gemäß Ausführungsformen der vorliegenden Offenbarung.
    • 2B veranschaulicht ein beispielhaftes System eines dezentralen Ansatzes zur Sendeverschlüsselung gemäß Ausführungsformen der vorliegenden Offenbarung.
    • 2C veranschaulicht eine beispielhafte Aktualisierung eines Medienschlüsselblocks gemäß Ausführungsformen der vorliegenden Offenbarung.
    • 3 veranschaulicht einen Ablaufplan eines beispielhaften Verfahrens zur dezentralen Sendeverschlüsselung gemäß Ausführungsformen der vorliegenden Offenbarung.
    • 4A veranschaulicht eine Cloud-Computing-Umgebung gemäß Ausführungsformen der vorliegenden Offenbarung.
    • 4B veranschaulicht Abstraktionsmodellschichten gemäß Ausführungsformen der vorliegenden Offenbarung.
    • 5 veranschaulicht ein Übersichts-Blockschaubild eines beispielhaften Computersystems, das zum Implementieren eines oder mehrerer der hier beschriebenen Verfahren, Tools und Module sowie der damit verbundenen Funktionen gemäß Ausführungsformen der vorliegenden Offenbarung verwendet werden kann.
  • Verschiedene Änderungen und andere Formen sind für die hier beschriebenen Ausführungsformen zwar möglich, die Besonderheiten sind jedoch beispielhaft in den Zeichnungen dargestellt und werden ausführlich beschrieben. Es wird jedoch darauf hingewiesen, dass die beschriebenen besonderen Ausführungsformen nicht in einem einschränkenden Sinn zu verstehen sind. Alle Änderungen, Äquivalente und Alternativen, die unter den Anwendungsbereich der Offenbarung fallen, sollen vielmehr mitaufgenommen werden.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Aspekte der vorliegenden Offenbarung beziehen sich allgemein auf das Gebiet der digitalen Medien und insbesondere auf Dezentralisieren der Sendeverschlüsselung und Schlüsselerzeugung, die digitalen Medien zugehörig sind. Die Sendeverschlüsselung befasst sich derzeit mit dem Problem des Sendens verschlüsselter Daten. Bei jeder Übertragung gibt es eine Gruppe von „privilegierten“ Benutzern, die die Daten entschlüsseln können, und eine Gruppe von „gesperrten“ (z.B. nichtkonformen) Benutzern, die keinen Zugriff auf die Daten haben sollten. Darüber hinaus gibt es eine Zentrale/Einrichtung, die zunächst an alle Benutzer Schlüssel verteilt und bei jeder Sitzung verschlüsselte Daten sendet. Die gesendeten Daten werden in jeder Sitzung mit einem zufälligen Sitzungsschlüssel verschlüsselt. Der Sitzungsschlüssel wird wiederum mit anderen Schlüsseln verschlüsselt, und die Verschlüsselungen des Sitzungsschlüssels werden als Kopfzeile mit dem verschlüsselten Hauptteil gesendet.
  • Naor, Naor, Lotspiech (NNL) schlugen eine Teilmengen-Differenz (Subset Difference, SSD) vor, bei der es sich um eine der gängigsten Implementierungen des Sendeverschlüsselns handelt. Die Einrichtung, die das gesamte kryptografische Material in einem Sendeverschlüsselungssystem erzeugt, wird als Schlüsselerzeugungseinrichtung (Key Generation Facility, KGF) bezeichnet. Bislang sind die bestehenden Implementierungen der Sendeverschlüsselung und ihrer KGF jedoch sehr zentralisiert. Für die derzeitigen Implementierungen ist ein nicht unerheblicher Aufwand an menschlicher Aufsicht und Bedienung erforderlich, und sie weisen einen Single Point of Failure (z.B. KGF) auf.
  • Die meisten der bestehenden Ansätze und Implementierungen der Sendeverschlüsselung sind darüber hinaus zentralisiert. Sie weisen daher Nachteile auf, die sich durch die Beschränkung auf eine zentralisierte Lösung ergeben. Die meisten KGFs enthalten ferner vertrauliche Informationen, die einem Ökosystem und Teilnehmern des Ökosystems (z.B. Eigentümer von Inhalt, Einheitenhersteller usw.) zugehörig sind. In einem Blu-ray-Szenario kann man beispielsweise allein aus den Informationen über die Menge bestimmter Schlüsselarten ableiten, dass die Veröffentlichung einer neuen Videospielkonsole geplant ist oder dass demnächst mehrere Filme von einem großen Studio/Eigentümer von Inhalt veröffentlicht werden. Der Schutz vertraulicher Informationen ist daher von entscheidender Bedeutung, und kein Teilnehmer sollte vertrauliche Informationen verwenden oder aufbewahren.
  • Da die derzeitigen Lösungen zentralisiert sind, sind die Entwicklung, Bereitstellung und der Betrieb einer Einrichtung zur Wiederherstellung nach einem Ausfall daher unerlässlich. Das Unternehmen, das das Erzeugen von Schlüsselmaterial durchführt, muss zum Beispiel mindestens einmal im Jahr eine „Ausfallsicherungsübung“ (Fail Over Exercise) machen, bei der die zentrale Einrichtung heruntergefahren wird und die Einrichtung zur Wiederherstellung nach einem Ausfall für einen bestimmten Zeitraum in Betrieb genommen wird, um sicherzustellen, dass alle Aufträge von dieser Einrichtung bearbeitet werden können.
  • Kurz gesagt: Aktuelle Lösungen müssen dezentralisiert werden, um im Falle eines Ausfalls der Einrichtung vertrauliche Informationen zu schützen und Daten zu sichern, aktuelle KGF-Lösungen können jedoch nicht in einer Blockchain funktionieren, wie sie derzeit implementiert ist. Wie erörtert, befassen sich die hier vorgestellten Lösungen mit der folgenden Frage: inwieweit kann die KGF dezentralisiert werden? Wenn dies nicht vollständig möglich ist, welche Komponente eignen sich dafür, ein Blockchain-Ledger entweder auszuführen oder mit diesem zu interagieren? Kurz gesagt: Hier wird ein verteiltes Blockchain-Framework vorgeschlagen, das jedes Sendeverschlüsselungssystem und seine zugehörige KGF verwenden kann, um die Funktionalität zu verbessern. Wie im Verlauf der vorliegenden Offenbarung näher erläutert wird, ist diese Blockchain-gestützte KGF effizienter als derzeitige Implementierungen von KGFs.
  • Es versteht sich, dass die unmittelbaren Komponenten, die in den Figuren hier allgemein beschrieben und veranschaulicht sind, in vielen verschiedenen Konfigurationen angeordnet und ausgeführt sein können. Die folgende ausführliche Beschreibung der Ausführungsformen eines Verfahrens, einer Vorrichtung, eines nichtflüchtigen, durch einen Computer lesbaren Mediums und/oder eines Systems, wie in den beigefügten Figuren dargestellt, soll daher den Anwendungsbereich der beanspruchten Anmeldung nicht einschränken, sondern stellt lediglich ausgewählte Ausführungsformen dar.
  • Die in dieser Beschreibung dargelegten unmittelbaren Merkmale, Strukturen oder Eigenschaften können in jeder geeigneten Weise in einer oder mehreren Ausführungsformen kombiniert oder entfernt werden. Die Ausdrücke „beispielhafte Ausführungsformen“, „einige Ausführungsformen“ oder andere ähnliche Begriffe in dieser Beschreibung beziehen sich darauf, dass ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Eigenschaft, das/die in Verbindung mit der Ausführungsform beschrieben wird, in mindestens einer Ausführungsform enthalten sein kann. Daher beziehen sich die Ausdrücke „beispielhafte Ausführungsformen“, „in einigen Ausführungsformen“, „in anderen Ausführungsformen“ oder ähnliche Begriffe in dieser Beschreibung nicht unbedingt alle auf dieselbe Gruppe von Ausführungsformen, und die beschriebenen Merkmale, Strukturen oder Eigenschaften können in geeigneter Weise in einer oder mehreren Ausführungsformen kombiniert oder entfernt werden. Weiterhin kann in den FIGUREN jede Verbindung zwischen Elementen eine Einweg- und/oder Hin- und Rückweg-Datenübertragung ermöglichen, auch wenn die dargestellte Verbindung ein einseitig oder zweiseitig gerichteter Pfeil ist. Ferner kann jede in den Zeichnungen dargestellte Einheit eine andere Einheit sein. Wenn zum Beispiel eine mobile Einheit gezeigt wird, die Informationen sendet, könnte auch eine drahtgebundene Einheit verwendet werden, um die Informationen zu senden.
  • Auch wenn in der Beschreibung der Ausführungsformen der Begriff „Nachricht“ verwendet wird, kann die Anwendung auf viele Arten von Netzwerken und Daten angewendet werden. Bestimmte Arten von Verbindungen, Nachrichten und Signalübertragungen können darüber hinaus zwar in beispielhaften Ausführungsformen dargestellt werden, die Anwendung ist jedoch nicht auf eine bestimmte Art von Verbindung, Nachricht und Signalübertragung beschränkt.
  • Hier werden ein Verfahren, ein System und ein Computerprogrammprodukt näher beschrieben, die Sendeverschlüsselung und Schlüsselerzeugung/Schlüsselerzeugungseinrichtungen dezentralisieren.
  • In einigen Ausführungsformen verwenden das Verfahren, das System und/oder das Computerprogrammprodukt eine dezentrale Datenbank (z.B. eine Blockchain), bei der es sich um ein verteiltes Speichersystem handelt, das mehrere Knoten umfasst, die untereinander Daten austauschen. Die dezentrale Datenbank kann eine unveränderliche „Append-only“-Datenstruktur (append-only = nur hinzufügen) umfassen, die einem Distributed Ledger ähnelt und in der Lage ist, Datensätze zwischen gegenseitig nichtvertrauenswürdigen Parteien zu verwalten. Die nichtvertrauenswürdigen Parteien werden hier als Peers oder Peer-Knoten bezeichnet. Jeder Peer verwaltet eine Kopie der Datenbanksätze, und kein Peer alleine kann die Datenbanksätze ändern, ohne dass darüber ein Konsens zwischen den verteilten Peers erzielt wird. Die Peers können beispielsweise ein Konsensprotokoll ausführen, um Blockchain-Speichertransaktionen zu validieren, die Speichertransaktionen in Blöcke zu gruppieren und eine Hash-Kette über die Blöcke zu erzeugen. Dieser Prozess führt zur Bildung des Ledger, indem die Speichertransaktionen so in eine Reihenfolge gebracht werden, wie es für die Konsistenz erforderlich ist.
  • In verschiedenen Ausführungsformen kann eine genehmigungspflichtige und/oder eine genehmigungsfreie Blockchain verwendet werden. Bei einer öffentlichen oder genehmigungsfreien Blockchain kann jeder teilnehmen, ohne dass eine bestimmte Identität erforderlich ist (z.B. die Anonymität bleibt gewahrt). Öffentliche Blockchains können native Kryptowährungen umfassen und verwenden einen Konsens auf der Grundlage verschiedener Protokolle wie z.B. Proof-of-Work. Andererseits stellt eine genehmigungspflichtige Blockchain-Datenbank sichere Interaktionen zwischen einer Gruppe von Entitäten bereit, die ein gemeinsames Ziel verfolgen, sich jedoch gegenseitig nicht vollständig vertrauen, z.B. Unternehmen, die Geldmittel, Waren, (private) Informationen und Ähnliches austauschen.
  • In einigen Ausführungsformen können das Verfahren, das System und/oder das Computerprogrammprodukt eine Blockchain verwenden, die eine beliebige, programmierbare Logik ausführt, die auf ein dezentrales Schema zur Datenspeicherung zugeschnitten ist und als „Smart Contracts“ der „Chaincodes“ bezeichnet wird. In einigen Fällen können spezielle Chaincodes für Verwaltungsfunktionen und Parameter zur Verfügung stehen, die als System-Chaincode bezeichnet werden (wie Verwalten des Zugriffs auf einen Datenspeicher/eine Datenbank außerhalb der Chain). In einigen Ausführungsformen können das Verfahren, das System und/oder das Computerprogrammprodukt weiterhin Smart Contracts verwenden, bei denen es sich um vertrauenswürdige verteilte Anwendungen handelt, die fälschungssichere Eigenschaften der Blockchain-Datenbank und eine zugrunde liegende Vereinbarung zwischen den Knoten nutzen, die als Endorsement (Bestätigung) oder Endorsement Policy (Bestätigungsrichtlinie) bezeichnet wird.
  • Eine Endorsement Policy ermöglicht einem Chaincode, Endorser (Bestätiger) für eine Transaktion in Form eines Satzes von Peer-Knoten anzugeben, die für die Bestätigung notwendig sind. Wenn ein Client die Transaktion an die in der Endorsement Policy angegebenen Peers (z.B. Endorser) sendet, wird die Transaktion ausgeführt, um die Transaktion zu validieren. Nach dem Validieren beginnt eine Sortierphase für die Transaktionen, in der ein Konsensprotokoll verwendet wird, um eine geordnete Folge von bestätigten Transaktionen zu erstellen, die in Blöcken gruppiert sind.
  • In einigen Ausführungsformen können das Verfahren, das System und/oder das Computerprogrammprodukt Knoten verwenden, bei denen es sich um die Datenübertragungsentitäten des Blockchain-Systems handelt. Ein „Knoten“ kann eine logische Funktion in dem Sinne durchführen, dass mehrere Knoten unterschiedlichen Typs auf demselben physischen Server laufen können. Knoten werden in Vertrauensbereichen gruppiert und sind logischen Entitäten zugehörig, die sie auf verschiedene Weise steuern. Die Knoten können verschiedene Typen umfassen, z.B. einen Client- oder sendenden Client-Knoten, der einen Transaktionsaufruf an einen Endorser (z.B. einen Peer) sendet und Transaktionsvorschläge an einen Sortierdienst (z.B. einen Sortierknoten (ordering node)) übermittelt.
  • Ein anderer Typ von Knoten ist ein Peer-Knoten, der vom Client gesendete Transaktionen empfangen, die Transaktionen festschreiben und einen Zustand und eine Kopie des Ledger der Blockchain-Transaktionen verwalten kann. Peers können auch die Rolle eines Endorser übernehmen, was jedoch nicht zwingend erforderlich ist. Ein Sortierdienstknoten oder Sortierer (orderer) ist ein Knoten, der den Datenübertragungsdienst für alle Knoten durchführt und eine Zustellungsgarantie implementiert, z.B. eine Übertragung an alle Peer-Knoten im System, wenn Transaktionen festgeschrieben/bestätigt werden und ein aktueller Zustand (World State) der Blockchain geändert wird, was ein anderer Name für die anfängliche Blockchain-Transaktion ist, die normalerweise Steuerungs- und Einrichtungsinformationen umfasst.
  • In einigen Ausführungsformen können das Verfahren, das System und/oder das Computerprogrammprodukt ein Ledger verwenden, bei dem es sich um eine sequenzierte, fälschungssichere Aufzeichnung aller Zustandswechsel einer Blockchain handelt. Zustandswechsel können sich aus Chaincode-Aufrufen (z.B. Transaktionen) ergeben, die von beteiligten Parteien (z.B. Client-Knoten, Sortierknoten, Endorser-Knoten, Peer-Knoten usw.) gesendet werden. Jede teilnehmende Partei (z.B. ein Peer-Knoten) kann eine Kopie des Ledger unterhalten. Eine Transaktion kann dazu führen, dass ein Satz von Asset-Schlüsselwertpaaren als ein oder mehrere Operanden im Ledger festgeschrieben werden, z.B. Erzeugen, Aktualisieren, Löschen und Ähnliches. Das Ledger umfasst eine Blockchain (auch als Chain bezeichnet), in der ein unveränderlicher, sequenzierter Datensatz in Blöcken gespeichert wird. Das Ledger umfasst auch eine Zustandsdatenbank, in der ein aktueller Zustand der Blockchain festgehalten wird.
  • In einigen Ausführungsformen können das hier beschriebene Verfahren, System und/oder Computerprogrammprodukt eine Chain verwenden, bei der es sich um ein Transaktionsprotokoll handelt, das als Hash-verknüpfte Blöcke strukturiert ist, wobei jeder Block eine Abfolge von N Transaktionen enthält, wobei N gleich oder größer als eins ist. Der Blockkopf umfasst einen Hash der Transaktionen des Blocks sowie einen Hash des Kopfes des vorherigen Blocks. Auf diese Weise können alle Transaktionen im Ledger sequenziert und kryptografisch miteinander verknüpft werden. Es ist daher nicht möglich, die Ledger-Daten zu manipulieren, ohne die Hash-Verknüpfungen zu beschädigen. Ein Hash eines zuletzt hinzugefügten Blockchain-Blocks stellt jede Transaktion in der Chain dar, die vor ihm stattgefunden hat, wodurch sichergestellt werden kann, dass sich alle Peer-Knoten in einem einheitlichen und vertrauenswürdigen Zustand befinden. Die Chain kann in einem Peer-Knoten-Dateisystem gespeichert werden (z.B. lokal, in einem angeschlossenen Speicher, in der Cloud usw.), wodurch der Append-only-Charakter der Arbeitslast der Blockchain wirksam unterstützt wird.
  • Der aktuelle Zustand des unveränderlichen Ledger stellt die neuesten Werte für alle Schlüssel dar, die im Transaktionsprotokoll der Chain enthalten sind. Da der aktuelle Zustand die neuesten Schlüsselwerte darstellt, die einem Kanal bekannt sind, wird er manchmal auch als „World State“ bezeichnet. Chaincode-Aufrufe führen mit den Daten des aktuellen Zustands des Ledger Transaktionen aus. Damit diese Chaincode-Interaktionen effizient sind, können die aktuellen Werte der Schlüssel in einer Zustandsdatenbank gespeichert werden. Die Zustandsdatenbank kann einfach eine indizierte Ansicht des Transaktionsprotokolls der Chain sein, daher kann sie jederzeit anhand der Chain neu erzeugt werden. Die Zustandsdatenbank kann automatisch wiederhergestellt (oder erzeugt) werden, wenn der Peer-Knoten gestartet wird und bevor Transaktionen angenommen werden.
  • Zu einigen Vorteilen der hier beschriebenen und dargestellten Sofortlösungen gehören ein Verfahren, ein System und ein Computerprogrammprodukt zum Dezentralisieren von Sendeverschlüsselung und Schlüsselerzeugungseinrichtungen. Die beispielhaften Ausführungsformen lösen die (vorstehend erörterten) Probleme des Datenschutzes im Zusammenhang mit Medien/digitalen Medien.
  • Es sei darauf hingewiesen, dass die Blockchain sich von einer herkömmlichen Datenbank dadurch unterscheidet, dass die Blockchain kein zentraler Speicher, sondern ein dezentraler, unveränderlicher und sicherer Speicher ist, bei dem sich die Knoten an den Änderungen der Datensätze im Speicher beteiligen können. Zu einigen Eigenschaften, die charakteristisch für eine Blockchain sind und die zum Implementieren der Blockchain beitragen, gehören, ohne auf diese beschränkt zu sein, ein unveränderliches Ledger, Smart Contracts, Sicherheit, Datenschutz, Dezentralisierung, Konsens, Bestätigung, Zugänglichkeit usw., die hier weiter beschrieben werden. Gemäß verschiedenen Aspekten wird das hier beschriebene System aufgrund der unveränderlichen Verantwortlichkeit, der Sicherheit, des Datenschutzes, der zulässigen Dezentralisierung, der Verfügbarkeit von Smart Contracts, Bestätigungen und der Zugänglichkeit implementiert, die für die Blockchain charakteristisch und spezifisch sind.
  • Die Daten des Blockchain-Ledger sind insbesondere unveränderlich, was ein effizientes Verfahren zum Dezentralisieren von Sendeverschlüsselung und Schlüsselerzeugungseinrichtungen bereitstellt. Die Verschlüsselung in der Blockchain stellt darüber hinaus Sicherheit bereit und sorgt für Vertrauenswürdigkeit. Der Smart Contract verwaltet den Zustand des Assets, um den Lebenszyklus zu beenden. Bei den beispielhaften Blockchains handelt es sich um genehmigungspflichtige, dezentrale Blockchains. Auf diese Weise kann jeder Endnutzer seine eigene Kopie des Ledger haben, auf die er zugreifen kann. In das Blockchain-Netzwerk können mehrere Organisationen (und Peers) eingebunden werden. Die Hauptorganisationen können als bestätigende Peers fungieren, um die Ergebnisse der Ausführung des Smart Contract sowie den Lese- und Schreibsatz zu validieren. Mit anderen Worten: Die für die Blockchain charakteristischen Merkmale stellen eine effiziente Implementierung für die Sendeverschlüsselung und Schlüsselerzeugung bereit.
  • Einer der Vorteile der beispielhaften Ausführungsformen besteht darin, dass die Funktionalität eines Datenverarbeitungssystems verbessert wird, indem ein Verfahren zum Dezentralisieren von Sendeverschlüsselung und Schlüsselerzeugungseinrichtungen implementiert wird (z.B. durch Aufteilen der Schlüsselerzeugungsknotenpunkte und die Möglichkeit, dass die Peers Kopien der Zugriffe auf Medien behalten können). Es sei darauf hingewiesen, dass es sich bei der Blockchain daher nicht einfach nur um eine Datenbank handelt, die Blockchain verfügt über Funktionen, um ein Netzwerk von Benutzern und internen/externen Organisationen/Entitäten/Benutzern zu schaffen, die zusammenarbeiten und Dienstprozesse in Form von Smart Contracts (die Medien/digitalen Medien zugehörig sind) auszuführen.
  • Die beispielhaften Ausführungsformen stellen erhebliche Vorteile gegenüber einer herkömmlichen Datenbank bereit. Durch die Blockchain stellen die Ausführungsformen zum Beispiel unveränderliche Verantwortlichkeit, Sicherheit, Datenschutz, zulässige Dezentralisierung, Verfügbarkeit von Smart Contracts, Berechtigungen und Zugänglichkeit bereit, die für die Blockchain charakteristisch und spezifisch sind.
  • Eine herkömmliche Datenbank könnte hingegen nicht verwendet werden, um die beispielhaften Ausführungsformen zu implementieren, da sie nicht alle Parteien in das Netzwerk einbindet, keine vertrauenswürdige Zusammenarbeit ermöglicht und kein effizientes Festschreiben von Transaktionen mit überprüfbaren Berechtigungsnachweisen bereitstellt. Die herkömmliche Datenbank stellt kein fälschungssicheres Speichern und keinen Schutz von in einer Transaktion enthaltenen überprüfbaren Berechtigungsnachweisen bereit. Die hier beschriebenen, vorgeschlagenen Ausführungsformen, die Blockchain-Netzwerke verwenden, können daher nicht in der herkömmlichen Datenbank implementiert werden.
  • Würde hingegen eine herkömmliche Datenbank zum Implementieren der beispielhaften Ausführungsformen verwendet, hätten die beispielhaften Ausführungsformen unnötige Nachteile wie mangelnde Sicherheit und langsame Wiederherstellung von Daten zu verzeichnen. Die beispielhaften Ausführungsformen stellen somit eine spezifische Lösung für ein Problem in der Technik/auf dem Gebiet der Sendeverschlüsselung und Schlüsselerzeugung bereit.
  • Mit Bezug nunmehr auf 1A ist eine Blockchain-Architektur 100 gemäß Ausführungsformen der vorliegenden Offenbarung veranschaulicht. In einigen Ausführungsformen kann die Blockchain-Architektur 100 bestimmte Blockchain-Elemente enthalten, so beispielsweise eine Gruppe von Blockchain-Knoten 102. Die Blockchain-Knoten 102 können einen oder mehrere Blockchain-Knoten, z.B. die Peers 104 bis 110, umfassen (diese vier Knoten sind nur beispielhaft dargestellt). Diese Knoten sind an einer Reihe von Aktivitäten beteiligt, z.B. am Hinzufügen von Blockchain-Transaktionen und am Validierungsprozess (Konsens). Ein oder mehrere Peers 104 bis 110 können Transaktionen auf der Grundlage einer Endorsement Policy bestätigen und/oder empfehlen und einen Sortierdienst für alle Blockchain-Knoten 102 in der Architektur 100 bereitstellen. Ein Blockchain-Knoten kann eine Blockchain-Authentifizierung initiieren und versuchen, in ein unveränderliches Blockchain-Ledger zu schreiben, das in der Blockchain-Schicht 116 gespeichert ist, von der eine Kopie auch in der zugrunde liegenden physischen Infrastruktur 114 gespeichert sein kann. Die Blockchain-Konfiguration kann eine oder mehrere Anwendungen 124 umfassen, die mit Anwendungsprogrammierschnittstellen (APIs) 122 verbunden sind, um auf gespeicherten Programm-/Anwendungscode 120 (z.B. Chaincode, Smart Contracts usw.) zuzugreifen und diesen auszuführen, der entsprechend einer von den Teilnehmern gewünschten individuellen Konfiguration erzeugt werden kann und der seinen eigenen Zustand aufrechterhalten, seine eigenen Assets kontrollieren und externe Informationen empfangen kann. Dies kann als Transaktion implementiert und durch Anhängen an das Distributed Ledger auf allen Blockchain-Knoten 104 bis 110 implementiert werden.
  • Die Blockchain-Basis oder -Plattform 112 kann verschiedene Schichten von Blockchain-Daten, Diensten (z.B. kryptographische Vertrauensdienste, virtuelle Ausführungsumgebung usw.) und die zugrunde liegende physische Computerinfrastruktur umfassen, die dazu verwendet werden kann, neue Transaktionen zu empfangen und zu speichern und Prüfern, die auf Dateneinträge zugreifen wollen, den Zugriff bereitzustellen. Die Blockchain-Schicht 116 kann eine Schnittstelle zur Verfügung stellen, die den Zugriff auf die virtuelle Ausführungsumgebung bereitstellt, die erforderlich ist, um den Programmcode zu verarbeiten und die physische Infrastruktur 114 zu nutzen. Die kryptografischen Vertrauensdienste 118 können verwendet werden, um Transaktionen wie Verschlüsselung und Schlüsselerzeugung zu überprüfen und Informationen vertraulich zu halten.
  • Die Blockchain-Architektur 100 von 1A kann Programm-/ Anwendungscode 120 über eine oder mehrere von der Blockchain-Plattform 112 zur Verfügung gestellte Schnittstellen und bereitgestellte Dienste verarbeiten und ausführen. Der Anwendungscode 120 kann Blockchain-Assets steuern. Der Anwendungscode 120 kann beispielsweise Daten speichern und übertragen und von den Peers 104 bis 110 in Form eines Smart Contract und eines zugehörigen Chaincodes mit Bedingungen oder anderen Codeelementen ausgeführt werden, die seiner Ausführung unterliegen. Smart Contracts können in einem nichteinschränkenden Beispiel erzeugt werden, um das Übertragen von Assets/Ressourcen, das Erzeugen von Assets/Ressourcen usw. durchzuführen. Die Smart Contracts können ihrerseits verwendet werden, um Regeln zu bestimmen, die der Berechtigung (z.B. Asset-Übertragungsregeln, Beschränkungen, Verschlüsselung/Schlüsselerzeugung usw.), Zugriffsanforderungen (z.B. für einen Datenspeicher, einen Datenspeicher außerhalb der Chain, wer an einer Transaktion teilnehmen darf [Zugriff auf den Inhalt eines Mediums/der Medien] usw.) und/oder der Verwendung des Ledger zugehörig sind. Beispielsweise können die Medienzugriffsdaten 126 (z.B. Schlüssel zum Zugreifen auf den Inhalt eines Mediums) von einer oder mehreren Verarbeitungsentitäten (z.B. virtuelle Maschinen) verarbeitet werden, die in der Blockchain-Schicht 116 enthalten sind. Das Ergebnis 128 kann eine Mehrzahl von verknüpften, gemeinsam genutzten Dokumenten sein (wobei jedes verknüpfte, gemeinsam genutzte Dokument z.B. die Ausgabe eines Smart Contract in Bezug auf die Medienzugriffsdaten 126 aufzeichnet). In einigen Ausführungsformen kann die physische Infrastruktur 114 zum Abrufen der hier beschriebenen Daten/Informationen/Assets/usw. verwendet werden.
  • Ein Smart Contract kann über eine hochentwickelte Anwendung und Programmiersprache erzeugt und dann in einen Block in der Blockchain geschrieben werden. Der Smart Contract kann einen ausführbaren Code enthalten, der in einer Blockchain (z.B. einem verteilten Netzwerk von Blockchain-Peers) registriert, gespeichert und/oder repliziert wird. Eine Transaktion ist eine Ausführung des Codes des Smart Contract, die als Reaktion auf Bedingungen, die dem Smart Contract zugehörig sind und erfüllt werden, durchgeführt werden kann. Das Ausführen des Smart Contract kann (eine) vertrauenswürdige Änderung(en) eines Zustands eines digitalen Blockchain-Ledger auslösen. Die durch das Ausführen des Smart Contract verursachte(n) Änderung(en) des Blockchain-Ledger kann (können) automatisch im gesamten verteilten Netzwerk von Blockchain-Peers durch ein oder mehrere Konsensprotokolle repliziert werden.
  • Der Smart Contract kann Daten im Format von Schlüsselwertpaaren in die Blockchain schreiben. Darüber hinaus kann der Code des Smart Contract die in einer Blockchain gespeicherten Werte lesen und in Operationen der Anwendung verwenden. Der Code des Smart Contract kann die Ausgabe verschiedener logischer Operationen in die Blockchain schreiben. Der Code kann dazu verwendet werden, eine temporäre Datenstruktur in einer virtuellen Maschine oder einer anderen Datenverarbeitungsplattform zu erzeugen. Daten, die in die Blockchain geschriebenen werden, können öffentlich sein und/oder verschlüsselt und als vertraulich behandelt werden. Die temporären Daten, die vom Smart Contract verwendet/erzeugt werden, werden von der bereitgestellten Ausführungsumgebung im Speicher gespeichert und dann gelöscht, sobald die für die Blockchain benötigten Daten identifiziert sind.
  • Ein Chaincode kann die Code-Interpretation eines Smart Contract umfassen und zusätzliche Funktionen enthalten. Wie hier beschrieben, kann es sich bei dem Chaincode um einen Programmcode handeln, der in einem Datenverarbeitungsnetzwerk implementiert wird, wo er von den Chain-Validierern im Rahmen eines Konsensverfahrens ausgeführt und validiert wird. Der Chaincode empfängt einen Hash und ruft aus der Blockchain einen Hash ab, der der Datenvorlage zugehörig ist, die durch die Verwendung eines zuvor gespeicherten Merkmalsextraktors erzeugt wurde. Stimmen die Hashes der Hash-Kennung und der aus den gespeicherten Kennungsvorlagedaten erzeugte Hash überein, sendet der Chaincode einen Autorisierungsschlüssel an den angeforderten Dienst. Der Chaincode kann Daten in die Blockchain schreiben, die den kryptografischen Einzelheiten zugehörig sind (z.B. Festschreiben eines Zugriffs auf ein Medium in der Blockchain).
  • 1B veranschaulicht ein Beispiel für einen Blockchain-Transaktionsablauf 150 zwischen Knoten der Blockchain gemäß einer beispielhaften Ausführungsform. Mit Bezug auf 1B kann der Transaktionsablauf einen Transaktionsvorschlag 191 umfassen, der von einem Anwendungs-Client-Knoten 160 an einen bestätigenden Peer-Knoten 181 gesendet wird. Der bestätigende Peer 181 kann die Client-Signatur prüfen und eine Chaincode-Funktion ausführen, um die Transaktion zu initiieren. Die Ausgabe kann die Chaincode-Ergebnisse, einen Satz von Schlüssel/Wert-Versionen, die im Chaincode gelesen wurden (Lesesatz), und den Satz von Schlüsseln/Werten, die in den Chaincode geschrieben wurden (Schreibsatz), umfassen. Die Antwort 192 auf den Vorschlag wird zusammen mit einer Bestätigungssignatur (falls genehmigt) an den Client 160 zurückgesendet. Der Client 160 stellt die Bestätigungen in den Transaktionsnutzdaten 193 zusammen und übertragt diese an einen Sortierdienstknoten 184. Der Sortierdienstknoten 184 gibt dann die sortierten Transaktionen als Blöcke an alle Peers 181 bis 183 in einem Kanal aus. Vor dem Festschreiben in der Blockchain kann jeder Peer 181 bis 183 die Transaktion validieren. So können die Peers beispielsweise die Endorsement Policy überprüfen, um sicherzustellen, dass die richtige Anzahl der angegebenen Peers die Ergebnisse signiert und die Signaturen anhand der Transaktionsnutzdaten 193 authentifiziert hat.
  • Mit erneutem Bezug auf 1B initiiert der Client-Knoten 160 die Transaktion 191, indem er eine Anforderung erzeugt und an den Peer-Knoten 181 sendet, bei dem es sich in diesem Beispiel um einen Endorser handelt. Der Client 160 kann eine Anwendung umfassen, die ein unterstütztes Software-Entwicklungskit (software development kit - SDK) nutzt, das eine verfügbare API verwendet, um einen Transaktionsvorschlag 191 zu erzeugen. Bei dem Vorschlag handelt es sich um eine Anforderung, eine Chaincode-Funktion aufzurufen, damit Daten gelesen und/oder in das Ledger geschrieben werden können. Das SDK kann das Paket des Transaktionsvorschlags 191 in ein geeignetes Architekturformat verkleinern (z.B. Protokollpuffer über einen Fernprozeduraufruf (remote procedure call - RPC)) und die kryptografischen Berechtigungsnachweise des Clients verwenden, um eine eindeutige Signatur für den Transaktionsvorschlag 191 zu erzeugen.
  • Als Reaktion darauf kann der bestätigende Peer-Knoten 181 prüfen, ob (a) der Transaktionsvorschlag 191 korrekt formatiert ist, (b) die Transaktion nicht bereits in der Vergangenheit gesendet wurde (Schutz vor Wiederholungsangriffen), (c) die Signatur gültig ist und (d) dass der Sender (im Beispiel der Client 160) ordnungsgemäß berechtigt ist, die vorgeschlagene Operation auf diesem Kanal durchzuführen. Der bestätigende Peer-Knoten 181 kann die Eingaben des Transaktionsvorschlags 191 als Argumente für die aufgerufene Chaincode-Funktion verwenden. Der Chaincode wird dann auf der Grundlage einer Datenbank mit dem aktuellen Zustand ausgeführt, um Transaktionsergebnisse zu erzeugen, darunter ein Antwortwert, ein Lesesatz und ein Schreibsatz. Das Ledger wird zu diesem Zeitpunkt jedoch nicht aktualisiert. In einigen Ausführungsformen werden der Satz von Werten zusammen mit der Signatur des bestätigenden Peer-Knotens 181 als Antwort 192 auf den Vorschlag an das SDK des Clients 160 zurückgesendet, der die Nutzdaten für die Anwendung zur Nutzung analysiert.
  • Als Reaktion darauf überprüft/verifiziert die Anwendung des Clients 160 die Signaturen der bestätigenden Peers und vergleicht die Vorschlagsantworten, um zu ermitteln, ob die Vorschlagsantwort dieselbe ist. Würde der Chaincode nur das Ledger abfragen, würde die Anwendung die Antwort auf die Abfrage überprüfen und die Transaktion in der Regel nicht an den Sortierdienstknoten 184 senden. Beabsichtigt die Client-Anwendung, die Transaktion zum Aktualisieren des Ledger an den Sortierknotendienst 184 zu senden, ermittelt die Anwendung vor dem Senden, ob die angegebene Endorsement Policy erfüllt ist. In diesem Fall kann der Client nur eine von mehreren an der Transaktion beteiligten Parteien aufnehmen. In diesem Fall kann jeder Client seinen eigenen bestätigenden Knoten haben, und jeder bestätigende Knoten muss die Transaktion bestätigen (es sei darauf hingewiesen, dass hier eine Lösung beschrieben wird, bei der jeder bestätigende Knoten eine Transaktion bestätigen muss). Die Architektur ist so angelegt, dass die Endorsement Policy auch dann von den Peers bestätigt und in der Phase des Festschreibens und Validierens aufrechterhalten wird, wenn eine Anwendung sich dafür entscheidet, Antworten nicht zu überprüfen oder ansonsten eine nichtbestätigte Transaktion weiterzuleiten.
  • Nach erfolgreichem Überprüfen stellt der Client 160 im Transaktions-Nutzdaten-Schritt 193 Bestätigungen zu einer Transaktion zusammen und sendet den Transaktionsvorschlag 191 und die Antwort in einer Transaktionsnachricht an den Sortierknoten 184. Die Transaktion kann die Lese-/Schreibsätze, die Signaturen der bestätigenden Peers und eine Kanal-ID enthalten (z.B. wenn ein bestimmter Datenspeicher [außerhalb der Chain] verwendet werden soll usw.). Der Sortierknoten 184 muss nicht den gesamten Inhalt einer Transaktion überprüfen, um seine Operation durchzuführen; stattdessen kann der Sortierknoten 184 einfach Transaktionen von allen Kanälen im Netzwerk empfangen, sie chronologisch nach Kanal sortieren und Blöcke von Transaktionen pro Kanal erzeugen.
  • Die Blöcke der Transaktion werden vom Sortierknoten 184 an alle Peer-Knoten 181 bis 183 im Kanal übermittelt. Die Transaktionen 194 im Block werden validiert, um sicherzustellen, dass die Endorsement Policy erfüllt ist und dass keine Änderungen am Zustand des Ledger für die Variablen des Lesesatzes vorgenommen wurden, seit der Lesesatz durch das Ausführen der Transaktion erzeugt wurde. Transaktionen im Block werden als gültig oder ungültig gekennzeichnet. Darüber hinaus fügt jeder Peer-Knoten 181 bis 183 in Schritt 195 den Block an die Chain des Kanals an, und für jede gültige Transaktion werden die Schreibsätze in der aktuellen Zustandsdatenbank festgeschrieben. Es wird ein Ereignis ausgelöst, um die Client-Anwendung darüber zu informieren, dass die Transaktion (der Aufruf) unveränderlich an die Chain angehängt wurde, und um mitzuteilen, ob die Transaktion für gültig oder ungültig erklärt wurde (z.B. Zugriff auf das Medium/den Inhalt des Mediums wurde erlaubt/verweigert).
  • Mit Bezug nunmehr auf 2A ist ein beispielhaftes System 200A eines zentralen Ansatzes zur Sendeverschlüsselung gemäß Ausführungsformen der vorliegenden Offenbarung veranschaulicht. Wie dargestellt, umfasst das System 200A ein Medienlesegerät 202 (z.B. Blu-ray Player, Computer, Smartphone usw.), eine einheitenzugehörige Cloud 212 (z.B. die einer Eigentümerentität des Medienlesegeräts 202 oder eines Mediums 204 zugehörig sein kann) und eine Steuereinheit 214 (z.B. Eigentümerentität).
  • In einigen Ausführungsformen umfasst das Medienlesegerät 202 ein Medium 204 (z.B. das in das Medienlesegerät 202 eingelegt, auf das Medienlesegerät 202 heruntergeladen werden kann usw.), eine Freigabe-Ablagedatei 208A und einen Medienschlüssel (Km) 216. In einigen Ausführungsformen umfasst das Medium 204 einen Block 206A (z.B. Medienschlüsselblock [MKB]), und der Block 206A umfasst einen Ersatzschlüssel (Ks) 218A. In einigen Ausführungsformen umfasst die Freigabe-Ablagedatei 208A einen Korrekturschlüssel (Kc) 210A.
  • In einigen Ausführungsformen umfasst/enthält die einheitenzugehörige Cloud 212 eine Freigabe-Ablagedatei 208A, die ihrerseits einen Korrekturschlüssel 210B enthält. In einigen Ausführungsformen können die Freigabe-Ablagedatei 208A und der Korrekturschlüssel 210A identisch oder im Wesentlichen identisch mit der Freigabe-Ablagedatei 208B und dem Korrekturschlüssel 210B sein.
  • In einigen Ausführungsformen sei darauf hingewiesen, dass es sich bei dem System 200A um ein zentralisiertes System handelt, bei dem die Steuereinheit 214 die Kontrolle über die hier beschriebene Schlüsselerzeugung hat und die einheitenzugehörige Cloud 212 als KGF fungiert.
  • Wie dargestellt, kann das Medienlesegerät 202 feststellen, dass das Medium 204 vom Medienlesegerät 202 gelesen werden soll (z.B. Zugriff auf den Inhalt des Mediums 204 hat). Um das Medium 204 zu lesen, liest das Medienlesegerät 202 den Block 206A bzw. hat Zugriff auf den Block 206A und identifiziert den Ersatzschlüssel 218A. Das Medienlesegerät 202 liest auch die Freigabe-Ablagedatei 208A bzw. greift auf die Freigabe-Ablagedatei 208A zu und erhält den Korrekturschlüssel 210A. Das Medienlesegerät 202 verwendet anschließend den Ersatzschlüssel 218A und den Korrekturschlüssel 210A, um den Medienschlüssel 216 zu ermitteln (z.B. Km = f(Ks ⊕ Kc); wenn der Medienschlüssel korrekt ist, kann auf den Inhalt des Mediums 204 zugegriffen werden und dieser dem Benutzer präsentiert werden.
  • In einigen Ausführungsformen werden die Freigabe-Ablagedatei 208A und der Korrekturschlüssel 210A von der einheitenzugehörigen Cloud 212 als Freigabe-Ablagedatei 208A und Korrekturschlüssel 210B bereitgestellt, und die Freigabe-Ablagedatei 208A und der Korrekturschlüssel 210B werden von der Steuereinheit 214 bereitgestellt. In einigen Ausführungsformen wird die einheitenzugehörige Cloud 212 verwendet, wenn es sich bei dem Medienlesegerät 202 um eine mit dem Internet verbundene Einheit handelt, und der Korrekturschlüssel 210A wird als Korrekturschlüssel 210B von der einheitenzugehörigen Cloud abgerufen, wenn das Medium 204 sich in dem Medienlesegerät 202 befindet oder auf dieses heruntergeladen/hochgeladen wird und/oder wenn das Medienlesegerät 202 mit dem Internet verbunden ist.
  • Mit Bezug nunmehr auf 2B wird ein beispielhaftes System 200B eines dezentralen Ansatzes zur Sendeverschlüsselung gemäß Ausführungsformen der vorliegenden Offenbarung veranschaulicht. In einigen Ausführungsformen kann das System 200B identisch oder im Wesentlichen identisch mit dem System 200A von 2A sein. Es sei darauf hingewiesen, dass das System 200B und das System 200A gemeinsam identische Komponenten nutzen und dass gleiche Bezugsziffern verwendet werden, um gleiche Teile in den beigefügten Zeichnungen zu kennzeichnen.
  • Wie dargestellt, umfasst das System 200B nun einen Delta-Block (MKB_delta) 220 und verfügt im Vergleich zum System 200A von 2A über keine Freigabe-Ablagedatei 208A und keinen Korrekturschlüssel 210A. In einigen Ausführungsformen kann das Medienlesegerät 202 feststellen, dass das Medium 204 vom Medienlesegerät 202 gelesen werden soll (z.B. Zugriff auf den Inhalt des Mediums 204 hat). Um das Medium 204 zu lesen, liest das Medienlesegerät 202 den Block 206A bzw. hat Zugriff auf den Block 206A und identifiziert den Ersatzschlüssel 218A. Das Medienlesegerät 202 erhält auch den Korrekturschlüssel 210B und den Delta-Block 220 von der einheitenzugehörigen Cloud 212. Das Medienlesegerät 202 verwendet anschließend den Ersatzschlüssel 218A, den Korrekturschlüssel 210B und den Delta-Block 220, um den Medienschlüssel 216 zu ermitteln (z.B. Km = f(Ks ⊕ Kc, MKB_delta); wenn der Medienschlüssel korrekt ist, kann auf den Inhalt des Mediums 204 zugegriffen werden und dieser dem Benutzer präsentiert werden.
  • In einigen Ausführungsformen stellt der Delta-Block 220 eine zeitliche Veränderung des Blocks 206A dar; die vorgestellte Ausführungsform ermöglicht somit eine zeitlich orientierte Freigabe des Medieninhalts über eine Blockchain. Wenn zum Beispiel ein Film an einem bestimmten Datum veröffentlicht werden soll, kann ein Medium vor dem Veröffentlichungsdatum verteilt werden, wobei nicht alle Schlüssel (z.B. Korrekturschlüssel 210B) in dem Medium enthalten sind, und die benötigten Schlüssel können an dem bestimmten Datum freigegeben werden, damit der Inhalt zugänglich ist. Bei einem Zugriff kann ein Hinweis auf den Zugriff zu einem Ledger hinzugefügt werden, das die Nutzung des Mediums anzeigt.
  • Mit Bezug nunmehr auf 2C ist eine beispielhafte Aktualisierung eines Medienschlüsselblocks 250 gemäß Ausführungsformen der vorliegenden Offenbarung veranschaulicht. In einigen Ausführungsformen umfasst die Aktualisierung des Medienschlüsselblocks einen Zeitpunkt null (t0) bis zu einem Zeitpunkt dreißig (t30) (z.B. Instanzen), wobei jeder Zeitpunkt einen Block umfasst (z.B. Block 1 bis 3, Medienschlüsselblöcke usw.). In einigen Ausführungsformen befinden sich t0 bis t30 und die entsprechenden Blöcke 1 bis 3 in einem Zeitblock zum Verteilen von Medien (z.B. Medium 204), in dem nicht alle Schlüssel vergeben werden, um auf den Inhalt des Mediums zugreifen bzw. das Medium abspielen zu können.
  • In einigen Ausführungsformen wird von Zeitpunkt dreißig bis Zeitpunkt 45 (t45) ein Ersatzschlüssel (z.B. 208A) an/bei Block 4 verteilt, der einen ersten Schlüssel zum Festlegen des Zugriffs auf das Medium bereitstellt. In einigen Ausführungsformen kann nach dem Verteilen des Ersatzschlüssels ein Korrekturschlüssel (z.B. 210B) an/bei Block 5 verteilt werden. Es sei darauf hingewiesen, dass das Verteilen des Korrekturschlüssels Aufzeichnen des Verteilens als eine erste Transaktion (tn1) in einer Blockchain/einem Ledger umfasst. In einigen Ausführungsformen kann das Medium freigegeben werden (z.B. Freigabedatum für den Medieninhalt), und zu diesem Zeitpunkt kann eine Einheitzugriffsfestlegung, die eine Funktion des Ersatzschlüssels und des Korrekturschlüssels verwendet, als eine zweite Transaktion (tn2) zu der Blockchain hinzugefügt werden. In einigen Ausführungsformen kann die Einheitzugriffsfestlegung einen Smart Contract enthalten, der das Medienfreigabedatum angibt.
  • In einigen Ausführungsformen können nach der Medienfreigabe nachfolgende Zugriffe auf das Medium zu der Blockchain als weitere Transaktionen hinzugefügt werden und/oder Aktualisierungen (der Schlüssel) können dem Medium bereitgestellt und als weitere Transaktionen aufgezeichnet werden.
  • Es sei darauf hingewiesen, dass die verschiedenen Verbesserungen gegenüber den derzeitigen Lösungen offensichtlich sind, insbesondere: eine Einrichtung zur Wiederherstellung nach einem Ausfall wird nicht benötigt, da eine Blockchain standardmäßig über alle Informationen verfügt, die zum Wiederholen aller Aufträge erforderlich sind (z.B. Transaktionen/Schlüsseländerungen/Aktualisierungen); eine Migration der Einrichtung ist nicht mehr erforderlich, da sich die Informationen wiederum in einer Blockchain befinden; die Nutzung gemeinsamer Schlüssel wird nachverfolgt, indem die Benutzer gezwungen werden, beim ersten Zugriff auf Daten eine Blockchain-Transaktionen durchzuführen, außerdem kann die Häufigkeit, mit der eine Blockchain-Transaktion durchgeführt wird, variabel sein; es gibt ein neues Verfahren zum Berechnen von Korrekturschlüsseln, das die Eigenschaften der Blockchain nutzt; nur die Blockchain hat einen allgemeinen Überblick über den NNL-Baum, d.h., weder KGF-Betreiber (wie bisher) noch die Eigentümer von Inhalt/Steuereinheiten wissen, wie die Ressourcen im Baum zugewiesen werden; aufgrund des variablen Charakters der Blockchain können zu einem bestimmten Zeitpunkt mehrere Abdeckungen nebeneinander bestehen; und das einfache Nachverfolgen von Schlüsselvariationen funktioniert nicht nur bei binären NNL-Bäumen, sondern auch bei der allgemeinen Sendeverschlüsselung für k-adische Bäume.
  • Die hier bereitgestellte(n) Lösung(en) ermöglicht (ermöglichen) insbesondere Aktualisierungen des Medienschlüsselblocks und/oder einen Medienschlüsselblock auf Abruf mit einer aktuellen Abdeckung, die für das Internet der Dinge oder sehr dynamische Systeme, in denen Widerrufe häufig vorkommen, von wesentlicher Bedeutung sind.
  • Darüber hinaus ist die durch die Blockchain ermöglichte zeitlich orientierte Freigabe verschlüsselten Inhalts insofern neuartig, als der Inhalt einmal verschlüsselt wird und die Verteilung und Ermöglichung der Wiedergabe/des Zugriffs dann zu verschiedenen Zeiten/Tagen möglich ist. Dies ermöglicht das Erstellen/Erzeugen spezieller Abdeckungen, die eine Transaktion erfordern, um den Zugriff auf den Inhalt zu ermöglichen. In einer solchen Ausführungsform sind die Transaktionen sehr flexibel und können durch einen Smart Contract definiert werden, der sogar nach dem Verteilen des Mediums/Inhalts aktualisiert werden kann.
  • Eine weitere Neuheit liegt in der Nutzung von Blöcken (Medienschlüsselblöcke). Bei einer herkömmlichen Architektur kann ein Benutzer keinerlei Überprüfung vornehmen oder Informationen nutzen, bevor der Inhalt abgespielt wird. Mit dem hier erörterten Blockchain-Framework kann dies jedoch an verschiedenen Stellen nützlich sein, nicht nur bei der Wiedergabe.
  • Nicht zuletzt besteht eine weitere Neuheit darin, dass nichtberechtigte Benutzer durch Sendeverschlüsselung nachverfolgt werden können. Gegenwärtig können nichtberechtigte Benutzer (z. B. Hacker) potenziell einen individuellen Ansatz verwenden, um neue Variationen aus zwei oder mehr erzeugten/gegebenen/im praktischen Einsatz verwendeten Variationen zu erzeugen. Die Blockchain ermöglicht es jedoch, die gegebenen oder funktionsbedingten Variationen nachzuverfolgen. Man kann überprüfen, ob eine im praktischen Einsatz gefundene Variante (a) schon einmal verwendet wurde, (b) und wenn nicht, ob es sich um eine individuelle Variante handelt. In einer solchen Ausführungsform werden Honeypot-Variationen definiert, d.h. Variationen, die ein nichtberechtigter Benutzer zuerst ausprobieren würde. Zum Beispiel: Film-1 AABAAB, Film-1 BBABBA → Honeypot-Variante AAAAAAA BBBBBBB ABABABABABA.
  • Man könnte dann Strategien zum Festlegen der Abdeckung definieren, die entweder die Größe des Medienschlüsselblocks oder die Abdeckung (z. B. die Form) allgemein (z. B. für alle oder die meisten Lizenznehmer) verbessern. So können Lizenznehmer beispielsweise „Beschränkungen“ für die Abdeckung ihres Unternehmens festlegen, während benachbarte Lizenznehmer ihre Beschränkungen beseitigen könnten, um eine bessere Abdeckung zu erreichen.
  • Mit Bezug nunmehr auf 3 ist ein Ablaufplan eines beispielhaften Verfahrens 300 für eine dezentrale Sendeverschlüsselung veranschaulicht. In einigen Ausführungsformen kann das Verfahren 300 von einem Prozessor/Knoten und/oder Peer-Knoten in einem Blockchain-Netzwerk/System (z.B. das System 200B in 2B) durchgeführt werden. In einigen Ausführungsformen beginnt das Verfahren 300 bei Operation 302, wo der Prozessor einen oder mehrere Schlüssel in ein Medium integriert. Der eine oder mehrere Schlüssel können jeweils einer bestimmten Instanz zugehörig sein. Der eine oder mehrere Schlüssel können des Weiteren in einer Blockchain enthalten sein.
  • In einigen Ausführungsformen geht das Verfahren 300 zu Operation 304 weiter, wo der Prozessor feststellt, dass eine erste spezifische Instanz eingetreten ist. In einigen Ausführungsformen geht das Verfahren 300 zu Operation 306 weiter, wo der Prozessor einen ersten Schlüssel bereitstellt, der der ersten spezifischen Instanz zugehörig ist. In einigen Ausführungsformen geht das Verfahren 300 zu Operation 308 weiter, wo der Prozessor festlegt, ob ein Zugriff auf den Medieninhalt erlaubt wird. In einigen Ausführungsformen kann das Verfahren 300 nach der Operation 308 enden.
  • In einigen Ausführungsformen gibt es wie nachstehend erörtert eine oder mehrere Operationen des Verfahrens 300, die aus Gründen der Kürze nicht dargestellt sind. In einigen Ausführungsformen umfasst das Festlegen, dass der Zugriff auf das Medium erlaubt wird, Feststellen durch den Prozessor, dass es sich bei dem ersten Schlüssel um einen korrekten Schlüssel bei der spezifischen Instanz handelt, und Erlauben des Zugriffs auf den Medieninhalt.
  • In anderen Ausführungsformen umfasst das Festlegen, dass der Zugriff auf das Medium erlaubt wird, Feststellen durch den Prozessor, dass der erste Schlüssel ein gefährdeter Schlüssel ist (z.B. Honeypot-Schlüssel, falsch, nichtberechtigt usw.) und Widerrufen des Zugriffs auf den Medieninhalt.
  • In anderen Ausführungsformen umfasst das Festlegen, dass der Zugriff auf das Medium erlaubt wird, Feststellen durch den Prozessor, dass das Medium initiiert wird (z.B. geladen, abgespielt, hochgeladen usw.). Der Prozessor kann den ersten Schlüssel mit einem entsprechenden Schlüssel in der Blockchain vergleichen und feststellen, dass der erste Schlüssel nicht mit dem entsprechenden Schlüssel übereinstimmt. Der Prozessor kann den ersten Schlüssel als abgeleiteten Schlüssel aufzeichnen. Der Prozessor kann zum Beispiel feststellen, dass ein Medium nach einem Freigabedatum abgespielt wird, und feststellen, dass der erste Schlüssel, der zum Abspielen des Medieninhalts verwendet wird, nun alt ist, und den ersten Schlüssel mit einem neuen Schlüssel aktualisieren, der das Abspielen des Inhalts ermöglicht. Der Prozessor kann dann den ersten Schlüssel in der Blockchain aufzeichnen, um anzuzeigen, dass der neue Schlüssel den ersten Schlüssel ersetzt hat. In einem weiteren Beispiel kann der Prozessor feststellen, dass der erste Schlüssel nicht mit dem entsprechenden Schlüssel übereinstimmt, was darauf hinweisen kann, dass es sich bei dem ersten Schlüssel um einen Schlüssel handelt, der von einem nichtberechtigten Benutzer des Mediums verwendet wird, und der erste Schlüssel kann in der Blockchain aufgezeichnet werden, um nachfolgende nichtberechtigte Benutzer zu erkennen und aufzuhalten.
  • In einigen Ausführungsformen kann das Verfahren 300 weiterhin umfassen, dass der Prozessor feststellt, dass das Medium initiiert wird, und der Prozessor kann den ersten Schlüssel bestätigen (z.B. validieren, überprüfen usw.), indem er den ersten Schlüssel mit einem entsprechenden Schlüssel in der Blockchain vergleicht. In einigen Ausführungsformen kann das Verfahren 300 weiterhin umfassen, dass der Prozessor feststellt, dass eine zweite spezifische Instanz eingetreten ist, und der Prozessor kann den ersten Schlüssel durch einen zweiten zugehörigen Schlüssel ersetzen, der der zweiten spezifischen Instanz zugehörig ist. Wenn ein Benutzer zum Beispiel ein monatliches Medienabonnement hat, kann/können der/die Schlüssel für den Zugriff auf den Inhalt des Medienabonnements jeden Monat geändert/ersetzt werden.
  • In einigen Ausführungsformen handelt es sich bei der spezifischen Instanz um eine zeitbezogene Instanz, und die zeitbezogene Instanz kann von einer Einstellentität bereitgestellt werden. Wenn zum Beispiel eine Videospielkonsole auf den Markt gebracht werden soll, könnte die Videospielkonsole vor dem allgemeinen Veröffentlichungsdatum an Tester ausgeliefert werden. Die an die Tester ausgelieferten Konsolen könnten Schlüssel aufweisen, die den Zugriff auf verschiedene Funktionen/Inhalte der Konsole zu bestimmten Terminen und den vollständigen Zugriff auf den Inhalt zum allgemeinen Veröffentlichungsdatum ermöglichen. Bei dem Hersteller der Konsolen könnte es sich um die Entität handeln, die die zeitbezogenen Instanzen auswählt und vorprogrammiert (z.B. mit einem Smart Contract, Firmware usw.).
  • Die vorliegende Offenbarung enthält zwar eine ausführliche Beschreibung von Cloud-Computing, es versteht sich jedoch, dass die Umsetzung der hier dargelegten Lehren nicht auf eine Cloud-Computing-Umgebung beschränkt ist. Stattdessen können Ausführungsformen der vorliegenden Offenbarung gemeinsam mit beliebigen Arten von jetzt bekannter oder später erfundener Datenverarbeitungsumgebung umgesetzt werden.
  • Cloud-Computing ist ein Modell zum Liefern eines Dienstes, der einen problemlosen, bedarfsorientierten Netzwerkzugang zu einem gemeinsamen Pool an konfigurierbaren Datenverarbeitungsressourcen (z.B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Speicher, Anwendungen, virtuelle Maschinen und Dienste) ermöglicht, die rasch bereitgestellt und mit minimalem Verwaltungsaufwand bzw. minimaler Interaktion mit einem Anbieter eines Dienstes freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Eigenschaften, mindestens drei Dienstmodelle und mindestens vier Implementierungsmodelle enthalten.
  • Bei den Eigenschaften handelt es sich um die Folgenden:
  • On-Demand Self-Service (bedarfsorientierte Selbstbedienung): Ein Cloud-Nutzer kann einseitig automatisch nach Bedarf Datenverarbeitungsfunktionen wie Serverzeit und Netzwerkspeicher bereitstellen, ohne dass eine menschliche Interaktion mit dem Anbieter der Dienste erforderlich ist.
  • Broad Network Access (breiter Netzzugriff): Über ein Netzwerk sind Funktionen verfügbar, auf die durch Standardmechanismen zugegriffen wird, die die Verwendung durch heterogene schlanke oder leistungsintensive Client-Plattformen unterstützen (z.B. Mobiltelefone, Laptops und PDAs).
  • Ressource Pooling (Ressourcen-Bündelung): Die Datenverarbeitungsressourcen des Anbieters werden gebündelt, um mehreren Nutzern unter Verwendung eines Mehrmietermodells zu dienen, wobei verschiedene physische und virtuelle Ressourcen dynamisch nach Bedarf zugewiesen und neu zugewiesen werden. Es gibt eine gefühlte Teilunabhängigkeit, da der Nutzer allgemein keine Kontrolle bzw. Kenntnis über den genauen Teil der bereitgestellten Ressourcen hat, aber in der Lage sein kann, einen Teil auf einer höheren Abstraktionsebene festzulegen (z.B. Land, Staat oder Rechenzentrum).
  • Rapid Elasticity (schnelle Anpassungsfähigkeit): 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 (messbarer Dienst): 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 Inanspruchnahme von Ressourcen kann überwacht, gesteuert und gemeldet werden, wodurch sowohl für den Anbieter als auch für den Nutzer des verwendeten Dienstes Transparenz bereitgestellt wird.
  • Es gibt folgende Dienstmodelle:
  • Software as a Service (Saas) (Software als Dienst): Die dem Nutzer bereitgestellte Funktion besteht darin, die in einer Cloud-Infrastruktur laufenden Anwendungen des Anbieters zu verwenden. Die Anwendungen sind über eine schlanke Client-Schnittstelle wie einen Web-Browser (z.B. auf dem Web beruhende eMail) von verschiedenen Client-Einheiten aus 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 Einstellungen der Anwendungskonfiguration.
  • Platform as a Service (Paas) (Plattform als Dienst): 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 Werkzeugen 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 der Hosting-Umgebung der Anwendung.
  • Infrastructure as a Service (laas) (Infrastruktur als Dienst): Die dem Nutzer bereitgestellte Funktion besteht darin, 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).
  • Es gibt folgende Einsatzmodelle:
  • 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 (Benutzergemeinschafts-Cloud): Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine spezielle Benutzergemeinschaft, die gemeinsame Anliegen hat (z.B. Aufgabe, 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 fremden Räumen befinden.
  • Public Cloud (öffentliche Cloud): Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Branchengruppe zur Verfügung gestellt und gehört einer Organisation, die Cloud-Dienste verkauft.
  • Hybrid Cloud (hybride Cloud): Die Cloud-Infrastruktur besteht aus zwei oder mehr Clouds (privat, Benutzergemeinschaft oder öffentlich), die zwar einzelne Entitäten bleiben, aber durch eine standardisierte oder herstellereigene Technologie miteinander verbunden sind, die eine Übertragbarkeit von Daten und Anwendungen ermöglicht (z.B. Cloud-Zielgruppenverteilung für den Lastenausgleich zwischen Clouds).
  • Eine Cloud-Computing-Umgebung ist dienstorientiert und schwerpunktmäßig auf Statusunabhängigkeit, geringe Kopplung, Modularität und semantische Interoperabilität ausgerichtet. Der Kern der Cloud-Computing ist eine Infrastruktur, die ein Netzwerk aus miteinander verbundenen Knoten enthält.
  • 4A zeigt eine Cloud-Computing-Umgebung 410. Wie gezeigt, weist die Cloud-Computing-Umgebung 410 einen oder mehrere Cloud-Computing-Knoten 400 auf, mit denen von Cloud-Nutzern verwendete lokale Datenverarbeitungseinheiten wie der persönliche digitale Assistent (PDA) oder das Mobiltelefon 400A, der Desktop-Computer 400B, der Laptop-Computer 400C und/oder das Kraftfahrzeug-Computersystem 400N Daten austauschen können. Die Knoten 400 können miteinander Daten austauschen. Sie können physisch oder virtuell in einem oder mehreren Netzwerken wie private, benutzergemeinschaftliche, öffentliche oder hybride Clouds wie oben beschrieben oder in einer Kombination davon in Gruppen angeordnet sein (nicht dargestellt).
  • Dies ermöglicht es der Cloud-Computing-Umgebung 410, Infrastruktur, Plattformen und/oder Software als Dienste anzubieten, für die ein Cloud-Nutzer keine Ressourcen auf einer lokalen Datenverarbeitungseinheit vorhalten muss. Es versteht sich, dass die in 4A gezeigten Arten von Datenverarbeitungseinheiten 400A bis N nur veranschaulichend sein sollen und die Datenverarbeitungsknoten 400 und die Cloud-Computing-Umgebung 410 mit jeder Art von computergestützter Einheit über jede Art von Netzwerk und/oder netzwerkadressierbarer Verbindung Daten austauschen kann (z.B. über einen Web-Browser).
  • 4B zeigt einen Satz funktionaler Abstraktionsschichten, die von der Cloud-Computing-Umgebung 410 (4A) bereitgestellt werden. Es versteht sich im Voraus, dass die in 4B dargestellten Komponenten, Schichten und Funktionen nur veranschaulichend sein sollen und Ausführungsformen der Offenbarung nicht darauf beschränkt sind. Wie nachstehend dargestellt, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt.
  • Die Hardware- und Software-Schicht 415 enthält Hardware- und Software-Komponenten. Zu Beispielen für Hardware-Komponenten gehören: die Großrechner 402; die Server 404 auf Grundlage der RISC-Architektur (RISC = Reduced Instruction Set Computer, Computer mit reduziertem Befehlssatz), die Server 406; die Blade-Server 408; die Speichereinheiten 411; sowie die Netzwerke und Netzwerkkomponenten 412. In einigen Ausführungsformen enthalten die Software-Komponenten die Netzwerkanwendungs-Serversoftware 414 und die Datenbank-Software 416.
  • Die Virtualisierungsschicht 420 stellt eine Abstraktionsschicht bereit, aus der die folgenden Beispiele für virtuelle Entitäten bereitgestellt werden können: virtuelle Server 422; virtuelle Speicher 424; virtuelle Netzwerke 426; darunter virtuelle private Netzwerke; virtuelle Anwendungen und Betriebssysteme 428; und virtuelle Clients 430.
  • In einem Beispiel kann die Verwaltungsschicht 440 die nachfolgend beschriebenen Funktionen bereitstellen. Die Ressourcenbereitstellung 442 ermöglicht eine dynamische Bereitstellung von Datenverarbeitungsressourcen und anderen Ressourcen, die verwendet werden, um Aufgaben in der Cloud-Computing-Umgebung durchzuführen. Messen und Preisfindung 444 stellen Kostenverfolgung beim Verwenden von Ressourcen in der Cloud-Computing-Umgebung sowie Abrechnung oder Rechnungsstellung für die Inanspruchnahme dieser Ressourcen bereit. In einem Beispiel können diese Ressourcen Lizenzen für Anwendungssoftware umfassen. Die Sicherheitsfunktion stellt eine Identitätsprüfung für Cloud-Nutzer und Aufgaben sowie Schutz für Daten und andere Ressourcen bereit. Ein Benutzerportal 446 stellt Nutzern und Systemadministratoren den Zugang zur Cloud-Computing-Umgebung bereit. Die Verwaltung der Dienstgüte 448 stellt Zuordnung und Verwaltung von Cloud-Computing-Ressourcen bereit, sodass die erforderliche Dienstgüte erreicht wird. Die Planung und Erfüllung der Dienstgütevereinbarung (Service Level Agreement, SLA) 450 stellt eine Vorabeinteilung und eine Beschaffung von Cloud-Computing-Ressourcen bereit, deren künftiger Bedarf auf der Grundlage einer Dienstgütevereinbarung vorausgesehen wird.
  • Die Arbeitslastschicht 460 stellt Beispiele für Funktionalitäten bereit, für die 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 462; Software-Entwicklung und Lebenszyklusverwaltung 464; Bereitstellung von Ausbildung in virtuellen Klassenzimmern 466; Datenanalyseverarbeitung 468; Transaktionsverarbeitung 470; und Dezentralisieren der Sendeverschlüsselung und Schlüsselerzeugung 472.
  • 5 zeigt ein Übersichts-Blockschaubild eines beispielhaften Computersystems 501, das zum Implementieren eines oder mehrerer der hier beschriebenen Verfahren, Tools und Module sowie der damit verbundenen Funktionen (z.B. Verwenden von einem oder mehreren Prozessorschaltkreisen oder Computerprozessoren des Computers) gemäß Ausführungsformen der vorliegenden Offenbarung verwendet wird. In einigen Ausführungsformen können die wichtigsten Komponenten des Computersystems 501 eine oder mehrere CPUs 502, ein Speicherteilsystem 504, eine Terminalschnittstelle 512, eine Speicherschnittstelle 516, eine E/A(Eingabe/Ausgabe)-Einheitenschnittstelle 514 und eine Netzwerkschnittstelle 518 umfassen, die alle direkt oder indirekt zum Austauschen von Daten zwischen den Komponenten über einen Speicherbus 503, einen E/A-Bus 508 und eine E/A-Busschnittstelleneinheit 510 zum Zwecke der Datenübertragung verbunden sind.
  • Das Computersystem 501 kann eine oder mehrere programmierbare Universal-Zentraleinheiten (CPUs) 502A, 502B, 502C und 502D enthalten, die hier allgemein als CPU 502 bezeichnet werden. In einigen Ausführungsformen kann das Computersystem 501 mehrere Prozessoren enthalten, die für relativ große Systeme die Regel sind; in anderen Ausführungsformen kann es sich bei dem Computersystem 501 jedoch alternativ um ein einzelnes CPU-System handeln. Jede CPU 502 kann Anweisungen ausführen, die in dem Speicherteilsystem 504 gespeichert sind, und kann eine oder mehrere Ebenen eines integrierten Caches enthalten.
  • Der Systemspeicher 504 kann durch ein Computersystem lesbare Medien in Form von flüchtigen Speichern, z.B. Direktzugriffsspeicher (RAM) 522 und/oder Cache 524, enthalten. Das Computersystem 501 kann ferner weitere wechselbare/nichtwechselbare, flüchtige/nichtflüchtige Speichermedien eines Computersystems enthalten. Nur beispielhaft kann das Speichersystem 526 bereitgestellt werden, um ein nichtwechselbares, nichtflüchtiges magnetisches Medium wie eine „Festplatte“ auszulesen und zu beschreiben. Obwohl nicht dargestellt, können ein Laufwerk für magnetische Speicherplatten zum Auslesen und Beschreiben einer wechselbaren, nichtflüchtigen magnetischen Speicherplatte (z.B. „Diskette“) und ein Laufwerk für optische Speicherplatten zum Auslesen oder Beschreiben einer wechselbaren, nichtflüchtigen optischen Speicherplatte wie einer CD-ROM, DVD-ROM und andere optische Medien bereitgestellt werden. Der Speicher 504 kann darüber hinaus einen Flash-Speicher enthalten, z.B. einen Flash-Speicherstick oder ein Flash-Laufwerk. Die Speichereinheiten können über eine oder mehrere Datenmedien-Schnittstellen mit dem Speicherbus 503 verbunden sein. Der Speicher 504 kann mindestens ein Programmprodukt mit einem (z.B. mindestens einem) Satz von Programmmodulen enthalten, die so konfiguriert sind, dass sie die Funktionen verschiedener Ausführungsformen ausführen.
  • Ein oder mehrere Programme/Dienstprogramme 528 mit mindestens einem Satz von Programmmodulen 530 können im Speicher 504 gespeichert werden. Die Programme/Dienstprogramme 528 können einen Hypervisor (auch als virtuellen Maschinenmonitor bezeichnet) ein oder mehrere Betriebssysteme, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten umfassen. Jedes der Betriebssysteme, ein oder mehrere Anwendungsprogramme, weitere Programmmodule und Programmdaten oder eine Kombination daraus können jeweils eine Implementierung einer Netzwerkumgebung enthalten. Die Programme 528 und/oder Programmmodule 530 führen im Allgemeinen die Funktionen oder Methodiken verschiedener Ausführungsformen aus.
  • Der Speicherbus 503 ist in 5 zwar als einzelne Busstruktur dargestellt, die einen direkten Datenübertragungspfad zwischen den CPUs 502, dem Speicherteilsystem 504 und der E/A-Busschnittstelle 510 bereitstellt, der Speicherbus 503 kann in einigen Ausführungsformen jedoch mehrere verschiedene Busse oder Datenübertragungspfade umfassen, die in verschiedenen Formen wie Punkt-zu-Punkt-Verbindungen in hierarchischen, sternförmigen oder Netzkonfigurationen, mehreren hierarchischen Busse, parallelen und redundanten Pfaden oder jeder anderen geeigneten Art von Konfiguration angeordnet sein können. Die E/A-Busschnittstelle 510 und der E/A-Bus 508 sind zwar jeweils als einzelne Einheiten dargestellt, das Computersystem 501 kann in einigen Ausführungsformen jedoch mehrere E/A-Busschnittstelleneinheiten 510, mehrere E/A-Busse 508 oder beides enthalten. Es werden weiterhin zwar mehrere E/A-Schnittstelleneinheiten gezeigt, die den E/A-Bus 508 von den verschiedenen Datenübertragungspfaden trennen, die zu den verschiedenen E/A-Einheiten führen, in anderen Ausführungsformen können jedoch einige oder alle E/A-Einheiten direkt mit einem oder mehreren E/A-Systembussen verbunden sein.
  • In einigen Ausführungsformen kann es sich bei dem Computersystem 501 um ein Mehrbenutzer-Großrechnersystem, ein Einzelbenutzersystem oder einen Server-Computer oder eine ähnliche Einheit handeln, das/der/die kaum eine oder keine direkte Benutzerschnittstelle hat, jedoch Anforderungen von anderen Computersystemen (Clients) empfängt. In einigen Ausführungsformen kann das Computersystem 501 weiterhin als Desktop-Computer, tragbarer Computer, Laptop- oder Notebook-Computer, Tablet-Computer, Taschencomputer, Telefon, Smartphone, Netzwerk-Switch oder Router oder jede andere geeignete Art von elektronischer Einheit implementiert werden.
  • Es sei darauf hingewiesen, dass 5 dazu dient, die repräsentativen wichtigsten Komponenten eines beispielhaften Computersystems 501 darzustellen. In einigen Ausführungsformen können einzelne Komponenten jedoch eine größere oder geringere Komplexität aufweisen als in 5 dargestellt, andere oder zusätzliche Komponenten als die in 5 gezeigten können vorhanden sein, und Anzahl, Art und Konfiguration dieser Komponenten können variieren.
  • Wie hier näher erläutert, ist vorgesehen, dass einige oder alle Operationen einiger der Ausführungsformen der hier beschriebenen Verfahren in alternativer Reihenfolge oder überhaupt nicht durchgeführt werden können; außerdem können mehrere Operationen gleichzeitig oder als Bestandteil eines größeren Prozesses erfolgen.
  • Bei der vorliegenden Offenbarung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt auf jedem möglichen technischen Detaillierungsgrad der Integration handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) umfassen, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert ist/sind, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Offenbarung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch eine Einheit 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 tragbare 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 tragbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder gehobene 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. einen Lichtwellenleiter durchlaufende Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
  • Hier 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 Weitverkehrsnetzwerk und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Router, Firewalls, Vermittlungseinheiten, 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 Offenbarung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten, Konfigurationsdaten für integrierte Schaltungen 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 Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über 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 Offenbarung durchzuführen.
  • Aspekte der vorliegenden Offenbarung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Offenbarung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaubildern mittels durch einen Computer lesbare 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, sodass 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 Blockschaubilder 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, sodass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, einen Herstellungsartikel aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaubilder angegebenen 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, sodass 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 Blockschaubilder festgelegten Funktionen/Schritte umsetzen.
  • Der Ablaufplan und die Blockschaubilder in den Figuren veranschaulichen die Architektur, Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Offenbarung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Ausführungen können die in dem Block 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 ausgeführt, gleichzeitig ausgeführt, im Wesentlich gleichzeitig ausgeführt, ganz oder teilweise zeitlich überlappend 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 Blockschaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaubildern 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.
  • Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung wurden zum Zwecke der Veranschaulichung vorgestellt, sollen jedoch nicht erschöpfend oder auf die Ausführungsformen beschränkt sein. Für Fachleute ist offensichtlich, dass viele Änderungen und Abwandlungen möglich sind, ohne vom Anwendungsbereich der beschriebenen Ausführungsformen abzuweichen. Die hier verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung oder technische Verbesserung gegenüber Technologien auf dem Markt bestmöglich zu erläutern oder es Fachleuten zu ermöglichen, die hier beschriebenen Ausführungsformen zu verstehen.
  • Die vorliegende Offenbarung wurde zwar in Form spezifischer Ausführungsformen beschrieben, es wird jedoch davon ausgegangen, dass Änderungen und Modifikationen davon für den Fachmann offensichtlich sind. Daher sollen die folgenden Ansprüche so ausgelegt werden, dass sie alle diese Änderungen und Modifikationen umfassen, die unter den Anwendungsbereich der Offenbarung fallen.

Claims (20)

  1. Verfahren für eine dezentrale Sendeverschlüsselung, wobei das Verfahren umfasst: Integrieren eines oder mehrerer Schlüssel in ein Medium durch einen Prozessor, wobei der eine oder mehrere Schlüssel jeweils einer spezifischen Instanz zugehörig sind und wobei der eine oder mehrere Schlüssel weiterhin in einer Blockchain enthalten sind; Feststellen, dass eine erste spezifische Instanz eingetreten ist; Bereitstellen eines ersten Schlüssels, der der ersten spezifischen Instanz zugehörig ist; und Festlegen, den Zugriff auf den Inhalt des Mediums zu erlauben.
  2. Verfahren nach Anspruch 1, wobei das Festlegen, den Zugriff auf das Medium zu erlauben, umfasst: Feststellen, dass es sich bei dem ersten Schlüssel um einen korrekten Schlüssel bei der ersten spezifischen Instanz handelt; und Erlauben des Zugriffs auf den Inhalt des Mediums.
  3. Verfahren nach Anspruch 1, wobei das Festlegen, den Zugriff auf das Medium zu erlauben, umfasst: Feststellen, dass es sich bei dem ersten Schlüssel um einen gefährdeten Schlüssel handelt; und Widerrufen des Zugriffs auf den Inhalt des Mediums.
  4. Verfahren nach Anspruch 1, wobei das Festlegen, den Zugriff auf das Medium zu erlauben, umfasst: Feststellen, dass das Medium initiiert wurde; Vergleichen des ersten Schlüssels mit einem entsprechenden Schlüssel in der Blockchain; Feststellen, dass der erste Schlüssel nicht mit dem entsprechenden Schlüssel übereinstimmt; und Aufzeichnen des ersten Schlüssels als abgeleiteten Schlüssel.
  5. Verfahren nach Anspruch 1, das weiterhin umfasst: Feststellen, dass das Medium initiiert wurde; und Bestätigen des ersten Schlüssels durch Vergleichen des ersten Schlüssels mit einem entsprechenden Schlüssel in der Blockchain.
  6. Verfahren nach Anspruch 1, das weiterhin umfasst: Feststellen, dass eine zweite spezifische Instanz eingetreten ist; und Ersetzen des ersten Schlüssels durch einen zweiten Schlüssel, der der zweiten spezifischen Instanz zugehörig ist.
  7. Verfahren nach Anspruch 1, wobei es sich bei der spezifischen Instanz um eine zeitbezogene Instanz handelt und wobei die zeitbezogene Instanz von einer Einstellentität bereitgestellt wird.
  8. System für eine dezentrale Sendeverschlüsselung, wobei das System aufweist: einen Speicher; und einen Prozessor, der mit dem Speicher Daten austauscht, wobei der Prozessor so konfiguriert ist, dass er Operationen durchführt, die umfassen: Integrieren eines oder mehrerer Schlüssel in ein Medium, wobei der eine oder mehrere Schlüssel jeweils einer spezifischen Instanz zugehörig sind und wobei der eine oder mehrere Schlüssel weiterhin in einer Blockchain enthalten sind; Feststellen, dass eine erste spezifische Instanz eingetreten ist; Bereitstellen eines ersten Schlüssels, der der ersten spezifischen Instanz zugehörig ist; und Festlegen, den Zugriff auf den Inhalt des Mediums zu erlauben.
  9. System nach Anspruch 8, wobei das Festlegen, den Zugriff auf das Medium zu erlauben, umfasst: Feststellen, dass es sich bei dem ersten Schlüssel um einen korrekten Schlüssel bei der ersten spezifischen Instanz handelt; und Erlauben des Zugriffs auf den Inhalt des Mediums.
  10. System nach Anspruch 8, wobei das Festlegen, den Zugriff auf das Medium zu erlauben, umfasst: Feststellen, dass es sich bei dem ersten Schlüssel um einen gefährdeten Schlüssel handelt; und Widerrufen des Zugriffs auf den Inhalt des Mediums.
  11. System nach Anspruch 8, wobei das Festlegen, den Zugriff auf das Medium zu erlauben, umfasst: Feststellen, dass das Medium initiiert wurde; Vergleichen des ersten Schlüssels mit einem entsprechenden Schlüssel in der Blockchain; Feststellen, dass der erste Schlüssel nicht mit dem entsprechenden Schlüssel übereinstimmt; und Aufzeichnen des ersten Schlüssels als abgeleiteten Schlüssel.
  12. System nach Anspruch 8, wobei die Operationen weiterhin umfassen: Feststellen, dass das Medium initiiert wurde; und Bestätigen des ersten Schlüssels durch Vergleichen des ersten Schlüssels mit einem entsprechenden Schlüssel in der Blockchain.
  13. System nach Anspruch 8, wobei die Operationen weiterhin umfassen: Feststellen, dass eine zweite spezifische Instanz eingetreten ist; und Ersetzen des ersten Schlüssels durch einen zweiten Schlüssel, der der zweiten spezifischen Instanz zugehörig ist.
  14. System nach Anspruch 8, wobei es sich bei der spezifischen Instanz um eine zeitbezogene Instanz handelt und wobei die zeitbezogene Instanz von einer Einstellentität bereitgestellt wird.
  15. Computerprogrammprodukt für eine dezentrale Sendeverschlüsselung, wobei das Computerprogrammprodukt ein durch einen Computer lesbares Speichermedium mit darauf enthaltenen Programmanweisungen aufweist, wobei die Programmanweisungen von einem Prozessor ausführbar sind, um die Prozessoren zu veranlassen, eine Funktion durchzuführen, wobei die Funktion umfasst: Integrieren eines oder mehrerer Schlüssel in ein Medium, wobei der eine oder mehrere Schlüssel jeweils einer spezifischen Instanz zugehörig sind und wobei der eine oder mehrere Schlüssel weiterhin in einer Blockchain enthalten sind; Feststellen, dass eine erste spezifische Instanz eingetreten ist; Bereitstellen eines ersten Schlüssels, der der ersten spezifischen Instanz zugehörig ist; und Festlegen, den Zugriff auf den Inhalt des Mediums zu erlauben.
  16. Computerprogrammprodukt nach Anspruch 15, wobei das Festlegen, den Zugriff auf das Medium zu erlauben, umfasst: Feststellen, dass es sich bei dem ersten Schlüssel um einen korrekten Schlüssel bei der ersten spezifischen Instanz handelt; und Erlauben des Zugriffs auf den Inhalt des Mediums.
  17. Computerprogrammprodukt nach Anspruch 15, wobei das Festlegen, den Zugriff auf das Medium zu erlauben, umfasst: Feststellen, dass es sich bei dem ersten Schlüssel um einen gefährdeten Schlüssel handelt; und Widerrufen des Zugriffs auf den Inhalt des Mediums.
  18. Computerprogrammprodukt nach Anspruch 15, wobei das Festlegen, den Zugriff auf das Medium zu erlauben, umfasst: Feststellen, dass das Medium initiiert wurde; Vergleichen des ersten Schlüssels mit einem entsprechenden Schlüssel in der Blockchain; Feststellen, dass der erste Schlüssel nicht mit dem entsprechenden Schlüssel übereinstimmt; und Aufzeichnen des ersten Schlüssels als abgeleiteten Schlüssel.
  19. Computerprogrammprodukt nach Anspruch 15, wobei die Funktionen weiterhin umfassen: Feststellen, dass das Medium initiiert wurde; und Bestätigen des ersten Schlüssels durch Vergleichen des ersten Schlüssels mit einem entsprechenden Schlüssel in der Blockchain.
  20. Computerprogrammprodukt nach Anspruch 15, wobei die Operationen weiterhin umfassen: Feststellen, dass eine zweite spezifische Instanz eingetreten ist; und Ersetzen des ersten Schlüssels durch einen zweiten Schlüssel, der der zweiten spezifischen Instanz zugehörig ist.
DE112021005837.1T 2020-12-09 2021-11-23 Dezentrale sendeverschlüsselung und schlüsselerzeugungseinrichtung Pending DE112021005837T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/116,834 2020-12-09
US17/116,834 US11876903B2 (en) 2020-12-09 2020-12-09 Decentralized broadcast encryption and key generation facility
PCT/CN2021/132219 WO2022121673A1 (en) 2020-12-09 2021-11-23 Decentralized broadcast encryption and key generation facility

Publications (1)

Publication Number Publication Date
DE112021005837T5 true DE112021005837T5 (de) 2023-08-24

Family

ID=81848467

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112021005837.1T Pending DE112021005837T5 (de) 2020-12-09 2021-11-23 Dezentrale sendeverschlüsselung und schlüsselerzeugungseinrichtung

Country Status (6)

Country Link
US (1) US11876903B2 (de)
JP (1) JP2024501401A (de)
CN (1) CN116671060A (de)
DE (1) DE112021005837T5 (de)
GB (1) GB2616804A (de)
WO (1) WO2022121673A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11997218B2 (en) 2021-03-02 2024-05-28 International Business Machines Corporation Decentralized, dynamic media key block for broadcast encryption

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11494171B1 (en) * 2021-08-10 2022-11-08 Soubir Acharya Decentralized platform for deploying AI models

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9520993B2 (en) * 2001-01-26 2016-12-13 International Business Machines Corporation Renewable traitor tracing
US7039803B2 (en) 2001-01-26 2006-05-02 International Business Machines Corporation Method for broadcast encryption and key revocation of stateless receivers
US8468244B2 (en) 2007-01-05 2013-06-18 Digital Doors, Inc. Digital information infrastructure and method for security designated data and with granular data stores
US8108928B2 (en) 2008-06-20 2012-01-31 International Business Machines Corporation Adaptive traitor tracing
US9559840B2 (en) 2013-10-18 2017-01-31 Globalfoundries Inc. Low-bandwidth time-embargoed content disclosure
US20170251254A1 (en) 2014-08-27 2017-08-31 Verance Corporation Tracing piracy of live broadcasts
US10771843B2 (en) 2015-12-15 2020-09-08 Telefonaktiebolaget Lm Ericsson (Publ) Media distribution with sample variants for normalized encryption
WO2017147696A1 (en) * 2016-02-29 2017-09-08 Troy Jacob Ronda Systems and methods for distributed identity verification
CA2958668A1 (en) 2017-02-23 2018-08-23 Scenarex Inc. Methods and apparatus for integrating digital rights management into an existing blockchain
US10860743B2 (en) * 2017-10-26 2020-12-08 VYRTY Corporation Encryption scheme for making secure patient data available to authorized parties
US10567168B2 (en) 2017-11-16 2020-02-18 International Business Machines Corporation Blockchain transaction privacy enhancement through broadcast encryption
US11139955B1 (en) 2018-02-12 2021-10-05 Winklevoss Ip, Llc Systems, methods, and program products for loaning digital assets and for depositing, holding and/or distributing collateral as a token in the form of digital assets on an underlying blockchain
US20190394175A1 (en) 2018-06-21 2019-12-26 University Of Maryland, Baltimore County Systems and methods for permissioned blockchain infrastructure with fine-grained access control and confidentiality-preserving publish/subscribe messaging
CN109547818A (zh) 2018-12-11 2019-03-29 深圳市汇星数字技术有限公司 一种视频内容去中心化保密分发方法
US11017329B2 (en) * 2018-12-18 2021-05-25 Rokfin, Inc. Dampening token allocations based on non-organic subscriber behaviors
WO2020205377A1 (en) * 2019-04-02 2020-10-08 Parachute Wallet LLC Architecture for facilitating data transfer for blockchain-based units in packet-based systems
CN110098919B (zh) 2019-04-26 2021-06-25 西安电子科技大学 基于区块链的数据权限的获取方法
CN110581839B (zh) 2019-07-23 2021-12-14 中国空间技术研究院 内容保护方法及装置
US11275865B2 (en) 2019-08-23 2022-03-15 Conduent Business Services, Llc Privacy friendly decentralized ledger based identity management system and methods
WO2021042074A1 (en) 2019-08-30 2021-03-04 Verheyen Henry Secure data exchange network
US10951958B1 (en) 2020-01-08 2021-03-16 Disney Enterprises, Inc. Authenticity assessment of modified content

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11997218B2 (en) 2021-03-02 2024-05-28 International Business Machines Corporation Decentralized, dynamic media key block for broadcast encryption

Also Published As

Publication number Publication date
JP2024501401A (ja) 2024-01-12
US20220182231A1 (en) 2022-06-09
CN116671060A (zh) 2023-08-29
US11876903B2 (en) 2024-01-16
GB202310168D0 (en) 2023-08-16
GB2616804A (en) 2023-09-20
WO2022121673A1 (en) 2022-06-16

Similar Documents

Publication Publication Date Title
DE102021123128A1 (de) Mittels blockchains realisiertes datenmigrationsprüfprotokoll
DE112020005289B4 (de) Teilweise sortierte blockchain
DE102019123253A1 (de) System und einrichtung für datenvertraulichkeit im distributed ledger
DE112021002797T5 (de) Datenschutzerhaltende architektur für genehmigungspflichtige blockchains
DE112018003077T5 (de) Ein cluster von sicheren ausführungsplattformen
DE112021001413T5 (de) Verwaltung eines privilegierten zugriffs mit geringer vertrauenswürdigkeit
DE112021004344T5 (de) Konsensdienst für Blockchain-Netzwerke
DE112020005429T5 (de) Zufallsknotenauswahl für zulassungsbeschränkte Blockchain
DE112021001766B4 (de) Inhaltskontrolle durch datenaggregationsdienste dritter
DE112012002741T5 (de) Identitäts- und Berechtigungsprüfungsverfahren für die Sicherheit einer Cloud-Datenverarbeitungsplattform
DE112020005075T5 (de) Effiziente schwellenwertspeicherung von datenobjekten
DE102011077218B4 (de) Zugriff auf in einer Cloud gespeicherte Daten
DE102021122557A1 (de) Konformitätsmechanismen in blockchain-netzwerken
DE112021000688T5 (de) Indexstruktur für blockchain-ledger
DE112021000608T5 (de) Schnellere ansichtsänderung für eine blockchain
DE112021001671T5 (de) Netzübergreifendes bereitstellen von identitäten
DE112021005837T5 (de) Dezentrale sendeverschlüsselung und schlüsselerzeugungseinrichtung
DE112021003971T5 (de) Nachhaltige token für eine lieferkette mit datenschutzerhaltendem protokoll
DE102016105062A1 (de) Nähengestützte Berechtigungsprüfung für einheitenübergreifend verteilte Daten
DE112022000906T5 (de) Trennen von blockchain-daten
DE102021129514A1 (de) Binden von post-quanten-zertifikaten
DE112020002343T5 (de) Verteilung von Sicherheitsberechtigungsnachweisen
DE112021002053T5 (de) Verrauschte Transaktion zum Schutz von Daten
DE112020005373T5 (de) Mechanismus zur authentifizierung durch nutzung von positionsbestätigung
DE112021005862T5 (de) Selbstprüfende blockchain

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R081 Change of applicant/patentee

Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, A, US

Free format text: FORMER OWNER: INTERNATIONAL BUSINESS MACHINES CORPORATION, ARMONK, NY, US