zoukankan      html  css  js  c++  java
  • 2017-2018-1 20155203 20155204 实验二 固件程序设计

    实验二 固件程序设计-1-MDK

    0.	注意不经老师允许不准烧写自己修改的代码
    1.	两人(个别三人)一组
    2.	参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.1-1.5安装MDK,JLink驱动,注意,要用系统管理员身分运行uVision4,破解MDK(破解程序中target一定选ARM)
    3.	提交破解程序中产生LIC的截图
    4.	提交破解成功的截图
    

    实验二 固件程序设计-2-LED

    0.	注意不经老师允许不准烧写自己修改的代码
    1.	参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.4” KEIL-MDK 中添加 Z32 SC-000 芯片库,提交安装截图
    2.	参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.9”完成LED实验,注意“打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,进行下载调试。提交运行结果截图
    3.	实验报告中分析代码
    


    实验二 固件程序设计-3-UART

    0.	注意不经老师允许不准烧写自己修改的代码
    1.	参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.4” KEIL-MDK 中添加 Z32 SC-000 芯片库,提交安装截图
    2.	参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.0”完成UART发送与中断接收实验,注意“打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,进行下载调试。提交运行结果截图
    3.	实验报告中分析代码
    

    实验二 固件程序设计-4-国密算法

    0.	网上搜集国密算法标准SM1,SM2,SM3,SM4
    1.	网上找一下相应的代码和标准测试代码,在Ubuntu中分别用gcc和gcc-arm编译
    2.	四个算法的用途?
    3.	《密码学》课程中分别有哪些对应的算法?
    4.	提交2,3两个问题的答案
    5.	提交在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位。可以当作DES进行理解。

    SM2算法实现:

    SM3算法实现:

    SM4算法实现:

    实验二 固件程序设计-5-SM1

    0.	注意不经老师允许不准烧写自己修改的代码
    1.	参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.4” KEIL-MDK 中添加 Z32 SC-000 芯片库,提交安装截图
    2.	参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.16”完成SM1加密实验,注意“打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,进行下载调试。提交运行结果截图
    3.	实验报告中分析代码
    



    实验二 固件程序设计-6-清理

    实验结束后,把实验室原来的网线插回,否则以后做实验的同学无法开机
    0. 只有用实验室机器的小组做
    1. 提交你们小组使用的计算机的编号照片
    2. 提交插好网线的照片
    3. 提交盖好后盖的照片
    

    实验中遇到的问题和解决方案

    • 问题一:LED实验中编译不成功,提示错误为没有符合的函数库可用。

    错误提示图:

    • 问题一解决方案:设置环境变量,步骤参见设置方法

    • 问题二:编译SM2的C文件时出现找不到库的问题。

    • 问题二解决方案:输入两条命令重装 openssl 和 libssl-dev

    sudo apt-get remove openssl libssl-dev
    sudo apt-get install openssl libssl-dev -y
    
    • 问题三:添加库后仍不能编译成功,出现多个变量未定义的问题,如图:

    • 问题三解决方案:添加参数
      -lssl -lcrypto
      ,如
    gcc sm2.c sm2test.c -lssl -lcrypto -o prog 
    

    注意参数的顺序,此处可以参考gcc编译的时候,各个文件依赖顺序的问题

    代码托管

  • 相关阅读:
    凤凰架构-读书笔记
    《团队协作的五大障碍》笔记
    MongoDB基本操作命令一
    NBI可视化集成clickhouse,实现百亿级数据分析能力
    AI文本与图像数据集荟萃
    gitLab内网部署
    git管理子模块
    git基础使用
    linux内核数据结构之链表-再实现
    win10下安装linux子系统
  • 原文地址:https://www.cnblogs.com/xhwh/p/7768554.html
Copyright © 2011-2022 走看看