【专题课堂】密码学之现代密码——非对称密码
发布时间:2023-01-06
上篇我们了解了对称密码算法,接下来介绍公钥密码算法。
公钥密码算法又称非对称密码算法,一般建立在公认的计算困难问题之上,主要用于数字签名进行身份鉴别,也可用于加密和解密。它可以很好地解决对称密码算法中存在的密钥管理难题,每人只需要拥有一对公私钥就可以进行安全的加密通信。
(一)国外公钥密码算法
1.RSA算法
1977年,美国MIT的RonaldRivest、AdiShamir和LenAdleman提出了第一个较完善的公钥密码体制——RSA体制,这是一种基于大素数因子分解的困难问题上的算法。
RSA是被研究最广泛的公钥算法,从1978年提出到现在已近四十年,期间它经历了各种攻击的考验,逐渐被人们接受,是目前应用最广泛的公钥方案之一。通常认为RSA的破译难度与大数的素因子分解难度等价;如果提高素因子的大小,算法的安全性也会随之提高,但会相应降低算法效率,而目前公认安全的RSA密钥长度至少为3072位。
2.DSA算法
DSA算法是ElGamal签名算法的变种,被美国NIST称作为DSS。DSA算法是基于整数有限域离散对数难题的,其安全性与RSA相当,数字签名效率要比RSA要快很多。
DSA数字签名可以理解为是单向加密的升级,不仅校验数据完整性,还校验发送者身份,同时还由于使用了非对称的密钥来保证密钥的安全,所以相比消息摘要算法更安全。DSA算法仅产生数字证书,信息仅能用于验证,不适合进行加密通信,因此HTTPS不会使用该算法,但经常使用于SSH协议中。
3.ECDSA算法
ECDSA是椭圆曲线数字签名算法,是使用椭圆曲线密码(ECC)对DSA数字签名算法的模拟。ECDSA于1999年成为ANSI标准,并于2000年成为IEEE和NIST标准。椭圆曲线密码体制的安全性基于椭圆曲线离散对数问题的难解性,安全强度远远高于传统的离散对数算法,因此比特币目前使用ECDSA算法对货币的所有权进行鉴定。
ECDSA的优点在于计算参数小、密钥短、运算速度快、签名值也更小,因此ECDSA算法适用于处理能力、存储空间、带宽及功耗受限的场合。
(二)国内公钥密码算法
1.SM2算法
SM2算法全称为SM2椭圆曲线公钥密码算法,是国家密码管理局2010年12月发布的第21号公告中公布的密码行业标准。SM2算法属于非对称密钥算法,使用公钥进行加密,私钥进行解密,已知公钥求私钥在计算上不可行。发送者用接收者的公钥将消息加密成密文,接收者用自已的私钥对收到的密文进行解密还原成原始消息。
SM2算法相比其他非对称公钥算法如RSA而言具有安全性高、密钥短、私钥产生简单和签名速度快等显著优势,同时由于其良好的数学设计结构,加密速度也比RSA算法快。
2.SM9算法
SM9算法又称SM9标识密码算法,使用的是公钥密码体制,加密与解密使用两套不同的密钥,每个人的公钥就是他的身份标识,如电话号码、邮箱地址、身份证号等,因此SM9算法的密钥管理相对简单。在商用密码体系中,SM9算法主要用于用户的身份认证,另据新华网报道,SM9算法加密强度已超过RSA2048,等同于RSA3072。
2016年3月28日国家密码管理局发布SM9标识密码算法行业标准GM/T 0044-2016《SM9标识密码算法》,其中SM9数字签名算法部分内容于2017年同SM2数字签名算法一起被ISO采纳成为国际标准的一部分。
公钥密码算法又称非对称密码算法,一般建立在公认的计算困难问题之上,主要用于数字签名进行身份鉴别,也可用于加密和解密。它可以很好地解决对称密码算法中存在的密钥管理难题,每人只需要拥有一对公私钥就可以进行安全的加密通信。
(一)国外公钥密码算法
1.RSA算法
1977年,美国MIT的RonaldRivest、AdiShamir和LenAdleman提出了第一个较完善的公钥密码体制——RSA体制,这是一种基于大素数因子分解的困难问题上的算法。
RSA是被研究最广泛的公钥算法,从1978年提出到现在已近四十年,期间它经历了各种攻击的考验,逐渐被人们接受,是目前应用最广泛的公钥方案之一。通常认为RSA的破译难度与大数的素因子分解难度等价;如果提高素因子的大小,算法的安全性也会随之提高,但会相应降低算法效率,而目前公认安全的RSA密钥长度至少为3072位。
2.DSA算法
DSA算法是ElGamal签名算法的变种,被美国NIST称作为DSS。DSA算法是基于整数有限域离散对数难题的,其安全性与RSA相当,数字签名效率要比RSA要快很多。
DSA数字签名可以理解为是单向加密的升级,不仅校验数据完整性,还校验发送者身份,同时还由于使用了非对称的密钥来保证密钥的安全,所以相比消息摘要算法更安全。DSA算法仅产生数字证书,信息仅能用于验证,不适合进行加密通信,因此HTTPS不会使用该算法,但经常使用于SSH协议中。
3.ECDSA算法
ECDSA是椭圆曲线数字签名算法,是使用椭圆曲线密码(ECC)对DSA数字签名算法的模拟。ECDSA于1999年成为ANSI标准,并于2000年成为IEEE和NIST标准。椭圆曲线密码体制的安全性基于椭圆曲线离散对数问题的难解性,安全强度远远高于传统的离散对数算法,因此比特币目前使用ECDSA算法对货币的所有权进行鉴定。
ECDSA的优点在于计算参数小、密钥短、运算速度快、签名值也更小,因此ECDSA算法适用于处理能力、存储空间、带宽及功耗受限的场合。
(二)国内公钥密码算法
1.SM2算法
SM2算法全称为SM2椭圆曲线公钥密码算法,是国家密码管理局2010年12月发布的第21号公告中公布的密码行业标准。SM2算法属于非对称密钥算法,使用公钥进行加密,私钥进行解密,已知公钥求私钥在计算上不可行。发送者用接收者的公钥将消息加密成密文,接收者用自已的私钥对收到的密文进行解密还原成原始消息。
SM2算法相比其他非对称公钥算法如RSA而言具有安全性高、密钥短、私钥产生简单和签名速度快等显著优势,同时由于其良好的数学设计结构,加密速度也比RSA算法快。
2.SM9算法
SM9算法又称SM9标识密码算法,使用的是公钥密码体制,加密与解密使用两套不同的密钥,每个人的公钥就是他的身份标识,如电话号码、邮箱地址、身份证号等,因此SM9算法的密钥管理相对简单。在商用密码体系中,SM9算法主要用于用户的身份认证,另据新华网报道,SM9算法加密强度已超过RSA2048,等同于RSA3072。
2016年3月28日国家密码管理局发布SM9标识密码算法行业标准GM/T 0044-2016《SM9标识密码算法》,其中SM9数字签名算法部分内容于2017年同SM2数字签名算法一起被ISO采纳成为国际标准的一部分。
上一篇:【专题课堂】密码学之现代密码 下一篇:【专题课堂】密码学之现代密码——杂凑算法
返回列表