Nein, du kannst nicht.
Nicht für den Blowfish-Algorithmus.
Der Grund dafür ist jedoch nicht dass jedes Verschlüsselungsschema gebrochen werden würde, wenn es möglich wäre, den Schlüssel aus einem Paar von Klartext und Chiffre ableiten, auch wenn es einfach ist, dies zu tun.
Der Rest dieser Antwort soll das erklären.
Es gibt mindestens ein Verschlüsselungsschema, das trotz der Ableitung des Schlüssels sicher ist. Es ist das One-Time-Pad-Verschlüsselungsschema, das das einzige bekannte wirklich sichere Verschlüsselungsschema ist, da es sich als unschlagbar erweist.
Der Punkt ist, dass das Ableiten des Schlüssels einer Nachricht nur ein Verschlüsselungsschema durchbricht, wenn das Wissen des Schlüssels einer Nachricht die Entschlüsselung aller zukünftigen Nachrichten erlaubt. Dies ist wiederum nur anwendbar, wenn derselbe Schlüssel wiederverwendet wird.
Die Spezialität der One-Time-Pad-Verschlüsselung ist
a) jede Taste ist nur für eine einzige Nachricht verwendet und nie wieder
(das ist, warum es „pad“ genannt wird, auf einen Notizblock mit Bezug mit vielen Tasten, aus denen das Blatt mit einem benutzten Schlüssel einfach weggenommen und zerstört wird)
b) der Schlüssel ist so lang wie die Nachricht
(sonst leitet man den Schlüssel für einen Teil der Chiffre mit einem partiellen bekannten Klartext ab würde erlauben, den Rest der Nachricht zu entschlüsseln)
Mit diesen Attributen enc Das Rypten selbst mit dem bescheidenen XOR ist unzerbrechlich, wobei jedes Bit in der Nachricht seinem eigenen dedizierten Bit in dem Schlüssel entspricht. Dies ist auch so schnell wie de-/encryption bekommt und erhöht nie die Nachrichtenlänge.
Es gibt natürlich einen großen Nachteil der One-Time-Pad-Verschlüsselung, nämlich Schlüssellogistik. Die Verwendung dieser Verschlüsselung ist kaum anwendbar, da der Empfänger einer Nachricht mit vielen großen Schlüsseln (oder besser einem sehr langen Schlüssel, der teilweise für jede Nachrichtengröße verwendet werden kann) versehen wird, und zwar im Voraus.
Dies ist der Grund dafür, dass die One-Time-Pad-Verschlüsselung nicht verwendet wird, obwohl sie sicherer und schneller als alle anderen ist und mindestens so effizient ist.
Andere Verschlüsselungsschemata gelten als praktisch sicher, sonst würden sie natürlich nicht verwendet.
Es ist jedoch notwendig, die Schlüsselgrößen parallel zu jedem erkennbaren Fortschritt der Kryptoanalyse zu erhöhen. Es gibt keinen mathematischen Beweis, dass ein anderer Algorithmus nicht unterscheidbar ist (dh es ist unmöglich, den Schlüssel aus einem einfachen Chiffre-Paar abzuleiten). Kein Mathe-Experte akzeptiert "Ich kann mir keinen Weg vorstellen, das zu tun." Beweis dafür, dass etwas unmöglich ist. Darüber hinaus könnten neue Technologien die Zeit für die Schlüsselableitung oder für das Auffinden von Klartext ohne Schlüssel auf einen Bruchteil reduzieren, was plötzlichen Untergang zu den üblicherweise verwendeten Schlüssellängen bedeutet.
Die Symmetrie oder Asymmetrie des Algorithmus ist übrigens irrelevant. Beide Arten können ableitbar sein oder nicht.
Nur die Schlüssellänge in Bezug auf die Nachrichtenlänge ist wichtig. Auch bei der One-Time-Pad-Verschlüsselung muss ein kurzer Schlüssel (Nachrichtenlänge ist ein Vielfaches der Schlüssellänge) mehr als einmal verwendet werden. Wenn der erste Teil einer Chiffre einen bekannten Klartext hat und es erlaubt, den Schlüssel abzuleiten, ermöglicht es die Wiederverwendung, die unbekannte Ebene für den Rest der Nachricht zu finden.
Dies gilt auch für Blockchiffre-Schemata, die den Schlüssel für jeden Block ändern, aber dennoch ermöglichen, den neuen Schlüssel mit der Kenntnis des vorherigen Schlüssels zu finden, falls dieser identisch ist. Hybrid-Schemata, die einen (möglicherweise asymmetrischen) Hauptschlüssel verwenden, um mehrere (normalerweise symmetrische) Blockschlüssel zu erzeugen, die nicht voneinander abgeleitet werden können, werden aus Gründen dieser Antwort als ableitbar betrachtet, wenn der Hauptschlüssel abgeleitet werden kann. Es gibt natürlich keinen weitverbreiteten Algorithmus, für den das gilt.
Bei jedem Schema steigt das Risiko, ableitbar zu sein, mit dem Verhältnis der Anzahl der Bits im Schlüssel zur Anzahl der Bits in der Nachricht. Je mehr Paare von Ziffernbits und einfachen Bits sich auf jedes Schlüsselbit beziehen, desto mehr Informationen stehen für die Analyse zur Verfügung. Für eine Eins-zu-Eins-Beziehung ist es möglich, die Information eines einfachen Chiffrierpaars auf dieses einzelne Paar zu beschränken.
Aus diesem Grund erfordert jede ableitbare Verschlüsselung eine Schlüssellänge, die der Nachrichtenlänge entspricht.
Umgekehrt bedeutet dies, dass nur nicht-ableitbare Verschlüsselungen kurze Schlüssel haben können. Und kurze Schlüssel zu haben, ist natürlich ein Vorteil, insbesondere wenn die Schlüssellänge die Verarbeitungsdauer impliziert. Die meisten Verschlüsselungsschemata dauern länger mit längeren Schlüsseln. Das One-Time-Pad ist jedoch für jede Schlüssellänge gleich schnell.
So ist jeder Algorithmus mit einfacher Schlüssellogistik (keine Notwendigkeit, sich auf große Mengen von Keybits vorher zu einigen) nicht ableitbar. Auch jeder Algorithmus mit akzeptabler Geschwindigkeit ist nicht ableitbar.
Beides gilt für jeden weit verbreiteten Algorithmus, einschließlich Blowfish.
Dies gilt jedoch nicht für alle Algorithmen, insbesondere nicht für die einzig wirklich sichere, die One-Time-Pad-Verschlüsselung (XOR).
So die Antwort auf Ihre spezifische Frage ist in der Tat:
Sie können nicht mit Blowfish und die meisten Algorithmen, die Sie wahrscheinlich denken. Aber ...
http://cryptopals.com/ –
Die gewählte akzeptierte Antwort hat mehrere Probleme und sollte daher nicht die akzeptierte Antwort sein. Andere Antworten wie Rossum und SoronelHaetir sind korrekt. Bitte überlegen Sie, die akzeptierte Antwort auf eine dieser Antworten zu ändern. – zaph