Rsa

OpenSSL 中 RSA 密鑰的安全性

  • April 27, 2017

因此,當在 OpenSSL 中生成私鑰/或密鑰對時,有 -nodes 標記來停用私鑰的加密。我查了一下,它的意思是“沒有 DES”。所以沒有使用DES。為什麼 DES 用於加密此類秘密資訊,即使它不再被認為是安全的,而 OpenSSL 是用於生成 rsa 密鑰的最廣泛使用的工具之一

主要是因為在創建命令時使用 DES,而“no des”表示“不加密”。現在預設值不同了:

$ openssl req -new -newkey rsa:1024 -keyout rsa.enc.p8 -out rsa.enc.p8.csr
Generating a 1024 bit RSA private key
...................................++++++
...........++++++
writing new private key to 'rsa.enc.p8'
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
<snip />

$ openssl asn1parse -i -dump < rsa.enc.p8
   0:d=0  hl=4 l= 710 cons: SEQUENCE
   4:d=1  hl=2 l=  64 cons:  SEQUENCE
   6:d=2  hl=2 l=   9 prim:   OBJECT            :PBES2
  17:d=2  hl=2 l=  51 cons:   SEQUENCE
  19:d=3  hl=2 l=  27 cons:    SEQUENCE
  21:d=4  hl=2 l=   9 prim:     OBJECT            :PBKDF2
  32:d=4  hl=2 l=  14 cons:     SEQUENCE
  34:d=5  hl=2 l=   8 prim:      OCTET STRING
     0000 - e9 37 68 99 cb 9c 4f 10-                          .7h...O.
  44:d=5  hl=2 l=   2 prim:      INTEGER           :0800
  48:d=3  hl=2 l=  20 cons:    SEQUENCE
  50:d=4  hl=2 l=   8 prim:     OBJECT            :des-ede3-cbc
  60:d=4  hl=2 l=   8 prim:     OCTET STRING
     0000 - 16 ad ce 41 47 e8 ba 85-                          ...AG...
  70:d=1  hl=4 l= 640 prim:  OCTET STRING
<snip />

它實際使用的算法是 des-ede3-cbc,又名 3DES-CBC。雖然 AES 幾乎完全取代了 3DES,但 3DES 並不被認為是不安全的。

NIST SP 800-57 修訂版 4的表 2 表明 3DES 具有 112 位的安全性,與 RSA 2048 相當。表 4 則表明 112 位的安全性在 2030 年之前都很好。

引用自:https://crypto.stackexchange.com/questions/46982