Untuk itu diperlukanlah sebuah pendekatan dalam melakukan pengamanan pada informasi, seperti melakukan enkripsi, steganografi, cipher dan hashing terhadap
informasi tersebut.
2.3. Android
Android adalah salah satu sistem operasi yang dapat berjalan pada handphone, android merupakan turunan dari sistem operasi linux. Oleh karena itu banyak vendor
telepon genggam memanfaatkan sistem operasi android yang open source hal ini mengundang banyaknya developer aplikasi untuk mengembangkan berbagai aplikasi
mobile karena mereka dapat dengan bebas biaya mengembangkan aplikasi untuk dapat
digunakan di handphone berbasis android. Berbeda dengan sistem operasi IOS besutan Apple yang mengharuskan developer aplikasi membayar 99 per tahun untuk
mendapatkan lisensi agar aplikasi buatan developer dapat diinstalasi pada iPhone atau iDevice lainnya. Hal ini yang menjadi alasan penulis untuk mengembangkan aplikasi
NIC Messenger ini pada handphone berbasis android.
2.4. Kriptografi
Menurut Sadikin 2012, kriptografi adalah ilmu yang bersandarkan pada teknik matematika yang berurusan dengan keamanan informasi seperti kerahasiaan, keutuhan
data dan otentikasi entitas. Kriptografi terbagi atas dua kategori yaitu kriptografi klasik dan kriptografi
modern. Kriptografi klasik adalah sistem kriptografi yang menggunakan penyandian kunci simetris dan menggunakan metode subtitusi pergantian huruf atau transposisi
pertukaran tempat. Dan kriptografi modern adalah sistem kriptografi yang menggunakan penyandian kunci asimetris Sadikin, 2012. Berikut ini adalah
beberapa mekanisme yang berkembang pada kriptografi:
1. Fungsi Hash
Fungsi hash adalah fungsi yang melakukan pemetaan pesan dengan panjang sembarang ke sebuah teks khusus yang disebut message digest dengan panjang
Universitas Sumatera Utara
yang tetap. Fungsi hash pada umumnya digunakan untuk menguji keutuhan pada sebuah data.
2. Penyandian dengan kunci simetris
Penyandian dengan kunci simetris adalah penyandian yang pada proses enkripsi dan dekripsinya menggunakan sebuah kunci yang sama. Kunci yang
digunakan pada proses enkripsi dan dekripsi bersifat rahasia. Beberapa jenis kriptografi dengan penyandian kunci simetris antara lain Data Encryption
Standard DES, 3DES, Advance Encryption Standard AES, Blowfish dan
International Data Encryption Algorithm IDEA.
3. Penyandian dengan kunci asimetris
Penyandian dengan kunci asimetris atau sering juga disebut dengan kunci publik adalah penyandian yang pada proses enkripsi dan dekripsinya memiliki
kunci yang berbeda. Pada kunci yang digunakan untuk enkripsi bersifat publik public key. Sedangkan kunci yang digunakan untuk dekripsi bersifat rahasia
private key. Beberapa jenis kriptografi dengan penyandian kunci asimetris antara lain RSA, Diffie-Helman, ELGamal, Knapsack, dan beberapa
penerapan teknik Elliptic Curve.
2.4.1 Algoritma RSA
Karena semakin berkembangnya pertukaran data, khususnya dalam wireless dan local area network
LAN, hal ini memberi kesempatan yang besar untuk mencegat data dan memalsukan pesan. Satu-satunya cara yang mudah untuk menjaga keamanan dan
keintegritasan informasi antara pengirim dan penerima adalah dengan menggunakan kriptografi kunci publik.
RSA adalah sistem kriptografi dengan kunci publik yang pertama kali dapat berjalan dan dipraktekkan, ditemukan pada tahun 1977 dan dipublikasikan pada tahun
1978 oleh Rivest, Shamir dan Adleman RSA di Institut Teknologi Massachusetts. RSA adalah sistem kriptografi yang masih paling banyak digunakan seperti transaksi
online, email, kartu pintar dan umumnya pada aplikasi mobile commerce Yan, 2008.
Universitas Sumatera Utara
Rumus dasar dari metode enkripsi dan dekripsi RSA adalah C
≡ � mod N 1
Dan M
≡ � mod N 2
Penjelasan: N
= p q
p dan q =
Bilangan prima M
= Plaintext
C =
Ciphertext e
= Encryption exponent
d =
Decryption exponent ɸN
= p-1q-1
Tahapan Algoritma RSA 1.
Pilih dua bilangan prima secara acak dan tidak sama. 2.
Hitung perkalian p dan q, simpan dalam variabel n. 3.
Hitung ɸn ≡ p-1.q-1
4. Pilih e secara acak dengan syarat, PBBe,
ɸn = 1 5.
Hitung d ≡ e
-1
mod ɸn atau d.e ≡ 1.modɸn
6. Rahasiakan p, q,
ɸn dan d 7.
Kirimkan e dan n
Contoh kasus sederhana algoritma Kriptografi RSA: P = 47 bilangan prima dan Q = 71 bilangan prima
N = P.Q = 3337 ɸN = P-1Q-1 = 3220
E = 79 pilih angka acak D = 1+k322079
dicoba K = 1,2,..,dst D = 1019 dipilih karena hasilnya bilangan bulat
Universitas Sumatera Utara
Misalkan plainteks M = “ABC”, ubah kedalam ASCII menjadi “65 66 67”
Enkripsi dengan kunci publik E = 79 dan N = 3337: M1 = 65 - C1 = 6579 mod 3337 = 541
M2 = 66 - C2 = 6679 mod 3337 = 795 M3 = 67 - C3 = 6779 mod 3337 = 1479
Dekripsi dengan kunci D = 1019: C1 = 541 - M1 = 5411019 mod 3337 = 65 - A
C2 = 795 - M2 = 7951019 mod 3337 = 66 - B C3 = 1479 - M3 = 14791019 mod 3337 = 67 - C
2.4.2 Algoritma LCG Linear Congruential Generators
Algoritma LCG atau Linear Congruential Generators adalah algoritma yang umumnya digunakan untuk pembangkit bilangan acak, dengan rumus sebagai berikut:
X
n
= a X
n-1
+ b mod m 3
Penjelasan: X
= Kunci sementara
a =
Bilangan pengali b
= Bilangan inkremen
m =
Modulus
Keuntungan dari linear congruential generators adalah proses pembangkitan bilangan acak cepat, dan membutuhkan beberapa operasi per-bit Schneier, 1996.
Akan tetapi kekurangan dari algoritma pembangkit bilangan acak ini adalah bilangan acak yang dihasilkan tidak dapat digunakan untuk kriptografi, karena
bilangan acak tersebut bisa ditebak. Pada penelitian ini algoritma LCG akan dikombinasikan dengan waktu dalam satuan milidetik, dimana untuk setiap bilangan
acak yang dihasilkan akan ditambahkan dengan milidetik saat ini, dengan demikian hasil bilangan acak yang dihasilkan akan sulit untuk ditebak.
Universitas Sumatera Utara
Contoh: m
= 1024
a =
105 c
= 71
X =
1 t
= Waktu dalam milidetik
Pengujian LCG tanpa kombinasi waktu 0 = 105 176 +71 mod 1024 = 176
1 = 105 119 +71 mod 1024 = 119 2 = 105 278 +71 mod 1024 = 278
3 = 105 589 +71 mod 1024 = 589 4 = 105 476 +71 mod 1024 = 476
Hasil pengujian jika dilakukan berulang kali akan tetap menghasilkan bilangan yang sama.
Pengujian LCG dengan kombinasi waktu 0 = 105 46 +71 + 514942 mod 1024 = 46
1 = 105 753 +71 + 515020 mod 1024 = 753 2 = 105 267 +71 + 515051 mod 1024 = 267
3 = 105 464 +71 + 515078 mod 1024 = 464 4 = 105 694 +71 + 515103 mod 1024 = 694
Hasil pengujian jika dilakukan berulang kali akan menghasilkan bilangan yang berbeda.
2.4.3 Fermat’s Primality Test
Untuk menghasilkan sebuah kunci pada sistem kriptografi kunci publik RSA membutuhkan bilangan P dan Q yang prima, algoritma Fermat
’s Little Theorem dapat digunakan untuk menguji apakah sebuah bilangan prima atau bilangan biasa Thomas,
et al . 2001.
Universitas Sumatera Utara
Sebuah bilangan dikatakan prima jika memenuhi rumus sebagai berikut: a
p-1
≡ 1 mod p atau a
p-1
mod p ≡ 1
4
Penjelasan: a
= Bilangan Inkremen
p =
Bilangan yang diuji
Jika dalam interval a dalam pengujian menghasilkan sekali saja nilai bukan 1 maka bilangan yang diuji bukan bilangan prima.
Contoh: Uji keprimaan angka 6
a = 1 1
5
mod 6 = 1 a = 2
2
5
mod 6 = 2
Proses berhenti karena dalam interval a = 2 menghasilkan nilai bukan 1, maka angka 6 bukanlah bilangan prima.
Uji keprimaan angka 5 a = 1
1
4
mod 5 = 1 a = 2
2
4
mod 5 = 1 a = 3
3
4
mod 5 = 1 A = 4
4
4
mod 5 = 1
Proses berhenti dan dalam setiap interval a menghasilkan nilai 1, maka angka 5 adalah bilangan prima.
Universitas Sumatera Utara
2.4.4 Algoritma Rabin-Miller
Michael Rabin dan Gary Miller mengembangkan sebuah algoritma untuk mengujian keprimaan sebuah bilangan pada tahun 1976. Algoritma ini adalah algoritma yang
umumnya digunakan untuk menentukan sebuah bilangan prima Schneier, 1996.
Berikut ini adalah langkah-langkah dalam melakukan pengujian bilangan prima berdasarkan Algoritma Rabin-Miller pada buku Schneier 1996.
1. Pilih bilangan acak n untuk diuji dan bilangan acak a untuk menguji 2. Hitung b yang dalam hal ini 2
b
adalah nilai pangkat terbesar yang habis membagi n-1
3. Hitung M dengan n = 1 + 2
b
m atau m = n-1 2
b
4. Nyatakan j = 0 dan z = a
m
mod n 5. Jika z = 1 atau z = n-1, maka n adalah bilangan prima
6. Jika z 0 dan z = 1, maka n bukan bilangan prima 7. Nyatakan j = j+1. Jika j b dan z
≠ n-1, nyatakan z = z
2
mod n dan ulangi langkah 7. Jika z = p-1, maka n adalah bilangan prima
8. Jika j = b dan z ≠ n-1, maka n adalah bukan bilangan prima.
Contoh: 1. n = 223, n-1 = 222
2. b = 1, jadi 2
b
= 2. Karena 2
b
mod n-1 = 2
1
mod 222 = 0 3. a = 24
4. hitung M, 223 = 1 + 2
1
M, M = 223 – 1 2
1
, M = 111 5. j = 0, z = 24
111
mod 223, z = 222 6.
z = 222 maka n adalah bilangan prima.
2.4.5 Algoritma One Time Pad
Sandi One Time Pad merupakan salah satu dari Sistem Kriptografi Klasik berbasis subtitusi, ditemukan oleh Major Joseph Mauborgne pada tahun 1917. Proses kerja
Sandi One Time Pad menggunakan kunci yang acak setiap karakternya untuk semua teks asli, kunci yang acak tersebut hanya digunakan sekali saja dan panjang kuncinya
sama dengan panjang teks asli, sistem Sandi One Time Pad diklaim merupakan sandi yang mencapai kerahasiaan sempurna perfect secrecy Sadikin, 2012.
Universitas Sumatera Utara
Rumus dasar dari Sandi One Time Pad adalah Enkripsi:
c
i
= p
i
+ k
i
mod 26 10
Dekripsi: d
i
= c
i
- k
i
mod 26 11
Penjelasan: c
= Ciphertext
p = Plaintext
k = Kunci enkripsi
i
= Karakter ke-i
Tahapan Sandi OTP 1. Pilih karakter secara acak sebanyak karakter pada pesan sebagai kunci
enkripsi. 2. Jumlahkan karakter ke-i dari pesan dengan kunci ke-i dan mod 26.
Contoh kasus sederhana algoritma Kriptografi One Time Pad: Misalkan plainteks P = “BUKU”
Generate Kunci OTP sepanjang P karakter = “70 75 83 78”
Ubah P dan Kunci kedalam bentuk ASCII: P = 66 85 75 85
K = 70 75 83 78
Enkripsi Ci = Pi + Ki mod 26 : C1 = 66+70 mod 26 = 84 - T
C2 = 85+75 mod 26 = 108 - l C3 = 75+83 mod 26 = 80 - P
C4 = 85+78 mod 26 = 85 - U
Universitas Sumatera Utara
Dekripsi Pi = Ci - Ki mod 26 : P1 = 84-70 mod 26 = 66 - B
P2 = 108-75 mod 26 = 85 - U P3 = 80-83 mod 26 = 75 - k
P4 = 85-78 mod 26 = 85 - U
2.5. Database