WYPIEK ROKU czyli… kodowanie metodą Rabina.

Slides:



Advertisements
Podobne prezentacje
Instrukcje - wprowadzenie
Advertisements

Metody numeryczne część 1. Rozwiązywanie układów równań liniowych.
Równanie różniczkowe zupełne i równania do niego sprowadzalne
DYSKRETYZACJA SYGNAŁU
mgr inż. Ryszard Chybicki Zespół Szkół Ponadgimnazjalnych
Metody rozwiązywania układów równań liniowych
Reprezentacja danych w komputerze
KRYPTOGRAFIA KWANTOWA
Metoda węzłowa w SPICE.
Materiały pochodzą z Platformy Edukacyjnej Portalu
Materiały pochodzą z Platformy Edukacyjnej Portalu
Materiały pochodzą z Platformy Edukacyjnej Portalu
Materiały pochodzą z Platformy Edukacyjnej Portalu
Materiały pochodzą z Platformy Edukacyjnej Portalu
Materiały pochodzą z Platformy Edukacyjnej Portalu Wszelkie treści i zasoby edukacyjne publikowane na łamach Portalu
Czyli czym się różni bit od qubitu
ZLICZANIE cz. II.
Macierze Maria Guzik.
NIERÓWNOŚCI LINIOWE Z JEDNĄ NIEWIADOMĄ
Wyrównanie metodą zawarunkowaną z niewiadomymi Wstęp
1.
Liczby pierwsze.
Wstęp do interpretacji algorytmów
Zapis informacji Dr Anna Kwiatkowska.
OPORNOŚĆ HYDRAULICZNA, CHARAKTERYSTYKA PRZEPŁYWU
Dążenie do odkrywania tajemnic tkwi głęboko w naturze człowieka, a nadzieja dotarcia tam, dokąd inni nie dotarli, pociąga umysły najmniej nawet skłonne.
Układ równań stopnia I z dwoma niewiadomymi
Matematyka wokół nas Równania i nierówności
Reprezentacje - zmiennoprzecinkowa
Poznajemy klawiaturę Opracował Piotr Krupa.
Nierówności (mniej lub bardziej) geometryczne
opracowanie: Agata Idczak
Podstawy układów logicznych
MATEMATYCZNE METODY SZYFROWANIA
o granicy funkcji przy obliczaniu granic Twierdzenia
RÓWNANIA Aleksandra Janes.
MATEMATYKA WCZORAJ I DZIŚ
dla klas gimnazjalnych
Systemy Liczenia - I Przez system liczbowy rozumiemy sposób zapisywania i nazywania liczb. Rozróżniamy: pozycyjne systemy liczbowe i addytywne systemy.
Źródła błędów w obliczeniach numerycznych
„Równania są dla mnie ważniejsze, gdyż polityka jest czymś istotnym tylko dzisiaj, a równania są wieczne.” Albert Einstein.
Stało- i zmiennopozycyjna reprezentacja liczb binarnych
Matematyka i system dwójkowy
KONKURS ZANIM ROZPOCZNIEMY PREZENTACJĘ ZAPRASZAMY DO WZIĘCIA UDZIAŁU W KONKURSIE NA NAJSZYBSZE ROZWIĄZANIE UKŁADU RÓWNAŃ.
Zadania z indywidualnością
Materiały pochodzą z Platformy Edukacyjnej Portalu
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski 1 informatyka +
Metody numeryczne szukanie pierwiastka metodą bisekcji
Rozwiązywanie układów równań liniowych różnymi metodami
Szyfrowanie i deszyfrowanie
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski 1 informatyka +
Metody matematyczne w Inżynierii Chemicznej
Znaki specjalne Co i jak + brak przykładów.  Aby wstawić symbol lub znak specjalny należy na karcie Wstawianie w grupie Symbole kliknąć na przycisk Symbol.
1 Prowadzący: Dr inż. Sławomir Samolej D102 C, tel: , WWW: ssamolej.prz-rzeszow.pl INFORMATYKA.
Algorytmy- Wprowadzenie do programowania
Systemy liczenia IV Kodowanie i kody Danuta Stanek.
Kryptologia przykład metody RSA
Materiały pochodzą z Platformy Edukacyjnej Portalu
Prezentacja dla klasy II gimnazjum
METODY REPREZENTOWANIA IFORMACJI
Wstęp do interpretacji algorytmów
K ODY ZMIENNEJ DŁUGOŚCI Alfabet Morsa Kody Huffmana.
URZĄDZENIA TECHNIKI KOMPUTEROWEJ Zapis liczb binarnych ze znakiem.
Podstawy Informatyki.
Zastosowanie układów równań do rozwiązywania zadań tekstowych
EWOLUCJA SIŁY SZYFRÓW ABCDEFGHIJKLMNOPQRSTUVWXYZ
Liczby pierwsze: szukanie, rozmieszczenie, zastosowanie, ciekawostki. Liczby pierwsze: szukanie, rozmieszczenie, zastosowanie, ciekawostki. Kinga Cichoń.
Operacje na ciągach znaków
Liczby pierwsze oraz kryptologia
SHA1 – Secure Hash Algorithm
Zapis prezentacji:

WYPIEK ROKU czyli… kodowanie metodą Rabina

Babcia Jasia… …to prawdziwa mistrzyni w pieczeniu ciast. Jej specjały już nieraz zdobyły uznanie i laury w wielu znaczących konkursach. Jak co roku ma zamiar wziąć udział w Festiwalu Miasto i Ciasto, którego integralną częścią jest konkurs Bieg Po Wypiek . Jej sekretne receptury są jednak łakomym kąskiem dla konkurencji. Dla Babci Jasia to jednak żaden problem, jest ona bowiem emerytowanym kryptologiem. Jaś natomiast to bystry chłopiec, który uwielbia matematykę ( równania modularne to dla niego pestka). Babcia postanawia więc nauczyć wnuczka jednej z metod kodowania , a sama przy okazji zaszyfrować przepis (a właściwie jeden składnik, który nadaje temu ciastu wyjątkowy smak).

Czy słyszałeś kiedyś o Michaelu Rabinie ? To wybitny matematyk znany przede wszystkim z prac nad teorią i zastosowaniem algorytmów komputerowych. Szczególną uwagę poświęca on elektronicznemu bezpieczeństwu oraz zastosowaniom metod generowania liczb pseudolosowych. Urodził się we Wrocławiu w 1931 roku, jednakże już 4 lata później, w związku z ówczesną sytuacją polityczną, jego rodzina podjęła decyzję o wyjeździe do Palestyny. Tam Michael Rabin rozpoczął swoją edukację i w 1953 roku otrzymał tytuł Magistra Algebry. Zafascynowany techniką komputerową wyjechał do USA, gdzie kontynuował pracę naukową. Współpracował z korporacją IBM oraz rozpoczął rozważania nad ideą funkcji jednostronnej – a więc funkcji, której wartość obliczyć jest bardzo łatwo, podczas gdy znalezienie argumentu dla danej wartości jest ekstremalnie trudne, wręcz niewykonalne. Badania te dały podstawy całej współczesnej kryptografii.

KRYPTO… co??!! Kryptografii Jasiu… Jest to dziedzina nauki zajmująca się zagadnieniami utajania informacji poprzez jej szyfrowanie. Mianem kryptografii określa się także zbiór technik służących takiemu utajaniu. Ma ona ogromne znaczenie w ochronie danych komputerowych. Początki kryptografii sięgają czasów starożytnych. Już Egipcjanie szyfrowali swoje hieroglify, a starożytni Hebrajczycy ważne słowa w swoich skryptach. Stosowane wówczas metody były jednak zazwyczaj bardzo prymitywne. Sytuacja ta uległa zmianie w pierwszej połowie dwudziestego wieku, kiedy to zbudowano wiele systemów szyfrowania za pomocą urządzeń mechanicznych. Systemy te wykorzystywano m.in. podczas drugiej wojny światowej (np. Enigma). Jednak dopiero rozwój elektroniki przyniósł prawdziwą rewolucję w projektowaniu systemów kodujących. Dawał on olbrzymie możliwości wykonywania operacji obliczeniowych niskim kosztem. Kryptografia jest ściśle związana celami wojskowymi, a także kontrolą aparatów bezpieczeństwa poszczególnych państw. Powszechnie jest ona także wykorzystywana w bankowości elektronicznej, gdzie wszystkie transakcje odbywają się w tak zwanym bezpiecznym połączeniu, a każda operacja zatwierdzana jest przy użyciu klucza prywatnego.

ALE CO Z NASZYM CIASTEM? Zakodujemy nasz sekretny składnik i nawet jeśli zaszyfrowana wiadomość wpadnie w ręce konkurencji (znającej naszą metodę kodowania) nic nie będą mogli zrobić. Skoro zna naszą metodę to dlaczego nie może rozkodować wiadomości? Nie może, zastosujemy bowiem Algorytm Rabina. Osoba, która przechwyciła naszą wiadomość musiałaby posiadać umiejętność faktoryzacji liczb, czyli ich rozkładu na liczby pierwsze. Jest to zadanie niezwykle trudne. Bowiem dla liczby „n” mającej 1000 cyfr znaczących, maksymalna liczba dzieleń jaką w najgorszym wypadku musielibyśmy wykonać ~10500. Jeśli jedno dzielenie super szybkiemu komputerowi zajmuje ~10-4 sekundy, to potrzeba nam będzie 10496 sekund aby wykonać wszystkie te dzielenia. Z kolei 10496 s < 10494 min < 10492 godz < 10490 dni < 10487 lat !!! Biorąc pod uwagę fakt że wszechświat istnieje od 14·109 lat sam widzisz, że wręcz niemożliwością jest złamanie tego kodu 

Skąd będziemy wiedzieć jakim literom odpowiadają poszczególne liczby? Użyjemy kodu ASCII (American Standard Code for Information Interchange), jest to standardowy sposób przypisania liczb do znaków pisarskich. Jest to kod specjalny, w którym wszystkim małym i dużym literom, cyfrom, znakom interpunkcyjnym oraz znakom specjalnym zostały przypisane liczby z przedziału od 0 do 127. Kod ASCII rozszerzono o liczby z przedziału od 128 do 255 dla oznaczenia symboli matematycznych, prostych symboli graficznych i kilku znaków specjalnych. Nasz tajny składnik ma następującą reprezentację: 73 77 66 73 82. Znasz go, spróbuj go jednak odnaleźć w poniższym zestawieniu 65 A 69 E 73 I 77 M 81 Q 66 B 70 F 74 J 78 N 82 R 67 C 71 G 75 K 79 O 83 S 68 D 72 H 76 L 80 P 84 T

ZACZNIJMY KODOWANIE Użyjemy funkcji kodującej k(x) = x2 (mod m) gdzie m=p·q , a p i q to liczby pierwsze, które przy dzieleniu przez 4 dają resztę 3. Niech k(x) = x2 (mod 253) (253=11·23) Pierwszą liczbą do zaszyfrowania jest 73. Podnieśmy więc 732 = 5329(mod 253)=16(mod253) Kolejna liczba to 77. 772 = 5929(mod 253)=110(mod253) 662 = 4356(mod 253)=55(mod253) 822 = 6724(mod 253)=146(mod253) Zaszyfrowana przez nas wiadomość ma następująca treść: 16 110 55 16 146 Wadą algorytmu Rabina jest możliwość otrzymania kilku rozwiązań. Wiadomo jednak, że kodowaliśmy tylko liczby dwucyfrowe. Wprowadzając tą dodatkową informację unikniemy problemu niejednoznaczności.

A jak mam ją później rozkodować ? Treść wiadomości znają wszyscy, ty natomiast masz nad nimi tą przewagę, że znasz faktoryzacje liczby 253. Czyli jej rozkład na iloczyn liczb 11 i 23. W celu rozszyfrowania wiadomości będziesz musiał wykonać szereg operacji. Zacznijmy od pierwszej liczby : 16 Szukaną przez nas wartością jest „x”. x2 ≡ 16(mod 11)≡ 5(mod11) gdyż „x” został zakodowany poprzez podniesienie tej wartości do kwadratu x2 ≡ 16(mod 23) Korzystając z odpowiedniego twierdzenia możemy wyliczyć wartość „x” ze wzoru : x ≡ 5(11+1)/4(mod 11) = 53(mod 11)= 125(mod11)= 4(mod 11) czyli możliwe jest także “-x” gdyż zarówno „x” jak i „-x” podniesiony do kwadratu da x2. x ≡ 7(mod 11) A z drugiego równania (x2 ≡ 16(mod 23)) otrzymujemy : x ≡ 16 (23+1)/4 (mod 23)= 166(mod 23)= 26·26·26·26 (mod 23)= 64·64·64·64(mod 23) = 18·18·18·18 (mod 23) = 324·324 (mod 23) = 2·2 (mod 23) = 4 (mod 23) lub analogicznie x ≡ 19(mod 23)

Musimy zatem rozwiązać cztery układy równań : x ≡ 4 (mod 11) x ≡ 4 (mod 23) x ≡ 4 (mod 11) x ≡ 19 (mod 23) x ≡ 7 (mod 11) x ≡ 4 (mod 23) x ≡ 7 (mod 11) x ≡ 19 (mod 23) Wyliczmy „x” z pierwszego układu. Z pierwszego równania (x ≡ 4 (mod 11)) zapiszemy x jako : x = 4 + 11·k a następnie podstawimy do drugiego równania otrzymując : 4 + 11·k = 4 (mod 23) 11·k = 0 (mod 23) k = 0 (mod 23) k = 23·n Wstawiając wyliczone k do pierwszej równości (x = 4 + 11·k) : x1 = 4 + 11·23·n= 4(mod 253) lub x2= 249 (mod 253) Wiemy jednak, że kodowano liczby dwucyfrowe tak więc żadna z wyliczonych wartości nie jest naszym rozwiązaniem.

Musimy rozwiązać więc drugi układ równań? Tak Jasiu! x ≡ 4 (mod 11) x ≡ 19 (mod 23) Z pierwszego równania : x = 4 + 11k Wstawiając do drugiego równania : 4 + 11k = 19(mod 23) 11k = 15(mod 23) Obie strony równania mnożymy przez 11-1 czyli 21 w Z23 (bo 21·11= 231(mod 23) = 1(mod23)) Otrzymujemy : k= 15·21 (mod 23)= 315(mod 23) = 16(mod 23) k = 16 + 23n x = 4 + (16+ 23n)11 = 180 + 253n x1= 180 (mod 253) lub x2= 73 (mod 253)

Wiedząc, że kodowano liczby dwucyfrowe otrzymujemy rozwiązanie x = 73 , czyli zakodowaną literą było „I”. Analogicznie należy rozkodować pozostałe liczby z otrzymanej wiadomości. Chyba nie powinieneś mieć z tym żadnego problemu. Masz jakieś pytania? Spytaj od razu, bo jeśli pomylisz się w dniu naszego konkursu z pewnością nie wygramy. DZIĘKUJĘ  !!! Prezentację przygotował Arkadiusz Gnat