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*