给对象签名和签章的方法和设备技术

技术编号:2886721 阅读:376 留言:0更新日期:2012-04-11 18:40
利用本发明专利技术的实施例可产生签名对象和签章对象。签名对象是具有相连的数字签名的对象,该数字签名用于认证该对象。签章对象是被加密,以便只允许授权者访问的对象。签名对象组用来创建、保留和认证签名对象。利用签名对象组创建、保留和认证签章对象,嵌套可用来提供多级签名和/或签章。(*该技术在2018年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及给对象签名和签章。
技术介绍
面向对象的运行期环境包括同时含有行为和状态的对象,运行期的对象状态在运行期环境中演变,由于运行期对象演变,该对象被认为是“活动的”。跨越系统边界分配运行期对象成为必要。在安全的环境中,可能要求在使用分布式运行期对象之前,首先验证分布式运行期对象。需要一个机制用于验证“活动”对象,更进一步,需要一个机制保护运行期对象或者为其签章。认证是在安全系统中使用的用于验证静态信息的步骤。例如,认证用于验证被认证信息的来源。如果该信息被识别为来自可信的出处,则该信息被认为是合法的。一般通过创建一个附加在信息上的签名来实现认证。接收者使用签名验证该信息。通常,信息的原用者用私钥(只有信息和签名的原用者知道的密钥)产生附加于信息上的数字签名。该信息的接收者使用附加的签名和公钥(用分配给公众的私钥产生的密钥)验证该签名,从而验证该信息。具有许多给信息签名的算法,国家标准和技术研究所(NIST)已提交使用数字签名算法(DSA)的数字签名标准(DSS)。根据DSS和DSA,签名由作用于私钥、一个随机数、信息散列及三个公知参数的一组变换而产生的两部分r和s组成。签名的成分r和s被送往接收者,为验证或认证该签名,接收者用公钥(由私钥产生)对r产生一个值,该组变换由接收者利用s、公钥、信息散列和公知参数进行操作而完成,如果利用公钥产生的r值与用私钥产生的r值相同,则签名被验证。DSA中使用的变量如下p512-1024位素数q160位p-1的素因子h小于p-1的值,并且这里h(p-1)/q mod p>1gh(p-1)/q mod pygxmod px<q变量x是私钥,y是公钥,如变量定义中所示,私钥x用来产生公钥y。为产生签名,确定小于q的随机数k,该签名既包括r又包括s,r和s如下产生r=(gkmod p)mod qs=(k-1(H(m)+xr))mod q计算s时,为其创建签名的信息被输入到一个散列(例如,用单向散列)函数以产生H(m)。这样,该信息用来产生签名,该签名连同该信息或者消息一起被送往接收者。接收者通过计算r、v的值验证该签名。如果v与r相同,那么,签名被验证,接收者如下所述计算vw=s-1mod qu1=(H(m)*w)mod qu2=(rw)mod qv=((gu1*yu2)mod p)mod q接收者使用公钥y验证签名,如果被计算的签名v与签名r相同,该签名被验证,并且该信息也被验证。这样,通过认证附加在信息上的签名认证信息。安全的另一方面是确保信息本身只能被特许者读取。通过对信息编码来限制对敏感信息的访问,以便只有特许者才能对该信息解码。对信息编码和解码的系统被称为密码系统。密码系统是用来从发送者经媒介向接收者发送消息、以便保证消息“安全”,即,只有预期的接受者才能恢复该消息的系统。密码系统把称为“明文”的消息转换为称为“密文”的加密格式。通过利用“加密密钥”或密钥处理或转换消息实现加密。接收者对消息“解密”,即通过使用加密密钥或密钥反转处理或转换步骤,把消息由密文转换为明文。只要只有发送者和接收者才知道该密钥,这样的加密传送就是安全的。在“传统”的密码系统中,加密信息可被用来确定解密信息。为了提供安全性,传统的密码系统要求密钥保持秘密,并通过安全信道提供给系统的使用者。安全信道,如秘密信使,安全电话传输线等等,常常不切实际,并且费用昂贵。消除交换安全密钥的困难的系统称为“公钥密码”。根据定义,公钥密码系统的特点是,仅知道如何给消息加密的人不经过冗长的计算就不能用加密密钥找出解密密钥,选择加密函数以便一旦知道了加密密钥,就可相对容易地计算加密函数。但是,加密转换函数的反转较困难,或者说在计算上是不可行的。这样的函数被称为“单向函数”或者“陷阱门函数”。在公钥密码系统,某些关于密钥的信息是公开的,该信息能够并经常以非密方式被出版或传送。同样,某些与密钥相关的信息是秘密的,为保护其私密性,该信息可通过安全信道被分配(或者为保证私密,可由本地使用者创建)。加密/解密方案的例子是ANSIX3.92中定义的数据加密算法(DEA),也称做数据加密标准(DES)。DES对密钥和信息的二进制表示进行算术和逻辑运算,以实现转换。在二进制数字系统中,数字由一系列二进制数或位代表,每位的值为1或0。这样,要转换的密钥和信息由一系列0和1代表。在转换期间,DEA对一组二进制位进行多次反复,或循环操作。每一次处理长度为64位的信息或数据块,该信息或数据块被分成两半,并且对其右半部进行置换,以便将其32位扩展为48位。密钥的48位表示被选择用于在转换中使用。下面是所得到的密钥和数据48位部分的例子。1 2 3 4 5 6 7 8 9……………46 47 48密钥(Key48) 1 0 1 0 1 0 0 0 1 1 00 0 1数据(Data48) 0 0 1 1 0 0 1 0 0 0 11 0 1利用“异或”(XOR)逻辑操作结合密钥和数据部分,当并且仅当操作数之一等于1时,XOR操作产生值1。例如,假如密钥和数据的第一位被异或,结果应为1。如果第48位被异或,则结果应为0。XOR操作产生48位结果,每一位都是密钥和数据的两个二进制位之间的XOR操作的结果。对XOR结果执行一系列置换,产生新的32位,并对新的32位进行置换。把该结果与64位块的左半部进行XOR操作,交换左半部和右半部,并开始另一个反复或循环。关于DEA的更为详细的解释参考“Applied CryptographyProtocols,Algorithms,andSource Code in C,Schneier,B.,John Wiler & Sons,Inc.(1996),作为参考包含于此。目前可用的认证机制认证静态信息。运行期对象不是静态的。类似地,当前的加密机制用于给静态信息加密,因此需要给诸如存在于运行期环境中的“活动”对象进行签名和/或签章的机制。本专利技术概述本专利技术的实施例用来产生签名对象和签章对象。签名对象是具有相关的数字签名的对象,该数字签名可用于认证该对象。签章对象是被加密、以限制为仅授权实体可以访问的对象。签名对象组被定义为表示“活动”对象,“活动”对象能够反映存储在“活动”对象中的运行期状态的改变。“活动”对象是动态对象,因为它的状态(例如,与对象的实例变量相关的值)是可以改变的。产生“活动”对象的瞬象并存储在签名对象内,签名对象还存储与“活动”对象的瞬象相关的签名,可利用例如,DSA产生该签名。签名对象组中的签名标志指示签名对象的状态。当签名标志为真,存储在签名对象中的签名是“活动”对象的瞬象的合法数字签名。签名对象的成员字段是私用的,并可用公用方法访问。不能用超越签名对象的方法处理签名对象的成员字段。一旦“活动”对象被签名,在没有使该签名无效的情况下,不能修改该对象。例如,当修改瞬象时,签名标志被重置为假,以指明该数字签名不再有效。一旦获取“活动”对象的瞬象,对该对象的任何进一步修改都对存储在签名对象中的内容没有影响。为认证“活动”对象,检查签名标志确定签名对象是否包括合法数字签名,合法数字签名从签名对象中被检索出来。检查数字签名,确定它是否是本文档来自技高网...

【技术保护点】
一种给对象签名的方法,包括下述步骤: 取得对象的瞬象; 将签名与所述瞬象相联系; 保持所述瞬象和所述签名之间的所述联系。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:李功
申请(专利权)人:太阳微系统公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1