本发明涉及信息安全领域,具体涉及一种椭圆曲线公钥密码安全协处理器的测试方法及系统。
背景技术:
随着世界互联网环境的逐渐复杂,网络基础设施的日益完善,用户在数字世界中进行的活动越来越频繁。为了确保信息的机密性、完整性、可用性,避免国家或个人的信息受到非法获取、破坏与篡改等形式的威胁,人们提出了使用密码技术来保障以电子形式保存或传送的数据。
自从Koblitz和Miller在1985年各自独立的提出将椭圆曲线应用于密码学以来,椭圆曲线密码已经成为密码学界最热门的研究领域之一。随着硬件处理速度和解密手段的提高,常用的1024位的RSA算法面临着考验,其加密密钥已不能充分保证数据的安全性,为了提高数据的安全性,需要增加密钥的长度,但这样会导致算法速度降低。为满足电子认证服务系统等应用需求,国家密码管理局于2010年12月17日发布了SM2椭圆曲线公钥密码算法,并要求对现有基于RSA算法的电子认证系统、密钥管理系统、应用系统进行升级改造。
基于椭圆曲线公钥密码算法的安全协处理器可用于多种智能终端(例如智能电表),其对外提供数字签名、签名验证、数据加密和数据解密等功能,能够完整支持SM2等标准。该安全协处理器作为SPI协议中的slave端与外部实体进行通信。椭圆曲线公钥密码安全协处理器的功能与性能直接关系着基于其构建的整个系统的安全,但是却没有一个完整的测试系统和相应的测试方法用以评价其性能的优劣。
技术实现要素:
针对现有技术的不足,本发明提供一种椭圆曲线公钥密码安全协处理器的测试方法及系统,可对椭圆曲线公钥密码安全协处理器的功能与性能进行全面的自动化测试。
本发明的目的是采用下述技术方案实现的:
一种椭圆曲线公钥密码安全协处理器的测试系统,其改进之处在于,所述系统包括:上位机、嵌入式开发单元和待测处理器;
所述嵌入式开发单元通过SPI与所述待测处理器建立连接,其中,所述嵌入式开发单元作为SPI通信的master端,所述待测处理器作为SPI通信的slave端;所述嵌入式开发单元和待测处理器分别通过串口与所述上位机进行通讯;所述上位机通过NFS服务与所述嵌入式开发单元建立连接。
优选的,所述上位机通过NFS服务与所述嵌入式开发单元建立连接,用于将上位机生成的测试用例通过NFS服务发送至所述嵌入式开发单元。
优选的,所述上位机通过NFS服务与所述嵌入式开发单元建立连接,用于将在交叉编译环境内编写的自动化测试程序通过NFS服务装载至所述嵌入式开发单元。
优选的,所述嵌入式开发单元通过SPI与所述待测处理器建立连接,用于通过SPI调用所述嵌入式开发单元的自动化测试程序和测试用例,生成测试结果,并通过SPI将所述测试结果返回至所述嵌入式开发单元。
进一步的,所述测试用例至少包括:数字签名测试数据、签名验证测试数据、数据加密测试数据和数据解密测试数据。
优选的,所述上位机通过NFS服务与所述嵌入式开发单元建立连接,还用于将测试结果通过NFS服务发送至所述上位机。
优选的,所述嵌入式开发单元和待测处理器分别通过串口与所述上位机进行通讯,用于交互所述嵌入式开发单元和待测处理器与所述上位机之间的状态信息。
一种椭圆曲线公钥密码安全协处理器的测试方法,其改进之处在于,所述方法包括:
(1)利用椭圆曲线公钥密码软件生成测试用例并在交叉编译环境内编写自动化测试程序;
(2)将所述自动化测试程序装载至嵌入式开发单元;
(3)向待测处理器输入测试用例并运行所述自动化测试程序,生成测试结果;
(4)将测试结果通过所述嵌入式开发单元发送至上位机。
优选的,所述步骤(3)中,自动化测试程序包括:
循环执行100次调用椭圆曲线公钥密码算法对输入的测试用例的数字签名测试数据进行处理,输出签名信息及数字签名并记录运行时间;
循环执行100次调用椭圆曲线公钥密码算法对输入的测试用例的签名验证测试数据进行处理,输出验证信息并记录运行时间;
循环执行100次调用椭圆曲线公钥密码算法对输入的测试用例的数据加密测试数据进行处理,输出加密后的密文并记录运行时间;
循环执行100次调用椭圆曲线公钥密码算法对输入的测试用例的数据解密测试数据进行处理,输出解密后的明文并记录运行时间。
进一步的,所述数字签名测试数据包括:椭圆曲线系统参数、用户的身份标识、用户的私钥和待签名消息;所述签名验证测试数据包括:椭圆曲线系统参数、用户的身份标识、用户的公钥、待验证消息及待验证信息的数字签名;所述数据加密测试数据包括:椭圆曲线系统参数、解密用户的公钥和待加密明文;所述数据解密测试数据包括:椭圆曲线系统参数、解密用户的私钥和待解密密文。
与最接近的现有技术相比,本发明具有的有益效果:
本发明提供的一种椭圆曲线公钥密码安全协处理器的测试方法及系统,能够自动的生成测试所需要的测试用例,在测试程序运行过程中不需要人为干预就可自动完成数字签名、签名验证、数据加密、数据解密等功能的功能测试与性能测试,并将测试结果自动上传至上位机,较为全面准确的给出了待测安全协处理器的功能与性能指标,并且大大的提高了测试效率。
附图说明
图1是本发明提供的一种椭圆曲线公钥密码安全协处理器的测试系统结构图;
图2是本发明提供的一种椭圆曲线公钥密码安全协处理器的测试方法流程图;
图3是本发明实施例中测试系统结构图。
具体实施方式
下面结合附图对本发明的具体实施方式作进一步的详细说明。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明提供了一种椭圆曲线公钥密码安全协处理器的测试系统,如图1所示,所述系统包括:上位机、嵌入式开发单元和待测处理器;
所述嵌入式开发单元通过SPI与所述待测处理器建立连接,其中,所述嵌入式开发单元作为SPI通信的master端,所述待测处理器作为SPI通信的slave端;所述嵌入式开发单元和待测处理器分别通过串口与所述上位机进行通讯;所述上位机通过NFS服务与所述嵌入式开发单元建立连接。
其中,需在所述上位机上搭建交叉编译环境、NFS服务以及串口调试工具并安装支持椭圆曲线公钥密码算法的软件,所述上位机可以为PC、服务器或虚拟机等。
具体的,所述上位机通过NFS服务与所述嵌入式开发单元建立连接,用于将上位机生成的测试用例通过NFS服务发送至所述嵌入式开发单元。
其中,所诉测试用例通过所述上位机安装的支持椭圆曲线公钥密码算法的软件生成,所述测试用例至少包括:数字签名测试数据、签名验证测试数据、数据加密测试数据和数据解密测试数据。
所述上位机通过NFS服务与所述嵌入式开发单元建立连接,用于将在交叉编译环境内编写的自动化测试程序通过NFS服务装载至所述嵌入式开发单元。
所述嵌入式开发单元通过SPI与所述待测处理器建立连接,用于通过SPI调用所述嵌入式开发单元的自动化测试程序和测试用例,生成测试结果,并通过SPI将所述测试结果返回至所述嵌入式开发单元。
所述上位机通过NFS服务与所述嵌入式开发单元建立连接,还用于将测试结果通过NFS服务发送至所述上位机。
所述嵌入式开发单元和待测处理器分别通过串口与所述上位机进行通讯,用于交互所述嵌入式开发单元和待测处理器与所述上位机之间的状态信息。
一种椭圆曲线公钥密码安全协处理器的测试方法,如图2所示,所述方法包括:
(1)利用椭圆曲线公钥密码软件生成测试用例并在交叉编译环境内编写自动化测试程序;
(2)将所述自动化测试程序装载至嵌入式开发单元;
(3)向待测处理器输入测试用例并运行所述自动化测试程序,生成测试结果;
(4)将测试结果通过所述嵌入式开发单元发送至上位机。
具体的,所述步骤(3)中,自动化测试程序包括:
循环执行100次调用椭圆曲线公钥密码算法对输入的测试用例的数字签名测试数据进行处理,输出签名信息及数字签名并记录运行时间;
循环执行100次调用椭圆曲线公钥密码算法对输入的测试用例的签名验证测试数据进行处理,输出验证信息并记录运行时间;
循环执行100次调用椭圆曲线公钥密码算法对输入的测试用例的数据加密测试数据进行处理,输出加密后的密文并记录运行时间;
循环执行100次调用椭圆曲线公钥密码算法对输入的测试用例的数据解密测试数据进行处理,输出解密后的明文并记录运行时间。
其中,所述数字签名测试数据包括:椭圆曲线系统参数、用户的身份标识、用户的私钥和待签名消息;所述签名验证测试数据包括:椭圆曲线系统参数、用户的身份标识、用户的公钥、待验证消息及待验证信息的数字签名;所述数据加密测试数据包括:椭圆曲线系统参数、解密用户的公钥和待加密明文;所述数据解密测试数据包括:椭圆曲线系统参数、解密用户的私钥和待解密密文。
实施例:
如图3所示,采用PC机作为上位机系统,上位机运行的操怍系统版本为Ubuntu 12.04,并在其上搭建了交叉编译环境、NFS服务以及串口调试工具,通过交叉编译环境在PC机上编写测试程序并安装支持椭圆曲线公钥密码算法的软件,通过支持椭圆曲线公钥密码算法的软件生成测试用例。使用基于ARM9的嵌入式开发板JZ2440作为SPI通信的master端,并在其上运行嵌入式Linux操作系统与测试程序。待测处理器作为SPI通信的slave端。其中,待测处理器采用256bit密钥长度的SM2椭圆曲线公钥密码安全协处理器。
分别连接基于ARM9的嵌入式Linux开发板与待测安全协处理器之间的SPI数据线、开发板与上位机之间的以太网连接线。此外,还需分别使用串口连接线将上位机与开发板、上位机与待测安全协处理器连接起来;具体的,使用SPI数据线将待测256bit密钥长度的SM2椭圆曲线公钥密码安全协处理器与基于ARM9的嵌入式Linux开发板相连,使用以太网连接线连接开发板与上位机,开发板与上位机的静态IP地址需设置在同一子网内;使用串口连接线将上位机与开发板、上位机与待测安全协处理器连接起来,上位机识别到的串口编号分别为COM1与COM2;
开启上位机,使用SM2椭圆曲线公钥密码软件生成全部的测试用例,测试用例中包括数字签名、签名验证、数据加密、数据解密等用例各1个,具体配置为:生成的椭圆曲线系统参数长度均为256bit;生成的用户私钥长度为256bit;生成的用户公钥由横坐标与纵坐标组成,其长度均为256bit;用户身份ID长度不超过64字节;签名消息或明文的长度不超过64字节;
在上位机上交叉编译预先编写好的测试程序,测试程序中应包含上述全部测试用例;
开启嵌入式开发板,待嵌入式开发板启动完成后通过NFS服务将上述测试程序装载至开发板中;
开启待测安全协处理器模块,等待应用程序从闪存中加载至内存中;
运行测试程序,测试结果文件将自动保存至开发板中;
其中,运行测试程序具体包括:
测试安全协处理器的数字签名功能,如表1所示,通过SPI协议输入椭圆曲线系统参数、用户的身份标识、用户的私钥、待签名消息,输出应为签名消息及其数字签名。该项测试需循环运行100次并自动记录其运行时间;
表1输入的数字签名测试数据及输出的测试结果
测试安全协处理器的签名验证功能,如表2所示,通过SPI协议输入椭圆曲线系统参数、用户的身份标识、用户的公钥、待验证消息及其数字签名,输出应为签名验证是否通过。该项测试需循环运行100次并自动记录其运行时间;
表2输入的签名验证测试数据及输出的测试结果
测试安全协处理器的数据加密功能,如表3所示,通过SPI协议输入椭圆曲线系统参数、用户的公钥、待加密明文,输出加密后的密文。该项测试需循环运行100次并自动记录其运行时间;
表3输入的数据加密测试数据及输出的测试结果
测试安全协处理器的数据解密功能,如表4所示,通过SPI协议输入椭圆曲线系统参数、用户的私钥、待解密密文,输出解密后的明文。该项测试需循环运行100次并自动记录其运行时间;
表4输入的数据解密测试数据及输出的测试结果
测试程序运行结束,上传测试结果至上位机。
本发明利用上位机、嵌入式开发板及相关配套软件对椭圆曲线公钥密码安全协处理器进行测试,并提出了详细的测试方案,解决了椭圆曲线公钥密码安全协处理器的功能与性能测试问题。使用本发明所述的测试系统及其测试方法,能够自动的生成测试所需要的测试用例,在测试程序运行过程中不需要人为干预就可自动完成数字签名、签名验证、数据加密、数据解密等功能的功能测试与性能测试,并将测试结果自动上传至上位机。所述测试系统及其测试方法较为全面准确的给出了待测安全协处理器的功能与性能指标,并且大大的提高了测试效率。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。