Як випадкові числа керують нашим життям, а ми цього не усвідомлюємо

    • Author, Кріс Баранюк
    • Role, BBC Future

Наш світ працює завдяки випадково згенерованим числам, і без них дивовижна частина сучасного життя просто не могла б існувати. То чому їх так важко знайти?

Група приятелів відчайдушно намагалася пояснити, що саме вони шукають, – дуже тріскуче радіо. Таке, що видає гучний шум, коли ви перемикаєте станції. Продавець магазину навіть не знав, що їм сказати.

"Мені здається, він подумав, що ми геть божевільні", - згадує Мадс Хаар.

Ішов 1997 рік, і він із друзями завітав до магазину Radio Shack у Берклі, Каліфорнія. Більшість радіоприймачів у продажу мали шумові фільтри, які усували той самий тріск, який був їм потрібний. Проте після умовлянь продавець таки погодився дати Хаару та його друзям послухати один зі своїх найдешевших пристроїв.

Коли вони вставили батарейки у маленький сірий радіоприймач вартістю 10 доларів, з нього виринула лавина шуму. Це було дуже гучно.

"Ми почали стрибати від радості", - згадує Хаар.

Це маленьке радіо потенційно мало зробити їх багатіями. Хаар і троє його друзів працювали над програмним забезпеченням для азартних ігор – цифровими гральними автоматами та блекджеком, які вони хотіли розмістити онлайн. Тоді онлайн-казино тільки починали розвиватися.

Хаар знав, що їм потрібно мати можливість генерувати надійні випадкові числа. Нескінченні потоки цифр, які визначали, які слоти з’являтимуться, коли ви смикатимете віртуальну ручку грального автомата - або які карти вам роздадуть в онлайн-покері. Якби ці цифри не були цілком випадковими, казино було б не дуже чесним, а гравці могли б навіть спробувати надурити систему, шукаючи передбачувані комбінації під час гри.

Саме тому четверо друзів шукали джерело випадковості, яке б заслуговувало на довіру. Яке не може бути упередженим за визначенням. Аж раптом на Хаара зійшло прозріння – шипіння дуже дешевого аналогового радіо.

Статичний шум, який видає такий пристрій, насправді є безладним сигналом, що формується завдяки блискавці та електромагнітній активності в атмосфері Землі.

Хаар збирався "згодувати" цю тарабарщину комп'ютеру, який мав перетворити ці звукові коливання в маленькі одиниці та нулі, також відомі як біти, а потім використати їх для створення рядків випадкових чисел – щось на кшталт 4107567387. Це, своєю чергою, мало визначити, наприклад, що наступною картою, яку вам роздадуть в онлайн-покері, буде, скажімо, шістка пік.

Skip Підписуйтеся на нас у соцмережах and continue readingПідписуйтеся на нас у соцмережах

End of Підписуйтеся на нас у соцмережах

Є речі, з якими комп’ютери, попри усю їхню майстерність, справляються погано, і випадковість - одна з них. Звісно, комп’ютери постійно видають дані - то чому б не випадкові числа?

Проблема полягає в тому, що комп’ютери покладаються на внутрішні механізми, які є на певному рівні передбачуваними, тобто результати комп’ютерних алгоритмів зрештою також стають передбачуваними - а це зовсім не те, чого ви прагнете, якщо керуєте казино.

Ця ж проблема може викликати головний біль і у криптографів. Коли ви шифруєте інформацію, вам потрібно, щоб ключі до коду були якомога випадковішими, щоб ніхто не міг зрозуміти, як ви спотворили оригінальний текст - оскільки це може дозволити їм прочитати секретне повідомлення.

Люди давно шукали зовнішні джерела випадковості як основу генераторів випадкових чисел. У пошуках справжньої випадковості вони шукали хаотичні явища, які неможливо передбачити чи маніпулювати ними. Вони слухали гуркіт грози, фотографували краплі дощу на склі та гралися з найдрібнішими частинками у відомому Всесвіті. І ці пошуки ще тривають.

Зрештою, маленьке сіре радіо не зробило Хаара та його друзів багатіями. Ігорний онлайн-бізнес тоді лише зароджувався, і молоді підприємці не змогли на ньому збагатитися. Але генератор випадкових чисел, який вони створили, все ж міг стати у пригоді, подумали вони. Тож Хаар створив на його основі random.org, який відтоді генерує випадкові числа і щодня має безліч відвідувачів.

"Наприклад, мерія Сан-Франциско, - каже Хаар. - Вони використовують наш сервіс для розіграшу переможців, яким пощастило отримати доступне житло".

Серед інших користувачів - люди, які проводять місцеві лотереї. Щотижня вони обирають на вебсайті Хаара виграшні номери. Вчені навіть використовували онлайн-генератор чисел, щоб рандомізувати учасників експериментів. Маркетингові фірми, які роздають призи споживачам, також обирають своїх переможців за допомогою random.org.

На сайті також можна обрати випадковий пароль. І так, деякі азартні онлайн-сервіси також покладаються на random.org.

Один чоловік навіть розповів, що він іде на сайт, щоб обрати, яку музику зі своєї колекції 700 компакт-дисків брати в машину щотижня.

Випадкові числа генеруються з атмосферної активності, яку вловлюють декілька радіоприймачів. Оригінальний приймач вартістю 10 доларів давно загубився, зізнається Хаар. Протягом багатьох років він і його колеги створювали дедалі досконаліше обладнання, щоб отримати високоякісний атмосферний шум, і наразі сайт використовує дев’ять великих приймачів у різних географічних точках.

Якщо ви ніколи не граєте у лотереї або не маєте наміру брати участь у клінічних дослідженнях, то можете подумати, що випадкові числа вам не дуже потрібні. Але будете не праві.

Щоразу, коли ви обираєте новий пароль - навіть той, який придумали самі, - комп’ютер додає до нього ще один фрагмент даних. Це кодує пароль для зберігання та означає, що якщо хтось зламає базу даних і вкраде ваш пароль, він не зможе легко його розшифрувати та використати для доступу до вашого облікового запису. Ця частина даних, додана до пароля, називається "сіль" - і походить від випадкових чисел.

"Ми використовуємо їх щодня, навіть не знаючи про це", - каже Алан Вудворд, експерт з комп’ютерної безпеки з Університету Суррея.

Він зазначає, що випадкові числа мають важливе значення для захисту інформації, оскільки вони використовуються щоразу, коли комп’ютер шифрує дані - так, що для будь-якого випадкового спостерігача вони виглядають як абракадабра.

Наприклад, коли ви відвідуєте вебсайт, який починається з "https://", ви просите свій комп’ютер і сервер, на якому розміщений вебсайт, згенерувати випадкові числа, обмінятися ними, а потім використати їх для шифрування даних, які надсилаються, коли ви завантажуєте вебсайт і продовжуєте його використовувати (Це дуже спрощене пояснення, але суть ви вловили).

Коли комп’ютерними мережами - особливо загальнодоступними - розповсюджуються конфіденційні дані, цю інформацію дуже важливо захистити.

Cloudflare, технологічна фірма, яка надає послуги хмарної безпеки, використовує у своїх центрах обробки даних багато випадкових чисел. Компанія використовувала кілька неординарних способів генерації випадковості - включно з колекцією лавових ламп.

"Це починалося майже як жарт, а потім ми подумали: "Чекайте, але ми реально можемо це зробити", - каже Джон Грем-Каммінг, головний технічний директор. В офісі Cloudflare у Сан-Франциско камера на стелі спрямована на стіну з різнокольоровими лавовими лампами.

"Рух цих лавових ламп, пухкої, масляної, воскової субстанції всередині, непередбачуваний", — пояснює Грем-Каммінг.

Це означає, що камера може робити знімки крапель з інтервалами, які потім перетворюються на ряд чисел – більш-менш залежно від форми та положення крапель. Ця ідея, яку вперше продемонстрована компанія під назвою Silicon Graphics наприкінці 1990-х років - одним із багатьох методів у розпорядженні Cloudflare, які компанія використовує для генерації випадкових чисел для захисту інформації.

Перелік речей, до яких люди зверталися в гонитві за випадковими числами, надзвичайно дивний.

Один інженер-програміст, гуляючи в дощовий день, зрозумів, що джерелом випадковості можуть стати краплі дощу, які падають на його окуляри, - тож він спробував відтворити їх за допомогою короткого коду.

Інші намагалися зафіксувати активність бульбашок в акваріумі або знімати на вебкамеру непередбачувану поведінку кошеняти.

Одна група дослідників навіть шукала випадковість в унікальних генетичних послідовностях, що містяться в молекулах ДНК усіх живих істот.

Крім того, багато уваги приділяли також явищу радіоактивного розпаду, який уловлюють, наприклад, лічильники Гейгера. Точно передбачити, коли атом розпадеться і випустить субатомні частинки, які запускають лічильник Гейгера, неможливо, тож це вважають гарним джерелом випадковості.

Є навіть проєкт, який використовував для генерування випадкових чисел банан - оскільки відомо, що цей фрукт є помірно радіоактивним.

У 2016 році New York Times розповіла про юного комп’ютерного гравця, який зумів створити свого роду генератор випадкових чисел у Minecraft.

Геймер створив щось на зразок турніру для своїх друзів у світі Minecraft і хотів мати можливість активувати пастку через випадкові проміжки часу, щоб упіймати у неї учасників гри.

Для цього він вирішив побудувати вольєри та заселити у них віртуальних корів, які називаються мушрумами і переміщуються безсистемно. Кожного разу, коли мушрум наступав на одну з пластин, які гравець встановив на підлозі вольєрів, це запускало пастку, яку він спроєктував. New York Times називає це "геніальним рішенням".

Існує також багато прикладів простіших вхідних даних для генераторів випадкових чисел. Можна використовувати, наприклад, рух курсора миші на екрані комп’ютера, часову затримку між натисканнями клавіш на клавіатурі або фоновий шум у комп’ютерній мережі.

"Ми досить упевнені, що це безпечно", - говорить Стівен Мердок, професор інженерної безпеки в Університетському коледжі Лондона, маючи на увазі останнє. Мердок є творцем браузера Tor, який дозволяє безпечну навігацію в інтернеті за допомогою кількох рівнів шифрування.

Він стверджує, що ми маємо достатньо знань для того, щоб генерувати випадкові числа належним чином, але часто недостатньо перевіряємо, чи нібито випадковий результат насправді є непередбачуваним.

"Мені хотілося би бачити більш ретельної розробки та тестування", - каже він.

Але тут починаються труднощі.

"Неможливо визначити, чи є щось випадковим - можливо лише спіймати те, що випадковим не є", - пояснює Даррен Герлі-Сміт, викладач інформаційної безпеки в Royal Holloway Лондонського університету.

У дослідників є способи виявити генератор невипадкових чисел - наприклад, статистичний аналіз, який шукає послідовності, де одне число з’являється частіше, ніж було б, якби ця послідовність була дійсно випадковою – наприклад, забагато трійок.

Однак цього недостатньо.

Що робити, якщо ваша послідовність "123123123123123"? У цьому випадку, зазначає Герлі-Сміт, є багато трійок, але вони представлені не частіше, ніж одиниці чи двійки. Однак у цієї послідовності є дуже очевидний шаблон - базова структура, яка видає її як невипадкову.

Для справді великих наборів чисел статистичні тести на випадковість стають дуже складними, і все одно ніколи неможливо довести, що щось є дійсно випадковим - лише те, що це неможливо відрізнити від випадкового після проведення найкращого аналізу.

Якщо генератори випадкових чисел не виконують свою роботу належним чином, цілком логічно, що їх можуть спробувати використати зловмисники.

У 2017 році Wired розповів про російського хакера, який нібито змусив людей знімати роботу ігрових автоматів у казино. На основі результатів кожної гри він міг передбачити роботу внутрішніх генераторів випадкових чисел автоматів і, отже, визначити, коли вони наступного разу покажуть виграшну комбінацію.

Приблизно десять років тому дослідники безпеки з Кембриджського університету, разом з Мердоком, зрозуміли, що шахраї можуть викрадати гроші в людей, передбачаючи нібито випадкові числа, згенеровані всередині карток із чіпом і пін-кодом.

Такі номери потрібні для автентифікації транзакції, коли ви оплачуєте щось у магазині. Але виявилося, що можна передбачити майбутні номери і таким чином використати чиюсь картку без їхнього дозволу. За словами одного з дослідників, які виявили цей недолік, такі шахрайства ймовірно здійснюють і сьогодні.

Навіть якщо врахувати технологічні недоліки, більшість згаданих вище генераторів випадкових чисел могли б бути трохи надійнішими. Джерела випадковості, від яких вони залежать, у кращому випадку здаються нам випадковими. Якби ми якимось чином могли знати про кожну деталь великого і складного Всесвіту та могли його ідеально змоделювати, ми, ймовірно, змогли б передбачити атмосферний шум або картину крапель дощу, що падають на скло.

Саме тому дехто стверджує, що найкращий вид генератора випадкових чисел – це квантовий генератор випадкових чисел, тобто такий, який покладається на квантово-механічні ефекти. Наскільки ми можемо судити, вони настільки випадкові, наскільки це можливо. Дивна поведінка або ентропія субатомних частинок, включно з часом розпаду окремого радіоактивного атома, наприклад, абсолютно непередбачувана. Щоправда, точаться дискусії щодо того, чи взагалі існує справжня випадковість, але залишимо їх фізикам-теоретикам.

Для практичних цілей такі речі, як час надходження фотонів – крихітних частинок світла – до детектора, вважаються справді випадковими та придатними як основа для генерування випадкових чисел.

У принципі, квантові генератори випадкових чисел "є непередбачуваними за своєю суттю", каже Жанет Захарієва, співзасновниця британської фірми Quantum Dice, яка розробляє власну технологію квантової генерації випадкових чисел.

І все ж навіть деякі з цих нових систем схильні до недоліків, які можуть спотворити їхні результати.

"Те, що ви в кінцевому підсумку отримуєте, - це суміш квантової ентропії […] та класичного шуму", – каже Захарієва.

Герлі-Сміт зазначає, наприклад, що деякі квантові генератори випадкових чисел покладаються на обладнання, яке з часом може зробити їх менш випадковими.

"Якщо фотон потрапляє на датчик, він може його трохи нагріти та, можливо, зробити більш чи менш чутливим до майбутніх зіткнень", - пояснює він. Іншими словами, у вас є справді випадкове явище, але ви так чи інакше спотворите його виявлення, зменшивши випадковість результату.

З розвитком квантових технологій ми можемо очікувати, що в майбутньому з'являться ще більш винахідливі та, сподіваємося, надійніші генератори випадкових чисел.

Тим часом у нас є random.org. Іноді люди скаржаться Мадсу Хаару, що вони помітили щось схоже на передбачувану послідовність чисел у результатах його сайту. Насправді так відбувається тому, що люди дуже погано розпізнають випадковість, каже він. Здається, ми схильні бачити закономірності у всьому.

Слід зазначити, що Хаар і його колеги, які працюють із random.org, могли б мати досить великий стимул маніпулювати результатами даними, якби це, наприклад, дозволило їм самим виграти в лотерею, підтасувавши результати розіграшу.

Однак Хаар наполягає, що вони б такого ніколи не зробили, оскільки це суперечить всьому, за що вони виступають. Але він відверто зізнається, що теоретично це можливо.

Яким би витонченим не був генератор випадкових чисел у принципі, ви все одно повинні довіряти людині, яка ним керує.

"Я вважаю, що довіра завжди необхідна, - каже Хаар. - Ви повинні в це вірити".