一种为等长可见字符串的加密和解密方法技术

技术编号:21065156 阅读:46 留言:0更新日期:2019-05-08 09:49
本发明专利技术公开一种为等长可见字符串的加密和解密方法,所述加密模块的具体加密步骤如下:判断明文字节值是否大于63,若大于63直接进行步骤103;明文字节值减去32得到的值,S‑BOX和00011111b做与运算的值,前面得到的两个值做异或运算得到的值加上32得到密文字节值,加密流程结束;明文字节值减去64得到的值,S‑BOX和00111111b做与运算的值,前面得到的两个值做异或运算得到的值是否等于63;若不等于63直接进行步骤105;密文字节就直接等于明文字节;加密流程结束;明文字节值减去64得到的值,S‑BOX和00111111b做与运算的值,前面得到的两个值做异或运算得到的值再加上64得到密文字节的值,加密流程结束。能够支持可见字符串加密后密文也为可见字符,且明文密文长度相等。

【技术实现步骤摘要】
一种为等长可见字符串的加密和解密方法
本专利技术属于信息安全
,特别是涉及一种为等长可见字符串的加密和解密方法。
技术介绍
信息安全问题日益严重,但很多以上线的应用在设计初期并没有规划数据的加密传输和存储,可见字符为ACSII码的取值范围为32到126。AES、DES等分组对称加密方法都会使密文变长,且密文的ACSII码为0到255,存在非可见字符。RSA、ECC等非对称加密密文也是与明文长度不相等,且密文的ACSII码为0到255。RC4加密后密文与明文长度相等,但密文的ACSII码取值范围是0到255。RC4加密算法是于1987年提出的密钥长度可变的对称流加密算法。该算法的特点是算法简单,运行速度快,而且密钥长度是可变的,可变范围为1-256字节。以上的特点使得RC4算法被广泛应用,不论是软件还是硬件都非常易于实现。现有的加密算法又不能保证密文数据格式和长度与明文一致,而且数据库表结构或数据传输消息结构又不能随意更改。本专利技术就是旨在解决这类问题:在明文存储升级密文存储应用中,因为明文密文格式和长度不变,这样可以不改变数据表结构进行应用升级;同样的在明文数据传输升级密文数据传输应用中,可以不改变消息结构方便的进行应用升级。
技术实现思路
本专利技术为解决上述
技术介绍
中存在的技术问题,提供一种为等长可见字符串的加密和解密方法。本专利技术通过以下技术方案来实现:一种为等长可见字符串的加密和解密方法,包括加密模块和解密模块;所述加密模块是基于RC4算法中S-BOX实现的,所述加密模块的具体加密步骤如下:步骤101:判断明文字节值是否大于63,若大于63直接进行步骤103;步骤102:明文字节值减去32得到的值,S-BOX和00011111b做与运算的值,前面得到的两个值做异或运算得到的值加上32得到密文字节值,加密流程结束;步骤103:明文字节值减去64得到的值,S-BOX和00111111b做与运算的值,前面得到的两个值做异或运算得到的值是否等于63;若不等于63直接进行步骤105;若等于63进入步骤104;步骤104:密文字节就直接等于明文字节;加密流程结束;步骤105:明文字节值减去64得到的值,S-BOX和00111111b做与运算的值,前面得到的两个值做异或运算得到的值再加上64得到密文字节的值,加密流程结束。在进一步的实施例中,所述解密模块模块的具体加密步骤如下:步骤201:判断明文字节值是否大于63,若大于63直接进行步骤203;步骤202:明文字节值减去32得到的值,S-BOX和00011111b做与运算的值,前面得到的两个值做异或运算得到的值加上32得到密文字节值,解密流程结束;步骤203:明文字节值减去64得到的值,S-BOX和00111111b做与运算的值,前面得到的两个值做异或运算得到的值是否等于63;若不等于63直接进行步骤205;若等于63进入步骤204;步骤204:密文字节就直接等于明文字节;解密流程结束;步骤205:明文字节值减去64得到的值,S-BOX和00111111b做与运算的值,前面得到的两个值做异或运算得到的值再加上64得到密文字节的值,解密流程结束。在进一步的实施例中,所述RC4算法中的密钥流的生成主要包括两个阶段,第一阶段是初始化S盒,第二阶段是生成伪随机子密钥。本专利技术的有益效果:本专利技术提供一种可见字符串加密为等长可见字符串的加密方法,能够支持可见字符串加密后密文也为可见字符,且明文密文长度相等。采用本方案可以不改变数据表结构进行应用升级;同样的在明文数据传输升级密文数据传输应用中,不改变消息结构方便的进行应用升级的技术问题。附图说明图1为本专利技术的加密流程图。图2为本专利技术的解密流程图。具体实施方式下面通过具体实施例对本专利技术做进一步的描述。一种为等长可见字符串的加密和解密方法,包括加密模块和解密模块;所述加密模块是基于RC4算法中S-BOX实现的,所述加密模块的具体加密步骤如下:步骤101:判断明文字节值是否大于63,若大于63直接进行步骤103;步骤102:明文字节值减去32得到的值,S-BOX和00011111b做与运算的值,前面得到的两个值做异或运算得到的值加上32得到密文字节值,加密流程结束;步骤103:明文字节值减去64得到的值,S-BOX和00111111b做与运算的值,前面得到的两个值做异或运算得到的值是否等于63;若不等于63直接进行步骤105;若等于63进入步骤104;步骤104:密文字节就直接等于明文字节;加密流程结束;步骤105:明文字节值减去64得到的值,S-BOX和00111111b做与运算的值,前面得到的两个值做异或运算得到的值再加上64得到密文字节的值,加密流程结束。加密和解密的流程一样,所述解密模块的具体加密步骤如下:步骤201:判断明文字节值是否大于63,若大于63直接进行步骤203;步骤202:明文字节值减去32得到的值,S-BOX和00011111b做与运算的值,前面得到的两个值做异或运算得到的值加上32得到密文字节值,解密流程结束;步骤203:明文字节值减去64得到的值,S-BOX和00111111b做与运算的值,前面得到的两个值做异或运算得到的值是否等于63;若不等于63直接进行步骤205;若等于63进入步骤204;步骤204:密文字节就直接等于明文字节;解密流程结束;步骤205:明文字节值减去64得到的值,S-BOX和00111111b做与运算的值,前面得到的两个值做异或运算得到的值再加上64得到密文字节的值,解密流程结束。所述RC4算法中的密钥流的生成主要包括两个阶段,第一阶段是初始化S盒,第二阶段是生成伪随机子密钥。在密钥流的生成过程中,使用了状态向量S、指针索引i、j及密钥K等关键变量。对于第一阶段,假设状态向量S的长度为256字节,密钥K的长度为16字节,可以用如下类C代码表示:for(i=0;i<256;i++) {s[i]=i;}j=0;for(i=0;i<256;i++){j=(j+s[i]+k[i%16])%256;swap(s[i],s[j]);}在该第一阶段中,密钥K主要负责搅乱状态向量S(S-box),递增的索引i确保状态S-box中的每个元素都能够进行初始化,随机的索引j确保S-box搅乱的随机性。对于第二阶段,假设明文长度为Len,则可以用如下类C代码表示:i=j=0;while(i<Len){i=i++;j=(j+S[i%256])%256;swap(S[i%256],S[j]);sub_k=S((S[i%256]+S[j])%256);}第二阶段所得到的sub_k即为密钥流,将密钥流与明文进行逐字节的异或操作即可得到密文或明文。本文档来自技高网...

【技术保护点】
1.一种为等长可见字符串的加密和解密方法,其特征在于,包括加密模块和解密模块;所述加密模块是基于RC4算法中S‑BOX实现的,所述加密模块的具体加密步骤如下:步骤101:判断明文字节值是否大于63,若大于63直接进行步骤103;步骤102:明文字节值减去32得到的值,S‑BOX和00011111b做与运算的值,前面得到的两个值做异或运算得到的值加上32得到密文字节值,加密流程结束;步骤103:明文字节值减去64得到的值,S‑BOX和00111111b做与运算的值,前面得到的两个值做异或运算得到的值是否等于63;若不等于63直接进行步骤105;若等于63进入步骤104;步骤104:密文字节就直接等于明文字节;加密流程结束;步骤105:明文字节值减去64得到的值,S‑BOX和00111111b做与运算的值,前面得到的两个值做异或运算得到的值再加上64得到密文字节的值,加密流程结束。

【技术特征摘要】
1.一种为等长可见字符串的加密和解密方法,其特征在于,包括加密模块和解密模块;所述加密模块是基于RC4算法中S-BOX实现的,所述加密模块的具体加密步骤如下:步骤101:判断明文字节值是否大于63,若大于63直接进行步骤103;步骤102:明文字节值减去32得到的值,S-BOX和00011111b做与运算的值,前面得到的两个值做异或运算得到的值加上32得到密文字节值,加密流程结束;步骤103:明文字节值减去64得到的值,S-BOX和00111111b做与运算的值,前面得到的两个值做异或运算得到的值是否等于63;若不等于63直接进行步骤105;若等于63进入步骤104;步骤104:密文字节就直接等于明文字节;加密流程结束;步骤105:明文字节值减去64得到的值,S-BOX和00111111b做与运算的值,前面得到的两个值做异或运算得到的值再加上64得到密文字节的值,加密流程结束。2.根据权利要求1所述的一种为等长可见字符串的加密和解密方法...

【专利技术属性】
技术研发人员:孙磊
申请(专利权)人:南京信安融慧网络技术有限公司
类型:发明
国别省市:江苏,32

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

1