数字信封的生成及解析

生成过程:
1.p10申请后得到:p10文件、sig key、口令
2.将p10文件拿去ca进行申请,会得到:sig cert、enc cert、enc key(存在于数字信封中)
3.随机生成一个对称密钥symmetric key(这个对称密钥是16位的,可能是AES\SM4\SM1\等)
4.symmetric key + enc key  形成 enc key'
5.symmetric key + sig cert 形成 SYM
6.此时数字信封就是下面4个的组合
OID   对称算法ID  
SYM   对称算法密钥(被签名证书公钥加密)
enc cert 加密证书公钥
enc key' 加密证书私钥(被对称算法加密)

另附上数字信封的asn1结构,如下
AlgorithmIdentifier ::= SEQUENCE {
    algorithm       OBJECT IDENTIFIER,
    parameters      ANY DEFINED BY algorithm OPTIONAL
}
SM2EnvelopedKey ::= SEQUENCE {
    symalgid        AlgorithmIdentifier,        -- 对称算法ID
    symalgkey       SM2Cipher,                  -- 对称算法密钥(被签名证书公钥加密)
    asympubkey      BIT STRING,                 -- 加密证书公钥
    asymprvkey      BIT STRING                  -- 加密证书私钥(被对称算法加密)
}
解密过程:
得到enc key即可

你可能感兴趣的:(密码学与PKI)