资源简介
1. 实现课本 简单的SPN-分组加密和解密算法;
2. 实现对任意文件的加密和解密;
3. 测试加密函数的运行速度;
4. 对加密函数进行先行密码分析。
代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define l 4//S盒长度
#define m 4//每轮加密的S盒个数
#define size 16//
#define N 4//N+1是加密轮数
#define size 16//分组大小
#define T 8000//对于线性密码分析,需有T对明-密文,这里利用随机函数生成
using namespace std;
typedef struct tagciphertextinfo {
char* filename;
WORD w;
WORD v;
} ciphertextinfo;
//
//---------------------------------------- 一、SPN分组的加、解密
//
//加密函数 加密16位的两个字符
//
int BlockEncryption(char* PlainText char* CipherText int Key)
{
int Nr = N;
int PIs[16] = {0xE 0x4 0xD 0x1 0x2 0xF 0xB 0x8 0x3 0xA 0x6 0xC 0x5 0x9 0x0 0x7};
int PIp[16] = {0 4 8 12 1 5 9 13 2 6 10 14 3 7 11 15}
- 上一篇:c++封装libev
- 下一篇:麻将识别.rar
评论
共有 条评论