You are on page 1of 47

Universitas Gunadarma

KRIPTOGRAFI
MODERN
KEAMANAN KOMPUTER

AUTHOR:

Priskanta Br Tarigan (12107199)


1

11/2/2010

Universitas Gunadarma | Kriptografi Modern


KATA PENGANTAR

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.

Depok, 2 November 2010

Penulis

Universitas Gunadarma | Kriptografi Modern


DAFTAR ISI

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

1.4 Klasifikasi Kriptografi .................................................................... 3

1.5 Algoritma Advanced Encryption Standard(AES) ......................... 7

1.5.1 Enkripsi AES ...................................................................... 8

1.5.1.1 SubBytes() ......................................................... 9

1.5.1.2 ShiftRows() ......................................................... 10

1.5.1.3 MixColumn() ...................................................... 10

1.5.1.4 AddRoundKey() ................................................. 11

1.5.1.5 Expand Key() ...................................................... 12

1.5.2 Deskripsi AES .................................................................... 13

1.5.2.1 InvShiftRows() .................................................. 14

1.5.2.2 InvSubBytes () .................................................... 14


3
1.5.2.3 InvMixColumn() ................................................. 14

1.5.2.4 InvAddRoundKey() ............................................ 15

Universitas Gunadarma | Kriptografi Modern


1.5.3 Expand Key() ...................................................................... 15

1.6 Pembuatan Kunci Dan Kriptografi Asimetris Menggunakan RSA . 17

1.6.1 Enkripsi Dan Deskripsi RSA ............................................ 17

1.7 Pembuatan Message Digest Menggunakan SHA-256 .................... 18

1.7.1 Operasi SHA-256 ............................................................... 18

1.7.2 Fungsi Yang Digunakan ..................................................... 19

1.7.3 Konstanta Yang Digunakan ................................................ 19

1.7.4 Tahap Preprocessing ........................................................... 20

1.7.5 Penghitungan Hash Value S-256 ........................................ 21

1.8 Public Key Authority ...................................................................... 22

1.9 Algoritma Basis 64 (Base64) .......................................................... 23

II APLIKASI KRIPTOGRAFI ....................................................................... . 27


2.1 Aplikasi Kritografi Modern Untuk Pengiriman Data Teramankan 27

2.1.1 Kriptografi Di Dalam Aplikasi .NET ................................. 27

2.1.1.1 Cryptografi Namespace ..................................... 27

2.1.2 Algoritma Enkripsi ............................................................. 28

2.1.3 Rancangan Dan Implementasi ............................................ 29

2.2 Pembuatan Aplikasi Kritografi Algoritma Base64 Menggunakan

Java JDK 1.6 ................................................................................ ... 32

2.2.1 Implementasi Output ............................................................ 32 4

2.2.2 Tampilan Antar Pengguna (User Interface) .......................... 33

Universitas Gunadarma | Kriptografi Modern


2.2.2.1 Pembuatan Menu Utama .................................... 33

2.2.2.2 Pembuatan Tampilan About Encryption ............ 35

2.2.2.3 Build Program .................................................... 35

2.3 Cara Menggunakan Aplikasi .......................................................... 36

III KESIMPULAN ....................................................... .................................... 41


3.1 Aplikasi Kritografi Modern Untuk Pengiriman Data Teramankan. 38

3.2 Pembuatan Aplikasi Kritografi Algoritma Base64 Menggunakan

Java JDK 1.6 ................................................................................. . 38

DAFTAR PUSTAKA ......................................................................................... . 39

Universitas Gunadarma | Kriptografi Modern


DAFTAR GAMBAR

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

Universitas Gunadarma | Kriptografi Modern


Gambar 2.13 Kotak Dialog New JDialog Form ................................................ 35
Gambar 2.14 Tampilan About Encryption ........................................................ 36
Gambar 2.15 Enkripsi File Text ..................................................................... ... 36
Gambar 2.16 (a) Encrypt File dan (b) Key File .............................................. .. 37
Gambar 2.17 Dekripsi File Text ........................................................................ 37

Universitas Gunadarma | Kriptografi Modern


DAFTAR TABEL

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

Universitas Gunadarma | Kriptografi Modern


PENDAHULUAN

1.1 TERMINOLOGI KRIPTOGRAFI


Kriptografi (atau kriptologi) berasal dari bahasa Yunani κρσπτός, kryptos,
“tersembunyi, rahasia”; dan γράφω, gráphō, “Saya menulis”, atau-λογία,-logia, masing-
masing. Jadi, kriptografi adalah studi praktek dan menyembunyikan informasi. Manurut
Scheneier (1996), kriptografi adalah ilmu sekaligus seni untuk menjaga keamanan pesan
(message). Praktisi atau pengguna kriptografi disebut kriptografer.
Dalam ilmu kriptografi suatu pesan yang akan dirahasiakan atau disandikan disebut
dengan plaintext, sedangkan pesan yang telah disandikan sehingga tidak bermakna lagi
yang bertujuan agar pesan tidak dapat dibaca oleh pihak yang tidak berhak disebut
chipertext. Selain itu, dalam ilmu kriptografi juga terdapat istilah enkripsi dan deskripsi.
Enkripsi adalah proses menyandikan plaintext menjadi chipertext. Sedangkan proses
mengembalikan chipertext menjadi plaintext semula disebut sebagai Deskripsi.

Gambar 1.1 Skema Umum Sebuah Penyandian Dalam Kriptografi

1.2. SEJARAH KRIPTOGRAFI


Ilmu kriptografi disinyalir sudah ada sejak 4000 tahun yang lalu. Pada saat itu,
bangsa Mesir menggunakan hieroglyph yang tidak standar dalam menuliskan pesan.
Kemudian pada zaman Yunani kuno (400SM), kriptografi digunakan oleh tentara Sparta
untuk mengirimkan pesan militer dengan menggunakan alat yang bernama scytale.
Scytale merupakan suatu alat yang berbentuk pita panjang dari daun papyrus dan
ditambah dengan sebatang silinder. Pesan akan ditulis secara horizontal atau baris per
baris. Jika pita dilepaskan, maka huruf-huruf di dalamnya akan tersusun membentuk pesan
rahasia. Untuk membaca pesan tersebut, si penerima pesan harus melilitkan kembali pita
ke silinder yang diameternya harus sama dengan diameter silinder pengirim.
9
Ilmu kriptografi sejak dahulu digunakan di berbagai aspek kehidupan. Sebagai
contoh di India, dahulu kriptografi digunakan oleh lovers (pencinta) untuk berkomunikasi

Universitas Gunadarma | Kriptografi Modern


tanpa diketahui orang lain. Bukti ini ditemukan di dalam buku kama sutra yang
merekomendasikan wanita seharusnya mempelajari seni memahami tulisan chiper.

Gambar 1.2 Contoh Scytale

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.

1.3. TUJUAN KRIPTOGRAFI


Secara umum tujuan ilmu kriptografi diciptakan adalah untuk merahasiakan suatu
pesan agar tidak bisa dibaca oleh pihak yang tidak absah. Berdasarkan tujuan umum
tersebut, ada terdapat empat tujuan mendasar dari ilmu kriptografi yang digunakan dalam
bidang keamanan informasi, yaitu :
a. Kerahasiaan (confidentiality) adalah layanan yang digunakan untuk menjaga isi
informasi dari siapapun kecuali yang memiliki otoritas atau kunci rahasia untuk
membuka / mengupas informasi yang telah disandi.
b. Integritas data (data integrity)adalah berhubungan dengan penjagaan dari
perubahan data secara tidak sah. Untuk menjaga integritas data, sistem harus
memiliki kemampuan untuk mendeteksi manipulasi data oleh pihak-pihak yang
tidak berhak, antara lain penyisipan, penghapusan, dan pensubsitusian data lain
kedalam data yang sebenarnya.
c. Autentikasi (authentication)adalah berhubungan dengan identifikasi/pengenalan,
baik secara kesatuan sistem maupun informasi itu sendiri. Dua pihak yang saling
berkomunikasi harus saling memperkenalkan diri. Informasi yang dikirimkan
10
melalui kanal harus diautentikasi keaslian, isi datanya, waktu pengiriman, dan lain-
lain.

Universitas Gunadarma | Kriptografi Modern


d. Non-repudiasi (non-repudiation) adalah usaha untuk mencegah terjadinya
penyangkalan terhadap pengiriman/terciptanya suatu informasi oleh yang
mengirimkan/membuat.

1.4 KLASIFIKASI KRIPTOGRAFI


Dipandang dari segi era pengembangannya ilmu kriptografi dibagi menjadi dua,
yaitu kriptografi klasik dan kriptografi modern.
1. Kriptografi Klasik
Kriptografi klasik merupakan cara menyamarkan berita yang dilakukan dengan
cara manual, sebelum adanya komputer. Kekuatan kriptografi ini terletak pada
kerahasiaan algoritma yang digunakan. Jenis algoritma tersebut dinamakan
algoritma restricted. Namun, algoritma memiliki beberapa kelemahan, yaitu:
- Bersifat rahasia, sehingga kemampuan algoritma tidak pernah diuji oleh para
pakar kriptografi dan berimbas pada ketidak percayaan pengguna akan
ketangguhannya.
- Jika terjadi kebocoran rahasia algoritma, maka harus dibuat atau dikembangkan
algoritma baru. Akibatnya adalah terjadinya pemborosan biaya karena biaya
untuk pembuatan algoritma kriptografi baru sangat mahal.

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

Universitas Gunadarma | Kriptografi Modern


Federasi AS. Data dienkripsi dalam block-block 64 bit
menggunakan kunci 56 bit. Algoritma DES berasal dari
algoritma Lucifer buatan IBM. Pada tahun 1977, algoritma ini
ditawarkan kepada NIST dan menjadi DES. Namun, ada
terdapat dua masalah besar pada algoritma ini. Pertama, kunci
yang hanya 56 bit, sehingga sangat rawan terhadap serangan
brute force. Kedua, desain struktur internal DES dimana bagian
subsitusinya (S-box) masih dirahasiakan.
 Algoritma AES (Advanced Encrytion Standard)
Sekitar tahun1990-an, semakin banyak komputer yang dapat
menembus kunci DES karena terlalu pendeknya panjang kunci.
Dalam kriptografi modern, panjang kunci yang digunakan dalam
ukuran jumlah bit merupakan salah satu faktor yang sangat
penting. Hal ini dikarenakan penggunaan komputer yang sangat
intensif dalam dunia kriptografi. Untuk itu NIST mengadakan
sebuah kontes untuk mencari sebuah algoritma standard baru
untuk menggantikan DES. Pada bulan oktober 2000, Rijndael
dipilih menjadi pemenang kontes AES. Algoritma Rijndael
dipilih bukan karena yang paling aman, melainkan karena
keseimbangan antara keamanan dan fleksibilitas dalam berbagai
platform software dan hardware. Algoritma menyingkirkan
saingan terdekatnya yaitu Algoritma RC6 buatan RSA.
 Algoritma Blowfish
Blowfish merupakan block cipher 64-bit dengan panjang kunci
variabel. Algoritma ini terdiri dari dua bagian: key expansion dan
enkripsi data. Key expansion merubah kunci yang dapat
mencapai 448 bit menjadi beberapa array subkunci (subkey)
dengan total 4168 byte. Enkripsi data terdiri dari iterasi fungsi
sederhana sebanyak 16 kali. Setiap putaran terdiri dari
permutasi kunci-dependent dan substitusi kunci dan data
dependent. Semua operasi adalah penambahan dan XOR pada
variable 32-bit. Tambahan operasi lainnya hanyalah empat
penelusuran tabel (table lookup) array berindeks untuk setiap
putaran. Blowfish menggunakan sub kunci yang besar. Kunci ini
harus dihitung sebelum enkripsi atau dekripsi data.

 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 :

Universitas Gunadarma | Kriptografi Modern


 Algoritma OTP (One Time Pad)
Algoritma OTP memiliki teknik enkripsi yang sempurna, karena
kunci yang acak dan hanya digunakan untuk sekali pesan. Untuk
membangkitkan kunci OTP diperlukan pembangkit bilangan
acak yang tidaklah mudah. Algoritma ini ditemukan oleh Mayor
J Maughbone dan G Verman tahun 1917.
 Algoritma RC 4 (Rivest Code 4)
Algoritma RC4 ditemukan pada tahun 1987 oleh Ronald Rivest
dan menjadi simbol keamanan RSA. 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. RC4 tidak
dipatenkan oleh RSADSI, hanya saja tidak diperdagangkan
secara bebas (trade secret). Algoritma RC4 bekerja pada dua
tahap, menyetem susunan (key setup) dan pengkodean
(ciphering). Kunci susunan merupakan hal yang lebih awal dan
merupakan tahap yang paling sulit dari algoritma ini. Selama
menyetem susunan suatu N-bit (N menjadi panjangnya kunci),
kunci enkripsi digunakan untuk menghasilkan suatu variabel
enkripsi yang menggunakan dua array, state dan kunci, dan
jumlah N dari operasi pencampuran. Operasi pencampuran
terdiri dari menukar bytes, modulo operasi, dan rumusan lain.
Suatu modulo operasi adalah proses sisa dari suatu hasil divisi.
Sebagai contoh, 11/4 adalah 2 sisa 3; oleh karena itu 11 mod 4
sama dengan 3.

13

Gambar 1.3 Skema Kriptografi Kunci Simetri

Universitas Gunadarma | Kriptografi Modern


Pada kriptografi kunci simetri atau algoritma simetri, sebuah kunci dibutuhkan
untuk tiap pasangan komunikan. Hal ini untuk menjaga kerahasiaan pesan antar
komunikan tersebut. Untuk n komunikan, jumlah kunci yang dibutuhkan
adalah:
n (n-1)/2

Keunggulan kriptografi simetri ini terletak pada kecepatan proses enskripsi


maupun deskripsi, sehingga memiliki delay time yang minim. Hal tersebut
sangat menguntungkan karena kriptografi biasanya diterapkan di dalam satu
jaringan. Selain itu, kriptografi ini relatif tangguh terhadap serangan chosen-
plaintext karena kunci bersifat rahasia.
Kelemahan kriptografi ini terletak pada manajemen kunci yang sangat rumit.
Semakin banyak komunikan yang berkomunikasi, maka makin banyak
kebutuhan jumlah kunci. Akibatnya, suatu kerahasian akan sangat sulit diingat
dan dipertahankan. Kelemahan yang lainnya adalah terletak pada distribusi
kuncinya. Distribusi kuncinya tidak dapat dilakukan menggunakan saluran
media yang akan akan digunakan untuk komunikasi, karena sebenarnya jalur
tersebut yang harus diamankan.
b. Kriptografi Kunci Asimetri
Kriptografi kunci asimetrik atau algoritma asimetrik menggunakan kunci yang
berbeda (pasangan kunci) untuk keperluan proses enkripsi dan deskripsi. Kunci
yang digunakan dalam proses enkripsi disebut kunci publik (public key),
sedangkan kunci yang digunakan dalam proses deskripsi disebut sebagai kunci
privat.

14

Gambar 1.4 Skema Kriptografi Kunci Asimetri

Universitas Gunadarma | Kriptografi Modern


Beberapa algoritma asimetris adalah:
 Algoritma RSA
RSA tidak pernah dibuktikan aman tidaknya. Namun, RSA dianggap
aman hanya karena sulitnya pemfaktoran bilangan yang sangat besar.
Dalam pembangkitan kedua kunci, digunakan dua bilangan prima acak
yang sangat besar.
 Algoritma Diffie-Helman (DH)
Diffie Helman dianggap sebagai algoritma asimetrik yang pertama kali
ditemukan pada tahun 1976, meskipun NSA telah mengaku
menemukan algoritma asimetrik jauh-jauh hari sebelumnya. Algoritma
ini memperoleh keamanannya dari sulitnya menghitung logaritma
diskrit pada bilangan yang amat besar. Namun, algoritma ini hanya
dapat digunakan untuk pertukaran kunci (simetris) dan tidak dapat
digunakan untuk enkripsi/dekripsi maupun untuk tandat tangan digital.
 Algoritma Rabin
 Algoritma Knapsack
 Algoritma McEliece
 Algoritma LUC
 Algoritma El Gamal
Distribusi kunci pada kriptografi kunci asimetri sangat mudah, karena kunci
enkrispsi bersifat pubik atau umum maka distribusi kunci dapat dilakukan di
jalur mana saja bahkan jalur yang ingin diamankan sekalipun.
Kelemahan dari kriptografi ini adalah relatif lemah terhadap serangan
cryptanalist (seseorang yang melakukan usaha untuk memperoleh informasi
ataupun data yang telah dienkripsi tanpa mengetahui kuncinya), terutama
serangan chosen-plaintext. Chosen-plaintext merupakan plaint-text yang dipilih
cryptanalist, bersama dengan pasangan chipertext-nya. Selain kelemahan
tersebut, kriptografi ini jauh lebih lambat dari kriptografi simetri.
Keunggulan dar kriptografi ini terletak pada distribusi kunci yang sangat
mudah, manajemen kunci yang tidak rumit karena tiap kominikan hanya
membutuhkan sepasang kunci (enkripsi dan deskripsi).

1.5 ALGORITMA ADVANCED ENCRYPTION STANDARD (AES)


AES adalah kriptografi simetris berbasis blok cipher dengan input plaintext
sepanjang 128 bit dan kunci bervariasi 128, 192, dan 256 bit. Keluarannya berupa
15
ciphertext dengan panjang blok 128 bit. AES merupakan algoritma blok cipher dengan
menggunakan sistem permutasi dan substitusi (P-Box dan S-Box). AES dapat

Universitas Gunadarma | Kriptografi Modern


dikelompokkan menjadi 3 bagian berdasarkan panjang kunci, atau jumlah putaran. Hal
tersebut akan diperlihatkan dalam tabel 1.1.
Tabel 1.1 Jumlah Putaran Operasi Pada AES
Tipe Panjang Kunci Panjang Blok Input Jumlah putaran
AES-128 4 words (128 bit) 4 words (128 bit) 10
AES-192 6 words (192 bit) 4 words (128 bit) 12
AES-256 8 words (256 bit) 4 words 1(28 bit) 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

1.5.1 Enkripsi AES


Proses enkripsi AES digambarkan pada gambar 1.5 dengan penjelasan sebagai
berikut:
1. Pada awal enkripsi, input plaintext 128 bit akan disalinkan ke suatu array yang
diberi nama state array.
2. Proses enkripsi dimulai dengan suatu proses yang disebut AddRoundKey().
3. Untuk kunci cipher 128 bit, jumlah ronde adalah 10.
4. Proses selanjutnya adalah 9 ronde yang masing-masing ronde terdiri dari urut-
urutan empat macam proses yaitu SubBytes(), ShiftRows(), MixColumns() dan
AddRoundKey().
5. Diakhiri dengan ronde ke 10 yang hanya terdiri dari 3 proses yaitu SubBytes(),
ShiftRows() dan AddRoundKey(). 16
6. Dengan proses Expand Key atau perpanjangan kunci, kunci yang terdiri dari 4 word
(1 word terdiri dari 32 bit) akan diperpanjang menjadi suatu array yang terdiri dari
44 word yang masing-masing word terdiri dari 32 bit atau 4 byte. Kunci yang asli

Universitas Gunadarma | Kriptografi Modern


digunakan pada awal enkripsi, kemudian setiap 4 buah word hasil perpanjangan
kunci akan digunakan pada ronde 1 sampai dengan ronde 10.
7. Setiap Ronde terdiri dari empat proses, yang terdiri dari satu operasi permutasi dan
tiga operasi substitusi yaitu:
a. SubBytes(), yang menggunakan suatu AES S-Box untuk melakukan
substitusi byte-per-byte.
b. ShiftRows(), yang melakukan suatu permutasi sederhana dengan cara left
shift atau geser kiri.
c. MixColumns() melakukan suatu operasi aritmatika dalam GF (28 ).
d. AddRoundKey() melakukan operasi XOR antara hasil dari tiga proses
sebelumnya dengan 4 word kunci Ronde.

Gambar 1.5 Enkripsi AES

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

Universitas Gunadarma | Kriptografi Modern


byte (2 digit hexadecimal atau nibble). Setiap byte State akan ditransformasikan ke nilai
lain di dalam matriks. Gambar 1.6 akan memperlihatkan konversi oleh suatu S-Box:

Gambar 1.6 Konversi S-Box

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 .

Gambar 1.7 ShiftRows()

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}

Universitas Gunadarma | Kriptografi Modern


Kalau kita anggap bahwa s' (x) = a(x) s(x), maka:

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():

Gambar 1.8 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.

Universitas Gunadarma | Kriptografi Modern


Pada Ronde terakhir atau Ronde 10, maka hanya tiga proses yang dilakukan yaitu
SubBytes(), ShiftRows() dan AddRoundKey(). Hasilnya dari Ronde 10 adalah State 10. Ini
akan disalinkan ke array output sebagai ciphertext.

1.5.1.5 Expand Key


Expand Key adalah proses untuk membuat kunci yang panjangnya 128 bit atau 4
word menjadi kunci sebanyak 44 word. Empat (4) word pertama, yaitu bit-bit kunci yang
asli sebanyak 128 bit digunakan pada awal enkripsi. Kemudian 40 word berikutnya, hasil
dari Expand Key akan digunakan pada setiap Ronde. Ada 10 Ronde yang masing-masing
menggunakan 4 word.

Gambar 1.9 Expand Key()

1. Perpanjangan kunci (key expansion) dimulai dengan memasukkan 4 buah word,


yaitu 128 bit kunci yang asli ke 4 posisi pertama dari array 44 word yaitu w0 ,w1 ,w2
dan w3 .
2. Sisa array 40 word, dari w4 sampai dengan w43, akan diisi setiap kali dengan 4 buah
word baru.
3. Setiap word ke 4, yaitu w3, w7 , w11 dan seterusnya sampai dengan w39, akan
diproses oleh suatu fungsi.
4. Setiap word berikutnya akan diperoleh dengan cara:
- jika i  0 mod 4 , maka w[i] = w[i - 4] Å output fungsi G,
- jika i  0 mod 4 , maka w[i] = w[i - 4] Å w[i -1] 20
5. Proses ini akan terus berulang sampai diperoleh w43.

Cara kerja Fungsi G:

Universitas Gunadarma | Kriptografi Modern


Ada 3 proses pada fungsi G, yaitu:
1. Rotasi kiri (RotWord): Word ke-4 (w3) akan mengalami rotasi kiri sebanyak 1 byte,
jadi word yang terdiri dari: [k12, k13. k14, k15] akan menjadi w3 = [k13. k14, k15, k12].
2. Substitusi word (SubWord): Dilakukan byte substitution terhadap setiap byte pada
setiap word sesuaiAES S-Box, w3’ akan menjadi w3”.
3. Dilakukan operasi XOR antara w3”.dengan suatu nilai yaitu Rcon[j]. Rcon[j] adalah
suatu konstanta yang 3 byte kanannya adalah 0, dan byte terkiri adalah selalu tetap
sesuai tabel berikut:
Table 1.2 Tabel Konstanta Rcon[ j]
Ronde ke 1 2 3 4 5 6 7 8 9 10
Rcon[j] 01 02 04 08 10 20 40 80 1B 36

1.5.2 Deskripsi AES

21

Gambar 1.10 Deskripsi AES

Universitas Gunadarma | Kriptografi Modern


Urutan proses dekripsi AES tidak merupakan kebalikan dari enkripsi. Proses
Dekripsi AES ini digambarkan pada Gambar 4. Ada proses yang dipertukarkan urutannya,
walaupun penggunaan kuncinya sama. Jika urut-urutan proses pada enkripsi adalah
SubBytes(), Shift Rows() , Mix Columns() dan AddRoundKey() , maka uruturutan proses
pada dekripsi adalah InvShiftRows(), InvSubBytes(), InvAddRoundKey() dan
InvMixColumns(). Keempat proses tersebut adalah masing-masing invers dari empat proses
pada enkripsi tetapi urutan InvShiftRows() dan InvSubBytes()dipertukarkan dan
InvAddRoundKey() dan InvMixColumns() juga dipertukarkan.

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

r adalah baris (dari 0 smpai 3).


c adalah kolom (dari 0 sampai Nb, Nb = 4).

Gambar 1.11 InvShiftRows()

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

Universitas Gunadarma | Kriptografi Modern


setiap kolom sebagai suatu polinomial pangkat 3. Polinomial dianggap ada pada GF (28)
dikalikan dengan modulo x4 + 1, dengan polinomial tertentu a-1 (x) berikut:
a-1 (x) = {0B}x3 + {0D}x2 + {09}x + {0E}
Jika s‟(x) = a-1 (x) s(x), maka

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().

1.5.3 Equivalent Invers Cipher


Urutan proses pada dekripsi AES tidak tepat sama dengan enkripsi. Ada proses
yang dipertukarkan urutannya. Urutan proses pada dekripsi adalah InvShiftRows(),
InvSubBytes(), InvAddRoundKey() dan InvMixColumns(). Sedangkan uurutan pada
enkripsi adalah SubBytes(), ShiftRows(), MixColumns() dan AddRoundKey(). Ini
menimbulkan konsekuensi bahwa suatu aplikasi yang membutuhkan enkripsi dan dekripsi
harus menggunakan dua perangkat lunak atau peranti tegar (firmware) yang berbeda pada
satu aplikasi. Akhirnya dikembangkan suatu metode dekripsi AES yang urutannya sama
dengan enkripsi yaitu: InvSubBytes(), InvShift Rows(), InvMixColumns() dan
AddRoundKey().
Equivalent Inverse Cipher atau Ekuivalen Dekripsi AES bisa dilakukan karena :
1. Proses SubBytes() dan ShiftRows() bisa saling dipertukarkan. Jadi proses SubBytes()
yang diikuti dengan ShiftRows() sama dengan proses ShiftRows() yang diikuti 23
dengan proses SubBytes(). Begitu juga dengan inversnya, proses InvShiftRows(),
yang diikuti dengan proses InvSubBytes() sama dengan proses InvSubBytes() yang
diikuti dengan proses InvShiftRows(),

Universitas Gunadarma | Kriptografi Modern


2. Proses MixColumns() dan InvMixColumns() linier terhadap kolom input, yang
berarti: InvMixColumns(state XOR RondeKey) = InvMixColumns(state) XOR
InvMixColumns(RoundKey).
Kedua sifat tersebut memungkinkan urutan proses InvSubBytes() dan
InvShiftRows() untuk dipertukarkan. Juga urutan AddRoundKey() dan InvMixColumns()
bisa dipertukarkan, jika w4 sampai dengan w39 dari hasil Expand Key dimodifikasi
menggunakan InvMixColumns(). Equivalen Dekripsi AES dilakukan dengan menukarkan
urutan InvSubBytes() dan InvShiftRows() serta menukarkan urutan AddRoundKey() dan
InvMixColumns() setelah memodifikasi kunci untuk Ronde 1 sampai Ronde Nr -1
menggunakan InvMixColumns.
Equivalen dekripsi AES memberi struktur yang lebih efisien dari Inverse Cipher
yang sudah diterangkan sebelumnya.

24

Gambar 1.12 Skema Ekuivalen Deskripsi AES

Universitas Gunadarma | Kriptografi Modern


1.6 PEMBUATAN KUNCI DAN KRIPTOGRAFI ASIMETRIS
MENGGUNAKAN RSA
RSA adalah singkatan dari Rivest-Shamir-Adleman yaitu nama tiga profesor MIT
yang mengembangkannya. RSA adalah kriptografi asimetris yang paling banyak
digunakan. Kekuatan RSA dalam melakukan pengamanan data didapatkan dari sepasang
kunci yang diperoleh dari fungsi dua buah bilangan prima. Sepasang kunci ini adalah hasil
dari fungsi dua buah bilangan prima yang sangat besar, yang panjangnya 100, 200 digit
atau mungkin lebih besar.
Dari perhitungan matematika menggunakan kedua buah bilangan prima ini, akan
didapatkan kunci publik dan kunci privat. Sesudah digunakan untuk menghitung kunci,
kedua bilangan prima boleh dihapus, tetapi kerahasiaannya harus tetap dijaga. Ada dua
buah teori bilangan yang mempunyai peranan penting dalam kriptografi asimetris termasuk
RSA, yaitu Teorema Fermat dan Teorema Euler.
Cara membuat kunci RSA:
1. Pilih dua buah bilangan prima yang besar secara acak (random) , misalnya p dan q.
2. Kalikan ke dua bilangan tersebut, n = pq.
3. Hitung totient (n)=(p-1)(q-1).
4. Pilih suatu integer e, di mana 1<e<(n), dan e relatif prima terhadap m.
5. Hitung d, di mana de º1(modf (n)).
6. Bisa juga dikatakan d= e-1 (mod(n)).
7. Kunci publik KU{n,e}.
8. Kunci privat KR{n,d}.

Contoh Pembuatan Kunci


Untuk kemudahan, contoh ini dibuat dengan bilangan-bilangan kecil.
1. Pilih dua buah bilangan prima, misalnya p=61 dan q=53.
2. Hitung n = pq = 61 x 53 = 3233.
3. Hitung totient (n)= (p-1)(q-1) = 60 x 52 = 3120.
4. Pilih suatu integer e, di mana 1<e<f (n), dan e relatif prima terhadap (n) Kita pilih
e = 17.
5. Hitung d, dimana de º1(mod(n)). Setelah dihitung dengan algoritma extended
Euclid maka akan didapatkan d = 2753.
6. Didapatkan kunci publik KU{3233,17} dan kunci privat KR{3233,2753}.

1.6.1 Enkripsi dan Dekripsi RSA 25

 Jika C adalah ciphertext dan P adalah plaintext (P<n), maka enkripsi dilakukan
sebagai berikut: C = Pe mod n ,

Universitas Gunadarma | Kriptografi Modern


 dan dekripsi dilakukan sebagai berikut : P = Cd mod n
Jika kita melakukan enkripsi terhadap 123, maka

Gambar 1.13 RSA

1.7 PEMBUATAN MESSAGE DIGEST MENGGUNAKAN SHA-256


Tanda tangan elektronik atau digital signature menjadi dasar untuk banyak tujuan
dari kriptografi modern misalnya non-repudiation, data origin authentication, dan
identification. Salah satu cara untuk melakukan digital signature adalah dengan
menggunakan algoritma hash. Pesan yang akan dikirimkan akan menjadi input dari
algoritma hash dan akan menghasilkan suatu nilai yang dikenal sebagai message digest
atau hash code.
Hash code ini akan dienkripsi menggunakan kunci privat, dan hasil enkripsi ini
yang akan menjadi digital signature seseorang. Algoritma hash ini menggunakan pesan
yang panjangnya bervariasi (M) sebagai input dan akan menghasilkan output yaitu hash
code h, di mana h adalah fungsi dari H(M). Algoritma hash tidak menggunakan kunci
seperti pada enkripsi/dekripsi, dan hanya menggunakan pesan sebagai input. Algoritma
hash tidak mengenal algoritma invers, jadi tidak ada cara untuk mengembalikan hash code
ke dalam bentuk inputnya kembali [FIPS02]. Hash code h dibuat dengan menggunakan
suatu fungsi H yang mengubah input pesan M sebagai berikut :
h = H(M)
Fungsi hash yang berkembang dan dianggap cukup handal adalah dari kelompok
SHA (Secure Hash Algorithm) yang dipublikasikan melalui FIPS PUB 180. Sekarang,
algoritma ini dikenal sebagai SHA-0. Kemudian muncul SHA-1 yang dipublikasikan pada
tahun1995 melalui FIPS PUB 180-1. Pada tahun 2002, NIST melengkapi dengan
mempublikasikan FIPS 180-2. Publikasi ini menambahkan tiga buah algoritma hash dalam
kelompok SHA yaitu SHA-256, SHA-384 dan SHA-512, yang mempunyai hash code yang
lebih panjang dari SHA-1. SHA-256, SHA-384 dan SHA-512 berturut-turut memiliki
panjang hash code 256, 384 dan 512 bit. Aplikasi dalam paper ini menggunakan SHA-256.

1.7.1. Operasi SHA-256


Setiap algoritma di dalam SHA menggunakan 2 tahap yaitu tahap preprocessing 26
dan tahap penghitungan hash code. Tahap preprocessing melakukan penambahan bit-bit
pada pesan sehingga membentuk suatu input text, pengelompokkan input dalam blok-blok
yang terdiri dari m bit, dan pemberian nilai awal (initial value) untuk digunakan dalam

Universitas Gunadarma | Kriptografi Modern


penghitungan hash. Penghitungan hash akan membuat suatu skedul pesan (message
schedule) dari input dan menggunakan skedul pesan tersebut bersamasama dengan
konstanta, dan word di dalam suatu fungsi, untuk secara berulang menghasilkan suatu nilai
hash. Nilai hash terakhir yang dihasilkan dari perulangan fungsi adalah hash code yang
dihasilkan.

1.7.2 Fungsi Yang Digunakan


Algoritma SHA-256 menggunakan fungsi Ch(x, y, z) dan fungsi Maj(x, y, z). SHA-
256 menggunakan enam buah fungsi logik di mana setiap fungsi bekerja pada suatu word
yang terdiri dari 32 bit dan direpresentasikan sebagai x, y dan z . Hasil dari setiap fungsi
adalah juga suatu word 32 bit.
Keenam fungsi tersebut adalah:
Ch(x, y, z) = (x  y) (x  z)
Maj(x, y, z) = (x  y) (x  z) (y  z)

= ROTR2 (x) ROTR13 (x) ROTR22 (x)

= ROTR6 (x) ROTR11 (x) ROTR25 (x)

= ROTR7 (x) ROTR18 (x) SHR3 (x)

= ROTR17 (x) ROTR19 (x) SHR10 (x)

1.7.3 Konstanta Yang Digunakan


SHA-256 menggunakan 64 buah konstanta yang adalah word yang terdiri dari 32
bit. Di dalam hexadesimal, word-word ini adalah:
428a2f98 71374491 b5c0fbcf e9b5dba5 3956c25b
59f111f1 923f82a4 ab1c5ed5 d807aa98 12835b01
243185be 550c7dc3 72be5d74 80deb1fe 9bdc06a7
c19bf174 e49b69c1 efbe4786 0fc19dc6 240ca1cc
2de92c6f 4a7484aa 5cb0a9dc 76f988da 983e5152
a831c66d b00327c8 bf597fc7 c6e00bf3 d5a79147
06ca6351 14292967 27b70a85 2e1b2138 4d2c6dfc
53380d13 650a7354 766a0abb 81c2c92e 92722c85
a2bfe8a1 a81a664b c24b8b70 c76c51a3 d192e819
d6990624 f40e3585 106aa070 19a4c116 1e376c08
27
2748774c 34b0bcb5 391c0cb3 4ed8aa4a 5b9cca4f
682e6ff3 748f82ee 78a5636f 84c87814 8cc70208
90befffa a4506ceb bef9a3f7 c67178f2

Universitas Gunadarma | Kriptografi Modern


1.7.4 Tahap Preprocessing
Panjang dari pesan yang akan jadi input fungsi hash harus kelipatan 512. Jika
panjang pesan adalah l bit, maka setelah bit ke l , tambahkan dengan sebuah bit „1‟ ,
kemudian sisanya tambahkan bit „0‟ sebanyak k bit sehingga memenuhi l +1+ k  448mod
512 . Kemudian tambahkan lagi 64 bit yang merepresentaskan panjang pesan l
direpresentasikan dalam 64 bit. Jadi panjang dari input akan menjadi tepat kelipatan 512.
Input akan dikelompokan dalam N buah blok yang terdiri dari 512 bit. Blok-blok tersebut
adalah M (1) ,M (2) ,M (3),.......,M (N ) .
Blok 512 bit bisa juga dinyatakan sebagai 16 buah word dan tiap word terdiri dari
32 bit, maka 32 bit pertama dalam blok ke- i bisa dituliskan sebagai , 32 bit kedua bisa
dituliskan sampai dengan 32 bit terakhir sebagai . Sebelum penghitungan hash
(0)
dilakukan, maka harus diberikan Initial Hash Value, H .
Pada SHA-256, digunakan delapan word sebagai berikut:

= 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.

Universitas Gunadarma | Kriptografi Modern


1.7.5 Penghitungan Hash Value S-256
SHA-256 menggunakan fungsi dan konstanta yang sudah disebutkan sebelumnya.
Penjumlahan + adalah penjumlahan modulo 232 . Setelah tahap preprocessing selesai,
maka setiap blok pesan M (1) ,M (2) ,M (3), ... , M(N) akan diproses secara berurutan
menggunakan langkah berikut:
Untuk i = 1 sampai N :
{
1. Siapkan message schedule {Wt}:

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+

Universitas Gunadarma | Kriptografi Modern


=d+

=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:

|| || || || || || ||

1.8 PUBLIC KEY AUTHORITY


Baik pada kriptografi simetris maupun kriptografi asimetris ada penggunaan kunci
yang harus diketahui oleh kedua belah pihak yang saling berkomunikasi. Pada kriptografi
simetris, ada sebuah kunci rahasia yang digunakan untuk enkripsi dan dekripsi, dan harus
diketahui oleh kedua pihak. Pada kriptografi asimetris, ada kunci privat yang dipegang
hanya oleh pemiliknya dan kunci publik yang harus diketahui oleh pasangannya. Key
Management atau manajemen kunci dan Key Exchange atau Pertukaran Kunci adalah cara
bagaimana mengatur agar kunci itu bisa sampai ke pihak penerima dengan aman.
Key exchange atau pertukaran kunci diperlukan untuk mempublikasikan atau
mendistribusikan kunci rahasia pada kriptografi simetris dan kunci publik pada kriptografi
asimetris ke pada pihak yang memang membutuhkan menggunakan kunci tersebut.
Ada beberapa macam cara mempublikasikan kunci publik :
 mempublikasikan kunci publik secara terbuka
 mempublikasikan kunci publik melalui directory tertentu
 menggunakan public key authority
 menggunakan public key certificate
Aplikasi ini menggunakan Public Key Authority Server sebagai cara pertukaran
kunci. Semua kunci publik disimpan di suatu file atau directory dan dikelola oleh seorang
penanggungjawab atau seorang pengelola. Permintaan seseorang untuk mengetahui kunci
publik seseorang dilakukan dengan menggunakan kunci publik dari pengelola directory.
Peminta mengirimkan permohonan yang dienkripsi dengan menggunakan kunci publik 30
pengelola kepada pengelola. Pengelola akan melakukan dekripsi permohohon dengan
menggunakan kunci privatnya sendiri. Informasi yang dibutuhkan yaitu kunci publik yang
diminta beserta informasi lain yang dibutuhkan akan dikirimkan oleh pengelola dengan

Universitas Gunadarma | Kriptografi Modern


menggunakan kunci privat. Pemohon akan bisa membaca dengan menggunakan kunci
publik pengelola. Jelas ini lebih aman karena sudah ada peranan kriptografi yaitu adanya
enkripsi dan dekripsi.
Pada aplikasi ini, sebuah komputer dijadikan Public Key Authority Server yaitu tempat
komputer lain menyimpan kunci publiknya. Lihat Gambar 12.

1.9 ALGORITMA BASIS 64 (BASE64)


Algoritma Base64 merupakan algoritma yang menggunakan salah satu konsep
algoritma enkripsi modern yaitu algoritma Block Cipher yang yang berupa operasi pada
mode bit namun algortma Base64 ini lebih mudah dalam pengimplementasiannya dari
algoritma-algoritma yang lainnya.
Pengkodean atau algoritma base 64 adalah suatu cara pengkodean untuk bisa
mengirimkan suatu file melalui Internet mail. Mail hanya didesain untuk mengirimkan
format ASCII sehingga semua macam data harus bisa dikonversi menjadi format ASCII.
Base64 adalah suatu cara untuk mengkonversi segala macam format data menjadi ASCII.
Dasarnya adalah mengubah pengkodean 8 bit menjadi pengkodean 6 bit. 3 buah karakter
yang tersusun dari 8 bit diubah menjadi 4 buah karakter yang tersusun dari 6 bit, dan
dikirimkan melalui Internet dengan pengkodean 6 bit.
Pada algoritma ini, rangkaian bit-bit plainteks dibagi menjadi blok-blok bit dengan
panjang yang sama, biasanya 64 bit yang direpresentasikan dengan karakter ASCII.
Base64 menggunakan karakter A – Z, a – z dan 0 – 9 untuk 62 nilai pertama, sedangkan 2
nilai terakhir digunakan symbol (+ dan /).
Standar yang penulis gunakan adalah MIME (Multipurpose Internet Mail
Extensions) / RFC 1521. RFC ini menegaskan sebuah standar untuk implementasi Base64
terhadap data binary dan melampirkan sebuah karakter padding “=”, jika terdapat
kekurangan pada byte. Dalam streaming base64, spesifikasi mengharuskan setiap baris
menjadi paling banyak 76 basis-64 karakter.
Tabel 1.3 Encoding Base64

31

Universitas Gunadarma | Kriptografi Modern


Di bawah ini merupakan sebuah contoh mudah mengkonversi kata “nuf” (desimal
110, 117, 102) menjadi dasar Notasi 64.
'01101110 01110101 01100110'
Ini 8-bit string dibagi ke dalam dua set 6 bit dan 4 blok.
'011011 100111 010101 100110’
Untuk mengkonversi 6-bit angka, maka rubah lagi ke dalam bentuk decimal yang
didapatkan 27, 39, 20, dan 38 yang jika dilihat pada dasar abjad-64 pada tabel diatas, maka
didapatkan alphabet “bNUm”. Namun jika string biner tidak tepat dibagi dalam 6-bit dan
urutan biner tidak merupakan ukuran 3 byte, maka Base64 mengaturya dengan
menambahkan padding pada bit terakhir. Sebagai contoh kata “nufus”, maka akan dipisah
menjadi “nuf” dan “us+1byte”.
Dalam kasus ini, jika diberikan contoh di mana satu byte yang tersisa, maka perlu
tambahan dua byte pad dengan semua zeros sampai akhir urutan biner. Kemudian satu byte
tersebut dapat diwakili dengan satu byte dari 64 karakter dari Base64 diikuti oleh dua
karakter padding. Padding karakter yang telah ditentukan adalah '='.
Mari mempertimbangkan contoh string “s” dengan decimal 115 berikut :
'01110011'
Contoh pad single-byte dengan dua byte dari angka nol.
'00000001 00000000 00000000 '
Sekarang biner tersebut di set urutan enam byte.
'000000 ''010000''000000 ''000000'
Setelah di set, maka ditemukan karakter berdasarkan Base64 adalah “AQ==”. Begitu pula
pada penambahan-penambahan padding lainnya.
Selanjutnya, contoh proses dekripsi. Contoh “bNUm” diatas, lalu dirubah menjadi
angka Index 27, 39, 20, dan 38. Kemudian ubah menjadi 6-bit biner.
'011011 100111 010101 100110’
Set 6-bit, diubah kedalam 8-bit string.
'01101110 01110101 01100110'
Maka akan dihasilkan angka desimal 110, 117, dan 102 dimana karakterkarakter
semulanya adalah “nuf” jika dilihat pada abel ASCII. Berdasarkan contoh-contoh yang
dapat dilihat, maka algoritma umum proses encoding dari ASCII ke Base64 dapat
digambarkan atau diperlihatkan seperti gambar 1.14.
32
Algoritma kriptografi Base64 ini sebenarnya menggunakan algoritma kunci
simetris atau disebut juga algoritma kriptografi konvensional, yaitu algoritma yang
menggunakan kunci untuk proses enkripsi sama dengan kunci untuk proses dekripsi.

Universitas Gunadarma | Kriptografi Modern


Gambar 1.14 Diagram Alur Algoritma Konversi ASCII – Base64

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

Universitas Gunadarma | Kriptografi Modern


Gambar 1.15 Flowchart Enkripsi

Gambar 1.16 Flowchart Dekripsi

34

Universitas Gunadarma | Kriptografi Modern


APLIKASI KRIPTOGRAFI

2.1 APLIKASI KRIPPTOGRAFI MODERN UNTUK PENGIRIMAN DATA


TERAMANAKAN
2.1.1 Kriptografi Di Dalam Aplikasi .NET
Perkembangan dan penggunaan yang luas dari aplikasi e-commerce saat ini
menuntut suatu algoritma pengamanan untuk melindungi keamanan dan kerahasiaan data
yang digunakan. Microsoft telah memperkenalkan sistem pengamanan data pertama kali
pada tahun 1996 dengan nama Cryptography API (Crypto API).
Kebutuhan pengamanan data yang terus berkembang mendorong Microsoft
memperkenalkan sistem layanan kriptografi seperti System.Security.Cryptography
namespace dari Microsoft .NET common langauge runtime (CLR). Cryptography
Namespace ini memungkinkan suatu program mengakses suatu layanan kriptografi
sehingga bisa melengkapi suatu aplikasi dengan kemampuan enkripsi dekripsi data,
menjamin integritas data, melakukan digital signature dan certificates.

2.1.1.1 Cryptography Namespace


Fungsi utama dari Cryptography namespace ini adalah untuk menyediakan classes
yang menerapkan algoritma pengamanan data seperti enkripsi dan pembuatan hash. Pada
hirarkinya yang tertinggi, Cryptography Namespace bisa dikelompokkan dalam empat
bagian.
.Tabel 2.1 Cryptografi Namespace

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.

Universitas Gunadarma | Kriptografi Modern


Tingkatan kedua diambil dari tingkatan di atasnya dan melengkapi dengan public interface
untuk algoritma tersebut.

2.1. 2 Algoritma Enkripsi


Salah satu algoritma enkripsi yang ada pada Cryptography Namespace adalah
symmetric cryptographic algorithm atau algoritma kriptografi simetris. Dinamakan
demikian karena digunakan satu kunci yang sama untuk enkripsi dan dekripsi. Symmetric
cryptographic algorithm ini mencakup Data Encryption Standard (DES), RC2, Rijndael
dan Triple Data Encryption Standard (TripleDES).

Gambar 2.1 Algoritma Simetris


Tipe algoritma pengamanan data kedua dikenal sebagai asymmetric algorithm atau
algoritma asimetris. Algoritma ini mencakup Digital Signature Algorithm (DSA) dan RSA
yang mendapatkan nama dari pengembangnya yaitu Ron Rivest, Adi Shamir dan Len
Adleman. Asymmetric algorithm menggunakan sepasang kunci, yaitu sebuah kunci privat
dan sebuah kunci publik.

Gambar 2.2 Algoritma Asimetris


36
Tipe algoritma pengamanan data ketiga adalah hash algorithm. Algoritma hash ini
menghitung suatu nilai yang dikenal sebagai hash code atau digest dari data yang akan
dikirimkan. Hash code ini akan dikirimkan bersamaan dengan data. Pada penerima, hash

Universitas Gunadarma | Kriptografi Modern


code ini bisa dihitung lagi. Jika kedua hash code ini sama berarti tidak ada perubahan data,
jika berbeda berarti ada perubahan data. Algoritma hash ini juga digunakan sebagai dasar
untuk pembuatan digital signature.
Cryptography namespace berisi class yang diberi nama HashAlgorithm yang berisi
algoritma MD5, SHA1, SHA256, SHA384 dan SHA512. Algoritma MD5 menghasilkan
hash code sepanjang 128 bit dan SHA1 menghasilkan hash code sepanjang 160 bit.
Algoritma yang lain menghasilkan hash code yang mempunyai panjang sesuai namanya.
Bertambah panjang suatu hash code maka bertambah aman algoritma tersebut dan akan
lebih kebal terhadap bruceforce attack.

Gambar 2.3 Algoritma Hash

2.1.3 Rancangan dan Implementasi


Sebagai ilustrasi penggunaan kriptografi modern di kehidupan nyata, maka tulisan
ini akan dilengkapi dengan aplikasi untuk mengirimkan suatu file melalui jaringan yang
mencakup penggunaan berbagai macam kriptografi. Ada penggunaan kriptografi simetris
yaitu AES, pembuatan kunci privat dan kunci publik menggunakan RSA, kriptografi
asimetris yaitu RSA, penggunaan digital signature dan pembuatan hash code menggunakan
SHA-256. Pertukaran kunci dilakukan dengan membuat salah satu komputer menjadi
Public Key Authority Server.
Pada gambar 2.3, ada 3 buah komputer yang akan saling berkomunikasi. Komputer 37
1 adalah sebuah Public Key Authority Server (PKA server). Seperti sudah diterangkan
sebelumnya, PKA Server menyimpan semua kunci publik agar bisa didapatkan oleh pihak
yang ingin saling berkomunikasi. Client akan mengirimkan suatu file ke file server. File ini

Universitas Gunadarma | Kriptografi Modern


akan dienkripsi dengan enkripsi AES, ditandatangani dengan SHA-256 dan RSA. Kunci
publik yang dibutuhkan akan diperoleh dari PKA Server. Di file server, identitas pengirim
dan keutuhan file akan diperiksa. Kemudian akan ada konfirmasi dari File Server ke
Client.

Gambar 2.4 Konfigurasi PKA Server – File Server – Client

Urutan aplikasi adalah sebagai berikut:


1. Masing-masing komputer yaitu File Server, Client dan PKA Server akan membuat
sepasang kunci publik dan privat menggunakan algoritma RSA.
2. Agar bisa terdistribusi ke pada pihak yang memerlukan, maka File Server dan
Client akan menyimpan kunci publik masing-masing di PKA Server.

38

Gambar 2.5 Proses Di Client

Universitas Gunadarma | Kriptografi Modern


3. Client akan mengirimkan suatu file ke File Server. Dengan menggunakan algoritma
SHA-256, client akan membuat message digest atau hash code dari plaintext.
4. Client akan mengenkripsi hash code menggunakan kunci privat miliknya untuk
menghasilkan digital signature. Digital signature ini akan disambungkan pada file
yang akan dikirimkan.
5. Client akan membuat kunci rahasia untuk melakukan enkripsi file menggunakan
algoritma AES.
6. Client meminta kunci publik File Server dari PKA server dan kemudian PKA
server akan mengirimkan kunci publik yang dienkripsi RSA menggunakan kunci
privat PKA Server. Client akan membuka menggunakan kunci publik PKA Server.
Server akan membuka menggunakan kunci publik PKA Server.
7. Kunci rahasia AES pada butir 5 akan dienkripsi menggunakan algoritma RSA. Ini
berarti kunci rahasia ini dienkripsi menggunakan kunci publik milik File Server
yang didapatkan dari PKA Server.
8. Kunci rahasia yang sudah dienkripsi padabutir 6 akan disambungkan dengan file
yang sudah dienkripsi pada butir 5.
9. File pada butir 7 akan diubah ke dalam pengkodean base64.
10. File dikirimkan ke File server.

Gambar 2.6 Proses Di File Server

39
11. File server akan melakukan pengkodean kembali dari base64 ke biner.
12. File Server akan melakukan dekripsi kunci rahasia AES menggunakan kunci privat.

Universitas Gunadarma | Kriptografi Modern


13. Kunci rahasia hasil dekripsi butir 11 digunakan untuk dekripsi file dengan
algoritma AES.
14. File Server meminta kunci publik Client dari PKA server. PKA server akan
mengirimkan kunci publik yang dienkripsi RSA menggunakan kunci privat PKA
Server. File server akan membuka menggunakan kunci publik PKA Server.
15. Hasil dari butir 13 adalah plaintext disambung dengan digital signature client. File
Server akan melakukan dekripsi digital signature menggunakan kunci publik milik
Client.Hasilnya adalah hash code(*).
16. Dari plaintext yang diterima dibuatkan hash code menggunakan SHA-256.
17. Hash code yang dihitung oleh file server dan hash code(*) yang diterima dari client
diperbandingkan. Jika keduanya sama, maka data integrity dan authentication
terpenuhi. Artinya file tidak mengalami perubahan dan identitas pengirim
terpenuhi. File Server akan mengirimkan pernyataan kepada client bahwa file telah
diterima dengan baik, sebaliknya jika hash code dan hash code(*) tidak sama, maka
file ini akan ditolak. Ada 2 kemungkinannya, terjadi perubahan pada isi file atau
pengirim tidak teridentifikasi.

2.2 PEMBUATAN APLIKASI KRIPTOGRAFI ALGORITMA BASE64


MENGGUNAKAN JAVA JDK 1.6
2.2.1 Implementasi Output
Implementasi perancangan user interface bertujuan mengimplementasikan semua
hasil perancangan kedalam dunia nyata, agar dapat dipergunakan oleh user. Implementasi
ini menggunakan software Netbeans 6.0 yang berbasis Java. Bagan alir dari program akan
diperlihatkan oleh gambar 2.6 dan struktur navigasi dari aplikasi ini akan digambarkan
seperti gambar 2.7.

40

Gambar 2.7 Flowchart Program Dari Aplikasi2

Universitas Gunadarma | Kriptografi Modern


Gambar 2.8 Struktur Navigasi Aplikasi2

2.2.2 Tampilan Antarmuka Pengguna (User Interface)


2.2.2.1 Pembuatan Menu Utama
Langkah pembuatan tampilan aplikasi ini menggunakan IDE Netbeans 6.0.
langkah-langkahnya adalah sebagai berikut :
1. Jalankan Netbeans 6.0
2. Pilih Menu File kemudian New Project setelah itu akan keluar Jendela New Project
3. Pada kotak Categories pilih Java dan pada kotak Projects pilih Java Aplication dan
klik Next.
4. Ubah nama Project Name sesuai yang diinginkan. Contoh : enkripsi.
5. Pilih lokasi yang diinginkan untuk menyimpan project. Contoh : C:\My Document
and setting\Nufus_Cute\Desktop \enkripsi.
6. Centang pada label Set As Main Project dan beri nama kelas pada Create main
class. Contoh : EnkripsiApp. Setelah itu klik Finish, seperti pada gambar 2.8 :
Sampai pada tahap diatas berarti satu project telah tercipta dan untuk selanjutnya
tinggal membuat class atau form. Langkah-langkah untuk membuat class atau form
tersebut adalah sebagai berikut: 41
1. Klik kanan pada node enkripsi pilih New dan pilih JFrame Form.
2. Pada jendela New JFrame Form, isikan nama class untuk Frame pada textbox class
name misalnya EnkripsiView.

Universitas Gunadarma | Kriptografi Modern


Gambar 2.9 Kotak Dialog New Java Application
3. Isi juga package yang kita inginkan pada textbox package misalnya enkripsi
kemudian klik finish, seperti yang ditampilkan pada gambar 2.9 :

Gambar 2.10 Kotak Dialog New JFrame Form


4. Tambahkan komponen - komponen yang dibutuhkan, dan kemudian atur tampilan
sedemikian rupa sehingga tampilan akan terlihat seperti gambar 2.10.

42

Gambar 2.11 Tampilan Menu Utama (Encrypter)

Universitas Gunadarma | Kriptografi Modern


Encrypter file adalah tampilan yang muncul pertama kali saat menjalankan program
setelah memilih menu Enkripsi. Tampilan decrypter juga terdapat pada menu utama
setelah memilih menu dekripsi. Hasil dari tampilan decrypter dapat dilihat pada gambar
2.11.

Gambar 2.12 Tampilan Decrypter

2.2.2.2 Pembuatan Tampilan About Encryption


1. Buatlah sebuah jDialog, lalu ubah Class Name menjadi EnkripsiAboutBox, atur
package-nya, seperti yang terlihat pada gambar 2.12.

Gambar 2.13 Kotak Dialog New JDialog Form


2. Tambahkan komponen - komponen yang dibutuhkan lalu ubah nama form tersebut
menjadi About Encryption. Kemudian atur tampilan sedemikian rupa sehingga
dapat terlihat seperti pada gambar 2.13.
43

2.2.2.3 Build Program


Langkah-langkah untuk mem-build program ini adalah sebagai berikut :

Universitas Gunadarma | Kriptografi Modern


1. Sorot project Enkripsi.
2. Klik kanan dan pilih Build. Hasil build akan tersimpan pada lokasi penyimpanan
poject, yaitu pada folder dist.
3. Aplikasi yang dihasilkan bentuk file yang bertipe JAR. Untuk menjalankan aplikasi
ini, klik 2 kali pada file JAR dalam folder dist dan aplikasi akan dijalankan sama
seperti saat me-running program di Netbeans.

Gambar 2.14 Tampilan About Encryption

2.3 Cara Menggunakan Aplikasi


Aplikasi ini dibuat hanya untukm melakukan encrypt dan decrypt terhadap file text,
sehingga pesan tersebut dapat sampai ke tangan orang yang tepat dan dapat dipergunakan
sesesuai fungsinya. Berikut ini adalah cara penggunaan dari aplikasi ini, yaitu :
1. Jalankan aplikasi yang telah dibuild pada folder dist.
2. Setelah muncul tampilan menu utama (Encrypt), lalu pilih menu Enkripsi dan
masukkan file text yang akan di-encrypt kamudian tekan tombol Proses Enkrpsi,
seperti yang terlihat pada gambar 2.14.

44

Gambar 2.15 Enkripsi File Text

Universitas Gunadarma | Kriptografi Modern


Maka akan dihasilkan file text yang telah terenkripi beserta file kuncinya.

(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

Gambar 2.17 Dekripsi File Text


4. Hasilnya akan terlihat pada lokasi asal file tersebut, berupa file yang telah di-
decrypt yang berisi file semula.

45

Universitas Gunadarma | Kriptografi Modern


KESIMPULAN

3.1 APLIKASI KRIPTOGRAFI MODERN UNTUK PENGIRIMAN DATA


TERAMANKAN
Isi dari makalah ini telah menjelaskan bahwa teknik kriptografi modern dapat
menyediakan layanan dasar keamanan informasi. Layanan ini menggunakan kriptografi
simetris (Advanced Encryption Standard (AES)) dan kriptografi asimetris (RSA) serta
message digest SHA-256. Dengan adanya dukungan pengelolaan kunci, ketiga teknik
tersebut dapat diterapkan pada bahasa pemrograman .NET untuk membangun aplikasi
pengiriman data teramankan.

3.2 PEMBUATAN APLIKASI KRIPTOGRAFI ALGORITMA BASE 64


MENGGUNAKAN JAVA JDK 1.6

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

Universitas Gunadarma | Kriptografi Modern


DAFTAR PUSTAKA:

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 )

2. Hayatun Nufus, Pembuatan Aplikasi Kriptografi Algoritma Base 64


Menggunakan Java JDK 1.6, Universitas Gunadarma, 2009.
(http://www.gunadarma.ac.id/library/articles/graduate/computer-
science/2009/Artikel_10105755.pdf )

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 )

4. Munir M.T, Ir. Rinaldi , Penghantar Kriptografi , Institute Teknologi Bandung,


Bandung, 2004.
(http://kur2003.if.itb.ac.id/file/Pengantar%20Kriptografi%20(2004).doc )

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

Universitas Gunadarma | Kriptografi Modern

You might also like