国密算法简介

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

版本人员时间升级内容

❝课程目的

◦了解国密算法的算法原理

◦了解SM2、SM3、SM4的算法原理◦了解国密卡片相关API

❝目标人员

◦移动金融初级开发人员

❝前置课程

◦RSA密钥体系

◦DES密钥体系

❝基本知识

❝对称加密算法SM2❝非对称加密算法SM4❝摘要算法SM3

定义

国密即国家密码局认定的国产密码算法,即商用密码,主要完成加密、解密、签名、验签、摘要等操作。

常用国密算法

种类算法类型密钥长度输入数据要求输出数据特征

SM2非对称加密算法公钥64字节,

私钥32字节。长度小于(2^32-1)

*32=137,438,953,440字

节(大约1374亿多)。

输出长度是明文长度

+96,有随机数参数,

每次密文不同。

SM3摘要算法--无要求。固定长度,32字节。SM4对称加密算法16字节分组长度16字节,需要填

充到16字节整数倍。有CBC

和ECB两种模式,CBC需要

设定初始值。

长度为16字节整数倍。国密算法还有SM1、SM7、SSF33、祖冲之密码对称加密算法,SM9非对称加密算法。

国密算法与其他算法比较

非对称加密算法SM2与RSA比较

国密算法与其他算法比较

SM2与RSA算法的一些统计数据

RSA密钥强度(长度)SM2密钥强度(长度)破解时间(年)521比特106比特104(已破解)768比特132比特108(已破解)1024比特160比特1011

2048比特210比特1020

国密算法与其他算法比较

SM2与RSA算法的一些统计数据

算法签名速度验签速度1024RSA2792次/秒51224次/秒2048RSA455次/秒15122次/秒256SM24095次/秒871次/秒

国密算法与其他算法比较SM4与DES较

从算法上看,国产SM4算法在计算过程中增加非线性变换,理论上能大大提高其算法的安全性,并且由专业机构进行了密码分析,民间也对21轮SM4进行了差分密码分析,结论均为安全性较高。

国密卡实现API类层次图

class ng.Object

◦class com.guomi.GMCipher

◦class com.guomi.GMKeyBuilder

◦class com.guomi.GMKeyPair

◦class com.guomi.GMMessageDigest ◦class com.guomi.GMSignature

◦class com.guomi.GMCipherExtend

◦class com.guomi.GMSM2KeyExchange

国密卡实现的API接口

interface javacard.security.Key

◦interface javacard.security.SecretKey

interface com.guomi.SM1Key

interface com.guomi.SM4Key

interface com.guomi.SM7Key

interface com.guomi.SSF33Key

◦interface javacard.security.PrivateKey interface com.guomi.SM2PrivateKey ◦interface javacard.security.PublicKey

interface com.guomi.SM2PublicKey

国密卡实现的API接口

interface com.unionpay.guomi.SM2Key ◦interface com.guomi.SM2PrivateKey

◦interface com.guomi.SM2PublicKey

目录

❝算法原理❝加密

❝解密

❝签名

❝验签

算法原理

❝国密SM2规定椭圆曲线参数(固定值,256比特)

◦p :FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFF

◦a:FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFC

◦b:28E9FA9E9D9F5E344D5A9E4BCF6509A7F39789F515AB8F92DDBCBD414D940E93◦n:FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF7203DF6B21C6052B53BBF40939D54123

◦gx:32C4AE2C1F1981195F9904466A39C9948FE30BBFF2660BE1715A4589334C74C7◦gy:BC3736A2F4F6779C59BDCEE36B692153D0A9877CC62A474002DF32E52139F0A0

❝各个参数意义如下

椭圆曲线方程:y2=x3+ax+b,把它定义在Fp上, 要求a,b满足:4a3+27b2≠0(mod p)

那么,p 、a 、b 用来确定一条椭圆曲线(确切来说应该是有限域Fp),G(gx,gy)为基点,n为点G 的阶,另外,还有一个非必要参数h,是椭圆曲线上所有点的个数m与n相除的整数部分;

加密

SM2公私玥结构

◦SM2公私玥关系P=d*G 或者(x ,y )=d*(gx ,gy ),即公钥P 是基点G 的d 倍点。

其中,P 为公钥,坐标表示为(x,y),d 为私钥,G 为基点,坐标(gx ,gy ),‘*’为离散椭圆曲线坐标系中的乘法运算。

长度

举例SM2公钥64字节,包括x 分量和y 分量

6C7D9D212ED9A5B43659402F07696F7026AE2ADB874D9BDC2D4

DC47D883B6AEE8FC2FA7668EFD664E0876B21B1C6202551978331C59259489E5B13F941E1EA95SM2私钥32字节38DAF6D271322AF0AFEE399DEEF28D18B51CD8388BF78F4E78B943E7436181A4

相关文档
最新文档