Pada gambar 3.6 terdapat proses enkripsi dan dekripsi file dengan kriptografi hibrida. Pada proses enkripsi akan dilakukan beberapa proses yaitu
proses pembangkitan kunci matriks Hill Cipher, proses pembangkitan kunci Knapsack
, proses enkripsi file dengan kunci Hill Cipher , dan proses enkripsi kunci Hill Cipher dengan kunci Knapsack. Proses tersebut disebut sebagai
predefined process yaitu proses yang akan dikembangkan lebih rinci.
Pada proses dekripsi terdapat beberapa proses yaitu proses pencarian bilangan bulat dari algoritma Knapsack, proses dekripsi cipherkey dengan kunci
Knapsack , dan proses dekripsi cipherfile dengan kunci asli Hill Cipher.
3.3.1.1 Flowchart Proses Pembangkitan Kunci Matriks Hill Cipher Kunci Privat
Pada proses pembangkitan kunci Hill Cipher, pengguna akan diminta mencari kunci matriks yang memiliki nilai matriks identitas dimana jika sebuah kunci
matriks dikalikan dengan invers-nya harus menghaslikan matriks identitas. Dengan ketentuan, sebuah kunci invers matriks haruslah bernilai bilangan bulat
dicari dengan menggunakan teknik Hill Cipher yaitu aritmatika modulo.
Universitas Sumatera Utara
Berikut merupakan skema flowchart pembangkitan kunci matriks Hill Cipher
2x2 pada gambar 3.7 :
START
Bangkitkan bilangan matriks K 2x2 secara acak
While K . K
-1
= I K
-1
= Det K
-1
[Adj K Proses pencarian bilangan
matriks Tidak
Ya While Det K
-1
Det K = 1 mod 256
While Det K 0
Det K
-1
= Rand 1,256 Det K mod 2 = 0
Det K + = 256
Tidak Ya
Tidak Ya
Kunci Matriks 2x2
END Ya
Tidak
Tidak Ya
Gambar 3.7 Flowchart Pembangkitan Kunci Hill Cipher 2x2
Universitas Sumatera Utara
3.3.1.2 Flowchart Proses Enkripsi File dengan Kunci Hill Cipher
Pada proses enkripsi file, file akan dibaca secara byte per byte. Karena kunci matriks yang akan dibuat adalah matriks 2x2, maka file yang akan dienkripsi akan
dibagi sehingga membentuk 2 byte, ini dilakukan karena syarat perkalian matriks adalah “baris matriks A = kolom matriks B”. Jika sebuah file berukuran tidak
sama dengan ukuran matriks yang akan dibagi, maka file akan ditambah karakter sembarang untuk memenuhi ukuran matriks tersebut. Berikut merupakan skema
flowchart
enkripsi file dengan kunci Hill Cipher pada gambar 3.8 :
Start Input File, Key
Hill Cipher
Counter = 2 Baca byte
Counter++
1. Buat matriks 2x1 2. Kalikan matriks dengan
key 3. Sederhanakan
Apakah masih ada data?
Counter 0
Selesai
Tambahkan karakter
Ada
Selesai Proses dibuffer
disimpan ke file
Ya
Tidak Ya
Tidak Ya
Tidak
Gambar 3.8 Flowchart Enkripsi File Dengan Kunci Hill Cipher
Universitas Sumatera Utara
3.3.1.3 Flowchart Proses Pembangkitan Kunci Knapsack Kunci Privat dan Kunci Publik
Pada proses pembangkitan kunci Knapsack Kunci Privat dan Kunci Publik, pengguna akan mencari sebuah barisan Superincreasing w yang dimulai dari
bilangan bukan nol dimana jumlah barisannya ditentukan oleh pengguna sendiri. Barisan Superincrasing tersebut akan menjadi kunci privat yang akan
mengenkripsi kunci Hill Cipher. Selanjutnya akan dicari sebuah bilangan q yang memenuhi
dan salah satu angka integer r secara acak sehingga PBBr,q =1 r relatif prima dengan q. Barisan yang akan menjadi kunci publik
bisa dicari dengan rumus . Berikut merupakan skema flowchart
pembangkitan kunci Knapsack pada gambar 3.9 :
START
Pilih Jumlah w Perintah memilih jumlah w
Tidak
Rand Barisan w Barisan w
kunci privat Rand bilangan q, r
K.publik = r.w mod q Bilangan q, r
Barisan kunci publik
Ya
END
Universitas Sumatera Utara
Gambar 3.9 Flowchart Pembangkitan Kunci Knapsack
3.3.1.4 Flowchart Proses Enkripsi Kunci Hill Cipher dengan Kunci Publik Knapsack