一、密码学基本理论
在一个公钥密码体制中,一般存在公钥和私钥两个密钥
公钥密码体制中仅根据密码算法和加密密来确定解密密在计算上是不可行的
公钥密码体制中的私钥可以用来进行数字签名
MD5算法以512比特数据块为单位处理输入,产生128比特哈希值
杂凑函数SHA1的输入分组长度为512比特
SM3杂凑值长度为32字节,消息分组长度512比特,摘要值长度为256比特
DES加密算法S盒替换运算规则,第一、六位确定行,第二、三、四、五确定列,再转换成二进制
根据密码分析者可利用的数据资源来分类,可将密码攻击的类型分为四类:
仅知密文攻击(Ciphertext only attack):攻击者有些消息的密文,这些密文都是用相同的加密算法进行加密得到的
已知明文攻击(Know plaintext attack):攻击者不仅可以得到一些消息的密文而且也知道对应的明文
选择明文攻击(Chosen plaintextattack):攻击者不仅可以得到一些消息的密文和相应的明文,而且还可以选择被加密的明文
选择密文攻击(Chosen ciphertext attack):攻击者能够选择一些不同的被加密的密文并得到与其对应的明文信息,攻击者的任务是推算出加密密钥
DES加密算法中,密钥长度和被加密的分组长度分别是:56位和64位;在DES算法中,需要进行16轮加密,每一轮子密钥长度为48;DES属于对称加密算法
实现数字签名最常见的方法是公钥密码体制和单向安全 Hash 函数算法相结合
数字签名技术不可保证消息机密性,可以保证报文完整性、不可否认性以及提供身份认证
AES密钥长度为16、24、32字节,也就是128、192、256位
基于公开密钥的数字签名算法对消息进行签名和验证时,正确的签名验证方式:发送方用自己的私有密钥签名,接收方用发送方的公开密钥验证
由干双重DES不安全,存在中间相遇攻击,使它的强度与一个56位DES强度差不多
更多的,使用两个密钥的三重EDS,采用加密一解密一加密(E-D-E)方案。其加密与解密在安全性上来说是等价的。这种加密方案穷举攻击代价是2的112次方,有效密钥为112位
海量数据 不采用公钥加密的方式
SM2和SM9算法已成为国际标准
对称加密算法:IDEA、DES、RC5、AES
非对称加密算法:RSA、椭圆曲线密码算法
分组密码常用工作模式包括:电码本模式(ECB模式)、密码反馈模式(CFB模式)、密码分组链接模式(CBC模式)、输出反馈模式(OFB模式)
ECB特征每个明文分组的加密都是互相独立的
报文内容认证使接收方能够确认报文内容的真实性,产生认证码的方式包括:
①报文加密、②消息认证码(MAC)、③基于hash函数的消息认证码(HMAC)
密码学根据研究内容可以分为密码编制学和密码分析学。研究密码编制的科学称为密码编制学,研究密码破译的科学称为密码分析学
选择明文攻击:攻击者知道加密算法,并可通过选择对攻击有利的特定明文及其对应的密文,求解密钥或从截获的密文求解相应明文的密码分析方法。文件系统和数据库系统均存储大量密文信息,所以攻击者可选择指定明文来碰撞对应的密文,从而达到攻击目的
Diffie-Hellman密钥交换协议是一种共享密钥的方案,该协议是基于离散对数问题困难性
DES分组密码算法的轮密钥知识:在DES算法中64位主密钥在去掉奇偶校验位后剩下56位,分成左右各28位,然后分别进行移位操作,最后56位密钥送入PC-2压缩置换得到48位轮子密钥
SM9标识密码,将用户的标识(如邮件地址、手机号码、QQ号码等)作为公钥,省略了交换数字证书和公钥过程,使得安全系统变得易于部署和管理,非常适合端对端离线安全通信、云端数据加密、基于属性加密、基于策略加密的各种场合
数字签名标准DSS中使用的签名算法DSA是基于EIGamal和Schnorr两个方案而设计的
RSA算法是基于指数加密概念的,它以两个大素数的乘积作为算法的公钥来加密消息,而密文的解密必须知道相应的两个大素数
基于大数分解问题是指为了产生公钥和私钥,首先独立地选取两个大素数P和q(注:为了获得最大程度的安全性,P和q的长度应该差不多,都应为长度在100位以上的十进制数字)。然后计算下式:
雪崩效应:明文或密钥的少量变化会引起密文的很大变化,雪崩效应通常发生在块密码和加密散列函数中,RSA为公钥密码。RSA算法不具有雪崩效应
一个密码系统如果用E表示加密运算,D表示解密运算,M表示明文,C表示密文。D(E(M))=M
AES结构由以下4个不同的模块组成:字节代换(非线性模块)、行移位、列混淆、轮密钥加
数字信封中采用了单钥加密体制和公钥密码体制,信息发送者首先利用随机产生“对称密码”加密信息(因为非对称加密技术的速度比较慢),再利用接收方的“公钥”加密对称密码,被公钥加密后的对称密钥被称之为数字信封。数字信封技术保证数据在传输过程中的安全性
在传递信息时,信息接收方要解密信息时,必须先用自己的私钥解密数字信封,得到对称密码,才能利用对称密码解密所得到的信息
数字信封既发挥了对称加密算法速度快、安全性好的优点,又发挥了非对称加密算法密钥管理方便的优点