sm2的pub为65字节,公钥其实是由坐标点(x,y)组合构成,即每个点都是32字节的大数构成的。但是大多数情况下在使用的时候都是对公钥进行压缩使用,以节省空间。但是根据点压缩方式,我们在使用的时候看到的压缩公钥有两种,一种是02,一种是03。还有04的标识未压缩。
02/03表示一种压缩方式,所以在解压缩的时候根据压缩标志对Y坐标进行不同的反转操作。因为SM2算法采用的曲线公式,因此当知道坐标X就可以根据该公式算出Y坐标,进而得到完整的公钥。目前使用的算法库有两种分别是openssl和miracl,我们的算法是基于miracl大数库而来的。
例如在进行验签或者解密的过程中可能会使用到压缩公钥
1