一种分组密码算法分析方法及系统的制作方法

文档序号:7742711阅读:112来源:国知局
专利名称:一种分组密码算法分析方法及系统的制作方法
技术领域
本申请涉及密码分析领域,特别是涉及一种分组密码算法分析方法及系统。
背景技术
分组密码是现代密码学的一个重要组成部分。它具有速度快、易于标准化和便于软硬件实现等优点,通常是信息与网络安全中实现数据加密、数字签名、认证及密钥管理的核心体制,广泛应用于计算机通信和信息系统安全领域。因此,对分组密码的安全性分析具有重要意义。
分组密码算法实际上就是密钥控制下,通过某个置换来实现对明文分组的加密变换,分组密码的分析技术与这些分组密码算法的设计结构密切相关。
通过对现有技术研究,申请人发现目前很多分组密码算法分析方法都是针对一个具体的分组密码算法来进行的,而随着分组密码研究的不断深入,涌现出了大量新的算法, 算法的结构也越来越复杂,因此目前的分组密码算法分析方法无法对多种分组密码的进行统一的安全性分析。

发明内容
为解决上述技术问题,本申请实施例提供一种分组密码算法分析方法及系统,以实现对目前大部分分组密码算法的安全性进行统一分析,技术方案如下 一种分组密码算法分析方法,包括 定义面向用户的、能够描述分组密码算法的高级描述语言; 用户根据所述高级描述语言,将分组密码算法描述成多个分组密码算法基本组件的组合; 将所述分组密码算法基本组件解析成可被计算机识别的C语言代码; 将所述C语言代码编译、链接,生成可执行的分组密码算法待测组件; 根据用户的操作请求配置测试计划,根据所述测试计划选择所需的分组密码算法待测组件; 根据所述测试计划,对所述选择的分组密码算法待测组件进行测试分析,得到分析结果。
优选地,所述定义具体实现为 定义高级描述语言的基本语法,包括特殊符号、标识符、标记、常量、变量声明、关系表达式、基本语句以及低级函数; 根据所述高级描述语言语法,定义分组密码算法基本组件的描述语法。
优选地,所述分组密码算法基本组件包括置换组件、S盒组件、矩阵乘组件、一般函数组件、密钥参与的函数组件、以函数形式出现的S盒、轮函数组件、密钥扩展组件、 Feistel结构组件和完整加密组件。
优选地,所述解析具体实现为 对所述分组密码算法基本组件进行词法分析; 对所述词法分析后的分组密码算法基本组件进行语法分析; 对所述语法分析后的分组密码算法基本组件进行语义分析; 将所述语义分析后的分组密码算法转换成可被计算机识别的C语言代码。
优选地,所述测试计划包括关键组件测试、缩减轮函数测试和完整算法测试。
优选地,所述测试分析具体实现为 对所述所需分组密码算法待测组件进行输入输出测试; 调用预先针对不同分组密码算法待测组件编写的分析程序; 利用所述分析程序对所述输入输出测试的输入数据及相对应的输出数据进行分析。
优选地,该方法进一步包括输出分析结果。
优选地,所述输出分析结果具体实现为将分析结果输出到可视装置和/或存储到预设位置或用户指定位置。
一种分组密码安全性分析系统,包括 定义单元,用于定义面向用户的、能够描述分组密码算法的高级描述语言; 描述单元,用户根据所述高级描述语言,将分组密码算法描述成多个分组密码算法基本组件的组合; 解析单元,用于将所述分组密码算法基本组件解析成可被计算机识别的C语言代码; 编译和链接单元,用于将所述C语言代码编译、链接,生成可执行的分组密码算法待测组件; 配置单元,用于根据用户的操作请求配置测试计划,根据所述测试计划选择所需的分组密码算法待测组件; 测试分析单元,用于对所选择的分组密码算法待测组件进行测试分析,得到分析结果。
优选地,所述定义单元包括 基本语法定义单元,用于定义高级描述语言的语法,包括特殊符号、标识符、标记、常量、变量声明、关系表达式、基本语句以及低级函数; 描述语法定义单元,用于根据所述高级描述语言基本语法,定义分组密码算法基本组件的描述语法。
优选地,所述解析单元包括 词法分析单元,用于对所述分组密码算法基本组件进行词法分析; 语法分析单元,用于对所述词法分析后的分组密码算法基本组件进行语法分析; 语义分析单元,用于对所述语法分析后的分组密码算法基本组件进行语义分析; 代码生成单元,用于将所述语义分析后的分组密码算法基本组件转换成可被计算机识别的C语言代码。
优选地,所述测试和分析单元包括 测试单元,用于对所述所需分组密码算法待测组件进行输入输出测试; 调用单元,用于调用预先针对不同分组密码安全性分析组件编写的分析程序;
5 分析单元,用于利用所述分析程序对所述输入输出测试的输入数据及相对应的输出数据进行分析。
优选地,该系统进一步包括输出单元,用于输出分析结果。
本申请实施例提供的技术方案首先定义的高级描述语言,并利用其将分组密码算法描述成多个分组密码算法基本组件的组合,所定义的高级描述语言包含有分组密码算法基本组件的描述语法,这些基本组件包含了目前大多数分组密码算法中所使用的组件, 并且该高级描述语言是面向用户的高级语言,便于用户理解和使用,所以用户使用上述高级描述语言,可以方便、快捷地将目前大多数分组密码算法中每一个分组密码算法都描述成一些分组密码算法基本组件的组合。
描述完成后,对分组密码算法基本组件进行解析,将不能被计算机识别的高级描述语言解析成可以被计算机识别的C语言代码,再将C语言代码编译、链接成具有可执行接口的分组密码待测组件,设计各待测组件的测试内容和测试步骤,形成各待测组件的测试用例,最后根据配置计划对分组密码安全性组件进行相应的测试用例及测试分析,得到分析结果,完成整个分析过程。
因此,该分组密码算法分析方法及系统,将对分组密码的安全性分析转换成只需对可被计算机识别的、可执行的分组密码待测组件进行安全性分析即可,可以实现对目前大多数分组密码算法的安全性进行统一分析。
此外,该分组密码算法分析方法,其解析过程、编译过程、链接过程和测试分析过程都可以在计算机上自动执行,可以实现分组密码算法安全性分析过程自动化。


为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下, 还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种分组密码算法分析方法的流程示意图; 图2为本申请实施例定义高级描述语言的流程示意图; 图3为本申请实施例分组密码基本组件解析的流程示意图; 图4为本申请实施例分组密码待测组件测试分析的流程示意图; 图5为本申请实施例提供的另一种分组密码算法分析方法的流程示意图; 图6为本申请实施例提供的一种分组密码算法分析系统的结构示意图; 图7为本申请实施例定义单元的结构示意图; 图8为本申请实施例解析单元的结构示意图; 图9为本申请实施例测试分析单元的结构示意图。
具体实施例方式为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
实施例一 图1为本申请实施例提供的一种分组密码算法分析方法的流程示意图,如图所示,该方法包括 步骤100 定义面向用户的、能够描述分组密码算法的高级描述语言。
该高级描述语言只是面向用户的,不能被计算机直接识别,但其描述内容可以被解析成能够被计算机识别的语言。如图2所示,其定义过程具体包括 步骤101 定义高级描述语言的基本语法。
分组密码描述语言与其它现有的高级语言(如C语言)类似,首先要定义描述语言所使用的特殊符号、标识符、全局标记、常量、变量声明、关系表达式、基本语句以及低级函数等。
本申请实施例中,分组密码算法描述语言的基本语法有 1、特殊符号 “*”:放在一些语法定义的后面,代表该语法定义可以出现0次或多次,且由空格与其前面的语法定义分隔开; “ + ”:放在一些语法定义的后面,代表该语法定义可以出现1次或多次,且由空格与其前面的语法定义分隔开; “++”:放在一些语法定义的后面,代表该语法定义可出现1次或多次,且由逗号与其前面的语法定义分隔开; “#,,表示以次开头的行为注释行。
2、标识符 通常有两种标识符一、一般的标识符,可以由用户定义,规定其命名规则是以字母开头,有字母、数字和下划线“_”,其中字母有大小写区分;二、保留标识符,这种保留标识符需要预先定义。
保留标识符如下表所示;
权利要求
1.一种分组密码算法分析方法,其特征在于,包括定义面向用户的、能够描述分组密码算法的高级描述语言;用户根据所述高级描述语言,将分组密码算法描述成多个分组密码算法基本组件的组合;将所述分组密码算法基本组件解析成可被计算机识别的C语言代码; 将所述C语言代码编译、链接,生成可执行的分组密码算法待测组件; 根据用户的操作请求配置测试计划,根据所述测试计划选择所需的分组密码算法待测组件;根据所述测试计划,对所述选择的分组密码算法待测组件进行测试分析,得到分析结: O
2.根据权利要求1所述的方法,其特征在于,所述定义具体实现为定义高级描述语言的基本语法,包括特殊符号、标识符、标记、常量、变量声明、关系表达式、基本语句以及低级函数;根据所述高级描述语言语法,定义分组密码算法基本组件的描述语法。
3.根据权利要求1所述的方法,其特征在于,所述分组密码算法基本组件包括置换组件、S盒组件、矩阵乘组件、一般函数组件、密钥参与的函数组件、以函数形式出现的S盒、轮函数组件、密钥扩展组件、FeiStel结构组件和完整加密组件。
4.根据权利要求1所述的方法,其特征在于,所述解析具体实现为 对所述分组密码算法基本组件进行词法分析;对所述词法分析后的分组密码算法基本组件进行语法分析; 对所述语法分析后的分组密码算法基本组件进行语义分析; 将所述语义分析后的分组密码算法转换成可被计算机识别的C语言代码。
5.根据权利要求1所述的方法,其特征在于,所述测试计划包括关键组件测试、缩减轮函数测试和完整算法测试。
6.根据权利要求1所述的方法,其特征在于,所述测试分析具体实现为 对所述所需分组密码算法待测组件进行输入输出测试;调用预先针对不同分组密码算法待测组件编写的分析程序;利用所述分析程序对所述输入输出测试的输入数据及相对应的输出数据进行分析。
7.根据权利要求1所述的方法,其特征在于,进一步包括输出分析结果。
8.根据权利要求7所述的方法,其特征在于,所述输出分析结果具体实现为将分析结果输出到可视装置和/或存储到预设位置或用户指定位置。
9.一种分组密码安全性分析系统,其特征在于,包括定义单元,用于定义面向用户的、能够描述分组密码算法的高级描述语言; 描述单元,用户根据所述高级描述语言,将分组密码算法描述成多个分组密码算法基本组件的组合;解析单元,用于将所述分组密码算法基本组件解析成可被计算机识别的C语言代码; 编译和链接单元,用于将所述C语言代码编译、链接,生成可执行的分组密码算法待测组件;配置单元,用于根据用户的操作请求配置测试计划,根据所述测试计划选择所需的分组密码算法待测组件;测试分析单元,用于对所选择的分组密码算法待测组件进行测试分析,得到分析结果。
10.根据权利要求9所述的系统,其特征在于,所述定义单元包括基本语法定义单元,用于定义高级描述语言的语法,包括特殊符号、标识符、标记、常量、变量声明、关系表达式、基本语句以及低级函数;描述语法定义单元,用于根据所述高级描述语言基本语法,定义分组密码算法基本组件的描述语法。
11.根据权利要求9所述的系统,其特征在于,所述解析单元包括 词法分析单元,用于对所述分组密码算法基本组件进行词法分析;语法分析单元,用于对所述词法分析后的分组密码算法基本组件进行语法分析; 语义分析单元,用于对所述语法分析后的分组密码算法基本组件进行语义分析; 代码生成单元,用于将所述语义分析后的分组密码算法基本组件转换成可被计算机识别的C语言代码。
12.根据权利要求9所述的系统,其特征在于,所述测试和分析单元包括 测试单元,用于对所述所需分组密码算法待测组件进行输入输出测试;调用单元,用于调用预先针对不同分组密码安全性分析组件编写的分析程序; 分析单元,用于利用所述分析程序对所述输入输出测试的输入数据及相对应的输出数据进行分析。
13.根据权利要求9所述的系统,其特征在于,进一步包括输出单元,用于输出分析结果。
全文摘要
本发明公开了一种分组密码算法分析方法及系统。该方法包括首先定义高级描述语言,其次用户根据高级描述语言,将分组密码算法描述成多个分组密码算法基本组件的组合,然后将分组密码算法基本组件解析成可被计算机识别的C语言代码,再将C语言代码编译、链接,生成可执行的分组密码算法待测组件,最后根据用户的操作请求配置测试计划,选择所需的分组密码算法待测组件,并根据测试计划,对选择的分组密码算法待测组件进行测试分析,得到分析结果。该分组密码算法分析方法及系统,将对分组密码的安全性分析转换成只需对可被计算机识别的、可执行的分组密码待测组件进行安全性分析即可,可以实现对目前大多数分组密码算法的安全性进行统一分析。
文档编号H04L9/06GK102195773SQ20101011616
公开日2011年9月21日 申请日期2010年3月3日 优先权日2010年3月3日
发明者康绯, 祝跃飞, 师国栋, 吴树华, 顾纯祥 申请人:中国人民解放军信息工程大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1