View
29
Download
0
Category
Preview:
Citation preview
1
ALGORITMA KRIPTOGRAFI
Aprilia Putri Ariesta, Bayu Ramadhan Shafiyuddin, Edwardus Natalio Bagas
W, Fadhil Yusni Ramadhan, Dyah Ayu Permata Sari
Jurusan Sistem Informasi, Fakultas Sains dan Teknologi, Universitas Airlangga
Surabaya, Indonesia
Abstrak
Pengamanan data menjadi kebutuhan utama dalam pengolahan proses bisnis modern
ini, menyebabkan perkembangan ilmu kriptografi yang terus dikembangkan oleh
para ahli. Perlombaan bagi penyerang dengan seorang pengaman data untuk
mempertahankan eksistensinya dalam beradu algoritma, disisi lain algoritma
kriptografi yang telah dikembangkan hingga saat ini diantaranya Algoritma Simetri
yaitu sebuah algoritma yang memakai kunci simetri di antaranya adalah : Blok
Chiper : Data Encryption Standard (DES), International Data Encryption
Algorithm (IDEA), Advanced Encryption Standard (AES); Stream Chiper : On
Time Pad (OTP), A5, RC2, RC4, RC5, dan RC6.; Algoritma Asimetri yaitu
algoritma yang memakai kunci public di antaranya adalah : Digital Signature
Algorithm (DSA), RSA, Diffle-Hellman (DH), Elliptic Curve Cryptography
(ECC).; Fungsi Hash yaitu MD5 dan SHA1.
Keyword : algoritma kriptografi, enkripsi, dekripsi
1. Pendahuluan
Algoritma merupakan urutan langkah-langkah logis untuk menyelesaikan
masalah yang disusun secara matematis dan benar. Sedangkan kriptografi
(cryptography) berasal dari kata “crypto” yang berarti “secret” (rahasia) dan
“graphy” yang berarti “writing” (tulisan). Kriptografi merupakan suatu ilmu
yang mempelajari bagaimana cara menjaga agar data atau pesan tetap aman
saat dikirimkan, dari pengirim ke penerima tanpa mengalami gangguan dari
pihak ketiga. Sehingga algoritma kriptografi merupakan langkah-langkah logis
2
bagaimana menyembunyikan pesan dari orang-orang yang tidak berhak atas
pesan tersebut. Prinsip-prinsip yang mendasari kriptografi yakni :
1) Confidelity (kerahasiaan) yaitu layanan agar isi pesan yang dikirimkan tetap
rahasia dan tidak diketahui oleh pihak lain (kecuali pihak pengirim, pihak
penerima / pihak-pihak memiliki ijin). Umumnya hal ini dilakukan dengan
cara membuat suatu algoritma matematis yang mampu mengubah data
hingga menjadi sulit untuk dibaca dan dipahami.
2) Data integrity (keutuhan data) yaitu layanan yang mampu
mengenali/mendeteksi adanya manipulasi (penghapusan, pengubahan atau
penambahan) data yang tidak sah (oleh pihak lain).
3) Authentication (otentik) yaitu layanan yang berhubungan dengan
identifikasi. Baik otentikasi pihak-pihak yang terlibat dalam pengiriman
data maupun otentikasi keaslian data/informasi.
4) Non-repudiation (anti-penyangkalan) yaitu layanan yang dapat mencegah
suatu pihak untuk menyangkal aksi yang dilakukan sebelumnya
(menyangkal bahwa pesan tersebut berasal dirinya). (Alferd J. M enezes,
1996).
Algoritma kriptografi terdiri dari tiga fungsi dasar, yaitu :
1) Enkripsi, merupakan hal yang sangat penting dalam kriptografi,
merupakan pengamanan data yang dikirimkan agar terjaga kerahasiaannya.
Pesan asli disebut plaintext, yang diubah menjadi kode-kode yang tidak
dimengerti. Enskripsi bisa diartikan dengan cipher atau kode.
2) Dekripsi, merupakan kebalikan dari enkripsi. Pesan yang telah dienkripsi
dikembalikan ke bentuk asalnya (tesk-asli), disebut dengan dekripsi pesan.
Algoritma yang digunakan untuk dekripsi tentu berbeda dengan algoritma
untuk enkripsi.
3) Kunci, yang dimaksud adalah kunci yang dipakai untu melakukan enkripsi
dan dekripsi. Kunci terbagi menjadi dua bagian, kunci rahasia (private key)
dan kunci umum (public key).
3
2. Prespektif Teoritis
Algoritma kriptografi klasik merupakan suatu algoritma yang
menggunakan satu kunci untuk mengamankan data. Teknik ini telah
digunakan beberapa abad yang lalu. Teknik dasar yang biasa digunakan
adalah sebagai berikut :
1) Substitusi : Penggantian setiap karakter teks-asli dengan karakter lain
berdasarkan tabel substitusi yang dibuat, dengan catatan bahwa penerima
pesan memiliki tabel yang sama untuk keperluan dekripsi. Contohnya :
enggunanakn Caesar Chipher).
2) Blocking : Membagi plaintext menjadi blok-blok yang terdiri dari
beberapa karakter yang kemudian dienkripsikan secara independen.
Dengan menggunakan enkripsi blocking dipilih jumlah lajur dan kolom
untuk penulisan pesan. Jumlah lajur atau kolom menjadi kunci bagi
kriptografi dengan teknik ini.
3) Permutasi : Sering juga disebut transposisi, teknik ini memindahkan atau
merotasikan karakter dengan aturan tertentu. Prinsipnya adalah berlawanan
dengan teknik substitusi. Dalam teknik substitusi, karakter berada pada
posisi yang tetap tapi identitasnya yang diacak. Pada teknik permutasi,
identitas karakternya tetap, namun posisinya yang diacak. Sebelum
dilakukan permutasi, umumnya plaintext terlebih dahulu dibagi menjadi
blok-blok dengan panjang yang sama.
4) Ekspansi : Suatu metode sederhana untuk mengacak pesan adalah dengan
memanjangkan pesan itu dengan aturan tertentu. Salah satu contoh
penggunaan teknik ini adalah dengan meletakkan huruf konsonan atau
bilangan ganjil yang menjadi awal dari suatu kata di akhir kata itu dan
menambahkan akhiran "an". Bila suatu kata dimulai dengan huruf vokal
atau bilangan genap, ditambahkan akhiran "i".
5) Pemampatan : Mengurangi panjang pesan atau jumlah bloknya. Contoh
sederhana ini menggunakan cara menghilangkan setiap karakter ke-tiga
secara berurutan. Karakter-karakter yang dihilangkan disatukan kembali
4
dan disusulkan sebagai "lampiran" dari pesan utama, dengan diawali oleh
suatu karakter khusus, dalam contoh ini digunakan "&".
Sedangkan algoritma kriptografi modern umumnya beroperasi dalam
mode bit ketimbang mode karakter (seperti yang dilakukan pada cipher
substitusi atau cipher transposisi dari algoritma kriptografi klasik). Operasi
dalam mode bit berarti semua data dan informasi (baik kunci, plainteks,
maupun ciphertext) dinyatakan dalam rangkaian (string) bit biner, 0 dan 1.
Algoritma enkripsi dan dekripsi memproses semua data dan informasi dalam
bentuk rangkaian bit. Rangkaian bit yang menyatakan plaintext dienkripsi
menjadi ciphertext dalam bentuk rangkaian bit, demikian sebaliknya.
Enkripsi modern berbeda dengan enkripsi konvensional. Enkripsi modern
sudah menggunakan komputer untuk pengoperasiannya, berfungsi untuk
mengamankan data baik yang ditransfer melalui jaringan komputer mauapun
yang bukan. Hal ini sangat berguna untuk melindungi privacy, data integrity,
authentication dan non-repudiation. Perkembangan algoritma kriptografi
modern berbasis bit didorong oleh penggunaan komputer digital yang
merepresentasikan data dalam bentuk biner.
3. Pembahasan
1) Advanced Encryption Standard (AES)
Advanced Encryption Standard (AES) merupakan standar enkripsi
dengan kunci-simetris yang diadopsi oleh pemerintah Amerika Serikat.
Standar ini terdiri atas 3 blok cipher, yaitu AES-128, AES-192 and AES-
256, yang diadopsi dari koleksi yang lebih besar yang awalnya diterbitkan
sebagai Rijndael. Masing-masing cipher memiliki ukuran 128-bit, dengan
ukuran kunci masing-masing 128, 192, dan 256 bit. AES telah dianalisis
secara luas dan sekarang digunakan di seluruh dunia, seperti halnya dengan
pendahulunya, Data Encryption Standard (DES).
AES diumumkan oleh Institut Nasional Standar dan Teknologi (NIST)
sebagai Standar Pemrosesan Informasi Federal (FIPS) publikasi 197 (FIPS
5
197) pada tanggal 26 November 2001 setelah proses standardisasi selama 5
tahun, di mana ada 15 desain enkripsi yang disajikan dan dievaluasi,
sebelum Rijndael terpilih sebagai yang paling cocok. AES efektif menjadi
standar pemerintah Federal pada tanggal 26 Mei 2002 setelah persetujuan
dari Menteri Perdagangan. AES tersedia dalam berbagai paket enkripsi yang
berbeda. AES merupakan standar yang pertama yang dapat diakses publik
dan sandi-terbuka yang disetujui oleh NSA untuk informasi rahasia.
Rijndael dikembangkan oleh dua kriptografer Belgia, Joan Daemen dan
Vincent Rijmen, dan diajukan oleh mereka untuk proses seleksi AES.
Rijndael (diucapkan [rɛinda ː l]) adalah permainan kata dari kedua nama
penemu.
Proses shift dalam AES
Ada 10, 12, atau 14 putaran (round) dalam AES. Jumlah putaran ini sesuai
dengan ukuran kunci yang digunakan. Setiap putarab mengandung :
Penggantian Byte (SubByte) yang sama seperti DES
Peralihan = Pertukaran baris
Campur Jalur = Peralihan Kiri & XOR Bit-bit.
Penambahan Subkunci = XOR Bagian Kunci dengan Keputusan
Putaran
6
2) International Data Encryption Algorithm (IDEA)
Adalah algoritma enkripsi blok kunci yang aman dan rahasia yang
dikembangkan oleh James Massey dan Xuejia Lai. Algoritma ini berkembang
pada 1992 dari algoritma semula yang disebut dengan Proposed Encryption
Standard and The Inproved Proposed Encryption Standard. IDEA
beroperasi pada blok plaintext 64 bit dan menggunakan kunci 128 bit.
Algoritma IDEA menggunakan delapan round dan beroperasi pada subblok
16 bit dengan menggunakan kalkulasi aljabar yang dapat digunakan untuk
implementasi hardware. Op erasi ini adalah penjumlahan modulo 216,
perkalian modulo 216 + 1, dan XOR. Dengan kunci 128 bitnya, cipher
IDEA lebih sulit untuk dibobol daripada DES.
Pada Algoritma IDEA, plaintext memiliki panjang 64 bit dan kunci
sepanjang 128 bit. Metodologi dari algoritma IDEA menggunakan operasi
yang berbeda seperti berikut ini :
Bit per bit XOR 16 bit sub-block
Penambahan 16 bit integer modulo 216
Perkalian 16 bit integer modulo 216+1
Operasi ini tidak berlaku hukum distributif atau hukum asosiatif.
Langkah-langkah Enkripsi IDEA adalah sebagai berikut :
Blok pesan terbuka dengan lebar 64-bit, X, dibagi menjadi 4 sub-blok
16-bit, X1, X2, X3, X4, sehingga X = (X1, X2, X3, X4). Keempat sub-
blok 16-bit itu ditransformasikan menjadi sub-blok 16-bit, Y1, Y2, Y3,
Y4, sebagai pesan rahasia 64-bit Y = (Y1, Y2, Y3, Y4) yang berada
dibawah kendali 52 subblok kunci 16- bit yang dibentuk dari blok kunci
128 bit.
Keempat sub-blok 16-bit, X1, X2, X3, X4, digunakan sebagai masukan
untuk putaran pertama dari algoritma IDEA. Dalam setiap putaran
dilakukan operasi XOR, penjumlahan, perkalian antara dua sub-blok 16-
bit dan diikuti pertukaran antara sub-blok 16-bit putaran kedua dan
ketiga. Keluaran putaran sebelumnya menjadi masukan putaran
berikutnya. Setelah putaran kedelapan dilakukan transformasi keluaran
7
yang dikendalikan oleh 4 sub-blok kunci 16-bit.
Pada setiap putaran dilakukan operasi-operasi sebagai berikut :
1) Perkalian X1 dengan sub-kunci pertama, A = X1 ¤ K1
2) Penjumlahan X2 dengan sub-kunci kedua, B = X2 + K2
3) Pejumlahan X3 dengan sub kunci ketiga, E = A © C
4) Perkalian X4 dengan sub kunci keempat, C = X3 + K3
5) Op erasi XOR hasil langkah 1 dan 3, D = X4 ¤ K4
6) Op erasi XOR hasil langkah 2 dan 4, F = B © D
7) Perkalian hasil langkah 5 dengan sub-kunci kelima, G = E ¤ K5
8) Penjumlahan hasil langkah 6 dengan langkah 7, H = G + F
9) Perkalian hasil langkah 8 dengan sub-kunci keenam, J = H ¤ K6
10) Penjumlahan hasil langkah 7 dengan 9, L = J + G
11) Op erasi XOR hasil langkah 1 dan 9, R1 = A © J
12) Op erasi XOR hasil langkah 3 dan 9, R2 = C © J
13) Op erasi XOR hasil langkah 2 dan 10, R3 = B © L
14) Op erasi XOR hasil langkah 4 dan 10, R4 = D © L
Ket : © = Xor, ¤ = Perkalian Modulo 216 + 1, + = Penambahan modulo
216.
Keluaran setiap putaran adalah 4 sub-blok yang dihasilkan pada langkah
11, 12, 13, dan 14 dan menjadi masukan putaran berikutnya. Setelah
putaran kedelapan terdapat transformasi keluaran, yaitu :
1. Perkalian X1 dengan sub-kunci pertama
2. Penjumlahan X2 dengan sub-kunci ketiga
3. Penjumlahan X3 dengan sub-kunci kedua
4. Perkalian X4 dengan sub-kunci keempat
Terakhir, keempat sub-blok 16-bit 16-bit yang merupakan hasil operasi
1, 2, 3, dan 4 digabung kembali menjadi blok pesan rahasia 64-bit.
8
Untuk proses Deskripsi IDEA :
Proses dekripsi menggunakan algoritma yang sama dengan proses
enkripsi tetapi 52 buah sub-blok kunci yang digunakan masing-masing
merupakan hasil turunan 52 buah sub-blok kunci enkripsi
3) RSA (Rivest—S hamir—Adleman)
Merupakan algoritma yang paling populer dari algoritma kriptografi
kunci-publik yang pernah dibuat. Algoritma RSA dibuat oleh 3 orang
peneliti dari M IT (Massachussets Institute of Technology) pada tahun
1976, yaitu: Ron Rivest, Adi Shamir, dan Leonard Adleman.
Keamanan algoritma RSA terletak pada sulitny a memfaktorkan
bilangan yang besar menjadi faktor-faktor prima. Pemfaktoran dilakukan
untuk memperoleh kunci pribadi. Selama pemfaktoran bilangan besar
menjadi faktor-faktor prima belum ditemukan algoritma yang mangkus,
maka selama itu pula keamanan algoritma RSA tetap terjamin.
1.
Besaran-besaran yang digunakan pada algoritma RSA :
p dan q bilangan prima (rahasia)
2. r = p q (tidak rahasia)
3. r) = (p – 1)(q – 1) (rahasia)
4. PK (kunci enkripsi) (tidak rahasia)
5. SK (kunci dekripsi) (rahasia)
6. X (plainteks) (rahasia)
7. Y (cipherteks) (tidak rahasia)
10
Contoh : Misalkan plainteks yang akan dienkripsikan adalah X = HARI
INI atau dalam sistem desimal (pengkodean ASCII) adalah
7265827332737873. Pecah X menjadi blok yang lebih kecil, misalnya X
dipecah menjadi enam blok yang berukuran 3 digit:
o x1 = 726 x4 = 273
o x2 = 582 x5 = 787
o x3 = 733 x6 = 003
Nilai-nilai xi ini masih terletak di dalam rentang 0 sampai 3337 – 1 (agar
transformasi menjadi satu-ke-satu). Blok-blok plainteks dienkripsikan
sebagai berikut:
72679 mod 3337 = 215 = y1
58279 mod 3337 = 776 = y2
73379 mod 3337 = 1743 = y3
27379 mod 3337 = 933 = y4
78779 mod 3337 = 1731 = y5
00379 mod 3337 = 158 = y6
Jadi, cipherteks yang dihasilkan adalah Y = 215 776 1743 933 1731 158.
11
Dekripsi dilakukan dengan menggunakan kunci rahasia SK = 1019. Blok-
blok cipherteks didekripsikan sebagai berikut:
2151019 mod 3337 = 726 = x1
7761019 mod 3337 = 582 = x2
17431019 mod 3337 = 733 = x3
…
Blok plainteks yang lain dikembalikan dengan cara yang serupa. Akhirnya
kita memperoleh kembali plainteks semula P = 7265827332737873 yang
dalam karakter ASCII adalah P = HARI INI.
12
4) Knapsack Merkle-Hellman (MH)
Algoritma Knapsack Merkle-Hellman(MH) merupakan algoritma
asimetris, disebut asimetris karena algoritma ini memliki kunci publik dan
kunci privat untuk proses enkripsi dan dekripsinya. Algoritma ini
mempunyai tiga proses mekanisme :
1. Proses pertama pertama adalah proses pembangkitan kunci publik
dan kunci privat
2. Proses enskripsi
3. Proses deskripsi
Sebelum melakukan krtiga proses tersebut ada beberapa mekanisme
algoritma, anatara lain:
1. Pertama kita mengambil serangkaian superincreasing s bilangan
bulat positif dengan cara pilih bilagan inisial(terkecil). Pilih
bilangan selanjutnya dengan bilangan yang lebih besar daripada
yang pertama. Kemudian pilih bilangan yang lebih besar daripada
penjumlahan bilangan pertama dan kedua. Teruskan proses ini dari
13
memilih bilanganbilangan baru yang lebih besar daripada jumlah
semua bilangan yang sebelumnya dipilih
2. Setelah memilih knapsack yang sederhana S = [s1, s2,…,sm], kita
memilih sebuah bilangan pengali b dan di modulus p.
Bilangan mod seharusnya adalah angka yang lebih besar
daripada jumlah semua si dan merupakan bilangan prima
Pengali tidak mempunyai factor persekutuan dengan modulus.
3. Mencari kunci publik, kita mengganti setiap bilangan si dalam
knapsack sederhana dengan ketentuan
4. Proses Enkripsi
a. Pesan plaintext P bisa dituliskan dalam bentuk: P = [p1, p2,...,
pk]
b. Membagi pesan ke dalam blok bit-bit m , P0 = [pl , p2,..., pm],
P1 = [pm+1,..., p2m], dan selanjutnya. (m adalah bilangan
pembatas dalam knapsack)
c. Memilih nilai dengan mengubah dari bentuk 1 bit kedalam Pi
selanjutnya Pi disajikan sebagai vector yang dipilih untuk
element t.
d. Nilai ciphertext merupakan: Pi * t, target menggunakan blok Pi
untuk memilih vector
5. Proses Dekripsi : Penerima tahu knapsack sederhana dan nilai dari
a dan p yang ditranformasi ke dalam knapsack sulit.
a. Dengan nilai a-1 kemudian a* a-1 = 1 mod p. Dalam contoh
kami, 7-1 mod 17 adalah 5, mulai 5 * 8 mod 17 = 40 mod 17 =
(17 * 7) + 1 mod 17 = 1.
b. Ingat bahwa H adalah knapsack sulit yang terjadi dari
knapsack sederhanaS. H adalah memperoleh S dengan H= w *
S mod n
c. Pesan ciphertext di dapat dari algoritma enkripsi: C = H * P =
w * S * P mod n
14
d. Untuk mengubah cipher, pengali C dari w-1 , mulai w-1 * C =
w-1* H * P = w-1 * w * S * P mod n=S * P mod n
e. Sekarang penerima dapat memecahkan masalah knapsack
sederhana dengan knapsack S dan target w-1 * Ci untuk
beberapa bilangan ciphertext Ci
f. Dimulai w-1 * Ci = S * P mod n, solusi untuk target w-1 * Ci
adalah blok plaintext Pi , dimana adalah pesan asli yang di
enkripsi.
Kelebihan algoritma asymmetries ini adalah proses pendistribusian
kunci pada media yang tidak aman seperti internet, tidak memerlukan
kerahasian. Karena kunci yang didistribusikan adalah kunci publik.
Sehingga jika kunci ini sampai hilang atau diketahui oleh orang lain yang
tidak berhak, maka pesan sandi yang dikirim akan tetap aman.
Sedangkan kunci private tetap disimpan (tidak didistribusikan).
MerkleHellman Knapsack punya Kelebihan lain pada efisiensi jumlah
kunci publik. Jika terdapat n user, maka hanya membutuhkan 1 (satu)
kunci publik, sehingga untuk jumlah user yang sangat banyak, sistem ini
sangat efisien. Dengan adanya pertukaran kunci dalam enkripsi - dekripsi
data dengan kriptosistem kurva elliptik adalah mengamanan data yang
berupa teks untuk menghindari adanya penyadapan yang dilakukan oleh
pihak-pihak yang tidak berkepentingan
5) A5
Algoritma A5 adalah cipher aliran 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 frame berubah selama proses
berlangsung, kemudian membangkitkan keystream yang unik untuk setiap
frame.
15
Kunci yang digunakan dalam algoritma ini adalah 64 bit Kc, ditambah
input berupa nomer frame TDM A dalam suatu multiframe. Output yang
dihasilkan berupa sepasang 114 bit codeword (S1 dan S2) untuk arah
downlink dan uplink. Selanjutnya masing-masing codeword di-XOR dengan
114 bit plain text untuk menghasilkan 114 bit chipertext yang 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.
6) RC4
RC4 merupakan salah satu jenis stream cipher, yaitu memproses unit
atau input data, pesan atau informasi pada satu saat. Unit atau data pada
umumnya sebuah byte atau bahkan kadang kadang bit (byte dalam hal RC4).
Dengan cara ini enkripsi atau dekripsi dapat dilaksanakan pada panjang
yang variabel. Algoritma ini tidak harus menunggu sejumlah input data,
16
pesan atau informasi tertentu sebelum diproses, atau menambahkan byte
tambahan untuk mengenkrip.
RC4 merupakan enkripsi stream simetrik proprietary yang dibuat oleh
RSA Data Security Inc (RSADSI). Penyebarannya diawali dari sebuah
source code yang diyakini sebagai RC4 dan dipublikasikan secara
'anonymously' pada tahun 1994. Algoritma yang dipublikasikan ini sangat
identik dengan implementasi RC4 pada produk resmi. RC4 digunakan
secara luas pada beberapa aplikasi dan umumnya dinyatakan sangat aman.
Sampai saat ini diketahui tidak ada yang dapat
memecahkan/membongkarnya, hanya saja versi ekspor 40 bitnya dapat
dibongkar dengan cara "brute force" (mencoba semua kunci yang
mungkin). RC4 tidak dipatenkan oleh RSADSI, hanya saja tidak
diperdagangkan secara bebas (trade secret).
Algoritma RC4 cukup mudah untuk dijelaskan. RC4 mempunyai
sebuah S- Box, S0,S1,...,S255, yang berisi permutasi dari bilangan 0 sampai
255, dan permutasi merupakan fungsi dari kunci dengan panjang yang
variabel. Terdapat dua indeks yaitu i dan j, yang diinisialisasi dengan
bilangan nol. Untuk menghasilkan random byte langkahnya adalah sebagai
berikut :
i = ( i + 1 ) mod 256
j = ( j + Si ) mod 256
swap Si dan Sj
t = (Si + Sj) mod 256
K = St
Byte K di XOR dengan plaintext untuk menghasilkan ciphertext atau di
XOR dengan cipherteks untuk menghasilkan plaintext. Enkripsi sangat
cepat kurang lebih 10 kali lebih cepat dari DES. Inisialisasi S-Box juga
sangat mudah. Pertama isi secara berurutan S0 = 0, S1 = 1,...,S255 = 255.
Kemudian isi array 256 byte lainnya dengan kunci yang diulangi sampai
seluruh array K0, K1,...,K255 terisi seluruhnya. Set indeks j dengan nol,
17
Kemudian lakukan langkah berikut :
for i = 0 to 255
j = (j + Si + Ki) mod 256
swap Si dan Sj
Salah satu kelemahan dari RC4 adalah terlalu tingginya kemungkinan
terjadi tabel S-box yang sama, hal ini terjadi karena kunci user diulang-
ulang untuk mengisi 256 bytes, sehingga 'aaaa' dan 'aaaaa' akan
menghasilkan permutasi yang sama. Untuk mengatasi ini maka pada
implementasinya nanti kita menggunakan hasil hash 160 bit SHA dari
password kita untuk mencegah hal ini terjadi. Kekurangan lainnya ialah
karena enkripsi RC4 adalah XOR antara data bytes dan pseudo-random
byte stream yang dihasilkan dari kunci, maka penyerang akan mungkin
untuk menentukan beberapa byte pesan orisinal dengan meng-XOR dua
set cipher byte, bila beberapa dari pesan input diketahui (atau mudah untuk
ditebak). Untuk mengatasinya pada aplikasinya kita menggunakan
initialization vector (IV) yang berbeda-beda untuk setiap data, sehingga
bahkan untuk file yang sama akan dihasilkan ciphertext yang berbeda. IV
ini tidak perlu dirahasikan karena digunakan hanya agar setiap proses
enkripsi akan menghasilkan ciphertext yang berbeda.
Untuk lebih meningkatkan keamanan dari metoda ini dapat juga
mengembangkan inisialisasi kunci yang baru yang kita sebut saja inisialisasi
SK (strengtened key), pada proses ini kunci user di-expand hingga 260
byte (tetapi kemudian hanya 256 byte saja yang digunakan) dengan
menggunakan SHA-1, caranya pertama kunci user dijadikan kunci,
kemudian 1-20 byte pertama pada buffer diproses dengan SHA kemudian
digestnya diletakan pada 20 byte pertama, kemudian diambil byte 1-40
diproses dengan SHA dan hasilnya diletakan mulai pada byte 20,
berikutnya byte 1-60 hasilnya diletakkan pada mulai byte 40, dan
seterusnya. Kemudian buffer ini dienkrip dengan RC4, lalu buffer
dijadikan kunci kembali, proses terakhir ini diulang sebanyak 16 kali
18
untuk mencoba mencampur dengan baik sehingga dihasilkan kunci yang se-
random mungkin.
7) 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
tahun1980. 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.
Dasar – Dasar PGP
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.
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
19
(descryption).
Gbr. Enkripsi Public Key
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 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-crack chipernya. Kompressi
20
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.
Gbr. Cara Kerja Enkripsi PGP
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.
21
Prinsip – prinsip 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.
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
kita 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.
Alasan pemakaian PGP
1. Keamanan,PGP dapat digunakan untuk berkomunikasi secara aman,
baik itu rencana bisnis, keuangan, atau hal – hal pribadi lain yang ingin
dijaga kerahasiaannya. Kita dapat menggunakan PGP dengan e-mail
untuk alasan yang sama pada waktu kita mengirim surat dengan
menggunakan amplop. Mungkin teman seprofesi atu anggota keluarga
ingin tahu bahwa informasi yang dikirim terjaga kerahasiaannya dan
22
kiriman benar – benar berasal dari kita. Barang kali kita pernah
mengirim e-mail kepada orang yang salah dan kita ingin mereka tidak
membacanya. Hal ini sangat sulit untuk dilakukan, kemungkinan sudah
banyak orang yang sudah mengetahui isi dari e-mail kita. Jadi untuk
amannya e-mail maupun informasi yang kita kirim hendaknya disertai
dengan software PGP.
2. Fleksibel, karena PGP sudah plug-in untuk semua program browser dan
banyak digunakan oleh semua program e-mail, maka PGP sangat
fleksibel untuk digunakan. PGP selain melindungi e-mail juga file kita
dan berjalan pada semua sistem operasi.
3. Gratis, PGP dapat diperoleh secara gratis untuk penggunaan pribadi.
Kita dapat mendownload softwarenya pada saat kita terhubung dengan
internet. Semua kunci pribadi dapat kita peroleh dan tidak ada biaya
tambahan yang dibebankan untuk pembuatan sertifikat maupun tanda
tangan digital yang disertakan. Pada PGP untuk melakukan proses
enkripsi digunakan kunci rahasia yang berbeda dengan kunci rahasia
yang digunakan pada proses deskripsi. Jadi terdapat dua buiah kunci
rahasia, satu untuk deskripsi, satu untuk enkripsi. Hal inilah yang
dikenal dengan kriptografi asimertrik. Selain asimterik ada juga
kriptografi simetrik yang hanya menggunakan 1 buah kunci rahasia.
Dengan demikian, siapa saja yang ingin menggunakan PGP akan
membutuhkan 2 buah kunci. Pertama, kunci untuk proses enkripsi
(kunci publik). Disebut kunci publik karena kunci yang digunakan
untuk enkripsi ini akan diberitahukan kepada umum. Orang yang akan
mengirimkan e-mail rahasia kepada kita harus mengetahui kunci publik
ini. Kedua, kunci untuk proses deskripsi (kunci pribadi). Disebut kunci
pribadi karena kunci ini hanya diketahui oleh kita sendiri.
23
Ilustrasi Pemakaian PGP
Public-key sangat lambat bila dibandingkan dengan konvensional,
jadi PGP akan mengkombinasikan dua algoritma, yaitu RSA and IDEA,
untuk melakukan enkripsi plaintext kita.
Sebagai contoh, Badrun (pemilik PGP) ingin mengenkripsi suatu
file yang diberi nama plain.txt sedemikian sehingga hanya si Matangin
yang dapat mendekripsi-nya. Maka Badrun mengirimkan PGP perintah
(command line) untuk melakukan enkripsi :
pgp -e plain.txt Matangin
Pada command line ini, pgp adalah file executable, -
e berarti memberitahukan PGP untuk meng-encrypt
file, plain.txt adalah nama plaintext, dan dul merepresentasikan public
key suatu tujuan (Matangin) yang diinginkan Badrun untuk
mengenkripsi message-nya. PGP menggunakan suatu random number
generator, dalam file randseed.bin untuk menghasilkan suatu kunci
(session key) temporary IDEA. Session key itu sendiri dienkripsi
dengan kunci RSA public yang direpresentasikan
oleh Matangin yang disematkan pada plaintext. Kemudian, PGP
menggunakan session key untuk mengenkripsi message, ASCII-
armors dan menyimpan seluruhnya sebagai cipher.asc. Bila Matangin
ingin membaca pesannya, ia mengetikkan command.
pgp cipher.asc
PGP menggunakan secret key milik Matangin, yang merupakan
kunci RSA, untuk men-dekripsi sessi kunci yang mana, yang jika
dipanggil oleh Badrun akan dienkripsi oleh public key. kemudian,
conventional crypto digunakan dalam bentuk session key untuk
mendekripsi sisa dari message. Alasan prinsip ini adalah sebagai
pengganti/kompensasi dari RSA karena "RSA is too slow, it's not
stronger, and it may even be weaker." (-PGP
Documentation, pgpdoc2.txt).
24
Enkripsi PGP
Enkripsi dilakukan dengan mengacak pesan plaintext secara
sistematis sehingga tidak dapat terbaca tanpa alat khusus. Dalam teknologi
enkripsi yang umum saat ini, digunakan sepasang kunci untuk
mengenkripsi dan mendeenkripsi (menguraikan sandi) pesan yang hendak
disampaikan. Sepasang kunci ini dinamakan kunci publik dan kunci privat.
Dua kunci ini dibangkitkan secara simultan oleh komputer dan digunakan
berpasangan. Untuk dapat mengenkripsi pesan, orang yang menulis pesan
memerlukan kunci publik (public key). Kunci publik ini disebarkan oleh
pemiliknya agar orang yang ingin menulis pesan padanya bisa
mengenkripsi pesan menggunakan kunci publik tersebut. Setelah
dienkripsi, pesan tersebut tidak bisa diuraikan lagi, kecuali memakai kunci
privat. Kunci privat disimpan dan harus dirahasiakan oleh pemiliknya.
Kunci ini digunakan untuk menguraikan pesan yang dienkripsi dengan
menggunakan kunci publik. Karena hanya satu orang (pemilik kunci) yang
menyimpan kunci privat tersebut, maka hanya dia yang bisa membaca
pesan tersebut.
Enkripsi untuk File-File Biner
Untuk mereka yang terbiasa bekerja dengan file-file biner, pada
usenet mengetahui istilah uuencode. Uuenconde adalah suatu program,
yang terutama untuk UNIX, namun sekarang berkembang sehingga dapat
mengubah file-file biner seperti
.GIF or .AU menjadi ASCII text yang sesuai dengan format
pengiriman usenet. Feature ini juga dimiliki oleh PGP.
File config.txt
(mungkin disebut pgp.ini atau .pgprc ;tergantung protokol local)
memiliki suatu option untuk berapa banyak baris file ASCII yang
dapat dimuat. Jika jumlah ini tercapai, PGP akan memecah-mecah
file armored .asc menjadi .as1, .as2, .as3, ... dan semuanya harus
digabungkan satu sama lain secara bersama-sama dan menjalankan
25
PGP dalam suatu file yang besar. Untuk mengenkripsi suatu file biner,
gunakan command berikut:
pgp -a picture.gif
atau option TextMode diset ke ON:
pgp -a picture.gif +textmode=off
Implementasi PGP dalam TandaTangan Digital
Tanda tangan digital ini berguna untuk memastikan keaslian pesan
yang disampaikan, bahwa suatu pesan yang disampaikan pada kita benar-
benar berasal dari pengirim seperti yang tertulis pada header e-mail. Tanda
tangan digital juga menjamin integritas pesan. Teknologi ini
memungkinkan kita mendeteksi bila ada orang yang menyadap pesan dan
mengganti isi pesannya di tengah jalan.
Dibandingkan dengan tandatangan analog, tanda tangan digital
lebih sulit dipalsukan. Tanda tangan digital lebih sering digunakan
daripada enkripsi karena kita sering tidak peduli apakah e-mail kita
disadap atau tidak, tapi kita benar-benar ingin tahu apakah yang mengirim
e-mail pada kita benar-benar orang yang kita maksud. Ini semakin penting
dengan semakin menyebarnya virus yang seolah-olah datang dari orang
yang kita kenal. Berbeda dengan proses enkripsi, dalam tanda tangan
digital kunci privat digunakan untuk menandatangani dokumen atau pesan
yang hendak disampaikan. Penerima pesan atau dokumen dapat
memeriksa keasliannya dengan menggunakan kunci publik yang sudah ada
padanya.
Gbr. Tanda Tangan Digital (Digital Signatures) Sederhana
26
Fungsi Hash
Hash adalah algoritma yang menghasilkan output yang bersifat
unik dari sebuah input tertentu seperti pesan. Fungsi hash menambahkan
suatu fungsi dalam prosesnya dari skema proses diatas. Fungsi ini akan
membuat suatu panjang variabel output yang sama walau pun berbeda
panjang pesan. Tetapi perubahan satu bit saja akan merubah nilai dari
variabel fix tersebut.
PGP menggunakan kekuatan fungsi hash ini secara kriptografi pada
text biasa yang pengguna menandatanganinya. Ini akan menghasilkan
suatu panjang data yang tetap yang disebut dengan suatu message digest
(pesan singkat), Sekali lagi perubahan sedikit saja pada data akan merubah
nilai dari pesan ini. Lalu PGP menggunakan pesan singkat dan kunci privat
untuk membuat “signature”. PGP mengirimkan signature dan text biasa ini
bersama-sama. Pada sisi penerima pesan, penerima menggunakan PGP
untuk melakukan komputasi ulang digest, lalu membuktikan signaturenya.
PGP dapat mengenkripsi tulisan biasa atau tidak. Menandatangani tulisan
biasa akan berguna jika sebagian penerima tidak tertarik akan atau mempu
untuk membuktikan signature.
Sepanjang suatu jaminan fungsi hash digunakan, tidak ada cara lain
untuk mengambil tanda tangan seseorang dari dokumen yang satu ke
dokumen yang lain atau merubahnya dalam cara apa pun. Perubhan paling
kecil saja dari dokumen akan menghasilkan proses pembuktian keabsahan
menjadi gagal.
Gbr. Pengamanan Tanda Tangan Digital (Secure Digital Signatures)
27
Cara Mendapatkan Program PGP
Program PGP “International version” merupakan shareware dan dapat
didownload dari beberapa ftp server sebagai berikut :
ftp://ftp.ifi.uio.no/pub/pgp/(primary)
ftp://ftp.ox.ac.uk/pub/crypto/pgp/
ftp://ftp.dsi.unimi.it/pub/security/crypt/PGP/
ftp://ftp.informatik.uni-hamburg.de/pub/virus/crypt/pgp/
Program PGP tersedia dalam berbagai platform seperti MS-Dos,
Macintosh, Unix, VMS, OS/2, Atari, dlsb. Untuk platform MS-Dos
sendiri, terdapat dua jenis yaitu pgp263i.zip (16 bit) dan pgp263ix.zip (32
bit). Untuk versi 32 bit, terdapat perbedaan pada kecepatan proses enkripsi
dan pembuatan key dibandingkan dengan versi 16 bit.
PGP juga tersedia sebagai freeware maupun sebagai paket komersil dalam
berbagai versi yang dapat dioperasikan dalam berbagai sistem
operasi (DOS, Windows, UNIX, Mac). Program PGP dapat didownload
gratis dari situs www.pgp.org atau www.pgpi.org.
Instalisasi PGP
Adapun langkah – langkah yang dilakukan jika melalui FTP server adalah:
1. Jika mengambil program PGP dengan platform MS-Dos yang bernama
pgp263i.zip dan kemudian mengekstraknya dengan menggunakan
program Unzip atau Winzip. Pada saat proses ekstraksi berlangsung,
tentukan letak direktori yang akan ditempati oleh program PGP
tersebut. Dalam contoh kali ini, penulis menggunakan direktori C:\pgp
sebagai tempat penyimpanan program PGP. Setelah diekstrak, pada
direktori c:\pgp akan muncul 5 buah file yaitu : readme.1st ; readme.usa
; setup.doc; pgp263ii.zip; pgp263ii.asc. File pgp263ii.zip diekstrak
dengan menggunakan program Unzip atau Winzip dengan direktori
yang sama yaitu C:\pgp. Nah, setelah ekstraksi di atas, program PGP
siap dikonfigurasi.
28
2. Langkah selanjutnya adalah kita mengkonfigurasi program PGP
tersebut melalui file config.txt.
3. Setelah file config.txt selesai diedit dan disimpan, maka selanjutnya kita
mengkonfigurasikan parameter TZ dan path untuk program PGP. TZ ini
kependekan dari Time Zone dan untuk WIB digunakan nilai GMT-7.
Jika parameter TZ tidak diset maka PGP tidak akan beroperasi. Ada dua
cara untuk mengkonfigurasi parameter tersebut.
Cara pertama, kita langsug ketikan perintah “set TZ=GMT-7” dan “set
path=c:\pgp;%path%” pada prompt DOS.
C:\>SET TZ=GMT-7 [Enter]
C:\>SET PATH=C:\PGP;%PATH% [Enter]
Cara kedua, kita tambahkan kedua perintah di atas pada file
AUTOEXEC.BAT sehingga setiap kali booting, komputer akan
otomatis mengkonfigurasi parameter di atas.
Jika langkah-langkah di atas telah selesai dilakukan, maka instalasi
program PGP telah selesai dan siap digunakan.
Penggunan PGP
PGP memiliki banyak argumen yang mendefinisikan setiap fungsi yang
berbeda-beda. Untuk melihat keseluruhan argumen yang tersedia, gunakan
perintah “pgp -h”. Langkah awal yang harus dilakukan adalah PGP perlu
dikonfigurasikan terlebih dahulu.
1. Langkah – langkah untuk melakukan konfigurasi dalam PGP , sebagai
berikut :
2. Buatlah pasangan kunci, kunci publik dan kunci pribadi
3. Buatlah kunci publik
4. Tambahkan kunci publik penerima.
29
- Membuat Pasangan Kunci
Perintah untuk menciptakan key baru adalah “PGP –kg”. Dalam membuat
pasangan kunci , langkah – langkahnya sebgai berikut:
1. Definisikan tipe dari masing-masing kunci.
2. Definisikan algoritma dari masing-masing kunci
3. Tentukan ukuran kunci
4. Tentukan identitas publik untuk kunci pemakai
5. Tentukan validasi periode dari penandaan kunci
6. Tentukan Passphrase.
- Membuka Kunci Publik
Kunci publik seharusnya ditukar diantara pengirim dan penerima sebelum
mulai berkomunikasi. Kunci publik dapat dibuka di file teks dan
didistribusikan ke penerima. Kunci publik tersebut dapat dibuka dengan
perintah “pgp –kvc”.
Dengan demikian kita telah memiliki sebuah key dengan MPILIB key
1024 bit. Selanjutnya kita bisa mengekstrak public key kita sehingga bisa
kita bagikan kepada orang-orang yang kita percaya. Perintah ekstraksi
public key adalah “pgp -kxa userid keyfile”.
Nah, file yang berisi public key adalah ‘pubkey.asc’ dan siap dikirimkan
melalui e-mail
- Menambahkan Kunci Publik Penerima
Cara menambahkan publik key yang kita terima ke dalam koleksi publik
yang kita miliki adalah dengan menggunakan perintah “pgp –ka keyfile”.
Setelah melakukan konfirmasi kebenaran kunci publik, kita dapat
menandai kunci tersebut. Ketika melakukan enkripsi terhadap file dengan
menggunakan ID penerima, kita akan melihat peringatan tentang
kebenaran kunci publik. Penandaan akan menghilangkan pesan peringatan
selama proses enkripsi pesan. Sebuah kunci dapat ditandai dengan
menggunakan perintah “pgp-ks userid”. Sedangkan Untuk melihat koleksi
30
public key milik kita, gunakan kembali perintah “pgp -kvc”.
Berikut merupakan ilustrasi gambar dari pengiriman e-mail dengan
menggunakan konsep Pretty Good Privacy.
Gbr. Proses pengiriman e-mail dengan menggunakan PGP
Cara mengenkripsi mail yang hendak dikirimkan
Salah satu cara adalah menjalankan prosedur seperti Gambar 2.
diatas Kita buat isi mail kita ke dalam sebuah file teks. Kita enkripsi
dengan menggunakan PGP. Kita perintahkan program e-mail untuk
membaca dan mengirimkan file yang telah dienkripsi. Sesampainya di
tujuan, penerima menyimpan isi mail yang masih terenkripsi ke dalam
bentuk file. Penerima menjalankan program PGP untuk mendekripsi file
tersebut. Hasil akhirnya adalah isi mail awal.
Setelah itu Mail ini masih dalam bentuk enkripsi. Kita terima
dengan menggunakan program mail (Eudora, Pegasus, dll) kemudian kita
simpan ke file “mail.asc”. Kita dekripsi mail tersebut dengan perintah
“pgp keyfile”. Proses deskripsi telah selesai yang kemudian akan
munculnya file “mail” kita yang dapat dimengerti.
Resiko Keamanan PGP
Apabila sistem kita sudah memasuki dunia internet, maka
keamanan data pun menjadi hl yang penting. Berbagai cara pengaman
telah dilakukan salah satunya seperti penggunaan aplikasi PGP. Akan
tetapi tidak ada sistem keamanan data yang tidak dapat ditembus. PGP
merupakan salah satu alternatif cara untuk melindungi data. Pada sistem
keamanan data, biaya perlindungan data terhadap nilai dari data menjadi
31
pertimbangan utama.
Berikut adalah beberapa resiko keamanan yang dihadapi oleh PGP :
1. Kata Kunci dan Private Key yang mudah ditebak
2. Perusakan Public Key
3. File yang tidak dihapus dengan sempurna
4. Virus dan Trojan
5. Swap file dan virtual memori
6. Pelanggaran keamanan secara fisik
7. Serangan
8. Kerusakan atau kesalahan tanggal
9. Analisa lalu lintas jalan
10. Kriptonalisis
PGP dikembangkan oleh Phillip Zimmerman yang melakukan usaha-usaha
berikut.
1. Memilih algoritma kriptografi terbaik yang ada sebagai komponen
dasarpembentuk PGP
2. Mengintegrasikan algoritma-algoritma ini ke dalam aplikasi serba guna
yang independen terhadap sistem operasi dan prosesor yang dijalankan
dengan sekumpulan kecil instruksi yang mudah digunakan.
3. Membuat paket dan dokumentasinya, mencakup kode sumber, dapat
diakses secara gratis melalui internet, bulletin board, dan jaringan
komersial semacam compuserve.
4. Melakukan perjanjian dengan perusahaan untuk memberikan
kompatibilitas yang penuh, versi komersial PGP yang berharga murah.
32
8) Digital Signature Algorithm (DS A)
Pada bulan Agustus 1991, NIST (The National Institute of Standard and
Technology) mengumumkan algoritma sidik dijital yang disebut Digital
Signature Algorithm (DSA). DSA dijadikan sebagai bakuan (standard) dari
Digital Signature Standard (DSS). DSS adalah standard, sedangkan DSA
adalah algoritma. Standard tersebut menggunakan algoritma ini, sedangkan
algoritma adalah bagian dari standard (selain DSA, DSS menggunakan
Secure Hash Algorithm atau SHA sebagai fungsi hash). DSA termasuk ke
dalam sistem kriptografi kunci-publik. Meskipun demikian, DSA tidak
dapat digunakan untuk enkripsi. DSA mempunyai dua fungsi utama:
1. Pembentukan sidik dijital (signature generation), dan
2. Pemeriksaan keabsahan sidik dijital (signature verivication).
Sebagaimana halnya pada algoritma kriptografi kunci-publik, DSA
menggunakan dua buah kunci, yaitu kunci publik dan kunci rahasia.
Pembentukan sidik dijital menggunakan kunci rahasia pengirim, sedangkan
verifikasi sidik dijital menggunakan kunci publik pengirim. DSA
menggunakan fungsi hash SHA (Secure Hash Algorithm) untuk mengubah
pesan menjadi message digest yang berukuran 160 bit (SHA akan
dijelaskan pada kuliah selanjutny a).
Parameter DSA
DSA dikembangkan dari algoritma Elgamal. DSA menggunakan
beberapa parameter sebagai berikut:
1. p, adalah bilangan prima dengan panjang L bit, yang dalam hal ini 512
L L harus kelipatan 64. Parameter p bersifat publik dan
dapat digunakan bersama-sama oleh orang di dalam kelompok.
2. q, bilangan prima 160 bit, merupakan faktor dari p – 1. Dengan kata
lain, (p – 1) mod q = 0. Parameter q bersifat publik.
3. g = h(p – 1)/q mod p, yang dalam hal ini h < p – 1 sedemikian sehingga
h(p – 1)/q mod p > 1 Parameter g bersifat publik.
33
4. x, adalah bilangan bulat kurang dari q. Parameter x adalah kunci rahasia.
5. y = gx mod p, adalah kunci publik.
6. m, pesan yang akan diberi sidik digital.
Pembentukan Sepasang Kunci
1. Pilih bilangan prima p dan q, yang dalam hal ini (p – 1) mod q = 0.
2. Hitung g = h(p – 1)/q mod p, yang dalam hal ini 1 < h < p – 1 dan h(p – 1)/q
mod p > 1.
3. Tentukan kunci rahasia x, yang dalam hal ini x < q.
4. Hitung kunci publik y = gx mod p.
Pembentukan S idik Dijital (Signing)
1. Ubah pesan m menjadi message digest dengan fungsi hash SHA, H.
2. Tentukan bilangan acak k < q.
3. Sidik dijital dari pesan m adalah bilangan r dan s. Hitung r dan s sebagai
berikut:
r = (gk mod p) mod q
s = (k– 1 (H(m) + x * r)) mod q
4. Kirim pesan m dan sidik dijital r dan s.
Verifikasi Keabsahan Sidik Dijital (Verifying)
1. Hitung
w = s– 1 mod q
u1 = (H(m) * w) mod q u2 = (r * w) mod q
v = ((gu1 * yu2) mod p) mod q)
2. Jika v = r, maka sidik dijital sah, yang berarti bahwa pesan masih asli
dan dikirim oleh pengirim yang benar.
Contoh Perhitungan DSA
a. Pembentukan Sepasang Kunci
1. Pilih bilangan prima p dan q, yang dalam hal ini (p – 1) mod q = 0.
34
p = 59419
q = 3301 (memenuhi 3301 * 18 = 59419 – 1)
2. Hitung g = h(p – 1)/q mod p, yang dalam hal ini 1 < h < p – 1 dan h(p –
1)/q mod p > 1. g = 18870 (dengan h = 100)
3. Tentukan kunci rahasia x, yang dalam hal ini x < q. x = 3223
4. Hitung kunci publik y = gx mod p. y = 29245
b. Pembentukan Sidik Digital (Signing)
1. Hitung nilai hash dari pesan, misalkan H(m) = 4321
2. Tentukan bilangan acak k < q. k = 997 k– 1 = 2907 (mod 3301)
3. Hitung r dan s sebagai berikut:
r = (gk mod p) mod q = 848
s = (k– 1 (H(m) + x * r)) mod q
= 7957694475 mod 3301 = 183
4. Kirim pesan m dan sidik digital r dan s.
c. Verifikasi Keabsahan Sidik Digital
1. Hitung
s– 1 = 469 (mod 3301)
w = s– 1 mod q = 469
u1 = (H(m) * w) mod q 2026549 mod 3301 = 3036
u2 = (r * w) mod q = 397712 mod 3301 = 1592
v = ((gu1 * yu2) mod p) mod q) = 848 mod 3301 = 848
2. Karena v = r, maka sidik digital sah.
Implementasi DSA
Adanya batasan bahwa nilai p mempunyai panjang 512 sampai 1024
bit dan q 160- bit, menyebabkan DSA hampir tidak mungkin
diimplementasikan dalam perangkat lunak. Panjang bit yang besar ini
dimaksudkan agar upaya untuk memecahkan parameter yang lain
sangat sulit dilakukan.
35
Compiler C hanya sanggup menyatakan bilangan bulat hingga 232. Oleh
karena itu, bila DSA diimplementasikan dalam perangkat lunak,
batasan panjang bit p dan q diubah hingga maksimum nilai p dan q
adalah 232.
9) Digital Certificate
Digital Certificate adalah sertifikasi keamanan seseatu website
supaya pengunjung website bisa terasa aman karena ada sertifikasi dari
Public Key Infrastructur (PKI). Pada saat ini Digital certificate sangat
penting karena jumlah orang yang menggunakan internet sangat banyak
dan terus meningkat setiap tahunya dan website yang sudah ada
sertifikasinya sangat bisa dipercaya dan bisa mengurangi penipuan.
bergantung pada pasangan kunci: satu kunci pribadi untuk dipegang oleh
pemilik dan digunakan untuk menandatangani dan mendekripsi, dan satu
kunci publik yang dapat digunakan untuk enkripsi data yang dikirim ke
pemilik kunci publik atau otentikasi pemegang sertifikat. Sertifikat digital
memungkinkan entitas untuk membagikan kunci publik 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 sertifikat dikeluarkan oleh certificate authorithy,
CA dianggap pihak ketiga yang tepercaya dalam konteks PKI;
menggunakan pihak ketiga yang tepercaya untuk menerbitkan sertifikat
digital memungkinkan individu untuk memperluas kepercayaan mereka
pada CA dan dapat dipercayanya sertifikat digital yang dikeluarkannya.
Jenis-jenis sertifikat digital :
36
a. Domain validated ( DV SSL )
Pelamar untuk sertifikat SSL DV hanya perlu menunjukkan bahwa
mereka memiliki hak untuk menggunakan nama domain. Meskipun
sertifikat ini dapat memberikan jaminan bahwa data sedang dikirim
dan diterima oleh pemegang sertifikat, mereka tidak memberikan
jaminan tentang siapa entitas tersebut.
b. 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
c. Extended validation
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.
10) MD5 (Message Digest 5)
MD5 adalah salah satu dari serangkaian algoritma (merupakan salah satu
fungsi hash) message digest yang didesain oleh Profesor Ronald Rivest dari
M IT (Rivest, 1994). Saat kerja analitik menunjukkan bahwa pendahulu
MD5, yaitu MD4 mulai tidak aman, MD5 kemudian didesain pada tahun
1991 sebagai pengganti dari MD4 (kelemahan MD4 ditemukan oleh Hans
Dobbertin).
Pada tahun 1993, den Boer dan Bosselaers memberikan awal, bahkan
terbatas, hasil dari penemuan pseudo-collision dari fungsi kompresi M D5.
Dua vektor inisialisasi berbeda I dan J dengan beda 4-bit diantara
keduanya.
37
MD5compress(I,X) = MD5compress(J,X)
Pada tahun 1996 Dobbertin mengumumkan sebuah kerusakan pada
fungsi kompresi M D5. Dikarenakan hal ini bukanlah serangan terhadap
fungsi hash M D5 sepenuhnya, hal ini menyebabkan para pengguna
kriptografi menganjurkan pengganti seperti WHIRLPOOL, SHA-1 atau
RIPEMD-160.
Ukuran dari hash — 128-bit — cukup kecil untuk terjadinya serangan
brute force.. M D5CRK adalah proyek distribusi mulai Maret 2004 dengan
tujuan untuk menunjukkan kelemahan dari M D5 dengan menemukan
kerusakan kompresi menggunakan brute force attack. Bagaimanapun juga,
M D5CRK berhenti pada tanggal 17 Agustus 2004, saat [[kerusakan hash]]
pada M D5 diumumkan oleh Xiaoyun Wang, Dengguo Feng, Xuejia Lai dan
Hongbo Yu. Serangan analitik mereka dikabarkan hanya memerlukan satu
jam dengan menggunakan IBM P690 cluster.
Pada tanggal 1 Maret 2005, Arjen Lenstra, Xiaoyun Wang, and Benne
de Weger mendemontrasikan kunstruksi dari dua buah sertifikat X.509
dengan public key yang berbeda dan hash M D5 yang sama, hasil dari
demontrasi menunjukkan adanya kerusakan. Konstruksi tersebut
melibatkan private key untuk kedua public key tersebut. Dan beberapa hari
setelahnya, Vlastimil Klima menjabarkan dan mengembangkan algortima,
mampu membuat kerusakan MD5 dalam beberapa jam dengan
menggunakan sebuah komputer notebook. Hal ini menyebabkan MD5
tidak bebas dari kerusakan.
Dikarenakan M D5 hanya menggunakan satu langkah pada data, jika
dua buah awalan dengan hash yang sama dapat dibangun, sebuah akhiran
yang umum dapat ditambahkan pada keduanya untuk membuat kerusakan
lebih masuk akal. Dan dikarenakan teknik penemuan kerusakan
mengijinkan pendahuluan kondisi hash menjadi arbitari tertentu, sebuah
kerusakan dapat ditemukan dengan awalan apapun. Proses tersebut
memerlukan pembangkitan dua buah file perusak sebagai file template,
dengan menggunakan blok 128-byte dari tatanan data pada 64-byte
38
batasan, file-file tersebut dapat mengubah dengan bebas dengan
menggunakan algoritma penemuan kerusakan.
Saat ini dapat diketahui, dengan beberapa jam kerja, bagaimana proses
pembangkitan kerusakan M D5. Yaitu dengan membangkitkan dua byte
string dengan hash yang sama. Dikarenakan terdapat bilangan yang
terbatas pada keluaran M D5 (2128), tetapi terdapat bilangan yang tak
terbatas sebagai masukannya, hal ini harus dipahami sebelum kerusakan
dapat ditimbulkan, tapi hal ini telah diyakini benar bahwa menemukannya
adalah hal yang sulit.
Sebagai hasilnya bahwa hash M D5 dari informasi tertentu tidak dapat
lagi mengenalinya secara berbeda. Jika ditunjukkan informasi dari sebuah
public key, hash M D5 tidak mengenalinya secara berbeda jika terdapat
public key selanjutny a yang mempunyai hash M D5 yang sama.
Bagaimanapun juga, penyerangan tersebut memerlukan kemampuan
untuk memilih kedua pesan kerusakan. Kedua pesan tersebut tidak dengan
mudah untuk memberikan serangan preimage, menemukan pesan dengan
hash M D5 yang sudah ditentukan, ataupun serangan preimage kedua,
menemukan pesan dengan hash M D5 yang sama sebagai pesan yang
diinginkan.
Hash M D5 lama, yang dibuat sebelum serangan-serangan tersebut
diungkap, masih dinilai aman untuk saat ini. Khususny a pada digital
signature lama masih dianggap layak pakai. Seorang user boleh saja tidak
ingin membangkitkan atau mempercayai signature baru menggunakan M D5
jika masih ada kemungkinan kecil pada teks (kerusakan dilakukan dengan
melibatkan pelompatan beberapa bit pada bagian 128-byte pada masukan
hash) akan memberikan perubahan yang berarti. Penjaminan ini berdasar
pada posisi saat ini dari kriptoanalisis. Situasi bisa saja berubah secara
tiba-tiba, tetapi menemukan kerusakan dengan beberapa data yang belum-
ada adalah permasalahan yang lebih susah lagi, dan akan selalu butuh waktu
untuk terjadinya sebuah transisi.
39
Cara Kerja MD5
M D5 mengolah blok 512 bit, dibagi kedalam 16 subblok berukuran 32
bit. Keluaran algoritma diset menjadi 4 blok yang masing-masing
berukuran 32 bit yang setelah digabungkan akan membentuk nilai hash 128
bit.
Gambar MD5
M D5 terdiri atas 64 operasi, dikelompokkan dalam empat putaran dari 16
operasi.
F : Adalah fungsi nonlinear, satu fungsi digunakan pada tiap-tiap
putaran.
Mi : Menujukkan blok 32-bit dari masukan pesan, dan
Ki : Menunjukkan konstanta 32-bit, berbeda untuk tiap-tiap operasi.
<<<s : Menunjukkan perputaran bit kiri oleh s; s bervariasi untuk tiap-
tiap operasi.
: Menunjukan tambahan modulo 232.
40
Contoh
Berikut dapat dilihat satu buah operasi dari MD-5 dengan operasi
yang dipakai sebagai contoh adalah FF(a,b,c,d,M j,s,ti) menunjukan a = b +
((a + F(b,c,d) + Mj + ti)
<<<s). Bila Mj menggambarkan pesan ke-j dari sub blok (dari 0 sampai 15)
dan <<<s menggambarkan bit akan digeser ke kiri sebanyak s bit, maka
keempat operasi dari masing-masing ronde adalah :
FF(a,b,c,d,M j,s,ti) menunjukan a = b + ((a + F(b,c,d) + Mj + ti) <<< s)
GG(a,b,c,d,M j,s,ti) menunjukan a = b + ((a + G(b,c,d) + Mj + ti) <<<
s)
HH(a,b,c,d,M j,s,ti) menunjukan a = b + ((a + H(b,c,d) + Mj + ti) <<< s)
II(a,b,c,d,M j,s,ti) menunjukan a = b + ((a + I(b,c,d) + M j + ti) <<< s)
Konstanta ti didapat dari integer 232. abs(sin(i)), dimana i dalam radian.
Setiap pesan yang akan dienkripsi, terlebih dahulu dicari berapa banyak bit
yang terdapat pada pesan. Kita anggap sebanyak b bit. Di sini b adalah bit
non negatif integer, b bisa saja nol dan tidak harus selalu kelipatan
delapan. Pesan dengan panjang b bit dapat digambarkan seperti berikut :
m_0 m_1 …..m_(b-1)
Langkah - langkah yang dibutuhkan untuk untuk menghitung intisari
pesan. Adapun langkah–langkah tersebut adalah :
1. Penambahan Bit : Pesan akan ditambahkan bit-bit tambahan sehingga
panjang bit akan kongruen dengan 448, mod 512. Hal ini berarti pesan
akan mempunyai panjang yang hanya kurang 64 bit dari kelipatan 512
bit. Penambahan bit selalu dilakukan walaupun panjang dari pesan
sudah kongruen dengan 448, mod 512 bit. Penambahan bit dilakukan
dengan menambahkan “1” di awal dan diikuti “0” sebanyak yang
diperlukan sehingga panjang pesan akan kongruen dengan 448, mod
512.
2. Penambahan Panjang Pesan : Setelah penambahan bit, pesan masih
membutuhkan 64 bit agar kongruen dengan kelipatan 512 bit. 64 bit
41
tersebut merupakan perwakilan dari b (panjang pesan sebelum
penambahan bit dilakukan). Bit-bit ini ditambahkan ke dalam dua
word (32 bit) dan ditambahkan dengan low-order terlebih dahulu.
Penambahan pesan ini biasa disebut juga MD Strengthening atau
Penguatan MD.
3. Inisialisasi M D5 : Pada MD5 terdapat empat buah word 32 bit
register yang berguna untuk menginisialisasi message digest pertama
kali. Register-register ini diinisialisasikan dengan bilangan hexadesimal.
word A: 01 23 45 67
word B: 89 AB CD EF
word C: FE DC BA 98
word D: 76 54 32 10
Register-register ini biasa disebut dengan nama Chain variabel atau
variabel rantai.
4. Proses Pesan di dalam Blok 16 Word
5. Keluaran MD5
Keluaran dari MD5 adalah 128 bit dari word terendah A dan tertinggi
word D masing- masing 32 bit. MD5 memproses variasi panjang
pesan kedalam keluaran 128-bit dengan panjang yang tetap. Pesan
masukan dipecah menjadi dua gumpalan blok 512-bit; Pesan ditata
sehingga panjang pesan dapat dibagi 512. Penataan bekerja sebagai
berikut: bit tunggal pertama, 1, diletakkan pada akhir pedan. Proses
ini diikuti dengan serangkaian nol (0) yang diperlukan agar panjang
pesan lebih dari 64-bit dan kurang dari kelipatan 512. Bit- bit sisa diisi
dengan 64-bit integer untuk menunjukkan panjang pesan yang asli.
Sebuah pesan selalu ditata setidaknya dengan 1-bit tunggal, seperti jika
panjang pesan adalah kelipatan 512 dikurangi 64-bit untuk informasi
panjang (panjang mod(512) = 448), sebuah blok baru dari 512-bit
ditambahkan dengan 1-bit diikuti dengan 447 bit-bit nol (0) diikuti
dengan panjang 64-bit.
Algoritma MD5 yang utama beroperasi pada kondisi 128-bit, dibagi
42
menjadi empat word 32-bit, menunjukkan A, B, C dan D. Op erasi
tersebut di inisialisasi dijaga untuk tetap konstan. Algoritma utama
kemudian beroperasi pada masing-masing blok pesan 512-bit, masing-
masing blok melakukan pengubahan terhadap kondisi.Pemrosesan blok
pesan terdiri atas empat tahap, batasan putaran; tiap putasan
membuat 16 operasi serupa berdasar pada fungsi non-linear F,
tambahan modular, dan rotasi ke kiri. Gambar satu mengilustrasikan
satu operasi dalam putaran. Ada empat macam kemungkinan fungsi F,
berbeda dari yang digunakan pada tiap-tiap putaran:
dan operasi XOR, AND, OR, dan NOT adalah sebagai berikut :
4. Kesimpulan
Kriptografi memiliki berbagai macam algoritma yang memiliki fungsi,
kelebihan, dan kekurangan masing-masing. Pemilihan algoritma ini
didasarkan pada kebutuhan suatu sistem dan tujuan yang ingin dicapai oleh
suatu sistem.
5. Daftar Pustaka
http://gilang-kurniawan.blogspot.com/2012/05/mengenal-kriptografi.html,
diakses pada 5 September 2019 pukul 13.23 WIB.
Defiana Arnaldy, M.Si. Presentasi Kriptografi, Enkripsi dan Dekripsi. Jakarta
: Teknik Informatika UIN Syarif Hidayatullah Jakarta.
43
http://jyzeet.blogspot.com/2011/07/algoritma-kriptografi-modern.html,
diakses pada 5 September 2019 pukul 13.26 WIB.
http://gilang-kurniawan.blogspot.com/2012/05/kriptografi-2-macam-macam-
algoritma.html, diakses pada 5 September 2019 pukul 13.23 WIB.
http://agoydaywalker.blogspot.com/2011/03/antivirus-nod32.html, diakses
pada 5 September 2019 pukul 13.31 WIB.
http://kur2003.if.itb.ac.id/file/DES.doc, diakses pada 5 September 2019
pukul 18.41 WIB.
http://elib.unikom.ac.id/files/disk1/467/jbptunikompp-gdl-muhammadar-
23306-11- pertemua-a.doc, diakses pada 5 September 2019 pukul 19.41
WIB.
http://id.wikipedia.org/wiki/Advanced_Encryption_Standard, diakses pada 5
September 2019 pukul 13.17 WIB.
http://robisahputra.blogspot.com/2011/07/one-time-pad-cipher.html, diakses
pada 5 September 2019 pukul 20.20 WIB.
http://infofenvin.blogspot.com/2010/03/pretty-good-privacy-pgp.html?m=1,
diakses pada 5 September 2019 pukul 20.22 WIB.
Aminudin. Helmi, Ahmad Faisal. Arifianto, Sofyan.2018. ANALISA
KOMBINASI ALGORITMA MERKLE-HELLMAN KNAPSACK DAN
LOGARITMA DISKRIT PADA APLIKASI CHAT
Hidayat, Akik. Rosyadi, Akmal Rudi. 2016 . Cryptography Asymmetries
Merkle-Hellman Knapsack Digunakan untuk Enkripsi dan Dekripsi Teks
44
https://www.beritabebas.com/definisi/digital-certificate/. __.Digital
certificate, diakses pada 5 September 2019 pukul 13.27 WIB.
https://martentamren97.wordpress.com/digital-security/pengertian-digital-
certificate/. Marten. Pengertian Digital Certificate, diakses pada 5
September 2019 pukul 13.38 WIB.
Recommended