일부 챕터는 다음과 같이 말했습니다.
결정 론적 수단으로 난수를 생성하려고 시도하는 사람은 물론 죄의 상태에 살고 있습니다.
그것은 항상 컴퓨터로 진정한 난수를 생성 할 수 없다는 것을 의미하기 위해 취해졌습니다. 그리고 그는 컴퓨터가 단일 Intel 8080 마이크로 프로세서 (~ 6000 밸브)와 동등한 크기 일 때 말했다. 컴퓨터가 더 복잡 해졌고 폰 본 노이만의 진술이 더 이상 사실이 아닐 수도 있다고 생각합니다. 구현 된 소프트웨어 전용 알고리즘은 불가능합니다. 물리적 하드웨어에서 실행됩니다. 진정한 난수 생성기와 엔트로피 소스도 하드웨어로 만들어집니다.
이 Java 조각은 루프에 넣었습니다.
file.writeByte((byte) (System.nanoTime() & 0xff));
이미지로 표현한 데이터 파일을 만들 수 있습니다.
구조를 볼 수 있지만 임의성이 많이 있습니다. 중요한 것은이 PNG 파일의 크기는 232KB이지만 그레이 스케일 픽셀은 250,000 개입니다. PNG 압축 수준이 최대였습니다. 압축률은 7 %에 불과합니다. 상당히 압축 불가능합니다. 흥미로운 점은 파일이 고유하다는 것입니다. 이 파일의 모든 생성은 약간 다른 패턴이며 유사한 ~ 7 % 압축률을 갖습니다. 나는 이것이 나의 주장에 매우 중요하므로 이것을 강조한다. ~ 7 비트 / 바이트 엔트로피입니다. 물론 더 강력한 압축 알고리즘을 사용하면 줄어 듭니다. 그러나 0 비트 / 바이트 근처로 줄이지 마십시오. 위의 이미지를 취하고 컬러 맵을 임의의 것으로 대체하여 더 나은 인상을 줄 수 있습니다.
구조는 대부분 비슷하지만 약간 다른 값의 시퀀스이므로 사라집니다. 멀티 테이 팅 운영 체제에서 Java 프로그램을 실행하여 만든 진정한 엔트로피 소스입니까? 균일하게 분포 된 난수 생성기는 아니지만 엔트로피 소스는? PC와 같은 물리적 하드웨어에서 실행되는 소프트웨어로 구축 된 엔트로피 소스.
보충
모든 이미지가 모든 공통의 고정 패턴없이 새로운 엔트로피를 생성 함을 확인하기 위해 10 개의 연속 이미지가 생성되었습니다. 그런 다음 컴파일 할 수있는 가장 강력한 아카이버 (paq8px)로 연결 및 압축되었습니다. 이 프로세스는 변경 / 엔트로피 만 남기고 자동 상관 관계를 포함하여 모든 공통 데이터를 제거합니다.
연결된 파일은 ~ 66 %로 압축되어 ~ 5.3 비트 / 바이트 또는 10.5Mbits / 이미지의 엔트로피 속도로 이어집니다. 엔트로피의 놀라운 금액
보충 2
압축 테스트 방법론에 의한 나의 엔트로피에 결함이 있으며, 상한 추정치가 느슨하다는 부정적인 의견이 있습니다. 이제 NIST의 공식 암호화 엔트로피 평가 테스트 인 SP800-90B_EntropyAssessment를 통해 연결된 파일을 실행했습니다 . 이것은 비 IID 엔트로피 측정에서 얻는 것만 큼 좋습니다. 이것은 보고서입니다 (이 질문은 오래 걸리지 만 문제는 복잡합니다) :-
Running non-IID tests...
Entropic statistic estimates:
Most Common Value Estimate = 7.88411
Collision Test Estimate = 6.44961
Markov Test Estimate = 5.61735
Compression Test Estimate = 6.65691
t-Tuple Test Estimate = 7.40114
Longest Reapeated Substring Test Estimate = 8.00305
Predictor estimates:
Multi Most Common in Window (MultiMCW) Test: 100% complete
Correct: 3816
P_avg (global): 0.00397508
P_run (local): 0.00216675
Multi Most Common in Window (Multi MCW) Test = 7.9748
Lag
Test: 100% complete
Correct: 3974
P_avg (global): 0.00413607
P_run (local): 0.00216675
Lag Prediction Test = 7.91752
MultiMMC Test: 100% complete
Correct: 3913
P_avg (global): 0.00407383
P_run (local): 0.00216675
Multi Markov Model with Counting (MultiMMC) Prediction Test = 7.9394
LZ78Y Test: 99% complete
Correct: 3866
P_avg (global): 0.00402593
P_run (local): 0.00216675
LZ78Y Prediction Test = 7.95646
Min Entropy: 5.61735
결과적으로 NIST는 5.6 비트 / 바이트의 엔트로피를 생성했다고 생각합니다. 내 DIY 압축 추정은 이것을 5.3 비트 / 바이트로, 조금 더 보수적입니다.
-> 증거는 방금 소프트웨어를 실행하는 컴퓨터가 실제 엔트로피를 생성 할 수 있다는 개념을 뒷받침하는 것 같습니다. 그리고 그 폰 노이만은 틀렸을 것입니다.
본인의 주장을 뒷받침 할 수있는 다음 참조 자료를 제공합니다.
프로그램 실행 속도에 비결정론의 확률 론적 모델이 있습니까?
비 결정적 카오스 패턴을 생성 할 수있는 소프트웨어 알고리즘이 있습니까? 혼돈 효과의 관련성.
양자 엔트로피 불확실성 원리 와 평행
nanoTime ()의 혼란스러운 행동에 관한 Aleksey Shipilёv의 블로그 항목 . 그의 산점도는 저와 비슷하지 않습니다.
System.nanoTime()
.