Secure and Efficient NVM Usage for Embedded Systems Using AES-128 and Huffman Compression
Main Article Content
Abstract
Embedded systems are customized systems designed to meet functionality and specific usage purposes. These systems often grapple with challenges such as power interruptions, limited memory space, and the expectation of a long operational lifespan. It is in this context that Non-Volatile Memory (NVM) plays a vital role. NVM is a type of memory that ensures data persistence even in situations of temporary power loss or signal interruptions. Efficiently utilizing NVM is a critical necessity for the effectiveness and reliability of these systems. Efficient utilization of NVM necessitates the effective management of write and read cycles. Previous studies have demonstrated the efficient utilization of NVM sectors by ensuring that no garbage bytes remain unallocated. Previous studies have demonstrated the efficient utilization of NVM by compressing the data to be written into NVM using the Huffman compression algorithm, and filling sectors without any residual garbage bytes. This paper aspires to advance beyond prior research by integrating the Advanced Encryption Standard (AES-128) block encryption algorithm, aiming to optimize the utilization of NVM to a greater extent. The AES-128 algorithm provides data security with encryption and decryption operations. By applying AES-128 encryption to the data before writing it to the NVM, this work adds a data security layer to the developed software module. Data is divided into blocks using this algorithm. Each block is encrypted independently and then reassembled. The encryption process includes key management, substitution-permutation network layers, and multiple rounds, all of which make substantial contributions to high-level data security. The resulting encrypted data is compressed using the Huffman compression algorithm. This process enhances both the security and efficiency of data storage. The data is written to NVM with maximum efficiency, ensuring that no residual garbage bytes remain, upon the completion of the encryption and compression processes. This study surpasses previous research by enhancing storage security and efficiency through these processes. Moreover, the developed secure and efficient NVM usage, as it fills the NVM with data without leaving any garbage bytes, results in slower processing speed compared to standard NVM usage. Therefore, in future research, interventions with code optimization techniques can be applied to the developed algorithms to enhance write and read speeds.
Downloads
Article Details
This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.
References
H. Karacali, E. Cebel and N. Donum, "Optimizing NVM Utilization Efficiency with Huffman Compression Algorithm in MCU Based System," 2023 8th International Conference on Computer Science and Engineering (UBMK), Burdur, Turkiye, 2023, pp. 75-80, doi: 10.1109/UBMK59864.2023.10286571. DOI: https://doi.org/10.1109/UBMK59864.2023.10286571
Karacali, H., Dönüm, N., & Cebel, E. (2023). Full Efficient NVM Usage For MCU. The European Journal of Research and Development, 3(1), 115–128. https://doi.org/10.56038/ejrnd.v3i1.245 DOI: https://doi.org/10.56038/ejrnd.v3i1.245
J. Clement, B. Mussard, D. Naccache and L. Torres, "Implementation of AES Using NVM Memories Based on Comparison Function," 2015 IEEE Computer Society Annual Symposium on VLSI, Montpellier, France, 2015, pp. 356-361, doi: 10.1109/ISVLSI.2015.37. DOI: https://doi.org/10.1109/ISVLSI.2015.37
M. Xie, S. Li, A. O. Glova, J. Hu and Y. Xie, "Securing Emerging Nonvolatile Main Memory With Fast and Energy-Efficient AES In-Memory Implementation," in IEEE Transactions on Very Large Scale Integration (VLSI) Systems, vol. 26, no. 11, pp. 2443-2455, Nov. 2018, doi: 10.1109/TVLSI.2018.2865133. DOI: https://doi.org/10.1109/TVLSI.2018.2865133
Mehta, J. (2023, July 14). What is AES 128 bit encryption and how secure AES 128 bit is?. CheapSSLWeb.com Blog. https://cheapsslweb.com/blog/what-is-aes-128-bit-encryption
Wikimedia Foundation. (2023, September 18). Huffman coding. Wikipedia. https://en.wikipedia.org/wiki/Huffman_coding
Embedded Artistry LLC. (2021, June 9). Microcontroller Unit - Embedded Artistry. Embedded Artistry. https://embeddedartistry.com/fieldmanual-terms/microcontroller-unit/
Lutkevich, B. (2019, November 7). microcontroller (MCU). IoT Agenda. https://www.techtarget.com/iotagenda/definition/microcontroller#:~:text=A%20microcontroller%20is%20a%20compact,peripherals%20on%20a%20single%20chip.
Ag, I. T. (n.d.). Microcontroller - Infineon Technologies. Copyright Infineon Technologies AG - All Rights Reserved. https://www.infineon.com/cms/en/product/microcontroller/
Microcontrollers - Overview. (n.d.). https://www.tutorialspoint.com/microprocessor/microcontrollers_overview.htm
Utmel. (2020, May 28). What is a Microcontroller? Utmel All Rights Reserved. https://www.utmel.com/blog/categories/microcontrollers/what-is-a-microcontroller
GeeksforGeeks. (2023, May 5). Microcontroller and its Types. https://www.geeksforgeeks.org/microcontroller-and-its-types/
Inc, L. T. (2022, October 25). What is a Microcontroller? — LOOMIA Soft Electronics | E-textiles. LOOMIA Soft Electronics | E-textiles. https://www.loomia.com/blog/what-is-a-microcontroller
Thornton, S. (2022, February 12). microcontrollers vs microprocessors what’s the difference. Microcontroller Tips. https://www.microcontrollertips.com/microcontrollers-vs-microprocessors-whats-difference/
Administrator. (2023, May 26). Basics of Microcontrollers – History, structure and Applications. ElectronicsHub. https://www.electronicshub.org/microcontrollers-basics-structure-applications/
What is a microcontroller? The defining characteristics and architecture of a common component - technical articles. (2019, April 4). https://www.allaboutcircuits.com/technical-articles/what-is-a-microcontroller-introduction-component-characteristics-component/
General Purpose Microcontrollers | NXP semiconductors. (n.d.). https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/general-purpose-mcus:GENERAL-PURPOSE-MCUS
S32K148-Q176 Automotive General-Purpose Evaluation Board. (n.d.-b). https://www.nxp.com/design/development-boards/automotive-development-platforms/s32k-mcu-platforms/s32k148-q176-evaluation-board-for-automotive-general-purpose:S32K148EVB
S32K1 General-Purpose MCUS. (n.d.). NXP Semiconductors. https://www.nxp.com/products/processors-and-microcontrollers/s32-automotive-platform/s32k-auto-general-purpose-mcus/s32k1-microcontrollers-for-automotive-general-purpose:S32K1
Wikipedia contributors. (2023, September 7). Non-volatile memory. Wikipedia. https://en.wikipedia.org/wiki/Non-volatile_memory
Patterson, D. A., & Hennessy, J. L. (2004). Computer Organization and design: The Hardware/Software Interface, Third Edition. Elsevier.
GeeksforGeeks. (2023a, February 21). Difference between Volatile Memory and Non Volatile Memory. https://www.geeksforgeeks.org/difference-between-volatile-memory-and-non-volatile-memory/
What is Non-Volatile Memory? (2021, December 2). Fierce Electronics. https://www.fierceelectronics.com/electronics/what-non-volatile-memory
Huffman, D. A. (1952). A method for the construction of Minimum-Redundancy Codes. Proceedings of the IRE, 40(9), 1098–1101. https://doi.org/10.1109/jrproc.1952.273898 DOI: https://doi.org/10.1109/JRPROC.1952.273898
Data structures. (n.d.). https://cgi.luddy.indiana.edu/~yye/c343-2019/huffman.php
Huffman Coding. (n.d.). https://engineering.purdue.edu/ece264/17au/hw/HW13?alt=huffman
Why is Integrated Development Environment (IDE) Important? (n.d.). Spiceworks. https://www.spiceworks.com/tech/devops/articles/what-is-ide/
Oshana, R. (2006). Managing the DSP software development effort. In Elsevier eBooks (pp. 351–387). https://doi.org/10.1016/b978-075067759-2/50012-0 DOI: https://doi.org/10.1016/B978-075067759-2/50012-0
Bird, C., Menzies, T., & Zimmermann, T. (2015). The art and science of analyzing software data. In Elsevier eBooks. https://doi.org/10.1016/c2012-0-07289-4 DOI: https://doi.org/10.1016/B978-0-12-411519-4.00001-X
S32 Design Studio IDE. (n.d.). NXP Semiconductors. https://www.nxp.com/design/software/development-software/s32-design-studio-ide:S32-DESIGN-STUDIO-IDE
Daemen, J., & Rijmen, V. (2000). The block Cipher Rijndael. In Lecture Notes in Computer Science (pp. 277–284). https://doi.org/10.1007/10721064_26 DOI: https://doi.org/10.1007/10721064_26
Dworkin, M. J. (2023). Advanced Encryption Standard. https://doi.org/10.6028/nist.fips.197-upd1 DOI: https://doi.org/10.6028/NIST.FIPS.197-upd1
OpenSSL Foundation, Inc. (n.d.). /index.html. https://www.openssl.org/
OpenSSL Foundation, Inc. (n.d.-a). /docs/man3.1/man7/crypto.html. https://www.openssl.org/docs/man3.1/man7/crypto.html
Kekayan. (2018, July 7). Encrypt files using AES with OPENSSL - Kekayan - Medium. Medium. https://kekayan.medium.com/encrypt-files-using-aes-with-openssl-dabb86d5b748