음... 생각해보면 난수가 쓰일때가 참 많죠.
제가 주로 하는 게임이라던가, 암호학이라던가... 근데 컴퓨터 자체로는 난수를 못 만듭니다.
다행이도 클로드 섀년(정보 이론, 그리고 정보 엔트로피의 창시자)분이 OTP 관련해서 이미 '안전하다' 란 논문을 낸 적이 있습니다. (정보 엔트로피는 악마 하나를 죽였죠. 맥스웰의 악마라고...) 뭐, 현대 OTP는 시간 기반 OTP 입니다. 시간이 몇분 틀려버리면 OTP의 값이 달라지는거죠.
여튼 여타 의사난수 알고리즘이 있지만, 실제 난수 알고리즘이 필요할때가 있죠. 암호화를 더 업글할때나 그럴때 쓰이는 겁니다. 사실 의사난수만 해도 게임 잘 돌아가고, 오히려 다시 되풀이 할수 있기 때문에 게임에선 더 나을수도 있죠. 여튼 암호화 난이도를 조금 더 올리는 게 진짜 난수죠. random.org 은 노이즈 기반, https://qrng.anu.edu.au 는 양자 기반입니다.
대표적으로 진짜 난수를 발휘하는 물건이 '가이거 계수기'죠. 가이거 계수기는 (언제 일어날지 아무도 모르는) 양자의 분열을 판독합니다. 그렇다고 우리가 가이거 계수기같은걸 돈 주고 달까요? 여튼 우리가 실제 이런걸 달 필요가 있을까하지만, TRNG는 달려있습니다.
인텔이 RDRAND(인텔은 이걸 Intel Secure Key Technology라 부릅니다)란 기술을 개발했고, 아이비브릿지부터 장착한후에, AMD는 2015년부터 장착했걸랑요. 높은 엔트로피를 주 재료(시드)로 해서 진짜 난수를 뽑아냅니다. 리눅스 4.19 커널부터는 RDRAND를 사용하고 있고요.
정보 엔트로피에 대해서 설명하자면, 대충 메시지에 포함된 정보의 기댓값(평균) 입니다. 메시지에 이상한 값이 포함되면 엔트로피가 높아지겠죠? 근데, 사람들이 뒤지다보니 열역학적 엔트로피를 포함하네요? 이야...