ke paling Kanan dari bit K
kiri
0 dan K
kanan
0, untuk mendapatkan K
kiri
4 dan K
kanan
4 pindahkan bit paling sebelah Kiri sebanyak 2 bit ke paling Kanan dari bit K
kiri
3 dan K
kanan
3, begitu seterusnya sampai putaran ke 16 yaitu n sudah mencapai 16. Setelah selesai K
kiri
n dan K
kanan
n digabungkan kembali dan di permutasikan kembali mengikuti aturan tabel PC-2 menjadi 48 bit, hasilnya akan
mendapatkan Kn dimana 1=n=16. PC-2
14 17 11 24 1
5 3 28 15
6 21 10 23 19 12
4 26 8
16 7 27 20 13
2 41 52 31 37 47 55
30 40 51 45 33 48 4 49 39 56 34 53
46 42 50 36 29 32
Tabel 2.3 Tabel PC-2 Setelah selesai, gabungkan K
kiri
dan K
kanan
kembali setelah digabung
permutasikan K
kiri
n dan K
kanan
n sesuai aturan PC-2 yang akan menghasilkan Pn pada PC-2 di atas dari 64 bit K
kiri
n dan K
kanan
n hanya diambil 48 bit. Bit pertama pada Kn adalah bit ke-14 dan K
kiri
n dan K
kanan
n bit ke-2 dari Pn adalah bit ke-17 dari K
kiri
n dan K
kanan
n begitu seterusnya sampai bit ke-48 dari Pn adalah bit ke-32 dari K
kiri
n dan K
kanan
n. Pada proses enkripsi, pesan M 64 bit dipermutasikan mengikuti aturan
tabel IP menjadi M+, dibagi menjadi dua bagian M
kiri
0 32 bit setelah kita
melakukan 16 iterasi untuk 1=n=16 menggunakan fungsi yang beroperasi pada 2 blok 32 bit kita anggap
⊕ adalah penambahan XOR pertambahan bit demi bit Modulo 2 dan n bertambah sampai 16
M
kiri
n = M
kanan
n-1 M
kanan
n = M
kiri
n-1 ⊕ f M
kanan
n-1, Kn
Pemilihan Bit E
32 1
2 3
4 5
4 5
6 7
8 9
8 9 10 11 12 13
12 13 14 15 16 17 16 17 18 19 20 21
20 21 22 23 24 25 24 25 26 27 28 29
28 29 30 31 32
1
Tabel 2.4 Tabel Pemilihan Bit E Untuk fungsi f pertama, kita harus menambahkan tiap blok M
kanan
n-1 menjadi EM
kanan
n-1 dari 32 bit menjadi 48 bit agar bisa dioperasikan dengan Kn. Untuk itu, perlu tabel pemilihan bit E sehingga persamaan M
kanan
n-1 menjadi EM
kanan
n-1 setelah itu
kita XOR-kan EM
kanan
n-1dengan persamaannya menjadi : Kn
⊕ EM
kanan
n-1.
Hasil dari persamaan di atas adalah Kn 48 bit atau enam kelompok bit 6 bit. Kita lakukan sesuatu pada setiap kelompok 6 bit tersebut, kita gunakan
kelompok-kelompok tersebut sebagai alamat di tabel yang disebut SBox. Dari
hasil persamaan di atas bisa untuk menghitung :
1 2
3 4
5 6
7 8
9 10
11 12
13 14
15
14 4
13 1
5 15
11 8
3 10
6 12
5 9
7
1
15 7
4 14
2 13
1 10
6 12
11 9
5 3
8
2 4
1 14
8 13
6 2
11 15
12 9
7 3
10 5
3
15 12
8 2
4 9
1 7
5 11
3 14
10 6
13
1 2
3 4
5 6
7 8
9 10
11 12
13 14
15
15 1
8 14
6 11
3 4
9 7
2 13
12 5
10
1 3
13 4
7 15
2 8
14 12
1 10
6 9
11 5
2
14 7
11 10
4 13
1 5
8 12
6 9
3 2
15
3
13 8
10 1
3 15
4 2
11 6
7 12
5 14
9
1 2
3 4
5 6
7 8
9 10
11 12
13 14
15
10 9
14 6
3 15
5 1
13 12
7 11
4 2
8
1 13
7 9
3 4
6 10
2 8
5 14
12 11
15 1
2 13
6 4
9 8
15 3
11 1
2 12
5 10
14 7
3
1 10
13 6
9 8
7 4
15 14
3 11
5 2
12
Kn + EM
kanan
n-1 = B1, B2, B3, B4, B4, B5, B6, B7, B8 Dimana setiap B1 adalah sekumpulan bit. Sekarang kita hitung :
S1B1, S2B2, S3B3, S4B4, S5B5, S6B6, S7B7, S8B8 Dimana setiap S1B1 adalah hasil dari Sbox ke
Sbox 1
Tabel 2.5 Tabel Sbox 1
Sbox 2
Tabel 2.6 Tabel Sbox 2
Sbox 3
Tabel 2.7 Tabel Sbox 3
1 2
3 4
5 6
7 8
9 10
11 12
13 14
15
7 13
14 3
6 9
10 1
2 8
5 11
12 4
15
1
13 8
11 5
6 15
3 4
7 2
12 1
10 14
9
2 10
6 9
12 11
7 13
15 1
3 14
5 2
8 4
3
3 15
6 10
1 13
8 9
4 5
11 12
7 2
14
1 2
3 4
5 6
7 8
9 10
11 12
13 14
15
2 12
4 1
7 10
11 6
8 5
3 15
13 14
9
1
14 11
2 12
4 7
13 1
5 15
10 3
9 8
6
2 4
2 1
11 10
13 7
8 15
9 12
5 6
3 14
3
11 8
12 7
1 14
2 13
6 15
9 10
4 5
3
1 2
3 4
5 6
7 8
9 10
11 12
13 14
15
12 1
10 15
9 2
6 8
13 3
4 14
7 5
11
1
10 15
4 2
7 12
9 5
6 1
13 14
11 3
8
2 9
14 15
5 2
8 12
3 7
4 10
1 13
11 6
3
4 3
2 12
9 5
15 10
11 14
1 7
6 8
13
Sbox 4
Tabel 2.8 Tabel Sbox 4
Sbox 5
Tabel 2.9 Tabel Sbox 5
Sbox 6
Tabel 2.10 Tabel Sbox 6
1 2
3 4
5 6
7 8
9 10
11 12
13 14
15
4 11
2 14
15 8
13 3
12 9
7 5
10 6
1
1
13 11
7 4
9 1
10 14
3 5
12 2
15 8
6
2
1 4
11 13
12 13
7 14
10 15
6 8
5 9
2
3
6 11
13 8
1 4
10 7
9 5
15 14
2 3
12
1 2
3 4
5 6
7 8
9 10
11 12
13 14
15
13 2
8 4
6 15
11 1
10 9
3 14
5 12
7
1
1 15
13 8
10 3
7 4
12 5
6 11
14 9
2
2
7 11
4 1
9 12
14 2
6 10
13 15
3 5
8
3
2 1
14 7
4 10
8 13
15 12
9 3
5 6
11
Sbox 7
Tabel 2.11 Tabel Sbox 7
Sbox 8
Tabel 2.12 Tabel Sbox 8
Setiap kelompok akan memberikan kita sebuah alamat pada sebuah Sbox yang berbeda. Ada 4 bit angka pada alamat tersebut yang akan menggantikan 6
bit tersebut, hasil setiap kelompok 6 bit dirubah menjadi 4 bit untuk menjadi 32 bit. Misalkan kita memasukkan sebuah nilai 32
10
= 100000
2
ke dalam Sbox1, pertama pisahkan bit pertama dan terakhir kemudian satukan keduanya menjadi
10
2
= 2
10
nilai yang kita dapat akan kita gunakan untuk menentukan baris pada Sbox1 kemudian bit ke-2 sampai bit-5 atau nilai tengah 0000
2
= 0
10
kita gunakan untuk menentukan kolom pada Sbox1.
1 2
3 4
5 6
7 8
9 10
11 12
13 14
15
14 4
13 1
5 15
11 8
3 10
6 12
5 9
7
1
15 7
4 14
2 13
1 10
6 12
11 9
5 3
8
2 4
1 14
8 13
6 2
11 15
12 9
7 3
10 5
3
15 12
8 2
4 9
1 7
5 11
3 14
10 6
13
Sbox 1
Tabel 2.5 Tabel Sbox 1
Nilai yang kita dapatkan akan kita substitusi dengan nilai yang kita input
32=4. Dengan penjelasan tersebut, maka akan kita dapatkan nilai M
kanan
n = M
kir
in-1 ⊕ f M
kanan
n-1, Kn dan ini berlangsung sampai nilai n mencapai 16, setelah didapati nilai M
kiri
16 dan M
kanan
16 gabungkan kembali, akan tetapi dengan urutan di balik menjadi 64 bit blok : M
kanan
16 M
kiri
16.
Setelah digabungkan, maka lakukan operasi terakhir dengan mengikuti aturan IP-1 hasilnya adalah ciphertext. Untuk melakukan dekripsi cukup
membalik dari yang akhir ke paling awal dari proses enkripsi Wirawan, 2006:42.
2.7 Metode RSA Rivest, Shamir, Adleman
RSA ditemukan oleh tiga orang yang kemudian disingkat menjadi RSA.
Ketiga penemu itu adalah Ron Rivest, Adi Shamir, dan Leonard Adleman yang
menemukannya pada tahun 1977 di MIT. Algoritma ini merupakan cara enkripsi publik yang paling kuat saat ini karena, sulitnya pemfaktoran bilangan yang
sangat besar. RSA termasuk algoritma asimetri, yang berarti memiliki dua kunci, yaitu kunci publik dan kunci privat.
Skema yang dikembangkan oleh Rivest, Shamir dan Adleman mengekspresikan bahwa plaintext dienkripsi menjadi block-block yang setiap
block memiliki nilai bilangan biner yang diberi simbol “n”, plaintext blok “M”
dan ciphertext “C”. Untuk melakukan enkripsi pesan “M”, pesan dibagi ke dalam block-block numeric
yang lebih kecil daripada “n” data biner dengan pangkat terbesar, jika bilangan prima yang panjangnya 200 digit dan dapat menambah
beberapa bit 0 di kiri bilangan untuk menjaga agar pesan tetap kurang dari nilai “n” Ariyus, 2006:113.
Sekali kunci telah diciptakan, sebuah pesan dapat dienkrip dalam blok dan melewati persamaan berikut ini :
C = M
e
mod n 1, dimana C adalah ciphertext. M adalah message plaintext, sedangkan e adalah kunci publik penerima. Dengan demikian, pesan
di atas dapat didekrip dengan persamaan berikut :
M = C
d
mod n 2, dimana d adalah kunci pribadi penerima.
Oleh karena itu, hanya orang yang mempunyai kunci rahasia yang sesuai yang dapat membuka pesan yang disandi dengan kunci publik tertentu.
2.8 Algoritma RSA 2.8.1 Properti Algoritma RSA
Besaran-besaran yang digunakan pada algoritma RSA Rinaldi Munir: Bahan Kuliah ke-15, 2004:1 :
1 p dan q bilangan prima rahasia
2 n = p . q tidak rahasia
3 φn = p – 1q – 1
rahasia
4 e kunci enkripsi tidak rahasia
5 d kunci dekripsi
rahasia
6 m plainteks
rahasia
7 c cipherteks
tidak rahasia
2.8.2 Algoritma Membangkitkan Pasangan Kunci Stallings, 2004:569
1. Pilih dua buah bilangan prima sembarang, p dan q dan p q.
2. Hitung n = p x q