ecc curve generation

笑着哭i 提交于 2019-12-04 01:59:58

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);

}

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!