快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

太阳集团城网2018:3DES加密算法在STC单片机系统中的应用研究



小序

RFID(无线射频识别)技巧广泛利用于临盆制造、物流治理、公共安然等多个领域。分外是13.56MHz的RFID以其独特的上风在公共交通、门禁治理、黉舍一卡通、医疗卫生、身份治理等领域获得了充分的利用。然而,跟着利用范围的扩大年夜,RFID卡的数据安然性和保密性显得日益紧张。自从2008年德国钻研员亨里克普洛茨(Henryk Plotz)和弗吉尼亚大年夜学谋略机科学在读博士卡尔斯滕诺尔(Karsten Nohl)成功地破解了由NXP收购来的的Mifare经典非打仗IC卡(M1卡)的安然算法以来,RFID技巧的安然性受到了前所未有的寻衅。为了防止RFID卡被破解、复制,采纳3DES加密算法和光阴戳算法对M1卡中的数据进行逻辑加密保护,并在较低设置设置设备摆设摆设的单片机系统中进行了验证,实验结果达到了预期的要求,3DES加密算法可以有效地防止RFID卡被不法破解和复制。

1 、系统实现

为了验证,硬件主控系统采纳宏晶科技公司的51系列单片机STC15L2K32S2,复旦微电子公司的FM1702无线射频芯片,及常用的DS1302时钟模块、W25Q32存储器以及按键、液晶显示等构成系统,如图1所示。STC15L2K32S2事情电压3.3V,内部具有2K的RAM、32K的Flash以及29K的EEPROM,用内部的EEPROM存储系统紧张密码参数等信息。FM1702芯片是ISO14443标准的非打仗IC卡用芯片,支持经典的M1卡,支持SPI接口要领,事情电压3V~5V[4]。DS1302时钟模块供给当前光阴,可以应用该光阴天生一个4字节的加密光阴戳,加强防止卡被不法复制。W25Q32存储器用于存储卡的加密序列号和光阴戳。

2、 3DES加密算法实现

2.1 3DES算法在STC单片机中的实现

3DES加密算法,是在DES算法根基上实现的一种增强型的加密算法。它相称于是对每个数据块利用三次DES加密算法,即经由过程增添DES的密钥长度来避免外来的暴力进击。根基的DES算法是一种分组对称加密、解密算法,也是应用较广泛的密钥系统之一,DES算法的优点是算法公开、谋略量小、加密速率快、加密效率高[5],得当在嵌入式系统中利用。

DES算法对明文数据按8字节进行分组处置惩罚,即明文按64位分组,密钥长度也是64位,此中8位为奇偶校验位。首先应用一个IP置换表对要加密的一组数据进行初始IP置换,对64位明文按位从新组合,并分成左32位L0和右32位R0两部分。然后应用一个f函数对L0和R0实施16轮迭代运算,着末应用一个IP-1逆置换表对数据作逆置换给出加密的结果。在16轮迭代运算历程中,每次加密迭代应用不合的48位子密钥K1…K16,这16个子密钥是由64位密钥经由过程选择置换1、轮回左移、选择置太阳集团城网2018换2等变换获得的[6]。DES算法的加密流程如图2所示。

如前所述,DES算法应用异或、置换、代换、移位操作四种基础运算进行16轮轮回迭代运算来实现的,在单片机顶用Keil C说话实现算法时必要编写响应的基础运算操作函数,并设计一些基础的参数太阳集团城网2018表。这些表太阳集团城网2018包括:初始置换表IP、逆置换表IP-1、S盒调换表、E扩展置换表、P置换表、选择置换表1(PC-1)、选择置换表2(PC-2)和轮回右移表。这些表可以用Keil C说话的数组来实现,并声明为“static unsigned char code”类型的数组,此中staTIc关键字是包管该数组只在当前模块可见。

DES解密历程的逻辑布局和加密历程同等,但解密历程中应用的子密钥的顺序与加密时的顺序恰恰相反,依次为K16,K15,…,K1。即第1轮迭代应用子密钥K16,第2轮迭代应用子密钥K15,…,第16轮迭代应用子密钥K1,并互换L16和R16的顺序,终极获得64位明文[7]。范例的3DES算法是用两个密钥(EDE2模式,即Key1 = Key3,Key2)对明文实施加密-解密-加密。明文P用Key1加密,用Key2解密,用Key3加密,即可获得密文C;密文C用Key3解密,用Key2加密,用Key1解密,即可获得明文P。3DES算法的加密、解密流程如图3所示。在图3中,DES-1表示解密,Key1、Key2和Key3各表示64位密钥。

根据图3可以写出在Keil C说话中的3DES算法加密、解密函数,此中参数key_p是指向16字节密钥的指针。

void TripleDes(unsigned char *data_p,unsigned char* key_p,int type)//data待加密数据,key为

{ //密钥,type表示加密或解密

des(data_p, key_p, type); // DES加密

des(data_p, &key_p[8], !type); // DES解密

des(data_p, key_p, type); // DES加密

}

2.2 3DES算法在M1卡中的利用

M1卡(即NXP Mifare1系列)及与其兼容芯片的RFID卡是用得较多无线卡。公交卡、门禁卡、校园一卡通等都是应用的该系列的卡片。M1卡分为16个扇区,每个扇区为4块,每块16个字节,以块为存取单位,每个扇区的着末一块一样平常用来存储该扇区的物理密码和造访节制信息[8],是以,用来存储用户数据的块共有47块(163-1,0扇区0块固定存储卡序列号等信息)。

在STC单片机内部的EEPROM中必要存储两种密码,一种是读取M1卡时必要验证的物理密码,另一种是3DES算法用到的加密、解太阳集团城网2018密的逻辑密码,M1卡的物理密码一样平常是12个字节,3DES算法的逻辑密码是16个字节。当必要往M1卡中写入数据时,单片机把事先存储在STC15单片机的EEPROM中16字节逻辑密钥读取到password[16]数组中,然后把要写入M1卡中的数据按照8个字节一组进行3DES算法加密,当达到16个字节后写入用户指定的扇区块中,假如加密数据不敷8个字节,按照约定进行补零以满意3DES算法要求。当单片机节制射频芯片验证物理密码并读取到M1卡中的数据后,按照8个字节一组进行3DES算法解密,并把解密后的明文数据返回给用户。假如不知道3DES算法的16位逻辑密钥,纵然不法读取到了M1卡中的数据也无法获得其明文,从而达到了防止数据被破解的目的。

假如获得了卡中的密文,只管无法获得其明文,然则进击者可以对卡进行完全复制,包括复制第0扇区第0块的卡序列号等信息(如UID卡即可改动其0扇区第0块的内容),为了防止进击者对M1卡中的数据进行复制到另一张M1卡中,必要在STC单片机的EEPROM或者外部存储器中建立一个存储卡序列号和光阴戳的系统表,卡序列号和光阴戳各占4个字节。每当单片机系统对卡进行一次操作之后,就要在卡中和系统表中都写入新的光阴戳,当两张完全一样的复制卡先后被系统读取到之后,因为系统在先被读取的复制卡中写入了新的光阴戳信息,从而把另一张复制卡标识为不法卡,也便是说,无论进击者复制了若干张完全相同的卡,只有最先被系统读取到那一张能正常应用,从而,防止了卡被复制。光阴戳是STC单片机从DS1302中读掏出来的年、月、日、时、分、秒之后颠末响应的移位操作而合成的一个四字节无符号变量。光阴戳的合成措施如图4所示。系统处置惩罚总体流程图如图5所示。

根据图4所示,光阴戳的合成算法可以用以下语句来实现:

ts = ((INT32U)yr << 26) | ((INT32U)month << 22) | ((INT32U)day << 17);

ts |= ((INT32U)hr << 12) | ((INT32U)min << 6) | (INT32U)sec;

光阴和日期也可以由单片机系统的准时器或者其他措施来实现。

3 、系统测试

为了对STC单片机在3DES算太阳集团城网2018法加密、解密数据的精确性和运算能力进一步阐发,对STC单片机系统进行了系统测试。在STC单片机RAM中建立一个容量为1K字节的数组test3des[1024],并给它赋初始值,调用TripleDes函数进行加密,并经由过程串口发送到上位机显示出来;把加密后的数据从新赋值给数组test3des[1024],调用TripleDes函数进行解密,并发串口显示,实际测试证实3DES算法是精确的。斟酌到STC单片机系统运行速率较低,假如让STC单片机对加密、解密速率进行谋略并处置惩罚,势必会影响到结论的准确性,为此,应用VC++编写上位机软件共同3DES算法处置惩罚速率测试。在STC单片机调用3DES算法加密、解密数据时,经由过程单片机串口发送到上位机一个开始敕令,上位机软件启动周详计时,等STC单片机处置惩罚完数据时再给上位机软件发送一个停止敕令,上位机软件竣事计时,经由过程单片机处置惩罚的数据字节数和计韶光阴可以谋略出STC单片机调用3DES算法加密、解密数据的速率。STC单片机在不合晶振频率下3DES算法加密、解密测试对比表如表1所示。匀称加密或解密光阴是颠末10次测试取其匀称值。

从表1的数据可知:在STC单片机运行在范例事情频率22.1184MHz的环境下,3DES算法加密、解密的匀称速率约为308.7bit/s,加密或解密M1卡一个块数据(16个字节)用时约为0.41s,完全达到了实际利用的前提,而且,跟着所选用单片机或微处置惩罚器运行速率的前进,所用光阴会更少。

4、 结论

经由过程阐发3DES算法道理和防复制措施,在较低设置设置设备摆设摆设的STC单片机系统中实现了3DES加密算法,并进行了实验测试,获得了实验测试结果,证清楚明了3DES算法在非打仗式M1卡中利用的可行性,这对保障RFID卡信息安然性和保密性具有紧张的感化,在实际利用中也具有必然的参考意义。

责任编辑:gt

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

您可能还会对下面的文章感兴趣: