Wprowadzenie do Szyfrów w 10 Akapitach

Trudno stwierdzić to z całą pewnością, ale wydaje się prawdopodobne, że wkrótce po opanowaniu sztuki pisania, ludzie zaczęli odczuwać potrzebę ukrycia i zamaskowania tego, co napisali. Zapewne wraz z upływem czasu i ze wzrostem znaczenia zapisywanych rzeczy ta potrzeba stawała się pilniejsza. Powstawały pierwsze organizmy państwowe i coraz więcej coraz ważniejszych informacji musiało być przesyłanych w formie pisemnej na większe odległości. Informacji, których ujawnienie mogło przynieść nieprzyjemne konsekwencje.

Krótka Historia Kryptografii

Początkowo starano się maskować sam fakt istnienia wiadomości, a nie jej treść. Postępowanie takie nazywa się steganografią. Z czasem pojawiły się pierwsze proste szyfry podstawieniowe, które polegały na zamianie jednych liter na inne, w sposób znany tylko wtajemniczonym stronom.

Trzeba tutaj zauważyć, że olbrzymim ułatwieniem były alfabety, które wykształciły się w Europie (łaciński, grecki). Zawierały stosunkowo mało liter, którymi łatwo było manipulować. Zastosowanie szyfru podstawieniowego dla tekstu w języku chińskim nie jest już takie oczywiste.

Wraz z upływem czasu i powstaniem technik łamania prostych szyfrów podstawienowych, przestała wystarczać zwykła zamiana liter. Coraz nowsze szyfry zapewniały coraz większe wymieszanie liter w tekście i zaciemnianie przekazu oraz zaburzenie w ukrytych tekstach typowych cech językowych (częstotliwości liter, popularnie występujących par znaków). Oprócz zastępowania jednych liter innymi, zaczęto zmieniać również kolejność liter.

Budowa Szyfru

Na tym etapie rozwoju wykształcił się już współczesny model tworzenia szyfrów. Mamy więc długi tekst, który chcemy zaszyfrować. Mamy przepis (algorytm), czyli listę kroków jakie należy wykonać żeby zmienić tekst jawny w szyfrogram. Na koniec ustalamy sekretny klucz, korzystając z którego będziemy stosować algorytm. Przykładowo, algorytmem może być stwierdzenie "przesuń każdą literę w prawo", a sekretnym kluczem "o trzy pozycje".

Podział ten bierze się z możliwości ograniczenia w ten sposób wymiany informacji pomiędzy zainteresowanymi stronami. Informacja o ile pozycji należy przesunąć litery jest w tym wypadku kluczowa, natomiast informacja o tym, że ma nastąpić przesunięcie w prawo, sama w sobie nie zagraża tajności informacji i dla wygody mogłaby być przekazana na początku wiadomości w formie niezaszyfrowanej. Dodatkowo, taki podział umożliwia wielokrotne stosowanie algorytmu z różnymi kluczami, na przykład w komunikacji z różnymi osobami.

Obecnie algorytmy szyfrujące działają na komputerach lub są sprzętowo implementowane w elektronicznych urządzeniach. Sekretne klucze są długości kilkudziesięciu lub nawet kilkuset znaków, a w czasie szyfrowania lub deszyfrowania wykonywanych jest miliony operacji. Algorytmy szyfrujące stały się częścią większych algorytmów, protokołów komunikacyjnych i standardów wszelkiego rodzaju i obecnie ma się z nimi na co dzień styczność w większości dziedzin życia.

Na koniec zauważmy dwie rzeczy. Po pierwsze, ideą i sensem większości szyfrów jest to, że sekretny klucz jest bardzo krótki w porównaniu do ilości przekazywanych informacji. Umożliwia to zastąpienie problemu trudniejszego (dostarczenie w tajemnicy długiej wiadomości) problemem łatwiejszym (dostarczenie w tajemnicy krótkiego sekretnego klucza, używanego potem wielokrotnie).

Po drugie, algorytm może być znany powszechnie albo być strzeżoną tajemnicą, dodatkowym zabezpieczeniem komunikacji. Ogólna reguła mówi, że szyfr powinien być niezawodny i bezpieczny nawet po pełnym opublikowaniu jego algorytmu i dlatego analizując zabezpieczenia zawsze należy zakładać, że wszystko oprócz sekretnego klucza jest znane przeciwnikowi.

Większość obecnie stosowanych szyfrów jest oparta na publicznie znanych algorytmach. W praktyce przemawiają za takim podejściem dwa argumenty. Po pierwsze, większość sekretnych algorytmów zwykle i tak staje się znanych - na skutek zbiegu okoliczności, przekupstwa, zdrady albo analizy sprzętu lub oprogramowania, który je wykorzystuje. Po drugie, publicznie zaproponowany algorytm ma okazję być zbadany i przeanalizowany przez tysiące uczciwych i mądrych ludzi, którzy w wypadku znalezienia błędów, nagłośnią je i umożliwią poprawienie jego działania.