CN1258359A - 给对象签名和签章的方法和设备 - Google Patents

给对象签名和签章的方法和设备 Download PDF

Info

Publication number
CN1258359A
CN1258359A CN98805606.2A CN98805606A CN1258359A CN 1258359 A CN1258359 A CN 1258359A CN 98805606 A CN98805606 A CN 98805606A CN 1258359 A CN1258359 A CN 1258359A
Authority
CN
China
Prior art keywords
signature
snapshot
computer readable
program code
readable program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN98805606.2A
Other languages
English (en)
Other versions
CN1122213C (zh
Inventor
李功
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of CN1258359A publication Critical patent/CN1258359A/zh
Application granted granted Critical
Publication of CN1122213C publication Critical patent/CN1122213C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/007Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
    • G06F2211/008Public Key, Asymmetric Key, Asymmetric Encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Storage Device Security (AREA)
  • Road Signs Or Road Markings (AREA)
  • Collating Specific Patterns (AREA)
  • Packaging For Recording Disks (AREA)
  • Image Input (AREA)

Abstract

利用本发明的实施例可产生签名对象和签章对象。签名对象是具有相连的数字签名的对象,该数字签名用于认证该对象。签章对象是被加密,以便只允许授权者访问的对象。签名对象组用来创建、保留和认证签名对象。利用签名对象组创建、保留和认证签章对象,嵌套可用来提供多级签名和/或签章。

Description

给对象签名和签章的方法和设备
发明领域
本发明涉及给对象签名和签章。
背景技术
面向对象的运行期环境包括同时含有行为和状态的对象,运行期的对象状态在运行期环境中演变,由于运行期对象演变,该对象被认为是“活动的”。跨越系统边界分配运行期对象成为必要。在安全的环境中,可能要求在使用分布式运行期对象之前,首先验证分布式运行期对象。需要一个机制用于验证“活动”对象,更进一步,需要一个机制保护运行期对象或者为其签章。
认证是在安全系统中使用的用于验证静态信息的步骤。例如,认证用于验证被认证信息的来源。如果该信息被识别为来自可信的出处,则该信息被认为是合法的。
一般通过创建一个附加在信息上的签名来实现认证。接收者使用签名验证该信息。通常,信息的原用者用私钥(只有信息和签名的原用者知道的密钥)产生附加于信息上的数字签名。该信息的接收者使用附加的签名和公钥(用分配给公众的私钥产生的密钥)验证该签名,从而验证该信息。
具有许多给信息签名的算法,国家标准和技术研究所(NIST)已提交使用数字签名算法(DSA)的数字签名标准(DSS)。根据DSS和DSA,签名由作用于私钥、一个随机数、信息散列及三个公知参数的一组变换而产生的两部分r和s组成。签名的成分r和s被送往接收者,为验证或认证该签名,接收者用公钥(由私钥产生)对r产生一个值,该组变换由接收者利用s、公钥、信息散列和公知参数进行操作而完成,如果利用公钥产生的r值与用私钥产生的r值相同,则签名被验证。
DSA中使用的变量如下:
p:512-1024位素数
q:160位p-1的素因子
h:小于p-1的值,并且这里h(p-1)/q mod p>1
g:h(p-1)/q mod p
y:gx mod p
x:<q
变量x是私钥,y是公钥,如变量定义中所示,私钥x用来产生公钥y。为产生签名,确定小于q的随机数k,该签名既包括r又包括s,r和s如下产生:
r=(gk mod p)mod q
s=(k-1(H(m)+xr))mod q
计算s时,为其创建签名的信息被输入到一个散列(例如,用单向散列)函数以产生H(m)。这样,该信息用来产生签名,该签名连同该信息或者消息一起被送往接收者。接收者通过计算r、v的值验证该签名。如果v与r相同,那么,签名被验证,接收者如下所述计算v:
w=s-1 mod q
u1=(H(m)*w)mod q
u2=(rw)mod q
v=((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 0        0  0   1数据(Data48)  0 0 1 1 0 0 1 0 0 0 1        1  0   1
利用“异或”(XOR)逻辑操作结合密钥和数据部分,当并且仅当操作数之一等于1时,XOR操作产生值1。例如,假如密钥和数据的第一位被异或,结果应为1。如果第48位被异或,则结果应为0。XOR操作产生48位结果,每一位都是密钥和数据的两个二进制位之间的XOR操作的结果。对XOR结果执行一系列置换,产生新的32位,并对新的32位进行置换。把该结果与64位块的左半部进行XOR操作,交换左半部和右半部,并开始另一个反复或循环。关于DEA的更为详细的解释参考“Applied Cryptography:Protocols,Algorithms,andSource Code in C,Schneier,B.,John Wiler & Sons,Inc.(1996),作为参考包含于此。
目前可用的认证机制认证静态信息。运行期对象不是静态的。类似地,当前的加密机制用于给静态信息加密,因此需要给诸如存在于运行期环境中的“活动”对象进行签名和/或签章的机制。
本发明概述
本发明的实施例用来产生签名对象和签章对象。签名对象是具有相关的数字签名的对象,该数字签名可用于认证该对象。签章对象是被加密、以限制为仅授权实体可以访问的对象。
签名对象组被定义为表示“活动”对象,“活动”对象能够反映存储在“活动”对象中的运行期状态的改变。“活动”对象是动态对象,因为它的状态(例如,与对象的实例变量相关的值)是可以改变的。产生“活动”对象的瞬象并存储在签名对象内,签名对象还存储与“活动”对象的瞬象相关的签名,可利用例如,DSA产生该签名。签名对象组中的签名标志指示签名对象的状态。当签名标志为真,存储在签名对象中的签名是“活动”对象的瞬象的合法数字签名。
签名对象的成员字段是私用的,并可用公用方法访问。不能用超越签名对象的方法处理签名对象的成员字段。一旦“活动”对象被签名,在没有使该签名无效的情况下,不能修改该对象。例如,当修改瞬象时,签名标志被重置为假,以指明该数字签名不再有效。一旦获取“活动”对象的瞬象,对该对象的任何进一步修改都对存储在签名对象中的内容没有影响。
为认证“活动”对象,检查签名标志确定签名对象是否包括合法数字签名,合法数字签名从签名对象中被检索出来。检查数字签名,确定它是否是真正的,如果数字签名是真正的,从签名对象中检索出“活动”对象的瞬象,并用于重新构造“活动”对象。
签章对象组用于给“活动”对象加密。产生“活动”对象的瞬象并存储在签章对象中。利用公钥给该瞬象加密。将加密瞬象存储在签章对象中,一旦瞬象被加密,就从签章对象中删除瞬象的明文版本。为检索该加密对象,从签章对象检索出加密瞬象。私钥用来给加密瞬态解密,解密瞬象用来重新构造“活动”对象。和签名对象组一样,通过其成员方法,可公开访问签章对象组的成员字段或变量。
利用本发明的实施例可合并对对象的签名和签章。例如,通过将瞬象和签名存储在签章对象实例中给“活动”对象的瞬态签章。瞬象被加密,并从签章对象中删除瞬象的明文版本。在使用瞬象重新构造“活动”对象之前,签名用来进行认证。为认证对象,对瞬象解密以产生明文。例如用DDS和DSA认证明文。如果可靠,则把该明文用来重新构造“活动”对象。
可定义子组,以允许多级签名。例如,可将多个签名放在相同的瞬象上。这种情况下,基组中存在的方法调用在语义上完全兼容。例如,如果只有一个签名,则用于获取签名的方法返回单一签名,或者,如果有多于一个的签名,就从一组签名中返回一个签名。
图的简要描述
图1给出了可用于本发明实施例的通用计算机的例子。
图2给出了根据本发明实施例的签名对象组的概述。
图3给出了根据本发明实施例的签章对象组的流程。
图4给出了根据本发明实施例的用于对象的状态机器的例子。
图5给出了根据本发明实施例的对象签名处理流程的例子。
图6给出了根据本发明实施例的对象解除签名处理流程的例子。
图7给出了根据本发明实施例的访问请求管理处理流程的例子。
图8给出了根据本发明实施例的对象签章处理流程的例子。
图9给出了根据本发明实施例的对象解除签章处理流程的例子。
图10给出了根据本发明实施例的用于给对象解除签名和解除签章的处理流程的例子。
本发明的详细描述
描述的是给对象签名和签章的方法和设备。在下面的叙述中,陈述了许多具体细节,以便对本发明进行全面的描述。但是,对本领域的技术人员来说,没有这些具体细节显然也可实施本发明。在其他例子中,没有详细描述公知的特征,以免使本发明难以理解。
本发明的实施例可用图1所示的通用计算机实现。键盘110和鼠标111与双向系统总线118耦接,键盘和鼠标用于把用户输入引入计算机系统,并将用户输入传递到CPU113。图1的计算机系统还包括视频存储器114、主存储器115和大容量存储器112,与键盘110、鼠标111和CPU113一起,都接入双向系统总线118。大容量存储器112可同时包括固定的和可移动的存储媒体,如磁的、光的或磁光存储系统或者其他任何可用的大容量存储器技术。总线118可包含,例如,用于对视频存储器114或主存储器115寻址的32位地址线。系统总线118还包括,例如,用于在诸如CPU113、主存储器115、视频存储器114和大容量存储器112之类组件间传送数据的32位数据总线。或者,可使用多路复用数据/地址线,而不是单独的数据线和地址线。
在本发明的实施例中,CPU113是Motorola生产的32位微处理器,如680×0或PowerPC处理器,或者是Intel生产的微处理器,如80×86或奔腾处理器。但是,任何其他合适的微处理器或微机都可以使用。主存储器115由动态随机存储器(DRAM)组成。视频存储器114是双端口视频随机存储器,视频存储器114的一个端口与视频放大器116耦接,视频放大器116用于驱动阴极射线管(CRT)光栅监视器117,视频放大器116是本领域公知的,并可由任何适用的装置实现。该电路技术将存储在视频存储器114的象素数据转化为适于监视器117使用的光栅信号。监视器117是一种适于显示图形图象的监视器。
上述计算机系统仅作为例子,本发明可在任何类型的计算机系统或编程或处理环境中实现。
本发明的一个实施例用于给对象签名以便使该对象得到认证。本发明的实施例还可用于给对象加密,以便限制对该对象的访问。本发明的签章和签名机制可结合起来创建签名、签章对象。
对象签名是用来创建不可伪造的对象的数字签名方案的机制。例如随后,签名的对象可在运行期系统(例如,Java运行期系统)内或在其之间作为可验证的认证令牌或对象被传递。其他应用包括使用在运行期环境内部的签名对象作为不可伪造的认证令牌,该令牌可以到处通行,不用担心令牌在没有察觉时会被恶意修改。签名对象可被存储在运行期的外面,以便把例如,关键的访问控制数据存储在磁盘上。利用本发明的实施例,嵌套可以构造签名的逻辑顺序,例如,建立认证和授权链。
把签名对象组定义为给对象签名,图2给出了本发明实施例的签名对象组的概述,签名对象组202用来给在运行期环境下的示例对象204签名,对象204的瞬象被创建并存储在数组214中,该瞬象包括对象204的状态。即,例如,瞬象包括对象204的组、组签名和对象204的全部非瞬态和非静态字段的值,签名由签名发生器206产生,并被存储在签名对象202的数组216中。
借助签名对象202的方法,数组214和216是可公开访问的。例如,签名对象202可限制访问,以便当数组216中存在合法数字签名时,修改数组214的请求不被允许。另外,修改数组214的请求被允许,但是,数组216中的合法签名结果是非法的。签名对象202的另一个方法提供检验数组216的状态的能力,(例如,数组216是否包含合法签名)。可用签名对象202的方法检索数组214和216的内容。在称为“签名对象组”的章节中提供了签名对象组的变量和方法的例子。
存储在数组214中的对象204的瞬象可用于重新构造对象204,检查包含在数组216中的签名,为的是验证可靠性(例如,对象来源于可信的出处)。如果签名可靠,则数组214的内容用来重新构造对象204,例如,数组214的内容可包含对象204的状态,该状态用来提供对象204的一个实例的字段。或者,数组214既包括对象204的状态还包括其行为。
利用本发明的实施例,一个对象还可以被签章,或者除此之外,给对象签名。图3给出了本发明实施例的签章对象组的概述,在本发明最佳实施例中,签章对象组是签名对象组的子组,因此,签章对象组继承签名对象组的成员字段和方法,签章对象202通过给对象204的内容加密用来给对象204签章,对象204的瞬象被创建并存储在数组214中,瞬象包括对象204的状态,即,例如,瞬象包括对象204的组、组签名和对象204的全部非瞬态和非静态字段的值。签名由签名发生器206产生并存储在签名对象202的数组216中。
借助签名对象202的方法,数组214和216是可访问的。作为签名对象202的子组,签章对象302包括用于修改数组214、检验数组216的状态(例如,数组216是否包含合法签名)、检索数组214和216的内容等的签名对象202的方法。签章对象302的实例还包括给对象204的瞬象加密和解密的方法。签章对象302的其他方法提供确定签章对象302的状态,并检索数组318的内容的能力。在称为“签章对象组”的章节中提供了签章对象组的变量和方法的例子。
数组318包含对象204的瞬象的加密版本,即密文。为给对象204加密,产生对象204的瞬象并存储在数组214中,加密器308用于利用密钥给数组214的内容加密。在最佳实施例中,公钥系统用来给对象签名或签章,例如,用DSA给对象签名,并用DES给对象签章。但是,对本领域普通技术人员来说显然其他系统也可用于本发明。加密瞬象存储在数组318中。数组214的内容随后被删除,以便瞬象的明文版本不再存储在签章对象302中。即一旦产生对象204的密文版本,则对象204的明文版本就从签章对象302中被删除。
最好使用不同的公-私密钥对给对象签名和签章,如果采用单个公-私密钥对,参与者必须既要知道公钥又要知道私钥,即参与者A用私钥产生签名,同时,参与者B用相连的公钥验证签名,为了给对象签章,参与者A用公钥给对象加密,参与者B用私钥给该对象解密,因此,如果相同的公-私密钥对既用于签名又用于签章,参与者A和B必须知道公-私密钥对的两个密钥。或者,也可用传统的密码系统实现签章。
对象可被签名或签章,或者签名并签章,例如,对象204可被签名和签章。图4给出了根据本发明实施例的对象的状态机器的例子,在状态402,对象204既无签名也无签章,经过转变步骤424,对象204在状态404有签名,无签章,对象204经转变步骤422在状态402转变为无签名,无签章。类似地,对象204经转变步骤432从状态402(无签名,无签章)转变为状态406,在该状态,对象204有签章,无签名,对象204经转变步骤434转变为状态402(例如,无签章,无签名)。
在状态404,对象204有签名,无签章,经转变步骤426给对象204签名、签章,到达状态408。从状态408,对象204经转变步骤428(进入状态404)无签章,或者经转变步骤430(进入状态406)无签名。但是,在最佳实施例,不能给无签名,有签章的对象签名。按照上面讨论的,从要签名的信息中产生签名,如果该信息是加密的,该信息不能再产生签名。这样,如图4所示,不能从无签名、签章的状态(例如状态406)转变到有签名、签章的状态(例如状态408)。
例如,经转变步骤434和424和状态402,完成了从无签名,有签章状态(状态406)到有签名,无签章的状态(状态404)的转变。经状态402(例如,转变步骤422和432)或408(例如,转变步骤426和430)可能实现从有签名,无签章状态(状态404)到无签名,有签章状态(状态406)的转变。
串行化
为给对象签名或签章,利用称为串行化的步骤取得该对象的瞬象,在串行化时,对象的内容从对象中被检索出来并存入,例如,文件中、字节数组中等。解除串行化用于恢复对象的内容。在最佳实施例,流用来对对象进行串行化(例如,存对象的内容)和解除串行化(例如,恢复对象的内容)。
流是线形的数据序列流,该数据流用来从使用的实际物理I/O设备获得独立,例如,流可以是一个文件(例如用于对象的永久存储)或网络插座(例如用于在另一个主机或另一个步骤重新组成一个对象),输入流是使用读操作流入的数据流,输出流是利用写操作输出的输出流。
更可取地,在应用程序接口(API)中实现串行化,在这种情况下,通过声明对象是可串行化的(例如,实施串行化接口),可给对象串行化。对象的串行化机制将对象的组、组签名和全部非瞬态和非静态字段的值写入输出流,例如,当对象被串行化时,通过利用写入对象方法将单个字段写入输出流(例如对象输出流),存入对象的状态,对象的解除串行化机制读取写入到输出流中的信息。Sun Microsystems公司已用Java Development Kit 1.1版提供了可串行化接口的例子。通过采用读取对象方法,从输出流中把字段读入对象中,解除对象的串行化。流中的信息用于利用当前对象中的相应命名字段分配存储在流中的对象的字段。
签名对象组
签名对象组是代表签名文献的组,签名文献是利用本发明实施例而被签名的另一个对象(如Java运行期对象),构造者方法用来从任何“内容”对象(如“活动”或动态对象)构造签名对象的实例。内容对象被串行化,并且将结果存储在签名对象实例中,签名字段包含与内容相连的数字签名。签名标志指明签名对象实例的签名字段是否包含对象内容的数字签名。
所有成员字段或者变量是私用的,并可经公有方法访问,因而,签名对象的内部不能从外面直接处理。因此,一旦该内容被签名,则在没有使状态变为无签名的情况下,就不能被进一步修改。此外,一旦原对象被串行化(例如取得内容对象的瞬象),并将其存储在签名对象中,则对原对象的任何进一步处理都对存储内容没有影响。在最佳实施例中,“签名”和“验证”方法是最终的,并且不能被子组修改。这降低了产生欺骗性软件从而不正确地或是不诚实地执行签名和验证任务的可能性。
签名对象组包括签名字节数组、内容字节数组和签名标志。签名字节数组保留与内容对象的瞬象相连的签名的值。内容字节数组存储内容对象的内容,签名标志用来指定签名字节数组是否包含该内容的合法签名。
下面是签名对象组的方法的例子。
方法名       修改者    描述
得到算法      公       检索签名算法的名称
得到提供者    公       检索密码提供者的名称
复位内容      公       修改存储的内容,并且不管初始状
                   态是什么,使状态变为无签名,置串行
                   化对象的“签名”变量为“假”,并调用
                   设置内容(setContent),设置内容数组
                   的内容。
设置内容    私         创建从对象到内容字节数组的流管
                   线,调用写对象方法,将对象内容串行
                   化,并复制到内容字节数组。
得到内容    公         检索内容对象,决定“内容”对象
                   的拷贝是否已被高速缓存(注意,缓存
                   的拷贝已被解除串行化),如果是,为响
                   应该请求,返回缓存的拷贝,否则,“内
                   容”对象被解除串行化,缓存,并被返
                   回。即创建流管线将内容数组的内容拷
                   贝到对象。
得到签名    公         检索签名内容上的签名,返回字节
                   数组内的签名,或者,如果该内容还未
                   被签名,则返回空值。
设置公钥    公         设置指明与签名密钥相应的公钥的信
                   息字段,该字段是可选的,并仅用于信
                   息目的。
得到公钥    公         检索指示与签名密钥相应的公钥的信
                   息字段的内容。
签名        公         用给定签名密钥给“内容”签名,
                   例如,产生DSA签名的实例,“内容”
                   对象的签名标志被置为“未签名”,用
                   产生的签名更新该签名,置“内容”
                   对象的签名标志为“已签名”。
验证        公         验证“内容”上的签名
对象签名
在对象串行化期间,对象被存储在签名对象组的实例中。与串行化对象相连的签名被存储在给对象签名的签名对象实例中。图5给出了根据本发明实施例的对象签名流程。
在步骤502取得对象的瞬象,在步骤504将瞬象存储在签名对象实例的内容字节数组。例如,采用流技术产生瞬象并存储在签名对象实例中,利用流技术,对象的内容被输出到指向签名对象实例的内容字节数组的流(例如,使用写对象串行化方法)。
在步骤506,利用例如,DSA为瞬象创建签名,在步骤508,将签名存储在签名对象实例的签名字节数组中。在步骤510,置签名对象实例的签名标志为真。处理在步骤512结束。
图5处理流程的结果是,数字签名被附在内容对象上。对象解除签名
在解除串行化期间,将与串行化对象相连的签名从签名对象实例中检索出来,去验证串行化对象。如果认证成功,将串行化对象从签名对象组的实例中检索出来,重新构造串行化对象。图6给出了根据本发明实施例的对象解除签名处理流程的例子。
在步骤602,将对象的签名从对象的签名对象实例中检索出来。例如,利用DSA在步骤604验证该签名,在步骤604(例如,“合法签名?”)确认该签名是否被是认证过,如果不是,则认为该对象是没有认证过的,因此,不需要检索对象,处理在步骤612结束。
如果在步骤606确认签名是认证过的,就认为对象是认证过的。在步骤648将对象的瞬象从被签名对象的内容数组检索出来,在步骤610,该瞬象用于重新构造对象。为更好地重新构造对象,最好使用流技术检索和使用重构对象的对象瞬象。利用流技术,将内容字节数组输出到指向对象实例的流。处理在步骤612结束。访问串行化对象
对象的内容和签名以成员字段或变量被保留在签名对象实例中,通过签名对象实例的方法,他们是可公开访问的。访问请求由签名对象实例处理。图7给出了根据本发明实施例的访问请求管理处理流程的例子。
签名对象实例处理服务请求。在步骤702(例如“收到请求?”),确认是否已收到请求。如果没有,在步骤702继续处理,如果签名对象实例收到请求,在步骤704继续处理(例如,“请求类型?”)以确定请求的类型。
“复位内容”请求是修改存储在签名对象内容数组中的信息的请求。即它是修改内容对象的请求。如果收到“复位内容”请求,在步骤710继续处理,置签名标志为假。内容的改变使签名非法。因此,置签名标志为假,以指明该内容不再是签名的。在步骤712,用所含新内容修改该内容。在步骤702继续处理任何后续请求。
如果收到“签名”请求,则请求修改存储在签名数组的信息,例如“签名”请求用来给内容对象签名或者可在“复位内容”请求之后,用于给对象被修改的内容签名。在步骤720继续处理,置签名标志为假,例如,在步骤722,利用存储在内容数组的信息和DSA创建新签名,在步骤724将新签名存储在签名对象的签名数组中。签名标志置为真,在步骤702继续处理任何后续请求。
“得到签名”请求用于检索存储在签名对象的签名数组中的信息。例如,“得到签名”请求用于在预期的对签名和对象内容进行验证时检索签名。在步骤730,继续“得到签名”的请求处理(如“签名=‘T’?”)以确定签名标志是否为真。如果不是,不返回签名,并且,在步骤734继续处理,返回空值。如果签名标志是真,包含在签名数组的签名在步骤732被返回,在步骤702继续处理任何后续请求。
签章对象组定义
签章对象组是表示签章文本的组,该签章文本是运行期对象(如Java运行期对象),构造者根据运行期对象或“内容”对象构造签章对象的实例。签章对象组是签名对象组的子组,并继承签名对象组的成员变量和方法。类似签名对象组,签章对象组的变量都是私用的,并且可利用成员方法公开访问。
签章对象组包括签名字节组、内容字节组和加密内容数组。签名字节数组保留与内容对象瞬象相连的签名的值,内容字节数组存储内容对象的内容,加密内容数组包含对象的密文版本,变量用做标志,以识别内容对象的签名状态和签章状态,签名标志用来指定签名字节数组是否包含内容的合法签名,签章标志用于指定对象的密文版本是否被存储在签章对象实例中。
类似签名对象组,不可从外面直接操纵签章对象的内部,下面是签章对象组的方法的例子。
方法名称    修改者     描述
检查签章     公        检查签章状态,如果是签章的则返回
                   真,否则返回假。
得到内容     公        检索该内容是否被签名,不考虑签名
                   对象组内的得到内容方法。
得到加密内容 公        检索加密的内容,返回字节数组中的
                    加密内容,如该内容还没被签章,返回空
                    值。
签章         公        用给定的密钥给“内容”签章。
解除签章     公        用给定的密钥给“内容”解除签章。
对象签章
为给对象签章,使对象串行化并且将对象的串行化存储在签章对象组的实例中,给串行化加密以产生密文,将该密文存储在签章对象实例中,代替对象的串行化。图8给出了根据本发明实施例的给对象签章流程的例子。
在步骤802,从对象取得对象的瞬象。在步骤804,将该瞬象存储在签章对象组的实例的内容数组中,在步骤806,给瞬象加密以产生对象的密文版本,在步骤808,将密文存储在加密内容数组,在步骤810,将瞬象的明文版本从签章对象的内容数组中删除,在步骤812,将签章标志置为真,在步骤814处理结束。
对象解除签章
为给对象解除签章,对串行化对象的密文版本解密,产生明文串行化。该明文串行化用来重新构造签章对象。图9给出了根据本发明实施例的给对象解除签章的处理流程的例子。
在步骤902(例如,“被签章?”)确定签章对象是否包含对象瞬象的密文版本,即,检验签章标志以确定签章对象实例的状态。如果签章标志指示签章对象实例不包含密文,则在步骤910处理结束。如果签章标志为真,在步骤904继续处理,例如,用DES给密文解密,产生对象的明文。在步骤906,恢复明文。
在步骤908,对象的明文版本用来重新构造对象。例如,流技术用于从签章对象实例向重新构造的对象输出明文。处理在步骤910结束。
给对象签名和签章
利用本发明的实施例既可给对象签名又可签章。图5提供了对“活动”对象进行串行化和签名的处理流程,图8可用来给对象签章。签名、签章的对象在使用前被解除签名和解除签章,图10给出了根据本发明实施例的对签名、签章对象解除签名、签章的处理流程的例子。
给签名、签章对象解除签章,明文用于给该对象解除签名。或者,可先给被签名、签章对象解除签章,然后再解除签名。在步骤1002(例如“被签章?”)确定签章标志是否指明对象被签章。如果不是,则在步骤1008继续处理,解除对象的签名。如果是,则在步骤1004和1006继续处理,对对象的密文解密,并将明文存储在被签章对象实例中。
在步骤1008,恢复与对象相连的签名。在步骤1010验证签名,在步骤1012(例如“合法签名?”)确定签名是否可靠。如果不是,则在步骤1018结束处理,如果签名可靠,在步骤1014继续处理,恢复对象的明文版本,该明文版本在步骤1016被用来重新构造对象。
这样,结合一个或更多具体实施例,已提供了用于给对象签名和签章的方法和设备。本发明由权利要求书及其全部等同物来限定。

Claims (28)

1、一种给对象签名的方法,包括下述步骤:
取得对象的瞬象;
将签名与所述瞬象相联系;
保持所述瞬象和所述签名之间的所述联系。
2、权利要求1的方法,还包括下述步骤:
验证所述签名;
当所述签名被验证时,用所述瞬象构造新的对象。
3、权利要求1的方法还包括下述步骤:
将所述瞬象存储在另一个对象中;
将所述签名存储在所述另一个对象。
4、权利要求1的方法还包括下述步骤:
监视所述瞬象的状态;
当所述瞬象的状态改变时,使所述签名无效。
5、权利要求1的方法还包括利用所述瞬象创建所述签名的步骤。
6、权利要求5的方法还包括使第二签名与所述瞬象相联系的步骤。
7、权利要求6的方法还包括下述步骤:
验证所述第二签名;
当所述第二签名被验证时,用所述瞬象构造新的对象。
8、一种给对象签章的方法,包括下述步骤:
产生密钥;
取得对象的瞬象;
产生加密瞬象;
删除所述瞬象。
9、权利要求8的方法还包括使签名与所述瞬象相联系的步骤。
10、权利要求9的方法还包括下述步骤:
验证所述签名;
当所述签名被验证时,利用所述瞬象构造新的对象。
11、一种生产产品包括:
具有嵌入其中的用于实现给对象签名的计算机可读程序代码的计算机可用媒体,包括:
使计算机取得对象的瞬象的计算机可读程序代码;
使计算机将签名与所述瞬象相联系的计算机可读程序代码;
使计算机保持所述瞬象和所述签名之间的所述联系的计算机可读程序代码。
12、权利要求11的生产产品还包括:
使计算机验证所述签名的计算机可读程序代码;
当所述签名被验证时,使计算机利用所述瞬象构造新的对象的计算机可读程序代码。
13、权利要求11的生产产品还包括:
使计算机把所述瞬象存储在另一个对象中的计算机可读程序代码;
使计算机把所述签名存储在另一个对象中的计算机可读程序代码。
14、权利要求11的生产产品还包括:
使计算机监视所述瞬象的状态的计算机可读程序代码;
当所述瞬象的状态改变时,使计算机使所述签名无效的计算机可读程序代码。
15、权利要求11的生产产品还包括:
使计算机利用所述瞬象创建所述签名的计算机可读程序代码。
16、权利要求11的生产产品还包括:
使计算机将第二签名与所述瞬象相连的计算机可读程序代码。
17、权利要求116的生产产品还包括:
使计算机验证所述第二签名的计算机可读程序代码;
当所述第二签名被验证时,使计算机利用所述瞬象构造新的对象的计算机可读程序代码。
18、一种生产产品包括:
具有嵌入其中用于给对象签章的计算机可读程序代码的计算机可用媒体包括:
使计算机产生加密密钥的计算机可读程序代码;
使计算机取得对象的瞬象的计算机可读程序代码;
使计算机对所述瞬象加密的计算机可读程序代码;
使计算机删除所述瞬象的计算机可读程序代码。
19、权利要求18的生产产品还包括使计算机对所述加密瞬象解密的计算机可读程序代码。
20、权利要求18的生产产品还包括使计算机将签名与所述瞬象相连的计算机可读程序代码。
21、权利要求20的生产产品还包括:
使计算机验证所述签名的计算机可读程序代码;和
当所述签名被验证时,使计算机利用所述瞬象构造新的对象的计算机可读程序代码。
22、被构造成给对象签名的系统包括:
在计算机上执行的,取得对象的瞬象的第一程序代码模块;
在所述计算机上执行的,利用所述瞬象产生签名的第二程序代码模块;
所述第一模块被配置成监视所述瞬象的状态,并当所述瞬象被改变时使所述签名无效。
23、权利要求22的系统,其中所述第一和第二模块以第二对象的形式实现。
24、权利要求23的系统,其中所述瞬象和所述签名被存储在所述第二对象中,所述第二对象通过所述第二对象的一个或更多个方法限制对所述瞬象的访问。
25、权利要求24的系统,其中当所述访问修改所述瞬象时,所述第二对象的一个或更多个方法使所述签名无效。
26、权利要求22的系统还包括签章模块,包括:
产生加密密钥的密钥产生模块;
根据所述瞬象产生加密瞬象的加密模块;
删除所述瞬象的删除模块。
27、权利要求26的系统,其中所述第二对象被构造成调用所述密钥产生模块、所述加密模块和所述删除模块。
28、权利要求27的系统,其中所述第二对象被构造成验证所述签名,并当所述签名被验证时,利用所述瞬象构造新的对象。
CN98805606.2A 1997-05-29 1998-05-15 给对象签名和签章的方法和设备 Expired - Lifetime CN1122213C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US86555697A 1997-05-29 1997-05-29
US08/865,556 1997-05-29

Publications (2)

Publication Number Publication Date
CN1258359A true CN1258359A (zh) 2000-06-28
CN1122213C CN1122213C (zh) 2003-09-24

Family

ID=25345770

Family Applications (1)

Application Number Title Priority Date Filing Date
CN98805606.2A Expired - Lifetime CN1122213C (zh) 1997-05-29 1998-05-15 给对象签名和签章的方法和设备

Country Status (8)

Country Link
US (1) US7093134B1 (zh)
EP (1) EP0983541B1 (zh)
JP (1) JP2002502524A (zh)
CN (1) CN1122213C (zh)
AT (1) ATE246820T1 (zh)
DE (1) DE69816986T2 (zh)
IL (1) IL133024A (zh)
WO (1) WO1998054633A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100456670C (zh) * 2002-10-08 2009-01-28 微软公司 数字电视应用的数字签名

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000046946A2 (fr) * 1999-01-27 2000-08-10 France Telecom Procede, systeme, dispositif destines a prouver l'authenticite d'une entite et/ou l'integrite et/ou l'authenticite d'un message
US6526571B1 (en) * 1999-03-16 2003-02-25 International Business Machines Corporation Method for identifying calls in java packages whose targets are guaranteed to belong to the same package
US6959382B1 (en) 1999-08-16 2005-10-25 Accela, Inc. Digital signature service
US6898707B1 (en) 1999-11-30 2005-05-24 Accela, Inc. Integrating a digital signature service into a database
US20010034838A1 (en) * 2000-01-14 2001-10-25 Motoshi Ito Control program, device including the control program, method for creating the control program, and method for operating the control program
EP2306260B1 (en) 2000-09-21 2014-02-26 BlackBerry Limited Software code signing system and method
EP1343286A1 (en) * 2002-03-04 2003-09-10 BRITISH TELECOMMUNICATIONS public limited company Lightweight authentication of information
DE10304412A1 (de) * 2003-02-04 2004-08-19 Sap Ag Elektronisch signierte Dokumente mit Prüfsoftware
CN100334518C (zh) * 2005-07-08 2007-08-29 上海中标软件有限公司 文档数字签名及其实现电子印章和手写签名的方法
US8340289B2 (en) 2005-09-29 2012-12-25 Research In Motion Limited System and method for providing an indication of randomness quality of random number data generated by a random data service
US8495037B1 (en) * 2006-02-21 2013-07-23 Symantec Operating Corporation Efficient isolation of backup versions of data objects affected by malicious software
US8850209B2 (en) * 2006-09-12 2014-09-30 Microsoft Corporation Schema signing
US8095804B1 (en) * 2007-05-25 2012-01-10 Emc Corporation Storing deleted data in a file system snapshot
JP4456137B2 (ja) * 2007-07-11 2010-04-28 富士通株式会社 電子文書管理プログラム、該プログラムを記録した記録媒体、電子文書管理装置、および電子文書管理方法
US9521120B2 (en) * 2009-04-23 2016-12-13 General Electric Technology Gmbh Method for securely transmitting control data from a secure network
US9846789B2 (en) 2011-09-06 2017-12-19 International Business Machines Corporation Protecting application programs from malicious software or malware
US8819446B2 (en) * 2009-06-26 2014-08-26 International Business Machines Corporation Support for secure objects in a computer system
US9298894B2 (en) 2009-06-26 2016-03-29 International Business Machines Corporation Cache structure for a computer system providing support for secure objects
US8954752B2 (en) 2011-02-23 2015-02-10 International Business Machines Corporation Building and distributing secure object software
US8578175B2 (en) 2011-02-23 2013-11-05 International Business Machines Corporation Secure object having protected region, integrity tree, and unprotected region
US9954875B2 (en) 2009-06-26 2018-04-24 International Business Machines Corporation Protecting from unintentional malware download
US9864853B2 (en) 2011-02-23 2018-01-09 International Business Machines Corporation Enhanced security mechanism for authentication of users of a system
CN103425632B (zh) * 2013-08-30 2016-08-10 深圳市路畅科技股份有限公司 一种序列化的方法、装置及处理器
US9223965B2 (en) 2013-12-10 2015-12-29 International Business Machines Corporation Secure generation and management of a virtual card on a mobile device
US9235692B2 (en) 2013-12-13 2016-01-12 International Business Machines Corporation Secure application debugging
FR3047584B1 (fr) * 2016-02-05 2018-03-02 Morpho Procede d'execution d'instructions d'applications orientees objet par un interpreteur

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5557518A (en) * 1994-04-28 1996-09-17 Citibank, N.A. Trusted agents for open electronic commerce
CA2093094C (en) * 1992-04-06 2000-07-11 Addison M. Fischer Method and apparatus for creating, supporting, and using travelling programs
CA2099918C (en) * 1992-07-06 2002-11-19 Robert G. Atkinson Method and system for naming and binding objects
JP3421720B2 (ja) 1992-11-17 2003-06-30 シチズン時計株式会社 角速度検出回路
US5315655A (en) * 1992-12-16 1994-05-24 Notable Technologies, Inc. Method and apparatus for encoding data objects on a computer system
US5367573A (en) * 1993-07-02 1994-11-22 Digital Equipment Corporation Signature data object
AU683038B2 (en) * 1993-08-10 1997-10-30 Addison M. Fischer A method for operating computers and for processing information among computers
US5742848A (en) * 1993-11-16 1998-04-21 Microsoft Corp. System for passing messages between source object and target object utilizing generic code in source object to invoke any member function of target object by executing the same instructions
FR2725537B1 (fr) * 1994-10-11 1996-11-22 Bull Cp8 Procede de chargement d'une zone memoire protegee d'un dispositif de traitement de l'information et dispositif associe
EP0717337B1 (en) * 1994-12-13 2001-08-01 International Business Machines Corporation Method and system for the secured distribution of programs
US5893077A (en) * 1995-08-23 1999-04-06 Microsoft Corporation Method and apparatus for generating and collecting a billing event object within an on-line network
US5692047A (en) * 1995-12-08 1997-11-25 Sun Microsystems, Inc. System and method for executing verifiable programs with facility for using non-verifiable programs from trusted sources
US5745570A (en) * 1996-04-15 1998-04-28 International Business Machines Corporation Object-oriented programming environment that provides object encapsulation via encryption
US5944781A (en) * 1996-05-30 1999-08-31 Sun Microsystems, Inc. Persistent executable object system and method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100456670C (zh) * 2002-10-08 2009-01-28 微软公司 数字电视应用的数字签名

Also Published As

Publication number Publication date
WO1998054633A1 (en) 1998-12-03
EP0983541A1 (en) 2000-03-08
IL133024A (en) 2003-11-23
DE69816986D1 (de) 2003-09-11
JP2002502524A (ja) 2002-01-22
EP0983541B1 (en) 2003-08-06
ATE246820T1 (de) 2003-08-15
CN1122213C (zh) 2003-09-24
DE69816986T2 (de) 2004-07-22
IL133024A0 (en) 2001-03-19
US7093134B1 (en) 2006-08-15

Similar Documents

Publication Publication Date Title
CN1122213C (zh) 给对象签名和签章的方法和设备
CN1130627C (zh) 一种以Java虚拟机实现的信息处理设备
CN1097771C (zh) 执行可校验程序的系统和方法
CN1133935C (zh) 保护存储在便携式存储介质的信息的保密系统
CN101040275A (zh) 内容加密方法、系统和利用该加密方法通过网络提供内容的方法
CN1199389C (zh) 内容信息的传送与记录方法和装置以及解密方法与装置
CN1910848A (zh) 密码学密钥代的有效管理
US5651069A (en) Software-efficient message authentication
CN1518825A (zh) 用于交换数据的设备和认证方法
CN1873652A (zh) 保护数字内容的装置和方法,处理受保护的数字内容的装置和方法
CN1276363C (zh) 借助半导体存储装置实现数据安全存储和算法存储的方法
CN1602600A (zh) 内容处理装置与内容保护程序
CN1934564A (zh) 使用证书撤销列表进行数字权限管理的方法和设备
CN1708942A (zh) 设备特定安全性数据的安全实现及利用
CN1809984A (zh) 改进的保密验证信道
CN1185821C (zh) 密码通信方法
TW200404212A (en) Methods and systems for authentication of components in a graphics system
CN1471021A (zh) 保护媒体路径的方法、系统和体系结构
CN1528068A (zh) 用于计算机网络中分布式数据处理的集成式保护的方法与系统
CN1898624A (zh) 在使用授权证书时维护私密性
CN101044490A (zh) 将光盘用作智能密钥装置的方法和系统
CN1914603A (zh) 访问认证方法、访问认证程序、信息处理单元以及记录介质
CN1383644A (zh) 信息处理系统、信息处理方法以及信息记录介质和程序提供介质
CN1729647A (zh) 生成和/或使用附条件电子签名以报告状态变化的方法、装置以及计算机程序
CN1802813A (zh) 用于接收许可的用户终端

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CX01 Expiry of patent term

Granted publication date: 20030924

CX01 Expiry of patent term