Sistem Sandi RSA

Sistem sandi yang cukup canggih dan banyak dipakai untuk pengiriman data rahasia sekarang ini biasanya memanfaatkan bilangan-bilangan prima yang besar sekali.

Gagasannya sederhana: Jika kita mempunyai dua buah bilangan prima, maka mudah bagi kita untuk menghitung hasil kalinya. Tetapi sebaliknya, jika kita mempunyai sebuah bilangan komposit (yang merupakan hasil kali dari sejumlah bilangan prima), apalagi jika bilangan tersebut besar sekali, maka sulit bagi kita untuk memfaktorkannya.

Sebagai contoh, dengan mudah kita dapat menghitung 257 x 65.537 = 16.843.009. Tetapi coba faktorkan bilangan ini: 4.294.967.297. Lumayan sulit kan?

Jadi, dengan menggunakan fakta tentang bilangan prima tersebut, mudah bagi kita untuk membuat sandi, namun sulit bagi orang untuk memecahkan sandi kita, kecuali bila mereka tahu sistem sandi yang kita pakai. Gagasan ini dicetuskan oleh Ron Rivest, Adi Shamir, dan Len Adleman. Sistem sandi mereka dikenal sebagai sistem RSA.

Sistem RSA menggunakan sebuah bilangan komposit N (besar) dan bilangan kunci penyandi r. Pasangan bilangan N dan r dikenal sebagai public key. Selain kedua bilangan tersebut, terdapat bilangan kunci pemecah s (yang tergantung pada r) untuk memecahkan sandi.

Sebagai ilustrasi, kita gunakan N = 33 (= 3 x 11) dan r = 7. [Bilangan r dipilih di antara 1, …, 20. Di sini 20 = (3 – 1) x (11 – 1).] Untuk menyandikan huruf B (= 2), kita hitung 27 mod(33) = 29. Jadi sandi untuk huruf B adalah bilangan 29.

Nah, bila kita menerima sandi 29, maka pesan aslinya adalah 2 (= B). Tetapi bagaimana kita bisa mendapatkan bilangan 2 dari 29, dengan menggunakan bilangan N = 33 dan r = 7? (Ingat bahwa N dan r diketahui sebagai public key.) Dalam hal ini, kita harus mengetahui bilangan kunci pemecah s.

Bilangan kunci pemecah s di sini adalah bilangan yang memenuhi rs = 1 mod (20). Untuk r = 7, kita dapatkan s = 3. Sandi 29 kita terjemahkan sebagai 293 mod(33) = 2.

Dengan menggunakan N = 33 dan r = 7 (dan, tentu saja, s = 3), coba pecahkan sandi berikut: 7, 1, 26, 2, 0, 15, 13, 0, 30, 21, 20. Rangkaian bilangan ini harus Anda terjemahkan sebagai rangkaian bilangan di {0, 1, … , 32}. Di sini 0 = spasi, 1 = A, dan seterusnya (27 s/d 32 tidak terpakai).

Sekadar informasi, cabang ilmu matematika yang mempelajari persandian adalah kriptografi (to encript = membuat sandi). Di negara kita, terdapat Lembaga Sandi Negara yang menangani persandian untuk keperluan negara. Sejak 2017, lembaga ini merupakan bagian dari Badan Siber dan Sandi Negara.

28, 1, 19, 4, 1, 3, 0, 11, 26, 14, 26, 19, 21, 0, 12, 1, 13, 3, 0, 14, 1, 17, 21, 5, 0, 31, 26, 4, 1, 5.

[Artikel ini merupakan penggalan dari artikel “Matematika Persandian” yang saya tulis untuk Majalah Pendidikan Sains Terpadu “Sains” yang terbit pada 1 Agustus 2005. Majalah ini sudah ‘mati’ alias tidak terbit lagi.]

*

Bandung, 28-07-2018

Advertisements

1 Comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s