2019-2020-1 20175313 20175328 20175329 实验二 固件程序设计

一、实验内容

(1)MDK

  • 安装MDK,JLink驱动,用系统管理员身份运行uVision4
  • 在“File”中选择“License Management”,在弹出的对话框中复制 CID,然后运行keil-MDK注册机,将CID 粘贴进去,产生LIC
  • 将产生的LTC粘贴到“License Management”对话框中,开始破解

(2)LED

  • KEIL-MDK 中添加 Z32 SC-000芯片库
  • 在“Project”中选择“New uVision”以新建工程,在弹出的安装路径窗口中选择安装路径文件夹,并为工程命名,在芯片库选择框中选择库“Generic SC000 Device Database”,在“ARM” 结构目录中选择“SC000”,点击 OK,搭建完成
  • 打开并编译“Z32开发指南实验1-LED闪烁”目录的工程文件,产生后缀名为.bin 的可执行代码
  • 将实验箱接入电源,用USB公对公线将实验箱的USB接口连接到电脑的USB接口上,打开Z32下载调试工具NZDownloadTool.exe。打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,
  • 当“NZDownloadTool”对话框中出现“1设备已连接”时,在“设备选择”中显示芯片型号,在“确认下载”一栏的“浏览”,选择Z32HUA.bin文件的文件路径,然后点击下载
  • LED灯闪烁情况
  • 代码分析:
  • 1.系统初始化,中断设置使能所有
  • 2.判断按键,返回boot条件,确认是否进行程序下载
  • 3.设置 GPIO0 状态为上拉输出
  • 4.进入循环程序,LED 灯间隔 100ms 闪烁

(3)UART

  • KEIL-MDK 中添加 Z32 SC-000芯片库
  • 打开并编译“Z32开发指南实验8-SM1”目录的工程文件,产生后缀名为.bin 的可执行代码
  • 将实验箱接入电源,用USB公对公线将实验箱的USB接口连接到电脑的USB接口上,打开Z32下载调试工具NZDownloadTool.exe。打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别
  • 当“NZDownloadTool”对话框中出现“1设备已连接”时,在“设备选择”中显示芯片型号,在“确认下载”一栏的“浏览”,选择Z32HUA.bin文件的文件路径,然后点击下载
  • sscom接受和发送情况
  • 代码分析:
  • 1.系统初始化,中断设置,使能所有中断
  • 判断按键,返回boot条件,确认是否进行程序下载
  • 初始化Uart,使能Uart接口,配置Uart中断并使能
  • 先发送单个字符“A”,换行,再发送字符串“Welcome to Z32HUA!”,换行,发送数字串“1234567890”,换行,再发送 16位数“0x AA”,换行
  • 进入while循环程序,等待串口中断到来并判断数据是否接收完毕,若中断到来,转入执行串口中断服务程序,待接收数据完毕,Z32将数据发回串口助手

(4)国密算法

  • 网上搜集国密算法标准SM1,SM2,SM3,SM4
  • 网上找一下相应的代码和标准测试代码,在Ubuntu中分别用gcc和gcc-arm编译
  • 四个算法的用途?
  • 《密码学》课程中分别有哪些对应的算法?

SM1:对称加密。

  • 其加密强度与AES相当。该算法不公开,调用该算法时,需要通过加密芯片的接口进行调用。
  • 对应算法:AES

SM2:非对称加密。

  • 由于该算法基于ECC,故其签名速度与秘钥生成速度都快于RSA。ECC 256位(SM2采用的就是ECC 256位的一种)安全强度比RSA 2048位高,但运算速度快于RSA。
  • 对应算法:ECC
  • 编译运行截图:

SM3:消息摘要。

  • SM3密码摘要算法是中国国家密码管理局2010年公布的中国商用密码杂凑算法标准。SM3算法适用于商用密码应用中的数字签名和验证,是在SHA-256基础上改进实现的一种算法。SM3算法采用Merkle-Damgard结构,消息分组长度为512位,摘要值长度为256位。
  • 对应算法:MD5、SHA-1
  • 编译运行截图:

SM4:对称加密。

  • 无线局域网标准的分组数据算法。对称加密,密钥长度和分组长度均为128位。
  • 对应算法:DES
  • 编译运行截图:

(5)SM1

  • 参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.4” KEIL-MDK 中添加 Z32 SC-000 芯片库,提交安装截图
  • 参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.16”完成SM1加密实验,注意“打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,进行下载调试。提交运行结果截图
  • 实验报告中分析代码
  • 打开并编译“Z32开发指南实验8-SM1”目录的工程文件,产生后缀名为.bin 的可执行代码
  • 将实验箱接入电源,用USB公对公线将实验箱的USB接口连接到电脑的USB接口上,打开Z32下载调试工具NZDownloadTool.exe。打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别
  • 插入IC卡
  • 加密后使用正确密钥解密
  • 加密后使用错误密钥解密

二、实验过程中遇到的问题及其解决方法

  • 问题1:在对SM2的源代码进行编译时出现致命错误。
  • 解决方法1:原因是ubuntu下缺少了部分组件,输入命令sudo apt-get install libssl-dev
  • 问题2:编译SM4源代码时,出现"collect2:ld返回1"
  • 解决方法2:查看Linux编译时出现的错误提示,发现多了一个sms4.c文件,于是将其移除。
  • 问题3:未使用系统管理员身份运行uVision4,导致无法获得密钥。
  • 解决方法3:使用管理员身份重新进行如上操作,运行成功截图:

三、心得体会

  • 有了上一次的教训,这次的实验我们提前进行的充分的预习,所以完成的较为迅速。中途也出现过一些问题,我们也都一同解决了。
  • 三人组队,真的是"组队",没有那种一人单干的感觉。"臭皮匠们"已经逐渐踏上诸葛亮的道路了。

四、参考资料

原文地址:https://www.cnblogs.com/xiannvyeye/p/11835225.html