Główna zawartość
Szyfr przesuwający
Arytmetyka modularna i szyfr przesuwający
Szyfr Cezara jest rodzajem szyfru przesuwającego. Szyfry przesuwające działają używając operatora modulo do szyfrowania oraz odszyfrowywania wiadomości. Szyfr przesuwający ma klucz K który jest liczbą całkowitą z zakresu od 0 do 25. Przekażemy go jedynie tym osobom, którym chcemy udostępnić naszą wiadomość.
Jak szyfrować:
Dla każdej litery w wiadomości M :
1. Przekonwertuj literę na liczbę, która jej odpowiada według kolejności w alfabecie, zaczynając od 0, i podstaw ją pod X we wzorze poniżej.
(A=0, B=1, C=2, ..., Y=24, Z=25)
(A=0, B=1, C=2, ..., Y=24, Z=25)
2. Wylicz według wzoru Y = (X + K) modulo 26
3. Zamień liczbę Y w literę, która odpowiada swojej kolejności w alfabecie zaczynając od 0.
(A=0, B=1, C=2, ...,Y=24, Z=25)
Na przykład: uzgadniamy z naszym przyjacielem, że prześlemy wiadomość używając szyfru przesuwającego z kluczem K=19
. Kodujemy wiadomość "KHAN" następująco:
. Kodujemy wiadomość "KHAN" następująco:
Po zastosowaniu szyfru przesuwającego z kluczem K=19, nasza wiadomość "KHAN" w postaci zaszyfrowanej wygląda następująco "DATG"
Wiadomość "DATG" możemy śmiało przekazać koledze.
Jak odszyfrować:
Dla każdej litery z szyfru C wykonujemy poniższe działanie:
1. Zamień literę w na liczbę, równą jej miejsca w alfabecie, zacznij liczyć od 0
(A=0, B=1, C=2, ..., Y=24, Z=25)
(A=0, B=1, C=2, ..., Y=24, Z=25)
2. Policz według wzoru X = (Y - K) modulo 26
3. Zamień liczbę X w literę, która odpowiada swojej kolejności w alfabecie zaczynając od 0.
(A=0, B=1, C=2, ...., Y-24, Z=25)
(A=0, B=1, C=2, ...., Y-24, Z=25)
Nasz przyjaciel rozszyfruje teraz wiadomość za pomocą uzgodnionego klucza K=19. W taki sposób:
Zatem, stosując szyfr przesuwający z kluczem K=19, nasz przyjaciel dekoduje zaszyfrowany tekst "DATG", odczytując wiadomość "KHAN".
Dlaczego szyfr przesuwający nie jest bezpieczny?
Szyfr powinien uniemożliwić atakującemu, który posiada kopię zaszyfrowanego tekstu, lecz nie posiada klucza, odczytanie wiadomości. Ponieważ dysponujemy jedynie 26 możliwymi kluczami, ktoś mógłby z łatwością sprawdzać wszystkie 26 kluczy, jeden po drugim, by za którymś razem odczytać wiadomość. Ten rodzaj ataku nazywamy atakiem brute force.
Chcesz dołączyć do dyskusji?
- Czy wynik -16 modulo 26 nie powinno być -16? Przy wyniku ujemnym powinno się chyba jeszcze dodać 26... chyba...(0 głosów)
- W działaniach mod w wyniku podaje się tylko resztę z dzielenia, w przypadku takiego działania jak (-16) mod 26 = 10 jest to trochę mylące. Rozpisując to na "cały wynik" otrzymujesz coś takiego: (-16) mod 26 = (-1) + reszta 10. Przeprowadzając działanie odwrotnie otrzymujesz: (-1) * 26 = (-26) + 10 = (-16).(7 głosów)