import random
from Crypto.Util.number import *
p = 2150
H = 2314
pkey = 892 # found through find_pkey()  pkey^2 ≡ H (mod p) holds
c = 1353
t = 517
s = 483 # found through find_s() 

def find_s():
    for k in range(1000):
        s = ((c - t) * pkey + p * k) / H
        if(s == int(round(s))):
            print(s)

def find_pkey():
    for i in range (1000):
        if H % p == i**2 % p:
            print(i)

# Tests:
print((c-t) % p == s * pkey % p)
print((c-t) * inverse(pkey,p) % p == s % p)
print((c-t) * inverse(pkey,p) % p)
print(s % p)
print(math.gcd(pkey, p))