Memory encryption-decryption in embedded systems
Memory authentication is becoming more important in embedded systems as off chip memories are prone to security attacks. To maintain integrity of data in external memories, the data are hashed to provide a checksum, and memory integrity tree techniques are employed to verify the authenticity of t...
Saved in:
Main Author: | |
---|---|
Other Authors: | |
Format: | Final Year Project |
Language: | English |
Published: |
2019
|
Subjects: | |
Online Access: | http://hdl.handle.net/10356/76405 |
Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
Institution: | Nanyang Technological University |
Language: | English |
Summary: | Memory authentication is becoming more important in embedded systems as off chip
memories are prone to security attacks. To maintain integrity of data in external memories,
the data are hashed to provide a checksum, and memory integrity tree techniques are
employed to verify the authenticity of the data. However, any changes made to the data
inside a frequently accessed bank would require another round of memory authentication.
The number of hashing required is related to the height of the tree which is (log2 N) + 1,
where N is the number of nodes excluding the leaves nodes inside the tree. In embedded
systems, this could result in large memory access overhead. This is undesirable as
embedded systems often have tight performance constraints.
In this project, Merkle tree will be implemented to obtain a single hash checksum and
Secure Hashing Algorithm 3 that uses the concept of sponge construction with fixed
length output of 256bits will be used to generate the hashing result. The proposed method
exploits hardware-software co-design and is implemented on the DE2-115 Field
Programmable Gate Array (FPGA) board with a NIOS II processor. The Keccak sponge
construction and permutation is implemented as a hardware accelerator. |
---|