Kamis, 05 Januari 2017

ALGORITMA DES (Data Encryption Standard)



Pengertian
DES adalah tipikal blok cipher suatu algoritma yang membutuhkan tetap serangkaian panjang dan mengubah bit plaintext melalui serangkaian operasi rumit ke bitstring ciphertext lain yang sama panjang.
Dalam kasus DES, ukuran blok adalah 64 bit. DES juga menggunakan kunci untuk menyesuaikan transformasi, dekripsi sehingga dapat dianggap hanya dapat dilakukan oleh orang-orang yang mengetahui kunci tertentu yang digunakan untuk mengenkripsi. Nampaknya kunci terdiri dari 64-bit, namun hanya 56 di antaranya yang benar-benar digunakan oleh algoritma. Delapan bit digunakan hanya untuk memeriksa paritas, dan kemudian dibuang. Maka panjang kunci yang efektif adalah 56 bit, dan biasanya dikutip seperti itu.


Kelebihan :
1.     Kecepatan operasi lebih tinggi bila dibandingkan dengan algoritma asimetrik.
2.     Karena kecepatannya yang cukup tinggi, maka dapat digun akan pada sistem real-time 



Kelemahan :
1.     Untuk tiap pengiriman pesan dengan pengguna yang berbed a dibutuhkan kunci yang berbeda juga, sehingga akan terjadi kesulitan dalam manajemen kunci tersebut.
2.     Permasalahan dalam pengiriman kunci itu sendiri yang disebut  key distribution problem”

Algoritma DES termasuk dalam ‘kriptografi simetris’

Kriptografi Simetris

        Yaitu merupakan Algoritma Kriptografi Simetris atau Algoritma Kriptografi Konvensional adalah algoritma yang menggunakan kunci untuk proses enkripsi sama dengan kunci untuk proses dekripsi. Algoritma ini dibagi menjadi 2 kategori, yaitu Algoritma Aliran (Stream Ciphers) dan Algoritma Blok (Block Ciphers). Pada Algoritma Aliran, proses penyandiannya berorientasi pada satu bit atau satu byte data. Sedang pada Algoritma Blok, proses penyandiannya berorientasi pada sekumpulan bit atau byte data (per blok).
Kriptografi jenis ini yang paling umum dipergunakan. Kunci untuk membuat pesan yang disandikan sama dengan kunci untuk membuka pesan yang disandikan itu. Jadi pembuat pesan dan penerimanya harus memiliki kunci yang sama persis. Siapapun yang memiliki kunci tersebut  termasuk pihak-pihak yang tidak diinginkan dapat membuat dan membongkar rahasia ciphertext. Problem yang paling jelas disini terkadang bukanlah masalah pengiriman ciphertext-nya, melainkan masalah bagaimana menyampaikan kunci simetris tersebut kepada pihak yang diinginkan.

ALGORITMA RSA



Pengertian RSA

Pada penelitian ini algoritma kriptografi yang akan digunakan adalah algoritma kriptografi asimetris RSA yang ditemukan oleh Ron Rivest, Adi Shamir, dan Leonard Adleman pada tahun 1978 dan RSA merupakan singkatan inisial dari nama mereka bertiga.RSA digunakan karena merupakan algoritma kriptografi asimetris yang paling sering digunakan pada saat ini dikarenakan kehandalannya. Panjang kunci dalam bit dapat diatur, dengan semakin panjang bit maka semakin sukar untuk dipecahkan karena sulitnyamemfaktorkan dua bilangan yang sangat besar tersebut, tetapi juga semakin lama pada proses dekripsinya.

Keamanan algoritma RSA terletak pada sulitnya memfaktorkan bilangan yang besar menjadi faktor-faktor prima. Pemfaktoran dilakukan untuk memperoleh kunci pribadi. Selama pemfaktoran bilangan besar menjadi faktor-faktor prima belum ditemukan algoritma yang mangkus, maka selama itu pula keamanan algoritma RSA tetap terjamin.

·       Besaran-besaran yang digunakan pada algoritma RSA:
1.  p dan q bilangan prima                                 (rahasia)
2.  r = p × q                                                          (tidak rahasia)
3.  f(r) = (p – 1)(q – 1)                                      (rahasia)
4.  PK     (kunci enkripsi)                                  (tidak rahasia)
5.  SK     (kunci dekripsi)                                  (rahasia)
6.  X     (plainteks)                                              (rahasia)
7.  Y    (cipherteks)                                             (tidak rahasia)    

Prosedur Membuat Pasangan Kunci

1.      Pilih dua buah bilangan prima sembarang, p dan q.
2.    Hitung r = p × q. Sebaiknya p ¹ q, sebab jika p = q maka r = p2sehingga p dapat diperoleh dengan menarik akar pangkat dua dari r.
3.     Hitung f(r) = (p – 1)(q – 1).
4.     Pilih kunci publik, PK, yang relatif prima terhadap f(r).
5.   Bangkitkan kunci rahasia dengan menggunakan persamaan (5), yaitu SK × PK º 1 (mod f(r)).


Kekuatan dan Keamanan RSA
·       Keamanan algoritma RSA terletak pada tingkat kesulitan dalam memfaktorkan bilangan non prima menjadi faktor primanya, yang dalam hal ini r = p ´ q.

·       Sekali r berhasil difaktorkan menjadi p dan q, maka  f(r) = (p– 1) (q – 1) dapat dihitung. Selanjutnya, karena kunci enkrispiPK diumumkan (tidak rahasia), maka  kunci dekripsi SK dapat dihitung dari persamaan PK × SK º 1 (mod f(r)).
         
·       Penemu algoritma RSA menyarankan nilai p dan q panjangnya lebih dari 100 digit. Dengan demikian hasil kali r = p ´ q akan berukuran lebih dari 200 digit. Menurut Rivest dan kawan-kawan, uasaha untuk mencari faktor bilangan 200 digit membutuhkan waktu komputasi selama 4 milyar tahun! (dengan asumsi bahwa algoritma pemfaktoran yang digunakan adalah algoritma yang tercepat saat ini dan komputer yang dipakai mempunyai kecepatan 1 milidetik).

·       Untunglah algoritma yang paling mangkus untuk memfaktorkan bilangan yang besar belum ditemukan. Inilah yang membuat algoritma RSA tetap dipakai hingga saat ini. Selagi belum ditemukan algoritma yang mangkus untuk memfaktorkan bilangan bulat menjadi faktor primanya, maka algoritma RSA tetap direkomendasikan untuk menyandikan pesan.

Selasa, 25 Oktober 2016

Macam-macam teknik kriptografi

Teknik dalam kriptografi ada berbagai cara, diantaranya yaitu :
- Substitusi
Ini adalah algoritma kriptografi yang mula-mula digunakan oleh kaisar Romawi, Julius Caesar (sehingga dinamakan juga caesar cipher), untuk menyandikan pesan yang ia kirim kepada para gubernurnya.
Caranya adalah dengan mengganti setiap karakter dengan karaktewr lain dalam susunan abjad (alfabet). Misalnya, tiap huruf disubstitusi dengan huruf ketiga berikutnya dari susunan abjad. dalam hal ini kuncinya adalah jumlah pergeseran huruf (yaitu k=3).

Tabel Substitusi:
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
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

Contoh Pesan:
DAVID RAINIR PRATAMA
disamarkan atau dienkripsi menjadi:
GDYLG UDLQLU SUDWDPD

Jenis-jenis cipher substitusi:
a. cipher abjad-tunggal (Monoalphabetic cipher atay cipher sederhana-simple substitusi cipher)
Satu karakter di plainteks diganti dengan satu karakter yang bersesuaian. Jadi, fungsi ciphering-nya adalah fungsi satu-ke-satu.
Jadi plaintext terdiri dari hurf-huruf abjad, maka jumlah kemungkinan susunan huruf-huruf ciphertext yang dapat dibuat adalah sebanyak
26!=403.291.461.126.605.635.584.000.000
caesar cipher adalah kasus khusus dari cipher abjad tunggal dimana susunan huruf ciphertext diperoleh dengan menggeser huruf alfabet sejauh 3 karakter.

b. cipher substitusi homofonik (Homophonic substitution cipher)
Seperti cipher abjad tunggal, kecuali bahwaaa setiap karakter di dalam plainteks dapat dipetakan ke dalam salah satu dari karakter cipherteks yang mungkin. Misalnya huruf A dapat berkoresponden dengan 7, 3, atau 16, huruf B dapat berkoresponden dengan 5, 10 atau 23 dan seterusnya. Fungsi ciphering-nya memetakan satu-ke-banyak.

c. cipher abjad majemuk (Polyalpabetic substitution cipher)

merupakan cipher substitusi ganda (multiple-substitution chiper) yang melibatkan penggunaan kunci berbeda. Cipher abjad majemuk dibuat dari sejumlah cipher abjad tunggal, masing-masing dengan kunci yang berbeda.

d. chiper substitusi poligram (Polygram substitution cipher)
Blok karakter disubstitusikan dengan blok ciphertext. Misalnya ABA di ganti dengan RTQ, ABB diganti dengan SLL, dan lain-lain.
 

-  Transposisi
Pada cipher transposisi, plainteks tetap sama, tetapi urutannya diubah. dengan kata lain, algoritma ini melakukan transpose terhadap rangkaian karakter didalam teks. Nama lain untuk metode ini adalah permutasi (pemindahan).
Contoh :
DAVID RAINIR PRATAMA
untuk meng-enkripsi pesan plainteks ditulis secara horizontal dengan lebar kolom tetap,misalnya 3 karakter (kunci k=3)
DAV
IDR
AIN
IRP
RAT
AMA
maka cipherteksnya dibaca secara vertikal menjadi
DIAIRAADIRAMVRNPTA

vigenere cipher

Pembahasan selanjutnya yaitu mengenai vigenere chiper
Sebelum membahas lebih lanjut, mari kita terlebih dahulu mengetahui apa itu vigenere chiper

Pengertian Vigenere Cipher
Kode vigènere termasuk kode abjad-majemuk (polyalphabetic substitution cipher). Dipublikasikan oleh diplomat (sekaligus seorang kriptologis) Perancis, Blaise de Vigènere pada abad 16, tahun 1586. Sebenarnya Giovan Batista Belaso telah menggambarkannya untuk pertama kali pada tahun 1533 seperti ditulis di dalam buku La Cifra del Sig. Algoritma ini baru dikenal luas 200 tahun kemudian dan dinamakan kode vigènere. Vigènere merupakan pemicu perang sipil di Amerika dan kode vigènere digunakan oleh Tentara Konfederasi (Confederate Army) pada perang sipil Amerika (American Civil War). Kode vigènere berhasil dipecahkan oleh Babbage dan Kasiski pada pertengahan abad 19. (Ariyus, 2008).

Algoritma enkripsi jenis ini sangat dikenal karena mudah dipahami dan diimplementasikan. Teknik untuk menghasilkan ciphertext bisa dilakukan menggunakan substitusi angka maupun bujursangkar vigènere. Teknik susbtitusi vigènere dengan menggunakan angka dilakukan dengan menukarkan huruf dengan angka, hampir sama dengan kode geser. Contoh:
Gambar 1 Contoh Tabel Substitusi Algoritma Kriptografi Vigenere Cipher
Plaintext: PLAINTEXT
Kunci: CIPHER
Gambar 2 Contoh Tabel Kriptografi dengan Algoritma Vigenere Cipher
Dengan metode pertukaran angka dengan huruf di atas, diperoleh bahwa teks asli (PLAINTEXT) memiliki kode angka (15,11, 0, 8, 13, 19, 4, 23, 19), sedangkan kode angka untuk teks kunci (CIPHER) yaitu (2, 8, 15, 7, 4, 17). Setelah dilakukan perhitungan, maka dihasilkan kode angka ciphertext (17, 19, 15, 15, 17, 10, 6, 5, 8). Jika diterjemahkan kembali menjadi huruf sesuai urutan awal, maka menjadi huruf RTPPRKGFI.
Sedangkan metode lain untuk melakukan proses enkripsi dengan metode vigènere cipher yaitu menggunakan tabula recta (disebut juga bujursangkar vigènere).
Gambar 3 Contoh Tabula Recta Algoritma Kriptografi Vigenere Cipher
 Kolom paling kiri dari bujursangkar menyatakan huruf-huruf kunci, sedangkan baris paling atas menyatakan huruf-huruf plaintext. Setiap baris di dalam bujursangkar menyatakan huruf-huruf ciphertert yang diperoleh dengan Caesar cipher, yang mana jumlah pergeseran huruf plaintext ditentukan nilai numerik huruf kunci tersebut (yaitu, a=0, b=1, c=2, …, z=25). Sebagai contoh, huruf kunci c (=2) menyatakan huruf-huruf plaintext digeser sejauh 2 huruf ke kanan (dari susunan alfabetnya), sehingga huruf-huruf ciphertext pada baris c adalah:
Gambar 4 Potongan Tabula Recta Baris ke-C
Bujursangkar vigènere digunakan untuk memperoleh ciphertert dengan menggunakan kunci yang sudah ditentukan. Jika panjang kunci lebih pendek daripada panjang plaintext, maka kunci diulang penggunaannya (sistem periodik). Bila panjang kunci adalah m, maka periodenya dikatakan m. Sebagai contoh, jika plaintext adalah THIS PLAINTEXT dan kunci adalah sony, maka penggunaan kunci secara periodik sebagai berikut:
Plaintext : THIS PLAINTEXT
Kunci     : sony sonysonys
Untuk mendapatkan ciphertext dari teks dan kunci di atas, untuk huruf plaintext pertama T, ditarik garis vertikal dari huruf T dan ditarik garis mendatar dari huruf s, perpotongannya adalah pada kotak yang berisi huruf L. Dengan cara yang sama, ditarik garis vertikal dari huruf H dan ditarik garis mendatar pada huruf o, perpotongannya adalah pada kotak yang juga berisi berisi huruf V. hasil enkripsi seluruhnya adalah sebagai berikut:
Plaintext             : THIS PLAINTEXT
Kunci                 : sony sonysonys
Ciphertext          : LVVQ HZNGFHRVL
Variasi-variasi vigènere cipher pada dasarnya perbedaannya terletak pada cara membentuk tabel atau cara menghasilkan kuncinya, sedangkan enkripsi dan dekripsi tidak berbeda dengan vigènere cipher standar. Beberapa variasi tersebut sebagai berikut:
1.    Full Vigènere Cipher
Pada varian ini, setiap baris di dalam tabel tidak menyatakan pergeseran huruf, tetapi merupakan permutasi huruf-huruf alfabet. Misalnya, pada baris a susunan huruf-huruf alfabet adalah acak seperti di bawah ini:
Gambar 5 Contoh Potongan Tabula Recta Full Vigenere Cipher
2.    Auto-Key Vigènere cipher
Idealnya kunci tidak digunakan secara berulang. Pada auto-key vigènere cipher, jika panjang kunci lebih kecil dari panjang plaintext, maka kunci disambung dengan plaintext tersebut. Misalnya, untuk mengenkripsi pesan NEGARA PENGHASIL MINYAK dengan kunci INDO, maka kunci tersebut disambung dengan plaintext semula sehingga panjang kunci menjadi sama dengan panjang plaintext:
Plaintext: NEGARA PENGHASIL MINYAK
Kunci: INDONE GARAPENGH ASILMI
3.    Running-Key Vigènere cipher
Pada varian ini, kunci bukan string pendek yang diulang secara periodik seperti pada vigènere cipher standar, tetapi kunci adalah string yang sangat panjang yang diambil dari teks bermakna (misalnya naskah proklamasi, naskah Pembukaan UUD 1945, terjemahan ayat di dalam kitab suci, dan lain-lain). Misalnya untuk mengenkripsi plaintext NEGARA PENGHASIL MINYAK dapat menggunakan kunci berupa sila ke-2 Pancasila: KEMANUSIAAN YANG ADIL DAN BERADAB. Selanjutnya enkripsi dan dekripsi dilakukan seperti biasa. (Munir, 2006)