这是关于密码学笔记的第一篇文章。本文中我们首先介绍了何谓“密码”,之后浏览了密码学中的六项主要技术,最后阐释了密码与信息安全的四条常识。
跟诸位大牛相比,笔者阅历尚浅、经验不足,笔记中若有错误,还需继续修正与增删。欢迎大家的批评与指正。
文章目录
1. 什么是“密码”
2. 密码学家的工具箱
2.1 对称密码与公钥密码(非对称密码)
2.2 单项散列函数
2.3 消息认证码
2.4 数字签名
2.5 伪随机数生成器
3. 密码与信息安全常识
参考书目
1. 什么是“密码”
(1) 登录淘宝或者QQ时需要输入用户名和“密码”——身份验证的凭据,严格来说应该叫作“口令”(password)
(2) 把DNA称作“遗传密码”——DNA的功能是将一种信息(主要是蛋白质的构成信息)转换成另一种信息(碱基的序列)并记录下来,本质上是一种“编码”(encoding)的过程
(3) 真正的“密码”(cryptography)——非常庞大而复杂的信息处理体系,涉及信息的机密性、完整性、认证等许多方面,保卫着信息的安全
2. 密码学家的工具箱
2.1 对称密码与公钥密码(非对称密码)
对称密码是指在加密和解密时使用同一密钥的方式。
公钥密码是指在加密和解密时使用不同密钥的方式,又称为非对称密码。
密码技术所提供的并不仅仅是基于密码的机密性,还包括用于检验消息是否被篡改的完整性、用于确认对方是否是本人的认证等。
2.2 单项散列函数
单项散列函数是一种保证完整性的密码技术。使用单项散列函数,就可以检测出数据是否被篡改过。
完整性指的是“数据是正牌的而不是伪造的”这一性质。
2.3 消息认证码
消息认证码是一种能够保证完整性和提供认证的密码技术。使用消息认证码,不但能够确认消息是否被篡改,而且能够确认消息是否来自所期待的通信对象。
2.4 数字签名
数字签名是一种能够确保完整性、提供认证并防止否认的密码技术,能够防止伪装、篡改和否认等威胁。
2.5 伪随机数生成器
伪随机数生成器是一种能够模拟产生随机数列的算法。随机数承担着密钥生成的重要职责。如果生成随机数的算法不好,窃听者就能够推测出密钥,从而带来通信机密性下降的风险。
3. 密码与信息安全常识
(1) 不要使用保密的密码算法。
原因:a. 密码算法的秘密早晚会公诸于世;b. 开发高强度的密码算法是非常困难的。
隐蔽式安全性(security by obscurity):试图通过对密码算法本身进行保密来确保安全性的行为。这是危险且愚蠢的。
(2) 使用低强度的密码比不进行任何加密更危险。
原因:用户容易通过“信息已经被加密了”这一事实获得一种“错误的安全感”,导致在处理一些机密信息的时候麻痹大意。
(3) 任何密码总有一天都会被破解。
破译密文所花费的时间,与要保密的明文的价值之间的权衡是非常重要的。
严格来说,绝对不会被破解的密码算法其实是存在的,这种算法称为一次性密码本,但它并不是一种现实可用的算法。
此外,还有另外一种技术被认为有可能造就完美的密码技术,那就是量子密码。
(4) 密码只是信息安全的一部分。
复杂的系统就像一根由无数个环节相连组成的链条,如果用力拉,链条就会从其中最脆弱的环节处断开。因此,系统的强度取决于其中最脆弱的环节的强度。(最脆弱的环节并不是密码,而是人类自己。)
参考书目
[1] 《图解密码技术》(第3版),[日]结城浩著,周自恒译,人民邮电出版社,2014年。
衷心感谢您的阅读。
查看下一篇请点击以下链接:【密码学笔记】第2部分 历史上的密码