REKLAMA

Z Nokii N9 zrobił... kwantowy generator liczb losowych

Generowanie liczb losowych jest istotną częścią naszego życia. Od badań klinicznych, analiz statystycznych, poprzez płatności w Internecie aż po zabezpieczanie przeglądanych stron i gry online – do tego wszystkiego potrzebujemy dobrych liczb losowych. Dobrych, to znaczy… zapewniających duży poziom losowości.

15.05.2014 14.16
Kwantowy generator liczb losowych zrobiony z Nokii N9
REKLAMA

Niestety, najczęściej jedyne na co nas stać to… liczby pseudolosowe. Takie liczby nie są w rzeczywistości losowe – jedynie algorytm używany do ich generowania jest na tyle skomplikowany że nie jesteśmy w stanie w łatwy sposób przewidzieć kolejnej sekwencji liczb.

REKLAMA

Pomysłów na uzyskanie bardziej lub mniej losowych liczb jest mnóstwo. Ludzkość u zarania cywilizacji wytworzyła takie generatory jak kostka do gry czy gra w marynarza. Jednak do dzisiejszych zastosowań, np.  w kryptografii są one zbyt wolne i prymitywne. Bardzo powszechne jest używanie do tego specjalnego algorytmu uruchamianego przez komputer. Każdy język programowania i każda platforma ma jakąś implementację algorytmu generowania liczb pseudolosowych. W systemach uniksowych (np. w Linuksie) istnieje też specjalne wirtualne urządzenie /dev/random zwracające losowe bajty. Urządzenie to zazwyczaj zbiera informacje dostępne systemowi jako tzw. źródła entropii, dzięki czemu stara się poprawić jakość (czyli losowość) losowanych liczb.

nokia

Jednym z najprostszych algorytmów losujących liczby pseudolosowe jest tzw. uproszczony liniowy generator kongruencyjny, na podstawie zachowanego poprzedniego stanu, dobranych trzech stałych będących parametrami, wylicza nowy stan przy pomocy operatora  modulo, by zachować go następnie do poprzedniej iteracji, gdzie zostanie użyty jako poprzedni stan. Jak łatwo zauważyć, algorytm ten przy zadanych stałych parametrach zwracać będzie zawsze te same ciągi liczb, co wyklucza go z użycia w zastosowaniach kryptograficznych.

Aby uwolnić się od tych ograniczeń, poszukiwane są metody generowania prawdziwych liczb losowych lub liczb pseudolosowych o tak dobrej jakości, że będą one nie do odróżnienia od liczb losowych.

Jak widać z podanych powyżej przykładów, do celu generowania entropii powinniśmy użyć jakiegoś źródła niedeterministycznego – czyli jakiegoś zjawiska, którego wyniku nie jesteśmy w stanie przewidzieć w czasie losowania. Takimi zjawiskami mogą być zjawiska kwantowe. Są one w dużej mierze nieprzewidywalne i probabilistyczne, dzięki czemu nadają się do tego doskonale. Niestety, urządzenia wykorzystujące zjawiska kwantowe nie są łatwe ani tanie do skonstruowania.

detector_model

Jak się okazuje i w tej dziedzinie można dokonać przełomu. Pracujący na Uniwersytecie w Genewie Bruno Sanguinetti wraz ze swoim zespołem pokazał, że jest w stanie wygenerować liczby losowe, wykorzystując prawdziwe zjawiska kwantowe i zwykły smartfon! Jak twierdzi Sanguinetii, wynaleziona przez niego metoda generuje losowe dane z prędkością jednego megabita na sekundę.

Jednym ze niedeterministycznych zjawisk w fizyce jest emisja światła. Liczba fotonów emitowanych w jednostce czasu jest całkowicie przypadkowa, i to właśnie stało się podstawą szwajcarskiego eksperymentu.

Jak stwierdził naukowiec, aparaty w telefonach stały się na tyle dobre, że są w stanie w dużym stopniu wykryć wahania w liczbie emitowanych fotonów (a więc w natężeniu światła). Telefonem jaki użyto do eksperymentu została Nokia N9, dysponująca 8-megapikselową kamerą. Każdy piksel aparatu cyfrowego jest przecież dość wrażliwym czujnikiem fotonów.

photons

Zasada działania generatora jest następująca: łatwo możemy określić średnią liczbę elektronów, która wynika z rozkładu statystycznego. Odchylenia od tej liczby są przypadkowe i to one właśnie są używane do generowania liczby losowej. Równocześnie pomiar jest wykonywany na każdym z pikseli matrycy. Pomiar wykonywany jest przy ekspozycji kamery na równomiernie oświetloną, zieloną lampę LED. Mimo równomiernego oświetlenia, w liczbie wzbudzonych w matrycy elektronów wciąż pojawiają się fluktuacje.

Według zespołu Sanguinettiego generowane liczby mają bardzo dobrą jakość jako liczby losowe. Aby zaobserwować odchylenie od całkowitej losowości, należałoby proces pomiaru powtórzyć 10118 razy – czyli, przy założonej przepustowości 1 GB, w czasie istnienia naszego Wszechświata nie bylibyśmy w stanie udowodnić powtarzalności jakiegokolwiek wzorca psującego przypadkowość. Jak podaje naukowiec, wygenerowane liczby przeszły wszystkie znane mu testy mające na celu badać losowość liczb.

sanguinetti

Co to oznacza? Prawdopodobnie to, że dysponując odpowiednią aplikacją, każdy posiadać smartfona będzie mógł generować własne, bezpieczne liczby losowe. Liczby te mogą pomóc generować klucze do szyfrowania rozmów, maili lub innych danych. W czasach, w których coraz więcej osób zaczyna dbać o swoją prywatność i zaczyna być świadoma najróżniejszych instytucji próbujących nas podsłuchać, może się to okazać strzałem w dziesiątkę.

REKLAMA

Fotografia Dice bar chart falling apart pochodzi z serwisu ShutterStock.

REKLAMA
Najnowsze
REKLAMA
REKLAMA
REKLAMA