()

Wstęp

Już poruszyliśmy parę bardzo ważnych tematów odnośnie kryptografii, ale jeszcze daleko nam do ideału. Będziemy kontynuowali temat, dziś też będzie poruszonych kilka ciekawych treści. Mam nadzieję, że interesująco je przedstawię, ale od razu podkreślę, byś przeczytał 2 razy o szyfrowaniu symetrycznym i asymetrycznym – jest to dość istotny temat ;).

XOR, czyli Exclusive OR

XOR, czyli Exclusive OR – jeśli do tej pory tego nie poznałeś lub nie zapamiętałeś, właśnie dziś sobie przypomnisz, o co chodzi. Jest to matematyczna operacja dobrze znana w kryptografii.

W wypadku XOR jeśli jeden i tylko jeden z dwóch porównywalnych bitów ma wartość jeden, wtedy wynik jest również jeden. Ale jeśli oba porównywane bity mają zero bądź jeden, wynikiem dla nich będzie zero.

Wiem, że brzmi to bardzo skomplikowanie, ale jest proste. Zobacz wzory poniżej, a później jeszcze raz przeczytaj powyższy tekst i od razu się zorientujesz, o co chodzi.

  • 1+0=1
  • 0+1=1
  • 0+0=0
  • 1+1=0

I dla jeszcze jednego przykładu:

  1. Wiadomość: 10110110
  2. Klucz: 01011011
  3. Szyfrowany: 11101101

Czym jest Sól, Pieprz, IV and Nonce

Sól to wartość losowa dodawana na końcu, zanim dane zostaną zahashowane. Pieprz to to samo, co sól, tylko ta wartość jest dodawana z przodu. Ta technika ma na celu spowodowanie, że hasło się wydłuży, co skomplikuje jego złamanie.

Głównym zadaniem, gdy wprowadzono sól, było uniknięcie powtarzania się tych samych wartości hash. Co przez to rozumiem? Gdy wprowadzimy dwa identyczne hasła i algorytm je zahashuje, dostaniemy dwie takie same wartości hash.

A teraz, jeśli do jednego dodamy losowy ciąg znaków i do drugiego inny losowy ciąg znaków, obie wartości hash już po przeliczeniu będą się różniły.

IV, czyli initialization vector, to podobne pojęcie do soli, tylko działa do klucza, nie do hashu. W ten sam sposób generuje losową wartość, którą dodaje do klucza. Wartość ta jest losowo dodawana do każdego segmentu danych.

Nonce to wartość wygenerowana raz i zazwyczaj odnosi się do uwierzytelniania ruchu. Nonce występuje zazwyczaj na początku procesu uwierzytelniania – klient wysyła do serwera zapytanie o wartość nonce.

Serwer wysyła losową wartość do klienta, którą to później hasło jest hashowane. Nonce może też być użyte do szyfrowania, by upewnić się, że każda wiadomość jest szyfrowana innym kluczem.

Słaby Algorytm

Pamiętaj, aby wybierać odpowiedni algorytm. Jak wiadomo, im bezpieczniejszy, tym lepszy. Sprawdź, zrób rozpoznanie w boju. Nie wybieraj pierwszego lepszego i pamiętaj, że muszą być one szeroko używane.

Ponieważ tylko takie są sprawdzane odnośnie ich podatności. Jeśli wybierzesz jakiś niszowy algorytm, prawdopodobnie będzie miał on wiele wad, o których nie będziesz wiedział. A najgorzej dostać nożem w plecy myśląc, że ma się bezpieczne tyły ;).

Trzy nowe słowa: Confusion, Difussion, Obfuscation

  • Confusion jest to zasada zmieszania, która w kryptografii ma za zadanie zapewnić, że relacja między kluczem a danymi jest kompleksowa, przez co bardzo trudne jest odgadnięcie klucza.
  • Difussion – zasada dyfuzji (ach, piękne słowo). Dyfuzja ma za zadanie nie pozwolić napastnikowi na rozszyfrowanie zaszyfrowanego tekstu, jeśli przed jego zaszyfrowaniem były jakieś powtarzające się znaki.
  • Obfuscation to pojęcie, w którym komplikujemy coś celowo, by było trudne do zrozumienia. By utrudnić złamanie tekstu, możesz na przykład napisać go w sposób niezrozumiały jeszcze w formie jawnej przed zaszyfrowaniem.

Implementacja a algorytm

Rozwiązanie kryptograficzne CSP, czyli Crypto Service Provider, jest biblioteką kodu do funkcji enkrypcji i dekrypcji. Oprogramowanie otrzymuje różne algorytmy – zarówno hashowania, jak i szyfrowania od CSP.

Ładując moduły takie jak aplikacja, sprzęt dodany do systemu i dający możliwości kryptograficzne, CSP może implementować różne funkcjonalności takie, jak szyfrowanie,deszyfrowanie, hashowanie i uwierzytelnianie. I tu znowu podkreślę: wybieraj tylko silne i sprawdzone rozwiązania. Nie bądź królikiem doświadczalnym 😉

Szyfrowanie Symetryczne

Szyfrowanie symetryczne jest wtedy, gdy klucz wykorzystujemy do zaszyfrowania jak i do odszyfrowania. Przykładem takiego rozwiązania może być wi-fi domowe. Dostając router, masz tylko jeden klucz, po którym otrzymujesz dostęp do internetu.

  • Shared or preshared key to termin określający klucz symetryczny, ponieważ musisz dać komuś klucz, by ten mógł odszyfrować informacje.
  • Secret key – nazwa pochodzi od tego, że trzeba utrzymywać klucz w sekrecie.
  • Secret algorithm to algorytm wykorzystywany do szyfrowania, jego nazwa pochodzi od klucza jak powyżej.
  • Session key – nazwa wzięła się stad, że wiele implementacji szyfrowania symetrycznego wykorzystuje losowy klucz znany właśnie pod nazwą session key.
  • Private key – i tu klucz prywatny, ponieważ jak go rozpowszechnisz, wtedy stracisz poufność.

Wiem, że terminy powyżej są banalne, ale opisałem, byś je na pewno znał, jak przyjdzie do rozmowy o kryptografii. A nie, że ktoś zacznie o tym mówić, a Ty nie będziesz wiedział, do czego się odnosi i będziesz stał jak ten matoł. Nie można do tego dopuścić ;).

Zalety i wady szyfrowania symetrycznego

Na pewno dużą zaletą tego szyfrowania jest to, że jest ono znacznie szybsze niż asymetryczne, o którym się dowiesz już zaraz ;). I gdy masz do zaszyfrowania tonę informacji, szyfrowanie symetryczne wykona się szybciej i to chyba na tyle z tych plusów.

Wielkim minusem w szyfrowaniu symetrycznym jest przekazanie klucza w bezpieczny sposób. Musisz się dobrze zastanowić, jak to zrobić. Za każdym razem musisz pamiętać, że wysyłając czy dzieląc się kluczem musisz zrobić to w jak najbezpieczniejszy sposób.

Drugim dużym minusem jest to, że każda osoba potrzebuje oddzielnego klucza, by komunikacja była bezpieczna. I tak w wypadku trzech osób są to tylko 3 klucze, ale już w wypadku sześciu osób jest tych kluczy aż 15. Wzór na obliczenie poniżej. Wyobraź sobie liczbę kluczy dla 2000 tys. pracowników.

Klucz = osoba * (osoba -1) /2

Klucz = 6 * (6-1) /2 = 15

Przykłady algorytmów szyfrowania symetrycznego

  • DES (Data Encryption Standard) to algorytm blokowy, który używa 56 bitów, był oficjalnym rządowym standardem w 1970. Jak sam widzisz, swoje lata ma i nie radzę z niego korzystać.
  • DESX (Data Encryption Standard XORed) – przed zaszyfrowaniem z użyciem DES dane są XORowane z dodatkowym ciągiem 64 bitów
  • Blowfish – również algorytm blokowy. Stworzony przez Bruce Schneiera, by zastąpić DES. Korzysta z szerokiej gamy od 1 do 448 bitów
  • Twofish – jak wyżej, został zrobiony przez tego samego autora już po stworzeniu Blowfish i korzysta z szyfrowania na poziomie 128 bitów
  • 3DES (Triple DES) Tu DES jest wykonywany 3 razy, by zapewnić większe bezpieczeństwo 3 x 56 bitów, czyli 168 bitowe szyfrowanie
  • RC4/RC5 (Rivest Cipher) – stworzony przez Ronalda Rivesta. Są różne wariacje tego, jak RC4 jest wykorzystywany do WEP i do SSL
  • AES (Advanced Encryption Standard) – następca 3DES, w 2001 przyjęto go jako standard. Wykorzystuje szyfrowanie 128, 192 lub 256 bit

Szyfrowanie Asymetryczne

Szyfrowanie asymetryczne wykorzystuje zaś dwa klucze, nie jeden. Najważniejsze w szyfrowaniu asymetrycznym jest to, byś zapamiętał, że co jeden klucz zrobi, to drugi odkręci i że klucze są powiązane.

W szyfrowaniu asymetrycznym mamy dwa klucze: jeden prywatny, drugi publiczny. Nazwy kluczy wzięły się od tego, co powinieneś z nimi zrobić. Na przykład decydujesz się, by skorzystać z szyfrowania asymetrycznego, by wysłać wiadomość do Andrzeja.

Najpierw musisz wygenerować dwie pary kluczy – jedną dla Ciebie i drugą dla Andrzeja. I teraz, gdy już stworzyłeś klucze, ich publiczne wersje umieszczasz w jakimś publicznym miejscu dostępnym dla wszystkich zainteresowanych.

Zazwyczaj w różnych środowiskach jest on dostępny z serwera, do którego dostęp mają wszyscy. Twój prywatny klucz pozostaje u Ciebie i prywatny klucz Andrzeja pozostaje u niego.

Dodatkowo musisz pamiętać, by się nim z nikim nie dzielić, bo jeśli ktoś dostanie twój klucz prywatny, będzie mógł się pod Ciebie podszywać.

  • Twój klucz prywatny Jeśli zaszyfrujesz swoim prywatnym kluczem wiadomość, Twój publiczny klucz będzie w stanie ją odszyfrować. Więc nie będzie tu żadnej poufności.
  • Twój klucz publiczny W tym wypadku, jeśli wykorzystasz do zaszyfrowania klucz publiczny, to tylko prywatnym będziesz mógł go odszyfrować, więc Andrzej nie dostanie się do wiadomości.
  • Klucz prywatny Andrzeja Nie masz dostępu do klucza prywatnego Andrzeja
  • Klucz publiczny Andrzeja Jedyna opcja, w której to będzie działać. W szyfrowaniu asymetrycznym wiadomość szyfrujemy kluczem publicznym osoby, do której go wysyłamy, ponieważ tylko wtedy ta osoba może go odszyfrować za pomocą swojego klucza prywatnego.

Nie martw się jak nie zrozumiałeś za pierwszym razem. Sam musiałem usłyszeć to 3 razy, choć gdy mnie tego uczono, nie było to tak klarownie pokazane jak powyżej. A jak złapałeś za pierwszym razem, to napisz do mnie priv osobiście, chcę Ci pogratulować, bo to się rzadko zdarza ;).

Plusy i minusy szyfrowania asymetrycznego

Plusem w wypadku szyfrowania asymetrycznego względem symetrycznego jest to, że śmiało i wszędzie możesz się dzielić kluczem publicznym. Ale musisz pamiętać, że to nie dotyczy klucza prywatnego. Ten jest Twój i tylko Twój.

No i w odróżnieniu od szyfrowania symetrycznego tu mamy mniej kluczy na każdego użytkownika. A minusem i to sporym jest prędkość szyfrowania – w przypadku asymetrycznego jest ona sporo mniejsza.

Przykłady algorytmów szyfrowania asymetrycznego

  1. RSA (Rivest Shamir Adleman) nazwę wziął od nazwisk jego twórców i jest to pierwszy asymetryczny algorytm, który zaimplementował logowanie i szyfrowanie.
  2. Diffie-Hellman tak samo nazwa po twórcach. Każdy chyba chciałby opatrzyć coś, co stworzył, swoim nazwiskiem. Protokół wymiany kluczy w bezpieczny sposób.
  3. Elliptic curve jest to nowszy algorytm asymetryczny, który działa jak Diffie-Hellman co do wymiany kluczy plus korzysta z DSA (Digital Signature Algorithm) do podpisywania wiadomości.

Podsumowanie

Dziś dodałeś kolejną cegiełkę wiedzy o kryptografii. Masę tematów przerobiliśmy takich jak uwierzytelnianie czy model OSI . Lecz udało mi się wyłuskać coś jeszcze i myślę, że uda mi się napisać jeszcze jeden artykuł o krypto. Tak że dla wszystkich zapaleńców kryptografii to jeszcze nie koniec ;).

Pozdrawiam – Pusz ????

Jak przydatny był ten Artykuł

Kliknij gwiazdke by zagłosować

Średni / 5. Liczba głosów

Doceń naszą prace

Przepraszam że ten post nie był dla Ciebie przydatny

Popraw ten post!

Napisz mi co mogę poprawić