Algorytmy i kryptografia - Po pierwsze, zanim zacznę przechwalać się sobą i przekształcę tego bloga w nudną jednostronną rozmowę, najpierw zrozumiemy, czym są algorytmy i jak są one powiązane z kryptografią.

Algorytmy i kryptografia

Algorytmy

Ci z was, którzy myślą, że Algorytmy są związane tylko z informatyką, nie mają racji. Algorytm to metoda lub formuła rozwiązania problemu. A kiedy mówię problem, może to być dowolny rodzaj problemu, może to być matematyka, formuły naukowe lub nawet oparte na komputerze. Pozwól, że dam ci prosty

Przykład:

(A + b) 2 = a 2 + 2ab + b 2

Lub może to być:

Naliczona kwota = kwota główna (1 + ROI * 100 * czas)

Tak! Wszystko, co jest formułą, można traktować jako algorytm. Algorytm to zbiór zasad rozwiązywania problemu, który, jeśli zostanie właściwie wykonany, za każdym razem da poprawną odpowiedź. Algorytmy ogólnie obejmują powtarzanie serii kroków w kółko, jak w algorytmach zaciągania i przenoszenia oraz w długim algorytmie mnożenia i dzielenia. Algorytmy obejmują różne dodawanie, odejmowanie, mnożenie i dzielenie.

Ale zanim zaczniesz myśleć, że biorę tutaj jakiś wykład matematyczny, pozwól mi powiedzieć, że nie. Jestem tutaj, aby mówić o algorytmach i kryptografii związanych z informatyką. Ale zanim przejdę do tego, pozwól, że podam kilka przykładów prostych algorytmów, od których możesz zacząć.

Te przykłady są dla czystych noobów, którzy nigdy nie robili żadnych algorytmicznych czynności przez całe życie. Tak więc, jeśli uważasz, że jesteś wystarczająco inteligentny, możesz przejść do następnej sekcji Kryptografii, w której ponownie przedstawiłbym podstawy przed przejściem na następny poziom.

Oto kilka przykładów algorytmów dodawania, które na początek pomogą Ci zrozumieć, jakie są algorytmy. Zacznijmy od podstawowej matematyki:

Algorytmy dodawania od lewej do prawej:

Zaczynając od lewej, dodaj kolumnę po kolumnie i dostosuj wynik.

Dla niektórych osób proces ten staje się tak automatyczny, że zaczynają się po lewej stronie i piszą kolumnę odpowiedzi po kolumnie, dostosowując się w miarę upływu czasu bez pisania żadnych kroków pośrednich. Poproszeni o wyjaśnienie, mówią coś takiego:

200 plus 400 to 600, ale (patrząc na następną kolumnę) muszę to zmienić, więc napisz 7. Następnie 60 i 80 to 140, ale to wymaga dostosowania, więc napisz 5. Teraz 8 i 3 to 11, nie musisz już więcej pisać, 1. Ta technika łatwo rozwija się na podstawie doświadczeń z manipulacjami, takimi jak bloki i pieniądze w bazie 10, oraz gry wymiany lub handlu, i jest zgodna z wzorcami od lewej do prawej, nauczonymi do czytania i pisania.

Teraz niektórzy czytają na ten temat. Może być konieczne wyszukanie w Google tych informacji, aby dokładnie zorientować się, co dokładnie się tutaj dzieje.

Kryptografia

Kryptografia to sztuka pisania kodów w sposób nieczytelny dla człowieka. Jest to metoda przechowywania i przesyłania danych w określonej formie, aby tylko osoby, dla których są przeznaczone, mogły je odczytać i przetwarzać. Można powiedzieć, że Kryptografia jest bliskim kuzynem dyscyplin kryptologii i kryptoanalizy.

Kryptografia obejmuje takie techniki, jak mikrodoty, łączenie słów z obrazami oraz inne sposoby ukrywania informacji w magazynie lub transporcie. Jednak w dzisiejszym świecie zorientowanym na komputery kryptografię najczęściej kojarzy się z szyfrowaniem zwykłego tekstu (zwykłego tekstu, czasami nazywanego zwykłym tekstem) do tekstu zaszyfrowanego (proces nazywany szyfrowaniem), a następnie z powrotem (znany jako deszyfrowanie). Osoby, które praktykują tę dziedzinę, są znane jako kryptografowie.

Szyfrowanie jest używane od wielu tysięcy lat. Następujących kodów i szyfrów można się nauczyć i używać do ręcznego szyfrowania i deszyfrowania wiadomości:

A) Szyfry monoalfabetyczne:

Szyfr monoalfabetyczny używa tego samego podstawienia w całej wiadomości. Na przykład, jeśli wiesz, że litera A jest zaszyfrowana jako litera K, będzie to obowiązywać dla całej wiadomości. Tego rodzaju wiadomości mogą zostać złamane za pomocą analizy częstotliwości, wyuczonych domysłów lub prób i błędów.

1. Szyfr Ceaser

Szyfr Cezara jest jedną z najprostszych (i najłatwiejszych do złamania) metod szyfrowania. Jest to szyfr zastępczy, który polega na zastąpieniu każdej litery tajnej wiadomości inną literą alfabetu, która jest stałą liczbą pozycji w dalszej części alfabetu.

Ponieważ każda litera w wiadomości ma bezpośrednie tłumaczenie na inną literę, do rozszyfrowania wiadomości można użyć analizy częstotliwości. Na przykład litera E jest najczęściej używaną literą w języku angielskim.

Tak więc, jeśli najczęstszą literą w tajnej wiadomości jest K, prawdopodobne jest, że K reprezentuje E. Dodatkowo, wspólne końcówki słów, takie jak ING, LY i ES również dają wskazówki. Podejście brute-force polegające na wypróbowaniu wszystkich 25 możliwych kombinacji również działałoby w celu rozszyfrowania wiadomości.

W tym przykładzie każda litera w wiadomości w postaci zwykłego tekstu została przesunięta o 3 litery w dół w alfabecie.

Zwykły tekst : To jest tajna wiadomość

Tekst zaszyfrowany : wklv lv d vhfuhw phvvdjh

2. Szyfr Atbash

Szyfr Atbash jest bardzo specyficznym przypadkiem szyfru zastępczego, w którym litery alfabetu są odwrócone. Innymi słowy, wszystkie zamienione na Zs, wszystkie Bs są zastąpione Ys i tak dalej.

Ponieważ dwukrotne odwrócenie alfabetu da ci rzeczywisty alfabet, możesz zaszyfrować i odszyfrować wiadomość przy użyciu dokładnie tego samego algorytmu.

Przykład:

Zwykły tekst : To jest tajna wiadomość

Zaszyfrowany tekst : Gsrh rh z hvxivg nvhhztv

Szyfr słowa kluczowego jest identyczny z szyfrem Cezara, z tym wyjątkiem, że użyty alfabet podstawienia może być reprezentowany słowem kluczowym.

Aby utworzyć alfabet zastępczy ze słowa kluczowego, najpierw zanotuj alfabet. Poniżej zapisujesz słowo kluczowe (pomijając duplikaty liter), a następnie pozostałe nieużywane litery alfabetu.

ABCDEFGHIJKLMNOPQRSTU VWXYZ

KEYWORDABCFGHIJLMNPQSTUVXZ

Aby zaszyfrować wiadomość tekstową, konwertujesz wszystkie litery z górnego wiersza na odpowiadające im litery w dolnym rzędzie (od A do K, od B do E itp.).

Korzystanie z analizy częstotliwości i pewne wyuczone zgadywanie może łatwo złamać tego rodzaju proste szyfry podstawienia.

4. Pigpen / Masonic Cipher

Szyfr wieprzowy (czasem nazywany szyfrem masońskim lub szyfrem masonerii) jest prostym szyfrem zastępczym wymieniającym litery na symbole oparte na siatce. Program został opracowany i wykorzystany przez masonów na początku 1700 roku do prowadzenia dokumentacji i korespondencji. Przykładowy klucz pokazuje jeden ze sposobów przypisania liter do siatki.

B) Szyfry polialfabetyczne:

W szyfrach polialfabetycznych podstawienie może ulec zmianie w całym komunikacie. Innymi słowy, litera A może być zakodowana jako litera K dla części wiadomości, ale później może być zakodowana jako litera W.

Polecane kursy

  • Szkolenie z XML
  • Szkolenie egzaminacyjne CCNA
  • Ukończ szkolenie z systemów UNIX i Linux
  • Pakiet szkoleniowy HTML 5

1. Szyfr Vigenere

W Szyfrie Cezara każda litera alfabetu jest przesuwana wzdłuż pewnej liczby miejsc; na przykład w szyfrze Cezara przesunięcia 3 A zamieniłoby się w D, B zamieniłoby się w E i tak dalej. Szyfr Vigenere polega na użyciu kilku szyfrów Cezara po kolei z różnymi wartościami przesunięcia.

Do szyfrowania można użyć tabeli alfabetów, zwanej tabula recta, kwadratem Vigenere lub tabelą Vigenere. Składa się z alfabetu wypisanego 26 razy w różnych wierszach, przy czym każdy alfabet przesuwa się cyklicznie w lewo w porównaniu do poprzedniego alfabetu, co odpowiada 26 możliwym szyfrom Cezara. W różnych punktach procesu szyfrowania szyfr używa innego alfabetu z jednego z wierszy. Alfabet używany w każdym punkcie zależy od powtarzającego się słowa kluczowego.

Załóżmy na przykład, że zaszyfrowany tekst jawny to:

ATTACKATDAWN

Osoba wysyłająca wiadomość wybiera słowo kluczowe i powtarza je, dopóki nie dopasuje długości tekstu jawnego, na przykład słowo kluczowe „LEMON”:

LEMONLEMONLE

Każda litera jest kodowana przez znalezienie przecięcia w siatce między literą zwykłego tekstu i literą słowa kluczowego. Na przykład pierwsza litera tekstu jawnego, A, jest szyfrowana za pomocą alfabetu w wierszu L, który jest pierwszą literą klawisza. Dokonuje się tego, patrząc na literę w rzędzie L i kolumnę A kwadratu Vigenere, mianowicie L. Podobnie, w przypadku drugiej litery tekstu jawnego używana jest druga litera klucza; litera w rzędzie E i kolumnie T to X. Reszta tekstu jawnego jest zaszyfrowana w podobny sposób:

Zwykły tekst : ATTACKATDAWN

Klucz : LEMONLEMONLE

Zaszyfrowany tekst : LXFOPVEFRNHR

Znalezienie pozycji litery zaszyfrowanego tekstu w rzędzie tabeli, a następnie pobranie etykiety kolumny, w której pojawia się jako tekst jawny, wykonuje deszyfrowanie. Na przykład w wierszu L zaszyfrowany tekst L pojawia się w kolumnie A, która jest traktowana jako pierwsza litera tekstu jawnego. Wyszukiwanie X w wierszu E tabeli odszyfrowuje drugą literę; pojawia się w kolumnie T, która jest traktowana jako litera jawnego tekstu.

Szyfr Gronsfelda jest identyczny z szyfrem Vigenere, z tym wyjątkiem, że używanych jest tylko 10 wierszy, co pozwala, aby słowo kluczowe było liczbą zamiast słowa.

Steganografia

Steganografia to nauka polegająca na ukrywaniu informacji przed ludźmi, którzy węszą na ciebie. Różnica między tym a szyfrowaniem polega na tym, że potencjalni szpiedzy mogą nie być w stanie stwierdzić, że w ogóle są jakieś ukryte informacje.

Na przykład w plikach obrazów zwykle jest dużo niewykorzystanego miejsca. To miejsce może służyć do wysyłania ukrytych wiadomości. Jeśli prowadzisz badania nad szyfrowaniem, możesz czasami zobaczyć termin steganografia. Nie jest to jednak prawdziwe szyfrowanie (choć nadal może być dość skuteczne) i jako takie wymieniam je tutaj tylko dla kompletności.

Zasadniczo, jeśli chcesz zacząć ćwiczyć kryptologię, najlepszym sposobem na rozpoczęcie jest rozpoczęcie rozwiązywania algorytmów i tekstu zaszyfrowanego wraz ze steganografią. Mimo że steganografia może wydawać się łatwa i nie jest to prawdziwe szyfrowanie, nadal jest jednym z najczęściej używanych szyfrów, jeśli chodzi o podstawy i gdy trzeba coś napisać w bardzo krótkim czasie i w najlepszy możliwy sposób.

Pierwsze źródło obrazu: pixabay.com

Polecane artykuły

Oto kilka artykułów, które pomogą ci uzyskać więcej szczegółów na temat algorytmów i kryptografii, więc po prostu przejdź przez link.

  1. Struktury danych i algorytmy Pytania do wywiadu Najbardziej użyteczne
  2. 8 Niesamowitych pytań i odpowiedzi na wywiad z algorytmem
  3. Najlepsze języki programowania do nauki algorytmów
  4. 10 najlepszych struktur danych i algorytmów C ++ | Podstawy