<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0047)http://www.vckbase.com/document/viewdoc/?id=352 -->
<HTML><HEAD><TITLE>VC知识库文章 - DES算法的介绍和实现(上)</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META content=des加密算法 name=keywords>
<META content=des加密算法 name=description><LINK
href="VC知识库文章 - DES算法的介绍和实现(上).files/style.css" rel=stylesheet>
<META content="MSHTML 6.00.2900.5659" name=GENERATOR></HEAD>
<BODY bgColor=#ffffff leftMargin=0 topMargin=0>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR bgColor=#a0d39b>
<TD width="14%" height=78> <IMG height=13
src="VC知识库文章 - DES算法的介绍和实现(上).files/vckcom.gif" width=109></TD>
<TD align=left width="76%"></TD>
<TD vAlign=bottom align=right height=78><IMG height=27
src="VC知识库文章 - DES算法的介绍和实现(上).files/earch.gif" width=89></TD></TR>
<TR bgColor=#eeeeee>
<TD colSpan=2><FONT class=small color=#333333>::</FONT><A
href="http://www.vckbase.com/"><FONT color=black><SPAN
class=small>首页</SPAN></FONT></A> >> <A
href="http://www.vckbase.com/document"><FONT color=black><SPAN
class=small>文档中心</SPAN></FONT></A> >> <A
href="http://www.vckbase.com/document/journal"><SPAN class=small><FONT
color=black>在线杂志</FONT></SPAN></A> >> <A
href="http://www.vckbase.com/document/listdoc.asp?sclsid=109"><SPAN
class=small><FONT color=black>加解密</FONT></SPAN></A></TD>
<TD class=small align=right width="10%">[ <A
href="http://www.vckbase.com/document/journal/redir.asp?journal=14"><SPAN
class=small><FONT color=black>在线杂志 第14期</FONT></SPAN></A> ]
</TD></TR></TBODY></TABLE>
<DIV align=center><BR><A href="http://www.uipower.com/" target=_blank><IMG
height=125 src="VC知识库文章 - DES算法的介绍和实现(上).files/skin2.jpg" width=830
border=0></A> <!--br>
<script type="text/javascript">
google_ad_client = "pub-4159669282587342";
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = "728x90_as";
google_ad_type = "image";
google_ad_channel = "";
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script--></DIV><BR>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD background="VC知识库文章 - DES算法的介绍和实现(上).files/dotline2.gif"
height=1></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD width=40 height=74></TD>
<TD vAlign=top width=* height=74>
<FORM name=form2 action=/SYS/script/find.asp method=post>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD><SPAN id=docinfo>[ <FONT color=#009900>原创文档</FONT> 本文适合高级读者
已阅读40273次 ]</SPAN></TD>
<TD align=right><INPUT class=rect maxLength=20 size=10 name=keyword>
<SELECT class=rect name=gclsid> <OPTION value=100
selected>文档</OPTION> <OPTION value=200>代码</OPTION> <OPTION
value=400>工具</OPTION></SELECT> <INPUT type=image height=15 width=21
src="VC知识库文章 - DES算法的介绍和实现(上).files/go.gif" align=absMiddle border=0
name=imageField> </TD></TR></TBODY></TABLE></FORM>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD>
<P align=center><B>DES算法的介绍和实现(上)<BR></B>作者:<A
href="mailto:hitwz@163.com">西安 吴真</A> </P>
<P><A
href="http://www.vckbase.com/code/downcode.asp?id=1577">下载本文配套源代码(DES算法文件加密工具)</A></P>
<P align=center><B>一.DES算法介绍</B></P><BR>DES( Data Encryption
Standard)算法,于1977年得到美国政府的正式许可,是一种用56位密钥来加密64位数据的方法。虽然56位密钥的DES算法已经风光不在,而且常有用Des加密的明文被破译的报道,但是了解一下昔日美国的标准加密算法总是有益的,而且目前DES算法得到了广泛的应用,在某些场合,她仍然发挥着余热^_^.<BR><BR><B><IMG
height=16 src="VC知识库文章 - DES算法的介绍和实现(上).files/paragraph.gif"
width=14> 1.1 密钥生成</B><BR><BR><B>1.1.1
取得密钥</B><BR><BR>从用户处取得一个64位(本文如未特指,均指二进制位))长的密码key ,<BR><IMG
height=22 src="VC知识库文章 - DES算法的介绍和实现(上).files/des1.gif"
width=133><BR>去除64位密码中作为奇偶校验位的第8、16、24、32、40、48、56、64位,剩下的56位作为有效输入密钥.<BR><BR><B>1.1.2
等分密钥</B><BR><BR>表1.
<TABLE cellSpacing=1 cellPadding=0 width=339 bgColor=#999999
border=0>
<TBODY>
<TR bgColor=#ffffff>
<TD width=47>57</TD>
<TD width=47>49</TD>
<TD width=47>41</TD>
<TD width=47>33</TD>
<TD width=47>25</TD>
<TD width=48>17</TD>
<TD width=48>9</TD></TR>
<TR bgColor=#ffffff>
<TD width=47 bgColor=#ffffff>1</TD>
<TD width=47 bgColor=#ffffff>58</TD>
<TD width=47 bgColor=#ffffff>50</TD>
<TD width=47 bgColor=#ffffff>42</TD>
<TD width=47 bgColor=#ffffff>34</TD>
<TD width=48 bgColor=#ffffff>26</TD>
<TD width=48 bgColor=#ffffff>18</TD></TR>
<TR bgColor=#ffffff>
<TD width=47 bgColor=#ffffff>10</TD>
<TD width=47 bgColor=#ffffff>2</TD>
<TD width=47 bgColor=#ffffff>59</TD>
<TD width=47 bgColor=#ffffff>51</TD>
<TD width=47 bgColor=#ffffff>43</TD>
<TD width=48 bgColor=#ffffff>35</TD>
<TD width=48 bgColor=#ffffff>27</TD></TR>
<TR bgColor=#ffffff>
<TD width=47 bgColor=#ffffff>19</TD>
<TD width=47 bgColor=#ffffff>11</TD>
<TD width=47 bgColor=#ffffff>3</TD>
<TD width=47 bgColor=#ffffff>60</TD>
<TD width=47 bgColor=#ffffff>50</TD>
<TD width=48 bgColor=#ffffff>44</TD>
<TD width=48 bgColor=#ffffff>36</TD></TR></TBODY></TABLE><BR>表2.<BR>
<TABLE cellSpacing=1 cellPadding=0 width=344 bgColor=#999999
border=0>
<TBODY>
<TR bgColor=#ffffff>
<TD>65</TD>
<TD>55</TD>
<TD>47</TD>
<TD>39</TD>
<TD>31</TD>
<TD>23</TD>
<TD>15</TD></TR>
<TR bgColor=#ffffff>
<TD bgColor=#ffffff>7</TD>
<TD bgColor=#ffffff>62</TD>
<TD bgColor=#ffffff>54</TD>
<TD bgColor=#ffffff>46</TD>
<TD bgColor=#ffffff>38</TD>
<TD bgColor=#ffffff>30</TD>
<TD bgColor=#ffffff>22</TD></TR>
<TR bgColor=#ffffff>
<TD bgColor=#ffffff>14</TD>
<TD bgColor=#ffffff>6</TD>
<TD bgColor=#ffffff>61</TD>
<TD bgColor=#ffffff>53</TD>
<TD bgColor=#ffffff>45</TD>
<TD bgColor=#ffffff>37</TD>
<TD bgColor=#ffffff>29</TD></TR>
<TR bgColor=#ffffff>
<TD bgColor=#ffffff>21</TD>
<TD bgColor=#ffffff>13</TD>
<TD bgColor=#ffffff>5</TD>
<TD bgColor=#ffffff>28</TD>
<TD bgColor=#ffffff>20</TD>
<TD bgColor=#ffffff>12</TD>
<TD
bgColor=#ffffff>4</TD></TR></TBODY></TABLE><BR>把在1.1.1步中生成的56位输入密钥分成均等的A,B两部分,每部分为28位,参照表1和表2把输入密钥的位值填入
- 1
- 2
- 3
前往页