AES Verschluesselung in C++ programmieren ?
-
wri8ter schrieb:
Hey liebe Community
Hi, wri8ter,
Willkommen!wri8ter schrieb:
Wie findet ihr den AES Verschlüsselungsalgorithmus ???
Der ist gut.
wri8ter schrieb:
Ist dieser schwer in C++ zu programmieren ?
Nein. Alle bekannten guten Verschlüsselungsalgorithmen sind in C/Pascal-ähnlichen Sprachen recht leicht. Weil sie auf üblichen Prozessoren schnell sind und einfach genug, daß die Kryptoanalytiker einen guten Zugang haben, der gute Zugang und daß sie ihn noch nicht knacken, macht ihn erst glaubwürdig.
wri8ter schrieb:
Würde gerne mal das Wochende mich daran hin setzten
und eine einfache
txt. Datei in AES zu verschluesselnGute Sache das. Meine Empfehlung wäre zur Zeit, voll auf AES zu setzten. Weil die Prozessorbauer auch AES in ihre Prozessoren einbauen. Wird Dein Programm ein Publikumsrenner, kannste ja leicht was basteln (lassen!, hast ja die Kohle), was bei jedem geeigneten Prozessor die Hardware benutzt. Und AES ist sicherlich das Thema (wegen der Prozessorbauer), was in der Wissenschaft am strengsten untersucht wird. Wer das knackt, kriegt eine wissenschaftliche (wenn nicht eine kulturgeschichtliche) goldene Nase. Ganz viel mehr, als wenn man ein Nischenprodukt knackt.
Zum Thema AES-Crack verkaufen haben wir einen Neben-Thread. Geht nicht. Man bekommt nicht 100Mio€ von einem Geheimdienst, sondern nur eine nette Massage und dann eine Kugel. Man kann den Crack nur direkt veröffentlichen und damit den Ruf seiner und des Instituts und der Hochschule heben und den zu Geld machen.
-
Hey
Erstmal super vielen Dank : fuer die vielen Infos Auf Wikipedia Seiten ist das
immer so eine Sache...Ja du hast Recht es ist wirklich so... mann kann sich leider nicht gegen solche riesen Mächte einzelnd wehren... wer weiss vllt. werden wir ja jetzt schon wieder
von der nsa abgehört... auch viele die vllt. auf Linux hoffen.. habe erfahren dass Ubuntu auch scho ein Teilprojekt der NSA ist.Und das mit einer Massage und Kugel klingt sogar realistisch...besonders wenn man von den Ammis spricht
... man muss ja nur die Geschichte mit Snowden vergleichen. Klar auf der einen Seite hat er den Staat hintergangen indem er nicht geschwiegen hat... aber ehrlich gesagt hat er alles richtig gemacht... wo lebe wir nach 20 Jahren.. im big broher Haus
wo sind unsere Freiheiten
und nun wird er gejagt ohne Ende
Na um zurück zu kommen..wenn man also die Prozessor Hacken könnte .. dann kann ma sozusage Computer und Laptops von der Hardware zerstören Also ich sag mal so de AES zu entschluessel ist denke nicht das Problem oder ?
Weil alle Algorithmen die im Interet stehen... lassen sich zurück verfolgen
Sprichtwort : Legende sterben früh
Ist doch wirklich so,... alle sehr begabte Leute wie z.B boris f der wirkllich in bits und bytes denken konnte und zap auf einmal wurde er so einfach umgebracht ist das normal ? er stand in KOntakt mit viele Firmen in Kontakt auch mit einige aus Israel.. naja er hatte sich geweigert einen Auftrag anzunehmen er war nicht verpflichtet...
Wenn du also sehr provokantes denken hast... und anderen Leute große Konkurrenz machst..weil du einfach in deine Leidenschaft so begabt bist
Du willst zwar
die Welt friedlicher machen und ein teil besser... aber wenn du dann in dem Zeitpunkt zur falschen Zeit am falschen Ort bist..kriegen dich die Millionäre die keine Gnade haben ...Also Geld regiert die Welt
Aber ich appelliere an die Leute die auch noch für Freiheit kämpfen der Open
Source gedanke...Also in diesem Sinne
werde mich mal an AES hin setzten und versuchen erstmal eine einfach text datei zu verschluessen
lg writ8er
ps : und lass nicht so lange die taste quirren
-
wri8ter schrieb:
Wie findet ihr den AES Verschlüsselungsalgorithmus ???
Geht so. Er hat 'ne recht elegante Struktur. Aber dafür kommt eine effiziente Softwareimplementierung nicht ohne Lookup-Tables aus. Und das ist eigentlich schlecht, weil es eine Seitenkanalangriffsfläche per Cache-Timing bietet. Softwareimplementierungen von AES, die diese Schwäche nicht haben, sind komplizierter und nicht so schnell. Leider.
wri8ter schrieb:
Würde gerne mal das Wochende mich daran hin setzten
und eine einfache
txt. Datei in AES zu verschluesselnIch würde drauf tippen, dass du mehr als ein Wochenende brauchst. Du musst ja erstmal die "GF2^8"-Arithmetik verstehen, die da benutzt wird. Die von hier verlinkte Spezifikation verrät auch nicht, wie man das effizient implementiert, sondern verweist diesbezüglich nur auf weitere Veröffentlichungen. Außerdem ist AES eine Blockchiffre. Das heißt, es verschlüsselt und entschlüsselt immer nur einen 16-Byte-Block. Wie man dann mit längeren Nachrichten umgeht, ist nach Implementierung von AES das nächste Problem (mode of operation).
wri8ter schrieb:
Hat jemand schon Erfahrung mit dem AES ???
Ja. Also ich habe das ganze Spiel schon durchgespielt inklusive Lookup-Table-basierter Implementierung. Natürlich nur zu Lernzwecken und nicht, weil ich die selbst gestrickte Implementierung auch irgendwo habe einsetzen wollen; denn man baut seine Krypto nicht wirklich selbst. Da kann man einfach zu viel falsch machen.
Wenn Dir AES mit seiner MDS-Matrix und dem Körper aus binären Polynomen modulo
x8+x4+x^3+x+1 zu kompliziert ist (und da gehe ich mal von aus -- ist nicht böse gemeint) dann probier doch stattdessen mal ChaCha aus. ChaCha ist viel einfacher zu implementieren. Es ist auch keine Blockchiffre mehr. Es ist eine Stromchiffre. ChaCha generiert im Wesentlichen ausgehend von einem Schlüssel und einem sogenannten "Nonce" (= Number used ONCE) einen pseudozufälligen Strom an Bits, die man dann mit seiner Nachricht XORen kann. Die Nonce muss man immer so wählen, dass sie kein zweites Mal für denselben Key verwendet wird. Das ist sehr wichtig; denn Du willst so einen pseudozufälligen Bitstrom nur ein einziges Mal verwenden. Mit einem anderen Nonce für einen Key, sieht der nämlich wieder ganz anders aus.
Das hat auch den netten Nebeneffekt, dass dieselbe Nachricht mit demselben Schlüssel unterschiedlich verschlüsselt werden kann. So kann der Angreifer bei mehreren abgeschnüffelten Nachrichten dann nicht mal sehen, ob zwei Nachrichten dieselben waren.
-
Arcoth schrieb:
wri8ter schrieb:
Ist dieser schwer in C++ zu programmieren ?
Nö, ist Kinderleicht.
Bullsh!t. Es gibt viele leicht zu implementierende Verschlüsselungsalgorithmen. AES gehört nicht wirklich dazu -- zumindest dann nicht, wenn die Implementierung effizient und Seitenkanal-resistent sein soll. Die GF2^8-Arithmetik ist einfach "pain in the ass". Dagegen sind Algorithmen, die auf ARX/LRX(*) beruhen ein Kinderspiel bzgl Implementierung.
(* ARX = Add-Rotate-XOR, LRX = ARX ohne A dafür mit anderen logischen Operationen)
-
Jedenfalls sollte man nicht glauben, dass man mal eben so Krypto auf eine Art und Weise implementieren kann, dass da auch etwas rauskommt, dem man dann genug Vertrauen schenken könnte. Wie gesagt: Man kann da einfach sehr viele Fehler machen. Und selbst die "großen Jungs" machen Fehler. Siehe "OpenSSL Heartbleed". Man sollte sich wahrscheinlich am Besten auf eine handvoll Implementierungen beschränken. Gibt es zu wenige, (z.b. wenn alle OpenSSL benutzen), dann ist ein entdeckter schlimmer Bug quasi ein Supergau. Gibt es zu viele Implementierungen (wenn jeder was selbst bastelt), dann kann die durchschnittliche Implementierungsqualität auch nicht besonders hoch sein, da einfach zu wenige Augen auf eine Implementierung gucken.
Bei Interesse kann man sich auch das hier mal angucken:
http://competitions.cr.yp.to/caesar.html
Da läuft nämlich gerade ein Wettbewerb für ein neues "authenticated encryption"-Verfahren. Vor 2017 wollen die allerdings nach aktuellem Zeitplan keine Sieger küren. Man kann sich aber schon alle Einsendungen angucken. Ich find' ja NORX interessant. Aber bevor da nicht genug Kryptographen drübergeschaut und das Ding auf Herz und Nieren geprüft haben, sollte man das nicht ernsthaft einsetzen. Versteht sich.
-
kkaw schrieb:
zumindest dann nicht, wenn die Implementierung effizient und Seitenkanal-resistent sein soll.
Keiner hat gesagt, wie sicher oder effizient die Implementierung sein soll, solange sie einfach den korrekten Ciphertext herausspuckt ist sie konform.
Und effizient macht man das AFAIR mit Lookup-Tables; Das hat cooky hinbekommen, und der hat laut eigener Aussage keine Ahnung von Kryptographie.
-
Arcoth schrieb:
kkaw schrieb:
zumindest dann nicht, wenn die Implementierung effizient und Seitenkanal-resistent sein soll.
Keiner hat gesagt, wie sicher oder effizient die Implementierung sein soll,
Du, ich zweifele auch ohne diese Bedingungen an der "Kinderleichtigkeit". Ich weiß, dass Du das mit dem Wort nicht so ganz ernst gemeint und ein bisschen übertrieben hast. Aber ich bin mir auch ziemlich sicher, dass Du den Implementierungsaufwand von AES unterschätzt.
Aber es kommt wohl auch drauf an, ob man den Anspruch hat, auch zu verstehen, was man da tut oder zufrieden damit ist, wenn man Code-Schnippsel von hier und dort aneinander hängt. Ob man die Tabellen selbst berechnen können will, oder sie nur per copy & paste einbauen will. etc. Also ich würde das verstehen wollen.
-
Ist es bei Verschlüsselung nicht sogar so heftig, als dann man noch nicht mal fertige Crypto-Libs selbst einbinden sollte, da man selbst dabei heftige Fehler machen kann. Sollte man nicht eher auf fertig kompilierte Pakete wie GnuPG etc. zurück greifen, wenn man wirklich was für Kunden mit Verschlüsselung macht?
Ich meine, zum Lernen kann man sich gerne mal an einer Implementierung wagen, aber für den Produktiveinsatz würde ich die Finger von lassen.
-
SwitchIO schrieb:
Ist es bei Verschlüsselung nicht sogar so heftig, als dann man noch nicht mal fertige Crypto-Libs selbst einbinden sollte, da man selbst dabei heftige Fehler machen kann. Sollte man nicht eher auf fertig kompilierte Pakete wie GnuPG etc. zurück greifen, wenn man wirklich was für Kunden mit Verschlüsselung macht?
Also, wenn es mit GnuPG lösbar ist, dann wär das ein sinnvoller Weg, ja. Und sonst würde ich sagen, dass es noch auf viele Dinge ankommt ... wie fit du in dem Bereich bist, wie high- oder low-levelig eine Schnittstelle einer Crypto-Bibliothek ist (je highleveliger, desto weniger kannst du falsch machen), ...
Gefährlich wird's, wenn man sich selbst ein Protokoll überlegt und Low-Level-Bausteine auf eine unübliche Art und Weise mit einander verschaltet.
-
Aber ich bin mir auch ziemlich sicher, dass Du den Implementierungsaufwand von AES unterschätzt.
Ich hab es selbst implementiert, lange her. War wirklich nicht sonderlich schwer, ich hatte nirgends größere Schwierigkeiten; daher sage ich mal, es war leicht.
Also ich würde das verstehen wollen.
Macht Sinn.
-
Bist du ein Profi? Ansonsten wäre ich mit solchen Aussage vorsichtig. Eine sichere Verschlüsselung implementiert man nicht mal so eben selbst, habe ich mir sagen lassen.
-
SwitchIO schrieb:
Bist du ein Profi?
Bist du einer?
Gerade auf Anfänger oder Fachfremde wirken Aussagen, die falsch sind, oftmals ziemlich konstantuiert und man lässt sich leicht beeindrucken...
-
Arcoth schrieb:
kkaw schrieb:
zumindest dann nicht, wenn die Implementierung effizient und Seitenkanal-resistent sein soll.
Und effizient macht man das AFAIR mit Lookup-Tables; Das hat cooky hinbekommen
Ja, aber eben nicht Sidechannel-Resistent, weshalb es für alles außer Dateien auf der eigenen Platte zu verschlüsseln komplett useless ist. Es Sidechannel-Resistent und performant zu schreiben ist sicher keine leichte Aufgabe. Was aber eher eine Schwäche von AES ist, ich denke wäre ihnen das Ausmaß dieses Problems 2001 bewusst gewesen, hätten sie einen anderen Algorithmus gewählt.
-
Hey
Super Ideen
und sehr interessant
Also ich sehe AES ist ein guter Verschlüsselungsalgorithmus
aber quasi alles was verschlüsseln werden kann , kann auch entschlüsselt werdenund die Leichtigkeit liegt im Auge des Betrachters...
aber wenn AES nicht gerade soderlich schwer ist..
welche Verschlüsselugs Algorithmus würdet ihr vorschlagen ? der am sichersten ist z.B Daten zu verschlüssen ???
Viele kennen doch das Stuxnet Virus oder ?
Die Leute von Kaspersky saßen da ziemlich lange dran diesen Virus zu entschlüsseln... im nachhinein war die Entschlüsselung eine eigene Programmiersprache für sich... vllt. so eine Art von Verschlüsselung
-
wri8ter schrieb:
welche Verschlüsselugs Algorithmus würdet ihr vorschlagen ? der am sichersten ist z.B Daten zu verschlüssen ???
Was für Daten? In welchem Kontext? Wenn Du Krypto einsetzen willst, bau sie Dir lieber nicht selbst. Ich dachte erst, Dir ginge es um den Lerneffekt.
Für Festplattenverschlüsselung ist im Moment der XTS Modus am beliebtesten. Das ist so ein "mode of operation" für Blockchiffren. Und wenn die CPU in Deinem Computer eine Hardwarebeschleunigung für AES hat, dann solltest Du sie auch nutzen. Wenn Du dem Hersteller Deiner CPU nicht vertraust, hast Du sowieso verloren. Ich nutze keine Festplatten-Vollverschlüsselung, weil mir das auf meinem Laptop zu lahm wäre (Ich habe keine Hardwarebeschleunigung für AES). Ich nutze stattdessen ecryptfs und encfs und verschlüssele selektiv.
Für Emails empfehle ich dir GnuPG (und ggf ein entsprechendes Plugin, um Dein Mail-Programm mit GnuPG zu "verknoten").
Für Instant Messaging empfehle ich Dir das XMPP-Protokoll in Kombination mit OTR (off-the-record). Das kriegst Du auch über Xabber auf einem Android-Handy zum laufen.
Für "mobile messaging", wo man auch mal eine verschlüsselte Nachricht verschicken können will, ohne dass der andere online sein muss, empfehle ich Dir TextSecure.
Es gibt bei diesen Anwendungsfällen zumindest für einen Anfänger keinen guten Grund, das Rad neu zu erfinden.
Wenn dich die Thematik interessiert, schau mal, ob in Deiner Nähe vielleicht 'ne Cryptoparty veranstaltet wird. Wenn Du Bock auf technische Details hast, schau Dir die Quellen der oben genannten Projekte an oder besorg Dir ein schlaues Buch zum Thema.
wri8ter schrieb:
[...] Virus [...]
Die beste Krypto hilft Dir dann natürlich nicht viel, wenn dein Gerät kompromitiert wurde und du darauf Daten ver/entschlüsselst.
-
Ja, aber eben nicht Sidechannel-Resistent
Was aber wiederum irrelevant ist, solange wir uns darauf beschränken lediglich die Qualität des Algorithmus zu beurteilen. Ergebnis und Geschwindigkeit.
Eine sichere Implementierung hat sicherlich noch kein Hobby-Programmierer gemacht, daran sitzen Experten-Teams.
-
Skym0sh0 schrieb:
SwitchIO schrieb:
Bist du ein Profi?
Bist du einer?
Gerade auf Anfänger oder Fachfremde wirken Aussagen, die falsch sind, oftmals ziemlich konstantuiert und man lässt sich leicht beeindrucken...
Nein, ich bin kein Profi, was ist denn falsch an meiner Aussage?