SM9学习笔记与图解——第1章 整体结构

本文介绍了SM9密码算法的整体架构,包括接口层、SM9功能层和底层模块。详细阐述了主密钥生成、用户公私钥生成的过程,并解释了各部分的主要功能及其在不同场景下的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 整体架构

整体架构分三层(如图1):

接口层:提供对外接口以完成SM9功能。主要分为:

系统接口:主要完成KGC参与的工作。

功能接口:主要完成KGC不参与的工作。

SM9功能层:提供SM9的功能模块。主要分成:

主密钥生成:KGC公私钥的生成。

用户密钥生成:生成用户私钥,用户公钥任意设定。

加密和解密。

签名和验签。

密钥协商。

底层模块:为完成SM9功能所需的各种模块。

核心模块:大整数运算、椭圆曲线运算和配对运算是其中最重要也是最核心的模块,将是本次开发的难点和重点。特别是配对模块,是SM9的特色。

密钥导出函数KDFH1H2SM3为密码辅助函数。

随机数生成器PRN

1 整体架构

A.1. 系统基本功能

A.1.1 主密钥生成

主密钥生成

数字签名

密钥交换

加解密/封装

主私钥

s∈[1, N−1]

s∈[1, N−1]

s∈[1, N−1]

主私钥长

L

L

L

主公钥

Ppub=[s]P2G2

Ppub=[s]P1G1

Ppub=[s]P1G1

主公钥长

4LE(Fq2)点)

2LE(Fq)点)

2LE(Fq)点)

私钥生成函数识别符

hid,一个字节

hid,一个字节

hid,一个字节

调用库

EC- E(Fq2)

EC- E(Fq)

EC- E(Fq)

A.1.2 用户公私钥生成

用户公私钥生成

数字签名

密钥交换

加解密/封装

主私钥

s∈[1, N−1]

s∈[1, N−1]

s∈[1, N−1]

主私钥长

L

L

L

用户公钥

用户标识IDA

用户标识IDA

用户标识IDA

用户公钥长

任意长度

任意长度

任意长度

用户私钥

dA∈G1

t1=H1(IDA||hid, N)+s mod N,

t2=s×t1-1 mod N

dA=[t2]P1

dA∈G2

t1=H1(IDA||hid, N)+s mod N,

t2=s×t1-1 mod N

dA=[t2]P2

dA∈G2

t1=H1(IDA||hid, N)+s mod N,

t2=s×t1-1 mod N

dA=[t2]P2

用户私钥长

2LE(Fq)点)

4LE(Fq2)点)

4LE(Fq2)点)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值