掌桥专利:专业的专利平台
掌桥专利
首页

一种基于UVM的流模式对称加密电路验证装置

文献发布时间:2023-06-19 09:24:30



技术领域

本发明属于芯片验证领域。尤其涉及标签芯片的数字系统验证方法。

背景技术

随着电子信息技术的发展,非接触式智能卡(如RFID卡)已经在我们的生活中随处可见。与传统的接触式卡、磁卡相比,利用射频识别技术开发的非接触式智能卡,具有高度安全保密性和使用简单等特点,正逐渐取代传统的接触式IC 卡,成为智能卡领域的新潮流。然而,由于RFID系统的数据交流处于开放的无线状态,外界容易对系统实施各种信息干扰及信息盗取。

鉴于RFID系统数据交流开放的安全性问题,人们做了大量的研究工作,提出了很多安全机制设计方面的建议。目前在智能卡应用系统中,比较流行的 ISO/IEC 15693协议还未采用任何安全机制,因此有必要在安全机制基础上,引入数据加密算法来保障数据通信的安全。

本文提出一种基于UVM的流模式对称加密电路验证装置,可以适用于具有串行流模式特性的对称加密电路验证。

发明内容

一种基于UVM的流模式对称加密电路验证装置,由验证平台模拟读卡器,发送命令至标签DUT中,整套验证流程由验证平台和标签DUT配合完成。UVM 验证平台中固定组件功能如事务参数transaction、驱动器driver、参考模型 reference、输入信号监测monitor和比较器scoreboard,在本发明中不加以详细描述。

一种基于UVM的流模式对称加密电路验证装置,其特征包括算法请求认证和数据加密传输两部分电路。

所述算法请求认证电路,其特征包括随机数RR、标签随机数接收电路、密钥SKEY、加密器encoder1、参考模型reference、输入信号监测monitor和比较器scoreboard。

其特征如图1所示,所述随机数RR在UVM事务参数(Transaction)中定义为随机变量,每一个测试用例中的每一个sequence item都赋予随机变量RR为不同的随机值。所述随机数RR在UVM的驱动器driver模块中,作为发送认证请求命令的数据,发送至标签DUT中。

其特征如图1所示,所述标签随机数接收电路,作为一个独立电路存在于驱动器driver中。所示标签随机数接收电路包括移位寄存器、比较器和触发器。所述标签随机数接收电路连接电路如下:驱动器driver模块接收标签DUT输出随机数有效指示信号rng_valid和随机数rng_data;rng_valid连接至移位寄存器输入端,移位寄存器输出信号连接至比较器输入端,比较器输出rng_catch信号连接至触发器输入端。在每一个时钟上升沿,移位寄存器采样rng_valid至寄存器 rng_indicate[7:0],当rng_indicate为0xFE时,比较器置位rng_catch从0至1; rng_catch连接至触发器输入端;触发器监测到rng_catch的上升沿,随机数 rng_data被寄存至rng_rt。用fork…join_none方式直接调用所述标签随机数接收电路,因为fork…join_none块在调度随机数接收电路时,父线程继续执行,UVM 中其他组件可正常执行。

其特征如图1所示,所述密钥SKEY是验证平台的全局变量,为一组多字节的数组。

其特征如图1所示,所述加密器encoder1,是用UVM的DPI-C方式引入的 C语言加密函数。Encoder1输入参数是数据和密钥SKEY,将数据和密钥SKEY 经过C函数加密算法后输出参数是密文token1。

所述算法请求认证连接方式:随机数RR送入驱动器driver发送请求命令函数,随机数RR送入参考模型reference的加密器Encoder1的输入参数;驱动器 driver中随机数接收电路接收DUT产生的随机数rng_rt,并送入参考模型 reference的加密器输入参数;随机数RR和随机数rng_rt组合,成为加密器输入的待加密数据;密钥SKEY送入参考模型reference的加密器输入参数;加密器由DPI-C方式引入加密函数Enc({RR,rng_rt},SKEY),产生密文token1,送入比较器scoreboard;输入信号监测器monitor根据RFID传输协议接收DUT的响应,获取DUT的token1’,送入比较器scoreboard;比较器scoreboard中,比较token1和token1‘的值,若为1则请求认证成功,若为0,则认证失败。

所述算法请求认证过程:UVM验证平台在驱动器driver中发送认证请求命令和随机数据RR至标签DUT,DUT接收该认证请求命令并产生随机数rng_rt。DUT把RR、rng_rt和密钥经加密后返回token1’给UVM验证平台,由验证平台的输入监测器monitor接收该token1’。UVM验证平台在驱动器driver中用随机数有效指示信号rng_valid和随机数rng_data接收有效随机数rng_rt,参考模型 reference中调用加密器函数,使用RR、rng_rt和密钥加密后产生token1,在比较器scoreboard中比较token1’和token1,若两者相同,则算法请求认证成功,进入数据加密传输阶段。

所述数据加密传输电路,是除了命令以外,将数据相关的信息经过加密后传送至标签DUT的过程。其特征包括第一次加密标志first_enc、加密器encoder2、明文、异或门、加密数据、队列token_q[$]、选择器、条件判断器。

其特征如图1所示,第一次加密标志first_enc是一个标志信号,上电初始值为1,代表在数据加密传输阶段第一次加密。如果first_enc为1,加密器待加密数据data使用算法请求认证后的密文token1;如果first_enc为0,加密器待加密数据data使用上一次的输出密文token2。

其特征如图1所示,明文为用户待发数据源,未加密。

其特征如图1所示,加密数据为用户待发数据源,已加密。

其特征如图1所示,异或门输入为明文和队列token_q[$]中取出的字节。

其特征如图1所示,队列token_q[$]是system verilog语法中一种数据类型,在使用队列时,不用声明队列大小,用token_q.pop_front方式输出队列第一个字节,用token_q.push_back方式把字节放入队尾。用token_q.size方式直接算出队列字节大小。

其特征如图1所示,选择器输入选择信号由第一次加密标志first_enc控制,如果first_enc为1,选择器输出data为密文token1;如果first_enc为0,选择器输出data为密文token2。

其特征如图1所示,条件判断器为判断token_q字节大小,如果小于7个字节,则使能加密器产生新的密文放入token_q中;如果大于等于7个字节,则第一次加密标志first_enc清零。

所述数据加密传输连接方式:认证过程中加密器1产生token1,接入选择器输入一端;加密器2产生token2,接入选择器输入另一端,选择器选择信号为 first_enc;选择器输出为data,输入加密器2,作为加密器待加密数据;密钥SKEY 输入加密器2;加密器2根据C函数Enc(data,SKEY)输出token2;token2输出至选择器一端;token2输出至队列token_q[$]中;token_q[$]接至判断电路,判断电路输出控制加密器2工作使能;token_q[$]接至异或门;待发送数据明文接至异或门;异或门输出为待发送加密数据。

所述数据加密传输过程:队列token_q[$]上电后用delete函数清空,当 token_q[$]的字节数小于7时,启动加密器;加密器输入参数是选择器的输出data 和密钥SKEY,输出为密文token2;选择器由第一次加密标志first_enc控制输出值,上电后第一次加密标志first_enc默认值为1,选择器用算法请求认证中参考模型reference算出的token1作为选择器输出data,选择器输出data给加密器,加密器产生token2并将token2放入队列token_q[$];token_q[$]有先进先出的特性,根据明文字节大小,输出密文,并与明文做异或产生加密数据,发送至标签 DUT;队列token_q的大小为64字节,因此将第一次加密标志first_enc设置为 0;第一次加密标志first_enc为0,选择器将加密输出token2作为输出data,传送至加密器的输入端,与SKEY加密产生新密文;待加密数据明文和队列 token_q[$]中按8比特数据异或产生加密数据。

本发明中,所述算法请求认证电路和数据加密传输中的加密器为同一个C函数,用UVM的DPI-C方式引入。所述算法请求认证电路和数据加密传输中的密钥SKEY为同一个密钥,在验证平台存储于memory数组中。

经过验证平台加密后,DUT用同样密钥和加密算法进行解密和处理。

本发明的验证系统及验证方法不仅能对单个命令进行验证,也能对特定的和随机的命令流进行验证,并自动检查验证结果.本发明验证系统的层次结构保证了代码重用性,解决了RFID标签芯片验证充分性的问题,同时提高了验证效率.

附图说明

图1为本发明示例算法验证电路总装置

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,基于ISO/IEC 15693 协议,结合附图及实例,对本发明进行进一步详细说明。此处所描述的具体实施列仅用以解释本发明,并不用于限定本发明。

所述算法请求认证连接方式:随机数RR送入驱动器driver发送请求命令函数,随机数RR送入参考模型reference的加密器Encoder1的输入参数;驱动器 driver中随机数接收电路接收DUT产生的随机数rng_rt,并送入参考模型 reference的加密器输入参数;随机数RR和随机数rng_rt组合,成为加密器输入的待加密数据;密钥SKEY送入参考模型reference的加密器输入参数;加密器由DPI-C方式引入加密函数Enc({RR,rng_rt},SKEY),产生密文token1,送入比较器scoreboard;输入信号监测器monitor根据RFID传输协议接收DUT的响应,获取DUT的token1’,送入比较器scoreboard;比较器scoreboard中,比较token1和token1‘的值,若为1则请求认证成功,若为0,则认证失败。

所述算法请求认证过程:UVM验证平台在驱动器driver中发送认证请求命令和随机数据RR至标签DUT,DUT接收该认证请求命令并产生随机数rng_rt。 DUT把RR、rng_rt和密钥经加密后返回token1’给UVM验证平台,由验证平台的输入监测monitor接收该token1’。UVM验证平台在驱动器driver中接收随机数rng_rt,参考模型reference中使用RR、rng_rt和密钥加密后产生token1,比较 token1’和token1,若两者相同,则算法请求认证成功,进入数据加密传输阶段。

所述数据加密传输连接方式:认证过程中加密器1产生token1,接入选择器输入一端;加密器2产生token2,接入选择器输入另一端,选择器选择信号为 first_enc;选择器输出为data,输入加密器2,作为加密器待加密数据;密钥SKEY 输入加密器2;加密器2根据C函数Enc(data,SKEY)输出token2;token2输出至选择器一端;token2输出至队列token_q[$]中;token_q[$]接至判断电路,判断电路输出控制加密器2工作使能;token_q[$]接至异或门;待发送数据明文接至异或门;异或门输出为待发送加密数据。

所述数据加密传输过程:待加密数据明文和队列token_q[$]中按8比特数据异或产生加密数据;队列token_q[$]上电后用delete函数清空,当token_q[$]的字节数小于7时,启动加密器;加密器输入参数是选择器的输出data和密钥SKEY,输出为密文token2;选择器由第一次加密标志first_enc控制输出值,上电后第一次加密标志first_enc默认值为1,选择器用算法请求认证中参考模型reference算出的token1作为选择器输出data,选择器输出data给加密器,加密器产生token2 并将token2放入队列token_q[$];token_q[$]有先进先出的特性,根据明文字节大小,输出密文,并与明文做异或产生加密数据,发送至标签DUT;队列token_q 的大小为64字节,因此将第一次加密标志first_enc设置为0;第一次加密标志 first_enc为0,选择器将加密输出token2作为输出data,传送至加密器的输入端,与SKEY加密产生新密文。

经过验证平台加密后,DUT用同样密钥和加密算法进行解密和处理。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

相关技术
  • 一种基于UVM的流模式对称加密电路验证装置
  • 基于UVM的Level-2行情解码电路验证激励生成方法与验证平台
技术分类

06120112152303