  AES, Advanced Encryption Standard, can be considered the most widely used
modern symmetric key encryption standard. To encrypt/decrypt a file using the
AES algorithm, the file must undergo a set of complex computational steps.
Therefore a software implementation of AES algorithm would be slow and consume
large amount of time to complete. The immense increase of both stored and
transferred data in the recent years had made this problem even more daunting
when the need to encrypt/decrypt such data arises. As a solution to this
problem, in this paper, we present an extensive study of enhancing the
throughput of AES encryption algorithm by utilizing the state of the art
multicore architectures. We take a sequential program that implements the AES
algorithm and convert the same to run on multicore architectures with minimum
effort. We implement two different parallel programmes, one with the fork
system call in Linux and the other with the pthreads, the POSIX standard for
threads. Later, we ran both the versions of the parallel programs on different
multicore architectures and compared and analysed the throughputs between the
implementations and among different architectures. The pthreads implementation
outperformed in all the experiments we conducted and the best throughput
obtained is around 7Gbps on a 32-core processor (the largest number of cores we
had) with the pthreads implementation.
