Rychlost kryptografick´ ych operac´ı na mobiln´ıch telefonech Martin Tˇehan Fakulta informatiky, Masarykova univerzita, Botanick´ a 68a, 602 00, Brno
[email protected]
Abstrakt Pr´ ace se zab´ yv´ a moˇznostmi v´ yvoje kryptografick´ ych aplikac´ı ´ pro mobiln´ı telefony. Uvodn´ ı ˇca ´st pod´ av´ a struˇcn´ y pˇrehled o moˇznostech softwarov´eho v´ yvoje na mobiln´ıch telefonech obecnˇe, pˇr´ıstroje jsou kategorizov´ any dle pouˇz´ıvan´eho operaˇcn´ıho syst´emu. Zvl´ aˇstn´ı ˇca ´st je vˇenov´ ana Javˇe ME, kter´ a je do urˇcit´e m´ıry na operaˇcn´ım syst´emu nez´ avisl´ a. V souvislosti s n´ı je uvedena i univerz´ aln´ı kryptografick´ a knihovna BouncyCastle. N´ asleduje popis testovac´ı aplikace, v´ yˇcet algoritm˚ u a rozbor parametr˚ u jednotliv´ ych test˚ u. Namˇeˇren´e v´ ysledky jsou pouze slovnˇe komentov´ any, nebot’ mnoˇzstv´ı namˇeˇren´ ych dat pˇrevyˇsuje rozsah tohoto pˇr´ıspˇevku.
Kl´ıˇ cov´ a slova: mobiln´ı telefon, kryptografie, Java ME, test v´ ykonu
1
´ Uvod
Mobiln´ı telefon se stal ned´ılnou souˇc´ast´ı naˇsich ˇzivot˚ u a v z´apadn´ı civilizaci ho vlastn´ı prakticky kaˇzd´ y ˇclovˇek v produktivn´ım vˇeku. Skuteˇcnost, ˇze je jeden mobiln´ı telefon vˇetˇsinou pevnˇe sv´az´an s jednou konkr´etn´ı osobou, pˇr´ımo vnucuje myˇslenku, pouˇz´ıt ho k identifikaci, ˇci dokonce autentizaci dan´e osoby. K tomu je ale potˇreba, aby byly splnˇeny nˇekter´e pˇredpoklady. Jedn´ a se zejm´ena o dostateˇcnou v´ ykonnost nosn´eho hardwaru, moˇznost interakce s okol´ım a uˇzivatelsky pˇr´ıvˇetivou instalaci a n´ asledn´e pouˇz´ıv´ an´ı aplikace, kter´a by toto zajiˇst’ovala. V t´eto pr´ aci si kladu za c´ıl prozkoumat moˇznosti pouˇzit´ı kryptografie na mobiln´ıch telefonech z pozice bˇeˇzn´eho program´atora. Chtˇel bych podat pˇrehledn´ y souhrn toho, co kter´a platforma nab´ız´ı a poskytnout jasn´e srovn´ an´ı v´ ykonnosti jednotliv´ ych mobiln´ıch zaˇr´ızen´ı. Pr´ ace je rozdˇelena do dvou ˇc´ast´ı. Prvn´ı ˇc´ast pˇredstavuje moˇznosti v´ yvoje na mobiln´ıch telefonech. Kromˇe obecn´eho popisu v´ yvoje aplikac´ı pro danou platformu jsem se snaˇzil naj´ıt a popsat r˚ uzn´e knihovny, kter´e maj´ı zjednoduˇsit pouˇzit´ı kryptografie pro dan´e zaˇr´ızen´ı.
Ve druh´e ˇc´ asti se pak vˇenuji samotn´e podstatˇe svoj´ı pr´ace, tj. popisu testovac´ı aplikace a publikaci namˇeˇren´ ych v´ ysledk˚ u. Teoreticky jsem se op´ıral o zp˚ usob, jak´ ym B. Schneier a D. Whiting testovali rychlost finalisty pˇri vyb´ır´ an´ı AES [8]. Bohuˇzel jsem nemˇel k dispozici zaˇr´ızen´ı, kter´ ym bych mˇeˇril rychlost operac´ı na poˇcet cykl˚ u procesoru a musel jsem se spokojit s mˇeˇren´ım ˇcasov´eho u ´seku v milisekund´ach.
2
Programov´ an´ı pro mobiln´ı telefony
Vzhledem k tomu, ˇze mobiln´ı telefon je pomˇernˇe ˇsirok´ y pojem, nelze pron´ aˇset generalizuj´ıc´ı v´ yroky, co je a co nen´ı moˇzn´e. Nejjednoduˇs´ı zp˚ usob, jak mobiln´ı telefony alespoˇ n ˇc´asteˇcnˇe kategorizovat, je podle pouˇzit´eho operaˇcn´ıho syst´emu. Ten totiˇz tvoˇr´ı z´akladn´ı program´atorskou platformu a od nˇej se odv´ıj´ı moˇznosti dan´eho zaˇr´ızen´ı. Pˇred popisem ˇreˇsen´ı pro jednotliv´e operaˇcn´ı syst´emy se budu vˇenovat univerz´aln´ı platformˇe Java ME a pro ni napsan´ ym knihovn´am. 2.1
Java ME (Java Platform, Micro Edition)
Java ME je platforma pro v´ yvoj aplikac´ı na mobiln´ıch zaˇr´ızen´ıch. Jedn´a se o kolekci technologi´ı a specifikac´ı pro mobiln´ı zaˇr´ızen´ı, kter´e mohou b´ yt vz´ ajemnˇe kombinov´ any tak, aby poskytly z´aklad pro v´ yvoj aplikac´ı na m´ıru hardwarov´ ym omezen´ım konkr´etn´ıho zaˇr´ızen´ı. Podle rychlosti CPU, mnoˇzstv´ı operaˇcn´ı pamˇeti a podle moˇznost´ı pˇripojen´ı rozliˇsujeme dvˇe b´azov´e konfigurace, kaˇzdou z nich m˚ uˇze rozˇsiˇrovat jeden nebo v´ıce profil˚ u. V souˇcasn´e dobˇe je Java ME podporov´ana drtivou vˇetˇsinou mobiln´ıch zaˇr´ızen´ı a to bud’ pˇr´ımo, nebo pomoc´ı virtu´aln´ıho stroje dodan´eho tˇret´ı stranou. Connection Limited Device Configuration (CLDC). Konfigurace, kter´a je vhodn´ a pro mobiln´ı telefony a PDA s malou operaˇcn´ı pamˇet´ı [5]. Vyˇzaduje 160 kB ROM a 32 kB RAM. Ke konfiguraci CLDC se v´aˇzou profily Mobile Information Device Profile (MIDP) a Information Module Profile (IMP). Connected Device Configuration (CDC). Tato konfigurace je vhodn´a pro mobiln´ı zaˇr´ızen´ı disponuj´ıc´ı relativnˇe vysok´ ym v´ ykonem [4]. Pˇredpokl´ad´a se 32bitov´ y procesor a vyuˇziteln´ ych 2 MB RAM a 2,5 MB ROM. Pouˇz´ıv´a profily Foundation Profile (FP), Personal Basis Profile (PBP) a Personal Profile (PP).
Security and Trust Services API for J2ME. Voliteln´e API (JSR 177), kter´e rozˇsiˇruje Javu ME o podporu bezpeˇcnostn´ıch prvk˚ u a poskytuje rozhran´ı pro spr´ avu digit´ aln´ıch podpis˚ u a implementaci kryptografick´ ych operac´ı. D´ ale poskytuje podporu pro JavaCards. J´adrem API jsou bal´ıky java.security a javax.crypto obsahuj´ıc´ı tˇr´ıdu Cipher, kter´a se star´a o samotn´e ˇsifrov´ an´ı / deˇsifrov´an´ı. 2.2
Bouncy Castle
Nejrozˇs´ıˇrenˇejˇs´ı kryptografick´a knihovna, kter´a je dostupn´a v jazyc´ıch Java a C# [3]. Poskytuje implementace vˇsech bˇeˇzn´ ych kryptografick´ ych algoritm˚ u a protokol˚ u (openPGP a x509 nevyj´ımaje). Javov´a implementace se skl´ ad´ a ze dvou hlavn´ıch ˇc´ast´ı, JCE poskytovatele a odlehˇcen´eho API, kter´e je pouˇziteln´e na jak´ekoliv Javov´e platformˇe. Pr´avˇe odlehˇcen´e API m˚ uˇze b´ yt s u ´spˇechem vyuˇzito i pˇri programov´an´ı aplikac´ı pro mobiln´ı telefony. Nejen, ˇze zpˇr´ıstupˇ nuje cel´ y bal´ık org.bouncycastle.*, ale t´eˇz pˇrid´ av´ a do Javy ME nˇekter´e tˇr´ıdy bal´ıku java.util a java.math, kter´e jsou bˇeˇzn´e na vyˇsˇs´ıch platform´ach, ale do specifikace Java ME se nedostaly. V tomto smˇeru je nejvˇetˇs´ım pˇr´ınosem knihovny Bouncy Castle implementace tˇr´ıdy BigInteger pro velk´a cel´a ˇc´ısla. 2.3
Propriet´ arn´ı operaˇ cn´ı syst´ em
Uzavˇren´ y operaˇcn´ı syst´em bez moˇznosti v´ yvoje aplikac´ı tˇret´ımi stranami. Tyto operaˇcn´ı syst´emy jsou ps´any na m´ıru dan´emu zaˇr´ızen´ı (maxim´alnˇe rodinˇe zaˇr´ızen´ı) bez moˇznosti pˇrenosu na jin´ y hardware. Kolem roku 2000 se zaˇc´ın´ a objevovat integrovan´a podpora pro r˚ uzn´e technologie, kter´e by umoˇzn ˇovaly instalaci vlastn´ıho softwaru, hlavnˇe her. V t´e dobˇe si z´ıskaly nejvˇetˇs´ı popularitu Mophun, In-Fusio, N-Gage a v´ yˇse zm´ınˇen´a Java ME. Zat´ımco Java ME je dnes dostupn´a prakticky na kaˇzd´em zaˇr´ızen´ı, ty zb´ yvaj´ıc´ı jsou vpodstatˇe mrtv´e. 2.4
Symbian
Operaˇcn´ı syst´em, kter´ y byl od konce osmdes´at´ ych let vyv´ıjen spoleˇcnost´ı Psion pod jm´enem EPOC [9]. V ˇcervnu 1998 do Psionu vstupuj´ı v´ yrobci mobil˚ u Nokia, Motorola a Ericsson a doch´az´ı k pˇrejmenov´an´ı OS na Symbian. Postupn´ ym v´ yvojem se od sebe oddˇelilo nˇekolik platforem, z nichˇz kaˇzd´ a poskytuje vlastn´ı SDK a vz´ajemnˇe nejsou plnˇe kompatibiln´ı. Mezi nejzn´ amˇejˇs´ı patˇr´ı UIQ a S60. Nativn´ım jazykem pro v´ yvoj aplikac´ı na Symbianu je dialekt C++. Mezi dalˇs´ı podporovan´e jazyky lze zaˇradit Javu ME, Python, .NET a standardn´ı C/C++.
Symbian Cryptographic API. Poskytuje z´akladn´ı kryptografick´e sluˇzby pro vyuˇzit´ı skrze z´ akladn´ı rozhran´ı Symbian OS. Je rozdˇeleno do nˇekolika z´ akladn´ıch oblast´ı: Symetrick´e ˇsifrov´an´ı, asymetrick´e ˇsifrov´an´ı, kontrola integrity a ovˇeˇrov´ an´ı podpis˚ u, v´ ymˇena kl´ıˇc˚ u a otisky zpr´av. Podporuje pouze z´ akladn´ı blokov´e m´ody ECB a CBC, paddingy m˚ uˇzeme vyb´ırat mezi standardy PKCS#1 v1.5 pro ˇsifrov´an´ı a pro podepisov´an´ı, PKCS#7/TLS, nebo SSLv3/TLS. Poˇcet implementovan´ ych algoritm˚ u je pomˇernˇe omezen´ y, nicm´enˇe je schopen uspokojit vˇetˇsinu poˇzadavk˚ u. 2.5
Windows
Microsoft dod´ av´ a vlastn´ı operaˇcn´ı syst´em pro chytr´e mobiln´ı telefony, zaloˇzen´ y na Windows CE. P˚ uvodnˇe se jmenoval Pocket PC, od roku 2003 je vyd´ av´ an pod n´ azvem Windows Mobile. V´ yvoj aplikac´ı v C++ je umoˇznˇen pomoc´ı SDK, kter´e spolupracuje s MS Visual Studiem. V posledn´ı dobˇe je umoˇznˇen i v´ yvoj za pomoci n´astroj˚ u tˇret´ıch stran, kter´e vyuˇz´ıvaj´ı moˇznost´ı .NET Compact Frameworku [6]. Nativn´ı podpora Javy chyb´ı, nicm´enˇe existuje nˇekolik r˚ uzn´ ych virtu´aln´ıch stroj˚ u, kter´e lze na Windows Mobile nainstalovat. 2.6
Android
Android je platforma pro mobiln´ı zaˇr´ızen´ı obsahuk´ıc´ı operaˇcn´ı syst´em a z´ akladn´ı aplikace [1]. Byl pˇredstaven firmou Google v roce 2007. Operaˇcn´ı syst´em Androidu je zaloˇzen na Linuxu, v´ yvoj aplikac´ı prob´ıh´a v jazyce Java. Android k tomuto u ´ˇcelu poskytuje vlastn´ı SDK. To obsahuje vlastn´ı tˇr´ıdy pro uˇzivatelsk´e rozhran´ı a komunikaci. V´ yvoj kryptografick´ ych aplikac´ı pro tuto platformu je podpoˇren standardn´ımi Javov´ ymi bal´ıky java.security a javax.crypto [2]. V tomto ohledu se tvorba aplikac´ı neliˇs´ı od v´ yvoje nad Javou SE. S u ´spˇechem lze vyuˇz´ıt i javov´ ych kryptografick´ ych knihoven dodan´ ych tˇret´ı stranou, jako napˇr´ıklad jiˇz popisovanou knihovnu BouncyCastle. 2.7
iPhone OS
Operaˇcn´ı syst´em firmy Apple odvozen´ y od OS X, kter´ y je pouˇzit v Apple iPhone a Apple iPod Touch [7]. Aˇz do zaˇc´atku roku 2008 iPhone OS nepodporoval aplikace tˇret´ıch stran. V bˇreznu 2008 vyˇslo prvn´ı SDK, kter´e v´ yvoj umoˇzn ˇovalo. I tak z˚ ust´av´a vyd´av´an´ı aplikac´ı pro iPhone OS sv´ az´ ano striktn´ı politikou Applu. Aplikace jsou ps´any v jazyce ObjectiveC. To umoˇzn ˇuje pouˇzit´ı standardn´ıch knihoven pro C. Na rozd´ıl od jin´ ych
otevˇren´ ych platforem iPhone OS nepodporuje aplikace napsan´e v ˇz´adn´em jin´em jazyce.
3
Naprogramovan´ a aplikace
Aplikace je naps´ ana v jazyce Java pro platformu Java ME. Tato technologie byla zvolena z d˚ uvodu bezkonkurenˇcnˇe nejvˇetˇs´ıho rozˇs´ıˇren´ı na mobiln´ıch telefonech. Pokles v´ ykonu zp˚ usoben´ y reˇzi´ı JVM n´am nezb´ yv´a neˇz akceptovat, jelikoˇz JVM na mobiln´ıch telefonech b´ yv´a pevnou souˇc´ast´ı operaˇcn´ıho syst´emu. Jednoduch´eho midlet provede pˇr´ısluˇsn´e testy a jejich v´ ysledky vyp´ıˇse na obrazovku. Pouˇzit´ a konfigurace je CLDC 1.0 spoleˇcnˇe s profilem MIDP 2.0. O kryptografick´e operace se star´a knihovna Bouncy Caste 1.43 v odlehˇcen´e verzi pro mobiln´ı Javu. Sony Ericsson T630 jako jedin´ y v testu nepodporuje profil MIDP ve verzi 2.0, proto pro nˇej byla aplikace sestavena za pouˇzit´ı profilu MIDP 1.0. J´ adro aplikace tvoˇr´ı testovac´ı metody, kter´e mˇeˇr´ı d´elku trv´an´ı jednotliv´ ych operac´ı. Hlavn´ımi testovan´ ymi okruhy jsou symetrick´e blokov´e i proudov´e ˇsifry, asymetrick´e ˇsifry, generov´an´ı pseudon´ahodn´ ych ˇc´ısel, podepisov´ an´ı, haˇsovac´ı funkce a generov´an´ı kl´ıˇc˚ u. Testy symetrick´ ych ˇsifer a haˇsovac´ıch algoritm˚ u prob´ıhaj´ı ve v´ıce kolech na vstupn´ıch datech o r˚ uzn´ ych velikostech. Zvoleny byly vstupy o d´elce 1 KB, 10 KB a 400 KB. Horn´ı hranice 400 KB byla vybr´ana s ohledem na bˇeˇznou velikost mobiln´ıch aplikac´ı. Pro zajiˇstˇen´ı objektivity se vˇsechny testy, pˇri kter´ ych se pracuje s kl´ıˇci nebo jin´ ymi vstupn´ımi daty opakov´any s deseti r˚ uzn´ ymi kl´ıˇci a v´ ysledn´ y ˇ je mˇeˇren pouze na skuteˇcnˇe testoˇcas je souˇctem ˇcas˚ u vˇsech pokus˚ u. Cas van´e operaci, tj. aˇz po naˇcten´ı vˇsech potˇrebn´ ych dat do pamˇeti, vygenerov´ an´ı kl´ıˇc˚ u a inicializaci ˇsifrovac´ı funkce (pokud pr´avˇe toto nen´ı souˇc´ast´ı testu). Vˇsechny v´ ysledn´e ˇcasy jsou ud´av´any v milisekund´ach. Pokud dan´a tˇr´ıda neumoˇzn ˇuje vygenerov´an´ı vˇsech parametr˚ u ˇsifry ˇci podpisov´eho algoritmu n´ ahodnˇe a ˇz´ ad´ a zad´an´ı inicializaˇcn´ıch dat, jsou pouˇzity hodnoty z testovac´ıch tˇr´ıd bal´ıku org.bouncycaste.crypto.test. V´ yjimku z popsan´eho tvoˇr´ı asymetrick´e ˇsifry a podpisov´e algoritmy. Z u ´sporn´ ych d˚ uvod˚ u se pro nˇe generuje pouze jeden p´ar kl´ıˇc˚ u.
3.1
Generov´ an´ı pseudon´ ahodn´ ych ˇ c´ısel
Mˇeˇr´ı se ˇcas vygenerov´ an´ı jednoho sta pseudon´ahodn´ ych ˇc´ısel datov´eho typu long. Gener´ ator vyuˇz´ıv´a haˇsovac´ı funkce SHA-1. Jako sem´ınko slouˇz´ı syst´emov´ y ˇcas. 3.2
Testov´ an´ı rychlosti otisk˚ u
Testov´ any jsou algoritmy MD5, Whirlpool, Tiger, SHA-1 a vˇsechny ˇctyˇri algoritmy SHA-2. S kaˇzd´ ym vstupn´ım textem je provedeno deset haˇsov´an´ı, vstupn´ı text je desetkr´ at obmˇenˇen. V´ ysledn´ y ˇcas tedy ud´av´a trv´an´ı jednoho sta pr˚ ubˇeh˚ u dan´e haˇsovac´ı funkce. 3.3
Testov´ an´ı rychlosti symetrick´ ych blokov´ ych ˇ sifer
V t´eto ˇc´ asti se zab´ yv´ am mˇeˇren´ı rychlosti n´asleduj´ıc´ıch symetrick´ ych blokov´ ych ˇsifer: AES, DES, dvoukl´ıˇcov´ y TripleDES, Blowfish a Twofish, d´ale pak IDEA a Serpent. Se stejn´ ymi vstupn´ımi daty (otevˇren´ y text, tajn´ y kl´ıˇc, pˇr´ıpadnˇe i inicializaˇcn´ı vektor) je provedeno deset opakov´an´ı, vstupn´ı ˇ data jsou opˇet desetkr´ at obmˇenˇena. Sifrov´ an´ı i deˇsifrov´an´ı je mˇeˇreno zvl´ aˇst’. Nen´ı pouˇzit ˇz´ adn´ y padding. Vˇsechny blokov´e ˇsifry jsou testov´any v operaˇcn´ıch m´ odech ECB, CBC a OFB. Vˇsechny ˇsifry kromˇe DES a TripleDES pouˇz´ıvaj´ı kl´ıˇc o d´elce 128 bit˚ u. 3.4
Testov´ an´ı rychlosti symetrick´ ych proudov´ ych ˇ sifer
Pouˇz´ıv´ a ˇsifry RC4 a Salsa20. Stejnˇe jako v pˇredchoz´ım pˇr´ıpadˇe se mˇeˇr´ı ˇcas jednoho sta opakov´ an´ı, pˇriˇcemˇz vˇzdy po deseti cyklech dojde k vygenerov´ an´ı nov´ ych vstupn´ıch dat. Opˇet jsou v´ ysledky pro ˇsifrov´an´ı a deˇsifrov´ an´ı uv´ adˇeny zvl´ aˇst’. 3.5
Testov´ an´ı rychlosti asymetrick´ ych blokov´ ych ˇ sifer
Mˇeˇr´ı rychlost ˇsifer RSA a ElGamal. Samostatnˇe je testov´ana ˇsifra RSA ˇ ınsk´e vˇety o zbytku. Testov´an´ı se prov´ad´ı zvl´aˇst’ pro ˇsifrov´an´ı s vyuˇzit´ım C´ a deˇsifrov´ an´ı. Vzhledem k tomu, ˇze RSA umoˇzn ˇuje pouˇz´ıt stejn´ y p´ar kl´ıˇc˚ u i k podepisov´ an´ı, je v tomto pˇr´ıpadˇe zmˇeˇren i ˇcas potˇrebn´ y k podepiˇ sov´ an´ı a ovˇeˇrov´ an´ı podpisu. D´elka kl´ıˇc˚ u je 1024 bit˚ u. Sifra RSA je v obou pˇr´ıpadech implementov´ ana dle standardu PKCS#1. Asymetrick´e ˇsifry testov´any pro 256bitov´ y otevˇren´ y text, coˇz je v souˇcasnosti ˇcasto pouˇz´ıvan´a d´elka kl´ıˇc˚ u pro symetrickou kryptografii a tak´e d´elka v´ ystupu funkce SHA-256. Stejn´a d´elka dat je pouˇzita na vstupu algoritm˚ u digit´ aln´ıho podpisu.
3.6
Testov´ an´ı rychlosti podpisovac´ıch algoritm˚ u
K otestov´ an´ı byl zvolen algoritmus DSA. Testuje se za stejn´ ych podm´ınek jako u asymetrick´ ych blokov´ ych ˇsifer, opˇet prob´ıh´a deset kol podepisov´an´ı nad 256bitov´ ymi daty. 3.7
Generov´ an´ı kl´ıˇ c˚ u
Testov´ an´ı prob´ıh´ a nad kl´ıˇci pro RSA, DSA a ElGamal. Pokud generovan´e kl´ıˇce z´ avis´ı na velik´ ych prvoˇc´ıslech spokoj´ıme se s osmdes´atiprocentn´ı pravdˇepodobnost´ı pˇri statistick´ ych testech, ˇze vygenerovan´a hodnota je prvoˇc´ıslo. Z´ akladn´ımi generovan´ ymi velikostmi jsou 512, 768, 1024 a 2048 bit˚ u. Z d˚ uvod˚ u velk´e ˇcasov´e n´aroˇcnosti nˇekter´ ych generov´an´ı nemus´ı b´ yt nutnˇe testov´ any vˇsechny d´elky pro kaˇzd´ y algoritmus. Funkce generuj´ıc´ı kl´ıˇce pro RSA vyˇzaduje v parametru zad´an´ı pˇredgenerovan´eho e, jehoˇz generov´ an´ı nen´ı souˇc´ ast´ı test˚ u.
4
V´ ysledky mˇ eˇ ren´ı
Obr´ azek 1. Haˇsovac´ı funkce pro vstup 10240 bit˚ u.
Proveden´ a mˇeˇren´ı jasnˇe prokazuj´ı, ˇze souˇcasn´e mobiln´ı telefony poskytuj´ı dostateˇcn´ y v´ ykon k tomu, abychom je mohli pouˇz´ıvat k ˇsifrov´an´ı a podepisov´ an´ı. Na solidn´ı u ´rovni je rychlost haˇsovac´ıch funkc´ı, ale generov´ an´ı kl´ıˇc˚ u st´ ale potˇrebuje vyˇsˇs´ı v´ ykon, neˇz mu mohou mobiln´ı telefony
nab´ıdnout. V n´ asleduj´ıc´ım textu rozeberu dosaˇzen´e v´ ysledky podrobnˇeji, nejprve podle testovan´ ych operac´ı, pot´e podle jednotliv´ ych mobiln´ıch telefon˚ u.
Obr´ azek 2. Generov´ an´ı pseudon´ ahodn´ ych ˇc´ısel.
U haˇsovac´ıch funkc´ı z´aleˇz´ı na volbˇe algoritmu a pouˇzit´e implementaci jak je vidˇet z obr. 1. Obecnˇe se d´a ˇr´ıci, ˇze algoritmy SHA-2 poskytuj´ı dostateˇcnou bezpeˇcnost pˇri zachov´an´ı pomˇernˇe vysok´e rychlosti. Pˇrekvapivˇe, algoritmus SHA-1 byl na polovinˇe platforem nˇekolikan´asobnˇe pomalejˇs´ı neˇz jeho n´ asledovn´ıci. Ani kdysi velmi popul´arn´ı algoritmus MD5 nikterak nevyˇcn´ıval a rychlostnˇe byl srovnateln´ y s SHA-2. Na nˇekter´ ych mobiln´ıch telefonech znaˇcky Sony Ericsson bˇeˇzel velmi pomalu algoritmus SHA-224, pˇr´ıˇcinu se nepodaˇrilo odhalit. ˇ Sifrov´ an´ı a deˇsifrov´ an´ı symetrick´ ymi ˇsiframi probˇehlo podle oˇcek´av´an´ı. U ˇz´ adn´e z nich se neprojevil rozd´ıl mezi rychlost´ı ˇsifrov´an´ı a deˇsifrov´an´ı, nejrychlejˇs´ım operaˇcn´ım m´odem byl nejjednoduˇsˇs´ı ECB. M´ody CBC a OFB jsou srovnatelnˇe rychl´e a pr˚ ubˇeh ˇsifrov´an´ı zpomaluj´ı pˇribliˇznˇe o 10 % ˇ oproti ECB. Sifry Blowfish a Twofish se projevily jako stejnˇe v´ ykonn´e. Generov´ an´ı pseudon´ ahodn´ ych ˇc´ısel neˇcin´ı probl´em ani tˇem nejpomalejˇs´ım telefon˚ um v testu (viz obr. 2), zb´ yv´a vyˇreˇsit z´ısk´av´an´ı a dod´an´ı kvalitn´ıho kryptografick´eho materi´alu jako sem´ınka. Na 256bitov´em vstupn´ım textu se u algoritmu RSA vˇetˇsina mobiln´ıch telefon˚ u dostala na ˇcasy kolem dvou vteˇrin pˇri pr´aci se soukrom´ ym kl´ıˇcem ˇ ınsk´e vˇety a pod p˚ ul vteˇriny pˇri pr´ aci s kl´ıˇcem veˇrejn´ ym bez pouˇzit´ı C´ o zbytku. Jej´ı pouˇzit´ı zrychlilo ˇsifrov´an´ı aˇz pades´atin´asobnˇe, coˇz jsou
Obr´ azek 3. Generov´ an´ı RSA kl´ıˇc˚ u.
z uˇzivatelsk´eho hlediska jiˇz akceptovateln´e hodnoty. V tˇechto testech propadl pouze ˇsest let star´ y Sony Ericsson T630 a na hranˇe vyuˇzitelnosti se ocitla st´ ale velmi obl´ıben´ a Nokia 6230i s deseti vteˇrinami pro operace se soukrom´ ym a tˇremi vteˇrinami pro pr´aci s veˇrejn´ ym kl´ıˇcem. St´ ale se stav´ım skepticky k moˇznosti generovat kl´ıˇce pˇr´ımo na mobiln´ıch telefonech s odkazem na velkou ˇcasovou n´aroˇcnost tohoto probl´emu (obr. 3). Re´ aln´e hodnoty pro generov´an´ı v praxi pouˇziteln´ ych kl´ıˇc˚ u budou pravdˇepodobnˇe mnohem vyˇsˇs´ı neˇz namˇeˇren´e kv˚ uli pouˇzit´ ym parametr˚ um, kter´e nezaruˇcuj´ı vygenerov´an´ı kvalitn´ıho kl´ıˇce. K takto kategorick´emu soudu jsem ale mˇel i jin´ y d˚ uvod. Podle m´eho n´azoru je mobiln´ı telefon osobn´ı zaˇr´ızen´ı urˇcen´e k umoˇznˇen´ı okamˇzit´e komunikace a dlouhodob´e v´ ypoˇcty na nˇej nepatˇr´ı. Nav´ıc by bylo ˇz´adouc´ı prov´adˇet tyto v´ ypoˇcty na pozad´ı, coˇz nemus´ı b´ yt vˇsude umoˇznˇeno. V´ yvoj´aˇri nˇekter´ ych operaˇcn´ıch syst´em˚ u se totiˇz c´ılenˇe br´ an´ı implementov´an´ı multitaskingu a zd˚ uvodˇ nuj´ı to snahou o dosaˇzen´ı co nejsviˇznˇejˇs´ı odezvy. Proveden´e testy n´ azornˇe dokumentuj´ı rychlost v´ yvoje mobiln´ıho hardwaru. Dokazuj´ı, ˇze na datu uveden´ı z´aleˇz´ı v´ıce neˇz na zaˇrazen´ı do kategori´ı podle ceny a nab´ızen´ ych funkc´ı. Chytr´e mobiln´ı telefony tvoˇr´ı samostatnou kategorii a za cenu vˇetˇs´ıch rozmˇer˚ u poskytuj´ı v´ ykon, kter´ y je st´ale pro bˇeˇzn´e mobily nedostiˇzn´ y, coˇz potvrdil nejrychlejˇs´ı telefon v testu HTC TyTN. I Sony Ericsson P990i, kter´ y byl pˇredstaven jiˇz pˇred ˇctyˇrmi lety, pravidelnˇe obsazoval ˇceln´ı pˇr´ıˇcky.
5
Z´ avˇ er
Mobiln´ı telefony se uk´ azaly jako solidn´ı z´akladna pro programov´an´ı nejen kryptografick´ ych aplikac´ı. Kromˇe restrikc´ı plynouc´ıch z fyzick´ ych vlastnost´ı a niˇzˇs´ıho (avˇsak jak jsem se snaˇzil dok´azat dostaˇcuj´ıc´ıho) v´ ykonu nen´ı v´ yvoj´ aˇr pˇri psan´ı aplikac´ı pro mobiln´ı telefony omezen. Mnohem horˇs´ı je vz´ ajemn´ a nekompatibilita r˚ uzn´ ych prostˇred´ı a z n´ı plynouc´ı nutnost udrˇzovat v´ıce verz´ı aplikace (ˇci dokonce m´ıt jednu aplikaci napsanou ve v´ıce jazyc´ıch), pokud chceme adresovat vˇetˇs´ı mnoˇzstv´ı uˇzivatel˚ u. Nav´ıc posledn´ı trendy v distribuci mobiln´ıch aplikac´ı smˇeˇruj´ı k v´ yrobcem OS kontrolovan´emu ˇs´ıˇren´ı tˇechto aplikac´ı.
Reference 1. Android Developers — what is Android? Webov´ a str´ anka. Ovˇeˇreno prosinec 2009. Dostupn´e na: http://developer.android.com/guide/basics/what-is-android.html. 2. Android Developers — class index. Webov´ a str´ anka. Ovˇeˇreno prosinec 2009. Dostupn´e na: http://developer.android.com/reference/classes.html. 3. The legion of the Bouncy Castle. Webov´ a str´ anka. Ovˇeˇreno prosinec 2009. Dostupn´e na: http://www.bouncycastle.org/. 4. Connected Device Configuration (CDC); JSR 36, JSR 219 overview. Webov´ a str´ anka. Ovˇeˇreno prosinec 2009. Dostupn´e na: http://java.sun.com/javame/technology/cdc/. 5. Connected Limited Device Configuration (CLDC); JSR 30, JSR 139 overview. Webov´ a str´ anka. Ovˇeˇreno prosinec 2009. Dostupn´e na: http://java.sun.com/products/cldc/overview.html. 6. .NET compact framework. Webov´ a str´ anka. Ovˇeˇreno prosinec 2009. Dostupn´e na: http://msdn.microsoft.com/en-us/netframework/aa497273.aspx. 7. iPhone OS. Webov´ a str´ anka. Ovˇeˇreno prosinec 2009. Dostupn´e na: http://en.wikipedia.org/wiki/IPhone OS. 8. B. Schneier and D. Whiting. A performance comparsion of the five AES finalists, 2005. Dostupn´e na: http://www.schneier.com/paper-aes-comparison.pdf. 9. Symbian OS. Webov´ a str´ anka. Ovˇeˇreno prosinec 2009. Dostupn´e na: http://en.wikipedia.org/wiki/Symbian OS.
Annotation: Speed of cryptografic operations on cellular phones This paper focuses on developing cryptographic aplications on mobile phones. There is description of posibilities of software development on mobile phones in the first part. Mobile phones are cathegorized with respect to used operating system. Special part is dedicated to Java ME and relevant libraries. It is followed by specification of testing software and algorithms. Finally textual summarisation of measured results is published.