kryptografia-semestr-8/hmac.py

36 lines
728 B
Python

def gcm_add(x, y):
return x ^ y
def gcm_multiply(x, y, poly):
z = 0
for _ in range(poly.bit_length()):
if y & 1:
z ^= x
hi_bit_set = x & (1 << poly.bit_length() - 1)
x <<= 1
if hi_bit_set:
x ^= poly
y >>= 1
return z
def incr(x):
y=1%(2^32)
wyn = x+y
if wyn >= 2^32:
wyn=1%(2^32)
return wyn
a = 0b0001
b = 0b0101
print(a,b)
print(bin(a),bin(b))
polynomial = 0xE1000000000000000000000000000000
result = gcm_multiply(a, b, polynomial)
print("GCM Multiplication Result:", bin(result))
result = gcm_add(a, b)
print("GCM Addition Result:", bin(result))
print(incr(1))
print(incr((2^32)-1))