UPB-zadanie-3

Zadanie 3 – aplikácia na šifrovanie a dešifrovanie s využitím RSA a kontroly integrity

 

Vytvorenú aplikáciu na šifrovanie súborov (zadanie 2)  rozšírte tak, že vykonáte kontrolu integrity,  prostredníctvom MAC alebo AEAD módu. Čiže mali by ste byť schopný overiť či došlo k modifikácii vášho zašifrovaného súboru. Na šifrovanie odporúčame použiť AES GCM alebo AES CCM mód.

Zároveň vygenerovaný symetrický kľuč K zašifrujete asymetricky a pripojíte k zašifrovanému súboru v rámci hlavičky/päty súboru s metadátami potrebnými k dešifrovaniu (pridáte aj  informáciu na kontrolu integrity). Dbajte na to, aby ste vedeli skontrolovať aj integritu zašifrovaného súboru.

Takže aplikácia vygeneruje náhodný kľúč, ktorým plain text (alebo súbor) zašifrujete. Vygenerovaný AES kľúč zašifrujete RSA vereným kľúčom (verejny kľuč osoby kto má súbor dešifrovať) a priložíte do hlavičky zašifrovaného súboru. Do hlavičky priložíte aj ostatne údaje potrebné na dešifrovanie a kontrolu integrity.

Pri dešifrovaní osoba ktorému ste súbor poslali najskôr si prečíta informácie z hlavičky a vykoná kontrolu integrity. Ak súbor nie je poškodený, dešifruje pomocou RSA šifrovací kľuč uložený v hlavičke a pomocou dešifrovaného symetrického kľúča dešifruje súbor.

 

Bonus:

Na riešenie možete použit pristup, že si ukladanie a čitanie z-do hlavičky ošetrite sami, alebo využijete AEAD funkcionalitu. Tiež na kontrolu integrity mate možnosť použiť MAC, alebo AES GCM, AES CCM.

Pri použiti AEAD a AES GCM, AES CCM je možne udeliť bonusový bod.

 

Pokyny:
1. Využite existujúce kryptografické funkcie / API, nie však celé hotové cudzie riešenie.
2. Vyberte si jeden zo štandardných programovacích jazykov: Java, C, Python. V prílohe zadania sú odkazy na stránky, z ktorých sa dá odraziť pri tvorbe kryptografickej časti zadania.

  1. Napíšte k aplikácii stručnú používateľskú dokumentáciu, ktorá obsahuje informácie:
    A. čo ste použili (jazyk, knižnica, zdroje),
    B. schematicky, aký je formát zašifrovaného súboru
  2. ako sa aplikácia kompiluje/inštaluje,
    E. ako sa aplikácia používa,
    F. bezpečnostné odporúčania pre používateľa/komentáre.
  3. stručný popis vášho postupu šifrovania a dôvody výberu danej šifrovacej funkcie a veľkosti kľúča z hľadiska rýchlosti a bezpečnosti.

 

 

Pozn.: Pri výbere šifrovacích funkcií a veľkosti kľúča, treba klasť dôraz aj bezpečnostné odporúčania ohľadne šifrovania.

 

Dôležité: Do AIS sa v stanovenom termíne (miesto odovzdania s názvom “Šifrovanie2”) odovzdáva  zdrojový kód aplikácie (iba zdrojový kód), skompilovaný exe súbor, ukážkový zašifrovaný a dešifrovaný súbor s vygenerovanými klučovými pármi a  dokumentácia v PDF formáte v jednom ZIP súbore.

ZIp súbor vkladante zároveň aj do app na hodnotenie zadania: https://uvoddopocitacovejbezpecnosti.herokuapp.com/

Nedodržanie pokynov môže viesť k tomu, že zadanie nebude hodnotené. V prípade neodovzdania, zistení plagiatorstva, alebo neskorého odovzdania bude za zadanie pridelene 0 bodov.