Saya tahu pertanyaan ini agak lama, tetapi saya baru-baru ini harus meneliti sendiri karena saya menerapkan AES128 pada PIC16 dan 8051, dan jadi saya ingin tahu tentang pertanyaan ini juga.
Saya telah menggunakan sesuatu seperti ini: http://cs.ucsb.edu/~koc/cs178/projects/JT/aes.c
dan penggunaan ram saya adalah beberapa ratus byte dan ukuran biner kurang dari 3kb ROM.
Saran saya yang terbaik adalah membaca di halaman Wikipedia http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation
dan memahami mode yang berbeda, misalnya bagaimana AES dalam mode OFB menggunakan mode ECB menggunakan mode ECB sebagai blok bangunan dasar. Juga XOR'ing (dalam mode-OFB) menjadikannya operasi simetris, jadi mengenkripsi / mendekripsi adalah fungsi yang sama yang juga menghemat ruang.
Ketika saya mengerti bagaimana AES benar-benar bekerja, saya bisa mengimplementasikannya dalam C dan kemudian mengujinya terhadap spesifikasi NIST ** (lakukan ini! Banyak kode yang ditemukan online cacat) dan hanya menerapkan apa yang benar-benar saya butuhkan.
Saya dapat memuat AES128 pada 8051 bersama dengan beberapa firmware RF lainnya dengan melakukan penyesuaian dan pengoptimalan ini. Penggunaan RAM (untuk keseluruhan sistem) turun dari ~ 2.5kb menjadi tepat di bawah 2kb, artinya kita tidak perlu memutakhirkan ke 8051 dengan SRAM 4kb, tetapi tetap menggunakan versi SRAM 2kb yang lebih murah.
** Vektor Uji ada dalam Apendiks F di: http://csrc.nist.gov/publications/nistpubs/800-38a/addendum-to-nist_sp800-38A.pdf
EDIT:
Akhirnya mendapatkan kode di Github: https://github.com/kokke/tiny-AES-c
Saya telah mengoptimalkan sedikit untuk ukuran. Output ukuran GCC saat dikompilasi untuk ARM:
$ arm-none-eabi-gcc -O2 -c aes.c -o aes.o
$ size aes.o
text data bss dec hex filename
1024 0 204 1228 4cc aes.o
Jadi penggunaan sumber daya sekarang kode 1KB, 204 byte RAM.
Saya tidak ingat bagaimana membangun untuk PIC, tetapi jika 8bit AVR Atmel Mega16 sama seperti PIC, penggunaan sumber daya adalah:
$ avr-gcc -Wall -Wextra -mmcu=atmega16 -O2 -c aes.c -o aes.o
$ avr-size aes.o
text data bss dec hex filename
1553 0 198 1751 6d7 aes.o
Jadi, kode 1,5 K dan RAM 198 byte.