⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 des算法详述.htm

📁 des算法
💻 HTM
📖 第 1 页 / 共 2 页
字号:
      2];<BR>worka[ 4] = buffer[ 3];<BR>worka[ 5] = buffer[ 4];<BR>worka[ 6] = 
      buffer[ 3];<BR>worka[ 7] = buffer[ 4];<BR>worka[ 8] = buffer[ 
      5];<BR>worka[ 9] = buffer[ 6];<BR>worka[10] = buffer[ 7];<BR>worka[11] = 
      buffer[ 8];<BR>worka[12] = buffer[ 7];<BR>worka[13] = buffer[ 
      8];<BR>worka[14] = buffer[ 9];<BR>worka[15] = buffer[10];<BR>worka[16] = 
      buffer[11];<BR>worka[17] = buffer[12];<BR>worka[18] = 
      buffer[11];<BR>worka[19] = buffer[12];<BR>worka[20] = 
      buffer[13];<BR>worka[21] = buffer[14];<BR>worka[22] = 
      buffer[15];<BR>worka[23] = buffer[16];<BR>worka[24] = 
      buffer[15];<BR>worka[25] = buffer[16];<BR>worka[26] = 
      buffer[17];<BR>worka[27] = buffer[18];<BR>worka[28] = 
      buffer[19];<BR>worka[29] = buffer[20];<BR>worka[30] = 
      buffer[19];<BR>worka[31] = buffer[20];<BR>worka[32] = 
      buffer[21];<BR>worka[33] = buffer[22];<BR>worka[34] = 
      buffer[23];<BR>worka[35] = buffer[24];<BR>worka[36] = 
      buffer[23];<BR>worka[37] = buffer[24];<BR>worka[38] = 
      buffer[25];<BR>worka[39] = buffer[26];<BR>worka[40] = 
      buffer[27];<BR>worka[41] = buffer[28];<BR>worka[42] = 
      buffer[27];<BR>worka[43] = buffer[28];<BR>worka[44] = 
      buffer[29];<BR>worka[45] = buffer[30];<BR>worka[46] = 
      buffer[31];<BR>worka[47] = buffer[ 0];<BR><BR>/* KS Function Begin 
      */<BR>if (flg) {<BR>nbrofshift = shift[iter-1];<BR>for (i = 0; i &lt; 
      (int) nbrofshift; i++) {<BR>temp1 = kwork[0];<BR>temp2 = kwork[28];<BR>for 
      (j = 0; j &lt; 27; j++) {<BR>kwork[j] = kwork[j+1];<BR>kwork[j+28] = 
      kwork[j+29];<BR>}<BR>kwork[27] = temp1;<BR>kwork[55] = temp2;<BR>}<BR>} 
      else if (iter &gt; 1) {<BR>nbrofshift = shift[17-iter];<BR>for (i = 0; i 
      &lt; (int) nbrofshift; i++) {<BR>temp1 = kwork[27];<BR>temp2 = 
      kwork[55];<BR>for (j = 27; j &gt; 0; j--) {<BR>kwork[j] = 
      kwork[j-1];<BR>kwork[j+28] = kwork[j+27];<BR>}<BR>kwork[0] = 
      temp1;<BR>kwork[28] = temp2;<BR>}<BR>}<BR><BR>/* Permute kwork - PC2 
      */<BR>kn[ 0] = kwork[13];<BR>kn[ 1] = kwork[16];<BR>kn[ 2] = 
      kwork[10];<BR>kn[ 3] = kwork[23];<BR>kn[ 4] = kwork[ 0];<BR>kn[ 5] = 
      kwork[ 4];<BR>kn[ 6] = kwork[ 2];<BR>kn[ 7] = kwork[27];<BR>kn[ 8] = 
      kwork[14];<BR>kn[ 9] = kwork[ 5];<BR>kn[10] = kwork[20];<BR>kn[11] = 
      kwork[ 9];<BR>kn[12] = kwork[22];<BR>kn[13] = kwork[18];<BR>kn[14] = 
      kwork[11];<BR>kn[15] = kwork[ 3];<BR>kn[16] = kwork[25];<BR>kn[17] = 
      kwork[ 7];<BR>kn[18] = kwork[15];<BR>kn[19] = kwork[ 6];<BR>kn[20] = 
      kwork[26];<BR>kn[21] = kwork[19];<BR>kn[22] = kwork[12];<BR>kn[23] = 
      kwork[ 1];<BR>kn[24] = kwork[40];<BR>kn[25] = kwork[51];<BR>kn[26] = 
      kwork[30];<BR>kn[27] = kwork[36];<BR>kn[28] = kwork[46];<BR>kn[29] = 
      kwork[54];<BR>kn[30] = kwork[29];<BR>kn[31] = kwork[39];<BR>kn[32] = 
      kwork[50];<BR>kn[33] = kwork[44];<BR>kn[34] = kwork[32];<BR>kn[35] = 
      kwork[47];<BR>kn[36] = kwork[43];<BR>kn[37] = kwork[48];<BR>kn[38] = 
      kwork[38];<BR>kn[39] = kwork[55];<BR>kn[40] = kwork[33];<BR>kn[41] = 
      kwork[52];<BR>kn[42] = kwork[45];<BR>kn[43] = kwork[41];<BR>kn[44] = 
      kwork[49];<BR>kn[45] = kwork[35];<BR>kn[46] = kwork[28];<BR>kn[47] = 
      kwork[31];<BR>/* KS Function End */<BR><BR>/* worka XOR kn */<BR>for (i = 
      0; i &lt; 48; i++)<BR>worka[i] = worka[i] ^ kn[i];<BR><BR>/* 8 s-functions 
      */<BR>valindex = s1[2*worka[ 0]+worka[ 5]]<BR>[2*(2*(2*worka[ 1]+worka[ 
      2])+<BR>worka[ 3])+worka[ 4]];<BR>valindex = valindex * 4;<BR>kn[ 0] = 
      binary[0+valindex];<BR>kn[ 1] = binary[1+valindex];<BR>kn[ 2] = 
      binary[2+valindex];<BR>kn[ 3] = binary[3+valindex];<BR>valindex = 
      s2[2*worka[ 6]+worka[11]]<BR>[2*(2*(2*worka[ 7]+worka[ 8])+<BR>worka[ 
      9])+worka[10]];<BR>valindex = valindex * 4;<BR>kn[ 4] = 
      binary[0+valindex];<BR>kn[ 5] = binary[1+valindex];<BR>kn[ 6] = 
      binary[2+valindex];<BR>kn[ 7] = binary[3+valindex];<BR>valindex = 
      s3[2*worka[12]+worka[17]]<BR>[2*(2*(2*worka[13]+worka[14])+<BR>worka[15])+worka[16]];<BR>valindex 
      = valindex * 4;<BR>kn[ 8] = binary[0+valindex];<BR>kn[ 9] = 
      binary[1+valindex];<BR>kn[10] = binary[2+valindex];<BR>kn[11] = 
      binary[3+valindex];<BR>valindex = 
      s4[2*worka[18]+worka[23]]<BR>[2*(2*(2*worka[19]+worka[20])+<BR>worka[21])+worka[22]];<BR>valindex 
      = valindex * 4;<BR>kn[12] = binary[0+valindex];<BR>kn[13] = 
      binary[1+valindex];<BR>kn[14] = binary[2+valindex];<BR>kn[15] = 
      binary[3+valindex];<BR>valindex = 
      s5[2*worka[24]+worka[29]]<BR>[2*(2*(2*worka[25]+worka[26])+<BR>worka[27])+worka[28]];<BR>valindex 
      = valindex * 4;<BR>kn[16] = binary[0+valindex];<BR>kn[17] = 
      binary[1+valindex];<BR>kn[18] = binary[2+valindex];<BR>kn[19] = 
      binary[3+valindex];<BR>valindex = 
      s6[2*worka[30]+worka[35]]<BR>[2*(2*(2*worka[31]+worka[32])+<BR>worka[33])+worka[34]];<BR>valindex 
      = valindex * 4;<BR>kn[20] = binary[0+valindex];<BR>kn[21] = 
      binary[1+valindex];<BR>kn[22] = binary[2+valindex];<BR>kn[23] = 
      binary[3+valindex];<BR>valindex = 
      s7[2*worka[36]+worka[41]]<BR>[2*(2*(2*worka[37]+worka[38])+<BR>worka[39])+worka[40]];<BR>valindex 
      = valindex * 4;<BR>kn[24] = binary[0+valindex];<BR>kn[25] = 
      binary[1+valindex];<BR>kn[26] = binary[2+valindex];<BR>kn[27] = 
      binary[3+valindex];<BR>valindex = 
      s8[2*worka[42]+worka[47]]<BR>[2*(2*(2*worka[43]+worka[44])+<BR>worka[45])+worka[46]];<BR>valindex 
      = valindex * 4;<BR>kn[28] = binary[0+valindex];<BR>kn[29] = 
      binary[1+valindex];<BR>kn[30] = binary[2+valindex];<BR>kn[31] = 
      binary[3+valindex];<BR><BR>/* Permute - P */<BR>worka[ 0] = 
      kn[15];<BR>worka[ 1] = kn[ 6];<BR>worka[ 2] = kn[19];<BR>worka[ 3] = 
      kn[20];<BR>worka[ 4] = kn[28];<BR>worka[ 5] = kn[11];<BR>worka[ 6] = 
      kn[27];<BR>worka[ 7] = kn[16];<BR>worka[ 8] = kn[ 0];<BR>worka[ 9] = 
      kn[14];<BR>worka[10] = kn[22];<BR>worka[11] = kn[25];<BR>worka[12] = kn[ 
      4];<BR>worka[13] = kn[17];<BR>worka[14] = kn[30];<BR>worka[15] = kn[ 
      9];<BR>worka[16] = kn[ 1];<BR>worka[17] = kn[ 7];<BR>worka[18] = 
      kn[23];<BR>worka[19] = kn[13];<BR>worka[20] = kn[31];<BR>worka[21] = 
      kn[26];<BR>worka[22] = kn[ 2];<BR>worka[23] = kn[ 8];<BR>worka[24] = 
      kn[18];<BR>worka[25] = kn[12];<BR>worka[26] = kn[29];<BR>worka[27] = kn[ 
      5];<BR>worka[28] = kn[21];<BR>worka[29] = kn[10];<BR>worka[30] = kn[ 
      3];<BR>worka[31] = kn[24];<BR><BR>/* bufout XOR worka */<BR>for (i = 0; i 
      &lt; 32; i++) {<BR>bufout[i+32] = bufout[i] ^ worka[i];<BR>bufout[i] = 
      buffer[i];<BR>}<BR>} /* End of Iter */<BR><BR>/* Prepare Output */<BR>for 
      (i = 0; i &lt; 32; i++) {<BR>j = bufout[i];<BR>bufout[i] = 
      bufout[32+i];<BR>bufout[32+i] = j;<BR>}<BR><BR>/* Inverse Initial 
      Permutation */<BR>buffer[ 0] = bufout[39];<BR>buffer[ 1] = bufout[ 
      7];<BR>buffer[ 2] = bufout[47];<BR>buffer[ 3] = bufout[15];<BR>buffer[ 4] 
      = bufout[55];<BR>buffer[ 5] = bufout[23];<BR>buffer[ 6] = 
      bufout[63];<BR>buffer[ 7] = bufout[31];<BR>buffer[ 8] = 
      bufout[38];<BR>buffer[ 9] = bufout[ 6];<BR>buffer[10] = 
      bufout[46];<BR>buffer[11] = bufout[14];<BR>buffer[12] = 
      bufout[54];<BR>buffer[13] = bufout[22];<BR>buffer[14] = 
      bufout[62];<BR>buffer[15] = bufout[30];<BR>buffer[16] = 
      bufout[37];<BR>buffer[17] = bufout[ 5];<BR>buffer[18] = 
      bufout[45];<BR>buffer[19] = bufout[13];<BR>buffer[20] = 
      bufout[53];<BR>buffer[21] = bufout[21];<BR>buffer[22] = 
      bufout[61];<BR>buffer[23] = bufout[29];<BR>buffer[24] = 
      bufout[36];<BR>buffer[25] = bufout[ 4];<BR>buffer[26] = 
      bufout[44];<BR>buffer[27] = bufout[12];<BR>buffer[28] = 
      bufout[52];<BR>buffer[29] = bufout[20];<BR>buffer[30] = 
      bufout[60];<BR>buffer[31] = bufout[28];<BR>buffer[32] = 
      bufout[35];<BR>buffer[33] = bufout[ 3];<BR>buffer[34] = 
      bufout[43];<BR>buffer[35] = bufout[11];<BR>buffer[36] = 
      bufout[51];<BR>buffer[37] = bufout[19];<BR>buffer[38] = 
      bufout[59];<BR>buffer[39] = bufout[27];<BR>buffer[40] = 
      bufout[34];<BR>buffer[41] = bufout[ 2];<BR>buffer[42] = 
      bufout[42];<BR>buffer[43] = bufout[10];<BR>buffer[44] = 
      bufout[50];<BR>buffer[45] = bufout[18];<BR>buffer[46] = 
      bufout[58];<BR>buffer[47] = bufout[26];<BR>buffer[48] = 
      bufout[33];<BR>buffer[49] = bufout[ 1];<BR>buffer[50] = 
      bufout[41];<BR>buffer[51] = bufout[ 9];<BR>buffer[52] = 
      bufout[49];<BR>buffer[53] = bufout[17];<BR>buffer[54] = 
      bufout[57];<BR>buffer[55] = bufout[25];<BR>buffer[56] = 
      bufout[32];<BR>buffer[57] = bufout[ 0];<BR>buffer[58] = 
      bufout[40];<BR>buffer[59] = bufout[ 8];<BR>buffer[60] = 
      bufout[48];<BR>buffer[61] = bufout[16];<BR>buffer[62] = 
      bufout[56];<BR>buffer[63] = bufout[24];<BR><BR>j = 0;<BR>for (i = 0; i 
      &lt; 8; i++) {<BR>*(dest + i) = 0x00;<BR>for (k = 0; k &lt; 7; 
      k++)<BR>*(dest + i) = ((*(dest + i)) + buffer[j+k]) * 2;<BR>*(dest + i) = 
      *(dest + i) + buffer[j+7];<BR>j += 
8;<BR>}<BR>}</FONT></P></TD></TR></TBODY></TABLE>
<TABLE id=AutoNumber2 height=42 cellSpacing=1 width="100%" border=0>
  <TBODY>
  <TR>
    <TD align=middle width="100%"><INPUT onclick=javascript:window.close(); type=button value=关闭窗口 name=exit> 
    </TD></TR></TBODY></TABLE></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -