发明名称 验证计算机程序的方法、提供计算机程序的方法及其装置
摘要 本发明公开了一种用于验证计算机程序的方法、提供计算机程序的方法及其装置。本发明首先以增量方式用数字签名来加封计算机程序。具体地说,计算机程序被分解为一组页面,并且为每一个页面计算一个散列值。散列值的集合被形成为一个散列值阵列,然后用数字签名来加封散列值阵列。接着,计算机程序连同散列值阵列和数字签名一起分发。为了验证计算机程序,接收者首先通过数字签名和公钥来验证散列值阵列的真实性。一旦散列值阵列已经被验证,接收者随后可通过计算待装载的一个页面的散列值,然后与已验证的散列值阵列中的一个相关散列值进行比较,来验证计算机程序的每个页面的真实性。如果散列值不匹配,则停止执行。
申请公布号 CN101777103B 申请公布日期 2017.03.01
申请号 CN201010121290.7 申请日期 2004.09.10
申请人 苹果公司 发明人 佩里·基特赖伯;迈克尔·布劳沃
分类号 G06F21/56(2013.01)I;G06F21/64(2013.01)I;H04L9/32(2006.01)I 主分类号 G06F21/56(2013.01)I
代理机构 中国国际贸易促进委员会专利商标事务所 11038 代理人 康建忠
主权项 一种用于验证计算机程序的方法,所述计算机程序基于执行所述计算机程序的特定处理器的存储器分页系统被划分成多个单元,所述方法包括:通过为散列值阵列计算一个散列值并比较所计算的散列值与散列值阵列的数字签名来验证所述散列值阵列,所述散列值阵列与所述计算机程序一起分发,用于验证所述计算机程序的多个单元,其中散列值阵列中的每个值是计算机程序的不同单元的散列值;以及针对所述计算机程序的每个单元,迭代地执行:装载所述计算机程序的一个单元;通过比较存储在所述散列值阵列中的单个散列值和为所装载的单元新计算的散列值,验证所述所装载的单元;以及在新计算的散列值匹配于存储在所述散列值阵列中的所述单个散列值时,在装载所述计算机程序的不同单元之前执行所述计算机程序的所述所装载的单元。
地址 美国加利福尼亚