Sia k un numero naturale positivo e sia
S = {n ∈ tali che |n| < 2k}
Nell’insieme {0,1}k+1 si può introdurre un’operazione ⊥ ponendo
(ak ak−1 … a0) ⊥ (bk bk−1 … b0) uguale alla (k +1)−pla ottenuta da
(ak ak−1 … a0) 2 + (bk bk−1 … b0) 2 elidendo un eventuale “overflow”
Inoltre nell’insieme {0, 1}k+1 si può introdurre un’operazione ◊ che ha lo stesso procedimento dell’operazione · tra numeri positivi in base 2, utilizzando però ⊥ al posto di +.
Si ponga 0^=1 e 1^=0.
Per ogni (ak ak−1 … a0) appartenente a {0,1}k+1, la (k+1)-pla
(ak , ak−1 , … , a0)^ = (ak^ , ak−1^ , … , a0^ ) ⊥ (0, … ,0, 1)
si chiama complemento a due di (ak , ak−1 , … , a0).
E’ facile dimostrare che valgono le seguenti condizioni:
Si consideri ora la funzione f:S → {0,1}k+1\{(1,0,…,0)}definita ponendo
f(n)=(0, ak−1 , … , a0) se n≥0 e n=(ak−1 … a0)2
f(n)=(f(-n))^ se n<0
Proposizione 2.1 (senza dimostrazione)
La funzione f su definita verifica le seguenti proprietà:
Tenendo conto della Proposizione 2.1, si ha:
Utilizzando il meccanismo appena descritto, si ha:
Proposizione 2.2
Se n e m sono interi relativi tali che |n| e |m| sono minori o uguali di un intero positivo r, allora:
Si enuncerà e si dimostrerà ora un teorema, noto come algoritmo delle divisioni successive.
Si ricordi che la funzione di \{0} in
che associa ad ogni numero intero diverso da 0 il suo valore assoluto, rende
anello euclideo.
L’algoritmo delle divisioni successive verrà enunciato scegliendo come ambiente un qualunque anello euclideo, in modo da poterlo utilizzare non solo in questa lezione, nell’ambiente dei numeri interi, ma anche successivamente nell’anello dei polinomi ad una indeterminata a coefficienti in un opportuno campo.
Teorema 2.3 (algoritmo delle divisioni successive)
Sia A un anello euclideo. Se a e b sono elementi di A\{0}, esiste un massimo comun divisore d di a e b. Inoltre esistono u , v є A tali che d=au+bv.
Dimostrazione
Sia g:A → la funzione che rende A anello euclideo.
Esistono elementi q1 e r1 di A tali che a=bq1+r1 con r1=0 oppure g(r1)<g(b).
Se r1 è diverso da 0, esistono elementi q2 e r2 di A tali che b=r1q2+r2 con r2=0 oppure g(r2)<g(r1).
Si ponga a=r-1 ,b=r0 , e si supponga di aver determinato degli elementi r1, r2 ,…, ri-1 appartenenti a A\{0} tali che g(b)>g(r1)>g(r2)>…>g(ri-1).
Allora esistono elementi qi e ri di A tali che ri-2=ri-1qi+ri con ri=0 oppure g(ri)<g(ri-1).
Sia t il minimo numero naturale tale che rt+1=0 ⇒ rt-1=rtqt+1.
Se t=0, allora a=bq1, sicché b è un massimo comun divisore di a e b, e l’asserto è dimostrato perché b=a∙0+b∙1.
Da adesso in poi si supporrà t ≥1.
Si tenga presente che per ogni con i≥t, i resti ri-2 ,ri-1 , ri sono legati dalle relazioni:
ri-2=ri-1qi+ri e quindi ri=ri-2 - ri-1qi
Si proverà ora che rt è un massimo comun divisore di a e b.
Da rt-1=rtqt+1 segue che rt è un divisore di rt-1 .
Si supponga che per qualche i=1,…,t, si abbia che rt è un divisore di rj per ogni j≥i-1; allora da ri-2=ri-1qi+ri segue che rt è un divisore anche di ri-2.
Dunque rt è un divisore di ri per ogni i=-1, 0,…,t, e quindi è un divisore sia di a che di b.
Sia ora c un qualunque divisore comune di a e b; si proverà che c è un divisore di rt.
Si supponga che per qualche i=1,…,t , si abbia che c è un divisore di rj per ogni j≤i-1; allora da ri=ri-2 – ri-1qi , segue che c è un divisore anche di ri .
Dunque c è un divisore di ri per ogni i=-1, 0,1,…,t, e quindi è un divisore sia di rt .
Si è dunque provato che rt è un massimo comun divisore di a e b
Si determineranno ora degli elementi u e v tali che rt=au+bv.
Ponendo ut=0 e vt=1, si ha rt=utrt-1+vtrt .
Si supponga che per qualche i=1,…,t esistano elementi ui e vi tali che rt=uiri-1+viri ; allora da ri=ri-2 – ri-1qi , segue che rt=uiri-1+viri=uiri-1+vi(ri-2-ri-1qi)=viri-2+(ui-viqi)ri-1 e quindi
ponendo ui-1=vi e vi-1=ui-viqi si ha rt =ui-1 ri-2 + vi-1 ri-1
Al termine di questo procedimento si determinano u0 e v0 tali che rt=u0r-1+v0r0=u0a+v0b.
Teorema 2.4
Siano a e b numeri interi tali che a≥b>0. Allora:
Dimostrazione
Si ponga a=r-1 e b=r0 e sia
r1 > … > ri-2 > ri-1> ri > … > rt=d
la catena dei resti.
Si può supporre che sia t ≥ 1 (sicché, in particolare, a>b).
Si ricordi che per ogni con i≥t, i resti ri-2 ,ri-1 , ri sono legati dalla relazione:
ri=ri-2 – ri-1qi
Dunque per ogni i≥t, si ha ri-2 =ri-1qi + ri ≥ ri-1 + ri > 2ri
In particolare,
a>r0>2r2 >4r4 > … ⇒ a>2ir2i per ogni i≥0
a>r0>r1 >2r3 >4r5 > … ⇒ a>2ir2i+1 per ogni i≥0
Sia j il numero naturale tale che t=2j oppure t=2j+1 .
Allora in entrambi i casi, si ha a>2j rt ≥2j e quindi log2a>j ⇒ 2log2a ≥ 2j+1 ≥t ⇒ t=O(log a).
(ut , vt)=(0,1) e (ui-1 , vi-1)=(vi , ui-viqi);
la coppia (u,v) cercata è la coppia (u0 ,v0) che si ottiene alla fine di questo processo.
Quindi |ut|=0≤rt e |vt|=1≤rt-1 .
Si supponga |uj|≤rj e |vj|≤rj-1 ; allora |uj-1|=|vj|≤rj-1 e |vj-1|=|uj-vjqj|≤ |uj|+|vj|∙|qj| ≤ rj+ rj-1 qj=rj-2 .
Allora per ogni i≤t, |ui|≤|ri| e |vi|≤|ri-1|.
D’altra parte, per ogni i≤t, il calcolo di (ui-1 , vi-1) partendo (ui , vi) consiste solo nell’eseguire ui-viqi ; poiché |ui|≤a, |vi|≤a e |qi|≤a, segue dalla Proposizione 2.2 che tale calcolo ha complessità O((log a)2).
Dunque determinare (u,v) ha complessità O(t ∙ (log a)2) e quindi O((log a)3).
1. Espansione di un numero naturale in base b e complessità computazionale delle operazioni elementari
2. Complessità dell'algoritmo delle divisioni successive
3. Struttura dell'anello degli interi modulo m, funzione di Eulero
4. Equazioni congruenziali lineari e Teorema Cinese del Resto
5. Teorema di Fermat-Eulero e Piccolo teorema di Fermat. Alcune proprietà dei gruppi ciclici finiti
6. Cifrario di Cesare. Cifrario di Vigenere. Metodo di Hill
7. Richiami sui campi finiti. Generalità sulle curve ellittiche
10. RSA. Sistema di di Massey-Omura. Sistema di El Gamal
11. Immersione dei testi in chiaro e sistemi crittografici in una curva ellittica
12. Resti quadratici e simbolo di Legendre
13. Condizioni necessarie e condizioni sufficienti per la primalità; forme di pseudoprimalità
15. Test di Solovay-Strassen e Test di Miller-Rabin
16. Test di primalità basato sulle curve ellittiche e test AKS