Kamis, 08 November 2012

ROT13 dengan LISP

0. Mukodimah

Beberapa hari yang lalu saya iseng ngubrek - ngubrek arsip forum LISP. Dari sekian puluh ribu arsip saya menemukan hal yang menarik. Disebut menarik karena ini seperti game permainan kata tapi tidak terlalu sulit untuk ditela'ah.

Apakah itu ? Ialah ROT13.

Sekedar mengingatkan, bahwa ROT13 merupakan varian dari Caesar Cipher.

Misalnnya pada ilustrasi diatas terdapat sebuah piringan / roda caesar. Perputaran bagian dalam akan menghasilkan pasangan unik antara karakter bagian dalam dengan bagian luar. Nah pada ROT13 pergeseran dibuat sebanyak 13 karakter. Sehingga karakter A akan berpasangan dengan karakter N. Sesuai dengan rumus { Cipher = Plaintext + K } dimana K adalah pergeseran karakter.

Ringkasnya huruf A akan disandikan menjadi huruf N. Untuk permainan pramuka tingkat SD pasti akan menarik...... Contoh penerapan :

"Nu grealngn Nxh tnagrat frxnyv, fnlnat benat Ynva gvqnx gnh"


1. The code

Dari sekian banyak kode di arsip yang saya temukan, saya akan mengutip satu saja. Ingat, pepatah bilang banyak cara untuk menuju ke Roma. Kode ini miliknya Tiarnán Ó Corráin. Inilah kode / formula yang dimaksud :

(defconstant alphabet "aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ")

(defun rot13/char (char)
  (if (alpha-char-p char)
      (char alphabet
            (mod (+ (position char alphabet) 26)
                 52))
      char))

(defun rot13 (string)
  (map 'string #'rot13/char string))

Belajar LISP paling dasar memang membosankan, ini merupakan contoh lain yang bisa dilakukan dengan bahasa pemrograman LISP supaya lebih menarik. Jadi inilah ROT13 dengan LISP.

Lihat bagian (mod (+ (position char alphabet) 26) 52)) dengan seksama.


2. Testing

Sebenarnya kalimat "Nu grealngn Nxh tnagrat frxnyv, fnlnat benat Ynva gvqnx gnh" diatas dihasilkan dengan kode ppada poin satu diatas. Tetapi sebagai prosedur tetap ada baiknya saya tampilkan sebuah ilustrasi seperti di bawah ini :




Nah sekarang yang menjadi persoalan bagaimana cara untuk memecahkan sandi ROT13 ini ? Pasti anda tau dong.... :)

Ya memang dimana ada proses enkripsi maka disitu harus ada proses deskripsi. Lebih jauh, kedua proses ini akan bertanding siapa yang lebih unggul sampai akhirnya manusia bosan sendiri. Tanpa teknik deskripsi [ yang tepat ] jangan harap anda bisa mengekstrak password windows XP teman atau bos anda hahaha

Tidak ada komentar:

Posting Komentar

Related Posts Plugin for WordPress, Blogger...