Reciprocal polyalphabetic substitution cipher invented by Giovan Battista Bellaso in 1563. Uses 13-row substitution tableau where same operation encrypts and decrypts. Key feature is reciprocal property making it self-inverse.
| Property | Value |
|---|---|
| Category | Classical Ciphers |
| Sub-category | Classical Cipher |
| Security status | 🎓 Educational Only |
| Complexity | Intermediate |
| Inventor | Giovan Battista Bellaso |
| Year | 1563 |
| Origin | 🇮🇹 Italy |
| Source | algorithms/classical/porta.js |
Status: 🎓 Educational Only
| Issue | Description | Mitigation |
|---|---|---|
| Short keys create detectable repeating patterns vulnerable to Kasiski examination | — | Use longer, non-repeating keys |
| Only 13 effective substitution alphabets vs 26 in full polyalphabetic ciphers | — | Educational use only - not suitable for actual security |
3 vectors ship with this algorithm and run in the test suite. Byte values are hexadecimal.
Vector 1 — Practical Cryptography worked example - DEFENDTHEEASTWALLOFTHECASTLE under FORTIFICATION
| Field | Value |
|---|---|
key |
464f5254494649434154494f4e |
input |
444546454e445448454541535457414c4c4f46544845434153544c45 |
expected |
53594e4e4a534356524e524c41485554554b5543565259524c414e59 |
Vector 2 — Reciprocity - the same worked example run again on its own ciphertext returns the plaintext
| Field | Value |
|---|---|
key |
464f5254494649434154494f4e |
input |
53594e4e4a534356524e524c41485554554b5543565259524c414e59 |
expected |
444546454e445448454541535457414c4c4f46544845434153544c45 |
Vector 3 — First row of the published tableau read straight off - key letter A pairs A-M with N-Z
| Field | Value |
|---|---|
key |
41 |
input |
4142434445464748494a4b4c4d4e4f505152535455565758595a |
expected |
4e4f505152535455565758595a4142434445464748494a4b4c4d |