Skip to main content

CRYPTOGRAPHY

Caesar Cipher dengan Python: Belajar Dasar Kriptografi

Caesar cipher python adalah latihan klasik untuk memahami dasar kriptografi: setiap huruf pada pesan digeser sejumlah posisi tetap di dalam alfabet. Sandi ini tidak layak melindungi data nyata, tetapi sangat berguna untuk mempelajari konsep plaintext, ciphertext, kunci, dan serangan brute force. Artikel ini menjelaskan cara kerjanya dan cara menulisnya dengan benar di Python.

Caesar cipher python adalah latihan klasik untuk memahami dasar kriptografi: setiap huruf pada pesan digeser sejumlah posisi tetap di dalam alfabet. Sandi ini tidak layak melindungi data nyata, tetapi sangat berguna untuk mempelajari konsep plaintext, ciphertext, kunci, dan serangan brute force. Artikel ini menjelaskan cara kerjanya dan cara menulisnya dengan benar di Python.

Apa Itu Caesar Cipher?

Caesar cipher adalah sandi substitusi: setiap huruf diganti huruf lain yang posisinya bergeser sejumlah tertentu. Namanya berasal dari Julius Caesar, yang menurut sejarawan Romawi Suetonius mengamankan pesan militernya dengan menggeser setiap huruf sebanyak tiga posisi. Variasi paling dikenal hari ini adalah ROT13, yaitu pergeseran 13 huruf, yang dipakai untuk menyamarkan spoiler di forum, bukan untuk mengamankan apa pun.

Jumlah pergeseran itulah yang disebut kunci. Dengan kunci 3, huruf A menjadi D, B menjadi E, dan seterusnya. Karena alfabet Latin berjumlah 26 huruf, ujung alfabet "berputar" kembali ke awal: X menjadi A, Y menjadi B, Z menjadi C.

Cara Kerja Pergeseran Huruf

Secara matematis, setiap huruf diberi nomor 0 sampai 25 (A = 0, B = 1, dan seterusnya). Enkripsi menambahkan kunci ke nomor itu lalu mengambil sisa bagi 26. Dekripsi mengurangkannya dengan cara yang sama. Contoh dengan kunci 3: kata HELLO menjadi KHOOR, karena H menjadi K, E menjadi H, L menjadi O, dan O menjadi R.

Operasi sisa bagi (modulo) inilah yang sering terlupa oleh pemula. Tanpa modulo, huruf seperti X, Y, dan Z akan menghasilkan nomor di atas 25, lalu program berhenti dengan kesalahan indeks atau menampilkan karakter yang salah.

Membuat Caesar Cipher Python Langkah demi Langkah

Fungsi ord() mengubah karakter menjadi kode angka Unicode dan chr() mengembalikannya, seperti dijelaskan di dokumentasi fungsi bawaan Python. Kode berikut menangani huruf besar dan huruf kecil, serta membiarkan spasi, angka, dan tanda baca tetap seperti aslinya.

def geser(teks, kunci):
    hasil = []
    for huruf in teks:
        if "a" <= huruf <= "z":
            dasar = ord("a")
        elif "A" <= huruf <= "Z":
            dasar = ord("A")
        else:
            hasil.append(huruf)
            continue
        hasil.append(chr((ord(huruf) - dasar + kunci) % 26 + dasar))
    return "".join(hasil)


def enkripsi(teks, kunci):
    return geser(teks, kunci)


def dekripsi(teks, kunci):
    return geser(teks, -kunci)


pesan = "Halo Dunia"
sandi = enkripsi(pesan, 3)
print(sandi)               # Kdor Gxqld
print(dekripsi(sandi, 3))  # Halo Dunia

Dekripsi cukup memanggil fungsi yang sama dengan kunci negatif. Di Python, hasil modulo untuk bilangan negatif tetap berada di rentang 0 sampai 25, sehingga trik ini berjalan benar. Coba ubah kunci menjadi 13 dan jalankan dua kali: Anda akan melihat ROT13 mengembalikan teks asli, karena 13 ditambah 13 sama dengan 26.

Versi interaktif yang meminta masukan pengguna

Agar lebih menyerupai program sungguhan, bungkus fungsi di atas dengan masukan dari pengguna. Pastikan kunci diubah menjadi bilangan bulat dan tangani masukan yang salah, karena program yang menerima teks apa adanya adalah kebiasaan buruk yang sebaiknya tidak Anda bawa ke proyek lain.

try:
    kunci = int(input("Kunci (angka): "))
except ValueError:
    print("Kunci harus berupa angka bulat.")
else:
    teks = input("Pesan: ")
    print(enkripsi(teks, kunci))

Mengapa Caesar Cipher Python Mudah Dipecahkan?

Ada dua kelemahan mendasar. Pertama, ruang kuncinya hanya 25 pergeseran yang berguna, sehingga siapa pun dapat mencoba semuanya. Kedua, sandi ini hanya menggeser huruf, jadi pola frekuensi huruf bahasa aslinya tetap terlihat di ciphertext. Dua sifat itu membuat Caesar cipher tidak memberi perlindungan nyata, sehingga program Caesar cipher Python hanya cocok sebagai bahan belajar. Untuk memahami kelemahan pertama, Anda bisa mencoba semua kunci pada ciphertext latihan milik Anda sendiri:

for kunci in range(1, 26):
    print(kunci, dekripsi(sandi, kunci))

Satu dari 25 baris itu akan terbaca sebagai kalimat yang bermakna. Analisis frekuensi bekerja dengan cara berbeda: dalam teks bahasa apa pun, sebagian huruf muncul jauh lebih sering daripada yang lain. Huruf yang paling sering muncul di ciphertext kemungkinan besar adalah pengganti huruf yang paling sering muncul di bahasa aslinya, sehingga kunci dapat ditebak tanpa mencoba semuanya.

Latihan semacam ini Latihan semacam ini sering muncul sebagai soal pemula di kompetisi CTF, yang dibahas di artikel tentang CTF dan platform latihan legal.

Dari Caesar ke Kriptografi Modern

Sandi Vigenere memperbaiki sebagian kelemahan itu dengan memakai pergeseran yang berbeda-beda di setiap posisi sesuai kata kunci yang berulang. Pengulangan tersebut masih bisa dideteksi secara statistik, sehingga Vigenere pun sudah usang. Kriptografi modern bergantung pada algoritma yang diuji publik bertahun-tahun, seperti AES yang distandarkan NIST dalam FIPS 197 dengan kunci 128, 192, atau 256 bit.

Aturan praktisnya: pelajari sandi klasik untuk memahami konsep, tetapi jangan pernah merancang atau menulis algoritma enkripsi sendiri untuk melindungi data sungguhan. Pakai pustaka dan standar yang sudah teruji. Bedakan juga enkripsi, yang bisa dibalik dengan kunci, dari hashing yang satu arah, seperti dijelaskan di perbedaan hashing dan enkripsi. Setelah nyaman dengan latihan ini, lanjutkan ke tools sederhana untuk keamanan dengan Python.

Pertanyaan yang Sering Diajukan

Apakah Caesar cipher masih aman dipakai?

Tidak. Ruang kuncinya hanya 25 kemungkinan dan pola huruf tetap terlihat, sehingga bisa dipecahkan dalam hitungan detik, bahkan tanpa komputer. Pakailah hanya untuk belajar atau permainan sandi.

Apa bedanya Caesar cipher dengan ROT13?

ROT13 adalah Caesar cipher dengan kunci tetap 13. Karena alfabet berjumlah 26 huruf, menerapkan ROT13 dua kali mengembalikan teks asli, sehingga enkripsi dan dekripsinya identik.

Bagaimana cara membuat Caesar cipher yang bisa memproses huruf besar dan kecil?

Tentukan dasar penghitungan sesuai jenis hurufnya, yaitu kode huruf a atau huruf A, lalu geser dengan modulo 26. Karakter selain huruf dibiarkan, seperti pada fungsi geser di atas.

Apa bedanya Caesar cipher dengan Vigenere?

Caesar memakai satu pergeseran untuk seluruh pesan. Vigenere memakai kata kunci sehingga pergeserannya berganti-ganti di tiap posisi. Vigenere lebih sulit dipecahkan, tetapi pola pengulangan kata kuncinya masih bisa dianalisis, jadi keduanya hanya cocok untuk belajar.

Kesimpulan

Caesar cipher python kecil dan mudah, tetapi mengajarkan gagasan yang terus dipakai di kriptografi modern: kunci, algoritma, dan ruang kunci yang harus cukup besar. Jika Anda ingin melanjutkan ke topik keamanan lain secara terstruktur, lihat kursus di Linuxhackingid.

Every article is reviewed by the practice lead who ran the work before it is published.

All insights

MORE ARTICLES

newest first
HANDS-ON LAB & TUTORIAL
October 29, 20267 read

Perintah Dasar Linux untuk Pemula Cyber Security

Menguasai perintah dasar linux adalah modal pertama bagi siapa pun yang ingin berkarier di cyber security, karena sebagian besar server, tools audit, dan lab latihan dijalankan lewat terminal. Artikel ini merangkum perintah yang paling sering dipakai, dikelompokkan berdasarkan tugasnya, dengan contoh yang aman dicoba di komputer atau mesin virtual milik Anda.

Ditulis oleh Tim Riset & Instruktur Praktisi Linuxhackingid | Editor Keamanan Informasi & Ethical Hacking
HANDS-ON LAB & TUTORIAL
October 29, 20267 read

Cara Menjalankan DeepSeek-R1 Secara Lokal di PC atau Laptop

Menjalankan DeepSeek-R1 secara lokal, atau deepseek offline, berarti model bahasa bekerja di komputer Anda sendiri sehingga prompt tidak dikirim ke server pihak lain. Dengan Ollama prosesnya hanya beberapa perintah, tetapi yang umumnya berjalan di PC adalah model distilasi berukuran kecil, bukan DeepSeek-R1 penuh yang berukuran 671 miliar parameter. Artikel ini menjelaskan pilihan ukuran, langkah pemasangan, dan cara mengamankannya.

Ditulis oleh Tim Riset & Instruktur Praktisi Linuxhackingid | Editor Keamanan Informasi & Ethical Hacking
HANDS-ON LAB & TUTORIAL
October 29, 20267 read

Membangun Lab Cyber Security di Windows dengan WSL dan VirtualBox

Lab cyber security di komputer sendiri adalah tempat berlatih yang legal: Anda bebas mencoba tools dan memahami kerentanan tanpa menyentuh sistem orang lain. Di Windows, kombinasi WSL untuk lingkungan command-line Linux dan VirtualBox untuk mesin virtual yang terisolasi sudah cukup untuk memulai. Artikel ini menjelaskan rancangan lab, langkah pemasangan, dan aturan keselamatannya.

Ditulis oleh Tim Riset & Instruktur Praktisi Linuxhackingid | Editor Keamanan Informasi & Ethical Hacking

Get the next advisory first. No digest, no noise.

One email when something genuinely matters - or follow the community channels where we post first.

Join Telegram

NEXT STEP

Talk to an operator, not a sales desk.

A short scoping call, then scope, schedule and cost in writing within 2 working days.

METHODOLOGY & COMPLIANCE
ISO 27001PCI-DSSOJKUU PDP