Archive for Prosinec, 2009

White forest, do you read me? 1

Dohrál jsem Half-Life 2: Episode 2. Právem je HL2 označována za nejlepší hru všech dob.
Antiutopistická, futuristická a zároveň postapokaliptická atmosféra, impozantní, kanonicky podložený příběh, který prožijete doslova na vlastní kůži, a to vše v source enginu? Hravě předčí kdejakou knihu či film (a to jsem zastánce knih). Původní HL2 mi utkvěl v paměti tak hluboce a tak živě, jak to nikdy žádná kniha nedokázala ani v nejmenším.

Half-Life 2 je jedním z mála takovýchto případů. Případů, kdy je hra dílo hodnotnější než kniha nebo film. Případů, kdy je stoprocentně výhodnější prosedět dny u počítače než vyrazit ven a zažít vlastní dobrodružství. Emoce a zážitky, které ve vás takové umělecké dílo nechá, jsou unikátní a nenahraditelné. Už je to spoustu let, co jsem poprvé hrál HL2. Tipoval bych 5. Nevzpomínám si, jaké knihy jsem v té době četl a už vůbec ne na jejich obsah, zato si dokáži živě vybavit, jak jsem se s dokonalým strachem procházel Ravenholmem a v této ponuré a opuštěné vesnici hledal (respektive probojovával si) zcela osamocen cestu ven. A je už úplně jedno, že to byl Gordon Freeman, kdo byl v Ravenholmu (asi naposledy… kdo z vás tam někdy byl, ví proč), protože já jsem jeho příběh prožil, já jsem byl Gordon Freeman.

HL2: EP2

Stejně tak jako čtenář musí umět číst, aby si vychutnal dobrou knihu, opravdový hráč musí umět hrát, aby si vychutnal dobrou hru. Potom už nejde o hraní, ale o prožitek. Jedinečný prožitek. Třeba naše bývalá profesorka českého jazyka si, i kdyby chtěla, nikdy nebude moci vyzkoušet tento moderní druh umění. Přinejmenším ho pochopí a uzná, vyzkoušet a poddat se mu (třeba jako poesii) už ale moci nebude. Důvod je jednoduchý. První headcrab by její osud zpečetil. A možná by to ani nebyl headcrab. Stačil by sráz nebo zeď.

Opravdový hráč skutečně považuje onen akt hry za téměř nepodstatný, stejně jako čtenář považuje za nepodstatné vytrhovat se nad tím, že umí číst extrémně rychle a bez chyb. Bohužel ale na rozdíl od knih, her, která jsou uměleckými díly, je nesmírně málo. Tak málo, že by je uměl spočítat i předškolák na jedné řádce svého počítadla.

Takový hráč je třeba kamarád Kesy. A jsem rád, že je takových lidí víc. Svědčí o tom prodejní bilance.

Na závěr bych možné zájemce odkázal na pár titulů, které za umělecká díla považuji. Na prvním místě samozřejmě sága Half-Life, dále pak třeba výborný Deus-Ex nebo System Shock II. Slyšel jsem plno chvály i na Bioshock, ten jsem však nehrál, takže zatím doporučit nemůzu.

Should I? 0

Should I pray
day by day
for what I’ve lost
because the cost
I cannot pay?

Should I lie
myself that I
cannot die
because I own
of what they
have none?

Should I regret
of moments I let
pass hands
of mine and see them
not hence?

I should, lads,
because that’s
giving me
the very readiness
to be
furthermore.

Logic is foreign for us and I don’t expect comments.

RSA šifrování a zajímavosti 4

V předmětu Algoritmizace jsme během roku dostávali rozličné domácí úkoly, které se v posledním úkolu důmyslně poskládaly a vzniklo jednoduché RSA šifrování. Takové RSA šifrování je založeno na jednoduchém principu, a to že libovolné číslo se dá přepsat jako součin prvočísel. Součin prvočísel je elementární úloha, která zabere běžnému počítači malé zlomky tisíciny vetřiny, naopak rozklad čísla (zejména velkého) na součin prvočísel je úloha velice složitá a pro hodně velká čísla téměř neproveditelná v rozumném čase.

Je třeba vytvořit pár klíčů (uspořádané dvojice čísel) – veřejný klíč a soukromý klíč. Klíče se vytvoří takto: Zvolí se dvě náhodná prvočísla a určí se jejich součin n a hodnota Eulerovy funkce v tomto bodě – φ(n) jako (p – 1) * (q – 1). Zvolí se celé číslo e nesoudělné s φ(n) menší než φ(n), tak aby platilo de ≡ 1 (mod φ(n)) a jestli e je prvočíslo tak d = (1+r*φ(n))/e, kde r = [(e-1)φ(n)^(e-2)]. Opsal jsem to z wikipedie, protože jsem to sám pořádně nepochopil :-).

Zajímavá věc je ale šifrování samotné. Nedělá v podstatě nic jiného, než že převádí informace na jiné informace podle určitého jednoznačného systému, přičemž tento proces je vratný. V podstatě tedy nedělá nic jiného, než že nasazuje na informace jakousi masku, přes kterou nepoznáme, o co se jedná. Souvislost a podstata informací se ale nemění. Kdyby lidstvo od pradávna žilo v číslech, dešifrování určité sady čísel či přinejmenším pochopení podstaty skrytých informací by nám nedělalo tak podstatný problém. Nechte mě toto tvrzení dokázat.

Lidé většinou nevidí svět v číslech, ale v obrazech. Body určité barvy, jako základní složky obrazů, se ale dají převést na čísla, tudíž i zašifrovat. Barevná rozlišovací schopnost lidí je mi neznámá, zdaleka však není stoprocentní, to znamená, že člověk má tendenci dvě barvy změněné o nepatrný odstín považovat za stejné. Empiricky se přišlo na to, že člověk už nepozná rozdíl mezi 24bitovým obrázkem a obrázkem vyšší kvality… berme tedy rozlišovací schopnost lidského oka jako 24 bitů.

A není náhodou, že zde zrovna jeden obrázek ve 24 bitovém rozlišení mám. Celkem hezký.

Nevím, jak se slečna jmenuje, ale dovolím si ji vypůjčit k malému experimentu. Proženeme její část mým RSA šifrovacím algoritmem a podíváme se, jak moc se slečna zmení… jestli stále ještě dokážeme poznat, že se jedná o slečnu.

To, co prosím vidíte je částečně zašifrovaný obrázek. Zašifrovaná data (určitě poznáte, o která se jedná) by nemělá být ani v nejmenším čitelná běžným pohledem. A kdyby šlo o čísla nebo o znaky, také by čitelná nebyla. Protože však žijeme ve světě obrazů již od malička a náš mozek, jak známo – nejdokonalejší počítač, v obrazech pracuje, dokáže vcelku snadno zachytit v šifrovaných informacích určitou pravidelnost a odhalit tak podstatu šifrovaných informací. Zjistíme, že se jedná o slečnu, přinejmenším o člověka.

Platí pravidlo, že čím jednoduší jsou šifrovaná data, tím jednodušeji je lze dešifrovat. To ve světě obrazů platí dvojnásob. Pokud převedeme slečnu ze světa 24bitů do 256 barev (což byla kdysi velice slušná kvalita digitálního zpracování obrazů),

zjistíme, že šifrovaný obrázek přečteme mnohem snadněji.

V tomto případě zjišťujeme přesně fakt, že se jedná o slečnu a že je pěkná. Lidé s rozvinutějším mozkem v určitých oblastech (třeba někteří autisté) by poznali i o koho se jedná. Pokud slečnu zjednodušíme na pouhých 16 barev,

poznáme i my zaostalejší, o koho jde.

Což je docela dobré na to, že informace má být nečitelná. Mimochodem, já nevím, o koho jde i přes to, že mi to přítelkyně několikát říkala. Narazil jsem na ni na Okounovi a od té doby ji zneužívám k různým bitovým hrátkám.

Člověk je ale relativně zvyklý přemýšlet i ve slovech, nebo ne? Avšak dešifrovaní věty v jeho rodném jazyce jakkoli jednoduchou šifrou (natož RSA) mu dělá značný problém. Kdyby mi někdo poslal velmi krátkou smysluplnou větu sestávájící z písmen abecedy zašifrovanou pomocí RSA, troufnu si tvrdit, že bych na základě znalostí větné stavby a stavby slov, dokázal odhalit něco kolem 50 až 75 procent její podstaty. Trvalo by mi to ale minimálně den. Kdyby mi někdo poslal smysluplná čísla, ve kterých lidé nepřemýšlí, neodhalil bych jejich podstatu nikdy, narozdíl od počítače. Někteří autisté slovní a číselné šifry prokouknou stejně snadno jako my ty obrazové… dokážete si představit, jak dokonalý musí být lidský mozek? Není čas začít přemýšlet o návratu k analogové technice :-)?

Pokud si chcete bitové hrátky s RSA šifrou také vyzkoušet, dám k disposici kód v jazyce Java.

import java.io.*; public class KlicRSA {     private long N;     private long k;     public KlicRSA(long N, long k) throws Exception     {         if(N < 256 || N > 32767)         {             throw new Exception("<256;32767>");         }         this.N = N;         this.k = k;     }     private static long umocni(long a, long b, long n)     {         long ret = 1;         for(long i = Long.highestOneBit(b); i > 0; i >>= 1)         {             if((b & i) != 0)             {                 ret = (ret * a) % n;             }             if(i > 1)             {                 ret = (ret * ret) % n;             }         }         return ret;     }     public void zasifrujSoubor(String zdroj, String cil)             throws java.io.IOException     {         DataInputStream dis = new DataInputStream(new                 FileInputStream(zdroj));         DataOutputStream dos = new DataOutputStream(new                 FileOutputStream(cil));         int b;         while(dis.available() != 0)         {             b = dis.readUnsignedByte();             dos.writeShort((short) umocni(b, this.k,                     this.N));         }         dis.close();         dos.close();     }     public void zasifrujKus(String zdroj, String cil)             throws java.io.IOException     {         DataInputStream dis = new DataInputStream(new                 FileInputStream(zdroj));         DataOutputStream dos = new DataOutputStream(new                 FileOutputStream(cil));         byte b;         long i = 0;         while(dis.available() != 0)         {             b = dis.readByte();             if((i > 10000) && (i < 20000))             {                 dos.writeByte((byte) umocni(b, this.k,                         this.N));             }             else             {                 dos.writeByte(b);             }             i++;         }         dis.close();         dos.close();     }     public void desifrujSoubor(String zdroj, String cil)             throws java.io.IOException     {         DataInputStream dis = new DataInputStream(new                 FileInputStream(zdroj));         DataOutputStream dos = new DataOutputStream(new                 FileOutputStream(cil));         short s;         while(dis.available() != 0)         {             s = dis.readShort();             dos.writeByte((byte) umocni((int) s, this.k,                     this.N));         }         dis.close();         dos.close();     } }

Já jsem používal klíče (1469, 5) a (1469, 269).

Moc věcí je špatně 5

V roce 0 obývalo planetu Zemi odhadem 200 miliónů lidí.
V roce 1000 to bylo asi 300 miliónů.
V roce 1750 už to byla odhadem miliarda.
Když jsem se narodil (1989), počet obyvatel se mezitím zpětinásobil.
Když jsem chodil na střední školu, učili jsme se číslo o miliardu vyšší.
A dnes již máme miliard 7.

Vlivní lidé si myslejí, že země je nekonečně velká a že se její zdroje nedají vyčerpat. Dá se vcelku jednoduše spočítat, za jak dlouho budou jednotlivé zdroje surovin vyčerpány s ohledem na tento šílený, více než exponenciální, nárůst populace. Výsledky jsou ale iracionální a nikdo se jimi nezabývá.

Vezmu-li v úvahu nárůst populace který se odehrál od konce renesance do současnosti a budu-li s ním dostatečně dlouho pokračovat, vyjde mi populace větší, než je čtvereční výměra obyvatelné části kontinentů. Sranda, co :)? Není to možné a pokud člověk nezmění svoji filosofii a postoj k rozvojovým zemím, příroda nevybíravě zakročí.

Proč k rozvojovým zemím? To je vcelku jednoduché. Obyvatelstvo rozvinutých zemí oproti obyvatelstvu rozvojových zemí totiž nevykazuje skoro žádný nárůst. Problém s odlišným poměrem začal někdy v roce 1900, čili musíme porovnat hodnoty doby předcházející tomuto roku s dobou současnou.

Po roce 1900 dochází k pádům církevních dogmat, uskutečňuje se deklarace lidských práv a vzniká takzvaná moderní demokracie a kapitalismus. Na post Boha je posazen i ten nejpodřadnější člověk z prostředka africké džungle, kde, zcela navyknut na pomoc z rovniutých zemí, se pouze množí. Ztráta tradičních pospolitostí v technicky zaostalejších kulturách afriky a jižní ameriky a jejich uveržení do kapitalistického světa vede k chudobě, která tam dříve nebyla a ve které se člověk nekontrolovatelně množí, podporován všemi možnými prostředky, hlavně, aby nebyl zmařen nuzný a krátký život, který by bez původního zásahu zvěnčí ani nebyl vytvořen a nebyl by nuzný a krátký.

Křívka tedy získává svou strmost a po úvaze, ke které musí dojít každý myslící tvor, zjistíme, že vede ke katastrofě. Pokud tento růst nebude zastaven změnou filosofie vládnoucích, obyvatelé těchto zemí zaplaví náš svět jako kobylky egypt a protože nejsou civilizovaní, zaniknou původní kultury, které existují už tisíce let.

Nastolená extremistická demokracie ničí lidské kultury naprosto otevřeně a podařilo se jí též přesvědčit velkou část lidí (díky podobným tempem snižující se průměrné inteligenci) o tom, že jedná správně. Průpovídky různých xichtů, jako je například ten topolánkův: „žijeme v nejlepším možném světe a kdo to nevidí je hlupák“ se dostávájí na titulní strany humanisticky ovlivněných plátků, zatímco pravda studovaných lidí se dá naleznout jen občas v krátkém sloupku na konci.

Zbývá tedy jen doufat v revoluci. V puč, lépe řečeno.
Poslední jistota je jistota v katastrofu, ke které svět spěje.

Existuje vlivný stát, který má obyvatelstvo s mentalitou, která extrémní demokracii neumí a nechce přijmout a jakýsi regulační člen stále funguje. Je to Rusko. V rusku zhoubná demokracie nikdy nenastala a nenastane. Je tedy nyní směrem, kterým by se měla Evropa uchýlit.