网站做链接算侵权吗,企业建设网站策划案,wordpress 即时通迅,宝安网站建设定制目录
1.概述
2. RSA测试 2.1 加解密实验 2.2 签名验签测试
3. RSA原理简介
4.小结 1.概述
从上面密码学基础 -- 走进RSA(1)(放弃数学原理版)-CSDN博客我们知道了非对称算法的密钥对使用时机#xff0c;那么接下里我们继续讲解RSA#xff0c;我们分别从RSA加解密、签名验…目录
1.概述
2. RSA测试 2.1 加解密实验 2.2 签名验签测试
3. RSA原理简介
4.小结 1.概述
从上面密码学基础 -- 走进RSA(1)(放弃数学原理版)-CSDN博客我们知道了非对称算法的密钥对使用时机那么接下里我们继续讲解RSA我们分别从RSA加解密、签名验签以及其原理概述入手
2. RSA测试
我们从一个具体的RSA签名试验开始认识其原理。 在之前文章我们已经生成了基于RSA的密钥对格式如下 但是这一堆乱码简直没办法分析所以我们通过openssl将密钥对hex数据打印出来如下 公钥Hex数据 私钥Hex数据
公钥里包含了模数(Modulus)、指数(Exponent)
私钥包含了模数(Modulus)、私钥指数(privateExponent)、公钥指数(publicExponent)、prime(质数)1\2、exponent(指数)1\2、系数(coefficient). 根据RFC8017定义并结合示例可以总结公私钥的构成如下 2.1 加解密实验
首先使用openssl对demo.txt进行加密生成密文文件demo.en如下 然后使用私钥进行解密得到demo_enc.txt如下 2.2 签名验签测试 首先使用openssl对文档signDemo.txt进行签名得到签名hex如下 然后进行验签得到验签结果如下 3. RSA原理简介
有了上述测试我们对RSA有了感性认识接下来就讲点纯理论的东西。
RSA是由麻省理工的Rivest、Shamir和Adleman在1978年提出其数学基础用到了欧拉定理安全性由大因子分解十分困难保证利用了单向陷门函数的原理具体如下 其中{e,n}表示公钥{d,n}表示私钥。
该算法安全在哪里呢在于私钥难以被破解。
该算法生成密钥的过程如下 选择两个大素数p和q通常要求每个素数均大于10的100次方计算一个 n p * q φ(n) (p-1)*(q-1)在1φ(n)之间找到一个整数e该数与φ(n)互质e作为公钥根据e和φ(n)计算出私钥d必须满足 e*d mod φ(n) 1密钥对 {{en} , {dn}}将明文划分成块记为m保证每个明文的长度 len(m) n加密过程c m^e mod n (加密需要公钥e 和 n)解密过程m c^d mod n (解密需要私钥d 和 n) 以上述为例攻击者可以容易获取到的数据有密文c、模数n和公钥e几乎不能获取私钥d 解密需要私钥dd是根据e和φ(n)计算得来n有p和q计算得出 因此需要对n进行因子分解找出两个素数p和q 例如 21很容易得出两个素数3 和7但如果n为2048bit的整数目前从数学角度难解决。
4.小结
上面文章我们讲述了非对称算法的加解密、签名验签的原理并做了相关测试工作从数学角度讲述了RSA密钥生成原理并且详细阐述了RSA中每个字母的含义。
这对基于硬件密码加速引擎实现非对称算法具有非常强的参考意义。
一般来讲HSM所能提供的非对称算法的硬件加速功能通常只包含数学运算例如加减乘除、模数运算等等我们要实现RSAES、RSASSA、ECDSA等算法是需要利用这些运算加速来实现公式的举个例子假设要实现RSA签名工作首先需要调用Hash加速器来生成摘要然后通过调用模幂运算来对摘要进行加密这就需要我们理解模数、指数应该分别放到指定的寄存器里以供非对称引擎调用。