sdes.cpp
来自「各种加密算法的集合」· C++ 代码 · 共 50 行
CPP
50 行
#include <dos.h>
#include <stdio.h>
#include <stdlib.h>
#include <graphics.h>
#include <string.h>
/* initial permutation IP */
static byte ip[] = {
2, 6, 3, 1, 4, 8, 5, 7
};
/* final permutation IP^-1 */
static byte fp[] = {
4, 1, 3, 5, 7, 2, 8, 6
};
/* expansion operation matrix */
static byte ei[] = {
4, 1, 2, 3, 2, 3, 4, 1
};
/* The (in)famous S-boxes */
static byte sbox[2][16] = {
/* S1 */
1, 0, 3, 2, 3, 2, 1, 0, 0, 2, 1, 3, 3, 1, 3, 2,
/* S2 */
0, 1, 2, 3, 2, 0, 1, 3, 3, 0, 1, 0, 2, 1, 0, 3
};
/* 32-bit permutation function P used on the output of the S-boxes */
static byte p32i[] = {
2, 4, 3, 1
};
#endif
/* permuted choice table (key) */
static const byte pc1[] = {
3, 5,2,7,4,10,1,9,8,6
};
/* number left rotations of pc1 */
static const byte totrot[] = {
1,2
};
/* permuted choice key (table) */
static const byte pc2[] = {
6,3,7,4,8,5,10,9
};
/* End of DES-defined tables */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?