安全系统中流密码、伪随机数产生方法

文档序号:7930167阅读:399来源:国知局
专利名称:安全系统中流密码、伪随机数产生方法
技术领域
本发明涉及用于安全认证中的伪随机数产生方式,和安全传输中对高速数据流进行加密 的流密码生成方式。
技术背景在数字时代,信息安全一直是人们关注的焦点。在各种信息传送系统中,为了保证参与 信息交换的实体是合法的、有效的,需要对参与实体的身份进行安全认证。例如在军事通信 中需要对对方的身份进行认证,以防止军事情报信息的泄露;在电子商务等互联网环境中, 需要对对方的身份进行鉴别,防止非法分子的恶意攻击和破坏;在智能卡等应用环境中,需 要对接入设备的合法有效性进行认证。同时,对在合法设备之间的数据传输也必须进行加密 保护,防止被第三方窃听、盗取。例如在数字电视领域,在合法的视频源设备与显示设备的 接口间必须进行加密保护,防止影音内容被非法窃取、肆意盗版。在安全系统中,在通信双方进行传输加密的数据之前,要对设备进行身份认证以保证通 信双方的身份都是真实的、合法有效的。如果认证不能获得成功,则不进行数据传输或者不 能对加密的数据进行正确的解密,以让受保护的数据信息不受非法侵害。但是对通信的双方 ,其颁发的数字证书或识别ID都是固定的,在认证过程中交换的数据也需遵循固定的格式和 流程,这就为不法分子进行重复攻击留下了机会。如果,不法分子多次窃听通信双方在认证 过程中传输的数据,就可以分析出通信双方的信息,或者窃取通信数据,伪装成合法设备, 窃取秘密信息。目前,为了增加安全认证系统的安全性,通信双方都会在认证过程中加入伪 随机数,以降低认证过程中的数据重现率,增加不法分子攻击的难度。但是随着计算机技术 的进步,普通的伪随机数产生方法已经不能满足信息安全的要求,不法分子可以利用重放、 假冒、统计等方法进行攻击,其随机性不足以抵抗攻击。 一旦伪随机数的产生方式被破解, 系统将面临被彻底破解的威胁。因此,需要一种安全性更好、更强大的伪随机数产生方式。流密码的情况与伪随机数的情况相同。现在,为了实现对高速数据流进行实时加解密, 传统的分组加密已经变得不合时宜,流密码开始被广泛应用。例如国外的HDCP (宽带数字内 容保护)系统。HDCP用于保护HDMI和DVI接口传输的数字内容,其中使用的加密技术也是流 密码技术。用于HDCP保护的普通流密码、伪随机数生成机制包含三个线性反馈移位寄存器、 S盒子、两个线性变换模块和一个组合输出模块(详见图l)。其中,三个线性反馈移位寄存器LFSR每个时钟触发为S盒子和线性变换模块提供1比特的更新数据。两个轮函数变换,输出 168比特的数据,密钥流输出函数选取其中的部分数据作为输出,经过线性变换,每次脉冲 输出24比特的数据流。HDCP的流密码保护机制包含三个LFSR,输入密钥长度为56比特,对于 目前高速的计算机搜索速度来说,这一长度的密钥并不足以抵抗密钥搜索攻击。另外,HDCP系统已经被证实安全性不高,攻击者只需要大约40台装有HDCP系统的设备, 就可以得到一些系统参数,进而在没有授权的情况下可以任意制造非法设备,而且这些非法 设备不能被合法设备检验出来。而目前绝大多数的流密码、伪随机数产生系统都采用了与 HDCP类似的架构,安全性不足几乎已经成为流密码、为随机数产生系统的一个致命弱点。变换结果称为杂凑值。在密码学中,杂凑函数h的基本特性必须满足找到两个不同的输 入杂凑成同一个杂凑值是计算上不可行的,同时对于一个给定的杂凑值y,找到一个输入x, 是h (x) 二y成立也是计算上不可行的。杂凑函数通常应用在数字签名和数据完整性检査中, 本发明利用杂凑变换的特性以消除数据相关性。发明内容本发明所要解决的技术问题是,提供一种基于杂凑函数的增强型伪随机数、流密码产生 方法。本发明为解决上述技术问题所采用的技术方案是,安全系统中流密码、伪随机数产生方 法,包括以下步骤a、 经过认证后产生共享密钥Ki;b、 将共享密钥Ki输入线性反馈移位寄存器,利用线性反馈移位寄存器对共享密钥Ki进 行置乱,将置乱后的Ki选择输出得到线性反馈移位寄存器输出结果Si;c、 将线性反馈移位寄存器输出结果Si、随机数An和前一流密码序列的部分数据Mi,作 为S盒子与线性变换模块的输入,经过S盒子变换与线性变换,得到S盒子与线性变换模块输 出结果Gi;d、 将S盒子与线性变换模块输出结果Gi输入至输出组合模块,通过特定的组合逻辑进行 位组合与变换,得到输出组合模块输出结果Ci;e、 将输出组合模块输出结果Ci作为生成的流密码序列或伪随机数序列; 其特征在于,对上述步骤中所述共享密钥Ki、线性反馈移位寄存器输出结果Si、随机数An、前一流密码序列的部分数据Mi、 S盒子与线性变换模块输出结果Gi、输出组合模块输出 结果Ci中任意一个或多个进行杂凑变换。本发明的有益效果是,使生成的流密码、伪随机数具有的单向特性,提高了伪随机数、流密码的安全性。


图l是现有的流密码、随机数产生结构; 图2是本发明流密码、伪随机数产生结构l; 图3是本发明流密码、伪随机数产生结构2; 图4是本发明流密码、伪随机数产生结构3; 图5是本发明流密码、伪随机数产生结构4;图6是本发明流密码、伪随机数产生结构5;图7是本发明流密码、伪随机数产生结构6。
具体实施方式
如图1所示,现有的流密码、随机数产生方法如下a、 经过认证后产生共享密钥Ki;b、 将共享密钥Ki输入线性反馈移位寄存器,利用线性反馈移位寄存器对共享密钥Ki进行置乱,将置乱后的Ki选择输出得到线性反馈移位寄存器输出结果Si;c、 将线性反馈移位寄存器输出结果Si、随机数An和前一流密码序列的部分数据Mi,作 为S盒子与线性变换模块的输入,经过S盒子变换与线性变换,得到S盒子与线性变换模块输出结果Gi;d、 将S盒子与线性变换模块输出结果Gi输入至输出组合模块,通过特定的组合逻辑进行位组合与变换,得到输出组合模块输出结果Ci;e、 将输出组合模块输出结果Ci作为生成的流密码序列或伪随机数序列;本发明在流密码、伪随机数的产生过程或使用过程中使用杂凑函数,对流密码、伪随机数产生过程中的输入初始数据(共享密钥Ki),或中间过程数据(线性反馈移位寄存器输出 结果Si、 S盒子与线性变换模块输出结果Gi),或输出流密码序列、伪随机数(输出组合模 块输出结果Ci)进行杂凑变换,以达到提高流密码、伪随机数产生方式安全性的目的。可对共享密钥Ki、线性反馈移位寄存器输出结果Si、随机数An、前一流密码序列的部分 数据Mi、 S盒子与线性变换模块输出结果Gi、输出组合模块输出结果Ci中任意一个或多个进 行杂凑变换安全系统完成认证,产生共享密钥Ki。将共享密钥Ki,或者再加上一个可选择参数Vi, 输入线性反馈移位寄存器LFSR。利用LFSR对Ki、 Vi进行置乱,然后将置乱后的Ki选择输出, 得到线性反馈移位寄存器输出结果Si。在这一过程中可以先对Ki、 Vi进行杂凑变换,如图2所示,再将变换结果Xi作为LFSR的输入。这样可以使线性反馈移位寄存器输出结果Si与共享 密钥Ki的相关性大大降低,而且只要Ki、 Vi发生很小的变化,输出结果Si将发生很大的变化 ,要从Si得到Ki在计算上是不可行的。当然,也可对Ki或Vi单独进行杂凑变换。将线性反馈移位寄存器输出结果Si输入到S盒子与线性变换模块中。在这一过程中可以 先对Si进行杂凑变换,如图3所示,再将变换结果Xi作为S盒子与线性变换模块的输入。经过 进一步的变换得到一个与Si几乎不相关的S盒子与线性变换模块输出结果Gi。当然,如图4所 示,也可将任意随机数An和前一流密码序列的部分数据Mi进行杂凑变换,得到变换结果Xi, 将Xi作为S盒子与线性变换模块的输入,经过一系列的S盒子变换或线形变换,得到S盒子与 线性变换模块输出结果Gi。 S盒子变换可以是一个,也可以是多个,可以是多重S盒子变换, 也可以是多个S盒子并行变换。线性变换可以是矩阵运算,也可以行列变换,甚至移位变换将S盒子与线性变换模块输出结果Gi输入至输出组合模块,通过特定的组合逻辑进行位 组合与变换,得到输出组合模块输出结果Ci。在此过程中,可将Gi先进行杂凑变换,并将变 换结果Xi输入至输出组合模块,如图5所示;也可将组合模块输出结果Ci直接进行杂凑变换 ,将变换结果Xi作为生成的流密码序列或伪随机数序列,如图6所示。如图7所示,组合模块输出结果Ci作为流密码序列或伪随机数序列输出,同时将Ci进行 杂凑变换后,将变换结果Xi的结作为下一次流密码、伪随机数产生器的种子。当然,还可对上述的任意基于杂凑变换的随机数、流密码产生方法组合使用,进一步降 低前一个流密码序列与后一个流密码序列的相关性。根据系统对流密码、伪随机数安全性的要求,使用者可以直接利用组合模块输出结果 Ci作为流密码来进行加解密,或作为伪随机数以加强认证过程的安全性。对于特殊场合的流 密码、伪随机数的应用,如需要对流密码、伪随机数产生器的初始密钥进行更新的场合。可 以存储l个或几个流密码、伪随机数,然后利用杂凑函数对存储的流密码进行杂凑变换,将 变换后的结果作为新的流密码序列的初始密钥,使整个流密码加密或扰乱机制更加有效。在以上的流密码、伪随机数产生过程中,发送设备和接收设备必须成功完成认证,并产 生相同的共享密钥。然后发送端和接收端就可以利用基于杂凑函数的流密码、伪随机数产生 算法在两个设备中生成相同的流密码、伪随机数,为数据加解密或下一步认证建立基础。基 于杂凑函数产生的流密码、伪随机数具有更好的随机性,使流密码序列中两个相邻数或两个 相邻的流密码序列的相关性大大降低。同时,由于杂凑函数的单向特性,使得利用截取的流 密码去破解流密码产生算法,变得不可行,这大大加强了流密码、伪随机数产生的安全性。在认证过程中或保密数字内容传输中,安全的流密码、伪随机数产生算法对可以大大增强系 统的安全性。发送设备和接收设备利用流密码、伪随机数对传输的数据进行加密和解密,即 使部分流密码、伪随机数被截获,也可以保证系统的安全。具体操作实现时,改算法可以根据实际情况的不同,灵活应用。首先设计选定一种流密 码、伪随机数产生算法,可以是已有的各种常规算法,也可以是自行设计的新算法。然后选 择合适的杂凑算法。如上所述,杂凑算法与流密码、伪随机数产生算法的组合可以是很灵活 的。为简便起见,本实施实例选用了常规的流密码、伪随机数产生算法和NIST所制定的 SHA-256算法。实施例如图2所示流密码、伪随机码生成流程为例1、 假设设备已经完成完全认证,并产生共享密钥K, Ki=0xba7816bf8f01cfea414140de5dae2223 Vi=0xb00361a396177a9cb410ff61f20015ad ;2、 把K进行杂凑变换,得到Xi,3、 将Xi作为LFSR的输入,经过若干个时钟的运算后,得到输出Si,4、 将LFSR的输出Si,作为S盒子与线性变换模块的输出,经变换后得到输出Gi, Gi=0xf7df34725cc33d;5、 将Gi作为输出组合逻辑,得到如下流密码序列,每一个时钟,同步输出l个流密码, Cf0x6e345142C2=0xel5d4409 C3=0xdd720945 C4=0x45d5c078 C5=0xlbf6b82bC3oo=Oxcl31caGl C30l=0xc5cf a3%流密码的理论周期为232个,故此流密码序列的长度可以在232周期内,由使用者随意选择;6、 按一定的规则截取流密码序列中的部分流密码,作为下一次流密码更新的初始向量 128位的Mi,Mi=0xccff36493fe4c391cl31ca61c5fa396;7、 利用前一步产生的Mi和外部生成的128位的随机数An,作为下一个流密码序列的初始 向量和初始密钥,并根据密钥更新控制信号生成新的流密码序列、伪随机码序列;8、 重复第6步,第7步产生任意长度的流密码序列、伪随机码序列。
权利要求
1. 安全系统中流密码、伪随机数产生方法,包括以下步骤a、经过认证后产生共享密钥Ki;b、将共享密钥Ki输入线性反馈移位寄存器,利用线性反馈移位寄存器对共享密钥Ki进行置乱,将置乱后的Ki选择输出得到线性反馈移位寄存器输出结果Si;c、将线性反馈移位寄存器输出结果Si、随机数An和前一流密码序列的部分数据Mi,作为S盒子与线性变换模块的输入,经过S盒子变换与线性变换,得到S盒子与线性变换模块输出结果Gi;d、将S盒子与线性变换模块输出结果Gi输入至输出组合模块,通过特定的组合逻辑进行位组合与变换,得到输出组合模块输出结果Ci;e、将输出组合模块输出结果Ci作为生成的流密码序列或伪随机数序列;其特征在于,对上述步骤中所述共享密钥Ki、线性反馈移位寄存器输出结果Si、随机数An、前一流密码序列的部分数据Mi、S盒子与线性变换模块输出结果Gi、输出组合模块输出结果Ci中任意一个或多个进行杂凑变换。
2.如权利要求l所述安全系统中流密码、伪随机数产生方法,其特征 在于,步骤b中,还将一个可选择参数Vi输入线性反馈移位寄存器。
3.如权利要求2所述安全系统中流密码、伪随机数产生方法,其特征 在于,步骤b中,将可选择参数Vi经过杂凑变换后输入线性反馈移位寄存器。
4.如权利要求l所述安全系统中流密码、伪随机数产生方法,其特征 在于,所述S盒子变换为多重S盒子变换或多个S盒子并行变换。
5.如权利要求1或4所述安全系统中流密码、伪随机数产生方法,其 特征在于,所述线性变换为矩阵运算、行列变换或移位变换。
全文摘要
本发明涉及安用于安全认证中的伪随机数产生方式,和安全传输中对高速数据流进行加密的流密码生成方式。本发明提供一种基于杂凑函数的增强型伪随机数、流密码产生方法。安全系统中流密码、伪随机数产生方法,在常规的流密码、伪随机数产生流程中将共享密钥Ki、线性反馈移位寄存器输出结果Si、随机数An、前一流密码序列的部分数据Mi、S盒子与线性变换模块输出结果Gi、输出组合模块输出结果Ci中任意一个或多个进行杂凑变换。本发明使生成的流密码、伪随机数具有的单向特性,提高了伪随机数、流密码的安全性。
文档编号H04L9/18GK101242265SQ200810300498
公开日2008年8月13日 申请日期2008年3月7日 优先权日2008年3月7日
发明者余有勇, 勇 陈 申请人:四川虹微技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1