Sistem Kriptografi Teknik Pemecahan Kunci Algoritma Rivest Shamir Adleman (Rsa) Dengan Metode Kraitchik

2. Integritas Data Data Integrity , adalah layanan yang menjamin bahwa pesan masih asliutuh atau belum pernah dimanipulasi selama pengiriman. Manipulasi data dapat berupa menyisipkan, menghapus dan menukar data tersebut. 3. Otentikasi Authentication , adalah layanan yang berhubungan dengan identifikasi baik mengidentifikasi kebenaran pihak-pihak yang berkomunikasi entity authentication maupun mengidentifikasi asal usul pesan data origin authentication . Dua pihak yang saling berkomunikasi harus dapat mengotentikasi satu sama lain sehingga ia dapat memastikan asal usul pesan. Otentikasi asal usul pesan secara implisit juga memberikan kepastian integritas data, sebab jika pesan telah dimodifikasi berarti asal usul pesan sudah tidak benar. 4. Penyangkalan Non-Repudiation , adalah layanan untuk mencegah entitas yang berkomunikasi melakukan penyangkalan yaitu pengirim pesan telah menyangkal melakukan pengiriman atau penerima pesan menyangkal telah menerima pesan. Menezes, et al. 2001 Schneier, 1996

2.3. Sistem Kriptografi

Cryptosystem Sistem kriptografi cryptosystem sering disebut juga dengan sistem cipher cipher system adalah sistem yang terdiri dari algoritma enkripsi, algoritma dekripsi dan tiga komponen teks plaintext , ciphertext dan kunci Tilborg, et al., 2011 . Secara umum ada dua jenis sistem kriptografi berbasis kunci: 1. Sistem kriptografi simetris Symmetric Cryptosystem , sering disebut algoritma konvensional, adalah algoritma di mana kunci enkripsi dapat dihitung dari kunci dekripsi dan sebaliknya, artinya kunci enkripsi sama dengan kunci dekripsi. Algoritma ini disebut juga algoritma secret-key , algoritma kunci tunggal, atau algoritma satu kunci mengharuskan pengirim dan penerima menyepakati kunci yang sama sebelum mereka dapat berkomunikasi secara aman. Keamanan algoritma simetris terletak pada kunci, kebocoran kunci berarti siapa pun bisa mengenkripsi dan mendekripsi pesan. Algoritma simetris dapat dibagi menjadi dua kategori, pertama, beroperasi pada plaintext satu bit atau kadang-kadang byte pada suatu waktu yang disebut algoritma aliran atau stream cipher . Beberapa lagi beroperasi pada plaintext dalam kelompok bit. Kelompok- Universitas Sumatera Utara kelompok bit yang disebut blok dan algoritmanya disebut algoritma blok atau block cipher . Contoh sistem ini adalah DES, Blowfish, RC5, GOST, dsb. Enkripsi E K P = C Enkripsi E K P = C Dekripsi D K C = P Dekripsi D K C = P Kunci privat K Kunci Privat K Plainteks P CipherteksC Plainteks P Gambar 2.2 Skema symmetric cryptosystem 2. Sistem kriptografi kunci-publik Public-key Cryptosystem , sering disebut algoritma asimetris asymmetric cryptosystem , adalah algoritma di mana kunci yang digunakan untuk enkripsi berbeda dengan kunci yang digunakan untuk dekripsi. Selain itu, kunci dekripsi tidak dapat setidaknya dalam jumlah waktu yang wajar dihitung d ari suatu kunci enkripsi. Algoritma ini disebut “kunci- publik” karena kunci enkripsi dapat dibuat publik yaitu pihak luar dapat menggunakan kunci enkripsi untuk mengenkripsi pesan, tetapi hanya orang tertentu dengan kunci dekripsi yang sesuai dapat mendekripsi pesan. Dalam sistem ini, kunci enkripsi disebut kunci publik, dan kunci dekripsi disebut kunci privat. Ada dua masalah matematika yang sering dijadikan dasar pembangkitan sepasang kunci pada algortima kunci-publik, yaitu: a. Pemfaktoran Diberikan bilangan bulat n . faktorkan n menjadi faktor primanya. Semakin besar n , semakin sulit memfaktorkannya butuh waktu sangat lama. Algoritma yang menggunakan prinsip ini adalah RSA. b. Logaritma diskrit Temukan x sedemikian sehingga sulit dihitung. Semakin besar a , b dan n semakin sulit memfaktorkannya. Algoritma yang menggunakan prinsip ini adalah ElGamal dan DSA.Munir, 2006 Universitas Sumatera Utara Enkripsi E K1 P = C Enkripsi E K1 P = C Dekripsi D K2 C = P Dekripsi D K2 C = P Kunci Publik K1 Kunci Privat K2 Plainteks P CipherteksC Plainteks P Gambar 2.3 Skema public-key cryptosystem 2.4. Rivest Shamir Adleman RSA RSA adalah salah satu dari sistem kriptografi kunci-publik public-key criptosystem . Tahun 1978, Len Adleman, Ron Rivest dan Adi Shamir mempublikasikan sistem RSA. Semula sistem ini dipatenkan di Amerika Serikat dan seharusnya masa paten habis tahun 2003, akan tetapi RSA Security melepaskan hak paten setelah 20 September 2000. RSA menjadi sistem kriptografi RSA kunci-publik yang terpopuler karena merupakan sistem pertama yang sekaligus dapat digunakan untuk confidentiality, key distribution dan digital signature . Boleh dikatakan semua standar sistem kriptografi memperbolehkan penggunaan RSA, termasuk SSLTLS untuk pengamanan http dan SSH secure shell Kromodimoeljo, 2009. 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 plaintext rahasia 7. c ciphertext tidak rahasia 2.4.1. Pembangkitan 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 = p 2 sehingga p dapat diperoleh dengan menarik akar pangkat dua dari n . Universitas Sumatera Utara 3. Hitung ɸ n = p – 1 q – 1 . 4. Pilih kunci publik e , yang relatif prima terhadap ɸ n yaitu 1 e ɸ n dan gcd e , ɸ n = 1. 5. Bangkitkan kunci privat dengan menggunakan persamaan e. d ≡ 1 mod ɸ n . ………….………………………………………..1 0 ≤ d ≤ n Sehingga hasil dari algoritma di atas adalah: a. Kunci publik adalah pasangan e , n b. Kunci privat adalah pasangan d , n Contoh: Misalkan A akan membangkitkan kunci publik dan kunci privat miliknya. A memilih p = 47 dan q = 71 keduanya prima. Selanjutnya A menghitung : n = p. q = 3337 dan ɸ n = p – 1 q – 1 = 3220 A memilih kunci publik e = 79 karena relatif prima dengan 3320. A mengumumkan nilai e dan n . Selanjutnya A menghitung kunci dekripsi d , sehingga dituliskan berdasarkan persamaan: 79. d ≡ 1 mod 3220 Dengan mencoba nilai-nilai d = 1, 2, 3, …, diperoleh nilai d memenuhi persamaan 1 yaitu 1019. d = 1 79.1 mod 3220 = 79 d = 2 79.2 mod 3220 = 158 d = 3 79.3 mod 3220 = 237 d = 1019 79.1019 mod 3220 = 1 Kunci privat digunakan untuk mendekripsi pesan dan harus dirahasiakan A. Jadi, perhitungan kunci ini menghasilkan pasangan kunci: a. Kunci publik e = 79, n = 3337 b. Kunci privat d = 1019, n = 3337 Pada RSA hanya diberikan kunci publik, yaitu modulus n dan e . Sedangkan kunci privat d dirahasiakan. Oleh sebab itu, keamanan algoritma RSA terletak pada tingkat kesulitan dalam memfaktorkan bilangan non prima n menjadi faktor primanya, … … Universitas Sumatera Utara dalam hal ini n = p. q . Sekali n berhasil difaktorkan menjadi p dan q , maka ɸ n = p – 1 q – 1 dapat dihitung. Selanjutnya, karena kunci enkrispi e diumumkan tidak rahasia, maka kunci dekripsi d dapat dihitung dari persamaan 1 kemudian dilakukan dekripsi ciphertext c menjadi plaintext m menggunakan persamaan 2. Untuk menjaga keamanan tersebut, ada beberapa hal yang perlu diperhatikan dalam memilih p dan q : 1. Nilai p harus cukup jauh dari nilai q . Sebaiknya panjang dari p harus berbeda beberapa digit dari q . 2. Sebaiknya gcd p – 1, q – 1 tidak terlalu besar. 3. Sebaiknya p – 1 dan q – 1 mempunyai faktor prima yang besar. Kromodimoeljo, 2009 2.4.2. Proses enkripsi Proses enkripsi pesan sebagai berikut: 1. Ambil kunci publik penerima pesan e dan modulus n. 2. Nyatakan plaintext m menjadi blok-blok m 1 , m 2 , ..., sedemikian sehingga setiap blok merepresentasikan nilai di dalam selang [0, n – 1]. 3. Setiap blok m i dienkripsi menjadi blok c i dengan rumus c i = m i e mod n ………………………………………………..2 Contoh: Misalkan B mengirim pesan kepada A. Pesan plaintext yang akan dikirim ke A adalah m = BUDI B mengubah m ke dalam desimal pengkodean ASCII dan sistem akan memecah m menjadi blok yang lebih kecil dengan menyeragamkan masing-masing blok menjadi 3 digit dengan menambahkan digit semu biasanya 0 karena kode ASCII memiliki panjang digit maksimal sebesar 3 digit: m 1 = 066 m 2 = 085 m 3 = 068 m 4 = 073 Nilai-nilai m i ini masih terletak di dalam selang [0, 3337-1] agar transformasi menjadi satu-ke-satu. B mengetahui kunci publik A adalah e = 79 dan n = 3337. B dapat mengenkripsi setiap blok plaintext sebagai berikut: c 1 = 66 79 mod 3337 = 795 c 2 = 85 79 mod 3337 = 3048 c 3 = 68 79 mod 3337 = 2753 c 4 = 73 79 mod 3337 = 725 Universitas Sumatera Utara Dalam penerapannya, untuk memudahkan sistem membagi ciphertext menjadi blok-blok yang mewakili tiap karakter maka ditambahkan digit semu biasanya 0 pada blok cipher sehingga tiap blok memiliki panjang yang sama sesuai ketetapan dalam hal ini panjangnya 4 digit. Jadi, ciphertext yang dihasilkan adalah c = 0795 3048 2753 0725 2.4.3. Proses dekripsi Proses dekripsi pesan sebagai berikut: 1. Ambil kunci privat penerima pesan d , dan modulus n . Nyatakan plaintext c menjadi blok-blok c 1 , c 2 , ..., sedemikian sehingga setiap blok merepresentasikan nilai di dalam selang [0, ]. 2. Setiap blok m i dienkripsi menjadi blok c i dengan rumus: m i = c i d mod n ……………………………………………………….3 Contoh: Dengan kunci privat d = 1019 , chiperteks yang telah dibagi menjadi blok- blok cipher yang sama panjang, c = 0795 3048 2753 0725, kembali diubah ke dalam plaintext : BUDI m 1 = 795 1019 mod 3337 = 66 m 2 = 3048 1019 mod 3337 = 85 m 3 = 2753 1019 mod 3337 = 68 m 4 = 735 1019 mod 3337 = 73 Sehingga plaintext yang dihasilkan m = BUDI

2.5. Kriptanalisis