Senin, 11 April 2016

Kriptografi IDEA

Kriptografi IDEA

IDEA (International Data Encryption Algorithm) merupakan algoritma simetris yang beroperasi pada sebuah blok pesan plaintext terbuka dengan panjang blok 64-bit. Memilih panjang blok sebanyak 64 bit kaena dirasa sudah cukup panjang bila kita akan melakukan analisis statistikal. Menggunakan kunci yang sama , berukuran 128-bit, untuk proses enkripsi maupun dekripsi. Kunci yang digunakan panjangnya 128 bit karena bila dilakukan serangan brute force pada IDEA menggunakan sebuah sistem yang dapat melakukan pengujian 109 kunci per detiknya, akan diperlukan waktu 1013 tahun untuk mencari kuncinya. Pesan rahasia yang dihasilan oleh algoritma ini (chipertext) berupa blok pesan rahasia dengan lebar satu blok 64-bit. Sebuah sistem yang dapat melakukan pengujian 109 kunci akan mencari semua kemungkinan dari
256 kunci DES dalam waktu di bawah satu detik (72 millidetik).

Proses Enkripsi IDEA


Pada proses enkripsi, algoritma IDEA ini ditunjukkan oleh gambar di atas, terdapat tiga operasi yang berbeda untuk pasangan sub-blok 16-bit yang digunakan, sebagai berikut :
· XOR dua sub-blok 16-bit bir per bit
· Penjumlahan integer modulo (216 + 1) dua sub-blok 16-bit , dimana edua sub-blok itu dianggap sebagai representasi biner dari integer biasa,
Perkalian modulo (216 + 1) dua sub-blok 16-bit, dimana kedua sub-blok 16-bit itu dianggap sebagai representasi biner dari integer biasa kecuali sub-blok nol dianggap mewakili integer 216
Blok pesan terbuka dengan lebar 64-bit , X, dibagi menjadi 4 sub-blok 16-bit, X1, X2, X3, X4, sehingga X = (X1, X2, X3, X4). Keempat sub-blok 16-bit itu ditransformasikan menjadi sub-blok 16-bit, Y2, Y2, Y3, Y4, sebagai pesan rahasia 64-bit Y = (Y1, Y2, Y3, Y4) yang berada dibawah kendali 52 sub_blok kunci 16-bit yang dibentuk dari dari blok kunci 128 bit.
Keempat sub-blok 16-bit, X1, X2, X3, X4, digunakan sebagai masukn untuk putaran pertama dari algoritma IDEA. Dalam setiap putaran dilakukan operasi XOR, penjumlahan, perkalian antara dua sub-blok 16-bit dan diikuti pertukaran antara sub-blok 16-bit putaran kedua dan ketiga. Keluaran putaran sebelumnya menjadi masukan putaran berikutnya. Setelah putaran kedelapan dilakukan transformasi keluara yang dikendalikan oleh 4 sub-blok unci 16-bit.
Pada setiap putaran dilakukan operasi-operasi sebagai berikut :
1) Perkalian X1 dengan sub-kunci pertama
2) Penjumlahan X2 dengan sub-kunci kedua
3) Pejumlahan X3 dengan sub kunci ketiga
4) Perkalian X4 dengan sub kunci keempat
5) Operasi XOR hasil langkah 1) dan 3)
6) Operasi XOR hasil angkah 2) dan 4)
7) Perkalian hasil langkah 5) dengan sub-kunci kelima
8) Penjumlahan hasil langkah 6) dengan langkah 7)
9) Perkalian hasil langkah 8) dengan sub-kunci keenam
10)Penjumlahan hasil langah 7) dengan 9)
11)Operasi XOR hasil langkah 1) dan 9)
12)Operasi XOR hasil langkah 3) dan 9)
13)Operasi XOR hasil langkah 2) dan 10)
14)Operasi XOR hasil langkah 4) dan 10)
Keluaran setiap putaran adalah 4 sub-blok yang dihasilkan pada langkah 11), 12), 13), dan 14) dan menjadi masukan putaran berikutnya.
Setelah putaran kedelapan terdapat transformasi keluaran, yaitu :
1) Perkalian X1 dengan sub-kunci pertama
2) Penjumlahan X2 dengan sub-kuci ketiga
3) Penjumlahan X3 dengan sub-kunci kedua
4) Perkalian X4 dengan sub-kunci keempat
Terahir, keempat sub-blok 16-bit 16-bit yang merupakan hasil operasi 1), 2), 3), dan 4) ii digabung kembali menjadi blok pesan rahasia 64-bit.

 Arsitektur umum Processor Kroptografi IDEA

Blok penyandi IDEA
Blok ini berfungsi untuk melakukan proses penyandian data. Jika sub-kunci yang diproses oleh blok ini berupa sub-kunci enkripsi maka pesan yang dihasilkan adalah pesan rahasia (Chiper teks) dan jika yang diproses berupa sub-kunci dekripsi maka pesan yang dihasilkan adalah pesan sebenarnya (Plain teks).
Blok pembangkit sub-kunci
Blok ini berfungsi untuk membentuk 52 buah sub-kunci enkripsi 16 bit dari kunci enkripsi 128 bit membentuk 52 buah sub-kunci dekripsi 16 bit dari kunci dekripsi 128 bit.
Blok port data-in
Blok ini berfungsi untuk membaca 2 buah blok data masukan 32 bit dan penyimpananya sebagai blok data masukan 64 bit yang akan dienkripsi atau didekripsi.
Blok poert data-out
Blok ini berfungsi untuk mengeluarkan blok data keluaran 64 bit yang merupakan hasil enkripsi atau dekripsi engan cara membagi menjadi 2 buah ok data keluaran 32 bit.
Blok poert kunci-n
Blok ini berfungsi untuk membaca 4 buah blok kunci 32 bit dan menyimpanya sebagai blok kunci 128 bit.
Blok mode operasi
Blok ini berfungsi untuk menentukan mode operasi yang digunakan paa prses ekripsi dan dekripsi.
Blok kontrol
Blok ini berfungsi untuk mengontrol operasi antara blok fungsional yang menyusun sebuah blok besar seperti sinkronisasi transfer data antar blok.
 
 

Kamis, 07 April 2016

Kriptografi AES

Kriptografi AES

Advanced Encryption Standard (AES) merupakan algoritma cryptographic yang dapat digunkan untuk mengamakan data. Algoritma AES adalah blok chipertext simetrik yang dapat mengenkripsi (encipher) dan dekripsi (decipher) infoermasi. Enkripsi merubah data yang tidak dapat lagi dibaca disebut ciphertext; sebaliknya dekripsi adalah merubah ciphertext data menjadi bentuk semula yang kita kenal sebagai plaintext. Algoritma AES is mengunkan kunci kriptografi 128, 192, dan 256 bits untuk mengenkrip dan dekrip data pada blok 128 bits.

AES (Advanced Encryption Standard) adalah lanjutan dari algoritma enkripsi standar DES (Data Encryption Standard) yang masa berlakunya dianggap telah usai karena faktor keamanan. Kecepatan komputer yang sangat pesat dianggap sangat membahayakan DES, sehingga pada tanggal 2 Maret tahun 2001 ditetapkanlah algoritma baru Rijndael sebagai AES. 

Kriteria pemilihan AES didasarkan pada 3 kriteria utama yaitu : keamanan, harga, dan karakteristik algoritma beserta implementasinya. Keamanan merupakan faktor terpenting dalam evaluasi (minimal seaman triple DES), yang meliputi ketahanan terhadap semua analisis sandi yang telah diketahui dan diharapkan dapat menghadapi analisis sandi yang belum diketahui. Di samping itu, AES juga harus dapat digunakan secara bebas tanpa harus membayar royalti, dan juga murah untuk diimplementasikan pada smart card yang memiliki ukuran memori kecil. AES juga harus efisien dan cepat (minimal secepat Triple DES) dijalankan dalam berbagai mesin 8 bit hingga 64 bit, dan berbagai perangkat lunak. DES menggunakan stuktur Feistel yang memiliki kelebihan bahwa struktur enkripsi dan dekripsinya sama, meskipun menggunakan fungsi F yang tidak invertibel. Kelemahan Feistel yang utama adalah bahwa pada setiap ronde, hanya setengah data yang diolah. Sedangkan AES menggunakan struktur SPN (Substitution Permutation Network) yang memiliki derajat paralelisme yang lebih besar, sehingga diharapkan lebih cepat dari pada Feistel.

Metode Algoritma AES

Algoritma kriptografi bernama Rijndael yang didesain oleh oleh Vincent Rijmen dan John Daemen asal Belgia keluar sebagai pemenang kontes algoritma kriptografi pengganti DES yang diadakan oleh NIST (National Institutes of Standards and Technology) milik pemerintah Amerika Serikat pada 26 November 2001. Algoritma Rijndael inilah yang kemudian dikenal dengan Advanced Encryption Standard (AES). Setelah mengalami beberapa proses standardisasi oleh NIST, Rijndael kemudian diadopsi menjadi standard algoritma kriptografi secara resmi pada 22 Mei 2002. Pada 2006, AES merupakan salah satu algoritma terpopuler yang digunakan dalam kriptografi kunci simetrik.

AES ini merupakan algoritma block cipher dengan menggunakan sistem permutasi dan substitusi (P-Box dan S-Box) bukan dengan jaringan Feistel sebagaiman block cipher pada umumnya. Jenis AES terbagi 3, yaitu :

1.AES-128
2.AES-192
3.AES-256

Pengelompokkan jenis AES ini adalah berdasarkan panjang kunci yang digunakan. Angka-angka di belakang kata AES menggambarkan panjang kunci yang digunakan pada tipa-tiap AES. Selain itu, hal yang membedakan dari masing-masing AES ini adalah banyaknya round yang dipakai. AES-128 menggunakan 10 round, AES-192 sebanyak 12 round, dan AES-256 sebanyak 14 round.

AES memiliki ukuran block yang tetap sepanjang 128 bit dan ukuran kunci sepanjang 128, 192, atau 256 bit. Tidak seperti Rijndael yang block dan kuncinya dapat berukuran kelipatan 32 bit dengan ukuran minimum 128 bit dan maksimum 256 bit. Berdasarkan ukuran block yang tetap, AES bekerja pada matriks berukuran 4x4 di mana tiap-tiap sel matriks terdiri atas 1 byte (8 bit). Sedangkan Rijndael sendiri dapat mempunyai ukuran matriks yang lebih dari itu dengan menambahkan kolom sebanyak yang diperlukan. Blok chiper tersebut dalam pembahasan ini akan diasumsikan sebagai sebuah kotak. Setiap plainteks akan dikonversikan terlebih dahulu ke dalam blok-blok tersebut dalam bentuk heksadesimal. Barulah kemudian blok itu akan diproses dengan metode yang akan dijelaskan.

Pemrosesan enkripsi AES

Implementasi Advanced Encryption Standard

AES atau algoritma Rijndael sebagai salah satu algoritma yang penting tentu memiliki berbagai kegunaan yang sudah diaplikasikan atau diimplementasikan di kehidupan sehari-hari yang tentu saja membutuhkan suatu perlindungan atau penyembunyian informasi di dalam prosesnya.

Salah satu contoh penggunaan AES adalah pada kompresi 7-Zip. Salah satu proses di dalam 7-Zip adalah mengenkripsi isi dari data dengan menggunakan metode AES-256. Yang kuncinya dihasilkan melalui fungsi Hash. Perpaduan ini membuat suatu informasi yang terlindungi dan tidak mudah rusak terutama oleh virus yang merupakan salah satu musuh besar dalam dunia komputer dan informasi karena sifatnya adalah merusak sebuah data.

Hal yang serupa digunakan pada WinZip sebagai salah satu perangkat lunak yang digunakan untuk melakukan kompresi. Tapi prinsip kompresi pun tidak sama dengan prinsip enkripsi. Karena kompresi adalah mengecilkan ukuran suatu data, biasanya digunakan kode Huffman dalam melakukan hal tersebut. Contoh penggunaan lain adalah pada perangkat lunak DiskCryptor yang kegunaannya adalah mengenkripsi keseluruhan isi disk/partisi pada sebuah komputer. Metode enkripsi yang ditawarkan adalah menggunakan AES-256, Twofish, atau Serpent.






Sabtu, 02 April 2016

Kriptografi DES

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

Panjang Kunci dan Ukuran Blok DES

Algoritma DES dikembangkan di IBM dibawah kepemimpinan W.L. Tuchman pada tahun 1972. Algoritma ini didasarkan pada algoritma Lucifer yang dibuat oleh Horst Feistel. Algoritma ini telah disetujui oleh National Bureau of Standard (NBS) setelah penilaian kekuatannya oleh National Security Agency (NSA) Amerika Serikat. DES termasuk ke dalam kriptografi kunci-simetri dan tergolong jenis cipher blok. DES beroperasi pada ukuran blok 64 bit. Panjang kunci ekternal = 64 bit (sesuai ukuran blok), tetapi hanya 56 bit yang dipakai (8 bit paritas tidak digunakan). Setiap blok (plainteks atau cipherteks) dienkripsi dalam 16 putaran. Setiap putaran menggunakan kunci internal berbeda. Kunci internal (56-bit) dibangkitkan dari kunci eksternal.

Skema Global Algoritma DES


Metode DES

DES termasuk ke dalam sistem kriptografi simetri dan tergolong jenis cipher blok. DES dirancang untuk melakukan enchiper dan dechiper data yang berisi 56 bit dibawah kendali 56 bit kunci internal atau upakunci. Dalam melakukan dechiper harus dilakukan dengan menggunakan kunci yang sama dengan saat proses enchiper tetapi sat melakukan dechiper pemberian halaman berubah sehingga proses dechiper merupakan kebalikan dari proses enchiper. Sejumlah data yang akan di enchiper disebut sebagai permutasi awal atau initial permutation (IP). Komputasi key – dependent didefinisikan sebagai fungsi f sebgai fungsi chipper dan function KS sebagai key schedule. Deskripsi dari komputasi diberikan pertama, bersama dengan detail bagaimana algoritma digunakan dalam proses enchiper. Selanjutnya, penggunaan algoritma untuk proses dechiper dideskripsikan. Pada akhirnya, sebuah definisi chipper fungsi f diberikan dalam bentuk fungsi primitive yang disebut fungsi seleksi Si dan fungsi permutasi P.

Skema Global DES 

Pada awalnya, blok plainteks dipermutasi dengan matriks permutasi awal (initial permutation atau IP). Hasil dari permutasi awal tersebutkemudian di enchiper sebanyak 16 kali atau 16 putaran. Setiap putarannya menggunakan kunci internal yang berbeda. Hasil dari proses enchiper kembali dipermutasi dengan matrikspermutasi balikan (invers initial permutation atau IP-1 ) menjadi blok cipherteks.
Dalam proses enchiper, blok plainteks terbagi menjadi dua bagian yaitu bagian kiri (L) dan bagian kanan (R), yang masing masing memiliki panjang 32 bit. Pada setiap putaran i, blok R merupakan masukan untuk fungsi transformasi fungsi f. Pada fungsi f, blok R dikombinasikan dengan kunci internal Ki. Keluaran dari fungsi ini di XOR kan dengan blok L yang langsung diambil dari blok R sebelumnya. Ini merupakan 1 putaran DES.

Mode DES 

- DES dapat dioperasikan dengan mode ECB, CBC, OFB, dan CFB. Namun karena kesederhanaannya, mode ECB lebih sering digunakan pada paket program komersil meskipun sangat rentan terhadap serangan.
- Mode CBC lebih kompleks daripada EBC namun memberikan tingkat keamanan yang lebih bagus daripada mode EBC. Mode CBC hanya kadang-kadang saja digunakan.
-  DES sudah diimplementasikan dalam bentuk perangkat keras.
- Dalam bentuk perangkat keras, DES diimplementasikan di dalam chip. Setiap detik chip ini dapat mengenkripsikan 16,8 juta blok (atau 1 gigabit per detik).
- Implementasi DES ke dalam perangkat lunak dapat melakukan enkripsi 32.000 blok per detik (pada komputer mainframe IBM 3090).

Keamanan DES 

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