毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 计算机安全 >> 正文

vc++基于Misty1算法的加密软件设计+源码 第6页

更新时间:2010-7-12:  来源:毕业论文
vc++基于Misty1算法的加密软件设计+源码 第6页
((DWORD)ctext[3]);
 R9=(((DWORD)ctext[4])<<24)+(((DWORD)ctext[5])<<16)+(((DWORD)ctext[6])<<8)+((DWORD)ctext[7]);
 R8=FLINV (L9, KL [9]);
 L8=FO (R8, KO+28, KI+21) ^FLINV (R9, KL [8]);
 R7=L8;
 L7=FO (R7, KO+24, KI+18) ^R8;
 R6=FLINV (L7, KL [7]);
 L6=FO (R6, KO+20, KI+15) ^FLINV (R7, KL [6]);
 R5=L6;
 L5=FO(R5,KO+16,KI+12)^R6;
 R4=FLINV(L5,KL[5]);
 L4=FO(R4,KO毕业论文http://www.751com.cn+12,KI+9)^FLINV(R5,KL[4]);
 R3=L4;
 L3=FO(R3,KO+8,KI+6)^R4;
 R2=FLINV(L3,KL[3]);
 L2=FO(R2,KO+4,KI+3)^FLINV(R3,KL[2]);
 R1=L2;
 L1=FO(R1,KO,KI)^R2;
 R0=FLINV(L1,KL[1]);
 L0=FLINV(R1,KL[0]);//最后一轮
 ptext[0本文来自辣文论文网原文请找QQ752018766 [1]=(BYTE)((L0>>16)&0XFF);ptext[2]=(BYTE)((L0>>8)&0XFF);ptext[3]=(BYTE)(L0&0XFF);
 ptext[4]=(BYTE)((R0>>24)&0XFF);ptext[5]=(BYTE)((R0>>16)&0XFF);ptext[6]=(BYTE)((R0>>8)&0XFF);ptext[7]=(BYTE)(R0&0XFF);
}
2.2 MISTY1应用于文件加密的意义
加密技术是电子商务采取的主要安全保密措施,是最常用的安全保密手段,利用技术手段把重要的数据变为乱码(加密)传送,到达目的地后再用相同或不同的手段还原(解密)。加密技术包括两个元素:算法和密钥。算法是将普通的文本(或者可以理解的信息)与一窜数字(密钥)的结合,产生不可理解的密文的步骤,密钥是用来对数据进行编码和解码的一种算法。在安全保密中,可通过适当的密钥加密技术和管理机制来保证网络的信息通讯安全。密钥加密技术的密码体制分为对称密钥体制和非对称密钥体制两种。相应地,对数据加密的技术分为两类,即对称加密(私人密钥加密)和非对称加密(公开密钥加密)。对称加密加密密钥和解密密钥相同。加密信息的安全性取决于密钥的安全性,与算法的安全性无关,即由密文和加解密算法不可能得到明文。换句话说算法无需保密,需保密的仅是密钥。由于MISTY1算法取得了良好的良好的阻力线和鉴别攻击,而且还使能实行以相对较少的逻辑组件中执行函数的程度相对较低,所以在更大程度上保证了加密后的文件的安全性。
对于带有重要信息的小型文本和二进制数据的文护,①如果不加密,将无法放心的保存在计算机上,尤其是连网的或机房里的公共计算机。②如果借助功能强大的大型多用户数据保护程序文护几个小型文件,显得十分烦琐,好比杀鸡用牛刀。所以,对于使用小型文件进行数据交换的情况,更好的方案是通过一个小型应用程序对这些文件进行对称密钥加密。
使用MISTY1加密文件有两点重要意义:①应用对称密钥加密文件(文本文件或BMP文件),有利地加大了加密文件的不可破解性,加强了文件的安全性。②加密后的数据变换成文本,使得我们可以通过几乎任何方式安全传递任意文件,比如在只有http的环境使用xml方式。
3 加密软件的设计和实现
3.1 软件功能分析
软件要求如下:
1. 实现对加/解密正确性的演示;
2. 对文件(文本文件或BMP文件)进行加密,并能对加密文件进行解密;
分析图如下:
 
图8  流程图
所以说要进行编码的程序有:
1. MISTY1算法的c++语言实现,能实现正确的加密解密;
2. 图形界面的设计与编码。
3.2 MISTY1的c++实现
由于我们使用的是MFC编程方式,因此为了更好的体现面向对象的编程思想,我们将MISTY1算法用一个C++类来实现。其关键代码如下:
DWORD misty1::FL (DWORD X, DWORD KEY)
{
    DWORD XL, XR, KL, KR, YL, YR;
    XL=X>>16; XR=X&0x0000FFFF;
    KL=KEY>>16; KR=KEY&0x0000FFFF;
    YR= (XL&KL) ^XR; YL= (YR|KR) ^XL;
    Return (YL<<16) |YR;
}
DWORD misty1::FLINV (DWORD Y, DWORD KEY)
{
    DWORD XL, XR, KL, KR, YL, YR;
    YL=Y>>16; YR=Y&0x0000FFFF;
    KL=KEY>>16; KR=KEY&0x0000FFFF;
    XL= (YR|KR) ^YL; XR= (XL&KL) ^YR;
    Return (XL<<16) |XR;
}
DWORD misty1::FO (DWORD X, WORD KO [4], WORD KI [3])
{
 WORD L1, L2, L3, R1, R2, R3;
 R1=FI((KO[0]^((WORD)(X>>16)&0xFFFF)),KI[0])^((WORD)(X&0xFFFF));
 L1=(WORD)(X&0xFFFF);
 R2=FI ((L1^KO [1]), KI [1]) ^R1;
 L2=R1;本文来自辣文论文网原文请找QQ752018766
 R3=FI ((L2^KO [2]), KI [2]) ^R2;
 L3=R2^KO [3];
 Return (((DWORD) L3) <<16)| ((DWORD) R3);
}
WORD misty1::FI (WORD X, WORD KI)//right
{毕业论文http://www.751com.cn
 WORD L1, L2, L3, R1, R2, R3;
 R1=S9 [((X>>7) &0x1FF)] ^(X&0x007F);
 L1=X&0x7F;
 R2=S7 [L1] ^ (R1&0x7F) ^ ((KI>>9) &0x7F);
 L2=R1^ (KI&0x1FF);
 R3=S9 [L2] ^R2;
 L3=R2;
 Return (L3<<9) |R3; 
}
Void misty1::KeySchedule (BYTE *userkey)
{
 WORD tempkey1 [16], tempkey2 [16];
 int i;
 for (i=0;i<8;i++) tempkey1[i]=(((WORD)userkey[i*2])<<8)+((WORD)userkey[i*2+1]);
 for (i=0;i<8;i++) tempkey2[i]=FI(tempkey1[i],tempkey1[(i+1)%8]);
 for (i=0;i<8;i++)

上一页  [1] [2] [3] [4] [5] [6] 

vc++基于Misty1算法的加密软件设计+源码 第6页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©751com.cn 辣文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。