技术分享丨这是一篇简单的小科普——什么是对称加密算法?(上)
Posted 北卡科技
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了技术分享丨这是一篇简单的小科普——什么是对称加密算法?(上)相关的知识,希望对你有一定的参考价值。
大家好,我是贾正经,我想死你们啦~
沉寂了好长一段时间,大家有没有想我~对于我的“诈尸”,是不是很惊讶!
没错!知识科普它回来啦!本期就由我来为大家科普一下——什么叫对称加密算法~
什么是密码?
首先先带大家了解一下,什么是密码?
很多人认为,密码不就是在登录各种系统,输入账号密码的那个密码吗?其实,这个“密码”本质上只是一个“口令”,与真正的密码毫无关系。
真正的密码,是指使用特定变换对数据等信息进行加密保护或安全认证的物项(承载算法、密钥、密文的介质)和技术,主要用于加密和安全认证(身份识别、完整性、抗抵赖性)。
密码按照保密等级,又分为核密、普密、商密三种,其中核密、普密用于涉及国家秘密领域,商密用于非涉及国家秘密领域。
接下来,我们重点讲一下这个商密。
什么是商用密码?
商密,全称商用密码,是国家密码局认定的国产密码算法,又称国密算法,为了保障商用密码的安全性,国家商用密码管理办公室制定了一系列密码标准,包括对称算法(SM1、SM4等),非对称算法(SM2、SM9)以及哈希算法(SM3)等等。
这些密码标准可以有效保护信息安全所面临的威胁,例如:
为防止信息被窃取、监听,避免秘密泄露,需要确保信息的机密性,可以使用对称加密与非对称加密对信息进行加密保护;
为防止信息被篡改,导致接收者收到错误的信息,可以使用数字签名、消息认证码、单向散列函数的技术,保证信息的完整性;
不少黑客会伪装成真正的发送者,给你发送虚假的信息,此时需要对发送者的身份进行认证,可使用消息认证码、数字签名的方式;
不可否认性也称不可抵赖性,可以保证在信息交互过程中所有参与者都不可能否认或抵赖曾经完成的操作和承诺甚至是“内鬼”行为,通过数字签名就可以保证信息的不可否认性。
什么是对称加密?
对称加密算法给定一个明文和一个密钥,加密产生密文,其长度和明文大致相同,解密时,使用的解密密钥与加密密钥相同,因此被称为对称加密算法。
国密算法的对称加密算法包括:SM1、SM4、SM7、ZUC祖冲之算法等。
由于SM1与SM7主要用于芯片、智能IC卡、智能密码钥匙、加密卡、加密机等安全产品,而SM4、ZUC祖冲之算法分别是运用于无线局域网产品与移动通信4G网络中的国际标准密码算法。这里我们重点介绍SM4和ZUC。
SM4算法原理
SM4是我国自主设计的分组对称密码算法,用于实现数据的加密/解密运算,以保证数据和信息的机密性。
要保证一个对称密码算法的安全性的基本条件是具备足够的密钥长度。在同为分组算法中,国密算法SM4算法具有128位密钥长度和分组长度(密钥数量有2^128个),而国际算法DES算法只有56位的密钥长度,不足以抵御穷举式攻击(因为密钥数量只有2^56个),因此SM4算法在安全性上高于DES算法。
(这些在正经情报局有讲过,忘记的小伙伴可以复习一下:)
那么,SM4算法的实现流程是怎么样的呢?
SM4算法采用的是非线性迭代结构,每次迭代由一个轮函数给出,其中轮函数由一个非线性变换和线性变换复合而成,非线性变换由S盒所给出。
简单来说,其流程包括以下几个步骤:
1、将16字节密钥按照4字节一组分成4组,再根据密钥扩展算法,生成32组4字节轮密钥(即在某一轮运算中得到的密钥);
轮密钥生成
2、再将输入的16字节数据也按照4字节一组分成4组进行32轮循环迭代运算(即按照指定的公式重复执行运算)。每一轮加密过程中,分别将各组数据与轮密钥进行异或操作,再将结果进行S盒变换(如下图所示,输入‘ef’,经S盒变换后,输出应为表中第e行和第f列的值,即‘84’);
32轮非线性迭代
(τ(x)为S盒变换)
(S盒表)
3、32轮循环迭代运算后,将4组数据进行一个线性变换,并组合起来,最终得到16字节密文。
综上,国密算法SM4有安全高效的特点,在设计与实现方面有以下优势:
对合运算:解密算法与加密算法相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。
子密钥生成算法与加密算法结构类似,在设计上做到资源重用。
加密算法与密钥扩展算法都采用32轮非线性迭代结构,将128位的明文、密钥通过32次循环的非线性迭代运算得到最终结果。
本期科普就先到这里,下期还有分组密码模式、ZUC祖冲之算法的介绍,我们下期再见!
以上是关于技术分享丨这是一篇简单的小科普——什么是对称加密算法?(上)的主要内容,如果未能解决你的问题,请参考以下文章