SPN用三个队列C语言,SPN-DES-AES算法原理与应用

本文详细介绍了迭代密码的工作原理,特别是代换-置换网络(SPN)的结构和操作过程。SPN通过代换和置换两个核心变换,结合轮密钥进行加密和解密。文中给出了一个具体的SPN示例,展示了如何通过S盒和P盒进行一轮变换。此外,还阐述了SPN密码体制的定义及其加密和解密算法。
摘要由CSDN通过智能技术生成

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如果有侵权请立即联系:55525090@qq.com,我们立即下架或删除。

简介: 代换-置换网络SPN的工作

原理及示例

 Feistel结构和DES算法

 AES算法

迭代密码

 迭代密码的核心是一个密钥编排方案和一

个轮函数

 密钥编排方案对密钥k进行变换,生成Nr个

子密钥(也叫轮密钥),记为k1,k2,...,kNr

 轮函数g是一个状态加密函数,以ki为密钥

对当前状态wr-1进行变换,输出新的状态值

wr,即g(wr-1,ki)=wr;轮函数是单射函数,

存在一个逆变换g-1,有g-1(wr,ki)=wr-1

迭代密码的加解密过程

 将密钥k编排成Nr个轮密钥k1,k2,...,kNr

 加密:

 将明文x定义为初始状态w0,经过Nr轮变换得

到wNr为密文y,即

 w0=x, w1=g(w0,k1), w2=g(w1,k2), ...

 wNr-1=g(wNr-2,kNr-1), wNr=g(wNr-1,kNr)

 y=wNr

迭代密码的加解密过程

 解密:

 将密文y定义为初始状态wNr,经过Nr轮逆变换

得到w0为明文x,即

 y=wNr, wNr-1=g-1(wNr,kNr),wNr-2=g-1(wNr-1,kNr-1)

 ...

 w1=g-1(w2,k2), w0=g-1(w1,k1),

 x=w0

代换-置换网络

 代换-置换网络(Substitution-Permutation

Network)是一种简单的迭代密码

 处理的明文单元和状态值长度为l×m

 轮函数g包括两个核心变换——代换和置换,分别

记为πs和πp,有

 πs : {0,1}l → {0,1}l

 πp : {1,2,...,lm} → {1,2,...,lm}

 在进行轮函数变换前,先用轮密钥和状态值进行异

或(称为白化)

代换-置换网络

 代换-置换网络的一轮变换过程

代换 代换 代换 代换

与轮密钥异或(白化)

输入状态wr-1(长度为l×m)

置换

输出状态wr(长度为m×l)

S盒

P盒

代替-置换网络

 SPN密码体制定义

 设l,m,Nr是正整数,P=C={0,1}lm

 K⊆({0,1}lm)Nr+1是由初始密钥k用密钥编排算法

生成的所有可能的密钥编排方案集合,一个密

钥编排方案记为(k1,k2,...,kNr+1)

 状态值w长度为l×m,记为w1,w2,...,wlm;

 w可以看成m个长度为l的子串连接而成,记为

 w=w<1>,w<2>,...,w,其中

 w=w(i-1)l+1,w(i-1)l+2,...,w(i-1)l+l

 加密过程使用算法3.1描述

SPN加密算法

 算法3.1 SPN(x,πs,πp,(k1,k2,...,kNr+1))

 w0=x

 for r=1 to Nr-1 {

ur=wr-1⊕kr // 白化

for i=1 to m {

vr

=πs(ur

) // 代换

}

wr=(vr

πp(1),vr

πp(2),...,vr

πp(lm)) // 置换

 }

 uNr=wNr-1⊕kNr

 for i=1 to m {

vNr

=πs(uNr

) // 代换

 }

 y=vNr⊕kNr+1 // 白化

 return y

代换 代换 代换 代换

与轮密钥异或(白化)

输入状态wr-1

置换

输出状态wr

ur

vr

最后一轮不做置换

SPN解密算法-同样的结构



  





  

 



  

(

其中

1 1 1 2 1

1

1

11

1 1 2

1 1 1

0 1 1

11

1

1

11

SPN y, , ,( , , , ))

r=N downto 2

do ( )

()

()

()

( ) ( =N ,N , ,2)

rr

r

rr

NN

sp

N

r

r r r

rr

s

rr

p

s

NN

rr

p r r

L L L L

wy

for

v w L

uv

wu

v w L

uv

x w u L

output x

LK

L K r

LK

SPN示例

 例3.1 设l=m=Nr=4,代换规则πs定义如下(采

用16进制表示{0,1}4中的每个元素)

 在程序中保存这个代换规则的结构称为S盒

 置换规则πp定义如下

 在程序中保存这个置换规则的结构称为P盒

z 0 1 2 3 4 5 6 7 8 9 A B C D E F

πs(z) E 4 D 1 2 F B 8 3 A 6 C 5 9 0 7

z 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

πp(z) 1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 16

SPN示例

... 更多>>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值