2018-2019-1 20165202 20165210 20165214 实验二 固件程序设计

2018-2019-1 20165202 20165210 20165214 实验二 固件程序设计

一、实验内容

  1. 安装MDK,JLink驱动,运行uVision4,破解MDK
  2. KEIL-MDK 中添加Z32 SC-000芯片库,完成LED实验
  3. 完成UART发送与中断接收实验
  4. 理解国密算法标准SM1,SM2,SM3,SM4并用gccgcc-arm编译
  5. 完成SM1加密实验

二、实验步骤

  1. 安装MDK,JLink驱动,运行uVision4,破解MDK
    • 运行exp2/软件资料/MDK4.74/.exe安装MDK-ARM

    • 安装JLink

    • 破解MDK4.74:复制CID到keil-MDK注册机中,Target选择ARM,点击generate生成LIC

    • 将LIC复制到keil4中的LIC输入框,点击Add LIC,破解完成。

  2. KEIL-MDK 中添加Z32 SC-000芯片库,完成LED实验
    • 运行exp2\软件资料\MDK-ARM-SC000\MDK-ARM_AddOn_SC000_Support.exe安装SC000库

    • 搭建Z32工程基础编程环境:建立new uVision Project,选择完安装路径后,弹出芯片库选择框,在下拉框中选择Generic SC000 Device Database,在弹出框中点开ARM目录,选择SC000。
    • 打开实验1-LED 闪烁\Z32HUA.uvproj以打开LED闪烁实验项目,编译项目生成实验1-LED 闪烁\bin\Z32HUA.bin
    • 将实验箱接入电源,连接实验箱与电脑,打开Z32下载调试工具软件资料\Z32下载调试工具\NZDownloadTool.exe打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,显示1设备已连接后,点击浏览,选择\实验 1-LED 闪烁\bin\Z32HUA.bin,点击下载,绿色进度条加载完成后,程序下载成功
    • 关闭Z32电源,再打开,下载完的程序自动运行,可以看到核心板上LED灯闪烁。

  3. 完成UART发送与中断接收实验
    • 打开实验 2-UART 发送与中断 接收\Z32HUA.uvproj以打开UART 发送与中断 接收实验项目,编译项目生成实验 2-UART 发送与中断接收\bin\Z32HUA.bin
    • 将实验箱接入电源,连接实验箱与电脑,用 9 针串口线将 Z32 模块的串口与电脑 USB 接口连接,打开Z32下载调试工具软件资料\Z32下载调试工具\NZDownloadTool.exe打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,显示1设备已连接后,点击浏览,选择\实验 2-UART 发送与中断接收\bin\Z32HUA.bin,点击下载,绿色进度条加载完成后,程序下载成功
    • 打开串口助手,设置相应参数。
    • 关闭Z32电源,再打开,下载完的程序自动运行,在串口调试助手的字符串输入框输入字符串“abcdefgh”,然后点击发
      送按钮。
  4. 理解国密算法标准SM1,SM2,SM3,SM4并用gccgcc-arm编译

  5. 完成SM1加密实验
    • 打开实验 8-SM1\Z32HUA.uvproj以打开UART 发送与中断 接收实验项目,编译项目生成实验 8-SM1\bin\Z32HUA.bin
    • 将实验箱接入电源,连接实验箱与电脑,用 9 针串口线将 Z32 模块的串口与电脑 USB 接口连接,打开Z32下载调试工具软件资料\Z32下载调试工具\NZDownloadTool.exe打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,显示1设备已连接后,点击浏览,选择\实验 8-SM1\bin\Z32HUA.bin,点击下载,绿色进度条加载完成后,程序下载成功
    • 打开串口助手,设置相应参数。
    • 关闭Z32电源,再打开,下载完的程序自动运行,显示屏显示“SLE4428 实验!请插入 IC 卡.”。插入IC卡后:用户代码为:”,第四行显示用户代码“D27600000400”。再按下矩阵键盘的“A”键,屏幕 第一行显示提示“按-A 键校验密码”并在第二行显示两个字节的校验密码 “校验 0xFF,0xFF”。按下矩阵键盘的“A”键,屏幕第三行显示“校验成功”,第四行显示校验 剩余机会“剩余机会:8 次”。
    • 按下矩阵键盘的“A”键,则屏幕第一行显示“加密解密实验”,第二、三行分别显示选项“1.加密”,“2.解密”。按“1”键选择加密,屏幕第一行显示“观看串口调试 助手”,第二行显示“A 键确认加密”。此时,串口调试助手显示原始数据和 加密密钥。按下“A”键确认加密后,屏幕第三行显示“加密完成”,第四行显示提示 “A 键存入 IC 卡”。串口调试助手显示加密后的数据。按“A”键,将加密数据存入 IC 卡,此时串口显示“已将数据写入 IC 卡”。 屏幕回到加密解密实验选择菜单。
    • 下面进行解密实验。按“2”键选择解密实验后屏幕显示“观看串口调试助 手 A键读取IC卡数据”。按“A”键后,此时屏幕显示“读取成功 选择密钥解密:1.正确密钥 2.错 误密钥”。串口显示“读取的数据:为:0x7E 0xDC 0xA3 0x7B 0xBA 0x53 0x84 0xAC 0x0B 0x75 0x50 0x45 0x2E 0xEC 0x4F 0x4F”。按“1”键选择正确的密钥后,屏幕提示“A 键确认解密”,此时串口显示“将 使用以下密钥进行解密:0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F”。按“A” 键确认解密后,屏幕提示“解密完成 A 键返回”,此时串口显示 “解密后的数据为:0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F”。按“A”键返回加/解密选择菜单。
    • 使用错误密钥解密:菜单中按“2”进行解密实验,用错误的秘钥解密。按“A”键后,此时屏幕显示“读取成功 选择密钥解密:1.正确密钥 2.错 误密钥”。串口显示“读取的数据:为:0x7E 0xDC 0xA3 0x7B 0xBA 0x53 0x84 0xAC 0x0B 0x75 0x50 0x45 0x2E 0xEC 0x4F 0x4F”。按“2”键选择错误的密钥后,屏幕提示“A 键确认解密”,此时串口显示“将 使用以下密钥进行解密:0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00”。按“A” 键确认解密后,屏幕提示“解密完成 A 键返回”,此时串口显示 “解密后的数据为:0xB9 0x8C 0xB6 0x40 0xA2 0xD2 0x83 0xD0 0x64 0x6E 0x54 0x26 0x86 0x6D 0x5A 0xF5”。而正确的原始数据为:“0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F”,所 以解密失败。

三、实验过程中遇到的问题和解决方案

  • 问题1:很多时候电脑无法识别Z32,按照指示说明尝试n次无果
  • 问题1解决方案:最后选择了。。重启电脑,然后之后都能成功识别了。QAQ

四、实验体会与总结

本次实验学习了新的知识点和命令

  1. 关于国密算法标准SM1,SM2,SM3,SM4
    • 国产密码算法(国密算法)是指国家密码局认定的国产商用密码算法,在金融领域目前主要使用公开的SM2、SM3、SM4三类算法,分别是非对称算法、哈希算法和对称算法。密钥长度和分组长度均为128位
    • SM1 为对称加密。其加密强度与AES相当。该算法不公开,调用该算法时,需要通过加密芯片的接口进行调用。
    • SM2为非对称加密,基于ECC(椭圆曲线加解密)。该算法已公开。SM2椭圆曲线公钥密码算法是我国自主设计的公钥密码算法,包括SM2-1椭圆曲线数字签名算法,SM2-2椭圆曲线密钥交换协议,SM2-3椭圆曲线公钥加密算法,分别用于实现数字签名密钥协商和数据加密等功能。SM2算法与RSA算法不同的是,SM2算法是基于椭圆曲线上点群离散对数难题,相对于RSA算法,256位的SM2密码强度已经比2048位的RSA密码强度要高。
    • SM3 消息摘要。可以用MD5作为对比理解。该算法已公开。校验结果为256位。SM3杂凑算法是我国自主设计的密码杂凑算法,适用于商用密码应用中的数字签名和验证消息认证码的生成与验证以及随机数的生成,可满足多种密码应用的安全需求。为了保证杂凑算法的安全性,其产生的杂凑值的长度不应太短,例如MD5输出128比特杂凑值,输出长度太短,影响其安全性SHA-1算法的输出长度为160比特,SM3算法的输出长度为256比特,因此SM3算法的安全性要高于MD5算法和SHA-1算法
    • SM4 无线局域网标准的分组数据算法。对称加密,密钥长度和分组长度均为128位。SM4分组密码算法是我国自主设计的分组对称密码算法,用于实现数据的加密/解密运算,以保证数据和信息的机密性。要保证一个对称密码算法的安全性的基本条件是其具备足够的密钥长度,SM4算法与AES算法具有相同的密钥长度分组长度128比特,因此在安全性上高于3DES算法。

五、参考资料

猜你喜欢

转载自www.cnblogs.com/jhs888/p/9906146.html