📄 基于状态机和流水线技术的3des加密算法及其fpga设计-单片机技术.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0053)http://www.et00.com/mcu/2006/1002/article_3944_1.html -->
<HTML><HEAD><TITLE>基于状态机和流水线技术的3DES加密算法及其FPGA设计-单片机技术</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gbk">
<META content=,最新单片机资料,单片机技术,单片机资料,单片机技术学习,单片机技术 name=keywords>
<META content=最新单片机资料-单片机技术学习资料软件文章-单片机技术 name=description><LINK
href="/favicon.ico" rel="shortcut icon"><LINK
href="基于状态机和流水线技术的3DES加密算法及其FPGA设计-单片机技术.files/style.css" type=text/css
rel=stylesheet>
<SCRIPT language=javascript
src="基于状态机和流水线技术的3DES加密算法及其FPGA设计-单片机技术.files/config.js"></SCRIPT>
<SCRIPT language=javascript
src="基于状态机和流水线技术的3DES加密算法及其FPGA设计-单片机技术.files/common.js"></SCRIPT>
<SCRIPT language=javascript
src="基于状态机和流水线技术的3DES加密算法及其FPGA设计-单片机技术.files/prototype.js"></SCRIPT>
<SCRIPT language=javascript
src="基于状态机和流水线技术的3DES加密算法及其FPGA设计-单片机技术.files/login.js"></SCRIPT>
<META content="MSHTML 6.00.2900.3020" name=GENERATOR></HEAD>
<BODY>
<DIV class=header>
<TABLE class=bg_login cellSpacing=0 cellPadding=0 width=980>
<TBODY>
<TR>
<TD align=middle width=262><!--时间-->
<SCRIPT language=JavaScript
src="基于状态机和流水线技术的3DES加密算法及其FPGA设计-单片机技术.files/time.js"></SCRIPT>
</TD>
<TD align=right width=38><A href="http://www.et00.com/mcu/rss.php?catid=6"
target=_blank><IMG src="基于状态机和流水线技术的3DES加密算法及其FPGA设计-单片机技术.files/rss.gif"
border=0></A> </TD>
<TD align=right width=650><!--会员登录--><SPAN id=loginstats></SPAN>
<SCRIPT language=javascript>login();</SCRIPT>
</TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width=980 align=center>
<TBODY>
<TR>
<TD align=middle width=180 height=80><A href="http://www.et00.com/"><IMG
src="基于状态机和流水线技术的3DES加密算法及其FPGA设计-单片机技术.files/logo.gif"></A></TD>
<TD align=middle width=620>
<SCRIPT language=JavaScript src=""></SCRIPT>
</TD>
<TD width=100>
<TABLE cellSpacing=0 cellPadding=0 width="100%">
<TBODY>
<TR>
<TD>【<A id=StranLink>繁体中文</A>】</TD></TR>
<TR>
<TD>【<A
onclick="this.style.behavior='url(#default#homepage)';this.setHomePage ('http://www.et00.com');"
href="http://www.et00.com/mcu/2006/1002/article_3944_1.html#">设为首页</A>】</TD></TR>
<TR>
<TD>【<A
onclick="window.external.addFavorite('http://www.et00.com/','')"
href="http://www.et00.com/mcu/2006/1002/article_3944_1.html#">加入收藏</A>】</TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><!--频道列表-->
<DIV id=Whatever align=center>
<UL class=TabBarLevel1 id=TabPage1>
<LI><A href="http://www.et00.com/">首页</A> </LI>
<LI><A class=white href="http://www.et00.com/article/">技术文章</A> </LI>
<LI><A class=white href="http://www.et00.com/sch/">电路图资料</A> </LI>
<LI><A class=white href="http://www.d1dz.com/down/">资料下载站</A> </LI>
<LI class=Selected id=Tabi><A class=white
href="http://www.et00.com/mcu/">单片机技术</A> </LI>
<LI><A class=white href="http://www.et00.com/pcb/">PCB技术</A> </LI>
<LI><A class=white href="http://www.et00.com/eda/">EDA技术</A> </LI>
<LI><A class=white href="http://www.et00.com/light/">光电技术</A> </LI>
<LI><A class=white href="http://www.et00.com/service/">维修技术</A> </LI>
<LI><A class=white href="http://www.et00.com/ve/">视频电子</A> </LI>
<LI><A class=white href="http://www.et00.com/picture/">图片频道</A> </LI>
<LI><A class=white href="http://et00z.uu1001.com/">论坛</A> </LI></UL></DIV><!--频道下属栏目列表-->
<TABLE cellSpacing=0 cellPadding=0 width="100%">
<TBODY>
<TR>
<TD class=submenu><A class=white
href="http://www.et00.com/mcu/">单片机技术首页</A> | <A class=white
href="http://www.et00.com/mcu/n1/" target=_blank>精典单片机资料</A> | <A
class=white href="http://www.et00.com/mcu/n2/" target=_blank>最新单片机资料</A> |
<A class=white href="http://www.et00.com/mcu/special/">专题</A> | <A
class=white
href="http://www.et00.com/mcu/2006/1002/index.php?keyid=5">留言本</A> | <A
class=white href="http://www.et00.com/mcu/add.php">投稿</A> | <A class=white
href="http://www.et00.com/mcu/search.php">搜索</A>
</TD></TR></TBODY></TABLE></DIV>
<DIV class=main>
<TABLE cellSpacing=0 cellPadding=0 width=980>
<TBODY>
<TR>
<TD height=10></TD></TR></TBODY></TABLE>
<SCRIPT type=text/javascript>
function fontZoom(size)
{
$('content').style.fontSize=size+'px';
}
</SCRIPT>
<TABLE cellSpacing=0 cellPadding=0 width=980>
<TBODY>
<TR>
<TD class=content vAlign=top width=760><!--位置导航-->
<DIV class=position_1>当前位置:<A href="http://www.et00.com/mcu/">单片机技术首页</A>
>> <A href="http://www.et00.com/mcu/n2/">最新单片机资料</A> >>
基于状态机和流水线技术的3DES加密算法及其FPGA设计</DIV><!--主标题-->
<H1>基于状态机和流水线技术的3DES加密算法及其FPGA设计 (1)</H1><!--副标题--><!--文章属性-->
<DIV id=property>2006-10-02 作者:<A class=member_url
href="http://www.et00.com/member/member.php?username=admin"></A> 来源:<A
href="http://www.et00.com/mcu/2006/1002/article_3944_1.html#"
target=_blank>互联网</A> 浏览次数:<SPAN
id=hits>143</SPAN> 文字大小:【<A
href="javascript:fontZoom(16)">大</A>】【<A
href="javascript:fontZoom(14)">中</A>】【<A
href="javascript:fontZoom(12)">小</A>】</DIV><!--引用地址-->
<DIV class=content_text id=content>
<SCRIPT type=text/javascript><!--
google_ad_client = "pub-4170877871798803";
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = "728x90_as";
google_ad_type = "text_image";
//2007-03-03: et00ad1
google_ad_channel = "0726147245";
google_color_border = "FFFFFF";
google_color_bg = "FFFFFF";
google_color_link = "FF0000";
google_color_text = "0066CC";
google_color_url = "000033";
//--></SCRIPT>
<SCRIPT src="基于状态机和流水线技术的3DES加密算法及其FPGA设计-单片机技术.files/show_ads.js"
type=text/javascript>
</SCRIPT>
</DIV>
<DIV class=content_text id=content><!--Adforward End-->
<B>摘要:</B>介绍了3DES加密算法的原理并详尽描述了该算法的FPGA设计实现。采用了状态机和流水线技术,使得在面积和速度上达到最佳优化;添加了输入和输出接口的设计以增强该算法应用的灵活性。各模块均用硬件描述语言实现,最终下载到FPGA芯片Stratix
EP1S25F780C5中。
<P class=MsoNormal><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">
<B>关键词:</B></SPAN>状态机 流水线 3DFS FPGA</P>
<P
style="TEXT-INDENT: 30px">随着网络的快速发展,信息安全越来越引起人们的关注。加密技术作为信息安全的利器,正发挥着重大的作用。通过在硬件设备(如由器、交换机等)中添加解密功能,可使存储和传输的数据具有较高的安全性。传统的加密工作是通过在主机上运行加密软件实现的。这种方法除占用主机资源外,其运算速度较硬件加密要慢,密钥以明文的方式存储在程序中,或者以加密的方式存储在文件或数字库中,重要数据(如个人密码PIN等)会在某一时刻以明文形式出现在计算机的内存或磁盘中,安全性较差。而硬件加密是通过独立于主机系统外的硬件加密设备实现的,所有关键数据的存储、运算都通过硬件实现,不占主机资源、速度快、安全性较高。<BR><BR><B><A
href="http://www.mcu123.com/news/Article/fpga/FPGA/info/images/aet/200501/25a.gif">图1</A></B></P>
<P
style="TEXT-INDENT: 30px">尽管DES已被证实是不安全的算法(主要是密钥太短),但三重DES增加了密钥长度,由56位增加到112或168位,有更高的安全性,而且在新一代因特网安全标准IPSEC协议集中已将DES作为加密标准。另一方面,基于DES算法的加/解密硬件目前已广泛应用于国内外卫星通信、网关服务器、机顶盒、视频传输以及其它大量的数据传输业务中。利用3DES可以使原系统不作大的改动。所以对3DES的研究仍有很大的现实意义。</P>
<P style="TEXT-INDENT: 0px"><B>1 3DES加密算法描述</B></P>
<P
style="TEXT-INDENT: 30px">DES成为一个世界范围内的标准已经20多年了,很好地抗住了多年的密码分析,除最强有力的可能敌手外,对其它的攻击仍是安全的。DES对64位的明文分组进行操作,通过一个初始置换,将明文分成左半部分和右半部分,然后进行16轮完全相同的运算,最后经过一个末置换便得到64位密文。每一轮的运算包含扩展置换、S盒代换、P盒置换和两次异或运算,另外每一轮中还有一个轮密钥(子密钥)。整体框图如图1所示。<BR><IMG
onmousewheel="return bbimg(this)" onclick=ImgClick(this) height=284
hspace=10
src="基于状态机和流水线技术的3DES加密算法及其FPGA设计-单片机技术.files/20070302060044861.gif"
width=549 vspace=10 border=0 resized="0"><BR><FONT
size=3> </FONT><SPAN class=main1>3DES(即Triple
DES)是DES向AES过渡的加密算法(1999年,NIST将3-DES指定为过渡的加密标准),是DES的一个更安全的变形。它以DES为基本模块,通过组合分组方法设计出分组加密算法,其具体实现如下:设Ek()和Dk()代表DES算法的加密和解密过程,K代表DES算法使用的密钥,P代表明文,C代表密表,这样,</P>
<P style="TEXT-INDENT: 30px">3DES加密过程为:C=Ek3(Dk2(Ek1(P)))</P>
<P style="TEXT-INDENT: 30px">3DES解密过程为:P=Dk1((EK2(Dk3(C)))</P>
<P
style="TEXT-INDENT: 30px">具体的加/解密过程如图2所示。K1、K2、K3决定了算法的安全性,若三个密钥互不相同,本质上就相当于用一个长为168位的密钥进行加密。多年来,它在对付强力攻击时是比较安全的。若数据对安全性要求不那么高,K1可以等于K3。在这种情况下,密钥的有效长度为112位。<B><BR><IMG
onmousewheel="return bbimg(this)" onclick=ImgClick(this) height=249
hspace=10
src="基于状态机和流水线技术的3DES加密算法及其FPGA设计-单片机技术.files/20070302060045146.gif"
width=549 vspace=10 border=0 resized="0"><BR>2 FPGA设计实现</B></P>
<P style="TEXT-INDENT: 30px">2.1 FPGA设计的优势</P>
<P style="TEXT-INDENT: 30px">用硬件实现某种密码算法,首先要用硬件描述语言(如HHDL、Verlog
HDL)进行系统设计和编码,然后采用专用集成电路(ASIC)或现场可编程逻辑门阵列(FPGA)来具体实现。采用ASIC方法设计周期较长,且</P></DIV>
<SCRIPT type=text/javascript>
function ImgZoom(Id)//重新设置图片大小 防止撑破表格
{
var w = $(Id).width;
var m = 550;
if(w < m)
{
return;
}
else
{
var h = $(Id).height;
$(Id).height = parseInt(h*m/w);
$(Id).width = m;
}
}
window.onload = function()
{
var Imgs = $("content").getElementsByTagName("img");
var i=0;
for(;i<Imgs.length;i++)
{
ImgZoom(Imgs[i]);
}
}
</SCRIPT>
<!--自定义字段//-->
<TABLE cellSpacing=0 cellPadding=0 width="100%" align=center>
<TBODY></TBODY></TABLE><!--自定义字段\\--><!--分页-->
<DIV class=td_center><A
href="http://www.et00.com/mcu/2006/1002/article_3944_1.html"><IMG
src="基于状态机和流水线技术的3DES加密算法及其FPGA设计-单片机技术.files/page_pre.gif"
align=absMiddle border=0></A> <STRONG>[1]</STRONG> [<A
href="http://www.et00.com/mcu/2006/1002/article_3944_2.html">2</A>] [<A
href="http://www.et00.com/mcu/2006/1002/article_3944_3.html">3</A>] <A
href="http://www.et00.com/mcu/2006/1002/article_3944_2.html"><IMG
src="基于状态机和流水线技术的3DES加密算法及其FPGA设计-单片机技术.files/page_next.gif"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -