SM3 Cryptographic Hash Algorithm.pdf
SM3密码杂凑算法是一种商用密码杂凑算法,主要应用于数字签名和验证、消息认证码的生成和验证,以及在商业密码应用中生成随机数,能够满足多种密码应用的安全需求。本文档详细规定了SM3密码杂凑算法的计算过程,并提供了算法的应用实例。此外,该文档也可以作为安全产品制造商的标准参考,以提升安全产品的信誉度和互操作性。 1. 应用范围 文档指定了SM3密码杂凑算法,包括计算过程的详细信息,并且给出了算法计算的实例。该算法适用于数字签名和验证、消息认证码的生成和验证,以及在商业密码应用中生成随机数。文档还提到了,该算法能够满足多种密码应用的安全需求。 2. 术语和定义 - 二进制序列:由0和1组成的序列。 - 字节序(Big-endian):描述了字节序列在计算机内存中的存储顺序,即最显著的字节存储在最低的存储地址,而最不显著的字节存储在最高的地址。 - 消息:任意有限长度的位字符串。在本文档中,消息被用作杂凑算法的输入数据。 - 杂凑值:杂凑函数返回的输出。本文档中杂凑值的长度为256位。 - 字(Word):长度为32位的位字符串。 3. 符号 文档中用到以下符号: - 32位寄存器或值的串联。 - 第i个消息块。 - 压缩函数。 - 随j变化的布尔函数。 - 随j变化的另一个布尔函数。 - 初始化压缩函数寄存器时使用的初始值。 - 压缩函数中涉及的置换。 - 消息函数中涉及的置换。 - 随j变化的常数。 4. 算法描述 4.1 概览 提供了SM3算法的总体架构和计算流程。 4.2 填充(Padding) 介绍了对原始消息进行填充的规则和步骤,确保消息长度满足算法的要求。 4.3 迭代压缩 SM3算法的核心是迭代压缩过程,包括以下子步骤: 4.3.1 迭代程序(Iteration Procedure) 详细描述了迭代的每一步,包括如何处理消息块以及每一步中使用的操作。 4.3.2 消息扩展(Message Expansion) 解释了消息扩展的规则,即如何将消息块转换为固定长度的输出。 4.3.3 压缩函数(Compression Function) 详细说明了压缩函数的工作原理,包括在迭代过程中如何应用它。 4.4 杂凑值(Hash Value) 定义了算法最终产生的杂凑值长度为256位。 附录A(参考) 提供了两个SM3算法计算的例子,帮助理解算法的应用和计算过程。 5. 安全性和适用性 SM3算法不仅适用于数字签名和验证等常见密码应用,而且在商业密码应用中,如消息认证码和随机数生成等,也被认为是安全可靠的。它在多个密码应用中满足安全需求,并且由于其标准化,有助于提升安全产品的信誉度和互操作性,为安全产品的制造商提供了可信赖的参考。 SM3算法是一种中国自主研发的密码杂凑算法,作为国家商用密码标准算法之一,SM3算法的应用和推广有助于提升国内安全产品的研发水平,促进国内信息安全技术的发展。同时,作为国际上商用密码应用的一个参考,SM3算法也提供了中文和英文的文档,方便不同语言用户的学习和参考。
- 粉丝: 18
- 资源: 62
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Kotlin语言的Android开发工具类集合源码
- 零延迟 DirectX 11 扩展实用程序.zip
- 基于Java的语音识别系统设计源码
- 基于Java和HTML的yang_home766个人主页设计源码
- 基于Java与前端技术的全国实时疫情信息网站设计源码
- 基于鸿蒙系统的HarmonyHttpClient设计源码,纯Java实现类似OkHttp的HttpNet框架与优雅的Retrofit注解解析
- 基于HTML和JavaScript的廖振宇图书馆前端设计源码
- 基于Java的Android开发工具集合源码
- 通过 DirectX 12 Hook (kiero) 实现通用 ImGui.zip
- 基于Java开发的YY网盘个人网盘设计源码