}w !"#$%&'()+,-./012345
Masarykova univerzita Fakulta informatiky
Extraktor entropie z mikrofonu a kamery pro mobiln´ı telefon ´r ˇska ´ pra ´ ce Bakala
Roman Koneˇ cn´ y
Brno, jaro 2013
Prohl´ aˇ sen´ı Prohlaˇsuji, ˇze tato bakal´aˇrsk´a pr´ace je m´ ym p˚ uvodn´ım autorsk´ ym d´ılem, kter´e jsem vypracoval samostatnˇe. Vˇsechny zdroje, prameny a literaturu, kter´e jsem pˇri vypracov´an´ı pouˇz´ıval nebo z nich ˇcerpal, v pr´aci ˇr´adnˇe cituji s uveden´ım u ´pln´eho odkazu na pˇr´ısluˇsn´ y zdroj. Roman Koneˇcn´ y
ˇ ıha, Ph.D. Vedouc´ı pr´ ace: Ing. Mgr. Zdenˇek R´ ii
Podˇ ekov´ an´ı ˇ ıhovi, Ph.D. za jeho pomoc R´ad bych podˇekoval vedouc´ımu sv´e pr´ace Ing. Mgr. Zdeˇ nku R´ pˇri ˇreˇsen´ı t´eto pr´ace. D´ale bych chtˇel podˇekovat rodinˇe a pˇra´tel˚ um za jejich podporu pˇri studiu a v ˇzivotˇe.
iii
Shrnut´ı C´ılem t´eto bakal´aˇrsk´e pr´ace je anal´ yza zdroj˚ u entropie, kter´e m´a k dispozici mobiln´ı telefon s operaˇcn´ım syst´emem Windows Phone 8. Souˇc´ast´ı pr´ace je aplikace, kter´a demostruje z´ısk´av´an´ı n´ahodn´ ych dat z dostupn´ ych zdroj˚ u entropie.
iv
Kl´ıˇ cov´ a slova extraktor entropie, Windows Phone 8, mobiln´ı telefon, n´ahodn´a ˇc´ısla
v
Obsah ´ 1 Uvod . . . . . . . . . . . . . . . . . . . . 2 Platforma Windows Phone 8 . . . . . ´ 2.1 Uvod . . . . . . . . . . . . . . . . . . 2.2 Ostatn´ı mobiln´ı OS . . . . . . . . . . 2.2.1 Windows Mobile . . . . . . . 2.2.2 Symbian . . . . . . . . . . . . 2.2.3 Bada . . . . . . . . . . . . . . 2.2.4 BlackBerry OS . . . . . . . . 2.2.5 Android . . . . . . . . . . . . 2.2.6 iOS . . . . . . . . . . . . . . . 2.3 Historie Windows Phone . . . . . . . 2.4 Technologick´ y pˇrehled . . . . . . . . 2.5 V´ yvoj aplikac´ı pro Windows Phone 8 3 N´ ahodn´ aˇ c´ısla . . . . . . . . . . . . . . . 3.1 Obecnˇe . . . . . . . . . . . . . . . . . 3.2 Uˇzit´ı n´ahodn´ ych ˇc´ısel . . . . . . . . . ˇ 3.2.1 Sifrov´ an´ı . . . . . . . . . . . . 3.2.2 Simulace . . . . . . . . . . . . 3.2.3 Vzorkov´an´ı . . . . . . . . . . 3.2.4 Matematick´a anal´ yza . . . . . 3.2.5 Programov´an´ı . . . . . . . . . 3.2.6 Hry . . . . . . . . . . . . . . . 3.2.7 Umˇen´ı . . . . . . . . . . . . . 3.3 Skuteˇcnˇe n´ahodn´a ˇc´ısla . . . . . . . . 3.4 Pseudon´ahodn´a ˇc´ısla . . . . . . . . . 4 Program pro sbˇ er dat . . . . . . . . . . 4.1 Obecnˇe . . . . . . . . . . . . . . . . . 4.2 Dostupn´e zdroje . . . . . . . . . . . . 4.2.1 Zadn´ı kamera . . . . . . . . . 4.2.2 Pˇredn´ı kamera . . . . . . . . 4.2.3 Mikrofon . . . . . . . . . . . . 4.2.4 Geopozice . . . . . . . . . . . 4.2.5 Akcelerometr . . . . . . . . . 4.2.6 Kompas . . . . . . . . . . . . 4.2.7 Senzor pohybu . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1 3 3 3 3 4 4 4 4 5 5 5 7 8 8 8 8 8 9 9 9 9 9 9 10 11 11 11 11 12 12 12 12 12 12 vi
4.2.8 Baterie . . . . . . . . . . . . . . . . . . 4.2.9 Displej . . . . . . . . . . . . . . . . . . 4.2.10 Pamˇet’ . . . . . . . . . . . . . . . . . . 4.3 Nedostupn´e zdroje . . . . . . . . . . . . . . . 4.3.1 Zdroje nepodporovan´e zaˇr´ızen´ım . . . . 4.3.2 Zdroje, pro kter´e nejsou API . . . . . . 4.4 Pˇrenos dat z mobiln´ıho telefonu do poˇc´ıtaˇce . 5 Anal´ yza z´ıskan´ ych dat . . . . . . . . . . . . . . 5.1 Entropie . . . . . . . . . . . . . . . . . . . . . 5.2 Anal´ yza jednotliv´ ych zdroj˚ u . . . . . . . . . . 5.2.1 Kamery . . . . . . . . . . . . . . . . . 5.2.2 Mikrofon . . . . . . . . . . . . . . . . . 5.2.3 Geopozice . . . . . . . . . . . . . . . . 5.2.4 Akcelerometr, kompas, senzor pohybu . 5.2.5 Ostatn´ı zdroje . . . . . . . . . . . . . . 5.3 Shrnut´ı . . . . . . . . . . . . . . . . . . . . . . 6 Z´ avˇ er . . . . . . . . . . . . . . . . . . . . . . . . . Literatura . . . . . . . . . . . . . . . . . . . . . . . . A Obsah pˇ riloˇ zen´ eho CD . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
13 13 13 13 13 14 14 18 18 18 19 21 22 22 23 25 26 27 29
vii
Seznam obr´ azk˚ u 4.1 4.2
Hlavn´ı menu aplikace. 16 Uk´azka spuˇstˇen´e aplikace – zadn´ı kamera. 17
viii
Seznam tabulek 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8
Entropie Entropie Entropie Entropie Entropie Entropie Entropie Entropie
zadn´ı kamery. 20 pˇredn´ı kamery. 21 mikrofonu. 22 geopozice. 22 akcelerometru. 23 kompasu. 23 senzoru pohybu. 24 displeje a pamˇeti. 24
ix
Kapitola 1
´ Uvod Potˇreba generov´an´ı n´ahodn´ ych ˇc´ısel se objevila d´avno pˇred vznikem prvn´ıch poˇc´ıtaˇc˚ u, vˇetˇsinou ˇslo o hazard, napˇr. hru v kostky. Postupem ˇcasu, pˇredevˇs´ım s n´astupem v´ ypoˇcetn´ı techniky, se se rozˇs´ıˇrila oblast, ve kter´e se n´ahodn´a ˇc´ısla uplatˇ nuj´ı. Je vˇsak tˇreba vyˇreˇsit probl´em, kde n´ahodn´a data z´ıskat. Existuj´ı sice specializovan´a zaˇr´ızen´ı, kter´a jsou schopna registrovat a zaznamenat n´ahodn´e fyzik´aln´ı jevy (atmosf´erick´ y ˇsum, rozklad radioaktivn´ıch prvk˚ u), jsou ovˇsem relativnˇe drah´a a rychlost, jakou jsou schopna n´ahodn´a ˇc´ısla dod´avat, nemus´ı b´ yt vˇzdy pro potˇreby dan´e aplikace uspokojiv´a. Proto byly vyvinuty speci´aln´ı algoritmy, kter´e dovedou generovat takzvan´a pseudon´ahodn´a ˇc´ısla. Algoritmus na vstupu dostane sem´ınko, coˇz je mal´ y vzorek n´ahodn´ ych dat, a z nˇej generuje posloupnost pseudon´ahodn´ ych ˇc´ısel. Kvalita posloupnosti je ovlivnˇena jak pouˇzit´ ym algoritmem, tak kvalitou samotn´eho sem´ınka. S pˇr´ıchodem chytr´ ych mobiln´ıch telefon˚ u se potˇreba generov´an´ı n´ahodn´ ych ˇc´ısel pro dalˇs´ı pouˇzit´ı rozˇs´ıˇrila i na tyto pˇr´ıstroje. Vˇetˇsina operaˇcn´ıch syst´em˚ u, kter´e mobiln´ı telefony v dneˇsn´ı dobˇe pouˇz´ıvaj´ı, m´a v sobˇe zabudovanou funkci, obvykle se oznaˇcuje jako Random(), kter´a dok´aˇze generovat pseudon´ahodn´a data a kterou mohou program´atoˇri ve sv´ ych programech pouˇz´ıt. Kvalita takto z´ıskan´ ych dat ovˇsem nemus´ı vyhovovat nˇekter´ ym aplikac´ım (jako pˇr´ıklad se daj´ı uv´est kryptografick´e programy) a m˚ uˇze se tedy st´at, ˇze se funkce ze syst´emov´ ych knihoven nem˚ uˇze pouˇz´ıt. V tom pˇr´ıpadˇe je nutn´e napsat vlastn´ı gener´ator vyhovuj´ıc´ı podm´ınk´am, jeˇz jsou na nˇej kladeny. D˚ uleˇzit´e je pˇredevˇs´ım z´ısk´an´ı n´ahodn´ ych dat pro potˇreby sem´ınka gener´atoru. Podobn´e t´ema bylo nˇekolikr´at ˇreˇseno pro operaˇcn´ı syst´em Symbian [1, 2], ne vˇsak pro platformu Windows Phone 8, kterou se zab´ yv´a tato bakal´aˇrsk´a pr´ace. C´ılem pr´ace je tedy analyzovat dostupn´e zdroje entropie (n´ahodnosti), jeˇz nab´ız´ı mobiln´ı telefony s operaˇcn´ım syst´emem Windows Phone 8, a z´ıskat z nich data, jeˇz mohou b´ yt pouˇzita pro sem´ınko gener´atoru pseudon´ahodn´ ych ˇc´ısel. Jelikoˇz se jedn´a o velmi mladou platformu, kter´a byla pˇredstavena teprve v ˇr´ıjnu roku 2012, pr´ace se jednou kapitolou vˇenuje syst´emu Windows Phone 8, pˇredevˇs´ım jeho srovn´an´ı s konkurenˇcn´ımi mobiln´ımi operaˇcn´ımi syst´emy a zp˚ usobu, jak´ ym se pro tento syst´em vyv´ıj´ı aplikace. Tˇeˇziˇstˇem pr´ace jsou pak kapitoly, kter´e se zab´ yvaj´ı popisem programu pro sbˇer n´ahodn´ ych dat a jejich n´aslednou anal´ yzou. V n´asleduj´ıc´ım odstavci je naznaˇcen zp˚ usob, z jak´ ych f´az´ı se cel´ y proces skl´ad´a i se struˇcn´ ym popisem. 1
´ 1. Uvod Nejdˇr´ıve je tˇreba z´ıskat informace o tom, jak´e zdroje n´ahodnosti se u zaˇr´ızen´ı se syst´emem Windows Phone 8 nach´az´ı a jsou k dispozici. Seznam dostupn´ ych zdroj˚ u je pak pouˇzit k vytvoˇren´ı programu, kter´ y data z tˇechto zdroj˚ u sb´ır´a a n´aslednˇe je ukl´ad´a do textov´ ych soubor˚ u. Pro kaˇzd´ y zdroj je vytvoˇreno v´ıce soubor˚ u, data jsou totiˇz zpracov´av´ana za r˚ uzn´ ych podm´ınek, napˇr. mikrofonem se daj´ı z´ısk´avat data za u ´pln´eho ticha, pˇri bˇeˇzn´e u ´rovni hluku nebo pˇri velmi nahlas puˇstˇen´e hudbˇe, obdobn´ ym zp˚ usobem se vytv´aˇr´ı soubory s daty i pro ostatn´ı zdroje. Pot´e se soubory zkop´ıruj´ı do poˇc´ıtaˇce, kde se programem urˇc´ı m´ıra entropie jednotliv´ ych pˇr´ıpad˚ u. Je nutn´e podotknout, ˇze program mus´ı b´ yt pro kaˇzd´ y zdroj upraven, ne vˇsechna data jsou totiˇz ve stejn´em form´atu, velmi se liˇs´ı napˇr. v´ ystupy senzoru pohybu a kamery.
2
Kapitola 2
Platforma Windows Phone 8 2.1
´ Uvod
Windows Phone 8 je druh´a generace operaˇcn´ıho syst´emu pro chytr´e mobiln´ı telefony (anglicky smartphones) Windows Phone od spoleˇcnosti Microsoft. Je n´astupcem popul´arn´ıho Windows Mobile a Windows Phone 7, avˇsak ani s jedn´ım z tˇechto syst´em˚ u nen´ı zpˇetnˇe kompatibiln´ı. Aplikace napsan´e pro Windows Phone 7 ovˇsem bez probl´em˚ u bˇeˇz´ı i na verzi 8 [3]. Pˇr´ıstroje s t´ımto operaˇcn´ım syst´emem na trh dod´av´a nˇekolik renomovan´ ych v´ yrobc˚ u mobiln´ıch telefon˚ u, napˇr. finsk´a Nokia, tchajwansk´e HTC ˇci jihokorejsk´ y Samsung.
2.2
Ostatn´ı mobiln´ı OS
V n´asleduj´ıc´ıch odstavc´ıch se pokus´ım trochu pˇribl´ıˇzit i jin´e mobiln´ı platformy. Jedn´a se sp´ıˇse o informativn´ı v´ yˇcet neˇz vyˇcerp´avaj´ıc´ı popis. Nejsou zde uvedeny vˇsechny mobiln´ı operaˇcn´ı syst´emy, chyb´ı napˇr. webOS, Maemo nebo Firefox OS1 . 2.2.1
Windows Mobile
Mobiln´ı operaˇcn´ı syst´em od spoleˇcnosti Microsoft, jedn´a se o pˇredch˚ udce platformy Windows Phone. Jeho vznik se datuje k roku 1999 a ve v´ yvoji byl aˇz do roku 2010, kdy ho nahradil Windows Phone 7. Windows Mobile je zaloˇzen na Windows CE, coˇz je operaˇcn´ı syst´em pro pˇrenosn´a zaˇr´ızen´ı, zejm´ena PDA2 . Aˇckoliv by se dal Windows Mobile oznaˇcit za pˇredch˚ udce Windows Phone 8, jedn´a se o naprosto odliˇsn´ y syst´em s odliˇsn´ ym j´adrem, ovl´ad´an´ım3 i uˇzivatelsk´ ym rozhran´ım. To m´a evokovat vzhled starˇs´ıch verz´ı operaˇcn´ıho syst´emu Windows, zejm´ena ve verz´ıch 2000 a XP, zat´ımco Windows Phone vyuˇz´ıv´a tzv. Modern UI, dˇr´ıve oznaˇcovan´e jako Metro, kter´e je vyuˇz´ıv´ano i v nejnovˇejˇs´ım operaˇcn´ım syst´emu pro osobn´ı poˇc´ıtaˇce a tablety, Windows 8. Programy pro Windows Mobile jsou naps´any v C++ (pˇr´ıpadnˇe na platformˇe .Net). 1. K dubnu 2013 ovˇsem jeˇstˇe nebyl na trh uveden ˇz´adn´ y telefon s t´ımto syst´emem. 2. Personal Digital Assistant. 3. Windows Mobile nepodporuje ovl´ ad´ an´ı v´ıce prsty, tzv. multitouch, obvykl´e je t´eˇz ovl´ad´an´ı zaˇr´ızen´ı pomoc´ı speci´ aln´ı tuˇzky, oznaˇcovan´e jako stylus.
3
2. Platforma Windows Phone 8 2.2.2
Symbian
V minulosti velmi popul´arn´ı operaˇcn´ı syst´em, pouˇz´ıvan´ y zejm´ena v mobiln´ıch telefonech znaˇcky Nokia. Jedn´a se o otevˇren´ y syst´em s velkou komunitou, kterou zastupoval Symbian Limited, v roce 2008 odkoupen Noki´ı, kter´a se stala hlavn´ım propag´atorem a inov´atorem Symbianu. Na podzim roku 2011 vˇsak Nokia ohl´asila, ˇze pˇrech´az´ı na Windows Phone [4] a i d´ıky n´astupu zaˇr´ızen´ı s operaˇcn´ım syst´emem Android se Symbian postupnˇe propadal v prodejnosti a nyn´ı je vn´ım´an sp´ıˇse jako obstaroˇzn´ı platforma bez vyhl´ıdky na lepˇs´ı budoucnost. Programovat pro Symbian je moˇzno v jazyce C++, Java, Python nebo C#. 2.2.3
Bada
Operaˇcn´ı syst´em, uˇz´ıvan´ y mobiln´ımi telefony znaˇcky Samsung. Na trh se tento syst´em dostal v roce 2010 a stal se pomˇernˇe popul´arn´ım, nebot’ byl urˇcen pro bˇeˇzn´eho uˇzivatele. Jelikoˇz vˇsak Samsung nab´ız´ı i telefony s jin´ ymi operaˇcn´ımi syst´emy, jmenovitˇe Android a Windows Phone, chytr´e telefony se syst´emem Bada jsou sp´ıˇse zamˇeˇreny na levnˇejˇs´ı segment trhu. V roce 2012 byl nav´ıc ohl´aˇsen konec v´ yvoje syst´emu s pˇr´ıslibem vzniku nov´eho operaˇcn´ıho syst´emu s n´azvem Tizen [5], kter´ y by mˇel b´ yt schopn´ y spouˇstˇet i aplikace ˇ pro OS Bada. Z´adn´e dalˇs´ı informace vˇsak nejsou zn´am´e. Aplikace pro Badu se vyv´ıj´ı v jazyce C++. 2.2.4
BlackBerry OS
Mobiln´ı operaˇcn´ı syst´em vyv´ıjen´ y firmou BlackBerry Limited4 , urˇcen´ y pouze pro mobiln´ı telefony ˇrady BlackBerry. Prvn´ı telefon s t´ımto syst´emem byl uveden v roce 1999, posledn´ı aktualizace BlackBerry OS pak byla v roce 2012. Na zaˇc´atku roku 2013 se objevil nov´ y operaˇcn´ı syst´em, BlackBerry 10, kter´ y m´a p˚ uvodn´ı syst´em nahradit. Telefony BlackBerry byly popul´arn´ı zejm´ena ve firm´ach a zejm´ena u manaˇzer˚ u, nebot’ nab´ızely ˇsifrovanou komunikaci a fyzickou QWERTY kl´avesnici. S uveden´ım nov´eho operaˇcn´ıho syst´emu BlackBerry 10 vˇsak spoleˇcnost c´ıl´ı i na bˇeˇzn´e uˇzivatele a konkuruje tak v´ yrobc˚ um telefon˚ u s operaˇcn´ımi syst´emy Android, iOS a Windows Phone. Aplikace se p´ıˇs´ı v jazyce Java. 2.2.5
Android
Mobiln´ı operaˇcn´ı syst´em od spoleˇcnosti Google Inc., zn´am´ y pˇredevˇs´ım kv˚ uli sv´e otevˇrenosti a nasazen´ı na velk´e mnoˇzstv´ı r˚ uzn´ ych zaˇr´ızen´ı 5 . Prvn´ı telefon s t´ımto operaˇcn´ım syst´emem byl uveden v roce 2008 a od t´e doby se Android st´av´a st´ale popul´arnˇejˇs´ım [6], pˇredevˇs´ım d´ıky tomu, ˇze se vyskytuje jak v drah´ ych telefonech, tak i v levn´ ych zaˇr´ızen´ıch. Aplikace pro Android se mohou ps´at v jazyc´ıch C, C++ nebo Java. 4. Dˇr´ıve Research in Motion. 5. Android nen´ı pouze operaˇcn´ı syst´em pro chytr´e telefony a tablety, je moˇzn´e na nˇej narazit i v TV boxech, digit´ aln´ıch fotoapar´ atech nebo GPS navigac´ıch.
4
2. Platforma Windows Phone 8 2.2.6
iOS
Operaˇcn´ı syst´em spoleˇcnosti Apple Inc. pro telefony iPhone, mp3 pˇrehr´avaˇce iPod Touch, tablety iPad a iPad Mini a digit´aln´ı medi´aln´ı pˇrij´ımaˇc Apple TV. Jedn´a se o uzavˇren´ y syst´em, vyv´ıj´ı se v C, C++ nebo Objective-C, pro v´ yvoj je tˇreba v´ yvojov´e prostˇred´ı XCode, dostupn´e pouze pro operaˇcn´ı syst´em Mac OS X. Distribuce aplikac´ı prob´ıh´a v´ yhradnˇe pˇres ofici´aln´ı Apple App Store. Pˇredstaven byl v roce 2007, tehdy se jeˇstˇe jmenoval iPhone OS, v roce 2010 byl pak syst´em pˇrejmenov´an na iOS. Aˇckoliv se jedn´a o uzavˇren´ y syst´em urˇcen´ y pouze pro v´ yˇse uveden´e zaˇr´ızen´ı, iOS je velmi rozˇs´ıˇren´ y a popul´arn´ı. Hlavn´ı pod´ıl na tom m´a velmi pˇr´ıjemn´e uˇzivatelsk´e rozhran´ı a jist´a exkluzivita produkt˚ u firmy Apple. Spolu s Androidem soupeˇr´ı o prvn´ı m´ısto v operaˇcn´ıch syst´emech urˇcen´ ych pro mobiln´ı zaˇr´ızen´ı, posledn´ı dobou vˇsak Android z´ısk´av´a pˇresvˇedˇciv´e veden´ı, hlavnˇe d´ıky velk´e nab´ıdce zaˇr´ızen´ı, kter´e operaˇcn´ı syst´em od Googlu pouˇz´ıvaj´ı [7].
2.3
Historie Windows Phone
Windows Phone 8 je pˇr´ım´ ym n´astupcem Windows Phone 7, jehoˇz v´ yvoj zaˇcal v roce 2008 jako n´astupce syst´emu Windows Mobile 6 a kter´ y mˇel b´ yt vyd´an v roce 2009, avˇsak nakonec byl po nˇekolika odkladech pˇredstaven aˇz v roce 2010 (v meziˇcase vyˇsla posledn´ı aktualizace Windows Mobile, verze 6.5). Tento syst´em je z grafick´eho hlediska velmi podobn´ y WP 8, avˇsak maj´ı odliˇsn´e j´adra, zat´ımco tedy Windows Phone 8 pouˇz´ıv´a j´adro Windows NT, pˇredch˚ udce v sobˇe obsahuje starˇs´ı j´adro Windows CE. V kvˇetnu 2011 byla uvedena aktualizace Windows Phone 7 s k´odov´ ym oznaˇcen´ım Mango“ neboli Windows Phone 7.5, ” kter´a pˇrinesla nˇekter´a d˚ uleˇzit´a vylepˇsen´ı, jako napˇr. podporu v´ıce najednou bˇeˇz´ıc´ıch aplikac´ı tˇret´ıch stran nebo integraci sluˇzby Skydrive. S dalˇs´ı verz´ı s oznaˇcen´ım Tango“ se ” kromˇe opravy chyb sn´ıˇzily n´aroky na zaˇr´ızen´ı (jednoj´adrov´ y procesor o taktu 800 MHz a 256 MB RAM), coˇz zapˇr´ıˇcinilo vyd´an´ı nov´ ych telefon˚ u, kter´e m´ıˇrily do niˇzˇs´ıch cenov´ ych kategori´ı6 . Syst´em Windows Phone 8 byl na trh uveden na konci ˇr´ıjna roku 2012, prvn´ı aktualizace Portico“ pak byla vyd´ana v ˇr´ıjnu toho roku a kromˇe opravy chyb pˇrinesla nˇekolik ” vylepˇsen´ı, z nichˇz nejv´ yznamnˇejˇs´ı je moˇznost b´ yt pˇripojen na WiFi i pˇri zamknut´em telefonu. Windows Phone 7 se pak zpˇetnˇe doˇckal verze 7.8, kter´a se ve vln´ach zaˇcala dost´avat k uˇzivatel˚ um od ledna 2013. Tato aktualizace pˇrin´aˇs´ı nˇekter´e funkce, kter´e byly pˇreneseny z Windows Phone 8. Do budoucna se pak pl´anuje vˇetˇs´ı aktualizace pro WP8 s oznaˇcen´ım Blue s t´ım, ˇze se syst´em pˇred vyd´an´ım t´eto verze doˇck´a nˇekolika menˇs´ıch opravn´ ych a vylepˇsuj´ıc´ıch bal´ıˇck˚ u.
2.4
Technologick´ y pˇ rehled
Na rozd´ıl od iOS, kde je jedin´ ym v´ yrobcem pˇr´ıstroj˚ u s t´ımto syst´emem s´am Apple, Windows Phone je dod´av´an na v´ıcero zaˇr´ızen´ıch r˚ uzn´ ych v´ yrobc˚ u. T´ım je sp´ıˇse podobn´ y operaˇcn´ımu syst´emu Android, od kter´eho se ovˇsem liˇs´ı t´ım, jak moc je restriktivn´ı k v´ yrobc˚ um. Zat´ımco 6.
Napˇr. Nokia Lumia 610.
5
2. Platforma Windows Phone 8 tedy telefony s Androidem mohou b´ yt velmi odliˇsn´e jak ve v´ ykonu, tak v rozliˇsen´ı obrazovky a velikosti, z´akladn´ı kostra pro WP 8 je pevnˇe d´ana. Je vˇsak nutno podotknout, ˇze na rozd´ıl od iOS a Androidu nen´ı platforma Windows Phone urˇcena k pouˇzit´ı na tabletech. Zde jsou uvedeny minim´aln´ı poˇzadavky na zaˇr´ızen´ı s Windows Phone 8 [8]: •
Qualcomm Snapdragon S4 dvojj´adrov´ y procesor;
•
minim´alnˇe 512 MB RAM pro telefony s WVGA rozliˇsen´ım (480 x 800 px), minim´alnˇe 1024 MB RAM pro telefony s rozliˇsen´ım 720p (720 x 1280 px) nebo WXGA (768 x 1280 px);
•
minim´alnˇe 4 GB flash pamˇeti;
•
geolokaˇcn´ı sluˇzby (GPS a A-GNSS, popˇr. GLONASS);
•
podpora micro-USB verze 2.0;
•
3,5 mm stereofonn´ı v´ ystup na sluch´atka s podporou rozpozn´av´an´ı aˇz tˇr´ı tlaˇc´ıtek (pˇredchoz´ı, pauza, dalˇs´ı);
•
zadn´ı kamera s automatick´ ym ostˇren´ım a bleskem, voliteln´a pˇredn´ı kamera (obˇe s minim´alnˇe VGA rozliˇsen´ım, tedy 640 x 480 pixel˚ u), samostatn´e tlaˇc´ıtko spouˇstˇe fotoapar´atu;
•
akcelerometr, svˇeteln´ y senzor a senzor pˇribl´ıˇzen´ı (kompas a gyroskop jsou voliteln´e senzory);
•
802.11b/g WiFi (volitelnˇe tak´e 802.11n) a Bluetooth;
•
grafick´a karta podporuj´ıc´ı DirectX s hardware akcelerac´ı Direct3D;
•
kapacitn´ı dotykov´a obrazovka s rozpozn´av´an´ım minim´alnˇe ˇctyˇr dotyk˚ u z´aroveˇ n.
Windows Phone 8 v souˇcasnosti podporuje tˇri rozliˇsen´ı obrazovky, a to sice 480 x 800 px7 , 720 x 1280 px a 768 x 1280 px. Liˇs´ı se tedy jak poˇctem obrazov´ ych bod˚ u, tak i pomˇerem stran, nen´ı ovˇsem zapotˇreb´ı aplikace pˇrepisovat pro kaˇzd´e rozliˇsen´ı zvl´aˇst’, syst´em dok´aˇze program napsan´ y pro jak´ekoliv rozliˇsen´ı spr´avnˇe pˇrekreslit do rozliˇsen´ı jin´eho. Mezi zaj´ımavosti syst´emu patˇr´ı podpora SD karet. Ta je totiˇz velmi sporn´a, z karty je moˇzno ˇc´ıst, pokud to aplikace umoˇzn ˇuje, nen´ı ale moˇzn´e na ni cokoliv zapsat s v´ yjimkou fotek a vide´ı. Nen´ı tedy moˇzn´e napˇr. nainstalovat aplikaci na pamˇet’ovou kartu nebo z n´ı ˇc´ıst podklady pro offline navigaci. 7.
Jedin´e podporovan´e rozliˇsen´ı Windows Phone 7 [9].
6
2. Platforma Windows Phone 8 Obecnˇe se d´a ˇr´ıct, ˇze vybavenost syst´emu je standardn´ı, vˇetˇsina funkc´ı je podporov´ana i ostatn´ımi mobiln´ımi operaˇcn´ımi syst´emy. Za zm´ınku stoj´ı absence FM r´adia, naopak vyzdvihnout by se dala podpora NFC8 a vzhledem k j´adru Windows NT 128b ˇsifrov´an´ı pomoc´ı technologie Bitlocker.
2.5
V´ yvoj aplikac´ı pro Windows Phone 8
Aplikace pro Windows Phone 8 se daj´ı vyv´ıjet v nˇekolika jazyc´ıch, a to sice ve Visual Basicu, C, C++ a C#. Pro popis grafick´eho uˇzivatelsk´eho rozhran´ı se pouˇz´ıv´a jazyk XAML9 . Ten je pouˇz´ıv´an i pˇri tvorbˇe okenn´ıch aplikac´ı pro novˇejˇs´ı operaˇcn´ı syst´emy z rodiny Microsoft Windows (od verze Vista v´ yˇse), konkr´etnˇe pˇri pouˇzit´ı WPF10 . M´ısto XAML se d´a vyuˇz´ıt knihovna Direct3D, kter´a je vyuˇz´ıv´ana zejm´ena program´atory v jazyce C++ a je vhodn´a pˇredevˇs´ım pro tvorbu her. K v´ yvoji program˚ u pro platformu Windows Phone 8 se pouˇz´ıv´a v´ yvojov´e prostˇred´ı Microsoft Visual Studio 2012, k n´avrhu grafick´eho uˇzivatelsk´eho rozhran´ı se pak kromˇe vestavˇen´eho n´avrh´aˇre Visual Studia m˚ uˇze pouˇz´ıt n´astroje Blend, kter´ y m´a rozˇs´ıˇrenou nab´ıdku funkc´ı. Tyto n´astroje jsou dostupn´e pouze pro operaˇcn´ı syst´em Microsoft Windows. Visual Studio se nab´ız´ı ve v´ıcero verz´ıch, pro v´ yvoj aplikac´ı pro Windows Phone 8 pak postaˇc´ı z´akladn´ı edice Express, kter´a je k dispozici zdarma i pro komerˇcn´ı pouˇzit´ı. Tato verze je pak obsaˇzena spolu s programem Blend a dalˇs´ımi pomocn´ ymi n´astroji, jak´ ymi jsou napˇr´ıklad Isolated Storage Explorer (program pro proch´azen´ı soubor˚ u na pamˇet’ov´em u ´loˇziˇsti telefonu), ˇci Windows Phone Emulator (emul´ator fyzick´eho zaˇr´ızen´ı, urˇcen´e pro testov´an´ı) v bal´ıku Windows Phone 8 SDK tools. K pouˇzit´ı emul´atoru je zapotˇreb´ı vlastnit procesor podporuj´ıc´ı mimo jin´e i technologii Hyper-V [10]. Pokud procesor Hyper-V nepodporuje, veˇsker´e ladˇen´ı aplikac´ı mus´ı prob´ıhat na fyzick´em zaˇr´ızen´ı. Distribuce program˚ u je u Windows Phone 8 zajiˇst’ov´ana speci´aln´ım kan´alem, kter´ y se naz´ yv´a Windows Phone Store. Tento kan´al je podobnˇe jako u syst´emu iOS kontrolovan´ y, to znamen´a, ˇze kaˇzd´a aplikace mus´ı pˇred zveˇrejnˇen´ım proj´ıt kontrolou, kterou prov´ad´ı samotn´a firma Microsoft. T´ım je zajiˇstˇeno, ˇze aplikace neobsahuje ˇskodliv´ y k´od a splˇ nuje normy, kter´e jsou na ni kladeny. Pro publikov´an´ı program˚ u je tˇreba vlastnit v´ yvoj´aˇrskou licenci (Developer License), kter´a stoj´ı 99 dolar˚ u na rok. Studenti pak maj´ı tuto licenci zadarmo, pokud jsou pˇrihl´aˇsen´ı v programu Microsoft Dreamspark.
8. Near Field Communication. 9. Extensible Application Markup Language. 10. Windows Presentation Foundation.
7
Kapitola 3
N´ ahodn´ aˇ c´ısla 3.1
Obecnˇ e
Rozliˇsuj´ı se dva druhy n´ahodn´ ych ˇc´ısel, tzv. skuteˇcnˇe n´ahodn´a a pseudon´ahodn´a. Zat´ımco skuteˇcnˇe n´ahodn´a ˇc´ısla vyuˇz´ıvaj´ı ke sv´emu generov´an´ı fyzik´aln´ı jev, vykazuj´ıc´ı n´ahodnost, pro tvorbu pseudon´ahodn´ ych ˇc´ısel je vyuˇz´ıv´an deterministick´ y algoritmus, kter´ y z mal´eho 11 mnoˇzstv´ı n´ahodn´ ych vstupn´ıch dat vygeneruje posloupnost ˇc´ısel, kter´a se jev´ı jako n´ahodn´a [11]. N´ahodn´a ˇc´ısla se uˇz´ıvaj´ı v mnoha oblastech, mimo jin´e napˇr´ıklad v kryptografii, pˇri simulac´ıch, vzorkov´an´ı, matematick´e anal´ yze nebo programov´an´ı [12]. Hraj´ı v´ yznamnou roli v nˇekter´ ych hr´ach a jsou pouˇz´ıv´ana i v umˇen´ı. Nyn´ı n´asleduje podrobnˇejˇs´ı popis vyuˇzit´ı n´ahodn´ ych ˇc´ısel v konkr´etn´ıch oblastech.
3.2
Uˇ zit´ı n´ ahodn´ ych ˇ c´ısel
3.2.1
ˇ Sifrov´ an´ı
ˇ Sifrov´ an´ı je metoda, d´ıky kter´e vznik´a z bˇeˇznˇe ˇciteln´eho textu nesrozumiteln´a sekvence znak˚ u, jej´ıˇz v´ yznam m˚ uˇze odhalit pouze osoba vlastn´ıc´ı pˇr´ısluˇsn´ y kl´ıˇc. N´ahodn´a ˇc´ısla jsou d˚ uleˇzit´a pro samotn´e ˇsifrov´an´ı, nebot’ jsou z´akladem vˇetˇsiny ˇsifer. Kv˚ uli neust´ale stoupaj´ıc´ımu v´ ykonu poˇc´ıtaˇc˚ u, kter´e se snaˇz´ı ˇsifry prolomit, se zvyˇsuj´ı i n´aroky na ˇsifry samotn´e, je proto d˚ uleˇzit´e zajistit, aby n´ahodn´a ˇc´ısla, uˇz´ıvan´a pro potˇreby ˇsifrov´an´ı, byla co nejkvalitnˇejˇs´ı. 3.2.2
Simulace
Simulac´ı se rozum´ı umˇel´e vytvoˇren´ı zkouman´eho prostˇred´ı a jeho anal´ yza. N´ahodn´a ˇc´ısla jsou zde velmi d˚ uleˇzit´a, nebot’ vytv´aˇr´ı podm´ınky co nejv´ıce podobn´e realitˇe. Simulace je vyuˇz´ıv´ana v mnoha oblastech, napˇr. pˇri studiu fyzik´aln´ıch jev˚ u, pˇredpovˇedi poˇcas´ı nebo pˇri modelov´an´ı ekosyst´em˚ u. 11. Tzv. sem´ınka, anglicky seed.
8
´ hodna ´ c ˇ´ısla 3. Na 3.2.3
Vzorkov´ an´ı
Nen´ı vˇzdy moˇzn´e prozkoumat vˇsechny pˇr´ıpady, kter´e mohou nastat. V tˇechto pˇr´ıpadech je tedy praktiˇctˇejˇs´ı vybrat pouze vzorek a n´ahodn´a ˇc´ısla umoˇzn ˇuj´ı spravedliv´ y v´ ybˇer vzorku. 3.2.4
Matematick´ a anal´ yza
Nejen zde se vyuˇz´ıv´a metoda Monte Carlo, kter´a pracuje s pseudon´ahodn´ ymi ˇc´ısly. Pouˇz´ıv´a se napˇr. k ˇreˇsen´ı integr´al˚ u a parci´aln´ıch diferenci´aln´ıch rovnic, k hled´an´ı koˇren˚ u rovnic nebo v Rabin-Millerovˇe testu prvoˇc´ıselnosti [13]. 3.2.5
Programov´ an´ı
N´ahodn´e hodnoty tvoˇr´ı dobr´a vstupn´ı data pro testov´an´ı efektivnosti algoritm˚ u a poˇc´ıtaˇcov´ ych program˚ u. 3.2.6
Hry
At’ uˇz se jedn´a o pouhou hru v kostky, ruletu nebo loterii, vˇzdy hraje velkou roli n´ahoda. N´ahodn´e rozestaven´ı hern´ıch tyˇcinek u mik´ada zajiˇst’uje z´abavnost, hody kostkou pak jsou ned´ılnou souˇc´ast´ı vˇetˇsiny deskov´ ych her a her na hrdiny (napˇr. popul´arn´ı Dungeons and Dragons ˇci ˇcesk´e Draˇc´ı doupˇe). Tato potˇreba n´ahodnosti se pak pˇrenesla i do poˇc´ıtaˇcov´ ych her. 3.2.7
Umˇ en´ı
Prvn´ı zaznamenan´e uˇzit´ı n´ahodnosti se v hudbˇe datuje do poˇc´atku 16. stolet´ı, vyuˇz´ıvalo se pˇredevˇs´ım hodu kostkou. Tuto metodu skl´ad´an´ı hudby pouˇz´ıval i Mozart, Bach, Haendel nebo Haydn [14]. V modern´ı hudbˇe pak n´ahodnost m˚ uˇze ovlivˇ novat napˇr. zvuk syntetiz´atoru. N´ahoda samozˇrejmˇe nehraje roli pouze v hudbˇe, m´a sv´e m´ısto i v mal´ıˇrstv´ı nebo literatuˇre, kde je kupˇr´ıkladu vyuˇz´ıv´ana ve formˇe Dadaistick´eho klobouku, pˇri kter´em se z klobouku postupnˇe t´ahnou slova a skl´adaj´ı se tak b´asnˇe, byt’ nemus´ı d´avat ˇza´dn´ y smysl [15].
3.3
Skuteˇ cnˇ e n´ ahodn´ aˇ c´ısla
Pro generov´an´ı skuteˇcnˇe n´ahodn´ ych ˇc´ısel je tˇreba vyuˇz´ıt speci´aln´ıch zaˇr´ızen´ı, kter´a dok´aˇzou zpracovat n´ahodn´e fyzik´aln´ı jevy a pˇrev´est je do poˇc´ıtaˇcem zpracovateln´e podoby. Jedn´ım z pˇr´ıklad˚ u je Geiger-M¨ uller˚ uv detektor, kter´ y mˇeˇr´ı radioaktivn´ı rozpad zdroje z´aˇren´ı. Detektor je pak pˇripojen k PC a takto z´ısk´avan´a data pak mohou b´ yt d´ale pouˇzita. Tento zp˚ usob generov´an´ı n´ahodn´ ych ˇc´ısel vyuˇz´ıv´a napˇr´ıklad HotBits, webov´a sluˇzba umoˇzn ˇuj´ıc´ı z´ısk´av´an´ı n´ahodn´ ych ˇc´ısel pro dalˇs´ı pouˇzit´ı [16]. V´ ystup je moˇzn´ y si jednak nechat vypsat pˇr´ımo ve webov´em prohl´ıˇzeˇci, dalˇs´ı variantou je pak vyuˇzit´ı volnˇe dostupn´ ych zdrojov´ ych 9
´ hodna ´ c ˇ´ısla 3. Na k´od˚ u pro vlastn´ı implementaci. V´ yhodou je podpora zabezpeˇcen´e komunikace mezi serverem a pˇr´ıjemcem dat, nev´ yhodou je potˇreba pˇripojen´ı k internetu. Dalˇs´ım zdrojem n´ahodnosti je pak atmosf´erick´ y ˇsum, kter´eho vyuˇz´ıv´a napˇr´ıklad random.org. V´ yhodou je, ˇze atmosf´erick´ ym ˇsum m˚ uˇze b´ yt pomˇernˇe jednoduˇse zpracov´av´an radiopˇrij´ımaˇcem. Zaj´ımav´ ym zp˚ usobem z´ısk´av´an´ı n´ahodn´ ych ˇc´ısel byl projekt Lavarand, kter´ y vyuˇz´ıval sn´ım´an´ı l´avov´ ych lamp, a n´asledn´a n´ahodn´a data extrahovan´a ze sn´ımk˚ u byla podkladem pro gener´ator pseudon´ahodn´ ych ˇc´ısel. Projekt byl v roce 2001 ukonˇcen a n´astupce LavaRnd jiˇz tuto techniku generov´an´ı n´ahodn´ ych ˇc´ısel nepouˇz´ıv´a. Pomˇernˇe bˇeˇznou variantou z´ısk´av´an´ı n´ahodn´ ych dat je pak specializovan´e zaˇr´ızen´ı, mˇeˇr´ıc´ı ˇsum polovodiˇcov´eho pˇrechodu. Pˇrednost´ı je zabudov´an´ı USB v´ ystupu v mnoha tˇechto zaˇr´ızen´ıch, kter´e dovoluje snadnˇejˇs´ı sbˇer n´ahodn´ ych ˇc´ısel. Velk´ ym plusem je takt´eˇz nez´avislost na internetov´em pˇripojen´ı. Dalˇs´ımi zdroji, kter´e se daj´ı vyuˇz´ıt pˇri generov´an´ı skuteˇcnˇe n´ahodn´ ych ˇc´ısel, pˇredevˇs´ım kameˇre a mikrofonu, se budu v pr´aci vˇenovat v dalˇs´ıch kapitol´ach.
3.4
Pseudon´ ahodn´ aˇ c´ısla
Z´ısk´av´an´ı skuteˇcnˇe n´ahodn´ ych ˇc´ısel je n´aroˇcn´ y proces, pˇri kter´em je nutn´e pouˇz´ıt specializovan´e zaˇr´ızen´ı, je pomal´ y a m˚ uˇze omezovat program, kter´ y n´ahodn´a data vyˇzaduje. Na druhou stranu, ne vˇsechny aplikace maj´ı stejnˇe vysok´e n´aroky na n´ahodnost a preferuj´ı rychlost generov´an´ı pˇred kvalitou. Pro tyto u ´ˇcely je vhodn´e pouˇz´ıt m´ısto skuteˇcnˇe n´ahodn´ ych ˇc´ısel ˇc´ısla pseudon´ahodn´a. Pseudon´ahodn´a ˇc´ısla se tvoˇr´ı pomoc´ı gener´ator˚ u pseudon´ahodn´ ych ˇc´ısel. Jedn´a se o deterministick´e algoritmy, kter´e z inici´aln´ıch n´ahodn´ ych hodnot vytv´aˇr´ı dlouh´e n´ahodn´e posloupnosti. Tyto posloupnosti jsou periodick´e, po urˇcit´e dobˇe se zaˇcne generovan´a posloupnost opakovat. Gener´atory m˚ uˇzeme rozdˇelit do dvou skupin, a to na gener´atory line´arn´ı a neline´arn´ı. Mezi ty line´arn´ı patˇr´ı napˇr. kongruentn´ı gener´atory, zpoˇzdˇen´e Fibonnaciho gener´atory, gener´atory zaloˇzen´e na rekurenci modulo 2, ˇci gener´atory uˇz´ıvaj´ıc´ı bit carry“ nebo borrow“. ” ” U neline´arn´ıch gener´ator˚ u se pak rozliˇsuje mezi inverzivn´ımi a kvadratick´ ymi kongruentn´ımi gener´atory [17].
10
Kapitola 4
Program pro sbˇ er dat 4.1
Obecnˇ e
Program, kter´ y jsem pro potˇrebu bakal´aˇrsk´e pr´ace vyvinul, z´ısk´av´a data z rozliˇcn´ ych zdroj˚ u. Tyto zdroje se mohou liˇsit podle pouˇzit´eho zaˇr´ızen´ı, v m´em pˇr´ıpadˇe je to model od tchajwansk´e firmy HTC s oznaˇcen´ım Windows Phone 8X, kter´emu chyb´ı gyroskop. V´ yˇcet vˇsech povinn´ ych a voliteln´ ych zdroj˚ u je uveden v kapitole Windows Phone 8, konkr´etnˇe v podkapitole Technick´e specifikace (u niˇzˇs´ıho modelu, Windows Phone 8S by HTC, pak kromˇe gyroskopu chyb´ı i pˇredn´ı kamera). Bl´ıˇze se t´eto problematice vˇenuji v podkapitole Nedostupn´e zdroje, stejnˇe tak i ostatn´ım potenci´aln´ım zdroj˚ um entropie, kter´e ovˇsem nelze 12 kv˚ uli chybˇej´ıc´ım programovac´ım rozhran´ım vyuˇz´ıt. Program je naps´an v jazyce C#, grafick´e uˇzivatelsk´e rozhran´ı je pak naps´ano v jazyce XAML, coˇz je jazyk pro popis grafick´eho rozvrˇzen´ı prvk˚ u, vyvinut´ y firmou Microsoft. Vzhledem k tomu, ˇze procesor poˇc´ıtaˇce, na kter´em jsem aplikaci vyv´ıjel, nepodporuje technologii Hyper-V, musel jsem veˇsker´e testov´an´ı a ladˇen´ı aplikace prov´adˇet na fyzick´em zaˇr´ızen´ı. Hlavn´ı nab´ıdka aplikace je sloˇzena z odkaz˚ u na obrazovky urˇcen´e pro jednotliv´e zdroje (obr´azek 4.1). Pro n´avrat zpˇet do hlavn´ıho menu ˇci pro ukonˇcen´ı aplikace slouˇz´ı senzorov´e tlaˇc´ıtko ←“ (Zpˇet). Z´ısk´avan´a data se jednak v re´aln´em ˇcase zobrazuj´ı na displeji zaˇr´ızen´ı ” (obr´azek 4.2), po ukonˇcen´ı sbˇeru dat z konkr´etn´ıho zdroje se pak vytvoˇr´ı v pamˇeti telefonu textov´ y soubor, kter´ y tato data obsahuje. Problematikou pˇrenesen´ı soubor˚ u z telefonu na pevn´ y disk poˇc´ıtaˇce, kde se data d´ale analyzuj´ı, se vˇenuji na konci t´eto kapitoly.
4.2
Dostupn´ e zdroje
4.2.1
Zadn´ı kamera
Obraz, z´ısk´avan´ y kamerou pˇr´ıstroje, je moˇzno do digit´aln´ı podoby zachytit ve tˇrech barevn´ ych modelech, a to sice ARGB13 , YCbCr14 a Y15 . Na displeji pˇr´ıstroje se pak zobrazuje ˇrada ˇc´ısel, kter´a tento obraz reprezentuje, stejnˇe tak se tato posloupnost ukl´ad´a do sou12. 13. 14. 15.
API - Application Programming Interface. Alpha, Red, Green, Blue. Y - jas, Cb - modr´ a komponenta, Cr - ˇcerven´a komponenta. Jas.
11
ˇr dat 4. Program pro sbe boru. Program vytv´aˇr´ı pro kaˇzd´ y barevn´ y model vlastn´ı soubor, nedoch´az´ı tedy ke slouˇcen´ı do jednoho souboru pˇri pˇrepnut´ı modelu. 4.2.2
Pˇ redn´ı kamera
Pˇredn´ı kamera se chov´a prakticky identicky jako zadn´ı, vˇetˇsinou vˇsak nen´ı tak kvalitn´ı, napˇr´ıklad HTC 8X m´a osmimegapixelovou zadn´ı kameru, kdeˇzto pˇredn´ı m´a rozliˇsen´ı pouze 1,2 Mpix. Je to d´ano zejm´ena t´ım, ˇze pˇredn´ı kamera neslouˇz´ı u chytr´ ych mobiln´ıch telefon˚ u prim´arnˇe k focen´ı, ale je pouˇz´ıv´ana zejm´ena pro videohovory. D˚ uleˇzit´e je takt´eˇz poznamenat, ˇze pˇredn´ı kamera nen´ı uvedena v povinn´e v´ ybavˇe mobiln´ıch telefon˚ u s Windows Phone 8 a tud´ıˇz nen´ı zastoupena ve vˇsech modelech. 4.2.3
Mikrofon
Analogov´a data z mikrofonu se do digit´aln´ı podoby pˇrev´ad´ı pulznˇe k´odovou modulac´ı (PCM). Uˇzivateli se pak z´ıskan´e hodnoty reprezentuj´ı jako posloupnost ˇc´ısel od 0 do 255, jedn´a se tedy o osmibitovou PCM. V pr˚ ubˇehu sb´ır´an´ı dat se hodnoty zobrazuj´ı na displeji pˇr´ıstroje, po ukonˇcen´ı sbˇeru se pak ukl´adaj´ı do souboru k dalˇs´ımu zpracov´an´ı. 4.2.4
Geopozice
Pozice zaˇr´ızen´ı je z´ısk´av´ana ze tˇr´ı zdroj˚ u: GPS, Wi-Fi a mobiln´ı s´ıt’. Jednotliv´e zdroje poskytuj´ı odliˇsnou m´ıru pˇresnosti, kde urˇcov´an´ı polohy pomoc´ı GPS je nejpˇresnˇejˇs´ı, nejm´enˇe pˇresn´a je pak lokalizace mobiln´ı s´ıt´ı. Aplikace se pak vˇzdy snaˇz´ı urˇcit polohu co nejl´epe. Pro pˇr´ıstup k tˇemto dat˚ um je tˇreba v nastaven´ı telefonu zapnout sluˇzby pro urˇcov´an´ı polohy16 . 4.2.5
Akcelerometr
Akcelerometr mˇeˇr´ı zrychlen´ı ve tˇrech os´ach, X, Y a Z. Hodnoty mˇeˇren´ı jsou ovlivnˇeny jak gravitaˇcn´ı silou, tak i pohybem zaˇr´ızen´ı. V ukl´adan´ ych datech se mezi jednotliv´ ymi ’ sloˇzkami rozliˇsuje, lze tedy analyzovat zmˇeny v kaˇzd´e ose zvl´aˇst . 4.2.6
Kompas
Jin´ ym oznaˇcen´ım magnetometr, kompas je zaˇr´ızen´ı, kter´e slouˇz´ı k urˇcen´ı u ´hlu, kter´ y zaˇr´ızen´ı sv´ır´a se severn´ım magnetick´ ym p´olem. D´ale sn´ım´a magnetick´e pole okolo pˇr´ıstroje a hodnoty vyjadˇruje v trojrozmˇern´em prostoru jako sloˇzky X, Y a Z. Kompas je u pˇr´ıstroj˚ u s Windows Phone 8 voliteln´ y a nemus´ı b´ yt obsaˇzen ve vˇsech zaˇr´ızen´ıch. 4.2.7
Senzor pohybu
Senzor pohybu (anglicky Motion sensor) je jakousi agregac´ı akcelerometru, kompasu a gyroskopu a obsahuje velk´e mnoˇzstv´ı informac´ı o poloze telefonu. Pokud nˇekter´ y z tˇechto 16. V origin´ ale Location services.
12
ˇr dat 4. Program pro sbe senzor˚ u nen´ı k dispozici (typicky kompas ˇci gyroskop), pak jsou data z nˇej vynech´ana. V pˇr´ıpadˇe telefonu HTC 8X nejsou dostupn´a data z gyroskopu, senzor pohybu tedy nem´a informace o rotaci telefonu (resp. m´a, ale velmi nepˇresn´e, urˇcen´e akcelerometrem a kompasem). 4.2.8
Baterie
U baterie jsou dostupn´e dvˇe informace, a to sice moment´aln´ı stav nabit´ı v procentech a ˇcas do u ´pln´eho vybit´ı telefonu, kde nejmenˇs´ı dostupn´a jednotka jsou milisekundy. Jedn´a se sp´ıˇse o okrajov´ y zdroj entropie, nebot’ ud´avan´e hodnoty nejsou pˇr´ıliˇs variabiln´ı. 4.2.9
Displej
Zaznamen´av´a se dotyk, tedy jeho souˇradnice X a Y, kter´e jsou vyj´adˇreny relativnˇe v˚ uˇci zvolen´emu bodu, a ˇcasov´a zn´amka, l´epe ˇreˇceno doba v milisekund´ach, kter´a uplynula od posledn´ıho dotyku. Tato metoda je analogick´a k z´ısk´av´an´ı entropie z kl´avesnice ˇci myˇsi. 4.2.10 Pamˇ et’ Program m˚ uˇze z´ıskat nˇekolik informac´ı o stavu pamˇeti. D˚ uleˇzit´e jsou pˇredevˇs´ım hodnoty pro aktu´aln´ı velikost pamˇeti, kter´a je pouˇz´ıv´ana, a maximum, kter´e bylo za bˇehu jedn´e instance programu dosaˇzeno. D´ale je moˇzno z´ıskat informace o maxim´aln´ı dovolen´e velikosti pamˇeti pro aplikaci (314572800 B) a celkovou pamˇet’ zaˇr´ızen´ı (934641664 B). Tyto hodnoty jsou platn´e pro HTC 8X a u ostatn´ıch zaˇr´ızen´ı s Windows Phone 8 se mohou liˇsit.
4.3
Nedostupn´ e zdroje
Bohuˇzel, ne vˇsechny moˇzn´e zdroje jsou dostupn´e. Daj´ı se rozdˇelit do dvou kategori´ı: na zdroje, kter´e sice jsou pˇr´ıstupn´e pomoc´ı programovac´ıch rozhran´ı syst´emu Windows Phone 8, ale kter´e nejsou souˇc´ast´ı fyzick´eho zaˇr´ızen´ı, a na zdroje, pro kter´e nejsou veˇrejnˇe dostupn´e API. Do prvn´ı kategorie patˇr´ı takov´e zdroje entropie, jak´ ymi jsou pˇredn´ı kamera, gyroskop a kompas, jakoˇzto voliteln´e hardwarov´e vybaven´ı telefon˚ u. Do druh´e kategorie pak patˇr´ı napˇr. s´ıla sign´alu mobiln´ı s´ıtˇe, dostupn´a Bluetooth zaˇr´ızen´ı, nebo dostupn´e WiFi s´ıtˇe. 4.3.1
Zdroje nepodporovan´ e zaˇ r´ızen´ım
Gyroskop Tˇr´ıos´ y gyroskop zaznamen´av´a rotaci pˇr´ıstroje, v modelu HTC 8X bohuˇzel nen´ı gyroskop obsaˇzen, nelze tedy z tohoto zdroje z´ıskat ˇza´dn´a data. Funkci gyroskopu dok´aˇze do jist´e m´ıry nahradit akcelerometr, namˇeˇren´e hodnoty ovˇsem nejsou tak pˇresn´e a nˇekter´e u ´daje poskytovan´e gyroskopem u akcelerometru zcela chyb´ı. 13
ˇr dat 4. Program pro sbe Motion Aˇckoliv byl senzor pohybu zm´ınˇen jiˇz v dostupn´ ych zdroj´ıch, pro u ´plnost jej uv´ad´ım i zde, ’ nebot kv˚ uli chybˇej´ıc´ımu gyroskopu nelze z´ıskat z tohoto senzoru vˇsechny informace. 4.3.2
Zdroje, pro kter´ e nejsou API
S´ıla sign´alu Jedn´ım ze zdroj˚ u, pro kter´e nen´ı u syst´emu Windows Phone 8 zveˇrejnˇeno API, na rozd´ıl napˇr. od operaˇcn´ıho syst´emu Android , je s´ıla sign´alu. Ta by mohla slouˇzit jako zdroj entropie, jelikoˇz s´ıla sign´alu ˇcasto kol´ıs´a. Jedin´ ym u ´dajem, kter´ y je moˇzn´ y z´ıskat, je jm´eno mobiln´ıho oper´atora, ke kter´emu je telefon pˇripojen, coˇz je velmi neuˇziteˇcn´ y u ´daj pro potˇreby aplikace. Dostupn´a Bluetooth zaˇr´ızen´ı Pro program´atory jsou dostupn´e knihovny, kter´e poskytuj´ı z´akladn´ı funkˇcnost technologie Bluetooth. Jedn´a se o pˇrenos dat z aplikace, kter´a se nach´az´ı na jednom telefonu, do aplikace v druh´em telefonu, anebo o kop´ırov´an´ı soubor˚ u z aplikace na jin´e zaˇr´ızen´ı. Pro tyto u ´kony je ovˇsem nutn´e m´ıt zaˇr´ızen´ı sp´arovan´e s telefonem, coˇz se dˇeje prostˇrednictv´ım syst´emov´eho n´astroje. Nen´ı tedy moˇzn´e z´ıskat seznam zaˇr´ızen´ı se zapnutou technologi´ı Bluetooth pomoc´ı tˇechto knihoven. Dostupn´e Wifi s´ıtˇe Obdobnˇe, jako program´ator nez´ısk´a seznam Bluetooth zaˇr´ızen´ı, nen´ı schopen ani z´ıskat seznam dostupn´ ych WiFi s´ıt´ı a u ´daje o parametrech tˇechto s´ıt´ı, napˇr. nelze z´ıskat ˇza´dn´e informace o s´ıle sign´alu WiFi s´ıtˇe, ke kter´e je telefon pˇripojen.
4.4
Pˇ renos dat z mobiln´ıho telefonu do poˇ c´ıtaˇ ce
Textov´e soubory s daty se ukl´adaj´ı do Isolated Storage, coˇz je m´ısto v pamˇeti telefonu, urˇcen´e pro ˇcten´ı a z´apis dat programu. Tato sloˇzka nen´ı pˇr´ıstupn´a ostatn´ım aplikac´ım a ned´a se do n´ı dostat ani ze souborov´eho prohl´ıˇzeˇce syst´emu Windows s pˇripojen´ ym Windows Phone zaˇr´ızen´ım. Jedn´ım ze zp˚ usob˚ u, jak data z u ´loˇziˇstˇe dostat, je nahr´at je do cloudu. Toto ˇreˇsen´ı je sice univerz´aln´ı (kaˇzd´ y uˇzivatel, kter´ y s programem pracuje, m˚ uˇze tato data z´ıskat), avˇsak implementaˇcnˇe n´aroˇcn´e. Druhou variantou je pouˇzit´ı programu Isolated Storage Explorer Tool (ISETool.exe), kter´ y je dod´av´an spolu s Windows Phone 8 SDK17 . Aplikace se spouˇst´ı z pˇr´ıkazov´eho ˇr´adku a nen´ı pˇr´ıliˇs uˇzivatelsky pˇr´ıvˇetiv´a. Alternativou je pak Windows Phone Power Tools18 , kter´a jiˇz m´a i grafick´e uˇzivatelsk´e rozhran´ı a v´ıce funkc´ı. 17. Software Development Kit. 18. Dostupn´e z http://wptools.codeplex.com.
14
ˇr dat 4. Program pro sbe Oba tyto programy umoˇzn ˇuj´ı zkop´ırov´an´ı soubor˚ u z Isolated Storage do uˇzivatelsky definovan´eho adres´aˇre. Tento zp˚ usob je ovˇsem moˇzn´ y pouze u lok´alnˇe pˇreloˇzen´ ych program˚ u, nen´ı tedy moˇzn´e takto kop´ırovat data z aplikac´ı nainstalovan´ ych z distribuˇcn´ıch kan´al˚ u, nicm´enˇe pro u ´ˇcely m´eho programu je toto negativum naprosto zanedbateln´e.
15
ˇr dat 4. Program pro sbe
Obr´azek 4.1: Hlavn´ı menu aplikace.
16
ˇr dat 4. Program pro sbe
Obr´azek 4.2: Uk´azka spuˇstˇen´e aplikace – zadn´ı kamera.
17
Kapitola 5
Anal´ yza z´ıskan´ ych dat Tato kapitola pojedn´av´a o anal´ yze dat, z´ıskan´ ych z mobiln´ıho telefonu. Nejdˇr´ıve je vysvˇetlen term´ın entropie v informatice, kter´ y je v pr´aci pouˇz´ıv´an, n´aslednˇe jsou pak pops´ana a zanalyzov´ana data z jednotliv´ ych zdroj˚ u. Na konci kapitoly se nach´az´ı kr´atk´e shrnut´ı z´ıskan´ ych poznatk˚ u.
5.1
Entropie
Entropi´ı se v informaˇcn´ı teorii rozum´ı m´ıra neurˇcitosti n´ahodn´e promˇenn´e. Tu v roce 1948 definoval Claude E. Shannon jako [18]: H(X) = −
n X
p(xi ) log2 p(xi )
i=1
kde xi jsou hodnoty n´ahodn´e promˇenn´e X a p(xi ) pak pravdˇepodobnost v´ yskytu kaˇzd´e z tˇechto hodnot. B´aze logaritmu nen´ı pevnˇe dan´a a m˚ uˇze se liˇsit, v informatice se vˇetˇsinou pouˇz´ıv´a logaritmus o dvojkov´em z´akladu. Entropie potom vyjde v bitech. Takto vypoˇc´ıtan´a entropie se oznaˇcuje jako Shannonova entropie.
5.2
Anal´ yza jednotliv´ ych zdroj˚ u
Po sesb´ır´an´ı dat z jednotliv´ ych zdroj˚ u v mobiln´ım telefonu a n´asledn´ ym pˇrekop´ırov´an´ım soubor˚ u s daty do poˇc´ıtaˇce bylo tˇreba tato data analyzovat. Pro tyto u ´ˇcely jsem napsal jednoduchou konzolovou aplikaci v jazyce C#, kter´a zpracovala zadan´e textov´e soubory do seznam˚ u hodnot, vypoˇc´ıtala jejich entropii a poˇcet prvk˚ u. Pro nˇekter´e zdroje plat´ı, ˇze rozsah jejich hodnot je pouze v rozmez´ı 0–255 a mohou tedy b´ yt zak´odov´any do 8 bit˚ u, vˇzdy je to ovˇsem v textu u pˇr´ısluˇsn´eho zdroje uvedeno. Ostatn´ı zdroje pak data ukl´adaj´ı do promˇenn´ ych o alespoˇ n 32 bitech19 . Tato informace je d˚ uleˇzit´a zejm´ena proto, ˇze m´ıra entropie nem˚ uˇze pˇrekroˇcit poˇcet bit˚ u, do nichˇz je jedno ˇc´ıslo ze souboru uloˇzeno. V n´asleduj´ıc´ıch podkapitol´ach se budu podrobnˇeji vˇenovat jednotliv´ ym zdroj˚ um, pop´ıˇsu situace, za kter´ ych byla data sesb´ır´ana, pokus´ım se je ohodnotit a v tabulk´ach uvedu jednotliv´e hodnoty entropie. 19. Bud’ se jedn´ a o cel´ a ˇc´ısla typu int nebo o desetinn´a ˇc´ısla typu float.
18
´ za z´ıskany ´ ch dat 5. Analy 5.2.1
Kamery
Obˇe kamery, jak zadn´ı, tak pˇredn´ı, sb´ıraly data v tˇrech r˚ uzn´ ych reˇzimech, a to ARGB, YCbCr a Y. ARGB data jsou uchov´av´ana v 32 bitech (int). Posledn´ı dva jmenovan´e, YCbCr a Y, jsou reˇzimy, kter´e informace ukl´adaj´ı do promˇenn´ ych typu byte, tedy na 8 bit˚ u. Data byla sb´ır´ana po nˇekolik sekund za r˚ uzn´ ych podm´ınek: •
pˇri dobr´ ych sluneˇcn´ıch podm´ınk´ach venku na zahradˇe;
•
za m´ırn´eho ˇsera;
•
v pokoji za umˇel´eho osvˇetlen´ı;
•
ve vlaku za denn´ıho svˇetla;
•
pod prudk´ ym umˇel´ ym svˇetlem;
•
za u ´pln´e tmy.
Poˇc´ıt´an´ı entropie u kamery je ponˇekud obt´ıˇznˇejˇs´ı neˇz u ostatn´ıch zdroj˚ u. Jednak je to kv˚ uli mnoˇzstv´ı dat, kter´a se z kamery z´ısk´avaj´ı, a tak´e kv˚ uli tomu, ˇze kaˇzd´ y pixel m˚ uˇze m´ıt jinou entropii. Analyzoval jsem tedy malou ˇca´st obrazu a to tak, ˇze jsem pro kaˇzd´ y pixel vypoˇc´ıtal jeho entropii a do tabulky jsem zavedl nejmenˇs´ı, maxim´aln´ı a pr˚ umˇernou entropii tˇechto pixel˚ u jako celku. D´ale jsou v tabulce u ´daje o poˇctu sn´ımk˚ u a celkov´ y poˇcet prvk˚ u v souboru. Jak je z vidˇet z tabulek 5.1 a 5.2, m´ıra entropie se u kamer mnohdy podstatnˇe liˇs´ı, a to jak mezi jednotliv´ ymi podm´ınkami, tak i reˇzimy. Dobrou m´ıru entropie se podaˇrilo z´ıskat za sluneˇcn´ıho svˇetla v zahradˇe, za ˇsera a v pokoji. I v ostatn´ıch podm´ınk´ach jsou namˇeˇren´e hodnoty entropie pomˇernˇe dobr´e, ovˇsem za naprost´e tmy jsou hodnoty entropie naopak velmi n´ızk´e, kolem jednoho bitu na pixel. Dalo by se ˇr´ıci, ˇze neb´ yt ˇspatn´ ych v´ ysledk˚ u za tmy, jak pˇredn´ı, tak zadn´ı kamera by mohla b´ yt povaˇzov´ana za dobr´ y zdroj n´ahodn´ ych dat. Vzhledem ke kvalitˇe dat z´ıskan´ ych za naprost´e tmy vˇsak toto tvrdit nelze.
19
´ za z´ıskany ´ ch dat 5. Analy
Situace Zahrada ˇ Sero Pokoj Vlak Svˇetlo Tma
Min 0,455021 4,857575 0,805959 1,570951 3,130125 0
Situace Zahrada ˇ Sero Pokoj Vlak Svˇetlo Tma
Min 2,310241 3,089052 2,354075 0 2,813846 0
Situace Zahrada ˇ Sero Pokoj Vlak Svˇetlo Tma
Min 0,850243 2,947989 3,651363 0,309543 1,249460 0
Zadn´ı kamera ARGB (32 b) Max Pr˚ umˇ er 4,754888 3,859365 5,129283 5,102633 4,807355 4,193200 3,321928 2,900851 4,640225 3,681681 3,188722 0,464749 YCbCr (8 b) Max Pr˚ umˇ er 5,633211 4,375380 4,555533 3,812231 5,201839 4,231644 3,324863 1,538213 4,087462 3,910137 1,407982 0,068225 Lumino (8 b) Max Pr˚ umˇ er 5,843750 4,169160 4,544324 3,716973 5,418295 4,737850 3,794654 2,694114 4,392317 3,178855 1,134970 0,061255
Sn´ımk˚ u 27 35 28 10 30 12
Celkem 99900 129500 103600 37000 111000 44400
Sn´ımk˚ u 51 46 42 14 17 21
Celkem 188700 170200 155400 51800 62900 77700
Sn´ımk˚ u 64 44 48 18 21 18
Celkem 236800 162800 177600 66600 77700 66600
Tabulka 5.1: Entropie zadn´ı kamery.
20
´ za z´ıskany ´ ch dat 5. Analy
Situace Zahrada ˇ Sero Pokoj Vlak Svˇetlo Tma
Min 3,848082 4,993429 4,607264 0 2,040224 0
Situace Zahrada ˇ Sero Pokoj Vlak Svˇetlo Tma
Min 3,120602 3,503049 3,877781 0,391244 2,220118 0
Situace Zahrada ˇ Sero Pokoj Vlak Svˇetlo Tma
Min 3,680547 3,727032 2,300475 0,818096 3,139573 0
Pˇ redn´ı kamera ARGB (32 b) Max Pr˚ umˇ er 5,087465 4,922045 5,129283 5,124845 4,954196 4,929338 3,459432 2,728374 3,906891 3,780233 1,188722 0,036384 YCbCr (8 b) Max Pr˚ umˇ er 5,754535 4,932745 5,070441 4,173674 5,403854 4,696263 3,700439 3,112491 3,205748 2,756347 0,353359 0,001528 Lumino (8 b) Max Pr˚ umˇ er 5,998045 5,147079 5,329097 4,460532 4,801141 3,801345 4,392317 3,728073 3,906891 3,751786 0,353359 0,000096
Sn´ımk˚ u 34 35 31 11 15 12
Celkem 125800 129500 114700 40700 55500 44400
Sn´ımk˚ u 58 47 50 13 49 15
Celkem 214600 173900 185000 48100 181300 55500
Sn´ımk˚ u 73 51 53 21 15 15
Celkem 270100 188700 196100 77700 55500 55500
Tabulka 5.2: Entropie pˇredn´ı kamery. 5.2.2
Mikrofon
Podobnˇe jako u kamer v reˇzimech YCbCr a Y, i data z mikrofonu jsou ukl´ad´ana do promˇenn´ ych typu byte, tedy na 8 bit˚ u. To ovlivˇ nuje i entropii, kter´e nem˚ uˇze u ˇz´adn´eho pˇr´ıpadu pˇres´ahnout pr´avˇe hodnoty 8. To ostatnˇe dokl´ad´a i tabulka 5.3.
Data byla poˇrizov´ana za norm´aln´ıch podm´ınek, a to v´ıcekr´at, pokaˇzd´e v jin´em prostˇred´ı, d´ale byl sn´ım´an poˇc´ıtaˇcovˇe generovan´ y t´on (2000 Hz), velmi nahlas puˇstˇen´a hudba a pokusil jsem se tak´e z´ıskat hodnoty za co nejvˇetˇs´ıho ticha, jak´eho jsem byl schopen dos´ahnout. Toto ticho samozˇrejmˇe nebylo dokonal´e, nicm´enˇe i pˇres to je znateln´ y pokles m´ıry entropie v˚ uˇci ostatn´ım podm´ınk´am. St´ale se vˇsak jedn´a o pˇrijateln´e hodnoty (na rozd´ıl od kamery ve tmˇe). Mikrofon se tedy d´a pouˇz´ıt jako zdroj n´ahodn´ ych dat. 21
´ za z´ıskany ´ ch dat 5. Analy Mikrofon (8 b) Situace Entropie Norm´aln´ı podm´ınky 1 6,048604 Norm´aln´ı podm´ınky 2 6,293459 Norm´aln´ı podm´ınky 3 7,077497 Norm´aln´ı podm´ınky 4 6,722277 Jeden t´on 6,954898 Hlasit´a hudba 7,352649 Ticho 4,777453
Prvk˚ u 80000 12800 28800 76800 44800 83200 70400
Tabulka 5.3: Entropie mikrofonu. 5.2.3
Geopozice
Geopozice, jak je moˇzno vidˇet v tabulce 5.4, poskytuje srovnatelnou m´ıru entropie jako ostatn´ı zdroje, podstatnou nev´ yhodou je ovˇsem nutnost pohybu, nebot’ pˇri setrv´av´an´ı na jednom m´ıstˇe se nez´ısk´avaj´ı nov´a data. Probl´emem je takt´eˇz prodleva mezi zapnut´ım sbˇeru dat a jejich z´ısk´av´an´ım, program potˇrebuje relativnˇe dlouhou dobu20 , neˇz se geolokaˇcn´ı sluˇzby zinicializuj´ı. Data jsem z´ısk´aval za j´ızdy v autˇe, na kole, pˇri bˇehu a ch˚ uzi. V posledn´ım pˇr´ıpadˇe jsem 21 ˇsel jak delˇs´ı trasu, tak nˇekolik krok˚ u . Program pro sbˇer dat je nastaven tak, ˇze se vˇzdy snaˇz´ı z´ıskat data z co nejpˇresnˇejˇs´ıho zdroje a aktualizuje se kaˇzd´ ych 10 metr˚ u. Hlavnˇe kv˚ uli nutnosti pohybu a pˇredv´ıdatelnosti dat nejsou geolokaˇcn´ı sluˇzby vhodn´e jako zdroj n´ahodnosti. Geopozice (32 Situace Entropie Auto 7,683272 Bˇeh 6,831491 Ch˚ uze 7,147052 Kolo 7,256179 M´alo dat 5,023712
b) Prvk˚ u 2440 654 1760 3671 71
Tabulka 5.4: Entropie geopozice.
5.2.4
Akcelerometr, kompas, senzor pohybu
Data ze vˇsech tˇr´ı zdroj˚ u, tedy z akcelerometru, kompasu a senzoru pohybu, byla sb´ır´ana za tˇrech r˚ uzn´ ych podm´ınek. V prvn´ım pˇr´ıpadˇe bylo s telefonem pohybov´ano ve vˇsech tˇrech 20. Pr˚ umˇernˇe kolem 10 sekund. 21. V tabulce oznaˇceno jako M´ alo dat.
22
´ za z´ıskany ´ ch dat 5. Analy os´ach r˚ uznou rychlost´ı, ve druh´em zaˇr´ızen´ı nehybnˇe leˇzelo na desce stolu a ve tˇret´ım bylo poloˇzeno na stole v pohybuj´ıc´ım se vlaku. U akcelerometru jsem jednotlivˇe mˇeˇril entropie vˇsech smˇerov´ ych sloˇzek a ˇcasov´ ych interval˚ u mezi jednotliv´ ymi aktualizacemi stav˚ u (tabulka 5.5). Pˇredevˇs´ım v pohybu jsou namˇeˇren´e hodnoty entropie vysok´e. U kompasu jsou uvedeny hodnoty pro pˇresnost senzoru, u ´hel, kter´ y zaˇr´ızen´ı sv´ır´a se severn´ım p´olem a magnetick´e s´ıly pro jednotliv´e souˇradnice X, Y a Z (tabulka 5.6). Aˇz na pˇresnost senzoru je m´ıra entropie vˇsech sloˇzek velmi vysok´a, je ovˇsem nutn´e podotknout, ˇze hodnoty entropie jsou t´emˇeˇr identick´e. Jednotliv´e informace, kter´e lze z kompasu z´ıskat, jsou tedy zˇrejmˇe z´avisl´e jedna na druh´e. Nejvyˇsˇs´ıch hodnot entropie dosahuje senzor pohybu, nebot’ obsahuje nejv´ıce u ´daj˚ u22 (tabulka 5.7). Je to ovˇsem d´ano t´ım, ˇze na rozd´ıl od kompasu a akcelerometru nejsou mˇeˇreny entropie jednotliv´ ych sloˇzek, ale celkovˇe. V´ yhodou je, ˇze i pˇri nehybn´em zaˇr´ızen´ı jsou tyto zdroje pouˇziteln´e, nepotvrdily se tedy m´e pˇredchoz´ı obavy, ˇze by pˇr´ıstroj v nehybn´em stavu generoval st´ale stejn´a data.
Situace Pohyb Nehybn´ y Vlak
X (32 b) 6,409256 3,009930 5,055537
Akcelerometr Y (32 b) Z (32 b) 8,542671 8,018725 2,813278 2,785991 4,746693 5,529392
ˇ (32 b) Prvk˚ u Cas 7,634452 1058 7,607790 464 6,703295 254
Tabulka 5.5: Entropie akcelerometru.
Situace Pohyb Nehybn´ y Vlak
Kompas Pˇ resnost Smˇ er (32 b) X (32 b) 0,694288 9,361598 9,361598 0,455910 9,122766 9,105005 0 7,300301 7,300301
Y (32 b) 9,361598 9,108558 7,300301
Z (32 b) 9,361598 9,101453 7,300301
Prvk˚ u 662 563 159
Tabulka 5.6: Entropie kompasu.
5.2.5
Ostatn´ı zdroje
Mezi zb´ yvaj´ıc´ı zdroje patˇr´ı baterie, displej a pamˇet’. Jedn´a se o pomˇernˇe ned˚ uleˇzit´e zdroje, zejm´ena v porovn´an´ı s kamerou nebo mikrofonem, uv´ad´ım je tedy zde sp´ıˇse pro u ´plnost. Namˇeˇren´e hodnoty jsou uvedeny v tabulce 5.8. 22. Soubory pro tento zdroj je ovˇsem nutn´e upravit, nebot’ jako jedin´ y nem´a form´at, se kter´ ym pracuje program pro anal´ yzu dat, nav´ıc obsahuje i neuˇziteˇcn´e informace z chybˇej´ıc´ıho gyroskopu.
23
´ za z´ıskany ´ ch dat 5. Analy Senzor Situace Pohyb Nehybn´ y Vlak
pohybu (32 b) Entropie Prvk˚ u 12,709512 10790 12,847188 14508 10,823813 2938
Tabulka 5.7: Entropie senzoru pohybu. Stav baterie je v praxi nepouˇziteln´ y zdroj, nebot’ jsou data pˇredem zn´ama, jak moment´aln´ı kapacita baterie, tak i ˇcas do vybit´ı lze totiˇz zjistit i pˇres aplikaci obsaˇzenou v syst´emu. Data se nav´ıc aktualizuj´ı pomˇernˇe pomalu a nasb´ıran´ı rozumn´eho mnoˇzstv´ı by trvalo dlouhou dobu. V tabulce tedy tento zdroj zcela chyb´ı. U displeje jsem provedl dva sbˇery, kdy v jednom jsem se snaˇzil o co nejpravidelnˇejˇs´ı frekvenci dotyk˚ u na to sam´e m´ısto a ve druh´em o co nejvˇetˇs´ı n´ahodnost, a to jak u bodu dotyku, tak i u frekvence. Za pozornost stoj´ı zejm´ena prvnˇe jmenovan´ y pˇr´ıklad, kde je hodnota entropie pomˇernˇe vysok´a, aˇc jsem se snaˇzil dos´ahnout opaku, tedy st´ale se opakuj´ıc´ıch stejn´ ych hodnot. M˚ uˇzou za to dva faktory, jednak lidsk´ y (nejsem schopen zac´ılit pokaˇzd´e na to sam´e m´ısto se stejnou frekvenc´ı dotyk˚ u), ale tak´e i technick´ y, nebot’ displej nen´ı natolik citliv´ y a stejn´e fyzick´e m´ısto m˚ uˇze reprezentovat v´ıcero hodnotami. V pˇr´ıpadˇe n´ahodn´ ych stisk˚ u je pochopitelnˇe m´ıra entropie lepˇs´ı, aˇckoliv n´ar˚ ust nen´ı tak citeln´ y. Displej se vˇsak uk´azal jako relativnˇe dobr´ y zdroj entropie, ovˇsem pro oˇcek´avan´e chov´an´ı je potˇreba relativnˇe vysok´a m´ıra interakce s uˇzivatelem. Pamˇet’, kterou aplikace moment´alnˇe pouˇz´ıv´a, nepatˇr´ı sama o sobˇe k dobr´ ym zdroj˚ um entropie. Paradoxnˇe jsem lepˇs´ı hodnoty namˇeˇril po ˇcerstv´em startu aplikace, kde hodnota kol´ısala, neˇz po intenzivnˇejˇs´ım pouˇz´ıv´an´ı programu. V tom pˇr´ıpadˇe byla hodnota pamˇeti pomˇernˇe stabiln´ı. Vhodn´ ym pouˇzit´ım by tedy bylo mˇeˇren´ı uˇz´ıvan´e pamˇeti programu pˇri sbˇeru dat z jin´ ych zdroj˚ u, jako samostatn´ y zdroj nen´ı pamˇet’ pˇr´ıliˇs kvalitn´ı, s v´ yjimkou mˇeˇren´ı pamˇeti po spuˇstˇen´ı aplikace. Displej a pamˇ et’ Zdroj Situace Entropie Jeden bod 6,729846 Displej (32 b) N´ahodnˇe 7,974274 Po startu 1 5,979975 Po startu 2 5,341891 Pamˇet’ (32 b) Po uˇz´ıv´an´ı 1 2,807355 Po uˇz´ıv´an´ı 2 2,75
Prvk˚ u 189 261 242 163 7 8
Tabulka 5.8: Entropie displeje a pamˇeti.
24
´ za z´ıskany ´ ch dat 5. Analy
5.3
Shrnut´ı
Anal´ yza jednotliv´ ych zdroj˚ u dat uk´azala, ˇze aˇc se kamera mobiln´ıho telefonu m˚ uˇze zd´at jako ide´aln´ı zdroj entropie, v nepˇr´ızniv´ ych svˇeteln´ ych podm´ınk´ach je poˇcet r˚ uzn´ ych hodnot, kter´e lze z´ıskat, velmi n´ızk´ y, a nelze tedy kameru pˇr´ıliˇs doporuˇcit, stejnˇe jako geopozici, kde je hlavn´ı pˇrek´aˇzkou zejm´ena m´alo namˇeˇren´ ych dat pˇri nehybn´em zaˇr´ızen´ı, stejnˇe jako u pamˇeti, kterou aplikace vyuˇz´ıv´a. Naprosto nevhodn´ ym zdrojem entropie je baterie, jej´ıˇz stav se nemˇen´ı pˇr´ıliˇs ˇcasto a hodnot, kter´e jsou k dispozici, je m´alo. Naopak mikrofon lze povaˇzovat za vhodn´ y zdroj entropie, nebot’ i v tichu je n´ahodnost dat dostateˇcn´a. Akcelerometr, kompas i senzor pohybu jsou takt´eˇz vhodn´ ymi kandid´aty, i pˇri nehybn´em zaˇr´ızen´ı se generuj´ı r˚ uzn´a data. Nakonec, displej lze takt´eˇz povaˇzovat za zdroj entropie, stejnˇe, jako je tomu u z´ısk´av´an´ı entropie z myˇsi a kl´avesnice stoln´ıho poˇc´ıtaˇce nebo notebooku.
25
Kapitola 6
Z´ avˇ er T´ematem t´eto bakal´aˇrsk´e pr´ace byla anal´ yza jednotliv´ ych zdroj˚ u entropie v mobiln´ım telefonu s operaˇcn´ım syst´emem Windows Phone 8. Potˇreba generovat n´ahodn´a ˇc´ısla na mobiln´ıch zaˇr´ızen´ıch st´ale stoup´a, nebot’ chytr´e mobiln´ı telefony st´ale ˇcastˇeji zastupuj´ı funkci stoln´ıho ˇci pˇrenosn´eho poˇc´ıtaˇce a s t´ım se i zvyˇsuj´ı n´aroky na zabezpeˇcen´ı zaˇr´ızen´ı a jeho komunikace s okol´ım (napˇr. e-mail nebo bankovn´ı aplikace). C´ılem pr´ace tedy bylo prozkoumat moˇzn´e zdroje entropie u pˇr´ıstroje s operaˇcn´ım syst´emem Windows Phone 8, z´ıskat z dostupn´ ych zdroj˚ u data a ty vyuˇz´ıt pˇri odhadu entropie. Praktick´a ˇca´st pr´ace spoˇc´ıvala v naps´an´ı programu, kter´ y n´ahodn´a data sb´ır´a a analyzuje. Uk´azalo se, ˇze nˇekter´e zdroje, jako napˇr´ıklad mikrofon ˇci akcelerometr, lze pouˇz´ıt pro potˇreby gener´ator˚ u pseudon´ahodn´ ych ˇc´ısel. Naproti tomu kamera, kter´a slibovala velkou m´ıru entropie, nen´ı vzhledem k chov´an´ı v nepˇr´ızniv´ ych svˇeteln´ ych podm´ınk´ach pˇr´ıliˇs pouˇziteln´a. Vhodn´ ym nav´az´an´ım na tuto pr´aci by tedy byla implementace nˇekter´ ych gener´ator˚ u s vyuˇzit´ım zdroj˚ u, jeˇz jsou v t´eto pr´aci pops´any. Druh´ ym smˇerem, kter´ ym je moˇzn´e se d´ale vydat, je pak prozkoum´an´ı zdroj˚ u entropie u zaˇr´ızen´ı typu Tablet PC nevyuˇz´ıvaj´ıc´ı operaˇcn´ı syst´em Windows Phone 8, n´ ybrˇz syst´em Windows 8, kter´ y je urˇcen i pro stoln´ı poˇc´ıtaˇce a m´a bohatˇs´ı knihovnu funkc´ı, popˇr´ıpadˇe anal´ yza nˇekter´e z konkurenˇcn´ıch platforem, jak´ ymi jsou Android ˇci iOS.
26
Literatura ´ Jan. Cryptographic random and pseudorandom data generators [online]. [1] KRHOVJAK, 2009 [cit. 2013-04-21]. Disertaˇcn´ı pr´ace. Masarykova univerzita, Fakulta informatiky. Vedouc´ı pr´ace V´aclav Maty´aˇs. Dostupn´e z:
. ´ RECK ˇ ´ Pavel. Gener´atory pseudon´ahodn´ych ˇc´ısel v prostˇred´ı mobiln´ıch [2] ZA Y, telefon˚ u [online]. 2008 [cit. 2013-04-21]. Bakal´aˇrsk´a pr´ace. Masarykova univerzita, Fakulta informatiky. Vedouc´ı pr´ace Jan Krhovj´ak. Dostupn´e z:
. [3] FOLEY, Mary Jo. Microsoft’s Windows Phone 8 finally gets a real“ Windows core [online]. 2012 [cit. 2013-04-13]. Dostupn´e z: ”
. [4] LITCHFIELD, Steve. Nokia’s new strategy and structure, Symbian to be a franchise ” platform“, MeeGo still in long term plans [online]. 2011 [cit. 2013-04-13]. Dostupn´e z:
. [5] ANKENY, Jason. Samsung scraps Bada OS, folds it into Tizen [online]. 2013 [cit. 2013-04-13]. Dostupn´e z:
. [6] REED, Brad. Android’s steady march to 1 billion activations gets visualized [online]. 2013 [cit. 2013-04-13]. Dostupn´e z:
. [7] DE VERE, Kathleen. Android surges as iOS slows – comparing the growth of Android to iOS [online]. 2012 [cit. 2013-04-13]. Dostupn´e z:
. [8] MOLEN, Brad. Windows Phone 8 review [online]. 2012 [cit. 2013-04-14]. Dostupn´e z:
. [9] PETZOLD, Charles. Programming Windows Phone 7. Redmond : Microsoft Press, 1. vyd´an´ı, 2010. ISBN 978-0-7356-4335-2. 27
´ ve ˇr 6. Za [10] System requirements for Windows Phone Emulator [online]. 2013 [cit. 2013-04-14]. Dostupn´e z:
. [11] MENEZES, Alfred J. Handbook of applied cryptography. Vyd. 1. Boca Raton: CRC Press, 1997, 780 s. ISBN 08-493-8523-7. [12] KNUTH, Donald Ervin. The art of computer programming. 3rd ed. Upper Saddle River: Addison-Wesley, c1998, xiii, 762 s. ISBN 02-018-9684-2. [13] Metoda Monte Carlo. In: Wikipedia: the free encyclopedia [online]. San Francisco (CA): Wikimedia Foundation, 2001- [cit. 2013-03-10]. Dostupn´e z: . ˇ CKA, ˇ [14] R˚ UZI Rudolf. Vyuˇzit´ı samoˇcinn´ych poˇc´ıtaˇc˚ u pˇri vzniku umˇeleck´ych dˇel se zvl´aˇstn´ım zamˇeˇren´ım na hudbu a soudobou hudebn´ı kompozici [online]. 1980 [cit. 201303-10]. Dostupn´e z: . ˇ ´ Petr. Pˇr´ınosy postup˚ [15] KUBENSK Y, u experiment´aln´ı poezie pro rozv´ıjen´ı liter´arn´ıch kompetenc´ı [online]. 2010 [cit. 2013-03-10]. Bakal´aˇrsk´a pr´ace. Masarykova univerzita, Fakulta soci´aln´ıch studi´ı. Vedouc´ı pr´ace Zbynˇek Fiˇser. Dostupn´e z: . [16] WALKER, John. HotBts: Genuine random numbers, generated by radioactive decay [online]. 1996 [cit. 2013-03-12]. Dostupn´e z: . [17] MIKULKA , Zdenˇek. Gener´atory n´ahodn´ych ˇc´ısel [online]. 2008 [cit. 201303-14]. Bakal´aˇrsk´a pr´ace. Vysok´e uˇcen´ı technick´e, Fakulta elektrotechniky a komunikaˇcn´ıch technologi´ı. Vedouc´ı pr´ace V´aclav Zeman. Dostupn´e z: . [18] SHANNON, Claude Elwood. A Mathematical Theory of Communication. The Bell System Technical Journal, July 1948, vol. 27, no. 3, s. 379–423.
28
Pˇ r´ıloha A
Obsah pˇ riloˇ zen´ eho CD Souˇc´ast´ı t´eto pr´ace je tak´e pˇriloˇzen´e CD. Obsahuje •
zdrojov´ y k´od bakal´aˇrsk´e pr´ace ve form´atu LATEX (bc tex) a hotovou pr´aci ve form´atu pdf;
•
zdrojov´e k´ody aplikace pro z´ısk´av´an´ı entropie z telefonu pro platformu Windows Phone 8 (Entropy extractor zdrojove kody);
•
zdrojov´e k´ody aplikace pro vypoˇc´ıt´an´ı entropie ze soubor˚ u z´ıskan´ ych z aplikace Entropy extractor (Entropy calculator zdrojove kody);
•
zkompilovanou verzi programu Entropy calculator pro operaˇcn´ı syst´em Windows spolu se soubory z´ıskan´ ymi z programu Entropy extractor (Entropy calculator spustitelna verze).
29