PKCS RSA执行标准

RSA是一种算法,但是,在相关应用的时候,还是需要有一些标准的。这就是pkcs。现在的各种程序中,基本都是遵循这个标准来使用RSA的。最近陆续读取RSA相关的内容进行学习。

RSA官网:https://www.rsa.com

标准的查看:https://www.rfc-editor.org/search/rfc_search_detail.php?title=pkcs&pubstatus%5B%5D=Any&pub_date_type=any
The Public-Key Cryptography Standards (PKCS)是由美国RSA数据安全公司及其合作伙伴制定的一组公钥密码学标准,其中包括证书申请、证书更新、证书作废表发布、扩展证书内容以及数字签名、数字信封的格式等方面的一系列相关协议。

 协议列表:

PKCS#1:定义RSA公开密钥算法加密和签名机制,主要用于组织PKCS#7中所描述的数字签名和数字信封[22]。协议标准:https://tools.ietf.org/html/rfc8017
PKCS#3:定义Diffie-Hellman密钥交换协议[23]。
PKCS#5:描述一种利用从口令派生出来的安全密钥加密字符串的方法。使用MD2或MD5 从口令中派生密钥,并采用DES-CBC模式加密。主要用于加密从一个计算机传送到另一个计算机的私人密钥,不能用于加密消息[24]。
PKCS#6:描述了公钥证书的标准语法,主要描述X.509证书的扩展格式[25]。
PKCS#7:定义一种通用的消息语法,包括数字签名和加密等用于增强的加密机制,PKCS#7与PEM兼容,所以不需其他密码操作,就可以将加密的消息转换成PEM消息[26]。
PKCS#8:描述私有密钥信息格式,该信息包括公开密钥算法的私有密钥以及可选的属性集等[27]。
PKCS#9:定义一些用于PKCS#6证书扩展、PKCS#7数字签名和PKCS#8私钥加密信息的属性类型[28]。
PKCS#10:描述证书请求语法[29]。
PKCS#11:称为Cyptoki,定义了一套独立于技术的程序设计接口,用于智能卡和PCMCIA卡之类的加密设备[30]。
PKCS#12:描述个人信息交换语法标准。描述了将用户公钥、私钥、证书和其他相关信息打包的语法[31]。
PKCS#13:椭圆曲线密码体制标准[32]。
PKCS#14:伪随机数生成标准。
PKCS#15:密码令牌信息格式标准[33]。

PKCS#1 

详细的介绍了RSA算法的计算过程,包括:key的产生,key的结构,对数字加密/解密/签名/验证签名的过程/对应算法。

1. key 关于key,分别记录了private和public的详细结构,以及存储哪些内容。并且在附录里面推荐了ASN.1 Syntax中的存储结构。注:没有规定实际的物理文件存储结构,比如pem等。

2. 加密/解密  详细描述了加密/解密的算法。包括,首先针对字符串,怎么转化成数字,之后,怎么根据数字进行加密。 这里可以看出,标准中没有对超长字符串处理的说明。而转化出的字符串的长度,全都是key的模长度k

       在字符串转化成数字过程中,需要增加填充字符,所以,分成了两种不同算法:RSAES-OAEP(现有标准)  RSAES-PKCS1-v1_5(兼容过去标准)。在实际加密过程中,就只有一种算法了

3. 无论在加密还是签名过程中,都会进行hash操作,hash操作没有自己定义,而是从附录中可以选择需要的hash方式。

猜你喜欢

转载自www.cnblogs.com/yxzamy/p/9001179.html