Projekt

Ana Kolar
0036464402
FER, godina: 2013./2014.
Mentor: Marin Golub

Download: jar | source

Kriptografija u Javi


Proizvod koji je razvijen u sklopu projekta je Java aplikacija koja prikazuje rad kriptografskih algoritama. U aplikaciji je moguće isprobati rad simetričnih algoritama (AES i DES), asimetričnog algoritma (RSA) i računanje sažetaka (MD5 i SHA-1). Namjena aplikacije je u edukativne svrhe za privatnu uporabu.

Osnovne funkcionalnosti aplikacije:

  • Unos teksta za kriptiranje (dekriptiranje) ili odabir tekstualne datoteke koju je potrebno kriptirati (dekriptirati)
  • Odabir tekstualne datoteke s ključem kojim se želi kriptirati (opcionalno) i odnosno odabir tekstualne datoteke s ključem za dekriptiranje bez kojeg se ono ne može izvesti
  • Računanje sažetka poruke (engl. message digest)
  • Prikaz rezultata


  • Tehničke značajke

    Koraci uporabe kriptografskih algoritama implementiranih u opisanoj biblioteci (javax.crypto, java.security):

  • generiranje ključa (ključeva) - ovisno o algoritmu
  • spremanje ključa u datoteku - kako bi se kriptirani tekst mogao dekriptirati
  • generiranje inicijalizacijskog vektora (potrebno za algoritme AES i DES uz CBC način kriptiranja)
  • spremanje niza bajtova od kojih se radi inicijalizacijski vektor (kako bi se mogao rekonstruirati prilikom dekriptiranja)
  • instanciranje klase Cipher
  • inicijaliziranje instanciranog Cipher objekta
  • korištenje doFinal() metode za završni korak kriptiranja (dekriptiranja)

  • Koraci korištenja hash funkcija (javax.crypto, java.security):

  • instanciranje klase MessageDigest
  • uporaba update() metode
  • uporaba digest() metode
  • Detaljni opis biblioteke možete pronaći ovdje



    Upute za korištenje


    Pokretanje

    U konzoli se pozicionirate na direktorij u kojem se nalazi CryptographyInJava.jar koji ste skinuli ovdje
    Zatim upišete java -jar CryptographyInJava.jar i pritisnete enter.


    Primjer korištenja

    U padajućem izborniku odabire se algoritam koji se želi isprobati. Moguće je kriptirati i dekriptirati poruke i datoteke algoritmima AES, DES i RSA i računati sažetke poruka hash funkcijama MD5, SHA-1. Na glavnom prozoru prikazane kratke upute za korištenje. Klikom na gumb Zatvori zatvara se prozor.

    Izborom simetričnog algoritma AES ili DES otvara se novi prozor u kojem je moguće odabrati i način kriptiranja (dekriptiranja) ECB ili CBC. Ukoliko se ne odabere, podrazumijevat će se ECB način kriptiranja. Moguće je kriptirati i dekriptirati poruku ili datoteku. Ukoliko je izbor kriptiranje moguće je odabrati datoteku s vlastitim ključem i potrebnim parametrima te ako se datoteka ne odabere algoritam će sam stvoriti ključeve i spremiti ih u datoteke AESSecretKey.txt i DESSecretKey.txt i ako se radi o CBC načinu stvorit će se i datoteka iv.txt u kojoj je spremljen materijal za izradu inicjializacijskog vektora kako bi se kriptirani podaci mogli dekriptirati. Pri dekriptiranju, odabir datoteke s ključem je nužan, a ukoliko se radi o CBC načinu, potreban je i odabir datoteke s inicijalizacijskim vektorom. Nakon što su uneseni podaci za kriptiranje i/ili datoteka s ključem potrebno je kliknuti na gumb Kriptiraj (odnosno Dekriptiraj). Ukoliko se radi o poruci, rezultat je prikazan u polju Rezultat, a ako se radi o datoteci ispisuje se poruka s nazivom datoteke koja sadrži kriptirane podatke, npr. encryptedFileCBC.txt. Klikom na gumb OK zatvara se prozor.

    Izborom asimetričnog algoritma i klikom na Potvrdi otvara se novi prozor. Moguće je kriptirati i dekriptirati poruku ili datoteku RSA algoritmom. Ukoliko je izbor kriptiranje moguće je odabrati datoteku s vlastitim javnim ključem te ako se datoteka ne odabere, algoritam će sam stvoriti ključeve i privatni ključ spremiti u datoteku privateRSAKey.txt kako bi se kriptirani podaci mogli dekriptirati. Ako se radi o dekriptiranju, odabir datoteke s ključem je nužan. Nakon što su uneseni podaci za kriptiranje i/ili datoteka s ključem potrebno je kliknuti na gumb Kriptiraj (odnosno Dekriptiraj). Ukoliko se radi o poruci, rezultat je prikazan u prozoru Rezultat, a ako se radi o datoteci ispisuje se poruka s nazivom datoteke koja sadrži kriptirane podatke, npr. decryptedFileRSA.txt. Klikom na gumb OK zatvara se prozor.

    Klikom na Hash moguće je birati između hash funkcija MD5 i SHA-1. Klikom na jednu od tih funkcija i klikom na Potvrdi otvara se novi prozor u kojem se računa sažetak ručno unesene poruke.

    Potrebno je unijeti niz znakova i klikom na Sazmi poruku izračunati sažetak se prikaže u polju Rezultat.
    Klikom na Izlaz moguće je odabrati Kraj simulacije čime se izlazi iz aplikacije.
    Klikom na Info moguće je odabrati link na web stranicu na kojoj se nalazi dokumentacija aplikacije i upute za korištenje.

    Literatura

    1. Budin, Golub, Jakobović, Jelenković : Operacijski sustavi
    2. http://docs.oracle.com/javase/7/docs/api/javax/crypto/package-summary.html
    3. http://docs.oracle.com/javase/7/docs/api/java/security/package-summary.html