C# 클래스 Granados.PKI.EllipticCurveFp

Elliptic curve domain parameters over Fp
상속: EllipticCurve
파일 보기 프로젝트 열기: poderosaproject/poderosa 1 사용 예제들

공개 프로퍼티들

프로퍼티 타입 설명
G ECPoint
a Granados.Mono.Math.BigInteger
b Granados.Mono.Math.BigInteger
h Granados.Mono.Math.BigInteger
n Granados.Mono.Math.BigInteger
p Granados.Mono.Math.BigInteger

공개 메소드들

메소드 설명
EllipticCurveFp ( PublicKeyAlgorithm algorithm, string curveName, BigInteger p, BigInteger a, BigInteger b, ECPoint G, BigInteger n, BigInteger h ) : Granados.Crypto

Constructor

PointAdd ( ECPoint t1, ECPoint t2, bool infinityToNull ) : ECPoint

Calculate point addition

PointMul ( BigInteger k1, BigInteger k2, ECPoint t, bool infinityToNull ) : ECPoint

Calculate point multiplication

PointMul ( BigInteger k, ECPoint t, bool infinityToNull ) : ECPoint

Calculate point multiplication

ValidatePoint ( BigInteger x, BigInteger y ) : bool

Validate if the point satisfies the equation of the elliptic curve.

비공개 메소드들

메소드 설명
PointAdd ( BigInteger ring, ECPoint p1, ECPoint p2, ECPoint &p3 ) : bool

Point addition over the curve

PointDouble ( BigInteger ring, ECPoint p1, ECPoint &p3 ) : bool

Point dooubling over the curve

PointMul ( BigInteger ring, ECPoint p1, BigInteger k, ECPoint &p2 ) : bool

Point multiplication over the curve

메소드 상세

EllipticCurveFp() 공개 메소드

Constructor
public EllipticCurveFp ( PublicKeyAlgorithm algorithm, string curveName, BigInteger p, BigInteger a, BigInteger b, ECPoint G, BigInteger n, BigInteger h ) : Granados.Crypto
algorithm PublicKeyAlgorithm public key algorithm which uses this curve
curveName string curve name
p Granados.Mono.Math.BigInteger odd prime
a Granados.Mono.Math.BigInteger curve parameter
b Granados.Mono.Math.BigInteger curve parameter
G ECPoint base point
n Granados.Mono.Math.BigInteger order n of G
h Granados.Mono.Math.BigInteger cofactor
리턴 Granados.Crypto

PointAdd() 공개 메소드

Calculate point addition
public PointAdd ( ECPoint t1, ECPoint t2, bool infinityToNull ) : ECPoint
t1 ECPoint point
t2 ECPoint point
infinityToNull bool /// if result was point-at-infinity, and this parameter was true, /// null is returned instead of . ///
리턴 ECPoint

PointMul() 공개 메소드

Calculate point multiplication
public PointMul ( BigInteger k1, BigInteger k2, ECPoint t, bool infinityToNull ) : ECPoint
k1 Granados.Mono.Math.BigInteger scalar
k2 Granados.Mono.Math.BigInteger scalar
t ECPoint point
infinityToNull bool /// if result was point-at-infinity, and this parameter was true, /// null is returned instead of . ///
리턴 ECPoint

PointMul() 공개 메소드

Calculate point multiplication
public PointMul ( BigInteger k, ECPoint t, bool infinityToNull ) : ECPoint
k Granados.Mono.Math.BigInteger scalar
t ECPoint point
infinityToNull bool /// if result was point-at-infinity, and this parameter was true, /// null is returned instead of . ///
리턴 ECPoint

ValidatePoint() 공개 메소드

Validate if the point satisfies the equation of the elliptic curve.
public ValidatePoint ( BigInteger x, BigInteger y ) : bool
x Granados.Mono.Math.BigInteger value of X
y Granados.Mono.Math.BigInteger value of Y
리턴 bool

프로퍼티 상세

G 공개적으로 프로퍼티

Base point
public ECPoint G
리턴 ECPoint

a 공개적으로 프로퍼티

Curve parameter
public BigInteger,Granados.Mono.Math a
리턴 Granados.Mono.Math.BigInteger

b 공개적으로 프로퍼티

Curve parameter
public BigInteger,Granados.Mono.Math b
리턴 Granados.Mono.Math.BigInteger

h 공개적으로 프로퍼티

Cofactor
public BigInteger,Granados.Mono.Math h
리턴 Granados.Mono.Math.BigInteger

n 공개적으로 프로퍼티

Order n of G
public BigInteger,Granados.Mono.Math n
리턴 Granados.Mono.Math.BigInteger

p 공개적으로 프로퍼티

Odd prime
public BigInteger,Granados.Mono.Math p
리턴 Granados.Mono.Math.BigInteger