[发明专利]国密SM4分组密码算法的检测方法有效

专利信息
申请号: 201811363642.2 申请日: 2018-11-16
公开(公告)号: CN109558706B 公开(公告)日: 2021-09-07
发明(设计)人: 谢琪;黄凌锋;谭肖;牟航;吴彩霞;李克恒;舒琴 申请(专利权)人: 杭州师范大学
主分类号: G06F21/12 分类号: G06F21/12;G06F8/41
代理公司: 杭州天正专利事务所有限公司 33201 代理人: 王兵;黄美娟
地址: 311121 浙江省杭州*** 国省代码: 浙江;33
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明涉及一种国密SM4分组密码算法的检测方法,本发明将词法、语法和语义分析的方法应用于国密SM4算法检测,把输入的测试源代码搜索国密SM4算法的特征值来进行匹配,由于国密SM4算法的特征值都是固定参数,因此算法结构具有一定的规律性。然后设计一个程序语言的词句分析方法,先运用词法分析方法逐字符扫描源代码文件,识别程序关键字和国密SM4算法的特征参数;再运用语法分析方法,对处理过的源代码文件组合成语法短语,并生成抽象语法树和记录SM4特征参数的数组名;然后利用语义分析进行类型审查,根据语法树和SM4特征数组名构造SM4链表;最终根据SM4链表完成国密SM4算法的检测。
搜索关键词: 国密 sm4 分组 密码 算法 检测 方法
【主权项】:
1.国密SM4分组密码算法的检测方法,包括如下步骤:(1)打开测试代码工程文件,从左到右逐字符扫描,执行词法分析,对程序定义的字符流匹配,然后根据构词规则识别单词,并将其标识。在扫描过程中,词法分析程序对代码注释清理,对程序的关键词进行匹配等操作的同时,若扫描的单词匹配置换盒Sbox的参数、系统参数FK和固定参数CK,则标记文件名及其行数;具体包括:11)通过open打开SM4国密算法的代码文件和测试的工程文件;12)在使用SM4国密算法的代码中提取置换盒Sbox、系统参数FK、固定参数CK的特征参数;Sbox特征参数为: 0123456789abcdef0d690e9fecce13db716b614c228fb2c0512b679a762abe04c3aa4413264986069929c4250f491ef987a33540b43edcfac623e4b31ca9c908e89580df94fa758f3fa644707a7fcf37317ba83593c19e6854fa85686b81b27164da8bf8eb0f4b70569d3561e240e5e6358d1a225227c3b012178877d40046579fd327524c3602e7a0c4c89e8eabf8ad240c738b5a3f7f2cef96115a19e0ae5da49b341a55ad933230f58cb1e3a1df6e22e8266ca60c02923ab0d534e6fbd5db3745defd8e2f03ff6a726d6c5b51c8d1baf92bbddbc7f11d95c411f105ad8d0ac13188a5cd7bbd2d74d012b8e5b4b0e8969974a0c96777e65b9f109c56ec684f18f07dec3adc4d2079ee5f3ed7cb3948
FK特征参数为:FK0=a3b1bac6,FK1=56aa3350,FK2=677d9197,FK3=b27022dc;CK特征参数为:00070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7eef5fc030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1f8ff060d141b222930373e454c535a61686f767d848b9299a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b7279
13)利用词法分析器LEX,对测试的工程文件进行分析,注释清理;14)LEX进行程序关键词、置换盒Sbox、系统参数FK、固定参数CK的特征参数匹配,进行粗略检测;15)如果粗略检测成功,则标记当前测试的文件名和记录行数;(2)在步骤(1)词法分析的结果上执行语法分析,把单词序列组合成一个个的语法短语,语法短语若是“数组”,且有步骤(1)的标记,则继续判断该数组是否置换盒Sbox、系统参数FK、固定参数CK的特征参数,如果是,则记录下数组名,否则继续下一个语法短语的组合。其结果形成具有国密SM4分组算法特征参数的抽象语法树;具体包括:21)利用语法分析器YACC分析是否“语句”、“表达式”、“数组”、“程序”等等;22)判断是具有置换盒Sbox、系统参数FK、固定参数CK的特征参数的“数组”短语,如果是,继续执行3);否则回到1);23)执行到测试文件末尾,形成具有国密SM4分组算法特征参数的抽象语法树;(3)在步骤(2)所得的抽象语法树进行语义分析,对结构上的源程序进行上下文有关性质的审查,包括进行置换盒Sbox、系统参数FK和固定参数CK的特征参数的类型审查;若特征的类型审查不合规,则删除该特征的节点及节点下面所有层的节点;(4)利用自下而上的LR分析法遍历查询根据步骤(2)、步骤(3)生成的语法树,找到具有置换盒Sbox、系统参数FK和固定参数CK的特征参数的数组名节点,然后向上层层查询和记录直到语法树的根节点,分别构造Sbox链表、FK链表和CK链表;具体是:41)新建Sbox空链表;42)利用自下而上的LR分析法遍历查询根据步骤(2)(3)生成的语法树;43)根据步骤(2)记录的Sbox数组名,匹配具有置换盒Sbox特征参数的数组名节点,并记录在Sbox链表的头节点上;44)查询语法树中置换盒Sbox数组名节点的上一层节点,并记录在Sbox链表的下一节点;45)继续查询语法树上一层节点并记录到Sbox链表,循环执行该步骤,直至查询到语法树的根节点,Sbox链表构造完成;46)与构造Sbox链表的1‑5)相同,根据步骤(2)记录的FK数组名和CK数组名,分别构造以上两个数组名为头节点的,系统参数FK特征的FK链表和固定参数CK特征的CK链表;(5)构造SM4链表,将步骤(4)生成的Sbox链表、FK链表、CK链表进行查询对比,匹配一个节点则记录到SM4链表,循环执行此过程直到Sbox链表、FK链表和CK链表的末结点;具体是:51)新建一个S1和SM4空链表;52)以FK链表为参考链表,从CK链表头节点开始,依次比较FK链表的节点名,并把节点名匹配的节点依次记录到S1链表,直到FK链表末尾;53)以S1链表为参考链表,从Sbox链表的头节点开始,依次比较S1链表的节点名,并把节点名匹配的节点依次记录到SM4链表,直到S1链表末尾;(6)在步骤(5)形成的SM4链表上,提取所有节点的函数名,并在测试代码文件上进行搜索,记录其文件名和行数,循环执行此过程直到末节点,即可完成国密SM4算法检测。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州师范大学,未经杭州师范大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201811363642.2/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top