首页 / 一种国密算法芯片的验证系统和方法

一种国密算法芯片的验证系统和方法有效专利 发明

技术领域

[0001] 本发明涉及信息安全、密码算法验证的技术领域,特别涉及一种国密算法芯片的验证系统和方法。

相关背景技术

[0002] 国密算法是国家商用密码算法的简称,国密算法是国家密码局制定标准的一系列算法,其中包括对称加密算法,椭圆非对称加密算法,杂凑算法等,其中SM2为基于椭圆曲线密码的公钥密码算法标准,包括数字签名、密码交换和公钥加密,SM3为密码哈希算法,SM4为分组密码,SM9为基于身份的密码算法。商用密码技术是指能够实现商用密码算法的加密、解密和认证等功能的技术,商用密码技术的应用领域十分广泛,主要用于对不涉及国家秘密内容但又具有敏感性信息进行加密保护,例如用于各种安全认证、数字签名、企业内部信息传输加密存储等方面。
[0003] 随着国密算法的广泛应用,大量的第三方密码工具应运而生,其中GmSSL是一个开源的国密密码工具箱,支持SM2、SM3、SM4、SM9、ZUC等国密算法、SM2国密数字证书及基于SM2证书的SSL/TLS安全通信协议,支持国密硬件密码设备,提供符合国密规范的编程接口与命令行工具。
[0004] 在国密算法芯片研发过程中,需要根据不同的国密算法开发不同的算法验证模型,由于国密算法的复杂性,需要花费大量精力进行算法模型开发。另外在动态仿真验证的过程中,需要在验证平台中实例化对应国密算法的验证模型,验证平台在不同的国密算法芯片验证中不能够复用,造成了验证平台开发工作量的增加。

具体实施方式

[0016] 为使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体实施方式,进一步阐述本发明。
[0017] 在本发明的描述中,需要说明的是,术语“上”、“下”、“内”、“外”“前端”、“后端”、“两端”、“一端”、“另一端”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。
[0018] 在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“设置有”、“连接”等,应做广义理解,例如“连接”,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
[0019] 实施例1:参照图1所示,本发明提供的一种国密算法芯片的验证系统,包括:GmSSL工具箱预
处理模块、国密芯片验证平台模块和算法结果处理模块;
其中, GmSSL工具箱预处理模块,用于根据需验证的国密算法芯片中的算法名称,
调用出供所述国密芯片验证平台模块所使用的对应国密算法模型,生成激励数据文件,将所述激励数据文件输入到国密算法模型中进行运算,收集该模型运算输出到真值数据文件中;即:生成激励文件和真值文件;
国密芯片验证平台模块,用于将对应国密算法模型和所述国密算法芯片连接到验
证平台上,调用仿真工具对国密算法验证平台、国密算法模型和激励数据文件进行编译、仿真,输出仿真数据文件;
算法结果处理模块,用于对所述国密芯片验证平台输出的仿真数据文件和真值数
据文件进行分析处理,输出国密算法芯片工作效率和算法正确性的结论数据。
[0020] 本实施例中,GmSSL工具箱预处理模块中对GmSSL工具箱中的算法工具根据国密算法进行分类,对于不同的国密算法有对应的处理程序进行接口连接、数据生成、算法执行等操作。国密芯片验证平台模块中,预处理后的国密算法工具和国密算法芯片连接到验证平台上,国密算法芯片验证系统调用仿真工具,在仿真工具执行命令行中加入GmSSL工具箱预处理模块生成的编译选项和仿真选项,对验证平台进行编译和仿真,生成仿真数据到文件中。仿真结束后,该验证系统的算法结果处理模块,自动调用算法结果处理平台对国密芯片验证平台输出的仿真数据进行分析处理,输出国密算法芯片工作效率、算法正确性等结论。
[0021] 本发明实施例提供的国密算法芯片的验证系统,其工作过程如图2所示,执行国密算法芯片验证系统程序,输入国密算法芯片中的国密算法名称,GmSSL工具箱预处理模块根据输入的国密算法名称对GmSSL算法工具进行预处理,根据该国密算法工具的执行方式等特点,如为可执行程序或API接口程序,生成国密算法验证平台中需要的原始数据、真值数据、编译选项、仿真选项和GmSSL接口的GmSSL算法模型等,将预处理后输出的GmSSL算法模型挂接到验证平台的GmSSL接口上;第二步调用仿真工具编译验证平台和预处理输出的数据等,生成仿真用的可执行文件,对国密算法芯片进行仿真,通过仿真分别获得GmSSL算法模型的运算输出和国密算法芯片的运算输出,并且同时输出国密算法芯片加解密过程中的仿真时刻等信息,将这些输出信息分别输出到运算输出数据文件、仿真相关输出文件中;最后算法结果处理模块对仿真输出的文件进行处理,如运算输出数据比对,也可以选择在验证平台中进行动态比对,仿真数据分析得到芯片算法运算开销等结论,最终输出仿真正确性、国密算法芯片运算效率等结果输出。
[0022] 本发明中的国密芯片验证平台模块,将GmSSL工具箱的国密模型工具通过验证平台的GmSSL接口连接到验证平台上,该模型工具作为真值发生器与待验证的国密算法芯片对相同的数据进行国密算法运算操作,并经运算后输出的数据通过GmSSL接口送到验证平台中或写出到真值文件中,验证平台中的检验器对来自GmSSL接口的真值和国密算法芯片的输出值进行实时比对。如图3所示是国密算法芯片验证平台示意图,其中激励生成器生成国密算法芯片配置字和原始数据等激励,其中原始数据可以由国密芯片验证平台模块动态产生,也可以由GmSSL工具箱预处理模块生成,根据GmSSL工具箱中的国密算法模型工具的使用方式选择:如果GmSSL工具箱中的国密算法工具为可执行文件形式,则选择GmSSL工具箱预处
理模块对原始数据进行生成和预处理,调用GmSSL可执行算法工具,对原始数据进行运算生成对应国密算法运算后的输出数据,该输出数据作为算法真值存储到真值文件中;
如果GmSSL工具箱中的国密算法工具为API接口程序,则可以选择由验证平台内部
的激励生成器动态生成原始数据。国密代理工具对激励生成器发送过来的激励进行处理,如去除读写国密算法芯片寄存器数据包、发送待运算原始数据和配置GmSSL工具箱等操作。
[0023] GmSSL接口转换器将待运算原始数据和配置数据等与GmSSL工具箱相关的数据,按照GmSSL接口数据格式进行转换,并且以GmSSL接口时序发送待运算原始数据到GmSSL工具箱,同时监测GmSSL工具箱运算后的数据返回,并将该数据做为真值送到检验器中。国密芯片代理模块对激励生成器发送过来的激励进行处理,并将激励发送到国密芯片驱动器模块;国密芯片驱动器解析激励信息,通过国密算法芯片接口将数据发送到国密算法芯片中;国密芯片监测器监测国密算法芯片接口输入输出和算法运算时刻等信息,将该信息写到运算输出数据文件和仿真相关输出文件中,并将获得的芯片输出数据送到检验器中与GmSSL接口转换器获得的数据真值进行比对。
[0024] 本发明提出的国密算法芯片的验证系统,可根据用户输入的算法名称自动调用验证平台要使用的国密算法模型,并且在国密算法芯片仿真验证开始前完成原始数据、仿真工具编译选项、仿真选项等命令和文件的生成,完成国密算法模型与验证平台的连接,然后自动调用仿真工具进行编译和仿真,在仿真结束后自动分析仿真结果并得出芯片验证结论。
[0025] 本发明提出的国密算法芯片的验证系统,在国密芯片验证平台模块中设计了GmSSL工具接口转换器,该转换器对外提供GmSSL接口,通过该接口与验证平台外部的GmSSL工具箱中的算法模型进行连接,在仿真不同算法的国密算法芯片时,无需因为国密算法不同而修改验证平台,减少了国密算法验证模型和验证平台的开发过程;本发明验证平台中的国密芯片监测器会对国密算法芯片的算法运算时间、算法运算状态、芯片输入输出数据等信息进行监测并记录输出到文件中,为本发明中的验证系统提供仿真输出数据。另外,该验证系统大大减少了国密算法芯片研发过程中芯片验证开发时间,提高了国密算法芯片的验证效率。
[0026] 实施例2:如图4所示,本发明实施例还提供一种国密算法芯片的验证方法,应用实施例1的
国密算法芯片的验证系统,该方法包括以下步骤:
S1、根据需验证的国密算法芯片中的算法名称,采用GmSSL工具箱预处理模块调用
出供国密芯片验证平台模块所使用的对应国密算法模型;生成激励数据文件,将所述激励数据文件输入到国密算法模型中进行运算,收集该模型运算输出到真值数据文件中;
S2、通过国密芯片验证平台模块,将所述对应国密算法模型和所述国密算法芯片
连接到验证平台上,调用仿真工具对国密算法验证平台、国密算法模型和激励数据文件进行编译、仿真,输出仿真数据文件;
S3、对所述国密芯片验证平台输出的仿真数据文件和真值数据文件进行分析处
理,输出国密算法芯片工作效率和算法正确性的结论数据。
[0027] 其中,步骤S1,包括:S11、对GmSSL工具箱中的算法工具根据国密算法进行分类和预处理;
S12、根据需验证的国密算法芯片中的算法名称及分类结果,调用出对应国密算法
模型;
S13、根据不同的国密算法所对应的处理程序,进行接口连接、数据生成和算法执
行操作。具体地,可根据国密算法工具的执行方式,生成所述国密芯片验证平台模块所需要的激励数据文件、真值数据文件、编译选项、仿真选项和GmSSL接口的GmSSL算法模型。
[0028] 步骤S2,包括:S21、在国密芯片验证平台模块上设置对外提供GmSSL接口,通过该GmSSL接口与对
应国密算法模型进行连接;
S22、调用仿真工具,在所述仿真工具执行命令行中加入GmSSL工具箱预处理模块
生成的编译选项和仿真选项,对验证平台进行编译和对国密算法芯片仿真,生成仿真数据到文件中;
S23、在对仿真过程中,对国密算法芯片的算法运算时间、算法运算状态、芯片输入输出数据的信息进行监测并记录输出到文件中。
[0029] 下面通过两个具体的例子来说明本发明的国密算法芯片的验证方法:1、对SM2国密算法芯片进行验证:
对SM2国密算法芯片进行验证,运行国密算法芯片的验证系统,通过命令行将国密
算法名称SM2和具体算法名称如签名算法传递到验证系统中,验证方法具体执行过程如下:
首先GmSSL工具箱预处理模块选择GmSSL工具箱中的SM2签名算法工具,该算法模
型是API接口模型,调用系统中的SM2签名算法模型接口文件,将SM2签名算法模型通过GmSSL接口连接到验证平台上,选择使用验证平台产生原始数据,使用验证平台中的检验器进行算法模型输出的真值和芯片输出数据动态比对。
[0030] 第二步编译已配置完成的验证平台,并且进行仿真,验证平台中的检验器对国密算法芯片输出结果与GmSSL接口收集到的真值动态比对并输出比对结果,国密芯片监测器收集国密算法芯片运算处理仿真时刻等信息,输出收集到的信息到仿真相关文件中。
[0031] 第三步仿真结束后,算法结果处理模块对仿真输出的数据和文件进行处理,得到国密算法芯片运算正确性和算法运算效率等结论,完成一次SM2国密算法芯片中签名算法的验证过程。
[0032] 2、对SM2国密算法芯片进行验证:对SM2国密算法芯片进行验证,运行国密算法芯片验证系统,通过命令行将国密算
法名称SM2和具体算法名称如验签传递到验证系统中,验证方法执行过程如下:
首先GmSSL工具箱预处理模块选择GmSSL工具箱中的SM2算法工具,该算法模型为
可执行文件,GmSSL工具箱预处理模块生成激励数据文件,调用SM2可执行文件对激励数据文件中的数据进行验签算法运算,将算法模型运算输出结果写到真值文件中;对国密芯片验证平台进行配置,选择使用生成的激励数据文件做为激励,选择使能运算数据文件比对方式。
[0033] 第二步编译已经配置完成的验证平台和激励数据文件,并且进行仿真,国密芯片监测器收集国密算法芯片运算输出结果和运算处理仿真时刻等信息,输出收集到的信息到运算输出数据文件和仿真相关文件中。
[0034] 第三步仿真结束后,算法结果处理模块对真值文件和芯片运算输出数据文件进行比对,判断国密算法芯片运算的正确性,同时处理仿真相关输出文件中的信息,输出运算效率等结论,完成一次SM2国密算法芯片验签算法的验证过程。
[0035] 显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页 第1页 第2页 第3页
相关技术
算法芯片相关技术
系统方法相关技术
李文军发明人的其他相关专利技术