This is some source code that does high-speed IDEA CFB encryption on

an 80x86.  The functions are not complete, in that they don't handle

blocks that are not a multiple of 8 bytes long, but it's a start, and

is included here for anybody to experiment with.  It is as efficient

as I could make it.  If USELODS is not set during assembly, a version

that uses the minimum number of instructions possible is produced.

USELODS, however, seems to be faster.  I have not tried it on a '486

yet.



Test.c is a test driver that times the code.  For real use, you'd need

to add key-unpacking code and code to handle odd-sized buffers.  The code

here is designed to be the middle part in a loop for encrypting an

arbitrary number of bytes:



xor leading odd bytes

IDEA encrypt

(xor 8 bytes and IDEA encrypt) as often as necessary

xor trailing odd bytes



It will probably become part of PGP some day.

-- 

	-Colin <colin@nyx.cs.du.edu>

