진정한 난수 생성기 웹 서비스가 필요합니다.


10

Random.org는 하루에 IP 당 아날로그 세계 ( cf.

누구든지 하루에 더 많은 주문형 임의 비트를 제공하는 대체 웹 서비스를 알고 있습니까?

(가격이 $ 1,000 × 1024bit per per cent의 "예상치에있는 한"지불이면 괜찮습니다)


9
더 큰 문제는 "왜" "정확한"난수 생성기가 필요합니까?
Darknight

5
순수한 소프트웨어에는 진정한 무작위 생성기가 없습니다. 하루가 끝나면 가까이 다가 갈 수 있습니다.
Ramhound

10
무엇을 위해 필요합니까? 게임이나 무언가라면 의사 랜덤은 일반적으로 충분합니다. 암호화 인 경우 웹 서비스를 사용하지 않아야합니다. 실행 가능한 솔루션을 제시하기 전에 그것이 무엇인지 설명해야합니다.
마이클 코네

4
여기 요! [webservice] public int GetRandomNumber() { return 4; // rfc 1149.5 }. 크레딧 : xkcd.com/221
Homde

3
실례합니다. 정수를 사시겠습니까? 우리는 최고의 자유 범위, artisinal 정수만 보유합니다.
Rein Henrichs

답변:


25

아마 이거

http://qrng.physik.hu-berlin.de/

사이트에서 :

우리는 광자 도착 시간의 양자 랜덤 성을 기반으로 새로운 양자 난수 생성기 (QRNG)를 제공합니다. 그것은 가능하고 장기적인 통계적 품질, 속도 및 경제성을 약속합니다. 우리의 디자인은 기존의 일반 솔루션보다 훨씬 높은 비트 전송률을 제공한다는 점에서 새로운 품질을 만듭니다. 이것은 가장 최근의 광자 타이밍 계측 및 하드웨어의 최신 데이터 처리를 이용하여 가능해졌습니다.

고속 (USB를 통해 최대 150Mbits / s)을 제공 할뿐만 아니라, 원시 데이터에 적용되는 사후 처리 알고리즘은 정보 이론의 확실한 예측을 기반으로하여 임의성을 보존합니다. 이를 통해 무조건 보안 암호화 체계에서 전달 된 난수를 사용할 수 있습니다.
[...]
액세스 정책
제공된 데이터 중 단일 사용자 또는 독립 사용자에게 두 번 이상 전달되지 않습니다. 서비스 이용은 무료이지만 등록이 필요합니다.


1
(0.o)?! egad! 나는 그것이 농담이라고 생각했지만 실제로는 존재하지 않습니다 :) (+1) 큰 발견
Darknight

4
품질이 좋지 않은 경우 -1입니다. 이것은 훌륭한 솔루션 일 수 있지만 링크 / 서비스에 대한 세부 정보는 제공하지 않았으므로 요약을 위해 전체 링크를 읽을 필요는 없습니다. P.SE에 대한 답변에 링크가 필요한 경우, 링크하는 솔루션의 요약을 제공하십시오. 답을 수정하면 다운 보트 제거를 고려할 것입니다.
Craige

4
@NimChimpsky-왜? 그것이 P.SE에 대한 품질 답변을 작성하는 방법이기 때문입니다. ba__friend는이 질문을 읽는 사람들을 위해 간단한 서비스 설명을 게시해야합니다. 아마도 서비스가 어떻게 난수를 생성하는지에 대한 빠른 설명 / 인용문 일 것입니다.
크레이그

2
@Craige 사이트에서 발췌 한 게시물로 게시물을 업데이트했습니다.
Adam Lear

5
@NimChimpsky : 링크 로트가 발생하기 때문입니다.
존 퍼디

31

당신이 요구하는 것은 성수이며, 당신은 규칙적인 물을 사용한다는 제안을 거부하고 있습니다. 물보다 성수를 선호하는 유일한 이유는 종교적입니다. 알려진 임의의 프로세스에 의해 실제 물리적 무작위와 구별 될 수없는 단순하고 무작위로 시드 된 PRNG가 있습니다. 그리고 이러한 시스템 비 결정적입니다.

실제 컴퓨터에는 여러 가지 실제 물리적 무작위 소스가 있습니다. 예를 들어, 최신 x86 CPU에는 'TSC'가있어서 명령주기 수 (따라서 간접적으로 10 억 분의 1 초 정도의 시간)를 측정합니다.

네트워크 패킷이 도착하면 TSC를 캡처 할 수 있습니다. TSC의 하위 비트는 네트워크 인터페이스보다 시간이 걸리는 수정 발진기와 CPU를 실행하는 수정 발진기 사이의 정확한 오프셋에 따라 달라집니다. 이것은 실제로 임의적 인 것으로 여겨지는 2 개의 석영 결정에서의 미세한 구역 온도 변화에 의존한다.

마찬가지로, 데이터가 하드 드라이브에서 도착할 때 TSC를 캡처 할 수 있습니다. 낮은 비트는 하드 드라이브 표면과 케이스 사이의 난류 기류 전단에 의존합니다. 이것은 또한 무작위로 믿어집니다.

Linux 커널에서 사용하는 알고리즘 (M. Matsumoto 및 Y. Kurita의 작업을 기반으로 Theodore Ts'o에서 개발 한 알고리즘)과 같은 잘 알려진 알고리즘은 눈사태 효과를 사용하여 예측할 수없는 비트를 훨씬 더 큰 숫자로 변환합니다. 이러한 알고리즘의 출력 (TCS 데이터에 의해 올바르게 시드되었다고 가정)과 실제 물리적 무작위 출력 간의 차이는 종교적인 것입니다. 알려진 방법으로는 이러한 출력을 구별 할 수 없습니다. 하나는 통과 할 것이고 다른 하나는 실패 할 것입니다.

독립적 인 인증을받은 온라인 카지노 용 난수 생성기를 개발했습니다. 이러한 방법은 실제 환경에서 사용되는 방법입니다.


6
상식, 흥미로운 예 및 멋진 성수 은유 +1!
mikera


@David, 안녕하세요, "온라인 카지노 용 난수 생성기를 개발했습니다."
Pacerier

그렇게 재미 있지 않습니다. 온라인 카지노에서 저를 위해 RNG를 개발하기 위해 저를 고용했으며 호주 인증 회사 인 TST에 의해 인증되었습니다.
David Schwartz 5

13

암호화 PRNG가 문제에 충분하지 않은 이유를 여전히 이해하지 못합니다. crypto-PRNG의 정의 속성은 실제 RNG와 출력을 구별 할 수 없다는 것입니다.

이것은 암호화 키 생성 또는 암호화 PRNG 자체 초기화와는 별개로 내가 생각할 수있는 모든 종류의 시뮬레이션 또는 응용 프로그램에 충분하다는 것을 의미합니다.

반면에 웹 서비스 RNG는 암호화에 사용할 수 없습니다.

  1. PRNG와 출력을 구별 할 수 없으므로 실제로 실제 PRNG임을 증명할 수 없습니다.
  2. 서비스 운영자를 신뢰해야합니다
  3. 임의의 데이터는 보안 수준이 낮은 채널을 통해 전송됩니다. PRNG를 침입 할 수있는 공격자가 SSL을 침입 할 수도 있습니다.

따라서 좋은 PRNG보다 웹 서비스 RNG를 선호하는 단일 용도를 생각할 수 없습니다. 실제로 안전하고 안전한 난수가 필요한 경우 직접 하드웨어를 구축하는 대안이 없습니다.


예, 출력이 실제로 무작위임을 증명할 수 없습니다. 그러나 random.org/statistics 을 신뢰하는 것은 어렵지 않습니다 . 보안이 내 요구 사항 중 하나라고 가정하는 것 같습니다. 난수 풀 스톱이 필요합니다. 임의의 안전한 숫자가 아닙니다. (공격자가 도청을 원한다면
마음이

1
실제 RNG와 구별하기 위해 매우 어려운 수학 문제를 해결해야한다는 수학적으로 입증 된 PRNG를 신뢰하는 것은 어렵지 않습니다 .
코드 InChaos

@CodeInChaos는 온라인 카지노가 매우 어려운 수학 문제입니까? 그렇지는 않지만 그런 종류의 진정한 무작위성이 필요하지 않습니다.
Pacerier

2
난 더 볼 기술적 좋은의 PRNG 가끔 심지어 온라인 카지노 충분하지 않아야 진정한 엔트로피의 백 비트를받은 이유를. 합법적 인 이유 가있을 수 있지만이 경우 로컬에서 실제 난수를 생성해야하므로 실제 난수를 사용하고 있음을 증명할 가능성이 높아집니다.
코드 InChaos

8
+1 전적으로 당신에게 동의합니다. 현실적인 난수 데이터를 생성해야하는 게임을 만드는 경우 진정한 난수 생성기보다 PRNG를 사용하는 것이 좋습니다. 먼저 확률 분포에 맞는 통계적으로 무작위 데이터를 생성한다는 수학적 증거가 있습니다. 둘째, 확률 분포를 선택할 수 있습니다. 셋째, 응용 프로그램을 결정적으로 테스트 할 수 있습니다. 넷째, 시작시 시드를 선택하여 같은 방식으로 두 번 작동하지 않도록 할 수 있습니다. 개인적으로 OP는 무작위성이 무엇을 의미하는지 또는 왜 그것이 필요한지 이해하지 못한다고 생각합니다.

5

몇 년 전에 웹캠으로 감시되는 용암 램프의 현재 모양과 위치를 사용하여 임의의 숫자를 생성 한 SGI의 용암 이라고 부를 수 있습니다.

이제는 사라졌지 만 LavaRnd 의 고급 사람들로부터 웹캠과 오픈 소스 코드를 사용하여 자체 생성기를 쉽게 만들 수 있습니다 (편집 : 잠시 동안 다운되었습니다. Wayback Machine Sourceforge Project ). 용암 램프가 전혀 필요하지 않다는 것이 밝혀졌습니다. 웹캠이 가벼운 컨테이너에 밀봉되어있는 동안 CCD에 의해 포착 된 소음은 암호로 생성 된 난수를 생성하는 훌륭한 소스입니다.

(이것은 현재 사용할 수있는 서비스는 아니지만 이전에 사용했기 때문에 너무 시원했기 때문에 거의 무료로 만들 수 있기 때문에 답을 얻을 가치가 있다고 생각했습니다.)


그러나 시간이 지남에 따라 웹캠에 의해 생성 된 "임의의"노이즈는 정규 분포에 맞습니까? 나는 그것을 명확히하고 싶을까요?
Darknight

4
@Darknight : 분포는 무작위성과 어떤 관계가 있습니까? 모든 분포와 일치하는 결정 론적 시퀀스를 생성 할 수 있으며 임의의 숫자가 모든 분포에 적합 할 수 있습니다.
David Thornley

2
@Darknight David가 지적했듯이 숫자가 결국 정규 분포에 맞는지 여부는 임의성에 영향을 미치지 않습니다. 난수 생성기를 암호 적으로 (또는 암호로 강력하게) 만드는 데 관심이있는 경우 LavaRnd 직원은 사이트에 "stat nerd"정보와 링크가 있으며 LavaRnd와의 관련성도 있습니다.
Matthew Frederick

진심으로 Matthew를 쉽게 만들 수있는 방법은 없습니다. 정확히 어떻게 쉽게 정의 할 수 있습니까?
Pacerier

2
@Pacerier 당신은 "쉬운"이 원근법의 문제라는 것이 맞습니다. 이 방법은 서버에 액세스 할 수 있고 적합한 웹캠을 찾는 데 시간이 오래 걸리지 않는 경우, 즉 ebay에서 10 달러 "지금 구입"이라고 말합니다. 카메라를 붙인 채로 둡니다. 무료 소프트웨어 다운로드, 컴파일 및 실행; 코드에서 서비스 호출을 추가합니다. 사소하지는 않지만 매우 쉽고 매우 저렴하며 무제한의 요청을 제공합니다.
Matthew Frederick

1

모든 호스트 / 포트에 대한 TCP 연결을 열고 소요되는 나노초 수를 계산하십시오. 난수가 있습니다.


나는 이것이 당신이 실제로 난수를 생성하는 방법이 아니기를 바랍니다.
Craige

9
내 (약간 냉소적) 대답의 요점은 패킷을 이동하는 데 걸리는 시간의 엔트로피는 타사 서버에 대한 엔트로피를 신뢰하는 "무작위"수보다 훨씬 가치가 있다는 것입니다.
R .. GitHub 중지 도움말 얼음

5
@Pacerier : 전문가가 아니라면 아무도 지능적으로 자신의 암호를 작성하지 않습니다. 그것은 평문을 웹 서비스에 보내고 암호문을 되 찾는 것과는 다릅니다. 마찬가지로, 자신의 양자 랜덤 시스템을 설계하고 싶지는 않지만 HTTP를 통해 임의의 숫자를 전달하는 것은 신뢰할 수 없습니다.
David Thornley

1
@Pacerier 그러나 당신은 왜 가끔 엔트로피 주입 (로컬 엔트로피 소스에서)으로 로컬 PRNG를 사용하는 대안이 불가능한지를 아직 보지 못했습니다.
코드 InChaos

1
@Pacerier : 이것을 믿어 라 : 경제 시뮬레이션을 위해 진짜 난수는 필요하지 않다. 좋은 의사 (또는 짝수 분포에 관심이있는 경우 준 임의) 랜덤 발생기이면 충분합니다. 문제는 다른 곳에 있습니다 (예 : 숫자가 여러 차원에서 서로 관련이 없기를 원합니다-웹 서비스를 사용하여 숫자가 20 차원 공간을 채우는 방법을 확인하는 방법을 어떻게 알 수 있습니까?)
quant_dev

1

여기에 나머지 api가있는 다른 양자 기반 발전기가 있습니다.

http://photonics.anu.edu.au/qoptics/Research/qrng.php

ANU의 연구원들은 물리 양자 소스로부터 진정한 난수를 생성하고 있습니다. 우리는 빛의 광선을 두 개의 광선으로 나누고 각 광선의 전력을 측정하여이를 수행합니다. 빛이 정량화되기 때문에 각 빔의 빛의 강도는 평균에 따라 변동합니다. 양자 진공으로 인한 이러한 변동은 난수의 원천으로 변환 될 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.