Digitális aláírás
Laikusok szemében a digitális aláíráson azt sejtik, hogy egy asszisztens szkenner segítségével bedigitalizálja a főnöke aláírását egy képállományba és szükség esetén ez a kép könnyen beilleszthető az aláírandó dokumentumokba. Sajnos ez a módszer komoly büntetőjogi szankciókkal is járna ha így járnának el, de a digitális aláírás a valóságban egészen más.
A nyilvános kulcsú rendszereket aszimmetrikus rendszereknek is szokás nevezni, mert a kódoláshoz és a dekódoláshoz már más kulcs szükséges. A szimmetrikus rendszerekben ugyanaz a kulcs kódol és dekódol.
Az aszimmetrikus rendszerekben Annának bárki küldhet titkos üzenetet. Hogyan bizonyosodhatunk meg a küldő kilétéről? A digitális aláíró algoritmusok is speciális aszimmetrikus rendszerek. Van egy titkos kulcs az aláíráshoz és egy nyilvános kulcs az aláírás hitelességének ellenőrzéséhez.
A digitális aláírás követelményei
Az aláírás legyen hiteles: az aláírás meggyőzi a dokumentum olvasóját, hogy az aláírás tulajdonosa tudatosan írta alá a dokumentumot.
Legyen hamisíthatatlan: az aláírás bizonyítja, hogy az aláírás tulajdonosa maga és nem más írta alá a dokumentumot.
Az aláírás nem lehet felhasználni fel más dokumentumon: az aláírás a dokumentum szerves része, nem helyezhető át egy másikra.
Az aláírt dokumentumot ne lehessen megváltoztatni észrevétlenül.
Legyen letagadhatatlan: az aláíró később nem tagadhatja le, hogy aláírta a dokumentumot.
Ezek a követelmények a manuális (analóg) aláírásnál sokkal biztonságosabb megoldást jelentenek.
Egyszerű digitális aláírás RSA közvetlen alkalmazásával
Egyszerű esetben az RSA algoritmus is alkalmas lehet digitális aláírásra.
Az alábbi pontok felsorolják a lépéseket:
saját titkos kulcsunkkal kódolni kell a dokumentumot.
RSA-ban a titkos és nyilvános kulcsok szerepe felcserélhető: akármelyikkel rejtjelezhetünk, mindig a másikkal (és csakis azzal) lehet visszafejteni az üzenetet.
Ha valaki titkosít egy üzenetet a titkos kulcsával, akkor a nyilvános kulccsal visszafejthető (így ellenőrizve a hitelességet).
Az egész dokumentum el van kódolva az aláírásban. (maga a kódolt dokumentum az aláírás)
Az aláíró nem tagadhatja le az aláírás tényét, mert ő az egyetlen aki az előállításhoz szükséges titkos kulcsot ismeri.
Az RSA aláíró módszer használatával a dokumentum olvashatatlan marad, ahhoz hogy el tudjuk olvasni, ellenőrizni kell az aláírást.
Ez a módszer kényelmetlen, ha:
Hash függvények
A sima RSA nagy hátránya, hogy a dokumentum maga az aláírás. Hogyan lehetne az aláírást a dokumentumtól elválasztani?
Ehhez vezessük be a Hash függvényeket.
Hash függvények jellemzése:
olyan speciális függvények, amelyek változó hosszúságú input esetén, fix hosszúságú outputot adnak,
\(y\) outputhoz egy olyan \(x\) inputot találni nehéz, amelyre igaz, hogy \( y = H(x) \),
nehéz olyan \(x’\) inputot találni, amely esetén \( H(x)=H(x’)\) azaz ugyanaz a Hash kód,
de ennek ellenére \(H(x)\) könnyen számolható,
jól szórjon: azaz ha az \(x\) csak 1 bitben is megváltozik, várhatóan \(y\) bitjeinek a fele megváltozzon.
A legismertebb Hash-függvények: SHA, MD2, MD5 (Message Digest 5).
Digitális aláírás Hash függvénnyel
A Hash függvénnyel végzett művelet úgy viselkedik mint egy digitális ujjlenyomat. A függvény biztosítja, hogy tetszőleges dokumentumnál a kód elég változatos lesz. Hogyan is működik ezzel a digitális aláírás?
\(y=H(x)\) alapján az \(y\)-t egy \(x\) dokumentumra kiszámítani. Ez az ujjlenyomat készítés.
\(y\) kódolása a titkos kulccsal
az eredmény csatolása a dokumentumhoz (aláírás)
Következmények
A következő kép ezt a folyamatot mutatja:
A hálózati kommunikáció során a következő adatokat továbbítjuk:
Az aláírás sértetlenségét a következőképpen állapíthatjuk meg:
számítsuk ki a kapott dokumentum Hash kódját
a nyilvános kulccsal dekódoljuk a kódolt Hash-t
az előző lépéseknek ugyanazt a Hash kódot kell adniuk