Upload
khangminh22
View
0
Download
0
Embed Size (px)
Citation preview
ALGORITMA KRIPTOGRAFI
Alam Al Mabruk, Chrisatyo Arian Simandjuntak, Naeson Soterio Unani, Muhammad Arif
Yudhistira Miftahurrizki, Rana Amira
Jurusan Sistem Informasi, Fakultas Sains dan Teknologi, Universitas Airlangga, Mulyorejo,
Surabaya, Indonesia
Abstract
Melaju ke era digitalisasi, penggunaan Teknologi Informasi (TI) tidak bisa terlepas dari
kehidupan sehari-hari manusia. Bahkan perusahaan-perusahaan besar di seluruh dunia
berlomba-lomba untuk menjadi yang terbaik dengan menunjukkan bagaimana kemampuan
Sistem Informasi mereka. Perkembangan Teknologi Informasi yang semakin pesat membuat
banyak kalangan semakin ragu dengan kapabilitas Teknologi Informasi mereka, khususnya
dari aspek keamanan komputer. Semakin beragam pula user behaviour pengguna computer
saat ini. Akan tetapi, ada banyak sekali algoritma enkripsi yang dapat digunakan dalam aspek
keamanan komputer. Artikel ini membahas tentang 10 topik yang bersangkutan dengan
keamanan komputer yaitu AES, IDEA, RSA, Knapsack Merkle-Hellman, A5, RC4, PGP,
Digital Signature, Digital Certificate, serta MD5.
Kata kunci: keamanan computer, Teknologi Informasi, algoritma enkripsi
1. Pendahuluan
Masalah keamanan dan kerahasiaan data merupakan hal yang sangat penting dalam suatu
organisasi maupun pribadi. Apalagi jika data tersebut berada dalam suatu jaringan komputer
yang terhubung / terkoneksi dengan jaringan lain yang publik misalnya internet. Tentu saja data
yang sangat penting tersebut jangan sampai jatuh ke tangan yang tidak berwenang sehingga bisa
dilihat atau dibajak oleh orang yang tidak berwenang tersebut. Sebab kalau hal ini sampai terjadi
kemungkinan informasi yang terkandung di dalamnya bisa diketahui oleh lain yang tidak berhak
sehingga mungkin saja membahayakan bagi orang yang mengirim pesan atau dikirimi pesan
bahkan banyak orang. Informasi yang terkandung di dalamnya pun bisa saja berubah sehingga
menyebabkan salah penafsiran oleh penerima pesan sehingga bisa membahayakan kedua pihak
atau bahkan banyak orang. Selain itu data yang dibajak tersebut akan memiliki kemungkinan
rusak bahkan bisa hilang yang akan menimbulkan kerugian material yang besar.
Salah satu cara dalam menjaga keamanan komputer adalah dengan kriptografi.
Kriptografi merupakan salah satu metode untuk menjaga pengamanan data agar terjamin
kerahasiaan dan keaslian data serta dapat meningkatkan aspek keamanan suatu data atau
informasi. Kriptografi mendukung kebutuhan dua aspek keamanan informasi yaitu perlindungan
terhadap kerahasian informasi dan perlindungan terhadap pemalsuan dan pengubahan informasi
yang disampaikan dari pengirim kepada penerima informasi. Untuk mengetahui suatu algoritma
kriptografi dapat mengamankan data dengan baik, dapat dilihat dari lamanya waktu proses
pembobolan untuk memecahkan data yang telah disandikan.
2. Perspektif Teori
Kriptografi berasal dari bahasa Yunani terdiri dari kata kryptos yang artinya rahasia dan kata
graphia yang artinya sesuatu yang terlulis, sehingga kriptografi dapat juga disebut sebagai
sesuatu yang tertulis secara rahasia. Kriptografi merupakan ilmu yang mempelajari teknik-teknik
matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan, integritas
data serta otentikasi.
Bentuk paling awal kriptografi ada 2 jenis,yakni transposition ciphers dan substitution
ciphers . Bentuk transposition ciphers digunakan oleh tentara Sparta pada Zaman Yunani Kuno
pada 400 SM. Mereka menggunakan alat yang disebut Scytale. Alat ini terdiri dari sebuah pita
panjang yang dililitkan pada sebatang slinder. Pesan yang akan dikirimkan ditulis horizontal .
Bila pita dilepaskan, maka huruf-huruf di dalamnya telah tersusun membentuk pesan rahasia.
Seiring berjalannya waktu, kriptografi telah banyak digunakan dalam berbagai bidang, misalnya
di bidang religious, digunakan dalam “The Number of The Beast”, dalam bidang matamata,
kerahasiaan komunikasi, bahkan kriptografi juga dianjurkan dalam buku “Kama Sutra”.
Kriptografi juga berperan besar ketika Sekutu memenangkan Perang Dunia II.
Perkembangan komputer digital dan elektronika yang begitu pesat memungkinkan pembuatan
cipher yang jauh lebih kompleks daripada sebelumnya. Lebih jauh lagi, komputer
memungkinkan enkripsi data apa pun yang direpresentasikan oleh komputer sebagai format
biner. Tujuan-tujuan dari kriptografi antara lain :
1) Convidentiality
Yaitu menjaga kerahasiaan pesan dan menyimpan data dengan menyembunyikan
informasi lewat teknik-teknik enripsi.
2) Massage Integrity
Yaitu memberikan jaminan bahwa untuk tiap bagian pesan tidak akan mengalami
perubahan dari saat data dibuat/dikirim oleh pengirim sampai dengan saat data tersebut
dibuka oleh penerima data.
3) Non-repudiation
Yaitu memberikan cara untuk membuktikan bahwa suatu dokumen datang dari seseorang
tertentu sehingga apabila ada seseorang yang mencoba mengakui memiliki dokumen
tersebut, dapat dibuktikan kebenarannya dari pengakuan orang tersebut.
4) Authentication
Yaitu emberikan dua layanan. Pertama mengidentifikasikan keaslian suatu pesan dan
memberikan jaminan keotentikannya. Kedua untuk menguji identitas seseorang apabila ia
akan memasuki sebuah sistem.
Dalam kriptografi, pesat atau informasi yang dibaca disebut sebagai plaintext atau clear text.
Proses yang dilakukan untuk mengubah plaintext ke dalam chipertext disebut enkripsi.
Sedangkan pesan yang tidak dapat terbaca disebut dengan istilah chipertext. Proses kebalikan
dari enkripsi dinamakan dekripsi yaitu proses yang akan mengembalikan chipertext menjadi
plaintext. Kedua proses enkripsi dan dekripsi membutuhkan penggunaan sejumlah informasi
rahasia yang disebut kunci (key).
3. Diskusi
Terdapat dua algoritma, yaitu algoritma rahasia dan algoritma kunci. Algoritma rahasia
sudah tidak digunakan karena jika algoritmanya sudah diketahui oleh orang lain, maka harus
mengganti dengan algoritma baru. Juga dengan algoritma rahasia tidak memungkinkannya
standardisasi sebagai kendala mutu, karena setiap kelompok pengguna harus mempunyai
algoritmanya sendiri-sendiri. Maka dari itu, saat ini telah diganti oleh algoritma kunci.
Algoritma ini dapat dipublikasikan dan dapat diproduksi masal karena tingkat keamanan
algoritma ini adalah berdasarkan kerahasiaan kuncinya, bukan algoritmanya. Algoritma ini
dibagi menjadi 2 bagian utama, yakni Algoritma Simetris/Privat Key Criptography dan
Algoritma Asimaetris/Public Key Criptography.
A) AES ( Advanced Encryption Standard )
Salah satu algoritma yang dipakai dalam kriptografi adalah metode Advanced
Encryption Standard (AES), merupakan algoritma kriptografi simetrik yang memproses blok
data 128 bit dengan panjang kunci 128 bit (AES 128), 192 bit (AES 192) atau 256 bit (AES
256). Metode yang diterapkan pada algoritma kriptografi penyandi blok AES antara lain
Electronic Code Block (ECB), Chiper Block Chaining (CBC), Chiper Feedback (CFB) dan
Output Feedback (OFB).
Algoritma AES menggunakan substitusi dan permutasi, dan sejumlah putaran (chiper
berulang) dimana setiap putaran menggunakan kunci (key) yang berbeda yang dinamakan round
key. Dari ketiga versi panjang kunci AES tersebut terdapat perbedaan pada jumlah key dan
putarannya seperti pada tabel 1.
Keterangan : 1 Words = 32 bit
Proses enkripsi pada algoritma AES terdiri dari 4 (empat) jenis transformasi bytes, yaitu
SubBytes, ShiftRows, Mixcolumns dan AddRoundKey. Pada awal proses dilakukan enkripsi,
input yang telah dikopikan kedalan state akan mengalami transformasi byte AddRoundKey.
Setelah itu, state akan mengalami SubBytes, ShiftRows, MixColumns dan AddRoundKey secara
berulang-ulang sebanyak Nr. Proses ini dalam algoritma dapat disebut dengan round function.
Round yang terakhir agak berbeda dengan round-round sebelumnya dimana pada round terakhir,
state tidak mengalami transformasi MixColumns. Proses enkripsi seperti yang terlihat pada
gambar 1.
1) AddRoundKey : melakukan XOR antara state awal (plaintext) dengan chiper key pada
tahapan ini disebut initial round. Putaran sebanyak Nr-1 kali dimana proses yang
dilakukan pada setiap putaran.
2) SubBytes : Substitusi byte dengan menggunakan tabel substitusi (S-Box). Tabel 2
merupakan tabel S-Box SubBytes, untuk setiap byte pada array state, misalkan S[r,c]=xy
dimana xy adalah digit hexadesimaldari nilai S[r,c] maka nilai substitusinya dinyatakan
dengan S’[r,c] adalah elemen didalam S-Box yang merupakan perpotongan baris x dengan
kolom y. Gambar 2 merupakan gambar proses transformasi SubBytes.
3) ShiftRows : pergeseran baris-baris array state secara wrapping pada ketiga baris terakhir
dari array state, dimana pada proses ini bit paling kiri akan dipindahkan menjadi bit paling
kanan. Jumlah pergeseran bergantung pada nilai baris (r). Baris r-1 digeser 1 byte, baris
r=2 digeser sejauh 2 byte dan baris r=3 digeser sejauh 3 byte sedangkan baris r=0 tidak
digeser seperti yang terlihat pada gambar 3.
4) MixColumns : mengacak-acak data di masing-masing kolom array state. Dalam proses
MixColumns terdapat beberapa perkalian yaitu Matrix Multiplication dan Galois Field
Multiplication.
5) AddRoundKey : melakukan XOR antara state sekarang dengan round key.
6) Final round : proses untuk putaran terakhir (SubBytes, ShiftRows, AddRoundKey).
Untuk proses dekripsi, yaitu dengan cara membalik dan mengimplementasikan dalam
arah yang berlawanan untuk menghasilkan invers chiper yang mudah dipahami untuk algoritma
AES. Transformasi byte yang digunakan pada invers chiper adalah InvShiftRows, InvSubBytes,
InvMixColumns dan AddRoundKey.
1) InvShiftRows : merupakan transformasi bytes yang kebalikan dengan transformasi
ShiftRows. Pada transformasi InvShiftRows dilakukan pergeseran bit ke kanan sedangkan
pada ShiftRows dilakukan pergeseran bit ke kiri.
2) InvSubBytes : merupakan transformasi bytes yang berkebalikan dengan transformasi
SubBytes. Pada InvSubBytes, tiap elemen pada state dipetakan dengan menggunakan tabel
Inverse S-Box.
3) InvMicColumn : merupakan setiap kolom state dikalikan dengan matriks perkalian
dalam AES. Perkalian dalam matriks dapat dituliskan sebagai berikut:
Hasil dari perkalian dalam matriks adalah sebagai berikut:
B) International Data Encryption Algorithm ( IDEA )
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 adalah revisi minor cipher yang lebih
awal, yakni PES, dan pada awalnya disebut IPES (Improved PES).
IDEA didesain di bawah kontrak Hasler Foundation. Sandi rahasia ini dipatenkan di
banyak negara tapi dapat digunakan secara gratis untuk penggunaan yang tidak komersial.
Nama “IDEA” juga dipatenkan dan hak patennya berakhir tahun 2011. Lisensi dari IDEA
dipegang oleh MediaCrypt. IDEA digunakan di Pretty Good Privacy (PGP) v2.0 dan
sebagai algoritma opsional dalam OpenPGP, Netscape’s Secure Socket Layer (SSL), dan
Secure Hypertext transfer Protocol (SHTTP).
Algoritma utama dari sistem kriptografi IDEA adalah sebagai berikut :
1. Proses enkripsi : ek (M) = C
2. Proses dekripsi : dk (C) = M
Dimana :
e = adalah fungsi enkripsi
d = adalah fungsi dekripsi
M = adalah pesan terbuka
C = adalah pesan rahasia
K = adalah kunci enkripsi atau dekripsi
IDEA (International Data Encryption Algorithm) merupakan algoritma simetris yang
beroperasi pada sebuah blok pesan plaintext terbuka dengan panjang blok 64-bit. Memilih
panjang blok sebanyak 64 bit kaena dirasa sudah cukup panjang bila kita akan melakukan
analisis statistikal. Menggunakan kunci yang sama , berukuran 128-bit, untuk proses enkripsi
maupun dekripsi. Kunci yang digunakan panjangnya 128 bit karena bila dilakukan serangan
brute force pada IDEA menggunakan sebuah sistem yang dapat melakukan pengujian 109
kunci per detiknya, akan diperlukan waktu 1013 tahun untuk mencari kuncinya. Pesan
rahasia yang dihasilan oleh algoritma ini (chipertext) berupa blok pesan rahasia dengan lebar
satu blok 64-bit. Sebuah sistem yang dapat melakukan pengujian 109 kunci akan mencari
semua kemungkinan dari 256 kunci DES dalam waktu di bawah satu detik (72 millidetik).
IDEA menggunakan proses iterasi yang terdiri dari 8 putaran dan 1 transformasi keluaran
pada putaran ke 8,5.
Gambar 1. Algoritma IDEA
Prinsip perancangan dari algoritma kriptografi IDEA di sini adalah : ƒ
1) Diffusion
Konsep ini dilakukan dengan mengusahakan setiap bit dari setiap plaintext
mempengaruhi setiap bit ciphertext dan setiap bit kunci untuk mempengaruhi setiap bit
ciphertext. ƒ
2) Confusion
Konsep ini dilakukan dengan mencampur tiga prinsip operasi grup aljabar yang
berbeda-beda :
1. XOR (penambahan modulo 2).
2. Penambahan modulo 216
3. Perkalian dengan modulo 216 + 1
Menggunakan sebuah arsitektur serial-bit untuk melakukan perkalian modulo 216 + 1,
implementasinya minimal membutuhkan perangkat keras yang sederhana. Arsitektur serial-bit
memungkinkan algoritma menjadi lebih dalam untuk mendapatkan sebuah sistem dengan waktu
clock sebesar 125MHz. Sebuah implementasi pada Xilinx Virtex XCV300-4 dapat dilakukan tes
secara sukses., mendistribusikan sebuah keluaran sebesar 500Mb/sec. Dengan alat XCV1000-6,
perkiraan performansi adalah 2.35Gb/detik, tiga lebih cepat dari urutan magnitude daripada
sebuah implementasi perangkat lunak pada 450MHz Intel Pentium II. Desain ini cocok bagi
aplikasi dengan enkripsi secara langsung (on-line ) pada jaringan dengan kecepatan tinggi.
C) Algoritma Kriptografi RC4
Menurut Dony Ariyus (2008:250). RC4 merupakan jenis aliran kode yang berarti operasi
enkripsinya dilakukan per karakter 1 byte untuk sekali operasi. Algoritma kriptografi Rivest
Code 4 (RC4) merupakan salah satu algoritma kunci simetris dibuat oleh RSA Data Security
Inc (RSADSI) yang berbentuk stream chipper. Algoritma ini ditemukan pada tahun 1987 oleh
Ronald Rivest dan menjadi simbol keamanan RSA (merupakan singkatan dari tiga nama
penemu : Rivest, Shamir, dan Adleman). RC4 menggunakan panjang kunci dari 1 sampai 256
byte yang digunakan untuk menginisialisasikan tabel sepanjang 256 byte. Algoritma RC4
menggunakan dua buah Substitution Box (S-Box) yaitu array sepanjang 256 yang berisi
permutasi dari bilangan 0 sampai 255, dan S-Box kedua, yang berisi permutasi merupakan
fungsi dari kunci dengan panjang variabel.
Cara kerja algoritma RC4 yaitu inisialisasi S-Box pertama, S[0], S[1], …….., S[255],
dengan bilangan 0 sampai 255. Pertama isi secara berurutan S[0]=0, S[1]=1, …., S[255]=255.
Kemudian inisialisasi array lain (S-Box lain), misal array K dengan panjang 256. Isi array K
dengan kunci diulangi sampai seluruh array K[0], K[1], ……., K[255] terisi seluruhnya.
Proses inisialisasi S-Box (Array S) dapat dilihat pada tabel 1 dibawah ini :
Tabel 1. Proses Inisialisasi S-Box (Array S)
Proses Inisialisasi S-Box(Array S)
for i = 0 to 255
S[i] = i
Proses inisialisasi S-Box (Array K) dapat dilihat pada tabel 2 berikut:
Tabel 2. Proses Inisialisasi S-Box (Array K)
Proses Inisialisasi S-Box (Array K)
array Kunci // Array dengan panjang kunci “length”.
for i = 0 to 255
K[i] = Kunci [i mod length]
Kemudian lakukan langkah pengacakan S-Box yang dapat dilihat pada tabel 3 sebagai berikut
:
Tabel 3. Proses Pengacakan S-Box
Proses Pengacakan S-Box
i = 0; j = 0;
for i = 0 to 255
{
j = (j + S[i] + K[i]) mod 255
Swap S[i] dan S[j]
}
Setelah itu, buat pseudo random byte pada tabel 4 dengan langkah sebagai berikut:
Tabel 4. Pseudo Random Byte
Pseudo Random Byte
i = (i + 1) mod 255
j = (j + S[i] mod 255
swap S[i] dan S[j]
t = (S[i] + S[j] mod 255
K = S[t]
Byte K di-XOR kan dengan plaintext untuk menghasilkan ciphertext atau di XOR kan dengan
ciphertext untuk menghasilkan plaintext. Enkripsi sangat cepat kurang lebih 10 kali lebih cepat
dari DES.
Berikut adalah contoh penerapan algoritma RC4 dengan mode 4 byte (agar lebih sederhana).
Pertama inisialisasi S-Box dengan panjang 4 byte, dengan S[0]=0, S[1]=1, S[2]=2, dan S[3]=3
sehingga array S menjadi :
0 1 2 3
Inisialisasi 4 byte kunci array, Ki. Misalkan kunci terdiri dari 2 byte yaitu byte 1 dan byte 7.
Ulang kunci sampai memenuhi seluruh array K sehingga array K menjadi :
1 7 1 7
Berikutnya mencampur operasi dimana kita akan menggunakan variabel i dan j ke index array
S[i] dan K[i]. Pertama kita beri nilai inisial untuk i dan j dengan 0. Operasi pencampuran adalah
pengulangan rumusan (j + S[i] + K[i] mod 4 yang diikuti dengan penukaran S[i] dengan S[j].
Karena menggunakan array dengan panjang 4 byte maka algoritma menjadi :
For i = 0 to 4
j = (j + S[i] + K[i] mod 4
swap S[i] dan S[j]
Dengan algoritma seperti diatas maka nilai awal i=0 sampai i=3 akan menghasilkan array S
seperti berikut :
Iterasi pertama :
i = 0, maka
j = (j + S[i] + K[i] ) mod 4
= (j + S[0] + K[0] ) mod 4
= (0 + 0 + 1 ) mod 4
= 1
Swap S[0] dan S[1] sehingga menghasilkan array S :
1 0 2 3
Iterasi kedua :
i = 1, maka
j = (j + S[i] + K[i] ) mod 4
= (j + S[1] + K[1] ) mod 4
= (1 + 0 + 7 ) mod 4 = 0
Swap S[1] dan S[0] sehingga menghasilkan array S :
0 1 2 3
Iterasi ketiga :
i = 2, maka
j = (j + S[i] + K[i]) mod 4
= (j + S[2] + K[2] ) mod 4
= (0 + 2 + 1 ) mod 4
= 3
Swap S[2] dan S[3] sehingga menghasilkan array S :
0 1 3 2
Iterasi keempat :
i = 3, maka
j = ( j + S[i] + K[i] ) mod 4
= ( j + S[3] + K [3] ) mod 4
= (3 + 2 + 7 ) mod 4
= 0
Swap S[3] dan S[0] sehingga menghasilkan array S :
2 1 3 0
Setelah didapat hasil array S dari iterasi keempat, maka proses selanjutnya yaitu meng-XOR-
kan pseudo random byte dengan plaintext, misalnya plaintext yang dimasukkan adalah “HI”.
Karena plaintext terdiri dari dua karakter maka terjadi dua iterasi.
Iterasi pertama yaitu :
Inisialisasi i dan j dengan i = 0; j = 0.
i = 0; j = 0;
i = ( i + 1 ) mod 4
= (0 + 1 ) mod 4
= 1
Dan
j = ( j + S[i] ) mod 4
= ( 0 + 2 ) mod 4
= 2
Swap S[i] dan S[j] yaitu S[1] dan S[2] sehingga array S menjadi :
2 3 1 0
t = ( S[i] + S[j] ) mod 4
= ( 3 + 1 ) mod 4
= 0
K = S[t] = S[0] = 2
Byte dua/K inilah yang di-XOR-kan dengan plaintext “H”. Selanjutnya iterasi keduanya yaitu :
i = 1; j = 2
i = ( i + 1 ) mod 4
= ( 1 + 1 ) mod 4
= 2
Dan
j = ( j + S[i] ) mod 4
= ( 2 + 2 ) mod 4 = 0
Swap S[i] dan S[j] yaitu S[2] dan S[0] sehingga array S menjadi :
1 3 2 0
t = ( S[i] + S[j] ) mod 4
= ( 2 +1 ) mod 4
= 3
K = S[t] = S [3] = 2
Byte K=2 yang akan di-XOR-kan dengan plaintext “I”
Proses XOR pseudo random byte dengan plaintext, dapat dilihat pada tabel 5 dibawah ini :
Tabel 5. Proses XOR Pseudo Random Byte dengan plaintext pada Enkripsi. “H” “I”
Plaintext 0 1 0 0 1 0 0 0 0 1 0 0 1 0 0 1
Pseudo Random Byte 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0
Ciphertext 0 1 0 0 1 0 1 0 0 1 0 0 1 0 1 1
Sedangkan proses deskripsi adalah kebalikan dari proses enkripsi, yaitu mengubah ciphertext
menjadi plaintext kembali. Untuk lebih jelas dapat dilihat pada tabel 6 dibawah ini :
Tabel 6. Proses XOR Pseudo Random Byte dengan plaintext pada Deskripsi.
“H” “I”
Ciphertext 0 1 0 0 1 0 1 0 0 1 0 0 1 0 1 1
Pseudo Random Byte 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0
Plaintext 0 1 0 0 1 0 0 0 0 1 0 0 1 0 0 1
Berdasarkan hasil pengujian performa RC4 pada Intel E4500 2.2GHz memori 1 GB, diperoleh
hasil seperti terlihat pada tabel. Hasil pengetesan pada tabel 7 didapat dengan enkripsi 4 kbyte
sebanyak 3200 kali, atau setara dengan 100 Mb data. Hasil pengetesan tersebut dapat dilihat
pada tabel 7 di bawah ini :
Tabel 7. Kecepatan Enkripsi RC4
Jml
Thread
Kecepatan Thread ke (dalam Mbps)
1 2 3 4 5 Total
1 91.42
91.42
2 87.67 86.48
174.15
3 58.71 61.53 58.71
178.95
4 41.29 56.63 48.48 50.39
196.79
5 36.99 37.42 43.53 41.02 36.36 195.32
D) Pretty Good Privacy (PGP)
PGP (Pretty Good Privacy) adalah Suatu metode program enkripsi informasi yang memiliki
tingkat keamanan cukup tinggi bersifat rahasia dengan menggunakan “Private-Public Key”
sebagai dasar autentifikasinya sehingga jangan sampai dengan mudah diketahui oleh orang lain
yang tidak berhak. PGP dikembangkan oleh Phill Zimmermann pada akhir tahun 1980. pada
awal mulanya , PGP digunakan untuk melindungi surat elektronik (e-mail) dengan memberikan
perlindungan kerahasiaan (enkripsi) dan otentikasi (tanda – tangan digital).
Untuk itu Phill Zimmermnn membuat sebuah program yang digunakan agar dapat
melindungi informasi data dengan kerahasiaan. Program yang dibuat oleh Phill Zimmerann
memiliki 2 versi yaitu “USA Version “ dan “International Version”. PGP versi USA hanya
dapat digunakan di wilayah USA dan oleh warganegara USA saja. PGP versi USA ini
menggunakan algoritma RSA (yang telah menjadi hak paten) dalam enkripsinya. Sedangkan
versi internasional menggunakan algoritma MPILIB yang diciptakan khusus oleh Phill
Zimmermann sendiri. PGP Versi internasional bisa digunakan oleh seluruh dunia.
Pada dasarnya, PGP merupakan program yang digunakan untuk mengenkripsi satu atau lebih
dokumen. Dengan PGP tersebut, hanya orang – orang tertentu saja yang bisa membaca file – file
enkripsi tersebut. Bagaimana PGP sebagai program enkripsi dokumen bisa digunakan untuk
pengiriman e-mail? Sebenarnya, program PGP mengenkripsi isi mail yang kita tulis menjadi
sebuah file. File tersebut dibaca oleh program mail yang kemudian dikirimkan ke tujuan.
Penerima e-mail harus menyimpan mail tersebut ke dalam sebuah file. File tersebut dideskripsi
sehingga isi mail aslinya akan terlihat. Jadi, mail yang dikirimkan adalah dalam bentuk
terenkripsi sehingga tidak dapat dibaca dengan mudah oleh orang – orang yang tidak memiliki
akses membaca mail tersebut.
Dasar - Dasar PGP
PGP (Pretty Good Privacy) dibuat dengan berdasarkan konsep Private Key Cryptography
sebagai dasar otorisasinya. Private Key Cryptography ini digunakan untuk mengenkripsi dalam
suatu hubungan komunikasi antara dua mesin. Dalam menjaga kerahasiaan data, kriptografi
mentransformasikan data jelas (plaintext) ke dalam bentuk data sandi (ciphertext) yang tidak
dapat dikenali. Ciphertext inilah yang kemudian dikirimkan oleh pengirim (sender) kepada
penerima (receiver). Setelah sampai di penerima, ciphertext tersebut ditranformasikan kembali
ke dalam bentuk plaintext agar dapat dikenali. Sehingga dalam penulisannya lebih dikenal dalam
bentuk enkripsi (encryption) dan deskripsi (descryption).
Enkripsi (encryption) merupakan suatu proses di mana sebuah pesan (plaintext)
ditranformasikan atau diubah menjadi bentuk pesan lain (chipertext) menggunakan suatu fungsi
matematis dan enkripsi password khusus yang lebih dikenal sebagai key. Sementara Deskripsi
(descryption) merupakan proses kebalikan, dari chiphertext dirubah kembali ke plaintext dengan
menggunakan fungsi matematis dan key.
Pada saat kita membuat kunci, PGP akan menciptakan duah buah kunci yaitu private key dan
public key yang merupakan sebuah pasangan bersesuaian. Private Key adalah kunci yang hanya
diketahui oleh kita sendiri sedangkan Public Key adalah kunci yang kita beritahukan kepada
orang – orang yang kita percaya. Public key digunakan sebagai dasar proses pengenkripsian
dokumen – dokumen yang hanya bisa dibuka oleh orang yang memiliki private key yang
bersesuaian.
Prinsip Cara Kerja PGP
PGP bekerja dengan menggabungkan beberapa bagian yang terbaik dari key konvensional
dan public key cryptography, jadi PGP ini adalah sebuah a hybrid cryptosystem. Ketika seorang
pengguna mengenkrip sebuah plaintext dengan menggunakan PGP, maka awal PGP akan
mengkompress plaintet ini. Data yang dikompress menghebat waktu dan media transmisi dan
lebih penting adalah keamanan kriptograpik yang kuat. Kebanyakan teknik analisis sandi
mengeksplotasi pola yang ditemukab dalam plaintext untuk men-cr4k chipernya. Kompressi
mengurangi pola-pola ini dalam plaintext, dengan cara demikian perbaikan yang lebih baik
untuk menghambat analisa kode-kode.
PGP membuat sebuah session key, dimana sebuah kunci rahasia pada saat itu. Kunci adalah
sebuah bilangan acak yang dihasilkan dari gerakan acak dari mouse dan tombol yang anda
tekan. Session Key ini berkerja dengan sangat aman, algoritma enkripsi konvesional yang cepat
untuk meng-enkrip plaintext. Hasilnya adalah berupah chiper text. Sekali data dienkripsi, lalu
session key ini dienkripsi lagi menggunakan kunci publik penerima. session key yang
terenkripsi kunci publik key penerima dikirim dengn chipertext ke penerima.
Proses deskripsi bekerja sebaliknya, Penerima menerima pesan lalu membuka pesan tersebut
dengan kunci privatnya, namun pesan tersebut masih terenkripsi dengan session key. Dengan
Menggunakan PGP, penerima mendekrip chipertext yang terenkripsi secara konvensional.
Kombinasi dari 2 metode enkripsi menggabungkan kehandalan dari enkripsi kunci publik
dengan kecepatan pada enkripsi konvensional. Enkripsi Konvensional kuarang lebih 1000x lebih
cepat dari enkripsi kunci publik. Jadi enkripsi kunci publik memberikan sebuah solusi pada
distribusi kunci dan masalah transmisi data. Dengan menggunakan keduanya, perfoma dan
distribusi kunci dapat ditingkatkan tanpa mengorbankan sesuatu dalam keamanan.
Prinsip – prinsip cara kerja dari PGP itu sendiri adalah :
1. PGP menggunakan teknik yang disebut Public-key encryption dengan dua kode yang
saling berhubungan secara intrinsik, namun tidak mungkin untuk memecahkan satu dan yang
lainnya.
2. Jika membuat suatu kunci, secara otomatis akan dihasilkan sepasang kunci yaitu public
key dan secret key. Kita dapat memberikan public key ke manapun tujuan yang kita inginkan,
melalui telephone, internet, keyserver, dsb. Secret key yang disimpan pada mesin kita dan
menggunakan messager decipher akan dikirimkan ke kita. Jadi orang yang akan menggunakan
public key kita (yang hanya dapat didekripsi oleh oleh secret key kita), mengirimkan messages
kepada kita , dan kita akan menggunak an secret key untuk membacanya.
Isi e-mail
Sebelum
dienkripsi
Isi e-mail
setelah dienkripsi
Program Mail
(Eudora, Pegasus,
dll)
Program Mail
(Eudora, Pegasus,
dll)
Isi e-mail
sebelum
didekripsi
Isi e-mail
Setelah
didekripsi
PG
P
PG
P
Sender
Side Recepcient Side
3. PGP menggunakan dua kunci yaitu kunci public (proses enkripsi) dan privet (proses
deskripsi).
4. Menggunakan dua kuci tersebut dikarenakan adanya conventional crypto, disaat terjadi
transfer informasi kunci, suatu secure channel diperlukan. Dan jika kita memiliki suatu secure
channel, tapi mengapa menggunakan crypto? Namun dengan public-key syistem, tidak akan
menjadi masalah siapa yang melihat kunci milik kita, karena kunci yang dilihat oleh orang lain
adalah yang digunakan hanya untuk enkripsi dan hanya pemiliknya saja yang mengetahui kunci
rahasia tersebut.
E) Knapsack Merkle-Hellman (MH)
Merkle-Hellman Knapsack merupakan algoritma asimetris. Artinya, algoritma ini memliki
kunci publik dan kunci privat untuk proses enkripsi dan dekripsinya. Kelebihan algoritma
merkle-hellman knapsack yang merupakan algoritma asymmetries ini adalah proses
pendistribusian kunci pada media yang tidak aman seperti internet, tidak memerlukan
kerahasiaan. 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(rahasia)tetap disimpan (tidak didistribusikan).
Dengan menggunakan Merkle-Hellman Knapsackdapat menggunakan ukuran kunci yang lebih
kecil dibandingkan dengan kriptosistem seperti RSA. Kemampuan ini membuat Merkle-
Hellman Knapsackmempunyai keamanan yang kuat dengan panjang kunci yang pendek.
Algoritma merkle-hellman knapsack dan kombinasi algoritma knapsack dan logaritma
diskrit dapat diterapkan pada aplikasi chat pada jaringan localhost. Peran server dalam aplikasi
chat tersebut adalah untuk menghubungkan klien agar dapat terhubung. Proses aplikasi chat
adalah sebagai berikut:
a) Klien 1 mengisikan port yang sesuai dengan port server agar dapat terhubung. Hal tersebut juga
berlaku terhadap klien 2.
b) Masing-masing klien membangkitkan kunci publik dan kunci privat. Kunci publik yang sudah
dibangkitkan tersebut akan didistribusikan ke klien lain memalui server.
c) Klien 1 mengirim pesan yang terenkripsi ke klien 2 menggunakan kunci publik milik klien 2.
d) Klien 2 menerima pesan acak dari klien 1. Agar pesan tersebut dapat dibaca, pesan acak tersebut
didekripsi menggunakan kunci privat klien 2.
Algoritma ini mempunyai tiga proses mekanisme. Proses yang pertama adalah proses
pembangkitan kunci publik dan kunci privat, proses enkripsi dan proses dekripsi. Sebelum
melakukan ketiga proses tersebut, beberapa mekanisme dari algoritma ini yang akan kita
gunakan pada aplikasi chat antara lain seperti berikut:
a) Menentukan deretan superincreasing di mana setiap elemen di dalam deretan harus lebih besar
daripada jumlah elemen sebelumnya. Deretan superincreasing ini digunakan sebagai kunci
privat.
b) Memilih bilangan prima m dengan ketentuan bilangan tersebut harus lebih besar daripada
elemen terakhir deretan superincreasing.
c) Memilih bilangan n, di mana bilangan tersebut relatif prima terhadap bilangan m.
d) Membangkitkan kunci publik dengan persamaan 1: 𝑝𝑖 = 𝑠𝑖 ∗𝑛 𝑚𝑜𝑑 𝑚 (1) Variabel i
pada pada persamaan (1) merupakan indeks dari deretan superincreasing. Jadi, setiap elemen di
dalam bilangan superincreasing diproses pada persamaan (1) dan menghasilkan kunci publik.
Kunci publik tersebut memiliki panjang elemen yang sama dengan deretan superincreasing.
Gambaran umum tentang pembangkitan kunci algoritma knapsack seperti pada Gambar 2.
e) Melakukan proses enkripsi dengan persamaan (2): 𝑐 = 𝑏1 ∗𝑝1 +𝑏2 ∗ 𝑝2+...+𝑏𝑛 ∗𝑝𝑛 (2)
Selain persamaan (2), adapun pseudocode untuk proses enkripsi adalah sebagai berikut:
----------------------------------------------------------------------------------------------
INPUT : publickey[]
OUTPUT : chipertext
FOR(i=0;í<text.lenght; i++) DO
ASCII=plaintext.charAt(i)
biner= Int.toBinary(ASCII)
c = 0
FOR(j=0;j<biner.lenght;j++) DO c=c+(biner.charAt[j].publickey[j ]) ENDFOR
chipertext=chipertext+c+" " ENDFOR
----------------------------------------------------------------------------------------------
Gambar 3. Pseudocode Enkripsi Knapsack
Variabel b pada persamaan (2) merupakan bentuk biner dari plainteks yang akan dienkripsi.
Setiap indeks biner tersebut dikalikan dengan elemen kunci publik dengan indeks yang sama.
Hasil tersebut ditambahkan dengan indeks selanjutnya. Proses tersebut dilakukan berulang
sampai pada indeks terakhir.
Melakukan proses dekripsi dengan persamaan (3):
𝑐 ∗ 𝑛−1 𝑚𝑜𝑑 𝑚 (3) Selain dari persamaan (3) ada pula pseudocode untuk proses
dekripsi algoritma knapsack seperti berikut.
----------------------------------------------------------------------------------------------
INPUT: m, n, chiprtxt OUTPUT: plaintext m_inv = n.modInvers(m) String temp = ""
FOR(i=0;ciphrtxt.lenght;i++) DO if((chiprtxt.charAt(i)+"")=" ") do p = m_inv.mod(m) ASCII
= Integer.parseInt plaintext = plaintext+ASCII temp = "" ELSE
temp=temp+chipertext.charAt(i) ENDIF ENDFOR
Gambar 4. Pseudocode Deskripsi Knapsack
Nilai n-1 pada persamaan (3) merupakan nilai invers dari bilangan prima m yang sudah
dibangkitkan. Penghitungan nilai invers ini menggunakan extended euclidean. Setelah
dilakukannya proses dekripsi, proses selanjutnya adalah mengkonversi hasil tersebut ke dalam
bentuk biner. Untuk mencari nilai binernya, hasil dekripsi dikurangi dengan elemen
superincreasing yang besarnya mendekati hasil dekripsi tersebut. Proses tersebut berlanjut
sampai hasil pengurangan menjadi 0. Diberikan nilai 1 pada indeks superincreasing apabila
terpilih menjadi operasi pengurangan dan diberikan nilai 0 jika tidak terpilih. Hasil dari
serangkaian proses tersebut menghasilkan nilai biner dan dikonversi kembali dalam bentuk
karakter (Kortsarts & Kempner, 2010).
F) A5
Algoritma A5 adalah cipheraliran yang digunakan untuk mengenkripsi pesan dalam transmisi
udara. Cipher aliran ini diinisialisasi setiap frame dikirim. Cipher aliran ini diinisialisasi dengan
kunci sesi, Kc, dan jumlah frame yang akan dienkripsi. Kunci sesi yang sama digunakann
sepanjang panggilan berlangsung, tetapi 22 bit nomor frameberubah selama proses berlangsung,
kemudian membangkitkan keystreamyang unik untuk setiap frame.
Kunci yang digunakan dalam algoritma ini adalah 64 bit Kc, ditambah input berupa nomer
frameTDMA dalam suatu multiframe. Output yang dihasilkan berupa sepasang 114 bit
codeword(S1 dan S2) untuk arah downlinkdan uplink. Selanjutnya masing-masing codeworddi-
XOR dengan 114 bit plain textuntuk menghasilkan 114 bit chipertextyang akan
dikirimkan.Jaringan GSM saat ini menggunakan algoritma A3, A8, dan A5 dalam sistem
pengamanannya. Algoritma A3 dan A8 digunakan dalam proses autentikasi, yaitu proses
pengenalan identitas pelanggan, yang terjadi pada MS (Mobile Station) dan AUC
(Authentication Centre). Sedangkan algoritma A5 digunakan dalam proses pengiriman informasi
pada link radio antara MS dengan BTS (Base Transceiver Station). Namun pada sistem
pengamanan dengan menggunakan algoritma ini ditemukan kelemahan-kelemahan yang
memungkinkan terjadinya penyadapan data ataupun penipuan identitas pelanggan.digunakan
pula jaringan feistel atau dan chiper berulang.
G) RSA
RSA Algorithm merupakan dasar dari serangkaian algorima kriptografi yang digunkanan
untuk tujuan keamanan yang memungkinkan enkripsi kunci publik secara luas. RSA Algorithm
digunakan terutaa untuk mengamankan data sensitive, umumnya pada saat terjadi pengiriman
informasi/data melalui jaringan yang tidak aman seperti internet publik.
RSA diciptakan pertama kali 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 seni kriptografi yang dilakukan pada RSA Algorithm, 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 memiliki
metode untuk menjamin kerahasiaan, integritas, keaslian, dan non-repudation.
Protokol yang mengandalkan RSA Algorithm untuk fungsi enkripsi sangat beragam seperti:
Secure Shell, OpenPGP, S/MIME, dan SSL/TLS . Algortiman ini juga digunakan pada program
perangkat lunak, hal ini merupakan contoh yang jelas karena pada perangkat lunak perlu
membuat koneksi yang aman melalui jaringan yang unsafe seperti intenet atau memvalidasi
Digital Signature.
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
Bima 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.
Ayu ingin mengirimkan pesan terenkripsi kepada Bima, 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 Bima menerima pesan Ayu, 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, Bima perlu
membuat hash - intisari pesannya ke Ayu - mengenkripsi nilai hash dengan kunci privat RSA-
nya, dan menambahkan kunci ke pesan. Ayu kemudian dapat memverifikasi bahwa pesan telah
dikirim oleh Bima dan belum diubah dengan mendekripsi nilai hash dengan kunci publiknya.
Jika nilai ini cocok dengan hash dari pesan asli, maka hanya Bima yang bisa mengirimnya –
otentikasi.
Bima tentu saja dapat mengenkripsi pesannya dengan kunci publik RSA Ayu - kerahasiaan -
sebelum mengirimnya ke Ayu. 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
Tingkat sekuritas pada RSA Algorithm bergantung pada kerumitan komputasi untuk
memfaktorkan bilangan bulat besar. Saat komputasi meningkat serta algoritma pemfaktoran
lebih efisien, kemampuan untuk memperhitungkan jumlah yang lebih besar juga meningkat.
Tingkat kekuatan enkripsi secara langsung bergantung pada ukuran kunci. Dengan
menggandakan panjang kunci dapat memberikan peningkatan kekuatan secara eksponensial
meskipun hal tersebut mengganggu kinerja. Kunci RSA biasanya 1024- atau 2048-bit, tetapi
para ahli percaya bahwa kunci 1024-bit tidak lagi sepenuhnya aman terhadap semua serangan.
Dengan terus berkembangnya seni kriptografi RSA, peneliti bernama Adi Shamir yang
merupakan salah satu penemu RSA berhasil menciptakan kunci RSA 4096-bit dengan
menggunakan kriptanalisi akustik.
H) Digital Signature
Digital Signature adalah mekanisme otentikasi yang memungkinkan pembuat pesan
dapat melampirkan sebuah kode yang bertindak sebagai tanda tangan. Tanda tangan digital
dibuat dengan menggunakan fungsi hashpada pesan, lalu mengenkripsi hash tersebut dengan
private keypembuat. Tanda tangan tersebut menjamin sumber dan integritas pesan[ CITATION
Agu16 \l 1033 ]. Tanda tangan pesan dapat dilakukan dengan dua cara yaitu:
1. Enkripsi pesan
Mengenkripsi pesan dengan sendirinya serta menyediakan ukuran otentikasi, pesan yang
terenkripsi sudah menytakan pesan tersebut telah ditandatangani.
2. Tanda tangan digital dengan fungsi hash (hash function).
Tanda tangan digital dibangkitkan dari hash terhadap pesan. Nilai hash adalah kode
ringkas dari pesan. Tanda tangan digital berlaku seperti tanda tangan dokumen kertas, tanda
tangan digital ditambahkan (append) pada pesan.[ CITATION Sul16 \l 1033 ]
C ara Kerja
Untuk proses tanda tangan gambar diatas, pesan terlebih dahulu dienkripsi dengan
kriptografi fungsi hashdan kemudian hasil dari fungsi hashtersebut dienkripsi dengan private
key userpengirim. Setelah itu pesan dan tanda tangan diberikan kepada userpenerima. Untuk
proses verifikasi, pesan yang dikirim akan dienkripsi dengan fungsi hash dan untuk tanda tangan
yang diterima akan dienkripsi dengan menggunakan kunci publik userpengirim. Kemudian hasil
dari keduanya dicocokkan, apabila kedua hasil tersebut sama maka tanda tangan itu sah, jika
sebaliknya maka tidak sah. Dalam Digital Signature Standard (DSS), fungsi hash yang dipakai
pada umumnya adalah SHA-1, tetapi berdasarkan standar Federal Information Processing
Standard Publications diumumkan bahwa fungsi hash SHA-1 pada akhir tahun 2013 tidak akan
digunakan, tetapi fungsi hashSHA-2 telah disetujui pemakaiannya untuk Digital Signature
Standard. Outputdari fungsi hashSHA-2 diperbolehkan untuk dipotong ukurannya hingga sama
seperti ukuran keypair.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[ CITATION Agu16 \l 1033
].
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 Bima harus menandatangani file atau email secara
digital dan mengirimkannya ke Ayu.
1. Bima memilih file yang akan ditandatangani secara digital atau mengklik 'masuk' di
aplikasi emailnya
2. Nilai hash dari konten file atau pesan dihitung oleh komputer Bima
3. Nilai hash ini dienkripsi dengan Kunci Penandatanganan Bima (yang merupakan Private
Keys) untuk membuat Digital Signature.
4. Sekarang, file asli atau pesan email beserta Digital Signature dikirim ke Ayu.
5. Setelah Ayu menerima pesan yang ditandatangani, aplikasi terkait (seperti aplikasi
email) mengidentifikasi bahwa pesan telah ditandatangani. Komputer Ayu kemudian
melanjutkan ke:
6. Dekripsi Digital Signature menggunakan Publik Keys milik Bima
7. Hitung hash dari pesan asli
8. Bandingkan hash (a) yang telah dihitung dari pesan yang diterima dengan (b) hash yang
didekripsi yang diterima dengan pesan Bima.
9. 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.
1. Adobe mendukung - tanda tangan digital bersertifikat dan persetujuan
2. Microsoft Word mendukung - tanda tangan digital yang terlihat dan tidak terlihat.
Beberapa jenis Digital Signature yaitu :
1. Certified Signatures
• Menambahkan tanda tangan sertifikasi ke dokumen PDF menunjukkan bahwa Anda adalah
penulis dokumen dan ingin mengamankan dokumen dari gangguan.
• 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
2. 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.
3. 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.
4. 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
Digital Certificate adalah sebuah “kata sandi” elektronik yang memungkinkan seseorang atau
organisasi untuk bertukar data secara aman melalui Internet dengan menggunakan Public Key
Infrastructure (PKI). Sertifikat Digital juga dikenal sebagai sertifikat kunci public atau sertifikat
identitas. Sertifikat digital berbagi kunci public yang digunakan untuk encryption dan
authentication.
Sertifikat digital mencakup kunci public yang disertifikasi, identifikasi informasi tentang
entitas yang memiliki kunci public, metadata yang berkaitan dengan sertifikat digital, dan tanda
tangan digital kunci public yang dibuat oleh penerbit sertifikat.
Sertifikat digital memungkinkan entitas untuk membagikan kunci public mereka dengan cara
yang dapat diautentikasi. Sertifikat digital juga digunakan oleh semua browser web dan server
web untuk memberikan jaminan bahwa konten yang diterbitkan belum dimodifikasi oleh pelaku
yang tidak sah, dan untuk berbagi kunci untuk mengenkripsi dan mendekripsi konten website.
Sertifikat digital juga digunakan dalam konteks lain, baik online maupun offline, untuk
memberikan jaminan kriptografis dan privasi data.
Sebagian besar digital certificate dibuat oleh certificate authority. CA dianggap third-party
yang terpercaya dalam konteks PKI; menggunakan third-party yang terpercaya untuk
menerbitkan digital certificate memungkinkan individu untuk memperluas kepercayaan mereka
pada CA dan dapat dipercayanya digital certificate yang dikeluarkannya.
Jenis-jenis Digital Certificate
Ada tiga jenis sertifikat digital yang digunakan oleh server web dan browser web untuk
mengotentikasi melalui internet. Sertifikat digital ini digunakan untuk menautkan server web
untuk domain ke individu atau organisasi yang memiliki domain.
1) Domain Validated (DV SSL) menawarkan jumlah jaminan paling sedikit tentang pemegang
sertifikat. Pelamar untuk sertifikat SSL DV hanya perlu menunjukkan bahwa mereka memiliki
hak untuk menggunakan nama domain.
2) Organization Validated (OV SSL) memberikan jaminan tambahan tentang pemegang
sertifikat; selain mengonfirmasi bahwa pemohon memiliki hak untuk menggunakan domain,
pemohon sertifikat OV SSL menjalani konfirmasi tambahan selain kepemilikan mereka atas
domain.
3) Extended Validation (EV SSL) dikeluarkan hanya setelah pemohon mampu
membuktikan identitas mereka hingga CA merasa cukup. Proses pemeriksaan meliputi verifikasi
keberadaan entitas yang mengajukan sertifikat, memverifikasi bahwa identitas cocok dengan
catatan resmi, memverifikasi bahwa entitas berwenang untuk menggunakan domain dan
mengonfirmasi bahwa pemilik domain telah mengesahkan penerbitan sertifikat.
J) MD5
MD5 sendiri merupakan singkatan dari Message Digest 5 yang merupakan fungsi hash
kriptografi yang banyak digunakan, MD5 ini ditemukan oleh Ronald Rivest pada tahun 1991.
Gagasan yang ada didalam algoritma MD5 ini sendiri adalah mengambil data acak baik tulisan
atau biner sebagai input dan menghasilkan ukuran nilan hasi tetap sebagai outputnya.
Data Masukan / Data Input bisa saja berupa ukuran atau panjang tapi data outputnya
dipastikan berupa ukuran yang ditetapkan, berapapun ukuran yang dimasukan akan
menghasilkan ukuran tetap algoritma MD5 32 digit hex. Contoh: tulisan testkata MD5 nya
adalah ed6098dc46d504208cd5674f91822d8a dan huruf a MD5 nya adalah
0cc175b9c0f1b6a831c399e269772661.
Dari penjelasan diatas, sudah jelas poinnya yaitu MD5 menenkripsi tulisan menjadi digit
hex. Dengan menggunakan fitur ini bisa meningkatkan keamanan file / akun / tulisan dari hacker
karena apa yang mereka baca adalah kumpulan digit hex bukan string asli tulisan tersebut.
Bahkan MD5 ini juga membantu pengguna dalam proses download misalnya download file
dari server, ketika mengunduh file dari server yang tidak dilindungi MD5 bisa dengan mudah
terserang virus / diserang hacker ditengah jalan / file yang diunduh tersebut hilang ditengah
jalan.
4. Kesimpulan
Algoritma kunci dibagi menjadi 2 bagian utama, yakni Algoritma Simetris/Privat Key
Criptography dan Algoritma Asimaetris/Public Key Criptography. Contoh dari Algoritma
Simetris/Privat Key adalah IDEA, A5, AES, dan RC4. Sedangkan contoh dari algoritma
asimetris/ Public Key adalah RSA, Knapsack, PGP, Digital Signature, Digital Ceritificate, dan
MD5.
5. Daftar Pustaka
Anonim, 2016. “https://www.beritabebas.com/definisi/digital-certificate/” dari
beritabebas.com. diakses 5 September 2019
Al Bahr, Brian. International Data Encryption Algorithm. Bandung : Jurusan Teknik
Informatika, Sekolah Teknik Elektro dan Informatika, Institut Teknologi
Bandung
Agung, H., & Ferry. (2016). Kriptografi Menggunakan Hybrid Cryptosystemdan Digital
Signature. Jatisi, 34-45.
Aminudin,A. , Ahmad Faisal Helmi, Sofyan Arifianto. 2018. Analisa Kombinasi
Algoritma Merkle-Hellman Knapsack dan Logaritma Diskrit Pada Aplikasi Chat.
Jurnal Teknologi Informasi dan Ilmu Komputer (JTIIK) DOI:
10.25126/jtiik.201853844 Vol. 5, No.3, Agustus 2018, hlm. 325-x
Arifin, Z. (2009). Studi Kasus Penggunaan Algoritma RSASebagai Algoritma
Kriptografi yang Aman. Jurnal Informatika Mulawarman, 7-15.
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.
Munir, Rinaldi. 2016. “Kriptografi”. Bandung : Informatika
_______. (2006). Diktat Kuliah IF5054 Kriptografi. Program Studi Teknik Informatika,
Sekolah Teknik Elektro dan Informatika, Institut Teknologi Bandung.
Jethefer, Stevens. Studi Dan Perbandingan Algoritma Idea (International Data
Encryption Algorithm) Dengan Des (Data Encryption Standard). Bandung :
Program Studi Teknik Informatika, Sekolah Teknik Elektro dan Informatika,
Institut Teknologi Bandung
Rouse, Margaret. 2018. 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.
Sulaiman, O. K., Ihwani, M., & Rizki, S. F. (2016). Model keamanan informasi berbasis
tanda tangan digital dengan data encryption standard (des) algorithm. Jurnal
Nasional Informatika dan Teknologi Jaringan, 14-20.
Sutiono, Arie Pratama. 2011. Algoritma RC4 sebagai Perkembangan Metode
Kriptografi. Makalah. Bandung : Jurusan Teknik Informatika, Sekolah Teknik
Elektro dan Informatika, Institut Teknologi Bandung
Tanoto Andri. 2006.Analisis Keamanan pada Pretty Good Privacy (PGP). Makalah
Warkim, Irvan Lewenusa, Panser Karo Karo. 2015. Kriptografi Algoritma Advanced
Encryption Standard dan Pengecekan Error Detection Cyclic Redundancy Check.
Jurnal FTI UNTAR
http://riset.fmipa.unpad.ac.id/data/uploads/paper/semnas/2016/014.-066-068-akik-
hidayat.pdf / Diakses 5 September 2019, Pukul 14:36
https://ekarisky.com/content/uploads/Makalah-Algoritma-Kriptografi-Modern1.pdf /
Diakses 5 September 2019, Pukul 14:36
http://www.informatika.org/~rinaldi/kriptografi/2006-2007/Makalah2/Makalah-022.pdf/
Dakses Diakses 5 September 2019, pukul 16:17 WIB.