信息加密、解密方法、装置、信息处理设备及存储介质转让专利

申请号 : CN202010806271.1

文献号 : CN111740830B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 诸鑫强郑伟伟高少丹王凯胡克任管睿李玉笛支洪平

申请人 : 科大讯飞(苏州)科技有限公司

摘要 :

本申请公开了一种信息加密、解密方法、装置、设备及存储介质,在加密端对原始明文信息进行编码,得到数列形式的编码结果,进一步处理原始密钥,得到编码结果相同位数的处理后密钥,作为异或操作密钥,利用该异或操作密钥与编码结果进行异或操作,得到加密信息。对应的,在解密端,获取加密信息,并处理预存储的原始密钥,得到与加密信息相同位数的处理后密钥,作为异或操作密钥,利用异或操作密钥与加密信息进行异或操作,得到密文,对密文进行解码,得到原始明文信息。对于编码结果,其被异或操作密钥执行了两次异或操作,基于两次异或操作值不变的原理,可以在解密端还原出密文(也即编码结果),进一步解码可以还原出原始明文信息。

权利要求 :

1.一种信息加密方法,其特征在于,包括:

获取待加密的原始明文信息,以及预置的原始密钥;

对所述原始明文信息进行编码,得到数列形式的编码结果;

处理所述原始密钥,得到与所述编码结果相同位数的处理后密钥,作为异或操作密钥;

利用所述异或操作密钥与所述编码结果进行异或操作,得到加密信息;

在所述处理所述原始密钥之前,该方法还包括:

将所述编码结果中逐位相加后对所述编码结果的位数值取余,得到余数k;

将所述编码结果中逐位加上所述余数k,得到新的编码结果;

所述处理所述原始密钥,得到与所述编码结果相同位数的处理后密钥,作为异或操作密钥,包括:处理所述原始密钥,得到与所述新的编码结果相同位数的处理后密钥,作为异或操作密钥。

2.根据权利要求1所述的信息加密方法,其特征在于,在所述处理所述原始密钥之前,该方法还包括:基于所述原始密钥和对原始明文信息进行编码得到的编码结果,生成校验码;

将编码结果与所述校验码组合成新的编码结果;

所述处理所述原始密钥,得到与所述编码结果相同位数的处理后密钥,作为异或操作密钥,包括:处理所述原始密钥,得到与所述新的编码结果相同位数的处理后密钥,作为异或操作密钥。

3.根据权利要求1所述的信息加密方法,其特征在于,所述对所述原始明文信息进行编码,得到数列形式的编码结果,包括:将所述原始明文信息编码成指定进制值的数列。

4.根据权利要求3所述的信息加密方法,其特征在于,所述指定进制值为64进制、32进制、16进制或10进制。

5.根据权利要求1所述的信息加密方法,其特征在于,所述处理所述原始密钥,得到与所述编码结果相同位数的处理后密钥,作为异或操作密钥,包括:若原始密钥的位数m≤编码结果的位数n,则从所述原始密钥的首位开始循环选取n-m位数,得到n-m位补充密钥;将所述原始密钥和所述补充密钥依序组成异或操作密钥;

若原始密钥的位数m>编码结果的位数n,则将原始密钥以n为划分单位,依序划分为若干组,并从划分后的第二个组开始依次处理后续每个组,针对每个组:将该组中每一位数分别与第一组中对应位置的数进行异或操作,将对应位置的操作结果替换掉第一组中对应位置的数,得到替换后的第一组作为新的第一组;

直至处理完各个组,得到最终的第一组作为异或操作密钥。

6.根据权利要求1所述的信息加密方法,其特征在于,所述利用所述异或操作密钥与所述编码结果进行异或操作,得到加密信息,包括:将编码结果中第i位数与所述异或操作密钥中第i位数及加密信息中第i-1位数同时进行异或操作,结果作为加密信息中第i位数,i依序选取1至x,x为编码结果或异或操作密钥的位数。

7.根据权利要求1所述的信息加密方法,其特征在于,所述将所述编码结果中逐位加上所述余数k,得到新的编码结果,包括:记一个标记位s,并初始化为0;

将编码结果中逐位加上余数k,如有大于等于对原始明文信息进行编码时所指定进制值的数则向s进位,得到由编码结果逐位加k后和标记位s组成的新的编码结果。

8.根据权利要求2所述的方法,其特征在于,所述基于所述原始密钥和对原始明文信息进行编码得到的编码结果,生成校验码,包括:处理所述原始密钥,得到与对原始明文信息进行编码得到的编码结果相同位数的处理后密钥,作为校验密钥;

将所述校验密钥与对原始明文信息进行编码得到的编码结果逐位相加,得到待加权编码结果;

使用加权表对所述待加权编码结果中逐位加权求和,再对设定质数取余,得到校验码。

9.一种信息解密方法,其特征在于,包括:

获取加密信息;

处理预存储的原始密钥,得到与所述加密信息相同位数的处理后密钥,作为异或操作密钥;

利用所述异或操作密钥与所述加密信息进行异或操作,得到密文;

对所述密文进行解码,得到原始明文信息;

在对所述密文进行解码之前,该方法还包括:

将所述密文中表示有效编码结果的设定位数的密文的各项相加,再加上所述密文中表示标记位的密文的数值的设定倍数,然后对所述设定位数的值取余,得到余数k;所述设定倍数为所述密文的进制格式对应的进制数值;

将所述密文中表示有效编码结果的设定位数的密文的各项逐项减去余数k,得到还原后的密文;

所述对所述密文进行解码,包括:

对所述还原后的密文进行解码。

10.根据权利要求9所述的信息解密方法,其特征在于,所述加密信息中包含校验码,则在对所述密文进行解码之前,该方法还包括:基于所述原始密钥和密文中除所述校验码外的编码信息,生成标准校验码;

判断所述标准校验码和所述密文中的校验码是否一致;

若一致,则执行对所述密文进行解码的操作,若不一致,则判定所述密文无效。

11.根据权利要求9所述的信息解密方法,其特征在于,所述对所述密文进行解码,得到原始明文信息,包括:对指定进制值的密文进行解码,得到十进制形式的原始明文信息。

12.根据权利要求9所述的信息解密方法,其特征在于,所述处理预存储的原始密钥,得到与所述加密信息相同位数的处理后密钥,作为异或操作密钥,包括:若原始密钥的位数m≤加密信息的位数x,则从所述原始密钥的首位开始循环选取x-m位数,得到x-m位补充密钥;将所述原始密钥和所述补充密钥依序组成异或操作密钥;

若原始密钥的位数m>加密信息的位数x,则将原始密钥以x为划分单位,依序划分为若干组,并从划分后的第二个组开始依次处理后续每个组,针对每个组:将该组中每一位数分别与第一组中对应位置的数进行异或操作,将对应位置的操作结果替换掉第一组中对应位置的数,得到替换后的第一组作为新的第一组;

直至处理完各个组,得到最终的第一组作为异或操作密钥。

13.根据权利要求9所述的信息解密方法,其特征在于,所述利用所述异或操作密钥与所述加密信息进行异或操作,得到密文,包括:将加密信息中第i位数与所述异或操作密钥中第i位数及密文中第i-1位数同时进行异或操作,结果作为密文中第i位数,i依序选取1至x,x为加密信息或异或操作密钥的位数。

14.根据权利要求10所述的信息解密方法,其特征在于,所述基于所述原始密钥和密文中除所述校验码外的编码信息,生成标准校验码,包括:处理所述原始密钥,得到与密文中除所述校验码外的编码信息相同位数的处理后密钥,作为校验密钥;

将所述校验密钥与密文中除所述校验码外的编码信息逐位相加,得到待加权编码结果;

使用加权表对所述待加权编码结果中逐位加权求和,再对设定质数取余,得到标准校验码。

15.一种信息加密装置,其特征在于,包括:

原始信息获取单元,用于获取待加密的原始明文信息,以及预置的原始密钥;

编码单元,用于对所述原始明文信息进行编码,得到数列形式的编码结果;

取余处理单元,用于将所述编码结果中逐位相加后对所述编码结果的位数值取余,得到余数k;将所述编码结果中逐位加上所述余数k,得到新的编码结果;

异或操作密钥生成单元,用于处理所述原始密钥,得到与所述新的编码结果相同位数的处理后密钥,作为异或操作密钥;

异或处理单元,用于利用所述异或操作密钥与所述编码结果进行异或操作,得到加密信息。

16.一种信息解密装置,其特征在于,包括:

加密信息获取单元,用于获取加密信息;

异或操作密钥生成单元,用于处理预存储的原始密钥,得到与所述加密信息相同位数的处理后密钥,作为异或操作密钥;

异或处理单元,用于利用所述异或操作密钥与所述加密信息进行异或操作,得到密文;

反向取余处理单元,用于将所述密文中表示有效编码结果的设定位数的密文的各项相加,再加上所述密文中表示标记位的密文的数值的设定倍数,然后对所述设定位数的值取余,得到余数k;所述设定倍数为所述密文的进制格式对应的进制数值;将所述密文中表示有效编码结果的设定位数的密文的各项逐项减去余数k,得到还原后的密文;

解码单元,用于对所述还原后的密文进行解码,得到原始明文信息。

17.一种信息处理设备,其特征在于,包括:存储器和处理器;

所述存储器,用于存储程序;

所述处理器,用于执行所述程序,实现如权利要求1~8中任一项所述的信息加密方法的各个步骤,或实现如权利要求9~14中任一项所述的信息解密方法的各个步骤。

18.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1~8中任一项所述的信息加密方法的各个步骤,或实现如权利要求9~14中任一项所述的信息解密方法的各个步骤。

说明书 :

信息加密、解密方法、装置、信息处理设备及存储介质

技术领域

[0001] 本申请涉及信息处理技术领域,更具体的说,是涉及一种信息加密、解密方法、装置、信息处理设备及存储介质。

背景技术

[0002] 随着互联网技术的发展,信息加密技术应用的场景越来越广泛。以软件厂商控制授权用户使用所提供的应用软件为例,一般需要由软件厂商提供激活码(有时也称为授权码、安全令等)给用户,用户将激活码输入应用软件中,由应用软件基于激活码来识别用户是否具备使用权限,以及使用期限等。其中,激活码即为对明文信息进行加密后的结果。
[0003] 用户端应用软件在基于激活码进行权限、使用期限识别时,一般分为两种,一种是对激活码进行对比,另一种是对激活码进行解密。具体取决于激活码的加密方式,如通过不可逆加密方式所生成的激活码,只能通过对比。而通过可逆加密方式生成的激活码,可以通过反向解密来识别出明文信息。进而基于明文信息来判断用户的使用权限、期限等。由于后一种方式能够携带更多的信息,因此对于可逆加密算法的研究,成为行业内比较热门的方向。

发明内容

[0004] 鉴于上述问题,提出了本申请以便提供一种可逆的信息加密、解密方法、装置、信息处理设备及存储介质。具体方案如下:
[0005] 一种信息加密方法,包括:
[0006] 获取待加密的原始明文信息,以及预置的原始密钥;
[0007] 对所述原始明文信息进行编码,得到数列形式的编码结果;
[0008] 处理所述原始密钥,得到与所述编码结果相同位数的处理后密钥,作为异或操作密钥;
[0009] 利用所述异或操作密钥与所述编码结果进行异或操作,得到加密信息。
[0010] 优选地,在所述处理所述原始密钥之前,该方法还包括:
[0011] 将所述编码结果中逐位相加后对所述编码结果的位数值取余,得到余数k;
[0012] 将所述编码结果中逐位加上所述余数k,得到新的编码结果;
[0013] 所述处理所述原始密钥,得到与所述编码结果相同位数的处理后密钥,作为异或操作密钥,包括:
[0014] 处理所述原始密钥,得到与所述新的编码结果相同位数的处理后密钥,作为异或操作密钥。
[0015] 优选地,在所述处理所述原始密钥之前,该方法还包括:
[0016] 基于所述原始密钥和对原始明文信息进行编码得到的编码结果,生成校验码;
[0017] 将编码结果与所述校验码组合成新的编码结果;
[0018] 所述处理所述原始密钥,得到与所述编码结果相同位数的处理后密钥,作为异或操作密钥,包括:
[0019] 处理所述原始密钥,得到与所述新的编码结果相同位数的处理后密钥,作为异或操作密钥。
[0020] 优选地,所述对所述原始明文信息进行编码,得到数列形式的编码结果,包括:
[0021] 将所述原始明文信息编码成指定进制值的数列。
[0022] 优选地,所述指定进制值为64进制、32进制、16进制或10进制。
[0023] 优选地,所述处理所述原始密钥,得到与所述编码结果相同位数的处理后密钥,作为异或操作密钥,包括:
[0024] 若原始密钥的位数m≤编码结果的位数n,则从所述原始密钥的首位开始循环选取n-m位数,得到n-m位补充密钥;将所述原始密钥和所述补充密钥依序组成异或操作密钥;
[0025] 若原始密钥的位数m>编码结果的位数n,则将原始密钥以n为划分单位,依序划分为若干组,并从划分后的第二个组开始依次处理后续每个组,针对每个组:
[0026] 将该组中每一位数分别与第一组中对应位置的数进行异或操作,将对应位置的操作结果替换掉第一组中对应位置的数,得到替换后的第一组作为新的第一组;
[0027] 直至处理完各个组,得到最终的第一组作为异或操作密钥。
[0028] 优选地,所述利用所述异或操作密钥与所述编码结果进行异或操作,得到加密信息,包括:
[0029] 将编码结果中第i位数与所述异或操作密钥中第i位数及加密信息中第i-1位数同时进行异或操作,结果作为加密信息中第i位数,i依序选取1至x,x为编码结果或异或操作密钥的位数。
[0030] 优选地,所述将所述编码结果中逐位加上所述余数k,得到新的编码结果,包括:
[0031] 记一个标记位s,并初始化为0;
[0032] 将编码结果中逐位加上余数k,如有大于等于对原始明文信息进行编码时所指定进制值的数则向s进位,得到由编码结果逐位加k后和标记位s组成的新的编码结果。
[0033] 优选地,所述基于所述原始密钥和对原始明文信息进行编码得到的编码结果,生成校验码,包括:
[0034] 处理所述原始密钥,得到与对原始明文信息进行编码得到的编码结果相同位数的处理后密钥,作为校验密钥;
[0035] 将所述校验密钥与对原始明文信息进行编码得到的编码结果逐位相加,得到待加权编码结果;
[0036] 使用加权表对所述待加权编码结果中逐位加权求和,再对设定质数取余,得到校验码。
[0037] 一种信息解密方法,包括:
[0038] 获取加密信息;
[0039] 处理预存储的原始密钥,得到与所述加密信息相同位数的处理后密钥,作为异或操作密钥;
[0040] 利用所述异或操作密钥与所述加密信息进行异或操作,得到密文;
[0041] 对所述密文进行解码,得到原始明文信息。
[0042] 优选地,在对所述密文进行解码之前,该方法还包括:
[0043] 将所述密文中表示有效编码结果的设定位数的密文的各项相加,再加上所述密文中表示标记位的密文的数值的设定倍数,然后对所述设定位数的值取余,得到余数k;所述设定倍数为所述密文的进制格式对应的进制数值;
[0044] 将所述密文中表示有效编码结果的设定位数的密文的各项逐项减去余数k,得到还原后的密文;
[0045] 所述对所述密文进行解码,包括:
[0046] 对所述还原后的密文进行解码。
[0047] 优选地,所述加密信息中包含校验码,则在对所述密文进行解码之前,该方法还包括:
[0048] 基于所述原始密钥和密文中除所述校验码外的编码信息,生成标准校验码;
[0049] 判断所述标准校验码和所述密文中的校验码是否一致;
[0050] 若一致,则执行对所述密文进行解码的操作,若不一致,则判定所述密文无效。
[0051] 优选地,所述对所述密文进行解码,得到原始明文信息,包括:
[0052] 对指定进制值的密文进行解码,得到十进制形式的原始明文信息。
[0053] 优选地,所述处理预存储的原始密钥,得到与所述加密信息相同位数的处理后密钥,作为异或操作密钥,包括:
[0054] 若原始密钥的位数m≤加密信息的位数x,则从所述原始密钥的首位开始循环选取x-m位数,得到x-m位补充密钥;将所述原始密钥和所述补充密钥依序组成异或操作密钥;
[0055] 若原始密钥的位数m>加密信息的位数x,则将原始密钥以x为划分单位,依序划分为若干组,并从划分后的第二个组开始依次处理后续每个组,针对每个组:
[0056] 将该组中每一位数分别与第一组中对应位置的数进行异或操作,将对应位置的操作结果替换掉第一组中对应位置的数,得到替换后的第一组作为新的第一组;
[0057] 直至处理完各个组,得到最终的第一组作为异或操作密钥。
[0058] 优选地,所述利用所述异或操作密钥与所述加密信息进行异或操作,得到密文,包括:
[0059] 将加密信息中第i位数与所述异或操作密钥中第i位数及密文中第i-1位数同时进行异或操作,结果作为密文中第i位数,i依序选取1至x,x为加密信息或异或操作密钥的位数。
[0060] 优选地,所述基于所述原始密钥和密文中除所述校验码外的编码信息,生成标准校验码,包括:
[0061] 处理所述原始密钥,得到与密文中除所述校验码外的编码信息相同位数的处理后密钥,作为校验密钥;
[0062] 将所述校验密钥与密文中除所述校验码外的编码信息逐位相加,得到待加权编码结果;
[0063] 使用加权表对所述待加权编码结果中逐位加权求和,再对设定质数取余,得到标准校验码。
[0064] 一种信息加密装置,包括:
[0065] 原始信息获取单元,用于获取待加密的原始明文信息,以及预置的原始密钥;
[0066] 编码单元,用于对所述原始明文信息进行编码,得到数列形式的编码结果;
[0067] 第一异或操作密钥生成单元,用于处理所述原始密钥,得到与所述编码结果相同位数的处理后密钥,作为异或操作密钥;
[0068] 第一异或处理单元,用于利用所述异或操作密钥与所述编码结果进行异或操作,得到加密信息。
[0069] 一种信息解密装置,包括:
[0070] 加密信息获取单元,用于获取加密信息;
[0071] 第二异或操作密钥生成单元,用于处理预存储的原始密钥,得到与所述加密信息相同位数的处理后密钥,作为异或操作密钥;
[0072] 第二异或处理单元,用于利用所述异或操作密钥与所述加密信息进行异或操作,得到密文;
[0073] 解码单元,用于对所述密文进行解码,得到原始明文信息。
[0074] 一种信息处理设备,包括:存储器和处理器;
[0075] 所述存储器,用于存储程序;
[0076] 所述处理器,用于执行所述程序,实现如上所述的信息加密方法的各个步骤,或实现如上所述的信息解密方法的各个步骤。
[0077] 一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如上所述的信息加密方法的各个步骤,或实现如上所述的信息解密方法的各个步骤。
[0078] 借由上述技术方案,本申请的方案,在加密端对原始明文信息进行编码,得到数列形式的编码结果,进一步处理原始密钥,得到编码结果相同位数的处理后密钥,作为异或操作密钥,利用该异或操作密钥与编码结果进行异或操作,得到加密信息。对应的,在解密端,获取加密信息,并处理预存储的原始密钥,得到与加密信息相同位数的处理后密钥,作为异或操作密钥,利用异或操作密钥与加密信息进行异或操作,得到密文,对密文进行解码,得到原始明文信息。由此可见,本申请方案在加密和解密端,对于编码结果,其被异或操作密钥执行了两次异或操作,基于一个数被另一个数异或两次最终值不变的原理,可以在解密端还原出密文(也即编码结果),进一步通过对密文进行解码,可以还原出原始明文信息。基于此,本申请方案提供了一套可逆的加密方法。

附图说明

[0079] 通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0080] 图1为本申请实施例提供的信息加密方法的一流程示意图;
[0081] 图2为本申请实施例提供的信息加密方法的另一流程示意图;
[0082] 图3为本申请实施例提供的信息加密方法的又一流程示意图;
[0083] 图4为本申请实施例提供的信息加密方法的又一流程示意图;
[0084] 图5为本申请实施例提供的信息解密方法的一流程示意图;
[0085] 图6为本申请实施例提供的信息解密方法的另一流程示意图;
[0086] 图7为本申请实施例提供的信息解密方法的又一流程示意图;
[0087] 图8为本申请实施例提供的信息解密方法的又一流程示意图;
[0088] 图9为本申请实施例提供的一种信息加密装置结构示意图;
[0089] 图10为本申请实施例提供的一种信息解密装置结构示意图;
[0090] 图11为本申请实施例提供的信息处理设备的结构示意图。

具体实施方式

[0091] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0092] 本申请提供了一种可逆的信息加密、解密方案,在加密端能够对原始明文信息进行加密,得到加密信息。在解密端,能够对加密信息进行可逆的解密,还原出原始明文信息。
[0093] 接下来介绍本申请的信息加密、解密方法的一种可选应用场景。
[0094] 厂商对未激活的设备设定原始密钥,之后交付给用户。其中,原始密钥可以是厂商自行设定的任意长度的密钥。
[0095] 厂商在服务器中输入原始密钥以及授权信息,该授权信息规定了用户对设备的使用期限、权限等。示例如,授权信息可以是“有效期至2020年12月31日,提前05天提醒,过期后允许使用07天,提醒间隔180秒”。基于此,可以将授权信息表示为原始明文信息,例如可以用数字2020123105070180表示授权信息。服务器基于原始密钥及授权信息,按照本申请的加密方法,可以生成激活码,也即生成加密信息。
[0096] 厂商将激活码交给用户,用户将激活码输入至设备中。设备根据预存的原始密钥,采用本申请的解密方法,对激活码进行解密,解密出其中的授权信息,进而按照授权信息对设备进行激活。
[0097] 本申请方案可以基于具备数据处理能力的终端实现,该终端可以是手机、电脑、服务器、云端等。
[0098] 接下来,首先从加密端介绍本申请的信息加密方法,结合图1所示,信息加密方法可以包括如下步骤:
[0099] 步骤S100、获取待加密的原始明文信息,以及预置的原始密钥。
[0100] 具体的,原始明文信息即为需要进行加密处理的信息。原始明文信息一般可以是数字形式,示例如原始信息为:“有效期至2020年12月31日,提前05天提醒,过期后允许使用07天,提醒间隔180秒”,则可以将原始信息表示为原始明文信息:2020123105070180。
[0101] 其中,原始密钥可以是密钥设置人员根据需求而设定的任意位数的数字或字母或二者组合。
[0102] 步骤S110、对所述原始明文信息进行编码,得到数列形式的编码结果。
[0103] 具体的,原始明文信息可以经过编码,得到数列形式的编码结果。通过编码可以利用较少的字节来包含更多的信息。
[0104] 一种可选的编码方式下,可以将原始明文信息编码成指定进制值的数列。如对于原始明文信息,可以将其编码成64进制、32进制、16进制或10进制的数列。
[0105] 对于64进制数,本实施例中可以使用0-9表示64进制中的0-9,小写字母a-z表示64进制中的10-35,大写字母A-Z表示64进制中的36-61,加号“+”表示62,减号“-”表示63。
[0106] 则以原始明文信息为:2020123105070180为例,将其编码成64进制数后,得到的编码结果为:vAcv572Q。
[0107] 步骤S120、处理所述原始密钥,得到与所述编码结果相同位数的处理后密钥,作为异或操作密钥。
[0108] 具体的,原始密钥的长度可以是任意长度,为了下一步中利用密钥与编码结果进行异或操作,需要将原始密钥处理成与编码结果相同位数的密钥,作为异或操作密钥。
[0109] 其中,对于处理原始密钥得到异或操作密钥的过程,下文详细介绍。
[0110] 步骤S130、利用所述异或操作密钥与所述编码结果进行异或操作,得到加密信息。
[0111] 首先,对异或操作进行解释:
[0112] “异或”(用符号⊕表示):我们将两个任意进制的数均转为2进制,对两者逐位进行“异或”操作。如a⊕b,如果a、b两个值不相同,则异或结果为1,如果a、b两个值相同,异或结果为0。二进制中 , , , 。十进制数 =二进制数 = 二进制数1110=十进制数14。
[0113] 另外,异或操作有一性质将在本申请中被用到,即一个数被另一个数异或两次,最终值不变,即 。
[0114] 通过对异或操作密钥与编码结果进行异或操作,可以将结果作为加密信息。
[0115] 基于两次异或操作值不变这一原理,在解密端可以再次使用异或操作密钥对加密信息进行异或操作,也即对于编码结果,其被异或操作密钥执行了两次异或操作,因此可以在解密端还原出编码结果,进一步通过解码可以还原出原始明文信息。基于此,本申请方案提供了一套可逆的加密方法。
[0116] 本申请另一个实施例中,介绍了一种通过处理原始密钥,以生成任意长度的目标密钥的实施方式。
[0117] 定义原始密钥的位数为m,所需生成的目标密钥的位数为n。则按照m和n的大小关系可以按照如下方式划分:
[0118] 1、若m≤n,则从原始密钥的首位开始循环选取n-m位数,得到n-m位补充密钥;将所述原始密钥和所述补充密钥依序组成目标密钥。
[0119] 示例如:原始密钥长度m=5,原始密钥为8qwe6,所需生成的目标密钥的长度n=8。则从原始密钥首位开始循环选取8-5=3位数,得到8qw作为补充密钥。将原始密钥8qwe6和补充密钥8qw依序组成目标密钥:8qwe68qw。
[0120] 2、若m> n,则将原始密钥以n为划分单位,依序划分为若干组,并从划分后的第二个组开始依次处理后续每个组,针对每个组:
[0121] 将该组中每一位数分别与第一组中对应位置的数进行异或操作,将对应位置的操作结果替换掉第一组中对应位置的数,得到替换后的第一组作为新的第一组;
[0122] 直至处理完各个组,得到最终的第一组作为目标密钥。
[0123] 示例如:原始密钥长度m=5,原始密钥为8qwe6,所需生成的目标密钥的长度n=4。
[0124] 将原始密钥8qwe6以4位划分单位,依序划分为两个组,分别为第一组:8qwe,第二组:6。针对第二组,将其中第一位数6与第一组中的第一位数8进行异或操作,得到异或操作结果14,用64进制的e表示,将异或操作结果e替换掉第一组中的第一位数8,得到替换后的第一组:eqwe6,作为目标密钥。
[0125] 按照本申请上述介绍的方案,可以处理原始密钥,以生成任意长度的目标密钥。且上述介绍的处理方式所生成的目标密钥与原始密钥的结合关系更加紧密,原始密钥若变动一个字符,对应的目标密钥可能会变动多个字符。
[0126] 基于上述介绍的生成目标密钥的方案,可以实现上述步骤S120,处理所述原始密钥,得到与所述编码结果相同位数的处理后密钥,作为异或操作密钥。
[0127] 也即,设定目标密钥的位数与编码结果相同,则按照上述方式对原始密钥处理后,得到的目标密钥即可以作为异或操作密钥。
[0128] 在本申请的另一个实施例中,对上述步骤S130,利用所述异或操作密钥与所述编码结果进行异或操作,得到加密信息的过程进行介绍。
[0129] 对于编码结果和异或操作密钥进行异或操作的过程,本实施例提供了两种可选的实现方式,分别如下:
[0130] 第一种:
[0131] 编码结果和异或操作密钥对应位数进行异或操作,各位数异或操作后的结果组成加密信息。
[0132] 示例如,编码结果表示为 ,异或操作密钥表示为 。则加密信息为 :
[0133]
[0134] 第二种:
[0135] 将编码结果中第i位数与所述异或操作密钥中第i位数及加密信息中第i-1位数同时进行异或操作,结果作为加密信息中第i位数,i依序选取1至x,x为编码结果或异或操作密钥的位数。
[0136] 示例如,编码结果表示为 ,异或操作密钥表示为 。则加密信息为 :
[0137]
[0138] 按照这种处理异或操作处理方式,所生成的加密信息与编码结果的关联度更高,当编码结果发生少量变动时,加密信息整体上会产生巨大变化,也即实现牵一发而动全身的效果。从而防止非法用户通过分析少量加密信息和对应编码结果间的规律,来破解加密信息。
[0139] 在本申请的另一个实施例中,介绍了另一种信息加密方法的实现过程。结合图1和图2可知,本实施例中信息加密方法可以包括:
[0140] 步骤S200、获取待加密的原始明文信息,以及预置的原始密钥。
[0141] 步骤S210、对所述原始明文信息进行编码,得到数列形式的编码结果。
[0142] 具体的,上述步骤S200-S210与前述实施例中步骤S100-S110一一对应,详细参照前文介绍,此处不再赘述。
[0143] 步骤S220、将所述编码结果中逐位相加后对所述编码结果的位数值取余,得到余数k。
[0144] 其中,取余运算(用符号mod表示):若我们说a mod b,意思为用a除以b,取结果的余数,如7 ÷ 3 = 2余1,则7 mod 3 = 1。
[0145] 以编码结果为:vAcv572Q为例进行说明:
[0146] 将其各位相加后对8取余,得到余数k=(v+A+c+v+5+7+2+Q)mod 8。
[0147] 步骤S230、将所述编码结果中逐位加上所述余数k,得到新的编码结果。
[0148] 具体的,由于编码结果为指定进制形式的表达,编码结果中各位的数值均不会超过指定进制值,如对于64进制的编码结果,其每一位的数值均不会超过64。
[0149] 基于此,当编码结果中逐位加上余数k后,可能会出现相加后值超过编码结果的指定进制值的情况,为此,本实施例中可以记录一个标记位s,并将其初始化为0。
[0150] 将编码结果中逐位加上余数k,且如果有大于等于编码结果对应的指定进制值的数则向s进位,得到由编码结果逐位加上k后和标记位s组成的新的编码结果。
[0151] 可以了解的是,新的编码结果相比于原来的编码结果多了标记位s,因此新的编码结果比原来的编码结果的位数多一位。
[0152] 假设原来编码结果对应的指定进制为64进制,原来的编码结果表示为 ,则新的编码结果表示为 :
[0153] ;若 , , 。
[0154] 步骤S240、处理所述原始密钥,得到与所述新的编码结果相同位数的处理后密钥,作为异或操作密钥。
[0155] 具体的,生成异或操作密钥的过程可以参照前文相关介绍,此处不再赘述。
[0156] 步骤S250、利用所述异或操作密钥与所述新的编码结果进行异或操作,得到加密信息。
[0157] 具体的,利用异或操作密钥,与上述步骤S230生成的新的编码结果进行异或操作,得到加密信息,该异或操作的具体实现方式,可以参照前文相关介绍。
[0158] 相比于图1对应实施例的信息加密方法,本实施例中增加了对编码结果进行取余处理的过程,得到的新的编码结果隐私性更强。并且,基于余数不变定理,在解密端可以对解密过程得到的异或操作处理后的编码结果进行反向取余处理,可以还原出原始的编码结果,进而通过解码可以得到原始明文信息。也即,本实施例中基于余数不变定理及两次异或操作值不变定理,设计了一种可逆的加密方法。
[0159] 其中,关于余数不变定理的介绍如下:
[0160] 余数不变定理:有n个数的数列 ,逐项求和后对n取余, ,若将这n个数逐项+k后 ,新数列逐项求和后对n取余,其余数不变, 。
[0161] 在本申请的又一个实施例中,介绍了又一种信息加密方法的实现过程。结合图1和图3可知,本实施例中信息加密方法可以包括:
[0162] 步骤S300、获取待加密的原始明文信息,以及预置的原始密钥。
[0163] 步骤S310、对所述原始明文信息进行编码,得到数列形式的编码结果。
[0164] 具体的,上述步骤S300-S310与前述实施例中步骤S100-S110一一对应,详细参照前文介绍,此处不再赘述。
[0165] 步骤S320、基于所述原始密钥和编码结果,生成校验码。
[0166] 具体的,可以按照预先设定好的校验码生成规则,基于所述原始密钥和编码结果,生成校验码。
[0167] 步骤S330、将编码结果与所述校验码组合成新的编码结果。
[0168] 假设原来编码结果表示为 ,校验码表示为M,则新的编码结果表示为 。
[0169] 可以理解的是,新的编码结果相比原来的编码结果多了一位校验码,因此新的编码结果的位数比原来的编码结果的位数多一位。
[0170] 步骤S340、处理所述原始密钥,得到与所述新的编码结果相同位数的处理后密钥,作为异或操作密钥。
[0171] 具体的,生成异或操作密钥的过程可以参照前文相关介绍,此处不再赘述。
[0172] 步骤S350、利用所述异或操作密钥与所述新的编码结果进行异或操作,得到加密信息。
[0173] 具体的,利用异或操作密钥,与上述步骤S330生成的新的编码结果进行异或操作,得到加密信息,该异或操作的具体实现方式,可以参照前文相关介绍。
[0174] 相比于图1对应实施例的信息加密方法,本实施例中进一步在新的编码结果中增加了校验码,该校验码基于原始密钥和原来的编码结果生成。在此基础上,对于解密端解密过程可以依据预置的原始密钥和解密出的编码结果生成标准校验码,并对比该标准校验码和解密出的校验码,若二者一致,则说明通过校验,可以对编码结果进行解码,还原出原始明文信息,若二者不一致,说明编码结果被篡改了,解码出的原始明文信息也是非法信息。提高了信息的安全性。
[0175] 上述图3仅仅示例了在图1对应实施例基础上,增加校验码的实施方式,可以理解的是,还可以基于图2对应实施例增加校验码,具体过程可以结合图4和图2,信息加密方法可以包括:
[0176] 步骤S400、获取待加密的原始明文信息,以及预置的原始密钥。
[0177] 步骤S410、对所述原始明文信息进行编码,得到数列形式的编码结果。
[0178] 具体的,上述步骤S400-S410与前述实施例中步骤S100-S110一一对应,详细参照前文介绍,此处不再赘述。
[0179] 步骤S420、基于所述原始密钥和编码结果,生成校验码。
[0180] 具体的,可以按照预先设定好的校验码生成规则,基于所述原始密钥和编码结果,生成校验码。
[0181] 步骤S430、将所述编码结果中逐位相加后对所述编码结果的位数值取余,得到余数k。
[0182] 步骤S440、将所述编码结果中逐位加上所述余数k,得到新的编码结果。
[0183] 具体的,上述步骤S430-S440与前述实施例中步骤S220-S230一一对应,详细参照前文介绍,此处不再赘述。
[0184] 步骤S450、将新的编码结果与所述校验码组合,得到组合后编码结果。
[0185] 假设原来编码结果表示为 ,新的编码结果表示为 ,校验码表示为M,则组合后编码结果表示为 。
[0186] 可以理解的是,组合后编码结果相比原来的编码结果多了一位校验码和一位标识位,因此组合后编码结果的位数比原来的编码结果的位数多两位。
[0187] 步骤S460、处理所述原始密钥,得到与所述组合后编码结果相同位数的处理后密钥,作为异或操作密钥。
[0188] 具体的,生成异或操作密钥的过程可以参照前文相关介绍,此处不再赘述。
[0189] 步骤S470、利用所述异或操作密钥与所述组合后编码结果进行异或操作,得到加密信息。
[0190] 本实施例示例的信息加密方法,在编码结果中添加了校验码,该校验码基于原始密钥和原来的编码结果生成。在此基础上,对于解密端解密过程可以依据预置的原始密钥和解密出的编码结果生成标准校验码,并对比该标准校验码和解密出的校验码,若二者一致,则说明通过校验,可以对编码结果进行解码,还原出原始明文信息,若二者不一致,说明编码结果被篡改了,解码出的原始明文信息也是非法信息。提高了信息的安全性。
[0191] 进一步的,对上述实施例中步骤S320、步骤S420所述的基于原始密钥和编码结果,生成校验码的过程进行介绍。
[0192] S1、处理所述原始密钥,得到与编码结果相同位数的处理后密钥,作为校验密钥。
[0193] 具体的,生成校验密钥的过程可以参照前文所介绍的生成目标密钥的实施过程,定义目标密钥的位数与编码结果相同,则按照前文介绍方式处理原始密钥所生成的目标密钥即可作为此处的校验密钥。
[0194] S2、将所述校验密钥与编码结果逐位相加,得到待加权编码结果。
[0195] S3、使用加权表对所述待加权编码结果中逐位加权求和,再对设定质数取余,得到校验码。
[0196] 其中,加权表中记录有与待加权编码结果中每一位对应的加权系数。
[0197] 加权表:是一个n位数列a,用户对另一个n位数列b进行加权求和,比如我们可以设定加权表[3,5,7,9],对数列[4,6,12,13]加权求和即3*4+5*6+7*12+9*13。本申请中加权表的作用与身份证最后一位校验码所用加权表一致。
[0198] 若编码结果为指定进制数,如64进制等,则设定质数可以是大于该指定进制数的最小质数,或是小于该指定进制数的最大质数。
[0199] 示例如:
[0200] 校验密钥为:8qwe68qw,编码结果为:vAcv572Q,设定质数为61,加权表为:[7,9,10,5,8,4,2,1]。
[0201] 则将校验密钥与编码结果逐位相加后使用加权表逐位加权求和,并对设定质数取余,得到校验码M:
[0202] M= ((v+8)*7 + (A+q)*9 + (c+w)*10 + (v+e)*5 + (5+6)*8 + (7+8)*4 + (2+q)*2 + (Q+w)*1) mod 61
[0203] 接下来,通过一个完整的示例对本申请的信息加密方法进行介绍。
[0204] 原始明文信息为:2020123105070180,原始密钥为8qwe6,加权表为[7,9,10,5,8,4,2,1]。
[0205] 对原始明文信息进行编码,编码为64进制数得到:vAcv572Q。
[0206] 基于原始密钥,制作8位校验密钥:8qwe68qw。
[0207] 将校验密钥与编码结果逐位相加,并使用加权表逐位加权求和,对设定质数61取余,得到校验码M:
[0208] M= ((v+8)*7 + (A+q)*9 + (c+w)*10 + (v+e)*5 + (5+6)*8 + (7+8)*4 + (2+q)*2 + (Q+w)*1) mod 61
[0209] 将编码结果中逐位相加后对8取余,得到余数k:
[0210] k=(v+A+c+v+5+7+2+Q)mod 8
[0211] 记一个标记位s=0,将编码结果逐位加上k,如有大于等于64的值则向s进位。为了便于表述,将编码结果vAcv572Q表示为 。
[0212] 则编码结果逐位加上k后的新的编码结果为: :
[0213] ;若 , , 。
[0214] 将新的编码结果与校验码组合,组合后编码结果为: 。
[0215] 基于原始密钥,制作与组合后编码结果相同位数的异或操作密钥,异或操作密钥为:8qwe68qwe6。为了便于表述,将异或操作密钥为8qwe68qwe6表示为vwxyz。
[0216] 利用异或操作密钥与组合后编码结果进行异或操作,得到加密信息:
[0217] 其中,
[0218]
[0219] 接下来,从解密端介绍本申请的信息解密方法,结合图5所示,信息解密方法可以包括如下步骤:
[0220] 步骤S500、获取加密信息。
[0221] 其中,加密信息可以是按照前述实施例介绍的信息加密方法所加密的信息。
[0222] 对于解密端设备而言,其可以是通过联网获取加密端发送的加密信息。此外,还可以是由用户将加密信息输入至解密端设备。
[0223] 步骤S510、处理预存储的原始密钥,得到与所述加密信息相同位数的处理后密钥,作为异或操作密钥。
[0224] 其中,解密端设备预先存储有原始密钥,该原始密钥与加密端的原始密钥一致。
[0225] 其中,处理原始密钥以生成异或操作密钥的过程可以参照加密端制作目标密钥的过程,只需将目标密钥的位数设定为加密信息的位数即可,制作的目标密钥即可作为此处的异或操作密钥。
[0226] 具体实现过程可以包括:
[0227] 若原始密钥的位数m≤加密信息的位数x,则从所述原始密钥的首位开始循环选取x-m位数,得到x-m位补充密钥;将所述原始密钥和所述补充密钥依序组成异或操作密钥。
[0228] 若原始密钥的位数m>加密信息的位数x,则将原始密钥以x为划分单位,依序划分为若干组,并从划分后的第二个组开始依次处理后续每个组,针对每个组:
[0229] 将该组中每一位数分别与第一组中对应位置的数进行异或操作,将对应位置的操作结果替换掉第一组中对应位置的数,得到替换后的第一组作为新的第一组;直至处理完各个组,得到最终的第一组作为异或操作密钥。
[0230] 步骤S520、利用所述异或操作密钥与所述加密信息进行异或操作,得到密文。
[0231] 具体的,此处异或操作得到的密文对应加密端的编码结果。
[0232] 这里利用异或操作密钥与所述加密信息进行异或操作的具体实现方式,与加密端利用异或操作密钥与编码结果进行异或操作的实现方式相对应,即加密端和解密端需要预先约定好所使用的异或操作处理方式。
[0233] 参照前文实施例中对加密端介绍的两种异或操作处理方式,可知,若加密端按照第一种方式实现的异或操作处理,即:编码结果和异或操作密钥对应位数进行异或操作,各位数异或操作后的结果组成加密信息。则本步骤中,可以将加密信息和异或操作密钥对应位数进行异或操作,各位数异或操作后的结果组成密文(对应加密端的编码结果)。
[0234] 若加密端按照第二种方式实现的异或操作处理,即:将编码结果中第i位数与所述异或操作密钥中第i位数及加密信息中第i-1位数同时进行异或操作,结果作为加密信息中第i位数,i依序选取1至x,x为编码结果或异或操作密钥的位数。则本步骤中,可以将加密信息中第i位数与异或操作密钥中第i位数及密文中第i-1位数同时进行异或操作,结果作为密文中第i位数,i依序选取1至x,x为加密信息或异或操作密钥的位数。
[0235] 步骤S530、对所述密文进行解码,得到原始明文信息。
[0236] 具体的,此处对密文进行解码操作,与加密端对原始明文进行编码操作相对应。如加密端将十进制形式的原始明文按照指定进制值进行编码,则解密端会对该指定进制值的密文进行解码,得到十进制形式的原始明文信息。
[0237] 本申请实施例提供的信息解密方法,基于两次异或操作值不变这一原理,在解密端可以使用异或操作密钥对加密信息进行异或操作,其中,加密信息为加密端使用异或操作密钥对编码结果进行异或操作的结果,也即对于编码结果,其被异或操作密钥执行了两次异或操作,因此可以在解密端还原出编码结果,进一步通过解码可以还原出原始明文信息。基于此,本申请方案提供了一套可逆的加密、解密方法。
[0238] 进一步的,与加密端的图2对应实施例所介绍的信息加密方法相对应的,本实施例公开了一种相对应的信息解密方法,结合图6所示,详细步骤可以包括:
[0239] 步骤S600、获取加密信息。
[0240] 步骤S610、处理预存储的原始密钥,得到与所述加密信息相同位数的处理后密钥,作为异或操作密钥。
[0241] 步骤S620、利用所述异或操作密钥与所述加密信息进行异或操作,得到密文。
[0242] 具体的,上述步骤S600-S620与前述步骤S500-S520一一对应,详细参照前文介绍,此处不再赘述。
[0243] 步骤S630、基于所述密文,确定加密端加密操作过程的余数k。
[0244] 具体的,密文中可以划分为两部分,一部分表示有效编码结果,另一部分为标记位。因此,可以将所述密文中表示有效编码结果的设定位数的密文的各项相加,再加上所述密文中表示标记位的密文的数值的设定倍数,然后对所述设定位数的值取余,得到余数k。其中,设定位数为有效编码结果的位数,对应于前述实施例中步骤S220中提及的编码结果的位数。设定倍数为所述密文的进制格式对应的进制数值。如,密文为64进制格式,则设定倍数可以是64。
[0245] 其中,加密端基于编码结果确定余数k,并基于编码结果和余数k确定新的编码结果,对应本步骤中的密文。
[0246] 基于余数不变定理,解密端可以按照上述方式反向确定出余数k。
[0247] 步骤S640、将所述密文中表示有效编码结果的设定位数的密文的各项逐项减去余数k,得到还原后的密文。
[0248] 具体的,由于加密端是将编码结果逐位加上余数k得到的新的编码结果,对应本步骤中的密文。因此,本步骤中,可以将密文中表示有效编码结果的部分密文逐项减去余数k,即可得到还原后的密文,也即得到加密端的编码结果。
[0249] 步骤S650、对所述还原后的密文进行解码,得到原始明文信息。
[0250] 本实施例中,基于余数不变定理,在解密端可以对加密过程得到的密文进行反向取余处理,可以还原出原始的编码结果,进而通过解码可以得到原始明文信息。也即,本实施例中基于余数不变定理及两次异或操作值不变定理,设计了一种可逆的加密、解密方法。
[0251] 进一步的,与加密端的图3对应实施例所介绍的信息加密方法相对应的,本实施例公开了一种相对应的信息解密方法,结合图7所示,详细步骤可以包括:
[0252] 步骤S700、获取加密信息。
[0253] 其中,加密信息中包含有校验码。
[0254] 步骤S710、处理预存储的原始密钥,得到与所述加密信息相同位数的处理后密钥,作为异或操作密钥。
[0255] 步骤S720、利用所述异或操作密钥与所述加密信息进行异或操作,得到密文。
[0256] 具体的,上述步骤S700-S720与前述步骤S500-S520一一对应,详细参照前文介绍,此处不再赘述。
[0257] 步骤S730、基于所述原始密钥和密文,生成标准校验码。
[0258] 具体的,可以是处理所述原始密钥,得到与密文中除所述校验码外的编码信息相同位数的处理后密钥,作为校验密钥。
[0259] 进一步,将所述校验密钥与密文中除所述校验码外的编码信息逐位相加,得到待加权编码结果。使用加权表对所述待加权编码结果中逐位加权求和,再对设定质数取余,得到标准校验码。
[0260] 本步骤的具体实现过程可以参考前文对步骤S320的详细阐述过程,只需将前文中的编码结果替换为本步骤中的密文,即可生成标准校验码。
[0261] 步骤S740、判断所述标准校验码和密文中的校验码是否一致,若是,执行步骤S750,若否,判断密文无效。
[0262] 若发现标准校验码和密文中的校验码不一致,则说明密文被篡改了,解码出的原始明文信息也是非法信息,可以判断密文无效,从而提高了信息的安全性。
[0263] 步骤S750、对密文进行解码,得到原始明文信息。
[0264] 具体的,在校验码核对正确时,可以对密文中除校验码外的密文信息进行解码,得到原始明文信息。
[0265] 本实施例示例的信息解密方法,能够通过生成标准校验码,与密文中的校验码进行核对,在核对结果一致时,才认为对密文的解码结果正确,也即认为解码出的原始明文信息正确,否则,认为密文被篡改了,解码出的明文信息也是非法的,提高了信息的安全性。
[0266] 进一步的,与加密端的图4对应实施例所介绍的信息加密方法相对应的,本实施例公开了一种相对应的信息解密方法,结合图8所示,详细步骤可以包括:
[0267] 步骤S800、获取加密信息。
[0268] 其中,加密信息中包含有校验码。
[0269] 步骤S810、处理预存储的原始密钥,得到与所述加密信息相同位数的处理后密钥,作为异或操作密钥。
[0270] 步骤S820、利用所述异或操作密钥与所述加密信息进行异或操作,得到密文。
[0271] 其中,由于加密端对原始的编码结果进行了取余、加余数k操作,因此,本实施例中需要进一步通过下述步骤对得到的密文进行反向取余、减去余数k的操作,从而得到原始的编码结果。
[0272] 步骤S830、基于所述密文,确定加密端加密操作过程的余数k。
[0273] 步骤S840、将所述密文中表示有效编码结果的设定位数的密文的各项逐项减去余数k,得到还原后的密文。
[0274] 具体的,上述步骤S800-S840与前述步骤S600-S640一一对应,详细参照前文介绍,此处不再赘述。
[0275] 步骤S850、基于所述原始密钥和还原后的密文,生成标准校验码。
[0276] 本步骤的具体实现过程可以参考前文对步骤S320的详细阐述过程,只需将前文中的编码结果替换为本步骤中的还原后的密文,即可生成标准校验码。
[0277] 步骤S860、判断所述标准校验码和异或操作得到的密文中的校验码是否一致;若是,执行步骤S870,若否,判断密文无效。
[0278] 若发现标准校验码和密文中的校验码不一致,则说明密文被篡改了,解码出的原始明文信息也是非法信息,可以判断密文无效,从而提高了信息的安全性。
[0279] 步骤S870、对所述还原后的密文进行解码,得到原始明文信息。
[0280] 本实施例示例的信息解密方法,能够通过生成标准校验码,与密文中的校验码进行核对,在核对结果一致时,才认为对密文的解码结果正确,也即认为解码出的原始明文信息正确,否则,认为密文被篡改了,解码出的明文信息也是非法的,提高了信息的安全性。
[0281] 接下来,通过一个完整的示例对本申请的信息解密方法进行介绍。
[0282] 针对前文示例的信息加密案例,其得到的加密信息为: 。
[0283] 处理原始密钥8qwe6,得到与加密信息相同位数(10位)的异或操作密钥:8qwe68qwe6。为了便于表述,将异或操作密钥为8qwe68qwe6表示为vwxyz。
[0284] 利用异或操作密钥与加密信息进行异或操作,得到密文: 。
[0285] 其中,
[0286]
[0287] 基于密文确定余数k:
[0288] 将上面得到的密文中 逐项相加再加上64倍的s,再对8取余,根据余数不变原理,得到加密端的余数k:
[0289]
[0290] 将 逐项减去k,若结果小于0则向s借位,得到还原后的密文 。
[0291] ;若 , , 。
[0292] 基于原始密钥和还原后密文,生成标准校验码:
[0293] 使用原始密钥与上述还原后的密文 逐位相加,再使用加权表加权求和,再对61取余,得到标准校验码 。
[0294] 判断标准校验码 与密文中的 是否相同,若相同,则对还原后的密文 进行解码,得到原始明文信息2020123105070180。
[0295] 若判断不相同,则说明加密信息被篡改,无效。
[0296] 可以理解的是,对于解密端设备而言,若在设定的短时间内接收到大量的无效加密信息,则认为存在“暴力破解”操作,可以触发“防爆破”机制,即在接下来的设定时长内禁止再次输入加密信息。
[0297] 下面对本申请实施例提供的信息加密装置进行描述,下文描述的信息加密装置与上文描述的信息加密方法可相互对应参照。
[0298] 参见图9,图9为本申请实施例公开的一种信息加密装置结构示意图。
[0299] 如图9所示,该装置可以包括:
[0300] 原始信息获取单元11,用于获取待加密的原始明文信息,以及预置的原始密钥;
[0301] 编码单元12,用于对所述原始明文信息进行编码,得到数列形式的编码结果;
[0302] 第一异或操作密钥生成单元13,用于处理所述原始密钥,得到与所述编码结果相同位数的处理后密钥,作为异或操作密钥;
[0303] 第一异或处理单元14,用于利用所述异或操作密钥与所述编码结果进行异或操作,得到加密信息。
[0304] 本申请实施例提供的信息加密装置,在加密端对原始明文信息进行编码,得到数列形式的编码结果,进一步处理原始密钥,得到编码结果相同位数的处理后密钥,作为异或操作密钥,利用该异或操作密钥与编码结果进行异或操作,得到加密信息,该加密信息可以在解密端进行解密,还原出原始明文信息。
[0305] 可选的,本申请的信息加密装置还可以包括:取余处理单元,用于:
[0306] 在所述处理所述原始密钥之前,将所述编码结果中逐位相加后对所述编码结果的位数值取余,得到余数k;将所述编码结果中逐位加上所述余数k,得到新的编码结果;
[0307] 对应的,第一异或操作密钥生成单元具体用于,处理所述原始密钥,得到与所述新的编码结果相同位数的处理后密钥,作为异或操作密钥。
[0308] 可选的,本申请的信息加密装置还可以包括:校验码处理单元,用于:
[0309] 在处理所述原始密钥之前,基于所述原始密钥和对原始明文信息进行编码得到的编码结果,生成校验码;将编码结果与所述校验码组合成新的编码结果;
[0310] 对应的,第一异或操作密钥生成单元具体用于,处理所述原始密钥,得到与所述新的编码结果相同位数的处理后密钥,作为异或操作密钥。
[0311] 可选的,上述编码单元对所述原始明文信息进行编码,得到数列形式的编码结果的过程,可以包括:
[0312] 将所述原始明文信息编码成指定进制值的数列。
[0313] 可选的,所述指定进制值可以是64进制、32进制、16进制或10进制。
[0314] 可选的,上述第一异或操作密钥生成单元处理所述原始密钥,得到与所述编码结果相同位数的处理后密钥,作为异或操作密钥的过程,可以包括:
[0315] 若原始密钥的位数m≤编码结果的位数n,则从所述原始密钥的首位开始循环选取n-m位数,得到n-m位补充密钥;将所述原始密钥和所述补充密钥依序组成异或操作密钥;
[0316] 若原始密钥的位数m>编码结果的位数n,则将原始密钥以n为划分单位,依序划分为若干组,并从划分后的第二个组开始依次处理后续每个组,针对每个组:
[0317] 将该组中每一位数分别与第一组中对应位置的数进行异或操作,将对应位置的操作结果替换掉第一组中对应位置的数,得到替换后的第一组作为新的第一组;
[0318] 直至处理完各个组,得到最终的第一组作为异或操作密钥。
[0319] 可选的,上述第一异或处理单元利用所述异或操作密钥与所述编码结果进行异或操作,得到加密信息的过程,可以包括:
[0320] 将编码结果中第i位数与所述异或操作密钥中第i位数及加密信息中第i-1位数同时进行异或操作,结果作为加密信息中第i位数,i依序选取1至x,x为编码结果或异或操作密钥的位数。
[0321] 可选的,上述取余处理单元将所述编码结果中逐位加上所述余数k,得到新的编码结果的过程,可以包括:
[0322] 记一个标记位s,并初始化为0;
[0323] 将编码结果中逐位加上余数k,如有大于等于对原始明文信息进行编码时所指定进制值的数则向s进位,得到由编码结果逐位加k后和标记位s组成的新的编码结果。
[0324] 可选的,上述校验码处理单元基于所述原始密钥和对原始明文信息进行编码得到的编码结果,生成校验码的过程,可以包括:
[0325] 处理所述原始密钥,得到与对原始明文信息进行编码得到的编码结果相同位数的处理后密钥,作为校验密钥;
[0326] 将所述校验密钥与对原始明文信息进行编码得到的编码结果逐位相加,得到待加权编码结果;
[0327] 使用加权表对所述待加权编码结果中逐位加权求和,再对设定质数取余,得到校验码。设定质数为大于指定进制数的最小质数,或小于指定进制数的最大质数。
[0328] 进一步,对本申请实施例提供的信息解密装置进行描述,下文描述的信息解密装置与上文描述的信息解密方法可相互对应参照。
[0329] 参见图10,图10为本申请实施例公开的一种信息解密装置结构示意图。
[0330] 如图10所示,该装置可以包括:
[0331] 加密信息获取单元21,用于获取加密信息;
[0332] 第二异或操作密钥生成单元22,用于处理预存储的原始密钥,得到与所述加密信息相同位数的处理后密钥,作为异或操作密钥;
[0333] 第二异或处理单元23,用于利用所述异或操作密钥与所述加密信息进行异或操作,得到密文;
[0334] 解码单元24,用于对所述密文进行解码,得到原始明文信息。
[0335] 本申请实施例提供的信息解密装置,基于两次异或操作值不变这一原理,在解密端可以使用异或操作密钥对加密信息进行异或操作,其中,加密信息为加密端使用异或操作密钥对编码结果进行异或操作的结果,也即对于编码结果,其被异或操作密钥执行了两次异或操作,因此可以在解密端还原出编码结果,进一步通过解码可以还原出原始明文信息。基于此,本申请方案提供了一套可逆的加密、解密装置。
[0336] 可选的,本申请的信息解密装置还可以包括:
[0337] 反向取余处理单元,用于在对所述密文进行解码之前,将所述密文中表示有效编码结果的设定位数的密文的各项相加,再加上所述密文中表示标记位的密文的数值的设定倍数,然后对所述设定位数的值取余,得到余数k;所述设定倍数为所述密文的进制格式对应的进制数值;
[0338] 将所述密文中表示有效编码结果的设定位数的密文的各项逐项减去余数k,得到还原后的密文;
[0339] 则上述解码单元具体用于,对所述还原后的密文进行解码。
[0340] 可选的,本申请的信息解密装置还可以包括:
[0341] 校验码验证单元,用于在对所述密文进行解码之前,基于所述原始密钥和密文中除所述校验码外的编码信息,生成标准校验码;判断所述标准校验码和所述密文中的校验码是否一致;若一致,则执行解码单元,若不一致,则判定所述密文无效。
[0342] 可选的,上述解码单元对所述密文进行解码,得到原始明文信息的过程,可以包括:
[0343] 对指定进制值的密文进行解码,得到十进制形式的原始明文信息。
[0344] 可选的,上述第二异或操作密钥生成单元处理预存储的原始密钥,得到与所述加密信息相同位数的处理后密钥,作为异或操作密钥的过程,可以包括:
[0345] 若原始密钥的位数m≤加密信息的位数x,则从所述原始密钥的首位开始循环选取x-m位数,得到x-m位补充密钥;将所述原始密钥和所述补充密钥依序组成异或操作密钥;
[0346] 若原始密钥的位数m>加密信息的位数x,则将原始密钥以x为划分单位,依序划分为若干组,并从划分后的第二个组开始依次处理后续每个组,针对每个组:
[0347] 将该组中每一位数分别与第一组中对应位置的数进行异或操作,将对应位置的操作结果替换掉第一组中对应位置的数,得到替换后的第一组作为新的第一组;
[0348] 直至处理完各个组,得到最终的第一组作为异或操作密钥。
[0349] 可选的,上述第二异或处理单元利用所述异或操作密钥与所述加密信息进行异或操作,得到密文的过程,可以包括:
[0350] 将加密信息中第i位数与所述异或操作密钥中第i位数及密文中第i-1位数同时进行异或操作,结果作为密文中第i位数,i依序选取1至x,x为加密信息或异或操作密钥的位数。
[0351] 可选的,上述校验码验证单元基于所述原始密钥和密文中除所述校验码外的编码信息,生成标准校验码的过程,可以包括:
[0352] 处理所述原始密钥,得到与密文中除所述校验码外的编码信息相同位数的处理后密钥,作为校验密钥;
[0353] 将所述校验密钥与密文中除所述校验码外的编码信息逐位相加,得到待加权编码结果;
[0354] 使用加权表对所述待加权编码结果中逐位加权求和,再对设定质数取余,得到标准校验码。
[0355] 本申请实施例提供的信息加密、解密装置可应用于信息处理设备,如终端:手机、电脑等。可选的,图11示出了信息处理设备的硬件结构框图,参照图11,信息处理设备的硬件结构可以包括:至少一个处理器1,至少一个通信接口2,至少一个存储器3和至少一个通信总线4;
[0356] 在本申请实施例中,处理器1、通信接口2、存储器3、通信总线4的数量为至少一个,且处理器1、通信接口2、存储器3通过通信总线4完成相互间的通信;
[0357] 处理器1可能是一个中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路等;
[0358] 存储器3可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory)等,例如至少一个磁盘存储器;
[0359] 其中,存储器存储有程序,处理器可调用存储器存储的程序,所述程序用于:实现信息加密处理,或信息解密处理。
[0360] 其中信息加密处理过程包括:
[0361] 获取待加密的原始明文信息,以及预置的原始密钥;
[0362] 对所述原始明文信息进行编码,得到数列形式的编码结果;
[0363] 处理所述原始密钥,得到与所述编码结果相同位数的处理后密钥,作为异或操作密钥;
[0364] 利用所述异或操作密钥与所述编码结果进行异或操作,得到加密信息。
[0365] 信息解密处理过程包括:
[0366] 获取加密信息;
[0367] 处理预存储的原始密钥,得到与所述加密信息相同位数的处理后密钥,作为异或操作密钥;
[0368] 利用所述异或操作密钥与所述加密信息进行异或操作,得到密文;
[0369] 对所述密文进行解码,得到原始明文信息。
[0370] 可选的,所述程序的细化功能和扩展功能可参照上文描述。
[0371] 本申请实施例还提供一种存储介质,该存储介质可存储有适于处理器执行的程序,所述程序用于:
[0372] 实现信息加密处理,或信息解密处理。
[0373] 其中信息加密处理过程包括:
[0374] 获取待加密的原始明文信息,以及预置的原始密钥;
[0375] 对所述原始明文信息进行编码,得到数列形式的编码结果;
[0376] 处理所述原始密钥,得到与所述编码结果相同位数的处理后密钥,作为异或操作密钥;
[0377] 利用所述异或操作密钥与所述编码结果进行异或操作,得到加密信息。
[0378] 信息解密处理过程包括:
[0379] 获取加密信息;
[0380] 处理预存储的原始密钥,得到与所述加密信息相同位数的处理后密钥,作为异或操作密钥;
[0381] 利用所述异或操作密钥与所述加密信息进行异或操作,得到密文;
[0382] 对所述密文进行解码,得到原始明文信息。
[0383] 可选的,所述程序的细化功能和扩展功能可参照上文描述。
[0384] 最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0385] 本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间可以根据需要进行组合,且相同相似部分互相参见即可。
[0386] 对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。