CN109728897A - 一种为等长可见字符串的加密和解密方法 - Google Patents

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

Info

Publication number
CN109728897A
CN109728897A CN201910042149.9A CN201910042149A CN109728897A CN 109728897 A CN109728897 A CN 109728897A CN 201910042149 A CN201910042149 A CN 201910042149A CN 109728897 A CN109728897 A CN 109728897A
Authority
CN
China
Prior art keywords
value
values
byte
box
equal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
CN201910042149.9A
Other languages
English (en)
Inventor
孙磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Xinan Rong Hui Network Technology Co Ltd
Original Assignee
Nanjing Xinan Rong Hui Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing Xinan Rong Hui Network Technology Co Ltd filed Critical Nanjing Xinan Rong Hui Network Technology Co Ltd
Priority to CN201910042149.9A priority Critical patent/CN109728897A/zh
Publication of CN109728897A publication Critical patent/CN109728897A/zh
Withdrawn legal-status Critical Current

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

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

Description

一种为等长可见字符串的加密和解密方法
技术领域
本发明属于信息安全技术领域,特别是涉及一种为等长可见字符串的加密和解密方法。
背景技术
信息安全问题日益严重,但很多以上线的应用在设计初期并没有规划数据的加密传输和存储,可见字符为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即为密钥流,将密钥流与明文进行逐字节的异或操作即可得到密文或明文。

Claims (3)

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所述的一种为等长可见字符串的加密和解密方法,其特征在于,所述解密模块的具体加密步骤如下:
步骤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得到密文字节的值,解密流程结束。
3.根据权利要求1所述的一种为等长可见字符串的加密和解密方法,其特征在于,所述RC4算法中的密钥流的生成主要包括两个阶段,第一阶段是初始化S盒,第二阶段是生成伪随机子密钥。
CN201910042149.9A 2019-01-17 2019-01-17 一种为等长可见字符串的加密和解密方法 Withdrawn CN109728897A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910042149.9A CN109728897A (zh) 2019-01-17 2019-01-17 一种为等长可见字符串的加密和解密方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910042149.9A CN109728897A (zh) 2019-01-17 2019-01-17 一种为等长可见字符串的加密和解密方法

Publications (1)

Publication Number Publication Date
CN109728897A true CN109728897A (zh) 2019-05-07

Family

ID=66299117

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910042149.9A Withdrawn CN109728897A (zh) 2019-01-17 2019-01-17 一种为等长可见字符串的加密和解密方法

Country Status (1)

Country Link
CN (1) CN109728897A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111177760A (zh) * 2019-12-30 2020-05-19 核工业北京地质研究院 一种基于异或算法改进的数据加密解密方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111177760A (zh) * 2019-12-30 2020-05-19 核工业北京地质研究院 一种基于异或算法改进的数据加密解密方法

Similar Documents

Publication Publication Date Title
CN101753292B (zh) 用于链接式加密模式的方法和设备
KR102136904B1 (ko) 공유 비밀키 생성 장치, 암호화 장치, 복호화 장치, 공유 비밀키 생성 방법, 암호화 방법, 복호화 방법, 및 프로그램
US7945049B2 (en) Stream cipher using multiplication over a finite field of even characteristic
US20060023875A1 (en) Enhanced stream cipher combining function
CN102484581A (zh) 使用中间数据更改的具有可配置密钥的白盒密码系统
WO2014136386A1 (ja) タグ生成装置、タグ生成方法およびタグ生成プログラム
CN108141352B (zh) 密码设备、方法、装置和计算机可读介质和编码设备、方法、装置和计算机可读介质
Singh Modified Vigenere encryption algorithm and its hybrid implementation with Base64 and AES
US8122075B2 (en) Pseudorandom number generator and encryption device using the same
CN102546156A (zh) 一种分组加密方法、系统和装置
CN103580851A (zh) 信息加密及解密方法
Ghazi et al. Robust and efficient dynamic stream cipher cryptosystem
CN114124359A (zh) 保留格式加密数据的方法、装置、电子设备及存储介质
CN104219045A (zh) Rc4 流密码生成器
CN109728897A (zh) 一种为等长可见字符串的加密和解密方法
CN102043641A (zh) 电子设备的固件升级方法
CN111314052B (zh) 一种数据加密和解密方法
EP3413509B1 (en) Cmac computation using white-box implementations with external encodings
CN109714151A (zh) 基于aes-gcm的芯片数据处理方法及系统
JP4857230B2 (ja) 疑似乱数生成装置及びそれを用いた暗号化処理装置
RU2738321C1 (ru) Способ криптографического преобразования и устройство для его осуществления
JP2019504343A (ja) 計算デバイス及び方法
KR101076747B1 (ko) 스트림 모듈의 계층적 트리 구조를 통한 무작위 접근이 가능한 암호화/복호화 방법 및 장치
JP2011160229A (ja) 認証付きストリーム暗号の暗号化装置、認証付きストリーム暗号の復号化装置、暗号化方法、復号化方法およびプログラム
JP2018514816A (ja) 変形鍵を用いる高速aes

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WW01 Invention patent application withdrawn after publication

Application publication date: 20190507

WW01 Invention patent application withdrawn after publication