著录项信息
专利名称 | 用于存取控制的参数化散列函数 |
申请号 | CN96196499.5 | 申请日期 | 1996-07-19 |
法律状态 | 权利终止 | 申报国家 | 中国 |
公开/公告日 | 1998-09-23 | 公开/公告号 | CN1194072 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | 暂无 | IPC分类号 | 暂无查看分类表>
|
申请人 | 英特尔公司 | 申请人地址 | 美国加利福尼亚州
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 英特尔公司 | 当前权利人 | 英特尔公司 |
发明人 | D·W·奥古史密斯;R·C·劳尔哈瑟 |
代理机构 | 中国专利代理(香港)有限公司 | 代理人 | 王勇;张志醒 |
摘要
公开了计算机系统中一种存取控制的方法和装置。一个存储单元接收具有一个加密的可执行映像和一个签名分量的一个数据块。一个连接到该存储单元的分离单元从该加密的可执行映像中分离所述签名分量。一个连接到分离单元的解密单元使用该签名分量作为一个密钥解密所述加密的可执行映像。这产生一个解密的可执行程序。一个连接到所述解密单元的识别单元定位在解密的可执行程序中的一个识别标记并识别分配给该识别标记的一个组合密钥。一个连接到所述识别单元的签名生成单元使用该组合密钥作为一个密钥对解密的可执行程序执行一个密钥加密的杂散算法。一个连接到签名生成单元的检验单元比较签名分量与计算的密钥加密的杂散值以检验所述数据块的源并判定它是否已被修改。如果该签名与密钥加密的杂散值匹配,那么连接到检验单元的权限分配单元给解密的可执行程序分配一个合适的存取权限,允许它由计算机系统执行。
1.产生一个编码的可执行映像的方法,包括的步骤有:
使用具有分配给一个可执行程序的一组关联的存取权限的第一密钥 对该可执行程序执行一个密钥加密的散列函数,生成一个签名分量;
使用该签名分量作为一个第二密钥对所述可执行程序执行一个加密 算法。
2.权利要求1所述方法,其中,执行密钥加密的散列函数包括执行 一个数据加密标准密码块链算法。
3.一种存取控制方法,包括的步骤有:
从一个数据块中的一个可执行映像中分离一个签名分量;
使用该签名分量解密所述可执行映像为一个可执行程序;
使用一个密钥计算所述可执行程序的一个密钥加密散列值;
通过比较所述签名分量与所述密钥加密的散列值检验所述数据块的 源。
4.权利要求3所述方法,进一步包括:在所述可执行程序中寻找一 个识别标记,
查找相应于所述识别标记的密钥用以对所述可执行程序执行一个密 钥加密的散列函数。
5.权利要求3所述方法,进一步包括根据与所述密钥关联的权限给 所述可执行程序分配权限的步骤。
6.一个存取控制器,包括:
一个分离单元,它从一个数据块中的加密的可执行映像中分离一个 签名分量,该签名分量由对一个第一可执行程序执行一个密钥加密的散 列函数而导出;
一个连接到所述分离单元的解密单元,它用所述签名分量解密该加 密的可执行映像为一个第二可执行程序;
一个连接到所述解密单元的签名生成单元,它使用一个密钥计算所 述第二可执行程序的一个密钥加密散列值;
一个连接到所述签名生成单元的检验单元,它比较所述密钥加密的 散列值与所述签名分量。
7.权利要求6所述存取控制器,其中,所述签名生成单元进一步包 括一个密钥存储部件,用于存储由所述签名生成单元使用的密钥。
8.权利要求6所述存取控制器,进一步包括一个连接到所述解密单 元的识别单元,它在所述第一可执行程序中识别指定给一个识别标记的 密钥,用于计算所述第二可执行程序的加密散列值。
9.权利要求6所述存取控制器,进一步包括连接到所述签名生成单 元的一个权限分配单元,它根据与所述密钥关联的权限给所述第二可执 行程序分配权限。
10.一个计算机系统,包括:
一条总线;
一个连接到所述总线的存储器;
一个分离单元,它从一个数据块中的一个加密的可执行映像中分离 一个签名分量;一个连接到所述分离单元的解密单元,它使用所述签名 分量解密所述加密的可执行映像为一个可执行程序;一个连接到所述解 密单元的签名生成单元,它使用一个密钥计算所述可执行程序的一个密 钥加密散列值;一个连接到所述签名生成单元的检验单元,它比较所述 密钥加密的散列值与所述签名分量。
11.一个计算机系统,包括:
一条总线;
一个连接到所述总线的存储器;
一个连接到所述总线的处理器;以及
一个编码器,它使用具有分配给一个可执行程序的一组关联的存取 权限的一个第一密钥能够生成一个签名分量;以及使用该签名分量作为 一个第二密钥能够加密该可执行程序。
12.根据权利要求11的计算机系统,其中该编码器包括:
一个签名生成单元,它执行一个密钥加密散列函数产生该签名分 量;以及
一个连接到该签名生成单元的第一加密单元。
13.根据权利要求12的计算机系统,其中该签名生成单元还包括一 个计算单元和一个执行数据加密标准密码块链算法的第二加密单元。
14.一个用于编码一个可执行程序的装置,包括:
一个签名生成单元,它使用具有分配给所述可执行程序的数字信息 的一组关联的存取权限的一个第一密钥,生成一个签名分量;以及
一个连接到该签名生成单元的第一加密单元,使用该签名分量作为 一个第二密钥对所述可执行程序的数字信息序进行加密。
15.根据权利要求14的装置,其中第一加密单元,使用该签名分量 作为第二密钥对可执行程序进行加密。
16.权利要求14所述装置,其中,所述签名生成单元进一步包括一 个计算单元和执行一个数据加密标准密码块链算法的第二加密单元。
17.一个译码器,包括
一个解密单元,用于使用一个签名分量将一个加密的可执行程序进 行解密,该签名分量是通过一个事先分配有一组存取权限的密钥产生 的;以及
用于将该存取权限分配给该解密的可执行程序的电路。
18.根据权利要求17的译码器,其中该电路包括一个权限分配单元, 该权限分配单元包括一个将该密钥与该组存取权限相匹配的查找表。
19.根据权利要求18的译码器,还包括:
用于计算该解密的可执行程序的一个密钥加密的散列值的电路。
20.根据权利要求19的译码器,其中用于计算的电路包括:
用于识别该密钥的一个识别单元;以及
用于计算该密钥加密的散列值的一个签名生成单元。
21.根据权利要求19的译码器,还包括:
一个检验电路,它用于检验该密钥加密的散列值是否等价于该签名 分量,以及用于当该密钥加密的散列值等价于该签名分量时通知该权限 分配单元。
本发明涉及计算机系统中的存取控制。更具体地说,本发明涉及一 种装置和方法,用于识别一个可执行映像的源和使用这一识别来确定允 许执行的存取权限级。\n计算机系统的安全侵犯可归类为有意的和偶然的。未授权读数据、 未授权修改数据和未授权破坏数据属于有意侵犯一类。大多数操作系统 提供处理手段来产生其它进程。在这种环境下,可能产生滥用操作系统 资源和用户文件的情形。蠕虫和病毒是两种普通的滥用方法。计算机系 统的保护依赖于它识别要执行的程序源和检验这些程序未被修改的能力, 这种修改可以给该系统造成安全威胁。\n除检验程序源的真实性之外,还需要保证文件、存储器段、CPU 和计算机系统的其它资源仅由从操作系统获得适当授权的进程使用。提 供这一保护的理由有几种。最明显的是需要防止恶作剧的、有意的存取 限制破坏。需要保证在一个系统中每一活动的程序部分以与使用这些资 源规定的政策一致的方式使用系统资源具有更普遍的重要意义。保护通 过检测位于部件子系统之间接口处潜伏的错误可以改善可靠性。接口错 误的早期检测可以防止健康子系统被另一故障子系统感染。\n一个进程通常在一个保护域内运行。该域指定该进程可以访问的资 源。每一域定义一组对象和可以就每一对象被调用的操作的类型。对一 个对象执行一种操作的能力是一种存取权限。一个域是存取权限的一个 集合,每一存取权限通常是一个顺序对:<对象名,权限集合>。例如, 如果域D有存取权限<文件F,{读,写}>,那么一个在D域执行的 进程既可以读也可以写文件F。然而对该对象不应该允许执行任何其它 操作。多个域可以不相交或者它们可以共享存取权限。一个进程和一个 域之间的关联既可以是静态的,也可以是动态的。因而,限制每一进程 可用的保护域是重要的。\n因此,需要的是提供一个可执行图像的一种不可伪造的签名的装置 和方法,它可以用于识别该可执行映像的源,而不管对该可执行图像有 任何修改,以及该可执行图像由操作系统允许的存取权限级或可信度。\n根据本发明第一个方面,提供产生一个编码的可执行映像的方 法,包括的步骤有:\n使用具有分配给一个可执行程序的一组关联的存取权限的第一密 钥对该可执行程序执行一个密钥加密的散列函数,生成一个签名分 量;\n使用该签名分量作为一个第二密钥对所述可执行程序执行一个加 密算法。\n根据本发明的另一个方面,提供一个存取控制器,包括:\n一个分离单元,它从一个数据块中的加密的可执行映像中分离一 个签名分量,该签名分量由对一个第一可执行程序执行一个密钥加密 的散列函数而导出;\n一个连接到所述分离单元的解密单元,它用所述签名分量解密该 加密的可执行映像为一个第二可执行程序;\n一个连接到所述解密单元的签名生成单元,它使用一个密钥计算 所述第二可执行程序的一个密钥加密散列值;\n一个连接到所述签名生成单元的检验单元,它比较所述密钥加密 的散列值与所述签名分量。\n根据本发明的另一个方面,提供一个计算机系统,包括:\n一条总线;\n一个连接到所述总线的存储器;\n一个分离单元,它从一个数据块中的一个加密的可执行映像中分 离一个签名分量;一个连接到所述分离单元的解密单元,它使用所述 签名分量解密所述加密的可执行映像为一个可执行程序;一个连接到 所述解密单元的签名生成单元,它使用一个密钥计算所述可执行程序 的一个密钥加密散列值;一个连接到所述签名生成单元的检验单元, 它比较所述密钥加密的散列值与所述签名分量。\n根据本发明的另一个方面,提供一个计算机系统,包括:\n一条总线;\n一个连接到所述总线的存储器;\n一个连接到所述总线的处理器;以及\n一个编码器,它使用具有分配给一个可执行程序的一组关联的存 取权限的一个第一密钥能够生成一个签名分量;以及使用该签名分量 作为一个第二密钥能够加密该可执行程序。\n根据本发明的另一个方面,提供一种产生一个编码的可执行映象 的方法,包括:\n使用具有分配给一个可执行程序的一组关联的存取权限的一个第 一密钥,生成一个签名分量;以及\n使用该签名分量作为一个第二密钥对所述可执行程序进行加密。\n根据本发明的另一个方面,提供一种存取控制方法,包括:\n使用一个签名分量解密一个可执行映象为一个可执行程序;\n使用一个密钥计算所述可执行程序的一个密钥加密散列值;以及\n比较所述签名分量与所述密钥加密的散列值。\n根据本发明的另一个方面,提供一个用于编码一个可执行程序的 装置,包括:\n一个签名生成单元,它使用具有分配给所述可执行程序的数字信 息的一组关联的存取权限的一个第一密钥,生成一个签名分量;以及\n一个连接到该签名生成单元的第一加密单元,使用该签名分量作 为一个第二密钥对所述可执行程序的数字信息序进行加密。\n根据本发明的另一个方面,提供一个译码器,包括\n一个解密单元,用于使用一个签名分量将一个加密的可执行程序 进行解密,该签名分量是通过一个事先分配有一组存取权限的密钥产 生的;以及\n用于将该存取权限分配给该解密的可执行程序的电路。\n本发明公开了一种在计算机系统中存取控制的方法和装置。该存取 控制的一个实施例包括一个存储单元。该存储单元存储具有一个签名分 量和一个加密的可执行映像的一个数据块。一个分离单元连接到该存储 单元。该分离单元接收该数据块,并将签名分量从加密的可执行映像分 出来。一个解密单元连接到该分离单元。解密单元接收加密的可执行映 像和解密该加密的可执行映像为一个可执行程序。这可以通过运行一个 使用签名分量作为密钥的解密算法解密该加密的可执行映像而实现。一 个识别单元连接到该解密单元。识别单元接收要使用的可执行程序并识 别指定给在可执行程序中的一个识别标记的密钥以计算可执行程序的一 个密钥加密的杂散值。一个签名生成单元连接到解密单元。签名生成单 元接收可执行程序和使用由识别单元识别的一个存储密钥计算对该可执 行程序的一个密钥加密的杂散值。一个检验单元连接到杂散单元。检验 单元比较密钥加密的杂散值与签名分量以验证该数据块的源以及确认对 该数据块没有进行修改。一个权限分配单元连接到杂散单元。权限分配 单元接收用于计算可执行程序的密钥加密杂散值的密钥并根据与该密钥 关联的权限分配权限给可执行程序。\n本发明的第二实施例公开了计算机系统内的一种存取控制方法。首 先接收具有一个签名分量和一个加密的可执行映像的一个数据块。在该 数据块收到后,把签名分量从加密的可执行映像分离。接着把可执行映 像通过执行一个使用签名分量作为密钥的解密算法解密。识别相应于可 执行程序中的一个识别标记的一个组合密钥。该组合密钥被用来计算可 执行程序的一个密钥加密的杂散值。在计算出密钥加密的杂散值之后, 把该密钥加密的杂散值与签名分量比较来检验该数据块的源。根据预分 配给该密钥的权限给可执行程序分配权限。\n从下面给出的详细说明和具有各种特征的附图和在本发明中实施的 元件,可以充分理解本发明。所述说明和附图并不限制本发明到特定的 实施例。它们只是为解释和理解而提供。\n图1表示在一个计算机系统中实现的一种存取控制器的一个实施 例。\n图2表示本发明的一个编码单元的一个实施例的方框图。\n图3表示怎样使用本发明的编码单元编码一个消息。\n图4表示本发明的一个存取控制器的第二实施例的方框图。\n图5表示本发明的视频处理系统的第三实施例的方框图。\n图6是说明一个编码方法的流程图。\n图7是说明在一个计算机系统中用于存取控制的方法的流程图。\n本发明叙述了一个新颖的存取控制器单元。在下面详细的说明中, 叙述了大量的特定的细节以便彻底理解本发明。然而熟悉本技术领域的 人应该理解,可以不要这些特定细节实现本发明。在另外的场合,未详 细叙述公知的方法、过程、部件和电路,以便不模糊本发明。\n下面的详细说明的某些部分以计算机存储器内对数据位操作的算法 和符号表示进行说明。这些算法说明和表示是熟悉数据处理技术领域的 人使用的方式,它能对其他熟悉该技术领域的人最有效地表达他们工作 的实质。一种算法被认为是导向一个希望结果的一个自身一致的步骤序 列。这些步骤是需要物理操作物理量的那些步骤。通常,虽然并非必须, 这些物理量是电或磁信号,它们能够被存储、传输、组合、比较或者进 行其它操作。在许多场合,主要为公共使用的原因,称这些信号为位、 值、元素、符号、字符、术语、数字等被证明是方便的。然而应该牢记, 所有这些以及相似的术语是与合适的物理量关联,它们仅仅是应用于这 些物理量的方便的标记。除非特别说明,否则从下面的讨论中明显看出, 贯穿本发明,使用诸如“处理”或“计算”或“运算”或“判定”或“显 示”等术语的讨论指的是一个计算机系统或相似的电子计算装置的动作 或处理,这些动作或处理操纵和变换作为在该计算机系统的寄存器和存 储器中的物理(电子)量表示的数据为在该计算机系统的存储器或寄存 器或其它这样的信息存储、变换或显示装置内的物理量表示的类似的其 它数据。\n图1以方框图的形式表示本发明的一个实施例的一个计算机系统。 该计算机系统包括总线100、键盘接口101、外部存储器102、 海量存储设备103、处理器104和显示设备控制器105。总线1 00连接到显示设备控制器105、键盘接口101、微处理器104、 存储器102和海量存储设备103。显示设备控制器105可以连接 到一个显示设备上。键盘接口101可以连接到一个键盘上。\n总线100可以是一个单总线或者是一个多总线的组合。作为一个 例子,总线100可以包括一个工业标准结构(ISA)总线、一个扩 展工业标准结构(EISA)总线、一个系统总线、X总线、PS/2 总线、一个外围设备部件互连(PCI)总线、一个个人计算机存储器 卡国际协会(PCMCIA)总线或其它总线。总线100也可以包括 任何这些总线的任一组合。总线100提供计算机系统中部件之间的通 信连接。键盘接口101可以是一个键盘控制器或其它键盘接口。键盘 接口101可以是专用设备或者可以驻留在其它设备中,例如一个总线 控制器或其它控制器中。键盘接口101允许连接一个键盘到该计算机 系统和从一个键盘传输信号到该计算机系统。外部存储器102可以包 括一个动态随机存取存储器(DRAM)设备、一个静态随机存取存储 器(SRAM)设备、或其它存储器设备。外部存储器102存储来自 海量存储设备103和处理器104的信息和数据为处理器104使 用。海量存储设备103可以是一个硬盘驱动器、一个软盘驱动器、一 个CD-R0M设备、一个快速存储器设备或者其它海量存储设备。海 量存储设备103给外部存储器102提供信息和数据。\n处理器104处理来自外部存储器102的信息和数据,并存储信 息和数据到外部存储器102。处理器104还接收来自键盘控制器1 01的信号并传输信息和数据到显示设备控制器105以便在显示设备 上显示。处理器104还传输视频映像到显示控制器以便在显示设备上 显示。处理器104可以是一个复杂指令集计算(CISC)微处理器、 一个精简指令集计算(RISC)微处理器、一个非常长指令字(VL IW)微处理器或者其它处理器设备。显示设备控制器105允许连接 一个显示设备到该计算机系统并作为在显示设备和计算机系统之间的一 个接口。显示设备控制器105可以是一个单色显示适配器(MDA) 卡、一个彩色图形适配器(CGA)卡、增强图形适配器(EGA)卡、 多彩色图形阵列(MCGA)卡、视频图形阵列(VGA)卡、扩展图 形阵列(XGA)卡或者其它显示设备控制器。显示设备可以是一个电 视机、一个计算机监视器、一个平板显示器或者其它显示设备。显示设 备接收来自处理器104经过显示设备控制器105的信息和数据并显 示这些信息和数据给该计算机系统的用户。\n所述计算机系统还包括存取控制器单元106。存取控制器单元1 06连接到总线100。与该计算机系统内存取权限关联的一组密钥存 储在存取控制器单元106中。每一密钥定义一个程序操作的域。这些 密钥还定义一个或者多个组合密钥,用作在一个加密的散列函数中产生 一个程序签名的参数。该程序签名进一步用作一个加密密钥来加密可执 行程序。\n存取控制器单元106从海量存储设备103或者连接到总线10 0的其它I/O设备接收一个要被处理器104运行的进程。该进程包 括一个加密的可执行映像和一个签名分量。在计算机系统执行一个程序 之前,存取控制器单元106检验该程序的签名是否从一个已知的组合 密钥合法构造。通过检验该进程的签名分量,存取控制器单元106识 别该进程的源,检验该进程未被以威胁计算机系统的方式修改,并决定 授于该进程存取操作系统的级别。存取控制器单元106然后允许可执 行程序以分配给在导出该组合密钥时使用的密钥的权限执行。\n图2表示本发明的一个文件编码单元的一个实施例的方框图。文件 编码单元210包括签名生成器221和加密单元230。签名生成器 221运行以产生要被处理器104执行的一个可执行程序的一个签 名。加密单元230使用该签名作为一个密钥加密包含可执行程序的文 件。签名生成器221对一个可执行程序的明文执行一个加密密钥散列 函数,产生加密的文本。签名生成器221使用由存储在存取控制器单 元106中的密钥组成的组合密钥。用于加密散列函数中的每一组合密 钥与一组存取权限关联。这些权限在执行前分配给可执行程序。\n签名生成器221包括计算单元222和加密单元223。签名生 成器221可以使用计算单元222和加密单元223对可执行程序的 明文执行任意数目的加密密钥散列功能或者加密算法。这些密钥既可以 是私有对称密钥,也可以是公共不对称密钥。其差别是操作系统复制该 密钥所需要的保护程度。签名生成器221可以使用诸如Lucifer, Madryga,NewDES,FEAL,REDOC,LOKI,Khufu,Khafre或者IDEA 这样通常的算法来为可执行程序生成一个加密密钥杂散值。在本发明的 一个实施例中,计算单元222和加密单元223使用数据加密标准(D ES)密码块链(CBC)来为可执行程序产生一个加密密钥杂散值。\n图3表示当计算单元222和加密单元223使用CBC为可执行 程序产生一个密钥杂散值时采取的步骤。链接使用一种反馈机制。先前 的块加密的结果反馈到当前块的加密中。换句话说,使用前一块修改下 一块的加密。每一加密文本块既依赖于产生它的明文块也依赖于先前的 明文块。在CBC中,明文在加密前与先前加密的文本块异或。\n在该例子中,编码单元210接收包含具有24字节的一个可执行 程序的一个文件。签名生成器221把这24字节文件分成三个8字节 的部分。明文的前8个字节表示为P1。P1与存储在计算单元222 中的一个初始矢量(IV)异或,产生一个第一积。初始矢量是与一组 要分配给可执行程序的存取权限关联的一个第一组合密钥的一个函数。 在P1与IV异或后,加密单元223使用一个第二组合密钥对第一 积执行密钥加密算法,产生一个加密的第一积C1。密钥加密算法可以 是各种不同的密钥加密算法中的一个,包括前面列出的任何密钥加密算 法。计算单元222用表示为P 2的第二个8字节部分与加密的第一积 异或,产生一个第二8字节积。加密单元223使用第二组合密钥对该 第二积执行一个密钥加密算法,产生一个加密的第二积C2。计算单元 222把该加密的第二积与第三8字节部分异或,产生一个第三8字节 积。加密单元223使用第二组合密钥对该第三积执行一个密钥加密算 法,产生一个第三加密积C3,它用作该可执行程序的一个签名。\n签名生成单元221产生可执行程序的一个签名,其为文件中所有 字符的一个函数。因此,如果该可执行程序被修改,那么通过重新计算 密钥加密的杂散值并将该重新计算的值与原来的签名比较就可能检测出 这一修改。\n加密单元230通过使用从密钥加密杂散算法产生的签名作为一个 密钥执行一个加密算法加密可执行程序。这产生一个加密的可执行映 像。可执行程序的加密提供另外的保护级以防止来授权的第三方读取该 可执行程序。加密单元230可以使用各种加密算法。加密的可执行映 像和签名都作为文件送给一个计算机系统去执行。\n图4表示本发明的一个存取控制器的第二实施例的方框图。存取控 制单元400包括存储单元410、分离单元420、解密单元430、 识别单元440、签名生成单元450、检验单元460和权限分配单 元470。\n存储单元410接收包括一个加密的可执行映像和一个签名分量的 一个数据块。存储单元410可以包括一个DRAM设备、一个SRA M设备或者其它存储设备。存储单元410使用一个指针指示计算机系 统所存储的文件是一个可执行映像还是一个可执行程序。该指针指示计 算机系统,当存储的文件是一个可执行映像时存储单元410正被作为 临时存储设备使用。该指针指示计算机系统,当存储的文件是一个可执 行程序时存储单元410被作为可执行空间使用。\n分离单元420连接到存储单元410。分离单元420接收从存 储单元410来的数据块并从签名分量分离加密的可执行映像。这将允 许存取控制单元400单独处理加密的可执行映像和签名分量。\n解密单元430连接到分离单元420和存储单元410。解密单 元430接收来自分离单元420的以密码文本形式的加密的可执行映 像和签名分量。解密单元430使用该签名分量作为解密密钥解密加密 的可执行映像。解密单元430变换加密的可执行映像为一个解密的可 执行程序。\n识别单元440连接到解密单元430和存储单元410。识别单 元440从解密单元430接收可执行程序。识别单元440读取在可 执行程序中的一个识别标记,获得一个分配给该识别标记的相应组合密 钥的标识。这一组合密钥通常是由签名生成单元221使用用以生成该 可执行程序的密钥杂散值的同一密钥。在本发明的一个实施例中,识别 处理器440包括一个匹配各种识别标记与各种组合密钥的一个查阅 表。该组合密钥与授予可执行程序的特定存取权限关联。\n签名生成单元450连接到识别单元440和存储单元410。签 名生成单元450接收分配给可执行程序的识别标记的组合密钥的标 识。签名生成单元450使用由识别单元440接收的组合密钥的标识 计算由识别单元440接收的解密的可执行程序的一个密钥加密杂散 值。签名生成单元450存储多个对计算机系统分配有特定存取权限的 密钥。这些密钥导出多个组合密钥,它们用于编码和解码可执行程序和 解密的可执行程序。\n检验单元460连接到签名生成单元450和存储单元410。比 较单元460从存储单元410接收可执行映像的签名分量,从签名生 成单元450接收解密的可执行程序的密钥杂散值。检验单元460比 较解密的可执行程序的密钥杂散值与可执行映像的签名分量。如果这两 者相同,则检验单元460允许解密的可执行程序由计算机系统执行。 如果这两者不同,则检验单元460意识到可执行映像已被修改,而不 应该由计算机系统执行。\n在本发明的一个实施例中,签名生成单元450不接收用于计算解 密的可执行程序的密钥加密的散列函数的一个组合密钥的标识。相反, 签名生成单元450使用由在签名生成单元450中存储的密钥的重排 列而导出的组合密钥来计算解密的可执行程序的几个密钥加密的杂散 值。这些密钥加密的杂散值由检验单元460接收,它判定是否有任何 密钥加密的杂散值与原始签名分量匹配。相似地,如果在可执行映像的 签名分量和解密的可执行程序的任何计算的密钥加密杂散值之间存在有 匹配的话,那么检验单元460允许该解密的可执行程序由计算机系统 执行。如果不存在匹配,那么检验单元460意识到可执行映像被修改 而不应该由计算机系统执行。\n权限分配单元470连接到检验单元460和存储单元410。权 限分配单元470接收用作计算匹配密钥加密的杂散值与可执行映像的 签名分量所用的组合密钥的标识。当权限分配单元470从检验单元4 60接收一个信号,指示该解密的可执行程序要由计算机系统执行时, 则权限分配单元470运行以分配可用的权限给该程序,这通过识别与 用于计算匹配的密钥加密杂散值的特定组合密钥关联的权限而实现。在 本发明的一个实施例中,权限分配单元470可以包括一个匹配各种组 合密钥与各种存取权限级别的查阅表。在权限分配单元470给解密的 可执行程序分配合适的权限后,权限分配单元470移动存储单元41 0中的指针,指示计算机系统存储单元410被用作一个可执行空间。 计算机系统将意识到存储单元410包含一个可执行程序并开始执行该 可执行程序。\n图5以方框图的形式表示本发明的第四实施例的一个典型的计算机 系统。该计算机系统包括总线500,微处理器510,存储器520, 数据存储设备530,键盘控制器540和显示设备控制器550。\n微处理器510可以是一个复杂指令集计算(CISC)微处理器, 一个精简指令集计算(RISC)微处理器或者其它处理器设备。微处 理器执行存储在存储器520中的指令或代码和对存储在存储器520 中的数据执行操作。计算机系统500进一步包括一个连接在总线51 5上的数据存储设备530,例如硬盘,软盘或光盘驱动器。显示设备 控制器550也连接到总线515。显示设备控制器550允许连接一 个显示设备到计算机系统。键盘控制器540允许连接一个键盘到计算 机系统以及从键盘传输信号到计算机系统。\n存储器520通过总线500连接到微处理器510。存储器52 0可以是动态随机存取存储器(DRAM),静态随机存取存储器(S RAM)或者其它存储器设备。存储器520可以存储由处理器510 执行的指令或代码,它们可以是应用程序、操作系统程序或其它计算机 程序的一部分。存储器520包括存储模块521、分离模块522、 解密模块523、识别模块524、签名生成模块525、检验模块5 26和权限分配模块527。存储模块521包括由处理器510以图 7所示方式执行的第一多条处理器可执行指令。存储模块521执行类 似于图4的存储单元410执行的功能。分离模块522包括由处理器 510以图7所示方式执行的第二多条处理器可执行指令。分离模块5 22执行类似于图4的分离单元420执行的功能。解密模块523包 括由处理器510以图7所示方式执行的第三多条处理器可执行指令。 解密模块523执行类似于图4的解密单元430执行的功能。识别模 块524包括由处理器510以图7所示方式执行的第四多条处理器可 执行指令。识别模块524执行类似于图4的识别单元440执行的功 能。签名生成模块525包括由处理器510以图7所示方式执行的第 五多条处理器可执行指令。签名生成模块525执行类似于图4的签名 生成单元450执行的功能。检验模块526包括由处理器510以图 7所示方式执行的第六多条处理器可执行指令。检验模块526执行类 似于图4的检验单元460执行的功能。权限分配模块527包括由处 理器510以图7所示方式执行的第七多条处理器可执行指令。权限分 配模块527执行类似于图4的权限分配单元470执行的功能。\n图6是表示编码要由一个计算机系统执行的一个可执行程序的方法 的流程图。首先如方框601所示接收一个可执行程序。接着如方框6 02所示接收定义要分配给所述可执行程序的相关权限的一个组合密 钥。对所述可执行程序执行一个密钥加密杂散算法。该组合密钥既可以 是一个私有对称密钥,也可以是一个公共非对称密钥。这将产生一个密 钥加密的杂散值,它用作该可执行程序的一个签名或者指纹。这示于方 框603。\n接着,使用密钥加密的杂散值作为一个密钥加密该可执行程序。这 产生一个可执行映像。这示于方框604。在可执行程序被加密为一个 可执行映像后,把该可执行映像和签名分量都送往一个计算机系统去处 理和执行。这示于方框605。\n图7是表示一个计算机系统中的存取控制方法的流程图。首先,如 方框701所示,接收具有一个签名分量和一个可执行映像的一个数据 块。如方框702所示从该可执行映像中分离签名分量。使用该签名分 量作为密钥解密该可执行映像,这产生一个解密的可执行程序,它示于 方框703。\n接着,如方框704所示,在解密的可执行程序中定位一个识别标 记。识别与该识别标记关联的一个组合密钥,这示于方框705。在方 框706使用与该识别标记关联的组合密钥计算该解密的可执行程序的 一个密钥加密的杂散值。接着检验数据块的源以及通过比较该数据块中 的签名分量与用于解密的可执行程序的计算的密钥加密杂散值判定该数 据块是否已被修改,这示于菱形707。如果数据块中的签名分量与计 算的密钥加密杂散值不匹配,则不执行该解密的可执行程序。这示于方 框708。如果该数据块中的签名分量与计算的密钥加密杂散值匹配, 那么给解密的可执行程序分配一个由组合密钥确定的适当的权限。这示 于方框709。最后如方框710所示,执行该解密的可执行程序。\n在上面的说明中,本发明参考其特定实施例加以说明。然而显然可 以对其进行各种修改、变化,而不离开在所附权利要求中叙述的本发明 的精神和范围。因此,本说明书及附图应该看作是说明性的,而不是限 制性的。\n虽然熟悉本技术领域的人在读过上面的说明后可以对本发明进行许 多变化或修改,但是应该理解,用图示或说明方式叙述的这些特别的实 施例并不打算限制本发明。因此,对特定实施例的细节的参考并不用于 限制叙述本发明基本特征的权利要求的范围。
法律信息
- 2016-08-24
专利权有效期届满
IPC(主分类): H04L 9/32
专利号: ZL 96196499.5
申请日: 1996.07.19
授权公告日: 2003.10.15
- 2003-10-15
- 1998-10-07
- 1998-09-23
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
1986-09-03
|
1986-03-04
| | |
2
| | 暂无 |
1990-05-25
| | |
3
| | 暂无 |
1993-09-13
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |