문제

동시 통화가 SEG-V를 유발하지 않거나 동일한 값을 반환하는 한, 인종 조건과 데이터 손상을 방지하는 데 어떤 이유가 있습니까? prngs 이러한 오류의 주요 효과가 예측할 수없는 결과이고 이것이 PRNG의 요점 인 경우?


편집하다: 인종 조건과 데이터 손상으로 어려움을 겪지 않는 PRNG가 있습니까?

도움이 되었습니까?

해결책

PRNG는 세 심하게 구성된 도구입니다. 솔직히 말해서, 레이스 조건과 스레딩 버그가 좋은 PRNG라면 구현이 그렇게 작성됩니다.

무작위성을 높이기 위해 스레딩 버그를 추가하는 문제는 배우지 않은 생성기로 변경하십시오. 기존 보안 알고리즘 및 구현은 철저한 테스트되었습니다. 안전하지 않은 변형을 시도하려면 통계적 grunt 작업을 수행하여 최소한 정상적인 PRNG만큼 무작위임을 보여 주어야합니다.

다른 팁

이러한 오류의 주요 효과가 예측할 수없는 결과이고 이것이 PRNG의 요점 인 경우?

"랜덤"은 예측할 수없는 것과 동일하지 않습니다. Random은 실제 임의의 숫자를 원한다면 유지해야 할 특정 분포를 의미합니다. 임의의 숫자가 어떠한 방식으로도 예측 가능하면 보안 문제 또는 최소한 프로그램 버그가 될 수 있습니다.

그것은 일반적으로 그것들을 덜 결정적으로 만들 것입니다 (많은 사람들이하는 결정론에 의존한다면 나쁘게 나쁘게) 특정 구현 세부 사항과 하드웨어의 행동 방식에 따라 특정 구현 세부 사항에 따라 의사 랜덤을 덜하거나하지 않을 수도 있습니다.

그러나 일반적으로 멀티 스레드 앱을 작성하는 사람들은 PRNG 상태를 TLS (Thread-Local-Storage)로 선언합니다. 이런 식으로 중요하지 않습니다. 모든 스레드에는 고유 한 PRNG가 있으며, 의도적으로 만들지 않으면 레이스가 발생하지 않습니다. 어쨌든 PRNG 코드 안에 있지 않습니다. 이는 잠금이없고 완전한 성능입니다 (사용 된 TLS 구현에 따라 다름).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top