首页
社区
课程
招聘
[讨论]理想密钥的生成
发表于: 2014-8-7 11:50 4207

[讨论]理想密钥的生成

2014-8-7 11:50
4207
理想密钥的生成
  理想密钥的定义:就是最适合隐藏数据的密钥,由相互之间没有关系的、均匀分布的乱码组成,相邻元素没有重复的。
  以字节数组为例,它有256个成员,先看这256个成员组成的数组可以有怎样的组合形式,它们共有256的256次方种不同的组合方式,但其中也包括了全体是一种元素,或大量重复的组合,这些显然不适合做密钥,极端的例子是256个零,完全是透明的了,所以尽量不要重复元素出现,这样就只有256!这也是成员众多的集合,利用这些就可以组合出形形色色的理想密钥数组,而且比采自自然物理现象的真随机数组,更接近于理想密钥。
  我们如何得到不同的256个元素的组合呢?这要借助于热力学第二定律——熵增加原理:如果众多因素影响某种现象时,只能向越来越混乱的方向发展(向无序化发展),例如锅里放了几种颜色的沙子,你用铲子去搅动它们,各色的沙子只能向着颜色融合的方向发展,分布越来越均匀,而不能有相反的趋势。
  我们可以用性能优良的随机函数对数组做随机排序(相当于多种因素作用于数组),这样就可以得到分布不同的数组了,将它们接起来并且不让各单元数组的首尾产生重复元素,这样理想的密钥数组就建立起来了。
  这样建立的数组是可以控制的,并不像采自物理现象的真随机数组是不可控制的。所以使用起来非常便捷。我认为有些真随机数组是相对的,例如我做出一个数组你用各种方式也不能发现其规律,在你来看完全是一些无规律的乱码,它对你来说就是真随机数组,而对我来说就不是,因为我能再现它。并且真随机数组是一种数组生成方式,数组一经公开就不在是真随机数组了,因为此时可能有人掌握它了,所以真随机数组只能存在于生成机制中。
  密钥数组不是凭空生成的,我们可以通过用户密码及其衍生值来控制,通过用户密码计算、映射信息、关联信息,使其得到拓展名堂大了,请参考笔者有关帖子“密码的复杂化”等,最后生成参数数组,用它们来控制密钥数组的生成。
安全性问题
  至此就算将密钥数组公开也未必能推出用户密码,这是因为大多计算都有不可逆因素参与,况且密钥数组在加密过程中只是一种中间变量,最后只有密文是公开的。
  

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 10014
活跃值: (2012)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
2
  欢迎大家不吝赐教。
2014-8-8 21:04
0
游客
登录 | 注册 方可回帖
返回
//