/* Start http://www.cursors-4u.com */ body, a:hover {cursor: url(http://ani.cursors-4u.net/toons/too-12/too1135.cur), progress !important;} /* End http://www.cursors-4u.com */

Minggu, 11 Desember 2016

RSA

RSA

assalamualaikum wr. wb , di postingan ke 8 aku ini , kita akan bahas masalah RSA nihhhh , udah ada yang tau belom RSA itu apa ? , nah masih penasaran kan nahhhh langsung aja kita akan bahas tentang RSA, check this out......

APA ITU RSA ? 

          RSA merupakan salah satu algoritma kriptografi asimetris yang menggunakan sepasang kunci, yaitu kunci publik dan kunci pribadi. Panjang kunci dapat diatur,dimana semakin panjang bit pembentukan kunci maka semakin sukar untuk dipecahkan karena sulitnya memfaktorkan dua bilangan yang sangat besar. Penelitian ini menerapkan algoritma RSA untuk enkripsi dan dekripsi kolom suatu tabel pada basis data Oracle sebagai basis data terbaik pada saat penulisan ini dibuat. Berdasarkan penelitian yang telah dilakukan, penulis dapat menarik kesimpulan, yaitu: Algoritma kriptografi asimetris RSA dapat diimplementasikan untuk proses enkripsi dan dekripsi kolom suatu tabel pada basis data Oracle, khususnya untuk tipe data varchar2.

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 penyandiaan 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 cenderung
jauh 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.



MEKA ISME 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
adalah sebagai berikut :

  1. Pilih dua bilangan prima p dan q secara acak , p q. 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 d e ≡ 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 pesanm 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


        Sekarang kita mencoba suatu 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 menjadi kebalikannya. Tapi kesimpulan yang bisa diambil dari contoh yang sederhana ini adalah RSA dapat digunakan dalam penyandian dalam pengiriman
informasi.


            Kunci RSA yang mempunyai ukuran 512 dan 768 bit dianggap masih lemah dan mudah dijebol. Ukuran kunci yang dianjurkan adalah 1024 bit. Ukuran 2048 dan 3072 bit merupakan suatu ukuran yang lebih baik.


nahhh sekarang udah tau kan RSA itu apahhh , sekian dulu postingan kali ini..... terimakasih sudah meluangkan waktu untuk membaca dan semoga bermanfaat , byeeee assalamualaium wr. wb 

Minggu, 20 November 2016

DES (Data Encryption Standard)


assalamualaikum wr.wb.....

watzappppp di postingan ke 7 aku ini kita akan bahas  DES nihhh, sebelumnya ada yang tau nggak apa itu DES ?......, kalau pada belum tau naahhhhh langsung aja nih , nggak usah panjang lebar lagi nih langsung aja check this out...

DES (Data Encryption Standard)

Kriptografi merupakan ilmu dan seni untuk menjaga kerahasiaan pesan dengan cara menyandikannya kebentuk yang tidak dapat dimengerti lagi maknanya. DES (Data Encryption Standard) merupakan salah satu algoritma standar yang ada. DES merupakan block cipher 16 ronde yang memiliki struktur Feistel dan memiliki masukan/keluaran 64 bit, serta memiliki kunci sepanjang 56 bit. Dengan struktur Feistel, algoritma enkripsi memiliki struktur yang sama dengan yang untuk dekripsi. Perbedaannya hanya terletak pada urutan subkey yang dimasukkan.

Apa itu DES?


DES merupakan salah satu algoritma kriptografi cipher block dengan ukuran blok 64 bit dan ukuran kuncinya 56 bit. Algoritma DES dibuat di IBM, dan merupakan modifikasi daripada algoritma terdahulu yang bernama Lucifer. Lucifer merupakan algoritma cipher block yang beroperasi pada blok masukan 64 bit dan kuncinya berukuran 28 bit. Pengurangan jumlah bit kunci pada DES dilakukan dengan alasan agar mekanisme algoritma ini bisa diimplementasikan dalam satu chip. 
DES pertama kali dipublikasikan di Federal Register pada 17 Maret 1975. Setelah melalui banyak diskusi, akhirnya algortima DES diadopsi sebagai algoritma standar yang digunakan oleh NBS (National Bureau of Standards) pada 15 Januari 1977. Sejak saat itu, DES banyak digunakan pada dunia penyebaran informasi untuk melindungi data agar tidak bisa dibaca oleh orang lain. Namun demikian, DES juga mengundang banyak kontroversi dari para ahli di seluruh dunia. Salah satu kontroversi tersebut adalah S-Box yang digunakan pada DES. S-Box merupakan bagian vital dari DES karena merupakan bagian yang paling sulit dipecahkan. Hal ini disebabkan karena S-Box merupakan satu – satunya bagian dari DES yang komputasinya tidak linear. Sementara itu, rancangan dari S-Box sendiri tidak diberitahukan kepada publik. Karena itulah, banyak yang curiga bahwa S-Box dirancang sedemikian rupa sehingga memberikan trapdoor kepada NSA agar NSA bisa membongkar semua ciphertext yang dienkripsi dengan DES kapan saja. 
Kontroversi yang kedua adalah jumlah bit pada kunci DES yang dianggap terlalu kecil, hanya 56 bit. Akibatnya DES rawan terhadap serangan brute force. Walaupun terdapat kerawanan tersebut, DES tetap digunakan pada banyak aplikasi seperti pada enkripsi PIN (Personal Identification Numbers) pada mesin ATM (Automatic Teller Machine) dan transaksi perbankan lewat internet. Bahkan, organisasi – organisasi pemerintahan di Amerika seperti Department of Energy, Justice Department, dan Federal Reserve System menggunakan DES untuk melindungi penyebaran data mereka.

 

Enkripsi DES

Di dalam proses enciphering, blok plainteks terbagi menjadi dua bagian, kiri (L) dan kanan (R), yang masing-masing panjangnya 32 bit. Kedua bagian ini masuk ke dalam 16 putaran DES. Pada setiap putaran i, blok R merupakan masukan untuk fungsi transformasi yang disebut f. Pada fungsi f, blok R dikombinasikan dengan kunci internal Ki. Keluaran dai fungsi f di-XOR-kan dengan blok L untuk mendapatkan blok R yang baru. Sedangkan blok L yang baru langsung diambil dari blok R sebelumnya. Ini adalah satu putaran DES. Secara lengkap proses Enkripsi dengan menggunakan DES ditunjukan pada skema berikut :


Algoritma DES memerlukan sebuah kunci yang panjang bloknya 64 bit di setiap blok DES digunakan untuk mengamankan data pada perangkat lunak dan keras negara tersebut. Berikut desain input-output algoritma DES


Dapat dilihat bahwa ada dua input untuk fungsi enkripsi, yaitu plaintext dengan panjang 64-bit dan kunci dengan panjang 56-bit. Untuk mengenkripsi data dengan menggunakan algoritma DES, dimulai dengan membagi bit dari teks tersebut kedalam blok-blok dengan ukuran blok sebesar 64-bit, yang kemudian disebut blok plaintext. Adapun penjelasan langkah-langkah enkripsi DES dijelaskan sebagai berikut :

A. Permutasi Awal


Sebelum putaran pertama, terhadap blok plainteks dilakukan permutasi awal (initial permutation atau IP). Tujuan permutasi awal adalah mengacak plainteks sehingga urutan bit-biit di dalamnya berubah. Pengacakan dilakukan dengan menggunakan matriks permutasi awal berikut ini:

B. Pembangkitan Kunci Internal

Pada proses enchipering akan dilakukan proses pemutaran sebanyak 16 kali, oleh karena itu dibutuhkan 16 buah kunci. 16 buah kunci tersebut dibangkitkan dari kunci eksternal. Masukan kunci (input key) K dispesifikasikan sebagai 64-bit kunci (key), kunci eksternal ini akan menjadi masukan untuk permutasi dengan menggunakan matriks permutasi choice one (PC-1) berikut ini:


8 buah bit yaitu bit 8, 16, 24, 32, 40, 48, 56, dan 64 digunakan sebagai parity bit. Parity bit tersebut akan mereduksi ukuran efektif key dari 64-bit menjadi 56-bit. Selanjutnya, 56 bit yang tersisa ini dibagi menjadi dua bagian, yaitu bagian kiri (C0) dan bagian kanan (D0). Selanjutnya kedua bagian digeser ke kiri (left shifting) sepanjang satu atau dua bit sesuai tabel pergeseran berikut ini :


Setelah pergeseran bit, maka masing-masing Ci dan Di akan dipermutasi kembali dengan menggunakan matriks PC-2 berikut :


Berikut ini merupakan skema yang menjelaskan proses pembangkitan kunci-kunci internal DES :

C. Enciphering

Seperti sudah dijelaskan sebelumnya, setiap blok plaintext mengalami 16 kali putaran enchipering. Secara matematis, satu putaran DES dinyatakan sebagai berikut :

Adapun langkah-langkah enchipering dapat dilihat pada skema berikut :
Adapun penjelasan dari skema diatas adalah :
  • E merupakan fungsi ekspansi yang memperluas blok Ri-1 yang panjangnya 32-bit menjadi 48-bit. Fungsi ekspansi ini direalisasikan melalui tabel berikut : 
  • Selanjutnya hasil ekspansi yaitu E(Ri-1), yang panjangnya 48-bit di XOR kan dengan Ki yang panjangnya juga 48-bit dan menghasilkan vektor A yang panjangnya 48-bit.
  • Vektor A kemudia dikelompokkan menjadi 8 kelompok yang masing-masing panjangnya 6 bit dan menjadi masukkan bagi proses substitusi. Proses substitusi dilakukan dengan menggunakan 8 buah kotak-s (s-box). Setiap kotak-s menerima 6 bit masukkan dan menghasilkan keluaran 4 bit. Kelompok 6 bit pertama akan menggunakan s1, 6 bit selanjutnya akan menggunakan s2, dan seterusnya. Bit awal dan akhir menentukan baris dan 4 bit ditengah akan menentukan kolom yang akan dipilih.
Kedelapan kotak S (s-boxadalah :







Contoh pencarian output dari kotak s adalah :
Bit 100110 = keluaran dari kotak-s adalah kotak-s pertama, baris ke 2 dan kolom ke3 yaitu 8 (1000).

Keluaran proses substitusi adalah vector B yang panjangnya 48 bit. Vector B menjadi masukan untuk proses permutasi. Adapun tujuan dari proses permutasi adalah untuk mengacak hasil proses substitusi kotak-S. Hasil permutasi dinyatakan dalam fungsi f(Ri-1,Ki). Permutasi ini dilakukan dengan menggunakan matriks permutasi sebagai berikut :

Dekripsi DES

DES memiliki proses yang sama untuk algoritma enkripsi dan dekripisinya. Proses pendekripsian juga dilakukan dengan menggunakan cipher Feistel sebanyak 16 round, dengan pada masing-masing round mengerjakan proses yang sama. Yang membedakan hanya urutan kunci dan juga input masukannya yang berupa ciphertext.

Pada round pertama, yang digunakan adalah K16, round kedua menggunakan K15, dan seterusnya hingga round terakhir akan menggunakan K1. Ciphertext yang digunakan yaitu berupa L16R16 yang diperoleh dari hasil permutasi invers IP-1 terhadap ciphertext sebenarnya (y) kemudian menukar 32 bit pertama dengan 32 bit terakhir dari hasil tersebut.
Proses dekripsi dilakukan dengan cara berkebalikan dari proses enkripsi, yaitu dengan menggunakan L16 R16 untuk menemukan L0 R0 atau plaintext.

Atau dapat ditunjukkan dengan gambar berikut untuk proses setiap round-nya.
Maka dari itu, untuk mendapatkan L0 R0 bisa digunakan langkah berikut :
Cara untuk mendapatkan plainteks kembali yaitu:
x = IP-1 (RD0 LD0)

Differential Cryptanalysis

Salah satu serangan yang paling terkenal pada DES adalah metode “Differential Cryptanalysis” yang dikenalkan oleh Edi Biham dan Adi Shamir. Serangan ini adalah serangan chosen plaintext, yaitu penyerang memiliki kemampuan untuk memilih plaintext tertentu dan mendapatkan ciphertext yang berkesusaian. Serangan ini mungkin tidak efektif untuk memecahkan DES 16 ronde seperti pada umumnya, tetapi serangan ini dapat memecahkan DES dengan iterasi lebih rendah. Sebagai contoh, DES 8 ronde dapat dipecahkan hanya dalam beberapa menit dengan menggunakan sebuah PC sederhana. Pada DES, umumnya kerahasiaannya terletak pada kunci yang digunakan, sementara tabel permutasi dan tabel substitusi yang digunakan tidak berubah. Karena tulah kita mengasumsikan kriptanalis sudah mengetahui tabel permutasi dan tabel substitusi yang digunakan.
Differential Cryptanalysis adalah suatu teknik di mana kita membuat perubahan tertentu padalaintext sehingga dari ciphertext yang dihasilkan, kita bisa mencari kunci yang digunakan. Konsep perbedaan dalam differential cryptanalysis dirumuskan dengan operasi exclusive or. Jadi perbedaan antara dua naskah asli P1 dan P2 adalah P1 ⊕ P2 dimana operasi XOR dilakukan secara bitwise. Jika C1 dan C2 adalah pasangan ciphertext untuk P1 dan P2 , maka efek P1 ⊕P2 terhadap - C1⊕ C2 dapat mem berikan informasi mengenai kunci enkripsi. Analisa mencoba mengeksploitasi kecenderungan fungsi cipher dan didasarkan pada sifat aljabar operasi exclusive or. Efek dari permutasi seperti initial permutation (IP ) adalah linear dengan

IP (P1 ) ⊕ IP (P2 ) = IP (P1 ⊕ P2 )
Jadi efek permutasi terhadap perbedaan tidak terlalu rumit. Permutasi yang dilakukan diluar
putaran seperti IP dan IP−1 sama sekali tidak mempersulit analisa. Mari kita lihat efek dari fungsi cipher
f yang beroperasi terhadap setengah dari naskah sebesar 32 bit. Efek dari ekspansi E juga linear
E(P1 ) ⊕ E(P2 ) = E(P1 ⊕ P2 )
Jadi ekspansi juga tidak membuat rumit perbedaan, jadi tidak mempengaruhi analisa satu putaran. Akan tetapi, ekspansi, yang selain mengekspansi juga melakukan permutasi, mempengaruhi tingkat kesulitan analisa lebih dari dua putaran karena efek avalanche yang ditimbulkannya. Efek avalanche terjadi karena perbedaan 1 bit dalam input setelah melewati S-box menjadi perbedaan sedikitnya 2 bit. Karena efek ekspansi, perbedaan 2 bit akan menjadi input 3 S-boxes dua putaran kemudian yang oleh 3 Sboxes dijadikan perbedaan 6 bit, dan seterusnya. Jadi dengan setiap putaran, efek perbedaan semakin besar bagaikan avalanche.
Efek dari operasi exclusive or dengan kunci putaran adalah :
(P1 ⊕ K) ⊕ (P2 ⊕ K) = P1 ⊕ P2
Ini berarti tidak ada efek terhadap perbedaan. Efek dari permutasi P juga linear, jadi yang sangat menentukan dalam differential cryptanalysis adalah efek dari substitusi S-box yang diketahui sebagai tidak linear.

Analisis Satu Putaran


Untuk dapat memberikan gambaran mengenai mekanisme menemukan kunci dalam putaran mari kita lihat ilustrasi berikut. Contoh kita umpamakan bahwa XOR pasangan input adalah 0x34 (hexadecimal 34) dan XOR pasangan output adalah 0xd (hexadecimal d) dan S-box adalah S1. (Kita gunakan notasi 0x34 → 0xd untuk menandakan bahwa XOR input 0x34 dapat menghasilkan XOR output 0xD.) Kita umpamakan juga bahwa bits pasangan hasil ekspansi E adalah 0x35 dan 0x01. Bits input untuk S1 didapat dari XOR bits hasil ekspansi E dengan bits kunci k1 . Jadi pasangan input S1, sebut saja x dan y mempunyai rumus:


x = 0x35 ⊕ k1
y = 0x01 ⊕ k1
Sehingga :

k1 = 0x35 ⊕ x = 0x01 ⊕ y

Jadi bits kunci putaran didapat dari XOR pasangan hasil ekspansi dengan pasangan input S1. Namun tidak semua pasangan input S1 dapat menghasilkan 0xd sebagai XOR output S1. Hanya ada 8 pasangan input x dan y dengan XOR 0x34 yang menghasilkan XOR output 0xd, oleh karena itu hanya ada 8 kandidat nilai bits kunci yang dimungkinkan seperti terlihat dalam tabel berikut:


Jadi dengan menganalisa hasil transformasi S1 terhadap pasangan ekspansi 0x35 dan 0x01, ruang pencarian bits kunci putaran diperkecil dari 64 kandidat menjadi 8 kandidat. Jika kita mempunyai pasangan ekspansi lain (mungkin dengan hasil XOR yang berbeda) yang menghasilkan tabel lain, kita dapat memperoleh informasi tambahan mengenai bits kunci putaran. Bits kunci putaran harus berada dalam semua tabel yang dihasilkan, jadi setelah mendapatkan tabel 8.2, kandidat untuk bits kunci putaran tinggal dua yaitu 0x23 dan 0x17.

Analisis dapat dilanjutkan menggunakan pasangan ekspansi lainnya sampai kandidat bits kunci putaran tinggal satu sehingga bits kunci putaran dapat ditentukan. Jika proses pencarian bits kunci putaran menggunakan analisa efek S-box tidak selesai, hasil analisa dapat digunakan untuk menentukan probabilitas berbagai kandidat bits kunci putaran. Pendekatan probabilistik inilah sebenarnya yang digunakan dalam differential cryptanalysis.

Secara garis besar, metode yang digunakan differential cryptanalysis untuk mencari kunci putaran adalah sebagai berikut:
  1. Kita pilih XOR untuk naskah asli.
  2. Kita buat beberapa pasangan naskah asli dengan XOR yang dipilih, kita lakukan enkripsi terhadap pasangan, dan simpan pasangan terenkripsi.
  3. Untuk setiap pasangan, cari XOR output yang diharapkan untuk sebanyak mungkin Sboxes untuk putaran terahir dari XOR naskah asli dan pasangan terenkripsi (XOR input fungsi cipher f untuk putaran terahir diketahui karena merupakan XOR bagian dari pasangan terenkripsi).
  4. Untuk setiap kandidat kunci putaran, hitung pasangan yang menghasilkan XOR yang diharapkan jika menggunakan kandidat kunci putaran.
  5. Kunci putaran yang terpilih adalah kandidat kunci putaran yang mempunyai hitungan terbesar.
Hasil analisa dari Edi Biham dan Adi Shamir tentang kompleksitas pemecahan kunci pada DES ditunjukkan dalam tabel berikut :

Tabel diatas menunjukkan bahwa untuk DES dengan putaran penuh (16 putaran), differential crypatanalisis jauh lebih sukar daripada exhaustive search atau brute force.

Linear Cryptanalysis


Linear Cryptanalysis pertama kali diterbitkan secara terbuka sebagai sarana untuk menyerang DES oleh Mitsuru Masui di EUROCRYPT’93. Metodenya adalah mencoba untuk menemukan hubungan linear antara plaintext, ciphertext dan keys ketika mereka melalui S-BOX. Dengan mengetahui sepasang plaintext-ciphertext sebagai data, hubungan dengan kemungkinan yang cukup tinggi dapat digunakan untuk menemukan kuncinya.
Matsui menunjukkan bahwa DES dapat dipecahkan dengan bantuan 247 pasang dari plaintextciphertext yang sudah diketahui dan lebih cepat dari metode exhaustivesearch. [1] Namun Matsui memperbarui metodenya yaitu untuk mencapai tingkat keberhasilan sebesar 85% dengan metode ini, diperlukan 243 pasang plaintext-ciphertext. Prinsip dari linear cryptanalysis sangatlah sederhana, yaitu satu mendekati (non-linear) blok cipher menggunakan ekspresi linear :


Dimana P, C dan K menunjukkan plaintext-ciphertext, masing-masing kunci bit dan operator bolean XOR. Index i, j dan k menunjukkan lokasi bit tetap. Matsui menghasilkan tabel pendekatan linear untuk 8 S-BOX DES dan menemukan linearitas terkuat di S5 (S-BOX kelima). Tabelnya dihasilkan dengan menganalisa semua kombinasi dari bit input dan output dari S-BOX. Dimana terdapat 6 bit input dan 4 bit output, maka ada 1024 entri (26 x 24) pada tabel untuk setiap S-BOX. Sebuah pendekatan linear dinyatakan kuat apabila memiliki kemungkinan yang signifikan lebih besar atau lebih kecil dari 50%. Pada entri tertentu di S5 yang memiliki nilai 20, mewakili kemungkinan 12/64 (1/2 – 20/64). Nilai ini dianggap cukup kuat dan memungkinkan untuk melakukan pembacaan sandi menggunakan linear cryptanalysis pada DES.
Eli Biham mengambil satu langkah lebih maju untuk membantu menentukan pembatasan S-BOX untuk membuat mereka lebih tahan terhadap linear cryptanalysis. Ia menemukan bahwa peningkatan jumlah bit output dari sebuah S-BOX dapat membahayakan S-BOX secara signifikan terhadap linear cryptanalysis. Lebih tepatnya, ia menemukan bahwa dalam m x n S-BOX, dimana m adalah jumlah bit input dan n adalah jumlah bit output, jika n x 2m – m maka S-BOX harus memiliki linear property dari bit input maupun dari bit ouput.

Brute Force Attack


Tipe serangan ini adalah tipe serangan yang dilakukan secara praktikal. Seperti diketahui, panjang kunci pada DES adalah 56-bit, sehingga banyak kombinasi kunci yang mungkin adalah 256 kemungkinan. Dengan mengacu pada fakta tersebut kita dapat mendisain sebuah program dengan mengacu pada algoritma enkripsi DES untuk kemudian dilakukan pengujian terhadap semua kemugkinan kunci. Namun demikian, penggunaan komputer personal hanya untuk melakukan operasi percobaan kemungkinan kunci dinilai tidak efektif dari segi biaya serta juga tidak praktis, banyak fitur dari sebuah CPU yang tidak termanfaatkan dengan baik.
Alternatif lain adalah dengan membangun sebuah perangkat keras khusus yang diperuntukkan khusus untuk melakukan operasi ini. Telah banyak dikembangkan model perangkat keras dengan tujuan khusus seperti ini, salah satu contohnya adalah Cost-Optimized Parallel Code Breaker (COPACOBANA).


COPACOBANA terdiri dari serangkaian chip FPGA, dimana pada setiap chip terdapat empat buah engine DES yang bertugas untuk melakukan pengujian terhadap sebuah kunci.

Kelemahan DES


Isu-isu yang menjadi perdebatan kontroversial menyangkut keamanan DES:
  1. Panjang kunci
  2. Jumlah putaran
  3.  S-Box

A. Panjang Kunci

Panjang kunci eksternal DES hanya 64 bit, itupun yang dipakai Cuma 56 bit. Awalnya diusulkan oleh IBM adalah 128 bit, namun atas permintaan NSA, panjang kunci dikurangi 72 bit sehinggal menjadi 56 bit, alasan pengurangannya tidak diumumkan. Serangan yang bisa dilakukan dengan memanfaatkan kelemahan panjang kunci ini dengan menggunakan exhaustive key search. Exhaustive search adalah pencarian terhadap semua kemungkinan solusi. Dengan panjang kunci 56 bit akan terdapat 256 atau 72.057.594.037.927.936 kemungkinan kunci. Jika diasumsikan serangan exhaustive key search dengan menggunakan prosesor parallel mencoba setengah dari jumlah kemungkinan kunci itu maka diperlukan 1142 tahun untuk menemukan kunci yang benar. Namun pada tahun 1998 Electronic Frontier Foundation merancang dan membuat perangkat keras khusus untuk menemukan kunci DES secara exhaustive search key dengan biaya $250.000 dan diharapkan menemukan kunci selama 5 hari. Pada tahun 1999, kombinasi perangkat keras EFE dengan kolaborasi internet yang melibatkan lebih dari 100.000 komputer dapat menemukan kunci DES kurang dari 1 hari. Kriptoanalisis yang menggunakan exhaustive search key ini adalah kriptoanalisis differential.

B. Jumlah Putaran


Dari penelitian, DES dengan jumlah putaran yang kurang dari 16 ternyata dapat dipecahkan dengan knownplaintext attack yang lebih efektif daripada dengan brute force attack. Kriptoanalisis yang menggunakan seragan knownplaintext ini adalah kriptoanalisis linier.

C. S-Box

Pada desain struktur internal DES, bagian substitusinya (S-box), masih dirahasiakan. S-box ini diubah mengikuti saran NSA. Akibatnya, kita tidak bisa yakin bahwa struktur internal DES bebas dari titik-titik lemah yang sengaja disembunyikan, yang membuat NSA dapat membuka cipher tanpa harus mengetahui kuncinya. Menurut penelitian para ahli kriptografi, DES didesain dengan sangat cermat, sehingga bila kotak-S ini diubah secara acak, sangat mungkin sekali DES yang dihasilkan justru menjadi lebih mudah dibobol. Pengisian kotak-S DES masih menjadi misteri tanpa ada alasan mengapa memilih konstanta-konstanta di dalam kotak itu.

Kesimpulan

nahhh kesimpulannya kali ini yaituuuuuuu...............................
DES meiliki cara yang sama dalam melakukan enkripsi maupun dekripsi. Hanya saja pproses dekripsi dilakukan secara terbalik dibandingkan dengan proses enkripsi. DES diaplikasikan dengan melakukan pengolahan pengolahan angka, oleh karena itu konsep dasar yang digunakan DES adalah teori bilangan. Pada awalnya DES digunakan sebagai salah pengaman yang paling aman, tetapi seiring berjalannya waktu banyak kekurangan sistem ini yang menjadi kontroversi karena menyangkut kemanannya.
gimana udah pada paham tentang DES belum hmmmm ,insyaallah paham yaaa........ nahhhh segitu aja postingan kali ini supaya bermanfaat GANBATEEEE... assalamualaikum wr.wb.

Minggu, 13 November 2016

TABEL PERMUTASI ( DES )


assalamualaikum
haiii watzappppp kembali lagi di blog aku yang ke 6 , nahhhh kali ini kita akan bahas masalah tabel permutasi dan langkah langkah mengenkripsinya nihh menggunakan algoritma DES pastinyaa , nggak usah panjang lebar nihh langsung aja kita bahasss yahhhh

TABEL PERMUTASI ( DES ) SERTA LANGKAH LANGKAH MENGENKRIPSIKAANNYA

nahhhhh , Langkah-langkah mengenkripsi data menggunakan algoritma DES (Data Encryption System) yaitu:

Diberikan contoh:

  • Plaintext(x) = COMPUTER
  • Key(k) = 13 34 57 79 9B BC DF F1
Langkah Pertama :

Ubahlah plaintext kedalam bentuk biner
C : 01000011
O : 01001111
M : 01001101
P : 01010000
U : 01010101
T : 01010100
E : 01000101
R : 01010010

Ubahlah key kedalam bentuk biner
13 : 00010011
34 : 00110100
57 : 01010111
79 : 01111001
9B : 10011011
BC : 10111100
DF : 11011111
F1 : 11110001



Langkah Kedua :

Lakukan Initial Permutation (IP) pada bit plaintext menggunakan tabel IP berikut:

Tabel Initial Permutation(IP)

585042342618102
605244362820124
625446383022146
645648403224168
57494133251791
595143352719113
615345372921135
635547393123157

Urutan bit pada plaintext urutan ke 58 ditaruh diposisi 1,
Urutan bit pada plaintext urutan ke 50 ditaruh di posisi 2,
Urutan bit pada plaintext urutan ke 42 ditaruh di posisi 3, dst

Sehingga hasil outputnya adalah

IP(x) : 11111111 10111000 01110110 01010111 00000000 00000000 00000110 10000011

Pecah bit pada IP(x) menjadi 2 bagian yaitu:
L0 : 11111111 10111000 01110110 01010111 (tabel IP dengan warna kuning)
R0 : 00000000 00000000 00000110 10000011 (tabel IP dengan warna hijau)

Langkah Ketiga :

Generate kunci yang akan digunakanuntuk mengenkripsi plaintext dengan menggunakan tabel permutasi kompresi PC-1, pada langkah ini terjadi kompresi dengan membuang 1 bit masing-masing blok kunci dari 64 bit menjadi 56 bit.

Tabel PC-1
5749413325179
1585042342618
1025951433527
1911360524436
63554739312315
7625445383022
1466153453729
211352820124

Dapat kita lihat pada tabel diatas, tidak terdapat urutan bit 8,16,24,32,40,48,56,64 karena telah dikompress. Berikut hasil outpunya :

CD(k) : 1111000 0110011 0010101 0101111 0101010 1011001 1001111 0001111

Pecah CD(k) menjadi dua bagian kiri dan kanan, sehingga menjadi

C0 : 1111000 0110011 0010101 0101111(tabel PC-1 warna kuning)
D0 : 0101010 1011001 1001111 0001111 (tabel PC-1 warna hijau)

Langkah Keempat :

Lakukan pergeseran kiri (Left Shift) pada C0 dan D0, sebanyak 1 atau 2 kali berdasarkan kali putaran yang ada pada tabel putaran sebagai berikut:

Tabel Left Shift
Putaran ke - iJumlah Pergeseran(Left Shift)
11
21
32
42
52
62
72
82
91
102
112
122
132
142
152
161

Untuk putaran ke 1, dilakukan pegeseran 1 bit ke kiri
Untuk putaran ke 2, dilakukan pergeseran 1 bit kekiri
Untuk putaran ke 3, dilakukan pergeseran 2 bit kekiri, dst

Berikut hasil outputnya:
C0 : 1111000 0110011 0010101 0101111
D0 : 0101010 1011001 1001111 0001111

Digeser 1 bit ke kiri
C1 : 1110000 1100110 0101010 1011111
D1 : 1010101 0110011 0011110 0011110

Digeser 2 bit ke kiri
C2 : 1100001 1001100 1010101 0111111
D2 : 0101010 1100110 0111100 0111101

Digeser 2 bit ke kiri
C3 : 0000110 0110010 1010101 1111111
D3 : 0101011 0011001 1110001 1110101

Digeser 2 bit ke kiri
C4 : 0011001 1001010 1010111 1111100
D4 : 0101100 1100111 1000111 1010101

Digeser 2 bit ke kiri
C5 : 1100110 0101010 1011111 1110000
D5 : 0110011 0011110 0011110 1010101

Digeser 2 bit ke kiri
C6 : 0011001 0101010 1111111 1000011
D6 : 1001100 1111000 1111010 1010101

Digeser 2 bit ke kiri
C7 : 1100101 0101011 1111110 0001100
D7 : 0110011 1100011 1101010 1010110

Digeser 2 bit ke kiri
C8 : 0010101 0101111 1111000 0110011
D8 : 1001111 0001111 0101010 1011001

Digeser 1 bit ke kiri
C9 : 0101010 1011111 1110000 1100110
D9 : 0011110 0011110 1010101 0110011

Digeser 2 bit ke kiri
C10 : 0101010 1111111 1000011 0011001
D10 : 1111000 1111010 1010101 1001100

Digeser 2 bit ke kiri
C11 : 0101011 1111110 0001100 1100101
D11 : 1100011 1101010 1010110 0110011

Digeser 2 bit ke kiri
C12 : 0101111 1111000 0110011 0010101
D12 : 0001111 0101010 1011001 1001111

Digeser 2 bit ke kiri
C13 : 0111111 1100001 1001100 1010101
D13 : 0111101 0101010 1100110 0111100

Digeser 2 bit ke kiri
C14 : 1111111 0000110 0110010 1010101
D14 : 1110101 0101011 0011001 1110001

Digeser 2 bit ke kiri
C15 : 1111100 0011001 1001010 1010111
D15 : 1010101 0101100 1100111 1000111

Digeser 1 bit ke kiri
C16 : 1111000 0110011 0010101 0101111
D16 : 0101010 1011001 1001111 0001111

Setiap hasil putaran digabungkan kembali menjadi CiDi dan diinput kedalam tabel Permutation Compression 2 (PC-2) dan terjadi kompresi data CiDi 56 bit menjadi CiDi 48 bit.

Tabel PC-2

1417112415
3281562110
2319124268
1672720132
415231374755
304051453348
444939563453
464250362932

Berikut hasil outputnya:

C1D1 = 1110000 1100110 0101010 1011111 1010101 0110011 0011110 0011110
K1 = 000110 110000 001011 101111 111111 000111 000001 110010

C2D2 = 1100001 1001100 1010101 0111111 0101010 1100110 0111100 0111101
K2 = 011110 011010 111011 011001 110110 111100 100111 100101

C3D3 = 0000110 0110010 1010101 1111111 0101011 0011001 1110001 1110101
K3 = 010101 011111 110010 001010 010000 101100 111110 011001

C4D4 = 0011001 1001010 1010111 1111100 0101100 1100111 1000111 1010101
K4 = 011100 101010 110111 010110 110110 110011 010100 011101

C5D5 = 1100110 0101010 1011111 1110000 0110011 0011110 0011110 1010101
K5 = 011111 001110 110000 000111 111010 110101 001110 101000

C6D6 = 0011001 0101010 1111111 1000011 1001100 1111000 1111010 1010101
K6 = 011000 111010 010100 111110 010100 000111 101100 101111

C7D7 = 1100101 0101011 1111110 0001100 0110011 1100011 1101010 1010110
K7 = 111011 001000 010010 110111 111101 100001 100010 111100

C8D8 = 0010101 0101111 1111000 0110011 1001111 0001111 0101010 1011001
K8 = 111101 111000 101000 111010 110000 010011 101111 111011

C9D9 = 0101010 1011111 1110000 1100110 0011110 0011110 1010101 0110011
K9 = 111000 001101 101111 101011 111011 011110 011110 000001

C10D10 = 0101010 1111111 1000011 0011001 1111000 1111010 1010101 1001100
K10 = 101100 011111 001101 000111 101110 100100 011001 001111

C11D11 = 0101011 1111110 0001100 1100101 1100011 1101010 1010110 0110011
K11 = 001000 010101 111111 010011 110111 101101 001110 000110

C12D12 = 0101111 1111000 0110011 0010101 0001111 0101010 1011001 1001111
K12 = 011101 010111 000111 110101 100101 000110 011111 101001

C13D13 = 0111111 1100001 1001100 1010101 0111101 0101010 1100110 0111100
K13 = 100101 111100 010111 010001 111110 101011 101001 000001

C14D14 = 1111111 0000110 0110010 1010101 1110101 0101011 0011001 1110001
K14 = 010111 110100 001110 110111 111100 101110 011100 111010

C15D15 = 1111100 0011001 1001010 1010111 1010101 0101100 1100111 1000111
K15 = 101111 111001 000110 001101 001111 010011 111100 001010

C16D16 = 1111000 0110011 0010101 0101111 0101010 1011001 1001111 0001111
K16 = 110010 110011 110110 001011 000011 100001 011111 110101

nahhhh paham kan gimana tabel permutasi pada DES ini ?? sekian dulu buat hari ini byeeeeeeeee........
 assalamualaikum wr wb .

Adventure Time - Finn 3