具体实施方式
系统概述
如图1所示,在图示的实施例中,电子邮件消息接发系统具有多个连接至因特网3的用户计算机,其中为方便图示,仅示出发送计算机1a和接收计算机1b。加密授权服务器5和邮件注册授权服务器7也连接至因特网3。
加密授权服务器5给用户计算机1提供加密密钥。具体来说,在该实施例中,加密授权服务器5发布为WO03/017559中所描述的加密算法提供根公共密钥
的公共密钥证书,该专利的全部内容通过引用合并于此。根据该加密算法,具有电子邮件地址“client_ID”的客户的公共密钥
可以由以下公式给出:
其中,F是可公开获得的函数。以此方式,任何知道客户的电子邮件地址、加密授权的根公共密钥
和函数F(这些都是可公开获得的)的人都可以计算出与该客户相关联的公共密钥
与客户相关联的私有密钥仅能够在知道根私有密钥
的情况下被计算出,该根私有密钥
由对加密授权服务器5进行管理的加密机构保密。具体来说,具有电子邮件地址“client_ID”的客户的私有密钥
由加密授权服务器5根据以下关系计算出:
其中,G是与F配对的函数。
在说明书的所有剩余部分中,除非另外指出,引用使用公共密钥被非对称加密的数据意味着,该数据使用WO03/017559中所描述的、以公共密钥形成加密密钥的非对称加密算法被加密,并且类似地,引用使用私有密钥被非对称解密的数据意味着,该数据使用WO03/017559中所描述的、以私有密钥形成加密密钥的非对称加密算法被解密。
在整个说明书中,还会引用使用对称密钥被对称加密或对称解密的数据。除非特别指出,这是指使用将对称密钥用作加密密钥的高级加密标准(AES)算法对该数据进行的加密或解密。
在该实施例中,当发送计算机1a用于向与接收计算机1b相关联的接收方发送电子邮件时,使用KEM-DEM方法的变型,其中该消息的接收方必须从邮件注册授权服务器7下载跟踪密钥,以便复原对该消息的DEM部分进行解密所需的会话密钥。具体来说,当发送消息时,发送方向邮件注册授权服务器7注册该消息,并且邮件注册授权服务器7向发送方发送跟踪代码和跟踪密钥。发送方使用该跟踪密钥来生成加密后的消息,并将该跟踪代码与该加密后的消息一起发送出去。接收方一旦接收到该加密后的消息,即向邮件注册授权服务器7发送跟踪代码和身份证明,邮件注册授权服务器7向接收方发送对该消息进行解密所需的跟踪密钥作为答复。
现在将更详细地描述加密授权服务器5、邮件注册授权服务器7和用户计算机1。
加密授权服务器
如图2所示,加密授权服务器5具有通过总线系统29互连的操作员接口21、网络接口23、处理器25和存储器27。
操作员接口21包括供操作员将数据输入加密授权服务器5的键盘(未示出)和允许操作员读取加密授权服务器5所产生的数据的显示器(未示出)。操作员接口21还包括CD-ROM读写器(未示出),通过该CD-ROM读写器,储存在CD-ROM31上的数据可以被输入到加密授权服务器5,由加密授权服务器5产生的数据也可以被写入到可记录的CD-ROM31。
网络接口23以网络信号33的形式从因特网3接收数据且向因特网3输出数据。
处理器25根据储存在存储器27中的程序例程执行处理操作。这些程序例程可以在生产过程中储存,也可以通过操作员接口21或网络接口23输入到加密授权服务器5。程序例程处理储存在存储器27中的数据和由加密授权服务器5通过操作员接口21和网络接口23接收的数据。
存储器27由不同类型的分别具有不同访问时间的存储器形成,并且采用传统的处理技术通过预先将可能会需要的数据缓存到快速访问时间存储器中来改进处理速度。
存储器27包括储存加密授权服务器5所使用的程序例程的区域35、储存数据的区域37和提供工作存储的区域39。
具体来说,程序例程存储区域35储存:
-Master_Control(主控制)例程41;
-Key_maintenance(密钥维护)子例程43;
-Register_Client(注册客户)子例程45;
-Calculate_Private_Key(计算私有密钥)子例程47;和
-Supply_Root_Public_Key(供应根公共密钥)子例程49。
所储存数据的存储区域37储存:
-客户数据库51;和
-密钥数据库53。
主控制例程41协调加密授权服务器5的操作。这包括在需要时执行子例程。
应该理解,用户私有密钥的安全性依赖于保密的根私有密钥
作为防范措施,在该实施例中,密钥维护子例程被周期性地执行以生成新的核心公共密钥和私有密钥,这些新生成的密钥与旧的公共密钥和私有密钥一起被储存在密钥数据库53中。具体来说,密钥数据库53储存指示核心公共密钥和私有密钥对以及针对每一对该对有效的时限的数据。
注册客户子例程45由主控制子例程41响应于预期客户所接收的注册请求而启动。注册客户子例程45在客户数据库51中储存与该客户有关的数据,使用计算私有密钥子例程45来计算客户私有密钥,并将所计算出的客户私有密钥供应给该客户,其中计算私有密钥子例程45使用当前有效的核心私有密钥
和该客户的电子邮件地址来计算客户私有密钥。接下来,每当密钥维护子例程43生成新的核心私有密钥
时,密钥维护子例程43就使用计算私有密钥子例程47来基于新的核心私有密钥为每个客户计算新的客户私有密钥。
供应根公共密钥子例程49由主控制例程41响应于对根公共密钥
的请求而启动,并且为所请求的根公共密钥
供应公共密钥证书。
邮件注册授权服务器
如图3所示,邮件注册授权服务器7具有通过总线系统69互连的操作员接口61、网络接口63、处理器65和存储器67。
操作员接口61包括供操作员将数据输入邮件注册授权服务器7的键盘(未示出)和允许操作员读取邮件注册授权服务器7所产生的数据的显示器(未示出)。操作员接口61还包括CD-ROM读写器(未示出),通过该CD-ROM读写器,储存在CD-ROM71上的数据可以被输入到邮件注册授权服务器7,由邮件注册授权服务器7所产生的数据也可以被写入到可记录CD-ROM71上。
网络接口63以网络信号73的形式从因特网3接收数据且向因特网3输出数据。
处理器75根据储存在存储器67中的程序例程执行处理操作。这些程序例程可以在生产过程中储存,也可以通过操作员接口61或网络接口63输入到邮件注册授权服务器7。程序例程处理储存在存储器67中的数据和由邮件注册授权服务器7通过操作员接口61和网络接口63接收的数据。
存储器67由不同类型的分别具有不同访问时间的存储器形成,并且采用传统的处理技术通过预先将可能会需要的数据缓存到快速访问时间存储器中来改进处理速度。
存储器67包括储存邮件注册授权服务器7所使用的程序例程的区域75、储存数据的区域77和提供工作存储的区域79。
具体来说,程序例程存储区域75储存:
-Master_Control(主控制)例程81;
-Register_Client(注册客户)例程83;
-Register_Message(注册消息)子例程85;
-Access_Message(访问消息)子例程87;和
-Provide_Report(提供报告)子例程89。
所储存数据的存储区域77储存:
-客户数据库91;和
-消息数据库93。
客户数据库储存每个客户的细节,包括客户姓名、电子邮件地址、登录密码和账户细节。消息数据库储存每个已注册消息的细节,包括发送该消息的客户、该消息的唯一跟踪代码、注册服务的类型、该消息的接收方、跟踪密钥和标识每个接收方何时取回跟踪密钥的信息。
主控制例程81在需要时使用子例程来控制邮件注册授权服务器的操作。
注册客户子例程83由主控制例程81来启动,以便在客户数据库91中注册新客户的细节。剩余的子例程将在后面进行详细讨论。
用户计算机
现在将参考图4至6来描述诸如发送计算机1a和接收计算机1b的用户计算机1的主要部件。
如图4所示,用户计算机1具有通过总线系统109互连的操作员接口101、网络接口103、处理器105和存储器107。
操作员接口101包括供操作员将数据输入用户计算机1的键盘(未示出)和允许操作员读取用户计算机1所产生的数据的显示器(未示出)。操作员接口101还包括CD-ROM读写器(未示出),通过该CD-ROM读写器,储存在CD-ROM111上的数据可以被输入到用户计算机1,由用户计算机1产生的数据也可以被写入到可记录的CD-ROM111上。
网络接口103以网络信号113的形式从因特网3接收数据且向因特网3输出数据。
处理器105根据储存在存储器107中的程序例程执行处理操作。这些程序例程可以在生产过程中储存,也可以通过操作员接口101或网络接口103输入到用户计算机1。程序例程处理储存在存储器107中的数据和由用户计算机1通过操作员接口101和网络接口103接收的数据。
存储器107由不同类型的分别具有不同访问时间的存储器形成,并且采用传统的处理技术通过预先将可能会需要的数据缓存到快速访问时间存储器中来改进处理速度。
存储器107包括储存用户计算机1所使用的程序例程的区域115、储存数据的区域117和提供工作存储的区域119。
具体来说,除其它程序之外,程序例程存储区域107储存:
-诸如Microsoft Windows的传统操作系统119;
-诸如Microsoft Internet Explorer的传统万维网浏览器121;
-包括加密插件125的电子邮件程序123。
除其它数据之外,所储存数据的存储区域储存:
-储存与邮件注册服务器相关联的用户注册细节的用户数据127;和
-储存与加密插件125相关联的数据的加密数据129。
图5更详细地示出加密插件125的程序例程。正如所示,加密插件125包括:
-Master_Control(主控制)例程141;
-Install_Encryption_Plug-in(安装加密插件)子例程143;
-Encrypt_Message(加密消息)子例程145;
-Decrypt_Message(解密消息)子例程147;
-Encrypt_Registered_Message(加密已注册消息)子例程149;和
-Decrypt_Registered_Message(解密已注册消息)子例程151。
图6更详细地示出加密数据129。正如所示,加密数据129包括:
-非对称密钥数据库161;和
-跟踪密钥数据库163。
非对称密钥数据库161储存用户公共密钥和私有密钥对,每个密钥对都与对应核心公共密钥
、该密钥对和相关联的核心公共密钥有效的时限进行关联储存。
传送密钥数据库163储存列出针对每个向邮件注册授权服务器7注册的电子邮件的对应跟踪代码和跟踪密钥的表格。
主控制例程141根据需要使用子例程对加密插件141的操作进行控制。安装加密插件子例程在该计算机的用户最初向加密授权服务器5注册时被用,并将初始用户私有密钥和公共密钥对储存在密钥数据库161中。主控制例程141还控制由于加密授权服务器5更新核心公共密钥和私有密钥对而需要对用户公共密钥和私有密钥对进行的更新。
加密消息子例程145在用户计算机1的用户希望发送未注册的已加密消息时被使用。加密消息子例程145生成该消息的随机会话密钥,然后使用所生成的会话密钥对该消息进行对称加密,以形成已加密消息的DEM部分。然后,加密消息子例程145计算与该消息的每个接收方相关联的公共密钥(使用该接收方的电子邮件地址和核心公共密钥
),并针对每个接收方,使用该接收方的公共密钥对该会话密钥进行非对称加密。接着,加密消息子例程145将得到的已加密会话密钥集与由使用与发送方(即该计算机的用户)相关联的公共密钥被加密的会话密钥形成的已加密会话密钥进行组合,以形成已加密消息的KEM部分。然后,加密消息子例程145将KEM部分和DEM部分进行组合以形成已加密消息。
解密消息子例程147用于对未注册的已加密消息进行解密。解密消息子例程147从已加密电子邮件的KEM部分提取使用该计算机的用户的公共密钥被加密的已加密会话密钥。然后,解密消息子例程147从密钥数据库161中取回在发送该消息的时刻有效的用户私有密钥,并使用所取回的用户私有密钥对所提取的已加密会话密钥进行解密,来复原会话密钥。接着,解密消息子例程147使用所复原的会话密钥对所接收的已加密消息的DEM部分进行解密,并向用户显示已解密的消息。
加密消息子例程145和解密消息子例程147的进一步细节可以在WO2005/050908中找到,该专利的全部内容通过引用合并于此。
发送/读取已注册的已加密电子邮件
现在参考图7A-7D描述对已注册的已加密电子邮件的发送和读取。
当发送计算机1a的用户期望发送已注册的已加密电子邮件时,在S1,用户通过选择由加密插件125提供的已注册电子邮件菜单选项来开始。响应于已注册电子邮件菜单选项的选择,加密插件125的主控制例程141启动加密已注册消息子例程149。
加密已注册消息子例程149通过与邮件注册授权服务器7建立http链接并使用万维网浏览器121下载由邮件注册授权服务器7提供的登录网页来开始。然后,用户在登录网页中输入用户标识和密码信息,并向邮件注册授权服务器7发送登录信息。
一旦接收到该登录信息,在S5处,邮件注册服务器67的主控制例程81即使用客户数据库91中的数据对该登录信息进行验证,然后启动注册消息子例程85。注册消息子例程85发送跟踪服务网页,该网页提供可用的跟踪服务连同它们所关联的费用的列表。该跟踪服务网页还给出客户账户中当前持有的量,并包括用于输入该电子邮件的期望接收方的电子邮件地址的数据入口框。
在该实施例中,可用的跟踪服务仅有“在读取之前签名”服务,该服务需要接收方在能够查看电子邮件消息之前进行数字签名以确认接收。
在S9处接收跟踪服务网页之后,在S11处,发送计算机1a的用户输入电子邮件的期望跟踪服务和期望接收方,然后将所输入的信息发送给邮件注册授权服务器7。在S13处,一旦接收到跟踪服务和接收方电子邮件地址信息,电子邮件注册授权服务器7即在S15处生成该电子邮件的唯一跟踪代码和该电子邮件的跟踪密钥(在该实施例中是二进制数),并针对该电子邮件在消息数据库93中创建新项目,用于储存跟踪代码、跟踪密钥、接收方电子邮件地址的列表和所选择的跟踪服务。然后在S17处,电子邮件注册授权服务器7向发送计算机1b发送待被每个接收方访问的跟踪代码、跟踪密钥和统一资源定位器(URL)。这就结束了注册消息子例程85。
在S19处,一旦从邮件注册授权服务器7接收到跟踪代码、跟踪密钥和URL,发送计算机即在S19处生成已加密注册电子邮件。具体来说,发送计算机1a首先生成该电子邮件的会话密钥(在该实施例中是二进制数),并使用所生成的会话密钥对该消息进行加密以形成已加密消息的DEM部分。然后,发送计算机1a通过对跟踪密钥和会话密钥执行位异或功能来生成中间密钥。然后加密已注册消息子例程149计算与该消息的每个接收方相关联的公共密钥(使用该接收方的电子邮件地址和核心公共密钥,并针对每个接收方,使用该接收方的公共密钥对该中间密钥进行非对称加密。接着,加密已注册消息子例程149将得到的具有由使用与该发送方(即该计算机的用户)相关联的公共密钥被加密的中间密钥形成的已加密中间密钥的已加密中间密钥集与包括URL和跟踪代码的头部信息进行组合,以形成已加密消息的KEM部分。然后,加密已注册消息子例程149通过将指示该电子邮件被加密的KEM部分、DEM部分和未被加密的消息部分进行组合来形成已加密的已注册电子邮件。
接着在S23处,发送计算机1a将该已加密的已注册电子邮件发送给接收方。然后加密已注册消息子例程149结束。
在S25处,接收计算机1b接收到已加密的已注册消息,并且在S27处,接收计算机1b的用户打开已加密的已注册电子邮件之后,未加密消息部分被显示。然后,在S29处,接收计算机1b的用户选择由加密插件软件提供的解密电子邮件菜单选项。响应于解密电子邮件菜单选项的选择,接收计算机读取KEM部分中的头部信息,并识别必须从邮件注册服务器访问跟踪密钥。接着,接收计算机1b使用万维网浏览器121访问KEM部分的头部部分中的URL,并在接收计算机1b处将跟踪代码和接收方的电子邮件地址传送给邮件注册服务器7。
当在S31处,邮件注册授权服务器7接收到传送包括跟踪代码和接收方电子邮件地址的URL的信号时,邮件注册授权服务器7建立与接收计算机1b的http链接。然后,邮件注册授权服务器7启动访问消息子例程87,在S33处,该访问消息子例程87向接收计算机1b发送验证身份网页。该验证身份网页请求接收计算机的用户发回确认消息,该确认消息带有使用接收计算机1b的用户的私有密钥而生成的数字签名。
在S35处,一旦接收到验证身份网页,在S37处,接收计算机1b的用户即通过发送所请求的签名确认来响应。
一旦接收到签名确认,在S41处,邮件注册授权服务器7即以传统的方式使用该用户的公共密钥来验证接收计算机1b的用户身份,并在与跟踪代码相关联的消息数据库93中的项目中检查接收计算机1b的用户确实是该电子邮件的接收方之一。如先前所讨论的,在该实施例中,用户公共密钥可以使用接收计算机1b的用户的电子邮件地址和核心公共密钥
来被计算。
在验证接收计算机1b的用户是该电子邮件的接收方之一之后,邮件注册授权服务器7从与跟踪代码相关联的消息数据库93的项目中取回跟踪密钥,并在S43处,将所取回的跟踪密钥发送给接收计算机1b。邮件注册授权服务器7还更新指示消息数据中接收计算机1b的用户下载跟踪密钥的时刻的项目。然后,访问消息子例程结束。
在S45处,一旦接收到跟踪密钥,接收计算机1b即启动解密已注册消息子例程151,在S47处,该解密已注册消息子例程151对已注册的已加密电子邮件进行解密以供查看。具体来说,接收计算机1b从已加密的已注册电子邮件的KEM部分提取使用接收计算机1b的用户的公共密钥被加密的已加密中间密钥。然后,接收计算机1b从密钥数据库161中取回该消息被发送时有效的用户私有密钥,并使用所取回的用户私有密钥对所提取的已加密中间密钥进行非对称解密,以复原中间密钥。
接着,接收计算机1b对所复原的中间密钥和所接收的跟踪密钥执行位异或功能,从而复原会话密钥,如本领域技术人员将理解的。然后,接收计算机1b使用所复原的会话密钥对所接收的已加密消息的DEM部分进行解密,并向用户显示解密后的消息。然后在S49处,加密已注册消息子例程151结束。
在该实施例中,在访问消息子例程87结束之后,提供报告子例程89被启动,在S51处,该提供报告子例程89向发送计算机1a的用户发送指示接收计算机1b的用户下载跟踪密钥的时刻的报告。发送计算机的用户在S53处接收到该报告之后,在S55处,该过程结束。
改进和其它实施例
所图示的实施例中,接收计算机1b的用户已经向加密授权服务器5注册,因此具有用户私有密钥。应该理解,由于接收方的公共密钥可以由任何人使用该接收方的电子邮件地址和核心公共密钥
计算出,因此已加密的电子邮件也可以被发送给还没有向加密授权服务器注册的接收方。然而,如果还没有向加密授权服务器5注册的人接收到已加密电子邮件,则他们必须向加密授权服务器5注册,以便获得对已加密电子邮件进行解密所需的用户私有密钥。在优选实施例中,已加密电子邮件的未加密消息部分包括如何向加密授权服务器5注册的细节,以方便注册。这些细节可以包括指向加密授权服务器所提供的注册网页的URL。
在图示的实施例中,仅有一个运行一个邮件注册加密授权服务器的邮件注册机构。可替换地,可以有多个邮件注册加密机构,每个邮件注册加密机构具有各自的服务器。如果是这种情况,则可以对图示的实施例进行修改,从而在选择已注册电子邮件菜单选项时,可用邮件注册加密机构的列表被呈递。在优选实施例中,从因特网访问该列表,从而使其易于被更新。方便地,可以从加密授权服务器访问邮件注册机构的列表。
已加密电子邮件可能向多个邮件注册机构注册。例如,中间密钥可以利用对会话密钥、来自第一邮件注册授权服务器的第一跟踪密钥和来自第二邮件注册授权服务器的第二跟踪密钥使用可交换的数学运算而形成。以此方式,会话密钥仅在第一跟踪密钥和第二跟踪密钥分别从第一和第二邮件注册机构被复原之后才能被复原。
在图示的实施例中,提供的跟踪服务需要电子邮件的接收方在能够读取该电子邮件之前提供数字签名。使用数字签名提供了高级别的接收方身份证明,但是需要大量的处理。然而,并不是所有的应用都需要这样高级别的证明。在这类应用中,可以去除对数字签名的需求,从而使跟踪密钥仅在请求时被提供给已加密的已注册电子邮件的接收方。这仍然允许已加密的已注册电子邮件的始发者得知该电子邮件已经被访问。应该理解,可以对已加密的已注册电子邮件的不同接收方采用不同的跟踪规则。
在图示的实施例中,每当接收方成功下载跟踪密钥时,由邮件注册授权服务器发布报告。可以理解,不需要任何自动报告。可替换地,可以在所有的接收方都成功下载跟踪密钥时或者一个或多个接收方在预定的时间内还没有下载跟踪密钥时自动发布报告,也可以在预定的时间之后发送指示截止该时刻哪个接收方已经成功下载跟踪密钥的报告。
使本发明提供的已加密的已注册电子邮件的使用有用的一种应用是银行结单或诸如信用卡账单之类的账单的分发。注册这种分发的一个优点在于,关于银行结单或账单是否被读取的信息有助于提供该接收方是否处于财务困难状态的早期指示。具体来说,已经发现如果一个人处于财务困难状态,则这个人不会经常开出银行结单或账单。
还可以对图示的实施例进行修改,从而使邮件注册授权服务器仅在预定的时间之后下载跟踪密钥。以此方式,已加密的已注册电子邮件可以被预先发送出去,但仅在预定时间之后才能被读取。为此,邮件注册服务器的消息数据库中的项目指明指示一时刻的日期和时间信息,即在该时刻之前跟踪密钥不能被下载,并且当邮件注册服务器接收到跟踪密钥的请求时,邮件注册服务器使用提供日期和时间信息的实际时钟来检查在其之前跟踪密钥不能被下载的时刻是否已经过去。
跟踪密钥的这种限时发布在需要同时向多方公布大型文件时很有用。可以使用这种限时发布的一种应用是在通过电子邮件公布公司财务报告。
应该理解,在图示的实施例中,得知接收方的私有密钥本身还不足以对已加密的已注册电子邮件进行解密。还必须对存储在邮件注册授权服务器7中的解密数据(在图示的实施例中即跟踪密钥)进行访问。因此,邮件注册授权服务器7能够通过监测对相关联的解密数据的访问来监测对已加密的已注册电子邮件的访问,这允许查帐索引(audit trail)被有效记录。在实施例中,查帐索引被保留以记住所有已经访问该已加密的已注册电子邮件的人。
如果接收方的私有密钥被泄露,那么尽管知道接收方私有密钥的第三方能够使用该接收方私有密钥来得到数字签名,并因此而冒充该接收方,但是邮件注册授权服务器7所保留的查帐索引可以包括接收方私有密钥的泄露的指示符。例如,查帐索引可以指示从不同的网络地址对解密数据的访问。在优选实施例中,邮件注册授权服务器7监视查帐索引中接收方私有密钥可能已经被泄露的指示符,并且一旦检测到指示符,即警告有可能已泄露的私有密钥的所有者。
在图示的实施例中,已加密的已注册电子邮件具有未加密部分和已加密部分。应该理解,已加密部分可以是附到该电子邮件上的一个或多个文件,并且未加密部分也可以附到该电子邮件上。在一个实施例中,为附到电子邮件上的多个已加密文件提供单独的跟踪密钥和跟踪代码,从而能够监视对所附的已加密文件中各个文件的访问。
应该理解,一旦电子邮件在用户计算机上被接收,该电子邮件的已加密部分就作为一个或更多已加密文件存储在该用户计算机上。已加密文件并不一定是通过电子邮件从发送方传达的,尽管通过电子邮件发送具有固有地将已加密文件链接到电子邮件接收方的优点。然而,使用KEM-DEM方法还固有地将已加密文件链接到一个以上预计接收方,因此当使用KEM-DEM方法时,已加密文件可以使用网络文件传输而非电子邮件的形式(例如使用FTP协议)被传达,甚至也可以作为储存在诸如CD-ROM的硬件储存设备上的已加密文件被传达。
在图示的实施例中,对跟踪密钥和会话密钥执行位异或运算以确定在KEM部分中被非对称加密的中间密钥,并且对中间密钥和跟踪密钥执行位异或运算以复原会话密钥。可替换地,可以对会话密钥进行非对称加密,并且对该结果和跟踪密钥执行位异或运算以确定储存在KEM部分中的数据。
应该理解,其它数学函数可以对跟踪密钥、中间密钥和会话密钥进行链接。例如,中间密钥可以通过使用跟踪密钥作为加密密钥对会话密钥进行对称加密而形成,且会话密钥通过使用跟踪密钥作为加密密钥对中间密钥进行对称解密来复原。
在图示的实施例中,为已注册电子邮件的所有接收方发布单一跟踪密钥。应该理解,在可替换的实施例中,可以为不同的接收方发布不同的跟踪密钥,从而存在与不同的用户相关联的不同中间密钥。
在图示的实施例中,邮件注册授权服务器7向接收计算机1b发送跟踪密钥,并且接收计算机1b从中间密钥和跟踪密钥得到会话密钥。在可替换的实施例中,接收计算机1b向邮件注册授权服务器7发送中间密钥,邮件注册授权服务器7使用中间密钥和跟踪密钥得到会话密钥,然后将得到的会话密钥发送给接收计算机。这允许邮件注册服务器对链接跟踪密钥、中间密钥和会话密钥的数学函数进行控制。
尽管在图示的实施例中使用KEM/DEM类型的电子邮件,但是这不是必须的。在可替换的实施例中,发送计算机使用会话密钥对电子邮件消息进行对称加密,并将会话密钥发送给邮件注册授权服务器。为了对该消息进行解密,接收方必须从邮件注册授权服务器下载会话密钥,并且这种会话密钥的下载受到监视。
在图示的实施例中,加密授权服务器生成根私有密钥和根公共密钥对。这种生成涉及某种形式的随机数生成,从而使所生成的密钥不是预定义的。一旦根私有密钥被生成,用户私有密钥就可以从该根私有密钥和某种形式的用户标识符被计算出。类似地,一旦根公共密钥被生成,用户公共密钥就可以从该根公共密钥和用户标识符被计算出。具体来说,计算用户私有密钥和公共密钥不需要生成任何随机数,并且是可重复的计算,无论该计算什么时候在哪里执行,每次都能够产生相同的结果。
在图示的实施例中,用户的电子邮件地址被用作用户标识符。也可以使用其它形式的标识符,但是电子邮件地址很方便,因为为了给接收方发送电子邮件消息,发送方总要知道接收方的电子邮件地址。
如上所述,发送方能够使用接收方的电子邮件地址和根公共密钥来计算该接收方的公共密钥。因此,尽管根公共密钥通常形成包含以传统方式确认根公共密钥真实性的信息的公共密钥证书的一部分,也不需要验证接收方的公共密钥的真实性(例如通过公共密钥证书)。
在图示的实施例中,使用WO03/017559中所讨论的非对称加密算法。应该理解,也可以使用具有相同的总体功能的可替换算法,例如R.Sakai和M.Kasahara在报告2003/054的密码技术电子印刷档案(Cryptology ePrintarchive)中的“ID based cryptosystems with pairing on elliptic curve(基于ID的在椭圆曲线上成对的密码系统)”中所讨论的算法以及Chen等人在报告2005/224的密码技术电子印刷档案中的“An Efficient ID-KEM Based On theSakai-Kasahara Key Construction(基于Sakai-Kasahara密钥结构的有效ID-KEM)”中所讨论的算法(由此将这两个文献通过引用合并于此)。
进一步,非对称加密算法不需要使用客户身份来确定客户的公共密钥,并且可以使用任何非对称加密算法,例如RSA算法。
在图示的实施例中,使用各个接收方的相应公共密钥来对电子邮件进行加密,从而使各个接收方能够使用相应的私有密钥来对该电子邮件进行解密。以此方式,仅有期望的接收方能够对该电子邮件进行解密。应该理解,该电子邮件另外可以使用发送方的私有密钥被签名。以此方式,每个接收方能够验证该电子邮件发自该发送方且未被篡改。
尽管在图示的实施例中使用AES加密算法来执行对称加密,但是应该理解,也可以使用其它对称加密算法,例如DES算法。
在图示的实施例中,加密授权服务器5和邮件注册授权服务器7都包括允许以网页的形式向用户计算机1传达信息的万维网服务器,用户计算机1使用并入该用户计算机1的传统万维网浏览器程序来将网页呈现在相应的显示器上。应该理解,可以使用包括结构化数据传输的其它数据传送技术,例如使用XML文件。在一些实施例中,用户计算机可以包括使能与加密授权服务器和邮件注册授权服务器中的一个或两个进行通信的私有客户端软件。
在图示的实施例中,用户计算机是传统的个人计算机。应该理解,这种个人计算机可以是例如膝上型或桌上型。进一步,用户计算机可以由诸如瘦客户端(thin client)或个人数字助理(PDA)之类的其它类型的计算机设备形成。
尽管本发明的图示实施例包括计算机设备和在该计算机设备上执行的处理,但是本发明还扩展到计算机程序,尤其是适于将本发明付诸实践的载体上的计算机程序。该程序可以采用源代码、目标代码、代码中间源和诸如部分已编译形式的目标代码的形式,也可以采用适合使用根据本发明的过程的工具的任意其它形式。
该载体可以是能够承载程序的任意实体或器件。例如,该载体可以包括诸如ROM之类的储存介质,例如CD-ROM或半导体ROM,也可以包括诸如软盘或硬盘之类的磁记录介质。进一步,该载体可以是诸如可以通过电缆或光缆或通过无线电或其它手段传送的电子或光信号的可传输载体。
当以可以通过线缆或其它设备或手段传送的信号的形式实施该程序时,该载体可以由这类线缆或其它设备或手段构成。可替换地,该载体可以是其中嵌入程序的集成电路,该集成电路适于执行相关处理或在执行相关处理时使用。
尽管在所描述的实施例中,本发明是用软件实现的,但是应该理解,可替换地,本发明可以用硬件设备或硬件设备与软件的组合来实现。