IT박스

의사 무작위로 선택된 IP 주소에 대한 핑을 사용하여 진정한 난수를 생성 할 수 있습니까?

itboxs 2021. 1. 5. 07:52
반응형

의사 무작위로 선택된 IP 주소에 대한 핑을 사용하여 진정한 난수를 생성 할 수 있습니까?


제시된 질문은 결정 론적 계산 장치에서 숫자를 생성 할 수 없음을 논의하는 동안 Comp Science 2 년차 강의에서 나왔습니다.

이것은 비 상품 급 하드웨어에 의존하지 않는 유일한 제안이었습니다.

결과적으로 누구도 자신의 평판을 옹호하거나 반대하는 주장을하지 않을 것입니다.

누구든지지지하거나 반대하는 데 관심이 있습니다. 그렇다면 가능한 구현에 대한 언급은 어떻습니까?


아니.

네트워크의 악의적 인 컴퓨터는 ARP 스푸핑 (또는 기타 여러 기술)을 사용하여 핑을 가로 채고 특정 기간이 지나면 응답 할 수 있습니다. 그러면 그들은 당신의 난수가 무엇인지 알뿐만 아니라 그것들을 제어 할 것입니다.

물론 로컬 네트워크가 얼마나 결정적인지에 대한 질문이 여전히 남아 있으므로 실제로는 그렇게 쉽지 않을 수 있습니다. 그러나 인터넷에서 임의의 IP를 핑해도 이점이 없으므로 이더넷 트래픽에서 엔트로피를 가져 오는 것이 좋습니다.

기계에 연결된 장치에서 엔트로피를 그리는 것은 잘 연구 된 원칙이며, 다양한 종류의 장치 및 측정 방법의 장단점은 예를 들어 / dev / random 구현에서 도난 당할 수 있습니다.

[ 편집 : 일반적인 원칙으로, 보안의 기초에서 작업 할 때 (그리고 상당한 양의 진정한 무작위 데이터에 대한 유일한 실질적인 요구는 보안과 관련이 있습니다) 환상적으로 자원이 풍부하고 단호한 공격자가 모든 작업을 수행 할 것이라고 가정해야합니다. 시스템을 깨는 힘.

실질적인 보안을 위해 아무도 PGP 키를 그렇게 원하지 않는다고 가정하고 보안과 비용의 균형을 맞출 수 있습니다. 그러나 알고리즘과 기술을 개발할 때, 그들이 직면 할 수있는 가장 강력한 보안을 보장해야합니다. 누군가 어딘가에서 누군가의 개인 키가 당신의 제안을 무너 뜨리기 위해이 키트를 구축하기에 충분히 나쁘게 원한다고 믿을 수 있기 때문에 현재의 모범 사례보다 발전된 것으로 받아 들일 수 없습니다. AFAIK / dev / random은 저렴한 가정용 PC에서 진정한 무작위 데이터를 생성하는 모범 사례에 상당히 근접합니다.]

[ 또 다른 편집 : (1) 물리적 프로세스가 영향을받을 수있는 모든 TRNG에 대해 사실이며 (2) 보안 문제가 여기에 적용되지 않는다고 의견에서 제안했습니다.

(1)에 대한 대답은 실제 하드웨어에서 ping 응답 시간보다 훨씬 더 잘 수행하고 더 많은 엔트로피를 더 빨리 수집 할 수 있다는 것입니다.이 제안은 해결책이 아닙니다. CS 용어로, 결정 론적 기계에서 난수를 생성 할 수 없다는 것이 분명합니다. 이것이 질문을 불러 일으켰습니다. 그러나 CS 용어에서 외부 입력 스트림이있는 기계는 정의상 비 결정적이므로 ping에 대해 이야기하는 경우 결정적 기계에 대해 이야기하는 것이 아닙니다. 따라서 실제 기계가 가지고있는 실제 입력을보고이를 임의성의 소스로 간주하는 것이 합리적입니다. 머신이 무엇이든간에 원시 핑 시간은 사용 가능한 소스 목록에서 높지 않으므로 더 좋은 것이 얼마나 좋은지 걱정하기 전에 배제 할 수 있습니다.

(2)에 대한 답은 철학적입니다. 우연이 아니라 변덕스럽게 선택할 수있는 속성을 가진 난수에 신경 쓰지 않는다면이 제안은 괜찮습니다. 그러나 그것은 내가 '무작위'라는 용어로 이해하는 것이 아닙니다. 일관성이 없다고해서 반드시 무작위라는 의미는 아닙니다.

마지막으로, 요청 된 제안의 구현 세부 사항을 해결하기 위해 : 핑 시간을 무작위로 수락한다고 가정하면 처리되지 않은 핑 시간을 RNG 출력으로 사용할 수 없습니다. 확률 분포를 알지 못하며 균일하게 분포되어 있지 않습니다 (일반적으로 사람들이 RNG에서 원하는 것임).

따라서 ping 당 몇 비트의 엔트로피에 의존할지 결정해야합니다. 엔트로피는 실제로 얼마나 '무작위'인지에 대한 척도로 합리적으로 고려 될 수있는 랜덤 변수의 정확하게 정의 된 수학적 속성입니다. 실제로는 만족스러운 하한을 찾습니다. 그런 다음 여러 입력을 함께 해시하고이를 입력의 전체 신뢰 엔트로피보다 작거나 같은 출력 비트 수로 변환합니다. 'Total'은 반드시 합계를 의미하지는 않습니다. 입력이 통계적으로 독립적 인 경우 합계이지만 핑의 경우가 아닐 가능성이 높으므로 엔트로피 추정의 일부가 상관 관계를 설명하는 것입니다. 이 해싱 작업의 정교한 큰 자매를 '엔트로피 수집기'라고하며 모든 좋은 OS에는 하나가 있습니다.

하지만 데이터를 사용하여 PRNG를 시드하고 PRNG가 임의로 큰 시드 입력을 사용할 수 있다면 해시 할 필요가 없습니다. 시드 값이 얼마나 '무작위'인지 알고 싶다면 여전히 엔트로피를 추정해야합니다. 세계 최고의 PRNG를 사용할 수 있지만 엔트로피는 여전히 시드의 엔트로피에 의해 제한됩니다.]


난수는 우연에 맡기기에는 너무 중요합니다.

또는 외부 영향 / 조작.


짧은 대답

핑 타이밍 데이터를 단독으로 사용하는 것은 진정한 무작위가 아니지만 진정한 무작위 데이터를 생성하는 데 사용할 수 있는 엔트로피 소스로 사용할 수 있습니다 .

더 긴 버전

핑 시간은 얼마나 무작위입니까?

그 자체로는 네트워크 작업 (예 : ping)의 타이밍 데이터가 균일하게 분산되지 않습니다. (그리고 임의의 호스트를 선택하는 아이디어는 실용적이지 않습니다. 많은 사람들이 전혀 응답하지 않을 것이며 응답 시간 범위 사이의 차이로 인해 호스트 간의 차이가 클 수 있습니다. 위성 연결을 생각하십시오).

그러나 타이밍이 잘 분산되지는 않지만 데이터에는 일정 수준의 임의성이 있습니다. 즉, 정보 엔트로피 수준 이 존재합니다. 타이밍 데이터를 난수 생성기에 공급하여 시드하는 것은 좋은 생각입니다. 그렇다면 어떤 수준의 엔트로피가 존재합니까?

약 50ms의 네트워크 타이밍 데이터에 대해 가장 가까운 0.1ms로 측정되고 값이 2ms로 분산되어 있으면 약 20 개의 값이 있습니다. 가장 가까운 2의 거듭 제곱 (16 = 2 ^ 4)으로 내림하면 타이밍 값당 4 비트의 엔트로피가 있습니다. 어떤 종류의 보안 응용 프로그램 (예 : 암호화 키 생성)을위한 경우라면 보수적 일 것이며 읽기 당 2 또는 3 비트의 엔트로피라고 말할 수 있습니다. (여기서는 매우 대략적인 추정을했으며 공격 가능성을 무시했습니다.)

진정한 랜덤 데이터를 생성하는 방법

진정한 난수의 경우 엔트로피를 수집 할 / dev / random 라인을 따라 설계된 데이터를 데이터 저장소 내에 배포해야합니다 ( 일반적으로 안전한 해시 함수 사용 ). 동시에 엔트로피 추정값이 증가합니다. 따라서 128 비트 AES 키의 경우 엔트로피 풀이 충분한 엔트로피를 갖기 전에 64 개의 핑 타이밍이 필요합니다.

더 강력하게하려면 키보드 및 마우스 사용, 하드 디스크 응답 시간, 마더 보드 센서 데이터 (예 : 온도) 등의 타이밍 데이터를 추가 할 수 있습니다. 이는 엔트로피 수집 속도를 높이고 공격자가 모든 것을 모니터링하기 어렵게 만듭니다. 엔트로피 소스. 그리고 실제로 이것은 현대 시스템에서 수행되는 작업입니다. MS Windows 엔트로피 소스의 전체 목록 은이 게시물두 번째 댓글에 나와 있습니다 .

더 많은 읽기

난수 생성기에 대한 (컴퓨터 보안) 공격과 암호 학적으로 안전한 난수 생성기의 설계에 대해 논의하려면 Bruce Schneier 와 John Kelsey 야로우 논문읽는 것보다 더 나쁠 수 있습니다. (Yarrow는 BSD 및 Mac OS X 시스템에서 사용됩니다).


아니.

네트워크 케이블 (또는 /etc/init.d/networking stop)을 분리하면 엔트로피가 기본적으로 0으로 떨어집니다.

핑중인 시스템에서 서비스 거부 공격을 수행하면 예측 가능한 결과 (ping-timeout 값)도 얻을 수 있습니다.


당신이 할 수 있다고 생각합니다. 주의해야 할 몇 가지 사항 :

  • 임의의 IP 주소를 ping하더라도 처음 몇 개의 홉 (사용자에서 ISP 네트워크의 첫 번째 실제 L3 라우터까지)은 모든 패킷에 대해 동일합니다. 이렇게하면 첫 번째 Presence의 데이터 센터에서 무언가를 핑하더라도 왕복 시간에 하한이 적용됩니다. 따라서 타이밍 정규화에주의해야합니다. 왕복에 하한이 있습니다.
  • You'd also have to be careful about traffic shaping in the network. A typical leaky bucket implementation in a router releases N bytes every M microseconds, which effectively perturbs your timing into specific timeslots rather than a continuous range of times. So you might need to discard the low order bits of your timestamp.

그러나 나는 상용 하드웨어에 좋은 엔트로피 소스가 없다는 전제에 동의하지 않습니다. 지난 몇 년 동안 많은 x86 칩셋에는 난수 생성기가 포함되었습니다. 내가 익숙한 것은 상대적으로 민감한 ADC를 사용하여 다이의 서로 다른 두 위치에서 온도를 측정하고 빼는 것입니다. 이 온도 차이의 하위 비트는 (카이 제곱 분석을 통해) 강하게 무작위로 나타날 수 있습니다. 시스템의 처리 부하를 증가 시키면 전체 온도가 올라가지 만 다이의 두 영역 간의 차이는 상관 관계가없고 예측할 수없는 상태로 유지됩니다.


내가 본 상용 하드웨어에서 무작위성의 가장 좋은 소스는 웹캠에서 필터 나 무언가를 제거하고 렌즈에 불투명 한 접착제를 바르고 CCD를 비추는 우주선에서 개별 흰색 픽셀을 쉽게 감지 할 수있는 사람이었습니다. 이들은 가능한 한 완벽하게 무작위에 가깝고 양자 효과에 의해 외부 스누핑으로부터 보호됩니다.


좋은 난수 생성기의 일부는 n-> 무한대와 같은 모든 숫자의 동일한 확률입니다.

따라서 임의의 바이트를 생성하려는 경우 좋은 rng에서 충분한 데이터를 사용하면 각 바이트가 반환 될 확률이 동일해야합니다. 또한 특정 숫자가 반환되는 패턴이나 예측 가능성 (특정 기간 동안 확률이 급증)이 없어야합니다.

무작위 변수를 얻기 위해 측정 할 핑을 사용하는 것이 너무 확실하지 않습니다. 응답 시간입니까? 그렇다면 일부 응답 시간 또는 응답 시간 범위가 다른 응답 시간보다 더 자주 발생하므로 잠재적으로 안전하지 않은 난수 생성기를 만들 수 있습니다.


상용 하드웨어를 원하면 사운드 카드가이를 수행해야합니다. 아날로그 입력의 볼륨을 높이기 만하면 저렴한 백색 잡음 소스가 있습니다. 네트워크가 필요없는 저렴한 임의성.


임의의 시드를 생성하기 위해 무언가측정 하는 방법은 꽤 좋은 것 같습니다. O'Reilly의 책 Practical Unix and Internet Security 는 사용자에게 몇 가지 키 입력을 요청한 다음 키 입력 사이의 시간을 측정하는 것과 같이 임의의 시드를 결정하는 몇 가지 유사한 추가 방법을 제공합니다. (이 책은이 기술이 임의성의 소스로 PGP에서 사용된다는 점에 주목합니다.)

시스템 CPU의 현재 온도 (소수점까지 측정)가 임의의 시드의 실행 가능한 구성 요소가 될 수 있는지 궁금합니다 . 이 접근 방식은 네트워크에 액세스 할 필요가 없다는 장점이 있습니다 (따라서 네트워크 연결이 중단 될 때 랜덤 생성기를 사용할 수 없게됩니다).

그러나 CPU의 내부 센서가 CPU 온도를 소수점 이하 자릿수까지 정확하게 측정하여 값을 난수 시드로 진정으로 실현할 수있을 것 같지 않습니다. 적어도 질문에서 언급 한 "일반용 하드웨어"는 아닙니다!


대기 소음을 사용하는 것만 큼 좋지는 않지만 임의의 반복 불가능한 동작으로 악명 높은 네트워크의 특성에 따라 달라지기 때문에 여전히 진정한 무작위입니다.

무작위성에 대한 자세한 내용은 Random.org참조하십시오 .

다음은 구현 시도입니다.

@ips  : list = getIpAddresses();
@rnd         = PseudorandomNumberGenerator(0 to (ips.count - 1));

@getTrueRandomNumber() { ping(ips[rnd.nextNumber()]).averageTime }

나는 빨리 같은 것을 사용하는 것이 이삭을 엔트로피로 왕복 ping을 신뢰하기 전에 강력한 PRNG한다. 다른 사람들이 말했듯이 누군가가 당신의 숫자를 추측 할뿐만 아니라 다양한 정도로 제어하기가 너무 쉬울 것입니다.

다른 사람들이 언급 한 다른 훌륭한 엔트로피 소스가 존재합니다. 언급되지 않은 것 (실용적이지 않을 수 있음)은 온보드 오디오 장치에서 잡음을 샘플링하는 것입니다. 마이크가 연결되어 있지 않아도 일반적으로 약간 시끄러울 것입니다.

필자는 내가 작성하고있는 클라이언트 / 서버 RPC 메커니즘을위한 강력한 (그리고 빠른) PRNG를 생각해 내기 위해 9 라운드를 진행했습니다. 양쪽 모두 동일한 키를 가지고 있으며, 32 자 암호의 1024 줄로 구성되었습니다. 클라이언트는 AUTH xx를 보내고 서버는 AUTH yy ..를 반환하며 양쪽은 복어 비밀 (+ salt)을 생성하는 데 사용할 키의 두 줄을 알고있었습니다. 그런 다음 서버는 전체 키 (암호화 된)의 SHA-256 다이제스트를 전송하고 클라이언트는 올바른 키를 가진 무언가와 대화하고 있다는 것을 알았습니다. 세션이 계속되었습니다. 네, 중간에있는 사람에 대한 보호는 매우 약했지만 장치가 어떻게 사용되는지에 대한 공개 키는 의문의 여지가 없었습니다.

따라서 최대 256 개의 연결을 처리해야하는 비 차단 서버가있었습니다. 느린 방법을 사용하여 클라이언트에서 엔트로피를 수집하는 것은 그리 어렵지 않았지만 서버에서는 감당할 수 없었습니다.

그래서 당신의 아이디어에 대해 물어봐야 겠네요 .. 얼마나 실용적일까요?


수학적 계산은 임의의 결과를 생성 할 수 없지만 "실제"컴퓨터에서는 정확히 숫자를 처리하지 않습니다. 약간의 창의력으로 알려진 방법이없는 종류의 임의의 결과를 생성 할 수 있어야합니다. 정확한 결과를 재현하거나 예측합니다.

모든 시스템에서 보편적으로 작동하는 아이디어를 구현하기 가장 쉬운 방법 중 하나는 컴퓨터 사운드 카드 라인 입력 / 마이크 포트에서 정적을 사용하는 것입니다.

다른 아이디어로는 열 잡음과 캐시 라인의 낮은 수준의 타이밍이 있습니다. TPM 칩이 탑재 된 많은 최신 PC에는 암호화 품질의 하드웨어 난수 생성기가 이미 탑재되어 있습니다.

핑 (ICMP를 사용하는 경우 특히)에 대한 나의 무뚝뚝한 반응은 너무 노골적으로 부정 행위를한다는 것입니다. 그 시점에서 기가 카운터를 채찍질하고 배경 방사선을 무작위 소스로 사용하는 것이 좋습니다.


네, 가능합니다.하지만 ... 악마는 세부 사항에 있습니다.

32 비트 정수를 생성하려면> 32 비트의 엔트로피를 수집해야합니다 (그리고 엔트로피가 퍼지도록 충분한 혼합 함수를 사용하지만 이는 알려져 있고 실행 가능합니다). 큰 질문은 :

핑 시간에 얼마나 많은 엔트로피가 있습니까?

이 질문에 대한 대답은 네트워크와 공격 모델에 대한 모든 종류의 가정에 따라 달라지며 상황에 따라 다른 대답이 있습니다.

공격자가 핑 시간을 완전히 제어 할 수 있다면 핑당 0 비트의 엔트로피를 얻게되며 아무리 섞어도 총 32 비트의 엔트로피를 얻을 수 없습니다. 핑 시간을 완벽하게 제어하지 못하면 엔트로피가 발생하고 수집하는 엔트로피의 양을 과대 평가하지 않으면 완벽하게 임의의 32 비트 숫자를 얻게됩니다.


YouTube는 작동중인 기기를 보여줍니다. http://www.youtube.com/watch?v=7n8LNxGbZbs

무작위는 아무도 다음 상태를 예측할 수없는 경우입니다.


내가 확실히 반대하거나 반대 할 수는 없지만이 구현에는 문제가 있습니다.

이러한 IP 주소가 어디에서 오는지, 임의로 선택한 경우 응답하지 않거나 응답이 늦었을 때 어떤 일이 발생하는지, 이는 임의의 숫자가 나타나는 속도가 느리다는 것을 의미합니다.

또한 100.000 결과의 시각적 그래프를 만들고 숫자 사이에 상관 관계가 없거나 거의 없다고 계산하더라도 그것이 진정한 무작위임을 의미하지는 않습니다. dilbert가 설명했듯이 :)


그것은 무작위성의 좋은 원천이라고 생각하지 않습니다.

어떤 측정 항목을 사용 하시겠습니까? 분명한 것은 응답 시간이지만 합리적으로 예상 할 수있는 값의 범위는 수십 밀리 초에서 수천까지 작습니다. 응답 시간 자체는 종 곡선을 따르며 임의의 간격 (간격을 어떻게 선택 하시겠습니까?)에 걸쳐 무작위로 분배되지 않으므로 숫자에서 몇 개의 '무작위'비트를 선택해야합니다.

LSB는 임의의 비트 스트림을 제공 할 수 있지만 클럭 세분성 문제를 고려해야합니다. 인터럽트가 작동하는 방식으로 인해 일부 시스템에서는 항상 2ms의 배수를 얻을 수 있습니다.

임의의 비트를 얻는 훨씬 더 나은 '흥미로운'방법이있을 것입니다. 임의의 단어에 대해 Google에서 첫 페이지를 가져 와서 페이지에서 N 번째 비트를 선택합니다.


어, 나는 이런 종류의 질문이 '진정한 무작위'의 의미에 대한 토론으로 매우 빠르게 이어진다는 것을 발견했습니다.

나는 핑을 측정하는 것이 괜찮은 품질의 랜덤 비트를 산출 할 것이라고 생각하지만 (진지한 DDOS를 할 의향이 없다면) 많이 사용하기에는 불충분합니다.

그리고 컴퓨터의 아날로그 / 기계적 특성이나 컴퓨터를 작동하는 미트 백의 동작을 측정하는 것보다 더 무작위적인 것 같지는 않습니다.

(편집) 실제로이 접근 방식은 네트워크의 누군가가 '무작위'번호 생성기를 조작 할 가능성을 열어줍니다.


진정한 무작위성은 설명 할 수없는 것 같습니다. 시퀀스가 ​​무작위인지 여부를 알 수있는 방법이 없습니다. 정의에 따라 아무리 불가능하더라도 어떤 것도 포함 할 수 있기 때문 입니다. 특정 분포 패턴을 보장 하면 임의성이 감소 합니다. "패턴"이라는 단어는 약간의 선물입니다.

    I MADE U A RANDOM NUMBER
           BUT I EATED IT

임의성은 이진 속성이 아닙니다. 스트림에서 다음 값을 예측하는 것이 얼마나 어려운지를 나타내는 0과 1 사이의 값입니다.

"핑을 기반으로하는 경우 내 값이 얼마나 무작위 일 수 있습니까?" 실제로 "핑이 얼마나 무작위입니까?"라고 묻는 것입니다. 충분히 큰 데이터 세트 (예 : 100 만 핑)를 수집하고 시간에 따른 분포 곡선과 동작을 매핑하여이를 추정 할 수 있습니다. 분포가 평평하고 동작을 예측하기 어려운 경우 데이터가 더 무작위로 보입니다. 더 울퉁불퉁 한 분포 또는 예측 가능한 동작은 낮은 임의성을 나타냅니다.

샘플 해상도도 고려해야합니다. 결과가 어떤 식 으로든 밀리 초로 반올림되는 것을 상상할 수 있습니다. 따라서 ping을 사용하면 0에서 500 사이의 정수 값을 가질 수 있습니다. 이는 많은 해상도가 아닙니다.

실용적인 측면에서는 핑을 예측하고 조작하여 무작위성을 더욱 줄일 수 있기 때문에 반대하는 것이 좋습니다.

Generally, I suggest against "rolling your own" randomness generators, encryption methods and hashing algorithms. As fun as it seems, it's mostly a lot of very intimidating math.

As to how to build a really good entropy generator -- I think that's probably going to have to be a sealed box that outputs some sort of result of interactions on atomic or sub-atomic level. I mean, if you're using a source of entropy that the enemy can easily read too, he only needs to find out your algorythm. Any form of connection is a possible attack vector, so you should place the source of entropy as close to the service that consumes it as possible.


You can use the XKCD method:

난수 생성기


I got some code that creates random numbers with traceroute. I also have a program that does it using ping. I did it over a year ago for a class project. All it does is run traceroute on and address and it takes the least sig digit of the ms times. It works pretty well at getting random numbers but I really don't know how close it is to true random.

Here is a list of 8 numbers that I got when I ran it.

455298558263758292242406192

506117668905625112192115962

805206848215780261837105742

095116658289968138760389050

465024754117025737211084163

995116659108459780006127281

814216734206691405380713492

124216749135482109975241865

#include <iostream>
#include <string>
#include <stdio.h>
#include <cstdio>
#include <stdlib.h>
#include <vector>
#include <fstream>

using namespace std;

int main()
{
system("traceroute -w 5 www.google.com >> trace.txt");

string fname = "trace.txt";
ifstream in;
string temp;

vector<string> tracer;
vector<string> numbers;

in.open(fname.c_str());
while(in>>temp)
tracer.push_back(temp);

system("rm trace.txt");

unsigned index = 0;

string a = "ms";
while(index<tracer.size())
{
if(tracer[index]== a)
numbers.push_back(tracer[index-1]);
++index;
}


std::string rand;

for(unsigned i = 0 ; i < numbers.size() ; ++i)
{
std::string temp = numbers[i];
int index = temp.size();
rand += temp[index - 1];
}

cout<<rand<<endl;

return 0;

}

Very simply, since networks obey prescribed rules, the results are not random.

The webcam idea sounds (slightly) reasonable. Linux people often recommend simply using the random noise from a soundcard which has no mic attached.


here is my suggestion :

1- choose a punch of websites that are as far away from your location as possible. e.g. if you are in US try some websites that have their server IPs in malasia , china , russia , India ..etc . servers with high traffic are better.

2- during times of high internet traffic in your country (in my country it is like 7 to 11 pm) ping those websites many many many times ,take each ping result (use only the integer value) and calculate modulus 2 of it ( i.e from each ping operation you get one bit : either 0 or 1).

3- repeat the process for several days ,recording the results.

4- collect all the bits you got from all your pings (probably you will get hundreds of thousands of bits ) and choose from them your bits . (maybe you wanna choose your bits by using some data from the same method mentioned above :) )

주의 : 코드에서 시간 초과 ..etc를 확인해야합니다.

참조 URL : https://stackoverflow.com/questions/137340/could-a-truly-random-number-be-generated-using-pings-to-pseudo-randomly-selected

반응형