13.1 数字签名概述

思维导图:

 

13.1 数字签名概述

在数字时代,确保信息的完整性和验证身份变得尤为重要。数字签名正是为满足这一需求而生的技术。它不仅保证了信息在传输过程中未被篡改,还能确认信息来源的真实性。本文将概述数字签名的原理、应用和重要性。

数字签名的原理

数字签名是基于公钥加密技术的。它使用一对密钥:公钥和私钥。私钥保密,而公钥则可以公开。数字签名的过程分为两个主要部分:签名和验证。

签名过程

  1. 消息摘要:首先,发送方将原始信息通过哈希算法(如SHA-256)转化为一个固定长度的摘要。这个摘要代表了原始信息的“指纹”。
  2. 加密摘要:发送方使用自己的私钥对消息摘要进行加密,加密后的摘要即为数字签名。
  3. 发送信息:发送方将原始信息和数字签名一起发送给接收方。

验证过程

  1. 解密签名:接收方使用发送方的公钥对数字签名进行解密,得到消息摘要。
  2. 计算摘要:接收方同样对收到的原始信息使用相同的哈希算法计算出摘要。
  3. 比较摘要:接收方比较解密得到的摘要和自己计算出的摘要。如果两者一致,说明信息未被篡改且确实来自声称的发送方。

数字签名的应用

数字签名在很多领域都有应用,比如:

  1. 电子邮件:确保邮件内容的完整性和验证发件人身份。
  2. 软件分发:验证软件包是否未被篡改,确保下载的是官方发布的版本。
  3. 电子商务:在交易过程中保护交易双方的信息安全,防止交易数据被篡改。
  4. 合同和文件:在电子文档上签名,具有法律效力,保证文档的真实性和完整性。

数字签名的重要性

  1. 完整性保证:数字签名确保了信息在传输过程中未被篡改,接收方可以确信收到的信息就是发送方发送的原始信息。
  2. 认证身份:数字签名通过私钥加密,确保了信息确实来自于声称的发送方,从而验证了身份。
  3. 不可否认性:发送方一旦对信息签名,就无法否认其发送该信息的行为,因为只有发送方才拥有对应的私钥。

结语

数字签名技术是确保数字世界中信息安全和身份验证的重要工具。随着数字化转型的不断深入,数字签名的作用愈发显著,从个人的电子邮件到企业的合同签署,再到国家级的信息安全,数字签名都扮演着不可或缺的角色。了解和掌握数字签名的原理和应用,对于每个数字时代的参与者来说,都是一项必要的技能。

 

 

第13章 数字签名:前言笔记

学习目标

本章节旨在深入理解数字签名的核心原理与应用,为此,我们设定了以下学习目标:

  1. 概述数字签名过程:理解数字签名的基本概念和工作流程。
  2. 理解Elgamal数字签名方案:深入探讨Elgamal签名方案的原理和特点。
  3. 理解Schnorr数字签名方案:分析Schnorr签名方案,理解其工作原理及优势。
  4. 理解NIST数字签名方案:学习NIST推荐的数字签名标准及其应用。
  5. 比较各种数字签名方案:比较Elgamal、Schnorr和NIST签名方案的异同和适用场景。
  6. 理解椭圆曲线数字签名方案:掌握基于椭圆曲线密码学的数字签名算法。
  7. 理解RSA-PSS数字签名方案:研究RSA-PSS方案并理解其安全性和实际应用。

数字签名的重要性

数字签名是公钥密码学发展中的关键概念之一,它为数字通信提供了无法通过其他方法实现的安全性保障。数字签名确保了消息的发送源和数据完整性得到验证,这在现代通信中是至关重要的。

数字签名的基本模型

数字签名的过程可以通过图13.1的一般模型进行理解:

  1. 生成Hash值:发送方(如Bob)使用安全的Hash函数(例如SHA-512)来产生消息的Hash值。
  2. 签名算法:将该Hash值与发送方的私钥一同作为输入,经过数字签名算法处理后,生成一段短的数字签名。
  3. 发送消息和签名:将数字签名附加在消息之后一起发送给接收方(如Alice)。
  4. 验证过程:接收方收到消息后,计算该消息的Hash值,并使用发送方的公钥和收到的签名进行验证。如果验证成功,可以确认消息确实是由发送方发出的,且消息内容未被篡改。

章节内容概览

  • Elgamal和Schnorr签名方案:这两个方案是数字签名技术的基石,理解它们有助于深入掌握数字签名的原理。
  • 数字签名算法(DSA):介绍基于Elgamal和Schnorr原理的数字签名标准算法。
  • 椭圆曲线数字签名算法(ECDSA)和RSA概率签名方案(RSA-PSS):这两种算法被广泛应用于各种安全领域,了解它们的工作原理和应用场景对于理解现代数字签名至关重要。

结语

通过本章的学习,你将深入理解数字签名的原理和实践,掌握各种主流的数字签名方案,比较它们的优劣,并理解它们在现实世界的应用。这些知识和技能对于任何希望在数字时代保护信息安全的人来说,都是极其宝贵的。

 

 

13.1 数字签名概述

13.1.1 特征

数字签名作为一种确保消息完整性和来源认证的技术,在保护通信双方免受第三方攻击的同时,也解决了通信双方自身可能发起的攻击问题。以下是数字签名的几个关键特征和相关的场景说明:

场景分析

  1. Mary伪造消息:Mary可以伪造一条消息并声称该消息来自John。她可以生成一条消息,并使用与John共享的密钥产生认证码,再将此认证码附加到消息后。
  2. John否认发送消息:John可以否认他发送过某条消息。因为Mary能够伪造消息,所以无法确定消息确实是由John发送。

数字签名需求

在这两种情况下,法律关注的是消息的真实性和不可否认性。例如,在电子资金转账中,接收方可能声称收到了更高额的转账;或者在股票交易中,当交易亏损发生时,发送方可能否认曾下达交易指令。在这些不完全信任的场景中,需要更强大的方法来解决问题,这就是数字签名的用武之地。

数字签名的特征

数字签名必须满足以下特征,以确保信息的安全性和可靠性:

  1. 验证签名者、日期和时间:能够明确确认签名者的身份及签名的具体时间,确保签名的真实性和时效性。
  2. 认证消息内容:确保所签名的消息内容自签名后未被篡改,保证消息的完整性。
  3. 第三方仲裁能力:当发生争议时,应允许一个可信的第三方验证签名的有效性,以解决双方的争端。

数字签名的过程简述

如图13.1所示,数字签名的过程可以分为两个主要部分:

  1. 签名生成

    • Bob使用一个密码学哈希函数对消息M进行处理,得到一个摘要。
    • 然后,Bob用他的私钥对这个摘要进行加密,产生数字签名。
    • 将这个数字签名附加在消息M后,一起发送给Alice。
  2. 签名验证

    • Alice接收到消息M和签名后,使用同样的哈希函数计算消息M的摘要。
    • 接着,她用Bob的公钥对收到的签名进行解密,得到一个摘要。
    • 比较这两个摘要,如果一致,则验证了消息的完整性和来源。

结论

数字签名是公钥密码学中极为重要的一个概念,它为消息的认证和不可否认性提供了强有力的保障。理解数字签名的特征和过程,对于构建安全的通信系统和进行有效的数据保护至关重要。通过本节的学习,我们应能够对数字签名的工作原理有一个清晰的认识,并理解其在现代通信中的重要作用。

 

13.1.2 攻击和伪造

数字签名虽然提供了强大的安全保障,但并不是绝对安全的。理解可能针对数字签名方案的攻击类型和伪造方法,对于设计和使用更加安全的系统至关重要。以下是根据文献[GOLD88]提出的对数字签名可能的攻击类型和伪造方法的总结。

攻击类型

  1. 唯密钥攻击:攻击者(C)仅知道受害者(A)的公钥。这是最基础的攻击方式,攻击者尝试仅凭公钥来破解私钥或伪造签名。

  2. 已知消息攻击:攻击者(C)掌握一些消息以及这些消息对应的合法签名。攻击者尝试通过这些信息来找出签名的规律,进而伪造新的签名。

  3. 一般选择消息攻击:攻击者(C)在不知道受害者(A)的公钥的情况下选择一些消息,并获取这些消息的合法签名。这种攻击是一般性的,因为它与受害者的公钥无关,同样的攻击方法可以用于其他用户。

  4. 定向选择消息攻击:与一般选择消息攻击类似,不同之处在于攻击者选择消息的时间是在掌握受害者的公钥之后、签名生成之前。

  5. 适应性选择消息攻击:允许攻击者将受害者作为一个“oracle”进行轮询。意味着受害者可以被要求对特定的消息签名,而这些消息与攻击者之前已经获得的<消息-签名>对相关。

伪造方法

  1. 完全破译:攻击者(C)成功判断出受害者(A)的私钥。这种情况下,攻击者可以完全控制签名过程,伪造任何消息的签名。

  2. 通用伪造:攻击者(C)掌握一个有效的签名算法,使得对于任意消息都能构造出合法签名。这种攻击不需要知道私钥,但能等价地伪造签名。

  3. 选择伪造:针对特定消息,攻击者(C)能够伪造出合法签名。这种方法通常依赖于攻击者对特定消息的预先选择。

  4. 存在性伪造:攻击者(C)至少可以伪造出一个消息的合法签名,但无法控制该消息的具体内容。这是对受害者(A)危害最低的一种伪造。

结语

了解这些攻击和伪造类型对于设计和使用数字签名系统至关重要。它们揭示了系统潜在的脆弱性和攻击者可能利用的方式。为了构建更安全的系统,开发者和用户都需要充分了解这些安全风险,并采取相应的预防措施来抵御这些攻击。

13.1.3 数字签名需求

数字签名的基本需求

在考虑基本特征和可能的攻击之后,数字签名系统应满足以下条件以确保其有效性和安全性:

  1. 消息相关性:签名必须是与消息相关的二进制位串,确保每个签名都是唯一对应特定消息的。
  2. 独有性:签名必须使用发送方的某些独有信息生成,防止伪造和否认。通常这意味着使用私钥来创建签名。
  3. 易于生成:产生数字签名的过程应该相对容易,以便有效地创建签名。
  4. 易于验证:识别和验证签名的过程应该简洁明了,以便接收方和可能的第三方轻松验证签名。
  5. 计算不可行的伪造:无论是从给定的数字签名伪造消息,还是从给定的消息伪造数字签名,都在计算上应该是不可行的。
  6. 可存储性:保存数字签名的副本应该是可行的,以便未来验证和存档。

安全Hash函数的角色

安全Hash函数在基于图13.1所示的方案中被使用,提供了满足上述条件的基础。但具体的方案细节需要仔细设计以确保安全性和可靠性。

13.1.4 直接数字签名

直接数字签名是只涉及通信双方(发送方和接收方)的数字签名方案。在此情景中,接收方已知发送方的公钥。为了获得保密性,可以对整个消息和签名使用共享的密钥(对称密码)进行加密。注意,签名应该先于加密执行,这样在发生争议时,第三方可以查看消息及其签名。若先对消息加密再签名,第三方必须知道解密密钥才能读取原始消息。然而,这样接收方可以存储明文形式的消息及其签名,以备未来解决争议时使用。

直接签名的弱点和对策

直接签名方法的有效性依赖于发送方私钥的安全性。如果发送方想否认以前发送过的消息,他可能声称其私钥已丢失或被盗用。这种威胁可以通过在私钥的安全性方面进行管理和控制来防止,例如要求每条要签名的消息都包含时间戳,并且在密钥被泄密后应立即向管理中心报告。此外,可以使用数字证书的证书管理中心(CA)来克服这些问题,这些话题将在后续章节讨论。

结语

理解数字签名的需求是设计和使用安全系统的关键。通过满足上述条件,数字签名系统可以提供强大的安全保障,防止伪造和否认,同时保持操作的可行性和效率。同时,直接数字签名的分析揭示了保持私钥安全的重要性及潜在的风险,强调了在实际应用中需要额外的安全措施和策略。

  • 18
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
第一章 基础知识 8 1.1 对称算法 8 1.2 摘要算法 9 1.3 公钥算法 9 1.4 回调函数 11 第二章 openssl简介 13 2.1 openssl简介 13 2.2 openssl安装 13 2.2.1 linux下的安装 13 2.2.2 windows编译与安装 14 2.3 openssl源代码 14 2.4 openssl学习方法 16 第三章 堆栈 17 3.1 openssl堆栈 17 3.2 数据结构 17 3.3 源码 18 3.4 定义用户自己的堆栈函数 18 3.5 编程示例 19 第四章 哈希表 21 4.1 哈希表 21 4.2 哈希表数据结构 21 4.3 函数说明 23 4.4 编程示例 25 第五章 内存分配 27 5.1 openssl内存分配 27 5.2 内存数据结构 27 5.3 主要函数 28 5.4 编程示例 29 第六章 动态模块加载 30 6.1 动态库加载 30 6.2 DSO概述 30 6.3 数据结构 31 6.4 编程示例 32 第七章 抽象IO 34 7.1 openssl抽象IO 34 7.2 数据结构 34 7.3 BIO 函数 36 7.4 编程示例 36 7.4.1 mem bio 36 7.4.2 file bio 37 7.4.3 socket bio 38 7.4.4 md BIO 39 7.4.5 cipher BIO 40 7.4.6 ssl BIO 41 7.4.7 其他示例 42 第八章 配置文件 43 8.1 概述 43 8.2 openssl配置文件读取 43 8.3 主要函数 44 8.4 编程示例 44 第九章 随机数 46 9.1 随机数 46 9.2 openssl随机数数据结构与源码 46 9.3 主要函数 48 9.4 编程示例 48 第十章 文本数据库 50 10.1 概述 50 10.2 数据结构 51 10.3 函数说明 51 10.4 编程示例 52 第十一章 大数 54 11.1 介绍 54 11.2 openssl大数表示 54 11.3 大数函数 55 11.4 使用示例 58 第十二章 BASE64编解码 64 12.1 BASE64编码介绍 64 12.2 BASE64编解码原理 64 12.3 主要函数 65 12.4 编程示例 66 第十三章 ASN1库 68 13.1 ASN1简介 68 13.2 DER编码 70 13.3 ASN1基本类型示例 70 13.4 openssl 的ASN.1库 73 13.5 用openssl的ASN.1库DER编解码 74 13.6 Openssl的ASN.1宏 74 13.7 ASN1常用函数 75 13.8 属性证书编码 89 第十四章 错误处理 93 14.1 概述 93 14.2 数据结构 93 14.3 主要函数 95 14.4 编程示例 97 第十五章 摘要与HMAC 100 15.1 概述 100 15.2 openssl摘要实现 100 15.3 函数说明 101 15.4 编程示例 101 15.5 HMAC 103 第十六章 数据压缩 104 16.1 简介 104 16.2 数据结构 104 16.3 函数说明 105 16.4 openssl中压缩算法协商 106 16.5 编程示例 106 第十七章 RSA 107 17.1 RSA介绍 107 17.2 openssl的RSA实现 107 17.3 RSA签名与验证过程 108 17.4 数据结构 109 17.4.1 RSA_METHOD 109 17.4.2 RSA 110 17.5 主要函数 110 17.6编程示例 112 17.6.1密钥生成 112 17.6.2 RSA加解密运算 113 17.6.3签名与验证 116 第十八章 DSA 119 18.1 DSA简介 119 18.2 openssl的DSA实现 120 18.3 DSA数据结构 120 18.4 主要函数 121 18.5 编程示例 122 18.5.1密钥生成 122 18.5.2签名与验证 124 第十九章DH 126 19.1 DH算法介绍 126 19.2 openssl的DH实现 127 19.3数据结构 127 19.4 主要函数 128 19.5 编程示例 129 第二十章 椭圆曲线 132 20.1 ECC介绍 132 20.2 openssl的ECC实现 133 20.3 主要函数 135 20.3.1参数设置 135 20.3.2参数获取 136 20.3.3转化函数 137 20.3.4其他函数 137 20.4 编程示例 139 第二十一章 EVP 143 21.1 EVP简介 143 21.2 数据结构 143 21.2.1 EVP_PKEY 144 21.2.2 EVP_MD 144 21.2.3 EVP_CIPHER 145 21.2.4 EVP_CIPHER_CTX 146 21.3 源码结构 147 21.4 摘要函数 147 21.5 对称加解密函数 148 21.6 非对称函数 149 21.7 BASE64编解码函数 149 21.8其他函数 150 21.9 对称加密过程 152 21.10 编程示例 152 第二十二章 PEM格式 159 22.1 PEM概述 159 22.2 openssl的PEM实现 160 22.3 PEM函数 161 22.4 编程示例 161 第二十三章 Engine 165 23.1 Engine概述 165 23.2 Engine支持的原理 165 23.3 Engine数据结构 166 23.4 openssl 的Engine源码 167 23.5 Engine函数 167 23.6 实现Engine示例 169 第二十四章 通用数据结构 182 24.1通用数据结构 182 24.2 X509_ALGOR 182 24.3 X509_VAL 184 24.4 X509_SIG 185 24.5 X509_NAME_ENTRY 186 24.6 X509_NAME 187 24.7 X509_EXTENSION 193 24.8 X509_ATTRIBUTE 199 24.9 GENERAL_NAME 200 第二十五章 证书申请 203 25.1 证书申请介绍 203 25.2 数据结构 203 25.3 主要函数 204 25.4 编程示例 206 25.4.1生成证书请求文件 206 25.4.2 解码证书请求文件 208 第二十六章 X509数字证书 210 26.1 X509数字证书 210 26.2 opessl实现 210 26.3 X509数据结构 210 26.4 X509_TRUST与X509_CERT_AUX 214 26.5 X509_PURPOSE 215 26.6 主要函数 218 26.7 证书验证 221 26.7.1证书验证项 221 26.7.2 Openssl中的证书验证 221 第二十七章 OCSP 222 27.1 概述 222 27.2 openssl实现 222 27.3 主要函数 222 27.4编程示例 227 第二十八章 CRL 228 28.1 CRL介绍 228 28.2 数据结构 228 28.3 CRL函数 230 28.4 编程示例 231 第二十九章 PKCS7 233 29.1概述 233 29.2 数据结构 233 29.3 函数 234 29.4 消息编解码 235 29.4.1 data 235 29.4.2 signed data 236 29.4.3 enveloped 237 29.4.4 signed_and_enveloped 238 29.4.5 digest 238 29.4.6 encrypted 239 29.4.7 读取PEM 239 29.4.8 解码pkcs7 240 第三十章 PKCS12 241 30.1 概述 241 30.2 openss实现 241 30.3数据结构 242 30.4函数 243 30.5 编程示例 245 第三十一章 SSL实现 254 31.1概述 254 31.2 openssl实现 254 31.3 建立SSL测试环境 254 31.4 数据结构 256 31.5 加密套件 256 31.6 密钥信息 257 31.7 SESSION 258 31.8 多线程支持 258 31.9 编程示例 259 31.10 函数 270 第三十二章 Openssl命令 272 32.1概述 272 32.2 asn1parse 272 32.3 dgst 274 32.4 gendh 275 32.5 passwd 276 32.6 rand 276 32.7 genrsa 277 32.8 req 278 32.9 x509 280 32.10 version 283 32.11 speed 283 32.12 sess_id 284 32.13 s_server 284 32.14 s_client 286 32.15 rsa 288 32.16 pkcs7 289 32.17 dsaparam 290 32.18 gendsa 291 32.19 enc 291 32.20 ciphers 292 32.21 CA 293 32.22 verify 296 32.23 rsatul 297 32.24 crl 299 32.25 crl2pkcs7 300 32.26 errstr 300 32.27 ocsp 301 32.28 pkcs12 304 32.29 pkcs8 306 32.30 s_time 307 32.31 dhparam和dh 308 32.32 ecparam 309 32.33 ec 310 32.34 dsa 311 32.35 nseq 312 32.36 prime 313 32.37 smime 313
openssl 编程 当前版本 赵春平 著 第一章 基础知识 8 1.1 对称算法 8 1.2 摘要算法 9 1.3 公钥算法 9 1.4 回调函数 11 第二章 openssl简介 13 2.1 openssl简介 13 2.2 openssl安装 13 2.2.1 linux下的安装 13 2.2.2 windows编译与安装 14 2.3 openssl源代码 14 2.4 openssl学习方法 16 第三章 堆栈 17 3.1 openssl堆栈 17 3.2 数据结构 17 3.3 源码 18 3.4 定义用户自己的堆栈函数 18 3.5 编程示例 19 第四章 哈希表 21 4.1 哈希表 21 4.2 哈希表数据结构 21 4.3 函数说明 23 4.4 编程示例 25 第五章 内存分配 27 5.1 openssl内存分配 27 5.2 内存数据结构 27 5.3 主要函数 28 5.4 编程示例 29 第六章 动态模块加载 30 6.1 动态库加载 30 6.2 DSO概述 30 6.3 数据结构 31 6.4 编程示例 32 第七章 抽象IO 34 7.1 openssl抽象IO 34 7.2 数据结构 34 7.3 BIO 函数 36 7.4 编程示例 36 7.4.1 mem bio 36 7.4.2 file bio 37 7.4.3 socket bio 38 7.4.4 md BIO 39 7.4.5 cipher BIO 40 7.4.6 ssl BIO 41 7.4.7 其他示例 42 第八章 配置文件 43 8.1 概述 43 8.2 openssl配置文件读取 43 8.3 主要函数 44 8.4 编程示例 44 第九章 随机数 46 9.1 随机数 46 9.2 openssl随机数数据结构与源码 46 9.3 主要函数 48 9.4 编程示例 48 第十章 文本数据库 50 10.1 概述 50 10.2 数据结构 51 10.3 函数说明 51 10.4 编程示例 52 第十一章 大数 54 11.1 介绍 54 11.2 openssl大数表示 54 11.3 大数函数 55 11.4 使用示例 58 第十二章 BASE64编解码 64 12.1 BASE64编码介绍 64 12.2 BASE64编解码原理 64 12.3 主要函数 65 12.4 编程示例 66 第十三章 ASN1库 68 13.1 ASN1简介 68 13.2 DER编码 70 13.3 ASN1基本类型示例 70 13.4 openssl 的ASN.1库 73 13.5 用openssl的ASN.1库DER编解码 74 13.6 Openssl的ASN.1宏 74 13.7 ASN1常用函数 75 13.8 属性证书编码 89 第十四章 错误处理 93 14.1 概述 93 14.2 数据结构 93 14.3 主要函数 95 14.4 编程示例 97 第十五章 摘要与HMAC 100 15.1 概述 100 15.2 openssl摘要实现 100 15.3 函数说明 101 15.4 编程示例 101 15.5 HMAC 103 第十六章 数据压缩 104 16.1 简介 104 16.2 数据结构 104 16.3 函数说明 105 16.4 openssl中压缩算法协商 106 16.5 编程示例 106 第十七章 RSA 107 17.1 RSA介绍 107 17.2 openssl的RSA实现 107 17.3 RSA签名与验证过程 108 17.4 数据结构 109 17.4.1 RSA_METHOD 109 17.4.2 RSA 110 17.5 主要函数 110 17.6编程示例 112 17.6.1密钥生成 112 17.6.2 RSA加解密运算 113 17.6.3签名与验证 116 第十八章 DSA 119 18.1 DSA简介 119 18.2 openssl的DSA实现 120 18.3 DSA数据结构 120 18.4 主要函数 121 18.5 编程示例 122 18.5.1密钥生成 122 18.5.2签名与验证 124 第十九章DH 126 19.1 DH算法介绍 126 19.2 openssl的DH实现 127 19.3数据结构 127 19.4 主要函数 128 19.5 编程示例 129 第二十章 椭圆曲线 132 20.1 ECC介绍 132 20.2 openssl的ECC实现 133 20.3 主要函数 135 20.3.1参数设置 135 20.3.2参数获取 136 20.3.3转化函数 137 20.3.4其他函数 137 20.4 编程示例 139 第二十一章 EVP 143 21.1 EVP简介 143 21.2 数据结构 143 21.2.1 EVP_PKEY 144 21.2.2 EVP_MD 144 21.2.3 EVP_CIPHER 145 21.2.4 EVP_CIPHER_CTX 146 21.3 源码结构 147 21.4 摘要函数 147 21.5 对称加解密函数 148 21.6 非对称函数 149 21.7 BASE64编解码函数 149 21.8其他函数 150 21.9 对称加密过程 152 21.10 编程示例 152 第二十二章 PEM格式 159 22.1 PEM概述 159 22.2 openssl的PEM实现 160 22.3 PEM函数 161 22.4 编程示例 161 第二十三章 Engine 165 23.1 Engine概述 165 23.2 Engine支持的原理 165 23.3 Engine数据结构 166 23.4 openssl 的Engine源码 167 23.5 Engine函数 167 23.6 实现Engine示例 169 第二十四章 通用数据结构 182 24.1通用数据结构 182 24.2 X509_ALGOR 182 24.3 X509_VAL 184 24.4 X509_SIG 185 24.5 X509_NAME_ENTRY 186 24.6 X509_NAME 187 24.7 X509_EXTENSION 193 24.8 X509_ATTRIBUTE 199 24.9 GENERAL_NAME 200 第二十五章 证书申请 203 25.1 证书申请介绍 203 25.2 数据结构 203 25.3 主要函数 204 25.4 编程示例 206 25.4.1生成证书请求文件 206 25.4.2 解码证书请求文件 208 第二十六章 X509数字证书 210 26.1 X509数字证书 210 26.2 opessl实现 210 26.3 X509数据结构 210 26.4 X509_TRUST与X509_CERT_AUX 214 26.5 X509_PURPOSE 215 26.6 主要函数 218 26.7 证书验证 221 26.7.1证书验证项 221 26.7.2 Openssl中的证书验证 221 第二十七章 OCSP 222 27.1 概述 222 27.2 openssl实现 222 27.3 主要函数 222 27.4编程示例 227 第二十八章 CRL 228 28.1 CRL介绍 228 28.2 数据结构 228 28.3 CRL函数 230 28.4 编程示例 231 第二十九章 PKCS7 233 29.1概述 233 29.2 数据结构 233 29.3 函数 234 29.4 消息编解码 235 29.4.1 data 235 29.4.2 signed data 236 29.4.3 enveloped 237 29.4.4 signed_and_enveloped 238 29.4.5 digest 238 29.4.6 encrypted 239 29.4.7 读取PEM 239 29.4.8 解码pkcs7 240 第三十章 PKCS12 241 30.1 概述 241 30.2 openss实现 241 30.3数据结构 242 30.4函数 243 30.5 编程示例 245 第三十一章 SSL实现 254 31.1概述 254 31.2 openssl实现 254 31.3 建立SSL测试环境 254 31.4 数据结构 256 31.5 加密套件 256 31.6 密钥信息 257 31.7 SESSION 258 31.8 多线程支持 258 31.9 编程示例 259 31.10 函数 270 第三十二章 Openssl命令 272 32.1概述 272 32.2 asn1parse 272 32.3 dgst 274 32.4 gendh 275 32.5 passwd 276 32.6 rand 276 32.7 genrsa 277 32.8 req 278 32.9 x509 280 32.10 version 283 32.11 speed 283 32.12 sess_id 284 32.13 s_server 284 32.14 s_client 286 32.15 rsa 288 32.16 pkcs7 289 32.17 dsaparam 290 32.18 gendsa 291 32.19 enc 291 32.20 ciphers 292 32.21 CA 293 32.22 verify 296 32.23 rsatul 297 32.24 crl 299 32.25 crl2pkcs7 300 32.26 errstr 300 32.27 ocsp 301 32.28 pkcs12 304 32.29 pkcs8 306 32.30 s_time 307 32.31 dhparam和dh 308 32.32 ecparam 309 32.33 ec 310 32.34 dsa 311 32.35 nseq 312 32.36 prime 313 32.37 smime 313
第1章 计算机网络基础知识  1.1 计算机网络的产生与发展  1.2 计算机网络概述  1.2.1 计算机网络的基本概念  1.2.2 通信子网和资源子网  1.3 计算机网络的功能  1.4 计算机网络的分类和拓扑结构  1.4.1 计算机网络的分类  1.4.2 计算机网络的拓扑结构  1.5 计算机网络的应用  小结  习题1  第2章 数据通信技术  2.1 数据通信的基本概念  2.1.1 信息、数据与信号  2.1.2 模拟信号与数字信号  2.1.3 基带信号与宽带信号  2.1.4 信道及信道的分类  2.1.5 数据通信的技术指标  2.1.6 通信方式  2.2 传输介质的主要特性和应用  2.2.1 传输介质的主要类型  2.2.2 双绞线  2.2.3 同轴电缆  2.2.4 光纤  2.2.5 双绞线、同轴电缆与光纤的性能比较  2.3 无线与卫星通信技术  2.3.1 电磁波谱  2.3.2 无线通信  2.3.3 微波通信  2.3.4 卫星通信  2.4 数据交换技术  2.4.1 电路交换  2.4.2 存储转发交换  2.5 数据传输技术  2.5.1 基带传输技术  2.5.2 频带传输技术  2.5.3 多路复用技术  2.6 数据编码技术  2.6.1 数据编码的类型  2.6.2 数字数据的模拟信号编码  2.6.3 数字数据的数字信号编码  2.6.4 脉冲编码调制  2.7 差错控制技术  2.7.1 差错产生的原因与差错类型  2.7.2 误码率的定义  2.7.3 差错的控制  小结  习题2  第3章 计算机网络体系结构与协议  3.1 网络体系结构与协议概述  3.1.1 网络体系结构的概念  3.1.2 网络协议的概念  3.1.3 网络协议的分层  3.1.4 其他相关概念  3.2 OSI参考模型  3.2.1 OSI参考模型的概念  3.2.2 OSI参考模型各层的功能  3.2.3 OSI参考模型中的数据传输过程  3.3 TCP/IP参考模型  3.3.1 TCP/IP概述  3.3.2 TCP/IP参考模型各层的功能  3.4 OSI参考模型与TCP/IP参考模型  3.4.1 两种模型的比较  3.4.2 OSI参考模型的缺点  3.4.3 TCP/IP参考模型的缺点  3.4.4 网络参考模型的建议  小结  习题3  第4章 局域网  4.1 局域网概述  4.2 局域网的特点及其基本组成  4.3 局域网的主要技术  4.3.1 局域网的传输介质  4.3.2 局域网的拓扑结构  4.3.3 介质访问控制方法  4.4 局域网体系结构与IEEE 802标准  4.4.1 局域网参考模型  4.4.2 IEEE 802局域网标准  4.5 局域网组网技术  4.5.1 传统以太网  4.5.2 IBM令牌环网  4.5.3 交换式以太网  4.6 快速网络技术  4.6.1 快速以太网组网技术  4.6.2 吉比特以太网组网技术  4.6.3 ATM技术  4.7 VLAN  4.7.1 VLAN概述  4.7.2 VLAN的组网方法  4.8 WLAN  4.8.1 WLAN概述  4.8.2 WLAN的实现  4.8.3 WLAN组网实例——家庭无线局域网的组建  小结  习题4  第5章 广域网接入技术  5.1 广域网概述  5.2 常见的广域网接入技术  5.2.1 数字数据网(DDN)  5.2.2 综合业务数字网(ISDN)  5.2.3 宽带综合业务数字网(B-ISDN)  5.2.4 分组交换数据网(PSDN)  5.2.5 帧中继(Frame Relay)  5.2.6 数字用户线路xDSL  小结  习题5  第6章 网络互联技术  6.1 网络互联的基本概念  6.1.1 网络互联概述  6.1.2 网络互联的要求  6.2 网络互联的类型和层次  6.2.1 网络互联的类型  6.2.2 网络互联的层次  6.3 典型网络互连设备  6.3.1 中继器  6.3.2 网桥  6.3.3 网关  6.3.4 路由器  6.4 路由协议  6.4.1 路由信息协议(RIP)  6.4.2 内部路由协议(OSPF)  6.4.3 外部路由协议(BGP)  6.5 路由器的基本配置  6.5.1 路由器的接口  6.5.2 路由器的配置方法  小结  习题6  第7章 Internet基础知识  7.1 Internet的产生和发展  7.1.1 ARPANET的诞生  7.1.2 NSFNET的建立  7.1.3 全球范围Internet的形成与发展  7.2 Internet概述  7.2.1 Internet的基本概念  7.2.2 Internet的特点  7.3 Internet的主要功能与服务  7.3.1 Internet的主要功能  7.3.2 Internet的主要服务  7.4 Internet的结构  7.4.1 Internet的物理结构  7.4.2 Internet协议结构与TCP/IP  7.4.3 客户机/服务器的工作模式  7.5 Internet地址结构  7.5.1 IP地址概述  7.5.2 IP地址的组成与分类  7.5.3 特殊类型的IP地址  7.5.4 IP地址和物理地址的转换  7.6 子网和子网掩码  7.6.1 子网  7.6.2 子网掩码  7.6.3 A类、B类、C类IP地址的标准子网掩码  7.6.4 子网掩码的确定  7.7 域名系统  7.7.1 域名系统的层次命名机构  7.7.2 域名的表示方式  7.7.3 域名服务器和域名的解析过程  7.8 IPv4的应用极其局限性  7.8.1 什么是IPv4  7.8.2 IPv4的应用  7.8.3 IPv4的局限性  7.9 IPv6简介  7.9.1 IPv6的发展历史  7.9.2 IPv4的缺点及IPv6的技术新特性  7.9.3 IPv4与IPv6的共存局面  7.9.4 从IPv4过渡到IPv6的方案  7.9.5 IPv6的应用前景  小结  习题7  第8章 Internet接入技术  8.1 Internet接入概述  8.1.1 接入到Internet的主要方式  8.1.2 ISP  8.2 电话拨号接入Internet  8.2.1 SLIP/PPP概述  8.2.2 Winsock概述  8.3 局域网接入Internet  8.4 ADSL接入技术  8.4.1 ADSL概述  8.4.2 ADSL的主要特点  8.4.3 ADSL的安装  8.4.4 PPP与PPPoE  8.5 Cable Modem接入技术  8.5.1 CATV和HFC  8.5.2 Cable Modem概述  8.5.3 Cable Modem的主要特点  8.6 光纤接入技术  8.6.1 光纤接入技术概述  8.6.2 光纤接入的主要特点  8.7 无线接入技术  8.7.1 无线接入概述  8.7.2 WAP简介  8.7.3 当今流行的无线接入技术  8.8 连通测试  小结  习题8  第9章 Internet的应用  9.1 Internet应用于家庭  9.1.1 家庭用户连入Internet  9.1.2 使用浏览器浏览Internet  9.1.3 家庭娱乐  9.2 Internet应用于电子商务  9.2.1 电子商务及其起源  9.2.2 电子商务的特点  9.2.3 电子商务的内容  9.3 Internet应用所带来的社会问题  9.4 Internet应用的发展趋势与研究热点  小结  习题9  第10章 移动IP与下一代Internet  10.1 移动IP技术  10.1.1 移动IP技术的概念  10.1.2 与移动IP技术相关的几个重要术语  10.1.3 移动IP的工作原理  10.1.4 移动IP技术发展的3个阶段  10.2 第三代Internet与中国  10.2.1 什么是第三代Internet  10.2.2 第三代Internet的主要特点  10.2.3 中国的下一代互联网  小结  习题10  第11章 网络操作系统  11.1 网络操作系统概述  11.1.1 网络操作系统的基本概念  11.1.2 网络操作系统的基本功能  11.1.3 网络操作系统的发展  11.2 Windows NT Server操作系统  11.2.1 Windows NT Server 的发展  11.2.2 Windows NT Server的特点  11.3 Windows 2000 Server操作系统  11.3.1 Windows 2000 Server简介  11.3.2 Windows 2000 Server的特点  11.4 Windows Server 2003操作系统  11.4.1 Windows Server 2003简介  11.4.2 Windows Server 2003的特点  11.5 NetWare操作系统  11.5.1 NetWare操作系统的发展与组成  11.5.2 NetWare操作系统的特点  11.6 UNIX操作系统  11.6.1 UNIX操作系统的发展  11.6.2 UNIX操作系统的特点  11.7 Linux操作系统  11.7.1 Linux操作系统的发展  11.7.2 Linux操作系统的特点  小结  习题11  第12章 网络安全  12.1 网络安全的现状与重要性  12.2 防火墙技术  12.2.1 防火墙的基本概念  12.2.2 防火墙的主要类型  12.2.3 防火墙的主要产品  12.3 网络加密技术  12.3.1 网络加密的主要方式  12.3.2 网络加密算法  12.4 数字证书和数字签名  12.4.1 电子商务安全的现状  12.4.2 数字证书  12.4.3 数字签名  12.5 入侵检测技术  12.5.1 入侵检测的基本概念  12.5.2 入侵检测的分类  12.6 网络防病毒技术  12.6.1 计算机病毒  12.6.2 网络病毒的危害及感染网络病毒的主要原因  12.6.3 网络防病毒软件的应用  12.6.4 网络工作站防病毒的方法  12.7 网络安全技术的发展前景  12.7.1 网络加密技术的发展前景  12.7.2 入侵检测技术的发展趋势  12.7.3 IDS的应用前景  小结  习题12  第13章 网络管理  13.1 网络管理概述  13.1.1 网络管理的基本概念  13.1.2 网络管理体系结构  13.2 网络管理的功能  13.3 MIB  13.3.1 MIB的结构形式  13.3.2 MIB的访问方式  13.4 SNMP  13.4.1 SNMP的发展  13.4.2 SNMP的设计目标  13.4.3 SNMP的工作机制  13.5 网络管理工具  13.5.1 HP Open View  13.5.2 IBM TME 10 NetView  13.5.3 Cisco Works 2000  13.5.4 3Com Transcend  13.6 网络管理技术的发展趋势  小结  习题13  第14章 网络实验  14.1 实验1 理解网络的基本要素  14.2 实验2 双绞线的制作与应用  14.3 实验3 使用“超级终端”进行串行通信  14.4 实验4 网络连接性能的测试  14.5 实验5 组建一个小型对等网  14.6 实验6 WWW服务  14.7 实验7 使用电子邮件  14.8 实验8 DHCP服务器的安装与配置  14.9 实验9 DNS服务器的安装与配置 
Quartus 13.1是一个业界广泛使用的数字电路设计软件,由英特尔公司(前身为Altera公司)开发。该软件提供了完整的设计流程,包括原型设计、仿真、优化和布局布线。 Quartus 13.1需要许可证才能使用。许可证可以通过购买或获得免费的学术或试用许可证来获得。 许可证分为多个级别,包括个人、学术、企业等不同类型的许可证。不同级别的许可证具有不同的功能和限制。 对于个人用户,可以购买个人许可证来使用Quartus 13.1。个人许可证通常是永久许可证,可以在一定时间内获得更新和技术支持。这些许可证通常有较低的价格,并且适用于个人学习和非商业项目。 学术许可证通常是为教育机构和学生提供的。它们可以通过学校、大学或教育机构获得。学术许可证为学生和教育者提供了低成本或免费的Quartus使用权,并且通常包含了教学和研究方面的额外支持。 企业许可证通常适用于商业项目。这些许可证有不同的价格和配置选项,适用于各种规模和需求的企业。企业许可证通常包括高级功能和优化选项,以支持更复杂的设计和项目。 无论何种类型的许可证,用户都需要在Quartus 13.1安装和启动时输入许可证信息以验证其合法性。没有有效的许可证,用户将无法使用软件的特定功能或在一定时间后无法继续使用。 总的来说,对于Quartus 13.1的许可证,用户可以根据他们的需求和使用情况选择不同类型的许可证,并按照相应的流程来获得合法的许可证来使用Quartus 13.1进行数字电路设计。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏驰和徐策

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值