CN1264305C - 生成加密签名以及与产品副本一起使用此类签名的技术 - Google Patents

生成加密签名以及与产品副本一起使用此类签名的技术 Download PDF

Info

Publication number
CN1264305C
CN1264305C CN99807748.8A CN99807748A CN1264305C CN 1264305 C CN1264305 C CN 1264305C CN 99807748 A CN99807748 A CN 99807748A CN 1264305 C CN1264305 C CN 1264305C
Authority
CN
China
Prior art keywords
key
signature
message
mark
credible signature
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.)
Expired - Fee Related
Application number
CN99807748.8A
Other languages
English (en)
Other versions
CN1306714A (zh
Inventor
拉玛拉石南·R·范卡特森
彼得·L·蒙特高莫利
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
Priority claimed from US09/102,851 external-priority patent/US6163841A/en
Priority claimed from US09/102,948 external-priority patent/US6209093B1/en
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN1306714A publication Critical patent/CN1306714A/zh
Application granted granted Critical
Publication of CN1264305C publication Critical patent/CN1264305C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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/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
    • 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/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
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/007Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
    • G06F2211/008Public Key, Asymmetric Key, Asymmetric Encryption

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)
  • Pure & Applied Mathematics (AREA)
  • Bioethics (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Analysis (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Optimization (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)
  • Credit Cards Or The Like (AREA)
  • Facsimile Transmission Control (AREA)

Abstract

为要签名的给定报文,生成可信加密签名并且正确验证此签名的技术,其中从该报文签名者发起的签名报文的接收者可以验证该签名。具体而言,对于给定的诸如数字产品副本标识符(83,93)之类的报文,本技术根据公开密钥加密系统,通过使用从有限域上面之椭圆曲线上的多个点中选择的发生器值,形成可信签名(87,97)。该可信签名是通过使用该发生器值以及三个密钥,即公开密钥、私有密钥和保密密钥生成的,从而大大提高了与通过使用常规双密钥公开密钥加密系统生成的加密签名有关的安全性。通过连接给定产品副本的标识符与其相应的可信签名,可以形成唯一的产品副本标记。随后,当用户在计算机(200)上安装该副本时,该用户在安装程序提示时输入该标记,安装程序再秘密验证该标记中包含的签名,以便继续进行安装或提前终止安装。

Description

生成加密签名以及与产品副本 一起使用此类签名的技术
本发明涉及加密技术,具体地说,涉及用于以下处理的技术:对于要签名的给定报文,生成一个可信的加密签名,并适当验证此签名的技术,其中由报文签名者发起的签名报文的接收者,能够秘密验证以上加密签名。
几个世纪以来,只要在两个个体之间传递信息,该信息就会受到第三方侦听、偷听、泄密和/或讹误的影响。显然,安全保护信息以避免此类行为的问题已经存在很长时间了。
传统上,通过这些年来开发的越来越复杂的加密技术,解决了上述问题。这些技术中的一类技术涉及使用基于密钥的密码。具体而言,通过基于密钥的密码,将共同构成报文的可理解数据序列,即明文,用加密算法,都数学变换为表面上不可理解的数据,即所谓的密文。该变换不仅是完全可逆的,即在密文必须能够可逆到其对应原始明文的意义上是双向的,同时必须以一一对应为基础,即只能将明文的各元素,变换到一个且仅一个密文元素。此外,生成任意给定密文的特定密码,必须足以免受密码分析的危害。为了提供所要求的安全性级别,选择一个唯一密钥,该密钥仅定义一个唯一对应的密码,即在可能范围内,避免许多不同密钥分别在相同明文—密文通信之间产生可逆变换的情况。所有加密技术的强度,以及由此提供的防止第三方侵入的保护程度,与第三方进行密码分析所需要的时间成正比,即与在不了解密钥的情况下,借助基于密钥的密码,将密文成功转换为对应明文所需要的时间成正比。实际上,尽管不存在完全不受密码分析影响的加密技术,但需要大量计算以及相当长的时间间隔,因此在不了解其密钥的情况下,给定破译密码所需要的可用计算技术,将有效地使众多技术足以安全确保其广泛采用和使用。在这点上,就在几年以前,如果密码具有此类复杂度,即破译此密码需要的计算为几人年或更多,则考虑到当时可用的处理技术状态,许多人还认为基本的密码处理技术的安全性足以确保其使用。
公开密钥算法是一种基于密钥的加密程序。在此算法中,各通信方生成一公开私有密钥对。各方将他(她)的公开密钥张贴到可公开访问的公告牌、服务器或其他设施上,但秘密保持对应的私有密钥。本质上,希望加密明文报文,然后发送到另一方(即目的方)的发起方,将首先访问目的方的公开密钥,使用该公开密钥将明文报文加密为密文报文,并将密文报文发送到目的方,其中双方使用相同的公开密钥算法。在接收到密文报文后,目的方将使用他(她)的私有密钥,来解密该报文,以恢复原始明文。通过使用非常特殊的算法,准确计算密钥,以便在保证完全可逆性的条件下,提供要求的安全性级别。
尽管公开密钥加密系统能够提供非常安全的加密,其中考虑到破译公开密钥密码所需要的绝对运算次数极多,达到破译公开密钥密码是完全不可能的程度,但是此类系统的确具有许多限制其使用的缺点。公开密钥系统的一个主要缺点是,它依赖于携带一个相当长的位序列的密钥和模数。例如,模数的长度容易达到1024位,而各密钥可由数百位的序列构成。在某些应用中,例如在能够轻易存储密钥,对密钥建立索引,并能够在需要时访问密钥的加密应用中,对用户而言,密钥的长度几乎没有什么实际问题。而对于其他应用,上述长密钥序列,即使转换为字母数字数据,也会生成妨碍用户手工输入的超长字符串。事实上,公开密钥系统的极端安全性的根源在于,其密钥和模数均使用很长的位序列。如果模数显著变短,则很容易破译经过加密的报文,因此,很容易危及基本系统的安全性。
计算技术一直在快速发展。仅仅几年前还未听说过的、采用先进技术并具有很高速度的处理器,正在以不断下降的价格大批上市。因此,以前认为不具备破译所谓的“安全”加密密码所需要的足够处理能力的个人计算机和工作站,如果具备现有能力和先进技术,则能够为第三方提供有效破译同一密码的必需能力。现在仅需很少一点时间,就能完成以前需要十年时间才能完成的计算。因此,随着技术的发展,加密技术也在步伐一致地前进,以不断开发越来越先进的加密技术,从而抵挡越来越强烈的密码分析。
完全抛开加密技术不论,至少在此前的十年中,计算机软件生产商一直遭受并继续遭受非授权的第三方对其产品的大量非授权使用。造成上述情况的部分原因在于,能够比较容易地复制包含软件程序的分发介质,如磁盘或CD-ROM。为了尽量阻止上述非授权使用,通常与软件包产品的各合法副本一起,分发一个比较长的字母数字标记,并且当用户在计算机上安装该副本时,提示用户输入以上标记。具体而言,该副本包含一个需要用户首先加载并执行的安装程序,以便开始并顺序完成整个安装过程。通常,在该安装过程的早期,该程序将提示正在安装此副本的用户手工输入该标记。例如,该标记可以包含十位或更多位。在通过光盘(CD)分发的情况中,将该标记印刷在粘贴在装有CD的各盒上的标签上。对于基于磁盘的分发,通常将该标记印刷在证书上,或软件包内的其他插页上。无论如何,一旦用户完全输入了该标记,并用信号通知了计算机,通常安装程序就试图通过单击显示器上显示的“确定”按钮(或类似物),验证该标记,以确定正在安装的特定副本是否为授权版本。如果该标记有效,则安装过程继续;否则,提前终止安装过程。其基本前提是,合法获得有效副本的各用户(即被许可人),将具有生产商提供的完整包装,因此,拥有有效标记;而仅获得程序副本本身,并没有附随包装和/或插页的非授权用户,将没有该标记。考虑到标记的长度,用户随机窃取有效标记的可能性是非常低的。因此,试图安装非授权副本的用户,将会不停地输入错误标记,实际上,他(她)将永远不能成功安装所获得的程序副本,从而使该副本毫无用处。
不幸的是,已经在实践中证明,很容易识别用于生成此类标记的基本算法,并且似乎已经在广泛地非法传播。因此,考虑到该算法的明显可用性,非授权用户经过某些努力,能够获得他(她)试图安装的程序的标记。因此,常常挫败生产商阻止使用此类非授权副本的努力。
显然,软件生产商由于其产品的非授权副本而损失收入。此外,软件生产商经常对其产品提供某种形式、或另一种形式的客户支持。当试图将此类支持限于被许可人时,客户支持人员通常要求用户首先提供与其寻求支持的产品副本有关的标记,作为获得支持的条件。考虑到非授权用户容易得到有效标记,软件生产商很难区分被许可人和此类非授权用户,以便向被许可人提供支持,同时拒绝向后者提供支持。因此,生产商通常在不经意地向非授权用户提供支持,从而导致不必要的附加支持费用。如果指定软件产品的非授权用户数目很大,则与该产品有关的额外费用将非常显著。
因此,存在允许软件生产商明显降低其软件产品之非授权复制发生率的技术需求。此技术应唯一标识该产品的各副本,并允许确定特定副本的真实性。此技术应当包括,通过公开密钥系统,以密码方式生成一个十分安全的标识符(即,在计算机技术的现有状态和期望进展下,在不了解密钥的情况下,第三方将不可能生成一个有效标识符)。此外,该标识符应足够长,以确保其安全性,但又不能太长,以便在需要时,如在安装过程中或在获得产品支持的过程中,妨碍用户手工提供该标识符。通过使用此技术,软件生产商应能够明显降低其软件产品的非授权使用,以及由此引起的相关费用。同时,这样做能够经济地允许生产商,向其被许可人提供其他服务,如推销,从而提高被许可人对产品和生产商的双重满意度。
本发明通过根据公开密钥密码系统,使用从有限域上面的椭圆曲线上的各点中选择的一个发生器值,生成诸如数字产品副本标识符之类的给定报文的可信加密签名,有利地满足了上述需求,并克服了现有技术的不足。我们的技术使用该发生器值连同三个密钥,即公开密钥、私有密钥和保密密钥,一起生成可信签名,从而大大提高与通过使用常规双密钥公开密钥加密系统生成的加密签名有关的安全性。
通过使用我们的发明,在当前的可能领域内,并且在不了解保密密钥的情况下,仅仅知道公开密钥和私有密钥,并不能生成包含可信签名的新的签名报文对。
根据本发明的技术,给定特殊椭圆曲线上的各点,选择该曲线上某个点的值作为发生器的值。私有密钥是随机选择的。公开密钥定义为发生器的值和私有密钥的预定函数,特别是用私有密钥取发生器值的幂。保密密钥用于生成一个伪随机数。然后,通过该发生器、伪随机数以及一个报文(诸如随机选择的标识符)的预定函数,生成可信签名的第一部分。具体而言,首先用伪随机数值取发生器值幂,以产生一个值,然后再将该值与报文连接在一起。接着,通过预定的散列(hash)函数处理由连接产生的数,从而产生可信签名的第一部分。根据该第一部分、伪随机值以及私有密钥的预定函数,生成可信签名的剩余部分。最后,通过将签名的两个部分连接起来,生成完整的可信签名。
通过连接标识符与可信签名,生成诸如与软件产品副本一起使用的二进制标记。将二进制标记转换为字母数字形式,然后与产品副本联系起来,其通常采取的方法是,将其印刷在粘贴在该副本包装上的标签上。将公开密钥和发生器值,存储在其产品副本中的适当文件内,以便在随后的客户计算机上安装时,供副本验证使用。
在安装产品副本时,首先通过在客户计算机上,使用发生器值、公开密钥和完整标记,特别是用户输入的标记和签名,计算签名的第一部分,来验证用户输入的签名。此后,对照用户输入的标记中包含的该签名的相同部分的值,比较第一部分的值,以确定上述两个值是否完全匹配。如果上述匹配存在,则输入的签名可信,并且继续安装此副本;否则,签名不可信,提前终止安装过程。
使用三个不同阶段实现本发明,并生成产品副本标记:(a)只进行一次的初始化,通常由软件生产商进行,以生成各种参数值;(b)标记生成,使用初始化过程中生成的参数值,在介质复制场所重复进行,以生成各不同产品副本的包含可信签名的相应标记,以便与该副本一起使用;以及(c)验证,在执行安装程序期间,分别在用户场地相继发生,以便验证用户输入的、与该用户试图安装的特定产品副本有关的标记中的签名。
通过连同附图一起考虑以下详细说明书,将更容易理解本发明的技术,其中附图为:
图1表示使用本发明之技术的CD-ROM生产系统5的高级的简化框图;
图2表示典型客户计算机200的高级框图,其中客户计算机在从图1所示的系统5生产的CD-ROM中安装程序时,说明性地利用本发明;
图3表示图2所示的客户计算机200的框图;
图4为一个流程图,说明在图1所示的计算机10中执行的标记生成过程400;以及
图5为一个流程图,说明在图2和图3所示的客户计算机200中执行的验证过程500。
为了便于理解,尽可能使用相同的参考号指明附图共有的相同部件。
在考虑下述详细说明之后,熟练技术人员将清楚认识到,可以在要求发送者生成指定报文之加密签名的、各种应用的任意应用中,利用本发明的技术。我们的发明特别(并不仅仅)适用于:在为从公共发送者,即签名者,发出的一连串的特有报文生成签名的情况中使用。各结果签名不仅提供较高的安全性,即不能进行密码分析,而且还可以验证是从唯一的公共签名者发出的。在这点上,通过使用作为有效签名集之成员的公开密钥,可以公开验证上述各签名,此外,也可以使用保密密钥,来秘密地唯一验证各签名。其优点在于,通过使用我们的发明,即使第三方(不是预定的签名者)通过密码分析,确定了违法生成对其接收者而言看似有效的签名的方法,第三方将仍然不能正确验证其接收者的特定签名。为了简化以下讨论,我们将在下述范围内讨论我们的发明,生成将在相应标记内使用的签名,以便在诸如客户个人计算机(PC)上的安装过程中,验证特定副本,其中该标记本身与某个软件产品的给定副本唯一关联。
A.使用环境
考虑图1,该图表示CD-ROM生产系统5的高级的简化框图。利用其基本形式表示的上述系统,包含计算机10,CD刻录机50和打印机60。此系统生产包含共同实现某个应用程序之完整副本所需的所有文件的CD-ROM,如用于包含在软件产品包中的内含物。例如,该产品可以为:字处理程序,电子表格程序,共同提供的此类程序的套件,操作系统,或其生产商作为一个整体生产、分发的任意其他软件产品包。
系统5不仅复制实现给定副本所需的所有文件,而且此系统还生成一个字母数字标记,通常将此标记印刷在一张标签上,然后粘贴到装有该CD-ROM的容器、或放置该CD-ROM的包装盒上。此标记实现两种功能:(a)它唯一标识与其有关的特定CD-ROM,以及(b)通过本发明,以密码方式验证它是该特定CD-ROM而不是其他CD-ROM的标记。至于后一种功能,在将此产品从特定CD-ROM安装到PC(后面将连同图2一起大致说明此过程,然后连同图5一起详细说明此过程)上时,每当提示用户输入该标记时,作为安装程序的一部分而执行的验证过程,将连同该CD-ROM上存储的特定信息(包括公开密钥和保密密钥),以密码方式确定用户刚刚输入标记是否为生产商发布的,以及此特定CD-ROM是否可信。
尽管生产商可以生成有效标记的一个大集供其使用,或者在生产该产品期间,以安全方式,向第三方磁盘复制者分发该集合,但是,对于给定的产品副本,可以唯一验证系统5而为其相应的产品副本生成的各个标记。这样,如果第三方获得该软件的非法副本,其中包括所有的应用程序和安装文件,而不管该副本驻留的介质,则即使第三方拥有有效标记的列表,也不可能生成能够正确验证特定副本的标记。
具体参照图1,计算机10局部存储并执行应用程序20,特别是软件副本发生器程序30。在相应的范围内,程序30例如控制CD-ROM的生产过程,其中CD-ROM存储共同实现软件产品包之副本所需要的所有文件的副本。这些文件包括,在例如客户PC之类的远程计算机上完全安装、并实现该产品所需要的所有程序(包括有关的数据文件,若有的话)和安装文件。在计算机10内,这些文件全部驻留在程序存储器15上,如本地硬盘,也可以利用到达远程文件服务器的网络连接,用作备择实施方式。通过在软件副本发生器程序30内执行的常规文件复制程序32,顺序下载这些文件,如直线17所示。程序32指定要下载的特定文件,按次序从程序存储器15中访问各文件,并将各文件下载到CD刻录机50,同时命令将该文件写到随后插入刻录机内的CD-ROM上。正如下面说明,特别是连同图4一起讨论的那样,标记生成过程400生成字母数字标记75,其长度通常为25位,该标记与正在将文件写到其上的特定CD-ROM关联。一旦过程400生成了该标记,此过程就向图1所示的打印机60提供该标记,后者将此标记打印到一张标签上。在将所有文件复制到该CD-ROM上之后,如虚线55所示,将其插入到诸如CD-ROM容器之类的合适包装70中。然后如虚线65所示,将该标签粘贴到此包装的外表面上。可以执行过程400,以至标记的生成与将程序文件写到CD-ROM上大致同时发生,或者与它的时间具有交错关系。尽管为了简便起见,仅用包含一台计算机、一台CD-ROM刻录机以及一台打印机的形式,表示系统5,但实际上,系统5可以包含多台计算机—通常利用网络连接到远程文件服务器,多台刻录机和多台打印机,以实现所需的流水线并行程序复制操作。
正如图示80所示,标记75包含字段83和87,这些字段包含一个标识符(ID),然后是根据该标识符生成的签名,即SIGN(ID)。正如该标记之图示90详细表示的那样,该标识符包含报文M,后者具有一个值,该值对软件生产商生产的各产品的各个副本是唯一的。作为示例,当转换为二进制时,此报文为一个32位的二进制序列号,只有该生产商生产的所有产品中之某个软件产品的唯一一个副本,才有该序列号。当转换为二进制时,签名包含一个说明性的长度为83位的值,该值是两个值r和s的连接(用“°”表示连接操作),其中将在下面详细讨论r和s,并且通过本发明,生产商使用该标识符生成r和S。
图2表示典型客户计算机200的高级框图,其中客户计算机在例如从图1所示的系统5生产的CD-ROM中安装程序时,说明性地利用本发明。
此时,为了从CD-ROM中安装程序,如直线207所示,用户将该CD-ROM,插入到与客户计算机200关联的CD-ROM驱动器中。该用户或者手工命令计算机200开始执行该CD-ROM上存储的安装程序220(通常命名为“setup.exe”或“install.exe”),或者此程序将通过诸如与程序220有关并在操作系统上实现的常规“自动运行”能力,自动执行,然后在客户计算机上执行。安装程序220将以应用程序210的方式执行,然后在此客户机上执行。实现该产品之预定安装过程的,并且在从CD-ROM上将该产品之所有程序文件传输到本地海量存储器之前的程序220,将执行验证过程500。此过程(将在下文中连同图5详细说明),将提示用户输入与正在从其上安装程序的特定CD-ROM有关的标记。作为对此提示的响应,用户通常通过与计算机200有关的键盘,手工输入与此特定CD有关的25位的字母数字标记。一旦用户表示他(她)已经通常利用鼠标单击与计算机200有关的本地显示器上显示的正确按钮,完全输入了此标记,验证过程500就使用该标记中包含的信息,特别是如下文所述该CD-ROM中存储的M、r和s的值以及特定的数据值,确定用户输入的标记是否可信,即该标记是否是生产商发布的,以及此特定CD-ROM是否可信。
如果验证过程500成功验证了用户输入的标记,则此过程将通知安装程序220(如图2所示),该安装程序再继续进行安装过程,随后,从CD-ROM上将所有合适程序文件复制到客户计算机200上。然而,如果过程500不能验证该标记,则过程500将提前终止安装过程,并且不会将任何程序文件复制到客户计算机200上。根据是否验证了该标记,验证过程500生成并向用户显示适当消息,如直线230所示。无论该标记验证与否,此消息均可以隐含在生成过程中,并分别在该安装过程的验证后阶段中,显示下一个继续屏幕,或者显示一条警告消息,指出不授权该用户使用正在安装的副本,并因此终止安装过程。
图3表示客户计算机(PC)200的框图。
如图所示,客户计算机200包括输入接口(I/F)320,处理器340,通信接口350,存储器330和输出接口360,并按照惯例,都利用总线370进行互连。存储器300通常包括多种形式,例如:随机存取存储器(RAM)332,用于临时数据和指令存储;磁盘驱动器334,用于按照各用户命令利用软盘交换信息;非易失海量存储器335,利用具有天然磁性的硬盘实现;以及CD-ROM驱动器336。尽管在使用CD-ROM分发软件产品的范围内说明本发明,但本发明同样适用于在其他海量介质(如软盘)上分发软件产品,其中在该种情况中,要将该介质插入到合适的驱动器中,如磁盘驱动器334中,并从该驱动器上读取安装程序,然后执行。海量存储器335还可以包含其他光介质读取设备(未示出)(或写设备),以便从合适的光存储介质上读取信息(或将信息写到该介质上)。此外,海量存储器335还存储操作系统(O/S)337和应用程序210的可执行指令和有关数据。程序210包括安装程序220,其中一旦在软件安装过程中加载了安装程序,其本身就包含本发明的验证过程500(参见图5)。可以利用诸如WINDOWSNT(“WINDOWS NT”为位于华盛顿州Redmond的微软公司的注册商标)之类的常规操作系统,实现图3中所示的O/S 337。我们将不讨论O/S 337任何组件,因为它们与本发明无关。只需说明在O/S的控制下执行作为应用程序210之一的安装程序220,就足够了。
其优点在于,当将本发明的技术嵌入到软件产品中使用时,除要求用户输入正在安装的特定产品副本的标记之外,并不需要其他明显的用户交互。
如图3所示,输入信息可以从两个示意性的外部来源产生:网络提供的信息,例如通过到达网络接口350的网络连接355,来自因特网和/或其他连网设备,或者经由路径310,从专用的输入源,到达输入接口320。专用输入可以从各种各样的数据源发起,这些数据源与本发明没有任何特定关系。尽管在从CD-ROM进行本地安装的范围内说明本发明,但也可以在将该产品网络安装到计算机200的过程中使用本发明,如通过因特网或其他连网设备(如内联网)。在该情况下,生产商或站点许可管理员,一旦收到产品副本的电子支付或被许可副本的合适授权请求,就可以从远程网络文件服务器上,下载包含该产品副本之对应标记的文件。如果在该文件服务器上远程执行相关安装程序,则该服务器将访问存储在客户机上、包含有标记的文件,并在将所有程序文件下载到计算机200上之前,验证该标记。作为选择,如果在本地执行安装程序,则一旦从服务器下载了所有程序和安装文件,该服务器(或者用户在稍后的某个时间内)将开始在本地执行安装程序。此程序将本地访问包含标记的文件,接着验证产品副本。
输入接口320包含适当电路,以提供将输入信息之各种不同的专用源,物理连接并对接到计算机系统200所需要的必要的对应电子连接。在操作系统的控制下,应用程序210经由网络连接335或路径310,与外部源交换命令和数据,以传输并接收程序执行过程中通常由用户请求的信息。
此外,输入接口320还将诸如键盘和鼠标之类的用户输入设备395,电子连接并对接到计算机系统200。分别通过线路363和367,将诸如常规彩色显示器之类的显示器380,以及诸如常规激光打印机之类的打印机385,连接到输出接口360。输出接口提供需要的电路,以将显示器和打印机,电子连接并对接到计算机系统。一般而言,正如人们理解的那样,本发明的技术可以运行,以生成几乎各种类型的报文的唯一的、安全的、可验证签名,并不仅仅只能生成产品副本标记,而与客户计算机200获得、存储和/或交换报文的形式无关。
此外,由于除实现本发明的模块之外的计算机系统200的特定硬件组件,以及存储器335中存储的软件的各个方面,为众所周知的常规部件,因此不再详细讨论。一般而言,计算机10具有与客户计算机200类似的体系结构。
B.发明技术
通过本发明,若给定某个报文,如数字产品副本标识符,则基于公开密钥加密系统,并且通过使用从有限域上面的椭圆曲线上的各点中选择的一个发生器值,生成该报文的可信签名。我们的技术依赖于使用该发生器值连同示例签名者A的三种密钥,即公开密钥(PA)、私有密钥(SA)和保密密钥(KA)一起,生成可信签名。
正如在公开密钥加密技术中那样,由签名者A生成报文(M)的签名,签名为报文以及签名者的公开密钥和私有密钥的函数,即:
Sign(M,PA,SA)→SIGNATURE_A(M)。
此报文的接收者B,可以按照报文、其签名以及其签名者公开密钥的函数,即Vefiry(M,SIGNATURE_A(M),PA),验证他(她)接收的报文的签名。验证结果通常为是/否指示,以表示该签名是否有效。如果该签名有效,则将其看作通过使用签名者的特定公开密钥和私有密钥(“密钥对”)产生的签名。如果第三方或者通过密码分析该报文以及有关签名,或者通过诸如盗窃密钥之类手段的非法获得,获得了此密钥对的知识,则第三方可生成新的签名报文对,即报文和各报文的有效签名。
通过要求不仅根据签名者的公开密钥和私有密钥,还要根据该签名者的保密密钥,生成可信签名,本发明的技术大大增加了与签名有关的安全性:
Authentic_Sign(M,PA,SA,KA)→AUTHENTIC_SIGNATURE_A(M)。
通过使用本发明,在当前的可能领域内,并且在不了解保密密钥的情况下,仅仅知道公开密钥和私有密钥,远不能生成包含可信签名的新的签名报文对。我们相信,若给定许多报文以及其可信签名,则根据签名的报文对,即仅仅根据报文和可信签名,恢复保密密钥是完全不可能的。在这点上,我们估计,对于一个83位的二进制可信签名,在不了解保密密钥的情况下,生成此类可信签名的概率的数量级为(0.5)30—这是一个无穷小的数量,接近与随机猜测有关的概率。
本质上,根据本发明的技术,给定特定椭圆曲线上的所有点,选择该曲线上某个点的值作为发生器值。私有密钥是随机选择的。公开密钥定义为发生器的值和私有密钥的预定函数,特别是用私有密钥取发生器值的幂。保密密钥用于生成一个伪随机数。然后,通过该发生器、伪随机数以及一个报文(诸如随机选择的产品副本标识符)的预定函数,生成可信签名的第一部分。具体而言,首先用伪随机数值取发生器的幂,以产生一个值,然后再将该值与报文连接在一起。接着,通过预定的散列函数处理由连接产生的数,从而产生可信签名的第一部分。根据该第一部分、伪随机值以及私有密钥的预定函数,生成可信签名的剩余部分。最后,通过将签名的两个部分连接起来,生成完整的可信签名。
当使用本发明实现产品副本标记时,将公开密钥和发生器值存储在其产品副本中的适当文件内,以便在客户计算机(如图2所示的客户计算机200)上安装时,供验证副本使用。
在安装该产品副本时,首先通过在客户计算机上,使用发生器值、公开密钥和完整标记,特别是用户输入的标记和签名,计算签名的第一部分,来验证用户输入的签名;然后,确定上述第一部分的值是否与用户输入的签名中相同部分的值完全匹配。如果上述匹配存在,则输入的签名可信,并且继续安装此副本;否则,签名不可信,提前终止安装过程。
使用三个不同阶段实现本发明,并生成产品副本标记:(a)只进行一次的初始化,通常由软件生产商进行,以生成各种参数值;(b)标记生成(后面将连同图4一起详细说明过程400),使用初始化过程中生成的参数值,在介质复制场所重复进行,以生成各不同产品副本的包含可信签名的相应标记,以便与该副本一起使用;以及(c)验证(后面将连同图5一起详细说明过程500),在执行安装程序期间,分别在用户场地(客户计算机)相继发生,以便验证用户输入的、与该用户试图安装的特定产品副本有关的标记中的签名,从而继续安装该副本或取消安装。
既然通过使用公开密钥,能够以常规方式验证利用本发明生成的可信签名,因此,为了简明起见,我们将省略具体实现验证的所有细节。
1.定义和初始化方面
我们将首先定义本发明技术所使用的各种变量,以及初始化本技术所使用的步骤。
首先,定义有限域(K),最好在加罗瓦域上定义,即K=GF(p),其中p非常大,如384位或更大,并且p=1(mod 4)。作为选择,可以将该域定义为K=GF(2m)。
接着,在此域上定义椭圆曲线E。根据本发明的技术,我们利用其上存在复数加法和复数乘法的椭圆曲线,以允许本发明技术中使用的参数和生成的标记较短,同时仍能提供防止某些形式的加密攻击所需要的安全性—如果不使用椭圆曲线,则对于如此短的参数,其安全性是不可能的。一般而言,椭圆曲线包含满足以下形式曲线的点(x,y):y2=ax3+bx2+cx+d,其中a、b、c和d为预定义的系数。通过改变上述四个系数的值,该曲线上的点数将相应改变。尽管我们可以使用一般形式的椭圆曲线,但我们更愿说明性地选择有限域K上的曲线y2=x3+x,同时有限域K允许按下述方式计算曲线E上的点数|E|。如果p=α22,其中α=1(mod 4),则|E|=p+1-2α=(α-1)2+β。因此,通过据此选择α和β,可以设置该曲线上的点数。
选择一个大素数q,其长度至少约为60位,并且据此设置α和β,以确保q均匀划分|E|,同时满足1(mod 4)。
一旦据此选择了q的值,就在曲线E上为阶为q的子群定义发生器的值g,通常为一个随机点。其典型实现方法是,重复选择曲线E上的随机点作为g,并测试其属性,即该数是否满足以下等式G={g,2g,3g,...,(q-1)g}且|G|=q,直至找到一个相配数。
一旦选择了发生器的适当值,就选择一个随机数作为专用指数X。数X成为私有密钥。参数gpow是公开密钥,并按照等于gX的形式计算。
最后,将保密密钥KA定义为两个预定义部分A1和A2的连接,即KA=(A1°A2)。
一旦定义了上述参数,就存储参数q、g、gpow和X,以便在随后执行标记生成过程400时使用,执行该过程的目的在于,为生产商随后生产的各种软件产品的各个不同副本,生成一个标记,该标记包含一个唯一标识符和相关的可信签名。此外,如下文所述,以数据形式,将参数g和gpow的值,以及HASH函数的说明,都存储在各产品副本内,以供在安装此产品副本时,特别是在验证(即,在执行下文详细说明的验证过程500时)用户在安装此副本时手工输入的标记时,访问并使用它们。
2.标记生成过程400
图4为标记生成过程400的流程图。如上所述,由计算机10分别执行此过程,并由驻留在其存储器(未示出)上的适当存储的程序(可执行)指令实现此过程,以生成各相继产品副本的唯一标记。此过程使用保密密钥KA、q、g、gpow和专用指数X的值。
一进入过程400,就首先进行到块410。当执行此块时,该块随机指派下一后继(尽管未使用)值,作为当前产品副本的标识符(此处为M),其中(232-1)>M>0。作为选择,也可以顺序指派上述标识符。此时,对于某个软件生产商发布的所有产品副本,以及所有不同产品,指派第一个值作为第一产品副本的标识符,指派第二个值作为第二产品副本的标识符,等等。无论如何,各产品副本均具有唯一标识符。如果在使用本发明的技术生成产品标记时,软件生产商希望生产大于232个副本的软件产品,则可以采用熟练技术人员显而易见的方式修改本技术,以使用更长的标识符,以及由此产生的更长的密钥和参数值。
一旦块410按照上述方式指派了一个适当值,作为当前产品副本的标识符,执行就进行到块420。此块使用保密密钥和指派给当前产品副本的标识符M,生成指数的伪随机值k,其中k在[1,q-1]范围内。一般而言,k=G_MS(M),其中G_MS是伪随机数发生器。最好采用众所周知的常规安全散列函数,特别是SHA_1,实现伪随机数发生器。此散列函数将任意长度的数字输入数,映射为一个160位的值,以至不可能定位任意的等长数值对(x,y),其中SHA_1(x)=SHA_1(y),其需要的运算次数超过280。特别是如上所述,保密密钥KA说明为两个预定义部分A1和A2的连接,即KA=(A1°A2),并且一旦生成,就在生成所有产品副本标记时,保持不变。为了计算k,块420首先将保密密钥解析为部分A1和部分A2,然后按照下面的式(1)和式(2),使用多次散列操作计算指数k,式(1)和式(2)为:
    h=SHA_1(A1°M)              (1)
    k=SHA_1[(A2°M)]h         (2)
为了获得更多的安全性,可以将通过式(1)和式(2)产生的值k,作为另一个伪随机函数的种子,进行处理,以产生一个新的伪随机值k,其中作为选择,可以在生成当前产品副本之标记的剩余步骤中,使用新值,代替按上述等式生成的值。
正如上文所述,一旦按上述方式确定了当前产品副本的值k,就执行块430,以计算gk。此后,进行到块440,该块使用验证方了解的HASH函数,根据式(3),确定作为gk和M之函数的参数r的值。作为示例,此散列函数为SHA_1函数。
    r=HASH(gkoM)                 (3)
接着,块450执行,以根据式(4),计算作为k、X、r和q之函数的参数s。
    s=k-Xr(mod q)                 (4)
一旦计算出s,执行就进行到块460,该块形成作为M、r和s连接的115位的二进制标记,其中可信签名本身为r和s的连接。在形成二进制标记后,块470将此标记转换为25位的字母数字形式,然后将以上生成的字母数字标记作为输出值,应用于诸如打印机60之类的设备(参见图1),以便与当前产品副本一起使用。为了减少混乱,以及用户手工输入该标记时可能造成的错误,从而提供增强的可用性,块470(图4所示)最好不使用某些字母数字字符,如用户看起来很相似的(取决于印刷标记所使用的字体)字母I和字母O(无论是大写还是小写),数字0,L的小写以及数字1等等。此外,可能将看起来很形似的字符,如“L”的小写和数字“1”,映射为一个共同字符,即数字“1”。
我们估计,通过本发明并给定一个公开/私有密钥对,在当前可用PC上,能够在一秒的处理时间内,生成83位的可信签名,给出32位的标识符。
3.验证过程500
图5为一个流程图,说明在图2和图3所示的客户计算机200中执行验证过程500。如上所述,当在客户计算机上安装给定的产品副本时,此过程验证用户手工输入的该副本的标记。要在此验证过程中使用的g和gpow的值以及HASH函数的说明,均存储在给定的产品副本内,并且对该软件生产商的所有产品副本是通用的。尽管为了简化,我们将参数g和gpow的值以及HASH函数的说明说成是,对指定软件生产商的所有产品的所有副本通用,但是,为了更多的安全性,上述参数值以及HASH函数的说明,可以是只对该生产商的特定产品的所有副本通用的,可以是只对该产品的特定副本集通用的,或者只是各副本特有的。
一进入过程500,首先进行到块510。该块读取用户手工输入的、他(她)试图在其客户计算机,即图2和图3所示的客户计算机200,上安装的特定产品副本的字母数字标记。一旦读取了此标记,块520就开始执行,以首先将此字母数字标记转换为二进制序列,然后抽取该标记中的参数M、r和s的值。此后,进行到块530,该块从其产品副本中,读取要在验证中使用的、其本身存储的参数g和gpow的值,以及特定散列函数的说明。
一旦块530读取了上述参数值以及散列函数的说明,就进行到块540,当执行块540时,该块使用从标记中抽取的值r和s,计算gr和gpow r的值。一旦计算出上述值,就执行块550和560,以共同验证标记,其方法是,首先计算可信签名的第一部分,即参数r(此处,用
Figure C9980774800221
表示重新计算的部分),然后比较其值与从标记中抽取的同一参数值。具体而言,块550根据下面的等式(5)计算
r ^ = HASH [ ( g s · g pow r ) · M ] - - - ( 5 )
其中:HASH为在验证过程中使用的产品副本中确定的散列函数。此函数通常为SHA_1函数。
在计算出值 之后,进行到判定框560,该框对照从用户输入的标记中抽取的值r,测试上述值。如果两个值相同(匹配),则验证了标记中的签名。因此,该过程经由YES路径563,从验证过程500退出,以继续安装此产品副本。另一方面,如果两个值不同,则该标记,特别是它包含的签名是不可信的。因此,不授权该用户安装此产品副本。在此实例中,判定框560经由NO路径567,到达块570。当执行块570时,该块在本地显示器(即图3所示的显示器380)上显示一条适当消息,声明不授权该用户安装此产品副本。一旦显示了此条消息,就从过程500中退出(如图5所示),但是其退出方式是,提前终止进一步安装此产品副本。
到目前为止,熟练技术人员将认识到,尽管我们将本发明的技术描述为,用于生成作为部分标记的安全可信签名,以便在用户计算机上安装时,与软件产品副本一起使用,但是,每当用户建立与软件生产商操作的服务器的网络连接时,能够使用本发明,以很安全的方式,来串行化先前安装的产品副本。具体而言,如果在客户计算机上运行的O/S的用户,建立与该O/S生产商之网站的因特网连接,则web服务器能够生成一个安装号,例如上文论述的包含可信签名的标记,然后下载该安装号,以存储到客户计算机上(当然,我们假设,将在客户计算机上执行的web浏览器设置为:接受“cookies”,即接受此下载)。然后,生产商可以使用该安装号,去唯一地、安全地标识特定的O/S安装。随后,每当用户建立与该生产商之网站的因特网连接时,通过访问并验证客户计算机上存储的安装号,生产商可以轻而易举地识别该O/S的特定安装。通过成功验证存储的安装号,生产商可以区分经过授权的O/S安装,和未经授权的O/S安装。因此,生产商可以仅向授权安装提供产品支持、升级、推销和/或其他服务,而拒绝向未经授权安置提供上述服务。同样,生产商可以为先前安装,并且该生产商希望随后标识的其他类型的软件程序副本,例如应用程序,生成并下载唯一的安装号。
而且,尽管该标记利用产品副本标识符,作为用于生成可信签名的报文,但此报文并不如此被限定。此报文可组成需要电子加密并且从一方传送到另一方的任意形式的数字信息。因此,本发明可以提供很高的安全机制,以验证在发送方和接收方之间传送的加密报文通信流中的各报文。
另外,尽管我们将本发明技术描述为,使用安全散列函数,以在标记生成过程和验证过程(特别是图4中的块440和图5中的块550)中,生成参数r和 但也可以使用其他安全函数,其前提是,在两个过程中采用同一函数,并且在相关产品副本中存储该函数的说明,同时在安装特定副本时由验证过程读取。
此外,尽管我们以下述方式示意说明本发明,即与32位的报文(此处,用产品副本标识符说明)和83位的可信签名一起使用,但是,给定预期的应用,可以轻而易举地修改本发明,以容纳更长的报文和签名,或者在能够容忍较少安全性的应用中,采用更短的报文和签名。
尽管本文详细展示并说明了体现本发明技术的具有各种更改的实施方式,但熟练技术人员可以轻易作出仍然利用上述技术的许多其他
实施方式。

Claims (20)

1.一种用于生成可信签名以便与具有由公开密钥PA和私有密钥SA形成的公开密钥对的公开密钥加密系统一起使用的方法,该方法包括以下步骤:
根据下列内容,形成用于输入报文M的可信签名:
私有密钥,
报文,
从有限域上面的椭圆曲线上的多个点中选择的一个预定的发生器值g,以及
一个与公开密钥和私有密钥不同的保密密钥KA,该密钥既不是非对称密钥系统中任意密钥对内的公开密钥,也不是私有密钥。
其中所述形成用于输入报文M的可信签名的步骤还包括以下步骤:
根据发生器值、保密密钥以及报文,生成可信签名的第一部分r;以及
根据可信签名的第一部分、以及保密密钥和私有密钥,生成可信签名的第二部分s。
2.权利要求1的方法,其中形成步骤还包括以下步骤:
作为保密密钥KA的预定伪随机函数,生成第一参数值k;以及
作为第一参数值、发生器值和报文的第一预定函数,确定可信签名的第一部分r。
3.权利要求2的方法,其中预定的伪随机函数包括一个第一预定散列函数。
4.权利要求3的方法,其中保密密钥是通过连接第一密钥部分A1和第二密钥部分A2形成的,同时第一参数值k是通过下式确定的:
h=SHA_1(A1°M);以及
k=SHA_1[(A2°M)]h
其中:SHA_1为SHA_1散列函数;
A1°M表示A1和M的连接;
A2°M表示A2和M的连接;以及
表示异或操作,还可以表示为XOR。
5.权利要求3的方法,还包括以下步骤,将第一参数值作为输入,应用于预定的伪随机函数,以产生第一参数值的新值。
6.一种用于生成标记的方法,该标记包含一个可信签名,以便与相应的产品副本关联,其中与具有公开密钥PA和私有密钥SA的公开密钥加密系统一起使用可信签名,该方法包括:
向产品副本指派唯一标识符,作为报文M;
根据下列内容,形成可信签名:私有密钥,报文,从有限域上面的椭圆曲线上的多个点中选择的一个预定的发生器值g,以及与公开密钥和私有密钥不同的保密密钥KA,其中保密密钥既不是非对称密钥系统中任意密钥对内的公开密钥,也不是私有密钥;
其中所述形成可信签名的步骤还包括以下步骤:
根据发生器值、保密密钥以及报文,生成可信签名的第一部分r;以及
根据可信签名的第一部分、保密密钥和私有密钥,生成可信签名的第二部分s;
根据该标识符和可信签名,形成标记;以及
将标记和产品副本联系起来。
7.权利要求6的方法,其中标记形成步骤包括以下步骤,连接标识符和可信签名以产生标记。
8.权利要求7的方法,其中指派步骤包括以下步骤,或者以给定范围内的随机值的方式,或者以该范围内预定顺序中下一个可用值的方式,选择唯一的标识符。
9.权利要求6的方法,其中生成步骤还包括以下步骤:
作为保密密钥KA的预定伪随机函数,生成第一参数值k;以及
作为第一参数值、发生器值和报文的第一预定函数,确定可信签名的第一部分r。
10.权利要求9的方法,其中预定的伪随机函数包括一个第一预定散列函数。
11.权利要求10的方法,其中第三密钥为一个保密密钥,并且是通过连接第一密钥部分A1和第二密钥部分A2形成的,同时第一参数
12.权利要求11的方法,还包括以下步骤,将第一参数值作为输入,应用于预定的伪随机函数,以产生第一参数值的新值。
13.权利要求2或11的方法,还包括以下步骤:
根据第一参数值,私有密钥以及可信签名第一部分的第二预定函数,生成可信签名的第二部分s;以及
连接可信签名的第一和第二部分,以产生可信签名。
14.权利要求13的方法,其中根据下式计算可信签名的第一部分:
r=f(gk°M)
其中:f为预定的安全函数;以及
gk°M表示gk和M的连接。
15.权利要求14的方法,其中函数f是一个预定的HASH函数。
16.权利要求14的方法,其中根据下式计算可信签名的第二部分s:
s=k-Xr(mod q)
其中:X是私有密钥SA;以及
      q是一个预定素数。
17.权利要求14的方法,还包括以下步骤:
将标记转换为字母数字形式,以产生一个字母数字标记;以及
将该字母数字标记粘贴到产品副本或其组件上。
18.权利要求15的方法,其中预定散列函数为SHA_1散列函数。
19.权利要求12或16的方法,其中有限域是在伽罗瓦域上定义的。
20.权利要求12或16的方法,其中椭圆曲线的形式为y2=x3+x。
CN99807748.8A 1998-06-23 1999-06-23 生成加密签名以及与产品副本一起使用此类签名的技术 Expired - Fee Related CN1264305C (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US09/102,851 US6163841A (en) 1998-06-23 1998-06-23 Technique for producing privately authenticatable cryptographic signatures and for authenticating such signatures
US09/102,948 1998-06-23
US09/102,948 US6209093B1 (en) 1998-06-23 1998-06-23 Technique for producing a privately authenticatable product copy indicia and for authenticating such an indicia
US09/102,851 1998-06-23

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100325917A Division CN100334831C (zh) 1998-06-23 1999-06-23 生成加密签名以及与产品副本一起使用此类签名的技术

Publications (2)

Publication Number Publication Date
CN1306714A CN1306714A (zh) 2001-08-01
CN1264305C true CN1264305C (zh) 2006-07-12

Family

ID=26799803

Family Applications (2)

Application Number Title Priority Date Filing Date
CN99807748.8A Expired - Fee Related CN1264305C (zh) 1998-06-23 1999-06-23 生成加密签名以及与产品副本一起使用此类签名的技术
CNB2004100325917A Expired - Fee Related CN100334831C (zh) 1998-06-23 1999-06-23 生成加密签名以及与产品副本一起使用此类签名的技术

Family Applications After (1)

Application Number Title Priority Date Filing Date
CNB2004100325917A Expired - Fee Related CN100334831C (zh) 1998-06-23 1999-06-23 生成加密签名以及与产品副本一起使用此类签名的技术

Country Status (7)

Country Link
EP (1) EP1088420B1 (zh)
JP (1) JP4644368B2 (zh)
CN (2) CN1264305C (zh)
AT (1) ATE361605T1 (zh)
AU (1) AU5457699A (zh)
DE (1) DE69935980T2 (zh)
WO (1) WO1999067920A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101712850B1 (ko) * 2010-03-31 2017-03-07 이르데토 비.브이. 화이트 박스로부터 암호화설비를 보호하는 시스템 및 그 방법
EP4022430A4 (en) * 2019-08-28 2023-05-24 Hewlett-Packard Development Company, L.P. ARRAY SIGNATURES ENCRYPTION

Family Cites Families (7)

* 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
JP2868104B2 (ja) * 1992-07-27 1999-03-10 日本電信電話株式会社 楕円曲線に基づくデイジタル署名方法とその署名者装置及び検証者装置
US5299262A (en) * 1992-08-13 1994-03-29 The United States Of America As Represented By The United States Department Of Energy Method for exponentiating in cryptographic systems
JP3540477B2 (ja) * 1995-12-13 2004-07-07 松下電器産業株式会社 署名方式
US5638447A (en) * 1996-05-15 1997-06-10 Micali; Silvio Compact digital signatures
US5737424A (en) * 1996-06-04 1998-04-07 Software Security, Inc. Method and system for secure distribution of protected data using elliptic curve systems
US6279110B1 (en) * 1997-11-10 2001-08-21 Certicom Corporation Masked digital signatures

Also Published As

Publication number Publication date
EP1088420B1 (en) 2007-05-02
JP2002519723A (ja) 2002-07-02
CN1534922A (zh) 2004-10-06
WO1999067920A1 (en) 1999-12-29
DE69935980D1 (de) 2007-06-14
AU5457699A (en) 2000-01-10
ATE361605T1 (de) 2007-05-15
EP1088420A1 (en) 2001-04-04
CN1306714A (zh) 2001-08-01
JP4644368B2 (ja) 2011-03-02
DE69935980T2 (de) 2008-01-10
CN100334831C (zh) 2007-08-29

Similar Documents

Publication Publication Date Title
CN103490901B (zh) 基于组合密钥体系的密钥生成和发放方法
US7730315B2 (en) Cryptosystem based on a Jacobian of a curve
JP4673890B2 (ja) オンラインサービスを用いてデバイスに直接証明秘密鍵を転送する方法
US7516321B2 (en) Method, system and device for enabling delegation of authority and access control methods based on delegated authority
US8719583B2 (en) Apparatus for verifying and for generating an encrypted token and methods for same
US8392713B2 (en) Secure offline activation process for licensed software application programs
US6209093B1 (en) Technique for producing a privately authenticatable product copy indicia and for authenticating such an indicia
US7693286B2 (en) Method of delivering direct proof private keys in signed groups to devices using a distribution CD
US6163841A (en) Technique for producing privately authenticatable cryptographic signatures and for authenticating such signatures
CN109478214B (zh) 用于证书注册的装置和方法
US8392723B2 (en) Information processing apparatus and computer readable medium for preventing unauthorized operation of a program
JP4776906B2 (ja) 署名生成方法及び情報処理装置
WO2006025952A2 (en) Method of delivering direct proof private keys to devices using a distribution cd
CN101060400B (zh) 数据生成装置、数据分析装置、控制方法和数据处理系统
CN107852328B (zh) 用于安全产品标识和验证的增强混淆或随机化
US20050025311A1 (en) Tate pairing techniques for use with hyperelliptic curves
CN1264305C (zh) 生成加密签名以及与产品副本一起使用此类签名的技术
CN107070648A (zh) 一种密钥保护方法及pki系统
KR100897075B1 (ko) 배포 cd를 사용하는 장치에 서명 그룹의 다이렉트 증명개인 키들을 전달하는 방법

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: 20150422

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

Effective date of registration: 20150422

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington, USA

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20060712

Termination date: 20180623