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

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

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

Kryptografia. Wykład z podstaw klasycznej kryptografii z elementami kryptografii kwantowej. dla studentów IV roku. Ryszard Tanaś

Wybrane zagadnienia teorii liczb

Liczby pierwsze na straży tajemnic

Pierwiastki pierwotne, logarytmy dyskretne

Przykładowe zadania z teorii liczb

Twierdzenie Eulera. Kongruencje wykład 6. Twierdzenie Eulera

Matematyka dyskretna

Matematyka dyskretna

Liczby całkowite. Zadania do pierwszych dwóch lekcji

Podstawy systemów kryptograficznych z kluczem jawnym RSA

Zastosowanie teorii liczb w kryptografii na przykładzie szyfru RSA

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

Zadania do samodzielnego rozwiązania

Spis treści. Przedmowa... 9

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

Kongruencje twierdzenie Wilsona

Równania wielomianowe

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

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Algorytmy i struktury danych Laboratorium Nr 10.

Matematyka dyskretna

Bezpieczeństwo systemów komputerowych

Matematyka dyskretna

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

Zastosowania arytmetyki modularnej. Zastosowania arytmetyki modularnej

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

MADE IN CHINA czyli SYSTEM RESZTOWY

Jeśli lubisz matematykę

Kongruencje pierwsze kroki

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

Copyright by K. Trybicka-Francik 1

Copyright by K. Trybicka-Francik 1

Elementy teorii liczb. Matematyka dyskretna

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

Ciała skończone. 1. Ciała: podstawy

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

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. Sławomir Cynk. 24 września Nowy Sącz. Instytut Matematyki Uniwersytetu Jagiellońskiego

Teoria liczb. Zajmuje się własnościami liczb, wszystkim całkowitych

Kongruencje oraz przykłady ich zastosowań

Kongruencje. Beata Łojan. Koło Naukowe Matematyków Uniwersytetu Śląskiego w Katowicach.

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

Matematyka Dyskretna. Andrzej Szepietowski. 25 marca 2004 roku

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

1. Określenie pierścienia

Grzegorz Bobiński. Matematyka Dyskretna

Grzegorz Bobiński. Matematyka Dyskretna

Liczby pierwsze wielomianowo - ekstremalnie trudne?

Analiza kongruencji. Kongruencje Wykład 3. Analiza kongruencji

Kongruencje i ich zastosowania

Tajemnice liczb pierwszych i tych drugich

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

Matematyka dyskretna

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

Największy wspólny dzielnik Algorytm Euklidesa (także rozszerzony) WZAiP1: Chińskie twierdzenie o resztach

Algorytmy w teorii liczb

Metoda Lenstry-Shora faktoryzacji dużych liczb całkowitych

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

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

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

0.1 Pierścienie wielomianów

Podstawowe struktury algebraiczne

Matematyka dyskretna. Wykład 5: Funkcje multiplikatywne. Gniewomir Sarbicki

Liczby pierwsze Mersenne a i Fermata. Liczby pierwsze Mersenne a i Fermata

Algorytmy i struktury danych. Wykład 4

I) Reszta z dzielenia

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

a)wykaż,żejeżeli2 n 1jestliczbapierwszą,to2 n 1 (2 n 1)jestliczbądoskonałą.

Zarys algorytmów kryptograficznych

2 Kongruencje 5. 4 Grupy 9. 5 Grupy permutacji Homomorfizmy grup Pierścienie 16

Arytmetyka. Działania na liczbach, potęga, pierwiastek, logarytm

Sumy kwadratów kolejnych liczb naturalnych

Odwrotne twierdzenie Fermata. Odwrotne twierdzenie Fermata

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

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

1 Określenie pierścienia

Wyk lad 9 Podpierścienie, elementy odwracalne, dzielniki zera

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

Pierścień wielomianów jednej zmiennej

Teoria liczb. x 3 + 3y 3 + 9z 3 9xyz = 0. x 2 + 3y 2 = 1998x.

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

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

LICZBY PIERWSZE. Jan Ciurej Radosław Żak

Bukiety matematyczne dla gimnazjum

Wykład 1. Na początku zajmować się będziemy zbiorem liczb całkowitych

Rozwijanie uzdolnień matematycznych uczniów. semestr letni, 2018/2019 wykład nr 8

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

Parametry systemów klucza publicznego

Obóz Naukowy Olimpiady Matematycznej Gimnazjalistów

Ćwiczenia z teoria liczb, ciąg dalszy (pt 15 maja) Matematyka Dyskretna

Joanna Kluczenko 1. Spotkania z matematyka

Daniela Spurtacz, klasa 8W, rok szkolny 2018/2019

Matematyka dyskretna

Kryptologia przykład metody RSA

Wielomiany podstawowe wiadomości

Funkcje: wielomianowa, wykładnicza, logarytmiczna wykład 3

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

Algorytmy asymetryczne

Transkrypt:

Kryptografia z elementami kryptografii kwantowej Ryszard Tanaś http://zon8.physd.amu.edu.pl/~tanas Wykład 6a

Spis treści 10 Trochę matematyki (c.d.) 3 10.19 Reszty kwadratowe w Z p.............. 3 10.20 Symbol Legendre a................. 5 10.21 Własności symbolu Legendre a:.......... 6 10.22 Prawo wzajemności................ 7 10.23 Pierwiastki kwadratowe modulo p......... 9 10.24 Reszty kwadratowe w Z n............. 10 10.25 Symbol Jacobiego................. 11 10.26 Pierwiastki kwadratowe modulo n......... 13 10.27 Logarytm dyskretny................ 14 10.28 PARI/GP teoria liczb na komputerze...... 16

10 Trochę matematyki (c.d.) 10.19 Reszty kwadratowe w Z p Oznaczmy przez Z p = {0, 1, 2,..., p 1} zbiór reszt modulo p, gdzie p > 2 jest nieparzystą liczbą pierwszą; np. Z 11 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10} Przez Z p będziemy oznaczali zbiór niezerowych elementów zbioru Z p, a więc np. Z 11 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} W zbiorze Z p szukamy takich elementów, które są kwadratami innych elementów, tzn. spełniona jest kongruencja x 2 a (mod p), dla {x, a} Z p. Liczby a, które są kwadratami nazywamy resztami kwadratowymi modulo p, zaś pozostałe elementy nazywamy nieresztami.

10 Trochę matematyki (c.d.) 10.19 Reszty kwadratowe w Z p Oznaczmy przez Z p = {0, 1, 2,..., p 1} zbiór reszt modulo p, gdzie p > 2 jest nieparzystą liczbą pierwszą; np. Z 11 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10} Przez Z p będziemy oznaczali zbiór niezerowych elementów zbioru Z p, a więc np. Z 11 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} W zbiorze Z p szukamy takich elementów, które są kwadratami innych elementów, tzn. spełniona jest kongruencja x 2 a (mod p), dla {x, a} Z p. Liczby a, które są kwadratami nazywamy resztami kwadratowymi modulo p, zaś pozostałe elementy nazywamy nieresztami.

10 Trochę matematyki (c.d.) 10.19 Reszty kwadratowe w Z p Oznaczmy przez Z p = {0, 1, 2,..., p 1} zbiór reszt modulo p, gdzie p > 2 jest nieparzystą liczbą pierwszą; np. Z 11 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10} Przez Z p będziemy oznaczali zbiór niezerowych elementów zbioru Z p, a więc np. Z 11 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} W zbiorze Z p szukamy takich elementów, które są kwadratami innych elementów, tzn. spełniona jest kongruencja x 2 a (mod p), dla {x, a} Z p. Liczby a, które są kwadratami nazywamy resztami kwadratowymi modulo p, zaś pozostałe elementy nazywamy nieresztami.

10 Trochę matematyki (c.d.) 10.19 Reszty kwadratowe w Z p Oznaczmy przez Z p = {0, 1, 2,..., p 1} zbiór reszt modulo p, gdzie p > 2 jest nieparzystą liczbą pierwszą; np. Z 11 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10} Przez Z p będziemy oznaczali zbiór niezerowych elementów zbioru Z p, a więc np. Z 11 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} W zbiorze Z p szukamy takich elementów, które są kwadratami innych elementów, tzn. spełniona jest kongruencja x 2 a (mod p), dla {x, a} Z p. Liczby a, które są kwadratami nazywamy resztami kwadratowymi modulo p, zaś pozostałe elementy nazywamy nieresztami.

Przykład: Weźmy Z 11 i policzmy x2 (mod 11) dla wszystkich x, mamy wtedy x 1 2 3 4 5 6 7 8 9 10 a = x 2 (mod 11) 1 4 9 5 3 3 5 9 4 1

Przykład: Weźmy Z 11 i policzmy x2 (mod 11) dla wszystkich x, mamy wtedy x 1 2 3 4 5 6 7 8 9 10 a = x 2 (mod 11) 1 4 9 5 3 3 5 9 4 1 Resztami kwadratowymi w Z 11 są więc liczby {1, 3, 4, 5, 9}, a pozostale liczby {2, 6, 7, 8, 10} są nieresztami

10.20 Symbol Legendre a Niech a będzie liczbą całkowitą zaś p > 2 liczbą pierwszą; symbol Legendre a definiujemy ( ) a 0, jeśli p a = 1, jeśli a jest resztą kwadratową modulo p p 1, jeśli a jest nieresztą modulo p

10.20 Symbol Legendre a Niech a będzie liczbą całkowitą zaś p > 2 liczbą pierwszą; symbol Legendre a definiujemy ( ) a 0, jeśli p a = 1, jeśli a jest resztą kwadratową modulo p p 1, jeśli a jest nieresztą modulo p Twierdzenie: ( ) a p = a p 1 2 (mod p)

10.21 Własności symbolu Legendre a: ( ) a (1) zależy tylko od a modulo p p

10.21 Własności symbolu Legendre a: ( ) a (1) zależy tylko od a modulo p p ( ) ( ) ( ) ab a b (2) = p p p

10.21 Własności symbolu Legendre a: (1) ( ) a p zależy tylko od a modulo p (2) ( ) ( ) ( ) ab a b = p p p (3) ( ) ab 2 ( ) a =, jeśli NW D(b, p) = 1 p p

10.21 Własności symbolu Legendre a: (1) (2) (3) (4) ( ) a zależy tylko od a modulo p p ( ) ( ) ( ) ab a b = p p p ( ) ab 2 ( ) a =, jeśli NW D(b, p) = 1 p p ( ) 1 p = 1 oraz ( ) 1 p = ( 1) p 1 2

Twierdzenie: ( ) 2 p = ( 1) p2 1 8 = 1, jeśli p ±1 (mod 8) 1, jeśli p ±3 (mod 8)

Twierdzenie: ( ) 2 p = ( 1) p2 1 8 = 1, jeśli p ±1 (mod 8) 1, jeśli p ±3 (mod 8) 10.22 Prawo wzajemności Niech p i q będą dwiema nieparzystymi liczbami pierwszymi. Wtedy ( ) q p = ( 1) p 1 2 = ( p q ( p q q 1 2 ( ) p q ), ) jeśli p q 3 (mod 4), w przeciwnym przypadku

Przykład: ( 91 167 ) = ( ) 7 13 167 = ( 1) 7 1 2 = 167 1 2 ( 7 167 ( ) 167 ) ( 13 167 ) ( 1) 13 1 2 167 1 2 7 ( ) ( ) ( ) ( ) 167 167 6 11 = = 7 13 7 13 ( ) ( ) ( ) ( ) ( ) 2 3 11 3 11 = = 7 7 13 7 13 ( ) ( ) ( 1) 3 1 7 1 7 2 2 ( 1) 11 1 13 1 13 2 2 = ( ) ( 1 2 3 11 ) 3 = 1 ( 1) = 1 11 ( ) 167 13

10.23 Pierwiastki kwadratowe modulo p Prawo wzajemności pozwala szybko stwierdzić czy a jest resztą kwadratową modulo p, a więc mówi, że istnieje rozwiązanie kongruencji x 2 a (mod p), chociaż nie daje wskazówek jak takie rozwiązanie znaleźć. Nie jest znany efektywny deterministyczny algorytm obliczania pierwiastków kwadratowych w Z p. Istnieje natomiast efektywny algorytm probabilistyczny dla obliczania takich pierwiastków jeśli p jest liczbą pierwszą.

10.23 Pierwiastki kwadratowe modulo p Prawo wzajemności pozwala szybko stwierdzić czy a jest resztą kwadratową modulo p, a więc mówi, że istnieje rozwiązanie kongruencji x 2 a (mod p), chociaż nie daje wskazówek jak takie rozwiązanie znaleźć. Nie jest znany efektywny deterministyczny algorytm obliczania pierwiastków kwadratowych w Z p. Istnieje natomiast efektywny algorytm probabilistyczny dla obliczania takich pierwiastków jeśli p jest liczbą pierwszą.

10.23 Pierwiastki kwadratowe modulo p Prawo wzajemności pozwala szybko stwierdzić czy a jest resztą kwadratową modulo p, a więc mówi, że istnieje rozwiązanie kongruencji x 2 a (mod p), chociaż nie daje wskazówek jak takie rozwiązanie znaleźć. Nie jest znany efektywny deterministyczny algorytm obliczania pierwiastków kwadratowych w Z p. Istnieje natomiast efektywny algorytm probabilistyczny dla obliczania takich pierwiastków jeśli p jest liczbą pierwszą.

10.24 Reszty kwadratowe w Z n Oznaczmy przez Z n = {0, 1, 2,..., n 1} zbiór reszt modulo n, gdzie n jest dodatnią liczbą całkowitą; np. Z 15 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14} Przez Z n będziemy oznaczali podzbiór tych elementów zbioru Z n, które są względnie pierwsze z n, a więc np. Z 15 = {1, 2, 4, 7, 8, 11, 13, 14}. Liczba elementów zbioru Z n jest równa wartości funkcji Eulera φ(n). W zbiorze Z n szukamy takich elementów, które są kwadratami innych elementów, tzn. spełniona jest kongruencja x 2 a (mod n), dla {x, a} Z n.

10.24 Reszty kwadratowe w Z n Oznaczmy przez Z n = {0, 1, 2,..., n 1} zbiór reszt modulo n, gdzie n jest dodatnią liczbą całkowitą; np. Z 15 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14} Przez Z n będziemy oznaczali podzbiór tych elementów zbioru Z n, które są względnie pierwsze z n, a więc np. Z 15 = {1, 2, 4, 7, 8, 11, 13, 14}. Liczba elementów zbioru Z n jest równa wartości funkcji Eulera φ(n). W zbiorze Z n szukamy takich elementów, które są kwadratami innych elementów, tzn. spełniona jest kongruencja x 2 a (mod n), dla {x, a} Z n.

10.24 Reszty kwadratowe w Z n Oznaczmy przez Z n = {0, 1, 2,..., n 1} zbiór reszt modulo n, gdzie n jest dodatnią liczbą całkowitą; np. Z 15 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14} Przez Z n będziemy oznaczali podzbiór tych elementów zbioru Z n, które są względnie pierwsze z n, a więc np. Z 15 = {1, 2, 4, 7, 8, 11, 13, 14}. Liczba elementów zbioru Z n jest równa wartości funkcji Eulera φ(n). W zbiorze Z n szukamy takich elementów, które są kwadratami innych elementów, tzn. spełniona jest kongruencja x 2 a (mod n), dla {x, a} Z n.

10.24 Reszty kwadratowe w Z n Oznaczmy przez Z n = {0, 1, 2,..., n 1} zbiór reszt modulo n, gdzie n jest dodatnią liczbą całkowitą; np. Z 15 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14} Przez Z n będziemy oznaczali podzbiór tych elementów zbioru Z n, które są względnie pierwsze z n, a więc np. Z 15 = {1, 2, 4, 7, 8, 11, 13, 14}. Liczba elementów zbioru Z n jest równa wartości funkcji Eulera φ(n). W zbiorze Z n szukamy takich elementów, które są kwadratami innych elementów, tzn. spełniona jest kongruencja x 2 a (mod n), dla {x, a} Z n.

10.25 Symbol Jacobiego Niech a będzie liczbą całkowitą i niech n będzie dowolną dodatnią liczbą nieparzystą. Niech n = p α 1 1... p α r r będzie rozkładem liczby n na czynniki pierwsze. Wtedy definiujemy symbol Jacobiego (uogólnienie symbolu Legendre a) jako iloczyn symboli Legendre a dla dzielników pierwszych n ( ) a n = ( a p 1 ) α1... ( a p r ) αr

10.25 Symbol Jacobiego Niech a będzie liczbą całkowitą i niech n będzie dowolną dodatnią liczbą nieparzystą. Niech n = p α 1 1... p α r r będzie rozkładem liczby n na czynniki pierwsze. Wtedy definiujemy symbol Jacobiego (uogólnienie symbolu Legendre a) jako iloczyn symboli Legendre a dla dzielników pierwszych n ( ) a n = ( a p 1 ) α1... ( a p r ) αr Twierdzenie: Dla dowolnej dodatniej liczby nieparzystej n mamy ( 2 n ) = ( 1) n2 1 8

Twierdzenie: Dla dowolnych dodatnich liczb nieparzystych m i n mamy ( ) m n = ( 1) m 1 2 n 1 2 ( n m )

Twierdzenie: Dla dowolnych dodatnich liczb nieparzystych m i n mamy ( ) m n = ( 1) m 1 2 n 1 2 ( n m ) Uwaga: Jeśli liczba a Z n jest resztą kwadratową to ( a Jeśli symbol Jacobiego ( ) a n to a nie musi być resztą kwadratową! n ) = 1. = 1 dla liczby złożonej n

10.26 Pierwiastki kwadratowe modulo n Jeśli n = pq jest iloczynem dwóch dużych, różnych liczb pierwszych, to uważa się, że znajdowanie pierwiastków kwadratowych w Z n należy do problemów trudnych obliczeniowo! Trudność ta jest równoważna trudności z faktoryzacją liczby n. (Faktoryzując n znajdujemy liczby pierwsze p i q, znajdujemy pierwiastki kwadratowe w Z p oraz Z q, a następnie korzystając z chińskiego twierdzenia o resztach znajdujemy pierwiastki w Z n.)

10.26 Pierwiastki kwadratowe modulo n Jeśli n = pq jest iloczynem dwóch dużych, różnych liczb pierwszych, to uważa się, że znajdowanie pierwiastków kwadratowych w Z n należy do problemów trudnych obliczeniowo! Trudność ta jest równoważna trudności z faktoryzacją liczby n. (Faktoryzując n znajdujemy liczby pierwsze p i q, znajdujemy pierwiastki kwadratowe w Z p oraz Z q, a następnie korzystając z chińskiego twierdzenia o resztach znajdujemy pierwiastki w Z n.)

10.26 Pierwiastki kwadratowe modulo n Jeśli n = pq jest iloczynem dwóch dużych, różnych liczb pierwszych, to uważa się, że znajdowanie pierwiastków kwadratowych w Z n należy do problemów trudnych obliczeniowo! Trudność ta jest równoważna trudności z faktoryzacją liczby n. (Faktoryzując n znajdujemy liczby pierwsze p i q, znajdujemy pierwiastki kwadratowe w Z p oraz Z q, a następnie korzystając z chińskiego twierdzenia o resztach znajdujemy pierwiastki w Z n.)

10.27 Logarytm dyskretny Niech p będzie liczbą pierwszą, przez Z p oznaczamy zbiór liczb {1,..., p 1} i niech g będzie generatorem Z p, tzn. takim elementem, że dla każdej liczby a Z p istnieje takie i, że a g i (mod p) (wszystkie elementy mogą być wygenerowane z g). Problem logarytmu dyskretnego polega na znalezieniu dla danej liczby 0 < b < p takiej liczby a, że g a b (mod p). Problem znajdowania logarytmu dyskretnego jest problemem trudnym obliczeniowo!

10.27 Logarytm dyskretny Niech p będzie liczbą pierwszą, przez Z p oznaczamy zbiór liczb {1,..., p 1} i niech g będzie generatorem Z p, tzn. takim elementem, że dla każdej liczby a Z p istnieje takie i, że a g i (mod p) (wszystkie elementy mogą być wygenerowane z g). Problem logarytmu dyskretnego polega na znalezieniu dla danej liczby 0 < b < p takiej liczby a, że g a b (mod p). Problem znajdowania logarytmu dyskretnego jest problemem trudnym obliczeniowo!

10.27 Logarytm dyskretny Niech p będzie liczbą pierwszą, przez Z p oznaczamy zbiór liczb {1,..., p 1} i niech g będzie generatorem Z p, tzn. takim elementem, że dla każdej liczby a Z p istnieje takie i, że a g i (mod p) (wszystkie elementy mogą być wygenerowane z g). Problem logarytmu dyskretnego polega na znalezieniu dla danej liczby 0 < b < p takiej liczby a, że g a b (mod p). Problem znajdowania logarytmu dyskretnego jest problemem trudnym obliczeniowo!

10.27 Logarytm dyskretny Niech p będzie liczbą pierwszą, przez Z p oznaczamy zbiór liczb {1,..., p 1} i niech g będzie generatorem Z p, tzn. takim elementem, że dla każdej liczby a Z p istnieje takie i, że a g i (mod p) (wszystkie elementy mogą być wygenerowane z g). Problem logarytmu dyskretnego polega na znalezieniu dla danej liczby 0 < b < p takiej liczby a, że g a b (mod p). Problem znajdowania logarytmu dyskretnego jest problemem trudnym obliczeniowo!

Przykład: Weźmy Z 19, czyli zbiór liczb {1,..., 18} oraz g = 2. Niech b = 2 a (mod 19), mamy wtedy a 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 b 2 4 8 16 13 7 14 9 18 17 15 11 3 6 12 5 10 1

Przykład: Weźmy Z 19, czyli zbiór liczb {1,..., 18} oraz g = 2. Niech b = 2 a (mod 19), mamy wtedy a 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 b 2 4 8 16 13 7 14 9 18 17 15 11 3 6 12 5 10 1 Tak więc w Z 19, np. log 2 13 = 5 2 5 13 (mod 19)

10.28 PARI/GP teoria liczb na komputerze GP/PARI CALCULATOR Version 2.1.6 (released) i386 running linux 32-bit version (readline v4.3 enabled, extended help available) Copyright (C) 2002 The PARI Group PARI/GP is free software, covered by the GNU General Public License, and comes WITHOUT ANY WARRANTY WHATSOEVER. Type? for help, \q to quit. Type?12 for how to get moral (and possibly technical) support. realprecision = 28 significant digits seriesprecision = 16 significant terms format = g0.28 parisize = 4000000, primelimit = 500000

Dzielenie z resztą? divrem(841,160) %1 = [5, 41]~? divrem(2987634211432123123,8765392) %2 = [340844335476, 5476531]~ Algorytm Euklidesa NW D(a, b)? gcd(841,160) %2 = 1? gcd(2987634211432123123,8765392) %3 = 1? gcd(739834587231984763212876546,497563772132052) %4 = 6

Rozszerzony algorytm Euklidesa? bezout(841,160) %4 = [-39, 205, 1]? bezout(2987634211432123123,8765392) %5 = [2987931, -1018419356145006986, 1]? Mod(160,841)^(-1) %6 = Mod(205, 841)? lift(mod(160,841)^(-1)) %7 = 205 Odwrotność modulo n? Mod(8765392,2987634211432123123)^(-1) %8 = Mod(1969214855287116137,2987634211432123123)? 2987634211432123123-1018419356145006986 %9 = 1969214855287116137

Małe twierdzenie Fermata? isprime(1231) %10 = 1? gcd(1231,5871) %11 = 1? Mod(5871^1230, 1231) %12 = Mod(1, 1231)? Mod(5871,1231)^1230 %13 = Mod(1, 1231)? Mod(40547201659, 85115991299)^85115991298 %14 = Mod(1, 85115991299)? Mod(461730729350412, 2461654953439061)^2461654953439060 %15 = Mod(1, 2461654953439061)

? a=mod(1,11) %16 = Mod(1, 11)? b=mod(2,12) %17 = Mod(2, 12)? c=mod(3,13) %18 = Mod(3, 13)? d=chinese(a,b) %19 = Mod(122, 132)? chinese(c,d) %20 = Mod(1706, 1716) Chińskie twierdzenie o resztach

? eulerphi(841) %21 = 812? factorint(841) %22 = [29 2]? eulerphi(1231) %23 = 1230? isprime(1231) %24 = 1? eulerphi(1000) %25 = 400? eulerphi(1200) %26 = 320 Funkcja Eulera

Potęgowanie modulo n? lift(mod(7,1234)^698) %27 = 287? Mod(461730729350412,2461654953439061)^2461654953439060 %28 = Mod(1, 2461654953439061) Liczby pierwsze? primes(10) %31 = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29]? prime(1000) %32 = 7919? nextprime(10^30) %34 = 1000000000000000000000000000057? nextprime(random(10^30)) %35 = 425170039833680733833237536681? isprime(%35) %36 = 1

Symbol Jacobiego? kronecker(91,167) %37 = -1? kronecker(7,167) %38 = 1? for(a=1,167,if(mod(a,167)^2==7,print1(a, " "))) 72 95? kronecker(13,167) %39 = -1? kronecker(6,7) %40 = -1? kronecker(11,13) %41 = -1? kronecker(1298761665416551551,978698532176519876166511871) %42 = 1

Logarytm dyskretny? znprimroot(19) %43 = Mod(2, 19)? znorder(mod(2,19)) %44 = 18? znlog(13,mod(2,19)) %45 = 5? znlog(15,mod(2,19)) %46 = 11? znprimroot(966099377) %47 = Mod(3, 966099377)? znlog(124332,mod(3, 966099377) %48 = 120589994? Mod(3, 966099377)^120589994 %49 = Mod(124332, 966099377)

? p=1123;q=1237;n=p*q %50 = 1389151? phin=eulerphi(n) %51 = 1386792? e=834781 %52 = 834781? gcd(e,phin) %53 = 1? d=lift(mod(e,phin)^(-1)) %54 = 1087477? m=983415 %55 = 983415? c=lift(mod(m,n)^e) %56 = 190498? lift(mod(c,n)^d) RSA

%57 = 983415? p=nextprime(random(10^25)) %60 = 6394410543977819029567513? q=nextprime(random(10^24)) %61 = 574229193973116022705411? n=p*q %62 = 3671857212601577387349834975533584930459534912843? phin=(p-1)*(q-1) %63 = 3671857212601577387349828006893846979524482639920? e=random(10^10) %64 = 6534579775? while(gcd(e,phin)!=1,e=e+1)? e %65 = 6534579779? d=lift(mod(e,phin)^(-1)) %66 = 1069086500747478961348196600845385395334981162219

? m=random(10^30) %67 = 446763233106745131823069978264? c=lift(mod(m,n)^e) %68 = 3660713787402446328285407380637449653485548656400? lift(mod(c,n)^d) %69 = 446763233106745131823069978264