KRYPTOGRAFIA I OCHRONA DANYCH. Krzysztof Kaczmarczyk 150024



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

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

Zastosowanie teorii liczb w kryptografii na przykładzie szyfru RSA

2 Kryptografia: algorytmy symetryczne

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 8

Zarys algorytmów kryptograficznych

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

Algorytmy podstawieniowe

Algorytmy asymetryczne

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

Spis treści. Przedmowa... 9

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

II klasa informatyka rozszerzona SZYFROWANIE INFORMACJI

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

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

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

Algorytmy podstawieniowe

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

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

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.

Podstawy systemów kryptograficznych z kluczem jawnym RSA

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

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

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

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

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

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

Copyright by K. Trybicka-Francik 1

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

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

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

Copyright by K. Trybicka-Francik 1

Kryptografia systemy z kluczem tajnym. Kryptografia systemy z kluczem tajnym

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

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

Bezpieczeństwo danych, zabezpieczanie safety, security

Szyfrowanie RSA (Podróż do krainy kryptografii)

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.

Bezpieczeństwo danych i systemów informatycznych. Wykład 5

Kryptologia przykład metody RSA

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

Kryptografia systemy z kluczem publicznym. Kryptografia systemy z kluczem publicznym

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

LICZBY PIERWSZE. Jan Ciurej Radosław Żak

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

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

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

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

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

Arytmetyka liczb binarnych

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

Szyfrowanie informacji

Ochrona Systemów Informacyjnych. Elementy Kryptoanalizy

Authenticated Encryption

WSIZ Copernicus we Wrocławiu

własność odporności na kolizje jest obliczeniowo trudne znalezienie dwóch dowolnych argumentów M M, dla których H(M) = H(M ).

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

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

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

Wybrane zagadnienia teorii liczb

Generowanie ciągów bitów losowych z wykorzystaniem sygnałów pochodzących z komputera

Rijndael szyfr blokowy

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

Zastosowania informatyki w gospodarce Wykład 5

Seminarium Ochrony Danych

1. Maszyny rotorowe Enigma

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

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

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

1) indeks koincyndencji Określa prawdopodobieostwo wystąpienia w szyfrogramie dwóch jednakowych liter: N długośd szyfrogramu

Algorytmy i struktury danych. Wykład 4

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

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

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

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

Kryptografia szyfrowanie i zabezpieczanie danych

3. Macierze i Układy Równań Liniowych

Bezpieczeństwo w Internecie

Laboratorium nr 1 Szyfrowanie i kontrola integralności

Parametry systemów klucza publicznego

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

Wykład 7. komputerowych Integralność i uwierzytelnianie danych - główne slajdy. 16 listopada 2011

Istnieją trzy kluczowe elementy bezpieczeństwa danych. Poufność, integralność i uwierzytelnianie są znane jako triada CIA

KRYPTOANALIZA. Opracowanie wewnętrzne Instytutu Informatyki Gliwice, 1999

Technologie cyfrowe semestr letni 2018/2019

Kod U2 Opracował: Andrzej Nowak

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

OCHRONA INFORMACJI W SYSTEMACH I SIECIACH KOMPUTEROWYCH SYMETRYCZNE SZYFRY BLOKOWE

Bezpieczeństwo systemów komputerowych

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

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

Implementacja algorytmu DES

Przewodnik użytkownika

Haszowanie. dr inż. Urszula Gałązka

Czym jest kryptografia?

Bezpieczeństwo systemów komputerowych

Operatory AND, OR, NOT, XOR Opracował: Andrzej Nowak Bibliografia:

Elementy logiki. Algebra Boole a. Analiza i synteza układów logicznych

Akademia Techniczno-Humanistyczna w Bielsku-Białej

Transkrypt:

KRYPTOGRAFIA I OCHRONA DANYCH Krzysztof Kaczmarczyk 150024

Zadanie 1 Szyfrowanie DES Algorytm DES (Data Encryption Standard) to zastosowanie schematu Feistela. Algorytm operuje na 64-bitowych blokach używając 56-bitowego (8x7 bitów) klucza, wykonując 16 cykli (podstawieo wg schematu Feistela). DES jest symetrycznym algorytmem szyfrującym, w którym ten sam klucz używany jest zarówno do szyfrowania jak i deszyfrowania. Na początku (przed rozpoczęciem pierwszego cyklu) tekst jawny jest permutowany. Wewnątrz cyklu połówka danych (32 bity) rozszerzana jest do 48 bitów (tzw. permutacja rozszerzająca). Wynik permutacji poddawany jest operacji logicznej XOR (excusive OR - czyli alternatywa wykluczająca) wraz z pod kluczem danego cyklu. W ten sposób wyliczona wartośd dzielona jest na sześd 8-bitowych części, z których każda przepuszczana jest przez tzw. S-box. S-box to tablica rozmiaru 4x16, której każdy wiersz zawiera wszystkie liczby od 0 do 15. Pierwszy i ostatni bit 6-bitowego wejścia kodują numer wiersza, pozostałe kodują numer kolumny. Następnie połączone wyjścia S-boxów poddawane są permutacji. Po ostatnim cyklu, blok szyfrogramu jest przepuszczany przez permutację odwrotną do permutacji początkowej. rys. 1: Ilustracja działania algorytmu DES źródło: http://www.eventid.net/docs/desexample.asp

Szyfrowanie: Klucz: 981723425kj Wiadomość: Ala ma kota, a kot ma Alę! Rezultat: 0x8fa2417cccb4b03ee2a70e014ce93396a49e4117b3f154cbf8494e5eeb84c567 Deszyfrowanie: Klucz: 981723425kj Wiadomość: 0x8fa2417cccb4b03ee2a70e014ce93396a49e4117b3f154cbf8494e5eeb84c567 Rezultat: Ala ma kota, a kot ma Alę! Stanisław Klekot Notatki z Kryptografii szyfry, kwiecieo 2004; Mirosław Kutyłowski, Willy B. Strothmann Kryptografia Teoria i praktyka zabezpieczania systemów komputerowych, Warszawa 1998, http://tero.co.uk/des/test.php Zadanie 2 MD2 MD2 jest funkcją hashującą stworzoną w 1989 roku przez Rona Rivesta. Algorytm ten został zoptymalizowany pod kątem komputerów 8-bitowych. MD2 jest opisany w RFC1319. Nie jest on obecnie uważany za bezpieczną funkcję skrótu, i nie powinien byd wykorzystywany. Wejście: wikipedia Wyjśćie: 01ebd633170ac3210b4c25e941b3417 Wejście: Wyjśćie: 8350e5a3e24c153df2275c9f80692773 http://pl.wikipedia.org/wiki/md2

Zadanie 3 MD5 Algorytm MD5 jest funkcją szyfrującą, której autorem jest R. Rivest współautor szyfru RSA. W algorytmie tym, wiadomośd dowolnej długości przekształcana jest w swój 128-bitowy odcisk palca (sumę kontrolną). Jest to tak zwana funkcja haszująca. Etapy algorytmu MD5: 1. Doklejamy do wiadomości wejściowej bit o wartości 1 2. Doklejamy tyle zer ile potrzeba, żeby ciąg wejściowy składał się z bloków będących wielokrotnością bloku 512-bitowego i ostatniego bloku 448-bitowego. 3. Doklejamy 64-biotowy (zaczynając od najmniej znaczącego bitu) licznik oznaczający rozmiar wiadomości. W ten sposób otrzymujemy wiadomośd złożoną z 512-bitowych fragmentów. 4. Ustawiamy stan początkowy na 0123456789abcdeffedcba9876543210 5. Uruchamiamy na każdym bloku (zawsze istnieje co najmniej jeden blok, nawet wtedy, gdy wiadomość wejściowa jest pusta) funkcję zmieniającą stan. 6. Po przetworzeniu ostatniego bloku zwracamy stan jako obliczony skrót wiadomości. Funkcja zmiany stanu ma 4 cykle (co łącznie daje 64 kroki). Stan jest traktowany jako 4 liczby 32- bitowe. W każdym kroku do jednej z tych liczb dodawany jest jeden z szesnastu 32-bitowych fragmentów bloku wejściowego, pewna stała zależna od numeru kroku oraz pewna prosta funkcja boolowska trzech pozostałych liczb. W dalszych krokach liczba ta jest obracana (przesuwana cyklicznie z najstarszymi bitami wsuwanymi w najmłodsze pozycje) o liczbę bitów zależną od kroku, oraz dodawana jest do niej jedna z pozostałych liczb. Funkcje te to: W krokach 1 do 16 (cykl 1) funkcja F(x,y,z) = (x and y) or (neg x and z) (jeśli x to y, w przeciwnym wypadku z) W krokach 17 do 32 (cykl 2) funkcja G(x,y,z) = (x and z) or (y and neg z) (jeśli z to x, w przeciwnym wypadku y) W krokach 33 do 48 (cykl 3) funkcja H(x,y,z) = (x xor y xor z) (suma argumentów modulo 2, lub innymi słowy: czy występuje nieparzysta liczba jedynek w argumentach) W krokach 49 do 64 (cykl 4) funkcja I(x,y,z) = (y xor (x or neg z)) (jeżeli (z = 1 i x = 0) wtedy y, w przeciwnym wypadku nie y)

rys. 2: ilustracja działania algorytmu MD5 źródło: http://upload.wikimedia.org/wikipedia/commons/thumb/d/d8/md5.svg/546px-md5.svg.png Wiadomość: Ala ma kota, a kot ma ale Rezultat: 509b7bafdc5d397cd83537fcbf1aad3c Ryszard Tanaś, Kryptografia wykład z podstaw klasycznej kryptografii z elementami kryptografii kwantowej ; http://pl.wikipedia.org/wiki/md5

Zadanie 4 - SHA Algorytm opracowany przez NIST przy udziale NSA opublikowany w 1993. Nowsza wersja SHA-1 została opublikowana w roku 1995. Idea tego algorytmu oparta jest na MD4 i MD5, lecz w tym wypadku wartośd funkcji haszującej jest liczbą 160-bitową, w związku z czym algorytm wymaga o jeden rejestr więcej niż MD5. Również nieliniowe funkcje transformujące używane są tutaj w inny sposób niż w MD5, dokonując dodatkowych operacji na poszczególnych słowach wiadomości. Algorytm w każdej rundzie wykonuje 20 kroków zamiast (jak MD5) 16. Ogólnie jednak działanie algorytmu SHA jest bardzo podobne do MD5 i uważane za jego bezpieczniejszą wersję do czego przyczynia się dłuższa wartośd funkcji haszującej i pewne ulepszenia samego algorytmu, co w efekcie prowadzi np. do jego odporności na tzw. atak urodzinowy. Wiadomość: Ala ma kota, a kot ma ale Rezultat: e48b962b3dcb57e072b237edbdfd3c4b08a71b27 Ryszard Tanaś, Kryptografia wykład z podstaw klasycznej kryptografii z elementami kryptografii kwantowej ; http://pl.wikipedia.org/wiki/sha-1. Zadanie 5 - RSA RSA jest szyfrem z grupy algorytmów kryptografii asymetrycznej. Stworzony został w 1978 roku przez grupę: Ronald Rivest, Adi Shamir, Leonard Adleman (nazwa RSA jest akronimem utworzonym z pierwszych liter nazwisk jego twórców). RSA opiera się na trudności faktoryzacji dużych liczb. Znalezienie szybkiej metody faktoryzacji doprowadziłoby do złamania RSA, aczkolwiek nie ma dowodu, że nie da się go złamad w inny sposób. Szyfrowanie i deszyfrowanie Aby wygenerowad klucz RSA należy najpierw znaleźd dwie duże losowe liczby pierwsze p i q oraz liczbę e, która jest względnie pierwsza z (p-1)(q-1). Następnie,, ponieważ wybraliśmy względnie pierwsze e, ma ono odwrotnośd, którą można łatwo obliczyd stosując rozszerzony algorytm Euklidesa). Obliczyd należy także: Kluczem publicznym jest para (e,n), natomiast kluczem prywatnym para (d,n). Liczby p i q należy zniszczyd. Aby zaszyfrowad wiadomośd posługujemy się następującym wzorem: Z kolei do deszyfrowania wiadomości skorzystamy ze wzoru:

Nie znając d nie potrafimy łatwo odzyskad wiadomości z kryptogramu. Nie znając faktoryzacji n na p i q nie znamy też prostej metody odtworzenia d z e. Zagrożeniem dla szyfrowania RSA są komputery kwantowe, które (jeśli zostaną skonstruowane) będą mogły poradzid sobie ze złamaniem szyfru RSA. 1. Wybieramy dwie liczby pierwsze p = 61 i q = 53 2. Wyliczamy 3. Obliczamy 4. Wybieramy e > 1 względnie pierwsze do 3120 e = 17 5. Obliczamy takie, że : d = 2753 Kluczem publicznym jest (n = 3233,e = 17). Funkcją szyfrującą dla tego klucza jest więc: Kluczem prywatnym jest (n = 3233,d = 2753). Funkcja deszyfrująca: Dla przykładowego m = 123 By odszyfrować c = 855, liczymy.

źródło przykładu: http://pl.wikipedia.org/wiki/rsa_%28kryptografia%29 Ryszard Tanaś, Kryptografia wykład z podstaw klasycznej kryptografii z elementami kryptografii kwantowej ; http://pl.wikipedia.org/wiki/rsa_%28kryptografia%29 Zadanie 6 szyfr ElGamala Szyfrowanie ElGamala to jeden z dwóch najważniejszych algorytmów kryptografii asymetrycznej (obok opisanego wyżej RSA). Oparty jest on na trudności problemu logarytmu dyskretnego w ciele liczb całkowitych modulo duża liczba pierwsza. Algorytm został opublikowany w połowie lat 80. XX wieku przez Egipcjanina Taher Elgamal a. Szyfrowanie Na początku procesu szyfrowania wygenerowad należy klucz. Aby to zrobid wybieramy dowolną liczbę pierwszą p, dowolny generator α podgrupy multiplikatywnej, tzn. taki element, którego rząd równy jest p-1 oraz dowolne k, takie że 1 < k < p. Obliczamy β z następującego wzoru: Następnie publikujemy trójkę (p, α, β) jako klucz publiczny. Kluczem prywatnym jest (p,α,β,k). Szyfrowanie: Mając do zaszyfrowania wiadomośd m przedstawiamy ją jako element grupy *1 < m < p 1], wybieramy losową liczbę x i liczymy (modulo p): Deszyfrowanie: Aby dokonad deszyfrowania wiadomości wystarczy prosta operacja: Następnie znajdujemy odwrotnośd β x (oczywiście nadal modulo p) rozszerzonym algorytmem Euklidesa: γβ x + δp = 1 W koocu dzielimy przez β x, czyli mnożymy przez jej odwrotnośd γ:

Stanisław Klekot Notatki z Kryptografii szyfry, kwiecieo 2004; Mirosław Kutyłowski, Willy B. Strothmann Kryptografia Teoria i praktyka zabezpieczania systemów komputerowych, Warszawa 1998; http://pl.wikipedia.org/wiki/elgamal. Zadanie 7 szyfr Hilla W kryptografii klasycznej szyfr Hill a jest poligraficznym szyfrem podstawieniowym opartym o algebrę liniową. Wynaleziony został w 1929 roku przez Lester a S. Hill a i był pierwszym szyfrem, który operował (chod z trudem) na więcej niż trzech symbolach jednocześnie. Działanie Na początku każda litera kodowana jest jako liczba. Najczęściej używany jest najprostszy schemat: A = 0, B = 1,, Z = 25. W ten sposób otrzymujemy wektor złożony z N liter, który mnożymy przez macierz NxN modulo 26. Macierz ta jest kluczem szyfru, a jej wartości powinny byd losowe, tak żeby macierz była odwracalna w dzięki czemu możliwa będzie deszyfracja. Wiadomość: ACT Klucz: GYBNQKURP przekształcony do macierzy: Dalej: A przekształcamy do 0, C = 2, T = 19, zatem wektor wiadomości to: Szyfrowanie odbywa się poprzez obliczenie wektora: Który odpowiada zaszyfrowanemu tekstowi: POH, zatem Wiadomość zaszyfrowana: POH Dla tego samego klucza szyfrujemy inną wiadomośd:

Wiadomość: CAT Wiadomość zaszyfrowana: FIN Stanisław Klekot Notatki z Kryptografii szyfry, kwiecieo 2004; Mirosław Kutyłowski, Willy B. Strothmann Kryptografia Teoria i praktyka zabezpieczania systemów komputerowych, Warszawa 1998; http://en.wikipedia.org/wiki/hill_cipher Zadanie 8 szyfr Cezara Szyfr Cezara (zwany również szyfrem przesuwającaym) jest w kryptografii jedną z najprostszych technik szyfrowania. Jest to pewien rodzaj szyfru podstawieniowego, w którym każdą literę wiadomości szyfrowanej zastępuje się oddaloną od niej o stałą liczbę pozycji w alfabecie inną literą (szyfr monoalfabetyczny), przy czym kierunek zmiany musi byd zachowany. Szyfr cezara nie rozróżnia liter małych i dużych. Algorytm szyfru Cezara bywa wykorzystywany w bardziej złożonych systemach szyfrowania, takich jak szyfr Vigenere a. rys. 3: ilustracja działania szyfru cezara źródło: http://pl.wikipedia.org/wiki/szyfr_cezara Wiadomość: ala ma kota a kot ma mysz Klucz: 7 Wiadomość zaszyfrowana: hsh th rvah h rva th tfzg Stanisław Klekot Notatki z Kryptografii szyfry, kwiecieo 2004; Mirosław Kutyłowski, Willy B. Strothmann Kryptografia Teoria i praktyka zabezpieczania systemów komputerowych, Warszawa 1998; http://pl.wikipedia.org/wiki/szyfr_cezara

Zadanie 9 Szyfr Vigenère'a Szyfr Vigenère'a, to polialfabetyczny szyfr podstawieniowy, stworzony przez Blaise de Vigenere`a, oficjalnie opublikowany w jego pracy "Traicte des Chiffres" w 1586 roku. Podczas tworzenia swojego szyfru Vigenere chciał skonstruowad szyfr, który będzie bardziej odporny na złamanie niż szyfry monoalfabetyczne. Szyfrowanie przebiega następująco: Najpierw należy utworzyd słowo klucz. Następnie każdą literę szyfrowanej wiadomości kodujemy wykorzystując alfabet zaczynający się od odpowiadającej litery w kluczu. W przypadku, gdy klucz jest krótszy od szyfrowanego tekstu, powtarzamy jest on wielokrotnie. Szyfrowanie i deszyfrowanie odbywa się na podstawie tablicy Vigenere`a, która wygląda następująco: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z B C D E F G H I J K L M N O P Q R S T U V W X Y Z A C D E F G H I J K L M N O P Q R S T U V W X Y Z A B D E F G H I J K L M N O P Q R S T U V W X Y Z A B C E F G H I J K L M N O P Q R S T U V W X Y Z A B C D F G H I J K L M N O P Q R S T U V W X Y Z A B C D E G H I J K L M N O P Q R S T U V W X Y Z A B C D E F H I J K L M N O P Q R S T U V W X Y Z A B C D E F G I J K L M N O P Q R S T U V W X Y Z A B C D E F G H J K L M N O P Q R S T U V W X Y Z A B C D E F G H I K L M N O P Q R S T U V W X Y Z A B C D E F G H I J L M N O P Q R S T U V W X Y Z A B C D E F G H I J K M N O P Q R S T U V W X Y Z A B C D E F G H I J K L N O P Q R S T U V W X Y Z A B C D E F G H I J K L M O P Q R S T U V W X Y Z A B C D E F G H I J K L M N P Q R S T U V W X Y Z A B C D E F G H I J K L M N O Q R S T U V W X Y Z A B C D E F G H I J K L M N O P R S T U V W X Y Z A B C D E F G H I J K L M N O P Q S T U V W X Y Z A B C D E F G H I J K L M N O P Q R T U V W X Y Z A B C D E F G H I J K L M N O P Q R S U V W X Y Z A B C D E F G H I J K L M N O P Q R S T V W X Y Z A B C D E F G H I J K L M N O P Q R S T U W X Y Z A B C D E F G H I J K L M N O P Q R S T U V X Y Z A B C D E F G H I J K L M N O P Q R S T U V W Y Z A B C D E F G H I J K L M N O P Q R S T U V W X Z A B C D E F G H I J K L M N O P Q R S T U V W X Y Wiadomość: ALA MA KOTA A KOT MA MYSZ Klucz: KLUCZYK Wiadomość zaszyfrowana: KWUOZIYDLUMNRWKXSUY Proces szyfrowania: Bierzemy klucz (KLUCZYK) oraz wiadomośd do zaszyfrowania i uzupełniamy klucz do długości wiadomości: ALA MA KOTA A KOT MA MYSZ KLU CZ YKKL U CZY KK LUCZ

Korzystając z tablicy Vigenere`a wyszukujemy litery znajdujące się na przecięciu wierszy i kilumn wyznaczonych przez kolejne pary liter: A,K => K; L,L => W; A,U => U; M,C => O; ; Z,Z => Y W ten sposób otrzymujemy słowo KWUOZIYDLUMNRWKXSUY. Deszyfrowanie pprzeprowadzamy w sposób analogiczny. Stanisław Klekot Notatki z Kryptografii szyfry, kwiecieo 2004; http://pl.wikipedia.org/wiki/szyfr_vigenere a Zadanie 10 szyfr Vernama Szyfr Vernama należy do szyfrów polialfabetycznych. W roku 1817 Gilbert Vernam stworzył maszynę, która wykorzystywala szyfr z kluczem jednokrotnym, czyli taki, w którym klucz jest losową sekwencją znaków i jest używany bez powtórzeo. Dzięki jego maszynie możliwe jest stosowanie szyfrów z kluczem jednokrotnym w systemach komputerowych. Swoje urządzenie Vernam skonstruował do łączności telegraficznej korzystającej z 32-znakowego kodu Baudota. Każdy znak kodu jest kombinacją pięciu sygnałów lub ich braku, co odpowiada bitom 1 i 0 w komputerach. Niepowtarzalny losowy ciąg znaków klucza jest wyperforowany na taśmie papierowej i każdy bit tekstu jawnego jest dodawany modulo 2 do kolejnego bitu klucza. Jeżeli mamy wiadomośd M=m 1, m 2, m 3,, m n, to aby ją zaszyfrowad, należy każdy jej bit m i dodad modulo 2 (funkcja XOR) do bitu pochodzącego z idealnego generatora losowego K = k1, k2,, kn. Generatorem takim może byd na przykład ciąg losowy n doświadczeo Bernoulliego z prawdopodobieostwem 0,5 (np. rzut syemtryczną monetą). Szyfrogram C = c1, c2,, cn odczytujemy w analogiczny sposób, korzystając z ciągu bitów wygenerowanego przy szyfrowaniu, zatem:. Na podstawie twierdzenia: jeżeli dwie zmienne losowe X1 i X2 są niezależne i X2 ma rozkład jednostajny nad {0, 1}, to Y = X1 V X2 ma rozkład jednostajny nad {0,1} otrzymujemy wiadomośd zaszyfrowaną. Wejście: Wiadomość: Kiedy idziemy do kina? Wygenerowany klucz: guwsoufsukysbpqdaiszzb

Wyjście: Wiadomość zakodowana: [44, 14, 2, 3, 30, 71, 14, 3, 29, 14, 2, 10, 30, 71, 3, 8, 71, 12, 14, 9, 6, 88] Wiadomość odkodowana: "Kiedy idziemy do kina?" http://pl.wikipedia.org/wiki/szyfr_vernama Zadanie 11 Pierwszość Protha Twierdzenie Protha definiuje warunek, aby dana liczba była pierwsza. Oto treśd twierdzenia: Twierdzenie Protha: Niech N = k2 m + 1, gdzie k jest nieparzyste i mniejsze od 2 m. Jeżeli istnieje liczba całkowita a taka, że to N jest liczbą pierwsza. Na odwrót, jeśli powyższa kongruencja nie zachodzi. Wejście: pp 13 Wyjście: 13 to liczba pierwsza http://pl.wikipedia.org/wiki/liczby_fermata Zadanie 12 Liczby doskonałe Liczba doskonała to liczba naturalna n, będąca sumą wszystkich swoich podzielników różnych od niej samej. Przykładami takich liczb są: 6, 28, 496, 8128, 33550336, 8589869056, 137438691328 Algorytm poszukuje k liczb doskonałych. Wejście: ruby doskonale.rb 3

Wyjście: Generowanie n doskonalych liczb. 6 jest liczba doskonala 28 jest liczba doskonala 496 jest liczba doskonala http://www.u.lodz.pl/~wibig/hieronim/hie15pok.htm; http://pl.wikipedia.org/wiki/liczby_doskonałe Zadanie 13 - LZW Lempel-Ziv-Welch (skracane zwykle do LZW) metoda strumieniowej bezstratnej kompresji słownikowej, będąca modyfikacją metody LZ78. Algorytm wymyślony został przez Terryego A. Welcha i został opisany w roku 1984 w artykule A technique for high-performance data compression, opublikowanym w numerze 6. Computer (str. 8-19). Metoda LZW jest względnie łatwa do zaprogramowania, daje bardzo dobre rezultaty. Metodę wykorzystuje się między innymi w programach ARC, PAK i UNIX-owym compress, w formacie zapisu grafiki GIF, w formatach PDF i PostScript (filtry kodujące fragmenty dokumentu) oraz w modemach (V.32bis). KOMPRESJA Wejście: ciąg do dekompresji: abccd_abccd_acd_acd_acd_ alfabet: [a b c d _] Wyjście: ZAKODOWANA: [1, 2, 3, 3, 4, 5, 6, 8, 10, 1, 9, 11, 16, 15, 10] DEKOMPRESJA Wejście: ciąg do dekompresji: [1, 2, 3, 3, 4, 5, 6, 8, 10, 1, 9, 11, 16, 15, 10] wygenerowany alfabet: [a b c d _] Wyjście: ODKODOWANA: abccd_abccd_acd_acd_acd_ http://en.wikipedia.org/wiki/lempel Ziv Weg

Zadanie 14 - Entropia W teorii informacji entropia zdefiniowana został jako średnia ilośd informacji, przypadająca na znak symbolizujący zajście zdarzenia z pewnego zbioru, w którym każde zdarzenie przypisane ma prawdopodobieostwo wystąpienia. Wzór na entropię: gdzie p(i) prawdopodobieostwo zajścia zdarzenia i, a n liczba wszystkich zdarzeo danej przestrzeni. W przypadku kodowania ciągu znaków jest to prawdopodobieostwo wystąpienia i-tego znaku. W teorii informacji najczęściej stosuje się logarytm o podstawie r=2, wówczas jednostką entropii jest bit. Dla r= e jednostka ta nazywa się nat (nit), natomiast dla r=10 dit lub hartley. Zadanie polega na liczeniu entropii dla zadanego ciągu zdarzeo losowych, który zadany jest w postaci pliku dwupozycyjnych rekordów. Wartośd zmiennej losowej to liczba całkowita, prawdopodobieostwo to liczba zmiennoprzecinkowa. Wejście: # zawartośd przykładowego pliku: 12 0.654 3 0.346 Wyjście: Entropia: 0.644935254959156 nat Entropia: 0.280091822413629 hartley http://pl.wikipedia.org/wiki/entropia_(teoria_informacji)