1 .总体结构总体结构分为三层(图1 ) :
l接口层:提供实现SM9功能的对外接口。 主要要点如下。
n系统接口:主要完成国安参与的工作。
n功能接口:主要完成国安不参与的工作。
l SM9功能层:提供SM9的功能模块。 关键点:
n主密钥的生成: KGC公钥的生成。
n生成用户密钥:生成用户的私钥,任意设定用户的公钥。
n加密和解密。
n签名和检查签名。
n密钥协商。
l基本模块:完成SM9功能所需的各种模块。
n核心模块:大整数运算、椭圆曲线运算和配对运算是其中最重要、最核心的模块,是本次开发的难点和重点。 特别是配对模块是SM9的特色。
n密钥导出函数KDF、H1、H2和SM3是加密辅助函数。
n随机数发生器PRN。
图1整体体系结构
A.1 .系统基本功能A.1.1主密钥生成主密钥生成
数字签名
密钥交换
加解密/封装
主私钥
s[1,N1]
s[1,N1]
s[1,N1]
主秘密密钥长度
l
l
l
主公钥
Ppub=[s]P2G2
Ppub=[s]P1G1
Ppub=[s]P1G1
主机公开密钥长度
4L(E ) FQ2 )点)
2L(E ) FQ )点)
2L(E ) FQ )点)
私钥生成函数标识符
hid,1字节
hid,1字节
hid,1字节
调用库
是EC-e(FQ2 )
这是EC-e (调频)
这是EC-e (调频)
不
一样的
一样的
A.1.2用户公钥生成用户公私钥生成
数字签名
密钥交换
加解密/封装
主私钥
s[1,N1]
s[1,N1]
s[1,N1]
主秘密密钥长度
l
l
l
用户公钥
用户idIDA
用户idIDA
用户idIDA
用户公开密钥长度
任意长度
任意长度
任意长度
用户私钥
dAG1,
T1=H1(IDA|||hid,n ) s mod N,
t2=st1-1 mod N
dA=[t2]P1
dAG2,
T1=H1(IDA|||hid,n ) s mod N,
t2=st1-1 mod N
dA=[t2]P2
dAG2,
T1=H1(IDA|||hid,n ) s mod N,
t2=st1-1 mod N
dA=[t2]P2
用户密钥长度
2L(E ) FQ )点)
4L(E ) FQ2 )点)
4L(E ) FQ2 )点)
不
一样的
一样的