Minggu, 27 Maret 2016

Algoritma Enkripsi DES, IDEA dan AES

ALGORITMA  DES
DES (Data Encryption Standard) pertama dijadikan standard FIPS  (Federal Information Processing Standards) oleh NIST (National Institute of Standards and Technology) tahun 1977 untuk digunakan oleh semua instansi pemerintahan Amerika Serikat, dan semua kontraktor dan penyedia jasa untuk pemerintahan Amerika Serikat. DES dirancang oleh tim IBM yang dipimpin Horst Feistel dengan bantuan dari NSA (National Security Agency). DES adalah teknik enkripsi pertama (selain one-time pad) yang tahan terhadap linear cryptanalysis dan di®erential cryptanalysis.
DES menggunakan kunci sebesar 64 bit untuk mengenkripsi blok juga sebe- sar 64 bit. Akan tetapi karena 8 bit dari kunci digunakan sebagai parity, kunci efektif hanya 56 bit. Gambar 7.1 secara garis besar menunjukkan proses en-kripsi DES. Dalam DES, penomoran bit adalah dari kiri kekanan dengan bit 1 menjadi most signi¯cant bit, jadi untuk 64 bit, bit 1 mempunyai nilai 263.
Permutasi menggunakan initial permutation dilakukan terhadap input sebesar 64 bit. Hasil permutasi dibagi menjadi dua blok L0 dan R0, masing-masing sebesar 32 bit, dimana L0 merupakan 32 bit pertama dari hasil permutasi dan R0 merupakan 32 bit sisanya (bit 33 hasil permutasi menjadi bit 1 R0). Sebanyak 16 putaran enkripsi dilakukan menggunakan fungsi cipher f dan setiap putaran menggunakan kunci 48 bit yang berbeda dan dibuat berdasarkan kunci DES. Efeknya adalah setiap blok secara bergantian dienkripsi, masing-masing sebanyak 8 kali.



ALGORITMA
 IDEA
IDEA merupakan block cipher (cipher blok), yang beroperasi pada blok plaintext 64 bit.
Panjang kuncinya 128 bit. Algoritma yang sama digunakan untuk proses enkripsi dan dekripsi.
Sebagaimana algoritma enkripsi yang lain, IDEA menggunakan confusion dan diffusion, berbeda dengan DES yang menggunakan permutasi dan substitusi untuk confusion dan diffusionIDEA menggunakan operasi aljabar yang tidak kompatibel sebagai berikut,
a.              XOR.
b.             Penambahan modulo 216.
c.              Perkalian modulo 216 + 1 (operasi ini menggantikan kotak-S atau S-Box).
Algoritma IDEA menggunakan perkalian modulo 216 + 1 dengan pertimbangan berikut ini :
Perkalian dengan nol selalu menghasilkan nol dan tidak memiliki inversi. Perkalian modulo n juga tidak memiliki inversi jika angka yang dikalikan tidak relatif prima terhadap n. Sementara algoritma kriptografi memerlukan operasi yang memiliki inversi. Angka 65537 (216 + 1) adalah sebuah bilangan prima. Oleh karena itu, operasi perkalian modulo (216 + 1) pada algoritma IDEA memiliki inversi. Jika kita membentuk suatu tabel perkalian untuk bilanganbilangan mulai dari 1 sampai 65536, maka setiap baris dan kolom hanya berisi setiap bilangan satu kali saja.
Dalam IDEA, untuk operasi perkalian, bilangan 16 bit yang terdiri dari nol semua dianggap sebagai bilangan 65536, sedangkan bilangan lainnya tetap sesuai dengan bilangan tak bertanda yang diwakilinya. Algoritma IDEA ini dapat dibagi menjadi tiga bagian besar, yaitu algoritma pembentukan kunci, enkripsi dan dekripsi.

a.  Pembentukan Kunci
Proses pembentukan kunci dapat dilihat pada gambar
b.  Enkripsi


Proses enkripsi algoritma IDEA adalah sebagai berikut :
Pertama – tama, plaintext 64 bit dibagi menjadi 4 buah sub blok dengan panjang 16 bit, yaitu X1, X2, X3, X4. Empat sub blok ini menjadi masukan bagi iterasi tahap pertama algoritma. Total terdapat 8 iterasi. Pada setiap iterasi, 4 sub blok di-XOR-kan, ditambahkan, dikalikan dengan yang lain dan dengan 6 buah subkey 16 bit. Diantara iterasi sub blok kedua dan ketiga saling dipertukarkan. Akhirnya 4 buah sub blok dikombinasikan dengan 4 subkey dalam transformasi output. Pada setiap tahapan, urutan berikut ini dikerjakan :
1)           Kalikan X1 dengan K1 mod (216 + 1).
2)           Tambahkan X2 dengan K2 mod 216.
3)           Tambahkan X3 dengan K3 mod 216.
4)           Kalikan X4 dengan K4  mod (216 + 1).
5)           XOR hasil dari step 1 dan 3.
6)           XOR hasil dari step 2 dan 4.
7)           Kalikan hasil dari step 5 dengan K5 mod (216 + 1).
8)           Tambahkan hasil dari step 6 dan 7 mod 216.
9)           Kalikan hasil dari step 8 dengan K6 mod (216 + 1).
10)       Tambahkan hasil dari step 7 dan 9.
11)       XOR hasil dari step 1 dan 9.
12)       XOR hasil dari step 3 dan 9.
13)       XOR hasil dari step 2 dan 10.
14)       XOR hasil dari step 4 dan 10.
Output dari setiap round adalah empat sub blok yang dihasilkan pada langkah 11, 12, 13 dan 14. Sub blok 12 dan 13 di-swap (kecuali untuk putaran terakhir) sehingga input dari putaran berikutnya adalah hasil kombinasi dari langkah 11 12 13 14.
Setelah 8 putaran, akan dilakukan tranformasi output berikut,
1)              Kalikan X1 dengan subkey K1 mod (216 + 1)
2)              Tambahkan X2 dengan subkey K2 mod 216
3)              Tambahkan X3 dengan subkey K3 mod 216
4)              Kalikan X4 dengan subkey K4 mod (216 + 1) Proses enkripsi algoritma IDEA dapat dilihat pada gambar 4.
c.  Dekripsi
Proses dekripsi sama persis dengan proses enkripsi. Perbedaannya hanya terletak pada aturan dari subkey-nya. Urutan subkey terbalik dengan proses enkripsi dan subkey-nya di-inverse-kan.
Subkey pada langkah transformasi output pada  proses enkripsi di-inverse-kan dan digunakan sebagai subkey pada putaran 1 pada proses dekripsi. Subkey pada putaran 8 di-inverse-kan dan digunakan sebagai subkey pada putaran 1 dan 2 pada proses dekripsi


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.
                            Berikut merupakan tabel diagramnya:



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.
·         Garis besar Algoritma Rijndael yang beroperasi pada blok  128-bit dengan kunci 128bit adalah sebagai berikut (di luar proses pembangkitan round key):
§ AddRoundKey: melakukan XOR antara state awal (plainteks) dengan cipher key. Tahap ini disebut juga initial round.
§ Putaran sebanyak Nr – 1 kali. Proses yang dilakukan pada setiap putaran adalah: o   SubBytes: substitusi byte dengan menggunakan tabel substitusi (S-box).
o         ShiftRows: pergeseran baris-baris array state secara wrapping. o   MixColumns: mengacak data di masing-masing kolom array state. o   AddRoundKey: melakukan XOR antara state sekarang round key.
§ Final round: proses untuk putaran terakhir:
o         SubBytes o   ShiftRows o   AddRoundKey
GAMBAR DIAGRAM AES



·         Selama kalkulasi plainteks menjadi cipherteks, status sekarang dari data disimpan di dalam array of bytes dua dimensi, state, yang berukuran NROWS ´ NCOLS.
·         Untuk blok data 128-bit, ukuran state adalah 4 ´ 4.
·         Elemen array state diacu sebagai S[r,c], 0 £ r < 4 dan 0 £ c < Nb (Nb adalah panjang blok dibagi 32.
·         Pada AES-128, Nb = 128/32 = 4)
Contoh gambarannya



  Contoh: (elemen state dan kunci dalam notasi HEX)




Minggu, 06 Maret 2016

Pekerjaan Yang Diinginkan Setelah Tamat Kuliah

Pekerjaan Yang Diinginkan Setelah Tamat Kuliah



Assalamu'alaikum Wr Wb..


Apakabar teman? Berbicara tentang pekerjaan yang diinginkan nanti setelah tamat kuliah belum ada gambaran pasti karna saya masih semester dua jadi belum terlalu dipikirkan. Tapi ada beberapa ada beberapa bidang pekerjaan yang diminati nanti setelah tamat kuliah.


1. System Administrator/Network Administrator
Review : Networking merupakan jaringan antar komputer yang menghubungkan satu komputer dengan jaringan lainnya. Semua perusahaan baik besar maupun kecil terhubung dengan jaringan komputer. Data-data perusahaan disimpan dan digunakan bersama melalui jaringan komputer. Seorang system administrator bertugas menjaga keamanan & kontinuitas jaringan sistem yang digunakan, termasuk hal-hal seperti mengeset komputer agar terkoneksi ke internet, mengeset e-mail server (misal: Outlook), FTP server, DNS server. Network administrator merupakan orang yang sering ditanyai bila terjadi troubleshooting dalam jaringan. Bidang pekerjaan  network administrator sangat diperlukan, mengingat semakin banyak instansi atau perusahaan yang menetapkan jaringan dalam sistem mereka.

Skill     : Memiliki pengetahuan dan pengalaman di bidang networking protocol seperti TCP/IP atau Apple Talk. Pengalaman menggunakan sistem keamanan seperti firewall, VPN, atau antivirus pun penting.
Gaji     : - Dalam Negeri = Rp 5-9 juta/bulan.
              - Luar Negeri = $ 21.34/jam


2. Database Administrator

Review : Seorang database administrator bertugas merancang dan membangun database dalam sebuah sistem, erekomendasikan solusi terbaik dalam implementasi database baik dalam hal software maupun hardware, memaintain database agar dapat berjalan dengan baik dan optimal.
Skill     :  Menguasai ERD, SQL dan desain database secara mendalam, menguasai berbagai teknik optimalisasi/tuning, backup dan maintain database, menguasai secara mendalam salah satu atau lebih RDBMS beserta tools yang ada, memahami tentang salah satu platform/bahasa pemprograman untuk mengakses database, menguasai teknologi server, storage, operating system yang berkaitan dengan implementasi database.
Gaji     : - Dalam Negeri = Rp 5-15 juta/bulan
               - Luar Negeri = $39,56/jam

3. Web engineer/Web Administrator
Review : Web Administrator adalah seseorang yang bertanggung jawab secara teknis terhadap operasional sebuah situs atau website khususnya server. Seseorang Web Administrator harus mengerti secara mendalam tentang sistem operasi yang di gunakan server, proses penginstalan, memahami jaringan LAN, WAN, keamanan data server, dan yang penting dia juga harus dapat mengatasi masalah Troubleshooting.
Skill : Menguasai Adobe Photoshop, Adobe Illustrator, Adobe Dreamweaver, menguasai Content Management System seperti Wordpress, Drupal, Joomla dan atau ecommerce seperti magento, Woocommerce, Presta Shop, dan lain-lain, menguasai pemrograman website dengan bahasa PHP, HTML, CSS dan Java Script. internet savvy.
Gaji : - Dalam Negeri = Rp 2-5 juta/bulan
          - Luar Negeri = $17,35/jam


itu beberapa bidang pekerjaan yang saya minati, mungkin nanti bisa tambah lagi yang lain tergantaung ketersediaan dan skillnya.
Wassalamu'alaikum..