====== Symmetrische Verschlüsselung ====== Im Gegensatz zur asymmetrischen Verschlüsselung, bei der Daten mit einem privaten und öffentlichen Schlüssel ver-, bzw. entschlüsselt werden, wird bei der symmetrischen Verschlüsselung dasselbe Passwort (Schlüssel) zum Ver- und Entschlüsseln verwendet. ===== GnuPG ===== [[linux:gpg|GnuPG]], oder kurz ''gpg'', kann nicht nur für die asymmetrische Verschlüsselung verwendet werden, sondern auch zum symmetrischen Verschlüsseln von Daten. Um eine Datei mit ''gpg'' und [[https://de.wikipedia.org/wiki/Advanced_Encryption_Standard|AES256]] zu verschlüsseln, kann folgendes Kommando verwendet werden: gpg --symmetric --cipher-algo aes256 files.tar.gz Dabei wird man zur Eingabe des Passworts aufgefordert. Die verschlüsselte Datei erhält die Endung ".gpg". Mit der Option ''%%--output %%'' kann zusätzlich eine Ausgabedatei angegeben werden. Die Entschlüsselung erfolgt über gpg --decrypt files.tar.gz.gpg > files.tar.gz und der Eingabe des zuvor verwendeten Passworts zur Verschlüsselung. ==== Komprimierung ==== Um die Größe der verschlüsselten Daten zu verkleinern, kann zusätzlich noch ein Kompressionsalgorithmus angegeben werden. Es gibt drei Optionen für die Art der Komprimierung: **none**, **zip** und **zlib**. * ''%%--compress-algo none%%'' oder ''%%--compress-algo 0%%'' * ''%%--compress-algo zip%%'' oder ''%%--compress-algo 1%%'' * ''%%--compress-algo zlib%%'' oder ''%%--compress-algo 2%%'' Falls es sich um kaum oder nicht zu komprimierende Daten handelt wie beispielsweise Binärdaten (auch Bilder, Musik, ...), ist die Option ''%%--compress-algo 0%%'', also keine, empfehlenswert, da sie im Vergleich zu den beiden anderen Optionen etwa 50% schneller ist. Sind die Daten stark komprimierbar wie beispielsweise reiner Text, dann ist die Verwendung einer Komprimierung empfehlenswert, da so kleinere Datenmengen verschlüsselt werden müssen, was wiederum zu Geschwindigkeitsvorteilen führt. Bei sehr stark komprimierbaren Daten kann die Verwendung von **zip** oder **zlib** einen Geschwindigkeitsvorteil von 20-50% geben und die Größe der Daten um bis zu einen Faktor 20 verkleinern. ===== OpenSSL ===== Alternativ kann auch [[https://www.openssl.org/|OpenSSL]] zum Verschlüsseln von Dateien verwendet werden, wobei [[http://stackoverflow.com/questions/28247821/openssl-vs-gpg-for-encrypting-off-site-backups|GPG der OpenSSL-Variante vorzuziehen ist]]. Zum Verschlüsseln mit ''openssl'' kann der folgende Befehl verwendet werden: openssl enc -aes-256-cbc -in unencrypted_data -out encrypted_data Die Entschlüsselung funktioniert mit openssl enc -d -aes-256-cbc -in encrypted_data -out unencrypted_data