首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么不使用一个算法的代码,而不是数据本身的一次垫?

为什么不使用一个算法的代码,而不是数据本身的一次垫?
EN

Cryptography用户
提问于 2011-12-31 14:17:59
回答 2查看 470关注 0票数 3

如果一个算法的代码被交换了,以便获取pad的代码来执行算法并使用它的输出,而不是一次使用实际数据,那么会有什么不同呢?为什么不使用这个?

一种算法将大大缩短,并能产生大量的混沌信息。从分形(离散映射)到元胞自动机到无理数序列(微分方程零?),有如此多的确定性不可预测性的例子。以CPU浮点运算为模幂。还有很多方法把它们组合成更多的反馈回路。

即使输出不像密码学上的强,难道没有确定性操作可以确保一定程度的强度吗?难道一台计算机就不能尝试长期而复杂的混沌算法和初值类的组合,直到一种算法产生强大的垫子来解决你将要使用的垫子上吗?如果攻击者甚至不知道用于生成衬垫的组合算法,那么猜测各种初始值的概率是没有意义的。看起来,代码长度和执行时间对猜测甚至是安全的,即使没有填充。

EN

回答 2

Cryptography用户

回答已采纳

发布于 2011-12-31 20:56:23

从密钥生成伪随机流,并定期对包含要加密数据的流进行XORing。这就是大多数流密码的工作方式,例如众所周知的RC4,也适用于计数器模式中的块密码。根据定义,这不是“一次性Pad",因为OTP要求密钥流真正是随机的(这是OTP不可打破的条件)。这样的流密码器仍然与OTP共享绝对的必要性,不对两个不同的消息重用给定的密钥流,因此封装协议必须注意在需要时更新密钥。在SSL/TLS中,为每个连接生成一个新的会话密钥,所以当使用流密码(RC4)时,一切都是安全的。

有相当多的流密码器已经被密码家认真地看过了,他们发现没有什么不好说的,请看电子表格投资组合中的一些。

混沌、分形等都不是密码学的正确工具。一个混乱的系统只是一个价值的生产者,以一种看似随机的方式“跳跃”。统计分析工具可能会被混沌系统所击败。但是统计分析工具是愚蠢的:它们被设计用来分析物理现象。对于密码学,除了密钥本身,我们希望击败拥有与您使用的软件相同的软件副本的智能攻击者。例如,一个线性反馈移位寄存器具有非常好的统计特性,并产生一些比特,统计工具将其声明为“看似随机的”。但是对于n-bit LFSR,只需观察输出的第一个n位来学习完整的内部状态,并以100%的精度预测所有后续输出(即使LFSR结构(对应的多项式)未知,使用贝勒坎普-梅西算法,2n输出比特也足以实现这一点)。

简而言之,如果你在自制的回路中使用分形或混沌系统,你就会使密码系统更容易击败黑猩猩。我们密码家的目标通常比这稍高一点。

此外,“代码”(即软件)的保密性通常不会被假定,因为它很难实现。软件存在于一些永久的存储器中,在计算机硬盘上;在某个地方有源代码;它很笨重。保持代码的机密性很难,更难的是知道它有多机密。这就是密码学家谈论密钥的原因:他们将“代码”(例如伪随机流生成器)分成一个算法,该算法是公开的,成为软件;密钥是一个小参数,它集中了机密性。一个典型的密钥是一个序列,例如128位,足够小到可以正确地处理和保护(它甚至可以被人记住,并在需要时输入-因此,不需要存储在硬盘上)。

票数 10
EN

Cryptography用户

发布于 2011-12-31 15:41:54

一次性Pad需要一个真正的随机密钥。如果密钥不是真正随机的,则不满足OTP不可破性的数学要求。

具有生成的密钥流的OTP称为流密码,而流密码器通常可以被破坏。如果没有别的办法的话。OTP的要点是,即使是野蛮的武力攻击也是无用的。

研究一下"单一性距离“的概念可能会对你有所帮助。

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

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

复制
相关文章

相似问题

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