Ich verwende die OpenSSL-API EVP_ *, um die AES-Verschlüsselung im CBC-Modus zu implementieren.Implementieren von Ciphertext-Stehlen mit OpenSSL
Ich versuche, Chiffre Diebstahl zu implementieren, um den verschlüsselten Text die gleiche Länge wie der Klartext zu halten. Ich habe eine Methode gefunden, um das Padding auszuschalten (EVP_CIPHER_CTX_set_padding()), aber das scheint nicht den Chiffretext-Stealing anstelle von Padding zu aktivieren.
Hat jemand ein Beispiel wie Chiffre Diebstahl zu tun?
Obwohl es normalerweise verpönt ist, ein eigenes Krypto zu erstellen, möchten Sie es vielleicht selbst implementieren, wenn Sie keine gute Antwort bekommen (es ist vielleicht nicht in den openssl-Bibliotheken enthalten, manchmal schwer zu sagen). Diese Art von Modi ist normalerweise ziemlich einfach zu implementieren. Beachten Sie, dass jede Entschlüsselung ohne Integritätsschutz ein wenig gefährlich ist. –
@owlstead: Wikipedia erwähnt eine Möglichkeit, den Ciphertext-Diebstahl mit einer Standard-CBC-Engine zu implementieren, aber wenn ich kann, würde ich lieber etwas verwenden, das bereits getestet wurde, als mein eigenes zu erstellen. –
Es sollte natürlich bevorzugt werden, aber OpenSSL ist nicht dafür bekannt, jeden einzelnen Modus zu unterstützen. Wenn Sie es nicht einfach im Internet finden, besteht die große Chance, dass Sie keine Antwort bekommen. Sie können stattdessen den CTR-Modus verwenden, es ist ein Stromchiffriermodus für Blockchiffren und erfordert auch keine Auffüllung. –