반응형

2025/02 115

STM32F429 AES 암호화 모듈 사용법

STM32F429 AES 암호화 모듈 사용법개요이 글에서는 STM32F429의 AES 하드웨어 가속기를 이용해 데이터 암호화와 복호화를 수행하는 방법을 설명합니다. 특히 AES-128, AES-192, AES-256 비트 키 길이를 기반으로 ECB, CBC, CTR 모드에서의 실습을 진행하고, 문자열과 파일을 AES-256으로 암호화하는 방법을 예제로 다룹니다.STM32CubeIDE와 HAL 라이브러리를 활용하여 구현하며, 각 모드별 차이와 주의사항을 설명합니다.1. AES 개요AES(Advanced Encryption Standard)는 대칭 키 기반의 블록 암호화 알고리즘으로, 주로 128비트 블록과 128/192/256비트 키를 사용합니다. AES는 보안성과 성능을 고려해 다양한 운영 모드(ECB,..

STM32 2025.02.25

STM32F429 암호화 모듈: AES, DES, SHA와 같은 지원 알고리즘 설명

STM32F429 암호화 모듈: AES, DES, SHA와 같은 지원 알고리즘 설명1. 개요STM32F429 마이크로컨트롤러는 보안성을 강화하기 위해 하드웨어 암호화 모듈(CRYP)을 내장하고 있습니다. 이 모듈은 다양한 암호화 및 해시 알고리즘을 하드웨어 수준에서 처리하여, 소프트웨어 방식보다 빠르고 안전하게 데이터를 보호할 수 있도록 설계되었습니다. 이번 포스팅에서는 STM32F429가 지원하는 대표적인 알고리즘인 AES, DES, 그리고 SHA에 대해 상세히 설명하겠습니다.2. AES (Advanced Encryption Standard)2.1 AES 개요AES(Advanced Encryption Standard)는 미국 국립 표준 기술 연구소(NIST)에서 고안한 대칭 키 암호화 알고리즘으로, 현..

STM32 2025.02.25

STM32 하드웨어와 소프트웨어 암호화의 차이

STM32 하드웨어와 소프트웨어 암호화의 차이암호화는 데이터의 기밀성을 보호하고 무결성을 유지하는 데 필수적인 기술입니다. STM32F429와 같은 임베디드 시스템에서도 안전한 통신과 데이터 보호를 위해 암호화는 중요한 역할을 합니다. 암호화 방법은 크게 하드웨어 기반과 소프트웨어 기반으로 나뉘며, 각 방식은 성능, 보안성, 구현의 용이성에서 차이를 보입니다.이번 포스팅에서는 하드웨어와 소프트웨어 암호화의 차이를 상세히 분석하고, STM32F429에서 제공하는 하드웨어 암호화 모듈의 이점과 제한점을 살펴보겠습니다.1. 암호화의 기본 개념암호화(encryption)는 데이터를 특정 알고리즘과 키를 사용해 무의미한 형태로 변환하는 과정입니다. 이렇게 변환된 데이터는 적절한 키 없이 복호화(decryption..

STM32 2025.02.25

STM32F429의 CRYP(암호화) 모듈 소개

STM32F429의 CRYP(암호화) 모듈 소개1. 개요STM32F429 마이크로컨트롤러(MCU)는 STMicroelectronics에서 제공하는 고성능 ARM Cortex-M4 기반의 MCU로, 다양한 임베디드 시스템에 적용되고 있습니다. 이 MCU는 강력한 성능과 저전력 특성을 갖추고 있을 뿐만 아니라, 내장된 하드웨어 암호화 모듈인 CRYP(암호화) 모듈을 통해 데이터 보안을 강화할 수 있는 기능을 제공합니다.본 포스팅에서는 STM32F429의 CRYP 모듈에 대해 상세히 알아보고, 이를 이용하여 어떻게 안전한 데이터 통신과 저장을 구현할 수 있는지에 대해 설명하겠습니다.2. CRYP 모듈이란?CRYP 모듈은 STM32F429 MCU에 내장된 하드웨어 기반의 암호화 처리 장치입니다. 이 모듈은 다음..

STM32 2025.02.25

ADB를 활용한 배터리 상태 모니터링 및 제어

ADB를 활용한 배터리 상태 모니터링 및 제어Android Debug Bridge(ADB)는 개발자가 Android 디바이스와 컴퓨터 간의 통신을 가능하게 하는 강력한 도구입니다. ADB를 활용하면 다양한 디바이스 상태를 확인하고 설정을 변경할 수 있으며, 그중에서도 배터리 상태를 모니터링하고 제어하는 기능은 특히 유용합니다.이 글에서는 adb shell dumpsys battery 명령어를 활용하여 배터리 상태를 확인하고, ADB를 통해 배터리 잔량 및 충전 상태를 변경하는 방법을 설명하겠습니다.1. ADB를 이용한 배터리 상태 확인Android 디바이스에서 배터리 상태를 확인하려면 adb shell dumpsys battery 명령어를 사용하면 됩니다.adb shell dumpsys battery위 ..

Android/ADB 2025.02.25

CAN 데이터 송수신 (ESP32 IDF 예제)

CAN 데이터 송수신 (ESP32 IDF 예제)1. CAN 통신 개요CAN(Controller Area Network) 통신은 자동차, 산업 자동화, 로봇 제어 등 다양한 분야에서 사용되는 직렬 통신 프로토콜입니다. 여러 개의 마이크로컨트롤러 간에 신뢰성 높은 데이터 교환이 가능하도록 설계되었으며, 다중 마스터(Multi-Master) 방식을 지원합니다.ESP32는 기본적으로 CAN 통신을 지원하며, Espressif의 ESP-IDF(ESP32 IoT Development Framework)를 활용하여 CAN 데이터 송수신을 구현할 수 있습니다. 이번 포스팅에서는 ESP32 IDF를 활용한 CAN 메시지 송수신 예제와 필터링 기법, 인터럽트 방식과 폴링 방식의 차이를 설명하겠습니다.2. ESP32 IDF..

CAN/CAN 기초 2025.02.25

C 표준 API: 시스템 호출 및 종료 (system, exit, abort)

C 표준 API: 시스템 호출 및 종료 (system, exit, abort)C 언어에서 시스템 호출 및 프로그램 종료를 제어하는 중요한 함수로 system, exit, abort가 있습니다. 이 함수들은 운영체제와의 상호작용을 수행하며, 프로그램의 흐름을 제어하는 데 유용하게 사용됩니다. 이번 포스팅에서는 각 함수의 역할과 사용법을 예제와 함께 살펴보겠습니다.1. system 함수개요system 함수는 운영체제의 쉘 명령어를 실행할 수 있도록 도와주는 함수입니다. 이 함수는 헤더 파일에 정의되어 있습니다.#include int system(const char *command);command : 실행할 명령어 문자열 (NULL을 전달하면 명령어 실행이 가능한지 확인 가능)반환값 : 명령어 실행 결과의 ..

ADB를 활용한 디바이스 성능 분석

ADB를 활용한 디바이스 성능 분석Android 디바이스의 성능을 분석하는 것은 개발 및 유지보수 과정에서 중요한 작업입니다. Android Debug Bridge(ADB)를 활용하면 디바이스의 CPU, 메모리, 프로세스 상태, 온도 등 다양한 성능 정보를 확인할 수 있습니다. 이번 포스팅에서는 ADB 명령어를 이용하여 디바이스의 성능을 분석하는 방법을 상세히 설명하겠습니다.1. ADB란?ADB(Android Debug Bridge)는 Android SDK에서 제공하는 도구로, 개발자가 Android 디바이스와 컴퓨터 간의 통신을 할 수 있도록 도와줍니다. 이를 통해 디바이스에 명령을 실행하고, 로그를 확인하며, 시스템 상태를 분석할 수 있습니다.ADB를 사용하기 위해서는 Android SDK와 ADB가..

Android/ADB 2025.02.24

MCU에서 CAN 초기화 및 설정 (ESP32 기준)

MCU에서 CAN 초기화 및 설정 (ESP32 기준)1. 개요ESP32는 다양한 통신 프로토콜을 지원하며, 그중 하나가 CAN(Controller Area Network) 입니다. CAN은 자동차, 산업 자동화, 로봇 공학 등 다양한 분야에서 사용되며, 신뢰성 높은 통신을 제공합니다.이번 포스팅에서는 ESP32 IDF(ESP-IDF)를 활용한 CAN 초기화 및 설정 방법을 살펴보고, CAN 필터링 및 인터럽트 처리, CAN 통신 속도 설정 및 오류 처리에 대해 자세히 설명하겠습니다. 또한, 예제 코드를 통해 실전에서 활용할 수 있도록 안내하겠습니다.2. ESP32 IDF를 활용한 CAN 설정ESP32에서 CAN을 사용하려면 ESP-IDF(ESP32 IoT Development Framework)를 활용해..

CAN/CAN 기초 2025.02.24

C 언어에서 환경 변수 다루기 (getenv, putenv, setenv, unsetenv)

C 언어에서 환경 변수 다루기 (getenv, putenv, setenv, unsetenv)환경 변수(Environment Variable)는 운영체제에서 제공하는 전역 변수로, 프로그램이 실행되는 환경에 대한 정보를 저장하는 역할을 합니다. C 언어에서는 getenv, putenv, setenv, unsetenv 등의 표준 라이브러리 함수를 이용하여 환경 변수를 조회, 추가, 수정, 삭제할 수 있습니다.이번 포스팅에서는 각 함수의 동작 방식과 예제 코드를 살펴보겠습니다.1. 환경 변수란?환경 변수는 운영체제에서 제공하는 전역 변수로, 프로세스가 실행되는 환경을 설정하는 중요한 요소입니다. 환경 변수는 다음과 같은 정보들을 포함할 수 있습니다.사용자 홈 디렉터리 (HOME)실행 파일 검색 경로 (PATH..

반응형