13Jul

Како рачунари генеришу случајне бројеве

click fraud protection

коцкице-случајни-бројеви

Рачунари генеришу случајни број за све од криптографије до видео игара и коцкања.Постоје две категорије случајних бројева - "прави" случајни бројеви и псеудонандом бројеви - а разлика је важна за сигурност система за шифровање.

Рачунари могу генерисати заиста случајне бројеве посматрањем неких спољашњих података, као што су кретање миша или бука вентилатора, што није предвидљиво, и креирање података из њега.Ово је познато као ентропија.У другим временима, генеришу "псеудорандом" бројеве користећи алгоритам тако да резултати изгледају случајно, иако нису.

Ова тема је недавно постала контроверзнија, а многи се питају да ли је Интелов интегрирани чип генератора случајног броја поуздан.Да бисте разумели зашто то можда неће бити поуздане, мораћете да схватите на који начин су насумични бројеви на првом месту и за шта се користе.

Који се случајни бројеви користе за

Случајни бројеви су коришћени већ неколико хиљада година.Без обзира да ли покреће новчић или ваља коцку, циљ је да напусти крајњи резултат до случајне шансе.Генератори случајног броја у рачунару су слични - они су покушај да се постигне непредвидив, случајни резултат.

instagram viewer

Генератори случајног броја корисни су за различите сврхе.Поред очигледних апликација као што је стварање случајних бројева у сврху коцкања или стварање непредвидљивих резултата у рачунарској игри, случајност је важна за криптографију.

Криптографија захтева бројеве које нападачи не могу да претпостављају.Не можемо једноставно користити исте бројеве изнова и изнова.Ми желимо да ове бројеве генеришемо на веома непредвидљив начин, тако да нападачи не могу да их погоде.Ови случајни бројеви су од суштинског значаја за сигурно шифровање, без обзира да ли шифрујете своје датотеке или једноставно користите ХТТПС веб страницу на Интернету.

видео-покер-коцкање-случајност

Труе Рандом Нумберс

Можда се питате како рачунар може заправо генерисати случајни број.Одакле долази ова "случајност".Ако је то само комад рачунарског кода, зар није могуће да бројеви које генерише рачунар могу бити предвидљиви?

Ми генерално групишемо случајне бројеве које рачунари генеришу у два типа, у зависности од тога како су генерисани: "Прави" случајни бројеви и псеудо-случајни бројеви.

Да бисте генерирали "прави" случајни број, рачунар мери неку врсту физичког феномена који се одвија изван рачунара.На пример, рачунар може мерити радиоактивно распадање атома.Према квантној теорији, не постоји начин да се сигурно сазна када ће се десити радиоактивно распадање, тако да је то у суштини "чиста случајност" из универзума.Нападач не би могао предвидјети када би се десило радиоактивно распадање, тако да не би знали случајну вриједност.

За више свакодневног примера, рачунар би се могао ослонити на атмосферске шуме или једноставно користити тачно вријеме притискањем тастера на вашој тастатури као извора непредвидљивих података или ентропије.На пример, ваш рачунар би могао приметити да сте притиснули тастер тачно 0,23423523 секунде после 2 сата. Узмите довољно времена за повезивање ових тастера и имате извор ентропије коју можете користити да бисте генерирали "истиниту" случајнуброј.Ви нисте предвидива машина, тако да нападач не може погађати прецизан тренутак када притиснете ове тастере./dev/ случајни уређај на Линуку, који генерише случајне бројеве, "блокира" и не враћа резултат док не оствари довољно ентропије да би вратио стварно случајни број.

линук-генерате-рандом-дата

Псеудорандом бројеви

Псеудорандом бројеви су алтернатива "истинитим" случајним бројевима.Рачунар може да користи вредност семена и алгоритам за генерисање бројева који изгледају случајно, али то су у ствари предвидљиве.Рачунар не прикупља случајне податке из окружења.

Ово није нужно лоша ствар у свакој ситуацији.На пример, ако играте видео игру, није битно да ли се догааји који се јављају у тој игри зваше "истинитим" случајним бројевима или псеудандомним бројевима.Са друге стране, ако користите шифрирање, не желите да користите псеудонандом бројеве које нападач може погодити.

На пример, рецимо да нападач зна алгоритам и вредност семена који користи генератор псеудонемих бројева.Рецимо да алгоритам за шифровање добија псеудонентни број из овог алгоритма и користи га за генерисање кључа за шифровање без додавања додатних случајности.Ако нападач зна довољно, могли би да раде уназад и одреде псеудонандом који је алгоритам за шифровање у том случају морао изабрати, кршећи шифровање.

псеудонандом-бројеви

НСА и Генератор случајног броја генератора

Да би олакшали програмерима и помогли у генерисању сигурних случајних бројева, Интелови чипови укључују генераторе случајних бројева на темељу хардверских уређаја познатих као РдРанд.Овај чип користи извор ентропије на процесору и даје случајне бројеве софтверу када их софтвер затражи.

Проблем је у томе што је генератор случајних бројева у основи црна кутија и не знамо шта се догађа унутар ње.Ако је РдРанд садржао НСА бацкдоор, влада би могла да прекине кључеве за шифровање које су генерисане само са подацима добивеним од тог генератора случајних бројева.

Ово је озбиљна брига.У децембру 2013. године, програмери ФрееБСД-а су уклонили подршку за кориштење РДРанд директно као извор случајности, рекавши да не могу вјеровати.[Извор] Излаз РдРанд уређаја би се уносио у други алгоритам који додаје додатну ентропију, осигуравајући да било која позадина у генератору случајних бројева није битна.Линук је већ радио на овом начину, а даље је рандомизовао случајне податке који долазе из РдРанд-а, тако да то неће бити предвидљиво чак и ако постоји бака.[Соурце] У недавном АМА( "Питај ме било шта") на Реддиту, ЦЕО Интел Бриан Крзаницх није одговорио на питања о овим забринутостима.[Соурце]

Наравно, ово вероватно није само проблем са Интел чиповима.Програмери ФрееБСД-а звали су и Випове чипове по имену.Ова контроверза показује зашто стварање случајних бројева које су заиста случајне и нису предвидљиве је толико важно.

интел

Да бисте генерирали "истините" случајне бројеве, генератори случајног броја окупљају "ентропију" или наизглед случајне податке из физичког света око њих.За случајне бројеве који немају заиста морају бити насумични, они могу само користити алгоритам и вредност семена.

Имаге Цредит: рекре89 на Флицкр, Лиса Бревстер на Флицкр, Риан Сомма на Флицкр, хуангјиахуи на Флицкр