一种基于Android系统的多方语音通信密钥协商系统技术方案

技术编号:32857723 阅读:9 留言:0更新日期:2022-03-30 19:31
本发明专利技术涉及一种基于Android系统的多方语音通信密钥协商系统,采用自主设计的基于二叉树的对称密码密钥协商算法,在多个Android终端组成的群组内生成安全的会话密钥,实现安全的多方语音通信;当有新成员加入群组时,将该叶子节点的节点秘密值由随机数更新为该成员与服务器共享的秘密值,以此保证该新成员能计算出最新的群密钥,且无法计算之前的群密钥,实现群组前向安全;当有群组成员离开群组时,并用随机数更新该节点的秘密值,以此保证离开群组成员无法计算出最新的群密钥,进而实现群组后向安全;本发明专利技术可以实现多个Android终端间的安全密钥协商,并同时保证群组密钥的前后向安全,以确保在多个Android终端间的语音安全通信,具有实用、安全、高效的特点。高效的特点。高效的特点。

【技术实现步骤摘要】
一种基于Android系统的多方语音通信密钥协商系统


[0001]本专利技术涉及计算机网络通信领域以及网络安全领域,特别涉及基于Android系统的多方语音通信密钥协商系统。

技术介绍

[0002]随着移动通信的快速发展和广泛应用,人与人之间的通信变得越来越便捷。然而无线信道的开放性使得信息的传输变得不再安全,尤其是多个通信方共享信息的场景。群组密钥协商使得群组成员能够根据特定的协议或者算法协商出一个会话密钥,而之后的群组通信的消息由此会话密钥进行加密,群组成员可以用对应的群密钥解密消息,而群组外的人无法解密,从而保证群组通信的机密性,因此广泛应用在多方通信或者群组通信的场景。
[0003]然而传统的密钥协商方法要么无法保证前后向安全,要么基于非对称加密,安全性不高,可拓展性不强,实用性较差。

技术实现思路

[0004]本专利技术基于二叉树结构,设计出一种基于Android系统的多方语音通信密钥协商系统。该方法适用于多个Android终端之间协商会话密钥,进而保证安全的群组通信,保证群组的前后向安全。
[0005]为了达到以上目的,本专利技术提供如下技术方案:
[0006]本专利技术提供了一种基于Android系统的多方语音通信密钥协商系统,包括终端初始化模块,服务器初始化模块,二叉树特征初始化模块,服务器端群密钥协商准备模块,终端群密钥协商模块,服务器端群组前后向安全模块,终端群组前后向安全模块,其特征在于:
[0007]所述的终端初始化模块用于实现Android终端的初始化过程,并通过与服务器初始化模块进行交互,完成Android终端向服务器的认证;
[0008]所述的服务器初始化模块用于实现服务器的初始化过程,并通过响应终端初始化模块的交互请求,完成服务器向Android终端的认证;当完成双向认证之后,Android终端与服务器各自保留共享的秘密值,该秘密值作为后续群组通信的基础;
[0009]所述的二叉树特征初始化模块用于实现二叉树特征初始化过程,并通过在服务端构建二叉树,初始化二叉树的叶子节点和中间节点的特征值,完成二叉树特征的初始化;服务器首先预估通信群组的规模,然后构建一棵满二叉树,每个Android终端对应一个叶子节点,该二叉树结构作为后续计算群密钥的依据;树中的每个叶子节点对应着一个三元组,分别是节点秘密值、节点密钥以及标签;树中的非叶子节点对应着二元组,分别是节点秘密值和节点密钥;
[0010]所述的服务器端群密钥协商准备模块用于实现服务器端密钥协商初始化过程,并通过广播群组的公共消息以及向每个群组成员单播与其有关的节点位置信息,完成服务器
端密钥协商初始化;
[0011]所述的终端群密钥协商模块用于实现终端协商群密钥过程,并通过服务器端群密钥协商准备模块发布的群组公共消息以及该终端所在的节点位置信息计算群密钥,该群密钥用于之后群组通信;
[0012]所述的服务器端群组前后向安全模块用于实现服务器端二叉树节点状态更新过程,负责在新成员加入群组时以及在群组成员离开群组时,更新二叉树节点秘密值和其他有关参数,同时更新并广播群组的公共信息;
[0013]所述的终端群组前后向安全模块用于实现终端更新群密钥过程,负责在服务器端群组前后向安全模块的基础上,更新群密钥,进而保证群组通信的前后向安全。
[0014]优选的,所述实现Android终端的初始化过程,并通过与服务器初始化模块进行交互,完成Android终端向服务器的认证的步骤,具体包括:
[0015]首先身份为ID
i
的Android终端在接入服务器之前,选择大素数p及其本原根g,选择随机数Rand
C
,Rand
C
用于终器认证服务器的合法性,Rand
C
选择随机数X
C
并计算终端实体参数实体参数Y
C
用于服务器计算最终秘密值,用私钥SK
C
生成签名并用服务器的公钥PK
S
加密得到中间密文其中操作AE表示公钥加密,操作Sign表示签名,该中间密文C1用于向服务器发送加密的终端对Rand
C
和Y
C
的签名,最后Android终端将参数(Y
C
,C1,p,g)发送给服务器;服务器收到 (Y
C
,C1,p,g)参数后,解密中间密文C1并验证签名,得到恢复的Y
C
和Rand
C
的解密值计算Y

C
用于服务器计算最终秘密值,其中操作AD表示私钥解密,操作Ver表示验证签名,选择随机数Rand
S
,选择随机数X
S
并计算计算秘密值用私钥SK
S
生成签名并用身份为ID
i
的终端的公钥PK
C
加密得到最后服务器将参数(Y
S
,C2)发送给身份为ID
i
的终端;身份为ID
i
的终端收到(Y
S
,C2)参数后,首先计算然后判断Rand”C
和Rand
C
是否相等,如果不相等,服务器无法证明其身份合法,否则计算秘密值该秘密值参与服务器端生成群密钥工作以及终端协商群密钥工作,加密得到并将参数C3发送给服务器,C3用于服务器认证终端合法性以及服务器比对终端计算的秘密值与服务器计算的秘密值是否相等。
[0016]优选的,所述实现服务器的初始化过程,并通过响应终端初始化模块的交互请求,完成服务器向Android终端的认证,当完成双向认证之后,Android终端与服务器各自保留共享的秘密值,该秘密值作为后续群组通信的基础的步骤,具体包括:
[0017]在收到身份为ID
i
的终端发送的参数C3之后,服务器首先解密得到并判断Rand”S
和Rand
S
是否相等,如果不相等,身份为ID
i
的终端无法向服务器证明其身份合法,否则比对之前计算的秘密值K
CS
的哈希值H(K
CS
)和 H(K

CS
)

是否相等,如果相等,则身份为ID
i
的终端与服务器相互认证成功,并且双方各自保
留交互过程中计算的秘密值K
CS
,记K
CS
为s
i
,表示服务器与身份为ID
i
的终端共享的秘密值,该值作为后续群组密钥协商的基础。
[0018]优选的,所述实现二叉树特征初始化过程,并通过在服务端构建二叉树,初始化二叉树的叶子节点和中间节点的特征值,完成二叉树特征的初始化的步骤,具体包括:
[0019]需要进行多方语音通信的Android终端组成一个群组G,服务器首先预估该群组的规模,使该群组的大小满足2
h本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Android系统的多方语音通信密钥协商系统,包括终端初始化模块(1),服务器初始化模块(2),二叉树特征初始化模块(3),服务器端群密钥协商准备模块(4),终端群密钥协商模块(5),服务器端群组前后向安全模块(6),终端群组前后向安全模块(7),其特征在于:所述的终端初始化模块(1)用于实现Android终端的初始化过程,并通过与服务器初始化模块(2)进行交互,完成Android终端向服务器的认证;所述的服务器初始化模块(2)用于实现服务器的初始化过程,并通过响应终端初始化模块(1)的交互请求,完成服务器向Android终端的认证;当完成双向认证之后,Android终端与服务器各自保留共享的秘密值,该秘密值作为后续群组通信的基础;所述的二叉树特征初始化模块(3)用于实现二叉树特征初始化过程,并通过在服务端构建二叉树,初始化二叉树的叶子节点和中间节点的特征值,完成二叉树特征的初始化;服务器首先预估通信群组的规模,然后构建一棵满二叉树,每个Android终端对应一个叶子节点,该二叉树结构作为后续计算群密钥的依据;树中的每个叶子节点对应着一个三元组,分别是节点秘密值、节点密钥以及标签;树中的非叶子节点对应着二元组,分别是节点秘密值和节点密钥;所述的服务器端群密钥协商准备模块(4)用于实现服务器端密钥协商初始化过程,并通过广播群组的公共消息以及向每个群组成员单播与其有关的节点位置信息,完成服务器端密钥协商初始化;所述的终端群密钥协商模块(5)用于实现终端协商群密钥过程,并通过服务器端群密钥协商准备模块(4)发布的群组公共消息以及该终端所在的节点位置信息计算群密钥,该群密钥用于之后群组通信;所述的服务器端群组前后向安全模块(6)用于实现服务器端二叉树节点状态更新过程,负责在新成员加入群组时以及在群组成员离开群组时,更新二叉树节点秘密值和其他有关参数,同时更新并广播群组的公共信息;所述的终端群组前后向安全模块(7)用于实现终端更新群密钥过程,负责在服务器端群组前后向安全模块(6)的基础上,更新群密钥,进而保证群组通信的前后向安全。2.根据权利要求1所述的一种基于Android系统的多方语音通信密钥协商系统,其特征在于,所述实现Android终端的初始化过程,并通过与服务器初始化模块(2)进行交互,完成Android终端向服务器的认证的步骤,具体包括:首先身份为ID
i
的Android终端在接入服务器之前,选择大素数p及其本原根g,选择随机数Rand
C
,Rand
C
用于终器认证服务器的合法性,Rand
C
选择随机数X
C
并计算终端实体参数实体参数Y
C
用于服务器计算最终秘密值,用私钥SK
C
生成签名并用服务器的公钥PK
S
加密得到中间密文其中操作AE表示公钥加密,操作Sign表示签名,该中间密文C1用于向服务器发送加密的终端对Rand
C
和Y
C
的签名,最后Android终端将参数(Y
C
,C1,p,g)发送给服务器;服务器收到(Y
C
,C1,p,g)参数后,解密中间密文C1并验证签名,得到恢复的Y
C
和Rand
C
的解密值计算Y'
C
用于服务器计算最终秘密值,其中
操作AD表示私钥解密,操作Ver表示验证签名,选择随机数Rand
S
,选择随机数X
S
并计算计算秘密值用私钥SK
S
生成签名并用身份为ID
i
的终端的公钥PK
C
加密得到最后服务器将参数(Y
S
,C2)发送给身份为ID
i
的终端;身份为ID
i
的终端收到(Y
S
,C2)参数后,首先计算然后判断Rand”C
和Rand
C
是否相等,如果不相等,服务器无法证明其身份合法,否则计算秘密值该秘密值参与服务器端生成群密钥工作以及终端协商群密钥工作,加密得到并将参数C3发送给服务器,C3用于服务器认证终端合法性以及服务器比对终端计算的秘密值与服务器计算的秘密值是否相等。3.根据权利要求2所述的一种基于Android系统的多方语音通信密钥协商系统,其特征在于,所述实现服务器的初始化过程,并通过响应终端初始化模块(1)的交互请求,完成服务器向Android终端的认证,当完成双向认证之后,Android终端与服务器各自保留共享的秘密值,该秘密值作为后续群组通信的基础的步骤,具体包括:在收到身份为ID
i
的终端发送的参数C3之后,服务器首先解密得到并判断Rand”S
和Rand
S
是否相等,如果不相等,身份为ID
i
的终端无法向服务器证明其身份合法,否则比对之前计算的秘密值K
CS
的哈希值H(K
CS
)和H(K'
CS
)'是否相等,如果相等,则身份为ID
i
的终端与服务器相互认证成功,并且双方各自保留交互过程中计算的秘密值K
CS
,记K
CS
为s
i
,表示服务器与身份为ID
i
的终端共享的秘密值,该值作为后续群组密钥协商的基础。4.根据权利要求1所述的一种基于Android系统的多方语音通信密钥协商系统,其特征在于,所述实现二叉树特征初始化过程,并通过在服务端构建二叉树,初始化二叉树的叶子节点和中间节点的特征值,完成二叉树特征的初始化的步骤,具体包括:需要进行多方语音通信的Android终端组成一个群组G,服务器首先预估该群组的规模,使该群组的大小满足2
h
‑2<|G|≤2
h
‑1,然后构建一个高度为h的满二叉树,其中叶子节点为2
h
‑1个,中间节点为2
h
‑1‑
1个,二叉树从根节点开始、从上到下从左到右依次编号,使二叉树节点的编号范围为1~2
h

1;二叉树的每一个节点v,所述节点v包括中间节点和叶子节点,且都有一个节点秘密值x
v
和节点密钥k

【专利技术属性】
技术研发人员:蒋群栾锦周先斌邢崇阳蒋睿
申请(专利权)人:全球联实业集团有限公司
类型:发明
国别省市:

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1