1 密码学的基本概念
- 信息安全的基本属性
(1)机密性(Confidentiality)
|——保证信息为授权者使用而不泄露给未经授权者。
|——别人“看不到”或“看不懂”
(2)认证(Authentication)
|——消息认证,保证消息来源的真实性
|——身份认证,确保通道实体的真实性
|——证明“你就是你”
(3)完整性(Integrity)
|——数据完整性,未被未授权篡改或者损坏
|——系统完整性,系统未被非授权操纵,按既定的功能运行
|——信息没有被“动过”
(4)不可否认性(Non-repudiation)
|——要求无论发送方还是接收方都不能抵赖所进行的传输
(5)可靠性(Reliability)
|——特定行为和结果的一致性
(6)可用性(Availability)
|——保证信息和信息系统随时为授权者提供服务,而不要出现非授权者滥用却对授权者拒绝服务的情况。
(7)可控性(Controllability)
|——授权实体可以控制信息系统和信息使用的特性
(8)审计(Accountability)
|——确保实体的活动可被跟踪 - 什么是密码学?
(1)密码学能做什么?
|——机密性:如何使得某个数据自己能看懂,别人看不懂
|——认证:如何确保数据的正确来源,如何保证通信实体的真实性
|——完整性:如何确保数据在传输过程中没有被删改
|——不可否认性:如何确保用户行为的不可否认性
(2)功能如何实现?
|——算法
|——协议 - 密码算法
(1)基本概念
|——明文M:要处理的数据
|——密文C:处理后的数据
|——密钥k:秘密参数
|——加密函数:C=E(k, M)或C = Ek(M)
|——解密函数:M=D(k, C)或M = Dk©
(2)密码算法需求
|——需求1:可逆,即算法的使用者可以将密文恢复成明文
|——需求2:不可逆,敌手无法将密文恢复成明文
|——秘密参数:密钥
(3)密码算法实际上是一个带有秘密参数的函数
|——知道秘密参数,求逆非常容易
|——不知道秘密参数,求逆是不可行的 - 保密通信系统模型
- 密码算法的分类
(1)按照密钥的使用方式不同分类
|——对称密钥密码:加密密钥与解密密钥相同。如:分组密码,流密码
|——非对称密钥密码体制:加密密钥与解密密钥不同。如:公钥加密,数字签名
(2)按照功能分类
|——加密算法:用于机密性解决方案
|——杂凑函数:用于完整性解决方案
|——数字签名:用于认证和不可否认性 - 为什么需要密码学?
(1)现代密码在社会中的广泛应用
“密码技术”是保障信息安全的基本技术。 - 密码学在信息安全中的地位
2 中国古代密码艺术
- 密本型:用预先编定的字母或数字密码组,代替明文中的数字、字母、音节、单字、词汇、短语、符号等,以实现明文变换。在普通本的基础上,密本里编制词汇、短语、句子等,既增加密本的密度,又缩短电报长度,称做“特别本”。
- 加乱型:用有限元素(字母或数码)组成一串序列作为乱数,按规定的算法,与明文信息序列相结合变成密信息。
3 外国古代密码艺术
1953年,分组加密密码。
4 密码学发展简史
- 密码学发展时间轴
- 古典密码
(1)著名密码算法
|——500 B.C.,古斯巴达“天书”密码(置换密码)
|——205-123 B.C.,古希腊人棋盘密码(代替密码)
|—— 50 B.C.,古罗马凯撒密码(代替密码)
|—— 16世纪,维吉尼亚的密码(代替密码) - 古典密码阶段
(1)时间:1949年之前
(2)特点:
|——密码学还不是科学,而是艺术。
|——出现一些密码算法和加密设备
|——出现密码算法设计的基本手段(代替法和置换法)
(3)保密性:数据的保密基于加密算法的保密
(4)里程碑事件
|——1883年Kerckhoffs第一次明确提出了密码编码原则:加密算法应建立在算法的公开不影响明文和密钥的安全,即密码算法的安全性仅依赖于对密钥的保密。
|——这一原则已得到普遍承认,成为判定密码强度的衡量标准,也成为古典密码和现代密码的分界线之一。 - 现代密码I阶段
(1)时间跨度:1949年-1976年
(2)1949年,Shannon发表“The Communication Theory of Secret Systems”
|——定义了理论安全性,提出了扩散和混淆原则
|——奠定了密码学的理论基础
|——艺术→科学
(3)里程碑事件
|——1949年Shannon的“保密系统的信息理论”
|——1967年Kahn的“The Codebreakers”
|——1971-73年IBM的Feistel等的几篇技术报告
|——Lucifer→DES
(4)保密性:数据的安全基于密钥而不是算法的保密 - 现代密码II阶段
(1)时间跨度:1976-1994
|——1976年Diffie和Hellman的“New Directions in Cryptography”提出了公钥密码的概念
|——1977年Rivest,Shamir和Adleman提出了RSA公钥算法
|——1977年,DES成为了第一代公开的、完全说明细节的商业级密码标准
|——90年代逐步出现椭圆曲线等其他公钥算法
公钥密码部分解决了对称密钥密码算法密钥共享和密钥管理困难的问题!
(2)特点:
|——对称密钥加密算法进一步发展,加密算法更加复杂,以DES为代表的加密算法正式成为行业标准。
|——第二把加密密钥“公钥”开始出现,以RAS加密算法为代表的公开密钥加密算法开始流行。
|——以Hash算法为代表的解决数据完整性的数据摘要算法也开始出现 - 现代密码III阶段
(1)时间区域:1994年至未来
|——1994年,Shor提出量子计算机模型下分解大整数和求解离散对数的多项式时间算法
|——2000年,AES正式取代DES成为新的加密标准
|——2006年,第一届后量子密码学国际研讨会召开
|——2017年,NIST开始征集后量子密码标准
(2)后量子密码
|——基于编码的公钥密码
|——基于格的公钥密码
|——基于HASH的公钥密码
|——多变量公钥密码
(3)公钥密码未来发展阶段
5 密码分析学
- 密码学学科分支
(1)两个分支形成既对立又统一的矛盾体
(2)密码分析学的前提密码体制的安全性仅依赖于对密钥的保留,而不应依赖于算法的保密。
(3)密码分析学的目标:恢复合法密文相应的明文以及恢复密钥。
- 密码分析方法的分类
(1)密码体制的攻击方法
|——穷举攻击:通过测试所有的密钥来进行破译。对抗:可增大密钥的数量。
|——统计分析攻击:通过分析密文和明文的统计规律来破译。对抗:设法使明文和密文的统计规律不一样。
|——解密变换攻击:针对加密变换的数学基础,通过数学求解设法找到解密变换。对抗:选用具有坚实的数学基础和足够复杂的加密算法。
(2)密码体制的攻击(密码破译),以下攻击强度递增,以敌手获得信息分类
|——唯密文攻击(Ciphertext Only Attack)
|——已知明文攻击(Known Plaintext Attack)
|——选择明文攻击(Chose Plaintext Attack)
|——选择密文攻击(Chose Ciphertext Attack)
以上一切的目的在于破译出密钥或密文! - 无条件安全和计算上安全
(1)无条件安全的(不可破译的);
|——无论截获多少密文,都没有足够信息来唯一确定明文,则该密码是无条件安全的,即对算法的破译不比猜测有优势。
(2)计算上安全的;
|——使用有效的资源对一个密码系统进行分析而未能破译,则该密码是强的或计算上安全的。
(3)密码算法满足的准则
|——破译密文的代价超过被加密信息的价值。
|——破译密文所花的时间超过信息的有用期。
6 古典密码
- 置换密码
(1)对明文字符或字符数组进行位置移动的密码;
(2)明文的字母顺序改变,明文字母没有改变。 - 代替密码
(1)代替(Substitution)密码构造一个或多个密文字母表,然后用密文字母表中的字母或者字母组来代替明文字母或字母组,各字母或字母组的相对位置不变,但其本身的值改变了。
(2)代替密码分为单表代替密码和多表代替密码。 - 单表代替密码
(1)加法密码
y=x+k(mod 26)
明文:x
密文:y
密钥:k
解密:x=y-k(mod 26)
Caesar密码就是一种加密密码(k=3)
明文字母:ABCDEFGHIJKLMNOPQRSTUVWXYZ
密文字母:DEFGHIJKLMNOPQRSTUVWXYZABC
设明文为:LOVE
则密文为:ORYH
(2)乘法密码
y=kx(mod 26)
明文:x
密文:y
密钥:k
解密:x=k-1y(mod 26)
条件:(k, 26)=1
关键在于计算k-1:方法使用的是扩展欧几里得算法,若(m, n)=1,则存在整数k1,k2使得k1m+k2n=1,这里k1就是m-1 mod n,注意要将k1变为正数,即-k1 mod n = (n-k1) mod n。
(3)仿射密码
加密函数:y=ax+b(mod 26)
密钥:a,b
解密函数:x=a-1(y-b)(mod 26)
条件:(a, 26)=1
仿射密码就是乘法密码和加法密码的结合。 - 多表代换密码
多表代换密码首先将明文M分为由n个字母构成的分组M1, M2, …, Mj, 对每个分组Mi的加密为:
Ci≡AMi+B(mod N),i=1,2,…,j
其中(A, B)是密钥,A是n×n的可逆矩阵,满足gcd(|A|, N)=1(|A|是行列式),B=(B1, B2, …, Bn)T,C=(C1, C2, …, Cn)T,Mi=(m1, m2, …, mn)T。对密文分组Ci的解密为:
Mi≡A-1(Ci-B)(mod N),i=1,2,…,j
7 总结
- 保密通信的安全威胁:
(1)被动攻击:窃听,嗅探流量分析等,主要是破坏消息的机密性;
(2)主动攻击:中断,篡改,假冒等。
中断破坏了信息的可用性
篡改破坏了信息的完整性
假冒破坏了真实性(认证) - 保密通信系统的安全需求有:
(1)机密性——采用加密机制
(2)完整性——采用完整性验证机制,如Hash函数,消息认证码
(3)真实性——采用认证机制,如数字签名,认证协议
(4)中断——用密码学的技术没有太好的办法
以上内容摘自电子科技大学聂旭云教授个人看法。