1. Vigenere Cipher
SubstitutionTeori
Vigenere Cipher adalah cipher substitusi polialfabetik yang menggunakan sebuah kata kunci untuk menggeser setiap huruf plaintext dengan jumlah yang berbeda-beda. Setiap huruf pada kata kunci menentukan besar pergeseran untuk huruf plaintext pada posisi yang bersesuaian.
Rumus
- Enkripsi:
Ci = (Pi + Ki) mod 26 - Dekripsi:
Pi = (Ci - Ki + 26) mod 26
Dimana Pi adalah huruf plaintext, Ki adalah huruf kunci pada posisi i mod panjang_kunci, dan Ci adalah huruf ciphertext.
Contoh Manual
Plaintext: HELLO | Key: KEY
| Plaintext | H | E | L | L | O |
|---|---|---|---|---|---|
| Nilai P | 7 | 4 | 11 | 11 | 14 |
| Key | K | E | Y | K | E |
| Nilai K | 10 | 4 | 24 | 10 | 4 |
| (P+K) mod 26 | 17 | 8 | 9 | 21 | 18 |
| Ciphertext | R | I | J | V | S |
Hasil: HELLO → RIJVS
2. Affine Cipher
MathematicalTeori
Affine Cipher adalah cipher substitusi monoalfabetik yang menggunakan fungsi matematika linear untuk mengenkripsi setiap huruf. Kunci terdiri dari dua bilangan bulat a dan b, dimana a harus coprime (relatif prima) terhadap 26.
Rumus
- Enkripsi:
E(x) = (a·x + b) mod 26 - Dekripsi:
D(y) = a⁻¹·(y - b) mod 26
Nilai a yang valid (coprime dengan 26): 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23, 25.
Contoh Manual
Plaintext: HELLO | a = 5, b = 8
| Huruf | x | (5x + 8) mod 26 | Ciphertext |
|---|---|---|---|
| H | 7 | (35 + 8) mod 26 = 17 | R |
| E | 4 | (20 + 8) mod 26 = 2 | C |
| L | 11 | (55 + 8) mod 26 = 11 | L |
| L | 11 | (55 + 8) mod 26 = 11 | L |
| O | 14 | (70 + 8) mod 26 = 0 | A |
Hasil: HELLO → RCLLA
3. Playfair Cipher
DigraphTeori
Playfair Cipher mengenkripsi pasangan huruf (digraph) menggunakan matriks kunci 5×5. Huruf J gabungkan dengan I. Plaintext dipisahkan menjadi pasangan-pasangan, dan jika dua huruf yang sama berdampingan, huruf X disisipkan sebagai pemisah.
Aturan Enkripsi
- Same row: Ganti setiap huruf dengan huruf di kanannya (wrapping).
- Same column: Ganti setiap huruf dengan huruf di bawahnya (wrapping).
- Rectangle: Ganti setiap huruf dengan huruf di baris yang sama, tetapi di kolom pasangannya.
Contoh Manual
Plaintext: HELLO | Key: KEYWORD
Matriks 5×5:
| K | E | Y | W | O |
| R | D | A | B | C |
| F | G | H | I | L |
| M | N | P | Q | S |
| T | U | V | X | Z |
Digraphs: HE LX LO → Dieksekusi berdasarkan posisi matriks.
4. Hill Cipher
MatrixTeori
Hill Cipher adalah cipher poligrafik yang menggunakan aljabar linear. Setiap blok huruf plaintext direpresentasikan sebagai vektor dan dikalikan dengan matriks kunci mod 26. Matriks kunci harus invertible (memiliki invers) dalam modular 26.
Rumus
- Enkripsi:
C = K × P mod 26 - Dekripsi:
P = K⁻¹ × C mod 26
Catatan: Determinan matriks harus coprime dengan 26 agar matriks bisa diinverskan.
Contoh Manual (2×2)
Plaintext: HELP | Key Matrix: [[3, 3], [2, 5]]
Blok 1: HE → [7, 4]
- (3×7 + 3×4) mod 26 = 33 mod 26 = 7 → H
- (2×7 + 5×4) mod 26 = 34 mod 26 = 8 → I
Blok 2: LP → [11, 15]
- (3×11 + 3×15) mod 26 = 78 mod 26 = 0 → A
- (2×11 + 5×15) mod 26 = 97 mod 26 = 19 → T
Hasil: HELP → HIAT
5. Enigma Cipher
MachineTeori
Mesin Enigma adalah mesin cipher elektromekanis yang digunakan Jerman pada Perang Dunia II. KriptoCalc mensimulasikan versi sederhana dengan 3 rotor (I, II, III), Reflektor B, dan mekanisme double-stepping historis.
Komponen & Proses
- Rotor: 3 piringan berputar dengan kabel internal bersilang yang menggantikan substitusi statis.
- Reflector: Mengirim sinyal kembali melalui rotor, menjamin prosesnya self-reciprocal.
- Stepping: Rotor berputar sebelum setiap huruf, mengubah jalur sirkuit secara geometris untuk setiap karakter baru.
Properti Self-Reciprocal
Karena keberadaan reflektor (Reflector B), fungsi mesin bersifat simetris. Mengenkripsi Amenghasilkan X, dan dengan setelan rotor yang identik, mengenkripsi Xakan menghasilkan A. Proses dekripsi sepenuhnya identik dengan proses enkripsi.