Kriptografi dan Steganografi
implementasi praktis teknik kriptografi (encoding Base64, hashing MD5, enkripsi AES-256-CBC) dan steganografi menggunakan Steghide pada lingkungan Linux.
Pendahuluan
Kriptografi merupakan disiplin ilmu yang mempelajari teknik pengamanan informasi melalui metode transformasi data. Dokumen ini menguraikan tiga konsep inti:
- Encoding: Transformasi data ke format berbeda yang bersifat reversibel
- Hashing vs. Enkripsi: Perbedaan fundamental antara fungsi unidirectional dan bidirectional
- Steganografi: Teknik penyembunyian data dalam media digital
1. Encoding
Encoding merupakan proses konversi data ke format spesifik menggunakan skema terstandarisasi yang memungkinkan rekonsiliasi data ke bentuk semula tanpa kehilangan informasi.
Implementasi Metode
Caesar Cipher
Caesar Cipher merupakan algoritma kriptografi klasik yang melakukan substitusi karakter dengan pergeseran posisi tetap dalam alfabet. Metode ini bersifat reversibel dan menjadi landasan perkembangan kriptografi modern sejak digunakan Julius Caesar (~100 SM) untuk komunikasi militer Romawi.
Contoh implementasi pergeseran 3 posisi:
Karakter Input A B C D E F G H I Karakter Output D E F G H I J K L - Proses Enkripsi (Shift +3):
1
echo "TEXT_ASLI" | tr 'A-Za-z' 'D-ZA-Cd-za-c'
Contoh eksekusi:
1 2
echo "cipher" | tr 'A-Za-z' 'D-ZA-Cd-za-c' # Output: flskhu
- Proses Dekripsi (Shift -3):
1
echo "TEXT_ENKRIPSI" | tr 'D-ZA-Cd-za-c' 'A-Za-z'
Contoh eksekusi:
1 2
echo "flskhu" | tr 'D-ZA-Cd-za-c' 'A-Za-z' # Output: cipher
Representasi Pergeseran (Shift +3):
Input A B C D E F … X Y Z Output D E F G H I … A B C
Catatan Implementasi:
- Transformasi hanya berlaku untuk karakter alfabet (A-Z/a-z)
- Karakter non-alfabet (numerik, simbol) tetap tidak terpengaruh
- Nilai pergeseran ≥26 akan mengalami wrap-around (contoh: Shift +27 ≡ Shift +1)
- Proses Enkripsi (Shift +3):
Base64 (Linux)
Base64 merupakan skema encoding biner-ke-teks yang mengkonversi data biner menjadi representasi ASCII menggunakan 64 karakter dasar, memungkinkan transmisi data melalui medium yang terbatas pada teks.
- Sintaks operasi:
- Encoding:
1
echo "encoding" | base64 # Output: ZW5jb2RpbmcK
- Decoding:
1
echo "ZW5jb2RpbmcK" | base64 -d # Output: encoding
- Encoding:
2. Hashing vs. Enkripsi
Representasi Visual Perbandingan Hashing dan Enkripsi
a. Hashing (Fungsi Unidirectional)
Proses transformasi plaintext menjadi nilai hash unik yang tidak dapat direkonsiliasi ke bentuk semula. Digunakan primarily untuk verifikasi integritas data.
- Contoh implementasi MD5:
1
echo "teks" | md5sum # Output: c71448894eaaadb0217e6d4e92b44ef7
Peringatan Keamanan: MD5 tidak direkomendasikan untuk aplikasi kriptografi modern due to vulnerability terhadap collision attacks.
b. Enkripsi (Fungsi Bidirectional)
Proses konversi plaintext menjadi ciphertext menggunakan kriptografi kunci-simetris/asimetris, yang dapat dikembalikan ke bentuk semula dengan kunci dekripsi yang sesuai.
- Implementasi OpenSSL AES-256-CBC:
- Enkripsi
1 2
echo "teks" | openssl aes-256-cbc -a -pass pass:changeme -pbkdf2 # Output: U2FsdGVkX188ZcetEtbc5uRwnzPC0XyXccmRWxoWWYc=
- Dekripsi
1 2
echo "U2FsdGVkX188ZcetEtbc5uRwnzPC0XyXccmRWxoWWYc=" | openssl aes-256-cbc -d -a -pass pass:changeme -pbkdf2 # Output: teks
Parameter Konfigurasi:
-a
: Mengaktifkan encoding/decode Base64-d
: Mode dekripsi-pass pass:<password>
: Spesifikasi passphrase untuk key derivation-pbkdf2
: Menggunakan Password-Based Key Derivation Function 2 (meningkatkan security melalui salted iteration)
- Enkripsi
3. Steganografi
Steganografi (Greek: steganos “tersembunyi” + graphein “menulis”) merupakan praktik penyembunyian informasi dalam media digital carrier (gambar, audio, video) untuk mengaburkan eksistensi komunikasi rahasia. Berbeda dengan kriptografi yang fokus pada pengacakan konten, steganografi menitikberatkan pada penyamaran keberadaan pesan.
Steghide merupakan software steganografi open-source berlisensi GPL yang didesain untuk embedding data dalam file gambar (JPEG, BMP) dan audio (WAV, AU). Menggunakan algoritma kompresi dan enkripsi opsional berbasis passphrase, Steghide memastikan:
a. Instalasi Steghide
1
sudo apt update && sudo apt install -y steghide
b. Persiapan File
- Buat file teks payload (
touch pesan-rahasia.txt
) - Siapkan carrier image format JPG/JPEG (
gambar.jpg
)
c. Embedding Pesan
1
steghide embed -cf gambar.jpg -ef pesan-rahasia.txt
- Sistem akan meminta input passphrase
- File output (
gambar.jpg
) kini mengandung embedded data
d. Ekstraksi Pesan
1
steghide extract -sf gambar.jpg -xf pesan-ekstrak.txt
- Diperlukan passphrase identik untuk proses dekripsi
- Payload terekonstruksi dalam
pesan-ekstrak.txt
e. Verifikasi Integritas
Lakukan komparasi checksum atau konten antara pesan-rahasia.txt
dan pesan-ekstrak.txt
untuk memvalidasi integritas data.