)))
-def addmod(x, y, mod=2 ** 32):
- """ Modulo adding of two integers
- """
- r = x + y
- return r if r < mod else r - mod
-
-
def _shift11(x):
""" 11-bit cyclic shift
"""
]
n1, n2 = ns
for i in seq:
- n1, n2 = _shift11(_K(s, addmod(n1, x[i]))) ^ n2, n1
+ n1, n2 = _shift11(_K(s, (n1 + x[i]) % (2 ** 32))) ^ n2, n1
return n1, n2
n2, n1 = encrypt(sbox, key, block2ns(iv))
gamma = []
for _ in xrange(0, len(data) + pad_size(len(data), BLOCKSIZE), BLOCKSIZE):
- n1 = addmod(n1, C2, 2 ** 32)
- n2 = addmod(n2, C1, 2 ** 32 - 1)
+ n1 = (n1 + C2) % (2 ** 32)
+ n2 = (n2 + C1) % (2 ** 32 - 1)
gamma.append(ns2block(encrypt(sbox, key, (n1, n2))))
return strxor(b"".join(gamma), data)