def ofb(string):

xs = list()
ys = list()
ss = list()

for character in string:
ascii_val = int(ord(character))

xs.append(ascii_val)

key = int("0X08", 16)

iv = int("0XAA", 16)

ss.append((key+11*iv)%256)

ys.append(hex(xs[0]^ss[0]))

for i in range(1, len(xs)):

ss.append((key+11*ss[i-1])%256)

ys.append(hex(xs[i]^ss[i]))

return xs, ys

def cfb(string):

xs = list()

ys = list()

for character in string:

ascii_val = int(ord(character))

xs.append(ascii_val)

key = int("0X08", 16)

iv = int("0XAA", 16)

ys.append(hex(xs[0]^((key+11*iv)%256)))

for i in range(1, len(xs)):

ys.append(hex(xs[i]^(key+11*int(ys[i-1], 16))%256))

return xs, ys

def cbc(string):

xs = list()

ys = list()

ss = list()

for character in string:

ascii_val = int(ord(character))

xs.append(ascii_val)

key = int("0X08", 16)

iv = int("0XAA", 16)

ss.append((key+11*(xs[0]^iv))%256)

ys.append(hex(ss[0]))

for i in range(1, len(xs)):

ss.append((key+11*(xs[i]^ss[i-1]))%256)

ys.append(hex(ss[i]))

return xs, ys

def ecb(string):

xs = list()

ys = list()

key = int("0X08", 16)

for character in string:

ascii_val = int(ord(character))

xs.append(ascii_val)

ys.append(hex((key + 11 * ascii_val) % 256))

return xs, ys

def ctr(string):

xs = list()

ys = list()

for character in string:

ascii_val = int(ord(character))

xs.append(ascii_val)

ss = ["10101000", "10101001", "10101010", "10101011", "10101100", "10101101"]

key = int("0X08", 16)

for i in range(len(xs)):

ei = (key+11*int(ss[i], 2))%256

ys.append(hex(xs[i] ^ ei))

return xs, ys

if __name__ == "__main__":

print("CTR")

word = "beery"

print("\nCTR : ", word)

xs_ctr, ys_ctr = ctr(word)

print("Plain Text", xs_ctr)

print("Cipher Text", ys_ctr)

word = "neary"

print("\nECB : ", word)

xs_ecb, ys_ecb = ecb(word)

print("Plain Text", xs_ecb)

print("Cipher Text", ys_ecb)

word = "leary"

print("\nCFB : ", word)

xs_cfb, ys_cfb = cfb(word)

print("Plain Text", xs_cfb)

print("Cipher Text", ys_cfb)

word = "weary"

print("\nCBC : ", word)

xs_cbc, ys_cbc = cbc(word)

print("Plain Text", xs_cbc)

print("Cipher Text", ys_cbc)

word = "bleary"

print("\nOFB : ", word)

xs_ofb, ys_ofb = ofb(word)

print("Plain Text", xs_ofb)

print("Cipher Text", ys_ofb)

def ofb(string):

xs = list()

ys = list()

ss = list()

for character in string:

ascii_val = int(ord(character))

xs.append(ascii_val)

key = int("0X08", 16)

iv = int("0XAA", 16)

ss.append((key+11*iv)%256)

ys.append(hex(xs[0]^ss[0]))

for i in range(1, len(xs)):

ss.append((key+11*ss[i-1])%256)

ys.append(hex(xs[i]^ss[i]))

return xs, ys

def cfb(string):

xs = list()

ys = list()

for character in string:

ascii_val = int(ord(character))

xs.append(ascii_val)

key = int("0X08", 16)

iv = int("0XAA", 16)

ys.append(hex(xs[0]^((key+11*iv)%256)))

for i in range(1, len(xs)):

ys.append(hex(xs[i]^(key+11*int(ys[i-1], 16))%256))

return xs, ys

def cbc(string):

xs = list()

ys = list()

ss = list()

for character in string:

ascii_val = int(ord(character))

xs.append(ascii_val)

key = int("0X08", 16)

iv = int("0XAA", 16)

ss.append((key+11*(xs[0]^iv))%256)

ys.append(hex(ss[0]))

for i in range(1, len(xs)):

ss.append((key+11*(xs[i]^ss[i-1]))%256)

ys.append(hex(ss[i]))

return xs, ys

def ecb(string):

xs = list()

ys = list()

key = int("0X08", 16)

for character in string:

ascii_val = int(ord(character))

xs.append(ascii_val)

ys.append(hex((key + 11 * ascii_val) % 256))

return xs, ys

def ctr(string):

xs = list()

ys = list()

for character in string:

ascii_val = int(ord(character))

xs.append(ascii_val)

ss = ["10101000", "10101001", "10101010", "10101011", "10101100", "10101101"]

key = int("0X08", 16)

for i in range(len(xs)):

ei = (key+11*int(ss[i], 2))%256

ys.append(hex(xs[i] ^ ei))

return xs, ys

if __name__ == "__main__":

word = "beery"

print("\nCTR : ", word)

xs_ctr, ys_ctr = ctr(word)

print("Plain Text", xs_ctr)

print("Cipher Text", ys_ctr)

word = "neary"

print("\nECB : ", word)

xs_ecb, ys_ecb = ecb(word)

print("Plain Text", xs_ecb)

print("Cipher Text", ys_ecb)

word = "leary"

print("\nCFB : ", word)

xs_cfb, ys_cfb = cfb(word)

print("Plain Text", xs_cfb)

print("Cipher Text", ys_cfb)

word = "weary"
print("\nCBC : ", word)
xs_cbc, ys_cbc = cbc(word)
print("Plain Text", xs_cbc)
print("Cipher Text", ys_cbc)

word = "bleary"
print("\nOFB : ", word)
xs_ofb, ys_ofb = ofb(word)
print("Plain Text", xs_ofb)
print("Cipher Text", ys_ofb)

need this code in decription?