리눅스 설치 · 6 min read · Nov 24, 2025
pandom 설치 방법: 리눅스를 위한 진정한 난수 생성기
이 튜토리얼은 amd64 / x86_64 리눅스 커널 버전 2.6.9 이상에 해당합니다. ncomputers.org에서 유지 관리하는 타이밍 지터 진정한 난수 생성기인 pandom을 설치하는 방법을 설명합니다.
소개
내장된 리눅스 커널 진정한 난수 생성기는 현대 환경에서 낮은 처리량을 제공합니다. 예를 들어, SSD가 장착된 개인용 컴퓨터와 가상 사설 서버(VPS)에서 그렇습니다.
이 문제는 다양한 암호화 목적에 의해 진정한 난수에 대한 지속적으로 증가하는 필요성 때문에 리눅스 구현에서 인기를 얻고 있습니다.
Pandom은 약 8 KiB/s의 64 ubits / 64 bits 엔트로피를 출력하며, 물리적 및 가상 환경과 호환되며, 다른 프로세스가 루트 사용자로 실행되어 /dev/random에 쓰지 않는다고 가정합니다.
1 pandom 설치
1.1 루트 접근 권한 얻기
Pandom은 루트로 설치해야 하며, 필요시 이 명령어를 실행하세요.
su -1.2 빌드 종속성 설치
pandom을 다운로드하고 설치하려면 GNU as 어셈블러, GNU make, GNU tar 및 GNU wget (마지막 두 개는 일반적으로 이미 설치되어 있음)이 필요합니다. 나중에 원할 때 제거할 수 있습니다.
Arch 기반 시스템
pacman -S binutils makeDebian 기반 시스템
apt-get install binutils makeRed Hat 기반 시스템
dnf install binutils makeyum install binutils makeSUSE 기반 시스템
zypper install binutils make1.3 소스 다운로드 및 추출
이 명령어들은 ncomputers.org에서 wget 및 tar를 사용하여 pandom의 소스를 다운로드하고 추출합니다.
wget http://ncomputers.org/pandom.tar.gz
tar xf pandom.tar.gz
cd pandom/amd64-linux1.4 설치 전 테스트 (권장)
이 권장 테스트는 약 8분이 소요됩니다. 커널 지원을 확인하고 checkme라는 파일을 생성합니다(다음 섹션에서 분석됨).
make check1.5 init 시스템 결정
pandom을 설치하기 전에 시스템이 어떤 init 소프트웨어를 사용하는지 알아야 합니다. 다음 명령어의 출력이 running이면 시스템이 systemd를 사용하고 있는 것입니다. 그렇지 않으면 시스템이 init.d 구현(예: upstart, sysvinit)을 사용하고 있을 가능성이 높습니다. 예외가 있을 수 있으며, 더 많은 정보는 unix.stackexchange.com의 답변에서 확인할 수 있습니다.
systemctl is-system-runningrunning1.6 pandom 설치
어떤 시스템이 리눅스 구현에서 사용되는지 알게 되면, 그에 따라 pandom을 설치할 수 있습니다.
init.d 기반 init 시스템 (예: upstart, sysvinit)
시스템이 init.d 구현(예: upstart, sysvinit)을 사용하는 경우 이 명령어를 실행하여 pandom을 설치합니다.
make install-init.dsystemd를 init 시스템으로 사용
시스템이 systemd를 사용하는 경우 이 명령어를 실행하여 pandom을 설치합니다.
make install-systemd2 checkme 파일 분석
pandom을 암호화 목적으로 사용하기 전에, 이 튜토리얼의 이전 섹션에서 설치 과정 중 생성된 checkme 파일을 분석하는 것이 강력히 권장됩니다. 이 작업은 숫자가 진정으로 무작위인지 여부를 아는 데 유용합니다. 이 섹션에서는 ncomputers.org/ entropyarray를 사용하여 checkme 파일을 분석하는 방법을 설명합니다: 입력의 엔트로피와 직렬 상관관계를 테스트하는 셸 스크립트입니다.
참고: 이 분석은 노트북이나 데스크톱 컴퓨터와 같은 다른 컴퓨터에서 실행할 수 있습니다. 예를 들어, 자원이 제한된 가상 사설 서버(VPS)에서 pandom을 설치하는 경우, checkme 파일을 개인 컴퓨터로 복사하여 그곳에서 분석할 수 있습니다.
Entropy Online Tester도 사용할 수 있습니다.
2.1 루트 접근 권한 얻기
Entropyarray는 루트로 설치해야 하며, 필요시 이 명령어를 실행하세요.
su -2.2 빌드 종속성 설치
entropyarray를 다운로드하고 설치하려면 GNU g++ 컴파일러, GNU make, GNU tar 및 GNU wget (마지막 두 개는 일반적으로 이미 설치되어 있음)이 필요합니다. 나중에 원할 때 제거할 수 있습니다.
Arch 기반 시스템
pacman -S gcc makeDebian 기반 시스템
apt-get install g++ makeRed Hat 기반 시스템
dnf install gcc-c++ makeyum install gcc-c++ makeSUSE 기반 시스템
zypper install gcc-c++ make2.3 소스 다운로드 및 추출
이 명령어들은 ncomputers.org에서 wget 및 tar를 사용하여 entropyarray의 소스를 다운로드하고 추출합니다.
wget http://ncomputers.org/rearray.tar.gz
wget http://ncomputers.org/entropy.tar.gz
wget http://ncomputers.org/entropyarray.tar.gz
tar xf entropy.tar.gz
tar xf rearray.tar.gz
tar xf entropyarray.tar.gz2.4 entropyarray 설치
참고: -std=c++11에 대한 오류는 GNU g++ 컴파일러 버전이 ISO C++ 2011 표준을 지원하지 않음을 의미합니다. 지원하는 다른 시스템(예: 좋아하는 리눅스 배포판의 최신 버전에서 GNU g++)에서 ncomputers.org/ entropy 및 ncomputers.org/ rearray를 컴파일한 다음, entropyarray를 실행할 시스템에서 make install을 사용하여 컴파일된 바이너리를 설치할 수 있습니다. 또는 이 단계를 건너뛰어도 되지만, pandom을 암호화 목적으로 사용하기 전에 checkme 파일을 분석하는 것이 강력히 권장됩니다.
cd rearray; make install; cd ..
cd entropy; make install; cd ..
cd entropyarray; make install; cd ..2.5 checkme 파일 분석
참고: 64 ubits / 64 bits pandom 구현은 이 테스트에서 엔트로피가 15.977 이상이고 max 주파수가 70 이하가 되어야 합니다. 결과가 너무 다르다면, 이 튜토리얼의 다섯 번째 섹션에서 설명한 대로 pandom 구현의 예측 불가능성을 높이도록 시도할 수 있습니다. 마지막 단계를 건너뛰었다면, 의사 난수 수열 테스트와 같은 다른 도구를 사용할 수 있습니다.
entropyarray checkmeentropyarray in /tmp/tmp.mbCopmzqsg
15.977339
min:12
med:32
max:56
15.977368
min:11
med:32
max:58
15.977489
min:11
med:32
max:59
15.977077
min:12
med:32
max:60
15.977439
min:8
med:32
max:59
15.977374
min:13
med:32
max:60
15.977312
min:12
med:32
max:672.6 entropyarray 제거 (선택 사항)
더 이상 entropyarray를 사용하지 않을 계획이라면, 원할 때 제거할 수 있습니다.
cd entropyarray; make uninstall; cd ..
cd entropy; make uninstall; cd ..
cd rearray; make uninstall; cd ..3 데비안 리포지토리를 통한 설치
Debian 기반 시스템에서 pandom을 업데이트 상태로 유지하고 싶다면, ncomputers.org 데비안 리포지토리를 사용하여 설치/재설치할 수 있습니다.
3.1 루트 접근 권한 얻기
아래의 데비안 패키지는 루트로 설치해야 하며, 필요시 이 명령어를 실행하세요.
su -3.2 키링 설치
이 데비안 패키지는 ncomputers.org 데비안 리포지토리의 공개 키를 포함합니다.
wget http://ncomputers.org/debian/keyring.deb
dpkg -i keyring.deb
rm keyring.deb3.3 소스 목록 설치
이 데비안 패키지는 최신 데비안 배포판(2017년 기준)에 따라 ncomputers.org 데비안 리포지토리의 소스 목록을 포함합니다.
참고: 아래의 주석 처리된 줄을 /etc/apt/sources.list에 작성하는 것도 가능하지만, 해당 데비안 배포판에 대한 각각의 데비안 패키지를 설치하는 대신, 이러한 소스가 나중에 변경되면 수동으로 업데이트해야 합니다.
Wheezy
#deb http://ncomputers.org/debian wheezy main
wget http://ncomputers.org/debian/wheezy.deb
dpkg -i wheezy.deb
rm wheezy.debJessie
#deb http://ncomputers.org/debian jessie main
wget http://ncomputers.org/debian/jessie.deb
dpkg -i jessie.deb
rm jessie.debStretch
#deb http://ncomputers.org/debian stretch main
wget http://ncomputers.org/debian/stretch.deb
dpkg -i stretch.deb
rm stretch.deb3.4 소스 목록 업데이트
키링과 소스 목록이 설치된 후.
apt-get update3.5 pandom 테스트
테스트가 완료되면 아래 패키지를 원할 때 제거할 수 있습니다.
참고: 이미 리눅스 구현에서 pandom을 테스트한 경우 이 단계를 건너뛰어도 됩니다.
apt-get install pandom-test
pandom-testcheckme 파일 생성 중, 약 8분 기다려 주세요 ...
entropyarray in /tmp/tmp.5SkiYsYG3h
15.977366
min:12
med:32
max:57
15.977367
min:13
med:32
max:57
15.977328
min:12
med:32
max:61
15.977431
min:12
med:32
max:59
15.977437
min:11
med:32
max:57
15.977298
min:11
med:32
max:59
15.977196
min:10
med:32
max:573.6 pandom 설치
apt-get install pandom4 pandom 관리
pandom이 설치된 후, 관리하고 싶을 수 있습니다.
4.1 성능 테스트
Pandom은 초당 약 8킬로바이트를 제공하지만, 환경에 따라 성능이 달라질 수 있습니다.
dd if=/dev/random of=/dev/null bs=8 count=512512+0 records in
512+0 records out
4096 bytes (4.1 kB, 4.0 KiB) copied, 0.451253 s, 9.1 kB/s4.2 엔트로피 및 직렬 상관관계 테스트
ncomputers.org/ entropyarray 외에도 더 많은 테스트가 있습니다. 예를 들어 Ilja Gerhardt의 NIST 테스트 스위트입니다.
entropyarray /dev/random 1M4.3 시스템 서비스
Pandom은 시스템 서비스로 실행됩니다.
init.d 기반 init 시스템 (예: upstart, sysvinit)
/etc/init.d/random status
/etc/init.d/random start
/etc/init.d/random stop
/etc/init.d/random restartsystemd를 init 시스템으로 사용
systemctl status random
systemctl start random
systemctl stop random
systemctl restart random5 예측 불가능성 또는 성능 증가
pandom 구현의 예측 불가능성 또는 성능을 높이고 싶다면, CPU 시간 측정을 추가하거나 삭제해 볼 수 있습니다.
5.1 소스 파일 편집
소스 파일 test.s 및 tRNG.s에서 측정 블록을 원할 때 추가하거나 제거하세요.
#measurement block
mov $35,%rax
syscall
rdtsc
[...]
#measurement block
mov $35,%rax
syscall
rdtsc
[...]5.2 예측 불가능성 테스트
암호화 목적으로 사용하기 전에 개인화된 pandom 구현을 항상 테스트하는 것이 좋습니다.
make check5.3 개인화된 pandom 설치
결과에 만족한다면, 개인화된 pandom 구현을 설치할 수 있습니다.
make install추가 정보 및 업데이트: http://ncomputers.org/pandom
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.