我能产生1024位的随机数,如何利用其产生1024位的素数呢?

zhua_v 2002-04-04 03:03:56
有C语言版的源程序吗?
...全文
842 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhua_v 2002-04-04
  • 打赏
  • 举报
回复
谢谢大家给了这么多的意见,谢谢kaile(领头羊) ,我又学到了很多东西,因为我的项目里一定要用到大素数,我再看看资料吧,同时希望大家继续提建议
Kaile 2002-04-04
  • 打赏
  • 举报
回复
目前数学上还没有办法判断一个任意大数是不是素数,所以产生大素数的方法世界上都是用搜索的办法,即产生一个大随机数,再对它进行一系列的测试,如果通过它不是素数的概率非常小,另外,它如果通过更严格的测试,即为强素数,不是素数的概率小到可以认为是0,你应该找些密码学方面的书来看,如应用密码学,很经典
zhua_v 2002-04-04
  • 打赏
  • 举报
回复
to e_notimpl(e_notimpl)
6是怎么来的?这样做不能保证它的随机性啊
Octogen 2002-04-04
  • 打赏
  • 举报
回复
RSA加密算法中用200位的素数加密就算是万无一失了,

但软加密时找一个这样的素数也要一些时间,

想判断1024位的素数太慢了。

zhua_v 2002-04-04
  • 打赏
  • 举报
回复
谢谢 reven_zl(reven) 的提示
我想这种源程序难道网上没有吗?是不是保密的?
e_notimpl 2002-04-04
  • 打赏
  • 举报
回复
f(0) = 6+1
f(1) = 6*f(0)+1
f(2) = 6*f(0)*f(1)+1
.
.
.
f(n) = 6*f(0)*f(1)*...*f(n-1)+1

想必n要不了多久就可以到1024位了。
e_notimpl 2002-04-04
  • 打赏
  • 举报
回复
"任意多个素数的乘机再加1,必定还是素数"是不对的,因为3*5+1=16就不是素数。
GHOSTofCPP 2002-04-04
  • 打赏
  • 举报
回复
reven_zl(reven) “任意多个素数的乘机再加1,必定还是素数”,
如果reven_zl(reven)说的是对的话,看来判断一个1024位的素数比生成一个1024位的素数还要复杂。算法要在数论方面找。



zhua_v 2002-04-04
  • 打赏
  • 举报
回复
随机数是机器产生的,呵呵
我需要判断是否是素数,如果不是再让机器生成一个随机数。
reven_zl 2002-04-04
  • 打赏
  • 举报
回复
具体不知你怎么产生1024位随机数的,但是可以给你一点提示,任意多个素数的乘机再加1,必定还是素数
GHOSTofCPP 2002-04-04
  • 打赏
  • 举报
回复
难,如果谁能编程在1秒内随机生成1个1024位的素数,估计可些一篇论文了。
poly30 2002-04-04
  • 打赏
  • 举报
回复
你都会产生所有的数了


再加个判断就可以产生素数呀
hcpp 2002-04-04
  • 打赏
  • 举报
回复
想想都难,你还要代码?我看加点分,大家讨论一下算法吧!

70,035

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧