⚡️ 欢迎来到 注意安全CL 的博客主页 🌷
🙋 我的专栏推荐 🙋
🌱《软件安装与资源共享》分享好用的工具软件,条理清晰资源多多🍗,欢迎来访🐇
🌱《信息安全-初级网络》有全面的网络基础知识分享,欢迎来访🙉
🌱《信息安全-高级网络》涉及高级网络技术知识,实验案例部署配置,快速提升🐲
🌱《信息安全-渗透测试》有超全漏洞复现、攻击方式、渗透工具分享欧~💦
🌱《信息安全-密码学》校内布置的剪短算法练习,帮助你更快爱上这一学科 🌺
目录
一、DES算法和CBC模式的介绍
DES(Data Encryption Standard,数据加密标准)是一种基于密钥的对称加密算法,而CBC(Cipher Block Chaining,密码块链接模式)是一种使用初始化向量(IV)和前一个块的加密结果来加密当前块的模式。
二、代码的主要组成部分及其功能
-
密钥和参数定义:代码开始部分定义了多个全局数组,包括置换表、E盒、P盒、置换表等,这些都是DES算法中的关键部分。
-
辅助函数:
get(int r)
:根据轮数返回移位数量。yihuo(int* a, int* b, int num)
:执行两个数组的按位异或操作。fuck(int a[64], int b[64], int n)
:将数组b
的值复制到数组a
。left_move(int s[28], int s1[28], int n)
:对数组进行左移操作。exchange(int* a, int* b, int* biao, int n)
:根据置换表对数组进行置换。erzhuanshi(int* a, unsigned char* b, int n)
:将二进制数组转换为十六进制表示。shizhuaner(int* a, int x, int i, int n)
:将十进制数转换为二进制数组。
-
DES算法核心函数:
s_box(int a[32], int b[48])
:S盒替换函数。DES(unsigned char a[8], unsigned char b[8], unsigned char plus3[8],int n,unsigned char IV[8],unsigned char b1[8])
:DES加密函数,其中a
是待加密的8字节数据块,b
是密钥,plus3
是加密结果,n
是数据块编号,IV
是初始化向量,b1
是上一轮的密文。
-
CBC模式加密函数:
CBC(unsigned char b[8],unsigned char IV[8])
:实现CBC模式的加密过程,读取文件中的明文,使用DES算法进行加密,并将结果写入新文件。
-
CBC模式解密函数:
RE_DES(unsigned char a[8], unsigned char min_plus[8],int n,unsigned char IV[8],unsigned char b1[8])
:DES解密函数。RE_CBC(unsigned char b[8], int size,unsigned char IV[8])
:实现CBC模式的解密过程,读取加密文件,使用DES算法进行解密,并将结果写入新文件。
-
main函数:程序入口,接收用户输入的密钥和初始向量