RSA原理及应用学习小记

2018-12-08  本文已影响0人  co5der

RSA原理及应用


    Φ(n)                        k
  m      mod  n = 1            1    =  1,   1 * m = m,  m< n
    k * Φ(n)+1
  m            mod  n = m

  e * d  mod  X = 1    #e 与 x 互质,那么存在正整数d
  e * d = k * x + 1    # x 替换成 Φ(n),  e为加密用私钥部分, d为解密的公钥部分

    e*d                  
  m      mod n = m       =>  

           e                          d
  加密:  m      mode n  = C    解密  C     mode n = m


  # 公钥: n和e组成 (公开),  私钥: n和d租成,  明文 m, 密文 c, n一般取 1024个二进制位
  # Φ(n) n一般取 质数p1,p2  n=p1*p2, Φ(n)=(p1-1)*(p2-1)   由Φ(n)计算出 e, d
    * openssl genrsa -out private.pem 1024  #生成 1024位的私钥
    * openssl rsa -in private.pem -pubout -out public.pem  #从私钥中提取公钥
    * #可以解析成明文查看,n = publicExponent: 65537, 还有 p1,p2等
    * openssl rsa -in private.pem -text -out private.txt 
    * #使用公钥 加密
    * openssl rsautl -encrypt -in msg.txt -inkey public.pem -pubin -out enc.txt 
    * #使用私钥 解密
    * openssl rsautl -decrypt -in enc.txt -inkey private.pem -out dec.txt
    *
    * #用私钥签名加密
    * openssl rsautl -sign -in msg.txt -inkey private.pem -out enc.txt
    * #使用公钥验证签名
    * openssl rsautl -verify -in enc.txt -inkey public.pem -pubin -out dec2.txt
  
  $ #用私钥 生成请求证书 的文件,需填写 相关信息,密码留空,  ssl的这个证书从正规机构购买,年费大几千
  $ openssl req -new -key private.pem -out rsacert.scr 

  $ #根据证书 导出代码可用的 der格式
  $ openssl x509 -outform der -in rsacert.crt -out rsacert.der

  $ #根据私钥,scr证书,提取p12私钥, 需要设置密码
  $ pkcs12 -export -out p.p12 -inkey private.pem -in rsacert.crt


上一篇 下一篇

猜你喜欢

热点阅读