Powered by a Gamma-Event True Random Number Generator
Powered by a Gamma-Event True Random Number Generator
How to Build a Networked TRNG with W5500-EVB-Pico Using Gamma Radiation?
Summary
이 프로젝트는 Raspberry Pi Pico(RP2040)와 WIZnet W5500-EVB-Pico를 기반으로 감마선 이벤트를 이용한 True Random Number Generator(TRNG)를 구현하고, 이를 네트워크로 확장한 시스템입니다. W5500은 생성된 난수를 Ethernet으로 전송하는 역할을 하며, 웹 애플리케이션과 연동되어 실시간 시각화와 검증까지 가능한 엔트로피 서비스로 동작합니다.
What the Project Does
핵심 구조는 두 부분으로 나뉩니다:
1) 펌웨어 (RP2040 + W5500)

- Geiger 계수기로 감마선 이벤트 감지
- ADC를 통해 이벤트 펄스 샘플링
- 랜덤 타이밍을 기반으로 난수 생성
- 생성된 데이터를 버퍼링 후 서버로 전송
2) 웹 애플리케이션 (Flask 기반)
- 실시간 데이터 시각화 (WebSocket)
- 난수 품질 검증 (NIST 테스트)
- 사용자 인터페이스 제공
특히 이 프로젝트의 특징은:
👉 단순 난수 생성이 아니라
👉 “사용자가 질문을 입력하면 랜덤으로 Yes/No를 반환하는 인터랙션 시스템”
즉:
- 사용자 질문 입력
- TRNG 기반 랜덤 생성
- 결과를 웹에서 표시
이 구조는 “Request a decision from the universe”라는 컨셉으로 구현되어 있습니다.
Where WIZnet Fits
이 프로젝트는 WIZnet W5500 (W5500-EVB-Pico)를 핵심 구성으로 사용합니다.
역할
- TRNG 데이터를 외부 서버로 전송하는 네트워크 인터페이스
- RP2040의 한 코어와 함께 데이터 업로드 전용 경로 구성
- 장치를 실시간 데이터 스트리밍 노드로 변환
구조적으로 중요한 포인트
이 프로젝트는 RP2040의 듀얼 코어 구조를 적극 활용합니다:
- Core 0 → 네트워크 처리 (W5500)
- Core 1 → 고속 ADC 기반 이벤트 수집
이 구조는 매우 의미가 큽니다:
- TRNG 품질 유지 (타이밍 왜곡 없음)
- 네트워크 처리와 완전 분리
왜 W5500이 적합한가
- 하드웨어 TCP/IP 오프로드 → CPU 간섭 최소화
- 안정적인 유선 통신 → 이벤트 기반 데이터 손실 방지
- 최대 8소켓 → 다중 클라이언트 확장 가능
결과적으로 W5500은 단순 통신칩이 아니라:
👉 “TRNG를 서비스화하는 핵심 인프라 요소”
Implementation Notes
리포지토리 구조 기준으로 확인되는 핵심 구현 특징:
- MicroPython 기반 펌웨어 (RP2040)
- ADC 이벤트 감지 → 임계값 기반 감마 이벤트 추출
- 이벤트 데이터 버퍼링 후 자동 업로드
- DHCP / Static IP 지원
- Watchdog 기반 안정성 확보
- 내장 상태 페이지 제공
웹 쪽에서는:
- WebSocket 기반 실시간 스트리밍
- SQLite 기반 데이터 저장
- 사용자 입력 기반 Q&A 시스템
- Rate limiting 및 필터링 포함
중요한 설계 포인트:
👉 엔트로피 생성과 네트워크 전송을 완전히 분리
이 구조 덕분에:
- 난수 품질 유지
- 네트워크 지연 영향 최소화
Practical Tips / Pitfalls
- Geiger 신호는 반드시 노이즈 필터링 필요
- ADC 임계값 설정이 잘못되면 엔트로피 품질 저하
- 이벤트 기반이라 버퍼 관리 중요
- W5500 사용 시:
- SPI 안정성 확보 필수
- PHY 링크 먼저 확인
- 네트워크 전송 시:
- burst 데이터 대비 처리 필요
- 보안적으로:
- 외부 입력 제한 (entropy source 보호)
- Wi-Fi 대신 Ethernet 사용이:
- 지연 안정성 측면에서 훨씬 유리
FAQ
Q: 왜 이 프로젝트에서 W5500을 사용하나요?
A: 네트워크 처리를 하드웨어로 오프로드하여 RP2040이 엔트로피 생성에 집중할 수 있고, 안정적인 유선 통신으로 데이터 손실 없이 전송할 수 있기 때문입니다.
Q: W5500은 시스템에서 어떤 역할을 하나요?
A: 생성된 난수를 서버로 전송하고, 장치를 네트워크 기반 엔트로피 노드로 동작하게 하는 핵심 인터페이스입니다.
Q: RP2040의 듀얼 코어는 어떻게 활용되나요?
A: 한 코어는 감마 이벤트 수집, 다른 코어는 W5500을 통한 네트워크 전송을 담당하여 서로 간섭을 최소화합니다.
Q: 이 프로젝트는 초보자도 가능한가요?
A: 하드웨어(방사선 검출), 펌웨어, 네트워크, 웹까지 포함된 구조라 중급 이상 수준이 필요합니다.
Q: 일반 PRNG나 Wi-Fi 기반 시스템과 비교하면 어떤가요?
A: TRNG는 물리 기반 랜덤성을 제공하고, W5500 Ethernet은 Wi-Fi 대비 지연과 패킷 손실이 적어 전체 시스템 신뢰성이 높습니다.
Source
- Original Project: https://github.com/deckerjulian/gamma-ray-trng
- Related Web Application: https://atlane.de/request-a-decision-from-the-universe/
- Hardware Platform: W5500-EVB-Pico (WIZnet)
- License: Repository 참고
Tags
#W5500 #W5500EVBPico #RP2040 #TRNG #GammaRay #Ethernet #WIZnet #Security #EmbeddedSystems #Entropy #WebApp #IoT
How to Build a Networked TRNG with W5500-EVB-Pico Using Gamma Radiation?
Summary
This project implements a gamma radiation-based True Random Number Generator (TRNG) on a Raspberry Pi Pico (RP2040) using the WIZnet W5500-EVB-Pico platform. It captures entropy from radioactive decay and delivers it over Ethernet, enabling a network-accessible entropy service with real-time visualization and validation through a connected web application.
What the Project Does
1) Embedded System (RP2040 + W5500)

- A Geiger counter detects gamma radiation events
- Pulses are sampled via ADC and processed into random bits
- Data is buffered and transmitted over Ethernet
2) Web Application Layer
- A server (Flask-based) receives entropy data
- WebSocket enables real-time visualization
- Statistical validation (e.g., NIST-style checks) is applied
- Users interact via a web UI
A unique feature of this project is its interactive concept:
- Users submit a question
- The system returns a random Yes/No decision
- The randomness is derived from real physical events
This transforms the system into an interactive randomness service, not just a generator.
Where WIZnet Fits
This project explicitly uses the WIZnet W5500 via the W5500-EVB-Pico platform.
Role in the system:
- Provides the Ethernet interface for entropy transmission
- Offloads TCP/IP processing from the RP2040
- Enables continuous streaming of random data to external systems
Architectural significance:
The system leverages the RP2040’s dual-core design:
- One core handles gamma event acquisition and entropy extraction
- The other handles network transmission via W5500
This separation is critical:
- Prevents timing distortion in entropy generation
- Ensures stable and uninterrupted data delivery
Why W5500 is a strong fit:
- Hardware TCP/IP offload reduces CPU interference
- Wired Ethernet ensures deterministic latency
- Supports multiple sockets for scalable data distribution
In this project, W5500 is not optional—it enables the transition from a local TRNG to a networked entropy infrastructure component.
Implementation Notes
Based on the repository and associated web implementation:
- Firmware runs on RP2040 (likely MicroPython or C-based)
- ADC is used for pulse detection and threshold-based event extraction
- Data is buffered before transmission to handle bursty radiation events
- Network communication uses the W5500 via SPI
On the server side:
- Flask-based backend
- WebSocket for real-time updates
- Database (e.g., SQLite) for logging entropy data
- User interface for querying randomness (Yes/No system)
A key design principle:
- Strict separation between entropy generation and network transmission
This ensures:
- High-quality randomness (no timing interference)
- Reliable and scalable data delivery
Practical Tips / Pitfalls
- Proper signal conditioning is critical for Geiger tube output
- Incorrect ADC thresholds can introduce bias
- Use buffering to handle non-uniform event bursts
- Ensure stable SPI communication with W5500
- Always verify PHY link status before debugging software
- Prefer Ethernet over Wi-Fi for low jitter and packet reliability
- Secure the entropy source—avoid exposing control interfaces publicly
FAQ
Q: Why use W5500 in a TRNG system?
A: It enables hardware TCP/IP offload, allowing the RP2040 to focus on entropy generation while ensuring stable and reliable network transmission.
Q: How is W5500 connected to the RP2040?
A: Through SPI on the W5500-EVB-Pico platform, which integrates both components into a compact, ready-to-use board.
Q: What role does W5500 play in this project?
A: It transmits generated random data to external systems, enabling the device to function as a network-accessible entropy source.
Q: Is this suitable for beginners?
A: This is an advanced project involving hardware sensing, embedded processing, networking, and web integration. Intermediate to advanced experience is recommended.
Q: How does this compare to PRNG or Wi-Fi-based systems?
A: TRNG provides true physical randomness, while W5500 Ethernet ensures stable, low-latency delivery compared to software PRNG and Wi-Fi-based communication.
Source
- Original Project: https://github.com/deckerjulian/gamma-ray-trng
- Related Web Application: https://atlane.de/request-a-decision-from-the-universe/
- Hardware Platform: W5500-EVB-Pico (WIZnet)
- License: Refer to repository
Tags
#W5500 #W5500EVBPico #RP2040 #TRNG #GammaRay #Ethernet #WIZnet #Security #EmbeddedSystems #Entropy #WebApp #IoT
