CN114697955A - 一种加密通话方法、装置、终端及存储介质 - Google Patents
一种加密通话方法、装置、终端及存储介质 Download PDFInfo
- Publication number
- CN114697955A CN114697955A CN202011613563.XA CN202011613563A CN114697955A CN 114697955 A CN114697955 A CN 114697955A CN 202011613563 A CN202011613563 A CN 202011613563A CN 114697955 A CN114697955 A CN 114697955A
- Authority
- CN
- China
- Prior art keywords
- terminal
- key
- server
- encrypted
- public
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/02—Protecting privacy or anonymity, e.g. protecting personally identifiable information [PII]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/04—Key management, e.g. using generic bootstrapping architecture [GBA]
- H04W12/041—Key generation or derivation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/04—Key management, e.g. using generic bootstrapping architecture [GBA]
- H04W12/043—Key management, e.g. using generic bootstrapping architecture [GBA] using a trusted network node as an anchor
- H04W12/0431—Key distribution or pre-distribution; Key agreement
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Telephonic Communication Services (AREA)
Abstract
本申请提供了一种加密通话方法、装置、终端及存储介质,涉及通信技术领域。该方法包括:第一终端具有第一终端的第一会话密钥,以及与第一终端通话的一个或多个第二终端分别对应的第二会话密钥。在通话过程中,第一终端采用第一会话密钥加密第一终端的通话数据,并向服务器发送加密后的通话数据。和/或,第一终端接收来自一个或多个第二终端中的至少一个第二终端的加密后的通话数据,第一终端采用至少一个第二终端分别对应的第二会话密钥解密至少一个第二终端的加密后的通话数据,得到至少一个第二终端的通话数据。如此,在加密通话过程中,各个终端对通话数据进行加密使用的密钥不相同,可以提高通话的安全性。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种加密通话方法、装置、终端及存储介质。
背景技术
随着通信技术的快速发展,音频/视频通话已逐渐成为人们日常生活和工作的主要沟通方式。通话的隐私安全性也越来越重要。为此,通常需要对通话数据进行加密。如此以来,需要在参与加密通话的各个终端之间进行密钥协商。
在相关技术中,通话系统架构包括服务器、密钥中心和多个终端。在建立加密通话连接过程中,服务器收到多个终端中的某个终端的加密通话请求后,向密钥中心请求密钥,密钥中心针对本次加密通话生成一个密钥,并发给服务器。之后,服务器将该密钥发送给多个终端中的各个终端,如此,各个终端即可使用该密钥对通话数据进行加密或解密。
然而,在上述实现方式中,由于所使用的密钥是由密钥中心统一生成的,也即各个终端均使用同一密钥进行加密或解密,所以导致通话的安全性较低。
发明内容
本申请提供一种加密通话方法、装置、终端及存储介质,解决了现有技术中各个终端均使用同一密钥进行加密或解密导致通话的安全性较低的问题。
为达到上述目的,本申请采用如下技术方案:
第一方面,提供一种加密通话方法,应用于第一终端中,所述第一终端中具有所述第一终端的第一会话密钥,以及与所述第一终端通话的一个或多个第二终端分别对应的第二会话密钥,所述方法包括:
在所述第一终端和所述一个或多个第二终端通话过程中,所述第一终端向服务器发送采用所述第一会话密钥加密的所述第一终端的通话数据;和或,
所述第一终端接收来自所述一个或多个第二终端中至少一个第二终端的加密后的通话数据,以及采用所述至少一个第二终端对应的第二会话密钥解密所述至少一个第二终端的加密后的通话数据,得到所述至少一个第二终端的通话数据。
如此,在加密通话过程中,各个终端对通话数据进行加密使用的密钥不相同,可以提高通话的安全性。并且,本申请实施例中避免需要服务器对加密后的通话数据进行解密处理,服务器只需要透传加密后的通话数据即可,可以防止泄露通话数据,从而可以提高通话的安全性。
作为本申请的一个示例,在所述第一终端和一个或多个第二终端进行通话之前,所述方法还包括:
在密钥协商的过程中,所述第一终端确定第一共享密钥以及所述第一会话密钥,所述第一共享密钥为所述第一终端和目标终端之间使用的共享密钥,所述目标终端为所述一个或多个第二终端中的任一个;
所述第一终端向所述服务器发送第一协商密钥,所述第一协商密钥由所述第一终端根据所述第一共享密钥加密所述第一会话密钥得到;
所述第一终端从所述服务器获取第二协商密钥,所述第二协商密钥是由所述目标终端基于所述第一共享密钥加密第二会话密钥得到的,所述第二会话密钥用于在加密通话过程中解密所述目标终端的通话数据;
所述第一终端基于所述第一共享密钥解密所述第二协商密钥,得到所述第二会话密钥。
在密钥协商过程中,第一终端确定第一终端与目标终端之间的第一协商密钥,并上传至服务器,以便于目标终端从服务器中获取第一协商密钥后解密出第一会话密钥。另外,第一终端从服务器中获取第二协商密钥,以通过对第二协商密钥进行解密得到第二会话密钥,从而实现密钥协商。
作为本申请的一个示例,所述确定第一共享密钥,包括:
获取所述目标终端的公钥;
基于所述第一终端的私钥与所述目标终端的公钥,通过椭圆曲线迪菲-赫尔曼秘钥交换ECDH算法生成所述第一共享密钥,所述第一终端的私钥是由所述第一终端通过所述ECDH算法生成的。
也即,第一终端和目标终端分别通过ECDH算法确定公私钥对,如此,第一终端与目标终端交换公钥后,即可通过ECDH算法确定第一终端与目标终端之间的共享密钥。
作为本申请的一个示例,所述获取所述目标终端的公钥,包括:
向所述服务器发送加密通话请求,所述加密通话请求用于请求建立加密通话连接;
接收来自所述服务器的加密通话响应,所述加密通话响应中携带所述目标终端的公钥。
如此,在建立加密通话连接的过程中,通过信令交互,即可获取对端的公钥,避免需要增加新的信令,节省信令开销。
作为本申请的一个示例,所述获取所述目标终端的公钥,包括:
向所述服务器发送加密通话请求,所述加密通话请求用于请求建立加密通话连接;
在接收到来自所述服务器的加密通话响应后,向所述服务器发送第一查询请求,所述第一查询请求用于请求所述目标终端的公钥;
接收所述服务器基于所述第一查询请求反馈的第一查询响应,所述第一查询响应中携带所述目标终端的公钥。
当接收到目标终端发送的加密通话响应后,可以确定服务器中已存储有目标终端的公钥。因此,第一终端可以向服务器发送第一查询请求,以获取目标终端的公钥。
作为本申请的一个示例,所述第一终端为主叫终端,所述确定所述第一共享密钥,包括:
所述第一终端从所述服务器中获取所述服务器最新存储的所述目标终端的公钥和所述目标终端的公私钥对的密钥版本号;
所述第一终端在确定最新获取的密钥版本号与所述目标终端本地存储的密钥版本号不一致的情况下,则重新执行所述从所述服务器中获取所述服务器最新存储的所述目标终端的公钥和所述目标终端的公私钥对的密钥版本号的操作,直至确定最新获取的密钥版本号与所述目标终端本地存储的密钥版本号一致;
在确定最新获取的密钥版本号与所述目标终端本地存储的密钥版本号一致的情况下,所述第一终端基于所述第一终端的私钥和从所述服务器最新获取到的所述目标终端的公钥,通过所述ECDH算法生成所述第一共享密钥,所述第一终端的私钥是由所述第一终端通过所述ECDH算法生成的。
在第一终端与目标终端密钥协商过程中,当确定第一共享密钥时,第一终端从服务器中获取最新存储的目标终端的公钥和目标终端的公私钥对的密钥版本号。并基于最新获取的密钥版本号进行验证。在确定最新获取的密钥版本号与目标终端本地存储的密钥版本号不一致的情况下,则第一终端返回至从服务器中获取服务器最新存储的目标终端的公钥和目标终端的公私钥对的密钥版本号的操作。直到验证一致,说明第一终端与目标终端的密钥版本号一致,所以第一终端基于最新获取的目标终端的公钥,确定第一共享密钥,并基于第一共享密钥确定第一协商密钥。之后上传第一协商密钥至服务器,以及从服务器获取第二协商密钥。如此,可以使得第一终端和目标终端基于相同版本的公钥进行密钥协商,从而提高密钥协商的一致性和有效性。
作为本申请的一个示例,所述方法还包括:
在与一个或多个第二终端的加密通话结束的情况下,重新生成公私钥对;
向所述服务器发送重新生成的公私钥对中的公钥和重新生成公私钥对的密钥版本号。
在本次加密通话结束后重新生成公私钥对,并将重新生成的公私钥对中的公钥和重新生成的公私钥对的密钥版本号发送至服务器进行存储。如此,以便于第一终端与一个或多个第二终端下一次进行加密通话时,可以从服务器中获取最新存储的公钥和密钥版本号。
第二方面,提供一种加密通话装置,应用于第一终端,所述第一终端中具有所述第一终端的第一会话密钥,以及与所述第一终端通话的一个或多个第二终端分别对应的第二会话密钥,所述装置包括:
通话模块,用于在所述第一终端和所述一个或多个第二终端进行加密通话过程中,向服务器发送采用所述第一会话密钥加密的所述第一终端的通话数据;和/或,
解密模块,用于接收来自所述一个或多个第二终端中至少一个第二终端的加密后的通话数据,以及采用所述至少一个第二终端对应的第二会话密钥解密所述至少一个第二终端的加密后的通话数据,得到所述至少一个第二终端的通话数据。
作为本申请的一个示例,所述通话模块还用于:
在密钥协商的过程中,确定第一共享密钥以及所述第一会话密钥,所述第一共享密钥为所述第一终端和目标终端之间使用的共享密钥,所述目标终端为所述一个或多个第二终端中的任一个;
向服务器发送第一协商密钥,所述第一协商密钥由所述第一终端根据所述第一共享密钥加密所述第一会话密钥得到;
从服务器获取第二协商密钥,所述第二协商密钥是由所述目标终端基于所述第一共享密钥加密第二会话密钥得到的,所述第二会话密钥用于在加密通话过程中解密所述目标终端的通话数据;
基于所述第一共享密钥解密所述第二协商密钥,得到所述第二会话密钥。
作为本申请的一个示例,所述通话模块用于:
获取所述目标终端的公钥;
基于所述第一终端的私钥与所述目标终端的公钥,通过椭圆曲线迪菲-赫尔曼秘钥交换ECDH算法生成所述第一共享密钥,所述第一终端的私钥是由所述第一终端通过所述ECDH算法生成的。
作为本申请的一个示例,所述通话模块用于:
向所述服务器发送加密通话请求,所述加密通话请求用于请求建立加密通话连接;
接收来自所述服务器的加密通话响应,所述加密通话响应中携带所述目标终端的公钥。
作为本申请的一个示例,所述通话模块用于:
向所述服务器发送加密通话请求,所述加密通话请求用于请求建立加密通话连接;
在接收到来自所述服务器的加密通话响应后,向所述服务器发送第一查询请求,所述第一查询请求用于请求所述目标终端的公钥;
接收所述服务器基于所述第一查询请求反馈的第一查询响应,所述第一查询响应中携带所述目标终端的公钥。
作为本申请的一个示例,所述第一终端为主叫终端,所述通话模块用于:
从所述服务器中获取所述服务器最新存储的所述目标终端的公钥和所述目标终端的公私钥对的密钥版本号;
在确定最新获取的密钥版本号与所述目标终端本地存储的密钥版本号不一致的情况下,则重新执行所述从所述服务器中获取所述服务器最新存储的所述目标终端的公钥和所述目标终端的公私钥对的密钥版本号的操作,直至确定最新获取的密钥版本号与所述目标终端本地存储的密钥版本号一致;
在确定最新获取的密钥版本号与所述目标终端本地存储的密钥版本号一致的情况下,基于所述第一终端的私钥和从所述服务器最新获取到的所述目标终端的公钥,通过所述ECDH算法生成所述第一共享密钥,所述第一终端的私钥是由所述第一终端通过所述ECDH算法生成的。
作为本申请的一个示例,所述通话模块还用于:
在与所述一个或多个第二终端的加密通话结束的情况下,重新生成公私钥对;
向所述服务器发送重新生成的公私钥对中的公钥和重新生成公私钥对的密钥版本号。
第三方面,提供一种终端,所述终端的结构中包括处理器和存储器,所述存储器用于存储支持终端执行上述第一方面任一所述的方法的程序,以及存储用于实现上述第一方面任一所述的方法所涉及的数据;所述处理器被配置为用于执行所述存储器中存储的程序;所述终端还可以包括通信总线,所述通信总线用于在所述处理器与所述存储器之间建立连接。
第四方面,提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行如上述第一方面任意一项所述的方法。
第五方面,提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的方法。
上述第二方面、第三方面、第四方面和第五方面所获得的技术效果与上述第一方面中对应的技术手段获得的技术效果近似,在这里不再赘述。
本申请提供的技术方案至少可以带来以下有益效果:
第一终端中包括第一终端的第一会话密钥,以及与第一终端进行通话的一个或多个第二终端分别对应的第二会话密钥。在第一终端与一个或多个第二终端进行通话的过程中,第一终端采用第一会话密钥加密第一终端的通话数据,然后向服务器发送加密后的通话数据。另外,第一终端接收来自一个或多个第二终端中的至少一个第二终端的加密后的通话数据,第一终端采用至少一个第二终端分别对应的第二会话密钥解密至少一个第二终端的加密后的通话数据,得到至少一个第二终端的通话数据。如此,在加密通话过程中,各个终端对通话数据进行加密使用的密钥不相同,可以提高通话的安全性。
附图说明
图1为本申请实施例提供的一种终端的结构示意图;
图2为本申请实施例提供的一种系统架构的示意图;
图3为本申请实施例提供的一种应用场景中终端的通话界面展示图;
图4为本申请实施例提供的另一种应用场景中终端的通话界面展示图;
图5为本申请实施例提供的一种加密通话方法的流程示意图;
图6为本申请实施例提供的一种密钥协商方法的流程示意图;
图7为本申请实施例提供的另一种加密通话方法的流程示意图;
图8为本申请实施例提供的另一种加密通话方法的流程示意图;
图9为本申请实施例提供的另一种加密通话方法的流程示意图;
图10为本申请实施例提供的另一种加密通话方法的流程示意图;
图11为本申请实施例提供的另一种加密通话方法的流程示意图;
图12为本申请实施例提供的一种加密通话装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
应当理解的是,本申请提及的“多个”是指两个或两个以上。在本申请的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,为了便于清楚描述本申请的技术方案,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
在对本申请实施例提供的加密通话方法进行详细介绍之前,先对本申请实施例涉及的执行主体进行简单介绍。作为一种示例,本申请实施例提供的加密通话方法可以应用于具有通话功能的终端中,示例性地,该通话功能包括音频通话功能和/或视频通话功能,且终端具备通话加密能力,也即终端可以实现加密通话。在一个实施例中,终端可以包括但不限于手机、平板电脑、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)。
请参阅图1,图1是本申请实施例提供的一种终端的结构示意图。
终端100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本发明实施例示意的结构并不构成对终端100的具体限定。在本申请另一些实施例中,终端100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是终端100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
I2C接口是一种双向同步串行总线,包括一根串行数据线(serial data line,SDA)和一根串行时钟线(derail clock line,SCL)。在一些实施例中,处理器110可以包含多组I2C总线。处理器110可以通过不同的I2C总线接口分别耦合触摸传感器180K,充电器,闪光灯,摄像头193等。例如:处理器110可以通过I2C接口耦合触摸传感器180K,使处理器110与触摸传感器180K通过I2C总线接口通信,实现终端100的触摸功能。
I2S接口可以用于音频通信。在一些实施例中,处理器110可以包含多组I2S总线。处理器110可以通过I2S总线与音频模块170耦合,实现处理器110与音频模块170之间的通信。在一些实施例中,音频模块170可以通过I2S接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。
PCM接口也可以用于音频通信,将模拟信号抽样,量化和编码。在一些实施例中,音频模块170与无线通信模块160可以通过PCM总线接口耦合。在一些实施例中,音频模块170也可以通过PCM接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。所述I2S接口和所述PCM接口都可以用于音频通信。
UART接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,UART接口通常被用于连接处理器110与无线通信模块160。例如:处理器110通过UART接口与无线通信模块160中的蓝牙模块通信,实现蓝牙功能。在一些实施例中,音频模块170可以通过UART接口向无线通信模块160传递音频信号,实现通过蓝牙耳机播放音乐的功能。
MIPI接口可以被用于连接处理器110与显示屏194,摄像头193等外围器件。MIPI接口包括摄像头串行接口(camera serial interface,CSI),显示屏串行接口(displayserial interface,DSI)等。在一些实施例中,处理器110和摄像头193通过CSI接口通信,实现终端100的拍摄功能。处理器110和显示屏194通过DSI接口通信,实现终端100的显示功能。
GPIO接口可以通过软件配置。GPIO接口可以被配置为控制信号,也可被配置为数据信号。在一些实施例中,GPIO接口可以用于连接处理器110与摄像头193,显示屏194,无线通信模块160,音频模块170,传感器模块180等。GPIO接口还可以被配置为I2C接口,I2S接口,UART接口,MIPI接口等。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为终端100充电,也可以用于终端100与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他终端,例如AR设备等。
可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对终端100的结构限定。在本申请另一些实施例中,终端100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过终端100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为终端供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
终端100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。终端100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在终端100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(lownoise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在终端100上的包括无线局域网(wireless localarea networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequencymodulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,终端100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得终端100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(code divisionmultiple access,CDMA),宽带码分多址(wideband code division multiple access,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(globalnavigation satellite system,GLONASS),北斗卫星导航系统(beidou navigationsatellite system,BDS),准天顶卫星系统(quasi-zenith satellite system,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
终端100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,终端100可以包括1个或N个显示屏194,N为大于1的正整数。
终端100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,终端100可以包括1个或N个摄像头193,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当终端100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。终端100可以支持一种或多种视频编解码器。这样,终端100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现终端100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展终端100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行终端100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储终端100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
终端100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。终端100可以通过扬声器170A收听音乐,或收听免提通话。
受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。当终端100接听电话或语音信息时,可以通过将受话器170B靠近人耳接听语音。
麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170C发声,将声音信号输入到麦克风170C。终端100可以设置至少一个麦克风170C。在另一些实施例中,终端100可以设置两个麦克风170C,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,终端100还可以设置三个,四个或更多麦克风170C,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。
耳机接口170D用于连接有线耳机。耳机接口170D可以是USB接口130,也可以是3.5mm的开放移动终端平台(open mobile terminal platform,OMTP)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the USA,CTIA)标准接口。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。压力传感器180A的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器180A,电极之间的电容改变。终端100根据电容的变化确定压力的强度。当有触摸操作作用于显示屏194,终端100根据压力传感器180A检测所述触摸操作强度。终端100也可以根据压力传感器180A的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。例如:当有触摸操作强度小于第一压力阈值的触摸操作作用于短消息应用图标时,执行查看短消息的指令。当有触摸操作强度大于或等于第一压力阈值的触摸操作作用于短消息应用图标时,执行新建短消息的指令。
陀螺仪传感器180B可以用于确定终端100的运动姿态。在一些实施例中,可以通过陀螺仪传感器180B确定终端100围绕三个轴(即,x,y和z轴)的角速度。陀螺仪传感器180B可以用于拍摄防抖。示例性的,当按下快门,陀螺仪传感器180B检测终端100抖动的角度,根据角度计算出镜头模组需要补偿的距离,让镜头通过反向运动抵消终端100的抖动,实现防抖。陀螺仪传感器180B还可以用于导航,体感游戏场景。
气压传感器180C用于测量气压。在一些实施例中,终端100通过气压传感器180C测得的气压值计算海拔高度,辅助定位和导航。
磁传感器180D包括霍尔传感器。终端100可以利用磁传感器180D检测翻盖皮套的开合。在一些实施例中,当终端100是翻盖机时,终端100可以根据磁传感器180D检测翻盖的开合。进而根据检测到的皮套的开合状态或翻盖的开合状态,设置翻盖自动解锁等特性。
加速度传感器180E可检测终端100在各个方向上(一般为三轴)加速度的大小。当终端100静止时可检测出重力的大小及方向。还可以用于识别终端100的姿态,应用于横竖屏切换,计步器等应用。
距离传感器180F,用于测量距离。终端100可以通过红外或激光测量距离。在一些实施例中,拍摄场景,终端100可以利用距离传感器180F测距以实现快速对焦。
接近光传感器180G可以包括例如发光二极管(LED)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。终端100通过发光二极管向外发射红外光。终端100使用光电二极管检测来自附近物体的红外反射光。当检测到充分的反射光时,可以确定终端100附近有物体。当检测到不充分的反射光时,终端100可以确定终端100附近没有物体。终端100可以利用接近光传感器180G检测用户手持终端100贴近耳朵通话,以便自动熄灭屏幕达到省电的目的。接近光传感器180G也可用于皮套模式,口袋模式自动解锁与锁屏。
环境光传感器180L用于感知环境光亮度。终端100可以根据感知的环境光亮度自适应调节显示屏194亮度。环境光传感器180L也可用于拍照时自动调节白平衡。环境光传感器180L还可以与接近光传感器180G配合,检测终端100是否在口袋里,以防误触。
指纹传感器180H用于采集指纹。终端100可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
温度传感器180J用于检测温度。在一些实施例中,终端100利用温度传感器180J检测的温度,执行温度处理策略。例如,当温度传感器180J上报的温度超过阈值,终端100执行降低位于温度传感器180J附近的处理器的性能,以便降低功耗实施热保护。在另一些实施例中,当温度低于另一阈值时,终端100对电池142加热,以避免低温导致终端100异常关机。在其他一些实施例中,当温度低于又一阈值时,终端100对电池142的输出电压执行升压,以避免低温导致的异常关机。
触摸传感器180K,也称“触控面板”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于终端100的表面,与显示屏194所处的位置不同。
骨传导传感器180M可以获取振动信号。在一些实施例中,骨传导传感器180M可以获取人体声部振动骨块的振动信号。骨传导传感器180M也可以接触人体脉搏,接收血压跳动信号。在一些实施例中,骨传导传感器180M也可以设置于耳机中,结合成骨传导耳机。音频模块170可以基于所述骨传导传感器180M获取的声部振动骨块的振动信号,解析出语音信号,实现语音功能。应用处理器可以基于所述骨传导传感器180M获取的血压跳动信号解析心率信息,实现心率检测功能。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。终端100可以接收按键输入,产生与终端100的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏194不同区域的触摸操作,马达191也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和终端100的接触和分离。终端100可以支持1个或N个SIM卡接口,N为大于1的正整数。SIM卡接口195可以支持Nano SIM卡,Micro SIM卡,SIM卡等。同一个SIM卡接口195可以同时插入多张卡。所述多张卡的类型可以相同,也可以不同。SIM卡接口195也可以兼容不同类型的SIM卡。SIM卡接口195也可以兼容外部存储卡。终端100通过SIM卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,终端100采用eSIM,即:嵌入式SIM卡。eSIM卡可以嵌在终端100中,不能和终端100分离。
终端100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以分层架构的Android系统为例,示例性说明终端100的软件结构。
接下来对本申请实施例涉及的系统架构进行简单介绍。请参阅图2,图2是根据一示例性实施例示出的一种系统架构的示意图,该系统中主要包括服务器210和多个终端220。服务器210与多个终端220中的各个终端220之间建立有通信连接,作为本申请的一种示例,多个终端220之间通过服务器210实现加密通话。在一个实施例中,多个终端220中的任意一个终端220均可以为上述终端100。
基于上述图2所提供的系统架构,接下来对本申请实施例涉及的应用场景进行介绍。
在一个实施例中,假设多个终端220包括手机A、手机B和手机C,以用户A、用户B和用户C使用各自的手机进行加密通话为例进行说明,假设用户A使用的手机为手机A,用户B使用的手机为手机B,用户C使用的手机为手机C。手机A、手机B和手机C中均安装有通话应用程序,用户A、用户B和用户C可以点击各自手机中的通话应用程序的应用图标,响应于用户对通话应用程序的应用图标的触发操作,各个手机运行通话应用程序。
作为本申请的一个示例,各个手机的通话应用程序的运行界面中均可以提供有加密通话选项,譬如,加密通话选项可以包括视频加密通话选项和/或音频加密通话选项。在一个实施例中,当用户A想与用户B和用户C发起多方加密通话时,用户A可以点击手机A中的通话应用程序所提供的音频加密通话选项,响应于对音频加密通话选项的触发操作,手机A通过服务器分别向手机B和手机C发送加密通话请求,以请求用户B和用户C加入加密通话。
作为一种示例,手机B接收到加密通话请求后,可以向用户B展示通话提示消息。当手机B基于通话提示消息检测到用户B的确认加入指令时,确定用户B要加入该加密通话,此时,手机B通过服务器向手机A和手机C反馈加密通话响应,以加入加密通话。另外,手机C接收到加密通话请求后,也可以向用户C展示通话提示消息。当手机C基于通话提示消息检测到用户C的确认加入指令后,确定用户C要加入该加密通话,此时,手机C通过服务器向手机A和手机B反馈加密通话响应,以加入加密通话。
作为一种示例,当各个手机接收到其他手机反馈的加密通话响应后,建立起加密通话,如此,用户A、用户B和用户C就可以进行加密通话,示例性地,用户A、用户B和用户C之间的加密通话的展示效果如图3所示。
作为本申请的一个示例,在加密通话的过程中,还可以由用户A、用户B和用户C中的任一用户将其他成员添加至加密通话中。示例性地,请参阅图4,各个手机的加密通话的显示界面中提供有“添加成员”的选项,以用户B邀请新用户D和新用户E为例,用户B可以触发“添加成员”选项,响应于用户B对“添加成员”选项的触发操作,手机B通过服务器请求新用户D和新用户E加入本次的加密通话。
当然需要说明的是,在加密通话时,参与加密通话的多个用户中的任一用户均可以单独退出加密通话,且不影响其他用户继续进行加密通话,本申请实施例对此不作过多介绍。
基于上文所介绍的终端、系统架构和应用场景,接下来结合附图对本申请实施例提供的加密通话方法进行详细介绍。
请参考图5,图5是本申请提供的一种加密通话方法的示意性流程图,作为示例而非限定,该方法可以应用于第一终端中,第一终端可以为上述多个终端220中的任一个终端,第一终端中具有第一终端的第一会话密钥,以及与第一终端通话的一个或多个第二终端分别对应的第二会话密钥。一个或多个第二终端中的每个第二终端对应的第二会话密钥互不相同,譬如,假设与第一终端通话的第二终端的数量为多个,且多个第二终端包括终端B和终端C,则终端B的第二会话密钥与终端C的第二会话密钥是不相同的。该加密通话方法可以包括如下内容:
步骤501:在第一终端和一个或多个第二终端通话过程中,第一终端向服务器发送采用第一会话密钥加密的第一终端的通话数据,以及接收来自一个或多个第二终端中至少一个第二终端的加密后的通话数据。
在一个示例中,通话数据为媒体流,作为一种示例,通话数据可以是语音通话数据,也可以是视频通话数据。
也即在第一终端与一个或多个第二终端进行加密通话的过程中,当第一终端要向对端发送通话数据时,第一终端基于第一会话密钥对通话数据进行加密,得到加密后的通话数据。之后,第一终端向服务器发送加密后的通话数据,由服务器将加密后的通话数据转发给一个或者多个第二终端。
另外,第一终端接收一个或者多个第二终端中至少一个第二终端发送的加密后的通话数据,应当理解,第一终端所接收的加密后的通话数据是由至少一个第二终端加密处理后通过服务器发送给第一终端的。至少一个第二终端中每个第二终端都可以采用各自的第二会话密钥加密自己要发送的通话数据。比如,终端C可以采用终端C的第二会话密钥加密该终端C的通话数据。
如此,服务器只需要透传加密后的通话数据即可,不需要对加密后的通话数据进行解密处理,可以防止泄露通话数据,从而可以提高通话的安全性。
步骤502:第一终端采用至少一个第二终端分别对应的第二会话密钥解密至少一个第二终端的加密后的通话数据,得到至少一个第二终端的通话数据。
示例性地,假设至少一个第二终端包括终端B和终端C,则第一终端采用终端B的第二会话密钥对终端B发送的加密后的通话数据进行解密,得到终端B的通话数据,另外,第一终端采用终端C的第二会话密钥对终端C发送的加密后的通话数据进行解密,得到终端C的通话数据。
另外,对于一个或者多个第二终端中的任一第二终端来说,该任一第二终端中也包括第一会话密钥以及与第一终端进行通话的一个或多个第二终端分别对应的第二会话密钥。在加密通话过程中,在第二终端接收到第一终端发送的加密后的通话数据后,该任一第二终端采用第一会话密钥对加密后的通话数据进行解密,得到第一终端的通话数据。此外,当接收到其他第二终端发送的加密后的通话数据时,采用其他第二终端对应的第二会话密钥进行解密,得到其他第二终端的通话数据。
举例说明,本申请实施例中以第一终端为终端A,一个或多个第二终端包括终端B和终端C为例,假设终端A、终端B以及终端C作为通话小组的成员在通话,那么终端C可以通过服务器向该会话小组发送采用终端C的第二会话密钥加密该终端C的通话数据,终端A和终端B在接收到该终端C加密后的通话数据之后,都可以采用终端C的第二会话密钥解密该终端C加密后的通话数据,以得到该终端C的通话数据。故终端A和终端B处均具有终端C的第二会话密钥。当然,为了正确解密加密通话数据A(由终端A利用第一会话密钥加密的通话数据),终端B和终端C处也具有终端A的第一会话密钥。
上述第一终端、一个或多个第二终端中任一个终端如何获取对端终端的会话密钥的方式可以参考下述图6描述的第一终端获取一个或多个第二终端中任一个第二终端的第二会话密钥的方式,此处不再赘述。
另外需要说明的是,在实施中,第一终端在当前时刻可以仅发送采用第一会话密钥加密的第一终端的通话数据,也即,第一终端此刻可能只发送加密后的通话数据,而没有接收一个或多个第二终端发送的加密后的通话数据。譬如在会议中,第一终端的使用者为主讲人,一个或多个第二终端的使用者均为收听者,也即仅接收第一终端发送的加密后的通话数据,不参与发言。或者,第一终端接收一个或多个第二终端中至少一个第二终端的加密后的通话数据,以及采用至少一个第二终端对应的第二会话密钥解密至少一个第二终端的加密后的通话数据,也即第一终端仅接收,不发送。再或者,第一终端还可以即发送采用第一会话密钥加密的第一终端的通话数据,也接收一个或多个第二终端中至少一个第二终端的加密后的通话数据,以及采用至少一个第二终端对应的第二会话密钥解密至少一个第二终端的加密后的通话数据,也即第一终端即发送又接收。
在本申请实施例中第一终端中包括第一终端的第一会话密钥,以及与第一终端进行通话的一个或多个第二终端分别对应的第二会话密钥。在第一终端与一个或多个第二终端进行通话的过程中,第一终端采用第一会话密钥加密第一终端的通话数据,然后向服务器发送加密后的通话数据。另外,第一终端接收来自一个或多个第二终端中的至少一个第二终端的加密后的通话数据,第一终端采用至少一个第二终端分别对应的第二会话密钥解密至少一个第二终端的加密后的通话数据,得到至少一个第二终端的通话数据。如此,在加密通话过程中,各个终端对通话数据进行加密使用的密钥不相同,可以提高通话的安全性。
基于上述描述可知,第一终端与一个或多个第二终端通话之前,需要进行密钥协商,以相互交换会话密钥,从而获取一个或多个第二终端分别对应的第二会话密钥,以及使得一个或多个第二终端能够获取到第一会话密钥。接下来对第一终端与一个或多个第二终端的密钥协商过程进行介绍。
请参考图6,图6是本申请实施例提供的一种密钥协商方法的示意性流程图,作为示例而非限定,该方法可以应用于第一终端中,第一终端可以为上述多个终端220中的任一个终端,该方法可以包括如下部分或者全部内容:
步骤601:在密钥协商过程中,获取目标终端的公钥。
其中,目标终端为与第一终端通话的一个或者多个第二终端中的任意一个。
值得说明的是,图6以一个或多个第二终端中的目标终端为例,描述第一终端如何获取目标终端的第二会话密钥的过程,后续第一终端如何获取一个或多个第二终端中其他第二终端的第二会话密钥的过程可以参考第一终端获取目标终端的第二会话密钥的过程。
在一个实施例中,目标终端的公钥是由目标终端通过椭圆曲线迪菲-赫尔曼秘钥交换(Elliptic Curve Diffie–Hellman key Exchange,ECDH)算法生成的。
示例性地,第一终端与目标终端建立加密通话连接之前,第一终端和目标终端各自通过ECDH算法生成公私钥对,也即,第一终端通过ECDH算法生成公私钥对,目标终端通过ECDH算法生成公私钥对。在密钥协商过程中,第一终端获取目标终端的公钥,另外,目标终端获取第一终端的公钥。
作为本申请的一个示例,当第一终端为主叫终端时,第一终端获取目标终端的公钥的具体实现可以包括:第一终端向服务器发送加密通话请求,加密通话请求用于请求建立加密通话连接,接收来自服务器的加密通话响应,加密通话响应中携带目标终端的公钥。
在实施中,第一终端向服务器发送加密通话请求。服务器接收加密通话请求,之后,将加密通话请求转发给目标终端。目标终端接收到加密通话请求后,向服务器发送加密通话响应,并在加密通话响应中携带目标终端的公钥。服务器转发加密通话响应给第一终端,如此,第一终端即可从加密通话响应中获取目标终端的公钥。
另外,在一个示例中,加密通话请求中携带第一终端的公钥,也即第一终端发送第一终端的公钥。如此,服务器将加密通话请求发送给目标终端后,目标终端即可获取到第一终端的公钥。
如此,在建立加密通话连接的过程中,第一终端与目标终端之间通过通信信令(即加密通话请求和加密通话响应)将自身的公钥发送给对端,以及获取对端的公钥,避免需要增加额外的信令,从而可以节省信令开销。
作为本申请的另一个示例,第一终端为主叫终端,第一终端获取目标终端的公钥的具体实现可以包括:第一终端向服务器发送加密通话请求,加密通话请求用于请求建立加密通话连接。在接收到来自服务器的加密通话响应后,向服务器发送第一查询请求,第一查询请求用于请求服务器反馈目标终端的公钥。接收服务器基于第一查询请求反馈的第一查询响应,第一查询响应中携带目标终端的公钥。
在一个实施例中,第一终端在接收到多个第二终端中的所有第二终端发送的加密通话响应后,向服务器发送第一查询请求。也即是,第一终端可以在确定多个第二终端中的每个第二终端都反馈了加密通话响应后,执行查询操作。
在另一个实施例中,第一终端在接收到多个第二终端中的预设数量个第二终端发送的加密通话响应后,向服务器发送第一查询请求,其中,预设数量可以根据实际需求进行设置。也即是,第一终端可以在确定多个第二终端中一定数量的第二终端反馈了加密通话响应后,执行查询操作。
在实施中,第一终端向服务器发送加密通话请求,另外,第一终端将自身的公钥上报给服务器。服务器可以在本地存储第一终端的公钥,然后将加密通话请求发送给多个第二终端中的各个第二终端。对于多个第二终端中的任一个第二终端,在接收到加密通话请求后,向服务器反馈加密通话响应,并将第二终端的公钥上报给服务器。服务器可以存储各个第二终端的公钥,并广播各个第二终端发送的加密通话响应。当第一终端接收到多个第二终端发送的加密通话响应后,可以确定多个第二终端已将自身的公钥上报给服务器,此时,第一终端可以向服务器发送第一查询请求,以指示服务器反馈多个第二终端的公钥。
另外,在一个示例中,对于多个第二终端中的任一个第二终端来说,在接收到第一终端的加密通话请求,以及接收到多个第二终端中除任一个第二终端之外的其他第二终端的加密通话响应后,可以从服务器中查询第一终端的公钥和其他第二终端的公钥。
如此,在建立通话过程中,第一终端在确定多个第二终端已上传自身的公钥至服务器中之后,可以一次性从服务器中获取多个第二终端的公钥。
当然不难理解,若第一终端为被叫终端,目标终端为主叫终端,则第一终端可以从加密通话请求中获取目标终端的公钥,或者,第一终端也可以在接收到加密通话请求后从服务器中查询目标终端的公钥,这里不再详细赘述。
步骤602:基于第一终端的私钥与目标终端的公钥,通过ECDH算法生成第一共享密钥,第一共享密钥为第一终端与目标终端之间使用的共享密钥。
如前文所述,第一终端的私钥是由第一终端在与目标终端建立加密通话连接之前通过ECDH算法生成的。也即第一终端基于自身的私钥和目标终端的公钥,通过ECDH算法生成第一共享密钥,同理,目标终端在获取到第一终端公钥后,基于第一终端的公钥和目标终端的私钥,通过ECDH算法即可生成目标终端的第二共享密钥。该第二共享密钥为第一终端和目标终端之间使用的共享密钥。从原理上来说,第二共享密钥与第一共享密钥的内容相同,也即第二共享密钥与第一共享密钥为同一个值。
需要说明的是,在本申请实施例中,第一终端所使用的第一共享密钥是由第一终端确定的,目标终端所使用的第二共享密钥是由目标终端确定的。另外,对于第一终端与其他第二终端之间的共享密钥、以及其他第二终端之间的共享密钥亦是如此,也即,A使用的共享密钥由A确定。下文对此不再重复赘述。
另外,当第二终端的数量为多个时,第一终端确定第一终端与多个第二终端中的每个第二终端之间的第一共享密钥。譬如,假设多个第二终端包括终端B和终端C,第一终端基于第一终端的私钥和终端B的公钥确定第一终端与终端B之间的第一共享密钥,并且,第一终端基于第一终端的私钥和终端C的公钥确定第一终端与终端C之间的第一共享密钥。换言之,第一终端中具有与不同第二终端之间的第一共享密钥。同理,对于终端B来说,基于第一终端的公钥和终端B的私钥确定第一终端与终端B之间的第二共享密钥。以及基于终端C的公钥和终端B的私钥确定终端B和终端C之间的共享密钥。对于终端C来说,基于第一终端的公钥和终端C的私钥确定第一终端与终端C之间的第二共享密钥,以及基于终端C的私钥和终端B的公钥确定终端B与终端C之间的共享密钥。
需要说明的是,上述步骤601至步骤602是根据一示例性实施例提供的一种确定第一共享密钥的方法,也即,在第一终端与目标终端进行密钥协商的过程中,第一终端确定第一共享密钥。之后,可以使用第一共享密钥确定第一终端与目标终端之间的协商密钥,具体请参见如下内容。
步骤603:生成第一会话密钥,第一会话密钥用于在加密通话时对第一终端的通话数据进行加密。
值得说明的是,任一个终端A的第一会话密钥可以用于终端A加密终端A的通话数据,而终端B可以利用终端A的第一会话密钥解密终端A利用第一会话密钥加密后的通话数据。
在一个实施例中,第一终端基于第一共享密钥确定第一会话密钥。譬如,第一终端可以生成一个随机数,然后,基于第一共享密钥和该随机数生成第一会话密钥,比如,可以将该随机数添加在第一共享密钥的末尾,得到第一会话密钥。
另外,当第二终端的数量为多个,第一终端可以基于第一终端与任一个第二终端之间的第一共享密钥生成第一会话密钥。
当然,在另一实施例中,第一终端还可以采用其他方式生成第一会话密钥,譬如,还可以生成一个随机数,将该随机数作为第一会话密钥。
步骤604:基于第一共享密钥对第一会话密钥进行加密,得到第一协商密钥,第一协商密钥是第一终端与目标终端之间的协商密钥。
不难理解,第一协商密钥是基于第一共享密钥对第一会话密钥进行加密得到,第一共享密钥为第一终端与目标终端之间的共享密钥。
步骤605:将第一协商密钥发送至服务器,以供目标终端从服务器中获取第一协商密钥。
由于第一协商密钥是基于第一共享密钥对第一会话密钥加密得到的,且目标终端可以通过ECDH算法确定第二共享密钥,且第二共享密钥与第一共享密钥相同,所以,目标终端从服务器中获取第一协商密钥后,即可基于第二共享密钥对第一协商密钥进行解密,得到第一会话密钥,之后,目标终端可以在本地存储第一会话密钥。
如此,在第一终端与目标终端进行加密通话的过程中,目标终端接收到经服务器转发的来自第一终端的加密后的通话数据后,目标终端便可使用本地存储的第一会话密钥对加密后的通话数据进行解密,得到第一终端的通话数据。
步骤606:从服务器中获取第二协商密钥,第二协商密钥是由目标终端基于第一共享密钥对第二会话密钥进行加密得到的。
作为一种示例,第一终端可以向服务器发送第二查询请求,第二查询请求用于请求目标终端上传的第二协商密钥。服务器接收到第二查询请求后,向第一终端发送第二查询响应,第二查询响应中携带第二协商密钥。
与第一终端的执行方式类似,目标终端在确定第一终端与目标终端之间的第二共享密钥(也即第一共享密钥)后,可以生成第二会话密钥,第二会话密钥用于第一终端在加密通话时对目标终端的通话数据进行解密。然后,基于第二共享密钥对第二会话密钥进行加密,得到第二协商密钥,目标终端将第二协商密钥发送给服务器,以供第一终端从服务器中获取第二协商密钥。因此,第一终端可以从服务器中获取第二协商密钥。
步骤607:第一终端基于第一共享密钥对第二协商密钥进行解密,得到第二会话密钥。
由于第二协商密钥是目标终端基于第二共享密钥对第二会话密钥进行加密得到的,且第二共享密钥与第一共享密钥相同,所以第一终端使用第一共享密钥对第二协商密钥进行解密,即可得到第二会话密钥。如此,第一终端在与目标终端进行加密通话时,当接收到目标终端发送的加密后的通话数据时,即可使用第二会话密钥对加密后的通话数据进行解密,得到目标终端的通话数据。
在本申请实施例中,第一终端中包括第一终端的第一会话密钥,以及与第一终端通话的一个或多个目标终端分别对应的第二会话密钥。在第一终端与一个或多个目标终端通话的过程中,第一终端采用第一会话密钥加密第一终端的通话数据,并向服务器发送加密后的通话数据。另外,第一终端接收来自一个或多个目标终端中的至少一个目标终端的加密后的通话数据,第一终端采用至少一个目标终端分别对应的第二会话密钥解密至少一个目标终端的加密后的通话数据,得到至少一个目标终端的通话数据。如此,在加密通话过程中,各个终端对通话数据进行加密使用的密钥不相同,可以提高通话的安全性。
另外,本申请实施例中避免需要服务器对加密后的通话数据进行解密处理,服务器只需要透传加密后的通话数据即可,可以防止泄露通话数据,从而可以提高通话的安全性。
在一个实施例中,请参阅图7,当第二终端的数量为多个时,第一终端与每个第二终端都确定一个协商密钥,且与每个第二终端之间确定的协商密钥均不相同。并将所确定的协商密钥均上传至服务器中,以供多个第二终端获取。对于多个第二终端中的任一个第二终端,确定与第一终端之间的协商密钥,以及确定与其他第二终端之间的协商密钥,并将所确定的协商密钥均上传至服务器中,以供第一终端和其他第二终端获取。也即,多个第二终端之间的协商密钥均不相同。如此,各个终端基于不同的协商密钥通过服务器实现加密通话。
为了便于理解,接下来以具体示例对该种情况进行详细介绍,请参考图8,这里以第一终端为终端A,以及多个第二终端包括终端B和终端C为例进行说明:
步骤801:在密钥协商的过程中,获取多个第二终端中每个第二终端的公钥。
在终端A与多个第二终端建立加密通话连接之前,终端A通过ECDH算法在本地生成公私钥对,且多个第二终端中的每个第二终端也通过ECDH算法在本地生成公私钥对,也即终端B通过ECDH算法在本地生成公私钥对,终端C通过ECDH算法在本地生成公私钥对。在终端A与多个第二终端密钥协商过程中,终端A获取终端B的公钥,以及获取终端C的公钥。
在一种可能的实现方式中,若终端A为主叫终端,终端A获取终端B的公钥以及获取终端C的公钥的具体实现可以包括:向服务器发送加密通话请求。接收来自服务器转发的多个第二终端的加密通话响应,每个第二终端发送的加密通话响应中携带对应的第二终端的公钥。
为了便于区分各个第二终端的加密通话响应,可以在加密通话响应中携带第二终端的身份标识,譬如,终端B发送的加密通话响应中携带身份标识B,终端C发送的加密通话响应中携带身份标识C。
终端A将加密通话请求发送给服务器。服务器接收加密通话请求后,将加密通话请求转发给终端B和终端C。终端B接收加密通话请求,在确定加入加密通话后,向服务器返回加密通话响应,终端B发送的加密通话响应中携带终端B的公钥。服务器接收终端B发送的加密通话响应后转发给终端A和终端C,如此,终端A就可以获取到终端B的公钥。同理,终端C接收加密通话请求,在确定加入加密通话后,向服务器返回加密通话响应,终端C发送的加密通话响应中携带终端C的公钥。服务器接收终端C发送的加密通话响应后转发给终端A和终端B,如此,终端A就可以获取到终端C的公钥。
另外,终端B获取终端A的公钥和终端C的公钥,终端C获取终端A的公钥和终端B的公钥。以终端B为例,当接收到加密通话请求时,加密通话请求中携带终端A的公钥,如此,终端B可以从加密通话请求中获取终端A的公钥。另外,终端B获取服务器转发的终端C的加密通话响应,如此,终端B就可以从终端C发送的加密通话响应中获取到终端C的公钥。终端C获取终端A的公钥以及获取终端B的公钥的方式与此类似,这里不再重复赘述。
在另一种可能的实现方式中,若终端A为主叫终端,终端A获取多个第二终端中的每个第二终端的公钥的具体实现还可以包括:向服务器发送加密通话请求,在接收到来自服务器转发的多个第二终端的加密通话响应后,向服务器发送第一查询请求,第一查询请求用于请求服务器反馈多个第二终端的公钥。接收服务器基于第一查询请求反馈的第一查询响应,第一查询响应中携带多个第二终端的公钥。
当接收到终端B和终端C发送的加密通话响应时,说明已得到终端B和终端C的响应,在该种情况下,可以确定终端B已将自身的公钥存储至服务器中,以及终端C也已将自身的公钥存储至服务器中,此时,终端A从服务器中查询终端B的公钥和终端C的公钥,也即是,终端A从服务器中一次性获取终端B的公钥和终端C的公钥。
另外,对于终端B来说,也可以一次性从服务器中获取终端A的公钥和终端C的公钥,在实施中,终端B在接收到终端A的加密通话请求以及接收到终端C的加密通话响应后,从服务器中查询终端A的公钥和终端C的公钥。同理,对于终端C来说,也按照同样的方式,从服务器中一次性获取终端A的公钥和终端B的公钥。
步骤802:基于终端A的私钥和终端B的公钥通过ECDH算法生成终端A与终端B的共享密钥,以及,基于终端A的私钥和终端C的公钥,通过ECDH算法生成终端A与终端C的共享密钥。
其中,终端A的私钥是由终端A通过ECDH算法生成的。
示例性地,终端A基于终端A的私钥和终端B的公钥通过ECDH算法生成终端A与终端B之间的共享密钥,比如为AB,并且,终端A基于终端A的私钥和终端C的公钥ECDH算法生成终端A与终端C之间的共享密钥,比如为AC。
另外,对于终端B来说,基于终端B的私钥和终端A的公钥通过ECDH算法生成AB,以及基于终端B的私钥和终端C的公钥通过ECDH算法生成终端B与终端C之间的共享密钥,比如为BC。对于终端C来说,基于终端A的公钥和终端C的私钥,通过ECDH算法生成AC,以及基于终端B的公钥和终端C的私钥,通过ECDH算法生成BC。
步骤803:生成第一会话密钥。
在一个示例中,终端A可以基于终端A与任一个第二终端之间的共享密钥生成第一会话密钥。譬如,可以基于AB生成第一会话密钥,或者,也可以基于AC生成第一会话密钥,假设为Ta。
在另一实施例中,第一会话密钥还可以采用其他方式生成,譬如,终端A可以生成一个随机数,将随机数确定为第一会话密钥,本申请实施例对此不作限定。
终端B生成一个会话密钥,假设终端B生成的会话密钥为Tb,Tb用于对终端B在加密通话时的通话数据进行加密或解密。终端C也会生成一个会话密钥,假设终端C生成的会话密钥为Tc,Tc用于对终端C在加密通话时的通话数据进行加密或解密。
步骤804:基于AB对第一会话密钥进行加密,以及基于AC对第一会话密钥进行加密。
譬如,终端A基于AB对第一会话密钥进行加密,得到终端A与终端B之间的协商密钥,假设为K1AB,终端A基于AC对第一会话密钥进行加密,得到终端A与终端C之间的协商密钥,假设为K1AC。
另外,终端B基于AB对所生成的会话密钥Tb进行加密,得到终端B与终端A的协商密钥K2AB,以及基于BC对所生成的会话密钥Tb进行加密,得到终端B与终端C之间的协商密钥K1BC。终端C基于AC对所生成的会话密钥Tc进行加密,得到终端A与终端C的协商密钥K2AC,以及基于BC对所生成的会话密钥Tc进行加密,得到终端B与终端C之间的协商密钥K2BC。
步骤805:将得到的多个协商密钥发送至服务器,以供多个第二终端从服务器中获取。
示例性地,终端A将K1AB、K1AC均发送给服务器,服务器接收K1AB和K1AC后,在本地存储K1AB和K1AC。另外,终端B将K2AB和K1BC发送至服务器进行存储,终端C将K2AC和K2BC发送至服务器进行存储。
步骤806:从服务器中获取与其他终端之间的协商密钥。
示例性地,终端A可以向服务器发送第二查询请求,第二查询请求用于指示服务器反馈终端A与其他终端之间的协商密钥。接收服务器发送的第二查询响应,第二查询响应中携带待查询的协商密钥。示例性地,服务器在第二查询响应中携带K2AB和K2AC。
另外,请参考图9,终端B从服务器中查询K1AB和K2BC,终端C从服务器中查询K1AC和K1BC。
步骤807:基于AB对K2AB进行解密,以及基于AC对K2AC进行解密。
如此,基于AB对K2AB进行解密后,可以得到用于对终端B在加密通话时的通话数据进行加密和解密的会话密钥Tb。如此,在后续加密通话时若接收到终端B发送的加密后的通话数据,即可基于会话密钥Tb进行解密处理,得到终端B发送的通话数据。
另外,基于AC对K2AC进行解密后,可以得到用于对终端C在加密通话时的通话数据进行加密或解密的会话密钥Tc。如此,在后续加密通话时若接收到终端C发送的加密后的通话数据,即可基于会话密钥Tc进行解密处理,得到终端C发送的通话数据。
请参考图9,对于终端B来说,基于AB对K1AB进行解密,得到会话密钥Ta,如此,在后续加密通话时,若接收到终端A发送的加密后的通话数据,即可基于会话密钥Ta进行解密处理得到终端A发送的通话数据。另外,终端B基于BC对K2BC进行解密,得到会话密钥Tc,如此,在后续加密通话时,若接收到终端C发送的加密后的通话数据,即可基于会话密钥Tc进行解密处理,得到终端C发送的通话数据。
请参考图9,对于终端C来说,基于AC对K1AC进行解密,得到会话密钥Ta,如此,在后续加密通话时,若接收到终端A发送的加密后的通话数据,即可基于会话密钥Ta进行解密处理得到终端A发送的通话数据。另外,终端C基于BC对K1BC进行解密,得到会话密钥Tb,如此,在后续加密通话时,若接收到终端B发送的加密后的通话数据,即可基于会话密钥Tb进行解密处理,得到终端B发送的通话数据。
在本申请实施例中,在第一终端与一个或多个第二终端中的目标终端进行密钥协商的过程中,确定第一终端与目标终端之间的第一协商密钥,第一协商密钥是基于第一终端与目标终端之间的共享密钥对第一会话密钥进行加密得到的,第一会话密钥用于对第一终端的通话数据进行加密或解密也即,第一终端后续在加密通话时使用第一会话密钥对通话数据进行加密。第一终端将第一协商密钥发送至服务器,以便于目标终端从服务器中获取。另外,第一终端从服务器中获取目标终端确定的第二协商密钥,第二协商密钥是目标终端基于第二共享密钥对第二会话密钥进行加密得到的,第二会话密钥用于对目标终端的通话数据进行加密或解密,也即,目标终端后续在加密通话时使用第二会话密钥对通话数据进行加密。如此,在加密通话过程中,各个终端对通话数据进行加密使用的密钥不相同,可以提高通话的安全性。
另外,第一终端、目标终端生成会话密钥后,不需要跟其他设备交互,只跟服务器进行交互,可以提升通话性能。
上述步骤实现了本申请实施例提供的加密通话方法。在另一实施例中,在加密通话时,还可能有第三终端请求加入该加密通话。接下来对在加密通话时第三终端请求加入加密通话为例,对加密通话方法进行介绍,请参考图10,图10是根据一示例性实施例示出的一种加密通话方法的流程图,该方法可以包括如下部分或者全部内容:
步骤1001至步骤1004的具体实现可以参见上文图6所示实施例中的步骤601至步骤607,这里不再重复赘述。
步骤1005:第一终端与目标终端进行加密通话。
示例性地,第一终端使用第一会话密钥对通话数据进行加密,然后将加密后的通话数据发送给服务器,由服务器转发给目标终端。对于目标终端来说,即可使用第一会话密钥对加密后的通话数据进行解密,得到第一终端发送的通话数据。
另外,当第一终端接收到目标终端通过服务器发送的加密后的通话数据时,基于第二会话密钥对所接收的加密后的通话数据进行解密,得到目标终端发送的通话数据。
值得一提的是,服务器只需要透传加密后的通话数据,不需要对加密后的通话数据进行解密处理,如此可以避免服务器泄露通话数据,从而可以提高通话数据的安全性。
步骤1006:若第三终端请求加入加密通话,则确定第三共享密钥,第三共享密钥为第一终端与第三终端之间的共享密钥。
在一个实施例中,可以由第一终端或目标终端将第三终端加入加密通话。譬如,目标终端可以向服务器发送添加请求,以请求服务器呼叫第三终端。在一个实施例中,服务器向第三终端发送加密通话请求,第三终端接收到加密通话请求后,可以向服务器发送加密通话响应,以请求加入加密通话。服务器接收到第三终端的加密通话响应后,广播第三终端发送的加密通话响应。作为一种示例,第三终端发送的加密通话响应中可以携带第三终端的公钥。
如此,对于第一终端来说,就可以从服务器中获取第三终端的公钥,或者,可以通过接收第三终端发送的加密通话响应获取到第三终端的公钥。之后,第一终端可以基于第一终端的私钥和第三终端的公钥,通过ECDH算法生成第三共享密钥。
同理,目标终端也可以从服务器中获取第三终端的公钥,或者通过接收第三终端发送的加密通话响应获取到第三终端的公钥。之后,目标终端可以基于目标终端的私钥和第三终端的公钥,通过ECDH算法生成目标终端与第三终端之间的共享密钥。
另外,对于第三终端来说,可以从服务器中获取第一终端的公钥和目标终端的公钥,之后,第三终端基于第三终端的私钥和第一终端的公钥生成第三终端与第一终端之间使用的共享密钥(该共享密钥与第三共享密钥相同)。
步骤1007:基于第三共享密钥对第一会话密钥进行加密,得到第三协商密钥,第三协商密钥为第一终端与第三终端之间的协商密钥。
为了便于第三终端能够获知第一会话密钥,第一终端基于第三共享密钥对第一会话密钥进行加密,以得到第一终端与第三终端之间的协商密钥。第三终端基于自身所确定的第三终端与第一终端之间使用的共享密钥对第三协商密钥进行解密后,可以得到第一会话密钥。
对于目标终端来说,目标终端可以基于目标终端与第三终端之间的共享密钥对第二会话密钥进行加密,得到第五协商密钥,第五协商密钥为目标终端与第三终端之间的协商密钥。
步骤1008:将第三协商密钥发送至服务器,以供第三终端从服务器中获取第三协商密钥。
第一终端将第三协商密钥发送给服务器后,后续第三终端可以从服务器中获取第三协商密钥。
另外,目标终端将第五协商密钥发送至服务器,以供第三终端从服务器中获取第五协商密钥。
步骤1009:从服务器中获取第四协商密钥,第四协商密钥为第一终端与第三终端之间的协商密钥,且第四协商密钥是由第三终端基于第三共享密钥对第三会话密钥进行加密得到的,第三会话密钥用于在加密通话时对第三终端的通话数据进行加密或解密。
也即,第三终端基于自身所确定的第三终端与第一终端之间使用的共享密钥对第三会话密钥进行加密,得到第四协商密钥,之后,第三终端可以将第四协商密钥发送至服务器。如此,第一终端即可从服务器中获取第四协商密钥。
另外,第三终端基于第三终端与目标终端之间的共享密钥对第三会话密钥进行加密,得到第六协商密钥,第六协商密钥为第三终端与目标终端之间的协商密钥。之后,第三终端将第六协商密钥发送至服务器。如此,目标终端即可从服务器中获取第六协商密钥。
步骤1010:基于第三共享密钥对第四协商密钥进行解密,得到第三会话密钥。
第一终端得到第三会话密钥后,在加密通话时,若接收到第三终端通过服务器发送的加密后的通话数据,可以使用第三会话密钥对所接收的加密后的通话数据进行解密,得到第三终端发送的通话数据。
对于目标终端来说,可以使用目标终端与第三终端之间使用的共享密钥对第六协商密钥进行解密,得到第三会话密钥。如此,在加密通话时,若接收到第三终端通过服务器发送的加密后的通话数据,可以使用第三会话密钥对所接收的加密后的通话数据进行解密,得到第三终端发送的通话数据。
对于第三终端来说,第三终端从服务器中获取第三协商密钥和第五协商密钥,之后,可以基于第一终端与第三终端之间使用的共享密钥对第三协商密钥进行解密,得到第一会话密钥,如此,在加密通话时,若第三终端接收到第一终端通过服务器发送的加密后的通话数据,可以使用第一会话密钥对所接收的加密后的通话数据进行解密,得到第一终端发送的通话数据。另外,第三终端基于目标终端与第三终端之间的共享密钥对第五协商密钥进行解密,得到第二会话密钥,如此,在加密通话时,若第三终端接收到目标终端通过服务器发送的加密后的通话数据,可以使用第二会话密钥对所接收的加密后的通话数据进行解密,得到目标终端发送的通话数据。
在本申请实施例中,在第一终端与目标终端进行加密通话的过程中,若第三终端请求加入加密通话,则第一终端确定与第三终端之间的第三协商密钥,并上传至服务器,以供第三终端获取第三协商密钥,从而使得第三终端确定用于对第一终端的通话数据进行加密或解密的第一会话密钥。另外,第一终端从服务器中获取第三终端确定的第四协商密钥,以通过对第四协商密钥解密来确定用于对第三终端的通话数据进行加密或解密的第三会话密钥。也即,在新增第三终端后,第三终端和其他终端之间使用的会话密钥也都互不相同,可以提高加密通话的安全性。
请参考图11,图11是根据另一示例性实施例示出的一种加密通话方法流程示意图,该方法可以应用于第一终端中,作为示例而非限定,该方法可以包括如下部分或者全部内容:
步骤1101:在密钥协商过程中,从服务器中获取服务器最新存储的目标终端的公钥和目标终端的公私钥对的密钥版本号。
作为本申请的一个示例,在每次加密通话结束后,各个终端可以在本地通过ECDH算法重新生成公私钥对,并确定重新生成的公私钥对的版本号。之后,各个终端可以在本地存储重新生成的公私钥对以及所确定的密钥版本号,并将重新生成的公私钥对中的公钥和所确定的密钥版本号发送至服务器进行存储。
如此以来,在第一终端与目标终端进行密钥协商过程中,第一终端可以从服务器中查询最新存储的目标终端的公钥和对应的密钥版本号。不难理解,服务器中最新存储的目标终端的公钥和对应的密钥版本号可能是上一次通话结束后目标终端上传的。
步骤1102:向目标终端发送版本验证请求,版本验证请求中包括从服务器中最新获取到的密钥版本号,版本验证请求用于请求验证版本验证请求中携带的密钥版本号与目标终端本地存储的密钥版本号是否一致。
在一个实施例中,版本校验请求可以为加密通话请求。也即,第一终端在向目标终端发送加密通话请求时,可以在加密通话请求中携带从服务器中最新获取到的密钥版本号。作为示例而非限定,加密通话请求中还可以携带第一终端的公钥。
对于目标终端来说,在接收到版本验证请求后,对版本验证请求进行解析,得到其中携带的密钥版本号。作为示例而非限定,对版本验证请求进行解析后还可以得到第一终端的公钥。譬如,当版本验证请求为加密通话请求时,目标终端对加密通话请求进行解析,加密通话请求中携带的密钥版本号和第一终端的公钥。
之后,目标终端可以将本地存储的密钥版本号与版本验证请求中携带的密钥版本号进行比较。若本地存储的密钥版本号与版本验证请求中携带的密钥版本号相同,则返回验证成功响应,譬如,验证成功响应为加密通话成功响应;反之,若本地存储的密钥版本号与版本验证请求中携带的密钥版本号不相同,则返回验证失败响应,譬如,验证失败响应为加密通话失败响应。
步骤1103:若接收到目标终端发送的验证失败响应,则重新返回执行从服务器中获取服务器最新存储的目标终端的公钥和目标终端的公私钥对的密钥版本号的操作,直至接收到目标终端发送的验证成功响应。
若第一终端接收到目标终端发送的验证失败响应,说明目标终端本地存储的密钥版本号与第一终端从服务器中最新获取的密钥版本号不一致。举例来说,若目标终端在上一次加密通话结束后还未成功上传重新生成的公私钥对和密钥版本号,第一终端就从服务器中查询目标终端的公钥和对应的密钥版本号,导致所获取的公钥和密钥版本号可能是目标终端在更早时期上传的,在该种情况下,就会导致目标终端验证失败,从而返回验证失败响应。
为了能够与目标终端的密钥版本号对齐,第一终端重新从服务器中获取服务器最新存储的目标终端的公钥和目标终端的公私钥对的密钥版本号,此时,目标终端可能已经成功上传在上一次加密通话结束后重新生成的公钥和对应的密钥版本号。所以,当第一终端再次向目标终端发送携带重新获取的密钥版本号的版本验证请求后,目标终端可能确定验证成功。当目标终端验证成功后,返回验证成功响应。
作为本申请的一个示例,由于第一终端在第一次发送版本验证请求时已经将第一终端的公钥传递给目标终端,所以,当第一终端在后续重新发送版本验证请求时,可以不再携带第一终端的公钥,如此可以在一定程度上节省信息传输量。
另外,当第一终端接收到目标终端发送的验证失败响应时,可以将所获取的目标终端的公钥删除,然后重新从服务器中获取服务器最新存储的目标终端的公钥和目标终端的公私钥对的密钥版本号。
值得说明的是,上述步骤1102至步骤1103用于确定最新获取的密钥版本号与目标终端本地存储的密钥版本号是否一致,在不一致的情况下,重新执行从服务器中获取服务器最新存储的目标终端的公钥和目标终端的公私钥对的密钥版本号的操作,直到确定获取的密钥版本号与目标终端本地存储的密钥版本号一致。
步骤1104:若接收到目标终端发送的验证成功响应,则基于第一终端的私钥和从服务器最新获取到的目标终端的公钥,通过ECDH算法生成第一共享密钥,第一终端的私钥是由第一终端通过ECDH算法生成的。
当接收到目标终端发送的验证成功响应时,说明已确定从服务器中最新获取的密钥版本号与目标终端本地存储的密钥版本号一致。此时,第一终端和目标终端可以基于同一版本的公钥和私钥,确定第一共享密钥。也即,第一终端基于第一终端的私钥和最新获取到的目标终端的公钥,通过ECDH算法生成第一共享密钥。
当然,对于目标终端来说,在验证成功后,可以基于第一终端的公钥和目标终端的私钥,通过ECDH算法生成第二共享密钥。当然,这里所述的目标终端的私钥是指与第一终端版本相同的私钥。
此外,当与第一终端建立加密通话连接的第二终端的数量为多个时,第一终端从服务器中获取最新存储的多个第二终端中的每个第二终端的公钥和每个第二终端的公私钥对的密钥版本号。第一终端可以分别向每个第二终端发送版本验证请求,版本验证请求中携带每个第二终端的公钥和每个第二终端的公私钥对的密钥版本号。
在一个实施例中,当接收到多个第二终端中的至少一个第二终端的验证成功响应时,针对至少一个第二终端中的任一第二终端,第一终端基于第一终端的私钥和该任一第二终端的公钥,确定第一终端与该任一第二终端之间的共享密钥。
在另一个实施例中,当接收到多个第二终端中的所有第二终端的验证成功响应时,针对多个第二终端中的任一第二终端,第一终端基于第一终端的私钥和该任一第二终端的公钥,确定第一终端与该任一第二终端之间的第一共享密钥。
步骤1105:生成第一会话密钥。
步骤1106:基于第一共享密钥对第一会话密钥进行加密,得到第一协商密钥。
步骤1107:将第一协商密钥发送至服务器,以供目标终端从服务器中获取第一协商密钥。
步骤1108:从服务器中获取目标终端的第二协商密钥,第二协商密钥是由目标终端基于第一共享密钥对第二会话密钥进行加密得到的,第二会话密钥用于在加密通话时对目标终端的通话数据进行加密或解密。
步骤1109:基于第一共享密钥对第二协商密钥进行解密,得到目标终端的第二会话密钥。
需要说明的是,步骤1105至步骤1109的具体实现可以参见前文图6所示实施例中的步骤603至步骤607,这里不再重复赘述。
另外,在与目标终端的加密通话结束后,第一终端重新生成公私钥对,确定重新生成的公私钥对的密钥版本号,在本地存储重新生成的公私钥对以及所确定的密钥版本号,并将重新生成的公私钥对中的公钥和所确定的密钥版本号发送至服务器进行存储。
也即,第一终端与目标终端完成本次的加密通话后,各自在本地重新生成公私钥对并确定重新生成的公私钥对的密钥版本号,然后将重新生成的公钥和所确定的密钥版本号更新至服务器中,以便于第一终端与目标终端下一次进行加密通话时,可以从服务器中获取最新存储的公钥和密钥版本号。
在本申请实施例中,在第一终端与目标终端密钥协商过程中,当确定第一共享密钥时,第一终端从服务器中获取最新存储的目标终端的公钥和目标终端的公私钥对的密钥版本号。并基于所获取的密钥版本号发送版本验证请求,以请求目标终端进行版本验证。若目标终端验证失败,则第一终端返回至获取服务器中最新存储的目标终端的公钥和对应的密钥版本号的操作。若目标终端验证通过,说明第一终端与目标终端的密钥版本号一致,所以第一终端基于最新获取的目标终端的公钥,确定第一共享密钥,并基于第一共享密钥确定第一协商密钥。之后上传第一协商密钥至服务器,以及从服务器获取第二协商密钥。如此,可以使得第一终端和目标终端基于相同版本的公钥进行密钥协商,从而提高密钥协商的一致性和有效性。
需要说明的是,上述各个实施例之间可以结合实现,譬如,图10所示实施例与图11所示实施例可以结合实现,即在第三终端加入加密通话后,当本次加密通话结束,则第一终端、目标终端和第三终端执行更新公私钥对等操作。
应理解,上述实施例中各步骤的序号并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
对应于上文实施例的加密通话方法,图12是本申请实施例提供的一种加密通话装置的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。
参照图12,该装置应用于第一终端,所述第一终端中具有所述第一终端的第一会话密钥,以及与所述第一终端通话的一个或多个第二终端分别对应的第二会话密钥,所述装置包括:
通话模块1210,用于在所述第一终端和所述一个或多个第二终端进行加密通话过程中,向服务器发送采用所述第一会话密钥加密的所述第一终端的通话数据;和/或,
解密模块1220,用于接收来自所述一个或多个第二终端中至少一个第二终端的加密后的通话数据,以及采用所述至少一个第二终端对应的第二会话密钥解密所述至少一个第二终端的加密后的通话数据,得到所述至少一个第二终端的通话数据。
作为本申请的一个示例,所述通话模块1210还用于:
在密钥协商的过程中,确定第一共享密钥以及所述第一会话密钥,所述第一共享密钥为所述第一终端和目标终端之间使用的共享密钥,所述目标终端为所述一个或多个第二终端中的任一个;
向服务器发送第一协商密钥,所述第一协商密钥由所述第一终端根据所述第一共享密钥加密所述第一会话密钥得到;
从服务器获取第二协商密钥,所述第二协商密钥是由所述目标终端基于所述第一共享密钥加密第二会话密钥得到的,所述第二会话密钥用于在加密通话过程中解密所述目标终端的通话数据;
基于所述第一共享密钥解密所述第二协商密钥,得到所述第二会话密钥。
作为本申请的一个示例,所述通话模块1210用于:
获取所述目标终端的公钥;
基于所述第一终端的私钥与所述目标终端的公钥,通过椭圆曲线迪菲-赫尔曼秘钥交换ECDH算法生成所述第一共享密钥,所述第一终端的私钥是由所述第一终端通过所述ECDH算法生成的。
作为本申请的一个示例,所述通话模块1210用于:
向所述服务器发送加密通话请求,所述加密通话请求用于请求建立加密通话连接;
接收来自所述服务器的加密通话响应,所述加密通话响应中携带所述目标终端的公钥。
作为本申请的一个示例,所述通话模块1210用于:
向所述服务器发送加密通话请求,所述加密通话请求用于请求建立加密通话连接;
在接收到来自所述服务器的加密通话响应后,向所述服务器发送第一查询请求,所述第一查询请求用于请求所述目标终端的公钥;
接收所述服务器基于所述第一查询请求反馈的第一查询响应,所述第一查询响应中携带所述目标终端的公钥。
作为本申请的一个示例,所述第一终端为主叫终端,所述通话模块1210用于:
从所述服务器中获取所述服务器最新存储的所述目标终端的公钥和所述目标终端的公私钥对的密钥版本号;
在确定最新获取的密钥版本号与所述目标终端本地存储的密钥版本号不一致的情况下,则重新执行所述从所述服务器中获取所述服务器最新存储的所述目标终端的公钥和所述目标终端的公私钥对的密钥版本号的操作,直至确定最新获取的密钥版本号与所述目标终端本地存储的密钥版本号一致;
在确定最新获取的密钥版本号与所述目标终端本地存储的密钥版本号一致的情况下,基于所述第一终端的私钥和从所述服务器最新获取到的所述目标终端的公钥,通过所述ECDH算法生成所述第一共享密钥,所述第一终端的私钥是由所述第一终端通过所述ECDH算法生成的。
作为本申请的一个示例,所述通话模块1210还用于:
在与所述一个或多个第二终端的加密通话结束的情况下,重新生成公私钥对;
向所述服务器发送重新生成的公私钥对中的公钥和重新生成公私钥对的密钥版本号。
在本申请实施例中,第一终端中包括第一终端的第一会话密钥,以及与第一终端进行通话的一个或多个第二终端分别对应的第二会话密钥。在第一终端与一个或多个第二终端进行通话的过程中,第一终端采用第一会话密钥加密第一终端的通话数据,然后向服务器发送加密后的通话数据。另外,第一终端接收来自一个或多个第二终端中的至少一个第二终端的加密后的通话数据,第一终端采用至少一个第二终端分别对应的第二会话密钥解密至少一个第二终端的加密后的通话数据,得到至少一个第二终端的通话数据。如此,在加密通话过程中,各个终端对通话数据进行加密使用的密钥不相同,可以提高通话的安全性。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到终端的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
最后应说明的是:以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (14)
1.一种加密通话方法,其特征在于,应用于第一终端中,所述第一终端中具有所述第一终端的第一会话密钥,以及与所述第一终端通话的一个或多个第二终端分别对应的第二会话密钥,所述方法包括:
在所述第一终端和所述一个或多个第二终端通话过程中,所述第一终端向服务器发送采用所述第一会话密钥加密的所述第一终端的通话数据;和/或,
所述第一终端接收来自所述一个或多个第二终端中至少一个第二终端的加密后的通话数据,以及采用所述至少一个第二终端对应的第二会话密钥解密所述至少一个第二终端的加密后的通话数据,得到所述至少一个第二终端的通话数据。
2.如权利要求1所述的方法,其特征在于,在所述第一终端和所述一个或多个第二终端通话之前,所述方法还包括:
在密钥协商的过程中,所述第一终端确定第一共享密钥以及所述第一会话密钥,所述第一共享密钥为所述第一终端和目标终端之间使用的共享密钥,所述目标终端为所述一个或多个第二终端中的任一个;
所述第一终端向所述服务器发送第一协商密钥,所述第一协商密钥由所述第一终端根据所述第一共享密钥加密所述第一会话密钥得到;
所述第一终端从所述服务器获取第二协商密钥,所述第二协商密钥是由所述目标终端基于所述第一共享密钥加密第二会话密钥得到的,所述第二会话密钥用于在加密通话过程中解密所述目标终端的通话数据;
所述第一终端基于所述第一共享密钥解密所述第二协商密钥,得到所述第二会话密钥。
3.如权利要求2所述的方法,其特征在于,所述第一终端确定第一共享密钥,包括:
所述第一终端获取所述目标终端的公钥;
所述第一终端基于所述第一终端的私钥与所述目标终端的公钥,通过椭圆曲线迪菲-赫尔曼秘钥交换ECDH算法生成所述第一共享密钥,所述第一终端的私钥是由所述第一终端通过所述ECDH算法生成的。
4.如权利要求3所述的方法,其特征在于,所述第一终端获取所述目标终端的公钥,包括:
所述第一终端向所述服务器发送加密通话请求,所述加密通话请求用于请求建立加密通话连接;
所述第一终端接收来自所述服务器的加密通话响应,所述加密通话响应中携带所述目标终端的公钥。
5.如权利要求3所述的方法,其特征在于,所述第一终端获取所述目标终端的公钥,包括:
所述第一终端向所述服务器发送加密通话请求,所述加密通话请求用于请求建立加密通话连接;
所述第一终端在接收到来自所述服务器的加密通话响应后,向所述服务器发送第一查询请求,所述第一查询请求用于请求所述目标终端的公钥;
所述第一终端接收所述服务器基于所述第一查询请求反馈的第一查询响应,所述第一查询响应中携带所述目标终端的公钥。
6.如权利要求2或3所述的方法,其特征在于,所述第一终端为主叫终端,所述第一终端确定所述第一共享密钥,包括:
所述第一终端从所述服务器中获取所述服务器最新存储的所述目标终端的公钥和所述目标终端的公私钥对的密钥版本号;
所述第一终端在确定最新获取的密钥版本号与所述目标终端本地存储的密钥版本号不一致的情况下,则重新执行所述从所述服务器中获取所述服务器最新存储的所述目标终端的公钥和所述目标终端的公私钥对的密钥版本号的操作,直至确定最新获取的密钥版本号与所述目标终端本地存储的密钥版本号一致;
在确定最新获取的密钥版本号与所述目标终端本地存储的密钥版本号一致的情况下,所述第一终端基于所述第一终端的私钥和从所述服务器最新获取到的所述目标终端的公钥,通过椭圆曲线迪菲-赫尔曼秘钥交换ECDH算法生成所述第一共享密钥,所述第一终端的私钥是由所述第一终端通过所述ECDH算法生成的。
7.如权利要求1-6中任一项所述的方法,其特征在于,所述方法还包括:
在与所述一个或多个第二终端的加密通话结束的情况下,所述第一终端重新生成公私钥对;
所述第一终端向所述服务器发送重新生成的公私钥对中的公钥和重新生成公私钥对的密钥版本号。
8.一种加密通话装置,其特征在于,应用于第一终端,所述第一终端中具有所述第一终端的第一会话密钥,以及与所述第一终端通话的一个或多个第二终端分别对应的第二会话密钥,所述装置包括:
通话模块,用于在所述第一终端和所述一个或多个第二终端进行加密通话过程中,向服务器发送采用所述第一会话密钥加密的所述第一终端的通话数据;和/或,
解密模块,用于接收来自所述一个或多个第二终端中至少一个第二终端的加密后的通话数据,以及采用所述至少一个第二终端对应的第二会话密钥解密所述至少一个第二终端的加密后的通话数据,得到所述至少一个第二终端的通话数据。
9.如权利要求8所述的装置,其特征在于,所述通话模块还用于:
在密钥协商的过程中,确定第一共享密钥以及所述第一会话密钥,所述第一共享密钥为所述第一终端和目标终端之间使用的共享密钥,所述目标终端为所述一个或多个第二终端中的任一个;
向服务器发送第一协商密钥,所述第一协商密钥由所述第一终端根据所述第一共享密钥加密所述第一会话密钥得到;
从服务器获取第二协商密钥,所述第二协商密钥是由所述目标终端基于所述第一共享密钥加密第二会话密钥得到的,所述第二会话密钥用于在加密通话过程中解密所述目标终端的通话数据;
基于所述第一共享密钥解密所述第二协商密钥,得到所述第二会话密钥。
10.如权利要求9所述的装置,其特征在于,所述通话模块用于:
获取所述目标终端的公钥;
基于所述第一终端的私钥与所述目标终端的公钥,通过椭圆曲线迪菲-赫尔曼秘钥交换ECDH算法生成所述第一共享密钥,所述第一终端的私钥是由所述第一终端通过所述ECDH算法生成的。
11.如权利要求9或10所述的装置,其特征在于,所述第一终端为主叫终端,所述通话模块用于:
从所述服务器中获取所述服务器最新存储的所述目标终端的公钥和所述目标终端的公私钥对的密钥版本号;
在确定最新获取的密钥版本号与所述目标终端本地存储的密钥版本号不一致的情况下,则重新执行所述从所述服务器中获取所述服务器最新存储的所述目标终端的公钥和所述目标终端的公私钥对的密钥版本号的操作,直至确定最新获取的密钥版本号与所述目标终端本地存储的密钥版本号一致;
在确定最新获取的密钥版本号与所述目标终端本地存储的密钥版本号一致的情况下,基于所述第一终端的私钥和从所述服务器最新获取到的所述目标终端的公钥,通过椭圆曲线迪菲-赫尔曼秘钥交换ECDH算法生成所述第一共享密钥,所述第一终端的私钥是由所述第一终端通过所述ECDH算法生成的。
12.如权利要求8-11中任一项所述的装置,其特征在于,所述通话模块还用于:
在与所述一个或多个第二终端的加密通话结束的情况下,重新生成公私钥对;
向所述服务器发送重新生成的公私钥对中的公钥和重新生成公私钥对的密钥版本号。
13.一种终端,其特征在于,所述终端包括存储器和处理器;
所述存储器用于存储支持所述终端执行权利要求1-7任一项所述的方法的程序,以及存储用于实现权利要求1-7任一项所述的方法所涉及的数据;所述处理器被配置为用于执行所述存储器中存储的程序。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行权利要求1-7任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011613563.XA CN114697955A (zh) | 2020-12-30 | 2020-12-30 | 一种加密通话方法、装置、终端及存储介质 |
PCT/CN2021/137944 WO2022143156A1 (zh) | 2020-12-30 | 2021-12-14 | 一种加密通话方法、装置、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011613563.XA CN114697955A (zh) | 2020-12-30 | 2020-12-30 | 一种加密通话方法、装置、终端及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114697955A true CN114697955A (zh) | 2022-07-01 |
Family
ID=82131635
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011613563.XA Pending CN114697955A (zh) | 2020-12-30 | 2020-12-30 | 一种加密通话方法、装置、终端及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114697955A (zh) |
WO (1) | WO2022143156A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220377057A1 (en) * | 2021-05-21 | 2022-11-24 | Zoom Video Communications, Inc. | Systems and methods for securing videoconferencing meetings |
CN117118988A (zh) * | 2023-03-14 | 2023-11-24 | 荣耀终端有限公司 | 一种数据同步方法及相关装置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116939599B (zh) * | 2023-08-20 | 2024-06-07 | 敦和安全科技(武汉)有限公司 | 一种面向低性能设备的高速加密通信方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102843677A (zh) * | 2012-08-14 | 2012-12-26 | 福建伊时代信息科技股份有限公司 | 语音通信方法、装置及系统 |
CN103974243B (zh) * | 2014-05-16 | 2017-11-10 | 天地融科技股份有限公司 | 一种语音通话的数据处理系统 |
CN106302402A (zh) * | 2016-07-29 | 2017-01-04 | 深圳市金立通信设备有限公司 | 一种通信方式切换方法及终端 |
CN106304049A (zh) * | 2016-08-17 | 2017-01-04 | 深圳市金立通信设备有限公司 | 一种加密通信的呼叫方法、接听方法及终端 |
-
2020
- 2020-12-30 CN CN202011613563.XA patent/CN114697955A/zh active Pending
-
2021
- 2021-12-14 WO PCT/CN2021/137944 patent/WO2022143156A1/zh active Application Filing
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220377057A1 (en) * | 2021-05-21 | 2022-11-24 | Zoom Video Communications, Inc. | Systems and methods for securing videoconferencing meetings |
US11765143B2 (en) * | 2021-05-21 | 2023-09-19 | Zoom Video Communications, Inc. | Systems and methods for securing videoconferencing meetings |
US12074855B2 (en) | 2021-05-21 | 2024-08-27 | Zoom Video Communications, Inc. | Securing videoconferencing meetings |
CN117118988A (zh) * | 2023-03-14 | 2023-11-24 | 荣耀终端有限公司 | 一种数据同步方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2022143156A1 (zh) | 2022-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113225693B (zh) | 一种蓝牙连接方法、设备及系统 | |
CN115426064B (zh) | 音频数据的同步方法及设备 | |
US20220039179A1 (en) | Bluetooth Connection Method and Device | |
CN112469013B (zh) | 一种蓝牙连接方法及相关装置 | |
CN111373713B (zh) | 一种消息传输方法及设备 | |
CN114710768B (zh) | 一种蓝牙回连方法及相关装置 | |
CN112312366B (zh) | 一种通过nfc标签实现功能的方法、电子设备及系统 | |
WO2022143156A1 (zh) | 一种加密通话方法、装置、终端及存储介质 | |
CN115665670A (zh) | 无线音频系统、音频通讯方法及设备 | |
CN111083804B (zh) | 一种数据传输方法及设备 | |
CN112469011A (zh) | 一种蓝牙配对方法及相关装置 | |
CN113365274A (zh) | 一种网络接入方法和电子设备 | |
CN115119336B (zh) | 耳机连接系统、方法、耳机、电子设备及可读存储介质 | |
CN115525366A (zh) | 一种投屏方法及相关装置 | |
CN112615891B (zh) | 配对方法及设备 | |
WO2024037040A9 (zh) | 数据处理方法及电子设备 | |
CN118233118A (zh) | 一种登录应用的方法及相关装置 | |
CN114117458A (zh) | 密钥使用方法及相关产品 | |
CN115550919A (zh) | 设备配对认证方法、装置、发送方设备及接收方设备 | |
CN117459241A (zh) | 登录方法、电子设备及存储介质 | |
CN115802326A (zh) | 一种蓝牙连接方法及电子设备 | |
CN118368663A (zh) | 设备自组网的方法和装置 | |
CN114500725A (zh) | 目标内容传输方法、主设备、从设备和存储介质 | |
CN114007205A (zh) | 一种密钥重用方法以及装置 | |
CN115884140A (zh) | 跨设备连接方法、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |