2019-2020信息安全系统设计基础 20175306 20175309 20175326 实验二 固件程序设计

2019-2020-1 20175306 20175309 20175326 实验二 固件程序设计

实验步骤

1-MDK

  • 参考云班课资源中“信息安全系统实验箱指导书.pdf”第一章,1.1-1.5安装MDK,JLink驱动,注意,要用系统管理员身份运行uVision4,破解MDK(破解程序中target一定选ARM)
    File->License Management...->复制CID码->粘贴并选择“ARM”后再复制产生的LIC->将其粘贴回License Management的LIC框中->破解成功
  • 提交破解程序中产生LIC的截图:

  • 提交破解成功的截图

  • 注意一定要用管理员身份运行uVision4,不然真的会失败!!!认真看好老师的任务细节!!

    2-LED

  • 参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.4” KEIL-MDK 中添加 Z32 SC-000 芯片库,提交安装截图

  • 参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.9”完成LED实验,注意“打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,进行下载调试。提交运行结果截图

- 代码分析

主函数:

-SystemInit ()
系统初始化;

  • if(0 == GPIO_GetVal(0))
    {
    BtApiBack(0x55555555, 0xAAAAAAAA);
    }
    判断按键,返回 boot 条件,确认是否进行程序下载;

  • GPIO_PuPdSel(0,0);
    GPIO_InOutSet(0,0);
    设置 GPIO0 状态为上拉输出;

  • while(1)
    {
    delay(100);
    GPIO_SetVal(0,0); //输出低电平,点亮 LED
    delay(100);
    GPIO_SetVal(0,1); //输出高电平,熄灭 LED
    }
    进入循环程序, LED 灯间隔 100ms 闪烁。

    3-UART

  • 参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.4” KEIL-MDK 中添加 Z32 SC-000 芯片库,提交安装截图

  • 参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.0”完成UART发送与中断接收实验,注意“打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,进行下载调试。提交运行结果截图

- 代码分析

  • void UART_Irq Service(void) 是进行串口中断服务;

  • void UART_BrpSet(UINT16 set)是进行波特率设置;

  • void UART_Init(void) 是进行串口初始化;

  • void UART_SendByte(UINT8 dat) 是用于发送单字节;

  • void UART_SendString(UINT8 * str) 是用于发送字符串;

  • void uart_SendString(UINT8 buf[],length) 是用于发送某一长度的字符串;

  • void UART_SendNum(INT32 num) 是用于发送单个十进制整数;

  • void UART_SendHex(UINT8 dat) 是用于发送单个十六进制整数;

  • UINT8 UART_GetByte(*data) 是用于接收单字节;

  • void UART_Receive(UINT8 *receive, len) 是用于接收多字节;

    4-国密算法

  • SM3杂凑算法:

SM3密码杂凑(哈希、散列)算法适用于商用密码应用中的数字签名和验证,消息认证码的生成与验证以及随机数的生成,可满足多种密码应用的安全需求。
对应MD5算法
运行截图

  • SM4对称算法:

此算法采用非线性迭代结构,是一个分组算法,用于无线局域网产品。该算法的分组长度为128比特,密钥长度为128比特。
对应3DES算法
运行截图

1.基本运算:SM4密码算法使用模2加和循环移位作为基本运算。

2.基本密码部件:SM4密码算法使用了S盒、非线性变换τ、线性变换部件L、合成变换T基本密码部件。

3.轮函数:SM4密码算法采用对基本轮函数进行迭代的结构。利用上述基本密码部件,便可构成轮函数。SM4密码算法的轮函数是一种以字为处理单位的密码函数。

4.加密算法:SM4密码算法是一个分组算法。数据分组长度为128比特,密钥长度为128比特。加密算法采用32轮迭代结构,每轮使用一个轮密钥。

5.解密算法:SM4密码算法是对合运算,因此解密算法与加密算法的结构相同,只是轮密铝的使用顺序相反,解密轮密钥是加密轮密钥的逆序。

6.密钥扩展算法:SM4密码算法使用128位的加密密钥,并采用32轮法代加密结构,每一轮加密使用一个32位的轮密钥,共使用32个轮密钥。因此需要使用密钥扩展算法,从加密密钥产生出32个轮密钥。

7.SM4的安全性:SM4密码算法经过我国专业密码机构的充分分析测试,可以抵抗差分攻击、线性攻击等现有攻击,因此是安全的。

5-SM1

  • 参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.4” KEIL-MDK 中添加 Z32 SC-000 芯片库,提交安装截图

  • 参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.16”完成SM1加密实验,注意“打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,进行下载调试。提交运行结果截图
  • 连接与下载成功

  • 剩下的步骤将用图片一张一张演示

按照提示插入SLE4428 IC卡;

按A键进行校验,校验成功后选择加密和解密;

按1选择加密,再按A确认加密,在串口助手上可以看到观察明文、秘钥和密文;

再按A键,将加密数据存入IC卡中;

按2选择解密,选择正确秘钥后,再按A键确认解密,串口助手上可以看到解密后的信息;

再按A键返回菜单。

- 代码分析

主函数:

  • 系统初始化;
  • 判断按键,返回 boot 条件;
  • 初始化IC卡插入检测IO口GPIO6;
    B:

  • 按下A键,显示屏第一行“加密解试验”,第二、三行分别示“ 1. 加密”“ 2. 解密”两个选项。
    加密:

  • SM1初始化;
  • 进行SM1加密;
  • 关闭SM1加密安全模块;
    解密:

  • SM1初始化;
  • 进行SM1解密;
  • 关闭SM1加密安全模块;

    实验体会:由于本次实验是第二次实验,所以小组成员更有默契,配合起来也得心应手,在做实验的过程中也分工明确,可以让我们更快更好的完成实验。但是还是遇到了一些问题,首先就是试验箱等硬件问题,都通过更换和调试解决。其次就是在使用软件进行编译实验等问题,注意在使用软件时要用管理员身份运行。最后通过我们共同的努力顺利完成本次实验!!!

猜你喜欢

转载自www.cnblogs.com/wjs123456/p/11875767.html