一种语音通信加密解密的方法及***
技术领域
本发明涉及移动通信技术领域,尤其涉及一种语音通信加密解密的方法及***。
背景技术
手机的出现为人们的生活带来了极大的便利,特别是语音通信功能,使人们可以不受空间地域的限制随时随地进行沟通。在现有技术中,手机之间的语音通信是在运营商所提供的公共网络中进行的。在公共网络中进行语音通信存在一定的不足之处,即语音通信的安全性和可靠性比较低。这是因为公共网络采用明文的方式对手机之间的语音通信进行传输,这种明文传输的方式使得手机之间的语音通信很容易就能被他人窃听到,从而导致手机用户信息的泄露,为手机用户带来了极大的安全隐患。特别是针对于某些特定群体,例如政府、机关、科研等涉密单位,语音通信被窃听则可能导致涉密信息被泄露,其后果不堪设想。
发明内容
为了克服现有技术中的上述缺陷,本发明提供了一种语音通信加密解密的方法,该方法包括:
第一移动终端通过第一STK菜单发起对第二移动终端的呼叫,该STK菜单由所述第一移动终端中的第一SIM卡提供;
所述第一SIM卡将预存储的与所述第一移动终端和所述第二移动终端之间语音通信所对应的密钥发送至所述第一移动终端中的第一通信模块,该密钥同时还预存储在所述第二移动终端中的第二SIM卡内;
所述第一通信模块利用所述密钥对第一移动终端发送给第二移动终端的语音帧进行加密,并将加密后的所述语音帧发送至所述第二移动终端;
所述第二移动终端中的第二通信模块收到所述第一移动终端的呼叫后从所述第二SIM卡中获取所述密钥;
所述第二通信模块利用所述密钥对接收到的所述语音帧进行解密。
根据本发明的一个方面,第一移动终端通过STK菜单发起对第二移动终端的呼叫之前,该方法还包括:所述第一移动终端通过所述第一STK菜单向所述第一SIM卡内存储所述第二移动终端的第二电话号码;所述第一移动终端触发OTA服务器将预存储的与所述第二电话号码相关联的第二公钥发送至所述第一SIM卡进行存储、以及将预存储的所述第一移动终端的第一电话号码和与该第一电话号码相关联的第一公钥发送至所述第二SIM卡进行存储,其中,与所述第一公钥对应的第一私钥预存储在所述第一SIM卡内,与所述第二公钥对应的第二私钥预存储在所述第二SIM卡内;所述第一SIM卡利用所述第一私钥和所述第二公钥、所述第二SIM卡利用所述第二私钥和所述第一公钥生成所述密钥;所述第一SIM卡和所述第二SIM卡分别存储所述密钥。
根据本发明的另一个方面,所述第一移动终端通过所述第一STK菜单将所述第二移动终端的第二电话号码存储至所述第一SIM卡内之前,该方法还包括:所述第一移动终端通过所述第一STK菜单将所述第一电话号码和所述第一公钥发送至所述OTA服务器进行关联并存储,其中,所述第一公钥预存储在所述第一SIM卡中;所述第二移动终端通过第二STK菜单将所述第二电话号码和所述第二公钥发送至所述OTA服务器进行关联并存储,其中,所述第二公钥预存储在所述第二SIM卡内。
根据本发明的又一个方面,所述第一移动终端和所述第二移动终端之间的语音通信结束后该方法还包括:所述第一SIM卡利用所述第一私钥和所述第二公钥、所述第二SIM卡利用所述第二私钥和所述第一公钥生成新的密钥;所述第一SIM卡和所述第二SIM卡利用所述新的密钥分别对原有的密钥进行更新。
根据本发明的又一个方面,当所述第一电话号码和/或所述第二电话号码需要注销时,该方法还包括:所述OTA服务器向所述第一移动终端和/或所述第二移动终端发送注销命令;所述第一移动终端和/或所述第二移动终端根据所述注销指令删除所述第一SIM卡和/或所述第二SIM卡内和语音通信加密解密相关的所有信息。
相应地,本发明还提供了一种语音通信加密解密的***,该***包括第一移动终端和第二移动终端,其中:
所述第一移动终端包括第一SIM卡和第一通信模块;
所述第一SIM卡,用于预存储与所述第一移动终端和所述第二移动终端之间语音通信所对应的密钥,以及用于提供第一STK菜单使所述第一移动终端通过该第一STK菜单发起对第二移动终端的呼叫,还用于呼叫发起后将所述密钥发送至所述第一通信模块;
所述第一通信模块,用于利用所述密钥对第一移动终端发送给第二移动终端的语音帧进行加密并将加密后的所述语音帧发送至所述第二移动终端;
所述第二移动终端包括第二SIM卡和第二通信模块;
所述第二SIM卡,用于预存储所述密钥;
所述第二通信模块,用于收到所述第一移动终端的呼叫后从所述第二SIM卡中获取所述密钥并利用所述密钥对接收到的所述语音帧进行解密。
根据本发明的一个方面,该***还包括OTA服务器,该OTA服务器还包括关联存储模块和发送模块,其中:所述第一SIM卡,还用于预存储第一私钥、以及还用于根据所述第一移动终端对所述第一STK菜单的操作向所述第一SIM卡内存储所述第二移动终端的第二电话号码并触发所述发送模块;所述第二SIM卡,还用于预存储第二私钥;所述关联存储模块,用于预存储所述第一移动终端的第一电话号码和与该第一电话号码相关联的第一公钥、以及预存储与所述第二移动终端的第二电话号码相关联的第二公钥,该第一公钥对应于所述第一私钥,该第二公钥对应于所述第二公钥;所述发送模块,用于受到触发后将所述第二公钥发送至所述第一SIM卡进行存储、以及将所述第一电话号码和所述第一公钥发送至所述第二SIM卡进行存储;所述第一SIM卡和所述第二SIM卡,还用于利用所述第一私钥和所述第二公钥、所述第二SIM卡利用所述第二私钥和所述第一公钥生成所述密钥并分别存储所述密钥。
根据本发明的另一个方面,该***中,所述第一SIM卡,还用于预存储所述第一公钥、以及用于根据所述第一移动终端对所述第一STK菜单的操作将所述第一电话号码和所述第一公钥发送至所述关联存储模块进行关联并存储;所述第二SIM卡,还用于预存储所述第二公钥、以及用于提供第二STK菜单并根据所述第二移动终端对所述第二STK菜单的操作将所述第二电话号码和所述第二公钥发送至所述关联存储模块进行关联并存储。
根据本发明的又一个方面,该***中,所述第一移动终端和所述第二移动终端之间的语音通信结束后,所述第一SIM卡利用所述第一私钥和所述第二公钥、所述第二SIM卡利用所述第二私钥和所述第一公钥生成新的密钥;所述第一SIM卡,还用于利用所述新的密钥分别对其内部原有的密钥进行更新;所述第二SIM卡,还用于利用所述新的密钥分别对其内部原有的密钥进行更新。
根据本发明的又一个方面,该***中,所述OTA服务器还包括注销模块,该注销模块,用于当所述第一电话号码和/或所述第二电话号码需要注销时向所述第一移动终端和/或所述第二移动终端发送注销命令;所述第一SIM卡,还用于根据所述注销指令删除其内部和语音通信加密解密相关的所有信息;所述第二SIM卡,还用于根据所述注销指令删除其内部和语音通信加密解密相关的所有信息。
本发明所提供的语音通信加密解密的方法及***在移动终端之间建立语音通信后由SIM卡将预存储在其内部的密钥发送至通信模块,然后由通信模块利用该密钥对语音通信进行加密解密处理。一方面,由于对语音通信进行了加密解密,因此成功地实现了移动终端在公共网络上的加密语音通信,从而有效地防止了语音通信被他人窃听,进而有效地保证了语音通信过程中所涉及的用户信息不会轻易被泄露;另一方面,由于SIM卡自身具有很高的安全性,因此,将密钥存储在SIM卡的内部相较于将密钥存储在手机的其他地方(例如内存等)可以有效地提高密钥管理的安全性,即使SIM卡发生遗失,他人也无法轻易从中获取密钥,从而进一步保证了语音通信的安全性;又一方面,移动终端之间建立语音通信后,SIM卡通过STK命令将密钥发送至通信模块后由通信模块来执行加密解密的操作,因此可以有效地提高语音通信加密解密的速度,使实时加密解密语音通信变为可能;又一方面,在整个语音通信加密解密过程中用户通过STK菜单的方式进行通话操作,其中,STK菜单的方式不仅仅操作方便而且也便于移植。优选地,用于移动终端之间语音通信加密解密的密钥由SIM卡生成,从而更进一步地确保了密钥的安全性。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1是根据本发明的语音通信加密解密的方法的一种具体实施方式的流程图;
图2是根据本发明的第一SIM卡和第二SIM卡生成密钥的方法的一种具体实施方式的流程图;
图3是根据本发明的语音通信加密解密的***的一种具体实施方式的结构示意图;
图4是根据本发明的语音通信加密解密的***的一种优选实施方式的结构示意图;
图5是可实现本发明提供的语音通信加密解密方法的移动终端的结构示意图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
为了更好地理解和阐释本发明,下面将结合附图对本发明作进一步的详细描述。
本发明提供了一种语音通信加密解密的方法。请参考图1,图1是根据本发明的语音通信加密解密的方法流程图。如图所示,该方法包括以下步骤:
在步骤S101中,第一移动终端通过第一STK菜单发起对第二移动终端的呼叫,该STK菜单由所述第一移动终端中的第一SIM卡提供;
在步骤S102中,所述第一SIM卡将预存储的与所述第一移动终端和所述第二移动终端之间语音通信所对应的密钥发送至所述第一移动终端中的第一通信模块,该密钥同时还预存储在所述第二移动终端中的第二SIM卡内;
在步骤S103中,所述第一通信模块利用所述密钥对第一移动终端发送给第二移动终端的语音帧进行加密,并将加密后的所述语音帧发送至所述第二移动终端;
在步骤S104中,所述第二移动终端中的第二通信模块收到所述第一移动终端的呼叫后从所述第二SIM卡中获取所述密钥;
在步骤S105中,所述第二通信模块利用所述密钥对接收到的所述语音帧进行解密。
具体地,在步骤S101中,在本实施例中,第一移动终端和第二移动终端均是手机,例如是安装了Android、Syber OS、iOS、Symbian、Windows Mobile、Maemo、WebOS、Palm OS或Blackberry OS等终端操作***的智能手机。第一移动终端和第二移动终端中均装有客户识别模(Subscriber Identity Module,下文简称SIM卡),其中,为了对第一移动终端中的SIM卡和第二移动终端中的SIM卡进行区分,下文分别用第一SIM卡和第二SIM卡表示。在本实施例中,第一SIM卡和第二SIM卡均具有用户识别应用发展工具(SIM Tool Kit,下文简称STK)功能。下文中,以第一移动终端作为主叫方、第二移动终端作为被叫方对本发明所提供的语音通信加密解密的方法进行说明。
第一SIM卡通过STK功能提供第一STK菜单,第一移动终端通过该第一STK菜单向第二移动终端发起呼叫。以一个具体的实施场景为例说明,第一STK菜单中包括加密通话电话簿选项,该加密通话电话簿中的联系人都具有语音通信加密的权限,也就是说,第一移动终端与该加密通话电话簿中的联系人之间建立的语音通信均会被加密从而确保语音通信的安全性。其中,加密通话电话簿中联系人的信息至少包括该联系人的电话号码。第一移动终端从加密通话电话簿中选择第二移动终端的电话号码(下文称为第二电话号码)发起呼叫。
在步骤S102中,第一移动终端通过第一STK菜单选择第二移动终端的第二电话号码发起呼叫后,第一SIM卡将第二电话号码、以及预存储的与第一移动终端和第二移动终端之间语音通信所对应的密钥发送至第一移动终端中的第一通信模块。与此同时,第一SIM卡将第二电话号码也发送至第一通信模块。在本实施例中,第一SIM卡向第一通信模块发送STK命令,该STK命令中包含了第二电话号码和密钥。其中,第一SIM卡中预存储用于第一移动终端与联系人之间语音通信加密解密的多个密钥,每一密钥对应一个联系人,第一SIM卡将每一密钥与其对应的联系人的电话号码相关联后存储,当第一移动终端通过第一STK菜单选择第二电话号码发起呼叫后,第一SIM卡根据该第二号码即可从预存储的多个密钥中确定与第一移动终端和第二移动终端之间语音通信所对应的密钥。需要说明的是,该密钥会相应存储在第二移动终端中的第二SIM卡中,并与第一移动终端的电话号码(下文称为第一电话号码)相关联。
在步骤S103中,第一通信模块收到第一SIM卡发送的STK命令后,对该STK命令进行解析,从中得到密钥和第二电话号码。第一通信模块利用该密钥对第一移动终端发送给第二移动终端的语音帧进行加密。加密完成后,第一通信模块按照第二电话号码将经过加密的语音帧发送至第二移动终端。利用密钥对语音帧进行加密是本领域技术人员所熟悉的技术手段,为了简明起见,在此不再赘述。
在步骤S104中,第二移动终端中的第二通信模块收到第一移动终端的呼叫后,将第一移动终端的第一电话号码以STK命令的形式发送至第二SIM卡。与第一SIM卡一样,第二SIM卡中也预存储用于第二移动终端与联系人之间语音通信加密解密的多个密钥,其中,每一密钥对应一个联系人,第二SIM卡将每一密钥与其对应的联系人的电话号码相关联后存储。第二SIM卡根据第一电话号码即可从预存储的多个密钥中确定与第一电话号码相关联的密钥,即确定与第一移动终端和第二移动终端之间语音通信所对应的密钥。在本实施例中,第二SIM卡中和第一SIM卡中预存储的与第一移动终端和第二移动终端之间语音通信所对应的密钥是相同的。第二SIM卡根据第一电话号码确定密钥后,将该密钥发送至第二通信模块。
在步骤S105中,第二通信模块利用第二SIM卡发送的密钥对接收到的第一移动终端发送的经过加密的语音帧进行解密,解密后的语音帧将被发送至第二移动终端的听筒提供给第二移动终端的用户(下文以第二用户表示)收听。
当第二移动终端的第二用户对第一移动终端的用户(下文以第一用户表示)进行回复时,第二移动终端向第一移动终端发送语音帧。具体地,第二移动终端中的第二通信模块利用上述密钥对语音帧进行加密,然后将加密后的语音帧发送至第一移动终端。第一移动终端接收到第二移动终端发送的经过加密的语音帧之后,利用相同的密钥对接收到的语音帧进行解密。以此类推直至第一移动终端和第二移动终端之间的语音通信结束,从而实现了第一移动终端和第二移动终端之间语音通信的加密解密。
在一个具体实施例中,在第一移动终端通过STK菜单发起对第二移动终端的呼叫之前,预存储在第一SIM卡和第二SIM卡内的与第一移动终端和第二移动终端之间语音通信所对应的密钥由第一SIM卡和第二SIM卡通过短信方式进行两次握手而生成。请参考图2,图2是根据本发明的第一SIM卡和第二SIM卡生成密钥的方法的一种具体实施方式的流程图。如图所示,生成所述密钥的方法包括:
在步骤S201中,所述第一移动终端通过所述第一STK菜单向所述第一SIM卡内存储所述第二移动终端的第二电话号码;
在步骤S202中,所述第一移动终端触发OTA服务器将预存储的与所述第二电话号码相关联的第二公钥发送至所述第一SIM卡进行存储、以及将预存储的所述第一移动终端的第一电话号码和与该第一电话号码相关联的第一公钥发送至所述第二SIM卡进行存储,其中,与所述第一公钥对应的第一私钥预存储在所述第一SIM卡内,与所述第二公钥对应的第二私钥预存储在所述第二SIM卡内;
在步骤S203中,所述第一SIM卡利用所述第一私钥和所述第二公钥、所述第二SIM卡利用所述第二私钥和所述第一公钥生成所述密钥;
在步骤S204中,所述第一SIM卡和所述第二SIM卡分别存储所述密钥。
具体地,在步骤S201中,第一移动终端通过第一STK菜单中的加密通话电话簿选项向第一SIM卡内存储第二移动终端的第二电话号码。本领域技术人员可以理解的是,在将第二电话号码存储至第一SIM卡的时候,还可以相应存储与该第二电话号码相对应的用户信息(例如第二用户的姓名、昵称等),从而使第一移动终端的第一用户可以通过该姓名、昵称等快捷地从加密通话电话簿中找到第二用户。存储成功后,第二电话号码将会显示在该加密通话电话簿中,当第一移动终端的第一用户需要和第二移动终端建立加密语音通话时从该加密通话电话簿中选择第二电话号码即可发起呼叫。
在步骤S202中,第一SIM卡对第二电话号码进行存储后,通过短信的方式将第二电话号码发送至OTA服务器,触发该OTA服务器根据该第二电话号码将预存储在其内部的与第二电话号码相关联的公钥(下文中以第二公钥表示)以短信的方式发送至第一移动终端并存储至第一SIM卡内。与此同时,OTA服务器还会通过短信的方式将预存储的第一电话号码和与该第一电话号码相关联的公钥(下文中以第一公钥表示)发送至第二移动终端并存储至第二SIM卡内。需要说明的是,若OTA服务器内并未预存储第二公钥,那么OTA服务器向第一移动终端发送短信提示第一用户该第二电话号码不具备语音通信加密的权限,第一移动终端无法和第二移动终端之间建立加密语音通信。采用OTA的方式发送公钥至移动终端处可以保证公钥传输的安全性。
在本实施例中,与第一公钥对应的私钥(下文中以第一私钥表示)预存储在第一SIM卡内,与第二公钥对应的私钥(下文中以第二私钥表示)预存储在第二SIM卡内。在OTA服务器将第二公钥发送至第一移动终端并存储至第一SIM卡内后,第一SIM卡中包括第一私钥、第二电话号码以及与该第二电话号码相关联的第二公钥。在OTA服务将第一电话号码和第一公钥发送至第二移动终端并存储至第二SIM卡内后,第二SIM卡中包括第二私钥、第一电话号码以及与该第一电话号码相关联的第一公钥。
下面,对OTA服务器如何实现预存储第一公钥和第二公钥进行说明。在一个实施例中,第一SIM卡中预存储第一私钥和第一公钥,第二SIM卡预存储第二私钥和第二公钥。在第一移动终端通过第一STK菜单向第一SIM卡内存储所述第二移动终端的第二电话号码之前,第一移动终端通过第一STK菜单(例如注册选项)将第一电话号码和第一公钥发送至OTA服务器进行关联并存储,第二移动终端通过第二STK菜单(例如注册选项)将第二电话号码和第二公钥发送至OTA服务器进行关联并存储,从而实现OTA服务器对第一公钥和第二公钥的预存储。
在步骤S203中,第一SIM卡利用第一私钥和第二公钥、第二SIM卡利用第二私钥和第一公钥生成用于第一移动终端和第二移动终端之间语音通信加密解密的密钥。具体地,第一SIM卡首先生成一个随机数(下文以第一随机数表示)并利用第一私钥对该第一随机数进行加密;然后第一SIM卡通过短信将加密后的第一随机数发送至第二移动终端;第二移动终端收到该短信后,第二SIM卡利用第一公钥对该加密后的第一随机数进行解密以得到未加密的第一随机数;接着第二SIM卡生成用于第一移动终端和第二移动终端之间语音通信加密解密的密钥,并将该密钥和第一随机数组合生成第二随机数;第二SIM卡利用第二私钥对该第二随机数进行加密,然后将加密后的第二随机数通过短信的方式发送至第一移动终端;第一移动终端收到短信后,第一SIM卡利用第二公钥对第二随机数进行解密以得到未加密的第二随机数;第一SIM卡判断该第二随机数中包括其初始生成的第一随机数后,从该第二随机数中提取出剩余部分作为密钥。
在步骤S204中,第一SIM卡存储该密钥并通过短信的方式向第二SIM卡确认收到密钥,第二SIM卡收到第一SIM卡的确认信息后对密钥进行存储。当第一移动终端和第二移动终端之间建立语音通信时,该密钥将用于对该语音通信进行加密解密。
本领域技术人员可以理解的是,在本实施例中,生成密钥的过程是由第一移动终端首先发起的,在其他实施例中,生成密钥的过程也可以由第二移动终端首先发起。
优选地,当第一移动终端和第二移动终端结束语音通信后,对第一SIM卡和第二SIM卡内的密钥进行更新。如此一来,第一移动终端和第二移动终端之间每次语音通信采用的是不同的密钥,从而极大地提高了他人破解密钥窃听通话的难度,使得语音通信的安全性进一步得到提升。在一个具体实施例中,可以仍然采用上述第一SIM卡和第二SIM卡通过短信握手的方式生成新的密钥,然后利用该新的密钥替换原有的密钥。具体地,当第一移动终端和第二移动终端结束语音通信后,第一SIM卡和第二SIM卡执行步骤S203利用第一私钥和第二公钥、第二私钥和第一公钥生成新的密钥,然后执行步骤S204,第一SIM卡存储该新的密钥以替换原有的密钥,同样地,第二SIM卡存储该新的密钥以替换原有的密钥。当第一移动终端和第二移动终端再次建立语音通信时,则使用该新的密钥对语音通信进行加密解密。
优选地,当一移动终端不再具有加密通话权限时,该移动终端中的SIM卡内与语音通信加密解密相关的所有信息将被删除,从而保证该移动终端无法和其他具有加密通话权限的移动终端建立加密语音通信。在一个具体实施例中,当所述第一电话号码和/或所述第二电话号码不再具有加密通话权限需要注销时,OTA服务器向第一移动终端和/或第二移动终端发送注销命令,第一移动终端和/或第二移动终端收到该注销命令后删除第一SIM卡和/或第二SIM卡内和语音通信加密解密相关的所有信息,即删除STK菜单中和加密通话相关的选项(例如加密通话电话簿等)、以及删除SIM卡内具有加密通话权限的联系人的信息(电话号码、与该电话号码相关联的公钥和密钥)和预存储的公钥私钥等。删除了和语音通信加密解密相关的所有信息之后,该SIM卡无法再进行任何加密通话的行为,但是仍可以实现普通语音通话的功能。举例说明,一涉密单位中所有员工之间的通话都利用本发明所提供的方法对语音通信进行加密解密,以防止通话被窃听,若其中某一员工的手机不慎丢失,则OTA服务器可以通过下发注销命令的方式来触发丢失手机的SIM卡删除所有相关信息,如此一来,确保了丢失手机中的有关加密通话的信息不会被泄露,从而更进一步地提升了加密通话的安全性。
需要说明的是,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
相应地,本发明还提供了一种语音通信加密解密的***。请参考图3,图3是根据本发明的语音通信加密解密的***的一种具体实施方式的结构示意图。如图所示,该***包括第一移动终端10和第二移动终端20,其中:
所述第一移动终端10包括第一SIM卡101和第一通信模块102;
所述第一SIM卡101,用于预存储与所述第一移动终端10和所述第二移动终端20之间语音通信所对应的密钥,以及用于提供第一STK菜单使所述第一移动终端10通过该第一STK菜单发起对第二移动终端20的呼叫,还用于呼叫发起后将所述密钥发送至所述第一通信模块102;
所述第一通信模块102,用于利用所述密钥对第一移动终端10发送给第二移动终端20的语音帧进行加密并将加密后的所述语音帧发送至所述第二移动终端20;
所述第二移动终端20包括第二SIM卡201和第二通信模块202;
所述第二SIM卡201,用于预存储所述密钥;
所述第二通信模块202,用于收到所述第一移动终端10的呼叫后从所述第二SIM卡201中获取所述密钥并利用所述密钥对接收到的所述语音帧进行解密。
下面,对本发明所提供的***的各个组成部分的具体工作过程进行说明。
具体地,在本实施例中,第一移动终端10和第二移动终端20均是手机,例如是安装了Android、Syber OS、iOS、Symbian、Windows Mobile、Maemo、WebOS、Palm OS或BlackberryOS等终端操作***的智能手机。第一移动终端10和第二移动终端20中均装有客户识别模(Subscriber Identity Module,下文简称SIM卡),其中,为了对第一移动终端10中的SIM卡和第二移动终端20中的SIM卡进行区分,下文分别用第一SIM卡101和第二SIM卡201表示。在本实施例中,第一SIM卡101和第二SIM卡201均具有用户识别应用发展工具(SIM Tool Kit,下文简称STK)功能。下文中,以第一移动终端10作为主叫方、第二移动终端20作为被叫方对本发明所提供的语音通信加密解密的***进行说明。
第一SIM卡101通过STK功能提供第一STK菜单,第一移动终端10通过该第一STK菜单向第二移动终端20发起呼叫。以一个具体的实施场景为例说明,第一STK菜单中包括加密通话电话簿选项,该加密通话电话簿中的联系人都具有语音通信加密的权限,也就是说,第一移动终端10与该加密通话电话簿中的联系人之间建立的语音通信均会被加密从而确保语音通信的安全性。其中,加密通话电话簿中联系人的信息至少包括该联系人的电话号码。第一移动终端10从加密通话电话簿中选择第二移动终端20的电话号码(下文称为第二电话号码)发起呼叫。
第一移动终端10通过第一STK菜单选择第二移动终端20的第二电话号码发起呼叫后,第一SIM卡101将第二电话号码、以及预存储的与第一移动终端10和第二移动终端20之间语音通信所对应的密钥发送至第一移动终端10中的第一通信模块102。与此同时,第一SIM卡101将第二电话号码也发送至第一通信模块102。在本实施例中,第一SIM卡101向第一通信模块102发送STK命令,该STK命令中包含了第二电话号码和密钥。其中,第一SIM卡101中预存储用于第一移动终端10与联系人之间语音通信加密解密的多个密钥,每一密钥对应一个联系人,第一SIM卡101将每一密钥与其对应的联系人的电话号码相关联后存储,当第一移动终端10通过第一STK菜单选择第二电话号码发起呼叫后,第一SIM卡101根据该第二号码即可从预存储的多个密钥中确定与第一移动终端10和第二移动终端20之间语音通信所对应的密钥。需要说明的是,该密钥会相应存储在第二移动终端20中的第二SIM卡201中,并与第一移动终端10的电话号码(下文称为第一电话号码)相关联。
第一通信模块102收到第一SIM卡101发送的STK命令后,对该STK命令进行解析,从中得到密钥和第二电话号码。第一通信模块102利用该密钥对第一移动终端10发送给第二移动终端20的语音帧进行加密。加密完成后,第一通信模块102按照第二电话号码将经过加密的语音帧发送至第二移动终端20。利用密钥对语音帧进行加密是本领域技术人员所熟悉的技术手段,为了简明起见,在此不再赘述。
第二移动终端20中的第二通信模块202收到第一移动终端10的呼叫后,将第一移动终端10的第一电话号码以STK命令的形式发送至第二SIM卡201。与第一SIM卡101一样,第二SIM卡201中也预存储用于第二移动终端20与联系人之间语音通信加密解密的多个密钥,其中,每一密钥对应一个联系人,第二SIM卡201将每一密钥与其对应的联系人的电话号码相关联后存储。第二SIM卡201根据第一电话号码即可从预存储的多个密钥中确定与第一电话号码相关联的密钥,即确定与第一移动终端10和第二移动终端20之间语音通信所对应的密钥。在本实施例中,第二SIM卡201中和第一SIM卡101中预存储的与第一移动终端10和第二移动终端20之间语音通信所对应的密钥是相同的。第二SIM卡201根据第一电话号码确定密钥后,将该密钥发送至第二通信模块202。
第二通信模块202利用第二SIM卡201发送的密钥对接收到的第一移动终端10发送的经过加密的语音帧进行解密,解密后的语音帧将被发送至第二移动终端20的听筒提供给第二移动终端20的用户(下文以第二用户表示)收听。
当第二移动终端20的第二用户对第一移动终端10的用户(下文以第一用户表示)进行回复时,第二移动终端20向第一移动终端10发送语音帧。具体地,第二移动终端20中的第二通信模块202利用上述密钥对语音帧进行加密,然后将加密后的语音帧发送至第一移动终端10。第一移动终端10接收到第二移动终端20发送的经过加密的语音帧之后,利用相同的密钥对接收到的语音帧进行解密。以此类推直至第一移动终端10和第二移动终端20之间的语音通信结束,从而实现了第一移动终端10和第二移动终端20之间语音通信的加密解密。
进一步地,本发明所提供的语音通信加密解密的***还包括OTA服务器。请参考图4,图4是根据本发明的语音通信加密解密的***的一种优选实施方式的结构示意图。如图所示,所述OTA服务器30进一步包括关联存储模块301和发送模块302,其中:
所述第一SIM卡101,还用于预存储第一私钥、以及还用于根据所述第一移动终端10对所述第一STK菜单的操作向所述第一SIM卡101内存储所述第二移动终端20的第二电话号码并触发所述发送模块302;
所述第二SIM卡201,还用于预存储第二私钥;
所述关联存储模块301,用于预存储所述第一移动终端10的第一电话号码和与该第一电话号码相关联的第一公钥、以及预存储与所述第二移动终端20的第二电话号码相关联的第二公钥,该第一公钥对应于所述第一私钥,该第二公钥对应于所述第二公钥;
所述发送模块302,用于受到触发后将所述第二公钥发送至所述第一SIM卡101进行存储、以及将所述第一电话号码和所述第一公钥发送至所述第二SIM卡201进行存储;
所述第一SIM卡101和所述第二SIM卡201,还用于利用所述第一私钥和所述第二公钥、所述第二SIM卡201利用所述第二私钥和所述第一公钥生成所述密钥并分别存储所述密钥。
具体地,第一移动终端10通过第一STK菜单中的加密通话电话簿选项向第一SIM卡101内存储第二移动终端20的第二电话号码。本领域技术人员可以理解的是,在将第二电话号码存储至第一SIM卡101的时候,还可以相应存储与该第二电话号码相对应的用户信息(例如第二用户的姓名、昵称等),从而使第一移动终端10的第一用户可以通过该姓名、昵称等快捷地从加密通话电话簿中找到第二用户。存储成功后,第二电话号码将会显示在该加密通话电话簿中,当第一移动终端10的第一用户需要和第二移动终端20建立加密语音通话时从该加密通话电话簿中选择第二电话号码即可发起呼叫。
第一SIM卡101对第二电话号码进行存储后,通过短信的方式将第二电话号码发送至OTA服务器30。OTA服务器30中的发送模块302根据该第二电话号码将与第二电话号码相关联的公钥(下文中以第二公钥表示)以短信的方式发送至第一移动终端10并存储至第一SIM卡101内。与此同时,发送模块302还会通过短信的方式将第一电话号码和与该第一电话号码相关联的公钥(下文中以第一公钥表示)发送至第二移动终端20并存储至第二SIM卡201内。其中,第一移动终端10的第一电话号码和与该第一电话号码相关联的第一公钥、以及与第二移动终端20的第二电话号码相关联的第二公钥预存储在OTA服务器30中的关联存储模块301中。需要说明的是,若关联存储模块301内并未预存储第二公钥,那么发送模块302向第一移动终端10发送短信提示第一用户该第二电话号码不具备语音通信加密的权限,第一移动终端10无法和第二移动终端20之间建立加密语音通信。采用OTA的方式发送公钥至移动终端处可以保证公钥传输的安全性。
在本实施例中,与第一公钥对应的私钥(下文中以第一私钥表示)预存储在第一SIM卡101内,与第二公钥对应的私钥(下文中以第二私钥表示)预存储在第二SIM卡201内。在发送模块302将第二公钥发送至第一移动终端10并存储至第一SIM卡101内后,第一SIM卡101中包括第一私钥、第二电话号码以及与该第二电话号码相关联的第二公钥。在发送模块302将第一电话号码和第一公钥发送至第二移动终端20并存储至第二SIM卡201内后,第二SIM卡201中包括第二私钥、第一电话号码以及与该第一电话号码相关联的第一公钥。
下面,对关联存储模块301如何实现预存储第一公钥和第二公钥进行说明。在一个实施例中,第一SIM卡101中预存储第一私钥和第一公钥,第二SIM卡201预存储第二私钥和第二公钥。在第一移动终端10通过第一STK菜单向第一SIM卡101内存储所述第二移动终端20的第二电话号码之前,第一移动终端10通过第一STK菜单(例如注册选项)将第一电话号码和第一公钥发送至关联存储模块301进行关联并存储,第二移动终端20通过第二STK菜单(例如注册选项)将第二电话号码和第二公钥发送至关联存储模块301进行关联并存储,从而使得关联存储模块301中预存储第一电话号码和与其相关联的第一公钥、以及预存储第二电话号码以及与其相关联的第二公钥。
当发送模块302根据该第二电话号码第二公钥发送至第一移动终端10并存储至第一SIM卡101内以及将第一电话号码和与第一公钥发送至第二移动终端20并存储至第二SIM卡201内后,第一SIM卡101利用第一私钥和第二公钥、第二SIM卡201利用第二私钥和第一公钥生成用于第一移动终端10和第二移动终端20之间语音通信加密解密的密钥。具体地,第一SIM卡101首先生成一个随机数(下文以第一随机数表示)并利用第一私钥对该第一随机数进行加密;然后第一SIM卡101通过短信将加密后的第一随机数发送至第二移动终端20;第二移动终端20收到该短信后,第二SIM卡201利用第一公钥对该加密后的第一随机数进行解密以得到未加密的第一随机数;接着第二SIM卡201生成用于第一移动终端10和第二移动终端20之间语音通信加密解密的密钥,并将该密钥和第一随机数组合生成第二随机数;第二SIM卡201利用第二私钥对该第二随机数进行加密,然后将加密后的第二随机数通过短信的方式发送至第一移动终端10;第一移动终端10收到短信后,第一SIM卡101利用第二公钥对第二随机数进行解密以得到未加密的第二随机数;第一SIM卡101判断该第二随机数中包括其初始生成的第一随机数后,从该第二随机数中提取出剩余部分作为密钥。第一SIM卡101存储该密钥并通过短信的方式向第二SIM卡201确认收到密钥,第二SIM卡201收到第一SIM卡101的确认信息后对密钥进行存储。当第一移动终端10和第二移动终端20之间建立语音通信时,该密钥将用于对该语音通信进行加密解密。其中,利用密钥对语音通信进行加密解密的过程请参考前述实施例中的相应内容,为了简明起见,在此不再赘述。
本领域技术人员可以理解的是,在本实施例中,生成密钥的过程是由第一移动终端10首先发起的,在其他实施例中,生成密钥的过程也可以由第二移动终端20首先发起。
优选地,当第一移动终端10和第二移动终端20结束语音通信后,第一SIM卡101和第二SIM卡201分别对其内的密钥进行更新。如此一来,第一移动终端10和第二移动终端20之间每次语音通信采用的是不同的密钥,从而极大地提高了他人破解密钥窃听通话的难度,使得语音通信的安全性进一步得到提升。在一个具体实施例中,第一SIM卡101和第二SIM卡201仍然可以采用上述通过短信握手的方式利用第一私钥和第二公钥、第二私钥和第一公钥生成新的密钥,然后第一SIM卡101存储该新的密钥以替换原有的密钥,同样地,第二SIM卡201存储该新的密钥以替换原有的密钥。当第一移动终端10和第二移动终端20再次建立语音通信时,则使用该新的密钥对语音通信进行加密解密。
优选地,OTA服务器还包括注销模块303,其中,所述注销模块303,用于当所述第一电话号码和/或所述第二电话号码需要注销时向所述第一移动终端和/或所述第二移动终端发送注销命令,所述第一SIM卡,还用于根据所述注销指令删除其内部和语音通信加密解密相关的所有信息,所述第二SIM卡,还用于根据所述注销指令删除其内部和语音通信加密解密相关的所有信息。具体地,当所述第一电话号码和/或所述第二电话号码不再具有加密通话权限需要注销时,注销模块303向第一移动终端10和/或第二移动终端20发送注销命令,第一移动终端10和/或第二移动终端20收到该注销命令后,第一SIM卡101和/或第二SIM卡201将删除其内部和语音通信加密解密相关的所有信息,即删除STK菜单中和加密通话相关的选项(例如加密通话电话簿等)、以及删除SIM卡内具有加密通话权限的联系人的信息(电话号码、与该电话号码相关联的公钥和密钥)和预存储的公钥私钥等。删除了和语音通信加密解密相关的所有信息之后,该SIM卡无法再进行任何加密通话的行为,但是仍可以实现普通语音通话的功能。举例说明,一涉密单位中所有员工之间的通话都利用本发明所提供的方法对语音通信进行加密解密,以防止通话被窃听,若其中某一员工的手机不慎丢失,则注销模块303可以通过下发注销命令的方式来触发丢失手机的SIM卡删除所有相关信息,如此一来,确保了丢失手机中的有关加密通话的信息不会被泄露,从而更进一步地提升了加密通话的安全性。
请参考图5,图5是可实现本发明提供的语音通信加密解密方法的移动终端的结构示意图。图5示意性地示出了所述移动终端的常见结构,参考图5对常见的移动终端的内部组件、软件和协议结构进行说明。
该移动终端具有处理器510,其负责移动终端的整体操作,并且可以利用任何商业可得中央处理单元、数字信号处理器或任何其他电子可编程逻辑器件实现。处理器510具有关联的存储器520,该存储器520包括但不限于RAM存储器、ROM存储器、EEPROM存储器、闪存或其组合。存储器520由处理器500控制用于各种目的,其中之一在于为移动终端中各种软件存储程序指令和数据。
该移动终端的软件层面包括实时操作***540、用于人机界面560的驱动器、应用处理机550和各种应用。所述应用例如是文本编辑器551、手写识别应用552和各种其他多媒体应用553,典型地该其他多媒体应用包括诸如语音呼叫应用、视频呼叫应用、发送和接收短消息服务(SMS)消息应用、多媒体消息服务(MMS)应用或电子邮件应用、web浏览器、即时消息收发应用、电话簿应用、日历应用、控制面板应用、照相机应用、一个或多个视频游戏、记事本应用等。应当注意,上述应用的两个或更多可以作为同一应用执行。
所述移动终端还包括一个或多个硬件控制器,用于与人机界面560的驱动器一起与显示设备561,物理按键562、麦克风563和各种其他I/O设备564(诸如扬声器、振动器、响铃发生器、LED指示器等)协作,以实现所述移动终端的人机交互。本领域技术人员应当理解用户可以通过这样形成的人机界面560来操作移动终端。
该移动终端的软件层面还可以包括各种模块、协议栈、驱动器等与通信相关的逻辑,归纳为如图5中示出的通信接口570,用于为无线射频接口571以及可选地为蓝牙接口572和/或红外接口573提供通信服务(例如传输、网络和连通性),以实现所述移动终端的网络连通性。无线射频接口571包括内部或外部天线以及用于建立和维护通往基站的无线链路的适当无线电电路。如本领域技术人员公知的,所述无线电电路包括一系列模拟和数字电子组件,其一起形成无线电接收机和发射机。这些组件例如包括带通滤波器、放大器、混频器、本地振荡器、低通滤波器、AD/DA转换器等。
移动通信终端还可以包括读卡装置530,该读卡装置530通常包括处理器以及数据存储器等,用于读出SIM卡的信息并以此为根据协作无线射频接口517接入运营商所提供的网络。
本发明提供的语音通信加密解密的方法可以使用可编程逻辑器件来实现,也可以实施为计算机程序软件,例如根据本发明的实施例可以是一种计算机程序产品,运行该程序产品使计算机执行用于所示范的方法。所述计算机程序产品包括计算机可读存储介质,该介质上包含计算机程序逻辑或代码部分,用于实现上述方法的各个步骤。所述计算机可读存储介质可以是被安装在计算机中的内置介质或者可从计算机主体拆卸的可移动介质(例如热拔插技术存储设备)。所述内置介质包括但不限于可重写的非易失性存储器,例如RAM、ROM、快闪存储器和硬盘。所述可移动介质包括但不限于:光存储媒体(例如CD-ROM和DVD)、磁光存储媒体(例如MO)、磁存储媒体(例如盒带或移动硬盘)、具有内置的可重写的非易失性存储器的媒体(例如存储卡)和具有内置ROM的媒体(例如ROM盒)。
本领域技术人员应当理解,任何具有适当编程装置的计算机***都将能够执行包含在程序产品中的本发明的方法的诸步骤。尽管本说明书中描述的多数具体实施方式都侧重于软件程序,但是作为固件和硬件实现本发明提供的方法的替代实施例同样在本发明要求保护的范围之内。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他部件、单元或步骤,单数不排除复数。***权利要求中陈述的多个部件、单元或装置也可以由一个部件、单元或装置通过软件或者硬件来实现。
本发明所提供的语音通信加密解密的方法及***在移动终端之间建立语音通信后由SIM卡将预存储在其内部的密钥发送至通信模块,然后由通信模块利用该密钥对语音通信进行加密解密处理。一方面,由于对语音通信进行了加密解密,因此成功地实现了移动终端在公共网络上的加密语音通信,从而有效地防止了语音通信被他人窃听,进而有效地保证了语音通信过程中所涉及的用户信息不会轻易被泄露;另一方面,由于SIM卡自身具有很高的安全性,因此,将密钥存储在SIM卡的内部相较于将密钥存储在手机的其他地方(例如内存等)可以有效地提高密钥管理的安全性,即使SIM卡发生遗失,他人也无法轻易从中获取密钥,从而进一步保证了语音通信的安全性;又一方面,移动终端之间建立语音通信后,SIM卡通过STK命令将密钥发送至通信模块后由通信模块来执行加密解密的操作,因此可以有效地提高语音通信加密解密的速度,使实时加密解密语音通信变为可能;又一方面,在整个语音通信加密解密过程中用户通过STK菜单的方式进行通话操作,其中,STK菜单的方式不仅仅操作方便而且也便于移植。优选地,用于移动终端之间语音通信加密解密的密钥由SIM卡生成,从而更进一步地确保了密钥的安全性。
以上所揭露的仅为本发明的一些较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。