解决方案 »

  1.   

    现在我们描述一个利用椭圆曲线进行加密通信的过程:
      1、用户A选定一条椭圆曲线Ep(a,b),并取椭圆曲线上一点,作为基点G。
      2、用户A选择一个私有密钥k,并生成公开密钥K=kG。
      3、用户A将Ep(a,b)和点K,G传给用户B。
      4、用户B接到信息后 ,将待传输的明文编码到Ep(a,b)上一点M(编码方法很多,这里不作讨论),并产生一个随机整数r(r<n)。
      5、用户B计算点C1=M+rK;C2=rG。
      6、用户B将C1、C2传给用户A。
      7、用户A接到信息后,计算C1-kC2,结果就是点M。因为
              C1-kC2=M+rK-k(rG)=M+rK-r(kG)=M
       再对点M进行解码就可以得到明文。请问4中的编码方式是什么,具体给我一种,好用追加
    这需要自己设计,如果明文空间为M,则需要构造一个映射,将M中的元素(一般为二进制序列)映射到椭圆曲线上的点。
    一种可能的做法是:将M转化为十进制整数m,然后令椭圆曲线中点的横坐标为m,根据曲线方程计算出纵坐标,便得到了一个点。
      

  2.   

     你好,非常感谢你耐心的解答。
    我是参照Sm2的文档实现SM2算法的。在 计算倍点的时候,无法正确求取一个点的K倍点的值  很着急。
    你能否加我扣扣给我点指导。不甚感激。QQ: 775499393
      

  3.   

    你好,非常感谢你耐心的解答。
    我是参照Sm2的文档实现SM2算法的。在 计算倍点的时候,无法正确求取一个点的K倍点的值  很着急。
    你能否加我扣扣给我点指导。不甚感激。QQ: 775499393