Menu
About me Kontakt

In his latest video, Mateusz Chrobok addresses the topic of encryption, emphasizing how crucial it is to ensure the security of our data. In the digital age, where nearly every form of communication, from chats with friends to banking operations, requires encryption, it is essential to understand how this process works. Ciphers largely rely on mathematics, particularly on randomness and entropy, which is a key element in ensuring that our data is effectively secured. As Mateusz explains, computers inherently struggle to generate truly random numbers, because they are designed for repeatability and deterministic calculations. Therefore, to create robust encryption, we need pseudorandom number generators that utilize entropy from various sources, such as mouse movements or keyboard actions.

Mateusz also discusses the challenges associated with generating entropy. While the fact that computers do not come with built-in randomness does not make the task impossible, it does pose significant challenges. For large servers that must handle many parallel connections, there may not be enough entropy available for encrypting all connections. This means that in certain situations, there can be delays or, even worse, decreased quality of encryption, which represents a serious security threat.

He highlights innovative ideas for generating entropy that are employed by some companies, such as Cloudflare. In addition to classic randomness sources, they have used an unusual method of data generation involving lava lamps. This approach to creating entropy is not only brilliant but also ensures that the seed generated by the device is completely random. This reliability and unpredictability of the random number generator significantly improves encryption security.

At the end of the video, Mateusz draws attention to Samsung's innovative approach to this issue. They have created a digital true random number generator based on a ring oscillator. This new system, called the Meta Ring Oscillator, promises higher quality entropy and has the potential to simplify implementation across various devices. Preliminary tests are promising, and researchers are proposing various solutions to minimize the drawbacks of this technology.

Finally, it is worth noting that Mateusz's video on encryption has already garnered 33,548 views and 2,032 likes. These statistics suggest that the topic resonates strongly with viewers, and Mateusz effectively captures the interest of a younger audience that is conscious of the data security threats present in the digital world. We encourage everyone to watch the material and share their thoughts in the comments.

Toggle timeline summary

  • 00:00 Introduction to the importance of encryption.
  • 00:03 Discussion on the types of communication that need encryption.
  • 00:09 Mention of various types of data that require protection.
  • 00:23 Explanation of the common mathematical basis behind different encryption methods.
  • 00:33 Importance of randomness and entropy in encryption.
  • 00:42 The consequences of non-randomness in encryption.
  • 01:10 Questions on how to ensure true randomness in encryption.
  • 01:29 The significance of unpredictability in key generation.
  • 01:51 Challenges faced by computers in generating randomness.
  • 02:14 Discussion of how computers were designed to perform predictable operations.
  • 02:52 Methods used by computers to gather unpredictable data.
  • 03:42 Identification of limitations in current entropy generation.
  • 04:16 Effects of high-volume simultaneous encrypted connections.
  • 05:14 Introduction of hardware random number generators as a solution.
  • 05:32 Overview of a new digital source for entropy created by Samsung.
  • 06:05 Creative implementations for gathering randomness for encryption.
  • 07:21 Reassuring random generation methods even with interference.
  • 08:53 Using physical phenomena for generating randomness.
  • 09:50 Classification of random number generators: true vs deterministic.
  • 11:44 Challenges in prior methods of generating physical sources of randomness.
  • 14:10 Encouragement towards advancements in improving security solutions.
  • 15:10 Closure with a call for creative and unconventional ideas.

Transcription

Cześć! Szyfrowanie to nie tylko przyjemność, ale wręcz obowiązek. Szyfrujemy przecież komunikację ze swoim bankiem, rozmowy ze znajomymi prowadzone przez różnorakie komunikatory, czy w końcu zawartość naszych telefonów i komputerów, aby dane na nich zebrane nie wpadły w niepowołane ręce w wyniku chociażby ich zgubienia czy też kradzieży. Rodzajów szyfrów jest cała masa i to nie miejsce ani czas, aby je kategoryzować. Mają one jednak pewną cechę wspólną. Opierają się w swoich podstawach na matematyce, często zresztą na liczbach pierwszych, bardzo dużych liczbach pierwszych wybieranych losowo. I to właśnie ta losowość nazywana fachowo entropią jest najistotniejszym elementem koniecznym do skutecznego zaszyfrowania prowadzonej komunikacji. No bo jeżeli coś nie jest losowe i można wskazać w tym jakiejś wzorce, to być może da się też przewidzieć z jakąś dozą prawdopodobieństwa, co wystąpi w przyszłości. W pewnym uproszczeniu trafić, jaka liczba pierwsza została wybrana podstawą naszego szyfru. A stąd już tylko krok do położenia go na łopatki i szybkiego złamania, skutkującego możliwością podsłuchiwania wszystkiego, co przesyłamy. Jak do tego nie dopuścić? W jaki sposób zagwarantować, że to, co losujemy, jest naprawdę losowe? I czy konieczna jest do tego komisja kontroli gier i zakładów? Zapraszam. Zacznijmy więc od paru oczywistości. W całym procesie ustalania kluczy, którymi będziemy zabezpieczać swoją komunikację, ważna jest nie tylko przypadkowość, ale też nieprzewidywalność. Choć to w sumie bardzo zbliżone rzeczy. Wygenerowana liczba pierwsza musi być przypadkowa, ale sposób, w jaki są generowane kolejne i kolejne, nie może pozwolić na odkrycie w nich jakichś prawideł. To przecież łatwo byłoby przeanalizować, przyglądając się przez jakiś czas wymienianym kluczom, a wtedy szansa na odgadnięcie, co będzie następne, drastycznie rośnie. Tu napotykamy na bardzo poważny problem. No bo niestety komputery nie są dobre w losowość. Nic dziwnego, tak je zaprojektowano. Przecież to po prostu takie bardziej zaawansowane kalkulatory. 2 plus 2 zawsze ma dać 4. Gdyby czasami wynik był inny, no to po co nam taki komputer? I pomijmy w tym miejscu kwestie komputerów kwantowych, a skupmy się na technologiach, które wszyscy mamy na swoich biurkach czy też w kieszeniach. Generowanie entropii przez nasze telefony czy komputery wymaga od nich zrobienia czegoś w dokładnie odwrotny sposób niż ten, do którego zostały zaprojektowane. Jak więc sobie radzą z tym, aby jednak wygenerować coś losowego, a przynajmniej bardzo do tego zbliżonego? Stosuje się do tego choćby mechanizmy, które starają się zebrać dość nieprzewidywalne źródła danych i połączyć je w jakiś sprytny sposób. Bierze się np. ruchy myszki, wciśniętej klawisze klawiatury czy aktywność systemu operacyjnego i tak zebrane dane tłumaczy się następnie na ciąg zer i jedynek, który jest dość przypadkowy. Parametr ten nazywa się fachowo ziarnem, z angielskiego seed. Tylko do czego ono w ogóle jest potrzebne? Ano, jeżeli posiadamy generator liczb losowych w systemie, to możemy zasilić go właśnie takim ziarnem. I teraz nawet jakby generator ten nie działał w pełni przypadkowo, to kiedy wykorzysta do generowania entropii jakieś dodatkowe, zewnętrzne, losowe już źródło, to entropia, którą wytworzy, będzie, cóż, bardziej losowa, a tym samym jej jakość będzie wyższa. No bo jeżeli do porządku dodamy sporo chaosu, to wcale go to nie uporządkuje. To co, problem rozwiązany? Niestety nie do końca. Sęk w tym, że taka entropia przeważnie nie jest nieskończona, to znaczy nie jest generowana na bieżąco w wystarczającej ilości, aby zaspokoić wszystkie potrzeby systemu operacyjnego w każdej sytuacji. Może jej po prostu teoretycznie zabraknąć, gdybyśmy chcieli naraz nawiązać wiele, ale to bardzo wiele równoległych połączeń szyfrowanych np. TLS-em. O ile pewnie nie jest to problem laptopa na naszych kolanach, to serwera, do którego łączą się co chwila tysiące użytkowników, już jak najbardziej tak. Co stanie się w takiej sytuacji? Albo czas konieczny na nawiązanie połączenia lawinowo wzrośnie, efektywnie całkowicie to uniemożliwiając i kładąc taki serwer na łopatki, albo jakość szyfrowania spadnie tak bardzo, że jego złamanie stanie się dziecinnie proste. Tak źle i tak niedobrze. Ale to nie jedyny problem. Komputery są deterministyczne, a więc wykonując kilkakrotnie te same operacje, otrzymamy w efekcie te same wyniki. Znów, 2 plus 2 zawsze musi dać 4. Jeżeli więc dostarczymy generatorowi w dwóch przypadkach identyczne ziarno, to z losowości nieci. Otrzymamy dokładnie ten sam wynik. Mówimy więc raczej o generatorach liczb pseudolosowych, bo losowość ta jest od czegoś uzależniona i wcale nie jest stuprocentowa. No i jeżeli atakującemu uda się w jakiś sposób wymusić na systemie wielokrotne skorzystanie z tego samego przewidywalnego ziarna, no to koniec. Będzie w stanie bez większego problemu złamać wszystkie nasze szyfry bazujące na entropii. Czy więc jesteśmy zgubieni? Pewnym rozwiązaniem tego palącego problemu jest zastosowanie dedykowanych sprzętowych generatorów liczb plusowych. Jakość entropii podawanej przez nie jest znacznie lepsza. Co ciekawe, taki sprzętowy generator wbudowany jest np. w moduł TPM płyty głównej, odpowiedzialny za bezpieczeństwo startu systemu operacyjnego oraz operacje kryptograficzne. Ale można to też zrobić w zdecydowanie bardziej seksowny sposób, w dodatku analogowo, w naszym do bólu cyfrowym świecie. Co więc jest takim winylem kryptografii? Co pewnie nie jest dla Was dziwieniem, otaczający nas świat jest naprawdę świetnym źródłem przypadkowości. Aby więc z tego jakoś skorzystać, taki np. Cloudflare wpadł na pomysł używania lamp, ale nie zwykłych sietlówek, a takich lava lamp, jakie pewnie widzieliście u wujka Mietka na meblościance. Ich wnętrza są w ciągłym ruchu i przybierają totalnie przypadkowe kształty. No dobra, nie wpadli na to tak do końca sami, bo to pomysł innej firmy Silicon Graphics z produktem Lavarant, ale ich patent po prostu już wygasł. Cloudflare w swojej siedzibie w San Francisco wzięli więc ich jakąś setkę, ustawili na regale w jednym z firmowych korytarzy i jak sobie tak na nie spojrzymy, to mamy praktycznie pewność, że jest to jedyna taka ich konfiguracja, która już nigdy prawdopodobnie się nie powtórzy. Tylko co z tym można zrobić? Proste. Naprzeciw postawili kamerę, która robi im co chwilę zdjęcie. Fotki te przesyłane są dalej na serwery Cloudflara, a zdjęcie takie to przecież ciąg, zer i jedynek. Na podstawie binarnego zapisu tego pliku ze zdjęciem tworzy się dodatkowy szum dla generatora liczb losowych, wspomnianej już ziarną. Genialne w swojej prostocie i gwarantuje, że ziarno takie jest w pełni losowe, a więc i generowana na jego podstawie entropia, również. Ba, nawet jak ktoś przed tymi lampami stanie i je zasłoni, to nie tylko w niczym nie przeszkodzi, ale nawet pomoże, bo to też element, który jest na swój sposób przypadkowy. Zresztą lampy są tylko częścią całego tego procesu, bo przecież muszą być jakoś zabezpieczeni na wypadek awarii kamery, braku prądu czy wejściem tam kogoś złośliwego, kto postawi przed jej obiektywem po prostu zdjęcie. Bo jeżeli czegoś nauczyły mnie filmy sensacyjne z lat dziewięćdziesiątych, to właśnie tego, że ktoś na pewno wpadnie na taki pomysł. Czy to oznacza, że w każdym biurze Cloudflara na świecie stoi ściana wypełniona lampami z lawą? Nie, ale to nawet lepiej, bo to nie jest jedyny szalony pomysł, na który wpadli. W Londynie na przykład robi się zdjęcia kilkudziesięciu podwójnych wahadeł. Ich ruch jest w pełni przypadkowy, na co mamy dowody. Ruszają się tak one bez końca, dostarczając ziarno na tej samej zasadzie. Ale to nie wszystko. Stoją w bardzo mocno przeszklonej przestrzeni, więc rzucają jeszcze cień, który przecież też jest elementem zdjęcia, a zmienia się w zależności od pory roku, pogody czy nawet przelatującego za oknem gołębia. Przy okazji wygląda to jak jakaś naprawdę ciekawa instalacja artystyczna, jest więc o czym opowiadać, robiąc Cloudflare nie jako reklamę. Zresztą skoro już o artyzmie mowa, pierwsze wykorzystane w tym celu wahadło zostało przekazane do Muzeum Nauki w Londynie, gdzie można je zobaczyć na własne oczy. Ale czy to nie jest jakiś potencjalny wektor ataku? No bo kiedy od czegoś zależy bezpieczeństwo tak wielu kwestii, to strzeże się tego jak oka w głowie. Trzyma się w jakiejś piwnicy, zabrania wstępu do ściśle klimatyzowanego pomieszczenia, a o robieniu foteczek to nawet nie ma mowy. No, tylko że nie. Bo w obu tych przypadkach bezpieczeństwo nie polega na tajemnicy, a po prostu na gwarancji losowości. I zrobienie przez kogoś fotki wszystkich tych wahadeł, albo nawet nagranie filmu jak się poruszają, w żadnym stopniu nie przybliży nikogo do złamania szyfru. To taka dokładna odwrotność antywzorca security by obscurity. Nie powiem, jest w tym coś poetyckiego. Tylko czy na zawsze już jesteśmy skazani na takie ciekawe, ale absolutnie niepraktyczne rozwiązania? Przecież nie zamkniemy setek lamp, ani wahadeł w swoim telefonie. Problem ten więc postanowił w inny sposób rozwiązać Samsung. Generatory liczb losowych, czyli random number generators, możemy podzielić z grubsza na dwie grupy. tRNG, true, czyli takie prawdziwe, w których źródłem entropii jest coś analogowego, czyli właśnie tak jak w przypadku dziwnych pomysłów Claude Fleur, oraz dRNG, deterministyczne. Te drugie, dla uzyskania wyższego poziomu losowości, mogą dodatkowo wykorzystać ziarno generowane przez te pierwsze. A mieszając oba te rozwiązania, dostajemy dobrej jakości entropię, której po prostu nie zabraknie. Proste? Oznacza to jednak, że generator prawdziwych liczb losowych, albo prawdziwy generator liczb losowych, zwał jak zwał, jest najistotniejszą częścią takiego systemu. Niestety jego analogowy rodowód jest bardzo problematyczny, no bo jak już raz zaprojektuje się go dla jakiegoś konkretnego urządzenia, to nie da się go w łatwy i co ważne tani sposób użyć ponownie w innym projekcie, bo zawsze coś trzeba do niego dostosować. No i w tym właśnie miejscu cały na niebiesko wchodzi Samsung. Stworzyli oni fizyczne, a nie programowe źródło entropii bazujące na oscylatorze pierścieniowym, w dodatku takim metastabilnym. O co chodzi? Ano do tej pory te RNG były, jak już wspominałem, analogowe. Samsung postanowił to zmienić i zbudować w pełni cyfrowy generator prawdziwie losowych liczb, co potencjalnie znacznie ułatwi wszystkim życie oraz podniesie bezpieczeństwo dzięki szerszej, bo tańszej implementacji. To element gotowego czipu do wlutowania w płytkę drukowaną i po sprawie. Tak więc nie da się go łatwo zmodyfikować ani podmienić bez zniszczenia układu. System zresztą podczas startu urządzenia przeprowadza procedurę sprawdzania, czy generowana losowość statystycznie jest losowa. A to jeszcze bardziej uodparnia całe urządzenie na ewentualne ataki. Okej, koreańczycy nie byli tak do końca pierwsi. Opierają swój pomysł na wcześniejszych badaniach, które jednak nigdy nie spełniły wszystkich pokładanych w nich nadziei i nie zostały szeroko zaimplementowane, choćby z powodu skomplikowania, rozmiaru, niskiej przepustowości czy też innych problemów. Co więc Samsung zrobił inaczej? Wykorzystali fenomen metastabilności. Jest to pewien konkretny stan, w którym zachowanie elementu elektronicznego jest z definicji całkowicie losowe. Teoretycznie więc jest to idealne źródło entropii. Jednak tu pojawia się problem. Okoliczności, na które nigdy nie mamy pełnego wpływu, jak temperatura, promieniowanie jonizujące czy choćby drobne wahania napięcia, sprawiają, że prawdopodobieństwo bycia w tym stanie jest bardzo, bardzo małe. Albo udaje się w nim być, ale przez bardzo, ale to bardzo krótki moment. Koreańczycy po prostu znaleźli sposób, jak przebywać bardzo blisko tego stanu. Zdecydowanie bliżej, niż wcześniej było to możliwe. I to nawet w obecności różnych zakłóceń. Czyli kiedy np. napięcie będzie się wahać, choćby dość znacznie w stosunku do oczekiwanego. W dodatku taki TRNG jest gotowy do działania bardzo szybko od procesu inicjalizacji. Nie trzeba czekać kilkaset albo nawet kilka tysięcy cykli, aby generowane dane można było uznać za wystarczająco losowe, co jest regułą w przypadku innych rozwiązań tej kategorii. Nie tylko generuje ono wysokiej jakości entropię, spełniając zakładane normy, ale też przepustowość jest bardzo wysoka, sięgając 140 megabitów na sekundę, co jest świetnym wynikiem o rząd lub dwa wielkości większym, niż konkurencyjne rozwiązania. Cały ten nowy pomysł nazwano Meta Ring Oscillator, czyli meta oscylatorem pierścieniowym. Uroczo, co prawda. No ale hola hola, nie ma róży bez kolców. Zbudowany w ten sposób TRNG jest na razie dość czuły na jakość procesu technologicznego wytwarzania, a tym samym dość drogi w produkcji. Jest też wrażliwy na skrajne temperatury otoczenia. Badacze jednak zaproponowali w swojej pracy kilka pomysłów jak te problemy rozwiązać i wydają się one trzymać kupy. Testy zachęcają do dalszej eksploracji w tym kierunku, a uregulowanie kwestii patentowych jest już w trakcie. Co robić i jak żyć? Rozwój to nie tylko więcej gigaherców czy rdzeni, czy też nowe algorytmy wielkich modeli językowych, ale też usprawnianie znanych nam już od lat rozwiązań, w których niby nic nowego nie ma już do zrobienia. Szczególnie jeżeli dzięki temu można potencjalnie zadbać o bardzo wysokie bezpieczeństwo szeroko, a nie tylko w tych najdroższych albo bardzo wyspecjalizowanych urządzeniach. To krok w dobrą stronę i mam nadzieję, że już niedługo zobaczymy nie tylko meta oscylatory pierścieniowe, które będą w użyciu w realnym świecie, ale również konkurencyjne dla nich rozwiązania. Tak, kiedyś używałem kamery do generowania entropii w sposób podobny do tego znanego z Cloudflare. Chcesz sam zbudować sobie taką ścianę z lamp, a potem wykorzystać ją do generowania liczb losowych? Nic trudnego. W przeciwieństwie do moich studenckich lat, na GitHubie znajdziesz nawet gotowy projekt o nazwie Lavalamp, którym możesz się zainteresować i zwiększyć entropię na swoim sprzęcie. Wiadomo, kiedyś to było, teraz to nie ma. Ale jak już będziesz miał się czym pochwalić, to nie zapomnij wysłać mi foteczki. Jestem wielkim fanem zwariowanych i totalnie niepraktycznych pomysłów. I to już wszystko na dziś. Tymczasem dziękuję za Waszą uwagę i do zobaczenia! Napisy stworzone przez społeczność Amara.org