组密码摘要流密码按位加密。 加密方法大文本加密使用组密码,利用其加密快的优点。 组密码的密钥用公钥加密。 分组加密要求实现安全运行速度内存量平台运行模式的概率型密文必须长于明文。 混沌原则使明文、密文和密文的关系变得复杂。 扩散原则将明文统计规律和结构规律扩散到相当长的统计中。 加密需要分组足够数量的密钥,足够大的弱密钥在两个密钥加密中可以获得完全相同的结果。 典型的分组密码结构文件网络(des ) sp网络(AES ) sp网络替换
明文和密文组都是长度为n位的,明文组都对应唯一的密文组,这种可逆变换称为置换。
可逆变换的个数为2 n! 个。 可逆变换的个数有2^n! 个。 可逆变换的个数有2n! 个。
最基本的密码运算
“替换”(Substitution )替换图标
置换s一般称为混淆层,置换p称为扩散层。
由于Feistel Net乘积密码按顺序运行两个以上的基本密码系统,因此最终结果的密码强度高于各基本密码系统的结果。 思想利用乘积密码实现混淆和扩散。 迭代算法LEI=REI1REI=LEI1F(REI1,K i ) le _ { I } _ _ re _ I=le _ { I-1 } _ _ oplusf )
LEi=REi−1REi=LEi−1⊕F(REi−1,Ki)L和R是明文平分的两份,在完成n次迭代后再合并到一起生成密文。
K是密钥,i表示为第i轮的子密钥。
F函数是DES加密的关键。
解密迭代算法L D i + 1 = R D i = L E n − i = R E n − i − 1 R D i + 1 = L D i ⊕ F ( R D i , K n − i ) = L E n − i − 1 LD_{i+1}=RD_{i}=LE_{n-i}=RE_{n-i-1}\RD_{i+1}=LD_ioplus F(RD_i,K_{n-i})=LE_{n-i-1} LDi+1=RDi=LEn−i=REn−i−1RDi+1=LDi⊕F(RDi,Kn−i)=LEn−i−1
实际上就是加密流程的逆过程,经过n次迭代之后得到明文。
图解 DES算法 简介 明文和密文分组长度都为64位。密钥长度为64为,去掉8位奇偶校验位,有效密钥长度为56位。算法包括 初始置换IP16轮迭代的乘积变换逆初始置换16个子密钥产生器 流程 利用了Feistel Net的框架。 初始置换 逆初始置换 轮结构选择扩展运算E
选择压缩运算S
将48位输入分为8份,顺序输入8个S盒。
S盒代换将6位输入的第1位和第6位作为二元组决定行号,第2位到第5位作为四元组决定列号。
元组的高位对应输入的高位。
对应到表中的内容可以转换为4位二进制组。
P盒置换 密钥编排 PC-1 PC-2 移位次数 第i次移位次数第i次移位次数119121102321124212252132621427215282161加密实现等俺偷个懒把解密算法一起打出来再发