一种即时通信的数据加密方法及装置与流程

文档序号:17816163发布日期:2019-06-05 21:42阅读:544来源:国知局
一种即时通信的数据加密方法及装置与流程

本申请涉及网络通信技术领域,特别是涉及一种即时通信的数据加密方法及装置。



背景技术:

随着网络通信技术的发展,即时通信技术逐渐成为双方的交流方式,也是多方交流的信息平台。在通过即时通信方式进行交流时,为了确保信息安全,需要对信息进行加密。本申请的发明人在长期的研发过程中,发现目前的群聊通信中,加密技术是通过采取密码对称加密的方式对客户端之间的通信信息进行安全保护,且这个密码保存在服务器上,当有新客户端加入该群的时候,服务器将密码‘分享’给该用户。这种使得群通信完全依赖于群密码,而群密码分布在每个客户端以及服务器后台,通信安全风险缺口明显,一旦服务器被破解,整个系统的安全性就被瓦解。因此,需要一种既安全,又高效的加密技术方案来解决信息通信问题。



技术实现要素:

本申请主要解决的技术问题是提供一种即时通信的数据加密方法及装置,能够提高通信信息的安全性。

为解决上述技术问题,本申请采用的一个技术方案是:提供一种即时通信的数据加密方法,其中,所述方法包括:第一客户端生成一个随机数,将随机数与群密码进行组合得到密码数据源;利用哈希算法对密码数据源进行计算得到信息密码;利用信息密码对通信数据进行加密。

为解决上述技术问题,本申请采用的一个技术方案是:提供一种即时通信的数据加密装置,其中,所述装置包括处理器,处理器用于生成一个随机数,将随机数与群密码进行组合得到密码数据源;处理器还用于利用哈希算法对密码数据源进行计算得到信息密码;处理器还用于利用信息密码对通信数据进行加密。

为解决上述技术问题,本申请采用的另一个技术方案是:提供一种即时通信的数据加密装置,其中,所述装置包括:生成模块,用于生成一个随机数,将随机数与群密码进行组合得到密码数据源;计算模块,用于利用哈希算法对密码数据源进行计算得到信息密码;加密模块,用于利用信息密码对通信数据进行加密。

为解决上述技术问题,本申请采用的另一个技术方案是:提供一种具有存储功能的装置,其中,所述装置存储有程序,所述程序被执行时实现上述的即时通信的数据加密方法。

本申请的有益效果是:区别于现有技术的情况,本申请提供一种即时通信的数据加密方法,该方法通过在信息加密时对密码加入随机数,使每一条发出的信息都会有不同的密码进行加密,提高了每条信息的前后向密码安全。

附图说明

图1是本申请即时通信的数据加密方法第一实施方式的流程示意图;

图2是本申请即时通信的数据加密方法第二实施方式的流程示意图;

图3是本申请即时通信的数据加密方法第三实施方式的流程示意图;

图4是本申请即时通信的数据加密方法第四实施方式的流程示意图;

图5是本申请即时通信的数据加密装置第一实施方式的结构示意图;

图6是本申请即时通信的数据加密装置第二实施方式的结构示意图;

图7是本申请具有存储功能的装置第一实施方式的结构示意图。

具体实施方式

为使本申请的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本申请进一步详细说明。

本申请提供一种即时通信的数据加密方法,至少应用在群聊信息加密中,通过改变群密码的传递方式以及群信息的加密方式,来提高群聊通信的安全性。

其中,本申请在进行群密码传递时,利用迪菲-赫尔曼密钥交换协议(diffie–hellmankeyexchange,后文简称dh协议),使通信双方先确定一个“协商密钥”,然后再用这个密钥在后续的通信中作为对称密钥来对携带群密码的信息进行加密。通过这种方式,能够避免双方网上协商密钥带来的泄露风险,提高密码传递的安全性。

其中,在一实施方式中,本申请提供一种群密码的传递方法。请参阅图1,图1是本申请即时通信的数据加密方法第一实施方式的流程示意图。在该实施方式中,需要对群密码进行传递,且在传递群密码时对群密码进行加密。

具体地,第一客户端创建一个群组,在创建群组时随机生成一个密码为群密码。例如,可以随机生成一个64位的随机密码作为群密码。

第一客户端邀请第二客户端加入群聊,在邀请第二客户端进行群聊时,需要把群密码发送给第二客户端。

其中,第一客户端设有用于加密的公钥a和私钥a;第二客户端设有用于加密的公钥b和私钥b。具体地,第一客户端、第二客户端通过服务器互相交换公钥a和公钥b;第一客户端利用私钥a和公钥b通过dh协议进行计算得到dh密码,利用该dh密码作为对称密码对携带群密码的信息进行加密,然后把加密后的携带群密码的信息发送给第二客户端。

第二客户端利用私钥b和公钥a通过dh协议进行计算得到dh密码,其中,第二客户端计算出来的dh密码与第一客户端计算出来的密码相同。群密码加密又使用的是对称加密方式,因此,第二客户端可以利用该dh密码对携带群密码的信息进行解密,获取群密码。

通过这种方式,可以使双方无需预先沟通,在不安全的网络中即可确定一个“协商密钥”,能够避免双方网上协商密钥带来的泄露风险。同时,计算出来的dh密码包括自己的私钥和对方的公钥两个参数;这样即使被黑客攻击,黑客只知道公钥a和公钥b,因为不知道任意一方的私钥,所以无法计算出dh密码,能够提高信息的安全性。

请参阅图2,图2是本申请即时通信的数据加密方法第二实施方式的流程示意图。在该实施方式中,第一客户端利用私钥a和公钥b通过ecdh算法(ellipticcurvesdiffie-hellman,ecdh)计算出dh密码。其中ecdh算法是ecc(ellipticcurvescryptography,椭圆曲线加密)算法和dh的结合使用,是一种密钥协商算法,用于密钥磋商。

然后再利用哈希算法对dh密码进行计算得到预定位数的字符串;例如,可以利用sha512算法对dh密码进行计算得到一串512位的字符串。取字符串的前256位作为信息密码对信息进行加密,取字符串的后128位作为哈希值(iv向量)。其中利用对称加密的方式对携带群密码的信息进行加密,得到加密后的群密码进行发送。具体地,将携带群密码的信息以及该信息的哈希值作为原始数据进行加密;以使数据接收方可以利用哈希值检查信息的完整性。对称加密算法包括des(dataencryptionstandard)、aes(advancedencryptionstandard)、idea(internationaldataencryptionalgorithm)等等。

其中,在另一实施方式中,本申请在进行群密码传递时,还可以利用非对称加密的方式进行传输,以提高信息传递的安全性。在该实施方式中,第一客户端利用第二客户端的公钥b对群密码进行加密,加密后发送给第二客户端,此时,第二客户端利用自己的私钥b进行解密,获取群密码。通过利用非对称加密的方式进行密码的传递,提高了单向传输的安全性。这是因为不同客户端的公钥不同,对应的私钥也不同,因此,每一个客户端只能下载通过自己私钥能解密的群密码。

群成员在获得群密码后,就可以在群聊时用这一群密码对信息进行加密。但每条信息如果只用同一个密码加密,那么一旦密码被泄漏所有信息都会变得透明,因此密码需要增加随机性来确保每条信息是有单独的加密密码。基于此,本申请提供一种信息加密的方法,通过在每一条信息的密码中附加一些随机数据,将原始信息密码导出新的信息密码,提高原始信息密码的保密性。具体地,请参阅图3,图3是本申请即时通信的数据加密方法第三实施方式的流程示意图。在该实施方式中,该方法包括如下步骤:

s301:第一客户端生成一个随机数,将随机数与群密码进行组合得到密码数据源。

其中,随机数为预定位数的数据,不同信息对应是随机数是不同的。群密码为第一客户端被邀请进群获取的,或建立群组时随机生成的,具体获取方式请参阅上述实施方式的描述,在此不再赘述。

s302:利用哈希算法对密码数据源进行计算得到信息密码。

其中,利用哈希算法对密码数据源进行加密,以更安全的保护密码。具体地,被哈希加密后会得出一段长度固定的摘要(digest),并且每一个文件对应的摘要都是独一无二的,所以摘要也被称作文件指纹,可用于对密码进行安全保存。另外,任何文件即使被修改了一个字符,它的指纹也会变得完全不同,所以文件指纹可以被用来判断文件的完整性。

s303:利用信息密码对通信数据进行加密。

其中,利用对称加密的方式对通信数据进行加密,以提高加解密速度,也便于密码管理,适应群组加密聊天。

请参阅图4,图4是本申请即时通信的数据加密方法第四实施方式的流程示意图。在该实施方式中,第一客户端在发送信息时,随机生成一个512位密码作为随机数,将这一随机数与公共群密码组成该信息的单独密码数据源。

利用哈希算法对密码数据源进行计算得到信息密码。例如利用sha512算法对密码信息源进行计算,得到一个512位的字符串,取该字符串的前256位作为aes密码,后128位作为iv向量,以要发送的信息以及信息的哈希值作为原始数据进行aes加密。加密后的数据有两部分组成,信息的前半部分(head)为512位的随机数,信息的后半部分(body)为加密的信息。

然后使用私钥签名,再将加密信息发给服务器,由服务器发送给其它成员。

其他群成员在接收信息时,首先使用发送人的签名公钥验证,验证成功后,使用相应的链密钥生成信息密码,并用信息密码解密。在解密前,还可以利用哈希值校验原始信息的完整性,然后再利用信息密码对信息进行解密。

在此群加密方式下,由于服务器并不保存客户端密码,所以安全性掌握在客户端手中,同时客户端每一条发出的信息都会有不同的密码进行加密,提高了每条信息的前后向密码安全。

本申请还提供一种即时通信的数据加密装置,请参阅图5,图5是本申请即时通信的数据加密装置第一实施方式的结构示意图。在该实施方式中,加密装置50包括处理器501,处理器501用于生成一个随机数,将随机数与群密码进行组合得到密码数据源;再利用哈希算法对密码数据源进行计算得到信息密码;最后利用信息密码对通信数据进行加密。

其中,在一实施方式中,客户端每发送一条信息,处理器501随机生成一个不同的随机数。

其中,在一实施方式中,处理器501具体用于利用sha512算法对密码数据源进行计算得到一个512位的字符串,取字符串的前256位作为信息密码。

其中,在一实施方式中,处理器501还用于接收被dh密码加密的群密码,其中,dh密码为第二客户端利用迪菲-赫尔曼密钥交换协议计算得到的;处理器501还用于利用迪菲-赫尔曼密钥交换协议计算得到dh密码,并利用dh密码对加密后的群密码进行解密,获取群密码。

其中,在一实施方式中,处理器501还用于建立群组,且随机生成一个预定位数的群密码,然后利用迪菲-赫尔曼密钥交换协议计算得到dh密码,并利用所述dh密码对所述群密码进行加密。

其中,利用迪菲-赫尔曼密钥交换协议计算得到dh密码包括:第一客户端用于利用第二客户端的公钥以及第一客户端的私钥进行计算得到dh密码;第二客户端用于利用第一客户端的公钥以及第二客户端的私钥进行计算得到dh密码;其中,第一客户端、第二客户端计算得到的dh密码相同。

以上,即时通信的数据加密装置用于执行上述即时通信的数据加密方法,对信息数据进行加密,且具有相应的有益效果,具体过程请参阅上述实施方式的描述,在此不再赘述。其中该装置可以是独立于客户端的独立装置,也可以是客户端中的某一模块,或某一处理单元。

请参阅图6,图6是本申请即时通信的数据加密装置第二实施方式的结构示意图。在该实施方式中,加密装置60为客户端的某一处理模块,具体包括生成模块601、计算模块602和加密模块603,生成模块601用于生成一个随机数,将随机数与群密码进行组合得到密码数据源;计算模块602用于利用哈希算法对密码数据源进行计算得到信息密码;加密模块603用于利用信息密码对通信数据进行加密。

其中,在一实施方式中,生成模块具体用于在每发送一条信息时,随机生成一个不同的随机数。

其中,在一实施方式中,加密装置还包括接收模块和解密模块,接收模块用于接收被dh密码加密的群密码,其中,dh密码为第二客户端利用迪菲-赫尔曼密钥交换协议计算得到的;解密模块用于利用迪菲-赫尔曼密钥交换协议计算得到dh密码,并利用dh密码对加密后的群密码进行解密,获取群密码。即时通信的数据加密装置用于执行上述即时通信的数据加密方法,对信息数据进行加密,且具有相应的有益效果,具体过程请参阅上述实施方式的描述,在此不再赘述。

本申请还提供一种具有存储功能的装置,请参阅图7,图7是本申请具有存储功能的装置第一实施方式的结构示意图。在该实施方式中,存储装置70存储有程序701,程序701被执行时实现上述即时通信的数据加密方法。具体工作过程与上述方法实施例中一致,故在此不再赘述,详细请参阅以上对应方法步骤的说明。其中具有存储功能的装置可以是便携式存储介质如u盘、光盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟等各种可以存储程序代码的介质,也可以是终端、服务器等。

以上方案,本申请提供一种即时通信的数据加密方法,在此群加密方式下,由于服务器并不保存客户端密码,所以安全性掌握在客户端手中,同时客户端每一条发出的信息都会有不同的密码进行加密,提高了每条信息的前后向密码安全。

在本申请所提供的几个实施方式中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。

另外,在本申请各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式所述方法的全部或部分步骤。

以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1