Kryptografia

KRYPTOGRAFIA
Dziedzina nauki (spokrewniona z matematyką) zajmująca się zagadnieniami utajniania informacji poprzez jej szyfrowanie.
Kryptografia dzielona jest na kryptografię tradycyjną, z jednym tylko kluczem szyfrowania (zobacz: kryptografia symetryczna) oraz kryptografię z parą zależnych kluczy – kluczem prywatnym i publicznym (kryptografia asymetryczna).Poszczególne algorytmy szyfrujące nazywane są kryptosystemami. Z kryptografią związana jest nieodłącznie kryptoanaliza – nauka o \”łamaniu\” szyfrów. Natomiast kryptologia jest szerszym pojęciem, łączącym zarówno kryptografię jak i kryptoanalizę.

Zastosowania kryptografii
Kryptografia w sieci
Prawa patentowe
Zastosowania kryptografii
Kryptografia pozwala chronić poufne dane poprzez przekształcenie ich do postaci nieczytelnej dla osób nie posiadających właściwego klucza (szyfrowanie). W takiej postaci mogą być one bez obaw przechowywane w pamięciach masowych bądź przesyłane sieciami nie zapewniającymi należytego bezpieczeństwa (np. w Internecie).
Kryptografia pierwotnie używana była głównie do celów militarnych. Obecnie wzrost znaczenia elektroniczych dróg wymiany informacji przyczynił się do rozszerzenia jej zastosowań. Nowoczesne techniki kryptograficzne pozwalają na:
• bezpieczne (niemal niemożliwe do złamania) szyfrowanie wiadomości
• jednoznaczą identyfikację nadawcy wiadomości (nie może się on wyprzeć autorstwa wiadomości)
• zapewnienie integralności komunikatu (gwarancję, że nie został on zmodyfikowany)
Kryptografia w sieci
Ze względu na niefizyczną naturę przesyłanych Internetem materiałów, tradycyjne metody poświadczania ich autentyczności (pieczęcie, sygnatury, itp) są bezużyteczne. W komunikacji sieciowej zastąpiła je kryptografia, zyskując coraz większe znaczenie jako pewny sposób zabezpieczania poufności danych oraz ochrony prywatności w Sieci.
Procesom identyfikacji, uwierzytelniania oraz ukrywania informacji przed niepowołanymi osobami towarzyszą silne algorytmy szyfrowania. Zawierają je m.in. popularne programy zabezpieczające prywatność korespondencji e-mail (PGP) i bezpieczne protokoły transmisyjne (SSL). Pośrednio kryptografia znajduje zastosowanie w elektronicznych podpisach.
Prawa patentowe
W niektórych krajach wykorzystywanie algorytmów kryptograficznych podlega wielu restrykcjom. W Stanach Zjednoczonych uważane są one za technologie o znaczeniu militarnym, stąd obowiązują tam przepisy ograniczające eksport silnych algorytmów kryptograficznych. Tylko niektóre kategorie zagranicznych instytucji (np. banki) mogą ubiegać się o zakup amerykańskich technologii szyfrowania (przy czym niektóre kraje obłożone są embargiem bezwarunkowym – są wśród nich m.in. Rosja, Kuba, Afganistan, Korea Północna, Chiny, Pakistan, Chile, Kolumbia, Iran i Iran).
Większość amerykańskich narzędzi i programów szyfrujących (w tym przeglądarki WWW) produkowana jest w dwóch wersjach: krajowej i międzynarodowej, różniących się długością wykorzystywanych kluczy. Wersje przeglądarek z krótkimi kluczami wspierają jednak dodatkowo technologię SGS (Server Gated Cryptography), która pozwala na przeprowadzania transakcji w wybranymi instytucjami finansowymi przy użyciu kodowania z długim kluczem. Warunkiem jest, aby serwer tej instytucji mógł wylegitymować się odpowiednim certyfikatem SGS.
kryptosystem
Metoda (algorytm) szyfrowania danych. Zadaniem kryptosystemu jest uczynić odczytanie treści przekazu przez niepowołane osoby na tyle trudnym i czasochłonnym zadanem, że w praktyce niemożliwym Jednocześnie powienien on umożliwiać łatwe odszyfrowanie wiadomości dla stron znających tajny klucz.
O bezpieczeństwie informacji chronionej przy pomocy algorytmu w głównej mierze decyduje siła kryptosystemu, czyli jego odporność na złamanie. Na siłę kryptosystemu wpływ mają z kolei jakość algorytmu oraz długość i tajność klucza szyfrowania.
Kryptosystemy dzielą się na:
• bazujące na kluczu symetrycznym, gdzie wiadomości szyfrowane i deszyfrowane są przy pomocy jednego klucza. (zobacz: kryptografia symetryczna)
• wykorzystujące parę kluczy: znany każdemu klucz publiczny oraz utajniony, znany tylko nadawcy wiadomości klucz prywatny (zobacz: kryptografia asymetryczna).
Kryptosystemy podlegają prawu patentowemu a w wielu krajach również restrykcjom eksportowym.Kryptosystemami zajmuje się dziedzina wiedzy nazywana kryptografią, natomiast ich łamaniem kryptoanalizą.
kryptoanaliza
Dziedzina wiedzy zajmująca się analizowaniem i łamaniem kryptosystemów – odczytywaniem zaszyfrowanych wiadomości bez znajomości kluczy, które pozwalają na ich bezpośrednie odtajnienie.
kryptografia symetryczna; kryptografia z tajnym kluczem
symetric cryptography; secret key cryptography
Szyfrowanie z użyciem jednego klucza, wspólnego dla obu stron. Zarówno nadawca jak odbiorca wiadomości posługują się tym samym kluczem: nadawcy służy on do szyfrowania komunikatów, adresatowi – do odszyfrowywania zakodowanej treści.Zaletami tej metody jest szybkość, wydajność oraz odporność na ataki (\”łamanie\”).
Podstawową wadą tej metody jest konieczność uzgodnienia wspólnego klucza przed rozpoczęciem wymiany komunikatów. Musi zatem istnieć sposób bezpiecznego przekazania tajnego klucza. O ile w tradycyjnych zastosowaniach nie stanowi to większego problemu (jeżeli osoby mogą spotkać się i przekazać sobie klucz), o tyle w komunikacji za pośrednictwem Internetu istnieje możliwość przechwycenia klucza przez niepowołane osoby. W metodzie tej nie ma także nigdy powności, czy zaszyfrowana wiadomość pochodzi rzeczywiście od danej osoby.
Jest to podstawowy powód, dla którego w komunikacji za pomocą kanałów nie zapewniających należytego bezpieczeństwa wybiera się rozwiązania bazujące na kryptografii asymetrycznej.
klucz szyfrowania
Porcja informacji wykorzystywana przez algorytm kryptograficzny.
Klucz określa sposób działania algorytmu i determinuje postać zaszyfrowanej wiadomości. Dzięki temu osoby posługujące się tym samym kryptosystemem, lecz różnymi kluczami, nie mogą wzajemnie odczytać zakodowanych przez siebie wiadomości.
Klucz może mieć postać ciągu bitów (np. dla algorytmu DES) lub pary liczb (dla algorytmów wykorzystujących ideę kryptografii asymetrycznej – np. RSA).
kryptografia asymetryczna; kryptografia z kluczem publicznym
Wynaleziona w 1976 roku przez studenta Martina Hellmana oraz jego profesora Whitfielda Diffie\’go metoda kryptograficzna oparta na dwóch osobnych kluczach: jednym publicznym, służącym do szyfrowania oraz drugim – tajnym – do odczytywania wiadomości.
Kryptografia bazująca na kluczu niesymetrycznym w wielu przypadkach zapewnia znacznie wyższy poziom bezpieczeństwa niż dotychczas stosowana metoda z jednym, wspólnym dla komunikujących się stron kluczem (zobacz: kryptografia symetryczna).
Chociaż system autorstwa Hallmana i Diffie\’go został złamany w 1980 roku, sama idea dwóch osobnych kluczy legła u podstaw wielu innych systemów kryptograficznych (m.in. algorytmu RSA).
Dobrana para: klucz prywatny – klucz publiczny
Każdy z korespondentów dysponuje dwoma powiązanymi ze sobą kluczami, z których jeden jest kluczem prywatnym (tajnym, trzymanym w bezpiecznym miejscu), drugi zaś kluczem publicznym (przeznaczonym do propagowania wśród potencjalnych korespondentów).
Informacje zakodowane kluczem publicznym mogą być odczytane jedynie przy zastosowaniu odpowiadającego mu klucza prywatnego. Proces kodowania nie jest więc symetryczny – klucz stosowany do zaszyfrowania wiadomości nie pozwala na jej odszyfrowanie. Umożliwiają to specjalne funkcje matematyczne, które łatwo jest przeprowadzić w jedną stronę, lecz niezwykle trudno odwrócić (zobacz opis algorytmu RSA).
Zalety i wady systemu
Sposób powiązania pary kluczy zapewnia, że:
• każdy użytkownik dysponujący kluczem publicznym innej osoby może wysłać jej wiadomość będąc pewnym, że nikt poza nią nie będzie w stanie jej odczytać.
• Nie ma konieczności przekazywania tajnego klucza. Propagowany jest jedynie klucz publiczny, bezużyteczny dla potencjalnego \”włamywacza\”
• Nie można podszyć się pod właściciela klucza publicznego i w jego imieniu wysyłać wiadomości (do wysyłania niezbędny jest bowiem klucz prywatny).
• Nie można wyprzeć się wiadomości wysłanej i zaszyfrowanej własnym kluczem prywatnym (posiada go tylko właściciel). – Każda modyfikacja wysłanej wiadomości przez osoby trzecie może zostać łatwo wykryta (wiadomości nie będzie można odczytać kluczem publicznym)
Z drugiej strony, niedogodnością kryptografii niesymetrycznej jest duża złożoność algorytmów, a co za tym idzie, mała wydajność. Z tego powodu w nowoczesne rozwiązania kryptografię asymetryczną wykorzystują jedynie do ustanowienia bezpiecznego kanału transmisji. Kanałem tym, już bez obaw o przechwycenie, przesyłany jest następnie tajny klucz szyfru symetrycznego. Posłuży on do zapewnienia bezpieczeństwa transmisji szyfrowanej już w technologii kryptografii symetrycznej (szybszej i bardziej odpornej na ataki).
Klucze publiczne a cyfrowe certyfikaty
Chcąc wysłać komuś zaszyfrowaną wiadomość, musimy dysponować kopią jego klucza publicznego. Klucz taki możemy otrzymać od korespondenta za pośrednictwem poczty elektronicznej, pobrać go z jego strony WWW lub z centralnego serwera kluczy publicznych. Przed wysłaniem wiadomości warto się jednak upewnić się, że klucz publiczny faktycznie należy do danej osoby (nie został nam podrzucony fałszywy klucz publiczny).
Problem ten rozwiązują cyfrowe certyfikaty. Certyfikat wydawany jest przez instytucję zaufania publicznego (zobacz: Centrum Certyfikacji), która przedtem żąda przestawienia przez użytkownika dokumentów potwierdzających jego tożsamość. Większość współczesnych przeglądarek przygotowana jest do rozpoznawania i obsługi cyfrowych certyfikatów.
Z certyfikatami łaczy się również zagadnienie elektronicznego podpisu.

PGP (Pretty Good Privacy)
Dosł. \”Całkiem niezła prywatność\”. Stworzony w 1991 roku przez Phila Zimmermana program do szyfrowania wiadomości oraz sygnowania ich techniką cyfrowych podpisów.
PGP wykorzystuje zarówno algorytmy szyfrowania z kluczem symetrycznym (DES, IDEA) jak i kluczem asymetrycznym (RSA). System znajduje także zastosowanie jako narzędzie do szyfrowania plików na dysku twardym oraz metoda tworzenia wirtualnych sieci prywatnych (VPN – Virtual Private Network) bazujących na szyfrowanym połączeniu IP.
Ponieważ szyfrowanie z kluczem publicznym jest czynnością czasochłonną, PGP do kodowania wiadomości wykorzystuje wydajniejsze szyfrowanie tradycyjne – z pojedynczym kluczem. Klucz ten następnie szyfrowany jest za pomocą klucza prywatnego nadawcy i wraz z zakodowaną depeszą przesyłany siecią. Posiadacz klucza publicznego nadawcy odtwarza przy jego pomocy klucz pojedynczy i deszyfruje treść wiadomości.
Przykładowo, wiadomość o treści:
Całkiem niezła prywatność
po zaszyfrowaniu w PGP przyjmie następującą postać:
—–BEGIN PGP MESSAGE—–
Version: PGPfreeware 5.5.3i
for non-commercial use
qANQR1DBwA4D/60/p9Jq95YQAwCrK1qm1or
IdtMpQIguj5Y85c 4c5pv95uPqR4OxCw/XIuKfmO
TAQkwOl/Fb5BX7JzyCbP7hTSo i6qLW7oSeq/vu
QRjJXGGit8jivIG pQixftLq6g6h6W5A6Vrdl6ACTC
PYC/1A8vZaP69Ryxe+sBiTx9em77E38n5QIQ4wf
dQyRiiP8urpfKZqI7jLL+/gD77Hep5h4cu492CRbG
dgFsmVErapvCqTYIubj5vOyDXF rvAuQ8wEQn63
XN7nrER52KQZIK Mk7OXdQSNnwXVJhriskOqP9i
7xp UxCFgaiSo7RjfjgXURKEKpc7hUxo02Ifnq/QW
eoMRgNJR8MFxjk+FqE==OBsQ
—–END PGP MESSAGE—–

________________________________________
Potyczki z prawem

W Stanach Zjednoczonych wykorzystywanie algorytmów kryptograficznych (uważanych za technologie o znaczeniu militarnym) podlega wielu restrykcjom. Zabroniony jest m.in. eksport silnych systemów kryptograficznych poza granice USA. Phill Zimmerman doświadczył skutków takiej polityki na własnej osobie. Po udostępnieniu w 1991 roku programu PGP 2.3a w Internecie, wszczęto przeciwko niemu śledztwo, które toczyło się niemal trzy lata.PGP jest jednak obecnie dostępne na całym świecie w pełnej, \”nieocenzurowanej\” wersji. Jak to możliwe? Stało się tak dzięki wykorzystaniu niewielkiej luki w przepisach eksportowych. Stanowią one, iż restrykcją podlega postać elektroniczna technologii, zaś prawo nie wspomina ani słowem o formie drukowanej. Autor programu skwapliwie skorzystał z okazji – kody źródłowe PGP zostały wydrukowane i w tej postaci przewiezione do Europy. Tam kilkudziesięciu ochotników zeskanowało 6000 kartek papieru, po czym całość za pomocą programu rozpoznającego drukowane pismo zamieniono na kod źródłowy w postaci elektronicznej. Po skompilowaniu kodu, aplikację w wersji 5.0i udostępniono w Internecie – tym razem już całkowicie legalnie.
________________________________________
PGP dostępny jest dla najważniejszych systemów: DOS, Windows, różnych odmian Uniksa, Amigi, OS/2, etc. Istnieją dwie zasadnicze, różniące się typem licencji wersje: komercyjna (dla firm) oraz darmowa (do użytku prywatnego). Dostępne są także nakładki na popularne programy pocztowe (MS Outlook, Eudora, etc.).

SSL (Secure Sockets Layer)
Protokół kryptograficzny opracowany przez firmę Netscape Communications zapewniający bezpieczny kanał komunikacyjny między klientem a serwerem. Wykorzystywany do przesyłania zaszyfrowanych informacji przez Internet. Niepisany standard w dziedzinie tzw. bezpiecznej transmisji, \”rozumiany\” przez większość popularnych serwerów WWW.

Dlaczego SSL?
SSL a standardowe protokoły Internetu
Charakterystyka SSL
Przebieg sesji SSL
SSL w przeglądarce internetowej
Coś za coś…
Dlaczego SSL?
Standardowo, dokumenty i pliki przesyłane są poprzez Internet w niezaszyfrowanych pakietach. Istnieje więc niebezpieczeństwo przechwycenia ich i odczytania przez osobę (hakera) dysponującego odpowiednimi narzędziami i wiedzą. Jednak, gdy używany jest protokół SSL, wiadomości przed przesłaniem są szyfrowane, a tym samym stają się praktycznie bezużyteczne (bo nieczytelne) dla kogoś komu uda się je przechwycić.
SSL a standardowe protokoły Internetu
SSL jest protokołem ogólnego przeznaczenia. W założeniu stanowi uzupełnienie protokołów już istniejących, działając poniżej warstwy aplikacji (HTTP, FTP, SMTP, telnet, etc.) a powyżej warstw sieci i transportu (TCP/IP). Jego zadaniem jest stworzenie wirtualnego, odpornego na próby podsłuchiwania kanału transmisji dla informacji przesyłanych przez aplikacje (serwery i klienty WWW, FTP, poczty elektronicznej i inne).
Charakterystyka SSL
Podstawowe cechy protokołu SSL:
• Certyfikowanie, czyli metody autoryzacji serwerów internetowych i klientów.
• Szyfrowanie – poufność przesyłanych informacji
• Sumy kontrolne – integralność danych
Protokół SSL używany jest wszystkim przez witryny e-commerce, gdzie możliwość dokonania zakupów bez obawy o przechwycenie poufnych danych (np. numerów kart kredytowych) jest szczególnie ważna.
Przebieg sesji SSL
SSL wykorzystuje dwa rodzaje kryptografii: symetryczną (z pojedynczym kluczem) oraz niesymetryczną (z kluczem prywatnym i publicznym).
Pierwszą operacją po nawiązaniu połączenia jest wymiana informacji uwierzytelniających serwera oraz, jeżeli zachodzi taka konieczność, klienta. W tej fazie wykorzystywane są cyfrowe certyfikaty, wystawiane po szczegółowej kontroli wiarygodności przez niezależne urzędy CA (Certification Authorities). Certyfikaty poza informacjami o charakterze ogólnym zawierają także klucze publiczne ich właścicieli. Za pomocą certyfikatów można więc zweryfikować autentyczność zarówno serwera jak i klienta.
Podczas pierwszego połączenia komputery uzgadniają także rodzaj algorytmu kryptograficznego, jakiego będą używać – wybierany jest zawsze najmocniejszy z dostępnych obu stronom. Następnie każda z maszyn generuje tzw. klucz sesji (symetryczny), który posłuży jej do szyfrowania wysyłanych informacji. Klucze te zostają zakodowane przy pomocy klucza publicznego \”rozmówcy\” i przekazane drugiej stronie. Każdy z komputerów dekoduje klucz sesji za pomocą własnego klucza prywatnego i od tego momentu klucz sesji może już służyć do deszyfrowania otrzymywanych danych.
Nawiązanie bezpiecznego połączenia opiszemy (w uproszczeniu) na przykładzie klienta próbującego odczytać przy pomocy przeglądarki ważne informacje o swoim koncie bankowym:
1. Serwer banku przesyła swój certyfikat do komputera klienta.
2. Komputer klienta weryfikuje autentyczność certyfikatu banku.
3. Komputer klienta wydobywa z certyfikatu klucz publiczny instytucji.
4. Na podstawie informacji zawartych w certyfikacie banku klient stwierdza, że może przyjąć algorytm kryptograficzny o długości klucza 128 bitów.
5. Komputer klienta generuje klucz sesyjny, który posłuży do szyfrowania transmisji.
6. Komputer Klienta szyfruje klucz sesyjny za pomocą klucza publicznego banku i przesyła go do serwera banku.
7. Serwer Banku wykorzystuje swój klucz prywatny do rozkodowania klucza sesyjnego.
SSL w przeglądarce internetowej
SSL obsługiwany jest przez większość popularnych przeglądarek internetowych, m.in. Netscape Navigator, Internet Explorer, Operę oraz Lynx. Istotną rolę odgrywa długość zaimplementowanych w programie kluczy, czyli liczba składających się nań bitów. Im klucz jest dłuższy, tym trudniej jest go złamać. Współcześnie używane klucze sesji liczą 128-bitów, klucze publiczne – 1024 bity i ten poziom bezpieczeństwa można uznać za wystarczający. Jednakże ze względu na narzucone przez Stany Zjednoczone ograniczenia w eksporcie technologii kryptograficznych (ITAR), poza USA przeglądarki rozpowszechniane są w tzw. wersjach międzynarodowych – z krótszym, 40-bitowym kluczem głównym oraz 512-bitowym kluczem publicznym. Posiadacze Netscape Navigatora mogą ominąć te obostrzenia instalując nakładkę o nazwie Fortezza, która zwiększa długość kluczy do oryginalnych wartości.
Fakt, iż bieżące połączenie nawiązane zostało z użyciem protokołu SSL, można sprawdzić w okienku adresu przeglądarki. Adres URL strony zaczyna się wówczas od liter \”https://\” (zamiast zwykłego \”http://\”), a przeglądarka informuje, że \”Za chwilę obejrzysz strony w bezpiecznym połączeniu. Informacje wymieniane z tą witryną nie są widoczne dla nikogo innego w sieci Web\”. Każdorazowe przejście z dokumentu chronionego protokołem SSL do dokumentu niezaszyfrowanego poprzedzane jest wyświetleniem okna z takim ostrzegawczym komunikatem (i vice versa). Równocześnie na pasku stanu (u dołu ekranu) pojawia się ikona zamkniętej kłódki. Kliknięcie w ten symbol umożliwia zapoznanie się z informacjami o certyfikacie posiadanym przez serwer instytucji której strony odwiedzamy.
Jeżeli o serwerze wiadomo, że obsługuje protokół SSL, można pobrać z niego dowolny dokument w trybie bezpiecznego połączenia poprzez niewielką modyfikację adresu URL. Wystarczy zastąpić prefiks \”http\” ciągiem \”https\” – np. zamiast:
http://www.firma.pl/dokument.html
należy podać:
https://www.firma.pl/dokument.html
Identyczny prefiks mają adresy wszystkich oglądanych w bezpiecznym połączeniu stron WWW. Z kolei formularze służące do podawania poufnych informacji posiadają odpowiednio zmodyfikowany prefiks adresu URL w atrybucie action znacznika

– np. zmiast:

jest:

Coś za coś…
Łącząc się poprzez kanał SSL użytkownicy mogą zauważyć pewne spowolnienie transmisji danych. Mało efektywna metoda szyfrowania z kluczem publicznym powoduje, ze opóźnienie spowodowane koniecznością zakodowania i odkodowania klucza sesji może sięgać nawet kilku sekund. Na szczęście, przeglądarki przechowują klucze szyfrowania w pamięci podręcznej – w praktyce opóźnienie występuje więc jedynie podczas pierwszego połączenia.

DES (Data Encryption Standard)
Jeden z najpopularniejszych algorytmów szyfrowania danych (kryptosystemów).
DES opracowano w latach siedemdziesiątych w firmie IBM, w ramach konkursu na opracowanie efektywnego kryptosystemu na potrzeby rządu Stanów Zjednoczonych. Po drobnych modyfikacjach wprowadzonych przez NSA (National Security Agency – Narodową Agencję Bezpieczeństwa), w 1977 roku DES został uznany przez rząd USA za oficjalny standard. Od tej pory jest szeroko wykorzystywany – głównie w świecie finansów i bankowości. Ze względu na jego \”siłę\” eksport do innych krajów podlega dużym ograniczeniom.

Zasada działania
Jak złamano algorytm DES
DES potrojony
Zasada działania
Algorytm opiera się na 56-bitowym tajnym kluczu, który wykorzystywany jest do kodowania 64-bitowych bloków danych. Operacja przebiega w kilku-kilkunastu etapach, podczas których tekst wiadomości ulega wielokrotnym przeobrażeniom.
Tak jak w każdej metodzie kryptograficznej posługującej się kluczem prywatnym, klucz ten musi być znany zarówno nadawcy jak i odbiorcy. Ponieważ dla każdej wiadomości klucz wybierany jest losowo spośród 72 000 000 000 000 000 (72 kwadrylionów) możliwych, wiadomości szyfrowane przy pomocy algorytmu DES przez długi czas uchodziły za niemożliwe do złamania. Obecnie długość klucza stanowi największą wadę algorytmu.
Jak złamano algorytm DES
Na początku 1997 roku, RSA Data Security (firma będąca właścicielem patentu na algorytm kryptograficzny RSA) ustanowiła nagrodę w wysokości 10 000 USD za sforsowanie algorytmu DES. Połączenie wysiłku naprędce powołanej grupy oraz wolnych mocy 14 000 komputerów użytkowników Internetu, zaowocowało złamaniem kodu 90-go dnia trwania projektu. Jego uczestnicy mogą mówić o sporej dawce szczęścia, jako że rozwiązanie zostało znalezione po zanalizowaniu niespełna 18 kwadrylionów kluczy (a więc jedynie jednej czwartej z wszystkich możliwych).
Wkrótce podjęta została próba poprawienia tego wyniku. Tym razem uczestniczyło w niej 22 000 internautów z całego świata, dysponujących łącznie 50 tysiącami jednostek CPU. Klucz został znaleziony po przeanalizowaniu ponad 61 trylionów możliwości, zaś cała operacja trwała o połowę krócej, bo tylko 39 dni.
W próbie przeprowadzonej w lipcu 1998 roku przez EFF (Electronic Frontier Foundation) posłużono się już specjalnie do tego celu skonstruowanym komputerem wartości niecałych 250 tys. USD. Wykazała ona, że każdą zakodowaną w DES wiadomość można odszyfrować w dziewięć dni, zaś wiadomość konkursowa odkodowana została w niecałe trzy dni (jej treść brzmiała: \”Już czas na 128-, 192- i 256-bitowe szyfry\”).
W ostatniej edycji konkursu RSA Data Security\’s DES Challange III zwyciężyła organizacja distributed.net, która za pomocą superkomputera DeepCrack oraz przy udziale stu tysięcy użytkowników pecetów podłączonych do Internetu ustanowiła nowy rekord – 22 godziny i 15 minut. Treść utajnionej wiadomości brzmiała: \”See you in Rome (second AES Conference, March 22-23, 1999)\”.
DES potrojony
Próby ratowania pozycji DES na rynku poskutkowały opracowaniem algorytmu 3DES (Triple-DES). Dzięki wprowadzeniu operacji trzykrotnego użycia trzech różnych kluczy o długości 56 bitów, czas potrzebny na złamanie zaszyfrowanej wiadomości wydłuża się z kilku dni do bilionów lat.

IDEA (International Data Encryption Standard)
Opracowany w 1990 roku w Szwajcarii popularny algorytm szyfrowania danych. Znajduje zastosowanie m.in. w PGP.

RSA (Rivest – Shamir – Adleman)
Opracowany w 1977 roku przez Rona Rivesta, Adi Shamira i Leonarda Adlemana system kryptograficzny oparty na kluczu asymetrycznym. Może być wykorzystywany zarówno do szyfrowania jak i elektronicznego podpisywania dokumentów.
Prawa do algorytmu RSA posiada firma RSA Security Inc., udzielająca płatnej licencji na jego używanie w programach innych producentów (patent ważny jest jednak tylko w USA). RSA wkomponowany jest m.in. w dwie najważniejsze przeglądarki: Netscape Navigator oraz Internet Explorer.
Jak działa RSA?
Fundamentem RSA jest algorytm służący do generowania unikalnych i bezpiecznych (odpornych na próby odgadnięcia) par kluczy. Mnoży on dwie duże liczby pierwsze (podzielne tylko przez 1 i przez siebie) i z otrzymanego wyniku poprzez kilka innych dodatkowych operacji (szczegóły zostaną opisane w dalszej części artykułu) ustala klucz publiczny i zależny od niego klucz prywatny. Pierwszy z nich służy do szyfrowania wiadomości przeznaczonych dla właściciela kluczy i co za tym idzie powinien być jak najszerzej propagowany. Klucz prywatny jest tajny i tylko przy jego pomocy można odszyfrować to, co zostało zakodowane kluczem publicznym.
Przybliżenie zasad działania algorytmu RSA
Algorytm RSA bazuje na dwóch dostatecznie dużych liczbach pierwszych. Na podstawie tych liczb (oznaczonych dalej jako p i q) obliczane są dwie kolejne wartości: n oraz e, z których
n=p*q
e<n
i e jest liczbą względnie pierwszą (nie mającą żadnych wspólnych podzielników z wyjątkiem 1) do iloczynu:
(p-1)(q-1)
Ostatni etap to wyznaczenie takiej liczby d, że:
e*d jest podzielne przez (p-1)(q-1)
Od tego momentu liczby pierwsze p i q nie biorą udziału w obliczeniach i mogą zostać zniszczone. W dalszych operacjach korzysta się już z wyznaczonego klucza publicznego (para liczb n oraz e) i klucza prywatnego (para liczb n oraz d).
Chcąc uzyskać zaszyfrowaną postać s wiadomości tekstowej w należy przeprowadzić następującą operację dzielenia modulo z użyciem klucza publicznego:
s=w^e mod n
Deszyfrowanie odbywa się w podobny sposób, lecz tym razem w operacji bierze udział klucz prywatny:
w=s^d mod n
Przyjmując za wyjściowe p oraz q odpowiednio duże liczby pierwsze otrzymujemy szyfr odporny na złamanie.
Bezpieczeństwo RSA
Siła RSA wynika z faktu, iż odczytanie zakodowanej wiadomości wymaga rozłożenia wspomnianej wyżej, znanej liczby n na czynniki pierwsze. Przy dzisiejszym stanie nauk matematycznych i odpowiednio dużych liczbach jest to niezwykle trudne zadanie. Nawet największe superkomputery nie są w stanie wykonać go w rozsądnym czasie.
Algorytm RSA teoretycznie może wykorzystywać klucze dowolnej długości. Wysoki poziom bezpieczeństwa zapewniają klucze o długości 2048 bitów – i takie też najczęściej stosowane są w praktyce (dla porównania – 56 bitów dla algorytmu DES odpowiada 512 bitom dla RSA).
Naturalnie – można sobie wyobrazić, że w matematyce dochodzi do przełomowego odkrycia, które ukazuje nową, szybką metodę rozkładania dużych liczb na czynniki pierwsze. Wówczas opisywany algorytm oraz wykorzystujące go aplikacje staną się bezużyteczne. Sytuacja taka jest o tyle możliwa, że dotychczas nie dostarczono dowodu na to, iż metoda taka z pewnością nie istnieje.
RSA w praktyce
Poważną wadą algorytmu RSA jest jego wolne działanie. Z tego powodu stosuje się go zazwyczaj w połączeniu z innymi algorytmami, np. wspomnianym wcześniej DES, który operacje szyfrowania przeprowadza 1000 razy szybciej. W takich systemach hybrydowych DES służy do szyfrowania wiadomości, RSA natomiast koduje już tylko klucz używany w DES-ie. Klucz zamknięty w takiej elektronicznej kopercie może następnie zostać bezpiecznie przesłany kanałem nie zapewniającym poufności – np. przez Internet.
RSA wchodzi w skład wielu istniejących lub proponowanych standardów i protokołów sieciowych. Jest szeroko stosowany w komunikacji internetowej: poufnej poczcie elektronicznej i sygnowaniu dokumentów elektronicznymi podpisami, systemie PGP i protokołach SET, S/MIME, HTTPS oraz SSL.

cyfrowy certyfikat
Elektroniczny odpowiednik dowodu tożsamości. Cyfrowy certyfikat jest zapisywaną w pliku tekstowym porcją danych i stanowi rodzaj gwarancji przy wymianie informacji w Sieci. Potwierdza tożsamość osoby bądź organizacji, bezpieczeństwo serwera lub witryny, autentyczność programu, dokumentu, wiadomości e-mail, itp.
Cyfrowe certyfikaty tworzone są w oparciu o silne metody kryptograficzne zapewniając wysoki poziom pewności. Ich wydawaniem zajmują się Centra Certyfikacji (Certificate Authorities). Prestiż tych instytucji stanowi gwarancję prawdziwości certyfikatu.

Rodzaje certyfikatów
Konstrukcja certyfikatu
Procedura wydawania certyfikatów
Zarządzanie certyfikatami w przeglądarkach WWW
Rodzaje certyfikatów
Wśród cyfrowych certyfikatów można wyróżnić:
• Certyfikaty Urzędów Certyfikacji
• Certyfikaty serwerów.
• Certyfikaty osobiste
• Certyfikaty producentów oprogramowania
Przykładem zastosowania cyfrowego certyfikatu serwera może być płatny serwis internetowy wymagający od użytkownika podania numeru jego karty kredytowej. Transakcja taka może odbyć się tylko pod warunkiem istnienia pełnego zaufania do strony prowadzącej usługę, co możliwe jest dzięki certyfikatom. Jeżeli witryna posiada swój certyfikat, użytkownik w każdej chwili może sprawdzić jej autentyczność. Uzyskuje w ten sposób pewność, że połączył się z właściwą firmą lub instytucją wykluczając, nie zaś z podstawioną, fałszywą witryną, mającą na celu wykradanie ważnych danych.
Z kolei certyfikaty osobiste przydają się podczas wymiany informacji pocztą elektroniczną, gdzie sfałszowanie zwykłej wiadomości jest szczególnie łatwe. Dołączony do przesyłki e-mail certyfikat stanowi gwarancję, że dotarła ona niezmieniona oraz rzeczywiście została wysłana przez osobę podającą się za nadawcę.
Konstrukcja certyfikatu
Z cyfrowymi certyfikatami nieodłącznie związana jest niezwykle popularna w Internecie metoda szyfrowania opierająca się na ideiklucza publicznego. W rzeczywistości, certyfikaty zostały wprowadzone ze względu na jedyną wadę tej metody – możliwość wygenerowania kluczy i posługiwania się nimi przez podstawioną osobę (np. Jan Kowalski może utworzyć klucz na nazwisko Bill Clinton). Certyfikaty wykluczają taką możliwość, chroniąc klucze prywatne przed nieautoryzowanym użyciem przez osoby trzecie. Odbywa się to poprzez przyporządkowanie parze kluczy imienia i nazwiska właściciela oraz innych istotnych informacji identyfikujących.
Informacje, jakie najczęściej umieszczane są w poświadczeniu autentyczności to m.in.:
• nazwa użytkownika, organizacji bądź serwera, dla których certyfikat został wystawiony
• dodatkowe informacje (np. adres)
• klucz publiczny właściciela certyfikatu
• nazwa instytucji, która wydała certyfikat (np. VeriSign, AT&T, GTE)
• unikalny numer seryjny certyfikatu
• okres ważności
• cyfrowy podpis wydawcy certyfikatu
Chociaż sam certyfikat jest jawny, to za sprawą kryptografii asymetrycznej nie jest możliwe korzystanie z niego bez posiadania klucza prywatnego powiązanego z zawartym w certyfikacie kluczem publicznym. Klucz prywatny jest dodatkowo chroniony hasłem. Z kolei, ponieważ klucz publiczny instytucji certyfikującej jest powszechnie dostępny, można za jego pomocą sprawdzić autentyczność certyfikatu.
Procedura wydawania certyfikatów
Certyfikaty wydawane są przez wyspecjalizowane instytucje publicznego zaufania – Urzędy Certyfikacyjne. Wydanie certyfikatu poprzedzone jest wieloma, niekiedy bardzo rygorystycznymi czynnościami mającymi na celu potwierdzenie tożsamości osoby bądź instytucji, dla której wydawany jest certyfikat.
Przeglądarki firm Netscape i Microsoft posiadają wbudowane listy urzędów, pozwalając także uzyskać sam certyfikat. Po wygenerowaniu w przeglądarce niepowtarzalnej pary kluczy, do wybranego urzędu przesyłany jest klucz publiczny. Po sprawdzeniu tożsamości osoby starającej się o certyfikat i uzyskaniu pewności, że zamówienie pochodzi rzeczywiście od niej (procedura wygląda różnie w przypadku każdego urzędu), urząd wystawia indywidualny certyfikat – powiązany wewnętrznie z danym kluczem publicznym. Zostaje on zapisany w przeglądarce i jest gotowy do użycia.
Zarządzanie certyfikatami w przeglądarkach WWW
Większość współczesnych przeglądarek umożliwia wygodne posługiwanie się certyfikatami. Aby obejrzeć ich aktualny zbiór w Internet Explorerze, należy:
• W menu Widok wybrać polecenieOpcje internetowe
• Uaktywnić kartę Zawartość
• W obszarze Certyfikaty kliknąć jeden z przycisków:Osobiste,Witryny lub Wydawcy.
Z kolei w przeglądarce Netscape Navigator należy:
• W menu Communicator wybrać polecenieSecurity info lub kliknąć przyciskShow security Information na pasku narzędzi.
• W otwartym oknie, w menu Certificates wskazać jedną z pozycji:Yours, People, Web Sites, Signers, aby przejść do odpowiedniej kategorii certyfikatów.
• Zaznaczyć certyfikat i kliknąć przycisk Edit w celu zapoznania się ze szczegółami.
elektroniczny podpis
Oznaczenie dokumentu poświadczające jego autentyczność.
Cyfrowy podpis powstaje w oparciu o kryptografię niesymetryczną i służyć może do:
• potwierdzenia nadawcy dokumentu (upewnienia się, że nikt się pod niego nie podszywa)
• upewnienia się, co do integralności dokumentu (czyli, że po podpisaniu i wysłaniu przez nadawcę nie został przez nikogo zmodyfikowany przed dotarciem do adresata)
• zidentyfikowania nadawcy (nie może się wyprzeć się autorstwa dokumentu)
Elektroniczne podpisy stosowane są najczęściej w korespondencji elektronicznej, która wymaga całkowitej pewności, że przekazywane informacje nie zostały zmienione (zafałszowane) i że pochodzą od osoby podającej się za nadawcę. Jeżeli treść wiadomości jest poufna, dodatkowo zastosować można również szyfrowanie. Przykładem zastosowań elektronicznych podpisów jest transmisji danych między klientem a bankiem w usługach typu homebanking lub przekazywanie dokumentów drogą elektroniczną w systemie informatycznym ZUS.
Konstrukcja cyfrowego podpisu
Elektroniczny podpis tworzony jest poprzez poddanie tekstu wiadomości działaniu specjalnej funkcji mieszającej, w wyniku której generowany jest tzw. skrót wiadomości. Skrót ten ma postać krótkiego, unikalnego kodu właściwego tylko danemu fragmentowi tekstu; algorytm mieszający jest tak skonstruowany, iż praktycznie niemożliwe jest znalezienie dwóch różnych wiadomości legitymujących się tym samym skrótem.
W drugim etapie skrót zostaje zaszyfrowany kluczem prywatnym nadawcy. To właśnie ta poracja danych umieszczona w dokumencie funkcjonuje jako jego elektroniczny podpis. Z jednej strony gwarantuje, iż dokument nie został zmodyfikowany (funkcja mieszająca daje ten sam rezultat), z drugiej – że nikt nie podszył się pod nadawcę (ponieważ daje się odczytać jego kluczem publicznym).
ta wiadomość została podpisana elektronicznie
—–BEGIN PGP SIGNATURE—–
Version: PGPfreeware 5.5.3i for non-commercial use
iQA/AwUANhKZHRWs+uwfvHuYEQL
hugCgqVbDyFcb0NxGN+GA wm
vVunIZ 1kcAoIYr SdAUTBzIyYD
qrFnr7tJpstvv =SflM
—–END PGP SIGNATURE—–
Wiadomość z dołączonym cyforwym podpisem (PGP)

autoryzacja
Proces polegający na przydzielaniu (bądź odmowie) praw dostępu do poszczególnych danych, usług lub funkcji systemu klientowi (użytkownikowi lub programowi). Autoryzacja następuje najczęściej na podstawie przeprowadzonego uprzednio uwierzytelnienia klienta.

brute-force attack
metoda siłowa
Także: brute-force search, exhaustive key search.
Atak na zasadzie pełnego przeglądu. Technika rozwiązywania złożonych problemów metodą analizowania każdego z możliwych wyników. W szczególności: omijanie zabezpieczeń systemu poprzez podejmowanie prób zalogowania się z pomocą każdego dopuszczalnego hasła.
Metoda siłowa znajduje zastosowanie m.in. w kryptoanalizie, gdzie w połączeniu z technikami komputerowymi bywa skutecznym (choć mało wyrafinowanym) sposobem łamania szyfrów. Efektywność techniki zależy przede wszystkim od złożoności algorytmu szyfrowania, długości klucza szyfrującego oraz wydajności systemu komputerowego.
Postęp technologiczny i co za tym idzie rosnąca moc komputerów sprawia, że metody szyfrowania opracowane jeszcze kilkanaście lat temu łatwo \”padają\” pod naporem wyspecjalizowanych komputerów PC (często dla zyskania większej mocy obliczeniowej połączonych w sieć). Udowodniono, że stosowany jeszcze do dzisiaj algorytm DES z 56-bitowym kluczem może zostać złamany metodą brute-force w przeciągu kilku dni przy pomocy średniej mocy komputera.