基于SM2的代理保护代理签名的设计与实现

2017-11-10 07:55郭青霄张大伟常亮刘晓东宋靖文
网络与信息安全学报 2017年9期
关键词:签名者数字签名公钥

郭青霄,张大伟,常亮,刘晓东,宋靖文



基于SM2的代理保护代理签名的设计与实现

郭青霄1,张大伟1,常亮2,刘晓东3,宋靖文1

(1. 北京交通大学计算机与信息技术学院,北京 100044;2. 桂林电子科技大学广西可信软件重点实验室,广西桂林 541004;3. 山东大学网络信息安全研究所,山东济南 250000)

基于国产密码算法SM2数字签名标准,设计了一种代理保护代理签名方案。通过对代理授权机制的设计,实现了对代理签名者的保护;通过对SM2数字签名算法的改进,实现了代理者代表原始签名者的代理签名;安全分析表明,设计的算法具有可验证性、可识别性、可区分性、不可否认性和强不可伪造性。最后,利用C语言及Polarssl库对该方案进行了实现,并与SM2数字签名进行了性能比较。分析表明,该算法在性能上具有较好的可用性。

椭圆曲线;代理签名;代理保护代理签名;SM2数字签名

1 引言

1985年,N.Koblitz和V.Miller各自独立地提出了椭圆曲线公钥密码(ECC, elliptic curve cryptography)[1]。该密码体制的安全性主要基于椭圆曲线离散对数问题(ECDLP, elliptic curve discrete logarithm problem)的困难性。与传统离散对数问题相比,ECDLP的求解难度要大得多,目前解决方法的计算复杂度都是指数级别的。文献[2]指出在相同安全强度下,椭圆曲线密码较其他公钥密码所需的密码规模要小很多。ECC的优势使其成为最具发展潜力和应用前景的公钥密码算法。在此背景下,我国开始组织和研究自主知识产权的ECC,于2004年研制完成了SM2算法,并于2016年8月成为中国国家密码标准(标准号为GB/T 32918-2016)[3,4]。目前研究表明,256 bit的SM2算法与2 048 bit的RSA算法具有相同的安全等级。

1996年,Mambo、Usuda 和 Okamoto等[5]提出了代理签名的概念。现有的代理签名方案大多是基于离散对数问题与大数因子分解问题的。2003年,白国强等[6]将代理签名思想应用于椭圆曲线密码,提出了基于椭圆曲线的代理签名方案,但该方案并没有完全满足对代理签名者的保护等性质;2005年,张宁等[7]对白国强等[6]提出的方案进行研究分析,在代理签名的安全性方面做了改进,提出了代理保护代理签名方案;2008年,Chang等[8]提出了基于ECDSA的代理保护代理签名方案。2010年,胡兰兰等[9]提出了另一种改进的安全代理签名方案。

但截至目前,代理保护代理签名方案主要是在ECDSA的基础上进行研究的。本文将代理签名思想与国密算法SM2相结合,产生了一种新的代理签名方案,即基于SM2的代理保护代理签名方案,同时分析了这一方案的安全性与复杂性。该方案不仅满足代理签名的一般性质,还满足了文献[10]所提出的强不可伪造的性质,实现了对代理签名者的保护。

2 代理签名

2.1 代理签名简介

1976年,Diffie和Hellman[11,12]利用公钥密码学的思想首次提出了数字签名概念。但在实际应用中,为满足签名权的安全传递等需求,需在数字签名的基础上进行扩展,从而产生了代理签名。文献[5]指出代理签名是指原始签名者可以授权代理者代表其行使签名权,验证者既能验证该签名的有效性,也能验证该签名是原始签名者所认可的[13]。

代理签名的过程至少包含4部分,即代理授权、授权验证及代理密钥的生成、代理签名的生成、代理签名的验证。其流程如图1所示。

图1 代理签名的基本流程

Mambo等将代理签名分成3种:完全代理签名、部分代理签名和具有证书的代理签名[10]。这里仅对部分代理签名进行介绍。

部分代理签名(partial delegation):原始签名者利用自己的私钥计算出一个新的代理私钥(为了安全考虑,要求不能由推导出),并通过安全通道将交给代理签名者,代理签名者可利用生成代理签名[14]。该方法有以下2种类型的实现方案。

代理非保护代理签名(proxy-unprotected proxy signature):除了原始签名者外,只有被授权的代理签名者能够产生代理签名,其他第三方不能产生代理签名。

代理保护代理签名(proxy-protected proxy signature):除了被授权的代理签名者能够产生代理签名之外,包括原始签名者在内的其他任何人均不能产生代理签名。

2.2 代理签名特点

根据代理签名的定义,文献[10]指出代理签名体制应具备以下性质。

1) 可验证性:验证者能够验证代理签名是有效的。

2) 可区分性:代理签名和原始签名能够被其他人所区分。

3) 不可伪造性:除了原始签名者及其授权的代理签名者之外,其他人不能产生有效的代理签名。

4) 可识别性:代理签名者的身份能够被原始签名者从有效的代理签名中识别出来。

5) 不可否认性:代理签名者不能在原始签名者面前否认自己所产生的签名。

文献[14,15]对上述的某些性质给出了更强的定义,以确保对原始签名者和代理签名者是公平的,举例如下。

6) 强不可伪造性:原始签名者以及任何没有被授权的人均不能创建有效的代理签名。

实际应用中的代理签名方案并不一定要满足以上所有性质,对于不同的应用场景可以提出不同的代理签名方案。

3 SM2数字签名

SM2算法的主要内容包括3部分:数字签名算法、密钥协商协议和公钥加密算法。SM2的数字签名部分适用于商用密码中的数字签名和验证。在GM/T 0003中规定了SM2椭圆曲线公钥密码算法的数字签名算法。

3.1 SM2参数说明

():消息摘要函数。

3.2 数字签名的生成算法

3.3 数字签名的验证算法

文献[16]分析指出,SM2数字签名使用了用户的参数及其系统参数,提高了系统的安全性和认证性;并且加入了较多的校验功能,提高了签名验证系统的数据完整性和系统可靠性。

4 基于SM2的代理保护代理签名

本节将上述SM2数字签名体制与代理签名思想相结合,设计了一种基于SM2的代理保护代理签名算法。在该算法中,代理签名人Bob将代表原始签名人Alice签名,验证者Carol对产生的代理签名进行验证。

4.1 参数说明

本节使用的部分参数与3.1节中的参数一致,另外:

4.2 代理签名的流程

根据图1代理签名的基本流程,算法主要进行了4部分,其中A、B、C分别代表Alice、Bob、Carol的操作。

4.2.1 代理授权

在代理授权过程,原始签名者Alice与代理签名者Bob要进行信息交互,Alice根据交互信息生成授权信息,具体过程如下。

其次,Alice会进行下面的运算步骤。

A3:计算椭圆曲线上的另一个点G=(1,1)=[k]G

4.2.2 授权验证及代理密钥生成

当Bob收到授权信息后,他首先要对授权信息进行验证,确定授权信息确实来自原始签名者Alice,具体过程如下。

B4:计算椭圆曲线上另一点

4.2.3 代理签名的生成

B7~B9同3.2节中的A1~A3。

4.2.4 代理签名的验证

C1~C5同3.3节中的B1~B5。

4.3 代理签名方案的正确性和可验证性

1) 代理委托授权验证的正确性

又因为

2) 代理签名的可验证性

定理2 该方案具有可验证性,即验证者可以验证代理签名的有效性。

方程两边同时乘以G,则有

上述过程证明了该算法满足代理签名可验证的性质,并且验证者可以直接使用原始签名者的公钥进行验证。

4.4 安全性分析

本节讨论几种针对拟议方案的安全性的可能攻击,该方案的安全性是基于以下两点:1) 散列函数单向性;2) ECDLP的困难性。

攻击场景1 原始签名者伪造有效的代理签名。

此处分析表明,原始签名者不能伪造代理签名,即满足强不可伪造的性质,。

攻击场景4 攻击者假冒代理签名者,在代理授权过程与原始签名者交互产生代理密钥以进行中间人攻击。

借助于权威机构对原始签名者和代理签名者的公钥生成的数字证书可以有效地防止该中间人攻击。

4.5 方案所满足的性质

1) 可验证性

在4.3节中的定理2证明了该性质。

2) 可区分性

验证者可以利用原始签名的验证公式以及代理签名的验证公式对原始签名和代理签名进行区分。

3) 强不可伪造性

通过对4.4节攻击情景1的分析,可以确定该方案具有强不可伪造性。

4) 可识别性

5) 不可否认性

由4.2.1节可得,由于进行了身份绑定所以代理签名者不能在原始签名者面前否认自己的签名。

5 实验分析

为了测试所提出的方案的正确性,本文使用Microsoft Visual Studio 2010工具以及C/C++编程语言,在64位Windows操作系统上采用Polarssl中的密码算法,实现了基于SM2的代理保护代理签名算法。

5.1 实验参数

SM2使用的素数域256位椭圆曲线的曲线参数如下。

=FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF

FFFFFFFF 00000000 FFFFFFFF FFFFFFFF

=FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF

FFFFFFFF 00000000 FFFFFFFF FFFFFFFC

=28E9FA9E 9D9F5E34 4D5A9E4B CF6509A7

F39789F5 15AB8F92 DDBCBD41 4D940E93

=FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF

7203DF6B 21C052B 53BBF409 39D54123

x=32C4AE2C 1F198119 5F990446 6A39C994

8FE30BBF F2660BE1 715A4589 334C74C7

y=BC3736A2 F4F6779C 59BDCEE3 6B692153

D0A9877C C62A4740 02DF32E5 2139F0A0

其中,是椭圆曲线上的一个基点。

实验中对基于SM2代理保护代理签名的参数的输出如图2所示。

代理授权阶段的输出如图3所示。

授权验证及代理密钥生成阶段的输出如图4所示。

代理签名阶段的输出如图5所示。

代理签名验证阶段的输出如图6所示。

图2 基于SM2代理保护代理签名的参数

图3 代理授权阶段

图4 授权验证及代理密钥生成阶段

图5 代理签名阶段

5.2 方案的复杂性分析

实验中对标准SM2数字签名与SM2代理保护代理签名的签名验签速度进行了多次测试,计算了两者的平均时间如表2所示。

图6 代理签名验证阶段

表1 该方案与标准SM2数字签名计算复杂度比较

表2 该方案与标准SM2数字签名签名验签速度比较

6 结束语

本文将代理签名思想应用于SM2数字签名,提出了基于SM2的代理保护代理签名方案,同时对该方案进行了安全性和复杂性的分析。分析表明,该方案不仅满足代理签名的安全性,还实现了对代理签名者的保护。实验结果表明,本方案的签名验签速度稍慢于SM2数字签名,但仍具有较好的可用性。

[1] NEAL K. Elliptic curve cryptosystems[J]. Mathematics of Computation, 1987, 48(177): 203-209.

[2] 杜洁璇. 椭圆曲线密码系统的研究与实现[D]. 北京: 北京邮电大学, 2010. DU J X. Elliptic curve cryptography system research and implementation[D]. Beijing: Beijing University of Posts and Telecommunications, 2010.

[3] 李湛. 一种改进的椭圆曲线密码实现算法[J]. 电子科技, 2004(7): 31-33. LI Z. An improved algorithm for Elliptic curve cryptography [J]. Electronic Science and Technology, 2004 (7): 31-33.

[4] 汪朝晖, 张振峰. SM2椭圆曲线公钥密码算法综述[J]. 信息安全研究. 2016, 2(11): 972-982. WANG ZH , ZHANG Z F. Overview of SM2 Elliptic curve public key cryptography [J]. Information Security Research, 2016, 2 (11): 972-982.

[5] MAMBO M, USUDA K, OKAMOTO E. Proxy signatures for delegating signing operation[C]. ACM Conference on Computer and Communications Security, 1996: 48-57.

[6] 白国强, 黄谆, 陈弘毅, 等. 基于椭圆曲线的代理数字签名[J]. 电子学报, 2003, 31(11): 1659-1663. BAI G Q, HUANG Z, CHEN H Y, et al. Proxy digital signature based on elliptic curve [J]. Acta Electronic Journal. 2003, 31 (11): 1659-1663.

[7] 张宁, 傅晓彤, 肖国镇. 对基于椭圆曲线的代理签名的研究与改进[J]. 西安电子科技大学学报, 2005, 32(2): 280-283. ZHANG N, FU X T, XIAO G Z. Study and improvement of agent signature based on Elliptic Curve[J]. Journal of Xidian University, 2005, 32 (2): 280-283.

[8] CHANG M H, CHEN I T, CHEN M T. Design of Proxy Signature in ECDSA[C]//Eighth International Conference on Intelligent Systems Design and Applications, 2008. 2008: 17-22.

[9] 胡兰兰, 郑康锋, 杨义先, 等. 一种改进的椭圆曲线安全代理签名方案倡[J]. 计算机应用研究. 2010, 27(2). HU L L, ZHENG K F, YANG Y X, et al. An improved elliptic curve security proxy signature scheme [J]. Journal of Computer Applications,2010, 27 (2).

[10] 李继国, 曹珍富, 李建中, 等. 代理签名的现状与进展[J]. 通信学报, 2003(10): 114-124. LI J G, CAO Z F, LI J Z, et al. Status and progress of proxy signature [J] . Journal of Communications, 2003 (10): 114-124.

[11] DIFFIE W, HELLMAN M. Multiuser cryptographic techniques[J]. Proceedings of AFIPS 1976 NCC, 1976: 109-112.

[12] DIFFIE W. The first ten years of public-key Cryptography[J]. IEEE, 1992: 135-175.

[13] 周亮. 代理签名及扩展的关键问题研究[D]. 北京:北京邮电大学, 2008. ZHOU L. Proxy signature and expansion of the key issues[D]. Beijing: Beijing University of Posts and Telecommunications, 2008.

[14] LEE B, KIM H, KIM K. Strong proxy signature and its applications[J]. SCIS. 2001.

[15] VARADHARAJAN V, ALLEN P, BLACK S. An analysis of the proxy problem in distributed systems[C]// 1991 IEEE Computer Society Symposium on Research in Security and Privacy 1991: 255-275.

[16] 张焕国. SM2数字签名算法[EB/OL]. 2015.https://wenku.baidu.com/view/9dbf8a3d04a1b0717ed5dd12.html.ZHANG H G. SM2 digital signature algorithm[EB/OL]. https:// wenku.baidu.com/view/9dbf8a3d04a1b0717ed5dd12.html.

Design and implementation of proxy-protected proxy signature based on SM2

GUO Qing-xiao1, ZHANG Da-wei1, CHANG Liang2, LIU Xiao-dong3, SONG Jing-wen1

(1. School of Computer and Information Technology, Beijing Jiaotong University, Beijing 100044, China;2. Guangxi Key Laboratory of Trusted Software, Guilin University of Electronic Technology,Guilin 541004, China;3. Institute of Network Information Security, Shandong University, Jinan 250000, China)

Based on the SM2 digital signature standard, a proxy-protected proxy signature scheme was designed. Through the design of the agent authorization mechanism, the protection of the proxy signer was realized. The proxy signature was realized by the proxy signer who represents the original signer through the improvement of the SM2 digital signature algorithm. The security analysis shows that the designed algorithm is verifiable, identifiable, distinguishable, non-repudiation, and strong unforgeability. Finally, the program was implemented using the C language and the Polarssl library, and the performance was compared with the SM2 digital signature. The analysis shows that the algorithm has good usability in performance.

elliptic curve, proxy signature, proxy-protected proxy signature, SM2 digital signature

TP391.1

A

10.11959/j.issn.2096-109x.2017.00192

2017-07-06;

2017-08-27。

张大伟,dwzhang@bjtu.edu.cn

国家自然科学基金资助项目(No.61672091);广西可信软件重点实验室研究课题基金资助项目(No.KX201531)

The National Natural Foundation of China (No.61672091), KeyLaboratory of Trusted Software (No.KX201531)

郭青霄(1992-),女,山东聊城人,北京交通大学硕士生,主要研究方向为支付安全、密码学货币。

张大伟(1974-),男,辽宁朝阳人,博士,北京交通大学副教授,主要研究方向为智能卡安全、支付安全和区块链技术。

常亮(1980-),男,贵州赫章人,博士,桂林电子科技大学教授,主要研究方向为知识表示与推理、可信计算。

刘晓东(1975-),男,山东潍坊人,博士,山东大学讲师,主要研究方向为信息安全及密码学。

宋靖文(1995-),女,河北衡水人,北京交通大学硕士生,主要研究方向为支付安全、密码货币。

猜你喜欢
签名者数字签名公钥
浅析计算机安全防护中数字签名技术的应用
劳动者代签名 用人单位应否支付双倍工资
一种基于混沌的公钥加密方案
神奇的公钥密码
P2X7 receptor antagonism in amyotrophic lateral sclerosis
基于变形ElGamal签名体制的强盲签名方案
基于数字签名的QR码水印认证系统
数字签名简述
SM2椭圆曲线公钥密码算法综述
掌握方法用好数字签名