6II0020 - Kryptografia a bezpečnosť
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Zadania v minulom akademickom roku 2015/2016Úloha č. 1Dešifrujte text zašifrovaný Vigenerovskou šifrou a určte použité heslo. Šifrujú sa len písmená veľkej telegrafnej abecedy (mod 26), všetky ostatné (väčšinou formátovacie) znaky ignorujte. Heslo je náhodne vygenerované, primerane dlhé (od 20 do 30 znakov vrátane). Zašifrované texty si môžete stiahnuť tu. Každý pri predvádzaní riešenia úlohy bude dešifrovať text s číslom X = 1 + (OSC mod 50), kde OSC je vaše osobné číslo. Úloha č. 2Ospravedlňujem sa za chybu v súbore sifra64 pre 64-bitový Linux. Omylom som v ňom použil iný kľúč, chyba je už odstránená. Pokúste sa aspoň čiastočne dešifrovať text zašifrovaný algoritmom DES ak viete, že bol zašifrovaný slovenský text, ktorý obsahoval len veľké písmená A až Z, číslice 0 až 9 a znaky medzera, bodka a čiarka. K dispozícii máte spustiteľný súbor šifrátora sifra32 (linux ELF-32), sifra64 (linux ELF-64) resp. sifra.exe (Win32 EXE), t.j. môžete čokoľvek zašifrovať. Program načítava 64-bitové bloky zo vstupného súboru a zašifrované bloky zapisuje do výstupného súboru. Názvy súborov sú 1. a 2. argument pri spustení: "./sifra vstup.txt vystup.enc". Zašifrované texty si môžete stiahnuť tu. Zdrojové kódy šifrátora (so zmeneným kľúčom): Každý pracujte na súbore s číslom X = 1 + (OSC mod 10), kde OSC je vaše osobné číslo. Pozn. Je veľmi dôležité mať dobrú databázu pravdepodobných osmíc. Aby ste ju mali čo najlepšiu spolupracujte medzi sebou, t.j. zozbierané slovenské texty si vzájomne vymieňajte! Zbierajte hlavne súčasnú prózu. Úloha č. 3Pokúste sa určiť heslá niekoľkých používateľov systému, z ktorého sa podarilo skopírovať tabuľku s prihlasovacími údajmi. Tabuľka v textovej podobe obsahuje prihlasovacie meno, soľ a odtlačok hesla (so soľou). Odtlačok sa počíta algoritmom MD5, ktorého výsledok je konvertovaný na String pomocou Base64Encoding. Vzorová implementácia funkcie na výpočet odtlačku v jazyku C# je v súbore Program.cs a v jazyku Python v súbore crypt.py. Súbor s prihlasovacími údajmi si môžete stiahnuť tu. Na oddelenie jednotlivých položiek bol použitý znak ":", každý riadok je teda v tvare "login:soľ:odtlačok". Každý pracujte na súbore s číslom X = 1 + (OSC mod 8), kde OSC je vaše osobné číslo. Pozn. Ako slabé heslá mohli byť použité slová s malým počtom písmen, krstné mená, slová zo slovníkov slabých hesiel dostupných na internete. Úloha č. 4Vypočítajte privátny kľúč RSA algoritmu a dešifrujte správu, ak poznáte prislúchajúci verejný kľúč. Kľúče som generoval 80-bitové, t.j. prvočísla p a q sú 40-bitové čísla v rozsahu 549755813888 až 1099511627775. V skutočnosti sa používajú prvočísla oveľa väčšie. Pridaním jedného bitu sa čas pri primitívnom algoritme zdvojnásobí, ako dlho by trval pre 1024-bitové prvočísla (2048 bitový modulus)? Už aj 80-bitový modulus je príliš veľký na to, aby ste prvočísla našli hrubou silou, treba si pomôcť sofistikovanejším algoritmom alebo použiť napríklad Wolfram Alpha. Každý pracujte na verejnom kľúči s poradovým číslom X = 1 + (OSC mod 50), kde OSC je vaše osobné číslo.
Úloha č. 5Vytvorte si dvojicu verejného a privátneho kľúča a pošlite mi digitálne podpísaný e-mail na adresu tomas.majer@fri.uniza.sk. Na vytvorenie platného certifikátu môžete použiť systém OpenPGP alebo certifikačnú autoritu. V prípade použitia OpenPGP si verejné kľuče vzájomne podpíšte a podpísané zaveste na kľúčový server alebo pošlite v samostatnom e-maile. |