• 大小: 19KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-01-03
  • 语言: C/C++
  • 标签: 密码学  SPN分组  

资源简介

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}

评论

共有 条评论