数据流加密方法

文档序号:7929494阅读:534来源:国知局
专利名称:数据流加密方法
技术领域
本发明涉及进行数据流加密的方法,该方法采用编码装置对传入数据进行映射运算,施加逆运算,进行组合密钥运算,进行解映射运算,并进而包括对传出数据定位(tack)与同传入数据再组合的步骤。
在文献中已知加密数据流的一种方法,该方法包括根据所谓RIJNDAEL’标准对数据块编码的步骤。块编码包括加密密钥和数据块算法的应用,例如64邻接位,只一次而不是每次一位。为了避免相同的数据块被以相同的方式加密,例如已知向传入数据序列中后继块施加先前已编码块。
所述RIJNDAEL标准基于三层的采用,其中执行块的线性混合函数,非线性函数和密钥添加函数。
所述加密和编码运算能够通过根据

图1的块图示示例说明。
在所述图1中,包含清文本TI的一个字的传入数据流FI被输入到编码电路11,该电路包括线性变换块T,其后跟随解码器块12,进而后面又是逆向线性变换块T-1。在逆向线性变换块T-1的输出处,通过加法器S2,插入一个k密钥,因而产生传出的数据流FO,该数据流包含已编码的文本TC。所述已编码的文本TC通过D延迟块被反馈,以便通过加法器S1同后继的传入数据流块F1组合。从而,编码电路11包括一编码环并且是非线性型的。编码器传入字节11由b标记而传出字节由b’标记。
类似的结构,如所有的对称加密系统那样,表现出至少有两个缺陷。首先,传入的数据流F1的建立很复杂。
实际上,RIJNDAEL编码图包括在128(或192,或256)字节的可变字符串上加载传入数据流FI的步骤,并基于一种规则对可变字符串基本上重复以下运算ByteSub;ShiftRow;MixColumn; AddRoundKey。
-ShiftRow运算是在128位中的简单排列;-MixColumn是线性运算,因而表示为矩阵应用程序;-AddRoundKey是在S2加法器输入处k密钥的128位与变量的128位之间的模2加法运算(换言之,即Xor(异)位);-反之ByteSub运算是施加到变量的每一字节的非线性运算,以便实现所谓映射,即对字节b的变换,并涉及T,12eT-1块。
所述ByteSub运算是复杂的运算,即其实现要采用大量的逻辑端口和可观的层次数,因而结果是大量的等待时间,由此造成低的运算速度。
根据RIJNDAEL标准,ByteSub运算在于根据以下关系变换字节b’=M·I(b)+c其中I(b)是Galois域中b的逆元素,M是8×8矩阵c是定常向量。
在该技术中,已知有实现更有效的Galois域中元素逆的间接方法。所述方法在于向元素b施加线性变换T,如图1块中所示的变换,因而是比以前简单的简化的逆Is,并然后是逆线性变换T-1,即I(b)=T-1Is(T·b)由此b’=MT-1Is(T·b)+c如前所述,这一再定义是已知的,允许有更简单的电路,该电路只带两个线性变换和一个简单的逆。
应当注意的是,(MT-1)预先计算的8×8定常矩阵。
唯一余留的问题在于,以上所述的ByteSub运算必须对每一叠代重新计算。因此,有可观的计算复杂性以及实现所述计算涉及的组件对应的复杂性。
进而,块加密依赖于通过D延迟块先前块的加密,必须考虑潜在时间的操作和相关性,即其中在加法器S1处先前块不能被组合的时间。具体来说,这清楚地显示在Cipher Block Chaining模式中,其中传出数据流FO的加密编码文本TC通过EXOR函数与传入数据流FI的清文本TI字组合。
本发明的目的是要克服以上所述的缺陷,并提供一种进行数据流加密并具有改进的实现的方法,该方法相对于已知的解法更为有效。
在这领域,本发明的主要目的是要指明用于加速加密运算的数据流的一种加密方法。
本发明的进一步的目的是要指明一种数据流加密方法,该方法允许使用需要减少的复杂性和性能的计算组件。
上述目的是通过数据流的一种加密方法和/或结合了所附权利要求特征的加密编码电路而实现的,这些权利要求是本说明的组成部分。
参照附图阅读仅作为示例而非限制性的例子给出的详细说明,本发明必将变得明朗,其中-图1示出一框图,表示根据现有技术实现数据流加密方法的编码器的原理;-图2示出根据本发明实现数据流加密方法的一编码器。
-图3示出一框图,表示根据本发明实现数据流加密方法的编码器系统;-图4示出根据图3的编码器系统细节的基本图示。
根据本发明,建议在编码环的输入处采用变换T,并在输出处采用逆变换T-1,这样简化了通过编码环被叠代的表达式,或循环。
换言之,参照图1中所指的编码环是从被变换域Tb上开始运算的,于是Tb’=T·M·T-1Is(T·b)+Tc可注意到T·M·T-1即是预先计算的8x8定常矩阵。
Bytesub运算现在是对字节b的线性变换和简单的逆变换。
图2例示出关于根据本发明编码电路21的框图,其中传入数据流FI首先进入线性变换块T4,使得已经成为被变换的字节w的b字节通过S1加法器,并进入简化的编码器块22,该块采用简化的Is逆变换和MixColumn L运算,以便产生传出变换的字节w’。
可观察到,在描述图1时,我们已经说到关于对8-位字节b,b’和c作为8位向量的运算,同时T和M是8×8二进制矩阵。
反之,作为图2中的一例所述的编码电路21对32位块运算。因而w和w’应理解为4字节的链接,T4和M4是32×32块对角矩阵,其中T4=T0000T0000T0000T]]>其中M4=M0000M0000M0000M]]>以及C4=cccc]]>Is4是在变换域中对4字节独立运算的简化的逆运算。
然后,4ByteSub运算可以表示为T4w’=T4·M4·T4-1Is4(T4w)+T4c4如前所述,我们忽略ShiftRows运算(这只是排列)。
由于MixColumn运算是施加到编码块2的线性运算,即矩阵L32×32,作为AddRoundKey运算,即k4密钥通过S2加法器的32位求和,编码环的输出,该输出将对下一个叠代作为变换的字节w通过D延迟元件和S1加法器重新进入,该运算为T4w”=T4(L(M4·T4-1Is4(T4·w)+c4)+k4)=T4·L·M4·T4-1Is4(T4w)+T4·L·c4+T4·k4应注意到,T4·L·M4·T4-1是定常矩阵(因而是预先计算的),T4·L·c4是定常向量,且T4·k4是32位变换密钥,通过块T4适当放置在S2加法器之前。
当这样写出时,叠代并不直接采用密钥k4,而是在变换域中的密钥T4·k4。
由于密钥展开过程(KeyExpander过程)采用ByteSub运算,因而逆运算KeyExpander有利地在变换域中实现,于是KeyExpander比较简单并直接产生k4·T4。
简而言之,编码器块运算22现在是四个简化的逆变换和矩阵与向量的乘积,后跟密钥k4的和,同时按已知技术进行四个逆变换(未简化),矩阵和向量的乘积与密钥的求和。
映射(解映射)运算4基本上已经在编码器块22之外进行。
此外,如果在CBC模态下考虑电路,显然作为线性型的映射运算是在编码环之外移动的,因而是在有潜在约束的区域之外。
根据本发明进一步的特征,编码电路212与在编码块22上分配计算负荷的调度程序块24共同操作。
因而图3描述了一种并行结构的编码系统。
实际上CBC模态限制了作为编码器电路11或21的被编码电路的最大加工容量。
因而根据图3的并行结构预测多个编码器块22,例如8个将是慢速的,即它们以八分之一传入数据流率FI的速率运算,但是通过并行运算有助于达到所需的速率。
在CBC模态下的编码器本身是不能够并行化的;但是在分组业务编码的情形下,单个数据分组的加工要给予每一编码器22。
为此,插入适当的调度程序块24,该块放置在多个编码器块22的上游,并分配组成传入数据流FI的它们的PK分组。在被编码电路22的输出处相同的调度程序块24重新组合PK分组,并产生输出数据流FO。
调度程序24在图4中例示出,并主要包括长度LM的MM存储器,其中能够进行每时钟周期四次的访问,两次用于写操作,两次用于读操作。
现在,详述写和读操作-在传入数据流FI的(清)字的P位置处的写操作;-从被寻址的字的位置P的读操作以便输出。
在每一时钟周期,位置P指针按以下关系增量P=(P+1)模LM到现在,我们已经看到作为简单延迟线性存储器MM的操作的描述(延迟=LM×时间的时钟周期)。
反之,进一步的两个读和写访问用于加工;具体来说,读操作在由Er地址标识的包含被加工字(或清字)的位置实现,且写操作在由Ew地址标识的另一位置通过写入被加工(或被加密)的数据实现。因而,如果已经写入到存储器MM的每一字后来被读取,被编码和重写,则第二个读操作按写入的相同顺序返回被编码的数据流。
换言之,在时间每一时钟周期,接收的字被写入到存储器,从存储器读取清字,以及写入加密字(在对应的清字驻留的相同的位置),并读取被编码的字以便传输。
四-访问存储器的物理实现可通过采用单访问存储器进行,该存储器带有四重输入字并设置为四-周期访问的数据总线。
或者,在二-访问存储器的情形下,只要双倍数据总线宽度即可。
现在,考虑也是图4所示的产生Ew和Er地址的控制机25。
假设编码器22为N,例如N=8,它们具有1/N加工速率对FI传入数据流的速率。
Ew和Er地址依次为编码器22之一选择数据,并根据以下关系在时间t展开Er[t]=(Er[t-N])模LM如果Er[t-N]不是分组PK的最后一个字Er[t]=S如果Er[t-N]是分组PK的最后一个字Ew[t]=Er[t-N]其中S是驻留在存储器MM中的分组PK的起始地址。
起始地址S的动态通过在N个慢速编码器块22之中分配工作的机制被调节当第一字到达新分组PK的输入处时,S地址-在此已经写入分组PK的第一字-及同一分组PK的长度被排队,即它们被插入到FIFO MF或队列存储器。然后,当编码器块22已经终结时,就是说当读地址Er[t-N]达到PK分组的最后字时,从该队列去掉S地址。
对于调度程序24无溢出危险运行的充分条件为存储器MM的长度LMLM>2N*lmaxFIFO MF存储单元的LF数LF>2N*lmax/lmin其中lmax和lmin分别是以字数表示的分组PK的最大和最小长度。
于是从以上说明,本发明的特征是清楚的,其优点也是清楚的。
根据本发明的数据流加密方法,通过减少对块的运算并通过进行编码环之外的映射运算,有利地允许降低编码器的复杂性。此外,根据本发明的数据流的加密方法还有利地允许简化密钥的产生。
根据本发明的数据流的加密方法,由于并行体系结构的开发,还有利地允许即使用较慢速并因而较简单但是较廉价型的编码器,仍能以高速率并在CBC方式下编码。
显然,在不超出本发明的范围之下,对于业内专业人员能够对以上所述示例的数据流加密方法有若干改进,另外明显地,在实际的实施例中所示细节的形式能够有所不同,并能够以技术上等价的元件代替之。
权利要求
1.一种执行数据流加密的方法,该方法包括使用编码装置(11,21)向输入数据(FI)施以映射运算(T,T4),施以逆运算(I,Is),施以通过密钥(k;k4)进行的组合运算,施以解映射运算(T-1;T4-1),并还包括固定及再组合传出数据(FO)与传入数据(F1),其特征在于,映射运算(T4)施加到传入数据流(FI)与传出数据流(FO)之间的再组合运算以上,把解映射运算(T4-1)施加到传出数据流(FO)的固定运算以下,并实现简化的逆运算(Is)。
2.根据权利要求1的数据流加密方法,其特征在于,向组合密钥运算(k4)插入映射运算(T4),以便产生映射的密钥(T4k4)。
3.根据权利要求2的数据流加密方法,其特征在于,在向多个编码电路(22)定址的多个(N)并行数据流(PK)分配传入数据流(FI),且并行加密所述每一个数据流(PK)。
4.根据权利要求3的数据流加密方法,其特征在于,根据由适当的调度装置(24)确定的时间顺序向多个编码电路(21)分配传入数据流(FI)的分组(PK),并把来自每一编码电路(21)的已加密分组再组合为传出数据流(FO)。
5.根据权利要求4的数据流加密方法,其特征在于,所述调度装置(24)通过向多个访问存储器(MM)的写入和读取操作进行分组(PK)的分配与组合。
6.根据权利要求5的数据流加密方法,其特征在于,所述写入和读取操作通过控制机(25)产生,该控制机向多个访问存储器(MM)产生适当的写入(Ew)和读取(Er)地址,用于向多个编码器(21)分配分组(PK)。
7.类型编码器,包括映射和解映射装置(T,T-1;T4,T4-1),适合于实现逆运算的编码装置(22)及用于插入密钥(k,k4)的装置(S1),以及用于实现编码环(D,S2)的装置,其特征在于,所述映射和解映射装置(T,T-1;T4,T4-1)置于所述编码环(D,S2)之上和之下。
8.根据权利要求7的编码器,其特征在于,插入密钥的所述装置(S1)还连接到映射装置(T4)以变换密钥(k4)。
9.用于加密数据的系统,包括根据权利要求7的多个编码装置,其特征在于,它包括调度装置(24),用于从传入数据流(FI)向所述多个编码装置(21)分配数据分组(PK),并用于把已加工的分组再组合为传出数据流(FO)。
10.根据权利要求9用于加密数据的系统,其特征在于,所述调度装置(24)包括多个访问存储器(MM)。
11.根据权利要求10用于加密数据的系统,其特征在于,所述调度装置(24)包括控制机(25),它在多个访问存储器(MM)中产生适当的写入(Ew)和读取(Er)地址,用于向多个编码装置(21)分配分组(PK)。
全文摘要
本发明涉及进行数据流加密的方法,该方法包括以下步骤,使用编码装置(11,21)向传入数据(FI)施以映射运算(T,T4),施以逆运算(I,Is),施以密钥组合运算(k;k4),施以解映射运算(T
文档编号H04L9/18GK1409512SQ0214266
公开日2003年4月9日 申请日期2002年9月17日 优先权日2001年9月17日
发明者西尔维奥·库奇, 卡罗·科斯坦蒂尼 申请人:阿尔卡塔尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1