Caesar Cipher CLI
Python CLI alat za demonstraciju klasične kriptografije: enkripcija, dekripcija i brute-force analiza Caesarove šifre.
Features
- Enkripcija teksta Caesarovom šifrom (A–Z) uz očuvanje razmaka i interpunkcije
- Dekripcija pomoću poznatog ključa (0–25)
- Brute-force način rada (isprobava svih 26 ključeva)
- Stabilan CLI output i pomoć (
-h)
Cilj projekta je edukativan: pokazati zašto je mali keyspace slabost i kako izgleda “sigurnosno razmišljanje” u praksi.
Files
cipher.py— glavna logika (encrypt/decrypt/brute)README/ dokumentacija — primjeri poziva i opis rada
Kako koristiti (brzo)
Pokreni iz foldera projekta. Ključ je broj 0–25.
# Enkripcija
python cipher.py encrypt --text "HELLO WORLD" --key 3
# Dekripcija
python cipher.py decrypt --text "KHOOR ZRUOG" --key 3
# Brute-force (ispiše sve ključeve 0–25)
python cipher.py brute --text "EBIIL TLOIA"
python cipher.py -h da vidiš sve opcije.
Writeup
Caesarova šifra je klasična supstitucijska šifra gdje se svako slovo poruke pomakne za fiksan broj mjesta u abecedi. Taj pomak je ključ i u standardnoj abecedi ima raspon 0–25. Iako je povijesno važna i odlična za učenje, danas se smatra nesigurnom jer ima premalen broj mogućih ključeva. :contentReference[oaicite:1]{index=1}
Teorijska pozadina
Login i “sigurnost” često zvuče kompleksno, ali kriptografija kreće od jednostavnih ideja: pretvori poruku u oblik koji nije odmah čitljiv bez ključa. Caesar je super uvod jer se sve svodi na pomicanje slova, a odmah se vidi i najveći problem: napadač može probati sve ključeve u sekundi. :contentReference[oaicite:2]{index=2}
Kako računalo “vidi” slova
Računalo radi s brojevima. U Pythonu su korisne funkcije ord() i chr():
jedna pretvara znak u broj, a druga vraća broj nazad u znak. Slova mapiram na raspon 0–25,
a zatim koristim modularnu aritmetiku da se abeceda “zatvori” (npr. Z → A). :contentReference[oaicite:3]{index=3}
Ako je
A = 0, B = 1, …, Z = 25, onda enkripcija radi:
(slovo + ključ) mod 26.
Enkripcija
Enkripcija prolazi kroz svaki znak teksta. Ako je znak slovo, pretvori se u broj, doda se ključ i vrati u slovo. Ako nije slovo (razmak, točka, zarez), ostaje isti — to čini output čitljivijim i olakšava provjeru rezultata. :contentReference[oaicite:4]{index=4}
- slovo → mapiranje u 0–25 → + ključ →
mod 26→ nazad u slovo - ne-slovo → ostaje isto
Dekripcija
Dekripcija je “ogledalo” enkripcije: umjesto dodavanja, radi se oduzimanje ključa. Zato što je algoritam simetričan, samo obrnemo pomak i dobivamo original. :contentReference[oaicite:5]{index=5}
Brute-force napad
Najveća slabost Caesarove šifre je keyspace od samo 26. Napadač može ispisati svih 26 mogućnosti i “na oko” brzo prepoznati smislen tekst. U ovom projektu brute-force način rada postoji baš zato da se vidi koliko je to trivijalno i zašto moderni sustavi koriste jače mehanizme. :contentReference[oaicite:6]{index=6}
CLI dizajn
Alat je napravljen kao CLI pomoću argparse i ima tri moda: encrypt, decrypt i brute.
Ovo je namjerno “realističan” format jer se i u praksi security alati često koriste kroz terminal. :contentReference[oaicite:7]{index=7}