智能手机短信加密方法及系统与流程

文档序号:11693049阅读:474来源:国知局
智能手机短信加密方法及系统与流程

本发明涉及一种信息加密方法及系统,属于通信领域。



背景技术:

在信息技术不断发展,科学技术也不断提升的高科技时代下,信息安全尤为重要。其中,移动互联网下的信息安全问题更是不容小觑,例如:2013年爆发的斯诺登棱镜门事件。

现阶段移动互联网领域中智能手机已经占据了很大一部分的比例,使用智能手机的移动用户之间的通信则变得更加的频繁,因为目前手机上的短信都是通过明文方式发送的,这对有保密信息的短信来说泄密风险很大,因为手机的信号都是空中传输的,通过技术手段可以截获,如通过复制sim卡的方式可以在复制卡在线的情况下收取该号码的任意短信。这对通过手机发送机密信息产生了极大的威胁。



技术实现要素:

针对上述不足,本发明提供一种保证用户传输数据信息的安全的智能手机短信加密方法及系统。

本发明的智能手机信息加密方法,包括信息输入步骤和信息发送/接收步骤,所述加密方法还包括加密步骤、解密步骤和显示步骤;

信息输入步骤,用于输入密钥和待发送信息;

加密步骤,用于根据密钥将待发送的信息和接收到且未加密的信息采用aes算法加密成密文;

解密步骤,用于采用密钥和aes算法将加密后的信息解密为明文;

显示步骤,将发送信息和接收信息以密文的形式显示,当输入正确密钥后,利用密钥和解密步骤将密文解密为明文,并显示该明文;

信息发送/接收步骤,用于发送/接收信息。

优选的是,所述加密步骤包括:

根据密钥将待加密的信息进行初步轮密钥加的步骤;

将初步轮密钥加后的信息依次进行十轮加密,获得加密后的信息的步骤;

第一轮至第九轮加密,每轮加密将信息依次进行字节替代、行移位、列混合和轮密相加;

第十轮加密,将信息依次进行字节替代、行移位和轮密相加;

对初始密钥进行密钥扩展,扩展后的密钥用于十轮加密和十轮解密过程中的轮密相加;

所述解密步骤包括:

将加密后的信息根据最后一次扩展的密钥,进行初步轮密钥加的步骤;

将初步轮密钥加后的信息依次进行十轮解密,获得解密后的信息的步骤;

第一轮至第九轮解密,每轮解密将加密信息依次进行字逆行移位、逆字节替代、轮密相加和逆列混合;

第十轮解密,将信息依次进行字节替代、行移位和轮密相加。

优选的是,所述加密方法还包括:

更改密钥步骤,用于输入旧密钥,当旧密钥输入正确,输入新密钥;

获取密文文本的步骤,用于当密钥更改成功后,对数据库内所有发送的信息和接收的信息进行搜索,获取每一条信息的密文文本和相应的时间信息;

重新加密的步骤,用于根据旧密钥调用解密步骤将获取的密文文本解密为明文,并调用加密步骤和新密钥对明文进行加密;

更新数据库的步骤,用于根据获取的时间信息,修改数据库内容。

优选的是,所述加密方法还包括:

当要发送的信息的长度小于设定长度时,将该信息的长度补充至设定长度,利用加密步骤将补充后的信息进行加密的步骤;

当要发送的信息的长度大于设定长度时,将该信息按每设定长度分组,按分组顺序调用加密步骤对各组信息进行加密的步骤。

本发明还提供一种智能手机信息加密系统,包括信息输入模块和信息发送/接收模块,其特征在于,所述加密方法还包括加密模块、解密模块和显示模块;

信息输入模块,用于输入密钥和待发送信息;

加密模块,用于根据密钥将待发送的信息和接收到且未加密的信息采用aes算法加密成密文;

解密模块,用于采用密钥和aes算法将加密后的信息解密为明文;

显示模块,将发送信息和接收信息以密文的形式显示,当输入正确密钥后,利用密钥和解密模块将密文解密为明文,并显示该明文;

信息发送/接收模块,用于发送/接收信息。

优选的是,所述加密模块包括:

根据密钥将待加密的信息进行初步轮密钥加的模块;

将初步轮密钥加后的信息依次进行十轮加密,获得加密后的信息的模块;

第一轮至第九轮加密,每轮加密将信息依次进行字节替代、行移位、列混合和轮密相加;

第十轮加密,将信息依次进行字节替代、行移位和轮密相加;

对初始密钥进行密钥扩展,扩展后的密钥用于十轮加密和十轮解密过程中的轮密相加;

所述解密模块包括:

将加密后的信息根据最后一次扩展的密钥,进行初步轮密钥加的模块;

将初步轮密钥加后的信息依次进行十轮解密,获得解密后的信息的模块;

第一轮至第九轮解密,每轮解密将加密信息依次进行字逆行移位、逆字节替代、轮密相加和逆列混合;

第十轮解密,将信息依次进行字节替代、行移位和轮密相加。

优选的是,所述加密系统还包括:

更改密钥模块,用于输入旧密钥,当旧密钥输入正确,输入新密钥;

获取密文文本的模块,用于当密钥更改成功后,对数据库内所有发送的信息和接收的信息进行搜索,获取每一条信息的密文文本和相应的时间信息;

重新加密的模块,用于根据旧密钥利用解密模块将获取的密文文本解密为明文,并用加密模块和新密钥对明文进行加密;

更新数据库的模块,用于根据获取的时间信息,修改数据库内容。

优选的是,所述加密系统还包括:

当要发送的信息的长度小于设定长度时,将该信息的长度补充至设定长度,利用加密模块进行加密的模块;

当要发送的信息的长度大于设定长度时,将该信息按每设定长度分组,按分组顺序利用加密模块加密的模块。

本发明还提供一种智能手机信息加密系统,包括存储器、处理器以及存储在所述处理器中并可在所述处理器上运行的计算机程序,所述处理器执行如权利要求1、2、3或4所述方法的步骤。

本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1、2、3或4所述方法的步骤。

上述技术特征可以各种适合的方式组合或由等效的技术特征来替代,只要能够达到本发明的目的。

本发明的有益效果在于,本发明基于智能手机的app实现,无论发送的信息、接收的信息都进行加密,存储时也是密文的方式存储,查看时需要根据密钥验证,验证成功后,才能查看明文,同时本发明采用aes算法进行开发,采用十轮加密和解密,同时还可以更改密钥,保证用户传输数据信息安全。

本发明可实现智能手机用户间通过自主协定来重新更改密钥的情况,更改过密钥后不会影响对之前信息发送或接收记录的明文信息查看功能,本实施方式会自动根据新的密钥信息对存储在发送和接收数据库中的全部密文信息做更新轮换操作,实时高效的保证用户保存或传递数据信息的安全。

附图说明

图1为采用aes算法的加密流程和解密流程示意图。

图2为具体实施例的总体示意图。

图3为开启短信加密应用软件流程图。

图4为主界面的整体布局示意图。

图5为短信明文变密文的处理流程示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。

下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。

本实施方式所述的智能手机信息加密方法,包括信息输入步骤和信息发送/接收步骤,所述加密方法还包括加密步骤、解密步骤和显示步骤;

信息输入步骤,用于输入密钥和待发送信息;

加密步骤,用于根据密钥将待发送的信息和接收到且未加密的信息采用aes算法加密成密文;

解密步骤,用于采用密钥和aes算法将加密后的信息解密为明文;

显示步骤,将发送信息和接收信息以密文的形式显示,当输入正确密钥后,利用密钥和解密步骤将密文解密为明文,并显示该明文;

信息发送/接收步骤,用于发送/接收信息。

本实施方式无论发送的信息、接收的信息都进行加密,存储时也是密文的方式存储,查看时需要根据密钥验证,验证成功后,才能查看明文,增加用户信息的安全性。

优选实施例中,本实施方式的加密步骤和解密步骤采用aes算法包括:

根据密钥将待加密的信息进行初步轮密钥加的步骤;

将初步轮密钥加后的信息依次进行十轮加密,获得加密后的信息的步骤;

第一轮至第九轮加密,每轮加密将信息依次进行字节替代、行移位、列混合和轮密相加;

第十轮加密,将信息依次进行字节替代、行移位和轮密相加;

对初始密钥进行密钥扩展,扩展后的密钥用于十轮加密和十轮解密过程中的轮密相加;

本时候方式的解密步骤包括:

将加密后的信息根据最后一次扩展的密钥,进行初步轮密钥加的步骤;

将初步轮密钥加后的信息依次进行十轮解密,获得解密后的信息的步骤;

第一轮至第九轮解密,每轮解密将加密信息依次进行字逆行移位、逆字节替代、轮密相加和逆列混合;

第十轮解密,将信息依次进行字节替代、行移位和轮密相加。

本实施方式采用aes算法实现加密步骤和解密步骤,aes算法轮变换主要由四大部分组成,分别为字节替代(subbytes)、行位移(shiftrows)、列混合(mixcolumns)和轮密钥加(addroundkey)组成,从图1中看出左边是加密流程、右边是解密流程、中间为密钥扩展(expandedkey)变换,加密过程中除最后一轮加密变换没有列混合(mixcolumns),其余轮次都按照字节替代(subbytes)、行移位(shiftrows)、列混合(mixcolumns)和轮密钥加(addroundkey)进行运算,解密运算则是同样除最后一轮解密变换没有逆列混合变换,其余轮次都按照逆行移位(invshiftrows)、逆字节替代(invsubbytes)、轮密钥加(addroundkey)和逆列混合(invmixcolumns)进行运算,中间的密钥扩展(expandedkey)变换则在每一轮加解密轮次的时候进行相应的扩展轮换。

优选实施例中,本实施方式的加密方法还包括:

更改密钥步骤,用于输入旧密钥,当旧密钥输入正确,输入新密钥;

获取密文文本的步骤,用于当密钥更改成功后,对数据库内所有发送的信息和接收的信息进行搜索,获取每一条信息的密文文本和相应的时间信息;

重新加密的步骤,用于根据旧密钥调用解密步骤将获取的密文文本解密为明文,并调用加密步骤和新密钥对明文进行加密;

更新数据库的步骤,用于根据获取的时间信息,修改数据库内容。

本实施方式对密钥进行修改,且修改后的密钥需要重新写对数据库中的文本进行加密,可以通过新密钥来对短信息进行发送和接收的操作,同时也可以用新密钥查看以前发送和接收过的短信息历史记录,这样就大大的增加了本加密应用软件设计的安全性和可靠性。

优选实施例中,本实施的加密方法还包括:

当要发送的信息的长度小于设定长度时,将该信息的长度补充至设定长度,利用加密步骤将补充后的信息进行加密的步骤;

当要发送的信息的长度大于设定长度时,将该信息按每设定长度分组,按分组顺序调用加密步骤对各组信息进行加密的步骤。

aes算法一共分为三种,根据密钥长度不同分为aes-128、aes-192和aes-256,本实施方式采用长度为128bit最,则设定长度为128bit;

本实施方式中,加密之前首先需要把明文信息经unicode编码成十六进制明文字符串并统计编码后的字符串长度,之后对总的字符串长度进行判断,对于总长度等于128bit的数据直接调用aes算法进行加密,总长度小于128bit的数据补齐之后再加密,其中补齐的原则就是看字符串末尾数是否为0,如果不为0则补0,如果为0则补f,对于总长度大于128bit的数据需要进行每128bit分组循环加密。

具体实施例:

本实施方式是基于android智能手机操作系统平台,以传统的aes高级加密标准算法为基础,对短信息文本数据内容进行安全加密存储和传输。在智能手机平台上开发短信加密app,该app以传统的移动通信方式为基础,采用了更加安全可靠的加密传输及存储方式,在本地创建私有的数据库来存储发送和接收的加解密短信息密文文本、时间及号码等内容,在android的开发语言java中利用jni接口调用c语言编写的aes高级加密标准算法完成对短信文本收发的实时加解密功能,从而实现智能手机间短信息高效安全的传输。总体的实现框图如图2所示。

本实施方式的优点主要有如下三方面:一是该加密应用软件底层采用了成熟的aes算法作为核心加解密算法,并且采用androidjni技术调用c语言编写的aes算法,增大了对该加密应用软件.apk安装包文件的反编译难度,使该加密应用软件在使用中更加安全;二是本实施方式的短信加密应用软件是基于android智能手机平台的,可以很方便快捷的安装到android手机普通用户中,并且可实现用户间随时随地进行重要隐私信息内容的安全传输功能;三是本实施方式的根据用户在实际中的安全需求,在应用软件中开发出密钥更改密钥的功能,该功能可实现智能手机用户间通过自主协定来重新更改密钥的情况,更改过密钥后不会影响对之前短信息发送或接收记录的明文信息查看功能,本实施方式会自动根据新的密钥信息对存储在发送和接收数据库中的全部密文信息做更新轮换操作,实时高效的保证用户保存或传递数据信息的安全。

在开发的过程中采用aes算法实现,高级加密标准(aes)算法又称rijndael加密,是属于对称加密算法中的分组加密算法,它的出现和广泛应用得益于现代密码学分析水平的不断进步、计算机科学领域的不断发展以及芯片硬件计算水平的不断提升等因素的影响。

其中具体aes加密和解密流程如图1所示。

加密应用软件包括如下:

本实施方式是基于谷歌推出的官方开发软件androidstudio2.0版本的软件平台进行开发,弃用以往的eclipse软件开发平台,使用的编译sdk版本为api23(android6.0),最小sdk支持到api16(android4.1)。

加密应用软件包括闪屏界面布局模块、引导界面布局模块和主界面布局模块,其中主界面布局模块中又包括信息输入模块、发送/接收模块、加密模块、解密模块、显示模块和密钥更改轮换模块,具体的开启加密应用软件的流程图如图3所示。

当用户初次打开加密应用软件进入闪屏界面模块的时候,程序设置了一组播放动画集合,同时给该动画设置了一个监听事件,用来监听动画是否播放完毕,当动画播放完毕的时候,在监听事件的动画完成方法onanimationend()中,从封装好的sharedpreference工具类里获取是否是第一次开启本应用的boolean值,第一次获取的boolean数据默认值为true,这时程序会进行判断,当用户是第一次开启本应用的时候,此时界面会跳转到引导界面模块来进行初始信息输入:密钥的设置,在初始密钥设置完成后,会在界面跳转到主界面模块之前把sharedpreference工具类里获取的boolean默认的true数据值设置为false,这样在用户下次开启应用软件的时候,程序会自动的从本地私有文件中获取到false的判断值,这样程序就不会再跳转到引导界面模块让用户再一次的设置加密密钥,而是直接跳转到主界面模块来进行加密短信的操作,主界面模块的整体布局如图4所示。

发送/接收信息模块:

发送功能:用户只需在信息输入模块中输入要发送的短信内容和要发送到的手机号码,点击发送按钮即可完成发送,由于要发送的是汉字明文经unicode转码为十六进制后再经本发明的加密步骤加密过的密文信息,而本实施方式加密模块和解密模块每次所需的明文块都是128bit数据,因此从发送的汉字明文信息到十六进制密文信息的转变还需要做进一步的代码实现处理。做处理之前首先需要把要发送的明文信息经unicode编码成十六进制明文字符串并统计编码后的字符串长度,之后对总的字符串长度进行判断,对于总长度等于128bit的数据直接调用加密模块进行加密,总长度小于128bit的数据补齐之后再加密(其中补齐的原则就是看字符串末尾数是否为0,如果不为0则补0,如果为0则补f),对于总长度大于128bit的数据需要进行每128bit分组循环加密,每次加密后得到的结果都存储到一个stringbuilder容器中,并对最后一组数据的长度进行判断之后再加密,最后会在stringbuilder容器中得到全部的加密后的密文信息,这就是手机要发送的密文短信文本内容,其中对明文转密文的具体处理流程如图5所示,同理解密时也需要进行如此操作。

接收功能:本实施方式在接收加密的信息的同时,也可以接收正常的明文信息,本发明的加密模块对明文信息进行加密,保存在数据库中。

显示模块:

用户通过点击查看发送或接收短信记录按钮分别进入到发送或接收短信记录布局界面,在这两个布局界面中查看自己发送和接收到的短信密文信息、发送短信时间以及发送给另一个手机用户的目标号码,同时用户也可以在这两个界面实现输入密钥查看发送和接收的短信息明文文本。

密钥更改轮换模块:

由于本实施方式是用户间使用协定好的密钥来进行数据的加密传输操作,所以密文数据的安全不具有持久性,为了使手机用户传输和存储的短信息数据更具有安全性和持久性,本实施方式设计了密钥更改轮换模块。该模块可以实现用户间任何时间、地点修改密钥的操作,既不会影响已经发送和接收短信息的明文查看功能,也不会影响之前用户在本地数据库中对发送和接收过的短信息密文存贮的功能。

当用户在主界面模块中点击密钥更改轮换按钮进入到密钥更改轮换界面布局并更新完密钥点击更改保存密钥按钮之后,加密应用软件会对所有发送和接收过的短信息数据集合进行搜索,获取集合中每一条数据中的短信密文文本信息和相应的时间信息,再根据旧密钥调用aes算法解密为明文,再用新的密钥对明文重新加密,然后根据获取的时间信息修改数据库内容,依次实现对所有旧密文数据的更新轮换操作。操作完成后用户就可以通过新密钥来对短信息进行发送和接收的操作,同时也可以用新密钥查看以前发送和接收过的短信息历史记录,这样就大大的增加了本加密应用软件设计的安全性和可靠性。

虽然在本文中参照了特定的实施方式来描述本发明,但是应该理解的是,这些实施例仅仅是本发明的原理和应用的示例。因此应该理解的是,可以对示例性的实施例进行许多修改,并且可以设计出其他的布置,只要不偏离所附权利要求所限定的本发明的精神和范围。应该理解的是,可以通过不同于原始权利要求所描述的方式来结合不同的从属权利要求和本文中所述的特征。还可以理解的是,结合单独实施例所描述的特征可以使用在其他所述实施例中。

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