enkripsi cipher block chaining dengan mikroprosessor mcs-51
DESCRIPTION
Makalah mengenai sistem enkripsi data dengan metode Cipher Block Chaining melalui media serial dengan enkriptor dan dekriptor menggunakan mikroprosessor seri MCS-51TRANSCRIPT
![Page 1: Enkripsi Cipher Block Chaining dengan Mikroprosessor MCS-51](https://reader035.vdokumen.com/reader035/viewer/2022073017/5571f78749795991698b8ae6/html5/thumbnails/1.jpg)
Tugas Praktikum MikroprosessorEnkripsi Cipher Block Chaining dengan Mikrokontroller
Harindra Wisnu Pradhana (L2F004481) Chrisman H Manurung (L2F004465)
Abstrak
Komunikasi data akhirakhir 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 bermacammacam 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 sinyalsinyal suara maupun dimodulasi untuk dipancarkan melalui gelombang radio.
Setelah teknologi digital ditemukan, data digital juga dilewatkan pada media yang sama. Kode yang digunakan berupa kodekode morse yang merepresentasikan hurufhuruf yang dikirim secara beruntun sehingga membentuk katakata 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 dokumendokumen yang perlu dikirim memuat karakterkarakter 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 karakterkarakter standar lainnya.
Seiring perkembangan teknologi, karakterkarakter ASCII yang ada dirasa kurang memenuhi maka ditambahkan bit ke delapan pada kode Extended ASCII untuk menambahkan 128 karakter baru.
Kodekode digital inilah yang nantinya ditransmisikan pada jalurjalur transmisi data. Penggunaan data digital sangat diminati karena berbagai keunggulan dibanding data analog antara lain kemudahan pengolahan datanya, ketepatan perhitungan, pendeteksian galat dan perbaikan bitbit yang salah yang hanya dimungkinkan pada format data analog. Namun disamping keunggulankeunggulan 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 keraguraguan akan keamanan jalur transmisi. Jalur transmisi
![Page 2: Enkripsi Cipher Block Chaining dengan Mikroprosessor MCS-51](https://reader035.vdokumen.com/reader035/viewer/2022073017/5571f78749795991698b8ae6/html5/thumbnails/2.jpg)
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 halhal yang cukup vital dan memerlukan kerahasiaan, bila informasi ini bocor ke pihak lain akan memicu penyalahgunaan yang tentunya akan merugikan baik pengirim maupun penerima. Informasiinformasi rahasia ini dapat berupa dokumendokumen perusahaan, catatancatatan, maupun password atau nomor kombinasi PIN.
Faktor keamanan ini membuat praktisi ilmu komunikasi data mengembangkan metodemetode 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 bitbit memunculkan berbagai macam algoritma enkripsi. Bentuk data digital masingmasing byte dapat ditampilkan dalam berbagai bentuk. Dapat berupa hexadesimal, desimal, dan biner. Ketiga bentuk tersebut memungkinkan perhitunganperhitungan rumit dilakukan sebagai proses enkripsi data. Mulai dari perhitungan operasioperasi 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 dipisahpisah sesuai panjang kata kunci menjadi M1,M2 dan seterusnya. Pemisahan ini untuk menyesuaikan logika XOR yang kedua inputnya sama panjang. Setelah pesan dipisahpisah, 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](https://reader035.vdokumen.com/reader035/viewer/2022073017/5571f78749795991698b8ae6/html5/thumbnails/3.jpg)
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 masingmasing 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
Cn1
Cn1
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 Kn1 dan Cn1. 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=Kn1+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](https://reader035.vdokumen.com/reader035/viewer/2022073017/5571f78749795991698b8ae6/html5/thumbnails/4.jpg)
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. Langkahlangkah 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 masingmasing 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 masingmasing 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](https://reader035.vdokumen.com/reader035/viewer/2022073017/5571f78749795991698b8ae6/html5/thumbnails/5.jpg)
Dengan algoritma dan flowchart diatas, kita susun program untuk masingmasing mikrokontrollernya. Misalnya dengan ketentuan berikut.
IV = #CAh K1 = #A7h Kn = Kn1 >> 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 pihakpihak 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 bitbit 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](https://reader035.vdokumen.com/reader035/viewer/2022073017/5571f78749795991698b8ae6/html5/thumbnails/6.jpg)
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, McGrawHill Companies, 2001
3. Stallings, William, DasarDasar 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 Strata1 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 karyakarya ilmiah serta makalahmakalah.
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