algorytm.org

Szyfr Cezara



Baza Wiedzy
wersja offline serwisu przeznaczona na urządzenia z systemem Android
Darowizny
darowiznaWspomóż rozwój serwisu
Nagłówki RSS
Artykuły
Implementacje
Komentarze
Forum
Bookmarki






Sonda
Implementacji w jakim języku programowania poszukujesz?

Szyfr Cezara
Ocena użytkowników:***** / 23
SłabyŚwietny 
Wpisany przez Krzysztof Maćkowiak, 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

Implementacje
AutorJęzyk
programowania
KomentarzOtwórzPobierzOcena
Krzysztof MaćkowiakC/C++kodowanie/dekodowanie tekstu z pliku
.cpp
.cpp
***** / 12
_marass_C/C++kodowanie/dekodowanie tekstu wpisanego z konsoli
.cpp
.cpp
***** / 73
Marek MadejskiPython
.py
.py
***** / 5
Nikodem SolarzRubymetoda szyfrująca i deszyfrująca.
.rb
.rb
***** / 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: 21 czerwca 2011 19:06
Komentarze
photo
-6 # Jasiek 2010-02-21 15:52
łatwe to
too easy for me ! lol
Odpowiedz | Odpowiedz z cytatem | Cytować
photo
+9 # Mykola 2016-01-17 12:41
Cześć,możesz napisać cały kod dla JAVA?
Odpowiedz | Odpowiedz z cytatem | Cytować
photo
+2 # Mat 2014-06-06 08:44
Jeszcze jako metode kryptonalizy mozna podać: atak brute force bo dla dzisiejszych komputerów wygenerowanie 25 mozliwych tekstów( mamy 25 mozliwych kluczy) nie stanowi żadnego problemu i jest to nawet metoda zdecydownie szybsza niz analiza statystyczna.
Odpowiedz | Odpowiedz z cytatem | Cytować
photo
0 # Bodek 2016-04-14 12:56
Dokładnie, sru i gotowe
Odpowiedz | Odpowiedz z cytatem | Cytować
Dodaj komentarz