본문 바로가기
트렌드 이슈 · 토픽

방사성 물질을 이용한 양자 난수 생성기 등장

by 두우우부 2020. 1. 5.
반응형

 

데이터의 암호화 및 프로그래밍에서 사용되는 난수는 정량적 알고리즘을 이용하여 생성하는 의사 난수와 CPU나 통신 기기의 노이즈를 이용하여 생성하는 물리 난수가 있지만, 난수 중에서 가장 신뢰성이 높다고 여겨지는 양자 난수를 방사성 물질을 이용하여 생성해 버리는 기기가 GitHub에 나타나, 난수 생성 기기의 사양과 소스코드를 공개하고 있습니다.

GitHub - nategri / chernobyl_dice : A quantum random number generator with a Cold War aesthetic.

 

nategri/chernobyl_dice

A quantum random number generator with a Cold War aesthetic. - nategri/chernobyl_dice

github.com

"Chernobyl Dice(체르노빌 주사위)"는 엔트로피 에너지로 약한 방사성 물질의 핵분열 반응을 이용한 양자 난수 생성기입니다. Chernobyl Dice는 기판이 되는 Arduino Nano, 방사선 측정기인 가이거, 카운터, 우라늄 유리조각 6개, 니키시관으로 구성되어 있으며, 다음과 같은 프로그램으로 작동합니다.

1. 가이거 카운터가 반응했는지 여부에 따라 1밀리 초마다 0 또는 1이 링 버퍼에 기록된다.
2. 폰 노이만 안정성 분석을 이용하여 생성된 초기 난수의 바이어스를 제거한다.
3. 2단계에 생성한 비트 집합에, 장치의 전원을 켠 후 경과한 마이크로 초 단위의 시간을 4로 나눈 값의

 

Arduino Nano | Arduino Official Store

OSH: Schematics The Arduino Nano is open-source hardware! You can build your own board using the following files: EAGLE FILES IN .ZIP SCHEMATICS IN .PDF   Power The Arduino Nano can be powered via the Mini-B USB connection, 6-20V unregulated external power

store.arduino.cc

mod2에 XOR 하는 것으로, 한층 더 바이어스를 제거한다.

Chernobyl Dice가 동작하고있는 영상

레버를 'CL'로 설정하면 현재 시간을 표시하는 시계 모드가 됩니다. 난수의 생성을 반복하여 USB에서 출력하는 스트리밍 모드, 버튼을 한 번 누르면 하나의 난수가 나타나는 다이스 모드의 3가지 모드가 있습니다.


레버를 'DC'로 설정하면 버튼을 누를 때마다 다른 난수가 나타나는 다이스 모드입니다.


스위치를 올린 숫자의 합계와 생성되는 난수의 범위가 대응되고 있습니다. 

4와 8의 손잡이를 올린 경우는 0 ~ 12 범위에서 난수를 생성합니다.


버튼을 누르면......


니키시관에 이진수가 표시되며 난수의 생성이 시작됩니다.


이번에는 '2'가 생성되었습니다.


레버를 'ST'로 설정하면 난수의 생성을 반복하여 USB에서 출력하는 스트리밍 모드를 사용할 수 있습니다.


Python에서 제공하는 통계 테스트를 실시해 보면 모든 테스트를 통과했다고 합니다. 

Chernobyl Dice가 매우 균일한 난수 생성기임을 보여줍니다.

 


Chernobyl Dice를 만들기 위한 부품 목록도 공개되어 있습니다.

Wiring Diagram

 

Chernobyl Dice를 조립

인클로저(케이스)에 스페이서를 장착합니다.


로직 보드를 조립.


니키시관을 로직 보드에 연결하고......


인클로저에 장착합니다.


가이거 카운터를 인클로저에 장착합니다.


이어 우라늄 유리조각을 설치합니다.


제어판 보드를 연결하면 나머지는 버튼을 장착하면 완성.


또한 Chernobyl Dice 동작중에 우라늄 유리조각이 자외선에 의해 녹색으로 빛납니다만,

이것은 방사성 물질과는 아무 상관이 없고, 그냥 멋지기 때문에 빛나게 했다고 합니다.

반응형