• 大小: 1.34M
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-10-01
  • 语言: C#
  • 标签: 其他  

资源简介

C#基于BouncyCastle.Crypto的SM2_3实现(导入即可用含标准).zip

资源截图

代码片段和文件信息

using Org.BouncyCastle.Crypto;
using Org.BouncyCastle.Crypto.Parameters;
using Org.BouncyCastle.Crypto.Generators;
using Org.BouncyCastle.Math;
using Org.BouncyCastle.Math.EC;
using Org.BouncyCastle.Security; //SecureRandom
using Org.BouncyCastle.Utilities.Encoders;
using System;
using System.Text;
using System.IO;

namespace SVSTestKit
{
    public class SM2Class
    {
        public readonly BigInteger ecc_p;
        public readonly BigInteger ecc_a;
        public readonly BigInteger ecc_b;
        public readonly BigInteger ecc_n;
        public readonly BigInteger ecc_gx;
        public readonly BigInteger ecc_gy;

        public readonly ECCurve ecc_curve;
        public readonly ECPoint ecc_point_g;

        public readonly ECDomainParameters ecc_bc_spec;

        public readonly ECKeyPairGenerator ecc_key_pair_generator;

        //SM2椭圆曲线公钥密码算法推荐曲线参数
        //正式参数 p a b n gx gy
        public readonly string[] formalparameter = 
        {
            “FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFF“
            “FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFC“
            “28E9FA9E9D9F5E344D5A9E4BCF6509A7F39789F515AB8F92DDBCBD414D940E93“
            “FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF7203DF6B21C6052B53BBF40939D54123“
            “32C4AE2C1F1981195F9904466A39C9948FE30BBFF2660BE1715A4589334C74C7“
            “BC3736A2F4F6779C59BDCEE36B692153D0A9877CC62A474002DF32E52139F0A0“
        };

        //测试参数 p a b n gx gy
        public readonly string[] testparameter = 
        {
            “8542D69E4C044F18E8B92435BF6FF7DE457283915C45517D722EDB8B08F1DFC3“
            “787968B4FA32C3FD2417842E73BBFEFF2F3C848B6831D7E0EC65228B3937E498“
            “63E4C6D3B23B0C849CF84241484BFE48F61D59A5B16BA06E6E12D1DA27C5249A“
            “8542D69E4C044F18E8B92435BF6FF7DD297720630485628D5AE74EE7C32E79B7“
            “421DEBD61B62EAB6746434EBC3CC315E32220B3BADD50BDC4C4E6C147FEDD43D“
            “0680512BCBB42C07D47349D2153B70C4E5D7FDFCBFA36EA1A85841B9E46E09A2“
        };

        public readonly string[] ecc_parameter = new string[6];

        public SM2Class()
        {
            //ecc_parameter = testparameter; //正式和测试参数调整点
            ecc_parameter = formalparameter; //正式和测试参数调整点
            //将16进制字符串转化为大整数
            ecc_p = new BigInteger(ecc_parameter[0] 16); //Fp域的规模、大于3的素数
            ecc_a = new BigInteger(ecc_parameter[1] 16); //Fp中两元素其中之一
            ecc_b = new BigInteger(ecc_parameter[2] 16); //Fp中两元素其中之一
            ecc_n = new BigInteger(ecc_parameter[3] 16); //基点G的阶、要求:大于2^191且大于4p^1/2
            ecc_gx = new BigInteger(ecc_parameter[4] 16);    //基点G的x坐标
            ecc_gy = new BigInteger(ecc_parameter[5] 16);    //基点G的y坐标


            //FpFieldElement(派生类): ECFieldElement(基类)
            ECFieldElement ecc_gx_fieldelement = new FpFieldElement(ecc_p ecc_gx); //定义EC字段元素,并通过p和gx赋值
            ECFieldElement ecc_gy_fieldeleme

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件      945731  2011-08-30 10:21  SM2椭圆曲线公钥密码算法.pdf
     文件       22552  2011-08-30 10:21  SM2椭圆曲线公钥密码算法推荐曲线参数.pdf
     文件      103677  2011-08-30 10:21  SM3密码杂凑算法.pdf
     文件       34987  2020-04-07 11:08  SMAPI.cs
     文件     1212416  2007-07-05 05:06  BouncyCastle.Crypto.dll

评论

共有 条评论