diff --git a/src/tea3/tea3model.py b/src/tea3/tea3model.py index caca556..37bb0aa 100644 --- a/src/tea3/tea3model.py +++ b/src/tea3/tea3model.py @@ -48,12 +48,12 @@ class Tea3Model: # update R registers self.R_bits[7] = R6 self.R_bits[6] = R5 - self.R_bits[5] = xor_vec(R4, G31(R6, R5)) + self.R_bits[5] = xor_vec(R4, F31(R6, R5)) self.R_bits[4] = R3 self.R_bits[3] = R2 self.R_bits[2] = R1 self.R_bits[1] = R0 - self.R_bits[0] = xor_vec(x0, xor_vec(R7, xor_vec(BP(R4), G32(R2, R1)))) + self.R_bits[0] = xor_vec(x0, xor_vec(R7, xor_vec(BP(R4), F32(R2, R1)))) return R7 @@ -67,40 +67,41 @@ def xor_vec(a, b): def BP(r): return [r[2], r[7], r[3], r[5], r[6], r[1], r[0], r[4]] -def G31(X, Y): - x3,x4,x5,x6,x7,x0,x1,x2 = X - y3,y4,y5,y6,y7,y0,y1,y2 = Y +def F31(X, Y): + x0, x1, x2, x3, x4, x5, x6, x7 = X + y0, y1, y2, y3, y4, y5, y6, y7 = Y return [ - x1 + y0 + x0*y0 + y1 + x0*y1 + x0*x1*y1 + y0*y1 + x0*y0*y1 + x1*y0*y1, - 1 + y1 + y2 + x1*y2 + x2*y2 + y1*y2 + x1*y1*y2, - x2 + x3 + x2*y2 + x3*y2 + y3 + x3*y3 + x3*y2*y3, - x4*y3 + y4 + x3*y3*y4 + x4*y3*y4, - 1 + y4 + x4*y4 + x5*y4 + y5 + y4*y5 + x5*y4*y5, - 1 + x5 + x6 + y5 + x5*y5 + x6*y5 + y6 + x6*y6 + x6*y5*y6, - 1 + x6 + x6*y6 + x7*y7 + y6*y7 + x7*y6*y7, - 1 + x7 + y0 + x0*y7 + x7*y7 + x0*x7*y7 + x0*y0*y7 + x7*y0*y7, + x5*x6*y5 + x5*x6 + x5*y5*y6 + x5*y5 + x5*y6 + x6*y5*y6 + y5*y6 + y5 + y6, + x6*x7*y6 + x6*x7 + x6*y6*y7 + x6*y7 + x6 + x7*y6 + x7*y7 + y6*y7 + y6 + y7 + 1, + x0*x7*y0 + x0*y0*y7 + x0*y0 + x0 + x7*y7 + y0, + x0*x1*y0 + x0*x1*y1 + x0*x1 + x0*y0*y1 + x0*y1 + x1*y0*y1 + x1 + y1, + x1*x2*y2 + x1*x2 + x1*y1 + x1*y2 + x2*y1*y2 + x2*y1 + x2 + y1*y2 + y1 + y2 + 1, + x2*x3*y3 + x2*y2 + x2 + x3*y2*y3 + x3*y3 + x3 + y2 + y3 + 1, + x3*x4*y4 + x3*y3 + x3*y4 + x4*y3*y4 + x4*y4 + x4 + y3*y4 + 1, + x4*x5*y5 + x4*y4*y5 + x4*y4 + x4*y5 + x5*y4*y5 + x5 + y5 + 1, ] -def G32(X, Y): - x3,x4,x5,x6,x7,x0,x1,x2 = X - y3,y4,y5,y6,y7,y0,y1,y2 = Y + +def F32(X, Y): + x0, x1, x2, x3, x4, x5, x6, x7 = X + y0, y1, y2, y3, y4, y5, y6, y7 = Y return [ - 1 + x1 + x0*x1 + y0 + x0*y0 + x1*y0 + y1 + x0*x1*y1 + x0*y0*y1 + x1*y0*y1, - 1 + y1 + x2*y2 + x1*y1*y2, - x3 + x3*y2 + y3 + x2*y3 + x3*y3 + x2*y2*y3 + x3*y2*y3, - x4*y3 + y4 + y3*y4 + x3*y3*y4 + x4*y3*y4, - x4*y4 + y5 + y4*y5 + x4*y4*y5 + x5*y4*y5, - x5 + x6 + x5*y5 + x6*y5 + y6 + x6*y6 + x6*y5*y6, - y6 + x6*y6 + x7*y6 + y7 + y6*y7 + x7*y6*y7, - x0*x7 + y0 + x7*y0 + y7 + x0*y7 + x7*y7 + x0*x7*y7 + x0*y0*y7 + x7*y0*y7, + x5*x6*y5 + x5*x6 + x5*y5*y6 + x5*y5 + x5*y6 + x6*y5*y6 + y5 + y6 + 1, + x6*x7*y6 + x6*x7 + x6*y6*y7 + x6*y7 + x6 + x7*y7 + x7 + y6 + 1, + x0*x7*y0 + x0*x7*y7 + x0*y0*y7 + x0*y0 + x0 + x7*y0*y7 + y0, + x0*x1*y0 + x0*x1*y1 + x0*y0*y1 + x1*y0*y1 + x1*y0 + x1 + y0*y1 + y1, + x1*x2*y1 + x1*x2*y2 + x1*x2 + x1*y1*y2 + x1*y1 + x1 + x2*y1*y2 + x2 + y1*y2 + y2, + x2*x3*y3 + x2*y2 + x3*y2*y3 + x3*y3 + x3 + y3, + x3*x4*y4 + x3*x4 + x3*y3 + x3*y4 + x4*y3*y4 + x4*y3 + x4 + y3*y4 + y3 + y4, + x4*x5*y5 + x4*y4*y5 + x4*y4 + x5*y4*y5 + x5 + y4 + y5 + 1, ] t = Tea3Model() -for i in range(4): +for i in range(6): print("step "+str(i)) t.step() print(pretty_print(t.R_bits[0][0]))