<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>crypto on SecDoc</title>
    <link>https://secdoc.jazor.net/tags/crypto/</link>
    <description>Recent content in crypto on SecDoc</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>zh-cn</language>
    <copyright>© 2026 黑豆子</copyright>
    <lastBuildDate>Wed, 06 May 2026 00:06:32 +0800</lastBuildDate><atom:link href="https://secdoc.jazor.net/tags/crypto/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>TLS 1.3 密钥更新机制解析</title>
      <link>https://secdoc.jazor.net/posts/tls13-key-update-mechanism/</link>
      <pubDate>Wed, 06 May 2026 00:06:32 +0800</pubDate>
      
      <guid>https://secdoc.jazor.net/posts/tls13-key-update-mechanism/</guid>
      <description>TLS 1.3 作为最新版本的传输层安全协议，在握手效率和安全性方面做了重大改进。其中，密钥更新（Key Update）机制是一个重要的安全特性，允许在不重新握手的情况下更新加密密钥，从而延长加密会话的生命周期，同时保持前向安全性。
什么是密钥更新机制？ 密钥更新（Key Update）是 TLS 1.3 协议定义的 POST-HANDSHAKE 消息之一。在 TLS 1.3 中，握手完成后的加密通信使用两类密钥：
应用流量密钥（Application Traffic Keys）：用于加密实际的应用数据 握手流量密钥（Handshake Traffic Keys）：仅用于加密握手消息 传统的 TLS 1.2 想要更新密钥必须重新握手，这会增加延迟。TLS 1.3 引入了 KeyUpdate 消息，允许双方在不中断连接的情况下动态更新应用流量密钥。
为什么需要密钥更新？ 1. 限制单密钥加密数据量 现代加密算法在加密大量数据后，理论上存在被破解的风险（尽管概率极低）。定期更新密钥可以：
减少每个密钥加密的数据量 降低潜在的安全风险 满足某些合规要求 2. 保持前向安全性 TLS 1.3 的密钥派生使用 HKDF，从原始握手密钥派生出应用流量密钥。即使某个会话密钥被破解，之前的通信仍然是安全的。密钥更新机制让这一特性在长会话中持续生效。
3. 减少握手开销 相比完整的重新握手，KeyUpdate 消息只包含几个字节，延迟几乎可以忽略不计。
KeyUpdate 消息格式 TLS 1.3 的 KeyUpdate 消息结构简洁高效：
1 2 3 4 5 6 7 8 9 struct { KeyUpdateRequest request; } KeyUpdate; enum { update_not_requested(0), update_requested(1), (255) } KeyUpdateRequest; update_not_requested(0)：我已更新密钥，但不希望对方也更新 update_requested(1)：我已更新密钥，并请求对方也更新 工作流程详解 密钥更新的完整流程如下：</description>
    </item>
    
    <item>
      <title>后量子密码学与 NIST PQC 标准化</title>
      <link>https://secdoc.jazor.net/posts/post-quantum-cryptography-nist-standard/</link>
      <pubDate>Wed, 29 Apr 2026 00:00:00 +0800</pubDate>
      
      <guid>https://secdoc.jazor.net/posts/post-quantum-cryptography-nist-standard/</guid>
      <description>量子计算的快速发展对现代密码学构成了前所未有的威胁。当前广泛使用的 RSA、ECDSA 等公钥密码算法依赖于大整数分解或离散对数问题的计算难度，但量子计算机的 Shor 算法可以在多项式时间内解决这些问题。这意味着当大规模量子计算机成熟时，现有的 SSL/TLS 证书、SSH 密钥、数字签名都将面临被破解的风险。
什么是后量子密码学 后量子密码学（Post-Quantum Cryptography，PQC）是指能够在经典计算机上运行，但能够抵御量子计算机攻击的密码学算法。这些算法不依赖量子力学原理，而是基于量子计算机也难以高效求解的数学问题，如格密码（Lattice-Based）、编码密码（Code-Based）、多变量密码（Multivariate）等。
与量子密钥分发（QKD）不同，PQC 是软件层面的解决方案，可以在现有硬件和网络上部署，无需专门的量子通信设备。
NIST PQC 标准化进程 美国国家标准与技术研究院（NIST）自 2016 年启动后量子密码学标准化项目，经过多轮筛选，于 2024 年 8 月发布了首批三个最终标准。
首批发布的三个标准 标准名称 类型 底层技术 用途 ML-KEM 密钥封装机制 模块格（Module-Lattice） 密钥交换、TLS 握手 ML-DSA 数字签名 模块格（Module-Lattice） 证书签名、代码签名 SLH-DSA 数字签名 哈希（Hash-Based） 替代签名方案 ML-KEM（原 Kyber）是基于格理论的密钥封装机制，将取代传统的 Diffie-Hellman 密钥交换，用于 TLS 1.3 握手阶段的密钥协商。
ML-DSA（原 Dilithium）是基于格理论的数字签名算法，将作为主要的签名方案，用于 SSL/TLS 证书、代码签名等场景。
SLH-DSA（原 SPHINCS+）是基于哈希的签名算法，作为备份方案，安全性基于哈希函数的抗碰撞性。
正在标准化的候选算法 除了首批三个标准，NIST 还在评估以下算法：
Falcon：基于格的高效签名算法，签名更短，适用于带宽受限场景 HQC：基于编码的密钥封装机制，提供额外的安全保障 实际影响与迁移时间线 对 TLS/SSL 的影响 当前的 TLS 协议使用 RSA 或 ECDSA 进行身份验证，使用 ECDHE 进行密钥交换。迁移到 PQC 后：</description>
    </item>
    
    <item>
      <title>TLS 1.3 密钥派生：HKDF 原理与实战</title>
      <link>https://secdoc.jazor.net/posts/tls13-hkdf-key-derivation/</link>
      <pubDate>Mon, 27 Apr 2026 00:00:00 +0800</pubDate>
      
      <guid>https://secdoc.jazor.net/posts/tls13-hkdf-key-derivation/</guid>
      <description>深入解析 TLS 1.3 密钥派生机制，HKDF 工作原理以及在 OpenSSL 中的实际应用。</description>
    </item>
    
    <item>
      <title>TLS 密码套件命名规范解析</title>
      <link>https://secdoc.jazor.net/posts/tls-cipher-suite-naming/</link>
      <pubDate>Mon, 20 Apr 2026 00:00:00 +0800</pubDate>
      
      <guid>https://secdoc.jazor.net/posts/tls-cipher-suite-naming/</guid>
      <description>在配置 TLS/SSL 时，我们经常看到类似 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 这样的密码套件名称。对于初学者来说，这串字符可能令人困惑。本文将详细解析 TLS 密码套件的命名规范，帮助你理解每个部分的含义。
什么是密码套件 密码套件（Cipher Suite）是 TLS 协议的核心组件，它定义了一整套加密算法组合，包括：
密钥交换算法 身份认证算法 加密算法 哈希算法 一个密码套件决定了 TLS 握手期间如何协商安全参数，以及如何加密传输的数据。
TLS 1.2 密码套件命名格式 TLS 1.2 采用以下命名格式：
1 TLS_密钥交换算法_认证算法_加密算法_哈希算法 以 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 为例：
组成部分 含义 TLS 协议名称 ECDHE 密钥交换算法（Elliptic Curve Diffie-Hellman Ephemeral） RSA 身份认证算法 AES_256_GCM 加密算法（AES，256位，GCM模式） SHA384 哈希算法 各组件详解 密钥交换算法（Key Exchange）
ECDHE：椭圆曲线临时 Diffie-Hellman（推荐，前向安全） DHE：临时 Diffie-Hellman（传统但性能较低） RSA：基于 RSA 的密钥交换（已被废弃，不提供前向安全） ECDH：椭圆曲线 Diffie-Hellman（静态） 认证算法（Authentication）
RSA：RSA 公钥证书 ECDSA：椭圆曲线数字签名算法 DSS：数字签名标准（较老） 加密算法（Cipher）
AES_256_GCM：AES 加密，256位密钥，GCM 模式（推荐） CHACHA20-POLY1305：Google 开发的流密码（移动设备友好） AES_128_CCM：AES 加密，128位密钥，CCM 模式 ARIA256-GCM：韩国标准加密算法 哈希算法（MAC/Hash）</description>
    </item>
    
    <item>
      <title>AES 分组加密模式详解：ECB、CBC、CTR、GCM</title>
      <link>https://secdoc.jazor.net/posts/aes-block-cipher-modes/</link>
      <pubDate>Fri, 17 Apr 2026 00:00:00 +0800</pubDate>
      
      <guid>https://secdoc.jazor.net/posts/aes-block-cipher-modes/</guid>
      <description>深入解析 AES 分组加密的四种工作模式：ECB、CBC、CTR、GCM，理解各模式的原理、安全性和适用场景。</description>
    </item>
    
    <item>
      <title>ECDSA 数字签名算法详解</title>
      <link>https://secdoc.jazor.net/posts/ecdsa-digital-signature-algorithm/</link>
      <pubDate>Wed, 15 Apr 2026 00:00:00 +0800</pubDate>
      
      <guid>https://secdoc.jazor.net/posts/ecdsa-digital-signature-algorithm/</guid>
      <description>ECDSA（Elliptic Curve Digital Signature Algorithm）是基于椭圆曲线密码学的数字签名算法，广泛应用于比特币、区块链以及 TLS 证书中。本文介绍其原理及 OpenSSL 命令行操作。
什么是 ECDSA？ ECDSA 是 DSA（Digital Signature Algorithm）的椭圆曲线版本，利用椭圆曲线离散对数问题的计算难度来保证签名安全性。相比传统 RSA，ECDSA 在相同安全强度下密钥更短，运算更快。
常见曲线 曲线 位数 应用场景 prime256v1 (P-256) 256 位 主流 TLS 证书、Web 应用 secp384r1 (P-384) 384 位 高安全场景、政府、金融 secp521r1 (P-521) 521 位 极高安全需求 生成 ECDSA 密钥对 生成私钥 1 2 3 openssl genpkey -algorithm EC \ -pkeyopt ec_paramgen_curve:prime256v1 \ -out ecdsa_private.pem 导出公钥 1 openssl pkey -in ecdsa_private.pem -pubout -out ecdsa_public.pem 查看密钥详情 1 openssl pkey -in ecdsa_private.</description>
    </item>
    
    <item>
      <title>RSA 填充方案：OAEP 与 PSS 安全实践</title>
      <link>https://secdoc.jazor.net/posts/rsa-padding-schemes-oaep-pss/</link>
      <pubDate>Tue, 14 Apr 2026 00:10:00 +0800</pubDate>
      
      <guid>https://secdoc.jazor.net/posts/rsa-padding-schemes-oaep-pss/</guid>
      <description>详解 RSA 加密和签名中的填充方案，解释为什么 PKCS#1 v1.5 不安全，以及如何使用 OAEP 和 PSS 提升安全性。</description>
    </item>
    
    <item>
      <title>Diffie-Hellman 密钥交换原理与实践</title>
      <link>https://secdoc.jazor.net/posts/diffie-hellman-key-exchange/</link>
      <pubDate>Mon, 13 Apr 2026 00:05:46 +0800</pubDate>
      
      <guid>https://secdoc.jazor.net/posts/diffie-hellman-key-exchange/</guid>
      <description>Diffie-Hellman（DH）密钥交换协议是现代密码学的基石之一，它解决了在不安全信道上协商共享密钥的难题。本文将讲解 DH 的原理，并通过 OpenSSL 演示实际操作。
问题背景 假设 Alice 和 Bob 想要通过公开信道协商一个共享密钥，用于后续的加密通信。如果信道被窃听者监听，如何安全地交换密钥？
传统方案需要一个安全的密钥传输渠道，但这往往不现实。Diffie-Hellman 协议巧妙地解决了这个问题：双方可以在公开信道上协商出共享密钥，而窃听者无法得知最终密钥。
数学原理 离散对数难题 DH 的安全性基于离散对数难题：
对于素数 p 和生成元 g，已知 g^a mod p 很容易计算，但从结果反推 a 却极其困难（当 p 足够大时）。
密钥交换流程 假设参数 p（大素数）和 g（生成元）已公开：
1 2 3 4 5 6 7 8 9 10 11 12 13 Alice Bob ---------------------------------------------- 1. 选择私钥 a（随机数） 1. 选择私钥 b（随机数） 2. 计算公钥 A = g^a mod p 2. 计算公钥 B = g^b mod p 3. 发送 A 给 Bob --------&amp;gt; 3.</description>
    </item>
    
    <item>
      <title>Ed25519 密钥算法详解</title>
      <link>https://secdoc.jazor.net/posts/ed25519-key-algorithm-guide/</link>
      <pubDate>Sun, 12 Apr 2026 00:05:00 +0800</pubDate>
      
      <guid>https://secdoc.jazor.net/posts/ed25519-key-algorithm-guide/</guid>
      <description>Ed25519 是一种基于 EdDSA（Edwards-curve Digital Signature Algorithm）的数字签名算法，使用 Curve25519 椭圆曲线的变形 Ed25519。相比传统的 RSA 和 ECDSA，Ed25519 在安全性、性能和易用性上都有显著优势，已成为现代密码学的首选签名算法之一。
Ed25519 的核心优势 1. 密钥体积小 Ed25519 的密钥非常紧凑，公钥仅 32 字节，私钥 32 字节（种子）。这相比 RSA 2048 的 256 字节公钥和 1700+ 字节的私钥，存储和传输成本大幅降低。
公钥长度对比：
1 2 3 Ed25519 公钥: 82 字节（Base64 编码后） RSA 2048 公钥: 382 字节（Base64 编码后） ECDSA P-256 公钥: 162 字节（Base64 编码后） 2. 签名速度快 Ed25519 的签名和验证速度都非常快。其设计充分利用了现代 CPU 的特性，比 ECDSA 快约 3-5 倍，比 RSA 快得多。
3. 安全性高 128 位安全强度：等效于 RSA 3072 位或 AES-128 抗侧信道攻击：实现设计避免了时序攻击等侧信道风险 确定性签名：不需要随机数生成器，避免了 ECDSA 的随机数重用漏洞 4.</description>
    </item>
    
    <item>
      <title>OpenSSL rand 命令详解：随机数生成</title>
      <link>https://secdoc.jazor.net/posts/openssl-rand-random-generation/</link>
      <pubDate>Wed, 08 Apr 2026 00:00:00 +0800</pubDate>
      
      <guid>https://secdoc.jazor.net/posts/openssl-rand-random-generation/</guid>
      <description>随机数是密码学的基石。密钥、IV、盐值、Session ID 等都需要高质量的随机数。OpenSSL 的 rand 命令是生成密码学安全随机数的实用工具。
基本语法 1 openssl rand [选项] 字节数 常用选项：
-hex：输出十六进制格式 -base64：输出 Base64 编码格式 -out &amp;lt;文件&amp;gt;：输出到文件 常用示例 生成十六进制随机数 1 2 # 生成 16 字节（128 位）的十六进制随机数 openssl rand -hex 16 输出示例：
1 5254ce50aaf9b31ae6c6ecf2ef75f4de 生成 Base64 随机数 1 2 # 生成 32 字节（256 位）的 Base64 随机数 openssl rand -base64 32 输出示例：
1 n8EZAZAQ4PL60cFHcP0KIeT8dlhsa8m1K8QP1dQVnlQ= 生成不同长度的随机数 1 2 3 4 5 6 7 8 9 10 # 8 字节（64 位） openssl rand -hex 8 # 输出：67194de56e50d52b # 32 字节（256 位） openssl rand -hex 32 # 输出：7be8420779779ecd1253f6be94e7d717b9a75e7aa5d0767c95414e8f811d6b29 # 64 字节（512 位） openssl rand -hex 64 实战场景 1.</description>
    </item>
    
    <item>
      <title>OpenSSL enc 文件加密实战</title>
      <link>https://secdoc.jazor.net/posts/openssl-enc-file-encryption/</link>
      <pubDate>Tue, 07 Apr 2026 00:00:00 +0800</pubDate>
      
      <guid>https://secdoc.jazor.net/posts/openssl-enc-file-encryption/</guid>
      <description>使用 OpenSSL enc 命令进行文件对称加密，包括密码加密、密钥文件加密、Base64 编码等实战场景。</description>
    </item>
    
    <item>
      <title>SHA-256 哈希算法原理</title>
      <link>https://secdoc.jazor.net/posts/sha256-hash-principle/</link>
      <pubDate>Fri, 03 Apr 2026 00:00:00 +0800</pubDate>
      
      <guid>https://secdoc.jazor.net/posts/sha256-hash-principle/</guid>
      <description>深入解析 SHA-256 哈希算法的工作原理，包括消息填充、分块处理、压缩函数等核心步骤，理解其安全性的数学基础。</description>
    </item>
    
    <item>
      <title>哈希函数与数字签名：数据完整性保障</title>
      <link>https://secdoc.jazor.net/posts/hash-digital-signatures/</link>
      <pubDate>Thu, 02 Apr 2026 00:00:00 +0800</pubDate>
      
      <guid>https://secdoc.jazor.net/posts/hash-digital-signatures/</guid>
      <description>本文介绍哈希函数的特性、常用算法，以及数字签名如何保障数据完整性和 authenticity。</description>
    </item>
    
    <item>
      <title>密钥管理最佳实践：密钥生命周期与安全存储</title>
      <link>https://secdoc.jazor.net/posts/key-management-best-practices/</link>
      <pubDate>Thu, 02 Apr 2026 00:00:00 +0800</pubDate>
      
      <guid>https://secdoc.jazor.net/posts/key-management-best-practices/</guid>
      <description>本文介绍密钥管理的关键实践，包括密钥生成、轮换、存储和销毁的最佳方法。</description>
    </item>
    
    <item>
      <title>对称加密基础：原理与实践</title>
      <link>https://secdoc.jazor.net/posts/symmetric-encryption-basics/</link>
      <pubDate>Thu, 02 Apr 2026 00:00:00 +0800</pubDate>
      
      <guid>https://secdoc.jazor.net/posts/symmetric-encryption-basics/</guid>
      <description>本文介绍对称加密的基本原理、常见算法及其实际应用场景。</description>
    </item>
    
    <item>
      <title>非对称加密详解：公钥与私钥的关系</title>
      <link>https://secdoc.jazor.net/posts/asymmetric-encryption-explained/</link>
      <pubDate>Thu, 02 Apr 2026 00:00:00 +0800</pubDate>
      
      <guid>https://secdoc.jazor.net/posts/asymmetric-encryption-explained/</guid>
      <description>本文深入解析非对称加密的工作原理，以及公钥和私钥如何协同工作。</description>
    </item>
    
  </channel>
</rss>
