import sys sys.path.append("./") import krzywa as krz import punkt as pt import dodawnaie as dod import wielokrotnosc as wiel #Losowa krzywa E : Y=X^3+AX+B mod p, gdzie p=523133468360889049404922330981983268743289535618129665870465316487757998439707462631766351 A=230494833619330872742071433259892253887918924949625621075110348455162899582640562756609713 B=225785530019760328737805254637561350820485164307786402015943227616074411698429350907607751 krzywa = (A, B, p) #Losowe punkty na krzywej E #P=(x1,y1), Q=(x2,y2) x1 =175757722742565321624944121270945167081993085306911405305303187535900979958321560252348498 y1 =226448623369642016063981880559768023550784441813507797884241707518308435413329534175311217 P = (x1, y1) x2 =304223499801180221986968767003559465876563746859119614741554413137259445936662302970066936 y2 =102134142598989436206400710402192938770351951638395982416611953688718767254279072458296380 Q = (x2, y2) #Punkt -P=(x0,y0), gdzie x0=175757722742565321624944121270945167081993085306911405305303187535900979958321560252348498 y0=296684844991247033340940450422215245192505093804621867986223608969449563026377928456455134 #Suma punktów R=P+Q, R=(x3,y3), gdzie x3=309247913243722349735615105023317652942369780988859181257617047802708085926167159989635057 y3=56286298341270122874863929527351508051302994910793895678502472234843432931564818467195330 dodawanie = dod.dodawanie(P, Q, p) print("\nDodawanie: {}\n".format(dodawanie)) #Suma punktów S=P+P, S=(x4,y4), gdzie x4=375245993831373348008207650671056348586612193401076181864749537869098009498477401148713884 y4=87341294615819365102301001172231285456917076241094217329360106978400409261563949100144039 podwojny = dod.podwojny(P, A, p) print("\nPodwójny: {}\n".format(podwojny)) #Suma punktów T=P+(-P), T={O}. #Obliczenie U=nP, U(x5,y5), gdzie n=4879347923749729479274728427486284684682648644 x5=376727840283116089359770933229860138351592734853415435564325838098166315053389243324176492 y5=141067337441924393425295138662462090300703204905331212701080956044508288466652141335161785 wielokrotnosc = wiel.wielokrotnosc(krzywa, P, n) print("\nWielokrotność: {}\n".format(wielokrotnosc))