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";
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.