Elektronický podpis Ivan Bílek Žilinská Univerzita FRI 2010/2011
Definícia Elektronický podpis je matematická schéma pre demonštrovanie autenticity elektronickej správy alebo dokumentu. Platný elektronický podpis dáva príjemcovi dôvod veriť, že správa bola vytvorená známym odosielateľom a nebola zmenená počas presunu.
Elektronický podpis/zaručený elektronický podpis Je treba rozlišovať medzi elektronickým podpisom a zaručeným elektronickým podpisom. Zaručený elektronický podpis má narozdiel od elektronického podpisu právny význam(špecifikovaný zákonmi danej krajiny). Dá sa povedať, že zaručený elektronický podpis využíva špecifické implementácie elektronického podpisu. Rozdiel medzi elektronickým podpisom a zaručeným elektronickým podpisom je ako medzi úradne overeným a neovereným vlastnoručným podpisom.
Princíp Pre fungovanie elektronického podpisu sú dôležité určité základné zložky. Zvolená hashovacia funkcia Zvolený šifrovací algoritmus
Hash funkcia Hash funkcia je matematická funkcia, ktorá konvertuje dáta premenlivej dĺžky na prislúchajúcu hodnotu, väčšinou celé číslo. Existuje mnoho typov hash funkcií Pre všeobecné použitie ako napr. CRC(Cyclic redundancy check) používané na odhalenie zmeny dát Kryptografické hash funkcie
Kryptografické hash funkcie Pri práci s elektronickým podpisom sa používajú kryptografické hash funkcie, čo je špeciálna pod-kategória hash funkcií so zameraním na zvýšenú bezpečnosť.
Definícia Kryptografická hash funkcia Deterministická funkcia, ktorá prijíma ako vstup ľubovoľný blok dát a vracia reťazec bitov s pevnou dĺžkou tak, že akákoľvek náhodná alebo úmyselná zmena tohoto bloku zmení aj hodnotu výstupného reťazca. Dáta, ktoré majú byť zakódované sa často nazývajú -správa a hash hodnota -podpis.
Ideálny krypografický algoritmus je jednoduché vypočítať hash pre danú hodnotu je nemožné* nájsť správu pre daný hash(koncept jedno-cestnej funkcie) je nemožné* modifikovať správu bez zmeny hashu je nemožné* nájsť dve rôzne správy s rovnakým hashom *(infeasible- problém, ktorý môže byť vyriešený, ale nie v dostatočne krátkom čase na to aby bolo riešenie použiteľné)
Typy MD(MD2, MD4, MD5, MD6) SHA(SHA-1, SHA-2, SHA-3) RIPEMD(RIPEMD-128, RIPEMD-256, RIPEMD-320)
Šifrovanie Pri elektronickom podpise sa používajú asymetrické kryptografické algoritmy, teda také kde sa pracuje s verejným a súkromným kľúčom. Príklady: RSA DSA ElGamal
RSA Používa sa najčastejšie RSA(Rivest-Shamir-Adleman) je kryptografický algoritmus. Je to prvý algoritmus vhodný ako pre podpisovanie tak aj pre šifrovanie a predstavoval veľký pokrok v oblasti kryptografie. Je široko používaný v komerčnej sfére a je považovaný za bezpečný pri dostatočne veľkej dĺžke kľúča a aktuálnej implementácii.
Princíp Pri RSA sa používa verejný a súkromný kľúč. Verejný kľúč je známy a môže byť použitý hocikým. Správy zašifrované verejným kľúčom, môže dešifrovať len súkromný kľuč. Algoritmus sa skladá z troch krokov: vytvorenie kľúčov zašifrovanie správy dešifrovanie správy
Vytvorenie kľúčov 1.Náhodne sa zvolia dve prvočísla p,q (z bezpečnostných dôvodov je výhodné použiť prvočísla s podobnou bit-ovou dĺžkou). 2.Vypočíta sa n=p*q, n sa používa ako modulus pri verejnom aj súkromnom kľúči. 3.Vypočíta sa φ(n) = (p-1)(q-1) kde φ je Eulerova funkcia.
Vytvorenie kľúčov 4.Vyberie sa celé číslo e také že 1 < e < φ(n) a zároveň e a φ(n) sú nesúdeliteľné. e je zverejnené ako exponent verejného kľúča 5. Vypočíta sa d=e 1 (mod φ(n)) - d je modulárna multiplikatívna inverzia e mod φ(n). d je uschované ako exponent súkromného kľúča
Šifrovanie Verejný kľúč sa skladá z čísla n a exponentu e. Ak chce osoba A poslať zašifrovanú správu osobe B, vytvorí správu m a potom konvertuje hodnotu tejto správy na celé číslo. Zašifrovaná správa sa získa takýmto spôsobom, kde (n,e) tvoria verejný kľúč patriaci osobe B: c=m e mod n
Dešifrovanie Súkromný kľúč sa skladá z čísla n a exponentu d. Osoba B môže získať správu m zo zašifrovanej správy c následujúcim spôsobom, pomocou svojho súkromného kľúča (n,d): m=c d mod n
Príklad 1. Určí sa p=61 a q=53 2.Vypočíta sa n = 61*53 = 3233 3.Vypočíta sa hodnota eulerovej funkcie ako φ(n) = (p-1)*(q-1) teda φ(n) = (61-1)*(53-1) = 3120 4.Vyberie sa akékoľvek číslo medzi 1 a 3120, ktoré je s 3120 nesúdeliteľné vyberiem napr. e = 17 5.Vypočíta sa d ako modulárna multiplikatívna inverzia e mod φ(n) d = 2753
Príklad Verejný kľúč je (n=3233, e=17) Súkromný kľúč je (n=3233, d=2753) Pre zašifrovanie m=65 : c=65^17 mod 3233 = 2790 Pre dešifrovanie c=2790: m=2790^2753 mod 3233 = 65
Padding RSA je samo o sebe zraniteľné voči určitým typom útokov. Aby sa vyhlo týmto problémom, implementácie RSA väčšinou využívajú nejakú formu paddingu na správe m ešte predtým ako ju zašifrujú. Napríklad štandard PKCS#1 vyžaduje padding schému OAEP, ktorá pridáva element náhody a tým mení deterministickú šifrovaciu schému RSA na probabilistickú.
Bezpečnosť Bezpečnosť RSA je úzko spojená so schopnosťou faktorizácie veľkých čísel. Pretože ak by sa útočníkovi podarilo zistiť p a q tvoriace n=p*q, dokázal by vypočítať φ(n), pomocou ktorého by získal z verejného exponentu e súkromný exponent d, čo by znamenalo úplné prelomenie kľúča. V súčasnosti je táto úloha klasifikovaná ako ťažká. Sú však predpoklady že kvantový počítač by to mohol zvládnuť v polynomiálnom čase ak by bol niekedy zostrojený.
Využitie pri elektronickom podpise Vlastnosťou RSA je, že ho je možné použiť aj opačným spôsobom. Ak chce osoba A podpísať dokument, tak aby bolo jednoznačné, že tak vykonala práve ona, na zašifrovanie podpisu použije svoj súkromný kľúč (n,d), osoba B môže podpis dešifrovať pomocou verejného kľúča (n,e). RSA má tú vlastnosť, že umožňuje použiť dvojicu - súkromný a verejný kľúč, buď na dešifrovanie-šifrovanie alebo šifrovanie-dešifrovanie. Osoba B tak môže veriť že osoba A je autorom dokumentu keďže len ona mohla zašifrovať podpis svojím súkromným kľúčom tak aby mohol byť dešifrovaný príslušným verejným kľúčom.
Elektronický podpis - princíp Zvolí sa asymetrický kryptografický algoritmus napr. RSA a nejaká hash funkcia napr. SHA-1. Vytvorí sa pár kľúčov, jeden súkromný a druhý verejný.
Elektronický podpis - princíp Pre podpísanie dokumentu sa vykoná následovné: Získa sa hash hodnota tohoto dokumentu pomocou hashovacej funkcie. Táto hodnota sa zašifruje pomocou súkromného kľúča a pripojí k dokumentu, toto je elektronický podpis.
Elektronický podpis - princíp Pre overenie pravosti dokumentu sa dešifruje pripojený podpis pomocou verejného kľúča, takto sa získa dešifrovaná hash hodnota dokumentu, tú je možné porovnať s na novo vypočítanou hash hodnotou dokumentu. Ak sa rovnajú, je možné tvrdiť, že dokument podpísal práve známy vlastník súkromného kľúča a obsah dokumentu nebol zmenený.
Elektronický podpis - princíp Je to dôsledok faktu že len vlastník súkromného kľúča mohol zašifrovať podpis tak, aby ho bolo možné dešifrovať práve jeho verejným kľúčom a ak by bol obsah dokumentu po tomto úkone zmenený, zmenila by sa aj hash hodnota dokumentu.
Problém Ako je možné s istotou určiť vlastníka držaného verejného kľúča? Verejný kľúč mohol byť kľudne podstrčený. Čo by umožnilo skutočnému vlastníkovi podstrčeného kľúča vydávať sa za niekoho iného.
Certifikačná autorita Certifikačná autorita je entita, ktorá certifikuje vlastníctvo nejakého verejného kľúča konkrétnou osobou(právnickou/fyzickou). Je to tretia strana, ktorej veria všetci účastníci.
Certifikačná autorita Vydáva digitálne certifikáty, ktoré obsahujú verejný kľúč a informácie o jeho majiteľovi tieto údaje sú elektronicky podpísané certifikačnou autoritou a tá sa zaručuje za tieto informácie. Autor potom odosiela dokument spolu elektronickým podpisom a digitálnym certifikátom na ktorom sú informácie overiteľné u certifikačnej autority.
Certifikačná autorita Certifikačné autority tvoria hierarchickú štruktúru, teda autority vyššie v štruktúre sa zaručujú za autority ktoré sú nižšie, z toho vyplýva že ak by bola integrita nejakej certifikačnej autority narušená tak by to zasiahlo všetky CA pod ňou.
Vlastnosti elektronického podpisu Autenticita Integrita Je možné jednoznačne určiť a overiť identitu zdroja správ, zabezpečuje certifikačná autorita. Zaručuje že elektronicky podpísaná správa nebola zmenená po jej podpísaní(počas prenosu), pretože by to znehodnotilo elektronický podpis. Nepopierateľnosť Entita, ktorá podpísala správu elektronickým podpisom nemôže neskôr tvrdiť že tak nevykonala.
Zdroje http://en.wikipedia.org/wiki/rsa http://en.wikipedia.org/wiki/cryptographic_hash_function http://en.wikipedia.org/wiki/oaep http://en.wikipedia.org/wiki/certificate_authority http://en.wikipedia.org/wiki/public_key_certificate http://en.wikipedia.org/wiki/digital_signature http://en.wikipedia.org/wiki/electronic_signature iné