Glenn Ruben Å!hun Bakke Pål D"vekle# Åsmund Eldhuset Olav Aanes Fa%rlund Stig Fjellskaalnes Daniel Hau%n Olav Morken Gunnar Rangøy Øy'ein Ingmar Ska!sæterha%n Rolf Anders Syve!sen
dulkóðuð (islandsk) - kryptert leyndar (islandsk) - hemmelig tut (tulle-islandsk) - telefon
dulkóðuð (islandsk) - kryptert leyndar (islandsk) - hemmelig tut (tulle-islandsk) - telefon
Oppgaven System for kryptert tale over GSM/GPRS/3G 2 enheter Toveis kommunikasjon Åpen krypteringsstandard Symmetriske nøkler
Oppgaven AD/DA for sampling og avspilling av lyd Minst 1 AVR Minst en FPGA eller CPLD
Tanker
Prototype 23 000 kr
Resultatet
Prosesser
Komponentvalg
Tilkoblet AVR mikrokontroller GSM - serielt grensesnitt (USART) LCD - standard displayinterface SD-kort - Serial Peripheral Interface FPGA - XMEM
Tilkoblet FPGA
Strømforsyning Batterilader Likeretterbro Krever 10V for å lade batteriet
PCB Jumpere som kan splitte mange signaler Stort: (25cm x 23,5cm) Dyrt: (NOK 10 250,- for ti kort)
PCB 4 Lag VCC Jord 2 x Signal
VCC 5V (Rosa) 3.3V (Blått) 1.8V (Gult)
Feil og forbedringer Feil markering av elyttenes polaritet måtte loddes på nytt JTAG for FPGA/PROM ble glemt Feil footprint for oscillator 5V på op-amp isteden for 3.3V
Kommunikasjon mellom AVR og FPGA AVR'en forespør tjenester av FPGA'en via minnebussen, ved å lese fra eller skrive til bestemte adresser i området 0xE000-0xFFFF
Kommunikasjon mellom AVR og FPGA Skriving: Styring av LEDs Krypteringsnøkkel Datablokk som skal (de)krypteres (De)aktivering av cipher block chaining Nullstilling av cipher block chaining Startsignal for en (de)krypteringsoperasjon Lyddata som skal sendes (ikke implementert)
Kommunikasjon mellom AVR og FPGA Lesing: Avbruddsstatus Knappestatus Tastaturstatus Mottatte lyddata (delvis implementert) (De)krypterte data Status for nåværende operasjon FPGA'en bruker én avbruddslinje til å signalisere at (de)kryptering er ferdig eller at en tast eller en knapp er blitt trykket Takket være dette grensesnittet var det forholdsvis lett å bytte krypteringsalgoritme
Valg av algoritme Opprinnelig valg: AES (Advanced Encryption Standard) / Rijndael Velkjent, sikker og rask Offisiell NIST-standard Vi fant implementasjoner som var enkle å jobbe med
Dessverre brukte den syntetiserte versjonen nesten 300% av ressursene til FPGA'en...
Endelig valg: Triple DES NSA APPROVED Langsommere, men velkjent og fortsatt sikker Vi fant en implementasjon som brukte lite plass og var enkel i bruk (dette var hovedgrunnen til at vi valgte 3DES)
Operasjonsmodus Vi bruker cipher block chaining
IV er alltid null - sikkerhetsbrist Kan fikses ved å sende tilfeldige data i første blokk
Triple DES Basert på DES (Data Encryption Standard) Symmetrisk blokkchiffer Feistelstruktur Tre 64-bits nøkler (åtte paritetbits i hver; effektiv nøkkelstørrelse 168 bits) Struktur (alle undertrinn bruker DES):
DES
DES
Diskusjon
Sikkerhet Vi bruker en anerkjent krypteringsalgoritme i cipher block chaining-modus Svakhet: IV er null. Kan forholdsvis lett løses Produktet tilbyr hverken meldingsintegritet eller autentisitet Sårbart for replay attacks (kan løses med timestamps) Distribusjon og behandling av nøkler er ikke tatt i betraktning (utenfor oppgaven)
Ønskede forandringer Splitting av spenningsplan Letter feilfinning (ved kortsluttning) Flere jordingspinner Letter testing og kobling av alternative løsninger (workarounds) Splitting av jordingsplan Hindring av støy på analog delen (audio) Dedikert JTAG-port for mikrokontrolleren på kortet (blir delt med skjermen) Kan ikke bruke skjerm og aktivert JTAG samtidig Kode løste dette problemet
Gruppedynamikk Lederskap Én leder kunne fremskyndet viktige (og tidkrevende) avgjørelser Vi fulgte en kollektiv lederskapsmodell (alltid felles beslutninger) Vanskelige beslutninger Valg av mobilenhet Design av lydkrets Liten erfaring og manglende terminologikunnskaper
Forskning og utvikling Budsjett overholdt med fin margin Billigere deler ble vurdert, fornuftige vurderinger tatt Ved kr. 300,- i timelønn: 750 000,- i lønnskostnader Utvikling av ferdig produkt Hva trengs? Fjerning av testpinner Minimalisering/optimalisering Konkurransedyktige funksjoner Målgrupper
Konklusjon
Hva har vi oppnådd Uforutsette problemer med lyd-codec brikken hindret oss; alt kommuniserer og virker sammen bortsett fra denne, som blir utelatt. Mye av implementasjonen og testingen av et komplett system med flere essensielle komponenter som samspiller er på plass: Forsterker (dog med noe støy), samt A/D og D/A konvertering Tre strømkretser og batterilading AVR styrer og kommuniserer med: SD-kort (lesning) GSM-modul Skjerm & tastatur Eksternt minne gjennom FPGA
Hva har vi oppnådd Programvare: Trådbasert kode som styrer mikrokontrolleren Cooperative multithreading Bra grensesnitt i programvaren/vhdl Illustrert ved suksessfull utbytting fra AES til TDES på svært kort tid Systemet krypterer og sender (og vice versa) SMS, benytter seg av data på SD-kort Kunnskapsbasis for videreutvikling