High-throughput programmable cryptocoprocessor
read more
Citations
Advanced lightweight encryption algorithms for IoT devices: survey, challenges and solutions
A survey on lightweight block ciphers for low-resource devices
Reconfigurable Hardware for High-Security/ High-Performance Embedded Systems: The SAFES Perspective
Architectures of flexible symmetric key crypto engines—a survey: From hardware coprocessor to multi-crypto-processor system on chip
Interfacing a high speed crypto accelerator to an embedded CPU
References
Handbook of Applied Cryptography
Statecharts: A visual formalism for complex systems
A Compact Rijndael Hardware Architecture with S-Box Optimization
Recommendation for Block Cipher Modes of Operation. Methods and Techniques
An ASIC Implementation of the AES SBoxes
Related Papers (5)
Frequently Asked Questions (16)
Q2. What is the way to run AES?
Block pipeline instructions allow AES to run in ECB, CBC-MAC, counter, and CCM modes in 11 clock cycles per 128-bit block without loss in throughput compared to an AES without a mode of operation.
Q3. What is the way to design a cryptocoprocessor?
Designing with multiple controllers requires partitioning the control over different modules, particularly when multiple modules communicate asynchronously.
Q4. How many cycles per byte to run AES?
The AES algorithm takes 24,419 cycles per 128-bit block (1,526.2 cycles per byte) using an efficient, high-speed software code on Xtensa; and it takes 1,400 cycles per 128-bit block (87.5 cycles per byte) to run AES using custom instructions on the customized Xtensa core.
Q5. What are examples of multiple-cycle single instructions?
Examples of multiple-cycle single instructions include single-block encryption, reading one block of data or key, and writ-39MAY–JUNE 2004ing one block of output.
Q6. What is the way to encrypt the input data?
Separate data and control streams Separating data and control streams enables high-throughput data encryption and a high level of programmability.
Q7. What is the common type of cryptocoprocessor?
Most future embedded systems willrequire high throughput and programmable security engines similar to the cryptocoprocessor presented in this article.
Q8. What is the important part of the CCM pipeline?
Continuous instructions let the coprocessor encrypt the data stream and write the result to the output continuously, until the main CPU issues a done instruction.
Q9. What is the way to achieve the maximum throughput?
A hand-optimized assembly code of the AES algorithm achieves up to 718 Mbps on a 1.33-GHz Pentium III and up to 1,436 Mbps on a 3.06-GHz Pentium IV.
Q10. How many cycles does the AES core take to execute?
It implements the 128-bit key, 128-bit data version of the AES algorithm and performs encryption in 11 cycles, with one round of the algorithm executing in one clock cycle.
Q11. What is the common way to perform a synthesis?
The authors performed synthesis using a typical United MicroElectronic Corp. (UMC) 0.18-micron standard cell library with the Synopsys synthesis tools and the conservative wire load model.
Q12. How many bits are produced per second?
Because the core produces a 128-bit output every 11 cycles, the authors calculated throughput by multiplying the frequency by 128 and dividing the result by 11, giving us the number of bits produced per second.
Q13. How many cycles does the Leon coprocessor use?
The coprocessor uses most of the 1,228 cycles for transferring the data and key from the Leon core and for the context switching necessary to call the program of Figure 8b from the main C program.
Q14. What is the name of the cryptocoprocessor?
The authors have developed a high-throughput, programmable cryptocoprocessor that runs the AES algorithm in different operation modes for IPsec applications.
Q15. What is the control hierarchy for the cryptocoprocessor?
Hierarchical control design simplifies the controllers’ communications and lets us combine high per-formance and programmability.
Q16. What is the way to achieve a high throughput encryption engine?
Achieving such a methodology requires research on highly efficient interfaces for programming encryption accelerators through an embedded CPU core as well as high-throughput data transmission schemes between the hardware accelerators of a typical embedded system on a chip.