Thread besondere Art einer verschlüsselten Datenbank (23 answers)
Opened by Ishka at 2004-08-05 03:03

murphy
 2004-08-06 00:58
#15780 #15780
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
[quote=murphy,05.08.2004, 19:10]btw: RSA ist ja auch nur ein Algorithmus, der den Verschlüsselungsalgorithmus umschliesst[/quote]
@esskar: RSA ist ein vollwertiger Verschlüsselungsalgorithmus, nicht irgendein Wrapper für einen anderen Kryptoalgorithmus! Im Allgemeinen wird aber Verschlüsselung mit RSA wie folgt betrieben (unter anderem auch bei S/MIME- oder PGP/GnuPG-Nachrichten):
* Nachricht komprimieren
* Nachricht mit 3DES / IDEA oder einer anderen Blockverschlüsselung verschlüsseln
* Den (zufällig generierten) Schlüssel der Blockverschlüsselung mit RSA verschlüsseln
* Überschlüsselten Schlüssel zusammen mit der Nachricht und einigen Infos (um beim Empfänger den richtigen Entschlüsselungsschlüssel und Blockverschlüsselungsalgorithmus auszuwählen) zusammenpacken und verschicken / abspeichern

edit: beim signieren von Nachrichten wird das Verschlüsseln mit einem blockorientierten Algorithmus durch Anwendung eines Hashalgorithmus ersetzt. In jedem Fall erhält die Nachricht hier ein Zufallselement, da zum einen zufällige Schlüssel verwendet werden, zum anderen die Nachricht in Blöcke eingeteilt wird, die im Zweifelsfall mit zufälligen Bits aufgefüllt werden und schließlich kann ein Hashalgorithmus auch noch einen zufälligen Startwert ("Salt") haben.

Da der Schlüssel für den Blockverschlüsselungsalgorithmus jeweils zufällig generiert wird, kommen beim mehrfachen Verschlüsseln natürlich unterschiedliche Gesamtpakete heraus.

Prinzipiell könnte man auch direkt die ganze Nachricht mit RSA verschlüsseln. RSA hat aber eine reichlich miese Laufzeitordnung, die sich bei großen Datenmengen unangenehm bemerkbar machen würde. Daher erzeugt man lieber einen "Sitzungsschlüssel" und verwendet ein schnelles Blockkryptographieverfahren, das in der Laufzeit linear mit der Datenmenge skaliert.

Und nur einen Blockverschlüsselungsalgorithmus zu verwenden würde einem natürlich die schönen Features der Kryptographie mit öffentlichen Schlüsseln rauben -- daher dieser Kompromiss.

Da der "Sitzungsschlüssel" aber in aller Regel schwächer als der RSA Schlüssel ist, muss man schon für jede Nachricht einen neuen generieren.

Einen Nachteil hat dieses Verfahren: Wenn jemand ein und dieselbe Nachricht mehrfach z.B. mit PGP oder S/MIME verschlüsselt und verschickt, kann man durch vergleich mehrerer verschlüsselter Kopien der Nachricht eventuell Informationen über ihren Inhalt gewinnen. Aber es gilt sowieso die goldene Regel der kryptographischen Datensicherheit: Verschlüssele niemals, unter keinen Umständen, dieselbe Nachricht mehrfach unterschiedlich! Wegen solcher Fehler sind schon Kriege verloren worden...\n\n

<!--EDIT|murphy|1091739883-->
When C++ is your hammer, every problem looks like your thumb.

View full thread besondere Art einer verschlüsselten Datenbank