一种基于ECC的同态加密盲签名方法

  • A+
所属分类:安全文章

摘要:在传统盲签名方案中,使用盲化因子来对数据进行盲化处理,盲化因子的产生需要一定的计算量,在签名运算过程中还会产生较大开销,并且盲化因子一旦泄露或者被攻破,盲签名的盲性便会被破解。采取使用同态加密的方式对签署文件进行盲化处理,构建一个基于ECC的盲签名方法,可消除盲化因子,有效降低系统开销,方法实现较为简单高效。

引言

数字签名技术是区块链中的一个关键技术,在共享信息的过程中,数字签名技术可以保证信息的安全性与隐私性。盲签名是一种特殊的数字签名,在盲签名的签名过程中,签名者也无法获取到待签名消息的具体内容,可有效的保护用户消息的隐私。
在常用的大部分盲签名方案中,使用盲化因子来对共享数据进行盲化处理。盲化因子一旦泄露或者被攻破,盲签名的安全性就会大为降低,并且盲化因子在签名算法过程中需要消耗极大的算力。对此,本文采用全同态密码对共享数据加密以起到盲化作用,并尝试基于ECC构建一个新的盲签名方法,这样签名系统不会因为盲因子的泄露而导致签名的安全性降低,同时还可提高签名运算过程的效率,降低系统的开销。

基本原理

1.1
盲签技术

盲签名是数字签名的一种子签名方案,对比传统数字签名,盲签名多了一个对消息进行盲化和脱盲处理的过程,这样可以更好的保证消息的安全性,保证签名者也无法获取到签名消息。如图1所示,消息拥有者在将消息发送给签名者之前,会先使用随机选取的盲化因子对消息m进行盲化处理得到m,再将盲化处理得到之后的盲化值发送给签名者,此时签名者对m运行签名算法,签名完成后将完成后的消息签名再还返回给发送者,最后发送者对接收到的签名消息进行脱盲处理,得到关于原消息的签名。 
一种基于ECC的同态加密盲签名方法
图1 盲签名过程
一个盲签名方案包含发送者(KeyGen), 签名者一种基于ECC的同态加密盲签名方法和验证者一种基于ECC的同态加密盲签名方法三个角色。并且还包含一组算法,分别为:密钥生成算法、签名算法和验证算法。

1.2
椭圆曲线密码系统

椭圆曲线密码系统(Elliptic Curve Cryptosystem ,ECC)相比较其它密码系统,具有密钥体积小,需要的带宽要求低的特点,在密码学上使用椭圆曲线密码系统去建立效率高、安全性强的数字签名方案有较大优势。密码学意义上的椭圆曲线方程一般情况下是如式( 1 )形式的3次方程:
一种基于ECC的同态加密盲签名方法
假设一种基于ECC的同态加密盲签名方法是加法G循环群的一个生成元,且一种基于ECC的同态加密盲签名方法一种基于ECC的同态加密盲签名方法为阶为P 的乘法循环群。若满足一种基于ECC的同态加密盲签名方法,均有且,一种基于ECC的同态加密盲签名方法即为双线性的。
当椭圆曲线处于有限域一种基于ECC的同态加密盲签名方法之上时,称之为素曲线。有限域一种基于ECC的同态加密盲签名方法上的椭圆曲线形式如下:
一种基于ECC的同态加密盲签名方法
将这种形式简化可表示为一种基于ECC的同态加密盲签名方法

1.3
全同态密码

本文采用文献提出的GSW全同态加密方案。GSW方案是在第一代FHE方案的基础上演化而来,针对FHE方案效率较低的缺点,GSW方案密钥尺寸更短,计算开销与加密噪声更小,拥有较高的加密效率。
同态加密算法一种基于ECC的同态加密盲签名方法由一组多项式时间算法组成一种基于ECC的同态加密盲签名方法,其中一种基于ECC的同态加密盲签名方法是密钥生成算法,一种基于ECC的同态加密盲签名方法是加密算法,一种基于ECC的同态加密盲签名方法是解密算法,是对密文所执行的同态计算算法。
一种基于ECC的同态加密盲签名方法为一个固定的函数。存在一个深度为L 的多项式函数一种基于ECC的同态加密盲签名方法,可用其去构造一个全同态加密方案。

盲签名方法设计

采用同态密码对明文进行加密,盲签名方法流程基于医疗区块链结构进行设计,如图2所示。 

一种基于ECC的同态加密盲签名方法
图2 盲签名方法流程
首先医院节点A使用同态密码对明文m进行盲化处理,将盲化处理得到的m发送给医院签名部门C;签名部门将椭圆曲线密码系统进行初始化,生成加密所需要的密钥,然后进行签名运算,生成签名一种基于ECC的同态加密盲签名方法;签名部门C再将签名结果返回医院节点A,节点A对一种基于ECC的同态加密盲签名方法进行脱盲运算,得到一种基于ECC的同态加密盲签名方法,最后医院节点B验证签名是否正确,如果正确就接受签名,否则拒绝签名。

2.1
初始化和密钥生成

在ECC初始化阶段,先在一条有限域一种基于ECC的同态加密盲签名方法上选择一条安全的椭圆曲线一种基于ECC的同态加密盲签名方法,存在某个安全参数K,选取一个高效率参数生成函数,输入参数,运行参数生成算法输出所需要的公共参数一种基于ECC的同态加密盲签名方法。选取双线性映射:一种基于ECC的同态加密盲签名方法,对于以及,有一种基于ECC的同态加密盲签名方法
在密钥生成阶段中,系统记录下椭圆曲线一种基于ECC的同态加密盲签名方法上的所有点,选择基点一种基于ECC的同态加密盲签名方法,n为基点G的阶,并满足一种基于ECC的同态加密盲签名方法,其中O为椭圆曲线上的无穷远点,一种基于ECC的同态加密盲签名方法和n是公共参数。公钥和私钥产生过程如下:
ECC随机在椭圆曲线上选择一个点,计算出公钥和私钥;签名者随机选择一个小于n的整数d,再计算出公钥一种基于ECC的同态加密盲签名方法,其中一种基于ECC的同态加密盲签名方法公钥是椭圆曲线一种基于ECC的同态加密盲签名方法上的一个点;发送者再随机选择整数一种基于ECC的同态加密盲签名方法,然后计算出私钥一种基于ECC的同态加密盲签名方法,由发送者单独保管私钥。

2.2
盲化处理

令k为一个安全参数,L为GSW全同态加密算法的层级深度。
( 1 ) 初始化一种基于ECC的同态加密盲签名方法
选择一种基于ECC的同态加密盲签名方法的一个模q,参数,一种基于ECC的同态加密盲签名方法的错误分布一种基于ECC的同态加密盲签名方法。输出:一种基于ECC的同态加密盲签名方法,令一种基于ECC的同态加密盲签名方法
( 2 ) 密钥生成一种基于ECC的同态加密盲签名方法
均匀选取一种基于ECC的同态加密盲签名方法,计算一种基于ECC的同态加密盲签名方法。选取随机公共矩阵一种基于ECC的同态加密盲签名方法和一个错误向量一种基于ECC的同态加密盲签名方法。向量一种基于ECC的同态加密盲签名方法,构造矩阵一种基于ECC的同态加密盲签名方法。通过一种基于ECC的同态加密盲签名方法返回一种基于ECC的同态加密盲签名方法
( 3 ) 盲化一种基于ECC的同态加密盲签名方法
令G为如上一种基于ECC的同态加密盲签名方法维的工具矩阵,并均匀选取一个随机矩阵一种基于ECC的同态加密盲签名方法,计算并生成密文一种基于ECC的同态加密盲签名方法

2.3
签名和脱盲处理

在消息m进行盲化处理后,把得到的文件m发送给签名者,签名者对m进行签名,即计算一种基于ECC的同态加密盲签名方法,然后签名者再把一种基于ECC的同态加密盲签名方法发送给请求签名者。
脱盲处理一种基于ECC的同态加密盲签名方法
( 1 输入私钥一种基于ECC的同态加密盲签名方法,令一种基于ECC的同态加密盲签名方法满足,一种基于ECC的同态加密盲签名方法的第一种基于ECC的同态加密盲签名方法层。
( 2 一种基于ECC的同态加密盲签名方法范围内计算一种基于ECC的同态加密盲签名方法;此处要注意一种基于ECC的同态加密盲签名方法,并且有一种基于ECC的同态加密盲签名方法一种基于ECC的同态加密盲签名方法 。选择C的第一种基于ECC的同态加密盲签名方法列对应于选择该向量的第一种基于ECC的同态加密盲签名方法个坐标,即一种基于ECC的同态加密盲签名方法
( 3 输出一种基于ECC的同态加密盲签名方法,如果一种基于ECC的同态加密盲签名方法返回0,如果一种基于ECC的同态加密盲签名方法,则返回1。
验证者收到签名一种基于ECC的同态加密盲签名方法之后,检查是否有一种基于ECC的同态加密盲签名方法,如果等式成立则接受该签名,否则拒绝该签名。

效率测试

从计算量、盲化时间、方法执行总时间三个方面将本文提出的盲签名方法与常见的一些盲签名方法进行对比测试。

3.1
计算量和盲化时间测试

比较数据来自于文献,使用Java语言在Eclipse开发环境中进行。将签名中的各种运算都用比较简单的模成运算m来表示,软件实现模乘运算、标量乘运算、双线性对运算等的运算次数的统计。其中运算效率如表1所示,盲签名的效率对比如表2所示。
表1 运算效率
一种基于ECC的同态加密盲签名方法
表2 效率对比
一种基于ECC的同态加密盲签名方法
盲化时间测试结果如图3所示。在测试过程中统计了其它一些常见的盲签名方案签名时间,分别为:ZHANG方案盲化时间为0.026秒;向新银方案盲化时间为0.034秒;黄茹芬方案盲化时间为0.023秒;何俊杰方案盲化时间为0.025秒;GAO方案盲化时间为0.031秒。通过比较可以看出本方案在盲化效率上有一定的优势。 

一种基于ECC的同态加密盲签名方法

图3 本盲签名方法的签名效率

3.2
执行总时间测试

使用1.28 G的RMVB文件进行签名测试,比较本方法与RSA盲签名、ECC盲签名方法的签名时间,对这3个方法进行了30次测试。同等测试环境下,如图4所示,两种常用的盲签名方法的执行总时间在17-19秒附近,本方法的执行总时间在14秒左右,相对具有较高的效率。
一种基于ECC的同态加密盲签名方法
图4  1.28G RMVB文件下效率对比

结语

本文通过同态加密算法对所签署文件进行加密处理,替代了传统盲化因子,并基于ECC构建了一个盲签名方法。经过测试,在签名及验证阶段的效率相对盲化因子签名方案有较明显的提升,将本方法应用到共享医疗信息系统中,可在保护用户隐私及信息安全性的基础上,简化系统复杂度,提高系统执行效率。


原文来源:信息安全与通信保密杂志社

一种基于ECC的同态加密盲签名方法

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: