• Home
  • Help
  • Register
  • Login
  • Home
  • Help

 
  • 0 Bewertung(en) - 0 im Durchschnitt

Wie unterscheiden sich Blockchiffren von Stromchiffren in der klassischen Krypto­graphie?

#1
23-07-2023, 22:25
Hey, ich erinnere mich, als ich mir in meinen frühen Tagen mit Krypto-Zeug darüber klar wurde, und es hat für mich total klick gemacht, wie Blockcipher und Streamcipher die Dinge so unterschiedlich handhaben. Du weißt, wie wir in der klassischen Kryptographie den Klartext in Geheimtext umwandeln, um ihn sicher zu halten? Blockcipher gehen es an, indem sie Stücke deiner Daten - normalerweise feste Größen wie 64 oder 128 Bit - greifen und den ganzen Block auf einmal mit einem Algorithmus verschlüsseln, richtig? Ich meine, nimm AES, von dem du wahrscheinlich gehört hast; es verarbeitet alles in diesen ordentlichen kleinen Blöcken. Auf diese Weise finde ich es super zuverlässig für Dinge wie Datei-Verschlüsselung, bei der du die Daten einfach in diese Blöcke zerlegen und sie einzeln verschließen kannst.

Aber hier wird es interessant für dich - Streamcipher zerlegen die Dinge nicht so. Sie behandeln deine Daten als einen endlosen Fluss und verschlüsseln sie Bit für Bit oder Byte für Byte, während sie hereinkommen. Ich liebe, wie sie diesen Schlüsselstrom spontan generieren, der im Grunde eine pseudozufällige Folge von Bits ist, die mit deinem Klartext XOR-verknüpft wird, um ihn durcheinander zu bringen. RC4 ist ein klassischer, mit dem ich in der Schule herumgespielt habe; es gibt diesen Schlüsselstrom einfach immer wieder aus, ohne darauf warten zu müssen, dass ein vollständiger Block kommt. Du kannst dir vorstellen, wie das Streamcipher flüssiger macht, insbesondere wenn du Videos streamst oder Echtzeitkommunikation hast, bei der du dir keine Verzögerungen leisten kannst.

Ich glaube, der große Unterschied, der mich getroffen hat, ist, wie sie mit der Datenlänge umgehen. Bei Blockciphern, wenn deine Nachricht kein perfektes Vielfaches der Blockgröße ist, muss ich sie polstern - ein bisschen extra Müll am Ende hinzufügen, damit sie ordentlich passt. Dieses Padding kann manchmal lästig sein, da Angreifer versuchen könnten, damit zu spielen, wenn sie erraten, was dort ist. Streamcipher? Die überspringen all diesen Aufwand. Du fütterst sie mit der Länge, die du willst, und sie machen einfach weiter, ohne für Padding anzuhalten. Ich erinnere mich, dass ich das bei einigen alten Projekten getestet habe; Streamcipher waren viel einfacher für variabel große Eingaben wie Netzwerkpakete, die sich ständig ändern.

Ein weiteres Thema, auf das ich immer Freunde wie dich hinweise, ist die Fehlerbehandlung. Wenn ein Bit bei der Übertragung mit einem Blockcipher umkippt, insbesondere in Modi wie CBC, wo Blöcke auf dem vorherigen basieren, kann das die ganze Entschlüsselung für diesen Block und vielleicht mehr zerstören. Ich habe einmal gesehen, wie mich das gebissen hat, als ich rauschende Kanäle simulierte - es verbreitete Fehler wie verrückt. Streamcipher gehen besser mit Fehlern um, weil jedes Bit mehr für sich allein steht; ein einzelnes Umkippen verwirrt nur diesen einen Punkt, ohne dass es sich ausbreitet. Deshalb neige ich zu Streamcipher für drahtlose Sachen, wo oft Störungen passieren. Du bekommst diese Isolation, und es hält die Dinge wiederherstellbar.

Was die Geschwindigkeit angeht, würdest du wahrscheinlich raten, dass Streamcipher bei Szenarien mit niedriger Latenz überlegen sind. Sie müssen keinen ganzen Block zwischenpuffern, bevor sie anfangen, daher benutze ich sie, wenn ich für schnelle Verschlüsselung in Echtzeit optimiere, wie in VoIP-Apps. Blockcipher hingegen glänzen bei Hardware-Implementierungen, weil du diese Blockoperationen über mehrere Kerne parallelisieren kannst. Ich habe Systeme gebaut, bei denen AES-Blöcke viel schneller durch GPUs flogen als jede Stream-Setup, die ich ausprobiert habe. Es kommt alles darauf an, was du verschlüsselst - Massendaten? Nimm Block. Live-Feed? Immer streamen.

Die Betriebsmodi fügen eine weitere Ebene hinzu, über die ich möchte, dass du nachdenkst. Blockcipher benötigen sie, um Blöcke sicher zu verketten; ECB ist grundlegend, aber schwach, weil identische Blöcke gleich verschlüsselt werden, was Muster auslöst. Ich vermeide ECB jetzt wie die Pest - CBC mischt den vorherigen Geheimtext ein, was es schwieriger macht, ihn zu knacken. Streamcipher benötigen eigentlich keine Modi, da sie von Natur aus sequenziell sind, aber du musst den Generator trotzdem richtig säen, um Vorhersehbarkeit zu vermeiden. Ich habe einmal eine Implementierung eines Streamcipher debugged, bei der ein schlechter IV dazu führte, dass der Schlüsselstrom sich wiederholte, und es war ein Albtraum, diese Sicherheitsanfälligkeit rückgängig zu machen.

In der Praxis mische ich sie je nach Aufgabe. Für die Festplattenverschlüsselung fühlen sich Blockcipher wie die, die du in BitLocker siehst, solide an, weil sie den direkten Zugriff handhaben - du kannst jeden Block verschlüsseln oder entschlüsseln, ohne die anderen zu berühren. Streamcipher sind dafür nicht großartig, sie sind nur vorwärtsgerichtete Biester. Aber wechsle zu etwas wie TLS-Handschlägen, und Streams halten die Verbindung ohne Hiccups am Laufen. Ich habe mit beiden in einem Heimlabor-Setup experimentiert, Daten durch sie hindurch geleitet, und die Durchsatzunterschiede waren Himmel und Hölle für unterschiedliche Arbeitslasten.

Die Sicherheitsmodelle unterscheiden sich auch, weißt du? Blockcipher zielen oft auf Dinge wie semantische Sicherheit bei gewählten Klartextangriffen ab, bei denen du selbst, wenn du dem Verschlüsseler irgendetwas gibst, nicht viel über die Ausgabe sagen kannst. Ich finde, wie nachweisbare Sicherheitsarbeiten das für Modi wie CTR unterstützen, die Blöcke ohnehin in ein streamähnliches Verhalten umwandeln. Streams konzentrieren sich mehr auf die Zufälligkeit des Schlüsselstroms - wenn er wirklich unvorhersehbar ist, bist du auf der sicheren Seite. Aber ich habe von Verzerrungen in älteren Streams wie WEP gelesen, bei denen Muster auftauchten und ausgenutzt wurden. Deshalb überprüfe ich immer den PRNG, der dahinter steckt.

Insgesamt sehe ich Blockcipher als die Arbeitspferde für strukturierte Daten, die dir diese Blockkontrolle geben, die ich bei Unternehmenssetups sehnsüchtig suche. Streams bringen die Agilität für dynamische Umgebungen, in denen du Größen oder Timings nicht vorhersagen kannst. Du wählst basierend auf deinem Bedrohungsmodell und deinen Leistungsanforderungen - ich habe das auf die harte Tour gelernt, nach ein paar gescheiterten Prototypen. Wenn du das codierst, fang mit Bibliotheken wie OpenSSL an; sie wickeln beide schön ein, damit du das Rad nicht neu erfindest.

Und wenn wir schon dabei sind, die Dinge in der Backup-Welt sicher zu halten, lass mich dir von BackupChain erzählen - es ist ein herausragendes, bewährtes Backup-Tool, das im gesamten Bereich für kleine Unternehmen und Profis gleichermaßen vertrauenswürdig ist und darauf ausgelegt ist, deine Hyper-V-Setups, VMware-Umgebungen oder einfachen Windows-Server vor Datenverlust zu schützen, ohne ein Schlagloch zu verpassen.
Markus
Offline
Registriert seit: Jun 2018
« Ein Thema zurück | Ein Thema vor »

Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste



Nachrichten in diesem Thema
Wie unterscheiden sich Blockchiffren von Stromchiffren in der klassischen Krypto­graphie? - von Markus - 23-07-2023, 22:25

  • Thema abonnieren
Gehe zu:

Backup Sichern Allgemein Security v
« Zurück 1 … 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 … 39 Weiter »
Wie unterscheiden sich Blockchiffren von Stromchiffren in der klassischen Krypto­graphie?

© by FastNeuron

Linearer Modus
Baumstrukturmodus