SM2 压缩公钥还原工具

SM2是一种公开密钥加密标准,由国家密码管理局于2010年12月17日发布,相关标准为“GM/T 0003-2012 《SM2椭圆曲线公钥密码算法》”。2016年,成为中国国家密码标准(GB/T 32918-2016)。

sm2算法的公钥是64字节,私钥是32字节,公钥其实是由坐标点(x,y)组合构成,即每个点都是32字节的大数构成的。但是大多数情况下在使用的时候都是对公钥进行压缩使用,以节省空间。但是根据点压缩方式,我们在使用的时候看到的压缩公钥有两种,一种是02,一种是03。还有04的标识未压缩。
02/03表示一种压缩方式,所以在解压缩的时候根据压缩标志对Y坐标进行不同的反转操作。如何解压缩呢,前面讲到SM2算法采用的曲线公式,因此当知道坐标X就可以根据该公式算出Y坐标,进而得到完整的公钥。

sm2 压缩与还原
简单来说,就是判断最低位是奇数还是偶数,偶数为0(compressed_y_0),奇数为1(compressed_y_1).

SM2工具链接

SM2 Genkey--SM2签名工具(带userid)--SM2 签名工具--SM2 验签(带userid)--SM2 验签--SM2压缩公钥还原工具--SM2在线加密--SM2在线解密--