저는 무작위로 짧은 (~ 40 비트) ID를 안전하게 할당해야하는 작업을하고 있습니다. 고유해야합니다. 이는 중앙 서버에서 수행하는 것을 의미합니다.* 반복되지 않는 * 안전한 난수를 생성하는 가장 좋은 방법은 무엇입니까?
매번 새로운 SecureRand를 사용할 때마다 생일 문제가 발생하여 새로운 항목을 생성하는 데 더 오래 걸릴 수 있습니다.
더 좋은 방법은 무엇입니까?
저는 무작위로 짧은 (~ 40 비트) ID를 안전하게 할당해야하는 작업을하고 있습니다. 고유해야합니다. 이는 중앙 서버에서 수행하는 것을 의미합니다.* 반복되지 않는 * 안전한 난수를 생성하는 가장 좋은 방법은 무엇입니까?
매번 새로운 SecureRand를 사용할 때마다 생일 문제가 발생하여 새로운 항목을 생성하는 데 더 오래 걸릴 수 있습니다.
더 좋은 방법은 무엇입니까?
네가 맞다면 40 비트가 너무 짧아 무작위로 선택하면 충돌을 피할 수 없다. 사실, 어떤 알고리즘을 사용하든 "보안"이라고 부르는 것은 너무 짧습니다. 그러나 1 조개보다 훨씬 적은 수의 공간이 필요하고 더 큰 공간의 보안을 필요로하지 않는다고 가정하면 실제로는 거부 샘플링 만 선택할 수 있습니다. 나는. 무작위로 생성하고 기존의 것과 비교하십시오. O (1) 해시를 사용하는 중고품을 찾을 수 있기 때문에, 당신이 실제로 그 조에 가까워 질 때까지, "넣는 데 오래 걸리지 않습니다". 반복하지 않고 "마지막"것만 추적하는 40 비트 순환 생성기와 같은 것을 사용하면 안전하지 않을뿐만 아니라 병렬 처리가 어려워집니다.
강력한 암호 감각으로 보안을 유지할 필요가 없습니다. 어떻게 사용하고 있습니까? Ryan의 [Google doc] (https://docs.google.com/document/d/10G_AhiovtKoLVPGny5UdisSKE4StOLXLPiIZ6j1i1iM/edit?pli=1#) 페이지 2 (파트 4 (b))에 대한 의견을 참조하십시오. "예, 존재하는 경우 생성, 없다면 반복하십시오."가 기본값이지만 50 % [생일 패러독스]로 실행됩니다 (http://en.wikipedia.org/wiki/Birthday_attack#Mathematics) level @ ~ 2^20 개의 항목으로 예상되는 할당 수보다 훨씬 적습니다. – Sai
2^20 키에 가까운 곳이면 40 비트 키 공간을 사용하는 것이 미묘합니다. 여기에 가정을 질문해야합니다. 당신이 정말로 필요로하는 것을 되돌아보고 신선한 모양을 취하십시오. –
Google 문서를 살펴 보셨나요? 이것은 암호 해독 공격에 관한 표준 질문이 아닙니다. 실용적인 키 스페이스는 인간의 유용성에 의해 심각하게 제한되며, 공간 사용량이 극히 희박한 대부분의 공격을받지 않습니다. – Sai