Zastosowania arytmetyki modularnej. Zastosowania arytmetyki modularnej



Podobne dokumenty
Kongruencje twierdzenie Wilsona

Zastosowanie teorii liczb w kryptografii na przykładzie szyfru RSA

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

MADE IN CHINA czyli SYSTEM RESZTOWY

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

Analiza kongruencji. Kongruencje Wykład 3. Analiza kongruencji

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

Plan-de-CAMpagne kompatybilny z SEPA!

Spis treści. Przedmowa... 9

Pierwiastki pierwotne, logarytmy dyskretne

Twierdzenie Eulera. Kongruencje wykład 6. Twierdzenie Eulera

Matematyka dyskretna

Sieci Komputerowe Mechanizmy kontroli błędów w sieciach

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

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

Matematyka dyskretna

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

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

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

Wybrane zagadnienia teorii liczb

Kryptografia systemy z kluczem tajnym. Kryptografia systemy z kluczem tajnym

Liczby pierwsze na straży tajemnic

Kod U2 Opracował: Andrzej Nowak

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

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

Przykładowe zadania z teorii liczb

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

Systemy bezpieczne i FTC (Niezawodne Systemy Cyfrowe)

Pracownia Komputerowa wykład V

Laboratorium ochrony danych

Copyright by K. Trybicka-Francik 1

Copyright by K. Trybicka-Francik 1

EGZAMIN MATURALNY Z INFORMATYKI 13 MAJA 2019 POZIOM ROZSZERZONY. Godzina rozpoczęcia: 14:00 CZĘŚĆ I WYBRANE: Czas pracy: 90 minut

Wstęp do informatyki- wykład 1

Podstawy systemów kryptograficznych z kluczem jawnym RSA

Algorytm Euklidesa. ZADANIE 1. Oblicz korzystając z algorytmu Euklidesa: (a) NWD(120, 195), (b) NWD(80, 208), (c) NWD(36, 60, 90),

Kongruencje i ich zastosowania

Luty 2001 Algorytmy (7) 2000/2001

Algorytm. a programowanie -

System liczbowy jest zbiorem reguł określających jednolity sposób zapisu i nazewnictwa liczb.

Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego

Bezpieczeństwo systemów komputerowych

Joanna Kluczenko 1. Spotkania z matematyka

Matematyka dyskretna

Równania wielomianowe

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

Pracownia Komputerowa wyk ad V

Wykład 2. Informatyka Stosowana. 9 października Informatyka Stosowana Wykład 2 9 października / 42

Kongruencje. Sławomir Cynk. 24 września Nowy Sącz. Instytut Matematyki Uniwersytetu Jagiellońskiego

Wykład 2. Informatyka Stosowana. 10 października Informatyka Stosowana Wykład 2 10 października / 42

Matematyka dyskretna

SYSTEMY LICZBOWE. Zapis w systemie dziesiętnym

Rozrachunki Optivum. Jak korzystać z funkcji płatności masowe?

Sieci Mobilne i Bezprzewodowe laboratorium 2 Modelowanie zdarzeń dyskretnych

Rozdział 1. Zadania. 1.1 Liczby pierwsze. 1. Wykorzystując sito Eratostenesa wyznaczyć wszystkie liczby pierwsze mniejsze niż 200.

Przykłady zastosowań funkcji tekstowych w arkuszu kalkulacyjnym

Kongruencje oraz przykłady ich zastosowań

SYSTEMY LICZBOWE 275,538 =

Parametry systemów klucza publicznego

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 6

5040 =

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Zapis liczb binarnych ze znakiem

Piotr Chrząstowski-Wachtel Uniwersytet Warszawski. Al Chwarizmi i trzy algorytmy Euklidesa

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q

Algorytmy i struktury danych. Wykład 4

3.4. FUNKCJA LINIOWA ZADANIA TEKSTOWE. Sześć lat temu ojciec był 6 razy starszy od syna.

LICZBY PIERWSZE. Jan Ciurej Radosław Żak

1.1. Pozycyjne systemy liczbowe

Operacje arytmetyczne

Podstawy symulacji komputerowej

ZADANIE 1. Ważenie (14 pkt)

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

Polska-Brazylia 5:0, czyli o poprawianiu błędów w przekazywanych informacjach

L6.1 Systemy liczenia stosowane w informatyce

1. Określenie pierścienia

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

Wstęp do informatyki- wykład 1 Systemy liczbowe

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

Podstawy Informatyki

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

Detekcja i korekcja błędów w transmisji cyfrowej

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

Techniki multimedialne

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

Następnie przypominamy (dla części studentów wprowadzamy) podstawowe pojęcia opisujące funkcje na poziomie rysunków i objaśnień.

Zarys algorytmów kryptograficznych

0.1 Pierścienie wielomianów

Algorytmy w teorii liczb

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

Kup książkę Poleć książkę Oceń książkę. Księgarnia internetowa Lubię to!» Nasza społeczność

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

mgr inż. Grzegorz Kraszewski SYSTEMY MULTIMEDIALNE wykład 4, strona 1. GOLOMBA I RICE'A

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

Kryptografia na procesorach wielordzeniowych

Zadania do samodzielnego rozwiązania

MNOŻENIE W SYSTEMACH UZUPEŁNIENIOWYCH PEŁNYCH (algorytm uniwersalny)

Kierunek i poziom studiów: Sylabus modułu: Wstęp do algebry i teorii liczb (03-M01N-WATL) Nazwa wariantu modułu (opcjonalnie): -

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

Szyfrowanie RSA (Podróż do krainy kryptografii)

Transkrypt:

Obliczenia w systemach resztowych [Song Y. Yan] Przykład: obliczanie z = x + y = 123684 + 413456 na komputerze przyjmującym słowa o długości 100 Obliczamy kongruencje: x 33 (mod 99), y 32 (mod 99), x 8 (mod 98), y 92 (mod 98), x 9 (mod 97), y 42 (mod 97), x 89 (mod 95), y 16 (mod 95), co daje z = x + y 65 (mod 99), z = x + y 2 (mod 98), z = x + y 51 (mod 97), z = x + y 10 (mod 95).

z chińskiego twierdzenia o resztach 4 1 x + y = z = z i M i M i i=1 (mod M) gdzie M = m 1 m 2 m 3 m 4, M i = M m i, M i M i 1 1 (mod m i ) Obliczamy: M = 99 98 97 95 = 89403930; M 1 = M/99 = 903070, M 2 = M/98 = 912285, M 3 = M/97 = 921690, M 4 = M/95 = 941094, i rozwiązujemy 4 kongruencje 903070M 1 1 91M 1 1 1 (mod 99), 912285M 1 2 3M 1 2 1 (mod 98), 921690M 1 3 93M 1 3 1 (mod 97), 941094M 1 4 24M 1 4 1 (mod 95) M 1 1 37 (mod 99), M 1 2 33 (mod 98), M 1 3 24 (mod 97), M 1 4 4 (mod 95), z 4 i=1 z im i M 1 i (mod M) =... = 537140 (mod 89403930).

Obliczenia w systemach resztowych, c.d. [Song Y. Yan] Przykład: obliczanie z = x y = 123684 413456 na komputerze przyjmującym słowa o długości 100 Obliczamy kongruencje: x 33 (mod 99), y 32 (mod 99), x 8 (mod 98), y 92 (mod 98), x 9 (mod 97), y 42 (mod 97), x 89 (mod 95), y 16 (mod 95), x 63 (mod 89), y 51 (mod 89), x 14 (mod 83), y 33 (mod 83). co daje z = x y 66 (mod 99), z = x y 10 (mod 95), z = x y 50 (mod 98), z = x y 9 (mod 89), z = x y 51 (mod 97), z = x y 47 (mod 83). chińskie twierdzenie o resztach (M = m 1... m 6 = 803 651 926 770) z = x y = 51 137 891 904

Wykrywanie błędów w łańcuchach liczb (bitów) Song Y. Yan Bit (sprawdzania) parzystości... to bit x n+1 dodany do wysyłanego łańcucha x 1 x 2... x n. w języku kongruencji x n+1 x 1 + x 2 +... + x n (mod 2) x n+1 = 0 dla parzystej liczby jedynek w łańcuchu x 1 x 2... x n ; x n+1 = 1 dla nieparzystej liczby jedynek. x 1 x 2... x n+1 = y 1 y 2... y n+1 ; sprawdzenie to weryfikacja: y 1 + y 2 +... + y n+1 0 (mod 2) Ta idea (także w implementacji macierzowej ) znajduje naturalne rozszerzenie w weryfikacji przeróżnych numerów : social security number, numery kont bankowych IBAN (International Bank Account Number), UPC (universal product number), numery banknotów a także numery ISBN (international standard book number.)

Wykrywanie błędów w numerach ISBN [Song Y. Yan] ISBN to 10-cyfrowy numer: x 1 x 2... x 9 ; gdzie x i [0, 9] oraz cyfra sprawdzająca x 10 [0,..., 9, X], gdzie X oznacza liczbę 10. Używamy tu kongruencji modulo 11: kongruencja weryfikacyjna to 10 i=1 ix i 0 (mod 11), x 10 9 ix i (mod 11). i=1 Przykład: ISBN ma postać 0-387-97329-? x 10 = 9 i=1 ix i 1 0+2 3+3 8+4 7+5 9+6 7+7 3+8 2+9 9 10 = X. Kompletny ISBN ma postać 0-387-97329-X.

Wykrywanie błędów w numerach ISBN, c.d. Przykład: ISBN ma postać 9-810-x3422-9 aby znaleźć x rozpisujemy 10 i=1 ix i 0 (mod 11): 1 9 + 2 8 + 3 1 + 4 0 + 5 x + 6 3 + 7 4 + 8 2 + 9 2 + 10 8 1 + 5x (mod 11). Do rozwiązania mamy kongruencję 1 + 5x 0 (mod 11), x = 2. Zauważmy, że kod ISBN nie zawiera w sobie mechanizmu autokorekty jedynie można wykryć, że jest błędny (chyba, że dokładnie wiemy która cyfra jest błędna).

Wykrywanie błędów w numerach IBAN [Wikipedia, PL] schemat PLkk BBBB BBBk MMMM MMMM MMMM MMMM Pierwsze 2 cyfry to cyfry kontrolne. Następnych 8 cyfr to identyfikator banku (pierwsze 3 lub 4) i oddziału (następne 4 lub 3). Ostatnie 16 cyfr to numer rachunku. Sprawdzanie i wyliczanie cyfr kontrolnych Weź pełen numer konta (razem z kodem kraju), bez spacji. Sprawdź czy zgadza się długość numeru dla danego kraju. Przenieś 4 pierwsze znaki numeru na jego koniec. Zamień litery w numerze konta na cyfry, zamieniając A na 10, B na 11 itd., aż do Z na 35. Potraktuj otrzymany ciąg znaków jak liczbę i wylicz jej resztę modulo 97. Jeśli reszta jest równa 1, to numer konta ma prawidłowe cyfry kontrolne.

Liniowy generator kongruentny (LCG)...... został wprowadzony w latach 1950-tych przez D.H. Lehmera ojca obliczeniowej teorii liczb. LCG Lehmera: (1) n moduł (n > 0); (2) x 0 ziarno (0 x 0 n); (3) a mnożnik (0 a n); (4) b przesunięcie (0 b n). K długość okresu. x k ax k 1 + b (mod n), 1 k K, Jasnym jest, że długość okresu K nie może przekraczać wartości modułu n; warunek konieczny aby K było równe n (Knuth) to: (b, n) = 1; a 1 (mod p) dla wszystkich p n, a także a 1 (mod 4) jeżeli 4 n. Dla a = 1 mówimy o czystym liniowym generatorem kongruentnym; dla a > 1 multyplikatywnym liniowym generatorem kongruentnym.

LCG przykład: (1) n = 1399 moduł; (2) x 0 = 5 ziarno; (3) a = 11 mnożnik; (4) b = 73 przesunięcie; (5) k liczba liczb losowych. x 1 ax 0 + b (mod n) x 1 = 128, x 6 ax 5 + b (mod n) x 6 = 768, x 2 ax 1 + b (mod n) x 2 = 82, x 7 ax 6 + b (mod n) x 7 = 127, x 3 ax 2 + b (mod n) x 3 = 975, x 8 ax 7 + b (mod n) x 8 = 71, x 4 ax 3 + b (mod n) x 4 = 1005, x 9 ax 8 + b (mod n) x 9 = 854, x 5 ax 4 + b (mod n) x 5 = 1335, x 10 ax 9 + b (mod n) x 10 = 1073............ x 232 ax 231 + b (mod n) x 232 = 121, x 233 ax 232 + b (mod n) x 233 = 5. Długość ciągu K = 233. Często stosowane wartości n = 2 m, a = 2 l + 1, (l < m), b = 1.

Generator kongruentny potęgowy...... ma postać ogólną Generator potęgowy RSA x k (x k 1 ) d (mod n), k = 1, 2,... n = pq oraz (d, φ(n)) = 1. Na przykład: n = 299 = 13 23; φ(299) = 264; d = 17 (17, 264) = 1; x 0 = 6 K = 10 Generator kwadratowy d = 2 n = pq gdzie p q 3 (mod 4). Dyskretny generator wykładniczy x k g x k 1 (mod n), Jeżeli n = p > 2, a g jest pierwiastkiem pierwotnym modulo p to algorytm wykładniczy zastosowany wstecz x k x k 1 jest po prostu zagadnieniem logarytmów dyskretnych.