Algoritma Sistem Kriptografi - ilmusisteminfo.com Kriptografi 1567701750.pdf · AES merupakan...
Transcript of Algoritma Sistem Kriptografi - ilmusisteminfo.com Kriptografi 1567701750.pdf · AES merupakan...
Algoritma Sistem Kriptografi Ainun Zainiyah #1, Annisa Anjani #2, Arya Surya Satria#3 ,
Nizam Irsananda#4, Rivendrea Giftama Chrismaputra#3
#1,2,3Jurusan Sistem Informasi, Fakultas Sains dan Teknologi
Universitas Airlangga, Jl. Ir. Soekarno, Surabaya
Abstract.
Dengan perkembangan teknologi yang semakin pesat saat ini mengakibatkan tingkat kejahatan
di dunia maya juga semakin meningkat. Oleh karenanya dibutuhkan pengamanan yang lebih
handal untuk mencegah kejahatan tersebut. Beberapa contoh kejahatan seperti pencurian data,
penyalahgunaan data dan lain sebagainya, jika hal tersebut sampai terjadi maka dapat
menimbulkan kerugian diberbagai. Untuk mengantisipasi kejahatan tersebut dibutuhkan suatu
metode pengkodean data, sehingga pihak yang tidak berwenang tidak dapat membaca data
tersebut. Metode mengubah data yang semula berupa teks biasa menjadi teks yang lebih
kompleks disebut dengan kriptografi. Dalam metode kriptografi terdapat banyak algortima yang
dapat digunakan.
Pada artikel ini akan dibahas 10 algoritma yang dapat digunakan untuk kriptografi yakni, AES
(Advanced Encryption Standard), IDEA (International Data Encryption Algorithm), RSA
(Rivest, Shamir, Adleman), Knapsack Merkle-Hellman (MH), A5, RC4, PGP (Pretty Good
Privacy), Digital Signature, Digital Certificate, MD5.
Keywords: algoritma, sistem kriptografi, kriptografi, AES, IDEA, Knapsack Merkle-Hellman,
A5, RC4, PGP, Digital Signature, Digital Certificate, MD5
1. Pendahuluan
Perkembangan teknologi informasi dan komunikasi saat ini, mengakibatkan manusia dapat
berkomunikasi dan saling bertukar data dan informasi tanpa dihalangi oleh jarak dan waktu.
Seiring dengan tuntutan akan keamanan untuk kerahasiaan informasi yang saling dipertukarkan
tersebut semakin meningkat menimbulkan tuntutan tersedianya suatu sistem pengamanan data dan
informasi yang lebih baik agar dapat mengamankan data dari berbagai ancaman. Oleh karena itu
berkembangnya cabang ilmu yang mempelajari tentang cara-cara pengamanan data merupakan
dampak positif dari tuntutan tersedianya sistem keamanan data yang berfungsi untuk melindungi
data yang ditransmisikan atau dikirimkan melalui suatu jaringan komunikasi. Ilmu yang
mempelajari tentang cara-cara pengamanan data dikenal dengan nama Kriptografi.
Kriptografi adalah ilmu yang mempelajari teknik-teknik matematika yang berhubungan
dengan aspek keamanan data dan informasi seperti keabsahan data, integritas data, serta
autentifikasi data. Sistem kriptografi adalah suatu fasilitas untuk mengkonversikan pesan jelas
(plainteks) ke pesan yang telah disandikan (cipherteks). Proses konversi ini disebut enkripsi
(encryption). Sebaliknya, menerjemahkan cipherteks menjadi plainteks disebut dengan dekripsi
(decryption). Proses enkripsi dan dekripsi menggunakan satu atau beberapa kunci kriptografi.
Kriptografi dibagi menjadi 10, yaitu sebagai berikut:
a. AES (Algorithm Encryption Standart)
b. IDEA (International Data Encryption Algorithm)
c. RSA (Rivest, Shamir, Adleman)
d. Knapsack Merkle Hellman (KMH)
e. A5
f. RC4
g. PGP (Pretty Good Privacy)
h. Digital Signature
i. Digital Certificate
j. MD5
2. Prespektif Teoritis
Kata kriptografi berasal dari bahasa Yunani, “kryptós” yang berarti tersembunyi dan
“gráphein” yang berarti tulisan. Sehingga kata kriptografi dapat diartikan berupa frase “tulisan
tersembunyi”. Menurut Request for Comments (RFC), kriptografi merupakan ilmu
matematika yang berhubungan dengan transformasi data untuk membuat artinya tidak dapat
dipahami (untuk menyembunyikan maknanya), mencegahnya dari perubahan tanpa izin, atau
mencegahnya dari penggunaan yang tidak sah. Jika transformasinya dapat dikembalikan,
kriptografi juga bisa diartikan sebagai proses mengubah kembali data yang terenkripsi menjadi
bentuk yang dapat dipahami. Artinya, kriptografi dapat diartikan sebagai proses untuk
melindungi data dalam arti yang luas (Oppliger, 2005).
Menezes, Oorschot dan Vanstone (1996) menyatakan bahwa kriptografi adalah suatu
studi teknik matematika yang berhubungan dengan aspek keamanan informasi seperi
kerahasiaan, integritas data, otentikasi entitas dan otentikasi keaslian data. Kriptografi tidak
hanya berarti penyediaan keamanan informasi, melainkan sebuah himpunan taknik-teknik.
Sedangkan enkripsi adalah sebuah proses yang melakukan perubahan sebuah kode dari
yang bisa dimengerti menjadi sebuah kode yang tidak bisa dimengerti (tidak terbaca). Enkripsi
dapat diartikan sebagai kode atau chiper. Sebuah sistem pengkodean menggunakan suatu table
atau kamus yang telah didefinisikan untuk menggantikan kata dari informasi atau yang
merupakan bagian dari informasi yang dikirim. (Dian Wirdasari; 2008: 174)
3. Diskusi
a. AES (Advanced Encryption Standard)
AES merupakan sistem penyandian blok yang bersifat non-Feistel karena AES
menggunakan komponen yang selalu memiliki invers dengan panjang blok 128 bit. AES
terdiri dari 4 jenis transformasi bytes, yaitu SubBytes, ShiftRows, MixColumns, AddRoundKey.
Pada awal proses enkripsi. input yang telah dicopykan ke dalam state akan mengalami
transformasi byte AddRoundKey. Setelah itu, state akan mengalami transformasi SubBytes,
ShiftRows, MixColumns dan AddRoundKey secara berulang-ulang sebanyak Nr. Proses tersebut
dalam AES disebut sebagai Round Function.
Proses AES pada enkripsi adalah round key ditambahkan pada state dengan operasi XOR.
Setiap round key terdiri dari Nb word dimana tiap word tersebut akan dijumlahkan dengan word
atau kolom yang bersesuaian dari state sehingga SubBytes merupakan transformasi byte dimana
setiap elemen pada state akan dipetakan dengan menggunakan sebuah tabel substitusi, seperti
yang terlihat pada gambar 1.1.
Gambar 1.1
Untuk setiap byte pada array state, misalkan S[r, c] = xy, yang dalam hal ini xy adalah digit
heksadesimal dari nilai S [r, c], maka nilai substitusinya, dinyatakan dengan S’[r, c], adalah
elemen di dalam tabel subtitusi yang merupakan perpotongan baris x dengan kolom y.
Gambar 1.2 mengilustrasikan pengaruh peme-taan byte pada setiap byte dalam state.
Gambar 1.3 merupakan Tabel ShitRows proses pergeseran bit dimana bit paling kiri akan
dipindahkan menjadi bit paling kanan. Proses pergeseran Shiftrow ditunjukkan dalam gambar
3 berikut. MixColumns mengoperasikan setiap elemen yang berada dalam satu kolom pada
state.
Gambar 1.2
Gambar 1.3 Tabel Shift Rows
Gambar 1.4 Transformasi Column
Gambar 1.4 Transformasi mixcolumns dapat dilihat pada perkalian matriks.
b. IDEA (International Data Encryption Algorithm)
Kriptografi IDEA (International Data Encryption Algorithm) diperkenalkan pertama kali
tahun 1991 oleh Xuejia Lai dan James L Massey. Algoritma ini dimaksudkan sebagai
pengganti DES(Data Encryption Standard). IDEA merupakan algoritma simetris yang
beroperasi pada sebuah blok pesan terbuka 64bit, menggunakan kunci yang sama 128bit
untuk proses enkripsi dan dekripsi. Keluaran dari algoritma ini adalah blok pesan
terenkripsi 64bit.
Algoritma utama dari sistem kriptografi IDEA adalah sebagai berikut :
1. Proses Enkripsi : ek (M) = C (1)
2. Proses Dekripsi : dk (C) = M (2)
E : fungsi enkripsi
D : fungsi dekripsi
M : pesan terbuka
C : pesan rahasia
K : kunci enkripsi atau dekripsi
Proses dekripsi menggunakan blok penyandi (algoritma) yang sama dengan proses
enkripsi dimana kunci dekripsinya diturunkan dari kunci enkripsi. IDEA menggunakan
proses iterasi yang terdiri dari 8 putaran dan 1 transformasi keluaran pada putaran ke 8,5.
Algoritma IDEA ini menggunakan 3 operasi aljabar utama, yakni : Xor, operasi penjmlahan
modulo 2 16 dan operasi perkalian modulo (2 16 + 1). Operasi ini semuanya dilakukan
pada subblok 16bit. IDEA mendapatkan keamanannya dari operasi dari grup yang berbeda
– penambahan dan penjumlahan modular serta exclusive or dari bit—yang secara aljabar
tidak cocok dalam beberapa pengertian.
Pada proses enkripsi algoritma ini, terdapat 3 operasi berbeda yang digunakan :
a. Xor dari 2 sub blok 16bit; bit per bit
b. Penjumlahan modulo 2 16 2 sub blok 16 bit
c. Perkalian modulo (2 16 + 1) 2 sub blok 16 bit
Blok masukan pesan 64bit mulamula dibagi menjadi 4 subsub blok 16bit : X1, X2, X3,
X4. Keempat subblok 16 bit sebelumnya kemudian ditransformasikan menjadi subblok 16
bit, Y1, Y2, Y3, Y4. Semua proses ini berada di bawah kendali 52 subblok kunci 16bit
yang dibentuk dari blok kunci 128bit. Keempat subblok 16bit X1, X2, X3, X4 digunkan
sebagai masukan putaran pertama dari algoritma IDEA. Dapat dilihat dari gambar bahwa
dalam setiap putaran dilakukan operasi XOR, penjumlahan modulo dan perkalian modulo.
Dari gambar juga terlihat bahwa keluaran dari putaran sebelumnya merupakan masukan
dari putaran berikutnya. Hal ini terusberlangsung sampai 8 putaran. Pada putaran terakhir
(putaran 8,5) dilakukan transformasi keluaran yang dikendalikan oleh 4 subblok kunci
16bit. Sub kunci diberi simbol Z. Operasi yang dilakukan pada setiap putaran dapat
dirangkum sebagai berikut :
a) Perkalian X1 dengan Z11
b) Penjumlahan X2 dengan Z21
c) Pejumlahan X3 dengan Z 31
d) Perkalian X4 dengan Z41
e) Operasi XOR hasil langkah 1) dan 3)
f) Operasi XOR hasil angkah 2) dan 4)
g) Perkalian hasil langkah 5) dengan Z51
h) Penjumlahan hasil langkah 6) dengan langkah 7)
i) Perkalian hasil langkah 8) dengan Z61
j) Penjumlahan hasil langah 7) dengan 9)
k) Operasi XOR hasil langkah 1) dan 9)
l) Operasi XOR hasil langkah 3) dan 9)
m) Operasi XOR hasil langkah 2) dan 10)
n) Operasi XOR hasil langkah 4) dan 10)
o) Keluaran dari setiap putaran (11), 12) ,13), 14) ) menjadi masukan bagi operasi
selanjutnya. Pada putaran ke 8,5 dilakukan transformasi keluaran :
p) Perkalian X1 dengan Z1 8,5
q) Penjumlahan X2 dengan Z3 8,5
r) Penjumlahan X3 dengan Z2 8,5
s) Perkalian X4 dengan Z4 8,5
Setelah semua selesai, keempat subblok 16bit yang merupakan keluaran dari 8,5 putaran
operasi tadi digabung kembali menjadi blok pesan rahasia 64bit.
c. RSA (Rivest, Shamir, Adleman)
RSA Algorithm adalah dasar dari cryptostem – serangkaian algoritma kriptografi yang
digunakan untuk layanan atau tujuan keamanan tertentu – yang memungkinkan enkripsi
public key dan secara luas digunakan untuk mengamankan data sensitive, terutama ketika
sedang dikirim melalui ketidakaman jaringan seperti internet.
RSA pertama kali dijelaskan secara publik pada tahun 1977 oleh Ron Rivest, Adi Shamir
dan Leonard Adleman dari Massachusetts Institute of Technology, meskipun penciptaan
1973 algoritma kunci publik oleh matematikawan Inggris Clifford Cocks tetap
diklasifikasikan oleh GCHQ Inggris hingga 1997.
Dalam kriptografi RSA, public key dan private key dapat mengenkripsi pesan; kunci yang
fungsinya sebaliknya dari yang digunakan untuk mengenkripsi pesan, digunakan untu
mendekripsi pesan tersebut. Atribut ini adalah salah satu alasan mengapa RSA menjadi
algoritma asimetris yang paling banyak digunakan. RSA menyediakan metode untuk
memastikan kerahasiaan, integritas, keaslian, dan non-penolakan (non-repudation).
Banyakk protokol seperti Secure Shell, OpenPGP, S/MIME, dan SSL/TLS
mengandalkan RSA untuk fungsi enkripsi dan Digital Signature. Ini juga digunakan dalam
program peangkat lunak – Browser adalah contoh yang jelas karena mereka perlu membuat
koneksi yang aman melalui jaringan yang tidak aman, seperti interent, atau memvalidasi
Digital Signature. Verifikasi dari RSA adalah salah satu operasi yang paling umum
dilakukan dalam sistem yang terhubung ke jaringan.
RSA mendapatkan keamanannya dari kesulitan memfaktorkan bilangan bulat besar yang
merupakan produk dari dua bilangan prima besar.
Algoritma pembangkitan public key dan private key adalah bagian paling kompleks dari
kriptografi RSA. Dua bilangan prima besar, p dan q, dihasilkan dengan menggunakan
algoritma uji primality Rabin-Miller. Modulus, n, dihitung dengan mengalikan p dan q.
nomor ini digunakan oleh public key dan privae key dan menyediakan tautan di antara
mereka. Panjangnya, biasanya dinyatakan dalam bit, disebut key length.
Public key terdiri dari modulus n dan eksponen publik, e, yang biasanya ditetapkan pada
65537, karena merupakan bilangan prima yang tidak terlalu besar. Angka e tidak harus
berupa bilangan prima yang dipilih secara rahasia, karena public key dibagikan dengan
semua orang.
Privat key terdiri dari modulus n dan eksponen privat d, yang dihitung menggunakan
algoritma Extended Euclidean untuk menemukan invers multiplikatif berkenaan dengan
jumlah n.
Cara Kerja Algorima RSA
Arya menghasilkan kunci RSA-nya dengan memilih dua bilangan prima: p = 11 dan q =
13. Modulusnya adalah n = p × q = 143. Jumlahnya adalah n ϕ (n) = (p − 1) x (q − 1) = 120.
Dia memilih 7 untuk kunci publik RSA-nya dan menghitung kunci privat RSA-nya
menggunakan algoritma Extended Euclidean, yang memberinya 103.
Riven ingin mengirimkan pesan terenkripsi kepada Arya, M, jadi ia memperoleh kunci
publik RSA (n, e) yang, dalam contoh ini, adalah (143, 7). Pesan plaintext -nya hanya
nomor 9 dan dienkripsi ke dalam ciphertext
M e mod n = 9 7 mod 143 = 48 = C
Ketika Arya menerima pesan Riven, ia mendekripsi dengan menggunakan kunci privat
RSA-nya (d, n) sebagai berikut:
C d mod n = 48 103 mod 143 = 9 = M
Untuk menggunakan kunci RSA untuk menandatangani pesan secara digital, Arya perlu
membuat hash - intisari pesannya ke Riven - mengenkripsi nilai hash dengan kunci privat
RSA-nya, dan menambahkan kunci ke pesan. Riven kemudian dapat memverifikasi bahwa
pesan telah dikirim oleh Arya dan belum diubah dengan mendekripsi nilai hash dengan
kunci publiknya. Jika nilai ini cocok dengan hash dari pesan asli, maka hanya Arya yang
bisa mengirimnya – otentikasi
Arya tentu saja dapat mengenkripsi pesannya dengan kunci publik RSA Riven -
kerahasiaan - sebelum mengirimnya ke Riven. Sebuah sertifikat digital berisi informasi
yang mengidentifikasi pemilik sertifikat dan juga berisi kunci publik pemilik. Sertifikat
ditandatangani oleh otoritas sertifikat yang menerbitkannya, dan sertifikat itu dapat
menyederhanakan proses mendapatkan kunci publik dan memverifikasi pemiliknya.
Keamanan RSA
Keamanan RSA bergantung pada kesulitan komputasi untuk memfaktorkan bilangan
bulat besar. Ketika daya komputasi meningkat dan algoritma pemfaktoran yang lebih
efisien ditemukan, kemampuan untuk memperhitungkan jumlah yang lebih besar dan lebih
besar juga meningkat.
Kekuatan enkripsi secara langsung terkait dengan ukuran kunci, dan menggandakan
panjang kunci dapat memberikan peningkatan kekuatan secara eksponensial, meskipun hal
itu mengganggu kinerja. Kunci RSA biasanya 1024- atau 2048-bit, tetapi para ahli percaya
bahwa kunci 1024-bit tidak lagi sepenuhnya aman terhadap semua serangan. Inilah
sebabnya mengapa pemerintah dan beberapa industri bergerak ke panjang kunci minimum
2048-bit.
Kecuali sebuah terobosan tak terduga dalam komputasi kuantum , akan diperlukan
bertahun-tahun sebelum kunci yang lebih lama diperlukan, tetapi kriptografi kurva eliptik
(ECC) mendapatkan dukungan dari banyak pakar keamanan sebagai alternatif RSA untuk
menerapkan kriptografi kunci publik. Itu dapat membuat kunci kriptografi lebih cepat, lebih
kecil dan lebih efisien.
Perangkat keras dan lunak modern siap ECC, dan popularitasnya cenderung meningkat,
karena dapat memberikan keamanan yang setara dengan daya komputasi yang lebih rendah
dan penggunaan sumber daya baterai, menjadikannya lebih cocok untuk aplikasi seluler
daripada RSA. Akhirnya, tim peneliti, termasuk Adi Shamir, salah satu penemu RSA, telah
berhasil menciptakan kunci RSA 4096-bit menggunakan kriptanalisis akustik; Namun,
setiap algoritma enkripsi rentan terhadap serangan.
d. Knapsack Merkle-Hellman (MH)
Merkle-Hellman Knapsack merupakan sistem kriptografi yang dibuat oleh Ralph Merkle
dan Martin Hellman pada tahun 1978. Algoritma Merkle-Hellman memanfaatkan kunci
publik dan kunci privat untuk memodifikasi superincreasing knapsack menjadi knapsack
non-superincreasing. Kunci publik yang berbentuk barisan non-superincreasing
dimanfaatkan untuk enkripsi pesan, sedangkan untuk dekripsi pesan, digunakan kunci
privat yang merupakan deret superincreasing.
Metode Knapsack Merkle Hellman telah banyak digunakan untuk memodelkan solusi
masalah di industri seperti pada kriptografi kunci publik. Knapsack Merkle-Hellman
merupakan metode dalam kriptografi yang menggunakan algoritma asimetris dan memiliki
2 kunci utama, yakni kunci publik dan kunci privat. Kunci yang didistribusikan dikenal
dengan istilah kunci publik, jika kunci publik ini diketahui oleh orang lain yang tidak
berhak / berkepentingan, maka data yang dikirim akan tetap aman. Untuk kunci private
adalah kunci yang tetap disimpan oleh pihak-pihak yang berhak.
Ide dasar di balik skema enkripsi MerkleHellman adalah menciptakan masalah subset
yang bisa dipecahkan dengan mudah dan kemudian menyembunyikan sifat superincreasing
dengan perkalian modular dan permutasi. Vektor yang ditransformasikan membentuk
pesan terenkripsi dan vektor superincreasing asli membentuk kunci pribadi dan digunakan
untuk menguraikan pesan
Pada algoritma Merkle-Hellman Knapsack digunakan kunci privat dan kunci publik
dalam melakukan proses kriptografinya, metode ini juga memiliki pengamanan ganda
sehingga susah untuk ditembus.
Kelebihan
Kelebihan algoritma asymmetries ini adalah proses pendistribusian kunci pada media
yang tidak aman seperti internet, tidak memerlukan kerahasian. Karena kunci yang
didistribusikan adalah kunci publik. Sehingga jika kunci ini sampai hilang atau diketahui
oleh orang lain yang tidak berhak, maka pesan sandi yang dikirim akan tetap aman.
Sedangkan kunci private tetap disimpan (tidak didistribusikan). MerkleHellman Knapsack
punya Kelebihan lain pada efisiensi jumlah kunci publik. Jika terdapat n user, maka hanya
membutuhkan 1 (satu) kunci publik, sehingga untuk jumlah user yang sangat banyak,
sistem ini sangat efisien. Dengan adanya pertukaran kunci dalam enkripsi - dekripsi data
dengan kriptosistem kurva elliptik adalah mengamanan data yang berupa teks untuk
menghindari adanya penyadapan yang dilakukan oleh pihak-pihak yang tidak
berkepentingan.
➢ Algoritma Merkle-Hellman Knapsack
S = (s1,…,sn) bilangan integer superincreasing
𝑝 > ∑ 𝑠𝑖𝑛𝑖=1 bilangan prima
a, 1 ≤ a ≤ p-1, t = a si mod p
Public Key: t, Private Key: si, p, a,
➢ Encode
es(x1,…,xn) = 𝑝 > ∑ 𝑥𝑖𝑡𝑖𝑛𝑖=1
➢ Decode
z = a-1 y mod p
e. A5
Algoritma stream A5 ini digunakan untuk mendekripsi pembicaraan yang melalui
dilakukan melalui jaringan GSM yang digunakan. Enkripsi ini digunakan untuk menjamin
privasi dari orang yang berbicara di telepon karena pada pembicaraan di telepon, hal yang
dikirimkan merupakan bit sehingga kita dapat menyadap pesan tersebut dan
mengkonversikannnya ke suara untuk mendengarkan pesan yang disampaikan. Algoritma
ini pertama kali dianalisa oleh Goldberg, Warner, dan Green. Mereka berhasil melakukan
kriptanalis algoritma A5 relatif sangat cepat. Cara kriptanalis yang mereka gunakan dengan
mendapat 2 buah plainteks dan dengan menggunakan reverse engineering. Algoritma A5/2
merupakan algoritma enkripsi stream cipher. Stream cipher memiliki arti bahwa enkripsi
dilakukan bersamaan dengan dikirimkannya pesan atau informasi tersebut. Pada penerapan
enkripsi jaringan GSM, pesan/informasi yang dikirimkan merupakan suara dari pengguna
pada saat berbicara di telepon. Penerapan rumus umum pada stream cipher sebagai berikut
σi+1= F(σi; xi;K)
yi= f(σi; xi;K)
Dimana :
K = kunci yang digunakan
xi = plainteks
yi = cipherteks
σi = keadaan pada saat i
F = fungsi next-state
f = fungsi output
Teknik serangan yang dapat digunakan untuk mendekripsi algoritma ini menggunakan
metode chippertext-only attack. Serangan dapat kita lakukan terhadap kode perbaikan yang
terdapat pada setiap pesan yang dikirimkan. Operasi kode dan operasi pesan tersebut dapat
dimodelkan dalam bentuk perkalian pesan (direpresentasikan sebagai 184-bit vector biner
dengan lambang P) dengan ukuran matriks 456x184 yang mana diberikan lambing G dan
dilakukan operasi XOR terhadap sebuah vector konstan yang dilambangkan dengan g.
Hasil dari vector tersebut adalah : M = (G.P) XOR g. Vector M tersebut kemudian dibagi
menjadi 4 data frame yang berbeda. Pada proses enkripsi yang diperlukan, setiap data frame
dilakukan operasi XOR terhadap hasil keluaran keystream dari A5/2 tersebut. Kunci
observasi yang perlu diperhatikan pada cipherteks yang dimiliki adalah dengan mencari
persamaan linear pada keystream bit tersebut. Keystream bit tersebut, yang dapat
dilambangkan dengan k, merupakan hasil gabungan dari keempat frame keystream yang
dimiliki dimana k = k1 || k2 || k3 || k4 (dimana || mengartikan bahwa konkatenasi).
Algoritma A5 ini dapat dikembangkan agar serangan-serangan tersebut tidak dapat
dilakukan lagi terhadap algoritma tersebut. Salah satu pengembangan yang dilakukan
adalah dengan mengacak penggunaan keystream tersebut. Pengacakan keystream tersebut
dapat dilakukan dengan menggunakan sebuah fungsi permutasi seperti yang dilakukan
pada DES. Pengacakan tersebut dilakukan dengan sebuah fungsi permutasi yang telah
dikembangkan dan akan berubah setiap kali clocking tersebut dilakukan. Dengan
menggunakan fungsi ini, maka serangan untuk mencari persamaan dari cipherteks ataupun
plainteks tidak dapat dilakukan.
f. RC4
Algoritma RC4 didesain oleh Ron Rivest yang berasal dari RSA Security pada tahun
1987. RC sendiri mempunyai singkatan resmi yaitu “Rivest Chiper”, namun juga dikenal
sebagai “Ron’s Code” RC4 sebenarnya dirahasiakan dan tidak dipublikasikan kepada
khalayak ramai, namun ternyata ada orang yang tidak dikenal menyebarkan RC4 ke mailing
list Cypherpunks. Kemudian berita ini dengan cepat diposkan ke sci.crypt newsgroup,
dan dari newsgroup ini kemudian menyebar luas di internet. Kode yang dibocorkan tersebut
dipastikan keasliannya karena output yang dikeluarkansama dengan software-software
yang menggunakan RC4 yang berlisensi. Nama RC4 sudah dipatenkan, sehingga RC4
sering disebut juga ARCFOUR atau ARC4 (Alleged RC4) untuk menghindari masalah
pematenan. RSA Security tidak pernah secara resmi merilis algoritma tersebut. namun
Rivest secara pribadilah yang merilisnya tersebut dengan menhubunkan Wikipedia Inggris
ke catatan-catatan yang ia punya. RC4 telah menjadi bagian dari protokol enkripsi yang
standard dan sering digunakan, termasuk WEP dan WPA untuk wireless card, serta TLS.
Faktor utama yang menjadi kesuksesan dari RC4 adalah kecepatannya dan
kesederhanaannya dalam menangani banyak applikasi, sehingga mudah untuk
mengembangkan implementasi yang effisien ke software dan hardware.
RC4 menghasilkan pseudorandom stream bit. Seperti halnya stream cipher lainnya,
algoritma RC4 ini dapat digunakan untuk mengenkripsi dengan mengombinasikannya
dengan plainteks dengan menggunakan bit-wise Xor (Exclusive-or). Proses dekripsinya
dilakukan dengan cara yang sama (karena Xor merupakan fungsi simetrik). Untuk
menghasilkan keystream, cipher menggunakan state internal yang meliputi dua bagian
:1.Sebuah permutasi dari 256 kemungkinan byte.2.2 Indeks-pointer 8-bit.Permutasi di
inisialisasi dengan sebuah variabel panjang kunci, biasanya antara 40 sampai 256 bit
dengan menggunakan algoritma key-scheduling(KSA). Setelah proses ini selesai, stream
yang terdiri dari sekumpulan bit tersebut terbentuk dengan menggunakan Pseudo-Random
Generation Algorithm(PRGA).
Banyak stream cipher dibuat berdasarkan Linear Feedback Shift Registers (LFSRs) yang
efisien di perangkat keras namun kurang efisien dalam perangkat lunak. Desain dari RC4
menghindari penggunaan LFSRs, dan algoritma ini ideal untuk implementasi perangkat
lunak karena hanya menggunakan manipulasi byte. Algoritma ini menggunakan 256 byte
memori untuk kunci, yaitu key[0] sampai key[k-1], dan variabel integer i, j, dan y. Reduksi
modular dari beberapa nilai modulo 256 dapat dilakukan dengan sebuah bitwise AND
dengan 255.
Tidak seperti stream cipher modern, RC4 tidak mengambil nonce yang terpisah
bersamaan dengan kunci. Hal ini berarti jika kunci single long-term digunakan untuk
mengenkripsi beberapa stream, kriptosistemnya harus menentukan bagaimana cara
mengombinasikan nonce tersebut dan kunci long-term untuk menghasilkan kunci stream
untuk RC4. Sebuah pendekatan untuk menangani hal tersebut adalah dengan membuat
sebuah kunci RC4 dengan menggunakan fungsi hash. Enkripsi dengan menggunakan RC4
dapat diterobos dan rentan terhadap bit-flipping attack. Untuk menanggulangi hal ini,
skema enkripsi harus dikombinasikan dengan message authentication code yang kuat.
g. PGP (Pretty Good Privacy)
Pretty Good Privacy (PGP) adalah suatu pogram komputer yang dikembangkan oleh Phil
Zimmermann pada pertengahan tahun 1980 yang memungkinkan seseorang untuk saling
bertukar pesan melalui email dan juga file dengan memberikan perlindungan kerahasiaan
berupa enkripsi dan otentikasi berupa digital signature (tanda tangan digital). PGP
menggunakan kriptografi kunci simetri dan juga kriptografi kunci publik. Oleh karena itu,
PGP mempunyai dua tingkatan kunci, yaitu kunci rahasia (simetri), yang disebut juga
session key, untuk melakukan enkripsi data dan pasangan kunci privat dan kunci publik
untuk memberikan digital signature dan sekaligus melindungi kunci simetri. Fungsi-fungsi
utama pada PGP antara lain untuk melakukan enkripsi dan membuat digital signature pada
file, melakukan dekripsi dan verifikasi pada file yang memiliki digital signature, dan
mengelola koleksi kunci PGP yang dimiliki.
Penggunaan PGP ditujukan untuk melindungi tiga hal sebagai berikut, pertama, privasi,
kerahasiaan pada penyimpanan dan transmisi data akan dijamin sehingga hanya orang-
orang yang berhaklah yang dapat mengaksesnya, kedua, integritas, jaminan terhadap data
agar tidak dimodifikasi tanpa sepengetahuan pemiliknya, dan ketiga, otentikasi, jaminan
kepemilikan terhadap data.
PGP pertama kali muncul sebagai aplikasi sederhana untuk melindungi komunikasi
antarkomputer dengan menggunakan algoritma RSA dari serangan penyadap. Seiring
dengan perkembangan internet, gangguan yang terjadi tidak hanya pada jalur komunikasi
saja tetapi juga pada dokumen-dokumen yang terdapat pada komputer pribadi. Oleh karena
itu, PGP menambahkan fitur-fitur baru pada aplikasinya, antara lain fitur untuk menghapus
dokumen secara aman, enkripsi pada hard disk, dan enkripsi pada jaringan. Selain itu,
dikembangkan juga antarmuka yang user-friendly untuk memudahkan penggunaan PGP.
Perubahan juga terjadi pada target pasar pengguna PGP yang semula individu menjadi
peusahaan karena hanya perusahaan yang bersedia untuk membayar program pengamanan
seperti PGP.
Secara garis besar PGP memiliki tiga fitur utama, yaitu:
➢ Fitur untuk melakukan enkripsi dan menandatangani dokumen.
➢ Fitur untuk melakukan dekripsi dan verifikasi tanda tangan.
➢ Fitur untuk mengelola kunci PGP yang dimiliki oleh pengguna.
Setiap orang yang menggunakan PGP harus menerima kunci publik terlebih dahulu.
Kunci publik tersebut didapatkan dengan cara mengirim email kepada rekan yang akan
diajak berkomunikasi dengan memanfaatkan program PGP atau dengan terhubung secara
langsung ke server yang memegang kunci publik. Setelah kunci publik didapat maka
langkah berikutnya adalah melakukan verifikasi terhadap kunci tersebut. Proses verifikasi
tersebut dapat dilakukan secara tidak langsung, hal ini merupakan fitur utama dari PGP.
Cara Kerja PGP
PGP mengkombinasikan fitur-fitur terbaik yang terdapat pada kriptografi konvensional
dengan kriptografi kunci publik. PGP merupakan sistem kriptografi hybrid.
Enkripsi email pada PGP menggunakan algoritma enkripsi kunci asimetri dengan
pasangan kunci publik-kunci privat. Pengirim email menggunakan kunci publik penerima
untuk melakukan enkipsi kunci rahasia yang digunakan pada algoritma cipher simetri. Pada
akhirnya kunci akan digunakan untuk melakukan enkripsi plainteks. Hampir semua knci
publik pengguna PGP tersimpan pada server kunci PGP yang tersebar di seluruh dunia.
Penerima email yang terenkripsi tersebut menggunakan kunci sesi (session key) untuk melakukan
dekripsi terhadap email tersebut. Kunci sesi ini terdapat pada email yang terenkripsi tersebut dan
diperoleh dengan cara mendekripsinya dengan menggunakan kunci privat.
h. Digital Signature
Digital Signature adalah proses yang menjamin bahwa isi pesan belum diubah dalam
perjalanan. Saat Anda, server, menandatangani dokumen secara digital, Anda
menambahkan hash (enkripsi) satu arah dari konten pesan menggunakan pasangan public
keys dan private keys anda.
Klien Anda masih bisa membacanya, tetapi proses menciptakan "signature" yang hanya
dapat didekripsi oleh public key server. Klien, menggunakan server public key, kemudian
dapat memvalidasi pengirim serta integritas konten pesan.
Digital Signature seperti "fingerprint" elektronik. Dalam bentuk pesan berkode, tanda
tangan digital secara aman mengaitkan penanda tangan dengan dokumen dalam transaksi
yang direkam. Digital Signature menggunakan format standar yang diterima, yang disebut
Public Key Infrastructure (PKI) , untuk memberikan tingkat keamanan tertinggi dan
penerimaan universal. Mereka adalah implementasi teknologi tanda tangan spesifik
elektronik (eSignature).
Cara Kerja
Tanda tangan digital dapat dianggap sebagai nilai numerik yang direpresentasikan
sebagai urutan karakter. Penciptaan tanda tangan digital adalah proses matematika yang
kompleks yang hanya dapat dibuat oleh komputer.
Ketika penandatangan menandatangani dokumen secara elektronik, Signature dibuat
menggunakan private key milik penandatangan, yang selalu disimpan dengan aman oleh
penandatangan. Algoritma matematika bertindak seperti cipher, membuat data yang cocok
dengan dokumen yang ditandatangani, disebut hash, dan mengenkripsi data itu. Data
terenkripsi yang dihasilkan adalah Digital Signature. Tanda tangan juga ditandai dengan
waktu dokumen ditandatangani. Jika dokumen berubah setelah penandatanganan, tanda
tangan digital tidak valid.
Pertimbangkan skenario di mana Arya harus menandatangani file atau email secara
digital dan mengirimkannya ke Riven.
• Arya memilih file yang akan ditandatangani secara digital atau mengklik 'masuk' di
aplikasi emailnya
• Nilai hash dari konten file atau pesan dihitung oleh komputer Arya
• Nilai hash ini dienkripsi dengan Kunci Penandatanganan Arya (yang merupakan
Private Keys) untuk membuat Digital Signature.
• Sekarang, file asli atau pesan email beserta Digital Signature dikirim ke Riven.
• Setelah Riven menerima pesan yang ditandatangani, aplikasi terkait (seperti aplikasi
email) mengidentifikasi bahwa pesan telah ditandatangani. Komputer Riven kemudian
melanjutkan ke:
• Dekripsi Digital Signature menggunakan Publik Keys milik Arya
• Hitung hash dari pesan asli
• Bandingkan hash (a) yang telah dihitung dari pesan yang diterima dengan (b) hash
yang didekripsi yang diterima dengan pesan Arya.
• Perbedaan dalam nilai hash akan mengungkapkan pengrusakan pesan.
Cara membuat Digital Signature.
Anda memerlukan sertifikat digital untuk menandatangani dokumen secara digital.
Namun, jika Anda membuat dan menggunakan sertifikat yang ditandatangani sendiri,
penerima dokumen Anda tidak akan dapat memverifikasi keaslian tanda tangan digital
Anda. Mereka harus mempercayai sertifikat yang Anda tandatangani secara manual.
Jika Anda ingin penerima dokumen Anda dapat memverifikasi keaslian tanda tangan
digital Anda, maka Anda harus mendapatkan sertifikat digital dari CA terkemuka. Setelah
mengunduh dan menginstal sertifikat - Anda akan dapat menggunakan tombol 'Tanda' dan
'Enkripsi' pada klien email Anda untuk mengenkripsi dan menandatangani email secara
digital. Ini lebih masuk akal dalam skenario bisnis, karena meyakinkan penerima bahwa itu
benar-benar dikirim oleh Anda dan bukan oleh peniru.
Bergantung pada Otoritas Sertifikat yang Anda gunakan, Anda mungkin diminta untuk
memberikan informasi spesifik. Mungkin juga ada batasan dan batasan kepada siapa Anda
mengirim dokumen untuk penandatanganan dan urutan pengirimannya. Antarmuka
DocuSign memandu Anda melalui proses dan memastikan bahwa Anda memenuhi semua
persyaratan ini. Ketika Anda menerima dokumen untuk ditandatangani melalui email,
Anda harus mengotentikasi sesuai persyaratan Otoritas Sertifikat dan kemudian
"menandatangani" dokumen dengan mengisi formulir online.
Jenis-jenis Digital Signature
Platform pemrosesan dokumen yang berbeda mendukung dan memungkinkan pembuatan
berbagai jenis tanda tangan digital.
• Adobe mendukung - tanda tangan digital bersertifikat dan persetujuan
• Microsoft Word mendukung - tanda tangan digital yang terlihat dan tidak terlihat
Beberapa jenis Digital Signature yaitu :
o Certified Signatures
Menambahkan tanda tangan sertifikasi ke dokumen PDF menunjukkan bahwa
Anda adalah penulis dokumen dan ingin mengamankan dokumen dari gangguan.
o Dokumen PDF bersertifikat menampilkan pita biru unik di bagian atas dokumen. Ini
berisi nama penandatangan dokumen dan penerbit sertifikat untuk menunjukkan
kepengarangan dan keaslian dokumen
o Approval Signatures
Approval Signatures pada dokumen dapat digunakan dalam alur kerja bisnis
organisasi Anda. Mereka membantu mengoptimalkan prosedur persetujuan organisasi
Anda. Prosesnya melibatkan pengambilan persetujuan yang dibuat oleh Anda dan
orang lain dan menanamkannya dalam dokumen PDF.
Adobe memungkinkan tanda tangan untuk memasukkan rincian seperti gambar
tanda tangan fisik Anda, tanggal, lokasi, dan meterai resmi.
o Visible Digital Signatures
Ini memungkinkan satu pengguna atau banyak pengguna untuk secara digital
menandatangani satu dokumen. Tanda tangan akan muncul pada dokumen dengan cara
yang sama seperti tanda tangan diterapkan pada dokumen fisik.
o Invisible Digital Signatures
Dokumen dengan tanda tangan digital yang tidak terlihat membawa indikasi
visual pita biru di bilah tugas. Anda dapat menggunakan tanda tangan digital yang
tidak terlihat ketika Anda tidak harus atau tidak ingin menampilkan tanda tangan Anda,
tetapi Anda perlu memberikan indikasi keaslian dokumen, integritasnya, dan asal-
usulnya.
i. Digital Certificate
Pengertian Digital Certificate
Digital Certificates adalah file elektronik yang hanya bekerja sebagai paspor online.
Digital Certificates dikeluarkan oleh pihak ketiga yang dikenal sebagai Certification
Authority seperti VeriSign atau Thawte..
Sertifikat digital adalah dokumen digital yang berisi informasi sebagai berikut:
1) nama subjek (perusahaan/individu yang disertifikasi)
2) kunci publik si subjek
3) waktu kadaluarsa sertifikat (expired time)
4) informasi relevan lain seperti nomor seri sertifikat, dll
Fungsi Digital Certificate
Sertifikat digital memiliki dua fungsi dasar,yaitu:
1) Untuk menyatakan bahwa orang-orang, website, dan sumber daya jaringan seperti
server dan router merupakan sumber terpercaya, dengan kata lain sesuai dengan siapa
atau apa yang menjadi tuntutan mereka.
2) Untuk memberikan perlindungan bagi pertukaran data dari pengunjung dan website
dari gangguan atau bahkan pencurian, seperti informasi kartu kredit.
Bentuk Digital Certificate
Sebuah sertifikat digital berisi nama organisasi atau individu, alamat bisnis, tanda tangan
digital, public key, nomor seri, dan tanggal kedaluwarsa. Ketika Anda sedang online dan
browser web Anda mencoba untuk mengamankan sambungan, maka sertifikat digital yang
diterbitkan untuk website yang akan diperiksa oleh browser web untuk memastikan bahwa
semuanya baik-baik saja dan dapat Anda telusuri dengan aman. Ada dua jenis utama
sertifikat digital yang penting untuk membangun situs Web aman dan ini adalah server
certificates dan personal certificates.
Server certificates
Sertifikat server hanya memungkinkan pengunjung website untuk aman mentransfer
informasi pribadi mereka seperti kartu kredit dan informasi rekening bank tanpa khawatir
tentang pencurian atau gangguan. Sertifikat server juga bertanggung jawab untuk
memvalidasi identitas pemilik website sehingga pengunjung dapat merasa seolah-olah
mereka berhadapan dengan sumber yang sah saat membuat atau memasukkan password,
rincian rekening bank, atau nomor kartu kredit ke dalam situs web.
Personal Certificates
Personal Certificates sedikit berbeda dari Server Certificates karena memungkinkan Anda
untuk memvalidasi identitas pengunjung situs Web dan bahkan membatasi akses mereka
kepada bagian-bagian tertentu dari website.
Keamanan Standar
Sebagian besar protokol standar yang banyak digunakan untuk komunikasi elektronik
mengandalkan digital certificates:
• SSL (Secure Socket Layer), yang dirancang oleh Netscape Communication
Corporation, diterima secara luas sebagai browser forweb dasar standar dan otentikasi
server, dan aman untuk pertukaran data di Internet.
• S/MIME (Secure Multipurpose Internet Mail Extensions Protocol) dianggap sebagai
standar dasar untuk email yang aman dan EDI (Electronic Data Interchange).
• SET (Secure Transaksi Elektronik protokol) melindungi pembayaran elektronik dari
pengunjung web untuk operator situs.
• Internet Protocol Secure Standard (IPSec) memverifikasi perangkat jaringan seperti
server dan router.
Cara Kerja Digital Certificate
Proses Registrasi
Langkah pembentukan sertifikat digital:
• Diperlukan sebagai identifikasi sebelum seorang pelanggan dapat melakukan
akses/transaksi pada suatu aktifitas kegiatan berbasis WEB (B2B, B2C, G2C) yang
menggunakan pengamanan dan enkripsi dengan metoda Public Key Infrastructure
(PKI).
• Setiap orang/pelanggan yang akan berkomunikasi/bertransaksi harus terlebih dahulu
mendaftar (registrasi) untuk memperoleh Identifikasi dalam bentuk Elektronik
Identification Number.
• Setelah Elektronik Identification Number (E-ID) diterbitkan dan diterima oleh
pelanggan, selanjutnya Elektronik Identification Number (E-ID) tersebut oleh provider
yang bersangkutan akan dikirimkan ke Certificate Authority Server untuk di
registrasikan.
• Selanjutnya pelanggan melalui komputer yang dimiliki (personal) akan melakukan
koneksi secara on line menggunakan komunikasi yang khusus/secure (menuju address
WEB site yang telah ditentukan) untuk melalukan verifikasi dengan cara mengirimkan
Elektronik Identification Number (E-ID) yang telah diperoleh sebelumnya, dalam
rangka memperoleh Digital Certificate.
• Selanjutnya Certificate Authority Server akan melakukan verifikasi terhadap
kebenaran dan keabsahan Elektronik Identification Number (E-ID) yang telah
dikirimkan oleh pelanggan.
• Jika Elektronik Identification Number (E-ID) tersebut benar dan absah, maka
selanjutnya Certificate Authority Server akan menerbitkan Digital Certificate, dengan
disertai Public Key dan Private Key.
Proses pengiriman
• Diperlukan sebagai identifikasi sebelum seorang pelanggan dapat melakukan
akses/transaksi pada suatu aktifitas kegiatan berbasis WEB (B2B, B2C, G2C) yang
menggunakan pengamanan dan enkripsi dengan metoda Public Key Infrastructure
(PKI).
• Setelah Elektronik Identification Number (E-ID) diterbitkan dan diterima oleh
pelanggan, selanjutnya Elektronik Identification Number (E-ID) tersebut oleh provider
yang bersangkutan akan dikirimkan ke Certificate Authority Server untuk di
registrasikan.
• Selanjutnya pelanggan melalui komputer yang dimiliki (personal) akan melakukan
koneksi secara on line menggunakan komunikasi yang khusus/secure (menuju address
WEB site yang telah ditentukan) untuk melalukan verifikasi dengan cara mengirimkan
Elektronik Identification Number (E-ID) yang telah diperoleh sebelumnya, dalam
rangka memperoleh Digital Certificate.
• Selanjutnya Certificate Authority Server akan melakukan verifikasi terhadap
kebenaran dan keabsahan Elektronik Identification Number (E-ID) yang telah
dikirimkan oleh pelanggan.
• Jika Elektronik Identification Number (E-ID) tersebut benar dan absah, maka
selanjutnya Certificate Authority Server akan menerbitkan Digital Certificate, dengan
disertai Public Key dan Private Key.
• Digital Certificate tersebut akan dikirimkan ke pelanggan dengan menggunakan
komunikasi yang khusus/secure untuk selanjutnya Digital Certificate tersebut diinstall
di komputer pelanggan
j. MD5
Algoritma MD5 adalah algoritma yang menggunakan fungsi hash satu arah yang
diciptakan oleh Ron Rivest. Algoritma merupakan pengembangan dari algoritma-algoritma
sebelumnya yaitu algoritma MD2 dan algoritma MD4 karena kedua algoritma ini berhasil
diserang para cryptanalist.
Cara kerja kriptografi algoritma MD5 adalah menerima input berupa pesan dengan
ukuran sembarang dan menghasilkan message diggest yang memiliki panjang 128 bit.
Berikut ilustrasi gambar dari pembuatan message diggest pada kriptografi algoritma MD5:
dari gambar diatas, secara garis besar pembuatan message digest ditempuh melalui empat
langkah, yaitu :
Penambahan bit bit pengganjal
Proses pertama yang dilakukan adalah menambahkan pesan dengan sejumlah bit
pengganjal sedemikian sehingga panjang pesan (dalam satuan bit) kongruen dengan 448
modulo 512. Ini berarti setelah menambahkan bit-bit pengganjal, kini panjang pesan
adalah 64 bit kurang dari kelipatan 512. Hal yang perlu diingat adalah angka 512 muncul
karena algoritma MD5 memproses pesan dalam blok-blok yang berukuran 512.
Apabila terdapat pesan dengan panjang 448 bit, maka pesan tersebut akan tetap
ditambahkan dengan bit-bit pengganjal. Pesan akan ditambahkan dengan 512 bit menjadi
96 bit. Jadi panjang bit-bit pengganjal adalah antara 1 sampai 512. Lalu satu hal lagi yang
perlu diperhatikan adalah bahwasanya bit-bit pengganjal terdiri dari sebuah bit 1 diikuti
dengan sisanya bit 0.
Penambahan nilai panjang pesan semula
Kemudian proses berikutnya adalah pesan ditambah lagi dengan 64 bit yang
menyatakan panjang pesan semula. Apabila panjang pesan lebih besar dari 264 maka yang
diambil adalah panjangnya dalam modulo 264. dengan kata lain, jika pada awalnya
panjang pesan sama dengan K bit, maka 64 bit yang ditambahkan menyatakan K modulo
264. sehingga setelah proses kedua ini selesai dilakukan maka panjang pesan sekarang
adalah 512 bit.
Inisialisasi penyangga MD
Pada algoritma MD5 dibutuhkan empat buah penyangga atau buffer, secara berurut
keempat nama penyangga diberi nama A, B, C dan D. Masing-masing penyangga
memiliki panjang 32 bit. Sehingga panjang total :
Keempat penyangga ini menampung hasil antara dan hasil akhir. Setiap penyangga
diinisialisasi dengan nilai-nilai (dalam notasi Hexadesimal) sebagai berikut :
Pengolahan pesan dalam blok berukuran 512 bit
Proses berikutnya adalah pesan dibagi menjadi L buah blok yang masing-masing
panjangnya 512 bit (Y0 sampai YL-1). Setelah itu setiap blok 512 bit diproses bersama
dengan penyangga MD yang menghasilkan keluaran 128 bit, dan ini disebut HMD5.
Berikut ini gambaran dari proses HMD5 :
Dari gambar diatas dapat kita lihat bahwa proses HMD5 terdiri dari 4 buah putaran, dan
masing-masing putaran melakukan opersi dasar MD5 sebanyak 16 kali. Dimana disetiap
operasi dasar memakai sebuah elemen T. Sehingga setiap putaran memakai 16 elemen
tabel T.
Pada gambar 6, Yq menyatakan blok 512 bit ke-q dari pesan yang telah ditambahkan
dengan bit-bit pengganjal pada proses pertama dan tambahan 64 bit nilai panjang pesan
semula pada proses kedua. MDq adalah nilai message digest 128 bit dari proses HMD5 ke-
q. Pada awal proses , MDq berisi nilai inisialisasi penyangga MD. Kemudian fungsi fF, fG,
fH, dan fI pada gambar, masing-masing berisi 16 kali operasi dasar terhadap input, setiap
operasi dasar menggunakn elemen tabel T. Berikut ini ilustrasi gambar operasi dasar
MD5 :
Operasi dasar MD5 yang diperlihatkan gambar diatas dapat dituliskan dengan
persamaan berikut ini :
Dimana,
Fungsi fF, fG, fH, dan fI adalah fungsi untuk memanipulasi masukan a, b, c, dan d dengan
ukuran 32-bit. Masing-masing fungsi dapat dilihat pada Tabel 1 dibawah ini :
NB : secara berurut peartor logika AND, OR, NOT dan XOR dilambangkan
dengan ∧, ∨, ~, ⊕
Kemudian nilai T[i] dapat dilihat pada tabel dibawah ini. Tabel ini disusun oleh fungsi
232 x abs(sin(i)), i dalam radian.
Tabel 2. Nilai T[i]
Sebagaimana telah dijelaskan sebelumnya bahwa fungsi fF, fG, fH, dan fI melakukan 16
kali operasi dasar. Misalkan notasi berikut ini :
Menyatakan operasi
untuk operasi diatas, <<<s melambangkan opersi circular left shift 32 bit, maka operasi
dasar pada masing-masing putaran dapat ditabulasikan sebagai berikut :
• Putaran 1 : 16 kali operasi dasar dengan g(b, c, d) – F(b, c, d), dapat dilihat pada
tabel berikut ini :
• putaran 2 : 16 kali operasi dasar dengan g(b, c, d) – G(b, c, d), dapat dilihat pada
tabel berikut ini :
• putaran 3 : 16 kali operasi dasar dengan g(b, c, d) – H(b, c, d), dapat dilihat pada
tabel berikut ini :
• putaran 4 : 16 kali operasi dasar dengan g(b, c, d) – I(b, c, d), dapat dilihat pada
tabel berikut ini :
Setelah putaran keempat, a, b, c dan d di tambahkan ke A, B, C dan D yang
selanjutnya algoritma akan memproses untuk blok data berikutnya (Yq+1). Output akhir
dari algoritma MD5 adalah hasil penyambungan bit-bit di A, B, C dan D.
Dari uraian diatas, secara umum fungsi hash MD5 dapat ditulis dalam persamaan
matematis sebagai berikut :
Dimana,
Agar lebih mudah dipahami, berikut ini contoh penerapan kriptografi MD5 pada suatu
pesan yang ingin dirahasiakan. Misalkan terdapat sebuah arsip dengan nama bandung.txt
sebagai berikut :
Message digest yang dihasilkan dari arsip diatas adalah untuk 128 bit :
Lalu untuk notasi hexadesimal :
3.2 Aplikasi Algoritma MD5 Untuk Integritas Data
Aplikasi algoritma dapat digunakan untuk menjaga keintegritasan data. Dengan
aplikasi fungsi hash yang menjadi asas algoritma MD5, perubahan kecil pada data
sekalipun dapat terdeteksi. Langkah yang harus ditempuh adalah bangkitkan message
digest dari isi arsip menggunakan algoritma MD5. kemudian gabung message digest ke
dalam arsip. Verifikasi isi arsip dapat dilakukan secara berkala dengan membandingkan
MD isi arsip sekarang dan MD dari arsip asli (MD yang telah disimpan sebelumnya).
Jika hasilnya berbeda maka telah terjadi perubahan pada arsip.
Aplikasi ini didasarkan pada kenyataan bahwa perubahan 1 bit pesan akan
mengubah, secara rata-rata, setengah dari bit-bit message digest. Dengan kata lain,
algoritma MD5 dengan fungsi hashnya sangat peka terhadap perubahan sekecil apapun
pada data masukan. Sebagai contoh perhatikan arsip dibawah ini :
Untuk kasus pertama, apabila 33 derajat celcius diganti dengan 32, maka MD
dari isi arsip adalah (tidak termasuk baris MD) :
Untuk kasus kedua, apabila ditambahkan spasi diantara ”33” dan ”derajat”, maka
MD dari isi arsip adalah (tidak termasuk baris MD) :
Dari kedua kasus diatas sangat terlihat bahwa algoritma MD5 dengan fungsi hashnya
sangatlah peka dengan perubahan walau kecil sekalipun.
4. Kesimpulan
Dengan semakin berkembangnya teknologi, komputer sebagai salah satu alat teknologi.
Teknologi memiliki dampak positif yang tidak sedikit, dan juga memiliki banyak dampak
negatif. Sistem kriptografi hadir untuk menangani dampak-dampak negatif teknologi yang
menyerang komputer. Sistem kriptografi bekerja dengan metode enkripsi dan metode
deskripsi. Kriptografi menjadikan sebuah pesan/tulisan menjadi sebuah code, sehingga pihak
tidak berwenang, tidak dapat membaca pesan/tulisan tersebut.
5. Daftar Pustaka
Rouse, Margaret. 2014. RSA Algorithm (Rivest-Shamir-Adleman).
https://searchsecurity.techtarget.com/definition/RSA diakses pada 5 September 2019.
Sectigo Limited. 2019. What is Digital Signature?. https://www.instantssl.com/digital-
signature diakses pada 5 September 2019.
DocuSign. 2019. How Digital Signature Work. https://www.docusign.com/how-it-
works/electronic-signature/digital-signature/digital-signature-faq diakses pada 5
September 2019.
Sutiono, Arie Pratama. 2010. Algoritma RC4 sebagai Perkembangan Metode
Kriptografi.https://www.academia.edu/35395928/Algoritma_RC4_sebagai_Perkembangan
Metode_Kriptografi. Diakses pada Kamis, 05 September 2019 pukul 15:00 WIB.
Comodo. 2019. Digital Certificacte. https://www.comodo.com/resources/small-
business/digital-certificates.php diakses pada 5 September 2019.
Julismail. 2019. Tentang certificate authority.
https://julismail.staff.telkomuniversity.ac.id/tentang-certificate-authority/ diakses pada 5
September 2019.
Munir, Rinaldi., Fungsi Hash Satu Arah dan Algoritma MD5, Institut Teknologi Bandung,
2004.
ITJurnal. 2019. Pengertian MD5. https://www.it-jurnal.com/pengertian-message-digest-5-
md5/ diakses pada 5 September 2019.
Wikipedia. 2019. MD5. https://id.wikipedia.org/wiki/MD5 diakses pada 5 September 2019.
Al-Bahr, Brian. International Data Encryption Algorithm : Jurusan Teknik Informatika,
Sekolah Teknik Elektro dan Informatika, Institut Teknologi Bandung
A.Meneezes, P. van Oorschot, and S.Vanstone, (1996) Handbook of Applied Crytpography.
CRC Press,.