数据加解密方法、装置和移动终端制造方法及图纸

技术编号:9599175 阅读:77 留言:0更新日期:2014-01-23 04:01
本发明专利技术公开了一种数据加解密方法、装置和移动终端,涉及加密技术领域。该方法包括:根据加密密钥/解密密钥生成密钥流源;根据所述密钥流源基于布尔函数和异或操作生成密钥流;将所述密钥流与待加密/待解密数据进行异或操作生成加密/解密数据。本公开采用的加解密方法、装置结构简单,对软硬件要求较低,在计算能力较差的低端设备上也可以使用,并且加密后的数据大小不会增加太多。

【技术实现步骤摘要】
数据加解密方法、装置和移动终端
本专利技术涉及数据加密技术,特别涉及一种数据加解密方法、装置和移动终端。
技术介绍
近些年来,随着手机、MP4等手持多媒体终端设备的广泛使用,消费者越来越喜欢在这些设备上进行观看视频等活动。受限于存储技术的发展,在很多多媒体终端设备,尤其是较为低端的设备上,存储空间都是非常受限制的,而消费者则希望设备中可存储更多的多媒体内容。此外,低端设备的计算能力往往也十分有限。另一方面,随着PC机的迅猛发展,现在PC上的视频都趋向于标清和高清级别,一般分辨率都在480p(640x480)以上,可达到720p(1280x720)甚至更高。由此存在实际需求与硬件设备的处理能力之间的落差。一般有两种途径来解决这种问题。一种是将分辨率较高的视频直接放在设备上播放,另外一种是先将视频压缩再放到设备中播放。当移动终端设备的计算和存储能力受限时,第一种方法是不可行的,如此做,一方面移动终端设备上可存储的内容十分有限,另一方受限于计算能力,所存储内容也未必可以被正确播放。第二种方法,可根据移动终端设备的实际能力对要存储内容进行适当处理,使得可以保证所存内容可以被正确播放。在这样的背景下,有些移动终端设备制造商等就会考虑如何在一定程度上保持清晰度的情况下,将视频压缩得更小。当把此做得比较好之后,相应制造商就会考虑如何对这样的技术进行保护,普遍的做法是视频进行加密处理,使得处理后的视频只能在专用播放器上播放。高分辨率视频在低分辨率的设备上播放时,原始视频输出必须经过缩放等后处理操作才能显示全部视频内容。在这样的情况下,一般用户会先在PC机上将视频进行压缩,压缩到合适的分辨率后才传输到移动设备上。当某厂商的压缩技术做得很好时,就需要对压缩后的视频文件进行适当保护,使其只在专用的播放器上才可以播放,这样也可以使得压缩技术得以保护。由于现在PC的计算能力较强,所以在PC机上压缩以及加密视频都不会存在太多困难,然而有些移动设备却并非如此。鉴于移动设备有限的计算能力和存储能力,在对视频加密的时候必定需要考虑解密的复杂度,否则加密的视频将无法在移动上播放,或者加密后的视频体积增大很多,也就失去了压缩的意义。
技术实现思路
本专利技术的专利技术人发现上述现有技术中存在问题,并因此针对所述问题中的至少一个问题提出了一种新的技术方案。本专利技术的一个目的是提供一种用于数据加解密的技术方案。根据本专利技术的第一方面,提供了一种数据加解密方法,包括:根据加密密钥/解密密钥生成密钥流源;根据所述密钥流源基于布尔函数和异或操作生成密钥流;将所述密钥流与待加密/待解密数据进行异或操作生成加密/解密数据。可选地,对于加密方法,该方法还包括:对所述加密密钥进行加密获得加密的加密密钥;或者对于解密方法,该方法还包括:对加密的解密密钥进行解密获得所述解密密钥。可选地,该方法还包括:获取所述加密密钥/解密密钥。可选地,密钥流源state为48位;所述根据所述密钥流源基于布尔函数和异或操作生成密钥流包括:将所述密钥流源state的1、2、4、5位经过布尔函数处理,7、11、13、14位经过布尔函数处理,16、20、22、25位经过布尔函数处理,27、28、30、32位经过布尔函数处理,33、42、43、45位经过布尔函数处理,得到5个1位的输出,5个1位的输出经过布尔函数处理得到1位输出;将所述密钥流源state剩余的位进行异或,再与的1位输出进行异或得到1位的反馈值;将所述密钥流源state左移1位,将1位的反馈值填入所述密钥流源state的第48位;由所述密钥流源state左移输出的位形成密钥流。可选地,将所述密钥流与待加密/待解密数据进行异或操作生成加密/解密数据包括:每8位密钥流形成1字节密钥流,依次与待加密/待解密数据中对应字节进行异或操作从而产生加密/解密数据。可选地,每8位密钥流形成1字节密钥流、依次与待加密/待解密数据中对应字节进行异或操作从而产生加密/解密数据包括:丢弃先产生的A字节密钥流;判断B+8是否小于所述待加密/待解密数据p的当前字节的大小;如果是,则从p[B+8]开始连续产生16字节密钥流,用每次调用产生的1字节密钥流与p中对应字节异或,输出加密/解密数据;否则,从p[8]开始连续产生16字节密钥流,用每次调用产生的1字节密钥流与p中对应字节异或,输出加密/解密数据;其中,A=p[4]^p[5]^seed2,B=p[6]^p[7]^(seed2<<4),C=A^B,p为待加密/待解密数据的首地址,1字节的种子seed2为当前文件大小的低字节。可选地,根据加密密钥/解密密钥生成密钥流源包括:由p[4]、p[5]、p[6]、p[7]按顺序拼接成四字节IV,其中p[4]在高字节;从16字节加密密钥key的第tmp_1字节开始连续取6字节信息获得current_key,其中,tmp_1为C的低4位值;从16字节加密密钥key的第tmp_2字节开始连续取4字节信息获得serial,其中tmp_2为C的高4位值;将32位的serial填入48位寄存器state的前32位,将current_key的前16位填入state的后16位;对于i=0,….,31,运行如下操作:将state的1、2、4、5位经过布尔函数处理,7、11、13、14位经过布尔函数处理,16、20、22、25位经过布尔函数处理,27、28、30、32位经过布尔函数处理,33、42、43、45位经过布尔函数处理,分别得到5个1位的out,5个1位的out再经过布尔函数处理得到1位out;将state剩余的位进行异或,再与1位out、IV的第i位、current_key的第i位进行异或得到1位的反馈值feedback;将state左移1位,将1位的feedback填入state的第48位。根据本专利技术的第一方面,提供了一种数据加解密装置,包括:密钥流源生成模块,用于根据加密密钥/解密密钥生成密钥流源;密钥流生成模块,用于根据所述密钥流源基于布尔函数和异或操作生成密钥流;数据加解密模块,用于将所述密钥流与待加密/待解密数据进行异或操作生成加密/解密数据。可选地,该装置还包括:密钥加解密模块,用于对所述加密密钥进行加密获得加密的加密密钥;或者对加密的解密密钥进行解密获得所述解密密钥。可选地,该装置还包括:密钥获取模块,用于获取所述加密密钥/解密密钥。可选地,密钥流源state为48位;所述密钥流生成模块包括:布尔运算单元,用于将所述密钥流源state的1、2、4、5位经过布尔函数处理,7、11、13、14位经过布尔函数处理,16、20、22、25位经过布尔函数处理,27、28、30、32位经过布尔函数处理,33、42、43、45位经过布尔函数处理,得到5个1位的输出,5个1位的输出经过布尔函数处理得到1位输出;位异或运算单元,用于将所述密钥流源state剩余的位进行异或,再与的1位输出进行异或得到1位的反馈值;位左移操作单元,用于将所述密钥流源state左移1位,将1位的反馈值填入所述密钥流源state的第48位;由所述密钥流源state左移输出的位形成密钥流。可选地,数据加解密模块将每8位密钥流形成1字节密钥流,依次与待加密/待解密数据中对应字节进行异或操作从而产本文档来自技高网
...
数据加解密方法、装置和移动终端

【技术保护点】
一种数据加解密方法,其特征在于,包括:根据加密密钥/解密密钥生成密钥流源;根据所述密钥流源基于布尔函数和异或操作生成密钥流;将所述密钥流与待加密/待解密数据进行异或操作生成加密/解密数据。

【技术特征摘要】
1.一种数据加解密方法,其特征在于,包括:根据加密密钥/解密密钥生成密钥流源,其中,所述密钥流源state为48位;根据所述密钥流源基于布尔函数和异或操作生成密钥流;将所述密钥流与待加密/待解密数据进行异或操作生成加密/解密数据;其中,所述根据所述密钥流源基于布尔函数和异或操作生成密钥流包括:将所述密钥流源的1、2、4、5位经过布尔函数处理,7、11、13、14位经过布尔函数处理,16、20、22、25位经过布尔函数处理,27、28、30、32位经过布尔函数处理,33、42、43、45位经过布尔函数处理,得到5个1位的输出,5个1位的输出经过二次布尔函数处理得到1位输出;其中,布尔函数布尔函数的处理过程为:将输入的4位合成一个数a,将0x2C79右移a位,取最后一位为输出;布尔函数的处理过程为:将输入的4位合成一个数b,将0x6671右移b位,取最后一位为输出;布尔函数的处理过程为:将输入的5位合成一个数c,将0x7907287B右移c位,取最后一位为输出;将所述密钥流源剩余的位进行异或,再与二次布尔函数的1位输出进行异或得到1位的反馈值;将所述密钥流源左移1位,将1位的反馈值填入所述密钥流源的最后一位;由所述密钥流源左移输出的位形成密钥流。2.根据权利要求1所述的方法,其特征在于,对于加密方法,还包括:对所述加密密钥进行加密获得加密的加密密钥;或者对于解密方法,还包括:对加密的解密密钥进行解密获得所述解密密钥。3.根据权利要求1所述的方法,其特征在于,还包括:获取所述加密密钥/解密密钥。4.根据权利要求1所述的方法,其特征在于,所述将所述密钥流与待加密/待解密数据进行异或操作生成加密/解密数据包括:每8位密钥流形成1字节密钥流,依次与待加密/待解密数据中对应字节进行异或操作从而产生加密/解密数据。5.根据权利要求4所述的方法,其特征在于,所述每8位密钥流形成1字节密钥流、依次与待加密/待解密数据中对应字节进行异或操作从而产生加密/解密数据包括:丢弃先产生的A字节密钥流;判断B+8是否小于所述待加密/待解密数据p的当前字节的大小;如果是,则从p[B+8]开始连续产生16字节密钥流,用每次调用产生的1字节密钥流与p中对应字节异或,输出加密/解密数据;否则,从p[8]开始连续产生16字节密钥流,用每次调用产生的1字节密钥流与p中对应字节异或,输出加密/解密数据;其中,A=p[4]^p[5]^seed2,B=p[6]^p[7]^(seed2<<4),C=A^B,p为待加密/待解密数据的首地址,1字节的种子seed2为当前文件大小的低字节。6.根据权利要求5所述的方法,其特征在于,所述根据加密密钥/解密密钥生成密钥流源包括:由p[4]、p[5]、p[6]、p[7]按顺序拼接成四字节IV,其中p[4]在高字节;从16字节加密密钥key的第tmp_1字节开始连续取6字节信息获得current_key,其中,tmp_1为C的低4位值;从16字节加密密钥key的第tmp_2字节开始连续取4字节信息获得serial,其中tmp_2为C的高4位值;将32位的serial填入48位寄存器state的前32位,将current_key的前16位填入state的后16位;对于i=0,....,31,运行如下操作:将state的1、2、4、5位经过布尔函数处理,7、11、13、14位经过布尔函数处理,16、20、22、25位经过布尔函数处理,27、28、30、32位经过布尔函数处理,33、42、43、45位经过布尔函数处理,分别得到5个1位的out,5个1位的out再经过布尔函数处理得到1位out;将state剩余的位进行异或,再与1位out、IV的第i位、current_key的第i位进行异或得到1位的反馈值feedback;将state左移1位,将1位的feedback填入state的第48位。7.一...

【专利技术属性】
技术研发人员:曲博罗小伟林福辉
申请(专利权)人:展讯通信上海有限公司
类型:发明
国别省市:

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

1