公开/公告号CN104113410A
专利类型发明专利
公开/公告日2014-10-22
原文格式PDF
申请/专利权人 北京思特奇信息技术股份有限公司;
申请/专利号CN201410317610.4
发明设计人 杨春明;
申请日2014-07-04
分类号H04L9/28;
代理机构北京轻创知识产权代理有限公司;
代理人杨立
地址 100086 北京市海淀区中关村南大街6号中电信息大厦16层
入库时间 2023-12-17 01:44:27
法律状态公告日
法律状态信息
法律状态
2017-05-17
授权
授权
2014-11-26
实质审查的生效 IPC(主分类):H04L9/28 申请日:20140704
实质审查的生效
2014-10-22
公开
公开
技术领域
本发明涉及数据加密方法,特别涉及基于多表加密法的数据加密传输方 法及装置。
背景技术
目前多数网站都采用http协议对数据明文传输,传输过程无数据加密 过程,这使得攻击者能够利用攻击工具轻而易举就会得到用户的敏感信息 (密码),无法保证用户的数据安全。
加密技术说明:若密钥是非周期的无限序列,则相应的密码为非周期多 表代替密码。这类密码,对每个明文字母都采用不同的代替表进行加密,称 之为一次一密密码(one-time pad cipher)。这是一种在理论上唯一不可破 的密码。这种密码对于明文的特点可实现完全隐蔽,但由于需要的密钥量和 明文信息的长度相同而难于广泛使用。
多表替代机密核心原理就是,就是将明文与秘钥进行逐位取模运算,利 用26个字母的周期性规则来达到替换的目的。但这种思想只对字母有效, PSC加密中没有对数字进行加密,加密算法在遇到数字的时候仍然使用明文 进行表示,那么这样就相对下降了密文的安全性。
比如,在系统登录时,通过请求分析工具可以分析得出传统的无加密方 式,可直接查看到用户密码,容易造成用户信息被窃取,进而导致用户的利 益遭受损失。
发明内容
本发明所要解决的技术问题是提供一种能够对大小写字母及数字进行 加解密的基于多表加密法的数据加密传输方法及装置。
本发明解决上述技术问题的技术方案如下:一种基于多表加密法的数据 加密传输方法,包括以下步骤:
步骤1:客户端向服务器发送获取密钥请求,服务器生成密钥,保存密 钥并将密钥发送给客户端;
步骤2:客户端向服务器提交表单数据时,客户端接收服务器发送的密 钥,将表单数据中的待加密信息转化为明文数组,将密钥转化为密钥数组;
步骤3:客户端取出明文数组中的明文字符串,将明文字符串转化为ASCII 码,取出密钥数组中的密钥字符串,将密钥字符串转化为ASCII码;
步骤4:根据明文字符串的ASCII码及密钥字符串的ASCII码对待加密信 息进行加密,将加密后得到的加密数据发送给服务器;
步骤5:服务器利用保存的密钥对加密数据采用加密的逆过程对加密数 据进行解密,并根据解密后的结果,调用后端服务。
本发明的有益效果是:本发明选用多表加密技术对明文数据进行加密, 能够对大小写字母及数字进行加解密,在利用此种算法进行数据加密传输 时,使用普通的分析工具不能够破译数据内容,保障了用户数据安全,扩展 了加密算法。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述密钥字符串为多个小写字母组成的字符串。
进一步,当所述明文字符串中的字符的数量小于密钥字符串中的字符的 数量,明文字符串中的字符与密钥字符串中的字符一一对应;
当所述明文字符串中的字符的数量大于密钥字符串中的字符的数量,在 密钥字符串的尾端叠加一个新的与原密钥字符串相同的密钥字符串,叠加后 的没有字符串中的字符与明文字符串中的字符一一对应。
进一步,所述步骤4中对明文字符串进行逐位加密,当明文字符串中的 字符为数字时,采用以下方式计算加密数据中对应的字符的ASCII码:
reslult=48+(((x-48)+y)%10);
其中,x表示明文字符串中的字符的ASCII码,y=m–97,m表示密钥 字符串中与明文字符串对应字符的ASCII码,其中y≤10,当y>10时,y=10;
当明文字符串中的字符为小写字母时,采用以下方式计算加密数据中对 应的字符的ASCII码:
reslult=97+(((x-97)+y)%26);
其中,x表示明文字符串中的字符的ASCII码,y=m–97,m表示密钥 字符串中与明文字符串对应字符的ASCII码;
当明文字符串中的字符为大写字母时,采用以下方式计算加密数据中对 应的字符的ASCII码:
reslult=65+(((x-65)+y)%26);
其中,x表示明文字符串中的字符的ASCII码,y=m–97,m表示密钥 字符串中与明文字符串对应字符的ASCII码。
进一步,所述步骤5中对加密数据进行逐位解密,当加密数据中的字符 为数字时,采用以下方式计算明文中对应的字符:
reslult=48+((((x-48)-10)-y)%10);
其中,x表示加密数据中字符的ASCII码,y=m–97,m表示密钥字符 串中与明文字符串对应字符的ASCII码,其中y≤10,当y>10时,y=10;
当加密数据中的字符为小写字母时,采用以下方式计算明文中对应的字 符:
result=97+((((x-97)-26)-y)%26);
其中,x表示加密数据中字符的ASCII码,y=m–97,m表示密钥字符 串中与明文字符串对应字符的ASCII码;
当加密数据中的字符为大写字母时,采用以下方式计算明文中对应的字 符:
result=65+((((x-65)-26)-y)%26);
其中,x表示加密数据中字符的ASCII码,y=m–97,m表示密钥字符 串中与明文字符串对应字符的ASCII码。
进一步,一种基于多表加密法的数据加密传输装置,包括客户端和服务 器;
所述客户端,用于向服务器发送获取密钥请求,向服务端提交表单数据 时,客户端接收服务器发送的密钥,将表单数据中的待加密信息转化为明文 数组,将密钥转化为密钥数组,客户端取出明文数组中的明文字符串,将明 文字符串转化为ASCII码,取出密钥数组中的密钥字符串,将密钥字符串转 化为ASCII码,根据明文字符串的ASCII码及密钥字符串的ASCII码对待加密信 息进行加密,将加密后得到的加密数据发送给服务器;
所述服务器,用于生成密钥,保存密钥并将密钥发送给客户端;利用保 存的密钥对加密数据采用加密的逆过程对加密数据进行解密,并根据解密后 的结果,调用后端服务。
进一步,所述密钥字符串为多个小写字母组成的字符串。
进一步,当所述明文字符串中的字符的数量小于密钥字符串中的字符的 数量,明文字符串中的字符与密钥字符串中的字符一一对应;
当所述明文字符串中的字符的数量大于密钥字符串中的字符的数量,在 密钥字符串的尾端叠加一个新的与原密钥字符串相同的密钥字符串,叠加后 的没有字符串中的字符与明文字符串中的字符一一对应。
进一步,所述客户端中对明文字符串进行逐位加密,当明文字符串中的 字符为数字时,采用以下方式计算加密数据中对应的字符的ASCII码:
reslult=48+(((x-48)+y)%10);
其中,x表示明文字符串中的字符的ASCII码,y=m–97,m表示密钥 字符串中与明文字符串对应字符的ASCII码,其中y≤10,当y>10时,y=10;
当明文字符串中的字符为小写字母时,采用以下方式计算加密数据中对 应的字符的ASCII码:
reslult=97+(((x-97)+y)%26);
其中,x表示明文字符串中的字符的ASCII码,y=m–97,m表示密钥 字符串中与明文字符串对应字符的ASCII码;
当明文字符串中的字符为大写字母时,采用以下方式计算加密数据中对 应的字符的ASCII码:
reslult=65+(((x-65)+y)%26);
其中,x表示明文字符串中的字符的ASCII码,y=m–97,m表示密钥 字符串中与明文字符串对应字符的ASCII码。
进一步,所述服务器中对加密数据进行逐位解密,当加密数据中的字符 为数字时,采用以下方式计算明文中对应的字符:
reslult=48+((((x-48)-10)-y)%10);
其中,x表示加密数据中字符的ASCII码,y=m–97,m表示密钥字符 串中与明文字符串对应字符的ASCII码,其中y≤10,当y>10时,y=10;
当加密数据中的字符为小写字母时,采用以下方式计算明文中对应的字 符:
result=97+((((x-97)-26)-y)%26);
其中,x表示加密数据中字符的ASCII码,y=m–97,m表示密钥字符 串中与明文字符串对应字符的ASCII码;
当加密数据中的字符为大写字母时,采用以下方式计算明文中对应的字 符:
result=65+((((x-65)-26)-y)%26);
其中,x表示加密数据中字符的ASCII码,y=m–97,m表示密钥字符 串中与明文字符串对应字符的ASCII码。
附图说明
图1为本发明方法步骤流程图;
图2为本发明装置结构图。
附图中,各标号所代表的部件列表如下:
1、客户端,2、服务器。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本 发明,并非用于限定本发明的范围。
如图1所示,为本发明方法步骤流程图;图2为本发明装置结构图。
实施例1
一种基于多表加密法的数据加密传输方法,包括以下步骤:
步骤1:客户端向服务器发送获取密钥请求,服务器生成密钥,保存密 钥并将密钥发送给客户端;
步骤2:客户端向服务器提交表单数据时,客户端接收服务器发送的密 钥,将表单数据中的待加密信息转化为明文数组,将密钥转化为密钥数组;
步骤3:客户端取出明文数组中的明文字符串,将明文字符串转化为ASCII 码,取出密钥数组中的密钥字符串,将密钥字符串转化为ASCII码;
步骤4:根据明文字符串的ASCII码及密钥字符串的ASCII码对待加密信 息进行加密,将加密后得到的加密数据发送给服务器;
步骤5:服务器利用保存的密钥对加密数据采用加密的逆过程对加密数 据进行解密,并根据解密后的结果,调用后端服务。
所述密钥字符串为多个小写字母组成的字符串。
当所述明文字符串中的字符的数量小于密钥字符串中的字符的数量,明 文字符串中的字符与密钥字符串中的字符一一对应;
当所述明文字符串中的字符的数量大于密钥字符串中的字符的数量,在 密钥字符串的尾端叠加一个新的与原密钥字符串相同的密钥字符串,叠加后 的没有字符串中的字符与明文字符串中的字符一一对应。
所述步骤4中对明文字符串进行逐位加密,当明文字符串中的字符为数 字时,采用以下方式计算加密数据中对应的字符的ASCII码:
reslult=48+(((x-48)+y)%10);
其中,x表示明文字符串中的字符的ASCII码,y=m–97,m表示密钥 字符串中与明文字符串对应字符的ASCII码,其中y≤10,当y>10时,y=10;
当明文字符串中的字符为小写字母时,采用以下方式计算加密数据中对 应的字符的ASCII码:
reslult=97+(((x-97)+y)%26);
其中,x表示明文字符串中的字符的ASCII码,y=m–97,m表示密钥 字符串中与明文字符串对应字符的ASCII码;
当明文字符串中的字符为大写字母时,采用以下方式计算加密数据中对 应的字符的ASCII码:
reslult=65+(((x-65)+y)%26);
其中,x表示明文字符串中的字符的ASCII码,y=m–97,m表示密钥 字符串中与明文字符串对应字符的ASCII码。
进一步,所述步骤5中对加密数据进行逐位解密,当加密数据中的字符 为数字时,采用以下方式计算明文中对应的字符:
reslult=48+((((x-48)-10)-y)%10);
其中,x表示加密数据中字符的ASCII码,y=m–97,m表示密钥字符 串中与明文字符串对应字符的ASCII码,其中y≤10,当y>10时,y=10;
当加密数据中的字符为小写字母时,采用以下方式计算明文中对应的字 符:
result=97+((((x-97)-26)-y)%26);
其中,x表示加密数据中字符的ASCII码,y=m–97,m表示密钥字符 串中与明文字符串对应字符的ASCII码;
当加密数据中的字符为大写字母时,采用以下方式计算明文中对应的字 符:
result=65+((((x-65)-26)-y)%26);
其中,x表示加密数据中字符的ASCII码,y=m–97,m表示密钥字符 串中与明文字符串对应字符的ASCII码。
一种基于多表加密法的数据加密传输装置,包括客户端1和服务器2;
所述客户端1,用于向服务器2发送获取密钥请求,向服务端提交表单 数据时,客户端接收服务器发送的密钥,将表单数据中的待加密信息转化为 明文数组,将密钥转化为密钥数组,客户端取出明文数组中的明文字符串, 将明文字符串转化为ASCII码,取出密钥数组中的密钥字符串,将密钥字符 串转化为ASCII码,根据明文字符串的ASCII码及密钥字符串的ASCII码对待加 密信息进行加密,将加密后得到的加密数据发送给服务器2;
所述服务器2,用于生成密钥,保存密钥并将密钥发送给客户端1;利 用保存的密钥对加密数据采用加密的逆过程对加密数据进行解密,并根据解 密后的结果,调用后端服务。
所述密钥字符串为多个小写字母组成的字符串。
当所述明文字符串中的字符的数量小于密钥字符串中的字符的数量,明 文字符串中的字符与密钥字符串中的字符一一对应;
当所述明文字符串中的字符的数量大于密钥字符串中的字符的数量,在 密钥字符串的尾端叠加一个新的与原密钥字符串相同的密钥字符串,叠加后 的没有字符串中的字符与明文字符串中的字符一一对应。
所述客户端1中对明文字符串进行逐位加密,当明文字符串中的字符为 数字时,采用以下方式计算加密数据中对应的字符的ASCII码:
reslult=48+(((x-48)+y)%10);
其中,x表示明文字符串中的字符的ASCII码,y=m–97,m表示密钥 字符串中与明文字符串对应字符的ASCII码,其中y≤10,当y>10时,y=10;
当明文字符串中的字符为小写字母时,采用以下方式计算加密数据中对 应的字符的ASCII码:
reslult=97+(((x-97)+y)%26);
其中,x表示明文字符串中的字符的ASCII码,y=m–97,m表示密钥 字符串中与明文字符串对应字符的ASCII码;
当明文字符串中的字符为大写字母时,采用以下方式计算加密数据中对 应的字符的ASCII码:
reslult=65+(((x-65)+y)%26);
其中,x表示明文字符串中的字符的ASCII码,y=m–97,m表示密钥 字符串中与明文字符串对应字符的ASCII码。
所述服务器2中对加密数据进行逐位解密,当加密数据中的字符为数字 时,采用以下方式计算明文中对应的字符:
reslult=48+((((x-48)-10)-y)%10);
其中,x表示加密数据中字符的ASCII码,y=m–97,m表示密钥字符 串中与明文字符串对应字符的ASCII码,其中y≤10,当y>10时,y=10;
当加密数据中的字符为小写字母时,采用以下方式计算明文中对应的字 符:
result=97+((((x-97)-26)-y)%26);
其中,x表示加密数据中字符的ASCII码,y=m–97,m表示密钥字符 串中与明文字符串对应字符的ASCII码;
当加密数据中的字符为大写字母时,采用以下方式计算明文中对应的字 符:
result=65+((((x-65)-26)-y)%26);
其中,x表示加密数据中字符的ASCII码,y=m–97,m表示密钥字符 串中与明文字符串对应字符的ASCII码。
多表替代:多表中的“表”其实就是指的秘钥,那么“多表”(由于算 法是明文与秘钥逐位进行替换),当明文大于秘钥时,秘钥自动转换为下一 个对称周期,直到完全与明文的长度对应。
例如:
原文:g f e t y u e w 4
秘钥:a b c a b c a b c
原文:g f e t y u e w
秘钥:a b c a b c a b
秘钥为abc,原文为gfetyuew4和原文为gfetyuew时加密运算规则。
“表”的生成算法:使用java的random类,从26个字母列表中,每 次从0-25中随机选取一个位置作为列表下标,通过下标获取对应的字母。 在本例中为默认获取一个长度为10的随机密钥。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明 的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发 明的保护范围之内。
机译: 图像数据加密装置,加密的图像数据解密装置,图像数据加密方法,加密的图像数据解密方法和加密的图像数据传输方法
机译: 1,一种基于低温共加热铈芯芯片(LTCC)的多表酶链驱动微装置(PCR),包括驱动摄像机,加热器,加热温度控制,通讯接口优化检测,监控方法。
机译: 一种移动无线电系统中数据加密传输中的同步信息传输方法