信息安全:CISSP 密码学知识总结

原文链接:http://blog.csdn.net/ddk3001/article/details/53997927

说明:本文内容是《CISSP Official Study Guide(第7版)》第6章(Cryptography and Symmetric Key Algorithms)和第7章(PKI and Cryptographic Applications)的学习总结。这两章全面介绍了密码学的知识,本文是概要总结,可作为地图参考,对于其中的细节,请查阅相关书籍和资料。

1 密码学基础

1.1 密码学的目标

目标说明技术
机密性保证数据未被泄露秘密密钥系统、公开密钥系统
完整性保证数据未被修改秘密密钥系统、公开密钥系统。
保护消息:数字签名 (第7章)。
保护文件:Hash算法 (第21章)。
身份验证对用户声明的身份进行验证。
A要确认正在通信的对方是B,
即,B要使A相信他是B。
挑战/响应技术
不可否认为接收者提供担保,
保证消息确实来自发送者,而不是其他人。
A说消息来自B,B否认不了。
即,A要使B不能否则消息是他发送的。
公开密钥系统:因为只有自己持有私钥。
不能使用秘密密钥系统,
因为B可以说消息是A自己做的。


FIPS Federal Information Processing Standard 联邦信息处理标准
FIPS 140-2 密码模块的安全需求 :为密码模块定义了硬件和软件需求

1.2 密码学的数学原理

1、One-Way Function单向函数
公钥密码系统都是建立在单向函数的基础上。

2、Nonce 随机数
在加密过程中添加Nonce,从而获得更大强度。
例子:IV(初始化向量) 参见DES

3、零知识证明
零知识证明:在不向第三方揭示事实本身的情况下,向第三方证明你对事实的了解。
密码学:使用公钥加密系统,能提供零知识证明。

4、Split Knowledge 分割知识
分割知识:责任分离
例子:密钥托管(key escrow)。

  • 密钥、数字签名、数字证书可以存储在托管数据库中。
  • 如果用户密钥丢失,可以从托管数据库中提取密钥。
  • “M of N控制”要求:N个人中至少有M个人一起工作,才能完成这项工作。

5、工作函数
工作函数:从成本或时间方面来度量密码系统的强度。

1.3 密码算法(Cipher)

1、One-Time pad 一次性密码本
主要障碍:很难生成、分发和保护冗长的密钥
主要应用:保护极其敏感的通信,实际中只用于短消息。

2、Running Key Cipher 滚动密钥密码
书籍密码,用于生成一次性密码本所需的密钥

3、混淆(Confusion)和扩散(Diffusion)
密码学算法依赖两种基本操作来隐藏明文信息:混淆和扩散
Confusion :明文与密钥的关系十分复杂,攻击者不能通过通过观察明文和密文的关系来确定密钥。
Diffusion :明文的改变导致多种变化,这种变化会扩散到整个密文中。
密码算法 :“替换”引入了混淆,“换位”引入了扩散。

1.4 现代密码学

秘密密钥系统公开密钥系统
机密性机密性、完整性、身份验证、不可否认性
带外交换密钥
密钥需要经常更新
剔除用户困难
带内交换公钥
只有用户私钥被破坏时,才需要重建密钥
容易剔除用户
速度快
用于批量数据加密
慢度速
用于少量数据加密(数字签名、数字信封、数字证书)
不可扩展:n(n-1)/2
每两人之间都需要一个密钥
可扩展:2n
每个人需要两个密钥(公钥和私钥)


Hash算法

2 对称密钥加密

2.1 对称加密算法

DESData Encryption Standard数据加密标准
AESAdvanced Encryption Standard高级加密标准
IDEAInternational Data Encryption Algorithm国际数据加密算法


2.1.1 DES

1977年 美国政府发布 用于政府通信
DES已经不再安全,2001年AES取代了DES

DES:分组长度64位,密钥长度56位(另外有8位用作奇偶校验或随意设置),16轮加密。

算法过程:http://wenku.baidu.com/view/ed21dc80b9d528ea81c7796b.html?re=view

操作模式Mode操作方法特点
ECBElectronic CodeBook
电子密码本
把明文分为64位的分组,
使用密钥对每个分组进行加密。
缺点:安全性差
只用于交换少量数据
CBCCipher Block Chaining
加密分组链接
第一个分组使用IV(初始化向量)进行异或,然后进行加密。
之后的每个分组与前一个密文分组进行异或,然后进行加密。
IV需要发送给接收方,方法:
1、以明文方式放在完整密文之前。
2、用密钥和ECB模式对IV进行加密。
缺点:如果某个分组出错,会传播到后面所有分组
(错误传播)。
CFBCipher FeedBack
加密反馈
CFB是流加密形式的CBC,
区别是只是对实时数据进行加密
缺点:错误传播
OFBOutput FeedBack
输出反馈
与CBC几乎相同,
区别是它使用种子值与明文进行异或。
IV用于创建种子值,通过对先前的种子值运行DES算法,可以派生出之后的种子值。
优点:不会传播错误
CTRCounTeR
计数器
流加密,类似于OFB,
但它不使用种子值,而使用计数器。
优点:不会传播错误
适合并行计算


ECB缺点:安全性差
分组加密流加密
CBCCFB缺点:错误传播
IVIV
OFBCTR优点:不会传播错误
IV+种子值IV+计数器


2.1.2 3DES

2DES并不比DES更安全
3DES使用相同的而算法实现更安全的加密。

有四个版本:

  • EEE3 、EDE3 密钥长度56*3 = 168 // 3个密钥
  • EEE2 、EDE2 密钥长度56*2 = 112 // 2个密钥

2.1.3 各种算法比较

美国政府算法分组长度密钥长度特点和用途
DES6456
16轮加密
1977年发布,用于美国政府通信
2001年AES取代了DES
3DES64168与DES的算法相同
实现了更安全的加密
AES128128
10轮加密
2001年开始使用
Rojndael扩展了AES
Skipjack6480用于FIPS 185 (联邦信息处理标准)
因密钥托管受美国政府控制,所以未被普遍接受。


专利算法分组长度密钥长度特点和用途
IDEA64128瑞士开发人员的专利
在PGP中使用
RC264128RSA公司
RC4流式128RSA公司
RC532/64/1280 ~ 2048RSA公司


自由使用算法分组长度密钥长度特点和用途
Blowfish6432~448比DES和IDEA更快。
在许多商业软件和操作系统中使用,例如SSH
Twofish128256是AES的另一个选择


2.2对称密钥管理

(1)创建和分发

  • 方法1:离线分发
  • 方法2:公钥加密
  • 方法3:Diffie-Hellman算法
    • 方法:是“离线分发”和“公钥加密”的折中,它基于标准离散对数问题。
    • 应用:S-RPC使用此算法交换密钥
    • 缺点:容易受到中间人攻击

Diffie-Hellman算法 :

1、交换数据:A和B约定两个大数,即p(质数)和g(整数),并且 1 < g < p

2、计算R和S

  • a) A选择一个随机的大整数r,计算:R = gr % p (r只有A知道)
  • b) B选择一个随机的大整数s,计算:S = gs % p (s只有B知道)

3、交换数据:A把R发送给B,B把S发送给A

4、计算密钥

  • a) A计算:K = Sr % p = gsr % p (r只有A知道)
  • b) B计算:K = Rs % p = gsr % p (s只有B知道)
  • c) K可作为通信用的私钥

5、 分析:根据g、p、R、S,无法推断出r和s?

(2)存储和销毁

(3)恢复和托管

  • Fair Cryptosystems(公平加密系统):密钥被分成多个部分,交给多方保存。
  • Escrowed Encryption Standard(托管加密标准):
    • 方法为政府提供了解密密文的技术方法,用于FIPS 185 (联邦信息处理标准)。
    • 这个标准是Skipjack的基础。因密钥托管受美国政府控制,所以Skipjack未被普遍接受。

2.3 密码术的生命周期

选择密码系统时,要考虑在信息的生命周期内,足以保证信息的安全。

选择时要考虑:

  • 列表内容
  • 加密算法
  • 密钥长度
  • 使用的安全交易协议,例如:SSL、TLS

3 非对称密钥加密

算法基于特点
RSA大质数的因式分解1977年提出,是RSA公司的专利,
2000年时RSA向公开领域发布了该算法。
Merkle-Hellman
背包算法
集合论中的超递增集的因式分解1984年被破解
El Gamal标准离散对数问题El Gamal扩展了Diffie-Hellman算法,用于支持公钥密码系统。可自由使用。
缺点:密文长度是明文长度的两倍。
ECC椭圆曲线的离散对数问题优点:使用相同密钥长度时,
比RSA和El Gamal提供更大的加密强度。


下面三种密钥长度提供相同的保护程度:

  • RSA : 1088位。 Rivest、Shamir、Adleman
  • DSA : 1024位。 Digital Signature Algorithm
  • ECC : 160 位。 Elliptic Curve Cryptosystem

3.1 RSA

RSA算法已经成为许多知名安全基础设置的安全骨干,例如微软、Nokia、Cisco。

参考:http://blog.csdn.net/sunmenggmail/article/details/11994013

RSA算法:计算公钥和私钥
1、选择两个大质数p和q,计算:

  • a) N = p * q
  • b) r = (p-1)(q-1)

2、选择一个小于 r 的整数 e,求得 e 关于模 r 的模反元素d。(模反元素存在,当且仅当e与r互质)
3、将 p 和 q 的记录销毁。
4、(N,e)是公钥,(N,d)是私钥。

例子:计算公钥和密钥
1、假设p = 3、q = 11

  • a) N = pq = 33
  • b) r = (p-1)(q-1) = (3-1)(11-1) = 20

2、计算:

  • a) 根据模反元素的计算公式,可以得出e·d ≡ 1 (mod 20),即e·d = 20n+1 (n为正整数);
  • b) 假设n=1,则e·d = 21。e、d为正整数,并且e与r互质,则e = 3,d = 7。
  • c) 到这里,公钥和密钥已经确定。公钥为(N, e) = (33, 3),密钥为(N, d) = (33, 7)。

3.2 Merkle-Hellman背包算法

基于“集合论中的超递增集”因式分解,
用的是:集合论中的超递增集(super-increasing sets)
1984年被破解

3.3 El Gamal

El Gamal扩展了Diffie-Hellman算法,用于支持公钥密码系统。
El Gamal和Diffie-Hellman算法都是基于:标准离散对数问题

优点:该算法可自由使用
缺点:密文长度是明文长度的两倍。

3.4 ECC

基于:椭圆曲线的离散对数问题

4 Hash函数

散列函数:输出消息摘要(散列值)
消息摘要:可以确认消息未被修改过

散列算法:

  • SHA :SHA-1、SHA-2、SHA3
  • MD :MD2、MD4、MD5
  • HMAC
  • HAVAL :对MD5做了修改。使用1024位的分组,产生128/160/192/224/256位的散列值。

4.1 SHA

SHA Secure Hash Algorithm 安全散列算法
SHA是NIST开发的美国政府标准(FIPS 180)

SHA-1 512位分组 160位散列值 // 已证明此算法存在缺陷

SHA-2:

  • SHA-256 : 512位分组、256位散列值
  • SHA-224 : 512位分组、224位散列值
  • SHA-512 : 1024位分组、512位散列值
  • SHA-384 : 1024位分组、384位散列值

SHA-3: 2012年,使用Keccak算法

4.2 MD

MD Message Digest 消息摘要
1989年,由Rivest开发

MD2 : 128位散列值 // 已证明不安全
MD4 : 512位分组、128位散列 // 已证明不安全
MD5 : 512位分组、128位散列 // 已证明不安全

5 数字签名

DSA 数字签名算法

5.1 使用公钥的DSA

“消息摘要”可用于数字签名算法(系统)
数字签名:证明某个消息来自一个特定用户(不可否认),并保证消息未被修改过(完整性)。

数字签名算法使用了:公钥密码系统(不可否认)、散列算法(完整性)

数字签名算法如下:
1、A执行操作:

  • a) 使用散列算法计算明文消息的消息摘要
  • b) 使用A的私钥对消息摘要进行加密,加密后的消息摘要就是“数字签名”

2、A将明文消息和数字签名一起发送给B

3、B收到消息后:

  • a) 使用A的公钥对数字签名进行解密,从而确认这个消息这是A发送的。(不可否认)
  • b) 计算明文的消息摘要,并与解密的消息摘要对比,从而确认明文内容未被修改。(完整性)

数字签名提供:完整性、身份认证、不可否认

如果要保证机密性,需要执行:
1、A用B的公钥对“明文消息+数字签名”进行加密,然后发送给B
2、B执行:

  • a) 用B的私钥对消息进行解密 => 机密性
  • b) 用A的公钥解密数字签名 => 身份认证、不可否认
  • c) 比较消息摘要 => 完整性

5.2 使用密钥的DSA

HMAC Hashed Message Authentication Code 散列消息身份验证码

简单方法 :明文消息 + 未加密的消息摘要 //
复杂方法 :明文消息 + 私钥加密消息摘要 // 完整性、不可否认
HMAC :消息明文 + 密钥加密消息摘要 // 完整性

5.3 数字签名标准

NIST FIPS 186-4指定了政府使用的数字签名算法(DSA),称为DSS(数字签名标准)

  • 散列算法:SHA-2
  • 加密算法:可以选择如下
    • DSA :FIPS 186-4
    • RSA :ANSI X93.1
    • EC DSA :ANSI X9.26 (椭圆曲线DSA)

另外两种数字签名算法:

  • Schnorr
  • Nybergrueppel

6 PKI(公钥基础架构)

6.1 PKI的基本概念

PKI的基本概念:

  • 使用“公钥和私钥”证明身份:

    • A生成公钥和私钥,把公钥给B
    • A用私钥加密信息发送B
    • B用公钥能解密消息,就能证明这个消息来自A。
  • 怎么保证“公钥”确实是A生成?(详见注册和验证)

    • CA是中立机构,A和B都相信它
    • CA确保A确实是他声称的身份,并用A提供的公钥制成“数字证书”。
    • A把CA确认过的数字证书(公钥)提供给B,因为B信任CA,所以相信这个公钥确实是A的。
CACertificate Authority证书授权机构CA为数字证书提供公证服务
RARegister Authority注册授权机构RA帮助CA验证用户的身份
Digital Certification数字证书用于证明个人的身份,本质是用CA的私钥加密了用户的公钥。
如果用户确认数字证书是由CA发布的,那就知道这个公钥是合法的。
数字证书被内建在许多Web浏览器、Email客户端软件中。


PKI是一个概念,使用一个中立机构来证明A提供公钥的有效的。

6.2 数字证书

数字证书:用于证明个人的身份,其本质是个人公钥。
如果用户确认数字证书是由CA发布的,那就知道这个公钥是合法的。

数字证书包含特定的身份识别信息,其标准是ITU-T X.509 。

  • 注册

    • CA验证用户身份,用户向CA提供公钥
    • CA建立一个数字证书,其中包含“用户身份和用户公钥”的ITU-T X.509数字证书
    • CA用其私钥对证书进行数字签名,提供给用户
    • 数字证书本质:用CA的私钥加密了用户的公钥
  • 验证

    • 用CA的公钥解密数字证书,从而确认这来自CA。
    • 检查保证数字证书没有在CRL(证书撤销列表)中
    • 确认证书中包含你信任的数据
  • 撤销

    • CRL 证书撤销列表 :列表验证。有延迟,但仍然是最常用的方法。
    • OCSP 联机证书状态协议 :实时验证。无延迟。

7 密码学的应用

7.1 便携设备

加密:

  • Windows :BitLocker 和EFS(加密文件系统)
  • Mac OSX :FileVault
  • TrueCrypt :开源软件,可用于Linux、Windows、Mac

7.2 隐写术和水印

Steganopgraphy 隐写术 // 隐藏信息
Watermarking 水印 // 保护知识产权

7.3 DRM

DRM Digital Rights Management 数字版权管理

  • 电子书 :DRM最成功的应用
  • 文档
  • 音乐
  • 电影
  • 视频游戏

7.4 Email

Email要求保护方法
机密性加密
完整性散列算法
身份验证、完整性数字签名
机密性、完整性、身份验证、不可否认加密 + 数字签名


电子邮件标准:

(1)PGP Pretty Good Privacy
主要用于:基于Web的电子邮件系统
商业版本:RSA进行密钥交换、 IDEA加解密、 MD5散列算法
免费版本:DH进行密钥交换、 CAST 128位加解密、 SHA-1散列算法

(2)S/MIME Secure / Multipurpose Internet Mail Extensions
主要用于:桌面邮件应用程序
RSA加密算法、AES和3DES加密算法

7.5 Web应用

SSL : Secure Socket Layer
TLS : Transport Layer Secure
HTTPS : HTTP over SSL

(1)TLS
SSL已经发现有漏洞,现在已被TLS替换。

(2)SSL
Netscape开发,用于对C/S之间网站流量进行加密。
HTTPS使用TCP 443端口在C/S之间协商加密通信会话。

SSL的目的:为Web浏览会话建立安全的通信通道。
方法是:
1、 用户访问一个网站时,浏览器检索Web服务器的数字证书,从中提取服务器的“公钥”。
2、 浏览器创建一个随机的“对称密钥”,使用服务器的“公钥”来加密,然后发送给服务器。
3、 服务器用自己的“私钥”进行解密,得到“对称密钥”,此后用这个对称密钥来交换信息。

7.6 网络连接

使用密码学算法保护通信线路安全,即对通信线路进行加密。

线路加密的类型:

  • 链路加密 :加密整个数据包,逐跳完全解密。
  • 端到端加密 :只加密数据包中的用户数据,接收端解密。

(1)SSH ( Secure Shell )
SSH提供了端到端加密
SSH提供了常见网络服务的加密方案:Telnet、FTP、Rlogin
两个版本(SSH1和SSH2),SSH1现在被认为不安全。

(2)IPsec
IPsec为安全网络通信提供了一个体系结构,它没有规定所有实现细节,而是一个开放的模块化架构。
IPsec用于在两个实体(系统、路由器、网关)之间建立交换信息的安全通道。
IPsec使用IP协议,通过公钥密码术提供:机密性、访问控制、不可否认、消息身份验证。
主要用于VPN,通常与L2TP一起使用。

IPSec有两个主要组件:

  • AH(身份验证首部):提供消息完整性、不可否认性、身份验证。
  • ESP(封装安全负载):提供数据包内容的机密性和完整性。

IPSec提供了两种操作模式:

  • 传输模式:只加密数据包的负载。用于peer间通信。
  • 隧道模式:加密整个数据包(包括头),用于网关间通信。

在运行时,通过创建SA(安全关联)来建立IPSec会话。
如果要双向通信,需要两个SA(每个方向一个)。
如果要支持使用AH和ESP的双向通信,需要四个SA。

(3)ISAKMP 网络安全关联和密钥管理协议
IPSec依赖于SA的系统,这些SA通过使用ISAKMP进行管理。
ISAKMP通过协商、建立、修改和删除SA,为IPSec提供后台的安全支持服务。

(4)无线互联
WEP : Wired Equivalent Privacy , WEP算法存在显著缺陷
WPA : Wifi Protected Access , 改进了WEP加密
IEEE 802.1x : 常用的无线安全标准

应用层HTTP, FTP, LPD, SMTP, Telnet, TFTP, EDI, POP3, IMAP, SNMP, NNTP, S-RPC, SET
表示层Encryption protocols and format types,
such as ASCII, EBCDICM, TIFF, JPEG, MPEG, MIDI
任务层NFS, SQL, RPC
传输层SPX, SSL, TLS, TCP, UDP
网络层ICMP, RIP, OSPF, BGP, IGMP, IP, IPSec, IPX, NAT, SKIP
链路层SLIP, PPP, ARP, RARP, L2F, L2TP, PPTP, FDDI, ISDN
物理层EIA/TIA-232, EIA/TIA-449, X.21, HSSI, SONET, V.24, V.35

8 密码学攻击

攻击方法:
1. 分析攻击:关注算法本身的逻辑性
2. 实现攻击:利用系统实现中的弱点
3. 统计攻击:利用密码系统的统计弱点,例如无法生成随机数和浮点错误
4. 暴力攻击:彩虹表(预先计算机密码散列值),应对方法是加盐
5. 频率分析和仅密文攻击:只有加密后的密文
6. 已知明文:有同一消息的明文和密文
7. 选定密文:攻击者能够解密密文的选定部分,使用这部分发现密钥。
8. 选定明文:攻击者能够加密他们选择的明文,从而分析加密算法的密文输出。
9. 中间相遇攻击:同时加密和解密,来发现密钥对。
10. 中间人攻击
11. 重放攻击
12. 生日攻击

  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
CISSP(Certified Information Systems Security Professional)官方学习指南是一本由(ISC)²(国际信息系统安全认证联盟)编写的备考指南,旨在帮助个人准备并通过CISSP认证考试。 这本指南涵盖了CISSP认证考试的十个主要领域,包括安全与风险管理、安全工程、通信和网络安全、身份和访问管理、安全评估和测试、安全操作及业务持续性、软件开发安全、密码学、安全体系结构和设计、法律、规范、纪律和职业道德。它提供了详细的内容,涵盖了相关的概念、技术和方法,以及在每个领域中的最佳实践。 该指南的编写是由业内经验丰富的安全专家组成的团队完成的,他们在各自的领域中有着广泛的知识和实践经验。他们的专业知识和见解可以帮助读者深入理解与CISSP相关的主题并应用到实际的工作中。 此外,该指南提供了大量的案例研究、练习题和实际场景,以帮助读者将概念应用到实践中,并提供了考试准备的建议和技巧。它还包含了各种附加资源,如术语表、参考文献和进一步阅读的推荐。 总体而言,CISSP官方学习指南是备考CISSP认证考试的一本权威且全面的参考书。它提供了广泛的内容和资源,以帮助读者深入了解信息系统安全的各个方面,并通过CISSP认证考试取得成功。无论是准备参加考试还是提高相关领域的知识,这本学习指南都是一个极具价值的工具。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值