Penggunaan Message Authentication Code dan Algoritma...

26
Penggunaan Message Authentication Code dan Algoritma Solitaire Dalam Aplikasi Otentikasi Data Transkrip Nilai Berbentuk Citra Artikel Ilmiah Peneliti : Frans Adityafet (672010036) M. A. Ineke Pakereng, M.Kom. Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Kristen Satya Wacana Salatiga Oktober 2014

Transcript of Penggunaan Message Authentication Code dan Algoritma...

Page 1: Penggunaan Message Authentication Code dan Algoritma ...repository.uksw.edu/bitstream/123456789/15109/2/T1_672010036_Full... · Transkrip nilai umumnya menjadi salah satu syarat bagi

Penggunaan Message Authentication Code dan Algoritma Solitaire

Dalam Aplikasi Otentikasi Data Transkrip Nilai Berbentuk Citra

Artikel Ilmiah

Peneliti :

Frans Adityafet (672010036)

M. A. Ineke Pakereng, M.Kom.

Program Studi Teknik Informatika

Fakultas Teknologi Informasi

Universitas Kristen Satya Wacana

Salatiga

Oktober 2014

Page 2: Penggunaan Message Authentication Code dan Algoritma ...repository.uksw.edu/bitstream/123456789/15109/2/T1_672010036_Full... · Transkrip nilai umumnya menjadi salah satu syarat bagi

ii

Penggunaan Message Authentication Code dan Algoritma Solitaire

Dalam Aplikasi Otentikasi Data Transkrip Nilai Berbentuk Citra

Artikel Ilmiah

Diajukan kepada

Fakultas Teknologi Informasi

untuk memperoleh Gelar Sarjana Komputer

Peneliti :

Frans Adityafet (672010036)

M. A. Ineke Pakereng, M.Kom.

Program Studi Teknik Informatika

Fakultas Teknologi Informasi

Universitas Kristen Satya Wacana

Salatiga

Oktober 2014

Page 3: Penggunaan Message Authentication Code dan Algoritma ...repository.uksw.edu/bitstream/123456789/15109/2/T1_672010036_Full... · Transkrip nilai umumnya menjadi salah satu syarat bagi

iii

Page 4: Penggunaan Message Authentication Code dan Algoritma ...repository.uksw.edu/bitstream/123456789/15109/2/T1_672010036_Full... · Transkrip nilai umumnya menjadi salah satu syarat bagi

iv

Page 5: Penggunaan Message Authentication Code dan Algoritma ...repository.uksw.edu/bitstream/123456789/15109/2/T1_672010036_Full... · Transkrip nilai umumnya menjadi salah satu syarat bagi

v

Page 6: Penggunaan Message Authentication Code dan Algoritma ...repository.uksw.edu/bitstream/123456789/15109/2/T1_672010036_Full... · Transkrip nilai umumnya menjadi salah satu syarat bagi

vi

Page 7: Penggunaan Message Authentication Code dan Algoritma ...repository.uksw.edu/bitstream/123456789/15109/2/T1_672010036_Full... · Transkrip nilai umumnya menjadi salah satu syarat bagi

vii

Page 8: Penggunaan Message Authentication Code dan Algoritma ...repository.uksw.edu/bitstream/123456789/15109/2/T1_672010036_Full... · Transkrip nilai umumnya menjadi salah satu syarat bagi

viii

Page 9: Penggunaan Message Authentication Code dan Algoritma ...repository.uksw.edu/bitstream/123456789/15109/2/T1_672010036_Full... · Transkrip nilai umumnya menjadi salah satu syarat bagi

ix

Penggunaan Message Authentication Code dan Algoritma Solitaire

Dalam Aplikasi Otentikasi Data Transkrip Nilai Berbentuk Citra

1) Frans Adityafet,

2) M. A. Ineke Pakereng

Fakultas Teknologi Informasi

Universitas Kristen Satya Wacana

Jl. Diponegoro 52-60, Salatiga 50771, Indonesia

Email: 1)

[email protected], 2)

[email protected]

Abstract

Transcripts generally become one of the requirements for a person who wanted to get

post-graduate scholarship program, or to apply a job, but sometimes to get it, someone

can commit fraud by falsifying the contents of the transcript of its value. For that we need

a system that can provide authentication of an image transcripts. This study used a

Message Authentication Code to ensure the validation of an image transcripts. Message

Authentication Code is a mechanism markers instead of manual signatures on paper

pasted on the image transcripts. In this study there are the process of signing and

verification process that uses the solitaire encryption algorithm to encrypt messages in

the generation of MAC as a media comparison of data integrity, as well as LSB

steganography algorithms to insert into the message and MAC image transcripts. The

results of this study indicate that the application can detect manipulation authentication

transcripts.

Keywords: Transcript, Message Authentication Code, Algorithms Solitaire, LSB

Steganography

Abstrak

Transkrip nilai umumnya menjadi salah satu syarat bagi seseorang yang hendak

mendapatkan beasiswa program pasca sarjana, atau untuk melamar pekerjaan, tetapi

terkadang untuk mendapatkan hal tersebut, seseorang dapat melakukan kecurangan

dengan memalsukan isi transkrip nilainya. Untuk itu diperlukan sebuah sistem yang dapat

memberikan otentikasi dari sebuah image transkrip nilai. Dalam penelitian ini digunakan

Message Authentication Code untuk menjamin validasi dari sebuah image transkrip nilai.

Message Authentication Code adalah sebuah mekanisme pemberi tanda sebagai

pengganti tanda tangan manual di kertas yang disisipkan pada image transkrip nilai.

Dalam penelitian ini terdapat proses signing dan proses verifikasi yang menggunakan

algoritma enkripsi solitaire untuk menyandikan pesan dalam pembangkitan MAC sebagai

media pembanding integritas data, serta algoritma steganography LSB untuk

menyisipkan pesan dan MAC ke dalam image transkrip nilai. Hasil penelitian ini

menunjukkan bahwa aplikasi otentikasi dapat mendeteksi manipulasi transkrip nilai.

Kata Kunci : Transkrip Nilai, Message Authentication Code, Algoritma Solitaire,

Steganography LSB

1)

Mahasiswa Program Studi Teknik Informatika, Fakultas Teknologi Informasi, Universitas

Kristen Satya Wacana Salatiga 2)

Staff Pengajar Fakultas Teknologi Informasi, Universitas Kristen Satya Wacana Salatiga

Page 10: Penggunaan Message Authentication Code dan Algoritma ...repository.uksw.edu/bitstream/123456789/15109/2/T1_672010036_Full... · Transkrip nilai umumnya menjadi salah satu syarat bagi

1

1. Pendahuluan

Transkrip nilai umumnya menjadi salah satu syarat bagi seseorang yang

hendak mendapatkan beasiswa program pasca sarjana, atau untuk melamar

pekerjaan, tetapi terkadang untuk mendapatkan hal tersebut, seseorang dapat

melakukan kecurangan dengan memalsukan isi transkrip nilainya. Seperti

ditemukannya kasus pemalsuan isi transkrip nilai, dengan memanipulasi jumlah

SKS yang telah ditempuh, di sebuah perguruan tinggi di Yogyakarta, yang

dilakukan oleh mahasiswa pindahan dari luar daerah [1]. Hal ini dapat

mencemarkan nama baik kampus yang menerbitkan transkrip nilai karena

dicurigai sebagai tempat praktek transkrip nilai palsu. Oleh sebab itu dibutuhkan

keamanan yang dapat menjamin validasi transkrip nilai dan tidak ada manipulasi.

Penelitian yang dilakukan mengimplementasikan metode Message

Authentication Code (MAC) dan algoritma solitaire untuk menjaga integritas

data. MAC merupakan sebuah fungsi satu arah yang menggunakan kunci privat

dalam penghitungan nilai MAC dari pesan tersebut, dengan kata lain, nilai hash

adalah fungsi dari pesan dan kunci. MAC disebut juga keyed hash function atau

key-dependent one-way hash function. Kunci digunakan untuk memverifikasi nilai

hash [2]. Algoritma solitaire dapat digunakan untuk mengamankan pesan, dimana

pesan yang dienkripsi menjadi karakter acak sehingga pesan asli tidak terbaca,

Hal ini disebabkan pembangkitan keystream dari urutan kartu melalui proses yang

panjang sehingga hasil keluarannya benar-benar acak [3].

Berdasarkan latar belakang masalah tersebut, maka dilakukan penelitian

untuk merancang suatu aplikasi otentikasi transkrip nilai, menggunakan metode

Message Authetication Code (MAC) dan algoritma solitaire untuk menyandikan

pesan. Penelitian ini menghasilkan aplikasi yang dapat memvalidasi suatu

transkrip nilai, serta menjamin keamanan dan keaslian informasi legalisasi

transkrip tersebut.

2. Kajian Pustaka

Penelitian terdahulu tentang “Implementasi Algoritma MAC Berbasis

Cipher Block Sebagai Program Add-in di Microsoft Word untuk Otentikasi

Dokumen”, membahas tentang bagaimana mengamankan dokumen word

menggunakan nilai Message Authentication Code (MAC), Cipher Block adalah algoritma enkripsi yang akan membagi-bagi plaintext yang akan dikirimkan dengan

ukuran tertentu (disebut blok) dengan panjang t dan setiap blok dienkripsi dengan

menggunakan kunci yang sama. Penelitian ini menghasilkan sebuah program add-in

untuk aplikasi pengolah kata Microsoft Word yang dapat melakukan otentikasi

dokumen dengan mengimplementasikan algoritma CMAC. Berdasarkan hasil uji

coba, program add-in untuk Microsoft Word yang dibangun bekerja dengan baik

untuk otentikasi dokumen. Perubahan pada dokumen seperti

penambahan/pengurangan huruf, kalimat, paragraf, bahkan objek seperti gambar

mengakibatkan perubahan pada nilai MAC. Selain itu, kesalahan memasukkan

kunci juga akan mengakibatkan validasi nilai MAC gagal [4].

Page 11: Penggunaan Message Authentication Code dan Algoritma ...repository.uksw.edu/bitstream/123456789/15109/2/T1_672010036_Full... · Transkrip nilai umumnya menjadi salah satu syarat bagi

2

Penelitian terdahulu tentang “Verifikasi Otentifikasi Data Transkrip Nilai

Berbentuk Citra Menggunakan SHA-512”, membahas tentang bagaimana

menverifikasi otentikasi data transkrip nilai berbentuk citra menggunakan SHA-

512. Penelitian ini menghasilkan sebuah program verifikasi otentikasi data

transkrip nilai berbentuk citra menggunakan SHA-512, dan bermanfaat untuk

membantu perusahaan untuk menverifikasi file transkrip serta mengurangi

kecurangan manipulasi file transkrip dalam melamar pekerjaan [5].

Penelitian terdahulu tentang “Solitaire Cipher”, berdasarkan pembahasan

dari penelitian yang dilakukan sebelumnya menyebutkan, bahwa solitaire sebagai

salah satu algoritma kriptografi sederhana mempunyai tingkat keamanan yang

cukup tinggi jika dibandingkan dengan algoritma sederhana lain. Hal ini

disebabkan pembangkitan keystream dari urutan kartu melalui proses yang

panjang sehingga hasil keluarannya benar-benar acak [3].

Berdasarkan penelitian-penelitian yang sudah ada mengenai penggunaan

metode MAC, dan algoritma Solitaire, maka dilakukan penelitian yang membahas

mengenai Penggunaan Message Authentication Code Dan Algoritma Solitaire

Dalam Aplikasi Otentikasi Data Transkrip Nilai Berbentuk Citra, sehingga dapat

membantu mahasiswa dan alumni dalam mengamankan file transkrip nilainya dari

manipulasi, seperti pihak yang ingin memanfaatkannya untuk mendaftar di

sebuah perguruan tinggi ternama yang mengharuskannya memiliki nilai tinggi.

Penelitian ini bertujuan untuk merancang dan mengimplementasikan penggunaan

MAC dan algoritma solitaire dalam aplikasi otentikasi data transkrip nilai

berbentuk citra dengan metode penyisipan steganografi Least Significant Bit,

sehingga dapat membantu pihak yang berkepentingan untuk menverifikasi file

transkrip serta mengurangi kecurangan manipulasi file transkrip dalam

penggunaan sebagaimana mestinya. Perbedaan dari penelitian sebelumnya ada

pada penggunaan metode yang digunakan, pada penelitian ini digunakan Message

Authentication Code (MAC) yang menyediakan fitur keamanan integrity dan

algoritma solitaire sebagai penyedia fitur keamanan authentication. Penelitian ini

menghasilkan aplikasi yang dapat menjamin legalisasi digital suatu transkrip nilai.

Batasan masalah dalam penelitian ini adalah aplikasi ini menggunakan metode

MAC dan algoritma solitaire yang diimplementasikan pada Visual Studio 2012

dan data citra yang digunakan adalah dalam format png.

Penelitian yang dilakukan membahas tentang Message Authentication

Code, Algoritma Solitaire dan Metode steganografi Least Significant Bit. Message

Authentication Code (MAC) adalah sebuah algoritma yang didesain secara khusus

untuk memeriksa keaslian sebuah bagian informasi berupa kode sehingga apabila

kode tersebut mengalami perubahan yang dilakukan oleh pihak yang tidak

berwenang, maka pihak yang berwenang dapat mengetahuinya. MAC merupakan

sebuah fungsi satu arah yang menggunakan kunci privat dalam penghitungan nilai

MAC dari pesan tersebut. Sistem MAC ini berbeda dengan fungsi hash seperti

SHA ataupun MD5 yang tidak menggunakan kunci privat apapun untuk

menghitung nilai hash dari pesan. Nilai MAC yang dihasilkan adalah selalu berukuran tetap berapapun panjang dari pesan yang diotentikasi. Selanjutnya,

MAC dilekatkan pada pesan yang nantinya akan digunakan untuk otentikasi

keaslian pesan. Perbedaan antara MAC dan algoritma enkripsi adalah MAC

Page 12: Penggunaan Message Authentication Code dan Algoritma ...repository.uksw.edu/bitstream/123456789/15109/2/T1_672010036_Full... · Transkrip nilai umumnya menjadi salah satu syarat bagi

3

digunakan tanpa perlu merahasiakan isi pesan. Dalam MAC, pesan yang

dikirimkan bias saja terbaca pihak lain, namun untuk membentuk MAC pihak

tersebut harus mengetahui kuncinya. MAC juga bukan tanda tangan digital, MAC

hanya menyediakan otentikasi dan integritas pesan saja [6].

Gambar 1 Mekanisme Penggunaan Message Authentication Code [5]

Gambar 1 menunjukkan mekanisme penggunaan Message Authentication

Code, dimana pihak pengirim dan penerima terlebih dahulu menentukan kunci

privat yang akan digunakan dalam otentikasi pesan antar pihak. Selanjutnya,

pihak pengirim akan menggunakan algoritma MAC dengan kunci privat tadi

untuk menghasilkan nilai MAC dari pesan yang akan ditransmisikan. Pesan

kemudian disisipkan dengan nilai MAC yang telah ditentukan dan dikirimkan ke

pihak penerima. Pihak penerima kemudian mengotentikasi keaslian pesan dengan

menghitung kembali MAC dari pesan tersebut lalu mencocokkannya dengan

MAC yang tertera pada pesan. Apabila ada ketidakcocokan, dapat diambil

kesimpulan langsung bahwa terjadi perubahan pada isi pesan yang diterima,

artinya pesan tidak lagi asli.

Penelitian yang dilakukan menggunakan algoritma kriptografi solitaire.

Algoritma solitaire merupakan salah satu algoritma klasik, algoritma ini

diciptakan oleh Bruce Schneier, seorang pakar keamanan yang juga menciptakan

algoritma blowfish pada tahun 1999 [7]. Solitaire termasuk ke dalam algoritma

kriptografi berbasis substitusi yaitu algoritma yang mengganti satu atau beberapa

karakter dengan karakter lain. Algoritma solitaire menghasilkan sebuah keystream

yang digunakan untuk proses enkripsi. Keystream dihasilkan dari kunci yang

diberikan oleh pengguna. Kunci digunakan untuk menentukan urutan kartu yang

akan digunakan dalam pembentukan keystream. Urutan awal kartu ini dapat

berupa urutan dari nilai terkecil ke nilai terbesar, dengan anggapan bahwa kartu

As sampai dengan kartu King keriting (clubs) untuk nilai satu sampai tiga belas,

nilai empat belas sampai dua puluh enam untuk wajik (diamonds), nilai dua puluh

tujuh sampai tiga puluh sembilan untuk hati (hearts) dan sisanya untuk kartu

sekop (spades).

Proses enkripsi dengan algoritma solitaire dilakukan sebagai berikut : 1)

Mengatur urutan kartu sesuai dengan kunci yang diberikan pengguna; 2) Proses

Page 13: Penggunaan Message Authentication Code dan Algoritma ...repository.uksw.edu/bitstream/123456789/15109/2/T1_672010036_Full... · Transkrip nilai umumnya menjadi salah satu syarat bagi

4

pembangkitan keystream dari urutan kartu yang telah diperoleh; 3) Mengubah

semua huruf menjadi huruf kapital, lalu dirubah menjadi angka; 4) Memisahkan

text yang akan dienkripsi dalam grup yang berisi lima karakter; 5) Menggunakan

sebuah keystream; 6) Mengubah plaintext menjadi angka; 7) Mengubah keystream

menjadi angka; 8) Menjumlahkan kedua angka pada plaintext dan keystream,

dengan modulo 26. Jika hasil penjumlahan lebih dari 26, maka dikurangkan

dengan 26 untuk mendapatkan hasilnya; dan 9) Mengubah angka hasil

penjumlahan ke dalam huruf untuk mendapatkan hasil ciphertext. Proses dekripsi

dengan algoritma solitaire, dilakukan sebagai berikut: 1) Memisahkan ciphertext

yang akan didekripsi dalam grup yang berisi lima karakter; 2) Menggunakan

sebuah keystream yang sama pada proses enkripsi; 3) Mengubah ciphertext

menjadi angka; 4) Mengubah keystream menjadi angka; 5) Mengurangkan kedua

angka pada ciphertext dan keystream, dengan modulo 26. Jika angka yang

didapatkan kurang dari 26 maka tambahkan dahulu dengan 26, baru setelah itu

dikurangkan dengan keystream; dan 9) Mengubah angka hasil pengurangan ke

dalam huruf untuk mendapatkan hasil plaintext.

Metode yang digunakan untuk menyisipkan pesan adalah metode least

significant bit (LSB), yang merupakan metode standar yang banyak digunakan

untuk melakukan steganografi terutama pada media citra digital. Perubahan satu

bit pada least significant bit tidak akan mengakibatkan perubahan warna yang

cukup besar sehingga tidak dapat terlihat secara kasat mata oleh orang lain.

Metode ini menggunakan least significant bit dari byte-byte pada media digital

yang disubstitusi dengan satu bit, satu bit pesan yang ingin disisipkan sehingga

ukuran file yang dapat disimpan cenderung jauh lebih kecil dari ukuran asli citra

digital tersebut. Proses ekstraksi dari metode ini dapat dilakukan dengan

menyusun bit-bit yang disisipkan pada citra tersebut sehingga membentuk pesan

yang telah disisipkan tersebut [8].

3. Metode dan Perancangan Sistem

Penelitian yang dilakukan, diselesaikan melalui tahapan penelitian yang

terbagi dalam empat tahapan, yaitu: (1) Identifikasi Masalah dan Studi Literatur,

(2) Perancangan sistem, (3) Implementasi sistem, dan (4) Pengujian sistem dan

analisis hasil pengujian.

Gambar 2 Tahapan Penelitian

Identifikasi Masalah dan Studi Literatur

Perancangan Sistem meliputi Perancangan Proses Signing dan Proses Verifikasi

Implementasi Sistem

Pengujian Sistem dan Analisis Hasil Pengujian

Page 14: Penggunaan Message Authentication Code dan Algoritma ...repository.uksw.edu/bitstream/123456789/15109/2/T1_672010036_Full... · Transkrip nilai umumnya menjadi salah satu syarat bagi

5

Tahapan penelitian pada Gambar 2, dijelaskan sebagai berikut. Tahap

pertama: identifikasi masalah dan studi literatur, yaitu mengidentifikasi masalah-

masalah yang akan dibahas, serta mendapatkan literatur yang terkait dengan

proses signing dan verifikasi, menggunakan metode Message Authentication Code

(MAC) dan algoritma kriptografi solitaire untuk enkripsi pesan, serta metode

steganography LSB untuk proses embedding dan extracting; Tahap kedua:

perancangan sistem yang meliputi perancangan proses signing dan proses

verifikasi dalam sistem yang akan dibangun; Tahap ketiga: implementasi sistem,

yaitu membuat aplikasi sesuai perancangan proses pada tahap kedua, yaitu

misalnya bagaimana aplikasi/program berjalan saat file di-sign dan diverifikasi;

Tahap keempat: pengujian sistem dan analisis hasil pengujian, yaitu dilakukan

pengujian authentication (keaslian data dapat terjamin), pengujian integrity (data

masih dalam keadaan asli atau belum pernah diubah), pengujian hasil verifikasi

setelah dimanipulasi apakah sudah sesuai dengan konsep Message Authentication

Code.

Gambar 3 alur proses utama pada perancangan ini diawali dengan mahasiswa

meminta (request) file transkrip nilai kepada bagian nilai. Kemudian bagian nilai

akan memasukkan pesan dan key yang akan digunakan untuk menentukan nilai

MAC (generate MAC) serta menyisipkan pesan beserta Message Authentication

Code pada file tersebut dan diberikan kepada mahasiswa atau yang disebut juga

dengan proses signing. Setelah mahasiswa menerima file transkrip nilai yang

sudah di-signing, mahasiswa akan mengirim file tersebut ke pihak yang

berkepentingan. Kemudian pihak tersebut akan melakukan proses verifikasi yang

nantinya akan diketahui apakah file yang dikirimkan tersebut benar-benar valid

atau tidak.

Gambar 3 Alur Proses Utama Pada Sistem

Page 15: Penggunaan Message Authentication Code dan Algoritma ...repository.uksw.edu/bitstream/123456789/15109/2/T1_672010036_Full... · Transkrip nilai umumnya menjadi salah satu syarat bagi

6

Sistem yang dibangun menghasilkan aplikasi otentikasi data transkrip

nilai, yang terdiri dari dua proses, yang pertama adalah proses signing yaitu proses

pemberian tanda terhadap transkrip nilai yang dilakukan oleh bagian nilai dan

yang kedua adalah proses verifikasi yang dapat dilakukan oleh pihak luar yang

berkepentingan.

Gambar 4 menunjukkan proses signing yang dilakukan oleh admin (bagian

nilai). Pada proses ini pertama-tama admin akan meng-input file transkrip, pesan

dan key. Kemudian dilakukan proses generate MAC, menggunakan pesan dan key

yang diinputkan. Pada proses pembentukan MAC akan didapatkan message digest

yang panjangnya tetap dan akan digunakan sebagai MAC. Nilai MAC tidak dapat

dikembalikan lagi ke bentuk semula karena nilai MAC merupakan fungsi satu

arah (one-way hash). Setelah menghasilkan MAC, proses terakhir pada proses

generate MAC ini adalah proses penyisipan (embedding) pesan dan MAC ke

dalam transkrip nilai, menggunakan metode steganografi LSB.

Gambar 4 Proses Signing Oleh Bagian Nilai Gambar 5 Proses Verifikasi Pihak Luar

Gambar 5 menunjukkan proses verifikasi yang dilakukan oleh pihak yang

berkepentingan. Proses ini dimulai dengan ekstraksi pesan dan MAC. Kemudian

dimasukkan key yang telah diketahui sebelumnya, pesan dan key tersebut akan

digunakan dalam proses generate MAC. Proses generate MAC pada proses

verifikasi ini sama dengan proses generate MAC pada proses signing. Pada proses

verifikasi ini akan menghasilkan nilai MAC1. Kemudian dilakukan perbandingan,

apabila MAC0 sama dengan MAC1 maka dapat dipastikan transkrip nilai valid.

Begitu pula sebaliknya apabila MAC0 tidak sama dengan MAC1 maka transkrip

nilai tidak valid.

Page 16: Penggunaan Message Authentication Code dan Algoritma ...repository.uksw.edu/bitstream/123456789/15109/2/T1_672010036_Full... · Transkrip nilai umumnya menjadi salah satu syarat bagi

7

Gambar 6 Proses Enkripsi Algoritma Solitaire

Gambar 6 menunjukkan proses enkripsi pesan yang dimasukkan

menggunakan algoritma solitaire dengan keystream yang dibentuk oleh keystream

generator. Kemudian pesan dan keystream diubah menjadi angka, lalu

dijumlahkan. Jika penjumlahannya lebih dari 26, maka dilakukan modulo 26 atau

dikurangi dengan angka 26. Hal ini dikarenakan abjad A sampai Z yang

berjumlah 26. Kemudian ubah hasil penjumlahan angka tersebut mejadi huruf.

Keluaran dari proses ini adalah ciphertext yang nantinya akan digunakan pada

proses pembangkitan MAC dan akan digabungkan (embed) dengan wadah

penampung yaitu transkrip nilai.

Proses berikutnya yaitu proses pembangkitan MAC. Pada proses

pembangkitan nilai MAC terdapat dua proses, yaitu akumulasi dan finalisasi.

Awalnya pesan telah dienkripsi menggunakan keystream yang menghasilkan

sebuah ciphertext, akan digunakan sebagai nilai MAC. Kemudian ciphertext

tersebut akan diakumulasi. Proses akumulasi ini ditujukan untuk mengumpulkan

Page 17: Penggunaan Message Authentication Code dan Algoritma ...repository.uksw.edu/bitstream/123456789/15109/2/T1_672010036_Full... · Transkrip nilai umumnya menjadi salah satu syarat bagi

8

nilai MAC, sehingga panjang MAC yang dihasilkan sesuai dengan yang

dibutuhkan. Panjang MAC disini sebenarnya tidak memiliki standar, namun untuk

keseragaman akan dipergunakan nilai MAC dengan panjang 64 bit. Proses

akumulasi yang dilakukan adalah membentuk kumpulan himpunan yang masing-

masing himpunan terdiri dari 64 bit data. Kemudian proses finalisasi berfungsi

untuk melakukan penyesuaian terhadap panjang MAC yang akan dibentuk.

Penyesuaian panjang dilakukan dengan menggunakan operator exclusive-OR

sehingga diperoleh MAC sepanjang 64 bit. Nilai MAC inilah yang kemudian

dimasukkan ke dalam image transkrip nilai yang nantinya akan dipergunakan

untuk mengotentikasi pesan apakah telah terjadi perubahan atau tidak. Proses ini

dapat dilihat pada Gambar 7.

Gambar 7 Alur Proses Pembangkitan MAC

Proses embed melewati beberapa proses, pertama proses membaca setiap

pixel yang terdapat pada file transkrip. Kemudian proses mengubah MAC (MAC0)

menjadi bit. Bit inilah yang akan disisipkan ke LSB warna file transkrip nilai.

Proses ini akan berhenti apabila semua bit sudah selesai di-embedded ke dalam

LSB warna transkrip nilai. Proses steganografi ini dapat dilihat pada Gambar 8.

Page 18: Penggunaan Message Authentication Code dan Algoritma ...repository.uksw.edu/bitstream/123456789/15109/2/T1_672010036_Full... · Transkrip nilai umumnya menjadi salah satu syarat bagi

9

Gambar 8 Proses Embed Gambar 9 Proses Extract MAC0

Proses extracting data merupakan proses untuk membaca pesan yang

disisipkan di dalam media penampung. Sistem akan membaca tiap pixel pada

image, dan membaca tiap komponen warna pada pixel tersebut yaitu red, green,

dan blue. Satu komponen warna bernilai satu byte. Jika komponen warna tersebut

bernilai lemah, maka akan diambil nilai LSB-nya, dan disimpan pada variabel

penampung. Proses ini akan diulangi hingga semua bit pesan selesai terbaca.

Pesan yang didapat, akan disimpan sebagai file baru, proses selesai dengan output

pesan yang telah diekstrak. Proses ini ditunjukkan pada Gambar 9.

Page 19: Penggunaan Message Authentication Code dan Algoritma ...repository.uksw.edu/bitstream/123456789/15109/2/T1_672010036_Full... · Transkrip nilai umumnya menjadi salah satu syarat bagi

10

4. Analisis dan Pembahasan

Hasil implementasi sistem berdasarkan perancangan yang telah dilakukan,

dijelaskan sebagai berikut.

Gambar 10 Antarmuka Sistem

Gambar 10 menunjukkan antarmuka sistem. Aplikasi yang dibangun

menyediakan dua menu utama, yaitu menu verifikasi transkrip dan menu

administrator. Menu verifikasi transkrip adalah menu yang digunakan oleh pihak

yang berkepentingan untuk menverifikasi transkrip nilai sedangkan menu

administrator digunakan oleh admin untuk memberi sign pada transkrip nilai

sebelum diberikan ke mahasiswa.

Pada menu administrator, admin akan memilih file transkrip, dengan

memilih button Choose File. Proses selanjutnya, yaitu admin memasukkan kunci

(key) dan pesan (message), kemudian memilih tombol Generate MAC untuk

melakukan proses signing. Setelah melakukan proses signing, kemudian memilih

tombol Save Result yang akan menyimpan transkrip yang telah tersertifikasi.

Setelah file tersimpan, kemudian pilih menu Log out untuk keluar dari proses

signing (admin).

Pada menu verifikasi transkrip, user akan memilih file transkrip yang

sudah di-signing sebelumnya dengan memilih button Choose File. Kemudian user

memasukkan kunci yang sebelumnya sudah diketahui lalu memilih tombol Verify

MAC untuk melakukan pengecekan file. File dikatakan valid apabila file tersebut

sudah melewati proses signing sebelumnya, jika belum maka file tersebut akan

dinyatakan tidak valid. Antarmuka transkrip valid ditunjukkan pada Gambar 11.

Page 20: Penggunaan Message Authentication Code dan Algoritma ...repository.uksw.edu/bitstream/123456789/15109/2/T1_672010036_Full... · Transkrip nilai umumnya menjadi salah satu syarat bagi

11

Gambar 11 Antarmuka Transkrip Valid

Kode Program 1 Perintah untuk Proses Enkripsi/Dekripsi dengan Solitaire 1. protected String Convert(String message, Boolean encode)

2. {

3. StringBuilder sb = new StringBuilder();

4. int curChar, curKey;

5. int x = 0;

6. while (x < message.Length)

7. {

8. PushAndCut();

9. curChar = ((int)message[x] - 64);

10. curKey = _deck[0]; 11. 12. if (curKey == 54) 13. curKey = _deck[53]; // JokerB's value is 53 14. else 15. curKey = _deck[curKey]; 16. 17. if (encode) 18. curChar = (curChar + curKey); 19. else 20. { // decode 21. if (curChar < curKey) curChar += 26; 22. curChar = (curChar - curKey); 23. } 24. if (curKey < 53) { 25. if (curChar > 26) curChar %= 26; 26. if (curChar < 1) curChar += 26; 27. sb.Append((char)(curChar + 64)); 28. x++; 29. } 30. } 31. return sb.ToString(); 32. }

Kode Program 1 merupakan perintah untuk proses enkripsi/dekripsi

solitaire cipher. Parameter encode bernilai TRUE jika fungsi tersebut digunakan

untuk proses enkripsi, dan sebaliknya bernilai FALSE jika digunakan untuk

proses dekripsi.

Kode Program 2 Perintah untuk Proses Pembangkitan Nilai MAC 1. public const int BitLength = 64;

2.

3. public static byte[] Generate(string message, string key)

Page 21: Penggunaan Message Authentication Code dan Algoritma ...repository.uksw.edu/bitstream/123456789/15109/2/T1_672010036_Full... · Transkrip nilai umumnya menjadi salah satu syarat bagi

12

4. {

5. string cipher = SolitaireWrapper.Encrypt(message, key);

6. byte[] feed = Encoding.Default.GetBytes(cipher);

7. return Generate(feed);

8. }

9.

10. public static byte[] Generate(byte[] feed, int bitLength = BitLength) 11. { 12. int byteLength = bitLength / 8; 13. 14. List<byte[]> acculated = Accumulate(feed, byteLength); 15. byte[] finalized = Finalize(acculated); 16. return finalized; 17. } 18. 19. private static List<byte[]> Accumulate(byte[] feed, int byteLength) 20. { 21. List<byte[]> list = new List<byte[]>(); 22. int padding = byteLength - (feed.Length % byteLength); 23. byte[] fullyPadded = new byte[feed.Length + padding]; 24. Array.Copy(feed, fullyPadded, feed.Length); 25. 26. for (int i = 0; i < fullyPadded.Length; i += byteLength) 27. { 28. byte[] part = new byte[byteLength]; 29. Array.Copy(fullyPadded, i, part, 0, part.Length); 30. list.Add(part); 31. } 32. return list; 33. } 34. 35. private static byte[] Finalize(List<byte[]> acculated) 36. { 37. int byteLength = acculated[0].Length; 38. byte[] mac = new byte[byteLength]; 39. Array.Copy(acculated[0], mac, mac.Length); 40. for (int i = 1; i < acculated.Count; i++) 41. { 42. mac = XOR(mac, acculated[i]); 43. } 44. return mac; 45. } 46. 47. private static byte[] XOR(byte[] mac, byte[] p) 48. { 49. byte[] result = new byte[mac.Length]; 50. 51. for (int i = 0; i < mac.Length; i++) 52. { 53. result[i] = (byte)(mac[i] ^ p[i]); 54. } 55. return result; 56. } 57.

Kode Program 2 merupakan potongan perintah yang terdapat pada class

MAC. Diawali dari fungsi Generate (baris 10-17), dilakukan proses enkripsi.

Kemudian dipanggil fungsi Accumulate (baris 19-32) yang merupakan perintah

untuk membentuk kumpulan himpunan yang masing-masing himpunan terdiri dari

64 bit data. Kemudian himpunan-himpunan tersebut dilakukan proses finalisasi

dengan menggunakan operator exclusive-OR, sehingga pada akhirnya terbentuk

nilai MAC dengan panjang 64 bit.

Kode Program 3 Perintah untuk Proses Embedding 1. public static Bitmap Embed(Bitmap bitmap, byte[] message)

2. {

3.

4. byte[] pixels = PixelTool.ExtractColors(bitmap);

Page 22: Penggunaan Message Authentication Code dan Algoritma ...repository.uksw.edu/bitstream/123456789/15109/2/T1_672010036_Full... · Transkrip nilai umumnya menjadi salah satu syarat bagi

13

5. char[] biner = GetBitString(message).ToCharArray();

6. for (int i = 0; i < biner.Length; i++)

7. {

8. pixels[i] = ReplaceLSB(pixels[i], biner[i]);

9. }

10. Bitmap embedded = PixelTool.CombineColors(bitmap, pixels); 11. return embedded; 12. }

Kode Program 3 merupakan perintah untuk proses embedding. Data yang

tersimpan dalam variabel message, diubah ke dalam bentuk binary (baris 5).

Untuk tiap bit pada bentuk binary tersebut, disisipkan dalam 1 warna pada gambar

(baris 6-9). Proses penyisipan berarti menggantikan nilai LSB dari warna, dengan

bit pesan (baris 8). Kemudian warna-warna yang telah disisipi, disatukan kembali

dalam bentuk gambar (baris 10).

Kode Program 4 Perintah untuk Proses Extracting 1. public static byte[] Extract(Bitmap bitmap, int bitLength)

2. {

3. byte[] pixels = PixelTool.ExtractColors(bitmap);

4. List<char> bits = new List<char>();

5. for (int i = 0; i < bitLength; i++)

6. {

7. bits.Add(RetrieveLSB(pixels[i]));

8. }

9. byte[] message = GetBytesArray(new string(bits.ToArray()));

10. return message; 11. }

Kode Program 4 merupakan perintah untuk mengekstraksi bit pesan yang

tersimpan pada gambar. Pada tiap warna dalam gambar, dibaca nilai dari LSB,

kemudian bit-bit tersebut disatukan kembali sehingga menjadi data dalam format

byte array (baris 9).

Pengujian terhadap sistem message authentication code yang telah

dibangun, dilakukan untuk memenuhi syarat keamanan data yakni authentication

(keaslian data dapat terjamin) dan integrity (data masih dalam keadaan asli atau

belum pernah diubah). Terdapat 6 file transkrip nilai dengan berbagai macam

ukuran sebagai data set pengujian.

Pengujian dilakukan dengan menggunakan software pendukung yakni

PixelDiff. Software ini berfungsi untuk mengukur dan membandingkan dua image

yang secara kasat mata sama. Pengujian dilakukan dengan membandingkan antara

file image transkrip yang belum di-signing dan sesudah di-signing. Hasil

pengujian dapat dilihat pada Tabel 1.

Tabel 1 Hasil Pengujian Perbedaan Pixel

Berdasarkan Tabel 1, pada pengujian pertama dapat dilihat bahwa

perbedaan pixel sebelum dan sesudah dilakukan signing memiliki perbedaan pixel

sebesar 1604614 pixel, sedangkan pengujian kedua mengalami perbedaan pixel

sebesar 794955 pixel. Hal ini menunjukkan bahwa perubahan besaran pixel yang

Page 23: Penggunaan Message Authentication Code dan Algoritma ...repository.uksw.edu/bitstream/123456789/15109/2/T1_672010036_Full... · Transkrip nilai umumnya menjadi salah satu syarat bagi

14

terjadi setelah proses signing cukup terlihat, namun perbedaan gambar tidak

terlihat mencolok antara asli dan setelah signing. Sedangkan dilihat dalam ukuran

file pada percobaan 1 dan 2, memiliki perbedaan dengan ukuran file transkrip

yang asli.

Pengujian perbandingan hash sebelum signing dan sesudah dilakukan

verifikasi dapat dilihat pada Tabel 2.

Tabel 2 Hasil Pengujian Perbedaan Hash

Berdasarkan Tabel 2 dapat dibuktikan bahwa message digest transkrip

sebelum signing (Transkrip 1.png) dan setelah diverifikasi memiliki karakter key

yang sama, sehingga dapat dikatakan valid.

Pengujian authentication dilakukan untuk melihat hasil verifikasi transkrip

nilai tersertifikasi dengan message authentication code dapat dilihat pada Tabel 3.

Tabel 3 Hasil Pengujian Authentication

Berdasarkan Tabel 3 dapat disimpulkan bahwa aplikasi ini dapat

mendeteksi bila kunci yang digunakan berbeda. Setiap ada kesalahan dalam

memasukkan nilai kunci otomatis verifikasi gagal.

Percobaan Integrity untuk melihat hasil verifikasi setelah dilakukan

manipulasi data pada file transkrip menggunakan aplikasi manipulasi gambar

dapat dilihat pada Tabel 4.

Page 24: Penggunaan Message Authentication Code dan Algoritma ...repository.uksw.edu/bitstream/123456789/15109/2/T1_672010036_Full... · Transkrip nilai umumnya menjadi salah satu syarat bagi

15

Tabel 4 Hasil Pengujian Integrity

Berdasarkan Tabel 4 dapat disimpulkan bahwa aplikasi ini dapat

mendeteksi perubahan yang terjadi pada file transkrip. Perubahan apapun yang

dilakukan pada file transkrip yang sudah di-signing terlebih dahulu akan membuat

file menjadi tidak valid.

Pengujian selanjutnya yakni perbandingan antara ukuran file dengan waktu

proses dibagi menjadi dua macam yakni, ukuran file dengan waktu proses signing

serta ukuran file dengan waktu proses verifikasi. Pengujian ukuran file dengan

waktu proses dapat dilihat pada Tabel 5.

Tabel 5 Hasil Pengujian Waktu Proses Signing

Tabel 5 merupakan hasil pengujian waktu proses signing. Pengujian

dilakukan dengan spesifikasi komputer yakni processor Intel Core 2 duo 2.1GHz,

2048MB RAM Windows 7 Ultimate 32 bit. Berdasarkan Tabel 5, selisih waktu

antara pengujian pertama dengan pengujian kedua yakni 5.444s, percobaan ketiga

dengan percobaan ke empat yakni 2.465s, serta percobaan ke lima dengan

percobaan ke enam yakni 1.514s. Berdasarkan pada selisih tersebut antara ukuran

file Transkrip 1 dan Transkrip 6, semakin kecil ukuran file yang di-signing maka

semakin sedikit waktu proses yang diperlukan, sebaliknya semakin besar ukuran

file yang diproses maka semakin banyak pula waktu proses yang diperlukan.

Resolusi ditampilkan pada tabel karena transkrip nilai yang digunakan seharusnya

tetap dapat dilihat saat diperbesar.

Page 25: Penggunaan Message Authentication Code dan Algoritma ...repository.uksw.edu/bitstream/123456789/15109/2/T1_672010036_Full... · Transkrip nilai umumnya menjadi salah satu syarat bagi

16

Tabel 6 Hasil Pengujian Waktu Proses Verifikasi

Tabel 6 merupakan pengujian waktu verifikasi, perbedaan waktu antara

percobaan pertama dengan percobaan kedua yakni 2.355s, pecobaan ketiga

dengan percobaan keempat 0.515s dan percobaan kelima dan percobaan keenam

yakni 0.515s. Dapat disimpulkan bahwa pengujian pada proses verifikasi

mempunyai waktu yang lebih cepat dari pada proses signing. Waktu proses yang

diperlukan lebih sedikit apabila ukuran file transkrip nilai yang diverifikasi lebih

kecil. Sedangkan waktu yang diperlukan lebih banyak apabila file transkrip yang

diverifikasi lebih besar. Hal tersebut dikarenakan pada proses signing terdapat

proses READ piksel dari gambar, mengganti LSB, embedding, kemudian proses

WRITE piksel kembali ke gambar, sedangkan pada proses verifikasi hanya

terdapat proses READ saja.

5. Simpulan

Berdasarkan penelitian dan pengujian yang telah dibuat, untuk

mengamankan data transkrip nilai berbentuk citra yakni dengan menggunakan

message authentication code (MAC), enkripsi algoritma solitaire untuk

penandatanganan pesan sekaligus pembangkit MAC serta algoritma

steganography LSB untuk menyisipkan message authentication code dan pesan

ke dalam image transkrip maka dihasilkan kesimpulan: 1). Pengaman dokumen

dapat dilakukan dengan menggunakan algoritma MAC; 2) Algoritma solitaire

dapat diterapkan sebagai proses otentikasi pada proses pembangkitan dan

verifikasi MAC; 3) Penelitian menghasilkan aplikasi otentikasi dokumen, yang

dapat memastikan keaslian (otentik) dan keutuhan (integritas) suatu dokumen

transkrip, dengan menggunakan algoritma MAC, Solitaire dan LSB Embedding.

Saran yang dapat diberikan untuk penelitian selanjutnya adalah sebagai berikut:

(1) Sistem memiliki fitur untuk menampilkan proses bar ketika waktu proses

sehingga dapat dilihat saat prosesnya berjalan; (2) Sistem dapat men-signing file

gambar dalam format apa saja tidak hanya format png.

Page 26: Penggunaan Message Authentication Code dan Algoritma ...repository.uksw.edu/bitstream/123456789/15109/2/T1_672010036_Full... · Transkrip nilai umumnya menjadi salah satu syarat bagi

17

6. Daftar Pustaka

[1] Keswara, Ratih, 2014, Kasus pemalsuan transkrip nilai butuh kajian

hukum, http://nasional.sindonews.com/read/825285/15/kasus-pemalsuan-

transkrip-nilai-butuh-kajian-hukum-1389317428. Diakses tanggal 22

Oktober 2014. [2] Munir, Rinaldi, 2006, Kriptografi Steganografi dan Watermarking,

Bandung: Institut Teknologi Bandung.

[3] Ramadhany, Taufik, 2009. Solitaire Cipher, Jurnal, Bandung: Institut

Teknologi Bandung.

[4] Adiprabowo, Yudha, Munir, Rinaldi, 2012. Implementasi Algoritma MAC

Berbasis Cipher Blok Sebagai Program Add-in di Microsoft Word untuk

Otentikasi Dokumen, Jurnal, Bandung: Institut Teknologi Bandung.

[5] Christie, Endly, Sediyono, Eko, Pakereng, M. A. Ineke, 2014. Verifikasi

Otentifikasi Data Transkrip Nilai Berbentuk Citra Menggunakan SHA-512,

Skripsi, Salatiga: Universitas Kristen Satya Wacana.

[6] Arief, Raditya, 2010. Files Authentication Code (FAC) : Pengembangan

MAC Untuk Digunakan Dalam Menjamin Integritas Berkas, Jurnal,

Bandung: Institut Teknologi Bandung.

[7] Schneier, Bruce, 1999. The Solitaire Encryption Algorithm,

https://www.schneier.com/solitaire.html. Diakses tanggal 22 Oktober 2014.

[8] Jamasoka, Septu, 2012. Perbandingan Steganografi pada Citra Gambar

Graphics Interchange Format dengan Algoritma Gifshuffle dan Metode

Least Significant Bit, Jurnal, Bandung: Institut Teknologi Bandung.