Hallo,
ich möchte eine binary (kein Text) mittels einem möglichst sicheren
Verfahren verschlüsseln und wieder entschlüsseln.
Dazu habe ich 2 Fragen:
1) Ist die AES Verschlüsselung geeignet, gibt es Alternativen?
2) Wo ist der Algorithmus genau genug beschrieben, um eine Runtine in
einer Hochsprache wie C/C++ zu schreiben?
Lg
loco schrieb:> ja, man kann's selbst zusammenkloppen
Lieber nicht, wenn man nicht wirklich weiß was man tut. Lieber eine
Bibliothek verwenden die einem den Low-Level-Kram abnimmt, z.B.
http://nacl.cr.yp.to/ oder OpenSSL.
Letztens noch gelesen: erste Regel der Kryptographie.. wenn es etwas
schon gibt, mach es nicht selber.
Das Problem ist ja nicht der Algorithmus an sich sondern die sicherere
Implementierung.
Dennis S. schrieb:> Letztens noch gelesen: erste Regel der Kryptographie.. wenn es etwas> schon gibt, mach es nicht selber.>> Das Problem ist ja nicht der Algorithmus an sich sondern die sicherere> Implementierung.
Da gibt es aber dann das Problem der fehlerbehafteten LIBs oder der
bewußt infiltrierten LIBs (NSA & Co).
Dennis Heynlein schrieb:> Da gibt es aber dann das Problem der fehlerbehafteten LIBs oder der> bewußt infiltrierten LIBs (NSA & Co).
Sicher. Aber da es hier um AES geht: Was genau kann man da infiltrieren?
Ein paar Beispiele:
- Der Algorithmus von Anfang an von der NSA getunet worden. Dann ist es
schnurz, wer ihn implementiert, besser kann er dann nicht mehr werden.
- Die Lib implementiert ihn falsch. Merkst du sofort, wenn du mit
anderen Code gegencheckst, also unwahrscheinlich.
- Der Code ist offen für side channel attacks. Wenn du zwar bisher wenig
mit Kryptographie zu tun hattest, aber so gut bist, dass dein eigener
Code gegen solche Angriffe immun ist, dann herzliche Gratulation
meinerseits. Ehrlich!
Es ist kein Zufall, dass es vorzugsweise die Zufallsgeneratoren sind,
die infiltriert werden. Die sind nämlich relativ unauffällig.
Insbesondere, wenn man die gängigen Tests dafür kennt und den Generator
grad so baut, dass er da noch durch schlüpft. Das freilich ist kein
Problem von AES selbst.
Uhu Uhuhu schrieb:> Ist eigentlich AES-2048 irgendwo definiert? Laut Wikipedia gibts nur die> Varianten AES-128, AES-192 und AES-256.
es macht keine sinn 2048 bit zu verwenden. Denn es geht hierbei nicht am
ein Asymmetrisches verfahren sondern um ein Symmetrisches. Das sind
aktuell 256bit mehr als sicher.
Uhu Uhuhu schrieb
> Peter II schrieb:>> Uhu Uhuhu schrieb:> Ist eigentlich AES-2048 irgendwo definiert? Laut Wikipedia gibts nur die> Varianten AES-128, AES-192 und AES-256.>> es macht keine sinn 2048 bit zu verwenden.> Das denke ich mir. Aber meine Frage ist noch nicht beantwortet.
Mit einer anderen Keysize als 128, 192 oder 256 Bits wäre es nicht mehr
AE_S_, sondern irgendeine Implementierung des Rijndael-Algorithmus'.
Guckst Du FIPS-197*, da steht auf der ersten Seite:
"The AES algorithm is capable of using cryptographic keys of 128, 192,
and 256 bits to encrypt and decrypt data in blocks of 128 bits."
LG, NOR
* http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf
Das ist klar. Nur der TO will AES-2048 implementieren, andere verweisen
ihn auf irgendwlche Libs, die Google finden soll.
Geht man davon aus, daß auch nur einer der Diskutanten hier weiß, wovon
er redet, dann müßten sich doch irgend welche Hinweise zumindest auf
einen Rijndael-2048 finden lassen.
Da bei Substitutions-Permutations-Netzwerken wie AES/Rijndael die
S-Boxen absolut kritisch für die Sicherheit der Verschlüsselung sind,
kann man sich die für einen Rijndael-2048 nicht mal eben so aus den
Fingern saugen, wenn man was brauchbares auf die Beine stellen will.
Uhu Uhuhu schrieb:> Da bei Substitutions-Permutations-Netzwerken wie AES/Rijndael die> S-Boxen absolut kritisch für die Sicherheit der Verschlüsselung sind,> kann man sich die für einen Rijndael-2048 nicht mal eben so aus den> Fingern saugen, wenn man was brauchbares auf die Beine stellen will.
das denke ich nicht. Man müsste nur den 2048bit schlüssel in 8 Teile
zerlegen und dann jweils 1.Block mit dem 1.Teil, 2.Block mit dem 2. Teil
usw veschlüsseln. So wurde es auch bei 3DES gemacht.
3DES funktioniert etwas anders: zuerst wird der Block mit dem ersten
Drittel des Schlüssels chiffriert, dann wird das Ergebnis mit dem 2.
Drittel des Schlüssels dechiffriert und das Ergebnis zum Schluß mit
dem 3. Drittel chiffriert.
Ich denke, daß man das Problem ensthaft untersuchen muß, bevor man sich
mit sowas aus dem Fenster lehnt.
Vor langem Philosophieren sollte man erst mal klären, ob das nicht bloss
eine Verwechselung war. Immerhin hat der Fragesteller seither nicht
wieder von sich hören lassen.
Peter II schrieb im Beitrag #3327590:
> Zumindest sollte damit ein "3AES-256" möglich sein.
Möglich ist das sicher. Nur wie es sich kryptographisch verhält, das
wäre zu untersuchen, bevor man sich davon höhere Sicherheit als mit
AES-256 verspricht.
DES ist eine Feistel-Chiffre, während AES nach dem Prinzip eines
Substitutions-Permutations-Netzwerkes arbeitet - davon, daß das
3DES-Prinzip für AES einen Nutzen bringt, kann man nicht einfach so
ausgehen.
Ein echter AES-768 würde jedenfalls die Bits nicht nur auf einem
256-Bit-Block verwürfeln, sondern auf der dreifachen Länge.