【密码测评】考前巩固:密码技术基础及相关标准(占比20%)
2023-5-13 00:8:17 Author: 利刃信安攻防实验室(查看原文) 阅读量:19 收藏

密码算法

密码算法

种类

密钥长度

分组长度

对应加密轮数

杂凑值长度

ZUC

对称

128




SM4

对称

128

128

32


AES

对称

128/192/256

128

10/12/14


DES

对称

56(64)

64

16


RSA

非对称

2048…




SM2

非对称

256




SM9

非对称

256




SM3

杂凑


512


256

MD5

杂凑


512


128

SHA-1

杂凑


512


160

SHA-2

杂凑


256


224/256/384/512

SHA-3

杂凑


R


224/256/384/512

1、“种类”填写对称、公钥或杂凑

2、对称中的分组密码填写分组长度、密钥长度和对应加密轮数

3、对称中的序列密码填写密钥长度

4、公钥填写密钥长度(安全性保证至少需要的私钥长度)

5、杂凑填写分组长度(消息分块长度)、杂凑值长度

6、以上内容有多种的都列出

算法是密码技术的核心。

常见的密码算法分为三大类别。

常见密码算法分类

1.4.1对称密码算法

对称密码算法加密过程与解密过程使用相同的或容易互相推导得出的密钥,即加密和解密两方的密钥是“对称”的。

对称密码算法常用于门禁系统、金融系统等。

1.4.1.1序列密码(流密码)

分类:

序列密码(流密码):ZUCSNOWRC4

序列密码:将密钥和初始向量(IV)作为输入,通过密钥流生成算法输出密钥流,将明文序列和密钥流进行异或,得到密文序列。

特性/参数

特点执行速度通常很快

对计算资源的占用较少

应用场景

常用于功耗或计算能力受限的系统中,如嵌入式系统、移动终端等

可用于实时性要求要较高的场景,如语音通话、视频通过等

序列密码和分组密码的加密流程对比

1.4.1.2分组密码(块密码)

分组密码(块密码):SM4DESTDEA3DES)、AES

分组密码:先对明文消息根据分组大小进行分组,再将明文分组、密钥和初始向量(有的情况下)一起作为输入,通过分组加密算法直接输出密文序列。

特性/参数

同一密钥,同一加密算法分组加密分组长度固定

应用最为广泛、影响最大的一种密码体制

主要提供数据保密性

加解密速度较快,安全性好

分组长度:能够抵御选择明文攻击

密钥长度:能够抵御穷举攻击

1.4.1.2.1分组密码的工作模式

工作模式

电话本模式:ECB

密文分组链接模式:CBC

密文反馈模式:CFB

输出反馈模式:OFB

计数器模式:CTR

分组链接模式:BC

带非线性函数上网输出反馈模式:OFBNLF

常见分组密码工作模式流程:

1)ECB模式

ECB模式加解密流程

2)CBC模式

CBC模式加解密流程

3)CTR模式

CTR模式加解密流程

常见分组密码工作模式的优缺点及用途

/

优点

缺点

特性/应用

ECB

加密简单

可并行计算(加解密)

错误不传递

不能隐藏数据模式

易重放攻击

需要并行加密的应用

单个数据的安全传输

CBC

不容易重放攻击(同样的明文组不会被加密成相同的密文组)

每次加密IV必须重新生成

解密支持并行计算

无法并行计算,且消息必须被填充到块大小的整数倍

错误会传播

生成消息鉴别码,用于检验消息完整性、验证消息源的真实性

CTR

可并行计算,加解密结构相同,不需填充

对包含错误的密文解密时,只有对应明文的相应位会出错

易重放攻击

实现并发分组,效率高,安全性也有保障

²初始向量变化或发送消息不一致的情况下,能抵抗重放攻击

1.4.1.3国内外对称密码

1.4.1.3.1序列密码算法(ZUC)

年份

2011年9月 53次第三代合作伙伴计划(3GPP)系统架构组会议,以ZUC算法为核心的加密算法128-EEA3完整性保护算法128ELA3与美国AES、欧洲SNOW 3G共同成为4G移动通信密码算法国际标准

特点/参数

能有效抵抗目前已知的攻击方法

算法速度快,软硬件实现性能较好

种子密钥128比特、初始向量128比特、32比特位宽密钥流【位宽是额定的】

应用场景

目前我国正在推动256比特版本的ZUC算法进入5G通信安全标准

1.4.1.3.2分组密码算法(SM4

SM4算法主要用于数据加密。

年份

2006年11月 公布SM4算法

20123月 发布为密码行业标准

20168月 发布为国标GB/T32907-2016《信息安全技术SM4分组密码算法》

特性/参数

分组长度为128比特,密钥长度128比特,加密轮数32

安全,可以抵抗差分分析、线性分析,代数攻击等密码分析方法

算法设计简沽,加解密速度块(高效)、资源重用,128bit密钥长度的SM4算法安全性上等同于AES-128,但SM4实现更为简单

应用场景

SM4常用于政府系统的数据传输加密

无需进行密钥交换的场景,如内部系统,事先就可以直接确定密钥

防止明文传输数据被窃取的场景

加解密速度快,适合数据内容比较大的加密场景

1.4.1.3.3对称密码算法(AES

国外场景的对称密码算法主要包括:DESTDES3DES)、AES

AES算法(又称Rijndael算法):替代DES并被广泛应用。

特性/参数

AES算法基本特性

AES-128、AES-192、AES-256加解密思路一致,密钥扩展算法的过程不同,加密和解密的轮数适当增加,加解密操作一致。

1.4.2公钥密码算法

公钥密码算法又称非对称密码算法,用于加密和解密,也用于数字签名,解决对称算法中密钥管理难题。

1.4.2.1公钥密码模型

公钥密码模型包括

公钥加密算法:公钥加密数据,私钥解密

对比对称加密算法,计算复杂度高,加密速度慢,用于短数据加密

²公钥加密算法加密和解密使用不同密钥。其中加密的公钥可以公开,解密的私钥不可公开。

数字签名算法:私钥对消息签名,公钥验签

保持数据完整性、签名者身份真实性、签名行为的不可否认性

²为提高效率和安全性,数字签名算法一般先使用密码杂凑算法对原始消息进行杂凑运算,再对得到的消息进行数字签名。

1.4.2.2国内外公钥密码算法

1.4.2.2.1 SM2公钥密码算法

SM2公钥密码算法包括

SM2数字签名算法

包括数字签名生成算法和验证算法,满足多种密码应用中的身份鉴别和数据完整性、信息来源真实性。

含密钥生成、签名生成、签名验证三个过程。

SM2密钥交换协议

又称密钥协商,常用在对称密码算法中。

SM2公钥加密算法

SM2公钥密码算法年份

2010年 SM2椭圆曲线公钥密码算法公布

2012年 SM2算法发布为密码行业标准

2016年 SM2算法发布为国家标准

SM2公钥密码算法特性/参数

密文单向性

明文、密文不可区分性

密文不可延展性

密钥空间256比特,私钥长度256比特,公钥长度512比特

对比RSA算法

安全性高,高于RSA2048,约等于RSA3072

密钥短,SM2私钥长度256Bit,RSA至少2048Bit

私钥产生简单,风险较小

签名速度快,同等安全强度,速度远超RSA算法

SM2公钥密码算法应用场景

采用该算法已经研制了系列芯片、智能IC卡、智能密码钥匙、加密卡、加密机等安全产品,广泛应用于电子政务、电子商务及国民经济的各个应用领域(包括国家政务通、警务通等重要领域)

1.4.2.2.2 SM9标识密码算法

SM9标识密码算法包括

SM9数字签名算法:

用椭圆曲线对实现的基于标识的数字签名算法包括数字签名生成算法和验证算法。【标识:唯一标识】

签名者用自身私钥对数据产生数字签名,验证发送数据的完整性、来源的真实性和数据发送者的身份。

SM9密钥交换协议

用户双方通过可选项实现密钥确认。

SM9密码密钥封装机制和加密算法

SM9标识密码算法年份

2016年 SM9算法发布为密码行业标准

SM9标识密码算法特性/参数

256比特的密钥空间

安全性远高于同类算法

安全性和嵌入次数有关,次数越多计算越难,相对速率降低

公钥管理不需要分配数字证书

应用场景

大型会议或大型运动会或大型活动相关的身份识别。

1.4.2.2.3 RSA公钥密码算法

RSA算法基于大整数因子分解难题设计,应用最为广泛的公钥密码算法。

RSA算法的公钥相当两个素数的合集。

RSA算法的私钥相当两个独立的素数。

RSA算法包括:RSA-1024、RSA-2048、RSA-3072

RSA公钥密码算法年份

1992年 RSA算法纳入国际电信联盟制定的X.509系列标准

RSA公钥密码算法特性/参数

安全需要达到RSA2048及以上,低于则不安全

密钥长度比ECC算法(如SM2)长,计算效率慢数倍

RSA公钥密码算法应用场景

HTTPS单向认证

HTTPS双向认证

1.4.3密码杂凑算法

1.4.3.1密码杂凑算法概述

密码杂凑算法(散列算法/HASH算法)是将任意长度的输入消息进行压缩,输出固定长度的消息摘要或杂凑值。

主要过程表示为:   h=HM)

h为处理后的杂凑值;M为输入消息;H为杂凑算法。

1.4.3.2密码杂凑算法安全性

①抗原像攻击(单向性),杂凑函数单向计算,无法通过杂凑值反推输入消息。

②抗第二原像攻击(弱抗碰撞性),已知一个消息M1,找另一个M2进行计算,使两个输入消息的杂凑值相同是困难的,即输入消息的任何微小变化都会使杂凑值不同。

③强抗碰撞性,找到两个输入消息M1M2(不相同),得到的杂凑值是不同的。

1.4.3.3密码杂凑算法的结构

常见的结构为M-D结构、海绵结构。其中采用M-D结构的密码算法有MD5SHA-1SHA-2SM3;采用海绵结构的有SHA-3

M-D结构即将输入消息进行填充分组,压缩函数通过初始向量进行初始化,本组与上一组消息结果产生中间值,最后一个压缩函数的结果就是最终的杂凑值。

M-D结构的安全性取决于压缩函数的安全性。

M-D结构示意图:

M-D结构

1.4.3.4密码杂凑算法的应用

密码杂凑算法主要基于安全特性检验数据完整性,但单独使用/在不安全的通道下不能保证数据完整性。

此处引入HMAC概念,利用杂凑算法将一个密钥和消息作为输入,生成一个消息摘要作为输出,生成的杂凑值为MAC,这样的杂凑算法称为带密钥的杂凑算法,即HMAC。可用作数据完整性校验,可以进行消息鉴别、保证消息源的真实性。IPSec/SSL协议中均用到HMAC

HMCA计算时调用了两次完整的杂凑函数。

杂凑算法也与公钥算法一同使用进行数字签名。

1.4.3.5国内外密码杂凑算法

1.4.3.5.1 SM3密码杂凑算法

结构M-D结构。

年份

2012年 成为行业标准 GM/T 0004-2012 SM3密码杂凑算法》

2016年 成为国家标准 GB/T 32905-2016 信息安全技术 SM3密码杂凑算法》

2018年10月 成为国际标准

特点/参数

将任意长消息进行压缩,输出成256比特的杂凑值

SM3算法速率高,能够跨平台高效实现。

对比SHA256,在安全性和效率上具有优势,保证安全前提下基本相等。

应用场景:商用密码应用中的数字签名和验证消息认证码的生成与验证以及随机数的生成,如安全应用、网络协议等。

1.4.3.5.2 MD5杂凑算法

结构M-D结构。

年份

2010年 美国软件工程学会(SEI)认为MD5算法已被破解不在适用。

特点/参数

最终输出为128比特的消息杂凑

散列函数

已被破解,不安全的算法

应用场景:一般用于数字签名(数字指纹)、完整性保护、安全认证、口令保护等。

1.4.3.5.3 SHA系列杂凑算法

结构

SHA-1、SHA-2均为M-D结构,SHA-3为海绵结构。

年份

SHA-1 2005年 王小云教授首次给出了SHA-1的碰撞攻击,复杂度为2^69比特。

2017年 国家秘密管理局发布使用SHA-1密码算法的风险警示。

SHA-2 2001年 NSANIST提出的标准算法。

特性/参数

SHA-2包括SHA-224、SHA-256SHA-384、SHA-512SHA-512/224、SHA-512/256

SHA-3包括:SHA3-224、SHA3-256、SHA3-384、SHA3-512。

SHA-1:160比特的消息摘要

SHA-2:支持224、256、384、512比特长度的输出

SHA系列均为单向散列函数

应用场景:用户密码保护(密码的散列值校验)、接口验签、文件完整性校验等。

算法名称

算法作用

长度

主要用途

备注

SM1算法

对称分组密码算法

数据分组长度为 128 比特
算法密钥长度为 128 比特

存在形式:
IP核的形式存在于芯片中
安全产品:
芯片、加密卡、加密机、智能IC卡、智能密码钥匙
应用领域:
电子政务、电子商务及国民经济的各个应用领域,如:国家政务通、警务通等重要领域

算法不公开

SM2算法

椭圆曲线公钥密码算法

私钥密钥长度为 256 比特

组成:
数字签名算法、密钥交换协议、公钥加密算法
用途:
实体验证、数字签名、数字信封


SM3算法

密码杂凑算法

杂凑输出长度为 256 比特

用途:
数字签名和验证、消息认证码的生成与验证以及随机数的生成
引申:
HMAC 是利用杂凑算法,将一个密钥和一个消息作为输入,生成一个消息摘要作为输出。

HMAC 可用作数据完整性检验,检验数据是否被非授权修改;也可用作消息鉴别,保证消息源的真实性


SM4算法

对称分组密码算法

数据分组长度为 128 比特
算法密钥长度为 128 比特

数据加解密


SM7算法

对称分组密码算法

数据分组长度为 128 比特
算法密钥长度为 128 比特

适用:
非接触式IC卡

应用:
身份识别类应用(门禁卡、工作证、参赛证),票务类应用(大型赛事门票、展会门票),支付与通卡类应用(积分消费卡、校园一卡通、企业一卡通等)

算法不公开

SM9算法

标识密码公钥密码算法

私钥密钥长度为 256 比特

组成:
数字签名算法、密钥交换协议、密钥封装机制和公钥加密算法
用途:
SM9算法不需要申请数字证书,适用于互联网应用的各种新兴应用的安全保障。如基于云技术的密码服务、电子邮件安全、智能终端保护、物联网安全、云存储安全等等。这些安全应用可采用手机号码或邮件地址作为公钥,实现数据加密、身份认证、通话加密、通道加密等安全应用


ZUC算法

对称序列密码算法

算法密钥长度为 128 比特
种子密钥长度为 128 比特

初始向量长度为 128 比特

数据保密性保护、完整性保护
引申:
机密性算法 128-EEA3
基于 ZUC 的机密性算法 128-EEA3 主要用于 4G 移动通信中移动用户设备和

无线网络控制设备之间的无线链路上通信信令和数据的加密和解密
完整性算法 128-EIA3
基于 ZUC 的完整性算法 128-EIA3o 主要用于 4G 移动通信中移动用户设备和

无线网络控制设备之间的无线链路上通信信令和数据的完整性校验,并对信令源进行鉴别。其

主要技术手段是利用完整性算法 128-EIA3 产生 MAC, 通过对 MAC 进行验证,实现对消息的完整性校验



文章来源: http://mp.weixin.qq.com/s?__biz=MzU1Mjk3MDY1OA==&mid=2247503801&idx=4&sn=d8d759e0a97a428625d3eeeb834e64ea&chksm=fbfb7f74cc8cf66236d2344633761a1d13f6ec8bf7ba6f77c5dad79cbbd6b2555b5bdbf1fd7f#rd
如有侵权请联系:admin#unsafe.sh