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



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

Podstawy systemów kryptograficznych z kluczem jawnym RSA

Algorytmy asymetryczne

Zastosowanie teorii liczb w kryptografii na przykładzie szyfru RSA

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

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.

Zarys algorytmów kryptograficznych

Copyright by K. Trybicka-Francik 1

Copyright by K. Trybicka-Francik 1

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

Szyfrowanie RSA (Podróż do krainy kryptografii)

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

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

Kryptologia przykład metody RSA

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

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

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

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

Parametry systemów klucza publicznego

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

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

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

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

Kryptografia systemy z kluczem publicznym. Kryptografia systemy z kluczem publicznym

Metoda Lenstry-Shora faktoryzacji dużych liczb całkowitych

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

Wybrane zagadnienia teorii liczb

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

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

Matematyka dyskretna. Wykład 11: Kryptografia z kluczem publicznym. Gniewomir Sarbicki

Rozdział 4. Macierze szyfrujące. 4.1 Algebra liniowa modulo 26

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott

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

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

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

Zadanie 1. Potęgi (14 pkt)

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

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

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

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.

Kryptografia systemy z kluczem tajnym. Kryptografia systemy z kluczem tajnym

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

2 Kryptografia: algorytmy symetryczne

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

Spis treści. Przedmowa... 9

Efektywność Procedur Obliczeniowych. wykład 5

Post-kwantowy algorytm podpisu cyfrowego Kryptosystem NTRU

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

Wykład 1. Na początku zajmować się będziemy zbiorem liczb całkowitych

Liczby pierwsze na straży tajemnic

WSIZ Copernicus we Wrocławiu

Algorytmy i struktury danych.

Matematyka dyskretna - wykład - część Podstawowe algorytmy kombinatoryczne

LICZBY PIERWSZE. Jan Ciurej Radosław Żak

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.)

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

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

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

Wykład 8. Informatyka Stosowana. 26 listopada 2018 Magdalena Alama-Bućko. Informatyka Stosowana Wykład , M.A-B 1 / 31

1. Liczby wymierne. x dla x 0 (wartością bezwzględną liczby nieujemnej jest ta sama liczba)

Współczesna kryptografia schematy bazujące na parowaniu punktów krzywej eliptycznej

Matematyka dyskretna

Bezpieczeństwo systemów komputerowych

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

Bezpieczeństwo danych, zabezpieczanie safety, security

Treść wykładu. Pierścienie wielomianów. Dzielenie wielomianów i algorytm Euklidesa Pierścienie ilorazowe wielomianów

Przewodnik użytkownika

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

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

Pendolinem z równaniami, nierównościami i układami

Rozdział 6. Pakowanie plecaka. 6.1 Postawienie problemu

Wymagania edukacyjne z matematyki klasa II technikum

Matematyka dyskretna dla informatyków

II klasa informatyka rozszerzona SZYFROWANIE INFORMACJI

Bezpieczeństwo systemów komputerowych

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

Matura próbna 2014 z matematyki-poziom podstawowy

Algorytmy i struktury danych. Wykład 4

7. CIĄGI. WYKŁAD 5. Przykłady :

Uczeń: -podaje przykłady ciągów liczbowych skończonych i nieskończonych oraz rysuje wykresy ciągów

Funkcja kwadratowa. f(x) = ax 2 + bx + c = a

Seminarium Ochrony Danych

Przykładowe rozwiązania

Podstawowe struktury algebraiczne

Prawdopodobieństwo i statystyka

Zadania do samodzielnego rozwiązania

Elementy logiki matematycznej

Matematyka dyskretna

FUNKCJE. (odwzorowania) Funkcje 1

Rekurencja. Rekurencja zwana także rekursją jest jedną z najważniejszych metod konstruowania rozwiązań i algorytmów.

Zasada indukcji matematycznej

Wykład z równań różnicowych

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

jest ciągiem elementów z przestrzeni B(R, R)

0 --> 5, 1 --> 7, 2 --> 9, 3 -->1, 4 --> 3, 5 --> 5, 6 --> 7, 7 --> 9, 8 --> 1, 9 --> 3.

Zadanie 3 Oblicz jeżeli wiadomo, że liczby 8 2,, 1, , tworzą ciąg arytmetyczny. Wyznacz różnicę ciągu. Rozwiązanie:

Funkcje wymierne. Jerzy Rutkowski. Działania dodawania i mnożenia funkcji wymiernych określa się wzorami: g h + k l g h k.

Podstawy programowania 2. Temat: Funkcje i procedury rekurencyjne. Przygotował: mgr inż. Tomasz Michno

Indukcja matematyczna

Transkrypt:

Wykład VII Kierunek Informatyka - semestr V Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik

Problem pakowania plecaka System kryptograficzny Merklego-Hellmana

Pakowanie plecaka Niech V będzie pojemnością plecaka. Mamy k przedmiotów o objętościach {v 1, v 2,..., v k }. Przypuśćmy, że potrafimy zapakować plecak bez wolnego miejsca jakimś różnymi elementami należącymi do pewnego podzbioru powyższego zbioru, tzn. istnieje I {1, 2,..., k} taki, że V = i I v i.

Problem pakowania plecaka Dany jest k-elementowy zbiór liczb naturalnych {v 0, v 1,..., v k 1 } oraz liczba naturalna V. Znaleźć liczbę k-bitową (b k 1 b k 2... b 1 b 0 ), b i {0, 1} taką, że k 1 V = b i v i, i=0 lub udowodnić, że taka k-bitowa liczba nie istnieje.

Problem pakowania plecaka Problem pakowania plecaka może mieć: tylko jedno rozwiązanie skończoną ilość rozwiązań, większą niż jeden, nie mieć rozwiązania.

Algorytm trywialny 1 Generujemy wszystkie k-bitowe liczby, np. jako binarne reprezentacje liczb ze zbioru {0, 1,..., 2 k 1}. 2 Dla każdej liczby (b k 1 b k 2... b 1 b 0 ) sprawdzamy, czy spełnia równość k 1 V = b i v i, 3 Jeżeli ta równość jest prawdziwa dla pewnej liczby k-bitowej, to mamy jedno rozwiązanie. i=0 4 Jeżeli dla wszystkich liczb k-bitowych równość nie jest prawdziwa, to rozwiązanie nie istnieje.

Algorytm trywialny 1 Generujemy wszystkie k-bitowe liczby, np. jako binarne reprezentacje liczb ze zbioru {0, 1,..., 2 k 1}. 2 Dla każdej liczby (b k 1 b k 2... b 1 b 0 ) sprawdzamy, czy spełnia równość k 1 V = b i v i, 3 Jeżeli ta równość jest prawdziwa dla pewnej liczby k-bitowej, to mamy jedno rozwiązanie. i=0 4 Jeżeli dla wszystkich liczb k-bitowych równość nie jest prawdziwa, to rozwiązanie nie istnieje. Wniosek: Dla k-bitowej liczby pesymistycznie trzeba wykonać 2 k sprawdzeń. Zatem problem ten jest trudny z punktu widzenia obliczeń praktycznych dla dużych k.

Ciąg superrosnący Definicja Ciąg liczb a 0, a 1,..., a k 1 takich, że a 0 a 1... a k 1 nazywamy ciągiem superrosnącym jeżeli a 1 a 0 a 2 a 1 + a 0 a 3 a 2 + a 1 + a 0. a k 1 a k 2 +... + a 0

Przykład Ciąg liczb jest ciągiem superrosnącym. 2, 3, 7, 15, 31

Łatwy problem pakowania plecaka Problem pakowania plecaka dla ciągu liczb naturalnych v 0, v 1,..., v k 1 oraz liczby naturalnej V nazywamy łatwym problemem pakowania plecaka jeżeli ciąg v 0, v 1,..., v k 1 jest ciągiem superrosnącym.

Algorytm rozwiązywania łatwego problemu pakowania plecaka Dany jest ciąg superrosnący v 0, v 1,..., v k 1 oraz liczba naturalna V. Niech I =. 1 Przeglądamy liczby v 0, v 1,..., v k 1 począwszy od największej tak długo, aż natrafimy na liczbę nie większą od V. Niech to będzie liczba v k1. 2 Dołączamy k 1 do zbioru I. Zastępujemy V przez V 1 = V v k1 i przechodzimy do punktu 1) 3 Jeżeli dla pewnego s mamy V s = V s 1 V ks = 0 to otrzymaliśmy rozwiązanie V = v k1 + v k2 +... + v ks = i I v i. Jeżeli takie rozwiązanie nie istnieje, to dojdziemy do k s = 0 i V s v ks > 0.

Przykład 1. Niech V = 24 oraz dany jest ciąg 2, 3, 7, 15, 31

Przykład 1. Niech V = 24 oraz dany jest ciąg 2, 3, 7, 15, 31 b 4 b 3 b 2 b 1 b 0

Przykład 1. Niech V = 24 oraz dany jest ciąg 2, 3, 7, 15, 31 b 4 b 3 b 2 b 1 b 0 31 31 > 24 b 0 = 0 15 24 15 = 9 b 1 = 1 7 9 7 = 2 b 2 = 1 3 3 > 2 b 3 = 0 2 2 2 = 0 b 4 = 1

Przykład 1. Niech V = 24 oraz dany jest ciąg 2, 3, 7, 15, 31 b 4 b 3 b 2 b 1 b 0 31 31 > 24 b 0 = 0 15 24 15 = 9 b 1 = 1 7 9 7 = 2 b 2 = 1 3 3 > 2 b 3 = 0 2 2 2 = 0 b 4 = 1 Rozwiązanie: V = 15 + 7 + 2.

Przykład 2. Niech V = 37 oraz dany jest ciąg 2, 3, 7, 15, 31 b 4 b 3 b 2 b 1 b 0 31 37 31 = 6 b 0 = 1 15 15 > 6 b 1 = 0 7 7 > 6 b 2 = 0 3 6 3 = 3 b 3 = 1 2 3 2 = 1 b 4 = 1 Brak rozwiązania, gdyż ostatnia różnica nie dała zera.

System kryptograficzny Merklego-Hellmana Ten system kryptograficzny został zaproponowany przez Ralpha Merkle oraz Martina Hellmana w 1978 roku. Był to jeden z najwcześniejszych systemów z kluczem publicznym. Jego główny zaletą jest zdecydowanie mniejszy koszt obliczeniowy szyfrowania i deszyfrowania niż w RSA

System kryptograficzny Merklego-Hellmana Odpowiedniki liczbowe jednostek tekstu jawnego zapisujemy jako k-bitowe liczby dla pewnego ustalonego k. Przykład. Jednostki: traktujemy jako: A,B,C,..., X,Y,Z A (00000) 2 B (00001) 2. Z (11001) 2

System kryptograficzny Merklego-Hellmana Generowanie kluczy: Osoba A wybiera: 1 ciąg superrosnący składający się z k liczb 2 liczbę m większą niż k 1 v 0, v 1,..., v k 1 v i i=0 3 liczbę a taką, że 0 < a < m i NWD(a, m) = 1.

System kryptograficzny Merklego-Hellmana Osoba A oblicza liczbę d a 1 (mod m). Konstruuje ciąg w 0, w 1,..., w k 1 gdzie w i a v i (mod m). Ten ciąg nie jest superrosnący. Klucz publiczny: {w 0, w 1,..., w k 1 } Klucz prywatny: (d, m)

System kryptograficzny Merklego-Hellmana Szyfrowanie: Osoba B chce wysłać do osoby A tekst jawny P = (b k 1 b k 2... b 0 ). Używając klucza publicznego oblicza: Wysyła C do osoby A. k 1 C = b i w i. i=0

System kryptograficzny Merklego-Hellmana Deszyfrowanie: Osoba A otrzymała liczbę C. Oblicza V = d C (mod m). Rozwiązuje łatwy problem pakowania plecaka dla liczby V i ciągu superrosnącego v 0, v 1,..., v k 1. Otrzyma w ten sposób: P = (b k 1 b k 2... b 0 ).

Dowód poprawności k 1 V = d C = d b i w i = i=0

Dowód poprawności k 1 k 1 V = d C = d b i w i = i=0 = b i w i d = b i (v i a) d = i=0 k 1 i=0

Dowód poprawności k 1 k 1 V = d C = d b i w i = i=0 = b i w i d = b i (v i a) d = i=0 k 1 k 1 i=0 = b i v i i=0

Przykład wyboru ciągu superrosnącego Wybieramy dowolny ciąg liczb naturalnych Obliczamy z 0, z 1,..., z k 1. v 0 = z 0 v 1 = z 1 + v 0 v 2 = z 2 + v 0 + v 1. v k 1 = z k 1 + v 0 +... + v k 2 Ciąg v 0, v 1,..., v k 1 jest ciągiem superrosnącym.

Przykład wyboru ciągu superrosnącego c.d. Ponadto, jeżeli założymy, że to k 1 m = z k + k 1 v i i=0 m > v i. Dalej wybieramy losowe 1 < a 0 < m i szukamy najmniejszego a takiego, że a 0 a oraz NWD(a, m) = 1 i=0

Bezpieczeństwo Problem pakowania plecaka jest trudnym problemem. Pod koniec lat siedemdziesiątych ubiegłego stulecia, wydawało się, że system kryptograficzny Merklego-Hellmana w swojej oryginalnej postaci bazujący na tym problemie będzie bezpieczny.

Bezpieczeństwo Problem pakowania plecaka jest trudnym problemem. Pod koniec lat siedemdziesiątych ubiegłego stulecia, wydawało się, że system kryptograficzny Merklego-Hellmana w swojej oryginalnej postaci bazujący na tym problemie będzie bezpieczny. W rozumowaniu tym tkwił błąd. Problem, który musi być rozwiązany podczas łamania k 1 C = b i w i i=0 nie jest łatwym problemem pakowania plecaka, ale jednak jest bardzo szczególnym problemem. Powstaje on z łatwego problemu pakowania plecaka poprzez prostą transformację: pomnożenie przez a modulo m.

Bezpieczeństwo System kryptograficzny Merklego-Hellmana w swojej oryginalnej postaci został złamany w 1982 roku. Shamir Adi, A polynomial-time algorithm for breaking the basic Merkle - Hellman cryptosystem, Information Theory, IEEE Transactions on 30 (5), 1984, p. 699 704.

Iterowany problem pakowania plecaka System kryptograficzny oparty na iterowanym problemie pakowania plecaka jest próbą obejścia algorytmu Shamira. W systemie tym używa się dwóch przekształceń postaci x a i x (mod m i ) określonych za pomocą par (a 1, m 1 ) i (a 2, m 2 ). Najpierw ciąg superrosnący {v i } zastępujemy ciągiem {w i }, gdzie w i = a 1 v i (mod m 1 ). Następnie ciąg {v i } zastępujemy ciągiem {u i }, gdzie u i = a 2 w i (mod m 2 ).

Iterowany problem pakowania plecaka Liczby m 1, m 2, a 1, a 2 są dobrane losowo tak, aby m 1 > v i, m 2 > km 1, NWD(a 1, m 1 ) = NWD(a 2, m 2 ) = 1. Klucz publiczny: {u 0, u 1,..., u k 1 } Klucz prywatny: (d 1, m 1, d 2, m 2 ), gdzie d 1 = a 1 1 (mod m 1 ) d 2 = a 1 2 (mod m 2 )

Iterowany problem pakowania plecaka Szyfrowanie: Osoba B chce wysłać do osoby A tekst jawny P = (b k 1 b k 2... b 0 ). Używając klucza publicznego oblicza: Wysyła C do osoby A. k 1 C = b i u i. i=0

Iterowany problem pakowania plecaka Deszyfrowanie: Osoba A otrzymała liczbę C. Oblicza V = d 1 ( d 2 C (mod m 2 ) ) (mod m 1 ). Rozwiązuje łatwy problem pakowania plecaka dla liczby V i ciągu superrosnącego v 0, v 1,..., v k 1. Otrzyma w ten sposób: P = (b k 1 b k 2... b 0 ).

Bezpieczeństwo Uogólniony algorytm Shamira opublikowany w: Brickell Ernest, Breaking iterated knapsacks, Advences in Cryptology - Crypto 84, Springer-Verlag, 1985, p. 342-358. pokazuje, że wiele przypadków iterowanego problemu pakowania plecaka można złamać.

Kolejne prace Kolejny system typu plecakowego, wykorzystujący wielomiany nad ciałem skończonym. Chor R., Rivest R., A knapsack-type public key cryptosystem based on arithmetic in finite fields, IEEE Transactions on Information Theory IT-34, 1988, p. 901-909. Jednakże po dokonaniach Shamira, eksperci nie darzą zaufaniem żadnego systemu typu plecakowego z kluczem publicznym.

Pytania i zadania 1. Wykaż, że ciągiem superrosnącym o najmniejszych wyrazach jest ciąg v i = 2 i. 2. Wykaż, że łatwy problem pakowania plecaka korzystający z ciągu superrosnącego v i = 2 i ma zawsze rozwiązanie dla dowolnego V (przy odpowiedniej ilości wyrazów ciągu v i ). 3. Wykaż, że każdy ciąg liczb naturalnych {v i }, spełniających warunek v i+1 2v i dla wszystkich i, jest superrosnący.

Pytania i zadania 4. Przypuśćmy, że jednostkami tekstu otwartego są pojedyncze litery zwykłego 26-literowego alfabetu A-Z. Otrzymaliśmy ciąg jednostek kryptogramu: 14, 25, 89, 3, 65, 24, 3, 49, 89, 24, 41, 25, 68, 41, 71. Kluczem publicznym jest ciąg: {57, 14, 3, 24, 8}, a prywatnym jest para d = 23, m = 61. a) Spróbuj odczytać wiadomość bez użycia klucza prywatnego. b) Sprawdź wynik, odszyfrowując kryptogram przy użyciu klucza prywatnego.

Koniec