商用密码 - 常见密码算法的总结 及扩展
2022-12-16 11:45:22 0 举报
AI智能生成
登录查看完整内容
为你推荐
查看更多
商用密码 - 常见密码算法的总结 及扩展
作者其他创作
大纲/内容
对称密码
公钥密码
机密性
窃听(秘密泄露)
单项散列函数
完整性
篡改(信息被修改)
消息认证码
认证
伪装(伪装成真正发送者)
数字签名
不可否认性
否认(事后称自己没有做)
信息安全所面临的威胁与应对这些威胁的密码技术
知识扩展
使用 MAC 验证消息完整性的具体过程是:假设通信双方 A 和 B 共享密钥 K,A用消息认证码算法将 K 和消息 M 计算出消息验证码 Mac,然后将 Mac 和 M 一起发送给 B。B 接收到 Mac 和 M 后,利用 M 和 K 计算出新的验证码 Mac*,若 Mac*和Mac 相等则验证成功,证明消息未被篡改。由于攻击者没有密钥 K,攻击者修改了消息内容后无法计算出相应的消息验证码,因此 B 就能够发现消息完整性遭到破坏。
使用SHA-1、SHA-224、SHA-256、SHA-384、SHA-512所构造的HMAC,分别称为HMAC-SHA1、HMAC-SHA-224、HMAC-SHA-384、HMAC-SHA-512。
利用杂凑算法将密钥、消息作为输入,生成一个消息摘要输出---RFC 2104中定义,由单项散列函数构成消息认证码
基于 HASH的函数HMAC
分支主题
图解
消息认证码MAC
数字签名是基于公钥密码体制(非对称密钥密码体制)的。数字指纹 明文用hash函数-获得一个摘要-——用私钥加密摘要
报文鉴别——接收者能够核实发送者对报文的签名;
报文的完整性——接收者不能伪造对报文的签名或更改报文内容。
不可否认——发送者事后不能抵赖对报文的签名;
特征
应用示例为了保证信息传送的真实性、完整性和不可否认性,需要对要传送的信息进行数字加密和数字签名。其传送过程如下:发送者A:1) A准备要传送的数字信息(明文)2) A对数字信息(明文)进行哈希(hash)运算,得到一信息摘要。3) A用自己的【私钥(SK)】对信息摘要进行加密得到A的数字签名,并将其附在数字信息上。(数字签名)4) A随机产生一个加密钥(DES密钥),并用此密钥对要发送的信息(明文)进行加密,形成密文。(对称加密)5) A用B的【公钥(PK)】对刚才随机产生的加密密钥进行加密,将加密后的DES密钥连同密文一起传送给B。(数字信封)接收者B:1) B收到A传送过来的密文和加过密的DES密钥,先用自己的私钥(SK)对加密的DES密钥进行解密,得到DES密钥。2) B然后用DES密钥对受到的密文进行解密,得到明文的数字信息,然后将DES密钥抛弃(即DES密钥作废)。3) B用A的公钥(PK)对A的数字签名进行解密,得到信息摘要。4) B用相同的has算法对收到的明文再进行一次hash运算,得到一个新的信息摘要。5) B将收到的信息摘要和新生成的信息摘要进行比较,如果一致,说明收到的信息没有被修改过。
数字信封
版本号
序列号
签名算法
颁发者
有效日期
主体
主体公钥信息
颁发者唯一标识符
主体唯一标识符
扩展项
基本证书域tbsCertificate
摘要
签名算法域signatureAlgorithm
签名值域signatureValue
"证书 -- 为公钥加上数字签名"
数字证书
有一个若干二进制位的信息,我们需要一个跟它长度一样的秘钥。加密的时候,我们会认为信息就是一连串的二进制数,秘钥也是。加密的结果--密文,也是一样的,每一位都是对应的信息位和对应的秘钥位进行异或运算得到的结果。异或是一种常见的逻辑运算。
一次性密码本
常见
首先,消息发送者要拥有消息接收者的公钥使用伪随机数生成器生成会话密钥,作为对称密码的密钥,加密消息用消息接收者的公钥,加密会话密钥将前2步生成的加密结果,一并发给消息接收者发送出去的内容包括用会话密钥加密的消息(加密方法:对称密码)用公钥加密的会话密钥(加密方法:公钥密码)
加密步骤
消息接收者用自己的私钥解密出会话密钥再用第1步解密出来的会话密钥,解密消息
解密步骤
混合密码系统,是将对称密码和公钥密码的优势相结合的方法,解决了公钥密码速度慢的问题,并通过公钥密码解决了对称密码的密钥配送问题。网络上的密码通信所用的SSL/TLS都运用了混合密码系统。
混合加密
密钥长度 128
分组长度 128
1.2 ISO成员团体1.2.156 中国1.2.156.197 中国国家密码管理局(又称OSCCA或SCA)1.2.156.10197 中国密码学标准化技术委员会(CCSTC)1.2.156.10197.1 密码算法
1.2.156.10197.1.102
算法标识符
128
ESP协议的变换ID的定义
ESP-SM1
SM1
加密算法与密钥扩展算法都采用32轮非线性迭代结构。解密算法与加密算法的结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。
1.2.156.10197.1.104
127
ESP-SM4
SM4
SM7
密钥长度 56
分组长度 64
DES(Data Encryption Standard)是一种单一密钥对称加解密算法。通信主体之间只有一个密钥,该密钥不对第三方公开。但由于密钥长度较短,导致安全性不高。DES算法的入口参数有三个:Key、Data、Mode。其中Key为8个字节共64位,是DES算法的工作密钥;Data也为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密,如果Mode为加密,则用Key去把数据Data进行加密,生成Data的密码形式作为DES的输出结果;如Mode为解密,则用Key去把密码形式的数据Data解密,还原为Data的明码形式作为DES的输出结果。在使用DES 时,双方预先约定使用的”密码”即Key,然后用Key去加密数据;接收方得到密文后使用同样的Key解密得到原数据,这样便实现了安全性较高的数据传输。
在Feistel网络中,加密的各个步骤称为轮( round ),整个加密过程就是进行若干次轮的循环。DES是一种16轮循环的Feistel 网络。
DESDES的结构(Feistel 网络)
密钥长度 112位或168位
三重DES(TDEA,Triple Data Encryption Algorithm)算法,这种方法用两个密钥对明文进行三次加密,假设两个密钥是K1和K2,三个步骤:1. 用密钥K1进行DEA加密。 2. 用K2对步骤1的结果进行DES解密。 3. 用步骤2的结果使用密钥K1进行DES加密。这种方法的缺点,是要花费原来三倍时间,从另一方面来看,三重DES的112位密钥长度是很“强壮”的加密方式了。
3DES
密钥长度 128、192、256
AES(Advanced Encryption Standard,高级加密标准),用于替代DES成为新一代的加密标准。具有128比特的分组长度,并支持128、192和256比特的密钥长度,可在全世界范围内免费得到。其前身为Rijndael(读作:Rain Doll)。Rijndael算法与AES的唯一区别在于各自所支持的分组长度和密码密钥长度的反胃不同。Rijndael是具有可变分组长度和可变密钥长度的分组密码,其分组长度和密钥长度均可独立地设定为32比特的任意倍数,最小值128bit,最大256bit。而AES将分组长度固定为128位,而且仅支持128、192和256位的密钥长度,分别称为AES-128,AES-192,AES-256。
AES
IDEA(International Data Encryption Algorithm)国际数据加密算法。分组密码IDEA明文和密文的分组长度为64位,密钥长度为128位。该算法的特点是使用了3种不同的代数群上的操作。IDEA共使用52个16位的子密钥,由输入的128位密钥生成。加密过程由8个相同的加密步骤(加密轮函数)和一个输出变换组成。而解密过程与加密过程相同。解密与加密唯一不同的地方就是使用不同的子密钥。首先,解密所用的52个子密钥是加密的子密钥的相应于不同操作运算的逆元,其次,解密时子密钥必须以相反的顺序使用。
主要模式:ECB--电子密码本(不安全)-将明文分组加密后的结果直接作为密文分组的模式CBC--密码分组链接-将上一个密文分组先与明文分组求xOR后再进行加密的模式CFB--密文反馈 ---与一次性密码本相似(明文、随机数比特序列、明文分组、密码算法输出)OFB输出反馈CTR计数器-将不断累加的计数器值加密生成密钥流的模式
IDEA算法
1.2.156.10197.1.103
算法标识
SMSF33分组密码算法
分组密码100
1.2.156.10197.1.201\t
ZUC
现今最为流行的流密码,应用于SSL(Secure Sockes Layer)、WEP。RC4生成一种称为密钥流的伪随机流,它同明文通过异或操作相混合以达到加密的目的。解密时,同密文进行异或操作。其密钥流的生成有两部分组成:KSA(the Key-Scheduling Algorithm)和PRGA(the Pseudo-Random Generation Algorithm)。由于RC4算法加密采用XOR,所以一旦密钥序列出现重复,密文就有可能被破解。推荐使用RC4算法时,必须对加密密钥进行测试,判断其是否为弱密钥。
RC4
流密码算法1.2.156.10197.1.200
大素数 p和q 、模数 n、 n的欧拉函数值φ(n)、加密指数e 、解密指数 d、明文 M、密文C
C=M^e mod n
M=C^d mod n
私钥 d
1.2.840.113549.1.1.1
RSA算法标识
1.2.840.113549.1.1.5
SHA1的RSA签名
1.2.156.10197.1.504
SM3的RSA签名
例子
RSA (大整数分解)
相比RSA等公钥算法,使用较短的密钥长度而能得到相同程度的安全性。预测未来ECC(Elliptic Curve Cryptography)将会取代RSA成为主流的密钥算法。
1.2.840.10045.2.1
ECC椭圆曲线密码编码学
其完全依赖于在有限域上计算离散对数的困难性。ElGamal的一个不足之处是密文的长度是明文的两倍。而另一种签名算法,Schnorr签名系统的密文比较短,这是由其系统内的单向散列函数决定的。
ElGamal公钥算法
私钥为256比特,公钥是一个点,由两个256比特的坐标表示;密文比明文长96个字节;相对RSA优点:安全性高、密钥短(私钥256)、加解密速度快、签名速度快。
特点
1.2.156.10197.1.300
公钥密码算法
1.2.156.10197.1.301.1
SM2-1签名算法
1.2.156.10197.1.301.2
SM2-2密钥交换协议
1.2.156.10197.1.301.3
SM2-3公钥加密算法
1.2.156.10197.1.301
SM2算法标识
500后为混合密码
1.2.156.10197.1.501
基于SM3和SM2签名
1.2.156.10197.1.502
SHA1的SM2签名
1.2.156.10197.1.503
SHA256的SM2签名
1.2.156.10197.1.505
SHA224的SM2签名
1.2.156.10197.1.506
SHA384的SM2签名
1.2.156.10197.1.507
RMD160的SM2签名
对象标识符
快速搜索证书采用的签名算法 SM2 with SM3 1.2.156.10197.1.501
algorithm id
快速搜索证书采用的交换类型
isakmp.exchangetype
筛选大的流量数据包
tcp.len > 1000
wireshark搜索字符串
SM2 (椭圆曲线)
椭圆曲线数字签名算法
ECDSA
1.2.156.10197.1.302.1
SM9-1签名算法
1.2.156.10197.1.302.2
SM9-2密钥交换协议
1.2.156.10197.1.302.3
SM9-3公钥加密算法
1.2.156.10197.1.302
基于SM9身份的公钥算法
对象标识符
SM9
非对称密码300
输出长度---128比特
输入长度无限制
1.2.840.113549.2.5
MD5
输出长度---160比特
2^64-1比特
1.3.14.3.2.26
3
AH协议变换ID的定义
SHA-1(160)
输出长度---256比特
2.16.840.1.101.3.4.2.1
SHA-256
输出长度---512比特
2^128-1比特
2.16.840.1.101.3.4.2.3
SHA-512
SHA-2
1.2.156.10197.1.401
SM3哈希算法
1.2.156.10197.1.401.1
SM3哈希算法,无密钥
1.2.156.10197.1.401.2
SM3哈希算法,带密钥
20
AH_SM3----AH协议变换ID的定义(使用带256比特的SM3密码杂凑算法的HMAC)
SM3(输出杂凑值256)
完整性:监测数据是否被篡改
1.2.156.10197.1.500\tDigest signing
1.2.156.10197.1.400Hash algorithm
HASH-哈希值、密码校验、指纹、消息摘要
单独使用杂凑算法并不能保证数据完整性(传输信道无法保证)
杂凑算法400
现代密码
Enigema
机械加密
近代密码
凯撒密码
playfair密码
明文和密文字符一致,仅仅是顺序发生变化
置换密码
简单替换密码
栅栏密码
将明文中的单个字符或一组字符,映射为同一语言体系,或非同一语言体系中的单个字符或一组字符。
替换密码
古代密码
生成密钥生成密钥对生成初始化向量(IV)生成你once生成盐
随机数的用途
随机性-不存在统计学偏差,是完全杂乱的数列。不可预测性-不能从过去的数列推测出下一个出现的数不可重现性-除非将数列本身保存下来,否则不能重现相同的数列。
随机数的性质
满足以下三个条件的序列称之为随机序列该序列服从均匀分布;该序列的各个元素相互独立;从任意的片段序列都不能推断出序列余下的部分
随机序列的定义
分类
随机数
Sun-小丑面具
密码学
0 条评论
回复 删除
下一页