基于C语言的DES加密算法的实现 要怎么写啊?

来源:百度知道 编辑:UC知道 时间:2024/09/22 11:32:28
我准备写 基于C语言的DES加密算法的实现 做为毕业论文 可是不知道从何处下手

首先c语言要熟悉,然后去图书馆借一本加密解密的书,要里面有c语言des实现代码的(这种书是有的,我看到过)。论文先对加密解密的历史及发展现状进行介绍,然后着重对des加密的发展历史及原理进行阐述(以上内容要多借几本相关书综合一下用自己的语言表达出来)。然后对des的算法写个程序(可以利用书里面的程序),然后运行结果截几张图下来。最后总结一下,论文就可以了。

我曾经用C++实现过,可以加密解密文件。在这给你一些提示,希望对你有所帮助吧。以后中途遇到什么难题也可以发消息给我,只要我懂的一定会告诉你!

简单来说,DES算法当中不外乎两种操作:移位和置换,只要把这两个难题解决了,其余都不成问题。因为涉及到位的操作,我用标准模板库中的bitset类。用这个类可以方便的按位操作。在此我举一个初始置换(IP)的例子,首先定义一个置换表:
const unsigned short IP[64]={
57,49,41,33,25,17,9,1,
59,51,43,35,27,19,11,3,
61,53,45,37,29,21,13,5,
63,55,47,39,31,23,15,7,
56,48,40,32,24,16,8,0,
58,50,42,34,26,18,10,2,
60,52,44,36,28,20,12,4,
62,54,46,38,30,22,14,6
};
这个表你应该很熟悉了吧^_^
然后定义函数:
int InitPermutation(bitset<64> &bit64)
{
bitset<64> temp=bit64;
short i;
for(i=0; i<64; i++)
{
bit64[i]=temp[IP[i]];
}
return 0;
}
调用这个函数,传入一个bitset<64>类型的值,通过这个函数就得到初始置换之后的值了。最关键的一句是bit64[i]=temp[