TUGAS AKHIR
KEAMANAN SISTEM LANJUT
APLIKASI DIGITAL SIGNATURE SEBAGAI AUTENTIKASI PADA KARTU TANDA PENDUDUK(KTP)
Oleh
NAMA: DESI RAMAYANTI NIM: 232 06 006
MAGISTER TEKNIK ELEKTRO INSTITUT TEKNOLOGI BANDUNG
2007
Daftar Isi
1 PENDAHULUAN 1
2 LANDASAN TEORI 1
2.1 Authentication . . . 1
2.2 Kriptografi . . . 2
2.3 Enkripsi . . . 3
2.4 Digital Signature . . . 6
2.5 Fungsi Hash Satu Arah . . . 8
2.6 Sistem Kriptografi MD5 . . . 9
2.7 Algoritma AES (Advanced Encryption Standard) . . . 12
3 APLIKASI DIGITAL SIGNATURE PADA KTP 15 3.1 Proses Hashing dengan MD5 . . . 16
3.2 Enkripsi dengan AES . . . 24
4 KESIMPULAN DAN SARAN 26
Ringkasan
Kartu Tanda Penduduk (KTP) adalah nama resmi kartu identitas seseorang di Indonesia yang diperoleh setelah seseorang berusia di atas 17 tahun atau yang sudah menikah. KTP ini digunakan pada berbagai bidang sebagai bukti identitas resmi yang diakui. Pada dasarnya setiap orang hanya memiliki satu KTP dan bersifat unik. Tetapi ada pihak yang dengan sengaja memalsukan KTP ini untuk maksud- maksud tertentu. Jika KTP palsu tersebut digunakan untuk suatu tindak kejahatan dengan mengatas namakan orang lain, maka tentu saja perbuatan tersebut dapat merugikan orang lain.
Oleh sebab itu maka penulis bermaksud untuk memperkecil ruang gerak pemalsuan KTP tersebut dengan menerapkan metoda digital signature pada setiap KTP resmi yang dikeluarkan oleh Pemerintah. Dalam hal ini yang menjadi digital signaturenya adalah Nomor Induk Kependudukan (NIK). Karena Nomor Induk Kependudukan atau NIK adalah nomor yang unik yang hanya dimiliki oleh seseorang dari lahir sampai meninggal dunia.
Digital signature merupakan salah satu aplikasi dari kriptografi dimana aplikasi ini diterapkan pada Kartu Tanda Penduduk (KTP) yang berfungsi sebagai otentikasi dari pemilik yang sah. Algoritma yang digunakan untuk melakukan proses hashing adalah MD5. Dimana hasil dari MD5 adalah Message digest. Hasil dari MD5 ini akan dienkripsi dengan menggunakan algoritma AES dengan Cipher Mode Counter.
1 PENDAHULUAN
Kartu Tanda Penduduk (KTP) adalah nama resmi kartu identitas seseorang di Indonesia yang diperoleh setelah seseorang berusia di atas 17 tahun atau yang sudah menikah. KTP berlaku selama 5 tahun dan tanggal berakhirnya disesuaikan dengan tanggal dan bulan kelahiran yang bersangkutan. Dimana pada KTP berisi informasi mengenai sang pemilik kartu, termasuk: nama lengkap, Nomor Induk Kependudukan (NIK), alamat, tempat dan tanggal lahir, agama, golongan darah, kewarganegaraan, foto dan tanda tangan.
KTP ini digunakan pada berbagai bidang sebagai bukti identitas resmi yang diakui.
Pada dasarnya setiap orang hanya memiliki satu KTP dan bersifat unik. Tetapi ada pihak yang dengan sengaja memalsukan KTP ini untuk maksud-maksud tertentu.
Jika KTP palsu tersebut digunakan untuk suatu tindak kejahatan dengan mengatas namakan orang lain, maka tentu saja perbuatan tersebut dapat merugikan orang lain.
Oleh sebab itu maka penulis bermaksud untuk memperkecil ruang gerak pemalsuan KTP tersebut dengan menerapkan metoda digital signature pada setiap KTP resmi yang dikeluarkan oleh Pemerintah. Dalam hal ini yang menjadi digital signaturenya adalah Nomor Induk Kependudukan (NIK). Karena Nomor Induk Kependudukan atau NIK adalah nomor yang unik yang hanya dimiliki oleh seseorang dari lahir sampai meninggal dunia.
2 LANDASAN TEORI
2.1 Authentication
Authentication (berasal dari bahasa Yunani yakni “authentes”= pengarang, yaitu suatu tindakan untuk menetapkan sesuatu atau seseorang adalah asli. Membuktikan kesalian suatu objek adalah dengan menetapkan tempat asalnya, sedangkan untuk membuktikan keaslian seseorang adalah dengan identitas mereka.
Authentication pada manusia tergantung kepada beberapa faktor yaitu
• Something the user is
Contohnya adalah DNA, pola retina mata, sidikjari, pola suara, biometrik, sinyal bio-elektrik yang dihasilkan oleh tubuh, dan
• Something the user has
Contohnya adalah ID Card, security token, software token dan cell phone.
• Something the user knows
Contohnya adalah password, PIN dll.
Masalah pertama, membuktikan keaslian dokumen, dapat dilakukan dengan teknolo gi watermarking dan digital signature. Watermarking juga dapat digunakan untuk menjaga intelectual property, yaitu dengan menandai dokumen atau hasil karya dengan tanda tangan pembuat.
Masalah kedua adalah access control. Sebuah sistem komputer diharapkan untuk dapat digunakan hanya oleh yang diberi hak, sehingga sistem komputer tersebut harus bisa mendeteksi dan menolak user yang tidak punya hak. Contoh access control yang menyertakan Authentication meliputi:
• Penarikan tunai di ATM
• Menggunakan sistem internet banking
• Pengontrollan remote komputer dengan internet
2.2 Kriptografi
Kriptografi berasal dari bahasa yunani yang terdiri dari kata kryptos yang berarti tersembunyi dan grafo yang berarti tulis. Kriptografi, secara umum adalah ilmu dan seni untuk menjaga kerahasiaan berita. Selain pengertian tersebut kriptografi juga merupakan ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan data, keabsahan data, integri tas data, serta autentikasi data.
Ada empat tujuan mendasar dari ilmu kriptografi yang merupakan aspek keamanan informasi yaitu :
• Kerahasiaan
Merupakan layanan yang digunakan untuk menjaga isi dari informasi dari siapapun kecuali yang memiliki otoritas atau kunci rahasia untuk membuka atau mengupas informasi yang telah disandi.
• Integritas data
Berhubungan dengan penjagaan dari perubahan data secara tidak sah. Untuk menjaga integritas data, sistem harus memiliki kemampuan untuk mendeteksi manipulasi data oleh pihak-pihak yang tidak berhak, antara lain penyisipan, penghapusan, dan pensubsitusian data lain kedalam data yang sebenarnya.
• Autentikasi
Berhubungan dengan identifikasi / pengenalan, baik secara kesatuan sistem maupun informasi itu sendiri. Dua pihak yang saling berkomunikasi harus saling memperkenalkan diri. Informasi yang dikirimkan melalui kanal harus diautentikasi keaslian, isi datanya, waktu pengiriman, dan lain-lain.
• Non-repudiasi
Usaha untuk mencegah terjadinya penyangkalan terhadap pengiriman atau terciptanya suatu informasi oleh yang mengirimkan/membuat.
Gambar 1: Sistem Kriptografi
Keterangan gambar
• Plaintext adalah pesan atau informasi yang akan dikirimkan dalam format yang mudah dibaca atau dalam bentuk aslinya. Ciphertext.
• Data diacak dengan menggunakan Kunci Enkripsi (Encryption Key).
• Ciphertext adalah pesan atau informasi yang sudah dienkripsi sehingga tidak dapat dibaca dengan mudah.
• Proses pengacakan atau Proses yang dilakukan untuk mengamankan sebuah pesan (yang disebut plaintext) menjadi pesan yang tersembunyi (disebut cipher text) adalah enkripsi (encryption). Menurut ISO 7498-2, terminologi yang lebih tepat digunakan adalah encipher.
• Proses sebaliknya, untuk mengubah ciphertext menjadi plaintext, disebut de kripsi (decryption). Menurut ISO 7498-2, terminologi yang lebih tepat untuk proses ini adalah decipher.
• Kunci yang digunakan pada tahap Dekripsi disebut Kunci Dekripsi (Decryption Key).
• Pada prakteknya, selain pihak yang berwenang ada pihak ketiga yang selalu berusaha untuk mengembalikan CipherTeks ke PlainTeks atau memecahkan Kunci Dekripsi. Usaha oleh pihak ketiga ini disebut Kriptanalisis (Cryptana lysis).
2.3 Enkripsi
Enkripsi digunakan untuk menyandikan data-data atau informasi sehingga tidak dapat dibaca oleh orang yang tidak berhak. Dengan enkripsi data anda disandikan (encrypted) dengan menggunakan sebuah kunci (key). Untuk membuka (decrypt) data tersebut digunakan juga sebuah kunci yang dapat sama dengan kunci untuk mengenkripsi (untuk kasus private key cryptography) atau dengan kunci yang ber beda (untuk kasus public key cryptography).
Secara matematis, proses atau fungsi enkripsi (E) dapat dituliskan sebagai:
E(M ) = C
Dimana: M adalah plaintext (message) dan C adalah ciphertext. Proses atau fungsi dekripsi (D) dapat dituliskan sebagai:
D(C) = M Elemen dari Enkripsi
Teknik kriptografi modern yang ada saat ini dapat dikelompokkan sebagaimana ditunjukkan pada Gambar 2.
Gambar 2: Pengelompokkan enkripsi beserta contoh
• Kriptosistem Simetrik (Symmetric Cryptosystem)
Disebut juga Kunci Pribadi (Private Key) adalah metode kriptografi di mana kunci enkripsi bisa diperoleh dari kunci deskripsi atau sebaliknya.
• Kriptosistem Asimetrik (Asymmetric Cryptosystem)
Kebalikan dari Kriptosistem Simetrik atau disebut juga Kunci Publik (Public Key). Kunci Pribadi berarti bahwa pemegang kunci enkripsi maupun dekripsi hanyalah pihak-pihak berwenang saja.
Karena melihat kembali sifatnya, bila pihak ketiga memperoleh salah satu kunci tersebut maka dia bisa memperoleh kunci yang lain. Kunci Publik berarti Kunci Enkripsi dapat disebarluaskan ke publik sedangkan pihak berwe nang cukup menjaga kerahasiaan Kunci Deskripsi.
Berdasarkan cara memproses teks (plaintext), cipher dapat dikategorikan menjadi dua jenis:
• Block Cipher
Pada Block Cipher, sesuai namanya, data Plain Teks diolah per blok data.
Block cipher bekerja dengan memproses data secara blok, dimana beberapa karakter / data digabungkan menjadi satu blok. Setiap proses satu blok menghasilkan keluaran satu blok juga.
• Stream Cipher
Pada Stream Cipher, data Plain Teks diolah per satuan data terkecil, misalnya perbit atau per karakter. Stream cipher bekerja memproses masukan (karakter atau data) secara terus menerus dan menghasilkan data pada saat yang ber samaan.
Teknik Kriptografi kemudian dibagi lagi menjadi dua kelompok, yaitu :
• Synchronized Cipher dimana Kunci Enkripsi dan Kunci Dekripsi perlu disinkro nisasi.
• Asynchronized Cipher dimana sinkronisasi tidak diperlukan.
Stream Cipher dapat dibagi menjadi dua kelompok ini (Synchronized dan Asynchro nized cipher) sedangkan pada Block Cipher hanya ada Synchronized Cipher.
Power-Residual Form Cipher adalah teknik dimana dalam proses enkripsinya meng gunakan rumus matematika XY (mod N) atau rumus yang mirip seperti itu.
Knapsack Form Cipher adalah teknik yang menggunakan Knapsack Problem yang merupakan problem komputasi kelas NP-Komplit (NP-Complete atau NP-Hard).
Kunci yang digunakan dan panjangnya kunci.
Kekuatan dari penyandian bergantung kepada kunci yang digunakan. Beberapa algoritma enkripsi memiliki kelemahan pada kunci yang digunakan. Untuk itu, kunci yang lemah tersebut tidak boleh digunakan. Selain itu, panjangnya kunci, yang biasanya dalam ukuran bit, juga menentukan kekuatan dari enkripsi. Kunci yang lebih panjang biasanya lebih aman dari kunci yang pendek. Jadi enkripsi dengan menggunakan kunci 128 bit lebih sukar dipecahkan dengan algoritma enkripsi yang sama tetapi dengan kunci 56 bit. Semakin panjang sebuah kunci, semakin besar keyspace yang harus dijalani untuk mencari kunci dengan cara brute force attack atau coba-coba karena keyspace yang harus dilihat merupakan pangkat dari bilangan 2. Jadi kunci 128 bit memiliki keyspace 2128, sedangkan kunci 56 bit memiliki keyspace 256. Artinya semakin lama kunci baru bisa ketahuan.
2.4 Digital Signature What is digital signature?
Berikut ini merupakan gambaran dari digital signature.
Bob telah diberi 2 kunci, salah satunya disebut public key dan yang satu disebut private key.
Gambar 3: Dua Kunci Pada Bob
Gambar 4: Kunci Publik Bob
Kunci publik Bob tersedia untuk siapa saja yang membutuhkannya, tetapi kunci private nya disimpan untuk dirinya sendiri. Dimana kunci tersebut digunakan untuk mengenkripsi data.
Susan dapat mengenkripsi pesan menggunakan kunci publik Bob dan Bob mengguna kan kunci privatenya untuk mendekripsi pesan tersebut (seperti gambar 5 dibawah ini). Siapapun dari Teman sekerja bob mungkin mempunyai akses terhadap pesan susan yang dienkripsi, tetapi tanpa Kunci private Bob, data tersebut tidak berharga.
Gambar 5: Enkripsi dan Deskripsi Message
Gambar 6: Hashing
Untuk menandai dokumen, dokumen tersebut akan dihash dengan menggunakan suatu software dan disebut sebagai ”Message digest”.
Kemudian Message Digest tersebut akan dienkripsi dengan kunci publik dan meng hasilkan digital signature. Dan digital signature ini akan ditambahkan pada dokumen, sehingga semua data yang telah dihash telah ditandatangani.
Gambar 7: Enkripsi Message Digest
Dengan Kunci private nya dan menggunakan software yang benar, Bob dapat menam bahkan digital signature pada dokumen atau data lainnya, dimana suatu digital signature adalah sebuah tanda dari Bob yang ditempatkan pada data secara unik.
Gambar 8: Digital Signature pada dokumen
2.5 Fungsi Hash Satu Arah
Fungsi hash satu arah memiliki banyak nama: fungsi pembanding, fungsi penyusutan, intisari pesan, sidik jari, message integrity check (MIC) atau pemeriksa keutuhan pesan dan manipulation detection code (MDC) atau pendektesi penyelewengan kode.
Fungsi hash satu arah dibuat berdasarkan ide tentang fungsi pemampatan. Fungsi hash adalah sebuah fungsi atau persamaan matematika yang mengambil input deng an panjang variabel (preimage) dan merubahnya menjadi panjang yang tetap (biasa nya lebih pendek), keluarannya biasa disebut nilai hash.
Fungsi hash satu arah adalah sebuah fungsi hash yang berjalan hanya satu arah.
Adalah mudah untuk menghitung nilai hash dari pre-image, tetapi sangat sulit untuk membangkitkan pre-image dari nilai hash-nya.
Metode fungsi hash satu arah adalah berfungsi melindungi data dari modifikasi.
Apabila ingin melindungi data dari modifikasi yang tidak terdeteksi, dapat di hitung hasil fungsi hash dari data tersebut, selanjutnya dapat menghitung hasil fungsi hash lagi dan membandingkannya dengan hasil yang pertama apabila berbeda maka terjadi perubahan selama pengiriman.
Sebagai contohnya adalah bila si pengirim (A) akan mengirim pesan kepada teman nya (B). Sebelum mengirim, A melakukan hash dari pesannya untuk mendapatkan nilai hash kemudian dia mengirim pesan itu beserta nilai hashnya, Lalu B melakukan hash untuk mencari nilai hash dari pesan itu bila terjadi perbedaan maka sewaktu pengiriman telah terjadi perubahan dari pesan tersebut. Masukan dari fungsi hash
satu arah adalah blok pesan dan keluaran dari blok text atau nilai hash sebelumnya ini dapat dilihat pada Gambar 9 sehingga secara garis besar, hash dari blok M i adalah:
hi = f (M i, hi − 1)
Gambar 9: Fungsi Hash Satu Arah
Nilai hash ini bersama blok pesan berikutnya menjadi masukan berikutnya bagi fungsi pemampatan. Nilai hash keseluruhan adalah nilai hash dari blok paling akhir.
Preimage sedapatnya mengandung beberapa binari yang menggambarkan panjang dari masukan pesan. Teknik ini digunakan untuk mengatasi masalah yang dapat terjadi bila pesan yang mempunyai pesan yang tidak sama mempunyai nilai hash yang sama. Metode ini biasa disebut Message Digest(MD) strengthening atau peng uatan MD.
2.6 Sistem Kriptografi MD5
MD5 merupakan fungsi hash satu arah yang diciptakan oleh Ron Rivest. MD5 adalah salah satu aplikasi yang digunakan untuk mengetahui bahwa pesan yang dikirim tidak ada perubahan sewaktu berada di jaringan. Algoritma MD5 secara garis besar adalah mengambil pesan yang mempunyai panjang variabel diubah men jadi sidik jari atau intisari pesan yang mempunyai panjang tetap yaitu 128 bit. Sidik jari ini tidak dapat dibalik untuk mendapatkan pesan, dengan kata lain tidak ada orang yang dapat melihat pesan dari sidik jari MD5.
Message digest atau intisari pesan harus mempunyai tiga sifat penting, yaitu:
1. Bila P diketahui, maka M D(P ) akan dengan mudah dapat dihitung.
2. Bila M D(P ) diketahui, maka tidak mungkin menghitung P .
3. Tidak seorang pun dapat memberi dua pesan yang mempunyai intisari pesan yang sama. H(M ) 6= H(M ).
Pada bagian ini dijelaskan mengenai sistem kriptografi MD-5 secara spesifik, yaitu sistem kriptografi algoritma MD5 yang menjelaskan dari awal masukan hingga ke luarannya.
Prinsip Dasar MD5
Message Digest 5 (MD5) adalah salah satu penggunaan fungsi hash satu arah yang paling banyak digunakan. MD5 merupakan fungsi hash kelima yang dirancang oleh
Ron Rivest dan didefinisikan pada RFC 1321. MD5 merupakan pengembangan dari MD4 dimana terjadi penambahan satu ronde. MD5 memproses teks masukan ke dalam blok-blok bit sebanyak 512 bit, kemudian dibagi ke dalam 32 bit sub blok sebanyak 24 16 buah. Keluaran dari MD5 berupa 4 buah blok yang masing-masing 32 bit yang mana akan menjadi 128 bit yang biasa disebut nilai hash.
Pada Gambar 10 terlihat simpul utama dari MD5. Simpul utama MD5 mempunyai blok pesan dengan panjang 512 bit yang masuk ke dalam 4 buah ronde. Hasil keluaran dari MD5 adalah berupa 128 bit dari byte terendah A dan tertinggi byte D.
Gambar 10: Simpul Utama MD5
Penjelasan Algoritma MD-5
Setiap pesan yang akan dienkripsi, terlebih dahulu dicari berapa banyak bit yang terdapat pada pesan. Kita anggap sebanyak b bit. Di sini b adalah bit non negatif in- teger, b bisa saja nol dan tidak harus selalu kelipatan delapan. Pesan dengan panjang b bit dapat digambarkan seperti berikut : m0m1..m(b − 1) Terdapat 5 langkah yang dibutuhkan untuk untuk menghitung intisari pesan. Adapun langkahlangkah terse- but adalah sebagai berikut:
1. Menambahkan bit
Pesan akan ditambahkan bit-bit tambahan sehingga panjang bit akan kongruen dengan 448, mod 512. Hal ini berarti pesan akan mempunyai panjang yang hanya kurang 64 bit dari kelipatan 512 bit. Penambahan bit selalu dilakukan walaupun panjang dari pesan sudah kongruen dengan 448, mod 512 bit. Pe- nambahan bit dilakukan dengan menambahkan 1 di awal dan diikuti 0 se- banyak yang diperlukan sehingga panjang pesan akan kongruen dengan 448, mod 512.
2. Penambahan Panjang Pesan
Setelah penambahan bit, pesan masih membutuhkan 64 bit agar kongruen dengan kelipatan 512 bit. 64 bit tersebut merupakan perwakilan dari b (pan- jang pesan sebelum penambahan bit dilakukan). Bit-bit ini ditambahkan ke dalam dua word (32 bit) dan ditambahkan dengan low-order terlebih dahulu.
Penambahan pesan ini biasa disebut juga MD Strengthening atau Penguatan MD.
3. Inisialisasi MD-5
Pada MD-5 terdapat empat buah word 32 bit register yang berguna untuk menginisialisasi message digest pertama kali. Register-register ini di inisial- isasikan dengan bilangan hexadesimal.
wordA : 01234567 wordB : 89ABCDEF wordC : F EDCBA98 wordD : 76543210
Register-register ini biasa disebut dengan nama Chain variabel atau variabel rantai.
4. Proses Pesan di dalam Blok 16 Word
Pada MD-5 juga terdapat 4 (empat) buah fungsi nonlinear yang masing-masing digunakan pada tiap operasinya (satu fungsi untuk satu blok), yaitu:
F (X, Y, Z) = (X ∧ Y ) ∨ ((¬X) ∧ Z) G(X, Y, Z) = (X ∧ Z) ∨ ((¬Y ) ∧ Z) H(X, Y, Z) = X ⊕ Y ⊕ Z
I(X, Y, Z) = Y ⊕ (X ∨ (¬Z))
⊕ untuk XOR, ∧ untuk AND, ∨ untuk OR dan ¬ untuk NOT.
Pada Gambar 11 dapat dilihat satu buah operasi dari MD-5 dengan operasi yang dipakai sebagai contoh adalah F F (a, b, c, d, M j, s, ti) menunjukan:
a = b + ((a + F (b, c, d) + M j + ti) <<< s)
Gambar 11: Satu buah operasi MD5
Bila M j menggambarkan pesan ke-j dari sub blok (dari 0 sampai 15) dan
<<< s menggambarkan bit akan digeser ke kiri sebanyak s bit, maka keempat operasi dari masing-masing ronde adalah:
F F (a, b, c, d, M j, s, ti) menunjukan a = b + ((a + F (b, c, d) + M j + ti) <<< s) GG(a, b, c, d, M j, s, ti) menunjukan a = b + ((a + G(b, c, d) + M j + ti) <<< s)
HH(a, b, c, d, M j, s, ti) menunjukan a = b + ((a + H(b, c, d) + M j + ti) <<< s) II(a, b, c, d, M j, s, ti) menunjukan a = b + ((a + I(b, c, d) + M j + ti) <<< s) Konstanta ti didapat dari integer 232 abs(sin(i)), dimana i dalam radian.
5. Keluaran MD5
Keluaran dari MD5 adalah 128 bit dari word terendah A dan tertinggi word D masing-masing 32 bit.
2.7 Algoritma AES (Advanced Encryption Standard)
Pada algoritma AES ini input harus 128-bit blok AES ( 16 karakter atau 32 digit hexadesimal). Algoritma ini memiliki beberapa mode antara lain :
• Electronic Codebook
Setiap blok dienkripsi secara bebas dan tidak digunakan inisialisasi vector.
Gambar 12: Encipher Diagram
Gambar 13: Decipher Diagram
• Chiper Block Chaining
Blok input yang pertama akan di XOR dengan inisialisasi vektor. Hasil yang diperoleh akan dienkripsi sehingga menghasilkan sebuah blok ciphertext. Blok ciphertext yang pertama ini kemudian akan di XOR dengan blok input yang kedua, demikian seterusnya. dari block proceeding sebelum dienkripsi.
Gambar 14: Encipher Diagram
Gambar 15: Decipher Diagram
• Cipher Feedback
Mode ini menyimpan inisialisasi vektor ke shift register. Kemudian isi dari shift register ini dienkripsi, hasil dari enkripsi tersebut akan di XOR dengan Blok input (plaintext). Hasil dari XOR ini akan disimpan juga ke shift register yang berikutnya.
Gambar 16: Encipher Diagram
Gambar 17: Decipher Diagram
• Output Feedback
Inisialisasi vektor dienkripsi menggunakan algoritma blok yang ditetapkan.
Kemudian hasil enkripsi ini di XOR dengan blok input, dan disimpan ke en- cipher blok berikutnya.
Gambar 18: Encipher Diagram
Gambar 19: Decipher Diagram
• Counter
Mode ini menset suatu counter untuk nilai dari inisialisasi vector. Untuk enkripsi sebuah blok, counter dienkripsi menggunakan algoritma blok. Kemu- dian hasilnya di XOR dengan bagian pertama dari message.
Gambar 20: Encipher Diagram
Gambar 21: Decipher Diagram
3 APLIKASI DIGITAL SIGNATURE PADA KTP
Pada bagian ini akan dijelaskan bagaimana aplikasi digital signature pada Kartu Tanda Penduduk (KTP)sebagai otentikasi. Pada setiap KTP nantinya akan ditam- bahkan digital signaturenya, dimana data yang akan diambil adalah Nomor Induk Kependudukan. Karena setiap penduduk Indonesia hanya akan memiliki satu nomor penduduk dan bersifat unik. Pemerintah nantinya akan memberikan sebuah kunci kepada penduduk yakni kunci private. Dimana kunci private ini juga akan diberikan kepada Instansi terkait.
Ketika penduduk tersebut ingin malakukan suatu aktivitas yang memerlukan KTP, maka untuk memastikan bahwa KTP tersebut merupakan identitas yang benar dari penduduk tersebut maka digital signature tadi akan didekripsi dengan kunci tersebut yang telah diberikan pemerintah kepada penduduk tersebut. Dan setelah didekripsi menghasilkan output yang sama dengan message digest yang tersimpan pada data- base pemerintahan maka bisa dipastikan bahwa penduduk tersebut adalah orang yang benar.
Dalam makalah ini akan digunakan algoritma MD5 untuk hashing dan hasil hashing tersebut yang berupa message digest akan dienkripsi dengan menggunakan algoritma AES dengan chiper mode counter. Aplikasi yang digunakan adalah aplikasi online yang ada pada internet yaitu dari http://www.cs.eku.edu/faculty/styer/460/Encrypt
3.1 Proses Hashing dengan MD5
Aplikasi ini merupakan md5 string yaitu mencari nilai hash dari masukan berupa karakter-karakter yang dimasukkan oleh pemakai melalui keyboard. dan
Perancangan Aplikasi
Gambar 22: Proses MD5 dengan input string
1. Masuk ke alamat website http://www.cs.eku.edu/faculty/styer/460/Encrypt/JS- MD5.html.
2. Tahap Masukkan Karakter
Entrikan Nomor Induk Kependudukan pada kolom enter your message here seperti gambar berikut ini:
Gambar 23: Entri Message
3. klik tombol Calculate Hash untuk menghashing Nomor Induk Kependudukan yang sudah dientrikan diatas. Sehingga menghasilkan sebuah message digest seperti berikut:
Gambar 24: Hasil MD5 Hash
4. Proses detail dari MD5 Hash diatas adalah sebagai berikut:
03.5: 352e3330 006.: 2e363030 4107: 37303134 81.0: 302e3138 length=19
length%4=3, padding=80353030 Starting, a=67452301
b=efcdab89 c=98badcfe d=10325476
Starting block at word 0 x[0]=352e3330
x[1]=2e363030 x[2]=37303134 x[3]=302e3138 x[4]=80353030 x[5]=00000000 x[6]=00000000 x[7]=00000000 x[8]=00000000 x[9]=00000000 x[10]=00000000 x[11]=00000000 x[12]=00000000 x[13]=00000000 x[14]=00000098 x[15]=00000000
F F (A, B, C, D, x[0], S11, 0xd76aa478)
F F : a = 67452301, b = ef cdab89, c = 98badcf e, d = 10325476, xk = 352e3330, s = 7, ti = d76aa478
F (ef cdab89, 98badcf e, 10325476) = 98badcf e a + F (b, c, d) + xk + ti = 0c98d7a7
F F : b + (... <<< 7) = 3c397f 0f
F F : a = 10325476, b = 3c397f 0f, c = ef cdab89, d = 98badcf e, xk = 2e363030, s = 12, ti = e8c7b756
F (3c397f 0f, ef cdab89, 98badcf e) = ac8babf 9 a + F (b, c, d) + xk + ti = d3bbe7f 5
F F : b + (... <<< 12) = f ab8dc4aF F : a = 98badcf e, b = f ab8dc4a, c = 3c397f 0f, d = ef cdab89, xk = 37303134, s = 17, ti = 242070db
F (f ab8dc4a, 3c397f 0f, ef cdab89) = 3d7d7f 8b a + F (b, c, d) + xk + ti = 3188f e98
F F : b + (... <<< 17) = f 7e93f 5bF F : a = ef cdab89, b = f 7e93f 5b, c = f ab8dc4a, d = 3c397f 0f, xk = 302e3138, s = 22, ti = c1bdceee
F (f 7e93f 5b, f ab8dc4a, 3c397f 0f ) = f ab85c4e a + F (b, c, d) + xk + ti = dc7207f d
F F : b + (... <<< 22) = f 7605bdcF F : a = 3c397f 0f, b = f 7605bdc, c = f 7e93f 5b, d = f ab8dc4a, xk = 80353030, s = 7, ti = f 57c0f af
F (f 7605bdc, f 7e93f 5b, f ab8dc4a) = f f f 89f 5a a + F (b, c, d) + xk + ti = b1e35e48
F F : b + (... <<< 7) = e90f 8034F F : a = f ab8dc4a, b = e90f 8034, c = f 7605bdc, d = f 7e93f 5b, xk = 00000000, s = 12, ti = 4787c62a
F (e90f 8034, f 7605bdc, f 7e93f 5b) = f 7e03f 5f a + F (b, c, d) + xk + ti = 3a20e1d3
F F : b + (... <<< 12) = f 72cb3d6F F : a = f 7e93f 5b, b = f 72cb3d6, c = e90f 8034, d = f 7605bdc, xk = 00000000, s = 17, ti = a8304613
F (f 72cb3d6, e90f 8034, f 7605bdc) = e14cc81c a + F (b, c, d) + xk + ti = 81664d8a
F F : b + (... <<< 17) = 9241b6a2F F : a = f 7605bdc, b = 9241b6a2, c = f 72cb3d6, d = e90f 8034, xk = 00000000, s = 22, ti = f d469501
F (9241b6a2, f 72cb3d6, e90f 8034) = f b0eb296 a + F (b, c, d) + xk + ti = ef b5a373
F F : b + (... <<< 22) = 6f 3da40aF F : a = e90f 8034, b = 6f 3da40a, c = 9241b6a2, d = f 72cb3d6, xk = 00000000, s = 7, ti = 698098d8
F (6f 3da40a, 9241b6a2, f 72cb3d6) = 9201b7d6 a + F (b, c, d) + xk + ti = e491d0e2
F F : b + (... <<< 7) = b826157c
F F : a = f 72cb3d6, b = b826157c, c = 6f 3da40a, d = 9241b6a2, xk = 00000000, s = 12, ti = 8b44f 7af
F (b826157c, 6f 3da40a, 9241b6a2) = 2a65a68a a + F (b, c, d) + xk + ti = acd7520f
F F : b + (... <<< 12) = 2d471049
F F : a = 9241b6a2, b = 2d471049, c = b826157c, d = 6f 3da40a, xk = 00000000, s = 17, ti = f f f f 5bb1
F (2d471049, b826157c, 6f 3da40a) = 6a3eb44a a + F (b, c, d) + xk + ti = f c7f c69d
F F : b + (... <<< 17) = ba830948
F F : a = 6f 3da40a, b = ba830948, c = 2d471049, d = b826157c, xk = 00000000, s = 22, ti = 895cd7be
F (ba830948, 2d471049, b826157c) = 2827147c a + F (b, c, d) + xk + ti = 20c19044
F F : b + (... <<< 22) = cb8b39ac
F F : a = b826157c, b = cb8b39ac, c = ba830948, d = 2d471049, xk = 00000000, s =
7, ti = 6b901122
F (cb8b39ac, ba830948, 2d471049) = aec70949 a + F (b, c, d) + xk + ti = d27d2f e7
F F : b + (... <<< 7) = 0a232d95
F F : a = 2d471049, b = 0a232d95, c = cb8b39ac, d = ba830948, xk = 00000000, s = 12, ti = f d987193
F (0a232d95, cb8b39ac, ba830948) = ba8329cc a + F (b, c, d) + xk + ti = e562aba8
F F : b + (... <<< 12) = 34ddbbeb
F F : a = ba830948, b = 34ddbbeb, c = 0a232d95, d = cb8b39ac, xk = 00000098, s = 17, ti = a679438e
F (34ddbbeb, 0a232d95, cb8b39ac) = cb032985 a + F (b, c, d) + xk + ti = 2bf f 76f 3
F F : b + (... <<< 17) = 22c413e9
F F : a = cb8b39ac, b = 22c413e9, c = 34ddbbeb, d = 0a232d95, xk = 00000000, s = 22, ti = 49b40821
F (22c413e9, 34ddbbeb, 0a232d95) = 28e73f f d a + F (b, c, d) + xk + ti = 3e2681ca
F F : b + (... <<< 22) = 95539d89
GG : a = 0a232d95, b = 95539d89, c = 22c413e9, d = 34ddbbeb, xk = 2e363030, s = 5, ti = f 61e2562
G(95539d89, 22c413e9, 34ddbbeb) = 16519989 a + G(b, c, d) + xk + ti = 44c91cb0
GG : b + (... <<< 5) = 2e773391
GG : a = 34ddbbeb, b = 2e773391, c = 95539d89, d = 22c413e9, xk = 00000000, s = 9, ti = c040b340
G(2e773391, 95539d89, 22c413e9) = b7579f 81 a + G(b, c, d) + xk + ti = ac760eac
GG : b + (... <<< 9) = 1a948ce9
GG : a = 22c413e9, b = 1a948ce9, c = 2e773391, d = 95539d89, xk = 00000000, s = 14, ti = 265e5a51
G(1a948ce9, 2e773391, 95539d89) = 3a34ae99 a + G(b, c, d) + xk + ti = 83571cd3
GG : b + (... <<< 14) = e1c96dbe
GG : a = 95539d89, b = e1c96dbe, c = 1a948ce9, d = 2e773391, xk = 352e3330, s = 20, ti = e9b6c7aa
G(e1c96dbe, 1a948ce9, 2e773391) = 30c1adf 8 a + G(b, c, d) + xk + ti = e4f a465
GG : b + (... <<< 20) = 4787bd62
GG : a = 2e773391, b = 4787bd62, c = e1c96dbe, d = 1a948ce9, xk = 00000000, s = 5, ti = d62f 105d
G(4787bd62, e1c96dbe, 1a948ce9) = e3cded76a + G(b, c, d) + xk + ti = e8743164 GG : b + (... <<< 5) = 560de9f f
GG : a = 1a948ce9, b = 560de9f f, c = 4787bd62, d = e1c96dbe, xk = 00000000, s = 9, ti = 02441453
G(560de9f f, 4787bd62, e1c96dbe) = 460f f 9f e a + G(b, c, d) + xk + ti = 62e89b3a
GG : b + (... <<< 9) = 27445ec4
GG : a = e1c96dbe, b = 27445ec4, c = 560de9f f, d = 4787bd62, xk = 00000000, s = 14, ti = d8a1e681
G(27445ec4, 560de9f f, 4787bd62) = 170c5cdd a + G(b, c, d) + xk + ti = d177b11c
GG : b + (... <<< 14) = 138b9321
GG : a = 4787bd62, b = 138b9321, c = 27445ec4, d = 560de9f f, xk = 80353030, s = 20, ti = e7d3f bc8
G(138b9321, 27445ec4, 560de9f f ) = 33499721 a + G(b, c, d) + xk + ti = e2da807b
GG : b + (... <<< 20) = 1b49c0c9
GG : a = 560de9f f, b = 1b49c0c9, c = 138b9321, d = 27445ec4, xk = 00000000, s = 5, ti = 21e1cde6
G(1b49c0c9, 138b9321, 27445ec4) = 13cbc1e1 a + G(b, c, d) + xk + ti = 8bbb79c6
GG : b + (... <<< 5) = 92b8f 99a
GG : a = 27445ec4, b = 92b8f 99a, c = 1b49c0c9, d = 138b9321, xk = 00000098, s = 9, ti = c33707d6
G(92b8f 99a, 1b49c0c9, 138b9321) = 1ac8d1c8 a + G(b, c, d) + xk + ti = 054438f a
GG : b + (... <<< 9) = 1b2aeda4
GG : a = 138b9321, b = 1b2aeda4, c = 92b8f 99a, d = 1b49c0c9, xk = 302e3138, s = 14, ti = f 4d50d87
G(1b2aeda4, 92b8f 99a, 1b49c0c9) = 9bb8f 992 a + G(b, c, d) + xk + ti = d447cb72
GG : b + (... <<< 14) = 0e07a2b5
GG : a = 1b49c0c9, b = 0e07a2b5, c = 1b2aeda4, d = 92b8f 99a, xk = 00000000, s = 20, ti = 455a14ed
G(0e07a2b5, 1b2aeda4, 92b8f 99a) = 0b02a4b4 a + G(b, c, d) + xk + ti = 6ba67a6a
GG : b + (... <<< 20) = b4ae5d1c
GG : a = 92b8f 99a, b = b4ae5d1c, c = 0e07a2b5, d = 1b2aeda4, xk = 00000000, s = 5, ti = a9e3e905
G(b4ae5d1c, 0e07a2b5, 1b2aeda4) = 142f 4f 15 a + G(b, c, d) + xk + ti = 50cc31b4
GG : b + (... <<< 5) = ce3493a6
GG : a = 1b2aeda4, b = ce3493a6, c = b4ae5d1c, d = 0e07a2b5, xk = 37303134, s = 9, ti = f cef a3f 8
G(ce3493a6, b4ae5d1c, 0e07a2b5) = beacdf ac a + G(b, c, d) + xk + ti = 0df 7a27c
GG : b + (... <<< 9) = bd798bc1
GG : a = 0e07a2b5, b = bd798bc1, c = ce3493a6, d = b4ae5d1c, xk = 00000000, s = 14, ti = 676f 02d9
G(bd798bc1, ce3493a6, b4ae5d1c) = f e388ba2 a + G(b, c, d) + xk + ti = 73af 3130
GG : b + (... <<< 14) = 89c5a8ac
GG : a = b4ae5d1c, b = 89c5a8ac, c = bd798bc1, d = ce3493a6, xk = 00000000, s = 20, ti = 8d2a4c8a
G(89c5a8ac, bd798bc1, ce3493a6) = b94d88e5 a + G(b, c, d) + xk + ti = f b26328b
GG : b + (... <<< 20) = b2855b0f
HH : a = ce3493a6, b = b2855b0f, c = 89c5a8ac, d = bd798bc1, xk = 00000000, s = 4, ti = f f f a3942
H(b2855b0f, 89c5a8ac, bd798bc1) = 86397862 a + H(b, c, d) + xk + ti = 5468454a
HH : b + (... <<< 4) = f 909af b4
HH : a = bd798bc1, b = f 909af b4, c = b2855b0f, d = 89c5a8ac, xk = 00000000, s = 11, ti = 8771f 681
H(f 909af b4, b2855b0f, 89c5a8ac) = c2495c17 a + H(b, c, d) + xk + ti = 0734de59
HH : b + (... <<< 11) = 9f f c77ed
HH : a = 89c5a8ac, b = 9f f c77ed, c = f 909af b4, d = b2855b0f, xk = 00000000, s = 16, ti = 6d9d6122
H(9f f c77ed, f 909af b4, b2855b0f ) = d4708356 a + H(b, c, d) + xk + ti = cbd38d24
HH : b + (... <<< 16) = 2d2143c0
HH : a = b2855b0f, b = 2d2143c0, c = 9f f c77ed, d = f 909af b4, xk = 00000098, s = 23, ti = f de5380c
H(2d2143c0, 9f f c77ed, f 909af b4) = 4bd49b99 a + H(b, c, d) + xk + ti = f c3f 2f 4c
HH : b + (... <<< 23) = d39f 6357
HH : a = f 909af b4, b = d39f 6357, c = 2d2143c0, d = 9f f c77ed, xk = 2e363030, s = 4, ti = a4beea44
H(d39f 6357, 2d2143c0, 9f f c77ed) = 6142577a a + H(b, c, d) + xk + ti = 2d4121a2
HH : b + (... <<< 4) = a7b17d79
HH : a = 9f f c77ed, b = a7b17d79, c = d39f 6357, d = 2d2143c0, xk = 80353030, s = 11, ti = 4bdecf a9
H(a7b17d79, d39f 6357, 2d2143c0) = 590f 5dee a + H(b, c, d) + xk + ti = c51f d5b4
HH : b + (... <<< 11) = a65f 23a1
HH : a = 2d2143c0, b = a65f 23a1, c = a7b17d79, d = d39f 6357, xk = 00000000, s = 16, ti = f 6bb4b60
H(a65f 23a1, a7b17d79, d39f 6357) = d2713d8f a + H(b, c, d) + xk + ti = f 64dccaf
HH : b + (... <<< 16) = 730f 19ee
HH : a = d39f 6357, b = 730f 19ee, c = a65f 23a1, d = a7b17d79, xk = 00000000, s = 23, ti = bebf bc70
H(730f 19ee, a65f 23a1, a7b17d79) = 72e14736 a + H(b, c, d) + xk + ti = 054066f d
HH : b + (... <<< 23) = f 191ba21
HH : a = a7b17d79, b = f 191ba21, c = 730f 19ee, d = a65f 23a1, xk = 00000000, s = 4, ti = 289b7ec6
H(f 191ba21, 730f 19ee, a65f 23a1) = 24c1806e a + H(b, c, d) + xk + ti = f 50e7cad
HH : b + (... <<< 4) = 42798500
HH : a = a65f 23a1, b = 42798500, c = f 191ba21, d = 730f 19ee, xk = 352e3330, s = 11, ti = eaa127f a
H(42798500, f 191ba21, 730f 19ee) = c0e726cf a + H(b, c, d) + xk + ti = 8715a59a
HH : b + (... <<< 11) = ef a65938
HH : a = 730f 19ee, b = ef a65938, c = 42798500, d = f 191ba21, xk = 302e3138, s = 16, ti = d4ef 3085
H(ef a65938, 42798500, f 191ba21) = 5c4e6619 a + H(b, c, d) + xk + ti = d47ae1c4
HH : b + (... <<< 16) = d16b2db2
HH : a = f 191ba21, b = d16b2db2, c = ef a65938, d = 42798500, xk = 00000000, s = 23, ti = 04881d05
H(d16b2db2, ef a65938, 42798500) = 7cb4f 18a a + H(b, c, d) + xk + ti = 72cec8b0
HH : b + (... <<< 23) = 29a49516
HH : a = 42798500, b = 29a49516, c = d16b2db2, d = ef a65938, xk = 00000000, s = 4, ti = d9d4d039
H(29a49516, d16b2db2, ef a65938) = 1769e19c a + H(b, c, d) + xk + ti = 33b836d5
HH : b + (... <<< 4) = 65280269
HH : a = ef a65938, b = 65280269, c = 29a49516, d = d16b2db2, xk = 00000000, s = 11, ti = e6db99e5
H(65280269, 29a49516, d16b2db2) = 9de7bacd a + H(b, c, d) + xk + ti = 7469adea
HH : b + (... <<< 11) = b297560c
HH : a = d16b2db2, b = b297560c, c = 65280269, d = 29a49516, xk = 00000000, s = 16, ti = 1f a27cf 8
H(b297560c, 65280269, 29a49516) = f e1bc173 a + H(b, c, d) + xk + ti = ef 296c1d
HH : b + (... <<< 16) = 1eb54535
HH : a = 29a49516, b = 1eb54535, c = b297560c, d = 65280269, xk = 37303134, s = 23, ti = c4ac5665
H(1eb54535, b297560c, 65280269) = c90a1150 a + H(b, c, d) + xk + ti = ee8b2df f
HH : b + (... <<< 23) = 1eac8acb
II : a = 65280269, b = 1eac8acb, c = 1eb54535, d = b297560c, xk = 352e3330, s = 6, ti = f 4292244
I(1eac8acb, 1eb54535, b297560c) = 4159eece a + I(b, c, d) + xk + ti = cf d946ab
II : b + (... <<< 6) = 14f e35be
II : a = b297560c, b = 14f e35be, c = 1eac8acb, d = 1eb54535, xk = 00000000, s = 10, ti = 432af f 97
I(14f e35be, 1eac8acb, 1eb54535) = eb523535 a + I(b, c, d) + xk + ti = e1148ad8
II : b + (... <<< 10) = 67299942
II : a = 1eb54535, b = 67299942, c = 14f e35be, d = 1eac8acb, xk = 00000098, s = 15, ti = ab9423a7
I(67299942, 14f e35be, 1eac8acb) = f 385c8c8 a + I(b, c, d) + xk + ti = bdcf 323c
II : b + (... <<< 15) = 0047f 829
II : a = 1eac8acb, b = 0047f 829, c = 67299942, d = 14f e35be, xk = 00000000, s = 21, ti = f c93a039
I(0047f 829, 67299942, 14f e35be) = 8c6e632b a + I(b, c, d) + xk + ti = a7ae8e2f
II : b + (... <<< 21) = c63cedf a
II : a = 14f e35be, b = c63cedf a, c = 0047f 829, d = 67299942, xk = 00000000, s = 6, ti = 655b59c3
I(c63cedf a, 0047f 829, 67299942) = deb917d6 a + I(b, c, d) + xk + ti = 5912a757
II : b + (... <<< 6) = 0ae6c3d0
II : a = 67299942, b = 0ae6c3d0, c = c63cedf a, d = 0047f 829, xk = 302e3138, s = 10, ti = 8f 0ccc92
I(0ae6c3d0, c63cedf a, 0047f 829) = 39c22a2c a + I(b, c, d) + xk + ti = 6026c138
II : b + (... <<< 10) = a5eba550
II : a = 0047f 829, b = a5eba550, c = 0ae6c3d0, d = c63cedf a, xk = 00000000, s = 15, ti = f f ef f 47d
I(a5eba550, 0ae6c3d0, c63cedf a) = b70d7485 a + I(b, c, d) + xk + ti = b745612b
II : b + (... <<< 15) = 568180f 2
II : a = c63cedf a, b = 568180f 2, c = a5eba550, d = 0ae6c3d0, xk = 2e363030, s = 21, ti = 85845dd1
I(568180f 2, a5eba550, 0ae6c3d0) = 527219af a + I(b, c, d) + xk + ti = cc6995aa
II : b + (... <<< 21) = 0bdb0e24
II : a = 0ae6c3d0, b = 0bdb0e24, c = 568180f 2, d = a5eba550, xk = 00000000, s = 6, ti = 6f a87e4f
I(0bdb0e24, 568180f 2, a5eba550) = 0d5ede5d a + I(b, c, d) + xk + ti = 87ee207c
II : b + (... <<< 6) = 07632d45
II : a = a5eba550, b = 07632d45, c = 0bdb0e24, d = 568180f 2, xk = 00000000, s = 10, ti = f e2ce6e0
I(07632d45, 0bdb0e24, 568180f 2) = a4a47169 a + I(b, c, d) + xk + ti = 48bcf d99
II : b + (... <<< 10) = f b599267
II : a = 568180f 2, b = f b599267, c = 07632d45, d = 0bdb0e24, xk = 00000000, s = 15, ti = a3014314
I(f b599267, 07632d45, 0bdb0e24) = f 81edeba a + I(b, c, d) + xk + ti = f 1a1a2c0
II : b + (... <<< 15) = ccba0b37
II : a = 0bdb0e24, b = ccba0b37, c = f b599267, d = 07632d45, xk = 00000000, s = 21, ti = 4e0811a1
I(ccba0b37, f b599267, 07632d45) = 07e749d8 a + I(b, c, d) + xk + ti = 61ca699d
II : b + (... <<< 21) = 00664484
II : a = 07632d45, b = 00664484, c = ccba0b37, d = f b599267, xk = 80353030, s = 6, ti = f 7537e82
I(00664484, ccba0b37, f b599267) = c85c66ab a + I(b, c, d) + xk + ti = 474842a2
II : b + (... <<< 6) = d276ed15
II : a = f b599267, b = d276ed15, c = 00664484, d = ccba0b37, xk = 00000000, s = 10, ti = bd3af 235
I(d276ed15, 00664484, ccba0b37) = f 311b959 a + I(b, c, d) + xk + ti = aba63df 5
II : b + (... <<< 10) = 6b6ec3c3
II : a = ccba0b37, b = 6b6ec3c3, c = d276ed15, d = 00664484, xk = 37303134, s = 15, ti = 2ad7d2bb
I(6b6ec3c3, d276ed15, 00664484) = 2d8916ee a + I(b, c, d) + xk + ti = 5c4b2614
II : b + (... <<< 15) = f e78f 1e8
II : a = 00664484, b = f e78f 1e8, c = 6b6ec3c3, d = d276ed15, xk = 00000000, s = 21, ti = eb86d391
I(f e78f 1e8, 6b6ec3c3, d276ed15) = 94973029 a + I(b, c, d) + xk + ti = 8084483e
II : b + (... <<< 21) = 06490271 Round end, a=39bc1016
b=f616adfa c=9733cee6 d=7ba11839
3.2 Enkripsi dengan AES
Setelah hasil hash didapat maka langkah selanjutnya adalah enkripsi, disini akan digunakan algoritma AES dengan Cipher Mode Counter.
1. Entrikan hasil hashing 1610bc39faad16f6e6ce33973918a17b ke kolom Message Part 1.
2. Pilih Hexadecimal
3. Pada aplikasi ini terdapat Inisialisasi Vektor dan Key .
4. Kemudian pilih Cipher Mode yakni Counter, dimana mode ini menset suatu counter untuk nilai dari inisialisasi vector tersebut. Untuk enkripsi sebuah blok, counter dienkripsi menggunakan algoritma blok. Kemudian hasilnya di XOR dengan bagian pertama dari message.
5. Klik tombol Enkripsi, dan menghasilkan sebuah cipher text yang nantinya akan ditambahkan pada KTP.
6. Detail proses.
Initialization vector d1 67 1e 68 ea 1f 0f 23 19 18 30 93 01 d3 6a 49 Key 0f 15 71 c9 47 d9 e8 59 0c b7 ad d6 af 7f 67 98 iv+0 d1 67 1e 68 ea 1f 0f 23 19 18 30 93 01 d3 6a 49
Encrypted iv+0 91 50 90 82 a4 d2 3a e0 cd 9d 0d 63 43 a5 82 72 Message part 1 16 10 bc 39 fa ad 16 f6 e6 ce 33 97 39 18 a1 7b Encrypted part 1 87 40 2c bb 5e 7f 2c 16 2b 53 3e f4 7a bd 23 09
Gambar 25: Proses Enkripsi dengan AES
4 KESIMPULAN DAN SARAN
Beberapa kesimpulan yang dapat diperoleh dari makalah ini adalah:
1. Authenticationyaitu suatu tindakan untuk memetapkan sesuatu atau seseo- rang adalah asli. Membuktikan kesalian suatu objek adalah dengan menetap- kan tempat asalnya, sedangkan untuk membuktikan keaslian seseorang adalah dengan identitas mereka
2. kriptografi merupakan ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan data, ke- absahan data, integri tas data, serta autentikasi data.
3. Digital signature merupakan salah satu aplikasi dari kriptografi dimana ap- likasi ini diterapkan pada Kartu Tanda Penduduk (KTP) dimana berfungsi sebagai otentikasi dari pemilik yang sah. Dengan mengaplikasikan digital Sig- nature sebagai autentikasi pada KTP, maka pemanfaatan dan kepemilikan KTP yang tidak benar dan tidah sah dapat diminimalisasi. Algoritma yang digunakan untuk melakukan proses hashing adalah MD5. dimana hasil dari MD5 adalah Message digest. Hasil dari MD5 ini akan dienkripsi dengan meng- gunakan algoritma AES dengan Cipher Mode Counter.
4. Message Digest 5 (MD5) adalah sebuah fungsi hash satu arah yang mengubah masukan dengan panjang variabel menjadi keluaran dengan panjang tetap yaitu 128 bit.
5. Algoritma (Advanced Encryption Standard) AES ini, inputnya harus 128-bit blok AES ( 16 karakter atau 32 digit hexadesimal). Algoritma ini memiliki beberapa mode, salah satunya adalah Cipher Mode Counter. Mode ini menset suatu counter untuk nilai dari inisialisasi vector. Untuk enkripsi sebuah blok, counter dienkripsi menggunakan algoritma blok. Kemudian hasilnya di XOR dengan bagian pertama dari message.
Selain Kesimpulan diatas maka penulis juga memberikan saran untuk memperbaiki kekurangan dari Aplikasi ini.
1. Karena keterbatasan penulis untuk mendapatkan software yang akan digu- nakan untuk enkripsi sehingga algoritma yang digunakan adalah AES. Oleh sebab itu penulis menyarankan agar untuk proses enkripsi ini nantinya dapat diaplikasikan pada algoritma Kunci Publik seperti RSA, ECC dan lain-lain.
Pustaka
[1] Aghus Sofwan, Agung Budi P, Toni Susanto,(2006),Aplikasi Kriptografi Dengan Algoritma Message Digest 5 (MD5),Transmisi, Vol. 11, No. 1, Juni 2006 : 22 27
[2] Budi Raharjo, (2005),Keamanan Sistem Informasi Berbasis Internet, PT Insan Indonesia Bandung dan PT INDOCISC Jakarta
[3] http://www.cs.eku.edu/faculty/styer/460/Encrypt [4] http://en.wikipedia.org
[5] Schneier Bruce, (1996), Applied Cryptography Second Edition: Protocols, Algo- rthms, and Source Code in C (cloth), John Wiley Sons, Inc.