密码学概览


以下摘自《图解密码技术》

第1章 环游密码世界
加密:encrypt
解密:decrypt
明文:plaintext
密文:ciphertext

密码学家的工具箱6个重要工具:
对称密码
公钥密码
单向散列函数
消息认证码
数字签名
伪随机数生成器

根据密钥的使用方法,可以将密码分为对称密码和公钥密码两种。
对称密码(symmetric cryptography)是指在加密和解密时使用同一密钥的方式。
公钥密码(public-key cryptography)则是指在加密和解密时使用不同密钥的方式。
公钥密码又称为非对称密码(asymmetric cryptography)

单项散列函数保证的是数据的完整性(integrity),即数据是正牌的而不是伪造的。
消息认证码(message authentication code):用于确认消息是否来自所期望的对象、是否被篡改,能够保证完整性并提供认证(authentication)机制。
数据签名(digital signature):防止伪装、篡改、否认等威胁的技术。就是一种将现实世界的签名和盖章移植到数字世界中的技术。
伪随机数生成器(Pseudo Random Number Generator):模拟产生随机数列的算法,承担密钥生成的职责。

加盐(salt):具体来说就是在原有材料(用户自定义密码)中加入其它成分(一般是用户自有且不变的因素),以此来增加系统复杂度。当这种盐和用户密码相结合后,再通过摘要处理,就能得到隐蔽性更强的摘要值。

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

第2章 历史上的密码——写一篇别人看不懂的文章
密钥空间(keyspace):一种密码能够使用的“所有密钥的集合”
凯撒密码
简单替换密码
Enigma
Enigma是由德国人阿瑟·谢尔比乌斯( Arthur scherbius)于20世纪初发明的一种能够进 行加密和解密操作的机器。谢尔比乌斯使用能够 转动的圆盘和电路,创造出了人类手工所无法实现的高强度密码。在刚刚发明之际, Enigma 被用在了商业领域,后来到了纳粹时期,德国国防军采用了 Enigma,并将其改良后用于军 事用途。

第3章 对称密码(共享密钥密码)——用相同的密钥进行加密和解密
同一个比特进行两次xor之后就会回到最初的状态
能够产生不可预测的比特序列,对于密码技术贡献巨大,这种不可预测的比特序列称为随机数

由于无法判断得到的是不是正确的明文,因此一次性密码本(one-time pad)是无法破译的。一次性密码本是无条件安全的(unconditionally secure)
对称密码算法:
DES-Data Encryption Standard,可以短时间内破解
3DES-Triple-DES
AES-Advanced Encryption Standard
1997年,NIST开始公开募集AES;1998年,满足NIST募集条件的密码算法共15个;1999年,在募集到的15个算法中,5个算法入围了AES最终候选算法名单;2000年10月2日,Rijndael力压群雄,被选为AES标准算法。Rijndael是由比利时密码学家Joan daemen和Vincent Rijmen设计的分组密码算法。

第4章 分组密码的模式——分组密码是如何迭代的
分组密码的模式:DES和AES都属于分组密码,它们只能加密固定长度的明文。如果需要加密任意长度的明文,就需要对分组密码进行迭代,而分组密码的迭代方法就称为分组密码的“模式”。

ECB模式: Electronic code book mode(电子密码本模式),将明文分组后直接加密
CBC模式: Cipher block chaining mode(密码分组链接模式)
CFB模式: Cipher feed back mode(密文反馈模式)
OFB模式: Output feed back mode(输出反馈模式)
CTR模式: Counter mode(计数器模式)


第5章 公钥密码——用公钥加密,用私钥解密
公钥密码:公钥加密,私钥解密
Diffie-Hellman:解决密钥配送问题

公钥密码( public - key cryptography)中,密钥分为加密密钥和解密密钥两种。发送者用加密 密钥对消息进行加密,接收者用解密密钥对密文进行解密。 加密密钥是发送者加密时使用的,而解密密钥则是接收者解密 时使用的。也就是说,解密密钥从一开始就是由接收者自己保管的,因此只要将加密密钥发给发送者 就可以解决密钥配送问题了,而根本不需要配送解密密钥。


RSA(公钥密码算法):现在公钥密码的事实标准
其他公钥密码:ElGamal、Rabin、椭圆曲线密码

第6章 混合密码系统——用对称密码提高速度,用公钥密码保护会话密钥
混合密码系统:用对称密码提高速度,用公钥密码保护会话密钥
款款娉婷,顾盼生情,一眉一眼也倾城。
伪随机数生成器,用于产生会话密钥

第7章 单向散列函数——获取消息的“指纹”
单向散列函数(one-way hash function也叫消息摘要函数、哈希函数、杂凑函数)-一个输入+一个输出,输入称为消息message,输出称为散列值(hash value也叫消息摘要或指纹),散列值(长度固定,与消息长度无关) 用来检测消息的“指纹”(数据的完整性)

单向散列函数性质:
1、根据任意长度的消息计算出固定长度的散列值
2、能够快速计算出散列值
3、消息不同散列值也不同
4、具备单向性

单向散列函数例子:
1、MD4和MD5,散列值128bit
2、SHA-1(160bit )、SHA-256、SHA-384、SHA-512(统称SHA-2)
3、RIPEMD-160
4、SHA-3

第8章 消息认证码——消息被正确传送了吗
消息认证码-一种确认完整性并进行认证的技术,作用:判断消息是否被篡改以及是否有人伪装成发送者发送了该消息。

消息认证码的输入:任意长度的消息+收发双方之间共享的密钥
输出:固定长度的数据,称为MAC

消息的完整性(Integrity),就是“消息没有被篡改”这一性质, 完整性也叫一致性。
消息的认证(authentication)指的是“消息来自正确的发送者”这一性质。

消息认证码应用实例:
SWIFT(环球银行金融电信协会)、IPsec、SSL/TLS

第9章 数字签名——消息到底是谁写的
数字签名(digital signature)-两种行为:
1、生成消息签名:sender根据消息内容计算数字签名的值,意味着”我认可该消息的内容“
2、验证消息签名:检查该消息的签名是否真的属于sender
使用各自专用的密钥完成

数字签名对签名密钥和验证密钥进行了区分,使用验证密钥是无法生成签名的。 此外,签名密钥只能由签名的人持有,而验证密钥则是任何需要验证签名的人 都可以持有。
实现数字签名,可以采用公钥密码(RSA)机制。

数字签名的方法:
1、直接对消息签名
2、对消息的散列值签名

第10章 证书——为公钥加上数字签名
证书-为公钥加上数字签名
公钥证书(Public-Key Certificate, PKC),由认证机构(Certification Authority, CA)施加数字签名。 简称证书。

认证机构就是能够认定“公钥确实属于此人”并能够生 成数字签名的个人或者组织。认证机构中有国际性组织和政府所设立的组织,也有通过提供认 证服务来盈利的一般企业,此外个人也可以成立认证机构。


证书标准规范X.509, X.509证书大体上包含以下3部分内容:
签名前的证书——签名对象的信息
数字签名算法——对证书签名时所使用的算法
数字签名——对证书施加的数字签名


其他
SSL/TLS是世界上应用最广泛的密码通信方法。比如说,当在网上商城中输人信用卡号时, 我们的Web浏览器就会使用 SSLITLS进行密码通信。使用SSL/TLS可以对通信对象进行认证, 还可以确保通信内容的机密性。
SSL( Secure socket layer,安全套接层)是1994年由网景( Netscape)公司设计的一种协
议,并在该公司的Web浏览器 Netscape Navigator中进行了实现。随后,很多Web浏览器都采 用了这一协议,使其成为了事实上的行业标准。SSL已经于1995年发布了30版本。
TLS( Transport layer security,传输层安全)是IETF在SSL3.0的基础上设计的协议。在
1999年作为RFC2246发布的TLS1.0,实际上相当于SSL3.1。

PGP-密码技术的完美组合
PGP是于1990年左右由菲利普·季默曼( Philip zimmermann)个人编写的密码软件,现在 依然在世界上被广泛使用,具备现代密码软件所必需的几乎全部功能。PGP这个名字是 Pretty good privary(很好的隐私)的缩写。 你有没有过发送“性命攸关”的邮件的经历呢?自己发送的邮件如果能够平安到达指定的 接收者就能活命,相反,如果万一被人窃听到就没命了。出于政治等原因,世界上有很多人都 处于这样一种状况之中,而PGP就是为了保护处于这样极端状况下的人们的隐私而开发的密码 软件。PGP的历史可谓是一波三折,让人感觉像是在读一部谍战小说。如果想了解PGP幕后的 故事,可以读一读 Garfinkel所著的PGP: Pretty good privacy一书。     
PGP可以在MS-DOS、 Windows、UNIX、 Macintosh等很多平台上运行,版本包括商用版 和免费版。此外还有一个由GNU遵照 Opengpg(RFC4880)规范编写的叫作 Gnupg(GNU  Privacy guard)的免费软件。

猜你喜欢

转载自blog.csdn.net/u013686019/article/details/78784864