BAB 2
LANDASAN TEORI
2.1 Teori Dasar Kriptografi
Teknik pengacakan data yang disebut enkripsi, telah membentuk suatu bidang keilmuan yang disebut kriptografi. Kriptografi adalah suatu ilmu dan seni dalam menjaga kerahasiaan suatu pesan (kode). Kriptografi juga dapat diartikan sebagai ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan data, keabsahan data, integritas data, serta autentikasi data (A. Menezes, P. Van Oorschot and S. Vanstone – Handbook of Applied Cryptography) . Namun, pada kriptografi tidak semua aspek
keamanan informasi akan ditangani.
Ada empat tujuan mendasar dari kriptografi yang juga merupakan aspek keamanan informasi, yaitu sebagai berikut :
1. Kerahasiaan (confidentiality)
Kerahasiaan layanan yang digunakan untuk menjaga agar pesan tidak dapat dibaca oleh pihak-pihak yang tidak berhak.
2. Integritas Data ( data integrity)
Integritas data adalah layanan yang menjamin bahwa pesan masih asli/utuh atau belum pernah dimanipulasi selama pengiriman.
3. Otentikasi (authentication)
Otentikasi adalah layanan yang berhubungan dengan identifikasi, baik mengidentifikasi kebenaran pihak-pihak yang berkomunikasi (user authentication atau entity authentication).
Universitas Sumatera Utara
Dua pihak yang saling berkomunikasi harus dapat mengontetikasi satu sama lain sehingga dapat memastikan sumber pesan.
4. Nirpenyangkalan (non-repudiation)
Nirpenyangkalan
(non-repudiation)
adalah
layanan
untuk
mencegah
entitas
yang
berkomunikasi melakukan penyangkalan, yaitu pengirim pesan menyangkal melakukan pengiriman pesan atau penerima pesan menyangkal telah menerima pesan.
Secara umum kriptografi terdiri dari dua proses yaitu enkripsi dan dekripsi. Plaintext
Ciphertext
Enkripsi
Gambar 2.1 Proses Enkripsi
Ciphertext
Deskripsi
Plaintext
Gambar 2.2 Proses Dekripsi
Plaintext adalah pesan yang akan dirahasiakan, dinotasikan dengan m (Message),
yang dapat berupa bit tream, file text, digitized voice stream , digital video image atau lebih singkatnya m adalah data binary.
Enkripsi adalah proses pengaman data atau informasi dengan membuat informasi
tersebut seolah tidak bermakna atau tidak dapat dibaca. enkripsi dinotasikan dengan E, berfungsi untuk mengubah m menjadi c, dalam matematika dinotasikan dengan: E(m) = c.
Keterangan rumus: E = enkripsi m = plaintext c = ciphertext
Universitas Sumatera Utara
Ciphertext adalah hasil dari proses enkripsi, dinotasikan dengan c, juga berupa data binary yang kadang-kadang mempunyai ukuran yang sama dengan m, lebih kecil dari m atau
lebih besar dari m.
Dekripsi adalah kebalikan dari enkripsi yaitu proses mengubah data menjadi
bermakna. Fungsi dekripsi D, berfungsi untuk mengubah c menjadi m, dalam matematika dinotasikan dengan: D(c) = m.
Keterangan rumus: D = dekripsi c = ciphertext m = plaintext
Crypanalyst adalah orang mempelajari ilmu dan seni ilmu membongkar ciphertext.
Menurut ISO 7498-2 istilah yang lebih tepat untuk decryption adalah ”decipher”
Cipher adalah kata lain dari algoritma yang digunakan untuk melakukan melakukan
proses kriptografi. Cipher juga sering disebut teknik yang digunakan untuk proses enkripsi dan deskripsi.
2.2 Algoritma Kriptografi
Algoritma kriptografi atau sering disebut dengan cipher adalah suatu fungsi matematis yang digunakan untuk melakukan enkripsi dan dekripsi (Schneier, 1996). Ada dua macam algoritma kriptografi, yaitu algoritma simetris (symmetric algorithms) dan algoritma asimetris (asymmetric algorithms).
2.2.1 Algoritma Simetris
Algoritma simetris adalah algoritma kriptografi yang menggunakan kunci enkripsi yang sama dengan kunci dekripsinya. Algoritma ini mengharuskan pengirim dan penerima menyetujui
Universitas Sumatera Utara
suatu kunci tertentu sebelum mereka saling berkomunikasi. Keamanan algoritma simetris tergantung pada kunci, membocorkan kunci berarti bahwa orang lain dapat mengenkripsi dan mendekripsi pesan. Agar komunikasi tetap aman, kunci harus tetap dirahasiakan. Algoritma simetris sering juga disebut dengan algoritma kunci rahasia, algoritma kunci tunggal, atau algoritma satu kunci.
Sifat kunci yang seperti ini membuat pengirim harus selalu memastikan bahwa jalur yang digunakan dalam pendistribusian kunci adalah jalur yang aman atau memastikan bahwa seseorang yang ditunjuk membawa kunci untuk dipertukarkan adalah orang yang dapat dipercaya. Masalahnya akan menjadi rumit apabila komunikasi dilakukan secara bersamasama oleh sebanyak n pengguna dan setiap dua pihak yang melakukan pertukaran kunci, maka akan terdapat sebanyak C n2
n! =
n.(n 1) −
=
(n
−
2)!.2!
2
kunci rahasia yang harus
dipertukarkan secara aman.
Gambar 2.3. Skema algoritma simetris
Contoh dari algoritma kriptografi simetris adalah Cipher Permutasi, Cipher Substitusi, Cipher Hill, OTP, RC6, Twofish, Magenta, FEAL, SAFER, LOKI,CAST, Rijndael (AES), Blowfish, GOST, A5, Kasumi, DES dan IDEA
2.2.2 Algoritma Asimetris
Algoritma asimetris, sering juga disebut dengan algoritma kunci publik, menggunakan dua jenis kunci, yaitu kunci publik (public key) dan kunci rahasia (secret key). Kunci publik merupakan kunci yang digunakan untuk mengenkripsi pesan. Sedangkan kunci rahasia digunakan untuk mendekripsi pesan.
Universitas Sumatera Utara
Kunci publik bersifat umum, artinya kunci ini tidak dirahasiakan sehingga dapat dilihat oleh siapa saja. Sedangkan kunci rahasia adalah kunci yang dirahasiakan dan hanya orang-orang tertentu saja yang boleh mengetahuinya. Keuntungan utama dari algoritma ini adalah memberikan jaminan keamanan kepada siapa saja yang melakukan pertukaran informasi meskipun di antara mereka tidak ada kesepakatan mengenai keamanan pesan terlebih dahulu maupun saling tidak mengenal satu sama lainnya.
Gambar 2.4. Skema algoritma asimetris
Algoritma asimetris pertama kali dipublikasikan oleh Diffie dan Hellman pada tahun 1976 dalam papernya yang berjudul “ New Directions in Cryptography”. Menurut Diffie dan Hellman, ada beberapa syarat yang perlu diperhatikan pada algoritma asimetris, yaitu: 1. Penerima B membuat pasangan kunci, yaitu kunci publik k pB dan kunci rahasia k rB 2. Pengirim A dengan kunci publik B dan pesan x, pesan dienkripsi dan diperoleh cipherteks c E k =
pB(x)
3. Penerima B untuk mendekripsi cipherteks menggunakan kunci privat B untuk mendapatkan kembali pesan aslinya d k [d k ( x)]d k (c) x =
rB
rB
rB
4. Dengan mengetahui kunci publik k pB , bagi penyerang akan kesulitan dalam melakukan untuk mendapatkan kunci rahasia. 5. Dengan mengetahui kunci publik k pB dan cipherteks c, bagi penyerang akan mengalami kesulitan untuk mengetahui pesan x.
Contoh dari algoritma asimetris adalah RSA, ElGamal, McEliece, LUC dan DSA (Digital Signature Algorithm). Dalam melakukan proses enkripsi, sering digunakan plainteks berupa data ataupun pesan yang besar, sehingga membutuhkan waktu yang lama apabila dilakukan proses sekaligus pada plainteks tersebut. Oleh karena itu, plainteks dapat dipotong-
Universitas Sumatera Utara
potong menjadi beberapa blok-blok yang sama panjang. Kemudian dari blok-blok yang diperoleh tersebut dilakukan proses enkripsi, dan hasil cipherteksnya dapat didekripsi dan digabungkan kembali menjadi plainteks. Algoritma kriptografi yang menggunakan mekanisme seperti ini disebut dengan cipher blok (block cipher).
2.3. Teknik Dasar Kriptografi
Berikut ini dicontohkan motode atau cipher yang menjadi dasar dalam melakukan proses enkripsi dan deskripsi pada suatu data. 2.3.1. Metode Subtitusi
Metode ini berkerja dengan menukar satu karakter yang lain. Langkah pertama adalah membuat suatu tabel substitusi. Tidak ada aturan khusus dalam membuat tabel subsitusi , dapat dibuat sesuai keinginan, dengan catatan bahwa penerima pesan memiliki tabel yang sama utuk keperluan deskripsi. Semakin acak tabel subtitansi maka semakin sulit pemecahan chipertext. Salah satu contoh teknik ini adalah Cesar cipher .
Tabel 2.1. Tabel Subtitusi
A
B C
D E F G H I
J
E
F
H I
N O P
V Z
W [
G X \
Y ]
J
K L
M
K L M N O P Q
R
S
Q R
S
T U V W
T
U
X Y
Z ^
Plaintext
: METODE SUBTITUSI
Ciphertext
: QIXSHI OYFXMXYWM
2.3.2. Teknik blok ( blocking)
Universitas Sumatera Utara
Sistem enkripsi kadang membagi plintext menjadi blok-blok yang terdiri atas beberapa karakter yang kemudian dienkripsikan secara independen (masing-masing). Contoh plaintext yang dienkripsikan dengan menggunakan teknik blocking adalah
Tabel 2.2 Teknik blok ( blocking)
E
P
K
I
Blok 1
N
S
R
Blok 2
K
I
I
Blok 3
R
D
P
Blok 4
I
E
S
Blok 5
Dengan menggunakan teknik blok dipilih jumlah lajur dan kolom untuk penulisan pesan. Jumlah lajur atau kolom menjadi kunci bagi kriptografi dengan teknik ini. Plaintext dituliskan secara vertikal ke bawah
berurutan pada lajur, dan dilanjutkan pada kolom
berikutnya sampai seluruhnya tertulis. Ciphertext-nya adalah hasil pembacaan plaintext secara horizontal berurutan sesuai dengan bloknya. Jadi ciphertext yang dihasilkan dengan teknik ini adalah “EPEKINSR KII RDP IES”. Plaintext dapat pula ditulis secara horizontal dan ciphertext-nya adalah hasil pembacaan secara vertikal 2.3.3. Teknik permutasi atau teknik transposisi
Teknik ini memindahkan atau merotasikan karakter dengan aturan tertentu. Prinsipnya dalah berlawanan dengan teknik subtitusi. Dalam teknik subtitusi, karakter berada posisi yang tetap tetapi identitasnya yang diacak. Pada teknik permutasi, identitas karakternya tetap, namun posisinya yang diacak.sebelum dilakukan permutasi, umumnya plaintext dibagi menjadi blok-blok dengan panjang yang sama. Contoh:
Universitas Sumatera Utara
Plaintext
1
2
3
4
Chipertext
1
2
3
4
Gambar 2.5 Permutasi
2.4 Algoritma RSA
2.4.1 Sejarah RSA
Algoritma RSA diperkenalkan oleh 3 peneliti
dari MIT (Massachussets Institute of
Technology), yaitu Ron Rivest, Adi Shamir, dan Leonard Adleman pada tahun 1977. RSA adalah kependekan dari Rivest Shamir Adleman yang diambil dari 3 nama penemu RSA. MIT diberikan paten AS nomor 4405829 untuk "Cryptographic communications system and method" (Sistem dan metode komunikasi kriptografi) yang menggunakan algoritma RSA pada tahun 1983. Paten ini akan kadaluwarsa pada tanggal 21 September 2000. Karena sebuah makalah yang menjelaskan tentang algoritma RSA telah dipublikasikan pada bulan Agustus 1977, aplikasi paten yang telah disimpan pada Desember 1977 tidak mendapat paten dari belahan dunia manapun selain di AS karena peraturan yang terkait dan regulasi yang berlaku. 2.4.2 Mekanisme dasar kerja RSA
Tingkat keamanan algoritma penyandian RSA sangat bergantung pada ukuran kunci sandi tersebut (dalam bit), karena makin besar ukuran kunci, maka makin besar juga kemungkinan kombinasi kunci yang bisa dijebol dengan metode mengencek kombinasi satu persatu kunci atau lebih dikenal dengan istilah brute force attack. Jika dibuat suatu sandi RSA dengan
Universitas Sumatera Utara
panjang 256 bit, maka metode brute force attack akan menjadi tidak ekonomis dan sia-sia dimana para hacker pun tidak mau/sanggup untuk menjebol sandi tersebut.
2.4.3 Proses Pembuatan Kunci
Dalam membuat suatu sandi, RSA mempunyai cara kerja dalam membuat kunci publik dan kunci privat adalah sebagai berikut: 1. Pilih dua bilangan prima sembarang, p dan q.. 2. Hitung n = p . q (sebaiknya p ≠ q, sebab jika p = q maka n = p2 sehingga p dapat diperoleh dengan menarik akar pangkat dua dari n). 3.
Hitung φ (n) = (p - 1) (q - 1).
4. Pilih kunci publik e, yang relatif prima terhadap φ(n). 5. Bangkitkan kunci privat dengan menggunakan persamaan e . d ≡ 1 (mod φ(n)). Perhatikan bahwa e . d ≡ 1 (mod φ(n)). Hitung d hingga d e
≡
1 (mod φ ) ekivalen dengan e . d = 1 + k φ(n), sehingga secara
sederhana d dapat dihitung dengan =
1 + ( )
Hasil dari algoritma di atas: -
Kunci publik adalah pasangan (e, n)
-
Kunci privat adalah pasangan ( d, n)
Algoritma RSA memiliki besaran-besaran sebagai berikut: 1. p dan q bilangan prima
(rahasia)
2. n = p . q
(tidak rahasia)
3. φ(n) = (p - 1) (q - 1)
(rahasia)
4. e = kunci enkripsi
(tidak rahasia)
5. d = kunci dekripsi
(rahasia)
6. m = plainteks
(rahasia)
7. c = cipherteks
(tidak rahasia)
Universitas Sumatera Utara
2.4.4 Proses Enkripsi Pesan
Proses enkripsi pesan sebagai berikut: 1. Ambil kunci publik penerima pesan e, dan modulus n. 2. Nyatakan plainteks m menjadi blok-blok m 1 , m 2 , ..., sedemikian sehingga setiap blok merepresentasikan nilai di dalam selang [0, n - 1]. 3. Setiap bok m i dienkripsi menjadi blok c i dengan rumus c i = mi e mod n
2.4.5 Proses Dekripsi Pesan
1. Setiap blok cipherteks c i didekripsi kembali menjadi blok m i dengan rumus m i = c i d mod n.
2.4.6. Keamanan RSA
Keamanan dari sistem kriptografi RSA adalah didasari oleh dua problem matematika: 1. Problem dalam faktorisasi bilangan berjumlah banyak 2. Problem RSA, yaitu mencari modulo akar en dari sebuah bilangan komposit n yang faktor-faktornya tidak diketahui.
Proses dekripsi penuh dari sebuah ciphertext RSA dianggap sesuatu hal yang tidak mudah karena kedua problem ini diasumsikan sulit. Belum ada algoritma yang mangkus untuk menyelesaikannya. Metode pendekatan yang diyakini dapat menyelesaikan problem RSA saat ini adalah memfaktor dari modulus n. Dengan kemampuan untuk mengembalikan faktor yang merupakan bilangan prima, sebuah serangan dapat menghitung eksponen rahasia dari d dan dari kunci publik (e, n), lalu mendekripsi c menggunakan prosedur standar.
2.5 Algoritma DES
Universitas Sumatera Utara
DES, akronim dari Data Encryption Standard , adalah nama dari Federal Information Processing Standard (FIPS) 46-3, yang menggambarkan Data Encryption Algorithm (DEA). DEA juga didefinisikan dalam ANSI standard X3.92. DEA merupakan perbaikan dari algoritma Lucifer yang dikembangkan oleh IBM pada awal tahun 1970-an. Meskipun algoritmanya pada intinya dirancang oleh IBM, NSA dan NBS (sekarang NIST (National Institute of Standards and Technology)) memainkan peranan penting pada tahap akhir pengembangan. DEA, sering disebut DES, telah dipelajari secara ekstensif sejak publikasinya dan merupakan algoritma simetris yang paling dikenal dan paling banyak digunakan. DEA memiliki ukuran blok 64-bit dan menggunakan kunci 56-bit kunci selama eksekusi (8 bit paritas dihilangkan dari kunci 64 bit). DEA adalah symmetric cryptosystem, khususnya cipher Feistel 16-rounddan pada mulanya dirancang untuk implementasi hardware. Saat digunakan untuk komunikasi, baik pengirim maupun penerima harus mengetahui kunci rahasia yang sama, yang dapat digunakan untuk mengenkrip dan mendekrip pesan, atau untuk menggenerate dan memverifikasi message authentication code (MAC). DEA juga dapat digunakan untuk enkripsi single user, seperti untuk menyimpan file pada harddisk dalam bentuk terenkripsi. Dalam lingkungan multiuser, distribusi kunci rahasia akan sulit. Public-key cryptography menyediakan solusi yang ideal untuk masalah ini. NIST telah mensertifikasi kembali DES (FIPS 46-1, 46-2, 46-3) setiap 5 tahun.FIPS 46-3 mensahkan kembali penggunaan DES sampai Oktober 1999, namun single DES hanya diijinkan untuk legacy systems. FIPS 46-3 mencakup definisi dari triple-DES (TDEA, menurut X9.52); TDEA adalah "pilihan algoritma simetris yang disetujui oleh FIPS." Dalam beberapa tahun, DES dan triple-DES akan digantikan dengan AES (Advanced Encryption Standard.)
2.5.1
Cara kerja Algoritma DES
DES (data encrytion standard ) mengenkrip plaintext sebesar 64 bit (8 byte) dengan panjang kunci sekitar 56 bit (7 byte), sebanyak 16 putaran. Data 64 bit akan disubtitusi terlebih dahulu
Universitas Sumatera Utara
dengan permutasi IP (initial permutation ). IP digunakan sebelum putaran pertama dari 16 putaran, dan mensubtitusi blok input dengan ketentuan sebagai berikut: IP =
58, 50, 42, 34, 26, 18, 10, 2, 60, 52, 44, 36, 28, 20, 12, 4, 62, 54, 46, 38, 30, 22, 14, 6, 64, 56, 48, 40, 32, 24, 16, 8, 57, 49, 41, 33, 25, 17, 9, 1, 59, 51, 43, 35, 27, 19, 11, 3, 61, 53, 45, 37, 29, 21, 13, 5, 63, 55, 47, 39, 31, 23, 15, 7.
Sebagai contoh IP akan memindahkan bit ke-58 dari plaintext menjadi bit ke-1, bit ke50 menjadi bit ke-2, bit ke-43 menjadi bit ke-3, dan seterusnya. IP (initial permutation ) dan final permutation atau invers IP tidak mempengaruhi keamanan dari DES. Tujuan utamanya yaitu hanya untuk memudahkan dalam memanggil data plaintext atau data ciphertext ke dalam chip DES yang berbentuk potongan-potongan byte dalam software /program komputer. Plaintext yang telah disubtitusi akan dipecah menjadi dua bagian sebesar 32 bit kiri L
dan 32 bit kanan R. pada setiap putarannya data kiri akan menjadi data kanan, data kanan akan dilakukan operasi data kiri di-Xor-kan dengan fungsi f. Li=Ri-1 Ri=Li-1 Xor f(Ri-1,Ki)
Kemudian dilanjutkan dengan melakukan subtitusi final permutation atau invers IP (IPinv). Ipinv merupakan invers dari IP dan digambarkan dengan ketentuan sebagai berikut:
Ipinv = 40, 8, 48, 16, 56, 24, 64, 32, 39, 7, 47, 15, 55, 23, 63, 31, 38, 6, 46, 14, 54, 22, 62, 30, 37, 5, 45, 13, 53, 21, 61, 29, 36, 4, 44, 12, 52, 20, 60, 28, 35, 3, 43, 11, 51, 19, 59, 27, 34, 2, 42, 10, 50, 18, 58, 26, 33, 1, 41, 9, 49, 17, 57, 25.
Universitas Sumatera Utara
dalam putaran terakhirnya, blok R16 L16 tidak terjadi pertukaran tetapi blok ini menjadi input untuk IPinv.
Gambar 2 6. Diagram Alir Enkripsi dengan metode DES
Untuk fungsi f, data sebelah kanan sebesar 32 bit akan dipermutasi dengan expansion permutation (E) sehingga akan menghasilkan ciphertext sebesar 48 bit, kemudian dilakukan operasi Xor dengan blok kunci dan diinputkan ke dalam sbox. Sbox terdiri atas 8 buah. Hasilnya akan disubtitusi dengan P-Box permutation (P) sekaligus membentuk data menjadi 32 bit lagi. Berikut isi dari E dan P: 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,
Universitas Sumatera Utara
16, 17, 18, 19, 20, 21, 20, 21, 22, 23, 24, 25, 24, 25, 26, 27, 28, 29, 28, 29, 30, 31, 32, 1. P=
16, 7, 20, 21, 29, 12, 28, 17, 1, 15, 23, 26, 5, 18, 31, 10, 2,
8, 24, 14, 32, 27, 3, 9,
19, 13, 30, 6, 22, 11, 4, 25
Gambar 2.7 Algoritma fungsi f (metode DES)
Isi dari Sboxnya adalah sebagai berikut:
S1 =
14, 4, 13, 1, 2, 15, 11, 8, 3, 10, 6, 12, 5, 9, 0, 7, 0, 15, 7, 4, 14, 2, 13, 1, 10, 6, 12, 11, 9, 5, 3, 8, 4, 1, 14, 8, 13, 6, 2, 11, 15, 12, 9, 7, 3, 10, 5, 0, 15, 12, 8, 2, 4, 9, 1, 7, 5, 11, 3, 14, 10, 0, 6, 13.
Universitas Sumatera Utara
S2 =
15, 1, 8, 14, 6, 11, 3, 4, 9, 7, 2, 13, 12, 0, 5, 10, 3, 13, 4, 7, 15, 2, 8, 14, 12, 0, 1, 10, 6, 9, 11, 5, 0, 14, 7, 11, 10, 4, 13, 1, 5, 8, 12, 6, 9, 3, 2, 15, 13, 8, 10, 1, 3, 15, 4, 2, 11, 6, 7, 12, 0, 5, 14, 9.
S3 =
10, 0, 9, 14, 6, 3, 15, 5, 1, 13, 12, 7, 11, 4, 2, 8, 13, 7, 0, 9, 3, 4, 6, 10, 2, 8, 5, 14, 12, 11, 15, 1, 13, 6, 4, 9, 8, 15, 3, 0, 11, 1, 2, 12, 5, 10, 14, 7, 1, 10, 13, 0, 6, 9, 8, 7, 4, 15, 14, 3, 11, 5, 2, 12.
S4 =
7, 13, 14, 3, 0, 6, 9, 10, 1, 2, 8, 5, 11, 12, 4, 5, 13, 8, 11, 5, 6, 15, 0, 3, 4, 7, 2, 12, 1, 10, 14, 9, 10, 6, 9, 0, 12, 11, 7, 13, 15, 1, 3, 14, 5, 2, 8, 4, 3, 15, 0, 6, 10, 1, 13, 8, 9, 4, 5, 11, 12, 7, 2, 14.
S5 =
2, 12, 4, 1, 7, 10, 11, 6, 8, 5, 3, 15, 13, 0, 14, 9, 14, 11, 2, 12, 4, 7, 13, 1, 5, 0, 15, 10, 3, 9, 8, 6, 4, 2, 1, 11, 10, 13, 7, 8, 15, 9, 12, 5, 6, 3, 0, 14, 11, 8, 12, 7, 1, 14, 2, 13, 6, 15, 0, 9, 10, 4, 5, 3.
S6 =
12, 1, 10, 15, 9, 2, 6, 8, 0, 13, 3, 4, 14, 7, 5, 11, 10, 15, 4, 2, 7, 12, 9, 5, 6, 1, 13, 14, 0, 11, 3, 8, 9, 14, 15, 5, 2, 8, 12, 3, 7, 0, 4, 10, 1, 13, 11, 6, 4, 3, 2, 12, 9, 5, 15, 10, 11, 14, 1, 7, 6, 0, 8, 13.
S7 =
4, 11, 2, 14, 15, 0, 8, 13, 3, 12, 9, 7, 5, 10, 6, 1, 13, 0, 11, 7, 4, 9, 1, 10, 14, 3, 5, 12, 2, 15, 8, 6, 1, 4, 11, 13, 12, 3, 7, 14, 10, 15, 6, 8, 0, 5, 9, 2, 6, 11, 13, 8, 1, 4, 10, 7, 9, 5, 0, 15, 14, 2, 3, 12.
S8 =
13, 2, 8, 4, 6, 15, 11, 1, 10, 9, 3, 14, 5, 0, 12, 7, 1, 15, 13, 8, 10, 3, 7, 4, 12, 5, 6, 11, 0, 14, 9, 2, 7, 11, 14, 1, 9, 12, 14, 2, 0, 6, 10, 13, 15, 3, 5, 8, 2, 1, 14, 7, 4, 10, 8, 13, 15, 12, 9, 0, 3, 5, 6, 11.
Universitas Sumatera Utara
Blok kunci terdiri atas 16 blok, masing-masing berjumlah 56 bit. Sebelumnya, inputan blok kunci (64 bit) akan didistribusi terlebih dahulu dengan permuted Choice 1 (Pc1) atau disebut juga sebagai Key Permutation (blok kunci menjadi 56 bit), kemudian dipecah menjadi 2 bagian dengan setiap bagian sebesar 28 bit . Setiap blok ke 1, 2, 9, 16 akan dirotasi 1 bit ke kiri, sisanya 2 bit ke kiri kemudian digabungkan kembali menjadi 56 bit. Terakhir dilakukan permutasi dengan Permuted Choice 2 (Pc2) atau disebut juga sebagai Compression Permutation sehingga menjadi 48 bit. Berikut isi dari Pc1 dan Pc2:
Pc1 = 57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36, 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4. Pc2 = 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, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32.
Berikut adalah gambar dari pembentukan 16 blok kunci:
Universitas Sumatera Utara
Gambar 2.8 Diagram Alir Blok Kunci
Untuk proses deskripsinya, operasinya akan dibalik dengan operasi enkripsi yaitu: L i = R i-1 R i = L i-1 Xor f(R i-1 ,K i )
dengan urutan kunci terbalik yaitu dimulai dari blok kunci yang terakhir. 2.5.2 Keamanan DES
Isu-isu yang menjadi perdebatan kontroversial menyangkut keamanan DES: 1. Panjang kunci DES saat ini sudah dianggap tidak aman lagi, penyebabnya karena panjang kuncinya yang pendek. Panjang kunci eksternal DES hanya 64 bit atau 8 karakter, itupun yang dipakai hanya 56 bit. Pada rancangan awal, panjang kunci yang diusulkan IBM adalah 128 bit, tetapi atas permintaan NSA panjang kunci diperkecil menjadi 56 bit. Alasan pengurangan tidak diumumkan. Serangan yang paling praktis terhadap DES adalah 56
exhaustive key search. Dengan panjang kunci 56 bit akan terdapat 2
atau
Universitas Sumatera Utara
72.057.594.037.927.936 kemungkinan kunci. Jika diasumsikan serangan exhaustive key search dengan menggunakan prosesor paralel mencoba setengah dari jumlah
kemungkinan kunci itu, maka dalam satu detik dapat dikerjakan satu juta serangan. Jadi seluruhnya diperlukan 1142 tahun untuk menemukan kunci yang benar. Namun, pada tahun 1998 Electronic Frontier Foundation (EFE) merancang dan membuat perangkat keras khusus untuk menemukan kunci DES secara exhaustive key search dengan biaya $ 250.000 dan diharapkan dapat menemukan kunci selama 5
hari. Tahun 1999, kombinasi perangkat keras EFE dengan kolaborasi internet yang melibatkan lebih dari 100.000 komputer dapat menemukan kunci DES kurang dari 1 hari. 2. Jumlah putaran Sebenarnya, delapan putaran sudah cukup untuk membuat cipherteks sebagai fungsi acak dari setiap bit plainteks dan setiap cipherteks. Dari penelitian DES dengan jumlah putaran yang kurang dari 16 kali ternyata dapat dipecahkan dengan known plaintext attack lebih mangkus daripada dengan brute force attack.
3. Sbox Pengisian Sbox DES masih menjadi misteri tanpa ada alasan mengapa memilih konstanta-konstanta di dalam kotak itu.
2.5.3 Triple DES
Triple DES merupakan pengembangan dari algoritma DES. Triple DES mempunyai kunci yang lebih panjang ( 3 kali daripada DES). Cara ini dipakai untuk membuat DES lebih kuat lagi, yaitu dengan melakukan enkripsi DES tiga kali. Triple DES adalah jawaban untuk menutupi kekurangan dari DES. Panjang kunci yang digunakan lebih panjang sehingga dapat mematahkan serangan yang tiba-tiba datang. Cara kerja dari model enkripsi ini adalah mengambil 3 kunci sebanyak 64 bit dari seluruh
Universitas Sumatera Utara
kunci yang mempunyai panjang 192 bit. Triple DES memungkinkan pengguna memakai 3 sub kunci dengan masing-masing panjangnya 64 bit. Prosedur untuk enkripsi sama dengan DES tetapi diulang sebanyak 3 kali. Data dienkrip dengan kunci pertama kemudian didekrip dengan kunci kedua dan pada akhirnya dienkrip dengan kunci ketiga.
Plaintext DES Encryption
Key 1
DES Encryption
Key 2
DES Encryption
Key 3
Ciphertext Gambar 2.9 Triple DES
Akibatnya Triple DES menjadi 3 kali lebih lambat dari DES, tetapi lebih aman jika digunakan sebagaimana mestinya.
2.6 Perbandingan Kriptografi Kunci Simetris dengan Kriptografi Kunci Asimetris
2.6.1 Kelebihan Kriptografi Kunci Simetris
Kelebihan kriptografi kunci simetris, diantaranya adalah: 1. Algoritma kriptografi kunci simetris dirancang sehingga proses enkripsi/dekripsi membutuhkan waktu yang singkat. 2. Ukuran kunci simetris relatif pendek. Algoritma kriptografi kunci simetris dapat digunakan untuk membangkitkan bilangan acak. 3. Algoritma kriptografi kunci simetris dapat disusun untuk menghasilkan cipher yang lebih kuat. 4. Otentikasi pengirim pesan langsung diketahui dari cipherteks yang diterima, karena kunci hanya diketahui oleh pengirim dan penerima pesan saja.
2.6.2 Kelemahan Kriptografi Kunci Simetris
Universitas Sumatera Utara
Kelemahan kriptografi kunci simetris, diantaranya adalah: 1. Kunci simetris harus dikirim melalui saluran yang aman. Kedua entitas yang berkomunikasi harus menjaga kerahasiaan kunci ini. 2. Kunci
harus
sering
diubah,
mungkin
pada
setiap
sesi
komunikasi.
2.6.3 Kelebihan Kriptografi Kunci Asimetris
Kelebihan kriptografi kunci asimetris, diantaranya adalah: 1. Hanya kunci privat yang perlu dijaga kerahasiaannya oleh setiap entitas
yang
berkomunikasi (tetapi, otentikasi kunci publik tetap harus terjamin). Tidak ada kebutuhan mengirim kunci privat sebagaimana pada sistem simetris. 2. Pasangan kunci publik/kunci privat tidak perlu diubah, bahkan dalam periode waktu yang panjang. 3. Dapat digunakan untuk mengamankan pengiriman kunci simetris. 4. Beberapa algoritma kunci publik dapat digunakan untuk memberi tanda tangan digital pada pesan.
2.6.4 Kelemahan Kriptografi Kunci Asimetris
Kelemahan kriptografi kunci asimetris, diantaranya adalah: 1. Enkripsi dan dekripsi data umumnya lebih lambat daripada sistem simetris, karena enkripsi dan dekripsi menggunakan bilangan yang besar dan melibatkan operasi perpangkatan yang besar. 2. Ukuran cipherteks lebih besar daripada plainteks (bisa dua sampai empat kali ukuran plainteks). 3. Ukuran kunci relatif lebih besar daripada ukuran kunci simetris. 4. Karena kunci publik diketahui secara luas dan dapat digunakan setiap orang, maka cipherteks tidak memberikan mengenai otentikasi pengirim. 5. Tidak ada algoritma kunci publik yang terbukti aman. Kebanyakan algoritma mendasarkan keamanannya pada sulitnya memecahkan persoalan-persoalan aritmetik yang menjadi dasar pembangkit kunci. Kriptografi kunci publik juga tidak aman dari
Universitas Sumatera Utara
serangan man-in-the-middle attack . Orang di ”tengah” mengintersepsi komunikasi lalu berpura-pura sebagai salah satu pihak yang berkomunikasi untuk mengetahui informasi rahasia.
2. 7 Bilangan Prima
Bilangan bulat positif p (p > 1) disebut bilangan prima jika pembaginya hanya 1 dan p. Contoh 23 adalah bilangan prima karena ia hanya habis dibagi oleh 1 dan 23. Karena bilangan prima harus lebih besar 1, maka barisan bilangan prima dimulai dari 2, yaitu 2, 3, 5, 7, 11, 13, .... Seluruh bilangan prima adalah bilangan ganjil, kecuali 2 yang merupakan bilangan genap. Bilangan selain prima disebut bilangan komposit (composite). Misalnya 20 adalah bilangan komposit karena 20 dapat dibagi oleh 2, 4, 5, dan 10, selain 1 dan 20 sendiri.
Teorema The Fundamental Theorem of Arithmetic. “Setiap bilangan bulat positif yang
lebih besar atau sama dengan 2 dapat dinyatakan sebagai perkalian satu atau lebih bilangan prima”.
2.7.1 Teorema Fermat
Terdapat metode lain yang dapat digunakan untuk menguji keprimaan suatu bilangan bulat, yang terkenal dengan Teorema Fermat. Fermat (dibaca “Fair-ma”) adalah seorang matematikawan Perancis pada tahun 1640.
Teorema Fermat. “Jika p adalah bilangan prima dan a adalah bilangan bulat yang tidak
habis dibagi dengan p, yaitu PBB (a,p) = 1, maka a p-1 ≡ 1 (mod p) Contoh: Kita akan menguji apakah 17 dan 21 bilangan prima atau bukan. Disini kita mengambil nilai a = 2 karena PBB (17,2) = 1 dan PBB (21,2) = 1.
Untuk 17, 217-1 = 65536 ≡ 1 (mod 17)
Universitas Sumatera Utara
Karena 17 tidak membagi 65536 -1 = 65535
(65535 ÷ 17 = 3855).
Untuk 21, 221-1 = 1048576 ≡ 1 (mod 21) karena 21 tidak habis membagi 1048576 – 1 = 1048575. Kelemahan Teorema Fermat: terdapat bilangan komposit n sedemikian sehingga 2n-1 ≡ 1 (mod n). Bilangan bulat seperti ini disebut bilangan prima semu (pseudoprisme) . Misalnya komposit 341 (yaitu 341 = 11 . 31) adalah bilangan prima semu karena menurut teorema Fermat, 2340 ≡ 1 (mod 341). Untunglah bilangan prima semu relatif jarang terdapat.
2.7.2 Fungsi Totient Euler φ
Fungsi Totient Euler φ mendefenisikan φ (n) untuk n ≥ 1 yang menyatakan jumlah bilangan
bulat positif < n yang relatif prima dengan n. Contoh 1: φ(20) = 8; Perhitungannya adalah sebagai berikut: bilangan bulat positif yang lebih
kecil dari 20 adalah 1 sampai 19. Diantara bilangan- bilangan tersebut, terdapat φ(20) = 8 buah yang relatif prima dengan 20, yaitu 1, 3, 7, 9, 11, 13, 17, 19. Untuk n = 1, 2, ..., 10, fungsi euler adalah φ(1) = 0
φ(6) = 2
φ(2) = 1
φ(7) = 6
φ(3) = 2
φ(8) = 4
φ(4) = 2
φ(9) = 6
φ(5) = 4
φ(10) = 4
Jika n prima, maka setiap bilangan bulat yang lebih kecil dari n relatif prima terhadap n. Dengan kata lain, φ( n) = n – 1 hanya jika n prima.
Contoh 2: φ(3) = 2, φ(5) = 4, φ(7) = 6, φ(11) = 10, φ(13) = 12, dan seterusnya.
Universitas Sumatera Utara
Teorema. Jika n = pq adalah bilangan komposit dengan p dan q prima, maka φ(n) = φ( p)
φ(q) = ( p – 1)(q – 1).
Contoh 3: Tentukan φ(21). Penyelesaian: Karena 21 = 7 . 3, φ(21) = φ(7) φ(3) = 6 . 2 = 12 buah bilangan bulat yang
relatif prima terhadap 21, yaitu: 1, 2, 4, 5, 8, 10, 11, 13, 16, 17, 19, 20. k
k
k-1
k-1
Teorema. Jika p bilangan prima dan k > 0, maka φ( p ) = p – p = p (p – 1).
Contoh: Tentukan φ(16). 4
4
3
Penyelesaian: Karena φ(16) = φ(2 ) = 2 – 2 = 16 – 8 = 8, maka ada delapan buah bilangan
bulat yang relatif prima terhadap 16, yaitu: 1, 3, 5, 7, 9, 11, 13, 15. Teorema. (Euler’s generalization of Fermat theorem). Jika PBB(a, n) = 1, maka a φ(n) mod n
= 1 (atau a φ(n) ≡ 1 (mod n)).
Universitas Sumatera Utara