Atak siłowy

Łamanie szyfru Cezara i rola szyfrowania informacji - Informatyka - technikum klasa 1 (Python)

Szyfr Cezara ma tylko **25 sensownych kluczy** (klucz 0 i 26 nic nie zmienia). Kto przechwyci szyfrogram, może po prostu sprawdzić wszystkie: to **atak siłowy** (brute force). Wystarczy wypisać 25 prób odszyfrowania i znaleźć wzrokiem tę, która ma sens. Szyfr, który da się złamać przeglądem wszystkich kluczy, nie chroni żadnej tajemnicy. Współczesne szyfry mają tak wiele kluczy (np. 2^128), że ich przeglądanie trwałoby miliardy lat.

def decrypt(text, key):
    result = ""
    for ch in text:
        if "A" <= ch <= "Z":
            result += chr((ord(ch) - ord("A") - key) % 26 + ord("A"))
        else:
            result += ch
    return result

secret = "TUJBXFTJ I RWOXAVJCHTR KNMIRN F YRJCNT"
for key in range(1, 26):
    print(key, decrypt(secret, key))

Ładowanie interaktywnego edytora... Jeśli się nie pojawi, włącz JavaScript.

Wszystkie lekcje kursu Informatyka - technikum klasa 1·Zaloguj się, aby zapisać postęp na koncie.