简单聊聊密码学

密码学概念

密码学包括编码学和破译学,其目的是能够隐秘地传递信息,其手段是通信双方按照约定的法则对信息进行特殊变换。

密码学相关知识

1. 密码学里面的一些术语。

  • 密钥:包括加密密钥和解密密钥。
  • 明文:不经过加密的信息。
  • 密文:经过加密的信息。
  • 加密:将明文转换成密文的过程。
  • 解密:将密文转换成明文的过程。
  • 密码算法:包括加密算法和解密算法。

2. 古老的密码算法简单举例。

  • 置换
    • 列置换
    • 周期置换
  • 代换
    • 单表代换
      • 恺撒密码
    • 多表代换
      • Vernam密码
      • Playfair密码
      • Hill密码

3. 现代密码算法简单举例。

  • 加密散列函数(消息摘要算法/MD算法)
    • MD5
    • SHA-1
  • 秘密钥算法(也称对称性密钥算法)
  • 有密级密码
  • 公钥私钥加密算法(非对称性密钥算法)
    • RSA加密(详细介绍请看这里
  • 公钥私钥签名算法
    • RSA签名(详细介绍请看这里

4. 破译密码方式简单举例。

  • 被动攻击
  • 明文攻击
  • 密文攻击
  • 暴力攻击
  • 中间相会攻击
  • 差分密码分析
  • 线性密码分析

一些问题整理

1. 什么叫对称性密钥和非对称性密钥?

对称性密钥加密和解密用的都是同一个密钥,而非对称性密钥有个两个密钥,即公钥和私钥,其中公钥提供给接收方,私钥自己保存。

2. 网络安全中使用密码算法来处理传递信息有哪几个功能?

  • 传输信息机密。(只有发送方和接收方能够转换成真实信息,中间就算他人截获信息也无法解析)
  • 权限鉴别。(接收方能鉴别发送方是否是有权限的,而不是第三者伪装)
  • 信息完整。(接收方能够判断是否有人篡改过信息)
  • 不可否认。(发送方在发送信息后不能否认发送过信息)

3. 我们登录电脑所用的用户密码算不算密码算法?Base64呢?

答案是两者都不是密码算法。电脑登录的用户密码只是一种口令,而密码算法中的密码是用来对信息进行加密的。Base64只是一种编码方式,其设计的初衷也不是用来加密的。

4. 数字签名和数字加密有什么区别?

两者都是用的非对称密钥。但签名是比如我要给他发信息,我是发送方,我将公钥发给他,自己用私钥加密后将信息发给他,他接收到后用我给的公钥将信息解密。而数字加密是指对方要把信息发给我,我是接收方,我将公钥给他,他用我给的公钥加密后发给我,我用我的私钥来解密。

这其中有两点要知道的:

  • 公钥和私钥,用其中的一个加密后,只能用另外一个解密。
  • 数字签名目的不是加密目标信息(数字加密),而是为了验证目标信息的完整性,要先根据要发送的目标信息生成摘要,然后对摘要加密后跟随目标信息一起发送,到了接收方后,解密后与目标信息的摘要来比对,相同才认为数据没有被篡改。

本文章必富客制作,转载请注明出处