2015. december 18., péntek

A titkosítás paradigma



Titkosítási rendszerek esetén beszélhetünk szimmetrikus és aszimmetrikus rendszerekről. Az összes klasszikus algoritmus szimmetrikus felépítésű volt. Az aszimmetrikus nehezebben törhető. A feldolgozás lehet stream alapú vagy blokk alapú. A stream alapú titkosítások bitenként, vagy karakterenként míg a blokk alapút fix méretű blokkokként végzi. A legtöbb ma használt algoritmus blokkokban dolgozik sebességbeli megfontolások miatt. Az, hogy blokkban vagy steam-ben dolgozik az algoritmus, ideális esetben nem kellene, hogy hatással legyen a biztonságra. Többféleképpen nekiállhatunk egy kód feltörésének. A legegyszerűbb és legjobban erőforrás pazarló módszer a Brute Force. Ez azt jelenti, hogy az összes lehetséges kombinációt ki kell próbálni. Általában az összes lehetséges kombinációt nem kell kipróbálni a sikeres töréshez, legjobb esetben elég egyszer próbálkozni. Ennek azonban a matematikai esélye ugyan megvan, de nem éppen életszagú eset. Ha egy kicsit gondolkodunk és megvizsgáljuk a visszafejtendő kódot, akkor előállhatunk rafináltabb módszerekkel, amelyek segítségével könnyebben vissza tudjuk fejteni az eredeti információt. Ideális esetben a titkosító algoritmus nem rendelkezik hibákkal és csak Brute Force módszerrel törhető fel. A Brute Force töréshez szükséges idő erősen függ a kódolás bonyolultságától, valamit a töréshez használt gép sebességétől. Éppen ezért fontos kérdés, hogy belátható időn belül feltörhető-e a rendszer vagy nem. A belátható idő fogalma erősen relatív. Éppen ezért jobb kifejezés egy módszer biztonságosságának megítélésére az, hogy megnézzük, számításilag biztonságosnak tekinthető-e. Egy algoritmus számításilag biztonságosnak tekintett, ha a feltöréséhez annyi erőforrás és idő szükséges hogy már ne érje meg kínlódni vele. A caesar titkosítás a legöregebb ismert titkosítási algoritmus. Állítólag Julius Caesar találta fel, azonban ennek a bizonyítására nem sok információ áll rendelkezésre. Az biztos, hogy az ő idejében már ismert volt a módszer. Ez egy betűcserén alapú algoritmus, könnyen törhető. A cserélő algoritmusok lényege, hogy adott betűt egy másikkal helyettesítünk, így kapunk egy értelmetlen szöveget, ami már titkos tartalmú. A törés a betűk ismétlődési gyakoriságán bukik meg. Az ismétlődési statisztika ad választ rá, ezt pedig össze kell hasonlítani egy olyan statisztikával, amely az adott nyelvre vonatkozik. Ennek az elkészítése igen nehézkes tud lenni, ha papír alapon csináljuk, mivel az összes létező szó esetén figyelembe kell venni az ismétlődési valószínűségeket. Viszont ha már van statisztikánk, akkor onnantól kezdve nagyon könnyen visszafejthető a kódolás. Probléma akkor van, ha nem ismerjük a nyelvet, amin az eredeti szöveg íródott. A II. világháborúban az Amerikai Egyesült Államok kormánya ezt a taktikát vetette be titkosítás terén. A navaho indiánok tagjait toborozták be titkosításra. A törzs tagjai olyan anyanyelvvel rendelkezek, amelyet csak egy tucat ember beszélt a legjobb esetben. A módszer igen hatékonynak bizonyult, mivel nem tudták visszafejteni a kódot az ellenfeleik. A xor alapú titkosítás a Boole algebra XOR műveletének következő azonosságain alapul:

  1. 5×5-ös mátrix rajzolása az ABC számára
  2. ABC beírása, ez lesz a kulcs
  3. Maradék hely kitöltése egyéb betűkkel
  4. A példa kulcs:
    PALME
    RSTON
    BCDFG
    HIKQU
    VWXYZ
  5. A titkosítandó szöveg felbontása két karakteres párokra.
  6. J betűk cserélése I betűkre
  7. Ha a két karakteres pár mindkét karakterje azonos, akkor kitöltő karaktert kell alkalmazni, ami: x
  8. Ha a szöveg végén kell még betű a két karakteres párhoz, akkor Z betűt kell alkalmazni
  9. Ezután szöveg titkosítása a következő szabályok betartásával:
    1. Ha két karakter ugyanabban a sorban szerepel az ABC táblában, akkor a karakter mellett jobbra található karakter lesz használva (körkörösen!).
    2. Ha két karakter ugyanabban az oszlopban szerepel, akkor az egyel alatta lévő karakter lesz használva.(körkörösen!).
    3. Ha a fenti két eset nem áll fent, akkor kereszt cserét kell csinálni.
A XOR B = C C XOR B = A itkosításra ez úgy használható fel, hogy az A változó jelenti az adat egy titkosítandó bitjét, B a hozzá tartozó kulcs egy bitjét, C pedig a kimenetként kapott titkosított bitet. Az algoritmus rém egyszerű, és megfelelő használattal megfelel a feltétlen biztonság tételének. Ez azt jelenti, hogy nem számít, hogy a támadónak mennyi ideje és erőforrása van, sosem fogja tudni kinyerni a kulcsból vagy a titkosított adatból az eredeti üzenetet. A feltétel csupán annyi, hogy a kulcs ugyan olyan hosszú legyen, mint a titkosítandó adat, és véletlenszerűen generált legyen. Ha a kulcs rövidebb a titkosítandó adatnál, akkor a kimeneti bitsorozatban a kulcs ismétlődni kezd, ami némi erőfeszítéssel igen könnyen kinyerhető. Ebben az esetben a titkosítás egyáltalán nem biztonságos. Ugyanez a helyzet áll fent, ha a kulcs nem véletlenszerűen választott. Hátránya a módszernek, hogy 10GB adat titkosítása ezzel a módszerrel 10GB kulcsot és 10GB titkosított adatot generál, amit célszerű külön helyeken tárolni. A playfair titkosítás a Caesar titkosítás és általánosított formái esetén a relatíve nagy kulcstér sem nyújt elég védelmet. Ezt nagyjából az 1800-as években már tudták. Viszont akkor még nem voltak számítógépek, így az e fajta titkosítások ugyan megtörhetőek voltak, de jelentős időt vettek igénybe. A problémát Charles Weastone oldotta meg 1854-ben, de a barátja, Playfair báró után kapta nevét az általa kifejlesztett algoritmus. Ez a bemeneti adatot nem betűnként kezelte, hanem blokkokban. Több lépéses algoritmus, amelynek a működését egy példán keresztül lehet a legjobban szemléltet 
A kereszt cserét egy példán keresztül a legkönnyebb elmagyarázni. A kulcs alapján a BD karakterpár a KH párra fordul, mivel a B betűhöz a D betű alatt lévő karaktert kell rendelni, a D betűhöz pedig a B alattit.

Abban az esetben ha a sor vagy oszlop egyezik, akkor a példa kulcs alapján az AM pár LE-re fordul, ME pedig EP-re. RH pár BV-re, a HV pedig VP-re.

A fenti szabályok ismeretében a következő szöveget titkosítom: Lord Granville’s letter

A karakterpárok bontás után a szöveg így néz ki: lo rd gr an vi lx le sl et te rz

A titkosítás után a kész üzenet: MT TB BN ES WH TL MP TA LN NV

A titkosított üzenet visszafejtése a kulcs ismeretében és a szabályok fordított alkalmazásával lehetséges.

A titkosítás kulcs tere 26 x 26 karakter, vagyis 676 karakter egy üzenet esetén. Valaha feltörhetetlen kódnak hitték, de mint kiderült, fel lehet törni, mivel a módszer néhány betűismétlődést és összetett szót figyelmen kívül hagy. Széles körben használt volt az I. és II. világháború alatt az amerikai és brit hadsereg által. A polialfabetikus titkosítás már több ABC variációt alkalmaz, mondhatni a betű cserés algoritmusok továbbfejlesztett változatai az ebbe a családba tartozó titkosítások. A legegyszerűbb ilyen algoritmus a Vigenère titkosítás. Tételezzük fel, hogy adott az összes Caesar ABC variáció az abc összes betűjéhez. Ezeket jelöljük a következőképpen: { Ca, Cb, Cc, …, Cz } A választott kulcs legyen a biztonsag szó. Az ABC variációk és a kulcs ismeretében a titkosított szöveg a következő formában fog előállni: Cb, Ci, Cz, Ct, Co, Cn, Cs, Ca , Cg. Ha a szöveg hosszabb, mint a kulcs, akkor a kulcsot ismételni kell. Ezen módszer azért jó, mert minden betűhöz több titkosított betű tartozik, így a betűk ismétlési statisztikái majdhogynem használhatatlanok, viszont ez nem jelenti azt, hogy a módszer feltörhetetlen.

A törés menete:
Ki kell találni a kulcs hosszúságát
Ha a kulcs hosszúsága N, akkor az algoritmus N Caesar titkosítást használ. K pozícióban lévő és N+k, 2N+k, valamint 3N+k betűk ugyanazzal a módszerrel vannak titkosítva.
A különálló Caesar kulcsok törése a Caesar algoritmusnál említett módon lehetséges.

Gyakorlatban ezt a titkosítást elektromechanikus titkosító gépekkel valósították meg. Ilyen volt a németek által a második világháborúban alkalmazott Enigma gép is. Ennek a hadi változata 10 elektromechanikus tárcsát alkalmazott, ami 10 karakteres kulcsot jelentett. Ebben az esetben egy üzenet esetén 26^10 kulcs kombináció lehetséges, ez másképpen leírva 141 167 095 653 376 kombináció. Az 1940-es években ez akkora kombinációnak számított, hogy az algoritmust feltörhetetlennek nevezték. Azonban sikerült feltörni, az említett feltörési módszerrel és némi gépi erővel. A gépi erőt nevezték Turing bombának, amely nevét Alan Turing matematikusról kapta. Többek között az ő nevéhez fűződik a Turing gép, ami a mai számítástechnika alapját képezi.
Fogalmak:

Plaintext
Egyszerű szöveg, ami tikosításra kerül.
Ciphertext
Titkosított szöveg, amit algoritmus állít elő a bemeneti szövegből.
Encryption, titkosítás
A folyamat, amely létrehozza az egyszerű szövegből a titkosított szöveget.
Titkosító algoritmus
A titkosítás műveletsora. Mindig két bemenete van: titkosítandó szöveg és titkosító kulcs.
Visszafejtés, Deciphering, Decryption
Folyamat, amely során titkosított szövegből egyszerű szöveg lesz.
Visszafejtő algoritmus
Visszafejtés műveletsora. Két bemenete: titkosított szöveg és titkosítást feloldó kulcs.
Titkos kulcs
Titkosító és titkosítást feloldó kulcs elnevezése, ha megegyeznek. Szokás szimmetrikus kulcsnak is nevezni.
Kriptográfia, Cryptography
Titkosításokkal foglalkozó tudomány.

2015. december 16., szerda

The Cat and the Mouse

The cat and the mouse PIay'd in the malt-house: The cat bit the mouse's tail off. 'Pray, Puss, give me my tail.' 'No,' says the cat, 'I'll not give you your tail, till you go to the cow, and fetch me some milk.' First she leapt, and then she ran, Till she came to the cow, and thus began: 'Pray, Cow, give me milk, that I may give cat milk, that cat may give me my own tail again.' 'No,' said the cow, 'I will give you no milk, till you go to the farmer, and get me some hay.' First she leapt, and then she ran, Till she came to the farmer, and thus began: 'Pray, Farmer, give me hay, that I may give cow hay, that cow may give me milk, that I may give cat milk, that cat may give me my own tail again.' 'No,' says the farmer, 'I'll give you no hay, till you go to the butcher and fetch me some meat.' First she leapt, and then she ran, Till she came to the butcher, and thus began: 'Pray, Butcher, give me meat, that I may give farmer meat, that farmer may give me hay, that I may give cow hay, that cow may give me milk, that I may give cat milk, that cat may give me my own tail again.' 'No,' says the butcher, 'I'll give you no meat, till you go to the baker and fetch me some bread.' First she leapt, and then she ran, Till she came to the baker, and thus began: 'Pray, Baker, give me bread, that I may give butcher bread, that butcher may give me meat, that I may give farmer meat, that farmer may give me hay, that I may give cow hay, that cow may give me milk, that I may give cat milk, that cat may give me my own tail again.' 'Yes,' says the baker, 'I'll give you some bread, But if you eat my meal, I'll cut off your head.' Then the baker gave mouse bread, and mouse gave butcher bread, and butcher gave mouse meat, and mouse gave farmer meat, and farmer gave mouse hay, and mouse gave cow hay, and cow gave mouse milk, and mouse gave cat milk, and cat gave mouse her own tail again.


2015. december 14., hétfő

Ompetitiveness

During the economical crisis, management of more and more corporations recognises that learning organisations can significantly improve their  ompetitiveness. the organisational learning I deal with organisational forgetting, achievement of organisational learning, and the concept of one-loop learning and two-loop learning. Based on Senge I sketch the principles of learning organisations: working up of image of a common future, personal direction, thought patterns, group learning and system thinking. Next I analyse the participants of learning organisations in the process of learning. In the course of this I show the difference between concepts of Garvin and Senge and learning-types, featuring the learning organisations: single learning, team learning, organisational learning and the consumer learning. I addition I deal with dilemma of measurement of learning organizations and building up of learning organisations and the tasks of leaders. Summarised you can say that learning organisation is a strategic concept when putting it into practical all the sources of the organisation are needed, all the participants have to latch onto it, and thanks to it the innovation level and the commitment of the employees of a corporation will improve.