加密算法介绍


近期在了解加密安全方面的内容,总结一些关于加密方面的知识。

1、Hashing算法

  • Hashing算法将不同长度的输入加密成一样大小的加密串
  • 好的Hash算法应当具备一下3点:
    • Collision-Resistant:  对于不同的输入应当产生不一样的加密结果,例如:对于x,y,不会得到任何加密算法使得H(x) == H(y)成立
    • 对输入串的修改会导致加密结果大不相同
    • 单向加密,对于加密结果Z,不可能得到H(x) == Z
  • Hash应当具备完整性
    使用加密后的结果可以验证输入的正确性
目前存在的Hash算法有:
  1. MD5
    用在90年代Win NT系统的密码加密,不安全
  2. SHA-1
    1995年的NAS加密,不安全
  3. SHA-2
    目前比较安全的加密算法
2、Symmetric Encryption
  • 加密双方使用相同的key: k
  • Encryption:E(k, M) -> C where:
       E 是加密算法
       M 是要机密的明文
       C 是加密后的密文
  • Decryption:   D(k, C) -> M
       D是解密算法
  • 无法得知是谁生成的C

    Symmetric Encryption使用场景:

  • 值得信任的双发,因为只有他们共享加密、解密时使用的Key
  • 性能很快
  • 值得注意的是,这种加密不会保护传输的数据不受侵犯       
      Key Management

ParticipantsUnique Keys
2 1
46
1045
20190
30435
1004950

如果对于有多个角色加进对称算法中的情况,Key的管理和维护会是一个大问题,如上表所示,2个参与者时需要1个Key,4个就需要6个Key  ... 100个的时候就需要4950个key,当有n个参与者时,就需要n(n-1)/2 个key。

对称加密算法应用:RC4, DES, 3DES, AES

3、Asymmetric Encryption

非对称加密算法的特点是Keypair被分成两种Key:
  • Public Key, 对所有人可见
  • Private Key, 非公开的key
加密原理:
  • 一个人用自己的公钥加密一段文字,只有这个人的私钥才能解密该文字
  • 这个人不能保证这段加密文字发送到了什么地方
加密流程
  • 签名过程:张三用Hash Function对一段文字计算Hash值,然后用自己的私钥对这个Hash值进行签名
  • 验证过程:李四用Hash Function对一段文字计算Hash值,然后用张三发来的公钥对上一步中的签名解密,对比解密结果是否和Hash值一样来判断这段文字是否正确


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值