40 lines
1.4 KiB
Python
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, ) |