首页 / 国际专利分类库 / 电学 / 电通信技术 / 无线通信网络 / 安全装置,例如接入安全或欺诈检测;鉴权,例如检验用户身份或权限;保密或匿名 / 由至少一个服务器执行的用于处理从第一计算装置到第二计算装置的数据分组以允许端到端加密通信的方法

由至少一个服务器执行的用于处理从第一计算装置到第二计算装置的数据分组以允许端到端加密通信的方法

申请号 CN201480023651.0 申请日 2014-04-23 公开(公告)号 CN105164968A 公开(公告)日 2015-12-16
申请人 瑞保企业; 发明人 张志勤; 张志华; 聂毅勤; 刘宏达; 黄莉芳; 陈小燕;
摘要 公开了一种由至少一个 服务器 执行的用于处理要从第一计算装置向第二计算装置发送的数据分组的方法(500),其中,数据分组包括使用用于形成加密的消息的第一加密密钥进行加密的消息、使用用于形成加密的标识数据的第二加密密钥进行加密的第二计算装置的标识数据、以及加密的第一加密密钥和加密的第二加密密钥。该方法包括:解密(504)所述加密的第二加密密钥;使用解密的第二加密密钥来解密(506)所述加密的标识数据;以及基于解密的标识数据来发送(508)数据分组,其中,所述加密的消息和所述加密的第一加密密钥被布置为不能由所述服务器解密,以允许第一计算装置与第二计算装置之间的端到端加密通信。还公开了相关的系统。
权利要求

1.一种用于处理要从第一计算装置向第二计算装置发送的数据分组的方法,该方法由至少一个服务器执行,其中,所述数据分组包括使用用于形成加密消息的第一加密密钥进行加密的消息、使用用于形成加密的标识数据的第二加密密钥进行加密的所述第二计算装置的标识数据、以及加密的第一加密密钥和加密的第二加密密钥,该方法包括:
将加密的第二加密密钥解密;
使用解密的第二加密密钥将加密的标识数据解密;以及
基于解密的标识数据来发送所述数据分组,
其中,加密的消息和加密的第一加密密钥被布置为不能被所述服务器解密,以允许所述第一计算装置与所述第二计算装置之间的端到端加密通信。
2.根据权利要求1所述的方法,其中,将加密的第二加密密钥解密的步骤包括使用所述服务器的私钥来执行所述解密。
3.根据前述权利要求中任一项所述的方法,其中,发送所述数据分组的步骤包括经由SMS、MMS、即时消息传送、电子邮件、附件或电子文档投递服务来发送。
4.根据前述权利要求中任一项所述的方法,其中,所述消息包括文本、图像、动画、视频或音频。
5.根据前述权利要求中任一项所述的方法,其中,使用所述第二计算装置的公钥来加密所述第一加密密钥。
6.根据权利要求1至4中任一项所述的方法,其中,使用所述服务器的公钥来加密所述第一加密密钥。
7.根据前述权利要求中任一项所述的方法,其中,使用所述服务器的公钥来加密所述第二加密密钥。
8.根据前述权利要求中任一项所述的方法,其中,所述数据分组还包括初始化矢量和基于加密的消息生成的数字签名。
9.一种由第一计算装置执行的用于处理要经由至少一个服务器发送至第二计算装置的信息的方法,该方法允许所述第一计算装置与所述第二计算装置之间的端到端加密通信,该方法包括:
分别使用第一加密密钥和第二加密密钥来对消息和所述第二计算装置的标识数据进行加密;
对所述第一加密密钥和所述第二加密密钥进行加密;以及
将加密的消息、加密的标识数据、加密的第一加密密钥和加密的第二加密密钥作为数据分组集总地发送。
10.根据权利要求9所述的方法,其中,所述消息包括文本、图像、动画、视频或音频。
11.根据权利要求9或10所述的方法,其中,发送所述数据分组的步骤包括经由SMS、MMS、即时消息传送、电子邮件、附件或电子文档投递服务来发送。
12.根据权利要求9至11中任一项所述的方法,其中,对所述第一加密密钥进行加密的步骤包括使用所述第二计算装置的加密密钥或所述服务器的加密密钥来加密。
13.根据权利要求12所述的方法,其中,所述第二计算装置的所述加密密钥包括所述第二计算装置的公钥。
14.根据权利要求12所述的方法,其中,所述服务器的所述加密密钥包括所述服务器的公钥。
15.根据权利要求9至11中任一项所述的方法,其中,对所述第二加密密钥进行加密的步骤包括使用所述服务器的加密密钥来加密。
16.根据权利要求15所述的方法,其中,所述服务器的所述加密密钥包括所述服务器的公钥。
17.根据权利要求9至16中任一项所述的方法,该方法还包括:显示界面以使所述第一计算装置的用户能从多个消息中选择所述消息并且从能够接收所述数据分组的多个计算装置中选择所述第二计算装置。
18.根据权利要求9至17中任一项所述的方法,其中,所述数据分组还包括初始化矢量和基于加密的消息生成的数字签名。
19.一种由第一计算装置执行的用于处理从第二计算装置经由至少一个服务器转发的数据分组的方法,该方法允许所述第一计算装置与所述第二计算装置之间的端到端加密通信,其中,所述数据分组包括使用用于形成加密消息的第一加密密钥进行加密的消息、使用用于形成加密的标识数据的第二加密密钥进行加密的所述第一计算装置的标识数据、以及加密的第一加密密钥和加密的第二加密密钥,该方法包括:
将加密的第一加密密钥解密;以及
使用解密的第一加密密钥将加密的消息解密以获得所述消息。
20.根据权利要求19所述的方法,其中,将加密的第一加密密钥解密的步骤包括使用所述第一计算装置的私钥来执行所述解密。
21.一种用于在第一计算装置与第二计算装置之间经由至少一个服务器来交换数据分组的系统,该系统允许所述第一计算装置与所述第二计算装置之间的端到端加密通信,该系统包括:
所述第一计算装置,其包括:
加密模,该加密模块用于:
分别使用第一加密密钥和第二加密密钥来对消息和所述第二计算装置的标识数据进行加密;以及
对所述第一加密密钥和所述第二加密密钥进行加密;以及
发送模块,该发送模块用于将加密的消息、加密的标识数据、加密的第一加密密钥和加密的第二加密密钥作为所述数据分组集总地发送给所述服务器;
所述服务器,其被配置为处理从所述第一计算装置接收到的所述数据分组并且包括:
解密模块,该解密模块用于:
将所述数据分组的加密的第二加密密钥解密;以及
使用解密的第二加密密钥来将所述数据分组的加密的标识数据解密;以及发送模块,该发送模块用于基于解密的标识数据向所述第二计算装置发送所述数据分组,其中,加密的消息和加密的第一加密密钥被布置为不能被所述服务器解密;以及所述第二计算装置,其被配置为处理从所述服务器接收到的所述数据分组并且包括:
解密模块,该解密模块用于:
将所述数据分组的加密的第一加密密钥解密;以及
使用解密的第一加密密钥来将所述数据分组的加密的消息解密以获得所述消息。
22.根据权利要求21所述的系统,其中,所述服务器的所述解密模块包括被配置为使用所述服务器的私钥将加密的第二加密密钥解密。
23.根据权利要求21或22所述的系统,其中,所述服务器的所述发送模块包括被配置为使用SMS、MMS、即时消息传送、电子邮件、附件或电子文档投递服务来发送所述数据分组。
24.根据权利要求21至23中任一项所述的系统,其中,所述消息包括文本、图像、动画、视频或音频。
25.根据权利要求21至24中任一项所述的系统,其中,由所述第一计算装置的所述加密模块使用以加密所述第一加密密钥的所述第二计算装置的所述加密密钥包括所述第二计算装置的公钥。
26.根据权利要求21至25中任一项所述的系统,其中,所述第一计算装置的所述加密模块还被配置为使用所述第二计算装置的加密密钥或所述服务器的加密密钥来加密所述第一加密密钥。
27.根据权利要求21至25中任一项所述的系统,其中,所述第一计算装置的所述加密模块还被配置为使用所述服务器的加密密钥来加密所述第二加密密钥。
28.根据权利要求21至27中任一项所述的系统,其中,由所述第一计算装置的所述加密模块使用以加密所述第二加密密钥的所述服务器的所述加密密钥包括所述服务器的公钥。
29.根据权利要求21至28中任一项所述的系统,其中,所述数据分组还包括初始化矢量和基于加密的消息生成的数字签名。
30.一种加密装置,该加密装置用于处理要经由至少一个服务器发送至计算装置的信息,以允许该加密装置与计算装置之间的端到端加密通信,该加密装置包括:
加密模块,该加密模块用于:
分别使用第一加密密钥和第二加密密钥来对消息和所述计算装置的标识数据进行加密;以及
对所述第一加密密钥和所述第二加密密钥进行加密;以及发送模块,该发送模块用于将加密的消息、加密的标识数据、加密的第一加密密钥和加密的第二加密密钥作为数据分组集总地发送。
31.一种解密装置,该解密装置用于处理从计算装置经由至少一个服务器转发的数据分组,以允许该解密装置与计算装置之间的端到端加密通信,其中,所述数据分组包括使用用于形成加密消息的第一加密密钥进行加密的消息、使用用于形成加密的标识数据的第二加密密钥进行加密的所述第一计算装置的标识数据、以及加密的第一加密密钥和加密的第二加密密钥,该解密装置包括:
解密模块,该解密模块用于:
将加密的第一加密密钥解密;以及
使用解密的第一加密密钥来将加密的消息解密以获得所述消息。
32.一种由至少一个服务器执行的用于处理要从第一计算装置向第二计算装置发送的数据分组的方法,其中,所述数据分组包括使用用于形成加密消息的第一加密密钥进行加密的消息、使用用于形成加密的标识数据的第二加密密钥进行加密的所述第二计算装置的标识数据、通过使用与所述第二计算装置相关联的第三加密密钥对所述第一加密密钥进行加密而形成的加密的第一加密密钥以及通过使用与所述服务器相关联的加密密钥对所述第二加密密钥进行加密而形成的加密的第二加密密钥,该方法包括:
将加密的第二加密密钥解密;
使用解密的第二加密密钥将加密的标识数据解密;以及
基于解密的标识数据来发送所述数据分组,
其中,加密的第一加密密钥被布置为仅能使用与所述第二计算装置相关联的第四加密密钥来解密;以及
其中,所述第二计算装置的所述第三加密密钥和所述第四加密密钥被配置为不对称密钥对。
33.根据权利要求32所述的方法,其中,与所述服务器相关联的所述加密密钥包括所述服务器的公钥。
34.根据权利要求33所述的方法,其中,将加密的第二加密密钥解密的步骤包括使用所述服务器的私钥来执行所述解密。
35.根据权利要求32至34中任一项所述的方法,其中,发送所述数据分组的步骤包括经由SMS、MMS、即时消息传送、电子邮件、附件或电子文档投递服务来发送。
36.根据权利要求32至35中任一项所述的方法,其中,所述消息包括文本、图像、动画、视频或音频。
37.根据权利要求32至36中任一项所述的方法,其中,所述第三加密密钥和所述第四加密密钥分别包括所述第二计算装置的公钥和所述第二计算装置的私钥。
38.根据权利要求32至37中任一项所述的方法,其中,所述数据分组还包括初始化矢量和基于加密的消息生成的数字签名。

说明书全文

由至少一个服务器执行的用于处理从第一计算装置到第二

计算装置的数据分组以允许端到端加密通信的方法

[0001] 技术领域和背景技术
[0002] 本发明涉及一种由至少一个服务器执行的用于处理从第一计算装置到第二计算装置的数据分组以允许端到端加密通信的方法以及相应的系统。
[0003] 目前,例如在通信网络中在两个计算装置(发送方与接收方)之间布置有服务器的情况下,特定消息解决方案执行两种不同的加密-解密方法。发送方使用随机生成的对称密钥将消息加密。随后,发送方使用服务器的公钥(public key)将该对称密钥加密,并且之后将包括加密的消息和对称密钥的数据分组发送给服务器。服务器使用其自身的私钥(private key)将加密的对称密钥解密,之后服务器采用接收方的公钥将对称密钥重新加密,并且将重新格式化的数据分组转发给接收方。然而,将理解的是,由于服务器具有对称密钥,所以服务器随后能够访问加密的消息。一旦接收到数据分组,接收方就以其自身的私钥将加密的对称密钥解密以取得用于将加密的消息解密的对称密钥。针对该情况,服务器具有对称密钥的副本并且能够为审查的目的或解密的消息的归档而将加密的消息解密。然而,因为服务器能够访问消息的内容,这并不被认为是真正的端到端加密通信。
[0004] 对于其他常规实施,服务器可以被配置为重新生成新的对称密钥并使用新的对称密钥将消息重新加密,并且使用接收方的公钥来加密新的对称密钥。然而在该情况下,服务器仍然能够访问加密的消息,并且也因此无法实现真正的端到端加密通信。
[0005] 因此,本发明的一个目的是解决现有技术的至少一个问题和/或提供在本技术中有用的选择。

发明内容

[0006] 根据本发明的第一方面,提供了一种由至少一个服务器执行的用于处理要从第一计算装置向第二计算装置发送的数据分组的方法,其中,所述数据分组包括使用用于形成加密的消息的第一加密密钥加密的消息、使用用于形成加密的标识数据的第二加密密钥加密的所述第二计算装置的标识数据、以及加密的第一加密密钥和加密的第二加密密钥。该方法包括:解密所述加密的第二加密密钥;使用解密的第二加密密钥来解密所述加密的标识数据;以及基于解密的标识数据来发送所述数据分组。所述加密的消息和所述加密的第一加密密钥被布置为不能由所述服务器解密,以允许所述第一计算装置与所述第二计算装置之间的端到端加密通信。
[0007] 该方法有利地使能实现允许发送方通过利用中间服务器转发加密的消息以执行对数据分组的重新路由来向接收方发送加密的消息的多密钥加密方案,然而却不会使服务器具有解密所加密的消息的能。这有益地确保在发送方与接收方之间实现真正的端到端加密。
[0008] 优选地,解密所述加密的第二加密密钥的步骤可以包括使用所述服务器的私钥来执行所述解密。另外,发送所述数据分组的步骤可以包括经由SMS、MMS、即时消息传送、电子邮件、附件或电子文档投递服务来发送。所述消息可以包括文本、图像、动画、视频或音频。将理解的是,可以使用所述第二计算装置的公钥来加密所述第一加密密钥,或者另选地,可以使用所述服务器的公钥来加密所述第一加密密钥。更优选地,可以使用所述服务器的公钥来加密所述第二加密密钥。还优选地,所述数据分组还可以包括初始化矢量和基于所述加密的消息生成的数字签名。
[0009] 根据本发明的第二方面,提供了一种由第一计算装置执行的用于处理要经由至少一个服务器发送至第二计算装置的信息以允许所述第一计算装置与所述第二计算装置之间的端到端加密通信的方法。该方法包括:使用第一加密密钥和第二加密密钥分别对消息和所述第二计算装置的标识数据进行加密;加密所述第一加密密钥和所述第二加密密钥;以及集总地发送加密的消息、标识数据、第一加密密钥和第二加密密钥作为数据分组。
[0010] 优选地,所述消息可以包括文本、图像、动画、视频或音频。此外,发送所述数据分组的步骤可以包括经由SMS、MMS、即时消息传送、电子邮件、附件或电子文档投递服务来发送。更优选地,加密所述第一加密密钥的步骤可以包括使用所述第二计算装置的加密密钥或所述服务器的加密密钥来加密。另外,所述第二计算装置的所述加密密钥可以包括其公钥,并且所述服务器的所述加密密钥可以包括其公钥。加密所述第二加密密钥的步骤可以包括使用所述服务器的加密密钥来加密。所述服务器的所述加密密钥可以包括其公钥。
[0011] 优选地,该方法还可以包括显示使所述第一计算装置的用户能够从多个消息中选择所述消息并且从能够接收所述数据分组的多个计算装置中选择所述第二计算装置的界面。所述数据分组还可以包括初始化矢量以及基于所述加密的消息生成的数字签名。
[0012] 根据本发明的第三方面,提供了一种由第一计算装置执行的用于处理从第二计算装置经由至少一个服务器转发的数据分组以允许所述第一计算装置与所述第二计算装置之间的端到端加密通信的方法,其中,所述数据分组包括使用用于形成加密消息的第一加密密钥加密的消息、使用用于形成加密的标识数据的第二加密密钥加密的所述第一计算装置的标识数据、以及加密的第一加密密钥和加密的第二加密密钥。该方法包括:将加密的第一加密密钥解密;以及使用解密的第一加密密钥来解密所述加密的消息以获得所述消息。
[0013] 优选地,解密所述加密的第一加密密钥的步骤可以包括使用所述第一计算装置的私钥来执行所述解密。
[0014] 根据本发明的第四方面,提供了一种用于经由至少一个服务器在第一计算装置与第二计算装置之间交换数据分组以允许所述第一计算装置与所述第二计算装置之间的端到端加密通信的系统。该系统包括所述第一计算装置和所述第二计算装置以及所述服务器。所述第一计算装置包括:加密模,该加密模块用于:使用第一加密密钥和第二加密密钥分别将消息和所述第二计算装置的标识数据加密;以及将所述第一加密密钥和所述第二加密密钥加密;以及发送模块,该发送模块用于将加密的消息、标识数据、第一加密密钥和第二加密密钥作为所述数据分组集总地发送给所述服务器。所述服务器被配置为处理从所述第一计算装置接收到的所述数据分组,并且包括:解密模块,该解密模块用于:将所述数据分组的所述加密的第二加密密钥解密;以及使用解密的第二加密密钥将所述数据分组的所述加密的标识数据解密;以及发送模块,该发送模块用于基于解密的标识数据将所述数据分组发送给所述第二计算装置,其中,所述加密的消息和第一加密密钥被布置为不能由所述服务器解密。所述第二计算装置被配置为处理从所述服务器接收到的所述数据分组,并且包括:解密模块,该解密模块用于:将所述数据分组的所述加密的第一加密密钥解密;以及使用解密的第一加密密钥将所述数据分组的所述加密的消息解密以获得所述消息。
[0015] 优选地,所述服务器的所述解密模块可以包括被配置为使用所述服务器的私钥来解密所述加密的第二加密密钥。另一方面,所述服务器的所述发送模块可以被配置为使用SMS、MMS、即时消息传送、电子邮件、附件或电子文档投递服务来发送所述数据分组。所述消息可以包括文本、图像、动画、视频或音频。由所述第一计算装置的所述加密模块使用以加密所述第一加密密钥的所述第二计算装置的所述加密密钥可以优选地包括所述第二计算装置的公钥。
[0016] 优选地,所述第一计算装置的所述加密模块还可以被配置为使用所述第二计算装置的加密密钥或所述服务器的加密密钥来加密所述第一加密密钥。另外,所述第一计算装置的所述加密模块还可以被配置为使用所述服务器的加密密钥来加密所述第二加密密钥。
[0017] 优选地,由所述第一计算装置的所述加密模块使用以加密所述第二加密密钥的所述服务器的所述加密密钥可以包括所述服务器的公钥。所述数据分组还可以包括初始化矢量和基于所述加密的消息生成的数字签名。
[0018] 根据本发明的第五方面,提供了一种加密装置,该加密装置用于处理要经由至少一个服务器发送至计算装置的信息以允许所述加密装置与所述计算装置之间的端到端加密通信。所述加密装置包括:加密模块,该加密模块用于:分别使用第一加密密钥和第二加密密钥来对消息和所述计算装置的标识数据进行加密;以及对所述第一加密密钥和所述第二加密密钥进行加密;以及发送模块,该发送模块用于集总地发送加密的消息、标识数据、第一加密密钥和的第二加密密钥作为数据分组。
[0019] 根据本发明的第六方面,提供了一种解密装置,该解密装置用于处理从计算装置经由至少一个服务器转发的数据分组以允许所述解密装置与计算装置之间的端到端加密通信,其中,所述数据分组包括使用用于形成加密的消息的第一加密密钥加密的消息、使用用于形成加密的标识数据的第二加密密钥加密的所述第一计算装置的标识数据、以及加密的第一加密密钥和第二加密密钥。所述解密装置包括:解密模块,该解密模块用于:解密所述加密的第一加密密钥;以及使用解密的第一加密密钥来解密所述加密的消息以获得所述消息。
[0020] 根据本发明的第七方面,提供了一种由至少一个服务器执行的用于处理要从第一计算装置向第二计算装置发送的数据分组的方法,其中,所述数据分组包括使用用于形成加密的消息的第一加密密钥加密的消息、使用用于形成加密的标识数据的第二加密密钥加密的所述第二计算装置的标识数据、通过使用与所述第二计算装置相关联的第三加密密钥来加密所述第一加密密钥而形成的加密的第一加密密钥、以及通过使用与所述服务器相关联的加密密钥来加密所述第二加密密钥而形成的加密的第二加密密钥。所述方法包括:解密所述加密的第二加密密钥;使用解密的第二加密密钥来解密所述加密的标识数据;以及基于解密的标识数据来发送所述数据分组。所述加密的第一加密密钥被布置为仅能使用与所述第二计算装置相关联的第四加密密钥进行解密;以及所述第二计算装置的所述第三加密密钥和所述第四加密密钥被配置为不对称密钥对。
[0021] 优选地,与所述服务器相关联的所述加密密钥可以包括所述服务器的公钥。随后,解密所述加密的第二加密密钥的步骤可以包括使用所述服务器的私钥来执行所述解密。此外,发送所述数据分组的步骤可以包括经由SMS、MMS、即时消息传送、电子邮件、附件或电子文档投递服务来发送。所述消息可以包括文本、图像、动画、视频或音频。还优选地,所述第三加密密钥和所述第四加密密钥分别可以包括所述第二计算装置的公钥和私钥。所述数据分组还可以包括初始化矢量和基于所述加密的消息生成的数字签名。
[0022] 应当理解的是,涉及本发明的一个方面的特征也可以被应用于本发明的其他方面。
[0023] 根据下文所述的实施方式,本发明的这些和其他方面将是显而易见的,并且本发明的这些和其他方面将参照下文所述的实施方式来说明。附图说明
[0024] 下文中参照附图公开本发明的实施方式,在附图中:
[0025] 图1是示出根据本发明的实施方式的用于在第一和第二计算装置之间经由服务器交换数据分组以允许端到端加密通信的系统的示意图;
[0026] 图2包括图2a至图2c,示出了图1的第一和第二计算装置以及服务器的配置;
[0027] 图3是由图1的第一计算装置执行的用于处理要作为数据分组发送至第二计算装置的信息的方法的流程图
[0028] 图4示出了数据分组的格式;
[0029] 图5是由图1的服务器执行的用于处理从第一计算装置接收到的数据分组的方法的流程图;以及
[0030] 图6是由图1的第二计算装置执行的用于处理从服务器接收到的数据分组的方法的流程图。

具体实施方式

[0031] 根据第一实施方式,公开了用于在第一计算装置104和第二计算装置106(即,两方)之间经由至少一个服务器108来交换数据分组102以允许端到端加密通信的系统100(即,参见图1)和相应的方法500(即,参见图5)。系统100包括第一计算装置104和第二计算装置106以及在配置上被布置在第一计算装置104和第二计算装置106中间的服务器108。将理解的是,服务器108被配置有相关联的公钥和私钥,依据公钥基础架构(即,不对称密钥加密术)术语。类似地,第二计算装置106也被配置有相关联的公钥和私钥。在图1的背景下,第一计算装置104是数据分组102的发送方,而第二计算装置106是数据分组102的最终预定接收方。但是还将理解的是,在其他实例中,相反的关系也是可行的,即第二计算装置106变为发送方,而第一计算装置104变为接收方。具体地,系统100能实现发送方与接收方之间的真正的端到端加密通信,同时仍允许服务器108以安全的方式路由数据分组102,但是不能解密嵌入在数据分组102中的安全消息来访问消息的内容。另外,为了简化说明和描述的目的,在图1中仅示出了一个服务器102,但是将理解的是,在被第二计算装置106接收到之前,数据分组102也可以通过多个服务器108(即,服务器群)转发。将理解的是,在所述多个服务器108的情况下,每个服务器108都被配置为可以使用公钥和私钥的公共集合(例如,它们可以被本地存储在每个服务器108上,或者被存储在可由所有多个服务器108等同地访问的存储服务器上)。具体地,公钥和私钥的所述公共集合被用于加密和解密第二计算装置106的标识数据的目的,这将在下文详细说明。还要理解,第一计算装置104和第二计算装置106以及服务器108驻留在通信网络中。
[0032] 第一计算装置104和第二计算装置106的示例包括移动计算装置(例如,如TM TMiPhone 的智能电话或如iPad 的平板电脑)、有线连接的计算机(例如,台式个人计算机)等。然而,为了实施方式的目的,第一计算装置104和第二计算装置106是运行预定的适当TM TM
移动操作系统(例如,来自Apple Inc 的iOS )的移动计算装置。下文中为方便引用,(在真正的端到端加密通信关系的背景下)第一计算装置104和第二计算装置106分别被称为加密装置104和解密装置106,除非另有明确声明。还将理解的是,多个加密装置104和解密装置106可被布置在通信网络中的系统100内以彼此交换不同的数据分组102,然而为简要起见,在所述示例中却并未在图1中具体示出。对于服务器108,示例包括适当地被配置为在加密装置104与解密装置106之间执行对数据分组102进行路由的任务的任何类型的服务器。
[0033] 参照图2,加密装置104被配置为执行用于将信息处理为要提供给解密装置106的数据分组102的加密程序代码(未示出),而解密装置106被配置为执行用于处理所接收的数据分组102的解密程序代码(未示出)。另一方面,服务器108被配置为执行用于处理由加密装置104向解密装置106发送的数据分组102的基于图5的方法500的数据分组处理代码(未示出)。将理解的是,在实施方式中,加密和解密程序代码被本机地安装在解密装置和解密装置104、106上,另外,加密程序代码和解密程序代码被实现为本机移动应用(例如,作为由用户可用的软件)。具体地,加密装置104包括以下模块:加密模块1042、显示模块1046、发送模块1048和处理器模块10410,而解密装置106包括以下模块:接收器模块1062和解密模块1064。类似地,数据分组处理代码被实施为专用程序(其可以被配置为作为后台处理来运行)并且被本机安装在服务器108上。以下模块被布置在服务器108内:
接收器模块1082、解密模块1084和发送模块1086。在情况下,要理解的是,加密装置204和解密装置206的相应的所述模块以软件来实施,并且因此分别被包含到加密程序代码和解密程序代码中。这对服务器108的所述模块施加了必要的修正。
[0034] 现参照图3和图4来描述由加密装置104(即,发送方)执行的用于处理要经由服务器108发送至解密装置106(即,接收方)的信息以允许端到端加密通信的方法300。在方法300的步骤302处,显示模块1046被布置为显示软件界面(未示出)以便使加密装置104的用户(未示出)能从多个消息中选择期望的消息(即,输入数据)发送至解密装置106。将理解的是,所述消息包括文本、图像、动画、视频、音频等。另外,在步骤302处,用户还使用软件界面来(从多个装置)选择所选择的消息的接收方(在此背景下为解密装置106)。此外,该界面还显示关于用户是否期望端到端加密的选项。如果用户选择端到端加密选项,则加密装置104继续基于如图4中所示的安全分组格式400来准备数据分组102以嵌入所选择的消息。另外,为了继续进行端到端加密通信,加密装置104被配置为随后随机生成对称消息加密密钥(未示出)和接收方信息加密密钥(未示出),其目的在下文中详细说明。另外,针对要由加密装置104发送的每个数据分组102,生成新的唯一的消息加密密钥和接收方信息加密密钥集合。还将理解的是,数据分组102可以作为标准IP分组的有效载荷而被嵌入。
[0035] 参照图4,分组格式400总共包括7个数据字段401至407,但是必要时也可以增加另外的必要数据字段。具体地,7个数据字段401至407包括(基于分组格式400中布置的数据序列的顺序):版本号字段401、加密的消息密钥字段402、加密的接收方信息密钥字段403、初始化矢量字段404、加密的接收方信息字段405、加密的消息字段406和数字签名407字段。为简要说明,版本号字段401限定使用的分组格式400的当前版本,加密的消息密钥字段402存储使用解密装置106的公钥加密的消息加密密钥,而加密的接收方信息密钥字段403存储使用服务器108的公钥加密的接收方信息加密密钥。对于包括多个服务器108的情况,加密的接收方信息密钥字段403存储使用由所有服务器108可使用的公共的公钥加密的接收方信息加密密钥,如前文所说明。初始化矢量字段404限定用于加密的起始变量(如将由技术人员所理解),加密的接收方信息字段405存储使用接收方信息加密密钥加密的解密装置106的标识数据,而加密的消息字段406存储所选择的使用消息加密密钥加密的消息,而数字签名字段407存储基于加密的消息(存储在加密的消息字段406中)生成的认证校验和(authentication checksum)。将理解的是,解密装置106的标识数据是指解密装置106的相关联的位置信息(如IP地址),本地信息将能使服务器108识别来自加密装置104的数据分组102,将数据分组102转发和路由至解密装置106。因此,标识数据是与接收方相关联的位置信息,由于在此情况下解密装置106是数据分组102的接收方。将理解的是,加密装置104获得由服务器108通过单独的通信信道/机制分发的解密装置106的标识数据,这并非本发明讨论的重点。
[0036] 将理解的是,为了能使标识数据与消息(其也将被加密)分开加密的目的,由加密装置104的显示模块1046显示的软件界面自动将标识数据与消息分开(而无需任何用户介入)。现在下文中对此详细说明。
[0037] 继续对图3中的方法300的描述,在步骤304,(加密装置104的)加密模块1042分别使用消息加密密钥和接收方信息加密密钥来对所选择的消息以及解密装置106的标识数据进行加密,并且将所加密的消息和标识数据分别存储在(数据分组102的)加密的消息字段406和加密的接收方信息字段405中。还由(加密装置104的)处理器模块10410基于加密的消息(使用任何合适的现有校验和算法)来生成相应的认证校验和,并且在数据签名字段407中存储认证校验和。之后在步骤306,(加密装置104的)加密模块1042分别使用解密装置106的公钥和服务器108的公钥来对消息加密密钥和接收方信息加密密钥进行加密。将理解的是,对于包括多个服务器108的情况,使用由所有服务器108可使用的公共的公钥来加密接收方信息加密密钥,如上所说明。被加密的消息加密密钥和接收方信息加密密钥随后分别被存储在(数据分组102的)加密的消息密钥字段402和加密的接收方信息密钥字段403中。数据分组102随后被加密装置104组合为完整的形式。在步骤308,(加密装置104的)发送模块1048向服务器108发送(组合的)数据分组102。将理解的是,数据分组可以经由适当的数字消息传送(messaging)方案(诸如使用SMS、MMS、即时消息传送(IM)、电子邮件、附件、电子文档投递服务等)发送。
[0038] 服务器108随后执行用于处理从加密装置104接收到的数据分组102的(如图5中所示的)方法500,该方法允许加密装置104与解密装置106之间的真正的端到端加密通信。具体地,服务器108首先在步骤502经由(服务器108的)接收器模块1082接收数据分组102。服务器108使用从所接收的数据分组102的数字签名字段407取得的数据来执行认证校验,以确保加密的消息字段406中的所加密的消息并未在从加密装置104到服务器108传送期间的任何点处被篡改。随后,在步骤504,服务器108的解密模块1084被配置为使用服务器108的私钥来解密被存储在所接收的数据分组102的加密的接收方信息密钥字段403中的加密的接收方信息加密密钥。这允许取得“明码的(in the clear)”(即,未加密的)接收方信息加密密钥。将理解的是,对于包括多个服务器108的情况,使用由所有服务器108可使用的公共的私钥来解密加密的接收方信息加密密钥,如以上已说明。之后,服务器108的解密模块1084使用在步骤504中获得的接收方信息加密密钥来继续解密被存储在数据分组102的加密的接收方信息字段405中的加密的标识数据。这允许取得“明码的”标识数据。一旦服务器108基于在上述步骤506中获得的标识数据确定数据分组102接下来需要被路由至哪里,则服务器108的发送模块1086随后向在标识数据中指定的目的地发送和转发数据分组102。当然,在当前讨论的背景下,标识数据与解密装置106相关联,因此数据分组被转发至解密装置106。重要地,将理解的是,数据分组102被服务器108一字不差(verbatim)地转发至解密装置106;即,服务器108不(以任何方式)改变、重新加密或重新格式化从加密装置104接收到的数据分组102。
[0039] 将理解的是,在图5的方法500的执行期间,服务器108将不能将数据分组102的加密的消息字段406和加密的消息密钥字段402解密。这是因为服务器108未被配置为具有解密装置106的私钥的副本(需要解密装置106的私钥以解密加密的消息密钥字段402)。只有“明码地”取得消息加密密钥才将能使加密的消息字段406被解密以“明码地”获得消息。即,服务器108不能解密和访问打算发送给解密装置106的消息,这有益地允许发送方与预定接收方之间的安全的端到端加密通信。
[0040] 图6随后示出了由解密装置106执行的用于处理从服务器108接收到的数据分组102的方法600。在步骤602,(解密装置106的)接收器模块1062接收由服务器108转发的数据分组102,并且在步骤604,(解密装置106的)解密模块1064被配置为将数据分组
102的加密的消息密钥字段402解密以“明码地”获得消息加密密钥。在成功取得加密的消息加密密钥的情况下,(解密装置106的)解密模块1064被布置为使用(在步骤604获得的)消息加密密钥来解密数据分组102的加密的消息字段406以在步骤606获得解密的消息。解密装置106随后可以访问和读取由加密装置104发送的消息。
[0041] 下文中将描述本发明的其他实施方式。为简要起见,对这些实施方式之间共同的类似元件、功能和操作的描述不会被重复;将参照相关实施方式的类似部分。
[0042] 根据第二实施方式,在存在多个解密装置106(即,针对群组通信的多于一个的接收方)的情况下,(加密装置104的)加密模块1042使用与相应的解密装置106相关联的接收方信息加密密钥来对每个解密装置106的标识数据进行加密,之后将所有加密的标识数据存储在要发送的新数据分组102的加密的接收方信息字段405中。具体地,所有加密的标识数据被连接成存储到新的数据分组102的加密的接收方信息字段405中的数据串。多个解密装置106的所有接收方信息加密密钥随后被布置为(由加密装置104的加密模块
1042)使用服务器108的公钥来加密,并且被集总地存储在数据分组102的加密的接收方信息密钥字段403中。另外,(加密装置104的)加密模块1042还使用每个解密装置106的公钥来对消息加密密钥进行加密,消息加密密钥随后被存储在数据分组102的加密的消息密钥字段402中。更具体地,使用每个解密装置106的相应的公钥来独立和单独地加密消息加密密钥,以形成相关联的加密的消息加密密钥。如将被理解,针对所有的解密装置106的公钥来执行该处理,并且得到的所产生的加密的消息加密密钥随后被连接成存储到数据分组102的加密的消息密钥字段402中的数据串。将理解的是,在该实施方式中,图3的方法300中的步骤302至308仍类似地由加密装置104执行;相对于第一实施方式,存储在数据分组102中的数据仅在类型和量方面改变。
[0043] 当服务器108接收到由加密装置104发送的数据分组102时,服务器108的解密模块1084随后使用服务器108的私钥来解密被存储在所接收的数据分组102的加密的接收方信息密钥字段403中的加密的接收方信息加密密钥。这使服务器108能取得多个解密装置106的所有的解密的接收方信息加密密钥,所有的解密的接收方信息加密密钥随后还分别被用于解密被存储在数据分组102的加密的接收方信息字段405中的数据串的相应段,以获得全部多个解密装置106的解密的标识数据。利用解密的标识数据,服务器108随后能够将数据分组102重新路由至每个预定的解密装置106。当数据分组102被传送至每个解密装置106时,相应的解密装置106随后使用相应的解密装置106的相关联的私钥来解密(存储在所接收的数据分组102的加密的消息密钥字段402中的数据串内的)相应的加密的消息加密密钥,以获得消息加密密钥的副本。利用消息加密密钥,每个解密装置106能够解密数据分组102的加密的消息字段406以获得解密的消息。将理解的是,在该实施方式中,图5的方法500中的步骤502至508仍类似地由服务器108执行。另外还将理解的是,出于在第一实施方式中已陈述的理由(因此为简要起见不再重复),服务器108不需要对消息进行重新加密,并且服务器108也不能重新加密消息。
[0044] 根据第三实施方式,在对第一实施方式的轻微变型中,(如由加密装置104的用户所选择)现在在图3的方法300中的步骤306使用服务器108的公钥来对消息加密密钥进行解密,而不使用解密装置106的公钥。这意味着服务器108随后能够访问加密的消息,因为服务器108随后可以使用服务器108的私钥来对加密的消息加密密钥进行解密。事实上,在取得消息加密密钥的情况下,服务器108因此能够将加密的消息解密以访问该消息。即,这意味着解密装置104的用户也可以想让服务器108被授权访问加密的消息的内容(例如,为了安全性验证的目的)。将理解的是,除了以上所述的变型,第一实施方式的其余所描述的细节适用于第三实施方式,没有其他变化。
[0045] 总之,所提出的系统100(及相应的方法)使能实现和实施如下的多密钥加密方案,即,允许发送方通过利用至少一个(中间)服务器转发加密的消息以执行重新路由而向一个或多个接收方发送加密的消息的,然而却不允许服务器具有对加密的消息进行解密的能力。这有益地确保在发送方与接收方之间保持和实现真正的端到端加密,而不允许服务器实际解密加密的消息。
[0046] 另外,所提出的系统100被配置为允许发送方做出发送方是否想让服务器能够访问加密的消息的确定。如果发送方想让服务器访问所述加密的消息,则发送方可以选择使可以替代地使用服务器的公钥加密消息加密密钥的选项(即,第三实施方式)。但是,如果发送方想要服务器不能解密加密的消息的真正的端到端加密,则第一和第二实施方式适用。
[0047] 再次重申,所提出的系统100及方法实现在发送方与多个接收方之间通过(至少一个)服务器的真正的端到端加密通信,其中,服务器被配置为路由(和归档)采用具有多个加密字段的定制的安全分组格式布置的数据分组。加密字段中的一个存储发送方打算发送给接收方的加密的消息,并且服务器不能解密和访问加密的消息(消息使用接收方的公钥来加密)。具体地,为了归档、重新路由或实际预定的接收方的目的,安全分组格式限定了由不同的各方需要的信息。接收方的标识数据被加密为防止对接收方的标识信息的未授权访问。具体地,数据分组使用定制的加密软件应用利用所提出的多密钥加密方案来加密,并且经由数字消息传送平台被发送至接收方且在相同类型的数字消息传送平台上被接收方接收。为访问消息,接收方随后(使用接收方自身的私钥)将加密的消息解密以查看消息。将理解的是,服务器在向接收方转发数据分组的过程中接收相同的数据分组,并且能够将数据分组的特定加密字段(即,数据分组的加密的接收方信息字段405)解密,以确定是将数据分组重新路由还是归档。然而,服务器未被配置有用于将存储在数据分组中的加密的消息解密的加密密钥(即,接收方的私钥)。这确保了在(中间转发)服务器执行用于在发送方与接收方之间路由消息的关键作用的数字消息传送系统中,服务器不能将加密的消息解密并访问相关内容。因此,所提出的系统实现了发送方和接收方的真正的端到端加密系统和方案,但是还允许服务器参与转发/路由通信而不损害由发送方向接收方发送的加密的消息的内容的安全性和真正性。
[0048] 也为了宽泛地总结所提出的方法,公开了一种由至少一个服务器执行的用于处理从第一计算装置要向第二计算装置发送的数据分组的方法,其中,数据分组包括使用用于形成加密的消息的第一加密密钥加密的消息、使用用于形成加密的标识数据的第二加密密钥加密的第二计算装置的标识数据、通过使用与第二计算装置相关联的第三加密密钥对第一加密密钥进行加密而形成的加密的第一加密密钥以及通过使用与服务器相关联的加密密钥对第二加密密钥进行加密而形成的加密的第二加密密钥。该方法包括将加密的第二加密密钥解密;使用解密的第二加密密钥来将加密的标识数据解密;以及基于解密的标识数据来发送数据分组。具体地,加密的第一加密密钥被布置为仅能够使用与第二计算装置相关联的第四加密密钥来解密,其中,第二计算装置的第三加密密钥和第四加密密钥被配置为不对称密钥对。即,所述不对称密钥对包括如依据公钥加密术构建的构思的公钥(即,第三加密密钥)和私钥(即,第四加密密钥)。
[0049] 然而,所描述的实施方式不应被解释为是限制性的。例如,将理解的是,加密装置104和解密装置106可以是除移动计算装置之外的任何其他类型的合适的装置。同样,加密装置104和解密装置106的相应模块(如果以软件来实施)可以程序化地被集成和提供为可安装在可被设计为用于处理数据分组102的类似的计算装置上以及由类似的计算装置可执行的相应的单个、完整的软件应用。可选地,单个完整的软件应用可以整体以硬件来实施,并且实施的硬件的副本被包含在加密装置104和解密装置106中的每一个上。紧接在前面两个声明后描述的另选配置也可以对服务器108的所述模块应用必要的修正。此外,另选地,加密和解密程序代码可以被存储在外部存储装置上,并且“一经要求”就可下载以在需要时分别在加密装置104和解密装置106上被执行。另外,在由加密装置104的显示模块1046显示的软件界面中,也可以显示允许用户选择服务器108作为接收方(而不是解密装置106)的选项。还将理解的是,对于多个服务器108的情况,服务器18可以统一被配置有一组负荷平衡规则,该组负荷平衡规则确定数据分组102要被转发至哪里。另外,基于预定应用的需求,图4中所示的分组格式400必要时可被修改为包括新的数据字段,或者去除现有的数据字段。
[0050] 尽管已在附图和之前描述中详细例示和描述了本发明,但是该例示和描述将被认为是说明性或示例性的,而不是限制性的;本发明不限于所公开的实施方式。对所公开的实施方式的其他变型可以由本领域技术人员在实践所要求保护的本发明时来理解和产生。
QQ群二维码
意见反馈