2018-2019-1 20165309 20165312 20165330 实验二 固件程序设计

2018-2019-1 20165309 20165312 20165330 实验二 固件程序设计

实验步骤

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即可被电脑识别,进行下载调试。
    • 连接与下载成功
    • 灯闪烁——灯亮
    • 灯闪烁——灯灭

3-UART

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

4-国密算法

  • SM1对称密码
    SM1 算法是分组密码算法,分组长度为128位,密钥长度都为 128 比特,算法不公开,仅以IP核的形式存在于芯片中。采用该算法已经研制了系列芯片、智能IC卡、智能密码钥匙、加密卡、加密机等安全产品,广泛应用于电子政务、电子商务及国民经济的各个应用领域(包括国家政务通、警务通等重要领域)。

    • 对应AES算法
  • SM2椭圆曲线公钥密码算法
    SM2算法就是ECC椭圆曲线密码机制,推荐了一条256位的曲线作为标准曲线。包括SM2-1椭圆曲线数字签名算法,SM2-2椭圆曲线密钥交换协议,SM2-3椭圆曲线公钥加密算法,分别用于实现数字签名密钥协商和数据加密等功能。

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

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

    • 对应3DES算法
    • 运行截图
  • 代码来源:关于国密算法 SM1,SM2,SM3,SM4 的笔记

  • 由于学术不精,直接看这几个算法的代码我并没有看懂,下面大致是我找到的相关资料及尝试理解代码的过程:

    • SM2

    • SM3算法有消息填充、分块、迭代压缩三个步骤:
    • SM4

    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即可被电脑识别,进行下载调试。
    • 连接与下载成功
    • 插入IC卡
    • 加密后使用正确密钥解密
    • 加密后使用错误密钥解密

实验中遇到的问题及解决方法

  • 问题:在编译SM2算法时遇到“未定义的引用”问题

  • 解决办法:参考了以往学长学姐的博客,得知在编译时添加参数-lssl -lcrypto即能解决:

实验感受

  • 跟着老师的PDF版《信息安全系统实验箱指导书》很容易就能完成实验,有趣:)
  • 团队合作的重要性,特别是在进行连接的时候。三个人一起做实验提高了效率。
posted on 2018-11-03 17:04  歌儿  阅读(322)  评论(0编辑  收藏  举报