实验2 固件程序设计
【2018-2019-1】20165217 20165219 20165239 实验二 固件程序设计
固件程序设计-1-MDK
一)实验要求
0.注意不经老师允许不准烧写自己修改的代码
1.三人一组
2.参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.1-1.5安装MDK,ULink驱动
注意:要用系统管理员身分运行uVision4,破解MDK(破解程序中target一定选ARM)
3.提交破解程序中产生LIC的截图
4.提交破解成功的截图
固件程序设计-2-LED
(一)实验要求
0.注意不经老师允许不准烧写自己修改的代码
1.参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.4” KEIL-MDK 中添加 Z32 SC-000 芯片库,提交安装截图
2.参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.9”完成LED实验,提交运行结果截图
注意:打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,进行下载调试
3.实验报告中分析代码
分析主函数:
- 系统初始化,中断设置,使能所有中断;
- 判断按键,返回 boot 条件,确认是否进行程序下载;
- 设置 GPIO0 状态为上拉输出;
- 进入循环程序,LED 灯间隔 100ms 闪烁;
需要注意:程序初始化至 GPIO 配置的代码不能随意更改,否则无法初始化
芯片,下载程序。
固件程序设计-3-UART
(一)实验要求
0.注意不经老师允许不准烧写自己修改的代码
1.参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.4” KEIL-MDK 中添加 Z32 SC-000 芯片库,提交安装截图
2.参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.0”完成UART发送与中断接收实验,提交运行结果截图
注意:打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,进行下载调试
3.实验报告中分析代码
主函数分析如下:
主函数:
- 系统初始化,中断设置,使能所有中断;
- 判断按键,返回 boot 条件,确认是否进行程序下载;
- 初始化 Uart,使能 Uart 接口,配置 Uart 中断并使能;
- 先发送单个字符“A”,换行,再发送字符串“Welcome to Z32HUA!”,
换行,发送数字串“1234567890”,换行,再发送 16 位数“0xAA”,换
行。 - 进入 while 循环程序,等待串口中断到来并判断数据是否接收完毕,若
中断到来,转入执行串口中断服务程序,待接收数据完毕,Z32 将数据
发回串口助手。
固件程序设计-4-国密算法
实验要求
0.网上搜集国密算法标准SM1,SM2,SM3,SM4
1.网上找一下相应的代码和标准测试代码,在Ubuntu中分别用gcc和gcc-arm编译
2.四个算法的用途?
3.《密码学》课程中分别有哪些对应的算法?
4.提交2,3两个问题的答案
5.提交在Ubuntu中运行国密算法测试程序的截图
SM1 为对称加密。其加密强度与AES相当。
SM2为非对称加密,基于ECC。由于该算法基于ECC,故其签名速度与秘钥生成速度都快于RSA。
SM3 消息摘要。校验结果为256位。SM3算法的压缩函数与SHA-256的压缩函数具有相似的结构,但是SM3算法的设计更加复杂。
SM4 无线局域网标准的分组数据算法。目的是为了加密保护静态储存和传输信道中的数据对称加密,密钥长度和分组长度均为128位。
密码学中的对应:
SM1对应AES算法;
SM2对应ECC算法;
SM3对应MD5算法;
SM4对应3DES算法;
固件程序设计-5-SM1
实验要求
0.注意不经老师允许不准烧写自己修改的代码
1.参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.4” KEIL-MDK 中添加 Z32 SC-000 芯片库,提交安装截图
2.参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.16”完成SM1加密实验,提交运行结果截图
注意:打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,进行下载调试
3.实验报告中分析代码
实验中遇到的问题
问题一:LED实验中编译不成功,提示错误为没有符合的函数库可用。
解决:设置环境变量
问题二:添加库后仍不能编译成功,出现多个变量未定义的问题。
解决:添加参数
-lssl -lcrypto