Minggu, 27 Maret 2016

Cryptography : International Data Encryption Algorithm (IDEA)

Kriptografi IDEA (International Data Encryption Algorithm) diperkenalkan pertama kali tahun 1991 oleh Xuejia Lai dan James L Massey. Algoritma ini dimaksudkan sebagai pengganti DES(Data Encryption Standard). IDEA adalah revisi minor cipher yang lebih awal, yakni PES, dan pada awalnya disebut IPES
(Improved PES). IDEA didesain di bawah kontrak Hasler Foundation. Sandi rahasia ini dipatenkan di \ banyak negara tapi dapat digunakan secara gratis untuk penggunaan yang tidak komersial. Nama “IDEA” juga dipatenkan dan hak patennya berakhir tahun 2011. Lisensi dari IDEA dipegang oleh MediaCrypt. IDEA digunakan di Pretty Good Privacy (PGP) v2.0 dan sebagai algoritma opsional dalam OpenPGP, Netscape’s Secure Socket Layer (SSL), dan Secure Hypertext transfer Protocol (SHTTP).

IDEA merupakan algoritma simetris yang beroperasi pada sebuah blok pesan terbuka 64bit, menggunakan kunci yang sama 128bit untuk proses enkripsi dan dekripsi. Keluaran dari algoritma ini adalah blok pesan terenkripsi 64bit. Proses dekripsi menggunakan blok penyandi (algoritma) yang sama dengan proses enkripsi dimana kunci dekripsinya diturunkan dari kunci enkripsi. IDEA menggunakan proses iterasi yang terdiri dari 8 putaran dan 1 transformasi keluaran pada putaran ke8,5.

Algoritma IDEA ini menggunakan 3 operasi aljabar utama, yakni : Xor, operasi penjmlahan modulo 2 16 dan operasi perkalian modulo (2 16 + 1). Operasi ini semuanya dilakukan pada subblok 16bit. IDEA mendapatkan keamanannya dari operasi dari grup yang berbeda – penambahan dan penjumlahan modular serta exclusive or dari bit—yang secara aljabar tidak cocok dalam beberapa pengertian.


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, yang disimbolkan dengan tanda 
  • Penjumlahan integer modulo (216 + 1) dua sub-blok 16-bit , dimana edua sub-blok itu dianggap sebagai representasi biner dari integer biasa, yang disimbolkan
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 , yang disimbolkan dengan tanda . 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.
             
      3.3    Proses Dekripsi IDEA
                     Proses dekripsi menggunakan algoritma yang sama dengan proses enkripsi tatapi 52 buah sub-blok kunci yang digunakan masing-masing merupakan hasil turunan 52 buah sub-blok kunci enkripsi. Tabel sub-blok kunci dekripsi yang diturunkan dari sub-blok kunci enkripsi dapat dilihat pada tabel berikut : Sub- blok Kunci Enkripsi 

Putaran
Ke-1
Z11 Z21 Z31 Z41 Z51 Z61
Putaran
Ke-2
Z12 Z22 Z32 Z42 Z52 Z62
Putaran
Ke-3
Z13 Z23 Z33 Z43 Z53 Z63
Putaran
Ke-4
Z14 Z24 Z34 Z44 Z54 Z64
Putaran
Ke-5
Z15 Z25 Z35 Z45 Z55 Z65
Putaran
Ke-6
Z16 Z26 Z36 Z46 Z56 Z66
Putaran
Ke-7
Z17 Z27 Z37 Z47 Z57 Z67
Putaran
Ke-8
Z18 Z28 Z38 Z48 Z58 Z68
Trnsformasi
output
Z19 Z29 Z39 Z49

Tabel sub-blok kunci Dekripsi yang diturunkan
Dari sub-blok kunci enkripsi

Sub-blok kunci dekripsi
Putaran
Ke-1
(Z19)-1 –Z29 –Z39 (Z49)-1
Z58 Z68
Putaran
Ke-2
(Z18)-1 –Z38 –Z28 (Z48)-1
Z57 Z67
Putaran
Ke-3
(Z17)-1 –Z37 –Z27 (Z47)-1
Z56 Z66
Putaran
Ke-4
(Z16)-1 –Z36 –Z26 (Z46)-1
Z55 Z65
Putaran
Ke-5
(Z15)-1 –Z35 –Z25 (Z45)-1
Z54 Z64
Putaran
Ke-6
(Z14)-1 –Z34 –Z24 (Z44)-1
Z53 Z63
Putaran
Ke-7
(Z13)-1 –Z33 –Z23 (Z43)-1
Z52 Z62
Putaran
Ke-8
(Z12)-1 –Z32 –Z22 (Z42)-1
Z51 Z61
Trnsformasi
output
(Z11)-1 –Z21 –Z31 (Z41)-1

                  Keterangan :
                      Z-1 merupakan invers perkalian modulo 216+1 dari Z, dimana Z Z-1 = 1
                      Z merupakan invers penjumlahan modulo 216 dri Z, dimana Z Z-1 = 0

      3.4    Pembentukan sub-kunci
                     Sebanak 52 sub-blok kunci 16-bit untuk proses enkripsi diperolah dari sebuah kunci 128-bit ilihan pemakai. Blok kunci 128-bit dipartisi menjadi 8 sub-blok kunci 16-bit yang lansung dipakai sebagai 8 sub-blok kunci pertama. Kemudian blok kunci 128-bit dirotasi dari kiri 25 poisi untk dipartisi lagi menjad 8 sub-blok kunci 16-bit berikutnya. Proses rotasi dan pertisi itu diulangi lagi smpai diperoleh 52 sub-blok kunci 16-bit, dengan urutan sebagai berikut :
                     Z11 Z21 Z31 Z41 Z51 Z61
                     Z12 Z22 Z32 Z42 Z52 Z62
                     Z13 Z23 Z33 Z43 Z53 Z63
                     Z14 Z24 Z34 Z44 Z54 Z64
                     Z15 Z25 Z35 Z45 Z55 Z65
                     Z16 Z26 Z36 Z46 Z56 Z66
                     Z17 Z27 Z37 Z47 Z57 Z67
                     Z18 Z28 Z38 Z48 Z58 Z68
                     Z19 Z29 Z39 Z49
      3.5    Arsitektur umum Processor Kroptografi IDEA
                     Pada gambar berikut diperlihatkan arsitektur atau penggambaran umum sebuah processor yang mengolah sistem keamanan data dengan menggunakan algoritma IDEA :
                     Blok Penyandi IDEABlok Kontrol UtamaBlokPembangkitSubkunciBlok Port Kunci-InBlok Port Data-InBlok Port Data-OutBlok Mode OperasiPesan Terbuka 32-bitPesan Rahasia 32-bitKunci 32-bitKontrolLuar`
               Keterangan :
                     1.      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).
                     2.      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.
                     3.      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.
                     4.      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.
                     5.      Blok poert kunci-n
                Blok ini berfungsi untuk membaca 4 buah blok kunci 32 bit dan menyimpanya sebagai blok kunci 128 bit.
      6.      Blok mode operasi
               Blo k ini berfungsi untuk menentukan mode operasi yang digunakan paa prses ekripsi dan dekripsi.
                     7.      Blok kontrol
               Blok ini berfungsi untuk mengontrol operasi antara blok fungsional yang menyusun sebuah blok besar seperti sinkronisasi transfer data antar blok.

Sumber & Referensi : 

Cryptography : Data Encryption Standard (DES) Algorithm

DES (Data Encryption Standard) adalah algoritma cipher blok yang populer karena dijadikan standard algoritma enkripsi kunci-simetri, meskipun saat ini standard tersebut telah digantikan dengan algoritma yang baru, AES, karena DES sudah dianggap tidak aman lagi. Sebenarnya DES adalah nama standard enkripsi simetri, nama algoritma enkripsinya sendiri adalah DEA (Data Encryption Algorithm), namun nama DES lebih populer daripada DEA. 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 sistem kriptografi simetri dan tergolong jenis cipher blok. DES beroperasi pada ukuran blok 64 bit. DES mengenkripsikan 64 bit plainteks menjadi 64 bit cipherteks dengan menggunakan 56 bit kunci internal (internal key) atau upa-kunci (subkey). Kunci internal dibangkitkan dari kunci eksternal (external key) yang panjangnya 64 bit.


Sejarah DES

Asal usul DES kembali ke awal 1970-an. Pada tahun 1972, setelah menyimpulkan sebuah kajian mengenai pemerintah AS kebutuhan keamanan komputer, badan standar AS NBS (Biro Standar Nasional) – sekarang bernama NIST (Lembaga Nasional Standar dan Teknologi) – mengidentifikasi kebutuhan pemerintah secara luas untuk enkripsi standar unclassified, informasi sensitif. Oleh karena itu, pada tanggal 15 Mei 1973, setelah berkonsultasi dengan NSA, NBS diminta proposal untuk sebuah sandi yang akan memenuhi kriteria desain yang ketat. Tak satu pun dari pengiriman Namun, ternyata cocok. Permintaan kedua dikeluarkan pada tanggal 27 Agustus 1974. Kali ini, IBM mengajukan calon yang dianggap dapat diterima – sebuah sandi yang berkembang selama periode 1973-1974 didasarkan pada algoritma sebelumnya, Horst Feistel’s Lucifer sandi. Tim di IBM yang terlibat dalam desain dan analisis cipher termasuk Feistel, Walter Tuchman, Don Coppersmith, Alan Konheim, Carl Meyer, Mike Matyas, Roy Adler, Edna Grossman, Bill Notz, Lynn Smith, dan Bryant Tuckerman.


Penjelasan

Untuk singkatnya, deskripsi berikut menghilangkan transformasi yang tepat dan permutasi yang menetapkan algoritma; untuk referensi, rincian dapat ditemukan dalam bahan tambahan DES.


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.

Seperti cipher blok lain, DES dengan sendirinya bukanlah sarana yang aman untuk enkripsi dimana bukan digunakan dalam modus operasi. FIPS-81 menetapkan beberapa mode untuk digunakan dengan DES.
Keseluruhan struktur Feistel DES


Feisel Function





Kunci-jadwal DES


Serangan brute force – Brute force attack

Untuk setiap sandi, metode yang paling dasar dari serangan brute force – mencoba setiap kemungkinan kunci pada gilirannya. Panjang kunci menentukan jumlah kemungkinan kunci, dan karenanya kelayakan pendekatan ini. Untuk DES, pertanyaan yang diajukan mengenai kecukupan ukuran kunci dari awal, bahkan sebelum itu diadopsi sebagai standar, dan itu adalah ukuran kunci kecil, daripada teoretis kriptoanalisis, yang mendiktekan kebutuhan algoritma pengganti. Sebagai hasil dari diskusi yang melibatkan konsultan eksternal termasuk NSA, ukuran kunci berkurang dari 128 bit menjadi 56 bit untuk ukuran satu chip EFF’s US $ 250.000 DES mesin retak adat yang terdapat 1.856 keripik dan kasar bisa memaksa seorang DES kunci dalam hitungan hari – foto menunjukkan sebuah papan sirkuit DES Cracker dilengkapi dengan beberapa Deep Crack chip.

Dalam dunia akademis, berbagai proposal untuk cracking DES-mesin yang canggih. Pada tahun 1977, Diffie dan Hellman mengusulkan suatu mesin seharga sekitar US $ 20 juta yang dapat menemukan kunci DES dalam satu hari. Pada 1993, Wiener telah mengusulkan kunci mesin pencari seharga US $ 1 juta yang akan menemukan kunci dalam 7 jam. Namun, tak satu pun dari proposal awal ini pernah dilaksanakan-atau, paling tidak, tidak ada implementasi yang umum diakui. Kerentanan DES praktis ditunjukkan di akhir 1990-an. Pada tahun 1997, RSA Security mensponsori serangkaian kontes, menawarkan hadiah $ 10.000 untuk tim pertama yang memecahkan pesan yang dienkripsi dengan DES untuk kontes. Kontes yang dimenangkan oleh DESCHALL Project, dipimpin oleh Rocke Verser, Matt Curtin, dan Justin Dolske, menggunakan siklus siaga ribuan komputer di seluruh Internet. Kelayakan cracking DES dengan cepat telah didemonstrasikan di tahun 1998, ketika sebuah custom DES-kerupuk dibangun oleh Electronic Frontier Foundation (EFF), sebuah kelompok hak-hak sipil dunia maya, pada biaya sekitar US $ 250.000 (lihat EFF DES cracker). Motivasi mereka adalah untuk menunjukkan bahwa DES ini dipecahkan dalam praktek maupun dalam teori: “Ada banyak orang yang tidak percaya akan kebenaran sampai mereka dapat melihat dengan mata mereka sendiri. Showing mereka sebuah mesin fisik yang dapat memecahkan DES dalam beberapa hari adalah satu-satunya cara untuk meyakinkan beberapa orang bahwa mereka benar-benar tidak dapat mempercayai mereka untuk keamanan DES. ” Mesin dipaksa brute kunci dalam sedikit lebih dari 2 hari pencarian.

Satu-satunya peretas DES yg dikonfirmasi adalah mesin Copacobana dibangun pada 2006 oleh tim dari Universitas Bochum dan Kiel, baik di Jerman. Tidak seperti mesin EFF, Copacobana terdiri dari tersedia secara komersial, reconfigurable sirkuit terpadu. 120 dari Field-programmable ini gerbang array (FPGAs) dari Xilinx jenis Spartan3-1000 dijalankan secara paralel. Mereka dikelompokkan dalam 20 DIMM modul, masing-masing berisi 6 FPGAs. Penggunaan hardware reconfigurable membuat mesin yang berlaku untuk tugas-tugas memecahkan kode lain juga. Salah satu aspek yang lebih menarik dari Copacobana adalah faktor biaya. Satu mesin dapat dibangun untuk sekitar $ 10,000. Penurunan biaya oleh kira-kira faktor 25 di atas mesin EFF adalah sebuah contoh yang mengesankan bagi perbaikan terus-menerus perangkat keras digital. Menyesuaikan inflasi selama 8 tahun menghasilkan peningkatan yang lebih tinggi sekitar 30x. Sejak 2007, SciEngines GmbH, perusahaan spin-off dari dua mitra proyek dari Copacobana telah ditingkatkan dan dikembangkan Copacobana pengganti. Pada tahun 2008 mereka Copacobana RIVYERA mengurangi waktu untuk istirahat DES kurang dari satu hari, menggunakan enkripsi 128 Spartan-3 5000′s.



Sumber & Referennsi : 

http://ilmu-kriptografi.blogspot.co.id/2009/05/algoritma-des-data-encryption-standart.html

http://sigitprabowoo.blogspot.co.id/2013/01/data-encryption-standard-des-adalah.html