首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏数安视界

    基于ECC-ECDH的密钥交换机制

    我的公众号:密码学人CipherHUB 本文描述一种客户端-服务器加密通信方案,核心流程结合临时ECDH密钥交换、HKDF密钥强化、AES-GCM数据加密三阶段技术栈。 密钥强化与加密 采用HKDF处理SharedSecret DerivedKey = HKDF(SharedSecret, Salt, AdditionalInfo) - 敏感数据(SecretPlain )使用AES-GCM加密 {Cipher, Tag} = AES-GCM-Encrypt(DerivedKey, SecretPlain) 优化点:HKDF消除原始ECDH输出中的椭圆曲线坐标数学特征 服务端利用持久私钥计算相同SharedSecret,经相同HKDF流程获得DerivedKey。 设计思想 现代密码学分层设计思想: 非对称层:ECDH提供密钥协商(临时密钥实现前向保密) 转换层:HKDF消解算法耦合,输出标准化密钥 对称层:AES-GCM实现高速保密通信undefined

    39421编辑于 2025-06-27
  • 来自专栏数安视界

    深入解析HPKE:从手动实现到标准库实践

    KDF(密钥派生函数) 采用HKDF将共享密钥扩展为三个核心参数:● key:对称加密密钥(如AES-GCM-256)● base_nonce:初始计数器● exporter_secret:扩展密钥通过 作为KEM算法# 使用HKDF_SHA512作为KDF算法# 使用AES256_GCM作为AEAD算法    alice_cipher_suite = CipherSuite.new(            kem_id = KEMId.DHKEM_P521_HKDF_SHA512 ,            kdf_id = KDFId.HKDF_SHA512 ,            aead_id =  分割线# Bob配置相同的CipherSuite    bob_cipher_suite = CipherSuite.new(            kem_id = KEMId.DHKEM_P521_HKDF_SHA512  ,            kdf_id = KDFId.HKDF_SHA512 ,            aead_id = AEADId.AES256_GCM ,)# Bob解析自己的私钥# 将Bob

    32821编辑于 2025-08-22
  • 来自专栏数安视界

    ChaCha20 vs AES:当加密算法遇上TLS1.3的安全铁拳

    default_backend from cryptography.hazmat.primitives import hashes from cryptography.hazmat.primitives.kdf.hkdf  import HKDF import os import timeit from typing import Tuple , Callable , Any , Optional def generate_random_data 从密码派生安全密钥     HKDF (HMAC-based Key Derivation Function) 是一种安全的密钥派生方法     它可以将弱密码(如用户输入的密码)转换为强密码学密钥         派生的安全密钥     """     # 如果没有提供盐值,生成随机盐值     if salt is None:         salt = os.urandom(16)     # 创建 HKDF 实例     # 算法:SHA-256,密钥长度,盐值,上下文信息,后端     hkdf = HKDF(             algorithm = hashes.SHA256() ,            

    1.4K22编辑于 2025-06-08
  • 深度:OoderAgent P2P广域网通讯设计---软硬一体化UDP穿透与认证体系:从运营商级身份到端到端安全

    }}七、密钥管理与握手协议7.1 三层密钥派生ooderAgent 0.7.0采用分层密钥派生体系,确保前向安全:// 密钥派生层次// Master Key (HSM保护)// └── HKDF ("LTS") ──► LTSK (90天)// └── HKDF("STS") + ECDH ──► STSK (1小时/会话)public class KeyDerivation { * * 从Master Key派生LTSK */ public byte[] deriveLTSK(byte[] masterKey, String wid) { HKDF hkdf = HKDF.fromHmacSha256(); return hkdf.extract(masterKey, ("ooderAgent-LTS-" + wid).getBytes 派生 HKDF hkdf = HKDF.fromHmacSha256(); return hkdf.extract(ltsk, concat(sharedSecret, peerWid.getBytes

    22610编辑于 2026-02-11
  • 来自专栏小草学习屋

    HTTP 安全通信保障:TLS、身份验证、授权

    TLS 1.3 使用的是 HKDF(HMAC KDF)[RFC5869],即基于 HMAC 的 KDF 算法。它的原理是先提取再拓展。 HKDF 的两个步骤分别为 HKDF-Extract 和 Derive-Secret。 HKDF-Extract 的 计算方法如下图: HKDF-Extract(salt, IKM) -> PRK PRK = HMAC-Hash(salt, IKM) salt 为可选参数,使用盐可以提高 HKDF 算法的强度。 第一步, PSK 作为输入密钥, 和长度为0的盐通过 HKDF-Extract 生成 Early Secret。

    1.7K10编辑于 2023-11-22
  • 来自专栏数安视界

    本地文件加密能力实现:基于现代密码学的安全实践

    基于口令的密钥保护 用户口令不直接用于加密,而是通过HKDF派生专用保护密钥: 设计优势: ● 口令与加密密钥隔离,降低口令泄露风险 ● HKDF提供密钥拉伸,抵御暴力破解攻击 ● 固定盐值确保密钥派生的一致性 相比RSA更短的密钥长度 ○ 更高的计算效率 对称加密算法 ● 算法: AES-256-GCM 认证加密模式,同时保障机密性和完整性 ○ 硬件加速支持,性能优异 ○ NIST认证标准 密钥派生函数 ● HKDF

    28720编辑于 2025-10-09
  • 来自专栏全栈程序员必看

    yii2的加密解密那些事儿

    encryptByPassword encryptByKey decryptByPassword decryptByKey hkdf pbkdf2 hashData validateData generateRandomKey hkdf 使用标准的 HKDF 算法从给定的输入键中导出一个键。在PHP7+使用的是hash_hkdf方法,小于PHP7使用hash_hmac方法。 : encryptByKey()、decryptByKey()、 encryptByPassword() 和 decryptByPassword(); 使用标准算法的密钥推导: pbkdf2() 和 hkdf

    1.2K20编辑于 2022-07-21
  • 来自专栏数安视界

    ChaCha20-Poly1305 算法介绍

    default_backendfrom cryptography.hazmat.primitives import hashesfrom cryptography.hazmat.primitives.kdf.hkdf salt: Optional[ bytes ] = None , key_length: int = 32) -> bytes: """ 使用 HKDF 从密码派生安全密钥 HKDF (HMAC-based Key Derivation Function) 是一种安全的密钥派生方法 它可以将弱密码(如用户输入的密码)转换为强密码学密钥 派生的安全密钥 """ # 如果没有提供盐值,生成随机盐值 if salt is None: salt = os.urandom(16) # 创建 HKDF 实例 # 算法:SHA-256,密钥长度,盐值,上下文信息,后端 hkdf = HKDF( algorithm = hashes.SHA256() ,

    1.6K22编辑于 2025-06-02
  • 来自专栏张绍文的专栏

    基于 TLS 1.3的微信安全通信协议 mmtls 介绍(下)

    TLS1.3 使用的 HKDF 做密钥扩展,mmtls 也是选用的 HKDF 做密钥扩展。 两个函数分别是: HKDF-Extract( salt, initial-keying-material ) 该函数的作用是对 initial-keying-material 进行处理,保证它的熵均匀分别 HKDF-Expand( pseudorandom key, info, out_key_length ) 参数 pseudorandom key 是已经足够伪随机的密钥扩展材料,HKDF-Extract mmtls 最终使用的密钥是有 HKDF-Expand 扩展出来的。mmtls 把 info 参数分为:length,label,handshake_hash。 四、小结 mmtls 是参考 TLS1.3 草案标准设计与实现的,使用 ECDH 来做密钥协商,ECDSA 进行签名验证,AES-GCM 作为对称加密算法来对业务数据包进行认证加密,使用 HKDF 进行密钥扩展

    10K10发布于 2017-07-21
  • 来自专栏硬核项目经理的专栏

    PHP的Hash信息摘要扩展框架

    /create-phar.php', 'secret'), PHP_EOL; // 05d1f8eb7683e190340c04fc43eba9db hkdf 与 pbkdf2 的 HASH 算法 接下来介绍的这两种算法又是特殊的两种 // hkdf pbkdf2 算法 // 算法 明文密码(原始二进制) 输出长度 应用程序/特定于上下文的信息字符串 salt值 $hkdf1 = hash_hkdf('sha256', '123456', 32, 'aes-256-encryption', random_bytes(2)); $hkdf2 = hash_hkdf('sha256 ', '123456', 32, 'sha-256-authentication', random_bytes(2)); var_dump($hkdf1); var_dump($hkdf2); // string sha256", '123456', random_bytes(2), 1000, 20), PHP_EOL; // e27156f9a6e2c55f3b72 hmac 只需要一个密钥就可以了,hash_hkdf

    1.2K30发布于 2020-11-02
  • 来自专栏有价值炮灰

    深入浅出 SSL/TLS 协议

    = HKDF-Expand-Label(key: early_secret, label: "derived", ctx: empty_hash, len: 48) handshake_secret = HKDF-Extract(salt: derived_secret, key: shared_secret) client_secret = HKDF-Expand-Label(key: handshake_secret , label: "key", ctx: "", len: 32) server_handshake_key = HKDF-Expand-Label(key: server_secret, label: : "", len: 12) server_handshake_iv = HKDF-Expand-Label(key: server_secret, label: "iv", ctx: "", len: = HKDF-Expand-Label(key: client_secret, label: "key", ctx: "", len: 32) server_application_key = HKDF-Expand-Label

    2.7K20编辑于 2023-02-12
  • 来自专栏大大刺猬

    [翻译] MySQL 5.7.40 更新日志

    这些函数支持HKDF (OpenSSL 1.1.0), 可以指定盐(可选)和特殊的上下文在密钥中; 也支持PBKDF2 (OpenSSL 1.0.2), 可以指定盐(可选)和生成密钥的次数.不太好理解 ,看个例子吧:HKDFSELECT AES_ENCRYPT('mytext','mykeystring', '', 'hkdf', 'salt', 'info');PBKDF2SELECT AES_ENCRYPT

    1.6K30编辑于 2022-11-08
  • 来自专栏碲矿

    微信协议-1

    和原版 TLS1.3 比,它保留了: 0-RTT 握手(提高短连接速度) AEAD 加密算法(认证 + 加密二合一) ECDH 密钥协商 + ECDSA 签名验证 HKDF 密钥扩展 + SHA256 精简密钥协商路径: 剪掉 TLS1.3 中三次 Extract + 四次 Expand 的 复杂工序,微信自研一套高效 HKDF 派生逻辑,性能提升显著。

    73110编辑于 2025-05-17
  • 来自专栏公众号:懒时小窝

    HTTP - TLS1.3 初次解读

    HKDF包括 extract_then_expand 的两阶段过程,extract过程增加密钥材料的随机性能,expand则是加固密钥材料的安全性,注意PRF投入使用中实际只是实现了HKDF的expand 部分,所以不算是完整的HKDF算法。 最后可以看一份wiki上使用Python实现的HKDF代码案例:#! NewSessionTicket 使用 server_application_traffic_secret 加密,通过 resumption_key 和 HKDF 算法计算出PSK的公式如下: HKDF-Expand-Label 具体可以看 RFC 5869:基于 HMAC 的提取和扩展密钥派生函数 (HKDF) (rfc-editor.org)HKDF-Extract(salt, IKM) -> PRKHKDF-Expand(

    5.2K11编辑于 2022-09-26
  • 来自专栏设计模式

    Android官方推荐的安全组件:使用Jetpack Security为数据加密

    ), fileToWrite), context, masterKeyAlias, EncryptedFile.FileEncryptionScheme.AES256_GCM_HKDF (), fileToRead), context, masterKeyAlias, EncryptedFile.FileEncryptionScheme.AES256_GCM_HKDF

    1.7K30发布于 2020-12-16
  • 来自专栏数安视界

    【密码学人CipherHUB】门户网站正式上线

    除基础的 HTTPS 之外,CipherHUB 在应用层实现了完整的信道加密机制: ● 使用 ECC-SECD-521R进行密钥协商 ● 通过 ECDH + HKDF-SHA512派生会话密钥 ● 业务数据使用

    20721编辑于 2025-09-17
  • 来自专栏密码学和区块链

    斯坦福大学密码学-零碎 08

    image.png HKDF。 密钥的提取和扩展都用HMAC。 image.png 基于密码的KDF。 如何从密码中提取密钥?密码通常具有很少的熵,约为20位左右的熵。不能直接用HKDF

    1.5K20发布于 2020-11-05
  • 来自专栏程序员成长指北

    chrome 开发者工具的 11 个骚技巧

    [i3hkdf8qht.gif] 7.你是不是打断点时还要去改代码? [v69dpoidwm.gif] 8.看 dom 层级的最直观的方式?

    49220发布于 2020-05-05
  • 来自专栏锤子代码

    JDK 24发布!甚至有点期待JDK 25了

    优化并发数据共享 499: 结构化并发(第四次预览版) 通过 StructuredTaskScope 简化多线程任务管理 API 变更与新增 478: 密钥派生函数 API(预览版) 提供标准化的密钥派生函数(如 HKDF

    92410编辑于 2025-03-21
  • 企微ipad协议:消息上行通道的加密流实现企微ipad协议:消息上行通道的加密流实现

    一、握手摘要ClientHello:随机32B+曲线25519公钥ServerHello:返回服务器公钥+盐值16B双方计算共享密钥shared,经HKDF-SHA256抽出三把钥匙:up_key:客户端上行加密

    20710编辑于 2025-11-08
领券