Kryptografia/miniprojekt2/weryfikacja.py

49 lines
2.1 KiB
Python

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))