• 2018-2019-1 实验二 固件程序设计


    实验二  固件程序设计

    小组成员

    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(数据加密标准)

    image

    任务五

    实验要求

    • 注意不经老师允许不准烧写自己修改的代码
    • 参考云班课资源中“信息安全系统实验箱指导书.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,按照步骤一步步细心地做,使得实验总体还是较为成功的。

    此外,提前做好实验预习,看清实验要求,可以为我们节约很多时间,并提升实验的效率。

  • 相关阅读:
    EasyUI笔记(三)Window窗口
    EasyUI笔记(二)Layout布局
    从零构建Flink SQL计算平台
    从零构建Flink SQL计算平台
    Hystrix压测
    Java对象属性复制备忘
    Java垃圾回收手册翻译
    一次虚拟机升级和参数调整记录
    获取不同虚拟机参数的终极方法
    Dataset数据的XML持久化处理
  • 原文地址:https://www.cnblogs.com/IconicV/p/9884568.html
Copyright © 2020-2023  润新知