标准搜索结果: 'GM/T 0044.4-2016'
标准编号 | GM/T 0044.4-2016 (GM/T0044.4-2016) | 中文名称 | SM9标识密码算法 第4部分:密钥封装机制和公钥加密算法 | 英文名称 | Identity-based cryptographic algorithms SM9 - Part 4: Key encapsulation mechanism and public key encryption alogorithm | 行业 | Chinese Industry Standard (推荐) | 中标分类 | L80 | 字数估计 | 15,159 | 发布日期 | 2016-03-28 | 实施日期 | 2016-03-28 | 标准依据 | 行业标准备案公告2016年第10号(总第202号) |
GM/T 0044.4-2016: SM9标识密码算法 第4部分:密钥封装机制和公钥加密算法
GM/T 0044.4-2016 英文名称: Identity-based cryptographic algorithms SM9 - Part 4: Key encapsulation mechanism and public key encryption alogorithm
中 华 人 民 共 和 国 密 码 行 业 标 准
GM/T 0044.4—2016
SM9 标识密码算法
国家密码管理局 发 布
前 言
GM/T 0044《SM9标识密码算法》分为5个部分:
——第1部分:总则;
——第2部分:数字签名算法;
——第3部分:密钥交换协议;
——第4部分:密钥封装机制和公钥加密算法;
——第5部分:参数定义。
本部分为GM/T 0044 的第4部分。
本部分按照 GB/T 1.1—2009 给出的规则起草。
请注意本文件的某些内容可能涉及专利。本文件的发布机构不承担识别这些专利的责任。
本部分由密码行业标准化技术委员会提出并归口。
本部分起草单位:国家信息安全工程技术研究中心、深圳奥联信息安全技术有限公司、武汉大学、 上海交通大学、中科院信息工程研究所、北方信息技术研究所。
本部分主要起草人:陈晓、程朝辉、叶顶峰、胡磊、陈建华、路贝可、季庆光、曹珍富、袁文恭、刘平、 马宁、袁峰、李增欣、王学进、杨恒亮、张青坡、马艳丽、浦雨三、唐英、孙移盛、安萱。
引 言
A.Shamir 在1984年提出了标识密码(Identity-Based Cryptography)的概念,在标识密码系统中, 用户的私钥由密钥生成中心(KGC) 根据主密钥和用户标识计算得出,用户的公钥由用户标识唯一确 定,从而用户不需要通过第三方保证其公钥的真实性。与基于证书的公钥密码系统相比,标识密码系统 中的密钥管理环节可以得到适当简化。
1999年,K.Ohgishi、R.Sakai和 M.Kasahara 在日本提出了用椭圆曲线对(pairing)构造基于标识的 密钥共享方案;2001年,D.Boneh 和 M.Franklin,以及 R.Sakai、K.Ohgishi 和 M.Kasahara 等人独立提 出了用椭圆曲线对构造标识公钥加密算法。这些工作引发了标识密码的新发展,出现了一批用椭圆曲 线对实现的标识密码算法,其中包括数字签名算法、密钥交换协议、密钥封装机制和公钥加密算法等。
椭圆曲线对具有双线性的性质,它在椭圆曲线的循环子群与扩域的乘法循环子群之间建立联系,构 成了双线性 DH、 双线性逆DH、 判定性双线性逆 DH、t-双线性逆 DH 和 t-Gap-双线性逆 DH 等难题, 当椭圆曲线离散对数问题和扩域离散对数问题的求解难度相当时,可用椭圆曲线对构造出安全性和实 现效率兼顾的标识密码。
本部分描述了用椭圆曲线对实现的基于标识的密钥封装机制和公钥加密算法。
1 范围
GM/T 0044 的本部分规定了用椭圆曲线对实现的基于标识的密钥封装机制和公钥加密与解密算 法,并提供相应的流程。利用密钥封装机制可以封装密钥给特定的实体。公钥加密与解密算法即基于 标识的非对称密码算法,该算法使消息发送者可以利用接收者的标识对消息进行加密,唯有接收者可以 用相应的私钥对该密文进行解密,从而获取消息。
本部分适用于密钥封装和对消息的加解密。
2 规范性引用文
下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅注日期的版本适用于本文 件。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。
5 算法参数与辅助函数
5.1 总则
在现代密码系统中,密钥是控制密码变换的重要参数,而且密码的安全性极大地依赖于对密钥的安 全保护。密钥封装机制使得封装者可以产生和加密一个秘密密钥给目标用户,而唯有目标用户可以解 封装该秘密密钥,并把它作为进一步的会话密钥。
本部分规定了一个用椭圆曲线对实现的基于标识的密钥封装机制。解封装用户持有一个标识和一个 相应的加密私钥,该加密私钥由密钥生成中心通过加密主私钥和解封装用户的标识结合产生。封装者利 用解封装用户的标识产生并加密一个秘密密钥给对方,解封装用户则用相应的加密私钥解封装该秘密 密钥。
本部分还规定了一个用椭圆曲线对实现的基于标识的公钥加密算法。该公钥加密算法是上述密钥 封装机制和消息封装机制的结合,消息封装机制包括基于密钥派生函数的序列密码以及结合密钥派生 函数的分组密码算法两种类型,该算法可提供消息的机密性。在基于标识的加密算法中,解密用户持有 一个标识和一个相应的加密私钥,该加密私钥由密钥生成中心通过加密主私钥和解密用户的标识结合 产生。加密用户用解密用户的标识加密数据,解密用户用自身加密私钥解密数据。
5.2 系统参数组
系统参数组包括曲线识别符cid;椭圆曲线基域Fq的参数;椭圆曲线方程参数a 和b;扭曲线参数β (若cid 的低4位为2);曲线阶的素因子N 和相对于N 的余因子cf;曲线E(Fq) 相对于N 的嵌入次数
k;E(Fqd1)(d1整除k)的 N 阶循环子群G₁ 的生成元 P1;E(Fqd2)(d₂ 整除k)的 N 阶循环子群G₂ 的生成元 P₂ ; 双线性对e 的识别符eid;(选项)G₂ 到 G₁ 的同态映射ψ。
双线性对e的值域为 N阶乘法循环群 Gr
系统参数的详细描述及其验证参见 GM/T 0044.1-2016 的第 7章。
5.3 系统加密主密钥和用户加密密钥的产生
KGC 选择并公开用一个字节表示的加密私钥生成函数识别符 hid。
5.4 辅助函数。
5.4.1 概述
在本部分规定的基于标识的密钥封装机制和公钥加密算法中,涉及5类辅助函数:密码杂凑函数、 密钥派生函数、消息认证码函数、随机数发生器和分组密码算法。这5类辅助函数的强弱直接影响密钥 封装机制和公钥加密算法的安全性。
5.4.2 密码杂凑函数
5.4.2.1 密码杂凑函数 H.()
密码杂凑函数 Hv ()的输出是长度恰为 u比特的杂凑值。本部分规定使用国家密码管理主管部门批准的密码杂凑函数,如 SM3 密码杂凑算法。
5.4.2.2 密码函数 H₁()
密码函数 H₁(Z,n)的输入为比特串Z 和整数n, 输出为一个整数h₁ ∈[1,n- 1] 。H₁(Z,n)需要调用密码杂凑函数Hv() 。 关于密码杂凑函数Hv(), 应符合5.4.2.1的规定。
5.4.3 密钥派生函数
本部分采用的密钥派生函数 KDF() 应符合 GM/T 0044.3-—2016的5.4.3的规定。
5.4.4 分组密码算法
分组密码算法包括加密算法 Enc(K₁,m) 和解密算法 Dec(K₁,c)。Enc(K₁,m) 表示用密钥 K₁ 对-明文m 进行加密,其输出为密文比特串c;Dec(K₁,c) 表示用密钥K₁对密文 c 进行解密,其输出为明文 比特串m 或“错误”。密钥K₁的比特长度记为K₁- len。
本部分规定使用国家密码管理主管部门批准的分组密码算法,如 SM4 分组密码算法。
5.4.5 消息认证码函数
消息认证码函数MAC(K₂,Z) 的作用是防止消息数据Z 被非法篡改,它在密钥 K₂ 的控制下,产生消息数据比特串Z 的认证码,密钥 K₂ 的比特长度记为 K₂ -len。 在本部分的基于标识的加密算法中, 消息认证码函数使用密钥派生函数生成的密钥对密文比特串求取消息认证码,从而使解密者可以鉴别 消息的来源和检验数据的完整性。
消息认证码函数需要调用密码杂凑函数。
设密码杂凑函数为 Hv () ,其输出是长度恰为 u比特的杂凑值。
5.4.6 随机数发生器
本部分规定使用国家密码管理主管部门批准的随机数发生器。
6 密钥封装机制及流程
6.1 密钥封装算法及流程
6.1.1 密钥封装算法
为了封装比特长度为klen的密钥给用户B, 作为封装者的用户A 需要执行以下运算步骤:
A2 :产生随机数 r∈[ 1,N-1];
A3 :计算群 G₁ 中的元素 C=[r]Qb按GM/T0044.1·-2016 的6.2.8和 6.2.5 给出的细节将C 的数据类型转换为比特串;
7 公钥加密算法及流程
7.1 加密算法及流程
7.1.1 加密算法
设需要发送的消息为比特串M,mlen 为M 的比特长度,K₁-len 为分组密码算法中密钥K₁ 的比特长度,K₂ - len 为函数MAC(K₂,Z)中密钥 K₂ 的比特长度。
为了加密明文给用户 ,作为加密者的用户 应实现以下运算步骤:
7.2 解密算法及流程
7.2.......
|