一种利用公开真随机序列生成密钥序列的方法
参赛队员:李荣莎沈峥迪
指导教师:苗金利
所在学校:北京四中
摘要:本文提出了一种生成序列密码的密钥序列的新思路:将公开的真随机序列引入密钥序列的生成过程,从而使密钥序列在公开真随机序列的影响下体现出较好的随机性,并与公开真随机序列有较低的相关性,从而具有良好的保密性。基于此思想,我们设计了两种具有良好性质的具体加密方法。
关键字:序列密码密钥序列
A method for generating encryption key stream
using a public random quence
Abstract: In this paper, we put forward a new method for generating the encryption key streams of stream ciphers, in which a public random quence is invited into the process, so that the encryption k
ey stream would prent comparatively good randomness under the influence of the public random quence; at the same time, the encryption key stream would show fairly low correlation with the public random quence, becau of the effect of encryption methods, so that it would enjoy good confidentiality. Bad on this thought, we have designed two specific encryption methods which have good characters mentioned above.
Key words: Stream cipher, encryption key stream女人丰胸的方法
一 背景
1.1 密码体制应具备的性质
密码分析者可以对密码体制进行如下攻击:
(1) 唯密文攻击
(2) 已知明文攻击
(3) 选择明文攻击
(4) 选择密文攻击
密码系统的安全性主要由保密性和可靠性衡量。
对算法的保密性的要求主要有:
在已知与密文相对应的明文的情况下,密码分析者要从截取的密文中系统地确定解密变换,在计算上是不可行的。
密码分析者要从截获的密文中确定明文,在计算上是不可行的。六套班子
对算法的可靠性要求有:
在已知与密文相对应的明文的情况下,密码分析者要有规律的确定加密变换,在计算上是不可行的。西药名
D C是m集合中的有效明文,
密码分析者若想有规律地求出密文C',使得(')
K
在计算上不可行的[1]。
为使密码体系具有较好保密性,加密方法须使得明文和密文间的统计规律难以得出,也就是要将明文充分混淆扩散。
1.2 常用密码体制
1.2.1序列密码
序列密码是常用加密方法之一,通信双方用一个随机序列与明文序列进行叠加来产生密文,用同一个随机序列与密文序列进行叠加来恢复明文。
在Vernam密码体制中,如果对不同的明文用不同的密钥进行加密,则这时的Vernam体制就是所谓的“一次一密”密码体制。 “一次一密”密码体制在理论上被认为是不可破译的。但在实际应用中,“一次一密”密码体制要求每传送一个明文,都必须产生一个新的密钥并通过一个安全的信道传送给接收方,这给密钥管理带来了一定的困难。因此,“一次一密”密码体制并不很实用,具有很大的局限性[2]。随着微电子技术和数学理论的发展与完善,基于伪随机序列的序列密码得到了长足的发展和应用。在序列密码中,加密和解密所用的密钥序列大都是伪随机序列[2]。
1.2.2分组密码
利用分组密码对明文进行加密时,需要首先对明文进行分组,每组的长度都相同,然后对每组明文分
别加密得到等长的密文。分组密码的安全性应该主要依赖于密钥,而不依赖于对加密算法和解密算法的保密[2]。
滔滔不绝的近义词二 空中信息加密体系
在现实世界中可以获得真随机序列(如根据放射性衰变、电子设备的热噪音、宇宙射线的触发时间等等),我们将这样的公开随机序列称为MP 序列。通信双方约定一种运算,这种运算可利用不断获取的MP 序列生成具有保密性的新序列,所生成的新序列将被作为密钥序列。我们将双方约定的这种运算叫做明序列加密,生成的新序列称为MC 序列,其中,明序列加密过程中的一些参数是保密的。发方将MC 序列与明文异或可加密,密文经信道传输至收方,收方将MC 序列与密文异或可解密。(如图2-1)
后卫防守
空中加密体制的关键步骤是通过明序列加密生成密钥序列。该体制的本质是序列密码,因此可将序列密码对密钥流的基本要求作为参考:
(1) 极大的周期。 (2) 良好的统计特性。
(3) 不能用级数较小的(可实现长度)线性移位寄存器近似代替,即有很高的线性复杂度。
(4) 用统计方法由密钥序列{i k }提取密钥生成器结构或密钥源的足够信息在计算上是不可能的。[3]
与上述要求中的(1)、(2)相对应,对于空中信息加密体制而言,理想的密钥流(MC 序列)应当不存在周期,其统计特性与MP 序列的统计特性正相关。
同时,空中信息加密体制良好的保密性还依赖于MC 序列与MP 序列之间较低的相关程度。
MP 序列在明序列加密过程中应被充分混淆与扩散,以降低它与MC 序列的相关程度。这与分组密码中对明文混淆与扩散的思想相类似。
空中信息加密体系与现行加密方式的主要区别在于:
(1)引入了公开随机序列MP,为通信双方不断获得随机序列创造条件。
图2-1
(2)明序列加密的算法不一定有相应的解密算法。使用现行加密方式时,发送方对信息加密,接收方则要作相应的解密运算;在明序列加密过程中,双方只需对公开序列MP进行同样的“加密”运算——这使得设计空中信息加密体制的运算方法时不必保证存在相应的解密运算,设计者有了更多可以尝试的方案。
然而应注意,由于攻击者可以获取MP序列并由此入手对密文进行分析,明序列加密方法对MC序列与MP序列间的非相关性要求非常高。也就是说,加密方法必须使分析者在已知MP序列的情况下依然很难求得MC序列。
紫茄子
三 公开随机序列的生成
3.1 依据物理过程
里吉雷欧(Frigerio)等人的真随机数获取 :用一个α粒子放射源和一个高分辨率的计数器做成的装置,在20 毫秒时间内平均记录了24.315个α粒子。当计数为偶数时,便在磁带上记录二进制的“1”。 这个装置每小时可以产生大约6000个31比特(bits)的真随机数。
3.2 根据人们日常生活中的行为
方案一:鼠标法
在每次开机时,用电脑生成伪随机序列列(0或1),按行将显示屏上的晶格编号。此后,追踪鼠标的移动路线,“沿途”记下晶格的号码,即生成了随机数列。可以同时追踪多个电脑的鼠标路径,存入同一存储器。
便秘食谱方案二:股票法
双方选取一些股票,并排序。每隔相等时间刷新一次股价,对于一支股票,股价升记为1,下降记为0。刷新后,再用约定的方式重新对股票进行排序。用此方式随时记录新生成的数列,并存入存储器。
存储器中即得到随机序列。
这里,我们只是提供了一些根据人们活动来设计生成随机序列的方法。其他人们的随机行为包括每天每辆公交车到达中间某站时间的秒数(奇数记为1偶数记为0,下同)、地铁中砖块被踩的次数(单位时间内被踩奇数次的砖标记为1,偶数次的砖标记为0,将所有砖块对应的标记数顺次排列组成序列)等。
值得一提的是,这样的选取随机数的方法还具有一定的隐写功能。MP序列的隐写功能也为空中信息加
密体制增加了一定的安全性。
四 节点-网络操作法
4.1 基本结构:
4.1.1网络结构
加密机是由许多“节点”与“通道”构成的网络。一个节点J连接有若干
条输入通道和若干条输出通道。节点内存有一个多元函数F(每个节点对应的函数通常都是不同的)。在每一时刻,节点都存有一个由m 元数组构成的“状态”——12(,,)a a m ……,a 。
图4-1就是一个与两个输入通道和两个输出通道相连的节点:
4.1.2 节点操作过程:
当一个信息元k x 在某一时刻沿通道传向节点i J 时,i J 将以自身状态12(,,)a a m ……,a 和k x 为自变量,通过存储在i J 的运算法则i f 生成信息元1k x +=12(,,,)i k f a a x m ……,a 。之后,节点按照某种方向判定法来决定将1k x +沿哪一个输出通道输出。接着,节点i J 按照某种法则改变自身状态,成为12(',',')a a m ……,a 。然后,经过该节点操作的信息元就会传入另一节点进行操作。
一个网络中,MP 中的信息元i p 经过多次传输和操作,最终会由某个出口从网络中输出。此时它的取值即可作为MC 序列中相应位 i c 的值。将i p 变换为i c 的操作称为一次“一位操作”,记为()i p i F c =。
以下给出两种具体的实现方式:
4.2方案一:状态同步变换机
4.2.1网络结构:阶梯金字塔网络(如图4-2)
该网络呈阶梯金字塔形,节点分层排列,每个节点都与上层的一个节点相连,并连接下层的两个节点。整个网络有一个入口,2n 个出口(n
为网络的节点
化气行水
图4-1
层数)。其中,最后一层每一个节点连接的两个出口分别对应0和1两个数值。
4.2.2运算法则:
每个节点处存有周期不同的伪随机序列生成器。明序列加密过程开始时,节点i J 以自身生成的伪随机序列i m 中的一个标记点作为起始状态。MP 序列中的一位数x 输入网络后,接收它的节点J x 将与标
记点后的第一位数异或,若异或结果为0,则将x 原沿左侧通道输出该节点;若异或结果为1,将x 沿右侧通道输出该节点。一个操作完成后,所有节点的标记点沿伪随机序列后移一位。 这样,每当x 进入一个节点,系统都进行相应操作,最后,x 将从最下层的一个出口输出,将x 和这个出口对应的值异或,即为MC 序列相应位的值。(在这一步之前,x 的值一直不变。)
将MP 序列中的数逐位由上方入口输入网络,输出后,在MC 序列中记录输出值。然后,再将MC 序列中的下一位输入网络,以此类推,生成MC 序列。
4.2.3伪随机序列生成器的选取:
我们建议对大多数节点,以可生成统计平衡性良好的m 序列的布尔函数为基础,生成伪随机序列。但由于每次操作,所有序列的标记点都同步移位,因此系统会出现周期循环。为扩大系统的周期,可以将m 序列进行改造,使不同节点间周期互素。
4.2.4初始状态的保密:
0 1 0 1 0
101
……………………………………………………………………
图4-2