TUGAS KRIPTOGRAFI
Membuat Algortima Sendiri ”Algoritma Ter-Puter”
Abstrak
Makalah ini membahas tentang algoritma kriptografi sederhana atau dapat
dikatakan kriptografi klasik, karena terdiri dari 26 (dua puluh enam)
huruf/karakter ditambah dengan 10 (sepuluh) angka, dan dibagi menjadi 6 (enam)
baris dan 6 (enam) kolom. Kemudian dilakukan transformasi baris dan kolom
sesuai kunci yang telah ditetapkan.
Kata kunci: kriptografi klasik, algoritma transformasi, enkripsi, dekripsi, plaintext,
ciphertext, kunci.
1. Latar belakang
Seiring perkembangan teknologi yang begitu pesat memungkinkan
manusia dapat berkomunikasi dan saling bertukar informasi/data secara jarak
jauh. Antar kota antar wilayah antar negara bahkan antar benua bukan merupakan
suatu kendala lagi dalam melakukan komunikasi dan pertukaran data. Maka
tuntutan akan sekuritas (keamanan) terhadap kerahasiaan informasi yang saling
dipertukarkan tersebut semakin meningkat. Banyak pengguna seperti departemen
pertahanan, suatu perusahaan atau bahkan individu-individu tidak ingin informasi
yang disampaikannya diketahui oleh orang lain atau kompetitornya atau negara
lain. Oleh karena itu dikembangkanlah cabang ilmu yang mempelajari tentang
cara-cara pengamanan data atau dikenal dengan istilah Kriptografi.
Dalam kriptografi terdapat dua konsep utama yakni enkripsi dan dekripsi.
Enkripsi adalah proses dimana informasi/data yang hendak dikirim diubah
menjadi bentuk yang hampir tidak dikenali sebagai informasi awalnya dengan
1
menggunakan algoritma tertentu. Dekripsi adalah kebalikan dari enkripsi yaitu
mengubah kembali bentuk tersamar tersebut menjadi informasi awal.
Algoritma kriptografi berdasarkan jenis kunci yang digunakan dapat
dibedakan menjadi dua jenis yaitu :
• Algoritma simetris
Dimana kunci yang digunakan untuk proses enkripsi dan dekripsi adalah kunci
yang sama.
• Algoritma asimetris
Dimana kunci yang digunakan untuk proses enkripsi dan dekripsi
menggunakan kunci yang berbeda.
Sedangkan berdasarkan besar data yang diolah dalam satu kali proses,
maka algoritma kriptografi dapat dibedakan menjadi dua jenis yaitu :
• Algoritma block cipher
Informasi/data yang hendak dikirim dalam bentuk blok-blok besar (misal 64bit)
dimana
blok-blok ini dioperasikan
dengan fungsi
enkripsi yang sama dan
akan
menghasilkan
informasi
rahasia dalam
blok-blok yang berukuran sama.
• Algoritma stream cipher
Informasi/data yang hendak dikirim dioperasikan dalam bentuk blok-blok
yang lebih kecil (byte atau bit), biasanya satu karakter persatuan persatuan
waktu proses, menggunakan tranformasi enkripsi yang berubah setiap waktu.
2. Dasar Teori
2. 1. Teori Kriptografi
Kriptografi adalah suatu ilmu yang mempelajari bagaimana cara menjaga
agar data atau pesan tetap aman saat dikirimkan, dari pengirim ke penerima tanpa
mengalami gangguan dari pihak ketiga. Menurut Bruce Schneier dalam bukunya
"Applied Cryptography", kriptografi adalah ilmu pengetahuan dan seni menjaga
message-message agar tetap aman (secure).
Konsep kriptografi sendiri telah lama digunakan oleh manusia misalnya pada
peradaban Mesir dan Romawi walau masih sangat sederhana. Prinsip-prinsip yang
mendasari kriptografi yakni:
2
• Confidelity (kerahasiaan) yaitu layanan agar isi pesan yang dikirimkan tetap
rahasia dan tidak diketahui oleh pihak lain (kecuali pihak pengirim, pihak
penerima / pihak-pihak memiliki ijin). Umumnya hal ini dilakukan dengan cara
membuat suatu algoritma matematis yang mampu mengubah data hingga menjadi
sulit untuk dibaca dan dipahami.
• Data integrity (keutuhan data) yaitu layanan yang mampu
mengenali/mendeteksi adanya manipulasi (penghapusan, pengubahan atau
penambahan) data yang tidak sah (oleh pihak lain).
• Authentication (keotentikan) yaitu layanan yang berhubungan dengan
identifikasi. Baik otentikasi pihak-pihak yang terlibat dalam pengiriman data
maupun otentikasi keaslian data/informasi.
• Non-repudiation (anti-penyangkalan) yaitu layanan yang dapat mencegah suatu
pihak untuk menyangkal aksi yang dilakukan sebelumnya (menyangkal bahwa
pesan tersebut berasal dirinya).
Seiring perkembangan jaman, maka kriptografi juga berkembang menjadi
kriptografi modern. Berbeda dengan kriptografi klasik yang menitikberatkan kekuatan
pada kerahasiaan algoritma yang digunakan (yang artinya apabila algoritma yang
digunakan telah diketahui maka pesan sudah jelas "bocor" dan dapat diketahui isinya
oleh siapa saja yang mengetahui algoritma tersebut), kriptografi modern lebih
menitikberatkan pada kerahasiaan kunci yang digunakan pada algoritma tersebut (oleh
pemakainya) sehingga algoritma tersebut dapat saja disebarkan ke kalangan masyarakat
tanpa takut kehilangan kerahasiaan bagi para pemakainya.
Berikut adalah istilah-istilah yang digunakan dalam bidang kriptografi :
• Plaintext (M) adalah pesan yang hendak dikirimkan (berisi data asli).
• Ciphertext (C) adalah pesan ter-enkrip (tersandi) yang merupakan hasil
enkripsi.
• Enkripsi (fungsi E) adalah proses pengubahan plaintext menjadi ciphertext.
• Dekripsi (fungsi D) adalah kebalikan dari enkripsi yakni mengubah ciphertext
menjadi plaintext, sehingga berupa data awal/asli.
• Kunci adalah suatu bilangan yang dirahasiakan yang digunakan dalam proses
enkripsi dan dekripsi.
3
Kriptografi itu sendiri terdiri dari dua proses utama yakni proses enkripsi dan
proses dekripsi. Seperti yang telah dijelaskan di atas, proses enkripsi mengubah plaintext
menjadi ciphertext (dengan menggunakan kunci tertentu) sehingga isi informasi pada
pesan tersebut sukar dimengerti.
plaintext ciphertext plaintext
enkripsi dekripsi
kunci enkripsi kunci dekripsi
Gambar 1. Diagram proses enkripsi dan dekripsi
Peranan kunci sangatlah penting dalam proses enkripsi dan dekripsi
(disamping pula algoritma yang digunakan) sehingga kerahasiaannya sangatlah
penting, apabila kerahasiaannya terbongkar, maka isi dari pesan dapat diketahui.
Secara matematis, proses enkripsi merupakan pengoperasian fungsi E (enkripsi)
menggunakan e (kunci enkripsi) pada M (plaintext) sehingga dihasilkan C
(ciphertext), notasinya :
E
(M) – C
Sedangkan untuk proses dekripsi, merupakan pengoperasian fungsi D (dekripsi)
menggunakan d (kunci dekripsi) pada C (ciphertext) sehingga dihasilkan M
(plaintext), notasinya :
D
(C) = M
Sehingga dari dua hubungan diatas berlaku :
D
d
e
d
(E
e
(M)) = M
4
2. 1. 1 Algoritma Simetris dan Asimetris
2. 1. 1. 1 Algoritma Simetris
Algoritma simetris (symmetric algorithm) adalah suatu algoritma dimana
kunci enkripsi yang digunakan sama dengan kunci dekripsi sehingga algoritma ini
disebut juga sebagai single-key algorithm.
Plaintext ciphertext plaintext
kunci enkripsi (K) kunci dekripsi (K)
Gambar 2. Diagram proses enkripsi dan dekripsi algoritma simetris
Sebelum melakukan pengiriman pesan, pengirim dan penerima harus
memilih suatu suatu kunci tertentu yang sama untuk dipakai bersama, dan kunci ini
haruslah rahasia bagi pihak yang tidak berkepentingan sehingga algoritma ini
disebut juga algoritma kunci rahasia (secret-key algorithm).
Kelebihan :
• Kecepatan operasi lebih tinggi bila dibandingkan dengan algoritma asimetrik.
• Karena kecepatannya yang cukup tinggi, maka dapat digunakan pada sistem
real-time
Kelemahan :
enkripsi dekripsi
• Untuk tiap pengiriman pesan dengan pengguna yang berbeda dibutuhkan
kunci yang berbeda juga, sehingga akan terjadi kesulitan dalam manajemen
kunci tersebut.
• Permasalahan dalam pengiriman kunci itu sendiri yang disebut “key distribution
problem”
Contoh algoritma : TwoFish, Rijndael, Camellia
2. 1. 1. 2 Algoritma Asimetris
5
Algoritma asimetris (asymmetric algorithm) adalah suatu algoritma
dimana kunci enkripsi yang digunakan tidak sama dengan kunci dekripsi. Pada
algoritma ini menggunakan dua kunci yakni kunci publik (public key) dan kunci
privat (private key). Kunci publik disebarkan secara umum sedangkan kunci
privat disimpan secara rahasia oleh si pengguna. Walau kunci publik telah
diketahui namun akan sangat sukar mengetahui kunci privat yang digunakan.
Plaintext ciphertext plaintext
kunci enkripsi (K1) kunci dekripsi (K2)
Gambar 3. Diagram proses enkripsi dan dekripsi algoritma asimetris
Pada umumnya kunci publik (public key) digunakan sebagai kunci enkripsi
sementara kunci privat (private key) digunakan sebagai kunci dekripsi.
Kelebihan :
• Masalah keamanan pada distribusi kunci dapat lebih baik
• Masalah manajemen kunci yang lebih baik karena jumlah kunci yang lebih
sedikit
Kelemahan :
enkripsi dekripsi
• Kecepatan yang lebih rendah bila dibandingkan dengan algoritma simetris
• Untuk tingkat keamanan sama, kunci yang digunakan lebih panjang
dibandingkan dengan algoritma simetris.
Contoh algoritma : RSA, DSA, ElGamal
2. 1. 2 Block Cipher dan Stream Cipher
Jika kita melihat berdasarkan ukuran serta format data yang akan diproses,
maka algoritma kriptografi dapat dibagi menjadi dua bagian yang utama yaitu:
6
• Block Cipher, algoritma kriptografi ini bekerja pada suatu data yang
berbentuk blok/kelompok data dengan panjang data tertentu (dalam beberapa
byte), jadi dalam sekali proses enkripsi atau dekripsi data yang masuk
mempunyai ukuran yang sama.
• Stream cipher, algoritma yang dalam operasinya bekerja dalam suatu pesan
berupa bit tunggal atau terkadang dalam suatu byte, jadi format data berupa
aliran dari bit untuk kemudian mengalami proses enkripsi dan dekripsi.
Pada algoritma penyandian blok (block cipher), plainteks yang masuk
akan diproses dengan panjang blok yang tetap yaitu n, namun terkadang ji ka
ukuran data ini terlalu panjang maka dilakukan pemecahan dalam bentuk blok yang
lebih kecil. Jika dalam pemecahan dihasilkan blok data yang kurang dari jumlah
data dalam blok maka akan dilakukan proses pading (penambahan beberapa bit).
3. Pembahasan
Seluruh huruf dan angka yang kita kenal berjumlah 36 (tiga puluh enam),
yang terdiri dari 26 huruf dari A sampai Z, dan 10 angka dari 0 sampai 9. Untuk
memudahkan ilustrasi pengrancangan algoritma kriptografi ter puter, maka dari 36
huruf dan angka tersebut dibagi menjadi 6 baris dan 6 kolom dan diberikan warna
yang berbeda untuk memudahkan dalam melihat perpindahan atau transformasi
ketika kunci diberikan.
Huruf dan Angka serta urutannya adalah sebagai berikut:
A B C D E F G H I J K L
1 2 3 4 5 6 7 8 9 10 11 12
M N O P Q R S T U V W X
13 14 15 16 17 18 19 20 21 22 23 24
Y Z 0 1 2 3 4 5 6 7 8 9
25 26 27 28 29 30 31 32 33 34 35 36
Berikut gambar awal dari pembagian 6 baris dan 6 kolom:
7
K1 K2 K3 K4 K5 K6
Baris 1
A B C D E F
Baris 2 G H I J K L
Baris 3 M N O P Q R
Baris 4 S T U V W X
Baris 5 Y Z 0 1 2 3
Baris 6 4 5 6 7 8 9
Gambar 4. Pembagian Huruf dan Angka.
3.1 Proses Transformasi
Dalam melakukan proses transformasi atau perpindahan baris dan kolom
mengacu pada kunci I (pertama) yang telah dibuat, kunci I adalah:
Kunci I:
a. Menukar Baris ke-1 dengan Baris ke-2
b. Menukar Baris ke-3 dengan Baris ke-4
c. Menukar Baris ke-5 dengan Baris ke-6
K1 K2 K3 K4 K5 K6
Baris 1
G H I J K L
Baris 2
A B C D E F
Baris 3
S T U V W X
Baris 4
M N O P Q R
Baris 5
4 5 6 7 8 9
Baris 6
Y Z 0 1 2 3
Gambar 5. Kunci/putaran I (pertama)
Proses tranfromasi atau perpindahan selanjutnya adalah dengan :
Kunci II:
a. Menukar Kolom ke-1 dengan Kolom ke-2
b. Menukar Kolom ke-3 dengan Kolom ke-4
c. Menukar Kolom ke-5 dengan Kolom ke-6
K1 K2 K3 K4 K5 K6
Baris 1
H G J I L K
Baris 2
B A D C F E
Baris 3
T S V U X W
Baris 4
N M P O R Q
Baris 5
5 4 7 6 9 8
Baris 6
Z Y 1 0 3 2
Gambar 6. Kunci/putaran II (dua)
8
Proses tranfromasi atau perpindahan selanjutnya adalah dengan :
Kunci III:
a. Menukar Baris ke-1 dengan Baris ke-4
b. Menukar Baris ke-2 dengan Baris ke-5
c. Menukar Baris ke-3 dengan Baris ke-6
K1 K2 K3 K4 K5 K6
Baris 1
N M P O R Q
Baris 2
5 4 7 6 9 8
Baris 3
Z Y 1 0 3 2
Baris 4
H G J I L K
Baris 5
B A D C F E
Baris 6
T S V U X W
Gambar 7. Kunci/putaran III (tiga)
Proses tranfromasi atau perpindahan selanjutnya adalah dengan :
Kunci IV:
a. Menukar Kolom ke-1 dengan Kolom ke-4
b. Menukar Kolom ke-2 dengan Kolom ke-5
c. Menukar Kolom ke-3 dengan Kolom ke-6
K1 K2 K3 K4 K5 K6
Baris 1
O R Q N M P
Baris 2
6 9 8 5 4 7
Baris 3
0 3 2 Z Y 1
Baris 4
I L K H G J
Baris 5
C F E B A D
Baris 6
U X W T S V
Gambar 8. Kunci/putaran IV (empat)
Proses tranfromasi atau perpindahan selanjutnya adalah dengan :
Kunci V:
a. Baris ke-1 dan Baris ke-6 tetap (tanpa transformasi)
b. Menukar Kolom ke-1 dengan Kolom ke-2 di Baris ke-2 sampai ke-5
c. Menukar Kolom ke-3 dengan Kolom ke-4 di Baris ke-2 sampai ke-5
d. Menukar Kolom ke-5 dengan Kolom ke-6 di Baris ke-2 sampai ke-5
K1 K2 K3 K4 K5 K6
Baris 1
O R Q N M P
Baris 2
9 6 5 8 7 4
Baris 3
3 0 Z 2 1 Y
9
Baris 4 L I H K J G
Baris 5
F C B E D A
Baris 6
U X W T S V
Gambar 9. Kunci/putaran V (lima)
Proses tranfromasi atau perpindahan selanjutnya adalah dengan :
Kunci VI:
a. Menukar Baris menjadi Kolom dan menukar Kolom menjadi Baris.
K1 K2 K3 K4 K5 K6
Baris 1
O 9 3 L F U
Baris 2
R 6 0 I C X
Baris 3
Q 5 Z H B W
Baris 4
N 8 2 K E T
Baris 5
M 7 1 J D S
Baris 6
P 4 Y G A V
Gambar 10. Kunci/putaran VI (enam)
Proses tranfromasi atau perpindahan selanjutnya adalah dengan :
Kunci VII:
a. Menggeser Kolom ke-2 ke kolom 1 diikuti kolom ke-3 sampai kolom
ke-6 selangkah kedepan dan Kolom ke-1 digeser ke kolom 6 pada
Baris ke-1.
b. Menggeser Kolom ke-3 ke kolom 1 diikuti kolom ke-4 sampai kolom
ke-6 selangkah kedepan dan Kolom ke-1 digeser ke kolom ke-5 diikuti
kolom ke-2 geser ke kolom 6 pada Baris ke-2.
c. Menggeser Kolom ke-4 , ke-5, ke-6 ke kolom 1, 2, 3 dan sebaliknya
pada Baris ke-3.
d. Menggeser Kolom ke-5 dan ke-6 ke kolom 1 dan 2, kolom ke-1
sampai kolom ke-4 digeser ke kolom 3 sampai 6 pada baris ke 4
e. Menggeser Kolom ke-6 ke kolom 1 dan menggeser kolom ke-1 sampai
kolom ke-5 ke kolom 2 sampai kolom6 pada baris ke 5.
Baris ke-6 tetap.
K1 K2 K3 K4 K5 K6
Baris 1
9 3 L F U O
Baris 2
0 I C X R 6
Baris 3
H B W Q 5 Z
Baris 4
E T N 8 2 K
Baris 5
S M 7 1 J D
10
Baris 6 P 4 Y G A V
Gambar 11. Kunci/putaran VII (tujuh)
Setelah proses tujuh kunci/putaran diatas maka didapat hasil enkripsi
sebagai berikut :
A B C D E F G H I J K L
9 3 L F U O 0 I C X R 6
M N O P Q R S T U V W X
H B W Q 5 Z E T N 8 2 K
Y Z 0 1 2 3 4 5 6 7 8 9
S M 7 1 J D P 4 Y G A V
Contoh plaintext dan ciphertext adalah sebagai berikut:
Plaintext:
Jadi pusing sendiri karena sabhu 2 grm
Ciphertext:
X9fc qnecb0 eubfczc r9zub9 e93in j 0zh
3.2. Proses Animasi.
Proses animasi sifatnya membantu menjelaskan detail gerakan
perpindahan huruf dan angka yang disesuaikan dengan kunci dari proses
transformasi diatas. Software yang digunakan adalah macromedia flash MX 2004.
4. Kesimpulan dan Saran.
Pengiriman suatu pesan atau data yang akan disampaikan kepada orang
yang kita beri pesan tanpa dapat diketahui oleh orang lain yang tidak berhak,
merupakan kegiatan yang sering dilakukan, maka keamanan pesan atau data
merupakan salah satu aspek terpenting dari sebuah sistem informasi.
Dengan belajar membuat algoritma kriptografi sendiri, kita dapat belajar
betapa pentingnya keamanan data, keamanan jaringan, dan keamanan sistem
informasi. Karena sebagai perancang sistem informasi, masalah keamanan sering
kurang mendapat perhatian, biasanya tampilan yang mendapat prioritas utama.
11
Dari belajar yang sederhana ini akan menjadi sebuah pijakan untuk membuat
karya yang berguna bagi masyarakat.
5. Daftar Pustaka
Bruce Schneier.2001 "Applied Cryptography", Canada: Jhon Willey & Son Inc
Dony Ariyus. 2008 "Pengantar Ilmu Kriptografi", Yogyakarta, Penerbit Andi.
Macromedia flash MX Software, 2004.
12