看不见的卫士-密码技术(一)

密码是保障网络安全和信息安全的核心技术,在维护国家安全、促进经济发展中扮演着关键角色。 密码技术与核技术、航天技术并称为国家三大“撒手锏”技术。网络安全正从被动防护向主动防 护转型,密码是实现这一过程的必要因素,在身份鉴别、安全隔离、信息加密、完整性保护等方 面有着不可替代的作用。

中国密码体系形成,国产化替代加速。我国密码产业起步较晚,但自主创新能力强,部分产品性 能指标已经达到国际先进水平。在国家的支持与引导下, 我国的多个基础密码研究领域取得突破 性研究成果,如序列密码设计、分组密码算法设计与分析、密码杂凑算法分析、密码协议基础理 论与分析、量子密钥分配等。同时,我国自主开发的 SM 系列密码算法已成为国际、国家、或密 码行业的标准。我国密码产品不断迭代丰富, 除了软件层的密码算法,硬件层的密码芯片与通用 芯片也逐渐实现自主可控。目前,商用密码产品达到 3,000 余款,取得商用密码产品认证证书的 产品有 2,200 余款。完整的商用密码产品体系已经形成,包含了密码芯片、密码板卡、密码整机、 密码系统等产品。

密码技术是信息安全的基础和核心,密码技术发展到今天已经形成了一个庞大的技术体系,每一个算法都非常复杂精妙。本文主要对等保2.0涉及的密码技术做大概介绍,重点是理解常用密码算法的特点和适用场景,以及业界成熟的密码技术应用方案。

本文分为多个系列,今天是第一篇文章,首先介绍等保2.0对密码技术的相关要求、密码技术的历史和基本概念,重点介绍哈希算法及相关应用。后续的系列将陆续讲解对称加密算法、非对称加密算法、硬件加密、国密算法等内容。

等保2.0关于密码技术的规定

等保2.0标准已经在2019年12月正式开始实施。等保2.0标准中对密码技术做了明确的要求,密码技术主要出现在三级安全要求和四级安全要求中,主要的领域是通信网络和计算环境,下面表格中列出了等保2.0四级安全要求中对密码技术的相关要求,黑色字体表示是四级针对三级安全级别增强的要求,其他都是三级和四级公共的安全要求。

防护大类

防护小类

密码技术相关要求

安全通信网络

通信传输

本项要求包括:

a) 应采用密码技术保证通信过程中数据的完整性;

b) 应采用密码技术保证通信过程中数据的保密性;

c) 应在通信前基于密码技术对通信的双方进行验证或认证;

d) 应基于硬件密码模块对重要通信过程进行密码运算和密钥管理。

安全计算环境

身份鉴别

本项要求中密码技术相关要求包括:

c) 当进行远程管理时,应采取必要措施防止鉴别信息在网络传输过程中被窃听;

d) 应采用口令、密码技术、生物技术等两种或两种以上组合的鉴别技术对用户进行身份鉴别,且其中一种鉴别技术至少应使用密码技术来实现。

数据完整性

本项要求包括:

a) 应采用密码技术保证重要数据在传输过程中的完整性,包括但不限于鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等;

b) 应采用密码技术保证重要数据在存储过程中的完整性,包括但不限于鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等;

c) 在可能涉及法律责任认定的应用中,应采用密码技术提供数据原发证据和数据接收证据,实现数据原发行为的抗抵赖和数据接收行为的抗抵赖。

数据保密性

本项要求包括:

a) 应采用密码技术保证重要数据在传输过程中的保密性,包括但不限于鉴别数据、重要业务数据和重要个人信息等;

b) 应采用密码技术保证重要数据在存储过程中的保密性,包括但不限于鉴别数据、重要业务数据和重要个人信息等。

安全管理中心

集中管控

本项要求中密码技术相关要求包括:

b) 应能够建立一条安全的信息传输路径,对网络中的安全设备或安全组件进行管理。


分析等保2.0对密码技术的要求,可以看到密码技术主要用于4个场景:身份认证、数据保密、数据完整性校验、防抵赖,其中身份认证也是访问控制的前提条件。

另外,在等保2.0基本要求的附录B(关于等级保护对象整体安全保护能力的要求)中,提到:“本标准针对较高级别的等级保护对象,提到了使用密码技术、可信技术等,多数安全功能(如身份鉴别、访问控制、数据完整性、数据保密性等)为了获得更高的强度,均要基于密码技术或可信技术,为了保证等级保护对象的整体安全防护能力,应建立基于密码技术的统一支撑平台,支持高强度身份鉴别、访问控制、数据完整性、数据保密性等安全功能的实现。”充分说明了密码技术在较高级别保护对象的防护中,起着至关重要、必不可少的作用。

2019年10月26日,《中华人民共和国密码法》颁布,并将于2020年1月1日起正式施行。密码法的颁布实施是密码历史上具有里程碑意义的大事,必将对密码事业发展产生重大而深远的影响。密码法中明确强调了对关键信息基础设施中密码技术的要求。

密码技术是目前世界上公认的保障信息安全最有效、最可靠、最经济的核心技术。密码法的颁布对于等保2.0的实施具有进一步的指导意义,等保2.0中定级为三级和四级的保护对象及系统,大部分也是关系国计民生的关键基础设施,这些关键基础设施中对密码技术的应用必须严格遵守密码法的规定。制定和实施密码法,就是要把密码应用和管理的基本制度及时上升为法律规范,推动构建以密码技术为核心、多种技术交叉融合的网络空间安全体制。

密码技术简介

密码技术,简单来讲,就是隐密地传递信息的技术,常被认为是数学和计算机科学的分支,和信息论也密切相关。

密码技术历史非常悠久,早期主要用于军事目的,不对外公开,也没有准确的文献记载。公元前17世纪,古巴比伦的Phaistos圆盘正反两面充斥着42种不同符号所表示的242个印记,至今还没有完全破译。

中国古代兵书《六韬》中记录了阴符和阴书两种加密通信方式。国君和在外主将之间用阴符秘密联络,八种不同尺寸长度的阴符,隐藏着不同的军情秘密。如需传递军机大事则用阴书:把书信拆成三部分,分派三人发出,每人拿一部分,只有三部分合在一起才能读懂信的内容。

公元前700年左右,古希腊军队用一种圆木棍进行保密通信。这种加密方法中,加密方把纸条缠绕在特定的木棒上,写上原信息,木棒撤掉之后,纸条上的字母变成了乱码。解密方收到这个纸条后,用相同的木棒就可以恢复原信息。

第一次世界大战和第二次世界大战中,密码技术对最后的战争结果起到举足轻重的作用。截至第二次世界大战结束,计算机技术尚未普及,这些加密技术都称为古典密码技术。古典密码技术的主要特点是基于字符的替换和换位,密文的安全性主要依赖算法的保密。也就是说,如果知道了算法,就可以从密文反向推导出明文。

1949年,Shannon在《贝尔实验室技术杂志》上发表了《保密系统的通信理论(Communication Theory of Secrecy Systems)》,为现代密码学建立了理论基础,随着计算机的发展,密码技术使用的算法越来越复杂,密文的安全性主要依赖密钥,而不是算法。

1976年,Whitefield Diffie和Martin Hellman发表论文公布了Diffie-Hellman算法,开启了公钥密码时代,即非对称加密技术。1977年,RSA算法发布,人类正式进入了公钥密码技术时代。近代密码学改变了古典密码学单一的加密手法,融入了大量的数论、几何、代数等丰富知识,使密码学得到更蓬勃的发展。

密码技术是信息安全的基础,信息安全的基本属性中,可靠性(身份认证)、保密性、完整性、不可否认性都需要依赖密码技术才能实现。这4个基本属性和等保2.0中的4个主要应用场景是一致的。

现代密码技术体系由5个基本概念组成:明文、密文、密钥、加密算法、解密算法。密码技术体系结构模型如下:

如果加密算法的加密秘钥和解密秘钥相同,我们称为对称加密算法,典型算法是DES、AES算法等。

如果加密算法的加密秘钥和解密秘钥不同,我们称为非对称加密算法,典型算法是RSA算法等。

密码技术中,有一类算法是单向的,不可逆向恢复为明文,这类算法一般称为哈希(Hash)算法或杂凑算法、散列算法,典型算法是MD5,SHA等。哈希算法的本质其实不是加密,而是针对输入的明文数据计算出唯一的摘要,主要用于验证数据的完整性,也可以结合预设密钥用来做数据来源证明,保证信息的不可否认性。

今天这篇文章,主要讲解哈希算法及其典型应用。

哈希算法介绍

基本概念

在现代密码学中,哈希算法占据着基础而又重要的地位,理解哈希是理解数字签名和加密通信等技术的必要前提,哈希算法经常和其他加密算法一起形成更高级的加密方案。

哈希算法,是一种给数据创造“数字指纹”的方法。与指纹一样,哈希算法就是一种以很短的信息来实现数据的唯一性标志,这种标志与数据的每一个字节都相关。当原有数据发生改变时,其哈希值也会发生改变,而且即使很小的变化,也会引起哈希值很大的变化。

哈希算法最重要的特点是很难以找到逆向规律,即完全无法根据哈希值逆向推测原始的数据,所以从本质上讲不属于加密算法,因为加密必然对应着解密。但是哈希算法是密码技术中非常常用的算法,所以一些不严谨的场合,也称为单向加密算法。

好的哈希算法通常具有下列特性:

特 性

说 明

快速性

给定明文,能快速计算出哈希值,资源消耗少,速度极快。

单向性

无法逆向解密,给定哈希值,在有限时间内很难(基本不可能)逆推出明文。

敏感性

对输入数据很敏感,原始输入数据块即使只修改少量信息,比如一个比特,产生的哈希值看起来差异很大。

确定性

同一个输入数据,计算得出的哈希值是确定;不同的哈希值,其对应的原始输入一定不同。

强抗碰撞性

对于任意两个不同的数据块,其哈希值相同的可能性或概率极小。或者说,对于一个给定的数据块,找到另一个数据块和它哈希值相同是极为困难的事。


典型算法

目前常见的典型哈希算法包括CRC、MD5、SHA1和SHA2等,这些算法其实背后都有一个家族,同一家族中算法的基本结构是一致的,差别是哈希值的长度、循环运行的次数等略有差异,下表列出来这些家族中的典型算法:

CRC:Cyclic Redundancy Check,冗余循环校验算法,主要用于网络数据流的差错校验,检查传输数据的完整性。

MD:Message-Digest Algorithm,消息摘要算法,其中MD5是最常使用的哈希算法。

SHA:Secure Hash Algorithm,安全哈希算法,NIST用于替换MD5的更安全的哈希算法。

国密:目前只有SM3哈希算法,哈希值长度256,和SHA256安全性相当。

在这些公开的哈希算法中,一般哈希值长度越长,算法就越安全。注意这个结论仅针对公开的被大家认可的哈希算法,如果某个程序员自己设计一种哈希算法,则不能依靠这个结论判别其安全性,因为这个算法没有经过大范围的检验。

比如:CRC-32算法输出的哈希值是32位,MD5算法输出的哈希值是128位,SHA-1算法输出的哈希值是160位,SHA-256算法输出的哈希值是256位,那么可以得知SHA-256是最安全的哈希算法。

注意,在关键基础设施的安全技术方案中,如果不涉及和第三方系统对接等场景,优先推荐使用国密算法。

山东大学的王小云教授分别在2004年和2005年破解了MD5和SHA1算法。注意对哈希算法的破解,并不是根据哈希值逆向推算出原始的明文,前面已经提到,哈希算法是无法逆向反推的。对哈希算法的破解,本质是根据已有数据构造出互相“碰撞”的数据,也就是两块数据不同,但是生成的哈希值相同。

根据对哈希算法的要求,要保证每一个字节都会对最终结果产生影响。所以哈希算法都需要循环处理每一个字节的数据,一般是把数据分块处理,在MD5和SHA1及SHA2算法中,数据块的大小都是512位,即64字节,然后循环处理每一块数据。

为了保证所有循环处理的数据块长度都是512位,就需要对原始输入数据进行预处理,即在数据末尾进行填充,确保数据的总长度是512位的整数倍。

哈希算法的基本流程如下图:

数据填充的过程和要求如下:

◇ 先补第一个比特为1,然后都补0,直到长度满足对512取模后余数是448。注意:信息必须进行填充,也就是说,即使长度已经满足对512取模后余数是448,补位也必须要进行,这时要填充512个比特。因此,填充是至少补一位,最多补512位。

◇ 因为在第一步的预处理后,第二步会再附加上一个64位的数据,用来表示原始报文的长度信息。448+64=512,就形成了最后的512位数据,正好拼成了一个完整的结构。SHA256用一个64位的数据来表示原始消息的长度。因此,通过SHA256计算的消息长度必须要小于2^64,当然,这已经是一个足够大的天文数字了。

数据填充后,就可以计算哈希值。计算过程如下:

◇ 首先使用初始值哈希值(64字节的固定数据)和第一块数据计算得出哈希值。

◇ 把计算出的这个哈希值作为初始值,循环计算下一块数据,并把计算出的哈希值替换初始值。

◇ 循环处理完每一块数据,就得到最终的哈希值。

计算的过程中,每一位数据都会参与,主要的计算就是各种位运算的组合,包括与、补、异或、移位等,经过多轮计算后得到哈希值。不同的哈希算法在进行位运算时算法都不尽相同,在此不详细讨论。

应用场景

◇ 完整性校验

因为哈希算法具有快速性和敏感性的特点,通过哈希值对比能很快的检测出来数据是否发生变化。哈希算法的主流应用场景之一就是数据完整性校验,包括网络传输数据的完整性校验、硬盘数据文件的完整性校验等。

等保2.0中,要求重要数据在传输和存储时保证完整性,避免数据被非法篡改,绝大部分场景就需要使用哈希算法。

大部分开源软件在发布时都会发布软件或代码的哈希值作为校验码,一般是MD5、SHA1或者SHA256,用户下载这些文件后,在本地使用同样的算法计算哈希值,和官方网站发布的哈希值进行比对,如果哈希值一致,就可以说明下载的文件无误,可以正常使用。

比如,在Apache的下载界面,使用SHA256作为完整性校验码:

类似的用法,可以用来校验系统中的关键文件和数据的完整性。比如一套安全解决方案中的安全防护策略可能被保存为一个或多个XML文件,为了保证该文件的完整性,在每次加载之前,可以先校验哈希值,确保没有被篡改。

CRC算法经常被用于对网络中动态传输的数据流进行差错校验,及时发现数据传输中的错误。注意:CRC在对数据流的错误检测中非常有用,但是并不能可靠地校验数据完整性,所以用途比较单一,和其他密码技术交集不多,所以本文后续不再关注CRC算法。

数字认证/签名

因为哈希算法具有确定性和唯一性的特点,也经常被用于认证和签名。

哈希算法在数字认证/签名场景主要有2种用法:

1、在原始数据基础上附加用户的特有信息(比如共享密钥)进行哈希计算。

HMAC(Hash-based Message Authentication Code),即基于哈希的消息认证码,就是这种典型用法,利用预共享密钥进行哈希计算和验证,实现对消息的完整性验证和认证。

比如,在微信的支付签名规范中,支持MD5和HMAC-SHA256,但实际MD5仅用于试验沙盒环境,商用生产环境要求使用HMAC-SHA256来进行签名验证。官方开发文档截图如下:

2、对原始数据进行哈希计算后,对哈希值进行私钥签名。

数字证书能标识身份,具有法律效力,在更严谨的场合要使用数字证书进行数字签名。数字证书签名一般使用RSA算法,RSA算法的性能较差,不适合对大批量数据加密,所以数字证书签名方案里,一般对原始数据的哈希值进行签名,即等同于对原始数据签名。

◇ 身份鉴权

因为哈希算法具有单向性和唯一性的特点,所以身份鉴权的方案中,普遍要用到哈希算法。身份鉴权最常用的方式是用户名+密码(或称为口令),为了保证安全性,密码严禁明文存储在数据库。如果使用对称加密算法加密存储,则意味着应用程序可以逆向解密得到密码,这也是身份鉴权方案的大忌。一般不推荐使用对称加密算法把密码加密存储,正确的做法是通过哈希算法对原始密码进行单向加密处理。

随着计算能力的提升和一些数学家的努力,越来越多的哈希算法被破解,纯粹使用哈希算法已经无法保证口令的安全性。哈希算法的快速性,在密码破解时反而成为了帮凶,有助于快速进行碰撞测试。

现在普遍使用加盐(Salt)和多次哈希的方案来增强哈希算法的安全性,下一节将详细讲解这种方案。

哈希算法应用方案

口令加密方案

在密码技术里面,从人类可读的口令加密生成一段不容易被逆向的密码的功能,称为密钥导出功能/函数(Key Derivation Function,简称KDF)。口令加密方案就是KDF方案的一种应用。

由于哈希破解算法的进步,传统的单向哈希算法在口令加密场景已经不能保证安全性,现在KDF方案中,相对成熟的口令加密方案主要包括:PBKDF2、BCrypt和Scrypt。

◇ PBKDF2采用了加盐和多次哈希的算法,它根据迭代因子,执行多次HMAC运算,日常密码存储的最低安全要求是迭代因子≥1000,推荐标准是10000。微软的产品大量使用这个算法,华为的产品也推荐使用这个算法对密码进行加密存储。

◇ BCrypt在计算哈希值的过程中使用了一系列不同的Blowfish加密算法(注意Blowfish本身是对称加密算法),并引入了一个工作因子(Work Factor)的概念,工作因子可以决定算法的快慢。通过设置工作因子让算法慢下来,可以有效减慢碰撞测试的速度。比如设置工作因子为12,BCrypt和MD5的性能差异达到百万倍。开源操作系统OpenBSD,以及流行的开源框架Springboot,使用这个算法对密码进行加密存储。

◇ SCrypt是基于BCrypt的改进算法,也有一个工作因子可以决定算法的快慢。它将CPU计算与内存使用的开销提升了一个层次,不仅CPU运算需要指数时间开销,还需要指数内存IO开销,更能确保计算速度慢下来。因为SCrypt推出的时间较晚,应用比较少,目前在一些数字货币系统中存在应用案例。

可以看出,口令加密方案相对标准哈希算法的改进主要是3个方面:加盐、多次、变慢。这些改进都能有效增加哈希算法的破解难度,保证密码口令的安全,同时又不影响正常的登录认证。

盐(Salt)是指在进行哈希计算的过程中,故意加入的一些随机数据,用来避免从已计算的哈希值表(被称作“彩虹表”)中对比输出数据从而获取明文密码的风险。“盐”能有效提高哈希函数被破解的难度。因为哈希算法的敏感性,加盐以后生成的哈希值将和原来完全不同。这样即使碰撞测试得到了哈希值对应的明文,也不是真正的密码。

多次哈希是指采用一定的算法多次迭代进行哈希,也可以加大破解难度,一般推荐迭代次数为10000次左右,可以根据实际的应用场景调整该参数。

变慢是指故意增加算法的CPU和内存开销,减慢速度,从而加大破解的难度。

本文主要讲解一下PBKDF2算法。

PBKDF2的全称是(Password-Based Key Derivation Function 2),它是美国国家标准与技术研究院NIST推荐的离线密码存储方式,PBKDF2算法标准定义在RFC 2898文档中,计算公式如下:

DK = PBKDF2(PRF, Password, Salt, c, dkLen)

· PRF:标识使用的哈希算法。

· Password:表示明文口令。

· Salt:表示盐值,一般是一个随机数。

· C:表示迭代次数。

· dkLen:表示最后输出的密钥长度。

PBKDF2的基本原理是通过一个哈希算法,把明文和盐作为输入参数,然后重复进行运算,并最终把中间结果进行异或XOR操作,合并为一个最终的密钥。如果重复的次数足够大,运算速度就会很慢,破解的成本就会变得很高,而盐的添加也会增加“彩虹表”攻击的难度。

使用SHA-256的PBKDF2算法的计算过程如下图:

注意,在使用盐的时候,盐应该和密码数据分开存放,以保证系统的安全性。

消息认证码方案

消息认证码(Message Authentication Code,MAC)是一种确认消息完整性并进行认证的技术,其中消息认证指的是对消息来源进行认证,确保来自正确的发送者;确认完整性指的是检查消息是否被篡改,确保收到的消息和发出时是一致的。

HMAC(Hash-based Message Authentication Code)即基于哈希算法的消息认证码,该算法在1997年作为RFC2104被公布,在IP Sec、SSL等网络协议中得以广泛应用,现在已经成为事实上的Internet安全标准。哈希算法可以是MD5、SHA1或SHA256等,相应的HMAC算法称为HMAC-MD5、HMAC-SHA1或HMAC-SHA256等。

要计算HMAC必须持有共享密钥,没有共享密钥的人就无法计算MAC值,消息认证码正是利用这一性质来完成认证的。消息认证码可以说是一种与密钥相关联的哈希技术。在实际使用中,HMAC中的共享密钥一般使用随机数,并经常更新,以确保算法的安全性。也有一些场景可以双方约定一个共享密钥,这种密钥相对来讲更能起到认证的作用。

因为共享密钥是只有通信双方知道的内容,所以HMAC也起到了认证的作用。但是,因为共享密钥不能用来标识对方的真实身份,所以HMAC不是标准的签名技术。

我们以HMAC-SHA256为例,HMAC的计算公式如下:

HMAC = H (Key XOR Opad, H (Key XOR Ipad, Message))

· Key:共享密钥。

· Opad:0x5C 重复64次(SHA256算法使用的数据块是64字节)。

· Ipad:0x36 重复64次。

· Message:待加密的消息。

HMAC方案的实际应用案例包括:

1、质询握手认证协议(Challenge Handshake Authentication Protocol,CHAP),这属于“挑战/响应”(Challenge/Response)认证方案,定义在RFC1994中,早期很多身份认证协议使用这种方案,比如802.1x接入认证系统。在认证过程中,首先服务器发送一个随机值作为共享密钥,然后客户端和服务器都使用这个随机值和密码作为参数计算HMAC值,真正的密码从不在网络传输,只有随机值和HMAC结果在网络传输。对于截获了这两个值的黑客而言,这两个值毫无意义,所以大大增强了安全性和实用性。这种认证方案能保证密码不在网络传输,但是需要存储明文密码,或者使用可逆的方式加密存储密码,在计算时解密验证,所以不能防止来自背后的威胁,也不符合前面说的口令加密方案中的安全要求,所以现在新的系统较少使用了。

CHAP认证方案示意图:

2、数据完整性校验和身份认证,比如IP SEC和SSL中的数据完整性校验。这个过程中,既发送原始消息数据,也发送消息认证码,接收方验证这两个数据可以确认消息的完整性和来源的正确性。现在,这种使用模式是消息认证码的主流应用。消息认证码主要功能是验证数据完整性和身份认证,不能保证数据的保密性,没有对数据进行加密处理。

数据完整性校验和身份认证方案示意图:

数字签名方案

上一节的HMAC算法,通过预共享密钥认证对方,虽然可以保证通信双方的正确性,但是不能识别对方的身份,毕竟共享密钥只是一个随机值,和身份信息毫不相干。在更严格的场景中,为了验证对方的真实身份,就需要使用数字签名方案。

数字签名方案和HMAC方案很相似,主要区别在于引入了数字证书,增加了公钥加密算法。数字证书是网络世界的身份证,可以明确标识用户身份。权威机构CA中心颁发的数字证书具有法律效力。关于公钥、私钥以及RSA算法,请关注后续系列文章。

数据签名,顾名思义,就是对一段数据附上私有签名,数据签名的主要作用包括:

1、确保这个数据出自签名者,即签名者为该数据负责。这个作用对应安全属性中的可靠性(身份认证)和不可否认性。

2、确保该数据未经篡改,即该数据自签名者签名后,没有任何改动。这个作用对应安全属性中的完整性。

数字签名本质上是通过哈希算法和RSA加密算法来实现的。

数字签名的完整过程如下:

1、对原始数据计算哈希值。

2、使用私钥对哈希值进行RSA加密。

3、发送消息和数字签名。

数字签名校验的过程如下:

1、对原始数据计算哈希值。

2、数字签名使用RSA和公钥解密,得到原始哈希值。

3、对比接收者计算的哈希值和数字签名里面的哈希值,检查是否一致。

4、哈希值一致,说明数据未被篡改,发送者身份正确;否则说明该数据有问题。

数字签名和校验的方案示意如下:



哈希算法小结

哈希算法是一种单向不可逆的加密算法,是密码技术中的基础算法,很多密码技术方案都会用到哈希算法。公开的哈希算法都具有快速性、单向性、敏感性、确定性和强抗碰撞性的特点,主要应用在数据的完整性校验、密码加密存储、数字签名等场景。哈希算法应用的成熟方案包括口令加密方案PBKDF2、消息验证码方案HMAC、数字签名方案等。

下一篇将介绍密码技术中的对称加密算法及其应用。

展开阅读全文

页面更新:2024-05-29

标签:密码   数字签名   密钥   技术   明文   卫士   算法   完整性   消息   方案   数据

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top