码迷,mamicode.com
首页 > 编程语言 > 详细

加密算法

时间:2018-03-18 12:01:22      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:com   sha   hex   优点   包括   书签   特性   html   问题:   

三类加密算法

对称加密

加密解密用同一把密钥.
优点: 速度
缺点: 多人通讯下密钥分发复杂 O(n2); 共用一个加密密钥, 则失去保密性;

  • 3DES
  • AES
  • RC6

不对称加密

一对密钥: 公钥, 私钥; 可以 公钥加密私钥解密 或者 私钥加密公钥解密;
一般地, 公钥分发给一群人, 私钥自己持有;
优点: 多人通讯下密钥分发简单 O(n);
缺点: 速度远慢于对称加密

  • RSA
  • ECC 移动设备用
  • DSA 数字签名用

摘要算法

对原文hash得到唯一的定长密文, 且密文无法还原得到原文;
不可逆这个特性用于: 数据完整性校验, 密码存储
加盐增加彩虹表破解难度

  • MD5 输出32 hex字符
  • SHA1 输出40 hex字符
  • SHA256 输出64 hex字符

相关的

数字签名

目的: 解决信息被篡改的风险(数据完整性校验)

原文附上数字签名的步骤:

  1. [A] → 原文 → 摘要 → 私钥+ → 数字签名
  2. 原文 + 数字签名 → [B]

完整性校验:

  1. [B] → 原文 → 原文摘要
  2. [B] → 数字签名 → 公钥- → 摘要
  3. 比较两个摘要可知, 原文是否被篡改

数字证书

目的:解决公钥被冒充的风险

数字签名的问题:

  • 签名可被冒充
  • 例如:[B] 使用 A给的公钥 进行识别, 若公钥A在传输过程中被替换为公钥C, 则C可冒充A 与B通讯;
  • 所以需要一个信任的第三方, 来保证公钥A的可信度;

数字证书签发与验证:

  1. [B]找证书中心CA, 为自己公钥做认证, 得到 数字证书
    • <[B]个人信息 + [B]公钥> + CA私钥加密 → 数字证书
  2. [B]将证书追加到信件中, 这样信件包括 {原文, 签名, 证书}
  3. [A]收到信后, 验证证书:
    • 客户端CA公钥 解密证书,验证证书有效期,证书颁发者合法性
    • 通过后,即保证了[B]公钥的正确性

ref

http://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_signature.html

加密算法

标签:com   sha   hex   优点   包括   书签   特性   html   问题:   

原文地址:https://www.cnblogs.com/zcat/p/jia-mi-suan-fa.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!