2013-10-05T10:08:33
biancaCrypt::CBC scheint gut zu funktionieren und hat zur angenehmen Abwechslung sogar eine verständliche Doku:
[...]
Frage 1: Kann bei diesem Verfahren wirklich sichergestellt werden, dass jemand nicht allein aufgrund des verschluesselten Binärcodes auf den Schlüssel kommen kann?
[...]
Das ist der Sinn einer Verschlüsselung, ja. Wenn
Crypt::CBC und das gewählte Blockverschlüsselungsmodul mathematisch und programmatisch bugfrei sind, ist das solange sicher, wie die gesamte jemals mit demselben Schlüssel verschickte Nachrichtenlänge in einem vernünftigen Rahmen bleibt. Bei CBC mit randomisiertem IV sollte die irgendwo in der Größenordnung von 2^(<Blocklänge in Bits> / <kleine Konstante>) liegen.
Quote[...]
Frage 3: Der Parameter -cipher ist mir nicht ganz klar. In der Doku steht u.a. You may use any compatible block encryption algorithm that you have installed.. Habe ich eine Chance herauszufinden, was ich alles installiert habe? Oder bezieht sich das darauf, welche der nachfolgend erwähnten Module installiert sind?
[...]
Ich denke, das bezieht sich auf die folgende Liste aus der Dokumentation des Modules:
Quote[...]
The -cipher option specifies which block cipher algorithm to use to encode each section of the message. This argument is optional and will default to the quick-but-not-very-secure DES algorithm unless specified otherwise. You may use any compatible block encryption algorithm that you have installed. Currently, this includes Crypt::DES, Crypt::DES_EDE3, Crypt::IDEA, Crypt::Blowfish, Crypt::CAST5 and Crypt::Rijndael. You may refer to them using their full names ("Crypt::IDEA") or in abbreviated form ("IDEA").
[...]
Quote[...]
Angenommen, davon wäre keines installiert, welche Wahlmöglichkeiten habe ich dann? Ist Blowfish die einzige?
[...]
Ich denke, wenn keine Blockverschlüsselung installiert ist, kannst Du auch
Crypt::CBC nicht benutzen.
Quote[...]
Würde gern sicherstellen, dass das Verfahren verwendet wird, was den größten "Knackschutz" bei vertretbarem Rechenaufwand bietet.
[...]
- Blowfish hat bekannte mathematische Schwachstellen, die man aber vermeiden kann wenn man keine Schlüssel mit bestimmten statistischen Eigenschaften verwendet.
- Rijndael ist auch bekannt als AES und gilt bei 256 Bit Schlüssellänge wohl immer noch als sicher, bei 128 Bit Schlüssellänge könnten möglicherweise mathematische Schwachstellen genutzt werden.
- DES hat bekannte mathematische Schwachstellen und viel zu kurze Schlüssel (von 56 Bit), Triple-DES hat für den heutigen Stand wohl zu kurze Schlüssel (von maximal 168 Bit) um die Probleme von DES vollständig zu vermeiden.
- IDEA ist mit Patenten belastet, hat etwas kurze Schlüssel (von 128 Bit) und hat wie Blowfish bekannte Schwachstellen bei der Verwendung bestimmter Klassen von Schlüsseln.
- CAST5 hat etwas kurze Schlüssel (von maximal 128 Bit) aber ich habe noch nichts von erfolgreichen Angriffen gelesen.
Selbstverständlich sind alle diese Angaben ohne Gewähr. Ich bin kein ausgewiesener Experte auf dem Gebiet der Kryptographie.
Wenn Du nur Verfahren verwenden willst, bei deren Entwicklung die NSA nicht die Finger im Spiel hatte, fallen natürlich DES und Rijndael / AES aus.
Quote[...]
Frage 4: Wenn jemand während der Übertragung die Datei austauscht und mein Empfänger entschlüsselt die Datei mit dem selben Schlüssel wie der Absender, dann kommt ja trotzdem etwas raus. Das entspricht natürlich nicht mehr dem, was abgesendet wurde aber wie kann der Empfänger das feststellen?
Das kann der Empfänger überhaupt nicht feststellen. Die Sicherheit basiert auf dem Schlüssel, wenn ein Angreifer den geheimen Schlüssel nutzen kann um andere Nachrichten zu erstellen, ist die Sicherheit im Eimer.
When C++ is your hammer, every problem looks like your thumb.