Kryptografia/miniprojekt2/zaliczenie.py

40 lines
1.4 KiB
Python

#Tylko deszyfrowanie ElGammal na krzywej
import math
import sys
sys.path.append("./")
import dodawnaie as dod
import wielokrotnosc as wiel
def dekodowanieKrzywej(punkt, u):
return math.ceil(punkt[0] - 1 / u)
p=731308150714321957849734816484321327119306335527666142772981103429614098294367916616192051
A=650436649561455070461892045239297273810338327060582149067290109178304889026764087827222303
B=393651706462824198277343570733362683428089922651104369418553164436556395018275495301846803
#C1=(x3,y3);
#C2=(x4,y4);
x3=34791770906820122752501140104306036053164090009865871144108139346780277134807427702262028
y3=21066589872392983967815591132354523605031924537129956532523648621530097883764976935325171
x4=186698539519726941523101574150863594380763252545073110418528772061794171311499124283340359
y4=139702463401317072232031962287250501182328856243084829793001376804676448040153050195056294
x=672066757942005027592684629780121319559766320138386156339177050193566909314907208798471016
#PM=(x5,y5)
x5=161527769144648125516616552305430215523209938960948885119763789863298885352623739933340770
y5=535388071375765111892419320980278561695403441127487734617482964160721504503181645564425574
c1 = (x3, y3)
c2 = (x4, y4)
krzywa = (A, B, p)
wielokrotność = wiel.wielokrotnosc(krzywa, c1, x)
przeciwny = dod.przeciwny(wielokrotność, p)
pm = dod.dodawanie(c2, przeciwny, krzywa)
print(pm)
#m = dekodowanieKrzywej(pm, )