- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
或许你正在为SM2国密算法的紧急应用发愁——原理晦涩难懂,但项目进度不等人?
我们完全理解这种技术落地的迫切需求。以下是直击要害的操作指南(一些基础概念,已整理至文末附录了)。
具体代码详见我上传的网上同名资源。
接下来简要说明一下国密算法
国密算法SM2是国家商用密码算法体系的重要组成部分,该算法基于椭圆曲线密码学的数学特性,通过选取标准曲线参数并结合预设参数生成目标密文。
简而言之,SM2的技术实现原理是通过椭圆曲线方程中的点运算规则完成加密过程。
对于实际应用而言,使用者无需深入掌握其底层算法原理,重点在于正确应用标准接口实现加解密功能。
虽然参数和加密结果通常由数字构成,但当我们需要处理大数据或字符串时,实际采用的是大数运算机制——将数据视为一个个超大整数进行处理。
需要特别说明的是,即便在64位系统中,单次运算的数值上限仅为2^64-1,但这并不影响我们对超长数据的处理能力。大数运算库已完美解决了底层计算难题,开发者只需调用现成接口即可,完全不需要深究其数学原理。这种技术封装使得密码学应用开发变得更加高效便捷。
SM2国密算法主要业务流程
接下来说正题,SM2国密算法主要业务流程无非5个,1生成密钥、2加密、3解密、4签名、5验证。
1生成密钥
输入,无任何参数
输出,密钥(96字节)(私钥(32字节)、公钥(64字节))
2加密
输入,公钥(64字节)、输入数据(任意字节)、输入数据长度
输出,输出数据(任意字节,加密结果)、输出数据长度
3解密
输入,私钥(32字节)、输入数据(任意字节)、输入数据长度
输出,输出数据(任意字节,解密结果)、输出数据长度
4签名
输入,私钥(32字节)、用户ID数据(任意字节)、用户ID数据长度、输入数据(任意字节)、输入数据长度
输出,输出数据(64字节字节,签名数据)、输出数据长度
5验证
输入,公钥(64字节)、用户ID数据(任意字节)、用户ID数据长度、输入数据(任意字节)、输入数据长度、签名数据(64字节)
输出,是否验证通过
深入探讨该算法的技术细节
通过前文的介绍,您应已掌握SM2国密算法的基本使用方法。接下来我们将深入探讨该算法的技术细节。特别是生成密钥、加密与解密这三个业务流程的具体实现逻辑。
若您认为理解这些技术细节存在困难,也可暂时略过此部分内容,不影响算法的基本应用。
1生成密钥时:
私钥由随机数生成,公式一般为:私钥=随机数(1=随机数N-2+1),
公钥由私钥生成,公式为:私钥*基点G,
其中基点G,可以直接由大数算法库生成,不用深究细节。
2加密时:
输出数据=C1+C2+C3
C1数据=K*基点G(1=KN-1+1),K为随机数
C1大小=1字节(起始符0x04)+32字节(横坐标)+32字节(纵坐标)
C2数据=KeyDerivation(K*公钥)^消息=KeyDerivation(K*私钥*基点G)^消息=KeyDerivation(私钥*C1)^消息
C2大小=数据大小-C1大小-C3大小=数据大小-(1字节+32字节*2+32字节)
C3数据=SM3((K*公钥)横坐标+消息+(K*公钥)纵坐标)=SM3((K*私钥*基点G)横坐标+消息+(K*私钥*基点G)纵坐标)=SM3((私钥*C1)横坐标+消息+(私钥*C1)纵坐标)
C3大小=32字节(SM3输出数据大小为32字节)
3解密时:
输入数据=C1+C2+C3
C1数据=K*基点G
C1大小=1字节(起始符0x04)+32字节(横坐标)+32字节(纵坐标)
C2数据=KeyDerivation(K*公钥)^消息
=KeyDerivation(K*私钥*基点G)^消息
=KeyDerivation(私钥*C1)^消息
C2大小=数据大小-C1大小-C3大小=数据大小-(1字节+32字节*2+32字节)
C3数据=SM3((K*公钥)横坐标+消息+(K*公钥)纵坐标)
=SM3((K*私钥*基点G)横坐标+消息+(K*私钥*基点G)纵坐标)
=SM3((私钥*C1)横坐标+消息+(私钥*C1)纵坐标)
C3大小=32字节(SM3输出数据大小为32字节)
仔细看,解密中的输入数据即加密中的输出数据,C1、C2、C3一一对应,
C1对应K*基点G,直接拿来校验C2、C3,
校验C2时:私
您可能关注的文档
- 广西壮族自治区南宁市马山县2023-2024学年高一下学期生物期中考试模拟试卷.docx
- 广西壮族自治区南宁市马山县2023-2024学年高一下学期生物期中考试模拟试卷.pdf
- 山东省菏泽市单县2023-2024学年六年级下学期4月期中考试科学试题.docx
- 广西壮族自治区南宁市上林县2023-2024学年高一下学期期中考试生物试题.docx
- 2025i届高三英语二轮专题复习七选五公开课课件.pptx
- 2025年高三百日冲刺校长讲话——百日鏖战铸辉煌.docx
- 广东省云浮市罗定市2023-2024学年高一下学期期中考试生物试卷.pdf
- 2025届高三英语二轮复习阅读理解备考策略课件.pptx
- 广东省湛江市第二十一名校2023-2024学年高一下学期期中考试生物(选考)试卷.docx
- 2025届黑龙江省汤原高中高三考前热身英语试卷含解析.doc
- 2025届安徽省舒城一中高三一诊考试英语试卷含解析.doc
- 广东省湛江市第二十一名校2023-2024学年高一下学期期中考试生物(选考)试卷.pdf
- 广东省湛江市第二十一名校2023-2024学年高一下学期期中考试生物(学考)试卷.docx
- 江苏省南通市合作盟校2025届高三压轴卷语文试卷含解析.doc
- 【权威】2025年高考第三次模拟考试 数学(新高考八省专用01 )(全解全析).docx
- 山东省菏泽市成武县全县联考2023-2024学年六年级下学期4月期中科学试题.docx
- 广东省湛江市第二十一名校2023-2024学年高一下学期期中考试生物(学考)试卷.pdf
- 2025届陕西省度西安中学高三下学期联考数学试题含解析.doc
- 河南省驻马店市2025届高考语文押题试卷含解析.doc
- 广东省湛江市雷州市第二名校2023-2024学年高一下学期生物期中试卷.docx
最近下载
- 初中历史跨学科教学模式探索与实践教学研究课题报告.docx
- 2025国家安全知识竞赛题库附答案(1-200题).docx
- 2023年保安员笔试考前题库500题(含答案).pdf VIP
- 西安市中招管理系统官网登陆入口http://222.91.162.190:81.doc
- 安全资料—13本台帐.doc VIP
- EHS管理-手册_原创精品文档.pdf VIP
- 尊重知识产权高中政治统编版选择性必修2法律与生活.pptx VIP
- QC∕T 29082-2019 汽车传动轴总成技术条件及台架试验方法.pdf
- 碳中和技术概论PPT完整全套教学课件.pptx
- 幼儿园玩教具装备采购 投标方案(技术标).doc VIP
文档评论(0)