GB-T 38635.2-2020 信息安全技术 SM9标识密码算法 第2部分:算法.pdf

上传人:Ma****4 文档编号:14661296 上传时间:2023-06-25 格式:PDF 页数:41 大小:9.87MB
下载 相关 举报
GB-T 38635.2-2020 信息安全技术 SM9标识密码算法 第2部分:算法.pdf_第1页
第1页 / 共41页
GB-T 38635.2-2020 信息安全技术 SM9标识密码算法 第2部分:算法.pdf_第2页
第2页 / 共41页
GB-T 38635.2-2020 信息安全技术 SM9标识密码算法 第2部分:算法.pdf_第3页
第3页 / 共41页
GB-T 38635.2-2020 信息安全技术 SM9标识密码算法 第2部分:算法.pdf_第4页
第4页 / 共41页
GB-T 38635.2-2020 信息安全技术 SM9标识密码算法 第2部分:算法.pdf_第5页
第5页 / 共41页
GB-T 38635.2-2020 信息安全技术 SM9标识密码算法 第2部分:算法.pdf_第6页
第6页 / 共41页
GB-T 38635.2-2020 信息安全技术 SM9标识密码算法 第2部分:算法.pdf_第7页
第7页 / 共41页
GB-T 38635.2-2020 信息安全技术 SM9标识密码算法 第2部分:算法.pdf_第8页
第8页 / 共41页
GB-T 38635.2-2020 信息安全技术 SM9标识密码算法 第2部分:算法.pdf_第9页
第9页 / 共41页
GB-T 38635.2-2020 信息安全技术 SM9标识密码算法 第2部分:算法.pdf_第10页
第10页 / 共41页
GB-T 38635.2-2020 信息安全技术 SM9标识密码算法 第2部分:算法.pdf_第11页
第11页 / 共41页
GB-T 38635.2-2020 信息安全技术 SM9标识密码算法 第2部分:算法.pdf_第12页
第12页 / 共41页
GB-T 38635.2-2020 信息安全技术 SM9标识密码算法 第2部分:算法.pdf_第13页
第13页 / 共41页
GB-T 38635.2-2020 信息安全技术 SM9标识密码算法 第2部分:算法.pdf_第14页
第14页 / 共41页
GB-T 38635.2-2020 信息安全技术 SM9标识密码算法 第2部分:算法.pdf_第15页
第15页 / 共41页
GB-T 38635.2-2020 信息安全技术 SM9标识密码算法 第2部分:算法.pdf_第16页
第16页 / 共41页
GB-T 38635.2-2020 信息安全技术 SM9标识密码算法 第2部分:算法.pdf_第17页
第17页 / 共41页
GB-T 38635.2-2020 信息安全技术 SM9标识密码算法 第2部分:算法.pdf_第18页
第18页 / 共41页
GB-T 38635.2-2020 信息安全技术 SM9标识密码算法 第2部分:算法.pdf_第19页
第19页 / 共41页
GB-T 38635.2-2020 信息安全技术 SM9标识密码算法 第2部分:算法.pdf_第20页
第20页 / 共41页
亲,该文档总共41页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

GB-T 38635.2-2020 信息安全技术 SM9标识密码算法 第2部分:算法.pdf

《GB-T 38635.2-2020 信息安全技术 SM9标识密码算法 第2部分:算法.pdf》由会员分享,可在线阅读,更多相关《GB-T 38635.2-2020 信息安全技术 SM9标识密码算法 第2部分:算法.pdf(41页珍藏版)》请在冰点文库上搜索。

GB-T 38635.2-2020 信息安全技术 SM9标识密码算法 第2部分:算法.pdf

书书书犐犆犛犔中华人民共和国国家标准犌犅犜信息安全技术犛犕标识密码算法第部分:

算法犐狀犳狅狉犿犪狋犻狅狀狊犲犮狌狉犻狋狔狋犲犮犺狀狅犾狅犵狔犐犱犲狀狋犻狋狔犫犪狊犲犱犮狉狔狆狋狅犵狉犪狆犺犻犮犪犾犵狅狉犻狋犺犿狊犛犕犘犪狉狋:

犃犾犵狅狉犻狋犺犿狊发布实施国家市场监督管理总局国家标准化管理委员会发布书书书目次前言引言范围规范性引用文件术语和定义符号算法参数与辅助函数概述系统参数组辅助函数数字签名生成和验证算法及流程系统签名主密钥和用户签名密钥的产生数字签名生成算法数字签名生成算法流程数字签名验证算法数字签名验证算法流程密钥交换协议及流程系统加密主密钥和用户加密密钥的产生密钥交换协议密钥交换协议流程密钥封装机制及流程系统加密主密钥和用户加密密钥的产生密钥封装算法密钥封装算法流程解封装算法解封装算法流程加密算法及流程系统加密主密钥和用户加密密钥的产生加密算法加密算法流程解密算法解密算法流程附录(资料性附录)算法示例犌犅犜前言信息安全技术标识密码算法分为两个部分:

第部分:

总则;第部分:

算法。

本部分为的第部分。

本部分按照给出的规则起草。

请注意本文件的某些内容可能涉及专利。

本文件的发布机构不承担识别这些专利的责任。

本部分由全国信息安全标准化技术委员会()提出并归口。

本部分起草单位:

国家信息安全工程技术研究中心、北京国脉信安科技有限公司、深圳奥联信息安全技术有限公司、中国科学院软件研究所、武汉大学、中科院信息工程研究所。

本部分主要起草人:

陈晓、程朝辉、张振峰、叶顶峰、胡磊、陈建华、季庆光、袁文恭、刘平、马宁、袁峰、李增欣、王学进、杨恒亮、张青坡、马艳丽、浦雨三、唐英、孙移盛、安萱、封维端、张立圆。

犌犅犜引言在年提出了标识密码()的概念,在标识密码系统中,用户的私钥由密钥生成中心()根据主密钥和用户标识计算得出,用户的公钥由用户标识唯一确定,由标识管理者保证标识的真实性。

与基于证书的公钥密码系统相比,标识密码系统中的密钥管理环节可以得到适当简化。

年,、和在日本提出了用椭圆曲线对()构造基于标识的密钥共享方案;年,和,以及、和等人独立提出了用椭圆曲线对构造标识公钥加密算法。

这些工作引发了标识密码的新发展,出现了一批用椭圆曲线对实现的标识密码算法,其中包括数字签名算法、密钥交换协议、密钥封装机制和公钥加密算法等。

椭圆曲线对具有双线性的性质,它在椭圆曲线的循环子群与扩域的乘法循环子群之间建立联系,构成了双线性、双线性逆、判定性双线性逆、双线性逆和双线性逆等难题,当椭圆曲线离散对数问题和扩域离散对数问题的求解难度相当时,可用椭圆曲线对构造出安全性和实现效率兼顾的标识密码。

犌犅犜信息安全技术犛犕标识密码算法第部分:

算法范围的本部分规定了标识密码算法中数字签名算法、密钥交换协议、密钥封装机制和加密算法。

本部分适用于标识密码算法工程化的实现,指导标识密码算法相关产品的研制和检测。

规范性引用文件下列文件对于本文件的应用是必不可少的。

凡是注日期的引用文件,仅注日期的版本适用于本文件。

凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。

信息安全技术分组密码算法的工作模式信息安全技术密码杂凑算法信息安全技术分组密码算法信息安全技术二元序列随机性检测规范信息安全技术标识密码算法第部分:

总则术语和定义界定的以及下列术语和定义适用于本文件。

为了便于使用,以下重复列出了中的一些术语和定义。

加密主密钥犲狀犮狉狔狆狋犻狅狀犿犪狊狋犲狉犽犲狔处于标识密码密钥分层结构最顶层的密钥,内容为加密主私钥和加密主公钥,其中加密主公钥公开,加密主私钥由密钥生成中心()秘密保存。

用加密主私钥和用户的标识生成用户的加密私钥。

在标识密码中,加密主私钥一般由通过随机数发生器产生,加密主公钥由加密主私钥结合系统参数产生。

标识犻犱犲狀狋犻狋狔由实体无法否认的信息组成,如实体的可识别名称、电子邮箱、身份证号、电话号码、街道地址等,可唯一确定一个实体的身份。

,定义发起方犻狀犻狋犻犪狋狅狉在一个协议的操作过程中发送首轮交换信息的用户。

初始向量值犻狀犻狋犻犪犾犻狕犪狋犻狅狀狏犲犮狋狅狉犻狀犻狋犻犪犾犻狕犪狋犻狅狀狏犪犾狌犲;犐犞在密码变换中,为增加安全性或使密码设备同步而引入的用于数据变换的起始数据。

犌犅犜从犃到犅的密钥确认犽犲狔犮狅狀犳犻狉犿犪狋犻狅狀犳狉狅犿犃狋狅犅使用户确信用户拥有特定秘密密钥的保证。

签名消息狊犻犵狀犲犱犿犲狊狊犪犵犲由消息以及该消息的数字签名部分所组成的一组数据元素。

签名密钥狊犻犵狀犪狋狌狉犲犽犲狔在数字签名生成过程中由签名者专用的秘密数据元素,即签名者的私钥。

签名主密钥狊犻犵狀犪狋狌狉犲犿犪狊狋犲狉犽犲狔系统的签名根密钥,内容为签名主私钥和签名主公钥,其中签名主公钥公开,签名主私钥由秘密保存。

用签名主私钥和用户的标识生成用户的签名私钥。

在标识密码中,签名主私钥一般由通过随机数发生器产生,签名主公钥由签名主私钥结合系统参数产生。

密钥交换犽犲狔犲狓犮犺犪狀犵犲在通信实体之间安全地交换密钥的方案,可以使通信双方在非安全通信线路上为信息传送安全地交换密钥。

密钥协商犽犲狔犪犵狉犲犲犿犲狀狋多个用户之间建立一个共享秘密密钥的过程,其中的任何一个用户都不能预先确定该密钥的值。

密钥派生函数犽犲狔犱犲狉犻狏犪狋犻狅狀犳狌狀犮狋犻狅狀通过作用于共享秘密和双方都知道的其他参数,产生一个或多个共享秘密密钥的函数。

响应方狉犲狊狆狅狀犱犲狉在一个协议的操作过程中不是发送首轮交换信息的用户。

秘密密钥狊犲犮狉犲狋犽犲狔在密码体制中收发双方共同拥有的而第三方不知道的一种密钥。

消息认证码犿犲狊狊犪犵犲犪狌狋犺犲狀狋犻犮犪狋犻狅狀犮狅犱犲;犕犃犆一种认证算法作用于特定的密钥和消息比特串所得出的一段码字,以用来鉴别数据的来源和检验数据的完整性。

用于求取消息认证码的函数称作消息认证码函数。

符号下列符号适用于本文件。

,:

使用标识密码系统的两个用户。

犮犳:

椭圆曲线阶相对于犖的余因子。

犮犻犱:

用一个字节表示的曲线的识别符,其中表示犉狆(素数狆)上常曲线(即非超奇异曲线),表示犉狆上超奇异曲线,表示犉狆上常曲线及其扭曲线。

犱狊:

用户的签名私钥。

犌犅犜犲:

从犌犌到犌犜的双线性对。

犲犻犱:

用一个字节表示的双线性对犲的识别符,其中表示对,表示对,表示对,表示对。

犌犜:

阶为素数犖的乘法循环群。

犌:

阶为素数犖的加法循环群。

犌:

阶为素数犖的加法循环群。

犵狌:

乘法群犌犜中元素犵的狌次幂,即犵狌犵犵犵烐烏烑狌个,狌是正整数。

犎狏():

密码杂凑函数。

犎(),犎():

由密码杂凑函数派生的密码函数。

犺犻犱:

用一个字节表示的签名私钥生成函数识别符,由选择并公开。

(犺,犛):

发送的签名。

(犺,犛):

收到的签名。

犐犇:

用户的标识,可以唯一确定用户的公钥。

犽狊:

签名主私钥。

犕:

待签名消息。

犕:

待验证消息。

狀:

模狀运算。

示例:

犖:

循环群犌、犌和犌犜的阶,为大于的素数。

犘狆狌犫狊:

签名主公钥。

犘:

群犌的生成元。

犘:

群犌的生成元。

犘:

由元素犘生成的循环群。

狌犘:

加法群犌、犌中元素犘的狌倍。

狓:

顶函数,不小于狓的最小整数。

示例:

,。

狓:

底函数,不大于狓的最大整数。

示例:

,。

狓狔:

狓与狔的拼接,狓和狔是比特串或字节串。

狓,狔:

不小于狓且不大于狔的整数的集合。

扭曲线参数。

算法参数与辅助函数概述第章规定了一个用椭圆曲线对实现的基于标识的数字签名算法。

该算法的签名者持有一个标识和一个相应的签名私钥,该签名私钥由密钥生成中心通过签名主私钥和签名者的标识结合产生。

签名者用自身签名私钥对数据产生数字签名,验证者用签名者的标识验证签名的可靠性。

在签名的生成和验证过程之前,应用密码杂凑函数对待签消息犕和待验证消息犕进行杂凑计算。

第章规定了一个用椭圆曲线对实现的基于标识的密钥交换协议。

参与密钥交换的发起方用户和响应方用户各自持有一个标识和一个相应的加密私钥,加密私钥均由密钥生成中心通过加密主私钥和用户的标识结合产生。

用户和通过交互的信息传递,用标识和各自的加密私钥来商定一个只犌犅犜有他们知道的秘密密钥,用户双方可以通过可选项实现密钥确认。

这个共享的秘密密钥通常用在某个对称密码算法中。

该密钥交换协议能够用于密钥管理和协商。

在现代密码系统中,密钥是控制密码变换的重要参数,而且密码的安全性极大地依赖于对密钥的安全保护。

密钥封装机制使得封装者可以产生和加密一个秘密密钥给目标用户,而唯有目标用户可以解封装该秘密密钥,并把它作为进一步的会话密钥。

第章规定了一个用椭圆曲线对实现的基于标识的密钥封装机制。

解封装用户持有一个标识和一个相应的加密私钥,该加密私钥由密钥生成中心通过加密主私钥和解封装用户的标识结合产生。

封装者利用解封装用户的标识产生并加密一个秘密密钥给对方,解封装用户则用相应的加密私钥解封装该秘密密钥。

第章规定了一个用椭圆曲线对实现的基于标识的公钥加密算法。

该公钥加密算法是上述密钥封装机制和消息封装机制的结合,消息封装机制包括基于密钥派生函数的序列密码以及结合密钥派生函数的分组密码算法两种类型,该算法可提供消息的机密性。

在基于标识的加密算法中,解密用户持有一个标识和一个相应的加密私钥,该加密私钥由密钥生成中心通过加密主私钥和解密用户的标识结合产生。

加密用户用解密用户的标识加密数据,解密用户用自身加密私钥解密数据。

附录给出了数字签名算法、密钥交换协议、密钥封装机制和公钥加密算法示例。

系统参数组系统参数组包括曲线识别符犮犻犱;犖椭圆曲线基域犉狇的参数;椭圆曲线方程参数犪和犫;扭曲线参数(若犮犻犱的低位为);曲线阶的素因子犖和相对于犖的余因子犮犳;曲线犈(犉狇)相对于犖的嵌入次数犽;犈(犉狇犱)(犱整除犽)的犖阶循环子群犌的生成元犘;犈(犉狇犱)(犱整除犽)的犖阶循环子群犌的生成元犘;双线性对犲的识别符犲犻犱;(选项)犌到犌的同态映射?

双线性对犲的值域为犖阶乘法循环群犌犜。

系统参数的详细描述见中的附录。

辅助函数概述本部分规定基于标识的密码算法计算中涉及辅助函数。

密码杂凑函数密码杂凑函数犎狏()密码杂凑函数犎狏()的输出是长度恰为狏比特的杂凑值。

本部分规定使用国家密码管理部门批准的密码杂凑函数,见。

密码函数犎()密码函数犎(犣,狀)的输入为比特串犣和整数狀,输出为一个整数犺,狀。

犎(犣,狀)需要调用密码杂凑函数犎狏()。

关于密码杂凑函数犎狏(),应符合的规定。

密码函数犎(犣,狀):

输入:

比特串犣,整数狀。

输出:

整数犺,狀。

计算步骤为:

)初始化一个比特构成的计数器犮狋。

)计算犺犾犲狀(狀)。

犌犅犜)对犻从犺犾犲狀狏执行:

)计算犎犪犻犎狏(犣犮狋);)犮狋。

)若犺犾犲狀狏是整数,令犎犪!

犺犾犲狀狏犎犪犺犾犲狀狏,否则令犎犪!

犺犾犲狀狏为犎犪犺犾犲狀狏最左边的(犺犾犲狀(狏犺犾犲狀狏)比特。

)令犎犪犎犪犎犪?

犎犪犺犾犲狀狏犎犪!

犺犾犲狀狏,按照中和给出的细节将犎犪的数据类型转换为整数。

)计算犺(犎犪(狀)。

密码函数犎()密码函数犎(犣,狀)的输入为比特串犣和整数狀,输出为一个整数犺,狀。

犎(犣,狀)需要调用密码杂凑函数犎狏()。

关于密码杂凑函数犎狏(),应符合的规定。

密码函数犎(犣,狀):

输入:

比特串犣,整数狀。

输出:

整数犺,狀。

计算步骤为:

)初始化一个比特构成的计数器犮狋。

)计算犺犾犲狀(狀)。

)对犻从犺犾犲狀狏执行:

)计算犎犪犻犎狏(犣犮狋);)犮狋。

)若犺犾犲狀狏是整数,令犎犪!

犺犾犲狀狏犎犪犺犾犲狀狏,否则令犎犪!

犺犾犲狀狏为犎犪犺犾犲狀狏最左边的(犺犾犲狀(狏犺犾犲狀狏)比特。

)令犎犪犎犪犎犪?

犎犪犺犾犲狀狏犎犪!

犺犾犲狀狏,按照中和给出的细节将犎犪的数据类型转换为整数。

)计算犺(犎犪(狀)。

随机数发生器应使用符合的随机数发生器。

分组密码算法分组密码算法包括加密算法犈狀犮(犓,犿)和解密算法犇犲犮(犓,犮)。

犈狀犮(犓,犿)表示用密钥犓对明文犿进行加密,其输出为密文比特串犮;犇犲犮(犓,犮)表示用密钥犓对密文犮进行解密,其输出为明文比特串犿或“错误”。

密钥犓的比特长度记为犓犾犲狀。

应使用符合国家密码管理部门批准的分组密码算法。

消息认证码函数消息认证码函数犕犃犆(犓,犣)的作用是防止消息数据犣被非法篡改,它在密钥犓的控制下,产生消息数据比特串犣的认证码,密钥犓的比特长度记为犓犾犲狀。

在本部分的基于标识的加密算法中,消息认证码函数使用密钥派生函数生成的密钥对密文比特串求取消息认证码,从而使解密者可以鉴别消息的来源和检验数据的完整性。

消息认证码函数需要调用密码杂凑函数。

设密码杂凑函数为犎狏(),其输出是长度恰为狏比特的杂凑值。

消息认证码函数犕犃犆(犓,犣),其中:

犌犅犜输入:

比特串犓(比特长度为犓犾犲狀的密钥),比特串犣(待求取消息认证码的消息)。

输出:

长度为狏的消息认证码数据比特串犓。

犓犎狏(犣犓)。

密钥派生函数密钥派生函数的作用是从一个共享的秘密比特串中派生出密钥数据。

在密钥协商过程中,密钥派生函数作用在密钥交换所获共享的秘密比特串上,从中产生所需的会话密钥或进一步加密所需的密钥数据。

密钥派生函数需要调用密码杂凑函数。

设密码杂凑函数为犎狏(),其输出是长度恰为狏比特的杂凑值。

密钥派生函数犓犇犉(犣,犽犾犲狀),其中:

输入:

比特串犣(双方共享的数据),整数犽犾犲狀表示要获得的密钥数据的比特长度,要求该值小于()狏。

输出:

长度为犽犾犲狀的密钥数据比特串犓。

计算步骤为:

)初始化一个比特构成的计数器犮狋。

)对犻从犽犾犲狀狏执行:

)计算犎犪犻犎狏(犣犮狋);)犮狋。

)若犽犾犲狀狏是整数,令犎犪!

犽犾犲狀狏犎犪犽犾犲狀狏,否则令犎犪!

犽犾犲狀狏为犎犪犽犾犲狀狏最左边的(犽犾犲狀(狏犽犾犲狀狏)比特。

)令犓犎犪犎犪?

犎犪犽犾犲狀狏犎犪!

犽犾犲狀狏。

数字签名生成和验证算法及流程系统签名主密钥和用户签名密钥的产生产生随机数犽狊,犖作为签名主私钥,计算犌中的元素犘狆狌犫狊犽狊犘作为签名主公钥,则签名主密钥对为(犽狊,犘狆狌犫狊)。

秘密保存犽狊,公开犘狆狌犫狊。

选择并公开用一个字节表示的签名私钥生成函数识别符犺犻犱。

用户的标识为犐犇,为产生用户的签名私钥犱狊,首先在有限域犉犖上计算狋犎(犐犇犺犻犱,犖)犽狊,若狋则需重新产生签名主私钥,计算和公开签名主公钥,并更新已有用户的签名私钥;否则计算狋犽狋,然后计算犱狊狋犘。

数字签名生成算法设待签名的消息为比特串犕,为了获取消息犕的数字签名(犺,犛),作为签名者的用户应实现以下运算步骤:

计算群犌犜中的元素犵犲(犘,犘狆狌犫狊);:

产生随机数狉,犖;:

计算群犌犜中的元素狑犵狉,按照中和给出的细节将狑的数据类型转换为比特串;:

计算整数犺犎(犕狑,犖);:

计算整数犾(狉犺)犖,若犾则返回;:

计算群犌中的元素犛犾犱狊;:

按照中给出的细节,将犺的数据类型转换为字节串,按照中给出的细节将犛的数据类型转换为字节串,消息犕的签名为(犺,犛)。

犌犅犜数字签名生成算法流程数字签名生成算法流程如图所示。

图数字签名生成算法流程数字签名验证算法为了检验收到的消息犕及其数字签名(犺,犛),作为验证者的用户应实现以下运算步骤:

按照中给出的细节将犺的数据类型转换为整数,检验犺,犖是否成立,若不成立则验证不通过;:

按照中给出的细节将犛的数据类型转换为椭圆曲线上的点,按中给出的细节检验犛犌是否成立,若不成立则验证不通过;:

计算群犌犜中的元素犵犲(犘,犘狆狌犫狊);:

计算群犌犜中的元素狋犵犺;:

计算整数犺犎(犐犇犺犻犱,犖);:

计算群犌中的元素犘犺犘犘狆狌犫狊;:

计算群犌犜中的元素狌犲(犛,犘);:

计算群犌犜中的元素狑狌狋,按照中和给出的细节将狑的数据类型转换为比特串;:

计算整数犺犎(犕狑,犖),检验犺犺是否成立,若成立则验证通过;否则验证不通过。

犌犅犜数字签名验证算法流程数字签名验证算法流程如图所示。

图数字签名验证算法流程犌犅犜密钥交换协议及流程系统加密主密钥和用户加密密钥的产生产生随机数犽犲,犖作为加密主私钥,计算犌中的元素犘狆狌犫犲犽犲犘作为加密主公钥,则加密主密钥对为(犽犲,犘狆狌犫犲)。

秘密保存犽犲,公开犘狆狌犫犲。

选择并公开用一个字节表示的加密私钥生成函数识别符犺犻犱。

用户和用户的标识分别为犐犇和犐犇。

为产生用户的加密私钥犱犲,首先在有限域犉犖上计算狋犎(犐犇犺犻犱,犖)犽犲,若狋则需重新产生加密主私钥,计算和公开加密主公钥,并更新已有用户的加密私钥;否则计算狋犽犲狋,然后计算犱犲狋犘。

为产生用户的加密私钥犱犲,首先在有限域犉犖上计算狋犎(犐犇犺犻犱,犖)犽犲,若狋则需重新产生加密主私钥,计算和公开加密主公钥,并更新已有用户的加密私钥;否则计算狋犽犲狋,然后计算犱犲狋犘。

密钥交换协议设用户和用户协商获得密钥数据的长度为犽犾犲狀比特,用户为发起方,用户为响应方。

用户和用户双方为了获得相同的密钥,应实现如下运算步骤:

用户:

计算群犌中的元素犙犎(犐犇犺犻犱,犖)犘犘狆狌犫犲;:

产生随机数狉,犖;:

计算群犌中的元素犚狉犙;:

将犚发送给用户。

用户:

计算群犌中的元素犙犎(犐犇犺犻犱,犖)犘犘狆狌犫犲;:

产生随机数狉,犖;:

计算群犌中的元素犚狉犙;:

按照中给出的细节验证犚犌是否成立,若不成立则协商失败;否则计算群犌犜中的元素犵犲(犚,犱犲),犵犲(犘狆狌犫犲,犘)狉,犵犵狉,按照中和给出的细节将犵,犵,犵的数据类型转换为比特串;:

按照中和给出的细节把犚和犚的数据类型转换为比特串,计算犛犓犓犇犉(犐犇犐犇犚犚犵犵犵,犽犾犲狀);:

(选项)计算犛犎犪狊犺(犵犎犪狊犺(犵犵犐犇犐犇犚犚);:

将犚、(选项犛)发送给用户。

用户:

按照中给出的细节验证犚犌是否成立,若不成立则协商失败;否则计算群犌犜中的元素犵犲(犘狆狌犫犲,犘)狉,犵犲(犚,犱犲),犵(犵)狉,按照中和给出的细节将犵,犵,犵的数据类型转换为比特串;:

按照中和给出的细节把犚和犚的数据类型转换为比特串,(选项)计算犛犎犪狊犺(犵犎犪狊犺(犵犵犐犇犐犇犚犚),并检验犛犛是否成立,若等式不成立则从到的密钥确认失败;:

计算犛犓犓犇犉(犐犇犐犇犚犚犵犵犵,犽犾犲狀);:

(选项)计算犛犎犪狊犺(犵犎犪狊犺(犵犵犐犇犐犇犚犚),并将犛发送犌犅犜给用户。

用户:

(选项)计算犛犎犪狊犺(犵犎犪狊犺(犵犵犐犇犐犇犚犚),并检验犛犛是否成立,若等式不成立则从到的密钥确认失败。

密钥交换协议流程密钥交换协议流程如图所示。

图密钥交换协议流程密钥封装机制及流程犌犅犜系统加密主密钥和用户加密密钥的产生产生随机数犽犲,犖作为加密主私钥,计算犌中的元素犘狆狌犫犲犽犲犘作为加密主公钥,则加密主密钥对为(犽犲,犘狆狌犫犲)。

秘密保存犽犲,公开犘狆狌犫犲。

选择并公开用一个字节表示的加密私钥生成函数识别符犺犻犱。

用户和的标识分别为犐犇和犐犇。

为产生用户的加密私钥犱犲,首先在有限域犉犖上计算狋犎(犐犇犺犻犱,犖)犽犲,若狋则需重新产生加密主私钥,计算和公开加密主公钥,并更新已有用户的加密私钥;否则计算狋犽犲狋,然后计算犱犲狋犘。

为产生用户的加密私钥犱犲,首先在有限域犉犖上计算狋犎(犐犇犺犻犱,犖)犽犲,若狋则需重新产生加密主私钥,计算和公开加密主公钥,并更新已有用户的加密私钥;否则计算狋犽犲狋,然后计算犱犲狋犘。

密钥封装算法为了封装比特长度为犽犾犲狀的密钥给用户,作为封装者的用户需要执行以下运算步骤:

计算群犌中的元素犙犎(犐犇犺犻犱,犖)犘犘狆狌犫犲;:

产生随机数狉,犖;:

计算群犌中的元素犆狉犙,按照中和给出的细节将犆的数据类型转换为比特串;:

计算群犌犜中的元素犵犲(犘狆狌犫犲,犘);:

计算群犌犜中的元素狑犵狉,按照中和给出的细节将狑的数据类型转换为比特串;:

计算犓犓犇犉(犆狑犐犇,犽犾犲狀),若犓为全比特串,则返回;:

输出(犓,犆),其中犓是被封装的密钥,犆是封装密文。

密钥封装算法流程密钥封装算法流程如图所示。

犌犅犜图密钥封装算法流程解封装算法用户收到封装密文犆后,为了对比特长度为犽犾犲狀的密钥解封装,需要执行以下运算步骤:

按照中给出的细节验证犆犌是否成立,若不成立则报错并退出;:

计算群犌犜中的元素狑犲(犆,犱犲),按照中和给出的细节将狑的数据类型转换为比特串;:

按照中和给出的细节将犆的数据类型转换为比特串,计算封装的密钥犓犓犇犉(犆狑犐犇,犽犾犲狀),若犓为全比特串,则报错并退出;:

输出密钥犓。

解封装算法流程解封装算法流程如图所示。

犌犅犜图解封装算法流程加密算法及流程系统加密主密钥和用户加密密钥的产生产生随机数犽犲,犖作为加密主私钥,计算犌中的元素犘狆狌犫犲犽犲犘作为加密主公钥,则加密主密钥对为(犽犲,犘狆狌犫犲)。

秘密保存犽犲,公开犘狆狌犫犲。

选择并公开用一个字节表示的加密私钥生成函数识别符犺犻犱。

用户和的标识分别为犐犇和犐犇。

为产生用户的加密私钥犱犲,首先在有限域犉犖上计算狋犎(犐犇犺犻犱,犖)犽犲,若狋则需重新产生加密主私钥,计算和公开加密主公钥,并更新已有用户的加密私钥;否则计算狋犽犲狋,然后计算犱犲狋犘。

为产生用户的加密私钥犱犲,首先在有限域犉犖上计算狋犎(犐犇犺犻犱,犖)犽犲,若狋则需重新产生加密主私钥,计算和公开加密主公钥,并更新已有用户的加密私钥;否则计算狋犽犲狋,然后计算犱犲狋犘。

加密算法设需要发送的消息为比特串犕,犿犾犲狀为犕的比特长度,犓犾犲狀为分组密码算法中密钥犓的比特长度,犓犾犲狀为函数犕犃犆(犓,犣)中密钥犓的比特长度。

为了加密明文犕给用户,作为加密者的用户应实现以下运算步骤:

计算群犌中的元素犙犎(犐犇犺犻犱,犖)犘犘狆狌犫犲。

犌犅犜:

产生随机数狉,犖。

计算群犌中的元素犆狉犙,按照中和给出的细节将犆的数据类型转换为比特串。

计算群犌犜中的元素犵犲(犘狆狌犫犲,犘)。

计算群犌犜中的元素狑犵狉,按照中和给出的细节将狑的数据类型转换为比特串。

按加密明文的方法分类进行计算:

)如果加密明文的方法是基于密钥派生函数的序列密码算法,则:

)计算整数犽犾犲狀犿犾犲狀犓犾犲狀,然后计算犓犓犇犉(犆狑犐犇,犽犾犲狀)。

令犓为犓最左边的犿犾犲狀比特,犓为剩下的犓犾犲狀比特,若犓为全比特串,则返回;)计算犆犕犓。

)如果加密明文的方法是结合密钥派生函数的分组密码算法,则:

)计算整数犽犾犲狀犓犾犲狀犓犾犲狀,然后计算犓犓犇犉(犆狑犐犇,犽犾犲狀)。

令犓为犓最左边的犓犾犲狀比特,犓为剩下的犓犾犲狀比特,若犓为全比特串,则返回;)计算犆犐犞犈狀犮(犓,犕,犐犞),犆的结构中前个字节为犐犞值,且仅当分组密码算法模式为非(见)时初始化向量犐犞才有效,其中犈狀犮分组密码算法遵循,填充方式为将密钥模长度犽(明文长度犾犽)值,即作为填充数,也作为填充个

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 信息与通信

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2