我需要爲加密項目生成大素數。我注意到.NET 4.0有一些內置的密碼原語(例如RSA),它使用隨機生成的大素數(p,q代表RSA)。他們是否都使用一個公共的內置庫,這個庫是公開的,並且可以從他們的類範圍之外訪問,或者我必須使用外部庫(我知道有簡單的素數測試算法,我只是不想實施比我更多)。有沒有辦法在C#中生成大素數,而不使用外部庫?
3
A
回答
1
在.NET v4(及更高版本)中,Microsoft提供了一個新程序集System.Numerics.dll
,其中包含BigInteger
類型。但是它不提供任何方法來檢查素數。
單聲道(自1.0之前)還提供[BigInteger][3]
類型位於它的Mono.Security.dll
大會。您可以使用,如或將質檢方法(存在多種方法)移植到新的Microsoft BigInteger
類型。
他們是否都使用常見的內置庫,它是公共的,可以從它們的類範圍
是的,無論是RSACryptoServiceProvider
和DSACryptoServiceProvider
調用到CryptoAPI的做到這一點的外部訪問。然而,CAPI不公開它自己的BigInteger代碼(甚至是本地代碼),所以它不會幫助你。
1
在您需要的範圍內生成一個大數字。測試它是否爲素數。如果不是,拒絕並重復。
對於測試,只需使用1500以上的質數進行試驗,然後切換到Miller-Rabin。通過正確實施Miller-Rabin,硬件故障的可能性大於錯誤地將複合材料標記爲主要。
相關問題
- 1. 有沒有辦法在MYSQL中創建數據庫,而不使用SMO在C#
- 2. 有沒有辦法在pytorch中使用外部丟失函數?
- 3. 有沒有辦法在C#中爲sql數據庫生成getter和setter?
- 4. 有沒有辦法在面板中生成滯後而不折疊數據?
- 5. 有沒有辦法用WebAPI生成Url?
- 6. 有沒有辦法使用iOS大小類沒有界面生成器(編程)?
- 7. 有沒有辦法檢查ADO.NET方法生成的SQL,而不使用數據庫跟蹤/分析?
- 8. 有沒有辦法通過編寫PHP來生成數據庫?
- 9. 有沒有辦法從Windows服務器生成Realm.io數據庫?
- 10. 有沒有辦法使用i生成整數?
- 11. 有沒有辦法在javascript中獲取外部數據?
- 12. 有沒有辦法使用force.com平臺訪問外部數據庫?
- 13. 有沒有辦法在AngularJS中拖放對象而不生成ID?
- 14. 有沒有辦法不生成在rails中的遷移文件
- 15. 有沒有辦法在Java Play 2 Framework中從數據庫中生成代碼?
- 16. 有沒有辦法爲Spring生成applicationContext.xml?
- 17. 有沒有辦法使用cin.getline()而不必事先定義char數組大小?
- 18. 有沒有辦法從SQLite數據庫生成數據庫圖表?
- 19. 檢查scanf(..)成功,而不使用字段數 - 有沒有辦法?
- 20. 有沒有辦法從xaml調用外部函數?
- 21. 有沒有辦法使用DexClassLoader而不使用反射*到處*?
- 22. 有沒有辦法使用Swagger生成ASP.NET 4服務器
- 23. 有沒有辦法使用numpy生成索引列表
- 24. 有沒有辦法使用ArgoUML自動生成getter和setter
- 25. 有沒有辦法使用StatET Eclipse插件的外部工具函數編譯和生成.rmd文件?
- 26. 有沒有辦法在iOS上使用C或C++庫生成,創建或導出.ppt演示文件
- 27. 有沒有辦法在Mercurial中創建外部鏈接
- 28. 有沒有辦法在python嵌入類中訪問外部類?
- 29. 有沒有辦法在Excel中連接兩個數組而不使用VBA?
- 30. 有沒有辦法標記使用非重入C庫調用?
素數必須是奇數。 – Corbin
@Corbin - 不是*所有*素數都是奇數(但大數將是) –
我想我很抱歉。但是,不是2是唯一的非奇素數? – Corbin