首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是产生一个时间垫的好方法,这是一个好方法吗?

什么是产生一个时间垫的好方法,这是一个好方法吗?
EN

Security用户
提问于 2016-02-08 23:36:14
回答 1查看 3.2K关注 0票数 0

是否有一个好的/更好的/最好的方法来产生一个时间垫?我只想使用大约40个字符(a-z,0-9,. .!).

我想出的也许不是最好的办法,但似乎能满足我的需要。它基本上是这样运作的:

初始化:

1)使用MS RNGCryptoServiceProvider服务生成随机种子

2)用我使用的所有字符的基填充数组

3)根据第一个字符的随机数和该字符之后数组中的随机数(基数40)执行“切换”。

4)暂停由另一个随机种子调用(1-5ms)确定的随机时间。

5)获得新的种子

6)根据第二个字符的随机数和该字符之后数组中的随机数(基数40)执行“切换”。

7)继续,直到所有字符被交换,在每次迭代、切换等过程中产生一个新的随机种子。

8)重复处理5,000次(可调整)

生成行:

9)重复步骤3-8,000次(可调)

10)将线路写入安全位置(屏幕上、加密的拇指驱动器等)。

11)使用前面基于数组的行,重复步骤3-8,重复我想要的多次/行。

这具有重复使用旧的/新的种子(即在交换机上播种)的位置。我知道这方面存在漏洞,但是对于实际的生成方面,我想我可以定义每个周期可以运行多少个循环(如果用户想发疯,他们可以每一行做1亿到数百万个开关,并且可以将起始点调整到1亿到数百万)。更多似乎更好,但最终取决于用户。

我会把这个放出来--我的机器运行得非常快,芯片上有英特尔CPRNG。我知道这是/可能是一个安全隐患,但是我想知道,仅仅为了生成算法,这看起来是生成OTP pads的一个好方法吗?由于还有很多其他安全问题可以添加到列表中,或者明智地删除,我只是问--您需要多少钱才能制作一个OTP垫?

事先谢谢,我会纠正任何人有任何疑问的。

EN

回答 1

Security用户

发布于 2016-02-09 00:05:57

抱歉,但不行。OTP需要真正的随机数。比如,/dev/random随机或更好(参见)。如果您的随机数生成器在其名称中的任何地方都有“伪”,OTP将无法工作。

如果要使用伪随机数发送消息,请查找分组密码.

OTP要记住的是,如果一个流甚至部分是随机的,那是不够好的。如果您有100个字节的真正熵,但是算法生成一个150个字节的密钥,那么攻击者将得到50个字节的信息(其他100个字节(或更多)可能是英语中的冗余或任何您所在的编码位置,他们可以自己填写)。

OTP在有限的情况下是实用的(当它确实工作时,它是美丽和令人敬畏的)。对于一个简单的OTP的想法是打破,俄罗斯人使用OTP,但没有足够的随机密钥,所以美国能够打破它。这是在互联网之前。

猎鹿人的评论很有用。

票数 1
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/113162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档