Electronic Joint Business

Solution for E-Business

基于混沌的加密

文章评价: 简介 加密的挑战之一就是如何生成貌似随机的数字序列作为加密密钥(encryption keys)。 你也许知道,任何电脑生成的“随机”数都不是真的随机,它其实应称为“伪随机” – 该数字是用某个给定的“种子 – seed” 数迭代解一个数学方程得到的。对于每个给定的种子值,序列是不同的。如果你有一堆数字的集合并能访问创建它们的算法,那么对一台电脑来说,不用多久就可以算出使用的种子值。 现代对称加密系统使用一个256位的起始“密钥” (对于美国公民)并结合一个初始化向量(也是256位)。通过一些恐怖的数学运算,矢量被结合到密钥,多达数百万的独特排列被创建,将这些与数据相结合就可以进行混淆。这个过程可以反向运行,恢复原始信息(因此称为“对称”)。 这些数学加密系统的一个问题其过程是由数学派生的,算法是公开的。对于每一个创造出来的加密算法,最终总有人想出了破解它的数学方式。即使是最新和最伟大的 AES 算法现在已经从理论上破解。 混沌理论(chaos theory)可以用来生成加密密钥的想法不一定是我的独创,但至少现在我还没有看到任何类似的例子. 背景 混沌理论告诉我们,即使是非常简单的规则可以导致极其复杂且不可预知的行为。从水龙头滴落的水滴溅起的水花是绝对没有相同的两朵,即使每个水滴看上去几乎都是上次的重复。环境的微观变化对水内的单个粒子的路径影响显着。 不过,除非你能将每个水滴的环境复制量子水平,这样液滴的水花的路径才是相同的。 实际上,这就是在一个滴水的龙头上混沌的全部工作。 1970年,John Conway 博士致力于简化冯. 诺依曼的有限状态-自动机(Finite-State-Automata,一个’活’ 在二维笛卡尔坐标系内假想的自我复制机),并想出了一组简单的规则,最后成为了所谓的”生命游戏”。 “生命游戏”是在一个分成很多细胞的网格上进行的。每个细胞可以是”活”或”死”两种状态,有四个规则来确定任何给定细胞是活,是死,还是在每次迭代中诞生。 游戏的简单规则导致了令人惊讶的复杂且很有吸引力的行为,围绕着它兴起了一个新的研究领域叫“细胞自动机”。关于细胞自动机,你可以参考附件中的文档。 整个世界,甚至包括冯. 诺依曼的自我复制结构都可以在生命游戏的范畴内建立,宇宙的简单规则与生命游戏的规则之间的平行成为了很多科学、 哲学和甚至宗教的辩论主题。 可以从这个领域得出的一个有趣的一点是,任何细胞自动机模拟,无论多么复杂,完全是由细胞的起始状态决定。如果以同样的方式安排起始的细胞,经过数代之后,结果将始终是相同的。 这已引发了一个有趣的关于自由意志的性质的辩论 – 如果我们的宇宙被复位到完全相同的量子起始状态,到今天的演化结果会是相同的吗?而我们的选择这又意味着什么? 除了哲学方面外,还有一些有用的方面: 对于处在单一配置网格中的细胞,可以构造出数量庞大的不可预知的、 复杂的信息。千代之后, 如果不知道初始状态并跑完整个模拟过程,谁能预测哪些细胞是活的? 如果一个细胞的起始配置的不同的,经过数代之后,每个细胞的最终状态将是不同的。 加密应用 细胞自动机在加密领域有用吗?可以确定的是,通过细胞自动机模拟的细胞所表达的信息不是通过可逆的逻辑数学算法生成的。它产生的过程和现实生活没什么不同。这可能是最接近的用电脑产生真正的随机数的方法,而且如果不知道初始配置的话则完全无法复制它。 通过选择细胞在网络中的布局、规则和商定的世代,可以生成用于安全加密敏感数据的几乎无限的、 非重复序列完全随机数字。 细胞的初始布局和世代数目将成为加密的“密钥”。 按行或列解开网格,选择”活”为真,”死”为假,就可以将网格里的细胞转化成一个二进制数字序列。 由于数据的模式不重复,且不遵循逻辑的数学级数,甚至最普通的薄弱的用异或(XOR) 来混淆数据的加密过程也变得相同强大。 我打算开发一个安全加密系统来探讨这一点。这个系统会用细胞状态机生成关键数据,然后使用简单的 XOR 加密每一位。 软件的设计 第一步显然是要创建一个元胞自动机模拟。这是一个非常经典的编程问题,往往作为学生的编程任务。过去我也因为兴趣写过,但是这次要的略有不同。 我用的不是该问题的典型的解决方案(一对2维的布尔数组,一个用于保存当前代,另一个则保存下一代的结果)。我想使用面向对象的设计理念以便能够快速实现解决方案,并数据可以轻松地以线性方式访问 – […]

,

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload CAPTCHA.