- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Verilog语言实现DES算法
Verilog语言实现DES算法加密算法的高效性与严密性决定其价值,DES算法1977年得到美国政府的正式许可,是一种用56位密钥来加密64位数据的方法。虽然56位密钥的DES算法已经风光不在,而且常有用Des加密的明文被破译的报道,但是了解一下昔日美国的标准加密算法总是有益的,而且目前DES算法得到了广泛的应用,在某些场合,她仍然发挥着余热~
下面介绍用Verilog语言实现DES算法的部分模块:
/////////////////???????????????????????????????????????? 加密基本模块???????????????????????????????????????????//////////////////////
//从用户处取得一个64位(本文如未特指,均指二进制位))长的密码key ,
//去除64位密码中作为奇偶校验位的第8、16、24、32、40、48、56、64位,剩下的56位作为有效输入密钥.module des(desOut, desIn, vkey, dec, roundSel, clk);??output?[63:0]?desOut;?? // 64位的密文输出input?[63:0]?desIn;?? // 64位的明文输入input?[55:0]?vkey;?? // 56位密钥input??dec;input?[3:0]?roundSel; // 加密轮数控制input??clk;
wire?[1:48]?K_sub;wire?[1:64]?IP, FP;reg???? [1:32]?L, R;wire?[1:32]?Xin;wire?[1:32]?Lout, Rout;wire?[1:32]?out;?????
// 初始换位assign IP[1:64] = {?desIn[06], desIn[14], desIn[22], desIn[30], desIn[38], desIn[46],......,desIn[33], desIn[41], desIn[49], desIn[57] };
assign Lout = (roundSel == 0) ? IP[33:64] : R;assign Xin? = (roundSel == 0) ? IP[01:32] : L;?
// 设置并选择子密钥vkey_sel vkey_sel1(?.K_sub(?K_sub ),?.K(?vkey?),?.roundSel( roundSel?),?.dec( dec )?);
crp crp1( .P( out ), .R( Lout ), .K_sub( K_sub ) );? //调用F函数模块
assign Rout = Xin ^ out;assign FP = { Rout, Lout};
always @(posedge clk)??????? L = #1 Lout;
always @(posedge clk)??????? R = #1 Rout;???????assign desOut = {?FP[40], FP[08], FP[48], FP[16], FP[56], FP[24], FP[64], FP[32],......,FP[33], FP[01], FP[41], FP[09], FP[49], FP[17], FP[57], FP[25] };?????endmodule
?
?
?
?
//////////////////////////////????????????????????????????????? 迭代函数块??????????????????????????????????//////////////////////////////////
DES算法需要进行16次迭代,在完成16次迭代前,把第i-1次得到的的left和right的值作为第i次的输入数据,重复以上步骤,但是有一点要记住:第i次迭代要选择第i次迭代生成的密钥与数据进行按位异或.为保证加密和解密的对称性,DES算法的前15次迭代每完成一次迭代都要交换left和right的值,第16次迭代不交换两者的数值. 到此把32位的left和right合并成64位的Data根据表9重新调整Data的位值数据的原第40位换到第一位,原第8位换到第二位,...,依此类推,最后的得到新的64位.Data即为密文.
?
?
?
module? crp(P, R, K_sub);output?[1:32]?P;input?[1:32]?R;input?[1:48]?K_sub;
wire?
您可能关注的文档
- 2003-2010复旦文史哲考博真题.doc
- 2000字毕业生个人总结.doc
- 2003留学美国电话面试集锦.doc
- 2008中国家纺行业市场及发展综述.doc
- 2009河南濮阳招教考试心理学教育学综合试题.doc
- 201011与汪总建筑公司内部合作协议.doc
- 2009移动式压力容器气体罐车充装.doc
- 2010《招标采购法律法规与政策》疑难解答.doc
- 2010全国卷高考英语作文题目及满分作文.doc
- 2010浙江省中华健康宝宝国际玩具与儿童用品博览会.doc
- 第7课+全球联系的初步建立与世界格局的演变+导学案--2024-2025学年高一下学期统编版(2019)必修中外历史纲要下.docx
- 等比数列练习 高二上学期数学人教A版(2019)选择性必修第二册.docx
- 基本不等式 高一上学期数学苏教版(2019)必修第一册.pptx
- 中考英语总复习之形容词和副词的三级+(2).docx
- 常用逻辑用语练习- 高一上学期数学人教B版(2019)必修第一册.docx
- 3.2气压带和风带 课后练习答案详解.docx
- 走进地理学(课件) 高中·必修第一册《地理》湘教版.pptx
- 中考英语复习--冠词课件.pptx
- 中考英语语法复习--数词课件.pptx
- 椭圆及其标准方程课件 高二上学期数学人教A版(2019)选择性必修第一册.pptx
文档评论(0)