kriptografi modern

47
Universitas Gunadarma | Kriptografi Modern 1 11/2/2010 Universitas Gunadarma KRIPTOGRAFI MODERN KEAMANAN KOMPUTER 11/2/2010 AUTHOR: Priskanta Br Tarigan (12107199)

Upload: priskanta-tarigan

Post on 25-Jun-2015

9.115 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Kriptografi Modern

Universitas Gunadarma | Kriptografi Modern

1

11/2/2010

Universitas Gunadarma

KRIPTOGRAFI

MODERN KEAMANAN KOMPUTER

11/2/2010

AUTHOR:

Priskanta Br Tarigan (12107199)

Page 2: Kriptografi Modern

Universitas Gunadarma | Kriptografi Modern

2

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

Page 3: Kriptografi Modern

Universitas Gunadarma | Kriptografi Modern

3

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

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

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

Page 4: Kriptografi Modern

Universitas Gunadarma | Kriptografi Modern

4

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

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

Page 5: Kriptografi Modern

Universitas Gunadarma | Kriptografi Modern

5

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

Page 6: Kriptografi Modern

Universitas Gunadarma | Kriptografi Modern

6

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

Gambar 2.11 Tampilan Menu Utama (Encrypter)............................................. 34

Gambar 2.12 Tampilan Decrypter ..................................................................... 35

Page 7: Kriptografi Modern

Universitas Gunadarma | Kriptografi Modern

7

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

Page 8: Kriptografi Modern

Universitas Gunadarma | Kriptografi Modern

8

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

Page 9: Kriptografi Modern

Universitas Gunadarma | Kriptografi Modern

9

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.

Ilmu kriptografi sejak dahulu digunakan di berbagai aspek kehidupan. Sebagai

contoh di India, dahulu kriptografi digunakan oleh lovers (pencinta) untuk berkomunikasi

Page 10: Kriptografi Modern

Universitas Gunadarma | Kriptografi Modern

10

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

melalui kanal harus diautentikasi keaslian, isi datanya, waktu pengiriman, dan lain-

lain.

Page 11: Kriptografi Modern

Universitas Gunadarma | Kriptografi Modern

11

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:

Algoritma DES (Data Enkripsi Standard)

Algoritma DES telah diadopsi oleh NIST (National Institute of

Standard and Technology) sebagai standar pengolahan informasi

Page 12: Kriptografi Modern

Universitas Gunadarma | Kriptografi Modern

12

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

terhadap attack (serangan) pembalikan bit. Beberapa model algoritma

dari stream cipher antara lain :

Page 13: Kriptografi Modern

Universitas Gunadarma | Kriptografi Modern

13

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.

Gambar 1.3 Skema Kriptografi Kunci Simetri

Page 14: Kriptografi Modern

Universitas Gunadarma | Kriptografi Modern

14

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:

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.

Gambar 1.4 Skema Kriptografi Kunci Asimetri

n (n-1)/2

Page 15: Kriptografi Modern

Universitas Gunadarma | Kriptografi Modern

15

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

ciphertext dengan panjang blok 128 bit. AES merupakan algoritma blok cipher dengan

menggunakan sistem permutasi dan substitusi (P-Box dan S-Box). AES dapat

Page 16: Kriptografi Modern

Universitas Gunadarma | Kriptografi Modern

16

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

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

Page 17: Kriptografi Modern

Universitas Gunadarma | Kriptografi Modern

17

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

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

Page 18: Kriptografi Modern

Universitas Gunadarma | Kriptografi Modern

18

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

polinomial yang berada dalam GF (28) dan akan dikalikan dengan modulo x

4 +1, dengan

suatu polinomial tertentu:

a(x) = {03}x3 + {01}x

2 + {01}x + {02}

Page 19: Kriptografi Modern

Universitas Gunadarma | Kriptografi Modern

19

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

proses tersebut kembali akan di-XOR-kan dengan Kunci Ronde hasil Expand Key kedua

dan seterusnya sampai Ronde 9.

Page 20: Kriptografi Modern

Universitas Gunadarma | Kriptografi Modern

20

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]

5. Proses ini akan terus berulang sampai diperoleh w43.

Cara kerja Fungsi G:

Page 21: Kriptografi Modern

Universitas Gunadarma | Kriptografi Modern

21

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

Gambar 1.10 Deskripsi AES

Page 22: Kriptografi Modern

Universitas Gunadarma | Kriptografi Modern

22

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.

1.5.2.3 InvMixColumns()

InvMixColumns() adalah invers dari proses MixColumns() pada enkripsi.

InvMixColumns() bekerja pada kolom-per-kolom dari State array, dan memperlakukan

Page 23: Kriptografi Modern

Universitas Gunadarma | Kriptografi Modern

23

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}x

2 + {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

dengan proses SubBytes(). Begitu juga dengan inversnya, proses InvShiftRows(),

yang diikuti dengan proses InvSubBytes() sama dengan proses InvSubBytes() yang

diikuti dengan proses InvShiftRows(),

Page 24: Kriptografi Modern

Universitas Gunadarma | Kriptografi Modern

24

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.

Gambar 1.12 Skema Ekuivalen Deskripsi AES

Page 25: Kriptografi Modern

Universitas Gunadarma | Kriptografi Modern

25

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

Jika C adalah ciphertext dan P adalah plaintext (P<n), maka enkripsi dilakukan

sebagai berikut: C = Pe mod n ,

Page 26: Kriptografi Modern

Universitas Gunadarma | Kriptografi Modern

26

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

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

Page 27: Kriptografi Modern

Universitas Gunadarma | Kriptografi Modern

27

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)

= ROTR

2 (x) ROTR

13 (x) ROTR

22 (x)

= ROTR

6 (x) ROTR

11 (x) ROTR

25 (x)

= ROTR

7 (x) ROTR

18 (x) SHR

3 (x)

= ROTR

17 (x) ROTR

19 (x) SHR

10 (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

2748774c 34b0bcb5 391c0cb3 4ed8aa4a 5b9cca4f

682e6ff3 748f82ee 78a5636f 84c87814 8cc70208

90befffa a4506ceb bef9a3f7 c67178f2

Page 28: Kriptografi Modern

Universitas Gunadarma | Kriptografi Modern

28

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

dilakukan, maka harus diberikan Initial Hash Value, H (0)

.

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

,

,

,

,...,

. Hash value ini akan berisi initial hash value H (0)

. Setelah

satu proses akan digantikan dengan hash value H (i)

dan seterusnya diakhiri dengan

hash value yang final yaitu H (N)

.

4. SHA-256 juga menggunakan dua buah word yaitu T1 dan T2 . Hasil akhir adalah

hash code yang mempunyai panjang 256 bit.

Page 29: Kriptografi Modern

Universitas Gunadarma | Kriptografi Modern

29

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 +

= b +

= c +

Page 30: Kriptografi Modern

Universitas Gunadarma | Kriptografi Modern

30

= 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

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

Page 31: Kriptografi Modern

Universitas Gunadarma | Kriptografi Modern

31

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

Page 32: Kriptografi Modern

Universitas Gunadarma | Kriptografi Modern

32

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.

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.

Page 33: Kriptografi Modern

Universitas Gunadarma | Kriptografi Modern

33

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

Page 34: Kriptografi Modern

Universitas Gunadarma | Kriptografi Modern

34

Gambar 1.15 Flowchart Enkripsi

Gambar 1.16 Flowchart Dekripsi

Page 35: Kriptografi Modern

Universitas Gunadarma | Kriptografi Modern

35

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

terdiri dari dua tingkatan (inheritance). Tingkatan pertama adalah suatu abstract base class

seperti AsymmetricAlgorithm atau HashAlgorithm yang menentukan tipe algoritma.

Page 36: Kriptografi Modern

Universitas Gunadarma | Kriptografi Modern

36

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

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

Page 37: Kriptografi Modern

Universitas Gunadarma | Kriptografi Modern

37

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

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

Page 38: Kriptografi Modern

Universitas Gunadarma | Kriptografi Modern

38

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.

Gambar 2.5 Proses Di Client

Page 39: Kriptografi Modern

Universitas Gunadarma | Kriptografi Modern

39

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

11. File server akan melakukan pengkodean kembali dari base64 ke biner.

12. File Server akan melakukan dekripsi kunci rahasia AES menggunakan kunci privat.

Page 40: Kriptografi Modern

Universitas Gunadarma | Kriptografi Modern

40

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.

Gambar 2.7 Flowchart Program Dari Aplikasi2

Page 41: Kriptografi Modern

Universitas Gunadarma | Kriptografi Modern

41

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:

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.

Page 42: Kriptografi Modern

Universitas Gunadarma | Kriptografi Modern

42

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.

Gambar 2.11 Tampilan Menu Utama (Encrypter)

Page 43: Kriptografi Modern

Universitas Gunadarma | Kriptografi Modern

43

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.

2.2.2.3 Build Program

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

Page 44: Kriptografi Modern

Universitas Gunadarma | Kriptografi Modern

44

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.

Gambar 2.15 Enkripsi File Text

Page 45: Kriptografi Modern

Universitas Gunadarma | Kriptografi Modern

45

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.

Page 46: Kriptografi Modern

Universitas Gunadarma | Kriptografi Modern

46

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.

Page 47: Kriptografi Modern

Universitas Gunadarma | Kriptografi Modern

47

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 )