ras非对称加密的学习

典型的RSA非对称加密

RSA加密算法是一种典型的非对称加密算法,它基于大数的因式分解数学难题,它也是应用最广泛的非对称加密算法,于1978年由美国麻省理工学院(MIT)的三位学着:Ron Rivest、Adi Shamir 和 Leonard Adleman 共同提出。

它的原理较为简单,我们假设有消息发送方A和消息接收方B,通过下面的几个步骤,我们就可以完成消息的加密传递:

1.消息发送方A在本地构建密钥对,公钥和私钥;

2.消息发送方A将产生的公钥(明文)发送给消息接收方B;

3.B向A发送数据时,通过公钥进行加密,A接收到数据后通过私钥进行解密,完成一次通信;

4.反之,A向B发送数据时,通过私钥对数据进行加密,B接收到数据后通过公钥进行解密。

由于公钥是消息发送方A暴露给消息接收方B的,所以这种方式也存在一定的安全隐患,如果公钥在数据传输过程中泄漏,则A通过私钥加密的数据就可能被解密。

如果要建立更安全的加密消息传递模型,需要消息发送方和消息接收方各构建一套密钥对,并分别将各自的公钥暴露给对方,在进行消息传递时,A通过B的公钥对数据加密,B接收到消息通过B的私钥进行 
解密,反之,B通过A的公钥进行加密,A接收到消息后通过A的私钥进行解密。

当然,这种方式可能存在数据传递被模拟的隐患,我们可以通过数字签名等技术进行安全性的进一步提升。由于存在多次的非对称加解密,这种方式带来的效率问题也更加严重。   

知乎上的
链接:https://www.zhihu.com/question/25912483/answer/289390742

回答楼主答案:公钥和私钥 可以用任意一个加密,然后用另一个解密。
以下为RSA算法推导:取一对互质的数比如p, q
p = 61 q = 53
n = p * q = 61 * 53 = 3233
欧拉n = (p-1) * (q-1) = 60 * 52 = 3120
求e;要求 1 < e < 欧拉n 且 e 和 欧拉n 互质;
数有很多,比如17
e = 17 求d;
要求 e * d % 欧拉n = 1
转化公式 x * e + 欧拉n * y = 1 ; 17x + 3120y = 1 ; 算出x = 2753,y = -15
验证要求 17 * 2753 % 3120 = 1d = 2753
钥匙A为: n和e
钥匙B为: n和d
用钥匙A加密 123123 ** e % n = 123 ** 17 % 3233 = 855
用钥匙B解密 855855 ** d % n = 855 ** 2753 % 3233 = 123
用钥匙B加密 9999 ** d % n = 99 ** 2753 % 3233 = 89
用钥匙A解密 8989 ** e % n = 89 ** 17 % 3233 = 99
【总结】不知道pq的情况下:钥匙A 不 hen 能 nan 算出 钥匙B
钥匙B 也不 hen能 nan 算出 钥匙A!
e和d 哪个标记为公钥,在性能和安全性上 貌似有差别,通常e被标记为公钥!
大多数工具生成的私钥是包含pq的

逻辑上来说,密钥对,就像二元一次方程的两个变量。为了通信需要公开一个密钥。
被公开的称为公钥,被保留的称为私钥,同时为了提高被爆破的难度(两个密钥的长度一般是不对等的),将长度短的密钥公开,称为公钥
加密的角度:公钥加密,私钥解密
签名的角度:私钥加密,公钥解密

采用RSA算法,网络中N个用户之间进行加密通信,需要的密钥个数是______。

A.N(N-1)
B.N
C.2N D.N
N

正确答案
B

答案解析
[解析] RSA算法原理是N个用户进行通信需要N对密钥,但每个用户只需记忆自己的秘密密钥,并去公共存储区中获取其他用户的公开密钥。

posted @ 2021-03-02 14:03  潇洒的是TA  阅读(316)  评论(0)    收藏  举报