Nei corsi di Algebra del primo anno viene, di solito, costruito l’insieme dei numeri interi relativi. In tale insieme vengono inoltre introdotte la relazione d’ordine usuale e le consuete operazioni di somma + e di prodotto ·. Viene inoltre dimostrato il seguente risultato, noto come Algoritmo della divisione euclidea.
Siano n e m numeri interi tali che m sia diverso da 0. Allora esistono e sono univocamente determinati due numeri interi q ed r tali che n=mq+r e 0≤r<|m| .
I numeri q ed r si chiamano rispettivamente quoziente e resto della divisione euclidea di n per m.
Nel seguito, con i simboli  e  si indicheranno rispettivamente l’insieme dei numeri naturali e l’insieme dei numeri naturali positivi.
Osservazione 1.1
Se n  e m  , allora, detto q il quoziente della divisione euclidea di n per m, si ha q≥0.
Dimostrazione
Se n<m, allora q=0;
Sia n≥m ⇒ detto r il resto della divisione euclidea di n per m, si ha r < n ⇒  mq = n – r >0 ⇒ q≥0.
E’ noto a tutti che nel nostro sistema numerico si utilizza come base il numero 10; i processori dei computer, invece, usano usano numeri scritti in base 2. Lo scopo della prima parte della lezione è arrivare ad introdurre il concetto di cambiamento di base.
Lemma 1.2
Siano b,n  . Allora esistono dei numeri naturali d0, …, dt tali che n=dtbt+…+d1b+d0 con 0≤di≤(b-1) ∀ i=0,…t.
Dimostrazione
Segue dall’Algoritmo della Divisione Euclidea che esistono due numeri naturali q1 e d0 tali che n=q1b+d0 con 0≤d0≤(b-1).
Si supponga di avere determinato per qualche j  dei numeri naturali
d0,…, dj-1,qj tali che
n=qjbj+dj-1bj-1+…+d1b+d0 con 0≤di≤(b-1)  ∀ i=0,…, j.
Se qj≤(b-1), basta porre t=j e dj=qj.
Se qj≥b, esistono due numeri naturali qj+1 e dj tali che qj=qj+1b+dj con 0≤dj≤(b-1). Allora
n=qj+1bj+1+djbj+dj-1bj-1+…+d1b+d0.
Iterando questo ragionamento, si dimostra l’esistenza dei numeri naturali d0, …, dt richiesti nell’enunciato.
Teorema 1.3
Sia b un numero naturale tale che b≥2.
Allora ∀ n  esistono e sono univocamente determinati un numero naturale positivo k e dei numeri naturali d0, …, dk-1 tali che
n=dk-1bk-1+…+d1b+d0 con 0≤di≤(b-1)  ∀ i=0,…, k-1 e dk-1≠0.
Dimostrazione
Per il Lemma 1.2 esistono un numero naturale positivo k e dei numeri naturali d0, …, dk-1 tali che n=dk-1bk-1+…+d1b+d0 con 0≤di≤(b-1)  ∀ i=0,…, k-1 e dk-1≠0.
Ne segue che bk-1≤n<bk ⇒ (k – 1) ≤ logbn < k ⇒ k = [logbn] + 1.
Si dimostrerà ora che i numeri k, d0, …, dk-1 sono univocamente determinati.
Si supponga ora che esistano un numero naturale positivo h e dei numeri naturali c0, …, ch-1 tali che
n=ch-1bh-1+…+c1b+c0 con 0≤ci≤(b-1) ∀ i=0,…, h-1 e ch-1≠0.
Da quanto osservato prima segue che h=[logbn]+1=k.
Dunque, si ha dk-1bk-1+…+d1b+d0=ck-1bk-1+…+c1b+c0
Si proverà per induzione su k che di=ci ∀ i=0,…, k-1.
Se k=1, d0=c0.
Sia k>1Â e si supponga l’asserto vero per k-1.
(dk-1bk-2+…+d1) b+d0=n=(ck-1bk-2+…+c1) b+c0 ⇒ d0 e c0 coincidono con il resto della divisione euclidea di n per b, mentre dk-1bk-2+…+d1 e ck-1bk-2+…+c1 coincidono con il quoziente della divisione euclidea di n per b ⇒ d0=c0 , mentre l’ipotesi induttiva garantisce allora che di=ci ∀ i=1,…, k-1.
Definizione 1.4
Sia b un numero naturale tale che b≥ 2.
(1) Sia n un numero naturale positivo.
Se n=dk-1bk-1+…+d1b+d0 con 0≤di≤(b-1) ∀ i=0,…, k-1 e dk-1≠0, si scrive anche
n=(dk-1 …,d1 d0)b oppure n=(dk-1 ,…,d1 ,d0)b
e tale espressione viene chiamata espansione di n in base b; si dice che i numeri dk-1 ,…,d1 ,d0 sono le cifre di n in base b e che n è un numero di k cifre in base b.
(2) Si pone anche 0=(0)b e tale espressione viene chiamata espansione di 0 in base b; 0 ha un’unica cifra in base b, che è uguale a 0.
Osservazione 1.5
Segue da quanto visto finora che se b è un numero naturale tale che b ≥ 2 e k  , allora:
La prossima proposizione, immediata conseguenza del Teorema 1.3, verrà frequentemente applicata nel seguito.
Proposizione 1.6
Siano b e k numeri naturali positivi con b ≥ 2.
Allora la funzione
f:{ 0,…, b-1}k → { 0,…, bk-1} definita ponendo f((ak-1,…,a0))=ak-1bk-1+…+ a0
è biettiva.
Dimostrazione
Si proverà ora che f è suriettiva.
Sia n  { 0,…, bk-1} ⇒ n ha al più k cifre in base b ⇒ dall’espansione (dh-1…,d1d0)b di n in base b, si ottiene la k-pla (0,…,0,dh-1,…,d0)  { 0,…, b-1}k .
Dunque si ha f( (0,…,0,dh-1,…,d0))=0·bk-1+…+0·bh+dh-1bh-1+…+d1b+d0=dh-1bh-1+…+d1b+d0=n.
Ne segue che f è suriettiva, e quindi anche biettiva perché dominio e codominio sono equipotenti.
Definizione 1.7
Sia un numero naturale positivo; ogni cifra di n in base 2 è detta cifra binaria oppure bit (abbreviazione di “binary digit”) di n. Se n ha k cifre binarie, si dice anche che n è un k-bit.
Definizione 1.8
Si chiama operazione elementare oppure operazione bit ogni singola operazione svolta su una cifra binaria nello svolgimento di un algoritmo che opera su uno o più numeri in base 2.
Definizione 1.9
Si chiama complessità computazionale di un algoritmo il numero di operazioni elementari eseguite dall’algoritmo stesso una volta scritti in base 2 i numeri su cui l’algoritmo opera.
Definizione 1.10
Sia r>0 e siano f e g due funzioni aventi come dominio uno stesso sottoinsieme X di e il cui codominio è un sottoinsieme dell’insieme dei numeri reali.
Si dice che f è limitata da g se esistono due numeri positivi B e C tali che
∀ (n1,…,nr)  X tale che n1,…,nr≥B, si ha f((n1,…,nr))≤C·g((n1,…,nr)).
Se f è limitata da g si scrive f((n1,…,nr))=O(g((n1,…,nr)))
531=75·7 +6 = (10·7 +5)·7+6=10·72+5·7+6=(1·7+3)·72+5·7+6=73+3·72+5·7 +6 e quindi 531=(1356)7
121=60·2 +1=(30·2)·2 +1=30·22+1=(15·2)·22 +1=15·23+1=(7·2 +1)·23+1=7·24+23+1 =
=(3·2 +1)· 24+23+1=3·25+24+23+1 =(1·2+1)·25+24+23+1=26+25+24+23+1 e quindi 121=(1111001)2
Siano n, m numeri naturali; sia b un numero naturale tale che b ≥ 2 , si considerino le espansioni di n e di m in base b. Se b=10, gli algoritmi attraverso i quali si eseguono m+n, n-m (se n≥m), n·m, la divisione euclidea di n per m (se n≥m) sono noti dalla scuola primaria; qualunque sia il valore di b, gli algoritmi per eseguire le suddette operazioni sono analoghi a quelli relativi al caso che sia b=10.
In particolare, nel caso che sia b=2, si tenga presente che (1)2+(1)2=(10)2 , sicché se in una somma ci sono in colonna due cifre uguali ad 1, la cifra risultante dalla somma è 0, con il riporto di 1.
In figura vengono riportati alcuni esempi di operazioni in base 2.
Sulle osservazioni precedenti si basa la seguente proposizione, della quale non viene riportata una dimostrazione formale.Â
Proposizione 1.11 (senza dimostrazione)
Siano n, m numeri naturali positivi tali che n≥m.
Se n è un k-bit e m è un l-bit, allora
Proposizione 1.12 Siano n,m  . Allora
Dimostrazione
L’asserto segue in modo immediato dalla Proposizione 1.11, tenendo conto di quanto affermato nella Definizione 1.5 sul numero di cifre di un numero espanso in una base b.
Proposizione 1.12
Sia n  . Il calcolo di ha complessità O((logn)3).
Dimostrazione
Sia k il numero di cifre binarie di n ⇒ 2k-1 ≤n<2k. Ne segue che
Sia l il numero di cifre binarie di .
Se k è pari, si ha
⇒ ⇒ .
Se k è dispari, si ha
⇒ ⇒ .
Sia =(1cl-2…c0)2; si determineranno ora, una alla volta, le cifre cl-2 ,…, c0
Sia x1 il numero l-bit (10…0)2 e sia y1 il numero l-bit (110…0)=x1+2l-2Â ; si calcoli y12.
Se y12 > n, allora cl-2=0, mentre se y12≤n, allora cl-2=1.
Si supponga di aver determinato le cifre cl-2,…,cl-i; si determinerà ora la cifra cl-i-1.
Sia xi il numero l-bit (1…cl-i 0…0) e sia yi il numero l-bit (1…cl-i 1…0)=xi+2l-i-1Â ; si calcoli yi2.
Se yi2 > n, allora cl-i-1=0, mentre se yi2 ≤ n allora cl-i-1=1″
Per determinare ogni cifra sono stati eseguiti una somma che ha complessità O(l) e un prodotto che ha complessità O(l2), per una complessità totale di O(l)+O(l2)=O(l2).
Quindi l’algoritmo ha complessità  O(l)·O(l2)=O(l3) e quindi O((logn)3), perché l=O(k) e k=O(logn)
Si calcoli .
Poiché n=(11001)2 ha 5 cifre binarie,
ha 3 cifre binarie;
quindi =(11c0)2.
(110)2 =(100100)2 > (11001)2 ⇒ c1=0
(101)2 =(11001)2 ⇒ c0=1
=(101)2
Si calcoli .
Poiché n=(10011)2 ha 5 cifre binarie,
ha 3 cifre binarie;
quindi =(1c1c0)2
(110)2 =(100100)2 > (10011)2 ⇒ c1 =0
(101)2 =(11001)2 > (10011)2 ⇒ c0 =0
=(100)2
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