Cryptography Mini Project

Caesar Cipher,
made visible.

Enkripsi dan dekripsi pesan, lihat pergeseran setiap karakter, validasi implementasi melalui test cases, lalu buktikan kelemahan Caesar Cipher dengan brute-force seluruh kemungkinan key.

1–2. Encryption & Decryption

Huruf A–Z digeser berdasarkan key. Huruf besar/kecil dipertahankan; spasi, angka, dan tanda baca tidak diubah.

🔒 Encrypt

Tip: Ctrl/Cmd + Enter untuk encrypt.

🔓 Decrypt

Gunakan key yang sama dengan proses encrypt.

Bagaimana algoritmanya bekerja?

Bagian ini dibuat untuk membantu menjelaskan konsep saat presentasi, bukan hanya menunjukkan hasil program.

1

Map huruf → angka

A = 0, B = 1, ..., Z = 25. Contoh: H menjadi 7.

2

Geser dengan key

Encryption menambah key; decryption mengurangi key. Operasi modulo 26 membuat nilai selalu kembali ke rentang alfabet.

3

Map angka → huruf

Nilai hasil dikonversi kembali menjadi huruf. Karakter non-alfabet dipertahankan agar pesan tetap terbaca.

3. Test Cases

Kasus uji berikut berbeda dari contoh HELLO → KHOOR dan memeriksa encryption, wrap-around alfabet, case/punctuation, serta decryption.

# Input Algorithm Your Output Expected Output PASS / FAIL

4. Input Validation

Aplikasi tidak crash ketika input salah; user mendapatkan pesan yang menjelaskan apa yang perlu diperbaiki.

5. Security / Attack Feature — Brute Force

Caesar Cipher lemah karena ruang kuncinya sangat kecil. Penyerang dapat mencoba seluruh 26 kemungkinan tanpa mengetahui key.

⚠️ Attack Lab

Tidak ada password cracking kompleks di sini: cukup decrypt ciphertext dengan key 0 sampai 25, lalu cari kandidat yang terbaca.

6. Presentation Guide

Alur demo singkat agar penjelasan konsep dan keberhasilan program terlihat jelas.

  1. Jelaskan konsep: Caesar Cipher menggeser posisi setiap huruf dengan key tetap dan modulo 26.
  2. Demo encrypt: masukkan plaintext dan key, lalu tunjukkan ciphertext serta visualisasi per karakter.
  3. Demo decrypt: gunakan ciphertext + key yang sama untuk mengembalikan plaintext.
  4. Run test cases: tunjukkan tabel Your Output vs Expected Output dan status PASS.
  5. Validasi: kosongkan key atau isi 30 untuk menunjukkan error yang aman.
  6. Attack: jalankan brute force dan tunjukkan bahwa plaintext asli muncul di antara hanya 26 kandidat.