RSA 汇总

Posted yxzamy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RSA 汇总相关的知识,希望对你有一定的参考价值。

最近工作中遇到了RSA,这个,以前只是粗略的看了一下,结果,实际使用的时候,各种眼花缭乱啊。现在整理一下RSA有哪些相关知识。

 

1. RSA算法本身。算法本身的内容实际上是在pkcs#1的标准里面说明的。 在我博客里面记录:https://www.cnblogs.com/yxzamy/p/8961561.html

2. RSA具体使用的标准:PKCS。在我博客里面记录: https://www.cnblogs.com/yxzamy/p/9001179.html

3. RSA在编程语言中的使用。

 RSA Laboratories‘ Public Key Cryptography Standard (PKCS)

 

RSA整体流程,以及对应的概念。

1. 首先需要密钥,包括公钥和私钥。

  这部分牵扯到算法的概念,密钥产生过程,密钥结构,具体标准这pkcs#1中定义,实际存储结构,有多种,在pkcs#7和pkcs#8中定义。

  这里存储结构都是一样的,但是,实际存储的时候还是分多种文件格式的,比如pem或者der,一个用文本存储,一个二进制存储,但是,如果读取到可读到结构之后,是一样的。也就是,同样的数据结构,但是,文件结构是不一样的。

相关概念有:

      公钥/私钥/module/密钥长度

      密钥文件结构:pem/der/TLV

      密钥存储结构结构:pem/der/ASN.1

 

2. 加密解密过程

   首先,RSA算法中,是针对数字进行加密的,所有,首先所有字符串加密之前要转化成数字,这个过程中标准中被称为encoding,并不是简单的取其二进制编码,而是要添加一些信息的

      pkcs#1中有两种算法:RSAES-OAEP  RSAES-PKCS1-v1_5

      加密解密的信息是有长度限制的 ,message最大长度分别是mLen <= k - 2hLen - 2,mLen <= k - 11,可是只密钥的模长度。hLen是hash操作的长度,所以,RSAES-OAEP在encoding的时候,是与hash函数有关的。

      输出数据的长度都是K,也就是一个定长数据。

  之后,整理好了的字符串,取二进制编码,利用RSA算法加密,之后,加密后的二进制编码转化成字符串返回。

      整个定义都在pkcs#1中

 

以上是关于RSA 汇总的主要内容,如果未能解决你的问题,请参考以下文章

github常用命令汇总

github常用命令汇总

[skill][https][ssl/tls] HTTPS相关知识汇总

MD5算法原理实现以及常用方法汇总

加密解密大汇总

linux(centos) 项目部署阶段相关命令汇总