Skip to content

bathtub-01/cluster-AES

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This repository contains Chisel implementations of the AES and SM4 cryptographic algorithms. It is the work from paper "A Pipelined AES and SM4 Hardware Implementation for Multi-Tasking Virtualized Environments" accepted by ICA3PP 2023. Preprint available at https://easychair.org/publications/preprint/BNHg.

The designs feature a round-based, four-stage pipeline structure. The main advantage of our designs is their ability to support tasks from different guests (corresponding to different user keys) processed in parallel through the pipeline. This offers better flexibility and hardware utilization rates in virtualized environments, where hardware-level parallelism support is often emphasized.

To generate the Verilog code for a standalone AES/SM4 module, execute one of the following commands, where aes-enc corresponds to the AES encryption module, aes-dec to the AES decryption module, and sm4 to the SM4 module. The generated Verilog code will be located in the ./generated/ directory:

sbt "run aes-enc"
sbt "run aes-dec"
sbt "run sm4"

You can also generate a "group" for AES or SM4, which contains four instances of the corresponding cryptographic modules. To do this, execute:

sbt "run group-aes"
sbt "run group-sm4"

and specify the number of encryption modules within the group. The remaining modules will be decryption ones.

About

Optimized Chisel implementations for AES and SM4.

Topics

Resources

License

Stars

Watchers

Forks

Languages