Pobierz - Politechnika Poznańska, Wydział Informatyki

Transkrypt

Pobierz - Politechnika Poznańska, Wydział Informatyki
Zygmunt Kubiak
Instytut Informatyki
Politechnika Poznańska
Środowisko
http://www.silabs.com/products/mcu/Pages/MCUniversity.aspx#
hardware
10-2014
Zygmunt Kubiak
2
Środowisko
http://www.silabs.com/products/mcu/Pages/MCUniversity.aspx#
hardware
10-2014
Zygmunt Kubiak
3
Środowisko
http://sourceforge.net/projects/sdcc/files/
10-2014
Zygmunt Kubiak
4
Środowisko
http://www.silabs.com/products/mcu/Pages/ApplicationNotes.as
px#devtools
10-2014
Zygmunt Kubiak
5
Lab3 - szyfrowanie AES128
http://www.silabs.com/products/mcu/Pages/ApplicationNotes.as
px#devtools
Przykład kod źródłowy – AN324SW
!!! Program AN324SW przygotowany został dla kompilatora Keil i
mikrokontrolera C8051F326
10-2014
Zygmunt Kubiak
6
Lab3 - szyfrowanie AES128
Startujemy od aplikacji Base
Tworzymy folder aes
Projekt tworzymy pod nazwą aes z plikiem aes.c
Do folderu aes kopiujemy z Base pliki dev.h i uart.h
Zawartość pliku main.c z Base kopiujemu do aes.c
Sprawdzamy czy aplikacja bazowa działa poprawnie z terminalem
Następnie zakomentować w funkcji void main(void) instrukcję while(1) {}
i utworzyć nową instrukcję while(1) {}
Tworzenie projektu aes
Rozpoczynamy od utworzenia i uruchomienia generatora kluczy
rund
Skopiować do aes.c definicje z plików F326_AES_Parameters.h
oraz z F326_AES_Typedef.h
Usunąć def. byte i w miejsce byte wpisać U8, zamiast unsigned
int – U16, zamiast unsigned char – U8, zamiast zmiennej b - bt
10-2014
Zygmunt Kubiak
7
Lab3 - szyfrowanie AES128
Tworzenie projektu aes
Z pliku F326_AES_KeyExpander.h kopiujemy tablicę
CIPHER_KEY[] dla CIPHER_KEY_LENGTH =128
static code const byte zmieniamy na static __code const U8
Z pliku F326_AES_KeyExpander.c kopiujemy stałe globalne,
typ pdata byte zmieniamy na __xdata U8
Kopiujemy funkcję KeyExpansion() (przed funkcją void
main(void) )zmieniamy typy char i byte na U8 oraz b0..b3 na
bt0..bt3
Do folderu aes skopiować plik F326_AES_Sbox.h i zmienić
jego nazwę na aes.h; do plików nagłówkowych dodać aes.h,
poniżej uart.h
W pliku aes.h zmienić typ static byte const code na static U8
const __code
10-2014
Zygmunt Kubiak
8
Lab3 - szyfrowanie AES128
Fragment projektu
10-2014
Zygmunt Kubiak
9
Lab3 - szyfrowanie AES128
Fragment projektu
10-2014
Zygmunt Kubiak
10
Lab3 - szyfrowanie AES128
Fragment projektu
10-2014
Zygmunt Kubiak
11
Lab3 - szyfrowanie AES128
Fragment projektu
10-2014
Zygmunt Kubiak
12
Lab3 - szyfrowanie AES128
Fragment projektu
10-2014
Zygmunt Kubiak
13
Lab3 - szyfrowanie AES128
Fragment projektu
10-2014
Zygmunt Kubiak
14
Lab3 - szyfrowanie AES128
Fragment projektu
10-2014
Zygmunt Kubiak
15
Lab3 - szyfrowanie AES128
Dalszą część projektu przygotowujemy analogicznie
Po uruchomieniu generatora kluczy przechodzimy do
uruchomienia szyfrowania a po przetestowaniu szyfrowania
uruchamiamy deszyfrowanie
Z pliku F326_AES_InvCipher kopiujemy do aes.h tablice
InvSbox[256], log_table[256] oraz exp_table[256]
……..
Docelowo należy utworzyć z projektu pojedynczy
plik aes.h (ewentualnie aes.h i aes.c) z dostępnymi
funkcjami szyfrowania i deszyfrowania
10-2014
Zygmunt Kubiak
16
Dziękuję
Zygmunt Kubiak
17
09200
6

Podobne dokumenty