MATEMATIKA
MATEMATIKA
PERSANDIAN
PERSANDIAN
Hendra
Hendra GunawanGunawan, Ph.D., Ph.D. CBSED
Saya menerima pesan dari seorang Saya menerima pesan dari seorang
teman berupa rangkaian bilangan teman berupa rangkaian bilangan
sebagai berikut: sebagai berikut: 64, 43, 82, 55, 133, 95, 140, 97, 3, 2, 64, 43, 82, 55, 133, 95, 140, 97, 3, 2, 46, 31, 95, 65, 46, 31, 123, 85, 40, 27 46, 31, 95, 65, 46, 31, 123, 85, 40, 27 Adakah
Adakah yang yang bisabisa membantumembantu sayasaya mengartikan
Teman
Teman sayasaya telahtelah melakukanmelakukan
pe
pe
-
-nyandian
nyandian
atauataupengkodean
pengkodean
terter- -hadaphadap pesanpesan yang yang inginingin disampaidisampai- -kannya
kannya kepadakepada sayasaya, , daridari rangkairangkai- -an
an hurufhuruf keke rangkaianrangkaian bilanganbilangan seperti
seperti didi atasatas, , supayasupaya pesanpesan terter- -sebut
sebut tidaktidak dapatdapat ((dengandengan mudahmudah) ) dimengerti
Penyandian
Penyandian atauatau pengkodeanpengkodean meme- -rupakan
rupakan suatusuatu bentukbentuk penyimpanpenyimpan- -an
an dan/ataudan/atau pengirimanpengiriman data/ data/ informasi
informasi secarasecara rahasiarahasia. .
Julius Caesar
Julius Caesar telahtelah melakukanmelakukan pengkodean
pengkodean untukuntuk keperluankeperluan suratsurat menyurat
menyurat padapada jamannyajamannya ((lebihlebih daripada
Yang
Yang iaia lakukanlakukan adalahadalah menggesermenggeser setiap
setiap hurufhuruf dalamdalam suratsurat yang yang akanakan dikirimnya
dikirimnya, , misalnyamisalnya 5 5 langkahlangkah keke depan depan:: A A menjadimenjadi F, F, B B menjadimenjadi G,G, . . . , . . . , dandan Z Z menjadimenjadi E.E.
Untuk
Untuk mengirimmengirim pesanpesan yang yang berkataberkata SAYA AKAN PULANG LUSA
SAYA AKAN PULANG LUSA Julius Caesar akan menulis Julius Caesar akan menulis
XFDF FPFS UZQFSL QZXF. XFDF FPFS UZQFSL QZXF.
Untuk memahaminya, geser kembali Untuk memahaminya, geser kembali
setiap huruf 5 langkah ke belakang. setiap huruf 5 langkah ke belakang.
Untuk dapat memecahkan suatu Untuk dapat memecahkan suatu pesan yang telah disandikan kita pesan yang telah disandikan kita
harus mengetahui sistem persandi harus mengetahui sistem persandi-
-an y-ang dipakai. Jika sistemnya an yang dipakai. Jika sistemnya
adalah mengggeser setiap huruf 5 adalah mengggeser setiap huruf 5
langkah ke depan, maka untuk langkah ke depan, maka untuk memahami pesan yang telah di memahami pesan yang telah di-
-sandikan kita harus menggeser se sandikan kita harus menggeser se-
-tiap huruf 5 langkah ke belakang. tiap huruf 5 langkah ke belakang.
Kembali ke pesan yang saya terima, Kembali ke pesan yang saya terima,
saya dan teman saya telah menye saya dan teman saya telah menye-
-pakati sebelumnya bahwa kami pakati sebelumnya bahwa kami
akan menggunakan sebuah matriks akan menggunakan sebuah matriks
untuk penyandian.
untuk penyandian. MatriksMatriks yang yang kami
kami pakaipakai adalahadalah M = M = ⎥ ⎦ ⎤ ⎢ ⎣ ⎡ 5 2 7 3
Bagaimana
Bagaimana temanteman sayasaya melakukanmelakukan penyandian
penyandian dengandengan matriksmatriks iniini? ? Pertama
Pertama iaia ubahubah pesanpesan yang yang inginingin disampaikannya
disampaikannya menjadimenjadi rangkaianrangkaian bilangan
bilangan dengandengan aturanaturan:: spasi
Setelah
Setelah ituitu iaia menyusunmenyusun rangkaianrangkaian bilangan
bilangan yang yang diperolehnyadiperolehnya menjadimenjadi sebuah
sebuah matriksmatriks dengandengan duadua barisbaris, , dua
dua bilanganbilangan pertamapertama disimpandisimpan didi kolom
kolom pertamapertama, , dandan seterusnyaseterusnya. . Sebutlah
Sebutlah matriksmatriks yang yang diperolehnyadiperolehnya X.
X. LaluLalu, , iaia hitunghitung hasilhasil kali MX. kali MX. Bilangan
Bilangan--bilangan dalam matriks MX bilangan dalam matriks MX ini diuraikan kembali menjadi rang
ini diuraikan kembali menjadi rang- -kaian bilangan yang ia kirimkan.
Intermezo
Intermezo: : PerkalianPerkalian duadua MatriksMatriks
Hasil
Hasil perkalianperkalian barisbaris keke--1 1 padapada matriks
matriks pertamapertama dandan kolomkolom keke--1 1 pada
pada matriksmatriks keduakedua samasama dengandengan elemen
elemen padapada barisbaris keke--1 1 kolomkolom keke--1 1 pada
pada matriksmatriks didi ruasruas kanankanan:: 3(1) + 7(2) = 17. 3(1) + 7(2) = 17. ⎥ ⎦ ⎤ ⎢ ⎣ ⎡ = ⎥ ⎦ ⎤ ⎢ ⎣ ⎡ ⎥ ⎦ ⎤ ⎢ ⎣ ⎡ 40 57 26 12 37 17 6 5 4 3 2 1 . 5 2 7 3
Berbeda
Berbeda dengandengan perkalianperkalian duadua bilangan
bilangan, , perkalianperkalian duadua matriksmatriks tidaktidak bersifat
bersifat komutatifkomutatif. . SecaraSecara umumumum,, M.N
M.N ≠≠ N.M.N.M. Untuk
Untuk meyakinkanmeyakinkan diridiri, , cobalahcobalah ambil
ambil duadua matriksmatriks 2 x 2, 2 x 2, sebutsebut M M dandan N,
Matriks
Matriks bujursangkarbujursangkar, , sepertiseperti M =M =
3
3 77
2
2 5 5
mempunyai
mempunyai inversinvers MM--11 ==
5
5 --77
--22 33 yang
yang berbersifatsifat: M.M: M.M--11 = I = M= I = M--11.M,.M,
di
di manamana I I adalahadalah matriksmatriks identitasidentitas
1
1 00 0
Lalu
Lalu bagaimanabagaimana sayasaya dapatdapat meme- -mecahkan
mecahkan pesanpesan taditadi? ? MudahMudah sajasaja. . Saya
Saya tinggaltinggal melakukanmelakukan kebalikankebalikan dari
dari apaapa yang yang telahtelah temanteman sayasaya lakukan
lakukan, , daridari langkahlangkah terakhirterakhir sampai
sampai langkahlangkah pertamapertama. . PertamaPertama, , saya
saya susunsusun rangkaianrangkaian bilanganbilangan didi atas
atas menjadimenjadi sebuahsebuah matriksmatriks (yang (yang tdd
64 82 133 140 3
64 82 133 140 3 46 95 46 123 4046 95 46 123 40 43 55 95 97 2
43 55 95 97 2 31 65 31 85 2731 65 31 85 27
Kemudian
Kemudian sayasaya kalikankalikan Y Y dengandengan MM--11
dari
dari kirikiri ((janganjangan daridari kanankanan karenakarena perkalian
perkalian matriksmatriks tidaktidak komutatifkomutatif):):
5
5 --77 64 82 133 140 3 46 95 46 123 4064 82 133 140 3 46 95 46 123 40
--2 3 43 55 95 97 2 31 65 31 85 272 3 43 55 95 97 2 31 65 31 85 27
19 25 0
19 25 0 21 1 13 20 13 20 1121 1 13 20 13 20 11 1 1 19
1 1 19 11 0 1 5 1 9 111 0 1 5 1 9 1
Lalu saya susun bilangan
Lalu saya susun bilangan--bilangan bilangan dalam matriks di atas menjadi
dalam matriks di atas menjadi rangkaian bilangan di bawah ini rangkaian bilangan di bawah ini
19, 1, 25, 1, 0, 19, 21, 11, 1, 0, 13, 1, 19, 1, 25, 1, 0, 19, 21, 11, 1, 0, 13, 1,
20, 5, 13, 1, 20, 9, 11, 1. 20, 5, 13, 1, 20, 9, 11, 1.
Dengan mudah saya dapat membaca Dengan mudah saya dapat membaca
rangkaian bilangan ini sebagai rangkaian bilangan ini sebagai
SAYA SUKA MATEMATIKA. SAYA SUKA MATEMATIKA.
Mungkin ada yang bertanya, bagai Mungkin ada yang bertanya, bagai-
-mana kalau kita menerima sebuah mana kalau kita menerima sebuah pesan yang telah disandikan tetapi pesan yang telah disandikan tetapi
kita tidak tahu sistem persandian kita tidak tahu sistem persandian yang digunakan oleh si pengirim? yang digunakan oleh si pengirim?
Mungkin kita dapat mengutak
Mungkin kita dapat mengutak--atik atik dan memecahkan sandi tersebut. dan memecahkan sandi tersebut.
Seandainya kita tidak tahu apa yang Seandainya kita tidak tahu apa yang
telah dilakukan oleh Julius Caesar telah dilakukan oleh Julius Caesar
sebelum ia mengirim pesan tadi, sebelum ia mengirim pesan tadi, tidak terlalu sulit bagi kita (yang tidak terlalu sulit bagi kita (yang hidup di era komputer) untuk me hidup di era komputer) untuk me-
-mecahkan maksud pesan tersebut. mecahkan maksud pesan tersebut.
Sistem persandian yang kita pakai Sistem persandian yang kita pakai
tentunya harus sedemikian rupa tentunya harus sedemikian rupa
sehingga jika informasi yang kita sehingga jika informasi yang kita
simpan atau kirim jatuh ke tangan simpan atau kirim jatuh ke tangan
orang lain, maka sulit bagi orang orang lain, maka sulit bagi orang
tersebut untuk memahaminya. tersebut untuk memahaminya.
Untuk sistem persandian mengguna Untuk sistem persandian mengguna-
-kan matriks, semakin besar ukuran kan matriks, semakin besar ukuran
matriks yang digunakan, semakin matriks yang digunakan, semakin
sulit sandi untuk dipecahkan. sulit sandi untuk dipecahkan.
Selain menggunakan matriks, masih Selain menggunakan matriks, masih
banyak perangkat lain yang dapat banyak perangkat lain yang dapat
digunakan untuk persandian. digunakan untuk persandian.
Persandian yang cukup canggih dan Persandian yang cukup canggih dan
banyak dipakai di kalangan agen banyak dipakai di kalangan agen rahasia sekarang ini biasanya me rahasia sekarang ini biasanya me-
-manfaatkan bilangan
manfaatkan bilangan--bilangan bilangan
prima
prima
yang besar sekali.Gagasannya sederhana: Jika kita Gagasannya sederhana: Jika kita punya dua buah bilangan prima, punya dua buah bilangan prima,
maka mudah bagi kita untuk meng maka mudah bagi kita untuk meng-
-hitung hasil kalinya. Tetapi sebalik hitung hasil kalinya. Tetapi sebalik-
-nya, jika kita punya sebuah bilangan nya, jika kita punya sebuah bilangan komposit (yang merupakan hasil kali komposit (yang merupakan hasil kali dari sejumlah bilangan prima), maka dari sejumlah bilangan prima), maka
sulit bagi kita untuk memfaktorkan sulit bagi kita untuk memfaktorkan-
-nya, apalagi jika bilangan tersebut nya, apalagi jika bilangan tersebut
besar sekali. besar sekali.
Sebagai
Sebagai contohcontoh, , dengandengan mudahmudah kitakita dapat
dapat menghitungmenghitung
257 x 65.537 = 16.843.009. 257 x 65.537 = 16.843.009. Tetapi
Tetapi cobacoba faktorkanfaktorkan bilanganbilangan didi bawah
bawah iniini::
4.294.967.297. 4.294.967.297.
Jawab
Jadi,
Jadi, dengan menggunakan fakta ttg dengan menggunakan fakta ttg bilangan prima tsb, mudah bagi kita bilangan prima tsb, mudah bagi kita
untuk membuat sandi, namun sulit untuk membuat sandi, namun sulit
bagi orang untuk memecahkan sandi bagi orang untuk memecahkan sandi
kita, kecuali bila mereka tahu sistem kita, kecuali bila mereka tahu sistem persandian yang kita pakai. Gagasan persandian yang kita pakai. Gagasan
ini dicetuskan oleh Ron
ini dicetuskan oleh Ron RivestRivest, Adi , Adi
Shamir
Shamir, dan Len , dan Len AdlemanAdleman. Sistem . Sistem persandian mereka dikenal sebagai persandian mereka dikenal sebagai
teknik RSA
teknik RSA
..Teknik
Teknik RSA RSA menggunakanmenggunakan sebuahsebuah bilangan
bilangan kompositkomposit N (N (besarbesar) ) dandan bilangan
bilangan
kunci
kunci
penyandi
penyandi
r. r. PasanganPasangan bilanganbilangan N N dandan r r dikenaldikenal sebagaisebagai
public key
public key
. .Selain
Selain keduakedua bilanganbilangan tersebuttersebut, , terter- -dapat
dapat bilanganbilangan
kunci
kunci
pemecah
pemecah
s s untukuntuk memecahkanmemecahkan sandisandi. . BilanganBilangan ini
Sebagai
Sebagai ilustrasiilustrasi, , kitakita gunakangunakan N = N = 33 (= 3 x 11)
33 (= 3 x 11) dandan r = 7. [r = 7. [BilanganBilangan r r dipilih
dipilih didi antaraantara 1, 1, ……, 20. , 20. DiDi sinisini 20 20 = (3
= (3 –– 1) x (11 1) x (11 –– 1).]1).] Untuk
Untuk menyandikanmenyandikan hurufhuruf B (= 2), B (= 2), kita
kita hitunghitung 2277 mod(33) = 29.mod(33) = 29.
Jadi
Jadi sandisandi untukuntuk hurufhuruf B B adalahadalah bilangan
Bila
Bila kitakita menerimamenerima sandisandi 29, 29, makamaka pesan
pesan aslinyaaslinya adalahadalah 2 (= B). 2 (= B). TetapiTetapi bagaimana
bagaimana kitakita bisabisa mendapatkanmendapatkan bilangan
bilangan 2 2 daridari 29, 29, dengandengan mengmeng- -gunakan
gunakan bilanganbilangan N = 33 N = 33 dandan r = 7?r = 7? (N
(N dandan r r diketahuidiketahui sbgsbg
public key
public key
.).) DalamDalam halhal iniini, , kitakita harusharus mengetahuimengetahui bilangan
Bilangan
Bilangan kuncikunci pemecahpemecah s s didi sinisini adalah
adalah bilanganbilangan yang yang memenuhimemenuhi rs
rs = 1 mod (20).= 1 mod (20). Untuk
Untuk r = 7, r = 7, kitakita dapatkandapatkan s = 3.s = 3. Sandi 29
Sandi 29 kitakita terjemahkanterjemahkan sebagaisebagai 29
Dengan
Dengan menggunakanmenggunakan N = 33 N = 33 dandan r = 7 (
r = 7 (dandan, , tentutentu sajasaja, s = 3), , s = 3), cobacoba pecahkan
pecahkan sandisandi berikutberikut::
7, 1, 26, 2, 0, 15, 13, 0, 30, 21, 20. 7, 1, 26, 2, 0, 15, 13, 0, 30, 21, 20.
Rangkaian
Rangkaian bilanganbilangan iniini harusharus diterditer- -jemahkan
jemahkan sbgsbg rangkaianrangkaian bilanganbilangan didi {0, 1,
{0, 1, …… , 32}. , 32}. DiDi sinisini 0 = 0 = spasispasi, 1 = , 1 = A,
Sekadar
Sekadar informasiinformasi, , cabangcabang ilmuilmu matematika
matematika yang yang mempelajarimempelajari persandian
persandian adalahadalah kriptografikriptografi
(
(
to
to
encript
encript
= = membuatmembuat sandisandi).). DiDi negaranegara kitakita, , terdapatterdapat LembagaLembaga Sandi Negara
Sandi Negara yang yang menanganimenangani persandian
persandian untukuntuk keperluankeperluan negaranegara. . Lembaga
Lembaga iniini bernaungbernaung didi bawahbawah Departemen