CN1842757B - 用于增量代码签署的方法和装置 - Google Patents

用于增量代码签署的方法和装置 Download PDF

Info

Publication number
CN1842757B
CN1842757B CN2004800216119A CN200480021611A CN1842757B CN 1842757 B CN1842757 B CN 1842757B CN 2004800216119 A CN2004800216119 A CN 2004800216119A CN 200480021611 A CN200480021611 A CN 200480021611A CN 1842757 B CN1842757 B CN 1842757B
Authority
CN
China
Prior art keywords
computer program
hashed value
page
hash array
array
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
CN2004800216119A
Other languages
English (en)
Other versions
CN1842757A (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.)
Apple Inc
Original Assignee
Apple Computer Inc
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 Apple Computer Inc filed Critical Apple Computer Inc
Priority to CN201010121290.7A priority Critical patent/CN101777103B/zh
Publication of CN1842757A publication Critical patent/CN1842757A/zh
Application granted granted Critical
Publication of CN1842757B publication Critical patent/CN1842757B/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • 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
    • H04L9/3239Cryptographic 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 involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • 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
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)

Abstract

本发明公开了一种用于快速和容易地验证大型计算机程序的方法。本系统是这样运行的:首先以增量方式用数字签名来加封计算机程序。具体地说,所述计算机程序被分解为一组页面,并且为每一个页面计算一个散列值。所述散列值的集合被形成为一个散列值阵列,然后用数字签名来加封所述散列值阵列。接着,所述计算机程序连同所述散列值阵列和所述数字签名一起分发。为了验证所述计算机程序,接收者首先通过数字签名和公钥来验证散列值阵列的真实性。一旦所述散列值阵列已经被验证,接收者随后可通过计算待装载的一个页面的散列值,然后与已验证的散列值阵列中的一个相关散列值进行比较,来验证所述计算机程序的每个页面的真实性。如果散列值不匹配,则停止执行。

Description

用于增量代码签署的方法和装置
技术领域
本发明涉及计算机安全领域,特别是,本发明公开了一种用于证实未经授权方没有篡改计算机程序代码的系统。
背景技术
计算机安全是计算机软件生产商所面临的最迫切的问题之一。随着因特网的普及浪潮的兴起,几乎每一个个人计算机系统都在这一点或那一点上联网。这种巨大的连接能力已经给个人计算机带来许多好处。然而,它也已经给计算机用户带来许多新问题。最大的问题之一就是从因特网传送的病毒、蠕虫、特洛伊木马和其它恶意的程序。
恶作剧的计算机编程者,有时被称为“黑客”,经常尝试去侵入计算机系统以便窃取信息或者作出未经授权的改动。黑客使用多种不同类型的攻击,企图侵入计算机系统。计算机黑客使用的一般方法包括特洛伊木马(一种表面上为良性的计算机程序,里面含有隐藏的议程),计算机病毒(一段软件,它能在宿主程序内复制它本身),计算机蠕虫(一段软件,它能在计算机网络上复制它本身),以及社会工程(用授权代码来欺骗人,使其泄露那些已授权的代码)。
这些恶作剧的计算机编程者经常通过添加程序代码来改变现有合法程序以执行未经授权的功能。通过在合法程序内放置这样的已授权程序代码,所述恶作剧的计算机编程者由此将未经授权的程序代码隐藏起来。因此,未经授权的代码能长期驻留在人们的个人计算机系统内而不被人察觉。未经授权的程序代码可以破坏有价值的数据,浪费计算机资源(CPU周期、网络带宽、存储空间等等),或者窃取保密信息。
为了保护合法程序免遭这样的未经授权的搀杂,某些软件制造商生成所述程序代码的校验和。校验和是使用所述程序代码作为输入值而计算出来的值,使得每一个不同的计算机程序都趋向于具有一个不同的校验和值。然后,软件制造商用私钥对校验和进行数字“签署”。在运行所述计算机程序代码之前,用户必须验证所述程序代码。具体地说,用户用软件制造商的公钥对所述程序代码进行解密之后,让个人计算机系统计算所述程序代码的校验和,然后将计算出来的校验和值与软件制造商计算出来的校验和进行比较。如果这两个校验和匹配,则所述计算机程序被认为是真实的。
这些现有的基于校验和的保护系统已经被认为工作得很好。然而,为了验证大型计算机程序,这些现有的基于校验和的保护系统可能要用很长的时间。因此,人们希望提供一种用于验证大型计算机程序的更快的系统。
发明内容
本发明公开了一种用于快速地和容易地验证大型计算机程序的方法。本方法是这样运行的:首先以增量方式用数字签名来加封计算机程序。具体地说,所述计算机程序被分为一组程序块,并且为每一个程序块计算一个散列值。所述散列值的集合被形成为一个散列值阵列,然后用数字签名来加封所述散列值阵列。接着,所述计算机程序连同所述散列值阵列和所述数字签名一起分发。为了验证所述计算机程序,接收者首先通过数字签名和公钥来验证散列值阵列的真实性。一旦所述散列值阵列已经通过验证,接收者随后通过计算待装载的一个程序块的散列值,然后与已验证的散列值阵列中的一个相关散列值进行比较,来验证每一个计算机程序块的真实性。如果这两个散列值不匹配,则可以停止执行。
在随后的实施例和附图所描述和图示的本发明的实施方式中,将达到上述和其它目标。
附图说明
通过以下的结合附图的详细说明,将使本发明变得易于理解,其中,相同的参考数字表示相同的结构元件,在附图中:
图1是表示如何用数字签名来加封计算机程序的概念图。
图2是流程图,说明计算机系统在执行所述计算机程序之前,如何验证用数字签名加封的计算机程序。
图3是描述如何使用增量代码签署通过数字签名来加封计算机程序的概念图。
图4是流程图,说明如何使用增量代码签署通过数字签名和散列值阵列来加封计算机程序。
图5是流程图,说明计算机系统如何验证并执行已经通过增量代码签署加封的计算机程序。
具体实施方式
表示法和术语表
在以下的关于本发明的详细说明中,陈述了许多专门的细节,以便提供对本发明的透彻理解。然而,对本领域的技术人员来说,显而易见的是,没有这些专门的细节,也可以实施本发明。在其它实例中,对众所周知的方法、过程、部件和电路不进行详细说明,以避免不必要地使本发明的一些方面变得含糊不清。
下面,本发明的详细说明在很大程度上以过程、步骤、逻辑块、处理和描述被连接到网络的数据处理装置的其它符号表示的形式来提供。这些过程描述和表示是本领域的技术人员用来向本领域的其它技术人员最有效地传递它们的工作内容的方法。下面详细说明的方法和装置是导致所期望的结果的过程或步骤的一个首尾一贯的序列。这些步骤或过程是各种物理量的所需的物理操作。通常,虽然不一定是这样,这些量采取可以被存储、传送、组合、比较、显示以及可以在计算机系统或电子计算装置中进行其它操作的电信号的形式。它证明经常都是方便的,主要地由于通用的原因,把这些信号表示为比特、数值、元素、符号、运算、消息、项、数目等。应当记住,所有这些相似的术语都跟适当的物理量有关,并且是被施加到这些量的仅有的方便的标记。除了像下面的明显描述那样另有说明的情形以外,应当理解,本发明从头到尾都利用诸如“处理”或“计算”或“验证”或“显示”等那样的术语,指的都是一个计算装置的动作和过程,上述计算装置把在所述计算装置的寄存器和存储器中被表示为物理量的数据操作和变换为在所述计算装置或其它电子装置中类似地被表示为各种物理量的其它数据。
采用数字签名的计算机程序安全
为了保护计算机程序免遭未经授权的篡改,软件制造商可以为计算机程序生成一种特殊的“封条”,在程序被执行之前,必须对所述封条进行测试。如果所述封条或计算机程序代码已经被篡改,则测试将失败,从而拒绝执行所述程序。
生成这样一种封条的通用方法就是使用众所周知的“公钥”加密技术。下面将参照图1和2来说明使用公钥加密技术的这样一个系统。
数字加封计算机程序
现在参照附图,在所有的图中,相同的数字指相同的部件,图1从概念上说明为计算机程序100生成数字封条或数字签名的过程。首先,使用一个散列函数110为整个计算机程序100计算一个散列值,从而计算程序散列值120。所述程序散列值120是从所述计算机程序100导出的一个小的代表,诸如校验和。然后,使用数字签名函数130用可信实体的私钥140对所述程序散列值120进行数字签署,生成用于程序散列的数字签名150。用于程序散列的数字签名150就是当程序被分发时与之相伴随的数字封条(或数字签名)。
验证数字加封的计算机程序的真实性
图2是流程图,说明在图1中用于程序散列的数字签名150如何被用来验证程序的真实性。参照图2,在步骤210,使用计算机程序100的计算机系统首先装载整个计算机程序100。然后,在步骤220,计算机系统为整个计算机程序100计算一个程序散列值(如同在图1中由散列函数110所做的那样)。
其次,在步骤230和240,所述计算机系统使用生成数字签名的可信实体的公知公钥235,将与计算机程序100相伴随的用于程序散列的数字签名150与来自步骤220的已计算的程序散列值进行比较。具体地说,由数字签名函数用公钥235来处理用于程序散列的数字签名150,然后将其结果与来自步骤220的已计算的程序散列值进行比较。
如果来自步骤220的已计算的散列函数匹配于用公钥235处理之后的用于程序散列的数字签名150,则计算机系统进入步骤250,程序在此开始执行。然而,如果来自步骤220的已计算的散列函数不匹配于用公钥235处理之后的用于程序散列的数字签名150,则计算机系统进入步骤260,并且拒绝执行计算机程序100。
图1和2的验证系统对小型程序来说工作得很满意,然而它不适用于大型的计算机程序。在图2的流程图的步骤210和220中,可以发现图1和2的验证系统存在的一个重大问题。步骤210和220要求把整个计算机程序100装入存储器,然后在整个计算机程序100上计算一个散列值。对大型程序来说,这个过程将占用十分长的时间。因此,用户被迫等待耗时的整个装载和计算过程。今天的不耐烦的计算机用户将简单地不能耐受这样长的装载时间。
需要保护的一个特别大的计算机程序就是用于计算机系统的操作系统。操作系统有权控制所有的计算机输入/输出设备,诸如盘驱动器、网络连接、显示器、备份系统等。因此,人们非常希望能有一个计算机程序验证系统,它能快速地和有效地保护一个计算机操作系统。
增量代码签署
本发明引入了一种对计算机程序进行数字签署用于安全的改进方法,它不引入在现有系统中出现的长装载时间。本发明通过把计算机程序分解为一些被单独验证的较小单元来进行工作。
通过增量代码签署数字加封计算机程序
图3和图4表示本发明的系统如何为程序生成数字封条,使之能够以更快和更有效的方式被使用。图3表示如何生成数字封条的概念图。图4是详细的流程图,说明用于生成数字封条的方法。
参照图3和图4,在步骤410中,本发明首先将计算机程序300分解为许多“页面”(380至389)。大多数计算机系统已经使用分页存储器组织来实现虚拟存储器系统。因此,本发明可以使用由特定的处理器和/或操作系统提供的现有存储器分页系统。存储页面的大小典型地为4千字节(4k)或8k。
其次,在步骤420和430中,所述系统使用散列函数310,为计算机程序300的每一个存储页面计算一个散列值。散列函数310可以是任何散列函数,诸如公知的SHA或MD5散列函数。如图3所示,散列函数310将为计算机程序300的每一个存储页面(380至389)生成一个相关的散列值(390至399)。在一个实施例中,输出散列值的大小为20字节。然而,可以使用多种不同大小的散列值。
在步骤440中,本发明的系统将计算的散列值(390至399)安排到被称为散列值阵列373的散列值阵列中。然后,在步骤450中,所述系统使用散列函数370为整个散列值阵列373计算一个阵列散列值360。在一个实施例中,散列函数370相同于散列函数310。然而,可以使用不同的散列函数。
然后,在步骤460中,加封程序的可信实体使用签名函数330,通过它的私钥340对阵列散列值360进行数字签署,以便生成用于散列值阵列的数字签名350。最后,在步骤470,散列值阵列373以及用于散列值阵列的数字签名350,连同计算机程序300一起被存储。散列值阵列373以及用于散列值阵列的数字签名350也随同计算机程序300一起被分发,使得计算机程序300的任何接收者都能验证其真实性。
验证数字加封的计算机程序的真实性
一旦为一段计算机程序生成一个散列值阵列373以及用于散列值阵列的数字签名350,就可以向用户分发所述计算机程序,使用户可以快速地和有效地验证所述计算机程序。图5是流程图,说明已经通过增量代码签署数字加封的计算机程序的接收者如何验证并执行已经数字加封的计算机程序。
参照图5,在步骤510,接收者的个人计算机系统首先装载伴随所述计算机程序的散列值阵列。在步骤515,计算机系统为整个散列值阵列计算一个散列值。由于散列值的阵列不是很大,所以这种特定的散列计算可以非常迅速地完成。
其次,在步骤520和525,所述计算机系统使用加封所述计算机程序的可信实体的公知公钥,比较计算的散列值和伴随所述计算机程序100的散列值阵列的数字签名。
如果所述数字签名不匹配于从散列值阵列计算的散列值,则计算机系统进入步骤580,在此它拒绝执行所述计算机程序。由于未经授权的实体已经损坏了数字签名和/或散列值阵列,所以执行被拒绝。
回到步骤525,如果所述数字签名匹配于从散列值阵列计算的散列值,则计算机系统进入步骤530,在此它装载计算机程序的一个页面。然后,在步骤540,所述计算机系统为装载的计算机程序页面计算一个散列值。可以在计算机的操作系统的存储器分页机构内进行此种计算。在步骤550和555,比较针对已装载计算机程序页面的已计算散列值与特定存储页面相关的散列值阵列中的散列值。
如果针对已装载计算机程序的已计算散列值不匹配于来自散列值阵列的相关散列值,则计算机系统进入步骤580,在此它拒绝继续执行。此种拒绝继续执行可以被实现为所述计算机系统的虚拟存储器系统内的页面故障。告知此种失败的其它可能的方法可以是指出所述页面不可读、已经出现验证差错,或者简单地中止。
回到步骤555,如果针对已装载的计算机程序页面的已计算散列值匹配于来自散列值阵列的相关散列值,则计算机系统进入步骤560,在此开始执行所述程序的已装载页面。最后,所述程序将完成所述已装载的页面(以及先前已装载的页面)中的代码的执行,并将完全地完成执行,或者需要计算机程序的另一个页面,如步骤570所述那样。如果所述程序已被完全地完成执行,则计算机简单地进入步骤590,在此它已被完成。
在步骤570,如果需要计算机程序的另一个页面,则计算机系统返回到步骤530,以便装载计算机程序的所需页面。新装载的页面必须通过步骤540、550和555被验证。
要注意的是,计算机系统利用先前已验证的散列值阵列来进一步地验证装载的每一个存储页面。因此,计算机必须保证在程序执行过程中,已验证的散列值阵列没有受到损坏。例如,如果操作系统将已验证的散列值阵列交换到受保护的存储器以外,则一旦所述散列值阵列被装回,它必须被重新验证以保证其真实性。
该书面的说明书和附图已经足够详细地公开了本发明,并且带有一定程度的特殊性。本领域的技术人员应当理解,已经作出的各实施例的公开内容仅借助于实例,并且在各部件的安排、组合和步骤方面可以作出各种各样的改变而不离开所主张的本发明的精神实质和范围。因此,本发明的范围由所附的权利要求书来规定,而不是由前面的实施例的说明来规定。

Claims (26)

1.一种用于加封在特定计算设备上运行的计算机程序的方法,所述方法包括:
将所述计算机程序分解为多个页面,其中,所述分解基于在其上运行所述计算机程序的所述特定计算设备的存储器页面的大小;
为每一个所述页面计算一个散列值;
生成具有所述页面的所述散列值的散列值阵列;
为所述散列值阵列生成数字签名;以及
组合所述计算机程序以及所述散列值阵列和所述数字签名。
2.如权利要求1所述的方法,其中,计算所述散列值包括计算SHA散列值。
3.如权利要求1所述的方法,还包括:
分发所述计算机程序、所述散列值阵列和所述数字签名。
4.如权利要求1所述的方法,其中,为所述散列值阵列生成数字签名包括:
为所述散列值阵列计算一个阵列散列值;以及
数字签署所述阵列散列值。
5.如权利要求4所述的方法,其中,数字签署所述阵列散列值包括:通过一个私钥和一个公钥加密密钥函数来生成所述数字签名。
6.如权利要求1所述的方法,其中,组合所述计算机程序以及所述散列值阵列和所述数字签名包括:将所述计算机程序、所述散列值阵列和所述数字签名存储在一起。
7.如权利要求1所述的方法,其中,所述计算机程序包括操作系统。
8.一种用于验证在特定计算设备上运行的计算机程序的方法,所述方法包括:
通过使用伴随所述计算机程序的散列值阵列的数字签名,来验证伴随所述计算机程序的所述散列值阵列的真实性;
装载来自所述计算机程序的多个页面的一个页面,其中,所述多个页面中的每一个页面具有基于所述特定计算设备的存储器页面的大小的大小;
在装载整个计算机程序之前:
为所述装载的页面计算一个散列值;
比较为所述装载的页面计算的散列值和来自所述散列值阵列的针对所述装载的页面的相关散列值;以及
如果为所述装载的页面计算的散列值不匹配于所述相关散列值,则产生一个错误。
9.如权利要求8所述的方法,其中,验证所述散列值阵列的真实性包括:
为伴随所述计算机程序的散列值阵列计算一个阵列散列值;以及
使用公钥来比较所述阵列散列值和所述散列值阵列的所述数字签名。
10.如权利要求8所述的方法,其中,通过使用散列值阵列的数字签名来验证伴随所述计算机程序的所述散列值阵列的真实性包括:通过一个公钥和公钥加密密钥函数来测试所述数字签名。
11.如权利要求8所述的方法,还包括当执行需要来自所述计算机程序的多个页面的附加页面并且没有错误产生时,重复所述装载、计算和比较。
12.如权利要求8所述的方法,其中,计算所述散列值包括计算SHA散列值。
13.如权利要求8所述的方法,其中,如果为所述装载的页面计算的散列值不匹配于所述相关散列值则产生所述错误包括:指出页面错误。
14.如权利要求8所述的方法,其中,如果为所述装载的页面计算的散列值不匹配于所述相关散列值则产生所述错误包括:指出页面读取错误。
15.如权利要求8所述的方法,其中,如果为所述装载的页面计算的散列值不匹配于所述相关散列值则产生所述错误包括:指出验证错误。
16.如权利要求8所述的方法,其中,所述计算机程序包括操作系统。
17.如权利要求8所述的方法,还包括:
将所述散列值阵列交换出受保护存储器;以及
在将所述散列值阵列交换回所述受保护存储器之后,重新验证所述散列值阵列的真实性。
18.一种用于验证在特定计算设备上运行的计算机程序的装置,所述装置包括下列部件:
通过使用伴随所述计算机程序的散列值阵列的数字签名,来验证伴随所述计算机程序的所述散列值阵列的真实性的部件;
装载来自所述计算机程序的多个页面的一个页面的部件,其中,所述多个页面中的每一个页面具有基于所述特定计算设备的存储器页面的大小的大小;
在装载整个计算机程序之前,为所述装载的页面计算一个散列值,比较为所述装载的页面计算的散列值和来自所述散列值阵列的针对所述装载的页面的相关散列值,以及如果为所述装载的页面计算的散列值不匹配于所述相关散列值,则产生一个错误的部件。
19.如权利要求18所述的装置,其中,所述验证所述散列值阵列的真实性的部件包括:
为伴随所述计算机程序的散列值阵列计算一个阵列散列值的部件;以及
使用公钥来比较所述阵列散列值和所述散列值阵列的所述数字签名的部件。
20.如权利要求18所述的装置,其中,通过使用所述散列值阵列的数字签名来验证伴随所述计算机程序的所述散列值阵列的真实性的部件包括:通过一个公钥和一个公钥加密密钥函数来测试所述数字签名的部件。
21.如权利要求18所述的装置,其中当执行需要来自所述计算机程序的多个页面的附加页面并且没有错误产生时,重复所述装载、计算、和比较。
22.如权利要求18所述的装置,其中,如果为所述装载的页面计算的散列值不匹配于所述相关散列值则产生所述错误的部件包括:指出页面读取错误的部件。
23.如权利要求18所述的装置,其中,如果为所述装载的页面计算的散列值不匹配于所述相关散列值则产生所述错误的部件包括:指出验证错误的部件。
24.如权利要求18所述的装置,进一步包括下列部件:
将所述散列值阵列交换出受保护存储器的部件;以及
在将所述散列值阵列交换回所述受保护存储器之后,重新验证所述散列值阵列的真实性的部件。
25.一种用于加封在特定计算设备上运行的计算机程序的装置,所述装置包括下列部件:
将所述计算机程序分解为多个页面的部件,其中,所述分解基于在其上运行所述计算机程序的所述特定计算设备的存储器页面的大小;
为每一个所述页面计算一个散列值的部件;
生成具有所述页面的所述散列值的散列值阵列的部件;
为所述散列值阵列生成数字签名的部件;以及
组合所述计算机程序以及所述散列值阵列和所述数字签名的部件。
26.如权利要求25所述的装置,其中,为所述散列值阵列生成数字签名的部件包括:
为所述散列值阵列计算一个阵列散列值的部件;以及
数字签署所述阵列散列值的部件。
CN2004800216119A 2003-09-18 2004-09-10 用于增量代码签署的方法和装置 Expired - Fee Related CN1842757B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010121290.7A CN101777103B (zh) 2003-09-18 2004-09-10 验证计算机程序的方法、提供计算机程序的方法及其装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/666,847 2003-09-18
US10/666,847 US7103779B2 (en) 2003-09-18 2003-09-18 Method and apparatus for incremental code signing
PCT/US2004/029470 WO2005029223A2 (en) 2003-09-18 2004-09-10 Method and apparatus for incremental code signing

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201010121290.7A Division CN101777103B (zh) 2003-09-18 2004-09-10 验证计算机程序的方法、提供计算机程序的方法及其装置

Publications (2)

Publication Number Publication Date
CN1842757A CN1842757A (zh) 2006-10-04
CN1842757B true CN1842757B (zh) 2013-09-18

Family

ID=34313207

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201010121290.7A Expired - Fee Related CN101777103B (zh) 2003-09-18 2004-09-10 验证计算机程序的方法、提供计算机程序的方法及其装置
CN2004800216119A Expired - Fee Related CN1842757B (zh) 2003-09-18 2004-09-10 用于增量代码签署的方法和装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201010121290.7A Expired - Fee Related CN101777103B (zh) 2003-09-18 2004-09-10 验证计算机程序的方法、提供计算机程序的方法及其装置

Country Status (8)

Country Link
US (3) US7103779B2 (zh)
EP (3) EP2634959B1 (zh)
JP (2) JP4373442B2 (zh)
CN (2) CN101777103B (zh)
AU (2) AU2004275264B2 (zh)
CA (3) CA2531363C (zh)
HK (1) HK1092234A1 (zh)
WO (1) WO2005029223A2 (zh)

Families Citing this family (88)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080313282A1 (en) 2002-09-10 2008-12-18 Warila Bruce W User interface, operating system and architecture
US7548986B1 (en) * 2003-03-17 2009-06-16 Hewlett-Packard Development Company, L.P. Electronic device network providing streaming updates
US7103779B2 (en) 2003-09-18 2006-09-05 Apple Computer, Inc. Method and apparatus for incremental code signing
EP1538509A1 (fr) * 2003-12-04 2005-06-08 Axalto S.A. Procédé de sécurisation de l'éxécution d'un programme contre des attaques par rayonnement
US7831838B2 (en) * 2004-03-05 2010-11-09 Microsoft Corporation Portion-level in-memory module authentication
US7904895B1 (en) 2004-04-21 2011-03-08 Hewlett-Packard Develpment Company, L.P. Firmware update in electronic devices employing update agent in a flash memory card
US7644287B2 (en) * 2004-07-29 2010-01-05 Microsoft Corporation Portion-level in-memory module authentication
US8526940B1 (en) 2004-08-17 2013-09-03 Palm, Inc. Centralized rules repository for smart phone customer care
US7577848B2 (en) * 2005-01-18 2009-08-18 Microsoft Corporation Systems and methods for validating executable file integrity using partial image hashes
US7934256B2 (en) * 2005-06-01 2011-04-26 Panasonic Corporation Electronic device, update server device, key update device
US7669242B2 (en) * 2005-06-30 2010-02-23 Intel Corporation Agent presence monitor configured to execute in a secure environment
US7953980B2 (en) * 2005-06-30 2011-05-31 Intel Corporation Signed manifest for run-time verification of software program identity and integrity
US8839450B2 (en) 2007-08-02 2014-09-16 Intel Corporation Secure vault service for software components within an execution environment
JP4792876B2 (ja) * 2005-08-30 2011-10-12 株式会社日立製作所 情報処理装置及び情報処理方法
JP4527640B2 (ja) * 2005-09-15 2010-08-18 株式会社ソニー・コンピュータエンタテインメント データ読出装置
JP4947978B2 (ja) * 2006-01-05 2012-06-06 株式会社アルファシステムズ 認証システム及び認証方法
US7574479B2 (en) * 2006-01-24 2009-08-11 Novell, Inc. Techniques for attesting to content
KR100746033B1 (ko) * 2006-02-17 2007-08-06 삼성전자주식회사 무결성 측정 장치 및 방법
US8364965B2 (en) * 2006-03-15 2013-01-29 Apple Inc. Optimized integrity verification procedures
JP4767057B2 (ja) * 2006-03-27 2011-09-07 富士通株式会社 ハッシュ値生成プログラム、ストレージ管理プログラム、判定プログラム及びデータ変更検証装置
CN100428261C (zh) * 2006-05-22 2008-10-22 北京易恒信科技认证有限公司 基于cpk的可信认证系统
US8209676B2 (en) 2006-06-08 2012-06-26 Hewlett-Packard Development Company, L.P. Device management in a network
JP5002205B2 (ja) * 2006-07-10 2012-08-15 任天堂株式会社 データ認証方法およびデータ認証システム
EP2047420A4 (en) 2006-07-27 2009-11-18 Hewlett Packard Development Co USER EXPERIENCE AND DEPENDENCE MANAGEMENT IN A MOBILE DEVICE
US7882318B2 (en) * 2006-09-29 2011-02-01 Intel Corporation Tamper protection of software agents operating in a vitual technology environment methods and apparatuses
US7802050B2 (en) * 2006-09-29 2010-09-21 Intel Corporation Monitoring a target agent execution pattern on a VT-enabled system
JP4288292B2 (ja) * 2006-10-31 2009-07-01 株式会社エヌ・ティ・ティ・ドコモ オペレーティングシステム監視設定情報生成装置及びオペレーティングシステム監視装置
US8453206B2 (en) * 2006-11-09 2013-05-28 Panasonic Corporation Detecting unauthorized tampering of a program
US8375458B2 (en) 2007-01-05 2013-02-12 Apple Inc. System and method for authenticating code executing on computer system
US8209540B2 (en) * 2007-06-28 2012-06-26 Apple Inc. Incremental secure backup and restore of user settings and data
GB0719250D0 (en) * 2007-10-02 2007-11-14 Iti Scotland Ltd Anti-hack method
IL187039A0 (en) * 2007-10-30 2008-02-09 Sandisk Il Ltd Secure overlay manager protection
US8099718B2 (en) * 2007-11-13 2012-01-17 Intel Corporation Method and system for whitelisting software components
EP2232397B1 (en) * 2008-01-20 2011-10-05 NDS Limited Secure data utilization
US9143329B2 (en) * 2008-01-30 2015-09-22 Adobe Systems Incorporated Content integrity and incremental security
KR101426270B1 (ko) * 2008-02-13 2014-08-05 삼성전자주식회사 소프트웨어의 전자 서명 생성 방법, 검증 방법, 그 장치,및 그 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로읽을 수 있는 기록매체
KR101252921B1 (ko) * 2008-03-04 2013-04-09 애플 인크. 사업자에게 부여된 자격들에 기초하여 장치 내의 소프트웨어 코드의 실행을 인가하는 시스템 및 방법
US20090228868A1 (en) * 2008-03-04 2009-09-10 Max Drukman Batch configuration of multiple target devices
AU2009222007A1 (en) * 2008-03-04 2009-09-11 Apple Inc. System and method of authorizing execution of software code based on accessible entitlements
EP2250604B1 (en) * 2008-03-04 2017-12-27 Apple Inc. System and method of authorizing execution of software code based on at least one installed profile
WO2009111405A1 (en) * 2008-03-04 2009-09-11 Apple Inc. System and method of authorizing execution of software code based on a trusted cache
US9081962B2 (en) 2008-04-30 2015-07-14 Graeme Harkness Anti-tamper techniques
JP2010146110A (ja) * 2008-12-16 2010-07-01 Ricoh Co Ltd 情報処理装置、プログラム実行方法及びプログラム
US8364601B2 (en) * 2008-12-31 2013-01-29 Intel Corporation Methods and systems to directly render an image and correlate corresponding user input in a secure memory domain
US9086913B2 (en) * 2008-12-31 2015-07-21 Intel Corporation Processor extensions for execution of secure embedded containers
KR101685633B1 (ko) * 2009-01-05 2016-12-12 삼성전자주식회사 메모리 시스템
US9805196B2 (en) 2009-02-27 2017-10-31 Microsoft Technology Licensing, Llc Trusted entity based anti-cheating mechanism
US9058491B1 (en) 2009-03-26 2015-06-16 Micron Technology, Inc. Enabling a secure boot from non-volatile memory
US9336410B2 (en) * 2009-12-15 2016-05-10 Micron Technology, Inc. Nonvolatile memory internal signature generation
US8510569B2 (en) * 2009-12-16 2013-08-13 Intel Corporation Providing integrity verification and attestation in a hidden execution environment
US9202015B2 (en) 2009-12-31 2015-12-01 Intel Corporation Entering a secured computing environment using multiple authenticated code modules
US8453237B2 (en) * 2010-06-03 2013-05-28 International Business Machines Corporation Verification of a segmented program on a parallel processing computing system
KR101687439B1 (ko) * 2010-07-22 2016-12-16 나그라비젼 에스에이 소프트웨어 무결성을 보장하기위한 프로세서 실행 방법
DE102010033229A1 (de) * 2010-08-03 2012-02-09 Siemens Aktiengesellschaft Verfahren und System zur manipulationssicheren Übertragung von Steuerdaten
GB2485241A (en) 2010-11-05 2012-05-09 Bluecava Inc Incremental browser-based fingerprinting of a computing device
US9111099B2 (en) * 2011-05-31 2015-08-18 Red Hat, Inc. Centralized kernel module loading
JP4894970B2 (ja) * 2011-06-10 2012-03-14 株式会社日立製作所 情報処理装置
US20120328148A1 (en) * 2011-06-27 2012-12-27 Grey William Doherty Method and system for secure image management
CN102314578B (zh) * 2011-09-26 2015-10-28 浪潮(北京)电子信息产业有限公司 一种实现软件保护的系统及方法
WO2013059368A1 (en) * 2011-10-17 2013-04-25 Intertrust Technologies Corporation Systems and methods for protecting and governing genomic and other information
US20130138969A1 (en) * 2011-11-28 2013-05-30 Mocana Corporation Preventing glitching of a firmware image using one or more layers of randomness
JP5315422B2 (ja) * 2012-01-10 2013-10-16 任天堂株式会社 データ認証方法およびデータ認証システム
JP2015084006A (ja) * 2012-02-13 2015-04-30 三菱電機株式会社 動的リンクライブラリ保護方法、動的リンクライブラリ認証方法、動的リンクライブラリ保護装置、動的リンクライブラリ認証装置、プログラム管理システム、プログラムおよび動的リンクライブラリ保護方法、プログラムおよび動的リンクライブラリ認証方法
WO2013161371A1 (ja) * 2012-04-27 2013-10-31 日本電気株式会社 プログラム提供装置、システム、プログラム提供方法およびプログラム
US8972715B2 (en) * 2012-07-13 2015-03-03 Securerf Corporation Cryptographic hash function
CA2789936C (en) * 2012-09-14 2020-02-18 Ibm Canada Limited - Ibm Canada Limitee Identification of sequential browsing operations
JP5574550B2 (ja) * 2012-11-22 2014-08-20 京セラドキュメントソリューションズ株式会社 情報秘匿化方法および情報秘匿化装置
US9424200B2 (en) 2013-03-15 2016-08-23 Freescale Semiconductor, Inc. Continuous run-time integrity checking for virtual memory
KR101434860B1 (ko) * 2013-08-16 2014-09-02 (주)잉카엔트웍스 해시를 이용한 동적코드의 무결성 검증 방법
JP6244759B2 (ja) * 2013-09-10 2017-12-13 株式会社ソシオネクスト セキュアブート方法、半導体装置、及び、セキュアブートプログラム
EP2913772A1 (de) * 2014-02-28 2015-09-02 Wibu-Systems AG Verfahren und Computersystem zum Schutz eines Computerprogramms gegen Beeinflussung
CN105632330B (zh) * 2014-10-27 2019-03-19 上海锐帆信息科技有限公司 一种可视化数字封条装置
CN104506503B (zh) * 2014-12-08 2019-11-05 北京北邮国安技术股份有限公司 一种基于广电单向传输网络的安全认证系统
EP3299986A4 (en) 2015-05-20 2018-05-16 Fujitsu Limited Program verification method, verification program, and information processing device
SG11201803707PA (en) 2015-11-19 2018-06-28 Nagravision Sa Method to verify the execution integrity of an application in a target device
CN106953730B (zh) * 2016-01-07 2021-01-05 格尔软件股份有限公司 物理隔离网络环境下实现含时间戳的Windows代码签名的安全方法
US10637877B1 (en) * 2016-03-08 2020-04-28 Wells Fargo Bank, N.A. Network computer security system
CN106372505B (zh) * 2016-08-23 2018-12-28 北京航空航天大学 一种针对嵌入式系统代码攻击的快速恢复方法
KR102538096B1 (ko) * 2016-09-13 2023-05-31 삼성전자주식회사 어플리케이션을 검증하는 디바이스 및 방법
CN108257197A (zh) * 2016-12-28 2018-07-06 航天信息股份有限公司 一种用于在电子文档分页处设置骑缝章的方法及系统
WO2019151013A1 (ja) * 2018-02-02 2019-08-08 日本電気株式会社 情報処理装置、情報処理方法及び記録媒体
EP3667505B1 (en) 2018-12-14 2021-11-10 Nxp B.V. Memory system with an incremental hashing operation and method
US11068269B1 (en) * 2019-05-20 2021-07-20 Parallels International Gmbh Instruction decoding using hash tables
JP7270511B2 (ja) * 2019-09-10 2023-05-10 ボッシュ株式会社 制御装置及び方法
US20210382706A1 (en) * 2020-06-03 2021-12-09 Vmware, Inc. Automated configuration of attestation nodes using a software depot
JP2022122553A (ja) * 2021-02-10 2022-08-23 キヤノン株式会社 画像形成装置、その制御方法、およびプログラム
US20220300452A1 (en) * 2021-03-18 2022-09-22 Sony Group Corporation Fixity data processing
CN113239330A (zh) * 2021-06-10 2021-08-10 杭州安恒信息技术股份有限公司 一种基于散列算法的反调试方法及相关装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1146122A (zh) * 1995-07-07 1997-03-26 汤姆森消费电子有限公司 交互信息系统中鉴别发送应用的装置和方法

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4868877A (en) 1988-02-12 1989-09-19 Fischer Addison M Public key/signature cryptosystem with enhanced digital signature certification
US5454000A (en) 1992-07-13 1995-09-26 International Business Machines Corporation Method and system for authenticating files
FR2731163B1 (fr) 1995-03-03 1997-06-20 Air Liquide Procede et installation de separation d'un melange gazeux par permeation
US6202203B1 (en) 1995-12-06 2001-03-13 International Business Machines Corporation Method of, system for, and computer program product for providing global value numbering
US5673316A (en) 1996-03-29 1997-09-30 International Business Machines Corporation Creation and distribution of cryptographic envelope
US5757919A (en) 1996-12-12 1998-05-26 Intel Corporation Cryptographically protected paging subsystem
JP4187285B2 (ja) 1997-04-10 2008-11-26 富士通株式会社 認証子付与方法および認証子付与装置
US6092147A (en) * 1997-04-15 2000-07-18 Sun Microsystems, Inc. Virtual machine with securely distributed bytecode verification
US6560706B1 (en) * 1998-01-26 2003-05-06 Intel Corporation Interface for ensuring system boot image integrity and authenticity
US6263348B1 (en) * 1998-07-01 2001-07-17 Serena Software International, Inc. Method and apparatus for identifying the existence of differences between two files
US7194092B1 (en) 1998-10-26 2007-03-20 Microsoft Corporation Key-based secure storage
WO2000049764A1 (en) * 1999-02-18 2000-08-24 Sun Microsystems, Inc. Data authentication system employing encrypted integrity blocks
JP3893245B2 (ja) 1999-02-24 2007-03-14 三菱電機株式会社 無線端末装置
JP4049498B2 (ja) 1999-11-18 2008-02-20 株式会社リコー 原本性保証電子保存方法、装置及びコンピュータ読み取り可能な記録媒体
US6618769B1 (en) * 1999-05-27 2003-09-09 Sun Microsystems, Inc. Module-by-module verification
US6785815B1 (en) 1999-06-08 2004-08-31 Intertrust Technologies Corp. Methods and systems for encoding and protecting data using digital signature and watermarking techniques
JP2001034470A (ja) 1999-07-22 2001-02-09 Fujitsu Ltd 管理自動化機構を有するサーバ
US7430670B1 (en) 1999-07-29 2008-09-30 Intertrust Technologies Corp. Software self-defense systems and methods
WO2001010076A2 (en) * 1999-07-29 2001-02-08 Intertrust Technologies Corp. Systems and methods for protecting secure and insecure computing environments using cryptography
US6658556B1 (en) 1999-07-30 2003-12-02 International Business Machines Corporation Hashing a target address for a memory access instruction in order to determine prior to execution which particular load/store unit processes the instruction
US6324637B1 (en) 1999-08-13 2001-11-27 Sun Microsystems, Inc. Apparatus and method for loading objects from a primary memory hash index
US7406603B1 (en) 1999-08-31 2008-07-29 Intertrust Technologies Corp. Data protection systems and methods
US20010034839A1 (en) * 1999-12-24 2001-10-25 Guenter Karjoth Method and apparatus for secure transmission of data and applications
GB0003920D0 (en) 2000-02-21 2000-04-05 Ncipher Corp Limited Computer system
US6986046B1 (en) 2000-05-12 2006-01-10 Groove Networks, Incorporated Method and apparatus for managing secure collaborative transactions
US6954747B1 (en) 2000-11-14 2005-10-11 Microsoft Corporation Methods for comparing versions of a program
JP2004514214A (ja) 2000-11-17 2004-05-13 ビットフォン コーポレイション 情報をアップデートおよび配布するシステムおよび方法
US7478243B2 (en) * 2001-03-21 2009-01-13 Microsoft Corporation On-disk file format for serverless distributed file system with signed manifest of file modifications
JP2002353960A (ja) 2001-05-30 2002-12-06 Fujitsu Ltd コード実行装置およびコード配布方法
US7729495B2 (en) 2001-08-27 2010-06-01 Dphi Acquisitions, Inc. System and method for detecting unauthorized copying of encrypted data
US7310821B2 (en) 2001-08-27 2007-12-18 Dphi Acquisitions, Inc. Host certification method and system
KR20040029957A (ko) 2001-09-14 2004-04-08 소니 가부시끼 가이샤 기록매체의 재생방법과 재생장치 및 기록매체의기록방법과 기록장치
US20030084298A1 (en) 2001-10-25 2003-05-01 Messerges Thomas S. Method for efficient hashing of digital content
US20030126453A1 (en) * 2001-12-31 2003-07-03 Glew Andrew F. Processor supporting execution of an authenticated code instruction
US7240205B2 (en) 2002-01-07 2007-07-03 Xerox Corporation Systems and methods for verifying documents
JP2003202929A (ja) 2002-01-08 2003-07-18 Ntt Docomo Inc 配信方法および配信システム
US7529929B2 (en) 2002-05-30 2009-05-05 Nokia Corporation System and method for dynamically enforcing digital rights management rules
DE10239062A1 (de) 2002-08-26 2004-04-01 Siemens Ag Verfahren zum Übertragen von verschlüsselten Nutzdatenobjekten
US20040064457A1 (en) 2002-09-27 2004-04-01 Zimmer Vincent J. Mechanism for providing both a secure and attested boot
FR2845493A1 (fr) 2002-10-04 2004-04-09 Canal Plus Technologies Logiciel embarque et procede d'authentification de celui-ci
US7165076B2 (en) 2002-11-15 2007-01-16 Check Point Software Technologies, Inc. Security system with methodology for computing unique security signature for executable file employed across different machines
US7491122B2 (en) 2003-07-09 2009-02-17 Wms Gaming Inc. Gaming machine having targeted run-time software authentication
GB2404488B (en) 2003-07-31 2006-05-31 Sony Uk Ltd Access control for digital content
GB2404489A (en) 2003-07-31 2005-02-02 Sony Uk Ltd Access control for digital storage medium content
US7103779B2 (en) 2003-09-18 2006-09-05 Apple Computer, Inc. Method and apparatus for incremental code signing
US20050071274A1 (en) 2003-09-27 2005-03-31 Utstarcom, Inc. Method and Apparatus in a Digital Rights Client and a Digital Rights Source and associated Digital Rights Key
US7921300B2 (en) 2003-10-10 2011-04-05 Via Technologies, Inc. Apparatus and method for secure hash algorithm
US20060259781A1 (en) 2005-04-29 2006-11-16 Sony Corporation/Sony Electronics Inc. Method and apparatus for detecting the falsification of metadata
US8364965B2 (en) 2006-03-15 2013-01-29 Apple Inc. Optimized integrity verification procedures

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1146122A (zh) * 1995-07-07 1997-03-26 汤姆森消费电子有限公司 交互信息系统中鉴别发送应用的装置和方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Applied Cryptography, Second Edition: Protocols, Algorithms, and Source Code in C.John Wiley & Sons, Inc,1996,442-445.
Applied Cryptography, Second Edition: Protocols, Algorithms, and Source Code in C.John Wiley & Sons, Inc,1996,442-445. *

Also Published As

Publication number Publication date
EP2634960A2 (en) 2013-09-04
WO2005029223A2 (en) 2005-03-31
CA2894105A1 (en) 2005-03-31
JP4373442B2 (ja) 2009-11-25
AU2004275264A1 (en) 2005-03-31
EP2634959A3 (en) 2013-10-09
US7103779B2 (en) 2006-09-05
CN101777103B (zh) 2017-03-01
EP1695169A2 (en) 2006-08-30
EP2634959A2 (en) 2013-09-04
HK1092234A1 (en) 2007-02-02
US20060288223A1 (en) 2006-12-21
CA2531363A1 (en) 2005-03-31
CA2894105C (en) 2019-02-26
CN101777103A (zh) 2010-07-14
US20130111216A1 (en) 2013-05-02
AU2004275264B2 (en) 2009-11-19
JP2008293033A (ja) 2008-12-04
JP4664398B2 (ja) 2011-04-06
EP2634960B1 (en) 2016-01-13
CA2531363C (en) 2009-03-10
AU2009233685B2 (en) 2011-08-25
US8880897B2 (en) 2014-11-04
EP2634960A3 (en) 2013-10-16
EP1695169A4 (en) 2011-03-02
JP2007506187A (ja) 2007-03-15
EP1695169B1 (en) 2014-11-19
EP2634959B1 (en) 2015-07-15
CA2632076A1 (en) 2005-03-31
WO2005029223A3 (en) 2006-02-23
AU2009233685A1 (en) 2009-11-26
CN1842757A (zh) 2006-10-04
US20050066169A1 (en) 2005-03-24
US8341422B2 (en) 2012-12-25
CA2632076C (en) 2015-09-08

Similar Documents

Publication Publication Date Title
CN1842757B (zh) 用于增量代码签署的方法和装置
EP2691906B1 (en) Method and system for protecting execution of cryptographic hash functions
US20040054901A1 (en) Creating and verifying a sequence of consecutive data
Lee Security basics for computer architects
JP2004534333A (ja) コンピュータネットワークにおける分散データ処理に関する統合された保護方法及びシステム
CN1439207A (zh) 用于建立可核查身份而又保密的平台和方法
CN110837634B (zh) 基于硬件加密机的电子签章方法
CN105873043B (zh) 一种用于移动终端的网络私匙的生成及应用方法及其系统
Rahouma Reviewing and applying security services with non-english letter coding to secure software applications in light of software trade-offs
US11568070B2 (en) Secure access control processes
Kaaffah et al. Integrity Assurance System for Document Security Using Keccak and Quick Algorithm Response Code
Tritilanunt et al. A secure authentication protocol using HOTP on USB storage devices
TWM659947U (zh) 交易驗證系統
Zulfikar et al. Integrity assurance system for document security using keccak and quick algorithm response code
Liaw et al. An efficient password authentication scheme based on a unit circle
Almansa Arévalo Hashing: Types, Benefits and Security Issues
Williams An introduction to digest algorithms
CN116888921A (zh) 经由隔离加密的隐私增强计算
CN116881865A (zh) 一种许可证生成方法以及系统
Tarman et al. Principles of Faithful Execution in the implementation of trusted objects.

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1092234

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1092234

Country of ref document: HK

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

Granted publication date: 20130918

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