Podstawy kryptografii Prowadzący: Prof. dr h Jemec Władzimierz

Wielkość: px
Rozpocząć pokaz od strony:

Download "Podstawy kryptografii Prowadzący: Prof. dr h Jemec Władzimierz"

Transkrypt

1 Podstawy kryptografii Prowadzący: Prof. dr h Jemec Władzimierz Wykład Literatura 1. Buchmann J. A. Wprowadzenie do kryptografii, PWN, 2006 rok, 244 s. 2. Stinson D. R. Kryptografia w teorii i praktyce, WNT, 2005 rok, 438 s. 3. Bruce Schneier Kryptografia dla praktyków, WNT, 2002 rok (200 zł) I Terminologia Najważniejsze pole zainteresowania kryptografii to szyfrowanie dokumentów. Oryginalny dokument nazywamy tekstem jawnym lub otwartym. Zaś jego zaszyfrowaną wersje nazywamy szyfrogramem lub kryptogramem. Tekst jawny zawiera znaki należące do pełnego alfabetu np.: Z 26 - alfabet łaciński, 26 liter (beż dużych liter) Z 2 ={0,1} - alfabet binarny Z alfabet kodu ASCII Z 32 - alfabet polski (32 litery) Do szyfrowania i deszyfrowania potrzebny jest dodatkowo klucz lub klucze. Algorytmem szyfrowania i deszyfrowania stanowi krypto-system, czyli szyfr. Klucz szyfr. Klucz deszyfr. Tekst jawny System crypt Krypt. System kryptograficzny Przykłady Szyfr Cezara (100 44) Litery alfabetu można utożsamiać z liczbami. W systemie Cezara używanych jest 26 symboli (liter) odpowiadających liczbą od 0 do , a to 0, b to 1 itp. Szyfr polega na przesunięciu. W następujący sposób: C= P 3 mod 26, gdzie C kryptogram, P tekst jawny Każdą literkę przesuwamy o trzy pozycje dalej. Słyne powiedzenie Cezara: Veni vidi vici (tekst jawny), C = yhgl ylgl ylfl (kryptogram) 1

2 Uwaga pamiętać: numeracja zaczyna się od zera. Szyfr częstokołu (szyfr permutacyjny) Przykładowo przy tekście jawnym: Kryptografia, oraz ustalonym poziomie 1 (klucz 1) rozpisujem następująco: K r y p t o g r a f i a Z czego uzyskujemy C = rporfakytagi Natomiast przy zastosowaniu poziomu 2 uzyskamy: k ryp t ogr a fi a ygirporfakt Tekst jawny P (plain) zaszyfrowany za pomocą klucza K (key) oznaczać będziemy przez E K P =C (E encryption), gdzie C kryptogram. Tekst jawny uzyskany z kryptogramu C za pomocą klucza K oznaczać będziemy D K C =P (D decryption). Ze względu na własności kluczy rozróżniamy dwie odmiany szyfrowania (algorytmy). Algorytm symetryczny klucz do szyfrowania oraz deszyfrowania jest ten sam. Szyfrowanie kluczem K B K E Osoba nieupoważniona C Deszyfrujący klucz K D K A Algorytm asymetryczny algorytm z kluczem kluczem publicznym. Klucze do szyfrowania i deszyfrowania są różne. W ramach kryptografii rozważamy metody łamania szyfru, czyli krypto analizy. Najprostszą formą krypto analizy jest metoda brud-force (brutalny atak). Polega ona na rozważeniu wszystkich możliwych kluczy. Klasyfikacja ataków kryptograficznych w zależność od rodzaju informacji dostępnych, zawiera: 1. Atak jedynie kryptogramu (ciphentext-only). Atakuje dysponując wyłącznie krypto tekstem E K P lub pełną ich ilością E K P 1,...,E K P l zaszyfrowanych przez ten sam klucz, ale brak jest informacji na temat odpowiadającym im tekstom jawnym. 2. Atak ze znanym tekstem jawnym (known plaintext) oprócz E K P (kryptogramu), pełne pary E K P 1 i P 1,..., E K P l, P l są znane, ale pary te nie mogą być wybrane przez atakującego. 3. Atak z wybranym tekstem jawnym (chosen plaintext). Atakujący dysponuje kryptogramem E K P dla dowolnie wybranego tekstu jawnego P (tego typu atak jest możliwy, gdy staramy znaleźć się klucz zapisany w urządzeniu kryptograficznym). 4. Atak z wybranym kryptogramem (chosen ciphertext). Atakujący może uzyskać teksty jawne D K C dla dowolnie wybranego kryptogramów. 2

3 II Zastosowanie szyfrowania 1. Ochrona danych przed niepowołanym odczytem Dane medyczne, bankowe, kredytowe itp. są zapisane w postaci kryptogramu. Tylko posiadać klucza może z kryptogramu odczytać oryginalny tekst. Zabezpieczenie komunikacji poprzez linie narażone na podsłuch. Tego rodzaju zabezpieczenia niezbędne jest w przypadku elektronicznego dokonywania operacji finansowych. 2. Uwierzytelnianie dokumentów To uwierzytelnianie dokonujemy za pomocą algorytmu szyfrowania asymetrycznego. Osoba A publikuje klucz K D służący do deszyfrowania (klucz publiczny), drugi z pary kluczy jest strzeżony (nazywa się kluczem prywatnym) K E. Za pomocą publicznego klucza osoby A, dowolna osoba może odczytać oryginalny tekst. To gwarantuje, że dokument należy do osoby, która posiada parę kluczy K D i K E. 3. Ochrona prywatności elektronicznej korespondencji Załóżmy, że osoba A dysponuje parą kluczy asymetrycznych algorytmu szyfrowania. Gdy osoba B pragnie wysłać list do osoby A, wtedy jest realizowany następujący protokół: osoba B zapatruje się w publiczny klucz K osoby A. osoba B szyfruje tekst według klucza K osoby A i wysyła list pocztą elektroniczną. Osoba A deszyfruje otrzymany list za pomocą swego kluczu prywatnego K D i w ten sposób otrzymuje oryginalny tekst. Tylko osoba A może odszyfrować, bo posiada klucz K D. 4. Elektroniczny notariusz Do notariusza zgłaszamy się w dwóch sytuacjach: 1. Gdy chcemy urzędowo potwierdzić istnienie dokumentu bez ujawniania jego treści. 2. Jeśli chcemy zagwarantować, aby w jakimś dokumencie nie były dokonywane zmiany przez nieuczciwego partnera. W obu przypadkach wystarcza jednokierunkowych funkcji haszujących (funkcja skrót). Mówimy, że H jest jednokierunkową funkcją haszującą o ile spełnione są warunki: 1. Dla każdego X łatwo jest obliczyć H X. 2. H X Ma ustaloną długość dla wszystkich tekstów X. 3. H 1 X funkcja odwrotna do funkcji H nie istnieje. Gdy wartość funkcji haszującej składa się z 128 bitów to mamy do dyspozycji możliwych wartości. W celu notarialnego potwierdzenia dokumentu X należy obliczyć H X i umieścić tę wartość u notariusza. 3

4 III Historia Prawdziwy przełom pod względem kryptografii nastąpił w 1976 roku. Wtedy zostały opublikowane pierwsze algorytmy asymetryczne pierwsze algorytmy asymetryczne. 4

5 Wykład Klasyczne technik szyfrowania 1. Alfabet więzienny Do szyfrowania i deszyfrowania używany jest kwadrat albo prostokątu, w który wpisano litery alfabetu. Przykład: Klucz K O 3 4 T U 5 Tekst jawny: kto tu Kryptogram: Szyfr par Kluczem jest fraza (hasło), która zawiera równo połowę liter alfabety. Szyfrowanie przebiega następująco. Zapisujemy kolejne litery występujące w haśle w pierwszym wiersze. Pod nim wpisujemy kolejne litery alfabety, przy czym pomijamy się litery hasła. W taki sposób otrzymujemy odpowiedni pary alfabety. Przykład: Hasło: ż e l a z n y s z p i c w d o mu l e ż y (16 różnych liter) ą b ć ę f g h j k ł ń ó r ś t ź Wpisujemy litery, które są w alfabecie, ale nie ma w haśle. W ten sposób otrzymujemy pary liter, które w tekście jawnym zamieniamy, aby otrzymać kryptogram. Przykład: tekst jawny: Spotkanie unieważniono, Janek zdrajca kryptogram: Jkśmpęgłb źgłbóęągłśgś, Sęgbp frdęsńe 3. Szyfr Playfair a (XVI wiek) dla alfabetu latyńskiego Litera J jest zastąpiona przez I (J I), czyli nie rozróżniamy J. Kluczem są cztery kwadraty 5 5, w które są wpisany w pewnej kolejności litery alfabety łacińskiego. System Playfair a jest przykładem systemu, w którym szyfruje się bloki liter o długości dwa. Przykład na 1 kwadracie. K L N G D O M A B C F F H L P Q R S T U V W X Y Z Zasłużmy, że chcemy zaszyfrować litery T i O. Litery T i O tworzą prosty kąt w którym występują litery B i Q. OT-> BQ. 5

6 Jeśli litery leżą na jednym wierszu/kolumnie to postępujemy zgodnie z własnymi ustaleniami np. przesuwamy o jeden wiersz/kolumnę. 4. Szyfr Wiżener a (Enigma) Dla tekstu jawnego i kryptogramu jest wykorzystany ten sam alfabet. Załużmy, że x i y to są dwie litery z tego alfabetu. Wtedy x y jest rezultatem cyklicznego przesuwania litery x wprawo w alfabecie na ilość pozycji, która jest równa numery litery y w alfabecie. Numeracja zawsze zaczyna się od zera. Powyższa operacja x y może być przedstawiona za pomocą tabeli Wiżener a. A B C D... X Y Z B C D E... Y Z A C D E F... Z A B... X Y Z A... U V W Y Z A B... V W X Z A B C... W X Y W celu szyfrowania wybieramy klucz. Gdy długość klucza jest mniejsza od długości tekstu jawnego, wtedy klucz jest cyklicznie przedłużany. Na przykład: Tekst jawny: A B C D E F G H I J... Klucz: + K L U C Z K L U C Z... Kryptogram: K M W F D P R B K I... W tym systemie jednakowym literom kryptogramu mogą odpowiadać różne litery tekstu jawnego. Ten system szyfrowania przy małych długościach klucza gwarantują tylko niewielki zakres bezpieczeństwa. Słabością szyfrów opartych na podstawieniach jest to, że mogą one być złamane, poprzez analizę częstotliwości występowania liter albo bloków liter alfabetu. Analiza tych częstotliwości w zaszyfrowanych tekstach pozwala na zgadnięcie niektórych wartości zamiany. Istnieją tabele częstotliwość występowania danych liter w danym języku. Na przykład dla języka angielskiego: E 0,127 T 0,097 I 0,075 A 0, J 0,001 najemnej występująca litera Kryptoanaliza polega na sporządzeniu tabeli częstotliwości występowania liter w kryptogramie i porównania z powyższą tabelą. Na tej podstawie można zlokalizować prawdopodobne wartości najczęściej spotykanych liter. 5. Szyfr S-boksy S boksy są składnikami algorytmu DES (Data Encryption Standard). Każdy S -boks jest definiowany poprzez macierz rozmiaru 4 16 zawierającą liczby z przedziału od 0 do

7 . S boks definiuje funkcję, jej argumentami są ciągi złożone z 6 bitów. Obliczenie wartości S- koksu dla argumentu x ma następujący przebieg: 1. Pierwszy i ostatni bit argumentu x wyznaczającą numer wiersza (wierszy numerujemy od 0 do ). 2. Pozostałe 4 bity argumentu x wyznaczają numer kolumny (kolumny numerujemy od 0 do ). 3. Na przecięciu tak wyznaczonych kolumny i wiersza znajduje się pojedynczy element, liczba ta jest szukaną wartością funkcji. Za pomocą S- boksów można zrealizować efekt lawinowy. Zmiana pojedynczego bitu w tekście jawnym powoduje lawinę zmian w kryptogramie. Właściwości S-boksu: 1. Każdy wierz S- boksu zawiera wszystkie liczby całkowite od 0 do Własność ta zapewnia, że sama znajomość wiersza nie daje żadnej informacji o wartości końcowej. 2. Funkcja obliczana przez S- boks nie jest funkcją afiniczną, tzn. żaden bit wyniku nie da się przedstawić jako c 0 i= 0 6 c i x i, gdzie x i - oznacza i-ty bit argumentu 3. Zmiana jednego bitu argumentu zmienia co najmniej dwa bity wyniku. Permutacja Ten system szyfrowania polega na permutacji liter tekstu jawnego i w praktyce nie jest używany, bo częstotliwość występowania liter w kryptogramie i tekście jawnym jest równa między sobą. Przykład. 1. Szyfr macierzy Tekst jawny jest zapisany kolejnymi wierszami w prostokącie. Przy tym kolejność wypisywanych liter kryptogramu określa się ciągiem liter w kolumnach, a ich kolejność określą się kluczem. Przykład: Klucz: GARDEN Tekst jawny: DON T PUT IT OFF TILL TOMORROW G A R D E N D O N T P U T I T O F F T I L L T O M O R R O W Kryptogram: OIIOTOLRPFTODTTMUFOWNTLR Możliwe jest stosowanie dodatkowego klucza do wierszy. Klucze dla tej metody mogą być podane w postaci tabeli. Załóżmy, że dokonujemy permutacji n liter 7

8 l l i 1 i 2... i Która powoduje, że jedna litera zajmuje w kryptogramie pozycje i 1, drugą i 2 itp. Mamy l! kluczy takich odwrotnie piszemy Szyfr ADFGVX (szyfr I wojny światowej) Ten szyfr zawiera dwa sposoby szyfrowania: podstawienie i permutacja. Każda litera lub liczba szyfruje się blokami długości 2, złożonych z liter A, D, F, G, V, X na podstawie tabeli. Przykład: A D F G V X A C 0 8 X F 4 D M K 3 A Z 9 F N W L O J D G 5 S I Y H U V P 1 V B 6 R X E Q 7 T 2 G Tekst jawny: M-16 Po użyciu tabeli: AD DV VV Następnie: + szyfr macierzy 8

9 Wykład Algorytmy symetryczne Pracownicy poczty I Algorytm z kluczem jednorazowym (One-time pad) (1917, G. Vernam, J. Moborn) Szyfr opiera się na operacji XOR (exclusive OR), czyli dodawania modulo 2. 0 XOR 0=0 1 XOR 0=1 0 XOR 1=1 1 XOR 1=0 Załóżmy, że mamy dwa ciągi A=a 1,a 2,...,a n, B=b 1, b 2,..., b n, wtedy C= A XOR B, c j =a j XOR b j, C=c 1, c 2,...,c n. Przy tym A XOR 0= A, A XOR A=0. Szyfr z kluczem jednorodnym jest metodą szyfrowania, w której używano losowy ciąg, który określa nam klucz. Czyli klucz jest losowy ciąg (czyli np. rzuty monetą albo wykorzystanie szumu). Własności tej metody: 1. Kryptogram jest ciągiem losowym n bitów. 2. Bez znajomości klucza żadna informacja dotycząca tekstu jawnego nie może być wydedukowana z kryptogramu. Własność ta oznacza bezpieczeństwo doskonałe i wypływa z słynnego twierdzenia Shannona z teorii informacji (którego praca była opracowana podczas II Wojny Światowej). Czyli nie podaje się kryptoanalizie. Jedyną dziedziną zastosowań jest szyfrowanie stosunkowo krótkich, ale ważnych informacji (np. wojskowych). Zasady używania szyfru mówią, że klucz powinien być: 1. Zawczasu uzgodniony przez osoby komunikujące się. 2. Wybrany losowo. 3. Co najmniej tak długi jak szyfrowany tekst. Bo załóżmy, że mamy długi tekst a 1,a 2,...,a n,... i używamy klucza k 1,k 2,...,k n. Ten c j XOR c j n = a j XOR k j a j n XOR k j n =a j XOR a j n. Czyli na podstawie kryptogramu możemy dostać informacje o tekście jawnym. II DES (Data Enscryption Standard, 1970 r., IBM) DES szyfruje bloki złożone z 64 bitów. Klucze też składa się z 64 bitów, przy tym 8 bitów to są bity parzystości. To znaczy w trakcie wyboru klucza można określić jedynie 56 bitów, reszta jest generowana automatycznie. Szyfrowanie i deszyfrowanie DES składa się z 16 rund (cykli). W trakcie każdej rundy dokonywane są te same obliczenia, ale na wynikach obliczeń z poprzedniej rundy i specjalnym podkluczem generowanym z podstawowego klucza. Dodatkowo przed pierwszą rundą i po ostatniej rundzie bity są permutowane w ustalony sposób. Dla uzyskania podkluzcy usuwano najpierw 8 bitów parzystości. Następnie z pozostałych 56 bitów tworzonych jest 16 podkluczy, każdy składający się z 48 bitów. Dane wejściowe rundy i 1 składają się z dwóch ciągów 32 bitowych. ' L i = x i, 0, x i, 1, x i, 31 (pierwsze 32 bity) oraz R i = x i,0 Zachodzą następujące związki: ',x i,1 ',x i,31 (pozostałe 32 bity). 9

10 L i 1 =R i R i =L i XOR f R i, K i 1 czyli można to pokazać za pomocą rysunku. L i 32 R i 32 Blok wejściowy L i f(r + i, K i + 1 ) L i + 1 R i + 1 i + 1 DES Obliczenie wartości funkcji f dokonuje się w następujący sposób: 1. Poprzez permutację z rozszerzeniem otrzymuje się ciąg złożony z 48 bitów. Bity te, to 32 bity bloku R i kopiowane na 48 pozycji (niektóre z nich dwukrotnie). 2. Na otrzymanych 48 bitach jest dokonywana jest operacja XOR z klucza rundy K i Otrzymane 48 bitów dzielone jest na 8 grup po 6 bitów. Każda grupa poddawana jest działaniu S boksu (są 8 S-boksy). 4. Otrzymane 32 bity są na koniec permutowane w ustalony sposób runda DES 32 R i bity Permutacja z rozszerzeniem K i + 1 XOR 48 bitów = 6 bitów 8 grup S-boksy (8) 4 bitów 8 = 32 bity Permutacja f(r i, K i + 1 ) Po 16 iteracji lewa i prawa połowa są zamieniane, a otrzymany blok jest poddawany permutacji odwrotnej do początkowej. Jest to konieczne, aby prezentowany algorytm mógł być użyty zarówno jak do szyfrowania, jak i deszyfrowania (czyli żadnych podstaw matematycznych nie ma). DES=IP IP DES 1 =IP IP IP - inital Permutation - runda DES Była zbudowana specjalna maszyna, która pozwala znaleźć klucz za trzy doby jeśli mamy tekst 10

11 jawny i klucz. III Rozszerzenie algorytmu DES 1. DESX (exetended) (1984 r., Rivest) Dla zaszyfrowania używano trzy klucze: K int (wewnętrzny), K DES, K ext (zewnętrzny). Kryptogram oblicza się następująco: C=K ext XOR DES K DES P XOR K int. 2. Trzykrotny DES (DES EDE (Encrypt-Decrypt-Encrypt)) Szyfrowanie, deszyfrowanie, szyfrowanie. Używany w bankowości do tej pory. Szyfrowanie odbywa się następująco: C=DES K 3 DES 1 K2 DES K1 P IV Szyfrowanie dowolnych tekstów 1. Elektroniczna książka kodowa (Electronic Code Book (ECB)) ECB polega na podziale informacji na bloki ustalonej długości. Każdy z tych bloków jest oddzielnie szyfrowany za pomocą tego samego klucza. Zaleta, taki tryb pracy jest odporny na zakłócenia, bo utrata jednego bloku kryptogramu nie wpływu na możliwość deszyfrowania pozostałych. Wada, jest możliwość zmiany pewnych bloków kryptogramu na inne. Przykład: załóżmy, że komunikacja pomiędzy dwoma bankami odbywa się w trybie ECB szyfrowane są przelewy między kontami. Specyfikacja kont ma postać: Przelew: kon_ to odbior_ za kwo_to Kryptogam: blok 1 blok 2 blok 3 blok 4 bolk 5 Przestępca, który jest w stanie modyfikować treść kryptogramów, może przeprowadzić atak. 1. Dokonuje 17 przelewów na swe konto, zawsze tę samą kwotę. Następnie identyfikuje w przesyłanych kryptogramach taki kryptogram konta, na który dokonano dokładnie 17 przelewów i na tę samą kwotę. Poznaje kryptogram numeru swego konta, mimo iż nie zna klucza. (Na kolokwium dlaczego 17 przelewów!!!) 2. Zamienia szyfru numeru konta wstawiając na to miejsce kryptogramu numeru swego konta. Bank dopisuje do konta kwotę przeznaczony pierwotnie dla kogo innego. 3. Zabieramy pieniądze i znikamy. 2. Wiązania bloków (Cipher Blok Chaining (CBC)) Ten tryb jest zdefiniowany następująco: C 1 =E K P 1 XOR I C i =E K P i XOR C i 1, i=2,3,... Gdzie I jest losowo wygenerowanym ciągiem, który przesyłany jest w sposób jawny. E K - algorytm szyfrowania. P 1, P 2,... - bloki tekstu jawnego. Zaleta, takie same bloki są reprezentowane przez różne bloki szyfrogramu. 11

12 Wada, nie można żadnego bloku usunąć z kryptogramu. 12

13 Wykład Algorytmy symetryczne IV Szyfrowanie dowolnych tekstów 3. Sprzężenie zwrotne szyfrogramu (CFB) Tą metodą można zaszyfrować zarówno bloki kilko znakowe jaki i pojedyncze bity. Jednym z zasadniczych składników CFB jest rejestr przesuwający. Na początku zawiera on losowo wygenerowany ciąg. W trakcie pracy CFB wykonuje są następujące operacje: 1. Zawartość rejestru przesuwającego jest szyfrowana jakimś algorytmem blokowym. 2. Z wytworzonego kryptogramu pobierano pierwszych 8 bitów. Bity te służą do operacji XOR z 8 bitami tekstu jawnego. W wyniku otrzymujemy ciąg 8 bitów Z. 3. Ciąg Z tworzy 8 kolejnych bitów kryptogramu. Ponadto w rejestrze przysuwającym wykonujemy przesunięcie o 8 pozycji. 8 bitów z lewej strony ulega usunięciu, z kolei na 8 zwolnionych pozycjach zapisywany jest ciąg Z. K Rejestr przesuwający DES Na przykład można użyć algorytmu blokowego DES, tak jak w tym przykładzie. Kryptogram 8 bit litera P XOR Z wyjście AES (Advanced Encryption Standard) Ten standard opiera się na algorytmie Rijndael (Dane, Rijmen) (2001 USA) Arytmetyka wielomianu Niech F n 2 oznacza ciało skończone, które składa się z 2 n elementów. Każdy element w tym ciele jest reprezentowany jako wielomian f x =a m 1 x n 1 a n 2 x n 1... a 0, a i Z 2. Każdemu wielomianowi odpowiada ciąg bitów. Na przykład rozważmy ciało F

14 Wielomian x x x x x 2 x Dodawanie Ciąg bitów Dodawanie dokonuje się mod 2 na bitach wspólnych potęg x. Na przykład: f 1 x = x 2 x f 2 x =x 2 x 1 Wtedy: f 1 f 2 =1 Mnożenie Algorytm wykorzystuje ciało F 2 8. Mnożenie dokonuje się mod m w (moduł wielomianu m w ), gdzie m x =x 8 x 4 x 3 x 1=11B 16 (po prawej stronie w postaci szestnastkowej...). Przykład. x 3 x x 7 1 = x 10 x 8 x 3 x mod m x =x 6 x 5 x 4 x 3 x 2 1 x 10 x 8 x 3 x x 10 x 6 x 5 x 3 x 2 x 8 x 6 x 5 x 2 x x 8 x 4 x 3 x 1 x 8 x 4 x 3 x 1 x mod 2=1 x 6 x 5 x 4 x 3 x 2 1 Rozważmy teraz dwa wielomiany f x =a 3 x 3 a 2 x 2 a 1 x a 0, a i F 2 8 f x =b 3 x 3 b 2 x 2 b 1 x b 0, b i F 2 8 Mnożenie f x przez g x dokonuje się modulo wielomianu M x =x 4 1. Czyli otrzymujemy, że: f x g x = c 6 x 6 c 5 x 5... c 0 mod M x Ponieważ x 4 =1 mod x 4 1 to x 5 = x mod M x x 6 = x 2 mod M x d x = f x g x =c 3 x 3 c 2 c 6 x 2 c 1 c 5 x c 0 c 1 =d 3 x 3 d 2 x 2 d 1 x d 0 14

15 Albo d 0 d 1 d 2 a3 a2 a1 a 1 a 0 a 3 a 2 a 2 a 1 a 0 a 3 d 3 =[a0 b 1 b 2 a 3 a 2 a 1 a 0][b0 3] b Algorytm AES wykorzystuje wielomian a x dla każdego a 0 = x, a 1 =1, a 2 =1, a 3 =x 1. Powyższe przekształcenie jest zdefiniowane w algorytmie jako Mix Column, czyli koniec arytmetyku. Algorytm Rijndeel AES jest symetrycznym blokowym szyfrem, długości bloku i kluczy są 128 (standard), 192 albo 256 bitów. Wyspecyfikowano 9 wersji algorytmu, w zależności od danych i długości kluczy. Poszczególne postacie tekstu jawnego po zastosowaniu kolejnych transformacji algorytmu, określane są mianem stanu (status). Każdy stan jest reprezentowany w postaci tablicy która ma 4 długość bloku danych wiersze, a ilość kolumn N b =. Podobnie klucze stanu (Cipher Key) jest 32 długość klucza tablicą, która ma 4 wiersze, a jest kolumn N k =. Ilość rund szyfrowania N 32 r zależy od długości bloku wejściowego i długości klucza, w następujący sposób: N r Długość bloku Długość klucza Runda szyfrowania składa się z 4 warstw (layers): podstawienia bajtu (Byte Sub) nieliniowe postawienie w S-boksy przesunięcia wierszu (Shift Row) przesunięcie bitowe w lewo wierszu stanu permutacja kolumn (Mix Column) transformacja kolumn stanu dodanie klucza rundy (Add Round Key) połączenie stanu z podkluczem 1. Podstawienie bajtu (Byte Sub) To jest przekształcenie afiniczne, które można zapisać w postaci macierzowej. bajt n =[S] 8 8 bajts S-boksy To dla każdego bajtu nie zerowego. 63 rozwinięcie szestnastkowe 15

16 2. Przesunięcia wierszu (Shift Row) Wierszy są podane przesunięciu w lewo. W zależności od długości bloku wejściowego N b, w następujący sposób: 0 wiersz nie zmienia się 1 wiersz jest przesunięty o c 1 bajt 2 wiersz jest przesunięty o c 2 bajt 3 wiersz jest przesunięty o c 3 bajt c 1, c 2, c 3 zależy od N b. Gdzie: N b c 1 c 2 c Permutacja kolumn (Mix Column) Jest zdefiniowana wyżej. 4. Dodanie klucza rundy (Add Round Key) Klucz rundy XOR z blokiem danych. Klucz rundy XOR z blokiem wejściowym. Procedura generowania kluczy algorytmu AES. Argument wejściowy: klucz użytkownika K [128,192, 256] N b - ilość kolumn w stanie danych N r - ilość wykonywanych rund Argument wyjściowy: tablica W słów 4 bajtowych o wymiarze N b N r 1 (1 słowo reprezentuje 1 kolumna w stanie) 1. Wypełniamy pierwszych N k elementów tablicy W kluczem użytkownika. For i=0 to N K 1 do W [i]= K [ 4i ] K [4 i 1] K [4 i 2] K [4 i 3] 2. Wypełniamy pozostałe elementy tablicy W. 16

17 if N K 6 then for i=n K to N b N R 1 1 do temp=w [i 1] ; if i mod N k == 0 then temp=s box [RotByte temp ] R con [i/ N K ] ; W [i]=w [i N K ] temp ; else // N K == 8 for i=n K to N b N R 1 1 do temp=w [i 1] ; if i mod N k == 0 then temp=s box [RotByte temp ] R con [i/ N K ] ; else if i mod N k == 4 then temp=s box [temp ] ; W [i]=w [i N K ] temp ; RotByte(temp) przesunięcie cykliczne o 24 bity R con [i]= R c [i],0,0,0 R c [1]=1 R c [i]= x R c [i 1] DataState blok weściowy Algorytm: for i=1 to N r 1 do ByteSub(DataState); ShiftRow(DataState); MixColumn(DataState); AddRoundKey(DataState, ExpandedKey[ i 1 N K ]); for i=n r ByteSub(DataState); ShiftRow(DataState); AddRoundKey(DataState, ExpandedKey[ i 1 N K ]); C = DataState; 17

18 Wykład Algorytmy symetryczne 1. Arytmetyka Niech n N, x Z. Przez x mod n oznaczamy resztę z dzielenia x przez n (np 122 mod 11=1 3 mod10=3 ). Zbiór reszt modulo n oznaczamy przez Z n ={0, 1,2,..., n 1}. W zbiorze Z n można zdefiniować dwie operacje: dodawanie oraz mnożenie. Mówimy, że liczba y jest elementem odwrotnym do x mod n jeśli x y=1mod n. W tej sytuacji piszemy y=x 1 mod n, bo dla każdej liczby istnieje element odwrotny modulo n. Piszemy x y mod n gdy x mod n=y mod n i mówimy, że x jest kongruentne w y mod n, czyli podobne. Twierdzenie 1 Następujące warunki ekwiwalentne: 1. x y mod n 2. x= y k n, k Z 3. n x y ( n dzieli x y ) Własności kongruencji: Przykład if x 1 y 1 mod n, x 2 y 2 mod n then x 1 x 2 y 1 y 2 mod n x 1 x 2 y 1 y 2 mod n Udowodnimy, że liczba jest dzielona przez liczbe 9 jeżeli suma wszystkich cyfr tej liczby jest dzielona przez 9. Dowolną liczbę naturalną można przedstawić w postaci: N x= a i 10 i i =0 N x mod 9= a i i=0 Algorytm Euklidesa (III w. p.n.e.) Algorytm Eulkidesa obliczania największego wspólnego dzielnika NWD licz naturalnych a i b a,b N. Algorytm oparty jest na wyrażeniach: (*) NWD a,b =NWD b,a mod b, a b (**) NWD 0, a =a 18

19 Przykład NWD 211,79 -? wykorzystaj wzór (*): 211= = = = NWD 211,79 =NWD 79,53 =NWD 53, 26 =NWD 26,1 =NWD 0, 1 =1 Ilość kroków m algorytmu Eulkidesa definiowano nierównością m 2 log 2 b 1. W trakcie działania algorytmu Eulkidesa można wyznaczyć liczny całkowite x i y takie, że: a x b y=1 przy założeniu, że NWD a, b =1. Definiujemy liczny: q 0,q 1,...,q k takie, że: a=b q 0 a 1 b=a 1 q 1 a 2... a k 1 =a k q k 0 Następnie dal każdego n 0 obliczamy wartości p n, które równają się P n =q n P n 1 P n 2. Podobnie Q n =q n Q n 1 Q n 2. Gdzie liczba P 2 =0, P 1 =1, Q 2 =1, Q 1 =0. Wtedy x= 1 k 1 Q k 1, natomiast y= 1 k 1 P k 1. Oprócz tego P k =a, Q k =b. Te powyższe obliczenia można zręcznie wykonać za pomocą tabeli: N k 1 k q N q 0 q 1... q k 1 q k P N 0 1 P 0 P 1... P k 1 a Q N 1 0 Q 0 Q 1... Q k 1 b Żeby obliczyć np: P 0 =q 0 1 0, P 0 =q 1 P 1 1 Przykład Wyznaczyć liczby całkowite takie, że 17 x 13 y=1. Najpierw sprawdzamy, NWD 17,13 =1 17= q 0 =1 13=4 3 1 q 1 =3 4=1 4 0 q 2 =4 N q N P N Q N Tu znajduje się rozwiązanie 19

20 x= 3 (ujemne, ponieważ kolumna z wynikiem ma wartość nieparzystą) y= 4 Przykład Obliczyć liczbę odwrotną do liczby 8mod 35. Czyli obliczyć 8 1 mod 35, 8 x 35 y=1. Wystarczy obliczyć konkretnie 8 x 35 y=1, co oznacza, że x jest naszą szukaną. Zbiór elementów dla których istnieje odwrotne w Z n oznaczamy przez Z n *. Twierdzenie 2 Zbiór Z * n składa się z elementu x względnie pierwsze z n i tylko z nich, czyli będą to liczby takie, że {x n :NWD x, n =1}. Niech n będą liczb naturalnych mniejszych od n, które są względnie pierwsze z n. Funkcja n nazywa się funkcją Eulera. Jeśli p i q są różne liczby pierwsze to wtedy łatwo policzyć p q = p 1 q 1. Wzór dla funkcji Eulera. Niech n N będzie liczbą naturalną oraz n= p 1 1 p p l l, gdzie p 1, p 2,..., p l to są liczby pierwsze, wtedy łatwo policzyć n =n 1 1/ p / p l. Na przykład Niech n= p n =n 1 1/ p 16 =16 1 1/2 =8 (gdzie p - liczba pierwsza) to mówi, że ma 8 liczb względnie pierwszych z liczbą 16 ( {1, 3, 5, 7, 9, 11,13, 15} ) Twierdzenie 3 (Oliera) (1763 r.) Dla względnie pierwszych x Z i n N ma miejsce kongruencja x x 1 mod n (zwany algorytm RSA jest oparty na tym twierdzeniu). Z tego twierdzenia wypływa twierdzenie 4. Twierdzenie 4 (Fermata) (1640 r.) Małe twierdzenie Fermata. Jeśli p jest liczbą pierwszą oraz liczba x nie dzieli się przez p to x p 1 1 mod p. Przykład: mod 31=? 33 2 mod 31= mod 31= mod 31= mod 31= mod 31= mod31=1 20

21 Twierdzenie 5 (Chińskie twierdzenie o resztach) (I p.n.e.) Niech liczby naturalne n 1, n 2 będą względnie pierwsze NWD n 1,n 2 =1 oraz x 1, x 2 Z dowolne liczby całkowite. Wtedy istnieje dokładne jedna liczba x taka, że x x 1 mod n 1 x x 2 mod n 2 Ponieważ NWD n 1, n 2 =1 to istnieją liczby całkowite u i v takie, że: u n 1 v n 2 =1. Wtedy x=u n 1 x 2 v n 2 x 1, bo x mod n 1 = v n 2 x 1 mod n 1 =x 1 x mod n 2 = u n 1 x 2 mod n 2 =x 2 Tak naprawdę tych reszt może być wiele. Przykład: Wyznaczyć liczby x takie, że: x=2 mod 3, x=3 mod 7. NWD 3,7 =1 3 u 7 v=1 u= 2, v= 1 x= = 18 14= 4 4mod 21=17 Stąd x=17 Twierdzenie 6 Niech p to liczba pierwsza wtedy istnieje generator zbioru Z p * x Z p * i x g i mod p. to znaczy taki element g Z p *, że Załóżmy, że p 1=q 1 1 q q l l, gdzie q 1, q 2,...,q l to liczby pierwsze. Wtedy liczba g jest generatorem zbioru Z p * jeśli dla każdego i l spełnia się warunek g p 1 / g 1 mod p. Przykład: Chcemy sprawdzić, czy liczba 2 będzie generatorem zbioru Z * =28= / 2 mod 29=2 14 mod 29= 1mod / 7 mod 29=2 4 mod 29 1 To oznacza, że liczba 2 jest generatorem zbioru Z * 29. Każda liczba od 1 do 28 może być podana jako potęga liczby 2. Liczba 5 nie jest generatorem zbioru Z * 29, bo 5 14 mod 29=1. 21

22 Wykład Reszta kwadratowa Mówimy, że x jest resztą kwadratową mod p, gdy kongruencja y x mod p ma rozwiązanie, czyli y Z p * y x mod p, gdzie y jest pierwiastkiem z x mod p. Przykład Resztami kwadratowymi mod 11 są liczby 1, 3, 4, 5 i 9. Ponieważ: ±1 2 mod 11=1 ±5 2 mod 11=3 ±2 2 mod 11=4 ±4 2 mod 11=5 ±3 2 mod 11=9 Czyli te liczby są liczby określone jako reszty kwadratowe. Problem decyzyjny reszty kwadratowej Dane: liczba pierwsza p 2 oraz liczba całkowita x taka, że 0 x p 1. Pytanie: czy x jest resztą kwadratową mod p. Odpowiedź na to pytanie daje kryterium Eulera. Kryterium Eulera Niech p będzie liczbą pierwszą większą od 2 ( p 2 ). Wówczas x jest resztą kwadratową p 1 mod p wtedy i tylko wtedy, gdy x 2 1mod p. Jeśli to jest spełnione wtedy x jest resztą kwadratową. Załóżmy, że x y 2 mod p wtedy z małego twierdzenia Fermata wypływa, że x p 1 1mod p, gdy x 0mod p (czyli x nie jest podzielne przez p ). Mamy zatem p 1 p 1 x 2 y 2 2 mod p =y p 1 mod p 1 mod p. Na odwrót p 1 Załóżmy, że x 2 1 mod p. Niech g jest generatorem zbioru Z p*. Wtedy x g i mod p (dla pewnego i ). p 1 p 1 Mamy wówczas x 2 i i g 2 mod p, są stąd wynika, że 2 ±g są pierwiastkami kwadratowymi liczby x. 22

23 Twierdzenie Niech p 2, q 2 będą liczbami pierwszymi oraz p q, a n= p q. Oprócz tego NWD x, n =1 i x N. Wtedy: 1. Jeśli y 2 x mod n to dla reszt (1) y p y mod p, y q y mod q (2) wykonuje się kongruencja y p 2 x mod p, y q 2 x mod q. (3) Odwrotnie niech spełnia się kongruencja (3), wtedy każdy y jakie spełnia porównanie (2) spełnia porównanie (1). 2. Istnieje dokładnie cztery pierwiastki z x mod n. Załóżmy, że y p 2 x mod p, y q 2 x mod q oraz liczby S p, S q pryzmują wartości S p,s q { 1,1}. Na podstawie chińskiego twierdzenia o resztach istnieje dokładnie jedna liczba z taka, że z S p y p mod p, z S q y q mod q oraz z 2 x mod n. Ponieważ S p, S q było dowolną kombinacją liczb 1, -1 otrzymujemy w ten sposób cztery pierwiastki: z 1 z resztami y p, y q z 1 z resztami p y p,q y q z 2 z resztami y p,q y q z 2 z resztami p y p, y q Przykład Oblicz wszystkie pierwiastki równania y 2 x mod n, gdy x=58, n= p q, p=7, q= Sprawdzamy czy NWD x, n =NWD 58, 77 =1 y p 2 =x mod p=58mod 7=2 y p q =x mod q=58 mod 11=3 p=7=4 1 3 w tym przypadku, żeby obliczyć pierwiastek spotęgować o resztę razem y p =2 1 1 mod 7=±4 mod 7= 4, 3 q=11=4 2 3 y q =3 3 mod 11=±5 mod11= 5,6 2. Stosując chińskie twierdzenie o resztach. Szukamy z 1 takie, że: z 1 =4 mod 7 z 1 =5mod 11 z 1=60 z 2 = z 1 mod n= 60md 77=17 z 3 =4 mod 7 z 3 =6 mod11 z 1 =39 z 4 = z 3 mod 77=38 Są to pierwiastki tego równania. Testy pierwszości (czy liczba jest pierwsza) Mówimy, że w n jest światkiem pierwszości dla n jeśli w n 1 1 mod n (na mocy małego twierdzenia Fermata). Jeśli n jest liczbą pierwszą to wszystkie w n są pierwszości. 23

24 Testy Prabolistyczne Test Fermata k razy niezależnie przeprowadzamy testy. 1. Wybieramy w sposób losowy liczbę w n i obliczamy NWD w,n. 2. Jeśli NWD w, n 1 to n liczba złożona. 3. Inaczej obliczamy u=w n 1 mod n 4. Jeśli u 1 to n liczba złożona. Jeśli w trakcie żadnego k testów nie stwierdzimy, że n jest liczbą złożoną to odpowiedź brzmi n jest liczbą pierwszą. Twierdzenie Niech S oznacza zbiór liczb względnie pierwszych z n. Wtedy albo każdy element S jest świadkiem pierwszości n albo co najwyżej połowa elementów S jest świadkiem pierwszości n. Z powyższego twierdzenia wynika, że prawdopodobieństwo tego test Fermata daje dobrą odpowiedź wina k (k-ilości testów). Istnieją liczby tak zwane liczby Carmichael R.D. Dla których test Fermata zawsze daje złą odpowiedź. Najmniejsza z tych liczb równa się 651= Czyli istnieje tabela takich liczb, które są mniejsze od Test Millera Rabina Badamy, czy n to liczba pierwsza. Załóżmy, że n 1=2 s m, gdzie m to liczba nieparzysta. k-razy przeprowadzamy test. 1. Wybieramy liczbę, która musi być 0 x n. 2. Jeśli NWD x,n 1, wtedy n złożone, inaczej. 3. Obliczamy y 0 =x m mod m. 4. Jeśli y 0 =1 to przeprowadzamy obliczenia i stwierdzamy, że n jest pierwsza, inaczej Obliczamy y i =y i 1 mod n. Przerywając te obliczenia, gdy y i =±1. 6. Jeśli y i =1 to stwierdzamy, że n jest złożona, a jeśli y i = 1 to n jest pierwsze. Twierdzenie Jeśli m jest liczbą złożoną to prawdopodobieństwo, że losowo wybrany x 0 x n nie jest świadkiem pierwszości dla n wynosi co najmniej 3 4. Test Millera Rabina daje prawdopodobieństwo k, że liczba jest liczbą pierwszą. 24

25 Testy deterministyczne Test AKS (Agrawal Kojal, Suksen) Niech NWD a, p =1, p 1, a N. Liczba p niech będzie liczbą pierwszą wtedy i tylko wtedy, gdy: x a p x p a mod p Liczba postaci , ta liczba ma 139 cyfr, była pierwszą największą liczbą pierwszą, liczba Luka udowodnił on Ta liczba przez 75 lat była największą znaną liczbą pierwszą. Liczby pierwsze postaci M k =2 k 1, gdzie k, też liczbą pierwszą nazywają się liczbami Mersena, a liczby pierwsza postaci 2 k 1 ( k=2 n, n N ) nazywają się liczbami pierwszymi Fermata. Twierdzenie Luka Liczba M k =2 k 1 ( k 2 ) wtedy i tylko wtedy jest liczbą pierwszą, gdy liczba L k 1 jest dzielna przez M k, gdzie L 1 =4, a L n 1 =L n

26 Wykład Szyfr afiniczny Klusze a, s :0 a n, 0 s n, gdzie n -ilość liter alfabetu (litery numerowane od zera). NWD a, n =1 Szyfrowanie: litera x tekstu jawnego zamienia się na E x = a x s mod n=x '. Deszyfrowanie: D x ' = a ' x ' s ' mod n, gdzie a'=a 1 mod n, s '= n a ' s mod n. Jeśli a=1 to szyfr jest linowy. Złożoność obliczeniowa Mówimy, że algorytm A jest algorytmem czasu wielomianowego jeżeli istnieje stała całkowita d taka, że liczba operacji bitowych niezbędnych do wykonania algorytmu A na danej długości k jest rzędu O k d (np 8n 2 2 n=o n 2 ). Długość liczby n jest ilość bitów potrzebnych do jej zapisywania oraz dł n =1 [log 2 n ]=O ln n. Czas pracy testu Millera Rabina, gdy badamy liczbę n można oszacować jako O n 3. Klasy problemów Problemy klasy P Problemy należy do klasy P jeśli istnieje stała d i algorytm taki, że jeśli przypadek problemu ma dane długości mniejsze równe n ( n ) to algorytm odpowiada na pytanie w czasie O n d, to zaznaczy w czasie wielomianowym. Problemy klasy NP Problem należy do klasy NP jeśli dla każdego przypadku problemu, osoba dysponuje nieograniczoną mocą obliczeniową, może nie tylko odpowiedzieć na pytanie będące treścią problemu, ale w przypadku gdy odpowiedź brzmi tak może dostarczyć dowodu którego inna osoba może użyć do sprawdzenia poprawności odpowiedzi w czasie wielomianowym. Problem, czy P=NP należy do 7 nierozwiązanych problemów matematyki współczesnej ( Clay Mathematics Institute of Cambridge Massachusetts). Powszechnie uważa się, że P NP. Problem klasy NP-zupełny Problem Q klasy np. nazywamy problemem NP-zupełnym jeśli każdy inny problem klasy np. można zredukować do Q w czasie liniowym. 26

27 Twierdzenie Problem kryptoanalizy algorytmu asymetrycznych jest zagadnieniem z klasy NP. Z twierdzenia wynika, że złamanie szyfru utworzonego przy użyciu algorytmów asymetrycznych nie może być trudniejsze niż rozwiązanie problemu np. zupełnego. Nigdy nie osiągniemy dla algorytmów asymetrycznych takiego bezpieczeństwa jak dla algorytmu one-time pad (jednorazowego notatnika). Teoria złożoności obliczeniowej operuje asymptotyczną złożonością problemu, wyznacza to złożoność problemu z dokładnością do stałego czytnika, nawet jeśli ta stała wynosi w przypadku wyrażenia O n to mówimy o liniowym czasie obliczeń. Praktycznie jednak algorytm o złożoności n jest zupełnie bezużyteczny. Naturalnie jest rozważać zagadnienie NP-zupełne jako najbardziej złożone w klasie NP. Standardowym przykładem są algorytmy plecakowe (algorytmy plecakowe należą do klasy NP-zupełne). Szyfrowanie plecakowe Problem plecakowy Dane są liczby naturalne a 1,a 2,...,a n oraz liczba k. szukane są liczby i 1, i 2,...,i n {0 1} takie, że i j a j =k (k-plecaków). Problem z klasy NP-zupełnych. Szyfrowanie n j=1 Ciąg bitów i 1, i 2,...,i n jest szyfrowany poprzez liczbę i j a j przy tym powstają następujące problemy: 1) Pojedynczy kryptogram musi odpowiadać jednemu tekstowi jawnemu, ale można pokazać, n że j=1 n i j a j = j=1 k j a j, gdzie k j inny ciąg bitów. 2) Złamanie takich szyfrów jest trudne ze względu na NP-zupełność, ale nie znamy również żadnej metody by za pomocą klucza taki kryptogram deszyfrować. Oba problemy dają się rozwiązać poprzez pełne ograniczenia na wartości a j, j=1, k. Definicja wektora super rosnącego n j=1 Wektor a 1,a 2,...,a n nazywamy super rosnącym jeśli i n j i a j a i. Wtedy dla każdego wektora super rosnącego: 1. Każdemu kryptogramowi odpowiada jeden tekst jawny. 2. Deszyfrowanie może być dokonane w czasie proporcjonalnym do długości wektora super rosnącego. Wynika problem, każdy kto zna wektor super rosnący może zarówno szyfrować i deszyfrować, bo 27

28 algorytm asymetryczny przewiduje jeden klucz do szyfrowania i jeden do deszyfrowania. Aby poradzić z tym problemem szyfrowanie będzie odbywać się za pomocą innego wektora. W tym celu: n 1. Wybieramy liczbę M, która jest M a j. j=1 2. Wybieramy M i W takie, że M 2 W M, NWD M,W =1. 3. Tworzymy nowy ciąg a i ' = a i W mod M (klucz publiczny). Utworzony ciąg permutuje się, i tak utworzony wynik podaje się jako klucz publiczny, a klucz prywatny jest wektorem super rosnącym a 1, a 2,...,a n, M, W oraz użyta permutacja (klucz prywatny). Szyfrowanie i deszyfrowanie Dla prostoty założymy, że permutacja nie jest używana. Szyfrowanie bitów i 1,i 2,...,i n odbywa się standardowo za pomocą klucza publicznego i kryptogram równa się y= a ' i i j (stosujemy klucz publiczny). j n Deszyfrowanie: 1. Obliczamy wartość W 1 mod M 2. Obliczamy W 1 y mod M= a i i j =k j n 3. Dla kryptogramu K i wektora super rosnącego a 1, a 2,..., a n znajdujemy tekst jawny i 1,i 2,...,i n. Zauważmy, że i n =1 wtedy i tylko wtedy, gdy k a n. Po znalezieniu i n rozważmy wartość k '=k i n a n i super rosnący wektor a 1, a 2,..., a n analogicznie jak poprzedni możemy teraz znaleźć i n 1. Konstrukcja ciągu pseudo losowych Losowe ciągi są niezbędnym elementem algorytmów kryptograficznych. 1. Generowanie kluczy algorytmu RSA, szyfrowanie algorytmem ElGamala. 2. Generowanie podpisów cyfrowych. 3. Liczne protokoły kryptograficzne. 4. one-time pad (szyfrowanie notatnika) i pokrewne mu szyfrowanie strumieniowe. Ciąg pseudolosowe można uzyskać za pomocą algorytmu deterministycznych. Jedynym losowym elementu takiego ciągu jest zarodek. Ciąg pseudolosowy jest tworzony tak, że jego i-ty element s i jest wyznaczony przez algorytm z zarodka x, indeksu i oraz wartości s 1, s 2,..., s i 1. Nie powinny ciągi pseudolosowy być rozróżnialne od prawdziwe losowych ciągów przy użyciu 28

29 żadnych praktyczne dostępnych metod. To znaczy: niech {X n }, {Y n } są dwa siągi binarne, mówimy że te ciągi nie są rozróżnialne w czasie wielomianowym jeśli dla każdego algorytmu A zachodzi nierówność: c 0 P [ A X n =1] P [ A Y n =1] 1 n c Dla stałej c przy wystarczająco dużych n, gdzie P[ A X n =1] oznacza prawdopodobieństwo tego, że algorytm A daje odpowiedź 1, gdy na jego wejście podany jest losowy ciąg x n. Oprócz tego nie powinie być ciągi pseudolosowe przewidywalne, to znaczy, że bez znajomości zarodka nie da się obliczyć bitu s i z bitu s 1,s 2,...,s i 1. s i można policzyć za pomocą wzoru: s i = a s i 1 b mod n, gdzie b - liczba nieparzysta n - liczba parzysta a mod 4=1 s 0 - liczba duża s i 1 = a s i b mod n Ta konstrukcja nie pasuje dla celów kryptograficznych, bo można obliczyć zarodek. Generatory 1. Generator Linear Feedback Shift Register Zarodek w ciągu stanowi konfiguracje połączeń pomiędzy rejestrami, a węzłami realizującymi operacje XOR oraz początkowy ciąg bitów zapisanych w rejestrze przesuwającym. Rejestr przesuwający Generator liczb XOR Podczas jednego taktu pracy wyliczana jest wartość XOR i obliczany bit jest przesyłany do rejestru na miejsce pierwszego z lewej, a późnej przesuwane bity o jedną pozycje w prawo. 2. Generator BBS (Lenora and Manuel Blum, Mike Shub) Niech p i q są to liczby pierwsze, p q oraz p q=3 mod 4. Załóżmy, że r Z n, gdzie 2 n= p q i jest losowym elementem. Obliczamy: x i = x i 1 mod n, x 0 =r 2 mod n, a ciąg pseudolosowy s i = x i mod 2, i=1,2, Generator Blum-Micali a i p są to liczby pierwsze, p~1024 ( p rzędu 1024 bity i wyżej). x 0 p Stanowi zarodeg generatora. Definiujemy x i 1 =a x i mod p. Wtedy: 29

30 s i = 1 jeśli x i p 1 /2 0 w przeciwnym przypadku 4. Generator oparty o algorytm RSA Załóżmy e, n - klucz prywatny algorytmu RSA. Definiujemy x i 1 =x i e mod n oraz x 0 n zarodnik generatora, wtedy s i = x i mod 2. 30

31 Wykład Kryptosystem RSA Został przedstawiony w 1977 r. Nazwa tego systemu pochodzi od nazwisk jego autorów R. Rivest, A. Shamin, L. Adleman. Zastosowanie: Niech K 1 jest kluczem prywatnym, a K 2 kluczem publicznym osoby A (Alicja). 1. Szyfrowanie korespondencji Osoba B (Bob) pragnie przesłać list M do osoby A. W tym celu osoba B oblicza E K 2 M i wysyła. Osoba A otrzymuje E K 2 M i oblicza D K 1 E K2 M =M. To gwarantuje, że tylko osoba A może odczytać list od osoby B. 2. Uwierzytelnianie Osoba A pragnie rozesłać komunikat T potwierdzający przy tym, że jest jego autorem. Osoba A szyfruje T jako E K 1 T, każdy odbiorca deszyfruje wiadomość za pomocą klucza K 2, D K 2 E K 1 T =T. I Algorytm RSA Jednostkom m tekstu jawnego są liczby całkowite z przedziału 0 m N. W praktyce liczba N ma od 200 do 600 znaków dziesiętnych ( ). Litery alfabetu są traktowane jako rozwiązanie liczby całkowitych przy podstawieniu 10. Co robi, każdy użytkownik: 1) Wybór kluczy. Losowo wybieramy dwie różne liczby pierwsze p i q, tak żeby n= p q N. 2) Losowo wybieramy liczbę e tak, aby e było tego samego rzędu wielkości co n oraz NWD e, n =1, gdzie n to funkcja Eulera. 3) Za pomocą algorytmu Euklidesa znajdujemy liczbę d=e 1 mod n. Liczby e, n - wygenerowany klucz e, n to klucz publiczny, natomiast d klucz prywatny. II Szyfrowanie Szyfrowane mogą być liczby m n. W taki sposób: E m =m e mod n=c (wykorzystywany klucz publiczny). III Deszyfrowanie D C =C d mod n=m (wykorzystywany klucz prywatny) 31

32 Przykład Załóżmy, że p=53, q=63 (w praktyce liczby p, q muszą być conajmniej 1024 bitowe). Jednocześnie obliczamy d =e 1 mod n =1237 e=1021 i n=3551 to klucz publiczny, natomiast d =1237 klucz prywatny. Użytkownik B pragnie przesłać wiadomość do osoby A. Wiadomość: M 1. Szukamy klucza publicznego osoby A. 2. Dzielimy wiadomość co 4 literki, bo wiadomość musi być mniejsza od n mod3551= mod 3551= mod 3551= C Żeby to deszyfrować wykorzystujemy klucz prywatny. Zasada tworzenia klucza szyfrowania i deszyfrowania opiera się na następującym twierdzeniu, które wypływa z twierdzenia Oliera. Twierdzenie 1 Niech n= p q jest iloczynem z różnych liczb pierwszych. Jeśli e d 1 mod n, to dla wszystkich x Z n wykonuje się kongruencja x e d x mod n. W trakcie szyfrowania i deszyfrowania wykonywane są operacje podnoszenia liczb do dużych potęg. Istnieje sporo metod potęgowania, zwłaszcza metoda binarna, meta metoda i metoda Montgomery. Twierdzenie 2 Niech A będzie algorytmem, który dla zadanego klucza e, n algorytmu RSA znajduje pasujący klucz D. Wtedy można skonstruować algorytm z podprocedurą A, który rozkłada n na czynniki pierwsze oraz ma podobny czas obliczeń, i używa podobnej pamięci co A. Twierdzenie 2 oznacza, że jeśli istnieje praktyczna metoda znajdowania prywatnych kluczy to można ukazać praktyczny algorytm rozkładu n na czynniki pierwsze. Problem rozkładu liczby na czyniki pierwsze jest problemem z klasy NP, ale nie wiadomo czy jest to problem NP-zupełny co świadczyło, by o jego trudności. Czas faktoryzacji (rozkład na czynniki pierwsze) zależy od ilości bitów liczby n i ten czas można oszacować jako L n =O n c, c=const, gdzie n ilość bitów. The magie words are squeamish ossifruga 1 Żeby deszyfrować to powiadomienie potrzebne było 17 lat. Liczba n miała 129 cyfr. Deszyfrowanie wymagało 220 dni, 600 ludzi, 1600 komputerów połączonych siecią. 1 Magiczne słowa są obrzydliwie nudne 32

33 2. Kryptosystem M. Kabina (1979 r.) Metoda ta ma wadę, że przy deszyfrowaniu otrzymywane są 4 różne teksty. Dla tej metody możliwość znalezienia tekstu jawnego z kryptogramu jest równoważna rozkładowi liczby na czynniki pierwsze. Wybór klucza, losowo wybieramy dwie różne liczby pierwsze p i q tak, żeby n= p q N. n to klucz publiczny, natomiast liczby p, q stanowią klucz prywatny. Szyfrowanie C=E m =m 2 mod n, m n Deszyfrowanie 1 m=c 2 mod n (stąd wypływa, że będą 4 różne pierwiastki) Przykład Załóżmy, że p=53, q=63, wtedy n=3551. Załóżmy, że mamy kryptogram C=1497. W tym celu obliczmy: y p 2 =1497 mod 53=13 y q 2 =1497 MOD67=23 Liczba p=53=8 m 5, gdzie m=6 oraz 13 2m 1 1 mod 53 Liczba q=67=4 m 3, gdzie m=16. Na podstawie Chińskiego twierdzenia o resztach otrzymujemy liczbę z 1 =969 taka, że mod mod 67 Dla reszt 15 i 36 otrzymujemy, że: z 2 =1711 z 3 = z 1 mod n=2582 z 4 = z 2 mod n=1840 Czyli mamy 4 teksty jawne. 3. Kryptosystem ElGamala (1985 r.) Wybór klucza. 1. Losowo wybieramy liczbę pierwszą p (w praktyce 1024 bity i wyżej). 2. Losowo wybieramy g tab, aby 1 g p 1. W idealnym przypadku g jest generatorem zbioru Z p. 3. Znajdujemy liczby a i h takie, że 1 a p 1, a h=g a mod p. 33

34 p, g, h jest wygenerowanym kluczem publicznym, natomiast a to klucz prywatny. Szyfrowanie Szyfrowane mogą być liczby n p. Wykonywane są następujące kropki: 1) Wybieramy losowo liczbę r tak, aby 1 r p 1. 2) Obliczamy kryptogram, który składa się z dwóch bloków: C= C 1,C 2 C 1 =g r mod p C 2 =m h r mod p Deszyfrowanie D C =C 2 C a 1 1 mod p Sprawdzenie: C 2 C a 1 1 =m h r g r a 1 =m g r a g r a 1 =m Możliwe jest jeszcze ukrycie informacji używając r. Przykład Załóżmy, że p=23, g=5, a=6. Obliczamy h=5 6 mod 23=8 Klucz został wygenerowany: 23, 5, 8 klucz publiczny 6 klucz prywatny Chcemy zaszyfrować wiadomość m=7 (musi m p ). Wybieramy r =10 i obliczamy. C 1 =5 10 mod 23=9 C 2 = mod 23=21 C= 9, 21 Aby deszyfrować posługujemy się kluczem prywatnym. D C = mod 23=7 34

35 Wykład 11 (9) Szyfrowanie strumieniowe Ta metoda prezentuje podejście, nie bloki, a pojedyncze bity są szyfrowane i bezpośrednio po szyfrowaniu gotowe do wysłania. Ona może być realizowana poprzez jednoczesne wykorzystanie ciągów pseudolosowych i idei one-time pad. Szyfrowanie za pomocą klucza K ma przebieg: a) Klucz K traktujemy jako zarodek generatora bitów pseudolosowych s 1,s 2,... b) kryptogram tekstu jawnego a 1,a 2,... ma postać c j =a j XOR s j. 2. RC4 Ta metoda jest szeroko stosowana w praktyce. Algorytm dobrze nadaje się do implementacji software'owej. Ciąg pseudolosowy używany do szyfrowana i deszyfrowania generowany jest jako ciąg bitów: a) w każdej fazie algorytmu generowany jest jeden bajt ciągu pseudolosowego. Jednocześnie uaktualniane są parametry i, j 256 oraz permutacje na zbiorze liczb {1, 2,..., 256 }. i, j, - wewnętrzne klucze b) pojedyncze fazy algorytmu wykonują następujące operacje i=i 1mod 256 j= j i mod 256 swap i, j zamienia wartość dla argumentu i oraz j k= i j Liczba k jest kolejnym bajtem ciągu pseudolosowego generowanego w tej fazie. c) Wewnętrzny klucz i, j, są inicjalizowane za pomocą ciągu bitów klucza k o długości m k=s 1, s 2,...,s m 1 przy czym i=0, j=0, n =n dla n 256. Następnie 256 razy wykonywane są operacje j= j i s i mod 256 swap i, j i=i 1mod m d) Zgodnie z zasadą szyfrowania strumieniowego generowany jest i-ty bit kryptogramu. Operacje wykonywane na w pojedynczej fazie zmierzają do zamiany w pseudolosowy sposób. Bajty k wybierane są jako wartość permutacji w miejscu dynamicznie wskazanym poprzez wartości i, j. 3. Algorytm Bluma-Goldwassr Algorytm jest opart o własności generatora BBS oraz trudności rozkładu liczby na czynniki pierwsze. Niech p i q będą dostatecznie dużymi liczbami pierwszymi oraz p=q=3 mod 4. Liczby p i q stanowią klucz służący do deszyfrowania natomiast m= p q to klucz szyfrowania. 35

36 Szyfrowanie a) Wybieramy losowe x 0 jako zarodek generatora BBS. b) Dla l-bitowego tekstu jawnego generujemy liczby x 1, x 2,..., x l 1, gdzie x i 1 =x i 2 mod n i {0,...,l }. Z tych bitów generujemy s 1, s 2,..., s l, gdzie s i = x i mod 2. c) Dla tekstu jawnego w postaci binarnej a 1,a 2,...,a l obliczamy kryptogram c i =a i XOR s i d) Kryptogramem podanego tekstu jawnego jest c 1, c 2,...,c l, x l 1 Deszyfrowanie Na podstawie p, q, x l 1 obliczamy x l, x l 1,..., x 1, a z nich a i =c i XOR s i Metoda obliczania s 1, s 2,..., s l. 2 Mamy x i 1 =x i mod n. Niech y 2 p =x i mod p, a y 2 q = x i mod q. Ponieważ p=q=3 mod 4, to y p =x i y q = x i p 1 4 mod p q 1 4 mod q Dalej rozważamy równania p u q v=1 x i 1 = p u y q q v y p, i=l 1,l,..., 2 Funkcje hashujące W kontekście zastosowań kryptograficznych te funkcje mogą być wykorzystywane: MD5 1) Przy przechowywaniu haseł. 2) Podpisach cyfrowych. 3) Uwierzytelnianiu dokumentów. Algorytm składa się z 4 rund. Dokonuje obliczeń na 6 blokach 32-bitowych i przekształca ciągi 512-bitowe w 128-bitowe. Każda runda wykorzystuje operacje logiczne,, (kreseczka to negacja). Powyższe operacje wykonywane są na odpowiadających sobie bitach 32-bitowych blokach X,Y, Z : definiujemy procedury F X,Y,Z =X Y X Z G X,Y, Z =X Y Y Z H X, Y, Z =X Y Z I X,Y, Z =Y X Z Za pomocą funkcji F,G,H, I definiujemy procedury FF,GG,HH,II. 36

37 FF a,b,c,d,m j, s,t i gdzie M j oznacza j-oty blok 32 bitów ciągu wejściowego, a + to dodawanie mod FF a,b,c,d,m j, s,t i =a:=b Sh s F b,c,d M j t i Sh s oznacza operacje cyklicznego przesuwania o s pozycji w prawo. t i =[2 32 sin i ] Dla GG, HH,II funkcję F zastępuje się odpowiednią G, H,I. Algorytm używa rejestrów a, b, c, d przechowujących liczby 32-bitowe. Ich początkowe wartości są następujące: a= b=efcdab89 c=98badcfe d = Część całkowita Runda 1 Po kolei jest wykonywane 16 operacji: 1. FF a,b, c,d,m 0,7,t 1 2. FF a, b, c, d,m 1,12, t 2 3. FF a,b, c,d,m 2,7,t FF a, b, c, d,m 15, 22, t 16 Każdorazowo rejestry są przesunięte o jedną pozycję. Ponadto przedostatnie argumenty tworzą ciąg losowy. Runda 2 Przebieg podobnie do rundy 1, jednak zamiast FF używamy procedury GG oraz ciąg okresowy 5, 9, 14,20. Poza tym używa wartość t s 1 oraz M 1 5i mod16. Runda 3 Przebieg z angiologicznymi zmianami ciąg 4, 11, 16,23 HH t 32 i M 5 3 i mod16 Runda 4 II 37

2 Kryptografia: algorytmy symetryczne

2 Kryptografia: algorytmy symetryczne 1 Kryptografia: wstęp Wyróżniamy algorytmy: Kodowanie i kompresja Streszczenie Wieczorowe Studia Licencjackie Wykład 14, 12.06.2007 symetryczne: ten sam klucz jest stosowany do szyfrowania i deszyfrowania;

Bardziej szczegółowo

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

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 15, Kryptografia: algorytmy asymetryczne (RSA) Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 15, 19.06.2005 1 Kryptografia: algorytmy asymetryczne (RSA) Niech E K (x) oznacza szyfrowanie wiadomości x kluczem K (E od encrypt, D K (x)

Bardziej szczegółowo

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

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 14, Kryptografia: algorytmy asymetryczne (RSA) Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 14, 7.06.2005 1 Kryptografia: algorytmy asymetryczne (RSA) Niech E K (x) oznacza szyfrowanie wiadomości x kluczem K (E od encrypt, D K (x)

Bardziej szczegółowo

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

n = p q, (2.2) przy czym p i q losowe duże liczby pierwsze. Wykład 2 Temat: Algorytm kryptograficzny RSA: schemat i opis algorytmu, procedura szyfrowania i odszyfrowania, aspekty bezpieczeństwa, stosowanie RSA jest algorytmem z kluczem publicznym i został opracowany

Bardziej szczegółowo

Algorytmy asymetryczne

Algorytmy asymetryczne Algorytmy asymetryczne Klucze występują w parach jeden do szyfrowania, drugi do deszyfrowania (niekiedy klucze mogą pracować zamiennie ) Opublikowanie jednego z kluczy nie zdradza drugiego, nawet gdy można

Bardziej szczegółowo

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

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś  Wykład 8 Kryptografia z elementami kryptografii kwantowej Ryszard Tanaś http://zon8.physd.amu.edu.pl/~tanas Wykład 8 Spis treści 13 Szyfrowanie strumieniowe i generatory ciągów pseudolosowych 3 13.1 Synchroniczne

Bardziej szczegółowo

Zarys algorytmów kryptograficznych

Zarys algorytmów kryptograficznych 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......................

Bardziej szczegółowo

Zastosowanie teorii liczb w kryptografii na przykładzie szyfru RSA

Zastosowanie teorii liczb w kryptografii na przykładzie szyfru RSA Zastosowanie teorii liczb w kryptografii na przykładzie szyfru RSA Grzegorz Bobiński Uniwersytet Mikołaja Kopernika Toruń, 22.05.2010 Kodowanie a szyfrowanie kodowanie sposoby przesyłania danych tak, aby

Bardziej szczegółowo

Wybrane zagadnienia teorii liczb

Wybrane zagadnienia teorii liczb Wybrane zagadnienia teorii liczb Podzielność liczb NWW, NWD, Algorytm Euklidesa Arytmetyka modularna Potęgowanie modularne Małe twierdzenie Fermata Liczby pierwsze Kryptosystem RSA Podzielność liczb Relacja

Bardziej szczegółowo

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

Dr inż. Robert Wójcik, p. 313, C-3, tel Katedra Informatyki Technicznej (K-9) Wydział Elektroniki (W-4) Politechnika Wrocławska Dr inż. Robert Wójcik, p. 313, C-3, tel. 320-27-40 Katedra Informatyki Technicznej (K-9) Wydział Elektroniki (W-4) Politechnika Wrocławska E-mail: Strona internetowa: robert.wojcik@pwr.edu.pl google: Wójcik

Bardziej szczegółowo

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

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś   Wykład 5 Kryptografia z elementami kryptografii kwantowej Ryszard Tanaś http://zon8.physd.amu.edu.pl/~tanas Wykład 5 Spis treści 9 Algorytmy asymetryczne RSA 3 9.1 Algorytm RSA................... 4 9.2 Szyfrowanie.....................

Bardziej szczegółowo

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

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.) Kryptografia-0 -zachowanie informacji dla osób wtajemniczonych -mimo że włamujący się ma dostęp do informacji zaszyfrowanej -mimo że włamujący się zna (?) stosowaną metodę szyfrowania -mimo że włamujący

Bardziej szczegółowo

Podstawy systemów kryptograficznych z kluczem jawnym RSA

Podstawy systemów kryptograficznych z kluczem jawnym RSA Podstawy systemów kryptograficznych z kluczem jawnym RSA RSA nazwa pochodząca od nazwisk twórców systemu (Rivest, Shamir, Adleman) Systemów z kluczem jawnym można używać do szyfrowania operacji przesyłanych

Bardziej szczegółowo

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

Bezpieczeństwo systemów komputerowych. Metody łamania szyfrów. Kryptoanaliza. Badane własności. Cel. Kryptoanaliza - szyfry przestawieniowe. Bezpieczeństwo systemów komputerowych Metody łamania szyfrów Łamanie z szyfrogramem Łamanie ze znanym tekstem jawnym Łamanie z wybranym tekstem jawnym Łamanie z adaptacyjnie wybranym tekstem jawnym Łamanie

Bardziej szczegółowo

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

Bezpieczeństwo systemów komputerowych. Kryptoanaliza. Metody łamania szyfrów. Cel BSK_2003. Copyright by K.Trybicka-Francik 1 Bezpieczeństwo systemów komputerowych mgr Katarzyna Trybicka-Francik kasiat@zeus.polsl.gliwice.pl pok. 503 Metody łamania szyfrów Łamanie z szyfrogramem Łamanie ze znanym tekstem jawnym Łamanie z wybranym

Bardziej szczegółowo

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

INŻYNIERIA BEZPIECZEŃSTWA LABORATORIUM NR 2 ALGORYTM XOR ŁAMANIE ALGORYTMU XOR INŻYNIERIA BEZPIECZEŃSTWA LABORATORIUM NR 2 ALGORYTM XOR ŁAMANIE ALGORYTMU XOR 1. Algorytm XOR Operacja XOR to inaczej alternatywa wykluczająca, oznaczona symbolem ^ w języku C i symbolem w matematyce.

Bardziej szczegółowo

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

LICZBY PIERWSZE. 14 marzec 2007. Jeśli matematyka jest królową nauk, to królową matematyki jest teoria liczb. C.F. Jeśli matematyka jest królową nauk, to królową matematyki jest teoria liczb. C.F. Gauss (1777-1855) 14 marzec 2007 Zasadnicze twierdzenie teorii liczb Zasadnicze twierdzenie teorii liczb Ile jest liczb

Bardziej szczegółowo

Spis treści. Przedmowa... 9

Spis treści. Przedmowa... 9 Spis treści Przedmowa... 9 1. Algorytmy podstawowe... 13 1.1. Uwagi wstępne... 13 1.2. Dzielenie liczb całkowitych... 13 1.3. Algorytm Euklidesa... 20 1.4. Najmniejsza wspólna wielokrotność... 23 1.5.

Bardziej szczegółowo

Przykładowe zadania z teorii liczb

Przykładowe zadania z teorii liczb Przykładowe zadania z teorii liczb I. Podzielność liczb całkowitych. Liczba a = 346 przy dzieleniu przez pewną liczbę dodatnią całkowitą b daje iloraz k = 85 i resztę r. Znaleźć dzielnik b oraz resztę

Bardziej szczegółowo

Rijndael szyfr blokowy

Rijndael szyfr blokowy Rijndael szyfr blokowy Andrzej Chmielowiec 24 lipca 2002 1 Podstawy matematyczne Kilka operacji w standardzie Rijndael jest zdefiniowanych na poziomie bajta, przy czym bajty reprezentują elementy ciała

Bardziej szczegółowo

Algorytmy i struktury danych. Wykład 4

Algorytmy i struktury danych. Wykład 4 Wykład 4 Różne algorytmy - obliczenia 1. Obliczanie wartości wielomianu 2. Szybkie potęgowanie 3. Algorytm Euklidesa, liczby pierwsze, faktoryzacja liczby naturalnej 2017-11-24 Algorytmy i struktury danych

Bardziej szczegółowo

Luty 2001 Algorytmy (7) 2000/2001 s-rg@siwy.il.pw.edu.pl

Luty 2001 Algorytmy (7) 2000/2001 s-rg@siwy.il.pw.edu.pl System dziesiętny 7 * 10 4 + 3 * 10 3 + 0 * 10 2 + 5 *10 1 + 1 * 10 0 = 73051 Liczba 10 w tym zapisie nazywa się podstawą systemu liczenia. Jeśli liczba 73051 byłaby zapisana w systemie ósemkowym, co powinniśmy

Bardziej szczegółowo

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

Bezpieczeństwo systemów komputerowych. Algorytmy kryptograficzne (1) Algorytmy kryptograficzne. Algorytmy kryptograficzne BSK_2003 Bezpieczeństwo systemów komputerowych Algorytmy kryptograficzne (1) mgr Katarzyna Trybicka-Francik kasiat@zeus.polsl.gliwice.pl pok. 503 Algorytmy kryptograficzne Przestawieniowe zmieniają porządek znaków

Bardziej szczegółowo

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

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś  Wykład 7 Kryptografia z elementami kryptografii kwantowej Ryszard Tanaś http://zon8.physd.amu.edu.pl/~tanas Wykład 7 Spis treści 11 Algorytm ElGamala 3 11.1 Wybór klucza.................... 3 11.2 Szyfrowanie.....................

Bardziej szczegółowo

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

Zamiana porcji informacji w taki sposób, iż jest ona niemożliwa do odczytania dla osoby postronnej. Tak zmienione dane nazywamy zaszyfrowanymi. Spis treści: Czym jest szyfrowanie Po co nam szyfrowanie Szyfrowanie symetryczne Szyfrowanie asymetryczne Szyfrowanie DES Szyfrowanie 3DES Szyfrowanie IDEA Szyfrowanie RSA Podpis cyfrowy Szyfrowanie MD5

Bardziej szczegółowo

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

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś  Wykład 1 Kryptografia z elementami kryptografii kwantowej Ryszard Tanaś http://zon8physdamuedupl/~tanas Wykład 1 Spis treści 1 Kryptografia klasyczna wstęp 4 11 Literatura 4 12 Terminologia 6 13 Główne postacie

Bardziej szczegółowo

Szyfrowanie informacji

Szyfrowanie informacji Szyfrowanie informacji Szyfrowanie jest sposobem ochrony informacji przed zinterpretowaniem ich przez osoby niepowołane, lecz nie chroni przed ich odczytaniem lub skasowaniem. Informacje niezaszyfrowane

Bardziej szczegółowo

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

PROBLEMATYKA BEZPIECZEŃSTWA SIECI RADIOWYCH Algorytm szyfrowania AES. Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska PROBLEMATYKA BEZPIECZEŃSTWA SIECI RADIOWYCH Algorytm szyfrowania AES Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska Wprowadzenie Problemy bezpieczeństwa transmisji Rozwiązania stosowane dla

Bardziej szczegółowo

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

0 --> 5, 1 --> 7, 2 --> 9, 3 -->1, 4 --> 3, 5 --> 5, 6 --> 7, 7 --> 9, 8 --> 1, 9 --> 3. (Aktualizacja z dnia 3 kwietnia 2013) MATEMATYKA DYSKRETNA - informatyka semestr 2 (lato 2012/2013) Zadania do omówienia na zajęciach w dniach 21 i 28 kwietnia 2013 ZESTAW NR 3/7 (przykłady zadań z rozwiązaniami)

Bardziej szczegółowo

Parametry systemów klucza publicznego

Parametry systemów klucza publicznego Parametry systemów klucza publicznego Andrzej Chmielowiec Instytut Podstawowych Problemów Techniki Polskiej Akademii Nauk 24 marca 2010 Algorytmy klucza publicznego Zastosowania algorytmów klucza publicznego

Bardziej szczegółowo

Matematyka dyskretna

Matematyka dyskretna Matematyka dyskretna Wykład 6: Ciała skończone i kongruencje Gniewomir Sarbicki 2 marca 2017 Relacja przystawania Definicja: Mówimy, że liczby a, b Z przystają modulo m (co oznaczamy jako a = b (mod m)),

Bardziej szczegółowo

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

Ataki na RSA. Andrzej Chmielowiec. Centrum Modelowania Matematycznego Sigma. Ataki na RSA p. 1 Ataki na RSA Andrzej Chmielowiec andrzej.chmielowiec@cmmsigma.eu Centrum Modelowania Matematycznego Sigma Ataki na RSA p. 1 Plan prezentacji Wprowadzenie Ataki algebraiczne Ataki z kanałem pobocznym Podsumowanie

Bardziej szczegółowo

1. Wykład NWD, NWW i algorytm Euklidesa.

1. Wykład NWD, NWW i algorytm Euklidesa. 1.1. NWD, NWW i algorytm Euklidesa. 1. Wykład 1 Twierdzenie 1.1 (o dzieleniu z resztą). Niech a, b Z, b 0. Wówczas istnieje dokładnie jedna para liczb całkowitych q, r Z taka, że a = qb + r oraz 0 r< b.

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Szyfry kaskadowe. Szyfry kaskadowe

Szyfry kaskadowe. Szyfry kaskadowe Szyfry kaskadowe Szyfrem kaskadowym nazywamy szyfr, który jest złożeniem funkcji szyfrujących. W stosowanych w praktyce szyfrach kaskadowych jako funkcje składowe najczęściej stosowane są podstawienia

Bardziej szczegółowo

Szyfry kaskadowe. permutacyjnej (SPP).

Szyfry kaskadowe. permutacyjnej (SPP). Szyfry kaskadowe Szyfrem kaskadowym nazywamy szyfr, który jest złożeniem funkcji szyfrujących. W stosowanych w praktyce szyfrach kaskadowych jako funkcje składowe najczęściej stosowane są podstawienia

Bardziej szczegółowo

OCHRONA INFORMACJI W SYSTEMACH I SIECIACH KOMPUTEROWYCH SYMETRYCZNE SZYFRY BLOKOWE

OCHRONA INFORMACJI W SYSTEMACH I SIECIACH KOMPUTEROWYCH SYMETRYCZNE SZYFRY BLOKOWE OCHRONA INFORMACJI W SYSTEMACH I SIECIACH KOMPUTEROWYCH SYMETRYCZNE SZYFRY BLOKOWE 1 Tryby pracy szyfrów blokowych Rzadko zdarza się, by tekst jawny zawierał tylko 64 bity, czyli 8 znaków kodu ASCII. Zwykle

Bardziej szczegółowo

Matematyka dyskretna

Matematyka dyskretna Matematyka dyskretna Wykład 6: Ciała skończone i kongruencje Gniewomir Sarbicki 24 lutego 2015 Relacja przystawania Definicja: Mówimy, że liczby a, b Z przystają modulo m (co oznaczamy jako a = b (mod

Bardziej szczegółowo

II klasa informatyka rozszerzona SZYFROWANIE INFORMACJI

II klasa informatyka rozszerzona SZYFROWANIE INFORMACJI II klasa informatyka rozszerzona SZYFROWANIE INFORMACJI STEGANOGRAFIA Steganografia jest nauką o komunikacji w taki sposób by obecność komunikatu nie mogła zostać wykryta. W odróżnieniu od kryptografii

Bardziej szczegółowo

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

2.1. System kryptograficzny symetryczny (z kluczem tajnym) 2.2. System kryptograficzny asymetryczny (z kluczem publicznym) Dr inż. Robert Wójcik, p. 313, C-3, tel. 320-27-40 Katedra Informatyki Technicznej (K-9) Wydział Elektroniki (W-4) Politechnika Wrocławska E-mail: Strona internetowa: robert.wojcik@pwr.edu.pl google: Wójcik

Bardziej szczegółowo

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

Wykład VI. Programowanie III - semestr III Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej Wykład VI - semestr III Kierunek Informatyka Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2013 c Copyright 2013 Janusz Słupik Podstawowe zasady bezpieczeństwa danych Bezpieczeństwo Obszary:

Bardziej szczegółowo

Copyright by K. Trybicka-Francik 1

Copyright by K. Trybicka-Francik 1 Bezpieczeństwo systemów komputerowych Algorytmy kryptograficzne (2) mgr Katarzyna Trybicka-Francik kasiat@zeus.polsl.gliwice.pl pok. 503 Szyfry wykładnicze Pohlig i Hellman 1978 r. Rivest, Shamir i Adleman

Bardziej szczegółowo

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.

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. 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. Schemat Hornera. Wyjaśnienie: Zadanie 1. Pozycyjne reprezentacje

Bardziej szczegółowo

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

Teoria liczb. Magdalena Lemańska. Magdalena Lemańska, Teoria liczb Magdalena Lemańska Literatura Matematyka Dyskretna Andrzej Szepietowski http://wazniak.mimuw.edu.pl/ Discrete Mathematics Seymour Lipschutz, Marc Lipson Wstęp Teoria liczb jest dziedziną matematyki,

Bardziej szczegółowo

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

Zadanie 1: Protokół ślepych podpisów cyfrowych w oparciu o algorytm RSA Informatyka, studia dzienne, inż. I st. semestr VI Podstawy Kryptografii - laboratorium 2010/2011 Prowadzący: prof. dr hab. Włodzimierz Jemec poniedziałek, 08:30 Data oddania: Ocena: Marcin Piekarski 150972

Bardziej szczegółowo

ARYTMETYKA BINARNA. Dziesiątkowy system pozycyjny nie jest jedynym sposobem kodowania liczb z jakim mamy na co dzień do czynienia.

ARYTMETYKA BINARNA. Dziesiątkowy system pozycyjny nie jest jedynym sposobem kodowania liczb z jakim mamy na co dzień do czynienia. ARYTMETYKA BINARNA ROZWINIĘCIE DWÓJKOWE Jednym z najlepiej znanych sposobów kodowania informacji zawartej w liczbach jest kodowanie w dziesiątkowym systemie pozycyjnym, w którym dla przedstawienia liczb

Bardziej szczegółowo

Laboratorium nr 1 Szyfrowanie i kontrola integralności

Laboratorium nr 1 Szyfrowanie i kontrola integralności Laboratorium nr 1 Szyfrowanie i kontrola integralności Wprowadzenie Jedną z podstawowych metod bezpieczeństwa stosowaną we współczesnych systemach teleinformatycznych jest poufność danych. Poufność danych

Bardziej szczegółowo

Copyright by K. Trybicka-Francik 1

Copyright by K. Trybicka-Francik 1 Bezpieczeństwo systemów komputerowych Algorytmy kryptograficzne (2) Szyfry wykładnicze Pohlig i Hellman 1978 r. Rivest, Shamir i Adleman metoda szyfrowania z kluczem jawnym DSA (Digital Signature Algorithm)

Bardziej szczegółowo

Kryptografia systemy z kluczem tajnym. Kryptografia systemy z kluczem tajnym

Kryptografia systemy z kluczem tajnym. Kryptografia systemy z kluczem tajnym Krótkie vademecum (słabego) szyfranta Podstawowe pojęcia: tekst jawny (otwarty) = tekst zaszyfrowany (kryptogram) alfabet obu tekstów (zwykle różny) jednostki tekstu: na przykład pojedyncza litera, digram,

Bardziej szczegółowo

1.1. Standard szyfrowania DES

1.1. Standard szyfrowania DES 1.1. Standard szyrowania DES Powstał w latach siedemdziesiątych i został przyjęty jako standard szyrowania przez Amerykański Narodowy Instytut Standaryzacji (ang. American National Standards Institute

Bardziej szczegółowo

Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 =

Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 = Systemy liczbowe Dla każdej liczby naturalnej x Î N oraz liczby naturalnej p >= 2 istnieją jednoznacznie wyznaczone: liczba n Î N oraz ciąg cyfr c 0, c 1,..., c n-1 (gdzie ck Î {0, 1,..., p - 1}) taki,

Bardziej szczegółowo

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

Matematyka dyskretna. Wykład 11: Kryptografia z kluczem publicznym. Gniewomir Sarbicki Matematyka dyskretna Wykład 11: Kryptografia z kluczem publicznym Gniewomir Sarbicki Idea kryptografii z kluczem publicznym: wiadomość f szyfrogram f 1 wiadomość Funkcja f (klucz publiczny) jest znana

Bardziej szczegółowo

WSIZ Copernicus we Wrocławiu

WSIZ Copernicus we Wrocławiu Bezpieczeństwo sieci komputerowych Wykład 4. Robert Wójcik Wyższa Szkoła Informatyki i Zarządzania Copernicus we Wrocławiu Plan wykładu Sylabus - punkty: 4. Usługi ochrony: poufność, integralność, dostępność,

Bardziej szczegółowo

Algorytmy w teorii liczb

Algorytmy w teorii liczb Łukasz Kowalik, ASD 2004: Algorytmy w teorii liczb 1 Algorytmy w teorii liczb Teoria liczb jest działem matemtyki dotyczącym własności liczb naturalnych. Rozważa się zagadnienia związane z liczbami pierwszymi,

Bardziej szczegółowo

Ciała i wielomiany 1. przez 1, i nazywamy jedynką, zaś element odwrotny do a 0 względem działania oznaczamy przez a 1, i nazywamy odwrotnością a);

Ciała i wielomiany 1. przez 1, i nazywamy jedynką, zaś element odwrotny do a 0 względem działania oznaczamy przez a 1, i nazywamy odwrotnością a); Ciała i wielomiany 1 Ciała i wielomiany 1 Definicja ciała Niech F będzie zbiorem, i niech + ( dodawanie ) oraz ( mnożenie ) będą działaniami na zbiorze F. Definicja. Zbiór F wraz z działaniami + i nazywamy

Bardziej szczegółowo

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

Algebra Liniowa 2 (INF, TIN), MAP1152 Lista zadań Algebra Liniowa 2 (INF, TIN), MAP1152 Lista zadań Przekształcenia liniowe, diagonalizacja macierzy 1. Podano współrzędne wektora v w bazie B. Znaleźć współrzędne tego wektora w bazie B, gdy: a) v = (1,

Bardziej szczegółowo

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

Wykład VIII. Systemy kryptograficzne Kierunek Matematyka - semestr IV. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej 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

Bardziej szczegółowo

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

0 + 0 = 0, = 1, = 1, = 0. 5 Kody liniowe Jak już wiemy, w celu przesłania zakodowanego tekstu dzielimy go na bloki i do każdego z bloków dodajemy tak zwane bity sprawdzające. Bity te są w ścisłej zależności z bitami informacyjnymi,

Bardziej szczegółowo

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

Informatyka kwantowa. Zaproszenie do fizyki. Zakład Optyki Nieliniowej. wykład z cyklu. Ryszard Tanaś. mailto:tanas@kielich.amu.edu. Zakład Optyki Nieliniowej http://zon8.physd.amu.edu.pl 1/35 Informatyka kwantowa wykład z cyklu Zaproszenie do fizyki Ryszard Tanaś Umultowska 85, 61-614 Poznań mailto:tanas@kielich.amu.edu.pl Spis treści

Bardziej szczegółowo

Kryptologia przykład metody RSA

Kryptologia przykład metody RSA Kryptologia przykład metody RSA przygotowanie: - niech p=11, q=23 n= p*q = 253 - funkcja Eulera phi(n)=(p-1)*(q-1)=220 - teraz potrzebne jest e które nie jest podzielnikiem phi; na przykład liczba pierwsza

Bardziej szczegółowo

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

RSA. R.L.Rivest A. Shamir L. Adleman. Twórcy algorytmu RSA RSA Symetryczny system szyfrowania to taki, w którym klucz szyfrujący pozwala zarówno szyfrować dane, jak również odszyfrowywać je. Opisane w poprzednich rozdziałach systemy były systemami symetrycznymi.

Bardziej szczegółowo

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

urządzenia: awaria układów ochronnych, spowodowanie awarii oprogramowania Bezpieczeństwo systemów komputerowych urządzenia: awaria układów ochronnych, spowodowanie awarii oprogramowania Słabe punkty sieci komputerowych zbiory: kradzież, kopiowanie, nieupoważniony dostęp emisja

Bardziej szczegółowo

Zadanie 1. Suma silni (11 pkt)

Zadanie 1. Suma silni (11 pkt) 2 Egzamin maturalny z informatyki Zadanie 1. Suma silni (11 pkt) Pojęcie silni dla liczb naturalnych większych od zera definiuje się następująco: 1 dla n = 1 n! = ( n 1! ) n dla n> 1 Rozpatrzmy funkcję

Bardziej szczegółowo

Bezpieczeństwo systemów komputerowych

Bezpieczeństwo systemów komputerowych Bezpieczeństwo systemów komputerowych Wprowadzenie do kryptologii Aleksy Schubert (Marcin Peczarski) Instytut Informatyki Uniwersytetu Warszawskiego 16 listopada 2016 Jak ta dziedzina powinna się nazywać?

Bardziej szczegółowo

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

Zegar ten przedstawia reszty z dzielenia przez 6. Obrazuje on jak kolejne liczby można przyporządkować do odpowiednich pokazanych na zegarze grup. Rozgrzewka (Ci, którzy znają pojęcie kongruencji niech przejdą do zadania 3 bc i 4, jeśli i te zadania są za proste to proponuje zadanie 5): Zad.1 a) Marek wyjechał pociągiem do Warszawy o godzinie 21

Bardziej szczegółowo

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych 1 Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych 1. Podstawowe operacje logiczne dla cyfr binarnych Jeśli cyfry 0 i 1 potraktujemy tak, jak wartości logiczne fałsz i prawda, to działanie

Bardziej szczegółowo

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

Rozdział 4. Macierze szyfrujące. 4.1 Algebra liniowa modulo 26 Rozdział 4 Macierze szyfrujące Opiszemy system kryptograficzny oparty o rachunek macierzowy. W dalszym ciągu przypuszczamy, że dany jest 26 literowy alfabet, w którym utożsamiamy litery i liczby tak, jak

Bardziej szczegółowo

Zadania do samodzielnego rozwiązania

Zadania do samodzielnego rozwiązania Zadania do samodzielnego rozwiązania I. Podzielność liczb całkowitych 1. Pewna liczba sześciocyfrowa a kończy się cyfrą 5. Jeśli tę cyfrę przestawimy na miejsce pierwsze ze strony lewej, to otrzymamy nową

Bardziej szczegółowo

Bezpieczeństwo systemów komputerowych

Bezpieczeństwo systemów komputerowych Bezpieczeństwo systemów komputerowych Szyfry asymetryczne Aleksy Schubert (Marcin Peczarski) Instytut Informatyki Uniwersytetu Warszawskiego 10 listopada 2015 Na podstawie wykładu Anny Kosieradzkiej z

Bardziej szczegółowo

Kongruencje twierdzenie Wilsona

Kongruencje twierdzenie Wilsona Kongruencje Wykład 5 Twierdzenie Wilsona... pojawia się po raz pierwszy bez dowodu w Meditationes Algebraicae Edwarda Waringa (1770), profesora (Lucasian Professor) matematyki w Cambridge, znanego głównie

Bardziej szczegółowo

Authenticated Encryption

Authenticated Encryption Authenticated Inż. Kamil Zarychta Opiekun: dr Ryszard Kossowski 1 Plan prezentacji Wprowadzenie Wymagania Opis wybranych algorytmów Porównanie mechanizmów Implementacja systemu Plany na przyszłość 2 Plan

Bardziej szczegółowo

Wprowadzenie do zagadnień bezpieczeńśtwa i kryptografii

Wprowadzenie do zagadnień bezpieczeńśtwa i kryptografii Wprowadzenie do zagadnień bezpieczeńśtwa i kryptografii Patryk Czarnik Bezpieczeństwo sieci komputerowych MSUI 2009/10 Zagadnienia bezpieczeństwa Identyfikacja i uwierzytelnienie Kontrola dostępu Poufność:

Bardziej szczegółowo

Algorytmy podstawieniowe

Algorytmy podstawieniowe Algorytmy podstawieniowe Nazwa: AtBash Rodzaj: Monoalfabetyczny szyfr podstawieniowy, ograniczony Opis metody: Zasada jego działanie polega na podstawieniu zamiast jednej litery, litery lezącej po drugiej

Bardziej szczegółowo

KONGRUENCJE. 1. a a (mod m) a b (mod m) b a (mod m) a b (mod m) b c (mod m) a c (mod m) Zatem relacja kongruencji jest relacją równoważności.

KONGRUENCJE. 1. a a (mod m) a b (mod m) b a (mod m) a b (mod m) b c (mod m) a c (mod m) Zatem relacja kongruencji jest relacją równoważności. KONGRUENCJE Dla a, b, m Z mówimy, że liczba a przystaje do liczby b modulo m a b (mod m) m (a b) (a b (mod m) można też zapisać jako: a = km + b, k Z). Liczbę m nazywamy modułem kongruencji. Własności:

Bardziej szczegółowo

Arytmetyka liczb binarnych

Arytmetyka liczb binarnych Wartość dwójkowej liczby stałoprzecinkowej Wartość dziesiętna stałoprzecinkowej liczby binarnej Arytmetyka liczb binarnych b n-1...b 1 b 0,b -1 b -2...b -m = b n-1 2 n-1 +... + b 1 2 1 + b 0 2 0 + b -1

Bardziej szczegółowo

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.

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. 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. Plecak ma być zapakowany optymalnie, tzn. bierzemy tylko te przedmioty,

Bardziej szczegółowo

Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI

Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI Arytmetyka komputera Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka Opracował: Kamil Kowalski klasa III TI Spis treści 1. Jednostki informacyjne 2. Systemy liczbowe 2.1. System

Bardziej szczegółowo

Zadanie 2: Kryptosystem Rabina

Zadanie 2: Kryptosystem Rabina Informatyka, studia dzienne, inż. II st. semestr VI Podstawy kryptografii 2010/2011 Prowadzący: prof. dr hab. inż. Włodzimierz Jemec poniedziałek, 8:30 Data oddania: Ocena: Paweł Tarasiuk 151021 Michał

Bardziej szczegółowo

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

PROBLEMATYKA BEZPIECZEŃSTWA SIECI RADIOWYCH Algorytm szyfrowania AES. Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska PROBLEMATYKA BEZPIECZEŃSTWA SIECI RADIOWYCH Algorytm szyfrowania AES Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska Wprowadzenie Problemy bezpieczeństwa transmisji Rozwiązania stosowane dla

Bardziej szczegółowo

Twierdzenie Eulera. Kongruencje wykład 6. Twierdzenie Eulera

Twierdzenie Eulera. Kongruencje wykład 6. Twierdzenie Eulera Kongruencje wykład 6 ... Euler, 1760, Sankt Petersburg Dla każdego a m zachodzi kongruencja a φ(m) 1 (mod m). Przypomnijmy: φ(m) to liczba reszt modulo m względnie pierwszych z m; φ(m) = m(1 1/p 1 )...

Bardziej szczegółowo

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

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś  Wykład 9 Kryptografia z elementami kryptografii kwantowej Ryszard Tanaś http://zon8.physd.amu.edu.pl/~tanas Wykład 9 Spis treści 14 Podpis cyfrowy 3 14.1 Przypomnienie................... 3 14.2 Cechy podpisu...................

Bardziej szczegółowo

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

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 Podpis cyfrowy Podpisy cyfrowe i inne protokoły pośrednie Polski Komitet Normalizacyjny w grudniu 1997 ustanowił pierwszą polską normę określającą schemat podpisu

Bardziej szczegółowo

Zadanie 1. Potęgi (14 pkt)

Zadanie 1. Potęgi (14 pkt) 2 Egzamin maturalny z informatyki Zadanie 1. otęgi (14 pkt) W poniższej tabelce podane są wartości kolejnych potęg liczby 2: k 0 1 2 3 4 5 6 7 8 9 10 2 k 1 2 4 8 16 32 64 128 256 512 1024 Ciąg a=(a 0,

Bardziej szczegółowo

MADE IN CHINA czyli SYSTEM RESZTOWY

MADE IN CHINA czyli SYSTEM RESZTOWY MADE IN CHINA czyli SYSTEM RESZTOWY System ten oznaczmy skrótem RNS (residue number system czyli po prostu resztowy system liczbowy). Wartość liczby w tym systemie reprezentuje wektor (zbiór) reszt z dzielenia

Bardziej szczegółowo

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

Funkcja kwadratowa. f(x) = ax 2 + bx + c, Funkcja kwadratowa. Funkcją kwadratową nazywamy funkcję f : R R określoną wzorem gdzie a, b, c R, a 0. f(x) = ax 2 + bx + c, Szczególnym przypadkiem funkcji kwadratowej jest funkcja f(x) = ax 2, a R \

Bardziej szczegółowo

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

Wykład IV. Kryptografia Kierunek Informatyka - semestr V. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej Wykład IV Kierunek Informatyka - semestr V Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Systemy z kluczem publicznym Klasyczne systemy kryptograficzne

Bardziej szczegółowo

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

PuTTY. Systemy Operacyjne zaawansowane uŝytkowanie pakietu PuTTY, WinSCP. Inne interesujące programy pakietu PuTTY. Kryptografia symetryczna PuTTY Systemy Operacyjne zaawansowane uŝytkowanie pakietu PuTTY, WinSCP Marcin Pilarski PuTTY emuluje terminal tekstowy łączący się z serwerem za pomocą protokołu Telnet, Rlogin oraz SSH1 i SSH2. Implementuje

Bardziej szczegółowo

Wstęp do Informatyki

Wstęp do Informatyki Wstęp do Informatyki Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 4 Bożena Woźna-Szcześniak (AJD) Wstęp do Informatyki Wykład 4 1 / 1 DZIELENIE LICZB BINARNYCH Dzielenie

Bardziej szczegółowo

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

Funkcja kwadratowa. f(x) = ax 2 + bx + c = a Funkcja kwadratowa. Funkcją kwadratową nazywamy funkcję f : R R określoną wzorem gdzie a, b, c R, a 0. f(x) = ax + bx + c, Szczególnym przypadkiem funkcji kwadratowej jest funkcja f(x) = ax, a R \ {0}.

Bardziej szczegółowo

Systemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10).

Systemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10). Wprowadzenie do inżynierii przetwarzania informacji. Ćwiczenie 1. Systemy liczbowe Cel dydaktyczny: Poznanie zasad reprezentacji liczb w systemach pozycyjnych o różnych podstawach. Kodowanie liczb dziesiętnych

Bardziej szczegółowo

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

Opis efektów kształcenia dla modułu zajęć Nazwa modułu: Kryptografia Rok akademicki: 2032/2033 Kod: IIN-1-784-s Punkty ECTS: 3 Wydział: Informatyki, Elektroniki i Telekomunikacji Kierunek: Informatyka Specjalność: - Poziom studiów: Studia I stopnia

Bardziej szczegółowo

LICZBY PIERWSZE. Jan Ciurej Radosław Żak

LICZBY PIERWSZE. Jan Ciurej Radosław Żak LICZBY PIERWSZE Jan Ciurej Radosław Żak klasa IV a Katolicka Szkoła Podstawowa im. Świętej Rodziny z Nazaretu w Krakowie ul. Pędzichów 13, 31-152 Kraków opiekun - mgr Urszula Zacharska konsultacja informatyczna

Bardziej szczegółowo

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

Wykład 4. Określimy teraz pewną ważną klasę pierścieni. Wykład 4 Określimy teraz pewną ważną klasę pierścieni. Twierdzenie 1 Niech m, n Z. Jeśli n > 0 to istnieje dokładnie jedna para licz q, r, że: m = qn + r, 0 r < n. Liczbę r nazywamy resztą z dzielenia

Bardziej szczegółowo

Matematyka dyskretna

Matematyka dyskretna Matematyka dyskretna Wykład 4: Podzielność liczb całkowitych Gniewomir Sarbicki Dzielenie całkowitoliczbowe Twierdzenie: Dla każdej pary liczb całkowitych (a, b) istnieje dokładnie jedna para liczb całkowitych

Bardziej szczegółowo

Kryptografia na procesorach wielordzeniowych

Kryptografia na procesorach wielordzeniowych Kryptografia na procesorach wielordzeniowych Andrzej Chmielowiec andrzej.chmielowiec@cmmsigma.eu Centrum Modelowania Matematycznego Sigma Kryptografia na procesorach wielordzeniowych p. 1 Plan prezentacji

Bardziej szczegółowo

3. FUNKCJA LINIOWA. gdzie ; ół,.

3. FUNKCJA LINIOWA. gdzie ; ół,. 1 WYKŁAD 3 3. FUNKCJA LINIOWA FUNKCJĄ LINIOWĄ nazywamy funkcję typu : dla, gdzie ; ół,. Załóżmy na początek, że wyraz wolny. Wtedy mamy do czynienia z funkcją typu :.. Wykresem tej funkcji jest prosta

Bardziej szczegółowo

Szyfrowanie RSA (Podróż do krainy kryptografii)

Szyfrowanie RSA (Podróż do krainy kryptografii) Szyfrowanie RSA (Podróż do krainy kryptografii) Nie bójmy się programować z wykorzystaniem filmów Academy Khana i innych dostępnych źródeł oprac. Piotr Maciej Jóźwik Wprowadzenie metodyczne Realizacja

Bardziej szczegółowo

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

Bezpieczeństwo systemów komputerowych. Algorytmy kryptograficzne. Algorytmy kryptograficzne (1) Algorytmy kryptograficzne. Szyfry przestawieniowe Bezpieczeństwo systemów komputerowych Algorytmy kryptograficzne Algorytmy kryptograficzne (1) Przestawieniowe zmieniają porządek znaków według pewnego schematu, tzw. figury Podstawieniowe monoalfabetyczne

Bardziej szczegółowo

1.1. Pozycyjne systemy liczbowe

1.1. Pozycyjne systemy liczbowe 1.1. Pozycyjne systemy liczbowe Systemami liczenia nazywa się sposób tworzenia liczb ze znaków cyfrowych oraz zbiór reguł umożliwiających wykonywanie operacji arytmetycznych na liczbach. Dla dowolnego

Bardziej szczegółowo

Wstęp do informatyki- wykład 2

Wstęp do informatyki- wykład 2 MATEMATYKA 1 Wstęp do informatyki- wykład 2 Systemy liczbowe Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy

Bardziej szczegółowo