密码学基础04——非对称加密、RSA算法

非对称加密:

有两个密钥,一个是公钥一个是私钥,公钥是公开的,私钥是自己保存的。

A与B通信,A要给B发送消息,就要用B的公钥加密,在公钥环上找到B的公钥,用公钥加密完后发送给B,B用自己的私钥解密。当需要验证身份时,则A先在消息后面写上用自己私钥加密后的签名,然后再用B的公钥进行加密,再交给B,B先用自己的私钥解密,解密后再用A的公钥解密看消息是否由A发送。

不能先加密信息然后再签名。因为这样当别人更改你的签名后接收方就无法确认发送方是谁

D-H密钥交换算法:

1.A和B先商量好一个大的素数P和一个大的整数Q,Q要符合1<Q<P,P和Q不需要保密

2.A随便选取一个比较大的随机数C,得X1=Q^C mod P(X1等于Q的C次幂 mod P)

3.B也随便选取一个比较大的随机数D,得X2=Q^D mod P(X2等于Q的D次幂 mod P)

4.A把X1给B,B把X2给A

5.A:key=X2^C mod P(key=X2的C次幂 mod P),B:key=X1^D mod P(key等于X1的D次幂 mod P),此时得到的key是相等的

这就相当于是(QC)D mod P和(QD)C mod P,所以结果相同

RSA算法:

1.找出两个质数p,q

2.n=p*q

3.φ(n)=(p-1)(q-1)

4.找一个公钥e,e要满足1<e<φ(n)且为整数且与φ(n)没有公因子

5.私钥d符合ed = 1 mod φ(n),也就是 ed mod φ(n)=1

6.加密:密文设为x,明文设为a,则x=a^e mod n(密文等于明文的e次幂(即公钥次幂)mod n)

7.解密:a=x^d mod n(明文等于密文的d次幂(即私钥次幂)mod n)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值