BAB II
TINJAUAN PUSTAKA
2.1.
Latar Belakang Kriptografi.
2.1.1
Sejarah Kriptografi.
Kriptografi berasal dari dua kata Yunani, yaitu Crypto yang berarti rahasia dan Grapho yang berarti menulis. Secara umum kriptografi dapat diartikan sebagai ilmu dan seni penyandian yang bertujuan untuk menjaga keamanan dan kerahasiaan suatu pesan. Kriptografi pada dasarnya sudah dikenal sejak lama. Menurut catatan sejarah, kriptografi sudah digunakan oleh bangsa Mesir sejak 4000 tahun yang lalu oleh raja-raja Mesir, pada saat perang untuk mengirimkan pesan rahasia kepada panglima perangnya melalui kurir-kurinya. Orang yang melakukan penyandian ini disebut kriptografer, sedangkan orang yang mendalami ilmu dan seni dalam membuka atau memecahkan suatu algoritma kriptografi tanpa harus mengetahui kuncinya disebut kriptanalis. Seiring dengan perkembangan teknologi, algoritma kriptografi pun mulai berubah menuju ke arah algoritma kriptografi yang lebih rumit dan kompleks. Kriptografi mau tidak mau harus diakui mempunyai peranan yang paling penting dalam peperangan sehingga algoritma kriptografi berkembang cukup pesat pada saat Perang Dunia I dan Perang Dunia II. Menurut catatan sejarah, terdapat beberapa algoritma kriptografi yang pernah digunakan dalam peperangan, diantaranya adalah ADFVGX yang dipakai oleh Jerman pada Perang Dunia I, Sigaba/M-134 yang digunakan oleh Amerika Serikat pada Perang Dunia II, Typex oleh Inggris, dan Purple oleh Jepang. Selain itu Jerman juga mempunyai mesin legendaris yang dipakai untuk memecahkan sandi yang dikirim oleh pihak musuh dalam peperangan yaitu, Enigma. Algoritma yang baik tidak ditentukan oleh kerumitan dalam mengolah data atau pesan yang disampaikan.
Universitas Sumatera Utara
2.1.2
Definisi Kriptografi.
Teknik Kriptografi berasal dari bahasa Yunani yakni kriptos yang artinya tersembunyi dan graphia yang artinya sesuatu yang tertulis, maka kriptografi dapat diibaratkan sesuatu yang tercatat secara rahasia. Teknik kriptografi adalah sesuatu disiplin ilmu yang mempelajari tentang teknik merahasiakan suatu data rahasia yang penting ke dalam suatu bentuk yang tidak dapat dibaca oleh siapapun serta dapat mengembalikannya kembali menjadi data seperti semula dengan menggunakan berbagai macam teknik yang telah ada sehingga data tersebut tidak dapat diketahui oleh pihak manapun yang bukan pemilik atau yang tidak berkepentingan, makna lain dari kriptografi ialah kriptanalisis (Cryptanalysis) yang merupakan ilmu tentang teknik bagaimana memecahkan mekanisme kriptografi. Dalam suatu institusi baik militer dan swasta, kriptografi lebih diutamakan dalam menjaga keamanan data agar tetap terjaga kerahasiaannya secara khusus. Seperti yang telah diketahui dan disetujui bahwa perlindungan (proteksi) terhadap komunikasi yang sensitif telah menjadi penekanan kriptografi selama ini. 2.1.3
Tujuan Kriptografi.
Algoritma yang baik tidak ditentukan oleh kerumitan dalam mengolah data atau pesan yang disampaikan. Yang penting, algoritma tersebut harus memenuhi 4 persyaratan berikut 1.
:
Kerahasiaan. Pesan (plaintext) hanya dapat dibaca oleh pihak yang memiliki kewenangan.
2.
Autentikasi. Pengirim pesan harus dapat diidentifikasi dengan pasti, penyusup harus dipastikan tidak bisa berpura-pura menjadi orang lain.
3.
Integritas. Penerima pesan harus dapat memastikan bahwa pesan yang dia terima tidak dimodifikasi ketika sedang dalam proses transmisi data.
Universitas Sumatera Utara
4.
Non-Repudiation. Pengirim pesan harus dapat menyangkal pesan yang dia kirimkan,kriptografi pada dasarnya terdiri dari dua proses, yaitu proses enkripsi dan proses dekripsi.
2.1.4 Algoritma Enkripsi Dengan XOR Sederhana. Algoritma enkripsi sederhana yang menggunakan XOR adalah dengan meng-XOR kan plainteks (P) dengan kunci (K) menghasilkan cipherteks : C = P ⊕ K, Karena meng XOR kan nilai yang sama dua kali berturut-turut menghasilkan nilai semula, maka dekripsi menggunakan persamaan : P=C⊕K Contoh: plainteks kunci
01100101 00110101
cipherteks kunci
01010000 00110101
plainteks
01100101
⊕
(karakter ‘e’) (karakter ‘5’)
⊕
(karakter ‘P’) (karakter ‘5’) (karakter ‘e’)
Algoritma enkripsi XOR sederhana pada prinsipnya sama seperti Vigenere cipher dengan penggunaan kunci yang berulang secara periodik. Setiap bit plainteks di-XOR-kan dengan setiap bit kunci. Program komersil yang berbasis DOS atau Macintosh menggunakan algoritma XOR sederhana ini. Sayangnya, algoritma XOR sederhana tidak aman karena cipherteksnya mudah dipecahkan. Cara memecahkannya adalah sebagai berikut : 1. Cari panjang kunci dengan prosedur counting concidence sbb : XOR kan cipherteks terhadap dirinya sendiri setelah digeser sejumlah byte, dan hitunglah jumlah byte yang sama. Jika pergeseran itu kelipatan dari panjang kunci (yang tidak diketahui), maka 6% dari byte akan sama. Jika tidak maka 0.4% akan sama.
Universitas Sumatera Utara
Angka persentase ini disebut index of coincidence. Pergeseran terkecil mengindikasikan panjang kunci yang dicari. 2. Geser cipherteks sejauh panjang kunci dan XOR kan dengan dirinya sendiri. Operasi ini menghasilkan plainteks yang ter XOR dengan plainteks yang digeser sejauh panjang kunci tersebut.
2.1.5. Kriptografi Kunci Simetri. Algoritma kunci-simetri mengacu pada metode enkripsi yang dalam hal ini pengirim maupun penerima memiliki kunci yang sama. Algoritma kunci-simetri modern beroperasi dalam mode bit dan dapat dikelompokkan menjadi dua kategori:
1. Cipher aliran ( stream cipher) 2. Cipher blok ( block cipher)
2.1.5.1. Stream Cipher. Algoritma kiptografi beroperasi pada plainteks/cipherteks dalam bentuk bit tunggal, yang dalam hal ini rangkaian bit dienkripsikan/didekripsikan bit per bit. Cipher aliran mengenkripsi satu bit setiap kali tranformasi atau byte per byte (1 karakter = 1 byte). Nama lain untuk cipher stream adalah cipher status sebab enkripsi tiap bit bergantung pada status saat ini (current state). Cipher aliran pertama kali diperkenalkan oleh Vernam melalui algoritmanya yang dikenal dengan nama Vernam cipher. Vernam cipher diadopsi dari one-time pad cipher, yang dalam hal ini karakter diganti dengan bit (0 dan 1). Cipherteks diperoleh dengan melakukan penjumlahan modulo 2 satu bit plainteks dengan satu bit kunci. ci = (pi + ki) mod 2 Yang dalam hal ini : pi : bit plainteks ki : bit kunci ci : bit cipherteks.
Universitas Sumatera Utara
Plainteks diperoleh dengan melakukan penjumlahan modulo 2 satu bit cipherteks dengan satu bit kunci : pi = (ci + ki) mod 2, oleh karena itu kita dapat menyatakan bahwa cipher aliran merupakan aproksimasi dari unbreakable cipher yaitu on-time pad cipher. Mengingat operasi penjumlahan modulo 2 identik dengan operasi bit dengan operator XOR, maka pada cipher aliran, bit hanya mempunyai dua buah nilai, sehingga proses enkripsi hanya menyebabkan dua keadaan pada bit tersebut : berubah atau tidak berubah. Dua keadaan tersebut ditentukan oleh kunci enkripsi yang disebut aliran kunci (keystream). Aliran kunci dibangkitkan dari sebuah pembangkit yang dinamakan pembangkit aliran-kunci (keystream generator). Aliran kunci di XOR kan dengan aliran bit-bit plainteks pi, p2, …,pi, untuk menghasilkan aliran bit-bit cipherteks. ci = pi ⊕ ki, disisi penerima, bit-bit cipherteks di XOR-kan dengan aliran kunci yang sama untuk menghasilkan bit-bit plainteks : pi = ci ⊕ ki Contoh : Plainteks
: 1100101
Aliran kunci : 1000110 Maka cipherteks didapatkan dengan meng XOR kan bit-bit plainteks dengan aliran kunci pada posisi yang berkoresponden, sehinga didapatkan : 0100011
2.2
System Teknik Kriptografi.
Ilmu Kriptografi telah banyak dimamfaatkan di dalam Teknik pengamanan baik data maupun informasi, dibidang teknik computer dalam pengamanan data pada masa kini. Teknik yang
sering dipakai dari kriptografi adalah sistem yang
dikembangkan dengan teknik dasar. Sistem pengamanan data ini, dapat memiliki tingkat keragaman yang khas. Beberapa aplikasi yang lebih sederhana antara lain , komunikasi data yang aman, identifikasi, otentikasi, dan secret sharing. Aplikasi yang lebih rumit seperti sistem untuk electronic commerce (e-commerce), sertifikasi, electronic
Universitas Sumatera Utara
mail yang aman, penemuan kunci dan akses komputer yang aman. Secara umum, makin sederhana aplikasi makin cepat menjadi realita.
2.2.1
Identifikasi dan Otentikasi.
Identifikasi dan otentikasi merupakan dua sarat mutlak dari teknik kriptografi yang sangat banyak digunakan saat ini. Identifikasi adalah suatu proses verifikasi identitas suatu objek. Sebagai contoh, ketika mengambil dana dari suatu bank dengan menggunakan kartu, yang dilengkapi dengan saatu password yang rahasia tersebut, demikian juga dengan rekening yang bersangkutan. Ketika kartu dimasukkan ke dalam mesin , maka mesin tersebut akan meminta pengguna kartu untuk memasukkan password. Jika Password yang dimasukkan benar, mesin akan mengidentifikasikan orang tersebut benar sebagai pemilik kartu sehingga kepada orang tersebut akan diberikan tanda bahwa yang bersangkutan dapat melanjutkannya. Sehingga teknik penting lainnya dari kriptografi adalah otentikasi. Otentikasi sama juga dengan indetifikasi, diantara keduanya memberikan kemampuan dalam mengakses ke dalam teknik tertentu pula, tetapi otentikasi memiliki jangkauan yang lebih luas sehingga tidak perlu mengidentifikasikan objeknya.
2.2.2
Kriteria Pada Sistem Kriptografi.
Teknik kunci suatu sistem kriptografi (cryptosystems) dapat dikatagorikan atas 2 jenis teknik yakni teknik kriptografi dengan kunci publik (public key cryptography) dan teknik kriptografi dengan kunci rahasia (secret key cryptography). Dalam teknik kriptografi kunci rahasia yang juga dikenal dengan symmetric cryptosystems. Pengirim dan penerima bersama-sama sepakat dalam suatu kunci rahasia yang akan digunakan dalam proses enkripsi dan dekripsi suatu data tanpa diketahui oleh pihak lain. Sedangkan dalam teknik kriptografi kunci publik atau dikenal dengan assymmetric cryptosystem, pihak pengirim maupun pihak penerima mendapatkan sepasang kunci yang disebut dengan kunci publik (public
Universitas Sumatera Utara
key) dan kunci rahasia (private key) dimana kunci publik dipublikasikan dan kunci rahasia tetap dirahasiakan. Enkripsi dilakukan dengan menggunakan kunci publik sedangkan dekripsi dilakukan dengan menggunakan kunci rahasia.
2.3
Teknik Kunci Rahasia.
Teknik pada kriptografi dengan kunci rahasia merupakan suatu teknik pada kriptografi yang lebih sederhana, sedangkan pada kunci satu dapat digunakan untuk enkripsi dan dekripsi suatu data. Teknik kunci rahasia bukan hanya digunakan untuk proses enkripsi, namun juga dapat digunakan untuk proses otentikasi. Proses data dengan menggunakan teknik kriptografi kunci rahasia membuat pengirim dan penerima pesan atau informasi setuju atas kunci rahasia yang digunakan tanpa orang lain mampu mendapatkan dan mengetahuinya. Atau dengan kata lain bagaimana memilih kunci rahasia yang benar-benar aman. Proses
ini membutuhkan suatu teknik dimana kedua pihak dapat
berkomunikasi tanpa keraguan akan bocornya kunci tersebut. Akan tetapi, keuntungan dari kriptografi kunci rahasia adalah biasanya lebih cepat dibandingkan dengan kriptografi kunci publik. Teknik yang paling umum untuk kriptografi kunci rahasia adalah block ciphers, stream ciphers, dan message authentication codes.
2.3.1
Block Cipher.
Simetri Cipher Blok Algoritma kriptografi akan disebut simetri apabila ber pasangan kunci untuk proses enkripsi dan dekripsinya sama. Algoritma enkripsi simetri inipun dibagi lagi menjadi dua kelas, yaitu block-cipher dan streamcipher. Karena AES harus merupakan cipher blok, maka cipher stream tidak akan dibahas pada makalah ini. Pada algoritma kriptografi simetri cipher blok, rangkaian bit-bit plainteks dibagi menjadi blok-blok bit dengan panjang sama. Enkripsi dilakukan terhadap blok bit plainteks menggunakan bit-bit kunci (yang ukurannya sama dengan blok
plainteks).
Algoritma
enkripsi
menghasilkan blok cipherteks
yang
Universitas Sumatera Utara
berukuran sama dengan blok plainteks. Dekripsi dilakukan dengan cara yang serupa seperti enkripsi. Skema enkripsi dan dekripsi dengan cipher blok dapat dilihat pada Gambar 1. Fungsi E dan D dideskripsikan sendiri oleh kriptografer.
Gambar 2.1 . Enkripsi dan Dekripsi dengan Cipher Block
2.3.1.1
Teknik Kriptografi.
Yang Digunakan Pada Chiper Blok. Algoritma blok cipher menggabungkan beberapa
teknik klasik dalam proses
enkripsi.
Teknik kriptografi yang
digunakan adalah :
1). Substitusi. Teknik ini mengganti satu atau sekumpulan bit pada blokc plainteks menjadi cipherteks tanpa mengubah urutannya. 2). Transposisi atau Permutasi. Teknik ini memindahkan posisi bit pada blok plainteks untuk ditempatkan pada blok cipherteks berdasarkan
aturan tertentu.
3). Ekspansi. Teknik ini memperbanyak jumlah bit pada block plainteks berdasarkan aturan tertentu, biasanya dinyatakan dengan tabel.
Universitas Sumatera Utara
4). Kompresi. Teknik ini kebalikan dari ekspansi, di mana jumlah bit pada plainteks dikompresi (diperkecil) berdasarkan aturan
2.3.1.2 Mode Operasi Cipher Block. Plainteks dibagi menjadi beberapa
blok yang dengan panjang yang tetap.
Beberapa mode operasi dapat diterapkan untuk melakukan enkripsi terhadap keseluruhan blok plainteks, Empat mode operasi yang lazim diterapkan pada sistem blok cipher adalah .
1) Electronic Code Book (ECB). Setiap blok plainteks
Pi
dienkripsi
secara
individual
dan
independen menjadi blok cipherteks Ci. Secara matematis, enkripsi dengan mode ECB dinyatakan sebagai Ci = Ek(Pi) dan dekripsi sebagai Pi = Dk(Ci), yang dalam
hal ini, Pi dan Ci masing
masing block plainteks dan cipherteks ke- I Skema enkripsi.
Gambar. 2 .2
Electronic Code Book (ECB)
Universitas Sumatera Utara
2).
Cipher Block Chaining ( CBC ). Mode ini menerapkan mekanisme umpan balik (feedback)
pada
sebuah blok, yang dalam hal ini hasil enkripsi blok sebelumnya diumpan balikkan ke dalam enkripsi blok yang current. Secara matematis, enkripsi dengan mode CBC dinyatakan sebagai Ci = Ek(P1 = Cií1) dan dekripsi sebagai Pi = Dk(Ci) = Ci-1
Yang
dalam hal ini, C0 = IV ( initialization vector ). IV dapat diberikan oleh pengguna atau dibangkitkan secara acak oleh
program.
gambar enkripsi dengan mode CBC dapat dilihat pada Gambar 2.3 .
Gambar 2.3
Enkripsi dengan Mode CBC
2.3.1.3 Stream Cipher . Adalah type algoritma proses enkripsi simetri yang merupakan model mentransformasikan data secara karakter per karakter. Stream ciphers dapat dibuat sangat cepat sekali, jauh lebih cepat dibandingkan dengan algoritma block cipher yang manapun.
Universitas Sumatera Utara
Sementara algoritma block cipher secara umum digunakan untuk unit plaintext yang berukuran besar sedangkan stream cipher digunakan pada blok data yang ukurannya kecil, biasanya ukuran bit. Suatu Proses enkripsi terhadap plaintext tertentu dengan algoritma block cipher akan menghasilkan ciphertext yang sama jika kunci yang sama digunakan. Dalam proses stream cipher, transformasi dari unit plaintext yang lebih kecil ini berbeda antara satu dengan lainnya, tergantung pada kapan unit tersebut ditemukan selama proses enkripsi. Stream cipher menghasilkan apa yang disebut dengan keystream yaitu suatu barisan bit yang digunakan sebagai kunci. Proses enkripsi dicapai dengan menggabungkan keystream dengan plaintext biasanya dengan operasi bitwise XOR. Proses keystream dapat dibuat independen terhadap plaintext dan ciphertext, menghasilkan apa disebut dengan proses synchronous stream cipher, dan dapat dibuat tergantung pada data dan enkripsinya, dalam metode ini stream cipher disebut sebagai self-synchronizing, bentuk stream cipher ialah synchronous stream cipher. Penunjukan proses dalam stream ciphers pada umumnya berkaitan dengan sifat-sifat teoritis yang menarik dari one-time pad. Suatu one-time pad, kadangkadang disebut Vernam cipher, dalam menggunakan sebuah string dari bit yang dihasilkan murni secara acak. Keystream memiliki panjang sama dengan pesan plaintext; string acak digabungkan dengan menggunakan bitwise XOR dengan plaintext untuk menghasilkan ciphertext. Karena keystream seluruhnya adalah acak, walaupun dengan sumber daya komputasi tak terbatas seseorang hanya dapat menduga plaintext jika dia melihat ciphertext. Metode cipher seperti ini disebut memberikan kerahasiaan yang sempurna (perfect secrecy), dan analisis terhadap one-time pad dipandang sebagai salah satu landasan kriptografi modern. Sementara one-time pad yang digunakan semasa perang melalui saluran diplomatik membutuhkan tingkat keamanan yang sangat tinggi, fakta bahwa kunci rahasia (yang hanya dapat digunakan satu kali) dianggap rahasia sepanjang pesan
Universitas Sumatera Utara
memperkenalkan masalah manajemen kunci yang strict. Sedangkan keamanan sempurna, one-time pad secara umum adalah tidak praktis. Metode Stream ciphers dikembangkan sebagai satu pola terhadap tindakan dari one-time pad. Sedangkan stream cipher modern tidak mampu menyediakan tingkat keamanan one-time pad yang memadai secara teori, tetapi setidaknya praktis. Sampai saat ini belum ada stream cipher sebagai standard . Metode stream cipher yang umum digunakan. Satu hal yang menarik bahwa mode operasi tertentu dari suatu block cipher dapat mentransformasikan secara efektif hasil operasi tersebut ke dalam satu keystream generator dan dalam, block cipher, suatu stream cipher.
2.4
Matematis Kriptografi.
2.4.1
Pengantar Matematis Pada Kriptografi.
Seluruh byte dalam algoritma Mars diinterprestasikan sebagai elemen
dalam
finite field. Element finite field ini dapat dikalikan dan dijumlahkan, tetapi hasil dari penjumlahan dan perkalian elemen finite field sangat berbeda dengan hasil dari penjumlahan dan perkalian bilangan biasa.
2.4.2
Penjumlahan.
Penjumlahan dari dua elemen dalam suatu finite field tersebut dilakukan dengan menjumlahkan koefisien dari pangkat polinom yang bersesuaian dari dua elemen tersebut. Penjumlahan dilakukan dengan operasi XOR dan dinotasikan dengan ⊕ . Dengan operasi ini, maka
:
1 ⊕ 1 = 0, 1 ⊕ 0 = 1, 0 ⊕ 1 = 1, dan 0 ⊕ 0 = 1. Pengurangan dari polynomial identik dengan penjumlahan polynomial. Sebagai alternative, penjumlahan elemen-elemen pada finite field dapat dijelaskan sebagai penjumlahan modulo 2 dari bit yang bersesuaian dalam byte. Untuk 2 byte { a7a6a5a4a3a2a1a0 } dan { b7b6b5b4b3b2b1b0 }, hasil penjumlahannya adalah { c7c6c5c4c3c2c1c0 } dimana setiap ci = ai ⊕ bi. Contoh
dari
operasi
penjumlahan
adalah
sebagai
berikut
:
(
X6+X4+X2+X+1) = X7+X6+X4+X2 ini adalah notasi dari polynomial,
Universitas Sumatera Utara
{01010111 } ⊕ {11010100 } ini disebut ( Notasi Biner ) dan { 57 } ⊕ { 83 } = { d4 } ini disebut notasi hexadecimal.
2.4.3
Perkalian.
Dalam representasi polynomial, perkalian dalam GF ( 28 ) yang dinotasikan dengan * mengacu pada perkalian modulo polynomial sebuah irreducible polynomial yang berderajat 8. Sebuah polynomial bersifat irreducible jika satu satunya pembagi adalah dirinya dan 1, untuk algoritma Mars, irreducible polynomial ini adalah, m(x) = x8+x4+x3+x+1 , atau dalam notasi hexadecimal adalah { 01 } {1b }.
Sebagai contoh, {57}*{83}={c},
karena
:
6
(X +X4+X2+X+1)*(X7+X+1=X13+X11+X9+X8+X7+X7+X5+X3+X2+X+X6+X4+X2 +1=X13+X11+X9+X8+X6+X5+X4+X3+1dan X13+X11+X9+X8+X6+X5+X4+X3+X+1 modulo ( X8+X4+X3+X+1 ) = X7+X6+ 1. Pengurangan modulo oleh m(x) memastikan bahwa hasilnya akan berupa polynomial biner dengan derajat kurang dari 8, sehingga dapat dipresentasikan dengan 1 byte.
2.4.4
Operasi XOR.
MARS cipher menggunakan berbagai macam pada operasi ( pada 32-bit word). MARS mengkombinasikan: Exclusive-or (XOR), penjumlahan, pengurangan, perkalian, fixed rotation dan data dependent rotation. antara lain adalah :
1)
Penjumlahan, Pengurangan, Perkalian dan XOR. Ini merupakan operasi yang sangat sederhana, yang digunakan untuk menggabungkan nilai data dan nilai kunci.
2)
Fixed Rotation. Rotasi berdasarkan nilai tertentu yang sudah ditetapkan. Dalam hal ini nilai rotasi untuk transformasi kunci adalah 13 posisi dengan pergerakan rotasi ke kiri, untuk r -function adalah 5 dan 13 posisi
Universitas Sumatera Utara
dengan pergerakan rotasi ke kin, 24 posisi untuk forward mixing dengan pergerakan rotasi ke kin dan 24 posisi untuk backward mixing dengan pergerakan rotasi ke kanan. 3)
Data Dependent Rotation. Rotasi berdasarkan nilai yang ditentukan berdasarkan 5 bit terendah (berkisar antara 0 dan 31) dari word data, misalkan nilai rotasi r = 5 bit terendah dari M maka nilai rotasi r akan sangat tergantung dengan nilai 5 bit terendah dari M.
2.4.5 S-Box. Tabel look-up atau S-box merupakan suatu tabel substitusi yang digunakan sebagai dasar untuk menjamin keamanan data pada DES, dan juga digunakan untuk beberapa cipher yang lain seperti MARS. MARS menggunakan tabel tunggal yang terdiri dari 512, 32 bit word, yang disebut dengan S-box. Tabel S box ini merupakan fixed tabel yang nilainya sudah tetap, kekurangan dari penggunaan S-box adalah agak lambat untuk diimplementasi pada software.
2.4.6
Kriptografi Secret Key dan Public Key.
Pada dasarnya terdapat dua jenis algoritma kriptografi berdasarkan kunci yang digunakan. Yang pertama adalah kriptografi dengan menggunakan secret key dan yang kedua adalah kriptografi yang menggunakan public key. Kriptografi public key menggunakan dua kunci yang berbeda dimana satu kunci digunakan untuk melakukan enkripsi dan kunci yang lain digunakan untuk melakukan dekripsi.
Universitas Sumatera Utara
Gambar 2.4 Kriptografi kunci simetri.
1.
Cryptographi Secret Key.
Kriptografi secret key adalah kriptografi yang hanya melibatkan satu kunci dalam proses enkripsi dan dekripsi. Proses dekripsi dalam kriptografi secret key ini adalah kebalikan dari proses enkripsi. Kriptografi
secret
key
seringkali
disebut
sebagai
kriptografi
konvensional atau kriptografi simetris (Symmetric Cryptography) dimana proses dekripsi adalah kebalikan dari proses enkripsi dan menggunakan kunci yang sama. Kriptografi simetris dapat dibagi menjadi dua, yaitu penyandian blok
dan penyandian alir. Penyandian blok bekerja pada suatu data yang
terkelompok
menjadi blok-blok data atau kelompok data dengan panjang data
yang telah ditentukan. Pada penyandian blok, data yang masuk akan dipecah-pecah menjadi blok data yang telah ditentukan ukurannya. Penyandian alir bekerja pada suatu data bit tunggal atau terkadang dalam satu byte. Jadi format data yang mengalami proses enkripsi dan dekripsi adalah berupa aliran bit-bit data. Algoritma
yang
ada
pada
saat
ini
kebanyakan
bekerja
untuk
penyandian blok karena kebanyakan proses pengiriman data pada saat ini
Universitas Sumatera Utara
menggunakan
blok-blok data
yang
telah
ditentukan
ukurannya
untuk
kemudian dikirim melalui saluran komunikasi. 2.
Kriptografi Public Key.
Kriptografi public key sering disebut dengan kriptografi asimetris .Berbeda dengan kriptografi secret key, kunci yang digunakan pada proses enkripsi dan proses dekripsi pada kriptografi public key ini berbeda satu sama lain. Jadi dalam kriptografi public key, suatu key generator akan menghasilkan dua
kunci
berbeda dimana satu kunci digunakan untuk melakukan proses
enkripsi dan kunci yang lain digunakan untuk melakukan proses dekripsi. Kunci yang digunakan untuk melakukan enkripsi akan dipublikasikan kepada umum untuk dipergunakan secara bebas. Oleh sebab itu, kunci yang digunakan untuk melakukan enkripsi disebut juga sebagai public key. Sedangkan kunci yang digunakan untuk melakukan dekripsi akan disimpan.
Gambar 2. 5 Kriptografi Asimetris
Universitas Sumatera Utara
2.5
Metoda MARS.
2.5.1
Sejarah Algoritma MARS.
MARS adalah cipher block yang didesain oleh tim dari IBM Corporation, yaitu Carolynn Burwick, Don Coppersmith, Edward D.Avignon, Rosario Gennaro, Shai Halevi, Charanjit Jutla, Stephen M.Matyas, Jr., Luke O’Connor, Mohammad Peyravian, David Safford, dan Nevenko Zunic. MARS merupakan block cipher dengan panjang blok 128 bit dan panjang kunci fleksible dari 128 bit sampai 499 bit. Algoritma ini bekerja dengan word
32
bit, dan menggunakan
jaringan Feistel (Feistel network) tipe-3. MARS menerima input dan menghasilkan output empat word 32 bit. Cipher ini berorientasi pada word, di mana semua operasi internalnnya bekerja pada word 32 bit, sehingga struktur internal dari MARS adalah endian-neutral (code yang sama dapat bekerja pada mesin little - endian maupun big - endian). Jika input (atau output) cipher adalah byte stream, maka digunakan pengurutan little - endian byte untuk menginterpretasi masing masing empat byte sebagai sebuah word 32 bit. Gambar 4, memperlihatkan skema dari MARS yang dibagi menjadi 3 fase. Fase pertama, Forward Mixing berisi pengacakan besar besaran dan hujan kunci untuk membuat frustasi serangan chosen-plaintext.
Di dalam fase ini dilakukan penambahan word kunci ke word data, diikuti dengan delapan putaran berbasis S-Box. Fase kedua merupakan Cryptographic Core (inti kriptografi) dari cipher ini, yang berisi 16 putaran transformasi dengan jaringan Feistel. Untuk memastikan enkripsi dan dekripsi memiliki kekuatan yang sama, maka 8 putaran pertama dilakukan dengan forward mode sedangakan sisanya dengan backward mode. Fase terakhir, Backward Missing operasi yang dilakukan hampir sama seperti fase pertama, namun merupakan kebalikan dari fase pertama. Fase ini bertujuan melindungi cipher dari serangan chosen-ciphertext.
Universitas Sumatera Utara
Gambar 2.6 Algoritma MARS
2.5.2
Algoritma Enkripsi MARS.
Penelitian ini menggambarkan dan menganalisis MARS algoritma enkripsi simetris-key yang merupakan blok baru cipher diserahkan kepada NIST untuk dipertimbangkan sebagai Advanced Encryption Standard (AES). MARS mendukung blok 128-bit dan ukuran kunci variabel. Hal ini dirancang untuk mengambil keuntungan dari kuat operasi didukung dalam komputer saat ini, menghasilkan banyak peningkatan keamanan / trade off kinerja Khususnya, dalam MARS kami menggunakan kombinasi yang unik dari lookup S-box, perkalian dan rotasi data-dependent. MARS memiliki struktur heterogen, dengan kriptografi putaran inti yang dibungkus oleh putaran pencampuran sederhana. Putaran inti kriptografi memberikan kuat perlawanan terhadap semua serangan cryptanalytical dikenal, sedangkan putaran pencampuran memberikan guguran baik dan menawarkan margin keamanan yang sangat luas untuk menggagalkan (sebelum diketahui) serangan.
Universitas Sumatera Utara
2.5.2.1 Struktur Cipher Algoritma MARS. Struktur cipher pada MARS dibagi dalam 3 tahap yakni 1)
:
Tahap Pertama adalah Forward Mixing. Berfungsi untuk mencegah serangan terhadap chosen plainlext. Terdiri dari
penambahan sub kunci pada setiap word data atau
plaimezr, diikuti dengan
delapan iterasi mixing tipe-3 feitsal
(dalam forward mode) dengan berbasis S2)
box.
Tahap Kedua adalah “ Cryptographic Core” dan “ Cipher ”. Terdiri dari enam belas iterasi tranformasi kunci tipe-3 feistal. Untuk menjamin bahwa proses enkripsi dan dekripsi mempunyai kekuatan yang
sama, delapan iterasi pertama ditunjukkan
dalam forward mode dan delapan
iterasi terakhir ada dalam “
backward mode”. 3)
Tahap Terakhir Adalah Backward Mixing. Berfungsi untuk melindungi serangan kembali terhadap chosen chipertext.
Tahap ini merupakan invers dari tahap pertama,
terdiri dari delapan iterasi mixing tipe-3 feistel (dalam backward mode) dengan berbasis s-box, diikuti dengan pengurangan sub kunci dari word data. Hasil pengurangan inilah yang disebut dengan ciphertext. Notasi yang digunakan dalam cipher: 1.
D[ ] adalah sebuah array untuk 4 32-bit data. Inisial D berisi plaintext dan
pada akhir proses enkripsi berisi
ciphertext. 2.
K[ ] adalah array untuk expanded key, terdiri dari 40 32 bit word.
3. 3 (1)
S [ ] adalah sebuah S-box, terdiri dari 512 32-bit word.
Tahap Pertama : Forward Mixing.
Dalam tahap ini, pertama-tama sebuah sub kunci ditambahkan pada setiap word data dari plaintext, dan kemudian dilakukan delapan iterasi mixing tipe-3 feistel network (dalam forward mode), dikombinasikan dengan operasi mixing tambahan.
Universitas Sumatera Utara
Dalam setiap iterasi digunakan sebuah word data (source word) untuk memodifikasi tiga word data (target word). Keempat byte source word digunakan sebagai indeks untuk S-box, kemudian nilai S-box entri akan di-XOR-kan, atau ditambahkan pada ketiga word data yang lain. Keempat byte dari source word dinotasikan dengan b0, b1, b2, b3 (dimana b0 adalah byte terendah dan b3 adalah byte tertinggi) dan digunakan sebagai indeks untuk S-box. S-box[b0] di-XORkan dengan target word pertama, dan S box[b1+256] ditambahkan dengan target word yang sama. S box[b2] ditambahkan dengan target word kedua dan S box[b3+256] di-XOR-kan dengan target word ketiga. Terakhir source word dirotasikan sebanyak 24 posisi ke kanan. Untuk iterasi berikutnya keempat word data dirotasikan, sehingga target word pertama saat ini menjadi source word berikutnya, target word kedua saat ini menjadi target word pertama berikutnya, target word ketiga saat ini menjadi target word kedua berikutnya dan source word saat ini menjadi target word ketiga berikutnya.
(3.2) Tahap Kedua: Transformasi Kunci Utama. Cryptographic core pada MARS cipher menggunakan Network yang terdiri dari enam belas iterasi.
Dalam
digunakan E-function (E untuk expansion) yang
tipe 3 –feistal setiap
iterasi
mengkombinasikan
penjumlahan, perkalian, fixed rotation data dependent rotation dan S _box lookup. Fungsi ini menerima input satu word data dan menghasilkan word data sebagai output dengan notasi L, M dan K. Dalam setiap
tiga iterasi
digunakan satu word data sebagai input untuk E-function dan ketiga output word data dari P - Function ditambahkan atau di-XOR-kan ke ketiga word data yang lam. Kemudian Source word dirotasikan sebanyak 13
posisi ke
kiri . Ketiga output dari E-function digunakan dengan cara yang
berbeda
dalam delapan iterasi pertama dibandingkan dengan delapan iterasi
Universitas Sumatera Utara
Dalam delapan iterasi pertama, output function ditambahkan dengan target word
pertama dan kedua dari E-
pertama dan kedua,
ketiga di-XOR-kan dengan target word ketiga.
Dalam delapan
output iterasi
terakhir, output pertama dan kedua dari E –function ditambahkan dengan target word ketiga dan kedua, output ketiga di-XOR-kan dengan target word pertama.
(3.3)
E-Function.
E -function menerima input satu word data dan menggunakan dua
atau
lebih sub kunci untuk menghasilkan tiga word data sebagai output. Dalam fungsi ini digunakan tiga variabel sementara, yang dinotasikan dengan L, M dan R ( left, middle, dan right ). R berfungsi untuk menampung nilai source word yang dirotasikan sebanyak 13 posisi ke kiri. M berfungsi untuk menampung nilai source word yang dijumlahkan dengan sub kunci pertama. Sembilan bit terendah dari M digunakan sebagai indeks untuk S-box. L berfungsi untuk menampung nilai yang sesuai dengan S box entry. Sub kunci kedua akan dikalikan dengan R dan kemudian R dirotasikan sebanyak S posisi ke kiri. L di-XOR-kan dengan R, lima bit terendah dari R digunakan untuk nilai rotasi r dengan nilai antara 0 dan 31, dan M dirotasikan ke kiri sebanyak r posisi. R dirotasikan sebanyak 5 posisi ke kiri dan di-XOR-kan dengan L. Terakhir, lima bit terendah dari R diambil sebagai nilai rotasi r dan L dirotasikan kekiri sebanyak r posisi. Output word pertama dari E -function adalah M kedua adalah M dan ketiga adalah R.
(3.4) Tahap Ketiga : Backward Mixing. Tahap ini merupakan invers dari tahap forward mixing,
word data yang
diproses dalam urutan yang berbeda dalam backward mode. Sama halnya pada forward mixing, pada backward mixing juga digunakan sebuah source word untuk memodifikasi tiga target word.
Universitas Sumatera Utara
Keempat byte dari source word dinotasikan dengan b0, bl, b2, b3 (dimana b0 adalah byte terendah dan b3 adalah byte tertinggi) dan digunakan sebagai indeks untuk S box. S box [b0+256] di-XOR-kan dengan target word pertama, dan S box[b3] dikurangkan dengan target word kedua. S box [b2+256] dikurangkan dengan target word ketiga dan S box[b1] di-XOR-kan dengan target word ketiga juga. Terakhir source word dirotasikan sebanyak 24 posisi ke kiri. Untuk iterasi berikutnya keempat word data dirotasikan sehingga target word pertama saat ini menjadi source word berikutnya, target word kedua saat ini menjadi target word pertama berikutnya, target word ketiga saat ini menjadi target word kedua berikutnya dan source word saat ini menjadi target word ketiga berikutnya.
2.5.2.2 Perluasan Kunci. Perluasan kunci berfungsi untuk membangkitkan sub kunci dari kunci yang diberikan oleh pemakai yakni k[ ] yang terdiri dari n 32-bit (word). Kunci diperluas menjadi 40 32-bit (word) sub kunci K[ ]. Dalam prosedur ini dibutuhkan 7 word data yang diambil dari S box[0…6] dan digunakan untuk transformasi linier. Tabel temporer T yang terdiri dari 47 word data digunakan untuk menampung nilai 7 word data dari S box[0..6] dan nilai hasil transformasi linier, dimana 7 word pertama berisikan nilai S box(0..6] dan 40 word terakhir akan diisikan melalui transformasi linier yang selanjutnya digunakan dalam iterasi untuk perluasan kunci. Dalam transformasi linier untuk T[0..38] diisikan dengan ketentuan T[i-7] di-XOR-kan dengan T[i-2] dan hasilnya dirotasikan sebanyak 3 posisi ke kin kemudian di-XOR-kan dengan k[i mod n], di-XOR-kan dengan i. Untuk T[39] diisikan dengan n. Perluasan kunci dilakukan sebanyak 7 iterasi dan pada iterasi terakhir nilai temperori T[0..39] disubstitusikan menjadi nilai sub kunci K[0…39]. Dalam setiap iterasi T[1..39] didapat dengan cara menambahkan S box[9 bit terendah dari T[i-1]] dengan T[i] dan kemudian dirotasikan sebanyak 9 posisi kekiri. Untuk T(0), S box[9 bit terendah dari T[39] ditambahkan dengan T[0] dan
Universitas Sumatera Utara
kemudian dirotasikan sebanyak 9 posisi ke kiri. Dari hasil iterasi terakhir T[0…39] disubtitusikan ke sub kunci K[0…39] dengan cara : K[(7i) mod 40] diisikan dengan T[i].Untuk nilsi K5 K7... K33 diubah dengan ketentuan: u digunakan untuk menampung nilai S_box[265+2 bit terendah dari K[1], j digunakan untuk menampung nilai 5 bit terendah dari K[i+3]. Kemudian nilai 2 bit terendah dari K[i] diset menjadi 1 dan ditampung dalam w. Bit mask M diset menjadi 1 jika dalam w1 terdapat 10 bit 1 atau bit 0 yang berurutan. U dirotasikan sebanyak j posisi ke kiri dan hasilnya ditampung dalam p. Terakhir p di-XOR-kan dengan w di bawah kontrol M dan disimpan dalam K[i].
2.5.2.3 Panjang Kunci. Keamanan data sebuah strategi penyandian yang tergantung dari dua hal : algoritma penyandian dan panjang kuncinya ( key ). Algoritma
sangat
menentukan kekuatan dari sebuah teknik penyandian, tetapi panjang kunci juga sangat berguna dalam menentukan suatu kekuatan teknik penyandian. Suatu contoh, apabila seorang kriptanalis mengetahui algoritma yang dipakai untuk melakukan teknik penyandian terhadap suatu pesan, makanya kriptanalis tersebut harus mendapatkan kunci yang dipakai terlebih dahulu sebelum dapat melakukan dekripsi terhadap semua ciphertext yang dia miliki. Satu satunya cara sebelum mendapatkan kunci yang akan dipaki adalah dengan cara mencoba semua variasi kunci yang ada, teknik serangan ini disebut dengan istilah brute force. Adalah mudah untuk menghitung banyaknta variasi kunci yang ada. Apabila panjang kunci adalah 8 bit, maka ada 28 atau 256 kemungkinan kunci yang akan dicoba Dari 256 percobaan ini maka peluang untuk mendapatkan kunci yang benar adalah 50 persen setelah melalui setengah usaha percobaan. Bila panjang kunci 56 bit, maka ada 256 kemungkinan variasi kunci. Dengan menganggap sebuah super computer dapat mencoba satu juta kunci perdetik, maka diperkirakan sekitar 2285 tahun untuk menemukan kunci yang benar. Dan bila menggunakan kunci 64 bit, maka dengan super computer
Universitas Sumatera Utara
yang sama akan membutuhkan 585 ribu tahun. Dengan jangka waktu yang relative lama maka dapat dipastikanbahwa pesan yang disandikan tersebut tidak mempunyai arti lagi apabila telah berhasil dibuka oleh orang lain. Dengan melihat situasi ini, maka kriptografi yang baik akan memilih untuk menggunakan sepanjang mungkin kunci yang akan digunakan, namun hal ini tidak dapat diterapkan begitu saja, semakin panjang kunci maka semakin lama pula waktu yang dibutuhkan computer untuk melakukan proses enkripsi. Oleh sebab itu,panjang kunci yang akan digunakan hendaknya memperhatikan dalam 3 hal, yakni seberapa penting data yang akan dirahasiakan, berapa lama waktu yang dibutuhkan agar data tersebut tetap aman, dan berapa kuat kemampuan kriptanalis dalam memecahkan teknik penyandian. Saat ini yang paling banyak dipakai adalah kunci dengan panjang 128 bit karena panjang kunci ini dianggap paling optimal untuk saat ini.
2.5.2.4
Proses Enkripsi Data.
Proses dari enkripsi Algoritma data 128 bit ini terdiri dari langkah-langkah sebagai berikut : 1.
Ambil blok data sebanyak 128 bit. Apabila dalam mengambil blok data kurang dari 128 bit, maka perlu adanya penambahan supaya dalam penggunaannya sesuai dengan jumlah datanya atau dengan proses padding.
2.
Blok data 128 bit dipermutasikan dengan Initial Permutation (IP).
3.
Blok data 128 bit yang telah dipermutasikan tersebut
dibagi
menjadi dua bagian, yaitu bit pertama disebut L[0] dan 32 bit kedua disebut R[0]. 4.
Ke-16 sub kunci dioperasikan dengan blok data, dimulai dari j=1 dan terbagi menjadi cara-cara berikut ini: R[j] = L[j-1] XOR f(R[j1], K[j])L[j] = R[j-1].
5.
Permutasi akhir dilakukan kembali dengan tabel permutasi yang merupakan invers dari permutasi awal. Lihat pada gambar 2. 4.
Universitas Sumatera Utara
2.5.2.5 Proses Dekripsi Data. Proses dekripsi sama persis dengan proses enkripsi. Perbedaannya hanya terletak pada aturan dari subkey-nya. Urutan subkey terbalik dengan proses enkripsi dan subkey-nya di-inverse-kan. Subkey pada langkah transformasi output pada proses enkripsi di-inversekan dan digunakan sebagai subkey pada putaran 1 pada proses dekripsi. Subkey pada putaran 8 di-inverse-kan dan digunakan sebagai subkey pada putaran 1 dan 2 pada proses dekripsi, demikian seterusnya.
Universitas Sumatera Utara