Diffie-Hellman 密钥交换原理与实践

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 --------> 3....

April 13, 2026 · 3 min · 黑豆子

Ed25519 密钥算法详解

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....

April 12, 2026 · 3 min · 黑豆子

OpenSSL rand 命令详解:随机数生成

随机数是密码学的基石。密钥、IV、盐值、Session ID 等都需要高质量的随机数。OpenSSL 的 rand 命令是生成密码学安全随机数的实用工具。 基本语法 1 openssl rand [选项] 字节数 常用选项: -hex:输出十六进制格式 -base64:输出 Base64 编码格式 -out <文件>:输出到文件 常用示例 生成十六进制随机数 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....

April 8, 2026 · 3 min · 黑豆子

OpenSSL enc 文件加密实战

使用 OpenSSL enc 命令进行文件对称加密,包括密码加密、密钥文件加密、Base64 编码等实战场景。

April 7, 2026 · 2 min · 黑豆子

SHA-256 哈希算法原理

深入解析 SHA-256 哈希算法的工作原理,包括消息填充、分块处理、压缩函数等核心步骤,理解其安全性的数学基础。

April 3, 2026 · 3 min · 黑豆子

哈希函数与数字签名:数据完整性保障

本文介绍哈希函数的特性、常用算法,以及数字签名如何保障数据完整性和 authenticity。

April 2, 2026 · 2 min · 黑豆子

密钥管理最佳实践:密钥生命周期与安全存储

本文介绍密钥管理的关键实践,包括密钥生成、轮换、存储和销毁的最佳方法。

April 2, 2026 · 3 min · 黑豆子

对称加密基础:原理与实践

本文介绍对称加密的基本原理、常见算法及其实际应用场景。

April 2, 2026 · 1 min · 黑豆子

非对称加密详解:公钥与私钥的关系

本文深入解析非对称加密的工作原理,以及公钥和私钥如何协同工作。

April 2, 2026 · 1 min · 黑豆子