犐犆犛犔中华人民共和国国家标准犌犅犜信息安全技术犛犕标识密码算法第部分算法犐狀犳狅狉犿犪狋犻狅狀狊犲犮狌狉犻狋狔狋犲犮犺狀狅犾狅犵狔犐犱犲狀狋犻狋狔犫犪狊犲犱犮狉狔狆狋狅犵狉犪狆犺犻犮犪犾犵狅狉犻狋犺犿狊犛犕犘犪狉狋犃犾犵狅狉犻狋犺犿狊发布实施国家市场监督管理总局国家标准化管理委员会发布犌犅犜目次前言引言范围规范性引用文件术语和定义符号算法参数与辅助函数概述系统参数组辅助函数数字签名生成和验证算法及流程系统签名主密钥和用户签名密钥的产生数字签名生成算法数字签名生成算法流程数字签名验证算法数字签名验证算法流程密钥交换协议及流程系统加密主密钥和用户加密密钥的产生密钥交换协议密钥交换协议流程密钥封装机制及流程系统加密主密钥和用户加密密钥的产生密钥封装算法密钥封装算法流程解封装算法解封装算法流程加密算法及流程系统加密主密钥和用户加密密钥的产生加密算法加密算法流程解密算法解密算法流程附录资料性附录算法示例犌犅犜前言信息安全技术标识密码算法分为两个部分第部分总则第部分算法本部分为的第部分本部分按照给出的规则起草请注意本文件的某些内容可能涉及专利本文件的发布机构不承担识别这些专利的责任本部分由全国信息安全标准化技术委员会提出并归口本部分起草单位国家信息安全工程技术研究中心北京国脉信安科技有限公司深圳奥联信息安全技术有限公司中国科学院软件研究所武汉大学中科院信息工程研究所本部分主要起草人陈晓程朝辉张振峰叶顶峰胡磊陈建华季庆光袁文恭刘平马宁袁峰李增欣王学进杨恒亮张青坡马艳丽浦雨三唐英孙移盛安萱封维端张立圆犌犅犜引言在年提出了标识密码的概念在标识密码系统中用户的私钥由密钥生成中心根据主密钥和用户标识计算得出用户的公钥由用户标识唯一确定由标识管理者保证标识的真实性与基于证书的公钥密码系统相比标识密码系统中的密钥管理环节可以得到适当简化年和在日本提出了用椭圆曲线对构造基于标识的密钥共享方案年和以及和等人独立提出了用椭圆曲线对构造标识公钥加密算法这些工作引发了标识密码的新发展出现了一批用椭圆曲线对实现的标识密码算法其中包括数字签名算法密钥交换协议密钥封装机制和公钥加密算法等椭圆曲线对具有双线性的性质它在椭圆曲线的循环子群与扩域的乘法循环子群之间建立联系构成了双线性双线性逆判定性双线性逆双线性逆和双线性逆等难题当椭圆曲线离散对数问题和扩域离散对数问题的求解难度相当时可用椭圆曲线对构造出安全性和实现效率兼顾的标识密码犌犅犜信息安全技术犛犕标识密码算法第部分算法范围的本部分规定了标识密码算法中数字签名算法密钥交换协议密钥封装机制和加密算法本部分适用于标识密码算法工程化的实现指导标识密码算法相关产品的研制和检测规范性引用文件下列文件对于本文件的应用是必不可少的凡是注日期的引用文件仅注日期的版本适用于本文件凡是不注日期的引用文件其最新版本包括所有的修改单适用于本文件信息安全技术分组密码算法的工作模式信息安全技术密码杂凑算法信息安全技术分组密码算法信息安全技术二元序列随机性检测规范信息安全技术标识密码算法第部分总则术语和定义界定的以及下列术语和定义适用于本文件为了便于使用以下重复列出了中的一些术语和定义加密主密钥犲狀犮狉狔狆狋犻狅狀犿犪狊狋犲狉犽犲狔处于标识密码密钥分层结构最顶层的密钥内容为加密主私钥和加密主公钥其中加密主公钥公开加密主私钥由密钥生成中心秘密保存用加密主私钥和用户的标识生成用户的加密私钥在标识密码中加密主私钥一般由通过随机数发生器产生加密主公钥由加密主私钥结合系统参数产生标识犻犱犲狀狋犻狋狔由实体无法否认的信息组成如实体的可识别名称电子邮箱身份证号电话号码街道地址等可唯一确定一个实体的身份定义发起方犻狀犻狋犻犪狋狅狉在一个协议的操作过程中发送首轮交换信息的用户初始向量值犻狀犻狋犻犪犾犻狕犪狋犻狅狀狏犲犮狋狅狉犻狀犻狋犻犪犾犻狕犪狋犻狅狀狏犪犾狌犲犐犞在密码变换中为增加安全性或使密码设备同步而引入的用于数据变换的起始数据犌犅犜从犃到犅的密钥确认犽犲狔犮狅狀犳犻狉犿犪狋犻狅狀犳狉狅犿犃狋狅犅使用户确信用户拥有特定秘密密钥的保证签名消息狊犻犵狀犲犱犿犲狊狊犪犵犲由消息以及该消息的数字签名部分所组成的一组数据元素签名密钥狊犻犵狀犪狋狌狉犲犽犲狔在数字签名生成过程中由签名者专用的秘密数据元素即签名者的私钥签名主密钥狊犻犵狀犪狋狌狉犲犿犪狊狋犲狉犽犲狔系统的签名根密钥内容为签名主私钥和签名主公钥其中签名主公钥公开签名主私钥由秘密保存用签名主私钥和用户的标识生成用户的签名私钥在标识密码中签名主私钥一般由通过随机数发生器产生签名主公钥由签名主私钥结合系统参数产生密钥交换犽犲狔犲狓犮犺犪狀犵犲在通信实体之间安全地交换密钥的方案可以使通信双方在非安全通信线路上为信息传送安全地交换密钥密钥协商犽犲狔犪犵狉犲犲犿犲狀狋多个用户之间建立一个共享秘密密钥的过程其中的任何一个用户都不能预先确定该密钥的值密钥派生函数犽犲狔犱犲狉犻狏犪狋犻狅狀犳狌狀犮狋犻狅狀通过作用于共享秘密和双方都知道的其他参数产生一个或多个共享秘密密钥的函数响应方狉犲狊狆狅狀犱犲狉在一个协议的操作过程中不是发送首轮交换信息的用户秘密密钥狊犲犮狉犲狋犽犲狔在密码体制中收发双方共同拥有的而第三方不知道的一种密钥消息认证码犿犲狊狊犪犵犲犪狌狋犺犲狀狋犻犮犪狋犻狅狀犮狅犱犲犕犃犆一种认证算法作用于特定的密钥和消息比特串所得出的一段码字以用来鉴别数据的来源和检验数据的完整性用于求取消息认证码的函数称作消息认证码函数符号下列符号适用于本文件使用标识密码系统的两个用户犮犳椭圆曲线阶相对于犖的余因子犮犻犱用一个字节表示的曲线的识别符其中表示犉狆素数狆上常曲线即非超奇异曲线表示犉狆上超奇异曲线表示犉狆上常曲线及其扭曲线犱狊用户的签名私钥犌犅犜犲从犌犌到犌犜的双线性对犲犻犱用一个字节表示的双线性对犲的识别符其中表示对表示对表示对表示对犌犜阶为素数犖的乘法循环群犌阶为素数犖的加法循环群犌阶为素数犖的加法循环群犵狌乘法群犌犜中元素犵的狌次幂即犵狌犵烏犵犵狌是正整数烐烑狌个密码杂凑函数犎狏犎犎由密码杂凑函数派生的密码函数犺犻犱用一个字节表示的签名私钥生成函数识别符由选择并公开犺犛发送的签名犺犛收到的签名犐犇用户的标识可以唯一确定用户的公钥犽狊签名主私钥犕待签名消息犕待验证消息狀模狀运算示例犖循环群犌犌和犌犜的阶为大于的素数犘狆狌犫狊签名主公钥犘群犌的生成元犘群犌的生成元犘由元素犘生成的循环群狌犘加法群犌犌中元素犘的狌倍狓顶函数不小于狓的最小整数示例狓底函数不大于狓的最大整数示例狓狔狓与狔的拼接狓和狔是比特串或字节串狓狔不小于狓且不大于狔的整数的集合扭曲线参数算法参数与辅助函数概述第章规定了一个用椭圆曲线对实现的基于标识的数字签名算法该算法的签名者持有一个标识和一个相应的签名私钥该签名私钥由密钥生成中心通过签名主私钥和签名者的标识结合产生签名者用自身签名私钥对数据产生数字签名验证者用签名者的标识验证签名的可靠性在签名的生成和验证过程之前应用密码杂凑函数对待签消息犕和待验证消息犕进行杂凑计算第章规定了一个用椭圆曲线对实现的基于标识的密钥交换协议参与密钥交换的发起方用户和响应方用户各自持有一个标识和一个相应的加密私钥加密私钥均由密钥生成中心通过加密主私钥和用户的标识结合产生用户和通过交互的信息传递用标识和各自的加密私钥来商定一个只犌犅犜有他们知道的秘密密钥用户双方可以通过可选项实现密钥确认这个共享的秘密密钥通常用在某个对称密码算法中该密钥交换协议能够用于密钥管理和协商在现代密码系统中密钥是控制密码变换的重要参数而且密码的安全性极大地依赖于对密钥的安全保护密钥封装机制使得封装者可以产生和加密一个秘密密钥给目标用户而唯有目标用户可以解封装该秘密密钥并把它作为进一步的会话密钥第章规定了一个用椭圆曲线对实现的基于标识的密钥封装机制解封装用户持有一个标识和一个相应的加密私钥该加密私钥由密钥生成中心通过加密主私钥和解封装用户的标识结合产生封装者利用解封装用户的标识产生并加密一个秘密密钥给对方解封装用户则用相应的加密私钥解封装该秘密密钥第章规定了一个用椭圆曲线对实现的基于标识的公钥加密算法该公钥加密算法是上述密钥封装机制和消息封装机制的结合消息封装机制包括基于密钥派生函数的序列密码以及结合密钥派生函数的分组密码算法两种类型该算法可提供消息的机密性在基于标识的加密算法中解密用户持有一个标识和一个相应的加密私钥该加密私钥由密钥生成中心通过加密主私钥和解密用户的标识结合产生加密用户用解密用户的标识加密数据解密用户用自身加密私钥解密数据附录给出了数字签名算法密钥交换协议密钥封装机制和公钥加密算法示例系统参数组系统参数组包括曲线识别符犮犻犱犖椭圆曲线基域犉狇的参数椭圆曲线方程参数犪和犫扭曲线参数若犮犻犱的低位为曲线阶的素因子犖和相对于犖的余因子犮犳曲线犈犉狇相对于犖的嵌入次数犽犈犉狇犱犱整除犽的犖阶循环子群犌的生成元犘犈犉狇犱犱整除犽的犖阶循环子群犌的生成元犘双线性对犲的识别符犲犻犱选项犌到犌的同态映射双线性对犲的值域为犖阶乘法循环群犌犜系统参数的详细描述见中的附录辅助函数概述本部分规定基于标识的密码算法计算中涉及辅助函数密码杂凑函数密码杂凑函数犎狏密码杂凑函数犎狏的输出是长度恰为狏比特的杂凑值本部分规定使用国家密码管理部门批准的密码杂凑函数见密码函数犎密码函数犎犣狀的输入为比特串犣和整数狀输出为一个整数犺狀犎犣狀需要调用密码杂凑函数犎狏关于密码杂凑函数犎狏应符合的规定密码函数犎犣狀输入比特串犣整数狀输出整数犺狀计算步骤为初始化一个比特构成的计数器犮狋计算犺犾犲狀狀犌犅犜对犻从犺犾犲狀狏执行计算犎犪犻犎狏犣犮狋犮狋若犺犾犲狀狏是整数令犎犪犺犾犲狀狏犎犪犺犾犲狀狏否则令犎犪犺犾犲狀狏为犎犪犺犾犲狀狏最左边的犺犾犲狀狏犺犾犲狀狏比特令犎犪犎犪犎犪犎犪犺犾犲狀狏犎犪犺犾犲狀狏按照中和给出的细节将犎犪的数据类型转换为整数计算犺犎犪狀密码函数犎密码函数犎犣狀的输入为比特串犣和整数狀输出为一个整数犺狀犎犣狀需要调用密码杂凑函数犎狏关于密码杂凑函数犎狏应符合的规定密码函数犎犣狀输入比特串犣整数狀输出整数犺狀计算步骤为初始化一个比特构成的计数器犮狋计算犺犾犲狀狀对犻从犺犾犲狀狏执行计算犎犪犻犎狏犣犮狋犮狋若犺犾犲狀狏是整数令犎犪犺犾犲狀狏犎犪犺犾犲狀狏否则令犎犪犺犾犲狀狏为犎犪犺犾犲狀狏最左边的犺犾犲狀狏犺犾犲狀狏比特令犎犪犎犪犎犪犎犪犺犾犲狀狏犎犪犺犾犲狀狏按照中和给出的细节将犎犪的数据类型转换为整数计算犺犎犪狀随机数发生器应使用符合的随机数发生器分组密码算法分组密码算法包括加密算法犈狀犮犓犿和解密算法犇犲犮犓犮犈狀犮犓犿表示用密钥犓对明文犿进行加密其输出为密文比特串犮犇犲犮犓犮表示用密钥犓对密文犮进行解密其输出为明文比特串犿或错误密钥犓的比特长度记为犓犾犲狀应使用符合国家密码管理部门批准的分组密码算法消息认证码函数消息认证码函数犕犃犆犓犣的作用是防止消息数据犣被非法篡改它在密钥
GB-T 38635.2-2020 信息安全技术 SM9标识密码算法 第2部分:算法
文档预览
中文文档
41 页
50 下载
1000 浏览
0 评论
0 收藏
3.0分
温馨提示:本文档共41页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 路人甲 于 2022-05-26 05:57:56上传分享