Minggu, 30 Juni 2024

Sandi Substitusi: Sandi Geser, Tabel Substitusi, dan Sandi Vigenère

Sebelumnya, aku menulis tentang sandi geser. Namun, sandi geser hanyalah salah satu sandi dari kelompok sandi substitusi.

Sandi substitusi adalah penyandian yang mengganti (substitusi) satu nilai dengan nilai lain berdasarkan aturan tertentu. Penggantian ini bisa diterapkan dengan cara yang sama untuk keseluruhan pesan atau berbeda-beda untuk tiap bagian/potongan pesan. Yang dimaksud potongan pesan adalah unit terkecil yang diperhatikan oleh sandi tertentu. Sebagai contoh, untuk pesan berupa teks, unit terkecilnya bisa berupa huruf/karakter.

Sandi Geser

Sandi geser/sandi Caesar adalah penyandian yang dilakukan dengan cara "menggeser" nilai tiap potongan pesan. Penggeseran ini dilakukan ke arah tertentu dan sejumlah tertentu pula. Ini yang dipakai dalam contoh soal pada tulisanku sebelumnya. Sandi ini cukup kuno dan biasanya hanya untuk pembelajaran dan pesan yang diterapkan berbentuk teks.

Sebagai contoh, sandi geser dengan arah geser ke kiri (positif) dan jumlah geser 7 mengubah deretan ABCDE menjadi HIJKL.

Diagram pergeseran huruf-huruf dalam alfabet. Baris pertama adalah hasil geser kiri 7 kali dan berisi ABCDEFGHIJKLMN. Baris kedua adalah deret sebelum digeser dan berisi TUVWXYZABCDEFG. Baris ketiga adalah hasil geser kanan 7 kali dan berisi MNOPQRSTUVWXYZ.
Diagram pergeseran huruf-huruf dalam alfabet

Secara matematis, fungsi sandi geser didefinisikan sebagai berikut:
Misalkan potongan pesan dan potongan teks tersandi adalah gelanggang 26,
eK(x) = (x+K)mod26 dan
dK(y) = (yK)mod26 dengan x,y26.

Tabel Substitusi

Tabel substitusi adalah tabel yang berisi pemetaan dari suatu nilai ke nilai lain. Tabel substitusi digunakan dalam oleh substitusi untuk mengubah tiap potongan pesan menjadi nilai tertentu. Sandi geser adalah kasus khusus dari tabel substitusi (yang disusun agar nilai teks tersandi hanya berjarak sekian dari nilai teks asli).

Sebagai contoh, tabel substitusi berikut:

Nilai teks asli Nilai teks tersandi
AX
BY
CZ

mengubah teks asli BACA menjadi teks tersandi YXZX.

Secara matematis, fungsi sandi substitusi didefinisikan sebagai berikut:
eπ(x) = π(x) dan
dπ(y) = π-1(y) dengan π adalah tabel substitusi dan π-1 adalah inversi tabel substitusi.

Sandi Vigenère

Bila sandi-sandi sebelumnya diterapkan dengan cara yang sama untuk tiap potongan pesan, sandi Vigenère menerapkan penyandian dengan cara yang berbeda-beda untuk tiap potongan pesan. Sandi Vigenère merupakan pengembangan dari sandi Caesar.

Sebagai contoh, untuk nilai geser (1, 2, 3), teks asli ABC disandikan menjadi BDF. Huruf A digeser sekali (A menjadi B); huruf B digeser dua kali (B menjadi D); huruf C digeser tiga kali (C menjadi F).

Secara matematis, sandi Vigenère didefinisikan sebagai berikut:
Misalkan potongan pesan dan potongan teks tersandi adalah (26)m,
eK(x1,x2,...,xm) = (x1+k1,x2+k2,...,xm+km) dan
dK(y1,y2,...,ym) = (y1k1,y2k2,...,ymkm) dengan keseluruhan perhitungan dilakukan dalam gelanggang 26.

Penutup

Sekian dahulu yang bisa kutulis. Tulisan ini bisa dibilang cukup spontan. Jadi, tulisannya agak berantakan. Namun, isinya masih menarik buatku. Semoga bermanfaat!

Tidak ada komentar:

Posting Komentar