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
Starting block at word 0 x[0]=352e3330
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 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
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