本文公开了一种加解密算法模块仿真验证系统及方法,验证系统主要包括:激励生成器、驱动器、激励监测器、输出监测器、覆盖率模型和检查器等。激励生成器产生随机化的测试激励;驱动器将产生的激励打包传递给系统内的其它组件;激励监测器和输出监测器用于监测相关组件的内部状态;覆盖率模型根据输入的激励进行覆盖率统计;检查器自动比对参考模型和加解密算法模块(DUT模块)的运算结果。本发明专利技术验证方法由三部分组成,每组初始激励经由DUT模块和参考模型加密后进行第一次比对,随后将加密结果再由DUT模块和参考模型解密后进行第二次对比,最后将解密结果与初始激励进行第三次比对,以确保DUT模块功能验证的正确性,有效提高验证的效率和完备性。验证的效率和完备性。验证的效率和完备性。
【技术实现步骤摘要】
一种加解密算法模块仿真验证系统及方法
[0001]本专利技术涉及加解密算法验证
,更具体地,涉及一种加解密算法模块仿真验证系统及方法。
技术背景
[0002]中国集成电路产业正在进入新的发展阶段,随着先进工艺的不断演进,芯片设计日趋复杂,芯片系统复杂度和芯片系统集成度日趋增加,对于芯片功能验证提出了新的要求,而功能验证在芯片全流程中占据着重要部分,使得对提高芯片功能验证的效率和完备性提出了新的技术要求。
[0003]随着信息时代的发展,加解密算法是保障数据信息安全的核心技术,加解密算法日益复杂,因此加解密功能验证的重要性也日益显著,由于加解密算法模块的密钥长度、密钥、明文和工作模式等组合的多样化,验证复杂度也不断增加,验证时需要遍历所有可能的使用场景,才能确保加解密算法模块被充分验证。
[0004]基于SystemVerilog搭建的验证系统在验证方面具有独特的语言优势,可满足更高层面的验证需求。
[0005]通常对于加解密算法模块的验证,一般由加密和解密两个独立的验证系统分别完成,并且每组激励只能单独验证DUT模块中的加密或解密功能,对加解密功能的验证不具备连续性,验证效率低,无法满足日益复杂的加解密算法的验证需求和芯片项目开发的进度要求。
技术实现思路
[0006]本专利技术提供一种加解密算法模块仿真验证系统及方法,用以提高对复杂加解密算法模块的验证效率。
[0007]为解决上述问题,本专利技术的技术方案如下:
[0008]一种加解密算法模块仿真验证系统,其中主要包括:激励生成器、驱动器、激励监测器、参考模型、输出监测器、模式配置器、覆盖率模型和检查器等,所述验证系统需要把上述组件进行连接并调试。
[0009]所述加解密算法模块仿真验证系统,每组激励经由DUT模块和参考模型加密运算后进行第一次结果比对,将第一次加密运算结果再由DUT模块和参考模型解密运算后进行第二次结果比对,最后将第二次DUT模块解密运算的结果与初始测试激励进行第三次比对,以确保DUT模块功能正确性。
[0010]所述验证激励分为大量的受约束的随机化激励和定向激励,激励包括密钥长度、密钥、明文、加密或解密模式、加解密算法模块所支持的工作模式等特性,其中定向激励还包括特殊激励,以充分验证加解密算法模块。
[0011]所述激励生成器能根据给定的约束条件,产生随机化的有效测试激励;
[0012]所述驱动器会将激励生成器产生的激励进行整理打包,通过接口传输给激励监测
器和DUT模块;
[0013]所述激励监测器会将激励数据传递给参考模型和覆盖率模型;
[0014]所述参考模型由高级编程语言搭建,与加解密算法模块的行为一致,其运算结果用于与DUT模块的运算结果进行比对,来验证当前DUT模块加解密运算逻辑的正确性;
[0015]所述输出监测器能对加解密算法模块的内部状态进行监测,并把加解密算法模块的运算结果发送给检查器;
[0016]所述模式配置器会自动根据上一次配置的加密或解密运算模式,将下一次运算的加解密模式配置为与之相反的模式,并将数据送至驱动器;
[0017]所述覆盖率模型由system verilog语言建立,搜集所有激励数据,完成验证功能点的覆盖率统计,以量化功能验证覆盖情况;
[0018]所述检查器会对参考模型与加解密算法模块的输出结果进行自动比对,用以检查加解密算法模块功能的正确性。
[0019]一种加解密算法模块仿真验证系统及方法,所述验证方法步骤如下:在验证系统各组件连接调试完成后,由激励生成器生成一组测试激励,并将该激励发送给驱动器。驱动器一方面将该激励发送给DUT模块,输出监测器在监测到DUT模块加密运算完成后,将运算结果发送给加密检查器。另一方面,驱动器还将该激励发送给激励监测器,激励监测器会将数据打包整理后发送给参考模型和覆盖率模型。参考模型完成加密运算后,把运算结果送给加密检查器。加密检查器将参考模型和DUT模块输出的加密结果进行对比,得出加密验证结果,如果比对成功,会继续将加密结果发送给模式配置器,否则此轮验证失败。模式配置器会将加密模式变更为解密模式,并将相关数据发送给驱动器。与上述加密验证流程类似,驱动器在接收到加密数据后,将该数据通过相关组件最终发送到DUT模块和参考模型进行解密运算。解密检查器会比对参考模型和DUT模块的解密运算结果。同时初始激励检查器会将DUT模块计算得出的解密结果与原始激励进行比对,作为反向验证的结果进行输出。
[0020]与现有技术相比,本专利技术技术方案的优点在于:
[0021]本专利技术将加密和解密两个独立的验证环节进行合并,在每轮验证中能同时完成对DUT模块加密和解密功能的验证,提高了验证效率。同时会对每组验证激励经由DUT模块运算后产生的结果,经过三次比对以确保验证的可靠性。验证系统基于可复用的独立组件构成,对于各种基于不同算法的加解密模块具有很强的适用性和可移植性。
附图说明
[0022]图1为本专利技术的验证系统示意图。
[0023]图2为实施例中的验证方法示意图。
具体实施例
[0024]下面结合附图和实施例对本专利技术的技术方案做详细说明。
[0025]实施例1
[0026]本实施例提供一种加解密算法模块仿真验证系统,主要包括:激励生成器、驱动器、激励监测器、参考模型、输出监测器、模式配置器、覆盖率模型和检查器等。如图1所示,将各相关组件进行连接和调试,组成用以验证加解密算法模块的仿真验证系统。
[0027]所述加解密算法模块仿真验证系统,如图2所示,每组激励经由DUT模块和参考模型加密运算后进行第一次结果比对,将第一次加密运算结果再由DUT模块和参考模型解密运算后进行第二次结果比对,最后将第二次DUT模块解密运算的结果与初始测试激励进行第三次比对,以确保DUT模块功能正确性。
[0028]所述验证激励分为大量的受约束的随机化的激励和定向激励两种验证激励,激励包括设置密钥长度、密钥、明文、加密或解密模式、加解密算法模块所支持的工作模式等特性,其中定向激励包括特殊激励,以充分验证加解密算法模块。
[0029]所述组件包括激励生成器、驱动器、激励监测器、参考模型、输出监测器、模式配置器、覆盖率模型和检查器,其中:
[0030]所述激励生成器能根据给定的约束条件,产生随机化的有效测试激励;
[0031]所述驱动器会将激励生成器产生的激励通过接口传输给激励监测器和DUT模块;
[0032]所述激励监测器会将接收到的激励数据打包并传递给参考模型和覆盖率模型;
[0033]所述参考模型由高级编程语言搭建,在实际应用前已经过严格的测试验证,以确保其加解密行为与验证预期完全一致;
[0034]所述参考模型对接收到的激励数据进行运算,其运算结果将发送给检查器,与DUT模块的运算结果进行比对,以验证当前DUT模块加解密运算逻辑的正确性;
[0035]所述输出监测器本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种加解密算法模块仿真验证方法,其特征在于,每组激励由DUT模块和参考模型加密运算后进行第一次对比,将加密结果再由DUT模块和参考模型解密运算后进行第二次对比,最后将DUT模块解密结果与初始激励进行第三次比对,对DUT模块进行验证。2.一种加解密算法模块仿真验证系统,用于实现权利要求1所述的加解密算法模块仿真验证方法,其特征在于,所述加解密算法模块仿真验证系统的组件包括:激励生成器、驱动器、激励监测器、参考模型、输出监测器、模式配置器、覆盖率模型和检查器,其中:所述激励生成器产生符合加解密算法模块要求的随机化测试激励;所述驱动器会将激励生成器生成的有效激励传输给激励监测器和DUT模块;所述激励监测器会把激励传输给参考模型和覆盖率模型;所述参考模型由高级编程语言搭建,其行为与加解密算法模块行为一致;所述输出监测器用于监测加解密算法模块的内部状态,并将运算结果送给检查器;所述模式配置器会自动更改上一次的加密或解密模式,将下一次计算模式配置成与之相反;所述覆盖率模型搜集激励数据,计算验证功能点的覆盖率;所述检查器用以检查加解密算法模块功能的正确性。3.根据权利要求1所述的一种加解密算法模块仿真验证方法,其特征在于,每生成一组有效激励,会将该激励分别送给DUT模块和参考模型进行加密运...
【专利技术属性】
技术研发人员:汤蔚霞,顾庆,
申请(专利权)人:上海华虹集成电路有限责任公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。