一个分布计算机系统,具有一程序编译计算机,它由一编译方操作,并包括一个编译程序,当检验了一中性结构程序的始发方数字署名时,编译程序通过(A)将中性结构程序码编译成特定结构程序码,和(B)将编译方数字署名加到特定结构程序码以产生一特定结构程序,该系统还具有一程序执行计算机,它由一执行方运行,并包括一特定结构程序执行器,当验证了中性结构程序的始发方数字署名、特定结构程序编译方数字署名和编译方是规定的受托编译方时,该特定结构程序执行器执行特定结构程序码。(*该技术在2016年保护过期,可自由使用*)
【技术实现步骤摘要】
本专利技术一般涉及一种分布式计算机系统,特别涉及一种程序编译系统(Program Compilation System)和方法,其中,由受托的第三方以如下方式对中性结构可执行程序进行编译,所述的方式是指该所编程序的接受者能够检验所述相应中性结构程序的同一性(identity)并能够检验它由所述受托第三方(trusted third party)所编译。术语“结构”被规定用于这个文件的目的意指一系列型号计算机(familyof computer models)的运行特性。不同的结构例子是Macintosh计算机、使用DOS或Windows操作系统的IBM PC兼容计算机、运行Solaris操作系统的SUN微系统计算机和使用Unix操作系统的计算机系统。术语“中性结构”(architecture neutral)被规定用于这个文件的目的涉及到使用一些不同的计算机结构在多种计算机平台上执行诸如用Java(SunMicrosystem公司的商标)语言编写的程序等某些程序的能力。术语“特定结构”被规定用于这个文件的目的涉及到仅使用一个单一的计算机结构在计算机平台上执行某些程序的请求。例如,用80486汇编程序语言编写的目标代码程序只能在使用IBM PC兼容计算机结构的计算机(以及含有IBM PC兼容计算机仿真器的其它计算机)上执行。中性结构程序(ANPrograms)的重要特性包括用所述中性结构语言(ANLanguage)编写的程序的结构独立性。例如,Java字节码程序可以在具有Java字节码解译程序的任意一个计算机平台上执行。Java字节码程序的另一个重要特性是在执行以前利用Java字节码检验器(verifier)可以直接检验它们的完整性。Java字节码检验器确定所述的程序是否符合预定的完整性标准。这些标准包括操作数栈(operand stack)和数据类型使用限制,该使用限制保证Java字节码程序不会在执行计算机的操作数栈中上溢或下溢,并保证所有的程序指令仅利用已知数据类型的数据。其结果是Java字节码程序不能够建立目标指针,并且,通常不能访问除用户显然已经被授权允许使用的系统资源以外的系统资源。遗憾的是,分布在ANLanguage中的可执行程序使得所述ANProgram的运行效率要低于如果利用特定结构性能时所能达到的效率。例如,由Java字节码解译程序执行的Java字节码程序的运行速度通常要比在相应的特定结构语言(ASLanguage)中编译的等效特定结构程序(ASProgram)慢2.5到5倍。在速度减少5倍被认为对于一个ANProgram执行器(即,解译程序)来讲是不好的同时,它会在效率方面带来足够大的损失,所以某些用户将需要或坚持要求按ASLanguage编译的等效程序的能力使用。编写的编译程序可将ANProgram编译成等效ASProgram,但是,对于终端用户来讲,它们特别昂贵。另外,不能利用一个ANProgram完整性检验器根据编译的ASProgram代码来直接检验所述等效编译的ASProgram的完整性。因此,在Java字节码程序的情况下,将ANProgram编译成等效ASProgram的这种使用可能导致ANLanguage的一种最重要特性的丧失。但是,存在有某些合法的(或正当的)任务,这些任务可以利用完整性不可检验的ASProgram加以执行,但不能利用完整性可检验的ANProgram加以执行。这些任务包括其它违背设置在完整性可检验的ANProgram上的操作数栈和数据类型使用限制的任务,另外,这种ASProgram能够比ANProgram执行得更快,其结果是就存在有为什么希望具有如下计算机系统的理由,这种计算机系统被设计成除了具有执行完整性不可检验的ASProgram的能力以外,它主要用于执行完整性可检验的ANProgram。虽然通过第三者执行ANProgram的编译是可能的,但是,这种编译需要将所述的第三者认证,就是说,必须可以对由特定受托的第三者编译的ASProgram中的信息进行检验。最好,它还能够确认编译后的ASProgram是由一个特定受托编译程序产生的,并且由于相对于预定完整性标准编译后的ASProgram的完整性不能够被直接检验,所以该编译后的ASProgram应当包括某种信息,这种信息可以用能检验的方式识别依据其进行编译的相应的ANProgram和对其进行编译的ASLanguage。因此,本专利技术的一个目的是提供一种ANProgram编译程序和编译方法,这种编译方法使根据相应的ANProgram所编译的ASProgram的用户能够确认编译该ANProgram的编译者的同一性以及所述相应的ANProgram的同一性和其中所编译的ASProgram的ASLanguage语言。本专利技术的另一个目的是提供一种ANProgram执行器(executer)和一种执行方法,这种方法是在防止调用其源、编译信息和完整性不能检验的ASProgram的同时,允许正在执行的、完整性可检验的ANProgram去调用受托的或具有可检验源和编译信息的完整性不可检验的ASProgram,从而使得几乎所有的合法任务都可以被执行。总之,本专利技术是一种计算机网络,该网络包括一个程序编译计算机和一个程序执行计算机。所述程序编译计算机是由编译方(compiling party)运行的,它包括一个存储器,用于存储由一个始发方(originating party)产生的中性结构程序。所述中性结构程序包含有中性结构程序码和所述始发方的一个数字署名(signature)。所述程序编译计算机还包括一个署名检验器,该检验器检验所述始发方的数字署名,以验证所述始发方的数字署名匹配与附加到中性结构程序的署名(即是由其产生)。所述程序编译计算机还包括一个编译程序,当验证完所述始发方的数字署名时,该编译程序按照由对信息编译所识别的特定结构语言,将该中性结构程序码编译成特定结构程序码。该编译程序使用一个署名发生器将一个所述编译程序的数字署名附加到所述特定结构程序码上,其中,该编译程序的署名标记一组信息,该信息包括所编译的特定结构程序码加上位于所述中性结构程序上的署名。在最佳实施例中,所述编译程序使用上述署名发生器将所述编译方的数字署名也附加到特定结构程序码上,其中,编译方署名标记一组信息,该信息包括所编译的特定结构程序码、位于中性结构程序上的署名和该编译程序署名。所述程序执行计算机由执行方操作,它包括一个存储器,用于存储中性结构和特定结构程序。它还包括一个署名检验器,用于(A)检验处于中性结构程序形式下的所述始发方的数字署名,和(B)检验处于特定结构程序形式下的编译程序的数字署名和/或检验处于特定结构程序形式下的编译方的数字署名。术语“检验一个署名”的意思是执行一个过程以确定所述的署名与被所述署名标记的该组信息相匹配(即实际上是由其产生)。所述程序执行计算机还包括一个特定结构程序执行器,当处于所述特定结构程序形式下的数字署名被验证完毕时,该特定程序执行器执行所述特定结构程序的特定结构程序码。在最佳实施例中,在一个对象中表示了所述中性结构程序,所述对象含有一个数字署名,该数字署名包括唯一与所述中性结构程序相关的一个消息摘要本文档来自技高网...
【技术保护点】
一种计算机网络,包括由一个编译方操作的程序编译计算机,该程序编译计算机接收一个由始发方产生的中性结构程序,该中性结构程序包含有中性结构程序码和所述始发方的数字署名,当其被检验时检验由所述始发方所标记的中性结构程序,所述程序编译计算机包括 :一个署名检验器,用于检验所述始发方的数字署名;一个编译程序,用于当所述始发方的数字署名被检验完毕时,产生特定结构程序,所述编译程序,通过下述方式产生所述特定结构程序,所述方式是:(A)按照特定结构语言将所述中性结构程序码编译成特定 结构程序码,和(B)附加一个编译方的数字署名,当其被检验时,检验由所述编译方产生的特定结构程序;署名发生器,用于产生编译方的数字署名;和由一个执行方操作的程序执行计算机,该程序执行计算机接收特定结构程序,和接收或始发该中性结构程序, 所述程序执行计算机包括:一个署名检验器,用于检验所述编译方的数字署名;一个执行器,用于执行按所述特定结构语言写成的程序码,当所述编译方的署名已被检验,并且所述的编译方是指定设定的受托编译方时,所述执行器执行特定结构程序码。
【技术特征摘要】
...
【专利技术属性】
技术研发人员:查尔斯E麦克梅尼斯,弗兰克耶林,
申请(专利权)人:太阳微系统有限公司,
类型:发明
国别省市:US[美国]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。