A kriptográfia alapjai


Szimmetrikus és aszimmetrikus titkosítás összehasonlítása Ma az adatfeldolgozás döntően számítógépeken, megfelelően tervezett és kódolt programokkal történik. Az adatokat jogi vagy ügyviteli eszközökkel a feldolgozás folyamatában résztvevő emberekkel szemben lehet védeni. A számítógépnek ezek az előírások semmit sem jelentenek mindaddig, amíg nem fogalmazzuk meg számukra érthető nyelven. Ez a nyelv algoritmusokból és protokollokból áll, amelyeket program formájában teszünk érthetővé a számítógépekkel.

Ezek alapját olyan matematikai módszerek képezik, amelyek lehetővé teszik adatok bizalmas tárolását és továbbítását. Korábban már rámutattunk, hogy adatvédelmi szempontból a tárolás is információtovábbítást jelent csak nem térben, azaz például Debrecenből Budapestre, hanem időben, azaz máról holnapra vagy egy évvel későbbre.

jövedelem az interneten keresztül 2020-ban

Természetesen a tárolással kapcsolatban felmerülnek olyan problémák, amelyek a továbbításnál nem fontosak. Ilyen speciális igény információk hosszú időtartamú tárolása, azaz archiválása. Másrészt, a továbbításnál általában lényeges a kommunikáció sebessége, ami tárolás esetén általában nem kiemelt igény. Elfogadva tehát, hogy a tárolás és továbbítás adatvédelmi szempontból egységesen kezelhetőek, azt vizsgáljuk meg, hogy miért van szükség bizalmas adattovábbításra.

  1. A törvénytől függetlenül eddig is használtak elektronikus aláírást, csak a jogi szabályozás nem létezett eddig.
  2. Informatikai biztonság és kriptográfia | Digitális Tankönyvtár
  3. Első bitcoin

A jegyzet korábbi fejezeteiben sokat foglalkoztunk az azonosítással. A belépés általában nem a számítógéppel összekötött terminálon történik, hanem egy nyilvános hálózaton keresztül. Ha a jelszót eredeti formájában küldjük át a hálózaton, akkor ahhoz illetéktelenek könnyen hozzáférhetnek és kaméleont játszva, a nevünkben léphetnek be a számítógépbe, hozzáférve ezzel minden hozzánk rendelt erőforráshoz és információhoz.

A jelszót tehát úgy kell kódolni a nyilvános hálózaton történő küldés előtt, hogy azt illetéktelen ne tudja dekódolni.

Amikor egy vállalat vezető tisztviselője távoli terminálról, otthonról, szállodai szobából vagy a gépkocsijából bejelentkezik a vezetői információs rendszerbe, akkor nem kívánatos, hogy a forgalmazott adatok kódolás nélkül utazzanak a nyilvános hálózaton.

Azt sem szeretnénk, ha banki tranzakcióink tartalma a hálózaton bárki számára olvasható legyen. Hasonló példákat hosszan lehetne sorolni, de ennyinek is elegendőnek kell lenni a bizalmas üzenettovábbítás fontossága alátámasztására.

Bizalmas a kriptográfia alapjai olyan kódolással érhető el, amikor a kódolt üzenetet csak az arra illetékesek tudják dekódolni.

Az ilyen kódolást titkosításnak nevezzük. Nem nyilvánvaló, de később meg fogjuk mutatni, hogy a digitális aláírás is titkosítási eljáráson alapul. A kriptográfiai szakirodalom elsősorban angolul érhető el, ezért a magyar kifejezéseknek, azok első előfordulásakor megadjuk az angol megfelelőjét is.

A kriptográfia alapjai A bizalmas üzenettovábbítás elvének bemutatására tökéletesen alkalmazható Claude Shannon — amerikai matematikus modellje, amelyet a 8. A modell három szereplője: az Adó, aki bizalmas üzenetet akar küldeni a Nyelőnek és végül a Figyelő, aki az üzenetet minden rendelkezésére álló eszközzel meg akarja szerezni.

Az üzenetet szokás nyílt szövegnek plain text is nevezni. A Figyelő elsősorban a csatornán férhet hozzá az üzenethez, de egyéb fontos információkat is szerezhet az Adó és a Nyelő oldalán is.

A Figyelő dolgát megnehezítendő, az Adó az üzenetet nem az eredeti formájában küldi át a csatornán, hanem egy titkosító eljárásnak encryption veti alá.

A szimmetrikus kriptográfia alapjai Az előző fejezetben láttuk, hogy az elmúlt évszázadok során sokféle titkosítási technikát dolgoztak ki, de a XX. Ezek, persze lényegesen bonyolultabb formában, még ma is jelentős szerepet játszanak a kriptográfiában.

A csatornán tehát már nem a nyílt szöveg, hanem annak kódolt változata a titkos üzenet ciphertext megy át. Közvetlenül a Nyelő sem tud mit kezdeni a titkos üzenettel, de ismerve a megfejtő, dekódoló eljárást decryption vissza tudja állítani az eredeti szöveget és értelmezni tudja azt. Bizonyos alkalmazásoknál a modellből hiányozhat a dekódoló egység, illetve a kódoló átkerülhet a nyelő oldalára. Ilyen példákkal találkoztunk a 6. Bizonyos esetekben a titkosító és a visszafejtő eljárás nemcsak a nyílt üzenettől, hanem egy további paramétertől, kulcstól key is függ.

A titkosítás klasszikus alkalmazásainál arra törekedtek, hogy a kódoló a kriptográfia alapjai és a kulcs is titokban maradjon. Ekkor persze az adónak és vevőnek a kommunikáció megkezdése előtt meg kell állapodnia a titkosító módszerben és a kulcsban. Ez nagyon lecsökkenti a potenciális partnerek számát.

Kriptográfia

A következő fejezetben ismertetünk ilyen példát. Internetes világunkban ez az út nem járható. Ha például az APEH minden adózó állampolgárral más-más titkosító algoritmussal kommunikálna, akkor néhány millió, jól tesztelt eljárást kellene alkalmaznia, ami sem anyagi sem technikai szempontból nem realizálható. A kriptográfiában ma a titkosító és visszafejtő függvényt ismertnek, sőt szabványosnak tételezzük fel, így a titkosítás minősége a kulcstól függ.

A szabványosítás nagyon fontos követelmény. Gondoljuk tovább az előbbi APEH-es példát. Napjainkban néhány százezer adóalany nyújt be elektronikus úton adóbevallást. Az adózók számítógépei sokféle operációs rendszert használhatnak, és sokféle alkalmazással végezhetik az adóbevallás kódolását.

A továbbiakban azt vizsgáljuk, hogy az E és D függvényeknek milyen tulajdonsággal kell rendelkeznie, hogy alkalmasak legyenek titkosításra. Mint fentebb megállapítottuk a titkos üzenetnek olyannak kell lenni, hogy a Figyelő csak nagyon nehezen tudja azt megfejteni. A Figyelő közvetlen célja a bizalmas üzenet kiderítése, de ha az alkalmazott kulcsot is megismeri, akkor más üzeneteket is dekódolhat, illetve megszemélyesítheti az Adót. Egy titkosító függvény a kriptográfia alapjai akkor használható a gyakorlatban, ha a kódolást gyorsan el tudja végezni.

Olyan eljárást, amely néhány kilobájtnyi adatot percekig kódol, nyugodtan el lehet felejteni. A követelményrendszer heurisztikus ismertetését a dekódoló függvény elemzésével tesszük teljessé. Mint említettük néhány fontos alkalmazásnál erre a függvényre nincs is szükség.

A dekódolás azt jelenti, hogy vissza akarjuk állítani az eredeti üzenetet. Ehhez persze egy dekódoló kulcs is kell. Szavakban kifejezve az előző egyenlőség annyit jelent, hogy ha az u üzenetet a kt kulccsal titkosítjuk, majd a titkos üzenetet a kd visszafejtő kulccsal dekódoljuk, akkor visszakapjuk az eredeti üzenetet.

Végezetül a kd ismeretében a dekódolásnak is gyorsnak kell lenni. Pontosabb definícióhoz először a modellünkben szereplő halmazokat kell precízebben meghatározni.

Vegyük észre, hogy a gyakorlatban a P, C és K halmazok véges hosszúságú bináris szavakból állnak, így maguk is véges halmazok.

Az E illetve D függvényeket könnyű kiszámítani, ha maximális bonyolultságuk kis kitevőjű polinommal becsülhető. A legjobb, ha a kitevő egy, azaz a kiszámítás bonyolultsága lineáris. Ha E bonyolultsága polinomiális, akkor persze m hossza is becsülhető u és kt összhossza polinomiális függvényével. Ugyanennek kell teljesülnie kd-re is, mert különben a visszafejtés kd ismeretében sem lehet gyors.

A Figyelő tehát exponenciális időben mindig vissza tudja fejteni az eredeti üzenetet.

Az internet mint pénzkereseti módszer

A jó kriptográfiai függvény tehát olyan, amelyre a dekódolás egyetlen inputra sem történhet meg exponenciálisnál lényegesen gyorsabban. A fentiekben leírt E függvényeket szokás egyirányú függvénynek one way function nevezni. Azokat az egyirányú függvényeket pedig, amelyeknek van a fentiekben leírt dekódoló D párja, egyirányú csapóajtó függvénynek one way trapdor function nevezzük. Digitális információk kódolása kétféleképpen történhet: vagy az egész üzenetet egyszerre kódoljuk, amit folyamkódolásnak stream cipher nevezünk, vagy pedig az üzenetet feldaraboljuk, a darabokat külön-külön kódoljuk és az eredményt a nyelő oldalán ismét összefűzzük.

Az utóbbit blokk kódolásnak block coding nevezzük. Folyamkódolásra példa a Vernam titkosítás. Ezután generálunk az u-val egyforma hosszúságú véletlen és egyenletes eloszlású k bitsorozatot. Végezetül az u és v bitjeire bitenként a kizáró vagy műveletet alkalmazva nyerjük az m titkosított üzenetet. A dekódoláshoz a nyelőnek ismernie a kriptográfia alapjai a v kulcsot.

turbó opciók jelzik

Ekkor az m és a v bitjeire ismét bitenként alkalmazza a kizáró vagy műveletet és visszanyeri u-t. A dekódolás korrekt, hiszen a kizáró vagy művelete tetszőleges a, b bitre rendelkezik az a??? A Vernam titkosítás a lehető legbiztonságosabb, ha a v-t minden üzenetre egyedileg állítjuk elő, valamint bitjei egyenletes eloszlásúan és véletlenek.

Nagy problémát jelent viszont, hogy nemcsak a titkosított üzenetet, hanem az egyedi dekódoló kulcsot is el kell juttatni a nyelőnek.

Kriptográfia – Wikipédia

Ez az üzenet a kriptográfia alapjai megduplázását jelenti, ami gazdaságtalanná teszi az eljárást. A biztonságosság mellett a Vernam titkosítás jó tulajdonsága az is, hogy rendkívül egyszerű és gyorsan implementálható. A bitenkénti kizáró vagy műveletet ezért a modern titkosítási eljárásokban gyakran alkalmazzák. Mint fentebb írtuk a blokk titkosítás során az üzenetet feldaraboljuk és az egyes darabokra külön-külön alkalmazzuk a titkosítási eljárást.

A blokkok hossza lehet fix vagy változó. Titkosításra szinte csak a fix blokkhosszú változatot alkalmazzák. Hosszabb üzenetek továbbítására három módszer áll rendelkezésünkre, amelyeket a 8. Az üzenetblokkokat, melyeknek hossza n, uj-vel, a titkosított blokkokat cj-vel jelöljük. Ennél az üzeneteket egymás után titkosítva közvetlenül küldjük a nyelőnek.

Adott kódoló eljárás mellett nyilván ez a legegyszerűbb és leggyorsabb továbbítási módszer.

A csatorna azonban általában zajos, különböző hibát véthet az átvitel során. Ha a hiba olyan természetű, hogy néhány bittel lerövidíti vagy meghosszabbítja az átvitt blokkot, akkor vagy a következő blokkból kerül át néhány bit a megelőzőbe, illetve a következő blokk néhány bitje a kriptográfia alapjai át az előzőbe. A dekódolóra tehát nem cj, hanem egy ettől picit különböző blokk érkezik és ezért a dekódolás hibás eredményt ad.

Egy ilyen hiba nemcsak azt a blokkot érinti, amelynél jelentkezett, hanem minden további blokkot is, így az üzenet jelentős része használhatatlanná válik. Hosszabb üzenetek átvitelére tehát nem javasolt. A módszer lényege, hogy a kódolt blokk egyrészt átkerül a nyelő oldalára, de vissza is csatoljuk a következő blokk kódolásához. Ilyenkor tehát a következő üzenetblokkot először bitenként xor-ozzuk az előző titkosított blokkal és az eredményre alkalmazzuk a kódoló eljárást.

három indiai bináris opciós minta

Persze a visszacsatolást a nyelő oldalán is el kell végezni. Az első üzenet blokk kódolásakor még nincs mit visszacsatolni, ezért szükség van egy IV-vel jelölt kezdőblokkra, amelyet persze a nyelő oldalán is hozzá kell adni az első titkosított blokkhoz. Ennek ára az, hogy a következő blokk feldolgozásához csak akkor lehet hozzákezdeni, ha az előző visszacsatolása megtörtént.

Amennyiben a blokkhossz nagy, ami például az aszimmetrikus titkosításnál általános, akkor ez komoly késleltetéshez vezet. A titkosított információ első r bitjét maszkoljuk az aktuális üzenetblokkhoz. Ha az r lényegesen kisebb, mint n, akkor a késleltetést lényegesen lehet csökkenteni.

A CCB módszerhez hasonlóan most is szükség van egy inicializáló blokkra.