enkripsi cipher block chaining dengan mikroprosessor mcs-51

6
Tugas Praktikum Mikroprosessor Enkripsi Cipher Block Chaining dengan Mikrokontroller Harindra Wisnu Pradhana (L2F004481) Chrisman H Manurung (L2F004465) Abstrak Komunikasi data akhir-akhir ini telah menjadi hal yang sering menjadi pokok pembicaraan di berbagai bidang. Kebutuhan akan pertukaran informasi yang semakin berkembang memaksa teknologi komunikasi data untuk berkembang pula. Perkembangan itu meliputi jalur transmisi data maupun data yang dikirimkan. Pada jalur komunikasi data, lebar bidang transmisi semakin diperluas sehingga data yang dikirimkan semakin banyak sebaliknya dengan rentang waktu yang semakin sedikit. Selain itu informasi dijaga keasliannya sepanjang jalur komunikasi data. Sedangkan pada data itu sendiri diberlakukan berbagai macam konversi bentuk, transformasi, serta diterapkan bermacam-macam algoritma untuk menjaga keutuhan data, memperbaiki format penampilan informasi, serta menjaga kerahasiaan data selama berada pada jalur komunikasi. Sistem pengamanan data agar tidak diketahui pihak luar disebut dengan enkripsi data. Enkripsi data sangat beragam disesuaikan dengan kebutuhan keamanan datanya. I. Pendahuluan Sistem pengiriman data belakangan ini menunjukkan perkembangan yang begitu pesat. Hal ini ditunjukkan dengan semakin  berkembangnya  teknologi informasi baik metode pengirimannya, maupun besarnya data yang dikirimkan. Pada  umumnya  data  dapat dipisahkan menjadi dua yaitu data analog dan data digital. Sebelum teknologi digital diciptakan, hanya ada data analog yang pada saat itu komunikasi dilakukan melalui saluran telepon berupa sinyal- sinyal suara maupun dimodulasi untuk dipancarkan melalui gelombang radio. Setelah teknologi digital ditemukan, data digital juga dilewatkan pada media yang sama. Kode yang digunakan berupa kode-kode morse yang merepresentasikan huruf-huruf yang dikirim secara beruntun sehingga membentuk kata-kata dan kalimat yang akan ditransmisikan. Pengiriman dilakukan secara beruntun karena keterbatasan bidang transmisi. Dengan perkembangan jaman, kode morse dirasa kurang memadai karena semakin berkembangnya data yang dikirim. Ada kalanya dokumen-dokumen yang perlu dikirim memuat karakter- karakter yang tidak terdapat pada alfabet. Maka dibuatlah standar penulisan karakter secara digital dengan kpde ASCII (American Standard Code for Information Interchange) yaitu standar kode digital sepanjang tujuh bit yang mencakup abjad baik huruf kecil maupun kapital, angka no hingga sembilan, dan karakter-karakter standar lainnya. Seiring perkembangan teknologi, karakter-karakter ASCII yang ada dirasa kurang memenuhi maka ditambahkan bit ke delapan pada kode Extended ASCII untuk menambahkan 128 karakter baru. Kode-kode digital inilah yang nantinya ditransmisikan pada jalur-jalur transmisi data. Penggunaan data digital sangat  diminati  karena  berbagai keunggulan dibanding data analog antara lain kemudahan pengolahan datanya, ketepatan perhitungan, pendeteksian galat dan perbaikan bit-bit yang salah yang hanya dimungkinkan pada format data analog. Namun disamping keunggulan- keunggulan tadi, data digital yang merupakan  bentuk  diskrit  dan terkuantisasi bukan berupa sinyal sebenarnya. Sehingga masalah kualitas sinyal berada di bawah data analog yang menampilkan sinyal sebenarnya. Namun tingginya sampling rate dan telitinya level kuantisasi  dapat  diatur  sehingga perbedaan kualitas ini tidak terasa bagi manusia. II. Konsep Enkripsi Data Perkembangan  transmisi  data memunculkan  keragu-raguan akan keamanan jalur transmisi. Jalur transmisi 

Upload: harindra-w-pradhana

Post on 20-Jun-2015

434 views

Category:

Documents


5 download

DESCRIPTION

Makalah mengenai sistem enkripsi data dengan metode Cipher Block Chaining melalui media serial dengan enkriptor dan dekriptor menggunakan mikroprosessor seri MCS-51

TRANSCRIPT

Page 1: Enkripsi Cipher Block Chaining dengan Mikroprosessor MCS-51

Tugas Praktikum MikroprosessorEnkripsi Cipher Block Chaining dengan Mikrokontroller

Harindra Wisnu Pradhana (L2F004481) Chrisman H Manurung (L2F004465)

Abstrak

Komunikasi data akhir­akhir ini telah menjadi hal yang sering menjadi pokok pembicaraan di  berbagai   bidang.   Kebutuhan   akan   pertukaran   informasi   yang   semakin   berkembang   memaksa  teknologi komunikasi data untuk berkembang pula. Perkembangan itu meliputi jalur transmisi data maupun data yang dikirimkan.

Pada jalur komunikasi  data,  lebar bidang transmisi semakin diperluas sehingga data yang  dikirimkan   semakin   banyak   sebaliknya   dengan   rentang   waktu   yang   semakin   sedikit.   Selain   itu  informasi  dijaga  keasliannya  sepanjang  jalur  komunikasi  data.  Sedangkan  pada data   itu   sendiri  diberlakukan  berbagai  macam konversi  bentuk,   transformasi,   serta  diterapkan bermacam­macam algoritma untuk menjaga keutuhan data, memperbaiki format penampilan informasi, serta menjaga kerahasiaan data selama berada pada jalur komunikasi.

Sistem   pengamanan   data   agar   tidak   diketahui   pihak   luar   disebut   dengan   enkripsi   data.  Enkripsi data sangat beragam disesuaikan dengan kebutuhan keamanan datanya.

I. PendahuluanSistem pengiriman data belakangan 

ini   menunjukkan   perkembangan   yang begitu pesat.  Hal ini ditunjukkan dengan semakin   berkembangnya   teknologi informasi   baik   metode   pengirimannya, maupun besarnya data yang dikirimkan.

Pada   umumnya   data   dapat dipisahkan menjadi dua yaitu data analog dan data digital. Sebelum teknologi digital diciptakan,   hanya   ada   data   analog   yang pada   saat   itu   komunikasi   dilakukan melalui   saluran   telepon   berupa   sinyal­sinyal   suara   maupun   dimodulasi   untuk dipancarkan melalui gelombang radio.

Setelah teknologi digital ditemukan, data  digital   juga  dilewatkan  pada  media yang sama. Kode yang digunakan berupa kode­kode morse yang merepresentasikan huruf­huruf yang dikirim secara beruntun sehingga   membentuk   kata­kata   dan kalimat   yang   akan   ditransmisikan. Pengiriman   dilakukan   secara   beruntun karena keterbatasan bidang transmisi.

Dengan perkembangan jaman, kode morse   dirasa   kurang   memadai   karena semakin   berkembangnya   data   yang dikirim. Ada kalanya dokumen­dokumen yang   perlu   dikirim   memuat   karakter­karakter yang tidak terdapat pada alfabet. Maka dibuatlah standar penulisan karakter secara   digital   dengan   kpde   ASCII (American Standard Code for Information Interchange)   yaitu   standar   kode   digital 

sepanjang tujuh bit yang mencakup abjad baik huruf kecil maupun kapital, angka no hingga   sembilan,   dan   karakter­karakter standar lainnya.

Seiring   perkembangan   teknologi, karakter­karakter  ASCII  yang ada dirasa kurang memenuhi maka ditambahkan bit ke   delapan   pada   kode   Extended   ASCII untuk menambahkan 128 karakter baru.

Kode­kode   digital   inilah   yang nantinya   ditransmisikan   pada   jalur­jalur transmisi   data.   Penggunaan   data   digital sangat   diminati   karena   berbagai keunggulan dibanding data analog antara lain   kemudahan   pengolahan   datanya, ketepatan perhitungan, pendeteksian galat dan   perbaikan   bit­bit   yang   salah   yang hanya   dimungkinkan   pada   format   data analog.   Namun   disamping   keunggulan­keunggulan   tadi,   data   digital   yang merupakan   bentuk   diskrit   dan terkuantisasi   bukan   berupa   sinyal sebenarnya.   Sehingga   masalah   kualitas sinyal berada di bawah data analog yang menampilkan   sinyal   sebenarnya.   Namun tingginya sampling rate dan telitinya level kuantisasi   dapat   diatur   sehingga perbedaan   kualitas   ini   tidak   terasa   bagi manusia.

II. Konsep Enkripsi DataPerkembangan   transmisi   data 

memunculkan   keragu­raguan  akan keamanan jalur transmisi. Jalur transmisi 

Page 2: Enkripsi Cipher Block Chaining dengan Mikroprosessor MCS-51

yang   cukup   panjang   memungkinkan orang   lain   menguping   saluran   ini   dan dimungkinkan   mengetahui   data   yang sedang dikirim.

Untuk   data   informasi   biasa, pengirim   maupun   penerima   yang sebenarnya mungkin tidak akan keberatan pertukaran   informasi   mereka   diketahui pihak  ketiga,  namun  untuk  hal­hal   yang cukup vital dan memerlukan kerahasiaan, bila informasi ini bocor ke pihak lain akan memicu   penyalahgunaan   yang   tentunya akan   merugikan   baik   pengirim   maupun penerima. Informasi­informasi rahasia ini dapat   berupa   dokumen­dokumen perusahaan,   catatan­catatan,   maupun password atau nomor kombinasi PIN.

Faktor   keamanan   ini   membuat praktisi   ilmu   komunikasi   data mengembangkan   metode­metode pengolahan   data   sedemikian   rupa sehingga   hanya   pengirim   dan   penerima yang   dapat   mengetahui   informasi   yang dibawa data tersebut. Maka diciptakanlah metode   pengolahan   data   yang   disebut enkripsi data.

Pada dasarnya proses enkripsi data adalah   proses   mengubah   bentuk   data dengan   algoritma   tertentu   tanpa menghilangkan  informasi  yang ada pada data tersebut.

III. Enkripsi   Data   Dengan CBC

Penggunaan   teknologi   digital   juga memudahkan   proses   enkripsi   data. Digitalisasi presentasi data menjadi bit­bit memunculkan berbagai macam algoritma enkripsi.   Bentuk   data   digital   masing­masing   byte   dapat   ditampilkan   dalam berbagai   bentuk.   Dapat   berupa hexadesimal,   desimal,   dan   biner.   Ketiga bentuk   tersebut   memungkinkan perhitungan­perhitungan   rumit   dilakukan sebagai  proses  enkripsi   data.  Mulai  dari perhitungan   operasi­operasi   matematis hingga   operasi   logika   dapat   dilakukan pada data digital.

Salah   satu   bentuk   enkripsi   data digital   adalah   dengan   metode   CBC (Cipher   Block   Chaining)   yaitu   enkripsi blok   berantai.   CBC   merupakan 

perkembangan   dari   kode   Cipher   Block yang   mengoperasikan   data   asli   dengan kata   kunci   tertentu.   Yang   menjadi   ciri khas kode ini adalah penggunaan operasi logika   XOR   pada   proses   enkripsi   dan dekripsinya.   Untuk   lebih   jelasnya   dapat dilihat   bagan   algoritma   Cipher   Block seperti gambar berikut.

Plaintext Ciphertext+

Key

Ciphertext Plaintext+

Key

Enkripsi

Dekripsi

Gambar 1 Proses Enkripsi dan dekripsi Pada Cipher Block

Seperti   pada   bagan   diatas,   proses enkripsi dan dekripsi menggunakan logika XOR antara data dan kata kunci. Logika XOR   memiliki   tabel   kebenaran   sebagai berikut.

Tabel 1 tabel kebenaran logika XORX Y X OR Y0 0 00 1 11 0 11 1 0

Kata   kunci   yang   digunakan   dapat memiliki   panjang   yang   bervariasi tergantung   keinginan   kita   namun   tidak boleh lebih panjang dari  data yang akan dienkripsi. Pesan yang cukup panjang M akan   dipisah­pisah   sesuai   panjang   kata kunci   menjadi   M1,M2   dan   seterusnya. Pemisahan ini untuk menyesuaikan logika XOR yang kedua inputnya sama panjang. Setelah   pesan   dipisah­pisah,   lalu dilakukan   proses   enkripsi   dan   hasilnya disusul kembali.

Misal   data   M=101100111011011 dienkripsi   dengan   kunci   110   maka   M akan   diubah   menjadi   M1=101   M2=100 

Page 3: Enkripsi Cipher Block Chaining dengan Mikroprosessor MCS-51

M3=111 M4=011 dan M5=011 lalu satu persatu   dioperasikan   dengan   kunci menggunakan operasi logika XOR.M1 101K                110   C1 011

M2 100K                110   C2 010

M3 111K                110   C3 001

M4 011K                110   C4 101

M5 011K                110   C5 101

Data C1 hingga C5 disusun kembali untuk   membentuk   ciphertext   yaitu C=011010001101101   dan   proses dekripsinya  kita   lakukan  hal   yang   sama pada ciphertext sebagai berikut.

C1 011K                110   M1 101

C2 010K                110   M2 100

C3 001K                110   M3 111

C4 101K                110   M4 011

C5 101K                110   M5 011

Dan   setelah   disusun   kembali didapat   pesan   aslinya M=101100111011011

Enkripsi   dengan   CBC   merupakan pengembangan dari enkripsi Cipher Block yaitu   dengan   melakukan   rantai   proses antar masing­masing pecahaan M. Dalam hal   ini   untuk   memudahkan   prosesnya, kunci ditetapkan sepanjang satu byte atau delapan   bit   karena   data   dengan   kode ASCII   memiliki   panjang   delapan   bit. Bagan   enkripsinya   dapat   dilihat   pada gambar berikut.

M1

C1

+

+

M1

+

+

IV

K1

K1

IV

M2

C2

+

+

M2

+

+

K2

K2

M3

C3

+

+

M3

+

+

K3

K3

Mn

Cn

+

+

Mn

+

+

Kn

Kn

Cn­1

Cn­1

Gambar 2 Bagan enkripsi CBC

Seperti  nampak pada bagan diatas, setiap   proses   enkripsi   dan   dekripsi menggunakan dua kata kunci. Misal pada langkah pertama, M1 dioperasikan dengan IV   (initial   vector)   dan   K1.   Untuk menghasilkan   C1.   Untuk   langkah selanjutnya  Mn dioperasikan  dengan Kn yang   merupakan   hasil   pengolahan   Kn­1 dan Cn­1. karena adanya elemen langkah sebelumnya   ke   langkah   perhitungan berikutnya  maka  disebut   proses  berantai (chaining).  Kunci  Kn dapat berupa deret bilangan   maupun   kunci   yang   sama   di setiap   n   tergantung   keinginan   pengguna kode ini.

Misal   kita   contohkan   suatu   kasus data   “Wisnu”   hendak   dienkripsi   dengan metode CBC. Menggunakan initial vector “X” dan Kn=Kn­1+2Fh dengan K1=A5hPertama kita tetapkan dahulu penggunaan sistem   biner   atau   hexadesimal.   Misal untuk   perhitungan   dengan   sistem hexadesimal,   kita   ubah   data   dan   initial vector ke dalam bentuk hex sesuai   tabel ASCII sebagai berikut

“W” = 57“i” =69“s” =73“n” =6E“u” =75“X” =58

Page 4: Enkripsi Cipher Block Chaining dengan Mikroprosessor MCS-51

Maka didapat M=5769736E75hSelanjutnya   kita   lakukan   proses 

enkripsi langkah demi langkah.

M1 57K1 A5IV              58   C1 AA

M2 69K2 D4C1              AA   C2 17

M3 73K3 03C2              17   C3 67

M4 6EK4 32C3              67   C4 3B

M5 75K5 61C4              3B   C5 2F

Dan   didapat   ciphertext AA17673B2Fh     data   inilah   yang ditransmisikan   ke   penerima,   lalu   oleh penerima didekripsikan ke pesan semula. Langkah­langkah   dekripsinya   adalah sebagai berikut.

C1 AAK1 A5IV              58   M1 57 = ”W”

C2 17K2 D4C1              AA   M2 69 = “i”

C3 67K3 03C2              17   M3 73 = “s”

C4 3BK4 32C3              67   M4 6E = “n”

C5 2FK5 61C4              3B   M5 75 = “u”

Pada   penerima   setelah   pesan   asli didapatkan,   lalu   dikembalikan   ke   kode ASCIInya yaitu “Wisnu”

IV. Implementasi   CBC   pada Mikrokontroller

Untuk   implementasi   enkripsi   data dengan   CBC   pada   mikrokontroler, pertama   kita   merancang   dahulu   sistem yang   akan   kita   buat.   Misal   dua mikrokontroller   digunakan   masing­masing   sebagai   pengirim   dan   penerima. Pada pengirim, data diinputkan pengguna secara   parallel   melalui   Port   1,   lalu dienkripsi  oleh  mikrokontroller  pengirim dan   ditransmisikan   secara   serial   ke mikrokontroller   penerima.   Oleh mikrokontroller   penerima   data   tadi didekripsi kembali dan ditampilkan secara paralel ke Port 1.

Flowchart   untuk   masing­masing mikrokontroller adalah sebagai berikut.

START

START

INPUTPLAINTEXT

INPUTCIPHERTEXT

ENKRIPSI

DEKRIPSI

OUTPUTCIPHERTEXT

OUTPUTPLAINTEXT

TRANSMISISERIAL

PENGIRIM

PENERIMA

Gambar 3 Flowchart pengirim dan penerima transmisi data terenkripsi

Page 5: Enkripsi Cipher Block Chaining dengan Mikroprosessor MCS-51

Dengan   algoritma   dan   flowchart diatas, kita susun program untuk masing­masing   mikrokontrollernya.   Misalnya dengan ketentuan berikut.

IV = #CAh K1 = #A7h Kn = Kn­1 >> 2

Di   sisi   pengirim   dapat   kita   susun program sebagai berikut.

SJMP START ;IV : DB #0CAh ;K : DB #0A7h ;START :

MOV A,@IV ;MOV B,@K ;

MULAI:JNZ P0.0,KIRIM ;JNZ P0.1,START ;SJMP MULAI ;

KIRIM:CLR SCON ;MOV R0,P1 ;XORL A,B ;XORL A,R0 ;MOV SBUF,A;RR B,2 ;JNZ P0.0,$;AJMP MULAI ;SJMP $ ;

Pada   awal   program   dilakukan inisialisasi   IV   dan   K   lalu   menanti penekanan tombol P0.0 sebagai tanda data siap   diproses   atau   P0.1   untuk   mereset pengirim (aktif  hi).  Bila data  siap di  P1 dan   P0.0   diaktifkan,   lalu   data   akan disimpan di  R0 untuk dienkripsi  dengan kunci  di  B  dan   IV di  A.  Hasil   enkripsi disimpan di A yang lalu dikirim ke port serial  dan secara  otomatis  menggantikan nilai   IV  ke  C1.  K1  diubah  menjadi  K2 dengan   perintah   RR   B   yang   berisi   K1 sebanyak dua  kali  ke  kanan.  Setelah   itu program   memastikan   tombol   dilepas sebelum langkah berikut untuk mencegah pengiriman kode ganda akibat penekanan tombol   yang   terlalu   lama.   Setelah   satu langkah, program akan kembali scanning tombol   untuk   langkah   selanjutnya. Sedangkan  di   sisi   penerima  programnya adalah sebagai berikut.

SJMP START ;IV : DB #0CAh ;K : DB #0A7h ;

START :CLR SCON ;MOV R0,@IV;MOV B,@K ;

MULAI:JZ SCON,$;MOV A,SBUF;XCH A,R0 ;XORL A,B ;XORL A,R0 ;MOV P1,A ;RR B,2 ;CLR SCON ;AJMP MULAI ;SJMP $ ;

Program   ini   seperti   program   yang pertama akan melakukan inisialisasi nilai IV dan K1. Lalu IV disimpan di R0 dan K di  B.  Pada  awal   langkah,  program akan menanti adanya kiriman data serial, begitu data   sampai,   langsung   disimpan   di accumulator.   Data   ini   berguna   untuk langkah selanjutnya, maka ditukar dengan IV   yang   tak   lagi   akan   digunakan   pada langkah selanjutnya. Setelah pertukaran A dan R0 lalu proses dekripsi seperti biasa dilakukan   dan   datanya   disimpan   di   A. Data di A dikirim secara parallel ke port 1 dan satu langkah selesai.  Proses kembali menanti kiriman data serial selanjutnya.

V. PenutupDari   uraian   diatas   dapat   diambil 

kesimpulan Adanya   enkripsi   data   diperlukan 

untuk proses transmisi. Hal ini untuk mencegah   penyalahgunaan   oleh pihak­pihak   yang   tidak   bertanggung jawab.

Proses   enkripsi   data   digital   lebih mudah   dilakukan   dan   dapat menggunakan   petode   yang   beragam karena bentuk datanya yang fleksibel.

Implementasi   enkripsi   data   pada perangkat   digital   seperti mikrokontroller   dapat   dilakukan dengan   mengkonversi   data   menjadi bit­bit   yang   nantinya   akan   diproses oleh mikro kontroller.

Penulis   juga   memberi   beberapa saran antara lain Karena  proses   yang   cukup   cepat, 

penekanan satu  tombol  kadang lebih lama   dari   proses   yang   diperlukan 

Page 6: Enkripsi Cipher Block Chaining dengan Mikroprosessor MCS-51

dalam   satu   langkah   kerja.   Sebelum melangkah   ke   tahap   program selanjutnya   sebaiknya   program memastikan   atau   menunggu   tombol dilepaskan   untuk   mencegah   proses ganda dengan input yang sama.

Ketelitian   pembuatan   program diperlukan karena proses enkripsi data cukup   rumit   algoritmanya.   Hal   ini untuk memastikan data hasil dekripsi tepat   sama   dengan   data   sebelum   di enkripsi.

Daftar Pustaka

1. Mansfield,   Niall,  Practical  TCP/IP:Mendesain,   Menggunakan,  dan   Troubleshooting   Jaringan TCP/IP di Linux dan Windows Jilid 1, Penerbit Andi, 2004

2. McClure,   Stuart   et   al,  Hacking Exposed:Network Security Secret And Solutions,   McGraw­Hill   Companies, 2001

3. Stallings,   William,  Dasar­Dasar Komunikasi  Data,  Salemba Teknika, 2001

4. Wisnu,   Harindra,  Enkripsi   Data, harindrawisnu.web.id, 2006

5. Zimmermann,   Phil,  An   introduction to   Cryptography,   Network Associates, Inc, 1998

HARINDRA WISNU P  (L2F004481).Dilahirkan   di   Blora   20   yang   lalu. Menempuh pendidikan dari sekolah dasar 

sampai   sekolah menengah   pertama   di Blora dan melanjutkan sekolah   menengah atas di Semarang. Dari tahun   2004   sampai saat   ini   sedang menyelesaikan   studi Strata­1   di   Jurusan 

Teknik   Elektro   Fakultas   Teknik Universitas   Diponegoro   Semarang, konsentrasi   Informatika   dan   Komputer. Dalam   usianya   yang   terbilang   muda bocah   yang   nampak   lugu   namun   penuh ambisi   ini   telah   menghasilkan   berbagai karya tulis dan makalah yang dituangkan dalam   homepage   pribadinya.   Dan   tak sedikit   yang   menjadi   referensi   karya­karya ilmiah serta makalah­makalah.

CHRISMAN H MANURUNG (L2F004465).

Bocah   yang   sering dipanggil   Chris   ini Mendedikasikan hidupnya   di   bidang elektro   pada konsentrasi Elektronika   dan Telekomunikasi. Tiga tahun   menimba   ilmu di   Teknik   Elektro Undip   memberikan 

banyak   perubahan   berarti   pada   jalan hidupnya   yang   semakin   berani menghadapi   tantangan   kehidupan. Dengan   ilmu   yang   diembannya   dia bertekat menembus persaingan dunia.

Semarang,     Mei 2007Mengetahui,

Koordinator Asisten Asisten Pembimbing

Purwatmo Pradanang Ispriyanto