美文网首页
【学习笔记】对称加密和非对称加密

【学习笔记】对称加密和非对称加密

作者: 简爱WindMan | 来源:发表于2020-03-10 10:24 被阅读0次

    对称加密

    • 所谓对称加密就是:加密和解密用的是同一个规则。这个算法是人们能想到的最简单的结构,就好比购物:卖家给包装了,买家再拆掉一样。
      在代码中举个例子:
    1. 要传输'{age:18}',字符串对应有asiii或者unicode,假如这个字符串对应100000,
    2. 我们设定密码等于5,密文就等于500000,
    3. 收到数据的人知道了密码,直接500000/5=100000,在通过解码就知道传输的内容。
    

    因为密码也是通过http传输的,所以密码就容易泄露,尽管人们加了很多其他防护逻辑用来保证不泄密,但是从理论上会泄密,实现上就一定可能会泄密。

    非对称加密,RSA应运而生

    • 故事背景:1976年美国两个计算机科学家提出了非对称加密的构思:加密和解密用不同的密码。两年之后,一个叫Rxxxx,一个叫Sxxxxx,一个叫Axxxx,三个麻绳的教授搞出来了这个非对称加密的实现,起名:RSA算法。
    • 大概原理
    1. A要和B通讯,B来生成公钥和私钥,公钥给A用来加密传输的内容,私钥自己留着用来解密传来的内容
    
    • 这是一个纯数学的原理
    下边看B的一顿骚操作:
    1. 找两个不想等的质数p和q,
    2. 得到n=q*p,其中n转化为二进制的长度决定解密的难度。
    3. 欧拉函数: φ(n)=(p-1)*(q-1)
    4. 找公钥e:1<e<φ(n),其中e和φ(n)互为质数
    5. 找密钥d:e*d/φ(n)....1   e乘以d除以φ(n)余1
    
    • 加密
    设传输内容为m,m的e次幂再除以n,求余数c,c就是加密之后的内容
    
    • 解密
    c的d次幂除以n,求余数m,得到的就是m,这个已经在数学上证明过的。
    
    • 反推
    1. 传输过程中暴露的有:n、e、c
    2. 要想解密需要知道的:n、d、c
    3. 所以需要求d,因为e乘以d除以φ(n)余1
    4. 所以需要求φ(n),因为φ(n)=(p-1)*(q-1)
    5. 所以需要求p和q,现在有n,且n=p*q
    6. 所以问题就变成了把n分解为p和q
    7. 极大数分解质因数,是一个很难的过程
    
    • 上面的是一个基本原理,在真正的https请求上,还加了很多其他逻辑,比如把传入内容分段切割加密,部分环节加上对称加密,再引来大名鼎鼎的hash
    • 量子计算机做极大数质因数分解,给RSA带来了威胁,因为这玩意算得太快了,
    量子计算机是一类遵循量子力学规律进行高速数学和逻辑运算、存储及处理量子信息的物理装置
    
    • 下一代加密,可能是量子加密。
    • 下下一代,我也不知道……

    相关文章

      网友评论

          本文标题:【学习笔记】对称加密和非对称加密

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