suatu fasilitas untuk mengkonversikan plaintext ke ciphertext dan sebaliknya. Urutan proses kerja secara umum dapat digambarkan pada Gambar 1 sebagai
berikut:
Gambar 2.1 Mekanisme Kriptografi
Sumber : Lia Silviana, 2013
Enkripsi encryption, adalah proses yang dilakukan untuk mengubah pesan yang tidak disandikan plaintext ke dalam bentuk yang tidak dapat
dibaca ciphertext, dekripsi decryption adalah proses yang dilakukan untuk mengubah pesan yang tidak dapat dibaca kedalam bentuk yang dapat dibaca
dan dimengerti. Proses enkripsi dan dekripsi diatur oleh satu atau beberapa kunci kriptografi. Dalam suatu sistem dimana terdapat algoritma kriptografi,
ditambah seluruh kemungkinan plaintext, ciphertext dan kunci-kuncinya disebut kriptosistem cryptosystem atau cryptographic system. Cryptosystem
adalah suatu fasilitas untuk mengkonversikan plaintext ke ciphertext dan sebaliknya.
Dalam sistem ini, seperangkat parameter yang menentukan transformasi pencipheran tertentu disebut suatu set kunci. Proses enkripsi dan
dekripsi diatur oleh satu atau beberapa kunci kriptografi. Secara umum, kunci –
kunci yang digunakan untuk proses pengenkripsian dan pendekripsian tidak perlu identik, tergantung pada sistem yang digunakan
.
Berdasarkan kunci yang digunakan untuk enkripsi dan dekripsi, kriptografi dapat dibedakan menjadi
kriptografi kunci simetri Symmetric-key Cryptography dan kriptografi kunci asimetri Asymmetric-key Cryptography.
2.4 Algoritma Kriptografi
Algoritma kriptograafi terdapat beberapa macam berdasakan kunci yang dipakai yaitu :
Universitas Sumatera Utara
2.4.1 Algoritma Simetrik symmetric algorithms Algoritma simetrik adalah algoritma kriptografi berdasarkan kuncinya
dibedakan menjadi dua yaitu algoritma aliran Stream Cipher dan algoritma blok Block Cipher. Pada algoritma Stream Cipher, proses penyandiannya
berorientasi pada satu bit atau satu byte data. Sedangkan pada algoritma blok, proses penyandiannya berorientasi pada sekumpulan bit atau byte data. Contoh
algoritma simetris yang terkenal adalah DES Data Encryption Standard. Proses algoritma simetrik dapat dilihat pada Gambar 2.2
.
Gambar 2.2 Proses Algoritma Simetrik
Sumber : Lia Silviana, 2013
Algoritma ini menggunakan kunci yang sama untuk proses enkripsi dan dekripsi. Dalam system kriptografi kunci simetrik, kunci yang digunakan
untuk proses enkripsi dan dekripsi pada prinsipnya identik, tetapi satu buah kunci dapat diturunkan dari kunci yang lainnya. Kunci
– kunci ini harus dirahasiakan. Oleh sebab itu sistem ini sering disebut sebagai secret key crypto
system.
2.4.2 Algoritma Asimetrik Asymmetric Algorithms
Algortima kriptografi asimetrik adalah algoritma yang menggunakan kunci yang berbeda untuk proses enkripsi dan dekripsi. Algoritma ini sering juga
disebut algoritma kunci umum public key algorithm karena kunci untuk enkripsi dibuat umum public key atau dapat di ketahui oleh setiap orang, tapi
kunci dekripsi hanya di ketahui oleh orang yang berwenang mengetahui data yang disandikan atau sering disebut kunci pribadi private key. Contoh
algoritma terkenal menggunakan kunci asimetrik adalah ECC dan RSA. Proses algoritma asimetrik dapat dilihat pada gambar 2.3. Syarat-syarat yang
harus di penuhi oleh algoritma public-cey yaitu :
Universitas Sumatera Utara
1. Mudah secara komputasi bagi suatu pihak B untuk mengkrontuksi sepasang kunci asimetrik kunci publik KU, kunci pribadi KR.
2. Mudah secara komputasi bagi pengirim A, dengan memiliki kunci publik B dan data yang ingin dienkripsi, M, untuk menghasilkan
ciphertext C. 3. Mudah secara komputasi bagi penerima B untuk mendekripsi
ciphertext yang dihasilkan menggunakan kunci pribadinya untuk mengembalikan data asli.
4. Tidak bisa secara komputasi bagi pihak ketiga untuk memperoleh kunci pribadi KRb hanya dengan mengetahui kunci publik KUb.
5. Tidak bisa secara komputasi bagi pihak ketiga untuk mengembalikan data asli M hanya dengan mengetahui kunci publik KUb dan ciphertext
C. 6. Fungsi enkripsi dan dekripsi bisa diterapkan dengan urutan yang
dibalik.
Kegunaan persyaratan yang keenam adalah untuk penerapan tanda tangan digital digital signature yang digunakan memecahkan isu otentikasi dalam
masalah keamanan data. Proses enkripsi publik key sederhana melibatkan empat tahap berikut :
1. Setiap user didalam jaringan membuat sepasang kunci untuk digunakan sebagai kunci enkripsi dan dekripsi dari pesan yang akan diterima.
2. User kemudian
mempublikasikan kunci
enkripsinya dengan
menempatkan kunci publiknya ke tempat umum. Pasangan kunci yang lain tetap dijaga kerahasiaannya.
3. Jika user A ingin mengirimkan data ke user B, ia akan mengenkripsikan data dengan menggunakan kunci publik user B.
4. Pada saat user B mendekripsikan data dari user A, ia akan menggunakan kunci pribadinya sendiri. Tidak ada pihak lain yang bisa
mendekripsikan data itu karena hanya B sendiri yang mengetahui kunci pribadi B.
Universitas Sumatera Utara
Gambar 2.3 Proses Algoritma Asimetrik
Sumber : Lia Silviana, 2013
2.4.3 Algoritma RSA
Karena semakin berkembangnya pertukaran data, khususnya dalam wireless dan local area network LAN, hal ini memberi kesempatan yang besar untuk
mencegat data dan memalsukan pesan. Satu-satunya cara yang mudah untuk menjaga keamanan dan keintegritasan informasi antara pengirim dan penerima
adalah dengan menggunakan kriptografi kunci publik Satrya, 2013. RSA adalah sistem kriptografi dengan kunci publik yang pertama kali
dapat berjalan dan dipraktekkan, ditemukan pada tahun 1977 dan dipublikasikan pada tahun 1978 oleh Rivest, Shamir dan Adleman RSA di
Institut Teknologi Massachusetts. RSA adalah sistem kriptografi yang masih paling banyak digunakan seperti transaksi online, email, kartu pintar dan
umumnya pada aplikasi mobile commerce Yan, 2008.
Rumus dasar dari metode enkripsi dan dekripsi RSA dinotasikan kedalam persamaan 2.1 dan 2.2 berikut :
C M
C
mod N 2.1
Dan C
M
d
mod N
2.2
Penjelasan: n
= p q
p dan q =
Bilangan prima m
= Plaintext
c =
Ciphertext
Universitas Sumatera Utara
e =
Encryption exponent d
= Decryption exponent
ɸ n =
p-1 q-1
Tahapan Algoritma RSA : 1. Pilih dua bilangan prima secara acak dan tidak sama.
2. Hitung perkalian p dan q, simpan dalam variabel n. 3. Hitung
ɸ n ≡ p-1.q-1 4. Pilih e secara acak dengan syarat, FPBe,
ɸ n = 1 5.
Hitung d ≡ e
-1
mod ɸn
6. Rahasiakan p, q, ɸ n dan d
7. Kirimkan e dan n
Contoh 1. kasus sederhana algoritma Kriptografi RSA: p = 47 bilangan prima dan q = 71 bilangan prima
n = p.q = 3337 ɸ n = p-1q-1 = 3220
e = 79 pilih angka acak d = 79
-1
mod 3220 dicoba K = 1,2,..,dst
d = 1019 dipilih karena hasilnya bilangan bulat
Misalkan plaintext M = “ABC”, ubah kedalam ASCII menjadi “65 66 67”
Enkripsi dengan kunci publik E = 79 dan N = 3337: M1 = 65 - C1 = 65
79
mod 3337 = 541 M2 = 66 - C2 = 66
79
mod 3337 = 795 M3 = 67 - C3 = 67
79
mod 3337 = 1479 Dekripsi dengan kunci D = 1019:
C1 = 541 - M1 = 541
1019
mod 3337 = 65 - A C2 = 795 - M2 = 795
1019
mod 3337 = 66 - B C3 = 1479 - M3 = 1479
1019
mod 3337 = 67 - C
Universitas Sumatera Utara
Untuk mendapatkan nlai dari operasi pemangkatan besar bilangan bulat modulo digunakan metode Fast Exponentiation Munir, 2006. Berikut
Penjelasan metode Fast Exponentiation. Dinotasikan dalam persamaan 2.3 dan 2.4 :
ab mod m = [a mod mb mod m] mod m 2.3
abc.... mod m = [a mod mb mod mc mod m....] mod m 2.4
Untuk lebih jelasnya mengenai langkah-langkah metode fast exponentiation dapat dilihat pada contoh berikut.
Contoh 2. Hitung nilai dari 45
40
mod 256. Sebagai ilustrasi, untuk menghitung 45
40
mod 256 dapat dilakukan sebagai berikut.
45
40
= 45
32
. 45
8
45
2
mod 256 = 2025 mod 256 = 233 45
4
mod 256 = 45
2
. 45
2
mod 256 = [45
2
mod 256 . 45
2
mod 256] mod 256
= 233
2
mod 256 = 17
45
8
mod 256 = 45
4
. 45
4
mod 256 = [45
4
mod 256 . 45
4
mod 256] mod 256
= 17
2
mod 256 = 33
45
16
mod 256= 45
8
. 45
8
mod 256 = [45
8
mod 256 . 45
8
mod 256] mod 256
= 33
2
mod 256 = 65
45
32
mod 256= 45
16
. 45
16
mod 256 = [45
16
mod 256 . 45
16
mod 256] mod 256
= 652 mod 256 = 129
Universitas Sumatera Utara
45
40
mod 256 = [45
32
mod 256 . 45
8
mod 256] mod 256 = 4257 mod 256 = 161
Jadi, nilai dari 45
40
mod 256 = 233.
2.4.4 Algoritma Triple Transposition Vigènere Cipher TTVC
Dalam proses pengiriman pesan kerahasian itu menjadi kunci utama dalam proses pengiriman. Banyak cara user mengamankan pesan email menggunakan
beberapa metode pengamanan contohnya algoritma Blowfish, algoritma El gamal, tetapi masih punya beberapa kelemahan yang dapat membuat pesan
email dapat disusupi oleh orang yang tidak bertanggung jawab sehingga muncul algoritma terbaru yaitu Triple Tranposition Vigenere Cipher.
Triple Transposition Vigènere Cipher adalah metode enkripsi dengan cara mengulang teknik Vigènere Cipher yang setiap plaintextnya dilakukan
transposisi terlebih dahulu sebanyak tiga kali dengan menggunakan kunci yang tiap kuncinya harus berbeda satu dengan yang lainnya. Metode Triple
Transposition Vigènere Cipher dapat digambarkan seperti Gambar 2.4:
Gambar 2.4 Proses Algoritma Triple Transposition Vigènere Cipher
Sumber : Caroline, 2010
Proses yang terjadi pada Triple Transposition Vigènere Cipher terbagi menjadi dua bagian. Metode transposisi dapat disimbolkan dengan T dan
Plainteks
Transposisi
Subsitusi
Enkripsi 3 kali perulangan
Universitas Sumatera Utara
metode substitusi menggunakan vigenere yang disimbolkan dengan E serta kunci untuk melakukan vigenere K. Secara matematis metode Triple
Transposition Vigènere Cipher ini dapat dituliskan sebagai:
Proses enkripsi: P = T1’S1’T2’S2’T3’S3’C
Bila dijabarkan, ciphertext diperoleh dengan mentransposisikan plaintext, kemudian hasilnya disubstitusi menggunakan kunci pertama, lalu
ditransposisikan kembali, lalu disubstitusi dengan menggunakan kunci yang berbeda dari kunci pertama, disebut saja kunci kedua, setelah itu dilakukan
transposisi lagi yang kemudian diakhiri dengan proses substitusi menggunakan kunci ketiga. Substitusi disini menggunakan Vigènere Cipher.
Ketiga algoritma transposisi sudah didefinisikan terlebih dahulu dengan suatu kunci atau suatu aturan tertentu setiap kali proses enkripsi metode
transposisinya akan selalu tetap. Untuk metode enkripsi ini, spasi tidak diperhitungkan sehingga lebih baik dihilangkan saja. Rumus untuk transposisi
adalah membagi panjang ciphertext dengan suatu kunci tertentu yang ditentukan oleh pengguna yang kemudian teks dibaca secara vertikal dari kolom pertama.
Berikut adalah tabel bujursangkar vigenere, dapat dilihat pada Gambar 2.5.
Gambar 2.5 Bujurangkar Vigenere
Sumber : Caroline, 2010
Universitas Sumatera Utara
Cara menggunakan bujursangkar Vigènere adalah sebagai berikut: baris paling atas menyatakan huruf-huruf plaintext dan kolom paling kiri
menyatakan huruf-huruf pada kunci. Pertama tarik garis vertikal dari huruf plaintext kebawah. Setelah itu tarik garis horizontal dari huruf kunci ke kanan.
Cari titik perpotongannya. Perpotongan kedua garis tersebut menyatakan huruf ciphertext dari huruf plaintext yang bersangkutan. Sebenarnya karakter
ciphertext didapat dengan rumus cp = p+k mod 26.
Rumus enkripsi Vigenere Cipher : C
i =
P
i +
C
i
-26 kalau hasil penjumlahan P
i
dan K
i
lebih dari 26
Rumus dekripsi Vigenere Cipher : P
i
= C
i
– K
i
+26 kalau hasil pengurangan C
i
dengan K
i
minus
Dimana : C
i
= nilai desimal karakter ciphertext ke – i
P
i
= nilai desimal karakter plaintext ke
– i K
i
= nilai desimal karakter ke – i
Berikut ini adalah contoh proses transposisi dan substitusi dari algoritma TTVC, dapat dilihat pada Tabel 2.1.
Table 2.1. Tabel proses transposisi dan substitusi menjadi hasil TTVC
Plaintext P :
INI ADALAH PLAINTEKS KRIPTOGRAFI
Transposisi Pertama T
1
dengan kunci = 3
Universitas Sumatera Utara
I N
I A
D A
L A
H P
I A
I N
T E
K S
K R
I P
T O
G R
A F
I
Hasil T
1
= IALPIEKPGFNDAINKRTRIIAHTSIOA Subsititusi pertama S1 dengan kunci = SEMBILAN
AEQQPKCYJZEIWNXJXDJQLHNLWUPI
Transposisi kedua T2 dengan kunci = 5
Universitas Sumatera Utara
Substitusi ketiga S3 dengan kunci = SEBELAS :
YYXTRIAUBYTAXVFGIWPYDLUFJBCJV
Hasil enkripsi adalah YYXTRIAUBYTAXVFGIWPYDLUFJBCJV
A E
X Q
Q P
K C
Y J
Z E
I W
N X
J X
D J
Q L
H N
L W
U P
I
Hasil T2 = APZXQWEKEJLUXCIXHPQYWDNIOJNJL
Transposisi ketiga T3 dengan kunci = 11 :
G P
I X
X C
T E
Q R
U G
C P
D H
Q F
C D
W I
X P
N S
Hasil T3 = GUWPGIICXXPPXDNCHSTQEFQCRD
Universitas Sumatera Utara
Kemudian Proses dekripsi dapat dilakukan dengan arah sebaliknya. Bila dirumuskan maka akan terlihat sebagai berikut:
Proses dekripsi: C = S3T3S2T2S1T1P Maksud T’ disini adalah transposisi kebalikkannya
2.5 PHP