DE102012218576A1 - Verschlüsseln von Daten und Charakterisierungsdaten, die den gültigen Inhalt einer Spalte beschreiben - Google Patents
Verschlüsseln von Daten und Charakterisierungsdaten, die den gültigen Inhalt einer Spalte beschreiben Download PDFInfo
- Publication number
- DE102012218576A1 DE102012218576A1 DE102012218576A DE102012218576A DE102012218576A1 DE 102012218576 A1 DE102012218576 A1 DE 102012218576A1 DE 102012218576 A DE102012218576 A DE 102012218576A DE 102012218576 A DE102012218576 A DE 102012218576A DE 102012218576 A1 DE102012218576 A1 DE 102012218576A1
- Authority
- DE
- Germany
- Prior art keywords
- data
- column
- characterization data
- characterization
- command
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/083—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
- H04L9/0833—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
- H04L9/0836—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key using tree structure or hierarchical structure
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
- Bereich
- Eine Ausführungsform der Erfindung betrifft allgemein Datenbank-Verwaltungssysteme, die Daten verschlüsseln.
- Hintergrund
- Computersysteme weisen üblicherweise eine Kombination von Computerprogrammen und Hardware, wie zum Beispiel Halbleiter, Transistoren, Chips, Leiterplatten, Plattenspeichereinheiten und Prozessoren, auf. Die Computerprogramme werden in den Plattenspeichereinheiten gespeichert und von den Prozessoren ausgeführt. Im Grunde werden Computersysteme zur Speicherung, Bearbeitung und Auswertung von Daten verwendet.
- Ein Mechanismus zur Verwaltung von Daten wird als Datenbank-Verwaltungssystem (database management system (DBMS)) oder einfach als Datenbank bezeichnet. Viele verschiedene Arten von Datenbanken sind bekannt, die gebräuchlichste wird jedoch gewöhnlich als relationale Datenbank bezeichnet, die Daten in Tabellen organisiert, welche über Zeilen, die einzelne Einträge, Tupel oder Datensätze in der Datenbank darstellen, sowie Spalten, Felder oder Attribute verfügen, die festlegen, was in jedem Eintrag, jedem Tupel oder jedem Datensatz gespeichert wird. Jede Tabelle hat einen eindeutigen Namen in der Datenbank und jede Spalte hat einen eindeutigen Namen in der jeweiligen Tabelle. Die Datenbank hat auch einen oder mehrere Indizes, bei denen es sich um Datenstrukturen handelt, die das DBMS über die Position einer bestimmten Zeile in einer Tabelle unter Berücksichtigung eines indexierten Spaltenwerts informieren, analog zu einem Buchindex, der den Leser über die Seite, auf der ein bestimmtes Wort erscheint, informiert.
- Der Abruf von Daten aus einer Datenbank erfolgt meistens über Anweisungen, die als Datenbankabfragen bezeichnet werden und von Benutzerschnittstellen, Anwendungsprogrammen oder fernen Computersystemen wie zum Beispiel Clients oder gleichgeordneten Computern (Peers) stammen. Eine Abfrage ist ein von dem DBMS ausgewerteter Ausdruck, um Daten aus der Datenbank abzurufen, die die Kriterien oder Bedingungen erfüllen, welche in der Abfrage angegeben sind.
- Datenbanken machen oft von der Kryptographie Gebrauch, bei der es sich um eine Vorgehensweise zum Verstecken von Informationen handelt, um die Geheimhaltung sicherzustellen, und die die Verschlüsselung und Entschlüsselung von Daten beinhaltet. Verschlüsselung ist der Prozess, bei dem gewöhnliche Informationen (Klartext) in unverständliche Informationen, die als Geheimtext bezeichnet werden, umgewandelt werden, welche für Personen, die Informationen abfangen oder abhören, oder für andere unbefugte und nicht vorgesehene Personen ohne Kenntnis des Geheimnisses (nämlich des zur Entschlüsselung benötigten Schlüssels) nicht lesbar oder nicht verständlich sind. Datenbanken verwenden die Kryptographie, um in der Datenbank gespeicherte Daten zu verschlüsseln, so dass ein verschlüsseltes Datenbankfeld selbst dann sicher bleibt, wenn eine unbefugte Person die verschlüsselten Daten liest und weiß, welcher Verschlüsselungsalgorithmus zur Erzeugung der verschlüsselten Daten verwendet worden ist.
- Kurzdarstellung
- Ein Verfahren, ein computerlesbares Speichermedium und ein Computersystem werden bereitgestellt. In einer Ausführungsform werden als Reaktion auf den Empfang eines ersten Befehls, der erste Daten angibt, eines ersten kryptographischen Schlüssels und einer Spaltenkennung, die eine Spalte mit Zeilen in einer Datenbank kennzeichnet, die ersten Daten mit Hilfe des ersten kryptographischen Schlüssels in verschlüsselte Daten verschlüsselt. Die verschlüsselten Daten werden in einer ersten Zeile in der Spalte in der Datenbank gespeichert. Als Reaktion auf den Empfang des ersten Befehls werden Charakterisierungsdaten erzeugt, die den gültigen Inhalt der Spalte mit den Zeilen angeben. Als Reaktion auf den Empfang eines Abfragebefehls, der einen zweiten kryptographischen Schlüssel und die Spalte angibt, wird die Spalte mit Hilfe des zweiten Schlüssels entschlüsselt, um entschlüsselte Daten zu erzeugen. Wenn die entschlüsselten Daten dem von den Charakterisierungsdaten angegebenen gültigen Inhalt nicht entsprechen, wird eine Aktion mit einem ungültigen kryptographischen Schlüssel durchgeführt.
- Kurze Beschreibung der diversen Ansichten der Zeichnungen
-
1 zeigt ein Übersichtsblockschaltbild eines beispielhaften Systems zur Realisierung einer Ausführungsform der Erfindung. -
2 zeigt ein Blockschaltbild eines beispielhaften Datenbank-Verwaltungssystems gemäß einer Ausführungsform der Erfindung. -
3 zeigt ein Blockschaltbild einer beispielhaften Datenstruktur für eine Datenbank gemäß einer Ausführungsform der Erfindung. -
4 zeigt ein Flussdiagramm einer beispielhaften Verarbeitung für Einfüge- und Aktualisierungsbefehle gemäß einer Ausführungsform der Erfindung. -
5 zeigt ein Flussdiagramm einer beispielhaften Verarbeitung für eine Abfrage gemäß einer Ausführungsform der Erfindung. - Es sei jedoch angemerkt, dass die beigefügten Zeichnungen lediglich beispielhafte Ausführungsformen der Erfindung zeigen und folglich nicht als Einschränkung des Umfangs von anderen Ausführungsformen der Erfindung betrachtet werden.
- Ausführliche Beschreibung
- Bezug nehmend auf die Zeichnungen, in denen gleiche Bezugszahlen überall in den diversen Ansichten gleiche Teile bezeichnen, zeigt
1 eine Übersichtsblockschaltbilddarstellung eines Server-Computersystems100 gemäß einer Ausführungsform der vorliegenden Erfindung, das über ein Netzwerk130 mit einem Client-Computersystem132 verbunden ist. Die Begriffe ”Server” und ”Client” werden hier lediglich der Einfachheit halber verwendet, und in verschiedenen Ausführungsformen kann ein Computersystem, das in einer Umgebung als Client-Computer betrieben wird, in einer anderen Umgebung als Server-Computer betrieben werden, und umgekehrt. Die Mechanismen und Vorrichtungen von Ausführungsformen der vorliegenden Erfindung gelten gleichermaßen für jedes beliebige geeignete Datenverarbeitungssystem. - Die Hauptkomponenten des Computersystems
100 weisen einen oder mehrere Prozessoren101 , einen Hauptspeicher102 , eine Endgeräteschnittstelle111 , eine Speicherschnittstelle112 , eine Schnittstelle113 für eine E/A-(Eingabe/Ausgabe-)Einheit und einen Netzwerkadapter114 auf, von denen alle direkt oder indirekt kommunikativ verbunden sind, um über einen Speicherbus103 , einen E/A-Bus104 und eine E/A-Busschnittstelleneinheit105 Daten zwischen den Komponenten zu übertragen. - Das Computersystem
100 enthält eine oder mehrere programmierbare Universal-Zentraleinheiten (CPUs)101A ,101B ,101C und101D , die hier allgemein als der Prozessor101 bezeichnet werden. In einer Ausführungsform enthält das Computersystem100 mehrere Prozessoren, die typisch für ein verhältnismäßig großes System sind; in einer anderen Ausführungsform kann das Computersystem100 alternativ jedoch ein einzelnes CPU-System sein. Jeder Prozessor101 führt Befehle aus, die im Hauptspeicher102 gespeichert sind, und kann eine oder mehrere Stufen mit integriertem Cachespeicher aufweisen. - In einer Ausführungsform kann der Hauptspeicher
102 einen Direktzugriff-Halbleiterspeicher, eine Plattenspeichereinheit oder ein Speichermedium (entweder flüchtig oder nicht flüchtig) aufweisen, um Daten und Programme zu speichern oder zu codieren. In einer anderen Ausführungsform stellt der Hauptspeicher102 den gesamten virtuellen Speicher des Computersystems100 dar und kann auch den virtuellen Speicher von anderen Computersystemen enthalten, die mit dem Computersystem100 verbunden oder über das Netzwerk130 angeschlossen sind. Der Hauptspeicher102 ist als eine einzelne monolithische Einheit konzipiert, in anderen Ausführungsformen ist der Hauptspeicher102 jedoch komplexer aufgebaut, beispielsweise als eine Hierarchie von Cachespeichern und anderen Arbeitsspeichereinheiten. Der Arbeitsspeicher kann zum Beispiel in mehreren Cachespeicher-Stufen vorhanden sein und diese Cachespeicher können weiter nach ihrer Funktion unterteilt werden, so dass ein Cachespeicher Befehle enthält, während ein anderer Cachespeicher Daten, die keine Befehle sind, enthält, welche von dem Prozessor oder den Prozessoren verwendet werden. Der Arbeitsspeicher kann darüber hinaus verteilt und verschiedenen CPUs oder Gruppen von CPUs zugeordnet sein, wie dies bei beliebigen von verschiedenen Computerarchitekturen mit so genanntem nichteinheitlichem Speicherzugriff (non-uniform memory access (NUMA)) bekannt ist. - Der Hauptspeicher
102 speichert oder codiert ein Datenbank-Verwaltungssystem (DBMS)150 , einen Ergebnissatz152 , einen Einfüge-/Aktualisierungsbefehl154 , eine Abfrage158 und eine Anwendung160 . Das DBMS150 , der Ergebnissatz152 , der Einfüge-/Aktualisierungsbefehl154 , die Abfrage158 und die Anwendung160 sind zwar als im Hauptspeicher102 im Computersystem100 enthalten gezeigt, doch können sich ein Teil oder alle von ihnen in anderen Ausführungsformen auf verschiedenen Computersystemen befinden und auf sie kann beispielsweise über das Netzwerk130 ein Fernzugriff erfolgen. Das Computersystem100 kann Mechanismen der virtuellen Adressierung verwenden, die es den Programmen des Computersystems100 ermöglichen, sich so zu verhalten, als hätten sie anstelle des Zugriffs auf mehrere kleinere Speicherentitäten nur Zugriff auf eine einzige große Speicherentität. Während das Datenbank-Verwaltungssystem150 , der Ergebnissatz152 , der Einfüge-/Aktualisierungsbefehl154 , die Abfrage158 und die Anwendung160 als im Hauptspeicher102 enthalten gezeigt sind, sind diese Elemente somit nicht unbedingt alle vollständig und gleichzeitig in derselben Plattenspeichereinheit enthalten. Überdies sind das Datenbank-Verwaltungssystem150 , der Ergebnissatz152 , der Einfüge-/Aktualisierungsbefehl154 , die Abfrage158 und die Anwendung160 zwar als getrennte Entitäten gezeigt, doch können einige von ihnen, Teile von einigen von ihnen oder alle von ihnen in anderen Ausführungsformen gemeinsam untergebracht sein. - In einer Ausführungsform weisen das DBMS
150 und/oder die Anwendung160 Befehle oder Anweisungen auf, die auf dem Prozessor101 ausgeführt werden, oder Befehle oder Anweisungen, die von Befehlen oder Anweisungen ausgewertet werden, welche auf dem Prozessor101 ausgeführt werden, um die Funktionen auszuführen, die nachstehend mit Bezug auf die2 ,3 ,4 und5 näher beschrieben werden. In einer anderen Ausführungsform sind das DBMS150 und/oder die Anwendung160 mittels Halbleitereinheiten, Chips, Logikgattern, Schaltungen, Schaltungskarten und/oder anderen physischen Hardware-Einheiten anstelle von oder zusätzlich zu einem auf einem Prozessor beruhenden System in Hardware ausgeführt. In einer Ausführungsform weisen das DBMS150 und/oder die Anwendung160 zusätzlich zu Befehlen oder Anweisungen Daten auf. In verschiedenen Ausführungsformen ist die Anwendung160 eine Benutzeranwendung, eine Anwendung eines Drittanbieters, ein Betriebssystem oder ein beliebiger Teil, ein Mehrfaches oder eine Kombination davon. - Der Speicherbus
103 stellt einen Datenübertragungspfad zur Übertragung von Daten zwischen dem Prozessor101 , dem Hauptspeicher102 und der E/A-Busschnittstelleneinheit105 bereit. Die E/A-Busschnittstelleneinheit105 ist des Weiteren mit dem System-E/A-Bus104 verbunden, um Daten an die und von den verschiedenen E/A-Einheiten zu übertragen. Die E/A-Busschnittstelleneinheit105 kommuniziert über den System-E/A-Bus104 mit mehreren E/A-Schnittstelleneinheiten111 ,112 ,113 und114 , die auch als E/A-Prozessoren (IOPs) oder E/A-Adapter (IOAs) bezeichnet werden. - Die E/A-Schnittstelleneinheiten unterstützen die Kommunikation mit vielen verschiedenen Plattenspeicher- und E/A-Einheiten. Die Endgerät-Schnittstelleneinheit
111 unterstützt beispielsweise den Anschluss von einer oder mehreren Benutzer-E/A-Einheiten121 , die Benutzer-Ausgabeeinheiten (wie zum Beispiel einen Bildschirm, einen Lautsprecher und/oder ein Fernsehgerät) und Benutzer-Eingabeeinheiten (wie zum Beispiel eine Tastatur, eine Maus, einen Ziffernblock, ein Tastfeld (Touchpad), eine Rollkugel, Schaltflächen, einen Lichtgriffel oder eine andere Zeigeeinheit) aufweisen können. Ein Benutzer kann die Benutzer-Eingabeeinheiten mit Hilfe einer Benutzerschnittstelle betätigen, um der Benutzer-E/A-Einheit121 und dem Computersystem100 Eingabedaten und Befehle zuzuführen und er kann Ausgabedaten über die Benutzer-Ausgabeeinheiten empfangen. Eine Benutzerschnittstelle kann beispielsweise durch die Benutzer-E/A-Einheit121 dargestellt werden, wie sie zum Beispiel auf einem Bildschirm angezeigt, über einen Lautsprecher wiedergegeben oder über einen Drucker ausgegeben wird. - Die Speicher-Schnittstelleneinheit
112 unterstützt den Anschluss von einem oder mehreren Plattenlaufwerken oder Direktzugriffspeichereinheiten125 (bei denen es sich üblicherweise um rotierende Magnetplattenlaufwerk-Speichereinheiten handelt, obgleich sie alternativ auch andere Plattenspeichereinheiten einschließlich Anordnungen von Festplattenlaufwerken, die so konfiguriert sind, dass sie einem Hostcomputer als eine einzige große Plattenspeichereinheit erscheinen, sein könnten). In einer anderen Ausführungsform kann die Plattenspeichereinheit125 mittels einer beliebigen Art einer sekundären Plattenspeichereinheit realisiert werden. Der Inhalt des Hauptspeichers102 oder eines beliebigen Teils davon kann nach Bedarf in der Plattenspeichereinheit125 gespeichert oder daraus abgerufen werden. Die E/A-Einheitenschnittstelle113 stellt beliebigen von verschiedenen anderen Eingabe-/Ausgabeeinheiten oder Einheiten anderer Art, wie zum Beispiel Druckern oder Telefaxgeräten, eine Schnittstelle bereit. Der Netzwerkadapter114 stellt einen oder mehrere Übertragungspfade vom Computersystem100 zu anderen digitalen Einheiten und Computersystemen132 bereit; diese Pfade können zum Beispiel ein oder mehrere Netzwerke130 aufweisen. - Obgleich der Speicherbus
103 in1 als eine verhältnismäßig einfache Struktur mit einem einzigen Bus gezeigt ist, die einen direkten Übertragungspfad zwischen den Prozessoren101 , dem Hauptspeicher102 und der E/A-Busschnittstelle105 bereitstellt, kann der Speicherbus103 tatsächlich mehrere unterschiedliche Busse oder Übertragungspfade aufweisen, die in einer beliebigen von verschiedenen Formen angeordnet sein können, wie zum Beispiel als Punkt-zu-Punkt-Verbindungen in hierarchischen, Stern- oder Netzkonfigurationen, als mehrere hierarchische Busse, parallele und redundante Pfade oder in einer beliebigen anderen geeigneten Art der Konfiguration. Während die E/A-Busschnittstelle105 und der E/A-Bus104 als einzelne jeweilige Einheiten gezeigt sind, kann das Computersystem100 außerdem tatsächlich mehrere E/A-Busschnittstelleneinheiten105 und/oder mehrere E/A-Busse104 enthalten. Zwar sind mehrere E/A-Schnittstelleneinheiten gezeigt, die den System-E/A-Bus104 von verschiedenen Übertragungspfaden trennen, die zu den verschiedenen E/A-Einheiten führen, doch sind ein Teil oder alle der E/A-Einheiten in anderen Ausführungsformen direkt mit einem oder mehreren System-E/A-Bussen verbunden. - In verschiedenen Ausführungsformen ist das Computersystem
100 ein Mehrbenutzer-Großrechnersystem, ein Einbenutzersystem oder ein Servercomputer oder eine ähnliche Einheit, die nur eine kleine oder gar keine direkte Benutzerschnittstelle hat, aber Anforderungen von anderen Computersystemen (Clients) empfängt. In anderen Ausführungsformen ist das Computersystem100 als ein Desktop-Computer, ein tragbarer Computer, ein Laptop- oder Notebook-Computer, ein Tablet-Computer, ein Taschencomputer, ein Telefon, ein Smartphone, ein Funkrufempfänger, ein Fahrzeug-, ein Telefonkonferenzsystem, eine Appliance oder eine beliebige andere geeignete Art eines elektronischen Geräts ausgeführt. - Das Netzwerk
130 kann ein beliebiges geeignetes Netzwerk oder eine Kombination von Netzwerken sein und es kann jedes beliebige geeignete Protokoll unterstützen, das zur Übertragung von Daten und/oder Code an das/von dem Computersystem100 und an das/von dem Computersystem132 geeignet ist. In verschiedenen Ausführungsformen kann das Netzwerk130 eine Plattenspeichereinheit oder eine Kombination von Plattenspeichereinheiten darstellen, die entweder direkt oder indirekt mit dem Computersystem100 verbunden sind. In einer anderen Ausführungsform kann das Netzwerk130 drahtlose Übertragungen unterstützen. In einer anderen Ausführungsform kann das Netzwerk130 fest verdrahtete Übertragungen wie zum Beispiel eine Telefonleitung oder ein -kabel unterstützen. In einer anderen Ausführungsform kann das Netzwerk130 das Internet sein und das Internet Protocol (IP) unterstützen. In einer anderen Ausführungsform ist das Netzwerk130 als ein lokales Netzwerk (LAN) oder als Weitverkehrsnetz (WAN) realisiert. In einer anderen Ausführungsform ist das Netzwerk130 als ein Notspot-Netzwerk eines Diensteanbieters realisiert. In einer anderen Ausführungsform ist das Netzwerk130 als ein Intranet realisiert. In einer anderen Ausführungsform ist das Netzwerk130 als ein beliebiges geeignetes zellenorientiertes Datennetzwerk, eine zellenbasierte Funknetzwerktechnologie oder ein drahtloses Netzwerk realisiert. In einer anderen Ausführungsform ist das Netzwerk130 als ein beliebiges geeignetes Netzwerk oder als eine Kombination von Netzwerken realisiert. Obgleich nur ein einziges Netzwerk130 gezeigt ist, kann in anderen Ausführungsformen eine beliebige Anzahl von Netzwerken (derselben oder unterschiedlicher Art) vorhanden sein. - Das Computersystem
132 kann einen Teil oder alle der Hardware- und/oder Computerprogramm-Elemente des Computersystems100 aufweisen. -
1 soll die repräsentativen Hauptkomponenten des Computersystems100 , des Netzwerks130 und des Computersystems132 darstellen. Jedoch können einzelne Komponenten eine größere Komplexität als in1 dargestellt aufweisen, andere Komponenten als die in1 gezeigten oder zusätzliche Komponenten zu den in1 gezeigten können vorhanden sein, und die Anzahl, die Art und die Konfiguration dieser Komponenten kann voneinander abweichend sein. Mehrere bestimmte Beispiele für diese zusätzliche Komplexität oder diese zusätzlichen abweichenden Gestaltungsformen werden hier offengelegt; sie haben jedoch nur Beispielcharakter und sind nicht unbedingt die einzigen dieser abweichenden Gestaltungsformen. Die verschiedenen in1 gezeigten Programmkomponenten sowie die Umsetzung von verschiedenen Ausführungsformen der Erfindung können auf mehrere Arten realisiert werden, einschließlich der Verwendung von verschiedenen Computeranwendungen, Routinen, Komponenten, Programmen, Objekten, Modulen, Datenstrukturen usw., und sie werden nachstehend als ”Computerprogramme” oder einfach ”Programme” bezeichnet. - Die Computerprogramme weisen einen oder mehrere Befehle oder Anweisungen auf, die sich zu unterschiedlichen Zeiten in verschiedenen Haupt- und Plattenspeichereinheiten in dem Computersystem
100 befinden und die, wenn sie von einem oder mehreren Prozessoren in dem Computersystem100 gelesen und ausgeführt werden oder wenn sie von Befehlen ausgewertet werden, die von einem oder mehreren Prozessoren ausgeführt werden, das Computersystem100 veranlassen, die Aktionen durchzuführen, die notwendig sind, um Schritte oder Elemente auszuführen, welche die verschiedenen Erscheinungsformen von Ausführungsformen der Erfindung aufweisen. Erscheinungsformen von Ausführungsformen der Erfindung können als ein System, ein Verfahren oder ein Computerprogrammprodukt realisiert werden. Folglich können Erscheinungsformen von Ausführungsformen der Erfindung die Form einer ganz in Hardware realisierten Ausführung, einer ganz als Programm realisierten Ausführung (einschließlich Firmware, residenter Programme, Mikrocode usw., die in einer Plattenspeichereinheit gespeichert werden) oder einer Ausführung annehmen, die Programm- und Hardware-Erscheinungsformen kombiniert, die hier alle allgemein als eine ”Schaltung”, ein ”Modul” oder ein ”System” bezeichnet werden können. Überdies können Ausführungsformen der Erfindung die Form eines Computerprogrammprodukts annehmen, das sich auf einem oder mehreren computerlesbaren Datenträger(n) befindet, auf dem beziehungsweise denen sich computerlesbarer Programmcode befindet. - Jede beliebige Kombination aus einem oder mehreren computerlesbaren Datenträgern kann verwendet werden. Der computerlesbare Datenträger kann ein computerlesbarer Signaldatenträger oder ein computerlesbares Speichermedium sein. Ein computerlesbares Speichermedium kann zum Beispiel ein(e) elektronische(s), magnetische(s), optische(s), elektromagnetische(s), Infrarot- oder Halbleitersystem, -vorrichtung, -einheit oder eine beliebige geeignete Kombination des Vorstehenden, ohne darauf beschränkt zu sein, sein. Konkretere Beispiele (wobei die Liste keinen Anspruch auf Vollständigkeit erhebt) für die computerlesbaren Speichermedien können aufweisen: eine elektrische Verbindung mit einer oder mehreren Leitungen, eine Diskette eines tragbaren Computers, eine Festplatte (z. B. die Plattenspeichereinheit
125 ), einen Direktzugriffsspeicher (RAM) (z. B. den Speicher102 ), einen Nur-Lese-Speicher (ROM), einen löschbaren programmierbaren Nur-Lese-Speicher (EPROM) oder einen Flash-Speicher, einen Lichtwellenleiter, einen tragbaren Compact-Disk-Nur-Lese-Speicher (CD-ROM), eine optische Plattenspeichereinheit, eine magnetische Plattenspeichereinheit oder jede beliebige geeignete Kombination des Vorstehenden. Im Rahmen dieses Schriftstücks kann ein computerlesbares Speichermedium jedes physisch greifbare Medium sein, das ein Programm zur Verwendung durch ein Befehlsausführungssystem, eine Befehlsausführungsvorrichtung oder -einheit oder zur Verwendung in Verbindung mit einem Befehlsausführungssystem, einer Befehlsausführungsvorrichtung oder -einheit enthalten oder speichern kann. - Ein computerlesbarer Signaldatenträger kann ein übertragenes Datensignal mit einem darin enthaltenen computerlesbaren Programmcode, beispielsweise in einem Basisband oder als Teil einer Trägerwelle, aufweisen. Solch ein übertragenes Signal kann eine beliebige einer Vielzahl von Formen einschließlich elektromagnetischer, optischer Formen oder jede beliebige geeignete Kombination dieser Formen, ohne darauf beschränkt zu sein, annehmen. Bei einem computerlesbaren Signaldatenträger kann es sich um jeden beliebigen computerlesbaren Datenträger handeln, der kein computerlesbares Speichermedium ist und der ein Programm zur Verwendung durch oder zur Verwendung in Verbindung mit einem Befehlsausführungssystem, einer Befehlsausführungsvorrichtung oder -einheit überträgt, weiterleitet oder transportiert. Auf einem computerlesbaren Datenträger enthaltener Programmcode kann mittels eines geeigneten Mediums einschließlich eines drahtlosen Mediums, eines drahtgebundenen Mediums, eines Lichtwellenleiterkabels, mittels Hochfrequenz usw., ohne auf diese beschränkt zu sein, oder mittels jeder beliebigen geeigneten Kombination des Vorstehenden übertragen werden.
- Computerprogrammcode, um Operationen für Erscheinungsformen von Ausführungsformen der vorliegenden Erfindung durchzuführen, kann in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen, einschließlich objektorientierter Programmiersprachen und herkömmlicher prozeduraler Programmiersprachen, geschrieben sein. Der Programmcode kann ganz auf dem Computer des Benutzers, teilweise auf einem fernen Computer oder ganz auf dem fernen Computer oder Server ausgeführt werden. Im letzteren Szenario kann der ferne Computer mit dem Computer des Benutzers über jede beliebige Art eines Netzwerks einschließlich eines lokalen Netzwerks (LAN) oder eines Weitverkehrsnetzes (WAN) verbunden werden oder die Verbindung kann über einen externen Computer (zum Beispiel über das Internet mittels eines Internet-Diensteanbieters) vorgenommen werden.
- Erscheinungsformen von Ausführungsformen der Erfindung werden nachstehend mit Bezug auf Darstellungen in Flussdiagrammen und/oder Blockschaltbilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten beschrieben. Jeder Block der Darstellungen in den Flussdiagrammen und/oder der Blockschaltbilder sowie Kombinationen aus Blöcken in den Darstellungen der Flussdiagramme und/oder den Blockschaltbildern kann mittels Computerprogrammbefehlen realisiert werden, die sich auf einem computerlesbaren Datenträger befinden. Diese Computerprogrammbefehle können einem Prozessor eines Universalcomputers, eines Computers für spezielle Anwendungen oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die Befehle, die mittels des Prozessors des Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, ein Mittel zur Ausführung der Funktionen/Vorgänge erzeugen, die von dem Block oder den Blöcken der Flussdiagramme und/oder der Blockschaltbilder angegeben werden. Diese Computerprogrammbefehle können auch auf einem computerlesbaren Datenträger gespeichert werden, der einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten anweisen kann, auf eine bestimmte Art und Weise zu funktionieren, so dass die auf dem computerlesbaren Datenträger gespeicherten Befehle einen Herstellungsgegenstand erzeugen, der Befehle enthält, die die Funktion/den Vorgang ausführen, welche bzw. welcher von dem Block oder den Blöcken der Flussdiagramme und/oder der Blockschaltbilder angegeben wird.
- Die Computerprogramme, die die Funktionen von verschiedenen Ausführungsformen der Erfindung festlegen, können einem Computersystem über viele verschiedene physische, computerlesbare Speichermedien bereitgestellt werden, die operativ oder kommunikativ mit dem Prozessor oder mit den Prozessoren (direkt oder indirekt) verbunden sein können. Die Computerprogrammbefehle können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder auf andere Einheiten geladen werden, um die Durchführung einer Reihe von Betriebsschritten auf dem Computer, einer anderen programmierbaren Vorrichtung oder auf anderen Einheiten zu bewirken, um einen von einem Computer ausgeführten Prozess zu erzeugen, so dass die Befehle, die auf dem Computer oder einer anderen programmierbaren Vorrichtung ausgeführt werden, Prozesse zur Ausführung der Funktionen/Vorgänge ermöglichen, die in dem Block oder den Blöcken der Flussdiagramme und/oder Blockschaltbilder angegeben sind.
- Das Flussdiagramm und die Blockschaltbilder in den Figuren zeigen die Architektur, die Funktionalität und die Betriebsweise von möglichen Ausführungsarten von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In dieser Hinsicht kann jeder Block in den Flussdiagrammen oder den Blockschaltbildern ein Modul, ein Segment oder einen Teil von Code darstellen, das beziehungsweise der einen oder mehrere ausführbare Befehle zur Ausführung der angegebenen logischen Funktion(en) aufweist. In manchen Ausführungsformen treten die in dem Block angegebenen Funktionen gegebenenfalls nicht in der in den Figuren angegebenen Reihenfolge auf. In Abhängigkeit von der mit ihnen verbundenen Funktionalität können beispielsweise zwei Blöcke, die als aufeinanderfolgende Blöcke dargestellt sind, tatsächlich weitgehend gleichzeitig ausgeführt werden oder die Blöcke können manchmal in der umgekehrten Reihenfolge ausgeführt werden. Jeder Block der Blockschaltbilder und/oder der Darstellung in den Flussdiagrammen sowie Kombinationen aus Blöcken in den Blockschaltbildern und/oder den Darstellungen in den Flussdiagrammen kann von Systemen, die auf Hardware für spezielle Anwendungen beruhen und die angegebenen Funktionen oder Vorgänge durchführen, in Kombinationen aus Hardware für spezielle Anwendungen und Computerbefehlen ausgeführt werden.
- Ausführungsformen der Erfindung können auch als Teil eines Serviceprojekts mit einem Kunden-Unternehmen, einer gemeinnützigen Organisation, einer staatlichen Stelle oder einer internen Organisationsstruktur geliefert werden. Erscheinungsformen dieser Ausführungsformen können das Konfigurieren eines Computersystems, um bestimmte oder alle der hier beschriebenen Verfahren durchzuführen, und das Einsetzen von Datenverarbeitungsdiensten (z. B. computerlesbarem Code, Hardware und Web-Diensten), die bestimmte oder alle der hier beschriebenen Verfahren umsetzen, aufweisen. Erscheinungsformen dieser Ausführungsformen können auch das Analysieren des Kundenunternehmens, das Erstellen von Empfehlungen als Reaktion auf die Analyse, das Erzeugen von computerlesbarem Code, um Teile der Empfehlungen umzusetzen, das Einbinden des computerlesbaren Codes in vorhandene Prozesse, Computersysteme und Datenverarbeitungsinfrastruktur, das Messen der Inanspruchnahme der hier beschriebenen Verfahren und Systeme mit einem Zähler, das Zuordnen von Kosten zu Benutzern und das dem Benutzer gegenüber erfolgende Inrechnungstellen der Inanspruchnahme dieser Verfahren und Systeme aufweisen. Überdies können verschiedene, nachstehend beschriebene Programme auf der Grundlage der Anwendung, für die sie in einer bestimmten Ausführungsform der Erfindung realisiert werden, angegeben werden. Jede bestimmte Programm-Nomenklatur, die sich ergibt, wird jedoch lediglich aus Gründen der Zweckmäßigkeit verwendet, und folglich sind Ausführungsformen der Erfindung nicht auf eine alleinige Verwendung in einer bestimmten Anwendung, die von dieser Nomenklatur angegeben wird und/oder durch diese Nomenklatur stillschweigend vorausgesetzt wird, beschränkt. Die in
1 dargestellten beispielhaften Umgebungen sind nicht als Einschränkung der vorliegenden Erfindung zu verstehen. Tatsächlich können andere alternative Hardware- und/oder Programmumgebungen verwendet werden, ohne vom Umfang der erfindungsgemäßen Ausführungsformen abzuweichen. -
2 zeigt ein Blockschaltbild eines beispielhaften Datenbank-Verwaltungssystems150 gemäß einer Ausführungsform der Erfindung. Das DBMS150 weist einen Parser205 , eine syntaktisch analysierte Anweisung210 , einen Optimierer215 , eine Datenbank220 , einen Ausführungsplan225 , eine Ausführungs-Steuerkomponente230 und eine kryptographische Steuerkomponente250 auf. In einer anderen Ausführungsform kann die kryptographische Steuerkomponente250 von dem DBMS150 getrennt sein und mit dem DBMS150 kommunizieren. Die kryptographische Steuerkomponente250 kann zum Beispiel Teil eines Betriebssystems oder eines anderen Programms sein. Die Datenbank220 weist Tabellen235 , einen Index oder mehrere Indizes240 und Spalten-Charakterisierungsdaten242 auf. Die Tabellen235 organisieren Daten in Zeilen, die einzelne Einträge, Tupel oder Datensätze darstellen, und in Spalten, Felder oder Attribute, die festlegen, was in jeder Zeile, jedem Eintrag, jedem Tupel oder jedem Datensatz gespeichert wird. Jede Tabelle235 hat einen eindeutigen Namen in der Datenbank220 und jede Spalte hat einen eindeutigen Namen in der jeweiligen Tabelle235 . Bei den Indizes240 handelt es sich um Datenstrukturen, die das DBMS150 als Reaktion darauf, dass die Indizes240 einen indexierten Spaltenwert empfangen, über die Position einer bestimmten Zeile in einer Tabelle235 informieren. - Der Parser
205 empfängt die Abfrage158 von der Anwendung160 . Die Abfrage158 stellt die Anforderung, dass das DBMS150 nach einer Zeile oder einer Kombination von Zeilen mit Daten sucht oder diese findet und die Daten aus diesen gefundenen Zeilen in dem Ergebnissatz152 speichert, die die von der Abfrage158 angegebenen Kriterien, Schlüssel und/oder Werte erfüllen beziehungsweise diesen entsprechen. In einer Ausführungsform sendet die Anwendung160 dieselbe Abfrage158 mehrmals an das DBMS150 , was in Abhängigkeit davon, ob sich die Daten in dem DBMS150 zwischen dem jeweiligen Auftreten der Abfrage158 geändert haben, gegebenenfalls einen anderen Ergebnissatz152 zur Folge hat. Der Parser205 erzeugt aus der Abfrage158 eine syntaktisch analysierte Anweisung210 , die er dann an den Optimierer215 sendet. Der Optimierer215 führt eine Abfrage-Optimierung an der syntaktisch analysierten Anweisung210 durch. Als Ergebnis der Abfrage-Optimierung erzeugt der Optimierer215 einen oder mehrere Ausführungspläne225 , wobei er Daten wie zum Beispiel die Verfügbarkeit von Ressourcen, Plattformfunktionen, Informationen über den Inhalt der Abfrage usw. verwendet, die in der Datenbank220 gespeichert sind. Sobald er erzeugt ist, sendet der Optimierer215 den Ausführungsplan225 an die Ausführungs-Steuerkomponente230 , die die Abfrage158 unter Verwendung des Ausführungsplans225 und der Indizes240 ausführt, um die Daten in den Datenbanktabellen235 in der Datenbank220 zu finden und abzurufen, welche die Kriterien der Abfrage158 erfüllen. Die Ausführungs-Steuerkomponente230 speichert die resultierenden Daten, die die von der Abfrage158 angegebenen Kriterien erfüllen, in dem Ergebnissatz152 , der als Antwort auf die Abfrage158 an die Anwendung160 zurückgeliefert wird. In einer Ausführungsform speichert das DBMS150 verschiedene Schwellwerte in dem Ausführungsplan225 . Das DBMS150 kann die verschiedenen Schwellwerte von der Anwendung160 , von einem Benutzer oder von einem Datenbank-Administrator empfangen oder die Schwellwerte können von einem Entwickler des Optimierers215 gesetzt werden. - Die kryptographische Steuerkomponente
250 verschlüsselt die Spalten-Charakterisierungsdaten242 , verschlüsselt von dem Einfüge-/Aktualisierungsbefehl154 empfangene Werte, wobei sie Schlüssel verwendet, die mit dem Einfüge-/Aktualisierungsbefehl154 empfangen wurden, und speichert die verschlüsselten Werte in den Tabellen235 . Die kryptographische Steuerkomponente250 entschlüsselt auch Werte, die als Reaktion auf syntaktisch analysierte Anweisungen aus den Tabellen235 gelesen wurden. Die Ausführungs-Steuerkomponente230 kann die kryptographische Steuerkomponente250 aufrufen, um Daten zu verschlüsseln und zu entschlüsseln. -
3 zeigt ein Blockschaltbild einer beispielhaften Datenstruktur für eine Datenbank220 gemäß einer Ausführungsform der Erfindung. Die Datenbank220 weist beispielhafte Tabellen235 , Indizes240 und beispielhafte Spalten-Charakterisierungsdaten242 auf. - Die Tabellen
235 können eine beliebige Anzahl von Tabellen, wie zum Beispiel die beispielhafte Tabelle y235-1 aufweisen. Die beispielhafte Tabelle y235-1 ist in Zeilen und Spalten gegliedert. Die Tabelle y235-1 weist beispielsweise die Spalte y.id325 und die Spalte y.address330 auf. Die Tabelle y235-1 weist des Weiteren eine erste Zeile mit ”1”, was in der Spalte y.id325 gespeichert wird, und ”679 5th Str Rochester, MN 55905”, was in der Spalte y.address330 gespeichert wird, auf; eine zweite Zeile mit ”1”, was in der Spalte y.id325 gespeichert wird, und ”597 9th Str Rochester, MN 55906”, was in der Spalte y.address330 gespeichert wird, usw. Die Tabelle y235-1 zeigt Zeilenkennungen (”Zeile 1”, ”Zeile 2”, ”Zeile 3” usw.), die die jeweiligen Zeilen in der Tabelle y235-1 kennzeichnen. In einer anderen Ausführungsform sind die Zeilenkennungen Adressen (entweder absolute, relative, physische, logische oder virtuelle Adressen), die den Speicherplatz der jeweiligen Zeile kennzeichnen. In einer Ausführungsform zeigen Adressen oder Kennungen in dem Index240 auf die Zeilenkennungen. In einer anderen Ausführungsform sind die Zeilenkennungen eindeutige Werte in einer Spalte. - Die in der Tabelle y
235-1 gespeicherten Datenwerte können verschlüsselt oder unverschlüsselt sein. Verschlüsselung ist der von der kryptographischen Steuerkomponente250 durchgeführte Prozess, bei dem gewöhnliche Informationen (Klartext) in unverständliche Informationen, die als Geheimtext bezeichnet werden, umgewandelt werden, welche für Personen, die Informationen abfangen oder abhören, oder für andere unbefugte und nicht vorgesehene Personen ohne Kenntnis des Geheimnisses (nämlich des zur Entschlüsselung benötigten Schlüssels) nicht lesbar oder nicht verständlich sind. Obgleich der Geheimtext unverständlich ist, weist er alle Informationen des Klartextes auf. Die Entschlüsselung ist der umgekehrte Prozess, der ebenfalls von der kryptographischen Steuerkomponente250 durchgeführt wird, bei dem unverständlicher Geheimtext mit Hilfe eines kryptographischen Schlüssels in Klartext umgewandelt wird. Eine Chiffre ist ein Paar von Algorithmen oder Prozessen, die diese Verschlüsselung und die umgekehrte Entschlüsselung vornehmen. Die Funktionsweise der Chiffre wird sowohl von dem Algorithmus der kryptographischen Steuerkomponente250 als auch von dem kryptographischen Schlüssel gesteuert. Der kryptographische Schlüssel wird auch als Krypto-Variable bezeichnet. - In verschiedenen Ausführungsformen kann die kryptographische Steuerkomponente
250 eine Kryptographie mit einem öffentlichen Schlüssel oder mit einem geheimen Schlüssel durchführen. Die Kryptographie mit einem öffentlichen Schlüssel, die auch als asymmetrische Kryptographie bezeichnet wird, ist eine Form der Kryptographie, die ein Paar von verschiedenen kryptographischen Schlüsseln verwendet, welche als öffentlicher Schlüssel (der zur Verschlüsselung verwendet wird) und als privater Schlüssel (der zur Entschlüsselung verwendet wird) bezeichnet werden. Zu Beispielen für Chiffres mit öffentlichem Schlüssel gehören der Diffie-Hellman-Algorithmus, der RSA-Algorithmus (RSA steht für Rivest, Shamir und Adleman), das Cramer-Shoup-Kryptosystem, die EIGamal-Verschlüsselung und Algorithmen mit elliptischen Kurven, doch kann in anderen Ausführungsformen jede geeignete Chiffre mit öffentlichem Schlüssel verwendet werden. Die Kryptographie mit öffentlichem Schlüssel wird der Kryptographie mit geheimem Schlüssel gegenübergestellt, die auch als symmetrische Kryptographie bezeichnet wird und bei der ein einziger geheimer Schlüssel sowohl für die Ver- als auch die Entschlüsselung verwendet wird. - Bei der Kryptographie mit öffentlichem Schlüssel hält der Eigentümer des privaten Schlüssels (der Abfragen an die Datenbank richtet) den privaten Schlüssel geheim und teilt ihn nicht mit einer anderen Person, aber der öffentliche Schlüssel kann großräumig an eine beliebige Person oder eine beliebige Entität, die gegebenenfalls über Einfüge- oder Aktualisierungsoperationen Daten an die Datenbank sendet oder an die Datenbank übergibt, verteilt sein. Der öffentliche Schlüssel und der private Schlüssel stehen in einer mathematischen Beziehung zueinander und werden geheim, als ein in Wechselbeziehung stehendes Paar erzeugt, jedoch kann der private Schlüssel praktisch nicht von dem öffentlichen Schlüssel abgeleitet werden. Sender (wie zum Beispiel die Anwendung
160 ), die Daten an die Datenbank senden, verschlüsseln die Daten mit einer Verschlüsselungs-Chiffre, die den öffentlichen Schlüssel als Eingabe akzeptiert, und anschließend können die verschlüsselten Daten, die ausgegeben werden, nur über eine Entschlüsselungs-Chiffre entschlüsselt werden, die den entsprechenden privaten Schlüssel und die verschlüsselten Daten als Eingabe verwendet. - Die beispielhaften Spalten-Charakterisierungsdaten
242 weisen eine beliebige Anzahl von Einträgen auf, einen Eintrag für jede Spalte in jeder Tabelle der Datenbank220 . In dem Beispiel von3 weisen die Spalten-Charakterisierungsdaten242 die Einträge340 ,342 und344 auf. Jeder Eintrag340 ,342 und344 weist ein beispielhaftes Spaltenkennungs-Feld350 , ein Charakterisierungsdaten-Feld352 und ein Charakterisierung-aktiviert-Feld354 auf. Der Inhalt des Spaltenkennungs-Feldes350 in jedem Eintrag kennzeichnet eindeutig eine Spalte in der Tabelle235 . - In einer Ausführungsform weist der Inhalt des Charakterisierungsdaten-Felds
352 die eindeutigen gültigen Zeichen auf, die in der Spalte vorhanden sind, welche von dem Spaltenkennungs-Feld350 in demselben Eintrag gekennzeichnet wird. Die Zeichen in den Charakterisierungsdaten352 sind eindeutig, ja jedes Zeichen in einem Eintrag in den Charakterisierungsdaten352 nur einmal vorhanden ist, selbst wenn dieses Zeichen in der Spalte, die von der Spaltenkennung350 in demselben Eintrag gekennzeichnet wird, doppelt auftritt. Das Zeichen ”9” ist beispielsweise in den Charakterisierungsdaten352 des Eintrags342 nur einmal vorhanden, obgleich es in der Spalte y.address330 fünf Mal (zweimal in der Zeile 1 und dreimal in der Zeile 2) vorhanden ist. Die Zeichen in den Charakterisierungsdaten352 kommen nicht unbedingt in der gleichen Reihenfolge vor wie die Zeichen in der Spalte, die von dem Spaltenkennungs-Feld350 in demselben Eintrag gekennzeichnet wird. In einer Ausführungsform weisen die Charakterisierungsdaten352 einen Bereich (z. B. den Eintrag344 ), der alle Zeichen in der Spalte umfasst, die von der Spaltenkennung350 in demselben Eintrag gekennzeichnet wird, für alle Zeichen in allen Zeilen der Spalte auf. Der Bereich weist einen niedrigsten oder kleinsten Bereichsanfangswert und einen höchsten oder größten Bereichsendwert auf, und der gesamte gültige Inhalt der Spalte (die von der Spaltenkennung350 in demselben Eintrag gekennzeichnet wird) der Zeilen liegt innerhalb dieses Bereichs. In einer Ausführungsform werden die Charakterisierungsdaten352 in einem verschlüsselten Format gespeichert. In einer Ausführungsform werden die Charakterisierungsdaten352 als Bitmap realisiert. - Das Charakterisierung-aktiviert-Feld
354 zeigt an, ob die Charakterisierung für die Spalte, die von dem Spaltenkennungs-Feld350 in demselben Eintrag gekennzeichnet wird, aktiviert ist. Wenn das Charakterisierung-aktiviert-Feld354 in einem Eintrag anzeigt, dass die Charakterisierung aktiviert ist, erzeugt das DBMS150 als Reaktion auf Werte, die in der Spalte, welche von dem Spaltenkennungs-Feld350 in demselben Eintrag gekennzeichnet wird, hinzugefügt oder aktualisiert werden, einen Inhalt oder fügt dem Charakterisierungsdaten-Feld352 einen Inhalt hinzu. Wenn das Charakterisierung-aktiviert-Feld354 in einem Eintrag anzeigt, dass die Charakterisierung nicht aktiviert ist, erzeugt das DBMS150 als Reaktion auf Werte, die in der Spalte, welche von dem Spaltenkennungs-Feld350 in demselben Eintrag gekennzeichnet wird, hinzugefügt oder aktualisiert werden, keinen Inhalt oder fügt dem Charakterisierungsdaten-Feld352 auch keinen Inhalt hinzu. In einer Ausführungsform initialisiert das DBMS150 als Reaktion auf die Erzeugung eines jeden Eintrags in den Spalten-Charakterisierungsdaten242 das Charakterisierung-aktiviert-Feld354 , um anzuzeigen, dass die Charakterisierung aktiviert ist. -
4 zeigt ein Flussdiagramm einer beispielhaften Verarbeitung für Einfüge- und Aktualisierungsbefehle gemäß einer Ausführungsform der Erfindung. Die Steuerung beginnt am Block400 . Die Steuerung schaltet dann zum Block405 , an dem das DBMS150 von der Anwendung160 einen Einfüge- oder Aktualisierungsbefehl154 empfängt, der eine angegebene Tabelle, eine angegebene Spalte und einen Datenwert angibt, dessen Einfügen in eine neue Zeile in der angegebenen Tabelle der Einfüge- oder Aktualisierungsbefehl154 anfordert beziehungsweise dessen Speicherung in einer vorhandenen angegebenen Zeile in der angegebenen Tabelle der Befehl anfordert. Der Einfüge- oder Aktualisierungsbefehl154 weist optional einen kryptographischen Schlüssel und die Angabe der vorhandenen Zeile auf. - Die Steuerung schaltet dann zum Block
410 , an dem das DBMS150 als Reaktion auf den Empfang des Einfüge- oder Aktualisierungsbefehls154 oder als Folge des Empfangs des Einfüge- oder Aktualisierungsbefehls154 feststellt, ob der empfangene Einfüge- oder Aktualisierungsbefehl154 einen kryptographischen Schlüssel angibt. Wenn die Feststellung am Block410 wahr (”true”) ist, gibt der empfangene Einfüge- oder Aktualisierungsbefehl154 einen kryptographischen Schlüssel an, so dass die Steuerung zum Block415 schaltet, an dem das DBMS150 als Reaktion auf den Empfang des Einfüge-/Aktualisierungsbefehls154 oder als Folge des Empfangs des Einfüge-/Aktualisierungsbefehls154 und der Feststellung, dass der kryptographische Schlüssel angegeben ist, feststellt, ob die Charakterisierung für die von dem empfangenen Einfüge- oder Aktualisierungsbefehl154 gekennzeichnete Spalte aktiviert ist. In einer Ausführungsform trifft das DBMS150 die Feststellung vom Block415 , indem es einen Eintrag in den Spalten-Charakterisierungsdaten242 mit einer Spaltenkennung350 findet, die mit der Spaltenkennung übereinstimmt, welche von dem empfangenen Einfüge-/Aktualisierungsbefehl154 angegeben wird, und indem es feststellt, ob das Charakterisierung-aktiviert-Feld354 in demselben Eintrag anzeigt, ob die Charakterisierung aktiviert ist. - Wenn die Feststellung am Block
415 wahr ist, ist die Charakterisierung für die Spalte, die von dem empfangenen Einfüge- oder Aktualisierungsbefehl154 angegeben wird, aktiviert, so dass die Steuerung zum Block420 schaltet, an dem das DBMS150 Charakterisierungsdaten für den empfangenen Datenwert erzeugt, der einen gültigen Inhalt des empfangenen Datenwerts angibt, die Charakterisierungsdaten mit Hilfe des kryptographischen Schlüssels verschlüsselt und die verschlüsselten Charakterisierungsdaten zu dem Charakterisierungsdaten-Feld352 des Eintrags hinzufügt, dessen Spaltenkennungs-Feld350 mit der angegebenen Spalte übereinstimmt. Indem man mehrere Charakterisierungsdaten für mehrere empfangene Datenwerte für verschiedene Zeilen in der Spalte erzeugt, die von mehreren Einfüge-/Aktualisierungsbefehlen154 angegeben wird, und indem man die erzeugten Charakterisierungsdaten wiederholt zu den Charakterisierungsdaten352 für jede Zeile in der Spalte hinzufügt oder die vorhandenen Charakterisierungsdaten352 mittels der neu erzeugten Charakterisierungsdaten für den aktuellen empfangenen Befehl154 ändert, erzeugt das DBMS150 so Charakterisierungsdaten352 , die die gültigen Zeichen für alle Zeilen in der Spalte beschreiben oder wiedergeben. - In einer Ausführungsform erzeugt das DBMS
150 die Charakterisierungsdaten, die den gültigen Inhalt der Spalte angeben, indem es alle Zeichen von dem Datenwert, die noch nicht in den Charakterisierungsdaten vorhanden sind, zu den Charakterisierungsdaten hinzufügt und es unterlässt, alle Zeichen von dem Datenwert, die in den Charakterisierungsdaten für die Spalte bereits vorhanden sind, hinzuzufügen. In einer Ausführungsform weisen die Charakterisierungsdaten352 in einem Eintrag der Spalten-Charakterisierungsdaten242 ein einmaliges Auftreten eines jeden Zeichens, das in den Zeilen der Spalte vorhanden ist, welche von der Spaltenkennung350 gekennzeichnet wird, in demselben Eintrag der Spalten-Charakterisierungsdaten242 auf. - In einer Ausführungsform erzeugt das DBMS
150 die Charakterisierungsdaten, die den gültigen Inhalt der Spalte angeben, indem es einen Bereich in den Charakterisierungsdaten speichert, der alle Zeichen in dem empfangenen Datenwert und alle Zeichen in allen Zeilen der Spalte umfasst. Der Bereich weist einen niedrigsten oder kleinsten Bereichsanfangswert und einen höchsten oder größten Bereichsendwert auf, und der gesamte gültige Inhalt der Spalte der Zeilen liegt innerhalb dieses Bereichs. - In einer Ausführungsform erzeugt das DBMS
150 die Charakterisierungsdaten, indem es eine Bitmap, einen Hash, Hash-Werte, Hash-Codes, eine Hash-Summe oder eine Prüfsumme des Datenwerts erzeugt, der von dem Einfüge-/Aktualisierungsbefehl154 angegeben wird, und den Hash zu den Charakterisierungsdaten352 hinzufügt. In verschiedenen Ausführungsformen erzeugt das DBMS150 die Charakterisierungsdaten aus allen Datenwerten, die von allen Befehlen empfangen werden, oder indem es Datenwerte aus einem Befehlsmuster abtastet. In einer Ausführungsform tastet das DBMS150 mehr Daten von Befehlen ab, die eine größere Datenmenge angeben, und es tastet weniger Daten von Befehlen ab, die eine kleinere Datenmenge angeben. - Die Steuerung schaltet dann zum Block
425 , an dem das DBMS150 den Datenwert mit Hilfe des kryptographischen Schlüssels verschlüsselt und den verschlüsselten Wert in eine Zeile der Spalte in der Datenbank, die von dem Einfüge-/Aktualisierungsbefehl154 angegeben wird, einfügt oder den verschlüsselten Wert aktualisiert. - Daraufhin schaltet die Steuerung zum Block
430 , an dem das DBMS150 feststellt, ob mehr als ein Schwellwert-Prozentsatz aller möglichen Zeichen in den Charakterisierungsdaten352 für die Spalte vorhanden sind oder ob das DBMS150 in letzter Zeit mehr als eine Schwellwertzahl von Einfüge-/Aktualisierungsbefehlen (innerhalb eines Schwellwert-Zeitraums) von der Anwendung160 empfangen hat, welche den Einfüge-/Aktualisierungsbefehl154 gesendet hat. - Wenn die Feststellung am Block
430 wahr ist, ist mehr als ein Schwellwert-Prozentsatz aller möglichen Zeichen in den Charakterisierungsdaten352 für die Spalte vorhanden oder von dem DBMS150 wurde in letzter Zeit mehr als eine Schwellwertzahl von Einfüge-/Aktualisierungsbefehlen154 von der Anwendung160 , die den Einfüge-/Aktualisierungsbefehl154 gesendet hat, empfangen (innerhalb eines Schwellwert-Zeitraums), so dass die Steuerung zum Block435 schaltet, an dem das DBMS150 die Charakterisierung für die Spalte deaktiviert, indem es das Charakterisierung-aktiviert-Feld354 in dem Eintrag mit einem Spaltenkennungs-Feld350 setzt, das mit der Spalte übereinstimmt, welche von dem Einfüge-/Aktualisierungsbefehl154 angegeben wurde, um anzuzeigen, dass die Charakterisierung nicht aktiviert ist oder nicht angehalten wurde. Die Steuerung schaltet dann zum Block499 , an dem die Logik von4 zurückkehrt. - Wenn die Feststellung am Block
430 falsch ist, ist ein Prozentsatz aller möglichen Zeichen, der geringer oder gleich einem Schwellwert-Prozentsatz ist, in den Charakterisierungsdaten352 für die Spalte vorhanden und von dem DBMS150 wurde in letzter Zeit eine Anzahl von Einfüge-/Aktualisierungsbefehlen154 , die geringer oder gleich einer Schwellwertzahl ist, von der Anwendung160 empfangen (innerhalb eines Schwellwert-Zeitraums), die den Einfüge-/Aktualisierungsbefehl154 gesendet hat, so dass die Steuerung zum Block499 schaltet, an dem die Logik des Blocks499 zurückkehrt, ohne die Charakterisierung für die Spalte zu deaktivieren. - Wenn die Feststellung am Block
415 falsch ist, ist die Charakterisierung für die von dem empfangenen Einfüge-/Aktualisierungsbefehl154 angegebene Spalte nicht aktiviert oder wurde nicht angehalten, so dass die Steuerung zum Block440 schaltet, an dem das DBMS150 den empfangenen Datenwert mit Hilfe des kryptographischen Schlüssels verschlüsselt und den verschlüsselten Datenwert in eine(r) Zeile in der Spalte, die von dem empfangenen Einfüge-/Aktualisierungsbefehl154 angegeben wird, einfügt/den verschlüsselten Datenwert aktualisiert, ohne Charakterisierungsdaten zu erzeugen. Die Steuerung schaltet dann zum Block499 , an dem die Logik von4 zurückkehrt. - Wenn die Feststellung am Block
410 falsch ist, gibt der empfangene Befehl keinen kryptographischen Schlüssel an, so dass die Steuerung zum Block445 schaltet, an dem das DBMS150 den Datenwert in eine(r) Zeile in der angegebenen Spalte in der angegebenen Tabelle in der Datenbank einfügt oder den Datenwert aktualisiert, ohne Charakterisierungsdaten zu erzeugen. Die Steuerung schaltet dann zum Block499 , an dem die Logik von4 zurückkehrt. -
5 zeigt ein Flussdiagramm einer beispielhaften Verarbeitung für eine Abfrage gemäß einer Ausführungsform der Erfindung. Die Steuerung beginnt am Block500 . Die Steuerung schaltet dann zum Block505 , an dem das DBMS150 (von der Anwendung160 ) einen Abfragebefehl158 empfängt, der eine bestimmte Tabelle, eine bestimmte Spalte, ein bestimmtes Kriterium und optional einen bestimmten kryptographischen Schlüssel angibt. - Die Steuerung schaltet dann zum Block
510 , an dem das DBMS150 feststellt, ob die empfangene Abfrage einen kryptographischen Schlüssel angibt. Wenn die Feststellung am Block510 wahr ist, gibt die empfangene Abfrage einen kryptographischen Schlüssel an, so dass die Steuerung zum Block515 schaltet, an dem das DBMS150 alle Zeilen der Spalte mit Hilfe des von der Abfrage angegebenen kryptographischen Schlüssels in einen entschlüsselten Datenwert entschlüsselt. In verschiedenen Ausführungsformen kann der empfangene kryptographische Schlüssel mit dem kryptographischen Schlüssel, mit dem das DBMS150 Daten in der angegebenen Spalte verschlüsselt hat, übereinstimmen oder von diesem abweichen. Die Steuerung schaltet dann zum Block520 , an dem das DBMS150 feststellt, ob die Charakterisierung für die von dem Abfragebefehl angegebene Spalte aktiviert ist, indem es das Charakterisierung-aktiviert-Feld354 von dem Eintrag mit einer Spaltenkennung350 , die mit der angegebenen Spalte übereinstimmt, liest. - Wenn die Feststellung am Block
520 wahr ist, ist die Charakterisierung für die von dem Abfragebefehl158 angegebene Spalte aktiviert, so dass die Steuerung zum Block525 schaltet, an dem das DBMS150 feststellt, ob der entschlüsselte Datenwert den Charakterisierungsdaten352 entspricht (z. B., ob alle Zeichen in dem entschlüsselten Datenwert in den Charakterisierungsdaten352 vorhanden sind oder innerhalb des Bereichs der gültigen Zeichen liegen oder von diesem abgedeckt werden, der von den Charakterisierungsdaten352 für die Spalte angegeben wird). - Wenn die Feststellung am Block
525 wahr ist, entspricht der entschlüsselte Datenwert den Charakterisierungsdaten352 (z. B. alle Zeichen in dem entschlüsselten Datenwert sind in den Charakterisierungsdaten352 vorhanden oder befinden sich innerhalb des Bereichs der gültigen Zeichen, die von den Charakterisierungsdaten352 für die Spalte angegeben werden, oder werden von diesem Bereich abgedeckt), so dass die Steuerung zum Block530 schaltet, an dem das DBMS150 einen Ergebnissatz152 , der Daten von den Zeilen der Spalten der Datenbank220 aufweist, welche die von dem Abfragebefehl158 angegebenen Kriterien erfüllen, erzeugt und im Speicher102 ablegt und den Ergebnissatz152 an die Anwendung160 sendet, die den Abfragebefehl158 gesendet hat. Das DBMS150 erzeugt den Ergebnissatz152 , indem es alle Zeilen in den Datenbanktabellen235 findet, die die von der Abfrage158 angegebenen Kriterien erfüllen, und diese Zeilen in dem Ergebnissatz152 im Speicher102 speichert. Die Steuerung schaltet dann zum Block599 , an dem die Logik von5 zurückkehrt. - Wenn die Feststellung am Block
525 falsch ist, genügt oder entspricht der entschlüsselte Datenwert nicht den Charakterisierungsdaten352 (z. B. mindestens eines der Zeichen in dem entschlüsselten Datenwert ist in den Charakterisierungsdaten352 nicht vorhanden oder befindet sich außerhalb des Bereichs der gültigen Zeichen, die von den Charakterisierungsdaten352 für die Spalte angegeben werden, oder werden von diesem Bereich nicht abgedeckt), so dass die Steuerung zum Block535 schaltet, an dem das DBMS150 eine Aktion mit einem ungültigen kryptographischen Schlüssel durchführt. In verschiedenen Ausführungsformen weist die Aktion mit dem ungültigen kryptographischen Schlüssel das Unterlassen der Speicherung der entschlüsselten Daten in dem Ergebnissatz152 , das Verzögern einer Antwort auf einen nächsten Befehl von dem Anwendungsprogramm160 , das den ersten Befehl gesendet hat, das Speichern von Informationen, die das Anwendungsprogramm160 beschreiben, das den ersten Befehl gesendet hat, das Anhalten der Ausführung des Anwendungsprogramms160 , das den ersten Befehl gesendet hat, das Schließen einer Verbindung zu dem Anwendungsprogramm160 , das den ersten Befehl gesendet hat, das Benachrichtigen eines Administrators, dass die entschlüsselten Daten nicht dem gültigen Inhalt entsprechen, der von den Charakterisierungsdaten352 angegeben wird, das Zurückliefern von Null oder anderen ungültigen Daten an das Anwendungsprogramm160 , das Erhöhen der Verzögerung, mit der auf den Befehl reagiert wird, bei jedem Befehl, bei dem der entschlüsselte Datenwert nicht den Charakterisierungsdaten352 entspricht, das Speichern der Daten in einem Protokoll, das den Benutzer, das Anwendungsprogramm160 , die Netzwerkadresse des Anwendungsprogramms160 , den Abfragebefehl158 und/oder den Stapelspeicher des Anwendungsprogramms160 ausweist, und/oder das Aufrufen eines Exitprogramms, das von einem Entwickler oder Administrator des DBMS150 bereitgestellt wird, auf. Folglich erkennt das DBMS150 in einer Ausführungsform die Übergabe von ungültigen kryptographischen Schlüsseln und ergreift als Reaktion darauf eine geeignete Maßnahme. In verschiedenen Ausführungsformen können ungültige kryptographische Schlüssel von unbefugten Benutzern herrühren, die versucht haben, auf die vertraulichen Daten von anderen zuzugreifen, oder sie können von einer nicht ordnungsgemäß konfigurierten Umgebung herrühren. Die Steuerung schaltet dann zum Block599 , an dem die Logik von5 zurückkehrt. - Wenn die Feststellung am Block
520 falsch ist, ist die Charakterisierung für die Spalte nicht aktiviert oder wurde nicht angehalten, so dass die Steuerung zum Block530 schaltet, wie vorstehend bereits beschrieben wurde. Die Steuerung schaltet dann zum Block599 , an dem die Logik von5 zurückkehrt. - Wenn die Feststellung am Block
510 falsch ist, gibt die Abfrage keinen kryptographischen Schlüssel an, so dass die Steuerung zum Block530 schaltet, wie vorstehend bereits beschrieben wurde. - Die hier verwendete Terminologie dient lediglich dazu, bestimmte Ausführungsformen zu beschreiben und ist nicht als Einschränkung der Erfindung zu verstehen. Die Singular-Formen ”ein”, ”eine” und ”der”, ”die”, ”das” sollen in der hier verwendeten Weise auch die Plural-Formen einschließen, sofern der Kontext nicht eindeutig etwas anderes angibt. Des Weiteren versteht es sich, dass die Begriffe ”aufweist” und/oder ”aufweisend”, wenn sie in dieser Beschreibung verwendet werden, das Vorhandensein der angegebenen Merkmale, ganzen Zahlen, Schritte, Operationen, Elemente und/oder Komponenten bezeichnen, das Vorhandensein oder das Hinzufügen von einem oder mehreren anderen/weiteren Merkmalen, ganzen Zahlen, Schritten, Operationen, Elementen, Komponenten und/oder Gruppen der Vorgenannten jedoch nicht ausschließen. In der vorhergehenden ausführlichen Beschreibung von beispielhaften Ausführungsformen der Erfindung wurde Bezug auf die beigefügten Zeichnungen genommen (in denen gleiche Bezugszahlen gleiche Elemente darstellen), die Bestandteil hiervon sind und in denen bestimmte beispielhafte Ausführungsformen, in denen die Erfindung in die Praxis umgesetzt werden kann, abgebildet sind. Diese Ausführungsformen wurden ausführlich genug beschrieben, um es einem Fachmann zu ermöglichen, die Erfindung in die Praxis umzusetzen, doch können andere Ausführungsformen verwendet werden und logische, mechanische, elektrische und andere Änderungen können vorgenommen werden, ohne vom Umfang der vorliegenden Erfindung abzuweichen. In der vorhergehenden Beschreibung wurden zahlreiche ganz bestimmte Einzelheiten aufgezeigt, um ein tiefgreifendes Verständnis von Ausführungsformen der Erfindung zu ermöglichen. Ausführungsformen der Erfindung können jedoch auch ohne diese ganz bestimmten Einzelheiten in die Praxis umgesetzt werden. In anderen Fällen wurden bekannte Schaltungen, Strukturen und Techniken nicht ausführlich gezeigt, um bei Ausführungsformen der Erfindung keine Unklarheit aufkommen zu lassen.
- Verschiedene Instanzen des Wortes ”Ausführungsform”, wie sie in dieser Beschreibung verwendet werden, beziehen sich nicht unbedingt auf dieselbe Ausführungsform, können sich aber auf dieselbe Ausführungsform beziehen. Alle Daten und Datenstrukturen, die hier veranschaulicht oder beschrieben werden, haben lediglich Beispielcharakter und in anderen Ausführungsformen können andere Datenmengen, andere Arten von Daten, andere Felder, eine andere Anzahl und andere Arten von Feldern, andere Feldnamen, eine andere Anzahl und andere Arten von Zeilen, Datensätzen, Einträgen oder Organisationen der Daten verwendet werden. Überdies können alle Daten mit Logik kombiniert werden, so dass keine gesonderte Datenstruktur notwendig ist. Die vorhergehende ausführliche Beschreibung ist daher nicht als Einschränkung zu verstehen.
Claims (15)
- Verfahren, aufweisend: als Reaktion auf einen Empfang eines ersten Befehls, der erste Daten angibt, eines ersten kryptographischen Schlüssels und einer Spaltenkennung, die eine Spalte mit Zeilen in einer Datenbank kennzeichnet, Verschlüsseln der ersten Daten mit Hilfe des ersten kryptographischen Schlüssels in verschlüsselte Daten und Speichern der verschlüsselten Daten in einer ersten Zeile in der Spalte in der Datenbank; als Reaktion auf den Empfang des ersten Befehls, Erzeugen von Charakterisierungsdaten, die den gültigen Inhalt der Spalte mit den Zeilen angeben; als Reaktion auf einen Empfang eines Abfragebefehls, der einen zweiten kryptographischen Schlüssel und die Spalte angibt, Entschlüsseln der Spalte mit Hilfe des zweiten Schlüssels, um entschlüsselte Daten zu erzeugen; und wenn die entschlüsselten Daten dem von den Charakterisierungsdaten angegebenen gültigen Inhalt nicht entsprechen, Durchführen einer Aktion mit einem ungültigen kryptographischen Schlüssel.
- Verfahren nach Anspruch 1, wobei das Erzeugen der Charakterisierungsdaten des Weiteren aufweist: Hinzufügen aller Zeichen von den ersten Daten, die noch nicht in den Charakterisierungsdaten vorhanden sind, zu den Charakterisierungsdaten und Unterlassen des Hinzufügens aller Zeichen von den ersten Daten, die bereits in den Charakterisierungsdaten vorhanden sind, wobei die Charakterisierungsdaten ein einmaliges Auftreten eines jeden Zeichens aufweisen, das in der Spalte mit den Zeilen vorhanden ist.
- Verfahren nach Anspruch 2, das des Weiteren aufweist: wenn mehr als ein Schwellwert-Prozentsatz aller möglichen Zeichen in den Charakterisierungsdaten vorhanden ist, Deaktivieren des Hinzufügens aller Zeichen von den ersten Daten, die noch nicht in den Charakterisierungsdaten vorhanden sind, zu den Charakterisierungsdaten.
- Verfahren nach Anspruch 1, wobei das Erzeugen der Charakterisierungsdaten des Weiteren aufweist: Erzeugen eines Bereichs, wobei der gesamte gültige Inhalt der Spalte mit den Zeilen innerhalb des Bereichs liegt.
- Verfahren nach Anspruch 1, wobei das Erzeugen der Charakterisierungsdaten des Weiteren aufweist: Erzeugen eines Hashs der ersten Daten.
- Verfahren nach Anspruch 1, wobei das Erzeugen der Charakterisierungsdaten des Weiteren aufweist: Verschlüsseln der Charakterisierungsdaten.
- Verfahren nach Anspruch 1, das des Weiteren aufweist: wenn mehr als eine Schwellwertzahl von Einfügebefehlen innerhalb eines Schwellwert-Zeitraums empfangen worden ist, Deaktivieren des Erzeugens der Charakterisierungsdaten.
- Verfahren nach Anspruch 1, das des Weiteren aufweist: wenn die entschlüsselten Daten dem gültigen Inhalt entsprechen, der von den Charakterisierungsdaten angegeben wird, Speichern der entschlüsselten Daten in einem Ergebnissatz.
- Verfahren nach Anspruch 1, wobei die Aktion mit dem ungültigen kryptographischen Schlüssel aus einer Gruppe ausgewählt wird, die besteht aus: Unterlassen der Speicherung der entschlüsselten Daten in einem Ergebnissatz, Verzögern einer Antwort auf einen nächsten Befehl von einem Programm, das den ersten Befehl gesendet hat, Speichern von Informationen, die das Programm beschreiben, das den ersten Befehl gesendet hat, Anhalten der Ausführung des Programms, das den ersten Befehl gesendet hat, Schließen einer Verbindung zu dem Programm, das den ersten Befehl gesendet hat, und Benachrichtigen eines Administrators, dass die entschlüsselten Daten nicht dem gültigen Inhalt entsprechen, der von den Charakterisierungsdaten angegeben wird.
- Computersystem, aufweisend: einen Prozessor; und Hauptspeicher, der kommunikativ mit dem Prozessor verbunden ist, wobei der Speicher mit Befehlen codiert wird, wobei die Befehle, wenn sie von dem Prozessor ausgeführt werden, aufweisen: als Reaktion auf einen Empfang eines ersten Befehls, der erste Daten angibt, eines ersten kryptographischen Schlüssels und einer Spaltenkennung, die eine Spalte mit Zeilen in einer Datenbank kennzeichnet, Verschlüsseln der ersten Daten mit Hilfe des ersten kryptographischen Schlüssels in verschlüsselte Daten und Speichern der verschlüsselten Daten in einer ersten Zeile in der Spalte in der Datenbank, als Reaktion auf den Empfang des ersten Befehls, Erzeugen von Charakterisierungsdaten, die den gültigen Inhalt der Spalte mit den Zeilen angeben, wobei die Charakterisierungsdaten verschlüsselt werden, als Reaktion auf einen Empfang eines Abfragebefehls, der einen zweiten kryptographischen Schlüssel und die Spalte angibt, Entschlüsseln der Spalte mit Hilfe des zweiten Schlüssels, um entschlüsselte Daten zu erzeugen, wenn die entschlüsselten Daten dem von den Charakterisierungsdaten angegebenen gültigen Inhalt nicht entsprechen, Durchführen einer Aktion mit einem ungültigen kryptographischen Schlüssel, wenn die entschlüsselten Daten dem von den Charakterisierungsdaten angegebenen gültigen Inhalt entsprechen, Speichern der entschlüsselten Daten in einem Ergebnissatz und wenn mehr als eine Schwellwertzahl von Einfügebefehlen innerhalb eines Schwellwert-Zeitraums empfangen worden ist, Deaktivieren des Erzeugens der Charakterisierungsdaten.
- Computersystem nach Anspruch 10, wobei das Erzeugen der Charakterisierungsdaten des Weiteren aufweist: Hinzufügen aller Zeichen von den ersten Daten, die noch nicht in den Charakterisierungsdaten vorhanden sind, zu den Charakterisierungsdaten und Unterlassen des Hinzufügens aller Zeichen von den ersten Daten, die bereits in den Charakterisierungsdaten vorhanden sind, wobei die Charakterisierungsdaten ein einmaliges Auftreten eines jeden Zeichens aufweisen, das in der Spalte mit den Zeilen vorhanden ist.
- Computersystem nach Anspruch 11, wobei die Befehle des Weiteren aufweisen: wenn mehr als ein Schwellwert-Prozentsatz aller möglichen Zeichen in den Charakterisierungsdaten vorhanden ist, Deaktivieren des Hinzufügens aller Zeichen von den ersten Daten, die noch nicht in den Charakterisierungsdaten vorhanden sind, zu den Charakterisierungsdaten.
- Computersystem nach Anspruch 10, wobei das Erzeugen der Charakterisierungsdaten des Weiteren aufweist: Erzeugen eines Bereichs, wobei der gesamte gültige Inhalt der Spalte mit den Zeilen innerhalb des Bereichs liegt.
- Computersystem nach Anspruch 10, wobei die Aktion mit dem ungültigen kryptographischen Schlüssel aus einer Gruppe ausgewählt wird, die besteht aus: Unterlassen der Speicherung der entschlüsselten Daten in einem Ergebnissatz, Verzögern einer Antwort auf einen nächsten Befehl von einem Programm, das den ersten Befehl gesendet hat, Speichern von Informationen, die das Programm beschreiben, das den ersten Befehl gesendet hat, Anhalten der Ausführung des Programms, das den ersten Befehl gesendet hat, Schließen einer Verbindung zu dem Programm, das den ersten Befehl gesendet hat, und Benachrichtigen eines Administrators, dass die entschlüsselten Daten nicht dem gültigen Inhalt entsprechen, der von den Charakterisierungsdaten angegeben wird.
- Computerlesbares Speichermedium, das mit Befehlen codiert wird, wobei die Befehle, wenn sie ausgeführt werden, aufweisen: als Reaktion auf den Empfang eines ersten Befehls, der erste Daten angibt, eines ersten kryptographischen Schlüssels und einer Spaltenkennung, die eine Spalte mit Zeilen in einer Datenbank kennzeichnet, Verschlüsseln der ersten Daten mit Hilfe des ersten kryptographischen Schlüssels in verschlüsselte Daten und Speichern der verschlüsselten Daten in einer ersten Zeile in der Spalte in der Datenbank; als Reaktion auf den Empfang des ersten Befehls, Erzeugen von Charakterisierungsdaten, die den gültigen Inhalt der Spalte mit den Zeilen angeben, wobei die Charakterisierungsdaten verschlüsselt werden; als Reaktion auf den Empfang eines Abfragebefehls, der einen zweiten kryptographischen Schlüssel und die Spalte angibt, Entschlüsseln der Spalte mit Hilfe des zweiten Schlüssels, um entschlüsselte Daten zu erzeugen; wenn die entschlüsselten Daten dem von den Charakterisierungsdaten angegebenen gültigen Inhalt nicht entsprechen, Durchführen einer Aktion mit einem ungültigen kryptographischen Schlüssel; und wenn die entschlüsselten Daten dem von den Charakterisierungsdaten angegebenen gültigen Inhalt entsprechen, Speichern der entschlüsselten Daten in einem Ergebnissatz.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/273,725 US8769302B2 (en) | 2011-10-14 | 2011-10-14 | Encrypting data and characterization data that describes valid contents of a column |
US13/273,725 | 2011-10-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE102012218576A1 true DE102012218576A1 (de) | 2013-04-18 |
DE102012218576B4 DE102012218576B4 (de) | 2021-08-26 |
Family
ID=47225469
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102012218576.3A Active DE102012218576B4 (de) | 2011-10-14 | 2012-10-11 | Verschlüsseln von Daten und Charakterisierungsdaten, die den gültigen Inhalt einer Spalte beschreiben |
Country Status (3)
Country | Link |
---|---|
US (1) | US8769302B2 (de) |
DE (1) | DE102012218576B4 (de) |
GB (1) | GB2495599B (de) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6056850B2 (ja) * | 2012-03-29 | 2017-01-11 | 日本電気株式会社 | 暗号化データベースシステム、クライアント端末、データベースサーバ、データ結合方法、および、プログラム |
WO2013174457A1 (en) * | 2012-05-24 | 2013-11-28 | Nec Europe Ltd. | Method for storing data in a relational database and relational database server |
US9076003B2 (en) * | 2013-08-20 | 2015-07-07 | Janus Technologies, Inc. | Method and apparatus for transparently encrypting and decrypting computer interface data |
US10031904B2 (en) * | 2014-06-30 | 2018-07-24 | International Business Machines Corporation | Database management system based on a spreadsheet concept deployed in an object grid |
CN105450406B (zh) * | 2014-07-25 | 2018-10-02 | 华为技术有限公司 | 数据处理的方法和装置 |
CN106934030B (zh) * | 2016-12-08 | 2019-12-31 | 戴林 | 一种面向数据库加密的密文索引方法和库内加密系统 |
US10540338B2 (en) | 2017-01-30 | 2020-01-21 | Alfresco Software, Inc. | Scalable fine grained access control within a search engine |
US11886431B2 (en) * | 2018-05-22 | 2024-01-30 | Hyland Uk Operations Limited | Real-time analytical queries of a document store |
US11074364B2 (en) * | 2018-12-20 | 2021-07-27 | Microsoft Technology Licensing, Llc | Confidential data security |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7152165B1 (en) * | 1999-07-16 | 2006-12-19 | Intertrust Technologies Corp. | Trusted storage systems and methods |
US7493488B2 (en) | 2003-07-24 | 2009-02-17 | International Business Machines Corporation | Method to disable on/off capacity in demand |
US7751568B2 (en) | 2003-12-31 | 2010-07-06 | International Business Machines Corporation | Method for securely creating an endorsement certificate utilizing signing key pairs |
US8639947B2 (en) * | 2004-06-01 | 2014-01-28 | Ben Gurion University Of The Negev Research And Development Authority | Structure preserving database encryption method and system |
US7409558B2 (en) | 2004-09-02 | 2008-08-05 | International Business Machines Corporation | Low-latency data decryption interface |
US7797342B2 (en) | 2004-09-03 | 2010-09-14 | Sybase, Inc. | Database system providing encrypted column support for applications |
US20060282372A1 (en) * | 2005-06-09 | 2006-12-14 | Endres Timothy G | Method to secure credit card information stored electronically |
EP2039053B1 (de) | 2006-06-30 | 2018-05-23 | Koninklijke Philips N.V. | Verfahren und vorrichtung zur verschlüsselung und entschlüsselung von daten |
US8077059B2 (en) * | 2006-07-21 | 2011-12-13 | Eric John Davies | Database adapter for relational datasets |
US8024579B2 (en) | 2006-12-29 | 2011-09-20 | Lenovo (Singapore) Pte Ltd. | Authenticating suspect data using key tables |
US7870398B2 (en) * | 2007-01-25 | 2011-01-11 | International Business Machines Corporation | Integrity assurance of query result from database service provider |
US20100131752A1 (en) | 2008-11-26 | 2010-05-27 | Ulrich Flegel | Method and system for invalidation of cryptographic shares in computer systems |
-
2011
- 2011-10-14 US US13/273,725 patent/US8769302B2/en not_active Expired - Fee Related
-
2012
- 2012-10-01 GB GB1217507.1A patent/GB2495599B/en active Active
- 2012-10-11 DE DE102012218576.3A patent/DE102012218576B4/de active Active
Also Published As
Publication number | Publication date |
---|---|
US20130097430A1 (en) | 2013-04-18 |
GB2495599B (en) | 2015-06-03 |
US8769302B2 (en) | 2014-07-01 |
DE102012218576B4 (de) | 2021-08-26 |
GB201217507D0 (en) | 2012-11-14 |
GB2495599A (en) | 2013-04-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102012218576B4 (de) | Verschlüsseln von Daten und Charakterisierungsdaten, die den gültigen Inhalt einer Spalte beschreiben | |
DE112018000779T5 (de) | Tokenbereitstellung für Daten | |
DE112018001285B4 (de) | Kryptografische Schlüsselerzeugung mit Anwendung auf Datendeduplizierung | |
DE60112205T2 (de) | Methode und Verfahren zum Schutz von aus einer Datenbank abgerufenen Daten | |
DE202018006529U1 (de) | Gemeinsames Nutzen bzw. Teilen von Daten in einem mandantenfähigen Datenbanksystem | |
DE112012002541B4 (de) | Einer Warteschlangenumgebung für Anforderung/Antwort-Nachrichten zugehörige dynamische Datenschutzrichtlinien | |
EP2409255B1 (de) | Verfahren zur erzeugung von asymmetrischen kryptografischen schlüsselpaaren | |
US20180189511A1 (en) | Method and System for Range Search on Encrypted Data | |
US20080107272A1 (en) | Access Control Over Multicast | |
DE202015104128U1 (de) | Datenzugriffssystem | |
DE112021004937T5 (de) | Sicheres erneutes verschlüsseln von homomorph verschlüsselten daten | |
DE202012013453U1 (de) | Gehostete Speichersperrung | |
DE202012013482U1 (de) | Verteilung von Zugriffsinformationen auf Overlay-Netzwerken | |
DE112021005561T5 (de) | Implementieren einer widerstandsfähigen deterministischen verschlüsselung | |
DE112021000224T5 (de) | Verschlüsselung von message queues | |
DE102011003784B3 (de) | Sichern von Zugriffen auf verteilte Daten in einem unsicheren Datennetz | |
EP3552141B1 (de) | Server-computersystem zur bereitstellung von datensätzen | |
EP3588357B1 (de) | System mit zertifikat-basierter zugriffskontrolle | |
WO2016139371A1 (de) | Verfahren und system zum verwalten von nutzerdaten eines nutzerendgeräts | |
DE112019003808B4 (de) | Zweckspezifische Zugriffssteuerung auf Grundlage einer Datenverschlüsselung | |
WO2015074745A1 (de) | Verfahren, vorrichtungen und system zur online-datensicherung | |
DE102021108961A1 (de) | Verschlüsselungsschlüssel von speichersystemen | |
Vonitsanos et al. | Security and privacy solutions associated with NoSQL data stores | |
EP3105703B1 (de) | Verfahren und system zum sichern von datenbankrelationen vor unberechtigtem zugriff | |
Rahman et al. | A novel privacy preserving search technique for stego data in untrusted cloud |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed | ||
R082 | Change of representative |
Representative=s name: SPIES DANNER & PARTNER PATENTANWAELTE PARTNERS, DE Representative=s name: LIFETECH IP SPIES & BEHRNDT PATENTANWAELTE PAR, DE Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE Representative=s name: LIFETECH IP SPIES DANNER & PARTNER PATENTANWAE, DE |
|
R082 | Change of representative |
Representative=s name: LIFETECH IP SPIES & BEHRNDT PATENTANWAELTE PAR, DE Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE Representative=s name: LIFETECH IP SPIES DANNER & PARTNER PATENTANWAE, DE |
|
R082 | Change of representative |
Representative=s name: LIFETECH IP SPIES & BEHRNDT PATENTANWAELTE PAR, DE Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE |
|
R082 | Change of representative |
Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE |
|
R016 | Response to examination communication | ||
R016 | Response to examination communication | ||
R018 | Grant decision by examination section/examining division | ||
R084 | Declaration of willingness to licence | ||
R020 | Patent grant now final |