|
|
AJAX !!!!! SAJAXXX !!! XXXX !! HAHAHHA
|
|
OOOHH TRUST MEE !! THIS IS ALL U NEED TO PLAY AJAX HAHAHAHHA
var xmlhttp
function xxx() { xmlhttp=GetXmlHttpObject(); if (xmlhttp==null) { alert ("Your browser does not support AJAX!"); // saat nya buang komputer !!! return; } var url=""; //tulis nama halaman server side!! url=url+"?q="; // blablabla query string url=url+"&sid="+Math.random(); xmlhttp.onreadystatechange=stateChanged; // ketika rede , panggil fungsi statechange xmlhttp.open("GET",url,true); //method & URL @_@ xmlhttp.send(null); // kirim ke server side }
function stateChanged() { if (xmlhttp.readyState==4) //4 brarti data dah siap { //tulis apa yang akan kamu lakukan ketika proses di server dah lese dan hasilnya dah di balikin ke javascript } }
function GetXmlHttpObject() { if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari return new XMLHttpRequest(); } if (window.ActiveXObject) { // code for IE6, IE5 return new ActiveXObject("Microsoft.XMLHTTP"); } return null; }
sumber : http://www.w3schools.com/ajax/ajax_xmlfile.asp (dengan perubahan seperlunya) |
posted by Ian Wijaya @ 5:06 AM  |
|
|
|
|
RSA - (Ron) Rivest, (Adi) Shamir and (Len) Adleman
|
|
RSA merupakan salah satu algoritma enkripsi asymetric, dimana kunci untuk enkripsi (public key) dan kunci untuk deskripsi (private key) nya berbeda.
Algoritma pembentukan key RSA : 1. Pilih dua bilangan prima , p dan q. (nilai p dan q akan menentukan jumlah bit yang mampu di-enkripsi dan di-dekripsi) 2. Hitung n, dimana n = pq 3. Hitung (φ)phi, (φ)phi dimana = (p-1)(q-1). 4. Pilih e, dimana e merupakan sebuah integer yang berelatif prima dengan phi dan memenuhi syarat 1 < e < phi *relatif prima brarti GCD/greatest commons divisor (baca: FPB) dari phi dan e adalah 1. 5. Hitung d, dimana 1 < d < phi dan ed ≡ 1 (mod phi).
public key-nya (n, e) dan private key-nya (n, d). Untuk menjamin kerahasiaan key yang di generate maka simpanlah nilai dari p, q, d dan phi
->enkripsi key : c = m^e mod n ->dekripsi key : m = c^d mod n
contoh : 1.) p = 3 dan q =11 2.) n = 33 3.) phi = 20 4.) cari e yang cocok , e = 7 5.) pencarian d memang agak sulit, pada kasus ini akan digunakan cara brute force, perhatikan langkah berikut : I : d = 1 -> 1*7 != 1 mod 20 II : d = 2 -> 2*7 != 1 mod 20 III : d = 3 -> 3*7 == 1 mod 20 maka d = 3. (intinya lakukan perulangan hingga memenuhi syarat e.d = 1 mod 20) namun cara ini kurang elegan, bayangkan saja bila angkanya mencapai nilai d yang ratusan. Hal ini dapat di atasi dengan Extended Euclidean algorithm, yang akan dibahas kemudian.
setelah mendapat angka-angka diatas maka dapat ditentukan kunci enkripsi dan dekripsi nya
enkripsi : c = m^7 mod 33 dekripsi : m = c^3 mod 33
contoh : bila ada plain text berupa karakter dengan nilai ascii 16 maka cipher textnya adalah c = 16^7 mod 33 -- kita bisa selesaikan dengan menggunakan aritmatika modular -- = [(16^4 mod 33) x (16^2 mod 33) x (16^1 mod 33)] mod 33 = [31 x 25 x 16] mod 33 = 25
maka cipher text nya adalah 25
berikut adalah cara untuk men-dekrip nya : m = c^3 mod 33 = 25^3 mod 33 = 16
Lalu bagaimana cara mencari nilai d menggunakan Extended Euclidean ?? Saya akan menjelaskan nya dari dasar.
algoritma Euclid mengatakan demikian : FPB dari 2 buah bilangan adalah tetap(tak berubah) jika bilangan yang besar dikurangi oleh bilangan yang lebih kecil. contoh : saya memiliki angka 21 dan 30, FPB nya adalah 3 maka 9 tetap memiliki FPB = 3 dengan angka-angka diatas. perhatikan : 30 = 21 x 1 + 9 -> 9 = 30 - 21 21 = 9 x 2 + 3 -> 3 = 21 -18 9 = 3 x 3 + 0 -> 0 = 9 - 9
maka Divisor (bercetak tebal) yang terakhir-lah yang akan menjadi FPB nya. contoh 2: cari FPB 121 dan 99. 121 = 99 x 1 + 22 99 = 22 x 4 + 11 22 = 11 x 2 + 0 jadi FPB nya adalah 11
Lupakan sejenak teori diatas. mari simak teori teman saya, si Bezout. Bézout's identity mengatakan bahwa apabila terdapat persamaan ax + by = d dimana a dan b merupakan bilangan integer bukan 0 dan d merupakan FPB dari a dan b maka x dan y dapat dicari. sampai di sini kita sudah mengetahui bahwa e merupakan relatif prima dari phi. relatif prima brarti FPB e dan phi adalah 1, sehingga akan membentuk persamaan :
e.x + phi.y = 1
dengan menggunakan modular multiplicative inverse maka :
e.x = 1 mod phi dan phi.y = 1 mod e
Hey2 tunggu dulu !!!! keknya serupa sama syarat cari d ya ??!!!
e.d = 1 mod phi
yupzz !!! dengan menggunakan x = d
nah sekarang tinggal cara untuk mendapatkan kondisi e.x + phi.y = 1 mudah saja, sohib saya sudah menciptakan algoritma extended Euclidean. rumus nya demikian :

dimana 2 nilai pertama dari r adalah
r1 = a = a(1) + b(0) r2 = b = a(0) + b(1)
maka langsung saja kita kerjakan soal contoh di atas. kita cari dulu sisa(remainder/ yang dibelakang tanda +) dan quotient nya (dibelakang tanda x). phi = 20 dan e = 7
20 = 7 x 2 + 6 7 = 6 x 1 + 1 6 = 1 x 6 + 0
dengan menggunakan rumus diatas maka akan di dapat iterative seperti ini r1= 20 = 20 x 1 + 7 x 0 r2= 7 = 20 x 0 + 7 x 1 --lalu dari r3, gunakan sisa dan quotient dari perhitungan di atas
r3= sisa = (20 x 1 + 7 x 0) - quotient (20 x 0 + 7 x 1) r3= 6 = (20 x 1 + 7 x 0) - 2 (20 x 0 + 7 x 1) r3= 6 = (20 x 1 + 7 x -2)
r4= 1 = (20 x 0 + 7 x 1) - 1 (20 x 1 + 7 x -2) r4= 1 = (20 x -1 + 7 x 3)
r5= 0 //-- berhenti
ambil r pada iterative n-1. jadi pada kasus ini ambil iterative ke 4 (r4) sehingga didapat : 20 x -1 + 7 x 3 =1 7 x 3 = 1 mod 20 jadi d = 3
sekilas cara ini memang lebih sulit dari pada cara coba-coba di atas, namun untuk bilangan yang besar cara ini sungguh jauh lebih efektif. tq
(menjawab pertanyaan Alex Siahaan -06 PUT)
teman2,
misal kita mau cari nilai d dari :
de = 1 mod (480) dengan e = 11
11 d = a. mod 480+1
gimana cara gampang cari nilai D agar bisa sama dengan nilai a.mod480+1, tanpa harus mencoba satu per satu dari semua kemungkinan nilai..
480 = 11 x 43 + 7 11 = 7 x 1 + 4 7 = 4 x 1 + 3 4 = 3 x 1 + 1 3 = 1 x 3 + 0
R1 = 480 = (480 x 1 + 11 x 0) R2 = 11 = (480 x 0 + 11 x 1)
R3 = 7 = (480 x 1+ 11 x 0) - 43 (480 x 0 + 11 x 1) R3 = 7 = (480 x 1 + 11 x -43)
R4 = 4 =(480 x 0 + 11 x 1) - 1(480 x 1 + 11 x -43) R4 = 4 = (480 x -1 + 11 x 44)
R5 = 3 = (480 x 1 + 11 x -43) - 1 (480 x -1 + 11 x 44 ) R5 = 3 = (480 x 2 + 11 x -87)
R6 = 1 = (480 x -1 + 11 x 44) - 1 (480 x 2 + 11 x - 87) R6 = 1 = (480 x -3 + 11 x 131)
R7 = 0 //-- selesai
11 x 131 = 1 mod 480 jadi d = 131 |
posted by Ian Wijaya @ 12:36 AM  |
|
|
|
|
| About Me |
|

Name: Ian Wijaya
Home: Slawi, Jawa Tengah, Indonesia
See my complete profile
|
| Previous Post |
|
| Archives |
|
|
| Links |
|
|
| Powered by |
 |
| Ads |
|
|
|