美文网首页
对称加密和非对称加密

对称加密和非对称加密

作者: 撸撸很乖张 | 来源:发表于2018-11-03 02:35 被阅读0次

    对称加密的缺点

    • 解密的密钥需要双方都有,密钥在网络上传递的过程中会被三方截获。
    • 在一个公司里,每台机与每台机之间都需要不同密钥,密钥维护麻烦

    RSA

    非对加密
    公钥加密,私钥解密 用于加密
    私钥加密,公钥解密 用于签名

    非对称加密细节:
    公钥和私钥本地欧拉函数生成

    1. GIT服务器上存储的是公钥,你本地存储的是私钥,当你push本地代码库到远程代码库,服务器会要求你出示私钥,并且用你出示的私钥和它的公钥配对来完成认证。由于使用的是不对称加密,所以公钥可以公开,只要保管好私钥就可以。
    2. 路人甲只要没有私钥,所以无法push。这样才能保证开源项目的完整性,否则阿猫阿狗都去push代码,那项目不就乱套了?如果路人甲想对你的项目做出贡献,那么以GITHUB为例,他会发送一个pull request给你,然后由你来审核他作出的改变,如果审核通过,那么你就可以将他的pull request合并到你工程的某一分支中。这里只以GITHUB为例,私有的GIT服务器可能没有类似功能,比如GITLAB就没有pull request。

    数字签名
    防止抵赖,能够检查签名后的内容是否被改过。
    比如 防止软件被更改,加入病毒等等

    实现细节

    • A本地有私钥和公钥
    • A 用一个单向散列函数获得文件的摘要
    • 并用私钥加密摘要(这就是A的签名)
    • 然后A把文件,公钥,和签名发给B
    • B同样用单向散列函数获得文件的摘要1,同时利用公钥解密签名获得摘要2,然后比较摘要1与摘要2,如果相同则证明文件没有被三方篡改。
      签名就像公司的章,证明其身份。文件一般是不加密的。
      应用场景: 比如中央政府给各地方政府发送红头文件,就要加签名。让地方政府知道这文件是中央发过来的,而是内容不被修改。

    CA机构 给企业数字证书,证书里有A的公钥和私钥。A的公钥被CA机构的私钥加密,即签名,这样将A的加密后的公钥给B的时候,B需要信任CA机构,获得CA机构的公钥,然后解密还原A的公钥。

    作用 为企业和用户颁发数字证书,确认这些企业和个人身份,发布证书吊销列表

    windows系统 运行 输入mmc,可以查看安装的证书。

    SSL

    SSL是基于非对称加密的原理,在这之上还进行了对称加密的数据传输。当传送数据量过大的时候,客户端和服务器之间互相商定了一个对话密钥(session key),使用这个对话密钥来进行对称加密加快运算速度。

    整个SSL的流程如下:

    客户端向服务器请求证书,验证无误后拿到服务器的公钥
    双方协商生成一个session key
    最后双方采用session key进行加密通信
    主要关注前两步,即SSL的握手阶段。

    1. Client Hello
      客户端向服务器发出一个随机数,以及支持的传输协议以及加密算法 ,压缩方法。
    2. Server Hello
      服务器在确认支持客户端的传输协议等要求后,发送服务器的证书,以及一个随机数,安全需求更高的服务器会要求客户端发送证书来证明客户端的身份。
    3. 客户端回应
    • 客户端此时生成第三个随机数(这一个随机数被称为pre-master-key),向CA验证服务器的证书以后拿到服务器的公钥,使用公钥加密第三个随机数,并把加密后的第三个随机数发送给服务器。
    • 客户端在本地利用之前与服务器商量好的加密方法,根据这三个随机数生成一个对话密钥(session key)用于两端通信。
    1. 服务端回应
      服务端收到第三个随机数后,计算出对话密钥,至此,握手阶段结束。接下来使用对话密钥进行通信即可。

    相关文章

      网友评论

          本文标题:对称加密和非对称加密

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