Als embedded programmeur kom ik steeds vaker dingen tegen waar encryptie noodzakelijk is zoals het versleutelen van firmware voor een bootloader, een digitale handtekening in een xml-document, versleutelde verbinding van een embedded modem met een server etc. Ik loop steeds weer tegen mijn beperkte kennis over encryptie aan. Ik zoek daarom een goed boek die zowel de basisprincipes van encryptie behandeld als de implementatie in embedded c-code. Het mogen ook twee boeken zijn, maar ik heb liever een boek die zowel theorie als praktijk behandeld zodat ik het kan implementeren.
Wat ik onder andere wil weten is:
- soorten encryptie (symmetrisch, assymetrisch, ...)
- signeren van data
- hash (is meer gerelateerd aan integriteitscheck/uniek id volgens mij, maar dat valt volgens mij ook onder encryptie in de brede zin)
- opzetten versleutelde verbinding (in welke volgorde wissel je sleutels uit etc.)
- certificaat (geen idee wat dat is, maar dat heb je nodig voor SSL verbindingen)
- random getallen
- unieke id's
- soorten aanvallen die mogelijk zijn en hoe hier tegen te beveiligen
- end-to-end-encryptie (toch wel een must aangezien de uart-verbinding tussen een microcontroller en een embedded modem gewoon af te luisteren is)
- implementatie in c-code
Er zijn heel veel boeken over encryptie, maar ik kan door het bos de bomen niet meer zien.
Een voorbeeld van wat ik graag zou willen begrijpen is het protocol van de https://bt.tn/. Ik heb de sim900-variant van deze al afgeluisterd. Elke keer stuurt deze een andere key naar de server, dus je kunt geen valse data naar de server sturen. Hoe werkt dat? Stuurt deze een key op basis van een timestamp zodat het elke keer uniek is? Of zit er een grote tabel in met keys? Ik vind het erg interessant.
Myken
Eenvoud is al moeilijk genoeg.
http://www.eetimes.com/document.asp?doc_id=1278110
Hier wordt een soort boek beschreven die je zoekt, denk ik 
page 3 geeft zelfs een code-example
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Wel geen boek, maar misschien nuttig: ik gebruik meestal een pic24fjxxxGx202/204/406/410/412 met embedded hw encryption...
joopv
Golden Member
Ik krijg de indruk dat critiacrof in eerste instantie literatuur en voorbeelden nodig heeft waarin de algemene principes uitgelegd worden.
Daarna implementatie in een systeem, maar of je die 2 onderwerpen in 1 boek zult terugvinden voor een specifiek systeem lijkt me onwaarschijnlijk.
Er is toch geen wezenlijk verschil tussen implementatie op het ene of andere systeem? Alleen crypto hardware ondersteuning is relevant, als je zuinig moet zijn op je cpu cycles.
Op 15 oktober 2015 11:06:12 schreef fripster:
Even OT: Als je een leuk boek over dit soort zaken wil lezen: Cryptonomicon vond ik erg gaaf.
Even de epub opgezocht. Oef wat een dikke pil. Het lijkt wel goed leesbaar te zijn..?
Bruce Schneier's Applied Cryptography vond ik erg goed, maar dat is een theorieboek (hoewel er wel veel voorbeelden in C bij zitten). Embedded had je toen sowieso nog niet. 
maartenbakker
Golden Member
www.elba-elektro.nl | "The mind is a funny thing. Sometimes it needs a good whack on the side of the head to jar things loose."
Waar je vooral op moet letten, is dat je de opgedane kennis gebruikt om open source encryptiebibliotheken of goed geteste voorbeeldcode toe te passen. Zelf het wiel opnieuw uitvinden blijkt in de praktijk regelmatig in gatenkaas te resulteren.
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Op 15 oktober 2015 22:41:30 schreef maartenbakker:
Waar je vooral op moet letten, is dat je de opgedane kennis gebruikt om open source encryptiebibliotheken of goed geteste voorbeeldcode toe te passen.
En dan nog... Ik heb net even "logjam" zitten bestuderen. Blijkt dat voor "diffie-helman" key exchange, de keuze van het priemgetal er niet toe doet. Die is toch zo goed als openbaar. Kan je net zo goed helemaal openbaar maken.... Dus sommige pakketten leveren gewoon een priemgetal mee dat ze altijd gebruiken. Blijkt dat "bad guys" dan 2 weken computertijd investeren voor zo'n priemgetal, en dan een database hebben waarmee ze in ongeveer 1 minuut je key kunnen achterhalen. Ooops. Blijkt dat een significant deel van de HTTPS servers hetzelfde priemgetal gebruikt, zodat de NSA maar een paar van die "2 weken" runs hoeft te doen.....