2018-2019-1 20165232 20165231 20165235实验二——固件程序设计
2018-2019-1 20165232 20165231 20165235实验二——固件程序设计
本次的实验共有五个重要的部分:
- MDK安装破解
- LED跑马灯实验
- UART发送与中断接收实验
- 国密算法
- SM1加密实验
- 设备归还
一、MDK安装破解
- 实验要求
- 注意不经老师允许不准烧写自己修改的代码
- 三人一组
- 参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.1-1.5安装MDK,JLink驱动,注意,要用系统管理员身分运行uVision4,破解MDK(破解程序中target一定选ARM)
- 提交破解程序中产生LIC的截图
- 提交破解成功的截图
-
实验步骤
运行mdk.exe准备安装 MDK-ARM,并点下一步。
首先在要安装的磁盘目录下面新建文件夹,并命名,然后点击Browse选择安装目录。
填写用户信息。
安装ULINK驱动
若系统提示是否想安装这个设备软件,点击安装。
Ulink安装结束后自动退出,安装结束。
破解 MDK4.74运行uVision4,点 File>>License Management,复制 CID。
再运行keil-MDK注册机
粘贴CID至注册机
最后点击 generate 生成 LIC。
将注册机生成的 LIC 复制到 keil4中的 LIC 输入框中,点击 Add LIC,破
解完成。 -
截图
二、LED
- 实验要求
- 注意不经老师允许不准烧写自己修改的代码
- 参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.4” KEIL-MDK 中添加 Z32 SC-000 芯片库,提交安装截图
- 参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.9”完成LED实验,注意“打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,进行下载调试。提交运行结果截图
- 实验报告中分析代码
-
实验步骤
KEIL-MDK 中添加 Z32 SC-000 芯片库,安装 SC000 库。
运行MDK-ARM_AddOn_SC000_Support.exe。打开之后,点击 NEXT。
在许可证这一步,点击同意,用户信息这一步输入基本信息,点下一步。
安装完成,点击 Finish 按钮完成库的添加。
在 keil MDK 工程选择 SC000 库运行keil uVision4 MDK。新建工程选择 Project——>New uVision Project。
在弹出的安装路径窗口选择安装路径文件夹,并为工程命名。
在芯片库选择框选择库 Generic SC000 Device Database,点击OK,选择具体的 CPU 型号。
点开 ARM 结构目录,选择 SC000,点击 OK。
-
操作步骤
-
打开“实验1-LED闪烁”目录的工程文件。编译工程,产生后缀名为.bin的可执行代码。
-
下载程序:将实验箱接入电源,用USB公对公线将实验箱的USB接口连接到电脑的USB接口上,在电脑上运行Z32下载调试工具NZDownloadTool.exe。
-
打开 Z32 的电源开关前,按住 Reboot 按键不放,两次打开电源开关,Z32 即可被电脑识别,进行下载调试。当左边框出现“1设备已连接”,设备选择中显示芯片型号,点击窗口右下方“确认下载”一栏的“浏览”,选择程序路径为“Z32 开发指南\实验 1-LED闪烁\bin\Z32HUA.bin”并打开,最后点击下载。
-
左边状态提示框更新显示“程序下载成功!”此时程序就下载进Z32的实验板上了。
-
对LED灯的操作:关闭Z32电源开关,再打开,程序自动运行,此时可以看到实验现象:Z32核心板上L2灯开始闪烁。
- 截图
三、UART发送与中断接受实验
- 实验要求
- 注意不经老师允许不准烧写自己修改的代码
- 参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.4” KEIL-MDK 中添加 Z32 SC-000 芯片库,提交安装截图
- 参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.0”完成UART发送与中断接收实验,注意“打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,进行下载调试。提交运行结果截图
- 实验报告中分析代码
- 实验步骤
- void UART_SendByte(UINT8 dat)是发送单字节函数,使用此函数一次发
送一个字节数据; - void UART_SendString(UINT8 * str)是发送字符串函数,使用此函数发送
字符串数据; - void uart_SendString(UINT8 buf[],UINT8 length)是发送某一长度的字符
串函数,实现发送一定长度的字符串数据。 - void UART_SendNum(INT32 num)是发送单个十进制整数函数,使用此函数发送一个十进制整数;
- 截图
四、国密算法
- 实验要求
- 网上搜集国密算法标准SM1,SM2,SM3,SM4
- 网上找一下相应的代码和标准测试代码,在Ubuntu中分别用gcc和gcc-arm编译
- 四个算法的用途?
- 《密码学》课程中分别有哪些对应的算法?
- 提交2,3两个问题的答案
- 提交在Ubuntu中运行国密算法测试程序的截图
- 简介
国密即国家密码局认定的国产密码算法,即商用密码。
国密算法由国家密码局发布,包含SM1 SM2 SM3 SM4 SSF33算法:
SM1对称密码:该算法保密,不公开,其加密强度与AES相当,调用该算法时,需要通过加密芯片的接口进行调用。SM1 算法是分组密码算法,广泛应用于电子政务、电子商务及国民经济的各个应用领域(包括国家政务通、警务通等重要领域)。
SM2算法:SM2椭圆曲线公钥密码算法是我国自主设计的公钥密码算法,包括SM2-1椭圆曲线数字签名算法,SM2-2椭圆曲线密钥交换协议,SM2-3椭圆曲线公钥加密算法,分别用于实现数字签名密钥协商和数据加密等功能。其签名速度与秘钥生成速度都快于RSA。ECC 256位(SM2采用的就是ECC 256位的一种)安全强度比RSA 2048位高,但运算速度快于RSA。
SM3算法:SM3杂凑算法是我国自主设计的密码杂凑算法,校验结果为256位,适用于商用密码应用中的数字签名和验证消息认证码的生成与验证以及随机数的生成,可满足多种密码应用的安全需求。
SM4算法:SM4分组密码算法是我国自主设计的分组对称密码算法,用于实现数据的加密/解密运算,以保证数据和信息的机密性。
- 截图(SM3)
五、SM1加密实验
- 实验要求
1.注意不经老师允许不准烧写自己修改的代码
- 参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.4” KEIL-MDK 中添加 Z32 SC-000 芯片库,提交安装截图
1.参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.16”完成SM1加密实验,注意“打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,进行下载调试。提交运行结果截图 - 实验报告中分析代码
- 截图
六、清理
- 实验要求
实验结束后,把实验室原来的网线插回,否则以后做实验的同学无法开机
- 只有用实验室机器的小组做
- 提交你们小组使用的计算机的编号照片
- 提交插好网线的照片
- 提交盖好后盖的照片