Algoritmo AKS - vincenzofiore83
Transcript
Algoritmo AKS - vincenzofiore83
Corso di Tecnologie per la sicurezza LS Algoritmo AKS Vincenzo Fiore Agrawal, Kayal, Saxena Nell'agosto del 2002 tre ricercatori indiani, Manindra Agrawal, Neeraj Kayal e Nitin Saxena, hanno presentato un algoritmo deterministico con tempo di esecuzione polinomiale per determinare se un dato numero è primo. Idea Il test di primalità AKS[1] si basa su la seguente generalizzazione del Piccolo Teorema di Fermat: L'uguaglianza precedente rappresenta essa stessa un semplice test di primalità, ma la sua verifica richiede un tempo esponenziale in quanto, nel caso peggiore, è necessario valutare n coefficienti. Inoltre il test fallisce per una specifica classe di numeri, noti come pseudoprimi, che includono ad esempio i Numeri di Carmichael. Algoritmo AKS 3 Idea Al fine di ridurre il numero dei coefficienti si valutano entrambi i membri dell'equazione 1.1 modulo un polinomio della forma Xr-1. In altre parole, si verifica se la seguente equazione è soddisfatta: Dal Lemma 1.1 segue che qualsiasi primo n soddisfa l'equazione 1.2 per tutti i valori di a ed r. Algoritmo AKS 4 Idea Problema: alcuni numeri composti soddisfano anch'essi l'equazione per un piccolo numero di a ed r. Soluzione: è sempre possibile individuare un opportuno e piccolo r ed un opportuno e piccolo insieme di interi A tale che se l'equivalenza 1.2 è soddisfatta per tutti gli a in A allora n deve essere primo. Algoritmo AKS 5 Algoritmo originale 1 floor(x) è il più grande intero minore o uguale ad x Algoritmo AKS 6 Algoritmo originale (1)Determina se il numero è composto verificando se è una potenza perfetta. (2)Utilizza il Piccolo Teorema di Fermat per individuare un appropriato valore di r , che viene scelto in modo tale da essere il più piccolo valore maggiore di 4 log2n per il quale è ancora valida l'equazione 1.2 . (3)Determina il più grande divisore comune a n e a tutti i valori minori o uguali a r: ciò è necessario per assicurarsi che tutti i valori minori o uguali a r siano coprimi con n. (4)Verifica se il valore individuato per r è maggiore o uguale ad n: in questo caso n è primo. (5)Tutte le operazioni vengono eseguite nell'anello polinomiale Zn[X]/(Xr-1). Sul lato sinistro dell'equazione viene realizzata l'esponenziazione polinomiale nell'anello mentre il lato destro viene semplicemente ridotto per restare nell'anello. Algoritmo AKS 7 Algoritmo originale Questi due valori vengono comparati per determinare se sono equivalenti; la relazione deve essere testata per tutti i valori di a da 1 al valore di bound individuato precedentemente. Se la relazione è valida per tutti i valori di a, allora il numero è primo. L'algoritmo ha complessità O(log10.5 n). Algoritmo AKS 8 Algoritmo modificato (H. Lenstra, C. Poerance) Algoritmo AKS 9 Algoritmo modificato caratteristiche e complessità La funzione f(X) è la stessa di prima, Xr-1, cioè un polinomio di grado r con coefficienti interi tale che l'anello Z[X]=(n, f(X)) diventa uno pseudo-campo. ● Il valore di r è ridotto approssimativamente di un fattore quattro; questo è significativo in quanto riduce notevolmente il numero di iterazioni richieste nel loop finale; inoltre il limite superiore del loop è stato ulteriormente ridotto di un fattore 2. ● ● L'algoritmo ha complessità O(log7.5 n) [3]. Algoritmo AKS 10 Possibile miglioramento Tale congettura permette di ridurre significativamente il tempo impiegato nel loop finale dell'algoritmo in quanto consente di verificare l'equazione per un unico valore di a, a condizione che r sia stato scelto correttamente. Questa congettura riduce la complessità totale dell'algoritmo a O(log3 n). Algoritmo AKS 11 Bibliografia ● ● ● [1] M. Agrawal, N. Kayal,N. Saxena, PRIMES is in P (Revised), 2003. [2] S. Aaronson, The Prime Facts: From Euclid to AKS, 2003. [3] H. Lenstra, C. Pomerance, Primality Testing with Gaussian Periods, 2003. Algoritmo AKS 12
Documenti analoghi
x - Nardelli
pari o superiore all’aritmetica, ci aspettiamo che da un momento all’altro salti fuori uno
di questi problemi. Inoltre si spiegherebbe perché, nonostante la soluzione sia cercata
da tempo, al momen...