DE102011010613A1 - Verfahren zum Speichern und Wiederherstellen von Daten, Verwendung der Verfahren in einer Storage Cloud, Speicherserver und Computerprogrammprodukt - Google Patents

Verfahren zum Speichern und Wiederherstellen von Daten, Verwendung der Verfahren in einer Storage Cloud, Speicherserver und Computerprogrammprodukt Download PDF

Info

Publication number
DE102011010613A1
DE102011010613A1 DE102011010613A DE102011010613A DE102011010613A1 DE 102011010613 A1 DE102011010613 A1 DE 102011010613A1 DE 102011010613 A DE102011010613 A DE 102011010613A DE 102011010613 A DE102011010613 A DE 102011010613A DE 102011010613 A1 DE102011010613 A1 DE 102011010613A1
Authority
DE
Germany
Prior art keywords
data
block
storage
source
storage location
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.)
Granted
Application number
DE102011010613A
Other languages
English (en)
Other versions
DE102011010613B4 (de
Inventor
Christoph König
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Technology Solutions Intellectual Property GmbH
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 Fujitsu Technology Solutions Intellectual Property GmbH filed Critical Fujitsu Technology Solutions Intellectual Property GmbH
Priority to DE102011010613.8A priority Critical patent/DE102011010613B4/de
Priority to US13/366,676 priority patent/US9419796B2/en
Publication of DE102011010613A1 publication Critical patent/DE102011010613A1/de
Application granted granted Critical
Publication of DE102011010613B4 publication Critical patent/DE102011010613B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Storage Device Security (AREA)

Abstract

Die Erfindung betrifft Verfahren (200, 500) zum Speichern von Daten, bei dem zu speichernde Daten in eine Mehrzahl von Quellblöcken (122, 422) aufgeteilt werden. Für jeden Quellblock (122, 422) wird basierend auf einer Zufallsfunktion ein Blockschlüssel bestimmt und der Quellblock (122, 422) unter Verwendung des bestimmten Blockschlüssels verschlüsselt. Des Weiteren wird wenigstens ein erster Speicherort (140a, 440a) und ein zweiter Speicherort (140b, 440b) aus einer Mehrzahl von verschiedenen, zur Verfügung stehenden Speicherorten (140, 440) ausgewählt sowie Steuerdaten, umfassend Informationen über den bestimmten Blockschlüssel, an dem ausgewählten ersten Speicherort (140a, 440a) und verschlüsselte Daten, umfassend Informationen des verschlüsselten Quellblocks, an dem ausgewählten zweiten Speicherort (140b, 440b) gespeichert. Die Erfindung betrifft außerdem Verfahren (300, 600) zum Wiederherstellen von Daten, die Verwendung derartiger Verfahren in einer Storage Cloud (130, 430), einen Speicherserver (110, 410) sowie ein Computerprogrammprodukt.

Description

  • Die Erfindung betrifft ein Verfahren zum Speichern von Daten, bei dem zu speichernde Daten in eine Mehrzahl von Quellblöcken aufgeteilt werden. Die Erfindung betrifft des Weiteren ein Verfahren zum Lesen von Daten, umfassend eine Mehrzahl von Datenblöcken, sowie eine Verwendung der genannten Verfahren in einer Storage Cloud umfassend eine Mehrzahl von unterschiedlichen Speicherorten. Die Erfindung betrifft des Weiteren einen Speicherserver zum Verarbeiten großer Datenmengen sowie ein Computerprogrammprodukt, die zur Ausführung der genannten Verfahren eingerichtet sind.
  • Durch die fortschreitende Vernetzung von IT-Ressourcen, wie beispielsweise Servern, die Rechenkapazität oder Speicherkapazität zur Verfügung stellen, wird das Zusammenstellen loser Rechnerverbände, die gemeinsam bestimmte Aufgaben lösen, ermöglicht. Derartige Lösungen ermöglichen insbesondere Teile oder die gesamte IT-Infrastruktur eines Unternehmens weltweit zu verteilen, wobei es für die jeweiligen Nutzer transparent ist, ob eine genutzte Ressource lokal oder entfernt zur Verfügung gestellt wird. Dieser Vorgang wird bisweilen auch als Virtualisierung der IT-Infrastruktur bezeichnet.
  • Ansätze, bei denen eine abstrahierte IT-Infrastruktur dynamisch an einen Bedarf angepasst und über ein Netzwerk zur Verfügung gestellt wird, sind unter dem Begriff ”Cloud Computing” bekannt geworden. Eine spezielle Anwendung des Cloud Computings stellt die so genannte ”Cloud Storage” dar, bei dem speziell Speicherkapazitäten unterschiedlicher Speicherressourcen von unterschiedlichen Speicherorten zur Verfügung gestellt werden.
  • Der Einsatz von Speicherplatz einer Storage Cloud weist gegenüber dem Vorhalten lokaler Speicherkapazität erhebliche wirtschaftliche und organisatorische Vorteile auf. Dennoch wird von den Möglichkeiten der Cloud Storage bislang nur vereinzelt Gebrauch gemacht, da insbesondere Sicherheitsbedenken dem Abspeichern von Daten auf unbekannten Servern entgegenstehen. Bekannte Methoden zum Sichern von Daten, insbesondere eine Verschlüsselung der gespeicherten Daten, eignen sich nur bedingt in Szenarien, bei dem große Menge Daten auf einem unbekannten Server gespeichert werden. Denn bei ausreichend großer Datenmenge und zur Verfügung stehender Rechenleistung beziehungsweise -zeit können die meisten praktisch relevanten Verschlüsselungsverfahren gebrochen, das heißt auch ohne Kenntnis eines zur Verschlüsselung verwendeten Schlüssels entschlüsselt, werden.
  • Es ist eine Aufgabe der vorliegenden Erfindung, Verfahren zum Speichern und Lesen von Daten zu beschreiben, die sich insbesondere zum Einsatz in einer Storage Cloud eignen. Dabei sollen die beschriebenen Verfahren die Datensicherheit gegenüber bekannten Verfahren erhöhen. Des Weiteren sollen Vorrichtungen beschrieben werden, die zur Ausführung des Verfahrens geeignet sind.
  • Gemäß einem ersten Aspekt der Erfindung wird ein Verfahren zum Speichern von Daten beschrieben, bei dem zu speichernde Daten in eine Mehrzahl von Quellblöcken aufgeteilt werden und bei dem für jeden Quellblock die folgenden Schritte durchgeführt werden:
    • – Bestimmen eines Blockschlüssels für den Quellblock basierend auf einer Zufallsfunktion,
    • – Verschlüsseln des Quellblocks unter Verwendung des bestimmten Blockschlüssels,
    • – Auswählen wenigstens eines ersten Speicherorts und eines zweiten Speicherorts aus einer Mehrzahl von verschiedenen zur Verfügung stehenden Speicherorten,
    • – Speichern von Steuerdaten, umfassend Informationen über den bestimmten Blockschlüssel, an dem ausgewählten ersten Speicherort, und
    • – Speichern von verschlüsselten Daten, umfassend Informationen des verschlüsselten Quellblocks, an dem ausgewählten zweiten Speicherort.
  • Das beschriebene Verfahren macht sich zunutze, dass zu speichernde Daten auf eine Mehrzahl von Quellblöcken aufgeteilt werden, die einzeln, unter Verwendung unterschiedlicher, blockindividueller Schlüssel verschlüsselt und an unterschiedlichen Speicherorten abgespeichert werden. Dabei wird der zur Wiederherstellung der verschlüsselten Daten benötigte Blockschlüssel jeweils an einen anderen Speicherort als die verschlüsselten Daten gespeichert. Die Aufteilung der Daten und voneinander unabhängige Verschlüsselung der einzelnen Quellblöcke sowie das Abspeichern der verschlüsselten Daten an unterschiedlichen Speicherorten macht es potentiellen Angreifern und Betreibern der einzelnen Speicherorte praktisch unmöglich, die verschlüsselten Daten aufgrund einer statistischen Analyse der abgespeicherten Daten wiederherzustellen. Dabei wird die Entschlüsselung von Informationen des verschlüsselten Quellblocks umso schwieriger, je kleiner die einzelnen Quellblöcke gewählt werden.
  • Gemäß einer vorteilhaften Ausgestaltung wird im Schritt des Auswählens der wenigstens eine erste Speicherort mittels einer Zufallsfunktion aus der Mehrzahl der Speicherorte ausgewählt und der wenigstens eine zweite Speicherort wird mittels, einer Zufallsfunktion aus einer Menge umfassend die Mehrzahl der Speicherorte ohne den ausgewählten Speicherort ausgewählt. Durch eine zufällige Auswahl der Speicherorte kann eine gezielte Kollaboration von Betreibern verschiedener Speicherorte zum Entschlüsseln der gespeicherten Daten weitgehend verhindert werden.
  • Gemäß einer weiteren vorteilhaften Ausgestaltung wird die Redundanz der Daten des Quellblocks vor dem Speichern der verschlüsselten Daten reduziert. Durch die zusätzliche Reduktion der Redundanz des Quellblocks vor dem Speichern der verschlüsselten Daten kann eine statistische Analyse der verschlüsselten Daten weiter erschwert werden.
  • Gemäß einer weiteren vorteilhaften Ausgestaltung umfasst das Verfahren zusätzlich die Schritte des Aufteilen der Daten des Quellblocks auf eine Anzahl N, N > 1, von Datenblöcken und des Speichern der N Datenblöcke an N Speicherorten der Mehrzahl der Speicherorte, wobei die Daten jedes der N Datenblöcke an einem anderen der N ausgewählten Speicherorte gespeichert werden. Durch eine N-fache Aufteilung und Ablage von Daten an unterschiedlichen Speicherorten wird die Wiederherstellung der Daten auf Grundlage einer statistischen Analyse exponentiell erschwert.
  • Gemäß einer weiteren vorteilhaften Ausgestaltung umfasst das Verfahren den zusätzlichen Schritt des Bestimmen einer Zuordnungsvorschrift zum Aufteilen von vorbestimmten Informationseinheiten des Quellblocks, wobei im Schritt des Aufteilens die Daten des Quellblocks gemäß der Zuordnungsvorschrift auf die N Datenblöcke aufgeteilt werden und wobei die gespeicherten Steuerdaten zusätzlich Informationen über die bestimmte Zuordnungsvorschrift umfassen. Bei einer Aufteilung von Informationseinheiten des Quellblocks und dem Speichern zugehöriger Datenblöcke an unterschiedlichen Speicherorten wird die Wiederherstellung der Daten ohne Kenntnis der Zuordnungsvorschrift und Zugang zu sämtlichen beteiligten Speicherorten weiter erschwert.
  • Gemäß einer weiteren vorteilhaften Ausgestaltung umfassen die vorbestimmten Informationseinheiten Bytes mit je 8 Bit und die Daten des Quellblocks werden gemäß der Zuordnungsvorschrift so auf die N Datenblöcke aufgeteilt, dass keiner der N Datenblöcke sämtliche Bits eines Bytes des Quellblocks enthält. Durch die Aufteilung der Bits eines Bytes gemäß einer Zuordnungsvorschrift auf unterschiedliche Datenblöcke kann die Ausnutzung von statistischen Anomalien, wie sie insbesondere bei ASCII-codierten Textinformationen auftreten, reduziert werden, was die Entschlüsselung der Daten ohne Kenntnis des Schlüssels weiter erschwert.
  • Gemäß weiteren vorteilhaften Ausgestaltungen werden die zu speichernden Daten vor der Aufteilung in Quellblöcke unter Verwendung eines von einem Benutzer gewählten Dateischlüssels verschlüsselt und/oder komprimiert. Durch die Verwendung einer weiteren, Benutzer gewählten Verschlüsselung und/oder Kompression wird die Redundanz der Daten der Quellblöcke weiter reduziert.
  • Gemäß einer weiteren vorteilhaften Ausgestaltung wird für jeden Quellblock eine Blocklänge zwischen einer vorbestimmten minimalen Blocklänge und einer vorbestimmten maximalen Blocklänge basierend auf einer Zufallsfunktion bestimmt, wobei die gespeicherten Steuerdaten zusätzliche Informationen bezüglich der bestimmten Blocklänge umfassen. Durch zufällige Auswahl einer variablen Blocklänge wird die Entschlüsselung der verschlüsselten Daten ohne Kenntnis der zugehörigen Steuerdaten weiter erschwert.
  • Gemäß einer weiteren Ausgestaltung umfassen die an dem ersten Speicherort gespeicherten Steuerdaten zusätzliche Informationen zum Validieren der an dem zweiten Speicherort gespeicherten Daten oder umgekehrt. Durch das Vorsehen und die Auswerten von Validierungsdaten können Manipulationen von an einem Speicherort gespeicherten Daten erkannt und gegebenenfalls korrigiert werden.
  • Gemäß einer weiteren vorteilhaften Ausgestaltung wird eine Permutation für eine Folge der Quellblöcke bestimmt, wobei die verschlüsselten Daten und die Steuerdaten eines Quellblocks in einer Reihenfolge gemäß der bestimmten Permutation an dem ersten bzw. zweiten Speicherort abgespeichert werden und die gespeicherten Steuerdaten zusätzlich Informationen über die ursprüngliche Position des Quellblocks und/oder die bestimmte Permutation umfassen. Durch ein Durchmischen der Reihenfolge der Quellblöcke bezüglich der abgespeicherten Daten kann die Wiederherstellung der verschlüsselten Daten ohne Kenntnis der Steuerdaten weiter erschwert werden.
  • Gemäß einem zweiten Aspekt der Erfindung wird ein Verfahren zum Wiederherstellen von Daten, umfassend eine Mehrzahl von Quellblöcken, beschrieben, wobei für jeden Quellblock die folgenden Schritte durchgeführt werden:
    • – Auswählen wenigstens eines ersten Speicherorts und eines zweiten Speicherorts aus einer Mehrzahl von verschiedenen Speicherorten, an denen zu lesenden Daten gespeichert sind,
    • – Lesen von Steuerdaten, umfassend Informationen über einen Blöckschlüssel, von dem ausgewählten ersten Speicherort,
    • – Lesen von verschlüsselten Daten, umfassend Informationen eines verschlüsselten Datenblocks, von dem ausgewählten zweiten Speicherort und
    • – Entschlüsseln des verschlüsselten Datenblocks zum Wiederherstellen des Quellblocks unter Verwendung des gelesenen Blockschlüssels.
  • Durch die oben genannten Verfahrensschritte können verschlüsselte Daten, die mit einem Verfahren gemäß dem ersten Aspekt der Erfindung gespeichert wurden, von einem berechtigten Benutzer eingelesen und wiederhergestellt werden.
  • Die genannten Verfahren eignen sich insbesondere zur Verwendung in einer Storage Cloud, umfassend eine Mehrzahl von unterschiedlichen Speicherorten, wobei die Speicherorte räumlich, organisatorisch und/oder technisch voneinander getrennt sind. Der Einsatz einer Storage Cloud in Verbindung mit den beschriebenen Verfahren verbindet die Vorteile der niedrigen Betriebskosten einer virtualisierten Infrastruktur mit einer hohen Datensicherheit.
  • Gemäß einem weiteren Aspekt der Erfindung wird ein Speicherserver zum Speichern großer Datenmengen beschrieben, der wenigstens eine Client-Schnittstelle zum Speichern und Lesen von Daten durch wenigstens eine Anwendung, wenigstens eine Netzwerkschnittstelle zum Zugriff auf eine Mehrzahl von verschiedenen zur Verfügung stehenden Speicherorten und wenigstens einen Prozessor zum Ausführen von gespeichertem Programmcode umfasst. Dabei wird beim Ausführen des gespeicherten Programmcodes ein Verfahren gemäß dem ersten oder dem zweiten Aspekt ausgeführt. Ein derartiger Speicherserver eignet sich insbesondere zum Bereitstellen von zentralen Speicherdiensten in einem Rechenzentrum.
  • Gemäß einem weiteren Aspekt der Erfindung wird ein Computerprogrammprodukt zum Ausführen von Verfahren gemäß dem ersten und zweiten Aspekt beschrieben.
  • Weitere vorteilhafte Ausgestaltungen der Erfindung sind in den abhängigen Patentansprüchen sowie der nachfolgenden ausführlichen Beschreibung von Ausführungsbeispielen erläutert.
  • Die Erfindung wird nachfolgend anhand unterschiedlicher Ausführungsbeispiele unter Bezugnahme auf die angehängten Figuren näher beschrieben. In den Figuren zeigen:
  • 1 eine erste Anordnung zum Verarbeiten von Daten,
  • 2 ein Ablaufdiagramm eines Verfahrens zum Speichern von Daten gemäß einem ersten Ausführungsbeispiel,
  • 3 ein Ablaufdiagramm eines Verfahrens zum Einlesen der Daten gemäß dem ersten Ausführungsbeispiel,
  • 4 eine zweite Anordnung zum Verarbeiten von Daten,
  • 5 ein Ablaufdiagramm eines Verfahrens zum Speichern von Daten gemäß einem zweiten Ausführungsbeispiel und
  • 6 ein Ablaufdiagramm eines Verfahrens zum Lesen von Daten gemäß dem zweiten Ausführungsbeispiel.
  • 1 zeigt eine erste Anordnung 100. Die Anordnung 100 umfasst einen lokalen Speicherserver 110 sowie einen lokalen Massenspeicher 120. Der lokale Massenspeicher 120 dient beispielsweise zum Vorhalten und/oder zum Zwischenspeichern aktueller Dateien eines Unternehmensrechenzentrums.
  • Über den Speicherserver 110 können die Daten des lokalen Massenspeichers 120 in einer Storage Cloud 130 gesichert und aus der Storage Cloud 130 zurück gelesen werden. Beispielsweise kann der Speicherserver 110 eine Archivierung oder ein Backup der auf dem lokalen Massenspeicher 120 gespeicherten Daten in die Storage Cloud 130 vornehmen.
  • Im dargestellten Ausführungsbeispiel umfasst die Storage Cloud 130 drei Speicherorte 140a, 140b sowie 140c. Bei den Speicherorten 140 handelt es sich um räumlich, organisatorisch oder technisch unterschiedliche Speicherorte. Beispielsweise kann es sich um an das Internet angeschlossene, unterschiedliche Anbieter von Festplattenspeicherplatz handeln. Die Speicherorte 140 sind dann räumlich getrennt, wenn sie nicht in ein und demselben Rechenzentrum angeordnet sind. Sie sind organisatorisch getrennt, wenn sie nicht unter der wirtschaftlichen, rechtlichen oder tatsächlichen Kontrolle ein und desselben Betreibers stehen. Sie sind technisch unterschiedlich, wenn die einzelnen Speicherorte 140 in unterschiedlichen Subnetzen angeordnet sind, unterschiedliche Betriebssysteme oder Sicherungsverfahren oder sonstige technische Merkmale zur Zugriffssteuerung einsetzen.
  • Im dargestellten Ausführungsbeispiel sind die Daten des lokalen Massenspeichers 120 in drei Quellblöcke 122a, 122b und 122c aufgeteilt. Jeder der Quellblöcke 122 weist wiederum einen ersten Teil 124 sowie einen zweiten Teil 126 auf. Dabei kann es sich bei der Aufteilung in einer ersten und zweiten Teil um eine beinahe beliebige Aufteilung der Daten der Quellblöcke 122 handeln, die auch von einem Quellblock 122a zu einem nachfolgenden Quellblock 122b variieren kann. Insbesondere ist auch eine Aufteilung einzelnen Bits eines Bytes der Daten der Quellblöcke 122 gemäß einer Zuordnungsvorschrift möglich, wie sie später beschrieben wird.
  • Bei den Quellblöcken 122 kann es sich beispielsweise um die Blöcke eines lokalen Dateisystems handeln. Jedoch kann auch jede andere Aufteilung der Daten in Quellblöcke 122 vorgenommen werden. Insbesondere kann die Länge der einzelnen Quellblöcke 122 auch unterschiedlich gewählt werden, um eine unberechtigte Wiederherstellung der Daten zu erschweren. Allgemein gilt, dass die nachfolgend beschriebenen Verfahren umso sicherer sind, je geringer die Größe der einzelnen Quellblöcke 122 ist. Bevorzugt sind die Quellblöcke 122 daher wesentlich kleiner als der Gesamtumfang der zu sichernden Daten. Bevorzugt sind die Quellblöcke 122 weniger als 100 kB und mehr als 512 Byte groß. In einer Ausgestaltung haben die Quellblöcke eine Größe von ungefähr 4 KB.
  • In der 1 ist anschaulich dargestellt, auf welche Weise die Daten des lokalen Massenspeichers 120 auf die Speicherorte 140 abgebildet werden können. Gemäß dem ersten beschriebenen Ausführungsbeispiel werden die Daten der Quellblöcke 122 jeweils in ihren ersten bzw. zweiten Teil bzw. aufgeteilt, wobei ein verschlüsselter erster Teil 124 an einem anderen Speicherort 140 als ein verschlüsselter zweiter Teil 126 abgelegt wird. Zusätzlich werden an dem dritten verbleibenden Speicherort 140 Steuerdaten zum Wiederherstellen der Quellblöcke 122 abgelegt. Die Steuerdaten an dem dritten Speicherort 140 umfassen unter anderem einen zur Verschlüsselung des ersten und/oder zweiten Teils 124 bzw. 126 verwendeten Schlüssels und gegebenenfalls weitere Daten, wie beispielsweise eine Angabe über die Aufteilung der Quellblöcke 122 in den ersten Teil 124 und den zweiten Teil 126.
  • Im Ausführungsbeispiel sind die zum ersten Quellblock 122a zugehörigen Daten über die drei Speicherorte 140a bis 140c verteilt. Insbesondere ist ein erster Steuerblock 142a, umfassend einen Schlüssel zum Entschlüsseln von verschlüsselten Daten, auf dem ersten Speicherort 140a abgelegt. Auf dem zweiten bzw. dritten Speicherort 140b bzw. 140c ist ein erster verschlüsselter Datenblock 144a bzw. ein zweiter verschlüsselter Datenblock 146a mit den verschlüsselten Daten des ersten Teils 124a bzw. des zweiten Teils 126a des ersten Quellblocks 122a abgelegt. Somit kann keiner der Speicherorte 140a, 140b oder 140c die Daten des ersten Quellblocks 122a allein wieder rekonstruieren. Der erste Speicherort 140a besitzt zwar Kenntnis von dem zur Entschlüsselung benötigten Schlüssel, hat jedoch weder Kenntnis des ersten verschlüsselten Datenblocks 144a noch des zweiten verschlüsselten Datenblocks 146a. Der zweite bzw. dritte Speicherort 140b bzw. 140c haben zwar Kenntnis eines Teils der verschlüsselten Daten und könnten grundsätzlich versuchen, diese Daten zu entschlüsseln, kennen jedoch weder den zur Verschlüsselung verwendeten Schlüssel noch haben sie eine ausreichend große Datenmenge, um einen auf statistischer Auswertung beruhenden Angriff erfolgreich durchzuführen.
  • Für die Daten der weiteren Quellblöcke 122 wurden die verwendeten Speicherorte 140a bis 140c jeweils zyklisch durchgetauscht, sodass kein einzelner der Speicherorte 140 Kenntnis von sämtlichen zur Verschlüsselung eingesetzten Schlüsseln besitzt.
  • Die in der 1 dargestellte Anordnung besitzt lediglich beispielhaften Charakter. Insbesondere kann die Anzahl der verwendeten Speicherorte 140 grundsätzlich beinahe beliebig erhöht werden. Je mehr verschiedene Speicherorte 140 an der Speicherung der verschlüsselten Daten beteiligt sind, desto schwieriger wird es für einen potenziellen Angreifer, Kenntnis von ausreichend Daten zu gewinnen, um eine erfolgreiche Entschlüsselung zu ermöglichen. Bei einer großen Anzahl unterschiedlicher Speicherorte 140 kann anstelle der in der 1 dargestellten deterministischen Aufteilung mit zyklischem Durchtauschen der verwendeten Speicherorten 140 für die Steuer- bzw. Datenblöcke 142, 144 und 146 auch eine zufällige Verteilung der Daten auf die Speicherorte 140 vorgenommen werden, was eine systematische Analyse weiter erschwert. Denn die in der 1 dargestellte Strukturierung der Speicherorte 140 in Blöcke 142, 144 und 146 ist rein logischer Natur und daher an dem jeweiligen Speicherort 140 nicht erkennbar.
  • 2 zeigt ein Ablaufdiagramm eines beispielhaften Verfahrens 200 zum Speichern von Daten in der Anordnung 100 gemäß 1.
  • In einem Schritt 205 werden Daten, die in der Storage Cloud 130 gespeichert werden sollen, eingelesen. Beispielsweise kann eine einzelne zu sichernde Datei von dem lokalen Massenspeicher 120 eingelesen werden. In dem beschriebenen Ausführungsbeispiel handelt es sich um die Zusammenstellung umfangreicher Daten, insbesondere- Daten im Umfang von etlichen Gigabyte, Terabyte, Petabytes oder mehr. Solche Datenmengen fallen beispielsweise beim Erstellen von Komplettsicherungen von Servern eines lokalen Rechenzentrums oder anderen Archivierungsanwendungen an.
  • In einem Schritt 210 werden die eingelesenen Daten auf eine Mehrzahl von Quellblöcken 122 aufgeteilt. Bei den Quellblöcken 122 kann es sich beispielsweise um eine verhältnismäßig feine Einteilungen einer zugrunde liegenden Speicherarchitektur, beispielsweise dem Speicherblock eines Festplattenlaufwerks, handeln. Selbstverständlich sind, wie oben beschrieben, auch andere Aufteilungen anhand vorgegebener oder zufällig ausgewählter Parameter für die Blocklänge möglich.
  • In einem Schritt 215 wird ein Quellblock 122 anhand einer Zufallsfunktion oder einer vorgegebenen Permutation aus der Menge sämtlicher Quellblöcke 122 ausgewählt. Die nachfolgenden Verfahrensschritte beziehen sich ausschließlich auf den im Schritt 215 ausgewählten Block.
  • In einem Schritt 220 wird ein Quellblock 122 gemäß einer Zuordnungsvorschrift zum Aufteilen des Quellblocks 122 aufgeteilt. Beispielsweise kann ein Quellblock 122 wie in der 1 dargestellt einfach in einen ersten Teil 124 und in einen zweiten Teil 126 zerlegt werden.
  • Gemäß einer vorteilhaften Ausgestaltung erfolgt die Zerlegung jedoch in einer Weise, dass eventuell vorhandene Redundanzen in den Quellblöcken 122 aufgelöst werden. Beispielsweise ist es bekannt, dass als Textinformationen codierte Daten eine statistisch ungleiche Verteilung der zur Codierungen verwendeten Bits aufweisen. Um diese statistische Ungleichgewichtung aufzulösen, werden gemäß einem Ausführungsbeispiel der Erfindung beispielsweise das erste, dritte und achte Bit des ersten Bytes dem ersten Teil 124 zugeordnet, während die verbleibenden, also das zweite, vierte, fünfte, sechste und siebte Bit, dem zweiten Teil 126 zugeordnet werden. Bezüglich des zweiten Bytes des Quellblocks 122 werden beispielsweise das dritte, vierte und siebte Bit dem ersten Teil 124 und die verbleibenden Bits dem zweiten Teil 126 zugeordnet. Bezüglich des dritten Bytes werden nur die Bits sieben und fünf dem ersten Teil 124 und die restlichen Bits dem zweiten Teil 126 zugeordnet. Bezüglich des vierten Bytes werden die Bits acht, eins und zwei dem ersten Teil 124 und die verbleibenden Bits dem zweiten Teil 125 zugeordnet. Für das fünfte und die nachfolgenden Bytes des Quellblocks 122 wird die oben beschriebene Abfolge wiederholt, d. h. für das fünfte Byte werden wiederum die Bits eins, drei und acht dem ersten Teil 124 und die restlichen Bits dem zweiten Teil 126 zugeordnet.
  • Somit besteht innerhalb eines Quellblocks 122 eine fest definierte Logik bezüglich der Aufteilung der Bits auf den ersten Teil 124 und den zweiten Teil 126. Diese Aufteilung wechselt jedoch gemäß einer Zufallsfunktion für jeden verarbeiteten Quellblock 122. Im Ergebnis entsteht ein Bitstrom, in dem die Redundanzen von byte-orientierten Daten aufgelöst sind.
  • Im Schritt 225 wird ein Schlüssel zur Verschlüsselung der Daten des ausgewählten Quellblocks 122 erzeugt. Bevorzugt wird der Schlüssel unter Verwendung einer Zufallsfunktion oder einer pseudozufälligen Funktion erzeugt.
  • In einem nachfolgenden Schritt 230 werden die Teile 124 und 126 der aufgeteilten Blocks mit dem erzeugten Schlüssel verschlüsselt. Grundsätzlich bietet sich hierfür jedes bekannte Verschlüsselungsverfahren an. Geeignete Verschlüsselungsverfahren umfassen zum Beispiel die Blockverschlüsselungsverfahren gemäß dem Advanced Encryption Standard (AES), dem Data Encryption Standard (DES) oder dem open PGP Standard gemäß RFC 4880.
  • Um den rechnerischen Aufwand, bei der Verschlüsselung der einzelnen Teile der Quellblöcke 122 gering zu halten, kann eine alternative Ausgestaltung eine exklusive ODER-Funktion (XOR) als Verschlüsselungsfunktion verwenden. Dies bietet sich unter anderem bei einer verhältnismäßig großen Schlüssellängen oder einer verhältnismäßig kleinen Quellblocklängen 122 an. Die Anwendung eines exklusiven ODERs führt zu einer symmetrischen, zufälligen Codierung der Bits des Quellblocks 122 anhand der Bits des zufällig erzeugten Blockschlüssels.
  • In einem weiteren Schritt 235 werden verschiedene Speicherorte 140 zum Ablegen der verschlüsselten Daten und zugehöriger Steuerdaten bestimmt. Im in 1 dargestellten Ausführungsbeispiel ist die Anzahl der Speicherorte 140 vorab auf drei festgelegt. Im beschriebenen Ausführungsbeispiel werden alle drei Speicherorte 140a bis 140c zum Ablegen von Daten ausgewählt und nacheinander, in einer vorbestimmten Reihenfolge ausgewählt.
  • In einem weiteren Schritt 240 wird ein Steuerblock 142 an einem ersten Speicherort 140a gespeichert. Im beschriebenen Ausführungsbeispiel enthält der Steuerblock 142 Informationen bezüglich der im Schritt 220 verwendeten Zuordnungsfunktion sowie des im Schritt 225 erzeugten Schlüssels. Optional kann der Steuerblock 240 auch noch weitere Informationen, wie beispielsweise die Position des Quellblocks 122 innerhalb einer eingelesenen Datei oder ähnliche Angaben enthalten.
  • In einem Schritt 245 wird der aktuell verwendete Speicherort 140 gewechselt. Wurde der Steuerblock in Schritt 240 beispielsweise auf dem ersten Speicherort 140a abgelegt, wird nun der nächste Speicherort 140b ausgewählt. Selbstverständlich kann anstelle einer fortlaufenden Auswahl der Speicherorte 140 auch eine zufällige Auswahl eines weiteren, für den Quellblock 122 noch nicht verwendeten Speicherorts 140 erfolgen.
  • In einem Schritt 250 wird nun der erste Teil 124 des verschlüsselten Datenblocks 144 auf dem aktuellen Speicherort 140b gespeichert. Bevorzugt enthalten die gespeicherten Daten keinen Hinweis daraufhin, zu welchem Quellblock 122 oder zu welcher Datei sie gehören, wo der zugehörige Steuerblock 142 abgelegt ist oder sonstige Daten, die beim Entschlüsseln des verschlüsselten Datenblocks 144 benötigt werden. In einer weiteren Ausgestaltung kann der verschlüsselte Datenblock 144 jedoch Validierungsdaten wie etwa eine Prüfsumme zum Erkennen von Veränderungen des Steuerblocks 142 umfassen.
  • In einem nachfolgenden Schritt 255 wird überprüft, ob sämtliche Teile des aktuell verarbeiteten Speicherblocks 122 bereits gespeichert wurden. Ist dies nicht der Fall, wird das Verfahren in Schritt 245 fortgesetzt, sodass in dem beschriebenen Ausführungsbeispiel der nun letzte verbleibende Speicherort 140c ausgewählt wird. Im nachfolgend erneut ausgeführten Schritt 250 wird der zweite verschlüsselte Datenblock 146 auf dem dritten Speicherort 140c abgespeichert. Wird im Schritt 255 erkannt, dass sämtliche Teile des verschlüsselten Quellblocks 122 in der Storage Cloud 130 gespeichert wurden, wird das Verfahren in Schritt 260 fortgesetzt.
  • In Schritt 260 wird überprüft, ob noch weitere Quellblöcke 122 der zu sichernden Daten zur Bearbeitung vorliegen. Ist dies nicht der Fall, wird das Verfahren 200 beendet. Stehen noch weitere Quellblöcke 122 zur Verarbeitung aus, wird das Verfahren 200 in Schritt 215 erneut mit der zufälligen Auswahl eines Quellblocks 122 zur weiteren Verarbeitung fortgesetzt, bis alle Quellblöcke 122 verarbeitet wurden.
  • In 3 ist ein Ablaufdiagramm eines Verfahrens 300 zum Einlesen von Daten dargestellt, die mit dem Verfahren 200 gemäß 2 gespeichert wurden.
  • In einem ersten Schritt 305 werden die drei verwendeten Speicherorte 140a, 140b und 140c bestimmt. Dies kann beispielsweise anhand von lokal im Speicherserver 110 abgelegten Daten oder aufgrund von in einem ersten Steuerblock 142a enthaltenen Daten erfolgen, wobei in diesem Fall eine Adresse des ersten Speicherorts 140a lokal gespeichert werden kann. Selbstverständlich kann die Bestimmung auch manuell durch einen Benutzer erfolgen.
  • In einem Schritt 310 wird zunächst der erste Steuerblock 142a von dem ersten Speicherort 140a gelesen.
  • Anhand der in dem Steuerblock 142a enthaltenen Steuerdaten wird in Schritt 315 ein Schlüssel zum Entschlüsseln der zugehörigen verschlüsselten Datenblöcke 144a und 146a gelesen.
  • In einem Schritt 320 wird des Weiteren die Blockaufteilung anhand der Daten des Steuerblocks 142a ermittelt. In den Daten des Steuerblocks 142a kann beispielsweise angegeben sein, welche Bits des ersten Quellblocks 122a in welchem verschlüsselten Datenblock 144a oder 146a gespeichert wurden.
  • In einem weiteren Schritt 325 wird vom ersten Speicherort 140a auf den nächsten Speicherort 140b gewechselt. Daraufhin wird in Schritt 330 der erste verschlüsselte Datenblock 144a eingelesen.
  • In einem nachfolgenden Schritt 335 wird überprüft, ob bereits sämtliche Teile des verschlüsselten Quellblocks 122a eingelesen wurden. Ist dies nicht der Fall, wird das Verfahren in Schritt 325 mit dem erneuten Wechsel des Speicherorts auf den dritten Speicherort 140c und dem nachfolgenden Einlesen des nächsten verschlüsselten Datenblocks 146a fortgeführt. Wird in Schritt 335 ermittelt, dass sämtliche Teile des verschlüsselten Quellblocks 122a eingelesen wurden, wird das Verfahren in Schritt 340 fortgesetzt.
  • In Schritt 340 werden die eingelesenen verschlüsselten Teildatenblöcke 144a und 146a unter Verwendung des eingelesenen Blockschlüssels entschlüsselt und Nachfolgend in einem Schritt 345 gemäß der Zuordnungsvorschrift der Steuerdaten wieder miteinander kombiniert.
  • In einem nachfolgenden Schritt 355 wird überprüft, ob sämtliche Quellblöcke 122 der wiederherzustellenden Daten bearbeitet wurden. Ist dies nicht der Fall, wird, beispielsweise basierend auf den Steuerdaten des ersten Steuerblocks 142a, der nächste Quellblock 122b für die Verarbeitung bestimmt und das Verfahren in Schritt 310 fortgesetzt. Wird in Schritt 350 dagegen erkannt, dass sämtliche Blöcke 122 aus der Storage Cloud 130 zurück gelesen wurden, wird das Verfahren 300 beendet.
  • 4 zeigt eine zweite Anordnung 400 zum Speichern und Wiedereinlesen von Daten.
  • Die zweite Anordnung 400 unterscheidet sich unter anderem dadurch von der ersten Anordnung 100 gemäß 1, dass die zu speichernden Daten 120 als Datenstrom 120 vorliegen, auf die ein Speicherserver 410 nur in sequenzieller Reihenfolge zugreifen kann. Beim Wiederherstellen der gespeicherten Daten wird ebenfalls ein sequenzieller Datenstrom 420' erzeugt.
  • Grundsätzlich lässt sich ein solcher sequenzieller Datenstrom 420 bzw. 420' durch Vorsehen eines entsprechend großen Puffers auf Seiten des Speicherservers 410 wie oben unter Bezugnahme auf die 1 bis 3 beschrieben in endlichen Teile zerlegen und verarbeiten. Nachfolgend wird jedoch eine weitere Variante eines Verfahrens 500 zum Speichern des Datenstroms 420 ohne Vorsehen von einem Puffer zur Zwischenspeicherung beschrieben.
  • Die Anordnung 400 gemäß 4 unterscheidet sich des Weiteren dadurch von der ersten Anordnung 100, dass die Storage Cloud 430 nur zwei unterschiedliche Speicherorte 440a und 440b umfasst. Beispielsweise handelt es sich bei dem ersten Speicherort 440a um einen lokalen Speicherort des eigenen Rechenzentrums, während es sich bei dem zweiten Speicherort 440b um einen externen, beispielsweise im Internet angeordneten, Speicherort handelt. Zusammen bilden der erste Speicherort 440a und der zweite Speicherort 440b eine so genannte hybride Storage Cloud.
  • Der Datenstrom 420 enthält eine Anzahl von Quellblöcken 422a bis 422b, auf die der Speicherserver 410 nur sequenziell, also zeitlich nacheinander, zugreifen kann. Wie im unteren Teil der 4 dargestellt, werden die einzelnen Quellblöcke 422a bis 422c als verschlüsselte Datenblöcke 444a bis 444c jeweils abwechselnd auf dem ersten Speicherort 440a bzw. auf dem zweiten Speicherort 440b abgelegt. Auf dem jeweils anderen Speicherort 440b bzw. 440a ist ein zugehöriger Steuerblock 442a bis 442c abgelegt. Auf diese Weise besitzt wiederum keiner der Speicherorte 440a oder 440b sämtliche Informationen, die zum Entschlüsseln des Datenblocks 422' des Datenstroms 420' erforderlich sind.
  • In der 5 ist ein Verfahren 500 zum Speichern von Daten dargestellt, das sich zur Anwendung in der zweiten Anordnung 400 gemäß 4 eignet.
  • In einem ersten Schritt 505 wird der Datenstrom 420 komprimiert. Durch die Komprimierung des Datenstroms 420 wird eine Redundanz der in dem Datenstrom 420 enthaltenen Daten reduziert und die Bit-Ausrichtung von byte-orientierten Daten, wie beispielsweise Textdateien, aufgelöst.
  • In einem nachfolgenden Schritt 510 wird der Datenstrom 420 mit einem benutzerspezifischen Schlüssel verschlüsselt. Beispielsweise kann hierzu ein verhältnismäßig aufwändiges und sicheres Verschlüsselungsverfahren eingesetzt werden. Beispiele bekannter Verschlüsselungsverfahren sind der so genannte Data Encryption Standard (DES), der Advanced Encryption Standard (AES) oder asymmetrische Verschlüsselungsverfahren wie beispielsweise der so genannte Diffie-Hellmann-Algorithmus oder der RSA-Algorithmus. Die Verschlüsselung des Datenstroms 420 dient sowohl zur Verringerung der Redundanz des Datenstroms 420 als auch zur Implementierung zusätzlicher Sicherheit eines Benutzers gegenüber zentralen Komponenten der Anordnung 400, wie insbesondere dem Speicherserver 410.
  • In einem weiteren Schritt 515 wird eine Blocklänge für einen zu verarbeitenden Quellblock 422a bestimmt. Gemäß der beschriebenen Ausführungsform wird hierfür mittels eines Zufallsgenerators eine Blocklänge innerhalb einer vorgegebenen minimalen und einer vorgegebenen maximalen Blocklänge bestimmt. Beispielsweise kann zufällig eine Blocklänge im Bereich zwischen 512 Byte und 4096 Byte gewählt werden.
  • In einem nachfolgenden Schritt 520 wird überprüft, ob die bestimmte Blocklänge durch die verbleibenden Daten des Datenstroms 420 vollständig ausgefüllt werden kann oder ob bereits das Ende des Datenstroms 420 erreicht wurde. Wurde das Ende des Datenstroms 420 erreicht, wird in einem Schritt 525 die verbleibende Blocklänge des Quellblocks 422a mit zufällig gewählten Füllzeichen aufgefüllt.
  • In einem nachfolgenden Schritt 530 wird ein zufälliger Schlüssel zur Verschlüsselung der Daten des Quellblocks 422a erzeugt. In einem weiteren Schritt 535 wird der Quellblock 422a mit dem zuvor erzeugten Blockschlüssel verschlüsselt.
  • In einem nachfolgenden Schritt 540 werden Validierungsdaten zum Überprüfen der Integrität des Quellblocks 422a bestimmt. Beispielsweise kann eine so genannte zyklische Redundanzprüfziffer (CRC) berechnet werden, mit deren Hilfe eine Manipulation von Teilen des verschlüsselten Quellblocks 422a erkannt werden kann.
  • Zur Verbesserung der Effektivität wird bei einer alternativen Ausgestaltung nur eine einzelne zyklische Redundanzprüfziffer für eine gesamte verschlüsselte Datei beistimmt. Diese wird fortlaufend aktualisiert und nur einmal, beispielsweise mit den Steuerdaten des ersten oder letzten verarbeiteten Quellblocks 422 gespeichert.
  • In einem Schritt 545 werden die zur Speicherung der verschlüsselten Daten zu verwendenden Speicherorte 440a und 440b ausgewählt. In einem weiteren Schritt 550 wird dann ein verschlüsselter Datenblock 444a auf dem ersten Speicherort 440a gespeichert. In einem Schritt 555 werden zugehörige Steuerdaten 442a auf dem anderen Speicherort 440b gespeichert.
  • Der gespeicherte Steuerblock 442a umfasst im beschriebenen Ausführungsbeispiel die in Schritt 515 gewählte Blocklänge, gegebenenfalls einen Hinweis, ob oder wie viele Bytes des Quellblocks 422 im Schritt 525 durch Füllzeichen aufgefüllt wurden, den zur Verschlüsselung verwendeten Blockschlüssel sowie die Validierungsdaten. Die beschriebene Aufzählung von Steuerdaten besitzt nur beispielhaften Charakter. Insbesondere können auch andere, beispielsweise die unter Bezugnahme auf die 1 bis 3 beschriebenen Steuerdaten ganz oder teilweise in dem Steuerblock 422a gespeichert werden.
  • Gemäß einer weiteren Ausgestaltung können auch Teile der verschlüsselten Daten in dem Steuerblock 422a gespeichert werden. Beispielsweise können einzelne Bits der Bytes des Quellblocks 422a, wie oben beschrieben, ausgewählt und zusammen mit den Steuerdaten in dem Steuerblock 422a gespeichert werden. In diesem Fall sollte nur ein verhältnismäßig kleiner Teil der verschlüsselten Daten in dem Steuerblock 422a gespeichert werden, um eine mögliche Entschlüsselung mit dem ebenfalls darin enthaltenen Schlüssel unmöglich zu machen.
  • In einem Schritt 560 wird überprüft, ob das Ende des Datenstroms 420 erreicht wurde. Ist dies der Fall, wird das Verfahren 500 beendet. Anderenfalls wird das Verfahren 500 im Schritt 515 mit dem Bestimmen einer neuen Blocklänge für den nachfolgenden Quellblock 422b fortgesetzt, wobei beim nachfolgenden Ausführen des Schrittes 545 die Speicherorte 440a und 440b miteinander vertauscht werden.
  • In der 6 ist ein Ablaufdiagramm eines Verfahrens 600 zum Lesen der mit dem. Verfahren 500 gespeicherten Daten dargestellt.
  • In einem ersten Schritt 605 werden die verwendeten Speicherorte 440a und 440b ausgewählt. In einem Schritt 610 wird der erste Steuerblock 442a mit den ersten Steuerdaten eingelesen. Anhand der eingelesenen Steuerdaten wird in Schritt 615 die gewählte Blocklänge des ersten verschlüsselten Datenblocks 444a bestimmt.
  • In einem Schritt 620 wird der erste verschlüsselte Datenblock 444a von dem jeweils anderen Speicherort 440b eingelesen. In einem Schritt 625 werden die ebenfalls in dem Steuerblock enthaltenen Validierungsdaten dazu verwendet, die Integrität des verschlüsselten Datenblocks 444a zu überprüfen.
  • In einem Schritt 630 wird der zur Entschlüsselung benötigte Schlüssel aus dem Steuerblock 442a eingelesen. In einem nachfolgenden Schritt 635 wird der verschlüsselte Datenblock 444a mit Hilfe des eingelesen Blockschlüssels entschlüsselt.
  • In einem Schritt 640 wird überprüft, ob weitere verschlüsselte Datenblöcke vorliegen. Eine derartige Information kann beispielsweise ebenfalls in dem Steuerblock 442a enthalten sein. Ist dies der Fall, wird das Verfahren in Schritt 605 fortgesetzt, wobei, wie oben unter Bezugnahme auf die 5 beschrieben, die Speicherorte 440a und 440b vertauscht werden.
  • Wird in Schritt 640 festgestellt, dass das Ende des Datenstroms 420' erreicht wurde, werden in einem Schritt 645 eventuell vorhandene Fülldaten aus den entschlüsselten Datenblöcken 422' entfernt.
  • In einem nachfolgenden Schritt 650 wird die benutzerabhängige Verschlüsselung durch Entschlüsseln des Datenstroms rückgängig gemacht. In einem letzten Schritt 650 werden die Daten dekomprimiert, sodass eine Kopie des ursprünglichen Datenstrom 420' zur Verfügung steht. Selbstverständlich kann die beschriebene Entschlüsselung und Dekomprimierung auch on-the-fly, also fortlaufend, vorgenommen werden, so dass nicht auf nachfolgende Datenblöcke 422b' und 422c' gewartet werden muss.
  • Die beschriebenen Verfahren eignen sich insbesondere zur Verwendung in Archivierungs- und Backup-Prozessen, bei denen sehr umfangreiche Daten langfristig gespeichert werden. In derartigen Prozessen finden Zugriffe auf die gespeicherten Daten nur sehr selten statt, sodass erhöhte Zugriffszeiten, wie sie durch den Einsatz entfernter Speicherorte entstehen, weniger ins Gewicht fallen als bei anderen Anwendungen. Demgegenüber sind solche Anwendungen sehr speicherintensiv, sodass die durch den Einsatz von Storage Clouds verursachten Kosteneinsparungen wirtschaftlich bedeutsam sind.
  • Die beschriebenen Verfahren ähneln anschaulich dem ”Zerschnipseln” der zu speichernden Daten. Dabei reicht ein einzelner Datenteil, also ein ”Schnipsel”, der an einem einzelnen Speicherort gespeichert ist, nicht aus, um die Gesamtinformation wiederherzustellen.
  • Im Prinzip erlaubt eine derartige Speicherung das Ablegen von sicherheitskritischen Daten auf unzuverlässigen Servern. Um dennoch die Verfügbarkeit der Daten sicherzustellen, werden die einzelnen Datenblöcke gemäß einer weiteren Ausgestaltung redundant an verschiedenen Speicherorten abgelegt. Selbst beim Ausfall eines einzelnen Speicherorts oder der Manipulation der dort gespeicherten Daten können die Daten dann wiederhergestellt werden. Bei der Replikation der gespeicherten Datenblöcke ist jedoch darauf zu achten, dass an keinem Speicherort sämtliche zur Wiederherstellung der Daten erforderlichen Informationen gespeichert werden.
  • Bevorzugt werden die Daten nicht nur entlang einer ersten Dimension, insbesondere der Länge der Quellblöcke, sondern auch in einer zweiten Dimension, beispielsweise für die einzelnen Bits eines jeden Bytes, auf die verschiedenen Speicherorte aufgeteilt. Dies kann beispielsweise dadurch erreicht werden, dass die Daten zunächst in einen Zwischenspeicher eines Speicherservers eingelesen und von dort matrixartig ausgelesen. werden. Dabei ist es unerheblich, ob eine gesamte zu speichernde Datei oder nur ein endlicher Ausschnitt aus einem sehr umfangreichen Datensatz in den Zwischenspeicher eingelesen werden.
  • Die Sicherheit der verwendeten Verfahren kann weiter erhöht werden, wenn neben verschiedenen Schlüsseln und Blocklängen beispielsweise auch unterschiedliche Verschlüsselungsalgorithmen für die Verschlüsselung einzelner Quellblöcke eingesetzt werden. Die unberechtigte Entschlüsselung der gespeicherten Daten kann weiterhin dadurch erschwert werden, dass zufällige Dummy-Informationen in die gespeicherten Daten eingebettet werden.
  • Wegen der Verteilung der Daten auf mehrere Speicherorte und der Notwendigkeit der Kollaboration aller Speicherorte zum Wiederherstellen der Daten ergibt sich ein exponentieller Sicherheitsgewinn gegenüber einem möglichen Datendiebstahl. Geht man davon aus, dass die Daten eines einzelnen Speicherorts mit einer Wahrscheinlichkeit P öffentlich zugänglich werden, reduziert sich das Risiko auf die öffentliche Zugänglichkeit sämtlicher Daten aller verwendeten Speicherorte auf die Wahrscheinlichkeit Pn, wobei n die Anzahl der verwendeten Speicherinstanzen ist. Bei der Verwendung von drei Speicherorten in Verbindung mit einem Risiko von 1% für einen Datendiebstahl innerhalb von zehn Jahren verringert sich die Wahrscheinlichkeit somit bereits auf 0,001%.
  • Obwohl die einzelnen Verfahrensschritte der jeweiligen Lese- und Wiederherstellungsverfahren bezogen zwei auf die Ausführungsbeispiele in einer bestimmten Reihenfolge und Kombination beschrieben wurden, lassen sie sich in vielfältiger Weise und Reihenfolge mit Vorteil kombinieren. Insbesondere können einzelnen Sicherungsmaßnahmen der beiden Ausführungsbeispiele miteinander kombiniert oder weggelassen werden, um einen gewünschten Kompromiss zwischen Datensicherheit, Performance und Redundanz zu erzielen.
  • Bezugszeichenliste
  • 100
    erste Anordnung
    110
    Speicherserver
    120
    lokaler Massenspeicher
    122
    Quellblock
    124
    (verschlüsselter) erster Teil
    126
    (verschlüsselter) zweiter Teil
    130
    Storage Cloud
    140
    Speicherort
    142
    Steuerblock
    144
    erster verschlüsselter Datenblock
    146
    zweiter verschlüsselter Datenblock
    200
    Erstes Verfahren zum Speichern von Daten
    300
    Erstes Verfahren zum Lesen von Daten
    400
    zweite Anordnung
    410
    Speicherserver
    420
    Datenstrom
    422
    Quellblock
    430
    Storage Cloud
    440
    Speicherort
    442
    Steuerblock
    444
    verschlüsselter Datenblock
    500
    Zweites Verfahren zum Speichern von Daten
    600
    Zweites Verfahren zum Lesen von Daten
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Nicht-Patentliteratur
    • RFC 4880 [0047]

Claims (17)

  1. Verfahren (200, 500) zum Speichern von Daten, bei dem zu speichernde Daten in eine Mehrzahl von Quellblöcken (122, 422) aufgeteilt werden und bei dem für jeden Quellblock (122, 422) die folgenden Schritte durchgeführt werden: – Bestimmen eines Blockschlüssels für den Quellblock (122, 422) basierend auf einer Zufallsfunktion; – Verschlüsseln des Quellblocks (122, 422) unter Verwendung des bestimmten Blockschlüssels; – Auswählen wenigstens eines ersten Speicherorts (140a, 440a) und eines zweiten Speicherorts (140b, 440b) aus einer Mehrzahl von verschiedenen, zur Verfügung stehenden Speicherorten (140, 440); – Speichern von Steuerdaten, umfassend Informationen über den bestimmten Blockschlüssel, an dem ausgewählten ersten Speicherort (140a, 440a); und – Speichern von verschlüsselten Daten, umfassend Informationen des verschlüsselten Quellblocks, an dem ausgewählten zweiten Speicherort (140b, 440b).
  2. Verfahren (200, 500) nach Anspruch 1, dadurch gekennzeichnet, dass im Schritt des Auswählens der wenigstens eine erste Speicherort (140a, 440a) mittels einer Zufallsfunktion aus der Mehrzahl der Speicherorte (140, 440) ausgewählt wird und der wenigstens eine zweite Speicherort (140b, 440b) mittels einer Zufallsfunktion aus einer Menge umfassend die Mehrzahl der Speicherorte (140, 440) ohne den ausgewählten ersten Speicherort (140a, 440a) ausgewählt wird.
  3. Verfahren (200, 500) nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass im Schritt des Auswählens der wenigstens eine erste Speicherort (140c, 440b) für einen nachfolgenden Quellblock (122b, 422b) mittels einer Zufallsfunktion aus einer Menge umfassend die Mehrzahl der Speicherorte ohne den für den vorangehenden Quellblock (122a, 422a) ausgewählten ersten Speicherort (140a, 440a) ausgewählt wird.
  4. Verfahren (200, 500) nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass die Redundanz von Daten des Quellblocks (122, 422) vor dem Speichern der verschlüsselten Daten reduziert wird.
  5. Verfahren (200, 500) nach Anspruch 4, gekennzeichnet durch die zusätzlichen Schritte: – Aufteilen der Daten des Quellblocks (122) auf eine Anzahl N, N > 1, von Datenblöcken (144, 146); und – Speichern der N Datenblöcke (144, 146) an N Speicherorten (140b, 140c) der Mehrzahl der Speicherorte, wobei die Daten jedes der N Datenblöcke (142, 144, 146, 442, 444) an einem anderen der N ausgewählten Speicherorte (140, 440) gespeichert werden.
  6. Verfahren (200, 500) nach Anspruch 5, dadurch gekennzeichnet, dass die Daten eines ersten Datenblocks (142, 442) der N Datenblöcke (142, 144, 146, 442, 444) zusammen mit den Steuerdaten an dem ausgewählten ersten Speicherort (140a, 440a) gespeichert werden und die Daten wenigstens eines weiteren Datenblocks (144, 444) der N Datenblöcke (142, 144, 146, 442, 444) an dem ausgewählten zweiten Speicherort (140b) gespeichert werden.
  7. Verfahren (200, 500) nach Anspruch 5 oder 6, gekennzeichnet durch den zusätzlichen Schritt: Bestimmen einer Zuordnungsvorschrift zum Aufteilen von vorbestimmten Informationseinheiten des Quellblocks (122), wobei im Schritt des Aufteilens die Daten des Quellblocks (122) gemäß der Zuordnungsvorschrift auf die N Datenblöcke (144, 146) aufgeteilt werden und wobei die gespeicherten Steuerdaten zusätzlich Informationen über die bestimmte Zuordnungsvorschrift umfassen.
  8. Verfahren (200, 500) nach Anspruch 7, dadurch gekennzeichnet, dass die vorbestimmten Informationseinheiten Bytes mit je 8 Bit umfassen und die Daten des Quellblocks (122, 422) gemäß der Zuordnungsvorschrift so auf die N Datenblöcke (144, 146, 442, 444) aufgeteilt werden, dass keiner der N Datenblöcke (144, 146, 442, 444) sämtliche Bits eines Bytes des Quellblocks (122) enthält.
  9. Verfahren (220, 500) nach einem der Ansprüche 4 bis 8, dadurch gekennzeichnet, dass die zu speichernden Daten vor der Aufteilung in Quellblöcke (122, 422) unter Verwendung eines von einem Benutzer gewählten Schlüssels verschlüsselt werden.
  10. Verfahren (200, 500) nach einem der Ansprüche 4 bis 9, dadurch gekennzeichnet, dass die zu speichernden Daten vor der Aufteilung in Quellblöcke (122, 422) komprimiert werden.
  11. Verfahren (200, 500) nach einem der Ansprüche 1 bis 10, dadurch gekennzeichnet, dass für jeden Quellblock (122, 422) zusätzlich der folgende Schritt durchgeführt wird: – Bestimmen einer Blocklänge für den Quellblock (122, 422) zwischen einer vorbestimmten minimalen Blocklänge und einer vorbestimmten maximalen Blocklänge basierend auf einer Zufallsfunktion, wobei die gespeicherten Steuerdaten zusätzlich Informationen bezüglich der bestimmten Blocklänge umfassen.
  12. Verfahren (200, 500) nach einem der Ansprüche 1 bis 11, dadurch gekennzeichnet, dass die an dem ersten Speicherort (140a, 440a) gespeicherten Steuerdaten zusätzlich Informationen zum Validieren der an dem zweiten Speicherort (140b, 440b) gespeicherten Daten umfassen oder umgekehrt.
  13. Verfahren (200, 500) nach einem der Ansprüche 1 bis 12, gekennzeichnet durch den zusätzlichen Schritt: – Bestimmen einer Permutation für eine Folge von Quellblöcken (122, 422), wobei die einem Quellblock (122) zugeordneten, verschlüsselten Daten und Steuerdaten in einer Reihenfolge gemäß der bestimmten Permutation an dem ersten Speicherort (140a, 440a) bzw. dem zweiten Speicherort (140b, 440b) abgespeichert werden und die gespeicherten Steuerdaten zusätzlich Informationen über die ursprüngliche Position des Quellblocks (122, 422) und/oder die bestimmte Permutation umfassen.
  14. Verfahren (300, 600) zum Wiederherstellen von Daten, umfassend eine Mehrzahl von Quellblöcken (122, 422), wobei für jeden Quellblock (122, 422) die folgenden Schritte durchgeführt werden: – Auswählen wenigstens eines ersten Speicherorts (140a, 440a) und eines zweiten Speicherorts (140b, 440b) aus einer Mehrzahl von verschiedenen Speicherorten (140, 440), – an denen zu lesenden Daten gespeichert sind; – Lesen von Steuerdaten, umfassend Informationen über einen Blockschlüssel, von dem ausgewählten ersten Speicherort (140a, 440a); – Lesen von verschlüsselten Daten, umfassend Informationen eines verschlüsselten Datenblocks (144, 444), von dem ausgewählten zweiten Speicherort (140b, 440b); und – Entschlüsseln des verschlüsselten Datenblocks (144, 444) zum Wiederherstellen des Quellblocks (122, 422) unter Verwendung des gelesenen Blockschlüssels.
  15. Verwendung eines Verfahrens (200, 300, 500, 600) nach einem der Ansprüche 1 bis 14 in einer Storage Cloud (130, 430), umfassend eine Mehrzahl von unterschiedlichen Speicherorten (140, 440), wobei die Speicherorte (140, 440) räumlich, organisatorisch und/oder technisch voneinander getrennt sind.
  16. Speicherserver (110, 410) zum Verarbeiten großer Datenmengen, umfassend – wenigstens eine Client-Schnittstelle zum Speichern und Wiederherstellen von Daten durch wenigstens eine Anwendung; – wenigstens eine Netzwerkschnittstelle zum Zugriff auf eine Mehrzahl von verschiedenen zur Verfügung stehenden Speicherorten (140, 440); und – wenigstens einen Prozessor zum Ausführen von gespeichertem Programmcode, wobei beim Ausführen des gespeicherten Programmcodes ein Verfahren (200, 300, 500, 600) gemäß einem der Ansprüche 1 bis 14 ausgeführt wird.
  17. Computerprogrammprodukt umfassend ausführbaren Programmcode, wobei beim Ausführen des Programmcodes durch eine Datenverarbeitungsvorrichtung ein Verfahren (200, 300, 500, 600) gemäß einem der Ansprüche 1 bis 14 durchgeführt wird.
DE102011010613.8A 2011-02-08 2011-02-08 Verfahren zum Speichern und Wiederherstellen von Daten, Verwendung der Verfahren in einer Storage Cloud, Speicherserver und Computerprogrammprodukt Active DE102011010613B4 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102011010613.8A DE102011010613B4 (de) 2011-02-08 2011-02-08 Verfahren zum Speichern und Wiederherstellen von Daten, Verwendung der Verfahren in einer Storage Cloud, Speicherserver und Computerprogrammprodukt
US13/366,676 US9419796B2 (en) 2011-02-08 2012-02-06 Method for storing and recovering data, utilization of the method in a storage cloud, storage server and computer program product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102011010613.8A DE102011010613B4 (de) 2011-02-08 2011-02-08 Verfahren zum Speichern und Wiederherstellen von Daten, Verwendung der Verfahren in einer Storage Cloud, Speicherserver und Computerprogrammprodukt

Publications (2)

Publication Number Publication Date
DE102011010613A1 true DE102011010613A1 (de) 2012-08-09
DE102011010613B4 DE102011010613B4 (de) 2020-09-10

Family

ID=46547030

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102011010613.8A Active DE102011010613B4 (de) 2011-02-08 2011-02-08 Verfahren zum Speichern und Wiederherstellen von Daten, Verwendung der Verfahren in einer Storage Cloud, Speicherserver und Computerprogrammprodukt

Country Status (2)

Country Link
US (1) US9419796B2 (de)
DE (1) DE102011010613B4 (de)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8744078B2 (en) * 2012-06-05 2014-06-03 Secure Channels Sa System and method for securing multiple data segments having different lengths using pattern keys having multiple different strengths
US9450923B2 (en) 2012-11-12 2016-09-20 Secured2 Corporation Systems and methods of data segmentation and multi-point storage
CN103294961A (zh) * 2013-06-07 2013-09-11 北京奇虎科技有限公司 一种文件加/解密方法以及文件加/解密装置
US9779100B2 (en) 2014-07-14 2017-10-03 Secured2 Corporation Data conversion method
US9779148B2 (en) 2014-07-14 2017-10-03 Secured2 Corporation Data conversion system
US9779101B2 (en) 2014-07-14 2017-10-03 Secured2 Corporation Data conversion device
WO2016093918A2 (en) * 2014-11-03 2016-06-16 CRAM Worldwide, Inc. Secured data storage on a hard drive
CN104836656B (zh) * 2015-05-08 2018-04-10 厦门大学 一种视频文件的存储和传输方法
US9660970B1 (en) 2015-12-03 2017-05-23 Amazon Technologies, Inc. Cryptographic key distribution
US10778429B1 (en) * 2015-12-03 2020-09-15 Amazon Technologies, Inc. Storage of cryptographic information
US10461898B2 (en) 2017-06-08 2019-10-29 Bank Of America Corporation Parallel data transmission
US10608793B2 (en) 2017-06-08 2020-03-31 Bank Of America Corporation Serial data transmission
US10891366B1 (en) * 2017-08-18 2021-01-12 Jonetix Corporation Secure hardware signature and related methods and applications
CN108282476A (zh) * 2018-01-19 2018-07-13 常州信息职业技术学院 一种信息安全备份方法及系统
CN110365620B (zh) * 2018-03-26 2021-08-13 中移(苏州)软件技术有限公司 一种流式数据隐私保护方法及装置
CN108614749B (zh) * 2018-04-23 2020-11-03 北京搜狐新媒体信息技术有限公司 一种数据处理方法及装置
CN110058820B (zh) * 2019-04-23 2022-05-17 武汉汇迪森信息技术有限公司 基于固态盘阵列的数据安全写入、删除、读取方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090327751A1 (en) * 2006-05-31 2009-12-31 Haim Koifman Method and system for transformation of logical data objects for storage
US20100161926A1 (en) * 2008-12-23 2010-06-24 Hong Li Data protection by segmented storage
WO2011007141A1 (en) * 2009-07-17 2011-01-20 Extas Global Ltd. Distributed storage
US20110029711A1 (en) * 2009-07-30 2011-02-03 Cleversafe, Inc. Method and apparatus for slice partial rebuilding in a dispersed storage network

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2288519A (en) * 1994-04-05 1995-10-18 Ibm Data encryption
JP2001223690A (ja) * 2000-02-08 2001-08-17 Io Network:Kk 情報通信方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090327751A1 (en) * 2006-05-31 2009-12-31 Haim Koifman Method and system for transformation of logical data objects for storage
US20100161926A1 (en) * 2008-12-23 2010-06-24 Hong Li Data protection by segmented storage
WO2011007141A1 (en) * 2009-07-17 2011-01-20 Extas Global Ltd. Distributed storage
US20110029711A1 (en) * 2009-07-30 2011-02-03 Cleversafe, Inc. Method and apparatus for slice partial rebuilding in a dispersed storage network

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
RFC 4880

Also Published As

Publication number Publication date
US20120203990A1 (en) 2012-08-09
DE102011010613B4 (de) 2020-09-10
US9419796B2 (en) 2016-08-16

Similar Documents

Publication Publication Date Title
DE102011010613B4 (de) Verfahren zum Speichern und Wiederherstellen von Daten, Verwendung der Verfahren in einer Storage Cloud, Speicherserver und Computerprogrammprodukt
DE19782169C2 (de) Kryptographisch geschütztes Seitenwechsel-Subsystem
DE60033376T2 (de) Verteilte datenarchivierungsvorrichtung und system
DE112017005868T5 (de) Verwaltung von e/a-abläufen für datenobjekte in einem speichersystem
DE112017006020T5 (de) Verfahren und System für suchmusterblinde dynamische symmetrische durchsuchbare Verschlüsselung
DE112014000584T5 (de) Erreichen von Speichereffizienz bei durchgängiger Verschlüsselung unter Verwendung von nachgelagerten (Downstream-)Decryptern
DE102009022233A1 (de) Verwendung einer Zeichenkette in Sytemen der Kryptographie, der Statistik, der Simulation, der Randomisierung, von Spielautomaten und dgl.
DE112010002938T5 (de) Eine integrierte Herangehensweise zur Deduplizierung von Daten in einer verteiltenUmgebung, die eine Quelle und ein Ziel umfasst
DE112021004937T5 (de) Sicheres erneutes verschlüsseln von homomorph verschlüsselten daten
DE102020111199B4 (de) Sicherungen von dateisystem-instanzen verschlüsselter datenobjekte
DE112011105688T5 (de) Ent- und Verschlüsselung von Anwendungsdaten
DE102016102424A1 (de) Auf Inhalt beruhende Hardware-Sicherheitsmodulzuweisung zu virtuellen Maschinen
DE112020002164T5 (de) Sichere datenspeicherung auf der grundlage von verschleierung durch verteilung
EP2735991A1 (de) Computerimplementiertes Verfahren zum Ersetzen eines Datenstrings
DE112021005561T5 (de) Implementieren einer widerstandsfähigen deterministischen verschlüsselung
DE112021003270T5 (de) Deduplizierung von mit mehreren schlüsseln verschlüsselten daten
DE112022003785T5 (de) Sichere verschlüsselung von teilblöcken
EP3254403A1 (de) Vorrichtung und verfahren zum erzeugen eines schlüssels in einem programmierbaren hardwaremodul
EP3480724B1 (de) Computerimplementiertes verfahren zum ersetzen eines datenstrings durch einen platzhalter
DE112018000227T5 (de) Verfahren zum teilweisen Aktualisieren von Dateninhalten in einem verteilten Speichernetzwerk
DE112021002747T5 (de) Sicheres wiederherstellen von geheimen schlüsseln
EP3576001A1 (de) Computerimplementiertes verfahren zum übergeben eines datenstrings von einer anwendung an eine datenschutzeinrichtung
DE102015103251A1 (de) Verfahren und System zum Verwalten von Nutzerdaten eines Nutzerendgeräts
EP3127272B1 (de) Verschlüsselungsverfahren und pseudo-zufallszahlengenerator
DE112012000780T5 (de) Verarbeiten von Berechtigungsprüfungsdaten

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R084 Declaration of willingness to licence
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0012080000

Ipc: H04L0009000000

R016 Response to examination communication
R016 Response to examination communication
R081 Change of applicant/patentee

Owner name: FUJITSU LTD., KAWASAKI-SHI, JP

Free format text: FORMER OWNER: FUJITSU TECHNOLOGY SOLUTIONS INTELLECTUAL PROPERTY GMBH, 80807 MUENCHEN, DE

R082 Change of representative

Representative=s name: EPPING HERMANN FISCHER, PATENTANWALTSGESELLSCH, DE

Representative=s name: EPPING HERMANN FISCHER PATENTANWALTSGESELLSCHA, DE

R018 Grant decision by examination section/examining division
R020 Patent grant now final