Copy Link
Add to Bookmark
Report

Echo Magazine Issue 19 Phile 0x005

eZine's profile picture
Published in 
Echo Magazine
 · 4 years ago

  


______ _ _____
___ __ _(_) __|___ __| |___|____ |
/ _ \ / _` | |\ \ / _ \ / _` |__ \ |_ |
\__ | | | | |_\ \ (_) | | | |__) |__| |
|___/|_| |_|_|____\___/|_| |_|___/_____|


[ echo|zine, volume 6 issue 19 ]

cryptography : Simple a-symetric algorithm
Brought To You By : x-diamond1
email: kim_diamond1/et/yahoo/dot/com


======= Pengantar ---|

Aku kali ini akan mencoba sharing pengetahuan tentang kriptografi, mohon maaf
bila pengetahuan yang aku bagi begitu dangkal

=== I. Sekilas tentang kriptografi

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=<STDIN>);
print "Kunci Enkrip : ";
chomp($ke=<STDIN>);
@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 : $gab\n";
}
------------- enkripsi.pl ----------------------------------


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

print "\nCipher teks : ";
chomp($plain=<STDIN>);
print "Kunci Dekrip : ";
chomp($kd=<STDIN>);
@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 : $gab\n";
}
------------ 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

*- $e19dot005dottxt - echo|zine - issue#19 - 080808 -*


















← previous
next →
loading
sending ...
New to Neperos ? Sign Up for free
download Neperos App from Google Play
install Neperos as PWA

Let's discover also

Recent Articles

Recent Comments

Neperos cookies
This website uses cookies to store your preferences and improve the service. Cookies authorization will allow me and / or my partners to process personal data such as browsing behaviour.

By pressing OK you agree to the Terms of Service and acknowledge the Privacy Policy

By pressing REJECT you will be able to continue to use Neperos (like read articles or write comments) but some important cookies will not be set. This may affect certain features and functions of the platform.
OK
REJECT