两个移动终端之间的安全通信方法_2

文档序号:9581728阅读:来源:国知局
无线互联网连接,而两个移动终端410之间无直接消息发送。图4所示的系统可以应用来实现下面将结合图1和图2描述的通信方法100和通信方法200。
[0025]图5不出了根据本发明实施例的另一系统硬件框架不意图。图5所不系统与图4所示系统不同,在于移动终端410之间可以直接进行消息发送,图5所示的系统可以应用来实现下面将集合图3描述的通信方法300。
[0026]需要说明的是,本领域技术人员很清楚,虽然图4和图5仅示出了两个移动终端,但是移动终端的数量显然可以更多,甚至数量非常庞大。
[0027]图1示出了根据本发明第一实施例的两个移动终端A和B经由服务器相互通信的方法100的顺序图。
[0028]在方法100所有所示操作之前,移动终端A和B已经完成了在服务器上的注册操作,其中a.系统注册过程。用户程序提交注册用户名密码,同时本地产生公钥私钥对。把公钥上传服务器。
[0029]在步骤S110中,移动终端A向服务器查询移动终端B的公钥。
[0030]在步骤S120中,服务器返回移动终端B的公钥给移动终端A。
[0031]优选地,移动终端A从服务器中获取好友名单中的公钥,并保存到本地。移动终端A每次添加新的好友时都会从服务器获取好友的公钥。例如,对于微信应用可以采用该获取好友端移动终端的公钥的方法。
[0032]在步骤S130中,移动终端A产生随机数作为会话秘钥,用所获取的移动终端B的公钥加密,用所产生的会话秘钥对消息加密,以供把加密后的会话秘钥以及密文一起作为报文发送给服务器来转发。
[0033]在步骤S140中,移动终端A发送报文到服务器。
[0034]在步骤S150中,服务器转发报文给移动终端B。
[0035]在步骤S160中,移动终端B用私钥对会话秘钥解密,进而用会话秘钥对密文解密。
[0036]当移动终端B要向移动终端A发送消息时,执行类似的过程,即移动终端B从服务器获得移动终端A的公钥,产生随机数作为会话秘钥,用所获取的移动终端A的公钥加密,用所产生的会话秘钥对消息加密,以及将加密后的会话秘钥以及密文一起作为报文发送给服务器,服务器将该报文转发给移动终端A,移动终端A用私钥对收到的加密的会话秘钥解密,进而用该会话秘钥对密文解密。
[0037]根据本发明的第二实施例,提供了一种第一移动终端经由服务器与第二移动终端相互通信的通信方法,包括:第一移动终端生成随机数XA,并根据第一预定算法利用随机数XA计算第一移动终端的公钥YA,并将该第一移动终端的公钥发送到服务器;第一移动终端接收经由服务器来自第二移动终端的第二移动终端的公钥YB ;第一移动终端利用随机数XA和第二移动终端的公钥YB根据第二预定算法生成第一移动终端的会话秘钥KA,该会话秘钥KA等于第二移动终端处生成的会话秘钥KB ;第一移动终端用会话秘钥KA加密待发送的消息;第一移动终端将加密后的消息经由服务器发送到第二移动终端,第二移动终端用会话秘钥KB解密接收到的消息。
[0038]在一个示例中,其中利用Diff 1-Hellman算法使得第一移动终端的会话秘钥KA等于第二移动终端的会话秘钥KB,当第一移动终端添加第二移动终端为好友时,触发上述会话秘钥KA和KB的产生。
[0039]在另一示例中,其中第一移动终端从服务器获得全局公开的素数型参数a和整数型参数q,a是q的一个原根,第一移动终端利用随机数XA根据公式YA = a~XA mod q来生成第一移动终端的公钥YA ;第一移动终端利用随机数XA和第二移动终端的公钥YB根据KA=(YB) 'XA mod q生成第一移动终端的会话秘钥KA,其中第二移动终端基于公式YB = a~XBmod q计算公开秘钥,以及基于公式kB= (YA) 'XB mod q来生成第二移动终端的会话秘钥KB,由此使得KA = KB。
[0040]在一个示例中,其中第一移动终端定期更新公钥和会话秘钥。
[0041]图2示出了根据第二实施例的两个移动终端A和B经由服务器相互通信的方法200的操作说明图。
[0042]需要说明的是,图2各个步骤的编号不必然指示彼此执行的先后必然顺序,而是顺序可以调换,或者可以并行执行,除非逻辑上要求必须有先后顺序。
[0043]在该实施例的方法中,两个移动用户之间产生相同的会话秘钥,从而能够用共同的会话秘钥来解密来自对方移动终端的加密的消息。
[0044]在一个实施例中,在微信或者类似的互联网应用中,当两个用户之间彼此添加好友时,各自产生双方共有的会话秘钥。
[0045]在步骤S210中,移动终端A产生随机数XA,以供发送给移动终端B。
[0046]在步骤S220中,移动终端A把随机数XA发送给服务器。
[0047]在步骤S230中,服务器转发随机数XA给移动终端B。
[0048]在步骤S240中,移动终端B产生随机数XB,发送给移动终端A。
[0049]在步骤S250中,移动终端B把随机数XB发送给服务器。
[0050]在步骤S260中,服务器转发随机数XB给移动终端A。
[0051]在步骤S270中,移动终端A根据随机数XA和随机数XB计算出会话秘钥KA。
[0052]在步骤S280中,移动终端B根据随机数XA和XB计算出会话秘钥KB,其中KA =KBo
[0053]在一个实施例中,利用Diff 1-Hellman算法使得第一移动终端的会话秘钥KA等于第二移动终端的会话秘钥KB,当第一移动终端添加第二移动终端为好友时,触发上述会话秘钥KA和KB的产生。
[0054]在一个示例中,第一移动终端从服务器获得全局公开的素数型参数a和整数型参数q,a是q的一个原根,移动终端A利用随机数XA根据公式YA = a~XA mod q来生成第一移动终端的公钥YA,然后将该公钥YA经由服务器发送给移动终端B。移动终端B利用随机数XB根据公式YB = a'XB mod q来生成第一移动终端的公钥YB,然后将该公钥YB经由服务器发送给移动终端B。移动终端A利用随机数XA和第二移动终端的公钥YB根据KA =(YB) 'XA mod q生成第一移动终端的会话秘钥KA,其中第二移动终端基于公式YB = a'XBmod q计算公开秘钥YB,其中XB是第二移动终端产生的随机数,以及基于公式kB= (YA) 'XBmod q来生成第二移动终端的会话秘钥KB,由此使得KA = KB。~表示乘方。
[0055]此秘钥产生方法为示例,而并非用作对本发明保护范围的限制,本领域技术人员可以采用其他会话秘钥交换方式,只要使得双方产生秘钥相等就可以。
[0056]在步骤S290中,移动终端A用会话秘钥KA对消息加密。
[0057]在步骤S291中,移动终端A发送加密消息给服务器。
[0058]在步骤S292中,服务器转发加密消息给移动终端B。
[0059]在步骤S293中,移动终端B用会话秘钥KB对消息解密,因为会话秘钥KB等于会话秘钥KA,该消息是用会话秘钥KA加密的,因此移动终端B可以直接用自己的会话秘钥KB对该消息解密。
[0060]在步骤S294中,移动终端B用会话秘钥KB对消息加密。
[0061]在步骤S295中,移动终端B发送加密消息给服务器。
[0062]在步骤S296中,服务器转发加密消息给移动终端A。
[0063]在步骤S297中,移动终端A用会话秘钥KA对消息解密。
[0064]根据本发明的第三实施例,提供了一种通信网络中第一移动终端与第二移动终端的通信方法,该通信网络包括第一移动终端和第二移动终端,该通信方法包括:第一移动终端将自己的地址信息和端口号发送到服务器;第一移动终端从服务器获得第二移动终端的地址信息和端口号;第一移动终端利用所获得的第二移动终端的地址信息和端口号,不经由服务器直接向第二移动终端发送消息。
[0065]在一个示例中,第一移动终端生成随机数XA,直接利用所获得的第二移动终端的地址信息和端口将随机数XA发送给第二移动终端;第一移动终端接收直接发送自第二移动终端的随机数XB ;第一移动终端利用自身生成的随机数XA和接收的随机数XB生成会话秘钥k ;第一移动终端用会话秘钥加密消息,并将加密的消息发送给第二移动终端,其中第二移动终端利用自身生
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1