Beberapa orang berkata sebagai berikut:
Siapa pun yang berusaha menghasilkan angka acak dengan cara deterministik, tentu saja, hidup dalam keadaan berdosa.
Itu selalu berarti bahwa Anda tidak dapat menghasilkan angka acak benar hanya dengan komputer. Dan dia mengatakan bahwa ketika komputer adalah ukuran yang setara dengan mikroprosesor Intel 8080 tunggal (~ 6000 katup). Komputer menjadi semakin kompleks, dan saya percaya bahwa pernyataan von Von Neumann mungkin tidak lagi benar. Pertimbangkan bahwa algoritma perangkat lunak yang diimplementasikan saja tidak mungkin. Mereka berjalan pada perangkat keras fisik. Generator nomor acak sejati dan sumber entropi mereka juga terbuat dari perangkat keras.
Fragmen Java ini dimasukkan ke dalam lingkaran:
file.writeByte((byte) (System.nanoTime() & 0xff));
dapat membuat file data yang saya wakili sebagai gambar:
Anda dapat melihat struktur, tetapi dengan banyak keacakan juga. Yang menarik adalah bahwa file PNG ini berukuran 232KB, namun mengandung 250.000 piksel skala abu-abu. Level kompresi PNG maksimum. Itu hanya rasio kompresi 7%, yaitu. cukup tidak kompresibel. Yang juga menarik adalah bahwa file tersebut unik. Setiap generasi dari file ini adalah pola yang sedikit berbeda dan memiliki kompresibilitas yang sama ~ 7%. Saya menyoroti ini karena ini penting untuk argumen saya. Itu ~ 7bits / byte entropy. Itu akan mengurangi tentu saja pada penggunaan algoritma kompresi yang lebih kuat. Tetapi tidak mengurangi menjadi mendekati 0 bit / byte. Kesan yang lebih baik dapat diperoleh dengan mengambil gambar di atas dan mengganti peta warnanya dengan yang acak: -
Sebagian besar struktur (di bagian atas) menghilang karena hanya urutan nilai yang sama tetapi sedikit berbeda. Apakah ini sumber entropi sejati yang dibuat dengan hanya menjalankan program Java pada sistem operasi multi pengambilan? Bukan generator nomor acak yang terdistribusi secara merata, tetapi sumber entropi untuk satu? Sumber entropi yang dibangun dari perangkat lunak yang berjalan pada perangkat keras fisik yang kebetulan merupakan PC.
Tambahan
Untuk mengkonfirmasi bahwa setiap gambar menghasilkan entropi segar tanpa pola tetap yang sama untuk semua, 10 gambar berurutan dihasilkan. Ini kemudian digabungkan dan dikompresi dengan pengarsipan terkuat yang bisa saya kompilasi (paq8px). Proses ini akan menghilangkan semua data umum, termasuk korelasi otomatis hanya menyisakan perubahan / entropi.
File gabungan dikompresi menjadi ~ 66%, yang mengarah ke tingkat entropi ~ 5,3 bit / byte atau 10,5Mbits / gambar. Entropi mengejutkan
Tambahan 2
Ada komentar negatif bahwa entropi saya dengan metodologi uji kompresi cacat, hanya memberikan perkiraan batas atas yang longgar. Jadi sekarang saya telah menjalankan file gabungan melalui tes penilaian kriptografi entropi resmi NIST, SP800-90B_EntropyAssessment . Ini sama baiknya dengan pengukuran entropi non IID. Ini adalah laporannya (maaf pertanyaan ini semakin lama, tetapi masalahnya rumit): -
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
Hasilnya adalah bahwa NIST percaya bahwa saya telah menghasilkan 5,6 bit / byte dari entropi. Perkiraan kompresi DIY saya menempatkan ini pada 5,3 bit / byte, sedikit lebih konservatif.
-> Bukti tampaknya mendukung anggapan bahwa komputer yang baru saja menjalankan perangkat lunak dapat menghasilkan entropi nyata. Dan von Neumann itu salah (tapi mungkin benar untuk zamannya).
Saya menawarkan referensi berikut yang mungkin mendukung klaim saya: -
Apakah ada model stokastik determinisme non dalam tingkat pelaksanaan program?
Analisis WCET dari Sistem Real-Time Sulit Probabilistik
Apakah ada algoritma perangkat lunak yang dapat menghasilkan pola kekacauan non-deterministik? dan relevansi efek kacau.
Paralel dengan prinsip ketidakpastian entropik Quantum
Entri blog Aleksey Shipilёv tentang perilaku kacau nanoTime (). Plot sebarnya tidak berbeda dengan milikku.
System.nanoTime()
.