<div style='background-color: none transparent;'><a href='http://www.rsspump.com/?web_widget/rss_ticker/news_widget' title='News Widget'>News Widget</a></div>

Kamis, 22 Maret 2012

Algoritma Chiper Geser (Shift Chiper) ~ Cryptography

Prinsip utama chiper geser terletak pada penggeseran huruf dengan panjang tertentu, sesuai dengan kesepakatan antara beberapa orang yang saling berkomunikasi, dan panjang penggeseran itulah yang dikenal dengan “kunci”. Misalkan : seseorang ingin mengirimkan huruf “a” pada teman atau relasinya, maka pengirim menggeser “a” ke huruf selanjutnya sepanjang 6 satuan, dan menghasilkan huruf “g” yang demikian itu dinamakan dengan proses enkripsi. Kemudian, hasilnya dikirimkan ke relasinya.
Mendapat kiriman dari temannya, maka sesuai dengan kesepakatan kunci, si penerima mengubah kembali hurufnya dengan menggeser huruf “g” ke huruf sebelumnya sepanjang 6 satuan pula dan menghasilkan huruf “a” kembali yang dinamakan proses dekripsi.
Berikut adalah definisi matematis dari chiper geser :

Diberikan P=C=K=Z26 , di definisikan :
eK(x)=x+K mod 26
dandK(y)=y-k mod 26 ;dimana (x,y) anggota Z26


Penjelasan simbol :

P=Plaintext (Teks Asli)

C=Chipertext (Text setelah dienkripsi)
K=KeyKunci enkripsi

Z26=mendefinisikan hanya untuk huruf abjad az

eK(x)=enkripsi dengan kunci K dan yang ingin dienkripsi x

dK(y)=dekripsi dengan kunci K dan yang ingin didekripsi y

Sebelumnya silakan buat terlebih dahulu form untuk input plaintext

if ($encrypt == "crypto") {
$len_plaintext = strlen($plaintext);
$shift = intval($shiftchiper);
$shift = $shift % 26;
for ($i = 0;$i < $len_plaintext; $i++) {
$avg = $plaintext[$i];
$ord_plaintext = ord($avg);
if (($ord_plaintext > 96) and ($ord_plaintext < 123)) {
$change = ($ord_plaintext + $shift) % 123;
if ($change < 97) {$change = $change + 97;}
$chr_plaintext = chr($change);
$result .= $chr_plaintext;
}
else {$result .= $avg;}
}
}

if ($decrypt == "crypto") {
$len_chipertext = strlen($chipertext);
$shift = intval($shiftchiper);
$shift = $shift % 26;
for ($i = 0;$i < $len_chipertext; $i++) {
$avg = $chipertext[$i];
$ord_chipertext = ord($avg);
if (($ord_chipertext > 96) and ($ord_chipertext < 123)) {
$change = ($ord_chipertext - $shift) % 123;
if ($change < 97) {$change = $change + 26;}
$chr_chipertext = chr($change);
$result1 .= $chr_chipertext;
}
else {$result1 .= $avg;}
}

0 komentar:

Posting Komentar

Related Posts Plugin for WordPress, Blogger...