《基于Arm实验箱的国密算法应用》课程设计 结题报告

《基于Arm实验箱的国密算法应用》课程设计 结题报告

  • 小组成员姓名:20155206赵飞 20155220吴思其 20155234昝昕明
  • 指导教师:娄嘉鹏

    一、设计方案

    题目要求:基于Arm实验箱的国密算法应用
    三种平台:
    Z32
    ARM32+Linux
    STM32
    内容:
    SM1, SM2,SM3算法测试
    算法应用:混合密码系统

    二、SM1, SM2,SM3算法测试:

    1.LED闪烁实验
    实验过程及结果:
    1、打开“Z32开发指南\实验1-LED闪烁”目录的工程文件。编译工程,产生后缀名为.bin的可执行代码。

Z32工程编译图
2、下载程序
将实验箱接入电源,用USB公对公线将实验箱的USB接口连接到电脑的USB接口上,在电脑上找到“Z32开发指南\2.软件资料\Z32下载调试工具”目录打开Z32下载调试工具NZDownloadTool.exe。打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,进行下载调试。

USB下载线连接图

电源开关及按键示意图

当左边框出现“1设备已连接”,设备选择中显示芯片型号,此时就可以下载程序了。

Z32下载工具程序下载成功图
点击“下载”,左边状态提示框更新显示“程序下载成功!”实验1的程序就下载进Z32的实验板上了。
实验现象:
实验1的内容是对LED灯的操作,我们关闭Z32电源开关,再打开,程序自动运行,此时可以看到实验现象:Z32核心板上L2灯开始闪烁。

2.UART发送与中断接收实验
实验过程及结果:
1、打开“Z32开发指南\实验2-UART发送与中断接收”目录的工程文件。编译工程,产生后缀名为.bin的可执行代码。
2、下载程序
将实验箱接入电源,用USB公对公线将实验箱的USB接口连接到电脑的USB接口上,在电脑上找到“Z32开发指南\2.软件资料\Z32下载调试工具”目录打开Z32下载调试工具NZDownloadTool.exe。打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,进行下载调试。

Z32下载工具程序下载成功图
点击“下载”,左边状态提示框更新显示“程序下载成功!”实验2的程序就下载进Z32的实验板上了。

实验2使用串口调试助手(sscom)来观察串口通信收发的数据。
我们用9针串口线将Z32模块的串口与电脑USB接口连接。
首先在电脑上打开串口助手,选择对应的串口号,设置波特率为115200,偶校验(Even),选中“发送新行”,然后打开串口。
关闭Z32电源开关,再打开,程序自动运行,可以在串口调试助手看到如下实验现象:显示“A Welcome to Z32HUA! 1234567890 0xAA”,证明PC机串口已经接收到Z32串口发送来的信息。
我们在串口调试助手的字符串输入框输入字符串“abcdefgh”,然后点击发送按钮。
这时,可以看到串口调试助手接收到我们发送输入的字符串“abcdefgh”,并显示在串口助手上。

串口助手发收显示

3.12864液晶屏串行显示实验
实验过程及结果:
1、打开“Z32开发指南\实验3-12864液晶屏串行显示”目录的工程文件。编译工程,产生后缀名为.bin的可执行代码。

2、下载程序
将实验箱接入电源,用USB公对公线将实验箱的USB接口连接到电脑的USB接口上,在电脑上找到“Z32开发指南\2.软件资料\Z32下载调试工具”目录打开Z32下载调试工具NZDownloadTool.exe。打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,进行下载调试。
当左边框出现“1设备已连接”,设备选择中显示芯片型号,此时就可以下载程序了。

Z32下载工具程序下载成功图
点击“下载”,左边状态提示框更新显示“程序下载成功!”实验3的程序就下载进Z32的实验板上了。
实验3的内容是LCD12864液晶屏的显示操作。
关闭Z32电源开关,再打开,程序自动运行,此时可以看到实验现象:屏幕上依次显示以下字符:
“欢迎使用Z32HUA!
LCD12864液晶测试
1.2.3.4.5.6.7.8.
A.B.C.D.E.F.G.H.”
其中行与行之间显示的间隔时间约为1.8s,四行字符全部显示完成后清屏幕,重新循环显示。

4.GPIO0按键中断实验
实验过程及结果:
1、打开“Z32开发指南\实验4-GPIO0按键中断”目录的工程文件。编译工程,产生后缀名为.bin的可执行代码。
2、下载程序
将实验箱接入电源,用USB公对公线将实验箱的USB接口连接到电脑的USB接口上,在电脑上找到“Z32开发指南\2.软件资料\Z32下载调试工具”目录打开Z32下载调试工具NZDownloadTool.exe。打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,进行下载调试。

当左边框出现“1设备已连接”,设备选择中显示芯片型号,此时就可以下载程序了。

Z32下载工具程序下载成功图
点击“下载”,左边状态提示框更新显示“程序下载成功!”实验4的程序就下载进Z32的实验板上了。
实验4的内容是按键中断,12864显示屏显示字符。
关闭Z32电源开关,再打开,程序自动运行,此时可以看到实验现象:12864屏幕第一行显示:“请按reboot按键:”。。
依次按下按键10次后,屏幕第二行显示0~9的数字。

5.矩阵键盘实验
实验过程及结果:
1、打开“Z32开发指南\实验5-矩阵键盘”目录的工程文件。编译工程,产生后缀名为.bin的可执行代码。

Z32工程编译图
2、下载程序
将实验箱接入电源,用USB公对公线将实验箱的USB接口连接到电脑的USB接口上,在电脑上找到“Z32开发指南\2.软件资料\Z32下载调试工具”目录打开Z32下载调试工具NZDownloadTool.exe。打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,进行下载调试。

当左边框出现“1设备已连接”,设备选择中显示芯片型号,此时就可以下载程序了。

Z32下载工具程序下载成功图
点击“下载”,左边状态提示框更新显示“程序下载成功!”实验5的程序就下载进Z32的实验板上了。
实验5的内容是读矩阵键盘键值并显示。
关闭Z32电源开关,再打开,程序自动运行,此时可以看到实验现象:12864屏幕第一行显示字符串

按下矩阵键盘上“A”键,屏幕第二行显示“A”。

按下“A”键显示图

6.TIMER定时器实验
实验过程及结果:
1、打开“Z32开发指南\实验6-TIMER定时器”目录的工程文件。编译工程,产生后缀名为.bin的可执行代码。

Z32工程编译图
2、下载程序
将实验箱接入电源,用USB公对公线将实验箱的USB接口连接到电脑的USB接口上,在电脑上找到“Z32开发指南\2.软件资料\Z32下载调试工具”目录打开Z32下载调试工具NZDownloadTool.exe。打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,进行下载调试。

当左边框出现“1设备已连接”,设备选择中显示芯片型号,此时就可以下载程序了。

图6 Z32下载工具程序下载成功图
点击“下载”,左边状态提示框更新显示“程序下载成功!”实验6的程序就下载进Z32的实验板上了。
实验6的内容是定时器溢出中断,控制LED灯以0.5Hz频率亮灭,并将0~9秒循环计数显示在12864显示屏上。
关闭Z32电源开关,再打开,程序自动运行,此时可以看到实验现象:Z32核心板上的灯L2以0.5Hz频率闪烁,12864屏幕上显示“定时器测试:”,第二行循环显示从0到9的秒计数值。
每隔1秒灯L2亮或灭一次,当计数值为偶数时,灯L2亮,计数值为奇数时,灯L2灭。

定时器计秒值“9”

7.SLE4428逻辑加密卡实验
实验过程及结果:
1、打开“Z32开发指南\实验7-SLE4428逻辑加密卡”目录的工程文件。编译工程,产生后缀名为.bin的可执行代码。
2、下载程序
将实验箱接入电源,用USB公对公线将实验箱的USB接口连接到电脑的USB接口上,在电脑上找到“Z32开发指南\2.软件资料\Z32下载调试工具”目录打开Z32下载调试工具NZDownloadTool.exe。打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,进行下载调试。
当左边框出现“1设备已连接”,设备选择中显示芯片型号,此时就可以下载程序了。

点击“下载”,左边状态提示框更新显示“程序下载成功!”实验7的程序就下载进Z32的实验板上了。
实验7的内容是SLE4428逻辑加密卡实验,按照程序提示,插入SLE4428逻辑加密卡,A段程序显示用户代码并进行密码校验,B段程序读取卡片存储的金额信息并修改金额。
关闭Z32电源开关,再打开,程序自动运行,此时可以看到实验现象:显示屏第一行显示“SLE4428实验!”,第二行显示“请插入IC卡...”。
插入SLE4428 IC卡,显示屏第三行显示:“用户代码为:”,第四行显示用户代码“D27600000400”。
若插入了正确的卡片,显示出用户代码,再按下矩阵键盘的“A”键,屏幕第一行显示提示“按-A键校验密码”并在第二行显示两个字节的校验密码“校验0xFF,0xFF”。
按下矩阵键盘的“A”键,屏幕第三行显示“校验成功”,第四行显示校验剩余机会“剩余机会:8次”。
再按下矩阵键盘的“A”键,则屏幕第一行显示卡内金额数“金额:100”,第二行提示“输入金额,A键修改”。
在矩阵键盘上输入三位修改的金额数200,按下矩阵键盘的“A”键确认。
确认后,金额更新,屏幕上显示更改后的卡内金额“金额200”,第四行继续提示“输入金额,A键修改”,可以再次进行更改。

修改后卡内金额
修改完金额后,就可以拔出IC卡。

8.SM1加密实验
实验过程及结果:
1、打开“Z32开发指南\实验8-SM1”目录的工程文件。编译工程,产生后缀名为.bin的可执行代码。

Z32工程编译图
2、下载程序
将实验箱接入电源,用USB公对公线将实验箱的USB接口连接到电脑的USB接口上,在电脑上找到“Z32开发指南\2.软件资料\Z32下载调试工具”目录打开Z32下载调试工具NZDownloadTool.exe。打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,进行下载调试。

当左边框出现“1设备已连接”,设备选择中显示芯片型号,此时就可以下载程序了。

Z32下载工具程序下载成功图
点击“下载”,左边状态提示框更新显示“程序下载成功!”实验8的程序就下载进Z32的实验板上了。
实验8的内容是SM1加解密实验,待加密的原始数据以及加密秘钥已经内置到程序中,修改UINT8 jiamiqian[16]数组即可更换待加密数据,修改jiamimiyue[16]数组和cuowumiyue[16]即可修改正确和错误的加密密钥。本实验同样使用SLE4428 IC卡作为加解密介质,按照程序提示,插入SLE4428逻辑加密卡,A段程序显示用户代码并进行密码校验,B段程序进行加密/解密选择,加密程序段进行SM1加密并将加密前后数据通过串口发送至PC机,解密程序段进行SM1解密并将解密前后数据通过串口发送至PC机。
我们用9针串口线将Z32模块的串口与电脑USB接口连接。
首先在电脑上打开串口助手,选择对应的串口号,设置波特率为115200,偶校验(Even),然后打开串口。
关闭Z32电源开关,再打开,程序自动运行,此时可以看到实验现象:显示屏显示“SLE4428实验!请插入IC卡...”。
插入SLE4428 IC卡,显示屏第三行显示:“用户代码为:”,第四行显示用户代码“D27600000400”。
若插入了正确的卡片,显示出用户代码,再按下矩阵键盘的“A”键,屏幕第一行显示提示“按-A键校验密码”并在第二行显示两个字节的校验密码“校验0xFF,0xFF”。
按下矩阵键盘的“A”键,屏幕第三行显示“校验成功”,第四行显示校验剩余机会“剩余机会:8次”。
再按下矩阵键盘的“A”键,则屏幕第一行显示“加密解密实验”,第二、三行分别显示选项“1.加密”,“2.解密”。
首先进行加密实验。按“1”键选择加密,屏幕第一行显示“观看串口调试助手”,第二行显示“A键确认加密”。此时,串口调试助手显示原始数据和加密密钥。

按下“A”键确认加密后,屏幕第三行显示“加密完成”,第四行显示提示“A键存入IC卡”。串口调试助手显示加密后的数据。
按“A”键,将加密数据存入IC卡,此时串口显示“已将数据写入IC卡”。屏幕回到加密解密实验选择菜单。
下面进行解密实验。按“2”键选择解密实验后屏幕显示“观看串口调试助手 A键读取IC卡数据”。
按“A”键后,此时屏幕显示“读取成功 选择密钥解密:1.正确密钥 2.错误密钥”。串口显示“读取的数据:为:0x7E 0xDC 0xA3 0x7B 0xBA 0x53 0x84 0xAC 0x0B 0x75 0x50 0x45 0x2E 0xEC 0x4F 0x4F”。
按“1”键选择正确的密钥后,屏幕提示“A键确认解密”,此时串口显示“将使用以下密钥进行解密:0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F”。

按“A” 键确认解密后,屏幕提示“解密完成 A键返回”,此时串口显示“解密后的数据为:0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F”。
按“A”键返回加/解密选择菜单。
如果使用错误秘钥进行解密,解密后将不能得到原始数据,在加/解密选择菜单中按“2”进行解密实验,用错误的秘钥解密。屏幕提示“观看串口调试助手 A键读取IC卡数据”。
按“A”键后,此时屏幕显示“读取成功 选择密钥解密:1.正确密钥 2.错误密钥”。串口显示“读取的数据:为:0x7E 0xDC 0xA3 0x7B 0xBA 0x53 0x84 0xAC 0x0B 0x75 0x50 0x45 0x2E 0xEC 0x4F 0x4F”。
按“2”键选择错误的密钥后,屏幕提示“A键确认解密”,此时串口显示“将使用以下密钥进行解密:0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00”。
按“A” 键确认解密后,屏幕提示“解密完成 A键返回”,此时串口显示“解密后的数据为:0xB9 0x8C 0xB6 0x40 0xA2 0xD2 0x83 0xD0 0x64 0x6E 0x54 0x26 0x86 0x6D 0x5A 0xF5”。而正确的原始数据为:“0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F”,所以解密失败。

串口助手显示错误解密后数据
9.SM2加密实验
实验过程及结果:
1、打开“Z32开发指南\实验8-SM2”目录的工程文件。编译工程,产生后缀名为.bin的可执行代码。

Z32工程编译图
2、下载程序
将实验箱接入电源,用USB公对公线将实验箱的USB接口连接到电脑的USB接口上,在电脑上找到“Z32开发指南\2.软件资料\Z32下载调试工具”目录打开Z32下载调试工具NZDownloadTool.exe。打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,进行下载调试。
当左边框出现“1设备已连接”,设备选择中显示芯片型号,此时就可以下载程序了。

Z32下载工具程序下载成功图
点击“下载”,左边状态提示框更新显示“程序下载成功!”实验8的程序就下载进Z32的实验板上了。
实验9的内容是SM2加解密实验。本实验使用Z32内置函数库实现加解密算法。
我们用9针串口线将Z32模块的串口与电脑USB接口连接。
首先在电脑上打开串口助手,选择对应的串口号,设置波特率为115200,偶校验(Even),然后打开串口。
关闭Z32电源开关,再打开,程序自动运行,此时可以看到实验现象:12864屏幕上显示“SM2实验!请看串口助手”。
在字符串输入框输入数据“abc”,点击发送。
输入字符串“abc”发送,字符串显示在串口调试助手上,如图。
按下矩阵键盘“A”键,串口调试助手显示数据“输入的数据为:abc”,并提示“按A键进行加密”。
按矩阵键盘上“A”键,加密后的数据显示在串口调试助手上,如图。
再按“A”键,进行解密,解密后的数据显示在串口调试助手上。

串口助手显示解密后数据
10.SM3加密实验
实验过程及结果:
1、打开“Z32开发指南\实验10-SM3”目录的工程文件。编译工程,产生后缀名为.bin的可执行代码。
2、下载程序
将实验箱接入电源,用USB公对公线将实验箱的USB接口连接到电脑的USB接口上,在电脑上找到“Z32开发指南\2.软件资料\Z32下载调试工具”目录打开Z32下载调试工具NZDownloadTool.exe。打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,进行下载调试。
当左边框出现“1设备已连接”,设备选择中显示芯片型号,此时就可以下载程序了。
点击“下载”,左边状态提示框更新显示“程序下载成功!”实验10的程序就下载进Z32的实验板上了。
实验9的内容是SM3数据加密实验。本实验使用Z32内置函数库实现加密算法。
我们用9针串口线将Z32模块的串口与电脑USB接口连接。
首先在电脑上打开串口助手,选择对应的串口号,设置波特率为115200,偶校验(Even),然后打开串口。
关闭Z32电源开关,再打开,程序自动运行,此时可以看到实验现象:液晶屏上显示“SM2实验!请看串口助手”。
串口助手上提示:“请输入需要杂凑的数据(64字节以内),并按A键确认”。
在字符串输入框输入数据“wsq”,点击发送。
按下“A”键后进行,加密,串口调试助手显示被杂凑加密后的数据。

串口助手显示杂凑加密后数据
11.Z32与ARM间通信实验
实验过程及结果:

13.通过超级终端实现串口助手

课设中未能解决的问题
当Z32和ARM同时开启时,会导致Z32中下载好的程序无法成功运行,会影响到Z32接收到的数据从而使加解密的数据成为乱码。

猜你喜欢

转载自www.cnblogs.com/20155220wsq/p/9130621.html
今日推荐