120 likes | 295 Views
Implementation of IDEA on a Reconfigurable Computer. Toan Le Greg Zumbrook. IDEA Algorithm. Block cipher 64-bit block, 128-bit key 8 rounds (plus output transformation) 3 operations: XOR Addition mod 2 16 Multiplication mod 2 16 + 1. Why use IDEA?. Intended as a replacement for DES
E N D
Implementation of IDEA on a Reconfigurable Computer Toan Le Greg Zumbrook
IDEA Algorithm • Block cipher • 64-bit block, 128-bit key • 8 rounds (plus output transformation) • 3 operations: • XOR • Addition mod 216 • Multiplication mod 216 + 1
Why use IDEA? • Intended as a replacement for DES • Still secure as the best attack breaks IDEA reduced to 5 rounds (full cipher uses 8 rounds)
SRC-6 Reconfigurable Computer • uP and MAP (Multi-Adaptive Processor) boards • 2128 MB/s xfer between boards • FPGAs on MAP board can be reconfigured as program is run
Carte Programming Environment • Program in HLLs like C or FORTRAN • Compiled code will configure the MAP board when run (no need for VHDL)
Implementation • Using High Level Language (HLL) to describe software • Main program functions • Prepare for data and key • Link with MAP libraries and function files • Data structure • Declare memory banks, move data in and out • Set pointers to a cache aligned
Implementation Parallel structure
Results • Encrypt/Decrypt IDEA both on MAP and Intel CPU • Control the number of bits when performing multiplication or XOR • Parallel code: 19 cycles for one round and 158 clock cycles for a 64-bit input plaintext block
Results • Reconfigurable processor is allocated to the given application • MAP function is called • 8 internal loops for 64-bit input block • The execute time of the MAP function is measured • Compare between execution time of the MAP function and of Intel CPU function
Results • Time to encrypt 5 blocks on CPU: ~121 uS • Time to encrypt 5 blocks on MAP: ~180 mS ???
Results • Time to encrypt 5 blocks on MAP is currently longer than on CPU • This is because the time to transfer the block, key, and results to/from the MAP takes additional time • Encrypting multiple blocks at a time (bulk encryption of large files) should produce more expected results
Enhancement • File I/O functionality • Improve efficiency of MAP functions • Add other encryption schemes to the program • Create application services for end users