CN100459493C - 流密码生成器、随机数生成方法、加密系统及加密方法 - Google Patents

流密码生成器、随机数生成方法、加密系统及加密方法 Download PDF

Info

Publication number
CN100459493C
CN100459493C CNB2005101360005A CN200510136000A CN100459493C CN 100459493 C CN100459493 C CN 100459493C CN B2005101360005 A CNB2005101360005 A CN B2005101360005A CN 200510136000 A CN200510136000 A CN 200510136000A CN 100459493 C CN100459493 C CN 100459493C
Authority
CN
China
Prior art keywords
lfsr
bits
output
key
module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CNB2005101360005A
Other languages
English (en)
Other versions
CN1835586A (zh
Inventor
姜正涛
王育民
葛建华
詹阳
李新国
田海博
谭示崇
范欣欣
袁素春
帅红宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sichuan Changhong Electric Co Ltd
Original Assignee
BEIJING PUAODE DITIAL TECHNOLOGY Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by BEIJING PUAODE DITIAL TECHNOLOGY Co Ltd filed Critical BEIJING PUAODE DITIAL TECHNOLOGY Co Ltd
Priority to CNB2005101360005A priority Critical patent/CN100459493C/zh
Publication of CN1835586A publication Critical patent/CN1835586A/zh
Application granted granted Critical
Publication of CN100459493C publication Critical patent/CN100459493C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开一种流密码生成器,其具有三个线性反馈移位寄存器和三线性变换模块,其中所述三个线性变换模块分别对三个线性反馈移位寄存器的数进行置乱;三个状态读取列表模块A、B和C分别读取三个线性反馈移位寄存器中预定位的数据;线性变换模块F,其中该F输入从三个状态读取列表模块输出的数据反馈压缩并置乱后输出;查表变换模块D,对从一状态读取列表模块输出的数据查表压缩后输出;输出模块,将从F、D和C输出的数据压缩后输出数据。在两端分别设置流密码生成器,可对其间传输的数据流进行同步对称加密,且具有较高的加密安全性。

Description

流密码生成器、随机数生成方法、加密系统及加密方法
技术领域
本发明涉及数字传输中的数据加密技术,特别是对称加密技术,具体而言涉及一种用于对数据流进行同步加密的流密码生成器及一种使用该流密码生成器进行同步对称加密的系统及方法。该流密码生成器还可用于生成随机数。
背景技术
自从电视这一以娱乐为主要目的的电子载体出现以来,给人类的日常生活带来了深刻的影响,我们中的每个人几乎每天都会或多或少地从电视中获得我们期望知晓的内容或消息,这些内容国家乃至世界大事或涉及方方面面的生活琐事,的确电视已经成为我们生活中不可或缺的一部分。
随着科技的进步以及生活水平的提高,自从广播电视诞生之日起,已经经过了多次技术上的革新,而今,电视正在由彩色电视向多媒体、高清晰度方向发展,即从模拟走向数字化的变革。电子技术数字化,被认为是信息高速公路发展中的一个重要组成部分,已引起了世界各国的重视。电视技术的新革命时机已经到来,我们正在以积极的态度迎接它。
数字电视以付费电视形式提供高清晰、更加丰富的播放内容,为起到维护商家和媒体播放者的利益,有必要对传输中的数字电视数据提供一定的版权保护,维护一个公平的播放和收视环境。
加密技术对数字信息产品的版权保护历来起着举足轻重的作用,它也是为数字产品提供机密性保护的一种有效和实用的技术。一般而言,对于有较大数据量的数据信息,通常选用是对称加密技术,再者,由于数字电视传输的数据要求实时性,流密码因其在加解密速度上的优势,成为数字电视加密技术方案的首选。
因为使用流密码方案加密速度快,其适合传输数据量比较大并且有实时传输要求的机制,这样流密码方案就很自然地应用到数字电视保护系统中来。国外已经相应制定了HDCP(宽带数字内容保护),DTCP(数字传输内容保护),PODCP(POD拷贝保护)规范或标准。HDCP用于保护HDMI和DVI接口传输的数字内容,其中使用的加密技术也是流密码技术。用于HDCP保护的密码机制包含四个模块:hdcpRngCipher,hdcpBlockCipher,hdcpStreamCipher,hdcpRekeyCipher.其中,三个线性反馈移位寄存器LFSR每个时钟触发为hdcpBlockCipher提供1比特的更新数据。hdcpBlockCipher包含两个轮函数变换,输出168比特的数据,密钥流输出函数选取其中的部分数据作为输出,经过线性变换,每次脉冲输出24比特的数据流。HDCP的流密码保护机制包含三个LFSR,输入密钥长度为56比特,对于目前高速的计算机搜索速度来说,这一长度的密钥并不足以抵抗密钥搜索攻击。
另外,HDCP系统已经被证实安全性不高,攻击者只需要大约40台装有HDCP系统的设备,就可以得到一些系统参数,进而在没有授权的情况下可以任意制造非法设备,而且这些非法设备不能被合法设备检验出来。
鉴于以上不足,为提高加密干扰机制的安全性,给出一种基于公钥认证的数据流加密保护方案.该方案的特点是密钥规模大(128比特),其内部状态更新数据快,可以有效地用于数字电视保护系统。
发明内容
为克服上述现有技术的密钥过短的缺点,本发明的目的在于提供一种具有较长密钥且更新速度较快的流密码生成技术。
本发明的一方面,提供了一种流密码生成器,包括:一个输入模块,用于输入密钥及向量;三个线性反馈移位寄存器LFSRα、LFSRβ、LFSRγ,从输入模块输入密钥;三个线性变换模块T1、K、L,从输入模块输入向量;其中,所述T1在输入过程及封闭循环运行过程用输入的向量和从下述的输出模块G反馈的数对LFSRα中的密钥进行置乱,以及所述的K在输入过程用输入的向量对LFSRβ中的密钥进行置乱,以及所述L在输入过程用输入的向量对LFSRγ中的密钥进行置乱;三个状态读取列表模块A、B和C,其分别从LFSRα、LFSRβ和LFSRγ的预定位读取并排列成预定位的数输出,所述预定位满足较大的差集;一个线性变换模块F,对从A、B和C输出的数,进行压缩及反馈置乱后输出;一个查表压缩变换模块D,将从B输出的数查表压缩后输出;一个输出模块G,将从F、D和C输入的数压缩成预定位的数输出,其中该输出在输入过程和封闭循环运行过程反馈到T1;一控制模块,其对上述输入模块、三个线性反馈移位寄存器LFSRα、LFSRβ、LFSRγ和三个线性变换模块T1、K、L以及状态读取列表模块A、B和C,线性变换模块F,输出模块G的运行进行协调控制。
其中,在输入过程中:LFSRα先将预定位的数异或后反馈到T1,然后T1对LFSRα反馈输入的数移预定位,并用G反馈的数和从输入模块输入的向量对其作异或运算,然后将运算结果回输到LFSRα左端,且LFSRα右移8位;LFSRβ将预定位的数反异或后馈到其左端,然后右移一位,所述K用输入模块输入的向量对LFSRβ左端的数位作异或运算,然后LFSRβ循环右移8位;LFSRγ将预定位的数异或后反馈到其左端,然后右移一位,所述L用从输入模块输入的向量对LFSRγ左端数位作异或运算,然后LFSRγ循环右移8位;所述的A、B、C、D、F模块按预定的方式工作;所述的G输出的述反馈到T1。
在封闭循环运行过程中:LFSRα将预定位的数异或后反馈到T1,然后T1对LFSRα反馈输入的数移预定位,并用G反馈的数对其作异或运算,然后将运算结果回输到LFSRα左端,且LFSRα右移8位;LFSRβ将预定位的数异或后反馈到其左端,然后右移一位,然后LFSRβ循环右移8位;LFSRγ先将预定位的数异或后反馈到其左端,然后右移一位,然后LFSRγ循环右移8位;所述的A、B、C、D、F模块按预定的方式工作;所述的G输出的数反馈到T1。
在对外输出过程中:LFSRα先将预定位的数异或后反馈到T1,然后T1对LFSRα反馈输入的数移预定位,然后将运算结果回输到LFSRα左端,然后LFSRα右移8位;LFSRβ先将预定位的数异或后反馈到其左端,并右移一位,然后LFSRβ循环右移8位;LFSRγ先将预定位的数异或后反馈到其左端,并右移一位,然后LFSRγ循环右移8位;所述的A、B、C、D、F模块按预定的方式工作;所述的G输出的数反馈到T1。
本发明的另一方面,提供一种随机数的生成方法,包括:流密码生成器读入预先埋入的密钥及向量;然后封闭循环运行;截取对外输出的数据流生成任意长度的随机数。
本发明的另一方面在于提供了一种同步对称加密系统,特征在于:在加密端和解密端分别设置一流密码生成器;在加密端还包括一认证单元;其中
所述的同步对称加密系统的工作过程包括:
解密端的流密码生成器读入预先埋入的初始密钥和初始向量,封闭循环运行,生成随机数和重新认证的密钥及向量,然后发出认证请求并将该随机数发送到认证单元;
加密端的流密码生成器根据认证请求,读入预先埋入的初始密钥和初始向量,封闭循环运行,生成随机数和重新认证的密钥及向量,将随机数发送到认证单元;
认证单元根据认证请求,读取两端生成的随机数进行认证,如认证通过则发出认证通过指示并用这两个随机数生成中间密钥及向量;
两端的流密码生成器根据认证通过指示读入该中间密钥及向量,封闭循环运行预定个脉冲,生成场更新密钥及校验向量和密钥流;其中加密端用密钥流对明文数据流进行加密生成密文流,及解密端用密钥流对的密文流进行解密。
当生成预定量的密钥流后,两端的流密码生成器读入所述的场更新密钥,封闭循环运行预定数个脉冲,生成下一场更新密钥及校对向量和密钥流。
还包括:当传输中断时,解密端的流密码生成器读入重新认证密钥及向量,封闭循环运行,生成随机数和下个重新认证密钥及向量;
解密端发出重新认证请求,认证单元读取随机数;
加密端流密码生成器根据重新认证请求,读入重新认证密钥及向量,封闭循环运行,生成随机数,认证单元读取该随机数进行认证;
认证单元根据认证请求,用两端生成的随机数进行认证,如认证通过,发出认证通过指示,并生成中间密钥及向量;
两端的流密码生成器根据认证通过指示读入生成中间密钥及向量,封闭循环运行生成场更新密钥及校验向量和密钥流,其中加密端用密钥流对明文数据流进行加密生成密文流,而解密端用密钥流对的密文流进行解密。
对于本发明,决定密钥流的初始密钥和初始向量为128比特,其大大的高于现有技术中的56比特的种子密钥,因此加密具有更高的安全性。
附图说明
图1A所示为流密码生成器的结构示意图;
图1B所示为线性变换模块T1的结构图;
图1C所示为线性变换模块K的结构图;
图1D所示为线性变换模块L的结构图;
图2A所示为同步对称加密解密过程中的解密端流密码生成器的工作流程图;
图2B所示为同步对称加密解密过程中的加密端流密码生成器的工作流程图;
图2C所示为启动子程序的流程图;
图2D所示为密钥生成子程序的流程图;
图2E所示为场密钥更新子程序流程图;
图2F所示为重新认证子程序流程图;
图3所示为线性变换模块F中FF2模块的示意图;
图4A所示为查表压缩变换模块D的结构示意图;
图4B所示为查表变换M的结构图;
图4C所示为查表变换H的结构图;
图5所示为输出模块G的逻辑示意图表;
图6所示状态读取列表模块A的结构示意图;
图7所示为同步对称加密系统的结构示意图;
图8所示为认证单元的结构示意图。
具体实施方式
本发明涉及一种流密码生成器,用于生成与时钟触发同步的24比特的流密码(密钥流)。下面结合附图对流密码生成器进一步的描述。
<流密码生成器>
如图1所示,本发明的流密码生成器包括:
三个线性反馈移位寄存器LFSRα、LFSRβ和LFSRγ。其中,LFSRα为64比特,特征多项式为f(x)=x8+x6+x5+x+1;LFSRβ为35比特,特征多项式为f(x)=x35+x30+x22+x11+x6+1;LFSRγ共有31比特,其特征多项式为f(x)=x31+x13+x7+x6+x3+1。
三个线性变换模块T1、K和L,其中T1对LFSRα的数据进行反馈置乱,线性变换K对LFSRβ的数据进行置乱,L对LFSRγ的数据进行置乱。
一个输入模块,用于向所述的LFSRα、LFSRβ、LFSRγ和三个线性变换模块T1、K和L分别输入密钥及向量值。
三个状态读取列表模块A、B和C,其中A读取LFSRα中预定位的数据,B读取LFSRβ中预定位的数据,C读取LFSRγ中预定位的数据。线性变换模块F,其中F输入从A、B和C输出的数据,经反馈压缩及置乱后输出24比特的数据。
一查表压缩变换模块D,对从B输出的数据,经查表压缩后输出16比特的数据。一输出模块G,对从上述的F、D和C输出的数据压缩后每个时钟触发输出24比特的数据流。
一存储/截取模块,该存储/截取模块用于存储预先埋入的初始密钥及初始向量,以及用于截取和存储运行中生成的随机数、重新认证密钥及向量、场更新密钥。
一控制单元,用于协调各组成部分的运作,并控制整个流密码生成器的运行。
上述的各组成单元在时钟脉冲触发下进行动作,初始状态下的寄存器的缺省值为零。同时,各组成部分之间通过总线进行数据传输。
上述的流密码生成器的一个基本的工作过程包括:(1)输入过程:从密钥生成模块或从存储/截取模块读入密钥或向量,其中128比特密钥用一个脉冲触发分别输入到三个线性反馈移位寄存器LFSRα、LFSRβ和LFSRγ,以及128比特的向量是通过6个时钟脉冲分别输入三个线性变换模块T1、K和L,此时输出模块G对外无输出,其24比特的输出数据反馈到线性变换模块T1中;所述的A、B、C、D、F模块按预定的方式工作;(2)封闭循环运行过程:此时输入模块无数据输入,输出模块G对外也无输数据出,G的24比特输出的数据反馈到线性变换模块T1中;而所述的A、B、C、D、F等模块在预定方式下工作。(3)输出过程:此时输入模块无数据输入,所述的A、B、C、D、F等模块在预定方式下工作;输出模块G对外输出24比特的数据流。
实施例1
线性反馈移位寄存器LFSRa,其按字节进行移位操作,有64位。其预定位的8比特数串行输出并经异或运算(即这些8比特的串模2相加),作为结果的8比特τ反馈到线性变换模块T1中。
其中,T1是一线性变换模块,其输出为8比特。T1的结构如图1B所示:包括三个相互独立的部件T1A、T1B、T1C,和一选择开关。
T1A部件由读入单元、调整单元和运算单元等3部分组成。在输入过程,该读入单元从总线读入LFSRa反馈的8比特τ、输出模块G的输出G2(8比特)、G1(8比特)、G0(8比特)和8比特输入的向量IV3k+2(k=0,1,...,4,五轮输入);该调整单元利用调整数据线排列顺序的方法将读入的数据重新调整数据的比特顺序,形成长度都是8比特的5个数据(τ>>>3)、G2、(G1>>>2)、G0、IV3k+2;该运算单元利用异或运算将上述5个数据进行异或运算,其逻辑表达式为:T1=[(τ>>>3)⊕G0⊕(G1>>>2)⊕G2⊕IV3k+2],其中τ>>>3表示LFSRα反馈的8比特τ循环右移3位的值,G1>>>2表示变换G的输出G1循环右移两位的值,⊕表示求异或运算,公式所得即T1A部件的最终输出的值。
T1B部件由读入单元、调整单元和运算单元等3部分组成。在封闭循环运行过程中,该读入单元读入LFSRα反馈的8比特τ、输出模块G的输出G2(8比特)、G1(8比特)、G0(8比特);该调整单元利用调整数据线排列顺序的方法将读入的数据重新调整数据的比特顺序,形成长度都是8比特的4个数据(τ>>>3)、G2、(G1>>>2)、G0;运算单元利用异或运算器将上述4个8比特数据按比特进行异或运算,逻辑运算式为T1=[(τ>>>3)⊕G0⊕(G1>>>2)⊕G2],其中G1>>>2表示G1右移2位的值,如G1为0234567则G1>>>2表示67012345,所得的值即T1B部件的输出。
T1C部件由读入单元和调整单元2部分组成。在对外输出过程中,读入单元从数据总线读入LFSRα反馈的8比特τ;该调整单元利用调整数据线排列顺序的方法将读入的数据重新调整数据的比特顺序,形成长度是8比特的数据,逻辑运算式为T1=[τ>>>3],所得的值即T1C部件的输出。
上述的三个独立部件T1A、T1B、T1C分别对应于输入过程、封闭循环运行过程、输出过程等三个阶段。通过所述的选择开关根据系统控制单元给出的选择信号在不同的阶段分别将其中某一对应部分选择作为线性变换模块T1的工作单元,该单元的输出作为线性变换模块T1的输出。这里的G2(8比特)、G1(8比特)、G0(8比特)是输出模块G的24比特输出的不同段,其中G1为G0=g7g6g5g4g3g2g1g0,G1为G1=g15g14g13g12g11g10g9,G2为G2=g23g22g21g20g19g18g17g16。
其中,在输入过程:LFSRα通过一个脉冲输入64个比特的密钥,然后将预定位的数异或反馈到T1,然后T1对LFSRα反馈输入的数循环右移3位,并用G反馈的数和从输入模块输入的向量对其作异或运算,然后将运算结果回输到LFSRα的左端,然后LFSRα右移8位;
在封闭循环运行过程:LFSRα将预定位的数异或反馈到T1,然后T1对LFSRα反馈输入的数τ循环右移3位,并用G反馈的数对其作异或运算,并将运算结果回输到LFSRα左端,然后LFSRα右移8位;
在对外输出过程:LFSRα将预定位的数异或反馈到T1,然后T1对LFSRα反馈输入的数τ循环右移3位,并将运算结果回输到LFSRα左端,然后LFSRα右移8位。
实施例2
线性反馈移位寄存器LFSRβ有35比特,其在脉冲触发下移位操作。在输入过程,LFSRβ先通过一个脉冲读入33比特的密钥,此过程中:将其预定位的数(如第1、7、13、23、31位)经异或运算后(即将这些位输出的8比特的数进行2进制相加)反馈到其左端,并右移1位,然后由K对其左端的8位进行异或运算,然后循环右移8位。在封闭循环运行和对外输出过程,LFSRβ先将预定位的数异或反馈到其左端,并右移1位,然后循环右移8位。在封闭循环运行和对外输出过程:将其预定位的数经异或运算后(即将这些位输出的8比特的数进行2进制相加)反馈到其左端,并右移1位,然后循环右移8位。
K的结构组成如图1C所示:包括读入单元、调整单元、运算单元、写入单元和一选择开关。线性变换模块K在输入过程中,该选择开关用于对K的工作状态进行选择为”“ON”,此时通过5个脉冲由输入模块输入5个8比特的向量IV3k+1(其中k=0,1,...,4)并由读入单元读入LFSRβ经1比特移位后的左端8比特;该调整单元利用调整数据线排列顺序的方法将读入的数据重新调整数据的比特顺序,形成长度都是8比特的两个数据;该运算单元利用异或运算器将上述2个数据按比特进行异或运算,其逻辑表达式为:K=K=[β34β33β32β31β30β29β28β27⊕IV3k+1],公式所得即K的输出;所述写入单元将运算结果写入到LFSRβ中的左端8位,同时LFSRβ循环右移8位。在封闭循环运行过程和对外输出过程,K无向量输入,其选择开关对K的工作状态选择为“OFF”,K不对LFSRβ循环移位反馈后的数据进行操作,而是LFSRβ自行先右移1位,然后循环右移8位。
<实施例3>
线性反馈移位寄存器LFSRγ共有31比特,其在脉冲触发下移位操作。在读入过程,LFSRγ通过一个脉冲读入31比特的密钥,将其预定位的数(如第1、4、7、8、14的数)经异或运算后(即将这些位输出的8比特的数进行2进制相加)反馈到其左端,并右移1位,然后由L对其左端的8位进行异或运算,然后循环右移8位。在封闭循环运行和对外输出过程,LFSRγ先将预定位的数异或反馈到其左端,并右移1位,然后循环右移8位。在封闭循环运行和对外输出过程:将其预定位的数经异或运算后(即将这些位输出的8比特的数进行2进制相加)反馈到其左端,并右移1位,然后循环右移8位。
线性变换模块L的结构组成如图1D所示:包括读入单元、调整单元、运算单元和一选择开关。在输入过程,该选择开关用于对K的工作状态进行选择为“ON”,此时读入LFSRγ经1比特移位后的左端8比特和6个8比特的向量IV3k(k=0,1,...,5);该调整单元利用调整数据线排列顺序的方法将读入的数据重新调整数据的比特顺序,形成长度都是8比特的两个数据;该运算单元利用异或运算器将上述2个数据按比特进行异或运算,其逻辑表达式为:L=[r30r29r28r27r26r25r24r23⊕IV3k],公式所得即L的输出;所述写入单元将运算结果的值输入到LFSRγ左端8位中。
在封闭循环运行过程和对外输出过程,K无向量输入,其选择开关对L的工作状态选择为“OFF”,L不对LFSRγ循环移位反馈后的数据进行操作。
<实施例4>
图1A中的状态读取列表模块A、B和C,其每个时钟触发分别从LFSRα,LFSRβ和LFSRγ中分别读取32,24和16比特。并且,读取的位置应满足比较大的差集,并减少两次时钟触发列表中相同元素的数量。
具体如图6D所示,状态读取列表模块A,包含一个读出单元(用于从LFSRα中读取32比特数据)、一个排列组合单元(用于将32比特变量重新调整排列顺序)、一个由寄存器组成的输出单元(用于暂存选择单元的输出,并向下一级模块输出)。
状态读取列表模块B,包含一个读出单元(用于从LFSRβ中读取24比特数据)、一个排列组合单元(用于将24比特变量重新调整排列顺序)、一个由寄存器组成的输出单元(用于暂存选择单元的输出,并向下一级模块输出)。
状态读取列表模块C,包含一个读出单元(用于从LFSRγ中读取16比特数据)、一个排列组合单元(用于将16比特变量重新调整排列顺序)、一个由寄存器组成的输出单元(用于暂存选择单元的输出,并向下一级模块输出)。
另外,如图1A所示,状态读取列表模块A的输出32比特作为线性变换模块F的输入之一,状态读取列表模块B的24比特输出分别作为线性变换模块F和查表压缩变换模块D的输入,状态读取列表模块C的16比特输出作为线性变换模块F的输入和输出模块G的输入。其中查表压缩变换模块D包括两个并行的查表变换,D的16比特输出作为输出模块G的输入之一。线性变换模块F的24比特输出作为输出模块G的输入之一。下文将详细描述线性变换模块F和查表压缩变换模块D的运算过程。
<实施例5>
线性变换模块F具有两个主要的模块,第一模块FF1和第二模块FF2,各自的主要运算为:
第一模块FF1,其是把从状态读取列表模块A读入的32比特,从B读入的24比特和从C读入的16比特以及线性变换模块F自身的24比特线性的压缩变换为适于FF2输入的24比特,压缩后的24比特用F0’F1’F2’表示,其中F0’为f7f6f5f4f3f2f1f0,F1’为f15f14f13f12f11f10f9f8,F2’为f23f22f21f20f19f18f17f16。
另外第二模块FF2,其对FF1得到的24比特进一步置乱、混淆,提高流密码生成器的非线性复杂度。如图3A所示,FF2包括两个非可逆线性变换模块M0、M1,FF1向FF2输入的24比特F2’F1’F0’(f’23f’22...f’1f’0)分成两个12比特,分别记为F”0=f’0f’15f’7f’2f’22f’19f’13f’5f’17f’23f’11f’9和F”1=f’20f’3f’14f’21f’4f’18f’6f’1f’16f’8f’12f’10。其中,F”0和F”1分别和两个线性变换的矩阵M0和M1作矢量乘法运算,得到两个8比特的输出,即:F’0=F”0×M0和F’1=F”1×M1。
另外,第二模块FF2包括4个并联的S-盒(S3S2S1S0),FF1模块输出的F2’段的8比特作为S-盒的输入,另外S-盒由FF1输出的F1’的最低两个比特(f9f8)控制,S盒查表变换一共输出为8比特,用F’2表示。这些S-盒查表变换的存在有效防止特殊密钥(如全0,全1)造成的弱密钥。对每一个表Si(i=0,1,2,3),输出的值是均匀分布的,输出差分的概率也是相等的,这样差分分析不能得到密钥f9f8的信息。
矩阵M0,M1的每行中至少有5个比特为1,所以每改变1比特输入影响输出8比特中的至少5比特。因为矩阵M0,M1的每列中至少有7个比特为1,所以结果中的每1比特至少受12比特中的7比特影响。这样增加了分析的难度,并且S-盒输出的8比特和非可逆线性变换输出的两个8比特,三组数据交替循环变换,加速了置乱过程。
经过以上的S-盒查表变换和两个非可逆线性变换M0、M1的输出记为F’2F’1F’0,该输出经循环左移8位后作为线性变换模块F的24比特输出,记为F2F1F0。
<实施例6>
状态读取列表模块B的24比特输出作为查表压缩变换模块D的输入。D包括两个并行的查表变换,通过查表变换把状态读取列表模块B的24比特输出进一步压缩为16比特的输出,并作为输出模块G的其中一个16比特输入。
查表压缩变换模块D的组成结构:两个并行的查表运算模块M、H,从状态读取列表模块B输入的24比特的高位16比特经过一个查表运算模块M输出8比特作为查表压缩变换模块D的最终输出的高位8比特;从B输入的24比特的低位8比特在另外两比特(D从B输入的24比特的高位2比特b23b22)的控制下,经查表运算模块H输出8比特,作为D最终输出的低位8比特。
查表运算模块M,如图4B所示,包含一个读入单元(用于从模块B的输出中读取其中的16比特数据)、一个排列组合单元(用于将16比特数据重新排列顺序)、一个存储器(事先在其中特定单元存放制定的数值)。运行过程:利用读入单元从B中读取16比特数据,经过排列组合单元将此16比特数据重新排列顺序,然后作为读地址信号去从存储器中读取(长度为8比特的)数据,此数据即为查表压缩变换模块D的最终输出的高位8比特。
查表运算模块H,如图4C所示,包含一个读入单元(用于从模块B的输出中读取其中10比特数据)、一个排列组合单元(用于将16比特数据重新排列顺序)、一个存储器(事先在其中特定单元存放制定的数值)。运行过程:利用读入单元用于从模块B中读取10比特数据(b23b22和b7b6 b5b4 b3b2b1b0),经过排列组合单元将此10比特数据重新排列顺序,然后作为读地址信号去从存储器中读取(长度为8比特的)数据,这个从存储器中读出的数据即为查表压缩变换模块D的最终输出的高位8比特。
综上,查表压缩变换模块D的输出为B5B4B3B2 B11 B10 B01 B00,上述D的逻辑过程如图4A的框图所示。
<实施例7>
输出模块G的输入包括线性变换模块F输出的24比特、查表压缩变换模块D输出的16比特和状态读取列表模块C输出的16比特,共计56比特,经线性变换输出24比特的数据。
输出模块G的组成包括:读入单元、调整单元和运算单元。其中,该读入单元读入线性变换模块F的输出数据X(8比特)、Y(8比特)、Z(8比特)、查表压缩变换模块D的输出数据DD(16比特)、状态读取列表模块C的输出数据CC(16比特);该调整单元利用调整数据线排列顺序的方法将读入的数据重新调整数据的比特顺序,并在必要时用0来补足空缺数据位,形成三个长度都是24比特的数据GIN1=(X<<<1)‖Y‖(Z>>>1)、GIN2=Y‖00000000、GIN3=00000000‖(CC>>>5);该运算单元对3个数据段做异或运算,逻辑公式为:G=[(X<<<1)‖Y‖(Z>>>1)⊕(DD>>>7)的高位8比特‖(DD>>>7)的低位8比特‖00000000⊕00000000‖(列表C>>>5)的高位8比特‖(列表C>>>5)的低位8比特],其结果g23g22...g2g1g0就是模块G的最后输出,G的运算单元的逻辑如图5所示。其中这里的“‖”表示数据的级联;“⊕”表示异或运算;“DD>>>7”表示循环右移7位。DD为查表压缩变换模块D的输出的16比特。
该输出模块G:在输入过程和封闭循环运行过程中,输出模块G输出的24比特反馈到线性变换模块T1作为T1的一部分输入,进而影响LFSRα的状态变化,促进数据的置乱;对外输出过程,对外输出24比特的密钥流。
<随机数生成方法>
用上述的本发明流密码生成器可以生成随机数,其具体的方法包括:
(一).在流密码生成器的存储/截取模块中预先埋入128比特的密钥及向量,这两个数值不变或很少改变。
(二).流密码生成器加电启动后,其输入模块从存储/截取模块中读入128比特的密钥及向量,并通过一个脉冲将密钥分别输入三个线性反馈移位寄存器,其中LFSRα输入64比特密钥、LFSRβ输入33比特密钥、LFSRγ输入31比特密钥;通过6个脉冲将向量输入到三个线性变换模块T1、K和L中,其中T1和K输入5个8比特向量,L输入6个8比特向量。
在这过程中:流密码生成器中所述T1对LFSRα中的密钥进行置乱,K对LFSRβ中的密钥进行置乱,L对LFSRγ中的密钥进行置乱;三个状态读取列表模块A、B和C,其分别从所述的LFSRα、LFSRβ和LFSRγ的预定位读取并按预定方式重新排序后输出;一个线性变换模块F,对从所述A、B和C输出的数,进行压缩及反馈置乱后输出;一个查表压缩变换模块D,将从B输出的数查表压缩后输出;一个输出模块G,将从所述F、D和C输入的数压缩成预定位的数输出,其中该输出在所述的输入过程和其后的封闭循环运行过程中反馈到T1。
(三).流密码生成器封闭循环运行一定的脉冲,其中具体的脉冲数可以根据需要进行调整。
在这一过程中:流密码生成器中所述T1对LFSRα中的密钥进行置乱,K对LFSRβ中的密钥进行置乱,L对LFSRγ中的密钥进行置乱;三个状态读取列表模块A、B和C,其分别从所述的LFSRα、LFSRβ和LFSRγ的预定位读取并按预定方式重新排序后输出;一个线性变换模块F,对从所述A、B和C输出的数,进行压缩及反馈置乱后输出;一个查表压缩变换模块D,将从B输出的数查表压缩后输出;一个输出模块G,将从所述F、D和C输入的数压缩成预定位的数输出,其中该输出在所述的输入过程和其后的封闭循环运行过程中反馈到T1。
(四).流密码生成器对外输出24比特的数据流,截取该24比特的数据流生成任意长度的随机数串,例如可以截取8个脉冲的24比特数据,生成192比特的随机数,也可以截取43个脉冲的24比特数据生成96比特的随机数。
在这一过程中:LFSRα、LFSRβ和LFSRγ进行反馈移位操作;状态读取列表模块A、B和C,其分别从所述的LFSRα、LFSRβ和LFSRγ的预定位读取并按预定方式重新排序后输出;一个线性变换模块F,对从所述A、B和C输出的数,进行压缩及反馈置乱后输出;一个查表压缩变换模块D,将从B输出的数查表压缩后输出;一个输出模块G,将从所述F、D和C输入的数压缩成预定位的数输出。
<同步对称加密系统>
如图7所示,在数据传输的发送端即加密端和数据传输的接收端即解密端分别设置如上所述的流密码生成器,另外在加密端还具有一个认证单元。
所述的认证单元如图8所示,包括认证模块和一秘钥生成模块。其中认证模块中预先写入了认证协议,根据加密端和解密端生成并发送的随机数进行用户的合法性认证。所述的密钥生成模块中写入密钥协商协议(AKE),其在认证通过的情况下,用两端的流密码生成器生成的随机数来生成一致的密钥及向量。
采用上述的同步对称加密系统进行同步对称加密的工作过程如下所述。其中,
如图2A所示,解密端的流密码生成器的流程为:
步骤一:加电启动后运行启动子程序即读入初始密钥和初始向量,封闭循环运行,截取输出模块G输出数据生成随机数和重新认证密钥及向量;发出认证请求;
步骤二:等待认证单元的认证结果:认证单元读取两端的流密码生成器生成的随机数进行认证,如认证通过运行下一步,如认证失败,直接结束过程;
步骤三:获取认证单元生成的中间密钥及向量,并运行密钥流生成子程序即输入该中间密钥及向量封闭循环运行,生成场更新密钥、校验向量和24比特的密钥流;
其中加密端用该24比特的密钥流对从加密端传输的密文数据流进行解密。
步骤四:当对一定量的数据加密传输后运行场密钥更新子程序即:输入生成的场更新密钥到三个线性反馈移位寄存器中,封闭循环运行,生成下一个场更新密钥、下一校验向量和24比特的密钥流;
步骤五:当数据传输被干扰或传输时延超出预定的范围时,还需要运行重新认证子程序即输入上次认证所生成的重新认证密钥及向量;封闭循环运行生成随机数和重新认证密钥及向量;请求认证并等待认证结果,如认证则运行密钥流生成子程序,如认证失败则数据流加密传输过程结束。
与解密端对应,如图2B所示加密端的流密码生成器的工作流程包括:
步骤一’:根据认证请求,启动运行启动子程序即读入初始密钥和初始向量,封闭循环运行,根据解密端的认证请求信号,生成随机数和重新认证密钥及向量;
步骤二’:等待认证单元的认证结果:认证单元读取两端的流密码生成器生成的随机数进行认证,如获认证通过信息则运行下一步,如认证失败,直接结束过程;
步骤三’:运行密钥流生成子程序即从认证单元读入中间密钥及向量后封闭循环运行,截取G的输出生成场更新密钥、校验向量和24比特的密钥流;
其中加密端用该24比特的密钥流传输的明文数据流进行解密。
步骤四’:当对一定量的数据加密传输后运行场密钥更新子程序,输入前步生成的场更新密钥到三个线性反馈移位寄存器中,封闭循环运行,生成下一个场更新密钥、下一校验向量和24比特的密钥流;
步骤五’:当数据传输被干扰或传输时延超出预定的范围时,还需要运行重新认证子程序,输入上次认证所生成的重新认证密钥及向量,封闭循环运行,生成随机数和重新认证密钥及向量;请求认证并等待认证结果,如认证则运行密钥流生成子程序,如认证失败则数据流加密传输过程结束。
上述的两端之间进行同步对称的对传输的数据流进行加密解密,但由于网络传输等原因会产生时延等问题,为解决这一问题,通过在传输数据流同时发送校验向量,进行同步校验。校验的方式为解密端比较接收到的加密端传来的校验向量和解密端生成的校验向量,如二者相同则说明该期间收到的数据流的加密密钥和解密端生成的解密密钥是对应的,解密和加密过程是同步的。
在解密端和加密端的流密码生成器的流程中的“步骤二”和“步骤二’”中所述认证过程需认证单元的参与,具体为:认证单元在收到接收到解密端的认证请求信号后,读取流密码生成器生成的随机数进行用户认证,如认证通过则发出认证通过信息,并根据两个随机数所生成的128比特的密钥和向量,由两端的流密码生成器读入,如认证失败则发出认证失败的信息。
<实施例8>
上述的启动子程序,如图2C所示,具体包括以下过程:
(1)输入模块将预先埋入在存储/截取模块中的128比特(16字节)的初始密钥RK通过一个脉冲分别输入到三个线性反馈移位寄存器中,其中LFSRα输入64比特,LFSRβ输入33比特,LFSRγ输入31比特;并将128比特(16字节)的初始向量RIV通过6个脉冲分别输到三个线性变换模块T1、K和L中,其中T1、K中输入5个字节向量,L中输入6个字节的向量;前述的A、B、C、D、F等模块按预定的方式工作;G输出反馈到T1;T1、K、L分别对LFSRα、LFSRβ、LFSRγ中的密钥进行反馈置乱。
(2)封闭循环运行34个脉冲,输出模块G的输出反馈到线性变换模块T1种;所述T1、K、L分别对LFSRα、LFSRβ、LFSRγ中的密钥进行反馈置乱,具体置乱方式如前述;A、B、C、D、F等模块按预定的前述方式工作。
(3)输出模块G输出24比特的数据,存储/截取模块截取8个脉冲的24比特密钥流生成192比特的随机数,截取6个脉冲的24比特密钥流144位的低128位生成第一对128比特的重新认证密钥及向量,该重新认证密钥及向量暂存到存储/截取模块。
<实施例9>
上述的密钥流生成子程序,如图2D所示,具体包括以下过程:
(1)输入模块从认证单元读入128比特的中间密钥及向量;
(2)输入模块将前述的128比特(16字节)的中间密钥通过一个脉冲分别输入到三个线性反馈移位寄存器中,其中LFSRα输入64比特,LFSRβ输入33比特,LFSRγ输入31比特;并将128比特(16字节)的中间向量通过6个脉冲分别输到三个线性变换模块T1、K和L中,其中T1、K中输入5个字节向量,L中输入6个字节的向量;前述的A、B、C、D、F等模块按前述预定方式工作;G输出反馈到T1;T1、K、L分别对LFSRα、LFSRβ、LFSRγ中的密钥进行反馈置乱,具体方式见前述。
(3)封闭循环运行34个脉冲,输出模块G的输出反馈到线性变换模块T1,所述T1、K、L分别对LFSRα、LFSRβ、LFSRγ中的密钥进行反馈置乱,具体方式见前述;以及A、B、C、D、F等模块按预定的方式工作,具体见前述。
(4)输出模块G输出24比特的数据,存储/截取模块截取6个脉冲的24比特密钥流144位的低128位生成场更新密钥及校验向量,及输出24比特的密钥流。
加密端用生成的密钥流对传输的明文数据流进行加密,并将校验向量同步发送到解密端;解密端用生成的密钥流对从加密端传输来密文流进行解密,并用两端生成的校验向量对加密解密过程进行同步校验。
<实施例10>
上述的场密钥更新子程序,如图2E所示,具体包括以下过程:
(1)输入模块将前述的128比特(16字节)的场更新密钥通过一个脉冲分别输入到三个线性反馈移位寄存器中,其中LFSRα输入64比特,LFSRβ输入33比特,LFSRγ输入31比特;所述的A、B、C、D、F等模块按前述预定方式工作;G输出反馈到T1;T1、K、L分别对LFSRα、LFSRβ、LFSRγ中的密钥进行反馈置乱。
(2)封闭循环运行34个脉冲,输出模块G的输出反馈到线性变换模块T1,所述T1、K、L分别对LFSRα、LFSRβ、LFSRγ中的密钥进行反馈置乱,具体方式见前述;以及A、B、C、D、F等模块按预定的方式工作。
(3)输出模块G输出24比特的数据,存储/截取模块截取6个脉冲的24比特密钥144位的低128位生成场更新密钥及校验向量,及输出24比特的密钥流;
加密端用生成的密钥流对传输的明文数据流进行加密,并将校验向量同步发送到解密端;解密端用生成的密钥流对从加密端传输来密文流进行解密,并用两端的是生成的校验向量对加密解密过程进行同步校验。
<实施例11>
上述的重新认证子程序,如图2F所示,具体包括以下过程:
(1)输入模块将前述的128比特(16字节)的重新认证密钥通过一个脉冲分别输入到三个线性反馈移位寄存器中,其中LFSRα输入64比特,LFSRβ输入33比特,LFSRγ输入31比特;并将128比特(16字节)的重新认证向量通过6个脉冲分别输到三个线性变换模块T1、K和L中,其中T1、K中输入5个字节向量,L中输入6个字节的向量;前述的A、B、C、D、F等模块按预定的方式工作;G输出反馈到T1;T1、K、L分别对LFSRα、LFSRβ、LFSRγ中的密钥进行反馈置乱。
(2)封闭循环运行34个脉冲,G输出反馈到T1,T1、K、L分别对LFSRα、LFSRβ、LFSRγ中的密钥进行反馈置乱;A、B、C、D、F等模块按预定的方式工作。
(3)G输出24比特的数据流,存储/截取模块截取8个脉冲的24比特密钥流生成192比特的随机数,截取6个脉冲的24比特密钥流144位的低128位生成第一对128比特的重新认证密钥及向量,该重新认证密钥及向量暂存到存储/截取模块。
(4)对于解密端,其发出认证请求,由认证单元将生成的随机数读入其中,等待认证结果;对于加密端其根据认证请求生成随机数和重新认证密钥及向量,将随机数发送到认证单元。
认证单元根据认证请求读取两端生成的随机数,并进行认证,如认证通过则用该两个随机数生成一致的中间密钥及向量,并发出认证通过的信息;如认证失败则发出认证失败信息,系统进的进程结束。
另外,其中所提及的截取输出模块的输出数据生成随机数或中间密钥及向量或场更新密钥及校验向量的具体方式,如第几个到第几个24比特数据,并未限定,其可根据情况而选择确定。另外,LFSRα反馈到T1的数的位置可以改变,T1对LFSRα反馈的数和G反馈的数的移位多少也可以改变。另外,状态读取列表模块读取线性移位反馈寄存器的预定的位置可以改变。还包括,根据需要对发明的技术方案中那些假定的位置或移位数或循环次数等作适应性的改变。
根据本发明的同步对称加密方法,所生成的密钥流的种子密钥为128比特的初始密钥,其长度远大于现有技术中所用的56比特的种子密钥,因而加密的安全级别也有很大的提高。

Claims (19)

1.一种流密码生成器,特征在于包括:
一个输入模块、三个线性反馈移位寄存器LFSRα、LFSRβ、LFSRγ和三个线性变换模块T1、K、L;
其中所述输入模块用于经预定时钟脉冲向所述的三个线性反馈移位寄存器LFSRα、LFSRβ、LFSRγ分别输入密钥以及向所述的三个线性变换模块T1、K、L分别输入向量;
所述T1对所述LFSRα中的密钥进行置乱;以及所述K对所述LFSRβ中的密钥进行置乱;所述L对所述LFSRγ中的密钥进行置乱;
三个状态读取列表模块A、B和C,其分别从所述的LFSRα、LFSRβ和LFSRγ中读取预定位的数据并按预定方式将所述预定位的数据重新排序后输出,所述预定位满足较大的差集;
一个线性变换模块F,对从所述A、B和C输出的数,进行压缩及反馈置乱后输出;一个查表压缩变换模块D,将从B输出的数查表压缩后输出;
一个输出模块G,将从所述F、D和C输入的数压缩成预定位的数输出,其中该输出在所述的输入模块向所述的三个线性反馈移位寄存器输入密钥以及向所述的三个线性变换模块输入向量的输入过程中反馈到T1,并且在所述输入过程之后有一封闭循环过程,所述封闭循环过程中,所述输出反馈到T1,
所述封闭循环过程之后有一将所述输出模块的输出对外输出的输出过程;
一控制模块,其对上述输入模块、三个线性反馈移位寄存器LFSRα、LFSRβ、LFSRγ和三个线性变换模块T1、K、L以及状态读取列表模块A、B和C,线性变换模块F,输出模块G的运行进行协调控制。
2.如权利要求1所述的流密码生成器,特征在于:
还包括一存储/截取模块,该存储/截取模块中存储预先埋入的初始密钥及初始向量,其还用于截取所述输出模块G输出的数生成随机数、重新认证密钥及向量、场更新密钥和校验向量,并存储所述随机数、重新认证密钥及向量、场更新密钥和校验向量。
3.如权利要求2所述的流密码生成器,特征在于:
所述LFSRα为64比特,其特征多项式为f(x)=x8+x6+x5+x+1;
所述LFSRβ为35比特,其特征多项式为f(x)=x35+x30+x22+x11+x6+1;
所述LFSRγ共有31比特,其特征多项式为f(x)=x31+x13+x7+x6+x3+1。
4.如权利要求3所述的流密码生成器,特征在于:
所述的A从LFSRα的预定位读取32比特,按预定方式重新排列后输出;
所述B从LFSRβ的预定位读取24比特,按预定方式重新排列后输出;
所述C从LFSRγ的预定位读取16比特,按预定方式重新排列后输出;
所述预定位满足较大的差集。
5.如权利要求4所述的流密码生成器,特征在于:
所述的D,包括两并行的查表变换模块M和H,输出16比特的数;
其中M将从B输出的24比特数据的高位16比特作查表压缩成8比特后作为D输出数据的高位8比特;以及H将B输出24比特的低位8比特在该24比特数据的最高两位的控制下变换成8比特作为D输出的低位8比特。
6.如权利要求5所述的流密码生成器,特征在于:
所述F包括第一模块和第二模块;
其中该第一模块将A输出的32比特、B输出的24比特、C输出的16比特和第二模块反馈的24比特的数压缩成24比特的数;
及该第二模块将第一模块输出的24比特的数进一步置乱并输出24比特。
7.如权利要求6所述的流密码生成器,特征在于:
所述输出模块G,其将从所述F、D和C输入的数进行压缩后输出24比特的数。
8.如权利要求1-7中任一所述的流密码生成器,特征在于:
所述输入过程中:LFSRα、LFSRβ和LFSRγ通过一个脉冲分别输入64、33和31个比特的密钥值,及线性变换模块T1、K和L通过6个脉冲输入128比特的向量;同时,
LFSRα预定位的数异或运算后反馈到T1,然后T1对LFSRα反馈输入的数循环移预定位,并用输出模块G反馈的数和输入模块输入的向量对其作异或运算,然后将运算结果回输到LFSRα左端,然后LFSRα右移8位;LFSRβ预定位的数异或运算后反馈到其左端,并右移一位,然后所述K用从输入模块输入的向量对LFSRβ左端的8位作异或运算,然后LFSRβ循环右移8位;LFSRγ预定位的数异或运算后反馈到其左端,并右移一位,然后所述L用从输入模块输入的向量对LFSRγ左端8位作异或运算,然后LFSRγ循环右移8位;
所述封闭循环运行过程中:LFSRα预定位的数异或运算后反馈到T1,然后T1对LFSRα反馈输入的数循环移预定位,并用输出模块G反馈的数对其作异或运算,然后将运算结果回输到LFSRα左端,然后LFSRα右移8位;LFSRβ预定位的数异或运算后反馈到其左端,并右移一位,然后LFSRβ循环右移8位;LFSRγ预定位的数异或运算后反馈到其左端,并右移一位,然后LFSRγ循环右移8位;
所述对外输出过程中:LFSRα预定位的数异或运算后反馈到T1,然后T1对LFSRα反馈输入的数循环移预定位,然后将运算结果回输到LFSRα左端,且LFSRα右移8位;LFSRβ预定位的数异或运算后反馈到其左端,并右移一位,然后LFSRβ循环右移8位;LFSRγ预定位的数异或运算后反馈到其左端,并右移一位,然后LFSRγ循环右移8位;
所述预定位满足较大的差集。
9.一种同步对称加密系统,用于对传输的数据流进行同步对称加密,特征在于:
在加密端和解密端分别设置一流密码生成器;以及在加密端还具有一个认证单元;其中所述的流密码生成器和所述认证单元进行数据通信;
所述的流密码生成器包括:一个输入模块、三个线性反馈移位寄存器LFSRα、LFSRβ、LFSRγ和三个线性变换模块T1、K、L;
其中所述输入模块用于经预定时钟脉冲向所述的三个线性反馈移位寄存器LFSRα、LFSRβ、LFSRγ分别输入密钥以及向所述的三个线性变换模块T1、K、L分别输入向量;所述T1对所述LFSRα中的密钥进行置乱;以及所述K在输入过程对所述LFSRβ中的密钥进行置乱;所述L在输入过程对所述LFSRγ中的密钥进行置乱;
三个状态读取列表模块A、B和C,其分别从所述的LFSRα、LFSRβ和LFSRγ中读取预定位的数据并按预定方式将所述预定位的数据重新排序后输出;一个线性变换模块F,对从所述A、B和C输出的数,进行压缩及反馈置乱后输出;一个查表压缩变换模块D,将从B输出的数查表压缩后输出;一个输出模块G,将从所述F、D和C输入的数压缩成预定位的数输出,其中该输出模块的输出在所述的输入模块向所述的三个线性反馈移位寄存器输入密钥以及向所述的三个线性变换模块输入向量的输入过程中反馈到T1,并且在所述输入过程之后有一封闭循环过程,所述封闭循环过程中,所述输出反馈到T1,所述封闭循环过程之后有一将所述输出模块的输出对外输出的输出过程;
一控制模块,其对上述输入模块、三个线性反馈移位寄存器LFSRα、LFSRβ、LFSRγ和三个线性变换模块T1、K、L以及状态读取列表模块A、B和C,线性变换模块F,输出模块G的运行进行协调控制;
所述的认证单元包括:一认证模块,其根据两端的流密码生成器生成的随机数进行用户认证;及一密钥生成模块,其中根据所述的认证模块发出的认证通过信息和两端的流密码生成器生成的随机数生成密钥及向量;
所述预定位满足较大的差集。
10.如权利要求9所述的一种同步对称加密系统,特征在于,所述的流密码生成器,还包括一存储/截取模块;
该存储/截取模块中存储预先埋入的初始密钥及初始向量,其还截取输出模块G输出的数据流生成随机数、重新认证密钥及向量、场更新密钥和校验向量,并存储所述随机数、重新认证密钥及向量、场更新密钥和校验向量。
11.如权利要求9所述的一种同步对称加密系统,特征在于:
所述的认证单元还包括一输入输出模块,该输入输出模块用于接收认证请求、随机数。
12.一种随机数生成方法,特征在于,
(a)提供一流密码生成器,该流密码生成器包括:一个输入模块、三个线性反馈移位寄存器LFSRα、LFSRβ、LFSRγ和三个线性变换模块T1、K、L;
其中所述输入模块用于经预定时钟脉冲向所述的三个线性反馈移位寄存器LFSRα、LFSRβ、LFSRγ分别输入密钥以及向所述的三个线性变换模块T1、K、L分别输入向量;所述T1对所述LFSRα中的密钥进行置乱;以及所述K在输入过程对所述LFSRβ中的密钥进行置乱;所述L在输入过程对所述LFSRγ中的密钥进行置乱;
三个状态读取列表模块A、B和C,其分别从所述的LFSRα、LFSRβ和LFSRγ中读取预定位的数据并按预定方式将所述预定位的数据重新排序后输出;一个线性变换模块F,对从所述A、B和C输出的数,进行压缩及反馈置乱后输出;一个查表压缩变换模块D,将从B输出的数查表压缩后输出;一个输出模块G,将从所述F、D和C输入的数压缩成预定位的数输出,其中该输出模块的输出在所述的输入模块向所述的三个线性反馈移位寄存器输入密钥以及向所述的三个线性变换模块输入向量的输入过程中反馈到T1,并且在所述输入过程之后有一封闭循环过程,所述封闭循环过程中,所述输出反馈到T1,所述封闭循环过程之后有一将所述输出对外输出的输出过程;一存储/截取模块,该存储/截取模块用于存储预先埋入的初始密钥及向量,其还截取所述输出模块G输出的数生成随机数并存储生成的随机数;一控制模块,其对上述输入模块、三个线性反馈移位寄存器LFSRα、LFSRβ、LFSRγ和三个线性变换模块T1、K、L以及状态读取列表模块A、B和C,线性变换模块F,输出模块G的运行进行协调控制;
(b)所述流密码生成器生成随机数的过程包括:
读入预先埋入的密钥及向量;然后封闭循环运行;截取对外输出的数据流生成任意长度的随机数;
所述预定位满足较大的差集。
13.如权利要求12所述的一种随机数生成方法,特征在于,所述的预先埋入的密钥和向量均为为128比特的二进制数。
14.如权利要求13所述的一种随机数生成方法,特征在于,
所述的流密码生成器读入预先埋入的密钥及向量通过一个脉冲读入预先埋入的密钥以及通过6个脉冲读入预先埋入的向量;
其中LFSRα输入64比特、LFSRβ输入33比特、LFSRγ读入31比特的数;线性变换模块T1输入5个8比特向量、K输入5个8比特向量和L输入6个8比特向量。
15.一种同步对称加密的方法,利用如权利要求9所述的同步对称加密系统进行同步对称加密,特征在于包括下述步骤:
(a)解密端的流密码生成器读入预先埋入的初始密钥和初始向量,继而进行封闭循环运行,然后生成一随机数和重新认证的密钥及向量,并发出认证请求;
(b)加密端的流密码生成器根据认证请求,生成另一随机数和重新认证的密钥及向量;
(c)认证单元根据认证请求,读入生成的随机数并根据该两个随机数进行认证,如认证通过则发出认证通过信息,继而根据该两个随机数生成中间密钥及向量;
(d)两端的流密码生成器根据认证通过信息,读入所述中间密钥及向量,然后封闭循环运行预定个脉冲,然后生成场更新密钥及校验向量和密钥流;其中加密端用生成的密钥流对明文数据流进行加密生成密文流,及解密端用生成的密钥流对接收的密文流进行解密;
所述生成一随机数具体包括:
(e)提供一流密码生成器,该流密码生成器包括:一个输入模块、三个线性反馈移位寄存器LFSRα、LFSRβ、LFSRγ和三个线性变换模块T1、K、L;
其中所述输入模块用于经预定时钟脉冲向所述的三个线性反馈移位寄存器LFSRα、LFSRβ、LFSRγ分别输入密钥以及向所述的三个线性变换模块T1、K、L分别输入向量;所述T1对所述LFSRα中的密钥进行置乱;以及所述K在所述输入模块向所述的三个线性反馈移位寄存器分别输入密钥以及向所述的三个线性变换模块分别输入向量的输入过程对所述LFSRβ中的密钥进行置乱;所述L在输入过程对所述LFSRγ中的密钥进行置乱;
三个状态读取列表模块A、B和C,其分别从所述的LFSRα、LFSRβ和LFSRγ中读取预定位的数据并按预定方式将所述预定位的数据重新排序后输出;一个线性变换模块F,对从所述A、B和C输出的数,进行压缩及反馈置乱后输出;一个查表压缩变换模块D,将从B输出的数查表压缩后输出;一个输出模块G,将从所述F、D和C输入的数压缩成预定位的数输出,其中该输出模块的输出在所述的输入过程和其后的封闭循环运行过程中反馈到T1,且在封闭循环运行之后的对外输出过程对外输出;一控制模块,其对上述输入模块、三个线性反馈移位寄存器LFSRα、LFSRβ、LFSRγ和三个线性变换模块T1、K、L以及状态读取列表模块A、B和C,线性变换模块F,输出模块G的运行进行协调控制;
(f)所述流密码生成器生成随机数的过程包括:
读入预先埋入的密钥及向量;然后封闭循环运行;截取对外输出的数据流生成任意长度的随机数。
16.如权利要求15所述的方法,特征在于:
当生成预定量的密钥流后,两端的流密码生成器读入场更新密钥,然后封闭循环运行预定个脉冲,然后生成下一场更新密钥及校对向量和密钥流。
17.如权利要求15或16所述的方法,特征在于:
当传输中断时,解密端的流密码生成器读入重新认证密钥及向量,然后封闭循环运行,生成随机数和重新认证密钥及向量,并发出重新认证请求;
加密端根据收到的重新认证请求,读入重新认证密钥及向量,然后封闭循环运行,生成随机数和重新认证密钥及向量;
认证单元读入所述的随机数进行认证,如认证通过,发出认证通过指示,并用所述的随机数生成中间密钥及向量,并发出认证通过指示;
两端的流密码生成器读入该中间密钥及向量,然后封闭循环运行,生成场更新密钥及校验向量和密钥流,其中加密端用密钥流对明文数据流进行加密生成密文流,而解密端用密钥流对的密文流进行解密。
18.如权利要求15或16所述的方法,特征在于:
加密端的流密码生成器将密文流和校验向量发送到解密端,其中解密端的流密码生成器用收到的校验向量和自身生成的校验向量进行同步校验,如同步校验不通过,则传输中断。
19.如权利要求15或16所述的方法,特征在于:
所述的步骤(d)中,加密端先向解密端发送加密起始信号,然后其流密码生成器读入所述认证单元生成的中间密钥及向量,运行并生成密钥流;
解密端接收到加密端发送的加密起始信号后,读入运行所述认证单元生成的中间密钥及向量,运行并生成密钥流。
CNB2005101360005A 2005-12-29 2005-12-29 流密码生成器、随机数生成方法、加密系统及加密方法 Active CN100459493C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2005101360005A CN100459493C (zh) 2005-12-29 2005-12-29 流密码生成器、随机数生成方法、加密系统及加密方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2005101360005A CN100459493C (zh) 2005-12-29 2005-12-29 流密码生成器、随机数生成方法、加密系统及加密方法

Publications (2)

Publication Number Publication Date
CN1835586A CN1835586A (zh) 2006-09-20
CN100459493C true CN100459493C (zh) 2009-02-04

Family

ID=37003165

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005101360005A Active CN100459493C (zh) 2005-12-29 2005-12-29 流密码生成器、随机数生成方法、加密系统及加密方法

Country Status (1)

Country Link
CN (1) CN100459493C (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101378314B (zh) * 2008-09-26 2011-04-20 北京数字太和科技有限责任公司 一种密钥序列的生成方法和密钥产生装置
CN103634101A (zh) * 2013-12-03 2014-03-12 中国电子器材总公司 加密处理方法及设备
CN105376055B (zh) * 2015-12-09 2019-11-01 捷德(中国)信息科技有限公司 一种生成伪随机数的方法及伪随机数发生器
CN113206735B (zh) * 2020-12-23 2024-07-09 杭州起盈科技有限公司 一种采用32位lfsr生成流密码的存储器
CN115189878B (zh) * 2022-09-08 2022-12-23 蓝象智联(杭州)科技有限公司 一种基于秘密分享的共享数据排序方法及电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0782069A1 (en) * 1995-12-25 1997-07-02 Nec Corporation Pseudorandom number generator
CN1275280A (zh) * 1998-06-25 2000-11-29 皇家菲利浦电子有限公司 同步流密码
CN1347607A (zh) * 1999-02-08 2002-05-01 高通股份有限公司 生成加密数据流密码的方法和装置
GB2380916A (en) * 2001-09-28 2003-04-16 Hw Comm Ltd Pseudo random stream cipher generator comprising shift registers where the shifting of the registers at each clock is dependent upon the register state
CN1425230A (zh) * 1999-11-23 2003-06-18 通用仪器公司 密钥流的产生方法及装置
CN1496055A (zh) * 2002-02-12 2004-05-12 ��۳��д�ѧ 序列产生器和伪随机序列的产生方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0782069A1 (en) * 1995-12-25 1997-07-02 Nec Corporation Pseudorandom number generator
CN1275280A (zh) * 1998-06-25 2000-11-29 皇家菲利浦电子有限公司 同步流密码
CN1347607A (zh) * 1999-02-08 2002-05-01 高通股份有限公司 生成加密数据流密码的方法和装置
CN1425230A (zh) * 1999-11-23 2003-06-18 通用仪器公司 密钥流的产生方法及装置
GB2380916A (en) * 2001-09-28 2003-04-16 Hw Comm Ltd Pseudo random stream cipher generator comprising shift registers where the shifting of the registers at each clock is dependent upon the register state
CN1496055A (zh) * 2002-02-12 2004-05-12 ��۳��д�ѧ 序列产生器和伪随机序列的产生方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
一种A5流密码算法的设计实现. 胡丽格,秦明峰.无线电通信技术,第30卷第3期. 2004
一种A5流密码算法的设计实现. 胡丽格,秦明峰.无线电通信技术,第30卷第3期. 2004 *
一种实用的密匙流生成器方案. 邱卫东,谷大武,白英彩.上海交通大学学报,第33卷第11期. 1999
一种实用的密匙流生成器方案. 邱卫东,谷大武,白英彩.上海交通大学学报,第33卷第11期. 1999 *

Also Published As

Publication number Publication date
CN1835586A (zh) 2006-09-20

Similar Documents

Publication Publication Date Title
US6014446A (en) Apparatus for providing improved encryption protection in a communication system
US8712036B2 (en) System for encrypting and decrypting a plaintext message with authentication
JP4127472B2 (ja) データ変換装置及びデータ変換装置のデータ変換方法及びプログラム及びコンピュータ読み取り可能な記録媒体
US5745577A (en) Symmetric cryptographic system for data encryption
US7295671B2 (en) Advanced encryption standard (AES) hardware cryptographic engine
KR100492289B1 (ko) 디지털 비디오 컨텐츠 전송의 암호화 및 복호화 방법 및장치
US10320554B1 (en) Differential power analysis resistant encryption and decryption functions
US7715553B2 (en) Encrypting a plaintext message with authentication
US8509427B2 (en) Hybrid mode cryptographic method and system with message authentication
US8170204B2 (en) Method and system for extending advanced encryption standard (AES) operations for enhanced security
US7688974B2 (en) Rijndael block cipher apparatus and encryption/decryption method thereof
US8122075B2 (en) Pseudorandom number generator and encryption device using the same
US7447311B2 (en) Method of designing optimum encryption function and optimized encryption apparatus in a mobile communication system
CN100459493C (zh) 流密码生成器、随机数生成方法、加密系统及加密方法
US11770237B2 (en) Hardware accelerator for Feistel block ciphers
US6961427B1 (en) Methods and apparatus for keystream generation
JPWO2006019152A1 (ja) メッセージ認証子生成装置、メッセージ認証子検証装置、およびメッセージ認証子生成方法
JP4470135B2 (ja) 擬似乱数生成システム
US20040096059A1 (en) Encryption apparatus with parallel Data Encryption Standard (DES) structure
EP1232603B1 (en) Methods and apparatus for keystream generation
KR100494560B1 (ko) Rijndael암호를 이용한 블록 데이터 실시간암호복호화 장치 및 방법
JPH06308881A (ja) 暗号化方法及び装置
US7215768B2 (en) Shared new data and swap signal for an encryption core
KR100226867B1 (ko) 무선 통신의 스트림 암호 시스템
JPH10303883A (ja) 暗号化方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: SICHUAN CHANGHONG ELECTRIC CO., LTD.

Free format text: FORMER OWNER: BEIJING POWER DIGITAL TECHLABS CO., LTD.

Effective date: 20100609

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 100016 ROOM AE26-28, 2/F, BUILDING 51, NO.14, JIUXIANQIAO ROAD, CHAOYANG DISTRICT, BEIJING TO: 621000 NO.35, MIANXING EAST ROAD, MIANYANG CITY HIGH-TECH ZONE, SICHUAN PROVINCE

TR01 Transfer of patent right

Effective date of registration: 20100609

Address after: 621000 Mianyang province high tech Zone, East Hing Road, No. 35 cotton

Patentee after: Sichuan Changhong Electrical Appliance Co., Ltd.

Address before: 100016, room two, building 51, building 14, Jiuxianqiao Road, Chaoyang District, Beijing,

Patentee before: Beijing Puaode Ditial Technology Co., Ltd.