内容发布更新时间 : 2024/11/19 5:33:14星期一 下面是文章的全部内容请认真阅读。
国产密码算法及应用
商用密码,是指能够实现商用密码算法的加密、解密和认证等功能的技术。(包括密码算法编程技术和密码算法芯片、加密卡等的实现技术)。商用密码技术是商用密码的核心,国家将商用密码技术列入国家秘密,任何单位和个人都有责任和义务保护商用密码技术的秘密。
商用密码的应用领域十分广泛,主要用于对不涉及国家秘密内容但又具有敏感性的内部信息、行政事务信息、经济信息等进行加密保护。比如各种安全认证、网上银行、数字签名等。
为了保障商用密码安全,国家商用密码管理办公室制定了一系列密码标准,包括SSF33、SM1(SCB2)、SM2、SM3、SM4、SM7、SM9、祖冲之密码算法等等。其中SSF33、SM1、SM4、SM7、祖冲之密码 是对称算法;SM2、SM9是非对称算法;SM3是哈希算法。
目前已经公布算法文本的包括SM2椭圆曲线公钥密码算法、SM3密码杂凑算法、SM4分组密码算法等。
一、 国密算法简介
1. SM1对称密码
国密SM1算法是由国家密码管理局编制的一种商用密码分组标准对称算法,分组长度为128位,密钥长度都为128比特,算法安全
保密强度及相关软硬件实现性能与AES相当,算法不公开,仅以IP核的形式存在于芯片中。
采用该算法已经研制了系列芯片、智能IC卡、智能密码钥匙、加密卡、加密机等安全产品,广泛应用于电子政务、电子商务及国民经济的各个应用领域(包括国家政务通、警务通等重要领域)。
2. SM2椭圆曲线公钥密码算法
SM2算法就是ECC椭圆曲线密码机制,但在签名、密钥交换方面不同于ECDSA、ECDH等国际标准,而是采取了更为安全的机制。国密SM2算法标准包括4个部分,第1部分为总则,主要介绍了ECC基本的算法描述,包括素数域和二元扩域两种算法描述,第2部分为数字签名算法,这个算法不同于ECDSA算法,其计算量大,也比ECDSA复杂些,也许这样会更安全吧,第3部分为密钥交换协议,与ECDH功能相同,但复杂性高,计算量加大,第4部分为公钥加密算法,使用ECC公钥进行加密和ECC私钥进行加密算法,其实现上是在ECDH上分散出流密钥,之后与明文或者是密文进行异或运算,并没有采用第3部分的密钥交换协议产生的密钥。对于SM2算法的总体感觉,应该是国家发明,其计算上比国际上公布的ECC算法复杂,相对来说算法速度可能慢,但可能是更安全一点。
设需要发送的消息为比特串M,len为M的比特长度。为了对明文M进行加密,作为加密者的用户应实现以下运算步骤: 步骤1:用随机数发生器产生随机数k∈[1,n -1];
步骤2:计算椭圆曲线点C1=[k]G=(X1 ,Y1 ),将C1的数据类型转换为比特串;
步骤3:计算椭圆曲线点S=[h]P ,若S是无穷远点,则报错; 步骤4:计算椭圆曲线点[k]P =(X2,Y2),将坐标X2,Y2的数据类型转换为比特串;
步骤5:计算t=KDF(x2 ll y2 ,len),若t为全0比特串,则返回步骤1; 步骤6:计算C2 = M ⊕ t; 步骤7:计算C3=Hash(x2 ll M ll y2); 步骤8:输出密文C=C1 ll C2 ll C3。
2010年底,国家密码管理局公布了我国自主研制的“椭圆曲线公钥密码算法”(SM2算法)。为保障重要经济系统密码应用安全,国家密码管理局于2011年发布了《关于做好公钥密码算法升级工作的通知》,要求“自2011年3月1日期,在建和拟建公钥密码基础设施电子认证系统和密钥管理系统应使用SM2算法。自2011年7月1日起,投入运行并使用公钥密码的信息系统,应使用SM2算法。”近期,人民银行组织召开多次专题会议讨论研究金融领域国产加密算法升级改造的相关工作。
3. SM3杂凑算法
又叫文摘算法,也有叫杂凑算法的。功能与MD5,SHA-1相同。产生256位的编码。该算法位不可逆的算法。具体算法也是保密。SM3密码杂凑算法给出了杂凑函数算法的计算方法和计算步骤,并给出了