公开密钥加密

作者: 烤红薯大将军 | 来源:发表于2019-05-11 18:56 被阅读1次

    通信双方能够在没有预先商定共享密钥的条件下进行加密通信的算法,即公开密钥密码系统。它不仅可以用于加密,还可以用于鉴别数字签名。

    接收方BOB有两个密钥,一个是任何人都可以得到的public key(Kb+),另一个是只有BOB知道的private key(Kb-)。

    通信过程:Alice用public key和众所周知的加密算法加密plaintext (m),即计算Kb+(m)。BOB收到加密报文后,用private key解密报文,即Kb-(Kb+(m)) = m。

    风险:1. 需要保证任何一个攻击者都不能确定出bob的private key或解密出报文。

               2. 任何人都可能向BOB发送报文,所以需要数字签名将发送方和报文绑定。

     

    RSA algorithm: 运用模n算术的算术运算,包括两部分:public&private key选择; 加密和解密算法

        步骤: 1. 选择两个素数p&q, 值越大,破解越难,加密和解密时间越长, 推荐p*q为1024比特的数量级

                    2. 计算n=pq & z = (p-1)(q-1)

                    3. 选择一个小于n的数e(用于加密),以及e和z没有公因数

                    4. 选择一个数d(用于解密),使 ed mod z = 1

                    5. public key为(n,e), private key is (n,d)

                            plaintext m加密的值c是: c = m^e mod n

                            解密是 m = c^d mod n

    会话密钥(session key): RSA的指数运算非常耗费时间,所以讲RSA与对称密钥结合使用。

        步骤: 1. Alice选择一个加密数据的密钥 session key(Ks), 并告诉Bob    

                    2. Alice使用Bob的RSA public key加密该session key,即计算c= (Ks)^e  mod n

                    3. Bob收到加密后的session key c,解密得到原本的session key Ks

    Differ-Hellman 公钥加密算法能够用来穿件一个对称的会话密钥,改密钥能够被用于加密长报文,但并非任意长度的报文。

    相关文章

      网友评论

        本文标题:公开密钥加密

        本文链接:https://www.haomeiwen.com/subject/jrhfaqtx.html