ENKRIPSI DAN DEKRIPSI (II) MATERI. Metode enkripsi DES (Data Encryption Standar). Metode enkripsi RSA (Rivest, Shamir, Adleman). Penggunaan public key DATA ENCRYPTION STANDARD (DES) Standard ini dibuat oleh National Beraue of Standard USA pada taun. DES menggunakan bit kunci, algoritma enkripsi ini termasuk yang kuat dan tidak mudah diterobos. Cara enkripsi ini telah dijadikan standar oleh pemerintah Amerika Serikat sejak tahun dan menjadi standar ANSI tahun. DES seharusnya terdiri dari algoritma enkripsi data yang diimplementasikan dalam peralatan elektronik untuk tujuan tertentu. Peralatan ini dirancang menurut cara yang mereka gunakan dalam system atau jaringan computer untuk melengkapi perlindungan cryptographyc pada data biner. Algoritma DES adalah sesutu yang kompleks dan signifikan yang merupakan kombinasi dari model enkripsi dasar yaitu substitusi dan permutasi (transposisi). Metode implementasi akan tergantung pada aplikasi dan lingkungan di sekitar system itu. Peralatan itu diimplementasikan tetapi sebelumnya diuji dan divalidkan secara akurat untuk menampilkan transformasi dalam bentuk algoritma.
Input Initial Permutasi L 0 R 0 Cycle Substitusi Key Permutasi L (=R 0 ) R Cycle Substitusi Permutasi Key L (=R ) R L (=R ) R Substitusi Key Permutasi L (=R ) R Inverse Inisial Permutasi Output
Permutasi Data Left Half Right Half Key Shifted Permutasi Key New Left Half (Old Right Half) New Right Half A cycle in the DES
L i bits R i bits Expansi Permuta si bits SBox Substitusi P Box Permutasi Permutasi Choice L i R i Detail of a Cycle Expansion Permutation Each right half is expanded from to bits by means of the expansion permutation. The expansion permutes the order of the bits and also repeats certain bits. The expansion has two purposes: to make the intermediate halves of the ciphertext comparable in size to the key, and to provide a longer result that can later be compressed. Tabel Expansion Permutation Bit Moves to,,, 0, Bit Moves to, 0,,0, Bit 0 Moves to Bit Moves to,, 0,, 0,, 0,,
0 0 Pattern of Expansion Permutation Key Transformation As just describe, the bit key immediately becomes bit key by deletion of every eighth bit. At each step in the cycle, the key is split into two bit halves, the halves are shifted left by a specified number of digits, the halves are pasted together again, and of these bit are permuted to use as a key during this cycle. The key for the cycle is combined by an exclusiveor function with the expanded right half from the section above. That result moves into the Sboxes described in the next step. At each cycle, the halves of the key are independently shifted left circularly by a specified number of bit positions. The number of bits shifted is given in table. Table. Number of bits of Circular Shifts for each cycle. Cycle Number Bits Shifted
0 Table. Choice Permutation To Select Key Bits Key bit For position Key bit For position Key bit For position Key bit For position 0 0 0 0 0 0 0 0 0 Algoritma Enkripsi Data Algoritma DES dirancang untuk menulis dan membaca berita blok data yang terdiri dari bit di bawah control kunci bit. Dalam pembacaan berita harus dikerjakan dengan menggunakan kunci yang sama dengan waktu menulis berita, dengan penjadwalan alamat kunci bit yang diubah sehingga proses membaca adalah kebalikan dari proses menulis. Sebuah blok ditulis dan ditujukan pada permutasi dengan inisial IP, kemudian melewati perhitungan dan perhitungan tersebut sangat tergantung pada kunci kompleks dan pada akhirnya melewati permutasi yang invers dari permutasi dengan inisial IP Perhitungan yang tergantung pada kunci tersebut dapat didefinisikan sebagai fungsi f, yang disebut fungsi cipher dan fungsi KS, yang disebut Key Schedule.
Sebuah dekripsi perhitungan diberikan pada awal, sepanjang algoritma yang digunakan dalam penulisan berita. Berikutnya, penggunaan algoritma untuk pembacaan berita didekripsikan. Akhirnya, definisi dari fungsi cipher f menjadi fungsi seleksi Si dan fungsi permutasi adalah P. Perhatikan contoh berikut ini : Diberikan blok yaitu L dan R dari bit. LR merupakan blok yang terdiri dari bit L dan diikuti oleh bit R. Kemudian menyusul urutan bit yang saling berhubungan, yaitu : B, B, B. Artinya, bit yang terdiri dari B diikuti B dan akhirnya diikuti B. SBoxes Substitutions are performed by eight Sboxes. An Sbox is a table by which six bits of data are repaced by four bits. The bit input is divided into eight bit blocks, identified as BB B; block Bi is operated on by Sbox Si, as shown in figure. Bi 0 S S S S S S S S Bits 0 Penulisan berita () L =R R =L(+)f(R,K) () Kn=KS(n,KEY) () Ln=R n R n n=l n (+) f(r n, K n ) K adalah Kn, yaitu ketika n dalam jangkauan bilangan sampai bilangan. Blok preoutput dari persamaan di atas adalah R L. Penguraian Berita (). R =L, L =R(+)f(L,K ) (). R n=ln, L n=rn(+)f(ln,kn)
SBox table for the DES 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Table Permutasi Box P Bit positio n 0 0 0 Bit positio n 0 0 0 RIVEST SHAMIR ADLEMAN (RSA) RSA adalah singkatan dari huruf depan orang yang menemukannya pada tahun di MIT, yaitu Ron Rivest, Adi Shamir, dan Len Adleman. Algoritma ini merupakan cara enkripsi publik yang paling kuat saat ini. Algoritma RSA melibatkan seleksi digit angka prima dan mengalikan secara bersamasama untuk mendapatkan jumlah, yaitu n. Angkaangka ini dilewati algoritma matematis untuk menentukan kunci publik KU={e,n} dan kunci pribadi KR={d,n} yang secara matematis berhubungan. Ini merupakan hal yang sulit untuk menentukan e dan atau d diberi n. Dasar inilah yang menjadi algoritma RSA. Sekali kunci telah diciptakan, sebuah pesan dapat dienkrip dalam blok dan melewati persamaan berikut ini: C = M e mod n () Dimana C adalah ciphertext, M adalah plaintext, sedangkan e adalah kunci publik penerima. Dengan demikian, pesan di atas dapat dienkrip dengan persamaan berikut : C = M d mod n ()
0 Dimana d adalah kunci pribadi penerima. Sebagai contoh, kita mengasumsikan bahwa M= (kita akan menggunakan jumlah yang kecil untuk hal yang sederhana dan nantinya secara normal jumlahjumlah ini akan menjadi lebih besar). Kita akan menggunakan angka sebagai huruf p dan angka sebagai huruf q. Jadi n=x=. Kemudian, e dihitung menjadi dan dihitung lagi menjadi. KU={,} dan KR={,}. Kita dapat melalui nilai yang dibutuhkan dengan persamaan untuk mencari nilai C. Dalam hal ini C=, kemudian hasil dekrip C() dapat digunakan untuk mendapatkan nilai plaintext yang asli. Untuk persamaan () juga mendapat nilai dan plaintext yang asli. Seperti yang telah dijelaskan di atas, hanya orang yang mempunyai kunci rahasia yang sesuai yang dapat membuka pesan yang disandi dengan kunci publik tertentu. Algoritma enkripsi inilah yang dipakai sebagai dasar dari system enkripsi PGP (Pretty Good Privacy). PGP adalah system enkripsi yang banyak dipakai secara umum di internet. Cara enkripsi dengan kunci publik ini ternyata mempunyai kelebihan lain, yaitu bisa dipakai sebagai semacam tanda tangan digital yang dapat digunakan untuk menjamin keaslian email. Si A yang akan mengirim Email kepada si B dapat membubuhkan tanda tangan digitalnya di akhir email tersebut. Tanda tangan digital ini berupa sederetan huruf yang dibentuk dengan rumusan matematis berdasarkan kunci rahasia si A dan isi email yang dikirim. Keaslian ini dapat dicek oleh B dengan menggunakan kunci publik milik si A. Jadi, jika email yang telah dibubuhi tanda tangan digital tersebut diubah isinya, email ini tidak akan lulus proses autentikasi dengan kunci publik si A
PRETTY GOOD PRIVACY (PGP) Setiap orang mempunyai kunci, yaitu kunci publik dan kunci pribadi. Ketika seseorang ingin mengirim sesuatu pada si penerima, pengirim mengenkrip dengan kunci publik si penerima. Namun, cara untuk mendekripnya dengan kunci pribadi si penerima. Salah satu keuntungan lain dari PGP adalah mengizinkan pengirim menandai pesanpesan mereka. Ini membuktikan bahwa pesan datang dari pengirim dan belum ada perubahan selama perjalanan. Berdasarkan pada teori ini, PGP mengizinkan seseorang untuk mengumumkan kunci publik mereka dan menjaga kunci pribadi yang sifatnya rahasia. Hasilnya, seseorang dapat mengenkrip pesan kepada orang lain sepanjang mereka mempunyai kunci publik. PGP adalah suatu metode enkripsi informasi yang bersifat rahasia sehingga jangan sampai diketahui oleh orang yang tidak berhak. Informasi ini bisa berupa email yang sifatnya rahasia, nomor kode kartu kredit, atau pengiriman dokumen rahasia perusahaan melalui internet. PGP menggunakan metode kriptografi yang disebut public key encryption ; yaitu suatu metode kriptografi yang sangat sophisticated. Adapun prinsip kerja PGP adalah sebagai berikut :. PGP, seperti yang telah dijelaskan sebelumnya, menggunakan teknik yang disebut public key encryption dengan dua kode. Kodekode ini berhubungan secara intrinsic, namun tidak mungkin untuk memecahkan satu sama lain.. Ketika dibuat suatu kunci, maka secara otomatis akan dihasilkan sepasang kunci, yaitu kunci publik dan kunci rahasia. Si a dapat memberikan kunci publik kemanapun tujuan yang diinginkannya, melalui telepon, internet, keyserver, dan sebagainya. Kunci rahasia yang disimpan
pada mesin si A dan menggunakan messager decipher akan dikirimkan ke si A. Jadi, orang lain yang akan menggunakan kunci publik milik A (yang hanya dapat di dekripsi oleh kunci rahasia milik si A), mengirimkan pesan kepada A, dan A akan menggunakan kunci rahasia untuk membacanya.. Mengapa menggunakan dua kunci? Karena dengan conventional crypto, di saat terjadi transfer informasi kunci, diperlukan suatu secure channel. Jika kita memiliki suatu secure channel, mengapa masih menggunakan crypto? Dengan publickey system, tidak akan menjadi masalah siapa yang melihat kunci milik kita, karena kunci yang dilihat orang lain adalah yang digunakan hanya untuk enkripsi dan hanya pemiliknya saja yang mengetahui kunci rahasia tersebut. Kunci rahasia merupakan kunci kunci yang berhubungan secara fisik dengan komputer pemilik, kunci rahasia dapat melakukan proses dekripsi dengan kunci publik yang ada dan kemudian dimasukkan lagi passphrase yang kita ketikkan, namun ia hanya dapat membaca jika ia dapat mengakses komputer kita. Penerapan PGP dalam jaringan :. Kunci public sangat lambat bila dibandingkan dengan konvensional, jadi PGP akan mengkombinasikan algoritma yaitu RSA dan IDEA untuk melakukan enkripsi plaintext.. Sebagai contoh, Bejon (pemilik PGP) ingin mengenkripsi suatu file yang diberi nama plain.txt sedemikian sehingga hanya si Matangin yang dapat mendekripsinya. Dalam hal ini, Badrun mengirimkan PGP perintah (command line) untuk melakukan enkripsi: pgp e plain.txt Matangin. Pada command line ini, pgp adalah file executable, e berarti memberitahukan PGP untuk mengenkripsi file, plain.txt adalah nama plaintext, dan dul merepresentasikan kunci public suatu tujuan (Matangin) yang diinginkan Badrun untuk mengenkripsi pesannya.pgp menggunakan suatu
random number generator dalam file randseed.bin untuk menghasilkan suatu kunci (session key) IDEA yang bersifat temporer. Kunci rahasia itu sendiri dienkripsi dengan kunci RSA public yang direpresentasikan oleh Matangin yang ditempelkan pada plaintext.. Kemudian PGP menggunakan kunci sesi untuk mengenkripsi pesan, ASCIIarmors, dan menyimpan seluruhnya sebagai cipher.asc. Bila Matangin ingin membaca pesannya, ia mengetikkan command: pgp cipher.asc.. PGP menggunakan kunci rahasia milik Matangin yang merupakan kunci RSA, untuk mendekripsi kunci sesi yang mana, yang jika dipanggil oleh Badrun akan dienkripsi oleh kunci public. Kemudian, conventional crypto digunakan dalam bentuk kunci sesi untuk mendekripsi sisa dari pesan.