0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

SM3密码算法的算法逻辑及要点

冬至子 来源:商用密码 作者:莫道 2023-05-22 14:49 次阅读

一、

SM3是一种哈希算法,主要用于计算消息摘要,其算法逻辑和要点如下:

1.数据填充:SM3算法要求将输入数据填充为512比特的整数倍。填充方法是在数据末尾添加一个1和一些0,使得填充后的长度为512比特的整数倍。

2.分组处理:将填充后的数据分成512比特的分组,并进行逐个处理。

3.初始值设定:SM3算法对于每个分组都有一个初始值。对于第一个分组,初始值由固定的常量决定,对于后续分组,初始值由前一个分组的结果决定。
4.消息扩展:SM3算法采用了一种称为Wt的消息扩展函数。该函数可以将每个512比特分组扩展为数个512比特的分组,并通过一些位运算将分组进行混淆。
5.压缩函数:SM3算法采用了一种称为CF函数的压缩函数。该函数将每个512比特分组压缩为一个512比特的分组,并使用一些非线性的操作对分组进行加密。
6.循环处理:SM3算法对于每个512比特分组都会进行循环处理。循环处理包括消息扩展、压缩函数和结果更新等步骤。
7.结果输出:SM3算法最终输出256比特的哈希值。

当SM3算法处理一段输入消息时,它首先会对消息进行填充以满足512比特的分组长度要求。填充方法是将一个1和若干个0添加到消息末尾,使得消息的长度对512取模的余数为448。然后,在填充后的消息末尾添加一个64比特的数,表示消息的原始长度。这样,填充后的消息长度就成为了512比特的整数倍。

接下来,SM3算法将填充后的消息分成多个512比特的分组,并对每个分组进行处理。对于第一个分组,SM3算法会使用一个固定的初始值;对于后续分组,SM3算法会使用前一个分组的结果作为初始值。然后,SM3算法会采用一系列的置换和非线性变换,将每个分组进行加密,产生一个256比特的哈希值。

在加密过程中,SM3算法采用了一种称为Wt的消息扩展函数。该函数可以将每个512比特分组扩展为数个512比特的分组,并通过一些位运算将分组进行混淆。然后,SM3算法使用一个称为CF函数的压缩函数,将数个512比特的分组压缩为一个512比特的分组,并使用一些非线性的操作对分组进行加密。

SM3算法的输出结果是一个256比特的哈希值,具有高强度的防碰撞能力和安全性。它的设计紧凑、实现简单、适用于多种应用场景,已被广泛应用于数字签名、消息认证码、数据完整性校验、证书管理等领域。SM3算法也是国际上公认的安全性较高的哈希算法之一,受到了广泛的关注和研究。

二、

SM3算法主要采用以下四种操作:

1.位运算操作:包括按位异或(XOR)、按位与(AND)、按位或(OR)等,用于对输入进行混淆和扰动。

2.非线性变换操作:包括置换、置换选择、非线性函数、循环移位等,用于增加加密的难度和复杂性。

3.线性变换操作:包括置换、置换选择等,用于增强加密的强度和扩散性。

4.哈希函数操作:包括取模、加法、异或等,用于生成输出哈希值。

SM3算法在设计过程中采用了多重轮迭代结构,每轮包含相同的基本操作,但参数不同,以达到更好的加密效果。具体来说,SM3算法由三个部分组成:数据预处理部分、压缩函数部分和输出部分。

数据预处理部分包括填充、扩展、初始化等操作,将输入消息转化为可加密的形式,并生成初始值。压缩函数部分是SM3算法的核心,主要由多重轮迭代结构组成,每轮包含置换、置换选择、非线性函数、线性函数、循环移位等操作,将512比特的分组加密为256比特的哈希值。输出部分包括对哈希值的处理和返回,生成最终的256比特哈希值。

SM3算法具有高度的安全性和防碰撞能力,在数字签名、消息认证码、数据完整性校验、证书管理等领域得到了广泛应用。同时,SM3算法的设计紧凑、实现简单,适用于多种应用场景,已被ISO/IEC和GB/T等国际和国内标准采纳。

三、

SM3算法具有以下特点:

1.安全性高:SM3算法的密钥长度和哈希值长度均为256比特,具有高度的安全性和防碰撞能力,能够有效地保护数据的机密性和完整性。

2.速度快:SM3算法的实现简单、紧凑,具有高效的计算能力和快速的加密速度,适用于各种场景下的数据加密和安全保护。

3.公开透明:SM3算法是中国国家密码管理局发布的标准算法,经过了公开透明的审查和测试,具有公正性和可信度。

4.兼容性好:SM3算法支持多种编程语言和硬件平台,可以与各种操作系统和应用程序进行集成和兼容,便于开发和使用。

5.可扩展性强:SM3算法可以通过增加轮数、调整参数等方式进行扩展和改进,以适应不同的安全需求和应用场景。

总之,SM3算法是一种高效、安全、公开、兼容、可扩展的密码算法,广泛应用于数字签名、消息认证码、数据完整性校验、证书管理等领域,为保护数据的安全和隐私做出了重要贡献。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • XOR
    XOR
    +关注

    关注

    0

    文章

    12

    浏览量

    161693
  • SM3算法
    +关注

    关注

    0

    文章

    4

    浏览量

    3133
收藏 人收藏

    评论

    相关推荐

    支持国密算法的加密芯片

    ,可设置成多重复合设备,最大限度地满足用户的设计需求。2 算法全面:集成多种通信接口和多种信息安全算法SM1、SM2、SM3
    发表于 04-27 17:17

    分享交通部二维码验签模块,高速PKI卡资料,国密SM2签名验证 RSA2048算法 国密SM1算法 SM2算法 SM4算法 SM7算法

    `采用32位CPU内核芯片支持国际算法DES,AES,SHA,RSA1024/2048等主流算法支持国密算法SM1,SM2,
    发表于 07-20 17:03

    RJMU401国密算法应用流程

    一、国密芯片RJMU401数据加密传输、身份认证及数据完整性保证1、 传输信道中的数据都采用SM4分组加密算法,保证数据传输时数据的机密性;2、 使用散列算法SM3保证数据的完整性,以
    发表于 01-02 14:55

    密码标准有哪些

    众所周知,为了保障商用密码的安全性,国家商用密码管理办公室制定了一系列密码标准,包括SM1(SCB2)、SM2、
    发表于 07-22 08:37

    国密算法的应用场景 精选资料分享

    国家密码管理局推出的SM系列密码算法是为了从根本上摆脱我国对国外密码技术的依赖,实现从密码
    发表于 07-23 08:57

    密码学系列 - 国密算法 精选资料分享

    国密即国家密码局认定的国产密码算法。主要有SM1,SM2,SM3
    发表于 07-23 07:07

    加密芯片的接口进行调用

    众所周知,为了保障商用密码的安全性,国家商用密码管理办公室制定了一系列密码标准,包括SM1(SCB2)、SM2、
    发表于 07-26 08:18

    基于FPGA的SM3算法优化设计与实现

    基于FPGA的SM3算法优化设计与实现的论文
    发表于 10-29 17:16 4次下载

    FPGA芯片EP2S90F1508C3实现SM3算法的硬件实现策略

    的整体结构可分为库函数模块和主程序模块两大模块[1,5]。在SM3算法库函数模块中定义了6个左循环移位函数ROL7、ROL9、ROL12、ROL15、ROL19、ROLk和4个函数FF、GG、P0、P1,均用组合逻辑资源实现,常
    发表于 11-24 15:33 2474次阅读
    FPGA芯片EP2S90F1508C3实现<b class='flag-5'>SM3</b><b class='flag-5'>算法</b>的硬件实现策略

    SM3算法为例,构建一个软硬协作算法加速器:设计面向SM3优化的运算结构

    本文是本系列第五篇,本文书接上文,来讨论如何具体地针对 SM3 算法的特点,优化计算架构,如通过 CSA 加法器来优化加法关键路径等方法...
    发表于 02-07 11:40 0次下载
    以<b class='flag-5'>SM3</b><b class='flag-5'>算法</b>为例,构建一个软硬协作<b class='flag-5'>算法</b>加速器:设计面向<b class='flag-5'>SM3</b>优化的运算结构

    SM3算法为例,构建一个软硬协作算法加速器:SM3 开源硬件实现篇

    本文是本系列第三篇,我们将通过分析一个 SM3 的开源硬件实现,来进一步了解算法的实现流程和硬件实现思路首发知乎作者:李凡
    发表于 02-07 11:40 0次下载
    以<b class='flag-5'>SM3</b><b class='flag-5'>算法</b>为例,构建一个软硬协作<b class='flag-5'>算法</b>加速器:<b class='flag-5'>SM3</b> 开源硬件实现篇

    SM3算法为例,构建一个软硬协作算法加速器:SM3 软件实现篇

    本文是本系列第二篇,我们将通过分析一个 SM3 的开源软件实现,来进一步了解算法的实现流程和软件实现思路首发知乎:[链接]
    发表于 02-07 11:43 2次下载
    以<b class='flag-5'>SM3</b><b class='flag-5'>算法</b>为例,构建一个软硬协作<b class='flag-5'>算法</b>加速器:<b class='flag-5'>SM3</b> 软件实现篇

    SM3算法为例,构建一个软硬协作算法加速器:算法

    本文是本系列第一篇,笔者最近在研究基于FPGA的算法加速,本系列将以 PPT 结合文字的方式,以实现相对简单的 SM3 杂凑算法为例,介绍一...
    发表于 02-07 11:43 1次下载
    以<b class='flag-5'>SM3</b><b class='flag-5'>算法</b>为例,构建一个软硬协作<b class='flag-5'>算法</b>加速器:<b class='flag-5'>算法</b>篇

    国密算法成员介绍

    极海APM32F407系列MCU,结合当前环境要求,设计出了支持国密算法SM2,SM3,SM4)的IP, 符合国家密码管理局认定和公布的
    的头像 发表于 03-25 11:25 2207次阅读

    嵌入式的国家商用密码SM算法

    数据加密和解密涉及的算法大致可分为以下三大类:单向散列算法(杂凑算法),对称加密算法,公开密钥加密算法(非对称加密
    的头像 发表于 01-20 11:26 2007次阅读
    嵌入式的国家商用<b class='flag-5'>密码</b><b class='flag-5'>SM</b><b class='flag-5'>算法</b>