Sandi Playfair

Dalam teknik ini pesan dienkripsi berdasarkan pasangan huruf, bukan huruf tunggal seperti sandi klasik lainnya. Sandi *Playfair* ditemukan oleh ahli Fisika berkebangsaan Inggris bernama Sir Charles Wheatstone (1802 - 1875) tetapi dipromosikan oleh Baron Lyon Playfair (1819 - 1898) pada tahun 1854. Dibandingkan dengan sandi-sandi lainnya, sandi *Playfair* dapat meningkatan keamanan dalam pengiriman sebuah pesan rahasia sehingga dapat memberikan jaminan integritas data serta menjaga kerahasiaan. Sandi *Playfair* pertama kali digunakan untuk tujuan-tujuan taktis oleh pasukan Inggris dalam Perang Boer II dan Perang Dunia I. Australia dan Jerman juga menggunakan sandi ini untuk tujuan yang sama dalam Perang Dunia II. Sandi *Playfair* paling sering digunakan karena penggunaannya yang sangat sederhana dan tidak memerlukan peralatan khusus untuk membaca atau menerjemahkan suatu sandi yang bersifat rahasia. Pada perkembangan selanjutnya, sandi ini tidak lagi digunakan oleh pasukan militer karena telah muncul berbagai perangkat enkripsi digital untuk menerjemahkannya. Sandi *Playfair* dianggap tidak aman lagi untuk menjaga suatu kerahasiaan pesan karena komputer dengan peranti lunak tertentu dapat memecahkan suatu sandi dalam hitungan detik.

Sandi *Playfair* menggunakan 25 huruf sebagai kunci yang disusun dalam bujur sangkar dengan menghilangkan huruf J dari abjad. Susunan kunci di dalam bujur sangkar tersebut diperluas dengan menambahkan kolom keenam dan baris keenam.

## Karakteristik
* Merupakan salah satu sandi substitusi, yaitu setiap huruf dalam plainteks diganti dengan huruf yang berada dalam papan kunci.
* Jumlah karakter pada sandi akan selalu genap.
* Perhitungan frekuensi kemunculan akan menghasilkan tidak lebih dari 25 karakter huruf karena huruf J tidak akan pernah muncul.
* Sandi *Playfair* hanya dapat digunakan untuk proses enkripsi dan dekripsi data yang berupa teks alphabet, karakter yang tidak berupa teks alphabet dapat dihindari dengan menuliskannya dalam bentuk teks alphabet.
* Perulangan panjang akan muncul pada jumlah karakter huruf yang genap.
* Banyak kemungkinan transformasi untuk suatu pasangan huruf.

## Keunikan
* Setiap karakter pada pasangan huruf tidak akan muncul pada sandi dengan karakter yang sama.
* Setiap karakter dalam pasangan huruf dapat direprentasikan dengan 5 karakter lain dalam suatu sandi.
* Setiap karakter huruf dapat merepresentasikan 5 karakter huruf lain.
* Setiap karakter tidak dapat merepresentasikan karakter yang dikombinasikan secara diagonal.
* Ketika suatu karakter sandi sudah diinterpretasikan sebagai suatu substitusi dari karakter pasangan huruf, ada 20% kemungkinan bahwa karakter tersebut merepresentasikan karakter pasangan huruf yang sama pada kemunculan lain.

## Keunggulan
Keunggulan sandi *Playfair* dibandingkan dengan sandi klasik lainnya adalah:
* Proses enkripsi dan dekripsi data menggunakan kombinasi dua huruf sehingga kriptanalis yang menggunakan teknik analisis frekuensi sangat sulit untuk memecahakan sandi *playfair*.
* Tabel kunci hanya digunakan sekali karena terdapat kemungkinan tabel kunci tersebut telah dipecahkan oleh pihak yang tidak berkepentingan.

## Kelemahan
Kelemahan sandi *Playfair* dibandingkan dengan sandi klasik lainnya adalah:
* Sandi *Playfair* dengan mudah dapat dipecahkan dengan menggunakan teknik frekuensi ditribusi ganda, yaitu dengan menghitung frekuensi kemunculan pasangan dua huruf sandi yang kemudian dibandingkan dengan frekuensi pasangan dua huruf pada suatu bahasa.
* Sandi*Playfair* tidak menggunakan huruf J dalam tabel kunci sehingga bisa menimbulkan makna atau arti ganda pada saat memecahkan atau menerjemahkan suatu sandi.
* Sandi*Playfair* tidak cocok digunakan untuk menyampaikan pesan rahasia yang cukup panjang.

## Contoh
* Tabel kunci bujur sangkar
** Memilih kunci dari sebuah kata atau kalimat yang mudah diingat, misalnya: `ELDORIDO`.
** Membuang huruf yang berulang dan huruf J jika ada, sehingga menjadi: `ELDORI`.
** Menambahkan huruf-huruf yang belum ada (kecuali J), sehingga akan menjadi: `ELDORIABCFGHKMNPQSTUVWXYZ`.
** Memasukkan kunci tersebut ke dalam bujur sangkar.

* Jumlah kemungkinan kunci adalah, 25!=15.511.210.043.330.985.984.000.000.
* Memperluas susunan kunci di dalam bujur sangkar dengan menambahkan kolom keenam dan baris keenam.
* Tabel kunci akan menjadi:

* Pesan rahasia yang akan disampaikan misalnya adalah "`TEKNOLOGI KOMUNIKASI`"

Cara mengubah pesan menjadi sandi adalah sebagai berikut:
* Mengganti huruf J (bila ada) dengan huruf I.
* Menulis pesan dalam pasangan huruf.
* Jika terdapat pasangan huruf yang sama, maka harus disisipkan huruf X di tengahnya.
* Jika jumlah huruf ganjil, maka harus ditambahkan huruf X di akhir kunci.

Pesan dienkripsi menjadi:

`<u>TE</u> <u>KN</u> <u>OL</u> <u>OG</u> <u>IK</u> <u>OM</u> <u>UN</u> <u>IK</u> <u>AS</u> <u>IZ</u>`

Algoritme enkripsi adalah sebagai berikut:

* Jika terdapat dua huruf pada baris kunci yang sama maka masing-masing huruf diganti dengan huruf di kanannya (pada kunci yang sudah diperluas).
* Jika terdapat dua huruf pada kolom kunci yang sama maka masing-masing huruf diganti dengan huruf di bawahnya (pada kunci yang sudah diperluas).
* Jika dua huruf tidak terdapat pada baris atau kolom yang sama, maka huruf pertama diganti dengan huruf pada perpotongan baris huruf pertama dengan kolom huruf kedua. Huruf kedua diganti dengan huruf pada titik sudut keempat dari persegi panjang yang dibentuk dari 3 huruf yang digunakan.
* Kata sandi
** Pesan rahasia yang akan disampaikan atau plainteks (pasangan huruf) adalah `<u>TE</u> <u>KN</u> <u>OL</u> <u>OG</u> <u>IK</u> <u>OM</u> <u>UN</u> <u>IK</u> <u>AS</u> <u>IZ</u>`
** Kata sandi dari pesan rahasia yang disampaikan (Cipherteks) adalah `PO MG RD EM BG CT ZU BG BQ FV`

## Dekripsi sandi
Dekripsi adalah proses mengubah kata sandi (cipherteks) menjadi kata terang (plainteks). Proses dekripsi sangat mirip dengan proses enkripsi dan lebih mudah dilakukan. Untuk melakukan proses dekripsi, cipherteks dikelompokkan terlebih dahulu dalam pasangan huruf seperti pada saat enkripsi, kemudian menggunakan algoritme dekripsi yang merupakan kebalikan dari algoritma enkripsi untuk setiap pasangan huruf tersebut.

Algoritma dekripsi sebagai berikut
* Jika terdapat dua huruf pada baris kunci yang sama maka masing-masing huruf diganti dengan huruf di kirinya (pada kunci yang sudah diperluas).
* Jika terdapat dua huruf pada kolom kunci yang sama maka masing-masing huruf diganti dengan huruf di atasnya (pada kunci yang sudah diperluas).
* Jika dua huruf tidak terdapat pada baris atau kolom yang sama, maka huruf pertama diganti dengan huruf pada perpotongan baris huruf pertama dengan kolom huruf kedua. Huruf kedua diganti dengan huruf pada perpotongan baris huruf kedua dengan kolom huruf pertama.
* Jika terdapat huruf yang berada di antara dua huruf yang sama (tidak sesuai pada tempatnya), maka huruf tersebut dapat dihilangkan.

## Pranala luar
* Playfair Cipher 
* Pengenalan Kriptografi
* Playfair