0
点赞
收藏
分享

微信扫一扫

安全作业4月13日

Android开发指南 2022-04-23 阅读 51
安全

作业要求如下图
请添加图片描述

RSA

先复习一下RSA密钥生成的过程:首选取两个互质数p和q,然后通过他俩相乘,p * q 得到 N,N=p*q,这时我们需要计算出φ(N),φ(N)是小于或等于N的正整数中与N互质的数的数目。
我们通过φ(N)=(p-1)×(q-1)可以快速计算出φ(N)。
然后,我们选择一个数e,满足以下两个条件,第一, 1<e<φ(N),第二,且e与φ(n) 互质。
接着,我们通过以下公式计算e的逆元d。
e*d ≡ 1 (mod φ(n))
这个公式简单来说就是e*d除以φ(N)得到的余数为1。

然后就计算完成,得到了私钥和公钥。
公布公钥KU={e,N}
保存私钥KR={d,N}

  1. 为什么q和p的选择是要安全素数?
    答:首先,RSA的安全性依赖于大数的因子分解,而且涉及到一个乘法逆的问题。两个大质数的情况下乘法逆会有很多。而且为了安全,我们通常要求p和q应是大素数且他们的位数不要相差太远;gcd(p-1,q-1)应该要较小; p-1 和 q-1都应该要有一个比较大的素数因子,那么这个就是m和n。( 也就是满足p=2m+1可以提高他的安全性)
  2. 公钥e的选择有什么要求?
    如上所述,原则上e需要满足以下两个条件,第一, 1<e<φ(N),第二,且e与φ(n) 互质。然后平时做题可以感觉到,一般选取的e都是从小向大选取的,也就是e一般都比较小。
  3. 私钥d的选择有什么要求?
    私钥d是由e和φ(N)计算得来的。即选择的d必须与上述e一起,满足e*d ≡ 1 (mod φ(n))。
  4. 加密、签名对密钥有何不同的保护要求?
    (1)加密密钥
    加密密钥对由加密公钥和解密私钥组成。其中,解密私钥应该进行备份和存档,以便能在任何时候解密历史密文数据,而加密公钥则无需备份和存档,加密公钥丢失时,只需重新生成密钥对即可。
    (2)签名密钥
    签名私钥是发送方身份的证明。
    用做数字签名的这一对密钥一般可以有较长的生命期。
    签名密钥由签名私钥和验证公钥组成,其中,签名私钥绝对不允许做备份和存档,丢失后只需重新生成新的密钥对。而验证公钥需要存档,用于验证旧的数字签名。
举报

相关推荐

4月13日作业

4月4日java作业

4月25日作业

4月21日作业

4月12日作业

4月23日作业

4月22日作业

4月29日作业

4月25日大作业(半成品)

0 条评论