Encryption and Compression Algorithms on Resource-Constrained Embedded ARM Microcontrollers

Overview

This project focuses on implementing data compression and encryption on the STM32F051 Discovery Board for secure and efficient data transmission from sensors in Antarctic buoys. The primary goal is to reduce transmission costs and ensure data security over the Iridium satellite network.

Objectives

  • Design and implement efficient data compression and encryption algorithms on the STM32F051 Discovery Board.
  • Ensure data integrity and security during transmission over the Iridium satellite network.
  • Validate system performance using simulated and real sensor data.

Technologies Used

  • STM32F051 Discovery Board
  • ICM-20948 MEMS Motion Tracking Unit
  • Python for initial algorithm testing
  • C programming for implementation on STM32

Details

The project involves designing subsystems for data retrieval, compression, encryption, and transmission. The data collected from the IMU (Inertial Measurement Unit) is first processed to extract Fourier coefficients. The LZSS algorithm is used for data compression, and the Blowfish algorithm is employed for encryption. The system ensures that at least 25% of the lower Fourier coefficients are preserved, meeting the client's requirements. A CRC-32 checksum is used to verify data integrity before and after transmission.

System Operation Diagram

Figure 1: System Operation Diagram

Challenges

One major challenge was the limited memory and computational power of the STM32F051 Discovery Board, which restricted the choice of algorithms. Implementing the algorithms in C, rather than Python, presented difficulties due to differences in processor architecture. Another challenge was ensuring that the compression and encryption processes were efficient enough to meet the specified time constraints.

Results

The project successfully implemented data compression and encryption on the STM32F051 Discovery Board, meeting most of the specified acceptance test procedures. The system achieved an average compression ratio of 1.812 and encryption speed of 910.219 bytes/second. However, the compression and encryption times slightly exceeded the initially specified limits, leading to revised specifications.

Compression Speed Graph

Figure 2a: Compression Speed Graph

Encryption Speed Graph

Figure 2b: Encryption Speed Graph

View the Full Report

You can view the full project report here: Encryption and Compression Algorithms on Resource-Constrained Embedded ARM Microcontrollers.