Hi! Ich möchte gerne eine kleine Tastatur bauen, die aus zwei (oder mehr) Hälften besteht, die über ein einfaches Kabel verbunden sind (UART). Irgendwo ist dann ein USB-Adapter, der mein UART nach USB-HID übersetzt. Damit nicht jede Passworteingabe über das UART (oder später Funk) an jeden Blödmann abgestahlt wird, möchte ich die Daten, die von der Tastaturhälfte gesendet werden, mit AES verschlüsseln. (Dabei soll etwa alle 10ms gesendet werden, welche Tasten zwischenzeitlich gedrückt wurden (evtl. gar keine), und wie der Trackpoint bewegt wurde. 128 Bit (ein AES-Block) reichen dafür locker, sogar inkl. CRC und 32 Bit Zufall, um EBC statt CBC benutzen zu können.) Der Schlüssel soll im EEPROM gespeichert werden (mit Lockbits), oder (wenn noch nicht ausgetauscht) beim Einschalten über ECC ausgetauscht werden. Also: Der Empfänger generiert ein Schlüsselpaar, sendet den öffentlichen Schlüssel, und der Sender verschlüsselt damit einen zufälligen AES-Schlüssel. (In die andere Richtung sollte keine Verschlüsselung nötig sein. Andernfalls: Diffie-Hellman.) Meine Probleme bis jetzt sind: Ich habe einige Berichte über AES- und ECC-Implementierungen auf Atmega gefunden (jeweils locker schnell genug), jedoch finde ich nirgendwo den Quelltext. Kennt jemand die Bezugsquelle für solchen Quelltext (AES und ECC inkl. Schlüsselerzeugung, und Ver-/Entschlüsselung eines anderen Schlüssels)? Selbst nachprogrammieren möchte ich das lieber nicht. Ich brauche auch nicht unbedingt den AVR; ein anderer Controller, den Privatpersonen günstig programmieren können, wäre auch in Ordnung. Ein anderer Ansatz (als AES und ECC) wäre auch in Ordnung. Gruß, Tuxpilot P. S.: 1. Wo ich etwas wie einen Trackpoint (Mini-Joystick) herkriege, ist eine andere Frage. 2. Das UART-Kabel dient dazu, die Tastaturhälften trennen zu können, insbesondere um auch nur eine einzelne Hälfte benutzen zu können.
Tuxpilot schrieb: > Kennt jemand die Bezugsquelle für solchen Quelltext (AES und ECC inkl. > Schlüsselerzeugung, und Ver-/Entschlüsselung eines anderen Schlüssels)? Wenn du das Wort "Arduino" nicht scheust, suche doch einfach mal nach "Ardino AES"
Hier wurde schon so was umgesetzt: https://wiki.das-labor.org/w/AVR-Crypto-Lib Vielleicht ist da was für dich dabei.
> Wenn du das Wort "Arduino" nicht scheust, suche doch einfach mal nach > "Ardino AES" Wow, Arduino ist ein tolles Wort, da kommt Code bei raus! Ok, habe das hier gefunden: https://github.com/DavyLandman/AESLib Dann werde ich morgen mal schauen, wieweit man Arduino-Quelltext für normales avr-gcc benutzen kann. Das scheint soweit der Code von https://wiki.das-labor.org/w/AVR-Crypto-Lib zu sein. Das hatte ich zwar schon gefunden, aber der Link zum Repository funktioniert nicht mehr. Mit Arduino findet man auch was zu RSA und ECC, zum Beispiel https://github.com/kmackay/micro-ecc , da steht nur nichts zur Geschwindigkeit. (Ist dort aber nicht so kritisch.) > Der Empfänger generiert ein Schlüsselpaar, sendet den > öffentlichen Schlüssel, und der Sender verschlüsselt damit einen > zufälligen AES-Schlüssel. (In die andere Richtung sollte keine > Verschlüsselung nötig sein. Andernfalls: Diffie-Hellman.) Ok, das war jetzt missverständlich. Die Tastaturhälfte soll Daten schicken, die nur mein eigener USB-Adapter versteht. Wenn jemand anderes etwas an meinen USB-Adapter anschließt: Nicht schlimm, er könnte auch gleich eine ganze USB-Tastatur anschließen um mich zu ärgern. Er soll nur nicht meine Passworteingabe mitlesen können. Wenn Diffie-Hellman sinnvoller / leichter zu finden ist, nehme ich das natürlich.
Tuxpilot schrieb: > Dann werde ich morgen mal schauen, wieweit man Arduino-Quelltext für > normales avr-gcc benutzen kann. Arduino benutzt den gcc Compiler, also keine Sorgen.
Tuxpilot schrieb: > Damit nicht jede Passworteingabe über das UART (oder später Funk) an > jeden Blödmann abgestahlt wird, möchte ich die Daten, die von der > Tastaturhälfte gesendet werden, mit AES verschlüsseln. Nur so ein Gedanke: Nimm einen uC wie den Atmel SAM-R21, der hat die Funkhardware gleich mit drin, und kann AES in Hardware. Keine notwendigkeit da Code zu schreiben. Gibt es auch gleich als Board (fuer die ersten Versuche): http://www.microchip.com/developmenttools/productdetails.aspx?partno=atsamr21-xpro Debugger ist on Board. Nur noch passende Antenne ran und los gehts.
Und USB kann der auch. Also auch kein USB-UART Wandler noetig.
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.