수학 계산기
숫자 생성기


숫자 생성기

무작위숫자생성기는사용자가지정한옵션(예 범위, 반복, 정렬)에따라무작위숫자세트를제공합니다.

옵션

임의의 숫자들

48, 9, 49, 11, 17, 22, 16, 37, 45, 41, 4, 36, 43, 10, 28, 27, 47, 25, 21, 33

계산에 오류가 있었습니다.

목차

  1. 무작위숫자생성기의사용
  2. 무작위와비무작위수열의차이
  3. 무작위숫자생성기의유형
  4. 구글의생성기
  5. 선형합동방법
  6. 현대하드웨어무작위숫자생성기
    1. QRBG121
    2. 라바램프
    3. 핫비츠(HotBits)
    4. 진공양자변동
    5. 탄소나노튜브생성기
    6. 주사위와전자프론티어재단(EFF)
    7. 노키아스마트폰의양자무작위숫자생성기

숫자 생성기

무작위숫자생성기는필요할때마다패턴을정의할수없는무작위숫자를생성하는과정입니다. 이숫자는알고리즘또는하드웨어장치에의해생성될수있습니다.

무작위숫자생성기의사용

무작위숫자생성은컴퓨터게임부터일반적인애플리케이션에이르기까지다양한작업에필요합니다. 예를들어, 시스템은웹사이트에서무작위배너또는광고단위를표시하기위해무작위숫자생성기를사용합니다. 암호학에서도고유한암호나키를만드는데무작위숫자가사용됩니다.

무작위숫자생성은캡차, 암호화, 비밀번호저장을위한솔트생성, 비밀번호생성기, 온라인카지노의카드순서, 의사결정, 샘플링및시뮬레이션을위한숫자또는텍스트생성에사용됩니다.

무작위숫자생성기알고리즘은비디오게임에서자주사용됩니다. 게임의같은레벨에서도매번미션을완료할때마다정확히같지않습니다. 위치나미션에서차이가보이지않을수도있지만, 적의수와등장위치, 기후변화, 다양한장애물등에서차이가나타납니다. 이는게임을더흥미롭게만듭니다.

무작위와비무작위수열의차이

숫자의수열이있다고합시다: 1, 2, 3, 4, 5. 이것은무작위일까요?

무작위변수는시행의결과로여러값중하나를취하는변수입니다. 그리고특정값이나타나기전에는정확하게예측할수없습니다.

주어진숫자들이키보드의상단행을타이핑하여얻어졌다고가정해봅시다. 이경우, 이조합은 5 다음에오는숫자인 6을높은확률로예측할수있으므로무작위가아닙니다.

수열이무작위일때는심볼들간에아무런의존성이없어야합니다.

무작위숫자생성기의올바르고공정한원리를위한기본조건은이시스템에서나올수있는어떤숫자든절대적으로동일한확률을가져야한다는것입니다. 이는무작위성요소의완전한독립성과이전이나이후에나온다른숫자들과의독립성을나타냅니다.

예를들어, 처음으로여섯면체주사위를굴린다면, 1에서 6까지어떤숫자든같은확률로나올수있습니다. 귀하의숫자에상관없이, 두번째, 백번째, 천번째굴림에서같은숫자가나올확률은동일합니다.

파이(Pi)의숫자순서는반복되지않는것처럼보이며, 많은사람들에게는무작위처럼보일수있습니다. 만약우리의가상생성기가공개되지않은지점부터시작되는파이의비트표현에의존한다면, 이생성기는많은맥락에서예측불가능할수있으며, 무작위성에대한특정테스트를통과할수도있습니다. 그러나암호학적목적으로파이에의존하는것은위험을수반합니다. 적이사용되는특정파이부분을결정하면, 그전후부분을예측할수있어시스템의보안이위협받을수있습니다.

미국국립표준기술연구소(NIST)는 "암호화애플리케이션을위한무작위및준무작위숫자생성기의통계적테스트패키지"를제안했습니다. 이것은하드웨어또는소프트웨어생성기에서생성된비트의무작위성정도를결정하는데목적이있는 15개의통계적테스트를포함합니다.

무작위숫자생성기의유형

무작위숫자생성기(RNG)에는두가지유형이있습니다: 진짜무작위숫자생성기(TRNG)와의사무작위숫자생성기(PRNG). TRNG는물리적현상을사용하여숫자를생성하는반면, PRNG는수학적알고리즘을사용합니다.

진짜무작위숫자생성기알고리즘은작은물리적과정을사용하여무작위숫자를생성하는하드웨어장치로만들어집니다. 이과정에서생성되는엔트로피는순수하고미처리된혼돈입니다.

진짜무작위숫자생성기는다음과같은물리적현상을사용합니다:

  • 방사능,
  • 열소음,
  • 전자기소음,
  • 양자역학등.

진짜 RNG는전세계의보안지향적시스템과일부암호화형태에서흔히사용됩니다.

무작위숫자생성기는엔트로피원천을사용하여엔트로피를축적하고무작위숫자생성기에필요한초기값(시드)을얻습니다.

의사무작위숫자생성기알고리즘은보안문제가없는영역에서사용됩니다. 무작위성은반복을피하고최종사용자에게더매력적인과정을만드는데도움이됩니다. 의사무작위숫자생성기기술을구현하는것은하드웨어가필요없고프로그램코드에쉽게내장될수있기때문에더저렴하고빠릅니다. 이과정은완전히무작위가아니며알고리즘에따라결정되지만, 게임과프로그램에더적합합니다.

PRNG는단일초기값을사용하며, 여기서그의사무작위성이따릅니다. 반면에진짜무작위숫자생성기는다양한엔트로피원천에서제공되는고품질의무작위값을처음부터가지고항상무작위숫자를생성합니다.

의사무작위숫자생성에는단점이있습니다. 일반적인눈으로보면무작위로보이기때문에작동합니다. 하지만특정 PRNG 시퀀스의초기값을알고있다면, 다음에나올숫자를예측할수있습니다.

비디오게임열성팬들은종종이취약점을이용합니다. 그들은이를 PRNG 조작이라고부릅니다. 그들은게임을예측가능하게만들어가능한빠르게통과할수있습니다. 다행히도이것은중요한문제를야기하지는않습니다.

하지만무작위숫자를예측하는것이훨씬더중요한경우도있습니다. 예를들어, 보안키를생성할때입니다.

공격자가 TLS 인증서의 RSA 키를생성하는데사용된초기값을알아낸다면, 네트워크트래픽을복호화할수있습니다. 이는인터넷을통해전송되는비밀번호및기타개인정보를얻을수있다는것을의미합니다.

이러한상황에서는더안전한방법으로무작위숫자를얻을필요가있습니다. 즉, 진짜무작위숫자생성기가필요합니다.

구글의생성기

구글은자바스크립트를기반으로한무작위숫자생성도구를갖고있습니다. 이도구는친구나가족과함께게임을할때유용할수있습니다. "무작위숫자생성기"라고구글검색창에입력하면이생성기를찾을수있습니다.

선형합동방법

의사무작위숫자생성기에사용되는가장인기있는알고리즘중하나는선형합동방법입니다. 이방법은간단한경우에사용되며암호화강도는없습니다. 1949년에데릭헨리레머(Derrick Henry Lehmer)가선형합동방법을제안했습니다.

이방법으로숫자를생성하려면네개의숫자를선택해야합니다:

m > 0, 모듈로

0 ≤ a ≤ m, 곱셈계수

0 ≤ c ≤ m, 증가량

0 ≤ X₀ ≤ m, 초기숫자

무작위숫자자체는다음공식을사용하여생성됩니다:

Xₙ₊₁ = (aXₙ + c) mod m

이방법은매개변수선택에따라달라진다는점을주목할가치가있습니다.

예를들어, 다음세트에대해서는:

X₀ = 3, a = 4, c = 5, m = 6

우리는반복되는짧은수열을얻습니다:

3, 5, 1, 3, 5, 1

이것은무작위처럼보이지않습니다.

하지만매개변수를다른것으로변경하면:

X₀ = 2, a = 85, c = 507, m = 1356

결과의분산이더예측불가능해집니다. 이알고리즘에대한숫자를특별히신중하게선택해야합니다.

2, 677, 1100, 443, 194, 725, 1112, 107, 110, 365, 344, 1271, 62, 353, 680, 1355, 422, 1121, 872, 47, 434, 785, 788, 1043, 1022, 593, 740, 1031, 2, 677, 1100, 443, 194, 725, 1112, 107, 110, 365...

선형합동방법은통계적으로좋은의사무작위숫자시퀀스를생성하지만암호학적으로강력하지않습니다. 선형합동방법을기반으로하는생성기는예측가능하기때문에암호학에서사용할수없습니다.

선형합동방법생성기는 1977년에짐리즈(Jim Reeds)에의해처음으로깨졌으며, 이후 1982년에조안보이어(Joan Boyar)에의해이차및삼차생성기도깨졌습니다. 따라서그들은합동방법을기반으로하는생성기가암호학에쓸모없음을입증했습니다. 그러나선형합동방법을기반으로하는생성기는암호화가아닌응용프로그램, 예를들어시뮬레이션에대한유용성을유지하고있습니다. 그들은효율적이며대부분의실증적테스트에서좋은통계적성능을보여줍니다.

현대하드웨어무작위숫자생성기

QRBG121

이장치에서의무작위성효과는반도체에서광자방출의양자물리적과정과개별광자의후속탐지에의존합니다. 이과정에서광자들은서로독립적으로무작위적으로탐지되며, 탐지된광자의타이밍정보를사용하여비트를생성합니다.

라바램프

클라우드플레어(CloudFlare)의샌프란시스코사무실에는 "라바램프"라고불리는무작위숫자생성기가있습니다. 이램프는투명한기름과불투명한파라핀으로채워진유리용기입니다. 파라핀은기름보다약간무겁지만, 약간가열되면가벼워져위로떠오릅니다.

액체의움직임은여러카메라가모니터링하여스냅샷을찍습니다. 이스냅샷들은숫자로변환되며, 이후에암호화키가생성됩니다.

클라우드플레어의다른두사무실은무작위값을얻기위해다른방법을사용합니다. 런던에서는세개의혼돈펜듈럼의움직임을촬영하는카메라를사용합니다. 싱가포르에서는우라늄의작은조각에서방사성붕괴를측정하는가이거카운터를사용합니다. 후자의경우, 우라늄은방사성복사가각붕괴행위의무작위성으로특징지어지기때문에 "데이터소스"로사용됩니다.

핫비츠(HotBits)

핫비츠는이온화방사선을등록하는가이거카운터에의해생성된진짜무작위숫자를제공하는사이트입니다. 사이트에서무작위바이트수를명시하는요청양식을작성하고데이터를얻는데선호하는방법을선택합니다. 무작위숫자가고객에게제공되면, 시스템에서즉시삭제됩니다.

진공양자변동

그이름("vacuus"-빈공간)과달리, 진공은비어있다고간주할수없습니다. 하이젠베르크의불확정성원리에따르면, 가상입자들은끊임없이생성되고소멸합니다.

캐나다의물리학자들은진공변동에기반한빠르고구조적으로간단한무작위숫자생성기를설계했습니다. 이생성기는고주파수방사를가진펄스레이저, 고굴절률매체(다이아몬드), 그리고검출기로구성됩니다. 다이아몬드를통과하는각펄스는광자의경로에서만나는진공필드변동에따라센서에서다른특성을보입니다.

산란된방사선의스펙트럼에는스펙트럼라인이나타납니다. 진공변동의예측불가능성때문에이러한라인들은매번예측할수없는방식으로달라집니다.

탄소나노튜브생성기

이방법은컴팩트함과생성된열소음을결합합니다.

연구자들은특수잉크가포함된세미컨덕팅탄소나노튜브로인쇄된정적랜덤액세스메모리셀로부터무작위숫자생성기를만들었습니다. 이메모리셀은열소음변동을이용하여무작위비트를생성합니다.

탄소나노튜브생성기는유연한플라스틱기판에인쇄될수있어, 극소형유연한전자장치, 착용가능한센서, 일회용라벨, 스마트의류아이템에통합될수있습니다.

주사위와전자프론티어재단(EFF)

이회사는물리적무작위숫자생성기를기반으로한안전한비밀번호생성의간단한방법을제안했습니다. 주사위에기반합니다.

예를들어, 한번에다섯개의주사위를굴려나온숫자를기록합니다. 주사위는다음과같이왼쪽에서오른쪽으로배열됩니다: 63131. 그다음, EFF 웹사이트에서긴단어목록을열어 63131 옆에해당하는단어를찾습니다. 그단어는 "turbofan"입니다.

이절차를여러번반복할수있습니다. 예를들어, 다섯번이라면. 그러면다섯단어의구절이나올수있습니다. 예를들어, "turbofan purge unfitting try pruning."처럼요. 만약당신이기억술의규칙을사용하는방법을안다면, 이런구절들을기억할수있습니다.

노키아스마트폰의양자무작위숫자생성기

2014년, 제네바대학은노키아 N9 스마트폰의카메라를사용하는 QRNG 장치를만들었습니다.

스마트폰카메라는각픽셀에도달하는광자수를계산했습니다. 광원은표준 LED였습니다. 800만화소카메라의각픽셀은짧은시간에약 400개의광자를감지했습니다. 그런다음모든픽셀에서의광자총수는무작위숫자의순서로변환되었습니다.