一种适用于RFID阅读器的DES加密解密装置
技术领域
本发明涉及一种适用于RFID阅读器的DES加密解密装置。
背景技术
DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法,1977年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS),并授权在非密级政府通信中使用,随后该算法在国际上广泛流传开来。DES算法在RFID领域具有很高的安全性。DES算法的入口参数有三个:密钥(Key)、数据(Data)、模式(Mode),其中密钥(Key)为7个字节共56位,是DES加密算法的工作密钥;数据(Data)为8个字节64位,是要被加密或被解密的数据;模式(Mode)为DES算法的工作模式,有两种:加密模式或解密模式。
3DES算法(即Triple DES)是DES向AES过渡的加密/解密算法,它使用3组56位的密钥对数据进行三次DES运算,是DES的一个更安全的变形,它以DES算法为基本模块,通过组合分组方法设计出分组加密/解密算法,比起最初的DES算法,3DES算法更为安全;3DES算法执行三次DES算法,加密的过程是加密-解密-加密,解密的过程是解密-加密-解密。
单次DES运算由16轮相同的迭代运算构成,在迭代开始前有一次初始置换操作,迭代运算完成后有一次初始逆置换操作;密钥扩展包括循环移位和线性置换。
在RFID领域,所收发的数据都是先转移到FIFO存储器的,然后再转移进加密/解密单元,而FIFO存储器的总线宽度一般都是8位,这样一个数据分组转移进和移出加密/解密单元至少需要16个时钟,这已经接近加密或解密所耗费的时间开销了。
因此需要设计一种装置,用来解决上述问题。
发明内容
本发明所要解决的技术问题是针对上述现有技术提供一种数据转移的时间消耗较短的适用于RFID阅读器的DES加密解密装置。
本发明解决上述技术问题所采用的技术方案为:一种适用于RFID阅读器的DES加密解密装置,其包括与RFID阅读器连接的用于缓存数据的异步FIFO存储器,用于对数据进行加密或解密的加密解密单元,其特征在于还包括控制异步FIFO存储器数据输入输出的译码器,所述译码器与异步FIFO存储器连接,所述异步FIFO存储器的输出端通过两组单工64位总线与加密解密单元连接,这两组单工64位总线分别为:从异步FIFO存储器到加密解密单元方向的第一组64位总线,和从加密解密单元异步FIFO存储器方向的第二组64位总线;在加密解密单元开始加密或解密后的第一个工作时钟,由第一组64位总线完成初始置换,在加密解密单元开始加密或解密后的最后一个工作时钟,由第二组64位总线完成初始逆置换,即:
在第一个工作时钟执行的初始置换时,所述译码器根据异步FIFO存储器的读指针选中异步FIFO存储器中连续8组寄存器,这8组寄存器为异步FIFO存储器读指针指向的当前寄存器组及之后的连续7组寄存器,译码器控制异步FIFO存储器转移数据到加密解密单元时,就将选中的这连续8组寄存器中的数据转移到加密解密单元,并将异步FIFO存储器的读指针增加8;
在最后一个工作时钟执行初始逆置换时,所述译码器根据异步FIFO存储器的写指针选中异步FIFO存储器中连续8组寄存器,这8组寄存器为异步FIFO存储器写指针指向的当前寄存器组及之后的连续7组寄存器,加密解密单元转移数据到异步FIFO存储器时,译码器就控制将加密解密单元中输出的数据转移到这连续8组寄存器中,并将异步FIFO存储器的写指针增加8。
作为改进,本发明还包括
密钥扩展单元,用于从外部获取主密钥,并对主密钥进行扩展生成加密解密单元在加密或解密过程中所需要的密钥;
密钥存储单元,与密钥扩展单元连接,用于存储密钥扩展单元生成的密钥;
控制单元,加密解密单元、密钥扩展单元、异步FIFO存储器、密钥存储单元均与控制单元连接,控制单元用于接收外部指令,控制加密解密单元执行加密工作模式或解密工作模式,并将加密解密单在加密或解密过程中所需要的密钥发送给加密解密单元。
再改进,控制单元在每完成一组数据的加密和解密后,还需判断异步FIFO存储器中有无未处理数据;若有数据,则对下一组数据进行加密或解密处理;若无未处理数据,在加密模式,将数据打包发射,在解密模式下,产生解密完成中断信号。
所述加密解密单元包括完成一轮运算所需要的基本运算单元,加密解密单元通过调用16次或48次基本运算单元实现数据的加密或解密,其中所述基本运算单元包括第一选择器、第二选择器、扩展置换单元、第一异或门、第二异或门、S盒替换、P盒置换、第一寄存器组和第二寄存器组;
其中所述第一选择器的第一输入端与第一组64位总线的左半部分相连,所述第一选择器的第二输入端与第二寄存器组相连,所述第一选择器的输出端与第一寄存器组相连,用于在第一轮运算将将第一组64位总线的左半部分移入第一寄存器组,其后的每一轮运算直接从第二寄存器组移入第一寄存器组;
所述第二选择器的第一输入端与第一组64位总线的右半部分相连,所述第二选择器的第二输入端与第一寄存器组相连,所述第二选择器的输出端与扩展置换单元的输入的相连,用于在第一轮运算将第一组64位总线的右半部分经过后续运算移入第二寄存器组,其后的每一轮运算直接从第一寄存器组取数;
所述扩展置换单元的输出端与密钥经过第一异或门运算送给S盒替换的输入端;
S盒替换的输出端与P盒置换单元相连,P盒置换的输出与第一寄存器组所寄存器的数据经过第二异或门运算送给第二寄存器组;
所述第一寄存器组与第二组64位总线右半部分相连,第二寄存器组与第二组64位总线的左半部分相连。
与现有技术相比,本发明的优点在于:本发明通过设置控制异步FIFO存储器数据输入输出的译码器,并将异步FIFO存储器输出端通过两组单工64位总线与加密解密单元连接,通过译码器的控制,当数据在异步FIFO存储器与加密解密单元之间转移时,一个分组数据的移进移出由现有技术中的16个工作时钟缩减到2个工作时钟,大大缩减了时间消耗。
附图说明
图1为本发明实施例中适用于RFID阅读器的DES加密解密装置的框图。
图2为本发明实施例中加密解密单元中基本运算单元的框图。
具体实施方式
以下结合附图实施例对本发明作进一步详细描述。
如图1所示的适用于RFID阅读器的DES加密解密装置,其包括
与RFID阅读器连接的用于缓存数据的异步FIFO存储器;
用于对数据进行加密或解密的加密解密单元;
控制异步FIFO存储器数据输入输出的译码器,所述译码器与异步FIFO存储器连接;
所述异步FIFO存储器的输出端通过两组单工64位总线与加密解密单元连接,这两组单工64位总线分别为:从异步FIFO存储器到加密解密单元方向的第一组64位总线,和从加密解密单元异步FIFO存储器方向的第二组64位总线;
密钥扩展单元,用于从外部获取主密钥,并对主密钥进行扩展生成加密解密单元在加密或解密过程中所需要的密钥;
密钥存储单元,与密钥扩展单元连接,用于存储密钥扩展单元生成的密钥;
控制单元,加密解密单元、密钥扩展单元、异步FIFO存储器、密钥存储单元均与控制单元连接,控制单元用于接收外部指令,控制加密解密单元执行加密工作模式或解密工作模式,并将加密解密单在加密或解密过程中所需要的密钥发送给加密解密单元。
在加密解密单元开始加密或解密后的第一个工作时钟,由第一组64位总线完成初始置换,在加密解密单元开始加密或解密后的最后一个工作时钟,由第二组64位总线完成初始逆置换,即:
在第一个工作时钟执行的初始置换时,所述译码器根据异步FIFO存储器的读指针选中异步FIFO存储器中连续8组寄存器,这8组寄存器为异步FIFO存储器读指针指向的当前寄存器组及之后的连续7组寄存器,译码器控制异步FIFO存储器转移数据到加密解密单元时,就将选中的这连续8组寄存器中的数据转移到加密解密单元,并将异步FIFO存储器的读指针增加8;
在最后一个工作时钟执行初始逆置换时,所述译码器根据异步FIFO存储器的写指针选中异步FIFO存储器中连续8组寄存器,这8组寄存器为异步FIFO存储器写指针指向的当前寄存器组及之后的连续7组寄存器,加密解密单元转移数据到异步FIFO存储器时,译码器就控制将加密解密单元中输出的数据转移到这连续8组寄存器中,并将异步FIFO存储器的写指针增加8。
另外,控制单元在每完成一组数据的加密和解密后,还需判断异步FIFO存储器中有无未处理数据;若有数据,则对下一组数据进行加密或解密处理;若无未处理数据,在加密模式,将数据打包发射,在解密模式下,产生解密完成中断信号。
控制单元在每完成一组数据的加密和解密后,还需判断异步FIFO存储器中有无未处理数据;若有数据,则对下一组数据进行加密或解密处理;若无未处理数据,在加密模式,将数据打包发射,在解密模式下,产生解密完成中断信号。
所述加密解密单元包括完成一轮运算所需要的基本运算单元,加密解密单元在执行DES算法时,通过调用16次基本运算单元实现数据的加密或解密,加密解密单元在执行3DES算法时,通过调用48次基本运算单元实现数据的加密或解密;其中所述基本运算单元包括第一选择器、第二选择器、扩展置换单元、第一异或门、第二异或门、S盒替换、P盒置换、第一寄存器组和第二寄存器组,参见图2所示;
其中所述第一选择器的第一输入端与第一组64位总线的左半部分相连,所述第一选择器的第二输入端与第二寄存器组相连,所述第一选择器的输出端与第一寄存器组相连,用于在第一轮运算将将第一组64位总线的左半部分移入第一寄存器组,其后的每一轮运算直接从第二寄存器组移入第一寄存器组;
所述第二选择器的第一输入端与第一组64位总线的右半部分相连,所述第二选择器的第二输入端与第一寄存器组相连,所述第二选择器的输出端与扩展置换单元的输入的相连,用于在第一轮运算将第一组64位总线的右半部分经过后续运算移入第二寄存器组,其后的每一轮运算直接从第一寄存器组取数;
所述扩展置换单元的输出端与密钥经过第一异或门运算送给S盒替换的输入端;
S盒替换的输出端与P盒置换单元相连,P盒置换的输出与第一寄存器组所寄存器的数据经过第二异或门运算送给第二寄存器组;
所述第一寄存器组与第二组64位总线右半部分相连,第二寄存器组与第二组64位总线的左半部分相连。
本发明通过设置控制异步FIFO存储器数据输入输出的译码器,并将异步FIFO存储器输出端通过两组单工64位总线与加密解密单元连接,通过译码器的控制,当数据在异步FIFO存储器与加密解密单元之间转移时,一个分组数据的移进移出由现有技术中的16个工作时钟缩减到2个工作时钟,大大缩减了时间消耗。