Skip to content

Nebojsa02/cryptography-evoting-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kriptografski sistem za elektronsko glasanje

Edukativni Java simulator elektronskog glasanja koji demonstrira obezbjeđivanje autentičnosti, tajnosti i integriteta podataka korištenjem kriptografskih mehanizama iz Bouncy Castle biblioteke.

📖 Uvod

Ovaj projekat predstavlja edukativnu simulaciju elektronskog glasanja razvijenu za potrebe predmeta Kriptografija 2026. godine. Projekat demonstrira upotrebu infrastrukture javnog ključa (PKI), X.509 sertifikata, hibridne enkripcije, digitalnih potpisa i zaštite integriteta podataka u kontrolisanom scenariju elektronskog glasanja.

Sistem simulira sigurne sesije glasanja između organizatora i glasača, sa fokusom na autentičnost, tajnost i integritet procesa glasanja.

🔐 Ključne sigurnosne funkcionalnosti

U skladu sa specifikacijom projekta, implementirane su sljedeće funkcionalnosti:

  • Dvonivojska CA hijerarhija: Root CA, Organizacioni CA i Glasački CA sa X.509 ekstenzijama.
  • Hibridna enkripcija: Pojedinačni glasovi se šifruju pomoću AES algoritma, dok se simetrični ključevi štite pomoću RSA algoritma.
  • Zaštita integriteta: Metapodaci se štite korištenjem HMAC algoritama.
  • Digitalni potpisi: Omogućavaju provjeru autentičnosti i neporecivost za glasače i završne izvještaje.
  • Upravljanje CRL listom: Automatsko opozivanje sertifikata nakon tri neuspješna pokušaja prijave.

🛠 Tehnologije

  • Programski jezik: Java 21
  • Kriptografija: Bouncy Castle (bcprov i bcpkix)
  • Build alat: Maven
  • Boilerplate: Project Lombok

🏗 Struktura projekta

  • com.evoting.ca - logika sertifikacionih autoriteta, generisanje sertifikata i podrška za opoziv sertifikata.
  • com.evoting.crypto - kriptografske operacije kao što su hibridna enkripcija, digitalni potpisi, HMAC i rad sa ključevima.
  • com.evoting.service - servisni sloj koji koordinira tok glasanja, provjere autentifikacije i poslovnu logiku.
  • com.evoting.model - model klase korištene u simulaciji elektronskog glasanja, implementirane uz pomoć Lombok biblioteke.

🚀 Pokretanje projekta

  1. Klonirati repozitorijum.
  2. Pokrenuti komandu:
mvn clean install

Ova komanda preuzima potrebne Maven zavisnosti, uključujući Bouncy Castle i Lombok.

⚠️ Napomena

Projekat je namijenjen isključivo u edukativne i demonstracione svrhe. Nije riječ o produkcionom sistemu za elektronsko glasanje.

About

Secure Java e-voting simulator providing authenticity, secrecy, and integrity via Bouncy Castle cryptographic primitives.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages