-
1 # 軍機處留級大學士
-
2 # 老劍客看球
素數最值得注意的實際用途是密碼學。公鑰加密中使用的許多常用演算法都有許多極其重要的安全應用程式(您的計算機此時可能正在使用其中的幾種演算法),這是基於整數分解是一個“非常難”的問題。這意味著將整數分解為其素因子所需的時間(大致)隨整數中的位數呈指數增長。因此,如果加密使用非常大的整數,那麼“破解”它將花費不切實際的時間。
素數還有其他一些可能不太顯著的實際用途。其中大多數都與素數因子化是獨特的這一事實有關。一個眾所周知的例子是哥德爾編號。這種巧妙的方法允許您使用素數冪的乘積將任何長度的任何型別的資訊編碼為單個整數。它在數學證明中有許多重要的用途,最著名的是哥德爾不完備性定理的證明。
-
3 # 火星一號
素數或者說質數,是指只能被1和自身整除的大於1的自然數。對於其他比1大的自然數,它們就都是合數,能夠被除了1和自身之外的其他數整數。顯然,質數和質數相乘所得到的數必然是合數。
一直以來,質數的研究被認為只有純數學上的意義,實際並沒有什麼價值。直到上個世紀70年代,麻省理工學院(MIT)的三位數學家李維斯特、薩莫爾和阿德曼共同提出了一種公開金鑰加密演算法,也就是後來被廣泛應用於銀行加密的RSA演算法,人們才認識到了質數的巨大作用。
質數為什麼能用於加密演算法?這就要涉及到大數的質因數分解。如果把一個由較小的兩個質數相乘得到一個合數,將其分解成兩個質數(除了1和自身的組合之外)很容易,例如,51的兩個質因數為3和17。然而,如果兩個很大的質數相乘之後得到一個非常大的合數,想要逆過來把該數分解成兩個質數非常困難。例如,511883,分解成兩個質因數之後為557和919;2538952327(超過25億),分解成兩個質因數之後為29179和87013,這個難度明顯要比上一個數大得多。
截至今年一月份,目前已知最大的質數是2^82589933−1,這個數擁有超過2486萬位。即便是超級計算機,也很難有效對兩個質數相乘得到的合數進行質因數分解,所以這樣的原理可以用於加密演算法。
什麼是RSA加密演算法?RSA演算法是一種非對稱加密演算法,加密和解密所用的金鑰是不一樣的,解密所用的金鑰對應於加密所用的金鑰。假設甲向乙傳送資訊a,那麼,a是需要進行加密的資訊;再假設b是一個由兩個質數相乘得到的合數;c是一個與尤拉函式有關的數,這是公鑰;d是c關於尤拉函式值的模倒數,d就是私鑰。
資訊加密乙在產生合數b和公鑰c、私鑰d之後,乙會把b和c傳給甲,d則保密不被傳輸。甲利用公鑰c對資訊a進行加密,即計算a^c除以b的餘數e,即a^c mod b=e,所得到的e就是密文。於是,甲把密文e傳送給乙。
資訊解密乙在得到密文之後,利用私鑰d對密文e進行解密。可以證明,e^d除以b的餘數正是資訊a,即e^d mod b=a,這樣就完成了資訊的解密。
由於合數b、公鑰c、密文e都會被傳送,這些資訊就有可能被竊取。如果竊取者想要破解資訊,需要知道私鑰d。想要透過公鑰c來算出金鑰d,就需要對合數b進行質因數分解。但合數b是由兩個質數相乘得到的大數,想要成功分解該數極其困難。
目前,RSA加密演算法用到的大數已經有數百位,它們一般都是分解成兩個上百位的質數。如果繼續增加大數的位數,還能進一步降低被破解的風險。因此,RSA加密演算法的安全效能十分有保障,這就是為什麼它會被廣泛應用的原因。
-
4 # 艾伯史密斯
答:網路中廣泛使用的RSA演算法,就是基於素數性質的重要應用;在大自然中,素數甚至還關係著一個物種的生存和繁衍。
素數表示只能被1和本身整除且大於1的自然數,其餘大於1的自然數叫做合數,“1”既不是素數也不是合數;算術基本定理指出,任何大於1的自然數,都可以唯一分解為有限個素數的乘積。
素數就是構成所有數字的基石,要想了解數字的性質,就必須弄清楚素數的奧秘。
加密演算法在數學中,我們把兩個大的質數相乘很容易,但是要把一個大數進行分解卻很難;比如利用傳統計算機,把兩個256位的素數相乘只要幾秒鐘,但是要把一個512位的大數分解成兩個素數,可能需要數十萬年的時間。
於是演算法學家利用這種演算法難度的不對稱,發明了RSA非對稱加密演算法,成為我們網路安全的數學基礎,這算是素數在實際生活中的一個重要應用。
十七年蟬在大自然中,有些生物利用素數的性質,使得自身種群在競爭中處於優勢,比如北美洲的十七年蟬,還有十三年蟬。
十七年蟬的生命週期為17年,幼蟲時期潛伏於樹根底下,每過17年後集體破土而出,長度約2.5cm,再進行交配和產卵。幾周後就會死亡。
經過研究發現,這種特殊的17年週期,能有效避開它們的天敵,首先捕食者一般不會有這麼長的週期來和十七年蟬保持同步,對於一些固定生命週期的天敵,將很難遇到和十七年蟬在同一年相遇,例如:
(1)捕食者A的生命週期為2年,那麼平均2*17=34年,才會和十七年蟬相遇一次;
(2)捕食者B的生命週期為4年,那麼平均4*17=68年,才會和十七年蟬相遇一次;
(3)捕食者C的生命週期為6年,那麼平均6*17=102年,才會和十七年蟬相遇一次;
研究人員還發現,在十七年蟬出現後的第12年,捕食它們的鳥類數量出現明顯下滑;在第17年時,捕食者數量降到最低,此時十七年蟬才破土而出。
十七年蟬利用這種優勢,種群得到了長久的延續,在北美洲,前面幾次十七年蟬的出現年份分別為:1962年、1979年、1996年和2013年。
每到十七年蟬出現的年份,美國東海岸會被鋪天蓋地的蟬佔領,群體叫聲可達90分貝,猶如飛機從頭頂飛過;遭到十七年蟬入侵的地方,平均每平方米有數百隻蟬,它們啃食樹苗和莊稼,對當地生態造成嚴重影響,好在對人類和牲畜無直接危害。
回覆列表
素數又稱質數,有無限個。素數定義為在大於1的自然數中,除了1和它本身以外不再有其他因數。
一個自然數(如1、2、3、4、5、6等)若恰有兩個正約數(1及此數本身),則稱之為素數。大於1的自然數若不是素數,則稱之為合數。
消費者一線上輸入信用卡號碼,素數加密就開始工作。RSA演算法使用一個公鑰和一個私鑰來隱藏資訊,以免被竊賊竊取。公鑰是公開的,但是很難破解,因為它是兩個非常大的素數的乘積。只有商家知道的私鑰是兩個較小素數的乘積。
這種RSA演算法加密之所以有效,是因為用公鑰加密資料所用的數字非常大,很難考慮素數。將兩個非常大的素數相乘很簡單,但是很難分解這個數字,除非有人有一臺強大的計算機來完成這項工作。
整個加密程式使用示例“x=yz”工作,其中x是公鑰,y和z是私鑰。這些私鑰是非常大的素數相乘在一起,有時達到100或200個數字的數量級。兩個私鑰解鎖公鑰並解碼透過傳輸傳送的資訊。
素數是隻有兩個因素的數字:它本身和一個。小素數包括2、3、7、11、13、17和19。
素數除了人類加密應用外,昆蟲甚至也可以運用素數。蟬是在地下冬眠的昆蟲,每隔13年或17年就會出現交配和死亡(而新生的蟬則潛入地下重複這一過程)。一些人推測13 / 17年的冬眠是進化壓力的結果。如果蟬冬眠了X年,並且有一個捕食者經歷了類似的多年冬眠,比如說Y年,那麼如果Y除以X,蟬就會被吃掉。所以透過“選擇”素數,它們使得它們的捕食者不太可能在正確的時間醒來。