-
HINTERGRUND
-
Die vorliegende Erfindung betrifft allgemein die Datenmaskierung und insbesondere Verfahren, Vorrichtungen und Computerprogrammprodukte, wobei Daten an einem Datenanbieter-Computer (data provider (DP) computer) maskiert und an einen (nicht vertrauenswürdigen) Datenbenutzer-Computer (data user (DU) computer) gesendet werden.
-
Datenmaskierung ist ein Prozess, der verwendet wird, wenn Daten, die sensible Informationen enthalten, in eine weniger vertrauenswürdige Umgebung kopiert werden müssen. Datenmaskierung hat den Zweck, die Daten zu desensibilisieren, um sensible Datenelemente zu verbergen (oder „zu maskieren“), so dass die Daten als Ganzes für ihren vorgesehenen Zweck von Nutzen bleiben. Zum Beispiel kann ein Datensatz Informationen wie zum Beispiel Sozialversicherungsnummern, Passdaten, Kreditkartennummern, Patientenaktendetails usw. enthalten, die nicht in die Hände von nicht vertrauenswürdigen Parteien gelangen sollten. Zu typischen Anwendungsfällen gehören das Versenden eines Datensatzes für die statistische Analyse, das Ausführen einer Anwendung in einer Testumgebung mit einer realistischen Arbeitslast, das Erfassen von Servicequalitätsinformationen von Kunden und die Transaktionsverarbeitung. Bedenken hinsichtlich des Datenschutzes haben in den letzten Jahren einhergehend mit einem Trend, Dienste und Dienstleistungen an Dritte und in die Cloud auszulagern, zugenommen. Eine Maskierung verhindert die Offenlegung von sensiblen Daten in nicht vertrauenswürdigen Umgebungen und berücksichtigt rechtliche Fragen in Verbindung mit der grenzüberschreitenden Übertragung von Daten.
-
Aus Sicherheitsgründen sollte ein Datenmaskierungsprozess dergestalt sein, dass ein maskiertes Datenelement keine Informationen über die ursprünglichen, nicht maskierten Daten preisgibt. Die Nutzbarkeit erfordert es jedoch, dass ein maskierter Datensatz die referenzielle Integrität bewahrt. Das heißt, wenn dasselbe Datenelement in dem nicht maskierten Datensatz mehrfach vorkommt, sollte es immer wieder demselben maskierten Wert zugeordnet werden.
-
Viele Datenmaskierungstechniken wurden vorgeschlagen und befinden sich heute im kommerziellem Einsatz. Zum Beispiel kann eine Maskierung über Hashing vorgenommen werden. Hier wird ein Datenelement zusammen mit einem langfristigen Hashschlüssel des Datenanbieters gehasht. Das Datenelement wird dann durch den resultierenden Hashwert in den an den Benutzer gesendeten maskierten Daten ersetzt. Andere bekannte Verfahren beruhen auf Substitution, Shuffling, Löschen („Nulling“), Verschleierung oder Perturbationstechniken. Solche Verfahren können jedoch nicht die für die Datensicherheit erforderlichen zunehmend stringenten Garantieren bereitstellen. Überdies erlauben diese Verfahren kein Rekeying von maskierten Daten. Die Verbindung zwischen einem gegebenen Datenelement und seiner maskierten Form ändert sich nie und für die Maskierung verwendete Schlüssel können nicht geändert werden. Beim Hashen kann der Hashschlüssel zum Beispiel nicht geändert werden, ohne die referenzielle Integrität zu brechen. Für sicherheitskritische Umgebungen, z.B. Finanzinstitutionen, sind regelmäßige Rekeying-Operationen und periodische Aktualisierungen der Beziehung zwischen nicht maskierten und maskierten Daten notwendig. Periodische Aktualisierungen verringern auch das Risiko der Offenlegung, wenn Daten im Laufe der Zeit allmählich nach außen gelangen. Da maskierte Datensätze oftmals groß sind, wäre die Durchführung einer solchen Aktualisierung von Grund auf, bei der der Datenanbieter den vollständigen Datensatz mit einem neuen Schlüssel erneut maskiert und ihn erneut an den Benutzer sendet, äußerst ineffizient.
-
KURZDARSTELLUNG
-
Gemäß Ausführungsformen der vorliegenden Erfindung wird ein durch einen Computer ausgeführtes Verfahren zur Datenmaskierung an einem Datenanbieter-Computer bereitgestellt. Das Verfahren weist den Zugriff auf Daten, die an einen Datenbenutzer-Computer gesendet werden sollen, und das Erzeugen von maskierten Daten, indem für mindestens ein vorher festgelegtes Datenelement in den zu sendenden Daten eine Einweg-Funktion auf dieses Datenelement angewendet wird, um einen ersten Wert zu erzeugen, das Erzeugen eines maskierten Datenelements, indem der erste Wert über ein deterministisches Verschlüsselungsschema unter Verwendung eines aktuellen Verschlüsselungsschlüssels für eine aktuelle Epoche verschlüsselt wird, und das Ersetzen dieses Datenelements durch das maskierte Datenelement auf. Das Verfahren beinhaltet das Senden der maskierten Daten an den Datenbenutzer-Computer und nach Ablauf der aktuellen Epoche das Erzeugen eines neuen Verschlüsselungsschlüssels für das Verschlüsselungsschema in einer neuen Epoche, das Erzeugen von Maskierungsaktualisierungsdaten, die von dem aktuellen und dem neuen Verschlüsselungsschlüssel abhängen, und das Senden der Maskierungsaktualisierungsdaten an den Datenbenutzer-Computer. Die Maskierungsaktualisierungsdaten erlauben das Aktualisieren, an dem Datenbenutzer-Computer, von maskierten, mit dem aktuellen Verschlüsselungsschlüssel erzeugten Datenelementen auf maskierte, mit dem neuen Verschlüsselungsschlüssel erzeugte Datenelemente.
-
Ausführungsformen dieser Erfindung stellen sichere Datenmaskierungsverfahren bereit, bei denen Maskierungsschlüssel aktualisiert und maskierte Daten mit einem geänderten Schlüssel erneut verschlüsselt (re-keyed) werden können, während die referenzielle Integrität bewahrt wird. Die Rekeying-Operation, um zuvor maskierte Daten zu aktualisieren, kann von dem Datenbenutzer in einer nicht vertrauenswürdigen Domäne durchgeführt werden, ohne die Sicherheit der maskierten Daten zu beeinträchtigen.
-
Ausführungsformen der Erfindung können in einem statischen Datenmaskierungsfall verwendet werden, in dem alle von dem Benutzer benötigten Daten (z.B. eine ganze Datenbank oder ein anderer vollständiger Datensatz) in einem Schritt maskiert und an den Benutzer gesendet werden. Verfahren, welche die Erfindung enthalten, sind jedoch auch in dynamischen Datenmaskierungsfällen äußerst vorteilhaft. In einem dynamischen Datenmaskierungsfall werden Daten maskiert und nach Bedarf an den Benutzer gesendet, z.B. als Reaktion auf eine Reihe von Zugriffsanforderungen von dem Benutzer. Daten können während der Verarbeitung („on-the-fly“) maskiert und nach Bedarf an den Benutzer gesendet werden. In beiden Fällen können Daten, die während der aktuellen Epoche maskiert und gesendet werden, für eine neue Epoche mit einem geänderten Schlüssel erneut verschlüsselt werden, wobei die von dem Datenanbieter gesendeten Maskierungsaktualisierungsdaten verwendet werden. Die Schritte des Erzeugens des neuen Verschlüsselungsschlüssels, des Erzeugens der Maskierungsaktualisierungsdaten und des Sendens der Maskierungsaktualisierungsdaten an den Datenbenutzer-Computer können nach Ablauf von jeweils dieser neuen Epoche und nachfolgender neuer Epochen durchgeführt werden, wobei maskierte Daten für jede aufeinanderfolgende Epoche wiederholt mit einem geänderten Schlüssel erneut verschlüsselt werden können. In einem dynamischen Fall kann der neue Verschlüsselungsschlüssel für jede neue Epoche als der aktuelle Verschlüsselungsschlüssel in dem Datenmaskierungsschritt verwendet werden, um weitere Daten zu maskieren, die in dieser Epoche versendet werden. Im Einzelnen kann der Datenanbieter-Computer während einer jeden (von mindestens einigen) der neuen Epochen auf weitere Daten, die an den Datenbenutzer-Computer gesendet werden sollen, zugreifen und für diese weiteren Daten den Schritt des Erzeugens von maskierten Daten durchführen, wobei der neue Verschlüsselungsschlüssel als der aktuelle Verschlüsselungsschlüssel für diese Epoche verwendet wird. Die weiteren maskierten Daten können dann an den Datenbenutzer-Computer gesendet werden. Da die Rekeying-Operation, welche die Maskierungsaktualisierungsdaten verwendet, maskierte Datenelemente, die mit einem aktuellen Verschlüsselungsschlüssel erzeugt werden, in maskierte Datenelemente, die mit dem neuen Verschlüsselungsschlüssel erzeugt werden, umwandelt, wird die referenzielle Integrität zwischen maskierten Daten, die in vorherigen Epochen versendet wurden, und beliebigen weiteren Daten, die unter Verwendung des neuen Verschlüsselungsschlüssels für eine beliebige gegebene Epoche maskiert werden, bewahrt.
-
In dem Datenmaskierungsschritt von bevorzugten Ausführungsformen wird der erste Wert, der einem Datenelement entspricht, erzeugt, indem die Einweg-Funktion auf dieses Datenelement und einen geheimen Schlüssel des Datenanbieter-Computers angewendet wird. Die Verwendung des geheimen Schlüssels in dieser ersten Ebene des Maskierungsprozesses bietet zusätzliche Sicherheit vor Offenlegung der Daten. Die zweite, die Verschlüsselungsebene des Maskierungsprozesses, und die zugehörigen Maskierungsaktualisierungsdaten können auf verschiedene Arten erstellt werden, um verschiedene Sicherheitsgarantien gemäß der Sicherheit der zugrunde liegenden Kryptographie bereitzustellen. In einigen Ausführungsformen kann das Verschlüsselungsschema ein symmetrisches Verschlüsselungsschema aufweisen und die Maskierungsaktualisierungsdaten können den aktuellen Verschlüsselungsschlüssel und den neuen Verschlüsselungsschlüssel aufweisen. Hier kann der Datenbenutzer zuvor empfangene Daten mit einem geänderten Schlüssel erneut verschlüsseln, indem er jedes maskierte Datenelement unter Verwendung des aktuellen Verschlüsselungsschlüssels über einen Entschlüsselungsalgorithmus des Verschlüsselungsschemas entschlüsselt, um den ersten Wert zu erhalten, und den ersten Wert über das Verschlüsselungsschema unter Verwendung des neuen Verschlüsselungsschlüssels erneut verschlüsselt. Dies bietet einen ausreichend hohen Grad an Sicherheit für viele Anwendungen.
-
In einigen Ausführungsformen weisen die Maskierungsaktualisierungsdaten eine vorher festgelegte Funktion δ des aktuellen und des neuen Verschlüsselungsschlüssels auf und das Verschlüsselungsschema weist einen Algorithmus Enc(k, X) zur Verschlüsselung eines Werts X mit einem Verschlüsselungsschlüssel k auf, so dass Enc(δ, (Enc(se, X)) = Enc(se+1, X), wobei se der aktuelle Verschlüsselungsschlüssel und se+1 der neue Verschlüsselungsschlüssel ist. Hier kann der Datenbenutzer zuvor empfangene Daten mit einem geänderten Schlüssel erneut verschlüsseln, indem er jedes maskierte Datenelement über den Verschlüsselungsalgorithmus Enc(k, X) unter Verwendung des Verschlüsselungsschlüssels key k = δ verschlüsselt. Dies bietet außergewöhnliche Sicherheit, da der Prozess der erneuten Maskierung den ursprünglich verschlüsselten ersten Wert für ein Datenelement nicht einmal offenlegt. Bei einer effizienten Ausführung eines solchen Schemas ist der Algorithmus Enc(k, X) = Xk und δ = se+1/se.
-
Ausführungsformen der Erfindung stellen ein durch einen Computer ausgeführtes Verfahren zur Verwaltung von maskierten Daten an einem Datenbenutzer-Computer bereit. Das Verfahren weist das Empfangen von maskierten Daten von einem Datenanbieter-Computer, wobei die maskierten Daten mindestens ein maskiertes Datenelement enthalten, das erzeugt wird, indem eine Einweg-Funktion auf ein Datenelement angewendet wird, um einen ersten Wert zu erzeugen, und der erste Wert über ein deterministisches Verschlüsselungsschema unter Verwendung eines aktuellen Verschlüsselungsschlüssels für eine aktuelle Epoche verschlüsselt wird, sowie das anschließende Speichern der maskierten Daten auf. Das Verfahren beinhaltet des Weiteren, nach Ablauf der aktuellen Epoche, das Empfangen von Maskierungsaktualisierungsdaten von dem Datenanbieter-Computer, die von dem aktuellen Verschlüsselungsschlüssel und einem neuen Verschlüsselungsschlüssel für das Verschlüsselungsschema in einer neuen Epoche abhängen. Die Maskierungsaktualisierungsdaten werden verwendet, um jedes maskierte Datenelement, das mit dem aktuellen Verschlüsselungsschlüssel erzeugt wurde, in den gespeicherten maskierten Daten auf ein mit dem neuen Verschlüsselungsschlüssel erzeugtes maskiertes Datenelement zu aktualisieren.
-
Ausführungsformen der Erfindung stellen Computerprogrammprodukte bereit, von denen jedes ein durch einen Computer lesbares Speichermedium aufweist, das durch einen Datenanbieter-Computer oder einen Datenbenutzer-Computer ausführbare Programmanweisungen enthält, um diesen Computer dazu zu veranlassen, ein Verfahren durchzuführen, wie vorstehend beschrieben wurde. Mindestens eine zusätzliche Ausführungsform stellt ein System bereit, das einen Datenanbieter-Computer und einen Datenbenutzer-Computer aufweist, die so ausgelegt sind, dass sie vorstehend beschriebene Verfahren ausführen.
-
Ausführungsformen der Erfindung werden nachstehend anhand eines veranschaulichenden und nicht einschränkenden Beispiels unter Bezugnahme auf die beiliegenden Zeichnungen ausführlicher beschrieben.
-
Figurenliste
-
Ausführungsformen der Erfindung werden nun lediglich beispielhaft unter Bezugnahme auf die beiliegenden Zeichnungen beschrieben, bei denen:
- 1 eine schematische Darstellung eines Systems zur Ausführung von Datenmaskierungsschemata ist, welche die Erfindung enthalten;
- 2 eine verallgemeinerte schematische Darstellung eines Computers in dem System von 1 ist;
- 3 Schritte angibt, die im System 1 beim Betrieb eines Datenmaskierungsschemas durchgeführt werden;
- 4 des Weiteren Schritte angibt, die im System 1 beim Betrieb eines Datenmaskierungsschemas durchgeführt werden;
- 5 ausführlichere Schritte angibt, die in einer Ausführungsform des Datenmaskierungssystems durchgeführt werden;
- 6 des Weiteren ausführlichere Schritte angibt, die in einer Ausführungsform des Datenmaskierungssystems durchgeführt werden;
- 7 ausführlichere Schritte angibt, die in einer weiteren Ausführungsform des Datenmaskierungssystems durchgeführt werden; und
- 8 des Weiteren ausführlichere Schritte angibt, die in einer weiteren Ausführungsform des Datenmaskierungssystems durchgeführt werden.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) beinhalten, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert sind, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
-
Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch ein System zur Ausführung von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die folgenden: eine 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 kodierte 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. durch ein Glasfaserkabel geleitete Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
-
Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, 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 Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten 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 herkömmliche 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 fernen Computer oder vollständig auf dem fernen Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (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, im Feld programmierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
-
Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern bzw. Schaubildern mittels durch einen Computer lesbare Programmanweisungen ausgeführt werden können.
-
Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaltbilder bzw. Schaubilder 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, so dass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte umsetzen.
-
Die Ablaufpläne und die Blockschaltbilder bzw. Schaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaltbildern bzw. Schaubildern 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 im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaltbilder bzw. Schaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern bzw. Schaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
-
Das in 1 gezeigte System weist einen Datenanbieter-Computer 2 und einen Datenbenutzer-Computer 3 auf, die zum Datenaustausch über ein Netzwerk 4 (wobei das Netzwerk 4 im Allgemeinen ein oder mehrere Komponentennetzwerke und/oder Internetzwerke, darunter das Internet, aufweisen können) betrieben werden können. Der Datenanbieter-(DP-)Computer 2 hat Zugriff auf einen Datensatz im Speicher, der hier durch die Datenbank 5 dargestellt ist, welche betriebsfähig mit dem DP-Computer 2 verbunden ist. Die Datenbank 5 enthält Daten, die im Betrieb an den Datenbenutzer-(DU-)Computer 3 gesendet werden sollen. Der DP-Computer 2 führt einen dynamischen Datenmaskierungsprozess aus, wobei nach Bedarf auf Daten zugegriffen, Daten maskiert und Daten an den DU-Computer 3 gesendet werden können. Im Einzelnen können die Daten, die zu einem bestimmten Zeitpunkt an den DU-Computer 3 gesendet werden sollen, bestimmte Datenelemente enthalten, die maskiert werden müssen, bevor die Daten versendet werden. Solche Datenelemente werden am DP-Computer 2 vorher festgelegt und können auf irgendeine geeignete Weise, z.B. durch den Typ, die Kategorie, die Beschaffenheit, die Position usw., der fraglichen Daten definiert werden. Zum Beispiel kann der DP-Computer 2 einen Satz von Maskierungsregeln ausführen, der die zu maskierenden Datenelemente festlegt. Einzelne Datenelemente können beispielsweise Datenfelder oder Teile (z.B. Bytes) davon oder eine beliebige andere definierte Einheit von Daten aufweisen. Jedoch sind die bestimmten Datenelemente und die angewendeten Maskierungskriterien zu den hierin beschriebenen Maskierungsschemata orthogonal. Der DU-Computer 3 empfängt die maskierten Daten über das Netzwerk 4 und speichert die maskierten Daten im Speicher, der hier durch die Datenbank 6 dargestellt ist, welche mit dem DU-Computer 3 betriebsfähig verbunden ist. Der DU-Computer 3 verwaltet des Weiteren in der Datenbank 6 gespeicherte, maskierte Daten, wie nachstehend beschrieben ist.
-
Das im System 1 ausgeführte Maskierungsschema arbeitet in aufeinanderfolgenden Zeiträumen oder „Epochen“. Kurz gesagt, in irgendeiner bestimmten Epoche e werden durch den DP-Computer 2 versendete Daten maskiert, indem ein Maskierungsschlüssel ke für diese Epoche verwendet wird. Nach Ablauf einer beliebigen Epoche e wird ein neuer Maskierungsschlüssel ke+1 für die neue Epoche am DP-Computer 2 erzeugt. Zuvor versendete maskierte Daten werden ebenfalls am DU-Computer 3 mit einem geänderten Schlüssel erneut verschlüsselt, damit sie mit dem neuen Maskierungsschlüssel konsistent sind. Die Rekeying-Operation verwendet durch den DP-Computer 2 bereitgestellte Maskierungsaktualisierungsdaten, wie nachstehend näher beschrieben ist.
-
Die Epochen können im System 1 auf unterschiedliche Arten definiert werden und verschiedene Epochen können jeweils eine feste oder veränderliche Dauer haben. Zum Beispiel können neue Epochen in regelmäßigen Abständen, deren Dauer wie gewünscht festgelegt werden kann, periodisch eingeleitet werden. Eine neue Epoche kann auch als Reaktion auf ein bestimmtes Ereignis, z.B. das Erkennen eines böswilligen Eingriffs in das System, eingeleitet werden.
-
Der DP-Computer 2 kann von einem Dateneigentümer betrieben werden und der Datensatz 5 kann proprietäre Daten aufweisen, die von dem Dateneigentümer gespeichert werden.
-
Alternativ kann der DP-Computer 2 von einer Entität betrieben werden, die mit der Durchführung der Datenmaskierung für den Dateneigentümer betraut ist. Im Allgemeinen können zu maskierende Datensätze daher in einer Speichervorrichtung, die sich lokal im DP-Computer 2 befindet, oder in einer entfernt angeordneten Speichervorrichtung gespeichert werden, auf die der DP-Computer 2 zum Beispiel durch einen Datenaustausch mit einem anderen Computer (z.B. einem Dateneigentümer-Computer) über ein Netzwerk zugreifen kann.
-
Der Datenspeicher 5, 6 kann im Allgemeinen eine beliebige, geeignete Datenspeichervorrichtung aufweisen, darunter ein oder mehrere Datenspeichermedien. Typische Ausführungen weisen eine Datenspeichervorrichtung auf, die ein oder mehrere Platten, wie zum Beispiel Magnet- oder optische Platten, aufweist, welche sich in einem Computer, z.B. in einem Festplattenlaufwerk, befinden können oder durch eine Plattenvorrichtung, auf die extern zugegriffen werden kann, z.B. in einer Anordnung von Festplattenlaufwerken wie einem RAID-Array, bereitgestellt werden können.
-
Der DP-Computer 2 und der DU-Computer 3 können jeweils durch einen Universal- oder Spezialcomputer ausgeführt sein, der eine oder mehrere (reale oder virtuelle) Maschinen aufweisen kann, welche Funktionalität zur Ausführung der hierin beschriebenen Operationen bereitstellen. Diese Funktionalität kann durch Logik bereitgestellt werden, welche in Hardware oder Software oder einer Kombination daraus ausgeführt sein kann. Solche Logik kann in dem allgemeinen Kontext von durch ein Computersystem ausführbaren Anweisungen, wie zum Beispiel Programmmodulen, die durch eine Datenverarbeitungsvorrichtung ausgeführt werden, beschrieben werden. Im Allgemeinen können Programmmodule Routinen, Programme, Objekte, Komponenten, Logik, Datenstrukturen und so weiter enthalten, die bestimmte Aufgaben durchführen oder bestimmte abstrakte Datentypen realisieren. Die Datenverarbeitungsvorrichtung kann in verteilten Cloud-Computing-Umgebungen betrieben werden, in denen Aufgaben von fernen Verarbeitungseinheiten durchgeführt werden, die über ein Datenübertragungsnetzwerk verbunden sind. In einer verteilten Cloud-Computing-Umgebung können sich Daten und Programmmodule sowohl in lokalen als auch in entfernt angeordneten Speichermedien eines Computersystems, darunter auch in Hauptspeichereinheiten, befinden.
-
Das Blockschaltbild von 2 zeigt eine beispielhafte Datenverarbeitungsvorrichtung zur Umsetzung eines Computers 2, 3 des Systems 1. Die Vorrichtung ist hier in Form einer Universal-Datenverarbeitungseinheit 10 gezeigt. Zu den Komponenten des Computers 10 können eine Verarbeitungsvorrichtung wie zum Beispiel ein oder mehrere Prozessoren, die von der Verarbeitungseinheit 11 dargestellt werden, ein Systemspeicher 12 und ein Bus 13 gehören, der verschiedene Systemkomponenten verbindet, darunter den Systemspeicher 12 mit der Verarbeitungseinheit 11.
-
Der Bus 13 stellt eine oder mehrere von beliebigen diversen Arten von Busstrukturen, darunter einen Hauptspeicher-Bus oder einen Hauptspeicher-Controller, einen peripheren Bus, einen Accelerated Graphics Port und einen Prozessor- oder lokalen Bus, der eine beliebige von verschiedensten Busarchitekturen nutzt, dar. Als Beispiel, ohne darauf beschränkt zu sein, gehören zu solchen Architekturen der Bus „Industry Standard Architecture (ISA)“, der Bus „Micro Channel Architecture (MCA)“, der Bus „Enhanced ISA (EISA)“, der lokale Bus „Video Electronics Standards Association (VESA)“ und der Bus „Peripheral Component Interconnect (PCI)“.
-
Der Computer 10 enthält üblicherweise verschiedenste durch einen Computer lesbare Datenträger. Solche Datenträger können jedwede verfügbaren Datenträger sein, auf die der Computer 10 zugreifen kann, darunter flüchtige und nicht flüchtige Datenträger sowie auswechselbare und nicht auswechselbare Datenträger. Zum Beispiel kann der Systemspeicher 12 durch einen Computer lesbare Datenträger in Form von flüchtigem Hauptspeicher, wie beispielsweise einem Direktzugriffsspeicher (RAM) 14 und/oder einem Cachespeicher 15, einschließen. Der Computer 10 kann darüber hinaus weitere auswechselbare/nicht auswechselbare, flüchtige/nicht flüchtige Speichermedien eines Computersystems enthalten. Lediglich als Beispiel kann das Speichersystem 16 für Leseoperationen von und für Schreiboperationen auf einen nicht auswechselbaren, nicht flüchtigen Magnetdatenträger (der üblicherweise als „Festplattenlaufwerk“ bezeichnet wird) bereitgestellt werden. Obgleich nicht gezeigt, können auch ein Magnetplattenlaufwerk für Leseoperationen von und Schreiboperationen auf eine auswechselbare, nicht flüchtige Magnetplatte (z.B. eine „Diskette“) und ein optisches Plattenlaufwerk für Leseoperationen von oder Schreiboperationen auf eine auswechselbare, nicht flüchtige optische Platte, wie zum Beispiel ein CD-ROM, DVD-ROM, oder andere optische Datenträger bereitgestellt werden. In diesen Fällen kann jedes Plattenlaufwerk über eine oder mehrere Datenträger-Schnittstellen mit dem Bus 13 verbunden werden.
-
Der Hauptspeicher 12 kann mindestens ein Programmprodukt enthalten, das über ein oder mehrere Programmmodule verfügt, die so konfiguriert sind, dass sie Funktionen von Ausführungsformen der Erfindung ausführen. Als Beispiel kann das Programm/Dienstprogramm 17, das über (mindestens) einen Satz von Programmmodulen 18 verfügt, im Hauptspeicher 12 gespeichert werden, ebenso wie ein Betriebssystem, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten. Zu dem Betriebssystem, dem einen oder den mehreren Anwendungsprogrammen, den anderen Programmmodulen und Programmdaten oder einer bestimmten Kombination daraus kann jeweils eine Ausführung einer Netzwerkumgebung gehören. Die Programmmodule 18 führen im Allgemeinen die Funktionen und/oder die methodischen Vorgehensweisen von erfindungsgemäßen Ausführungsformen, die hierin beschrieben sind, aus.
-
Der Computer 10 kann auch Daten austauschen mit: einer oder mehreren externen Einheiten 19 wie zum Beispiel einer Tastatur, einem Zeigegerät, einem Bildschirm 20 usw.; einer oder mehreren Einheiten, die einem Benutzer den Dialogverkehr mit dem Computer 10 ermöglichen; und/oder beliebigen Einheiten (z.B. Netzkarte, Modem usw.), die dem Computer 10 den Datenaustausch mit einer oder mehreren anderen Datenverarbeitungseinheiten ermöglichen. Ein solcher Datenaustausch kann über Eingabe-/Ausgabe-(E/A-)Schnittstellen 21 erfolgen. Auch kann der Computer 10 mit einem oder mehreren Netzwerken wie zum Beispiel einem lokalen Netzwerk (LAN), einem allgemeinen Weitverkehrsnetz (WAN) und/oder einem öffentlichen Netz (z.B. dem Internet) über den Netzadapter 22 Daten austauschen. Wie abgebildet ist, tauscht der Netzadapter 22 mit den anderen Komponenten des Computers 10 über den Bus 13 Daten aus. Es sollte sich verstehen, dass auch andere Hardware- und/oder Software-Komponenten in Verbindung mit dem Computer 10 verwendet werden könnten, wenngleich diese nicht gezeigt sind. Zu Beispielen gehören, ohne darauf beschränkt zu sein: Mikrocode, Einheitentreiber, redundante Verarbeitungseinheiten, externe Anordnungen von Festplattenlaufwerken, RAID-Systeme, Bandlaufwerke und Speichersysteme zur Datenarchivierung usw.
-
In einer Konfigurationsprozedur vor dem Betrieb des Systems 1 erzeugt der DP-Computer 2 den ersten Maskierungsschlüssel k0 für die erste Epoche e = 0. In den zu beschreibenden Ausführungsformen weist der Maskierungsschlüssel ke für jede Epoche e (mindestens) einen Verschlüsselungsschlüssel se für ein deterministisches Verschlüsselungsschema ENC auf. (Ein deterministisches Verschlüsselungsschema ist ein Schema, bei dem der Verschlüsselungsalgorithmus Enc(k, X) zur Verschlüsselung einer Klartextnachricht X mit einem Schlüssel k immer denselben Geheimtext für denselben Schlüssel k und den Klartext X erzeugt). Die 3 und 4 geben grundlegende Schritte des dynamischen Datenmaskierungsschemas beim nachfolgenden Betrieb des Systems 1 an.
-
3 gibt Schritte an, die zur Datenübertragung zwischen dem DP-Computer 2 und dem DU-Computer 3 in einer aktuellen Epoche e durchgeführt werden. Im Schritt 30 greift der DP-Computer 2 auf Daten zu, die an den DU-Computer 2 gesendet werden sollen. Die zu liefernden Daten können auf unterschiedliche Arten festgelegt werden, z.B. als Teil eines ursprünglichen Datensatzes, der zur Verarbeitung versendet werden soll, oder als Reaktion auf eine Datenanforderung vom DU-Computer 3 oder wenn neue Daten in der Datenbank 5 verfügbar werden und so weiter. In jedem Fall greift der DP-Computer 2 auf die Datenbank 5 zu, um die benötigten Daten abzurufen. Im Schritt 31 kennzeichnet der DP-Computer jedwede Datenelemente, die hier mit xi bezeichnet sind, in den zu sendenden Daten, die gemäß den zuvor erörterten Maskierungskriterien maskiert werden müssen. Unter der Annahme, dass die Daten mindestens eines dieser vorher festgelegten Datenelemente xi enthalten, erzeugt der DP-Computer dann maskierte Daten über den Prozess der Schritte 32 bis 34. Im Einzelnen wendet der DP-Computer 2 für jedes Datenelement xi im Schritt 32 eine Einweg-Funktion, die hier mit F bezeichnet ist, auf (mindestens) dieses Datenelement xi an, um einen ersten Wert, der mit hi bezeichnet ist, zu erzeugen. (Wie in der Technik hinlänglich bekannt ist, ist eine Einweg-Funktion eine Funktion, die schwer umzukehren ist. Das heißt, wenn sie auf eine Eingabe X angewendet wird, erzeugt die Funktion eine Ausgabe Y, so dass es schwierig ist (d.h. rechnerisch unmöglich), X aus gegebenem Yzu erraten). Im Schritt 33 erzeugt der DP-Computer dann ein maskiertes Datenelement yi,e , indem er den ersten Wert hi über ein deterministisches Verschlüsselungsschema ENC unter Verwendung des aktuellen Verschlüsselungsschlüssels se für die aktuelle Epoche e verschlüsselt. Im Schritt 34 ersetzt der DP-Computer 2 das ursprüngliche Datenelement xi durch das entsprechende maskierte Datenelement yi,e in den zu sendenden Daten. Im Schritt 35 sendet der DP-Computer 2 dann die resultierenden maskierten Daten (die sowohl maskierte als auch nicht maskierte Datenelemente enthalten können) an den DU-Computer 3 über das Netzwerk 4. Als Reaktion auf den Empfang der maskierten Daten im Schritt 36 speichert der DU-Computer die maskierten Daten in der Datenbank 6 und die Datenübertragung ist abgeschlossen.
-
4 gibt die Schritte an, die im System 1 nach Ablauf der aktuellen Epoche e durchgeführt werden. Im Schritt 40 erzeugt der DP-Computer 2 einen neuen Verschlüsselungsschlüssel se+1 für das Verschlüsselungsschema ENC in der neuen Epoche (e + 1). Im Schritt 41 erzeugt der DP-Computer 2 Maskierungsaktualisierungsdaten, die hier mit δ bezeichnet sind. Die Maskierungsaktualisierungsdaten δ hängen von dem aktuellen und dem neuen Verschlüsselungsschlüssel se, se+1 ab und erlauben am DU-Computer 3 die Aktualisierung von maskierten, mit dem aktuellen Verschlüsselungsschlüssel se erzeugten Datenelementen yi,e auf maskierte, mit dem neuen Verschlüsselungsschlüssel se+1 erzeugte Datenelemente yi,e+1 . Der DP-Computer 2 sendet die Maskierungsaktualisierungsdaten δ im Schritt 42 an den DU-Computer 3 und aktualisiert den Epochenzähler e im Schritt 43 auf (e + 1). Der neue Verschlüsselungsschlüssel se+1 wird somit der aktuelle Verschlüsselungsschlüssel se für eine weitere Datenübertragung in der neuen aktuellen Epoche. Als Reaktion auf den Empfang der Maskierungsaktualisierungsdaten δ im Schritt 44 verwendet der DU-Computer 3 die Maskierungsaktualisierungsdaten, um die in der Datenbank 6 gespeicherten maskierten Daten mit einem geänderten Schlüssel erneut zu verschlüsseln. Im Einzelnen verwendet der DU-Computer 3 die Maskierungsaktualisierungsdaten δ, um jedes maskierte Datenelement yi,e (das mit dem alten aktuellen Verschlüsselungsschlüssel se erzeugt wurde) in den gespeicherten maskierten Daten auf ein maskiertes Datenelement yi,e+1 zu aktualisieren, das mit den neuen aktuellen Verschlüsselungsschlüssel se+1 erzeugt wird. Der Aktualisierungsprozess ist dann abgeschlossen.
-
Der Prozess von 4 wird erneut nach Ablauf der neuen Epoche und einer jeden nachfolgenden neuen Epoche durchgeführt, wobei der Verschlüsselungsschlüssel se für jede neue Epoche aktualisiert wird, und bereits an den DU-Computer 3 gesendete maskierte Daten werden unter Verwendung der Maskierungsaktualisierungsdaten δ mit einem geänderten Schlüssel erneut verschlüsselt, damit sie mit dem neuen Verschlüsselungsschlüssel konsistent sind. Jedwede weiteren Daten, die in einer neuen Epoche an den DU-Computer 3 gesendet werden, werden über den Prozess von 3 übertragen, wobei der neue Verschlüsselungsschlüssel als der aktuelle Verschlüsselungsschlüssel für diese Epoche verwendet wird.
-
Man wird feststellen, dass der Maskierungsprozess zwei Ebenen aufweist: eine statische, innere Ebene, welche die Einweg-Funktion F verwendet, und eine epochenspezifische äußere Ebene, welche die deterministische Verschlüsselung verwendet. Dadurch können der Maskierungsschlüssel aktualisiert und maskierte Daten für jede neue Epoche mit einem geänderten Schlüssel erneut verschlüsselt werden, ohne die ursprünglichen, nicht maskierten Datenelemente xi offenzulegen. Der Maskierungsprozess ist unumkehrbar: Ein maskierter Wert yi,e gibt keine Informationen über die ursprünglichen Daten xi preis (selbst wenn der Verschlüsselungsschlüssel se offenbart wird). Die Rekeying-Operation kann von dem nicht vertrauenswürdigen DU-Computer im Schritt 44 durchgeführt werden und stellt sicher, dass die referenzielle Integrität zwischen maskierten Daten, die in vorherigen Epochen versendet wurden, und jedweden weiteren Daten, die unter Verwendung des neuen Verschlüsselungsschlüssels für eine bestimmte Epoche maskiert werden, bewahrt wird. Das Schema stellt somit eine dynamische Datenmaskierung mit Schlüsselentwicklung bereit, bei der eine Offenlegung des Schlüssels keine Beziehungen zwischen Daten offenbart, die in der Vergangenheit maskiert wurden, und bei der Rekeying-Aktualisierungen an zuvor maskierten Daten von einer nicht vertrauenswürdigen Entität durchgeführt werden können.
-
Eine Ausführung des vorstehenden Schemas kann wie folgt formalisiert werden.
-
Schlüssel entwickelnde Dynamische Datenmaskierung. Das Schlüssel entwickelnde dynamische Datenmaskierungsschema DDM besteht aus einem Datenraum X, einem maskierten Raum
und einem Satz von Polynomialzeit-Algorithmen DDM.setup, DDM.next, DDM.mask und DDM.upd, die die folgenden Bedingungen erfüllen.
-
DDM.setup. Der Algorithmus DDM.setup ist ein von dem Datenanbieter ausgeführter probabilistischer Algorithmus. Nach der Eingabe eines Sicherheitsparameters λ gibt dieser Algorithmus par, einen Satz von Systemparametern, und
k0 , einen Maskierungsschlüssel für die Epoche e = 0 zurück. Das heißt,
wobei r anzeigt, dass der Algorithmus probabilistisch ist.
-
DDM.next. Dieser probabilistische Algorithmus wird ebenfalls von dem Datenanbieter ausgeführt. Nach der Eingabe par, einer Epoch e ≥ 0 und eines Maskierungsschlüssels
ke für diese Epoche gibt er einen Maskierungsschlüssel
ke+1 und einen Maskenaktualisierungswert
δe+1 für die Epoch e + 1 aus. Das heißt,
-
DDM.mask. Dies ist ein deterministischer, injektiver Algorithmus, der von dem Datenanbieter ausgeführt wird. Für die Systemparameter par, einige Eingabedaten
eine Epoche e und ihren entsprechenden Maskierungsschlüssel
ke gibt der Algorithmus einen maskierten Wert
aus. Das heißt,
ye ← DDM.mask(par, x, e,
ke ).
-
DM.upd. Dieser deterministische Algorithmus wird von dem Datenbenutzer ausgeführt und verwendet den Maskenaktualisierungswert. Nach der Eingabe von maskierten Daten ye von der Epoche e und dem Maskenaktualisierungswert δe+1 aktualisiert DDM.upd ye auf ye+1 , das heißt, ye+1 ← DDM.upd(ye , δe+1 ).
-
Beispielhafte Ausführungsformen des vorstehenden Schemas sind nachstehend ausführlich beschrieben. Einige Vorbemerkungen werden zuerst gemacht.
-
Deterministische symmetrische Verschlüsselung. Ein symmetrisches Verschlüsselungsschema SE besteht aus einem Schlüsselraum
und drei Polynomialzeit-Algorithmen SE.KeyGen, SE.Enc, SE.Dec, die die folgenden Bedingungen erfüllen.
-
SE.KeyGen. Der Schlüsselerzeugungsalgorithmus SE.KeyGen ist ein probabilistischer Algorithmus, der als Eingabe einen Sicherheitsparameter λ verwendet und einen Verschlüsselungsschlüssel
erzeugt. Das heißt,
-
SE.Enc. Der deterministische Verschlüsselungsalgorithmus verwendet einen Schlüssel s E X und eine Nachricht m E ℳ, wobei ℳ der Nachrichtenraum ist, und gibt einen Geheimtext C zurück. Wir schreiben C ← SE.Enc(s, m) für die Operation der Ausführung von SE.Enc an s und m, wobei C den ausgegebenen Geheimtext bezeichnet.
-
SE.Dec. Der deterministische Entschlüsselungsalgorithmus SE.Dec verwendet einen Schlüssel
und einen Geheimtext C, um eine Nachricht m E (ℳ ∪ {⊥}) zurückzugeben, wobei 1 ein Fehlersymbol bezeichnet. Wir schreiben m <- SE.Dec(s, C) für die Operation der Ausführung von SE.Dec an s und C, wobei m die Ausgabenachricht bezeichnet.
-
Hashfunktionen. Wir verwenden des Weiteren Hashfunktionen
wobei ℌ eine Familie von Hashfunktionen bezeichnet und eine ganz bestimmte Instanz ausgewählt wird, indem ein Hashschlüssel
ausgewählt wird. Eine Hashberechnung für die Eingabe x wird als h←ℌ(hk,x) bezeichnet. Für unsere Konstruktionen verwenden wir eine Hashfunktion, die (schwach) kollisionsresistent, pseudozufällig und schwer umzukehren ist (Einweg).
-
Entscheidende Diffie-Hellman-Gruppen. Die nachstehende zweite Konstruktion beruht auf der Entscheidenden Diffie-Hellman-Annahme. Wir definieren einen Entscheidenden Diffie-Hellman-Parametergenerator als einen Polynomialzeit-Algorithmus DDHgen, der nach der Eingabe eines Sicherheitsparameters λ eine ganze Zahl p zusammen mit der Beschreibung einer zyklischen Gruppe
der Ordnung p erzeugt.
-
Vertraulichkeit von Schlüssel entwickelnden DDM-Schemata. Das Hauptziel von DDM besteht darin, Vertraulichkeit für Datenwerte zu erreichen, wobei sichergestellt wird, dass ein Gegner keine Informationen über die maskierten Werte erlangen und diese nicht mit Eingabedaten verknüpfen kann, die in vergangenen Epochen maskiert wurden. Wir beziehen uns auf drei auf Ununterscheidbarkeit beruhende Begriffe für die Vertraulichkeit von maskierten Werten und einen Begriff, der ausschließt, dass ein Gegner die Maskierung rückgängig machen und den eingegebenen Wert aus einem maskierten Wert wiederherstellen kann, wie folgt:
-
IND-HOCH: Indistinguishability with Honest Owner and Corrupted Host. Dies ist das grundlegendste Sicherheitskriterium, das sich auf den Schlüssel entwickelnden dynamischen Aspekt von DDM konzentriert. Es betrachtet den Eigentümer (Dateneigentümer) als ehrlich und gestattet die Beschädigung des Hosts (Datenbenutzers) während der Interaktion. Der Gegner erlangt Zugriff auf die Aktualisierungswerte für alle Epochen im Anschluss an die Beschädigung und sollte dennoch (grob gesagt) nicht in der Lage sein, Werte zu unterscheiden, die vor der Beschädigung maskiert wurden.
-
IND-COHH: Indistinguishability with Corrupted Owner and Honest Host. Bei der Modellierung einer Beschädigung des Eigentümers (Datenanbieters) zu irgendeinem Zeitpunkt bringt der Gegner den Maskierungsschlüssel der beschädigten Epoche und alle Geheimnisse des Eigentümers in Erfahrung. Daraufhin kann der Gegner die Kontrolle über den Eigentümer übernehmen, sollte aber nicht die Entsprechung zwischen Werten in Erfahrung bringen, die vor der Beschädigung maskiert wurden. Es wird angenommen, dass der Host (Datenbenutzer) (meistens) ehrlich bleibt.
-
IND-COTH: Indistinguishability with Corrupted Owner and Transiently Corrupted Host. Als eine Verfeinerung der ersten beiden Begriffe kann der Gegner den Host (Datenbenutzer) während mehrerer Epochen nach seiner Wahl vorübergehend beschädigen, und er kann auch den Eigentümer (Datenanbieter) ein Mal beschädigen. Der Gegner bringt die Aktualisierungswerte der jeweiligen Epochen, in denen er den Host beschädigt, in Erfahrung und er bringt den Maskierungsschlüssel der Epoche in Erfahrung, in der er den Eigentümer beschädigt. Datenwerte, die vor der Offenlegung der Geheimnisse des Eigentümers maskiert wurden, sollten unverknüpfbar bleiben.
-
Nichtumkehrbarkeit: Dieser Begriff modelliert den Fall, in dem der Eigentümer (Datenanbieter) gleich in der ersten Epoche beschädigt wird und der Gegner somit alle Geheimnisse in Erfahrung bringt. Dennoch sollte die Maskierungsoperation eine Einwegoperation in dem Sinn sein, dass das Feststellen eines maskierten Werts dem Gegner keinen Vorteil beim Erraten der entsprechenden Eingabe aus dem Eingabebereich verschafft.
-
Die
5 und
6 geben den Betrieb des Systems
1 mit einem einen Schlüssel entwickelnden Datenmaskierungsschema
DDMSE an, das auf einem deterministischen symmetrischen Verschlüsselungsschema SE = (SE.KeyGen, SE.Enc; SE.Dec) und einer Familie von kollisionsresistenten verschlüsselten Hashfunktionen
beruht. Bei dieser Konstruktion weist der Maskierungsschlüssel
ke für jede Epoche e einen eindeutigen, zufälligen symmetrischen Schlüssel
se für das Verschlüsselungsschema
SE und einen langfristigen (festen) geheimen Hashschlüssel hk des Datenanbieters auf. Der anfängliche Maskierungsschlüssel k
0 = (s
0, hk) für die Epoche e = 0 wird vom DP-Computer
2 in einer Konfigurationsoperation erzeugt, indem
berechnet und
gewählt wird.
-
Zuerst Bezug nehmend auf die Datenübertragungsprozedur von 5 entsprechen die Schritte 50 und 51 den Schritten 30 bzw. 31 von 3. Im Schritt 52 berechnet der DP-Computer 2 für jedes zu maskierende Datenelement xi den ersten Wert hi , indem er die Hashfunktion ℌ auf dieses Datenelement xi und den geheimen Hashschlüssel hk anwendet, d.h. hi ← ℌ(hk, xi ). Im Schritt 53 erzeugt der DP-Computer 2 das maskierte Datenelement yi,e, indem er den Hashwert hi über das Verschlüsselungsschema SE unter Verwendung des Verschlüsselungsschlüssels se für die aktuelle Epoche e verschlüsselt, d.h. yi,e <- SE.Enc(se , hi ). Die nachfolgenden Schritte 54 bis 56 entsprechen den Schritten 34 bis 36 von 3.
-
Der Aktualisierungsprozess von
6 wird nach Ablauf einer jeden aktuellen Epoche e durchgeführt. Im Schritt
60 erzeugt der DP-Computer
2 den neuen Verschlüsselungsschlüssel
se+1 für die nächste Epoche als
se+1 Die im Schritt
61 erzeugten Maskierungsaktualisierungsdaten weisen den aktuellen Verschlüsselungsschlüssel
se und den neuen Verschlüsselungsschlüssel
se+1 auf, d.h. δ = (s
e, se+1 ). Nachdem
δ im Schritt
62 an den DU-Computer
3 gesendet wurde, löscht der DP-Computer
se und δ und aktualisiert den Epochenzähler e im Schritt
63. Der neue Verschlüsselungsschlüssel
se+1 wird somit der aktuelle Verschlüsselungsschlüssel
se für eine Datenübertragung in der neuen Epoche. Nach dem Empfang der Maskierungsaktualisierungsdaten δ = (s
e, se+1 ) im Schritt
64 verschlüsselt der DU-Computer
3 die in der Datenbank
6 gespeicherten maskierten Daten erneut mit einem geänderten Schlüssel. Das Rekeying wird erreicht, indem: (a) jedes maskierte Datenelement
yi,e unter Verwendung des aktuellen Verschlüsselungsschlüssels
se über den Entschlüsselungsalgorithmus SE.Dec entschlüsselt wird, um den ersten Wert
hi zu erhalten; und (b) der erste Wert
hi über den Verschlüsselungsalgorithmus SE.Enc unter Verwendung des neuen Verschlüsselungsschlüssels
se+1 erneut verschlüsselt wird, wodurch man
yi,e+1 erhält. Der DU-Computer löscht die Maskierungsaktualisierungsdaten δ dann im Schritt
65 und der Aktualisierungsprozess ist abgeschlossen.
-
Die vorstehende Konstruktion kann in Bezug auf Algorithmen eines einen Schlüssel entwickelnden DDM-Schemas wie folgt definiert werden:
-
DDMSE.setup(λ).
- (a) Führe
aus, um einen symmetrischen Verschlüsselungsschlüssel s0 zu erhalten.
- (b) Wähle zufällig einen Hashschlüssel
aus.
- (c) Sei k0 ← (s0 , hk) und par = ⊥. Gib (par, k0 ) aus
-
DDMSE.next(par, e, ke ).
- (a) Parse ke als (se, hk).
- (b) Führe
aus, um einen symmetrischen Verschlüsselungsschlüssel s", zu erhalten.
- (c) Sei ke+1 ← (se+1, hk) und sei δe+1= (se, se+1).
- (d) Gib (ke+1, δe+1) aus.
-
DDMSE.mask(par, xi , e, ke ).
- (a) Parse ke als (se, hk).
- (b) Berechne den Wert yi,e ← SE.Enc(se , ℌ(hk, xi )).
- (c) Gib yi,e aus.
-
DDMSE.upd(yi,e, δe+1).
- (a) Parse δe+1 als (se, se+1).
- (b) Berechne den Wert yi,e+1 ← SE.Enc(se+1. SE.Dec(se , ye )).
- (c) Gib yi,e+1 aus.
-
Die oben erwähnte Konstruktion ergibt ein effizientes DDM-Schema, das die Sicherheitsbegriffe IND-HOCH und IND-COHH sowie das Erfordernis der Nichtumkehrbarkeit erfüllt.
-
Die
7 und
8 geben den Betrieb des Systems
1 mit einem einen Schlüssel entwickelnden Datenmaskierungsschema
DDMDL an, das auf der Annahme eines diskreten Logarithmus beruht, wobei die Aktualisierung auf eine Weise durchgeführt wird, bei der ein Proxy erneut verschlüsselt wird. Dieses Schema verwendet wieder eine Familie von kollisionsresistenten verschlüsselten Hashfunktionen,
und ein deterministisches Verschlüsselungsschema. Bei diesem Schema weisen die Maskierungsaktualisierungsdaten jedoch eine vorher festgelegte Funktion δ des aktuellen und des neuen Verschlüsselungsschlüssels
se, se+1 auf, und das Verschlüsselungsschema weist einen Algorithmus Enc(k, X) auf, um einen Wert X mit einem Verschlüsselungsschlüssel k zu verschlüsseln, so dass:
-
Daher können die maskierten Datenelemente aktualisiert werden, indem jedes maskierte Datenelement über den Algorithmus Enc(k, X) unter Verwendung des Verschlüsselungsschlüssels k = δ verschlüsselt wird.
-
Wie zuvor weist der Maskierungsschlüssel
ke für jede Epoche e einen zufälligen epochenspezifischen Schlüssel
se und einen langfristigen Hashschlüssel hk des Datenanbieters auf. Der anfängliche Maskierungsschlüssel
k0 = (
s0 , hk) für die Epoche e = 0 wird vom DP-Computer
2 in einer Konfigurationsoperation erzeugt. In diesem Beispiel wird der Schlüssel
s0 erzeugt, indem ein Exponent
zufällig gewählt wird, wobei ℤ
p die Gruppe der ganzen Zahlen modulo p ist. Der Hashschlüssel wird wie zuvor erzeugt, indem
gewählt wird.
-
In der Datenübertragungsprozedur von
7 entsprechen die Schritte
70 bis
72 jeweils den Schritten
50 bis
52 von
5. Im Schritt
73 erzeugt der DP-Computer
2 hier das maskierte Datenelement
yi,e , indem er den Hashwert
hi für ein Datenelement
xi unter Verwendung des Verschlüsselungsschlüssels
se über den Algorithmus Enc(
se , X) = X
s
e verschlüsselt, d.h. y
i,e <-(
hi )
s
e . Die nachfolgenden Schritte
74 bis
76 entsprechen den Schritten
54 bis
56 von
5. In dem Aktualisierungsprozess von
8 erzeugt der DP-Computer
2 den neuen r Verschlüsselungsschlüssel s", im Schritt
80 als
Die Maskierungsaktualisierungsdaten werden im Schritt
81 als Quotient des aktuellen und des neuen Verschlüsselungsschlüssels erzeugt: δ = s
e+1/s
e. Nachdem δ im Schritt
82 an den DU-Computer
3 gesendet wurde, löscht der DP-Computer
se und δ und aktualisiert den Epochenzähler e im Schritt
83. Der neue Verschlüsselungsschlüssel s
e+1 wird somit der aktuelle Verschlüsselungsschlüssel
se für eine Datenübertragung in der neuen Epoche. Nach dem Empfang der Maskierungsaktualisierungsdaten δ = s
e+1/s
e verschlüsselt der DU-Computer
3 im Schritt
84 die maskierten Daten in der Datenbank
6 erneut mit einem geänderten Schlüssel, indem er jedes maskierte Datenelement
yi,e über den Algorithmus (k, X) unter Verwendung des Verschlüsselungsschlüssels k = δ verschlüsselt. Folglich ist Enc(δ,
wobei das maskierte Datenelement auf
yi,e+1 aktualisiert wird. Der DU-Computer löscht die Maskierungsaktualisierungsdaten δ im Schritt
85 und der Aktualisierungsprozess ist abgeschlossen.
-
Die zweite Konstruktion kann in Bezug auf Algorithmen eines einen Schlüssel entwickelnden DDM-Schemas wie folgt definiert werden:
-
DDMDL .setup(λ).
- (a) Wähle zufällig einen Exponenten
und einen Hashschlüssel
- (c) Sei k0 ← (s0 , hk) und
Gib (par, k0 ) aus
-
DDMDL .next(par, e, ke ).
- (a) Parse ke als (se, hk).
- (b) Wähle zufällig einen Exponenten
- (c) Sei ke+1 ← (se+1, hk) und sei δe+1= se+1/se.
- (d) Gib (ke+1, δe+1) aus.
-
DDMDL.mask(par, xi , e, ke ).
- (a) Parse ke als (se, hk).
- (b) Berechne yi,e ← (ℌ(hk, xi ))s
e
- (c) Gib yi,e aus.
-
DDMSE.upd(yi,e, δe+1).
- (a) Berechne yi,e+1 ← (yi,e)δ
e+1 .
- (b) Gib yi,e+1 aus.
-
Die zweite Konstruktion ergibt ein außergewöhnlich sicheres und effizientes DDM-Schema, das Nichtumkehrbarkeit und alle drei Sicherheitsbegriffe IND-HOCH, IND-COHH und IND-COTH erfüllt. Um maskierte Werte zu aktualisieren, erhält der Datenbenutzer nicht die Verschlüsselungsschlüssel an sich, sondern nur den Quotienten aus dem aktuellen und dem neuen Exponenten. Während dies dem Datenbenutzer erlaubt, die maskierten Daten immer wieder zu aktualisieren, gibt es nicht den inneren Hash in dem Aktualisierungsprozess preis und gewährleistet Unverknüpfbarkeit von maskierten Werten über Epochen hinweg, wobei auf diese Weise der stärkste Begriff der IND-COTH-Sicherheit erfüllt wird.
-
Man wird feststellen, dass die vorstehenden Ausführungsformen dynamische Datenmaskierungsschemata bieten, die auf einer beweisbar sicheren Kryptographie beruhen und eine Schlüsselentwicklung mit effizientem und konsistentem Rekeying von maskierten Daten in einer nicht vertrauenswürdigen Domäne unterstützen.
-
Viele Ab- und Veränderungen können natürlich an den beschriebenen beispielhaften Ausführungsformen vorgenommen werden. Zum Beispiel kann der Fachmann alternative Konstruktionen für Algorithmen Enc(k, X) und Maskenaktualisierungswerte δ, die Enc(δ, (Enc(se , X)) = Enc(se+1, X) erfüllen, in Betracht ziehen. Andere Einweg-Funktionen F können in der inneren Maskierungsebene verwendet werden. Während die Verwendung eines statischen geheimen Schlüssels hk in dieser Ebene die Sicherheit erhöht, kann die Einweg-Funktion in einigen Ausführungsformen auch ohne einen statischen Schlüssel hk auf ein Datenelement xi angewendet werden. Die Verwendung des statischen Schlüssels kann zum Beispiel in den Ausführungsformen, die den inneren Hash hi nicht preisgeben, weniger wichtig sein.
-
Während die vorstehende erste Konstruktion ein symmetrisches Verschlüsselungsschema verwendet, könnte auf Wunsch ein asymmetrisches Verschlüsselungsschema verwendet werden, wenn auch mit Effizienzverlust. Bei der asymmetrischen Verschlüsselung werden verschiedene Schlüssel eines Schlüsselpaars zur Ver- und Entschlüsselung verwendet, wobei die Maskierungsaktualisierungsdaten den Entschlüsselungsschlüssel für eine aktuelle Epoche und den Verschlüsselungsschlüssel für die nächste Epoche enthalten würden. Während die spezifischen Beispiele dynamische Datenmaskierungsschemata beschreiben, können die beschriebenen Grundsätze des Weiteren zum Vorteil in statischen Datenmaskierungsfällen angewendet werden.
-
Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung erfolgten zum Zweck der Veranschaulichung, sollen jedoch nicht erschöpfend oder auf die offenbarten Ausführungsformen beschränkt sein. Viele Veränderungen und Varianten sind für den Fachmann erkennbar, ohne vom Umfang und Wesen der beschriebenen Ausführungsformen abzuweichen. Die hierin verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung oder technische Verbesserung gegenüber auf dem Markt befindlichen Technologien am besten zu erklären bzw. um anderen Fachleuten das Verständnis der hierin offenbarten Ausführungsformen zu ermöglichen.