Zarys algorytmów kryptograficznych

Podobne dokumenty
Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 5

n = p q, (2.2) przy czym p i q losowe duże liczby pierwsze.

Zastosowanie teorii liczb w kryptografii na przykładzie szyfru RSA

Algorytmy asymetryczne

INŻYNIERIA BEZPIECZEŃSTWA LABORATORIUM NR 2 ALGORYTM XOR ŁAMANIE ALGORYTMU XOR

Kryptografia-0. przykład ze starożytności: około 489 r. p.n.e. niewidzialny atrament (pisze o nim Pliniusz Starszy I wiek n.e.)

Copyright by K. Trybicka-Francik 1

Podstawy systemów kryptograficznych z kluczem jawnym RSA

Copyright by K. Trybicka-Francik 1

RSA. R.L.Rivest A. Shamir L. Adleman. Twórcy algorytmu RSA

Bezpieczeństwo systemów komputerowych

Wykład VI. Programowanie III - semestr III Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Bezpieczeństwo danych, zabezpieczanie safety, security

Zamiana porcji informacji w taki sposób, iż jest ona niemożliwa do odczytania dla osoby postronnej. Tak zmienione dane nazywamy zaszyfrowanymi.

Zadanie 1: Protokół ślepych podpisów cyfrowych w oparciu o algorytm RSA

LICZBY PIERWSZE. Jan Ciurej Radosław Żak

Szyfrowanie RSA (Podróż do krainy kryptografii)

Szyfrowanie informacji

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 9

LICZBY PIERWSZE. 14 marzec Jeśli matematyka jest królową nauk, to królową matematyki jest teoria liczb. C.F.

Wykład IV. Kryptografia Kierunek Informatyka - semestr V. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej

WSIZ Copernicus we Wrocławiu

PuTTY. Systemy Operacyjne zaawansowane uŝytkowanie pakietu PuTTY, WinSCP. Inne interesujące programy pakietu PuTTY. Kryptografia symetryczna

2 Kryptografia: algorytmy symetryczne

Wykład VII. Kryptografia Kierunek Informatyka - semestr V. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej

Wybrane zagadnienia teorii liczb

Spis treści. Przedmowa... 9

Algorytmy podstawieniowe

Kryptografia szyfrowanie i zabezpieczanie danych

PROBLEMATYKA BEZPIECZEŃSTWA SIECI RADIOWYCH Algorytm szyfrowania AES. Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Seminarium Ochrony Danych

II klasa informatyka rozszerzona SZYFROWANIE INFORMACJI

Bezpieczeństwo systemów komputerowych. Algorytmy kryptograficzne (1) Algorytmy kryptograficzne. Algorytmy kryptograficzne BSK_2003

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 14, Kryptografia: algorytmy asymetryczne (RSA)

Kryptografia systemy z kluczem publicznym. Kryptografia systemy z kluczem publicznym

Kryptologia przykład metody RSA

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 15, Kryptografia: algorytmy asymetryczne (RSA)

Informatyka kwantowa. Zaproszenie do fizyki. Zakład Optyki Nieliniowej. wykład z cyklu. Ryszard Tanaś. mailto:tanas@kielich.amu.edu.

Czym jest kryptografia?

Systemy Operacyjne zaawansowane uŝytkowanie pakietu PuTTY, WinSCP. Marcin Pilarski

Algorytmy podstawieniowe

Scenariusz lekcji. wymienić różnice pomiędzy kryptologią, kryptografią i kryptoanalizą;

Laboratorium nr 1 Szyfrowanie i kontrola integralności

Laboratorium nr 3 Podpis elektroniczny i certyfikaty

BSK. Copyright by Katarzyna Trybicka-Fancik 1. Bezpieczeństwo systemów komputerowych. Podpis cyfrowy. Podpisy cyfrowe i inne protokoły pośrednie

Bezpieczeństwo systemów komputerowych. Metody łamania szyfrów. Kryptoanaliza. Badane własności. Cel. Kryptoanaliza - szyfry przestawieniowe.

Bezpieczeństwo systemów komputerowych. Kryptoanaliza. Metody łamania szyfrów. Cel BSK_2003. Copyright by K.Trybicka-Francik 1

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 7

PROBLEMATYKA BEZPIECZEŃSTWA SIECI RADIOWYCH Algorytm szyfrowania AES. Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Wasze dane takie jak: numery kart kredytowych, identyfikatory sieciowe. kradzieŝy! Jak się przed nią bronić?

Laboratorium nr 5 Podpis elektroniczny i certyfikaty

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 8

Opis efektów kształcenia dla modułu zajęć

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 1

Parametry systemów klucza publicznego

Bezpieczeństwo w sieci I. a raczej: zabezpieczenia wiarygodnosć, uwierzytelnianie itp.

Marcin Szeliga Dane

Dr inż. Robert Wójcik, p. 313, C-3, tel Katedra Informatyki Technicznej (K-9) Wydział Elektroniki (W-4) Politechnika Wrocławska

Ataki na RSA. Andrzej Chmielowiec. Centrum Modelowania Matematycznego Sigma. Ataki na RSA p. 1

PRZEWODNIK PO PRZEDMIOCIE

Algorytmy i struktury danych. Wykład 4

Hosting WWW Bezpieczeństwo hostingu WWW. Dr Michał Tanaś (

Praktyczne aspekty wykorzystania nowoczesnej kryptografii. Wojciech A. Koszek

Wprowadzenie do technologii VPN

Załóżmy, że musimy zapakować plecak na wycieczkę. Plecak ma pojemność S. Przedmioty mają objętości,,...,, których suma jest większa od S.

Authenticated Encryption

2.1. System kryptograficzny symetryczny (z kluczem tajnym) 2.2. System kryptograficzny asymetryczny (z kluczem publicznym)

SCHEMAT ZABEZPIECZENIA WYMIANY INFORMACJI POMIĘDZY TRZEMA UŻYTKOWNIKAMI KRYPTOGRAFICZNYM SYSTEMEM RSA

Zastosowania informatyki w gospodarce Wykład 5

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 11

Przewodnik użytkownika

Wykład VIII. Systemy kryptograficzne Kierunek Matematyka - semestr IV. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Algorytm. a programowanie -

urządzenia: awaria układów ochronnych, spowodowanie awarii oprogramowania

Zadanie 1. Potęgi (14 pkt)

kryptografię (z gr. κρυπτός oraz γράφω gráfo pisać ), czyli gałąź wiedzy o utajnianiu wiadomości;

Bezpieczeństwo w Internecie

Wykład 4 Bezpieczeństwo przesyłu informacji; Szyfrowanie

Wykład 4. Określimy teraz pewną ważną klasę pierścieni.

Zegar ten przedstawia reszty z dzielenia przez 6. Obrazuje on jak kolejne liczby można przyporządkować do odpowiednich pokazanych na zegarze grup.

Wprowadzenie do zagadnień bezpieczeńśtwa i kryptografii

Kryptografia na procesorach wielordzeniowych

Laboratorium Kryptografia część I

Metody szyfrowania danych

KAMELEON.CRT OPIS. Funkcjonalność szyfrowanie bazy danych. Wtyczka kryptograficzna do KAMELEON.ERP. Wymagania : KAMELEON.ERP wersja

Systemy Mobilne i Bezprzewodowe laboratorium 12. Bezpieczeństwo i prywatność

Wprowadzenie ciag dalszy

KRYPTOGRAFIA ASYMETRYCZNA I JEJ ZASTOSOWANIE

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 6a

ŁAMIEMY SZYFR CEZARA. 1. Wstęp. 2. Szyfr Cezara w szkole. Informatyka w Edukacji, XV UMK Toruń, 2018

Wykład 5. Podwójny algorytm DES. Podwójny algorytm DES. Podwójny algorytm DES. Podwójny algorytm DES. Podwójny algorytm DES

KUS - KONFIGURACJA URZĄDZEŃ SIECIOWYCH - E.13 ZABEZPIECZANIE DOSTĘPU DO SYSTEMÓW OPERACYJNYCH KOMPUTERÓW PRACUJĄCYCH W SIECI.

Wprowadzenie do PKI. 1. Wstęp. 2. Kryptografia symetryczna. 3. Kryptografia asymetryczna

Zadanie 1. Zmiana systemów. Zadanie 2. Szyfr Cezara. Zadanie 3. Czy liczba jest doskonała. Zadanie 4. Rozkład liczby na czynniki pierwsze Zadanie 5.

Plan całości wykładu. Ochrona informacji 1

Projekt AS KOMPETENCJI jest współfinansowany przez Unię Europejską w ramach środków Europejskiego Funduszu Społecznego

Laboratorium. Szyfrowanie algorytmami Vernam a oraz Vigenere a z wykorzystaniem systemu zaimplementowanego w układzie

Kryptografia publiczna (asymetryczna) Szyfrowanie publiczne (asym) Problem klucza publicznego. Podpisujemy cyfrowo. Jak zweryfikować klucz publiczny?

Sieci komputerowe. Wykład 9: Elementy kryptografii. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2016/2017

Transkrypt:

Zarys algorytmów kryptograficznych Laboratorium: Algorytmy i struktury danych Spis treści 1 Wstęp 1 2 Szyfry 2 2.1 Algorytmy i szyfry........................ 2 2.2 Prosty algorytm XOR...................... 3 2.3 Algorytm RSA.......................... 4 2.4 Przykład zastosowania algorytmu RSA............. 5 3 Algorytm Euklidesa 6 4 Ćwiczenia do wykonania 6 1 Wstęp Ćwiczenie ma na celu zapoznanie studentów z pojęciem kryptografii oraz kilkoma podstawowymi metodami szyfrowania. Szczególną uwagę zwraca się na implementację algorytmu RSA. Aby wykonać ćwiczenie należy rozpocząć od następujących definicji: Kryptografią nazywamy sztukę zabezpieczania wiadomości, której przeciwieństwem jest kryptoanaliza zajmująca się łamaniem szyfrów, tzn. odczytywania wiadomości pomimo maskowania. Tekst jawny oznaczamy literą P. może nim być ciąg bitów, plik tekstowy, ciąg próbek głosu lub cyfrowy obraz wideo. Dla komputerów P to po prostu dane binarne. tekst jawny może być przeznaczony do przesyłania lub do zapamiętania. W każdym przypadku P jest wiadomością do zaszyfrowania. Szyfrogram oznaczamy literą C. Szyfrogram to również dane binarne, czasami o tej samej wielkości co P, czasami większe. (W przypadku połączenia szyfrowania z kompresją, wielkość C może być mniejsza od P. Jednakże zastosowanie wyłącznie szyfrowania nie da takiego efektu). Funkcja szyfrująca 1

Edziała na P i w wyniku daje C: E(P ) = C (1) W procesie odwrotnym, funkcja deszyfrująca D działa na C i daje w wyniku P : D(C) = P (2) Celem szyfrowania i późniejszego deszyfrowania jest otrzymanie tekstu jawnego, dlatego też musi być spełniona następująca zależność: D(E(P )) = P (3) 2 Szyfry 2.1 Algorytmy i szyfry Algorytm kryptograficzny, zwany również szyfrem (ang. cipher), jest funkcją matematyczną użytą do szyfrowania i deszyfrowania. Do zaszyfrowania tekstu jawnego jest stosowany algorytm szyfrujący (ang. encryption algorithm), a do deszyfrowania szyfrogramu algorytm deszyfrujący (ang. decryption algorithm). Jeżeli zabezpieczenie zastosowane w algorytmie jest oparte na utrzymaniu w tajemnicy istoty tego algorytmu, to mówimy o algorytmie ograniczonym (ang. restricted algorithm). We wszystkich nowoczesnych algorytmach, dzięki zastosowaniu klucza (oznaczanego literą k), jest zapewnione prawdziwe bezpieczeństwo. klucz może przyjąć jedną z wielu wartości (najkorzystniejsze są wartości bardzo duże). żakres wartości, które może przyjąć klucz, nazywamy przestrzenią klucza (ang. keyspace). Wartość klucza wpływa na funkcję szyfrującą i deszyfrującą. Funkcje te przyjmują wtedy postać: E k (P ) = C (4) D k (C) = P (5) Jeżeli klucze szyfrujący i deszyfrujący są takie same, to D k (E k (P )) = P (6) Opracowano również algorytmy, w których stosuje się pary kluczy: szyfrujący i deszyfrujący. Oznacza to, że klucz szyfrujący k E jest inny niż odpowiadający mu klucz deszyfrujący k D. W takim przypadku: E ke (P ) = C (7) 2

D kd (C) = P (8) D kd (E ke (P )) = P (9) Wśród wielu algorytmów kryptograficznych najczęściej stosowane są trzy: DES (ang. Data Encryption Standard) obecnie najpopularniejszy komputerowy algorytm szyfrujący. Jest to standardowy algorytm szyfrujący rządu USA, został przyjęty przez armię USA do szyfrowania informacji nie utajnionej, ale ważnej. Jest to algorytm symetryczny, z tym samym kluczem używanym do szyfrowania i deszyfrowania. RSA (nazwa jest złożeniem pierwszych liter nazwisk autorów Rivest, Shamir i Adleman) najpopularniejszy algorytm z kluczem jawnym. Może być zastosowany zarówno do szyfrowania, jak i do podpisów cyfrowych. DSA (ang. Digital Signature Algorithm), zastosowany w DSS ang. Digital Signature Standard inny niż RSA algorytm z kluczem jawnym, ale może być stosowany tylko do podpisów cyfrowych. 2.2 Prosty algorytm XOR Jest to algorytm symetryczny. Szyfrogram jest wynikiem binarnego sumowania modulo 2 tekstu jawnego z kluczem. Ten sam klucz może być stosowany do szyfrowania i deszyfrowania, ponieważ dwukrotne sumowanie modulo 2 tej samej wartości daje w wyniku tę wartość. P k = C (10) C k = P (11) (P k) k = P (12) Stosowanie tego algorytmu nie daje żadnego bezpieczeństwa. teksty zaszyfrowane z wykorzystaniem tego algorytmu łatwo odczytać, nawet bez komputera. Użycie komputera umożliwia łamanie szyfru w ciągu kilku minut. Szyfr XOR można złamać w następujący sposób: 1. Rozpoznanie długości klucza dokonuje się stosując procedurę zwaną zliczaniem koincydencji. polega ona na sumowaniu modulo 2 szyfrogramu z samym sobą dla kolejnych wzajemnych przesunięć i zliczaniu jednakowych bajtów. Jeśli dwa fragmenty szyfrogramu były zaszyfrowane tym samym kluczem, to nieco ponad 6% bajtów będzie jednakowych. jeżeli były szyfrowane różnymi kluczami, to mniej niż 0, 4% będzie jednakowych (zakładając przypadkowy klucz do szyfrowania zwykłego tekstu ASCII; inne teksty jawne charakteryzują się innymi parametrami). Najmniejsze z przesunięć wskazujące na jednakową długość klucza jest długością klucza. 3

2. Cyklicznie przesunięcie szyfrogramu o długości klucza i sumowanie modulo 2 z szyfrogramem nie przesuniętym powoduje usunięcie klucza i daje tekst jawny zsumowany modulo 2 z przesuniętym tekstem jawnym. tekst angielski zawiera ok. jednego bita informacji na bajt, jest to nadmiarowość pozwalająca dokonać jednoznacznego deszyfrowania. Pomimo łatwości złamania tego szyfru lista dostawców oprogramowania, których wmawia się klientom, iż ten typ algorytmu jest prawie tak bezpieczny jak DES, jest oszałamiająca. W ten sposób można uchronić swój plik przed młodszą siostrą, ale na pewno nie uchroni się go przed kryptografem na dłużej niż kilka minut. 2.3 Algorytm RSA Nazwany od nazwisk trzech jego odkrywców, Rona Rivesta, Adi Shamira i Leonarda Adelmana, którzy pierwsi wprowadzili algorytm w 1978 r., wytrzymał od tego czasu lata intensywnej kryptoanalizy. Chociaż kryptoanaliza ani nie udowodniła, ani nie zdyskwalifikowała bezpieczeństwa algorytmu RSA, jednak sugeruje poziom zaufania w teoretycznych ocenach algorytmu. Zabezpieczenie dawane przez RSA wynika z trudności faktoryzacji dużych liczb. Klucze jawne i prywatne są funkcjami pary dużych (100 do 200 cyfr lub nawet dłuższych) liczb pierwszych. Przypuszcza się, że uzyskanie tekstu jawnego przy znajomości jednego z tych kluczy i szyfrogramu jest równoważne faktoryzacji iloczynu tych dwóch liczb pierwszych. Kroki potrzebne do zaszyfrowania i odszyfrowania tekstu jawnego można przedstawić następująco: 1. Wybieramy dwie duże liczby pierwsze p i q (czym więcej cyfr w każdej z nich tym lepiej). 2. Wyznaczamy iloczyn n n = pq (13) 3. Losowo wybieramy klucz szyfrujący (najlepiej liczbę pierwszą) e. 4. Korzystając z algorytmu Euklidesa wyznaczamy klucz deszyfrujący d d = e 1 mod ((p 1)(q 1)) (14) 5. Dzielimy informację na bloki o rozmiarze s gdzie dla danych w postaci binarnej wybieramy największą potęgę 2 mniejszą od n. Oznacza to, że jeżeli p i q są liczbami pierwszymi o 100 cyfrach to ich iloczyn n będzie miał mniej niż 200, a każdy blok wiadomości m i powinien mieć długość s mniejszą od 200. Zaszyfrowana wiadomość c będzie utworzona z bloków c i, o podobnych długościach. 6. Poszczególne bloki szyfrujemy zgodnie ze wzorem: c i = m e i mod n (15) 4

7. W celu odszyfrowania wiadomości, bierzemy każdy zaszyfrowany blok c i i obliczamy : m i = c d i mod n (16) 2.4 Przykład zastosowania algorytmu RSA Jeżeli p = 47 i q = 71, to n = pq = 3337 Klucz szyfrujący e nie może mieć wspólnych czynników z: (p 1)(q 1) = 46 70 = 3220 Losowo wybierając liczbę e o wartości 79. W tym przypadku d = 79 1 mod 3220 = 1019 Liczba ta była obliczona przy wykorzystaniu rozszerzonego algorytmu Euklidesa. Liczby e i n publikujemy, natomiast d utajniamy. Liczby p i q wymazujemy. W celu zaszyfrowania wiadomości m = 6882326879666683 najpierw dzielimy ją na małe bloki. Trzycyfrowe bloki będą tutaj najlepsze. Wiadomość będzie zaszyfrowana w sześciu blokach m i, równych: Pierwszy blok jest zaszyfrowany jako i Wartość 1 688 2 232 3 687 4 966 5 668 6 3 688 79 mod 3337 = 1570 = c 1 Po wykonaniu tych samych operacji na kolejnych blokach otrzymujemy zaszyfrowaną wiadomość c = 15702756209122762423158 Odszyfrowanie wiadomości wymaga wykonania tego samego potęgowania przy użyciu klucza deszyfrującego o wartości 1019. Tak więc 1570 1019 mod 3337 = 688 = m 1 Pozostała część wiadomości może być odzyskana w ten sam sposób. 5

3 Algorytm Euklidesa Algorytm Euklidesa służy do wyznaczania największego wspólnego dzielnika dwóch liczb a i b. Wyznaczenie największego wspólnego dzielnika odbywa się według następującego algorytmu: 1. Wyznacz resztę r z dzielenia liczby a przez liczbę b. 2. Podstaw b za a. 3. Podstaw r za b. 4. Jeśli reszta z dzielenia r jest niezerowa wykonaj ponownie od kroku 1. W przeciwnym przypadku a jest największym wspólnym dzielnikiem. 4 Ćwiczenia do wykonania 1. Utworzyć schemat blokowy i zaimplementować program dokonujący szyfrowania i deszyfrowania prostym algorytmem XOR. 2. Wykonać kryptoanalizę wcześniej wygenerowanych przy pomocy prostego algorytmu XOR szyfrogramów. 3. Utworzyć schemat blokowy i zaimplementować program dokonujący szyfrowania i deszyfrowania prostym algorytmem RSA. 4. Sprawozdanie powinno zawierać: Schematy blokowe. Listingi najważniejszych partii programu. Wyniki testów (teksty jawne, szyfrogramy, klucze, itp.). Bibliografia [1] Bruce Schneier: Kryptografia dla praktyków protokoły, algrytmy i programy źródłowe w języku C, Wydawnictwa Naukowo-Techniczne, Warszawa, 1995. 6