27
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

ALGORITMA KRIPTOGRAFI - Sains Dan Teknologi

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 (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.