我需要为加密项目生成大素数。我注意到.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