Pertemuan 7 Macam-macam algoritma
Macam-macam Algoritma kriptografi
Kriptografi modern merupakan suatu
perbaikan yang mengacu pada kriptografi klasik. Pada kriptogarfi modern
terdapat berbagai macam algoritma yang dimaksudkan untuk mengamankan informasi
yang dikirim melalui jaringan komputer. Algoritma kriptografi modern terdiri
dari tiga bagian:
1. Algoritma Simetris
Algoritma simetris adalah algoritma yang menggunakan
kunci yang sama untuk enkripsi dan dekripsinya. Algoritma kriprografi
simetris sering disebut algoritma kunci rahasia, algoritma kunci tunggal, atau
algoritma satu kunci, dan mengharuskan pengirim dan penerima menyetujui suatu
kunci tertentu. Kelebihan dari algoritma kriprografi simetris adalah waktu
proses untuk enkripsi dan dekripsi relatif cepat. Hal ini disebabkan efesiensi
yang terjadi pada pembangkit kunci. Karena prosesnya relative cepat maka algoritma
ini tepat untuk digunakan pada sistem komunikasi digital secara real
timeseperti GSM.
Contoh Alice ingin mengirim pesan x
dengan aman menggunakan saluran umum kepada Bob. Alice menggunakan kunci xƠ
yang sebelumnya telah disepakati antara Alice dan Bob. Untuk mengirim pesan e
xƠ (x) kepada Bob, dia akan deskripsi teks kode yang diterima dengan kunci yang
sama dengan yang digunakan untuk memperoleh akses ke pesan yang diterima.
Begitu juga sebaliknya.
Aplikasi dari algoritma simetris digunakan oleh
beberapa algoritma di bawah ini:
1. Data
Encryption Standard (DES)
2. Advance
Encryption Standard (AES)
3. International
Data Encryption Algoritma (IDEA)
4. A5
5. RC4
1. 1. A
2. Algoritma Asimetris
Algoritma Asimetris adalah pasangan kunci kriptografi
yang salah satunya digunakan untuk proses enkripsi dan satu lagi lagi
deskripsi. Semua orang yang mendapatkan kunci publik dapat menggunakannya
untuk mengenkripsi suatu pesan, sedangkan hanya satu orang saja yang memiliki
rahasia itu, yang dalam hal ini kunci rahasia, untuk melakukan pembongkaran
terhadap kode yang dikirim untuknya. Contoh algoritma terkenal yang menggunakan
kunci asimetris adalah RSA (merupakan singkatan dari nama penemunya, yakni
Rivest, Shamir dan Adleman).
3. Algoritma Hibrida
Algoritma hibrida adalah algoritma yang memanfaatkan dua tingkatan kunci,
yaitu kunci rahasia (simetri) – yang disebut juga session key (kunci sesi) –
untuk enkripsidata dan pasangan kunci rahasia – kunci publik untuk pemberian
tanda tangan digital serta melindungi kunci simetri.
Gambar 3. Algoritma Hibrida
Algoritma kriptografi yang beroperasi dalam mode bit
dapat dikelompokkan menjadi dua kategori:
1. 1. Cipher aliran (stream
cipher)
Algoritma kriptografi beroperasi pada plainteks/cipherteks dalam
bentuk bit tunggal, yang dalam hal ini rangkaian bit
dienkripsikan/didekripsikan bit per bit. Stream chiper atau stream
encryption merupakan suatu teknik enkripsi data dengan cara melakukan
transformasi dari tiap bit secara terpisah berdasarkan posisi tiap bit dalam
aliran data yang biasanya dikendalikan menggunakan operasi XOR. Enkripsi aliran
data merupakan hasil dari operasi XOR antara setiap bit plaintext dengan
setiap bit kuncinya. Padastream chiper bila terjadi kesalahan
selama transmisi maka kesalahan pada teks enkripsi penerima akan terjadi tepat
di tempat kesalahan tersebut terjadi. Dalam praktek pertimbangan kesalahan yang
mungkin terjadi sangatlah penting untuk penentuan teknik enkripsi yang akan
digunakan.
1. 2. Cipher blok (block
cipher)
Algoritma kriptografi beroperasi pada
plainteks/cipherteks dalam bentuk blok bit, yang dalam hal ini rangkaian bit
dibagi menjadi blok-blok bit yang panjangnya sudah ditentukan sebelumnya.
Misalnya panjang blok adalah 64 bit, maka itu berarti
algoritma enkripsi memperlakukan 8 karakter setiap kali penyandian (1 karakter
= 8 bit dalam pengkodean ASCII).
Rangkaian bit
Rangkaian bit yang dipecah menjadi blok-blok bit dapat
ditulis dalam sejumlah cara bergantung pada panjang blok.
Contoh: Plainteks 100111010110 dibagi menjadi blok bit
yang panjangnya 4 menjadi
1001 1101 0110
Setiap blok menyatakan bilangan bulat dari 0 sampai
15, yaitu 9 13 6
Bila plainteks dibagi menjadi blok-blok yang berukuran 3
bit, maka rangkaian bit di atas menjadi:
100 111 010 110
Setiap blok menyatakan bilangan bulat dari 0 sampai 7,
yaitu 4 7 2 6
Bila panjang rangkaian bit tidak habis dibagi dengan ukuran blok yang
ditetapkan, maka blok yang terakhir ditambah dengan bit-bit semu yang
disebut padding bits.
Misalnya rangkaian bit di atas dibagi menjadi blok
5-bit menjadi
10011 10101 00010
Blok yang terakhir telah ditambahkan 3 bit 0 di bagian awal (dicetak tebal)
agar ukurannya menjadi 5 bit. Padding bits dapat mengakibatkan
ukuran plainteks hasil dekripsi lebih besar daripada ukuran plainteks semula.
Cara lain untuk menyatakan rangkaian bit adalah dengan
notasi heksadesimal (HEX). Rangkaian bit dibagi menjadi blok yang berukuran 4
bit dengan representasi dalam HEX adalah: 0000 = 0 0001 = 1 0010 = 2 0011 = 3
0100 = 4 0101 = 5 0011 = 6 0111 = 7
1000 = 8 1011 = 9 1010 = A 1011 = B
1100 = C 1101 = D 1101 = E 1111 = F
Misalnya, plainteks 100111010110 dibagi menjadi blok
bit yang panjangnya 4 menjadi
1001 1101 0110
yang dalam notasi HEX adalah 9 D 6
Operator XOR
Operator biner yang sering digunakan dalam cipher yang
yang beroperasi dalam mode bit adalah XOR atau exclusive-or.
Notasi matematis untuk opeartor XOR adalah ⊕ (dalam Bahas C, operator XOR
dilambangkan dengan ^).
Operator XOR diperasikan pada dua bit dengan aturan
sebagai berikut:
0 ⊕ 0 = 0
0 ⊕ 1 = 1
1 ⊕ 0 = 1
1 ⊕ 1 = 0
Operator XOR identik dengan penjumlahan modulo 2.
Misalkan a, b, dan c adalah peubah
Boolean. Hukum-hukum yang terkait dengan operator XOR:
(i) a ⊕ a=0
(ii) a ⊕ b = b ⊕ a (Hukum
komutatif)
(iii) a ⊕ (b ⊕ c) = (a ⊕ b) ⊕ c (Hukum
asosiatif)
Jika dua rangkaian dioperasikan dengan XOR, maka
operasinya dilakukan dengan meng-XOR-kan setiap bit yang berkoresponden dari
kedua ramngkaian bit tersebut.
Contoh: 10011 ⊕ 11001 = 01010
yang dalam hal ini, hasilnya diperoleh sebagai berikut:
1 0 0 1 1
1 1 0 0 1 ⊕
1 ⊕ 1 0 ⊕ 1 0 ⊕ 0 1⊕ 0 1 ⊕ 1
0 1 0 1 0
Algoritma enkripsi sederhana yang menggunakan XOR adalah dengan
meng-XOR-kan plainteks (P) dengan kunci (K) menghasilkan
cipherteks:
C = P ⊕ K (6.1)
Karena meng-XOR-kan nilai yang sama dua kali
menghasilkan nilai semula, maka proses dekripsi menggunakan persamaan:
P = C ⊕ K (6.2)
Contoh: plainteks 01100101 (karakter ‘e’)
kunci 00110101 ⊕ (karakter ‘5’)
cipherteks 01010000 (karakter ‘P’)
kunci 00110101 ⊕ (karakter ‘5’)
plainteks 01100101 (karakter ‘e’)
Program komersil yang berbasis DOS atau Macintosh menggunakan algoritma XOR
sederhana ini. Sayangnya, algoritma XOR sederhana tidak aman karena cipherteksnya
mudah dipecahkan.