• 大小: 21.75MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-06-19
  • 语言: C/C++
  • 标签: 密码学  密钥分配  

资源简介

用C++模拟集中式密钥分配的五步,自己写的,完全按照流程图分五步,将每一步的结果保存在了文件中。开发工具为VS2010,解压后导入文件夹中的sln文件即可。

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;

bitset<64> key;                // 64位密钥
bitset<48> subKey[16];         // 存放16轮子密钥

// 初始置换表
int IP[] = {58 50 42 34 26 18 10 2
60 52 44 36 28 20 12 4
62 54 46 38 30 22 14 6
64 56 48 40 32 24 16 8
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};

// 结尾置换表
int IP_1[] = {40 8 48 16 56 24 64 32
  39 7 47 15 55 23 63 31
  38 6 46 14 54 22 62 30
  37 5 45 13 53 21 61 29
  36 4 44 12 52 20 60 28
  35 3 43 11 51 19 59 27
  34 2 42 10 50 18 58 26
  33 1 41  9 49 17 57 25};

/*------------------下面是生成密钥所用表-----------------*/

// 密钥置换表,将64位密钥变成56位
int PC_1[] = {57 49 41 33 25 17 9
   1 58 50 42 34 26 18
  10  2 59 51 43 35 27
  19 11  3 60 52 44 36
  63 55 47 39 31 23 15
   7 62 54 46 38 30 22
  14  6 61 53 45 37 29
  21 13  5 28 20 12  4}; 

// 压缩置换,将56位密钥压缩成48位子密钥
int PC_2[] = {14 17 11 24  1  5
   3 28 15  6 21 10
  23 19 12  4 26  8
  16  7 27 20 13  2
  41 52 31 37 47 55
  30 40 51 45 33 48
  44 49 39 56 34 53
  46 42 50 36 29 32};

// 每轮左移的位数
int shiftBits[] = {1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1};

/*------------------下面是密码函数 f 所用表-----------------*/

// 扩展置换表,将 32位 扩展至 48位
int E[] = {32  1  2  3  4  5
    4  5  6  7  8  9
    8  9 10 11 12 13
   12 13 14 15 16 17
   16 17 18 19 20 21
   20 21 22 23 24 25
   24 25 26 27 28 29
   28 29 30 31 32  1};

// S盒,每个S盒是4x16的置换表,6位 -> 4位
int S_BOX[8][4][16] = {
{  
{1441312151183106125907}  
{0157414213110612119538}  
{4114813621115129731050} 
{1512824917511314100613} 
}
{  
{1518146113497213120510}  
{3134715281412011069115} 
{0147111041315812693215}  
{1381013154211671205149}  

{  
{1009146315511312711428}  
{1370934610285141211151}  
{1364981530111212510147}  
{1101306987415143115212}  

{  
{7131430691012851112415}  
{1381156150347212110149}  
{1069012117131513145284}  
{3150610113894511127214}  
}
{  
{2124171011685315130149}  
{1411212471315015103986}  
{4211110137815912563014}  
{1181271142136150910453}  
}
{  
{1211015926801334147511}  
{10

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-01-26 10:18  DESLib\
     目录           0  2018-01-26 10:17  DESLib\Debug\
     文件      154112  2017-12-19 21:23  DESLib\Debug\DESLib.exe
     文件     1060500  2017-12-19 21:23  DESLib\Debug\DESLib.ilk
     文件     1543168  2017-12-19 21:23  DESLib\Debug\DESLib.pdb
     目录           0  2018-01-26 10:17  DESLib\DESLib\
     文件    30887936  2018-01-26 10:17  DESLib\DESLib.sdf
     文件         885  2017-12-17 14:58  DESLib\DESLib.sln
     文件       14848  2018-01-26 10:17  DESLib\DESLib.suo
     文件          16  2017-12-19 21:23  DESLib\DESLib\cipher.txt
     目录           0  2018-01-26 10:18  DESLib\DESLib\Debug\
     文件         598  2017-12-19 21:23  DESLib\DESLib\Debug\cl.command.1.tlog
     文件       23628  2017-12-19 21:23  DESLib\DESLib\Debug\CL.read.1.tlog
     文件         258  2017-12-19 21:23  DESLib\DESLib\Debug\CL.write.1.tlog
     文件         406  2017-12-17 15:02  DESLib\DESLib\Debug\DESLib.exe.embed.manifest
     文件         472  2017-12-17 15:02  DESLib\DESLib\Debug\DESLib.exe.embed.manifest.res
     文件         381  2017-12-19 21:23  DESLib\DESLib\Debug\DESLib.exe.intermediate.manifest
     文件          48  2017-12-19 21:23  DESLib\DESLib\Debug\DESLib.lastbuildstate
     文件        4790  2017-12-19 21:23  DESLib\DESLib\Debug\DESLib.log
     文件         713  2017-12-17 15:39  DESLib\DESLib\Debug\DESLib.vcxprojResolveAssemblyReference.cache
     文件           0  2017-12-17 15:02  DESLib\DESLib\Debug\DESLib.write.1.tlog
     文件         202  2017-12-17 15:02  DESLib\DESLib\Debug\DESLib_manifest.rc
     文件           2  2017-12-19 21:23  DESLib\DESLib\Debug\link-cvtres.read.1.tlog
     文件           2  2017-12-19 21:23  DESLib\DESLib\Debug\link-cvtres.write.1.tlog
     文件           2  2017-12-19 21:23  DESLib\DESLib\Debug\link.10560-cvtres.read.1.tlog
     文件           2  2017-12-19 21:23  DESLib\DESLib\Debug\link.10560-cvtres.write.1.tlog
     文件           2  2017-12-19 21:23  DESLib\DESLib\Debug\link.10560.read.1.tlog
     文件           2  2017-12-19 21:23  DESLib\DESLib\Debug\link.10560.write.1.tlog
     文件           2  2017-12-19 21:23  DESLib\DESLib\Debug\link.10732-cvtres.read.1.tlog
     文件           2  2017-12-19 21:23  DESLib\DESLib\Debug\link.10732-cvtres.write.1.tlog
     文件           2  2017-12-19 21:23  DESLib\DESLib\Debug\link.10732.read.1.tlog
............此处省略80个文件信息

评论

共有 条评论