一种基于模板解析可信密码指令的方法、设备及介质技术

技术编号:34542768 阅读:15 留言:0更新日期:2022-08-13 21:39
本发明专利技术公开了一种基于模板解析可信密码指令的方法、设备及介质,其中方法包括以下步骤:S1.接收基于模板数组描述的指令字节流数据,并获取对应指令的模板数组及个数;S2.通过模板解析指令字节流数据,并判断模板是否解析完,如果模板解析完,则结束操作;反之继续步骤S3;S3.判断模板对应的指令字节流数据是变长数组还是定长数组,并获取数组长度;S4.判断模板对应的指令字节流数据是否解析完成,如果解析完成,继续步骤S2,反之继续步骤S5;S5.解析字节流中的相关信息,所述相关信息至少包括参数域数据长度和认证域数据长度。本发明专利技术可解决传统方式的开发效率不高、灵活性不足、扩展性不够的问题。不够的问题。不够的问题。

【技术实现步骤摘要】
一种基于模板解析可信密码指令的方法、设备及介质


[0001]本专利技术涉及信息安全
,尤其涉及一种基于模板解析可信密码指令的方法、设备及介质。

技术介绍

[0002]随着信息技术的迅速发展,信息的真实性、隐私性、安全性越来越受到公众重视。可信计算技术是解决上述问题的有效手段,可信密码模块作为可信计算技术商业应用的产品已在国内外大量应用。
[0003]目前,国内已有多个厂家开展了可信密码模块产品的研制。《GM/T 0012

2020 可信计算可信密码模块接口规范(报批稿)》定义了可信密码模块通用接口指令的具体格式,包括:启动命令、检测命令、会话命令、对象命令、非对称算法命令、对称算法命令等。可信密码模块在执行命令时,需要对可信密码模块的指令进行解析,以便将可信密码命令的字节流转换为系统可识别的指令,该解析过程是可信密码模块研制的关键环节之一。
[0004]传统实现方法如图1所示,系统接收到命令字节流后判断指令类型同时调用对应的命令字节流解析执行代码对字节流进行解析。
[0005]该种方法有以下几个不足之处:1)效率不高由于每条指令格式不同,针对每条指令都需要进行编码。
[0006]2)灵活性不足当指令格式发生改变时,系统不能有效更改。
[0007]3)扩展性不够当指令新增时,需要新增指令编码的内容,需要对可信密码模块的系统进行重新部署。

技术实现思路

[0008]为了解决上述问题,本专利技术提出一种基于模板解析可信密码指令的方法、设备及介质,通过创建各个可信指令的模板数据,可根据模板解析对应的指令字节流,可解决传统方式的开发效率不高、灵活性不足、扩展性不够的问题。
[0009]本专利技术采用的技术方案如下:一种基于模板解析可信密码指令的方法,包括以下步骤:S1. 接收基于模板数组描述的指令字节流数据,并获取对应指令的模板数组及个数;S2. 判断所有模板是否解析完指令字节流数据,如果是,则结束操作;反之继续步骤S3;S3. 判断下一个模板对应的指令字节流数据是变长数组还是定长数组,并获取数组长度;
S4. 解析字节流中的相关信息,所述相关信息至少包括参数域数据长度和认证域数据长度;S5. 判断当前模板对应的指令字节流数据是否解析完成,如果解析完成,跳转至步骤S2,反之继续步骤S4。
[0010]进一步地,所述指令字节流的其中某段数据为一个模板,一个指令字节流由一个模板数组描述。
[0011]进一步地,所述模板为CmdTemplate的结构体,所述结构体至少包括以下字段:flag、typename、size、offset、marshal和unmarshal,其中flag字段表示某段指令字节流的标记,typename字段表示某段指令字节流的类型名称,size字段表示某段指令字节流解析后对应结构体的大小,offset字段表示某段指令字节流解析后的数据在结构体中的偏移位置,marshal字段表示将结构体数据封装为某段指令字节流的函数地址,unmarshal字段表示将某段指令字节流解析为结构体数据的函数地址。
[0012]进一步地,所述flag字段包括以下字段:Array、Region和Reserved,其中Array字段表示某段指令字节流的数据类型,Region字段表示某段指令字节流数据属性,Reserved字段是保留字段。
[0013]进一步地,所述Region字段表示的指令字节流数据属性包括:认证域数据、认证域数据长度、参数域数据、参数域数据长度、句柄域和认证句柄。
[0014]进一步地,所述结构体还包括ArrayLenOrOffset字段,如果某段指令字节流数据是定长数组,则ArrayLenOrOffset字段表示指令字节流中该段数据的个数;如果某段指令字节流数据是变长数组,则ArrayLenOrOffset字段表示该段数据的个数在指令字节流中的偏移位置。
[0015]一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现所述的基于模板解析可信密码指令的方法的步骤。
[0016]一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现所述的基于模板解析可信密码指令的方法的步骤。
[0017]本专利技术的有益效果在于:1)本专利技术开发效率高:使用者只需开发通用指令字节流执行代码,各个字节流模板数据可简单的通过手动定义即可。
[0018]2)本专利技术具有较高的灵活性:当指令格式发生改变时,只需更改对应的模板数据即可,无需对执行代码进行修正。
[0019]3)本专利技术具有良好的扩展性:当指令新增时,只需创建新指令的模板数据即可,无需对整个系统进行重新部署4)本专利技术具有普适性:本专利技术已覆盖了国内主要的可信密码模块指令标准。
附图说明
[0020]图1是传统可信密码模块指令字节流解析方式。
[0021]图2是本专利技术实施例的基于模板解析可信密码指令的方法示意图。
[0022]图3是本专利技术实施例的基于模板解析可信密码指令的方法流程图。
[0023]图4是本专利技术实施例的基于模板解析可信密码指令的装置硬件组成框图。
[0024]图5是本专利技术实施例的基于模板解析可信密码指令的软件程序组成框图。
具体实施方式
[0025]为了对本专利技术的技术特征、目的和效果有更加清楚的理解,现说明本专利技术的具体实施方式。应当理解,此处所描述的具体实施例仅用以解释本专利技术,并不用于限定本专利技术,即所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0026]实施例1本实施例提供了一种基于模板解析可信密码指令的方法,通过创建各个可信指令的模板数据,便可根据模板解析对应的指令字节流。本实施例的模板定义和解析后的数据格式均采用C语言格式描述,使用者可参照该方法并根据实际情况采用其他开发语言或其他形式定义相应的模板和解析后的数据格式。
[0027]本实施例将指令字节流的其中某段数据定义为一个模板,一个指令字节流由一个模板数组描述。该模板采用C语言的结构体描述,定义为CmdTemplate的结构体,包括以下字段:flag、typename、size、offset、marshal、unmarshal、ArrayLenOrOffset,如下所示:typedef struct {BYTE
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
flag; //元素的类型数组,定长数组(变长数组)const char*
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
typename; //类型名称UINT32
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
size; //解析结构体的大小UINT32
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
offset; //结构体中元素的偏移地址Marshal本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于模板解析可信密码指令的方法,其特征在于,包括以下步骤:S1. 接收基于模板数组描述的指令字节流数据,并获取对应指令的模板数组及个数;S2. 判断所有模板是否解析完指令字节流数据,如果是,则结束操作;反之继续步骤S3;S3. 判断下一个模板对应的指令字节流数据是变长数组还是定长数组,并获取数组长度;S4. 解析字节流中的相关信息,所述相关信息至少包括参数域数据长度和认证域数据长度;S5. 判断当前模板对应的指令字节流数据是否解析完成,如果解析完成,跳转至步骤S2,反之继续步骤S4。2.根据权利要求1所述的基于模板解析可信密码指令的方法,其特征在于,所述指令字节流的其中某段数据为一个模板,一个指令字节流由一个模板数组描述。3.根据权利要求2所述的基于模板解析可信密码指令的方法,其特征在于,所述模板为CmdTemplate的结构体,所述结构体至少包括以下字段:flag、typename、size、offset、marshal和unmarshal,其中flag字段表示某段指令字节流的标记,typename字段表示某段指令字节流的类型名称,size字段表示某段指令字节流解析后对应结构体的大小,offset字段表示某段指令字节流解析后的数据在结构体中的偏移位置,marshal字段表示将结构体数据封装为某段指令字节流的函数地址,unmarshal字段表示将某段指令字节流解析为结构体数据的函数...

【专利技术属性】
技术研发人员:黎珂刘尚麟唐莉林放冷昌琦张文科罗影许莹莹
申请(专利权)人:工业信息安全四川创新中心有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1