HSM学习笔记(1)- RSA算法

本文介绍了对称加密与不对称加密的区别,重点讲解了RSA算法的密钥生成步骤,包括随机选择质数、计算欧拉函数、求模逆等,以及实际的加密和解密过程。强调了RSA算法的安全性源于大数分解的困难性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 基础

1.1 对称与不对称加密

        发送端加密和接收端解密使用相同密钥,则为对称加密,否则为不对称加密。

1.2 欧拉函数

        对于正整数n, 欧拉函数f(n)是小于n的正整数中与n互质的数的个数。

        具有性质:对于互质的两个数p和q, f(p*q)=f(p)*f(q)=( p - 1 ) * ( q - 1 )

1.3 模逆

        如果两个正整数a和n互质,那么一定可以找到一个整数b,使得a*b-1可以被n整除,即

                                                        (a * b) mod n = 1

2. RSA密钥生成步骤

(1) 随机生成两个不相等的质数p和q

        一般使用硬件随机数生成器(TRNG/PRNG)生成一个数然后判断该数是否为质数,若不是则继续生成直至找到这两个数。

(2) 计算乘积n = p * q,n的长度就是密钥的长度.

(3) 计算欧拉函数f(n) = (p - 1) * (q - 1)

(4) 随机选取一个整数e,使其满足1 < e < f(n),且e要与f(n)互质

        一般而言会选取65535,即2^16-1,这个数对于硬件运算很方便。

(5) 计算e关于f(n)的模反元素d,使得 : e * d - 1 = k * f(n) ,其中k为正整数

(6) 公钥定义为:( e , n ) , 私钥定义为:( d , n )

3. 实现步骤

设明文为m,密文为c

(1) 对于发送端:

        a. 传递公钥(e,n)至接收端,

        b. 发送密文c = ( m ^ e ) mod n;

(2) 对于接收端

        解密明文m = ( c ^ d ) mod n ;

4. 分析

        传输过程可能泄露的值为:e, n , c

        模逆运算 e * d - 1 = k * f(n)中, 想要得到私钥d,则必须知道f(n)的值,即必须知道p和q的值。而对于大数n(p*q)的分解的实现是十分困难的,且复杂程度随n的长度增加而增加。

        因此RSA算法的安全性很高。

以上内容参考来源为百度来的信息拼凑。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值