StartAlgorytmyKryptografiaSzyfr Cezara
Baza Wiedzy
Wersja offline serwisu przeznaczona na urządzenia z systemem Android.

Darowizny
darowiznaWspomóż rozwój serwisu


Nagłówki RSS
Kanał artykuły
Kanał implementacje
Kanał komentarze
Kanał forum


Bookmarki









Sonda
Implementacji w jakim języku programowania poszukujesz?
 
Szyfr Cezara
Ocena użytkowników:++++- / 8
SłabyŚwietny 
Wpisany przez Krzysztof Maćkowiak
środa, 17 sierpnia 2005 23:52
Nazwa: Szyfr Cezara

Rodzaj: Monoalfabetyczny szyfr podstawieniowy, ograniczony

Historia i zastosowanie: Jest to szyfr za pomocą, którego Juliusz Cezar szyfrował swoje listy do Cycerona. Jako ciekawostkę można podać, że szyfr ten był podobno używany jeszcze w 1915 roku w armii rosyjskiej, gdyż tylko tak prosty szyfr wydawał się zrozumiały dla sztabowców

Opis metody: Każdą literę tekstu jawnego zamieniamy na literę przesuniętą o 3 miejsca w prawo. I tak literę A szyfrujemy jako literę D, literę B jako E itd. W przypadku litery Z wybieramy literę C. W celu odszyfrowania tekst powtarzamy operację tym razem przesuwając litery o 3 pozycje w lewo.
Zapis matematyczny tych operacji wygląda następująco:
Szyfrowanie:
C=E(p)=(p+3)mod 26
Deszyfrowanie:
p=D(c)=(c-3)mod 26
Przyjmuje się, że alfabet składa się z 26 liter.

Opis procedury: Szyfrowany/deszyfrowany tekst znajduje się w pliku. Dodatkowo przed uruchomieniem procedury należy stworzyć drugi plik, będący plikiem wynikowym. W programie podajemy nazwy tych plików. Następnie otwierane są oba pliki i jeżeli operacja ta powiedzie się, zaczyna się szyfrowanie/deszyfrowanie. Za każdym razem pobierana jest jedna litera tekstu. Następnie według kod ASCII przydzielana jest ona do trzech możliwych grup: duże litery, małe litery lub cyfry. W przypadku oryginalnego szyfru Cezara nie było możliwości szyfrowania cyfr. Cyfry są w procedurze szyfrowane za pomocą przesunięcia o trzy a następnie wykonywana jest operacja mod 10. Co nie jest w pełni zgodne ze standardem algorytmu Cezara. Jeżeli ktoś uważa szyfrowanie cyfr za coś niepotrzebnego wystarczy, że usunie ostatnią instrukcję else if. Wszystkie inne znaki w tym spacja podczas szyfrowania ulegają usunięciu. Jeżeli komuś zależy, aby inne znaki też były szyfrowane wystarczy, aby dodał kolejne instrukcje else if (operacja mod wystąpi tylko wtedy gdy dodajemy jeszcze jakąś grupę znaków a nie pojedyncze znaki). Należy dodać je w miejscu gdzie w programie widnieje odpowiedni komentarz. Po zamianie każdej litery zapisywana jest ona w pliku wyjściowym. Na końcu oba pliki są zamykane i procedura kończy się.
W przypadku procedury deszyfrującej zastosowałem trochę inną metodę. Ponieważ litera a ma numer zero. Zatem gdy odejmujemy wartość 3. Uzyskujemy wynik -3. Aby uzyskać poprawny wynik Wystarczy odjąć od 26 wartość bezwzględną wyniku (lub jeżeli ktoś woli dodać ten wynik).

Oto przykładowy ciąg poddany działaniu algorytmu:

Tekst jawny: Algorytmy i Struktury Danych
Tekst zaszyfrowany: DojrubwpblVwuxnwxubGdqbfk

Poziom bezpieczeństwa: szyfr nie zapewnia bezpieczeństwa

Metody kryptoanalizy: analiza częstości występowania poszczególnych liter



Autor Język programowania Komentarz Otwórz Pobierz Ocena
Krzysztof Maćkowiak C/C++
Implementacja w C/C++
Implementacja w C/C++
++++- / 5
_marass_ C/C++
Implementacja w C/C++
Implementacja w C/C++
++++- / 1
 
Dodaj własną implementację tego algorytmu
  • Zaloguj się na stronie
Plik:
Język programowania:
Komentarz:
  By móc dodać implementacje zaloguj się na stronie



Poprawiony: wtorek, 21 czerwca 2011 19:06

Komentarze

 
photo
+1 # Jasiek 2010-02-21 15:52
łatwe to
too easy for me ! lol
Odpowiedz | Odpowiedz z cytatem | Cytować
 

Dodaj komentarz

Kod antysapmowy
Odśwież