d. Android Run Time
Layer
yang membuat aplikasi Android dapat dijalankan dimana dalam prosesnya menggunakan implementasi
Linux
.
Dalvik Virtual Machine
DVM merupakan mesin yang membentuk kerangka dasar aplikasi android Safaat, 2012. Didalam
android
run time
dibagi menjadi dua bagian yaitu : -
Core Libraries
: Aplikasi android dibangun dalam bahasa java, sementara
dalvik
sebagai
virtual
mesinnya bukan
virtual machine
java, sehingga diperlukan sebuah
libraries
yang berfungsi menerjemahkan bahasa
javac
yang ditangani oleh
core libraries.
-
Dalvik Virtual Machine
:
Virtual
mesin berbasis
register
yang dioptamilkan untuk menjalankan fungsi-fungsi secara effisien, dimana merupakan
pengembangan yang mampu membuat
linux kernel
untuk melakukan
threading
dan manajemen tingkat rendah.
e. Linux Kernel
Linux kernel
adalah
layer
dimana inti dari operating sistem dari Android itu berada. Berisi
file-file system
yang mengatur sistem
processing
,
memory
,
resource, drivers
, dan sistem-sistem operasi android lainnya.
Linux kernel
yang digunakan android adalah
linux kernel realese 2.6
Safaat, 2012
.
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:
Universitas Sumatera Utara
1. Fungsi Hash Fungsi
hash
adalah fungsi yang melakukan pemetaan pesan dengan panjang sembarang ke sebuah teks khusus yang disebut
message digest
dengan panjang yang tetap. Fungsi
hash
pada umumnya digunakan untuk menguji keutuhan pada sebuah data serta sebagai tanda tangan digital untuk menjamin keaslian
dokumen Sadikin, 2012.
2. Penyandian dengan kunci simetris Penyandian dengan kunci simetris adalah penyandian yang menggunakan
sebuah kunci yang sama pada proses enkripsi dan dekripsinya. 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 Sadikin, 2012.
3. Penyandian dengan kunci asimetris Penyandian dengan kunci asimetris adalah penyandian yang memiliki kunci
yang berbeda pada proses enkripsi dan dekripsinya. Pada kunci yang digunakan untuk enkripsi bersifat publik
public key
. Kunci publik bebas disebarluaskan ke public. Sedangkan kunci yang digunakan untuk dekripsi
bersifat rahasia
private key
. Beberapa jenis kriptografi dengan penyandian kunci asimetris antara lain RSA, Diffie-Helman, ELGamal, Rabin, dan
beberapa penerapan teknik
Elliptic Curve
Sadikin, 2012.
2.4.1 Algoritma AES
Universitas Sumatera Utara
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. Salah satu yang mudah untuk menjaga keamanan dan
keintegritasan informasi antara pengirim dan penerima adalah dengan menggunakan kriptografi kunci privat.
Algoritma AES merupakan algoritma blok cipher yang didesain oleh Joan Daemen dan Vincent Rijment Daemen,1999. Kunci AES dapat memiliki panjang
kunci 128,192, dan 256 bit. Penyandian AES menggunakan proses yang berulang yang disebut dengan ronde. Jumlah ronde yang digunakan tergantung dengan panjang
kunci yang digunakan. Kunci ronde dibangkitkan berdasarkan kunci yang diberikan. Proses didalam AES adalah transformasi terhadap
state
yang merupakan blok128 bit yang ditata menjadi matriks
byte
berukuran 4x4.
State
yang menjadi keluaran ronde k menjadi masukan untuk ronde k+1.
Tahapan Algoritma AES Sadikin, 2012: 1. Pra-ronde,blok teks asli dicampur dengan kunci ronde ke-0transformasi ini
disebut
AddRoundKey
. 2. Proses ronde 1 hingga ke ronde n-1, yang masing-masing terdiri atas 4 jenis
transformasi, yaitu
SubBytes
,
ShiftRows
,
MixColumns
, dan
AddRoundKey
. 3. Ronde n, dilakukan transformasi seperti ronde sebelumnya namun tanpa
transformasi
MixColumns
.
Detail transformasi yang digunakan pada proses enkripsi akan dijelaskan pada bahasan selanjutnya.
A.
SubBytes Transformation
Transformasi
SubBytes
menggunakan tabel substitusi, yaitu dengan cara menginterpretasikan
byte
masukan sebagai 2 bilangan heksadesimal, kemudian digit kiri menunjukkan indeks baris dan digit kanan menunjukkan indeks kolom di tabel
substitusi. Nilai
byte
pada tabel substitusi yang dirujuk oleh baris dan kolom menjadi nilai yang mensubstitusi
byte
masukan awal. Tabel substitusi diberikan oleh tabel 2.1
Universitas Sumatera Utara
Tabel 2.1 Tabel substitusi untuk transformasi SubBytesSadikin,2012
1 2
3 4
5 6
7 8
9 A
B C
D E
F 63
7C 77
7B F2
6B 6F
C5 30
01 67
2B FE
D7 AB
76 1
CA 82
C9 7D
FA 59
47 F0
AD D4
A2 AF
9C A4
72 C0
2 B7
FD 93
26 36
3F F7
CC 34
A5 E5
F1 71
D8 31
15 3
04 C7
23 C3
18 96
05 9A
07 12
80 E2
EB 27
B2 75
4 09
83 2C
1A 1B
6E 5A
A0 52
3B D6
B3 29
E3 2F
84 5
53 D1
00 ED
20 FC
B1 5B
6A CB
BE 39
4A 4C
58 CF
6 D0
EF AA
FB 43
4D 33
85 45
F9 02
7F 50
3C 9F
A8 7
51 A3
40 8F
92 9D
38 F5
BC B6
DA 21
10 FF
F3 D2
8 CD
0C 13
EC 5F
97 44
17 C4
A7 7E
3D 64
5D 19
73 9
60 81
4F DC
22 2A
90 88
46 EE
B8 14
DE 5E
0B DB
A E0
32 3A
0A 49
06 24
5C C2
D3 AC
62 91
95 E4
79 B
E7 C8
37 6D
8D D5
4E A9
6C 56
F4 EA
65 7A
AE 08
C BA
78 25
2E 1C
A6 B4
C6 E8
DD 74
1F 4B
BD 8B
8A D
70 3E
B5 66
48 03
F6 0E
61 35
57 B9
86 C1
1D 9E
Universitas Sumatera Utara
E E1
F8 98
11 69
D9 83
94 9B
1E 87
E9 CE
55 28
DF F
8C A1
89 0D
BF E6
42 68
41 99
2D 0F
B0 54
BB 16
B.
ShiftRows Transformation
Transformasi
ShiftRows
dilakukan dengan menjalankan operasi
circular shift left
sebanyak
i
pada baris ke-
i
pada
state
. Ilustrasi transformasi
ShiftRows
dapat dilihat pada Gambar 2.2
ShiftRows
S00 S01
S02 S03
S13 S12
S11 S10
S20 S21
S22 S23
S33 S32
S31 S30
S00 S01
S02 S03
S10 S22
S23 S33
S13 S12
S11 S20
S21 S32
S31 S30
Gambar 2.2 Transformasi ShiftRowsSadikin,2012
C.
MixColumn Transformation
Transformasi
MixColumns
akan mencampurkan nilai kolom kolom pada
state
awal dengan suatu perkalian matriks dengan sebuah matriks konstan yang ditunjukkan pada
Gambar 2.3
S00 S01
S02 S03
S13 S12
S11 S10
S20 S21
S22 S23
S33 S32
S31 S30
S’00 S’01
S’02 S’03
S’13 S’12
S’11 S’10
S’20 S’21
S’22 S’23
S’33 S’32
S31 S’30
02 03
1 1
1 03
02 1
1 1
02 03
02 1
1 03
Gambar 2.3 Transformasi MixColumnsSadikin,2012
Untuk kolom ke-j, dengan j={0,1,2,3} pada keluaran transformasi
MixColumns
lakukan:
Universitas Sumatera Utara
⨁ ⨁
2.1 ⨁
⨁ ⨁
⨁ ⨁
⨁ D.
AddRoundKey Transformation
Transformasi
AddRoundKey
mencampur sebuah state masukan dengan kunci ronde dengan operasi eksklusif OR. Setiap elemen pada
state
masukan yang merupakan sebuah
byte
dikenakan operasi eksklusif OR dengan byte pada posisi yang sama di kunci rondekunci ronde direpresentasikan sebagai sebuah
state
. E.
KeyExpansion
Langkah-langkah ekspansi kunci AES 128
-bit
dijelaskan pada algoritma dibawah ini Input: byte kunci[16]
Output:word
w[44]
word temp For i=0 to 3 do
w
[i]= kunci[4i], kunci[4i+1] , kunci[4i+2] , kunci[4i+3] End For
For i=4 to 43 do temp =
w
[i-1] If i4 = 0 then
temp= SubWordRotWordtemp + RC[i4] End If
w
[i] = temp +
w
[i-4] End For
Universitas Sumatera Utara
Dari algoritma diatas, bisa dilihat proses ini akan menerima input berupa kunci awal yang akan menghasilkan 44
word
kunci dengan 4
word
kunci untuk setiap ronde. Pertama sekali kunci AES 128-
bit
akan diorganisir menjadi 4
word
dan disalin ke
word
keluaran pada 4 elemen pertamaw[0],w[1],w[2],w[3]. Untuk elemen keluaran selanjutnya w[i] dengan i = {4,…,43} dihitung sebagai berikut
1. Salin w[i-1] pada
word
t 2.2
2. Jika i mod 4=0 lakukan w[i]=ft,i XOR w[i-4]
dengan fungsi ft,i adalah sebagai berikut ft,i = SubWordRotWordt XOR RC[i4]
Konstan RC[i] ditunjukkan pada tabel 2.2
Tabel 2.2 Konstan RC dalam heksadesimalSadikin,2012
i 1
2 3
4 5
6 7
8 9
10
RC[i] 01
02 04
05 10
20 40
80 1B
3C
3. Jika i mod 4 =0, lakukan w[i] = t XOR w[i-4]
2.4.2 Algoritma Rabin
Universitas Sumatera Utara
Algoritma Rabin dipublikasikan oleh Michael O.Rabin pada Januari 1979 di Institut Teknologi Massachusetts. Algoritma ini merupakan algoritma asimetris pertama yang
menerapkan konsep dimana mendapatkan keseluruhan
plaintext
dari
cyphertext
memiliki kesulitan yang sama dalam faktorisasi. Rumus dasar dari metode enkripsi dan dekripsi Rabin adalah
2.3 Dan
Penjelasan: N
= p qkunci publik
p dan q =
Bilangan primakunci privat M
= Plaintext
C =
Ciphertext
Tahapan Algoritma Rabin 1. Pilih dua bilangan prima secara acak dan tidak sama.
2. Hitung perkalian p dan q, simpan dalam variabel n. 3. Rahasiakan p, q.
4. Kirimkan n dan C .
2.5. Sistem Surat Elektronik Surel