• 2019-2020信息安全系统设计基础 20175306 20175309 20175326 实验二 固件程序设计


    2019-2020-1 20175306 20175309 20175326 实验二 固件程序设计

    实验步骤

    1-MDK

    • 参考云班课资源中“信息安全系统实验箱指导书.pdf”第一章,1.1-1.5安装MDK,JLink驱动,注意,要用系统管理员身份运行uVision4,破解MDK(破解程序中target一定选ARM)
      File->License Management...->复制CID码->粘贴并选择“ARM”后再复制产生的LIC->将其粘贴回License Management的LIC框中->破解成功

    • 提交破解程序中产生LIC的截图:

    • 提交破解成功的截图

    • 注意一定要用管理员身份运行uVision4,不然真的会失败!!!认真看好老师的任务细节!!

    2-LED

    • 参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.4” KEIL-MDK 中添加 Z32 SC-000 芯片库,提交安装截图

    • 参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.9”完成LED实验,注意“打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,进行下载调试。提交运行结果截图

    - 代码分析

    主函数:

    -SystemInit ()
    系统初始化;

    • if(0 == GPIO_GetVal(0))
      {
      BtApiBack(0x55555555, 0xAAAAAAAA);
      }
      判断按键,返回 boot 条件,确认是否进行程序下载;

    • GPIO_PuPdSel(0,0);
      GPIO_InOutSet(0,0);
      设置 GPIO0 状态为上拉输出;

    • while(1)
      {
      delay(100);
      GPIO_SetVal(0,0); //输出低电平,点亮 LED
      delay(100);
      GPIO_SetVal(0,1); //输出高电平,熄灭 LED
      }
      进入循环程序, LED 灯间隔 100ms 闪烁。

    3-UART

    • 参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.4” KEIL-MDK 中添加 Z32 SC-000 芯片库,提交安装截图

    • 参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.0”完成UART发送与中断接收实验,注意“打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,进行下载调试。提交运行结果截图

    - 代码分析

    • void UART_Irq Service(void) 是进行串口中断服务;

    • void UART_BrpSet(UINT16 set)是进行波特率设置;

    • void UART_Init(void) 是进行串口初始化;

    • void UART_SendByte(UINT8 dat) 是用于发送单字节;

    • void UART_SendString(UINT8 * str) 是用于发送字符串;

    • void uart_SendString(UINT8 buf[],length) 是用于发送某一长度的字符串;

    • void UART_SendNum(INT32 num) 是用于发送单个十进制整数;

    • void UART_SendHex(UINT8 dat) 是用于发送单个十六进制整数;

    • UINT8 UART_GetByte(*data) 是用于接收单字节;

    • void UART_Receive(UINT8 *receive, len) 是用于接收多字节;

    4-国密算法

    • SM3杂凑算法:

    SM3密码杂凑(哈希、散列)算法适用于商用密码应用中的数字签名和验证,消息认证码的生成与验证以及随机数的生成,可满足多种密码应用的安全需求。
    对应MD5算法
    运行截图

    • SM4对称算法:

    此算法采用非线性迭代结构,是一个分组算法,用于无线局域网产品。该算法的分组长度为128比特,密钥长度为128比特。
    对应3DES算法
    运行截图

    1.基本运算:SM4密码算法使用模2加和循环移位作为基本运算。

    2.基本密码部件:SM4密码算法使用了S盒、非线性变换τ、线性变换部件L、合成变换T基本密码部件。

    3.轮函数:SM4密码算法采用对基本轮函数进行迭代的结构。利用上述基本密码部件,便可构成轮函数。SM4密码算法的轮函数是一种以字为处理单位的密码函数。

    4.加密算法:SM4密码算法是一个分组算法。数据分组长度为128比特,密钥长度为128比特。加密算法采用32轮迭代结构,每轮使用一个轮密钥。

    5.解密算法:SM4密码算法是对合运算,因此解密算法与加密算法的结构相同,只是轮密铝的使用顺序相反,解密轮密钥是加密轮密钥的逆序。

    6.密钥扩展算法:SM4密码算法使用128位的加密密钥,并采用32轮法代加密结构,每一轮加密使用一个32位的轮密钥,共使用32个轮密钥。因此需要使用密钥扩展算法,从加密密钥产生出32个轮密钥。

    7.SM4的安全性:SM4密码算法经过我国专业密码机构的充分分析测试,可以抵抗差分攻击、线性攻击等现有攻击,因此是安全的。

    5-SM1

    • 参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.4” KEIL-MDK 中添加 Z32 SC-000 芯片库,提交安装截图

    • 参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.16”完成SM1加密实验,注意“打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,进行下载调试。提交运行结果截图

    • 连接与下载成功

    • 剩下的步骤将用图片一张一张演示

    按照提示插入SLE4428 IC卡;

    按A键进行校验,校验成功后选择加密和解密;

    按1选择加密,再按A确认加密,在串口助手上可以看到观察明文、秘钥和密文;

    再按A键,将加密数据存入IC卡中;

    按2选择解密,选择正确秘钥后,再按A键确认解密,串口助手上可以看到解密后的信息;

    再按A键返回菜单。

    - 代码分析

    主函数:

    • 系统初始化;

    • 判断按键,返回 boot 条件;

    • 初始化IC卡插入检测IO口GPIO6;
      B:

    • 按下A键,显示屏第一行“加密解试验”,第二、三行分别示“ 1. 加密”“ 2. 解密”两个选项。
      加密:

    • SM1初始化;

    • 进行SM1加密;

    • 关闭SM1加密安全模块;
      解密:

    • SM1初始化;

    • 进行SM1解密;

    • 关闭SM1加密安全模块;

    实验体会:由于本次实验是第二次实验,所以小组成员更有默契,配合起来也得心应手,在做实验的过程中也分工明确,可以让我们更快更好的完成实验。但是还是遇到了一些问题,首先就是试验箱等硬件问题,都通过更换和调试解决。其次就是在使用软件进行编译实验等问题,注意在使用软件时要用管理员身份运行。最后通过我们共同的努力顺利完成本次实验!!!

  • 相关阅读:
    WPF数据爬取小工具-某宝推广位批量生成,及订单爬取 记:接单最痛一次的感悟
    .net core2.1
    Ng Alain使用
    MediatR
    RN错误随笔
    【转载】DDD分层架构的三种模式
    1.RN环境搭建,创建项目,使用夜神模拟调试
    ExtJs4 笔记(2) ExtJs对js基本语法扩展支持
    ExtJs4 笔记(1) ExtJs大比拼JQuery:Dom文档操作
    vue的父子通信
  • 原文地址:https://www.cnblogs.com/wjs123456/p/11875767.html
Copyright © 2020-2023  润新知