假设消息源要发送机密消息给消息目的端,消息源将要发送的消息应用加密的算法和密码 K 进行加密得到密文 C,然后将密文 C 通过公共信道传递到目的端,目的端通过解密算法和密钥 K 进行解密密文得到明文。
为了目的端需要正确的解密密 C,消息源需要将密钥 K 从安全信道发送到目的端
对称密码的显性特点是加密密钥和解密密钥是一样的,需要注意的是传递密文 C 的公共信道是否安全,可能存在攻击者(密码分析者)根据获取得算法和密文试图推导出或估计出密钥 K 甚至破译出明文
对称密码模型五个基本成分
1.明文
2.加密算法
3.密钥
4.密文
4.解密算法
将明文视为位流或字节流,每次加密数据流的一位或一个字节。
消息端通过加密算法加密出密文流,目的端通过解密算法将接收到的密文流解密出明文流
同样双方共享的密钥 K 需要通过安全信道从消息源传递给消息的目的方
1.明文序列
2.密钥
3.密文序列
4.加密算法
5.解密算法
当密钥流序列是真的具有均匀分布的随机序列时,在同一对称密钥 K 下加密消息的密钥流之间没有任何的关联性,达到一次一密的效果,在理论上是不可破译的。
在实际应用中,真正的随机序列是不可能重复产生的,所以只能产生密码学意义上尽可能安全的伪随机密钥流。
流密码的加解密算法通常比较简单,如明文和密钥流逐位异或,其安全性依赖于密钥生成算法的强度。
RC4 算法简单、高效、适合软件实现,加密速度比分组密码 DES 快大约 10 倍,广泛应用于 Windows,Lotus Notes,SSL(Secure Socket Layer)、TLS(Tranport Security),无线通信中的 WEP(Wired Equivalent Privacy)和 WPA(Wi-Fi Protected Access )
国外数据安全公司 Imperva 的研究员 Itsik Mantin 在 2015 年 3 月 26 日曝出由于 RC4 的弱密钥漏洞,SSL/TLS 协议易受“受戒礼”攻击(Bar Mitzyah Attack)(CNVD-2015-02171,CVE-2015-2808)攻击者可以在特定环境下只通过嗅探监听就可以还原采用 RC4 保护的加密信息中的纯文本,导致账户、密码、信用卡信息等重要敏感信息暴露,并可以通过中间人(Main-i-the-middle)进行会话劫持。
RC4 的弱密钥漏洞也影响了其在其它领域的应用,Win10 Edge 以及 IE11 浏览器已在 2016 年初停止敌对 RC4 加密算法的支持;新的无线网络安全标准 802.11i 将比 RC4 更安全的 AES 作为其数据保密和完整性保护算法。
A5 有三个版本 A5/1,A5/2,A5/3
A5/1 安全性更高,仅限于欧洲使用,是欧洲数字蜂窝移动电话系统(GSM)采用的流密码加密算法,用于加密从移动台到基站的连接。
效率高,适合在硬件上高效实现
由中国科学院数据与通信保护研究教育中心(DACAS)自主设计,包括祖冲之算法简称(ZUC)和以此为基础的加密算法 128-EEA3 和完整性算法 128-三部分,于 2010 年 6 月首次发表
ZUC 算法是一个三层结构:上层为素数域上的线性反馈移位寄存器 LFSR,中间层为比特重组 BR,下层为非线性函数 F,具有比较高的安全性。
ZUC 算法以 128 比特的密钥和 128 比特的初始向量作为输入,每次输出 32 比特的流密码。EEA3 算法通过将明文直接与 ZUC 产生的密钥流进行异或实现加密,EIA3 算法利用明文比特控制 ZUC 产生的密钥流做迭代运算生成 MAC 值。
将明文划分为更长的分组(如 64 位,128 位等),将每个明文分组作为一个最小数据单元进行加密,通常得到与明文等长的密文分组。
待加密明文往往需要填充到分组块大小的整倍数
对于基本的分组密码算法,相同的数据分组输入和密钥会产生相同的输出,对于较长的数据,直接应用分组密码算法就需要多次使用相同的密钥加密多个分组,从而引发许多安全问题;在实际应用中,需要针对不同的需要采用不同的工作模式来增强密码算法的安全性
电子密码本(Electronic Code Book)模式
最简单的加密模式,明文消息被分成固定大小的块(分组),每个块被单独使用相同的方法进行加密;
适用于数据较少的情形
对于很长的信息或者具有特定结构的信息,其大量重复的信息或固定的字符结构会给攻击者提供大量的已知明密文对,安全性较差
密码块链(Cipher Block Chaining)模式
每一个分组和前一个分组的密文进行异或操作,然后再加密;第一个分组进行加密之前用初始化向量 IV 进行异或操作
密码块链的应用相当于对分组进行了两次加密,不同分组的密文块不独立,每个密文块依赖该块之前的所有明文块,增强了安全性,不过加解密过程不能并行处理。
具有一定随机性的初始化向量 IV 使得在相同密钥和加密算法下,每条消息(即使内容相同的消息)的密文具有唯一性,增加了密码分析的难度
链接模式的一个显著特点是差错传递,前面密文分组上的某些错误会影响到后面其他密文分组的解密。
密码反馈(Clipher Freedback)模式
具有流密码的特点,用前一个分组的密文加密产生下一个密钥流块,然后与但当前明文分组异或操作生成当前分组的密文。第一个分组是用初始向量的密文作为第一个密钥流块。
解密过程仍用同样的加密算法,前一个密文加密之后的输出与当前密文分组进行异或得到当前明文分组。
1.CFB 模式的链接模式会有差错传递
2.应用流密码加解密数据,对称加密算法只用于生成密钥流
3.若明文的最后一个分组长度小于分组整长,无需填充,对密钥流做移位和丢弃操作即可。
输出反馈(output Feedback)模式
和 CFB 类似:应用流密码方式加密数据,因此解密和加密流程 完全一样
和 CFB 不同的是:OFB 可以根据明文长度先独立生成相应长度的密钥流,从而不需要填充数据为块的整倍数。
与链接模式相比,明文分组不参与对称加密的过程,因而密文分组上某些错误不会影响到到其他密文分组的解密
然而若攻击者改变密文的一部分可能并不会被察觉,因而其消息完整性难以验证;
若明文的最后一个分组长度小于分组整长,无需填充,做移位和丢弃操作即可
密钥流只依赖与于密钥 K 和初始向量,若初始向量不变极易被攻击。
计数器(Counter)模式
和 OFB 相同:将分组密码转换为流密码
和 OFB 不同:它通过加密连续的“计数器”值来产生密钥流块。
1.软硬件效率高,同链接模式相比,CTR 能够并行加密和解密,没有差错传播
2.由于加密解密过程不依赖明文和密文,因此可以做预处理以提高效率
3.可以随机访问某一明文或者密文分组进行部分加密和解密
4.若明文的最后一个分组长度小于分组长度,无需填充填充,类似 CFB 做移位和丢弃操作即可
DES(Data Encryption Standard)是美国国家标准局 NIST 于 1977 年公布的由 IBM 公司研制的加密算法。
DES 算法的分组长度为 64 比特,密钥的长度是 64 比特,有效的密钥长度为 56 比特,通过密钥扩展算法进行扩展。DES 的加密和解密算法完全相同使用的轮函数为 Feistel 结构,交替使用代替或置换,共 16 轮,只是它的解密和加密的值秘钥的使用顺序刚好相反
随着计算能力的提高,DES 算法由于密钥长度太短面临安全威胁;
1998 年 5 月美国 EFF 宣布,他们以一台价值 20 万美元的计算机用 56 小时破译了 56 比特的 DES 算法
1998 年 12 月美国决定不再使用 DES;
DES 算法被扩展到二重 DES、三重 DES;
应用两个密钥的两次 DES 加密,密钥长度 112 比特;
1992 年已证明二重 DES 产生的映射不会等价于单重 DES 加密,安全性比单重 DES 加密有极大增强
二重 DES 加密的第一次加密结果等于密文第一次解密结果,利用此特性攻击者可以有效的实施中间相遇攻击
已知一对明密文对分别对明文和密文进行 2 的 56 次方加密和解密,寻找匹配的中间结果 X,从而获取到密钥,找到正确密钥的概率会非常的高(1 减去 2 的负十六次方)
预防的二重 DES 加密缺陷(易遭受中间相遇攻击)的有效措施是采用三重 DES 加密
利用两个不同密钥的三重 DES 和利用三个不同密钥的三重 DES
如图所示两个密钥的三重 DES 加密操作顺序是
1.应用密钥 K1 加密
2.应用密钥 K2 解密
3.再利用密钥 K1 加密
4.
如图所示两个密钥的三重 DES 解密操作顺序是
1.应用密钥 K1 解密
2.应用密钥 K2 加密
3.再利用密钥 K1 解密
如图所示三个密钥的三重 DES 加密顺序是
1.应用密钥 K1 加密
2.应用密钥 K2 解密
3.应用密钥 K3 加密
如图所示三个密钥的三重 DES 解密顺序是
1.应用密钥 K3 解密
2.应用密钥 K2 加密
3.应用密钥 K3 解密
三重 DES 加密的特点
密钥长度增加到 112 或 168 位,安全性大大增强,能抵抗暴力破解和中间相遇攻击;
软件实现的处理速度较慢;
明文长度仍为 64 位,与密钥长度相比,效率偏低。
美国国家标准和技术研究所 NIST 发起征集 AES(Advanced Encryption Standard)的活动。2001 年 10 月,NIST 宣布比利时的学者 Joan Daemen 和 Vincent Rijmen 设计的 Rijndael 为的 AES
1.密钥长度可变,可独立的指定 128/192/256 比特的密钥长度
2.AES 的轮函数不是 Feistel 结构,而是有限域上的非线性变换,轮函数的轮数可选为 10/12/14
3.加解密算法相似,但不完全相同
AES 结构简单,效率高,安全性好,是目前应用最为广泛的分组密码
IDEA(International data encryption algorithm)由瑞士学者提出,于 1991 年公布
分组长度和密钥长度都为 128 比特;
算法安全保密强度及相关软硬件实现性能与 AES 相当,算法不公开,仅以 IP 核的形式存在于芯片中;
目前已根据 SM1 算法研制了系列相关产品,广泛应用于电子政务,电子商务及国民经济的各个领域包括国家政务通、警务通等政治领域
分组长度和密钥长度为 128 比特
算法公开,2012 年发布为我国密码行业标准 GM/T 0002-2012
加密算法于密钥扩展算法都采用了 32 轮非线性迭代结构。解密算法与加密算法的结构相同只是轮密钥的使用顺序相反。
此算法主要用于无线局域网产品
分组长度和密钥长度为 128 比特
SM7 算法不公开;
SM7 适用于非接触式 IC 卡,应用包括身份识别类应用(门禁卡、工作证、参赛证),票务类应用(大型赛事门票、展会门票),支付与通卡类应用(积分消费卡、校园一卡通、企业一卡通等)
对称密码的安全使用是在算法不保密而密钥保密的条件下,满足以下两个安全要求
1.加密算法足够强。即使攻击者拥有一定数量的密文及其对应的明文,他也不能破译未知的密文或获得密钥
2.发送者和接受者必须在某种安全的形式下共享密钥且保证密钥安全
算法的不保密使得制造商可以开发低成本的加密芯片从而促进对称密码的广泛使用。