Karel Břinda. 7. března 2011

Podobné dokumenty
Generátory pseudonáhodných čísel a jejich aplikace v kryptografii (proudové šifry)

Pokročilá kryptologie

Generování pseudonáhodných čísel

Proudové šifry a posuvné registry s lineární zpětnou vazbou

příklad Steganografie Matematické základy šifrování šifrování pomocí křížů Hebrejské šifry

NÁHODNÁ ČÍSLA. F(x) = 1 pro x 1. Náhodná čísla lze generovat některým z následujících generátorů náhodných čísel:

Šifrová ochrana informací věk počítačů PS5-2

. Bezpečnost mobilních telefonů. David Machač

Vestavěné diagnostické prostředky 1 (BIST)


MĚŘENÍ A ANALÝZA ELEKTROAKUSTICKÝCH SOUSTAV NA MODELECH. Petr Kopecký ČVUT, Fakulta elektrotechnická, Katedra Radioelektroniky

kryptosystémy obecně další zajímavé substituční šifry klíčové hospodářství kryptografická pravidla Hillova šifra Vernamova šifra Knižní šifra

Problematika náhodných a pseudonáhodných sekvencí v kryptografických eskalačních protokolech a implementacích na čipových kartách

Pravděpodobnost, náhoda, kostky

Šifrová ochrana informací věk počítačů PS5-2

8. RSA, kryptografie s veřejným klíčem. doc. Ing. Róbert Lórencz, CSc.

Generátory náhodných a

Generování pseudonáhodných. Ing. Michal Dorda, Ph.D.

CO JE KRYPTOGRAFIE Šifrovací algoritmy Kódovací algoritmus Prolomení algoritmu

UKRY - Symetrické blokové šifry

KTE/TEVS - Rychlá Fourierova transformace. Pavel Karban. Katedra teoretické elektrotechniky Fakulta elektrotechnická Západočeská univerzita v Plzni

Problematika převodu zprávy na body eliptické křivky

Generování náhodných čísel na mikrokontrolérech AVR


VŠB Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Katedra aplikované matematiky. Random Number Generators

Úvod do zpracování signálů

Modulární aritmetika, Malá Fermatova věta.

Asymetrické šifry. Pavla Henzlová FJFI ČVUT v Praze. Pavla Henzlová (FJFI ČVUT v Praze) Asymetrické šifry 28.3.

Jak funguje asymetrické šifrování?

Kerchhoffův princip Utajení šifrovacího algoritmu nesmí sloužit jako opatření nahrazující nebo garantující kvalitu šifrovacího systému

Počet kreditů: 5 Forma studia: kombinovaná. Anotace: Předmět seznamuje se základy dělitelnosti, vybranými partiemi algebry, šifrování a kódování.

3. Aritmetika nad F p a F 2

FAKULTA INFORMAČNÍCH TECHNOLOGIÍ

Stavební bloky kryptografie. Kamil Malinka Fakulta informačních technologií

Kvantové algoritmy a bezpečnost. Václav Potoček

Kvantová informatika pro komunikace v budoucnosti

J.Breier, M.Vančo, J.Ďaďo, M.Klement, J.Michelfeit, Masarykova univerzita Fakulta informatiky

Modulární aritmetika, Malá Fermatova věta.

ZÁPADOČESKÁ UNIVERZITA V PLZNI FAKULTA ELEKTROTECHNICKÁ

Transformace obrazu Josef Pelikán KSVI MFF UK Praha

Kryptografie založená na problému diskrétního logaritmu

Architektura počítačů Logické obvody

ElGamal, Diffie-Hellman

Informatika Ochrana dat

Pravděpodobnost, náhoda, kostky

Téma 2 Principy kryptografie

Kryptografie, elektronický podpis. Ing. Miloslav Hub, Ph.D. 27. listopadu 2007

Pokročilá kryptologie

Architektura počítačů Logické obvody

Kódy a kódování dat. Binární (dvojkové) kódy. Kód Aikenův

Obsah. Euler-Fermatova věta. Reziduální aritmetika. 3. a 4. přednáška z kryptografie

MPI - 7. přednáška. Hledání inverzí v Z n. Rychlé mocnění modulo n. Lineární rovnice v Z + n. Soustavy lineárních rovnic v Z + n.

Asymetrická kryptografie a elektronický podpis. Ing. Dominik Breitenbacher Mgr. Radim Janča

Diffieho-Hellmanův protokol ustanovení klíče

Matematické základy šifrování a kódování

31SCS Speciální číslicové systémy Antialiasing

Složitost a moderní kryptografie

E(X) = np D(X) = np(1 p) 1 2p np(1 p) (n + 1)p 1 ˆx (n + 1)p. A 3 (X) =

Datové struktury 2: Rozptylovací tabulky

GENEROVÁNÍ NÁHODNÝCH ČÍSEL PSEUDONÁHODNÁ ČÍSLA

České vysoké učení technické v Praze Fakulta elektrotechnická Katedra telekomunikační techniky. Proudové šifry

Šifrová ochrana informací věk počítačů PS5-1

A/D převodníky - parametry

Modelování systémů a procesů (11MSP) Bohumil Kovář, Jan Přikryl, Miroslav Vlček. 8. přednáška 11MSP pondělí 20. dubna 2015

Matematika pro informatiku 4

Ochrana dat Obsah. Výměna tajných klíčů ve veřejném kanálu. Radim Farana Podklady pro výuku. Kryptografické systémy s tajným klíčem,

Pohled do nitra mikroprocesoru Josef Horálek

SIM karty a bezpečnost v mobilních sítích

7. Rozdělení pravděpodobnosti ve statistice

Blokové a prúdové šifry

Generování (pseudo)náhodných čísel

a počtem sloupců druhé matice. Spočítejme součin A.B. Označme matici A.B = M, pro její prvky platí:

Šifrová ochrana informací věk počítačů KS - 5

0.1 Úvod do lineární algebry

KRYPTOGRAFIE VER EJNE HO KLI Č E

FOURIEROVA ANAL YZA 2D TER ENN ICH DAT Karel Segeth

Komerční výrobky pro kvantovou kryptografii

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Státní závěrečná zkouška z oboru Matematika a její použití v přírodních vědách

Historie matematiky a informatiky Cvičení 2

Testování prvočíselnosti

Ukázkyaplikacímatematiky

Matice. Předpokládejme, že A = (a ij ) je matice typu m n: diagonálou jsou rovny nule.

Karel Klouda c KTI, FIT, ČVUT v Praze 28. února, letní semestr 2010/2011

Ukázky aplikací matematiky. Kapitola 1. Jiří Tůma. Úvod do šifrování. Základní pojmy- obsah. Historie šifrování

Matematika B101MA1, B101MA2

Úvod RSA Aplikace, související témata RSA. Ing. Štěpán Sem Festival Fantazie, Štěpán Sem

Pravděpodobnostní algoritmy

Jak v Javě primitivní datové typy a jejich reprezentace. BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické

MFF UK Praha, 22. duben 2008

Protiopatření eliminující proudovou analýzu

VYBRANÉ PARTIE Z NUMERICKÉ MATEMATIKY

Základy kryptologie. Kamil Malinka Fakulta informačních technologií

Základy kryptografie. Beret CryptoParty Základy kryptografie 1/17

Vlastnosti a modelování aditivního

2000 zveřejnění dobové zprávy General Report on Tunny

2000 zveřejnění dobové zprávy General Report on Tunny informací nedostatek k odvození konstrukce šifrátoru Lorenz cíl: odvození pravděpodobného

Definice 13.1 Kvadratická forma v n proměnných s koeficienty z tělesa T je výraz tvaru. Kvadratická forma v n proměnných je tak polynom n proměnných s

Úvod do mobilní robotiky AIL028

Pokročilá kryptologie

Transkript:

FJFI ČVUT v Praze 7. března 2011

O čem bude dnes řeč Motivace, využití generátorů Co to je náhodná posloupnost Jak náhodnost testovat Se kterými generátory se nejčastěji setkáme a na co si dát pozor

Motivace Kde všude se nám hodí náhodná čísla Simulace Numerická analýza - např. výpočet čísla π Programování - testy efektivity algoritmů, náhodnostní algoritmy (např. genetické alg.),... Rozhodování - losování u veřejných zakázek,... Kryptografie Zábava

Konkrétní využití + požadavky na generátor Způsob využití Požadavky na generátor Počítačové hry (žádné :) Kryptografie - proudové šifry Kvalita Rychlost Zrekonstruovatelnost Kryptografie - generování kĺıčů Kvalita Výpočty metodou Monte Carlo Kvalita Rychlost Zrekonstruovatelnost

Posloupnost náhodných čísel Různé způsoby chápání Intuitivně Statisticky Přes vyčíslitelnost - Turingův stroj

Typy generátorů Generátor náhodných čísel (RNG) Generátor pseudonáhodných čísel (PRNG)

Generátory náhodných čísel (RNG) Nedeterministický zdroj + funkce na jeho zpracování (destilační funkce) Obvykle měření nějaké fyzikální veličiny (např. elektronický šum), pohyb myši uživatele,... Takto získaná posloupnost nelze zrekonstruovat Pomalé

(PRNG) Algoritmus generující pro daný vstup (takzvaný seed) posloupnost čísel Seed musí být volen také náhodně X i = f (X i 1,..., X i j ) Takto získaná posloupnost lze se znalostí seedu zrekonstruovat Dobré generátory produkují lepší posloupnosti než fyzikální zdroje Základní pravidlo: Náhodně zvolená čísla nelze generovat náhodně zvolenou metodou. Výpočet musí být podložen teoríı. Základní omyl: Pokud vezmeme dobrý generátor a trošku ho upravíme, dostaneme stejně tak dobrý nebo lepší

Požadavky na PRNG Co nejdelší perioda Rovnoměrné rozložení čísel X i Mezi členy X i,..., X i+j ani f (X i ),..., f (X i+j ), kde f je nějaká funkce, nesmí být žádný vztah Efektivita (rychlost generování a pamět ová náročnost) Reprodukovatelnost

Nejčastější operace mod Bitový XOR Bitový AND Bitový << Bitový >> Vynechání některých čísel (těch, které způsobují korelaci) Jemná úprava mezivýsledků

Testování Úvod Frekvenční test Test séríı Test nejdelší série Test hodností binární matice Spektrální test Porovnávací test s překrýváním a bez překrývání Mauerův univerzální statistický test Test lineární složitosti Sériový test Mnoho různých testů hledající nenáhodnosti, existují ucelené baterie testů STS (Statistical test suite) Diehard

Frekvenční test Test séríı Test nejdelší série Test hodností binární matice Spektrální test Porovnávací test s překrýváním a bez překrývání Mauerův univerzální statistický test Test lineární složitosti Sériový test Frekvenční test Monobitový - Zkoumá počet 0 a 1 v celé předané posloupnosti V blocích - Zkoumá počet 0 a 1 v blocích o M bitech

Test séríı Úvod Frekvenční test Test séríı Test nejdelší série Test hodností binární matice Spektrální test Porovnávací test s překrýváním a bez překrývání Mauerův univerzální statistický test Test lineární složitosti Sériový test Zkoumá délky podposloupností stejných bitů

Frekvenční test Test séríı Test nejdelší série Test hodností binární matice Spektrální test Porovnávací test s překrýváním a bez překrývání Mauerův univerzální statistický test Test lineární složitosti Sériový test Test nejdelší série Srovnává, zda nejdelší série 1 je přibližně stejná jako nejdelší série 1 u náhodné posloupnosti Pokud otestujeme pro 1, nemusíme už opakovat pro 0

Frekvenční test Test séríı Test nejdelší série Test hodností binární matice Spektrální test Porovnávací test s překrýváním a bez překrývání Mauerův univerzální statistický test Test lineární složitosti Sériový test Test hodností binární matice Testovanou posloupností se naplní několik matic Spočítají se jejich hodnosti

Frekvenční test Test séríı Test nejdelší série Test hodností binární matice Spektrální test Porovnávací test s překrýváním a bez překrývání Mauerův univerzální statistický test Test lineární složitosti Sériový test Spektrální test Založeno na diskrétní Fourierově transformaci - zkoumají se šířky píků Detekuje periodičnosti posloupnosti (opakující se vzory bĺızko sebe)

Frekvenční test Test séríı Test nejdelší série Test hodností binární matice Spektrální test Porovnávací test s překrýváním a bez překrývání Mauerův univerzální statistický test Test lineární složitosti Sériový test Porovnávací test s překrýváním a bez překrývání Cílem testu je odhalit, zda se nevyskytují v posloupnosti příliš často některé předdefinované vzory Lze si představit jako posouvání okénka o dané délce po posloupnosti a hledání daného vzoru

Mauerův univerzální statistický test Frekvenční test Test séríı Test nejdelší série Test hodností binární matice Spektrální test Porovnávací test s překrýváním a bez překrývání Mauerův univerzální statistický test Test lineární složitosti Sériový test Zkoumá, zda není možné testovanou posloupnost zkomprimovat

Frekvenční test Test séríı Test nejdelší série Test hodností binární matice Spektrální test Porovnávací test s překrýváním a bez překrývání Mauerův univerzální statistický test Test lineární složitosti Sériový test Test lineární složitosti Testovaná posloupnost bitů se rozděĺı postupně do několika stejně dlouhých bloků U každého bloku se otestuje, jak složitý LFSR by byl potřeba, aby vygeneroval právě tento blok

Frekvenční test Test séríı Test nejdelší série Test hodností binární matice Spektrální test Porovnávací test s překrýváním a bez překrývání Mauerův univerzální statistický test Test lineární složitosti Sériový test Sériový test Zkoumá překryvy m-bitových vzorů v rámci testované posloupnosti Pro dané m by měly mít všechny m-bitové vzory stejnou pravděpodobnost výskytu

Lineární kongruenční generátor Kvadratický a kubický kongruenční generátor Blum-Blum-Shub Zpožděný Fibonacciho generátor Mersenne twister Lineární posuvný registr se zpětnou vazbou Kongruenční generátory Lineární kongruenční generátor (LCG) Kvadratický kongruenční generátor (QCG) Kubický kongruenční generátor (CCG) Inverzní kongruenční generátor Lineární posuvné registry se zpětnou vazbou (LFSR) Mersenne twister Blum-Blum-Shub (BBSG)

Lineární kongruenční generátor Kvadratický a kubický kongruenční generátor Blum-Blum-Shub Zpožděný Fibonacciho generátor Mersenne twister Lineární posuvný registr se zpětnou vazbou Lineární kongruenční generátor 1 Nejrozšířenější typ PRNG Základní podoba: Hlavní vzorec Vztah pro (n + k). člen X n+1 = (ax n + c) mod m X n+k = (a k X n + ak 1 a 1 c) mod m Konstanty 0 < m modul 2 a < m násobitel 0 c < m inkrement 0 X 0 < m seed Minimální délka cyklu v permutaci X n - perioda generátoru 1 LCG - Linear congruential generator

Lineární kongruenční generátor Kvadratický a kubický kongruenční generátor Blum-Blum-Shub Zpožděný Fibonacciho generátor Mersenne twister Lineární posuvný registr se zpětnou vazbou Výběr konstant Věta Modul m Musí být dostatečně velký (perioda vždy ) Nesmí být příliš velký (rychlost výpočtu) - z výp. hlediska ideálně m = 2 velikost použitého registru na procesoru (problém - nejnižší bity výsledku jsou málo náhodné ) Násobitel a a inkrement c Lineární kongruentní posloupnost definovaná parametry m, a, c a X 0 má periodu délky m právě tehdy, když c a m jsou nesoudělné; a 1 je násobkem každého prvočísla, které děĺı m; a 1 je násobkem 4, pokud je i m násobkem 4. X 0 libovolně, často se odvozuje z aktuálního systémového času

Lineární kongruenční generátor Kvadratický a kubický kongruenční generátor Blum-Blum-Shub Zpožděný Fibonacciho generátor Mersenne twister Lineární posuvný registr se zpětnou vazbou Několik receptů k volbě konstant Je-li m = 2 n, najdeme a takové, že a mod 8 = 5 Je-li m = 10 n, najdeme a takové, že a mod 200 = 21 a hledáme nejlépe v intervalu 0, 01m 0, 99m, ve dvojkovém a desítkovém rozvoji by neměl mít jednoduchý, pravidelný vzorek c nesmí být soudělné s m, často se voĺı c = 1 nebo c = a

Lineární kongruenční generátor Kvadratický a kubický kongruenční generátor Blum-Blum-Shub Zpožděný Fibonacciho generátor Mersenne twister Lineární posuvný registr se zpětnou vazbou Výhody a nevýhody LCG Výhody Nevýhody Rychlý Jednoduše naprogramovatelný V nějakém n-rozměrném prostoru umist uje všechny body do několika nadrovin Bity nižších řádů nejsou tolik náhodné Předvídatelný

Lineární kongruenční generátor Kvadratický a kubický kongruenční generátor Blum-Blum-Shub Zpožděný Fibonacciho generátor Mersenne twister Lineární posuvný registr se zpětnou vazbou

Lineární kongruenční generátor Kvadratický a kubický kongruenční generátor Blum-Blum-Shub Zpožděný Fibonacciho generátor Mersenne twister Lineární posuvný registr se zpětnou vazbou Implementace LCG Implementace m a c Použité bity Borland C/C++ 2 32 22 695 477 1 30... 16 v rand() 30... 0 v lrand() glibc 2 2 32 1 103 515 245 12 345 30... 0 ANSI C 3 2 32 1 103 515 245 12 345 30... 16 Borland Delphi 2 32 134 775 813 1 63... 32 Microsoft 2 32 214 013 2 531 011 30... 16 Visual C++ Java API 2 48 25 214 903 917 11 47... 16 - Random class 2 Překladač GCC 3 Překladače Watcom, Digital Mars, CodeWarrior, IBM VisualAge C/C++

Lineární kongruenční generátor Kvadratický a kubický kongruenční generátor Blum-Blum-Shub Zpožděný Fibonacciho generátor Mersenne twister Lineární posuvný registr se zpětnou vazbou Kvadratický 4 a kubický 5 kongruenční generátor X n+1 = (dx 2 n + ax n + c) mod m X n+1 = (ex 3 n + dx 2 n + ax n + c) mod m 4 QCG - Quadratical congruential generator 5 CCG - Cubic congruential generator

Lineární kongruenční generátor Kvadratický a kubický kongruenční generátor Blum-Blum-Shub Zpožděný Fibonacciho generátor Mersenne twister Lineární posuvný registr se zpětnou vazbou Blum-Blum-Shub 6 Konkrétní varianta QCG Vzorec X n+1 = X 2 n mod M, kde M = pq je součin velkých prvočísel. Ideálně p mod 4 = 3 a q mod 4 = 3 Není vhodný pro simulace metodou Monte Carlo (pomalý), hodí se pro kryptografii 6 BBSG

Lineární kongruenční generátor Kvadratický a kubický kongruenční generátor Blum-Blum-Shub Zpožděný Fibonacciho generátor Mersenne twister Lineární posuvný registr se zpětnou vazbou Zpožděný Fibonacciho generátor 7 X n = (X n i1,..., X n ij ) mod m Binární operace (sčítání, odčítání, násobení, XOR) 7 LFG - Lagged Fibonacci generator

Lineární kongruenční generátor Kvadratický a kubický kongruenční generátor Blum-Blum-Shub Zpožděný Fibonacciho generátor Mersenne twister Lineární posuvný registr se zpětnou vazbou Mersenne twister Jeden z nejlepších generátorů Navržený s ohledem na použití v simulacích metodou Monte Carlo Není vhodný pro kryptografii (ze znalosti jistého počtu členů lze odvodit pokračování posloupnosti) Výstupem posloupnost uint32, periodou některé z Mersennových prvočísel Na vygenerování seedu se často používá LCG

Lineární kongruenční generátor Kvadratický a kubický kongruenční generátor Blum-Blum-Shub Zpožděný Fibonacciho generátor Mersenne twister Lineární posuvný registr se zpětnou vazbou Lineární posuvný registr se zpětnou vazbou 8 L registrů, lineární binární operace (nejčastěji XOR), charakteristický polynom V jednom taktu: obsah registru R i se přesune do R i 1, R 0 se předá na výstup; pro registr zpětné vazby R L 1 se spočítá nový obsah (pomocí char. polynomu) 8 LFSR - Linear feedback shift register

Obecné charakteristiky Šifrování GSM - A5/x Kryptografie Asymetrická Symetrická Blokové šifry

Obecné charakteristiky Šifrování GSM - A5/x Nejsou tak bezpečné blokové šifry Používáno hlavně v telekomunikacích a u malých zařízení s nízkým výkonem (mobilní telefon, apod.)

Obecné charakteristiky Šifrování GSM - A5/x Princip Můžeme na ně nahĺıžet jako na variantu Vernamovy šifry, místo jednorázové tabulky ale používáme PRNG Synchronní S vlastní synchronizací (asynchronní)

Obecné charakteristiky Šifrování GSM - A5/x Možnosti prolomení Opětovně použitý kĺıč - Pokud máme 2 zprávy A, B a obě byly zašifrovány stejným kĺıčem K E(A) = A XOR C(K) a E(B) = B XOR C(K) můžeme získat E(A) XOR E(B) = A XOR B, nyní potřebujeme znalost alespoň fragmentů původních zpráv a postupujeme střídavým doplňováním Substituční útok - Druh man-in-the-middle útoků, pokud víme, že v zašifrované zprávě je na nějakém místě konkrétní údaj, můžeme ho změnit přixorováním rozdílu (C(K) XOR 1000CZK) XOR (9000USD XOR 1000CZK) = C(K) XOR 9000USD

Obecné charakteristiky Šifrování GSM - A5/x Šifrování GSM - A5/x, kde x {0, 1, 2} Šifrování komunikace mobilních telefonů Různé varianty A5/1 nejsilnější verze (používáno např. v ČR) A5/2 zeslabená verze (používáno např. v Keni) A5/0 bez šifrování Standardy z roku 1987, A5/1 a A5/2 původně tajné, později zjištěné reverzním inženýrstvím (1994) Známo mnoho druhů útoků, poslední jsou velice úšpěšné 4TB tzv. rainbow tabulek, pomocí kterých lze dešifrovat libovolný hovor, tabulky jsou veřejně dostupné)

Obecné charakteristiky Šifrování GSM - A5/x Schéma

Obecné charakteristiky Šifrování GSM - A5/x Odposlech Není možné provádět v reálném čase Stačí vybavení za zhruba 40 000 Kč V České republice stále používáno snadno napadnutelný 64bitový A5/1 Plánovaný přechod na 128bitový A5/3

Obecné charakteristiky Šifrování GSM - A5/x Odposlech 1 Zachycení signálu 2 Zpracování signálu 3 Dekódování pomocí rainbow tabulek

Shrnutí Náhodnost Testování generátorů Nejpoužívanější generátory - lineární kongruenční, Blum-Blum-Shub, Mersenne twister, lineární posuvný se zpětnou vazbou

Reference D. Knuth: Umění programování, 2.díl - Seminumerické algoritmy, Computer Press, 2010. WIKIPEDIA - The Free Encyclopedia, hesla: A5/1, Linear feedback shift register, Linear congruential generator, Pseudorandom number generator, Blum Blum Shub, Lagged Fibonacci generator, Mersenne twister, Stream cipher, Stream cipher attack. A. Rukhin, J. Soto, J. Nechvatal, M. Smid, E. Barker, S. Leigh, M. Levenson, M. Vangel, D. Banks, A. Heckert, J. Dray, S. Vo: A Statistical Test Suite for Random and Pseudorandom Number Generators for Cryptographic Applications, 2010. O. Málek: Generování pseudonáhodných dat založené na použití LFSR (bakalářská práce), Masarykova univerzita, 2007. M. Kaňok: Generátory pseudonáhodných čísiel v metódach Monte Carlo, Československý časopis pro fyziku, 2008/6. M. Rohĺık: Využití proudových šifer v současnosti.

Děkuji za pozornost.