|The Tiny Encryption
Algorithm is a fast (probably the fastest) yet very secure block cypher.
It was designed by David Wheeler and Roger Needham at the Computer Laboratory
of Cambridge University.
It en/decode a block of 64 bit text using a 128 bit key. The algorithm is optimized for 32-bit machine but even on the 8-bit PIC is possible to obtain real fast operation. If you wish you can download the version 1.1 of my code. Another implementation of the same algorithm was developed by Andrew Warren.
I also have an implementation of the new TEA-N algorithm that solves some (minor) weaknesses of the original design using a different key schedule. This version 1.3 of TEA takes just 240 words of program memory, 33 bytes of RAM (24 for text and key, 9 internal/temporary) and en/decipher a block of text in 6500 cycles (more than 6 Kbit/sec on a 20 MHz PIC).
After some people asked me how to check the results from TEA and TEA-N implementations I compiled a sheet with some plaintext/key/ciphertext combination for the two algorithms. The data in the sheet are computed compiling and executing the reference code included in the algorithms description. The machine used is a RISC/6000 PowerPC running the AIX operating system.
Please note that the U.S. Export Regulations don't allow strong cryptographic software to be exported. The code wasn't developed in the U.S.A., I am not an U.S. citizen but the server hosting these pages is in the U.S.A. If you want to get my crypto routines and you are outside the U.S. territory send me a mail and I will send you back the code. Thanks.
|Do you need random numbers?
Well, if you are just designing a bingo-number generator to use at home
probably you can implement a simple LFSR
and you are done but if you need to generate a key to encrypt a communication
session that will not suffice. RanPIC is a collection of routine to generate
hard-to-predict number from a rather deterministic source (your program).
Sorry but the code is not available yet. I am doing some tests and improvements to the routines. Please check back soon.