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

任务一:

要求:
算法

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


任务二:

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



代码分析:安全

任务三:

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

代码分析:
学习

任务四:

0. 网上搜集国密算法标准SM1,SM2,SM3,SM4
1. 网上找一下相应的代码和标准测试代码,在Ubuntu中分别用gcc和gcc-arm编译
2. 四个算法的用途?
3. 《密码学》课程中分别有哪些对应的算法?
4. 提交2,3两个问题的答案
5. 提交在Ubuntu中运行国密算法测试程序的截图测试

关于2,3两个问题的答案:1.SM1 为对称加密。其加密强度与AES至关。该算法不公开,调用该算法时,须要经过加密芯片的接口进行调用。
SM2为非对称加密,基于ECC。该算法已公开。因为该算法基于ECC,故其签名速度与秘钥生成速度都快于RSA。ECC 256位(SM2采用的就是ECC 256位的
一种)安全强度比RSA 2048位高,但运算速度快于RSA。
SM3 消息摘要。能够用MD5做为对比理解。该算法已公开。校验结果为256位。
SM4 无线局域网标准的分组数据算法。对称加密,密钥长度和分组长度均为128位。加密

SM2算法:SM2椭圆曲线公钥密码算法是我国自主设计的公钥密码算法,包括SM2-1椭圆曲线数字签名算法,SM2-2椭圆曲线密钥交换协议,SM2-3椭圆曲线公钥加密算法,分别用于实现数字签名密钥协商和数据加密等功能。SM2算法与RSA算法不一样的是,SM2算法是基于椭圆曲线上点群离散对数难题,相对于RSA算法,256位的SM2密码强度已经比2048位的RSA密码强度要高。设计

SM3算法:SM3杂凑算法是我国自主设计的密码杂凑算法,适用于商用密码应用中的数字签名和验证消息认证码的生成与验证以及随机数的生成,可知足多种密码应用的安全需求。为了保证杂凑算法的安全性,其产生的杂凑值的长度不该过短,例如MD5输出128比特杂凑值,输出长度过短,影响其安全性SHA-1算法的输出长度为160比特,SM3算法的输出长度为256比特,所以SM3算法的安全性要高于MD5算法和SHA-1算法。

 SM4算法:SM4分组密码算法是我国自主设计的分组对称密码算法,用于实现数据的加密/解密运算,以保证数据和信息的机密性。要保证一个对称密码算法的安全性的基本条件是其具有足够的密钥长度,SM4算法与AES算法具备相同的密钥长度分组长度128比特,所以在安全性上高于3DES算法。

2.3DES、SHA-一、RSA3d



任务五:

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







分析代码:
code

遇到的问题:

在作实验2、三和五的时候按照任务中描述的按住reboot键连开两次并无效果,真正的作法是将试验箱电源重启,这样才能正确将试验箱和电脑连接起来。blog

新学习到的知识:

初步掌握了固件程序设计的过程,了解了mdk的破解方法,以及mdk自己的大体用法。

相关文章
相关标签/搜索