Atbash šifra a C#

Co je Atbash šifra?
Atbash šifra je jedna z nejstarších známých substitučních šifer. Jde o jednoduchou monoalfabetickou šifru, která pracuje s převrácenou abecedou. To znamená, že každé písmeno v otevřeném textu je nahrazeno písmenem opačným z abecedy. Například v anglické abecedě A se stane Z, B se stane Y, C se stane X, a tak dále.
Atbash šifra byla známa už ve starověkém Izraeli a používala se pro kódování textů hebrejské Bible.
Princip fungování
V Atbash šifře je každý znak mapován na opačný znak v abecedě.
- Pokud používáme anglickou abecedu (26 písmen):
- A ↔ Z
- B ↔ Y
- C ↔ X
- …
- M ↔ N
Šifrování i dešifrování je identické – prostě převedeme písmeno na jeho „opačný pár“.
Bezpečnost Atbash šifry
Atbash šifra je velmi jednoduchá a snadno prolomitelná. Neexistuje žádný klíč, kromě znalosti principu převrácení abecedy.
- Hrubá síla není potřeba, protože existuje jen jedna možnost šifrování.
- Frekvenční analýza jazyka umožňuje rychle zjistit původní text.
Dnes je Atbash zajímavá hlavně historicky a didakticky, protože ukazuje princip substitučních šifer.
Názorný příklad
- Otevřený text:
HELLO
- Šifrovaný text:
SVOOL
Každé písmeno je nahrazeno písmenem opačného pořadí:
- H → S
- E → V
- L → O
- L → O
- O → L
Implementace Atbash šifry v C#
using System; using System.Text; namespace AtbashCipher { internal class Program { private static string EncryptDecrypt(string input) { var result = new StringBuilder(); foreach (var c in input) { if (char.IsLetter(c)) { var d = char.IsUpper(c) ? 'A' : 'a'; var offset = c - d; var transformed = (char)(d + (25 - offset)); // 25 = 26 - 1 result.Append(transformed); } else { result.Append(c); } } return result.ToString(); } private static void Main(string[] args) { var original = "HELLO WORLD"; var encrypted = EncryptDecrypt(original); var decrypted = EncryptDecrypt(encrypted); Console.WriteLine("Original: " + original); Console.WriteLine("Encrypted: " + encrypted); Console.WriteLine("Decrypted: " + decrypted); } } }
- Funkce
EncryptDecrypt
šifruje i dešifruje stejnou logikou. - Příklady ukazují, že šifra je symetrická – stačí aplikovat stejnou funkci dvakrát a získáš původní text.
Závěr
Atbash šifra je fascinující historický příklad monoalfabetické substituce. I když dnes není bezpečná, ukazuje základní principy substitučních šifer a poskytuje jednoduchou cestu k pochopení kódování textu. Implementace v C# demonstruje, jak lze šifru programovat a používat pro základní šifrovací a dešifrovací úkoly.