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算法
- 运行截图
-
由于学术不精,直接看这几个算法的代码我并没有看懂,下面大致是我找到的相关资料及尝试理解代码的过程:
- 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密码算法经过我国专业密码机构的充分分析测试,可以抵抗差分攻击、线性攻击等现有攻击,因此是安全的。
- SM2
5-SM1
- 参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.4” KEIL-MDK 中添加 Z32 SC-000 芯片库
- 提交安装截图
- 提交安装截图
- 参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.16”完成SM1加密实验,注意“打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,进行下载调试。
- 连接与下载成功
- 插入IC卡
- 加密后使用正确密钥解密
- 加密后使用错误密钥解密
- 连接与下载成功
实验中遇到的问题及解决方法
- 问题:在编译SM2算法时遇到“未定义的引用”问题
- 解决办法:参考了以往学长学姐的博客,得知在编译时添加参数
-lssl -lcrypto
即能解决:
实验感受
- 跟着老师的PDF版《信息安全系统实验箱指导书》很容易就能完成实验,有趣:)
- 团队合作的重要性,特别是在进行连接的时候。三个人一起做实验提高了效率。