Exemplo n.º 1
0
            protected override X9ECParameters CreateParameters()
            {
                byte[] S   = null;
                var    glv = new GlvTypeBParameters(
                    new BigInteger("7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee", 16),
                    new BigInteger("5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72", 16),
                    new[]
                {
                    new BigInteger("3086d221a7d46bcde86c90e49284eb15", 16),
                    new BigInteger("-e4437ed6010e88286f547fa90abfe4c3", 16)
                },
                    new[]
                {
                    new BigInteger("114ca50f7a8e2f3f657c1108d9d44cfd8", 16),
                    new BigInteger("3086d221a7d46bcde86c90e49284eb15", 16)
                },
                    new BigInteger("3086d221a7d46bcde86c90e49284eb153dab", 16),
                    new BigInteger("e4437ed6010e88286f547fa90abfe4c42212", 16),
                    272);
                var curve = ConfigureCurveGlv(new SecP256K1Curve(), glv);
                var G     = new X9ECPoint(curve, Hex.Decode("04"
                                                            + "79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798"
                                                            + "483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8"));

                return(new X9ECParameters(curve, G, curve.Order, curve.Cofactor, S));
            }
            protected override X9ECParameters CreateParameters()
            {
                byte[]             seed          = null;
                BigInteger[]       integerArray1 = new BigInteger[] { new BigInteger("6b8cf07d4ca75c88957d9d670591", 0x10), new BigInteger("-b8adf1378a6eb73409fa6c9c637d", 0x10) };
                BigInteger[]       integerArray2 = new BigInteger[] { new BigInteger("1243ae1b4d71613bc9f780a03690e", 0x10), new BigInteger("6b8cf07d4ca75c88957d9d670591", 0x10) };
                GlvTypeBParameters p             = new GlvTypeBParameters(new BigInteger("fe0e87005b4e83761908c5131d552a850b3f58b749c37cf5b84d6768", 0x10), new BigInteger("60dcd2104c4cbc0be6eeefc2bdd610739ec34e317f9b33046c9e4788", 0x10), integerArray1, integerArray2, new BigInteger("6b8cf07d4ca75c88957d9d67059037a4", 0x10), new BigInteger("b8adf1378a6eb73409fa6c9c637ba7f5", 0x10), 240);
                ECCurve            curve         = CustomNamedCurves.ConfigureCurveGlv(new SecP224K1Curve(), p);

                return(new X9ECParameters(curve, new X9ECPoint(curve, Hex.Decode("04A1455B334DF099DF30FC28A169A467E9E47075A90F7E650EB6B7A45C7E089FED7FBA344282CAFBD6F7E319F7C0B0BD59E2CA4BDB556D61A5")), curve.Order, curve.Cofactor, seed));
            }
            protected override X9ECParameters CreateParameters()
            {
                byte[]             seed          = null;
                BigInteger[]       integerArray1 = new BigInteger[] { new BigInteger("71169be7330b3038edb025f1", 0x10), new BigInteger("-b3fb3400dec5c4adceb8655c", 0x10) };
                BigInteger[]       integerArray2 = new BigInteger[] { new BigInteger("12511cfe811d0f4e6bc688b4d", 0x10), new BigInteger("71169be7330b3038edb025f1", 0x10) };
                GlvTypeBParameters p             = new GlvTypeBParameters(new BigInteger("bb85691939b869c1d087f601554b96b80cb4f55b35f433c2", 0x10), new BigInteger("3d84f26c12238d7b4f3d516613c1759033b1a5800175d0b1", 0x10), integerArray1, integerArray2, new BigInteger("71169be7330b3038edb025f1d0f9", 0x10), new BigInteger("b3fb3400dec5c4adceb8655d4c94", 0x10), 0xd0);
                ECCurve            curve         = CustomNamedCurves.ConfigureCurveGlv(new SecP192K1Curve(), p);

                return(new X9ECParameters(curve, new X9ECPoint(curve, Hex.Decode("04DB4FF10EC057E9AE26B07D0280B7F4341DA5D1B1EAE06C7D9B2F2F6D9C5628A7844163D015BE86344082AA88D95E2F9D")), curve.Order, curve.Cofactor, seed));
            }
            protected override X9ECParameters CreateParameters()
            {
                byte[]             seed          = null;
                BigInteger[]       integerArray1 = new BigInteger[] { new BigInteger("9162fbe73984472a0a9e", 0x10), new BigInteger("-96341f1138933bc2f505", 0x10) };
                BigInteger[]       integerArray2 = new BigInteger[] { new BigInteger("127971af8721782ecffa3", 0x10), new BigInteger("9162fbe73984472a0a9e", 0x10) };
                GlvTypeBParameters p             = new GlvTypeBParameters(new BigInteger("9ba48cba5ebcb9b6bd33b92830b2a2e0e192f10a", 0x10), new BigInteger("c39c6c3b3a36d7701b9c71a1f5804ae5d0003f4", 0x10), integerArray1, integerArray2, new BigInteger("9162fbe73984472a0a9d0590", 0x10), new BigInteger("96341f1138933bc2f503fd44", 0x10), 0xb0);
                ECCurve            curve         = CustomNamedCurves.ConfigureCurveGlv(new SecP160K1Curve(), p);

                return(new X9ECParameters(curve, new X9ECPoint(curve, Hex.Decode("043B4C382CE37AA192A4019E763036F4F5DD4D7EBB938CF935318FDCED6BC28286531733C3F03C4FEE")), curve.Order, curve.Cofactor, seed));
            }
Exemplo n.º 5
0
            protected override X9ECParameters CreateParameters()
            {
                BigInteger q    = SecNamedCurves.FromHex("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F");
                BigInteger zero = BigInteger.Zero;
                BigInteger b    = BigInteger.ValueOf(7L);

                byte[]     seed  = null;
                BigInteger order = SecNamedCurves.FromHex("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141");
                BigInteger one   = BigInteger.One;

                BigInteger[]       integerArray1 = new BigInteger[] { new BigInteger("3086d221a7d46bcde86c90e49284eb15", 0x10), new BigInteger("-e4437ed6010e88286f547fa90abfe4c3", 0x10) };
                BigInteger[]       integerArray2 = new BigInteger[] { new BigInteger("114ca50f7a8e2f3f657c1108d9d44cfd8", 0x10), new BigInteger("3086d221a7d46bcde86c90e49284eb15", 0x10) };
                GlvTypeBParameters p             = new GlvTypeBParameters(new BigInteger("7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee", 0x10), new BigInteger("5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72", 0x10), integerArray1, integerArray2, new BigInteger("3086d221a7d46bcde86c90e49284eb153dab", 0x10), new BigInteger("e4437ed6010e88286f547fa90abfe4c42212", 0x10), 0x110);
                ECCurve            curve         = SecNamedCurves.ConfigureCurveGlv(new FpCurve(q, zero, b, order, one), p);

                return(new X9ECParameters(curve, new X9ECPoint(curve, Hex.Decode("0479BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8")), order, one, seed));
            }
Exemplo n.º 6
0
            protected override X9ECParameters CreateParameters()
            {
                BigInteger q    = SecNamedCurves.FromHex("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFE56D");
                BigInteger zero = BigInteger.Zero;
                BigInteger b    = BigInteger.ValueOf(5L);

                byte[]     seed  = null;
                BigInteger order = SecNamedCurves.FromHex("010000000000000000000000000001DCE8D2EC6184CAF0A971769FB1F7");
                BigInteger one   = BigInteger.One;

                BigInteger[]       integerArray1 = new BigInteger[] { new BigInteger("6b8cf07d4ca75c88957d9d670591", 0x10), new BigInteger("-b8adf1378a6eb73409fa6c9c637d", 0x10) };
                BigInteger[]       integerArray2 = new BigInteger[] { new BigInteger("1243ae1b4d71613bc9f780a03690e", 0x10), new BigInteger("6b8cf07d4ca75c88957d9d670591", 0x10) };
                GlvTypeBParameters p             = new GlvTypeBParameters(new BigInteger("fe0e87005b4e83761908c5131d552a850b3f58b749c37cf5b84d6768", 0x10), new BigInteger("60dcd2104c4cbc0be6eeefc2bdd610739ec34e317f9b33046c9e4788", 0x10), integerArray1, integerArray2, new BigInteger("6b8cf07d4ca75c88957d9d67059037a4", 0x10), new BigInteger("b8adf1378a6eb73409fa6c9c637ba7f5", 0x10), 240);
                ECCurve            curve         = SecNamedCurves.ConfigureCurveGlv(new FpCurve(q, zero, b, order, one), p);

                return(new X9ECParameters(curve, new X9ECPoint(curve, Hex.Decode("04A1455B334DF099DF30FC28A169A467E9E47075A90F7E650EB6B7A45C7E089FED7FBA344282CAFBD6F7E319F7C0B0BD59E2CA4BDB556D61A5")), order, one, seed));
            }
Exemplo n.º 7
0
            protected override X9ECParameters CreateParameters()
            {
                BigInteger q    = SecNamedCurves.FromHex("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFEE37");
                BigInteger zero = BigInteger.Zero;
                BigInteger b    = BigInteger.ValueOf(3L);

                byte[]     seed  = null;
                BigInteger order = SecNamedCurves.FromHex("FFFFFFFFFFFFFFFFFFFFFFFE26F2FC170F69466A74DEFD8D");
                BigInteger one   = BigInteger.One;

                BigInteger[]       integerArray1 = new BigInteger[] { new BigInteger("71169be7330b3038edb025f1", 0x10), new BigInteger("-b3fb3400dec5c4adceb8655c", 0x10) };
                BigInteger[]       integerArray2 = new BigInteger[] { new BigInteger("12511cfe811d0f4e6bc688b4d", 0x10), new BigInteger("71169be7330b3038edb025f1", 0x10) };
                GlvTypeBParameters p             = new GlvTypeBParameters(new BigInteger("bb85691939b869c1d087f601554b96b80cb4f55b35f433c2", 0x10), new BigInteger("3d84f26c12238d7b4f3d516613c1759033b1a5800175d0b1", 0x10), integerArray1, integerArray2, new BigInteger("71169be7330b3038edb025f1d0f9", 0x10), new BigInteger("b3fb3400dec5c4adceb8655d4c94", 0x10), 0xd0);
                ECCurve            curve         = SecNamedCurves.ConfigureCurveGlv(new FpCurve(q, zero, b, order, one), p);

                return(new X9ECParameters(curve, new X9ECPoint(curve, Hex.Decode("04DB4FF10EC057E9AE26B07D0280B7F4341DA5D1B1EAE06C7D9B2F2F6D9C5628A7844163D015BE86344082AA88D95E2F9D")), order, one, seed));
            }
Exemplo n.º 8
0
            protected override X9ECParameters CreateParameters()
            {
                BigInteger q    = SecNamedCurves.FromHex("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFAC73");
                BigInteger zero = BigInteger.Zero;
                BigInteger b    = BigInteger.ValueOf(7L);

                byte[]     seed  = null;
                BigInteger order = SecNamedCurves.FromHex("0100000000000000000001B8FA16DFAB9ACA16B6B3");
                BigInteger one   = BigInteger.One;

                BigInteger[]       integerArray1 = new BigInteger[] { new BigInteger("9162fbe73984472a0a9e", 0x10), new BigInteger("-96341f1138933bc2f505", 0x10) };
                BigInteger[]       integerArray2 = new BigInteger[] { new BigInteger("127971af8721782ecffa3", 0x10), new BigInteger("9162fbe73984472a0a9e", 0x10) };
                GlvTypeBParameters p             = new GlvTypeBParameters(new BigInteger("9ba48cba5ebcb9b6bd33b92830b2a2e0e192f10a", 0x10), new BigInteger("c39c6c3b3a36d7701b9c71a1f5804ae5d0003f4", 0x10), integerArray1, integerArray2, new BigInteger("9162fbe73984472a0a9d0590", 0x10), new BigInteger("96341f1138933bc2f503fd44", 0x10), 0xb0);
                ECCurve            curve         = SecNamedCurves.ConfigureCurveGlv(new FpCurve(q, zero, b, order, one), p);

                return(new X9ECParameters(curve, new X9ECPoint(curve, Hex.Decode("043B4C382CE37AA192A4019E763036F4F5DD4D7EBB938CF935318FDCED6BC28286531733C3F03C4FEE")), order, one, seed));
            }
        /// <summary>
        ///     Create a new instance of the custom-implementation F(<sub>p</sub>) curve information class,
        ///     CustomFpEcNamedCurveInformation.
        /// </summary>
        /// <param name="curve">Custom curve function.</param>
        /// <param name="glvParams">GLV endomorphism parameters, if any.</param>
        public CustomFpEcCurveInformation(Func <ECCurve> curve, GlvTypeBParameters glvParams = null)
        {
            Field         = CurveField.Fp;
            GlvParameters = glvParams;

            if (GlvParameters != null)
            {
                CurveFunc = () => {
                    ECCurve c = curve();
                    c.Configure().SetEndomorphism(new GlvTypeBEndomorphism(c, GlvParameters)).Create();
                    return(c);
                };
            }
            else
            {
                CurveFunc = curve;
            }
        }
Exemplo n.º 10
0
            protected override X9ECParameters CreateParameters()
            {
                byte[]             S   = null;
                GlvTypeBParameters glv = new GlvTypeBParameters(
                    new BigInteger("bb85691939b869c1d087f601554b96b80cb4f55b35f433c2", 16),
                    new BigInteger("3d84f26c12238d7b4f3d516613c1759033b1a5800175d0b1", 16),
                    new BigInteger[] {
                    new BigInteger("71169be7330b3038edb025f1", 16),
                    new BigInteger("-b3fb3400dec5c4adceb8655c", 16)
                },
                    new BigInteger[] {
                    new BigInteger("12511cfe811d0f4e6bc688b4d", 16),
                    new BigInteger("71169be7330b3038edb025f1", 16)
                },
                    new BigInteger("71169be7330b3038edb025f1d0f9", 16),
                    new BigInteger("b3fb3400dec5c4adceb8655d4c94", 16),
                    208);
                ECCurve   curve = ConfigureCurveGlv(new SecP192K1Curve(), glv);
                X9ECPoint G     = new X9ECPoint(curve, Hex.Decode("04"
                                                                  + "DB4FF10EC057E9AE26B07D0280B7F4341DA5D1B1EAE06C7D"
                                                                  + "9B2F2F6D9C5628A7844163D015BE86344082AA88D95E2F9D"));

                return(new X9ECParameters(curve, G, curve.Order, curve.Cofactor, S));
            }
Exemplo n.º 11
0
            protected override X9ECParameters CreateParameters()
            {
                byte[]             S   = null;
                GlvTypeBParameters glv = new GlvTypeBParameters(
                    new BigInteger("9ba48cba5ebcb9b6bd33b92830b2a2e0e192f10a", 16),
                    new BigInteger("c39c6c3b3a36d7701b9c71a1f5804ae5d0003f4", 16),
                    new BigInteger[] {
                    new BigInteger("9162fbe73984472a0a9e", 16),
                    new BigInteger("-96341f1138933bc2f505", 16)
                },
                    new BigInteger[] {
                    new BigInteger("127971af8721782ecffa3", 16),
                    new BigInteger("9162fbe73984472a0a9e", 16)
                },
                    new BigInteger("9162fbe73984472a0a9d0590", 16),
                    new BigInteger("96341f1138933bc2f503fd44", 16),
                    176);
                ECCurve   curve = ConfigureCurveGlv(new SecP160K1Curve(), glv);
                X9ECPoint G     = new X9ECPoint(curve, Hex.Decode("04"
                                                                  + "3B4C382CE37AA192A4019E763036F4F5DD4D7EBB"
                                                                  + "938CF935318FDCED6BC28286531733C3F03C4FEE"));

                return(new X9ECParameters(curve, G, curve.Order, curve.Cofactor, S));
            }
Exemplo n.º 12
0
            protected override X9ECParameters CreateParameters()
            {
                byte[]             S   = null;
                GlvTypeBParameters glv = new GlvTypeBParameters(
                    new BigInteger("fe0e87005b4e83761908c5131d552a850b3f58b749c37cf5b84d6768", 16),
                    new BigInteger("60dcd2104c4cbc0be6eeefc2bdd610739ec34e317f9b33046c9e4788", 16),
                    new BigInteger[] {
                    new BigInteger("6b8cf07d4ca75c88957d9d670591", 16),
                    new BigInteger("-b8adf1378a6eb73409fa6c9c637d", 16)
                },
                    new BigInteger[] {
                    new BigInteger("1243ae1b4d71613bc9f780a03690e", 16),
                    new BigInteger("6b8cf07d4ca75c88957d9d670591", 16)
                },
                    new BigInteger("35c6783ea653ae444abeceb382c82", 16),
                    new BigInteger("5c56f89bc5375b9a04fd364e31bdd", 16),
                    227);
                ECCurve curve = ConfigureCurveGlv(new SecP224K1Curve(), glv);
                ECPoint G     = curve.DecodePoint(Hex.Decode("04"
                                                             + "A1455B334DF099DF30FC28A169A467E9E47075A90F7E650EB6B7A45C"
                                                             + "7E089FED7FBA344282CAFBD6F7E319F7C0B0BD59E2CA4BDB556D61A5"));

                return(new X9ECParameters(curve, G, curve.Order, curve.Cofactor, S));
            }
Exemplo n.º 13
0
            protected override X9ECParameters CreateParameters()
            {
                byte[]             S   = null;
                GlvTypeBParameters glv = new GlvTypeBParameters(
                    new BigInteger("fe0e87005b4e83761908c5131d552a850b3f58b749c37cf5b84d6768", 16),
                    new BigInteger("60dcd2104c4cbc0be6eeefc2bdd610739ec34e317f9b33046c9e4788", 16),
                    new ScalarSplitParameters(
                        new BigInteger[] {
                    new BigInteger("6b8cf07d4ca75c88957d9d670591", 16),
                    new BigInteger("-b8adf1378a6eb73409fa6c9c637d", 16)
                },
                        new BigInteger[] {
                    new BigInteger("1243ae1b4d71613bc9f780a03690e", 16),
                    new BigInteger("6b8cf07d4ca75c88957d9d670591", 16)
                },
                        new BigInteger("6b8cf07d4ca75c88957d9d67059037a4", 16),
                        new BigInteger("b8adf1378a6eb73409fa6c9c637ba7f5", 16),
                        240));
                ECCurve   curve = ConfigureCurveGlv(new SecP224K1Curve(), glv);
                X9ECPoint G     = ConfigureBasepoint(curve,
                                                     "04A1455B334DF099DF30FC28A169A467E9E47075A90F7E650EB6B7A45C7E089FED7FBA344282CAFBD6F7E319F7C0B0BD59E2CA4BDB556D61A5");

                return(new X9ECParameters(curve, G, curve.Order, curve.Cofactor, S));
            }
Exemplo n.º 14
0
 public GlvTypeBEndomorphism(ECCurve curve, GlvTypeBParameters parameters)
 {
     this.m_curve      = curve;
     this.m_parameters = parameters;
     this.m_pointMap   = new ScaleXPointMap(curve.FromBigInteger(parameters.Beta));
 }
Exemplo n.º 15
0
 private static ECCurve ConfigureCurveGlv(ECCurve c, GlvTypeBParameters p)
 {
     return(c.Configure().SetEndomorphism(new GlvTypeBEndomorphism(c, p)).Create());
 }