关于数据加密的原则和介绍

前言

因为本人深度阅读过《图解密码技术》等书籍,也了解对应的安全信息知识, 所以在阅读 《Go Web 编程》** 09.5 存储密码 ** 一章的时候,有一些信息希望同步分享给大家。

密码与信息安全的常识

  • 不要使用保密的密码算法*
  • 使用低强度的密码比不进行加密更危险
  • 任何密码有一天都会被破解
  • 密码只是信息安全的一部分

密码只是信息安全的一部分:是指密码自身足够安全的时候,但是总需要人去使用,而人未必安全(即社会工程学),如何预防人的攻击也是信息安全的一部分。

密码学的工具箱介绍

密码的相关技术往往都是解决特定问题的, 而现实世界中遇到的问题是多维度, 因此更多的时候是需要进行组合使用,才能有效的保护信息的安全。

  • 对称密码
    是一种用相同密钥来进行加密和解密的技术,可以确保消息的机密性,但要解决密钥配送问题,中间人攻击伪装风险, 例如 AES。

  • 非对称密码
    是一种用不同密码来进行加密和解密的技术, 在确保消息机密性的基础上,解决了密码配送问题泄露问题,但因此带来的问题则是 公钥机密的速度很慢,同时也是存在中间人攻击伪装风险, 例如 RSA。

  • 单向散列函数
    是一种将长消息转换为短散列值的技术,用于确保消息的完整性。它还可以作为消息认证码、数字签名以及伪随机数生成器等技术的组成元素来使用, 在这里就是 MD5、SHA1、SHA2、SHA3。

  • 消息认证码
    是一种能够识别通信对象发送的消息是否被篡改的认证技术,用于验证消息的完整性,以及消息认证。 消息认证码算法中,最常用的是单向散列函数的 HMAC,它的构成不依赖某一种具体的单向散列函数算法。消息认证码对通信对象进行认证,但是无法对第三方进行认证,此外,它也无法防止否认,消息认证码也可以用于实现认证加密

  • 数字签名
    是一种能够对第三方进行消息认证,可以防止通信对象做出否认的认证技术。 数字签名的算法包括 RSA 、EIGamal、 DSA、 椭圆曲线DSA、 爱德华兹曲线DSA 等。公钥基础设置(PKI)使用的证书就是对公钥加上认证机构的数字签名所构成的,要验证公钥的数字签名,需要通过某种途径获取认证机构的自身的合法公钥。

  • 伪随机数生成器
    是一种能够生成具备不可预测性的比特序列的技术,由密码和单向散列函数等技术构成,伪随机数生成器用于生成密钥,初始化向量和 nonce 等。

讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!