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 (S-HTTP).
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.