cryptography : Simple a-symetric algorithm





Harga Handphone, Harga Blackberry, Harga Laptop, Harga Mobil, Harga Motor

DAPATKAN BUKU GRATIS DARI BUKUKITA.COM, CARANYA KLIK DISINI!!!

Secara umum adalah ilmu dan seni untuk menjaga kerahasiaan berita ilmu yang mempelajari teknik matematika yang berhubungan dengan aspek keamanan informasi seperti : Kerahasiaan data, keabsahan data, integritas data, autentikasi. Untuk pengertian tersebut teman-teman bisa melihat detailnya di wikipedia…:P karena aku ambil bahannya dari situ.

=== II. Algoritma Sandi

Nah untuk melakukan tujuan kriptografi tersebut digunakanlah algoritma sandi,
semakin kuat algoritma sandi yang digunakan maka kriptanalis/code
breaker(pemecah sandi) tersebut akan semakin sulit. Dasar matematis yang
mendasari proses enkripsi dan dekripsi adalah relasi antara dua himpunan yaitu
yang berisi elemen teks terang /plaintext dan yang berisi elemen teks
sandi/ciphertext. Enkripsi dan dekripsi merupakan fungsi transformasi antara
himpunan-himpunan tersebut. Apabila elemen-elemen teks terang dinotasikan
dengan P, elemen-elemen teks sandi dinotasikan dengan C, sedang untuk proses
enkripsi dinotasikan dengan E, dekripsi dengan notasi D.

Enkripsi : E(P) = C
Dekripsi : D(C) = P atau D(E(P)) = P

untuk mempertegas : Enkripsi adalah proses menyandi/merubah plain teks menjadi
cipher teks Dekripsi adalah proses membuka sandi/merubah cipher teks menjadi
plain teks

Berdasarkan kunci yang digunakan untuk enkripsi dan dekripsi, maka algoritma
sandi dibagi menjadi dua macam :

1. simetrik ==> kunci untuk enkripsi dan dekripsi adalah sama, contoh :
stream cipher, blok cipher

2. a-simetrik ==> kunci untuk enkripsi dan dekripsi adalah berbeda,
contoh : RSA, ELGAMAL, dll

======= Fokus a-simetrik —|

Tadi sudah aku jelaskan sedikit tentang algoritma sandi, sekarang aku mau
fokuskan ke dalam algoritma sandi a-simetrik. Salah satu ilmu matematik yang
mendukung algoritma a-simetrik adalah number theory (teori bilangan), number
theory ini sangat menarik, aku menghabiskan waktu 2 semester untuk
mempelajarinya. Mari kita mulai sedikit number theory

#konsep inverse modular

a*b mod N = 1

jika a adalah suatu bilangan integer dikalikan dengan bilangan integer lainnya
misalnya b, kemudian dimodularkan dengan integer N menghasilkan nilai 1, maka b
adalah inverse dari a atau a adalah inverse dari b.

BINGUNG…???? :P

aku berikan contoh :

a=2; b=6; N=11;

maka (2*6) mod 11
= 12 mod 11
= 1

artinya 6 adalah adalah inverse dari 2, atau 2 adalah inverse dari 6

======= Implementasi —|

Dari konsep inverse modular tadi, aku membuat algoritma sandi a-simetrik
sederhana bernama kardel-a. Konsep algoritmanya seperti berikut :

-pilih dua buah bilangan a dan b, sedemikian hingga a dan b memenuhi konsep
inverse modular
-bilangan a adalah kunci enkripsi
-bilangan b adalah kunci dekripsi

rumus algoritma kardel-a==> enkripsi : (P)*a mod N = C
dekripsi : (C)*b mod N = P

contoh implementasi :

a=3; #sebagai kunci enkripsi
b=171; #sebagai kunci dekripsi
N=256;

———– Proses Enkripsi ——————————

Plain teks : “xdiamond1″ < == tanpa tanda kutip proses : – ubah setiap huruf menjadi bilangan desimal ascii x = 120 d = 100 i = 105 a = 97 m = 109 o = 111 n = 110 d = 100 1 = 49 – enkripsi ==> (120)*3 mod 256 = 104
(100)*3 mod 256 = 44
. . .
. . .
. . .
(49)*3 mod 256 = 147

– ubah bilangan hasil enkripsi menjadi karakter

Cipher teks nya adalah : “h,;#GMJ,ô” < ==tanpa tanda kutip..

———— Proses Enkripsi Selesai ———————

———— Proses Dekripsi —————————–

cipher teks : “h,;#GMJ,ô” <==tanpa tanda kutip proses : – ubah setiap huruf menjadi bilangan desimal ascii h = 104 , = 44 ; = 59 # = 35 G = 71 M = 77 J = 74 , = 44 ô = 147 – dekripsi ==> (104)*171 mod 256 = 120
(44)*171 mod 256 = 100
. . .
. . .
. . .
(147)*171 mod 256 = 49

– ubah bilangan hasil dekripsi menjadi karakter

Plain teksnya adalah : xdiamond1

———– Proses Dekripsi Selesai ———————-

======= Source Code Program —|

aku juga membuat programnya menggunakan perl, mungkin rekan-rekan mau
mencobanya….:P

———— enkripsi.pl ———————————
#!/usr/bin/perl -w
#mode enkripsi
#by xdiamond1

print “nPlain teks : “;
chomp($plain=);
print “Kunci Enkrip : “;
chomp($ke=);
@word=split(“”,$plain);
$jml=scalar(@word);
&enkrip;

sub enkrip
{
for($i=0; $i< $jml; $i++)
{
$konv1[$i]=ord($word[$i]);
$pro[$i]=($konv1[$i]*$ke)%256;
$konv2[$i]=chr($pro[$i]);
}
$gab=join(“”,@konv2);
print “Cipher teks : $gabn”;
}
————- enkripsi.pl ———————————-

————- dekripsi.pl ———————————-
#!/usr/bin/perl -w
#mode dekripsi
#by xdiamond1

print “nCipher teks : “;
chomp($plain=);
print “Kunci Dekrip : “;
chomp($kd=);
@word=split(“”,$plain);
$jml=scalar(@word);
&dekrip;

sub dekrip
{
for($i=0; $i< $jml; $i++)
{
$konv1[$i]=ord($word[$i]);
$pro[$i]=($konv1[$i]*$kd)%256;
$konv2[$i]=chr($pro[$i]);
}
$gab=join(“”,@konv2);
print “Plain teks : $gabn”;
}
———— dekripsi.pl ———————————–

======= Penutup —|

ho..ho..ho…dah selesai, aku rasa tulisanku kali ini dah cukup
semoga rekan-rekan tertarik dengan kriptografi dan mau mengembangkannya,
sekali lagi aku mohon maaf klo pengetahuan yang aku share ini sangat jauh dari sempurna..

======= Greetz —|

[1] Allah, tuhan penciptaku
[2] Ayah&ibu, lambang, lian, daffa
[3] my love Susi
[3] y3dips, dan echo staff lainnya
[4] freak ‘abe’ einstein
[5] readyforuse20
[6] ethan0ir
[7] sigit2003
[8] dan penghuni LKTI lainnya

======= Referensi —|

[1] http://id.wikipedia.org/wiki/Kriptografi
[2] cryptanalysis number theory
[3] kreasiku sendiri

http://ezine.echo.or.id/ezine19/e19.005.txt

Bagaimana Ramalan Harian, Ramalan Zodiak Harian, Ramalan Mingguan, Zodiak Mingguan, Ramalan Zodiak Mingguan Anda?

Cek Harga HANDPHONE, MOTOR dan Harga Lainnya di www.harganya.com!

Facebook

Twitter