ToBigInteger() 공개 추상적인 메소드

public abstract ToBigInteger ( ) : BigInteger
리턴 BigInteger
예제 #1
0
 public virtual bool Equals(ECFieldElement other)
 {
     if (this == other)
         return true;
     if (null == other)
         return false;
     return ToBigInteger().Equals(other.ToBigInteger());
 }
예제 #2
0
        public override ECFieldElement SquarePlusProduct(ECFieldElement x, ECFieldElement y)
        {
            BigInteger ax = this.x, xx = x.ToBigInteger(), yx = y.ToBigInteger();
            BigInteger aa  = ax.Multiply(ax);
            BigInteger xy  = xx.Multiply(yx);
            BigInteger sum = aa.Add(xy);

            if (r != null && r.SignValue < 0 && sum.BitLength > (q.BitLength << 1))
            {
                sum = sum.Subtract(q.ShiftLeft(q.BitLength));
            }
            return(new FpFieldElement(q, r, ModReduce(sum)));
        }
예제 #3
0
        public override ECFieldElement MultiplyPlusProduct(ECFieldElement b, ECFieldElement x, ECFieldElement y)
        {
            BigInteger ax = this.x, bx = b.ToBigInteger(), xx = x.ToBigInteger(), yx = y.ToBigInteger();
            BigInteger ab  = ax.Multiply(bx);
            BigInteger xy  = xx.Multiply(yx);
            BigInteger sum = ab.Add(xy);

            if (this.r != null && this.r.SignValue < 0 && sum.BitLength > (this.q.BitLength << 1))
            {
                sum = sum.Subtract(this.q.ShiftLeft(this.q.BitLength));
            }
            return(new FpFieldElement(this.q, this.r, ModReduce(sum)));
        }
예제 #4
0
 public override ECFieldElement Divide(
     ECFieldElement b)
 {
     return(new FpFieldElement(q, r, ModMult(x, ModInverse(b.ToBigInteger()))));
 }
예제 #5
0
        public override ECFieldElement MultiplyMinusProduct(ECFieldElement b, ECFieldElement x, ECFieldElement y)
        {
            BigInteger ax = this.x, bx = b.ToBigInteger(), xx = x.ToBigInteger(), yx = y.ToBigInteger();
            BigInteger ab = ax.Multiply(bx);
            BigInteger xy = xx.Multiply(yx);

            return(new FpFieldElement(q, r, ModReduce(ab.Subtract(xy))));
        }
예제 #6
0
 public override ECFieldElement Multiply(
     ECFieldElement b)
 {
     return(new FpFieldElement(q, r, ModMult(x, b.ToBigInteger())));
 }
예제 #7
0
 public override ECFieldElement Subtract(
     ECFieldElement b)
 {
     return(new FpFieldElement(q, r, ModSubtract(x, b.ToBigInteger())));
 }
예제 #8
0
 public override ECFieldElement Add(
     ECFieldElement b)
 {
     return(new FpFieldElement(q, r, ModAdd(x, b.ToBigInteger())));
 }
예제 #9
0
		public override ECFieldElement SquarePlusProduct(ECFieldElement x, ECFieldElement y)
		{
			BigInteger ax = this.x, xx = x.ToBigInteger(), yx = y.ToBigInteger();
			BigInteger aa = ax.Multiply(ax);
			BigInteger xy = xx.Multiply(yx);
			BigInteger sum = aa.Add(xy);
			if(r != null && r.SignValue < 0 && sum.BitLength > (q.BitLength << 1))
			{
				sum = sum.Subtract(q.ShiftLeft(q.BitLength));
			}
			return new FpFieldElement(q, r, ModReduce(sum));
		}
예제 #10
0
		public override ECFieldElement SquareMinusProduct(ECFieldElement x, ECFieldElement y)
		{
			BigInteger ax = this.x, xx = x.ToBigInteger(), yx = y.ToBigInteger();
			BigInteger aa = ax.Multiply(ax);
			BigInteger xy = xx.Multiply(yx);
			return new FpFieldElement(q, r, ModReduce(aa.Subtract(xy)));
		}
예제 #11
0
		public override ECFieldElement Divide(
			ECFieldElement b)
		{
			return new FpFieldElement(q, r, ModMult(x, ModInverse(b.ToBigInteger())));
		}
예제 #12
0
		public override ECFieldElement MultiplyMinusProduct(ECFieldElement b, ECFieldElement x, ECFieldElement y)
		{
			BigInteger ax = this.x, bx = b.ToBigInteger(), xx = x.ToBigInteger(), yx = y.ToBigInteger();
			BigInteger ab = ax.Multiply(bx);
			BigInteger xy = xx.Multiply(yx);
			return new FpFieldElement(q, r, ModReduce(ab.Subtract(xy)));
		}
예제 #13
0
		public override ECFieldElement Multiply(
			ECFieldElement b)
		{
			return new FpFieldElement(q, r, ModMult(x, b.ToBigInteger()));
		}
예제 #14
0
		public override ECFieldElement Subtract(
			ECFieldElement b)
		{
			return new FpFieldElement(q, r, ModSubtract(x, b.ToBigInteger()));
		}
예제 #15
0
		public override ECFieldElement Add(
			ECFieldElement b)
		{
			return new FpFieldElement(q, r, ModAdd(x, b.ToBigInteger()));
		}
예제 #16
0
 public override ECFieldElement Add(
     ECFieldElement b)
 {
     return(new FpFieldElement(this.q, this.r, ModAdd(this.x, b.ToBigInteger())));
 }