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

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

Info

Publication number
CN1855815B
CN1855815B CN2005101036552A CN200510103655A CN1855815B CN 1855815 B CN1855815 B CN 1855815B CN 2005101036552 A CN2005101036552 A CN 2005101036552A CN 200510103655 A CN200510103655 A CN 200510103655A CN 1855815 B CN1855815 B CN 1855815B
Authority
CN
China
Prior art keywords
signature
elliptic curve
product
homology
phi
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN2005101036552A
Other languages
English (en)
Other versions
CN1855815A (zh
Inventor
D·Y·交
P·L·蒙哥马利
R·文卡塔森
V·博伊科
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN1855815A publication Critical patent/CN1855815A/zh
Application granted granted Critical
Publication of CN1855815B publication Critical patent/CN1855815B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Algebra (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Transfer Between Computers (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Communication Control (AREA)

Abstract

描述了用于生成和确认签名的技术。在一实现中,一种方法包括通过使用包括在一私钥上的多个同源生成签名,并将该签名和一公钥结合在产品上,其中该公钥被配置成确认该签名。

Description

用于生成和确认基于同源的签名的系统和方法
技术领域
本发明一般涉及签名,且尤其涉及基于同源签名。
背景技术
产品的伪造和盗版是一个日益严重的问题,影响的不仅仅是产品的制造,还有盗版产品的消费者。例如,诸如工具等复制的产品可能没有被制造成拥有与被复制的产品相同的质量。从而,复制的产品可能不适于消费者预期的目的。当消费者相信该产品是可信的时候,情况可能更复杂,从而给消费者对制造商的货物质量一个错误的印象。在另一示例中,产品可以是软件的复制的版本。然而,因为该软件是不可信的,软件可能无法使用该软件可信的版本所能使用的所有功能,诸如在软件本身中包含的特征、对由制造商为软件提供的更新的访问等等。
用于限制产品伪造和盗版的一种技术是使用签名。例如,签名可以使用数学技术来生成。为验证签名,处理签名以识别该签名中是否存在数学性质。如果存在,那么该签名一般被认为是有效的。然而,由于消费者可用的计算资源的数量持续增长,存在一种对应的需求,即,开发用于生成和确认签名的改进的技术,以使日益增长的计算机资源的可用性不能够被用来“破解”签名。
发明内容
描述了用于生成和确认签名的技术。在一个实现中,一种方法包括,通过使用私钥上包括的多个同源并将签名和公钥结合在产品上,来生成签名,其中,公钥被配置成确认签名。
在另一实现中,一种方法包括,使用含有从将多个同源应用于椭圆曲线上一点得到的多个结果的公钥,来接收签名并确认该签名。
在又一实现中,一种计算机可读介质包括签名、含有通过将多个同源应用于椭圆曲线上的一点获得的多个象的公钥、以及可执行来使用该公钥确认签名的一个或多个模块。
附图说明
图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 ) - - σ = m 1 φ 1 ( P ) + m 2 φ 2 ( P ) + . . . + m t φ t ( P ) deg ( m 1 φ 1 + m 2 φ 2 + . . . + m t φ 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上的一点。下面示出对该验证技术的证明:
e 2 ( m 1 φ 1 ( P ) + m 2 φ 2 ( P ) + . . . + m t φ t ( P ) deg ( m 1 φ 1 + m 2 φ 2 + . . . + m t φ t ) , m 1 φ 1 ( Q ) + m 2 φ 2 ( Q ) + . . . + m t φ t ( Q ) )
上述表达式可以被简化为:
e 2 ( m 1 φ 1 ( P ) + m 2 φ 2 ( P ) + . . . + m t φ t ( P ) deg ( m 1 φ 1 + m 2 φ 2 + . . . + m t φ t ) , m 1 φ 1 ( Q ) + m 2 φ 2 ( Q ) + . . . + m t φ t ( Q ) )
令Φ=m1Φ1+m22+...+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”而后被如下分成两部分:
x z = q + r z
在上述表达式中,z=|K|是在有限域K中元素的个数。余数“r”小于|K|,它标识了K的一个元素。该域元素而后作为产品ID的签名“σ”的横坐标(框508)。商“q”用作定位该消息的“提示”。
签名能够被认为是椭圆曲线上一点的横坐标(框510),而不是整个点。例如,椭圆曲线“E”可以如下表示:
                        E:y2=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的λ方法,它们比“硬算”搜索方法渐进更快速,且与硬算方法相比,可以加倍能够被恢复的消息的长度。
结论
尽管本发明是使用对结构特征和/或方法动作专用的语言描述的,然而可以理解,在所附权利要求中定义的本发明不必限于所述的具体特征或动作。相反,揭示了具体特征和动作作为用于实现所要求保护的本发明的示例性形式。

Claims (16)

1.一种用于生成基于同源的签名的方法,包括:
通过使用包括在一私钥上的多个同源生成签名,其中所述签名是使用椭圆曲线加法和同源加法来计算的;
将所述签名与在产品上的公钥相结合,其中,所述公钥被配置成确认所述签名。
2.如权利要求1所述的方法,其特征在于:
所述签名和所述公钥是结合在产品上的;以及
所述签名构成了所述产品的产品标识符的至少一部分。
3.如权利要求1所述的方法,其特征在于,所述多个同源将椭圆曲线E1上的点映射到椭圆曲线E2上的点,且所述私钥还包括:
所述椭圆曲线E1;以及
P、Q,它们是E1上的两个有限点。
4.如权利要求1所述的方法,其特征在于,所述公钥包括,有限域、椭圆曲线E2、配对函数以及应用所述多个同源的象,它在椭圆曲线E1上的一点上求值。
5.如权利要求4所述的方法,其特征在于,所述象是椭圆曲线E2上的点。
6.如权利要求1所述的方法,其特征在于,所述计算是使用下列表达式进行的:
σ = m 1 φ 1 ( P ) + . . . + m t φ t ( P ) deg ( m 1 φ 1 + . . . + m t φ t )
其中“σ”是签名,m1到mt是构成消息“m”的整数,φ1到φt是所述私钥上的同源,P是椭圆曲线E1上的点,且所述签名是同源椭圆曲线E2上的点。
7.如权利要求1所述的方法,其特征在于,所述公钥被配置成通过包括向椭圆曲线上的点应用所述多个同源所得到的多个结果来确认所述签名。
8.如权利要求7所述的方法,其特征在于,所述确认包括确定下列表达式是否保持为真:
e2(σ,m1φ1(Q)+...+mtφt(Q))=e1(P,Q)
其中,“σ”是所述签名,e1和e2是配对函数,P和Q是椭圆曲线E1上的点,m1到mt是构成消息“m”的整数。
9.一种用于确认基于同源的签名的方法,包括:
接收签名,其中所述签名是使用椭圆曲线加法和同源加法来计算的;以及
使用含有将多个同源应用于椭圆曲线上一点得到的多个结果的公钥来确认所述签名。
10.如权利要求9所述的方法,其特征在于,所述签名和所述公钥被包括在产品上。
11.如权利要求10所述的方法,其特征在于,所述产品是计算机可读介质。
12.如权利要求9所述的方法,其特征在于,确认包括确定下列表达式是否保持为真:
e2(σ,m1φ1(Q)+...+mtφt(Q))=e1(P,Q)
其中,“σ”是所述签名,e1和e2是配对函数,P和Q是椭圆曲线E1上的点,m1到mt是构成消息“m”的整数。
13.如权利要求12所述的方法,其特征在于,所述消息“m”用于生成所述签名。
14.如权利要求9所述的方法,其特征在于,所述签名是通过使用包括在一私钥上的多个同源而生成的。
15.如权利要求14所述的方法,其特征在于,所述多个同源将椭圆曲线E1上的点映射到椭圆曲线E2上的点,且所述私钥还包括:
椭圆曲线E1;以及
P、Q,它们是E1上的两个有限点。
16.如权利要求9所述的方法,其特征在于,所述签名是使用下列表达式生成的:
σ = m 1 φ 1 ( P ) + . . . + m t φ t ( P ) deg ( m 1 φ 1 + . . . + m t φ t )
其中,“σ”是所述签名,m1到mt是构成消息“m”的整数,P是椭圆曲线E1上的点,φ1到φt是私钥上的同源,且所述签名是同源椭圆曲线E2上的一点。
CN2005101036552A 2005-04-29 2005-09-01 用于生成和确认基于同源的签名的系统和方法 Active CN1855815B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/119,405 US7617397B2 (en) 2005-04-29 2005-04-29 Systems and methods for generation and validation of isogeny-based signatures
US11/119,405 2005-04-29

Publications (2)

Publication Number Publication Date
CN1855815A CN1855815A (zh) 2006-11-01
CN1855815B true CN1855815B (zh) 2011-02-16

Family

ID=36406512

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005101036552A Active CN1855815B (zh) 2005-04-29 2005-09-01 用于生成和确认基于同源的签名的系统和方法

Country Status (9)

Country Link
US (1) US7617397B2 (zh)
EP (1) EP1717724B1 (zh)
JP (1) JP4818663B2 (zh)
KR (1) KR101153085B1 (zh)
CN (1) CN1855815B (zh)
AU (1) AU2005203526B2 (zh)
BR (1) BRPI0503555A (zh)
CA (1) CA2517807C (zh)
RU (1) RU2005127358A (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100835175B1 (ko) 2006-12-07 2008-06-05 한국전자통신연구원 주파수 선택적 기저대역을 이용하는 디지털 통신 시스템 및그 방법
US8250367B2 (en) * 2008-09-30 2012-08-21 Microsoft Corporation Cryptographic applications of efficiently evaluating large degree isogenies
US12056549B1 (en) * 2015-06-28 2024-08-06 Lcip Jv Method and apparatus for activating a remote device
JP2017212699A (ja) * 2016-05-27 2017-11-30 三菱電機株式会社 暗号化装置、復号装置及び暗号システム
GB201611698D0 (en) * 2016-07-05 2016-08-17 Eitc Holdings Ltd Blockchain-implemented control method and system
EP3367608A1 (en) * 2017-02-28 2018-08-29 Koninklijke Philips N.V. Elliptic curve isogeny based key agreement protocol
WO2019056103A1 (en) * 2017-09-21 2019-03-28 Infosec Global Inc. SUPERSINGULAR ELLIPTICAL CURVED CRYPTOGRAPH KEY AGREEMENT SCHEME WITH THREE PARTS
US10880278B1 (en) 2019-10-03 2020-12-29 ISARA Corporation Broadcasting in supersingular isogeny-based cryptosystems
US10630476B1 (en) * 2019-10-03 2020-04-21 ISARA Corporation Obtaining keys from broadcasters in supersingular isogeny-based cryptosystems
WO2023287427A1 (en) * 2021-07-16 2023-01-19 Pqsecure Technologies, Llc A method and system for computing large-degree isogenies with an odd degree
KR102321149B1 (ko) * 2021-07-27 2021-11-04 주식회사 트리온 쌍방향 광고, 전자상거래 시스템 및 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5982892A (en) * 1997-12-22 1999-11-09 Hicks; Christian Bielefeldt System and method for remote authorization for unlocking electronic data

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5271061A (en) 1991-09-17 1993-12-14 Next Computer, Inc. Method and apparatus for public key exchange in a cryptographic system
TW313642B (en) * 1996-06-11 1997-08-21 Ibm A uniform mechanism for using signed content
FI117077B (fi) * 1998-10-14 2006-05-31 Sonera Smarttrust Oy Menetelmä ja järjestelmä turvamerkinnän käyttämiseksi
US6611597B1 (en) * 1999-01-25 2003-08-26 Matsushita Electric Industrial Co., Ltd. Method and device for constructing elliptic curves
US6697948B1 (en) * 1999-05-05 2004-02-24 Michael O. Rabin Methods and apparatus for protecting information
US6898284B2 (en) * 2000-08-18 2005-05-24 The United States Of America As Represented By The National Security Agency Cryptographic identification and digital signature method using efficient elliptic curve
US7209555B2 (en) * 2001-10-25 2007-04-24 Matsushita Electric Industrial Co., Ltd. Elliptic curve converting device, elliptic curve converting method, elliptic curve utilization device and elliptic curve generating device
US7533270B2 (en) * 2002-04-15 2009-05-12 Ntt Docomo, Inc. Signature schemes using bilinear mappings
US7499544B2 (en) 2003-11-03 2009-03-03 Microsoft Corporation Use of isogenies for design of cryptosystems

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5982892A (en) * 1997-12-22 1999-11-09 Hicks; Christian Bielefeldt System and method for remote authorization for unlocking electronic data

Also Published As

Publication number Publication date
US20060248338A1 (en) 2006-11-02
BRPI0503555A (pt) 2006-12-19
CN1855815A (zh) 2006-11-01
CA2517807C (en) 2014-05-13
KR101153085B1 (ko) 2012-06-04
RU2005127358A (ru) 2007-03-10
JP4818663B2 (ja) 2011-11-16
EP1717724A1 (en) 2006-11-02
EP1717724B1 (en) 2015-07-15
CA2517807A1 (en) 2006-10-29
JP2006311477A (ja) 2006-11-09
US7617397B2 (en) 2009-11-10
AU2005203526A1 (en) 2006-11-16
AU2005203526B2 (en) 2010-05-20
KR20060113329A (ko) 2006-11-02

Similar Documents

Publication Publication Date Title
CN1855815B (zh) 用于生成和确认基于同源的签名的系统和方法
CN108370317B (zh) 向标准的凭证添加隐私
US8185476B2 (en) Digital rights management system protecting consumer privacy
CN109478280A (zh) 区块链实现的方法和系统
US7693286B2 (en) Method of delivering direct proof private keys in signed groups to devices using a distribution CD
CN112104619A (zh) 基于外包密文属性加密的数据访问控制系统和方法
CN104126284A (zh) 生成数字签名
US7792303B2 (en) Method of delivering direct proof private keys to devices using a distribution CD
CN116232639A (zh) 数据传输方法、装置、计算机设备和存储介质
CN114514550A (zh) 将请求分区成区块链的交易
CN111262707A (zh) 数字签名方法及验证方法、设备、存储介质
US11616994B2 (en) Embedding information in elliptic curve base point
JP2005227331A (ja) 機密情報管理システム、機密情報管理方法、および機密情報管理プログラム
CN114785525B (zh) 黑名单库生成方法、装置、设备及存储介质
CN109862008A (zh) 密钥恢复方法和装置、电子设备及存储介质
CN116975935B (zh) 数据比较方法、存储介质及电子设备
US8548160B2 (en) Determination of pairings on a curve using aggregated inversions
CN117240479B (zh) 多方量子签名方法、装置、计算机设备及存储介质
JP2018005089A (ja) 分散値更新装置及び分散値更新プログラム、分散値計算装置及び分散値計算プログラム、分散値検証装置及び分散値検証プログラム
CN115840953A (zh) 一种身份认证方法、装置、终端及可读存储介质
CN118381660A (zh) 一种区域现金中心行为零信任体系构建方法与系统
CN118611913A (zh) 一种基于区块链的业务数据处理方法及系统
MXPA05009211A (en) Systems and methods for generation and validation of isogeny-based signatures

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150424

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150424

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.