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