天天看点

网络与系统安全笔记------密码技术及应用

网络与系统安全笔记------密码技术及应用

      • 密码学
        • 密码学分支
        • 密码编码
        • 古典加密技术
        • 现代加密技术
        • 加密解密
        • 密码分析
      • 哈希函数
          • MD族算法
          • SHA族算法
          • 完整性保护
          • 认证
      • 对称密码
        • 国际标准
        • 机密性保证
        • 消息认证与完整性
        • 密钥管理
      • 公钥密码(非对称密码)
        • 加密模型(公钥加密)(机密性)
        • 认证模型(数字签名)(真实性,不可否认性)
        • 常用的加密算法
        • 相应特性
          • 机密性
          • 完整性
          • 可认证性与不可否认性
      • 比较
      • 密钥管理
        • 生成
        • 登记
        • 存储
          • 主密钥
          • 二级密钥
        • 初级密钥
        • 分配
        • 协商
      • 密码学的应用

密码是指使用特定变换对信息等进行 加密保护、 安全认证的技术、 产品和服务。

密码学

密码学分支

密码编码学和密码分析学

密码编码学: 研究对信息进行变换,寻求提供信息机密性、完整性、真实性和非否认性等的方法,以保护信息在信道的传递过程中不被敌手窃取、解读和利用的科学。

密码分析学: 研究分析和破译密码方法的科学。

密码编码

密码编码技术可以分为古典加密技术和现代加密技术

古典加密技术: 位移法,替代法。

现代加密技术

  • 对称密码算法——分组密码和序列密码
  • 非对称密码算法——公钥密码
  • 单向加密算法——哈希函数

量子密码

古典加密技术

替代法: 按照一定的方法重新排列字符。通常可以借助几何图形表示,将明文按某种特定的路径写入,以某种路径从图形中取出字符构成密文。

  • 简单代替密码: 将明文字母表中的每个字母用密文字母表中相应的字母来代替。
  • 同音代替密码: 明文字母表中的每个字母可用密文字母表中的多个字母之一来代替。
  • 多表代替密码: 对于不同位置的字母,周期使用不同的代替规则。

现代加密技术

单向加密: 哈希函数

对称密码

  • 序列密码(流密码):一次只对明文中的单个位(有时对字节)运算。
  • 分组密码(块密码):对明文的一组位进行运算,这些位称为分组。

公钥密码

RSA,ElGamal、Rabin…

常规密码系统模型

网络与系统安全笔记------密码技术及应用

加密解密

加密: C = E k ( P ) C=E_k(P) C=Ek​(P)

网络与系统安全笔记------密码技术及应用

解密: P = D k ( C ) P=D_k(C) P=Dk​(C)

网络与系统安全笔记------密码技术及应用
  • 明文§: 未加密的信息。
  • 密文©: 已加密的信息。
  • 密钥(K): 控制密码变换的随机数序列。
  • 加密(E): 将明文变换成密文的过程。
  • 解密(D): 将密文变换成明文的过程。
  • 密码算法(cipher algorithm): 密码算法是加密算法和解密算法的统称,是密码系统的核心

密码分析

目的: 获取明文,获取密钥。

攻击类型

  • 唯密文攻击: 知道部分密文信息,去获取明文或者密钥信息。
  • 已知明文的攻击: 知道一些明文及对应的密文的对应关系,来获取密文与密钥。
  • 选择明文的攻击: 选择性知道一些特定明文与对应的密文,在此基础上获取密钥或者密文。
  • 选择密文的攻击: 选择性地知道一些特定密文,并得到对应的明文,在此基础上获取密钥或者密文。
  • 选择文本攻击: 选择明文攻击与选择密文攻击的结合。

基本方法

分析法: 通过加密算法的性质与明文的一般特征进行破解。

穷举法: 试遍所有可能的密钥对所获密文进行解密,直至得到正确的明文;或者用一个确定的密钥对所有可能的明文进行加密,直至得到所获得的密文。

社会工程法: 通过对知情者进行恐吓、敲诈、贿赂、或折磨等手段使其将密钥泄漏出来。

哈希函数

将任意长度的报文映射成一个较短的定长输出报文(哈希值或者消息摘要)的函数。 h = H ( M ) h=H(M) h=H(M)M是变长的报文,h是定长的哈希值。

要求:只要改动消息M的任何一位,重新计算出的消息摘要 h ′ h' h′就会与原先消息摘要值h不符。

特性:压缩性,易计算,单向性,弱碰撞阻止性,强碰撞阻止性

  • 压缩性:有限长的输入M映射为一个固定长的短输出h。
  • 易计算:给出H和输入M,容易计算出H(M)。
  • 单向性:对所有确定的输出h,推导输入值M是计算困难的。
  • 弱碰撞阻止性:对任何指定的输入M,发现任何第二个输入M′ ≠M,使得H(M′)=H(M)是计算困难的。
  • 强碰撞阻止性:两个任意选择的不同的输入M和 M′ ,计算H(M′)=H(M)是困难的。
MD族算法
  • MD2:摘要值长度为128位,16字节,32个十六进制数。
  • MD4:摘要值长度为128位,16字节,32个十六进制数。计算速度快。
  • MD5:摘要值长度为128位,16字节,32个十六进制数。计算速度比MD4慢,但是安全性高。
  • MD6:2008年提出,没有广泛推行。
SHA族算法
  • SHA-0:摘要值长度为160位,20字节,40个十六进制数。
  • SHA-1:SHA-0基础上改进,摘要值长度为160位,20字节,40个十六进制数。
  • SHA-2:SHA-256、SHA-384和SHA-512,SHA-224;输出摘要长度为相应数字。
  • SHA-3:SHA3-224、SHA3-256、SHA3-384、SHA3-512;(输出摘要长度为相应数字)。SHAKE128 、SHAKE256;(可输出任意长度(2128/2256)散列值的函数)。
完整性保护
网络与系统安全笔记------密码技术及应用

双方摘要相同则表示消息未经篡改,真实可用。

认证

口令认证: 检查密码的散列值来进行认证。

消息认证: 与公钥密码算法结合,生成数字签名,或者与共享密钥结合,生成消息验证码。

哈希函数反查: 穷举法,字典法,彩虹表法

对称密码

  • 单钥密码算法,加密密钥和解密密钥相同,或从一个易于推出另一个。
  • 要求发送者和接收者在安全通信之前,商定一个共享密钥。
  • 安全性依赖于密钥,只要通信需要保密,密钥就必须保密。

加解密速度很快,加密效率高,但是密钥分发困难,管理复杂,不便用于网络开放的环境中。

国际标准

DES:数据加密标准,56位密钥

AES:高级加密标准,128位、192位或256位密钥

机密性保证

加密/解密的过程保证数据的机密性。

网络与系统安全笔记------密码技术及应用
网络与系统安全笔记------密码技术及应用

对称加密的安全取决于密钥的保密性而非算法的保密性

消息认证与完整性

消息认证码(MAC): M A C = C K ( M ) MAC=C_K(M) MAC=CK​(M),M是变长消息,K是收发双方共享的密钥,C为MAC算法(基于对称密钥)。

基于分组算法构造:XORMAC、ANSIX9.9MAC、ANSIX9.19MAC。

基于hash算法构造:HMAC。

网络与系统安全笔记------密码技术及应用

通信双方拥有共享密钥才能计算消息的消息认证码,不仅能够确认数据完整性,还可以实现数据源的认证。

网络与系统安全笔记------密码技术及应用

密钥管理

密钥分发问题: 如何安全地让加、解密双方拥有相同的密钥(手动,自动分发)。

密钥管理问题: 多方通信时,随着通信人数增加,需要维护的对称密钥数量也会增加,密钥管理量将急剧增长。

KMC密钥管理中心

公钥密码(非对称密码)

现代密码学最重要的发明

密钥对: 由公钥(公开的密钥)与私钥(私有的密钥)组成。

公钥加密与对称加密相比,加解密速度慢,不适合用于加解

密大量数据。

加密模型(公钥加密)(机密性)

公钥加密私钥解密。

网络与系统安全笔记------密码技术及应用

可以用于对称密钥的分发:

网络与系统安全笔记------密码技术及应用

数字信封:结合了对称密码和公钥密钥的优点

网络与系统安全笔记------密码技术及应用

对消息使用对称密码加密,发送方使用接收方的公钥进行密钥加密,接受方使用私钥解密。

认证模型(数字签名)(真实性,不可否认性)

私钥签名公钥认证

网络与系统安全笔记------密码技术及应用

只使用公钥密码技术进行数字签名,对于明文数据量大的,签名的时间会变长,对应的性能会下降。

网络与系统安全笔记------密码技术及应用

利用公钥密码与信息摘要进行数字签名:

网络与系统安全笔记------密码技术及应用

保证真实性,不可否认性,完整性。

网络与系统安全笔记------密码技术及应用

在数字签名的基础上进行对称加密,然后只用公钥加密对称密钥用于密钥交换传输。相应的消息也会被加密,增加了机密性。

常用的加密算法

  • SM2(商密算法,ISO国际标准算法)
  • ECC(椭圆曲线算法)
  • RSA(计算量大于DES,很少用于大量数据的加密)

相应特性

机密性

公钥加密只有私钥才能解密,但是运算速度慢。

完整性

hash函数解决消息摘要问题,公钥密码解决传输过程中的加密问题。

可认证性与不可否认性

用发方私钥加密的消息,任何一个拥有其公钥的对方都能解密,并且使用发方之外的其它人的公钥都无法解密。

实际过程中往往是对摘要进行加密(数字签名)。

比较

对称密码:加解密速度快,加密强度高。但是密钥的分发、管理复杂,在开放网络中使用不便。

公钥密码:密钥分发简单,要保存的密钥量少,可用于数字签名。但是运算量大,加密速度慢,不能对大的数据进行加密。

密钥管理

密钥管理的阶段:生成,登记,存储,分配与协商,撤销与销毁。

生成

密钥的基本要求要有好的随机性(长周期性、非线性、等概性以及不可预测性).

密钥等级

  • 主密钥: 安全性至关重要,可用噪声发生器等方法产生。
  • 密钥加密密钥: 数量大,可由机器自动产生。(数据加密密钥)(二级密钥)
  • 会话密钥: 可利用密钥加密密钥及某种算法产生。(初级密钥)

产生方式

有边界生产:由中心(或分中心)集中生产。

无边界生产:由个人分散生产。

登记

将产生的密钥与特定的使用捆绑在一起(用于数字签名的密钥,必须与签名者的身份捆绑在一起),捆绑必须通过某一授权机构来完成。

存储

保证密钥在存储状态下的秘密性、真实性和完整性。各级密钥根据不同特点分级存储。

主密钥
  • 主密钥是最高级的密钥,所以它只能以明文形态存储,

    否则便不能工作。

  • 要求存储器必须是高度安全的,物理上是安全的,而且

    逻辑上也是安全的。

  • 通常是将其存储在专用密码装置中。
二级密钥
  • 二级密钥可以以明文形态存储,也可以以密文形态存储。
  • 通常采用以加密的形式存储二级密钥。这样可减少明文形态密钥的数量,便于管理。

初级密钥

初级文件密钥和初级数据加密密钥是两种性质不同的初级密钥。

初级文件密钥:其生命周期与受保护的文件的生命周期一样长,一般采用密文形态存储,通常采用以二级文件密钥加密的形式存储初级文件密钥。

初级数据加密密钥:按“一次一密”的方式工作,使用时动态产生,使用完毕后即销毁,生命周期很短。

分配

系统内的一个成员选择密钥,然后将它们安全传给其他成员。

  1. 密钥由A选定,然后通过物理方法安全传递给B
  2. 密钥由可信赖的第三方C选取并通过物理方法安全地发送给A和B。
  3. 如果A和B事先已有一密钥,那么其中一方选取新密钥后,用已有的密钥加密新密钥发送给另一方
  4. 如果A和B都有一个到可信赖的第三方C的保密信道,那么C就可以为A和B选取密钥后安全地发送给A和B。

    可信赖的第三方C就是密钥分配中心KDC,常用于对称密码技术的密钥分配。

  5. 如果A和B都在可信赖的第三方C发布自己的公开密钥,那么他们用彼此的公开密钥进行保密通信

    可信赖的第三方C就是证书授权中心CA,常用于非对称密码技术的公钥的分配。

协商

系统两个或者多个成员在公开的信道上联合建立秘密密钥。

一般情况下,一个密钥协商方案的密钥是某个函数的值,其输入量由通信双方提供,协商过程是由一系列顺序步骤完成的。两个成员的密钥协定也称为密钥交换。

常见的密钥协商算法:DH、ECC、RSA

密码学的应用

机密性:提供只允许特定用户访问和阅读信息,任何非授权用户对信息都不可理解的服务

通过数据加密实现

认证:提供与数据和身份认证有关的服务。

通过数据加密、散列函数或数字签名来实现

完整性:提供确保数据在存储和传输过程中不被未授权修改(窜改、删除、插入和重放等)的服务。

通过数据加密、散列函数或数字签名来实现

不可否认性:提供阻止用户否认先前的言论或行为的服务。

通过对称加密或非对称加密,以及数字签名等,并借助可信的注册机构或证书机构的辅助。

继续阅读