Professional Documents
Culture Documents
KRIPTOGRAFI
MODERN
KEAMANAN KOMPUTER
AUTHOR:
11/2/2010
Segala puji dan syukur penulis panjatkan atas kehadirat Tuhan Yang Maha Esa
yang telah memberikan berkat, anugerah dan karunia-Nya, sehingga penulis dapat
menyelesaikan makalah ini tepat pada waktunya.
Makalah ini dibuat sebagai tugas mata kuliah kemanan komputer. Makalah ini akan
memberikan penjelasan mengenai kriptografi, khususnya kriptografi modern beserta
contoh aplikasinya.
Isi dari makalah ini diharapkan dapat berguna dan dapat memberikan informasi
bagi para pembaca. Namun, penulis menyadari bahwa makalah ini masih jauh dari
sempurna dan masih banyak memiliki kekurangan. Oleh karena itu, penulis menerima
saran dan kritik untuk menyempurnakan makalah ini.
Dalam kesempatan ini, penulis juga tidak lupa menyampaikan terima kasih sebesar
- sebesarnya kepada pihak - pihak yang telah memberikan bantuan kepada penulis untuk
menyelesaikan makalah ini, khususnya kepada ibu Swelandiah Endah Pratiwi, S.Kom.,MT
selaku dosen mata kuliah keamanan komputer.
Penulis
Halaman
JUDUL ................................................................................................................ i
KATA PENGANTAR. ......................................................................................... ii
DAFTAR ISI ................................................................................................... ... iii
DAFTAR GAMBAR ....................................................................................... ... v
DAFTAR TABEL ........................ ...................................................................... vii
I PENDAHULUAN ........................................................................................ 1
1.1 Terminologi Kriptografi ................................................................... 1
1.2 Sejarah Kriptografi ........................................................................... 1
1.3 Tujuan Kriptografi .......................................................................... 2
Halaman
Gambar 1.1 Skema Umum Sebuah Penyandian Dalam Kriptografi ................ 1
Gambar 1.2 Contoh Scytale. .......................................................................... .. 2
Gambar 1.3 Skema Kriptografi Kunci Simetri ................................................. 5
Gambar 1.4 Skema Kriptografi Kunci Asimetri .......................................... .... 6
Gambar 1.5 Enkripsi AES ................................................................................ 9
Gambar 1.6 Konversi S-Box ........................................................................... 10
Gambar 1.7 ShiftRows() ............................................................................... ... 10
Gambar 1.8 MixColumns()............................................................................ .. 11
Gambar 1.9 Expand Key() ............................................................................... 12
Gambar 1.0 Deskripsi AES ............................................................................. 13
Gambar 1.11 InvShiftRows() ............................................................................ 14
Gambar 1.12 Skema Ekuivalen Deskripsi AES .............................................. .. 16
Gambar 1.13 RSA ............................................................................................. 17
Gambar 1.14 Diagram Alur Algoritma Konversi ASCII – Base64 ............... .... 25
Gambar 1.15 Flowchart Enkripsi ...................................................................... 26
Gambar 1.16 Flowchart Deskripsi ..................................................................... 26
Gambar 2.1 Algoritma Simetris.................................................................... ... 28
Gambar 2.2 Algoritma Asimetris .................................................................. .. 28
Gambar 2.3 Algoritma Hash ............................................................................ 29
Gambar 2.4 Konfigurasi PKA Server – File Server – Client .......................... 30
Gambar 2.5 Proses Di Client ........................................................................ ... 30
Gambar 2.6 Proses Di File Server ................................................................. .. 31
Gambar 2.7 Flowchart Program Dari Aplikasi2 .............................................. 32
Gambar 2.8 Struktur Navigasi Aplikasi2 ....................................................... 33
Gambar 2.9 Kotak Dialog New Java Application ........................................ ... 34
Gambar 2.10 Kotak Dialog New JFrame Form ............................................... .. 34 6
Gambar 2.11 Tampilan Menu Utama (Encrypter)............................................. 34
Gambar 2.12 Tampilan Decrypter ..................................................................... 35
Halaman
Tabel 1.1 Jumlah Putaran Operasi Pada AES .............................................................. 8
Tabel 1.2 Tabel Konstanta Rcon[ j]................................................................. 13
Tabel 1.3 Encoding Base64 ............................................................................. 23
Tabel 2.1 Cryptografi Namespace ................................................................... 27
Kemudian pada Abad ke-17, sejarah kriptografi pernah mencatat korban di Inggris.
Queen Mary of Scotland, dipancung setelah pesan rahasianya dari balik penjara (pesan
terenkripsi yang isinya rencana membunuh Ratu Elizabeth I) berhasil dipecahkan oleh
Thomas Phelippes, seorang pemecah kode.
Ilmu kriptografi juga digunakan pada perang dunia II, pemerintah Nazi Jerman
membuat mesin enkripsi yang dinamakan Engima. Kemudian tak lama berselang Engima
chiper berhasil dipecahkan oleh sekutu, keberhasilan memecahkan Engima disinyalir
sebagai faktor yang memperpendek perang dunia II.
2. Kriptografi Modern
Kriptografi modern adalah suatu metode kriptografi yang menggunakan algoritma
matematika dan suatu kunci. Algoritma yang digunakannya dibuka atau diketahui
oleh umum, sehingga tidak berstatus rahasia. Kekuatan kriptografi ini terletak pada
kerahasiaan kunci penyandian. Berdasarkan kunci penyandiannya, kriptografi
modern dibagi menjadi dua jenis, yaitu kriptografi kunci simetris dan kriptografi
kunci asimetri.
a. Kriptografi Kunci Simetri
Algoritma simetris disebut juga sebagai algoritma konvensional, yaitu
algoritma yang menggunakan kunci yang sama untuk proses enkripsi dan
deskripsinya. Keamanan algoritma simetris tergantung pada kuncinya.
Algoritma simetris sering juga disebut algoritma kunci rahasia, algoritma kunci
tunggal atau algoritma satu kunci. Dua kategori yang termasuk pada algoritma
simetris ini adalah algoritma block cipher dan stream cipher.
Block Cipher
Algoritma block clipher adalah algoritma yang masukan dan
keluarannya beruoa satu blok dan setiap bloknya terdiri dari banyak bit.
Beberapa mode enkripsi block chiper adalah: 11
Algoritma DES (Data Enkripsi Standard)
Algoritma DES telah diadopsi oleh NIST (National Institute of
Standard and Technology) sebagai standar pengolahan informasi
Stream Cipher
Stream cipher adalah chiper yang berasal dari hasil XOR antara bit
plaintext dengan setiap bit kuncinya. Stream cipher sangat rawan 12
terhadap attack (serangan) pembalikan bit. Beberapa model algoritma
dari stream cipher antara lain :
13
14
Garis besar dari algoritma AES (Rijndael) yang beroperasi pada blok 128 bit dengan kunci
128 bit adalah:
1. AddRoundKEy: melakukan XOR state awal (plainteks) dengan cipher key. Tahap
ini disebut juga initial round
2. Putaran sebanyak Nr – 1 kali : proses yang dilakukan pada setiap putaran.
- ByteSub: substitusi byte dengan menggunakan tabel substitusi (S-box).
- ShiftRow: pergeseran baris-baris array state secara wrapping.
- MixColumn: mengacak data si masing-masing kolom array state.
- AddRoundKey: melakukan XOR antara state sekarang dengan round key.
3. Final Round: proses untuk putaran terakhir.
- ByteSub
- ShiftRow
- AddRoundKey
17
1.5.1.1 SubBytes()
SubBytes() ini menggunakan matriks 16x16 yang disebut AES S-Box yang berisi
permutasi semua 256 kemungkinan dari kombinasi 8-bit. Setiap sel pada matriks berisi 1
1.5.1.2 ShiftRows()
Proses ShiftRows() ini adalah proses yang sangat sederhana. Baris ke-1 sampai
baris ke-3 dari State akan digeser ke kiri. Baris pertama tidak mengalami geser kiri.
ShiftRows() adalah sebagai berikut:
Sr,c = Sr, (c+shift(r,Nb) mod Nb untuk 0<r<4 dan 0 ≤ c < Nb,
di mana shift(r,Nb) tergantung ke pada nomor baris r. Nb adalah panjang blok (4). Jadi
shift(1,4)=1; shift(2,4)=2; shift(3,4)=3 .
1.5.1.3 MixColums()
Transformasi menggunakan MixColumns() adalah proses ketiga dalam satu Ronde
enkripsi AES. Di sini, kolom-kolom pada array state akan diperlakukan sebagai suatu 18
polinomial yang berada dalam GF (28) dan akan dikalikan dengan modulo x4 +1, dengan
suatu polinomial tertentu:
a(x) = {03}x3 + {01}x2 + {01}x + {02}
untuk 0 ≤ c < Nb
Sebagai hasil perkalian, maka 4 byte dalam setiap kolom pada State array akan berubah
sebagai berikut:
S‟0,c= ({02} S0,c) ({03} S1,c) S2,c S3,c
S‟1,c= S‟0,c ({02} S1,c) ({03} S2,c) S3,c
S‟2,c= S‟0,c S1,c ({02} S2,c) ({03} S3,c)
S‟3,c= ({03} S0,c) S1,c S2,c ({02} S3,c)
Gambar 1.8 akan memperlihatkan transformasi MixColumns():
1.5.1.4 AddRoundKey()
Pada proses AddRoundKey() maka 128 bit hasil State akan di-XOR-kan dengan
Kunci Ronde, yaitu kunci hasil dari proses Expand Key. Pada awal enkripsi, 128 bit
plaintext akan di-XOR-kan dengan 128 bit kunci yang asli. Kemudian 128 bit plaintext
akan mengalami proses-proses: SubBytes(), ShiftRows() dan MixColumns(). Pada proses
AddRoundKey(), 128 bit yang sudah melalui ketiga proses tersebut akan di-XOR-kan
dengan Kunci Ronde hasil Expand Key yang pertama. Hasil AddRoundKey() ini adalah
state pada Ronde 1. State 1 ini akan mengalami ketiga proses tersebut kembali. Pada
AddRoundKey() yang berikut, maka 128 bit yang sudah mengalami perubahan pada ketiga 19
proses tersebut kembali akan di-XOR-kan dengan Kunci Ronde hasil Expand Key kedua
dan seterusnya sampai Ronde 9.
21
1.5.2.1 InvShiftRows()
Proses ini adalah proses invers dari ShiftRows() pada enkripsi. Jika pada enkripsi
dilakukan geser kiri maka pada dekripsi atau InvShitfRows() maka yang dilakukan adalah
geser kanan. Baris pertama tidak mengalami geser kanan. Baris selanjutnya mengalami
geser kanan dengan transformasi sebagai berikut:
Sr,(c+shift(r,Nb)) mod Nb = S r,c untuk 0<r<4 dan 0≤c<Nb
1.5.2.2 InvSubBytes()
Ini adalah invers dari SubBytes() yang dilakukan pada enkripsi. Matriks yang
digunakan adalah invers dari S-Box yang digunakan pada enkripsi.
22
1.5.2.3 InvMixColumns()
InvMixColumns() adalah invers dari proses MixColumns() pada enkripsi.
InvMixColumns() bekerja pada kolom-per-kolom dari State array, dan memperlakukan
Untuk 0≤ c <Nb.
Dari hasil perkalian ini, 4 byte di dalam kolom akan diubah sebagai berikut :
S‟0,c= ({0E} S0,c) ({0B} S1,c) ({0D} S2,c ({09}S3,c)
S‟1,c= ({09}S‟0,c) ({0 E } S1,c) ({0B} S2,c) ({0D} S3,c)
S‟2,c= ({0D} S‟0,c) ({09}S1,c ({0E} S2,c) ({0B} S3,c)
S‟3,c= ({0B} S0,c) ({0D} S1,c ({0B} S2,c ({0E} S3,c)
1.5.2.4 InvAddRondeKey()
InvAddRoundKey() adalah sama dengan AddRoundKey().
24
Jika C adalah ciphertext dan P adalah plaintext (P<n), maka enkripsi dilakukan
sebagai berikut: C = Pe mod n ,
= 6a09e667
= bb67ae85
= 3c6ef372
= a54ff53a
= 510e527f
= 9b05688c
= 1f83d9ab
= 5be0cd19
SHA-256 digunakan untuk membuat suatu hash code dari suatu pesan M , yang
mempunyai panjang pesan l bit, di mana 0 ≤ l <264 . Algoritma SHA-256 menggunakan:
1. Message schedule yang terdiri dari 64 buah word. Satu word terdiri dari 32 bit.
Message schedule ini diberi label W0, W1, W3,...,W62, W63.
2. Delapan buah variabel yang didefinisikan sebagai variabel a,b, c, d, e, g dan h .
3. Suatu nilai hash yang terdiri dari delapan word. Setiap word diberi label ,
(0)
, , ,..., . Hash value ini akan berisi initial hash value H . Setelah
satu proses akan digantikan dengan hash value H (i) dan seterusnya diakhiri dengan
hash value yang final yaitu H (N) . 28
4. SHA-256 juga menggunakan dua buah word yaitu T1 dan T2 . Hasil akhir adalah
hash code yang mempunyai panjang 256 bit.
2. Variabel a,b, c, d, e, g dan h diberi nilai awal, dengan hash value ke- i berikut:
a=
b=
c=
d=
e=
f=
g=
h=
3. untuk t = 0 sampai 63:
{ T1 = h + + Ch (e,f,g) + + Wt
T2 = + Maj(a,b,c)
h=g
g=f
f=e
e = d + T1
d=c
c=b
b=a
a = T1 + T2 }
4. Hitung hash value ke- i H (i) :
=a+
29
=b+
=c+
=e+
=f+
=g+
=h+ }
Setelah menjalankan penghitungan pada butir 1 sampai dengan butir 4 sebanyak N
kali sampai dengan blok input yang terakhir, maka akan dihasilkan hash value atau
message digest yang panjangnya 256 bit dari pesan M.
Hash code tersebut adalah:
|| || || || || || ||
31
Pada simulasi algoritma Base64 terdiri dari dua tahap besar, yaitu tahap enkripsi
(gambar 1.15) dan tahap deskripsi (gambar 1.16). Tahap pertama adalah pemilihan teks
atau informasi (plainteks), yang akan diubah menjadi isi yang tidak dipahami melalui
proses enkripsi (encipher), proses tersebut menghasilkan dua file yaitu file enkripsi dan file
kunci (yang dinamakan enkripsi konvensional). File kunci digunakan pada saat
memperoleh kembali informasi yang asli (decipher).
33
34
Algoritma ini diterapkan dengan menggunakan pola yang bisa diperluas yang 35
terdiri dari dua tingkatan (inheritance). Tingkatan pertama adalah suatu abstract base class
seperti AsymmetricAlgorithm atau HashAlgorithm yang menentukan tipe algoritma.
38
39
11. File server akan melakukan pengkodean kembali dari base64 ke biner.
12. File Server akan melakukan dekripsi kunci rahasia AES menggunakan kunci privat.
40
42
44
(a). (b).
Gambar 2.16 (a) Encrypt File dan (b) Key File
3. Untuk melakukan decrypt, pada tampilan menu utama pilih menu Dekripsi.
Kemudian masukkan file yang sudah ter-encrypt beserta kuncinya, lalu tekan
tombol Proses Dekripsi , seperti yang diperlihatkan oleh gambar 2.16
45
Aplikasi ini dibuat dengan tujuan sebagai salah satu cara yang lebih baik bagi siapa
saja untuk mempermudah dalam mengamankan sendiri file text (berisi teks rahasia).
Dengan memilih file text yang akan di-encrypt, maka secara otomatis chipertext (text yang
sudah disandikan) akan terbentuk bersama dengan key file. Key file ini akan digunakan
lagi untuk mengembalikan ciphertext ke dalam bentuk teks semula. Aplikasi ini dirancang
sebagai Dekstop Applicatation.
46
1. Adya Rahmat Perdana, Metode Penyandian Pesan Dan Menjaga Integritas Data
Menggunakan Kriptografi Algoritma MD5, Universitas Sriwijaya, 2008.
(http://www.unsri.ac.id/upload/arsip/ADYA%20RAHMAT%20PERDANA%2008
053111025.doc )
3. Husmi Fahmi dan Haret Faidah, Aplikasi Kriptografi Modern Untuk Pengiriman
Data Teramankan, PTIK-BPPT, Jakarta, 2010.
(http://husnifahmi.com/papers/Aplikasi_Kriptografi_Modern.pdf )
5. Yudi Prayudi dan Idham Halik, Studi Dan Analisis Algoritma Rivest Code 6
(RC6) Dalam Enkripsi / Deskripsi Data, Universitas Islam Indonesia, Yogyakarta,
2005. (http://journal.uii.ac.id/index.php/Snati/article/viewFile/1402/1182 )
47