Wiznet makers

bruno

Published May 07, 2026 ©

167 UCC

14 WCC

41 VAR

0 Contests

0 Followers

0 Following

Original Link

Microcontroller-based Encryption Module for Secure Internet Client-Server Chatting

This article focuses on the implementation of a communication protocol with optional steganography support for an embedded platform, resulting in a secure .....

COMPONENTS
PROJECT DESCRIPTION

W5100S-EVB-Pico로 구현한 MCU 기반 보안 채팅 암호화 모듈

RP2040 + W5100S에서 Curve25519, ChaCha20-Poly1305, Elligator 2를 활용한 Secure Client-Server Chatting 구현 사례

인터넷을 통한 메시지 통신은 우리 일상에서 매우 익숙한 기술이 되었습니다. 하지만 메시지가 네트워크를 통해 이동하는 순간, 보안은 더 이상 선택 사항이 아닙니다. 특히 개인 정보, 인증 정보, 민감한 데이터를 다루는 시스템에서는 암호화, 무결성 검증, 안전한 키 교환이 필수적입니다.

이번에 소개할 연구는 WIZnet W5100S-EVB-Pico를 활용해 MCU 기반의 보안 채팅용 암호화 모듈을 구현한 사례입니다. 논문 제목은 **“Microcontroller-based Encryption Module for Secure Internet Client-Server Chatting”**이며, 2025년 Radioelektronika 학회에서 발표되었습니다.

이 연구는 단순히 MCU에서 TCP/IP 통신을 수행하는 수준을 넘어, Curve25519 기반 키 교환, ChaCha20-Poly1305 인증 암호화, Elligator 2 기반 스테가노그래픽 키 교환, XDRBG 난수 생성기를 조합해 실제 보안 통신 프로토콜을 구현했다는 점에서 의미가 큽니다.


왜 MCU 기반 암호화 모듈인가?

일반적인 보안 채팅 구조에서는 PC나 스마트폰 같은 범용 장치가 메시지 입력, 암호화, 키 저장, 네트워크 통신을 모두 처리합니다. 하지만 범용 장치는 다양한 프로그램을 실행하고, 인터넷 다운로드나 악성 링크에 노출될 수 있기 때문에 보안상 위험 요소가 많습니다.

이 연구에서는 이러한 문제를 줄이기 위해 Embedded Encryption Module, EEM이라는 구조를 제안합니다.

EEM 구조에서는 사용자의 PC가 단순한 터미널 역할만 수행하고, 실제 보안 기능은 MCU 기반 장치가 담당합니다.

구조는 다음과 같습니다.

 
User PC Terminal
        │
      Serial
        │
W5100S-EVB-Pico 기반 EEM
        │
    Secure TCP/IP
        │
      Server
 

즉, 사용자는 PC에서 메시지를 입력하지만, 암호화, 키 저장, TCP/IP 연결, 메시지 송수신은 W5100S-EVB-Pico 기반 EEM에서 처리됩니다.

이 방식은 중요한 암호 키와 보안 연산을 범용 PC에서 분리할 수 있다는 장점이 있습니다.


사용된 하드웨어: WIZnet W5100S-EVB-Pico

연구에 사용된 보드는 WIZnet W5100S-EVB-Pico입니다.

W5100S-EVB-Pico는 Raspberry Pi RP2040 MCU와 WIZnet W5100S Ethernet Controller를 함께 탑재한 평가 보드입니다.

주요 특징은 다음과 같습니다.

항목내용
MCURP2040, Dual-core ARM Cortex-M0+
Clock최대 133 MHz
SRAM264 KB
Flash2 MB
Ethernet ControllerWIZnet W5100S
Network ProtocolTCP, UDP, IPv4, ARP, ICMP, IGMP, PPPoE 등
Hardware Socket최대 4개

W5100S는 하드웨어 TCP/IP 스택을 제공하기 때문에, MCU가 복잡한 네트워크 스택을 직접 처리하지 않아도 안정적인 Ethernet 통신을 구현할 수 있습니다. 덕분에 MCU는 암호화, 키 교환, 메시지 처리 같은 애플리케이션 로직에 더 집중할 수 있습니다.


보안 프로토콜 구성

이 연구의 보안 채팅 프로토콜은 크게 세 단계로 구성됩니다.

 
1. Initialization Phase
2. Key Exchange Phase
3. Chatting Phase
 

1. Initialization Phase

초기화 단계에서는 MCU, UART, SPI, W5100S 네트워크 기능을 초기화합니다. 또한 보안 통신에 필요한 난수 생성을 위해 XDRBG를 초기화합니다.

XDRBG는 SHAKE256 기반의 암호학적 난수 생성기입니다. 연구진은 W5100S-EVB-Pico에서 얻을 수 있는 여러 entropy source를 활용해 seed를 구성했습니다.

활용된 entropy source는 다음과 같습니다.

 
- Ring oscillator values
- RAM hash values
- Timestamps
- Bus performance counter
 

각 값을 단독으로 사용할 경우 충분하지 않은 경우도 있었지만, 여러 값을 XOR 조합한 결과 FIPS 140-2 테스트를 통과하는 entropy source를 구성할 수 있었습니다.


2. Key Exchange Phase

키 교환 단계에서는 Curve25519 기반 ECDH를 사용합니다.

일반적인 ECDH에서는 공개키가 네트워크 상에서 비교적 쉽게 식별될 수 있습니다. 이 연구에서는 이를 보완하기 위해 Elligator 2를 선택적으로 적용했습니다.

Elligator 2는 elliptic curve public key를 랜덤 문자열처럼 보이게 변환하는 기법입니다. 이를 통해 키 교환 데이터가 일반적인 공개키처럼 보이지 않고, 네트워크 상에서 무작위 데이터처럼 보이도록 만들 수 있습니다.

즉, 단순히 메시지를 암호화하는 것을 넘어, 키 교환 과정 자체를 덜 눈에 띄게 만드는 기능을 제공하는 것입니다.


3. Chatting Phase

채팅 단계에서는 사용자가 입력한 메시지를 다음 순서로 처리합니다.

 
Message Input
    ↓
LZRW Compression
    ↓
ChaCha20 Encryption
    ↓
Poly1305 MAC Generation
    ↓
Secure TCP/IP Transmission
 

메시지 암호화와 무결성 검증에는 ChaCha20-Poly1305 AEAD가 사용되었습니다.

ChaCha20은 빠르고 가벼운 stream cipher이며, Poly1305는 메시지 인증 코드 생성에 사용됩니다. 두 기술을 함께 사용하면 메시지의 기밀성Confidentiality무결성Integrity을 동시에 확보할 수 있습니다.


Long-term Pre-shared Key 기반 인증

이 프로토콜은 장기 인증을 위해 Long-term Pre-shared Key를 사용합니다. 단, 이 키는 메시지 암호화에는 직접 사용되지 않고, 인증 목적으로만 사용됩니다.

연구에서는 보안을 높이기 위해 long-term pre-shared key를 그대로 Flash에 저장하지 않고, 사용자가 입력하는 PIN을 해시한 값과 XOR하여 masking한 상태로 저장합니다.

통신 초기화 시 사용자가 올바른 PIN을 입력하면 키가 복원되고, 인증용 BMAC 생성에 사용됩니다. 인증이 끝나면 plain key는 RAM에서 즉시 삭제됩니다.

이 방식은 MCU 기반 장치에서 제한된 리소스로 구현할 수 있는 실용적인 키 보호 방식이라고 볼 수 있습니다.


성능 결과

연구진은 W5100S-EVB-Pico 기반 EEM을 Windows 서버와 Ethernet cable로 직접 연결하여 성능을 측정했습니다. MCU는 ARM Cortex-M0+ 125 MHz 환경에서 동작했습니다.

키 교환 성능

Elligator 2를 적용한 키 교환과 일반 X25519 키 교환의 차이는 매우 작았습니다.

항목CPU Cycles
Key Exchange with Elligator209,385,264
Key Exchange without Elligator208,425,225

Elligator 2를 적용하면 inverse mapping의 확률적 특성 때문에 평균적으로 추가 연산이 필요합니다. 그러나 전체 키 교환 기준으로는 약 0.46% 정도의 차이만 발생했습니다.

즉, 키 교환 데이터를 랜덤 노이즈처럼 보이게 만드는 기능을 추가하면서도, 실제 성능 손실은 매우 제한적이었습니다.


메시지 처리 성능

메시지 압축, 인증 암호화, 전송, 서버 응답 수신까지 포함한 전체 처리 시간은 다음과 같습니다.

메시지 크기CPU Cycles
400 bytes424,844
10 bytes190,661

400바이트 메시지와 10바이트 메시지의 처리 차이는 약 2ms 수준으로, 실제 사용자가 체감하기 어려운 수준입니다.

또한 연구진은 EEM이 20 MHz까지 downclock된 상태에서도 사용 가능하다고 보고했습니다. 이는 저전력 또는 리소스 제한 환경에서도 적용 가능성이 있음을 보여줍니다.


WIZnet Maker 관점에서의 의미

이 연구는 W5100S-EVB-Pico가 단순한 Ethernet 예제 보드가 아니라, 보안 통신 프로토콜을 실험하고 구현할 수 있는 MCU 기반 플랫폼이라는 점을 잘 보여줍니다.

특히 다음과 같은 프로젝트에 참고할 수 있습니다.

 
- MCU 기반 secure chat device
- Ethernet 기반 secure terminal
- IoT device authentication module
- Lightweight encrypted TCP communication
- Secure key exchange demonstration
- Embedded cryptography education platform
 

W5100S가 TCP/IP 통신을 하드웨어로 처리하고, RP2040이 애플리케이션과 암호화 로직을 담당하는 구조는 IoT 보안 프로젝트에 적합합니다.

TLS 전체 스택을 사용하기 어려운 소형 MCU 환경에서도, 이 연구처럼 목적에 맞는 경량 보안 프로토콜을 설계하면 실용적인 보안 통신 시스템을 구현할 수 있습니다.


앞으로의 확장 가능성

논문에서는 향후 개선 방향으로 PC 기반 서버 없이 EEM 장치끼리 직접 통신하는 구조를 제안합니다. RP2040의 dual-core 구조를 활용해 client와 server 기능을 각각 다른 core에서 실행하면, 두 개의 MCU 기반 장치가 open network 상에서 직접 secure communication을 수행할 수 있습니다.

WIZnet 제품 관점에서는 다음과 같은 확장도 고려해볼 수 있습니다.

 
- W5500 기반 secure communication demo
- W6100 기반 IPv6 secure chatting demo
- TLS offload 구조와의 성능 비교
- Secure boot 및 firmware signing 결합
- MQTT, CoAP 등 IoT protocol과의 연동
- Maker용 암호화 통신 튜토리얼 제작
 

Conclusion

W5100S-EVB-Pico를 활용한 MCU 기반 보안 채팅 암호화 모듈 구현 사례는 Ethernet-enabled MCU 보드가 단순한 네트워크 연결 장치를 넘어, 보안 통신을 처리할 수 있는 실용적인 embedded platform이 될 수 있음을 보여줍니다.

Curve25519, ChaCha20-Poly1305, Elligator 2, XDRBG와 같은 현대 암호 기술이 RP2040 + W5100S 환경에서 동작 가능하며, 실제 메시지 처리 속도 역시 사용자가 체감하기 어려울 정도로 빠르게 측정되었습니다.

이 사례는 WIZnet Maker 사용자들에게 좋은 참고 자료가 될 수 있습니다.
작은 MCU 보드 하나로도 secure TCP/IP communication, encrypted chatting, embedded cryptography demo를 직접 구현할 수 있기 때문입니다.

W5100S-EVB-Pico를 활용해 나만의 보안 통신 프로젝트를 시작해보세요.

Documents
Comments Write