天天看点

基于古典密码算法、DES算法和RSA算法的密码器制作

学信息安全专业是必须要跟密码打交道的,上周我们制作了基于古典密码、DES算法和RSA算法的密码器,说实话算法挺难的,做的时候是在老师提供的部分算法代码的基础上,又上网查了好多好多的资料,以及自学了微软MFC的使用才做成的。

先简单介绍一下古典密码、DES和RSA。

古典密码:

编码方法包括置换和代换。把明文中的字母重新排列,字母本身不变,但其位置改变了,这样编成的密码称为置换密码。最简单的置换密码是把明文中的字母顺序倒过来,然后截成固定长度的字母组作为密文。代换密码则是将明文中的字符替代成其他字符。

DES:

DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法,1977年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS),并授权在非密级政府通信中使用,随后该算法在国际上广泛流传开来。

本次实验中主要实现了cbc和ecb方法。

cbc方法我查资料的时候看到一篇不错的博客,放链接:DES-CBC

ecb比较简单,放一个链接:DES-ECB

RSA:

RSA加密算法是一种非对称加密算法。在公开密钥加密和电子商业中RSA被广泛使用。对极大整数做因数分解的难度决定了RSA算法的可靠性。换言之,对一极大整数做因数分解愈困难,RSA算法愈可靠。假如有人找到一种快速因数分解的算法的话,那么用RSA加密的信息的可靠性就肯定会极度下降。但找到这样的算法的可能性是非常小的。今天只有短的RSA钥匙才可能被强力方式解破。到目前为止,世界上还没有任何可靠的攻击RSA算法的方式。只要其钥匙的长度足够长,用RSA加密的信息实际上是不能被解破的。

本实验中实现RSA算法最困难的地方是大数生成,这部分我们找了网上一段不错的代码实现。

接下来放结果图:

古典置换:

基于古典密码算法、DES算法和RSA算法的密码器制作

古典替代:

基于古典密码算法、DES算法和RSA算法的密码器制作

DES:

上半部分的文本加解密采用了cbc方法,下方文件加解密采用了ecb方法。

文件夹解密会将密文生成在一个新txt中,下方的框内显示了它的路径。

基于古典密码算法、DES算法和RSA算法的密码器制作

RSA:

基于古典密码算法、DES算法和RSA算法的密码器制作

之前没有学过MFC,做课设的时候图形界面是用easyx,但是用easyx做这么一个界面有些过于繁琐,所以对于MFC的应用我们也是边学边写,但想要更熟练地应用这个技术还得再系统地学习一阵。总体来说收获还是很大的。