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 dikirimkan semakin banyak sebaliknya sebaliknya dengan rentang rentang waktu 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 Sistem pengam pengamana anan n data data agar agar tidak tidak diketa diketahui hui pihak pihak luar luar disebu disebutt dengan dengan enkrip enkripsi si data. 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 semaki semakin n berkem berkemban bangny gnyaa teknol teknologi ogi informasi baik metode pengirimannya, maupun besarnya data yang dikirimkan. Pada Pada umum umumny nyaa data data dapa dapatt dipisahkan menjadi dua yaitu data analog dan data digital. Sebelum teknologi digital dicipta diciptakan kan,, hanya hanya ada data data analog analog yang 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 kode-kode morse yang merepresentasikan huruf-huruf yang dikirim secara beruntun sehingga sehingga membentuk membentuk kata-kata kata-kata dan kalimat kalimat yang akan ditransmis ditransmisikan. ikan. Pengiriman dilakukan secara beruntun karena keterbatasan bidang transmisi. Dengan perkembangan jaman, kode morse dirasa kurang memadai karena semakin semakin berkembang berkembangnya nya data yang dikirim. Ada kalanya dokumen-dokumen yang perlu dikirim memuat karakterkarakter yang tidak terdapat pada alfabet. Maka dibuatlah standar penulisan karakter secara secara digital digital dengan 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 delapa delapan n pada pada kode kode Extend Extended ed ASCII ASCII untuk menambahkan 128 karakter baru. Kode-kode digital inilah yang nantinya nantinya ditransmis ditransmisikan ikan pada jalur-jalur jalur-jalur transm transmisi isi data. data. Penggu Penggunaa naan n data data digital digital sangat sangat dimina diminati ti karena karena berbag berbagai ai 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 keunggulankeunggulan tadi, data digital yang meru merupa paka kan n bent bentuk uk disk diskri ritt dan dan terkua terkuanti ntisas sasii bukan bukan berupa berupa sinyal sinyal sebenarnya. Sehingga masalah kualitas sinyal berada di bawah data analog yang menampilkan menampilkan sinyal sinyal sebenarnya sebenarnya.. Namun tingginya sampling rate dan telitinya level kuanti kuantisas sasii dapat dapat diatur diatur sehing sehingga ga perbed perbedaan aan kualit kualitas as ini tidak tidak terasa terasa bagi bagi manusia. II. II. Kons Konsep ep Enkri nkrips psii Data Data Perkem Perkemban bangan gan transm transmisi isi data data memunculkan memunculkan keragu-ragu keragu-raguan an akan keamanan jalur transmisi. Jalur transmisi
yang cukup panjang memungkinkan orang lain menguping saluran ini dan dimungkinkan mengetahui data yang sedang dikirim. Untuk Untuk data data inform informasi asi biasa, biasa, pengir pengirim im maupun maupun peneri penerima ma yang 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 akan merugi merugikan kan baik baik pengir pengirim im maupun maupun penerima. Informasi-informasi rahasia ini dapat dapat berupa berupa dokume dokumen-d n-doku okumen men perusahaan, perusahaan, catatan-cat catatan-catatan, atan, maupun maupun password atau nomor kombinasi PIN. Faktor keamanan ini membuat prak praktis tisii ilmu ilmu komu komuni nika kasi si data data meng mengem emba bang ngka kan n meto metode de-m -meto etode de pengol pengolaha ahan n data data sedemi sedemikia kian n rupa rupa sehing sehingga ga hanya hanya pengir pengirim im dan peneri penerima ma yang yang dapat dapat menget mengetahu ahuii inform informasi asi yang yang dibawa data tersebut. Maka diciptakanlah metode pengolahan data yang disebut enkripsi data. Pada dasarnya proses enkripsi data adalah proses mengubah bentuk data dengan dengan algori algoritma tma tertent tertentu u tanpa tanpa menghilangkan informasi yang ada pada data tersebut. III. III.
Enkrip Enkr ipsi si Data Data Deng Dengan an CBC Penggunaan Penggunaan teknologi digital digital juga memudahkan memudahkan proses enkripsi enkripsi data. Digitalisasi presentasi data menjadi bit-bit memunculkan berbagai macam algoritma enkripsi. Bentuk data digital masingmasing byte dapat ditampilkan dalam berb berbag agai ai bent bentuk uk.. Dapa Dapatt beru berupa pa hexadesima hexadesimal, l, desimal, desimal, dan biner. biner. Ketiga bent bentuk uk ters terseb ebut ut memu memung ngkin kinka kan n perhitungan perhitungan-perh -perhitunga itungan n rumit dilakukan 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 (Ciphe (Cipherr Block Block Chaini Chaining) ng) yaitu yaitu enkrip enkripsi si blok blok bera berant ntai ai.. CBC CBC meru merupa paka kan n
perkem perkemban bangan gan dari dari kode kode Cipher Cipher Block Block yang mengoperasikan data asli dengan kata kata kunci kunci terten tertentu. tu. Yang Yang menjad menjadii ciri ciri khas kode ini adalah penggunaan operasi logika XOR pada proses enkripsi dan dekripsiny dekripsinya. a. Untuk lebih jelasnya jelasnya dapat dilihat bagan algoritma Cipher Block seperti gambar berikut.
Key
Plaintext
Enkripsi
+
Cipher text
Key Dekripsi Cipher text
+
Plaintext
Gambar 1 Proses Enkripsi dan dekripsi Pada Cipher Block Sepert Sepertii pada pada bagan bagan diatas diatas,, proses proses enkripsi dan dekripsi menggunakan logika XOR antara data dan kata kunci. Logika XOR memilik memilikii tabel tabel kebena kebenaran ran sebaga sebagaii berikut. Tabel 1 tabel kebenaran logika XOR X
Y
X OR Y
0
0
0
0
1
1
1
0
1
1
1
0
Kata Kata kunci kunci yang yang diguna digunakan kan dapat dapat memili memiliki ki panjan panjang g yang yang bervar bervarias iasii tergantung keinginan kita namun tidak boleh lebih panjang dari data yang akan dienkripsi. Pesan yang cukup panjang M akan akan dipisa dipisah-p h-pisa isah h sesuai sesuai panjan panjang g kata kata kunci menjadi M1,M2 dan seterusnya. Pemisahan ini untuk menyesuaikan logika XOR yang kedua inputnya sama panjang. Setela Setelah h pesan pesan dipisa dipisah-p h-pisa isah, h, lalu dilaku dilakukan kan proses proses enkrip enkripsi si dan hasiln hasilnya ya disusul kembali. Misal data M=101100111011011 dienkripsi dengan kunci 110 maka M akan akan diubah diubah menjad menjadii M1=101 M1=101 M2=10 M2=100 0
M3=111 M4=011 dan M5=011 lalu satu persatu persatu dioperasikan dioperasikan dengan kunci menggunakan operasi logika XOR. M1 101 K 110 C1 011 M2 K C2 M3 K C3
100 110 010 111 110 001
Enkrip Enkripsi si dengan dengan CBC merupa merupakan kan 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
M2
M3
IV
+
+
+
Cn-1
+
K1
+
+
Kn
+
K2
C1
M4 K C4
011 110 101
M5 K C5
011 110 101
011 110 101
C2 K M2
010 110 100
C3 K M3
001 110 111
C4 K M4
101 110 011
C5 K M5
101 110 011
Dan setela setelah h disusu disusun n didapat pesan M=101100111011011
+
IV
+ M1
K3
C2 K2
+
C3 K3
Cn
+
Kn
+
+
+
Cn-1
+
M2
M3
Mn
Gambar 2 Bagan enkripsi CBC
Data C1 hingga C5 disusun kembali untuk untuk memben membentuk tuk ciphert ciphertext ext yaitu yaitu C=0110 C=0110100 100011 011011 01101 01 dan prose prosess dekripsinya kita lakukan hal yang sama pada ciphertext sebagai berikut. C1 K M1
K1
+
Mn
kembal kembalii aslinya
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 mengha menghasil silkan kan C1. Untuk Untuk langka langkah h selanjutnya Mn dioperasikan dengan Kn yang merupakan hasil pengolahan pengolahan Kn-1 dan Cn-1. karena adanya elemen langkah sebelumnya sebelumnya ke langkah langkah perhitunga perhitungan n berikutnya maka disebut proses berantai (chaining). Kunci Kn dapat berupa deret bilangan maupun kunci yang sama di setiap n tergantung tergantung keinginan keinginan pengguna kode ini. Misal Misal kita kita contoh contohkan kan suatu suatu kasus kasus data “Wisnu” “Wisnu” hendak hendak dienkripsi dienkripsi dengan metode CBC. Menggunakan initial vector “X” dan Kn=Kn-1+2Fh dengan K1=A5h Pertama kita tetapkan dahulu penggunaan sistem biner atau hexadesimal. Misal untuk untuk perhit perhitung ungan an dengan dengan sistem sistem hexade hexadesim simal, al, kita kita ubah ubah data data dan initia initiall vector ke dalam bentuk hex sesuai tabel ASCII sebagai berikut “W” “i” “s” “n” “u” “X”
= 57 =69 =73 =6E =75 =58
Maka didapat M=5769736E75h Selanjutnya kita lakukan proses enkripsi langkah demi langkah.
M1 K1 IV C1
57 A5 58 AA
M2 K2 C1 C2
69 D4 AA 17
M3 K3 C2 C3
73 03 17 67
M4 K4 C3 C4
6E 32 67 3B
M5 K5 C4 C5
75 61 3B 2F Dan Dan didap idapat at ciph cipher erte tex xt AA1767 AA17673B2 3B2Fh Fh data data inilah inilah yang yang ditransmisikan ke penerima, lalu oleh penerima didekripsikan ke pesan semula. Langkah-la Langkah-langkah ngkah dekripsinya dekripsinya adalah sebagai berikut.
C4 K4 C3 M4
3B 32 67 6E = “n”
C5 K5 C4 M5
2F 61 3B 75 = “u”
Pada Pada peneri penerima ma setelah setelah pesan pesan asli asli didapatkan, didapatkan, lalu dikembalikan dikembalikan ke kode ASCIInya yaitu “Wisnu” IV. IV.
Imp Impleme lement nta asi CBC CBC pad pada a Mikrokontroller Untuk Untuk impleme implementa ntasi si enkrip enkripsi si data data dengan dengan CBC pada mikrokontr mikrokontroler, oler, pertama kita merancang dahulu sistem yang yang akan akan kita kita buat. buat. Misal Misal dua mikrokontr mikrokontroller oller digunakan digunakan masingmasingmasing masing sebagai sebagai pengirim pengirim dan penerima. penerima. Pada pengirim, data diinputkan pengguna secara parallel melalui Port 1, lalu dienkripsi oleh mikrokontroller pengirim dan ditransmisikan secara serial ke mikr mikrok okon ontr trol olle lerr pene peneri rima ma.. Oleh Oleh mikrokontr mikrokontroller oller penerima penerima data tadi didekripsi kembali dan ditampilkan secara paralel ke Port 1. Flowchart untuk masing-masing mikrokontroller adalah sebagai berikut.
START
INPUT PLAINTEXT
C1 K1 IV M1
AA A5 58 57 = ”W”
C2 K2 C1 M2
17 D4 AA 69 = “i”
C3 K3 C2 M3
67 03 17 73 = “s”
PENERIMA
ENKRIPSI
START
OUTPUT CIPHERTEXT
INPUT CIPHERTEXT
TRANSMISI SERIAL PENGIRIM
DEKRIPSI
OUTPUT PLAINTEXT
Gambar 3 Flowchart pengirim dan penerima transmisi data terenkripsi
Dengan algoritma dan flowchart diatas, kita susun program untuk masingmasing masing mikrokontro mikrokontrollerny llernya. a. Misalnya Misalnya dengan ketentuan berikut. IV = #CAh K1 = #A7h Kn = Kn-1 >> 2
Di sisi sisi pengir pengirim im dapat dapat kita kita susun susun program sebagai berikut. SJ SJMP MP ST STAR ART T ; 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 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 deng dengan an perin perinta tah h RR B yang yang beri berisi si K1 sebanyak dua kali ke kanan. Setelah itu program memastikan tombol dilepas sebelum langkah berikut untuk mencegah pengiriman kode ganda akibat penekanan tombol tombol yang yang terlal terlalu u lama. lama. Setela Setelah h satu satu langkah, program akan kembali scanning tombol tombol untuk langkah selanjutny selanjutnya. a. Sedangkan Sedangkan di sisi penerima programny programnyaa adalah sebagai berikut.
IV : K :
SJ SJMP MP ST STAR ART T ; DB #0CAh ; DB #0A7h ;
START : CLR MOV MOV MULAI: JZ MOV XCH XORL XORL MOV RR CLR AJMP SJMP
SCON ; R0,@IV; B,@K ; SCON,$; A,SBUF; A,R0 ; A,B ; A,R0 ; P1,A ; B,2 ; SCON ; MULAI ; $ ;
Program Program ini seperti program 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 yang tak tak lagi lagi akan akan digu diguna naka kan n pada pada langkah selanjutnya. Setelah pertukaran A dan R0 lalu proses dekripsi seperti biasa dilaku dilakukan kan dan datany datanyaa disimp disimpan an di A. Data di A dikirim secara parallel ke port 1 dan satu langkah selesai. Proses kembali menanti kiriman data serial selanjutnya. V. P en u t u p Dari uraian diatas dapat diambil kesimpulan Adanya enkripsi data diperlukan untuk proses transmisi. Hal ini untuk mencegah mencegah penyalahgun penyalahgunaan aan oleh pihak-pihak pihak-pihak yang tidak bertanggung bertanggung jawab. Proses enkripsi data digital lebih muda mudah h dila dilaku kuka kan n dan dan dapa dapatt menggunakan menggunakan petode yang beragam karena bentuk datanya yang fleksibel. Implementasi enkripsi data pada pera perang ngk kat digit igital al sep sepert erti mikrokontro mikrokontroller ller dapat dilakukan dilakukan dengan mengkonversi data menjadi bit-bi bit-bitt yang yang nantin nantinya ya akan akan dipros diproses es 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
dalam dalam satu satu langka langkah h kerja. kerja. Sebelu Sebelum m melang melangkah kah ke tahap tahap progra program m selanj selanjutn utnya ya sebaik sebaiknya nya progra program m memast memastikan ikan atau atau menung menunggu gu tombo tomboll dilepaskan untuk mencegah proses ganda dengan input yang sama. Ketelitian ian pembua pembuatan tan progra program m Ketelit diperlukan karena proses enkripsi data cukup rumit algoritmanya. Hal ini untuk memastikan data hasil dekripsi tepat tepat sama sama dengan dengan data sebelum sebelum di enkripsi. Daftar Pustaka
1. Mans Mansfie field ld,,
2.
3.
4. 5.
Practical Niall Niall,, TCP/IP:Mendesain, Menggunakan, dan Troubl Troublesh eshoot ooting ing Jaring Jaringan an TCP/IP di Linux dan Windows Jilid 1, Penerbit Andi, 2004 McClure, Stuart et al, Hacking Exposed:Network Security Secret And McGraw-Hill Companies, Companies, Solutions, McGraw-Hill 2001 Stallings, Stallings, William, William, Dasar-Dasar Komunikasi Data, Salemba Teknika, 2001 Wisnu, Harindra, Enkripsi Data, harindrawisnu.web.id, 2006 introduction n Zimmermann, Zimmermann, Phil, An introductio Netwo twork to Cryp Crypto togr grap aphy hy, Associates, Inc, 1998
HARINDRA WISNU P (L2F004481). Dilahirkan di Blora 20 yang lalu. Menempuh pendidikan dari sekolah dasar
Semarang,
sampa ampaii seko sekola lah h menengah menengah pertama pertama di Blora dan melanjutkan sekolah sekolah meneng menengah ah atas di Semarang. Dari tahun 2004 sampai saat aat ini ini seda sedang ng menyelesaik menyelesaikan an studi Strata-1 di Jurusan Teknik Teknik Elektr Elektro o Fakult Fakultas as Teknik Teknik Universitas Universitas Diponegoro Diponegoro Semarang, Semarang, konsentrasi Informatika dan Komputer. Dalam usianya yang terbilang muda bocah yang nampak lugu namun penuh ambisi ambisi ini telah telah mengha menghasil silkan kan berbag berbagai ai karya tulis dan makalah yang dituangkan dalam homepage pribadinya. Dan tak sedikit yang menjadi referensi karyakarya ilmiah serta makalah-makalah. CHRISMAN H MANURUNG (L2F004465). Bocah yang sering dipanggil Chris ini Mendedikasikan hidupnya di bidang elektro pada konsentrasi Elek Elektr tron onik ikaa dan dan Telekomunikasi. Tiga tahun menimba ilmu di Teknik Teknik Elektro Elektro Undip memberikan memberikan banyak perubahan berarti pada jalan hidu hidupn pnya ya yang yang sema semaki kin n bera berani ni mengha menghadap dapii tantan tantangan gan kehidu kehidupan pan.. Dengan ilmu yang diembannya dia bertekat menembus persaingan dunia.
Mei 2007
Koordinator Asisten
Mengetahui, Asisten Pembimbing
Purwatmo
Pradanang Ispriyanto