Co to jest skrót kryptograficzny? [Przewodnik dla początkujących]

Opublikowany: 2019-08-07
Spis treści
  • Co to jest skrót kryptograficzny?

  • Wyjaśnienie skrótu kryptograficznego

  • Właściwości kryptograficznej funkcji skrótu

  • Wspólne algorytmy haszujące

  • Hashowanie w kryptowalutach

  • Funkcje skrótu w przechowywaniu haseł

  • Zakończyć

  • Są szanse, że kiedyś ty i twoi przyjaciele stworzyliście kod, aby przekazywać sobie nawzajem wiadomości, których nikt inny nie mógł zrozumieć. Przynajmniej znałeś takich ludzi.

    Niektórzy tacy jak ta potraktowali tę grę poważnie i przekształcili ją w karierę.

    Inni zostali magikami – tak zwani mentalistami. Za pomocą kodów wykorzystują swoje „moce umysłowe” do odgadywania kart, liczb itp.

    Ta prosta gra dziecięca stała się tak zwanym szyfrowaniem, haszowaniem i wszystkimi innymi funkcjami, które generują pozornie nieczytelny kod z danego wejścia.

    Dzisiaj zagłębimy się w magiczny świat kodowania, aby zobaczyć, czym jest hasz kryptograficzny , jego wewnętrzne działanie i zastosowania.

    Więc bez zbędnych ceregieli, wskoczmy od razu.

    Co to jest skrót kryptograficzny?

    Funkcja skrótu kryptograficznego jest rodzajem funkcji skrótu używanej do celów bezpieczeństwa . Posiada kilka właściwości, które odróżniają go od niekryptograficznego. Podzielmy to krok po kroku.

    Co to jest hasz?

    Haszowanie to metoda używana do kompresji danych.

    Mimo to nie jest to typowa kompresja, którą wszyscy znają, jak plik .zip lub .rar.

    Haszowanie tworzy kod danych przy użyciu algorytmu haszującego . Kod reprezentuje ciąg znaków, które działają jak „odcisk palca” tego pliku.

    Wszyscy wiemy, że odciski palców są małe, ale zawierają ogromną ilość danych. Wiesz, takie rzeczy jak nasze imiona, twarze, adresy i inne poufne informacje. Z haszowaniem jest podobnie – pobiera fragment danych o dowolnej wielkości i zamienia go w stosunkowo niewielki ciąg znaków.

    Bez względu na rozmiar danych wejściowych, podczas haszowania zawsze otrzymujesz wyjście o stałej długości .

    Przykłady funkcji skrótu

    Oto przykład tego, jak to się dzieje. W tej demonstracji użyjemy 256-bitowego algorytmu bezpiecznego mieszania , znanego jako SHA-256. Jest to jeden z najczęstszych algorytmów haszujących i jak się okazuje – jest również używany przez Bitcoina .

    Wiadomość Skrót wiadomości
    Cześć 3639EFCD08ABB273B1619E82E78C29A7DF02C1051B1820E99FC395DCAA3326B8
    Witamy w TechJury B7FFC27E0A6F559E1F63A927B6132A42124CC790F9EFD0FCFF4C3B653AA0DF4B
    (Treść całego artykułu) 9247D0E6C7A2A45976DCC3D2393A52658B6DDFC846d8AF5743400EA12FB9DE74

    Widzisz, chociaż wiadomości mają różną długość, wszystkie otrzymują hash 64-znakowy. Jest to również znane jako wartość skrótu lub skrót .

    Otrzymasz ten sam wynik o stałej długości, jeśli zmieszasz książkę lub nawet zawartość całej biblioteki. Możesz to zrobić również z innymi rodzajami danych – filmami, zdjęciami itp.

    Wspaniałą rzeczą w hashach jest to, że uzyskasz zupełnie inną wartość hash, nawet jeśli wprowadzisz najmniejsze zmiany . Nazywa się to efektem lawinowym .

    Więc jeśli twoja dziewczyna / chłopak usunie wszystkie zdjęcia twojego byłego, na przykład, zmieni się hash folderu. W ten sposób będziesz wiedział, że coś jest nie tak bez sprawdzania każdego zdjęcia.

    Zobaczmy jeszcze jeden przykład przydatności funkcji skrótu w praktyce. W następnym przykładzie zahaszowałem nasze „ Co to jest VPN? ” artykuł i wygląda to tak:

    Następnie usunąłem słowo z artykułu i ponownie je zahaszowałem. Oto wynik:

    Usunięcie pojedynczego słowa całkowicie zmieniło wartości skrótów . Jest to szczególnie przydatne, jeśli chcesz sprawdzić, czy w pliku zostały wprowadzone jakieś zmiany.

    Jest to jeszcze bardziej pomocne, gdy masz do czynienia z dużą ilością informacji. Na przykład blockchain kryptowaluty przechowujący tysiące transakcji dziennie.

    Teraz zanurkujmy głębiej i zobaczmy, co naprawdę oznacza skrót kryptograficzny .

    Wyjaśnienie skrótu kryptograficznego

    Kiedy potrzebujesz bezpieczeństwa i prywatności, w grę wchodzi hash kryptograficzny . Minusem hashowania kryptograficznego jest to, że jest zwykle wolniejszy niż inne rodzaje hashów . Jeśli potrzebujesz szybko haszować i nie potrzebujesz zabezpieczeń na wysokim poziomie – hashowanie niekryptograficzne jest lepsze. Na przykład – jeśli tworzysz indeks niektórych niewrażliwych danych.

    Główną różnicą między hashowaniem niekryptograficznym a kryptograficznym jest to, że ten ostatni jest niezwykle trudny do złamania. Zauważ, że nie jest to niemożliwe. Mimo to haszowanie kryptograficzne sprawia, że ​​złamanie hasza jest prawie niemożliwe.

    Aby funkcja skrótu była skrótem kryptograficznym, musi mieć kilka właściwości.

    Właściwości kryptograficznej funkcji skrótu

    Jeśli chcesz używać funkcji skrótu do celów kryptograficznych, istnieje kilka wymagań, które funkcja skrótu musi spełnić, aby była uważana za bezpieczną.

    Właściwość #1 – Szybkość

    Jeśli lubisz wymyślne słowa – funkcje skrótu kryptograficznego powinny być wydajne obliczeniowo. Oznacza to, że funkcja mieszająca powinna być w stanie wygenerować skrót w ułamku sekundy .

    Źródło

    Właściwość nr 2 – Efekt lawinowy

    Efekt lawinowy oznacza, że ​​nawet niewielka zmiana w wiadomości spowoduje poważną zmianę wartości skrótu .

    Wiadomość Skrót wiadomości
    Witamy w TechJury B7FFC27E0A6F559E1F63A927B6132A42124CC790F9EFD0FCFF4C3B653AA0DF4B
    Witamy w Techjury 66251AE6324F670BF988465E49B9CEAA2F8C4E72E1D61336D3794301116C092B

    Użycie małej litery „j” w drugiej wiadomości całkowicie zmienia kod skrótu .

    To jest prosty przykład funkcji skrótu , ale masz pomysł. Jest to bardzo praktyczne i może szybko pokazać, czy jakiekolwiek dane zostały zmienione.

    Właściwość #3 kryptograficzna funkcja skrótu powinna być deterministyczna

    Oznacza to, że bez względu na to, ile razy użyjesz funkcji mieszającej dla tego samego wejścia , zawsze otrzymasz to samo wyjście . Jest to oczywiste, ponieważ jeśli otrzymasz losowe hasze dla tej samej wiadomości, cały proces byłby bez znaczenia.

    Właściwość nr 4 – Odporność obrazu wstępnego (funkcja jednokierunkowa)

    Oznacza to, że bardzo trudno jest dostać się do wejścia przez wyjście.

    W prostych słowach nie można odwrócić funkcji skrótu kryptograficznego, aby uzyskać dostęp do danych. Nie oznacza to jednak, że nie można zobaczyć wiadomości.

    Oto oferta.

    Istnieją dwie metody znajdowania zaszyfrowanej wiadomości.

    1. Aby porównać hash z istniejącą listą hashów, taką jak ta: Dehash.me. Zazwyczaj cyberprzestępcy mają własne bazy danych przetłumaczonych (odhaszowanych) wiadomości.
    2. Aby wykonać brutalny atak.

    Aby złamać hash metodą brute-force, musisz wybrać wiadomość, zhaszować ją i porównać z hashem, który posiadasz. Najlepszy scenariusz – dostajesz to od pierwszej próby. Jednak szanse na to są bardzo małe.

    Najgorszy scenariusz – znajdujesz go podczas ostatniej próby. Oznacza to, że musisz zahaszować wszystkie możliwe wiadomości i porównać je z tą, którą masz. Liczba jest różna w zależności od algorytmu haszującego .

    Dla przykładu użyjmy SHA-256. W takim przypadku musiałbyś znaleźć 2 256 -1 wartości skrótu jako pierwsze. Można śmiało powiedzieć, że nie da się tego zrobić przez kilka wcieleń i tak to zostawić.

    Ale już.

    Właściwość odporności haszu kryptograficznego przed obrazem odgrywa znaczącą rolę w debacie między haszowaniem a szyfrowaniem .

    Patrz - można odszyfrować zaszyfrowaną wiadomość, ale nie można zrobić to samo dla kryptograficznego skrótu.

    Możesz myśleć o haszyszu jak o smoothie. Nie możesz wydobyć wiadomości z haszyszu w taki sam sposób, w jaki nie możesz wydobyć banana i mleka z smoothie.

    Z drugiej strony szyfrowanie jest bardziej jak sejf. Chroni Twoje kosztowności, ale zawsze jest klucz, który go otwiera.

    Właściwość #5 – Odporność na kolizje

    Oznacza to, że dwie różne wiadomości nie powinny być w stanie wygenerować tej samej wartości skrótu . Z matematycznego punktu widzenia jest to i tak niemożliwe.

    Wiesz już, że wartości skrótów mają ustaloną długość. Oznacza to, że istnieją ograniczone kombinacje wyjściowe . Z drugiej strony dane wejściowe są nieskończoną liczbą. Tak więc teoretycznie istnieje szansa, że ​​dwie różne wiadomości mogą wygenerować te same skróty .

    Mimo to funkcja skrótu w kryptografii sprawia, że ​​prawdopodobieństwo kolizji skrótów jest praktycznie znikome.

    Wyglądać.

    Wszystkie te właściwości zapewniają bezpieczeństwo i użyteczność skrótu kryptograficznego . Czas więc poznać różne funkcje skrótu kryptograficznego.

    Wspólne algorytmy haszujące

    Istnieją różne klasy (rodziny) algorytmów mieszających. Podstawową różnicą między nimi jest wartość skrótu, którą każdy z nich wytwarza i jego właściwości bezpieczeństwa.

    Oto najczęściej używane:

    Algorytm podsumowania wiadomości (MD)

    MD5 była funkcją skrótu z wyboru dla wielu firm, ale została złamana w 2004 roku. Algorytm skrótu jest uważany za uszkodzony, gdy doszło do pomyślnej kolizji lub ataku przed obrazem. Mimo to wiele stron internetowych nadal używa funkcji mieszania MD5 do weryfikacji plików.

    Na przykład, gdy pobierasz plik, możesz porównać jego hash z hashem w witrynie, aby upewnić się, że nikt go nie manipulował.

    Rodzina MD składa się z MD2, MD3, MD4, MD5 (wszystkie są zepsute) i MD6 (co nie jest tak popularne).

    Oto przykład funkcji skrótu MD5.

    Wiadomość Skrót MD5
    Jury techniczne FECE553512085FF6B5E213C8EFF9F30D

    MD5 generuje 128-bitową wartość skrótu o długości 32 znaków.

    Ze względu na swoje wady algorytm Message Digest nie jest już uważany za kryptograficzną funkcję mieszającą .

    Bezpieczny algorytm mieszający (SHA)

    Największa rodzina kryptograficznych funkcji skrótu składa się z czterech klas:

    • SHA-0
    • SHA-1
    • SHA-2
    • SHA-3

    SHA-0 miał wiele wad i nie był powszechnie stosowany. SHA-1 próbował je naprawić, ale zepsuł się w 2005 roku.

    SHA-2 i jej podklasy są dziś powszechnie używane, dopóki SHA-3 nie okaże się jeszcze bezpieczniejszą funkcją.

    Rodzina SHA-2 składa się z czterech członków – SHA-224, SHA-256, SHA-384 i SHA-512, które różnią się liczbą bitów ich wartości skrótu . Jak dotąd nie doszło do udanego ataku na kryptograficzny algorytm skrótu SHA-2 .

    Oto kilka przykładów funkcji skrótu wykorzystujących klasę SHA-2.

    Wiadomość Jury techniczne
    SHA-256 FF3E4985DAFF59392EAE60DEC66EC823CAF9575B81903729053A999B9B2C708E
    SHA-384 77653BC173A561E3378373F64E447FB3AEDC691F387BB599656E6AB63B9C5D34

    523C298C59C94802A478F8C3F36E9CDF

    SHA-512 C975F1074E969FAEA76C15084881F7694DE4D542F9E4DF934AFA52470952A362

    25F7ED63D023AB05746DDAFDFED96D57A7AF5344EB91589A09952D102DD3AB04

    RACE Integrity Primitives Evaluation Message Digest (RIPEMD)

    Początkowo RIPEMD powstało na potrzeby projektu Unii Europejskiej o nazwie RIPE. W rodzinie RIPEMD istnieje pięć funkcji skrótu.

    • RIPEMD
    • RIPEMD-128
    • DOPASOWANY-160
    • RIPEMD-256
    • RIPEMD-320

    W 2004 roku doszło do kolizji oryginalnej funkcji skrótu RIPEMD . Dlatego nie jest już używany. Obecnie najbardziej rozpowszechniony jest RIPEMD-160. Oto jak to wygląda:

    Wiadomość Skrót RIPEMD-160
    Jury techniczne ca25dc64fb00c8becb21eddf50805fbc106eed00

    Wir

    Ta nazwa funkcji skrótu kryptograficznego nie ma nic wspólnego z producentem sprzętu AGD. Whirlpool Galaxy zainspirował nazwę algorytmu.

    Co ciekawe w algorytmie haszującym Whirlpool , jednym z jego twórców jest Vincent Rijmen, współtwórca AES, Advanced Encryption Standard .

    Whirlpool to 512-bitowa funkcja haszująca, a jej skrót to łańcuch składający się ze 128 znaków.

    Jest to przykład funkcji mieszającej kryptograficznego.

    Wiadomość Whirlpool hasz
    Jury techniczne 2E9A775FA4450549FCB6F6CDC4761865715D46FF8003E93CC614EF7C9E3D42A93

    D5A663B4E48674C5155417D686D81ABDBC12FB32A1B650C5E44F24E80156E7D

    Są to obecnie najpopularniejsze algorytmy haszujące .

    Teraz, gdy znasz już podstawy haszowania, przyjrzyjmy się jego zastosowaniom w prawdziwym życiu.

    Hashowanie w kryptowalutach

    Wyjaśniliśmy już, czym jest Bitcoin i jak działa blockchain , więc przejdziemy od razu do hashowania.

    Funkcja skrótu kryptograficznego jest niezbędna dla kryptowalut, ponieważ gwarantuje jedną z najważniejszych cech blockchaina niezmienność .

    Ponieważ blockchainy kryptowaluty obsługują dużą liczbę transakcji, używają hashowania. Jest to o wiele bardziej praktyczne i bezpieczne podejście niż przechowywanie każdego zapisu każdej pojedynczej transakcji w księdze.

    W przypadku Bitcoina górnicy uruchamiają szereg funkcji SHA-256, aby utworzyć skrót bloku. Następnie ten ostatni otrzymuje znacznik czasu. Gdy węzły osiągną konsensus, blok jest dodawany do łańcucha bloków. Blok nie tylko ma swój własny skrót , ale także zawiera skrót poprzedniego , łącząc je wszystkie razem.

    Ze względu na efekt lawinowy wszelkie próby manipulacji blokadą nie są możliwe. W przypadku, gdy ktoś próbuje zmienić transakcję w bloku, musi również zmienić każdą kolejną. Taka operacja wymagałaby tak dużej mocy obliczeniowej i czasu, że jest to praktycznie niemożliwe .

    To sprawia, że ​​haszowanie jest kluczową funkcją bezpieczeństwa łańcucha bloków.

    Ale już.

    Różne kryptowaluty używają różnych algorytmów haszujących w swoim łańcuchu bloków.

    Na przykład Bitcoin używa SHA-256 jako dowodu pracy. Jednak Bitcoin używa dwóch algorytmów haszujących do generowania adresu publicznego (klucza) – SHA-256 i RIPEMD-160. Zrobił to Satoshi Nakamoto, aby zapewnić lepszą ochronę kluczy publicznych i zmniejszyć prawdopodobieństwo kolizji.

    Z kolei Ethereum korzysta z algorytmu skrótu Keccak-256 , który jest podstawą SHA-3.

    Do czasu pisania tego tekstu nie przeprowadzono udanego ataku na żaden z tych algorytmów.

    Nawet jeśli nie interesujesz się rynkiem kryptowalut, nadal korzystasz z funkcji haszujących każdego dnia.

    Jak to?

    Funkcje skrótu w przechowywaniu haseł

    Istnieją cztery główne techniki używane przez firmy do przechowywania naszych haseł – w postaci zwykłego tekstu, z szyfrowaniem i funkcją skrótu . Ostatnia metoda to połączenie dwóch lub więcej z tych technik.

    Zobaczmy, jakie są różnice.

    Przechowywanie haseł w postaci zwykłego tekstu – wielkie nie-nie

    Przechowywanie haseł w postaci zwykłego tekstu jest, cóż… dokładnie tak, jak brzmi.

    Lubię to:

    Nazwa użytkownika: Jan Kowalski

    Hasło: jankowalski93

    Baza danych firmy zawiera te same informacje – użytkownik: Jan Kowalski, hasło: johnsmith93.

    Należy tego unikać, jeśli firmy cenią prywatność swoich klientów. (Mam nadzieję, że przeczyta to ktoś z Facebooka .)

    Wada tej metody jest oczywista – jeśli cyberprzestępcy przenikną do bazy danych firmy, mogą zobaczyć wszystkie nazwy użytkowników i hasła.

    Przechowywanie haseł za pomocą szyfrowania

    Szyfrowanie to lepszy sposób zabezpieczenia haseł. Przekształca Twoje hasło w nieczytelną sekwencję cyfr i liter.

    Oto jak to działa:

    Nazwa użytkownika: Jan Kowalski

    Hasło: jankowalski93

    Gdy firma używa szyfrowania do ochrony hasła, wpis w bazie danych wygląda tak:

    Nazwa użytkownika: Jan Kowalski

    Hasło: I8Zdy1QBthsk2ie1HHsl+66bf20fDDcdCtXURqa07iQ=

    Jeśli cyberprzestępca uzyska to hasło, jest ono bezużyteczne – nie może go użyć do włamania się na konto. Mimo to teoretycznie można go odszyfrować.

    W przypadku, gdy złośliwy aktor uzyska zaszyfrowane hasło, może je odszyfrować za pomocą różnych narzędzi. Mimo to zajmuje to więcej czasu i wymaga większych umiejętności komputerowych niż tylko uzyskanie hasła w postaci zwykłego tekstu.

    Na szczęście istnieją algorytmy szyfrowania, które są wystarczająco potężne, aby stanowić bezpieczną metodę ochrony haseł.

    Przechowywanie haseł za pomocą algorytmu haszującego

    Hash i szyfrowanie są często mylone z tym samym i używane zamiennie. Jest jednak między nimi zasadnicza różnica .

    Funkcja skrótu, podobnie jak szyfrowanie, również przekształca Twoje hasło w nieczytelną sekwencję cyfr i liter. Zasadnicza różnica polega na tym, że działa tylko w jedną stronę . W przeciwieństwie do deszyfrowania nie można odwrócić procesu haszowania.Mając to na uwadze, jeśli cyberprzestępca uzyska skrót Twojego hasła, zwykle nie może z nim nic zrobić.

    Dostępnych jest wiele funkcji skrótu, ale użyjmy SHA-256 dla naszego przykładu.

    Nazwa użytkownika: Jan Kowalski

    Hasło (zaszyfrowane): e7c95991f28e529b4d3b37611e5f3b6a6a43600ce148af0c42d3d38c06365af5

    Ale już.

    Chociaż skrótu nie można odwrócić do oryginalnego tekstu, istnieją duże listy wiadomości i ich skrótów. Niestety, złośliwi aktorzy nadal mogą zhakować Twoje hasło, jeśli uzyskają jego wartość skrótu. Na szczęście, jeśli użyjesz silnego hasła, szanse na to są niewiarygodnie małe. W tym przypadku użyjemy innego przykładu.

    Przykłady funkcji skrótu w przechowywaniu haseł

    Załóżmy, że Twoje hasło to 123456. (Nigdy nie używaj tego hasła, zamiast tego utwórz silne hasło ).

    Oto jego hash, jeśli użyjemy algorytmu haszującego SHA-256 :

    8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92

    Niestety, ten skrót konfiguruje się na liście zaszyfrowanych wiadomości.

    Problem jest tym większy, że wiele osób używa tego samego hasła. Jeśli więc baza danych zostanie zhakowana, a cyberprzestępcy znajdą skrót hasła, mogą go użyć dla każdego użytkownika, który używa tego samego hasła. Nie wspominając już o tym, że wiele osób używa tego samego hasła do różnych kont, dzięki czemu wyjdą z patelni i do ognia.

    Mimo to możesz zrobić kilka rzeczy, aby temu zapobiec.

    Przede wszystkim używaj silnego hasła i twórz różne hasła dla różnych kont.

    Inną rzeczą, którą możesz zrobić, to dodać „ sól ” do haszyszu. Solone mieszania dodaje dodatkową wartość do hasła i tworzy inny hash hasła dla każdego wejścia.

    Na przykład każdy użytkownik, który użyje hasła 123456 i „soli”, otrzyma inny skrót.

    Każdy przykład to solony hasz 123456.

    $2y$10$pIxpMnhlQmt1t.EUYK1G/eHkb7Roo/XhPybKyFZSAqk/50BW10a8.

    $2 lata$10$sCLqOpeA4R.St/8IaUWF9.m01MM4YbY.qTwbCY3.K5z.cd5lwxL6W

    Jaki jest najlepszy sposób, w jaki firma może chronić Twoje hasło?

    Jest to połączenie wszystkich wyżej wymienionych technik – jak na przykład Dropbox.

    Źródło: Dropbox

    Tak więc codziennie radzisz sobie z haszowaniem, nawet nie zdając sobie z tego sprawy.

    Zakończyć

    Podsumowując – haszowanie ma wiele zalet.

    Możesz haszować dowolny rodzaj danych – czy to do indeksowania, czy do sprawdzania zmian. To sprawia, że ​​haszowanie jest przydatne w przypadku umów, pobierania, przechowywania haseł itp.

    Kryptowaluty również ewoluują. Nie tylko te, które mamy teraz, ale także nowi gracze rozgrzewają się, by dołączyć do zabawy. Nawet Facebook wypuści Libra , więc z pewnością będziemy jeszcze bardziej korzystać z hashowania.

    Może Facebook utoruje drogę innym dużym firmom do wypuszczania własnych kryptowalut – a dlaczego nie nowe mechanizmy haszujące? Tylko czas powie.

    Do zobaczenia następnym razem!

    FAQ

    Co to jest wartość skrótu?

    Możesz myśleć o wartości skrótu jako odcisku palca dowolnej informacji – pliku, folderu, bloku transakcji itp. Po zastosowaniu funkcji skrótu do dowolnych danych te ostatnie otrzymują wartość skrótu.

    Składa się z ciągu znaków o stałej długości – tak:

    Informacja Wartość skrótu
    dzień dobry D44426ACA8AE0A69CDBC4021C64FA5AD68CA32FE
    Czym jest kryptografia?

    Kryptografia to metoda, która chroni dane za pomocą kodów (takich jak hashowanie i szyfrowanie).

    Deweloperzy stosują kryptografię, gdy istnieje potrzeba większego bezpieczeństwa i prywatności. Przekształca zwykły tekst (lub inne dane) w nieczytelny ciąg losowych znaków. Gwarantuje to bezpieczeństwo informacji przed wzrokiem ciekawskich.

    Co to jest funkcja skrótu?

    Funkcja skrótu to operacja, która przekształca dane o losowym rozmiarze w odpowiedni ciąg znaków o stałej długości , znany również jako wartość skrótu .

    Istnieją dwie klasy funkcji mieszających – niekryptograficzna i kryptograficzna funkcja mieszająca . Ten ostatni jest używany w kryptowalutach i przechowywaniu haseł oraz zapewnia większe bezpieczeństwo.