国密商用密码算法基础知识
AI-摘要
GPT-4.0-turbo GPT
AI初始化中...
介绍自己 🙈
生成本文简介 👋
推荐相关文章 📖
前往主页 🏠
前往爱发电购买
国密商用密码算法基础知识
Takake1.SM2
SM2是一种基于椭圆曲线密码算法,主要包括公钥加密和数字签名两部分。SM2的安全性基于椭圆曲线离散对数难题,对于给定的椭圆曲线,其离散对数问题的难度远超过同等长度的RSA。因此,SM2相比RSA,可以在提供相同安全级别的情况下,使用更短的密钥长度,从而节省存储和计算资源。
在SM2中,公钥和私钥的长度通常都是256位。具体来说:
私钥:私钥是一个256位的随机数,也就是32字节。这个随机数是在椭圆曲线的阶数范围内随机选择的。
公钥:公钥是由私钥生成的,它是椭圆曲线上的一个点,包括x和y两个坐标,每个坐标都是256位,也就是32字节。所以,公钥的总长度是512位,也就是64字节。
需要注意的是,虽然私钥只有256位,但由于椭圆曲线离散对数问题的复杂性,破解SM2的私钥需要的计算量与破解相同长度的RSA私钥所需的计算量相比,要大得多。因此,SM2可以提供相当高的安全性。
- SM2为非对称加密算法(加解密密钥不一致),即公钥加密私钥解密,公钥可公开,私钥不可公开。SM2不仅可以用来加密数据,SM2还可以用来数字签名,使用私钥对数据进行签名,公钥验证签名。
- SM2为非对称加密算法,因此每次加密相同的明文也会得到不同得密文数据。
- 与SM2同类型得其他常见非对称密码算法还有如RSA,ElGamal。
2.SM3
- SM3是一种密码散列函数,类似于MD5和SHA-1,SHA-2。SM3的输出是一个256位的散列值,适用于数字签名和验证、消息认证码以及随机数生成等密码应用中。SM3的安全性主要来自于其抗碰撞性,即对于任意的输入,都很难找到两个不同的输入,使得它们的散列值相同。
- HASH算法特性,对于相同的输入一定会得到相同的摘要,如果不同说明消息已经被篡改。
- 由于HASH特性,SM3只可用来签名校验,不可用于加密需要恢复为明文的数据块,SM3单向不可逆。
3.SM4
- SM4是一种分组密码,也就是对输入数据进行分组后,每组进行独立的加密或解密。SM4的分组长度和密钥长度都是128位。SM4使用了复杂的非线性变换和线性变换,以实现高效的混淆和扩散效果。SM4的安全性主要来自于其抗线性和差分攻击的能力。
- SM4为对称加密算法(加解密密钥一致),还有其他的对称密码算法如AES,DES,3DES,RC4
- SM4密钥长度为128位,16个字节(16位UTF-8字符,32位16进制数,21.33(22位+2占位符=24)位base64)
- SM4具有多种模式ECB(Electronic Codebook)模式、CBC(Cipher Block Chaining)模式、CFB(Cipher Feedback)模式,OFB(Output Feedback)模式,所有模式中只有ECB模式不需要加入偏移量,其余都需要加入偏移量也就是iv,且长度和密钥一致,因此不建议使用ECB模式。
- SM4密钥和偏移量为任意128位即可。
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果