使消息从发射器装置向接收器装置安全传送的方法

文档序号:6605961阅读:218来源:国知局
专利名称:使消息从发射器装置向接收器装置安全传送的方法
技术领域
本发明涉及一种从发射器装置向接收器装置安全传送消息的方法。
当信息从发射器装置向接收器装置传送时,作为包含在消息中的信息在传送中有被恶化的危险。这种恶化可源于消息的发射器中、传送路径中、或接收器中的故障,或者源于第三方的欺骗行为。然后被接收到的消息被破坏。
这是为什么已经开发出可能验证传送的消息不被破坏的方法的原因。
而且,当信息从发射器装置被传送到接收器装置时,有时使信息保密是有用的,从而一般地对于消息的发射器和接收器而言,仅对有限数量的人保留了对所述信息的访问。
这是为什么已经开发出能使消息保持为保密的方法的原因。
最后,当包含在消息中的信息被传送到接收器装置时,通常用来将消息验证为真正从发射器装置到来的消息。
这是为什么已经开发出消息验证方法的原因。
已知的用于验证没有破坏、保持保密并提供确认的方法,即用于使消息安全的方法通常包括把消息加密并在传送前把验证书连接到那里。然后接收器装置把消息解密、验证证书并且如果消息是计算机程序的话,还可能执行它。
在解密和验证证书包括两个不同的操作的范围内,这种方法显然有点麻烦。在加密和解密操作是冗长的时候尤其是这样。
根据上面所述,本发明寻求解决的问题是提供一种使消息从发射器装置向接收器装置安全传送的方法,其中它不必要执行上述的解密消息和验证证书两个步骤。
根据如上所述的问题,本发明提供一种使消息从发射器装置向接收器装置安全传送的方法,该方法的特征在于-消息被再分为n个基本单元,其中n是大于1的数字;-逻辑性能以对于任何一个基本单元定义这样一种方式而被定义,当应用于真实的基本单元时逻辑性能给出类型为“真”的逻辑值;-消息应用加密算法被发射器装置的加密装置来加密,该算法具有一个密钥来获得加密的结果;-加密的结果被发射器装置传送到接收器装置;-加密的结果应用解密算法被接收器装置解密,该算法具有一个密钥来获得解密的结果;-解密的结果被分为各基本单元;-逻辑性能被应用于基本单元,从而对每个单元获得类型为“真”或类型为“假”的逻辑值;及-如果各个单元的逻辑值是“真”类型,消息被视为真正的且未破坏的。
然后有利地进行存储消息。
也可看到消息Prgm有利地用于被接收器装置R执行和/或编译的计算机程序。基本单元是程序Prgm的指令。被用于基本单元I的性能P无论何时只要基本单元I是可执行的和/或可编译的都给出类型为“真”的逻辑值。被用于基本单元I的性能P无论何时只要基本单元I是不可执行的和/或不可编译的都给出类型为“假”的逻辑值。接收器装置R是具有存储器的智能卡型的便携物体。接收器装置R包括具有存储器的智能卡型的便携物体。具有存储器的便携物体是用户标识模块(SIM)。消息Prgm被以高级编译语言来写入。高级编译语言是Java语言。计算机程序由一组预先编纂的指令构成。消息Prgm被加密为连续的流或链接块。消息Prgm以块形式加密,并且加密的消息Prgm的块被置换。一个置换的块是消息Prgm的开始块或结束块。结果Kc(Prgm)以块形式解密,各个加密的块产生占据与加密的块相同的空间的解密的块。加密和解密算法利用由发射器装置E向接收器装置R传送的随机数字。在被验证后,消息Prgm被记录在接收器装置R的非易失性存储器中。
在阅读了下面的非限制性的描述后将更好理解本发明。
在本发明中,消息Prgm从发射器装置E向接收器装置R传送。
作为示例,消息Prgm是适合于被执行和/或编译的计算机程序。
作为示例,发射器装置E是服务器、计算机、电信网中的发射站或接触或非接触型的智能卡阅读器,即任何能够加密和发射消息的装置。当然,发射器装置E必须在更广泛的意义上被考虑,包括由实际上分离的物理部分构成的复杂的装置,一个部分用于加密加密消息,另一部分实际发射所述消息。
作为示例,接收器装置R是可选择地提供有智能卡阅读器和插入所述阅读器的卡的计算机、通信网络中的接收站、可选择地安装有用户标识模块(SIM)的便携电话,或者甚至智能卡或这种模块,换言之是能够接收消息或存储消息的任何装置,有利地在消息是计算机程序的情况下,装置能够编译和/或执行程序。当接收器装置有利地包括智能卡型的便携存储器物体时,便携物体是支付卡或例如控制对计算机网络的访问的卡。
本发明的下面描述被限制于其中消息是计算机程序Prgm的示例。
在本发明中,计算机程序Prgm被分为n个基本单元I,其中n是大于或等于1的整数。它包括指令、指令块或在计算机程序Prgm被以Java类型的可编译的语言写入的情况下的预先编纂的指令(或字节编码)。
在本发明中,逻辑性能P以对于每一个基本单元I定义这样一种方式而被定义,当被应用于真实的基本单元时,这一性能给出类型为“真”的逻辑值P(I)。
但是,试图在所述基本单元I被修改并且相应于例如不可识别的程序指令,尤其是不能被编译和/或执行的那种指令的任何时候找到当被应用于真实的基本单元I时给出类型为“假”的逻辑值P(I)的性能P。
在本发明中,程序Prgm应用加密算法被发射器装置E的加密装置来加密,该算法具有一个对所述装置E已知的密钥Kc,来获得结果Kc(Prgm)。程序Prgm的加密保证在发射和接收期间被保持保密,并且在它被传送到接收装置R的同时保持保密。这样结果Kc(Prgm)被从装置E传送到接收器装置R。
然后应用包括对接收装置已知的安全密钥Kd的解密算法由装置R将它解密。然后获得解密的结果Kd(Kc(Prgm))。
密钥Kc可对于装置E特殊指定并对于装置R已知,或对于装置R特殊指定并对于装置E已知。第一种结构的示例在装置R是发射器装置传递的服务的用户的情况。第二种结构的示例在装置R是要求程序传送的接收器装置传递密钥Kc,同时解密密钥Kd保持仅对于接收器装置已知的情况。同样结构的示例是Kc和Kd相同(私人密钥系统)并且所述密钥以加密的形式被接收器装置发送到发射器装置的情况。
在本发明中,解密的结果Kd(Kc(Prgm))被细分和分解为n个基本单元,其是或相应于n个基本单元的图象,这些单元是从细分发射器装置E中的程序Prgm而得到的。
然后逻辑性能P被应用于所述n个基本单元从而对每个单元获得类型为“真”或类型为“假”的逻辑值。
当所有逻辑值是“真”类型,很可能解密的程序与加密的程序相同,并且用于加密的密钥是期望的密钥Kc。然后接收器R推论得出程序Prgm消息未被破坏并且实际上它被拥有密钥Kc的发射器装置E发射,从而是认可的。
但是,当至少一个逻辑值是假类型时,解密的程序不同于Prgm,接收器装置R推论得出程序Prgm在发射、接收或传送中受到至少一次修改,或者所述程序Prgm利用与Kc不同的密钥被加密到消息中,这个Kc不是所期望的值。然后程序或是被破坏或是不认可的。
从而本发明可能在单一的加密和解密操作中同时保证消息是未被破坏的、是认可的并且程序Prgm被保持保密的。
通过示例方式假设程序Prgm被写入的计算机语言的指令是以4字节编码的指令,产生理论总值为232个的可能的编码来定义指令。当然,由一组参数限定的一些编码不会与任何可理解的指令相对应。另外,用于某些编码的某些参数,通常是最后3个字节,仅具有被认可的某值。从而存储器地址不能是负的,或者不能位于分配给程序Prgm的空间外部。这是为什么性能P有利地包括参数测试的原因,所述参数测试依赖于指令类型。
如果单元未检测率C通过把关于解密性能P和下面的单一的改变应用于程序Prgm而被定义为不被识别为假的可能的指令的百分数,假设单一的改变是解密的结果的各个指令中的改变的原因,接收器装置R不能检测欺骗行为的可能性prob将由下面给出,prob=(1-C)n对于下面的典型的值,获得下面的可能性prob
观察到除了具有很少指令的并且对于其单元未检测率C很高的程序外,通过未观察到的改变的可能性,尤其是欺骗性的改变的可能性很低。在程序应用Kc之外的密钥被加密的情况下这种可能性是很低的fortiori。
与传统的加密操作相比,应用性能P不需要额外的投资,尤其是考虑到额外的计算时间。如果加密算法是高质量的,假设在解密伪造的指令运行时任何努力都是伪随机性的,它能在所有类型的程序Prgm中检测到错误。
加密算法有利地是链接块或连续流类型。从而修改任何一个基本指令将产生其它指令中的修改。相反,如果算法以块来独立地操作,加密的程序可被分解为一系列的n块,例如必须相应于n个基本单元。通过修改一个块并观察接收器装置的行为,修改通过的未检测到的可能性Prgm然后等于1-C,并且因此很高。
为避免应用于加密的程序的首块和尾块的检测到的修改,例如加密的程序的块被置换,从而所述首块和尾块处于不会被不诚实用户预测到的位置,尽管它们对于装置E和R而言是已知的。
当加密算法应用通过例如接收器装置R产生的并且与发射器装置E通信的随机数字时,也改进保密性。作为示例,这是基于应用于预定数目的字节的程序的或应用于加密前的所有程序的异或操作的。
最后,在程序的开始和/或结束,可能在加密前插入空指令(NOPs),接收装置将通过应用性能P而将其识别出来并且然后将其消除。
在本发明的第一实施例中,发射器装置E是GSM电信网(GSM是全球通移动电话)的基站或使用安全模块的任何其它类型的移动电话系统,接收器装置R是与移动电话相关联的用户标识模块SIM。下载到所述SIM中的程序Prgm以预先编纂的指令形式而被编码(字节编码),例如以Java语言写入。
当然,本发明应用与其它智能卡相同的方式,例如支付系统或访问控制系统。
在本发明的第一实施例中,程序被分为n个基本单元,每一个基本单元是一个预先编纂的指令,其具有预定数目的比特(或固定的或依赖于指令类型)。
逻辑性能P以这样一种方式来定义当被应用到那里的基本单元是可执行的指令(可编译的指令)或相应于NOP指令时它采用真逻辑值。
程序Prgm然后应用如在美国专利No.4405829中描述的RSA(RSA=Rivet,Shamir Adelman)类型的加密算法被发射器装置E加密。然后获得加密结果Kc(Prgm),即密钥Kc的函数。
这个结果Kc(Prgm),即加密的程序,被基站传递到与那里相关联的发射站并接着传递到移动电话接收装置。然后它被装载到卡中,在那里在应用加密操作之前,它被记录在非易失性存储器中(EEPROM),给出用于在SIM中执行这种操作需要的时间长度。
这个结果Kc(Prgm)然后应用包括安全密钥Kd的解密算法被解密。解密结果的各个块被存储在SIM的EEPROM中的相应的加密结果块的地址中。因此,用于执行根据本发明的解密的存储器空间被最小化。还观察到在本发明的另一种形式的实施例中,在至少一块的可利用的存储器空间的帮助下,可能把解密的结果块存储在不同于它们相应的加密的块的地址的存储器地址中。可能循环地置换,从而在解密步骤期间提高程序的可靠性。
性能P优选在加密的结果Kc(Prgm)已经被完全解密后被应用,仅在进行了所有的验证后获得最后的结果(接受的或拒绝的程序)。从而不诚实的人不能简单地检测到哪个基本单元I被识别,在应用性能P时产生一个假的逻辑值。
给出在SIM中可利用的少量的存储器,对于性能P执行简单的计算函数。这是一个由编译器本身执行的函数。一旦加密的结果被解密,编译器通过查看是否指令是有意义的来编译解密的结果。换言之,编译器以与以正常方式编译时相同的方式来分析程序,有一个不同是这种编译没有跟随除验证解密的结果是否真正相应于程序Prgm之外的任何效果。
在本发明的第二实施例中,发射器装置E是包括程序Prgm的预先编纂和加密的如以Java语言写入的形式Kc(Prgm)的服务器。接收器装置R是个人计算机,其有利地提供有可插入卡的智能卡阅读器。个人计算机具有一个硬盘和一个可靠地即不能被第三方读出或写入的存储区,用于解密的结果Kd(Kc(Prgm))和密钥的暂时或永久地存储。计算机还具有软件,用于装载程序Prgm并被称为“装载器”,该程序每次被调用时,在所述程序Prgm被应用前,必须装载预先编纂的程序Prgm(编译或期望的)。在本发明的这个第二实施例中,软件包括解密功能,其有利地具有对解密必要的功能元件并且尤其具有解密算法的元件。用于装载程序的装载器软件然后被称为“过装载”。当然,解密需要的其他功能元件可被包含在智能卡的非易失性存储器中。这些元件然后被程序装载器软件和解密功能调用。从而使装载器软件能与卡相连时解密结果Kc(Prgm)并在编译所述的解密的结果Kd(Kc(Prgm))之前验证解密的结果Kd(Kc(Prgm)),即该程序Prgm被执行后,性能P已经被成功应用于程序Prgm一次。
如果卡单独作为用于包含一个或多个解密需要的密钥或元件,例如表的保密物理媒体,在描述本发明的第一实施例的方法时提到的时间和存储器空间限制条件被在第二实施例中是不重要的。卡甚至可包含整个安全解密算法。
结果,性能P不需要仅具有上述类型,或者可以是在验证算法中实施的特殊性能。在一个示例中,验证算法在每次来自加密的结果的一块指令已经被解密时验证预先编纂的指令。
卡和提供有编译器、装载器装置和与卡插入其中的卡阅读器相关的个人计算机之间的数据互换阶段包括3个阶段初始化阶段;传送阶段;解密/验证阶段。
初始化阶段是在其期间公共密钥和安全密钥被互换的阶段。这一阶段在解密处理的初始化期间被运行。密钥对不被写入在个人计算机的硬盘上并可在任何时候再计算。在这个阶段,再初始化指令被个人计算机传送到卡。然后计算机计算包括公共密钥PKc和安全密钥PKd一对密钥,应用安全密钥PKd计算公共密钥PKc的特征。这个特征用公共密钥PKc被传送到卡。然后应用公共密钥PKc由卡验证它。卡应用安全密钥CLd来计算公共密钥CKc的特征。这一特征应用公共密钥CKc被传送到个人计算机。计算机应用公共密钥CKc验证特征。
传送阶段是在其期间安全信息从卡被装载到个人计算机中的阶段。这一信息使计算机能够解密预先编纂和加密的形式的程序Prgm。在这个阶段期间,计算机要求卡传送它包含在它的存储器中的安全的解密密钥Kd。卡应用密钥PKc加密这一密钥并把它发送到计算机。计算机应用它的密钥Kd对这一消息进行解密,然后对它给出密钥Kc。然后对于计算机可能解密程序Kc(Prgm)来获得程序Prgm′,如果不发生欺骗行为,其与原始程序Prgm相同。
此时,计算机可把程序Prgm′再分为基本单元,并把性能P应用于那里,与第一实施例一样。如果结果是令人满意的,所述程序例如被存档在例如硬盘上。计算机还可计算验证信息(例如校验和或更好是散列总和),并把它存档在卡存储器中,以使它能够顺次验证程序没有被破坏。
权利要求
1.一种使消息Prgm从发射器装置E向接收器装置R安全传送的方法,该方法的特征在于-消息Prgm被分为n个基本单元I,其中n是大于1的数字;-逻辑性能P以对于任何一个基本单元I按这样一种方式进行定义,即当应用于真实的基本单元I时逻辑性能P给出类型为“真”的逻辑值;-消息Prgm应用加密算法被发射器装置E的加密装置来加密,该算法具有一个密钥Kc来获得加密的结果Kc(Prgm);-加密的结果Kc(Prgm)被发射器装置E传送到接收器装置R;-加密的结果Kc(Prgm)应用解密算法被接收器装置R解密,该算法具有一个安全密钥Kd来获得解密的结果Kd(Kc(Prgm));-解密的结果Kd(Kc(Prgm))被分为基本单元I;-逻辑性能P被应用于基本单元I从而对每个单元获得类型为“真”或类型为“假”的逻辑值;及-如果各个单元的逻辑值是“真”类型,消息Prgm被视为真实的且未被破坏的。
2.根据前面所述的权利要求的方法,其特征在于消息Prgm是适合于接收器装置R执行和/或编译的计算机程序。
3.根据前面所述的权利要求的方法,其特征在于基本单元I是程序Prgm的指令。
4.根据权利要求2或3的方法,其特征在于无论何时只要基本单元I是可执行的和/或可编译的,用于基本单元I的性能P给出类型为真的逻辑值。
5.根据权利要求2、3或4的方法,其特征在于无论何时只要基本单元I是不可执行的和/或不可编译的,用于基本单元I的性能P给出类型为假的逻辑值。
6.根据前面任一项所述的权利要求的方法,其特征在于接收器装置R是具有存储器的智能卡型的便携物体。
7.根据权利要求1-5的任一项的方法,其特征在于接收器装置R包括具有存储器的智能卡型的便携物体。
8.根据权利要求6的方法,其特征在于具有存储器的便携物体是用户标识模块(ISM)。
9.根据前面任一项所述的权利要求的方法,其特征在于消息Prgm以高级编译语言被写入。
10.根据权利要求9的方法,其特征在于高级编译语言是Java语言。
11.根据权利要求9或10的方法,其特征在于计算机程序由一组预先编纂的指令构成。
12.根据前面任一项所述的权利要求的方法,其特征在于消息Prgm被加密为连续流或链接块。
13.根据前面任一项所述的权利要求的方法,其特征在于消息Prgm以块的形式被加密,并且加密的消息Prgm的块被置换。
14.根据权利要求13的方法,其特征在于置换的块之一是消息Prgm的开始块或结束块。
15.根据权利要求1-12的任一项的方法,其特征在于结果Kc(Prgm)以块形密,各个解密的块产生与加密的块占据相同的空间的解密的块。
16.根据前面任一项所述的权利要求的方法,其特征在于加密和解密算法利用由发射器装置E向接收器装置R传送的随机数目。
17.根据前面任一项所述的权利要求的方法,其特征在于消息Prgm在验证后被记录在接收器装置R的非易失性存储器中。
全文摘要
一种从发射器装置E向接收器装置R安全传送消息Prgm的方法。本发明的方法的特征在于:消息Prgm被分为n个基本单I,其中n是大于或等于1的数;逻辑性能P以对于任何基本单元I定义这样一种方式被定义,应用于真实的基本单元I的逻辑性能P给出类型为“真”的逻辑值;消息Prgm应用加密算法被发射器装置E的加密装置来加密,该算法具有密钥(Kc)来获得加密的结果Ko(Prgm);加密的结果Ko(Prgm)被发射器装置E传送到接收器装置R,加密的结果Kc(Prgm)应用解密算法被接收器装置R解密,该算法具有安全密钥(Kd)来获得解密的结果Kd(Kc(Prgm));解密的结果Kd(Kc(Prgm))被分为基本单元I;逻辑性能P被应用于基本单元I,从而对每个单元获得类型为“真”或类型为“假”的逻辑值。本发明引起适用于智能卡领域。
文档编号G06F21/60GK1284227SQ98813288
公开日2001年2月14日 申请日期1998年12月16日 优先权日1997年12月16日
发明者莱昂内尔·布雷黑米, 文森特·里加尔 申请人:施蓝姆伯格系统公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1