Skip to content

Performance-engineered and parallelized implementations of AES in Julia

Notifications You must be signed in to change notification settings

vincenthuang75025/AES-variants

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Parallel AES Implementation

This repository contains parallelized implementations of AES (Advanced Encryption Standard) in Julia, written as part of a final project for MIT's Spring 2022 Parallel Computing and Scientific Machine Learning course. The code is structured as follows:

  • src/AES-old contains a reference serial implementation of AES in Julia, written by faf0.
  • src/AES-cpu contains a parallelized CPU implementation of AES in Julia that makes use of multithreading. We use some performance optimizations to get around 20x speedup in serial execution over the reference implementation, with further speedups from multithreading (scaling approximately linearly with the number of threads).
  • aes-c-cuda contains a reference GPU implementation of AES with C CUDA kernels, written by Canhui.
  • aes-julia-cuda contains a GPU implementation of AES written with the CUDA.jl Julia package. We find performance comparable to the C CUDA implementation.

About

Performance-engineered and parallelized implementations of AES in Julia

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published