实验二 固件程序设计
小组成员
LJF、GJT
任务一 MDK
实验要求
- 注意不经老师允许不准烧写自己修改的代码
- 两人(个别三人)一组
- 参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.1-1.5安装MDK,JLink驱动,注意,要用系统管理员身分运行uVision4,破解MDK(破解程序中target一定选ARM)
- 提交破解程序中产生LIC的截图
- 提交破解成功的截图
实验步骤
- 将"mdk474.exe"文件安装在自己创建的名为“Keil 4”的文件夹中
- 在同一文件夹下安装ULINK
- 右键点击桌面上创建的快捷方式“Keil uVision4”,选择“以管理员身份运行”
- 点击File->License Management…,在弹出的窗口中复制CID
- 再运行 keil-MDK 注册机,粘贴 CID 并选择 ARM,然后点击 generate 生成 LIC
- 将注册机生成的 LIC 复制到 keil4中的 LIC 输入框中,点击 Add LIC,破解完成
任务二
实验要求
- 注意不经老师允许不准烧写自己修改的代码
- 参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.4” KEIL-MDK 中添加 Z32 SC-000 芯片库,提交安装截图
- 参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.9”完成LED实验,注意“打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,进行下载调试。提交运行结果截图。
- 实验报告中分析代码
实验步骤
- 在"Keil 4"文件夹下安装 MDK-ARM_AddOn_SC000_Support.exe 文件
- 以管理员身份运行“Keil uVision4”后,选择 Project——>New uVision Project新建工程
- 在芯片库选择框选择Generic SC000 Device Database ,点击Ok
- 点开 ARM 结构目录,选择 SC000,点击 OK,安装完成
- 打开“Z32 开发指南实验 1-LED 闪烁”目录的工程文件,编译主函数产生后缀名为.bin 的可执行代码
- 用USB线连接电脑和试验箱,打开NZDloadTool.exe
- 按住Reboot按钮的同时两次开关试验箱左上角部分的电源开关,Z32被识别,Download tool界面左侧显示已连接设备,然后浏览之前编译生成的.bin文件,点击下载
- 对实验箱重新给电,即可观察到L2灯开始闪烁
代码分析
int main(void) { SystemInit (); //系统中断向量设置,使能所有中断 if(0 == GPIO_GetVal(0)) { BtApiBack(0x55555555, 0xAAAAAAAA); } //判断按键,返回 boot 条件,确认是否进行程序下载; GPIO_PuPdSel(0,0); //设置GPIO0为上拉 GPIO_InOutSet(0,0); //设置GPIO0为输出 while(1) { delay(100); GPIO_SetVal(0,0); //输出低电平,点亮LED delay(100); GPIO_SetVal(0,1); //输出高电平,熄灭LED } //进入循环程序, LED 灯间隔 100ms 闪烁。 }
任务三
实验要求
- 注意不经老师允许不准烧写自己修改的代码
- 参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.4” KEIL-MDK 中添加 Z32 SC-000 芯片库,提交安装截图
- 参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.0”完成UART发送与中断接收实验,注意“打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,进行下载调试。提交运行结果截图
- 实验报告中分析代码
实验步骤
- 打开“UART发送与中断接收”目录下的Z32HUA.uvproj工程文件并编译,将生成的.bin文件下载到实验箱
- 除了用USB公线连接电脑和实验箱外,还需要用9针串口线将 Z32 模块的串口与电脑USB接口连接
- 在电脑上打开串口助手,选择对应的串口号,设置波特率为115200, 偶校验(Even),选中“发送新行”,然后打开串口
- 对Z32重新给电,程序自动运行,可以在串口调试助手中看到PC机 串口接收到 Z32 串口发送来的信息
任务四
实验要求
- 网上搜集国密算法标准SM1,SM2,SM3,SM4
- 网上找一下相应的代码和标准测试代码,在Ubuntu中分别用gcc和gcc-arm编译
- 四个算法的用途?
- 《密码学》课程中分别有哪些对应的算法?
- 提交2,3两个问题的答案
- 提交在Ubuntu中运行国密算法测试程序的截图
国密即国家密码局认定的国产密码算法。
主要有SM1,SM2,SM3,SM4。密钥长度和分组长度均为128位。
SM1 为对称加密。其加密强度与AES相当。该算法不公开,调用该算法时,需要通过加密芯片的接口进行调用。
SM2为非对称加密,基于ECC。该算法已公开。由于该算法基于ECC,故其签名速度与秘钥生成速度都快于RSA。ECC 256位(SM2采用的就是ECC 256位的一种)安全强度比RSA 2048位高,但运算速度快于RSA。
SM3 消息摘要。可以用MD5作为对比理解。该算法已公开。校验结果为256位。
SM4 无线局域网标准的分组数据算法。对称加密,密钥长度和分组长度均为128位。
与密码学相对应的算法
国密算法 | 对应密码学算法 |
---|---|
SM1 | AES算法(高级加密标准) |
SM2 | ECC (椭圆加密算法) |
SM3 | MD5 (信息摘要算法) |
SM4 | DES(数据加密标准) |
任务五
实验要求
- 注意不经老师允许不准烧写自己修改的代码
- 参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.4” KEIL-MDK 中添加 Z32 SC-000 芯片库,提交安装截图
- 参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.16”完成SM1加密实验,注意“打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,进行下载调试。提交运行结果截图
- 实验报告中分析代码
实验步骤
- 打开“exp2SM1”目录下的Z32HUA.uvproj工程文件并编译,将生成的.bin文件下载到实验箱
- 用9针串口线将电脑与Z32部分连接
- 打开sscom42.exe串口助手,完成相关设定后关闭再打开实验箱Z32部分的电源开关
- 按照电子屏的提示插入IC卡。
- 插入正确的卡后显示相应信息,然后按A校验密码
- 按照步骤进行进一步的加解
遇到的问题与解决方案
1、无法接受串口信息
解决方案:发现没有接usb的数据线,接上后再重新操作开关两次后成功自动显示串口信息
2、无法接受字符串
解决方案:多次重新操作后成功
实验感悟
虽然实验内容比较复杂,但通过参考实验指导的PDF,按照步骤一步步细心地做,使得实验总体还是较为成功的。
此外,提前做好实验预习,看清实验要求,可以为我们节约很多时间,并提升实验的效率。