首页> 中国专利> 用于在直接匿名认证中安全地计算基点的方法和系统

用于在直接匿名认证中安全地计算基点的方法和系统

摘要

一种计算用于在直接匿名认证方案的签署操作中使用的基点的方法和系统。该方法和系统包括在主机计算设备处计算基点以及在可信平台模块(TPM)设备处校验基点。

著录项

  • 公开/公告号CN103999402A

    专利类型发明专利

  • 公开/公告日2014-08-20

    原文格式PDF

  • 申请/专利权人 英特尔公司;

    申请/专利号CN201180075938.4

  • 发明设计人 J.李;E.布里克尔;W.M.怀斯曼;

    申请日2011-12-27

  • 分类号H04L9/32(20060101);H04L9/08(20060101);

  • 代理机构72001 中国专利代理(香港)有限公司;

  • 代理人张凌苗;马永利

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-17 01:39:31

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-06-20

    授权

    授权

  • 2014-09-17

    实质审查的生效 IPC(主分类):H04L9/32 申请日:20111227

    实质审查的生效

  • 2014-08-20

    公开

    公开

说明书

背景技术

因为计算设备和电子通信网络继续以各种形式激增,所以信息安全仍然是重要的关注。密码技术经常被用于确保电子信息被安全地递送到其预期的接受者,以及确定请求对信息或其他设备的访问的设备和/或过程是否应该被授予这样的访问。公钥密码术是通常使用两个密钥的技术:保持秘密的私钥;和可以被自由地公开以在可信计算设备组中定义成员资格的公钥。虽然公钥和私钥是有关的,但是不可以从公钥可行地确定私钥。

公钥密码术可以被用于实施数字签名方案。一般地,数字签名方案是用于鉴定电子消息或文档的数学框架。如果数字签名被确定是有效的,则可以推断以签名编码的消息起源于可信源并且在转变期间没有被修改。在公钥数字签名方案中,私钥被用于创建消息的数字签名,而相应的公钥被用于检查数字签名的有效性。

直接匿名认证(DAA)方案是用于使用公钥途径的计算设备的匿名认证和鉴定的数字签名方案。直接匿名认证方案准许在计算设备没有泄露关于其身份的信息的情况下通过远程实体(例如软件过程、硬件设备或服务器)校验计算设备的在可信组中的成员资格。基于椭圆曲线的DAA方案是这样的DAA方案类型:在其中定义椭圆曲线,并且使用椭圆曲线的参数来生成用于可信计算设备组的成员的签名密钥。

可信平台模块(TPM)规范是由可信计算组创作(author)的公布的规范,其描述用于校验计算设备的完整性的DAA方案的基于硬件的实施。可以使用术语“TPM”来指代该方案的实施。

包括由可信计算组公布的TPM 1.2版本规范的某些DAA方案在两个设备之间划分以数字签名签署消息的过程。这允许资源密集型计算由具有处理它们的计算能力的设备执行。

附图说明

在附图中通过示例的方式而非通过限制的方式图示了本文描述的发明。为了说明的简洁和清楚,附图中图示的元件未必按照比例绘制。例如,为了清楚,可以相对于其他元件放大一些元件的尺寸。此外,当认为合适时,会在附图中重复标号以指示相应的或类似的元件。

图1是用于计算设备的信息安全系统的至少一个实施例的简化的框图;

图2是针对直接匿名认证安全方案的至少一个实施例的简化的模块图;

图3是针对生成用于计算设备的数字签名的方法的至少一个实施例的简化的顺序图;以及

图4是用于计算和校验可用于创建数字签名的基点的方法的至少一个实施例的简化的流程图。

具体实施方式

虽然本公开的概念容许有各种修改和替代形式,但已经在图中通过示例的方式示出并且将在本文中详细描述它们的具体示例性实施例。然而,应理解不存在将本公开的概念限制到公开的特定形式的意图,而相反地,意图是覆盖落入如由所附权利要求书定义的本发明的精神和范围内的所有的修改、等同物和替代。

在下文的描述中,阐述了诸如逻辑实施、操作码、指定操作数的手段、资源分区/共享/复制实施、系统部件的类型和相互关系以及逻辑分区/集成选择的许多具体细节以便提供本公开的更透彻的理解。然而,本领域技术人员将意识到,可以在没有这样的具体细节的情况下实践本公开的实施例。在其他实例中,没有详细示出控制结构、门级电路和全软件指令序列以免模糊本发明。本领域技术人员以所包括的描述将能够在不进行过度实验的情况下实施适当的功能性。

在说明书中引用的“一个实施例”、“实施例”或“示例实施例”等指示所描述的实施例可以包括特定特征、结构或特性,但是,每个实施例可以不一定包括所述特定特征、结构或特性。此外,这些短语并不一定指同一实施例。此外,当结合实施例来描述特定特征、结构或特性时,认为无论是否明确描述,本领域技术人员在其知识范围内都可以结合其他实施例来实现这样的特征、结构或特性。

可以在硬件、固件、软件或者它们的任何组合中实施本发明的实施例。在计算机系统中实施的本发明的实施例可以包括在部件之间的一个或多个基于总线的互连和/或在部件之间的一个或多个点到点互连。也可以将本发明的实施例实施为由暂态或非暂态的机器可读介质携带或者存储在暂态或非暂态的机器可读介质上的指令,所述指令可以被一个或多个处理器读取和执行。可以将机器可读介质体现为通过机器(例如计算设备)可读的形式的用于存储或传输信息的任何设备、机构或物理结构。例如,可以将机器可读介质体现为只读存储器(ROM)、随机访问存储器(RAM)、磁盘存储介质、光学存储介质、闪速存储器设备、小型或微型SD卡、存储棒、电信号等等。

在图中,可以为了便于描述示出诸如那些代表设备、模块、指令块和数据元素的示意性元素的具体布置或排序。然而,本领域技术人员应理解,在图中的示意性元素的具体排序或布置不意味着暗示要求处理的特定排序或顺序或者过程的分隔。进一步地,在图中包括示意性元素不意味着暗示在所有实施例中都要求这样的元素,或者通过这样的元素代表的特征不可以被包括在一些实施例中或者与一些实施例中的其他元素组合。

一般地,可以使用诸如软件或固件应用、程序、功能、模块、例程、进程、过程、插件、小程序、微件、代码片段和/或其他的任何适合形式的机器可读指令来实施用于代表指令块的示意性元素,并且可以使用任何适合的编程语言、库、应用编程接口(API)和/或其他软件开发工具实施每个这样的指令。例如,可以使用Java、C++和/或其他编程语言实施某些实施例。

类似地,可以使用诸如寄存器、数据存储、表、记录、阵列、索引、散列、映射、树、列表、图、(任何文件类型的)文件、文件夹、目录、数据库和/或其他的任何适合的电子布置或结构实施用于代表数据或信息的示意性元素。

进一步地,在图中,在使用诸如实或虚线或箭头的连接元素来图示在两个或更多其他示意性元素之间或之中的连接、关系或关联的情况下,缺少任何这样的连接元素不意味着暗示不可以存在连接、关系或关联。换言之,在图中可以不示出元素之间的某些连接、关系或关联以免模糊本公开。同样,为便于说明,可以使用单个连接元素来代表在元素之间的多个连接、关系或关联。例如,在连接元素代表信号、数据或指令的通信的情况下,本领域技术人员应理解,如可能需要的,这样的元素可以代表用于实现所述通信的一个或多个信号路径(例如总线)。

本文中,可以使用字母数字字符和/或数学符号或者它们的组合来代表数据值、变量、系数、函数、等式或者它们的部分。应理解,一旦定义,就可以贯穿本公开重复字符或符号,并且除非另有声明,否则字符或符号的这样的重复实例指代与最初定义的相同的字符或符号。

现在参考图1,说明性信息安全系统160包括在基于椭圆曲线的直接匿名认证(DAA)安全方案中通信地耦合到发行者计算设备140和校验者计算设备150的可信平台模块(TPM)平台100。在操作中,发行者140生成可以被用于定义在说明性实施例中包括TPM平台100的可信计算设备组的组公钥。

如下文更详细地描述的,TPM平台100与发行者140接口连接来创建签名密钥。由TPM平台100使用签名密钥来生成数字签名。当TPM平台100期望访问信息或将信息发送到使用基于椭圆曲线的DAA方案保护的另一计算设备时,TPM平台100通过将以数字签名加密的消息发送到校验者150来尝试证明其在可信组中的成员资格。如果数字签名是有效的并且没有被撤回,则TPM平台100的证明在可信组中的成员资格的尝试应该是成功的。

在可信计算组(TCG)的上下文中,TPM平台100可以被体现为可信平台模块和TPM可以通信地耦合到的主机机器的组合。说明性TPM平台100将生成数字签名的任务在TPM设备110和主机130之间划分。根据基于椭圆曲线的DAA方案,主机130计算基点,所述基点是在椭圆曲线上的点,并且TPM设备110在创建数字签名之前校验基点是有效的。为减少静态Diffie-Hellman攻击和/或可能损害数字签名的确实性的其他安全问题的风险,要求主机130使用特别设计为将任意长度的串散列(hash)到在椭圆曲线上的点的散列函数来计算基点。以该方式,主机130被防止在没有TPM设备110的涉及的情况下选择基点,但是仍然能够承担签署过程的大部分的计算负担。

为校验基点,TPM设备110使用输出固定长度的串的常规散列函数计算基点的“x”坐标。因为仅要求TPM设备110计算常规散列函数来输出单个值而不是在椭圆曲线上的点的坐标,所以最小化了TPM设备110的计算开销。

进一步参考图1,说明性TPM设备110包括至少一个处理器112、存储器116、输入/输出(I/O)子系统114、存储器设备118、一个或多个外围设备120和闪速存储器122。在TPM设备110的存储器中存储诸如组成员私钥的密码信息124,并且在TPM设备110上安装DAA逻辑126。在说明性实施例中,在非易失性的闪速存储器122中存储密码信息124,并且DAA逻辑126驻留在I/O子系统114中。在其他实施例中,DAA逻辑126和/或密码信息124的所有或其他部分可以驻留在处理器112可访问的其他位置中。例如,为了较快处理或其他原因,可以在TPM设备110的操作期间将DAA逻辑126和/或密码信息124的部分装载到存储器116中。

可以将TPM设备110体现在任何类型的计算设备中或体现为任何类型的计算设备,诸如例如台式计算机系统、膝上型或平板计算机系统、服务器、企业计算机系统、计算机网络、手持式计算设备或取决于特定应用的其他电子设备。

可以将说明性处理器112体现为一个或多个处理器核心或单个核心的逻辑区段。除高速缓冲存储器以外,处理器112和/或其一个或多个核心包括或者否则通信地耦合到存储器116。可以将存储器116的部分体现为任何类型的适合的存储器设备,诸如动态随机访问存储器设备(DRAM)、同步动态随机访问存储器设备(SDRAM)、双倍数据率动态随机访问存储器设备(DDR SDRAM)和/或其他易失性存储器设备。

处理器112也通信地耦合到I/O子系统114。虽然没有特别示出,但I/O子系统114通常包括存储器控制器(例如存储器控制器中心(MCH)或北桥)、输入/输出控制器(例如输入/输出控制器中心(ICH)或南桥)和固件设备(例如BIOS或UEFI)。当然,在其他实施例中,可以使用具有其他配置的I/O子系统。例如,在一些实施例中,I/O子系统114可以形成片上系统(SoC)的部分并且连同处理器112和TPM设备110的其他部件一起被并入到单个集成电路芯片上。这样,将意识到,在一些实施例中,I/O子系统114的每个部件可以位于共同的集成电路芯片上。

I/O子系统114通信地耦合到存储部118。可以将存储部118的部分体现为诸如盘式存储设备(例如硬盘)、存储卡、存储棒和/或其他的用于存储数据和/或指令的任何适合的设备。在一些实施例中,可以在存储部118中体现操作系统、应用代码和/或数据结构。

I/O子系统114可以通信地耦合到一个或多个外围设备120。取决于例如TPM设备110的预期的使用,一个或多个外围设备120可以包括一个或多个网络接口、图形和/或视频适配器、键盘、触摸屏、显示器、打印机、数据存储设备和/或其他外围设备。进一步地,应意识到,TPM设备110可以包括其他部件、子部件和为了描述的清楚而未在图1中图示的设备。

在说明性实施例中,主机130、发行者140和校验者150是计算设备。虽然主机130、发行者140和校验者150的具体结构的细节已被省略以免模糊本公开,但是应理解这些设备中的每个通常都包括类似于或相似于上文结合TPM设备110示出和描述的那些的一个或多个处理器、存储器和I/O子系统。例如,在一些实施例中,可以将发行者140体现为与计算设备提供商(例如硬件或软件制造商)相关联的计算设备。在一些实施例中,可以将TPM平台100体现为硬件设备(例如平台控制器中心(PCH)、中央处理单元(CPU)或者图形处理器(例如LRB)),其中在硬件设备中体现TPM设备110和主机130。在其他实施例中,可以将TPM设备110和主机130体现为通过网络通信地耦合的单独计算设备。在一些实施例中,可以将校验者150体现为驻留在主机130或者诸如在因特网上的服务器或另一硬件设备的另一计算设备上的软件。在一些实施例中,TPM设备110是具有比主机130显著地少的计算资源(例如处理能力、存储器等等)的设备。

被配置成实施基于椭圆曲线的DAA方案的DAA逻辑132、142、152和密码信息134、144、154被分别地体现在主机130、发行者140和校验者150中的每个中(例如在存储器或存储部中)。下文结合图2-4描述涉及DAA逻辑132、142、152和密码信息134、144、154的细节。

一般地,如在图1中示出的,TPM设备110、主机130、发行者140、校验者150和信息安全系统160的部件通过如双头箭头示意地代表的一个或多个信号路径通信地耦合。可以将这样的信号路径体现为能够促进在分别的设备之间的通信的任何类型的有线或无线信号路径。例如,可以将信号路径体现为任何数量的导线、印刷电路板迹线、通路(via)、总线、点到点互连、介入设备和/或类似物。在图1中使用具有虚线的双头箭头来指示可以将信号路径体现为可以包括公共或私有LAN、以太网网络、因特网和/或其他的有线或无线的通信网络。

现在参考图2,示出了说明性DAA方案200。DAA方案200包括计算机指令、模块、例程、过程等等210、212、214和216,其部分由TPM平台100、TPM设备110、主机130、发行者140和校验者150执行。在块210处,发行者140生成包括椭圆曲线参数的DAA方案的域参数。发行者140使用域参数来生成组发行密钥或者“主”密钥。发行者140也使用域参数来生成可以用于定义可信计算设备组的组公钥。

在块212处,发行者140使用主密钥来将独特的签名密钥发行到可信组的每个成员(例如TPM平台100)。在没有泄露关于主密钥的任何信息的情况下生成签名密钥。换言之,发行者140将主密钥保持为秘密。签名密钥包括独特的组私钥和成员资格证书。如在说明性实施例中示出并且在下文中结合图3描述的,创建用于TPM平台100的签名密钥的过程涉及在发行者140和TPM平台100之间的交互。

在块214处,除了其他参数以外,TPM平台100还使用其签名密钥、组公钥和由校验者150供应的基名来生成数字签名并且在没有泄露关于组成员私钥的任何信息的情况下以数字签名签署消息。换言之,组成员私钥被用于创建数字签名,但是数字签名不包括关于组成员私钥的任何信息。根据说明性实施例,数字签名可以被称为“DAA签名”。

在一些实施例中,可以随机地生成基名(例如它是诸如“                                                ”的特殊符号)。在随机地生成基名的情况下,得到的数字签名将是真正匿名的(即每个数字签名将是独特的,因为每次创建签名都生成不同的基名)并且因此是不可链接的。在其他实施例中,可以由校验者150供应基名。如果基名由校验者150供应,则其可以在多个数字签名中使用,并且那些数字签名被认为是可链接的。如在说明性实施例中示出并且在下文中结合图3和4描述的,创建用于要通过TPM平台100发送的消息的数字签名的过程涉及在TPM设备110和主机130之间的交互。

在块216处,校验者150使用组公钥来验证从计算设备(例如TPM平台100)接收的数字签名。更具体地,校验者150在不知道组成员私钥的情况下确定数字签名是否已由已被发行有效组成员私钥的计算设备创建。可选地,校验者150也可以确定数字签名是否在撤回列表上,即数字签名是否已经由发行者140撤回,即使它有效。

现在参考图3,示出了用于实施DAA方案200的说明性方法300。除其他之外,如下文示出的和描述的,方法300的执行还涉及通过发行者140、TPM设备110、主机130和校验者150和在发行者140、TPM设备110、主机130和校验者150之中的数据传输310、312、314、316、318、320、322、324、326、328。应理解,说明性方法300只是基于椭圆曲线的DAA方案的一个示例,并且本公开的方面更一般地适用于任何基于椭圆曲线的DAA方案。而且,应理解,用于标识方法300的步骤或过程的顺序号码(例如(1)、(2)、……)仅为了可读性被提供,并且不意味着暗示要求以任何特定排序执行所有列举的步骤或过程。

在事件310处,发行者140输出组公钥gpk = (Q1, Q2, W, T1, T2, T3, T4) 并且使组公钥对校验者150是可访问的(例如通过信号路径或网络上的数字传输)。在事件310之前,发行者140执行一系列的数学过程(例如在块210处)来确定组成组公钥的参数,如下:

(1)发行者140选择大素数阶p的非对称双线性组对(G1, G2)以及相关联的配对函数e: G1× G2 → GT,其中G1和G2是椭圆曲线,G1是基点B位于其上的椭圆曲线,p是素数,并且e是被配置成将在G1中的点和在G2中的点映射成在GT中的元素的数学配对函数。一般地,p是大素数。通过如针对特定应用设计的DAA方案的安全强度确定p的大小。在一些实施例中,可以将安全强度设置为256比特,而在其他实施例中,可以使用80比特、112比特或128比特的安全强度或者更高或更低的安全强度。

(2)然后,发行者140使用随机数生成器随机地选择G1的点P1,其中P1包括在G1上的点的x和y坐标。

(3)然后,发行者140使用随机数生成器随机地选择G2的点P2,其中P2包括在G2上的点的x和y坐标。

(4)发行者140选择两个散列函数H1: {0, 1}* → Zp和H2: {0, 1}* → G1,其中H2是将串散列到在G1中的元素的特殊的散列函数,H1是将串散列到固定长度的串的常规散列函数,并且Zp是小于p的非负整数的集合。更具体地,H2是把为任意长度消息的基名串bsn作为输入并且输出为G1的元素的B的特殊的散列函数,即B= H2(bsn)。用于使用H2计算B的步骤如下:

(a)设置计数器,i = 0,其中I是32比特的无符号整数。

(b)计算x = Hash(I || bsn) mod q,其中Hash()是常规散列算法。

(c)计算t = (x3 + a x + b) mod q。

(d)计算y = SquareRoot(t) mod q。

(e)如果计算平方根失败,则设置i=i+1并且返回到步骤(b)。

(f)设置B = (x,y)。

(g)如果余因子(cofactor)h >1,则计算[h]B并且输出B。

(5)发行者140使用随机数生成器从G1选择随机元素Q1、Q2,其中Q1和Q2中的每个都包括在G1上的点的x和y坐标。

(6)发行者140从Zp选择随机整数y,其中Zp是小于p的非负整数的集合,例如{0, 1, 2,…, p-1}。发行者140计算W = [y]P2,其中[y]P2表示在椭圆曲线G2上的点乘。

(7)发行者计算T1 = e(P1, P2)、T2 = e(Q1, P2)、T3 = e(Q2, P2)和T4 = e(Q2, W),其中e是上文描述的配对函数。

(8)发行者140输出以下内容:定义DAA方案的域参数 = (G1, G2, GT, p, e, P1, P2, H1, H2),并且也输出组公钥 = (Q1, Q2, W, T1, T2, T3, T4)以及组发行密钥 = y。

事件312、314和316涉及授予TPM平台100在与组公钥gpk相关联的可信组中的成员资格的过程(例如图2的块212)。在事件312处,发行者允许TPM平台100访问Zp,使得TPM平台100可以选择组成员私钥。在事件312之前,发行者140执行以下步骤:

(1)发行者选择现时标志(nonce)nI ∈ {0, 1}t。一般地,现时标志是仅使用一次以签署密码通信的任意数。例如,现时标志可以是随机或伪随机数。

(2)发行者将nI发送到TPM平台100(或者否则允许TPM平台100对nI的访问)。

在事件312处,TPM平台100:

(3)从Zp随机地选择组成员私钥f。在事件312之后,TPM平台100做以下步骤:

(4)TPM平台100从Zp随机地选择整数r。

(5)TPM平台100使用在椭圆曲线G1上的点乘计算F = [f]Q1和R = [r]Q1

(6)TPM平台100计算c = H1(p, P1, P2, Q1, Q2, W, F, R, nI)。

(7)TPM平台100计算s = (r + c · f ) mod p,其中mod是模数算术运算。

在事件314处,TPM平台100:

(8)将组成员私钥(F, c, s)的提交参数(commitment parameter)发送到发行者140(或者否则允许发行者140对(F, c, s)的访问)。在事件314之后,由发行者140执行以下操作:

(9)发行者140使用在椭圆曲线G1上的点乘计算R = [s]Q1 – [c]F。

(10)发行者140校验c = H1(p, P1, P2, Q1, Q2, W, F, R, nI)。这可以通过计算等式的右手侧的散列值并且将结果与如上文通过TPM平台110计算的c进行比较来完成。

(11)发行者140从Zp选择随机整数x。

(12)发行者140计算A = [1/(x+y)](P1 + F)。

在事件316处,发行者140:

(13)设置(A, x)作为用于TPM平台100的成员资格证书并且将其发送到TPM平台100(或者否则允许TPM平台100对(A, x)的访问)。在事件316之后:

(14)TPM平台100通过检查e(A, W + [x]P2) = e(P1 + F, P2)来校验(A, x)。如果TPM平台100成功地校验成员资格证书(A, x),则:

(15)针对平台的签名密钥是(f, A, x),其中f是组成员私钥并且(A, x)是成员资格证书。

一旦TPM平台100已获得签名密钥,TPM平台100就可以创建DAA签名并且使用DAA签名来签署消息。事件316、318、320、322、324、326和328涉及DAA签名创建和签署过程。如在图3中示出的,说明性DAA签署过程由TPM设备110和主机130联合执行。使用组公钥(Q1, Q2, W, T1, T2, T3, T4)、组成员签名密钥(f, A, x)、链接基名bsn、现时标志nV ∈ {0, 1}t和要签署的消息m ∈ {0, 1}*,说明性签名过程如下:

(1)TPM设备110访问组成员私钥f,而主机130被给予对成员资格证书(A, x)的访问。

(2)根据方法400确定基点B,所述基点B是在椭圆曲线G1上的具有x和y坐标B.x和B.y的点,在图4中示出并且在下文中描述方法400的说明性实施例。事件318、320和322涉及B的确定。一旦B已被确定和校验:

(3)TPM设备110使用在椭圆曲线G1上的点乘计算K = [f]B。

(4)TPM设备110使用随机数生成器从Zp选择随机整数rf

(5)TPM设备110使用在椭圆曲线G1上的点乘计算R1 = [rf]B和R2t = [rf]Q1

在事件322处,TPM设备110:

(6)将主机预计算结果(B, K, R1, R2t)发送到主机130(或者否则允许主机130对(B, K, R1, R2t)的访问)。

在事件322之后:

(7)主机130从Zp选择随机整数a并且计算b = (a · x) mod p。

(8)主机130使用在椭圆曲线G1上的点乘计算T = A + [a]Q2

(9)主机130使用随机数生成器从Zp随机地拾取三个整数rx、ra、rb

(10)主机130使用配对函数e和在椭圆曲线G1上的点乘计算R2 = e(R2t – [rx]T + [rb]Q2, P2) · T4ra

(11)主机130计算主机摘要(host digest)ch = H1(p, P1, P2, Q1, Q2, W, B, K, T, R1, R2, nV)。

在事件324处,主机130:

(12)将主机摘要ch发送到TPM设备110(或者否则允许TPM设备110对ch的访问)。

在事件324之后:

(13)TPM设备110选择现时标志nT ∈ {0, 1}t

(14)TPM设备110计算c = H1(ch, nT, m)。

(15)TPM设备110计算sf = (rf + c · f) mod p,其中mod是模数算术运算。

在事件326处,TPM设备110:

(16)将DAA签名的TPM部分(c, nT, sf)发送到主机130(或者否则允许主机130对(c, nT, sf)的访问)。

在事件326之后:

(17)主机130计算sx = (rx + c · x) mod p、sa = (ra + c · a) mod p、sb = (rb + c · b) mod p,其中mod是模数算术运算。

在事件328处,主机130:

(18)输出匿名数字签名σ = (B, K, T, c, nT, sf, sx, sa, sb)。

当校验者150接收数字签名时,其使用以下输入校验签名:消息m、是任意长度的串的链接基bsn、现时标志n∈ {0, 1}t、数字签名(B, K, T, c, nT, sf, sx, sa, sb)和组公钥(Q1, Q2, W, T1, T2, T3, T4)。在说明性实施例中,校验者150可以:

(1)校验B、K、T是在椭圆曲线G1中的元素。这可以通过针对点B、K和T中的每个的x和y坐标检查是否y2 = x3 + ax + b来完成。

(2)校验sf、sx、sa、sb是在Zp中的整数。这可以通过确定整数sf、sx、sa和sb是否是具有小于p的值的非负整数来完成。

(3)如果bsn ≠ ⊥(即bsn不是随机的),则校验B = H2(bsn)。

(4)计算R1 = [sf]B – [c]K。

(5)计算R2 = e(T, [–sx]P2 – [c]W) · T1c · T2sf · T3sb · T4sa

(6)校验c = H1(H1(p, P1, P2, Q1, Q2, W, B, K, T, R1, R2, nV), nT, m)。这可以通过计算等式右手侧的散列值并且将结果与如上文由TPM平台110计算的c进行比较来完成。

(7)可选地,调用撤回检查过程。

(8)如果任何上文的校验步骤失败,则校验者150输出0(指示无效签名);否则,校验者150输出1(指示有效签名)。

现在参考图4,示出了用于执行上文的签署过程的步骤(2)的说明性方法400。在块410处,主机130确定任意长度的基名串bsn是随机的(例如 bsn = ⊥)还是由校验者150供应的链接基名。如果bsn = ⊥,则主机130选择随机bsn串。由校验者150供应的基名的某些示例包括与校验者150相关联的独特的名称、IP地址或web地址或者校验者150的公钥。图3的事件318图示了主机130确定bsn,以虚线箭头指示可以从校验者150获得bsn。

在块412处,主机130使用上文描述的被配置成将串散列到在椭圆曲线上的点的专用散列函数计算B = H2(bsn)。中间结果计数器i值也是输出,其是成功找到在椭圆曲线上的点的散列迭代的计数器i的值。在说明性实施例中,i是32比特无符号整数。如上所述,B是在椭圆曲线G1上的点,并且因此包括“x”坐标和“y”坐标,例如B.x和B.y。

在块414处,主机130将基点、计数器和基名串(B, i, bsn)发送到TPM设备110,或者否则允许TPM设备110对(B, i, bsn)的访问,如通过图3的事件320示出的。在块416处,TPM设备110校验B是在G1中的有效的点。这可以通过计算B.x3 + a * B.x + b并且将结果与B.y2进行比较来完成。如果B是在G1中的有效的点,则B.y2 = B.x3 + a * B.x + b。

在块418处,TPM设备110校验B的x坐标B.x = Hash(i || bsn) mod q,其中Hash()是诸如标准散列函数SHA-256或者被配置成将任意长度的串散列到固定长度的串的任何其他适合的抗碰撞散列函数的常规散列函数;到Hash()函数的输入是以基名串bsn填充(pad)或并置(concatenate)的计数器值i;并且mod是模数算术运算(“以……取模”)。如果在块416和418处由TPM设备110执行的校验检查的任意一个或两者失败,则TPM设备110将B拒绝为无效的并且不生成数字签名。如果在块416和418处由TPM设备110执行的校验检查的两者是成功的,则签署过程如上述地继续。

在特定的基于椭圆曲线的DAA方案的上下文中描述了方法400,然而,应理解方法400的方面可以应用于任何基于椭圆曲线的DAA方案。同样,虽然可以以特定排序列举本文公开的特定过程或方法的步骤,但应理解这样的排序仅仅是说明性的,并且在其他实施例中,特定过程或方法的任何步骤或者单独的方法或过程本身可以与其他步骤、方法和/或过程同时地执行和/或以不同的顺序排序执行。

虽然在图中和上述描述中已详细图示和描述了本公开,但是这样的图示和描述将被相称地认为是示例性的而非限制性的,应理解仅示出了和描述了说明性实施例,并且期望保护落在本公开的精神内的所有改变和修改。进一步地,虽然已在基于硬件的事务存储器系统的上下文中描述了本公开的方面,但是将理解各种方面具有例如在不同于TPM的上下文中以及在任何基于椭圆曲线的DAA应用中的其他应用,在所述任何基于椭圆曲线的DAA应用中,签署操作在两个设备之间分割,其中一个设备与另一个设备相比具有对更大的计算资源的访问。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号