ecc curve generation

https://www.johannes-bauer.com/compsci/ecc/#anchor17

 

A very powerful math libary on-line

http://sagecell.sagemath.org/

 

 

 

 

转至元数据结尾

转至元数据起始

 

SM2 Standard

 

sm2_standard

•a=FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000000 FFFFFFFF FFFFFFFC

•b=28E9FA9E 9D9F5E34 4D5A9E4B CF6509A7 F39789F5 15AB8F92 DDBCBD41 4D940E93

 

SM2  SW(O)

sm2_osr_sw

•a=FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000000 FFFFFFFF FFFFFFFC

•b=28E9FA9E 9D9F5E34 4D5A9E4B CF6509A7 F39789F5 15AB8F92 DDBCBD41 4D940E93

•//OSR SM2 Parameters, little endian for word order, LSB is in A[0]

•U32 SM2P_a[8]   ={0xFFFFFFFC,0xFFFFFFFF,0x00000000,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFE};

•U32 SM2P_b[8]   ={0x4D940E93,0xDDBCBD41,0x15AB8F92,0xF39789F5,0xCF6509A7,0x4D5A9E4B,0x9D9F5E34,0x28E9FA9E};

 

 

gmssl curve data

gmssl curve data

•a=FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000000 FFFFFFFF FFFFFFFC

•b=28E9FA9E 9D9F5E34 4D5A9E4B CF6509A7 F39789F5 15AB8F92 DDBCBD41 4D940E93

•//gmssl curve data, byte stream order

• {0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC}, // A

•  {0x28,0xE9,0xFA,0x9E,0x9D,0x9F,0x5E,0x34,0x4D,0x5A,0x9E,0x4B,0xCF,0x65,0x09,0xA7,0xF3,0x97,0x89,0xF5,0x15,0xAB,0x8F,0x92,0xDD,0xBC,0xBD,0x41,0x4D,0x94,0x0E,0x93}, // B

 

 

Gmssl software BIGNUM  64bits/8Byte

gmssl software BN

struct bignum_st {  

•    BN_ULONG *d;                /* Pointer to an array of 'BN_BITS2' bit

•                                 * chunks. */

•    int top;                    /* Index of last used d +1. */

•    /* The next are internal book keeping for bn_expand. */

•    int dmax;                   /* Size of the d array. */

•    int neg;                    /* one if the number is negative */

•    int flags;

•};

•curve b=28E9FA9E 9D9F5E34 4D5A9E4B CF6509A7 F39789F5 15AB8F92 DDBCBD41 4D940E93

 

 

 

•a = {0xDDBCBD414D940E93 , 0xF39789F515AB8F92, 0x4D5A9E4BCF6509A7, 0x28E9FA9E9D9F5E34}                                                              

•to = {0x28,0xE9,0xFA,0x9E,0x9D,0x9F,0x5E,0x34,0x4D,0x5A,0x9E,0x4B,0xCF,0x65,0x09,0xA7,0xF3,0x97,0x89,0xF5,0x15,0xAB,0x8F,0x92,0xDD,0xBC,0xBD,0x41,0x4D,0x94,0x0E,0x93}, // B

int BN_bn2bin(const BIGNUM *a, unsigned char *to)

•{

•    int n, i;

•    BN_ULONG l;

•    bn_check_top(a);

•    n = i = BN_num_bytes(a);

•    while (i--) {

•        l = a->d[i / BN_BYTES];

•        *(to++) = (unsigned char)(l >> (8 * (i % BN_BYTES))) & 0xff;

•    }

•    return (n);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值