From 8eb5645ee05f6d5ca581385c9854fe6725048968 Mon Sep 17 00:00:00 2001 From: Zhi Guan Date: Fri, 6 May 2016 14:14:37 +0200 Subject: [PATCH] =?UTF-8?q?Updated=20SM3=E5=AF=86=E7=A0=81=E6=9D=82?= =?UTF-8?q?=E5=87=91=E7=AE=97=E6=B3=95=20(markdown)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SM3密码杂凑算法.md | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/SM3密码杂凑算法.md b/SM3密码杂凑算法.md index 62fcfd0..1cd6e01 100644 --- a/SM3密码杂凑算法.md +++ b/SM3密码杂凑算法.md @@ -1,14 +1,22 @@ SM3是国密密码杂凑算法标准,由国家密码管理局于2010年12月公布。SM3的输出杂凑值长度为256比特(32字节),与国际标准SHA-256等长。SM3设计安全性为128比特,安全性与256比特椭圆曲线/SM2、SM4/SMS4、AES-128等同。 -可以通过GmSSL命令行工具计算SM3杂凑值,下面的例子验证了SM3标准文本中给出的两个测试用例: +可以通过GmSSL命令行工具计算SM3杂凑值和HMAC消息认证码。 + +下面的例子验证了SM3标准文本中给出的两个测试用例: ``` $ echo -n abc | gmssl dgst -sm3 (stdin)= 66c7f0f462eeedd9d1f2d46bdc10e4e24167c4875cf2f7a2297da02b8f4ba8e0 -$ echo -n abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd | gmssl dgst -sm3 +$ echo -n abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd | \ + gmssl dgst -sm3 (stdin)= debe9ff92275b8a138604889c18e5a4d6fdb70e5387e5765293dcba39c0c5732 ``` +计算HMAC-SM3: +``` +$ echo -n abc | gmssl dgst -sm3 -hmac Passw0rd +(stdin)= db1ab0dda0aafbdcd53cbda95b7ecdee4a50586f92696616ab052aceea106212 +``` + GmSSL提供了`EVP_sm3()` EVP_MD对象,应用程序可以通过标准的EVP API计算SM3杂凑值,具体接口调用方式可参考`man EVP_DigestInit`。 -