cryptographically secure pseudo random number generator로 쓰이는 Fortuna를 공부하고 있습니다.일단 ferguson과 schneier가 쓴 Practical Cryptography를 읽고, 관련 글들을 검색해서 읽었습니다만, 머리가 나빠서인지 기본 개념들에 대한 이해가 부족해서인지, 이해가 잘 안됩니다.
1. generator의 초기 키 값이 알려져있고, accumulator에 있는 32개 pool이 모두 비어있다면(즉 랜덤소스들이 아직 pool들에 엔트로피를 공급하지 않은 상태라면), 이 상태에서 생성되는 random number는 당연히 예측 가능하다.
2. 그러므로 랜덤소스들이 pool에 엔트로피를 공급해서, 최소 한번은 reseed가 일어나야 한다. 즉 P0가 한번은 꽉 차서 reseed가 일어나는 일이 최소한 한번은 일어나야 한다. 랜덤소스의 이벤트들은 32개의 각 풀에 차례대로 돌아가면서 공급되므로, 최소 32 x (reseed를 위해 필요한 이벤트 갯수)의 이벤트를 수집해야 한다.
라고 이해하고 있는데, 제대로 이해한 것이 맞나요?