对信息进行加解密的方法

文档序号:7628970阅读:177来源:国知局
专利名称:对信息进行加解密的方法
技术领域
本发明涉及通讯领域,尤其涉及一种对信息进行加解密的方法。
背景技术
许多设备需要经过配置才可使用,对设备进行配置通常通过配置文件来实现,配置文件可以是交互的命令行或由命令行组成的脚本文件或其它方式。在实际应用中,可以将设备的配置文件导出设备外部,进行备份保存,当设备中的配置数据由于维修等原因意外丢失时,可以将在设备外备份的配置文件回灌到设备内,对设备进行重新配置。
设备的配置文件中的有些配置信息是需要保密的,不能以明文方式保存在脚本文件里,以防被他人阅读后泄密,因此需要对这样的信息进行加密处理。有时需要手工编辑设备的配置文件,手工编辑必然是明文形式。当该脚本文件回灌到设备时,设备应能自动识别是明文还是密文,并对密文进行解密。
现有技术中的一种对信息进行加密的方法为在通过网络传输配置文件的场合下,采用常用的密钥系统对配置文件进行整体加密。当需要在该配置文件中查询、备份配置信息时,将该配置文件中需要保密的内容去掉,或对于需要保密的内容仅显示为一串‘*’。
上述信息加密方法的缺点为该方法对配置文件进行整体加密,造成系统开销大,而且不利于对配置文件进行查询,对配置文件部分内容进行手工修改。
在该方法中,配置文件中不包含部分配置信息的做法使配置文件不完整,设备需要考虑在加载配置文件时对配置文件中不包含的配置信息采取特殊处理方法,例如是保持原配置还是恢复到缺省值。
如果单纯地将配置文件中部分信息加密,但设备并不能识别这部分信息是否经过加密,除非在处理程序中固定地设定有关加密内容的位置信息并总认为这部分信息是加密的,然后尝试解密。

发明内容
鉴于上述现有技术所存在的问题,本发明的目的是提供一种对信息进行加解密的方法,从而可以有效地保护设备的重要信息。
本发明的目的是通过以下技术方案实现的一种对信息进行加解密的方法,包括A、生成随机数,利用该随机数对需要进行加密的信息进行可逆处理,再通过设定的加密算法对处理后的信息进行加密,生成随机的密文信息;B、根据所述加密算法和所述随机数对所述密文信息进行校验,通过所述加密算法的逆算法对校验通过的密文信息进行解密。
所述的步骤A具体包括A1、生成随机数,利用该随机数对需要进行加密的信息进行转换运算,根据所述随机数和所述转换后的信息,计算循环冗余校验CRC校验字,将计算出来的校验字附加在所述转换后的信息中;A2、通过设定的编码算法对所述附加了校验字的转换后的信息进行编码处理,并将所述随机数进行编码后附加在编码处理后的信息中,生成最终的随机的密文信息。
所述的步骤A1具体包括
A11、将所述需要进行加密的信息与所述随机数逐字节进行异或处理,对异或处理后的信息进行位运算,生成与原信息等长的转换后的信息,或者,对异或处理后的信息进行通用加密运算;A12、根据所述随机数和所述转换或加密后的信息,计算CRC校验字,将计算出来的校验字附加在所述转换后的信息的特定位置。
所述的步骤A11所述的位运算包括移位运算和/或交换运算和/或取反位运算。
所述的步骤A2具体包括选择由设定数量的字符组成的编码字符表,通过该编码字符表对所述附加了校验字的转换后的信息和所述随机数进行编码处理,生成最终的随机的密文信息。
所述的编码字符表由设定数量的以任意顺序出现但不重复的字符组成。
所述的步骤A2具体包括A21、以所述附加了校验字的转换后的信息的设定位数的值作为索引,从所述编码字符表中取出对应的字符,将所有取出的字符作为密文的信息进行编码,生成编码后的密文信息;A22、以所述随机数作为索引,从所述编码字符表中取出对应的字符,并将该字符附加在所述编码后的密文信息的特定位置,生成最终的随机的密文信息。
所述的步骤A21具体包括在所述编码过程中,当所述附加了校验字的转换后的信息的最后一段信息不足所述设定位数时,用设定的位值填充该最后一段信息,使其达到所述设定位数。
所述的步骤B具体包括根据所述编码算法的逆算法,从所述待解密的信息中取出所述随机数和CRC校验字,根据该CRC校验字和所述随机数对所述待解密的信息进行校验,对校验通过的密文信息通过所述转换运算的逆算法进行解密。
所述的步骤B具体包括B1、从所述待解密的信息的特定位置取出所述随机数的字符,根据所述编码算法,获得该随机数的值,根据所述编码算法的逆算法,将取出了随机数后的信息还原成编码前的信息,从该还原的信息的特定位置取出所述CRC校验字;B2、通过所述随机数的值和取出了随机数和CRC校验字后的信息计算出CRC校验字,当计算出来的CRC校验字和所述取出的CRC校验字相同时,则该待解密的信息校验通过,通过所述转换运算的逆算法对取出了随机数和CRC校验字后的信息进行解密。
所述的步骤B1还包括当根据所述编码字符表,将取出了随机数后的信息还原成编码前的信息时,该取出了随机数后的信息的剩余的不足一字节的剩余位不是所述编码过程中填充的设定的位值,或者,剩余位的值不是设定数字时,则确定该待解密的信息不是通过所述编码字符表进行编码的密文。
所述的步骤B还包括根据所述加密过程确定加密后的信息的最小长度,如果待解密的信息的长度小于该最小长度,则确定该待解密的信息不是通过所述编码字符表进行编码的密文。
所述的步骤B还包括当所述待解密的信息包含所述编码字符表中的所有字符以外的字符,则确定该待解密的信息不是通过所述编码字符表进行编码的密文。
由上述本发明提供的技术方案可以看出,本发明通过使用随机数,生成校验字,并生成随机的密文,和现有技术相比,具有如下优点
1、在通过网络传输配置文件时,可以对配置文件中需要保密的信息进行局部加密,可减少对文件进行整体加密带来的开销,例如文件长度的变长以及加解密运算所消耗的时间。
2、本发明生成的最终密文具有随机性,可以在保持配置文件的可读性和完整性的同时,使设备中必须保密的重要信息得到保护。
3、使用本发明,可以使设备能自动识别是密文还是明文,不需要设备具有较强的运算能力进行加密解密。保留手工编辑配置文件的可能性。特殊情况下,允许直接使用明文编辑需保密的内容,然后应用此配置文件,例如最高权限的操作用户通过加载配置文件修改设备的任何参数。


图1为本发明所述对信息进行加密的方法的具体实现方式的处理流程图;图2为本发明所述对信息进行解密的方法的具体实现方式的处理流程图。
具体实施例方式
本发明提供了一种对信息进行加解密的方法,本发明的核心为使用随机数,生成魔术字和校验字,并生成随机的密文,在解密时先通过对密文进行校验,识别该密文信息。
下面结合附图来详细描述本发明,本发明所述方法包括对信息进行加密的方法和对信息进行解密的方法两部分,对信息进行加密的方法的具体实现方式的处理流程图如图1所示,包括如下步骤步骤1-1、选择由64个或128个以任意顺序出现但不重复的可显示字符组成的固定的编码字符表T。将待加密原文记为S。
选择一组由64个或128个以任意顺序出现但不重复的可显示字符,组成固定的编码字符表T。T在具体设定的加密方法中保持不变并且加密和解密时使用相同的T。
确定待加密的原文信息S,比如需要在设备外保存的配置文件信息或其中的某个字符串。利用所述编码字符表T可以对原文信息S加密/转换后的信息进行编码处理。
步骤1-2、随机生成小于64或128的魔术字M,用M对原文S进行可逆处理,得到S1。
利用随机数随机生成一个取值小于64或128的魔术字M,使用该魔术字M对原文S施加某种影响,比如用M对原文信息S进行可逆处理,最简单的做法就是将S逐字节与M进行异或处理。
经过对原文信息S进行上述处理后,得到处理后的信息S1。
步骤1-3、用任一通用或自定义加密/转换算法对S1进行可逆的转换处理,得到S2。
在得到处理后的信息S1后,然后,用任一通用或自定义的加密/转换算法对S1进行可逆的转换处理。例如,对信息S1进行多次移位、交换、取反等位运算,生成与信息S1等长的转换后信息。或,利用通用加密算法,例如DES(数据加密标准)对信息S1进行加密处理。
在对信息S1进行上述处理后,得到信息S2。
步骤1-4、将S2与M一起计算CRC校验字,将校验字附加到S2的尾部或其它特定部位,得到S3。
在得到信息S2后,然后,将S2与M一起计算CRC(循环冗余校验)校验字。将计算出来的校验字附加到信息S2的尾部或其它特定部位,得到信息S3。
步骤1-5、以S3每6位的值作为索引(最后一段不足6位尾部补0),从表T内取字符作为密文的一个字节进行编码,生成编码后的信息S4。
在得到信息S3后,以S3的每6位(或7位)的值作为索引(最后一段不足6(或7位)位尾部补0),查询上述编码字符表T,从T中取出相应的字符作为密文的一个字节,将所有的字节进行编码处理,生成编码后的信息S4。
在上述信息S4的生成过程中,最后一段不足6位(或7位)则在尾部补0。
上述编码过程可以简单地直接使用标准的Base64编码方法。
步骤1-6、将M作为索引从T中取出字符附加在S4的尾部或其它特定部位,生成最终的密文S5。
在生成信息S4后,以所述魔术字M作为索引,查询上述编码字符表T,从T中取出相应的字符,将该字符附加在信息S4的尾部或其它特定部位,生成最终的密文信息S5。
由于魔术字的存在,上述生成的最终的密文信息S5是随机的。
对信息进行解密的方法的具体实现方式的处理流程图如图2所示,包括如下步骤步骤2-1、判断待解密的信息S的长度是否小于一个特定值。
在需要对密文信息进行解密时,比如,将在设备外保存的配置文件信息的密文信息回灌到设备时,首先需要判断该待解密的信息S是否为利用上述加密方法进行加密后得到的密文。
根据上述加密方法得到的密文信息的长度不可能小于一个特定值,该特定值依赖于上述步骤1-3所采用的加密算法和步骤1-4采用的校验方法。于是,首先判断待解密的信息S的长度是否小于某个特定值,如果是,则执行步骤2-8;否则,执行步骤2-2。
步骤2-2、S中是否包含编码字符表T以外的字符。
由于根据上述加密方法得到的密文是经过一个仅有64个字符组成的编码字符表进行编码得到的,因此,加密后得到的密文信息中只能有这64个字符。
于是,检查整个待解密的信息S,判断S中是否包含上述64个字符以外的字符,如果是,则执行步骤2-8;否则,执行步骤2-3。
步骤2-3、从S特定位置取出魔术字字符得到S1,检索T得到魔术字的值M,假设上述待解密的信息S是加密的,根据上述加密方法的加密算法中确定的魔术字的特定位置,从S的该特定位置上取出魔术字编码字符,通过检索上述编码字符表得到魔术字的值M,即该魔术字编码字符在编码字符表中的索引。
从上述S的特定位置取出魔术字字符后得到密文信息S1。
步骤2-4、将S1逐字节检索字符表T,得到对应的索引值,每个索引值为6位,顺序拼接成信息S2。8的整倍数外剩余的位数记为Lr,剩余位的值记为Vr。
以上述去除魔术字字符后得到的密文信息S1为索引,逐字节检索上述编码字符表T,得到对应的索引值,每个索引值为6位,将得到的各个索引值顺序拼接在一起,去除最后可能剩余的不足8位(一字节)的剩余位,得到信息S2。剩余的位数记为位Lr,剩余位的值记为Vr。
步骤2-5、判断Lr和Vr是否正确。
根据加密过程,所说剩余位就是加密编码过程中补足的‘0’,并且当所述加密过程中作为索引的设定位数为6时,补足的‘0’的个数只可能是2或4。
因此当所述加密过程中作为索引的设定位数为6时,如果Lr为0(即没有剩余位,此时Vr忽略)、或Lr为2或4且Vr为0,执行步骤2-6;否则,执行步骤2-8。
步骤2-6、从S2特定部位取出CRC校验字后得到S3,判断该CRC校验字是否正确。
根据上述加密方法的加密过程中确定的CRC校验字的特定位置,从S2的该特定位置上取出CRC校验字,得到密文信息S3。
将密文信息S3和上述魔术字M一起计算CRC校验字,将计算出来的CRC校验字和上述从特定位置上取出的CRC校验字进行比较,如果两个CRC校验字互相一致,则执行步骤2-7;否则,执行步骤2-8。
步骤2-7、对S3进行加密/转换算法的逆运算,得到S4,对S4进行所述M对原文S进行的可逆处理的逆运算,得到最终输出的原文S5。
将上述得到的密文信息S3经过上述加密/转换算法的逆过程进行还原,得到密文信息S4,该逆过程对应上述加密流程的步骤1-3。
将上述得到的密文信息S4经过上述加密过程中使用魔术字进行可逆处理的逆过程进行还原,即消除加密过程中使用魔术字施加的影响,得到解密后的原文S5。该逆过程对应上述加密流程的步骤1-2,对应加密过程最简单的做法就是逐字节与魔术字异或。至此得到了最终输出的原文S5。
上述加密算法和解密算法是加密、解密系统预先设定好的,可以为任意的算法,若加密过程选用对等或不对等密钥加密算法,则其密钥是通过其它途径事前解决的,例如预先设定的。
步骤2-8、S不是本发明的加密方法得到的密文。
待解密的信息S不是使用上述加密方法得到的密文信息。
以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
权利要求
1.一种对信息进行加解密的方法,其特征在于,包括A、生成随机数,利用该随机数对需要进行加密的信息进行可逆处理,再通过设定的加密算法对处理后的信息进行加密,生成随机的密文信息;B、根据所述加密算法和所述随机数对所述密文信息进行校验,通过所述加密算法的逆算法对校验通过的密文信息进行解密。
2.根据权利要求1所述对信息进行加解密的方法,其特征在于,所述的步骤A具体包括A1、生成随机数,利用该随机数对需要进行加密的信息进行转换运算,根据所述随机数和所述转换后的信息,计算循环冗余校验CRC校验字,将计算出来的校验字附加在所述转换后的信息中;A2、通过设定的编码算法对所述附加了校验字的转换后的信息进行编码处理,并将所述随机数进行编码后附加在编码处理后的信息中,生成最终的随机的密文信息。
3.根据权利要求2所述对信息进行加解密的方法,其特征在于,所述的步骤A1具体包括A11、将所述需要进行加密的信息与所述随机数逐字节进行异或处理,对异或处理后的信息进行位运算,生成与原信息等长的转换后的信息,或者,对异或处理后的信息进行通用加密运算;A12、根据所述随机数和所述转换或加密后的信息,计算CRC校验字,将计算出来的校验字附加在所述转换后的信息的特定位置。
4.根据权利要求3所述对信息进行加解密的方法,其特征在于,所述的步骤A11所述的位运算包括移位运算和/或交换运算和/或取反位运算。
5.根据权利要求2所述对信息进行加解密的方法,其特征在于,所述的步骤A2具体包括选择由设定数量的字符组成的编码字符表,通过该编码字符表对所述附加了校验字的转换后的信息和所述随机数进行编码处理,生成最终的随机的密文信息。
6.根据权利要求5所述对信息进行加解密的方法,其特征在于,所述的编码字符表由设定数量的以任意顺序出现但不重复的字符组成。
7.根据权利要求6所述对信息进行加解密的方法,其特征在于,所述的步骤A2具体包括A21、以所述附加了校验字的转换后的信息的设定位数的值作为索引,从所述编码字符表中取出对应的字符,将所有取出的字符作为密文的信息进行编码,生成编码后的密文信息;A22、以所述随机数作为索引,从所述编码字符表中取出对应的字符,并将该字符附加在所述编码后的密文信息的特定位置,生成最终的随机的密文信息。
8.根据权利要求7所述对信息进行加解密的方法,其特征在于,所述的步骤A21具体包括在所述编码过程中,当所述附加了校验字的转换后的信息的最后一段信息不足所述设定位数时,用设定的位值填充该最后一段信息,使其达到所述设定位数。
9.根据权利要求2、3、4、5、6、7或8所述对信息进行加解密的方法,其特征在于,所述的步骤B具体包括根据所述编码算法的逆算法,从所述待解密的信息中取出所述随机数和CRC校验字,根据该CRC校验字和所述随机数对所述待解密的信息进行校验,对校验通过的密文信息通过所述转换运算的逆算法进行解密。
10.根据权利要求9所述对信息进行加解密的方法,其特征在于,所述的步骤B具体包括B1、从所述待解密的信息的特定位置取出所述随机数的字符,根据所述编码算法,获得该随机数的值,根据所述编码算法的逆算法,将取出了随机数后的信息还原成编码前的信息,从该还原的信息的特定位置取出所述CRC校验字;B2、通过所述随机数的值和取出了随机数和CRC校验字后的信息计算出CRC校验字,当计算出来的CRC校验字和所述取出的CRC校验字相同时,则该待解密的信息校验通过,通过所述转换运算的逆算法对取出了随机数和CRC校验字后的信息进行解密。
11.根据权利要10所述对信息进行加解密的方法,其特征在于,所述的步骤B1还包括当根据所述编码字符表,将取出了随机数后的信息还原成编码前的信息时,该取出了随机数后的信息的剩余的不足一字节的剩余位不是所述编码过程中填充的设定的位值,或者,剩余位的值不是设定数字时,则确定该待解密的信息不是通过所述编码字符表进行编码的密文。
12.根据权利要5、6、7或8所述对信息进行加解密的方法,其特征在于,所述的步骤B还包括根据所述加密过程确定加密后的信息的最小长度,如果待解密的信息的长度小于该最小长度,则确定该待解密的信息不是通过所述编码字符表进行编码的密文。
13.根据权利要5、6、7或8所述对信息进行加解密的方法,其特征在于,所述的步骤B还包括当所述待解密的信息包含所述编码字符表中的所有字符以外的字符,则确定该待解密的信息不是通过所述编码字符表进行编码的密文。
全文摘要
本发明提供了一种对信息进行加解密的方法,该方法主要包括生成随机数,利用该随机数对需要进行加密的信息进行可逆处理,再通过设定的加密算法对处理后的信息进行加密,生成随机的密文信息;根据所述加密算法和所述随机数对所述密文信息进行校验,通过所述加密算法的逆算法对校验通过的密文信息进行解密。利用本发明,可以有效地保护设备的重要信息,设备能识别是密文还是明文。
文档编号H04L9/14GK1863042SQ20051013049
公开日2006年11月15日 申请日期2005年12月13日 优先权日2005年12月13日
发明者丁志明 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1