Jak HTTPS zapewnia bezpieczeństwo połączenia: co powinien wiedzieć każdy programista WWW. Schematy szyfrowania symetrycznego

Niewiele osób wie dokładnie, jak działa szyfrowanie asymetryczne. Są na przykład osoby, które nie uważają protokołu https za odpowiednią ochronę przesyłanych danych. I z reguły, próbując ich przekonać, że jest inaczej, odpowiadają mniej więcej w stylu: „jeśli przesyłamy zaszyfrowane dane, to musimy powiedzieć, jak je odszyfrować, a informacja ta może zostać przechwycona, a zatem dane mogą zostać odszyfrowane.” A na argumenty, że tak nie jest i że podstawą jest szyfrowanie asymetryczne, odpowiedź brzmi: „I co z tego?”

OK, rozumiem, znam wszystkie subtelności wdrożenia szyfrowanie asymetryczne Nie każdy tego potrzebuje. Myślę jednak, że każdy kto ma cokolwiek wspólnego z komputerami powinien znać ogólną zasadę działania.

Istotę tego wpisu chciałbym streścić w tej adnotacji: Pamiętajcie, szyfrowanie asymetryczne jest bezpieczne oczywiście, jeśli zostaną spełnione wszystkie warunki. Aby to udowodnić, postaram się opisać algorytm zrozumiałym językiem, aby każdy zrozumiał, że jest on bezpieczny. Poznaj Alicję, Boba i Ewę oraz przekaz ich tajnej wiadomości pod nacięciem.

Swoją drogą, dlaczego Alicja i Bob? Na Wikipedii jest krótki artykuł na ten temat: Alicja, Bob i Ewa. Żeby było jaśniej, Alicja i Bob chcą wymieniać wiadomości, a Ewa próbuje te wiadomości przechwycić i przeczytać.

Trochę historii

Kryptografia minionych stuleci miała jeden ogromny problem – problem transferu klucza. W tamtym czasie istniały tylko tak zwane szyfry „symetryczne” – szyfry, w których dane są szyfrowane i deszyfrowane tym samym kluczem.

Na przykład Alicja zaszyfrowała jakąś wiadomość i chce ją wysłać Bobowi. Naturalnie, aby Bob mógł ją przeczytać, potrzebuje klucza, za pomocą którego wiadomość została zaszyfrowana. I wtedy pojawia się problem, jak przekazać klucz, aby nikt nie mógł go przechwycić. Dociekliwe umysły złożą ofertę – niech przekażą ją osobiście, a potem komunikują się tyle, ile chcą. Tak, nie kłócę się, to jest wyjście. A teraz wyobraź sobie przez chwilę, że Twoja poczta internetowa, zanim się do niej zalogujesz, będzie wymagała udania się do fizycznej lokalizacji serwera pocztowego. Wygodny? Być może nie bardzo.

Oczywiście klucz można przesłać innym kanałem komunikacyjnym. Jednak kryptografia uważa wszystkie niezabezpieczone kanały komunikacji za niebezpieczne. Oznacza to, że na przykład przekazanie klucza Bobowi przez telefon jest uważane za niebezpieczne, tak jak nic nie stoi na przeszkodzie, aby Eve również podsłuchiwała telefon.

Do lat 70-tych problem ten stał się na tyle powszechny, że uznawano za aksjomat, że aby przesłać wiadomość, trzeba przekazać klucz, za pomocą którego wiadomość jest zaszyfrowana (a niektórzy nadal tak myślą). Jednak w 1976 roku Diffie i Hellman zaproponowali swoją „metodę wykładniczej wymiany kluczy”. Od tych lat rozpoczął się rozwój asymetrycznych kryptosystemów.

Trochę prawdziwego życia

Zanim zaczniesz studiować jakikolwiek algorytm, musisz wyobrazić sobie, jak on działa. A najłatwiej jest porównać to z tym, jak coś działa w rzeczywistości.

Wyobraźmy sobie, że Alicja i Bob mieszkają w kraju, w którym cały system pocztowy jest całkowicie niemoralny, a pracownicy poczty czytają wszystkie przesyłki niezabezpieczone. Alicja, nie głupia dziewczyna, przed wysłaniem wiadomości do Boba, wzięła żelazną skrzynkę i wkładając list do środka i zamykając ją swoim zamkiem, wysłała tę skrzynkę Bobowi.

Oczywiście poczta nie może przeczytać tego listu, ale sam Bob nie może go przeczytać, ponieważ nie ma klucza, którym zamykany jest zamek. Alicja może oczywiście wziąć kolejną żelazną skrzynkę, włożyć do niej klucz z poprzedniej i wysłać Bobowi, ale Bob też nie będzie mógł jej otworzyć...

Jedynym sposobem jest wykonanie duplikatu klucza i przekazanie go Bobowi osobiście...

Zaczyna się zatem wydawać, że wymiana kluczy jest nieuniknioną częścią szyfrowania – czy jednak tak nie jest?

Wyobraźmy sobie inny obraz. Napiszę to krok po kroku:

  1. Alicja wkłada swój list do żelaznej skrzynki i zamykając ją, wysyła do Boba.
  2. Bob po otrzymaniu pudełka (uwaga!) zabiera swój zamek i dodatkowo zamykając nim pudełko, odsyła go z powrotem.
  3. Alicja otrzymuje już pudełko z dwoma zamkami (przypomnę, pierwszy zamek Alicji, do którego ona ma klucz, i drugi Boba, do którego tylko Bob ma klucz).
  4. Alicja zdejmuje zamek i odsyła pudełko Bobowi
  5. Bob otrzymuje pudełko z jednym ze swoich zamków, do którego ma klucz
  6. Bob otwiera kluczem pozostały zamek i czyta wiadomość

Znaczenie tej krótkiej historii jest ogromne. Pokazuje, że dwie osoby mogą przesłać tajną wiadomość bez wymiany kluczy. Pomyśl o tym! Ta historia właściwie burzy wszystkie aksjomaty, na których zbudowano ówczesną kryptografię. Tak, mamy pewne komplikacje w procesie (pudełko trzeba było wysyłać trzy razy), ale wynik...

Wróćmy do kryptografii

Wydawać by się mogło, że rozwiązanie zostało znalezione. Nadawca i odbiorca szyfrują swoją wiadomość, a następnie rozmówcy na zmianę rozszyfrowują swoją wiadomość.


Rzecz jednak w tym, że nie ma szyfrów, które pozwalałyby na usunięcie szyfru z innego szyfru. Oznacza to, że etap, w którym Alicja usuwa swój szyfr, jest niemożliwy:


Niestety wszystkie dostępne algorytmy w dalszym ciągu wymagają usunięcia szyfrów z kolejki, w której zostały zastosowane. Obawiam się nazwać to aksjomatem (bo historia zna już przypadki, gdy takie aksjomaty zostały rozbite na kawałki), ale nadal tak jest.

Wróćmy do matematyki

Pomysł na pudełko, który opisałem powyżej, zainspirował Diffiego i Hellmana do poszukiwania sposobu na przekazanie wiadomości. Ostatecznie skończyło się na użyciu funkcji jednokierunkowych.

Co to jest funkcja jednokierunkowa? Na przykład istnieje funkcja podwajająca, tj. podwójne (4) = 8, jest dwustronny, ponieważ z wyniku 8 łatwo jest otrzymać wartość początkową 4. Funkcja jednokierunkowa to funkcja, po zastosowaniu której uzyskanie wartości początkowej jest prawie niemożliwe. Na przykład mieszanie żółtej i niebieskiej farby jest przykładem funkcji jednokierunkowej. Wymieszaj je łatwo, ale aby odzyskać oryginalne komponenty - niemożliwe. Jedną z takich funkcji w matematyce jest obliczenia modulo.

Jako podstawę algorytmu Hellman zaproponował funkcję Y x (mod P). Odwrotna transformacja takiej funkcji jest bardzo trudna i można powiedzieć, że w istocie polega na pełnym wyliczeniu wartości wyjściowych.

Powiedziano ci to na przykład 5 x (mod 7) = 2, Spróbuj znaleźć X, A? Znalazłeś? Teraz wyobraź sobie, że liczby rzędu 10 300 są traktowane jako Y i P.

Nawiasem mówiąc, aby zwiększyć trwałość, liczba P musi być liczbą pierwszą, oraz Y- być prymitywnym pierwiastkiem modulo P. Ponieważ jednak wciąż próbujemy zrozumieć teorię, nie widzę sensu zawracania sobie tym głowy.

Algorytm Diffiego-Hellmana

I pewnego dnia Hellmanowi olśniło i udało mu się opracować działający algorytm wymiany kluczy. Algorytm ten wymaga do działania wykonania kroków po obu stronach, więc zamieszczę go w tabeli:

Alicja Fasola
Scena 1 Obaj uczestnicy są zgodni co do znaczeń Y I P dla ogólnej funkcji jednokierunkowej. Ta informacja nie jest tajna. Załóżmy, że wybrano wartości 7 I 11 . Ogólna funkcja wyglądałaby tak: 7 x (mod 11)
Etap 2 Alicja wybiera na przykład losową liczbę 3 A Bob wybiera na przykład losową liczbę 6 , trzyma to w tajemnicy, oznaczmy to jako liczbę B
Etap 3 Alicja zastępuje liczbę A 7 3 (mod 11)= 343 (mod 11) = 2 A Bob wprowadza numer B V funkcja ogólna i oblicza wynik 7 6 (mod 11)= 117649 (mod 11) = 4 , oznacza wynik tego obliczenia w postaci liczby B
Etap 4 Alicja podaje numer A Pion Bob podaje numer B Alicja
Etap 5 Alicja dostaje B od Boba i oblicza wartość b A (mod 11)= 4 3 (mod 11) = 64 (mod 11) = 9 Bob dostaje A od Alicji i oblicza wartość B (mod 11)= 2 6 (mod 11) = 64 (mod 11) = 9
Etap 6 Obaj uczestnicy otrzymali liczbę 9 . To będzie klucz.

Magia? Nie twierdzę, że na pierwszy rzut oka nie jest to jasne. Ale po przeczytaniu i przemyśleniu tego stołu staje się jasne, jak to działa. Jeśli jednak nie jest to jasne, przewiń do końca rozdziału, w którym zamieściłem film objaśniający.

Ponadto należy pamiętać, że aby uzyskać klucz w ostatecznej formule, każda osoba musi mieć trzy wartości:

  • Wartości A I P i tajny numer Boba B
  • lub znaczenia B I P i tajny numer Alicji A

Ale tajne numery nie są przesyłane przez kanał! Eve nie będzie w stanie odzyskać klucza bez czyjegoś tajnego numeru. Dlaczego - napisałem powyżej, ta funkcja jest jednokierunkowa. Spróbuj rozwiązać równanie 4 x (mod 11) = 2 lata (mod 11) znalazłszy X I y.

Aby było jaśniejsze, jak działa schemat Hellmana, wyobraźmy sobie szyfr, który w jakiś sposób wykorzystuje kolor jako klucz:

Załóżmy najpierw, że wszyscy, łącznie z Alicją, Bobem i Ewą, mają trzylitrowy słoik, do którego wlewa się jeden litr żółtej farby. Jeśli Alicja i Bob chcą uzgodnić sekretny klucz, każdy z nich dodaje do swoich słoików po jednym litrze własnej tajnej farby.

Alicja może dodać fioletową farbę, a Bob może dodać szkarłat. Następnie każdy z nich przesyła drugiemu swój słoik z wymieszaną zawartością.

Na koniec Alicja bierze mieszankę Boba i dodaje do niej litr swojej sekretnej farby, a Bob bierze miksturę Alicji i dodaje do niej jeden litr swojej sekretnej farby. Farba w obu puszkach będzie teraz tego samego koloru, ponieważ każda puszka zawiera jeden litr żółtej, fioletowej i karmazynowej farby.

To właśnie ten kolor, uzyskany poprzez dwukrotne dodanie do słoiczków z farbą, posłuży jako klucz. Alicja nie ma pojęcia, jaką farbę dodał Bob, i Bob też nie ma pojęcia, jaką farbę nalała Alicja, ale obaj osiągnęli ten sam wynik.

Tymczasem Ewa jest wściekła. Nawet gdyby udało jej się przechwycić słoiczki zawierające półprodukt, nie byłaby w stanie określić ostatecznego koloru, który byłby uzgodnionym kluczem. Ewa widzi kolor farby uzyskanej poprzez zmieszanie żółtej farby z sekretną farbą Alicji w słoiku wysłanym do Boba oraz widzi kolor farby uzyskanej poprzez zmieszanie żółtej farby z sekretną farbą Boba w słoiku wysłanym do Alicji , ale aby znaleźć klucz, tak naprawdę trzeba znać kolory oryginalnych tajnych farb Alicji i Boba. Jednak patrząc na słoiczki z wymieszanymi farbami, Eve nie będzie w stanie zidentyfikować sekretnych kolorów Alicji i Boba. Nawet jeśli pobierze próbkę jednej z wymieszanych farb, nie będzie w stanie rozdzielić jej na oryginalne farby i znaleźć tej sekretnej, gdyż mieszanie farb jest funkcją jednokierunkową.

Nadal nie jest jasne? Następnie obejrzyj wideo:

Mam nadzieję, że rozumiesz, że istnieje bardzo realny sposób na bezpieczną wymianę kluczy. Należy jednak pamiętać, że nie można jeszcze nazwać tego algorytmu szyfrem asymetrycznym, ponieważ w istocie jest to po prostu algorytm wymiany kluczy.

Szyfrowanie asymetryczne

algorytm asymetryczny zakłada obecność dwóch kluczy – publicznego i prywatnego. Oznacza to, że wiadomość jest szyfrowana kluczem publicznym i odszyfrowana kluczem prywatnym i niczym więcej. Właściwie to właśnie tę koncepcję sformułował Diffie.

Generalnie istota tego algorytmu polega na tym, że strona odbierająca przed odebraniem komunikatu generuje parę kluczy w oparciu o modułowy algorytm arytmetyczny (zasada jest taka sama jak w algorytmie Diffiego-Hellmana), rzeczywisty klucz prywatny i publiczny klucz. Przed wysłaniem nadawca otrzymuje klucz publiczny i szyfruje wiadomość tym kluczem, po czym wiadomość tę można odszyfrować jedynie kluczem prywatnym, który jest utrzymywany w tajemnicy przez stronę odbierającą.


Jeśli wrócimy do analogii z zamkami, to szyfrowanie za pomocą klucz publiczny można sobie wyobrazić w następujący sposób:

Każdy może zamknąć zamek, po prostu klikając go, aż się zamknie, ale tylko osoba posiadająca klucz może go otworzyć. Zablokowanie zamka (szyfrowanie) jest łatwe, prawie każdy może to zrobić, ale tylko właściciel klucza może go otworzyć (odszyfrowanie). Zrozumienie, jak zatrzasnąć zamek, aby się zamknął, nie powie Ci, jak go odblokować.

Można wyciągnąć głębszą analogię.

Wyobraź sobie, że Alicja projektuje zamek i klucz. Czujnie strzeże klucza, ale jednocześnie robi tysiące duplikatów zamków i rozsyła je Urzędy pocztowe Na całym świecie. Jeśli Bob chce wysłać wiadomość, wkłada ją do skrzynki, udaje się na lokalną pocztę, prosi o „zamek Alice” i zamyka nim skrzynkę. Teraz nie będzie już mógł otworzyć pudełka, ale kiedy Alicja otrzyma pudełko, będzie mogła je otworzyć swoim jedynym kluczem.

Założenie kłódki i kliknięcie jej w celu zamknięcia jest równoznaczne ze wspólnym kluczem do szyfrowania, ponieważ każdy ma dostęp do zamków i każdy może użyć kłódki do zamknięcia wiadomości w skrzynce. Klucz do zamka jest odpowiednikiem tajnego klucza deszyfrującego, ponieważ posiada go tylko Alicja, tylko ona może otworzyć zamek i tylko ona może uzyskać dostęp do wiadomości w skrzynce.

Istnieje kilka algorytmów implementujących szyfrowanie asymetryczne. Najbardziej znanym z nich jest RSA. Nie widzę sensu opisywania tego, bo i tak nie od razu zrozumiem, jak to działa, i nadal nie będę w stanie napisać tego lepiej niż to, co jest napisane na Wikipedii.

Wniosek

Cóż, mam nadzieję, że po zrozumieniu, jak działa szyfrowanie asymetryczne od wewnątrz, zaczniesz mu bardziej ufać i odpowiednio częściej korzystać z SSL =)

Wykorzystano materiały z książki Singh Simon – Book of Codes. Swoją drogą, najlepsza książka dla tych, którzy chcą choć trochę zrozumieć kryptografię. Radzę każdemu przeczytać.

  1. telewizja

    Wybranie takiego klucza zajmie Ci dużo czasu. Niewiele więcej niż istnieje wszechświat. Nawet na bardzo wydajnych komputerach.

  2. Igor

    Po co ten nonsens z kluczami publicznymi? Symetryczne są bardziej niezawodne.
    Dzień dobry
    Dobra strona, materiał jest przejrzyście przedstawiony, wielkie podziękowania dla autora. Trafiłem tu przez przypadek we wrześniu, kiedy szukałem informacji na temat praktycznego szyfrowania.
    Piszę, ponieważ chcę zapytać: Czy ktoś chce wiedzieć, jak znaleźć liczby do szyfrowania symetrycznego? Mogę Cię nauczyć, jak szybko sprawdzić pierwszość liczby P (bez szukania liczby g) - ale jest to mało prawdopodobne. Najbardziej interesujący:
    Znajdź liczbę P o dowolnej długości i związaną z nią liczbę g. Nie używam żadnego 2 do potęgi n plus jeden (lub minus jeden). Naturalnie, jest to bezpłatne. Jest nawet strona internetowa, na której zamieszczam swoje prace.

  • Usa Pietrowicz

    Rozumiem, że minęło dużo czasu, ale nadal będę odpowiadać dla nowych czytelników, takich jak ja.

    To nie zadziała, bo... po akcjach 2 i 3 widzimy różnicę o jaką zmieniła się liczba każdego z bloków, zatem sekretny numer Boba staje się dla nas oczywisty i możemy przechwycić wiadomość dopiero po 4 akcji (tj. bez szyfru Alicji) i wykorzystać to, co jest znany nam już numer Boba.

  • Eugeniusz

    Dziękuję bardzo za artykuł!
    Po przeczytaniu prawie wszystko ułożyło się na swoich półkach i zyskało strukturę, którą łatwo było rozbudować.
    Mając taką strukturę łatwo jest wygenerować odpowiednie pytania (półka ataku MiTM, szczególne podziękowania dla Michaiła :)).

    Z pedagogicznego punktu widzenia zrobiłeś wszystko doskonale. Myślę, że masz rację, że nie dodałeś ataków MiTM do tego artykułu, w przeciwnym razie doszłoby do przeciążenia informacjami.

    Teledysk jest uroczy, zwłaszcza biorąc pod uwagę jego wiek.

    PS: użycie metafor do wyjaśnienia „złożonych” systemów jest naprawdę trudne do przecenienia. Dzięki jeszcze raz!

  • dbzix

    Z tego artykułu nie uchwyciłem momentu przejścia od algorytmu Diffiego-Hellmana, gdzie dwóch abonentów wymienia dane publiczne i pośrednie wyniki obliczeń w celu uzyskania tajnego klucza (w przykładzie było aż 6 etapów) do etapu, w którym do szyfrowania używany jest określony klucz publiczny, który następnie jest odszyfrowywany za pomocą klucza prywatnego (liczę tu tylko 2 etapy przesyłania danych - wysłanie klucza publicznego i wysłanie wiadomości zaszyfrowanej tym kluczem).
    Te. Rozumiem, że gdzieś pomiędzy tymi dwoma wyjaśnieniami kryje się zapewne sporo matematyki i ostatecznie wyjaśnienie sprowadza się do tego, że „tak to działa, po prostu mi zaufaj”. Ale chyba łatwiej byłoby zrozumieć to nagłe przejście, gdyby analogię z farbami rozszerzyć na wyjaśnienie istoty szyfrowania kluczem publicznym, a następnie deszyfrowania kluczem prywatnym. W międzyczasie powstaje coś w rodzaju „B działa, ponieważ A”, podczas gdy między A i B nie ma jasnego związku. Przynajmniej dla mnie.
    Drogi autorze, czy byłbyś tak miły i wyjaśnił mi ten mistyczny skok z punktu A do B? :) Dziękuję!

  • Eugeniusz

    Dzień dobry,

    Dane: istnieje formuła Y^x (mod P).
    przykład w artykule oparty jest na wzorze 7^x (mod 11)

    Jako przykład wziąłem 4^x (mod 7).
    i nie mogłem wymyślić wspólnego klucza.
    Pytanie: dlaczego algorytm w przykładzie działa dla 7^x (mod 11), a nie dla 4^x (mod 7)?

  • Jessi-jane
  • Andriej

    Dziękuję, świetny artykuł!
    Dopiero teraz prawie rozgryzłem algorytm, jak obliczyć przez moduł.
    Czy mógłbyś mi powiedzieć, jak obliczyć liczbę B, jeśli liczba A jest mniejsza niż moduł?
    Cóż, na przykład:
    3(mod 13) =?

    Wiem, że jeśli na przykład trzeba obliczyć 625 (mod 13), to potrzeba 625/13, a następnie pomnożyć największy możliwy dzielnik całkowity (48) przez moduł (który tutaj będzie równy 624) i na koniec 625-624 = 1
    Liczby 625 i 1 są porównywalne modulo 13, ponieważ 624 dzieli się przez 13.
    To jest to, co rozumiem. Ale co jeśli moduł więcej numeru A?

  • Żółty horror

    1. Atak typu man-in-the-middle jest poważnym problemem. O ile wiem, w ramach samej kryptografii problemu tego nie da się w zasadzie rozwiązać: jeśli przyjmiemy, że Eve jest w stanie przechwycić i niezauważalnie zastąpić WSZYSTKIE dane przychodzące do Alicji lub wychodzące od niej DOWOLNYMI kanałami komunikacyjnymi, nie będzie żadnego szyfrowania pomoże. Przynajmniej jeden certyfikat Alicja musi pozyskać z całkowicie wiarygodnego źródła. Jeśli jednak atakujący może tylko podsłuchiwać kanał komunikacyjny i nie zmieniać w nim danych, szyfrowanie asymetryczne jest całkiem niezawodne.
    2. Jeśli chodzi o możliwość usunięcia jednej „warstwy szyfru” spod drugiej, to taką właściwość posiada banalna funkcja XOR, szeroko stosowana w kryptografii od czasów starożytnych po dzień dzisiejszy. Chyba nie da się tego opatentować :(

    1. Dmitrij Amirow Autor

      Tak, masz rację, dzisiejszego ataku mitm nie da się w żaden sposób rozwiązać, jeśli jesteś całkowicie paranoikiem. Jeśli tak nie jest, manipulowanie certyfikatami i podpisami zapewni „niezbędną i wystarczającą” ochronę.

      Jeśli chodzi o funkcję XOR, trudno ją nazwać szyfrem, ponieważ nie jest jednym w swej istocie.

      1. Żółty horror

        Pospiesz się? Wygoogluj szyfr Vernama. To jest system przesyłania wiadomości absolutny kryptoodporny. I opiera się właśnie na XOR. Pomijając pewne trudności organizacyjne (tworzenie prawdziwie losowych kluczy o równomiernym rozmieszczeniu, utrzymanie tajemnicy podkładki szyfrującej w nieprzyjaznym środowisku i bezpieczne niszczenie używanych kluczy), ludzkość nie wymyśliła jeszcze nic prostszego i bardziej niezawodnego.

      2. Żółty horror

        Chociaż po rozsądnym namyśle zdałem sobie sprawę, że metoda podwójnego odwracalnego szyfrowania nie działa, jeśli atakujący zna algorytm szyfrowania. Spójrzmy na pomysły Michaiła jako przykład:

        1. Dzielimy zaszyfrowane informacje na bloki. Każdy blok jest reprezentowany przez liczbę. Rozmiar bloku (liczba bitów) określa liczbę możliwych wartości bloku i (odpowiednio?) siłę szyfrowania.
        2. Aby zaszyfrować wiadomość, Alicja wybiera tajny numer (którego nikomu nie wysyła), który dodaje do każdego z numerów w blokach i wysyła tak zaszyfrowaną wiadomość do Boba.

        Na razie wszystko w porządku: Ewa nie może przeczytać wiadomości od Alicji, ponieważ... nie zna numeru klucza. Jeśli bloki są wystarczająco duże, trudno jest odzyskać wiadomość Alicji, ale jeśli blok jest dłuższy niż wiadomość, a klucz nie zawiera luk, jest to niemożliwe. Ale Ewa może i kopiuje szyfrogram Alicji.

        3. Bob odbiera zaszyfrowaną wiadomość, wybiera swój tajny numer (którego również nikomu nie wysyła), dodaje ten numer do każdej z liczb w blokach wiadomości zaszyfrowanej przez Alicję i wysyła tę podwójnie zaszyfrowaną wiadomość do Alicji .

        I tu zaczynają się problemy: Ewa nadal nie może odczytać wiadomości Alicji, ale mając kopię szyfrogramu otrzymanego przez Boba i przesłane przez niego podwójne szyfrowanie, może z łatwością przywrócić klucz Boba.

        4. Alicja odejmuje swój tajny numer od każdego numeru w blokach tej podwójnie zaszyfrowanej wiadomości i wysyła powstałą wiadomość do Boba.

        Alicja usunęła swoją „warstwę” szyfru i teraz wysyła Bobowi swój list, zaszyfrowany wyłącznie kluczem Boba. Które Ewa już ma! Ewa odszyfrowuje list i czyta go, a na wszelki wypadek może odzyskać klucz Alicji, korzystając z odszyfrowanej treści listu i pierwszego przechwyconego szyfrogramu.

  • Dmitrij

    Cześć. Dobry artykuł, ale też nie zrozumiałem niektórych punktów opisanych powyżej.
    Jest to przejście od algorytmu uzyskiwania tajnego klucza przez oboje rozmówców (Alicję i Boba) (bez udostępniania ich publicznie) do szyfrowania asymetrycznego.
    Piszesz, że wiadomość jest szyfrowana po stronie Alicji kluczem publicznym otrzymanym od Boba. Ale jeśli zaszyfrujemy kluczem publicznym, to Eve może go łatwo zdobyć i sama odszyfrować, prawda?
    Nadal nie jest dla mnie jasne, w jaki sposób można szyfrować kluczem publicznym i odszyfrowywać tylko sekret po stronie Boba. Oznacza to, że zaszyfrowali go słowem „Dom” i odszyfrowali słowem „Świat”. Dla mnie to jakiś nonsens.
    Na podstawie tych oczywistych luk (twoich lub moich) doszedłem do wniosku, że obwód tutaj musi być bardziej skomplikowany niż na zdjęciu. Najprawdopodobniej strzałka od klucza publicznego Boba do Alicji oznacza coś innego, a mianowicie całą sekwencję działań mających na celu uzyskanie „Y” i „P”, uzyskanie wyników pośrednich itp. Innymi słowy, myślę, że gdy oryginalna wiadomość jest szyfrowana rzekomo publicznym kluczem, tak naprawdę jest ona szyfrowana nie kluczem publicznym, ale tajnym, który jest obliczany z każdej strony osobno.

    Miałem również pytanie dotyczące odszyfrowania podwójnie zaszyfrowanej wiadomości. Jeśli weźmiemy, powiedzmy, szyfr Cezara, w którym każda litera jest szyfrowana inną literą, stojącą, powiedzmy, 3 pozycje dalej. Jeśli Alicja zaszyfruje literę A w wiadomości literą B, a następnie Bob zaszyfruje tę literę B literą G, to łatwo będzie uzyskać literę A od G i to w dowolnej kolejności. To prawda, że ​​​​najprawdopodobniej zadziała to tylko w przypadkach, gdy obaj znają rodzaj szyfrowania rozmówcy i są wystarczający proste typy szyfrowanie (monoalfabetyczne/polialfabetyczne). Ja też jestem nowy w kryptografii, więc to jest moja opinia ;)

    1. Dmitrij

      Zapomniałem zapytać.
      Jaka jest różnica między metodami symetrycznymi i asymetrycznymi?

      1. Dmitrij

        Przeczytałam, mniej więcej jakoś poukładałam wszystko w głowie.
        Odpowiem na pytania, które napisałem, być może pomagając w ten sposób innym czytelnikom.
        1. O

        Piszesz, że wiadomość jest szyfrowana po stronie Alicji kluczem publicznym otrzymanym od Boba. Ale jeśli zaszyfrujemy kluczem publicznym, to Eve może go łatwo zdobyć i sama odszyfrować, prawda?
        Nie jest dla mnie również jasne, w jaki sposób można szyfrować kluczem publicznym i odszyfrowywać tylko tajnym kluczem po stronie Boba. Oznacza to, że zaszyfrowali go słowem „Dom” i odszyfrowali słowem „Świat”. Dla mnie to jakiś nonsens.

        W tym artykule wspomniano o algorytmie RSA. Algorytm szyfrowania symetrycznego. W rzeczywistości używa następującego algorytmu:
        1) W oparciu o pewną jednokierunkową funkcję szyfrowania (funkcję, którą łatwo obliczyć w jedną stronę, ale bardzo trudno w drugą. A) tworzymy parę na odbiorcy (klucz publiczny; klucz prywatny). Ta para jest unikalna, to znaczy każdemu kluczowi publicznemu odpowiada unikalny klucz prywatny dla tej jednokierunkowej funkcji.

        3) Nadawca szyfruje wiadomość
        4) Przelewy do odbiorcy

        Jak widać nadawca nie zna klucza prywatnego i nie jest w stanie odszyfrować własnej zaszyfrowanej wiadomości. Dlatego nazywa się to asymetrycznym, ponieważ jeden ma wszystkie klucze, a drugi tylko część potrzebną do szyfrowania.

        Jaka jest różnica między metodami symetrycznymi i asymetrycznymi?
        Czy gdybym użył algorytmu Diffiego i Hellmana do przesłania tajnego klucza, a następnie byłby w stanie bezpiecznie przesłać zaszyfrowaną wiadomość, czy ta metoda byłaby symetryczna?

        Algorytm Daffy’ego-Hellmana, który służy do wymiany kluczy i dalszego szyfrowania symetrycznego. Oznacza to, że jego istota polega na tym, że najpierw oba otrzymują pełny klucz do szyfrowania i deszyfrowania, a następnie rozpoczynają najpopularniejsze szyfrowanie symetryczne.

        Metoda asymetryczna - jeden węzeł posiada wszystkie informacje do szyfrowania/deszyfrowania, a drugi z reguły tylko do szyfrowania

        Symetryczny – oba węzły znają wszystkie informacje potrzebne do szyfrowania/deszyfrowania.

        Mam nadzieję, że komuś pomogłem;3

        1. Dmitrij

          W tym artykule wspomniano o algorytmie RSA. Algorytm szyfrowania asymetrycznego Zapieczętowałem to.

        2. Dmitrij Amirow Autor

          Hmm... dopiero teraz zauważyłem Twoje komentarze. Przepraszam.

          Wszystko wydaje się być prawidłowe. Jest jedna rzecz w twoim ostatnim akapicie, a konkretnie w terminach:

          • Algorytm Daffy’ego-Hellmana- to algorytm, który pozwala uzyskać jeden wspólny tajny klucz i nic więcej
          • Szyfrowanie asymetryczne/symetryczne- ogólnie rzecz biorąc, wszystko jest z tobą w porządku
          • RSA- algorytm będący kombinacją tych rzeczy. Na palcach: stosując szyfrowanie asymetryczne z wykorzystaniem protokołu Deffie-Helmana, ustalany jest tajny klucz, za pomocą którego wiadomości pomiędzy rozmówcami są szyfrowane metodą szyfrowania symetrycznego.
        3. Dmitrij

          Nadal nie rozumiem stwierdzenia:
          2) Klucz publiczny zostaje przekazany nadawcy.
          3) Nadawca szyfruje wiadomość
          4) Przelewy do odbiorcy
          5) Odbiorca odszyfrowuje za pomocą klucza prywatnego. Tej wiadomości nie można odszyfrować przy użyciu klucza publicznego.

          Okazuje się, że miałeś to na myśli od samego początku. Szyfrujemy słowem Dom i odszyfrujemy słowem Świat. Czy to oznacza, że ​​istnieje inny algorytm łączący ze sobą Świat i Dom?

  • Roberta

    Wielkie dzięki!!!

  • Powieść

    Dziękuję. W końcu zdecydowałem się dowiedzieć, jak to działa i dowiedziałem się z tego artykułu. Tylko, moim zdaniem, jeśli wspólnicy znają się i da się bezpiecznie wymienić klucze publiczne, to warto to zrobić. Aby wyeliminować szkodliwy wpływ ewentualnego pojawienia się osoby pośrodku podczas wymiany kluczy, która będzie udawać A jako B i B jako A, zamieniając klucze na własne i ostatecznie przeglądając wszystkie informacje.

    A na filmie myślę, że na próżno używają tego 3^(24*54), ponieważ Wcale nie jest oczywiste, skąd się to wzięło, w przeciwnym razie wyjaśniliby, że jest to warunkowe.

  • Rinswin D

    Dziękuję za artykuł. Wszystko jest bardzo jasno wyjaśnione.

  • Grigorij

    Cóż, ten analfabetyzm ortograficzny irytuje wszystkich - „jednostronny”, „stosowany”, „długi”, jak w piątej klasie. A więc nieźle, jeśli chodzi o zrozumienie podstaw.

  • Grigorij

    Czasami pytanie jest proste. Wirusy ransomware korzystają z klucza prywatnego. Istnieje plik oryginalny i plik zaszyfrowany. Zadanie: znajdź algorytm, że tak powiem, który szuka algorytmu konwersji pierwszego pliku na drugi...

  • Alexys

    Dziękuję za przejrzysty i zabawny artykuł! Wreszcie opanowałem podstawy :).

  • Jarosław

    Niestety wszystkie dostępne algorytmy w dalszym ciągu wymagają usunięcia szyfrów z kolejki, w której zostały zastosowane.

    Nie jest to do końca prawdą. Podam ci przykład:
    — załóżmy, że każdej literze odpowiada kod cyfrowy A = 1, B = 2, C = 3 itd.;
    — załóżmy, że Alicja wysyła Bobowi list składający się z jednej litery A (dla uproszczenia przykładu);

    Alicja: stawia swój szyfr A + 2 = B

    Bob: stawia swój szyfr B + 3 = E
    Bob: wysyła list do Alicji
    Alicja: usuwa swój szyfr E - 2 = G
    Alicja: wysyła list do Boba
    Bob: usuwa swój szyfr G - 3 = A

    Tutaj liczba 2 to tajny klucz Alicji, 3 to tajny klucz Boba. Co więcej, nie może to być jednoznak. W zasadzie jego długość jest nieograniczona.

  • Dmitrij

    Długo unikałem podstawy teoretyczne szyfrowanie asymetryczne. Wiedziałem powierzchownie – istnieje klucz publiczny, za pomocą którego szyfrowane są dane, i istnieje klucz prywatny, za pomocą którego dane są odszyfrowywane. Jednak myśl o wdrożeniu takiego szyfrowania zawsze mnie niepokoiła.
    Twój artykuł bardzo mi pomógł, bardzo Ci za to dziękuję!
    Dopiero pod koniec ponownie zobaczyłem ten nonsens – „zaszyfrowany kluczem publicznym”. Przecież, ściśle mówiąc, wiadomość szyfrowana jest nie kluczem publicznym, ale kluczem uzyskanym na podstawie klucza prywatnego nadawcy i klucza publicznego odbiorcy (który z kolei został wygenerowany na podstawie klucza prywatnego odbiorcy). Rzeczywiście, w tabeli o Alicji i Bobie - oni i tylko oni byli w stanie uzyskać ten sam klucz „9” - służy on do szyfrowania i deszyfrowania wiadomości. Ale ten klucz można uzyskać tylko na podstawie pary kluczy - tajnego (Alice/Bob) i publicznego (Bob/Alice).
    W przenośni – tak, wiadomość jest zawsze szyfrowana tajnym kluczem nadawcy (jest to w przybliżeniu stały) i kluczem publicznym odbiorcy (zależy to od konkretnego odbiorcy), dlatego w opisie szyfrowanie „tajnym” kluczem zostaje pominięty – a to pominięcie burzy cały porządek rozumowania.

  • Clarksona

    Przeczytałem artykuł i nie bardzo go zrozumiałem, chociaż był lepszy niż na wiki. Ale jest tylko jedna rzecz, której nie rozumiem. Jeżeli ktoś potrafi odpowiedzieć poprawnie proszę o pomoc.

    jeśli wyślę każdemu pytanie „ile to jest 2+2?”, powiem im, jak zaszyfrować mi odpowiedź (wszystkim przekazuję klucz publiczny) i wszyscy wyślą mi odpowiedź na pytanie, jak znaleźć od kogo dokładnie czekam na odpowiedź, czyli z kim naprawdę chciałem nawiązać kontakt?

    1. Dmitrij Amirow Autor

      Tutaj trochę źle zadajesz pytanie.

      Jeśli chcesz nawiązać z kimś połączenie, musisz udać się z przeciwnego kierunku. Łączysz się ze swoim rozmówcą i już on ci powie udostępnia Twój klucz publiczny, a nie Ciebie.

      UPD: napisałem artykuł na temat, myślę, że to będzie poprawna odpowiedź na Twoje pytanie.

      1. Clarksona

        Będę musiał walczyć ze swoją głupotą. temat jest poruszany w komentarzach, a w Twoim artykule wydaje się, że wszystko zostało wyjaśnione.

        już. Dlaczego muszę publikować jego klucz? powiedz mi, jeśli nie rozumiem poprawnie.
        Jestem inicjatorem (potrzebuję odpowiedzi, w przykładzie jestem odbiorcą), czyli generuję parę. to on odpowiada (w twoim przykładzie nadawca), który potrzebuje mojej publiczności

        Przed wysłaniem nadawca otrzymuje klucz publiczny i szyfruje wiadomość tym kluczem, po czym wiadomość tę można odszyfrować jedynie kluczem prywatnym, który jest utrzymywany w tajemnicy przez stronę odbierającą.

  • Beshot

    Kilka razy przeczytałem ten artykuł i inne na ten temat, ale algorytm używania podpisów cyfrowych w wiadomościach e-mail jest niejasny. dokumenty Jeśli jest tak tutaj: https://ru.wikipedia.org/wiki/Electronic_signature, to pojawiają się rozbieżności. Czy nadal szyfrujemy przy użyciu klucza prywatnego czy publicznego?

    1. Dmitrij Amirow Autor

      Jeżeli coś podpisujemy, to podpis składamy w oparciu o nasz klucz prywatny. A odbiorca musi mieć nasz klucz publiczny, za jego pomocą będzie mógł odszyfrować ten podpis.

      Jeśli podpis jest „odszyfrowany”, wówczas klucz publiczny odpowiada kluczowi prywatnemu i odtąd a priori klucz prywatny posiada tylko nadawca, co oznacza, że ​​to on podpisał dokument.

      1. Beshot

        Dmitry, twój artykuł bardzo mi pomógł, masz dobry styl. Ale jest niezrozumiały punkt: twierdzisz, że algorytm asymetryczny zakłada obecność dwóch kluczy - publicznego i prywatnego. Oznacza to, że wiadomość jest szyfrowana kluczem publicznym i odszyfrowana kluczem prywatnym i niczym więcej.

        Może to być kwestia pierwotnego zadania, na przykład odbiorca musi uwierzytelnić posłańca.
        W takim razie nie mogę sobie wyobrazić, w jaki sposób ten schemat może pomóc?

        1. Dmitrij Amirow Autor

          Oznacza to, że wiadomość jest szyfrowana kluczem publicznym i odszyfrowana kluczem prywatnym i niczym więcej.

          Nie do końca prawda. Wiadomość jest szyfrowana jednym kluczem i deszyfrowana innym. Te. Całkiem możliwe jest zaszyfrowanie go prywatnie i odszyfrowanie go publicznie.

          Spójrzmy na przykład. Chcesz wysłać mi wiadomość, chcę się upewnić, że to Ty mi ją wysłałeś. Krok po kroku:
          1) Szyfrujesz wiadomość kluczem prywatnym
          2) Wyślij mi to
          3) Skontaktuję się z Tobą i otrzymam od Ciebie klucz publiczny
          4) Odszyfruję otrzymaną wiadomość za pomocą Twojego klucza publicznego
          5) Jeśli wiadomość zostanie odszyfrowana, oznacza to, że to Ty ją wysłałeś

          Nikt inny nie może wysłać tej wiadomości podszywając się pod Ciebie, ponieważ tylko Ty masz klucz prywatny.

          1. Beshot

            OK, ale co, jeśli chcesz ukryć wiadomość przed wzrokiem ciekawskich?

  • Ania

    Dzień dobry Artykuł podobał mi się, ale nadal miałem pytania (w komentarzach było nawet kilka podobnych, ale bez odpowiedzi).
    Jeśli w drugiej części artykułu przejdziemy do analogii z Alicją i Bobem, w szczególności do liczb A, B, a, b, P oraz liczby 9 uzyskanej w przykładzie, która z nich będzie kluczem prywatnym i który będzie kluczem publicznym? Dziękuję z góry za Twoją odpowiedź!

    1. Ania

      Nie jest jasne, czy mój komentarz został opublikowany, czy nie :(

    2. Dmitrij Amirow Autor

      Bardziej słuszne byłoby stwierdzenie, że w procesie wymiany danych Alicja i Bob otrzymują wspólny klucz 9 , które można później wykorzystać do szyfrowania wiadomości. Tak naprawdę w artykule opisałem nie samo szyfrowanie asymetryczne, ale protokół wymiany kluczy, który dał impuls do rozwoju szyfrowania asymetrycznego.
      Algorytm generowania pary kluczy prywatny/publiczny jest w rzeczywistości nieco bardziej skomplikowany, chociaż jest podobny do algorytmu opisanego powyżej, ale nadal prawdopodobnie zasługuje na osobny artykuł. Nie będę tego od razu pisać w komentarzach, bo mógłbym pomieszać wiele rzeczy.

  • Grzegorz
  • Oświadczenie o wyzwaniu związanym z bezpieczeństwem informacji

    Schemat szyfrowania symetrycznego

    Formalnie schemat szyfrowania symetrycznego można opisać w następujący sposób:

    SE = (K, E, D) , Gdzie

    • K - algorytm generowania klucza K,
    • E(M, K) = C - algorytm szyfrowania tekstu jawnego M na kluczu K, którego wynikiem jest tekst zaszyfrowany C,
    • D(C, K) = M - algorytm deszyfrowania tekstu zaszyfrowanego C na kluczu K, w wyniku którego otrzymujemy tekst jawny M

    Proces przesyłania wiadomości można opisać w następujący sposób:

    Nadawca szyfruje wiadomość przy użyciu określonego algorytmu szyfrowania, którego danymi wejściowymi jest oryginalna (nieszyfrowana) wiadomość i klucz. Dane wyjściowe algorytmu to zaszyfrowana wiadomość. Klucz jest wartością niezależną od szyfrowanej wiadomości. Zmiana klucza powinna zmienić zaszyfrowaną wiadomość.

    Zaszyfrowana wiadomość jest wysyłana do odbiorcy. Odbiorca konwertuje zaszyfrowaną wiadomość na wiadomość oryginalną przy użyciu algorytmu deszyfrowania i tego samego klucza używanego do szyfrowania lub klucza, który można łatwo wyprowadzić z klucza szyfrowania.

    Najważniejszym elementem schematu szyfrowania symetrycznego jest algorytm szyfrowania, którego używa. Obecnie wyróżnia się algorytmy szyfrowania blokowego i strumieniowego:

    • szyfry blokowe. Przetwarzaj informacje w blokach o określonej długości (zwykle 64, 128 bitów, np. w DES lub AES), stosując klucz do bloku w w przepisany sposób, zwykle poprzez kilka cykli tasowania i zastępowania, zwanych rundami.
    • szyfry strumieniowe, w których szyfrowanie odbywa się na każdym bitze lub bajcie oryginalnego (zwykłego) tekstu przy użyciu współczynnika gamma.

    W praktyce granica pomiędzy algorytmami szyfrowania blokowego i strumieniowego jest dość niewyraźna (szyfr strumieniowy można łatwo stworzyć w oparciu o szyfr blokowy, np. GOST 28147-89 w trybie gamma).

    Schematy szyfrowania stosowane w szyfrach blokowych nazywane są także trybami szyfrowania.

    Oto niektóre schematy szyfrowania symetrycznego:

    1. (EBC) Elektroniczna książka kodów
      • (ECB CTS
    2. (CBC) Łańcuch bloków szyfru Tryb łączenia bloków tekstu zaszyfrowanego
      • (CBC CTS) Kradzież szyfrogramu
      1. () łączenie bloków Tryb łączenia bloków
      2. (CBC$) Łańcuch bloków szyfru z losowym IV (wektorem inicjującym) Tryb łączenia bloków z losowym wektorem inicjującym
      3. (CBCC) łączenie bloków szyfru z sumą kontrolną Tryb łączenia bloków tekstu zaszyfrowanego z sumą kontrolną
      4. (PCBC) propagujące łączenie bloków szyfru Tryb łączenia bloków z propagacją błędów
      5. (CBCPD) łączenie bloków szyfru z różnicą w tekście jawnym
    3. (CFB) Tryb szyfrowania zwrotnego informacja zwrotna za pomocą szyfrogramu
    4. (OFB) Sygnał zwrotny wyjścia Tryb sprzężenia zwrotnego wyjścia
    5. (OFBNLF) wyjściowe sprzężenie zwrotne z funkcją nieliniową
    6. (PBC) łączenie bloków tekstu jawnego
    7. (PFB) Informacja zwrotna w postaci zwykłego tekstu Tryb informacji zwrotnej w postaci zwykłego tekstu
    8. (CTR) Licznik Tryb licznika
    9. Wielokrotne szyfrowanie
      1. Podwójnie
        • Metoda Davisa-Price'a
      2. Potroić
        • Schemat Tuchmana
        • Trzy kluczowe obwody

    Podstawowe struktury kryptograficzne i ich siła (prymitywy i/lub protokoły kryptograficzne)

    Siła kryptograficzna schematów szyfrowania symetrycznego zależy prawie całkowicie od zastosowanego w nim algorytmu szyfrowania symetrycznego. Z reguły analizując siłę algorytmu symetrycznego (jednokluczowego) przyjmuje się, że jak najbardziej prosty obwód szyfrowanie - EBC. Zastosowanie innych schematów może w niektórych przypadkach poprawić niektóre właściwości algorytmu, ale nie odwrotnie.

    Aby zapewnić niezawodność algorytmów szyfrowania symetrycznego konieczne jest:

    • algorytm kryptograficzny musi być na tyle silny, aby przesyłana zaszyfrowana wiadomość nie mogła zostać odszyfrowana bez klucza, wykorzystując jedynie różne wzorce statystyczne zaszyfrowanej wiadomości lub inne metody jej analizy.
    • bezpieczeństwo przesyłanej wiadomości powinno zależeć od tajności klucza, a nie od tajności algorytmu. Algorytm musi zostać przeanalizowany przez specjalistów, aby wykluczyć obecność słabe punkty, w przypadku których związek między wiadomościami niezaszyfrowanymi i zaszyfrowanymi jest słabo ukryty.
    • algorytm nie powinien naruszać tajemnicy klucza, nawet jeśli wróg ma sporo par otwarte teksty oraz odpowiadające im szyfrogramy uzyskane przy użyciu tego klucza.

    Z reguły przyjmuje się, że uczestnicy zaszyfrowanej wymiany informacji całkowicie sobie ufają, w przeciwnym razie w przypadku sporów i nieporozumień co do wiarygodności komunikatu niezależny obserwator nie będzie w stanie stwierdzić, kto go wysłał.

    Symetryczne schematy kryptograficzne z reguły charakteryzują się dużą szybkością szyfrowania/deszyfrowania, co pozwala na ich wykorzystanie szybkie szyfrowanie duża ilość informacji. Ponadto za pomocą niektórych z nich możliwe jest zapewnienie wszystkich trzech właściwości bezpieczeństwa informacji: poufności, autentyczności, integralności.

    • Poufność transmisji zależy od siły szyfru i zapewnienia poufności klucza szyfrującego.
    • Autentyczność jest zapewniona dzięki temu, że bez wcześniejszego odszyfrowania dokonanie modyfikacji semantycznej i kryptograficznego fałszerstwa jest prawie niemożliwe prywatna wiadomość. Fałszywej wiadomości nie można poprawnie zaszyfrować bez znajomości tajnego klucza.
    • Integralność danych zapewniona jest poprzez dołączenie do przesyłanych danych specjalnego kodu (wstawienie imitujące) wygenerowanego przy użyciu tajnego klucza. Wkładka imitująca jest typem suma kontrolna, czyli pewna cecha referencyjna komunikatu, względem której sprawdzana jest jego integralność. Algorytm generowania symulowanej wstawki musi zapewniać jej zależność, zgodnie z pewnym skomplikowanym prawem kryptograficznym, od każdego bitu wiadomości. Integralność komunikatu jest weryfikowana przez odbiorcę komunikatu poprzez wygenerowanie za pomocą tajnego klucza symulowanej wstawki odpowiadającej otrzymanej wiadomości i porównanie jej z odebraną wartością symulowanego wstawienia. W przypadku zgodności uznaje się, że informacja nie uległa modyfikacji w drodze od nadawcy do odbiorcy.

    Posiadając dużą prędkość szyfrowania, kryptosystemy jednokluczowe pozwalają rozwiązać wiele ważnych problemów bezpieczeństwa informacji (na przykład bardzo skuteczne jest zastosowanie algorytmów symetrycznych do szyfrowania zasobów lokalnych, na przykład dysku twardego). Jednakże samodzielne użycie symetryczne kryptosystemy w sieć komputerowa podnosi problem dystrybucji kluczy szyfrujących pomiędzy użytkownikami.

    Praktyczne zastosowania struktur kryptograficznych, cechy ich realizacji (Zagadnienia praktyczne)

    Praktyczne zastosowanie schematów szyfrowania można zaobserwować w wielu obszarach naszego życia, np. schemat ECB służy do szyfrowania kluczy, schematy CBC i CFB służą do uwierzytelniania danych, schemat CFB służy także do szyfrowania poszczególnych znaków. Schemat OFB jest często stosowany w kanałach o dużych zakłóceniach (na przykład systemy komunikacji satelitarnej). Schemat szyfrowania PCBC wykorzystuje protokoły Kerberos v4 i WASTE

    Szyfrowanie symetryczne

    Szyfrowanie, w którym to samo hasło jest używane zarówno do szyfrowania, jak i deszyfrowania. Kontrastuje to z szyfrowaniem asymetrycznym, które wykorzystuje dwa różne klucze do szyfrowania i deszyfrowania: klucz „publiczny” i „prywatny”.

    Główna przewaga szyfrowania symetrycznego nad szyfrowaniem asymetrycznym: jest znacznie szybsze (1000 razy). „Schematy szyfrowania hybrydowego” są często stosowane, gdy połączenie sterujące tworzone jest poprzez szyfrowanie asymetryczne i za pośrednictwem tego kanału strony uzgadniają między sobą, jaki algorytm szyfrowania symetrycznego wybrać i jaki będzie klucz szyfrowania (klucz sesji). Kanał symetryczny w takim schemacie jest zwykle odtwarzany po pewnym czasie od nowa, aby uniknąć odgadnięcia hasła symetrycznego (jeśli kanał symetryczny istniałby, powiedzmy, od kilku lat, to przy niewystarczająco niezawodnym algorytmie szyfrowania atakujący mógłby zgadnąć hasło w tym czasie na jakimś klastrze superkomputerów).


    Większość szyfrów symetrycznych wykorzystuje złożoną kombinację duża ilość podstawienia i permutacje. Wiele takich szyfrów jest wykonywanych w kilku (czasami do 80) przebiegach, przy użyciu „klucza dostępu” w każdym przebiegu. Zestaw „kluczy dostępu” do wszystkich przepustek nazywany jest „harmonogramem kluczy”. Z reguły tworzy się go z klucza, wykonując na nim określone operacje, w tym permutacje i podstawienia.

    Często siła algorytmu, szczególnie w przypadku kryptoanalizy różnicowej, zależy od wyboru wartości w tabelach przeglądowych (S-boxach). Za niepożądane uważa się co najmniej stałe elementy S(x) = x, a także brak wpływu jakiegoś bitu bajtu wejściowego na jakiś bit wyniku - czyli przypadki, gdy bit wyniku jest tak samo dla wszystkich par słów wejściowych, które różnią się tylko tym bitem.

    Szyfry „blokowe” przetwarzają informacje w blokach o określonej długości (zwykle 64, 128 bitów), stosując klucz do bloku w określonej kolejności, zwykle poprzez kilka cykli tasowania i podstawienia, zwanych „rundami”. Rezultatem powtarzających się „rund” jest „efekt lawinowy” - rosnąca utrata zgodności bitowej pomiędzy blokami otwartych i zaszyfrowanych danych.

    Przykłady algorytmów szyfrowania symetrycznego: AES, Twofish.

    Algorytm Diffiego-Hellmana

    Wszelka kryptografia, zbudowana nawet w oparciu o najbardziej niezawodne algorytmy szyfrowania symetrycznego, ma jeden zasadniczy, nierozwiązywalny problem – problem początkowej wymiany „tajnego klucza”, którym będą szyfrowane dane. Oznacza to, że aby komunikować się za pomocą kanałów szyfrowanych symetrycznie, trzeba najpierw spotkać się gdzieś osobiście i ustalić wspólny „tajny klucz”, a następnie za pomocą tego klucza można bezpiecznie komunikować się ze sobą przez sieć przy użyciu szyfrowania symetrycznego .

    Jednak spotkanie wszystkich osobiście w dzisiejszym dynamicznym świecie jest fizycznie niemożliwe.

    Ten początkowy problem wymiany tajnych kluczy pozostał nierozwiązany do czasu opublikowania artykułu przez Diffiego i Hellmana w 1976 roku.

    Ideę algorytmu Diffiego-Hellmana możesz zrozumieć, oglądając ten film:


    Uzasadnienie matematyczne

    Matematyczne uzasadnienie algorytmu Diffiego-Hellmana wykorzystuje dwie tożsamości pomocnicze.

    X mod y to z definicji „reszta z x podzielona przez y”. Pierwsza tożsamość: (x mod y)^z mod y = x^z mod y. Tożsamość tę można udowodnić po prostu rozwijając x = a * y + b:

    ((a * y + b) mod y)^z mod y = b^z mod y

    X^z mod y = (a * y + b)^z mod y = b^z mod y, ponieważ nawias zostanie rozwinięty w dwumian Newtona, a wszystkie inne wyrazy z y dadzą resztę 0 przy dzieleniu przez y.

    Druga tożsamość pomocnicza - (x^y)^z = x^(yz) - opiera się na własności mnożenia i można ją łatwo udowodnić poprzez proste rozłożenie potęg na czynniki: (x^y)^z = (x, pomnożone y razy), pomnożone z razy = x, pomnożone przez y*z razy = x^(yz).

    Teraz bezpośrednio do opisu algorytmu Diffiego-Hellmana. Załóżmy, że jest dwóch abonentów: Alicja i Bob. Łączą się ze sobą niezaszyfrowanym kanałem i wysyłają sobie losowo wybrane dwie liczby g i p, które nie są tajne i mogą je zobaczyć wszyscy. Aby teraz stworzyć nieznany nikomu tajny klucz, obaj abonenci generują duże liczby losowe: Alicja - liczba a, Bob - liczba b. Następnie Alicja oblicza A = g^a mod p i wysyła wynik do Boba, a Bob oblicza B = g^b mod p i przekazuje to Alicji. Liczby te są również przesyłane kanałem niezaszyfrowanym i każdy może je obserwować.

    Następnie Alicja oblicza wartość B^a mod p = (g^b mod p)^a mod p = g^(ab) mod p, a Bob oblicza wartość A^b mod p = (g^a mod p) ^b mod p = g^(ab) mod p, i to będzie ich wspólny tajny klucz K, którego można użyć do stworzenia symetrycznego zaszyfrowanego kanału. Nawet jeśli atakujący przechwyci wszystko przesyłane numery(A, B, g, p), to jeśli wybrane liczby p, a i b będą wystarczająco duże, to nie będzie w stanie obliczyć tajnego klucza K z A = g^a mod p i B = g^b mod p w rozsądnym czasie.

    Wymagania dotyczące generowanych numerów są następujące (objaśnienia poniżej):

    P jest dość dużą liczbą pierwszą
    (p - 1) / 2 jest także liczbą pierwszą
    g — pierwiastek pierwotny modulo p

    (liczba pierwsza to czysta liczba, której nie można rozłożyć na czynniki całkowite)

    "G- prymitywny korzeń modulo p” oznacza, że ​​dla wszystkich możliwych n wyrażenie g^n mod p tworzy pełny zestaw liczb od 1 do p - 1, a zatem (tajny) klucz sesji obliczany przez Alicję i Boba może mieć dowolną wartość od 1 do p - 1, a podsłuchujący będzie musiał posortować wszystkie liczby od 1 do p - 1, a zgodnie z warunkami problemu nie da się tego zrobić w rozsądnym czasie.

    Wymóg, aby liczba p była pierwsza, został postawiony, ponieważ udowodniono, że dla każdej liczby pierwszej p istnieje pierwiastek pierwotny modulo p, zatem do sesji komunikacyjnej można wybrać dowolną losową liczbę pierwszą.

    Wymóg wielkości liczby p postawiono tak, aby pełny zbiór liczb od 1 do p - 1 był tak duży, że podsłuchujący nie był w stanie fizycznie przesortować ich wszystkich w rozsądnym czasie.

    Wymóg „(p - 1) / 2 jest również liczbą pierwszą” wprowadzono w celu poprawy bezpieczeństwa szyfrowania, ponieważ istnieje algorytm logarytmu dyskretnego, który umożliwia podsłuchującemu obliczenie (tajnego) klucza sesji w czasie „wielomianowym” ( czyli „w rozsądnym czasie”) pod warunkiem, że liczbę p - 1 rozłożymy na małe czynniki pierwsze. Dlatego zostało wprowadzone Dodatkowy wymóg tak że istnieje liczba pierwsza q taka, że ​​p - 1 = 2q, w którym to przypadku q będzie bardzo dużą liczbą pierwszą (tego samego rzędu co p), a algorytm obliczania (tajnego) klucza sesji przyjmie ukończenie tego samego „nieracjonalnie długiego czasu”.

    Zwykle tajne klucze aib są rzędu 10^100, a liczba p jest rzędu 10^300. Liczba g nie musi być duża i zwykle mieści się w zakresie dziesięciu.

    Odporność algorytmu Diffiego-Hellmana na włamanie opiera się całkowicie na tym, że nie daje się go znaleźć Obecny czas dość szybki algorytm.

    Algorytm Diffiego-Hellmana służy do nawiązywania połączeń w HTTPS (SSL/TLS), VPN i wielu protokołach. W Internecie krążą pogłoski, jakoby amerykańska Agencja Bezpieczeństwa Narodowego znalazła skuteczny sposób na złamanie tego algorytmu.

    Słaby punkt

    Odkrycie Diffiego i Hellmana zrewolucjonizowało kryptografię, ponieważ jedyny nierozwiązywalny problem został pozornie całkowicie rozwiązany. Okazało się jednak, że taki algorytm wymiany tajnych kluczy obciążony jest luką „człowiek pośrodku”: osoba atakująca może po prostu wcisnąć się w kanał transmisji danych pomiędzy Alicją i Bobem i udawać Boba dla Alicji i Alicję dla Boba . Dzięki temu schematowi atakujący utworzy dwa zaszyfrowane kanały (z każdym z abonentów), a abonenci będą myśleć, że istnieje tylko jeden zaszyfrowany kanał - pomiędzy nimi dwoma. A atakujący zobaczy wszystkie dane przesyłane między abonentami w formie odszyfrowanej.

    Dlatego oprócz algorytmu Diffiego-Hellmana potrzebny jest jakiś sposób wiarygodnego potwierdzenia tożsamości obu abonentów (Alicja musi upewnić się, że nawiązała połączenie z Bobem, a Bob z kolei musi upewnić się, że osoba na drugi koniec linii to dokładnie Alicja). Lukę tę rozwiązują „algorytm podpisu RSA” i „urzędy certyfikacji”.

    Szyfrowanie asymetryczne

    Szyfrowanie asymetryczne to schemat, w którym występują dwa klucze: jeden z nich jest „publiczny” (jest publicznie dostępny), a drugi „prywatny” (jest utrzymywany w tajemnicy przez jego właściciela). Na przykład każda osoba na Ziemi może otrzymać osobistą parę kluczy: publiczny i prywatny. W takim przypadku klucze publiczne wszystkich osób będą publicznie dostępne, a każda osoba zachowa swój klucz prywatny w tajemnicy.

    Powstaje pytanie: dlaczego taki schemat jest potrzebny i dlaczego lepsze schematy jednym kluczem. Tym, co czyni ten schemat wyjątkowym, jest to, że każdy może zaszyfrować wiadomość przeznaczoną dla warunkowego Aleksandra, po prostu biorąc publiczny klucz publiczny Aleksandra, ale tylko sam Aleksander może odszyfrować taką wiadomość, ponieważ tylko właściciel sparowanego klucza prywatnego może odszyfrować zaszyfrowaną wiadomość z kluczem publicznym.

    Na pierwszy rzut oka wygląda to na jakąś magię. Nie ma jednak magii – to po prostu wspaniałe odkrycie matematyczne.

    Diffiego-Hellmana w zakresie szyfrowania asymetrycznego

    Algorytm Diffiego-Hellmana można nieznacznie zmodyfikować, aby uzyskać pozory algorytmu asymetrycznego szyfrowania danych (jednak nie do tego został stworzony Diffie-Hellman i nie jest przeznaczony do asymetrycznego szyfrowania danych).

    W tym przypadku Alicja i Bob nie ustanawiają kanału komunikacji. Zamiast tego Alicja wybiera swoje wartości p i g, oblicza na ich podstawie swoje A i publikuje te trzy liczby w otwarty dostęp, nazywając go „kluczem publicznym”. Bob na podstawie tych trzech liczb, dokładnie tak jak w algorytmie Diffiego-Hellmana, oblicza tajny klucz K, a następnie szyfruje wiadomość dowolnym algorytm symetryczny, używając K jako klucza i przesyła szyfrogram Alicji wraz z jego wartością B. Alicja, mając B, g i p, również oblicza tajny klucz K oraz może odszyfrować i przeczytać wiadomość, którą wysłał jej Bob.

    Okazało się, że wiadomość przeznaczoną dla Alicji może zaszyfrować każdy, jednak taką wiadomość mogą odszyfrować tylko dwie osoby – nadawca wiadomości (który już ją zna) i odbiorca wiadomości (Alicja).

    Okazało się, że jest to coś w rodzaju asymetrycznego szyfrowania danych na kolanie. W rzeczywistości oczywiście lepiej powierzyć asymetryczne szyfrowanie danych protokołowi, który został opracowany specjalnie w tym celu. Pierwszym takim protokołem był RSA.

    Algorytm szyfrowania asymetrycznego RSA został wynaleziony w 1977 roku przez trzech naukowców z MIT.Po przepracowaniu ponad 40 możliwych opcji udało im się znaleźć algorytm oparty na różnicy w łatwości znalezienia dużych liczb pierwszych i tym, jak trudno jest to znaleźć. rozłożyć na czynniki iloczyn dwóch dużych liczb pierwszych.

    Wybrano dwie duże liczby pierwsze p i q (na przykład 2048 bitów każda)
    Obliczany jest ich iloczyn n = p * q
    Obliczana jest funkcja Eulera φ(n) = (p - 1)(q - 1).
    Liczba całkowita e (1< e < φ(n)), взаимно простое с φ(n). Обычно в качестве e берут простые числа, содержащие небольшое количество единичных бит в notacja binarna, na przykład liczby pierwsze Fermata 17, 257 lub 65537. Ta sztuczka pozwala bardzo szybko podnieść dowolną liczbę do potęgi e w system binarny rachunek różniczkowy (n^(2^k) = ((((n^2)^2)^2)^...)
    Obliczana jest liczba d, „multiplikatywna odwrotność” liczby e modulo φ(n): ed mod φ(n) = 1
    Para (e, n) to klucz publiczny, a d to klucz prywatny

    Teraz Alicja może zaszyfrować wiadomość (numer) m przeznaczoną dla Boba przy użyciu klucza publicznego Boba (e, n): c = m^e mod n. I tylko Bob będzie teraz w stanie rozszyfrować tę wiadomość m, zaadresowaną do niego przez Alicję: c^d mod n = (m^e mod n)^d mod n = m^(ed) mod n = m (matematycy tak twierdzą wszystko się zgadza).

    Widać, że schemat z potęgowaniem i dzieleniem modulo jest bardzo podobny do algorytmu Diffiego-Hellmana. Istotną różnicą jest to, że cały łańcuch operacji w algorytmie RSA zachowuje wszystkie oryginalne informacje zawarte w zaszyfrowanej wiadomości m.in. Dlatego algorytm RSA może być używany do szyfrowania i deszyfrowania wiadomości. Algorytm Diffiego-Hellmana z kolei nie stawia sobie za zadanie zachowania wszystkich oryginalnych informacji w trakcie łańcucha obliczeń, dlatego jest w stanie przekazać jedynie wartość wyprowadzoną z danego obliczenia, mając już możliwość lokalnie obliczyć pojedynczy (sesyjny) klucz szyfrujący K, który jest już dalej używany przez jakiś algorytm szyfrowania symetrycznego do bezpośredniego przesyłania wiadomości.

    Odporność algorytmu RSA na włamanie opiera się całkowicie na fakcie, że w chwili obecnej nie znaleziono w miarę szybkiego algorytmu „faktoryzacji” (rozkładu liczby całkowitej na czynniki pierwsze).

    RSA lub Diffie-Hellman

    Możesz zaszyfrować losowo wybrany klucz szyfrowania symetrycznego algorytmem RSA i wysłać go na drugi koniec przewodu, gdzie zostanie odszyfrowany, tworząc bezpieczny kanał transmisji danych.

    Możesz wykorzystać algorytm Diffiego-Hellmana do wymiany symetrycznego klucza szyfrującego, a otrzymasz dokładnie ten sam bezpieczny kanał transmisji danych.

    Pod względem złożoności obliczeniowej oba algorytmy są do siebie porównywalne.

    Podpis cyfrowy (EDS)

    „Algorytm szyfrowania asymetrycznego RSA” został omówiony powyżej. Oprócz tego algorytmu słowo „RSA” często oznacza także inny algorytm - „algorytm podpisu cyfrowego RSA”, który służy nie do szyfrowania danych, ale do ich podpisywania.

    Zmieńmy trochę diagram omówiony powyżej. Niech Bob zamiast szyfrować wiadomość m przeznaczoną dla Alicji kluczem publicznym Alicji, zaszyfruje tę wiadomość swoim kluczem prywatnym: s(m) = m^d mod n i wyśle ​​tę zaszyfrowaną wiadomość do Alicji. W tym przypadku Alicja, korzystając z klucza publicznego Boba, będzie mogła zweryfikować autentyczność otrzymanej od niego wiadomości: m" = s(m)^e mod n (m" i m muszą się zgadzać). W ten sposób Alicja może mieć pewność, że wiadomość została wysłana przez Boba i nie została zmodyfikowana.

    Algorytm podpisu cyfrowego RSA jest używany w protokole TLS (inaczej HTTPS, inaczej SSL) w połączeniu z algorytmem wymiany kluczy Diffiego-Hellmana i algorytmem szyfrowania symetrycznego (na przykład AES). W tym schemacie Diffie-Hellman służy do bezpiecznej wymiany tajnego klucza do symetrycznego szyfrowania przesyłanych danych (na przykład AES), a algorytm podpisu RSA służy do weryfikacji tożsamości obu abonentów podczas nawiązywania połączenia.

    W praktyce podpis duża objętość dane przy użyciu algorytmu podpisu cyfrowego RSA są operacją powolną, dlatego w celu optymalizacji kosztów obliczeniowych „podpis cyfrowy” można odebrać w nieco inny sposób: najpierw z wiadomości pobierany jest pewien „odcisk”, zwany „haszem” ” wiadomości, której rozmiar nie przekracza określonej liczby bajtów, a następnie ten „odcisk” („hash”) jest w pełni szyfrowany algorytmem RSA, a dzieje się to szybko, gdyż „Obsada” („hasz”) jest bardzo mała.

    W takim przypadku informacja o oryginalnej wiadomości ginie w odebranym zaszyfrowanym tekście, dlatego powstały „migawka” („hash”) jest przesyłana do odbiorcy wraz z tekstem oryginalnej wiadomości (w postaci czystego tekstu, bo zgodnie z w warunkach zadania nie ma potrzeby ukrywania tekstu oryginalnej wiadomości przed podsłuchem, a w tej wiadomości nie ma nic tajnego.)

    Następnie odbiorca wiadomości pobiera od niego dokładnie w ten sam sposób „migawkę” („hash”) i porównuje otrzymany „migawkę” („hash”) z odszyfrowaną „migawką” („hash”), zaszyfrowany tekst, który otrzymał wraz z wiadomościami tekstowymi. Jeśli oba „odciski” („hasze”) pokrywają się, oznacza to, że z prawdopodobieństwem bliskim 100% otrzymana wiadomość jest autentyczna: została otrzymana dokładnie od nadawcy i zawiera dokładnie taki sam tekst, jaki nadawca napisał.

    W przeciwnym razie od razu zostanie wykryte, że ktoś próbował sfałszować wiadomość, a atakujący nie będzie w stanie oszukać odbiorcy. Podpis cyfrowy zapewnia zatem zarówno autentyczność autora wiadomości, jak i integralność tej wiadomości. Podpisać się pod nią może tylko autor wiadomości i każdy może zweryfikować autentyczność tego podpisu.

    Wiarygodność takiego podpisu cyfrowego zależy zatem zarówno od niezawodności algorytmu szyfrowania asymetrycznego, jak i od niezawodności algorytmu wykonania „migawki” („hash”) (a także od niezawodności kluczy publicznych).

    Hash to pewna tablica danych o określonej długości uzyskana w wyniku przekazania oryginalnych danych przez algorytm mieszający. Hash można porównać z kopią lub odciskiem palca informacji, z tą różnicą, że hash ma odwrotne zadanie: tak, aby nie można było wyciągnąć z hasha żadnych wniosków na temat tego, jaka była pierwotna informacja. Dla tego uroda skróty muszą spełniać wymóg całkowitej utraty wszystkich wzorców statystycznych oryginalnej wiadomości. Aby to zrobić, algorytm mieszający musi mieć „efekt lawinowy” - musi nastąpić silna zmiana skrótu przy 1-bitowej zmianie danych wejściowych (w idealnym przypadku powinny zmienić się wartości połowy wszystkich bitów skrótu) .

    Za pomocą skrótu możesz sprawdzić integralność danych: jeśli przynajmniej jeden bit danych został zmieniony (w wyniku awarii sieci, awarii dysku lub celowo przez atakującego), wówczas hash pobrany ze zmienionego dane będą zupełnie inne, dzięki czemu od razu można się dowiedzieć, że dane zostały przypadkowo uszkodzone lub ktoś próbował je zastąpić.

    Przykłady algorytmów haszujących: SHA, Twofish, Whirlpool.

    Certyfikaty

    Kiedy Alicja łączy się z kimś za pośrednictwem asymetrycznie szyfrowanego kanału, musi w jakiś sposób mieć całkowitą pewność, że druga strona jest tym, za kogo się podaje. Oznacza to, że jeśli Alicja łączy się z Bobem, to musi w jakiś sposób mieć całkowitą pewność, że ten klucz publiczny należy do Boba (że jest autentyczny) w oparciu o klucz publiczny otrzymany w odpowiedzi (rzekomo od Boba).

    Taką możliwość daje podpis elektroniczny. Istnieje pewien autorytet, któremu wszyscy ufają i którego klucz publiczny wszyscy początkowo gdzieś zapisali, a ten nagrany klucz jest zdecydowanie w 100% autentyczny i nie jest kwestionowany. A potem ta autorytatywna osoba wydaje każdemu „certyfikaty”, podpisując te „certyfikaty” swoim kluczem prywatnym. Każdy ufa osobie autorytatywnej w tym sensie, że jest ona całkowicie uczciwa (nie oszuka) i przechowuje swój klucz prywatny w całkowitym bezpieczeństwie (a zatem nie może zostać skradziony przez atakujących w celu podpisania ich certyfikatów „oszustwa”).

    Certyfikat (X.509) wydany subskrybentowi (i podpisany przez osobę upoważnioną) zawiera klucz publiczny subskrybenta oraz szczegółowe informacje o subskrybencie (właścicielu tego klucza publicznego): kim jest ten subskrybent, jego adres E-mail, kiedy klucz został utworzony, do jakiego algorytmu jest przeznaczony, kiedy klucz wygasa itp.). Wraz z podpisanym certyfikatem subskrybent otrzymuje w parze swój „klucz prywatny”, którego będzie używał podpis elektroniczny i szyfrowanie przesyłanych danych.

    Urzędy w tym systemie nazywane są „zaufanymi urzędami certyfikacji” („instytucje certyfikujące”). Nie ma takich zaufanych ośrodków dany czas około 60, a ich klucze publiczne są osadzone we wszystkich nowoczesnych systemach operacyjnych i przeglądarkach internetowych (w celu weryfikacji autentyczności podpisu elektronicznego certyfikatów otrzymywanych podczas łączenia się ze stronami).

    Na przykład, gdy użytkownik łączy się ze stroną https://google.com („przez SSL”, znaną również jako „TLS”), w odpowiedzi otrzymuje certyfikat („certyfikat SSL”) podpisany przez jakiś „zaufany urząd certyfikacji” ”, a otrzymany certyfikat można od razu zweryfikować pod kątem autentyczności poprzez sprawdzenie jego podpisu cyfrowego (przeglądarka robi to automatycznie). Jeśli certyfikat jest autentyczny, a „domena” (google.com) określona w certyfikacie odpowiada „domenie” (adresowi), do której użytkownik próbuje uzyskać dostęp, to wszystko jest w porządku, a przeglądarka pokazuje użytkownikowi tę stronę internetową (i V pasek adresu pojawia się ikona „bezpiecznego połączenia”; zazwyczaj jest to zielony zamek). Jeżeli certyfikat nie przejdzie weryfikacji podpisu lub jeśli „domena” podana w certyfikacie nie odpowiada „domenie” (adresowi), do której użytkownik próbuje uzyskać dostęp, wówczas przeglądarka nie wyświetli tej strony internetowej, a zamiast tego wyświetli wyświetlić ostrzeżenie o tym, że połączenie może nie być bezpieczne i że atakujący mogą próbować oszukać użytkownika.

    Dlatego podczas surfowania po Internecie użytkownik jest na tyle bezpieczny, na ile jego przeglądarka internetowa i system operacyjny są autentyczne: aby ominąć tę ochronę, osoba atakująca będzie musiała nakłonić użytkownika do zainstalowania w jego systemie przeglądarki, która albo ma witrynę wyłączona funkcja weryfikacji (lub ma „pozostawiony” rzekomo zaufany certyfikat) lub nieautoryzowaną instalację własnego „pozostawionego” rzekomo zaufanego certyfikatu w systemie operacyjnym użytkownika.

    Zaufanym autorytetem może zostać każda firma, jednak w tym celu będzie musiała przejść rygorystyczne coroczne kontrole bezpieczeństwa (WebTrust). Główni uczestnicy rynku certyfikacji według stanu na listopad 2012 roku:

    Symantec (właściciel VeriSign, Thawte i Geotrust) z 42,9% udziałem w rynku
    Comodo z udziałem 26%
    GoDaddy z 14% udziałem
    GlobalSign z udziałem 7,7%

    Pierwszym urzędem certyfikującym była firma RSA Data Security, założona przez twórców algorytmu RSA (prawdopodobnie nieźle zarobili).

    Aby uzyskać certyfikat dla swojej witryny internetowej („domena”), musisz przejść rygorystyczną kontrolę w urzędzie certyfikacji, aby ustalić, czy jesteś prawdziwym właścicielem tej witryny („domena”).

    Jeśli atakującym uda się zdobyć Twój klucz prywatny, Twój certyfikat nie będzie już mógł Cię uwierzytelnić podczas nawiązywania połączenia, dlatego powinieneś powiadomić organizację, która wystawiła Twój certyfikat. Po zgłoszeniu certyfikat zostanie umieszczony na liście certyfikatów nieważnych (Listy unieważnień certyfikatów, Listy unieważnień uprawnień). Następnie przeglądarki za każdym razem, gdy łączą się z witryną Protokół HTTPS złóż wniosek za pomocą protokołu statusu certyfikatu online w celu sprawdzenia, czy ten certyfikat znajduje się na liście nieważnych certyfikatów. Jeśli okaże się, że ten certyfikat nie jest już ważny, połączenie nie zostanie nawiązane.

    Kod uwierzytelniający wiadomość oparty na haszu to „biedna” metoda cyfrowego podpisywania wiadomości: nie wymaga certyfikatów ani intensywnych obliczeń. Można go zastosować w kilku prostych przypadkach, gdy użycie podpisu cyfrowego nie jest wskazane.

    Dzięki takiemu podejściu wraz z wiadomością przesyłana jest także „migawka” („hash”) tej wiadomości, która następnie jest weryfikowana przez stronę odbierającą. W przeciwieństwie do szyfrowania asymetrycznego, stosuje się tutaj szyfrowanie symetryczne, to znaczy obie strony znają z góry określone tajne hasło.

    Tekst wiadomości m jest mieszany z hasłem s według wzoru, który można koncepcyjnie wyrazić jako hash(s + hash(s + m)). Dzięki takiemu podejściu osiągana jest najlepsza (obecnie) siła kryptograficzna podpisu.

    Szyfrowanie krzywą eliptyczną

    Kilka lat po narodzinach algorytmów Diffiego-Hellmana i RSA, pracując na przestrzeni liczb całkowitych, matematycy zaproponowali alternatywną przestrzeń liczbową do szyfrowania - krzywe eliptyczne.

    Krzywa eliptyczna (nie ma nic wspólnego z „elipsą”) to zbiór wszystkich (punktów krzywej) rozwiązań równania:

    y^2 + a xy + do y = x^3 + b x^2 + re x + f


    Przykładowo dla przestrzeni wszystkich rzeczywistych (rzeczywistych) x i y można wprowadzić operację dodawania punktów na krzywej eliptycznej, zgodnie z którą dla dowolnych dwóch punktów krzywej eliptycznej P i Q istnieje jednoznaczny punkt „R” ”, co można znaleźć przeciągając linię prostą przez punkty P i Q i zaznaczając punkt R” przecięcia tej prostej z krzywą eliptyczną. Wprowadza się także „punkt w nieskończoności 0” taki, że P + Q + R” = 0. Punkt R, symetryczny do punktu R” względem osi Ox, będzie wymaganą sumą P + Q.

    Wprowadzając podobne operacje dodawania i mnożenia punktów na krzywej eliptycznej, można otrzymać skończone podzbiory punktów leżących na tej krzywej, które będą tworzyć „skończone pola”. Istnieją dwa takie skończone pola stosowane w kryptografii krzywych eliptycznych: „pola pierwsze o charakterystyce nieparzystej” i „pola o charakterystyce 2”, cokolwiek to znaczy.

    Odpowiednio, skoro operacje dodawania i mnożenia są zdefiniowane, to podobnie jak w przypadku zwykłej przestrzeni liczb całkowitych, można znaleźć takie operacje algebraiczne, które można łatwo wykonać w jednym kierunku (takie jak pomnożenie dwóch dużych liczb pierwszych przez algorytm RSA) i niezwykle złożone produkty Odwrotna strona(takie jak rozkład duża liczba iloczyn dwóch liczb pierwszych w algorytmie RSA). A stosując takie operacje algebraiczne, można skonstruować kompletne analogie już istniejących algorytmów szyfrowania asymetrycznego (RSA, Diffie-Hellman), ale wyłącznie na krzywych eliptycznych.

    Po co się tym przejmować: w przypadku krzywych eliptycznych nie znaleziono jeszcze algorytmów „logarytmu dyskretnego” (za pomocą których można złamać szyfrowanie), które dawałyby rozwiązanie w czasie krótszym niż „wykładniczy”. Dlatego w przypadku algorytmów szyfrowania krzywą eliptyczną możliwe jest bezpieczne stosowanie kluczy szyfrujących o znacznie krótszej długości niż w przypadku tych samych algorytmów na przestrzeni liczb całkowitych, co zapewnia większą oszczędność zasobów obliczeniowych.

    Tor jest drogą dostęp anonimowy Do zasoby sieciowe. Możesz przeglądać Internet anonimowo, możesz także przeglądać witryny „.onion”, które są hostowane anonimowo i dostępne tylko wewnętrznie Sieci Tora"A.

    Tor jest rozpowszechniany w połączeniu z przeglądarką Mozilla Firefox, którą można pobrać z oficjalnej strony internetowej i zainstalować w systemie operacyjnym, po czym cała praca za pośrednictwem tej „przeglądarki Tor” będzie anonimowa (z tego powodu nie należy używać przeglądarki Tor przeglądarkę, aby odkryć Twoją prawdziwą tożsamość: nie powinieneś wchodzić przez nią do swojej prawdziwej tożsamości Konta w sieciach społecznościowych, sprawdź swój prawdziwy adres e-mail itp. — zostaw swoje prawdziwe ja poza przeglądarką Tor).


    Sposób na osiągnięcie anonimowości Tora jest następujący: użytkownik ustanawia połączenie z siecią Tor, a następnie wybiera ciąg trzech losowych węzły pośrednie(zwane „węzłami”). Łańcuch jest wybierany w ten sposób, że drugi węzeł jest wybierany po nawiązaniu połączenia z pierwszym wybranym węzłem, dzięki czemu prawdziwy adres IP użytkownika nie wycieka poza pierwszy (wejściowy) węzeł łańcucha. W tym przypadku pierwszy (wejściowy) węzeł łańcucha nie ma możliwości ustalenia, że ​​jest pierwszym (wejściowym): dla niego użytkownik wygląda dokładnie tak samo jak każdy inny węzeł w sieci Tor. Dlatego tylko ostatni węzeł (wyjściowy) łańcucha wie, że jest węzłem wyjściowym, a wszystkie pozostałe węzły w łańcuchu nie wiedzą nic o swojej pozycji w tym łańcuchu (poza tym, że nie są węzłami wyjściowymi).

    Po zakończeniu łańcucha użytkownik i każdy nowy węzeł w łańcuchu generują tajny klucz przy użyciu algorytmu Diffiego-Hellmana. Klucz ten będzie w przyszłości używany do symetrycznego szyfrowania/deszyfrowania danych przy użyciu algorytmu AES w tym węźle łańcucha. Po zbudowaniu tunelu użytkownik i każdy węzeł w łańcuchu mają swój własny tajny klucz do symetrycznego szyfrowania/deszyfrowania ruchu, który dalej będę nazywał po prostu „kluczem”.

    Przesyłając dane przez tunel, użytkownik szyfruje swoją wiadomość wychodzącą ruch sieciowy trzykrotnie: najpierw ruch jest szyfrowany kluczem trzeciego (wyjściowego) węzła w łańcuchu, następnie cały ruch jest szyfrowany kluczem drugiego (środkowego) węzła w łańcuchu, a następnie całość jest ponownie szyfrowana kluczem klucz pierwszego (wejściowego) węzła w łańcuchu.

    Wygląda jak cebula lub lalka zagnieżdżająca, gdy rdzeń (ruch) jest owinięty kilkoma warstwami szyfrowania. Dlatego Tor nazywany jest „cebulą” lub „trasowaniem cebulowym”.

    Kiedy ruch dociera do pierwszego (wejściowego) węzła łańcucha, węzeł ten usuwa swoją (zewnętrzną) warstwę szyfrowania - odszyfrowuje odebrane dane za pomocą swojego klucza. Powstałe odszyfrowane dane są nadal szyfrowane przez dwie inne warstwy szyfrowania, których ten pierwszy (wejściowy) węzeł w łańcuchu nie może odszyfrować, ponieważ nie ma odpowiednich kluczy.

    Nawet jeśli pierwszy (wejściowy) węzeł łańcucha był w stanie ustalić tożsamość użytkownika na podstawie jego prawdziwego adresu IP, to węzeł ten nie ma możliwości dowiedzenia się, jakie dane użytkownik przesyła do sieci ani jaki adres w Internecie odwiedza użytkownik . Ponadto, ponieważ z punktu widzenia dowolnego węzła w sieci Tor nie ma możliwości ustalenia, kto się z nim łączy - użytkownik czy inny węzeł tego samego rodzaju - to w tym przypadku sam pierwszy węzeł (wejściowy) nie może wiedzieć, że jest to pierwszy węzeł (wejściowy) i że to właśnie ten konkretny użytkownik uzyskuje dostęp do jakiejś strony internetowej, a nie tylko jego maszyna działająca jako ten sam zwykły węzeł w łańcuchu przesyłania danych od zupełnie innego użytkownika.

    Następnie pierwszy (wejściowy) węzeł łańcucha przesyła dane, z których usunięto pierwszą warstwę szyfrowania, do drugiego (środkowego) węzła łańcucha. Drugi (środkowy) węzeł w łańcuchu również usuwa swoją warstwę szyfrowania z ruchu, ale nadal nie wie, co jest w środku i nie zna już prawdziwego adresu IP użytkownika.

    Następnie drugi (środkowy) węzeł łańcucha wysyła dane, z których usunięto drugą warstwę szyfrowania, do ostatniego trzeciego (wyjściowego) węzła łańcucha. Trzeci węzeł (wyjściowy) łańcucha całkowicie odszyfrowuje ruch, usuwając z niego ostatnią warstwę szyfrowania i kieruje ten ruch do żądanego adres sieciowy(w Internecie lub w sieci .onion). Okazuje się, że trzeci węzeł (wyjściowy), zwany także „węzłem wyjściowym”, może całkowicie podsłuchiwać ruch i widzi wszystkie przesyłane dane, ale jednocześnie nie wie nic o rzeczywistym życiu użytkownika adres IP, więc nie jest w stanie śledzić przepływu ruchu z powrotem do użytkownika.

    W przypadku otrzymania odpowiedzi z serwisu (w Internecie lub w sieci .onion) cały proces przebiega w odwrotnym kierunku: otrzymana odpowiedź przechodzi z powrotem przez węzły łańcucha, na każdym kroku zamieniając się w warstwę szyfrującą bieżący węzeł. Gdy użytkownik otrzyma odpowiedź z pierwszego węzła (wejściowego), odpowiedź jest opakowana tymi samymi warstwami szyfrowania, co przy wysyłaniu wiadomości, w tej samej kolejności. Użytkownik posiadający niezbędne klucze, usuwa pojedynczo wszystkie warstwy szyfrowania z otrzymanej odpowiedzi i widzi żądane dane (z Internetu lub z sieci cebulowej).

    Aby poprawić bezpieczeństwo użytkownika, Tor okresowo całkowicie zmienia łańcuch węzłów (co dziesięć minut, jeśli nie ma aktywnych połączeń). Tor stara się również upewnić, że węzły sieci znajdują się w różnych krajach, utrudniając w ten sposób policji dostęp do tych węzłów (różne jurysdykcje w różnych krajach, zezwolenia biurokratyczne itp.).

    Każdy entuzjasta może zostać węzłem („węzłem”), zwiększając w ten sposób szybkość i jakość całej sieci Tor. Węzeł może wykonywać pracę albo po prostu „węzła przekaźnikowego” (węzła pośredniego), albo „węzła wyjściowego” (węzła wyjściowego bezpośrednio współdziałającego z Internetem i za to teoretycznie można go uwięzić za współudział w przestępstwie). . Obecnie w sieci Tor znajduje się około 7000 węzłów, z czego 1000 to węzły wyjściowe.

    Dla tych, którzy chcą kopać głęboko, jest .

    Początkowo koncepcja „przesyłania cebuli” została wynaleziona w latach 90. w laboratorium Marynarki Wojennej Stanów Zjednoczonych w celu zapewnienia bezpieczeństwa personelu wywiadu USA przesyłającego dane wywiadowcze przez Internet. Później przyłożyła się do tego DARPA, która przedstawiła światu Internet. Na początku lat 2000-tych jako pierwszy wersja robocza Tor, a kilka lat później Marynarka Wojenna Stanów Zjednoczonych przekazała Tor Otwarte źródło i od tego czasu Tor jest sponsorowany przez wszystkich jako organizacja non-profit (jednak większość darowizn w dalszym ciągu pochodzi od agencji rządowych USA).

    Tor przez VPN

    Ci użytkownicy, którzy boją się przypadkowo trafić do takiego łańcucha węzłów pośrednich, z których każdy jest prowadzony przez policję (co dałoby policji możliwość zobaczenia całego ruchu w formie odszyfrowanej, a także poznania prawdziwego adresu IP użytkownika), może uzyskać dostęp do sieci Tor poprzez VPN. W takim przypadku policja może jedynie zobaczyć cały ruch na drogach i dowiedzieć się Adres IP VPN serwer. Jeśli usługa VPN podlega jurysdykcji policji (większość krajów), prawo wymaga przechowywania informacji o tym, kto i kiedy się z nią połączył oraz jakie strony odwiedził. Jeśli usługa VPN jest zlokalizowana w jednym z niewielu krajów, w których z jakiegoś powodu nie przyjęto rygorystycznych przepisów dotyczących pomocy w dochodzeniu, wówczas taka usługa VPN nie jest zobowiązana (i nie będzie) przechowywać informacji o tym, kto się z nią połączył i kiedy i na jakich stronach odwiedziłeś? Co więcej, policja może po prostu nie być w stanie legalnie żądać czegokolwiek od takiej usługi VPN, nie będzie mogła zainstalować tam podsłuchów itp.

    Ukryte usługi Tora(strony .onion)

    Każdy może uruchomić własną stronę internetową w sieci Tor. Takie strony nazywane są „usługami ukrytymi”, ponieważ właściciel witryny pozostaje anonimowy (innymi słowy, teoretycznie nie ma możliwości poznania prawdziwego adresu IP maszyny, na której uruchomiona jest witryna; hipotetycznie można by spróbować w jakiś sposób zgadnąć poprzez analizę potoków ruchu, ale to pytanie dla ekspertów w tym temacie).

    Działa to w ten sposób: maszyna, na której działa witryna, okresowo łączy się z losowo wybranymi węzłami (punktami wprowadzenia) poprzez losowe łańcuchy węzłów pośrednich i przekazuje do tych węzłów (punktów wprowadzenia) klucz publiczny tej witryny. W ten sposób witryna deklaruje swoje istnienie w sieci Tor, a następnie wszystkie interakcje użytkownika z tą witryną mogą być po prostu przesyłane przez te tymczasowe węzły (punkty wprowadzenia) wzdłuż zbudowanych tymczasowych łańcuchów i nikt nie będzie w stanie poznać niczyjego prawdziwego adresu IP adres.

    W jaki sposób użytkownicy dowiadują się o istnieniu serwisu i przez jakie punkty wprowadzenia mogą na niego trafić? Sieć Tor obsługuje rozproszoną bazę danych (Distributed Hash Table), czyli wspólną bazę danych, która jest równomiernie rozmieszczona we wszystkich węzłach sieci Tor. W tej bazie danych Tor przeglądarka będzie szukać, czy witryna żądana przez użytkownika istnieje w sieci Tor, a jeśli tak, to przez które tymczasowe węzły można uzyskać dostęp do tej witryny.

    Kto umieszcza te informacje w rozproszonej bazie danych? Sama strona internetowa: po zadeklarowaniu swojego istnienia i podłączeniu do węzłów tymczasowych, tworzy listę tych węzłów i umieszcza ją w rozproszonej bazie danych, podpisując tę ​​listę swoim kluczem prywatnym i dołączając obok niej swój klucz publiczny (w celu sprawdzenia podpisy użytkowników).

    Nieco większe bezpieczeństwo dodaje się do opisanego powyżej schematu, wprowadzając odrębny typ węzłów (punktów spotkania) służących do przekazywania ruchu do witryny i odbierania ruchu ze strony internetowej. Te węzły ruchu (punkty spotkań), w przeciwieństwie do węzłów tymczasowych (punktów wprowadzenia), nie wiedzą nic o tym, do której strony internetowej należy przenoszony ruch, wprowadzając w ten sposób nieco większą anonimowość i bezpieczeństwo (zarówno dla użytkowników, jak i właścicieli witryn internetowych).

    Węzeł ruchu wybierany jest losowo przez użytkownika, a informacja o tym wybranym węźle ruchu (zaszyfrowana kluczem publicznym serwisu plus losowo wygenerowane „hasło”) przesyłana jest poprzez punkty wprowadzenia do serwisu. Następnie użytkownik i witryna nawiązują połączenie (standardowy łańcuch Tor) z tym węzłem ruchu i dopiero wtedy przesyłają do siebie ruch za jego pośrednictwem (po sprawdzeniu przez użytkownika tego samego losowo wygenerowanego „hasła” przesłanego przez witrynę z powrotem do użytkownika - na potwierdzenie, że jest to dokładnie ta strona internetowa, a nie fałszywa, ponieważ tylko ta witryna sama w sobie jest w stanie odszyfrować „hasło” przesłane wcześniej przez użytkownika). Rezultatem jest połączony łańcuch 3 + 3 = 6 węzłów.

    Możesz zauważyć, że strony internetowe .onion mają „paskudne” i dziwne adresy. To, podobnie jak wszystko inne w sieci Tor, zostało zrobione dla bezpieczeństwa użytkownika. Aby otrzymać Nazwa DNS w przypadku witryny internetowej należy wygenerować parę kluczy publicznych i prywatnych, a następnie użyć klucza publicznego do podpisania nazwy witryny internetowej. Na przykład możesz wziąć słowo „facebook”, podpisać je swoim kluczem publicznym, a otrzymasz Nazwa domeny„facebookcorewwwi.onion”, gdzie „corewwwi” jest podpisem słowa „facebook” kluczem publicznym tej witryny.

    Dzięki temu każdy odwiedzający witrynę, który nawiąże połączenie z witryną „facebookcorewwwi.onion”, po otrzymaniu klucza publicznego witryny podczas nawiązywania połączenia, będzie mógł samodzielnie zweryfikować, czy ta witryna jest rzeczywiście ta sama, „prawdziwa”, a nie fałszywa, i odpowiada dokładnie temu adresowi.onion. Dlatego w przypadku witryn .onion w sieci Tor nie ma potrzeby istnienia jakiegoś ujednoliconego urzędu certyfikacji (jak ma to miejsce w zwykłym Internecie w przypadku Certyfikaty SSL), co byłoby sprzeczne z pierwotnym zamysłem sieci Tor – decentralizacją i bezpieczeństwem.

    I2p („Itupi”) to anonimowa sieć nieco podobna do Tora. Jeśli głównym zadaniem Tora jest zapewnienie anonimowego dostępu do Internetu, to głównym zadaniem i2p jest zbudowanie rozproszonej anonimowej sieci z własnymi „ukrytymi” stronami, całkowicie niezależnymi od Internetu.

    Uważa się, że poziom anonimowości w sieci i2p jest wyższy niż poziom anonimowości w sieci Tor.

    Istnieją dwie metodyki kryptograficznego przetwarzania informacji przy użyciu kluczy – symetryczna i asymetryczna.

    Symetryczny (sekret) metodologia, w której zarówno do szyfrowania, jak i odszyfrowywania nadawca i odbiorca używają tego samego klucza, którego użycie uzgodnili przed rozpoczęciem interakcji (ryc. 2.1). Jeśli klucz nie został naruszony, odszyfrowanie automatycznie uwierzytelnia nadawcę, ponieważ tylko nadawca ma klucz do zaszyfrowania informacji i tylko odbiorca ma klucz do odszyfrowania informacji. Ponieważ nadawca i odbiorca są jedynymi osobami, które znają ten klucz symetryczny, jeśli klucz zostanie naruszony, zagrożona będzie tylko interakcja między tymi dwoma użytkownikami.

    Ryż. 2.1

    Algorytmy szyfrowania symetrycznego nie wykorzystują kluczy zbyt dobrze długa długość i może szybko szyfrować duże ilości danych.

    Dostępne dziś narzędzia wykorzystujące metodologię symetryczną obejmują na przykład sieci bankomatów. Systemy te są oryginalnym rozwinięciem banków będących ich właścicielami i nie są na sprzedaż.

    Wśród algorytmów szyfrowania symetrycznego szeroko stosowany jest algorytm szyfrowania DES (wynaleziony przez IBM), który jest zalecany w otwartych sektorach amerykańskiej gospodarki. Algorytm ten był początkowo skazany na ograniczoną żywotność ze względu na długość klucza ograniczoną do 56 bitów.

    Na początku 1997 r do algorytmu DES, który ma 56-bitowy klucz, został zakwestionowany. 17 czerwca 1997 roku, po 140 dniach, klucz został odszyfrowany. Oznaczało to wirtualną śmierć DES jako standardu szyfrowania. Rzeczywiście, kiedy na początku 1998 r. kolejny konkurs na znalezienie klucza DES zakończył się sukcesem w ciągu zaledwie 39 dni, amerykański Narodowy Instytut Standardów (NIST) ogłosił konkurs mający na celu zatwierdzenie nowego standardu AES (Advanced Encryption Standard). AES stał się w pełni otwartym algorytmem symetrycznym z kluczami o rozmiarach 128, 192, 256 bitów.

    Sytuację pogarsza fakt, że zgodnie z prawem amerykańskim eksport as produkty oprogramowania Dozwolone są systemy szyfrowania z kluczem o długości nie większej niż 128 bitów. Oznacza to, że kupując system szyfrowania z kluczem o długości 1024, 2048 lub więcej bitów, musisz wiedzieć, że po zmianie klucza aktywną (zmieniającą się) częścią będzie 128-bitowa część klucza. Systemy szyfrowania symetrycznego mają jedną wspólną wadę, którą jest trudność w dystrybucji kluczy. Jeśli klucz zostanie przechwycony przez osobę trzecią, taki system ochrony kryptograficznej zostanie naruszony. Dlatego przy wymianie klucza należy go poufnie przekazać uczestnikom procedur szyfrowania. Oczywiście ta metoda nie jest odpowiednia, gdy trzeba nawiązać bezpieczne połączenia z tysiącami lub większą liczbą abonentów Internetu. Głównym problemem jest sposób generowania i bezpiecznego przesyłania kluczy uczestnikom interakcji. Jak ustanowić bezpieczny kanał transmisji informacji pomiędzy uczestnikami interakcji, aby przekazywać klucze niezabezpieczonymi kanałami komunikacji? Brak bezpiecznej metody wymiany kluczy ogranicza rozprzestrzenianie się technik szyfrowania symetrycznego w Internecie.

    Próbowali rozwiązać ten problem poprzez rozwój asymetryczny (otwarty) metodyka szyfrowania. Szyfruje dokument jednym kluczem i odszyfrowuje go innym. Każdy uczestnik przekazu informacji samodzielnie generuje dwa losowe liczby(klucze tajne i publiczne).

    Klucz publiczny przekazywany jest otwartymi kanałami komunikacji innemu uczestnikowi procesu kryptoprotekcji, natomiast klucz prywatny pozostaje tajny.

    Nadawca szyfruje wiadomość kluczem publicznym odbiorcy, A Tylko właściciel klucza prywatnego może go odszyfrować(ryc. 2.2).

    Ryż. 2.2

    Klucz publiczny nie musi być ukryty. Nieważne, kto wie dany klucz, ponieważ jest on przeznaczony wyłącznie do szyfrowania danych. Metoda ta nadaje się do szerokiego zastosowania. Jeśli przypiszesz każdemu użytkownikowi w Internecie własną parę kluczy i opublikujesz klucze publiczne jako liczby książka telefoniczna, wtedy prawie wszyscy będą mogli wymieniać między sobą zaszyfrowane wiadomości. Wygląda jak pudełko z dwójką drzwi po różnych stronach. Każde drzwi mają swój własny zamek. Dokument umieszczany jest w skrzynce, zamykany i otwierany z drugiej strony kluczem odbiorcy. Wykorzystuje to teorię liczb pierwszych. Ten algorytm bezpieczeństwa kryptograficznego nazywa się RSA.

    Wszystkie asymetryczne kryptosystemy podlegają atakom typu brute-force i dlatego muszą używać znacznie dłuższych kluczy niż te stosowane w symetrycznych kryptosystemach, aby zapewnić równoważny poziom bezpieczeństwa. Ma to natychmiastowy wpływ na zasoby obliczeniowe potrzebne do szyfrowania. RSA stał się standardowym algorytmem klucza asymetrycznego używanym przez firmy do podpisu cyfrowego i szyfrowania.

    Symetryczne i asymetryczne systemy szyfrowania mają swoje zalety i wady. Wadami symetrycznego systemu szyfrowania jest trudność w wymianie skompromitowanego klucza, a wadami systemu asymetrycznego jest stosunkowo niska szybkość działania. Pod względem siły kryptograficznej klucz o długości 128 bitów w systemie symetrycznym odpowiada kluczowi o długości 2304 bitów w systemie asymetrycznym.

    Obecnie powszechne stały się systemy szyfrowania wykorzystujące algorytm kombinowany, umożliwiający wykorzystanie otwartego przesyłania kluczy szyfrujących (jak w RSA) przy dużej prędkości szyfrowania właściwej dla AES.

    Aby uniknąć powolnej szybkości algorytmów szyfrowania asymetrycznego, dla każdej wiadomości generowany jest tymczasowy klucz symetryczny. Wiadomość jest szyfrowana przy użyciu tymczasowego symetrycznego klucza sesji. Ten klucz sesji jest następnie szyfrowany przy użyciu asymetrycznego klucza publicznego odbiorcy i algorytmu szyfrowania asymetrycznego. Ponieważ klucz sesji jest znacznie krótszy niż sama wiadomość, czas jej szyfrowania będzie stosunkowo krótki. Następnie ten zaszyfrowany klucz sesji wraz z zaszyfrowaną wiadomością jest przesyłany do odbiorcy (ryc. 2.3).

    Ryż. 2.3

    Odbiorca używa tego samego algorytmu szyfrowania asymetrycznego i swojego tajnego klucza do odszyfrowania klucza sesji, a powstały klucz sesji służy do odszyfrowania samej wiadomości (rysunek 2.4).

    Ryż. 2.4

    Systemy kryptograficzne z kluczem publicznym są obecnie szeroko stosowane w różnych protokołach sieciowych, w szczególności w Protokoły TLS i jego poprzednik SSL (podstawowy protokół HTTPS), SSH. Używany również w PGP, S/MIME.

    Wypuściliśmy Nowa książka„Content Marketing w mediach społecznościowych: jak trafić do głów obserwujących i sprawić, by pokochali Twoją markę”.

    Subskrybuj

    HTTP umożliwia przesyłanie danych. Początkowo został stworzony do wysyłania i odbierania dokumentów zawierających linki umożliwiające przejście do zasobów stron trzecich.

    Skrót brzmi „Protokół przesyłania hipertekstu”, co w tłumaczeniu oznacza „protokół przesyłania”. HTTP należy do tej grupy poziom aplikacji w oparciu o specyfikacje stosowane przez OSI.

    Aby lepiej zrozumieć, co oznacza HTTP, spójrzmy na prostą analogię. Wyobraźmy sobie, że komunikujesz się z obcokrajowcem w sieci społecznościowej. Wysyła ci wiadomość dalej język angielski, czaisz. Ale nie możesz zrozumieć treści, ponieważ nie znasz dobrze języka. Aby rozszyfrować wiadomość, skorzystaj ze słownika. Po zrozumieniu istoty odpowiadasz obcokrajowcowi po rosyjsku i wysyłasz odpowiedź. Cudzoziemiec otrzymuje odpowiedź i przy pomocy tłumacza rozszyfrowuje wiadomość. Aby uprościć cały mechanizm, protokoły internetowe HTTP pełnią funkcję tłumacza. Za ich pomocą przeglądarka może tłumaczyć zaszyfrowaną zawartość stron internetowych i wyświetlać ich zawartość.

    Do czego służy HTTP?

    Protokół HTTP służy do wymiany informacji w modelu klient-serwer. Klient tworzy i przesyła żądanie do serwera, następnie serwer je przetwarza i analizuje, po czym tworzona jest odpowiedź i wysyłana do użytkownika. Na końcu ten proces klient wydaje nowe polecenie i wszystko się powtarza.

    Zatem protokół HTTP umożliwia wymianę informacji pomiędzy różne zastosowania użytkowników i specjalnych serwerów WWW, a także łączyć się z zasobami sieciowymi (najczęściej przeglądarkami). Dziś opisywany protokół zapewnia działanie całej sieci. Protokół przesyłania danych HTTP służy również do przesyłania informacji za pośrednictwem innych protokołów przez ponad niski poziom np. WebDAV lub SOAP. W tym przypadku protokół jest środkiem transportu. Wiele programów opiera się również na protokole HTTP jako podstawowym narzędziu wymiany informacji. Dane prezentowane są w różne formaty na przykład JSON lub XML.

    HTTP to protokół wymiany informacji za pośrednictwem połączenia IP/TCP. Zazwyczaj serwer wykorzystuje w tym celu port TCP 80. Jeżeli port nie jest zarejestrowany, oprogramowanie klient będzie domyślnie używał portu TCP 80. W niektórych przypadkach można użyć innych portów.

    Protokół HTTP wykorzystuje symetryczny schemat szyfrowania i wykorzystuje symetryczne kryptosystemy. Kryptosystemy symetryczne wymagają użycia tego samego klucza do szyfrowania i deszyfrowania informacji.

    Jaka jest różnica między HTTP a HTTPS

    Różnicę można wykryć nawet na podstawie dekodowania skrótów. HTTPS oznacza bezpieczeństwo protokołu przesyłania hipertekstu. Zatem HTTP jest niezależnym protokołem, a HTTPS jest rozszerzeniem mającym na celu jego ochronę. HTTP przesyła informacje bez ochrony, podczas gdy HTTPS zapewnia ochronę kryptograficzną. Jest to szczególnie prawdziwe w przypadku zasobów posiadających odpowiedzialną autoryzację. To może być Media społecznościowe lub witryn systemów płatności.

    Jakie zagrożenia niesie ze sobą przesyłanie niezabezpieczonych danych? Program przechwytujący może w dowolnym momencie przekazać je atakującym. HTTPS posiada złożoną organizację techniczną, co pozwala niezawodnie chronić informacje i eliminować możliwość nieuprawnionego dostępu do nich. Różnica polega na portach. HTTPS zazwyczaj działa na porcie 443.

    Tym samym do przesyłania danych wykorzystywany jest protokół HTTP, a protokół HTTPS umożliwia bezpieczny transfer danych przy użyciu szyfrowania i autoryzacji na zasobach o wysokim poziomie bezpieczeństwa.

    Dodatkowa funkcjonalność

    HTTP jest bogaty w funkcjonalność i jest kompatybilny z różnymi rozszerzeniami. Używana obecnie specyfikacja 1.1 pozwala na użycie nagłówka Upgrade do przełączania i pracy poprzez inne protokoły podczas wymiany danych. Aby to zrobić, użytkownik musi wysłać żądanie do serwera z tym nagłówkiem. Jeśli serwer musi przełączyć się na konkretną centralę przy użyciu innego protokołu, zwraca żądanie do klienta, który wyświetla status „Wymagana aktualizacja 426”.

    Funkcja ta jest szczególnie istotna przy wymianie informacji poprzez WebSocket (posiada specyfikację RFC 6455, pozwalającą na wymianę danych w dowolnym momencie, bez zbędnych żądań HTTP). Aby przeprowadzić migrację do WebSocket, jeden użytkownik wysyła żądanie z nagłówkiem Upgrade i wartością „websocket”. Następnie serwer odpowiada „101 protokołami przełączania”. Po tym momencie rozpoczyna się przesyłanie informacji poprzez WebSocket.