2018-2019-1 20165205 20165233 实验二 固件程序设计
实验二 固件程序设计
一、实验内容:
1.安装MDK,JLink驱动,运行uVision4,破解MDK
2.KEIL-MDK 中添加Z32 SC-000芯片库,完成LED实验
3.完成UART发送与中断接收实验
4.理解国密算法标准SM1,SM2,SM3,SM4并用gcc和gcc-arm编译
5.完成SM1加密实验
二、实验步骤
任务一 MDK
为后续试验所做准备:
- 先安装MDK,ULink驱动,
- 运行uVision4
- 破解MDK4.74:将LIC复制到keil4中的LIC输入框,点击Add LIC,破解完成。软件可以正常使用了。
下图是破解程序中产生的LIC:
下图是破解成功的截图:
任务二 LED
1.使用KEIL-MDK打开工程文件,添加Z32 SC-000芯片库
2.建Z32工程基础编程环境:建立new uVision Project,选择完安装路径后,弹出芯片库选择框,在下拉框中选择Generic SC000 Device Database,在弹出框中点开ARM目录,选择SC000。
3.打开实验1-LED 闪烁\Z32HUA.uvproj以打开LED闪烁实验项目,编译项目生成实验1-LED 闪烁\bin\Z32HUA.bin
4.将实验箱接入电源,连接实验箱与电脑,打开Z32下载调试工具软件资料\Z32下载调试工具\NZDownloadTool.exe打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别
5.显示1设备已连接后,点击浏览,选择\实验 1-LED 闪烁\bin\Z32HUA.bin,点击下载,绿色进度条加载完成后,程序下载成功
6.关闭Z32电源,再打开,下载完的程序自动运行,可以看到核心板上LED灯闪烁。
下面两图为LED灯闪烁的抓拍
任务三 UART
1.打开实验 2-UART 发送与中断 接收\Z32HUA.uvproj以打开UART 发送与中断 接收实验项目,编译项目生成实验 2-UART 发送与中断接收\bin\Z32HUA.bin
2.将实验箱接入电源,连接实验箱与电脑,用 9 针串口线将 Z32 模块的串口与电脑 USB 接口连接,打开Z32下载调试工具软件资料\Z32下载调试工具\NZDownloadTool.exe打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别
3.显示1设备已连接后,点击浏览,选择\实验 2-UART 发送与中断接收\bin\Z32HUA.bin,点击下载,绿色进度条加载完成后,程序下载成功
4.打开串口助手,设置相应参数。
5.关闭Z32电源,再打开,下载完的程序自动运行,在串口调试助手的字符串输入框输入字符串“abcdefgh”,然后点击发
送按钮。
任务四 国密算法
问题解答一:四个算法的用途
-
SM1算法:该算法不公开,仅以 IP 核的形式
存在于芯片中。采用该算法已经研制了系列芯片、智能 IC 卡、智能密码钥匙、加密卡、加密机等安全产品,广泛应用于电子政务、电子商务及国民经济的各个应用领域(包括国家政务通、警务通等重要领域)。 -
SM2算法:SM2椭圆曲线公钥密码算法是我国自主设计的公钥密码算法,包括SM2-1椭圆曲线数字签名算法,SM2-2椭圆曲线密钥交换协议,SM2-3椭圆曲线公钥加密算法,分别用于实现数字签名密钥协商和数据加密等功能。SM2算法与RSA算法不同的是,SM2算法是基于椭圆曲线上点群离散对数难题,相对于RSA算法,256位的SM2密码强度已经比2048位的RSA密码强度要高。
-
SM3算法:SM3杂凑算法是我国自主设计的密码杂凑算法,适用于商用密码应用中的数字签名和验证消息认证码的生成与验证以及随机数的生成,可满足多种密码应用的安全需求。为了保证杂凑算法的安全性,其产生的杂凑值的长度不应太短,例如MD5输出128比特杂凑值,输出长度太短,影响其安全性SHA-1算法的输出长度为160比特,SM3算法的输出长度为256比特,因此SM3算法的安全性要高于MD5算法和SHA-1算法。
-
SM4算法:SM4分组密码算法是我国自主设计的分组对称密码算法,用于实现数据的加密/解密运算,以保证数据和信息的机密性。要保证一个对称密码算法的安全性的基本条件是其具备足够的密钥长度,SM4算法与AES算法具有相同的密钥长度分组长度128比特,因此在安全性上高于3DES算法。
问题解答二:《密码学》课程中分别有哪些对应的算法?
-
SM1 为对称加密。其加密强度与AES相当。该算法不公开,调用该算法时,需要通过加密芯片的接口进行调用。
-
SM2为非对称加密,基于ECC。该算法已公开。由于该算法基于ECC,故其签名速度与秘钥生成速度都快于RSA。ECC 256位(SM2采用的就是ECC 256位的一种)安全强度比RSA 2048位高,但运算速度快于RSA。
-
SM3 消息摘要。可以用MD5作为对比理解。该算法已公开。校验结果为256位。
-
SM4 无线局域网标准的分组数据算法。对称加密,密钥长度和分组长度均为128位。
任务五 SM1
1.打开实验 8-SM1\Z32HUA.uvproj以打开UART 发送与中断接收实验项目,编译工程,产生实验 8-SM1\bin\Z32HUA.bin可执行代码。
2.将实验箱接入电源,连接实验箱与电脑,用9针串口线将 Z32模块的串口与电脑USB、接口连接,打开Z32下载调试工具软件资料\Z32下载调试工具\NZDownloadTool.exe打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,进行下载调试。
3.显示1设备已连接后,点击浏览,选择\实验8-SM1\bin\Z32HUA.bin,点击下载,绿色进度条加载完成后,程序下载成功。打开串口助手,设置相应参数。
4.关闭Z32电源,再打开,下载完的程序自动运行,显示屏显示“SLE4428实验!请插入IC卡.”。插入IC卡后:用户代码为:”,第四行显示用户代码“D27600000400”。再按下矩阵键盘的“A”键,屏幕第一行显示提示“按-A键校验密码”并在第二行显示两个字节的校验密码“校验0xFF,0xFF”。按下矩阵键盘的“A”键,屏幕第三行显示“校验成功”,第四行显示校验剩余机会“剩余机会:8次”。
5.按下矩阵键盘的“A”键,则屏幕第一行显示“加密解密实验”,第二、三行分别显示选项“1.加密”,“2.解密”。按“1”键选择加密,屏幕第一行显示“观看串口调试 助手”,第二行显示“A键确认加密”。此时,串口调试助手显示原始数据和加密密钥。按下“A”键确认加密后,屏幕第三行显示“加密完成”,第四行显示提示 “A键存入 IC 卡”。串口调试助手显示加密后的数据。按“A”键,将加密数据存入IC卡,此时串口显示“已将数据写入 IC 卡”。屏幕回到加密解密实验选择菜单。
下面进行加密实验。
1.第一行显示“ 观看串口调试助手”,第二行显示“A键确认加密”,通过 串口发送字符“将加密以下数据:”并将发送加密前的数据发送至 PC 机, 发送换行,串口继续发送“加密钥:”并将加密密钥数组发送至 PC 机, 发送完毕等待“ A”键按下;
2.通过串口发送字符“加密后的数据:”并将加密后的数据发送至 PC 机, 换行,在液晶屏第三显示“ 加密完成”,第四行显示“A键存入 IC 卡”, 等待“ A”键按下。当“ A”键按下后,向 SLE4428 IC卡发送加密后的数据, 通过串口向 PC 发送“已将数据写入 IC 卡。”跳转至B段程序。