예제 #1
0
def DoublevisionH_e(m, k, p, C):
    y = (m + k) % p
    for C_i in C:
        m = powmod((m + C_i) % p, 5, p)
        k = powmod((k + y) % p, 5, p)
        y = (m + k) % p
    return y
def DoublevisionH_x(m, k, p, C, r=4):
	y = 0
	for i in range(0, r):
		y = (m * k) % p
		m = powmod(m + y, 5, p) % p 
		k = powmod(k + C[i], 5, p) % p
	return y
예제 #3
0
def DoublevisionH_j(m, p, r, k):
	y = 0
	for i in range(0, r):
		y = (m * k) % p
		m = powmod(m + C[i * 2], 5, p)
		k = (powmod((k + C[(i * 2) + 1]) % p, 5, p) * m) % p
	return y
def DoublevisionH_xxy(k, m, p, C, r=5):
	y = 0
	for i in range(0, r):
		m = powmod((m + C[(2*i)]) % p, 5, p)
		k = powmod((k + C[(2*i)+1]) % p, 5, p) + m
	y = (m * k) % p
	return y
def DoublevisionH_e(m, k, p, C, r=4):
	y = (m + k) % p
	for i in range(0, r):
		m = powmod((m + C[i]) % p, 5, p)
		k = powmod((k + y) % p, 5, p)
		y = (m + k) % p
	return y
예제 #6
0
def DoublevisionH_xx(k, p, r=5):
	m = r
	y = 0
	for i in range(0, r):
		y = (m + k) % p
		m = powmod((m + C[i]) % p, 5, p)
		k = (powmod((k + y) % p, 5, p)) % p
	return y
예제 #7
0
def DoublevisionH_ex(k, p, r=5):
	m = k
	y = 0
	for i in range(0, r):
		y = (m * k) % p
		m = powmod((m + C[i]) % p, 5, p)
		k = powmod((k + y) % p, 5, p) * m
	return y
예제 #8
0
def DoublevisionH_e(k, p, r=5):
	m = p-r
	y = 0
	for i in range(0, r):
		y = (m + k) % p
		m = powmod((m + C[i]) % p, 5, p)
		k = powmod((k + y) % p, 5, p)
	return y
예제 #9
0
def DoublevisionM(n, p):
	a = n
	b = n
	for i in range(0, 4):
		y = (a + b) % p
		a = powmod((a + C[(i * 2)]) % p, 5, p)
		b = powmod((b + C[(i * 2) + 1]) % p, 5, p) + y % p
	return a
def DoublevisionM(x_L, x_R, p, C, r=4):
	a = x_L
	b = x_R
	for i in range(0, r):
		y = (a + b) % p
		a = powmod((a + C[(i * 2)]) % p, 5, p)
		b = powmod((b + C[(i * 2) + 1]) % p, 5, p) + y % p
	return a
def DoublevisionH_i(m, k, p, C, r=4):
	y = 0
	e = 5
	for i in range(0, r):
		y = (m + k) % p
		m = (powmod((m + C[(2*i)]) % p, e, p) + y) % p
		k = (powmod((k + C[(2*i)+1]) % p, e, p) + y) % p
	return y
예제 #12
0
def DoublevisionL(n, p):
	for i in range(0, 10):
		n = powmod((n + C[(i * 2)]) % p, 5, p) % p
	return n