r11(i) = l10(i) xor codep(i)
l11(i) = r10(i)
next
'进行第12次迭代
for i = 0 to 47
codee(i) = r11(e(i)) '经过e变换扩充,由32位变为48位
codee(i) = codee(i) xor k5(i) '与k5按位作不进位加法运算
next
'分8组
for i = 0 to 5
codes1(i) = codee(i)
codes2(i) = codee(i + 6)
codes3(i) = codee(i + 12)
codes4(i) = codee(i + 18)
codes5(i) = codee(i + 24)
codes6(i) = codee(i + 30)
codes7(i) = codee(i + 36)
codes8(i) = codee(i + 42)
next
's盒运算,得到8个数
s(0) = s1(codes1(5) + codes1(0) * 2, codes1(4) + codes1(3) * 2 + codes1(2) * 4 + codes1(1) * 8)
s(1) = s2(codes2(5) + codes2(0) * 2, codes2(4) + codes2(3) * 2 + codes2(2) * 4 + codes2(1) * 8)
s(2) = s3(codes3(5) + codes3(0) * 2, codes3(4) + codes3(3) * 2 + codes3(2) * 4 + codes3(1) * 8)
s(3) = s4(codes4(5) + codes4(0) * 2, codes4(4) + codes4(3) * 2 + codes4(2) * 4 + codes4(1) * 8)
s(4) = s5(codes5(5) + codes5(0) * 2, codes5(4) + codes5(3) * 2 + codes5(2) * 4 + codes5(1) * 8)
s(5) = s6(codes6(5) + codes6(0) * 2, codes6(4) + codes6(3) * 2 + codes6(2) * 4 + codes6(1) * 8)
s(6) = s7(codes7(5) + codes7(0) * 2, codes7(4) + codes7(3) * 2 + codes7(2) * 4 + codes7(1) * 8)
s(7) = s8(codes8(5) + codes8(0) * 2, codes8(4) + codes8(3) * 2 + codes8(2) * 4 + codes8(1) * 8)
's盒运算32位结果
for i = 0 to 7
rets(i * 4 + 0) = (s(i) and &h8) \ &h8
rets(i * 4 + 1) = (s(i) and &h4) \ &h4
rets(i * 4 + 2) = (s(i) and &h2) \ &h2
rets(i * 4 + 3) = (s(i) and &h1) \ &h1
next
for i = 0 to 31
'p变换
codep(i) = rets(p(i))
'产生l12,r12
r12(i) = l11(i) xor codep(i)
l12(i) = r11(i)
next
'进行第13次迭代
for i = 0 to 47
codee(i) = r12(e(i)) '经过e变换扩充,由32位变为48位
codee(i) = codee(i) xor k4(i) '与k4按位作不进位加法运算
next
'分8组
for i = 0 to 5
codes1(i) = codee(i)
codes2(i) = codee(i + 6)
codes3(i) = codee(i + 12)
codes4(i) = codee(i + 18)
codes5(i) = codee(i + 24)
codes6(i) = codee(i + 30)
codes7(i) = codee(i + 36)
codes8(i) = codee(i + 42)
next
's盒运算,得到8个数
s(0) = s1(codes1(5) + codes1(0) * 2, codes1(4) + codes1(3) * 2 + codes1(2) * 4 + codes1(1) * 8)
s(1) = s2(codes2(5) + codes2(0) * 2, codes2(4) + codes2(3) * 2 + codes2(2) * 4 + codes2(1) * 8)