Kryptografia/miniprojekt2/dodawnaie.py

22 lines
673 B
Python

import sys, random
sys.path.append("../")
import functions.functions as fn
def dodawanie(punkt1, punkt2, p):
if punkt1 == None:
return punkt2
if punkt2 == None:
return punkt1
l = ((punkt2[1] - punkt1[1]) * fn.odwrotnosc(punkt2[0] - punkt1[1], p) ) % p
x3 = (fn.potegowanieimod(l, 2, p) - punkt2[0] - punkt1[0]) % p
y3 = (l * (punkt1[0] - x3) - punkt1[1] ) % p
return (x3, y3)
def podwojny(punkt, a, p):
l = ((3 * fn.potegowanieimod(punkt[0], 2, p) + a) * fn.odwrotnosc(2 * punkt[1], p) ) % p
x3 = (fn.potegowanieimod(l, 2, p) - (2 * punkt[0])) % p
y3 = ((l * (punkt[0] - x3)) - punkt[1] ) % p
return (x3, y3)