RSA入门总结


title: RSA入门总结
date: 2017-11-13 03:14:43
tags: CRYPTO


RSA

…先简单说一下rsa相关的东西。

RSA 算法的可靠性由其极大整数因数分解的难度决定。

也就是说,极大整数做因数分解愈困难,RSA 算法愈可靠。

在还没找到一种快速因数分解的算法之前,rsa加密还是很可靠的。目前短的 RSA 秘钥可能被强力方式破解。而只要密钥长度足够长,用RSA加密的信息实际上是不能被解破的。

最近稍微看了一下相关的东西。然后整理了一下。

a^b是a的b次方…忘了应该怎么打出来了orz…

RSA算法涉及到的参数:

p : 大质数p
q : 大质数q
n : n=p*q

欧拉函数:
φ(n) = φ(p) * φ(q) = (p − 1)(q − 1) = n − (p + q − 1)

e : encryption key (public key) (又称加密指数)

d : decryption key (private key) e对于φ(n)的模反元素即e模φ(n)的逆元

m:message(m < n),明文。

c : ciphertext,c≡m^e(mod n),即密文

加密过程:

1.随机选择两个不相等的质数p和q。

2.计算p和q的乘积n。

n的长度就是密钥长度。

如n为3233写成二进制是110010100001,一共有12位,所以这个密钥就是12位。(实际应用中,RSA密钥一般是1024位,重要场合则为2048位。)

3.计算n的欧拉函数φ(n)

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

4.随机选择一个整数e,条件是1< e < φ(n),且e与φ(n) 互质,将e作为公钥。

5.计算e关于φ(n)的模反元素d,作为私钥。

计算过程:

模反元素即模逆元(参考离散数学或者信安数学基础或者百科学习)

简单来说,就是一个整数d可以使ed乘积被φ(n)除的余数为1:
ed ≡ 1 (mod φ(n))(也就是ed%φ(n)=1)
即求解

ed+φ(n)x=1(x未知,但是求得e和φ(n)就可以通过扩展欧几里得算法得到d的值,具体可以参考最底下ctf中rsa题目解析第二个链接。)

公开e,保留d。

**公钥为(n,e),私钥为(n,d) **

针对明文M,进行加密:C=(M^e)%n,得到的C即为密文

针对密文C,进行解密,M=(C^d)%n,得到的M即为明文

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值