不可逆加密算法

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

作者简介:张小飞(1981-),男,硕士,连云港人,主要研究方向为网络信息安全;李佩娟(1982-),女博士研究生,主要从事测控技术与导航控制方面的研究。

不可逆加密算法和随机算法的分析与实现

张 小 飞1 李 佩 娟2

1(国网南京自动化研究院 信息网络安全实验室 南京 210003)

2(东南大学 仪器科学与工程学院 南京210096)

摘要:利用明文密码和密文密码之间的不可逆性,对应用软件密码进行加密,可以防止密码被破译或极大地增加其被破译难度和破译时间。初步探讨了增强这种算法安全性的几种相关加密算法,对其中的随机算法进行重点分析,改进并实现了随机函数的生成算法。根据分析可以看出这种随机算法很好地提高了不可逆加密算法的加密强度和加密速度。 关键词:加密;不可逆;强度;随机算法

Research & Realization of Irreversible Encryption Algorithm and Random Algorithm

ZHANG Xiao-fei 1 LI Pei-juan 2

1(Introduction to Information & Network Security Laboratory of State Grid Corporation of China, Nanjing

210003)

2(School of Instrument Science and Engineering, Southeast University, Nanjing 210096)

Abstract: The irreversibility between plaintext and ciphertext is used to encrypt the cipher of application software. Therefore the decryption time and difficulty can be greatly increased, and the cipher can be protected from decryption in this algorithm. The paper also tentatively discusses several related encryption algorithms, especially improves and realizes the random algorithm. The analyses confirmed that this kind of random algorithm greatly improves the strength and the speed of encryption algorithm.

Key words: encryption; irreversibility; strength; random algorithm

1 引 言

目前,加密算法被广泛地应用于文件、数字签名、计算机网络的保密与安全等方面,其中比较成熟和流行的加密算法有 DES 加密算法、RSA 加密算法等,正在研究和开发的加密算法有刘氏高强度公开加密算法等。它们将明文用选定的密钥通过某种加密算法把明文变成密文,密文还可以用密钥通过该解密算法变换成原来的明文,即明文和密文之间具有可逆性。

应用软件一般都需要输入正确的密码(即口令)之后,才可以跳过启动界面,进入到软件的使用界面。这个密码就相当于上面介绍的明文,这种明文被称为明文密码。它应该存储在应用软件内部的某个文件或某几个文件中,只不过在存储明文密码时,是经过加密的。这种经过加密后的密码称为密文密码。

对于明文密码和密文密码之间具有可逆性的加密算法研究的比较多,而且比较成熟,下面讨论明文密码和密文密码之间不可逆加密算法。

2 不可逆加密算法

应用软件在判断用户输入密码是否正确时,不是采用将密文密码解密成明文密码,再和用户输入的明文密码进行比较来判断用户输入的密码是否正确,而是采用将用户输入的明文密码加密成密文密码后,

再和应用软件保存的密文密码进行比较来判断用户输入的密码是否

正确。这样就不需要对密文密码进行解密,即只有加密过程,没有解密过程,可以使用一些不可逆的加密算法来增强加密的安全性。

采用的非线性不可逆加密算法:i i i z Ax y +=

其中y i 为加密后的密文密码向量,x i 为待加密的明文密码向量,A 为映射矩阵,z i 为非线性函数向量。当采用有密钥时,A 为根据密钥选定的一个映射矩阵,A 随着密钥的变化而变化。当密钥相同时,A 也相同。z i 也可以和A 相同随着密钥的变化而变化,也可以不变。当采用无密钥时,A 可以是系统中给定的一个固定的映射矩阵或随机的映射矩阵。 明文密码向量 x r = ′

i x = [x 1, x 2,…, x m ] 密文密码向量 y v = ′i y = [y 1, y 2,…, y n ]

非线性函数向量 z v = ′

i z = [z 1,z 2,…, z n ] 映射矩阵 A = ⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡………nm n n m m a a a a a a a a a 21

2222111211::: 如果最后密文密码为 )~,~,(i i z A y f y =,当将映射矩阵A 的特征信息A ~

和非线性函数向量i z 的特征信息i z ~

保存到密文密码中时,加密就具有可逆性。如果采用)(i y f y =,不将映射矩阵A 的特征信息A ~

和非线性函数i z 的特征信息i z ~

保存到密文密码中,则加密算法就具有不可逆性。

不可逆加密算法的特征是加密过程中不需要使用密钥,输入明文密码后由系统直接经过加密算法处理成密文密码,加密后的密文数据使用穷举法很难破解,只有重新输入明文密码,并再次经过同样不可逆的加密算法处理,得到相同的密文密码并被系统重新识别后,才能真正解密。显然,在不可逆算法的加密过程中,加密是明文密码,解密还得是明文密码,而所谓解密,实际上就是将明文密码重新加一次密,再将得到的密文密码进行比对。

在此基础上可以采用其他手段增强加密的可靠性。如可以将密文密码保存于文件制定位置或者拆开保存在几个文件中;可以采用密文密码长度为定长的加密方式,使破译者不知道原来明文密码是几位;可以采用加密后的密文密码的每个字符与所有明文密码有关系,这样产生的明文密码即使是一位不一样,加密后的密文密码的所有位也都不一样。

3 随机加密算法

作为明文密码的字符共有95个(包括26个大写英文字母,26个小写英文字母,10个数字键,键盘上的其他33个符号)。因此明文密码空间为 95i ,其中 i 为明文密码长度。

密文密码空间的大小与所采用的字符种类、数量和长度有关。采用随机加密算法,将随机函数生成的非线性函数向量(随机值i z )加入密文(i Ax )中得到新的密文(i i i z Ax y +=)。显然这种方法得到的密文密码的ASCII 值有可能低于32或超过126,可

相关文档
最新文档