Mechanismus publickey

Alice verschlüsselt Daten mit 128bit, symmetrisch (16Byte)
Gegeben : Datei plainfile.txt und 16Byte ("abcdabcdabcdabcd") als Symmetrischer Schlüssel
Verwendet : blowfish - Verschlüsselung im CBC-Mode ( -bf )
openssl enc -e -bf -k "abcdabcdabcdabcd" -in plainfile.txt -out cipherfile.xtx
Streng gesehen wird aus der Zeichenkette "abc..." erst ein 128-Schlüssel erzeugt.
Die Zeichenkette kann auch kürzer oder länger als 16 Byte sein.
Sie ist nicht der Schlüssel, wird aber wie ein Schlüssel verwendet.
Alice verschlüsselt den Symmetrischen Schlüssel mit Bobs publickey
Gegeben : Symmetrischer Schlüssel, 128 bit ( 16Byte), Bobs publickey bob_pub.pem
 openssl rsautl -encrypt -pubin -in plain.key -inkey testpub.pem -out crypt.key
-encrypt : es wird verschlüsselt
-pubin : es wird mit einem öffentlichen Schlüssel verschlüsselt (-inkey)
-in : enthält den sym. Schlüssel im Klartext (plain.key), STDIN-Eingabe möglich.
Alice sendet Daten und den verschlüsselten symmetrischen Schlüssel an Bob
Übermittelt werden Dateien cipherfile.xtx und crypt.key
Bob entschlüsselt den symmetrischen Schlüssel mit seinem privatekey
Gegeben : Verschlüsselter sym. Schlüssel (crypt.key) , Bobs privatekey
openssl rsautl -decrypt -in crypt.key -inkey bob_priv.pem -out plain.key
Der symmetrische Schlüssel liegt jetzt im Klartext in der Datei plain.key bei Bob
Bob entschlüsselt die Daten mit dem symmetrischen Schlüssel
Gegeben : Verschlüsselte Daten in Datei cipherfile.xtx, sym. Schlüssel in Datei plain.key
openssl enc -d -bf -kfile plain.key -in cipherfile.xtx -out plainfile.txt
Der Klartext liegt jetzt in der Datei plainfile.txt vor
Was übermittelt wird
  1. Dateien :
    Die Datei cipherfile.xtx, die mit einem 128-bit Schlüssel symmetrisch Verschlüsselt wurde
    Die Datei crypt.key, die mit Bobs publickey verschlüsselt wurde und nur mit seinem privatekey entschlüsselt werden kann.
    Übermittelt werden
  2. Informationen :
    Das Verschlüsselungsverfahren ( hier : Blowfish CBC )
    Die Schlüsselllänge ( es gibt Verfahren mit variabler Schlüssellänge z.B. AES-Rijndael )
Bemerkung
Der gezeigte Mechanismus beschränkt sich auf die Schlüsselübergabe.
Um die Integrität der Daten zu gewährleisten, kann ein Digest verwendet werden.
Um die Authentizität der Daten zu gewährleisten, kann Alices privatekey verwendet werden und ihr publickey muß Bob bekannt sein.