Powered By Blogger

Senin, 11 Januari 2016

TUTORIAL MEMBUAT BLOG

Memiliki sebuah blog adalah hal yang menyenangkan karena kita dapat berbagi apapun yang kita suka, dan kalau kita serius dalam merawat blog, kita juga bisa mendapatkan penghasilan yang layak dari blog kita.
Di web tutorial ini, nyekrip telah berbagi tentang cara membuat web dengan html 5 yang juga dapat kita gunakan sebagai langkah belajar dalam membuat dan mendesain halaman web atau blog dan salah satu favorit saya adalah menciptakan blog pada domain sendiri dan hosting melalui WordPress seperti yang sudah diterapkan pada blog nyekrip ini.
Banyak tutorial yang telah membahas tentang self-host blog WordPress dan tidak diragukan lagi itu adalah platform blogging yang lebih baik jika kita bandingkan dengan platform blogging gratis seperti Blogspot.com dan WordPress.com. Banyak pemula yang ingin memulai blogging tidak ingin menghabiskan modal untuk membuat blog dan itu sah-sah saja, bahkan banyak juga ditemukan blog terkenal yang menggunakan platform gratis ini.
Ada banyak platform blogging yang menawarkan untuk membuat Blog  secara gratis. Jika kita mencari blog yang gratis, disarankan untuk memulai blog dari WordPress.com atau Blogger.com.
Blogspot mengijinkan kita untuk membuat blog secara gratis dan tentunya memiliki keterbatasan, tapi seperti yang telah disebutkan di atas, untuk pemula itu merupakan ide yang baik sebagai langkah awal dalam membuat Blog.
Blogger-icon-nyekrip
Ikon Blogger
Tutorial ini ditujukan untuk yang ingin belajar membuat blog. Dalam posting ini kita akan membahas tentang bagaimana cara membuat blog di Blogspot lengkap gambar. Sebelum kita mulai tutorial cara membuat blog di Blogspot lengkap gambar, ada beberapa hal yang harus kita ketahui. Blogspot adalah platform blogging dari Google yang memberikan pelayanan untuk membuat sebuah blog, semua gambar blog kita akan disimpan oleh Picasa yang merupakan bagian dari Google.

Cara Membuat Blog di Blogspot atau Blogger Gratis

Untuk cara membuat blog di Blogspot gratis, silahkan menuju blogger.com dan login menggunakan akun Google. Jika belum memiliki akun Google (akun Gmail), silahkan menuju tutorial ” Cara Membuat Email Baru Lengkap Gambar “. Setelah anda mempunyai akun gmail atau akun google, silahkan kunjungi ” www.blogger.com ” dan kita akan melihat halaman login seperti gambar berikut.
cara_membuat_blog_di_halaman_login_blogger_nyekrip
Halaman Login
Setelah login kita akan menghadapi pilihan untuk menggunakan identitas, kita dapat memilih profil Google plus atau menggunakan profil Blogspot. Lebih di sarankan memilih profil Google plus.
cara_membuat_blog_di_memlilih_identitas_profil_nyekrip
Memilih Profil
Langsung tekan tombol ” Lanjutkan ke Blogger “.
Setelah itu kita akan melihat halaman membuat blog di blogspot seperti gambar berikut. Pada halaman ini kita akan melihat daftar blog yang telah dibuat, karena kita baru akan memulai dalam membuat blog maka kita belum melihat daftar blog tersebut, untuk memulai membuat blog silahkan klik tombol ” Blog Baru “.
cara_membuat_blog_di_blogspot_memulai_membuat_blog_nyekrip
Memulai Blog Baru

Memberi Nama dan Alamat Blog di Blogspot/blogger

Setelah kita klik tombol ” Blog Baru ” kita akan melihat sebuah halaman baru untuk memulai dengan menambahkan nama dan memilih nama domain. Untuk tips trik dalam memilih nama domain silahkan anda kunjungi tutorial ” Tips Cara Memilih Nama Domain Blog atau Website “.
Untuk lebih jelasnya silahkan perhatikan gambar membuat blog di blogspot berikut:
cara_membuat_blog_di_blogspot_memilih_nama_blog
Halaman Membuat Blog
Keterangan nomor pada gambar
  • Nomor 1 adalah tempat kita untuk memberi judul atau nama blog
  • Nomor 2 adalah tempat kita untuk memberi alamat blog kita
  • Nomor 3 adalah tempat kita untuk memilih template blog kita, kita bisa merubah-nya nanti pada halaman template, jadi untuk sementara pilih saja yang standar
  • Nomor 4 merupakan keterangan alamat blog yang kita ketik tersedia atau tidak, pastikan alamat blog tersedia.
  • Nomor 5 adalah tombol untuk mengakhiri , tekan tombol ini jika anda sudah merasa puas dengan nama dan alamat yang anda pilih.
cara_membuat_blog_di_blogspot_memulai_posting_nyekrip
Memulai Post

Mengenal Dashboard di Blogspot/blogger

Sekarang blog kita sudah dibuat tetapi belum selesai sepenuhnya. Ada beberapa pengaturan yang perlu kita lakukan pada blog yang baru dibuat, agar membuat blog di Blogspot kita semakin SEO, seperti merubah template dan menambah halaman. Sekarang kita berada di dashboard Blogspot di mana kita akan melihat backend blog dan bisa pergi ke pengaturan dan membuat perubahan untuk meningkatkan visibilitas blog. Berikut adalah screenshot dashboard beserta penjelasan:
cara_membuat_blog_di_blogspot_dashboard_lengkap_blogspot_nyekrip
dashboard blogspot
Keterangan nomor pada gambar
  • Nomor 1 merupakan tombol yang bisa kita gunakan jika ingin membuat blog baru
  • Nomor 2 merupakan tombol yang bisa kita gunakan jika ingin membuat post baru
  • Nomor 3 merupakan tombol yang bisa kita gunakan jika ingin melihat blog secara live
  • Nomor 4 merupakan daftar shortcut menuju pengaturan, post, dan lain-lain
  • Nomor 5 merupakan area artikel dari blog yang kita ikuti atau follow
  • Nomor 6 merupakan area identitas atau profil kita di google, dalam area ini kita bisa login dan logut.
Setelah kita mengenal fungsi dari dashboard blogspot/blogger, silahkan anda klik menu “ Ikhtisar ” untuk melihat daftar menu dalam memulai membuat post, halaman, sampai mengatur adsense pada blog kita.
Untuk melihat tampilan blog yang sudah dibuat, silahkan klik tombol no 3 pada nomor diatas, maka tampilan blog akan terlihat seperti gambar dibawah ini. Perhatikan bahwa template sudah sesuai dengan template yang telah dipilih sebelumnya.
Tampilan_Blog_Cara_Membuat_Blog_di_Blogspot_Lengkap_Gambar_-_Nyekrip

Sabtu, 09 Januari 2016

ENKRIPSI DAN DEKRIPSI


ENKRIPSI DAN DEKRIPSI

PENGERTIAN ENKRIPSI DAN DEKRIPSI
Enkripsi adalah suatu proses mengubah sebuah teks murni (plaintext) menjadi sebuah runtutan karakter atau data yang terlihat tidak berarti dan mempunyai urutan bit yang tidak beraturan, disebut ciphertext. Proses pengubahan kembali ciphertext menjadi plaintext disebut dekripsi
 
PENYANDIAN MONOALFABETIK DAN POLIALFABETIK
Penyandian Monoalfabetik, merupakan setiap huruf digantikan dengan sebuah huruf. Huruf yang sama akan memikili pengganti yang sama. Misalnya huruf “a” digantikan dengan huruf “e”, maka setiap huruf “a” akan digantikan dengan huruf “e”. Metode pada Penyandi Monoalfabetik :

a.  Caesar
Metode Caesar Cipher yang digunakan oleh Julius Caesar. Pada prinsipnya, setiap huruf digantikan dengan huruf yang berada tiga (3) posisi dalam urutan alfabet. Sebagai contoh huruf “a” digantikan dengan huruf “D” dan seterusnya.Transformasi yang digunakan adalah:

plain : a b c d e f g h i j k l m n o p q r s t u v w x y z
cipher: D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

b. ROT13
Pada sistem ini sebuah huruf digantikan dengan huruf yang letaknya 13 posisi darinya. Sebagai contoh, huruf “A” digantikan dengan huruf “N”, huruf “B” digantikan dengan huruf “O”, dan seterusnya.

Penyandian Polialfabetik, merupakan suatu enkripsi dilakukan dengan mengelompokkan beberapa huruf menjadi sebuah kesatuan (unit) yang kemudian dienkripsi. Metode pada Penyandi Polialfabetik adalah Playfair. Playfair ini menggunakan tabel 5×5. Semua alfabet kecuali J diletakkan ke dalam tabel. Huruf J dianggap sama dengan huruf I, sebab huruf J mempunyai frekuensi kemunculan yang paling kecil. Berikut ini aturan-aturan proses enkripsi pada Playfair:

1.      Jika kedua huruf tidak terletak pada baris dan kolom yang sama, maka huruf pertama menjadi huruf yang sebaris dengan huruf pertama dan sekolom dengan huruf kedua. Huruf kedua menjadi huruf yang sebaris dengan huruf kedua dan sekolom dengan huruf pertama. Contohnya, SA menjadi PH, BU menjadi EP.
2.      Jika kedua huruf terletak pada baris yang sama maka huruf pertama menjadi huruf setelahnya dalam baris yang sama, demikian juga dengan huruf kedua. Jika terletak pada baris kelima, maka menjadi baris pertama, dan sebaliknya. Arahnya tergantung dari posisi huruf pertama dan kedua, pergeserannya ke arah huruf kedua. Contohnya, AH menjadi TR, LK menjadi KG, BE menjadi CI.
3.      Jika kedua huruf terletak pada kolom yang sama maka huruf pertama menjadi huruf setelahnya dalam kolom yang sama, demikian juga dengan huruf kedua. Jika terletak pada kolom kelima, maka menjadi kolom pertama, dan sebaliknya. Arahnya tergantung dari posisi huruf pertama dan kedua, pergeserannya ke arah huruf kedua. Contohnya, DS menjadi LY, PA menjadi GW, DH menjadi HY.
4.      Jika kedua huruf sama, maka letakkan sebuah huruf di tengahnya (sesuai kesepakatan).
5.      Jika jumlah huruf plainteks ganjil, maka tambahkan satu huruf pada akhirnya, seperti pada aturan ke-4.

METODA ENKRIPSI  DES
Berbagai pakar kriptografi telah mengembangkan berbagai macam algoritma enkripsi seperti AES,Lucifer,OTP,IDEA,Triple DES,DES,dsb. Diantara berbagai macam jenis algoritma, DES merupakan algoritma yang paling terkenal dan paling banyak digunakan di internet semisal untuk aplikasi e-commerce,perbankan,dll.

Proses Kerja DES
Cara kerja DES secara sederhana dapat digambarkan sebagai berikut :
Blok Plaintext 64 bit
Invers inisial
permutasi
Ronde-16
Inisial permutasi
Blok Ciphertext
64-bit
Ronde-2
Ronde-1
Initial Permutation
Plaintet sebesar 64-bit akan dipecah menjadi 2 bagian yaitu Left (L) dan Right.Bit-bit dari plaintext akan mengalami permutasi sehingga susunannya akan berubah sebagai berikut :
[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
Blok kiri (L)
Blok Kanan (R)
61 53 45 37 29 21 13 5
63 55 47 39 31 23 15 7]
Maksud daripada keterangan di atas adalah, bit yang pada plaintext terletak pada urutan ke 58, setelah di Inisial permutasi posisinya berubah yang tadinya berada di urutan ke 58 menjadi urutan ke-1 atau yang pertama.Jika diperhatikan, bit-bit bernomor genap setelah dipecah berada di blok L (kiri) dan bit yang bernomor ganjil terletak di blok R (kanan).Permutasi diatas menggunakan sebuah urutan yang ditunjukkan oleh arah panah berwarna merah.Dimulai pada kolom paling kanan dan bit-bit yang ada akan bergerak secara urut dengan vertikal ke arah bawah.Sebagai contoh pada blok L,
bilangan genap asli terkecil adalah 2 sehingga dimulai dengan angka 2 lalu 4,6,8 lalu
menuju kolom di sebelah kirinya 10,12,dst.

16 Ronde pada DES
Algoritma DES mengalami 16 ronde untuk membentuk sebuah cipher.Pada setiap ronde, blok R (kanan) tidak akan mengalami perubahan apapun karena hanya akan dipindah menjadi blok L pada ronde selanjutnya.Namun blok R akan digunakan bersamaan dengan subkey 56-bit untuk diolah pada fungsi F dan akan di XOR-kan dengan blok L (kiri).Jika bingung dengan penjelasan di atas, coba perhatikan dan amati skema pada masing-masing ronde DES di halaman selanjutnya.
Li (32 bit) Ri (32 bit)
Subkey 56 bit
Ki+1
F
XOR
Dapat dihasilkan beberapa persamaan sebagai berikut :
Li+1 (32 bit) Ri+1 (32 bit)
1. L i+1 = R i
2.R i+1 = L i .. F(K i+1 , Ri)
Ket :
.. = Operasi XOR
Fungsi F merupakan satu-satunya fungsi linier yang nilainya berubah-ubah tergantung pada nilai Blok R (kanan) dan sub-key 56bit.

R i (32 bit) K i (56 bit)
Ekspansi
48 bit
Penghapusan
byte terakhir
..
S1 S2 S3 S4 S5 S6 S7 S8
48 bit
Permutasi Ket :
.. = Operasi XOR
S1 - S8 = Subsitution-box (S-box)
32 bit
susunannya akan berubah sebagai berikut :
Fungsi F dapat dilihat pada gambar diatas.Blok R (kanan) di-ekspansi sehingga
[32 1 2 3 4 54 5 6 7 8 9
8 9 10 11 12 13 12 13 14 15 16 17
16 1718 19 20 21 20 21 22 23 24 25
24 25 26 27 28 29 28 29 30 31 32 1]
Angka-angka yang dicetak tebal merupakan bit-bit yang akan ditambahkan pada input sebesar 32 bit agar menjadi 48 bit.Angka tersebut akan muncul 2 kali seperti angka 1,4,5, dst.Bilangan yang dicetak tebal juga bertambah dengan aturan (a,a+8,a+16,a+24 dengan a sebagai bilangan minimum pada satu kolom)secara vertikal.Jika angka yang dicetak tebal dihilangkan maka akan muncul bit-bit yang berurutan.Jadi bit pertama yang akan di-outputkan oleh blok ekspansi adalah bit ke 32pada input ekspansi.
Hasil dari output ekspansi akan di XOR dengan subkey yang telah mengalami penghapusan byte terakhir (1 byte=8 bit) yang diubah ukurannya dari 56 bit menjadi 48 bit.Hasil XOR tadi adalah sebuah bilangan 48 bit yang akan dibagi secara merata kepada 8 Substitution Box sehingga masing-masing box akan di-input sebesar 6 bit (48/8=6).Substitution box yang agak gamblang dapat dilihat pada gambar di bawah ini :
CL Si CR
Ket:
CL = Control Left (kontrol kiri)
CR = Control Right (kontrol kanan)
dari 6 bit input pada S-box, bit paling kiri akan dimasukkan pada CL (Control Left) dan bit paling kanan akan dimasukkan pada CR (Control Right) sedangkan 4 bit sisanya akan dianggap sebagai input yang biasa-biasa saja ,.
Output dari masing-masing S-box akan menjadi bilangan sepanjang 4 bit sehingga output total dari 8 S-box menjadi 32 bit (4*8=32).Lantas, bagaimana pengolahan input pada masing-masing S-box ? OK, saya akan memberikan salah satu contoh yaitu pada S-box yang pertama.Amati tabel di bawah ini :
Bit
kontrol Nilai input 4 bit
CL CR 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 0 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7
0 1 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8
1 0 4 1 14 8 13 6 2 11 15 12 9 7 7 10 5 0
1 1 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13
Contoh :
input pada S-box ke adalah 110010.Berapa nilai outputnya ?
Jawab:
Bit paling kiri akan dijadikan CL dan bit paling kanan akan dijadikan CR.
110010
CL=1
CR=0
Bit
kontrol Nilai input 4 bit
CL CR 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 0 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7
0 1 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8
1 0 4 1 14 8 13 6 2 11 15 12 9 7 7 10 5 0
1 1 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13
Bit ke 2 sampai bit ke 5 harus diubah ke bilangan basis 10 atau bilangan
desimal.
Dari contoh di atas bit ke 2 sampai ke 5 bernilai 1001.
1001(2) = 9(10)
Bit
kontrol Nilai input 4 bit
CL CR 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 0 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7
0 1 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8
1 0 4 1 14 8 13 6 2 11 15 12 9 7 7 10 5 0
1 1 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13
Pertemuan antara baris dan kolom di atas merupakan output dari s-box pertama yang kemudian harus diubah dalam bentuk biner.
12(10) = 1100(2)
Jadi jika input dari s-box pertama adalah 110010 maka outputnya bernilai 1100.
Jika seluruh input pada S-box telah didapatkan hasil yang panjangnya 32 bit maka hasil tersebut akan dipermutasi dengan aturan :
[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]
Jadi, jika input dari blok permutasi pada bit ke 16 akan berubah menjadi bit pertama dari
output blok permutasi.


MENGGUNAKAN ALGORITMA DES PADA APLIKASI OPENSSL
Openssl merupakan toolkit kriptografi yang merupakan inplementasi dari secure socket layer (SSL) sebagaimana pada manual pages-nya
OpenSSL is a cryptography toolkit implementing the Secure Sockets Layer (SSL v2/v3)and Transport Layer Security (TLS v1) network protocols and related cryptography standards required by them.
Openssl masih berupa tool command line yang bisa digunakan untuk mengenkrip pesan dengan algoritma simetris maupun dengan fungsi hash satu arah.Di sini saya mencoba menjelaskan bagaimana menggunakan openssl untuk mengenkrip plaintext menggunakan algoritma DES.Openssl yang digunakan merupakan OpenSSL 0.9.7e yang dirilis tanggal 25 oktober 2004 pada distro mandriva 2005.
Sebagai contoh saya akan membuat sebuah plaintext untuk dienkrip menggunakan openssl.Misalnya text tersebut berisi :
phpinfo();
?>
Plaintext tersebut disave dengan nama plaintext.php di direktori home.
$ ls
plaintext.php
kemudian saya enkrip menggunakan openssl.
$ openssl enc -e -des -in plaintext.php -out ciphertext.php
maka akan ada perintah untuk memasukkan key.Sebagai contoh key yang saya gunakan adalah hacker.Dan akan ada konfirmasi yang kedua untuk melakukan pengecekan.
enter des-cbc encryption password:
Verifying - enter des-cbc encryption password:
maka akan muncul sebuah file baru bernama ciphertext.php
$ ls
plaintext.php
ciphertext.php
isi dari ciphertext.php dapat dilihat menggunakan text editor.
Salted__¢­$Χ#­ú8#YÑÏP³#­{,ä­¯#ç^i­S#0Ò­
Lalu untuk mendekripsinya dapat digunakan perintah
$ openssl enc -d -des -in ciphertext.php -out plaintext2.php
Maka akan ada konfirmasi key.Anda hanya perlu memasukkan satu kali tanpa verifikasi.jika key yang dimasukkan salah maka akan muncul pesan error sbb :
bad decrypt
32416:error:06065064:digital envelope routines:EVP_DecryptFinal:bad
decrypt:evp_enc.c:450:
Jika key-yang dimasukkan benar maka akan muncul file beru bernama plaintext2.php yang isinya sama dengan plaintext.php.
Mengenai openssl anda dapat mempelajarinya sendiri lewat man pages-nya atau dari howtos-howtos yang ada di internet karena saya tidak bisa membahas secara rinci di sini.Openssl juga mendukung algoritma-algoritma lain seperti blowfish, AES, IDEA, rc2, rc4, rc5 dan juga fungsi hash seperti md5 dan sha1.


PUBLIC KEY
Metode enkripsi kunci publik menawarkan keamanan yang lebih tinggi dan lebihkompleks daripada metode konvensional.Metode enkripsi kunci publik membutuhkan dua buah kunci di dalam algoritmanya, yaitu kunci publik dan kunci pribadi. Kunci publik digunakan untuk mengenkripsi plaintext menjadi ciphertext dan kunci ini tidak terlalu bersifat rahasia sehingga dapat diketahui oleh banyak orang. Kunci pribadi digunakan untuk mendekripsi ciphertext menjadi plaintext dan kunci ini bersifat rahasia sehingga hanya user saja yang boleh mengetahui kunci ini.
Syarat yang harus dipenuhi di dalam metode enkripsi kunci publik :
1.      Mudah bagi user untuk membentuk sepasang kunci (kuncipublik dan kunci pribadi)
2.      Mudah bagi user lain untuk mengetahui kunci publik milik kitadan kemudian mengenkripsi pesan yang akan dikirimkankepada kita dengan kunci tersebut.
3.      Mudah bagi penerima pesan untuk mendekripsi pesanciphertext yang telah diterima dengan kunci pribadi yang dimilikinya.  
4.      Tidak mudah bagi musuh untuk mengetahui kunci publik untuk menentukan kunci pribadi yang dimiliki oleh user lain.

 

ENKRIPSI MENGGUNAKAN ALGORITMA RSA

Sebagai media komunikasi umum, suatu jaringan sangat rawan terhadap penyadapan, pencurian, dan pemalsuan informasi. Proses pengiriman data pada
suatu jaringan harus menjamin keamanan dan keutuhan, jika tidak, akan terjadi kemungkinan-kemungkinan seperti yang dijelaskan sebelumnya.Untuk itu salah satu cara untuk mengamankan data dari kejadian-kejadian tersebut,diperlukan penyandian
terhadap data yang akan dikirim. Penyandian ini sangat penting, apalagi dalam sektor-sektor strategis seperti bisnis, perbankan, atau pemerintahan sangat memerlukan teknologi penyandian Informasi.
Ilmu menyandi (kriptografi) sebetulnya adalah ilmu yang sudah dikenal bahkan semenjak jaman Julius Caesar (sebelum masehi). Ilmu ini tidak hanya mencakup teknik-teknik menyandikan informasi, tetapi juga teknik untuk membongkar sandi.

Enkripsi adalah suatu proses mengubah sebuah teks murni (plaintext) menjadi sebuah runtutan karakter atau data yang terlihat tidak berarti dan mempunyai urutan bit yang tidak beraturan, disebut ciphertext. Proses pengubahan kembali ciphertext menjadi plaintext disebut dekripsi. Terdapat banyak algoritma penyandian di dunia ini, yang paling banyak dipakai di dunia adalah DES dan RSA. Di samping DES dan RSA, masih ada banyak sandi lain seperti MD2 (dipakai GSM), IDEA, RC2, dll. Akan tetapi, DES dan RSA adalah yang paling populer dan paling banyak dipakai.

RSA banyak dipakai oleh banyak perangkat lunak di dunia, contohnya adalah pada program browser internet MS Internet Explorer dan Netscape. Salah satu sistem penyandian yang juga banyak dipakai adalah DES (Data Encryption Standard). Mekanisme kerja RSA cukup sederhana dan mudah mengerti, tetapi kokoh. Sampai saat ini satu-satunya cara untuk mendobraknya adalah dengan cara mencoba satu persatu kombinasi kunci yang mungkin atau yang biasa disebut brute force attack. Sehingga penentuan tingkat keamanan suatu sandi dari kemungkinan
dibongkar adalah seberapa panjang dari sandi (ukuran kunci) terebut. Karena jika semakin panjang suatu kode, maka semakin banyak pula kombinasi kunci yang mungkin ada.

RSA sendiri dibuat pada tahun 1978. RSA adalah singkatan dari nama para penemunya, yaitu Ron Rivest, Adi Shamir, dan Leonard Adleman. RSA adalah salah satu algoritma penyandian yang paling banyak mengundang kontroversi, selain DES. Sejauh ini belum seorang pun yang berhasil menemukan lubang sekuriti pada DES dan RSA, tetapi tak seorang pun juga yang berhasil memberikan pembuktian ilmiah yang memuaskan dari keamanan kedua teknik sandi ini. Untuk menyandi informasi dan untuk menerjemahkan pesan tersandi sebuah algoritma penyandian memerlukan sebuah data biner yang disebut kunci. Tanpa kunci yang cocok orang tidak bisa mendapatkan kembali pesan asli dari pesan tersandi.

Pada DES digunakan kunci yang sama untuk menyandi (enkripsi) maupun untuk menterjemahan(dekripsi), sedangkan RSA menggunakan dua kunci yang berbeda. Isitilahnya, DES disebut sistem sandi simetris sementara RSA disebut sistem sandi asimetris. Kedua sistem ini memiliki keuntungan dan kerugiannya sendiri. Sistem sandi simetris cenderungjauh lebih cepat sehingga lebih disukai oleh sementara kalangan industri. Kejelekannya, pihak-pihak yang ingin berkomunikasi secara privat harus punya akses ke sebuah kunci DES bersama. Walaupun biasanya pihak-pihak yang terkait sudah saling percaya, skema ini memungkinkan satu pihak untuk memalsukan pernyataan dari pihak lainnya.
RSA yang menggunakan algoritma asimetrik mempunyai dua kunci yang berbeda, disebut pasangan kunci (key pair) untuk proses enkripsi dan dekripsi. Kunci-kunci yang ada pada pasangan kunci mempunyai hubungan secara matematis, tetapi tidak dapat dilihat secara komputasi untuk mendeduksi kunci yang satu ke pasangannya. Algoritma ini disebut kunci publik, karena kunci enkripsi dapat disebarkan.Orang- orang dapat menggunakan kunci publik ini, tapi hanya orang yang mempunyai kunci privat sajalah yang bisa mendekripsi data tersebut.

 

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 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.

 

Proses Pembuatan Kunci

Dalam membuat suatu sandi, RSA mempunyai cara kerja dalam membuat kunci publik dan kunci privat dalah sebagai berikut :
  1. Pilih dua bilangan prima p dan q secara acak , pq. Bilangan ini harus cukup besar (minimal 100 digit).
  2. Hitung N = pq. Bilangan N disebut parameter sekuriti.
  3. Hitung φ = (p-1)(q-1).
  4. Pilih bilangan bulat (integer) antara satu dan φ (1<e< φ) yang tidak mempunyai faktor pembagi dari φ.
  5. Hitung d hingga de ≡ 1 (mod φ).

Keterangan :
  • Langkah 3 dan 4 dapat dihasilkan dengan cara algoritma Euclidean
  • Langkah 4 dapat dihasilkan dengan menemukan integer x sehingga d = (x(p-1)(q-1) + 1)/e menghasilkan bilangan bulat, kemudian menggunakan nilai dari d (mod (p-1)(q-1))
Setelah melalui cara ini, maka kita akan mendapatkan kunci publik dan kunci privat. Kunci publik terdiri dari dua elemen, yaitu :
  • N, merupakan modulus yang digunakan
  • e, eksponen publik atau eksponen enkripsi dan kunci privat, yang terdiri dari :
  • N, merupakan modulus yang digunakan, sama seperti pada kunci publik
  • d, eksponen pribadi atau eksponen deskripsi, yang harus dijaga kerahasiaanya
Nilai p dan q sebaiknya dibuang atau dijaga kerahasiaannya, karena terdapat N dimana p dan q adalah faktor pembagi dari N. Walaupun bentuk ini memperbolehkan dekripsi secara cepat dan signing menggunakan Chinese Remainder Theorem (CRT), hal ini mejadi lebih tidak aman karena bentuk ini memperbolehkan side channel attacks. Side channel attacks adalah sebuah serangan yang berdasarkan informasi yang dikumpulkan dari implementasi fisik (atau kelemahan secara fisik) dari sebuah sistem kriptografi, dibanding dengan kelemahan teoritis dari algoritmanya sendiri. Sebagai contohnya, faktor-faktor kurun waktu dari informasi, konsumsi tenaga, bahkan suara yang ditimbulkan dapat membantu mempermudah informasi yang bisa diambil untuk menjebol sistem tersebut.

Proses Enkripsi Pesan

Misalkan pada suatu kasus si A ingin mengirim pesan m kepada si B. A mengubah m menjadi angka n<N, menggunakan protokol yang sebelumnya telah disepakati dan dikenal sebagai padding scheme. Padding scheme harus dibangun secara hati-hati
sehingga tidak ada nilai dari m yang menyebabkan masalah keamanan. Contohnya, jika kita ambil contoh sederhana dari penampilan ASCII dari m dan menggabungkan bit-bit secara bersama-sama akan menghasilkan n, kemudian pessan yang berisi ASCII tunggal karakter NUL (nilai numeris 0) akan menghasilkan n = 0, yang akan menghasilkan ciphertext 0 apapun itu nilai dari e dan N yang digunakan.
Maka A mempunyai nilai n dan mengetahui N dan e, yang telah diumumkan oleh B. A kemudian menghitung ciphertext c yang terkait pada n : c = ne mod N (1) Perhitungan tersebut dapat diselesaikan dengan menggunakan metode exponentation by squaring, yaitu sebuah algoritma yang dipakai untuk komputasi terhadap sejumlah nilai integer yang besar dengan cepat. Kemudian A mengirimkan nilai c kepada B.

Proses Dekripsi Pesan

B sudah menerima c dari A, dan mengetahui kunci privat yang digunakan B. B kemudian mengembalikan nilai n dari c dengan langkah-langkah sebagai berikut : n = cd mod N (2) Perhitungan diatas akan menghasilkan n, dengan begitu B dapat mengembalikan pesan semula m. Prosedur dekripsi bekerja karena cd ≡ (n)d ≡ (mod N) (3) Kemudian, karena ed ≡ 1 (mod p-1) dan ed ≡ 1 (mod q-1), hasil dari Fermat's little theorem. ned ≡ n (mod p) (4)  dan ned ≡ n (mod q) (5) Karena p dan q merupakan bilangan prima yang berbeda, mengaplikasikan Chinese remainder theorem akan menghasilkan dua macam kongruen  ned ≡ n (mod pq) (6) Serta cd ≡ n (mod N) (7)

Contoh Penghitungan RSA

Sebagai contoh untuk mengenal lebih dalam sistem kerja enkripisi RSA. Misalnya kita mau mengenkripsi kata “SECRET” dengan RSA, lalu kita dekripsi kembali ke dalam plaintext. Karena p dan q berjumlah minimal 100 digit atau lebih, nilai d dan e bisa berjumlah sama dengan 100 digit dan nilai N akan berjumlah 200 digit. Untuk itu di contoh pemakaian berikut, kita akan memakai angka-angka yang kecil agar mudah dalam penghitungan. Cara pengerjaannya adalah :
  1. Kita pilih p = 3 dan q = 5
  2. Hitung N = pq = 3*5 = 15
  3. Nilai e harus merupakan bilangan prima yang lebih besar dan relatif dekat dengan (p-1)(q-1) = (2)(4) = 8, sehingga kita pilih e = 11. Angka 11 adalah bilangan prima terdekat dan lebih besar daripada 8
  4. Nilai d harus dipilih sehingga(ed - 1) (p-1)(q-1) adalah sebuah integer. Lalu nilai (11d - 1) / [(2)(4)] = (11d - 1) / 8 juga merupakan integer. Setelah melalui proses penghitungan, salah satu nilai yang mungkin adalah d = 3.
  5. Lalu kita masukkan kata yang akan dienkripsi, “SECRET”.Kita akan mengkonversi string ini ke representasi desimal menggunakan nilai karakter ASCII, yang akan menghasilkan nilai ASCII 83 69 67 82 69 84
  6. Pengirim akan mengenkripsi setiap digit angka pada saat yang bersamaan menggunakan nilai kunci publik (e, n) = (11,15). Lalu setiap karakter ciphertext akan masuk ke persamaan
    Ci = Mid mod 15 Yang akan menghasilkan nilai digit masukan adalah 0x836967826984 yang akan dikirim sebagai 0x2c696d286924
  7. Penerima akan mendekripsi setiap digit angka menggunakan nilai kunci privat (d, n) = (3, 15).
    Lalu, setiap karakter plaintext akan masuk persamaan Mi = Ci3 mod 15
    String masukan yang bernilai 0x2c696d286924, akan dikonversi kembail menjadi
    0x836967826984, dan akhirnya angka-angka tersebut akan diubah kembali menjadi bentuk
    string plaintext yang bernilai “SECRET” Dari contoh di atas kita dapat menangkap suatu
    kelemahan dari pemakaian p dan q yang bernilai kecil yaitu bisa kita lihat di digit ke-4, ke-6 dan ke-9 tidak berubah saat dienkripsi, dan nilai 2 dan 8 dienkripsi
    menjadi 8 dan 2, yang berarti dienkripsi menjadikebalikannya.Tapi kesimpulan yang bisa diambil dari contoh yang sederhana ini adalah RSA dapat digunakan dalam penyandian dalam pengiriman informasi.