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

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

Zastosowanie teorii liczb w kryptografii na przykładzie szyfru RSA

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

Algorytmy asymetryczne

0 + 0 = 0, = 1, = 1, = 0.

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

2 Kryptografia: algorytmy symetryczne

Podstawy systemów kryptograficznych z kluczem jawnym RSA

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

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 6

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

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

Laboratorium ochrony danych

Copyright by K. Trybicka-Francik 1

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

Copyright by K. Trybicka-Francik 1

Post-kwantowy algorytm podpisu cyfrowego Kryptosystem NTRU

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

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

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

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

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

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

Matematyka dyskretna

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

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

W11 Kody nadmiarowe, zastosowania w transmisji danych

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

Wybrane zagadnienia teorii liczb

Algebra liniowa II. Lista 1. 1 u w 0 1 v 0 0 1

Zarys algorytmów kryptograficznych

Kodowanie i kompresja Tomasz Jurdziński Studia Wieczorowe Wykład Kody liniowe - kodowanie w oparciu o macierz parzystości

xx + x = 1, to y = Jeśli x = 0, to y = 0 Przykładowy układ Funkcja przykładowego układu Metody poszukiwania testów Porównanie tabel prawdy

1 WPROWADZENIE 1. Agata Pilitowska. parzysta. 3. Znaleźć odległość kodu kontroli parzystości nad ciałem GF (q).

Spis treści. Przedmowa... 9

Parametry systemów klucza publicznego

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

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

Bezpieczeństwo systemów komputerowych

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

Matematyka dyskretna

Kryptologia przykład metody RSA

1 Zbiory i działania na zbiorach.

Matematyka dyskretna

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

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

Liczby pierwsze na straży tajemnic

Haszowanie. dr inż. Urszula Gałązka

Algebra liniowa. 1. Macierze.

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

1 Macierze i wyznaczniki

Podstawy Informatyki: Kody. Korekcja błędów.

Sieci komputerowe. Wykład 11: Kodowanie i szyfrowanie. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Szyfrowanie informacji

Szyfrowanie RSA (Podróż do krainy kryptografii)

Matematyka dyskretna

DB Algebra liniowa semestr zimowy 2018

1 Macierz odwrotna metoda operacji elementarnych

Zadania z algebry liniowej - sem. I Przestrzenie liniowe, bazy, rząd macierzy

Teoria liczb. Magdalena Lemańska. Magdalena Lemańska,

Elementy teorii liczb i kryptografii Elements of Number Theory and Cryptography. Matematyka Poziom kwalifikacji: II stopnia

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

0.1 Pierścienie wielomianów

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

1 WPROWADZENIE 1. Agata Pilitowska. parzysta. 3. Znaleźć odległość kodu kontroli parzystości nad ciałem GF (q).

Przestrzeń unitarna. Jacek Kłopotowski. 23 października Katedra Matematyki i Ekonomii Matematycznej SGH

Bezpieczeństwo danych, zabezpieczanie safety, security

Algebra Liniowa 2 (INF, TIN), MAP1152 Lista zadań

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

Podstawowe struktury algebraiczne

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

Kody blokowe Wykład 2, 10 III 2011

Wymagania edukacyjne z matematyki klasa II technikum

Macierze. Rozdział Działania na macierzach

1. Liczby zespolone i

15. Macierze. Definicja Macierzy. Definicja Delty Kroneckera. Definicja Macierzy Kwadratowej. Definicja Macierzy Jednostkowej

Baza w jądrze i baza obrazu ( )

Transformaty. Kodowanie transformujace

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

Met Me ody numer yczne Wykład ykład Dr inż. Mic hał ha Łanc Łan zon Instyt Ins ut Elektr Elektr echn iki echn i Elektrot Elektr echn olo echn

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

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

Zadania z Algebry liniowej 4 Semestr letni 2009

Algebra Abstrakcyjna i Kodowanie Lista zadań

Obliczenia iteracyjne

Wykład nr 3 Techniki Mikroprocesorowe. dr inż. Artur Cichowski

WSIZ Copernicus we Wrocławiu

Macierze - obliczanie wyznacznika macierzy z użyciem permutacji

Zestaw 2. Definicje i oznaczenia. inne grupy V 4 grupa czwórkowa Kleina D n grupa dihedralna S n grupa symetryczna A n grupa alternująca.

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

Tydzień nr 9-10 (16 maja - 29 maja), Równania różniczkowe, wartości własne, funkcja wykładnicza od operatora - Matematyka II 2010/2011L

Jak łatwo zauważyć, zbiór form symetrycznych (podobnie antysymetrycznych) stanowi podprzestrzeń przestrzeni L(V, V, K). Oznaczamy ją Sym(V ).

Kodowanie transformacyjne. Plan 1. Zasada 2. Rodzaje transformacji 3. Standard JPEG

Algebra. Mat.dyskretna v.1.3 egzamin mgr inf niestacj 1. a i b i, a b (wektory są prostopadłe) a, b = 0 i=1. m n. r c ij = a ik b kj = i-ty wiersz

SIMR 2016/2017, Analiza 2, wykład 1, Przestrzeń wektorowa

1 Określenie pierścienia

Przestrzenie wektorowe

Teoria informacji i kodowania Ćwiczenia Sem. zimowy 2016/2017

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 9,

Pierwiastki pierwotne, logarytmy dyskretne

Transkrypt:

Wykład VIII Kierunek Matematyka - semestr IV Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik

Egzotyczne algorytmy z kluczem publicznym

Przypomnienie Algorytm z kluczem publicznym - oparty na dwóch kluczach: publicznym i prywatnym. Klucza prywatnego nie można obliczyć na podstawie klucza publicznego. Szybkość szyfrowania i deszyfrowania jest zwykle w takich algorytmach dużo mniejsza niż szybkość algorytmów symetrycznych.

Zastosowania Algorytmy z kluczem publicznym są podstawą algorytmów (albo same są takimi algorytmami) stosowanych do: szyfrowania informacji wymiany kluczy podpisów cyfrowych

Przypomnienie RSA - problem rozkładu liczby naturalnej na iloczyn liczb pierwszych Algorytm Rabina - problem znajdowania pierwiastków kwadratowych modulo liczba złożona Algorytm ElGamala - problem logarytmu dyskretnego Algorytm Masseya-Omury Algorytm Merkle a-hellmana - algorytm plecakowy (złamany)

Algorytm McElience a Algorytm McElience a - opracowany w 1978 roku, oparty jest na trudności dekodowania kodów liniowych. W przypadku tego algorytmu zastosowano kody Goppy. Zalety: - prędkość kodowania i dekodowania - łatwość implementacji Wady: - długie klucze - 2 19 bitowe (512 KB) - długi szyfrogram

Kody Goppy Kod Goppy (binary Goppa code) - jest kodem liniowym służącym do korekcji błędów. Każdy z kodów Goppy jest zadany przez wielomian g(x) stopnia t nad ciałem GF (2 m ), bez pierwiastków wielokrotnych, oraz przez ciąg L składający się z n różnych elementów ciała GF (2 m ) nie będących pierwiastkami wielomianu g(x), tzn. i,j {0,...,n 1} L i GF (2 m ) L i L j g(l i ) 0. Kod Goppy Γ(g, L) tworzy następującą podprzestrzeń przestrzeni Z n 2 : { } n Γ(g, L) = c Z n c i 2 ; 0 mod g(x) x L i i=1

Kody Goppy Kod Goppy Γ(g, L) ma rozstęp 2t + 1, więc może korygować t błędów (t to stopień wielomianu g(x)). Macierz kontroli parzystości tego kodu jest postaci: 1 1... 1 1 L 1 0 L 1 1... L 1 n 1 L 2 0 L 2 1... L 2 n 1 H = VD = V - macierz Vandermonde a...... L t 0 L t 1... L t n 1 g(l 0) 0... 0 1 0 g(l 1)... 0...... 0 0... 1 g(l n 1)

Algorytm McElience a - klucze Wybieramy parametry n, k i t. Wybieramy losowo macierz generującą (n, k) kod Goppy o rozstępie t. Wybieramy losowo macierz permutacji P o wymiarach n n. Wybieramy losową macierz odwracalną S o wymiarach k k. Obliczamy G = S G P Klucz publiczny: (G, t) Klucz prywatny: P, S i wielomian zadający kod

Algorytm McElience a - szyfrowanie Tekst jawny dzielimy na k-bitowe bloki. Niech u będzie takim blokiem. Obliczamy wektor: x = ug + z gdzie: G to publiczna macierz generująca kod, z to lokalnie wygenerowany losowy wektor o długości n i wadze t.

Algorytm McElience a - szyfrowanie Tekst jawny dzielimy na k-bitowe bloki. Niech u będzie takim blokiem. Obliczamy wektor: gdzie: x = ug + z G to publiczna macierz generująca kod, z to lokalnie wygenerowany losowy wektor o długości n i wadze t. Zaleta: Dwa takie same bloki mogą być szyfrowane w różny sposób (losując różne wektory z).

Algorytm McElience a - deszyfrowanie Obliczamy x = xp 1 gdzie P 1 jest macierzą odwrotną do macierzy permutacji P. Otrzymane x jest słowem kodowym dla kodu Goppy. Stosujemy algorytm korekcji błędów. Na koniec obliczamy u = u S 1 gdzie u to wektor po korekcji błędów.

Algorytm McElience a - deszyfrowanie Obliczamy x = xp 1 gdzie P 1 jest macierzą odwrotną do macierzy permutacji P. Otrzymane x jest słowem kodowym dla kodu Goppy. Stosujemy algorytm korekcji błędów. Na koniec obliczamy u = u S 1 gdzie u to wektor po korekcji błędów. Szkic dowodu. xp 1 = (ug + z)p 1 = usg + zp 1 = us ponieważ wektor zp 1 ma taką samą wagę jak z.

Algorytm McElience a - kryptoanaliza McEliece w swojej pracy sugerował użycie następujących liczb: n = 1024, t = 50 co daje około 10 149 wielomianów definiujących kody Goppa, oraz astronomiczną liczbę wyborów S i P. Kod będzie wymiaru k = 1024 50 10 = 524. W 2008 roku, Bernstein, Lange i Peters opisali praktyczny atak na oryginalny kryptosystem McElience a. Ten atak wymaga wielkiej ilości obliczeń, które można zrównoleglić.

Algorytm Tao Renji Chiński kryptograf Tao Renji zaproponował algorytm wykorzystujący teorię automatów skończonych. Algorytm ten bazuje na problemie faktoryzacji złożenia dwóch automatów skończonych, gdy co najmniej jeden z nich jest nieliniowy. Zaleta: - działa szybciej niż RSA Wada: - wymaga długich kluczy. Bezpieczeństwo zbliżone do 1024-bitowego klucza RSA wymaga w tym algorytmie klucza o długości około 4152 bitów. Wersje: FAPKC0, FAPKC1, FAPKC2, FAPKC3, FAPKC4

Automat skończony Definicja Skończonym automatem (Mealy ego) nazywamy uporządkowaną piątkę A = Q, X, Y, δ, λ gdzie: 1) Q jest niepustym skończonym zbiorem stanów wewnętrznych, 2) X i Y jest skończonymi alfabetami odpowiednio symboli wejściowych i wyjściowych, 3) δ : Q X Q jest funkcją przejścia, 4) λ : Q X Y jest funkcją wyjścia.

Rozszerzenia Funkcje δ i λ mogą być rozszerzone do δ : Q X Q i λ : Q X Y w następujący sposób: δ(q, ɛ) = q, δ(q, ωx) = δ(δ(ω, q), x), λ(q, ɛ) = ɛ, gdzie q Q, ω X, x X. λ(q, ωx) = λ(q, ω)λ(δ(q, ω), x), Wprowadzamy odwzorowanie f A,q : X Y określone przez automat A w stanie q Q następująco: f A,q (ω) = λ(q, ω), ω X.

Złożenie automatów Niech A 1 = Q 1, X 1, Y 1, δ 1, λ 1, q 1 i A 2 = Q 2, X 2, Y 2, δ 2, λ 2, q 2 będą dwoma automatami inicjalnymi takimi, że Y 1 = X 2. Złożeniem tych automatów nazywamy automat gdzie A 1 A 2 = Q 1 Q 2, X 1, Y 2, δ, λ, (q 1, q 2 ) δ((r 1, r 2 ), x) = ( δ 1 (r 1, x), δ 2 (r 2, λ 1 (r 1, x)) ), λ((r 1, r 2 ), x) = λ 2 ( r2, λ 1 (r 1, x)) ) dla wszystkich r 1 Q 1, r 2 Q 2, x X 1.

Liniowy automat skończony Definicja Niech F pewne ciało. Automatem liniowym nazywamy automat A = Q, X, Y, δ, λ taki, że Q = F k, X = F m i Y = F r oraz δ(q, x) = A q + B x, λ(q, x) = C q + D x, gdzie A k k, B k m, C r k, D r m to macierze o współczynnikach z ciała F.

Algorytm Tao Renji - idea Konstruowane są dwa automaty liniowy i quasi-liniowy. Ten drugi ma własność słabej odwracalności wtedy i tylko wtedy, gdy jego macierze są schodkowe. Ta własność znika po wykonaniu złożenia. Kluczem publicznym jest automat powstały poprzez złożenie tych dwóch automatów. Kluczem prywatnym są dwa automaty realizujące odwzorowania odwrotne do odwzorowań zadanych początkowymi automatami. Szyfrowanie i deszyfrowanie polega na przetwarzaniu wiadomości/szyfrogramu odpowiednim złożeniem automatów.

Algorytm Tao Renji

Liczby Lucasa Dany jest ciąg: f n = Pf n 1 Qf n 2, n > 1 gdzie f 0, f 1 są dwiema ustalonymi wartościami początkowymi, a P i Q ustalonymi stałymi względnie pierwszymi. Dla P = Q = 1 i f 0 = 0, f 1 = 1 otrzymujemy ciąg Fibonacci ego.

Liczby Lucasa Niech α i β są pierwiastkami równania x 2 Px + Q = 0. Jeżeli f 0 = 2 i f 1 = P, to mamy ogólny wzór f n = α n + β n Liczbę f n będziemy nazywali liczbą Lucasa n-tego stopnia i będziemy ją oznaczali poprzez V n (P, Q).

Liczby Lucasa - własności Jeżeli n jest dowolną liczbą naturalną, to zachodzi V k (P mod n, Q mod n) = V k (P, Q) mod n Jeżeli Q = 1, to V nk (P, 1) = V n (V k (P, 1), 1).

Algorytm LUC (rok 1993) Niech n = p q, gdzie p i q są liczbami pierwszymi spełniającymi wymagania stawiane dla RSA. Niech M będzie wiadomością, M < n. Wybieramy liczbę e względnie pierwszą z iloczynem (p 1)(p + 1)(q 1)(q + 1) Obliczamy cztery możliwe wartości d: d = e 1 mod(nww(p + 1, q + 1)) d = e 1 mod(nww(p + 1, q 1)) d = e 1 mod(nww(p 1, q + 1)) d = e 1 mod(nww(p 1, q 1))

Algorytm LUC Szyfrowanie: C = V e (M, 1) mod n Deszyfrowanie: dla jednej z wartości d. M = V d (C, 1) mod n

Wielokluczowa kryptografia Wielokluczowa kryptografia z kluczem publicznym - jest uogólnieniem idei algorytmu RSA. Niech n = p q, gdzie p i q są liczbami pierwszymi spełniającymi wymagania stawiane dla RSA. Wybieramy t kluczy K i takich, że K 1 K 2... K t 1 mod (p 1)(q 1) Wtedy M K 1 K 2... K t M mod n

Zastosowanie w podpisach wielokrotnych Alicja i Bob chcą podpisać dokument tak, aby ich podpisy były łatwo weryfikowalne publicznie. Osoba trzecia (notariusz) generuje liczby K 1, K 2 i K 3. K 1 przekazuje Alicji, K 2 Bobowi, a K 3 ogłasza publicznie. Alicja podpisuje M obliczając M = M K 1 mod n. Wysyła M Bobowi. Bob może sprawdzić, co podpisywała Alicja obliczając M = M K 2K 3 mod n, oraz dodać swój podpis M = M K 2 mod n Każdy może sprawdzić podpis używając klucza publicznego K 3 M = M K 3 mod n

Zastosowania algorytmów z kluczem publicznym Bezpieczne obliczenia wielostronne - na przykładzie tzw. problemu milionerów. Alicja zna liczbę całkowitą i, Bob zna liczbę całkowitą j. Chcą ustalić, czy i j albo i > j, ale niech chcą ujawnić swoich liczb.

Problem milionerów Zakładamy, że liczby i, j są z przedziału od 1 do 100. Alicja wybiera dużą liczbę losową x i szyfruje ją za pomocą klucza publicznego Boba c = E B (x) Alicja oblicza c i i przesyła wynik Bobowi. Bob oblicza 100 liczb: y k = D B (c i + k) 1 k 100 Bob wybiera dużą liczbę pierwszą p nieco mniejszą niż wartość x. (Alicja może podać rozmiar x).

Problem milionerów Bob oblicza 100 następnych liczb z k = y k mod p 1 k 100 Bob sprawdza, czy dla wszystkich k l z k z l 2 i czy dla wszystkich k 0 < z k < p 1. Jeśli nie, to wybiera inne p i próbuje ponownie. Bob przesyła Alicji ciąg liczb (w tym porządku): z 1, z 2,..., z j, z j+1 + 1, z j+2 + 1,..., z 100 + 1, p

Problem milionerów Alicja sprawdza, czy i-ta liczba w podanym ciągu jest przystająca do x modulo p. Jeśli tak, to wnioskuje, że i j. Jeśli nie, to wnioskuje, że i > j. Alicja przekazuje Bobowi swój wniosek.

Koniec