Monday, June 21, 2010

PIC18/dsPIC30 RSA

Here you can download the implementation of the RSA Public-key encryption algorithm, for PIC18 and dsPIC30 microcontrollers.

The source can be compiled with Microchip's C18 C compiler, V3.00 or better. and MPLAB C30. Please don't expect very good perfomance as it's a complex algorithm on a slow CPU.

Technical specs:

* Stripped down and plataform-optimized version of David Ireland's BigDigits Library.
* Estandard RSA encryption/decryption/signing algorithm (No key generation, please use OpenSSL, Lockbox, etc.).
* No need for a dynamic memory manager (malloc)
* Aprox. 5 Kb of ROM.
* Aprox. 700 bytes of RAM for 512 bits operation.
* Measured speed of a single block of data, 512 bits key :
# PIC18F452@40Mhz: Encryption: 2 s. Decryption: 120 s.
# dsPIC30F3013@30Mhz:Encryption: 0.2 s. Decryption: 15 s.
* Key size limited by free RAM only.
* Endianess independent.
* Permissive Non-GPL Licence (Check BigDigits Site)

The Assembly optimizations can be turned off, and it's Ansi C so it should compile on other 8/16/32/64-bit architectures.
Download zipped source and .HEX

2 comments:

Big brother is watching