def BSGB(g,b,p):
N=p-1
m=floor(sqrt(N))+1
B=[]
G=[]
B.append(1)
for j in range(1,m):
B.append(power_mod(g,j,p))
p2 = power_mod(g,m,p)
for j in range(0,m-1):
tempVal = b* power_mod(p2,-j,p) % p
for i in range(len(B)):
if(tempVal == B[i]):
return (i+(m*j)) % (p-1)
print("ERROR: didn't find private key")
return -1