Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Kryptografische Funktionen

Die Funktionen ENCRYPT() und DECRYPT() dienen der Verschlüsselung und Entschlüsselung von einzelnen Werten. Sensitive Daten werden durch die Verschlüsselung vor unbefugtem Zugriff geschützt. Nur die Benutzer, die den sogenannten „Schlüssel“ („key“) kennen, können die Daten entschlüsseln.

Die Funktionen REP_OF_VALUE() und VALUE_OF_REP() können verwendet werden, um mehrere Werte gemeinsam zu verschlüsseln und ihn wieder zu entschlüsseln.

Einführende Informationen zum Zugriffsschutz durch Datenverschlüsselung in SESAM/SQL finden Sie im „ Basishandbuch“.


kryptofunktion ::= { ENCRYPT ( ausdruck , schlüssel ) | DECRYPT ( ausdruck2 , schlüssel , datentyp ) }

schlüssel ::= ausdruck


ausdruck

Ausdruck, dessen Wert verschlüsselt werden soll.ausdruck darf kein multipler Wert mit Dimension > 1 sein.

ausdruck2

Alphanumerischer Ausdruck, dessen Wert entschlüsselt werden soll. ausdruck2 darf kein multipler Wert mit Dimension > 1 sein.

schlüssel

Schlüssel zur Ver- und Entschlüsselung.

datentyp

Datentyp des entschlüsselten Wertes. datentyp darf kein Aggregat (siehe "Werte für multiple Spalten") sein.

Anwendungshinweise

Da der Verschlüsselungsalgorithmus AES (siehe „ Basishandbuch“), so wie er in SESAM/SQL verwendet wird, Blöcke von 16 Zeichen bearbeitet, ist die Länge des Ausgabewerts stets ein Vielfaches von 16 Zeichen. Wenn sich zwei Eingabewerte auch nur in einem Bit unterscheiden, dann unterscheiden sich ihre verschlüsselten Werte in allen Zeichen.

Verschlüsselte Werte können auf Gleichheit oder Ungleichheit verglichen werden. Sie sind genau dann gleich oder ungleich, wenn die unverschlüsselten Werte gleich oder ungleich sind. Dabei müssen die unverschlüsselten Werte denselben Datentyp haben. Bei Zeichenketten müssen die unverschlüsselten Werte auch gleich lang sein.

Die Vergleiche 01 = 1.0 und 'abc' = 'abc ' liefern aber jeweils den Wahrheitswert TRUE, die Verschlüsselungen dieser vier Werte sind aber alle unterschiedlich.

Andere Vergleiche (z.B. mit < oder <=) verschlüsselter Werte liefern Resultate, die nichts mit den entsprechenden Vergleichen der unverschlüsselten Werte zu tun haben. Auch die Prädikate BETWEEN und LIKE sind für verschlüsselte Daten nicht sinnvoll. Das gilt auch für eien Sortierung mit ORDER BY.

Die Verschlüsselung eines NULL-Wertes liefert den NULL-Wert des entsprechenden Datentyps. Ob ein Wert ein NULL-Wert ist oder nicht, ist daher auch bei Verschlüsselung keine vertrauliche Information. Die Verschlüsselung einer Zeichenkette der Länge 0 liefert hingegen eine Zeichenkette der Länge 16. Ohne Kenntnis des Schlüssels können sie nicht von den Verschlüsselungen von Zeichenketten mit 1 bis 14 alphanumerischen Zeichen unterschieden werden.

ACHTUNG! Verschlüsselte Werte können normalerweise nicht mehr entschlüsselt werden, wenn sie verkürzt oder verlängert werden (auch wenn die neue Länge ein Vielfaches von 16 ist). Eine Spalte mit verschlüsselten Werten sollte also z.B. nicht den Datentyp CHAR(20) haben, weil dann jedem verschluüsselten Wert 4 Leerzeichen angefügt wuerden. Vor dem Entschlüsseln müßten diese Leerzeichen wieder entfernt werden.