Kriptografi dan Cara Kerja
Definisi Kriptografi
dan Cara Kerja Kriptografi
1.Definisi
Kriptografi
Kriptografi (cryptography) berasal dari bahasa Yunani,
terdiri dari dua suku kata yaitu kripto dan graphia. Kripto artinya
menyembunyikan, sedangkan graphia artinya tulisan. Kriptografi adalah ilmu yang
mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan
informasi, seperti kerahasiaan data, keabsahan data, integritas data, serta
autentikasi data .Tetapi tidak semua aspek keamanan informasi dapat
diselesaikan dengan kriptografi.
Kriptografi dapat pula diartikan sebagai ilmu atau seni untuk
menjaga keamanan pesan. Ketika suatu pesan dikirim dari suatu tempat ke tempat
lain, isi pesan tersebut mungkin dapat disadap oleh pihak lain yang tidak
berhak untuk mengetahui isi pesan tersebut. Untuk menjaga pesan, maka pesan
tersebut dapat diubah menjadi suatu kode yang tidak dapat dimengerti oleh pihak
lain.
Enkripsi adalah sebuah proses penyandian yang melakukan
perubahan sebuah kode (pesan) dari yang bisa dimengerti (plainteks) menjadi
sebuah kode yang tidak bisa dimengerti (cipherteks). Sedangkan proses
kebalikannya untuk mengubah cipherteks menjadi plainteks disebut dekripsi.
Proses enkripsi dan dekripsi memerlukan suatu mekanisme dan kunci tertentu.
Kriptoanalisis (cryptanalysis) adalah kebalikan dari
kriptografi, yaitu suatu ilmu untuk memecahkan mekanisme kriptografi dengan
cara mendapatkan kunci dari cipherteks yang digunakan untuk mendapatkan
plainteks.
Kriptologi (cryptology) adalah ilmu yang mencakup
kriptografi dan kriptoanalisis.
Tujuan Kriptografi
Ada empat tujuan mendasar dari kriptografi yang juga
merupakan aspek keamanan informasi, yaitu:
1.Kerahasiaan, adalah aspek yang berhubungan dengan
penjagaan isi informasi dari siapapun kecuali yang memiliki otoritas atau kunci
rahasia untuk membuka informasi yang telah dienkripsi.
2.Integritas data, adalah aspek yang 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.
3.Autentikasi, adalah aspek yang berhubungan dengan
identifikasi atau pengenalan, baik secara kesatuan sistem maupun informasi itu
sendiri. Dua pihak yang saling berkomunikasi harus saling memperkenalkan diri.
Informasi yang dikirimkan harus diautentikasi keaslian, isi datanya, waktu
pengiriman, dan lain-lain.
4.Non-repudiation (menolak penyangkalan), adalah usaha untuk
mencegah terjadinya penyangkalan terhadap pengiriman suatu informasi oleh yang
mengirimkan, atau harus dapat membuktikan bahwa suatu pesan berasal dari
seseorang, apabila ia menyangkal mengirim informasi tersebut.
Kriptologi
Secara luas, persandian juga dikenal dengan sebutan
kriptologi. Istilah kriptologi berasal dari bahasa latin yang terdiri dari
“kriptos” yang berarti tersembunyi (rahasia) dan “logos” yang berarti ilmu.
Jadi kriptologi adalah ilmu atau seni yang mempelajari semua aspek tulisan
rahasia.
Kriptologi dibagi menjadi 2 (dua), yaitu kriptografi dan
kriptoanalisis. Kriptografi adalah cara (sistem, metode) yang mengolah tata
tulisan dalam berita sehingga menjadi tata tulisan yang berlainan dan tidak
bermakna (incoherent). Sedangkan kriptoanalisis adalah usaha mendapatkan teks
terang dari suatu teks sandi yang tidak diketahui sistem serta kunci-kunci-nya.
Kriptologi mempunyai 2 (dua) pengertian, yaitu:
(1)Kriptologi sebagai ilmu, yang mempelajari semua aspek
dalam tulisan rahasia. Ilmu persandian ini dibedakan menjadi 2 (dua) kelompok
dasar:
Sistem steganografi, meliputi sistem-sistem yang secara
katawiyah menyembunyikan berita, seperti di dalam gumpalan lilin, dengan
tanda-tanda tertentu, di dalam teks berita lain, “dihilangkan” dengan tinta
rahasia, dan lain sebagainya. Steganografi terbagi menjadi 3 (tiga) jenis:
1.Linguistis: Semagram, Open Code
2.Teknologis: Secret (invisible) inks, Micro-photography
3.Concealments
Sistem kriptografik, meliputi sistem-sistem yang mengolah
tata tulisan dalam berita sehingga menjadi tata tulisan yang berlainan dan
tidak bermakna (incoherent). Sistem ini dibedakan menjadi 2 (dua):
1.Cipher: Transposisi dan Substitusi
2.Code: Placode (Plain Code) dan Encicode (Enciphered Code)
(2)Kriptologi sebagai kegiatan,
Kriptologi merupakan suatu ilmu yang mempelajari mengenai
pengaman pengamanan informasi (information security) meliputi semua metode,
termasuk enkripsi.
CARA KERJA
KRIPTOGRAFI
Algoritma Berdasarkan Key
Terdapat dua macam algoritma kriptograpi yaitu algoritma
Public Key (Asymetric) dan Secret Key ( Simetric). Algoritma simetrik sendiri
terdiri atas block chipper dan stream chipper. Gambar di bawah mempersentasikan
jenis kriptograpi berdasarkan key yan dipakai.
2.2.1 Algoritma Asimetrik
Public Key menggunakan dua key yang berbeda dalam melakukan
proses enkripsi dan dekripsi. Public Key yang digunakan untuk melakukan
enkripsi dan boleh diketahui umum. Sedangkan Private Key hanya boleh diketahui
oleh pihak penerima.
2.2.2 Algoritma Simetrik
Key yang digunakan pada algoritma ini, antara pengirim dan
penerima adalah sama, sedangkan proses yang dilakukan untuk dekripsinya
melakukan kebalikan dari proses enkripsi. Kekuatan algoritma simetrik sangat
bergantung pada satu key yang digunakan. Jika key dapat dikirimkan secara aman
maka kemungkinan mendapatkan plaintext dan chipertext yang dikirimkan akan
semakin kecil. Algoritma Simetrik memiliki dua tipe dasar yaitu Block Chiper
dan Stream Chiper. Dengan menggunakan block chiper , plaintext chiper yang sama
dengan key yang sama akan dienkripsikan ke dalam Chipertext Block yang sama.
Pada Stream Chiper , Plaintext atau byte yang sama akan dienkripsikan ke dalam
bit yang berbeda setiap enkripsinya[3].
1 Stream Cipher
Stream Chiper melakukan pengkodean 1 bit atau byte dalam
satu kali prosesnya Stream Chiper lebih muda diimplementasikan dalam hardware.
Hardware bekerja berdasarkan bit-bit yang merupakan satuan terkecilnya dalam
melakukan proses perhitungannya.
2 Block Chiper
Block Chiper melakukan pengkodean 1 block dalam sekali
proses. Ukuran block ini sendiri dapat ditentukan sesuai keinginan. Namun dalam
prakteknya ukuran block yang digunakan memenuhi rumu 2n dengan n bilangan
integer.
3 Perbedaan Stream Cipher dan Block Cipher
Stream Cipher dan Block Cipher sebenarnya memiliki
karakteristik yang sama. Stream Cipher dapat diimplementasikan sebagai Block
Cipher dan sebaliknya. Perbedaan Stream Cipher dan Block Cipher didefinisikan.
“Block Cipher melakukan prosesnya pada data dengan
transformasi yang tentu pada suatu ukuran besar blok data dari Plaintext,
Stream Cipher bekerja berdasarkan pengolahan digit Plaintext tersendiri dengan
transformasi yang berbeda-beda setiap waktunya”.
2.3 Kriteria Algoritma Kriptograpi[3]
Kriteria standar yang harus dimiliki oleh suatu algoritma
kriptograpi menurut National Bureau Of Standarts (NBS), sekarang dinamakan
National Institute of Standarts and Tehcnology (NIST), adalah
· Algoritma harus memiliki tingkat keamanan yang tinggi
· Algoritma harus spesifik dan mudah dimengerti
· Tingkat keamanan algoritma harus terletak pada key, bukan
dari kerahasiaan algoritmanya
· Algoritma harus dapat diadaptasi pada aplikasi yang
beragam
· Algoritma harus ekonomis dalam pengimplementasiannya pada
perangkat keras.
· Algoritma harus efisien dalam penggunaannya
· Algoritma harus dapat berlaku secara umum
· Algoritma dapat dipisahkan (tidak bergantung)
·
2.4 Dasar Matematika
Banyak teori yang menjadi dasar pembangunan algoritma
kriptograpi. Dalam tugas akhir ini akan ditampilkan beberapa teori saja yan
berhubungan dengan algoritma Pontifex dalam implementasi dan analisisnya.
2.4.1. Teori Informasi
Mendefenisikan jumlah bit terkecil yang diperlukan untuk
mempersentasikan informasi. Jika terdapat 7 kemungkinan maka jumlah bit yang
diperlukan adalah 3 diperoleh dari pengambilan nilai terkecil yang masih dapat
menampang 7 representasi data yaitu 23 = 8
2.4.2 Kompleksitas Algoritma
Ditentukan dengan kekuatan perhitungan yang diperlukan untuk
mengeksekusinya. Perhitungan kompleksitas ditentukan berdasarkan dua variable T
(Time) waktu dan S (Space) ruang memory yang dibutuhkan. Jika waktu yang
diperlukan untuk melakukan proses selalu tetap maka kompleksitasnya dikatakan
konstan. Bila waktu berbanding lurus dengan proses dikatakan linear.
2.4.3 Teori Bilangan
Teori bilangan banyak digunakan dalam teknik kriptograpi,
teori bilangan yang berhubungan dengan tugas akhir ini, diantaranya :
Modulo (Mod)
Modulo bekerja berdasarkan pada rumus b = c – (a * n)
Dengan a bilangan yang memodulo, b hasil modulo, c bilangan
yang dimodulo dan n merupakan nilai integer. Hasil modulo harus terletak antara
0 hingga n – 1.
Prima (Prime)
Bilangan prima adalah nilai yang hanya memiliki dua factor
dirinya sendiri dan 1, a dikatakan bilangan prima jika faktornya hanya a dan 1.
Generator dan Primitive
Jika p adalah bilangan prima dan g kurang dari p maka g
adalah generator mod p jika
For each b from 1 to p-1, there exist a where g’ = b (mod b)
Dengan kata lain g primitive terhadap p
Inverse Modulo Number ( modulo balikan)
Penulisan inverse bermakna balikan. Jika dalam modulo uang
diinginkan adalah harga b, maka dalam inverse modulo yang dicari adalah c.
dengan notasi matematika c =(a * n) +b
Dimana a, b, c dan n sesuai dengan ketentuan pada modulo
Greatest Common Divisor
Dua bilangan dikatakan relative prima jika irisan factor
pembagi kedua bilangan hanya 1
Dengan notasi matematika
Gcd(a, n) = 1
Generator
Jika pa adalah prima dan g kurang dari p maka g adalah
generator mod p bila
For each b from 1 to p -1, there exist a where ga = b (mod
p)
Jacobi Symbol (Simbol Jacobi)
Notasi J(a-n) merupakan bentuk umum dari symbol langrange
dari beragam modulo, didefinisikan untuk sembarang bilangan integer a dan
bilangan ganjil n.
Metode Jacobi memiliki ketentuan
1. J(a,n) hanya didefinisikan untuk nilai n ganjil
2. J(0,n) = 0
3. Jika n bilangan prima maka J(a,n) = 0 bila n membagi a
4. Jika n bilangan prima maka J(a,n) = -1 bila a adalah
residu quadratic modulo n
5. Jika n bilangan prima maka J(a,n)=-1 bila a adalah non
residu modulo n
6. Jika n adalah composite (campuran) maka
J(a,n) = J(a,p1)*…*J(a,pm) factor prima dari n
Aturan Jacobi
1. J(1,n)=1
2. J(a*b,c)=J(a,n)*J(b,n)
3. J(2,n)=1 jika (n2 -1)/8 adalah genap, selain itu
J(2,n)=-1
4. J(a,n) = J(a,mod n),n)
5. J(a,b1*b2) = J(a,b1)*J(a,b2)
6. Jika Ged(a,b)=1 dan a,b keduanya bilangan genap
6.a. J(a,b) = J(b,a) jika (a-1) (b-1)/4 adalah bilangan
genap
6.b. J(a,b) = -(b,a) jika (a-1) (b-1)/4 adalah bilangan
ganjil
Prime Number Generator (generator bilangan prima)
Bilangan prima berperan cukup banyak dalam teknik
kriptograpi. Cara yang digunakan untuk mengenerate bilangan prima adalah dengan
melakukan
1. Generate bilangan random
2. Periksa apakah bilangan tersebut prima
3. Masukan bilangan tersebut ke dalam kumpulan bilangan
prima
Terdapat beberapa cara yang dapat diterapkan untuk membangun
bilangan prima, metode dibawah ini memeriksa apakah p bilangan prima.
Solovary Strassen
1. pilih nilai random, a, kurang dari p
2. jika ged(a,p) 1 maka p bukan prima
3. lakukan perhitungan J=a(p-1)/2 mod p
4. lakukan perhitungan Jacobi J(a,p)
5. jika jJ(a,p) maka p mutlak bukan prima
6. jika j = J(a,p) maka kemungkinan p bukan prima < 50 %
Lehmann
1. Pilih nilai random,a kurang dari p
2. Lakukan perhitungan Jacobi J=a(p-1)/2 mod p
3. Jika J=a(p-1)/2 mod p 1=1 atau -1 (mod p) , maka p mutlak
bukan prima
4. jika a(p-1)/2=1 atau -1 (mod p), maka kemungkinan p bukan
prima < 50%
Rabin Miller
Pilih nilai p sebarang, lakukan perhitungan b dengan nilai b
adalah nilai jumlah perkalian 2 dibagi (p-1) kemudian hitung nilai m dengan
rumus p = 1 + 2 b* m
1. pilih nilai random, a kurang dari p
2. set j = 0 set z = am mod p
3. jika = – 1 atau jika z = p -1 maka p valid akan
kemungkinan prima
4. jika j > 0 dan z = 1 maka p bukan prima
5. set j = j + 1, jika j < b dan z p -1, set z = z2 mod p
dan lakukan proses 4 jika z = p-1, maka p valid kemungkinan prima
6. jika j=b dan z p-1 maka p bukan prima
Metode Praktis
1. Generated n-bit bilangan random p
2. set bit high order dan low order bit menjadi 1
3. periksa p, dapatkah dibagi oleh bilangan prima kurang
dari nilainya. Kebanyakan implementasi hanya menggunakan bilangan prima kurang
dari 256. efisiensi dari pemeriksaan bilangan prima dilakukan dengan membagi
bilangan tersebut dengan bilangan prima < 2000
4. lakukan proses Rabbin Miller untuk nilai random a. jika p
sesuai maka generator bilangan random a lainnya dan ulangi lagi test. Pilihlah
nilai a yang kecil untuk mempercepat proses perhitungan. Proses ini dilakukan 5
kali.
2.5 Manajemen Key
Pengaturan key pada metode simetrik mutlak diperlukan,
terdapat beberapa hal yang menjadi acuan dalam melakukan pengaturan key.
2.5.1 Generate Key
Kerahasiaan key sangat bergantung pada cara key itu di
generate. Generate key yang paling baik adalah key yang sedekat mungkin random.
Nilai yang benar-benar random sulit didapat jika mesin yang membuat nilai
random tersebut memiliki nilai tertentu. Pseudo random Generator merupakan
generator bilangan random yang cukup baik. Namun tetap saja memiliki nilai
tidak random.
2.5.2. Lama Penggunaan Key
Semakin lama key dipakai atau disimpan maka akan semakin
rendah keamanan data yang dienkripsi. Hal terbaik adalah menggunakan key sekali
pakai dan tidak menyimpan key pada media penyimpan permanen (misalnya
harddisk). Lakukan pergantian key dalam kurun waktu yang tertentu yang optimal.
Jika ingin menghilangkan/mengganti key maka lakukan dengan seaman mungkin. Wipe
area yang dijadikan tempat penyimpanan key.
2.6. Pertukaran Key
Pertukaran key merupakan titik yang paling rawan diserang
untuk memecahkan algoritma kriptograpi. Terlebih lagi pada algoritma simetik
yang sangat mengandalkan pada kerahasian key-nya.
Metode yang digunakan dalam pertukaran key adalah
2.6.1. Enrypted Key
Metode ini melakukan enkripsi terlebih dahulu sebelum key
yang sebenarnya dikirim. Pada kedua sisi pengirim dan penerima harus memiliki
key Encypted key yang sama dalam melakukan enkripsi. Kelemahan metode ini
terdapat pada key Encypted Key yang digunakan jika seseorang mengetahui Key
Encypted Key-nya maka enkripsi sebelum key dikirimkan adalah percuma dan hanya
memperlama proses tanpa meningkatkan keamanannya. Segala serangan pada metode
ini terfokus pada key encypted key yang digunakan.
2.6.2. Diffie Hellman
Metode yang cukup cerdik ditemukan oleh Diffie Hellman.
Keamanan metode ini berasal dari permasalahan perhitungan algoritma diskrit,
dibandingkan dengan melakukan perhitungan exponensial pada domain yang sama.
Aturan matematika yang pakai dalam metode ini cukup
sederhana. Pertama-tama, tentukan bilangan prima n dan g dimana g adalah
primitive mod n. nilai prima m tidak perlu rahasia . kedua nilai ini haruslah
sama pada pengirim dan penerima.
Algoritma pertukaran Key-nya adalah
Dengan kesepakatan
A = Pengirim pertama
B = Penerima pertama
1. A memilih nilai integer x yang cukup besar dan mengirim
X = gx mod n.
2. B memilih nilai random y yang cukup besar dan mengirim
Y = gy mod n
3. A melakukan perhitungan
K = Yx mod n
4. B melakukan perhitungan
K’ = Xy mod n
Keduanyan nilai k dan k’ adalah sama dan bersesuaian dengan
nilai gxy mod n . seorang yang dapat melakukan penyadapan informasi yang
dikirim hanya akan mengetahui nilai n, g, X dan Y tetapi tidak mengetahui nilai
k dan k’, kecuali penyadap dapat menghitung nilai logaritma diskrit.
Pemilihan k dan g sangat berpengaruh pada tingkat keamanan.
Nilai (n-1)/2 haruslah bilangan prima dan nilai n merupakan bilangan yang cukup
besar.
2.6.3. Extended Diffie Hellman
Kelemahan yang dimiliki metode Diffie Hellman adalah kita
tidak dapat menentukan key yang akan ditransmisikan, diperlukannya konfirmasi
dari penerima untuk membentuk sebuah key. Permasalahan ini diatasi oleh metode
Extended Diffie Hellman. Dengan ketentuan seperti Diffie Hellman, algoritma
pertukaran key-nya adalah
1. A memilih nilai integer x yang cukup besar dan mengirim
K = gx mod n.
1. B memilih nilai random y yang cukup besar dan mengirim
Y = gy mod n
1. A melakukan perhitungan
X = Yx mod n
1. B melakukan perhitungan
= y-1
K’ = Xx mod n
Algoritma ini akan menghasilkan k dan k’ yang bernilai sama
2.7 Penanganan Error
Penanganan error yang paling buruk dari sisi biaya adalah
dengan melakukan pengiriman ulang data yang telah dikirimkan. Namun metode ini
sangat baik untuk menjamin data yang diterima tidak terdapat error. Kelemahan
metode ini selain dari sisi biaya adalah jika saat data dikirimkan ulang oleh
penerima dan data mengalami kerusakan dalam pengiriman ulang maka data akan
dikirim ulang oleh pengirim pertama. Tentunya hal ini merupakan pemborosan.
2.8 Metode Parity Check
Metode ini didasarkan pada pemberian bit parity pada data,
data yang dikirimkan dilakukan pemeriksaan genap atau ganjil. Parity diberikan
sebagai penandanya. Kelemahan metode ini jika terdapat error bit dalam bilangan
genap maka parity cek tetap akan benar padahal data yang dikirimkan tidak
sesuai. Namun demikian metode ini sangat murah dalam implementasinya dan cocok
untuk jaringan dengan error rate yang rendah. Metode ini merupakan layanan pada
Datalink layer tetapi dapat diadaptasi ke dalam Applicatation Layer
ALGORITMA KRIPTOGRAPI PONTIFEX
3.1 Pengenalan Algoritma Pontifex
Pengenalan Algoritma Pontifex merupakan Algoritma Stream
Chiper OFB (Output FeedBack). Algoritma mendapat keamanan dari permasalahan
kartu. Dalam pembuatan key-nya, algoritma ini mengandalkan decking dari 54
kartu. Dengan demikian terdapat 54! Cara kartu tersebut diatur. Algoritma ini
tidak seperti algoritma Stream Chiper pada umumnya yang memiliki S-box dan
P-box serta key yang dibarengi sub-key. Pontifex memiliki nama lain solitare
dan diciptakan oleh Bruce Schneier. Bruce Schneier juga menciptakan algoritma
kriptograpi lainnya, dalam Block Chiper yang dinamakan Two Fish. Karena
perbedaan dalam perancangannya maka tidak semua bagian dari algoritma ini dapat
dibandingkan dengan algoritma Stream Cipher lainnya. Namun faktor dasar dari
kriptograpi selalu dapat dibandingkan dengan semua metode. Faktor tersebut
adalah waktu, tingkat keamanan dan biaya. Penganalogian dengan kartu, dalam
implementasinya akan dikonversi kedalam nilai bilangan.
3.2 Komponen Algoritma Pontifex
3.2.1 Komponen Dasar Pontifex
Dengan memanfaatkan 54! Macam decking kartu, maka terdapat
sekitar 2,3 * 10 71 kemungkinan kartu di – deck. Selain mendapatkan kunci dari
decking kartu algoritma ini juga dapat memanfaatkan kunci yang dimasukkan dari
pengguna walaupun akan sangat membebani pada kenyataannya. Secara garis besar
komponen pembentuk algoritma pontifex adalah
1. Aturan Decking
·
o Aturan Decking Pontifex
o Masukan dari user
1. Otak Pontifex
2. Aturan pengambilan Key
3. Penggabungan dan pemisahan antara plaintext dan
chiphertext
3.2.2 Komponen Pendukung
Tanpa komponen pendukung yang cukup pontifex bukanlah
algoritma yang baik, seperti kebanyakan metode simetris yang mengandalkan pada
key maka segala kekuatan pontifex hanyalah pada key. Karenanya harus ada
komponen pendukung dalam pertukaran key. Selain faktor tersebut terdapat faktor
lain yang mempengaruhi performansi algoritma ini. Komponen berikut adalah
komponen yang digunakan sebagai optimasi algoritma pontifex, yaitu :
1. Pertukaran Key
·
o Pertukaran biasa
o Diffie Hellman
o Extended Diffie Hellman
1. Aturan pertukaran data dalam TCP/IP
Karena pengimplementasiannya menggunakan protocol TCP/IP
dengan layanan windows socket.
3.3. Proses Algoritma Pontifex
Aturan Key Generator merupakan pembeda pontifex dengan
algoritma lainnya. Aturan generate kunci pada pontifex adalah
1. Fase persiapan
Lakukan pengacakan kartu menggunakan Pseudo Random Generator
1. Fase Inti
· Tentukan Joker A dalam hal ini nilai 53, pindahkan ke
belakang 1 kartu dibelakang lokasi sekarang jika kartu paling belakang, maka
letakkan ke belakang kartu terdepan
· Temukan Joker B dalam hal ini nilai 54, pindahkan ke
belakang 2 kartu jika kartu paling belakang maka letakkan ke belakang kartu
kedua terdepan. Jika kartu terletak satu kartu sebelum belakang maka letakkan
kartu dibelakang kartu terdepan.
· Lakukan Triple Cut
· Dilakukan dengan cara memindahkan kartu yang terdapat pada
bagian kiri joker pertama dan kartu yang terletak pada bagian kanan joker
kedua. Jika joker keduanya berada pada ujung maka tidak perlu melakukan operasi
ini.
· Lakukan Count Cut
· Periksa kartu terakhir, pindahkan mulai dari karti 1
hingga kartu ke (nilai kartu terakhir). Letakkan disamping nilai kartu terakhir
dengan urutan yang sama.
1. Fase Pengambilan Kunci
·
o
§ Temukan kartu yang dijadikan kunci
Berdasarkan metode pengambilan kunci dari deck. Default-nya
adalah dengan mengambil kartu di kanan kartu pertama dengan jarak nilai kartu
pertama tersebut. Dapat dimodifokasi dengan memasukkan kunci dari pemakai.
Ketiga fase ini dilakukan sebanyak stream karakter yang
diterima dengan deck pada fase persiapan merupakan keluaran dari fase
sebelumnya.
3.3.1. Fase Persiapan
Fase ini merupakan tahap pengacakan kartu yang bertujuan
menentukan nilai deck awal yang akan digunakan dalam melakukan Generate Key.
Deck yang dihasilkan haruslah memiliki kesepakatan antara pengirim dan
penerima. Cara yang dilakukan dalam melakukan decking adalah
· Nilai kartu diurutkan dari 1 hingga 54 kemudian diberikan
kesepakatan dalam peletakan joker A dan joker B.
· Melakukan randomisasi kartu dengan menggunakan Pseudo
Random Generator
3.3.2. Fase Inti
Pada bagian ini akan dijelaskan secara mendetail proses yang
dilakukan dalam algoritma Pontifex. Untuk memudahkan penjelasan maka akan
diberikan kasus secara langsung yang berhubungan dengan aturan umum maupun
khusus pada algoritma ini.
Misalkan kartu yang dideck adalah kartu terurut, setelah
dikonversi menjadi nilai
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54
(……0)
Selanjutnya dalam pembahasan algoritma pontifex akan merujuk
kepada nilai bilangannya, bukan nama kartunya (hanya untuk memudahkan)
1. Temukan Joker A, kartu yang bernilai 53
Posisi kartu sebelum dilakukan proses 1
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54
(……0)
Kartu ditemukan dengan posisi 53, kemudian dilakukan
perpindahan kartu ke bawah contoh ini dipindahkan ke sebelah kanan
Nilai kartu setelah dilakukan proses 1 adalah
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,54,53
(……1)
1. Temukan Joker B, kartu yang bernilai 54
Posisi kartu sebelum dilakukan proses 2
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,54,53
(……1)
Kartu ditemukan dengan posisi 53, kemudian dilakukan
perpindahan kartu ke bawah 2 tempat dari posisi awal pada contoh ini pindahkan
kesebelah kanan 2 posisi.
Nilai kartu setelah dilakukan proses 1 adalah
1,54,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,(…2)
Pada kondisi di atas letak kartu tidak lagi paling bawah
tetapi pada posisi di bawah kartu pertama. Kondisi ini merupakan kasus khusus,
logikanya menggunakan perputaran dengan menganggap kartu lanjutan setelah kartu
terakhir adalah kartu teratas.
1. Lakukan Triple Cut
Aturan dalam melakukan Triple Cut adalah dengan menukar
kartu sebelah kiri joker terdepan ke sebelah kanan kartu joker kedua.
Untuk lebih jelasnya akan diberikan contoh kasus yang
berbeda penanganannya
Kasus 3.1 Kasus Umum
Kartu sebelum dilakukan proses 3
1,2,3,4,5,6,7,8,9,10,11,12,54,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,53,42,43,44,45,46,47,48,49,50,51,52
Kartu setelah dilakukan proses 3
42,43,44,45,46,47,48,49,50,51,52,54,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,53,
1,2,3,4,5,6,7,8,9,10,11,12
Kasus 3.2 salah satu kartu joker terletak di ujung (sebelah
kiri atau kanan)
Kartu sebelum dilakukan proses 3
1,54,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,(…2)
Kartu setelah dilakukan proses 3
54,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,1(…3)
Kasus 3.3 kedua kartu joker terletak di ujung
Kartu sebelum dilakukan proses 3
54,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53
Kartu setelah dilakukan 3
54,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53
terlihat pada kasus 3.3 tidak ada perubahan kartu karena
tidak terdapat kartu disebelah kiri joker terdepan maupun kartu disebelah kanan
joker kedua.
1. Lakukan Count Cut
Pada proses ini dilakukan optimasi terdapat dua cara yang
digunakan
Cara 1 Menggunakan proses standar dari Pontifex
Periksa kartu terakhir, pindahkan mulai dari kartu 1 hingga
kartu ke (nilai kartu terakhir). Letakkan disamping nilai kartu terakhir dengan
urutan yang sama
Cara 2 Menggunakan Key dari pengguna
Jika perpindahan kartu pada proses Pontifex berdasarkan
kartu terakhir maka pada cara kedua dilakukan dengan melihat nilai key yang
dimasukan pengguna. Misalkan pengguna memasukkan key “FOO” maka pada perulangan
pertama menggunakan karakter F yang bernilai 6. jadi melakukan perpindahan 6
kartu terdepan ke dekat kartu terakhir.
Menggunakan cara 1. aturan standar dari Pontifex
Kasus 4.1 kartu terakhir adalah kartu bernilai 53 atau 54
Kartu sebelum dilakukan proses 4
54,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,1(…3)
Kartu setelah dilakukan proses 4
2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,1(…4)
Kasus 4.2 kartu terakhir adalah kartu bernilai 53 atau 54
Kartu sebelum dilakukan proses 4
54,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53
Kartu setelah dilakukan proses 4
54,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53
Karena kartu terakhir 53 atau 54 maka tidak ada perubahan
posisi
Menggunakan cara 2. key masukan dari pengguna
Kartu sebelum dilakukan proses 4
54,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,1(…3)
Kartu setelah dilakukan proses 4
7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,
54,2,3,4,5,6,1 (…3)
3.3.3 Fase Pengambilan Key
Pada fase ini nilai kartu yang diambil dijadikan masukan
untuk membentuk Strean key. Dalam pengambilan key akan dibagi menjadi beberapa
cara yang merupakan parameter untuk melakukan optimasi algoritma Pontifex.
Decking kartu yang dijadikan acuan pengambilan key
2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,1(…4)
Cara 1. Pengambilan key sesuai ketentuan dasar algoritma
Pontifex
Kartu terkiri adalah 2 sehingga kartu yang diambil menjadi
key adalah nilai 4 didapat dengan mencari kartu dengan lokasi 2 ke kanan dari
posisi terkiri (kartu bernilai 4).
Cara 2. Pengambilan Key berdasarkan masukan dari prngguna
Melanjutkan dari proses 4 dengan cara key masukan dari user
maka key diambil dengan melakukan perhitungan posisi ke kanan sebanyak nilai
key yang bersesuaian. Pada contoh di atas digunakan key “FOO” yang berarti
perulangan pertama menggunakan karakter F dengan nilai 6. jadi nilai key yang
diambil pada proses ini adalah 8 berdasarkan deck (kartu bernilai 6).
3.3.4 Pemisahan Antara Plaintex dan Key
Plaintext dan key dipisahkan dengan melakukan proses balikan
dari proses penggabungan.
Proses yang terlibat dalam pemisahan Plaintext dengan Key
· Konversi Ciphertext ke dalam nilai bilangan
· Konversi key ke nilai bilangan
· Kurangkan ke nilai bilangan keduanya
Jika di dapat nilai bilangan negative maka tambahkan nilai
26 atau kelipatannya hingga didapatkan nilai positif kemudian lakukan konversi
ke karakter
Proses yang terjadi di definisikan
Tahap 1
Bil_Plaintext =
Konversi_ke_bilangan (Chipertext) – Konversi_ke_bilangan
(Key) + (26 * n)
Tahap 2
Plaintext = Konversi_ke_bilangan (Bil_Plaintext)
Dengan n = bilangan integer
Dalam kasus ini nilai n adalah 0,1,2
3.4. Komponen Pendukung
Pemilihan Diffie Hellman dalam pertukaran key dikarenakan
metode ini mudah dimengerti tetapi cukup tangguh dalam mengamankan pertukaran
data. Jadi tidak kehilangan tujuan dasarnya mengamankan data. Sebagai bahan
perbandingan akan dikirimkan key tanpa tanpa menggunakan algoritma pertukaran
key. Walaupun akan lebih cepat sebab prosesnya sedikit tetapi sangat tidak aman
karena seorang penyadap dapat langsung mengetahui kunci yang kita gunakan.
3.4.1 Pertukaran Key
Pertukaran key yang digunakan adalah menggunakan 3 cara dan
merupakan parameter yang menjadi masukan dalam proses implementasi kriptograpi
Cara 1. Key hanya dikirimkan dengan melakukan pengkapsulan
dan pengenkapsulsian saja tanpa disandikan . key haruslah dikirim dengan
channel yang benar-benar aman. Satu-satunya proteksi pada pengiriman ini adalah
dalam keamanan channel. Jika channel disadap maka keseluruhan kunci dapat
diketahui.
Cara 2. Ke y dikirimkan dengan menggunakan cara Deffie
Hellman
Cara 3. Ke y dikirimkan dengan menggunakan cara Extended
Deffie Hellman
3.4.2 Alur Pertukaran Data
Data yang dipertukarkan selain data murni terdapat juga data
redudasi yang berfungsi membantu pengiriman data. Data yang perlu dikirimkan
sebagai pendukung data terkirim dengan baik adalah
Header Paket
Header ini berupa IP Address, Port asal dan tujuan. Dalam
implementasinya terdapat juga header untuk cek error transmisi
Header Data
Header data diberikan pada setiap jenis data yang dikirimkan
header data terdiri dari :
· Penanda awal jenis data dikirim
· Penanda akhir jenis data dikirim
· Panjang data
Semua data yang dikirimkan harus memenuhi aturan tersebut
agar dijamin keakuratan pengirimannya.
sumber :
diposting oleh agung dbreean di 22.54
http://agung-novriadi.blogspot.co.id/2011/10/definisi-kriptologi-dan-cara-kerja.html

Komentar
Posting Komentar