Atbash šifra a C#

Padlock Symbolizing Security 1024x585

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.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *