State-of-the-Art von Verschlüsselungstechniken für Database-as-a-Service

Größe: px
Ab Seite anzeigen:

Download "State-of-the-Art von Verschlüsselungstechniken für Database-as-a-Service"

Transkript

1 Institut für Wirtschaftsinformatik Prof. Dr. Gottfried Vossen State-of-the-Art von Verschlüsselungstechniken für Database-as-a-Service Bachelor Arbeit Betreuer: Vorgelegt von: Dr. Jens Lechtenbörger Guido Hirth Abgabetermin:

2 - I - Inhaltsverzeichnis 1 Einleitung Grundlagen Database-as-a-Service Definition Vertrauensmodell Anforderungen Kryptographie AES Ein symmetrisches Kryptosystem RSA Ein asymmetrische Kryptosystem Homomorphismen Kryptoanalyse Structured Query Language Verschlüsselungsschemata zur sicheren Abfrage externer Daten Index-Verfahren Hashbasierendes Verfahren B + -Bäume Partitionierende Verfahren Selektive Verschlüsselung Homomorphe Verschlüsselung Kryptographische Hardware Verschlüsselungskonzepte mit Proxy-Unterstützung Abfrage angepasste Verschlüsselung Mehr-Benutzer Szenario Analyse der vorgestellten Verfahren Proof-of-Concept Implementierungen CryptDB TrustedDB Zusammenfassung und Ausblick...50 Literaturverzeichnis...II Verzeichnis von Web-Adressen... IX

3 - 1-1 Einleitung Datenbanksysteme sind ein immer wichtiger werdendes Werkzeug in Organisationen. Ihre Bedeutung wird durch die zunehmende weltweite Vernetzung noch stärker wachsen. Gleichzeitig wird der systematische Einsatz von Datenbanksystemen wegen der zunehmenden Informationsmenge, der steigenden Komplexität der Anwendungen und der erhöhten Leistungsanforderungen immer schwieriger. Viele Organisationen setzten deshalb vermehrt serviceorientierte Architekturen ein bzw. lagern die komplette technische Infrastruktur aus. Sie kaufen sich diese Leistungen bei Dienstleistungsanbietern ein und erwerben eine Databaseas-a-Service, lassen also das Datenbanksystem oder Teilfunktionen davon von einem Dritten extern betreiben. Das Paradigma des Database-as-a-Service geht auf [HIM02] zurück. Die Autoren beschreiben im Jahr 2002 schon wegweisend: The technological aspects of developing database as a service lead to new research challenges. First and foremost is the issue of data privacy. [HIM02, S. 30] Es existieren mittlerweile zahlreiche Forschungsrichtungen zu dem Thema Database-as-a- Service, die beispielsweise die Geschwindigkeit und die Skalierbarkeit betrachten. Ein fundamentales Problem in diesem Kontext ist jedoch vor allem die Sicherheit der Daten. So sollen beispielsweise sensible und geschäftsrelevante Daten bei einem Anbieter hinterlegt werden, ohne vollkommene Sicherheit über die Vertrauenswürdigkeit des Anbieter zu haben. Neben den Datendiebstahl durch Dritte ist auch der unautorisierte Zugriff durch Administratoren der Anbieter (vgl. [7]) ein kritisches Hemmnis. Die Daten müssen also nicht nur vor den üblichen Angriffen durch nicht autorisierte Instanzen geschützt werden, sondern vielmehr auch vor dem Dienstleistungsanbieter selbst. Dies geschieht durch adäquate Sicherheitsmaßnahmen, insbesondere durch den Einsatz von Verschlüsselungstechniken, deren aktueller Stand und Funktionsweisen in dieser Arbeit vorgestellt werden soll. In Kapitel 2 werden für diese Arbeit notwendige Grundlagen erläutert. Dabei wird zunächst das Paradigma Database-as-a-Service erläutert, dann wichtige kryptographische Grundlagen ausgeführt und anschließend die Abfragesprache SQL weiter beleuchtet. In Kapitel 3 und 4 werden unterschiedliche Verschlüsselungsverfahren vorgestellt, wobei Kapitel 4 das Szenario um eine weitere Instanz, den Proxy, erweitert. Im folgenden Kapitel 5 werden die Verfahren analysiert. In Kapitel 6 werden dann zwei Proof-of-Concept Implementierungen präsentiert, die einen Teil der vorgestellten Verschlüsselungsschemata einbetten. Die Arbeit endet mit einem Fazit und Ausblick.

4 - 2-2 Grundlagen 2.1 Database-as-a-Service Definition Das Paradigma des Database-as-a-Service wurde geprägt von [HIM02], die das Prinzip der serviceorientierten Architektur auf Datenbanksysteme übertrugen. Die Ideen des ursprünglichen Application-Service-Provider-Modells (ASP) sind in dem heutigen Begriff des Cloud- Computing aufgegangen. Ein Anwender lagert dabei seine IT bzw. Teile von dieser an einen Dienstleister aus, um so Kosten zu sparen. Er spart dabei insbesondere die Wartungs- und Entwicklungskosten für die Rechenzentren und kann spontan benötigte Ressourcen in der Regel beliebig und dynamisch hinzufügen. Er zahlt dabei nur die im Endeffekt benötigten Ressourcen (Pay-per-Use). Der Anbieter hingegen versucht seinen Gewinn über entsprechende Skaleneffekte zu erzielen. Eine Cloud-Dienstleistung ist dabei folgendermaßen charakterisiert (vgl. [HV10]): Gemeinsame Nutzung physischer Ressourcen Verschiedene Nutzer/Mandanten nutzen die gleichen Ressourcen (Multi-Tenancy). Unverzügliche Anpassbarkeit an den Ressourcenbedarf Der Cloud-Anbieter passt die für den Nutzer aktiven Ressourcen dynamisch entsprechend der Auslastung an. Selbstbedienung nach Bedarf Der Nutzer kann benötigte Ressourcen jederzeit beliebig selbstständig aktivieren. Umfassender Netzwerkzugriff Die Bandbreite des Anbieters muss groß genug sein, um die Dienste sinnvoll nutzen zu können. Messung der Servicenutzung Die tatsächliche Ressourcennutzung muss genau berechnet werden können, dies ist für die nutzungsbezogene Bezahlung nötig. Es existieren zahlreiche verschiedene Dienstleistungen in der Cloud, die unter dem Begriff Anything-as-a-Service (XaaS), gemäß eines passenden Suffixes zusammengefasst werden. Nach der Definition des National Institute of Standards and Technology (NIST) [8] lassen sich die folgenden drei Hauptbegriffe herausstellen:

5 - 3 - Software-as-a-Service (SaaS) Platform-as-a-Service (PaaS) Infrastructure-as-a-Service (IaaS) SaaS-Anbieter stellen Software zur Verfügung, die ein Nutzer sofort und in der Regel über einen Webbrowser benutzen kann. Anbieter von PaaS erlauben es dem Nutzer eigene Software auf einer bereitgestellten Platform ausführen zu können. Im Gegensatz dazu stellen IaaS nur grundlegende Funktionen, wie Back-Ups etc. sowie eigentliche Rechenleistung zur Verfügung, die dann vom Nutzer selber weiter verwaltet werden muss. Das in dieser Arbeit fokussierte Paradigma des Database-as-a-Service kann nicht ausschließlich einer der Kategorien zugeordnet werden, sondern erstreckt sich vielmehr über die verschiedenen Ebenen und lässt sich nur bei konkreten Implementierungen einzeln einordnen. Der Begriff Database-as-a-Service wird in dieser Arbeit als DaaS abgekürzt. In der Literatur wird vielfach auch die Abkürzung DAS verwenden, was jedoch nicht dem sonst in der Cloud-Umgebung üblichem XaaS-Schema entspricht. Auch die Abkürzung DBaaS ist öfter aufzufinden, da das Kurzwort DaaS auch im Bereich der reinen Datenspeicherung für Dataas-a-Service verwendet wird. Die Bezeichnung ODB(S) für outsourced database (system) hat sich nicht durchgesetzt. DaaS ist ein duales Konzept, da es sowohl wirtschaftliche Konzepte sowie technische Konzepte berücksichtigt (vgl. [Lan09]). Aus wirtschaftlicher Sicht erhält der Nutzer eine genaue leistungsbezogene Abrechnung, die Möglichkeit Dienstgütevereinbarungen abzuschließen und die Dienste beliebig und berechenbar zu skalieren. Aus technischer Sicht erhält der Nutzer Datenbankfunktionalitäten. Dies können einzelne Teilfunktionalitäten oder Gesamtkonzepte sein. Es muss insbesondere möglich sein, ein Datenmodell vorgeben zu können und über eine Abfragesprache, meist SQL (vgl. Kapitel 2.4), auf hinterlegte Daten zuzugreifen Vertrauensmodell In dem DaaS-Szenario treten folgende verschiedene Akteure auf: Dateninhaber: Der Dateninhaber ist die Person, die im Besitz der Daten ist, diese zur Nutzung freigibt und evtl. Berechtigungen für die Datenzugriffe bestimmt (Lese-, Schreibrechte).

6 - 4 - Nutzer: Der Nutzer stellt die Abfragen an die Datenbank. 1 Server/Anbieter: Der Anbieter stellt einen Server zur Verfügung, über den er Datenbankfunktionalität anbietet. Der Dateninhaber und die Nutzer sind in diesem Zusammenhang Vertrauenswürdigkeit zu unterstellen, denn sie sind der Auftraggeber und autorisierte Nutznießer. Der Server hingegen ist nicht vollkommen vertrauenswürdig. In dem DaaS Kontext führt er zwar alle Anweisungen des Nutzers und Dateninhabers korrekt aus, indem er die richtigen Tupel entsprechend einer Anfrage zurück gibt ohne diese zu verändern und indem er sich um die ordentliche Speicherung der Daten etc. kümmert. Er gilt jedoch als honest-but-curious. Denkbar ist beispielsweise, dass der Server sensible Daten für persönliche Zwecke sammelt und auswertet, um diese an Dritte weiter zu verkaufen. Dem Server wird also die Ausführung von passiven Attacken vorgeworfen. In Kapitel 4 wird darüber hinaus noch eine weitere Instanz eingeführt, nämlich ein Proxy- Server. Proxy: Ein Proxy-Server vermittelt zwischen dem Nutzer und dem Server. Der Proxy-Server wird entweder auch von einem dritten Dienstleistungsanbieter betrieben oder vom Nutzer selbst, gilt jedoch in beiden Fällen als vertrauenswürdig. Im Unterschied zu einem DaaS-Anbieter kann einem Proxy-Anbieter eher vertraut werden, weil nur sehr kleine Datenmengen geschützt werden müssen, sodass keine umfangreiche Datenbanksystem- Funktionalität angeboten werden muss. Zudem ist dem Anbieter eines Proxys nicht unbedingt bewusst, was auf dem Server ausgeführt wird, wohingegen ein DaaS-Anbieter schon deutlich zweckspezifischer ist (vgl. [DRD11]). Alle anderen Randbedingungen werden hier als sicher unterstellt und nicht weiter betrachtet. Zum Beispiel wird die Verbindung zwischen den unterschiedlichen Akteuren als sicher angesehen (Ende-zu-Ende). Es wird darüber hinausgehend nicht weiter auf das Forschungsfeld des Private Information Retrieval (PIR) eingegangen, das u.a. Abfrageschemata komplett verbirgt. 2 1 Wenn der Begriff Nutzer nicht im Kontext einer Abfrage an eine Datenbank fällt, ist der Nutzer der Vertragspartner für den Anbieter, also auch synonym zu Dateninhaber. 2 Für einen Einstieg sei auf [CKGS98] und [OS07] verwiesen.

7 Anforderungen Trotz der beschriebenen Vorteile durch den Einsatz von DaaS-Konzepten, darf das Augenmerk auf die Datensicherheit nicht verloren gehen (vgl. [WAF11]), insbesondere wenn es sich um geschäftskritische Daten handelt. Ein Nutzer kann zwar davon ausgehen, dass der Anbieter alle Anweisungen korrekt ausführt. Er kann jedoch entweder den Implementierungen von Sicherheitsmaßnahmen seitens des Anbieters nicht vertrauen oder dem Anbieter böswillige Absichten unterstellen. Um einen sicheren Einsatz zu gewährleisten, müssen deshalb folgende Kriterien von der Dienstleistung des Anbieters erfüllt werden (vgl. [KL10]): Vertraulichkeit: Der Anbieter erhält keine Informationen über die Daten. Integrität: Daten müssen in unveränderter Form vorliegen. Jeder nicht autorisierte Zugang zu den Daten wird erkannt. Authentizität: Die Integrität und Herkunft der Daten muss beweisbar sein. Jeder Zugriff auf die Daten wird protokolliert. Verfügbarkeit: Ein berechtigter Nutzer kann zu jeder Zeit auf die Daten zugreifen. Zuverlässigkeit: Die Daten werden zuverlässig gesichert (back-up). Effizienz: Der Zugriff muss in vergleichbarer Zeit wie in herkömmlichen selbst betriebenen Datenbanken erfolgen. Der Schwerpunkt dieser Arbeit liegt auf der Vertraulichkeit der in Kapitel beschriebenen grundlegenden Konzepte, nämlich die verschlüsselte Hinterlegung der Daten und deren Abfrage. Dabei sollen zu jeder Zeit möglichst viele der Berechnungen bzw. Abfragen beim Anbieter bearbeitet werden. Die weiteren Anforderungen sind nicht Bestandteil dieser Arbeit, auch wenn insbesondere die Effizienz stark von dem gewählten Verfahren abhängig ist (vgl. Kapitel 5). 2.2 Kryptographie AES Ein symmetrisches Kryptosystem Die Abkürzung AES steht für Advanced Encryption Standard und ist ein Vertreter der symmetrischen Kryptosysteme. Symmetrische Verschlüsselungen sind dadurch gekennzeichnet, dass beide Teilnehmer den gleichen Schlüssel verwenden. Klartexte besitzen in der Regel

8 - 6 - unterschiedliche Längen, jedoch erwarten Verschlüsselungsverfahren in der Regel feste Eingabegrößen. Klartexte werden deshalb in entsprechende Einheiten (Blöcke oder Zeichen) gruppiert. Man teilt die symmetrischen Verfahren deshalb weiter in Blockchiffren-basierte Verfahren und Stromchiffren (Zeichen für Zeichen) auf (vgl. hier und im Folgenden [Eck09] und [Ert07]). AES ist seit dem Jahr 2000 der direkte Nachfolger des Data Encryption Standard (DES), ist eine symmetrische Blockchiffre mit fester Blocklänge von 128 Bit und hat eine Schlüssel k mit der Länge von wahlweise 128, 192 oder 256 Bit. Jeder Block wird in eine interne Darstellung als Form einer 4x4-Matrix umgewandelt, wobei jeder Eintrag der Matrix 8 Bit groß ist (4 4 8 = 128). Diese Matrix wird als state bezeichnet. Jeder Block wird mehrfach wiederholend (mehrere Runden) mit derselben Abfolge von Funktionen bearbeitet. Für jede Runde wird aus dem symmetrischen Schlüssel ein sogenannter Rundenschlüssel abgeleitet (Schlüsselexpansion), der dann vor und nach jeder Runde über ein exklusives Oder mit dem Block verknüpft wird. Jede Runde kann dann grob folgendermaßen beschrieben werden: Substitution: Jedes Byte aus der Matrix wird mit Hilfe einer Substitutionschiffre ersetzt. Eine solche Chiffre ersetzt jedes Zeichen eines Alphabets in ein dazu entsprechendes Zeichen aus einem anderen Alphabet. Ein Byte kann 2 8 = 256 Ausprägungen annehmen, die dazugehörige Transformationen lassen sich also effizient in einer Look-Up Tabelle speichern, der s.g. S-Box. Permutation: Die Einträge einer Zeile der Matrix werden nach links verschoben. Dabei wird jede Zeile i {0,1,2,3} um i Stellen verschoben. Dieser Vorgang wird als Shift- Row-Transformation bezeichnet. Diffusion: Nach der Zeilentransformation erfolgt nun die Spaltentransformation der Matrix, die s.g. MixColumn-Transformation. Dies erfolgt durch eine Multiplikation der Matrix mit einem Vektor, der Polynome enthält und so die Einträge der Spalten der Matrix in Wechselwirkung treten lässt. Jedes Bit ist somit von dem Schlüssel abhängig, die Substitution ist stark resistent und durch die Transformationen erfolgt eine sehr gute Durchmischung. Für eine AES-Verschlüsselung mit einer Schlüssellänge von 128 Bit werden zum Zeitpunkt dieser Arbeit 16 Runden empfohlen [1]. Da alle Schritte/Transformationen invertierbar sind, erfolgt die Entschlüsselung durch Anwendung der entsprechenden Inversen in umgekehrter Reihenfolge. Die einfachste Art Blockchiffren zu verwenden, besteht darin, die einzelnen Blöcke jeweils für sich nach obigem Schema zu verschlüsseln. Dieser Stil wird electronic codebook (ECB- Modus) genannt, da eine Art Tabelle mit Klartext-Chiffre-Paaren erstellt werden kann. Ein

9 - 7 - Angreifer kann allerdings in bestimmten Szenarien Teile der Chiffre durch Ersetzen von Blöcken manipulieren. Bei einer Banküberweisung mit immer gleichen Sender und Empfänger könnte ein Angreifer beispielsweise den Block mit dem sich nur ändernden Betrag versuchen zu manipulieren. Die einzelnen Blöcke werden deshalb in der Regel vorher miteinander verknüpft, z.b. durch das cipher block chaining (CBC-Modus). Jeder Block wird dabei erst mit dem Chiffretext seines Vorgängers verkettet und dann erst verschlüsselt: c i = Enc k (c i 1 m i ) Die Verschlüsselung des ersten Blocks erfolgt unter einem vereinbarten Startwert c 0, der als Initialisierungsvektor (IV) bezeichnet wird. Es existieren zahlreiche weitere Betriebsmodi für Blockchiffren RSA Ein asymmetrische Kryptosystem Das RSA-Verfahren ist benannt nach seinen Erfindern Rivest, Shamir und Adleman und ist ein Vertreter der asymmetrischen Verfahren. Die zentrale Idee eines asymmetrischen Verfahren ist die Einführung eines Schlüsselpaares für jeden Nutzer. Jedem Nutzer wird ein geheimer Schlüssel sk (Private-Key) und ein öffentlicher pk (Public-Key) zugewiesen, wobei der öffentliche Schlüssel allen anderen Nutzern bekannt ist. Klartexte werden vom Sender mit dem öffentlichen Schlüssel des Empfängers verschlüsselt. Nur dieser kann dann den Chiffretext unter Verwendung seines geheimen Schlüssels entschlüsseln. Ein Nutzer muss also in Abgrenzung zur symmetrischen Verschlüsselung nicht unterschiedliche Schlüssel für jeden anderen Nutzer zur verschlüsselten Kommunikation vorhalten. Asymmetrische Verfahren bestehen in der Regel aus zwei elementaren Teilen: der Schlüsselerzeugung und dem eigentlichen Verschlüsselungsalgorithmus (vgl. hier und im Folgenden [Eck09] und [Ert07]). Schlüsselerzeugung: Der private und öffentliche Schlüssel müssen von einander abhängen. Zur Berechnung der Schlüssel werden sogenannte Einweg-Funktionen verwendet, damit vom öffentlichen Schlüssel keine Rückschlüsse auf den privaten Schlüssel gezogen werden können. Eine Einweg-Funktionen f : X Y ist dadurch gekennzeichnet, dass für alle x X der Funktionswert f (x) effizient berechenbar ist und es umgekehrt kein effizientes Verfahren gibt, dass aus dem Bild y = f (x) das Urbild x berechnen kann. Das RSA-Verfahren benutzt das Faktorisierungsproblem als Einwegfunktion: Die Berechnung einer Multiplikation von zwei sehr großen Primzahlen p und q kann effizient erfolgen, allerdings ist für die Primfaktorzerlegung großer Zahle also des Ergebnisses kein effizientes Verfahren bekannt. Da laufend neue Verfahren entwickelt werden, die solche Zerlegungen für immer größere Zahlen immer schneller erledigen, wird aktuell eine Länge des entstehenden Produkts von > 2048 Bit empfohlen [BBB + 11]. Der Ablauf für die Schlüsselgenerierung kann nun folgendermaßen beschrieben werden:

10 - 8 - Wähle zwei zufällige Werte für p und q mit den oben genannten Eigenschaften und berechne pq = n. Wähle eine natürliche Zahl d [0, n 1], sodass gilt ggt (ϕ(n), d) = 1, wobei ϕ(n) = (p 1)(q 1). Empfohlen wird dabei max(p,q) < d < ϕ(n) 1. Berechne e als Lösung der Gleichung ed mod ϕ(n) = 1. e entspricht also der multiplikative Inverse modulo ϕ(n) zu d. Gib das Zahlenpaar pk = (e,n) als öffentlichen Schlüssel bekannt und halte sk = (d,n) als privaten Schlüssel geheim. Verschlüsselungsalgorithmus: Die Verschlüsselung eines Klartextes m erfolgt durch die Berechnung c = m e i mod n, wobei e i der öffentliche Schlüssel des Empfängers i ist. Der Empfänger kann nun wiederum durch die Berechnung c d i mod n = m den Klartext rekonstruieren. Für einen anderen Nutzer ist die Entschlüsselung des Chiffretextes c nicht möglich aufgrund des Problems des diskreten Logarithmus. Für eine Funktion a x mod n = y ist kein effizientes Verfahren bekannt, das zu gegebenen y mit dem diskreten Logarithmus x = log a y mod n bestimmen kann Homomorphismen Eine homomorphe Verschlüsselung erlaubt es einem Nutzer aus zwei (oder mehreren) Chiffretexten einen neuen Chiffretext zu gewinnen, der dem chiffrierten Ergebnis einer algebraischen Funktion über den Klartexten der Chiffretexte entspricht. Dabei werden weder die Klartextdaten noch die verwendeten Schlüssel sichtbar. Seien (A, g ) und (B, h ) zwei Gruppen, so wird eine Abbildung f : A B Homomorphismus genannt (vgl. [BSMM08]), wenn für alle x,y A gilt: f (x g y) = f (x) h f (y) Für eine additive homomorphe Verschlüsselung (beispielsweise [Pai99]) gilt: Dec( f (Enc(x),Enc(y))) = x + y Eine multiplikative homomorphe Verschlüsselung ist z.b. die RSA Verschlüsselung aus Kapitel

11 - 9 - Eine besondere Familie der homomorphen Verschlüsselungen stellen die vollhomomorphen Verschlüsselungsschemata dar (Fully Homomorphic Encryption FHE). Bei diesen Homomorphismen sind die Operationen nicht auf eine einzelne Funktion (entweder Addition oder Multiplikation) beschränkt, wie dies in Abgrenzung dazu bei den partiellhomomorphen Verschlüsselungen (Somewhat Homomorphic Encryption SHE) der Fall ist. Die vollhomomorphen Verschlüsselungen erlauben vielmehr die Ausführung einer beliebigen Funktion auf die Chiffredaten. Ein homomorphes Verschlüsselungsschema ε besteht aus den vier Algorithmen KeyGen ε, Encrypt ε, Decrypt ε und Evaluate ε. In einem asymmetrischen Verschlüsselungsschema generiert KeyGen ε in Abhängigkeit von λ (wobei λ ein Sicherheitsparameter ist, der die Bit- Länge der Schlüssel angibt) einen privaten Schlüssel sk und einen öffentlichen Schlüssel pk. 3 Dem Evaluate ε Algorithmus ist eine Menge erlaubter Funktionen F ε zugeordnet. Für eine Funktion f F ε und einem Chiffretext c i = Encrypt(pk,m i ) erstellt dieser einen neuen Chiffretext c = Evaluate(p k, f,c 1,...,c t ), sodass gilt: Decrypt(sk,c) = f (m 1,...,m t ). Ziel eines homomorphen Verschlüsselungsschemas in einem DaaS-Szenario ist es, Berechnungen (Evaluate ε ) auszulagern und diese von einem Dritten durchführen zu lassen. Es gelten deshalb folgende Anforderungen: Alle Algorithmen müssen effizient im Sinne einer polynomiellen Laufzeit poly(λ) sein; auch Evaluate ε soll effizient im Sinne einer polynomiellen Laufzeit für den Service- Anbieter sein. Die Entschlüsselung von c i = Encrypt( ) und c = Evaluate( ) muss die gleiche Rechenkapazität benötigen (wird vom Client durchgeführt). Die Chiffretextlänge von c und c i muss identisch sein (compact ciphertexts). c muss also unabhängig von f immer die gleiche Chiffretext-Größe und Entschlüsselungs- Komplexität haben. Die Komplexität von Evaluate ε ist ersichtlicherweise auch abhängig von f. f wird in homomorphen Verschlüsselungen als Schaltkreis dargestellt. Insbesondere Angaben wie a = b? c : d für boolsche Zuweisungen können nicht ausgewertet werden, da die Werte verschlüsselt sind. Man nutzt deshalb die bitweise Binäroperationen, die dann als Schaltkreis dargestellt werden. Das Beispiel würde dann in a = (b AND c) OR ((NOT b) AND d) entsprechend umgeschrieben werden. Die Darstellung der Funk- 3 Es sind auch symmetrische homomorphe Verschlüsselungsschemata möglich.

12 tion als Schaltkreis hat zudem den Vorteil, dass es für eine homomorphe Verschlüsselung ausreicht, die elementaren Funktionen Addition, Subtraktion und Multiplikation zu beherrschen. 4 Für die Berechnung der Komplexität von f wird die Anzahl der Gatter der Schaltkreisfunktion bestimmt. Dabei gilt Evaluate ε als effizient, wenn ein polynomielles g(λ) existiert, sodass die Komplexität in O(S f g(λ)) liegt, wobei S f die Anzahl der AND-, OR- und NOT-Gatter von f entspricht. [RAD78] waren die Ersten, die vollhomomorphe Schemata für die nahe Zukunft voraussagten. Erst [Gen09] stellt allerdings einen Entwurf für eine vollhomomorphe Verschlüsselung vor. Im Folgenden soll ein davon abgeleitetes Schema (vgl. [DGHV10] und [Gen10]), das allerdings nur Berechnungen von ganzen Zahlen ermöglicht, skizzenhaft vorgestellt werden. Zur Vereinfachung wird an dieser Stelle mit einer symmetrischen Variante begonnen. Eine Umwandlung eines symmetrischen in ein asymmetrisches Verfahren und umgekehrt ist nach [Rot11] immer möglich. In Abhängigkeit von dem Sicherheitsparameter λ gilt: N = λ,p = λ 2,Q = λ 5. KeyGen ε (λ): generiert einen zufälligen P-bit langen Schlüssel p, der ungerade ist. Encrypt ε (p,m i ): verschlüsselt ein Bit m i {0,1} mit c i = p q+(2r +m i ), wobei q eine Q-bit lange Zufallszahl und r eine Zufallszahl ist, sodass (2r + m i ) N-bit lang ist. (2r + m i ) wird dabei als Rauschen (noise) bezeichnet, welches nachfolgend näher beschrieben wird. Homomorphe Grundoperationen: Add ε (c 1,c 2 ) c = c 1 +c 2, Sub ε (c 1,c 2 ) c = c 1 c 2, Mul ε (c 1,c 2 ) c = c 1 c 2 Evaluate( f,c 1,..,c t ): wandelt die als Schaltkreis dargestellte Funktion f in eine Funktion f um, indem alle Gatter aus f mit den entsprechenden homomorphen Grundoperationen vertauscht werden. Sie erzeugt dann den Chiffretext c = f (c 1,...,c t ) Decrypt ε (p,c): berechnet das Klartext-Bit m = (c mod p) mod 2. Die Berechnung der Funktion kann vereinfacht werden durch die äquivalente Funktion m = LSB(c) LSB( c/p ), weil p ungerade ist, wobei die Rundung zur nächsten ganzzahligen Zahl darstellt und LSB( ) das niedrigstwertige Bit (least significant bit) ist. Das Rauschen ist also die Differenz zum nächsten Vielfachen von p. Es muss gelten, dass dieses Rauschen kleiner als p ist, da sonst das Ergebnis durch die Verschlüsselung verfälscht wird (c mod p). Bei jeder Operation innerhalb von Evaluate ε erhöht sich das Rauschen allerdings. Im schlimmsten Fall erhöht sich das Rauschen quadratisch durch Anwendung von Mult ε ; bei der Verwendung von Add ε verdoppelt es sich. Operationen sind also nur möglich, 4 AND(x,y) = xy, OR(x,y) = 1 (1 x)(1 y), NOT (x) = 1 x

13 solange das Rauschen kleiner als p/2 ist. Für c 1 c 2 gilt beispielsweise c = (...) p + (2r 1 r 2 + r 1 m 2 + m 1 r 2 ) 2 + m 1 m 2 Mit Decrypt ε (p,c) (c mod p) mod 2 ergibt sich daher m = m 1 m 2 Dieses Verschlüsselungsschema kann bereits Polynome bis zum Grad d mit t Variablen berechnen, für die gilt: 2 N d( t d) < p/2 Dies gilt ungefähr, wenn d < P/(N log(t)). 5 Das Schema wird als sicher angesehen, da es auf dem NP-schweren Problem des approximate gcd (vgl. [Sch85]) basiert, welches nicht in polynomieller Laufzeit gelöst werden kann. Die oben gewählten Parameter N, P und Q stellen dies sicher. Bootstrapping Bei dem bisher vorgestellten Verfahren handelt es sich um ein partiellhomomorphes Verschlüsselungsschema, da das Rauschen nach einiger Zeit zu groß wird. [Gen09] führt deshalb den Begriff und das Verfahren des Bootstrapping ein. Dies wird zunächst im allgemeinen erläutert und anschließend auf das eben vorgestellte Verschlüsselungsschema ε angewandt. Ziel des Bootstrapping ist es, das Rauschen zu reduzieren, um weitere Operationen ausführen zu können. Die einzige Funktion, die das Rauschen vermindert und das aktuelle Ergebnis erhält ist genau eine Decrypt-Funktion. Ein Schema ist also bootstrapable, wenn Decrypt F. Eine Evaluate Methode kann somit auch Decrypt verarbeiten. Das Verschlüsselungsschema ist folglich selbstreferenzierend in dem Sinne, dass es auch die eigenen Funktionen des entsprechenden Verschlüsselungsschemas ausführen kann. Dies ermöglicht es, das Rauschen wieder auf das Anfangsrauschen einer Encrypt ε Funktion zu reduzieren. Die Ent- und Wiederverschlüsselung muss allerdings so geschehen, dass zu keiner Zeit irgendjemand Zugriff auf die Klartextdaten erhält. Für die folgende konzeptionelle Erklärung wird an dieser Stelle ein asymmetrisches Verfahren verwendet. sk i = Encrypt(pk i+1,sk i ) ist der private Schlüssel sk i verschlüsselt unter pk i+1, dabei ist i die entsprechende Ebene der Schaltkreisfunktion, wenn die Gatter topologisch geordnet sind. Die eigentliche Funktion, die das Umverschlüsseln vornimmt, also das Rauschen entfernt, ist: Recrypt(pk i+1,decrypt, sk i,c i ) Diese erstellt zunächst eine weitere Verschlüsselung über das schon bereits verschlüsselte c i : c i = Encrypt(pk i+1,c i ). Recrypt ruft dann in einem zweiten Schritt die Methode Evaluate(pk i+1,decrypt, sk i, c i ) auf. Diese berechnet zunächst den Schlüssel sk i, mit dem c i verschlüsselt ist. Sie benutzt dann diesen Schlüssel dazu, c i in m umzuwandeln. Das geschieht homomorph innerhalb der 5 Die Bitfolge (b n 1,...,b 0 ) wird dabei interpretiert als die Koeffizienten des Polynoms Poly(x) vom Grad n 1: Poly(x) = b n 1 x n b 0 x 0 (Beispiel: x 4 + x 3 + 1) Es handelt sich hier mathematisch um einen Ring der Polynome x über dem Körper (0,1) (vgl. [Kow06]).

14 darüber liegenden Verschlüsselung c i. Die innere Verschlüsselung ist damit aufgehoben, der Klartext nur noch unter der äußeren Schicht verschlüsselt und das Rauschen entfernt. Die Enschlüsselungsfunktion wird also auf der inneren Schicht aufgerufen es wird dabei zu jeder Zeit auf verschlüsselten Daten gearbeitet. Der Chiffretext soll allerdings nicht nur neu umverschlüsselt werden, sondern es sollen vielmehr Operationen darauf ausgeführt werden. Deshalb wird die Decrypt Funktion in soweit zu einem D erweitert, dass diese auch zusätzlich noch eine kleine Berechnung ausführt. So wird die Berechnung sukzessiv über die Schaltkreisfunktion ausgeführt. Das oben vorgestellte Verfahren ist bisher noch nicht bootstrappable, da die Berechnung von Decrypt ε noch zu komplex ist mit m = LSB(c) LSB( c/p ). Die LSB( ) Funktion und der XOR Operator sind trivale Funktionen, allerdings stellt sich die Berechnung von c/p als zu kompliziert dar. Es handelt sich in diesem Fall um die Multiplikation von den Zahlen c und 1/p, die beide P-bit lang sind. Dabei kann das neu erhaltende Polynom bis zu P Grade haben. Wie oben angemerkt, kann das Schema allerdings nur Polynome vom Grade d < P/(N log(t) berechnen. Die Funktion Decrypt ε wird deshalb insoweit geändert, dass sie nicht mehr zwei große Zahlen, sondern nur eine Menge kleiner Zahlen multipliziert und diese dann aufsummiert. Diese Summe entspricht dann dem Ergebnis c/p. Es ergibt sich somit das folgende finale Schema Z, das hier vereinfachend auf die Funktionen des obigen Schemas ε zurückgreift: KeyGen Z (λ): erzeugt über KeyGen ε (λ) die Schlüssel (pk ε,sk ε ). Erzeugt dann eine Menge y = (y 1,...,y β ), wobei y i [0,2), sodass für eine Teilmenge S {1,...,l} gilt: i S y i 1/p mod 2. Erzeuge nun sk Z, wobei dies eine Verschlüsselung von S in Form eines Vektors s {0,1} β ist, und pk Z als das Paar (pk ε, y). Encrypt Z (pk Z,m): extrahiert pk ε und y aus pk Z. Erzeugt dann c i mit Encrypt ε (pk ε,m) und berechnet eine Menge x = (x 1,...,x β ), wobei x k = c i y k, y k y. Die Funktion gibt nun den Chiffretext c als (c i,x) zurück. Evaluate Z : entspricht Evaluate ε. Decrypt Z (sk Z,c): extrahiert S aus sk Z, sowie c i und x aus c. Berechnet nun m = LSB(c) LSB( i s i x i ). Dies gilt, da: i s i x i = i c s i y i = c 1/p mod 2. Hervorzuheben ist, dass in der Encrypt Funktion schon ein Teil der Berechnung von Decrypt vorweggenommen wird und so eine Art Zwei-Phasen-Verschlüsselung entsteht. Das hier beschriebene Schema Z ist nun vollhomomorph: Die Decrypt Z Funktion ist von der Komplexität so gering, sodass die Evaluate Z Methode diese auch verwerten kann (Bootstrapping) und so das Rauschen zu jeder Zeit verringern kann. Das Vorgehen, die Berechnung der Entschlüs-

15 selungsfunktion nach obigen Prinzip zu vereinfachen, wird in der Literatur als Squashing the Decryption Circuit bezeichnet. Das Schema gilt als sicheres Verschlüsselungsschema, obwohl pk Z bereits Hinweise auf sk Z enthält, da die Aufteilung auf dem NP-schweren Untermengensummen-Problem (sparse subset sum) basiert (vgl. [CLRS10]). 2.3 Kryptoanalyse Dieser Abschnitt soll einen Überblick über die Sicherheit von Verschlüsselungsverfahren bieten. Nach dem Kerckhoffschen Prinzip [Ker83] sollte die Stärke eines Verfahrens nur auf der Geheimhaltung des Schlüssels liegen und nicht auf der Geheimhaltung des Algorithmus. Da die Algorithmen deshalb in der Regel von ihren Autoren veröffentlicht werden, ist es das oberste Ziel der Angreifer, hieraus Rückschlüsse auf den verwendeten Schlüssel zu erlangen. Die Sicherheit eines Verschlüsselungsschema lässt sich in der Regel durch zwei Merkmale bestimmen: welche Angriffsszenarien werden durchgeführt und welche Informationen gelangen dabei an den Angreifer (vgl. hier und im Folgenden [BNS10]). Grundsätzlich unterscheidet man folgende Angriffsszenarien: COA - ciphertext only attack: Der Angreifer erhält verschiedene Chiffretexte, die alle mit demselben Schlüssel verschlüsselt sind. KPA - known plaintext attack: Der Angreifer kennt über die verschiedenen Chiffretexte hinaus auch noch eine Menge zugehöriger Klartexte. CPA - chosen plaintext attack: Der Angreifer hat in diesem Szenario die Möglichkeit, einen beliebigen Klartext in einen Chiffretext verschlüsseln zu lassen (dies geschieht durch eine dritte Partei, der Angreifer hat keinen Zugriff auf den Schlüssel). CCA - chosen ciphertext attack: Der Angreifer erhält zu einer von ihm vorgeschlagenen Menge an Chiffretexten die dazugehörigen Klartexte. Die vorgestellten Angriffsszenarien können weiter untergliedert werden in direkte und adaptive Angriffe. Führt der Angreifer seinen Angriff aus, erkennt er erst dann eines der oben beschriebenen Szenarien und agiert entsprechend, dann handelt es sich um einen direkten Angriff. Kennt der Angreifer allerdings schon bereits im Vorhinein die Angriffsmöglichkeit und kann er den Angriff entsprechend anpassen, handelt es sich um einen adaptiven Angriff. Sicher im Sinne der Ununterscheidbarkeit ist ein Schema, wenn ein Angreifer zwei Nachrichten m 1 und m 2 verschlüsseln lässt, er nur einen der beiden Chiffretexte zurückerhält und

16 er durch seinen Angriff keine weiteren Informationen erlangen konnte, die eine Zuordnung von einem der beiden Klartexte zu dem Chiffretext ermöglichen. Dieses Problem ist auch als Ciphertext Indistinguishability (IND) bekannt. Ein Kryptosystem gilt als sicher, wenn es unter einem adaptiven CCA ununterscheidbar ist (IND-CCA); in diesem Szenario darf der Angreifer allerdings nicht den erhaltenden Chiffretext entschlüsseln lassen, sondern nur andere Chiffrate. Die Trefferwahrscheinlichkeit, das richtige m i zu wählen, beträgt dann für einen Algorithmus A des Angreifers: Pr[A(m 0,m 1,c) = m c = Enc k (m), m {m 0,m 1 }] = 0,5 Die Wahrscheinlichkeit, die richtige Wahl nach einem Angriff (a posteriori) zu treffen, ist also genauso so hoch wie vor dem Angriff (a priori). Da eine solche perfekte Sicherheit für einen Datensatz der Länge n allerdings auch einen Schlüssel der Länge n benötigt, ist der Sicherheitsbegriff nicht für die Praxis geeignet. Es wurde deshalb das Konzept der praktischen Sicherheit eingeführt. Ein Verfahren wird als praktisch sicher bezeichnet, wenn der Aufwand zur Durchführung der Kryptoanalyse die Möglichkeiten eines jeden denkbaren Analsysten übersteigt und die erforderlichen Kosten den erwarteten Gewinn bei weitem übertreffen [Eck09, S. 299]. Ein Analysealgorithmus gilt als effizient, wenn er ein Problem in polynomieller Laufzeit berechnen kann. Umgekehrt gilt natürlich, dass ein sicheres Verschlüsselungsverfahren auf einem NP-schweren Problem basieren muss, damit gerade kein entsprechend effizienter Analysealgorithmus existiert. 6 Ein Verfahren, das praktisch sicher ist, sollte zudem folgende Konstruktionsprinzipien verfolgen (vgl. [Eck09]): Partitionierung: Der Schlüsselraum eines Schemas darf nicht partitionierbar sein. Würde sich der Schlüsselraum z.b. bei jedem Analyseschritt halbieren, reduziert sich der Suchaufwand bei n Schlüsseln auf log(n). Diffusion: Jedes Chiffrezeichen sollte von möglichst vielen Klartextzeichen, sowie dem gesamten Schlüssel abhängen, damit die statistischen Besonderheiten des Klartextes ausgeglichen werden. Konfusion: Der Zusammenhang zwischen dem Klartext, dem Schlüssel und dem Chiffretext sollte so komplex wie möglich gehalten werden. Klartextangriffe: Ein Verschlüsselungsschema sollte IND-CCA sicher sein. Zwei Konzepte dienen zur Definition der praktischen Sicherheit: polynomielle Ununterscheidbarkeit und semantische Sicherheit. 6 Aufgrund der Worst-Case Vorgehensweise fällt ein Algorithmus bereits dann in die Klasse NP, wenn seine Berechnung für eine Eingabe einen nicht-polynomiellen Aufwand erfordert. Ist aber der Aufwand für andere Eingaben polynomiell, so kann das zugrunde liegende Verschlüsselungsschema gebrochen werden.

17 Ein Chiffriersystem ist polynomiell ununterscheidbar, wenn ein Angreifer zwei Nachrichten wie oben generiert und deren Chiffrate in polynomieller Zeit nicht unterscheiden kann. Sicher im Sinne einer polynomiellen Ununterscheidbarkeit ist ein Schema, wenn der Angreifer bei der obigen Berechnung eine Wahrscheinlichkeit von 0,5 + ν(λ) erhält, wobei für einen wachsenden Sicherheitsparameter λ (λ entspricht der Länge des Schlüssels) der Ausdruck ν(λ) gegen 0 konvergiert und somit vernachlässigbar ist. Je größer die Schlüssellänge demnach ist, desto näher liegt die Erfolgswahrscheinlichkeit an der Ratewahrscheinlichkeit. Das Konzept der semantischen Sicherheit ähnelt dem der perfekten Sicherheit. Die semantische Sicherheit wird zur Definition der Public-Key Sicherheit verwendet. Ob ein Klartext m eine bestimmte Eigenschaft aufweist, sei durch die Funktion h(m) {0,1} erklärt. Es gilt dann für zwei verschieden Angreifer mit den Algorithmen A und B: Pr[A(λ,c,PK) = h(m)] Pr[B(λ,PK) = h(m)] + ν(λ) Jeder Angreifer A kann also nur unwesentlich bessere Aussagen über den Klartext machen, als ein Angreifer B, der keinen Chiffretext kennt. Die beiden Konzepte stehen in einer engen Beziehung. Ein Public-Key Schema ist polynomiell ununterscheidbar, wenn es semantisch sicher ist (vgl. [MRS88]). Damit ein Verfahren polynomiell sicher ist, muss es die Verschlüsselung durch Hinzufügen von Zufallsrauschen oder die entsprechende Auswahl eines Initialisierungsvektors bei einer Blockchiffre zufällig gestalten. Die Funktionen sind dann probabilistisch und erzeugen entsprechende Verteilungen über die Chiffretexte. Der Informationsgehalt einer Nachricht wird nach [Sha01] durch die so genannte Entropie beschrieben. Der Informationsgehalt und der dazugehörige Entropiewert stehen dabei in einem umgekehrten Verhältnis zueinander. Die Entropie einer Nachricht ist also maximal, wenn die Chiffretext-Werte gleichverteilt sind. Die Entropie beträgt dann H max = log(n). Je mehr eine Quelle von der maximalen Entropie abweicht, desto günstiger stehen die Chancen, dass aus einer Menge von Klartexten derjenigen, welcher am wahrscheinlichsten ist, tatsächlich zum beobachteten Chiffretext passt. Je mehr Informationen über die Chiffre- und Klartexte bekannt sind, desto unsicherer ist ein Verschlüsselungsschema. Ein Beispiel für eine Caesar-Verschlüsselung soll dies verdeutlichen: Ein solches Schema verschiebt ein Alphabet um eine bestimmte Anzahl von Stellen. Der in der deutschen Sprache am häufigsten verwendete Buchstabe ist das E. Angenommen, in dem chiffrierten Text würde der Buchstabe G am häufigsten vorkommen. Das G ist der siebte Buchstabe im Alphabet und E ist der fünfte Buchstabe im Alphabet. Es erscheint also als sehr wahrscheinlich, dass der verwendete Schlüssel 2 ist, also alle Buchstaben um zwei Buchstaben nach rechts verschoben wurden. Generell probiert ein Brute-Force Angreifer alle möglichen Schlüssel nach absteigender Wahrscheinlichkeit nacheinander aus und versucht so, den passenden Schlüssel für das Verfahren zu finden. Bei langen Schlüsseln und einem damit verbundenen großen Suchraum wird das Verfahren allerdings schnell sehr ineffizient. Angreifer bedienen sich deshalb einer Vielzahl anderer Methoden. Bekannte Vertreter sind u.a. die lineare und die differenzielle

18 Kryptoanalyse. Die lineare Kryptoanalyse basiert auf der linearen Annäherung an den wahrscheinlichsten Schlüssel, die differenzielle Analyse untersucht die Auswirkungen von Differenzen in Klartextblöcken auf die Differenzen in den Chiffretextblöcken. Einen Einstieg für verschiedene Kryptoanalyse-Methoden bietet [SL07]. 2.4 Structured Query Language Die Structured Query Language (SQL) ist eine Datenbanksprache zur Definition, Abfrage und Manipulation von Daten in relationalen Datenbanken. SQL ist von ANSI und ISO standardisiert und wird von gängigen Datenbanksystemen unterstützt. Der Sprachumfang von SQL beinhaltet vier Kategorien (vgl. [MKF + 03]): Data Definition Language (DDL) beschreibt, wie Datenbanktabellen angelegt, geändert oder gelöscht werden (CREATE, ALTER, DROP). Data Manipulation Language (DML) beschreibt, wie schreibende und manipulierende Zugriffe auf eine Datenbanktabelle wirken (INSTERT, UPDATE, DELETE). Data Query Language (DQL) wird oftmals auch mit der DML zusammengefasst. Die DQL beschreibt nur die reinen lesenden Zugriffe auf eine oder mehrere Datenbanktabellen (SELECT). Data Control Language (DCL) beschreibt, wie z.b. Zugriffsrechte in einer Datenbanktabelle vergeben oder entzogen werden können (GRANT, REVOKE) und ist u.a. auch für die referentielle Integrität der Daten verantwortlich. Im Folgenden soll ein kurzer Überblick über die Bestandteile der DQL gegeben werden, die insbesondere im Hinblick auf die Abfrage verschlüsselter, externer Daten interessant sind. Die Funktionalitäten einer lesenden Abfrage können unterteilt werden in Filterung, Aggregation und Verbund der Daten. Filterung: Eine Tabelle kann bezüglich der Werte ihrer Attribute gefiltert werden. Es werden nur die Daten angezeigt, deren Wert dem Suchbegriff entsprechen. Die Werte lassen sich dabei mit den folgenden Operatoren vergleichen: {=, <, >,,,<>}. Der LIKE Operator untersucht ein Attribut auf ein bestimmtes Muster. Durch die Verwendung von boolschen Ausdrücken (AND, OR, NOT) kann die Filterung über die Attribute dabei beliebig kombiniert werden. Es existieren weitere vereinfachende Abfragen, beispielsweise die Bereichsabfragen (BETWEEN Operator), die Kombinationen aus den vorherigen Operatoren sind. Das folgende SQL-Beispiel demonstriert den Einsatz von Filtern:

19 SELECT * FROM Person WHERE Person.Stadt LIKE %ster AND Person.PLZ > AND Person.Hausnummer BETWEEN 50 AND 100; In dem Beispiel werden aus der Datenbankrelation Person all die Datensätze zurückgegeben, die den entsprechenden Bedingungen der Abfrage genügen: Die Person wohnt in einer Stadt, die den Wortteil ster enthält, die Postleitzahl ist nummerisch größer als und die Hausnummer der Person liegt zwischen den Werten 50 und 100. Über ein ORDER BY Statement können die Daten entsprechend eines Attributs sortiert werden. Aggregation: Werden die Daten durch Operationen verdichtet, spricht man von einer Aggregation der Daten. Die wichtigsten Operatoren sind die Summe der ausgewählten Daten (SUM), die Anzahl der ausgewählten Tupel (COUNT) und der Durchschnittswert (AVG = SUM/COUNT). Hinzu kommen die Maximumsfunktion (MAX) und die Minimumsfunktion (MIN). Über das GROUP BY Statement können die Ausgaben entsprechend den Daten gruppiert werden. SELECT Person.Name, COUNT(Person.Name) FROM Person WHERE Person.Hausnummer BETWEEN 50 AND 100 GROUP BY Person.Name; In diesem Beispiel werden zunächst alle Personen betrachtet, deren Hausnummer zwischen den Werten 50 und 100 liegen. Für jeden Namen in dieser Datenbank wird nun eben dieser und die Häufigkeit des Auftretens zurückgegeben; es mögen beispielsweise 15 Personen mit dem Name Müller die Bedingung erfüllen, dann ist einer der Rückgabewerte Müller, 15. Verbund: Ein Verbund (JOIN) verknüpft zwei verschiedene Relationen miteinander. Ein wichtiges Differenzierungsmerkmal ist die Unterscheidung zwischen equi- und non-equi- Joins. Die equi-joins verbinden zwei Relationen über gleiche Werte (=). Ein non-equi-join arbeitet über andere Vergleichsoperatoren (<, >). Die equi-joins werden weiter unterschieden zwischen dem Inner- und dem Outer-Join. Der Inner-Join verknüpft Zeilen aus zwei Tabellen, wenn die zu verknüpfenden Werte in beiden Tabellen vorkommen. Ein Outer-Join verknüpft Zeilen aus zwei Tabellen, auch wenn die zu verknüpfenden Werte nur in einer Tabelle vorkommen. 7 Ein SQL-Beispiel kann beispielhaft folgendermaßen aussehen: SELECT * FROM Person INNER JOIN Abrechnung ON Person.Name = Abrechnung.Name; 7 Über die relationale Algebra hinaus gibt es in SQL noch weitere Join-Typen. Eine Übersicht findet sich unter [2].

20 Die Abfrage gibt eine neue Relation zurück, die die Attribute beider Tabellen von Person und Abrechnung enthält; sofern das Datenfeld Name beidseitig übereinstimmt, werden die entsprechenden Datensätze aus den Tabellen zeilenweise verbunden. Die bisher vorgestellten Funktionen werden zu den Begrifflichkeiten in Tabelle 2.1 zusammengeführt. Tabelle 2.1: SQL-Funktion Begriffsdefinition Begriff Vergleiche Aggregate Verknüpfung Operationen Identität =, <> Verhältnis/Bereich <,, >,, BETWEEN Suche LIKE Beschränkung MAX, MIN Anzahl COUNT Summe SUM Durchschnitt AVG Gleichheit equi-join Ungleichheit non-equi-join Auf den ersten Blick implizieren einige Funktionen andere, dies ist aber nicht unbedingt wahr, weshalb die Funktionen einzeln aufgelistet werden. Wird die Identitätsfunkion unterstützt, wird nicht zwangsweise eine Verknüpfung per Gleichheit zwischen zwei Tabellen unterstützt. Die Relationen können nämlich mit unterschiedlichen Schlüsseln verschlüsselt werden, weshalb gleiche Klartextwerte unterschiedliche Chiffrewerte in verschiedenen Tabellen aufweisen. Da selbst Datensätze innerhalb einer Tabelle mit unterschiedlichen Schlüsseln verschlüsselt werden können, wird auch COUNT nicht zwingend unterstützt, wenn die Identitätsfunkionen unterstützt wird. Die Durchschnittsfunktion AVG kann zwar durch SUM/COUNT berechnet werden, wird hier aber der Vollständigkeit halber auch aufgelistet.

Kryptographische Systeme (M, C, K, e, d) Symmetrische Verfahren (gleicher Schlüssel zum Verschlüsseln und Entschlüsseln):

Kryptographische Systeme (M, C, K, e, d) Symmetrische Verfahren (gleicher Schlüssel zum Verschlüsseln und Entschlüsseln): Was bisher geschah Kryptographische Systeme (M, C, K, e, d) Symmetrische Verfahren (gleicher Schlüssel zum Verschlüsseln und Entschlüsseln): Substitutions-Chiffren (Permutationschiffren): Ersetzung jedes

Mehr

Kryptographische Verfahren. zur Datenübertragung im Internet. Patrick Schmid, Martin Sommer, Elvis Corbo

Kryptographische Verfahren. zur Datenübertragung im Internet. Patrick Schmid, Martin Sommer, Elvis Corbo Kryptographische Verfahren zur Datenübertragung im Internet Patrick Schmid, Martin Sommer, Elvis Corbo 1. Einführung Übersicht Grundlagen Verschlüsselungsarten Symmetrisch DES, AES Asymmetrisch RSA Hybrid

Mehr

RSA Verfahren. Kapitel 7 p. 103

RSA Verfahren. Kapitel 7 p. 103 RSA Verfahren RSA benannt nach den Erfindern Ron Rivest, Adi Shamir und Leonard Adleman war das erste Public-Key Verschlüsselungsverfahren. Sicherheit hängt eng mit der Schwierigkeit zusammen, große Zahlen

Mehr

Grundlagen der Kryptographie

Grundlagen der Kryptographie Grundlagen der Kryptographie Seminar zur Diskreten Mathematik SS2005 André Latour a.latour@fz-juelich.de 1 Inhalt Kryptographische Begriffe Primzahlen Sätze von Euler und Fermat RSA 2 Was ist Kryptographie?

Mehr

Homomorphe Verschlüsselung

Homomorphe Verschlüsselung Homomorphe Verschlüsselung Sophie Friedrich, Nicholas Höllermeier, Martin Schwaighofer 11. Juni 2012 Inhaltsverzeichnis Einleitung Motivation Mathematische Definitionen Wiederholung Gruppe Ring Gruppenhomomorphisums

Mehr

Stefan Lucks Krypto und Mediensicherheit (2009) 4: Stromchiffren

Stefan Lucks Krypto und Mediensicherheit (2009) 4: Stromchiffren 4: Stromchiffren Zwei Grundbausteine der symmetrischen Kryptographie: Stromchiffren Verschlüsseln beliebig langer Klartexte, interner Zustand Blockchiffren Verschlüsseln von Blocks einer festen Größe,

Mehr

Einführung in Computer Microsystems

Einführung in Computer Microsystems Einführung in Computer Microsystems Kapitel 9 Entwurf eines eingebetteten Systems für Anwendungen in der IT-Sicherheit Prof. Dr.-Ing. Sorin A. Huss Fachbereich Informatik Integrierte Schaltungen und Systeme

Mehr

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten Einführung in SQL Die Sprache SQL (Structured Query Language) ist eine Programmiersprache für relationale Datenbanksysteme, die auf dem ANSI-SQL-Standard beruht. SQL wird heute von fast jedem Datenbanksystem

Mehr

Institut für Kryptographie und Sicherheit Jun.-Prof. Dr. D. Hofheinz. Stammvorlesung Sicherheit im Sommersemester 2013.

Institut für Kryptographie und Sicherheit Jun.-Prof. Dr. D. Hofheinz. Stammvorlesung Sicherheit im Sommersemester 2013. Institut für Kryptographie und Sicherheit Jun.-Prof. Dr. D. Hofheinz IKS Institut für Kryptographie und Sicherheit Stammvorlesung Sicherheit im Sommersemester 2013 Übungsblatt 2 Aufgabe 1. Wir wissen,

Mehr

10. Public-Key Kryptographie

10. Public-Key Kryptographie Stefan Lucks 10. PK-Krypto 274 orlesung Kryptographie (SS06) 10. Public-Key Kryptographie Analyse der Sicherheit von PK Kryptosystemen: Angreifer kennt öffentlichen Schlüssel Chosen Plaintext Angriffe

Mehr

8. Von den Grundbausteinen zu sicheren Systemen

8. Von den Grundbausteinen zu sicheren Systemen Stefan Lucks 8. Grundb. sich. Syst. 211 orlesung Kryptographie (SS06) 8. Von den Grundbausteinen zu sicheren Systemen Vorlesung bisher: Bausteine für Kryptosysteme. Dieses Kapitel: Naiver Einsatz der Bausteine

Mehr

Advanced Encryption Standard. Copyright Stefan Dahler 20. Februar 2010 Version 2.0

Advanced Encryption Standard. Copyright Stefan Dahler 20. Februar 2010 Version 2.0 Advanced Encryption Standard Copyright Stefan Dahler 20. Februar 2010 Version 2.0 Vorwort Diese Präsentation erläutert den Algorithmus AES auf einfachste Art. Mit Hilfe des Wissenschaftlichen Rechners

Mehr

IT-Sicherheit: Kryptographie. Asymmetrische Kryptographie

IT-Sicherheit: Kryptographie. Asymmetrische Kryptographie IT-Sicherheit: Kryptographie Asymmetrische Kryptographie Fragen zur Übung 5 C oder Java? Ja (gerne auch Python); Tips waren allerdings nur für C Wie ist das mit der nonce? Genau! (Die Erkennung und geeignete

Mehr

Betriebsarten für Blockchiffren

Betriebsarten für Blockchiffren Betriebsarten für Blockchiffren Prof. Dr. Rüdiger Weis TFH Berlin Sommersemester 2008 Betriebsarten für Blockchiffren Was ist eine Betriebsart (engl. Mode of Operation )? Blockchiffre wird genutzt, um

Mehr

Grundbegriffe der Kryptographie II Technisches Seminar SS 2012 Deniz Bilen

Grundbegriffe der Kryptographie II Technisches Seminar SS 2012 Deniz Bilen Grundbegriffe der Kryptographie II Technisches Seminar SS 2012 Deniz Bilen Agenda 1. Kerckhoff sches Prinzip 2. Kommunikationsszenario 3. Wichtige Begriffe 4. Sicherheitsmechanismen 1. Symmetrische Verschlüsselung

Mehr

FREIHEIT GESTALTEN VERSCHLÜSSELUNG ALS FREIHEIT IN DER KOMMUNIKATION. Christian R. Kast, Rechtsanwalt und Fachanwalt für IT Recht

FREIHEIT GESTALTEN VERSCHLÜSSELUNG ALS FREIHEIT IN DER KOMMUNIKATION. Christian R. Kast, Rechtsanwalt und Fachanwalt für IT Recht FREIHEIT GESTALTEN VERSCHLÜSSELUNG ALS FREIHEIT IN DER KOMMUNIKATION Christian R. Kast, Rechtsanwalt und Fachanwalt für IT Recht INHALTSÜBERSICHT Risiken für die Sicherheit von Kommunikation und die Freiheit

Mehr

Datensicherheit durch Kryptographie

Datensicherheit durch Kryptographie Datensicherheit durch Kryptographie Dr. Michael Hortmann Fachbereich Mathematik, Universität Bremen T-Systems Michael.Hortmann@gmx.de 1 Kryptographie: Klassisch: Wissenschaft und Praxis der Datenverschlüsselung

Mehr

Vortrag Keysigning Party

Vortrag Keysigning Party Vortrag Keysigning Party Benjamin Bratkus Fingerprint: 3F67 365D EA64 7774 EA09 245B 53E8 534B 0BEA 0A13 (Certifcation Key) Fingerprint: A7C3 5294 E25B B860 DD3A B65A DE85 E555 101F 5FB6 (Working Key)

Mehr

SICHERE DATENHALTUNG IN DER CLOUD VIA HANDY. Tuba Yapinti Abschlussvortrag der Bachelorarbeit Betreuer: Prof. Reinhardt, Dr.

SICHERE DATENHALTUNG IN DER CLOUD VIA HANDY. Tuba Yapinti Abschlussvortrag der Bachelorarbeit Betreuer: Prof. Reinhardt, Dr. SICHERE DATENHALTUNG IN DER CLOUD VIA HANDY 1 Tuba Yapinti Abschlussvortrag der Bachelorarbeit Betreuer: Prof. Reinhardt, Dr. Bernd Borchert GLIEDERUNG 1. Motivation Gründe für die Entwicklung Ideen für

Mehr

Probabilistische Primzahlensuche. Marco Berger

Probabilistische Primzahlensuche. Marco Berger Probabilistische Primzahlensuche Marco Berger April 2015 Inhaltsverzeichnis Inhaltsverzeichnis 1 Einleitung 4 1.1 Definition Primzahl................................ 4 1.2 Primzahltest...................................

Mehr

Informatik 12 Datenbanken SQL-Einführung

Informatik 12 Datenbanken SQL-Einführung Informatik 12 Datenbanken SQL-Einführung Gierhardt Vorbemerkungen Bisher haben wir Datenbanken nur über einzelne Tabellen kennen gelernt. Stehen mehrere Tabellen in gewissen Beziehungen zur Beschreibung

Mehr

1 Kryptosysteme 1 KRYPTOSYSTEME. Definition 1.1 Eine Kryptosystem (P(A), C(B), K, E, D) besteht aus

1 Kryptosysteme 1 KRYPTOSYSTEME. Definition 1.1 Eine Kryptosystem (P(A), C(B), K, E, D) besteht aus 1 RYPTOSYSTEME 1 ryptosysteme Definition 1.1 Eine ryptosystem (P(A), C(B),, E, D) besteht aus einer Menge P von lartexten (plaintext) über einem lartextalphabet A, einer Menge C von Geheimtexten (ciphertext)

Mehr

Content-Verwertungsmodelle und ihre Umsetzung in mobilen Systemen

Content-Verwertungsmodelle und ihre Umsetzung in mobilen Systemen Content-Verwertungsmodelle und ihre Umsetzung in mobilen Systemen Digital Rights Management 4FriendsOnly.com Internet Technologies AG Vorlesung im Sommersemester an der Technischen Universität Ilmenau

Mehr

Methoden der Kryptographie

Methoden der Kryptographie Methoden der Kryptographie!!Geheime Schlüssel sind die sgrundlage Folien und Inhalte aus II - Der Algorithmus ist bekannt 6. Die - Computer Networking: A Top außer bei security by obscurity Down Approach

Mehr

Kodierungsalgorithmen

Kodierungsalgorithmen Kodierungsalgorithmen Komprimierung Verschlüsselung Komprimierung Zielsetzung: Reduktion der Speicherkapazität Schnellere Übertragung Prinzipien: Wiederholungen in den Eingabedaten kompakter speichern

Mehr

IT-Sicherheit Kapitel 3 Public Key Kryptographie

IT-Sicherheit Kapitel 3 Public Key Kryptographie IT-Sicherheit Kapitel 3 Public Key Kryptographie Dr. Christian Rathgeb Sommersemester 2013 1 Einführung In der symmetrischen Kryptographie verwenden Sender und Empfänger den selben Schlüssel die Teilnehmer

Mehr

Was bisher geschah Kryptographische Systeme (M, C, K, e, d) Verfahren: symmetrisch klassisch: Verschiebechiffren (Spezialfall Caesar-Code)

Was bisher geschah Kryptographische Systeme (M, C, K, e, d) Verfahren: symmetrisch klassisch: Verschiebechiffren (Spezialfall Caesar-Code) Was bisher geschah Kryptographische Systeme (M, C, K, e, d) Verfahren: symmetrisch klassisch: Verschiebechiffren (Spezialfall Caesar-Code) Multiplikative Chiffren monoalphabetische Substitutions-Chiffren:

Mehr

Kryptologie und Kodierungstheorie

Kryptologie und Kodierungstheorie Kryptologie und Kodierungstheorie Alexander May Horst Görtz Institut für IT-Sicherheit Ruhr-Universität Bochum Lehrerfortbildung 17.01.2012 Kryptologie Verschlüsselung, Substitution, Permutation 1 / 18

Mehr

Kap. 2: Fail-Stop Unterschriften

Kap. 2: Fail-Stop Unterschriften Stefan Lucks 2: Fail-Stop Unterschriften 17 Digital Unterschreiben und Bezahlen Kap. 2: Fail-Stop Unterschriften Digitale Unterschriften (Synomym: Digitale Signaturen ): Fälschen mutmaßlich hart (RSA-Wurzeln,

Mehr

Wiederholung: Informationssicherheit Ziele

Wiederholung: Informationssicherheit Ziele Wiederholung: Informationssicherheit Ziele Vertraulichkeit: Schutz der Information vor unberechtigtem Zugriff bei Speicherung, Verarbeitung und Übertragung Integrität: Garantie der Korrektheit (unverändert,

Mehr

Kapitel 4: Flusschiffren

Kapitel 4: Flusschiffren Stefan Lucks 4: Flusschiffren 52 orlesung Kryptographie (SS06) Kapitel 4: Flusschiffren Als Basis-Baustein zur Verschlüsselung von Daten dienen Fluss- und Blockchiffren. Der Unterschied: Flusschiffren

Mehr

Digital Rights Management (DRM) Verfahren, die helfen Rechte an virtuellen Waren durchzusetzen. Public-Key-Kryptographie (2 Termine)

Digital Rights Management (DRM) Verfahren, die helfen Rechte an virtuellen Waren durchzusetzen. Public-Key-Kryptographie (2 Termine) Digital Rights Management (DRM) Verfahren, die helfen Rechte an virtuellen Waren durchzusetzen Vorlesung im Sommersemester 2010 an der Technischen Universität Ilmenau von Privatdozent Dr.-Ing. habil. Jürgen

Mehr

Digital Signature and Public Key Infrastructure

Digital Signature and Public Key Infrastructure E-Governement-Seminar am Institut für Informatik an der Universität Freiburg (CH) Unter der Leitung von Prof. Dr. Andreas Meier Digital Signature and Public Key Infrastructure Von Düdingen, im Januar 2004

Mehr

Einführung in die moderne Kryptographie

Einführung in die moderne Kryptographie c by Rolf Haenni (2006) Seite 1 Von der Caesar-Verschlüsselung zum Online-Banking: Einführung in die moderne Kryptographie Prof. Rolf Haenni Reasoning under UNcertainty Group Institute of Computer Science

Mehr

Kurze Einführung in kryptographische Grundlagen.

Kurze Einführung in kryptographische Grundlagen. Kurze Einführung in kryptographische Grundlagen. Was ist eigentlich AES,RSA,DH,ELG,DSA,DSS,ECB,CBC Benjamin.Kellermann@gmx.de GPG-Fingerprint: D19E 04A8 8895 020A 8DF6 0092 3501 1A32 491A 3D9C git clone

Mehr

Kryptographie praktisch erlebt

Kryptographie praktisch erlebt Kryptographie praktisch erlebt Dr. G. Weck INFODAS GmbH Köln Inhalt Klassische Kryptographie Symmetrische Verschlüsselung Asymmetrische Verschlüsselung Digitale Signaturen Erzeugung gemeinsamer Schlüssel

Mehr

Sommersemester 2002 Konzepte von Betriebssystem-Komponenten: Schwerpunkt Sicherheit (KVBK)

Sommersemester 2002 Konzepte von Betriebssystem-Komponenten: Schwerpunkt Sicherheit (KVBK) Sommersemester 2002 Konzepte von Betriebssystem-Komponenten: Schwerpunkt Sicherheit (KVBK) Vortrag zum Thema: Symmetrische Verschlüsselung (DES, 3DES, AES) und Schlüsselaustausch (Diffie-Hellman) Referent:

Mehr

Post-quantum cryptography

Post-quantum cryptography Post-quantum cryptography Post-quantum cryptography 1. Komplexität & Quantencomputer 2. Kryptografie in Gittern 3. FHE Eine Revolution im Datenschutz? WIESO? KOMPLEXITÄT Public-Key-Kryptografie Grafiken:

Mehr

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language:

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language: SQL Structured Query Language: strukturierte Datenbankabfragesprache eine Datenbanksprache zur Definition, Abfrage und Manipulation von Daten in relationalen Datenbanken In der SQL-Ansicht arbeiten In

Mehr

Verschlüsselungsverfahren

Verschlüsselungsverfahren Verschlüsselungsverfahren Herrn Breder hat es nach dem Studium nach München verschlagen. Seine Studienkollegin Frau Ahrend wohnt in Heidelberg. Da beide beruflich sehr stark einspannt sind, gibt es keine

Mehr

Symmetrische Verschlüsselung. Blockchiffren, DES, IDEA, Stromchiffren und andere Verfahren

Symmetrische Verschlüsselung. Blockchiffren, DES, IDEA, Stromchiffren und andere Verfahren Symmetrische Verschlüsselung Blockchiffren, DES, IDEA, Stromchiffren und andere Verfahren Symmetrische Verfahren Sender und Empfänger haben sich auf einen gemeinsamen Schlüssel geeinigt (geheim!!). Sender

Mehr

Denn es geht um ihr Geld:

Denn es geht um ihr Geld: Denn es geht um ihr Geld: [A]symmetrische Verschlüsselung, Hashing, Zertifikate, SSL/TLS Warum Verschlüsselung? Austausch sensibler Daten über das Netz: Adressen, Passwörter, Bankdaten, PINs,... Gefahr

Mehr

Authentikation und digitale Signatur

Authentikation und digitale Signatur TU Graz 23. Jänner 2009 Überblick: Begriffe Authentikation Digitale Signatur Überblick: Begriffe Authentikation Digitale Signatur Überblick: Begriffe Authentikation Digitale Signatur Begriffe Alice und

Mehr

SSL/TLS Sicherheit Warum es sich lohnt, sich mit Ciphersuites zu beschäftigen

SSL/TLS Sicherheit Warum es sich lohnt, sich mit Ciphersuites zu beschäftigen SSL/TLS Sicherheit Warum es sich lohnt, sich mit Ciphersuites zu beschäftigen Immo FaUl Wehrenberg immo@ctdo.de Chaostreff Dortmund 16. Juli 2009 Immo FaUl Wehrenberg immo@ctdo.de (CTDO) SSL/TLS Sicherheit

Mehr

SQL für Trolle. mag.e. Dienstag, 10.2.2009. Qt-Seminar

SQL für Trolle. mag.e. Dienstag, 10.2.2009. Qt-Seminar Qt-Seminar Dienstag, 10.2.2009 SQL ist......die Abkürzung für Structured Query Language (früher sequel für Structured English Query Language )...ein ISO und ANSI Standard (aktuell SQL:2008)...eine Befehls-

Mehr

Informationssicherheit - Lösung Blatt 2

Informationssicherheit - Lösung Blatt 2 Informationssicherheit - Lösung Blatt 2 Adam Glodek adam.glodek@gmail.com 13.04.2010 1 1 Aufgabe 1: One Time Pad 1.1 Aufgabenstellung Gegeben ist der folgende Klartext 12Uhr (ASCII). Verschlüsseln Sie

Mehr

SECURE DATA DRIVE CLIENTSEITIGE VERSCHLÜSSELUNG Technical Insight, Oktober 2014 Version 1.0

SECURE DATA DRIVE CLIENTSEITIGE VERSCHLÜSSELUNG Technical Insight, Oktober 2014 Version 1.0 SECURE DATA DRIVE CLIENTSEITIGE VERSCHLÜSSELUNG Technical Insight, Oktober 2014 Version 1.0 mit den eingetragenen Materialnummern Inhalt Inhalt... 2 1 Vorwort... 3 2 Allgemeines zur Verschlüsselung...

Mehr

Kryptologie. 2. Sicherstellung, dass eine Nachricht unverfälscht beim Empfänger ankommt: Integrität.

Kryptologie. 2. Sicherstellung, dass eine Nachricht unverfälscht beim Empfänger ankommt: Integrität. Kryptologie Zur Terminologie Die Begriffe KRYPTOLOGIE und KRYPTOGRAPHIE entstammen den griechischen Wörtern kryptos (geheim), logos (Wort, Sinn) und graphein (schreiben). Kryptographie ist die Lehre vom

Mehr

Kryptographische Verschlüsselung mithilfe des DES-Verfahrens und die Übersetzung eines Textes durch ein selbstgeschriebenes Delphi-Programm

Kryptographische Verschlüsselung mithilfe des DES-Verfahrens und die Übersetzung eines Textes durch ein selbstgeschriebenes Delphi-Programm Kryptographische Verschlüsselung mithilfe des DES-Verfahrens und die Übersetzung eines Textes durch ein selbstgeschriebenes Delphi-Programm Andre Pawlowski, Gymnasium Holthausen, LK Mathematik, 2004/2005

Mehr

9 Schlüsseleinigung, Schlüsselaustausch

9 Schlüsseleinigung, Schlüsselaustausch 9 Schlüsseleinigung, Schlüsselaustausch Ziel: Sicherer Austausch von Schlüsseln über einen unsicheren Kanal initiale Schlüsseleinigung für erste sichere Kommunikation Schlüsselerneuerung für weitere Kommunikation

Mehr

1. Asymmetrische Verschlüsselung einfach erklärt

1. Asymmetrische Verschlüsselung einfach erklärt 1. Asymmetrische Verschlüsselung einfach erklärt Das Prinzip der asymmetrischen Verschlüsselung beruht im Wesentlichen darauf, dass sich jeder Kommunikationspartner jeweils ein Schlüsselpaar (bestehend

Mehr

Digitale Unterschriften Grundlagen der digitalen Unterschriften Hash-Then-Sign Unterschriften Public-Key Infrastrukturen (PKI) Digitale Signaturen

Digitale Unterschriften Grundlagen der digitalen Unterschriften Hash-Then-Sign Unterschriften Public-Key Infrastrukturen (PKI) Digitale Signaturen Sommersemester 2008 Digitale Unterschriften Unterschrift von Hand : Physikalische Verbindung mit dem unterschriebenen Dokument (beides steht auf dem gleichen Blatt). Fälschen erfordert einiges Geschick

Mehr

Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer

Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer Allgemein: Das RSA-Verschlüsselungsverfahren ist ein häufig benutztes Verschlüsselungsverfahren, weil es sehr sicher ist. Es gehört zu der Klasse der

Mehr

Unterabfragen (Subqueries)

Unterabfragen (Subqueries) Unterabfragen (Subqueries) Die kürzeste Formulierung ist folgende: SELECT Felderliste FROM Tabelle1 WHERE Tabelle1.Feldname Operator (SELECT Feldname FROM Tabelle2 WHERE Bedingung); wobei Tabelle1 und

Mehr

Lenstras Algorithmus für Faktorisierung

Lenstras Algorithmus für Faktorisierung Lenstras Algorithmus für Faktorisierung Bertil Nestorius 9 März 2010 1 Motivation Die schnelle Faktorisierung von Zahlen ist heutzutage ein sehr wichtigen Thema, zb gibt es in der Kryptographie viele weit

Mehr

PKI (public key infrastructure)

PKI (public key infrastructure) PKI (public key infrastructure) am Fritz-Haber-Institut 11. Mai 2015, Bilder: Mehr Sicherheit durch PKI-Technologie, Network Training and Consulting Verschlüsselung allgemein Bei einer Übertragung von

Mehr

Exkurs Kryptographie

Exkurs Kryptographie Exkurs Kryptographie Am Anfang Konventionelle Krytographie Julius Cäsar mißtraute seinen Boten Ersetzen der Buchstaben einer Nachricht durch den dritten folgenden im Alphabet z. B. ABCDEFGHIJKLMNOPQRSTUVWXYZ

Mehr

ARIS II - Modellierungsmethoden, Metamodelle und Anwendungen

ARIS II - Modellierungsmethoden, Metamodelle und Anwendungen ARIS II - Modellierungsmethoden, Metamodelle und Anwendungen C3: Structured Query Language Lernziele: Nach der Bearbeitung dieser Lektion haben Sie folgende Kenntnisse erworben: Sie können elementaren

Mehr

MMS Übung 1. Caesar Chiffre im Hinblick auf Robustheit. 17.05.13 Multimedia Sicherheit Übung 1 1

MMS Übung 1. Caesar Chiffre im Hinblick auf Robustheit. 17.05.13 Multimedia Sicherheit Übung 1 1 MMS Übung 1 Caesar Chiffre im Hinblick auf Robustheit 17.05.13 Multimedia Sicherheit Übung 1 1 Caesar Chiffre Wurde nach dem römischen Feldherrn Gaius Julius Caesar benannt Benutzt für die geheime Kommunikation

Mehr

Mathematische Grundlagen der Kryptographie. 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe. Stefan Brandstädter Jennifer Karstens

Mathematische Grundlagen der Kryptographie. 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe. Stefan Brandstädter Jennifer Karstens Mathematische Grundlagen der Kryptographie 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe Stefan Brandstädter Jennifer Karstens 18. Januar 2005 Inhaltsverzeichnis 1 Ganze Zahlen 1 1.1 Grundlagen............................

Mehr

Sructred Query Language

Sructred Query Language Sructred Query Language Michael Dienert 11. November 2010 Inhaltsverzeichnis 1 Ein kurzer Versionsüberblick 1 2 SQL-1 mit einigen Erweiterungen aus SQL-92 2 3 Eine Sprache zur Beschreibung anderer Sprachen

Mehr

Stefan Lucks Krypto und Mediensicherheit (2009) 5: Blockchiffren. 5: Blockchiffren. (n bit) (n bit) VERschlüsseln ENTschlüsseln

Stefan Lucks Krypto und Mediensicherheit (2009) 5: Blockchiffren. 5: Blockchiffren. (n bit) (n bit) VERschlüsseln ENTschlüsseln 5: Blockchiffren Klartexte 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 Chiffretexte (n bit) (n bit) VERschlüsseln ENTschlüsseln 74 5.1: Abstrakte Blockchiffren Familie

Mehr

DES der vergangene Standard für Bitblock-Chiffren

DES der vergangene Standard für Bitblock-Chiffren DES der vergangene Standard für Bitblock-Chiffren Klaus Pommerening Fachbereich Mathematik der Johannes-Gutenberg-Universität Saarstraße 1 D-55099 Mainz Vorlesung Kryptologie 1. März 1991, letzte Änderung:

Mehr

Blockverschlüsselung und AES

Blockverschlüsselung und AES Blockverschlüsselung und AES Proseminar/Seminar Kryptographie und Datensicherheit SoSe 2009 Universität Potsdam ein Vortrag von Linda Tschepe Übersicht Allgemeines SPNs (Substitutions- Permutations- Netzwerke)

Mehr

ESecuremail Die einfache Email verschlüsselung

ESecuremail Die einfache Email verschlüsselung Wie Sie derzeit den Medien entnehmen können, erfassen und speichern die Geheimdienste aller Länder Emails ab, egal ob Sie verdächtig sind oder nicht. Die Inhalte von EMails werden dabei an Knotenpunkten

Mehr

IT-Sicherheit Zusammenfassung

IT-Sicherheit Zusammenfassung IT-Sicherheit Zusammenfassung Kajetan Weiß 8. Februar 2014 Vorwort Schön, dass Du Dich entschieden hast mit dieser Arbeit zu lernen. Vorweg möchte ich raten nicht nur die Lektüre zu lesen sondern zum besseren

Mehr

Effizienten MAC-Konstruktion aus der Praxis: NMAC Idee von NMAC:

Effizienten MAC-Konstruktion aus der Praxis: NMAC Idee von NMAC: Effizienten MAC-Konstruktion aus der Praxis: NMAC Idee von NMAC: Hashe m {0, 1} auf einen Hashwert in {0, 1} n. Verwende Π MAC3 für Nachrichten fixer Länge auf dem Hashwert. Wir konstruieren Π MAC3 mittels

Mehr

Verschlüsselung. Claus Bauer, Datenschutzbeauftragter. CERDAT GmbH

Verschlüsselung. Claus Bauer, Datenschutzbeauftragter. CERDAT GmbH Verschlüsselung Claus Bauer, Datenschutzbeauftragter CERDAT GmbH Inhaltsübersicht: Risiken für die Sicherheit von Kommunikation und die Freiheit sicher zu Kommunizieren Technische Grundlagen von Verschlüsselung

Mehr

Linux User Group Tübingen

Linux User Group Tübingen theoretische Grundlagen und praktische Anwendung mit GNU Privacy Guard und KDE Übersicht Authentizität öffentlicher GNU Privacy Guard unter KDE graphische Userinterfaces:, Die dahinter

Mehr

Der Advanced Encryption Standard (AES)

Der Advanced Encryption Standard (AES) Der Advanced Encryption Standard (AES) Prof. Dr. Rüdiger Weis TFH Berlin Sommersemester 2008 Geschichte des AES Die Struktur des AES Angriffe auf den AES Aktuelle Ergebnisse DerAdvanced Encryption Standard

Mehr

Was ist Kryptographie

Was ist Kryptographie Was ist Kryptographie Kryptographie Die Wissenschaft, mit mathematischen Methoden Informationen zu verschlüsseln und zu entschlüsseln. Eine Methode des sicheren Senden von Informationen über unsichere

Mehr

Grundlagen. Murat Zabun. Seminar. Sicherheit im Internet. Universität Dortmund WS 02/03

Grundlagen. Murat Zabun. Seminar. Sicherheit im Internet. Universität Dortmund WS 02/03 Grundlagen Murat Zabun Seminar Sicherheit im Internet Universität Dortmund WS 02/03 1 Inhaltsverzeichnis INHALTSVERZEICHNIS 1.Einleitung 1.1 Grundlagen der Kryptographie 1.2 Verfahren der Kryptographie

Mehr

Geheimnisvolle Codes

Geheimnisvolle Codes Geheimnisvolle Codes 1 vorgelegt bei: Mathematisches Seminar für LAK Univ.-Prof. Karin Baur WS 2014/15 von: Julia Hager 0910838 j.hager@edu.uni-graz.at 1 Quelle: http://www.austromath.at/medienvielfalt/materialien/krypto/krypt.png

Mehr

Proseminar : Allgegenwärtiges Rechnen. Vortrag über Sicherheit. Christian Fricke cfricke@rz.uni-potsdam.de

Proseminar : Allgegenwärtiges Rechnen. Vortrag über Sicherheit. Christian Fricke cfricke@rz.uni-potsdam.de Proseminar : Allgegenwärtiges Rechnen Vortrag über Sicherheit Christian Fricke cfricke@rz.uni-potsdam.de 1 I. Einleitung : Sicherheitseigenschaften und Angriffsarten Definition 1: Unter Funktionssicherheit

Mehr

Verschlüsselung und Signatur

Verschlüsselung und Signatur Verschlüsselung und Signatur 1 Inhalt Warum Verschlüsseln Anforderungen und Lösungen Grundlagen zum Verschlüsseln Beispiele Fragwürdiges rund um das Verschlüsseln Fazit Warum verschlüsseln? Sichere Nachrichtenübertragung

Mehr

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER INHALTSVERZEICHNIS 1. Datenbanken 2. SQL 1.1 Sinn und Zweck 1.2 Definition 1.3 Modelle 1.4 Relationales Datenbankmodell 2.1 Definition 2.2 Befehle 3.

Mehr

Beweisbar sichere Verschlüsselung

Beweisbar sichere Verschlüsselung Beweisbar sichere Verschlüsselung ITS-Wahlpflichtvorlesung Dr. Bodo Möller Ruhr-Universität Bochum Horst-Görtz-Institut für IT-Sicherheit Lehrstuhl für Kommunikationssicherheit bmoeller@crypto.rub.de 12

Mehr

Verteilte Systeme. Sicherheit. Prof. Dr. Oliver Haase

Verteilte Systeme. Sicherheit. Prof. Dr. Oliver Haase Verteilte Systeme Sicherheit Prof. Dr. Oliver Haase 1 Einführung weitere Anforderung neben Verlässlichkeit (zur Erinnerung: Verfügbarkeit, Zuverlässigkeit, Funktionssicherheit (Safety) und Wartbarkeit)

Mehr

Fachhochschule Frankfurt am Main Fachbereich 2: Informatik WS 2008/2009. IT-Security

Fachhochschule Frankfurt am Main Fachbereich 2: Informatik WS 2008/2009. IT-Security Fachhochschule Frankfurt am Main Fachbereich 2: Informatik WS 2008/2009 IT-Security Teil 2: Grundlagen der Kryptographie DES, RSA, Hashes Dr. Erwin Hoffmann E-Mail: it-security@fehcom.de Risiken bei ungesicherter

Mehr

Kryptographie und Fehlertoleranz für Digitale Magazine

Kryptographie und Fehlertoleranz für Digitale Magazine Stefan Lucks Kryptographie und Fehlertoleranz für digitale Magazine 1 Kryptographie und Fehlertoleranz für Digitale Magazine Stefan Lucks Professur für Mediensicherheit 13. März 2013 Stefan Lucks Kryptographie

Mehr

Unterhalten Sie sich leise mit Ihrem Nachbarn über ein aktuelles Thema. Dauer ca. 2 Minuten

Unterhalten Sie sich leise mit Ihrem Nachbarn über ein aktuelles Thema. Dauer ca. 2 Minuten Versuch: Eigenschaften einer Unterhaltung Instant Messaging Unterhalten Sie sich leise mit Ihrem Nachbarn über ein aktuelles Thema. Dauer ca. 2 Minuten welche Rollen gibt es in einem IM-System? Analysieren

Mehr

SQL-Befehlsliste. Vereinbarung über die Schreibweise

SQL-Befehlsliste. Vereinbarung über die Schreibweise Vereinbarung über die Schreibweise Schlüsselwort [optionale Elemente] Beschreibung Befehlsworte in SQL-Anweisungen werden in Großbuchstaben geschrieben mögliche, aber nicht zwingend erforderliche Teile

Mehr

Einführung in SQL Datenbanken bearbeiten

Einführung in SQL Datenbanken bearbeiten Einführung in SQL Datenbanken bearbeiten Jürgen Thomas Entstanden als Wiki-Buch Bibliografische Information Diese Publikation ist bei der Deutschen Nationalbibliothek registriert. Detaillierte Angaben

Mehr

Material zum Versuch. Kryptografie mit Bouncy Castle

Material zum Versuch. Kryptografie mit Bouncy Castle zusammengestellt von: Mark Manulis (mark.manulis@nds.rub.de) Version 1.0 Grundpraktikum für IT-Sicherheit Material zum Versuch Kryptografie mit Bouncy Castle Lehrstuhl für Netz- und Datensicherheit ruhr-universität

Mehr

Verschlüsselung im Internet

Verschlüsselung im Internet Verschlüsselung im Internet Christian Bockermann Verschlüsselung September 2006 1 Überblick Kryptographie Was ist das? Warum braucht man das? Wie funktioniert das? Beispiele (Rucksäcke,RSA) Anwendungen

Mehr

IBM Informix SQL. Seminarunterlage. Version 11.04 vom

IBM Informix SQL. Seminarunterlage. Version 11.04 vom Seminarunterlage Version: 11.04 Version 11.04 vom 27. April 2015 Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen sind Warenzeichen

Mehr

Vorlesung Kryptographie

Vorlesung Kryptographie Vorlesung Kryptographie Teil 2 Dr. Jan Vorbrüggen Übersicht Teil 1 (Nicht-) Ziele Steganographie vs. Kryptographie Historie Annahmen Diffie-Hellman Angriffe Teil 2 Symmetrische Verfahren Asymmetrische

Mehr

SQL structured query language

SQL structured query language Umfangreiche Datenmengen werden üblicherweise in relationalen Datenbank-Systemen (RDBMS) gespeichert Logische Struktur der Datenbank wird mittels Entity/Realtionship-Diagrammen dargestellt structured query

Mehr

Carl-Engler-Schule Karlsruhe Datenbank 1 (5)

Carl-Engler-Schule Karlsruhe Datenbank 1 (5) Carl-Engler-Schule Karlsruhe Datenbank 1 (5) Informationen zur Datenbank 1. Definition 1.1 Datenbank-Basis Eine Datenbank-Basis ist eine Sammlung von Informationen über Objekte (z.b Musikstücke, Einwohner,

Mehr

IV. Datenbankmanagement

IV. Datenbankmanagement Wirtschaftsinformatik 2 (PWIN) IV. Datenbankmanagement Kapitel 2: Datenmanipulationssprache SQL Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security 1 Agenda 1.

Mehr

Data Cube. Aggregation in SQL. Beispiel: Autoverkäufe. On-line Analytical Processing (OLAP) 1. Einführung. 2. Aggregation in SQL, GROUP BY

Data Cube. Aggregation in SQL. Beispiel: Autoverkäufe. On-line Analytical Processing (OLAP) 1. Einführung. 2. Aggregation in SQL, GROUP BY Data Cube On-line Analytical Processing (OLAP). Einführung Ziel: Auffinden interessanter Muster in großen Datenmengen 2. Aggregation in SQL, GROUP BY 3. Probleme mit GROUP BY 4. Der Cube-Operator! Formulierung

Mehr

WEP and WPA: Lessons learned in WLAN-Security Vortrag im Rahmen des Seminars Kryptographie und Sicherheit am 31. Mai 2006 Von Tina Scherer Gliederung WEP WPA Aufbau Schwächen Cracking WEP Angriffe Behobene

Mehr

Das Kryptosystem von McEliece. auf der Basis von linearen Codes

Das Kryptosystem von McEliece. auf der Basis von linearen Codes Das Kryptosystem von McEliece auf der Basis von linearen Codes Anforderungen Public-Key Kryptosysteme E e (m) = c Verschlüsselung D d (c) = m Entschlüsselung mit Schl. effizient effizient 2/25 Anforderungen

Mehr

RACFBroker/z. Entfernter Zugriff auf das RACF Sicherheitssystem auf IBM Mainframes über TCP/IP. RACFBroker/z ist ein Produkt der

RACFBroker/z. Entfernter Zugriff auf das RACF Sicherheitssystem auf IBM Mainframes über TCP/IP. RACFBroker/z ist ein Produkt der RACFBroker/z Entfernter Zugriff auf das RACF Sicherheitssystem auf IBM Mainframes über TCP/IP RACFBroker/z ist ein Produkt der XPS Software GmbH Eching RACFBroker/z XPS Software GmbH Untere Hauptstr. 2

Mehr

In die Zeilen würden die Daten einer Adresse geschrieben werden. Das Ganze könnte in etwa folgendermaßen aussehen:

In die Zeilen würden die Daten einer Adresse geschrieben werden. Das Ganze könnte in etwa folgendermaßen aussehen: 1 Einführung in Datenbanksysteme Fast jeder kennt Excel und hat damit in seinem Leben schon einmal gearbeitet. In Excel gibt es Arbeitsblätter, die aus vielen Zellen bestehen, in die man verschiedene Werte

Mehr

Wireless Security. IT Security Workshop 2006. Moritz Grauel grauel@informatik.hu-berlin.de Matthias Naber naber@informatik.hu-berlin.

Wireless Security. IT Security Workshop 2006. Moritz Grauel grauel@informatik.hu-berlin.de Matthias Naber naber@informatik.hu-berlin. Wireless Security IT Security Workshop 2006 Moritz Grauel grauel@informatik.hu-berlin.de Matthias Naber naber@informatik.hu-berlin.de HU-Berlin - Institut für Informatik 29.09.2006 (HU-Berlin - Institut

Mehr

Cassandra Query Language (CQL)

Cassandra Query Language (CQL) Cassandra Query Language (CQL) Seminar: NoSQL Wintersemester 2013/2014 Cassandra Zwischenpräsentation 1 Gliederung Basic facts Datentypen DDL/DML ähnlich zu SQL Besonderheiten Basic facts CQL kurz für

Mehr

AES. Jens Kubieziel jens@kubieziel.de. 07. Dezember 2009. Friedrich-Schiller-Universität Jena Fakultät für Mathem atik und Informatik

AES. Jens Kubieziel jens@kubieziel.de. 07. Dezember 2009. Friedrich-Schiller-Universität Jena Fakultät für Mathem atik und Informatik Angriffe gegen Jens Kubieziel jens@kubieziel.de Friedrich-Schiller-Universität Jena Fakultät für Mathem atik und Informatik 07. Dezember 2009 Angriffe gegen Outline 1 Zur Geschichte 2 3 Angriffe gegen

Mehr

Erwin Grüner 15.12.2005

Erwin Grüner 15.12.2005 FB Psychologie Uni Marburg 15.12.2005 Themenübersicht Mit Hilfe der Funktionen runif(), rnorm() usw. kann man (Pseudo-) erzeugen. Darüber hinaus gibt es in R noch zwei weitere interessante Zufallsfunktionen:

Mehr

Inhalt. Grundlegendes zu Bankkarten. Moduliertes Merkmal. PIN-Sicherheit. Seitenkanalangriffe

Inhalt. Grundlegendes zu Bankkarten. Moduliertes Merkmal. PIN-Sicherheit. Seitenkanalangriffe Inhalt Grundlegendes zu Bankkarten Moduliertes Merkmal PIN-Sicherheit Seitenkanalangriffe Harald Baier Ausgewählte Themen der IT-Sicherheit h_da SS 10 24 PIN-Erzeugung bei Debitkarten 1. Variante: Kartendaten

Mehr