密码算法小总结
现代密码学理论中,算法是密码技术的核心。常见的密码算法包括对称密码算法,公钥密码算法和杂凑密码算法三类。
1. 对称密码算法
ZUC、SM4、DES、TDEA、AES
对称密码算法有两种形式:一种是序列密码(也叫流密码),另一种是分组密码(也叫块密码)
1.1 序列密码与分组密码
序列密码分组密码ZUC、RC4(国外)、SNOW(国外)SM4、DES、TDEA、AES将密钥和初始向量作为输入,通过密钥流生成算法输出密钥流,然后将明文序列和密钥流进行异或,(因为密钥流是提前生成的,并且加密操作也只是一次,所以执行速度更快,占用资源也会少。)得到密文序列。先将明文消息根据分组大小进行分组,再将明文分组、密钥和初始向量一起作为输入(初始向量可以没有)然后通过分组加密算法直接输出密文序列嵌入式系统、移动终端(功耗或计算能力)语音通信、视频通信(实时性要求高的场景)无线局域网产品分组密码有七种模式,书上的主要有三种:ECB(简单,一般不用)、CBC、CTR (因为分组密码每次只能处理固定长度的明文,为了处理任意长度的明文,所以通过迭代方式来处理,这种方式称为分组密码的“模式”)
1.2 ZUC和SM4
ZUCSM4密钥长度128比特(现在5G使用的是256比特的密钥)分组长度128比特,密钥长度128比特4G移动通信密码算法国际标准用于无线局域网产品该算法包括祖冲之算法(ZUC)、加密算法(128-EEA3)和完整性算法(128-EIA3)三个部分加密算法与密钥扩展算法都采用32轮非线性迭代结构
2. 公钥密码算法
RSA(大整数因子分解)、SM2、SM9
公钥加密算法数字签名算法计算复杂度高,加密速度慢数据完整性,签名者身份的真实性,签名行为的不可否认性公钥加密,私钥解密私钥对消息进行签名,公钥对签名验证
2.1 SM2椭圆曲线公钥密码算法
SM2算法主要包括:数字签名算法,密钥交换协议,公钥加密算法三个部分。
SM2公钥加密算法,安全性体现的三个方面:1. 算法具备单向性。2.算法产生的明文和密文具备不可区分性,即不知道密文是由明文中的哪个加密而来。3.密文具备不可延展性,即不可扩展密文构造新的合法密文。
SM2RSA安全性高安全性低密钥短 256比特密钥长 通常需要2048比特,甚至更长私钥产生简单(只需要产生一个256范围的随机数)私钥产生复杂(需要产生两个随机的大素数)签名速度快签名速度慢
2.2 SM9标识密码算法
为了降低公开密钥系统中密钥和证书管理的复杂性,提出了标识密码的理念。标识密码将用户的标识(如邮件地址、手机号码、QQ号码等)作为公钥,省略了交换数字证书和公钥过程,使得安全系统变得易于部署和管理,非常适合端对端离线安全通讯、云端数据加密、基于属性加密、基于策略加密的各种场合。
SM9算法不需要申请数字证书,适用于互联网应用的各种新兴应用的安全保障。如基于云技术的密码服务、电子邮件安全、智能终端保护、物联网安全、云存储安全等等。这些安全应用可采用手机号码或邮件地址作为公钥,实现数据加密、身份认证、通话加密、通道加密等安全应用,并具有使用方便,易于部署的特点。
2.2.1 SM9数字签名算法
签名者除了有私钥外还有一个自己的标识,私钥是由密钥生成中心通过主私钥和签名者的标识结合产生,签名者用私钥对数据产生数字签名,验证者用签名者的标识生成公钥,即可验证签名的可靠性。
2.2.2 SM9密钥交换协议
协议可以使通信双方通过对方的标识和自身的私钥经过两次或者三次信息传递的过程,计算获取一个由双方共同决定的共享秘密密钥。而且该密钥还能作为对称密密麻麻算法的会话密钥。
2.2.3 SM9算法的安全性和效率
1.SM9 算法能够避免弱椭圆曲线的选取问题,并能抵抗常见的针对椭圆曲线的攻击
2.复杂性高,计算复杂,破解难度大
3.SM9的安全性也和嵌入次数有关,次数越多越安全。
2.3 RSA(国外)
RSA算法基于大整数因子分解难题设计,是迄今为止最广泛的公钥密码算法,用于数字签名,安全认证等。
1024比特及以下的密钥长度的RSA算法目前已经不推荐使用,至少2048比特。
3. 密码杂凑算法
国密:SM3 国外算法:MD5、SHA-1、SHA-2、SHA-3
3.1 SM3 密码杂凑算法(哈希算法、散列算法)
SM3密码杂凑(哈希、散列)算法适用于商用密码应用中的数字签名和验证,消息认证码的生成与验证以及随机数的生成,可满足多种密码应用的安全需求。在SM2,SM9标准中使用。
此算法对输入长度小于2的64次方的比特消息,经过填充和迭代压缩,生成长度为256比特的杂凑值,其中使用了异或,模,模加,移位,与,或,非运算,由填充,迭代过程,消息扩展和压缩函数所构成。具体算法及运算示例见SM3标准。
3.2 国外杂凑算法
MD5用于数字签名、完整性保护、安全认证、口令保护等。一系列变换后,形成的是128比特的消息摘要(目前不适用)结构SHA-1消息摘要长度为160比特(也已经淡出历史舞台)M-D结构SHA-2224、256、384、512比特的四种长度M-D结构SHA-3与SHA-2类似包含多个算法“海绵”结构
版权归原作者 宁宁的日常笔记 所有, 如有侵权,请联系我们删除。