公钥密码学与认证密钥交换技术解析
在密码学的实际应用中,常常需要将加密数据以明文格式表示,同时也需要妥善处理认证和密钥交换问题。下面将详细介绍相关技术。
1. 密钥和证书的明文表示(PEM编码)
在某些协议中,无法接受任意二进制数据,因此需要将公钥、证书等加密数据以明文格式表示,PEM编码就是解决这一问题的有效方法。
1.1 可转换为DER格式的对象
DER(Distinguished Encoding Rules)是一种用于编码ASN.1数据的二进制格式,以下是可以转换为DER格式并转换回来的对象列表:
| 对象类型 | OpenSSL对象类型 | 基础编码函数 | 基础解码函数 | 头文件 |
| — | — | — | — | — |
| RSA公钥 | RSA | i2d_RSAPublicKey() | d2i_RSAPublicKey() | openssl/rsa.h |
| RSA私钥 | RSA | i2d_RSAPrivateKey() | d2i_RSAPrivateKey() | openssl/rsa.h |
| Diffie - Hellman参数 | DH | i2d_DHparams() | d2i_DHparams() | openssl/dh.h |
| DSA参数 | DSA | i2d_DSAparams() | d2i_DSAparams() | openssl/dsa.h |
| DSA公钥 | DSA | i2d_DSAPublicKey() | d2i_DSAPublicKey() | openssl/dsa.h |
| DSA私