EITC/IS/ACC Advanced Classical Cryptography to europejski program certyfikacji IT zwiększający poziom wiedzy specjalistycznej w zakresie klasycznej kryptografii, skupiający się przede wszystkim na kryptografii z kluczem publicznym, z wprowadzeniem do praktycznych szyfrów z kluczem publicznym, a także podpisów cyfrowych, infrastruktury klucza publicznego i certyfikaty bezpieczeństwa szeroko stosowane w Internecie.
Program nauczania EITC/IS/ACC Advanced Classical Cryptography koncentruje się na kryptografii z kluczem publicznym (asymetrycznym), począwszy od wprowadzenia do wymiany kluczy Diffie-Hellmana i problemu dyskretnych logów (w tym jego uogólnienia), a następnie do szyfrowania z dyskretnym problemem logów, obejmującym schemat szyfrowania Elgamala, krzywe eliptyczne i kryptografię krzywych eliptycznych (ECC), podpisy cyfrowe (w tym usługi bezpieczeństwa i podpis cyfrowy Elgamala), funkcje skrótu (w tym funkcja SHA-1 has), kody uwierzytelniania wiadomości (w tym MAC i HMAC), ustalenie klucza (w tym Symmetric Key Establishment SKE i Kerberos) kończące się rozważeniem klasy ataków typu man-in-the-middle, wraz z certyfikatami kryptograficznymi i infrastrukturą klucza publicznego (PKI), w ramach następującej struktury , zawierające obszerne materiały dydaktyczne wideo jako odniesienie do tego certyfikatu EITC.
Kryptografia odnosi się do sposobów bezpiecznej komunikacji w obecności przeciwnika. Kryptografia, w szerszym znaczeniu, to proces tworzenia i analizowania protokołów, które uniemożliwiają osobom trzecim lub ogółowi społeczeństwa dostęp do prywatnych (zaszyfrowanych) wiadomości. Współczesna kryptografia klasyczna opiera się na kilku głównych cechach bezpieczeństwa informacji, takich jak poufność danych, integralność danych, uwierzytelnianie i niezaprzeczalność. W przeciwieństwie do kryptografii kwantowej, która opiera się na radykalnie odmiennych zasadach fizyki kwantowej charakteryzujących przyrodę, kryptografia klasyczna odnosi się do kryptografii opartej na klasycznych prawach fizyki. Dziedziny matematyki, informatyki, elektrotechniki, nauk o komunikacji i fizyki spotykają się w klasycznej kryptografii. Handel elektroniczny, chipowe karty płatnicze, waluty cyfrowe, hasła komputerowe i komunikacja wojskowa to przykłady zastosowań kryptograficznych.
Przed obecną erą kryptografia była prawie synonimem szyfrowania, zmieniając informacje z czytelnych w niezrozumiałe bzdury. Aby uniemożliwić atakującym uzyskanie dostępu do zaszyfrowanej wiadomości, nadawca udostępnia proces dekodowania tylko zamierzonym odbiorcom. W literaturze kryptograficznej często używa się imion Alice („A”) dla nadawcy, Boba („B”) dla zamierzonego odbiorcy i Ewy („podsłuchiwacz”) dla przeciwnika.
Metody kryptograficzne stają się coraz bardziej złożone, a ich zastosowania coraz bardziej zróżnicowane, od czasu rozwoju maszyn szyfrujących rotorowych w czasie I wojny światowej i wprowadzenia komputerów w czasie II wojny światowej.
Współczesna kryptografia jest silnie uzależniona od teorii matematycznej i praktyki informatycznej; metody kryptograficzne opierają się na założeniach dotyczących twardości obliczeniowej, co w praktyce utrudnia ich złamanie przez przeciwnika. O ile włamanie się do dobrze zaprojektowanego systemu jest teoretycznie możliwe, o tyle w praktyce jest to niemożliwe. Takie schematy są określane jako „bezpieczne obliczeniowo”, jeśli są odpowiednio skonstruowane; niemniej jednak teoretyczne przełomy (np. ulepszenia w metodach faktoryzacji liczb całkowitych) i szybsza technologia obliczeniowa wymagają ciągłej ponownej oceny i, w razie potrzeby, adaptacji tych projektów. Istnieją teoretycznie bezpieczne systemy, takie jak jednorazowa podkładka, które można udowodnić, że są nie do złamania nawet przy nieskończonej mocy obliczeniowej, ale w praktyce są one znacznie trudniejsze do zastosowania niż najlepsze teoretycznie łamliwe, ale obliczeniowo bezpieczne systemy.
W epoce informacyjnej postęp technologii kryptograficznej spowodował szereg wyzwań prawnych. Wiele krajów zaklasyfikowało kryptografię jako broń, ograniczając lub zabraniając jej używania i eksportu ze względu na potencjał szpiegowski i wywrotowy. W niektórych miejscach, w których kryptografia jest zgodna z prawem, śledczy mogą wymusić przekazanie kluczy szyfrowania dokumentów związanych z dochodzeniem. W przypadku mediów cyfrowych kryptografia odgrywa również kluczową rolę w zarządzaniu prawami cyfrowymi i konfliktami o naruszenie praw autorskich.
Termin „kryptograf” (w przeciwieństwie do „kryptogramu”) został po raz pierwszy użyty w XIX wieku w opowiadaniu Edgara Allana Poe „The Gold-Bug”.
Do niedawna kryptografia prawie wyłącznie odnosiła się do „szyfrowania”, które polega na przekształcaniu zwykłych danych (znanych jako tekst jawny) w format nieczytelny (nazywany tekstem zaszyfrowanym). Deszyfrowanie jest przeciwieństwem szyfrowania, tj. przejściem od niezrozumiałego zaszyfrowanego tekstu do zwykłego tekstu. Szyfr (lub szyfr) to zestaw technik, które wykonują szyfrowanie i deszyfrowanie w odwrotnej kolejności. Algorytm i w każdym przypadku „klucz” odpowiadają za szczegółowe wykonanie szyfru. Klucz jest sekretem (najlepiej znanym tylko osobom komunikującym się), który służy do odszyfrowania zaszyfrowanego tekstu. Zwykle jest to ciąg znaków (najlepiej krótki, aby mógł zostać zapamiętany przez użytkownika). „Kryptosystem” to uporządkowany zbiór elementów skończonych potencjalnych tekstów jawnych, szyfrogramów, kluczy oraz procedur szyfrowania i deszyfrowania, które odpowiadają każdemu kluczowi w formalnych terminach matematycznych. Klucze mają kluczowe znaczenie zarówno pod względem formalnym, jak i praktycznym, ponieważ szyfry ze stałymi kluczami można łatwo złamać, korzystając tylko z informacji szyfru, co czyni je bezużytecznymi (lub nawet nieproduktywnymi) w większości celów.
W przeszłości szyfry były często używane bez żadnych dodatkowych procedur, takich jak uwierzytelnianie lub sprawdzanie integralności w celu zaszyfrowania lub odszyfrowania. Kryptosystemy dzielą się na dwie kategorie: symetryczne i asymetryczne. Ten sam klucz (klucz tajny) służy do szyfrowania i deszyfrowania wiadomości w systemach symetrycznych, które jako jedyne znane były do lat 1970. XX wieku. Ponieważ systemy symetryczne używają krótszych długości kluczy, manipulowanie danymi w systemach symetrycznych jest szybsze niż w systemach asymetrycznych. Systemy asymetryczne szyfrują komunikację za pomocą „klucza publicznego” i odszyfrowują ją za pomocą podobnego „klucza prywatnego”. Zastosowanie systemów asymetrycznych poprawia bezpieczeństwo komunikacji, ze względu na trudność w określeniu relacji między dwoma kluczami. RSA (Rivest-Shamir-Adleman) i ECC to dwa przykłady systemów asymetrycznych (kryptografia krzywych eliptycznych). Powszechnie stosowany AES (Advanced Encryption Standard), który zastąpił wcześniejszy DES, jest przykładem wysokiej jakości algorytmu symetrycznego (Data Encryption Standard). Różne techniki plątaniny języka dziecięcego, takie jak łacina świni lub inne przechyłki, a także wszystkie schematy kryptograficzne, niezależnie od tego, jak poważnie, z dowolnego źródła przed wprowadzeniem jednorazowego podkładki na początku XX wieku, są przykładami niskiej jakości algorytmy symetryczne.
Termin „kod” jest często używany potocznie w odniesieniu do dowolnej techniki szyfrowania lub ukrywania wiadomości. Jednak w kryptografii kod odnosi się do zamiany słowa kodowego na jednostkę tekstu jawnego (tj. znaczące słowo lub frazę) (na przykład „wallaby” zastępuje „atak o świcie”). W przeciwieństwie do tego, szyfrogram jest tworzony przez modyfikację lub zastąpienie elementu znajdującego się poniżej tego poziomu (na przykład litery, sylaby lub pary liter) w celu utworzenia szyfrogramu.
Kryptoanaliza to badanie sposobów odszyfrowywania zaszyfrowanych danych bez dostępu do wymaganego do tego klucza; innymi słowy, jest to nauka o tym, jak „łamać” schematy szyfrowania lub ich implementacje.
W języku angielskim niektórzy zamiennie używają terminów „kryptografia” i „kryptologia”, podczas gdy inni (w tym ogólnie praktyka wojskowa USA) używają „kryptografii” w odniesieniu do stosowania i praktyki technik kryptograficznych oraz „kryptologii” w odniesieniu do połączonych badanie kryptografii i kryptoanalizy. Angielski jest bardziej elastyczny niż wiele innych języków, gdzie „kryptologia” (jak praktykowana przez kryptologów) jest zawsze używana w drugim znaczeniu. Według RFC 2828 steganografia jest czasami uwzględniana w kryptologii.
Kryptolingwistyka to badanie właściwości języka, które mają pewne znaczenie w kryptografii lub kryptologii (na przykład statystyki częstotliwości, kombinacje liter, wzorce uniwersalne itd.).
Kryptografia i kryptoanaliza mają długą historię.
Głównym artykułem jest historia kryptografii.
Przed erą nowożytną kryptografia zajmowała się przede wszystkim poufnością wiadomości (tj. szyfrowaniem) — konwersją wiadomości z formy zrozumiałej do niezrozumiałej i ponownie uniemożliwianiem jej odczytania przez przechwytujących lub podsłuchujących bez tajnej wiedzy (czyli klucza potrzebnego do odszyfrowania tej wiadomości). Szyfrowanie zostało zaprojektowane, aby zachować prywatność rozmów szpiegów, dowódców wojskowych i dyplomatów. W ostatnich dziesięcioleciach dyscyplina ta rozrosła się, obejmując między innymi takie techniki, jak sprawdzanie integralności wiadomości, uwierzytelnianie tożsamości nadawcy/odbiorcy, podpisy cyfrowe, interaktywne dowody i bezpieczne obliczenia.
Dwa najpopularniejsze typy klasycznych szyfrów to szyfry transpozycyjne, które systematycznie zastępują litery lub grupy liter innymi literami lub grupami liter (np. „hello world” staje się „ehlol owrdl” w trywialnie prostym schemacie przegrupowania) oraz szyfry podstawieniowe, które systematycznie zastępują litery lub grupy liter innymi literami lub grupami liter (np. „leć od razu” staje się „gmz bu” Proste wersje obu nigdy nie zapewniały dużej prywatności przed przebiegłymi przeciwnikami. Szyfr Cezara był wczesnym szyfrem podstawieniowym, w którym każda litera w tekście jawnym została zastąpiona literą o określonej liczbie pozycji w alfabecie.Według Swetoniusza Juliusz Cezar używał jej z trzyosobową zmianą do komunikowania się ze swoimi generałami.Przykładem jest wczesny szyfr hebrajski Atbash. Najstarszym znanym zastosowaniem kryptografii jest wyryty tekst zaszyfrowany na kamieniu w Egipcie (ok. 1900 p.n.e.), jednak możliwe, że zrobiono to raczej dla przyjemności piśmiennych widzów. i ukrywanie informacji.
Mówi się, że krypty były znane klasycznym Grekom (np. scytale przenoszący szyfr, który rzekomo był używany przez spartańskie wojsko). Steganografia (praktyka ukrywania nawet obecności komunikatu w celu zachowania go w tajemnicy) została również wynaleziona w czasach starożytnych. Zdanie wytatuowane na ogolonej głowie niewolnika i ukryte pod odrastającymi włosami, według Herodota. Wykorzystanie niewidocznego atramentu, mikrokropek i cyfrowych znaków wodnych do ukrycia informacji to bardziej aktualne przykłady steganografii.
Kautiliyam i Mulavediya to dwa rodzaje szyfrów, o których mowa w 2000-letniej indyjskiej Kamasutrze z Vtsyyana. Podstawienia liter w szyfrze w Kautiliyam opierają się na relacjach fonetycznych, takich jak samogłoski przechodzące w spółgłoski. Alfabet szyfrów w Mulavediya składa się z pasujących do siebie liter i wzajemnych.
Według muzułmańskiego uczonego Ibn al-Nadima, w Persji Sasanidów istniały dwa tajne pisma: h-dabrya (dosłownie „pismo króla”), używane do oficjalnej korespondencji oraz rz-saharya, używane do wymiany tajnych wiadomości z innymi Państwa.
W swojej książce The Codebreakers David Kahn pisze, że współczesna kryptologia zaczęła się od Arabów, którzy jako pierwsi dokładnie udokumentowali procedury kryptoanalityczne. Księga wiadomości kryptograficznych została napisana przez Al-Khalila (717–786) i zawiera najwcześniejsze użycie permutacji i kombinacji, aby wymienić wszystkie wyobrażalne słowa arabskie z samogłoskami i bez.
Teksty zaszyfrowane generowane przez szyfr klasyczny (a także niektóre szyfry współczesne) ujawniają informacje statystyczne o tekście jawnym, które można wykorzystać do złamania szyfru. Prawie wszystkie takie szyfry mogą zostać złamane przez inteligentnego atakującego po odkryciu analizy częstotliwości, prawdopodobnie przez arabskiego matematyka i politologa Al-Kindi (znanego również jako Alkindus) w IX wieku. Klasyczne szyfry są nadal popularne, choć w dużej mierze jako łamigłówki (patrz kryptogram). Risalah fi Istikhraj al-Mu'amma (Rękopis do odszyfrowania wiadomości kryptograficznych) został napisany przez Al-Kindi i udokumentował pierwsze znane użycie technik kryptoanalizy analizy częstotliwości.
Niektóre podejścia do szyfrowania historii rozszerzonej, takie jak szyfr homofoniczny, które mają tendencję do spłaszczania rozkładu częstotliwości, mogą nie korzystać z częstotliwości liter języka. Częstotliwości grupy liter języka (lub n-gramów) mogą stanowić atak na te szyfry.
Do czasu odkrycia szyfru polialfabetycznego, w szczególności przez Leona Battistę Albertiego około 1467, praktycznie wszystkie szyfry były dostępne do kryptoanalizy przy użyciu podejścia analizy częstotliwości, chociaż istnieją pewne dowody na to, że był już znany Al-Kindi. Alberti wpadł na pomysł użycia oddzielnych szyfrów (lub alfabetów zastępczych) dla różnych części komunikacji (być może dla każdej kolejnej litery tekstu jawnego na granicy). Stworzył również coś, co uważa się za pierwsze automatyczne urządzenie szyfrujące, koło, które wykonało część jego projektu. Szyfrowanie w szyfrze Vigenère'a, szyfrze polialfabetycznym, jest kontrolowane przez słowo kluczowe, które reguluje podstawienie liter na podstawie użytej litery słowa kluczowego. Charles Babbage wykazał, że szyfr Vigenère był podatny na analizę Kasiskiego w połowie XIX wieku, ale Friedrich Kasiski opublikował swoje odkrycia dziesięć lat później.
Pomimo faktu, że analiza częstotliwości jest potężną i szeroką techniką przeciwko wielu szyfrom, szyfrowanie pozostaje skuteczne w praktyce, ponieważ wielu potencjalnych kryptoanalityków nie jest świadomych tej techniki. Złamanie wiadomości bez wykorzystania analizy częstotliwości wymagało znajomości zastosowanego szyfru i prawdopodobnie użytego klucza, co czyniło szpiegostwo, przekupstwo, włamanie, dezercję i inne taktyki niedoinformowane kryptoanalitycznie bardziej atrakcyjnymi. Tajemnica algorytmu szyfru została ostatecznie uznana w XIX wieku za ani racjonalną, ani wykonalną gwarancję bezpieczeństwa wiadomości; w rzeczywistości każdy odpowiedni schemat kryptograficzny (w tym szyfry) powinien pozostać bezpieczny, nawet jeśli przeciwnik w pełni rozumie sam algorytm szyfrowania. Bezpieczeństwo klucza powinno wystarczyć, aby dobry szyfr zachował poufność w obliczu napaści. Auguste Kerckhoffs po raz pierwszy sformułował tę fundamentalną zasadę w 19 roku i jest ona znana jako Zasada Kerckhoffsa; alternatywnie, bardziej dosadnie, Claude Shannon, wynalazca teorii informacji i podstaw teoretycznej kryptografii, przekształcił ją jako Maxim Shannona – „wróg zna system”.
Aby pomóc z szyframi, wykorzystano wiele fizycznych gadżetów i pomocy. Skytale starożytnej Grecji, rózga rzekomo używana przez Spartan jako narzędzie szyfru transpozycyjnego, mogła być jedną z pierwszych. Inne pomoce zostały opracowane w średniowieczu, takie jak kratka szyfrowa, która była również używana do steganografii. Wraz z rozwojem szyfrów polialfabetycznych, bardziej wyrafinowane pomoce, takie jak dysk szyfrowy Albertiego, schemat tabula recta Johannesa Trithemiusa i szyfr kołowy Thomasa Jeffersona stały się dostępne (nieznane publicznie i wynalezione na nowo przez Bazeriesa około 1900 roku). Wiele mechanicznych systemów szyfrowania/deszyfrowania zostało opracowanych i opatentowanych na początku XX wieku, w tym maszyny wirnikowe, które były powszechnie stosowane przez niemiecki rząd i wojsko od końca lat dwudziestych XX wieku do II wojny światowej. Po I wojnie światowej szyfry zaimplementowane przez instancje wyższej jakości tych projektów maszyn spowodowały znaczny wzrost trudności kryptoanalitycznych.
Kryptografia zajmowała się przede wszystkim wzorcami językowymi i leksykograficznymi przed początkiem XX wieku. Od tego czasu przedmiot zainteresowania ewoluował, a kryptografia obejmuje obecnie aspekty teorii informacji, złożoności obliczeniowej, statystyki, kombinatoryki, algebry abstrakcyjnej, teorii liczb i ogólnie matematyki skończonej. Kryptografia jest rodzajem inżynierii, ale jest wyjątkowy, ponieważ zajmuje się aktywnym, inteligentnym i wrogim oporem, podczas gdy inne rodzaje inżynierii (takie jak inżynieria lądowa lub chemiczna) muszą jedynie radzić sobie z siłami natury, które są neutralne. Badany jest również związek między trudnościami z kryptografią a fizyką kwantową.
Rozwój komputerów cyfrowych i elektroniki wspomagał kryptoanalizę, umożliwiając tworzenie znacznie bardziej wyrafinowanych szyfrów. Ponadto, w przeciwieństwie do tradycyjnych szyfrów, które szyfrują wyłącznie teksty w języku pisanym, komputery pozwalały na szyfrowanie dowolnego typu danych, które mogą być reprezentowane w dowolnym formacie binarnym; to było nowatorskie i kluczowe. Zarówno w projektowaniu szyfrów, jak i kryptoanalizie komputery wyparły kryptografię językową. W przeciwieństwie do metod klasycznych i mechanicznych, które przede wszystkim bezpośrednio manipulują tradycyjnymi znakami (tj. literami i cyframi), wiele szyfrów komputerowych operuje na binarnych sekwencjach bitów (czasami w grupach lub blokach). Z drugiej strony komputery wspomagały kryptoanalizę, która częściowo skompensowała zwiększoną złożoność szyfrowania. Mimo to dobre współczesne szyfry wyprzedzają kryptoanalizę; często jest tak, że użycie dobrego szyfru jest bardzo wydajne (tj. szybkie i wymagające niewielkich zasobów, takich jak pamięć lub moc procesora), podczas gdy złamanie go wymaga wysiłku o wiele rzędów wielkości większego i znacznie większego niż ten wymagany w przypadku dowolnego klasyczny szyfr, skutecznie uniemożliwiający kryptoanalizę.
Debiutuje nowoczesna kryptografia.
Kryptoanaliza nowych urządzeń mechanicznych okazała się trudna i czasochłonna. Podczas II wojny światowej działania kryptoanalityczne w Bletchley Park w Wielkiej Brytanii sprzyjały wynalezieniu bardziej wydajnych metod wykonywania powtarzalnych zadań. Colossus, pierwszy na świecie całkowicie elektroniczny, cyfrowy, programowalny komputer, został opracowany, aby pomóc w dekodowaniu szyfrów stworzonych przez maszynę Lorenz SZ40/42 armii niemieckiej.
Kryptografia to stosunkowo nowa dziedzina otwartych badań akademickich, która rozpoczęła się dopiero w połowie lat 1970. XX wieku. Pracownicy IBM opracowali algorytm, który stał się federalnym (tj. amerykańskim) standardem szyfrowania danych; Whitfield Diffie i Martin Hellman opublikowali swój algorytm zgodności klucza; a kolumna Martina Gardnera w Scientific American opublikowała algorytm RSA. Od tego czasu kryptografia zyskała na popularności jako technika komunikacji, sieci komputerowych i ogólnie bezpieczeństwa komputerowego.
Istnieją głębokie powiązania z matematyką abstrakcyjną, ponieważ kilka nowoczesnych podejść do kryptografii może utrzymać swoje klucze w tajemnicy tylko wtedy, gdy pewne problemy matematyczne są nierozwiązywalne, takie jak faktoryzacja liczb całkowitych lub problemy z logarytmem dyskretnym. Istnieje tylko kilka kryptosystemów, które okazały się w 100% bezpieczne. Claude Shannon udowodnił, że jednorazowy pad jest jednym z nich. Istnieje kilka kluczowych algorytmów, które okazały się być bezpieczne w określonych warunkach. Na przykład niemożność rozłożenia na czynniki wyjątkowo dużych liczb całkowitych jest podstawą do przekonania, że RSA i inne systemy są bezpieczne, ale dowód na nierozerwalność jest nieosiągalny, ponieważ leżący u jego podstaw problem matematyczny pozostaje nierozwiązany. W praktyce są one szeroko stosowane, a większość kompetentnych obserwatorów uważa, że w praktyce są one nie do złamania. Istnieją systemy podobne do RSA, takie jak ten opracowany przez Michaela O. Rabina, które są co do zasady bezpieczne, jeśli faktoryzacja n = pq jest niemożliwa; jednak są praktycznie bezużyteczne. Kwestia dyskretnego logarytmu jest podstawą do przekonania, że niektóre inne kryptosystemy są bezpieczne, i istnieją podobne, mniej praktyczne systemy, które są bezpieczne pod względem rozwiązywalności lub nierozwiązywalności problemu dyskretnego logarytmu.
Algorytm kryptograficzny i projektanci systemów muszą brać pod uwagę możliwe przyszłe postępy podczas pracy nad swoimi pomysłami, oprócz znajomości historii kryptograficznej. Na przykład, wraz z poprawą mocy obliczeniowej komputera, zwiększył się zakres ataków brute-force, stąd też wzrosła wymagana długość klucza. Niektórzy projektanci systemów kryptograficznych badający kryptografię post-kwantową już rozważają potencjalne konsekwencje obliczeń kwantowych; zapowiedziana bliskość skromnych implementacji tych maszyn może sprawić, że potrzeba prewencyjnej ostrożności będzie czymś więcej niż tylko spekulacjami.
Kryptografia klasyczna we współczesnym świecie
Kryptografia symetryczna (lub kluczem prywatnym) to rodzaj szyfrowania, w którym nadawca i odbiorca używają tego samego klucza (lub, rzadziej, w którym ich klucze są różne, ale powiązane w łatwy do obliczenia sposób i są trzymane w tajemnicy, prywatnie ). Do czerwca 1976 roku był to jedyny znany publicznie rodzaj szyfrowania.
Szyfry blokowe i strumieniowe są używane do implementacji symetrycznych szyfrów z kluczem. Szyfr blokowy szyfruje dane wejściowe w blokach tekstu jawnego, a nie pojedynczych znaków, tak jak robi to szyfr strumieniowy.
Rząd USA wyznaczył standard szyfrowania danych (DES) i standard szyfrowania zaawansowanego (AES) jako standardy kryptograficzne (chociaż certyfikacja DES została ostatecznie wycofana po ustanowieniu AES). DES (zwłaszcza jego wciąż zatwierdzona i znacznie bezpieczniejsza odmiana potrójnego DES) pozostaje popularna, mimo że jest przestarzała jako oficjalny standard; jest używany w wielu aplikacjach, od szyfrowania bankomatów po prywatność poczty e-mail i bezpieczny zdalny dostęp. Wynaleziono i wydano mnóstwo różnych szyfrów blokowych, z różnym powodzeniem. Wiele z nich, w tym niektóre zaprojektowane przez wykwalifikowanych praktyków, takich jak FEAL, zostało poważnie uszkodzonych.
Szyfry strumieniowe, w przeciwieństwie do szyfrów blokowych, generują nieskończenie długi strumień materiału klucza, który jest połączony z tekstem jawnym bit po bicie lub znak po znaku, podobnie jak w przypadku jednorazowej klawiatury. Strumień wyjściowy szyfru strumieniowego jest generowany z ukrytego stanu wewnętrznego, który zmienia się wraz z funkcjami szyfru. Materiał klucza tajnego jest początkowo używany do ustawienia tego stanu wewnętrznego. Szyfr strumieniowy RC4 jest szeroko stosowany. Tworząc bloki strumienia klucza (zamiast generatora liczb pseudolosowych) i stosując operację XOR dla każdego bitu tekstu jawnego z każdym bitem strumienia klucza, szyfry blokowe mogą być stosowane jako szyfry strumieniowe.
Kody uwierzytelniania wiadomości (MAC) są podobne do kryptograficznych funkcji skrótu, z wyjątkiem tego, że tajny klucz może służyć do sprawdzania wartości skrótu po otrzymaniu; ta dodatkowa zawiłość zapobiega atakom na algorytmy nagiego skrótu, dlatego uważa się, że warto. Trzecim rodzajem techniki kryptograficznej są kryptograficzne funkcje skrótu. Pobierają wiadomość o dowolnej długości jako dane wejściowe i wyprowadzają mały skrót o stałej długości, który można wykorzystać na przykład w podpisach cyfrowych. Atakujący nie może zlokalizować dwóch wiadomości, które generują ten sam skrót przy użyciu dobrych algorytmów skrótu. MD4 jest szeroko używaną, ale obecnie błędną funkcją skrótu; MD5, ulepszona forma MD4, jest również szeroko stosowana, ale w praktyce łamana. Seria algorytmów skrótu Secure Hash Algorithm podobnych do MD5 została opracowana przez amerykańską agencję bezpieczeństwa narodowego: amerykański urząd normalizacyjny zdecydował, że „rozważne” z punktu widzenia bezpieczeństwa jest opracowanie nowego standardu, aby „znacznie poprawić niezawodność ogólnego algorytmu mieszającego NIST zestaw narzędzi." SHA-1 jest powszechnie używany i bezpieczniejszy niż MD5, ale kryptoanalitycy zidentyfikowali ataki na niego; rodzina SHA-2 poprawia SHA-1, ale jest podatna na starcia od 2011 r.; a rodzina SHA-2 ulepsza SHA-1, ale jest podatna na kolizje. W rezultacie do 2012 r. miał się odbyć konkurs na projekt funkcji skrótu, aby wybrać nowy amerykański standard krajowy, znany jako SHA-3. Konkurs zakończył się 2 października 2012 r., kiedy Narodowy Instytut Standardów i Technologii (NIST) ogłosił Keccak jako nowy algorytm skrótu SHA-3. Kryptograficzne funkcje skrótu, w przeciwieństwie do odwracalnych szyfrów blokowych i strumieniowych, zapewniają zaszyfrowane dane wyjściowe, których nie można użyć do odzyskania oryginalnych danych wejściowych. Funkcje skrótu kryptograficznego służą do sprawdzania autentyczności danych pozyskanych z niewiarygodnego źródła lub do dodatkowego stopnia ochrony.
Chociaż wiadomość lub zestaw wiadomości może mieć inny klucz niż inne, kryptosystemy z kluczem symetrycznym wykorzystują ten sam klucz do szyfrowania i deszyfrowania. Zarządzanie kluczami wymagane do bezpiecznego korzystania z szyfrów symetrycznych jest dużą wadą. Najlepiej byłoby, gdyby każda para komunikujących się stron miała inny klucz, a także ewentualnie inny zaszyfrowany tekst dla każdego wysłanego zaszyfrowanego tekstu. Liczba wymaganych kluczy rośnie wprost proporcjonalnie do liczby uczestników sieci, co wymaga skomplikowanych technik zarządzania kluczami, aby wszystkie były spójne i tajne.
Whitfield Diffie i Martin Hellman wymyślili koncepcję kryptografii z kluczem publicznym (znanym również jako klucz asymetryczny) w przełomowej pracy z 1976 roku, w której zastosowano dwa różne, ale matematycznie powiązane klucze – klucz publiczny i klucz prywatny. Mimo że są one nierozerwalnie połączone, system klucza publicznego jest zbudowany w taki sposób, że obliczenie jednego klucza („klucza prywatnego”) z drugiego („klucza publicznego”) jest niewykonalne obliczeniowo. Oba klucze są raczej tajne, jako połączona para. Według historyka Davida Kahna kryptografia z kluczem publicznym jest „najbardziej rewolucyjnym nowym pojęciem w tej dziedzinie od czasu, gdy w renesansie pojawiło się zastępowanie polialfabetyczne”.
Klucz publiczny w kryptosystemie klucza publicznego może być swobodnie przesyłany, ale powiązany klucz prywatny musi być ukryty. Klucz publiczny jest używany do szyfrowania, podczas gdy klucz prywatny lub tajny jest używany do odszyfrowywania w schemacie szyfrowania kluczem publicznym. Chociaż Diffie i Hellman nie byli w stanie stworzyć takiego systemu, wykazali, że kryptografia klucza publicznego jest możliwa dzięki udostępnieniu protokołu wymiany kluczy Diffie-Hellman, rozwiązania, które pozwala dwóm osobom potajemnie uzgodnić wspólny klucz szyfrowania. Najczęściej używany format certyfikatów klucza publicznego jest zdefiniowany przez standard X.509.
Publikacja Diffiego i Hellmana wywołała szerokie zainteresowanie naukowców opracowaniem praktycznego systemu szyfrowania z kluczem publicznym. Ronald Rivest, Adi Shamir i Len Adleman ostatecznie wygrali konkurs w 1978 roku, a ich odpowiedź stała się znana jako algorytm RSA.
Oprócz tego, że są najwcześniejszymi publicznie znanymi przykładami wysokiej jakości algorytmów z kluczem publicznym, algorytmy Diffie-Hellmana i RSA należą do najczęściej wykorzystywanych. Kryptosystem Cramer-Shoup, szyfrowanie ElGamal i liczne podejścia do krzywych eliptycznych są przykładami algorytmów z kluczem asymetrycznym.
Kryptografowie GCHQ przewidzieli kilka postępów naukowych, zgodnie z dokumentem wydanym w 1997 roku przez Government Communications Headquarters (GCHQ), brytyjską organizację wywiadowczą. Według legendy kryptografia klucza asymetrycznego została wynaleziona przez Jamesa H. Ellisa około 1970 roku. Clifford Cocks wynalazł rozwiązanie w 1973 roku, które było niezwykle podobne do RSA pod względem projektu. Malcolmowi J. Williamsonowi przypisuje się wynalezienie wymiany kluczy Diffie-Hellman w 1974 roku.
Systemy podpisu cyfrowego są również wdrażane przy użyciu kryptografii klucza publicznego. Podpis cyfrowy jest podobny do podpisu tradycyjnego, ponieważ jest łatwy do utworzenia przez użytkownika, ale trudny do podrobienia dla innych. Podpisy cyfrowe można również na stałe powiązać z treścią podpisywanej komunikacji; oznacza to, że nie można ich „przenieść” z jednego dokumentu do drugiego bez wykrycia. W schematach podpisów cyfrowych istnieją dwa algorytmy: jeden do podpisywania, który wykorzystuje tajny klucz do przetwarzania wiadomości (albo skrót wiadomości lub oba) oraz jeden do weryfikacji, który wykorzystuje pasujący klucz publiczny do wiadomości do weryfikacji autentyczność podpisu. Dwie z najczęściej używanych metod podpisu cyfrowego to RSA i DSA. Infrastruktury klucza publicznego i wiele systemów bezpieczeństwa sieci (np. SSL/TLS, wiele sieci VPN) opierają się na podpisach cyfrowych.
Złożoność obliczeniowa „trudnych” problemów, takich jak te wynikające z teorii liczb, jest często wykorzystywana do opracowywania metod z kluczem publicznym. Problem faktoryzacji liczb całkowitych jest związany z twardością RSA, podczas gdy problem logarytmu dyskretnego jest związany z Diffie-Hellmanem i DSA. Bezpieczeństwo kryptografii krzywych eliptycznych opiera się na zagadnieniach teorii liczby krzywych eliptycznych. Większość algorytmów z kluczem publicznym obejmuje operacje takie jak mnożenie modułowe i potęgowanie, które są znacznie bardziej kosztowne obliczeniowo niż techniki stosowane w większości szyfrów blokowych, zwłaszcza przy normalnych rozmiarach kluczy, ze względu na trudność podstawowych problemów. W rezultacie kryptosystemy klucza publicznego są często hybrydowymi kryptosystemami, w których wiadomość jest szyfrowana szybkim, wysokiej jakości algorytmem klucza symetrycznego, podczas gdy odpowiedni klucz symetryczny jest wysyłany wraz z wiadomością, ale szyfrowany algorytmem klucza publicznego. Powszechnie stosowane są również schematy podpisów hybrydowych, w których obliczana jest kryptograficzna funkcja skrótu i tylko wynikowy skrót jest podpisany cyfrowo.
Funkcje skrótu w kryptografii
Funkcje skrótu kryptograficznego to algorytmy kryptograficzne, które tworzą i używają określonych kluczy do szyfrowania danych w celu szyfrowania symetrycznego lub asymetrycznego i można je traktować jako klucze. Pobierają wiadomość o dowolnej długości jako dane wejściowe i wyprowadzają mały skrót o stałej długości, który można wykorzystać na przykład w podpisach cyfrowych. Atakujący nie może zlokalizować dwóch wiadomości, które generują ten sam skrót przy użyciu dobrych algorytmów skrótu. MD4 jest szeroko używaną, ale obecnie błędną funkcją skrótu; MD5, ulepszona forma MD4, jest również szeroko stosowana, ale w praktyce łamana. Seria algorytmów skrótu Secure Hash Algorithm podobnych do MD5 została opracowana przez amerykańską agencję bezpieczeństwa narodowego: amerykański urząd normalizacyjny zdecydował, że „rozważne” z punktu widzenia bezpieczeństwa jest opracowanie nowego standardu, aby „znacznie poprawić niezawodność ogólnego algorytmu mieszającego NIST zestaw narzędzi." SHA-1 jest powszechnie używany i bezpieczniejszy niż MD5, ale kryptoanalitycy zidentyfikowali ataki na niego; rodzina SHA-2 poprawia SHA-1, ale jest podatna na starcia od 2011 r.; a rodzina SHA-2 ulepsza SHA-1, ale jest podatna na kolizje. W rezultacie do 2012 r. miał się odbyć konkurs na projekt funkcji skrótu, aby wybrać nowy amerykański standard krajowy, znany jako SHA-3. Konkurs zakończył się 2 października 2012 r., kiedy Narodowy Instytut Standardów i Technologii (NIST) ogłosił Keccak jako nowy algorytm skrótu SHA-3. Kryptograficzne funkcje skrótu, w przeciwieństwie do odwracalnych szyfrów blokowych i strumieniowych, zapewniają zaszyfrowane dane wyjściowe, których nie można użyć do odzyskania oryginalnych danych wejściowych. Funkcje skrótu kryptograficznego służą do sprawdzania autentyczności danych pozyskanych z niewiarygodnego źródła lub do dodatkowego stopnia ochrony.
Prymitywy kryptograficzne i kryptosystemy
Wiele prac teoretycznych kryptografii koncentruje się na elementarnych elementach kryptograficznych — algorytmach o podstawowych właściwościach kryptograficznych — i ich związku z innymi wyzwaniami kryptograficznymi. Te podstawowe prymitywy są następnie wykorzystywane do tworzenia bardziej złożonych narzędzi kryptograficznych. Te prymitywy zapewniają podstawowe cechy, które są wykorzystywane do tworzenia bardziej złożonych narzędzi znanych jako systemy kryptograficzne lub protokoły kryptograficzne, które zapewniają jedną lub więcej właściwości zabezpieczeń wysokiego poziomu. Z drugiej strony granica między prymitywami kryptograficznymi a kryptosystemami jest arbitralna; na przykład algorytm RSA jest czasami uważany za kryptosystem, a czasami za prymitywny. Typowymi przykładami są funkcje pseudolosowe, funkcje jednokierunkowe i inne prymitywy kryptograficzne.
System kryptograficzny lub system kryptograficzny jest tworzony przez połączenie jednego lub więcej prymitywów kryptograficznych w celu stworzenia bardziej skomplikowanego algorytmu. Kryptosystemy (np. szyfrowanie El-Gamal) mają na celu zapewnienie określonej funkcjonalności (np. szyfrowanie kluczem publicznym) przy jednoczesnym zapewnieniu pewnych właściwości bezpieczeństwa (np. losowy model Oracle z wybranym tekstem jawnym, zabezpieczenie CPA). Aby wesprzeć cechy bezpieczeństwa systemu, kryptosystemy wykorzystują właściwości podstawowych prymitywów kryptograficznych. Zaawansowany kryptosystem można wygenerować z kombinacji wielu bardziej podstawowych kryptosystemów, ponieważ rozróżnienie między prymitywami a kryptosystemami jest nieco arbitralne. W wielu okolicznościach struktura kryptosystemu obejmuje komunikację tam i z powrotem między dwiema lub większą liczbą stron w przestrzeni (np. między nadawcą a odbiorcą bezpiecznej wiadomości) lub w czasie (np. między nadawcą a odbiorcą bezpiecznej wiadomości) (np. dane kopii zapasowej chronione kryptograficznie).
Aby dokładnie zapoznać się z programem certyfikacji, możesz rozwinąć i przeanalizować poniższą tabelę.
Program Certyfikacji Zaawansowanej Klasycznej Kryptografii EITC/IS/ACC odwołuje się do ogólnodostępnych materiałów dydaktycznych w formie wideo. Proces uczenia się podzielony jest na etapy (programy -> lekcje -> tematy) obejmujące odpowiednie części programu nauczania. Zapewnione są również nieograniczone konsultacje z ekspertami dziedzinowymi.
Aby uzyskać szczegółowe informacje na temat procedury certyfikacji, sprawdź Wygodna Subskrypcja.
Główne notatki do wykładu
Zrozumieć kryptografię, Christof Paar i Jan Pelzl, Kurs online w formie slajdów PDF
https://www.crypto-textbook.com/slides.php
Zrozumieć kryptografię autorstwa Christofa Paara i Jana Pelzla, kurs online w formie wideo
https://www.crypto-textbook.com/movies.php
Główne odniesienie do klasycznej książki kryptograficznej
Zrozumienie kryptografii autorstwa Christofa Paara i Jana Pelzl
https://www.crypto-textbook.com/index.php
Dodatkowe zastosowane klasyczne odniesienie do książki o kryptografii
Handbook of Applied Cryptography autorstwa A. Menezesa, P. van Oorschota i S. Vanstone'a:
https://cacr.uwaterloo.ca/hac/
https://www.amazon.com/exec/obidos/ISBN=0849385237/7181-7381933-595174
https://notendur.hi.is/pgg/Handbook%20of%20Applied%20Cryptography.pdf
Pobierz kompletne materiały przygotowawcze do samodzielnego uczenia się w trybie offline dla programu EITC/IS/ACC Advanced Classical Cryptography w pliku PDF
Materiały przygotowawcze EITC/IS/ACC – wersja standardowa
Materiały przygotowawcze EITC/IS/ACC – wersja rozszerzona z pytaniami kontrolnymi