一种适用于无源便携式设备的3des加密算法电路的制作方法

文档序号:6400026阅读:262来源:国知局
专利名称:一种适用于无源便携式设备的3des加密算法电路的制作方法
技术领域
本发明涉及SoC数字电路设计领域,特别涉及一种适用于CPU卡等无源便携式设备的3DES加密算法电路。
背景技术
CPU卡也称智能卡,卡内的集成电路中嵌有微处理器,实现了软硬件协同工作的方式,大大提高了其逻辑控制和数据处理的能力,这使得CPU卡采用强力的加密算法对交易流程进行全程加密成为可能,安全性能远远超过以前的逻辑加密卡。CPU卡还具有用户空间大、读取速度快、支持一卡多用等特点,可广泛应用于金融、保险、交通、政府行业等多个领域。
3DES加密算法是DES加密算法的一种安全变形,通过使用不同的密钥依次对数据实施DES加密、DES解密和DES加密,极大地扩展了加密的密钥空间,消除了暴力破解的可能。目前,仍然没有一种有效的方法可以破解3DES,在需要确保高级安全性能的应用中,3DES算法被广泛采用。
虽然CPU卡具有通过软件编程实现算法的能力,但软件实现3DES并不可取,原因如下:
第一,3DES算法的特点是运算量大,并行度高,且运算多为置换、移位、异或等逻辑运算,用微处理器串行执行指令的方式来实现效率低,耗时长。
第二,CPU卡无源便携,通过和读卡器之间的电磁感应获取能量,可供使用的电能有限,微处理器结构复杂,动作功耗大,实现3DES的长时间高功耗是卡本身难以承受的。
第三,微处理器实现3DES需要频繁借助片内ROM和RAM,这一方面会引入额外的功耗,另一方面也会给提供数据交互的片上总线造成巨大负担。
另一方面,虽然将3DES算法设计成CPU卡的硬件协处理器可以避免上述问题,但是硬件设计的自由度大,针对性强,不同的架构虽然能实现相同的功能,但在性能参数上却各有偏重,不针对系统需求特点的硬件结构反而会降低系统性能甚至造成设计失败。
CPU卡芯片的特点是工作频率不是很高(IS0-14443协议规定为13.56MHz±7kHz),但对低功耗设计要求严格,此外,从降低成本和方便嵌入的角度看,还要求芯片具有小面积、低资源消耗的优点,而通用的3DES硬件电路结构一般都是旨在追求芯片的高速数据处理能力,针对性差,不能很好地适用于CPU卡等无源便携式设备。发明内容
本发明的目的在于,提供一种适用于无源便携式设备的3DES加密算法电路,具有低功耗、小面积和低资源消耗的优点。
本发明提供了一种适用于无源便携式设备的3DES加密算法电路,其包括:
全局有限状态机,其用于控制该加密算法电路中各个模块的工作状态;
数据初始置换模块,用于完成3DES加密算法中待加密数据的初始置换;
密钥初始置换模块,用于完成3DES加密算法中密钥的初始置换;
轮函数模块,用于根据所述数据初始置换模块和子密钥生成模块的输出数据完成3DES加密算法中轮函数的计算;
子密钥生成模块,用于根据所述密钥初始置换模块的输出数据生成3DES算法中的子密钥;
数据逆置换模块,用于根据轮函数模块的计算结果完成3DES加密算法中数据的逆置换,得到所述输入数据的最终加密/解密结果。
本发明的有益效果是:
1、将3DES算法分解为五个基本功能模块并进行复用,有效减小了面积和资源消耗。
2、在分析子密钥生成模块所有工作方式的基础上,将其分解为三种基本工作模式并用三个子模块予以实现,有效简化了模块的复杂度。
3、模块设计成寄存器输出并引入门控时钟,有效降低了动态功耗。
4、合理安排算法流程,采用并行(包括模块之间的并行和模块内部的并行)的架构实现3DES算法,工作速度快,计算时间少。
5、接口简单,易于转化成符合不同总线要求的接口以满足不同嵌入式应用的要求。


图1为本发明中适用于无源便携式设备的3DES加密算法电路结构图2为本发明中子密钥生成模块的内部结构图3为本发明优选实施案例中加密算法电路的部分输入及输出信号的波形图4为本发明优选实施案例的性能评估报告示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
请参阅图1所示,本发明提供了一种适用于无源便携式设备的3DES加密算法电路1,其包括:
全局状态机2,其负责该加密算法电路的全局工作状态跳转,并根据当前状态输出其它各个模块的门控时钟使 能信号和多路选择器选择信号,以对其它模块的开启和数据流的走向进行控制,计算结束后状态机关闭所有模块,置该加密算法电路进入全局休眠状态,并输出结束信号。
全局状态机2包括两组状态寄存器cnt_des和cnt,电路状态由数据对(cnt_des,cnt)来标识,电路工作时状态机通过对输入时钟的计数来控制状态跳转,具体跳转方式如下:(0,0) — (0,1) — (0,2)—…一(0,19) — (1,1) — (1,2)—…一(1,19) — (2,1) — (2,2)—…一(2,19) — (3,1),其中(0,0)为闲置状态,(3,I)为运算完成的结束状态,这两个状态下所有基本功能模块的门控时钟均被关闭。
数据初始置换模块3,其通过线连(即输入输出之间的直接对应连接,不同的对应方式实现不同的置换)的硬件结构实现3DES算法中输入数据的初始置换,模块设计为寄存器输出,寄存器由模块内置的门控时钟予以驱动,门控时钟在cnt = 2时开启,其余状态时关闭。其输入在状态(0,2)时为初始输入数据,其余状态时为上一次DES运算的结果,即数据逆置换模块7的输出,而输入数据的切换由内部多路选择器完成。其输出为轮函数模块5的输入。
密钥初始置换模块4,其通过线连的硬件结构实现3DES算法中密钥的初始置换,模块设计为寄存器输出,寄存器由模块内置的门控时钟予以驱动,门控时钟在cnt = I时开启,其余状态时关闭。其输入在加密模式下为:cnt_des = O时为keyl、cnt_des = I时为key2、cnt_des = 2 时为 key3,在解密模式下为:cnt_des = O 时为 key3、cnt_des = I 时为key2、cnt_des = 2时为keyl,而输入数据的切换由内部多路选择器完成,其中keyl、key2和key3为原始的密钥输入。其输出为子密钥产生模块6的输入。
子密钥产生模块6,其通过移位和线连的硬件结构实现3DES算法中子密钥的生成。其输入在cnt = 2时为密钥初始置换模块4的输出,其余状态时为其自身上一次的输出,而输入数据的切换由子密钥产生模块6包含的三个子模块内部的多路选择器完成。其输出为轮函数模块5的输入。
经简化的子密钥产生模块6如图2所示,包含3个子模块:第一子模块61,其在加密时将输入数据左移I位,解密时保持不变;第二子模块62,其在加密时将输入数据左移I位,解密时右移I位;第三子模块63,其在加密时将输入左移2位,解密时右移2位。子模块设计为寄存器输出,寄存器由子模块内置的门控时钟予以驱动。子模块61的门控时钟在cnt = 2时开启,其余状态时关闭;子模块62的门控时钟在cnt = 3、10、17时开启,其余状态时关闭;子模块63的门控时钟在cnt = 4 9、11 16时开启,其余状态时关闭。子密钥产生模块6还包括一个多路选择器64,其在cnt = 3时选择子模块61的输出,在cnt =4、11、18时选择子模块62的输出,在cnt = 5 10、12 17时选择子模块63的输出。
轮函数模块5,其通过移位、线连和异或的硬件结构实现3DES算法中轮函数的功能,模块设计为寄存器输出,寄存器由模块内置的门控时钟予以驱动,门控时钟在cnt =318时开启,其余状态时关闭。其输入的一部分始终为子密钥产生模块6的输出,另一部分在cnt = 3时为数据初始置换模块3的输出,其余状态时为模块5自身上一次的输出,数据切换由内部多路选择器完成。其输出为数据逆置换模块7的输入。
数据逆置换模块7,通过线连的硬件结构实现3DES算法中数据的逆置换,模块设计为寄存器输出,寄存器由模块内置的门控时钟予以驱动,门控时钟在cnt = 19时开启,其余状态时关闭。其输入始终为轮函数模块5的输出。其输出一方面在下一轮DES运算开始时为数据初始置换模块3的输入,另一方面在计算结束时即为最终的数据输出。
实施例1
为了验证本发明一种适用于CPU卡的3DES加密算法的电路结构的功能,进行了如下的实验:
随机选取了 一组明文和密钥输入:
din = 0x9ba26cab5d715f65,
keyl = 0xb0004d01elbe37b5,
key2 = 0x98feb211c096fa8e,
key3 = 0x764f9365f02cee22。经计算,经过3DES加密的密文输出应为:dout = 0x97078658210b6718。利用本发明对以上明文和密文分别进行一次加密和解密,结果如图3所示。图3示出了输入到所述3DES加密算法的部分输入及输出信号,所述部分输入信号从上至下依次为:复位信号、时钟信号、加解密选择信号、启动信号、结束信号、输出数据信号。由图3的输出数据信号的结果可以看出电路结构功能完全正确,且可以计数出一次3DES运算仅需58个时钟周期。实施例2为了验证本发明提出的上述适用于CPU卡的3DES加密算法的电路结构的性能,进行了如下的实验:选用Charter 0.35 μ m CMOS工艺库和Synopsys公司的软件工具DesignCompiler在选取最差环境条件WCCOM下(电压=3.0V,温度=125°C )进行综合评估,得到如图4所示的评估报告,包括:时序评估报告(上),单位为ns;面积评估报告(中),单位为门数;功耗评估报告(下)。报告显示本发明至少能满足20MHz的工作频率要求,面积约为8500门,动态功耗在3V工作电压和20MHz工作频率下仅为2.44mff,完全符合CPU卡的性能要求。以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种适用于无源便携式设备的3DES加密算法电路,其包括: 全局有限状态机,其用于控制该加密算法电路中各个模块的工作状态; 数据初始置换模块,用于完成3DES加密算法中待加密数据的初始置换; 密钥初始置换模块,用于完成3DES加密算法中密钥的初始置换; 轮函数模块,用于根据所述数据初始置换模块和子密钥生成模块的输出数据完成3DES加密算法中轮函数的计算; 子密钥生成模块,用于根据所述密钥初始置换模块的输出数据生成3DES算法中的子密钥; 数据逆置换模块,用于根据轮函数模块的计算结果完成3DES加密算法中数据的逆置换,得到所述输入数据的最终加密/解密结果。
2.如权利要求1所述的加密算法电路,其特征在于,所述子密钥生成模块包括三个子模块: 第一子模块,其在数据加密时将密钥左移I位,数据解密时保持不变; 第二子模块,其在数据加密时将密钥左移I位,数据解密时右移I位; 第三子模块,其在数据加密时将密钥左移2位,数据解密时右移2位。
3.如权利要求2所述的加密算法电路,其特征在于,所述子密钥生成模块的三个子模块共用所述子密钥生成模块的输入,其输出连接至所述子密钥生成模块内部的多路选择器,以根据所述全局有限状态机的输出状态选择相应子模块的输出。
4.如权利要求1所述的加密算法电路,其特征在于,所述各个模块内部均包括输入数据多路选择器,其在所述全局有限状态机的输出状态控制下进行输入数据的选择。
5.如权利要求2所述的加密算法电路,其特征在于,所述子密钥产生模块还包括输出数据多路选择器,其在所述全局有限状态机的输出状态控制下,选择所述三个子模块之一的输出数据进行输出。
6.如权利要求1所述的加密算法电路,其特征在于,所述各个模块均包括输出寄存器,其由各个模块内部的门控时钟驱动,且所述门控时钟的使能信号由全局有限状态机的输出状态控制。
7.如权利要求1所述的加密算法电路,其特征在于,所述数据初始置换模块在所述全局有限状态机的输出状态控制下选择初始输入数据或上一次轮函数模块的输出数据作为输入。
8.如权利要求2所述的加密算法电路,其特征在于,所述三个子模块在所述全局有限状态机的输出状态控制下选择密钥初始转换模块或其自身上一次的输出作为输入。
9.如权利要求1所述的加密算法电路,其特征在于,所述轮函数模块的一部分输入为子密钥产生模块的输出,另一部分输入为所述数据初始置换模块的输出或其自身上一次的输出。
10.如权利要求1所述的加密算法电路,其特征在于,所述全局有限状态机输出各个模块的门控时钟使能信号,以控制各个模块的开启和关闭。
全文摘要
本发明公开了一种适用于无源便携式设备的3DES加密算法电路,其包括全局有限状态机,其用于控制该加密算法电路中各个模块的工作状态;数据初始置换模块,用于完成3DES加密算法中待加密数据的初始置换;密钥初始置换模块,用于完成3DES加密算法中密钥的初始置换;轮函数模块,用于根据所述数据初始置换模块和子密钥生成模块的输出数据完成3DES加密算法中轮函数的计算;子密钥生成模块,用于根据所述密钥初始置换模块的输出数据生成3DES算法中的子密钥;数据逆置换模块,用于根据轮函数模块的计算结果完成3DES加密算法中数据的逆置换,得到所述输入数据的最终加密/解密结果。
文档编号G06F21/72GK103150522SQ20131007185
公开日2013年6月12日 申请日期2013年3月7日 优先权日2013年3月7日
发明者方睿, 鲁华祥, 边昳, 陈旭, 陈刚, 葛滨, 徐露露 申请人:中国科学院半导体研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1