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?