1. 近日,美國數學家庫珀發現了目前人類已知最大的素數,這個數字有2200多萬位。將它運用到密碼學上,可
素數的概念你應該懂吧,就是只能被數本身和1整除,比如說3,5,7都是素數,而4就不是了。
我來重點說下,素數在密碼學或者說安全領域的應用原理吧。一般來說密碼或者核心數據都是採用秘鑰、公鑰和加密演算法這一套工具來進行加密解密的。公鑰顧名思義是暴露在網路上的,黑//客什麼的都可以截取並用工具分析出來,加密演算法有公開的也有不公開的,最重要的是秘鑰(也稱為私鑰),它是用來把從網路上傳輸過來的數據進行解密的。
如果說你的秘鑰是通過一些常用整數或者說簡單素數變換過來的,那很容易通過窮舉法解開的。比如說用4當做秘鑰,那存在1*4=4和2*2=4兩種情況,那在理論上比用素數3(1*3=3)做秘鑰被解開的概率多了一倍,安全系數就低了。
另外為什麼素數越大安全性越高呢?秘鑰破解者破解開之前是不知道你的具體秘鑰值的,一般都是從簡單、位數少的數開始嘗試破解,秘鑰值越大(即秘鑰位數越大、越復雜)那破解的難度就越大,破解要付出的時間、人力物力財力就會直線上升。其實,這也就可以明白為什麼有些網站會硬性要求注冊用戶的密碼復雜度了。
2. 強素數的密碼學中的定義
在密碼學中,一個素數p在滿足下列條件時被稱為強素數 [1]:
p 必須是很大的數。
p − 1 有很大的質因數。也就是說,對於某個整數a1以及大素數q1,我們有p = a1q1 + 1。
q1 − 1 有很大的質因數。也就是說,對於某個整數a2以及大素數q2,我們有q1 = a2q2 + 1。
p + 1 有很大的質因數。也就是說,對於某個整數a3以及大素數q3,我們有p = a3q3 − 1。
有時,當一個素數只滿足上面一部分條件的時候,我們也稱它是強素數。而有的時候,我們則要求加入更多的條件。例如,我們可以要求a1 = 2,或者a2 = 2。從這個角度上來說,很大的安全素數可以看作是強素數的一種。