一种椭圆曲线公钥文本化传递方法及系统技术方案

技术编号:21227979 阅读:28 留言:0更新日期:2019-05-29 08:30
本发明专利技术公开了一种椭圆曲线公钥文本化传递方法及系统。本方法为:1)对公钥P进行压缩,得到压缩后的公钥P’;2)选取2

A Textual Transfer Method and System for Elliptic Curve Public Key

The invention discloses an elliptic curve public key text transfer method and system. The method is as follows: 1) Compressing the public key P to get the compressed public key P'; 2) Selecting 2.

【技术实现步骤摘要】
一种椭圆曲线公钥文本化传递方法及系统
本专利技术属于密码
,尤其涉及一种应用于椭圆曲线密码算法中公钥的文本化传递方法及系统。
技术介绍
基于公钥密码学的加解密技术应用广泛,成为保证信息安全的重要工具,尤其是在数据加密、数字签名等方面发挥着巨大的作用。公钥密码算法中有一对公私钥,私钥应被保密存储,而公钥应该被公开。在实际的情境中,在使用公钥密码算法时,使用合适的方式来公开自己的公钥是必要的一步。对普通大众来说,使用公钥加密算法可以实现自己与他人之间的数据加密传输,而将自己的公钥便利地分享给他人并有效的管理、使用公钥仍是一个障碍。椭圆曲线密码算法是一种公钥加密算法,也称非对称加密算法。公钥加密算法含有两个密钥:公钥密码(简称公钥)和私有密钥(简称私钥),用户同时拥有私钥和公钥这一对密钥,其实私钥为自己保存不可公开,公钥可被公开被任何人使用。公钥加密算法一般用于加密与数字签名等方面。用户A拥有其私钥与公钥,并将公钥公开给用户B:在用于加密时,用户B将要传递的消息使用A的公钥加密后传递给A,被加密后的消息只能由拥有私钥的用户A来解密;在用于数字签名时,用户A将待签名的消息使用自己的私钥计算出数字签名,将消息与数字签名一并发送给用户B,用户B可用A的公钥来鉴别该消息是否真的来自于A。公钥加密体系中,双方无需使用私密信道来传递任何秘密信息,只需将一方的公钥以任何公开的形式传递给对方,双方即可进行加密通信。SM2算法是中国的标准商用密码算法,属于椭圆曲线算法,在密码产品中被广泛的支持和使用。SM2圆曲线算法的具体细节参考GM/T0003-2012《SM2椭圆曲线公钥密码算法》。SM2算法中的椭圆曲线E是定义在有限域Fq上的椭圆曲线,G是椭圆曲线E上n阶的基点,椭圆曲线方程为y2=x3+ax+b,其中a和b为常数。SM2算法中公钥为椭圆曲线上点P的坐标,共512比特,考虑以文本的形式表示公钥数据,使用常规的十六进制表示法,需要128字符,字符数量较多,用户间传递不便,体验较差。
技术实现思路
针对现有技术中存在的技术问题,本专利技术的目的在于提供一种椭圆曲线公钥的文本化传递方法及系统,以使得通信双方或多方能以简单的方式向对方分享自身的公钥同时有效地管理他人的公钥,为使用公钥密码算法进行后续的保密通信奠定基础。本专利技术的技术方案为:一种椭圆曲线公钥的文本化传递方法,其步骤包括:1)使用椭圆曲线上点压缩方法对公钥P进行压缩,得到压缩后的公钥P’;其中公钥P为椭圆曲线上坐标点P的坐标;2)选取2k个汉字组成数组C,用C[i]表示数组C中的第i个字符;k为一个汉字字符的二进制位数;根据公钥P’的长度确定编码公钥P所需汉字个数n;3)设置一保留位OP,然后根据该公钥P’与该保留位OP生成一比特串M;4)将比特串M以每块k位的方式按序拆分为n块,对于每一块中的k位比特串,将其转化为十进制数i,取出数组C中第i个字符C[i]表示该块数据,依次将代表n块数据的n个字符拼接后形成新的字符串S;用该字符串S表示该公钥P;5)将该字符串S与设定的附加信息拼接为字符串L发送给目标接收端;或者生成一内容为所述字符串L的二维码展示给目标接收端。进一步的,k取值为13,即选取8192个汉字组成数组C,n取值为20。进一步的,从《全国信息技术标准化技术委员会汉字内码扩展规范(GBK)》中选取8192个无重复汉字作为字符集。进一步的,所述保留位OP的长度为n个汉字的比特长度减去公钥P’的比特长度;保留位OP用以表示编码标记或其他用途;所述比特串M=OP||yp’||xp,其中“||”表示拼接,xp为公钥P的x坐标,yp’为公钥P的1比特的y坐标标识位。进一步的,所述附加信息包括个人身份信息、联系方式信息;用格式化的字符串来表示所述附加信息,所述附加信息中的各数据间使用分隔符来隔开并拼接在一起。进一步的,设置一描述性前缀信息,将该描述性前缀信息、字符串S与设定的附加信息依次拼接为字符串L。进一步的,使用微信、QQ、短信或邮件的方式将所述字符串L发送给目标接收端。一种公钥文本进行解码的方法,其步骤包括:1)目标接收端从获取的字符串L中提取附加信息和字符串S;然后对字符串S中的每个字符,在数组C中找到其位置i,将十进制的i表示为二进制比特串,若不足k位则采用高位补0的方式填充为k位;2)将转换后的n个k位比特串按序拼接,得到一比特串M;3)根据公钥P的短汉字编码过程中该比特串的生成规则,从该比特串M中提取保留位OP、公钥P的1比特的y坐标标识位yp’以及公钥P的x坐标xp;4)计算域元素α=(xp3+axp+b)modp,计算αmodp的平方根β,若β的最右边比特等于yp’,则置yp=β,否则置yp=p-β;其中,a、b为椭圆曲线方程y2=x3+ax+b中的系数,公钥P为该椭圆曲线方程y2=x3+ax+b中的一点坐标;Fq为用于生成该公钥P的有限域,q=p且p为大于3的素数;5)根据解码出的xp、yp得到公钥P。一种椭圆曲线公钥的文本化传递系统,其特征在于,包括公钥生成模块、公钥分享模块;其中,所述公钥生成模块,用于检查当前用户是否已有椭圆曲线公私钥对,若无则对当前用户生成一对公私钥;然后使用椭圆曲线上点压缩方法对公钥P进行压缩,得到压缩后的公钥P’;然后根据公钥P’的长度确定编码公钥P所需汉字个数n,并根据该公钥P’与设置的保留位OP生成一比特串M;然后将比特串M以每块k位的方式按序拆分为n块,对于每一块中的k位比特串,将其转化为十进制数i,取出数组C中第i个字符C[i]表示该块数据,依次将代表n块数据的n个字符拼接后形成新的字符串S;用该字符串S表示该公钥P;然后将该字符串S与设定的附加信息拼接为字符串L发送给目标接收端;其中,公钥P为椭圆曲线上坐标点P的坐标;数组C包括2k个汉字,C[i]表示数组C中的第i个字符;k为一个汉字字符的二进制位数;公钥分享模块,用于将该字符串L发送给目标接收端;或者生成一内容为所述字符串L的二维码展示给目标接收端。进一步的,还包括一公钥解析模块,用于从获取的字符串L中提取附加信息和字符串S;然后对字符串S中的每个字符,在数组C中找到其位置i,将十进制的i表示为二进制比特串,若不足k位则采用高位补0的方式填充为k位;然后将转换后的n个k位比特串按序拼接,得到一比特串M;然后根据公钥P的短汉字编码过程中该比特串的生成规则,从该比特串M中提取保留位OP、公钥P的1比特的y坐标标识位yp’以及公钥P的x坐标xp;然后计算域元素α=(xp3+axp+b)modp,计算αmodp的平方根β,若β的最右边比特等于yp’,则置yp=β,否则置yp=p-β;根据解码出的xp、yp得到公钥P;其中,a、b为椭圆曲线方程y2=x3+ax+b中的系数,公钥P为该椭圆曲线方程y2=x3+ax+b中的一点坐标;Fq为用于生成该公钥P的有限域,q=p且p为大于3的素数。本专利技术中使用了一种对于椭圆曲线公钥的“短汉字编码”,椭圆曲线公钥为椭圆曲线上点P的坐标,其中X、Y坐标共计512比特,使用普通的十六进制表示法需要128字符。“短汉字编码”在GM/T0003-2012《SM2椭圆曲线公钥密码算法》中提出的“椭圆曲线上点的压缩”方法的基础上,同时采本文档来自技高网
...

【技术保护点】
1.一种椭圆曲线公钥的文本化传递方法,其步骤包括:1)使用椭圆曲线上点压缩方法对公钥P进行压缩,得到压缩后的公钥P’;其中公钥P为椭圆曲线上坐标点P的坐标;2)选取2

【技术特征摘要】
1.一种椭圆曲线公钥的文本化传递方法,其步骤包括:1)使用椭圆曲线上点压缩方法对公钥P进行压缩,得到压缩后的公钥P’;其中公钥P为椭圆曲线上坐标点P的坐标;2)选取2k个汉字组成数组C,用C[i]表示数组C中的第i个字符;k为一个汉字字符的二进制位数;根据公钥P’的长度确定编码公钥P所需汉字个数n;3)设置一保留位OP,然后根据该公钥P’与该保留位OP生成一比特串M;4)将比特串M以每块k位的方式按序拆分为n块,对于每一块中的k位比特串,将其转化为十进制数i,取出数组C中第i个字符C[i]表示该块数据,依次将代表n块数据的n个字符拼接后形成新的字符串S;用该字符串S表示该公钥P;5)将该字符串S与设定的附加信息拼接为字符串L发送给目标接收端;或者生成一内容为所述字符串L的二维码展示给目标接收端。2.如权利要求1所述的方法,其特征在于,k取值为13,即选取8192个汉字组成数组C,n取值为20。3.如权利要求2所述的方法,其特征在于,从《全国信息技术标准化技术委员会汉字内码扩展规范(GBK)》中选取8192个无重复汉字作为字符集。4.如权利要求1或2所述的方法,其特征在于,所述保留位OP的长度为n个汉字的比特长度减去公钥P’的比特长度;保留位OP用以表示编码标记或其他用途;所述比特串M=OP||yp’||xp,其中“||”表示拼接,xp为公钥P的x坐标,yp’为公钥P的1比特的y坐标标识位。5.如权利要求1所述的方法,其特征在于,所述附加信息包括个人身份信息、联系方式信息;用格式化的字符串来表示所述附加信息,所述附加信息中的各数据间使用分隔符来隔开并拼接在一起。6.如权利要求1所述的方法,其特征在于,设置一描述性前缀信息,将该描述性前缀信息、字符串S与设定的附加信息依次拼接为字符串L。7.如权利要求1或6所述的方法,其特征在于,使用微信、QQ、短信或邮件的方式将所述字符串L发送给目标接收端。8.一种对权利要求1所述方法得到的公钥文本进行解码的方法,其步骤包括:1)目标接收端从获取的字符串L中提取附加信息和字符串S;然后对字符串S中的每个字符,在数组C中找到其位置i,将十进制的i表示为二进制比特串,若不足k位则采用高位补0的方式填充为k位;2)将转换后的n个k位比特串按序拼接,得到一比特串M;3)根据公钥P的短汉字编码过程中该比特串的生成规则,从该比特串M中提取保留位OP、公钥P的1比特...

【专利技术属性】
技术研发人员:王斌陈朝晖李彦初荆继武顾小卓马原
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1