CN1689269B - 保证软件完整性的系统和方法 - Google Patents

保证软件完整性的系统和方法 Download PDF

Info

Publication number
CN1689269B
CN1689269B CN038212730A CN03821273A CN1689269B CN 1689269 B CN1689269 B CN 1689269B CN 038212730 A CN038212730 A CN 038212730A CN 03821273 A CN03821273 A CN 03821273A CN 1689269 B CN1689269 B CN 1689269B
Authority
CN
China
Prior art keywords
value
message
integrity
integrity value
new
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 - Lifetime
Application number
CN038212730A
Other languages
English (en)
Other versions
CN1689269A (zh
Inventor
杰弗里·布鲁斯·罗茨皮奇
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1689269A publication Critical patent/CN1689269A/zh
Application granted granted Critical
Publication of CN1689269B publication Critical patent/CN1689269B/zh
Anticipated expiration legal-status Critical
Expired - Lifetime 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/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
    • 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
    • H04L9/3249Cryptographic 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 using RSA or related signature schemes, e.g. Rabin scheme
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/08Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
    • G06Q10/087Inventory or stock management, e.g. order filling, procurement or balancing against orders
    • 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
    • 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/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • 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/3236Cryptographic 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 using cryptographic hash functions
    • 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/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/127Trusted platform modules [TPM]
    • 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
    • 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/60Digital content management, e.g. content distribution
    • H04L2209/603Digital right managament [DRM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Economics (AREA)
  • Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Finance (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Human Resources & Organizations (AREA)
  • Tourism & Hospitality (AREA)
  • Entrepreneurship & Innovation (AREA)
  • General Business, Economics & Management (AREA)
  • Development Economics (AREA)
  • Marketing (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Storage Device Security (AREA)
  • Information Transfer Between Computers (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明涉及保证消息完整性的系统和方法,使得用户设备能够对分发中心所发出的数字消息进行验证并使之生效,而不要求向分发中心进行传输。所述分发中心发送带有附加的模的消息,所述模是两个特殊选择的素数的积。所述传输包括基于初始消息散列值的附加验证值、新消息散列值以及所述模。所述新消息散列值是所述中心的公开RSA密钥。还计算对应的私人RSA密钥。个体用户设备将数字印章、公开模、特有的秘密数和初始消息散列值接合起来计算特有的完整性值K。对随后的消息进行类似的处理,以确定新的完整性值K’,当且仅当新消息源自所述中心并且没有被损坏时,K’才等于K。

Description

保证软件完整性的系统和方法
技术领域
本发明涉及反软件篡改,尤其涉及包括现场软件升级的数字消息的验证和确认。
背景技术
随着数字存储技术和计算机网络的发展,确保数字内容只能由被授权的接收者使用的努力也取得了进展。一种对数字内容信息提供安全性的方法是以加密形式分发所述信息,然后以密钥的形式,只向合法用户分发必要的解密信息。不幸的是,不道德不谨慎的合法用户可以与未经授权的接收者分享所分发的解密密钥,因此越来越出现了一种趋势,那就是,通过要求接收者的硬件向安全数字信息的分发者表明其自身属于特定的用户,从而防止匿名共享。
分发者可以是安全数字信息的初始供应商,或者是为供应商处理各种安全任务(比如计算和通信)的另一方。
例如,授予Hellman的美国专利4658093公开了一种系统,其中,“基础单元”(执行计算的用户设备的具体硬件实例)的制造商分配一个随机密钥,由每一个具体的基础单元存储。当用户想要使用一个软件包时,用户的基础单元就产生一个随机数,将其通知给软件制造商。该制造商产生一个验证方响应,该响应是所述具体基础单元的密钥、被请求的软件、软件可被使用的授权次数、所述基础单元产生的随机数的加密函数。制造商然后将该验证方响应电子发送给用户的基础单元,该基础单元使用同一个加密函数产生一个校验值。(Hellman使用了RSA加密函数,其在授予Rivest等人的美国专利4405829中有描述,其在此全文引为参考)。如果该校验值与验证方响应匹配,则该基础单元认为该验证方响应是有效的,并相应地将所发送的软件能被使用的次数增一。所述基础单元使用数字签名和制造商消息中的散列(hash)来验证来自制造商的消息。
数字签名在本领域是公知的,用以产生对“此消息是否可信”这个问题的单比特“是/否”回答。“散列”(hash)一般是将一个较大域的值映射到一个较小范围的数学函数的输出,它是单向的,因为要找出与任意预定输出匹配的输入在计算上是不可行的,它也是无冲突的,因为对于同一个输出在计算上不可能找出两个不同的输入。这样的散列函数(hashing function)是本领域公知的。不幸的是,并不总是可以得到Hellman系统所要求的双向通信,这是由于所使用的分发方法;也并不总是在实践上可行的,这是由于现场的基础单元的几乎透明的数量。另外,Hellman系统要求有一个授权和记帐单元,用以维护用来从对基础单元的公开序列号的了解来确定基础单元的密钥的序列号和密钥的存储器。
授予Graunke等人的美国专利6105137描述了一种类似的系统,用于验证和核实软件模块的完整性。授予Mirov等人的美国专利6138236将此一般方法扩展到验证在引导PROM中编程的固件,然后使用可信的程序代码来验证随后的程序代码集。Mirov等人的系统向自展开可执行分发文件附加一个数字签名,使用被公布的公开RSA解密密钥对所分发的软件解密。解密后的散列值的比较如果成功,则将自展开可执行分发文件视为安全的并且没有偶然的或者故意的文件破坏,如果比较失败,则拒绝并删除该文件。
授予Shaw的美国专利6341373描述了另一种安全数据升级方法,其使得能够只替换程序代码的选定部分。Shaw的专利要求客户设备在从远程服务器接收升级之前将其自身的标识信息发送给远程服务器。
授予Moore的美国专利5343527公开了一种方法,用于从重新使用库(reuse library)向软件部件的重新使用用户(reuser)提供指示信息,表明该软件部件是否可信和有效,或者其是否经过了某些未经授权的实体的篡改。
防篡改软件已经变得越来越重要,这是因为如今的电影、音乐、文本、应用程序和数据库都是以具有防拷贝特征的数字形式分发的。软件盗版者可以试图简单地通过对播放器硬件中使用的软件打补丁的方法来击败这些防拷贝特征。也就是说该方法是这样的:向播放器提供一个伪装的软件升级,从而,该播放器使得所有内容都可访问,而不管是否得到适当的授权。业界的大多数公司都依赖于数字签名来检查单个软件的可信度。但是,这不是一个十分安全的方法,因为,同样可以通过对播放器中的单个指令打补丁来关闭该检查。
与数字签名相比,数字印章对此问题提供了更好的解决方案。数字印章与数字签名一样难以伪造,但是,它不是象数字签名那样只是给出单个的“是/否”输出,而是产生一个随机比特序列K,当且仅当所接收到的消息的散列与印章正确地相关时,该序列才是正确的。
授予Dwork等人的美国专利5978482和6038316描述了基于数字印章的用于保护数字信息的系统,其中,放出用于访问受保护的信息的解密密钥背后的逻辑是公开地知道的,其对响应于用户号而产生的授权号进行操作。用户号唯一地标识用户,对用户来说是有价值的,从而用户不会愿意将其向公众公开。用户号可以包括信用卡号、电话号码、中央处理器ID号或者其它对用户具有个人敏感性的号码。这样,用户不愿意与其它人共享密钥或者解密内容,因为它会担心用户号被泄漏,并且行为失当的用户容易被识别出来。
软件程序的散列值(hash value)已经被证明了是特别好的“用户号”。对软件程序的修改,比如试图攻破内容保护体系的黑客所做的修改,会使程序的计算出来的散列值改变。因此,仅当软件程序可证实地原封未动未经修改,在内容保护体系中使用的解密密钥才能被成功地放出和使用,从而改善了内容的保护。
这是典型的现有技术中的印章计算:K=g1 hg2 a mod M,其中K是输出比特序列,g1和g2是与所传输的数字消息本身一起存储的公共数(public number),h是消息的散列,a是数字印章。M是进行此计算的公共模(public modulus);换句话说,K是用M除积g1 hg2 a后的余数。M通常是质数,但不必须是。输出K是用来保证消息的真实性和完整性的比较的基础,所述消息可以包括软件升级。
文献″Keying Hash Functions for Message Authentication″(Bellare M.Et al,International Associateion For CryptologicResearch,Advances In Czyptology-Crypto 96.16th AnnualCryptology Conference.Sanda Barbara,August 18-22.,1996,XP000626584,ISBN 3-540-61512-1)公开了一种验证在两方之间的非安全信道上传输的信息的完整性和真实性的方法。其中所描述的方法要求使用一种密钥,即在各方之间共享的所谓消息验证码。
尽管本领域的现有技术描述了有价值的实现方式,仍然存在进一步改进的需要,以解决未解决的需求。例如,决定是否允许访问受保护信息的K的值如何能够不受那些试图盗窃它及其保护的信息的人的攻击?如果从个体接收者进行验证传输是不可行的,则由所述接收者执行的软件如何能够实地升级?对在用户设备上运行的软件的任何修改一般都会导致其散列值改变,从而,所计算的K值不再是正确的。更换用户硬件一般是不可行的,要向潜在的上百万的用户传输新的设备密钥也存在显而易见的问题。
发明内容
因此,本发明的第一方面提供了一种保证消息完整性的方法,包括:与被加密的完整性值h0一起发送一个消息,该加密的完整性值h0的加密使用的是基于所述消息的散列值的密钥;对所述加密的完整性值h0解密;使用所述完整性值h0连同所存储的完整性值一起进行完整性计算;以及,使用所述完整性计算的结果进行进一步处理。
本发明在第二方面相应地提供了一种保证消息完整性的系统,包括:与被加密的完整性值h0一起发送一个消息的装置,该加密的完整性值h0的加密使用的是基于所述消息的散列值的密钥;对所述加密的完整性值h0解密的装置;使用所述完整性值h0连同所存储的完整性值一起进行完整性计算的装置;以及,使用所述完整性计算的结果进行进一步处理的装置。
本发明在第三方面相应地提供了一种可直接装入数字计算机的内存中的计算机程序产品,其包括当该产品在计算机上运行时,执行一种保证消息完整性的方法的软件代码部分,该方法包括:与被加密的完整性值h0一起发送一个消息,该加密的完整性值h0的加密使用的是基于所述消息的散列值的密钥;对所述加密的完整性值h0解密;使用所述完整性值h0连同所存储的完整性值一起进行完整性计算;以及,使用所述完整性计算的结果进行进一步处理。
这样,个体用户设备能够保证分发中心发送的数字消息的真实性和完整性,而不用从个体用户设备向分发中心进行传输。这对于内容保护和数字权利管理是特别有用的,就像在仅希望由一组授权接收者使用的加密消息的广播分发(broadcast distribution)中一样。
附图说明
下面结合附图作为举例描述本发明的优选实施例。附图中:
图1是本发明的优选实施例的新消息生成方法的流程图;
图2是本发明的优选实施例的新消息验证和生效方法的流程图。
具体实施方式
优选实施例使得个体用户设备能够使用硬件和软件的结合执行计算,以保证分发中心发送的数字消息的真实性和完整性。优选实施例不要求从个体用户设备向分发中心传输数据,尤其是包括任何特有的设备标识信息或者加密密钥的传输。这对于内容的保护和数字权利管理来说尤其有用,就如在内容保护软件的发送中那样,所述内容保护软件仅允许在软件被完整发送时正确放出(extrication)完整性值K’。
所述软件最好依赖特有的、静态的基于硬件的值来判断接收者是否有权访问受保护的内容,但是仅当通过密码验证和生效后才执行。所述消息可以包括软件升级和软件程序的各个部分,当与密码确定的完整性值组合时,它们变为完整的。或者,所述完整性值K’本身可以包括软件程序的各个部分或者加密密钥。
个体用户设备在防篡改硬件中存储至少两个最好是特有的秘密数g1和g2。所述防篡改硬件可以被包括在例如在个人计算机中广泛使用的多媒体卡中。除了其它一些多媒体卡之外,有Creative制造的多媒体卡(例如可以在www.creative.com上查看关于
Figure G038212730D00062
系列卡的说明),它们在本领域是公知的。或者,个体用户设备可以包括完整的安全计算系统。对该问题最好是具有硬件/软件混合解决方案,使得g1和g2的值的特有组合被存储在个体用户设备比如PC声卡中,但是同一软件,比如公共声卡驱动程序能够由许多不同的卡予以执行。g1和g2的秘密值有效地用作设备密钥,其最好独特地标识给定的用户设备硬件实例。
所述分发中心建立数字印章和公开模M,它们然后由用户设备与设备密钥g1和g2以及初始消息散列值h0组合起来,以计算一个完整性值K。可以采用任何散列算法,包括执行各种模糊化函数(obfuscation function)的散列算法。完整性值K最好对每一个个体用户设备是特有的,这是由于a、g1和g2的独特性决定的,其由用户设备计算为K=g1 h0g2 a mod M。
个体用户设备接收和如下处理随后的消息:用户设备计算一个消息散列值h,并识别随该消息发送的值s和pq(它们将在下面描述)。用户设备使用新的值h,s和pq以及已有的值g1,g2,a和M计算新的完整性值K’:K’=g1 xg2 a mod M,其中x=sh mod Pq。质数p和q的选择如下所述。p和q都不单独传输。如果消息散列值h是正确的,则x=h0,所计算的完整性值K’等于预定的完整性值K。s因此是初始消息值h0的有效加密,加密是基于新消息散列值h和pq。由于用户设备需要K用于进一步的正确操作(例如,K可能包含设备密钥),当且仅当消息的源和内容正确时,,消息才会被正确地处理。
新消息的正确散列值h1被设计为分发中心的公开RSA密钥,如果存在z使得h1z=1mod F(pq),则该散列值可以得到保证,其中F是欧拉函数,在此例子中F(Pq)=(p-1)(q-1)。然后,对于新消息,z成为分发中心的私人RSA密钥。为了满足此公式,h1和F(pq)的最大公约数(gcd)必须是1,也就是它们必须没有公因子。(p-1)和(q-1)都是偶数,因此,如果h1是偶数,则所述关系永远得不到满足,z不存在。因此,必须采取步骤以确保h1是奇数。例如,可以对新消息进行不连贯的变化,直到新消息的散列值成为奇数。或者可以采用一个约定:如果散列值是偶数,则总是加上或者减去1。在另外的实施例中,可以对散列值的低位进行“或”运算。在另一个实施例中,可以进行赋值:h1=2h1+1,以确保将h1强制为奇数。其它确保h1为奇数的技术都是本领域普通技术人员所熟悉的。如果h1是奇数,则最大公约数可能是1,但是仍然需要进行测试,以保证该条件得到满足。如果最大公约数不是1,则分发中心简单地取另一组素数p和q,尝试另一个模值pq。在RSA加密领域的通常做法是以如下方式取素数:取一个随机的素数p’,测试2p’+1是否也是素数。如果是则设定p=2p’+1。然后,在优选实施例中,对q进行相同的操作。如果遵循这种做法,则奇数h1产生大于1的最大公约数的机会几乎为0。
现在看图1,其中图示了一个优选实施例的新消息生成方法的流程图。分发中心准备用于分发给至少一个用户设备(DD)的新消息。例如,分发的手段可以包括在计算机网络(比如因特网、卫星和有线电视传输)上下载,以及计算机可读介质(比如磁盘、CD-ROM和DVD-ROM)的物理分发。其它分发手段对本领域普通技术人员来说也是熟悉的。在步骤102,分发中心计算新消息的散列值h1,并通过执行上述任何传统步骤来强制该散列值为奇数。接下来,分发中心在步骤104选择两个素数p和q,计算F(Pq)和积pq。在步骤106,分发中心判断散列值h1和F(pq)的最大公约数是否为1,也就是是否没有公因子。这个条件确定是否满足关系式h1z=1mod F(pq),从而新消息的散列值h1是分发中心的公开RSA密钥。如果不满足该条件,则分发中心在步骤108对p和q选择新的值,然后返回步骤104计算F(pq)和模pq。如果满足该条件,则分发中心前进到步骤110计算z,使得zh1=1mod F(pq)。这是用称为推广的欧几里德算法(GeneralisedEuclid Algorithm)的数学过程完成的。分发中心前进到步骤112计算s=h0 z mod pq,其中h0是初始消息散列值,z用作私人RSA密钥。只有分发中心能够计算z,因为只有分发中心知道F(Pq)。初始散列值h0和私人密钥z的组合用作新消息的生效(完整性的验证)的基础,因为只有分发中心能够建立用来确定与初始完整性值K匹配的新的完整性值K’的数据。接下来,在步骤114,分发中心将s和Pq的值附加到新消息上。最后,在步骤116,分发中心发送所述新消息。
现在看图2,其中图示了根据本发明的一个优选实施例的新消息验证和生效方法的流程图。每一个用户设备(UD)是一个具体的硬件实例,其能够执行确保来自分发中心的新消息的完整性所涉及的计算方法步骤。每一个用户设备在防篡改或者完全安全的硬件中存储最好是独特的值g1,g2和a。在步骤202,用户设备从所述分发中心接收所述新消息。接下来,在步骤204,用户设备使用与分发中心所使用的相同的散列算法来计算所述新消息的一个测试散列值h。在步骤206,用户设备如上所述进一步使用所接收到的s和pq值以及其自己的设备值g1和g2、所述新消息的散列值h、数字印章a以及模M来计算一个新的完整性值K’。在步骤208,在进一步的处理中使用新的完整性值K’,就如同使用K一样。当然,如果K’不等于K,所述进一步处理会失败。因此,试图通过修改消息来获得好处的攻击者会导致整体失败,而不是其所需的有限的性能修改。
在所述优选实施例中,根据上述步骤对通用计算机编程。在另外的实施例中,有数字处理设备来使用制造品(机器部件)来执行本发明的上述逻辑。

Claims (4)

1.一种保证消息完整性的方法,包括:
与被加密的完整性值h0一起发送一个消息,对该完整性值h0的加密使用的是基于所述消息的散列值的密钥;
对所述被加密的完整性值h0解密;
使用所述完整性值h0连同所存储的完整性值一起进行完整性计算;以及
使用所述完整性计算的结果进行进一步处理。
2.如权利要求1所述的方法,其中,所述完整性计算是一个数字印章计算。
3.如权利要求1所述的方法,其中,所述消息包括软件程序。
4.一种保证消息完整性的系统,包括:
与被加密的完整性值h0一起发送一个消息的装置,对该完整性值h0的加密使用的是基于所述消息的散列值的密钥;
对所述被加密的完整性值h0解密的装置;
使用所述完整性值h0连同所存储的完整性值一起进行完整性计算的装置;以及
使用所述完整性计算的结果进行进一步处理的装置。
CN038212730A 2002-09-26 2003-09-22 保证软件完整性的系统和方法 Expired - Lifetime CN1689269B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/259,542 2002-09-26
US10/259,542 US7240200B2 (en) 2002-09-26 2002-09-26 System and method for guaranteeing software integrity via combined hardware and software authentication
PCT/GB2003/004064 WO2004030269A2 (en) 2002-09-26 2003-09-22 System and method for guaranteeing software integrity

Publications (2)

Publication Number Publication Date
CN1689269A CN1689269A (zh) 2005-10-26
CN1689269B true CN1689269B (zh) 2010-04-28

Family

ID=32029514

Family Applications (1)

Application Number Title Priority Date Filing Date
CN038212730A Expired - Lifetime CN1689269B (zh) 2002-09-26 2003-09-22 保证软件完整性的系统和方法

Country Status (10)

Country Link
US (3) US7240200B2 (zh)
EP (1) EP1547305B1 (zh)
JP (1) JP4793843B2 (zh)
KR (1) KR100702499B1 (zh)
CN (1) CN1689269B (zh)
AT (1) ATE455409T1 (zh)
AU (1) AU2003264906A1 (zh)
DE (1) DE60330976D1 (zh)
TW (1) TWI225195B (zh)
WO (1) WO2004030269A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI480735B (zh) * 2012-02-14 2015-04-11 Nuvoton Technology Corp 具有防複製功能的微處理器晶片及其晶片燒錄系統與電子裝置

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005293109A (ja) * 2004-03-31 2005-10-20 Canon Inc ソフトウェア実行管理装置、ソフトウェア実行管理方法、及び制御プログラム
US8312431B1 (en) * 2004-09-17 2012-11-13 Oracle America, Inc. System and computer readable medium for verifying access to signed ELF objects
KR100711722B1 (ko) * 2005-10-04 2007-04-25 엘지전자 주식회사 이동통신 단말기의 소프트웨어 인증 장치 및 그 방법
US7389426B2 (en) * 2005-11-29 2008-06-17 Research In Motion Limited Mobile software terminal identifier
US7571377B2 (en) * 2005-12-22 2009-08-04 International Business Machines Corporation Method and apparatus for transmitting data in an integrated circuit
US20100048193A1 (en) * 2006-07-13 2010-02-25 Jean-Michel Ortion Secure upgrade of a mobile device with an individual upgrade software over the air
DE102007056662A1 (de) * 2007-11-24 2009-05-28 Bayerische Motoren Werke Aktiengesellschaft System zur Freischaltung der Funktionalität einer Ablaufsteuerung, die in einem Steuergerät eines Kraftfahrzeugs gespeichert ist
JP4998314B2 (ja) * 2008-02-19 2012-08-15 コニカミノルタホールディングス株式会社 通信制御方法および通信制御プログラム
WO2009118800A1 (ja) * 2008-03-28 2009-10-01 パナソニック株式会社 ソフトウェア更新装置、ソフトウェア更新システム、改ざん検証方法、及び改ざん検証プログラム
EP2259204A1 (en) 2008-03-28 2010-12-08 Panasonic Corporation Software updating apparatus, software updating system, invalidation method, and invalidation program
US8108928B2 (en) 2008-06-20 2012-01-31 International Business Machines Corporation Adaptive traitor tracing
US8949797B2 (en) 2010-04-16 2015-02-03 International Business Machines Corporation Optimizing performance of integrity monitoring
US8782435B1 (en) 2010-07-15 2014-07-15 The Research Foundation For The State University Of New York System and method for validating program execution at run-time using control flow signatures
US8782434B1 (en) 2010-07-15 2014-07-15 The Research Foundation For The State University Of New York System and method for validating program execution at run-time
US8683579B2 (en) * 2010-12-14 2014-03-25 Microsoft Corporation Software activation using digital licenses
US9063721B2 (en) 2012-09-14 2015-06-23 The Research Foundation For The State University Of New York Continuous run-time validation of program execution: a practical approach
CN104217141B (zh) * 2014-09-04 2017-02-15 东莞理工学院 一种增强的虚拟仪器测量软件计量支持方法及装置
WO2016051591A1 (ja) * 2014-10-03 2016-04-07 株式会社 東芝 再暗号化鍵生成装置、再暗号化装置、暗号化装置、復号装置及びプログラム
CA2874277C (en) * 2014-10-04 2015-08-18 2381371 Ontario Inc. Tamper-evident network messaging method and system, and device configured therefor
CN107249002B (zh) * 2017-07-20 2021-02-23 云南电网有限责任公司电力科学研究院 一种提高智能电能表安全性的方法、系统及装置
CN108173653A (zh) * 2018-03-13 2018-06-15 江苏信源久安信息科技有限公司 通过标识密码算法生成具有生命周期密钥的方法
US11640475B1 (en) * 2019-11-26 2023-05-02 Gobeep, Inc. Systems and processes for providing secure client controlled and managed exchange of data between parties
CN111404952B (zh) * 2020-03-24 2022-06-14 中国南方电网有限责任公司 变电站数据加密传输方法、装置、计算机设备和存储介质
CN116522300B (zh) * 2023-07-04 2023-09-08 北京点聚信息技术有限公司 一种电子印章智能管理系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1197248A (zh) * 1996-09-25 1998-10-28 中国工商银行福建省分行 一种数字签名方法
US5978482A (en) * 1995-08-21 1999-11-02 International Business Machines Corporation Method and system for protection of digital information

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4405829A (en) * 1977-12-14 1983-09-20 Massachusetts Institute Of Technology Cryptographic communications system and method
US4658093A (en) * 1983-07-11 1987-04-14 Hellman Martin E Software distribution system
US5266771A (en) * 1991-12-05 1993-11-30 Amf Irrevocable Trust Ornament having patterned ornamental indicia thereon, and method and apparatus for fabricating same
US5343527A (en) * 1993-10-27 1994-08-30 International Business Machines Corporation Hybrid encryption method and system for protecting reusable software components
JP2570136B2 (ja) * 1993-10-28 1997-01-08 日本電気株式会社 鍵生成装置
JPH09233068A (ja) * 1996-02-23 1997-09-05 Digital Vision Lab:Kk 電子認証システム
US6049671A (en) 1996-04-18 2000-04-11 Microsoft Corporation Method for identifying and obtaining computer software from a network computer
US6138236A (en) * 1996-07-01 2000-10-24 Sun Microsystems, Inc. Method and apparatus for firmware authentication
US5919247A (en) * 1996-07-24 1999-07-06 Marimba, Inc. Method for the distribution of code and data updates
US6381741B1 (en) * 1998-05-18 2002-04-30 Liberate Technologies Secure data downloading, recovery and upgrading
US6266771B1 (en) 1997-02-10 2001-07-24 The Regents Of The University Of California Probabilistic signature scheme
US6334189B1 (en) * 1997-12-05 2001-12-25 Jamama, Llc Use of pseudocode to protect software from unauthorized use
US6105137A (en) * 1998-07-02 2000-08-15 Intel Corporation Method and apparatus for integrity verification, authentication, and secure linkage of software modules
US6266429B1 (en) * 1998-09-23 2001-07-24 Philips Electronics North America Corporation Method for confirming the integrity of an image transmitted with a loss
US6389537B1 (en) 1999-04-23 2002-05-14 Intel Corporation Platform and method for assuring integrity of trusted agent communications
DE10008973B4 (de) 2000-02-25 2004-10-07 Bayerische Motoren Werke Ag Autorisierungsverfahren mit Zertifikat
KR100455566B1 (ko) 2000-06-30 2004-11-09 인터내셔널 비지네스 머신즈 코포레이션 코드 갱신을 위한 장치 및 방법
JP3725020B2 (ja) * 2000-11-22 2005-12-07 株式会社日立製作所 電子データの内容証明方法及びそのシステム
US20020083318A1 (en) * 2000-12-26 2002-06-27 Larose Gordon Edward Method and system for software integrity control using secure hardware assist

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978482A (en) * 1995-08-21 1999-11-02 International Business Machines Corporation Method and system for protection of digital information
US6038316A (en) * 1995-08-21 2000-03-14 International Business Machines Corporation Method and system for protection of digital information
CN1197248A (zh) * 1996-09-25 1998-10-28 中国工商银行福建省分行 一种数字签名方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MIHIR BELLARE, RAN CANETTI, HUGO KRAWCZYK.Keying Hash Function for Message Authentication.Crypto 96 Proceedings1109.1996,1109全文. *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI480735B (zh) * 2012-02-14 2015-04-11 Nuvoton Technology Corp 具有防複製功能的微處理器晶片及其晶片燒錄系統與電子裝置

Also Published As

Publication number Publication date
JP4793843B2 (ja) 2011-10-12
CN1689269A (zh) 2005-10-26
KR20050056204A (ko) 2005-06-14
WO2004030269A3 (en) 2004-08-12
US20080313460A1 (en) 2008-12-18
JP2006500843A (ja) 2006-01-05
US7240200B2 (en) 2007-07-03
US7721098B2 (en) 2010-05-18
EP1547305B1 (en) 2010-01-13
US20040064695A1 (en) 2004-04-01
ATE455409T1 (de) 2010-01-15
AU2003264906A8 (en) 2004-04-19
KR100702499B1 (ko) 2007-04-02
US7734921B2 (en) 2010-06-08
TW200406667A (en) 2004-05-01
WO2004030269A2 (en) 2004-04-08
DE60330976D1 (de) 2010-03-04
US20080215885A1 (en) 2008-09-04
AU2003264906A1 (en) 2004-04-19
TWI225195B (en) 2004-12-11
EP1547305A2 (en) 2005-06-29

Similar Documents

Publication Publication Date Title
CN1689269B (zh) 保证软件完整性的系统和方法
US11778059B1 (en) Systems and methods for recognizing a device
EP0881559B1 (en) Computer system for protecting software and a method for protecting software
EP0750410B1 (en) Method and system for generation and management of secret key of public cryptosystem
US6516413B1 (en) Apparatus and method for user authentication
CN101443774B (zh) 优化完整性验证过程的方法和系统
US8131996B2 (en) Distributed management of a certificate revocation list
US7693286B2 (en) Method of delivering direct proof private keys in signed groups to devices using a distribution CD
CA2071771A1 (en) Cryptographic facility environment backup/restore and replication in a public key cryptosystem
CN104573549A (zh) 一种可信的数据库机密性保护方法及系统
CN113435888A (zh) 一种账户数据处理方法、装置、设备及存储介质
CN112688972A (zh) 一种保护账号安全的方法及系统
KR20140071775A (ko) 암호키 관리 시스템 및 방법
EP1594251B1 (en) Distributed management of a certificate revocation list
KR100897075B1 (ko) 배포 cd를 사용하는 장치에 서명 그룹의 다이렉트 증명개인 키들을 전달하는 방법
CN112818384B (zh) 基于区块链的资产处理方法、装置、设备及存储介质
Michéle et al. Structure-based RSA fault attacks
CN116938463A (zh) 应用运行环境的可信性检测方法、设备及介质
CN117454437A (zh) 交易处理方法、存储介质及电子设备
CN117499159A (zh) 一种基于区块链的数据交易方法、装置及电子设备
CN110555311A (zh) 一种基于纯软密码运算的电子签章系统安全设计方法及系统

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
CX01 Expiry of patent term

Granted publication date: 20100428

CX01 Expiry of patent term