首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >哈希函数以生成一次性衬垫。

哈希函数以生成一次性衬垫。
EN

Cryptography用户
提问于 2015-07-19 21:13:45
回答 1查看 1.6K关注 0票数 6

也许这是个新手的问题:

流密码,将异或消息位与一次垫位.假设我有一个伪随机数发生器,比如梅森扭子或类似的东西。我可以使用伪随机字符串来异或消息。使用密码作为生成器的种子。相同密码=相同伪随机序列。伪随机序列中的哈希块能产生一个更强的一次性衬垫流吗?

EN

回答 1

Cryptography用户

回答已采纳

发布于 2015-07-19 22:21:55

第一件事: PRNG (伪随机数发生器)不能提供一次的衬垫.

提醒:一次性便携版…

  1. 必须是真正的随机,
  2. 必须至少和明文一样长,
  3. 不会全部或部分重复使用,而且
  4. 是完全保密的。

只有当四点都得到满足时,我们才是在谈论OTP。

您的PRNG想法无法满足这些参数,因为它既不是真正的随机,也不是纯文本。此外,当不使用CSRNG (加密安全随机数生成器)时,您一定要重用它,部分原因是常规PRNG算法的重复内部状态。

示例:您作为示例提到的“Mersenne”PRNG不是加密安全的。考虑到少量的输出,S比较容易计算出未来的所有产出。换句话说:S很有预见性,在密码学方面你什么也不想用。这样的算法不是为了密码安全而构建的!它们是专为蒙特卡罗模拟之类的东西设计的。

保持简短(并积极地忽略其他潜在问题,如缺少身份验证等):您的“密码”的安全性将与您的PRNG的安全性保持一致,这意味着您使用常规PRNG创建的任何内容都不能被认为是加密安全的。

老实说,当我看到经过良好审查的选项(各种加密安全流密码,许多安全块密码可以运行在CTR模式,等等)。我只想知道你为什么会考虑基于一些PRNG创建自己的、自制的解决方案。您可以相信这样一个事实:尝试基于简单的PRNG创建流密码是一个非常糟糕的想法。

同样适用于您的相关密钥生成思想,…。存在pbkdf解决方案是有原因的!

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

https://crypto.stackexchange.com/questions/27021

复制
相关文章

相似问题

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