明文 M
64 位初始密钥
子密钥产生
置换选择 1
循环左移
置换选择 2
循环左移
置换选择 2
循环左移
置换选择 2
循环左移
置换选择 2
循环左移
置换选择 2
循环左移
置换选择 2
循环左移
置换选择 2
循环左移
置换选择 2
循环左移
置换选择 2
循环左移
循环左移
置换选择 2
循环左移
置换选择 2
置换选择 2
循环左移
置换选择 2
循环左移
置换选择 2
循环左移
循环左移
置换选择 2
置换选择 2
C0
D0
C1
D1
K1
C2
D2
K2
C3
D3
K3
C4
D4
K4
C5
D5
K5
C6
D6
K6
C7
D7
K7
C8
D8
K8
C9
D9
K9
C10
D10
K10
C11
D11
K11
C12
D12
K12
C13
D13
K13
C14
D14
K14
C15
D15
K15
C16
D16
K16
初始置换 IP
L0
R0
选择(扩展)运算 E
E(R0)
S 盒=E(R0)⊕K1
代替函数组 S( E(R0)⊕K1)
置换运算 P=f(R0,K1)
R1=L0⊕f(R0,K1)
L1=R0
选择(扩展)运算 E
E(R1)
S 盒=E(R1)⊕K2
代替函数组 S( E(R1)⊕K2)
置换运算 P=f(R1,K2)
R2=L1⊕f(R1,K2)
L2=R1
选择(扩展)运算 E
E(R2)
S 盒=E(R2)⊕K3
代替函数组 S( E(R2)⊕K3)
置换运算 P=f(R2,K3)
R3=L2⊕f(R2,K3)
L3=R2
选择(扩展)运算 E
E(R3)
S 盒=E(R3)⊕K4
代替函数组 S( E(R3)⊕K4)
置换运算 P=f(R3,K4)
R4=L3⊕f(R3,K4)
L4=R3
选择(扩展)运算 E
E(R4)
S 盒=E(R4)⊕K5
代替函数组 S( E(R4)⊕K5)
置换运算 P=f(R4,K5)
R5=L4⊕f(R4,K5)
L5=R4
选择(扩展)运算 E
E(R5)
S 盒=E(R5)⊕K6
代替函数组 S( E(R5)⊕K6)
置换运算 P=f(R5,K6)
R6=L5⊕f(R5,K6)
L6=R5
选择(扩展)运算 E
E(R6)
S 盒=E(R6)⊕K7
代替函数组 S( E(R6)⊕K7)
置换运算 P=f(R6,K7)
R7=L6⊕f(R6,K7)
L7=R6
选择(扩展)运算 E
E(R7)
S 盒=E(R7)⊕K8
代替函数组 S( E(R7)⊕K8)
置换运算 P=f(R7,K8)
R8=L7⊕f(R7,K8)
L8=R7
选择(扩展)运算 E
E(R8)
S 盒=E(R8)⊕K9
代替函数组 S( E(R8)⊕K9)
置换运算 P=f(R8,K9)
R9=L8⊕f(R8,K9)
L9=R8
选择(扩展)运算 E
E(R9)
S 盒=E(R9)⊕K10
代替函数组 S( E(R9)⊕K10)
置换运算 P=f(R9,K10)
R10=L9⊕f(R9,K10)
L10=R9
选择(扩展)运算 E
E(R10)
S 盒=E(R10)⊕K11
选择(扩展)运算 E
DES(数据加密标准)算法
代替函数组 S( E(R10)⊕K11)
置换运算 P=f(R10,K11)
R11=L10⊕f(R10,K11)
L11=R10
选择(扩展)运算 E
E(R11)
S 盒=E(R11)⊕K12
代替函数组 S( E(R11)⊕K12)
置换运算 P=f(R11,K12)
R12=L11⊕f(R11,K12)
L12=R11
选择(扩展)运算 E
E(R12)
S 盒=E(R12)⊕K13
代替函数组 S( E(R12)⊕K13)
置换运算 P=f(R12,K13)
R13=L12⊕f(R12,K13)
L13=R12
选择(扩展)运算 E
E(R13)
S 盒=E(R13)⊕K14
代替函数组 S( E(R13)⊕K14)
置换运算 P=f(R13,K14)
R14=L13⊕f(R13,K14)
L14=R13
选择(扩展)运算 E
E(R14)
S 盒=E(R14)⊕K15
代替函数组 S( E(R14)⊕K15)
置换运算 P=f(R14,K15)
R15=L14⊕f(R14,K15)
L15=R14
选择(扩展)运算 E
E(R15)
S 盒=E(R15)⊕K16
代替函数组 S( E(R15)⊕K16)
置换运算 P=f(R15,K16)
R16=L15⊕f(R15,K16)
L16=R15
L17=R16
R17=L16
合并
逆初始置换 IP-1
密文 C