多语言展示
当前在线:693今日阅读:84今日分享:32

加密芯片SMEC98SP的使用方法

介绍了加密芯片SMEC98SP的使用方法,设计到方案中,破解,窃取了自己的劳动果实
工具/原料
1

SMEC98SP加密芯片一颗

2

SMEC98SP加密芯片开发板编程器一个

方法/步骤
1

读取加密芯片ID号,这个ID号可用来做唯一ID身份识别,可以设计到加密方案中。代码如下:unsigned char Read_UID(unsigned char * UID){ uchar ret; uchar iic_addr; uchar len; iic_addr = 0x00; iic_buff[0] = 0x83; iic_buff[1] = 0x00; iic_buff[2] = 0x00; iic_buff[3] = 0x0c; //一共是0x0c个字节 len = iic_buff[3]; ret = IIC_WriteWithAddr(iic_addr & 0xFE, iic_buff, 4); if(ret)//出错 { return 1; }// delay_nms(1); ret = IIC_ReadWithAddr(iic_addr | 0x1, UID, (len+2)); if(ret) { return 1; } return 0; //读取成功}

2

读取随机数,随机数是参与密码运算的重要过程数据,每次都不一样的数据传输,破解者无法获得规律。//读8字节随机数,返回:90 00 data1 data2.....data8unsigned char Read_random(unsigned char *random){ uchar ret; uchar iic_addr; uchar len; iic_addr = 0x00; iic_buff[0] = 0x84; iic_buff[1] = 0x00; iic_buff[2] = 0x00; iic_buff[3] = 0x08; //一共是0x08个字节 len = iic_buff[3]; ret = IIC_WriteWithAddr(iic_addr & 0xFE, iic_buff, 4); if(ret)//出错 { return 1; }// delay_nms(5); ret = IIC_ReadWithAddr(iic_addr | 0x1, random, (len+2)); if(ret) { return 1; } return 0; //读取成功}

3

密码认证,密文传输。unsigned char PIN_authentication(unsigned char *ret_data){ uchar ret; uchar iic_addr; iic_addr = 0x00; iic_buff[0] = 0x70; iic_buff[1] = 0x00; iic_buff[2] = 0x00; iic_buff[3] = 0x08; // memcpy(&iic_buff[4],PinKey,8); ret = IIC_WriteWithAddr(iic_addr & 0xFE, iic_buff, 4+8); if(ret)//出错 { return 1; }// delay_nms(5); ret = IIC_ReadWithAddr(iic_addr | 0x1, ret_data, 2); if(ret) { return 1; } return 0; //读取成功}

注意事项
1

加密芯片先设计好加密内容,用烧录器烧录后方可使用

2

尽量设计多的算法嵌入到加密芯片中

推荐信息