Šifrování v Androidu několikanásobně zpomaluje zápis i čtení z interního úložiště

21. 11. 2014

Sdílet

 Autor: Redakce

Jednou z novinek v Androidu 5.0 je implicitně zapnuté šifrování interního úložiště. Pokud ztratíte nebo vám někdo ukradne telefon, bez hesla se k datům nedostane. Dešifrování bez znalosti klíče by trvalo věčnost. Jenže tyto operace jsou také náročné na výkon samotného zařízení.

Přesvědčili se o tom redaktoři Anandtechu, kteří měli na test Nexus 6, a nelíbily se jim některé výkonnostní problémy. Od Motoroly si proto vypůjčili Nexus 6 s deaktivovaným šifrováním a začali měřit. Výsledky potvrdily původní hypotézu.

Šifrování v Androidu výrazně brzdí IO operace Šifrování v Androidu výrazně brzdí IO operace

Zápis a čtení do úložiště se výrazně zpomalilo. Rychlost náhodného čtení 4kB bloků klesla z 16,6 MB/s na 6,2 MB/s. Náhodný zápis stejně velkých bloků zpomalil z 2,9 MB/s na 1,4 MB/s. Rychlost sekvenčního čtení 256kB souborů klesla ještě výrazněji – ze 131,7 MB/s na 35,4 MB/s.

Přesto ale zpomalení dané šifrováním nakonec nebylo příčinou výkonnostních problémů v aplikacích jako Messenger nebo Kalendář, kvůli kterým se Anandtech do testování pustil. Přetrvávaly i nadále. Je to logické. Zpomalení můžete pocítit při spuštění aplikace, kdy se program z úložiště načte do operační paměti. Pak ale běží v RAM, a pokud se zároveň znovu nezapisuje/nečte z úložiště, na výkon to vliv nemá.

Citelné zpomalení by podle mě mělo přijít u operací, které jsou náročné na výkon procesoru i IO operací. Třeba u komprimace nebo rozbalování souborů.

 

Podobné testy vyzkoušel i magazín Android Police. Ten ověřil výkon u Nexusu 7 a hlavně Nexusu 9. U něj byly výsledky se zapnutým šifrováním podobné těm jako u jiných zařízení s vypnutým šifrováním. Pravděpodobným vysvětlením je, že v Nexusu 9 je nový čipset Tegra K1 s 64b procesorem Denver postaveným na architektuře ARMv8-A, která už obsahuje kryptografické instrukce pro (de)šifrování.

U Nexusu 6 je kryptografický obvod také, jenže není součástí procesoru Krait 450 (v čipsetu Snapdragon 805), ale je tam pouze přilepen jako samostatný obvod. A ten, jak se ukázalo v diskuzi na Google+, nemá potřebný kód v Androidu. Je totiž proprietární, a protože jej Qualcomm neotevřel, nedostal se ani do Android Open Source Projectu.

ICTS24

Těžit z rychlého (de)šifrování tak budou až všechny nové procesory založené na architektuře ARMv8-A (nikoliv ARMv8-R), jenž obsahují instrukce pro AES, SHA-1 a SHA-256. Takovým je například Apple A7 a novější. Nebo Exynos 5433, který Samsung nasadil v některých verzích Galaxy Notu 4. Na ARMv8-A budou založeny všechny procesory s jádry Cortex-A57 a Cortex-A53. Třeba i Snapdragony 808/810.

Zdroj: Anandtech, Android Police