实现基于国密SM3的密钥派生(KDF)功能

本文介绍了密钥派生函数(KDF)的重要性和常见类型,如HKDF、PBKDF2、Bcrypt、Scrypt和Argon2。重点讲述了在商用密码体系中,SM3作为与SHA-256相当的安全散列函数,如何按照GB/T 32918.4-2016标准实现基于SM3的KDF,并提供了使用openssl的SM3杂凑算法代码示例。
摘要由CSDN通过智能技术生成

实现基于国密SM3的密钥派生(KDF)

前言

密钥派生函数(KDF):密钥派生函数是指从一个共享的秘密比特串中派生密钥数据,在密钥协商过程中,密钥派生函数作用在密钥交换所获取的共享的秘密比特串上,从中产生所需的会话密钥或进一步加密所需的密钥数据。
常见的密钥派生函数包括:

  • HKDF:是HMAC-based KDF的缩写,即基于HMAC的KDF。
  • PBKDF2:是一个简单的从密码派生密钥的KDF,它可以抵抗字典攻击和彩虹表攻击。
  • Bcrypt:是一个开始被淘汰的密码学KDF。它提供可配置的迭代次数,但使用恒定的内存,因此相对来说,比较容易被硬件加速密码破解器所破解,在抗GPU攻击和抗ASIC攻击上已经不再安全。
  • Scrypt:是一个强密码学KDF,它是一种内存密集型算法,目标是抵抗GPU攻击、ASIC攻击和FPGA攻击(高效密码破解硬件)。
  • Argon2也是一个强密码学KDF,抗GPU攻击、ASIC攻击和FPGA攻击,且效果比Scrypt更好。

SM3:SM3是中华人民共和国政府采用的一种密码散列函数标准,由国家密码管理局于2010年12月17日发布。相关标准为“GM/T 0004-2012 《SM3密码杂凑算法》”。
在商用密码体系中,SM3主要用于数字签名及验证、消息认证码生成及验证、随机数生成等,其算法公开。据国家密码管理局表示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值