用于生成和确认基于同源的签名的系统和方法

文档序号:7624195阅读:114来源:国知局
专利名称:用于生成和确认基于同源的签名的系统和方法
技术领域
本发明一般涉及签名,且尤其涉及基于同源签名。
背景技术
产品的伪造和盗版是一个日益严重的问题,影响的不仅仅是产品的制造,还有盗版产品的消费者。例如,诸如工具等复制的产品可能没有被制造成拥有与被复制的产品相同的质量。从而,复制的产品可能不适于消费者预期的目的。当消费者相信该产品是可信的时候,情况可能更复杂,从而给消费者对制造商的货物质量一个错误的印象。在另一示例中,产品可以是软件的复制的版本。然而,因为该软件是不可信的,软件可能无法使用该软件可信的版本所能使用的所有功能,诸如在软件本身中包含的特征、对由制造商为软件提供的更新的访问等等。
用于限制产品伪造和盗版的一种技术是使用签名。例如,签名可以使用数学技术来生成。为验证签名,处理签名以识别该签名中是否存在数学性质。如果存在,那么该签名一般被认为是有效的。然而,由于消费者可用的计算资源的数量持续增长,存在一种对应的需求,即,开发用于生成和确认签名的改进的技术,以使日益增长的计算机资源的可用性不能够被用来“破解”签名。

发明内容
描述了用于生成和确认签名的技术。在一个实现中,一种方法包括,通过使用私钥上包括的多个同源并将签名和公钥结合在产品上,来生成签名,其中,公钥被配置成确认签名。
在另一实现中,一种方法包括,使用含有从将多个同源应用于椭圆曲线上一点得到的多个结果的公钥,来接收签名并确认该签名。
在又一实现中,一种计算机可读介质包括签名、含有通过将多个同源应用于椭圆曲线上的一点获得的多个象的公钥、以及可执行来使用该公钥确认签名的一个或多个模块。


图1是一个示例性实现中,可操作来使用用于生成和确认签名的技术的环境的图示。
图2是一个示例性实现中,详细示出图1中的产品供应者和客户机的系统的图示。
图3是描述一个示例性实现中的过程的流程图,其中,签名是使用包括图2的私钥的基于同源技术来生成的。
图4是描述一个示例性实现中的过程的流程图,其中,由图3中的过程生成的签名是使用也包括在含有该签名的产品上的图2的公钥来验证的。
图5是描述一个示例性实现中的另一过程的流程图,其中,使用同源技术来验证签名。
在讨论中,在各实例中使用相同的标号来参考相同的结构和组件。
具体实施例方式
综述描述了用于生成和确认签名的技术。签名可以用于各种用途,诸如认证消息发送者、文档签署者的身份等。例如,签名可以被配置为产品标识符(PID)(也被称为产品ID)的全部或部分。该产品标识符而后可以用于确定相应的产品是否是“可信的”。例如,软件开发者可以向诸如CD-ROM等计算机可读介质写入计算机可执行指令(例如,应用程序)。软件开发者也可以在CD-ROM上包括含有使用数学技术生成的签名的PID。
当用户希望在计算机上安装应用程序时,安装过程可以涉及校验,以通过对PID的使用来确定该软件是否可信。例如,安装过程可以确定该PID,尤其是该PID内的签名,是否表现出特定的数学性质。如果是,那么该应用程序被认为是可信的,且安装过程继续。如果不是,则该安装过程可以被终止,以防止安装该应用程序的未授权的副本。各种各样其它技术也可以与签名相结合来使用,关于它们的讨论可以在关于下述附图的说明中找到。
在以下的讨论中,首先描述可使用用于生成和确认签名的技术的示例性环境。然后描述在该示例性环境以及其它环境中可运作的示例性过程。
示例性环境图1是一个示例性实现中,可操作来使用用于生成和确认签名的技术的环境100的图示。所示出的环境100包括产品供应者102、多个客户机104(1)、...、104(n)、...、104(N)和产品分发者106。产品供应者102被进一步示出为包括用于向多个客户机104(1)-104(N)分发的多个产品108(m),其中“m”可以是从1到“M”的任意整数。产品108(m)可以使用各种方法来配置。例如,产品108(m)中的一个或多个可以被配置为物理物品(例如,制造的货物、含有计算机可执行指令的计算机可读介质)、电子内容(例如,可下载的歌曲、软件、数码相片)等等。
产品108(m)而后可以通过递送通道110被递送给产品分发者106以供分发。例如,递送通道110可以表示产品108(m)向产品分发者106的物理递送,诸如从制造厂向“砖砂”商店的物理传送。在另一示例中,递送通道110可以被配置为用于产品108(m)的电子通信的信道,诸如网络。产品分发者106而后可以通过各自的递送通道112(1)、112(n)、112(N),将产品108(m)分发给客户机104(1)、104(n)、104(N),这些递送通道可以和递送通道110相同或不同,例如物理的、网络等。
如上所述,产品的未授权复制是日益严重的问题。因此,产品提供者102可以使用签名系统114,以对多个产品中的每一个生成签名116(m)在一个实现中,产品108(m)中的每一个拥有各不相同的多个签名116(m)中对应的一个。也构想了各种其它实现,诸如用于不同产品组的签名分组。
签名系统114被示出为包括可执行来生成签名116(m)和/或验证签名116(m)的签名模块118。例如,签名模块118可以生成签名116(m),这样每一签名116(m)可以通过可用来确定该签名116(m)是否有效的测试,从而不会是由恶意的一方生成的。
对签名116(m)的验证可以用各种方式来实现。例如,可以向多个客户机104(1)-104(N)中的每一个提供用于确定签名116(m)是否有效而无需与产品提供者102通信的技术。在该示例中,由于不需要与产品提供者102的通信偶合,,因此这样的验证是可“脱机”完成的。在另一示例中,多个客户机104(1)-104(N)中的一个或多个可以向产品提供者102传递签名116(m),这样产品提供者102可以确定该签名是否有效。例如,客户机104(n)可能希望接收被配置为应用程序的对产品108(m)的软件更新。因此,客户机104(n)可将对应的签名116(m)传递(例如,通过因特网、电话等)给产品提供者102。产品提供者102而后可以确定客户机104(n)是否拥有该应用程序的“有效”(即,可信)版本,从而被准许接收更新。在又一示例中,验证可以由除了产品提供者102和客户机104(1)-104(N)之外的另一实体实现,诸如独立的验证服务。对签名116(m)的生成和验证的进一步讨论可以在关于图2的说明中找到。
一般而言,此处讨论的任何功能能够使用软件、固件(例如,固定逻辑电路)、手动处理或这些实现方式的组合来实现。如此处使用的术语“模块”和“逻辑”一般表示软件、固件或软件和固件的组合。在软件实现的情况下,模块、功能或逻辑表示当在处理器(例如,一个或多个CPU)上执行时实现制定任务的程序代码。程序代码可以被存储在一个或多个计算机可读存储器设备中,对其的进一步讨论可以在关于图2的说明中找到。下述生成和验证技术的特征是平台不相关的,意味着该技术可以在含有各种处理器的各种商用计算平台上实现。
图2是详细示出图1的产品提供者102和客户机104(n)的示例性实现中的系统200的图示。产品提供者102被示出为包括多个签名服务器202(s)(其中,“s”可以是1到“S”的任意整数),而客户机104(n)被示出为客户机设备。客户机104(n)可以被配置成各种不同的设备。例如,客户机104(n)可以被配置成计算设备,诸如台式计算机、移动站、娱乐电器、通信上耦合至显示设备的机顶盒、无线电话、游戏控制台等等。从而,客户机104(n)的范围可以从带有充足的存储器和处理器资源的全资源设备(例如,个人计算机、游戏控制台),到带有有限存储器和/或处理器资源的低资源设备(例如,传统的机顶盒、手持游戏控制台)。处于下述讨论的目的,客户机104(n)也可以与操作该客户机的个人和/或实体相关。即,客户机104(n)也可以描述包括用户、软件和/或设备在内的逻辑客户机。
签名服务器202(s)和客户机104(n)被示出为包括各自的处理器204(o)、206(n)和存储器208(o)、210(n)。处理器不受构成它们的材料或在其中使用的处理机制的限制。例如,处理器可以由半导体和/或晶体管(例如,电子集成电路(IC))组成。在这样的上下文中,处理器可执行指令可以是电子可执行指令。或者,处理器的机制或用于处理器的机制,以及计算设备的机制或用于计算设备的机制,可以包括,但不限于,量子计算、光学计算、机械计算(例如,使用纳米技术)等等。另外,尽管分别对签名服务器202(s)和客户机104(n)示出了单个存储器208(o)、210(n),但是可以使用各种类型的存储器和存储器组合,诸如随机访问存储器(RAM)、硬盘存储器、可移动介质存储器等等。
签名模块118被示出为在处理器204(o)上执行且被存储在存储器208(o)中。签名模块118还被示出为包括签名生成模块212和签名确认模块214。签名生成模块212代表用于生成签名的功能。签名确认模块214代表用于验证签名的真实性以确定该签名是否可能是由签名生成模块212或诸如授权第三方等能够访问用于生成该签名的专有技术的实体所生成的功能。
签名生成模块212可执行来生成将通过由签名确认模块214应用的测试的签名116(m),该测试用于确定签名116(m)是否有效,从而不是由恶意的一方所生成的。签名116(m)被示出为包括在产品ID 216(m)中,该产品ID包含在被配置为计算机可读介质的产品108(m)上。产品108(m)(即,计算机可读介质)也被示出为包括用于向客户机104(n)分发的应用程序218(m)(对应于签名116(m)和产品ID216(m))。从而,该示例中的产品108(m)可以被认为是应用程序218(m)和/或含有应用程序218(m)的计算机可读介质。
产品ID 216(m)一般使用字母和/或数字来表示。可以配置产品ID 216(m),以使一实体(例如,客户机104(n)和/或产品提供者102)能够通过将签名116(m)转化成数字序列,并应用数学算法来确定该数字,从而也是签名116(m),是否是由能够访问用于生成签名116(m)的技术的实体(例如,图1中的签名系统114)生成的,来验证产品ID 216(m)。
各种技术可以用来生成签名116(m)。例如,签名服务器202(s)被示出为包括私钥220、公钥222和存储在存储器208(o)中的消息226(k)(其中“k”可以是1到“K”的任意整数)的数据库224。签名生成模块212可执行来使用私钥220处理多个消息226(k),用以生成多个签名116(m)。换言之,签名生成模块212向消息226(k)应用“变换”以获得签名116(m)。关于对消息226(k)的处理以生成签名的进一步讨论可以在关于图3的说明中找到。
在所示的示例中,产品提供者102是执行签名生成模块212来生成签名116(m)软件制造商。签名生成模块212使用拥有特定数学性质的技术来生成签名。签名116(m)而后被包括在产品108(m)上作为产品ID 216(m)的至少一部分。图2的实现中的产品108(m)是计算机可读介质,她通过产品分发者106分发给客户机104(n),且包括用于在客户机104(n)上安装的应用程序218(m)和示出为公钥222(m)的公钥的版本。产品的客户机版本被示出为产品108(m),包括产品ID 216(m)和签名116(m)。
签名确认模块214可执行来验证由签名生成模块212生成的签名116(m)。例如,签名确认模块214可以使用包括在产品108(m)中的公钥222(m)来处理签名116(m),以来获取以下两个回答中的一个(1)是,签名116(m)是有效的;或(2)否,签名116(m)是无效的。这个回答是基于签名116(m)是否展现出特定的数学性质,关于这个的讨论可以在关于图4的说明中找到。在一实现中,使公钥222成为公共的,以允许没有生成该签名的其它实体来验证签名116(m),但是私钥220是被保密的,这样其它实体不能够生成含有该特定数学性质的签名。
继续上述示例,例如,客户机104(n)可能希望接收到对应用程序218(n)的更新。为了“证实”客户机104(n)拥有该软件的授权副本,客户机104(n)向产品提供者102提供产品ID 216(n)。产品提供者102而后可以执行签名确认模块214,以使用确认技术来确定产品ID 216(n),更确切的是签名116(n)是否展示出该特定的数学性质。如果是,则产品ID 216(n)被认为是“真实的”,且客户机104(n)是被授权来接收该更新的。尽管描述了由产品提供者102通过执行签名确认模块214执行的确认,然而确认也可以通过在客户机104(n)以及前述第三方验证器上执行签名确认模块214(n)来实现。
私钥220和公钥222可以用各种方法来配置,以提供生成和验证技术。例如,这些技术可以是基于同源的,在下述示例中它们被配置为在多条椭圆曲线之间的映射。所生成的同源允许使用多条曲线而不是单条曲线来提供签名。这些技术可以应用于相对较短的数字签名(例如,由用户输入或通过低带宽信道发送)、加密(例如,基于身份的加密(IBE)解法,从而允许可记忆的公钥)等等。
例如,公钥222可以包括有限域、椭圆曲线和配对函数,它们可以如下表示K,是有限域;E2,是在K上的椭圆曲线;以及配对函数e2,将E2上的一对点映射到K的一个非零元素。
私钥220可以包括下列信息E1,也是在K上的椭圆曲线;与E2同源(可能和E2相同)一这意味着E1和E2拥有同样的组序;配对函数e1,将E1上的一对点映射到K的一个非零元素;以及P、Q,是E1上的两个有限点;以及多个同源(Φ1,...,Φt)。
多个同源(Φ1,...,Φt)中的每一个将椭圆曲线E1上的点映射到椭圆曲线E2上的点。选择220和222中的配对函数,使得如果ΦE1→E2是同源,则对E1上的所有P1、Q1,有e2(Φ(P1),Φ(Q1))=e1(deg(Φ)P1,Q1)。整数deg(Φ)是deg(Φ)的度数,且deg(Φ)P1表示曲线E1上的椭圆曲线标量乘法。为提供验证,公钥222还可以包括将多个同源应用于Q的结果信息,表示如下Φ1(Q),Φ2(Q),Φ3(Q),...,Φt(Q)。
这些象的每一个都是在E2上的一个点。公钥222还可以包括e1(P,Q)的值,它是域K的一个元素。从而,这个示例中的公钥可以用来验证签名是否展示出一特定的数学性质,而不需要能够使用公钥来生成展示出该数学性质的额外签名,进一步讨论将在随后的附图的说明中找到。
示例性过程下述讨论描述了可以使用前述系统和设备来实现的生成和验证技术。每一过程的各方面可以使用硬件、固件或软件或其组合来实现。过程被示出为一组框,这些框指定由一个或多个设备执行的操作,且这些操作不必限于用于执行由各个框所示的操作的顺序。在下述讨论的部分中,会参考图1的环境100和图2的系统200。
图3是描述在一示例性实现中的过程300的流程图,其中使用基于同源技术来生成签名。接收消息“m”(框302)。消息可以用各种方法来接收,诸如从随机数生成器、制定相应产品特征的描述性串等等。
消息“m”被签名生成模块212认作是一列整数,可以表示如下m1,m2,m3,...,mt例如,该列整数可从如前所述的随机数生成器、转化的字母数字串等中获取。
签名“σ”而后使用私钥220从消息“m”生成(框304)。例如,签名“σ”可以使用包括椭圆曲线加法和同源加法的同源技术,使用从私钥220中获取的信息来计算,其示例在下述公式中示出(SIGMA)--σ=m1φ1(P)+m2φ2(P)+...+mtφt(P)deg(m1φ1+m2φ2+...+mtφt)]]>从而,如上公式所示,共同构成消息m的每一整数(例如,m1,m2,m3,...,mt)与私钥220的对应同源函数(例如,Φ1,Φ2,Φ3,...,Φt)相乘。此外,签名是椭圆曲线E2上的一个点。在上述公式中,分子是使用椭圆曲线加法来计算的,而分母被计算为使用同源加法得到的量的度数。
例如,如前所述,Φ1,Φ2,Φ3,...,Φt是含有被称为度数的数学性质的同源。同源乘以整数是同源。另外,当同一对曲线之间的两个或多个同源相加,结果还是同源。从而,对Φ1,Φ2,Φ3,...,Φt乘以对应的整数(例如,m1,m2,m3,...,mt)得到的结果相加是同源,从而是使用“同源加法”来计算的。对于分子,E2上的椭圆曲线点(同源的象)Φ1(P),Φ2(P),Φ3(P),...,Φt(P)与对应的整数(例如,m1,m2,m3,...,mt)的乘法使用了椭圆曲线加法。应该注意,签名“σ”在不知道私钥220时是不能被计算的。例如,为签署消息,尽管整数(m1,m2,m3,...,mt)是已知的,然而在这个示例中,私钥220中排他地包括同源(例如,Φ1,Φ2,Φ3,...,Φt)和它们在P上的象。σ的分母的度数是一个整数—除法是通过反转分母对共群阶数|E1|=|E2|模来完成的。
生成的签名116(m)和公钥222的版本(被示出为公钥222(m))而后被结合在产品108(m)上(框306),该产品被分发给客户机104(n)(框308)。例如,生成的签名116(m)可以被结合在包含诸如应用程序218(m)等计算机可执行代码的计算机可读介质(例如,CD-ROM)上。生成的签名116(m)而后可以用来验证该计算机可读介质是否是可信的,关于这个的进一步的讨论可以在随后的附图的说明中找到。
图4是描述在一示例性实现中的过程400的流程图,其中,由图3的过程300生成的签名116(m)是使用图2的公钥222(m)来验证的,该公钥也包括在含有签名116(m)的产品108(m)上。客户机104(n)接收包含签名“σ”和公钥222(m)的产品(例如,如前所述的计算机可读介质)(框402)。例如,客户可以在商店里、通过因特网等来购买该计算机可读介质。而后,接收到的产品对客户机是本地可用的,它被示为图2中的产品108(n)、应用程序218(n)、公钥222(n)、产品ID 216(n)和签名116(n)。
然后执行一模块(例如,签名确认模块214(n)),来验证结合在该计算机可读介质上的所生成的签名是否是有效的(框404)。例如,签名确认模块214(n)可以作为应用程序218(m)的安装模块的一部分被包括在内。从而,为了安装应用程序218(m),安装模块启动签名确认模块214(n)来确定由用户输入的签名116(m)是否有效。例如,当签名确认模块214(n)被执行时,它可以利用公钥来确定下列表达式是否保持为真(判定框406)e2(σ,m1φ1(Q)+m2φ2(Q)+...+mtφt(Q))=e1(P,Q)如前所述,域元素e1(P,Q)以及象Φ1(Q),Φ2(Q),...,Φt(Q)被包括在公钥上。如果上述关系式保持为真(判定框406的“是”),那么签名116(m)是有效的(框408)。如果上述关系式不为真(判定框406“否”),那么签名116(m)是无效的(框410)。确认的结果而后由签名确认模块诸如通过用户界面输出给负责安装应用程序218(m)的安装模块等(框412)。例如,验证的结果可以用来通知客户机104(n),该签名是有效的,从而可以获取用于拥有该签名的对应产品的软件更新。该验证可以为各种其它理由而进行,关于这的进一步讨论可以在关于图5的说明中找到。
由此,如以上表达式所示,验证可以使用签名、消息和公钥来执行。从而,任何拥有公钥的客户机能够验证签名是否有效,但是在不知道私钥220的情况下不能够生成签名。
令σ是如公式(SIGMA)中定义的在椭圆曲线E2上的一点。下面示出对该验证技术的证明e2(m1φ1(P)+m2φ2(P)+...+mtφt(P)deg(m1φ1+m2φ2+...+mtφt),m1φ1(Q)+m2φ2(Q)+...+mtφt(Q))]]>上述表达式可以被简化为e2(m1φ1(P)+m2φ2(P)+...+mtφt(P)deg(m1φ1+m2φ2+...+mtφt),m1φ1(Q)+m2φ2(Q)+...+mtφt(Q))]]>令Φ=m1Φ1+m2(Φ2+...+mtΦt。这是从E1到E2的一个同源。使用前述用于公钥和私钥220、222的公式和前述关系式,上述表达式变为e2(σ,Φ(Q))=e2(Φ(P)/deg(Φ),Φ(Q))=e2(Φ(P/deg(Φ)),Φ(Q))=e1(P,Q)显然,e1(P,Q)是包含在用来验证签名116(m)的公钥222中的表达式中的一个。从而,签名116(m)可以无需使用私钥来验证。
在选择公钥时,可以使用使不同的消息产生不同的签名的方法来选择同源。这能够通过保证点Φi(Q)的非平凡小线性组合为非零来完成,因为这一性质保证了,仅给出签名σ,下述的消息恢复过程能够恢复原始消息。后者进而等价于在恰当定义的点阵中不存在小的非零向量。为消除给定的点阵中这一小非零向量的存在,可以使用标准点阵基简化法。上述对同源的使用也将该系统与标准的基于离散对数的系统区分开,因为标准的基于离散对数的系统可能会受到离散对数的攻击,而所述系统不会。
图5是描述一示例性实现中的另一过程500的流程图,其中使用同源技术来验证签名。用户购买了含有包含25个字符的关联产品标识符(ID)的产品(框502)。而后,产品ID被转换为数字“x”(框504)。
而后,由数字“x”计算签名(框506)。例如,数字“x”而后被如下分成两部分xz=q+rz]]>在上述表达式中,z=|K|是在有限域K中元素的个数。余数“r”小于|K|,它标识了K的一个元素。该域元素而后作为产品ID的签名“σ”的横坐标(框508)。商“q”用作定位该消息的“提示”。
签名能够被认为是椭圆曲线上一点的横坐标(框510),而不是整个点。例如,椭圆曲线“E”可以如下表示Ey2=x3+ax+b在上述表达式中,“a”和“b”是有限域K中的常量;而“x”和“y”是K中的变量。E上的一个有限点是满足上述椭圆曲线“E”等式的坐标对(x,y)。如果仅有x是已知的,能够使用域K中的平方根来解出y的可能值。当不存在平方根时,该x可以被排除。
每一候选签名σ=(x,y)和嵌入的消息m而后通过确定该签名是否拥有指示出真实性的数学性质来验证。代码使用商“q”作为哪里可以找到该消息的“提示”(框514)。例如,在验证过程中,一模块(例如,签名确认模块214)被执行来为(m1,m2,m3,...,mt)的每一可能值计算下列表达式,直到找出一个使得该表达式等于e1(P,Q)的消息e2(σ,(m1φ1(Q)+m2φ2(Q)+...+mtφt(Q)))在一实现中,可执行签名确认模块214,以通过利用可由处理器(例如,处理器204(o))在一相对较短时间内执行的计算的次数,使用“穷举搜索”来定位消息。在这个示例中,提示“q”也被用来更高效地定位消息,从而限制了用于计算消息的“步骤”(例如,处理资源)的数量。这样,提示“q”减少了可用的搜索空间。如果找到一对(x,y)和一消息,使得该表达式等于e1(P,Q),那么该签名是有效的,并返回一指出有效性的结果。否则,如果没有找到这样的消息,则该签名被认为是无效的,并返回如前面关于图4所描述的指出无效性的结果。各种搜索技术可用于消息恢复,诸如小型步骤—大型步骤(baby-step-giant-step)或Pollard的λ方法,它们比“硬算”搜索方法渐进更快速,且与硬算方法相比,可以加倍能够被恢复的消息的长度。
结论尽管本发明是使用对结构特征和/或方法动作专用的语言描述的,然而可以理解,在所附权利要求中定义的本发明不必限于所述的具体特征或动作。相反,揭示了具体特征和动作作为用于实现所要求保护的本发明的示例性形式。
权利要求
1.一种方法,包括通过使用包括在一私钥上的多个同源生成签名;将所述签名与在产品上的公钥相结合,其中,所述公钥被配置成确认所述签名。
2.如权利要求1所述的方法,其特征在于所述签名和所述公钥是结合在产品上的;以及所述签名构成了所述产品的产品标识符的至少一部分。
3.如权利要求1所述的方法,其特征在于,所述多个同源将椭圆曲线E1上的点映射到椭圆曲线E2上的点,且所述私钥还包括所述椭圆曲线E1;以及P、Q,它们是E1上的两个有限点。
4.如权利要求1所述的方法,其特征在于,所述公钥包括,有限域、椭圆曲线E2、配对函数以及应用所述多个同源的象,它在椭圆曲线E1上的一点上求值。
5.如权利要求1所述的方法,其特征在于,所述象是椭圆曲线E2上的点。
6.如权利要求1所述的方法,其特征在于,所述签名是使用椭圆曲线加法和同源加法来计算的。
7.如权利要求6所述的方法,其特征在于,所述计算是使用下列表达式进行的σ=m1φ1(P)+...+mtφt(P)deg(m1φ1+...+mtφt)]]>其中“σ”是签名,φ1到φt是所述私钥上的同源,且所述签名是同源椭圆曲线E2上的点。
8.如权利要求1所述的方法,其特征在于,所述公钥被配置成通过包括向椭圆曲线上的点应用所述多个同源所得到的多个结果来确认所述签名。
9.如权利要求8所述的方法,其特征在于,所述确认包括确定下列表达式是否保持为真e2(σ,m1φ1(Q)+…+mtφt(Q))=e1(P,Q)其中,e1和e2是配对函数,P和Q是椭圆曲线E1上的点,m1到mt是构成消息“m”的整数。
10.一种方法,包括接收签名;以及使用含有将多个同源应用于椭圆曲线上一点得到的多个结果的公钥来确认所述签名。
11.如权利要求10所述的方法,其特征在于,所述签名和所述公钥被包括在产品上。
12.如权利要求11所述的方法,其特征在于,所述产品是计算机可读介质。
13.如权利要求10所述的方法,其特征在于,确认包括确定下列表达式是否保持为真e2(σ,m1φ1(Q)+…+mtφt(Q))=e1(P,Q)其中,e1和e2是配对函数,P和Q是椭圆曲线E1上的点,m1到mt是构成消息“m”的整数。
14.如权利要求13所述的方法,其特征在于,所述消息“m”用于生成所述签名。
15.如权利要求10所述的方法,其特征在于,所述签名是通过使用包括在一私钥上的多个同源而生成的。
16.如权利要求15所述的方法,其特征在于,所述多个同源将椭圆曲线E1上的点映射到椭圆曲线E2上的点,且所述私钥还包括椭圆曲线E1;以及P、Q,它们是E1上的两个有限点。
17.如权利要求10所述的方法,其特征在于,所述签名是使用下列表达式生成的σ=m1φ1(P)+...+mtφt(P)deg(m1φ1+...+mtφt)]]>其中,“σ”是所述签名,φ1到φt是私钥上的同源,且所述签名是同源椭圆曲线E2上的一点。
18.一种计算机可读介质,包括签名;公钥,它含有通过将多个同源应用于椭圆曲线上的一点而得到的多个结果;以及一个或多个模块,它们可执行来使用所述公钥确认所述签名。
19.如权利要求18所述的计算机可读介质,其特征在于,还包括用于在客户机上安装和执行的至少一个其它模块,且其中,所述一个或多个模块可执行来基于对所述签名的确认结果,确定是否安装所述至少一个其它模块。
20.如权利要求18所述的计算机可读介质,其特征在于,所述签名是通过使用包括在一私钥上的多个同源而生成的。
全文摘要
描述了用于生成和确认签名的技术。在一实现中,一种方法包括通过使用包括在一私钥上的多个同源生成签名,并将该签名和一公钥结合在产品上,其中该公钥被配置成确认该签名。
文档编号H04L9/10GK1855815SQ20051010365
公开日2006年11月1日 申请日期2005年9月1日 优先权日2005年4月29日
发明者D·Y·交, P·L·蒙哥马利, R·文卡塔森, V·博伊科 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1