欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 用于许可和测量IP模块的使用的系统和方法独创技术33189字

用于许可和测量IP模块的使用的系统和方法

2021-02-01 10:31:42

用于许可和测量IP模块的使用的系统和方法

  本专利申请要求法国专利申请FR17/61778的优先权,其内容通过引用结合于此。

  技术领域

  本发明涉及集成电路领域,尤其涉及一种允许对集成电路内的IP(知识产权)模块进行验证和许可的方法和系统,或者更一般地,涉及对任何电路或系统进行验证和许可的方法和系统。本发明还涉及用于计量IP模块的使用的方法和系统。

  背景技术

  集成电路通常包括本领域内称为IP(知识产权)模块的电路模块的集合。IP模块对应于执行特定功能的离散硬件电路设计,可在各种不同的集成电路中重复使用。给定集成电路(IC)中的IP模块通常是由IP模块的IP权利所有者授权给IC设计者。

  IP模块通常以软件形式交付给IC设计者,例如以诸如RTL(寄存器传输层),Verilog或VHDL(超高速集成电路硬件描述语言)之类的硬件描述语言。IP权利所有者通常授予IC设计者在有限数量的集成电路和/或有限数量的项目中使用其IP模块的许可,或者要求为包含该IP模块的每个集成电路/项目支付使用费。

  对于某些应用,最好是在有限期限内提供IP模块和/或硬件电路的许可。然而,现有的解决方案往往比较复杂,成本较高和/或不够安全。

  发明内容

  本说明书的实施例的目的是至少部分地解决现有技术中的一个或多个问题。

  根据一个方面,提供了一种集成电路,包括:一个或多个受保护电路;许可证控制电路,被配置为从许可证发行方请求许可证,用于激活一个或多个受保护电路,所述许可证请求包括种子值;以及加密电路,其被配置为根据所述种子值来验证从所述许可证发行方接收到的许可证的真实性,其中,所述许可证控制电路被配置为对所接收到的许可证施加有效期限,并在所接收到的许可证的有效期限之前,向所述许可证发行方请求新的许可证。

  根据一个实施例,所述集成电路还包括种子值存储器,其被配置为存储一个或多个种子值。

  根据一个实施例,所述许可证控制电路被配置为从所述种子值存储器中删除与无效许可证相关联的种子值。

  根据一个实施例,所接收到的许可证包括消息验证码,并且所述加密电路被配置为通过使用存储在所述种子值存储器中的种子值来验证消息验证码来验证许可证的真实性。

  根据一个实施例,所述集成电路还包括适用于生成随机值或伪随机值的随机值生成器,所述许可证控制电路被配置为基于所述随机值或伪随机值生成所述种子值。

  根据一个实施例,所述种子值包括标识所述集成电路的装置标识符。

  根据一个实施例,所述许可证包括验证码,所述集成电路还包括电路激活模块,其适用于通过根据所述验证码的验证,将激活码加载到与第一受保护电路相关联的激活寄存器中,来激活一个或多个受保护电路中的第一个。

  根据一个实施例,所述加密电路还适用于:从所述种子值导出装置密钥;并使用所述装置密钥解密所述接收到的许可证,以提取所述验证码。

  根据一个实施例,所述集成电路还包括计量数据生成器,其配置为接收与所述一个或多个受保护电路的活动相关的一个或多个计数值,并根据所述一个或多个计数值来生成计量数据。

  根据一个实施例,所述许可证控制电路还被配置为:将所述计量数据包括在向许可证发行方发送的新许可证请求中;和/或根据所述计量数据确定所接收到的许可证的有效期。

  根据一个方面,提供了一种将许可证应用于集成电路的一个或多个受保护电路的方法,该方法包括:从许可证发行方请求许可证,用于激活一个或多个受保护电路,该许可证请求包括种子值;根据所述种子值验证从所述许可证发行方接收到的许可证的真实性;对所接收到的许可证施加有效期限,并在所接收到的许可证的有效期之前向所述许可证发行方请求新的许可证。

  附图说明

  通过以下参考附图通过对实施例进行示例性而非限制性的详细描述,可以明显看出上述和其他特征和优点,其中:

  图1示意性地说明了根据本发明的示例性实施例与许可证发行方进行通信的电子装置;

  图2是描述根据本发明的示例性实施例保护集成电路的一个或多个电路的方法中的操作流程图;

  图3A示意性地说明了根据本发明的示例实施例允许IP模块许可的系统;

  图3B更详细地说明了图3A中根据示例性实施例的许可证生成电路。

  图4示意性地说明了包括根据本发明的示例性实施例的IP许可组件的电子装置;

  图5A和图5B示意性地说明了根据本发明的示例性实施例的IP模块的激活电路;

  图6示意性地说明了根据本发明的示例性实施例的计量电路;和

  图7示意性地说明了根据本发明的另一示例性实施例的许可系统。

  具体实施方式

  虽然在下面的描述中,某些实施例被描述为在硬件中实现,但是对本领域技术人员来说,显而易见的是,各种实施例可以至少部分地由一个或多个处理器执行的软件指令来实现。

  在下面的描述中,下列术语将被赋予以下定义:

  IP模块–执行特定功能的离散硬件电路设计,可以在包括FPGA(现场可编程门阵列)在内的各种不同集成电路中重复使用;

  受保护电路–可对应于IP模块、IP模块的集合、或由一个或多个集成电路组成的系统的电路,该电路受一种机制保护,使其处于非激活状态,除非被激活码激活;和

  随机或伪随机值–任何不可预测或难以预测的数字值。

  图1示意性地说明了与许可证发行方(LICENSE ISSUER)104通信的电子装置102。例如,该通信是通过本地网络进行的。可选地,在一些实施例中,许可证发行方104和装置102可以被更大的网络,例如互联网,分隔开。

  例如,电子装置102包括受保护电路IP1至IPN。每个受保护电路,例如是为执行精确的功能而开发的复杂电路,例如,能够执行图像处理操作的图像处理器,用于管理标准协议的接口,或能够执行高级操作的其他电路,例如处理器、编码或解码电路等。在一些实施例中,每个受保护电路可以包括FPGA,由受保护电路实现的功能通过编程代码被编程到FPGA。

  装置102例如是集成电路,并且受保护电路是该集成电路的IP模块。然而,在可选的实施例中,装置102可以对应于任何电子装置,受保护电路可以各自包括具有一个以上集成电路的电路板或系统。在一些实施例中,装置102构成例如移动电话、平板计算机、膝上型计算机、游戏机等之类的产品的部分,或者可以是安装在集成电路卡上的芯片,包括被称为智能卡的卡族,例如支付卡、SIM(用户身份模块)卡或类似的卡。

  在其他实施例中,装置102可构成提供数据处理资源的类似硬件装置的库的部分,这些资源可在许可后使用。例如,在装置102包括FPGA的情况下,终端用户可以购买许可,使其能够使用装置102的FPGA和/或使用可以被编程到FPGA上的一个或多个受保护IP电路。

  例如,许可证发行方104与装置102通信,并且执行生成和向装置102提供许可证的作用,该许可证授权硬件和/或一个或多个受保护电路的继续操作。例如,每个许可证具有有限的有效期。在一些实施例中,每个许可证可被视为授权装置102和/或一个或多个受保护电路在给定期限内操作的令牌。例如,每个许可证可以为给定的时间单位,例如几秒钟或几分钟,或为给定数量的处理器时钟周期或操作次数提供授权。可选地,每个许可证的持续时间可以是可变的,并且其持续时间可以在许可证本身中指示。例如,许可证可以指示其有效期,例如以秒或分钟为单位,或者以其授权的处理器时钟周期或操作次数为单位,表示其在失效前的有效期。

  例如,装置102包括许可证管理电路106,其向许可证发行方104生成许可证请求,接收并验证由许可证发行方104发放的许可证,并且在装置102上没有有效许可证的情况下,向许可证发行方104和/或向另一实体发出警报信号ALERT。在一些实施例中,警报信号可包括多个信号。

  在下面更详细描述的一些实施例中,装置102还包括许可证服务器(LICENSESERVER)108,许可证服务器108将接收到的许可证分配给受保护电路IP1至IPN以便激活它们。

  例如,许可证管理电路106包括许可证控制电路110,例如,该许可证控制电路110从随机或伪随机值生成器(RANDOM VALUE GENERATOR)112接收随机值,以及可选地,装置标识符(DEVICE ID)114,并且生成种子值(SEED)。该种子值例如包括在由许可证控制电路110生成,并传送给许可证发行方104的许可证请求报文(LICENSE REQ)中。例如,许可证控制电路110还将该种子值存储到种子值存储器(SEED MEMORY)116。

  许可证管理电路106接收由许可证发行方104发行的许可证(LICENSE),并且例如将它们存储在许可证存储器(LICENSE MEMORY)118中。在一些实施例中,许可证在通过诸如互联网等网络传输时,许可证被加密。此外,例如,每个许可证包括验证码,例如MAC(消息验证码),该验证码是由许可证发行方104使用包含在许可证请求报文中的种子值生成的。

  由许可证管理电路106接收到的许可证,例如提供给许可证解密和MAC验证电路(LICENSE DECRYPTION+MAC VERIFICATION)120,例如该电路在已被加密的情况下对许可证进行解密,并根据其验证码和使用来自种子值存储器116的相应的种子值对许可证进行验证。

  在由许可证发行方104用于生成验证码的种子值与存储到种子值存储器116中的种子值相匹配的情况下,该许可证将被成功地验证。然而,在这些种子值之间不匹配的情况下,验证将失败。在任一情况下,电路120例如将验证结果通知给许可证控制电路110。

  例如,许可证管理电路106还包括计数器(CNTR)122,用于指示何时应请求新的许可证。例如,在当前许可证到期前的某一时间段请求新的许可证,以便在当前许可证到期前有时间发布新的许可证。在一些实施例中,计数器122对时钟信号或类似信号的周期进行计数,使得计数信号可用于确定何时该请求新的许可证。可选地,计数器122可以对一个或多个受保护电路IP1至IPN的处理器的处理周期进行计数,或者对由一个或多个受保护电路IP1至IPN执行的操作次数进行计数。

  在计数器122指示当前许可证已经到期而没有收到新的许可证的情况下,或者在电路120指示对收到的许可证验证失败的情况下,例如,发出警报信号ALERT,以通知许可证发行方104和/或另一实体缺少有效的许可证。例如,受保护电路IP1到IPN的用户许可能会被警报信号通知许可证已到期,以及,如果没有在一定期限内支付新的许可证,一个或多个受保护电路将被停用。

  附加地或可选地,在没有有效的许可证的情况下,一个或多个受保护电路被重置和/或停用。例如,在制造之后或在重置之后,一个或多个受保护电路处于停用状态,并且只能通过验证码来激活。例如,该验证码与由许可证发行方104所发放的一个或多个许可证一起提供。在重置操作之后,例如,包含验证码的许可证被用于重新激活受保护电路,而在没有有效的许可证的情况下,例如,受保护电路仍处于停用状态。

  例如,种子值是由生成器112生成的随机或伪随机值与装置标识符的简单串接。装置标识符例如是识别装置102或装置组102的一串二进制数字,用于验证。例如,由许可证发行方104提供的许可证可以仅用于具有该标识符的装置,并且在一些实施例中,该装置标识符对于每个装置是唯一的,使得给定的许可证只能激活一个装置102的受保护电路。例如,装置标识符基于对装置102来说唯一的签名的生成。因此,即使两个集成电路被制造和/或编程为具有相同的功能,它们的签名以及由此它们的装置标识符将会是不同的。

  例如,装置标识符由PUF(物理不可克隆功能)生成或从其导出。例如,PUF值由装置102的CPU(中央处理单元)和/或基于安装在装置102上的一个或多个环形振荡器生成的。PUF值的生成在公开为WO2017/006058的国际专利申请中有更详细的描述。作为PUF的替代,可以使用另一种形式的装置标识符,例如装置制造商分配给装置的标识符。

  图2是一个流程图,表示根据示例实施例将许可证应用于一个或多个受保护电路的方法200中的操作,例如,该方法由图1中许可证管理电路102实现。

  在操作201中,验证图1的计数器122生成的计数值CNT_VALUE何时达到极限。一旦该计数值达到极限,该方法进入操作202。

  在操作202中,许可证控制电路110根据随机值生成器112提供的新种子值以及可选地根据装置标识符114生成许可证请求报文。该许可证请求报文被传送到许可证发行方104。

  在操作203中,许可证控制电路110还将许可证请求中传送的新种子值也存储到种子值存储器116。

  在操作204中,例如,从种子值存储器中删除旧的种子值。例如,在某些情况下,许可证控制电路110在种子值存储器中保持与一个或多个当前有效的许可证相关联的一个或多个当前种子值,以及与一个或多个许可证请求相关联的一个或多个新种子值,而其他种子值被删除以使旧的许可证无效。

  在操作205中,接收新的许可证,以响应在操作202中生成的许可证请求。该许可证被提供给许可证解密和MAC验证电路120,该电路对加密的许可证进行解密,并验证许可证中传输的MAC。

  然后,在操作206中,例如确定该MAC是否有效。如果否,则在操作207中,例如由许可证控制电路110生成警报信号。然而,如果许可证有效,则在操作208中,例如许可证控制电路110从许可证存储器118中删除旧许可证。此外,在许可证包含有关其有效期限的信息的情况下,例如,该信息由许可证解密和MAC验证电路120提供给许可证控制电路110,许可证控制电路110使用该信息来确定用于请求后续许可证的计数限制。

  图3A示意性地说明了根据本发明的一个实施例的系统300,允许对受保护电路进行验证和许可。系统300的一些特征与图1中系统100的特征相似,这样的特征用相同的附图标记标出,将不再详细描述。

  在系统300中,由许可证发行方104生成的部分或全部许可证包括用于激活装置102的受保护电路的验证码,如现在将描述的。

  系统300包括与三个主要部分相关联的硬件,所述三个主要部分是许可证发行方(LICENSE ISSUER)104,可信第三方(TTP)和终端用户(END USER)。在一些实施例中,许可证发行方104可以是IP供应商,或者可以与一个或多个IP供应商相关。例如,该保护基于一个或多个受保护电路的统一激活。

  终端用户可以是已经购买了装置102。可选地,终端用户可以,例如,通过中间方许可正在使用该装置102。

  根据本文所述的实施例,例如,装置102上对应于图1中装置IP1至IPN的一个或多个IP模块(IPs),在收到任何有效的许可证之前,最初处于停用状态。终端用户通过向许可证发行方或TTP请求许可证来激活停用的IP模块。然而,在可选的实施例中,可以由供应链中的另一方,例如,集成电路设计者,或包含装置102的产品的供应商,而不是最终用户,来执行激活。

  一些受保护电路可以通过初始许可证永久地激活,或者在装置102的后续重置之前保持激活状态。实际上,对于装置的每个受保护电路来说,具体的激活类型(永久激活,直到下一次重置,在有限的时间内)可以是不同的。此外,虽然本文描述的方法可用于激活单个IP模块,但是它也可以更广泛地应用于激活任何受保护电路,其可对应于给定装置的所有IP模块,对应于另一个IP模块内的IP模块和/或包含另一个IP模块的IP模块,对应于系统或IC卡,也可应用于使用给定ASIC(专用集成电路)技术的设计中的所有电路的激活,应用于给定FPGA系列的激活,应用于给定制造商生产的FPGA的激活等。也可以应用于系统级。此外,在一些实施例中,该许可证可用于仅激活或停用IP模块的功能的子集。

  现在将更详细地描述保护和激活IP模块的过程的示例。

  在许可证发行方104处,例如,数据库(RTL)304存储一个或多个以硬件描述语言,例如纯RTL(寄存器传输层)代码表示的IP模块。

  例如,IP保护模块(IP PROTECTOR)306包括用于执行IP保护功能的软件,该软件用于修改来自数据库304的一个或多个IP模块,以使电路处于非活动状态。尤其是,改变该IP模块,使得需要激活码来解锁其功能。在一些实施例中,该步骤可以完全自动执行,而在其他实施例中,该步骤可以至少部分地手动执行,例如由IP模块的设计者执行。如下文将更详细地描述的那样,例如,对IP模块的修改包括在硬件描述文件中将一个或多个逻辑门插入到IP模块的一个或多个信号路径中。例如,仅当在插入的逻辑门的一个或多个输入节点处提供一个或多个正确的激活位的情况下,这些逻辑门才允许未改变的信号沿信号路径传播。在一些实施例中,激活码对于给定的IP设计可以是唯一的。在其他实施例中,相同的激活码可用于多个IP设计。此外,在一些实施例中,可以有多个激活码来激活一个IP模块。例如,这可以便于许可证的生成操作。

  例如,将管理IP许可证的电路(在本文中称为许可证客户端(图3A中未示出))添加到每个要保护的IP模块中。下面将更详细地描述,例如,许可证客户端包括用于在提供有效许可证后存储激活码的寄存器。在一些实施例中,许可证客户端集成在每个IP模块内,但是如下面更详细地描述的那样,每个许可证客户端也可以位于相应的IP模块的外部。

  在一些实施例中,例如,表示修改后的IP模块的文件也受到加密的保护。

  例如,激活码,以及可选地,部分或全部修改的IP模块存储在许可证发行方的数据库(PROTECTED IP)308中。例如,生成包括激活码的许可证的任务已经由一个或多个IP供应商委托给许可证发行方104。修改后的IP模块也被交付给装置102的设计者,从而,如图3A中的箭头310所示,一个或多个受保护的IP模块在装置102的硬件中实现。特别地,例如,集成电路设计者将各种不同的IP模块聚集在一起以形成集成电路,并且这些IP模块中的一个或多个IP模块例如对应于本文处所述的激活码保护的IP模块。可选地,修改后的IP模块被编程到装置102的FPGA中。

  例如,提供给装置102的部分或全部的许可证包括验证码。术语“验证码”在此用于指与许可证传递并允许激活一个或多个IP模块的代码。该代码可以是一个或多个IP模块的激活码。在可选的实施例中,激活码已经存储在IP模块的受保护存储器中,例如ROM,并且激活码不包括在许可证中。在这种情况下,验证码是与许可证一起传递到IP模块的密码,允许将激活码从受保护存储器加载到激活码寄存器。在一些实施例中,可以向集成电路设计者提供临时许可证,用于电路构思/测试的目的。

  如图1所述,例如,装置102包括耦合到受保护电路的许可证管理电路106。

  当在制作和/或编程之后首次激活装置102时,例如,通过读取由PUF电路之类生成的值来读取装置标识符的值。在一些实施例中,由于集成电路的老化和/或由于其他原因,例如环境(温度,电压等),PUF值可能会随时间的推移而变化。在一些实施例中,鉴于PUF中的潜在变化,至少部分地将生成的PUF值存储到非易失性存储器中,和/或生成纠错码,允许在PUF值的某些位偏离其原始值的情况下校正PUF值。装置标识符还可以在装置102的端口上获得,或者以其他方式传递到装置102之外,并且例如用于请求激活受保护IP模块的部分或全部许可证。

  在一些实施例中,为每个要激活的IP模块生成单独的许可证。可选地,可生成用于激活多个IP模块的许可证。例如,将用于解锁装置102的一个或多个受保护的IP模块的一个或多个验证码(VERIFICATION CODE)315提供给许可证发行方104的许可证生成器(LICENSEGENERATOR)316。例如,许可证生成器316用于生成许可证(LICENSE),该许可证(LICENSE)被传送到装置102的许可证管理电路106。例如,许可证生成器316接收来自装置102的种子值,并根据该种子值和一个或多个验证码生成许可证。

  在一些实施例中,许可证还包括DRM(设计权限管理)数据320。例如,DRM数据指示对IP模块的激活持续时间的特定限制。例如,它可以指示特定受保护电路的许可证在特定持续时间内有效,例如几秒钟或几分钟。它还可以指示将许可证限制为一种或多种硬件类型,例如ASIC,FPGA系列的技术,或要解锁的IP模块的特定特性。例如,该电路的硬件类型可以由特定的传感器确定,并与一个或多个授权的硬件类型进行比较,以便将IP模块的使用限制为这些硬件类型。此外,附加地或可选地,许可证的DRM数据可以根据装置的传感器可以测量的其他变量来定义指示许可证的限制数据。

  例如,DRM数据可在基于验证码的一个或多个IP电路的初始激活时,仅验证和应用一次。可选地,每当从许可证发行方104接收到包含DRM数据的新许可证时,都可以验证和应用DRM数据。

  在一些实施例中,DRM数据修改验证码。例如,在一些实施例中,验证码包括激活码,并且激活码的一些位没有提供或者不正确,使得激活码只激活IP模块的一部分。在其他实施例中,可以使用其他技术,这些技术不是基于IP模块的逐位激活/停用。

  图3B更详细地说明了根据一个示例性实施例的许可证生成器316。例如,许可证生成器316包括密钥派生功能(KDF1)模块322,其根据装置102提供的种子值(SEED)生成装置密钥。例如,许可证生成器316还包括加密电路(CRYPTO)324,其将装置密钥应用于待激活的IP模块的一个或多个验证码,以生成许可证。例如,加密电路324通过应用诸如DES(数据加密标准),AES(高级加密标准)或类似的加密算法,基于装置密钥对验证码进行编码。DRM数据也可以被加密并构成许可证的一部分。

  如模块328(CRYPTO)所示,在一些实施例中,可以由IP供应商使用IP供应商密钥(IP VENDOR KEY)对验证码进行加密,并且,例如,IP供应商密钥也由IP供应商存储在IP模块中,允许对验证码进行解密。这样,即使是许可证发行方104也不能访问验证码。

  然后,将所生成的许可证提供给装置102。在一些实施例中,采用对称加密/解密算法,由许可证生成器316使用装置密钥对许可证进行加密,然后在装置102处对许可证进行解密,这样,如果密钥相同,则验证码将被成功恢复。

  图4更详细地示意性说明了根据一个示例性实施例,在许可证服务器108和多个IP之间的通信基于客户端服务器配置的情况下,图3A中装置102的许可组件。然而,在可选的实施例中,其他类型的通信配置也是可能的,例如,片上网络(NoC)或多播或广播协议。许可证服务器108和多个IP之间的通信,例如使用加密来确保安全。例如,在公开的WO2017/006058国际专利申请中,对许可证服务器108和多个IP之间的通信接口的示例实现作了更详细地描述。

  如图4所示,例如,JTAG(联合测试工作组)接口用于将从许可证生成器316接收的许可证传送到装置102的许可证存储器(LICENSE MEMORY)108。当然,也可以使用其他接口标准,例如USB(通用串行总线)。例如,存储器118是RAM(随机存取存储器)。例如,许可证存储器118在内部耦合到许可证服务器108。例如,许可证服务器108经由许可证总线(LICENSEBUS)404与受保护的IP模块406进行通信。在图4的实施例中,许可证总线404被耦合到与每个IP模块406相关联的许可证客户端电路(LICENSE CLIENT)408,该许可证客户端电路又被耦合到图4中标记为IP核(IP CORE)410的IP模块406的其余部分。在图4的实施例中,有N个IP核1到N,其中,例如N为等于或大于2的整数。

  例如,每个IP模块406的许可证客户端电路408对许可证进行验证,并根据此验证,将激活码提供给相应的IP核,以激活其功能。例如,每个许可证客户端电路408包括激活码寄存器412,如果发现该许可证有效,则将激活码加载到该激活码寄存器412中。每个许可证客户端电路的寄存器412被耦合到相应的IP核410,以便激活其功能。

  图5A和图5B示出了通过在IP模块的信号路径中插入逻辑门,用于根据激活码的一个或多个位对IP模块进行激活的电路的例子。

  在图5A的实施例中,由云502表示的IP模块的电路部分在线路504上提供输出信号,该线路504与同步逻辑装置(A)506的输入相耦合。为了使输出线504的激活依赖于一个激活位,在输出线504和同步装置506的输入之间插入激活电路508。例如,该电路508包括非门(NOT)510,其输入耦合到输出线504,其输出耦合到异或门(XOR)512的输入。异或门512的另一输入接收激活位en_a,该激活位en_a应当为高电平,才允许存在于线路504上的数据信号传播到同步装置506。

  图5B示出了插入到与图5A的实施例相同的信号通路中的激活电路518的另一实施例。然而,该电路518包括异或门(XOR)520,其一个输入耦合到线路504,其另一输入耦合为接收激活位en_b。在本实施例中,激活位应为低电平,才能允许将线路504上的信号传播到同步装置(B)506的输入端。

  因此,图5A和图5B示出了可以被插入,以便分别根据高激活位和低激活位来激活IP模块的电路部分的电路的示例。类似的电路可以被插入到IP模块内的各个点上,使得在没有正确的激活码的情况下,IP模块将不会工作。当然,图5A和图5B仅提供了可用于受保护IP模块的逻辑门的一些实施例,许多不同的逻辑功能可以基于相同的原理来实现。在一些实施例中,插入是随机执行的,使得激活码是随机值,并且不依赖于底层电路的功能。在另一些实施例中,插入可以是不随机的。此外,虽然在图5A和图5B的实施例中,电路508在激活码的“1”位激活的情况下使用,电路518在激活码的“0”位激活的情况下使用。在可选的实施例中,有多个不同的电路在“1”位和“0”位激活的情况下使用,并且这些电路之间的选择是随机的。

  在一些实施例中,图1的许可证管理电路106还被配置为实现一种计量方法,现在将参照图6和图7进行更详细地描述。

  图6示意性地说明了根据本发明一个示例性实施例的计量电路602。例如,该电路602在装置102上实现,以便定期向许可证发行方104提供计量数据。例如,计量数据对应于涉及一个或多个受保护电路(IP)的活动的数据。在图6的实施例中,电路602包括N个计量计数器(METERING COUNTER IP1,METERING COUNTER IPN)604,它们分别从相应的受保护电路IP1至IPN接收事件信号EVENT IP1至EVENT IPN。例如,事件信号表示何时发生与电路的活动有关的事件。例如,事件可能对应于一个或多个图像处理操作,处理一个或多个数据包,执行一个或多个指令等。

  例如,由计量计数器604生成的计数值被提供给计量数据生成器606,其使用计量数据定期生成计量数据M_DATA。例如,计量数据对应于在给定的时间间隔期间由每个计数器604计数的事件的计数值。

  例如,将计量数据M_DATA提供给图1中许可证管理电路106的许可证控制电路110,并且例如生成新的计量数据并将其结合到每个许可证请求报文中。在一些实施例中,计量数据可用于确定每个许可证的有效期,以代替或补充计数器122。可选地,计量数据可独立于许可证请求之外传送。

  图7示意性地说明了根据本发明的一个示例性实施例的许可装置和计量系统700。图7中与图1的特征相似的特征已经用相同的附图标记标出,并且将不再详细描述。

  在图7所示的系统中,装置102包括许可证管理电路106和软件开发工具包(SDK)702。例如,SDK 702提供用于控制电路106和许可证发行方104之间通信的软件层。例如,许可证管理电路106产生周期性的许可证请求报文,每个许可证请求报文包括状态信号(STATUS),种子值(SEED)和计量数据M_DATA。例如,状态信号报告许可证加载是否成功。该信号可以是单个位,也可以使用多个位来编码更复杂的状态信息。SDK 702继而将许可证请求报文转发给许可发行方104,在本实施例中,许可证发行方104包括计量数据存储器(LICENSE ISSUER AND METERING DATA STORAGE)。发行方104提取计量数据,例如该计量数据可以用于计费目的,和返回所请求的许可证,该请求的许可证由SDK 702转发到许可证管理电路106。

  在一些实施例中,每个许可证请求还指示与装置102的使用相关联的用户标识符和/或会话标识符,从而允许例如将用户账户与计量数据和/或许可证请求相关联。

  本文描述的实施例的优点在于,根据具有有限有效期的许可证,许可证保护可以根据由装置生成的种子值以简单的方式应用于装置的电路。实际上,种子值允许验证每个许可证是否根据存储在装置上的相应的种子值生成的,并且可以在许可证到期后通过删除相应的种子值来使许可证失效。

  在这样描述了至少一个示例性实施例之后,本领域技术人员将很容易想到各种改变,修改和改进。例如,对于本领域技术人员将显而易见的是,虽然已经描述了与图1有关的许可证管理电路的特定示例,但可以应用许多变化。此外,除了在装置102上实施该电路,还可以在与装置102通信的单独装置中实施该电路。

  此外,虽然已经在各种向上计数的实施例中描述了计数器,但是对于本领域技术人员显而易见的是,一个或多个计数器也可以减少。例如,可以根据许可证的有效期以一个计数值初始化计数器122,并且当该计数器达到零时,可以触发许可证续期或到期。

  此外,对于本领域技术人员而言显而易见的是,在可选的实施例中,所述的各种特征可以以任何组合的方式组合在一起。

《用于许可和测量IP模块的使用的系统和方法.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)