尋找隨機素數是RSA金鑰演算法的基礎。如我在回答OpenSSL是什麼的問題中所說,所有安全演算法都是公開的,尋找素數的演算法也一樣。你可以下載OpenSSL的原始碼,看看bn_prime.c。
演算法既然是公開的,如何保證演算法的實現足夠安全?這也是有標準的。美國有個政府組織叫做NIST(National Institution ofStandard and Technology),就負責制定所有安全演算法的實現標準,這套標準叫做FIPS(Federal Information Processing Standard)。當然中國也有中國的標準,這我不太瞭解 。單說美國標準,如果你在網上查詢FIPS 186-4,會得到一個pdf文件,標題是Digital Signature Standard,這裡面的附錄B.3.2詳細規定了尋找素數演算法的每一步邏輯。至於其數學原理,就恕我才疏學淺,不再詳細表達了,你可以自行尋找密碼學的書籍看看。
再針對標準多說幾句。你在實現安全演算法的時候,可以不按照標準。但如果你想把你的安全產品賣給政府部門,則必須按照政府的標準實現。為此,美國NIST是有一整套安全驗證程式的,該驗證程式的目的就是保證你的實現是嚴格遵守了FIPS標準,只有透過這一驗證,你的產品才有可能被政府採用。
尋找隨機素數是RSA金鑰演算法的基礎。如我在回答OpenSSL是什麼的問題中所說,所有安全演算法都是公開的,尋找素數的演算法也一樣。你可以下載OpenSSL的原始碼,看看bn_prime.c。
演算法既然是公開的,如何保證演算法的實現足夠安全?這也是有標準的。美國有個政府組織叫做NIST(National Institution ofStandard and Technology),就負責制定所有安全演算法的實現標準,這套標準叫做FIPS(Federal Information Processing Standard)。當然中國也有中國的標準,這我不太瞭解 。單說美國標準,如果你在網上查詢FIPS 186-4,會得到一個pdf文件,標題是Digital Signature Standard,這裡面的附錄B.3.2詳細規定了尋找素數演算法的每一步邏輯。至於其數學原理,就恕我才疏學淺,不再詳細表達了,你可以自行尋找密碼學的書籍看看。
再針對標準多說幾句。你在實現安全演算法的時候,可以不按照標準。但如果你想把你的安全產品賣給政府部門,則必須按照政府的標準實現。為此,美國NIST是有一整套安全驗證程式的,該驗證程式的目的就是保證你的實現是嚴格遵守了FIPS標準,只有透過這一驗證,你的產品才有可能被政府採用。