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.
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.