文章横幅PC版
文章横幅iPad版
文章横幅手机版

常用密码算法

TIME:2019-06-11 17:10  click: 165 次 来源: 未知

常见的加密算法包括对称加密算法,公钥加密算法和加密哈希算法,具体详情如下:

对称密码算法

对称密码算法其加密和解密两方的密钥是“对称”的。这如同往个上了锁的箱子里放物品,放入时需要用钥匙打开;想要取出物品时,还需要用同样的钥匙开锁。

从传统的习惯看,加密和解密必然使用同一个密钥,因为只能用同样的钥匙开一把锁。因此,传统的密码算法都是对称形式的密码算法。

针对不同的数据类型和应用环境,对称密码有两种主要形式。

(一)序列密码

序列密码适用于实时性要求高的场景,如电话、视频通信等序列密码加密过程很简单,就是将密钥和明文数据的字母逐个进行“相加”运算;解密再用同样的密钥对密文进行逐个字母的“相减”运算。序列密码需要快速产生一个足够长的密钥,因为有多长的明文,就要有多长的密钥。为此,序列密码的主要任务是从一个短的初始密钥,快速产生一个足够长的“密钥流”。因此,序列密码也叫作“流密码”。

ZUC中国发布的算法商业密码标准算法中的序列密码算法也称为祖先算法。ZUC算法体现了序列密码设计上的发展趋势,具有较大安全余量,并且算法速度快,软硬件实现性能都比较好。ZUC算法已作为国际第四代移动通信加密标准使用。

(二)分组密码

分组密码是将明文数据分成多个等长度的块,这样的数据块叫作分组它的加解密过程一般采用混淆和扩散部件的多次选代方式。但分组密码不用产生很长的密钥流。它的特点是适应能力强,可用于多种计算平台,易于标准化,多用于大数据量的加密场景。

SM4算法是我国颁布的商用密码标准算法中的分组密码算法。SM4算法包长度为128位,密钥长度为128位,解密算法与加密算法相同。它具有算法速度快、实现效率高、安全性好等优点,主要用于保护数据的机密性。

二、公钥密码算法

公钥密码算法,又称非对称密码算法,该算法很好地解决了对称密码算法存在的密钥管理难题。

(一)公钥加密算法

公钥加密算法加密和解密使用不同的密钥。其中加密的密钥被公开,称为公钥;解密的密钥被保密,称为私钥。公钥和私钥是密切关联的,从私钥可推导出公钥,但从公钥不能推导出私钥。

用户使用公钥加密算法时,公钥公开,私钥保密。需要向谁秘密通信,只需用谁的公钥对消息进行加密,使用相应私钥对密文进行解密。

公钥加密的速度一般比对称加密慢,主要用于短数据的加密。例如,用公钥加密算法建立共享密钥,即将是对称密码该密钥被视为一条消息,用公钥加密并发送给另一方。然后另一方对解密得到对称密码密钥,用于对数据进行对称加密和解密。

SM2算法是中国发布的商业加密标准算法中的公钥加密算法。SM2算法基于椭圆曲线上离散对数计算困难问题,密钥长度为256位,密钥长度短,安全性高的性特征。

(二)数字签名算法

数字签名算法也称电子签名算法,可以实现类似于手写签名的功能,但借助数学方法,比手写签名更安全、功能更强。

在数字签名算法中,每个签名者都有一对公钥和私钥,公钥是公共的,私钥是保密的。与公钥加密使用公钥和私钥的顺序不同,数字签名使用私钥对消息进行签名,这一过程称为签名过程;使用公钥对签名进行验证,这一过程称为验证过程。

数字签名算法可用于确认完整性数据,签名者的身份签名行为的真实性和不可否认性。由于数字签名是使用私钥生成的,因此没有私钥可以生成有效签名,即数字签名是不可伪造的。因因为签名者有一个一一对应与公钥,您可以使用公钥验证数字签名,因此合法的签名是可公开验证的。因为只能用签名者的公钥(而不是其他人的公钥)进行签名的验证,所以签名者不能否认自己签过的签名。由于一般需要签名的消息或文件很长,实际中数字签名算法都要将消息用杂凑算法进行压缩,再进行签名。

SM2算法中的数字签名算法已广泛应用于中国的电子认证领域。此外,SM9算法是中国发布的商业加密算法中的另一种公钥加密算法,它是一组基于身份的公钥加密算法,也称为识别密码,SM9算法使用256位大小的椭圆曲线。

三、杂凑算法

哈希算法是将任意长的消息压缩为固定长度的短消息的函数,诸如抗冲突性和单向性的属性函数的输出被称为摘要值或摘要。散列算法的基本思想是使摘要值成为输入字符串的紧凑表示。哈希算法的防冲突是指找到两个不同的消息,使二者的摘要值相同,在计算上是不可行的;或者对一个给定的消息,寻找另个不同消息,使二者摘要值相同,在计算上也是不可行的。单向性这意味着无法从摘要值获取输入消息。

哈希算法有很多功能,可以用于数字签名:先对消息进行压缩后,再对摘要值进行签名,因为很长的文件不能一页一页地签名;它可以检测消息的完整性,确定消息的摘要值是否已被篡改;它可以用于密码存储,使用单向性功能是即使公开了摘要值,密码也不会暴露。

SM3算法是商业密码标准中的中国哈希算法。SM3算法采用成熟的技术设计,通过多次简单操作迭代实现,摘要值为256位长,该算法可用于数字签名,密码安全存储和伪随机数生成。

 

上一篇:密码技术的作用 下一篇:商用密码服务包括