Cipher Husna
description
Transcript of Cipher Husna
Abstrak
Laporan ini telah disediakan bagi dapatan hasil daripada kajian dan maklumat yang lebih
terperinci untuk tugasan yang berkaitan dengan cipher transposisi dan cipher gantian. Di
dalam laporan ini juga menerangkan dua cipher transposisi dan cipher gantian telah dibina
berpasangan secara kreatif. Langkah-langkah pembinaan cipher telah diterangkan secara
dengan lebih terperinci. Teks biasa (plainteks) yang kurang daripada 20 abjad dan teks
cipher juga telah dibina bagi membuktikan keberkesanan kajian terhadap kedua-dua cipher
ini. Langkah-langkah penukaran teks cipher ke atas teks biasa juga telah diperincikan bagi
melengkapkan laporan tugasan ini. Laporan ini juga telah dilengkapkan dengan kekuatan
dan kelemahan bagi kedua-dua cipher tersebut. Di akhir laporan, kesimpulan hasil daripada
dapatan tugasan juga turut disediakan.
2.0 Pendahuluan
Beberapa ramaikah daripada kita meminati bidang Matematik? Menyebut mengenai
algebra, kalkulus, statistik, geometri dan pelbagai cabang matematik lain pastinya
mengundang rasa gerun. Bagi kebanyakan orang, matematik terlalu rumit dan ia hanyalah
nombor, teori, rumus dan formula serta persamaan. Bidang aritmatik mungkin tidak
menyukarkan kerana ia benda paling asas dalam matematik iaitu campur, tolak, darab dan
bahagi.
Namun, sejajar dengan perkembangan semasa, cabang bidang matematik
berkembang dengan munculnya teknologi baru. Satu daripada bidang tersebut ialah
kriptologi (cryptology) iaitu sains bermatematik yang bertujuan untuk mengenkrip(encrypt)
atau `merahsiakan' maklumat dan menganalisis maklumat yang telah dienkrip.
Secara umumnya kriptologi terbahagi kepada dua bahagian utama. Dua bahagian
tersebut ialah kriptografi atau ilmu sains bermatematik untuk mengenkrip maklumat dan
analisiskripto (cryptanalysis) iaitu ilmu sains bermatematik untuk menganalisis maklumat
yang telah dienkrip.
Mengenkrip maklumat adalah berbeza dengan persepsi umum bahawa ia adalah
suatu proses mengkod maklumat. Proses mengenkrip maklumat adalah proses menukar
suatu teks asal (plain text) kepada suatu teks sifer (ciphertext) supaya tidak diketahui
maklumat asalnya melainkan oleh pihak-pihak yang ditentukan sahaja, (KAMEL, 2010).
Algortima RSA dinyatakan pada tahun 1977 oleh tiga orang: Ron Rivest, Adi Shamir
dan Len Adleman dari Massachusetts Institute of Technology. huruf
RSA itu sendiri berasal dari singkatan nama mereka (Rivest - Shamir - Adleman).
Clifford Cocks, seorang ahli matematik Inggeris yang bekerja untuk GCHQ, menjabarkan
tentang sistem equivalen pada dokumen dalaman di tahun 1973. Penemuan Clifford Cocks
1
tidak terungkap hingga tahun 1997 kerana alasan klasifikasi kerahsiaan tertinggi. Algoritma
tersebut dipatenkan oleh Massachusetts Institute of Technology pada tahun 1983 di Amerika
Syarikat sebagai US Patent 4.405.829. Paten tersebut berlaku hingga 21 September 2000.
Semenjak Algoritma RSA disiarkan sebagai aplikasi paten, peraturan di sebahagian besar
negara-negara lain tidak membolehkan penggunaan paten. Hal ini menyebabkan hasil
Clifford Cocks di kenal secara umum, paten di Amerika Syarikat tidak boleh
mematenkannya, (Nara Riatul Kasanah, 2012).
2.1 Algoritma RSA yang digunakan adalah:
2.1.1. p dan q bilangan prima (rahsia)
2.1.2. n = p × q (tidak rahsia)
2.1.3. f(n) = (p – 1)(q – 1) (rahsia)
2.1.4. e (kunci enkripsi) (tidak rahsia)
Syarat: PBB(e, f(n)) = 1
2.1.5. d (kunci dekripsi) (rahsia)
d dihitung dari d º e-1 mod (f(n) )
2.1.6. m (plainteks) (rahsia)
2.1.7. c (cipherteks) (tidak rahsia)
2.2 Mekanisme Kriptografi
2.2.1 Plaintext - Plaintext (message) merupakan pesanan asal yang ingin dikirimkan
dan keselamatan data tidak dapat dijamin.
2.2.2 Ciphertext – Ciphertext merupakan mesej yang telah enkripsi (encryption)
sehingga siap untuk dikirimkan.
2.2.3 Cipher – Cipher merupakan algoritma matematik yang digunakan untuk proses
enkripsi plaintext menjadi ciphertext.
2.2.4 Enkripsi – Enkripsi (encryption) merupakan proses yang dilakukan untuk
penyulitan plaintext sehingga menjadi ciphertext.
2.2.5 Dekripsi – Dekripsi (decryption) merupakan proses yang dilakukan untuk
memperoleh kembali plaintext dari ciphertext.
2.2.6 Kriptosistem – Kriptosistem merupakan sistem yang dirancang untuk memastikan
keselamatan suatu sistem informasi dengan menggunakan kaedah kriptografi.
Pertama kali kriptografi digunakan pada bidang ketenteraan iaitu untuk melakukan
komunikasi rahsia, yang digunakan sebelum perang dunia ke-1. Pada saat itu orang-orang
sudah mengetahui bahawa di dalam bidang ketenteraan sudah menggunakan pengekodan
rahsia dalam berkomunikasi, akan tetapi hanya sedikit yang mengetahui tentang ilmu
2
kriptografi. Dan kemudian National Sequrity Agency (NSA) memperkenalkannya sebagai
cabang ilmu matematik.
Kriptografi (Cryptography) merupakan cabang ilmu pengetahuan yang menggunakan
persamaan matematik untuk melakukan proses penyulitan dan penyahsulitan data. Teknik
ini digunakan untuk menukar atau mengubah data ke dalam bentuk kod-kod tertentu,
dengan tujuan maklumat yang disimpan dan dihantar melalui rangkaian yang tidak selamat
seperti internet, tidak dapat dibaca oleh sesiapa kecuali oleh orang yang berkuasa.
Kriptografi adalah suatu ilmu yang mewujudkan suatu komunikasi secara aman yang tidak
dapat difahami atau diterjemahkan oleh setiap orang kecuali orang tertentu yang
dimaksudkan.
Dalam hal ini kriptografi tidak diertikan sebagai ilmu yang mempelajari pengacakan data
elektronik dengan bantuan program komputer sehingga tidak ada seorang pun yang dapat
mengartikannya.
2.3 Manfaat dari kriptografi adalah sebagai berikut :
2.3.1. Privacy (Privasi) yang menghalang pembacaan mesej-mesej oleh orang lain
yang tidak berhak atau yang tidak berkepentingan
2.3.2. Authenticity (Tha) yang membuat penerima mesej boleh mengetahui secara
pasti, siapa yang menghantar mesej tersebut dan sebaliknya pengirim juga boleh
memeriksa kembali bahawa penerima mesej adalah orang yang benar-benar ia
maksud.
2.3.3. Integrity (Keutuhan) yang meyakinkan bahawa mesej yang dihantar tidak
dipalsukan atau diubah oleh orang lain yang tidak berhak selama penghantaran
mesej tersebut. (Fitryamari).
3.0 Cipher Transposisi dan Cipher Gantian
Ciphers ialah satu kaedah mengenkripsi teks (kaedah yang menyembunyikan
pembacaan dan maksudnya) daripada orang yang tidak dikehendaki. Kod cipher digunakan
untuk menukar mesej kepada kod yang hanya diketahui oleh si penerima, (Syukri).
3.1 Penjanaan pasangan kunci RSA, digunakan algoritma seperti berikut.
a. Dipilih dua buah bilangan prima mana-mana yang besar, p dan q. Nilai p dan q
harus dirahsiakan.
b. Dikira n = p x q. Besaran n tidak perlu dirahsiakan.
c. Dikira m = (p-1) (q-1)
d. Dipilih sebuah bilangan bulat sebagai kunci awam, disebut namanya e, yang relatif
prima terhadap m. e relatif prima terhadap m bererti faktor pembahagi terbesar
3
keduanya adalah 1, secara matematik disebut gcd (e,m)= 1. Untuk mencarinya boleh
digunakan algoritma Euclid.
e. Dikira kunci persendirian, disebut namanya d sedemikian agar(DXE) mod
m=1.
3.2 Pembuatan Kunci
Sebuah mesej peribadi (private message) melalui media penghantaran yang tidak
aman (insecure). Langkah-langkah berikut untuk membuat pasangan kunci public key dan
private key:
3.2.1 Pilih dua bilangan prima p ≠ q secara rawak dan berasingan untuk tiap-tiap p
dan q. Hitung N = p q. N hasil perkalian dari p dikalikan dengan q.
3.2.2 Kira φ = (p-1) (q-1).
3.2.3 Pilih bilangan bulat (integer) antara satu dan φ (1 <e <φ) yang juga
merupakan koprima dari φ. Kira d hingga d e ≡ 1 (mod φ).
• Bilangan prima boleh diujinya menggunakan Fermat s little theorem- a ^ (n-1) mod n = 1
jika n adalah bilangan prima, diuji dengan beberapa nilai a menghasilkan kemungkinan yang
tinggi bahawa n ialah bilangan prima. Carmichael numbers (angka-angka Carmichael) dapat
melalui ujian dari seluruh a, tetapi hal ini sangatlah jarang berlaku.
• Langkah 3 dan 4 boleh dihasilkan dengan algoritma extended Euclid; lihat juga aritmetika
modular.
• Langkah 4 boleh dihasilkan dengan mencari integer x sehingga d = (x (p-1) (q-1) + 1) / e
menghasilkan bilangan bulat, kemudian menggunakan nilai dari d (mod (p-1) (q-1) );
• Langkah 2 PKCS # 1 v2.1 menggunakan & lamda; = Lcm (p-1, q-1) selain daripada φ = (p-
r1) (q-1).
Pada public key terdiri atas:
• N, modulus yang digunakan.
• e, eksponen awam (sering juga disebut eksponen penyulitan).
Pada private key terdiri atas:
• N, modulus yang digunakan, digunakan pula pada public key.
d, eksponen peribadi (sering juga disebut eksponen penyahsulitan), yang perlu
dirahsiakan.
Biasanya, berbeza dari bentuk private key (termasuk parameter CRT):
• p dan q, bilangan prima dari penjanaan kunci.
• d mod (p-1) dan d mod (q-1) (dikenali sebagai dmp1 dan dmq1).
• (1 / q) mod p (dikenali sebagai iqmp).
4
Bentuk ini membuat proses penyahsulitan lebih cepat menggunakan Chinese Remainder
Theorem (CRT). Dalam bentuk ini, seluruh bahagian dari private key perlu dirahsiakan.
Pengirim menghantar public key kepada penerima dan tetap merahsiakan private key yang
digunakan. p dan q sangat sensitif kerana merupakan faktor dari N, dan membuat
perhitungan dari d menghasilkan e. Jika p dan q tidak disimpan dalam bentuk CRT dari
private key, maka p dan q telah terhapus bersama nilai-nilai lain dari proses penjanaan
kunci, (WikiMedia, 2014).
Hasil kali n = p x q akan berukuran lebih dari 200 digit. Dengan andaian bahawa
algoritma pemfaktoran yang digunakan adalah algoritma yang paling cepat saat ini dan
komputer yang dipakai mempunyai kelajuan 1 milisaat, usaha untuk mencari faktor bilangan
200 digit memerlukan masa pengkomputeran selama 4 bilion tahun, (TRI
RAHAJOENINGROEM, 1990).
(KAMEL, 2010), proses mengkod maklumat adalah proses menukar suatu maklumat
kepada format lain yang diketahui oleh umum yang bertujuan untuk memudahkan proses
penghantaran maklumat tersebut. Antara contoh teknik mengkod maklumat ialah kod Morse.
Elemen penting yang membezakan antara proses mengenkrip dan mengkod maklumat ialah
penggunaan kekunci semasa melakukan enkripsi manakala dalam proses mengkod tidak
melibatkan kekunci.
Menurut (Munir), algoritma penyulitan (enkripsi) menggunakan RSA adalah sebagai
berikut. Plaintext M dinyatakan menjadi blok-blok m1, m2, ... sedemikian sehingga setiap blok
mewakili nilai di dalam selang [0, n - 1] (harus dipenuhi syarat-syarat bahawa nilai mi harus
terletak dalam himpunan nilai 0, 1, 2, ..., n-1 untuk memastikan hasil perhitungan tidak
berada di luar himpunan). Setiap blok mi dienkripsikan menjadi blok ci dengan formula ci =
mie mod n. Sedangkan untuk penyahsulitan, maka setiap blok cipher teks ci - didekripsikan
kembali menjadi blok mi dengan formula ci = mie mod n, yang dalam hal ini, e adalah kunci
publik. Algoritma penyahsulitan (dekripsi) pula seperti proses dekripsi dilakukan dengan
menggunakan persamaan mi = cid mod n, yang dalam hal ini, d adalah kunci privat.
4.0 Langkah-langkah Pembinaan Cipher
Perkembangan kod klasik dan cipher menggunakan teknik-teknik Cipher Transposisi dan
Cipher Gantian, (Syukri).
5
Rajah 1 : Membina dan merungkai teks rahsia (ciphertext) Membina Teks Rahsia (Enkripsi)
Merungkai Teks Rahsia (Dekripsi)
4.1 Cipher Transposisi
Cipher Transposisi adalah kaedah enkripsi mesej yang melibatkan perubahan penyusunan
semula huruf/kumpulan huruf mengikut peraturan atau sistem tertentu.
4.1.1 Cipher Lajur (Columnar Transposition)
Dalam teknik cipher lajur, teks biasa akan disusun dalam beberapa baris dan kemudiaanya
teks rahsia akan dibaca mengikut lajur. Cipher lajur memerlukan kata kunci untuk menyusun
cara bacaan lajur juga bagi mengetahu bilangan lajur yang digunakan. Terdapat tiga
langkah mudah dalam menentukan cipher lajur, iaitu huruf-huruf disusun secara melintang
dalam bentuk segi empat, gunakan kata kunci untuk menentukan susun atur kod rahsia, dan
baca secara menegak.
Membina dan merungkai teks rahsia (ciphertext)
Membina Teks Rahsia (Enkripsi)
Langkah pertama untuk membina teks rahsia menggunakan cipher lajur ialah memilih kata
kunci. Kemudian, teks biasa ditulis pada petak-petak mengikut lajur kata kunci yang
digunakan. Huruf-huruf dalam kata kunci akan dinomborkan mengikut kedudukannya dalam
susunan huruf-huruf A-Z. Huruf-huruf akan dikeluarkan mengikut kedudukan huruf kata
kunci dan dibaca secara ke bawah mengikut lajur. Kebiasaanya, kata kunci yang digunakan
tidak mengandungi huruf yang sama. Namun begitu, jika kata kunci mengandungi dua atau
lebih huruf yang sama, huruf yang muncul dahulu dalam kata kunci tersebut akan dipilih
dahulu.
6
Teks Biasa (Plainteks)
SERANG HENDAP
(Teks Cipher)
KPUTAE BUMRAILEnkripsi
Teks Biasa (Plainteks)
SERANG HENDAP
(Teks Cipher)
KPUTAE BUMRAIL Dekripsi
Teks rahsia bagi mesej ini “MUSUH PINDAH LOKASI”. Masukkan mesej tersebut dalam
petak-petak dengan menggunakan kata kunci “SERANG”.
S E R A N G
M U S U H P
I N D A H L
O K A S I
Bagi menyusun huruf-huruf tersebut dalam bentuk teks rahsia, tentukan dahulu
kedudukan bagi huruf-huruf bagi kata kunci tersebut. Dalam kata kunci tersebut, “S” berada
pada kedudukan ke 19, jadi S=19. Maka E=5, R=18, A=1, N=14 dan G=7.
Oleh itu, teks rahsia akan disusun mengikut lajur berdasarkan kedudukan secara
menaik dimulakan dengan lajur “A” dan diikuti oleh lajur “E”, “G”, “N”, “R”, dan “S”. Jadi teks
rahsia yang terbina ialah “UAS UNK PL HHI SDA MIO”.
Merungkai Teks Rahsia (Dekripsi)
Bagi merungkaikan teks rahsia, kata kunci juga diperlukan. Sama seperti proses
enkripsi, kata kunci akan dinomborkan kedudukannya mengikut susunan huruf-huruf A-Z.
Bagi mengetahui bilangan baris yang yang terlibat, ia boleh ditentukan dengan jumlah huruf
yang terdapat dalam teks rahsia dibahagi dengan jumlah huruf kata kunci. Contohnya, jika
teks rahsia mempunyai 42 huruf dan kata kunci mempunyai 6 huruf, maka 42 ÷ 6 dan jumlah
baris yang ada ialah 7 (complete columnar transposition).
Sebagai contohnya teks rahsia yang diberikan ialah “UAS UNK PL HHI SDA MIO”.
Kata kuncinya ialah “SERANG”. Jika ingin menentukan bilangan barisnya, kira bilangan
huruf dalam teks rahsia dan kata kunci kemudian bahagikan. Bagi teks rahsia ini, ia
mempunyai 23 huruf dan kata kunci mempunyai 6 huruf. Apabila dibahagi ia memberikan
hasil 3 dan baki 5 (incomplete columnar transposition). Hasil 3 menunjukkan ia memunyai 3
baris yang lengkap dan baki 5 menunjukkan baris akhir hanya mengandungi 4 huruf.
Dalam menentukan kedudukan huruf-huruf teks rahsia, kata kunci dinomborkan
terlebih dahulu dan jumlah baris juga telah diketahui.
7
S E R A N G
19 5 18 1 14 7
Kemudian masukkan huruf-huruf dalam teks rahsia mengikut urutan berdasarkan
kedudukan huruf kata kunci. Teks chipher adalah “UAS UNK PL HHI SDA MIO”.
S E R A N G
19 5 18 1 14 7
U
A
S
S E R A N G
19 5 18 1 14 7
U U
N A
K S
S E R A N G
19 5 18 1 14 7
U U P
N A L
K S
S E R A N G
19 5 18 1 14 7
U U H P
N A H L
K S I
S E R A N G
8
19 5 18 1 14 7
U U H P
N A H L
K S I
S E R A N G
19 5 18 1 14 7
M U S U H P
I N D A H L
O K A S I
Jadi, bagi merungkaikan teks rahsia tersebut huruf-huruf disusun semula dan dibaca dari kiri
ke kanan. Teks biasa yang terhasil ialah “MUSUH PINDAH LOKASI”.
4.2 Cipher Gantian
Cipher Gantian adalah kaedah enkripsi mesej yang melibatkan penggantian semula
huruf/kumpulan huruf mengikut peraturan atau sistem tertentu. Semua huruf dalam abjad
dipadankan dengan huruf secara padanan satu dengan satu mengikut peraturan atau
sistem yang dipersetujui dan dirahsiakan
4.2.1 Cipher Kama Sutra
Cipher ini juga dikenali sebagai cipher Vatsyayana yang pernah dihuraikan dalam buku
Kama Sutra yang ditulis dalam abad ke-4 AD. Setiap huruf dipadankan dengan huruf lain
secara rawak dan digunakan untuk menulis mesej rahsia. Padanan satu dengan satu antara
pasangan huruf-huruf hanya diketahui oleh pengirim dan penerima
Membina dan merungkai teks rahsia (ciphertext)
Membina Teks Rahsia (Enkripsi)
Penerima dan pengirim telah mengatur dan menyusun sendiri huruf yang dipilih secara
rawak untuk dipadankan dengan huruf yang lainnya secara rawak juga. Padanan tersebut
hanya diketahui oleh penerima dan pengirim sahaja.
9
Susunan huruf-huruf adalah seperti berikut:-
A = K B = C C = Z D = I E = R F = S G = M H = P I = L J = H
K = V L = E M =Y N = G O = J P = F Q =N R = W S = B T = O
U = D V = X W= U X = A Y = T Z = Q
Mesej “ SEMBOYAN “ ditulis sebagai “ BRYCJTKQ “
S E M B O Y A N
B R Y C J T K Q
Merungkaikan Teks Rahsia (Dekripsi)
Perkara penting untuk merungkaikan teks rahsia (dekripsi) dalam cipher ini ialah pengirim
dan penerima mesej perlu menukarkan semula padanan huruf-huruf cipher kepada teks
biasa , sama seperti proses enkripsi. Dimana, penerima sedia-maklum dan mengetahui
secara jelas tentang setiap padanan huruf-huruf tersebut.
B R Y C J T K Q
S E M B O Y A N
Mesej teks biasa yang diterima adalah “SEMBOYAN”.
5.0 Kekuatan dan Kelemahan RSA
Kekuatan dan Keamanan RSA
Beberapa kekuatan dan keamanan RSA telah dikenal pasti diantaranya adalah
1. Mesej cipher yang diterima berada dibawah lindungan kerahsiaan terutamanya
daripada pengetahuan musuh.
2. Kunci enkrip e diumumkan (tidak rahsia), maka kunci dekripsi d dapat dihitung dari
persamaan ed º 1 (mod n).
3. Kekuatan algoritma RSA terletak pada tingkat kesulitan dalam memfaktorkan
bilangan bukan prima menjadi faktor primanya, yang dalam hal ini n = a ´ b.
Sekali n berhasil difaktorkan menjadi a dan b, maka f(n) = (a – 1)´(b – 1) dapat
dihitung.
Kelemahan bagi kaedah RSA pula adalah,
10
1. Boleh menyebabkan kesilapan menerima mesej andainya salah penggunaan
arahan teknik dekripsi oleh penerima.
2. Sukar didekripsikan atau dinyahsulit andainya penerima menerima cipher teks yang
diterima terlalu panjang dan berbelit-belit.
3. Mengambil masa yang agak lama untuk proses penyahsulit bagi memperolehi
mesej yang sebenar.
6.0 Kesimpulan
Pelbagai teknik Cipher transposisi dan Cipher Gantian yang digunakan mempunyai
perbezaan dan keunikannya yang tersendiri bagi mempertingkatkan tahap kerahsiaan teks
cipher agar ia tidak mudah untuk dinyahsulitkan oleh pihak lain. Teknik-teknik ini
menunjukkan bahawa sistem komunikasi manusia pada zaman dahulu telah membuktikan
bahawa manusia boleh berfikir dengan kreatif dan berupaya mencari jalan alternatif bagi
berdepan dengan masalah kerahsiaan komunikasi yang dihadapi. Tahap kerahsiaan yang
amat tinggi dan keperluan komunikasi rahsia adalah menjadi faktor penting dalam sesebuah
Negara terutamanya dalam bidang keamanan.
11
Rujukan
Fitryamari. Landasan Teori. Indonesia.
KAMEL, D. M. (2010). Kriptologi Matematik Untuk Keselamatan Maklumat. Kuala Lumpur: Fokus.
(2004). Kod Klasik Dan Cipher. Malaysia.
Munir, R. Algoritma RSA. Indonesia.
Nara Riatul Kasanah, N. A. (2012). TUGAS KRIPTOGRAFI RSA - CRYPTOSYSTEM. Indonesia: INSTITUT TEKNOLOGI SEPULUH NOPEMBER.
Syukri, M. S. Aplikasi Matematik. Malaysia: INSTITUTE OF TEACHER EDUCATION.
TRI RAHAJOENINGROEM, M. A. (1990). STUDI DAN IMPLEMENTASI ALGORITMA RSA. Bandung: Universitas Komputer Indonesia.
WikiMedia. (2014, Jan 26). RSA. Retrieved 1 Mac, 2014, from Wikipedia Encyclopedia: http://id.wikipedia.org/wiki/RSA
12