本发明属于网络空间安全技术领域,尤其涉及一种基于RSA公钥的短信加密方法。
背景技术:
由于网络的迅速普及,数字化技术的快速发展,网络空间安全问题,逐渐走入人们的视野,为人们所重视。面临复杂多变的网络环境、潜在的网络威胁与攻击,计算机数据安全与加密,越来越受到人们的密切关注。如何保证数据在传输过程中的安全性,使得信息不被非法第三方窃取,显得尤为重要;数据加密作为网络中最基础的安全技术,以其代价小,防御主动有效而备受人们的青睐。RSA算法是目前最有影响力的公钥加密算法,是当前最著名、应用最广泛的公钥系统。早在1978年,就被由美国麻省理工学院(MIT)的Rivest、Shamir和Adleman在题为《获得数字签名和公开钥密码系统的方法》论文中提出,是一个基于数论的非对称(公开钥)密码体制,是一种分组密码体制;其名称来自于三个发明者的姓名首字母;已被ISO推荐为公钥加密标准;只要其钥匙的长度足够长,用RSA加密的信息实际上是不能被解破的;目前,RSA可根据密钥长度分为1024比特与2048比特两种。RSA算法基于大数分解:将两个大素数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥;RSA算法的优点有:1.能同时用于加密和数字签名的算法;2.易于理解和操作;3.该算法的加密密钥和加密算法分开,使得密钥分配更为方便;4.特别适用于网络环境,对于网络上的大量用户,可以将加密密钥以公钥目录的方式给出。近些年,智能移动端接管了人们生活的方方面面,人们利用手机、平板电脑等设备娱乐,社交,购物等等活动。作为基础功能之一的短信发送更是成为日常生活的重要组成部分。据统计,仅2013年全球短信发送就达到了10.3万亿条。虽然近些年,一些即时通讯软件占据了手机市场的半壁江山,但是不可否认,即时通讯软件仍然有很多弊端:1.过度依赖于网络,如果离开了数据网络,即时通讯软件便不能使用;2.即时通讯软件需要预装客户端,如果通信双方中有一方没有安装客户端,那么通信就无法继续进行;3.即时通讯软件现阶段还是给人一种非官方,不严谨的感觉;人们通知重要的事情,往往还是倾向于利用短信、电话等通信手段。
然而,人们日常使用的短信,却面临着来自恶意软件等方面的威胁,世界著名安全厂商赛门铁克发表了一份报告,称在所有安卓应用中,有百分之17都是恶意应用,每不到6个安卓App中就存在一个恶意软件,其泛滥程度可见一斑。统计还称,在2013年一年中,安卓平台上约有70万个恶意App;而到了2014年,安卓恶意App数量已经增长到了100万个。这些恶意软件会盗取用户隐私信息,诱使用户开通付费服务等等。恶意软件的其中一个重要的目标就是——盗取用户的短信内容。
技术实现要素:
本发明的目的在于提供一种基于RSA公钥的短信加密方法,旨在解决目前日常使用的短信存在恶意软件会盗取用户隐私信息,用户隐私遭到泄漏的问题。
本发明是这样实现的,一种基于RSA公钥的短信加密方法,所述基于RSA公钥的短信加密方法包括以下步骤:
步骤一,通信实体提交个人身份信息申请文件给注册机构审核,注册机构审核通过之后,将申请文件提交给CA中心,CA中心根据此申请文件签发个人数字证书和对应私钥。CA中心通过U盘等存储设备将生成的个人数字证书和对应私钥交给通信实体。利用权威机构颁发的个人数字证书,通信实体可以有效证明自身身份,从而实现自身隐私数据的加密保护。
步骤二,通信实体对自己的身份与公钥证书和私钥进行绑定操作,指定证书的信任根;
步骤三,通信实体与对等通信实体进行沟通,指定对等通信实体的公钥证书,对对等通信实体的公钥信息与身份信息进行一一对应,对等通信实体会向原通信实体返回公钥证书信息,拿到该证书后,将对等通信实体信息与证书作一一映射;
步骤四,通信实体用对等通信实体的证书对短信进行RSA公钥加密,将加密后的短信通过经典信道传送至通信实体;
步骤五,对等通信实体接收到信息之后,输入RSA私钥保护口令,将发送方发送的明文进行恢复。
进一步,所述绑定的内容包括:个人身份信息与证书、私钥一一对应;个人身份信息包括电话号码、单位和姓名。
进一步,所述指定证书的信任根,对与后缀名为cer的公钥证书文件,与后缀名为pfx的私钥文件进行浏览与指定。
进一步,在映射的过程中,调用Android原生系统提供的API函数,获取通信录姓名及对应电话,同时利用Shareparefence对各个属性字段进行键值对关联操作。
进一步,对短信进行RSA公钥加密,加密函数会从证书文件中读取公钥,将明文消息用Base64进行编码操作,再用公钥对明文编码后的明文消息进行加密处理,将加密后的编码过短信通过Android提供的原生态接口回调给发送短信的交互界面。
本发明的另一目的在于提供一种所述基于RSA公钥的短信加密方法的短信加密系统,所述短信加密系统包括:
签发个人数字证书CA中心,用于根据用户提交的个人数字申请文件为新用户签发这人数字证书和相应的私钥文件;
证书私钥绑定模块,用于指定个人数字证书和私钥文件路径与使用用户的手机号绑定,生成身份属性文件;
解密短信模块,用于接收短信,根据身份属性文件,获得私钥文件路径,并根据输入的解密口令获得私钥,从而解密短信;
阅读短信模块,用于调用系统短信数据库,将短信信息呈现给用户;
加密短信模块,用于发送短信,根据接收方的个人数字证书,加密短信;
发送短信模块,用于调用系统短信发送模块发送短信;
签名短信模块,用于调用绑定的身份属性文件,获得私钥文件,为发送的短信签名,用于接收方验证短信的完整性。
本发明的另一目的在于提供一种应用所述基于RSA公钥的短信加密方法的Android移动平台。
本发明的另一目的在于提供一种应用所述基于RSA公钥的短信加密方法的密钥共享方法。
本发明的另一目的在于提供一种应用所述基于RSA公钥的短信加密方法的数字签名方法。
本发明的另一目的在于提供一种应用所述基于RSA公钥的短信加密方法的电子邮件加密方法。
本发明提供的基于RSA公钥的短信加密方法,与现有技术相比,具有如下有益效果:
(1)本发明没有借助任何外界的辅助硬件即可实现保密通信,实用性强,开发成本低、能耗少:具体来说,开发成本低表现在Android应用采用了SUN公司开发的Java语言,Java语言是一门高级语言,由于没有指针、不必刻意去管理内存,所以入门非常快。其二,Android本身拥有丰富的API调用接口,满足了大部分的开发需求,此外,在互联网上还有数量庞大的功能性开源库。:而能耗少表现在生成的APK文件是独立运行在Android系统上,只需要借助Android原生态的虚拟机,并没有任何辅助设备就可以实现加密解密,没有对系统本身造成任何源代码上的变更,没有对发短信的功能进行任何源代码上的修改,实现简单,并且不需要ROOT权限。
(2)本发明在使用的过程中,投递信息借助的信道是经典信道,不过分依赖网络。
(3)本发明采用了RSA加密算法,算法的安全性高,效率相对较高。例如,1999年,一台Cray超级电脑用了5个月时间分解了512位长的密钥,而分解一个768位RSA密钥所需时间是512位的数千倍,而1024位所需时间则是768位的一千多倍,因此现在普遍采用的1024位相对比较安全,而采用2048位是绝对安全的;适用于现实环境中,一对多,多对一的通信录式通信环境:具体来说,通过公钥加密体制的特性,用户可以将多个公钥对应于多个用户,然后根据公钥对每个通信的实体进行加密,同时也可选择将同一个公钥对应于一个通信组,满足于多人通信中对于组间用户的内容上的访问控制。
(4)本发明有效地解决了双卡双待中密钥的分发问题,在双卡环境中,用户既可以将两个卡对应的号码捆绑至一对公私钥上,又可以将两个卡对应的号码捆绑于两对公私上。完全取决于用户对于安全性的需求;用户不需要过硬的密码学背景便可对软件熟练使用,用户体验相对好。
(5)本发明从技术上真正实现了对应和绑定操作,大部分界面与功能都是Android系统原生态的功能,如短信发送,通信录等,因而体积小巧,安装包不到2M;RSA是一种目前最有影响力的公钥加密算法,被ISO推荐为公钥数据加密标准。RSA除了用于加密,还可用于密钥共享,数字签名等密码学领域。基于RSA公钥加密技术则可以应用于电子邮件加密系统、企业内部隐私文件保护等领域。
附图说明
图1是本发明实现所提供的基于RSA公钥的短信加密方法流程图。
图2是本发明实现所提供的基于RSA公钥的短信加密系统结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施仅仅用以解释本发明,并不用于限定本发明。
本发明借助第三方可信机构CA颁发的证书,可以保证通信实体A与通信实体B之间的安全通信。通信实体A向B发送的信息,只有通信实体B可以解密,任何中间人为的窃听,恶意软件的盗取,都不能窥探短信息本身的内容。
下面结合附图对本发明的应用原理作详细的描述。
如图1所示,本发明实现所提供的基于RSA公钥的短信加密方法包括以下步骤:
S101:通信实体,通过第三方CA获得个人的数字证书和对应的私钥;
S102:通信实体(发送方)对自己的身份与公钥证书和私钥进行绑定操作;绑定的内容包括:个人身份信息(包括电话号码,单位,姓名)与证书、私钥一一对应,如A绑定A的证书,私钥;同时,指定证书的信任根;
S103:通信实体(发送方)与对等通信实体(接收方)进行沟通,指定对等通信实体的公钥证书,对对等通信实体的公钥信息与身份信息进行一一对应,对等通信实体(接收方)会向原通信实体(发送方)返回一个公钥证书信息,发送方拿到该证书后,将接收方信息(电话号码,姓名,单位)与证书作一一映射;
S104:发送方用接收方的证书对短信进行RSA公钥加密,将加密后的短信通过经典信道传送至接收方;
S105:接收方接收到信息之后,输入RSA私钥保护口令,将发送方发送的明文进行恢复。
如图2所示,本发明实现所提供的基于RSA公钥的短信加密系统包括:
签发个人数字证书CA中心:该CA中心是根据X509标准设计实现的个人数字证书签发系统。CA中心根据用户提交的个人数字申请文件为新用户签发这人数字证书和相应的私钥文件。
证书私钥绑定模块:指定个人数字证书和私钥文件路径与使用用户的手机号绑定,生成身份属性文件。
解密短信模块:用于接收短信,根据身份属性文件,获得私钥文件路径,并根据输入的解密口令获得私钥,从而解密短信。
阅读短信模块:调用系统短信数据库,将短信信息呈现给用户。
加密短信模块:用于发送短信,根据接收方的个人数字证书,加密短信。
发送短信模块:调用系统短信发送模块发送短信。
签名短信模块:调用绑定的身份属性文件,获得私钥文件,为发送的短信签名,用于接收方验证短信的完整性。下面结合具体实施例对本发明的应用原理作进一步的描述。
本发明实现所提供的基于RSA公钥的短信加密方法包括以下步骤:
步骤一,通信实体A与B,通过第三方CA获得个人的数字证书和对应的私钥,具体获得过程是通过提交个人身份信息申请文件给注册机构审核,注册机构审核通过之后,将申请文件提交给CA中心,CA中心根据此申请文件签发个人数字证书和对应私钥。CA中心通过U盘等存储设备将生成的个人数字证书和对应私钥交给用户,进而用户获得个人的数字证书和对应的私钥。
步骤二,通信实体A对自己的身份与公钥证书和私钥进行绑定操作;绑定的内容包括:个人身份信息(包括电话号码、单位和姓名)与证书、私钥一一对应。如A绑定A的证书,私钥;同时,指定证书的信任根,在指定的过程中,软件内置文件浏览功能,可对与后缀名为cer的公钥证书文件,与后缀名为pfx的私钥文件进行浏览与指定;其余文件本软件会对其进行忽略处理;绑定过程中我们利用Android原生系统为开发者提供的Shareparefence对各个属性字段进行键值对关联操作;利用代码同步以及内部类构造器等技术保证关联操作的线程安全性。
步骤三,通信实体(发送方A)与对等通信实体(接收方B)进行沟通,发送方A指定接收方B的公钥证书,对对等通信实体的公钥信息与身份信息进行一一对应;具体来说,对等通信实体(接收方)会向原通信实体(发送方)返回一个公钥证书信息,发送方拿到该证书后,将接收方信息(电话号码,姓名,单位)与证书作一一映射;在映射的过程中,调用Android原生系统提供的API函数,获取通信录姓名及对应电话,同时利用Android原生系统为开发者提供的Shareparefence对各个属性字段进行键值对关联操作;利用代码同步以及内部类构造器等技术保证关联操作的线程安全性。
步骤四,发送方用接收方的证书对短信进行RSA公钥加密,加密函数会从证书文件中读取公钥,同时将明文消息用Base64进行编码操作,再用公钥对明文编码后的明文消息进行加密处理,将加密后的编码过短信通过Android提供的原生态接口回调给发送短信的交互界面,再由经典信道传送至接收方;选择使用交互界面而非直接后台发送的原因是由于很多Android系统对原生系统的改动较大,加上了API钩子等约束应用直接发送短信的接口,直接发送有可能导致软件在发送过程中调用失败。
步骤五,接收方接收到信息之后,输入RSA私钥保护口令,将发送方发送的明文进行恢复。回复后,再用Base64进行编码,最终恢复出明文信息。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。