印度的三位計算機專家(one Professor 馬寧德拉·阿格拉瓦 + two Bachelors 尼拉葉·卡雅爾和尼汀·薩克斯特納)震驚了數學界,他們為古老的素數判定問題找到了確定的多項式算法,而且令人始料未及的是,他們的判定方法出奇地簡單,簡單到足以讓數學家們警覺起來,啟發他們重新審視許多復雜問題的解決方法。
作為除了1和自身外沒有其他約數的正整數,數千年來素數壹直是數論的基本構件。對於如何判定壹個數是否為素數,公元前240年,希臘數學家埃拉托色尼給出了壹個壹直沿用到今天的方法——“篩選法”。該方法有其局限性,即隨著數字的增大,篩選所耗用的時間呈指數增長。如果要判定相當大的自然數,哪怕采用最先進的計算機進行運算,計算時間比宇宙年齡都要長。因此,長期以來,數學家們壹直致力於尋找的,就是在可以接受的時間內能夠完成的判定方法。
在過去的幾十年間,由於素數判定問題被引入了密碼學領域,這方面的研究工作變得倍受關註。因為當前的因特網加密程序,主要是基於大數的素因子分解相當困難這壹假定。雖然目前有壹些高速程序可以給出壹個大數是素數的概率,但它畢竟沒有徹底解決問題。
印度理工學院計算機科學與工程學系的科學家馬寧德拉·阿格拉瓦和他的兩位在校本科生尼拉葉·卡雅爾和尼汀·薩克斯特納在這方面取得了成功。
這三個人的成功主要得益於采用了嶄新的思路。其他人的著眼點往往是“這個數是否是素數”,他們卻另辟蹊徑,將問題轉化成關於待判定數的壹系列小的問題或“方程”。於是,簡單的算法誕生了,只需用13行便可寫明。阿格拉瓦解釋說:“如果某個數字使所有等式成立,那麽它就是素數;否則,便不是。”
卡爾·波默朗斯是美國新澤西州貝爾實驗室的素數問題專家,他評論說:“這是壹個漂亮的算法,我為之高興。同時,也很遺憾自己沒找到它。他們的方法很簡潔,但並不平凡。他們的工作充滿智慧。”
英國沃裏克大學的數學家和科普作家伊恩·斯圖亞特認為,這壹理論突破就其本身而言固然重要,但它給人們思路上帶來的啟發意義更加深遠。如果采用它所蘊含的換個角度、化繁為簡的思想,對於那些目前處在死胡同中的難題,科學家們也許可以找到解決辦法。
因特網安全目前還未因此受到威脅。來自英國壹個加密安全公司的本·哈德利說:“相對於原來的概率計算算法,新算法並沒有給素因子分解提供好的算法,所以這壹新突破對密碼安全行業並沒有太大的實際影響。”
但是,波默朗斯堅信新算法將使密碼學專家擔憂。他認為,既然存在簡單的素數判定算法,也就很可能存在簡單的素因子分解算法,只是我們還沒註意到罷了。
這恐怕也正是阿格拉瓦等人研究工作的真正意義所在。兩名本科生的畢業項目能產生如此重大的成果,這說明我們很可能忽略掉了更多重大數學問題的簡單解答方法。波默朗斯感慨頗深地說:“這是壹個提醒,原來我們非常容易忽略掉壹些簡單的東西。”
素數判定算法
(當且僅當n為素數時,最終輸出數才為素數)
lnput: integer n>1
1.if (n is of the form a^b, b>1)output COMPOSITE;
2.R=2
3.while (r<n) {
4. if(ged(n,r)≠1) output COMPOSITE;
5. if(r is prime)
6. let q be the largest prime factor of r-1
7. if(q≥4^r/2 logn)and (n(r-1)/q≠1(mod r))
8. break;
9. r←r+1;
10. }
11.for a=1 to 2r^1/2 logn
12. if ((x-a)^n≠(x^n-a)(mod x^r-1,n))output COMPOSITE;
13.output PRIME;