XTS‑AES加密电路、解密电路及其方法与流程

文档序号:14124386阅读:1715来源:国知局
XTS‑AES加密电路、解密电路及其方法与流程

本申请涉及信息安全领域,具体涉及一种xts-aes数据单元加密电路、解密电路。



背景技术:

xts-aes(带有调整和密文窃取的高级加密标准,xexencryptionmodewithtweakandciphertextstealing-advanced_encryption_standard)算法主要用于以数据单元(包括扇区、逻辑磁盘块等)为基础结构的存储设备中静止状态数据的加密。xts-aes的公布解决了一系列的安全威胁,并且允许在算法实现上应用并行化和流水线结构。

现有技术的xts-aes协议中,输入的数据分为不同数据类型,但是每种数据类型均按128比特分组处理,最后一组数据存在长度小于128比特的情况,密文窃取处理过程中,需要对最后一个完整的128比特明文数据块pm-1和最后的非128比特明文数据块pm的运算顺序进行调整(m为正整数)。按照标准ieee1619处理时,pm与pm-1的运算结果相关,同时最终的输出结果的顺序也需要进行调换,导致了密文窃取过程中最后一部分的数据无法进行并行性或线速运算。对xts-aes的运算电路具有较高时钟频率和较高的时序要求,无法与数据传输使用同一时钟,带来硬件设计的复杂度,难以保证线速输出。在“ieeep1619tm/d16standardforcryptographicprotectionofdataonblock-orientedstoragedevices”(http://grouper.ieee.org/groups/1619/email/pdf00086.pdf)中定义xts-aes算法,将其全文通过引用合并于此。



技术实现要素:

根据本发明的第一方面,提供了根据本发明第一方面的第一xts-aes数据单元加密电路,数据单元包括m+1个数据块p0~pm,m为正整数,其中,第1~m个数据块p0~pm-1均具有预设字节数,第m+1个数据块pm的字节数小于或者等于预设字节数;所述xts-aes数据单元加密电路包括:第一加密单元(aes0)、模乘单元、异或单元、第二加密单元(aes1)、第三加密单元(aes2)与缓存与调整单元,其中,第一加密单元用于对数据单元的调整值进行加密并输出给模乘单元;模乘单元对第一加密单元的输出或模乘单元的前一运算结果进行模乘运算,并缓存运算结果;异或单元包括第一异或单元、第二异或单元和第三异或单元,其中,第一异或单元用于对模乘单元的输出与数据单元的数据块之一做异或,第一异或单元的输出耦合到第二加密单元(aes1)的输入;第二异或单元用于对第二加密单元(aes1)的输出与模乘单元的输出做异或,第二异或单元的输出耦合到第三加密单元(aes2);第三异或单元用于对第三加密单元(aes2)的输出与模乘单元的输出做异或;缓存与调整单元用于对第二加密单元(aes1)的输出与模乘单元的输出的异或结果进行缓存,缓存与调整单元还用于拼接数据单元的数据块pm与缓存的数据块,缓存与调整单元的输出耦合到第三加密单元(aes2)。

根据本发明的第一方面的第一xts-aes数据单元加密电路,提供了根据本发明第一方面的第二xts-aes数据单元加密电路,对数据单元的处理包括对应于数据块p0~pm的m+1个阶段s1~sm+1。

根据本发明的第一方面的第二xts-aes数据单元加密电路,提供了根据本发明第一方面的第三xts-aes数据单元加密电路,响应于处理数据块的阶段s1:第一aes加密单元(aes0)对数据单元的调整值加密,其输出耦合到模乘单元。

根据本发明的第一方面的第二至第三xts-aes数据单元加密电路之一,提供了根据本发明第一方面的第四xts-aes数据单元加密电路,响应于处理数据块的阶段s2-sm+1:将模乘单元的上一输出作为模乘单元的输入。

根据本发明的第一方面的第二至第四xts-aes数据单元加密电路之一,提供了根据本发明第一方面的第五xts-aes数据单元加密电路,响应于处理数据块的阶段s1-sm-1:第一异或单元,对模乘单元的输出与对应于数据单元的当前阶段的数据块(p0-pm-2)做异或;第二加密单元(aes1)对第一异或单元的输出加密,第二异或单元对第二加密单元(aes1)的输出与模乘单元的输出做异或,将第二异或单元处理数据单元的阶段s1到阶段sm-1的输出作为所述xts-aes数据单元加密电路处理所述数据单元的第1到第m-1个输出。

根据本发明的第一方面的第二至第五xts-aes数据单元加密电路之一,提供了根据本发明第一方面的第六xts-aes数据单元加密电路,响应于处理数据块的阶段sm:第一异或单元,对模乘单元的输出与对应于数据单元的当前阶段的数据块(pm-1)做异或;第二加密单元(aes1)对第一异或单元的输出加密,第二加密单元的(aes1)输出提供给所述缓存与调整单元;缓存与调整单元对第二加密单元(aes1)的输出与模乘单元的输出做异或,并缓存异或结果。

根据本发明的第一方面的第二至第六xts-aes数据单元加密电路之一,提供了根据本发明第一方面的第七xts-aes数据单元加密电路,响应于处理数据块的阶段sm+1:将数据块pm提供给所述缓存与调整单元,所述缓存与调整单元所缓存的数据块包括数据块cm与数据块cp两部分,所述缓存与调整单元将数据块pm与数据块cp合并,将合并的数据块与模乘单元的输出做异或,将异或结果提供给第三加密单元(aes2);第三加密单元(aes2)的输出提供给第三异或单元,第三异或单元对第三加密单元(aes2)与模乘单元的结果做异或,第三异或单元的输出作为所述xts-aes加密电路处理所述数据单元的第m个输出。

根据本发明的第一方面的第七xts-aes数据单元加密电路,提供了根据本发明第一方面的第八xts-aes数据单元加密电路,缓存与调整单元输出cm,作为所述xts-aes数据单元加密电路处理所述数据单元的第m+1个输出。

根据本发明的第二方面,提供了根据本发明的第二方面的第一xts-aes数据单元解密电路,数据单元包括m+1个数据块c0~cm,m为正整数,其中,第1~m个数据块c0~cm-1均具有预设字节数,第m+1个数据块cm的字节数小于或者等于预设字节数;所述xts-aes解密电路包括:第一加密单元(aes0)、模乘单元、异或单元、第二解密单元(aes1)、第三解密单元(aes2)与缓存与调整单元,其中,第一加密单元(aes0)用于对数据单元的调整值进行加密并输出给模乘单元;模乘单元对第一加密单元(aes0)的输出或模乘单元的前一运算结果进行模乘运算,并缓存运算结果;异或单元包括第一异或单元、第二异或单元和第三异或单元,其中,第一异或单元用于对模乘单元的输出与数据单元的数据块之一做异或,第一异或单元的输出耦合到第二解密单元(aes1)的输入;第二异或单元用于对第二解密单元(aes1)的输出与模乘单元的输出做异或,第二异或单元的输出耦合到第三解密单元(aes2);第三异或单元用于对第三解密单元(aes2)的输出与模乘单元的输出做异或;缓存与调整单元用于对第二解密单元(aes1)的输出与模乘单元的输出的异或结果进行缓存,缓存与调整单元还用于拼接数据单元的数据块cm与缓存的数据块,缓存与调整单元的输出耦合到第三解密单元(aes2)。

根据本发明的第二方面的第一xts-aes数据单元解密电路,提供了根据本发明第二方面的第二xts-aes数据单元解密电路,对数据单元的处理包括对应于数据块c0~cm的m+1个阶段q1~qm+1。

根据本发明的第二方面的第二xts-aes数据单元解密电路,提供了根据本发明第二方面的第三xts-aes数据单元解密电路,响应于处理数据块的阶段q1:第一加密单元(aes1)对数据单元的调整值加密,其输出耦合到模乘单元。

根据本发明的第二方面的第二至第三xts-aes数据单元解密电路之一,提供了根据本发明第二方面的第四xts-aes数据单元解密电路,响应于处理数据块的阶段q2~qm+1:将模乘单元的上一输出作为模乘单元的输入。

根据本发明的第二方面的第二至第四xts-aes数据单元解密电路之一,提供了根据本发明第二方面的第五xts-aes数据单元解密电路,响应于处理数据块的阶段q1-qm-1:第一异或单元,对模乘单元的输出与对应于数据单元的当前阶段的数据块(c0~cm-2)做异或;第二解密单元(aes1)对第一异或单元的输出解密,第二异或单元对第二解密单元(aes1)的输出与模乘单元的输出做异或,将第二异或单元处理数据单元的阶段q1到阶段qm-1的输出作为所述xts-aes数据单元解密电路处理所述数据单元的第1到第m-1个输出。

根据本发明的第二方面的第二至第五xts-aes数据单元解密电路之一,提供了根据本发明第二方面的第六xts-aes数据单元解密电路,响应于处理数据块的阶段qm:第一异或单元,将模乘单元的qm+1阶段的输出(cm’)与对应于数据单元的当前阶段的数据块(cm-1)做异或;第二解密单元(aes1)对第一异或单元的输出解密,第二解密单元(aes1)的输出提供给所述缓存与调整单元;缓存与调整单元对第二解密单元(aes1)的输出与模乘单元的qm+1阶段的输出(cm’)做异或,并缓存异或结果。

根据本发明的第二方面的第二至第六xts-aes数据单元解密电路之一,提供了根据本发明第二方面的第七xts-aes数据单元解密电路,响应于处理数据块的阶段qm+1:将数据块cm提供给所述缓存与调整单元,所述缓存与调整单元所缓存的数据块包括数据块pm与数据块pp两部分,所述缓存与调整单元将数据块cm与数据块pp合并,将合并的数据块与模乘单元的输出(cm-1’)做异或,将异或结果提供给第三解密单元(aes2);第三解密单元(aes2)的输出提供给第三异或单元,第三异或单元对第三解密单元(aes2)与模乘单元的输出(cm-1’)做异或,第三异或单元的输出pm-1作为所述xts-aes数据单元解密电路处理所述数据单元的第m个输出。

根据本发明的第二方面的第七xts-aes数据单元解密电路,提供了根据本发明第二方面的第八xts-aes数据单元解密电路,缓存与调整单元输出pm,作为所述xts-aes数据单元解密电路处理所述数据单元的第m+1个输出。

根据本发明的第三方面,提供了根据本发明第三方面的第一xts-aes加密电路,用于根据xts-aes协议对数据单元加密,数据单元包括m+1个数据块p0~pm,m为正整数,以及对数据单元的处理包括对应于数据块p0~pm的m+1个阶段s1~sm+1;所述xts-aes加密电路包括:第一aes加密单元(aes0)、第二aes加密单元(aes1)、第三aes加密单元(aes2)、模乘单元、第一异或单元(101)、第二异或单元(102)、第三异或单元(103)与数据缓存单元;在处理数据单元的处理阶段s1,第一aes加密单元(aes0)对数据单元的调整值加密,其输出耦合到模乘单元;模乘单元的输出耦合到第一异或单元(101)与模乘单元的输入;第一异或单元(101)用于对模乘单元的输出与对应于数据单元的当前阶段的数据块(p0-pm-1)做异或;第二aes加密单元(aes1)对第一异或单元(101)的输出加密;第二异或单元(102)对第二aes加密单元(aes1)与模乘单元的输出做异或;其中当处理数据单元的sm阶段时,用数据缓存单元缓存第二异或单元(aes1)的输出,所缓存的数据块包括数据块cm与数据块cp两部分;将第二异或单元处理数据单元的阶段s1到阶段sm-1的输出作为所述xts-aes加密电路处理所述数据单元的第1到第m-1个输出;缓存单元缓存的用于所述数据单元的数据块cm作为所述xts-aes加密电路处理所述数据单元时的第m+1个输出;数据缓存单元还接收明文,数据缓存单元将数据块pm与数据块cp合并;第三加密单元(aes2)耦合到数据缓存单元,对数据缓存单元所缓存的pm与cp合并后的数据块同模乘单元的输出的异或结果加密;第三异或单元(103)对第三加密单元(aes2)的输出与模乘单元的输出做异或,将第三异或单元(103)的输出作为所述xts-aes加密电路处理所述数据单元的第m个输出。

根据本发明的第三方面的第一xts-aes加密电路,提供了根据本发明第三方面的第二xts-aes加密电路,第1~m个数据块p0~pm-1均具有预设字节数,第m+1个数据块pm的字节数小于或者等于预设字节数。

根据本发明的第三方面的第一或第二xts-aes加密电路,提供了根据本发明第三方面的第三xts-aes加密电路,数据块cm与数据块cp的字节数的和为预设字节数。

根据本发明的第三方面的第一至第三xts-aes加密电路之一,提供了根据本发明的第三方面的第四xts-aes加密电路,数据块pm与数据块cp组合后的字节数的和为预设字节数,以及数据块pm与数据块cp组合后,数据块pm提供组合后数据的高位,数据块cp提供组合后数据的低位。

根据本发明的第三方面的第一至第四xts-aes加密电路之一,提供了根据本发明的第三方面的第五xts-aes加密电路,在处理数据单元的处理阶段s2-sm+1,第一aes加密单元(aes0)关闭。

根据本发明的第三方面的第一至第五xts-aes加密电路之一,提供了根据本发明的第三方面的第六xts-aes加密电路,所述模乘单元包括多个缓存部件,用于缓存用于多个数据单元的每个的模乘结果,以及在处理第一数据单元的阶段时,将缓存的第一数据单元的模乘结果作为模乘单元的输出,并用所述模乘单元的下一输出更新所述缓存的第一数据单元的模乘结果。

根据本发明的第三方面的第一至第六xts-aes加密电路之一,提供了根据本发明的第三方面的第七xts-aes加密电路,所述数据缓存单元包括多个存储部件,用于存储用于多个数据单元的每个的合并后的数据块pm与数据块cp。

根据本发明的第三方面的第一至第七xts-aes加密电路之一,提供了根据本发明的第三方面的第八xts-aes加密电路,在处理数据单元的阶段s1,模乘单元的输入是第一aes加密单元(aes0)的输出,在处理数据单元的阶段s2到阶段sm+1,模乘单元的输入是模乘单元的前一个输出。

根据本发明的第三方面的第一至第八xts-aes加密电路之一,提供了根据本发明的第三方面的第九xts-aes加密电路,第三加密单元(aes2)仅在处理数据单元的阶段sm时,对数据缓存单元所缓存的pm与cp合并后的数据同模乘单元的输出的异或结果加密。

根据本发明的第三方面的第一至第九xts-aes加密电路之一,提供了根据本发明的第三方面的第十xts-aes加密电路,仅在处理数据单元的阶段s1到阶段sm时,第一异或单元(101)对模乘单元的输出与对应于数据单元的当前阶段的数据块(p0-pm-1)做异或。

根据本发明的第三方面的第一至第十xts-aes加密电路之一,提供了根据本发明的第三方面的第十一xts-aes加密电路,仅在处理数据单元的阶段s1到阶段sm时,第二aes加密单元(aes1)对第一异或单元(101)的输出加密。

根据本发明的第三方面的第一至第十一xts-aes加密电路之一,提供了根据本发明的第三方面的第十二xts-aes加密电路,仅在处理数据单元的阶段s1到阶段sm时,第二异或单元(102)对第二aes加密单元(aes1)与模乘单元的输出做异或。

根据本发明的第三方面的第一至第十二xts-aes加密电路之一,提供了根据本发明的第三方面的第十三xts-aes加密电路,数据缓存单元仅在当处理数据单元的sm+1阶段时数据缓存单元将明文数据块pm与数据块cp合并。

根据本发明的第四方面,提供了根据本发明第四方面的第一xts-aes解密电路,用于根据xts-aes协议对数据单元解密,数据单元包括m+1个数据块c0~cm,m为正整数,以及对数据单元的处理包括对应于数据块c0~cm的m+1个阶段q1~qm+1;所述xts-aes解密电路包括:第一加密单元(aes0)、第二解密单元(aes1)、第三解密单元(aes2)、模乘单元、第一异或单元(101)、第二异或单元(102)、第三异或单元(103)与数据缓存单元;在处理数据单元的处理阶段q1,第一加密单元(aes0)对数据单元的调整值加密,其输出耦合到模乘单元;模乘单元的输出耦合到第一异或单元(101)与模乘单元的输入;第一异或单元(101)用于对模乘单元的q1-qm-2阶段输出与对应于数据单元的q1-qm-2阶段的数据块(c0-cm-2)做异或,以及用于对模乘单元的qm阶段的输出与数据单元的qm-1阶段的数据块(cm-1)做异或;第二aes解密单元(aes1)对第一异或单元(101)的输出解密;第二异或单元(102)对第二aes解密单元(aes1)的输出与模乘单元的输出做异或;其中当处理数据单元的qm阶段时,用数据缓存单元缓存第二异或单元(102)的输出,所缓存的数据块包括数据块pm与数据块pp两部分;将第二异或单元处理数据单元的阶段q1到阶段qm-1的输出作为所述xts-aes解密电路处理所述数据单元的第1到第m-1个输出;缓存单元缓存的用于所述数据单元的数据块pm作为所述xts-aes解密电路处理所述数据单元时的第m+1个输出;数据缓存单元还接收密文,数据缓存单元将数据块cm与数据块pp合并;第三解密单元(aes2)耦合到数据缓存单元,对数据缓存单元所缓存的cm与pp合并后的数据同模乘单元的输出的异或结果解密;第三异或单元(103)对第三解密单元(aes2)的输出与模乘单元的输出做异或,将第三异或单元(103)的输出作为所述xts-aes解密电路处理所述数据单元的第m个输出。

根据本发明的第四方面的第一xts-aes解密电路,提供了根据本发明第四方面的第二xts-aes解密电路,第1~m个数据块c0~cm-1均具有预设字节数,第m+1个数据块cm的字节数小于或者等于预设字节数。

根据本发明的第四方面的第一或第二xts-aes解密电路,提供了根据本发明第四方面的第三xts-aes解密电路,数据块pm与数据块pp的字节数的和为预设字节数。

根据本发明的第四方面的第一至第三xts-aes解密电路之一,提供了根据本发明的第四方面的第四xts-aes解密电路,数据块cm与数据块pp组合后的字节数的和为预设字节数,以及数据块cm与数据块pp组合后,数据块cm提供组合后数据的高位,数据块pp提供组合后数据的低位。

根据本发明的第四方面的第一至第四xts-aes解密电路之一,提供了根据本发明的第四方面的第五xts-aes解密电路,在处理数据单元的处理阶段q2~qm+1,第一aes加密单元(aes0)关闭。

根据本发明的第四方面的第一至第五xts-aes解密电路之一,提供了根据本发明的第四方面的第六xts-aes解密电路,所述模乘单元包括多个缓存部件,用于缓存用于多个数据单元的每个的模乘结果,以及在处理第一数据单元的阶段时,将缓存的第一数据单元的模乘结果作为模乘单元的输出,并用所述模乘单元的下一输出更新所述缓存的第一数据单元的模乘结果。

根据本发明的第四方面的第一至第六xts-aes解密电路之一,提供了根据本发明的第四方面的第七xts-aes解密电路,所述数据缓存单元包括多个存储部件,用于存储用于多个数据单元的每个的合并后的数据块cm与数据块pp。

根据本发明的第四方面的第一至第七xts-aes解密电路之一,提供了根据本发明的第四方面的第八xts-aes解密电路,在处理数据单元的阶段q1,模乘单元的输入是第一加密单元(aes0)的输出,在处理数据单元的阶段q2到阶段qm+1,模乘单元的输入是模乘单元的前一个输出。

根据本发明的第四方面的第一至第八xts-aes解密电路之一,提供了根据本发明的第四方面的第九xts-aes解密电路,第三解密单元(aes2)仅在处理数据单元的阶段qm时,对数据缓存单元所缓存的cm与pp合并后的数据块同模乘单元的输出的异或结果加密。

根据本发明的第四方面的第一至第九xts-aes解密电路之一,提供了根据本发明的第四方面的第十xts-aes解密电路,仅在处理数据单元的阶段q1到阶段qm-1时,第一异或单元(101)对模乘单元的输出与对应于数据单元的当前阶段的数据块(c0-cm-2)做异或。

根据本发明的第四方面的第一至第十xts-aes解密电路之一,提供了根据本发明的第四方面的第十一xts-aes解密电路,仅在处理数据单元的阶段q1到阶段qm时,第二解密单元(aes1)对第一异或单元(101)的输出解密。

根据本发明的第四方面的第一至第十一xts-aes解密电路之一,提供了根据本发明的第四方面的第十二xts-aes解密电路,仅在处理数据单元的阶段q1到阶段qm时,第二异或单元(102)对第二aes解密单元(aes1)与模乘单元的输出做异或。

根据本发明的第四方面的第一至第十二xts-aes解密电路之一,提供了根据本发明的第四方面的第十三xts-aes解密电路,数据缓存单元仅在当处理数据单元的qm+1阶段时数据缓存单元将密文数据块cm与数据块pp合并。

根据本发明的第五方面,提供了根据本发明第五方面的第一xts-aes数据单元加密电路,数据单元包括m+1个数据块p0~pm,m为正整数,其中,第1~m个数据块p0~pm-1均具有预设字节数,第m+1个数据块pm的字节数小于或者等于预设字节数;所述xts-aes加密电路包括:第一加密单元(aes0)、模乘单元、异或单元、第二加密单元(aes1)、第三加密单元(aes2)与缓存与调整单元,其中,第一加密单元(aes0)用于对数据单元的调整值进行加密得到数据块p0’,并将其输送给模乘单元;模乘单元对数据块p0’或模乘单元的前一运算结果进行模乘运算,得到数据块p0”和数据块p1’~pm’,并缓存运算结果;异或单元包括第一异或单元、第二异或单元和第三异或单元,其中,第一异或单元用于将数据块p0”和数据块p1’~pm-1’与相对应的数据块p0~pm-1分别进行异或得到数据块a0~am-1;第二异或单元用于将经第二加密单元(aes1)加密后的得到的数据块a0’~am-1’分别和数据块p0”、数据块p1’~pm-1’进行异或得到数据块b0~bm-1;其中数据块b0~bm-2是xts-aes数据单元加密电路处理所述数据单元的第1到第m-1个输出;第三异或单元用于将经第三加密单元(aes2)将数据块pm与数据块bm-1拆分后得到的数据块cm和数据块cp中的数据块cp组合后,并与模乘单元的输出数据块pm做异或后,加密得到的数据块am’与模乘单元的输出数据块pm’进行异或,得到数据块cm-1,作为xts-aes数据单元加密电路处理所述数据单元的第m个输出;第二加密单元(aes1)用于对数据块a0~am-1进行加密,得到数据块a0’~am-1’;缓存与调整单元用于对经第二加密单元(aes1)加密后的得到的数据块am-1’与数据块pm-1’进行异或得到的数据块bm-1进行缓存,将数据块pm与数据块bm-1拆分后得到的数据块cm和数据块cp中的数据块cp组合,数据块cm作为所述xts-aes加密电路处理所述数据单元时的第m+1个输出;第三加密单元(aes2)用于对数据块pm与数据块cp的组合同数据块pm’的异或结果进行加密。

根据本发明的第五方面的第一xts-aes数据单元加密电路,提供了根据本发明第五方面的第二xts-aes数据单元加密电路,预设字节数为128字节。

根据本发明的第五方面的第一xts-aes数据单元加密电路,提供了根据本发明第五方面的第三xts-aes数据单元加密电路,数据单元中的每个数据块p0~pm还包括序列号,指示数据块p0~pm之一在数据单元中的位置。

根据本发明的第五方面的第一xts-aes数据单元加密电路,提供了根据本发明第五方面的第四xts-aes数据单元加密电路,数据块cm与数据块cp的字节数的和为预设字节数。

根据本发明的第五方面的第一xts-aes数据单元加密电路,提供了根据本发明第五方面的第五xts-aes数据单元加密电路,数据块pm与数据块cp组合后的字节数为预设字节数。

根据本发明的第五方面的第一xts-aes数据单元加密电路,提供了根据本发明第五方面的第六xts-aes数据单元加密电路,第一加密单元(aes0)仅在处理数据单元的数据块p0时工作。

根据本发明的第六方面,提供了根据本发明的第六方面的第一xts-aes数据单元解密电路,数据单元包括m+1个数据块c0~cm,m为正整数,其中,第1~m个数据块c0~cm-1均具有预设字节数,第m+1个数据块cm的字节数小于或者等于预设字节数;所述xts-aes解密电路包括:第一加密单元(aes0)、模乘单元、异或单元、第二解密单元(aes1)、第三解密单元(aes2)与缓存与调整单元,其中,第一加密单元(aes0)用于对数据单元的调整值进行加密得到数据块c0’,并将其输送给模乘单元;模乘单元对数据块c0’或模乘单元的前一运算结果进行模乘运算,得到数据块c0”和数据块c1’~cm’,并缓存运算结果;异或单元包括第一异或单元、第二异或单元和第三异或单元,其中,第一异或单元用于将数据块c0”和数据块c1’~cm-2’与相对应的数据块c0~cm-2分别进行异或得到数据块d0~dm-2,以及用于将数据块cm’与数据块cm-1进行异或得到数据块dm-1;第二异或单元用于将经第二解密单元(aes1)解密后得到的数据块d0’~dm-1’分别和与数据块c0”、数据块c1’~cm-1’进行异或得到数据块e0~em-2,以及用于将经第二解密单元(aes1)解密后得到的数据块dm-1’与数据块cm’进行异或得到数据块em-1;其中数据块e0~em-2是xts-aes数据单元解密电路处理所述数据单元的第1到第m-1个输出;第三异或单元用于将经第三解密单元(aes2)将数据块cm与数据块em-1拆分后得到的数据块pm和数据块pp中的数据块pp组合后,并与模乘单元的输出数据块cm-1’做异或后,解密得到的数据块em与模乘单元的输出数据块cm-1’进行异或,得到数据块pm-1,作为xts-aes数据单元解密电路处理所述数据单元的第m个输出;第二解密单元(aes1)用于对数据块d0~dm-1进行解密,得到数据块d0’~dm-1’;缓存与调整单元用于对经第二解密单元(aes1)解密后的得到的数据块dm-1’与数据块cm’进行异或得到的数据块em-1进行缓存,将数据块cm与数据块em-1拆分后得到的数据块pm和数据块pp中的数据块pp组合,数据块pm作为所述xts-aes解密电路处理所述数据单元时的第m+1个输出;第三解密单元(aes2)用于对数据块cm与数据块pp的组合同数据块cm-1’的异或结果进行解密。

根据本发明的第六方面的第一xts-aes数据单元解密电路,提供了根据本发明第六方面的第二xts-aes数据单元解密电路,预设字节数为128字节。

根据本发明的第六方面的第一xts-aes数据单元解密电路,提供了根据本发明第六方面的第三xts-aes数据单元解密电路,在数据单元中的每个数据块c0~cm还包括序列号,指示数据块c0~cm之一在数据单元中的位置。

根据本发明的第六方面的第一xts-aes数据单元解密电路,提供了根据本发明第六方面的第四xts-aes数据单元解密电路,数据块pm与数据块pp的字节数的和为预设字节数。

根据本发明的第六方面的第一xts-aes数据单元解密电路,提供了根据本发明第六方面的第五xts-aes数据单元解密电路,数据块cm与数据块pp组合后的字节数为预设字节数。

根据本发明的第六方面的第一xts-aes数据单元解密电路,提供了根据本发明第六方面的第六xts-aes数据单元解密电路,第一加密单元(aes0)仅在处理数据单元的数据块c0时工作。

根据本发明的第七方面,提供了根据本发明第七方面的第一数据单元加密方法,用于根据xts-aes协议对数据单元加密,数据单元为明文,数据单元包括m+1个数据块p0~pm,m为大于或者等于1的正整数,其中,第1~m个数据块p0~pm-1均具有预设字节数,第m+1个数据块pm的字节数小于或者等于预设字节数;该方法包括如下步骤:由第一加密单元(aes0)对数据单元的调整值进行加密得到数据块p0’;由模乘单元对数据块p0’或模乘单元的前一运算结果进行模乘运算,后得到数据块p0”和数据块p1’~pm’,并缓存运算结果;将模乘单元的运算结果,即数据块p0”和数据块p1’~pm-1’与相对应的数据块p0~pm-1分别进行异或得到数据块a0~am-1;由第二加密单元(aes1)将数据块a0~am-1分别进行加密得到数据块a0’~am-1’,并将数据块a0’~am-2’分别与模乘单元的运算结果相异或,异或结果作为对数据块p0~pm-2的加密输出c0~cm-2,将数据块am-1’与模乘单元的运算结果pm-1’进行异或后得到数据块bm-1;将数据块bm-1分成数据块cm与数据块cp两部分,并将数据块pm与数据块cp组合与数据块块pm’异或后由第三加密单元(aes2)加密,得数据块am’,并将数据块am’与数据块pm’异或得到数据块cm-1后输出,再输出数据块cm。

根据本发明的第七方面的第一数据单元加密方法,提供了根据本发明第七方面的第二数据单元加密方法,数据块p0~pm在数据单元中,还包括序列号,指示数据块p0~pm之一在数据单元中的位置。

根据本发明的第七方面的第一数据单元加密方法,提供了根据本发明第七方面的第三数据单元加密方法,预设字节数为128字节。

根据本发明的第七方面的第一数据单元加密方法,提供了根据本发明第七方面的第四数据单元加密方法,数据块cm与数据块cp的字节数的和为预设字节数。

根据本发明的第七方面的第一数据单元加密方法,提供了根据本发明第七方面的第五数据单元加密方法,数据块pm与数据块cp组合后的字节数为预设字节数。

根据本发明的第八方面,提供了根据本发明第八方面的第一数据单元解密运算的方法,用于根据xts-aes协议对数据单元解密,数据单元为密文,数据单元包括m+1个数据块c0~cm,m为大于或者等于1的正整数,其中,第1~m个数据块c0~cm-1均具有预设字节数,第m+1个数据块cm的字节数小于或者等于预设字节数;该方法包括如下步骤:由第一加密单元(aes0)对数据单元的的调整值进行加密得到数据块c0’;由模乘单元对数据块c0’或模乘单元的前一运算结果进行,模乘运算,后得到数据块c0”和数据块c1’~cm’,并缓存运算结果;将模乘单元的运算结果,即数据块c0”和数据块c1’~cm-2’与相对应的数据块c0~cm-2分别进行异或得到数据块d0~dm-2;将数据块cm’与数据块cm-1做异或得到数据块dm-1;由第二解密单元(aes1)将数据块d0~dm-1分别进行解密得到数据块d0’~dm-1’,并将数据块d0’~dm-2’分别与模乘单元的运算结果相异或,异或结果作为对数据块c0~cm-2的解密输出p0~pm-2,将数据块dm-1’与模乘单元的运算结果cm’进行异或后得到数据块em-1后缓存;将数据块em-1分成数据块pm与数据块pp两部分,并将密文数据块cm与数据块pp组合与数据块cm-1’异或后由第三解密单元(aes2)解密,得数据块dm’,并将数据块dm’与数据块cm-1’异或得到数据块pm-1后输出,再输出数据块pm。

根据本发明的第八方面的第一数据单元解密运算的方法,提供了根据本发明第八方面的第二数据单元解密运算的方法,数据块c0~cm在数据单元中,还包括序列号,指示数据块c0~cm之一在数据单元中的位置。

根据本发明的第八方面的第一数据单元解密运算的方法,提供了根据本发明第八方面的第三数据单元解密运算的方法,预设字节数为128字节。

根据本发明的第八方面的第一数据单元解密运算的方法,提供了根据本发明第八方面的第四数据单元解密运算的方法,数据块pm与数据块pp的字节数的和为预设字节数。

根据本发明的第八方面的第一数据单元解密运算的方法,提供了根据本发明第八方面的第五数据单元解密运算的方法,数据块cm与数据块pp组合后的字节数为预设字节数。

根据本发明的第九方面,提供了根据本发明的第九方面的第一数据单元加密/解密运算的方法,识别要进行的运算类型,在要进行加密运算时执行如本发明第三方面的第一到第五数据单元加密方法所述的加密方法;以及在要进行解密运算时,执行如本发明第四方面的第一到第五数据单元解密方法所述的解密方法。

根据本发明的第十方面,提供一种包括程序代码的程序,当被载入存储设备并在存储设备上执行时,所述程序代码使所述存储设备执行根据本发明的第七方面、第八方面或第九方面的运算的方法。

由以上技术方案可见,本申请具有以下的技术效果:提高了xts-aes加密/解密运算中密文窃取的并行性,而避免了数据相关性对处理过程的打断。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。

图1展示了根据本申请实施例的xts-aes加密电路的流水线结构;

图2展示了根据本发明实施例的xts-aes加密电路加密明文数据块p0~pm-2生成密文数据块c0~cm-2的数据通路;

图3展示了根据本发明实施例的xts-aes加密电路加密明文数据块pm-1生成密文数据块cm的数据通路;

图4展示了根据本发明实施例的xts-aes加密电路加密明文数据块pm生成密文数据块cm-1的数据通路;

图5展示了多个数据单元在根据本发明实施例的xts-aes加密电路中被并行处理的时序图;

图6是根据本发明又一实施例的xts-aes加密电路的同第一加密单元相关部分的框图;

图7是根据本发明又一实施例的xts-aes加密电路的同第二加密单元相关部分的框图;以及

图8是根据本发明又一实施例的xts-aes加密电路的同第三加密单元相关部分的框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例1

图1展示了根据本申请实施例的xts-aes加密电路的流水线结构。xts-aes加密电路对明文数据单元加密。明文的每个数据单元包括m+1个(明文)数据块p0,p1,p2…pm-1,pm。除了数据块pm的字节数小于或者等于预设字节数外,其他数据块的字节数都是预设字节数,举例来说,数据单元为明文,预设字节数为16字节(128比特)。第一加密单元11、第二加密单元13与第三加密单元15均为根据aes标准对输入数据加密的加密单元。

如图1所示,处理数据块p0时,第一加密单元11对调整值加密,第一加密单元11的输出提供给模乘单元12。模乘单元12的计算结果送到第一异或单元101。在第一异或单元101,将模乘单元12的计算结果同明文数据块p0做异或,第一异或单元101的输出提供给第二加密单元13,加密后的结果再与模乘单元12的输出异或后,作为对数据块p0的加密输出c0。可选地,在数据单元加密处理期间,第一加密单元11仅用于对调整值加密,而在完成对调整值的加密后,第一加密单元11可以关闭,以降低功耗。

处理数据块p1~pm-2时,模乘单元12的输出提供给第一异或单元101。明文数据块p1~pm-2也提供给第一异或单元101。第一异或单元101的输出提供给第二加密单元13。模乘单元12的输出还提供给第二异或单元102。第二加密单元13加密后的结果与模乘单元12的输出经第二异或单元102异或后是对应数据块p1~pm-2的加密输出,记为数据块c1~cm-2。

处理数据块pm-1时,模乘单元12的输出提供给第一异或单元101。第一异或单元101将模乘单元12的输出同明文数据块pm-1异或,第一异或单元101的输出提供给第二加密单元13。第二加密单元13加密后的结果与模乘单元12的输出异或后,存入数据缓存及调整逻辑单元14(作为数据块cm与数据块cp)中,用于调整输出顺序,等待数据块pm的到来。

处理数据块pm时,将数据块pm提供数据缓存及调整逻辑单元14。数据缓存及调整逻辑单元14将数据块pm与数据块cp组合,组合后与模乘单元12的对应输出做异或,异或结果送给第三加密单元15。第三加密单元15的输出与模乘单元12的输出提供给第三异或单元103。在第三异或单元103的输出是作为加密结果输出的数据块cm-1。然后再将数据块cm作为加密结果输出。

每个数据单元各自具有调整值,第一加密单元11专用于对当前数据单元的调整值加密。

由以上所述可知,为进行密文窃取运算,第二加密单元13对除最后一个数据块pm外的所有数据进行运算,而对数据块pm进行旁路。第二加密单元13单元输出的数据,经过数据缓存及调整逻辑单元14,将数据块pm-1的加密运算结果的一部分(即数据块cp)与数据块pm进行合并得到一个128比特的数据。组合后的数据与对应的模乘结果异或,输出至第三加密单元15。此时进入第三加密单元15的数据已经和ieee1619标准要求的数据顺序一致了。在根据本发明的实施例中,第三加密单元15仅对经数据缓存及调整逻辑单元14合并后的最后一个完整的128比特数据块进行运算,而对其他数据进行旁路。在上述过程中,利用此高速流水线结构完成密文窃取运算,而不会因为其数据相关性打断流水线的处理。

为了清楚地描述根据本发明的实施例,结合图2-图4,展示了图1的xts-aes加密电路在处理数据单元的不同数据块时的数据通路。

图2展示了根据本发明实施例的xts-aes加密电路加密明文数据块p0~pm-2生成密文数据块c0~cm-2的数据通路。

p0~pm-2为同一数据单元中顺序的数据块,且均为128比特,运算得到的密文数据块c0~cm-2的顺序与输入顺序一一对应。相应的数据流如图2中的虚线所示,其中输入数据为数据单元的明文数据块,调整值同数据单元相对应,依照xts-aes标准获得。

在处理一个数据单元过程中,仅对应第一个数据块p0,第一加密单元11的输入为数据单元所对应的128比特的调整值,所用密钥为256比特的key2,产生的128比特密文数据块作为模乘单元12的输入。在处理数据单元的其他数据块时,第一加密单元11可以关闭,或者用于加密其他数据单元调整值。

明文数据块p0~pm-2运算生成密文数据块c0~cm-2时,若当前数据块为所在数据单元中的第一个数据块p0,第一加密单元11的计算结果作为模乘单元12的输入;在处理数据块p1~pm-2时模乘单元12上一次的运算结果作为模乘的输入。

第二加密单元13的输入是异或单元101的输出。输入的明文数据块p0~pm-2与模乘单元12的输出在异或单元101处进行异或后,将异或结果送入第二加密单元13进行加密运算。加密运算采用的密钥为256比特的key1。第二加密单元13的输出耦合到异或单元102的输入。异或单元102对第二加密单元13的输出与模乘单元12的输出做异或。异或单元102的输出是同明文数据块p0~pm-2相对应的密文数据块c0~cm-2。

以明文数据块p0和p1为例,对于数据单元的调整值经第一加密单元11加密后,得到数据块p0’,经模乘单元12运算后得到数据块p0”,数据块p0”与明文数据块p0进行异或,得到数据块a0,数据块a0经第二加密单元13加密后,得到数据块a0’,并将数据块a0’与模乘单元12的运算结果,即数据块p0”相异或,异或结果作为对明文数据块p0的加密输出c0。

对于明文数据块p1,在模乘单元12中,以模乘单元12上一次的运算结果作为模乘的输入,即将数据块p0”作为模乘的输入,经模乘单元12运算后得到数据块p1’,数据块p1’与明文数据块p1进行异或,得到数据块a1,数据块a1经第二加密单元13加密后,得到数据块a1’,并将数据块a1’与模乘单元12的运算结果,即数据块p1’相异或,异或结果作为对明文数据块p1的加密输出c1。依次类推,模乘单元得到数据块p2’~pm’,作为明文数据块p2~pm对应的模乘结果。

可选的,异或单元102的输出被提供给第三加密单元15。在处理明文数据块p0~pm-2时第三加密单元15旁路异或单元102的输出。

图3展示了根据本发明实施例的xts-aes加密电路加密明文数据块pm-1生成密文数据块cm的数据通路。

数据块pm-1作为数据单元中倒数第二个数据,其具有128比特。异或单元101对数据块pm-1与模乘单元12输出的数据块pm-1’做异或,异或单元101的输出被提供给第二加密单元13,第二加密单元13的输出与模乘结果pm-1’在异或单元102进行异或,得到数据块bm-1,数据块bm-1拆分为密文数据块cm和密文数据块cp。其中密文数据块cm作为数据单元的最后一个密文数据块输出,另一部分密文数据块cp将与最后一个明文数据块pm合并成一个完整的128比特数据,继续后续的运算。相应的数据流如图3中的虚线所示。

明文数据块pm-1运算生成密文数据块cm时,模乘单元12的输入为上一次的模乘运算的结果。

对于第二加密单元13,输入数据为明文数据块pm-1与模乘单元12的输出pm-1’经第一异或单元101进行异或后得到的数据块am-1。第二加密单元13采用的密钥为256比特的key1,运算结果与模乘单元12的输出pm-1’经第二异或单元102进行异或后得到数据块bm-1。数据块bm-1进入数据缓存及调整逻辑单元14。

在另一个例子中,缓存及调整逻辑单元14包括异或单元,以及缓存及调整逻辑单元14还接收模乘单元12的输出。第二加密单元13的输出直接提供给缓存及调整单元14。在缓存及调整单元14内,对第二加密单元13的输出同模乘单元12的输出做异或,得到数据块bm-1,以及数据块bm-1被拆分为密文数据块cm和密文数据块cp。

数据缓存及调整逻辑单元14对输入的数据进行缓存。数据块bm-1分成密文数据块cm和密文数据块cp两部分,密文数据块cm被数据缓存及调整逻辑单元14将其输出顺序调整至对应于数据单元的加密结果的最后一个数据。

数据块cm作为加密数据单元得到的最后一个数据块,可选地,被提供给第三加密单元15。第三加密单元15旁路数据块cm。

图4展示了根据本发明实施例的xts-aes加密电路加密明文数据块pm生成密文数据块cm-1的数据通路。

数据块pm为数据单元中最后一个数据块,其大小可能小于或等于128比特。根据xts-aes协议,数据块pm与数据块pm-1的运算结果的一部分密文数据块cp进行合并,合并后的数据块再经运算后的结果作为密文数据块cm-1输出,当数据块pm的字节数为128字节时,密文数据块cp的字节数为0。相应的数据流如图4中的虚线所示。

明文数据块pm运算生成密文数据块cm-1时,模乘单元12的输入为上一次的模乘运算的结果。

第二加密单元13旁路数据块pm,然后数据块pm进入数据缓存及调整逻辑单元14。

在数据缓存及调整逻辑单元14中对输入的数据进行拼接及调整。具体为,数据缓存及调整逻辑单元14等待数据块pm到来,将数据块pm与数据缓存及调整逻辑单元14所缓存的数据块cp进行拼接组合成完整的128比特数据,并与对应的模乘结果pm’异或。异或结果被提供给第三加密单元15。第三加密单元15对异或结果进行加密运算,所用的密钥为256比特的key1。异或单元103对第三加密单元15的输出am’与模乘单元12的模乘结果pm’异或,异或后的结果作为密文数据块cm-1输出。

图5展示了多个数据单元在根据本发明实施例的xts-aes加密电路中被并行处理的时序图。流水线由加密运算单元及相关控制逻辑构成。

如图5所示,图中bp代表加密单元不进行加密运算而是旁路(bypass)输入的数据块。du0、du1代表的数据单元,不同的下标指示不同的数据单元。du0p0、du1p1指示对数据单元的数据块p相对应的数据块处理。图5中,横轴指示时间,在横轴的t0、t1、…、tn、tn+1、…tn+4时间段,每个时间段内加密单元完成对数据块的一次加密运算。如图5所示,第一加密单元、第二加密单元与第三加密单元的计算并行执行,从而消除因xts-aes的密文窃取操作对加密过程的阻塞。例如,参看图5在t0时间段,第一加密单元处理du0p0,在t1、t2时间段,第二加密单元处理du0p0、du0p1。在t3时间段,虽然du0的加密过程尚未完成,但可将du1p0送入第一加密单元进行处理,以增加加密计算的并行性。可选地(未示出),在t3时刻,由第一加密单元处理du1p0,同时第二加密单元处理du0p2,以进一步增加计算的并行性。以及依然可选地,模乘单元12包括多个缓存单元,用于缓存对应于多个数据单元的模乘结果。

在tn+1时间段,第二加密单元计算du0pm-1,而在tn+2时间段,第三加密单元计算利用第二加密单元对du0pm-1的计算结果计算du0pm|cp。在图5中,tn+2时间段第二加密单元被示出为空闲(旁路输入数据,bp)。可选地,在tn+2时间段,可将du1pm-1输入给第二加密单元(未示出),并在tn+3时间段,由第三加密单元计算du1pm|cp(未示出),从而进一步增加加密计算的并行性。以及依然可选地,数据缓存及调整逻辑单元14包括多个缓存单元,用于缓存对应于多个数据单元的数据块bm-1。

根据本发明实施例,还提供了对密文数据单元按xts-aes标准进行解密的解密电路。解密电路的流水线结构同图1相似,区别在于将第二加密单元13与第三加密单元15分别替换为第二解密单元与第三解密单元。第二解密单元与第三解密单元均为根据aes标准对输入数据解密的解密单元。

在解密过程中,待解密的密文数据单元包括m+1个数据块c0~cm,数据块c0~cm-1的大小为例如128比特,数据块cm的大小小于或者等于128比特。在解密一个密文数据单元时,模乘单元12的对应输出记为数据块c0”和数据块c1’~cm’。

在处理密文数据块cm-1时,密文数据块cm-1同模乘单元12输出的数据块cm’进行异或(结果记为dm-1)。第二解密单元对数据块dm-1进行解密,将解密结果同模乘单元12输出的数据块cm’进行异或(结果记为em-1)。由数据缓存及调整逻辑单元14缓存数据块em-1。数据块em-1包括数据块pm与数据块pp两部分。在处理密文数据块cm时,将密文数据块cm送到数据缓存及调整逻辑14。数据缓存及调整逻辑14将密文数据块cm同缓存的数据块pp合并,将合并结果与模乘单元12输出的数据块cm-1’进行异或,异或结果提供给第三解密单元。以及将第三解密单元的输出由异或单元103同模乘单元12输出的数据块cm-1’进行异或,异或结果作为对密文数据单元解密得到的倒数第2个明文数据单元pm-1。而将数据缓存及调整逻辑缓存的数据块pm作为对密文数据单元解密得到的倒数第1个明文数据单元。

图6是根据本发明又一实施例的xts-aes加密电路的同第一加密单元相关部分的框图。第一加密单元11输入的数据为128比特的调整值。

示例性地,第一加密单元11及模乘单元12的工作过程详细描述如下。

对于每个数据单元,第一加密单元11对输入的调整值进行加密运算,所用的加密密钥为256比特的key2,产生128字节的加密结果p0’。

模乘单元12的输入存储模乘结果缓存单元122。模乘结果缓存单元122与第一加密单元11的输出都耦合到选择器102,模乘运算单元122的输入为128字节的选择器102的输出。若当前处理数据单元的第1个数据块,选择器102选择加密结果p0’提供给模乘单元12;若当前处理数据单元的第2到第m+1个数据块,选择器102选择模乘结果缓存单元122的输出提供给模乘单元12。模乘单元12的输出记为模乘结果104。对应于数据单元的第1到第m个数据块,模乘单元12的输出依次为数据块p0”、p1’、p2’、…pm-1’与pm’。

图7是根据本发明又一实施例的xts-aes加密电路的同第二加密单元相关部分的框图。

第二加密单元13对加密过程中除对应数据单元的最后一个数据块pm之外的所有其他数据块加密,而将最后一个数据块pm旁路。输入的模乘结果104为模乘单元12输出的模乘结果104(也参看图6)。

参看图7,模乘结果104同明文数据块耦合到异或单元101。异或单元101的输出耦合到选择器202,明文数据块也耦合到选择器202。在明文数据块为数据单元的最后数据块pm时,选择器202选择数据块pm,而在其他情况下,选择器202选择异或单元101的输出。多路器204的输入耦合到选择器202的输出,多路器204的输出之一提供给第二加密单元13,而多路器204的另一输出被第二加密单元13旁路而提供给流水线的后级。在明文数据块为数据单元的最后数据块pm时,多路器204输出的数据块pm被第二加密单元13旁路。第二加密单元13的输出记为第二加密单元输出206。

具体地,选择器202依据当前处理的数据块是否对应数据单元的最后一个数据块pm而作出选择。其中,若当前处理的数据块不是对应数据单元的最后一个数据块,选择器202的输出为异或单元101的异或结果,经多路器204输出至第二加密单元13进行加密;若当前处理的数据块对应数据单元的最后一个数据块pm,选择器202的输出为明文数据块pm,但结果不输出至第二加密单元13,而是经分配器204旁路输出。

当前处理的数据块不是对应数据单元的最后一个数据块pm时,第二加密单元13对多路器204输出的数据块进行加密运算。第二加密单元13所用的加密密钥为256比特key1,产生128比特的加密结果206。

图8是根据本发明又一实施例的xts-aes加密电路的同第三加密单元相关部分的框图。如图8所示,第三加密单元15处理密文窃取中对应最后一个明文数据块pm的运算。数据块pm的大小小于或者等于128比特(为了便于描述,下文中令pm的大小为x比特),对于其他数据旁路输出。参看图8,模乘结果104(参看图6)与第二加密单元13的输出(参看图7)耦合到异或单元102。作为举例,第二加密单元13的输出包括加密结果或被旁路的明文数据块。在数据单元加密的不同阶段,第二加密单元13输出加密结果或明文数据块pm。选择器302选择异或单元102或明文数据块之一,选择器302的输出被写入数据寄存器304。

第二加密单元13的输出(参看图7)与模乘结果104(参看图6)耦合到异或单元1028。异或单元1028的输出被写入数据寄存器306。第二加密单元13(明文数据块pm)的输出还耦合到拼接单元328,数据寄存器304的数据也耦合到拼接单元328。可选地,异或单元1028与异或单元102是同一个异或单元。

异或单元1038对模乘结果104与拼接单元328的输出做异或,异或单元1038耦合到选择器310。选择器310的另一输入是选择器308的输出。选择器308选择数据寄存器304或数据寄存器306之一作为输出。

多路器312将选择器310的输出耦合到第三加密单元15或提供旁路输出(不经过第三加密单元15)。第三加密单元15的输出耦合异或单元103,异或单元103对模乘结果104与第三加密单元15的输出做异或。

在对应数据单元的第一到第m-1个数据块的处理阶段,异或单元102对第二加密单元输出的加密结果同模乘结果104做异或。选择器302选择异或单元102的输出,并写入数据寄存器304。以及选择器308选择数据寄存器304的输出,选择器310选择选择器308的输出,多路器312使选择器308的输出旁路(不经过第三加密单元15)(作为对数据单元的加密结果的第1到第m-1个密文数据块,记为c0~cm-2)。可选地,可关闭第三加密单元15,以降低功耗。

在对应数据单元的第m个数据块(pm-1)的处理阶段,模乘单元102对第二加密单元13的加密结果同模乘结果104(pm-1’)做异或,异或结果(记为数据块bm-1,包括数据块cm与数据块cp两部分,数据块cm与数据块pm的字节数相同)通过选择器302写入数据寄存器304。异或结果中的数据块cm被写入数据寄存器306。

在对应数据单元的第m+1个数据块(pm)的处理阶段,拼接单元328将数据寄存器304中的数据块cp与第二异或单元13输出的明文数据块(pm)拼接。异或单元1038将拼接单元328与模乘结果104(数据块pm’)相异或。选择器310将异或单元1038的输出提供给多路器312。多路器312将异或单元1038的输出提供给第三加密单元15。第三加密单元15对异或单元1038的输出加密。异或单元103将第三加密单元15的输出同模乘结果(数据块pm’)相异或,得到的结果作为对数据单元加密的倒数第2个密文数据块(记为cm-1)。

以及接下来,选择器将数据寄存器306的输出提供给选择器310。选择器310将数据寄存器306的输出提供给多路器312。多路器312将数据寄存器306的输出旁路(不经过第三加密单元15)(记为cm)。

根据本发明又一实施例,还提供了对密文数据单元按xts-aes标准进行解密的解密电路。解密电路的框图与图6-图8展示的框图相似,区别在于将第二加密单元13与第三加密单元15分别替换为第二解密单元与第三解密单元。第二解密单元与第三解密单元均为根据aes标准对输入数据解密的解密单元。

在解密过程中,待解密的密文数据单元包括m+1个数据块c0~cm,数据块c0~cm-1的大小为例如128比特,数据块cm的大小小于或者等于128比特。在解密一个密文数据单元时,模乘单元12的对应输出记为数据块c0”和数据块c1’~cm’。

在对应密文数据块cm-1的处理阶段,密文数据块cm-1同模乘结果104提供的数据块cm’进行异或(通过异或单元101,也参看图7)(结果记为dm-1)。第二解密单元对数据块dm-1进行解密,将解密结果同模乘结果104提供的数据块cm’进行异或(通过异或单元102,也参看图8)(结果记为em-1,并存储在数据寄存器304,也参看图8)。数据块em-1包括数据块pm与数据块pp两部分。也将数据块pm存储在数据寄存器306(参看图8)。在对应密文数据块cm的处理阶段,将数据寄存器304(参看图8)的密文数据块cm送到拼接单元328。同缓存的数据块pp合并。拼接单元308将合并结果与模乘结果104提供的数据块cm-1’进行异或(通过异或单元1038),异或结果提供给第三解密单元。以及将第三解密单元的输出由异或单元103同模乘结果104提供的数据块cm-1’进行异或,异或结果作为对密文数据单元解密得到的倒数第2个明文数据单元pm-1。而将数据寄存器306缓存的数据块pm作为对密文数据单元解密得到的倒数第1个明文数据单元。

通过根据本发明的实施例,提高了对数据单元进行xts-aes加密/解密的处理速度,而避免了数据相关性对处理过程的打断。

尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1