• Tidak ada hasil yang ditemukan

BAB 5 KESIMPULAN DAN SARAN

5.2 Saran

Sebagai bahan pertimbangan untuk pengembangan sistem kedepan agar menjadi lebih baik, berikut ada beberapa saran yang dapat dijadikan pertimbangan:

1. Untuk pengembangan selanjutnya aplikasi ini diharapkan mampu mengenkripsi dan dekripsi file teks *.doc, dan jenis file teks lainnya yang sering digunakan.

2. Untuk hasil enkripsi sessionkey sebaiknya dalam bentuk kode karakter bukan dalam bentuk ciphernumber agar kelihatan lebih rapi.

3. Panjang kunci algoritma Rijndael diharapkan pada pengembangan selanjutnya bisa mencapai 192-bit dan 256-bit.

6

BAB 2

TINJAUAN PUSTAKA

2.1. Kriptografi

Kriptografi berasal dari bahasa Yunani, cryptosdan graphein. Cryptosberarti rahasia dan graphein berarti tulisan. Menurut terminologinya kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan ketika dikirim dari suatu tempat ke tempat yang lain. Kriptografi telah dikenal sejak ribuan tahun lalu, bahkan beberapa ahli mengatakan ilmu penyembunyian pesan ini telah dikenal sejak zaman mesir kuno, masyarakat mesir menulisnya dalam bentuk hieroglyphy yang bentuk tulisannya tidak standard dalam aturan penulisan pesan. (Konheim, 2007).

Kriptografi dapat pula diartikan sebagai ilmu atau teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasian, integritas data, serta otentikasi. Prinsip dasar kriptografi adalah menyembunyikan informasi dalam bentuk sedemikian rupa sehingga hanya orang-orang yang berhak saja yang dapat mengetahui isi informasi yang disembunyikan itu. (Smart, 2004).

Dalam algoritma kriptografi dikenal beberapa komponen yaitu: 1. Enkripsi

merupakan suatu proses pengubahan pesan asli yang disebut plainteks menjadi suatu kode yang tidak bisa dimengerti atau disebut juga

7

2. Dekripsi

merupakan proses pengubahan cipherteks menjadi plainteks. Algoritma yang digunakan untuk dekripsi tentu berbeda dengan algoritma yang digunakan untuk enkripsi.

3. Kunci

Berfungsi untuk melakukan enkripsi dan dekripsi. Berdasarkan jenis kunci yang digunakan kriptografi terbagi dua yaitu algoritma kriptografi simetris dan algoritma kriptografi asimetris.

4. Plainteks

merupakan pesan asli (clearteks). Agar pesan tidak dapat dimengerti maknanya oleh pihak lain, maka pesan akan diproses menggunakan algoritma kriptografi untuk menjadi kode-kode yang tidak bisa dipahami. 5. Cipherteks

merupakan bentuk pesan yang telah disandikan sehingga tidak bisa dibaca karena berupa karakter yang tidak mempunyai makna.

Dari lima komponen dalam kriptografi tersebut saling berhubungan. Plainteks dan cipherteks merupakan hasil pemetaan dari fungsi enkripsi dan dekripsi dengan menggunakan sebuah kunci. Misalkan P menyatakan plainteks, C menyatakan

cipherteks, dan k menyatakan kunci, maka fungsi enkripsi dan dekripsi dapat ditulis

Ek (P) = C maka Dk (C) = P sehingga Dk (Ek(P)) = P. (Munir, 2006).

2.1.1. Algoritma kriptografi kunci simetris

Dalam algoritma ini kunci pada saat penyandian pesan sama dengan kunci pada saat pendekripsian pesan. Jadi pembuat pesan dan penerimanya harus menyepakati kunci yang akan digunkan. Masalah yang paling jelas disini terkadang bukanlah masalah pengiriman cipherteks nya, melainkan masalah bagaimana menyampaikan kunci simetris tersebut kepada pihak yang diinginkan karena sekali saja kunci tersebut diketahui oleh pihak yang lain maka pesan tersebut akan mudah untuk dienkripsi dan didekripsi oleh orang lain.

8

Contoh algoritma kunci simetris yang terkenal salah satunya adalah DES (Data Encryption Standard), AES Rijndael, dan IDE, kelemahan pada algoritma kunci simetris, kunci harus didistribusi dengan aman, jika ada n pengguna maka dibutuhkan jumlah kunci sebanyak n(n-1)/2 kunci. Jika kunci berhasil ditemukan oleh pihak yang tidak berhak, maka sistem kriptografi tidak lagi aman. Dibalik kelemahan di atas, terdapat juga keuntungan dari penggunaan algoritma ini yaitu prosesnya lebih cepat jika dibandingkan dengan kriptografi asimetri. Keuntungan inilah yang menjadi dasar mengapa algoritma ini masih banyak digunakan dan terus dikembangkan.

Gambar 2.1 Skema Kriptografi Simetri (Munir, 2006)

2.1.2. Algoritma kriptografi kunci asimetri

Whitfield Diffie dan Martin Hellman memperkenalkan konsep kriptografi kunci publik (kunci asimetris) pada tahun 1976. Pada algoritma asimetris kunci terbagi menjadi dua bagian yaitu:

1. Kunci umum (public key): kunci yang boleh diketahui semua orang (dipublikasikan).

2. Kunci rahasia (private key): kunci yang dirahasiakan (hanya boleh diketahui oleh satu orang saja).

Kunci privat,K Plainteks User A Enkripsi Ek(P)=C Ciphertext Dekripsi Dk(C)=P User B Kunci privat,K Plainteks

9

Seseorang dapat mengirim sebuah pesan rahasia dengan menggunakan kunci publik tetapi pesan cipherteks hanya dapat didekripsi dengan kunci rahasia yang dimiliki penerima pesan.

Gambar 2.2 Skema Kriptografi Asimetri (Munir, 2006)

Aplikasi kunci publik dapat diimplementasi menjadi tiga kategori: 1. Kerahasian data

Kriptografi kunci-publik dapat digunakan untuk menjaga kerahasiaan data melalui mekanisme enkripsi dan dekripsi. Contoh algoritma untuk aplikasi ini adalah RSA, Knapsack, dan Elgamal.

2. Tanda-tangan digital

Kriptografi kunci publik dapat digunakan untuk membuktikan otentikasi pesan maupun otentikasi pengirim. Contoh algoritma untuk aplikasi ini adalah RSA, DSA, dan Elgamal.

3. Pertukaran kunci (key exchange)

Algoritma kriptografi kunci publik dapat digunakan untuk pengiriman kunci simetri (sessionkey). Contoh algoritmanya adalah RSA dan Diffie-hellman.

Dalam implementasinya, sistem kriptografi kunci publik bukan pengganti sistem kriptografi simetris. Sistem kriptografi kunci publik tidak digunakan untuk mengengkripsi pesan, melainkan untuk mengenkripsi kunci pada sistem kriptografi simetris. Dengan sistem kriptografi kunci publik maka pertukaran kunci pada sistem kriptigrafi simetris dapat dilakukan dengan aman.

Enkripsi Ek1(P)=C Kunci publik K1 Plainteks P User A Ciphertext C Dekripsi Dk2(C)=P User B Kunci privat K2 Plainteks P

10

2.2. Jenis-Jenis Serangan Terhadap Kriptografi

Serangan terhadap sistem kriptografi dapat dikelompokkan dengan beberapa cara:

1. Berdasarkan keterlibatan penyerang dalam komunikasi: a. Serangan aktif

Pada jenis serangan ini, penyerang mengintervensi komunikasi secara langsung dan ikut mempengaruhi sistem untuk keuntungan dirinya. Misalnya penyerang mengubah aliran pesan seperti menghapus sebagian

ciphertext, mengubah ciphertext, menyisipkan potongan ciphertext palsu,

me-replay pesan lama, mengubah informasi yang tersimpan, dan sebagainya. Serangan yang termasuk jenis serangan aktif adalah

man-in-the-middle attack.

b. Serangan pasif

Pada jenis serangan ini, penyerang tidak terlibat dalam komunikasi antara pengirim dan penerima, namun penyerang menyadap semua pertukaran pesan antara kedua entitas tersebut. Tujuannya adalah untuk mendapatkan sebanyak mungkin informasi yang digunakan untuk kriptanalisis. Beberapa metode penyadapan data antara lain:

1) Wiretapping: penyadap mencegat data yang ditransmisikan pada

saluran komunikasi dengan menggunakan sambungan perangkat keras. 2) Electromagnetic eavesdropping: penyadap mencegat data yang

ditransmisikan melalui saluran wireless, misalnya radio dan

microwave.

2. Berdasarkan banyaknya informasi yang diketahui oleh kriptanalis: a. Ciphertext-only attack

Ini adalah jenis serangan yang paling umum namun paling sulit karena informasi yang tersedia hanyalah ciphertext saja.Tugas kriptanalis adalah menemukan plaintext sebanyak mungkin dari ciphertext tersebut dengan mencoba setiap kemungkinan kunci yang dimiliki.(Arriyus, 2008).

11

b. Known-plaintext attack

Ini adalah jenis serangan dimana kriptanalis memiliki pasangan plainteks dan cipherteks yang berkoresponden. Beberapa pesan yang formatnya terstruktur membuka peluang kepada kriptanalis untuk menerka plainteks dari cipherteks yang bersesuaian.

c. Chosen-plaintext attack

Serangan jenis ini lebih hebat dari pada known-plaintext attack, karena kriptanalis dapat memilih plainteks yang dimilikinya untuk dienkripsikan, yaitu plainteks yang lebih mengarahkan penemuan kunci.

d. Chosen-ciphertext attack

Ini adalah jenis serangan dimana kriptanalis memilih cipherteks untuk didekripsikan dan memiliki akses ke plainteks hasil dekripsi (misalnya terhadap mesin elektronik yang melakukan dekripsi secara otomatis). Jenis serangan ini biasanya dipakai pada sistem kriptografi.

e. Chosen-text attack

Ini adalah jenis serangan yang merupakan kombinasi chosen-plaintext dan

chosen-ciphertext attack.

3. Berdasarkan teknik yang digunakan dalam menemukan kunci: a. Exhaustive attack atau brute force attack

Ini adalah serangan untuk mengungkap plainteks atau kunci dengan mencoba semua kemungkinan kunci.

b. Analytical attack

Kriptanalis menganalisis kelemahan algoritma kriptografi untuk mengurangi kemungkinan kunci yang tidak mungkin ada. Analisis dapat menggunakan pendekatan matematik dan statistik dalam rangka menemukan kunci.

12

2.3. Algoritma AES Rijndael

Pada tahun 1997 NIST (National Institute of Standards and Technology) berniat ingin mencari pengganti algoritma DES, hal ini dikarenakan dalam tempo 96 hari 70 ribu PC berhasil membobol kunci DES, kemudian pada tahun 1998 hanya dalam tempo 22 hari, sehingga dibuat suatu mesin khusus untuk memecahkan algoritma DES. Mesin tersebut terbukti dapat memecahkan 25% kunci DES dalam waktu 2,3 hari dan dapat memecahkan seluruh kunci DES dalam waktu rata-rata 4,3 hari. Karena alasan tersebut NIST ingin mengadakan kompetisi yang diikuti para kriptografer seluruh dunia agar segara mendapatkan pengganti dari algoritma DES.(Arriyus, 2008).

Pada tanggal 9 Agustus 1999, NIST melalui seleksi yang sangat ketat mengumumkan 5 finalis yang akan memasuki seleksi akhir yaitu MARS, RC6, Rijndael, Serpent, dan Twofish. Pada seleksi akhir tanggal 2 Oktober 2000 maka terpilihlah Rijndael sebagai pemenang. Algoritma Rijndael dibuat oleh Dr. Vincent Rijmen dan Dr. Joan Daemen. Evaluasi terhadap algoritma Rijndael tersebut dapat dilihat dari beberapa sudut pandang berikut ini:

1. Dari segi general security

a. Belum ada serangan yang serius dalam memecahkan skema dari Rijndael

b. Rijndael menggunakan komponen S-Box non linear.

c. Rijndael memiliki struktur matematika yang bisa terus mengalami perkembangan.

2. Dari segi enkripsi dekripsi

a. Memiliki kode yang sangat rumit.

b. Enkripsi dekripsi Rijndael berbeda satu dengan yang lainnya.

c. Rijndael mendukung penuh ukuran blok dan ukuran kunci 128 bit, 192bit, dan 256 bit.

Algoritma Rijndael menggunakan substitusi, permutasi, dan sejumlah putaran yang dikenakan pada tiap blok yang akan dienkripsi/dekripsi. Untuk setiap putarannya, Rijndael menggunakan kunci yang berbeda.

13

Algoritma Rijndael mampu menangani panjang kunci dan ukuran blok yang berbeda, panjang kunci dan ukuran blok yang telah ditentukan adalah 128, 192, dan 256. Ukuran blok dapat dihitung dengan (Nb= block length / 32) dan panjang kunci (Nk= key length / 32). Nilai Nb dan Nk yang akan dipakai mempengaruhi jumlah putaran (Nr) yang terjadi pada saat proses enkripsi dan dekripsi. Tabel 2.1 akan menunjukan perbedaan jumlah putaran (Nr) berdasarkan panjang kunci dan ukuran blok yang digunakan. (Mollin, 2007).

Tabel 2.1 Perbandingan Jumlah Putaran pada Rijndael (Rijman & daemen, 2002)

Nr Nb= 4 Nb= 6 Nb= 8

Nk= 4 10 12 14

Nk= 6 12 12 14

Nk= 8 14 14 14

Algoritma Rijndael memiliki tiga para meter yaitu:

1. Plainteks : array yang berukuran 16 byte, yang berisi data masukan. 2. Cipherteks : array yang berukuran 16 byte, yang berisi hasil enkripsi. 3. Key : array yang berukuran 16 byte, yang berisi kunci ciphering.

Algoritma Rijndael beroprasi pada orientasi byte. Tiap elemen dari arraystate diisi dengan 8 bit teks (1 byte) dalam notasi HEX. Urutan pengisian dimulai dari kolom awal (c=0) sampai kolom terakhir ( c=3) dan dari baris awal (r=0) sampai baris akhir (s=3). Setiap state pasti mempunyai jumlah baris yang tetap, yaitu 4 baris, sedangkan jumlah kolom tergantung dari besarnya blok data.

14

2.3.1. Proses enkripsi algoritma Rijndael

Proses enkripsi untuk algoritma Rijndael yang beroperasi pada panjang blok 128-bit dengan kunci 128-bit, total putaran (Nr) yang dilakukan hingga diperoleh cipherteks adalah 10 kali putaran. Secara garis besar proses enkripsi algoritma Rijndael diperlihatkan pada Gambar 3.3.

Gambar 2.3 Diagram Proses Enkripsi Rijndael

Urutan proses enkripsi Rijndael dalam mengamankan plainteks yaitu: 1. Key Expantion

Pada tahap ini dilakukan ekspansi kunci sesuai dengan panjang kunci dan panjang ukuran blok yang akan digunakan, hasil ekspansi ini disebut dengan Roundkey.

15

2. Addroundkey

Untuk proses Addroundkey yang pertama dilakukan XOR antara state awal (plaintext) dengan kunci utama, sedangkan Addroundkey yang selanjutnya pada tiap putaran, merupakan hasil key ekspantion dari kunci utama (sessionkey).

3. Putaran (Nr) sebanyak Nr-1

Pada proses ini akan dilakukan beberapa putaran, jumlah putaran telah ditentukan seperti yang telah dijelaskan sebelumnya. Pada tahap ini dilakukan 9 kali putaran, yaitu:

a. Sub Bytes

Pada proses ini dilakukan subtitusi menggunkan table S-box. Dua digit bilangan HEX yang merupakan representasi 1 byte dari tiap teks menjadi koordinat untuk substitusi pada S-box. Digit pertama sebagai koordinat x dan digit kedua sebagai koordinat y, perpotongan baris x dengan kolom y merupakan nilai yang akan diambil. (Rijmen & Daemen, 2002).

Tabel 2.2 S-Box yang Digunakan dalam Transformasi Bytesub Rijndael (Rijmen & Daemen,2002)

16

b. ShiftRows

Proses pergeseran baris array state dengan menggeser baris ke-r dalam

array state ke kiri sebanyak r byte. Baris ke-0 dari blok tidak mengalami

pergeseran. Baris ke-1 bergeser 1 byte ke kiri, baris ke-2 bergeser 2 byte ke kiri, sampai akhirnya didapatkan hasil terakhir setelah menggeser baris ke-3 sebanyak ke-3 byte ke kiri. Berikut adalah table jumlah pergeseran berdasarkan blok Nb. (Rijmen & Daemen,2002).

Tabel 2.3 Jumlah Pergeseran Pada Tahap Shift Rows (Rijmen & Daemen,2002)

Nb C0 C1 C2 C3

4 0 1 2 3

6 0 1 2 3

8 0 1 4 4

c. MixColoumns

Yaitu proses pengacakan data di masing-masing kolom array state. Transformasi MixColumns menggunakan operasi perkalian matriks dengan operasi perkalian dan penjumlahan menggunakan operator pada GF(28) dengan irreducible polynomial ( x8 + x4 +x3 + x + 1). Matriks tersebut berdasarkan polinom a(x) mod (x4 + 1) dengan polinom a(x) yang ditetapkan adalah a(x) = 3x3 + x2 + x +2. (Mollin, 2007).

17

Transformasi ini dinyatakan sebagai perkalian matriks:

s’(x) = a(x)s(x)

s’0,c = ({02} •s0,c) ⊕ ({03}s1,c ) s2,cs3,c

s’1,c = s0,c⊕ ({02} s1,c) ⊕ ({03}s2,c ) ⊕s3,c s’2,c = s0,cs1,c⊕ ({02} s1,c) ⊕ ({03}s3,c )

s’3,c = ({03}•s0,c ) s0,cs1,c⊕ ({02} s3,c)

Gambar 2.4Perkalian Matriks MixColumn() Rijndael

d. Addround key

Dilakukan dengan fungsi XOR antara array state sebelumnya dengan round key. Proses ini akan terus berulang sebanyak Nr-1 sesuai besarnya blok data dan panjang kunci.

Setelah semua proses dilakukan sebanyak Nr-1, proses terakhir adalah final round. Pada tahap ini proses MixColumns tidak dilakukan.

4. Final round

Proses untuk putaran terakhir hanya dilakukan tiga tahap saja, proses dari ketiga tahap tersebut sama seperti proses pada tahap sebelumnya yaitu:

a. SubBytes. b. ShiftRows. c. AddRoundKey. S’0,c 02 03 01 01 S’0,c S’1,c = 01 02 03 01 S’1,c S’2,c 01 01 02 03 S’2,c S’3,c 03 01 01 02 S’3,c

18

2.3.2. Proses dekripsi algoritma Rijndael (AES)

Proses dekripsi algoritma Rijndael tidak jauh berbeda dengan proses enkripsi namun berbeda pada urutan prosesnya saja. Untuk urutan proses dekripsi yaitu:

1. Key Expantion

Pada proses dekripsi juga dilakukan ekspansi kunci. Kunci pada proses enkripsi kemudian diekspansi terlebih dahulu untuk menghasilkan

RoundKey yang akan digunakan pada setiap putaran.

2. AddRoundKey

Dilakukan proses XOR antara state awal (cipherteks) dengan key terakhir hasil ekspansi. Tahap ini disebut juga initial round.

19

3. Putaran sebanyak Nr-1 kali Proses yang dilakukan pada setiap putaran adalah:

a. InvShiftRow

Pergeseran baris-baris array state ke kanan dengan aturan pergesaran sama seperti pada tahap enkripsi.

b. InvByteSub

Dilakukan substitusi byte dengan menggunakan tabel substitusi kebalikan (inverse S-box). Tabel substitusi dapat dilihat pada Tabel 2.4.

Tabel 2.4 S-Box yang Digunakan dalam Transformasi Invbytesub() Rijndael (Rijmen & Daemen,2002)

20

c. AddRoundKey

Pada proses ini dilakukan XOR antara state sekarang dengan round key. d. InvMixColumn

Seperti pada proses MixColumn, InvMixColumn juga dilakukan pengacakan di masing-masing data pada kolom array state.

4. Final round

Proses untuk putaran terakhir hanya dilakukan tiga tahap saja, proses dari ketiga tahap tersebut sama seperti proses pada tahap sebelumnya, yaitu: a. InvShiftRow

b. InvSubByte

c. AddRoundKey

2.3.3. Key expantion

Algoritma Rijndael (AES) membuat suatu ekspansi kunci untuk menghasilkan suatu

key schedule. Jika ekspansi kunci yang diperlukan Rijndael (AES) Nb(Nr+1) word,

sehingga bisa digunakan AES 128 bit, maka 4(10+1)=40 word=44x32 bit=1408 bit

subkey. Ekspansi dari 128 menjadi 1408 bit subkey, proses ini disebut dengan key schedule. Subkey ini diperlukan karena setiap round merupakan suatu inisial dari Nb word untuk Nr=0 dan 2 Nb untuk Nr=1, 3 untuk Nr=2,…,11 Nb untuk Nr=10, dari

operasi ini akan didapatkan schedule kunci yang berisi array linier 4 byte word (Wi), 0=i(Nr+1). (Arriyus,2008).

21

2.4.Algoritrma Kriptografi RSA

Sistem kriptografi asimetris pertama kali dipublikasikan pada tahun 1997 oleh Whitfield Diffie dan Martin Hellman dari Stanford University. Penelitian mereka membahas tentang pendistribusian kunci rahasia pada saluran komunikasi umum, metode ini kemudian dikenal dengan nama algoritma Diffie Hellman. Algoritma ini beranjak dari hasil penelitian sistem kriptografi asimetris yang pertama kali dilakukan oleh James H. Ellis, Clifford Cocks, dan Malcom Williamson pada tahun1970. Namun sayangnya algoritma tersebut dirahasiakan dan tidak dipublikasikan.

Berkat penemuan tersebut pada tahun 1976 tiga orang ilmuan dari MIT (Massachusset Institute Of Technology) yaitu Ron Rivest, Adi Shamir, dan Leonard Adleman, mencoba mengembangkan teknik algoritma kriptografi kunci publik, algoritma tersebut kemudian dikenal dengan naman RSA. (Munir, 2006).

RSA merupakan salah satu algoritma kriptografi yang bersifat asimetris, artinya setiap pengguna memiliki sepasang kunci, satu kunci untuk enkripsi dan satu kunci lagi untuk dekripsi. Kunci enkripsi (public-key) bersifat tidak rahasia sedangkan untuk kunci dekripsi dirahasiakan (private-key). Untuk kunci publik disimbulkan dengan e dan untuk kunci privat disimbulkan dengan d. karena kunci enkripsi tidak sama dengan kunci dekripsi itulah kriptografi RSA disebut kunci asimetris. Kekuatan algoritma RSA terletak pada tingkat kesulitan dalam memfaktorkan bilangan menjadi faktor primanya.

Pada algoritma RSA terdapat 3 langkah utama yaitu key generation (pembangkitan kunci), enkripsi, dan dekripsi. Kunci pada RSA mencakup dua buah kunci, yaitu public key dan private key. Public key digunakan untuk melakukan enkripsi, dan dapat diketahui oleh orang lain. Sedangkan private key tetap dirahasiakan dan digunakan untuk melakukan dekripsi. Besaran besaran yang digunakan pada RSA adalah sebagai berikut :

1. p dan q bilangan prima (dirahasiakan)

2. n= p .q (tidak dirahasiakan) 3. φ(n) = (p-1) (q-1) (dirahasiakan)

22

4. e (kunci enkripsi) (tidak rahasia) 5. d( kunci dekripsi ) (dirahasiakan) 6. m (Plainteks) (dirahasiakan) 7. c ( Cipherteks ) (tidak rahasia)

Proses pembangkitan kunci atau RSA adalah sebagai berikut:

1. Pilih dua buah bilangan prima sembarang p dan q. Jaga kerahasiaan p dan

q ini.

2. Hitung n = p * q. Besaran n ini tidak dirahasiakan.

3. Hitung φ(n)= (p-1) * (q-1). Sekali φ(n) telah dihitung, p dan q dapat

dihapus untuk mencegah diketahuinya oleh pihak lain.

4. Pilih sebuah bilangan bulat untuk kunci publik e, yang relatif prima terhadap n (GCD(e, φ(n)) = 1) dengan syarat e (p-1), e (q-1), dan e < n.

5. Kunci publik (Public Key) = (n,e)

6. Hitung kunci privat (d). Kunci privat dapat dihitung dengan persamaan:

dengan syarat k dan d adalah anggota bilangan bulat. Nilai k = 1, 2, 3, ...,n diperoleh nilai d yang bulat. Nilai itu yang akan dipakai sebagai kunci pribadi untuk dekripsi pesan.

Proses enkripsi dapat dilakukan dengan:

Sedangkan proses dekripsi dilakukan dengan:

Dalam implementasi sebenarnya, nilai p dan q diharapkan sangat besar sekali (misalnya 100 digit) agar pekerjaan memfaktorkan n menjadi faktor primanya menjadi sangat sukar, sehingga lebih susah untuk ditembus.

Ci = Pi e mod n Pi = Ci d mod n �=1 +�φ(n)

23

2.4.1. Algoritma pembangkit bilangan prima

Algoritma pembangkit bilangan prima dalam kriptografi kunci publik sangat berperan penting dalam meningkatkan keamanan, besarnya nilai bilangan prima yang mampu dibangkitkan akan meningkatkan tingkat kerumitan terhadap pemecahan kode rahasia dari algoritma kunci publik itu sendiri. Algoritma Lehmann adalah salah satu algoritma pembangkit bilangan prima yang bisa digunakan, algoritma ini menggunakan beberapa kali pengujian terhadap suatu bilangan prima P sehingga diperoleh persentasi peluang bilangan tersebut adalah prima. Langkah-langkah algoritma Lehmann dapat dilihat sebagai berikut:

1. Pilih bilangan prima p yang ingin diuji keprimaannya, misalkan 71. 2. Bangkitkan bilangan acak a yang rentang nilainya 1 <a<p. misalkan 43. 3. Hitung L (legendre). �= 2�− 1 2 ���� L = 41 71−1 2 ��� 71 L = 4135 ��� 71 L = 1

4. Bila � ≡1 (����) atau � ≡ −1 (����) maka persentasi bahwa p adalah bilngan prima sebesar 50%.

5. Bila � ≠ 1 (����) atau � ≠ −1 (����) maka nilai p pasti bukan prima.

Apabila pengujian diatas diulangi sebanyak t kali dengan nilai a yang berbeda,

maka peluang p adalah prima mempunyai kesalahan tidak lebih dari 1/2t. (Alan.G, 2007).

1

BAB 1

PENDAHULUAN

1.1. Latar Belakang Masalah

Perkembangan teknologi komunikasi yang semakin pesat saat ini membuat segala urusan sehari-hari manusia tidak terlepas dari penggunaan perangkat teknologi dalam menunjang berbagai aktivitas agar lebih mudah dan cepat. Penggunaan perangkat teknologi saat ini boleh dikatakan wajib mengingat kecepatan waktu merupakan tujuan utama baik dalam hal berkomunikasi atau berbagi informasi mulai dari yang sifatnya rahasia (privat) maupun yang sifatnya umum (public). Namun seiring dengan kemajuan tersebut tingkat kejahatan di era teknologi juga semakin meningkat dan berkembang, sehingga sangat perlu diperhatikan segi keamanannya pada saat melakukan komunikasi atau hal-hal lain terutama yang bersifat rahasia.

Salah satu cara untuk meningkatkan keamanan terhadap data atau file yaitu dengan menggunakan metode kriptografi. Pada kriptografi modern, algoritma yang digunakan tidak dirahasiakan sebab setiap kali algoritma diketahui lawan, maka kriptografer harus membuat algoritma baru, dengan demikian cukup kuncinya yang harus dirahasiakan dan benar-benar dijaga keamanannya. Berdasarkan jenis kunci yang digunakan, kriptografi terbagi atas dua metode, yaitu kriptografi kunci simetris dan kriptografi kunci asimetris. Perbedaan dari kedua kriptografi ini terletak pada penggunaan kunci. Untuk kriptografi simetris menggunakan kunci yang sama pada saat melakukan enkripsi dan dekripsi.

2

Oleh sebab itu harus benar-benar dijaga kerahasian kunci tersebut, namun berbeda halnya dengan kriptografi asimetris, kunci pada saat enkripsi berbeda dengan kunci yang digunakan pada saat melakukan dekripsi, hal ini menjadi salah satu faktor kriptografi asimetris lebih aman dibandingkan dengan kriptografi simetris.

Berdasarkan uraian di atas, sistem kriptografi secara mutlak ditentukan oleh keamanan kunci yang digunakan. Selain panjangnya kunci, proses pada saat pertukaran kunci harus juga diperhatikan agar kunci tersebut tetap aman. Algoritma kriptografi kunci publik atau sering disebut dengan algoritma kunci asimetris terkadang tidak pernah berdiri sendiri, algoritma kunci publik juga membutuhkan algoritma kunci simetris. Dalam hal ini biasanya algoritma kunci simetris tersebut digunakan untuk enkripsi dan dekripsi plainteks karena dari segi kecepatan waktu algoritma simetris cukup menguntungkan, sedangkan algoritma kunci publik berperan untuk mengenkripsikan kunci dari kunci simetris tersebut agar lebih aman pada saat pendistribusian kunci dan pesan. Berdasarkan permasalahan itu penulis berencana untuk mengombinasikan kedua sistem kriptografi tersebut. Untuk kriptografi simetris penulis memilih algoritma kriptografi Rijndael yang merupakan pemenang dalam kompetisi yang dilakukan oleh NIST (National Institute of standard and Tekhnology) pada 2 Oktober 2000 untuk menggantikan algoritma DES (Data Encryption Standard) yang dirasa sudah tidak aman lagi dalam penggunaannya. Sedangkan untuk sistem pertukaran kuncinya menggunakan kriptografi asimetris yaitu RSA, algoritma ini pertama kali dipublikasikan di tahun 1977 oleh Ron Rivest, Adi Shamir, dan Leonard Adleman dari Massachusetts Institute of Technology (MIT).

1.2. Rumusan Masalah

Berdasarkan uraian pada latar belakang di atas, maka dapat diambil suatu permasalahan bagaimana cara mengimplementasikan dua buah algoritma yang berbeda yaitu Rijndael dan RSA untuk melakukan proses enkripsi dan dekripsi. Sistem ini lebih dikenal dengan Hybrid Cryptosistem.

3

1.3. Batasan Masalah

Batasan masalah dalam tugas akhir ini adalah sebagai berikut:

1. Penelitian ini hanya membahas implementasi algoritma Rijndael dan RSA

Dokumen terkait