国密SM2 SM3 SM4 算法记录

SM2加密结果有两种数据组织方式,最常见的是C1|C2|C3,另一种C1|C3|C2,具体解释:

国密局推荐的SM2椭圆曲线参数(下图右侧输出的曲线参数);

首先生成C1(随机生成SM2椭圆曲线上的一个点),2个32byte的BigInteger大数,即为SM2加密结果的第1部分,固定64B。

第2部分C2则是真正的密文,是对明文的加密结果,长度和明文一样。

第3部分C3是杂凑值,用来效验数据,固定32B。

SM2算法加密密文长度=明文长度+96B;

SM2签名验签测试数据:
HEX格式的数据,适合直接拷贝到算法工具中:SK:18D581D798DDC9B18EA5BD7A70A664342A483FC80CCF40A6D6DEDCBD9F9555F3
PK:E1DA11ACFD9577EC1359D26FD9F68CC8117442D1D7ED0C29A124CC49DEC14C52                              23A9A80F6AF3E1597C38E0BDE2F6944D0B506EBD8C6982EE9CD60C70197ADD63
ida  :31323334353637383132333435363738
msg:1234567890ABCDEF1234567890ABCDEF
sig:FB0868E76F33DFEAEE709E9128FD13F9776829F06016244DCB56B4C207CCD885         89053F7D3E8AF62FBEF554BF441CB0509E690DFF584488EEEBA229C7CCBBA1CF

C语言数组表示法,方便编写C类型测试代码:

SK:0x18,0xD5,0x81,0xD7,0x98,0xDD,0xC9,0xB1,0x8E,0xA5,0xBD,0x7A,0x70,0xA6,0x64,0x34,0x2A,0x48,0x3F,0xC8,0x0C,0xCF,0x40,0xA6,0xD6,0xDE,0xDC,0xBD,0x9F,0x95,0x55,0xF3
PK:0xE1,0xDA,0x11,0xAC,0xFD,0x95,0x77,0xEC,0x13,0x59,0xD2,0x6F,0xD9,0xF6,0x8C,0xC8,0x11,0x74,0x42,0xD1,0xD7,0xED,0x0C,0x29,0xA1,0x24,0xCC,0x49,0xDE,0xC1,0x4C,0x52    0x23,0xA9,0xA8,0x0F,0x6A,0xF3,0xE1,0x59,0x7C,0x38,0xE0,0xBD,0xE2,0xF6,0x94,0x4D,0x0B,0x50,0x6E,0xBD,0x8C,0x69,0x82,0xEE,0x9C,0xD6,0x0C,0x70,0x19,0x7A,0xDD,0x63
msg:0x12,0x34,0x56,0x78,0x90,0xAB,0xCD,0xEF,0x12,0x34,0x56,0x78,0x90,0xAB,0xCD,0xEF
sig:0xFB,0x08,0x68,0xE7,0x6F,0x33,0xDF,0xEA,0xEE,0x70,0x9E,0x91,0x28,0xFD,0x13,0xF9,0x77,0x68,0x29,0xF0,0x60,0x16,0x24,0x4D,0xCB,0x56,0xB4,0xC2,0x07,0xCC,0xD8,0x85
0x89,0x05,0x3F,0x7D,0x3E,0x8A,0xF6,0x2F,0xBE,0xF5,0x54,0xBF,0x44,0x1C,0xB0,0x50,0x9E,0x69,0x0D,0xFF,0x58,0x44,0x88,0xEE,0xEB,0xA2,0x29,0xC7,0xCC,0xBB,0xA1,0xCF
 

猜你喜欢

转载自blog.csdn.net/qishandaxue/article/details/92394449