資源簡介
1. 實(shí)現(xiàn)課本 簡單的SPN-分組加密和解密算法;
2. 實(shí)現(xiàn)對任意文件的加密和解密;
3. 測試加密函數(shù)的運(yùn)行速度;
4. 對加密函數(shù)進(jìn)行先行密碼分析。
代碼片段和文件信息
#include?
#include
#include
#include?
#include?
#include
#include
#include?
#include?
#define?l?4//S盒長度
#define?m?4//每輪加密的S盒個數(shù)
#define?size?16//
#define?N?4//N+1是加密輪數(shù)
#define?size?16//分組大小?
#define?T?8000//對于線性密碼分析,需有T對明-密文,這里利用隨機(jī)函數(shù)生成
using?namespace?std;
typedef?struct?tagciphertextinfo?{
????char*?filename;
WORD??w;
????WORD??v;
}?ciphertextinfo;
//
//----------------------------------------?一、SPN分組的加、解密
//
//加密函數(shù)?加密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
評論
共有 條評論