Systemy resztowe
Transkrypt
Systemy resztowe
Systemy resztowe Kongruencje Liczby kongruentne (przystaj ce) modulo w ∈ (w – moduł przystawania) ∀(N,M ∈ ): N ≡ M (mod w) ⇔ ∃ k∈ : N − M = kw ∨ M − N = kw Kongruencja – relacja równowa no ci: • zwrotna (reflexive): N ≡ N (mod w), • symetryczna (symmetric): N ≡ M (mod w) ⇔ M ≡ N (mod w), • przechodnia (transitive): N ≡ M (mod w) & M ≡ P (mod w) ⇒ N ≡ P (mod w). LEMAT: Kongruencja jest zachowawcza (oboj tna, indifferent) wobec ka dego z działa : dodawania, odejmowania, mno enia (♦) N ≡ M (mod w) ∧ Q ≡ P (mod w) ⇒ N ♦Q ≡ M ♦P (mod w) . DOWÓD: Je li N = M + aw oraz Q = P + bw, to N ± Q = ( M ± P) + ( a± b)w oraz N Q = M P+ (Μ b+ Pa+abw) w Iloraz całkowity X div w (w ∈ ∀X∈ : X − X mod w = w ⋅ X div w © Janusz Biernat, AK1-5-09-Systemy resztowe.doc, 23 wrze nia 2009 RNS–1 Systemy resztowe Klasy kongruencji Klasy kongruencji (równowa no ci wzgl dem relacji przystawania) w:r= { Z ∈ : Z ≡ r (mod w) ; −w /2 ≤ r < w /2}, w:0∪ w:1… ∪ w:r–1 r – reszta z dzielenia (residue) liczby całkowitej (naturalnej) przez moduł w najmniej odległa od zera (najmniejsza bezwzgl dnie) W zbiorze liczb naturalnych jest r ≥ 0 i mamy: w:r⊂ w:r ∨ w:r⊂ • 7:5 ={5, 12, 19, 26, …} ⊂ 7:–2 ={…, –9, –2, 5, 12, 19, 26, …} • 7:1 ={1, 8, 15, 22, …} ⊂ 7:1 ={…, –13, –6, 1, 8, 15, 22, …} DEFINICJE Podzielnik p∈ w:r–w liczby Q ∈ p|Q ⇔ Q mod p = 0, p∈ Odwrotno (multyplikatywna) x–1 mod w liczby x modulo w a = x–1 mod w ⇔ a x mod w= 1 ! (je li x i w maj wspólny podzielnik p ≠ 1, to z⋅x mod w =1 nie ma rozwi zania) © Janusz Biernat, AK1-5-09-Systemy resztowe.doc, 23 wrze nia 2009 RNS–2 Systemy resztowe Algorytm Euklidesa Najwi kszy wspólny (po)dzielnik NWD (greatest common divisor, GCD) NWD (X, Y ) = a∈ ⇔ (a|X ∧a|Y) ∧ ¬∃b∈ : (b>a)∧(b|X ∧b|Y) TWIERDZENIE: Dla dowolnych liczb naturalnych n i m, je li m < n oraz p = NWD (m, n), to: 1. liczba p jest te najwi kszym wspólnym dzielnikiem m oraz n mod m. 2. istniej takie liczby całkowite u oraz v, e p = u n + v m (najwi kszy wspólny dzielnik mo na przedstawi jako kombinacj liniow liczb m oraz n). DOWÓD: 1. Je li p = NWD (m, n), to m = k m p oraz n = k n p , to n − m = ( k n − k m ) p , wi c m < n ⇒ p = NWD (m, n )= NWD (m, n mod m) 2. Je li p = NWD (n, m ), to m = k m p, n = k n p oraz NWD (k n , k m ) = 1. Mamy zatem v m = v k m p, u n = u k n p i v k m+u k n = 1. Poniewa NWD (k n , k m ) = 1, wi c ka da liczba u k n dla u = 1 , 2 , … , k m − 1 nale y do innej klasy kongruencji modulo k m . Istnieje wi c takie u, e u k n = s k m +1. Równo jest spełniona gdy v = − s . © Janusz Biernat, AK1-5-09-Systemy resztowe.doc, 23 wrze nia 2009 RNS–3 Systemy resztowe Wła ciwo ci reszt Liczby wzgl dnie pierwsze (relatively prime): NWD (X, Y ) = 1. LEMAT: Je eli reszty z dzielenia liczby przez moduły wzgl dnie pierwsze s sobie równe, to s one równe reszcie z dzielenia przez iloczyn tych modułów ( w1 , w2 ) = 1 & X mod w1 = X mod w2 = q ⇒ X mod( w1 w2 ) = q . DOWÓD: Je li X mod w1 = q i X mod w2 = q, to (X – q ) mod w1 = 0 i (X – q ) mod w2 = 0 . Zatem X – q = k1 w1 i X – q = k2 w2 , wi c X – q = k w1 w2 oraz X mod w1w2 = q LEMAT: Kongruencje mo na dzieli obustronnie przez wspólny czynnik: (a X ) mod (aw) = a (X mod w) DOWÓD: ( a X ) mod ( a w ) = a X − a w a X / a w = a ( X − w X / w ) = a ( X mod w ) © Janusz Biernat, AK1-5-09-Systemy resztowe.doc, 23 wrze nia 2009 RNS–4 Systemy resztowe Sito Eratostenesa Je li z ci gu kolejnych liczb naturalnych usuniemy → podzielne przez 2 (parzyste), nast pnie → podzielne przez 3 (co trzeci ), nast pnie → podzielne przez 5 (co pi t spo ród wszystkich) etc., → to w ci gu pozostan tylko liczby pierwsze. Je li a|N oraz a > N/a, to w ci gu N kolejnych liczb naturalnych nie ma ju liczb podzielnych przez a (zostały wcze niej wykre lone) Wszystkie liczby pierwsze (oprócz „2”) s nieparzyste Algorytm: 1. Utwórz ci g kolejnych liczb nieparzystych <N 2. Znajd w ci gu pierwsz liczb A ró n od 1 (jest na pozycji A0=(A+1)/2) 3. W miejsce ka dej liczby ci gu umieszczonej na pozycji A0+kA wpisz 0 4. Je eli A2< N, powró do 2, w przeciwnym razie zako cz Najmniejsza wspólna wielokrotno NWW(least common multiply, LCM) NWW(X1, X2,…, Xm) = W∈ ⇔ ∀i: Xi |W ∧ ¬∃Z∈ : (Z < W)∧ ∀i: Xi |Z © Janusz Biernat, AK1-5-09-Systemy resztowe.doc, 23 wrze nia 2009 RNS–5 Systemy resztowe Podzielno liczb (1) k −1 k −1 i i ∑ xi β mod w = ∑ ( xi mod w)( β mod w) mod w , i =0 i =0 ale β mod( β ± 1) = m1 ⇒ β i mod( β ± 1) = (m1) i , wi c, poniewa 0 ≤ xi ≤ β –1, mamy k −1 k −1 i ∑ xi β mod ( β − 1) = ∑ xi mod ( β − 1) i =0 i =0 k −1 k −1 i i ∑ xi β mod ( β + 1) = ∑ (−1) xi mod ( β + 1) i =0 i =0 ⇒ reguły podzielno ci przez 9 i 11 w systemie dziesi tnym 785 mod 9 = (7+8+5) mod 9 = 2 , 785 mod 11 = (7–8+5) mod 11 = 4 Je li β = a k ±1, to β mod a = ±1 oraz β k mod a = (±1) k ⇒ reguły podzielno ci przez a w systemie o bazie β = a k ±1 785 mod 3 = (7+8+5) mod 3 = 20 mod 3 = 2 © Janusz Biernat, AK1-5-09-Systemy resztowe.doc, 23 wrze nia 2009 RNS–6 Systemy resztowe Podzielno liczb (2) n−1 ∑ xi β i =0 i n / k −1 k −1 = ∑ (∑ xik + s β i =0 s =0 s k i ) (β ) = n / k −1 ∑ Xi β k i, i =0 k −1 gdzie X i = ∑ xik + l β s s warto ciami cyfr po konwersji (β →β k). Ale jest s =0 β k mod( β k ± 1) = m1 ⇒ β kj mod( β k ± 1) = (m1) j , zatem: n / k −1 n −1 i k k ∑ xi β mod ( β − 1) = ∑ X i mod ( β − 1) i =0 i =0 n / k −1 n −1 i k i k ∑ xi β mod ( β + 1) = ∑ (−1) X i mod ( β + 1) i =0 i =0 • 453310 mod 10110 = 453310 mod (102+1)10 = (33−45) mod (102+1)10 = −1210 • 53316 mod 0FF16 = 53316 mod (102−1)16 = (33+5)16 mod (102−1)16 = 3816 • 110111011102 mod 778 = 23568 mod (102−1)8 = (23+56)8 mod (102−1)8 = 28 © Janusz Biernat, AK1-5-09-Systemy resztowe.doc, 23 wrze nia 2009 RNS–7 Systemy resztowe Okresowo reszt a mod w = ±1 ⇒ a i mod w = (±1) i okres kongruencji P(β,w)=k ⇔ β k ≡ 1 mod w & ∀s < k : β s mod w ≠ 1 półokres kongruencji HP(β,w)=k ⇔ β k ≡ −1 mod w & ∀s < k : β s mod w ≠ −1 reszty pot g baz β i wzgl dem modułów β k ± 1 powtarzaj si okresowo β k mod( β k ± 1) = m1 ⇒ β kj mod( β k ± 1) = (m1) j ⇒ β kj + s mod( β k ± 1) = (m1) j β s mod( β k ± 1) reszty pot g baz β i wzgl dem modułów ( β 2 ± β + 1) powtarzaj si okresowo: β mod( β 2 ± β + 1) = β β 2 mod( β 2 ± β + 1) = m β − 1 β 3 mod( β 2 ± β + 1) = [ β (m β − 1)] mod( β 2 ± β + 1) = ±1 © Janusz Biernat, AK1-5-09-Systemy resztowe.doc, 23 wrze nia 2009 RNS–8 Systemy resztowe Małe twierdzenie Fermata TWIERDZENIE Niech p b dzie liczb pierwsz . Je li p nie jest podzielnikiem liczby a, to wtedy a p–1 ≡ 1 (mod p) za dla dowolnego a zachodzi a p ≡ a (mod p) . DOWÓD. Skoro p nie dzieli a, to ∀1 ≤ i ≠ j ≤ p – 1: i⋅a ≠ j⋅a mod p, wi c ka da liczba ci gu 1⋅a, 2⋅a, 3⋅a, …, (p – 1)⋅a nale y do innej klasy resztowej p:r, r = 1, 2, ..., p – 1. A zatem [(1⋅a)(2⋅a)(3⋅a)…((p –1)⋅a)] mod p = (p –1)! mod p, czyli a p–1 (p–1)! ≡ (p –1)!(mod p) Poniewa NWD(p, a) = 1, wi c NWD(p, (a p–1 – 1 ) ⋅(p –1)!) = p, (bowiem (p –1)! nie dzieli si przez p). St d wynika, e a p–1 ≡ 1 (mod p) i poniewa p nie dzieli a, wi c a⋅a p–1 ≡ a (mod p) , a zatem a p ≡ a (mod p) Je li NWD(p, a) = p, to ostatnia zale no © Janusz Biernat, AK1-5-09-Systemy resztowe.doc, 23 wrze nia 2009 jest trywialna (a mod p = 0) RNS–9 Systemy resztowe Funkcja Eulera ϕ (N) … co druga naturalna jest podzielna przez 2, co trzecia z pozostałych dzieli si przez 3, co pi ta z niepodzielnych przez 2 lub 3 dzieli si przez 5, etc. TWIERDZENIE Je li podzielnikami liczby N s p1, p2, …, pm, czyli N = p1e p2e ... pme , pi ∈ , to liczb naturalnych mniejszych od N i wzgl dnie pierwszych z liczb N jest 1 2 m i =m ϕ ( N ) = ∏ ( pi − 1) pie −1 , pi ∈ i i =1 DOWÓD: Je li pi jest podzielnikiem N, to w zbiorze {1, 2, …, N} jest N– N(pi)–1 liczb niepodzielnych przez pi. [N– N(pi)–1]– [N– N(pi)–1] (pj)–1= N (1– (pi)–1)(1– (pj)–1) spo ród nich nie jest podzielnych przez pj. (co pj-ta spo ród N i spo ród |pi) Je li wi c pi i=1, 2, ..., m s liczbami pierwszymi, to w zbiorze {1, 2 , … , N} jest p1e p2e ... pme (1 − p1−1 )(1 − p2−1 )...(1 − pm−1 ) = p1e −1 p2e −1... pme −1 ( p1 − 1)( p2 − 1)...( pm − 1) liczb niepodzielnych przez adn z nich. 1 2 m 1 2 m WNIOSEK: Je li NWD(N,M)=1, to ϕ (MN) = ϕ (M) ϕ (N) . © Janusz Biernat, AK1-5-09-Systemy resztowe.doc, 23 wrze nia 2009 RNS–10 Systemy resztowe Twierdzenie Eulera TWIERDZENIE Je li ϕ (N) jest liczb liczb mniejszych od N i wzgl dnie pierwszych z N, to aϕ ( N ) mod N = 1 DOWÓD. Je li N = p twierdzenie jest prawdziwe (ϕ (p) = p –1) (małe tw. Fermata). Załó my, e twierdzenie jest prawdziwe dla N = pm, czyli a p ( p −1) ≡ 1mod p m . St d wynika, e a p ( p −1) = 1 + kp m oraz a p ( p −1) = (1 + kp m ) p = 1 + Kpp m , zatem a p ( p −1) ≡ 1 mod p m +1 . Twierdzenie jest wi c prawdziwe dla N = pα, czyli m −1 m −1 m m m aϕ ( p ) mod p m = 1 a b Je li wi c N = p a q b ... t h , to aϕ ( p q a b h a b h b a ...t h ) a mod p a = (aϕ ( p ) )ϕ ( q b ...t h ) mod p a = 1 oraz h aϕ ( p q ...t ) mod q b = (aϕ ( q ) )ϕ ( p ...t ) mod q b = 1 itd.. St d wynika teza twierdzenia: aϕ ( p q ...w ) mod ( p a q b ...wh ) = 1 , czyli aϕ ( N ) mod N = 1 WNIOSEK: aϕ ( N ) −1 ≡ a −1 (mod N ) © Janusz Biernat, AK1-5-09-Systemy resztowe.doc, 23 wrze nia 2009 RNS–11 Systemy resztowe Chi skie twierdzenie o resztach – system RNS m Niech W = {w1 ,w2 ,...,wm : ∀i ≠ j: NWD(wi ,wj ) = 1} za W = ∏ wi Reprezentacja i =1 X = 〈 x1 , x2 , … , xm : xi = X mod wi , wi ∈ W〉 ka dej liczby 0 ≤ X < W jest unikatowa. DOWÓD. Załó my, e ∃0 ≤ X , Y < W, Y ≠ X: ∀1≤ i ≤ m : Y ≡ X mod wi . Zatem ∀1≤ i ≤ m : wi | (Y − X), a poniewa W = NWW(w1,w2,…,wm), to W | (Y − X). Skoro jednak Y ≠ X, to Y – X ≥ W, co przeczy zało eniu, wi c Y = X System resztowy RNS (w1,w2,…,wm) (Residue Number System) Reprezentacja X = 〈 x1 mod w1 , x2 mod w2 , … , xm mod wm : wi ∈ W〉 w bazie W • xi∈ {0,1,..., wi−1} dla kongruencji w zbiorze , • xi∈ {– wi/2, …, −1,0,1,...,wi/2−1} dla kongruencji w zbiorze WNIOSEK: W systemie RNS (w1,w2,…,wm), ∀ ki∈ , 1≤ i ≤ m : |〈 x1, x2, …,xm〉|≡ |〈 x1±k1w1, x2±k2w2, … , xm±kmwm〉|mod wi © Janusz Biernat, AK1-5-09-Systemy resztowe.doc, 23 wrze nia 2009 RNS–12 Systemy resztowe Chi skie twierdzenie o resztach – konwersja odwrotna CHI SKIE TWIERDZENIE O RESZTACH (CRT) (SUN-TZU, III W., QIN JIUSHAO, 1247) Niech W = {w1 , w2 ,..., wn : ∀i ≠ j: NWD(wi , wj ) = 1}, W = w1 w2 ...wn . Reprezentacja 〈 x1 , x2 , … , xn : xi = X mod wi , wi ∈ W〉 ka dej liczby 0 ≤ X < W jest unikatowa oraz n X = | X | = ∑ wˆ s ( wˆ s−1 mod ws ) xs mod W s =1 gdzie wˆ s = Wws−1 , za wˆ s−1 mod ws – odwrotno ŵs wzgl dem modułu ws . DOWÓD (nieformalny szkic dowodu konwersji odwrotnej). Ze wzgl du na zachowawczo kongruencji wobec dodawania mamy 〈 x1 , x2 , … , xn 〉 = x1 ⋅〈 1,0,…,0,0〉 + x2 ⋅〈 0,1,…,0,0〉 + …+ xn ⋅〈 0,0,…,0,1〉 . W systemie RNS (w1,w2,…,wm) liczba ps o reprezentacji 〈 0, … , 0,1s, 0, … , 0〉 jest podzielna przez ka de wi oprócz ws, jest wi c ps = k ⋅ wˆ s (liczby ps istniej , bo ró nych reprezentacji jest dokładnie W). Poniewa jej reszta wzgl dem ws jest równa 1, wi c k = wˆ s−1 mod ws jest odwrotno ci ŵs oraz ps = wˆ s ( wˆ s−1 mod ws ) . 〈 x1 , x2 , … , xn 〉 jest wi c reprezentacj liczby (x1 p1 + x2 p2 + … + xn pn ) mod W. © Janusz Biernat, AK1-5-09-Systemy resztowe.doc, 23 wrze nia 2009 RNS–13 Systemy resztowe Wybór systemu resztowego Dobór modułów – argumenty • zakres reprezentowanych liczb – iloczyn wszystkich modułów • łatwo i szybko wykonania działa modulo • łatwo konwersji i konwersji odwrotnej k k k moduły β , β −1, β +1 dobrze spełniaj wymagania k k k k k k ( β , β −1) = 1, (β , β +1) = 1 oraz (β −1, β +1) = 1 (gdy β parzyste) w systemie dwójkowym • je li (k,m)=1, to (2k–1,2m–1)=1 (liczby Mersenne’a) • przy pieszenie dodawania ~ proporcjonalne do log z liczby modułów • im wi cej modułów tym trudniejsza konwersja odwrotna opcje k k k W = {2 +1, 2 , 2 −1} k k k k W = {2 +1, 2 , 2 −1, 2 −3} k k i s W = {2 , 2 −1, 2 −1, …, 2 −1, s < . . . < i < k, (s, …, i, k) = 1} © Janusz Biernat, AK1-5-09-Systemy resztowe.doc, 23 wrze nia 2009 RNS–14 Systemy resztowe k k k Konwersja z systemu stałobazowego na system RNS(β +1, β , β −1) n −1 A β → X RNS : xi = {∑ (a j mod wi )( β j mod wi )} mod wi j =0 reguły podzielno ci ⇒ reguły konwersji z systemu naturalnego na RNS, k k k dla modułów o postaci β , β −1 i β +1. n−1 s −1 k −1 s −1 | A | = ∑ ai β = ∑ (∑ aik + l β ) β = ∑ Ai β k i , i i =0 l ki i =0 l =0 i =0 k −1 gdzie Ai = ∑ a ik + l β l s warto ciami cyfr liczby A w systemie o bazie β . k l =0 Poniewa 0 ≤ Ai ≤ β k −1, zatem A mod β s −1 k = A0 mod β k oraz s −1 A mod( β − 1) = {∑ Ai β } mod( β − 1) = {∑ Ai } mod( β k − 1) k ki k i =0 s −1 i =0 s −1 A mod( β + 1) = {∑ A i β } mod( β + 1) = {∑ (−1) i A i } mod( β k + 1) k ki i =0 © Janusz Biernat, AK1-5-09-Systemy resztowe.doc, 23 wrze nia 2009 k i =0 RNS–15 Systemy resztowe Konwersja z systemu resztowego na system stałobazowy (CRT) pi = 〈 0,…,1i,…,0〉 – jedynki resztowe (wagi), pi mod wi = 1 i pi mod w j ≠i = 0 Warto ci liczby X<W=Πwi o reprezentacji 〈 x1 , x2 ,..., xn 〉 jest zatem (CRT) X = ( x1 p1 + x2 p2 + ... + xn pn ) mod W , W celu wyznaczenia i-tej jedynki pi wystarczy wykona wi –1 oblicze . Mamy | 〈 0,...,1i ,...,0〉 | = k wˆ i = k∏ ws = k wi−1W , 1 ≤ k = wˆ i−1 mod wi ≤ wi − 1, i≠s Obliczanie jedynek resztowych pi = wˆ i ( wˆ i−1 mod wi ) : • rozwi zanie równania ( wˆ i ( wˆ i−1 mod wi )) mod wi = 1, czyli ( wˆ i ( wˆ i−1 mod wi )) mod wi = [( wˆ i mod wi )( wˆ i−1 mod wi )] mod wi (... je li a x mod w = −1, to a 2 x mod w = x – 1 mod w ) • odwrócony algorytm Euklidesa – zapisujemy 1 jako sum wielokrotno ci 1 = x ⋅ ( x −1 mod n) − k ⋅ n = x ⋅ ( x −1 mod n) − k ⋅ [ x ⋅ n div x + n mod x] = ... • twierdzenie Eulera: aϕ ( N ) −1 ≡ a −1 (mod N ) © Janusz Biernat, AK1-5-09-Systemy resztowe.doc, 23 wrze nia 2009 RNS–16 Systemy resztowe Konwersja z systemu resztowego na system stałobazowy System resztowy RNS(a + 1, a, a – 1) (a=2p – musi by parzyste) Mamy W = (a + 1)⋅a⋅ ( a – 1). Obliczymy liczby ŵ j wˆ 3 mod w3 = 2 ⋅1 = 2 wˆ 3 = w1 w2 = (a + 1)a , wˆ 2 = w1 w3 = (a + 1)(a − 1) , wˆ 2 mod w2 = 1 ⋅ (−1) = −1 wˆ 1 = w2 w3 = a( a − 1) , wˆ 1 mod w1 = ( −1) ⋅ (−2) = 2 oraz ich odwrotno ci multyplikatywne ( wˆ i−1 = wˆ i−1 mod wi ) wˆ 3−1 wˆ 3 mod w3 = 2 ⋅ wˆ 3−1 mod(a − 1) = 1 ⇒ wˆ 3−1 mod(a − 1) = a / 2 , wˆ 2−1 wˆ 2 mod w2 = −1 ⋅ wˆ 2−1 mod a = 1 ⇒ wˆ 2−1 mod a = −1 wˆ 1−1 wˆ 1 mod w1 = 2 ⋅ wˆ 1−1 mod(a + 1) = 1 ⇒ wˆ 1−1 mod(a + 1) = a / 2 + 1 St d z3 = (a + 1) ⋅ a ⋅ (a / 2) , z 2 = −(a + 1) ⋅ (a − 1) , z1 = a ⋅ (a − 1) ⋅ (a / 2 + 1) , zatem warto ci liczby X o reprezentacji 〈r3, r2, r1〉 jest X = (r3 z3+ r2 z2+ r1 z1) mod (a + 1)⋅a⋅ ( a – 1). © Janusz Biernat, AK1-5-09-Systemy resztowe.doc, 23 wrze nia 2009 RNS–17 Systemy resztowe Konwersja z systemu resztowego na system stałobazowy – przykłady (1) a = 2k System resztowy (2k+1, 2k, 2k–1). Mamy W = (2k+ 1)⋅2k⋅ ( 2k– 1). Obliczymy liczby ŵ j wˆ 3 = w1 w2 = ( 2 k + 1)2 k , wˆ 3 mod w3 = 2 ⋅1 = 2 wˆ 2 = w1 w3 = ( 2 k + 1)(2 k − 1) , wˆ 2 mod w2 = 1 ⋅ (−1) = −1 wˆ 1 = w2 w3 = 2 k (2 k − 1) , wˆ 1 mod w1 = ( −1) ⋅ (−2) = 2 oraz ich odwrotno ci multyplikatywne wˆ 3−1 wˆ 3 mod w3 = 2 ⋅ wˆ 3−1 mod(2 k − 1) = 1 ⇒ wˆ 3−1 mod(2 k − 1) = 2 k −1 , wˆ 2−1 wˆ 2 mod w2 = −1 ⋅ wˆ 2−1 mod 2 k = 1 ⇒ wˆ 2−1 mod 2 k = −1 wˆ 1−1 wˆ 1 mod w1 = 2 ⋅ wˆ 1−1 mod(2 k + 1) = 1 ⇒ wˆ 1−1 mod(2 k + 1) = 2 k −1 + 1 St d z3 = (2 k + 1) ⋅ 2 k ⋅ 2 k −1 = a , z 2 = −(2 k + 1) ⋅ (2 k − 1) , z1 = 2 k ⋅ (2 k − 1) ⋅ (2 k −1 + 1) , zatem warto ci liczby X o reprezentacji 〈r3, r2, r1〉 jest X = (r3 z3+ r2 z2+ r1 z1) mod (22k–1)⋅2k. © Janusz Biernat, AK1-5-09-Systemy resztowe.doc, 23 wrze nia 2009 RNS–18 Systemy resztowe Konwersja z systemu resztowego na system stałobazowy – przykłady (2) W systemie resztowym (7,3,2) mamy X(7,3,2) = 〈 3,2,1〉 . Wyznaczmy X10. Mamy W = 2⋅3⋅7 = 42. Obliczymy liczby ŵ j wˆ 3 = W / w3 = 6 , wˆ 3 mod w3 = −1 ≡ 6 mod 7 wˆ 2 = W / w2 = 14 , wˆ 2 mod w2 = −1 ≡ 2 mod 3 wˆ 1 = W / w1 = 21, wˆ 1 mod w1 = 1 oraz ich odwrotno ci multyplikatywne wˆ 3−1 wˆ 3 mod w3 = −1 ⋅ wˆ 3−1 mod w3 = 1 ⇒ wˆ 3−1 mod w3 = −1, wˆ 2−1 wˆ 2 mod w2 = −1 ⋅ wˆ 2−1 mod w2 = 1 ⇒ wˆ 2−1 mod w2 = −1 wˆ 1−1 wˆ 1 mod w1 = ±1 ⋅ wˆ 1−1 mod w1 = 1 ⇒ wˆ 1−1 mod w1 = ±1 St d z3 = – 6 ≡ 36 mod 42, z2 = – 14 ≡ 28 mod 42, z3 = – 21 ≡ 21 mod 42, zatem X = ((–1)⋅3⋅6 +(–1)⋅2⋅14 + 1⋅1⋅21) mod 42 = –25 mod 42 = 17. Rzeczywi cie X(7,3,2) = 〈 17 mod 7, 17 mod 3, 17 mod 2〉 = 〈 3,2,1〉 . © Janusz Biernat, AK1-5-09-Systemy resztowe.doc, 23 wrze nia 2009 RNS–19 Systemy resztowe Obliczanie odwrotno ci multyplikatywnych – (1) Odwrócony algorytm Euklidesa 1 = x ⋅ ( x −1 mod n) − k ⋅ n = x ⋅ ( x −1 mod n) − k ⋅ [ x ⋅ n div x + n mod x] = ... = ... = p ⋅ ( A ⋅ x −1 mod n − B ⋅ n) + (C ⋅ x −1 mod n − D ⋅ n) = p ⋅ 0 + 1 Jedynki w systemie RNS (7,3,2) – mamy W = 2⋅3⋅7 = 42. Obliczymy liczby ŵ j wˆ 3 = W / w3 = 6 , wˆ 3 mod w3 = −1 ≡ 6 mod 7 wˆ 2 = W / w2 = 14 , wˆ 2 mod w2 = −1 ≡ 2 mod 3 wˆ 1 = W / w1 = 21, wˆ 1 mod w1 = 1 oraz ich odwrotno ci multyplikatywne ( wˆ i−1 = wˆ i−1 mod wi ) 1 = wˆ 3 ⋅ wˆ 3−1 − t ⋅ w3 = 6 wˆ 3−1 − 7t = 6 wˆ 3−1 − (1 ⋅ 6 + 1) ⋅ t = 6 ⋅ ( wˆ 3−1 − t ) − t , zatem wˆ 3−1 − t = 0 oraz t = −1, czyli wˆ 3−1 = −1 1 = wˆ 2 ⋅ wˆ 2−1 − t ⋅ w2 = 14 wˆ 2−1 − 3t = (3 ⋅ 5 − 1) ⋅ wˆ 2−1 − 3t = 3 ⋅ (5 ⋅ wˆ 2−1 − t ) − wˆ 2−1 , zatem wˆ 2−1 = −1 oraz t = −5 1 = wˆ1 ⋅ wˆ1−1 − t ⋅ w1 = 21wˆ1−1 − 2t = (10 ⋅ 2 + 1) ⋅ wˆ1−1 − 2t = 2 ⋅ (10 ⋅ wˆ1−1 − t ) + wˆ1−1 , zatem wˆ1−1 = 1 oraz t = 10 © Janusz Biernat, AK1-5-09-Systemy resztowe.doc, 23 wrze nia 2009 RNS–20 Systemy resztowe Obliczanie odwrotno ci multyplikatywnych – (2) Jedynki w systemie RNS (7,3,2) – twierdzenie Eulera 1 = ( wˆ i ) wi −1 mod wi = ( wˆ i−1 mod wi ) ⋅ ( wˆ i ) wi mod wi Mamy W = 2⋅3⋅7 = 42. Obliczymy liczby ŵ j wˆ 3 = W / w3 = 6 , wˆ 3 mod w3 = −1 ≡ 6 mod 7 wˆ 2 = W / w2 = 14 , wˆ 2 mod w2 = −1 ≡ 2 mod 3 wˆ 1 = W / w1 = 21, wˆ 1 mod w1 = 1 oraz ich odwrotno ci multyplikatywne ( wˆ i−1 = wˆ i−1 mod wi ) 1 = ( wˆ 3 )7−1 mod 7 ≡ (6−1 mod 7)(67 mod 7) = −6−1 mod 7 , zatem wˆ 3−1 = 6−1 mod 7 = −1 1 = ( wˆ 2 )3−1 mod 3 ≡ (14−1 mod 3)(143 mod 3) = −14−1 mod 3 , zatem wˆ 2−1 = 14−1 mod 3 = −1 1 = ( wˆ1 ) 2−1 mod 2 ≡ (21−1 mod 2)(212 mod 2) = 21−1 mod 2 , zatem wˆ1−1 = 21−1 mod 2 = 1 St d z3 = – 6 ≡ 36 mod 42, z2 = – 14 ≡ 28 mod 42, z3 = – 21 ≡ 21 mod 42, © Janusz Biernat, AK1-5-09-Systemy resztowe.doc, 23 wrze nia 2009 RNS–21 Systemy resztowe Wyznaczanie reprezentacji resztowych 1. Z twierdzenia Fermata lub Eulera – reszty pot g – redukcja pot gi mod ϕ (p) a x mod N = ( a ϕ (p) ) [ x div ϕ (p) ] a x mod ϕ (p) mod N = a x mod ϕ (p) mod N Ponadto xi 2i x0 x1 2 22 ∑ mod p = [(a mod p) (a mod p ) (a mod p ) x2 ...] mod p a mod p = a X 2. Poniewa dla liczby naturalnej a >3 a mod a±1=−(±1) ⇒ ak mod a±1=[−(±1)]k wi c dla ka dej liczby naturalnej danej w reprezentacji pozycyjnej o podstawie β reszty mod β k±1 mo na obliczy jako sumy lub ró nice liczb k-cyfrowych, utworzonych przez cyfry na pozycjach jk, jk+1, …, jk+k–1 (j = 0,1,2,…) n / k k −1 n −1 i k i kj k ∑ xi β mod( β ± 1) = ∑ (∑ xkj + i β ) β mod( β ± 1) = i =0 j =0 i =0 n / k k −1 i j = ∑ (∑ xkj + i β )( ±1) mod( β k ± 1) j =0 i =0 © Janusz Biernat, AK1-5-09-Systemy resztowe.doc, 23 wrze nia 2009 RNS–22 Systemy resztowe* System kwadratowo-resztowy QRNS* – arytmetyka liczb zespolonych (obliczanie transformaty Fouriera). reprezentacja resztowa jednostki urojonej i = − 1 . q 2 mod w = −1, ⇒ q mod w = − 1 . problem: znalezienie zbioru modułów, dla których jest rozwi zanie równania q 2 mod w = −1. DEFINICJA Liczb r, pierwsz wzgl dem w ∈ N i tak e równanie x 2 mod w = r ma rozwi zanie, nazywa si reszt kwadratow (quadratic residue) wzgl dem w. Je eli natomiast równanie x 2 mod w = r nie ma rozwi zania, to r nazywa si nie-reszt kwadratow (quadratic nonresidue) wzgl dem w. © Janusz Biernat, AK1-5-09-Systemy resztowe.doc, 23 wrze nia 2009 RNS–1* Systemy resztowe* Reszty kwadratowe* Poniewa jest dokładnie (w − 1) reszt niezerowych modulo w, a ka de równanie x 2 mod w = r ma albo dwa rozwi zania nieprzystaj ce x oraz − x (lub w − x , bo x 2 mod w = ( w − x) 2 mod w ), albo nie ma rozwi zania, wi c przy nieparzystym w istnieje dokładnie (w − 1)/2 reszt oraz (w − 1)/2 nie-reszt kwadratowych. Reszty kwadratowe wzgl dem w = 13 wyznaczymy rozwi zuj c równanie x2 mod 13 = r metod kolejnych prób dla x = 1, 2,..., 6 (.x2 ≡ (w–x)2 mod w) Znajdujemy odpowiednio: 12 ≡ 1 mod 13, 22 ≡ 4 mod 13, 32 ≡ −4 mod 13, 42 ≡ 3 mod 13, 52 ≡ −1 mod 13, 62 ≡ −3 mod 13. Zatem resztami kwadratowymi wzgl dem 13 s (w arytmetyce uzupełnieniowej): −4, −3, −1, 1, 3, 4. © Janusz Biernat, AK1-5-09-Systemy resztowe.doc, 23 wrze nia 2009 RNS–2* Systemy resztowe* Chi skie twierdzenie o resztach – konwersja odwrotna* Niech W = {w1 , w2 ,..., wn : ∀i ≠ j: (wi , wj ) = 1}, W = w1 w2 ...wn oraz wˆ s = Wws−1 . Je li 0 ≤ | X | < W, to reprezentacja X = 〈x1 , x2 , … , xn : xi = | X | mod wi ,wi ∈ W〉 jest unikatowa, przy tym n X = | X | = ∑ wˆ s ( wˆ s−1 mod ws ) xs mod W s =1 gdzie wˆ s−1 mod ws – odwrotno multyplikatywna ŵs wzgl dem modułu ws . D O W Ó D (formalny). Niech p s = wˆ s−1 mod ws . Poniewa x s = X mod ws oraz W = wˆ s w s , zatem (wˆ (wˆ s −1 s mod ws ) xs )mod W = (wˆ s ps ( X mod ws ) ) mod W = = (wˆ s ps ( X − ws X / ws )) mod W = ( X wˆ s ps ) mod W , i na podstawie zachowawczo ci kongruencji (i) n n n ∑ X wˆ s ps mod W = ( X mod W ) ∑ wˆ s ps mod W = X ∑ wˆ s ps mod W . s =1 s =1 s =1 © Janusz Biernat, AK1-5-09-Systemy resztowe.doc, 23 wrze nia 2009 RNS–3* Systemy resztowe* Aby dowie prawdziwo ci tezy wystarczy wi c wykaza , e n (∑ wˆ s p s ) mod W = 1. s =1 Poniewa z udowodnionego wcze niej lematu wynika, e NWD(x,y) = 1 ∧ a mod y = d ∧ a mod x = d ⇒ a mod xy = d, za W = w1 w2 ...wn −1 wn jest iloczynem liczb wzgl dnie pierwszych, wi c wystarczy wykaza prawdziwo poprzednika implikacji (ii) n n s =1 s =1 ∀wi : (∑ wˆ s ps ) mod wi = 1 ⇒ (∑ wˆ s ps ) mod W = 1. 1 n Ale wˆ s = ∏ wi ⇒ ∀i ≠ s : wi / wˆ s , zatem ws i =1 (iii) n (∑ wˆ s ps ) mod wi = ( wˆ i pi ) mod wi = ( wˆ i ( wˆ i−1 mod wi )) mod wi = 1. s =1 St d wynika prawdziwo nast pnika implikacji (ii), co dowodzi tezy. © Janusz Biernat, AK1-5-09-Systemy resztowe.doc, 23 wrze nia 2009 RNS–4*