Moin, Verschlüsselung taucht hier ja immer mal wieder als Thema auf. Es ist komplex, daher kann man viel falsch machen. Dauernd wird da irgendwie herumgemurkst. Halbgare und offensichtlich unsichere Lösungen scheinen an der Tagesordnung zu sein. Das muss aber nicht sein! Ich habe (zuerst für eigene Zwecke) eine Library zusammengestellt, die folgende Eigenschaften hat: - Symmetrische Verschlüsselung (chacha20) mit 128/256 Bit Keys - One-Time-Authentification/MAC (poly1305) - Kombiniert als AEAD (authenticated encryption with associated data) - Die AEAD-Konstruktion ist chacha20-poly1305 nach IETF draft [1] - Sehr schnell (deutlich schneller als AES128-GCM o.ä.) - Kleine Codegröße (ca 3 KB auf Cortex-M3 mit gcc 4.9 und -Os) - Kann auch für Verschlüsselung ohne Authentifizierung oder Authentifizierung ohne Verschlüsselung genutzt werden Kurz: die Library ermöglicht es mit einem einfachen Interface, die Vertraulichkeit, Integrität und Authentizität von Nachrichten inkl. Metadaten/Header zu sichern. chacha20-poly1305 ist eine recht neue Primitive der Kryptographie, wird aber bereits für TLS/SSL, SSH, libsodium u.a. [2] intensiv genutzt. Durch die Schnelligkeit und geringe Codegröße ist chacha20-poly1305 m.M.n. für eingebette Systeme ideal. Eine Einführung in AEAD werde ich hier jetzt nicht geben, aber als kleinen Hinweis möchte ich noch anbringen, dass es für die Sicherheit essenziell ist, dass die Nonce [3] für jede verschlüsselte Nachricht einmalig ist. Das grundsätzliche Interface ist grob in chachapoly.c dokumentiert und für Fragen bin ich natürlich offen. :) [1] https://tools.ietf.org/html/draft-agl-tls-chacha20poly1305-04 [2] http://googleonlinesecurity.blogspot.co.uk/2014/04/speeding-up-and-strengthening-https.html [3] https://en.wikipedia.org/wiki/Cryptographic_nonce
> für Fragen bin ich natürlich offen. :)
Warum sollten wir davon ausgehen dass das hier kein herumgemurkse ist?
Basiert der code auf libsodium/...?
greg schrieb: > Warum sollten wir davon ausgehen dass das hier kein herumgemurkse ist? > Basiert der code auf libsodium/...? Naja, ich dachte das wäre schon klar. Es werden bereits etablierte Standard verwendet. Die Implementierung dieser ist natürlich getestet (siehe chachapoly_test). Der Code für chacha20 und poly1305 basiert darüber hinaus auf bekannten Referenzimplementierungen, ich habe nur einige Optimierungen eingebracht und die Portabilität verbessert.
Mit Gemurkse meine ich übrigens sowas [1] und dann noch solche Sachen wie Block-Cipher im ECB-Mode verwenden. Absolut unbrauchbar, wird aber immer noch häufig gemacht. :( Oder schlichtweg das Fehlen von Authentifikation, usw. [1] Beitrag "Verschlüsselung- kann man das so machen?"
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.