Since the TEA Encryption ASIC is only currently being designed for encryption (maybe decryption will come later), I designed the instruction set and registers around the operations needed.
After some iterations, the current plan is for 10 general purpose registers plus an accumulator. I've only planned 9 instructions worth of program. See below for a list. As far as instructions, I've spec'd out 11. Those are below as well.
I'm only planning on wiring up the data flows as needed by the program. So while every instruction should be able to apply and address to every valid register, for simplicity this will not be implemented. As stated before, this is not intended to be a general purpose processor.
Also, the will not accessible from outside. These are only stored as a procedures in the microcode ROM. The user will load the key and data and signal a ready line. When all the rounds have been completed, the IC will signal a complete line.
The registers are certainly not complete, but only a guestimate for now. Some may not be needed. I'll try to reduce the number as much as possible without making it unreasonably obtuse. The goal here is not optimization.
In the diagram below you can see
B. The input key and data
C. The key + sum registers
D. Intermediate value, loopcount and accumulator registers.
No comments:
Post a Comment