基于分组加密算法的随机密文系统及实现方法技术方案

技术编号:14586747 阅读:175 留言:0更新日期:2017-02-08 16:25
本发明专利技术涉及计算机软件加密技术领域,公开了一种基于分组加密算法的随机密文系统及实现方法,自动判断被加密明文位数长度及其所用分组加密算法的分组长度,并对其明文进行智能填充的随机密文生成方法。本发明专利技术的系统包括加密子系统和解密子系统;其中,所述加密子系统包括加密算法选择模块、密钥选择模块、明文判断模块、明文填充算法模块和加密算法模块;解密子系统包括解密算法模块、反向明文填充模块以及明文校验模块;本发明专利技术的方法通过对明文信息加入随机填充位实现。本发明专利技术适用于对日常计算机软件进行加密。

Random cipher system based on block cipher algorithm and its implementation method

The invention relates to a computer software encryption technology field, discloses a random cipher system block encryption algorithm and realization method based on automatic judgment, encrypted plaintext digit length and the length of the packet grouping encryption algorithm, and the plaintext is filled with the secret intelligence generation method. The system of the invention includes encryption subsystem and decryption subsystem; wherein, the encryption subsystem includes encryption algorithm selection module, key selection module, a judging module, the plaintext plaintext filling algorithm module and encryption algorithm module; decryption subsystem includes a decryption algorithm module, reverse padding module and plaintext check module; the method of the invention by adding random fill bits of plaintext to realize. The invention is suitable for encrypting daily computer software.

【技术实现步骤摘要】

本专利技术涉及计算机软件加密技术,特别涉及基于分组加密算法的随机密文系统及实现方法。
技术介绍
随着信息加密技术的发展,加密算法的强度越来越受到大家的重视和关注,相关的增强加密算法强度的方法也越来越必不可少,在明文经过加密算法生成密文后,对密文的分析和破解也成为了黑客们经常关注的事情,分组加密算法做为一个使用频繁的常用信息加密方法,非常适合加密大量数据;但是由于分组加密算法对同一明文加密的密文是唯一的,导致了黑客可以对已知密文进行逆运算,从而得出对应的明文,大大削弱了密文的安全性;当前的传统分组加密算法,根本没有解决这种密文唯一性的问题;因此需要一个能在明文中自动添加随机填充位,使同样的明文在每次加密后能生成不同的密文的算法,从而增加密码强壮度,实现即使黑客获取密文后,也难逆向推出明文的目的。
技术实现思路
本专利技术要解决的技术问题是:提供一种基于分组加密算法的随机密文系统及实现方法,自动判断被加密明文位数长度及其所用分组加密算法的分组长度,并对其明文进行智能填充的随机密文生成方法。为解决上述问题,本专利技术采用的技术方案是:基于分组加密算法的随机密文系统,包括加密子系统,所述加密子系统包括加密算法选择模块、密钥选择模块、明文判断模块、明文填充算法模块和加密算法模块;所述加密算法选择模块用于选取分组加密算法的类型;所述密钥选择模块用于选取进行加密过程的密钥长度;所述明文检测模块用于判断输入明文位数,且将该明文信息通过摘要算法计算出一个摘要信息,然后将明文长度信息传递给明文填充算法模块,将明文摘要信息传递给加密算法模块;所述明文填充算法模块用于将不满足规则的明文信息按照特定明文填充算法进行填充,具体包括:如果明文长度不足密钥长度,明文填充算法模块则生成随机位信息,并使用该信息将明文填充到一倍密钥长度,然后再次生成一倍密钥长度的随机位信息,填充到之前的明文信息后面;如果明文长度等于密钥长度,明文填充算法模块则生成一倍密钥长度的随机位信息,填充到明文信息后面;如果明文长度大于密钥长度,明文填充算法模块则先将明文信息按密钥整数倍进行平均切割,生成随机位信息,对不足一倍密钥长度的明文信息进行填充;所述加密算法模块用于对填充后的明文信息和填充之前的明文摘要信息进行加密操作并输出密文信息。进一步的,所述摘要算法为哈希算法。进一步的,所述哈希算法为MD5算法。进一步的,本专利技术系统还包括解密子系统,所述解密子系统包括解密算法模块、反向明文填充算法模块以及明文校验模块;所述解密算法模块用于对密文信息进行解密操作并输出带有填充位的明文信息和明文摘要信息;所述反向密文填充算法模块用于将明文信息中的填充位信息去除并输出最终的明文信息;所述明文校验模块用于计算和对比所述明文摘要信息与所述最终的明文信息的一致性,证明解密操作的有效性。基于分组加密算法的随机密文实现方法,包括如下步骤:A、加密算法模块选择所使用的分组加密算法;B、密钥选择模块根据所选择的分组加密算法确定密钥长度;C、明文检测模块对输入的明文信息进行判断,并获取其明文的长度信息,且将该明文信息通过摘要算法计算出一个摘要信息,然后将明文长度信息传递给明文填充算法模块,将明文摘要信息传递给加密算法模块;D、明文填充算法模块根据所输入明文的长度信息,判断是否如何对该明文信息进行填充操作,如果明文长度不足密钥长度,明文填充算法模块则生成随机位信息,并使用该信息将明文填充到一倍密钥长度,然后再次生成一倍密钥长度的随机位信息,填充到之前的明文信息后面;如果明文长度等于密钥长度,明文填充算法模块则生成一倍密钥长度的随机位信息,填充到明文信息后面;如果明文长度大于密钥长度,明文填充算法模块则先将明文信息按密钥整数倍进行平均切割,生成随机位信息,对不足一倍密钥长度的明文信息进行填充;E、加密算法模块使用加密算法和对称算法密钥对明文填充算法模块输出的明文信息和填充之前的明文摘要信息进行加密,输出一个密文信息。进一步的,所述摘要算法为哈希算法。进一步的,所述哈希算法为MD5算法。进一步的,本专利技术方法还包括步骤:F、解密算法模块在接收到密文信息后,使用解密算法和对称算法密钥对该密文信息进行解密操作,得到含有明文填充位的明文信息和明文摘要信息,并将含有明文填充位的明文信息传递给反向明文填充算法模块,将明文摘要信息传递给明文校验模块;G、反向明文填充算法模块对得到的含有明文填充位的明文信息进行逆向操作,得出一个去掉明文填充位的明文信息,并输出给明文校验模块;H、明文校验模块对收到的明文信息计算出摘要信息,并将该摘要信息和之前从解密算法模块收到的明文摘要信息进行对比,如果一致,则判断解密操作成功;如果不一致,则解密失败。本专利技术的有益效果是:本专利技术实现方法原理简单、投入成本低,采用对明文信息加入随机填充位,在每次加密后,可以生成不同的密文信息,大大提高了黑客们获取敏感数据的成本,增加了密文的强壮度,提高了相关系统的安全性。附图说明图1为实施例的加密流程图;图2为实施例的解密流程图。具体实施方式为了能更好地对本专利技术的技术方案进行理解,下面通过具体的实施例进行详细地说明:实施例的系统包括:加密子系统和解密子系统,其中加密系统包含了加密算法选择模块、密钥选择模块、明文判断模块、明文填充算法模块和加密算法模块;解密过程包含了解密算法模块、方向明文填充算法模块以及明文校验模块。其中:所述加密算法选择模块用于选取分组加密算法的类型;所述密钥选择模块用于选取进行加密过程的密钥长度;所述明文检测模块用于判断输入明文位数;所述明文填充算法模块用于将不满足规则的明文信息按照特定算法进行填充;所述加密算法模块用于对填充后的明文信息进行加密操作并输出密文信息;所述解密算法模块用于对密文信息进行解密操作并输出带有填充位的明文信息;所述反向密文填充算法用于将明文信息中的填充位信息去除并输出最终的明文信息;所述明文校验模块用于计算和对比输入前的明文与解密后的明文的一致性,证明解密操作的有效性。基于上述系统,如图1和图2所示,实施例的具体实现方法包括以下步骤:A、加密算法模块选择所使用的分组加密算法,本例选取DES算法;B、密钥选择模块通过选择好的DES算法,选择好使用的加密密钥长度,本例选取128bit;C、明文检测模块对获取到的输入明文信息进行判断,使用算法判断其信息的长度,然后调用HASH算法(如MD5算法)将该明文信息计算出一个摘要信息,之后将明文长度数据传递给明文填充算法模块,而将明文摘要信息传递给加密算法模块;D、明文填充算法模块根据所输入明文的长度信息,判断是否如何对该明文信息进行填充操作,如果明文长度不足密钥长度,明文填充算法模块则生成随机位信息,并使用该信息将明文填充到一倍密钥长度,然后再次生成一倍密钥长度的随机位信息,填充到之前的明文信息后面;如果明文长度等于密钥长度,明文填充算法模块则生成一倍密钥长度的随机位信息,填充到明文信息后面;如果明文长度大于密钥长度,明文填充算法模块则先将明文信息按密钥整数倍进行平均切割,生成随机位信息,对不足一倍密钥长度的明文信息进行填充;E、加密算法模块使用加密算法和对称算法密钥对明文填充算法模块输出的明文信息和填充之前的明文摘要信息进行加密,输出一个密文信息;F、解密算法模块本文档来自技高网...

【技术保护点】
基于分组加密算法的随机密文系统,包括加密子系统,其特征在于,所述加密子系统包括加密算法选择模块、密钥选择模块、明文判断模块、明文填充算法模块和加密算法模块;所述加密算法选择模块用于选取分组加密算法的类型;所述密钥选择模块用于选取进行加密过程的密钥长度;所述明文检测模块用于判断输入明文位数,且将该明文信息通过摘要算法计算出一个摘要信息,然后将明文长度信息传递给明文填充算法模块,将明文摘要信息传递给加密算法模块;所述明文填充算法模块用于将不满足规则的明文信息按照特定明文填充算法进行填充,具体包括:如果明文长度不足密钥长度,明文填充算法模块则生成随机位信息,并使用该信息将明文填充到一倍密钥长度,然后再次生成一倍密钥长度的随机位信息,填充到之前的明文信息后面;如果明文长度等于密钥长度,明文填充算法模块则生成一倍密钥长度的随机位信息,填充到明文信息后面;如果明文长度大于密钥长度,明文填充算法模块则先将明文信息按密钥整数倍进行平均切割,生成随机位信息,对不足一倍密钥长度的明文信息进行填充;所述加密算法模块用于对填充后的明文信息和填充之前的明文摘要信息进行加密操作并输出密文信息。

【技术特征摘要】
1.基于分组加密算法的随机密文系统,包括加密子系统,其特征在于,所述加密子系统包括加密算法选择模块、密钥选择模块、明文判断模块、明文填充算法模块和加密算法模块;所述加密算法选择模块用于选取分组加密算法的类型;所述密钥选择模块用于选取进行加密过程的密钥长度;所述明文检测模块用于判断输入明文位数,且将该明文信息通过摘要算法计算出一个摘要信息,然后将明文长度信息传递给明文填充算法模块,将明文摘要信息传递给加密算法模块;所述明文填充算法模块用于将不满足规则的明文信息按照特定明文填充算法进行填充,具体包括:如果明文长度不足密钥长度,明文填充算法模块则生成随机位信息,并使用该信息将明文填充到一倍密钥长度,然后再次生成一倍密钥长度的随机位信息,填充到之前的明文信息后面;如果明文长度等于密钥长度,明文填充算法模块则生成一倍密钥长度的随机位信息,填充到明文信息后面;如果明文长度大于密钥长度,明文填充算法模块则先将明文信息按密钥整数倍进行平均切割,生成随机位信息,对不足一倍密钥长度的明文信息进行填充;所述加密算法模块用于对填充后的明文信息和填充之前的明文摘要信息进行加密操作并输出密文信息。2.根据权利要求1所述的基于分组加密算法的随机密文系统,其特征在于,所述摘要算法为哈希算法。3.根据权利要求2所述的基于分组加密算法的随机密文系统,其特征在于,所述哈希算法为MD5算法。4.根据权利要求1所述的基于分组加密算法的随机密文系统,其特征在于,还包括解密子系统,所述解密子系统包括解密算法模块、反向明文填充算法模块以及明文校验模块;所述解密算法模块用于对密文信息进行解密操作并输出带有填充位的明文信息和明文摘要信息;所述反向密文填充算法模块用于将明文信息中的填充位信息去除并输出最终的明文信息;所述明文校验模块用于计算和对比所述明文摘要信息与所述最终的明文信息的一致性,证明解密操作的有效性。5.基于分组加密算法的随机密文实现方法,其特征在于,包括如下步骤:A、加密算法...

【专利技术属性】
技术研发人员:丁锐师洛蓓孟玉雪胡迪潘黎彭曦吴伦勇
申请(专利权)人:四川长虹电器股份有限公司
类型:发明
国别省市:四川;51

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

1