专心做可以提升自己的事情
学习并拥有更好的技能
成为一个值得交往的人
假设消息源要发送机密消息给消息目的端,消息源将要发送的消息应用加密的算法和密码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.发送者和接受者必须在某种安全的形式下共享密钥且保证密钥安全
算法的不保密使得制造商可以开发低成本的加密芯片从而促进对称密码的广泛使用。