首页> 中国专利> 一种基于椭圆曲线与指纹模糊金库的共享密钥保护方法

一种基于椭圆曲线与指纹模糊金库的共享密钥保护方法

摘要

本发明涉及一种基于椭圆曲线与指纹模糊金库的密钥安全保护方法,为通信双方提供一种共享密钥从安全生成到安全存储的方法。本发明包括一种基于椭圆曲线的共享密钥安全生成及指纹模糊金库实现的共享密钥安全存储方法。共享密钥安全存储方法包括共享密钥绑定指纹模糊金库阶段、共享密钥提取阶段。本发明利用椭圆曲线算法生成共享密钥的方法与有限乘法群方法比较,具有更强的安全性、更高的实现效率、更低的实现代价;利用指纹模糊金库安全存储共享密钥的方法,只有在具备合法用户及合法指纹下才能提取到带有CRC校验功能的共享密钥,保证了共享密钥安全存储所要求的机密性、完整性、可用性。

著录项

  • 公开/公告号CN104320247A

    专利类型发明专利

  • 公开/公告日2015-01-28

    原文格式PDF

  • 申请/专利权人 杭州电子科技大学;

    申请/专利号CN201410487457.X

  • 发明设计人 游林;陈宇磊;

    申请日2014-09-22

  • 分类号H04L9/08(20060101);

  • 代理机构33200 杭州求是专利事务所有限公司;

  • 代理人杜军

  • 地址 310018 浙江省杭州市下沙高教园区2号大街

  • 入库时间 2023-12-17 04:36:06

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-03-14

    专利实施许可合同备案的生效 IPC(主分类):H04L 9/08 专利申请号:201410487457X 专利号:ZL201410487457X 合同备案号:X2023980032718 让与人:杭州电子科技大学 受让人:浙江中电远为科技有限公司 发明名称:一种基于椭圆曲线与指纹模糊金库的共享密钥保护方法 申请日:20140922 申请公布日:20150128 授权公告日:20170912 许可种类:普通许可 备案日期:20230227

    专利实施许可合同备案的生效、变更及注销

  • 2017-09-12

    授权

    授权

  • 2015-02-25

    实质审查的生效 IPC(主分类):H04L9/08 申请日:20140922

    实质审查的生效

  • 2015-01-28

    公开

    公开

说明书

技术领域

本发明属于密码学与生物特征识别技术领域,具体涉及椭圆曲线上 的共享密钥安全生成方法与基于指纹模糊金库的共享密钥安全存储方 法。

背景技术

椭圆曲线理论是代数几何、数论等多个数学分支的一个交叉点, 1985年由Neal Koblitz和Victor Miller将椭圆曲线和密码学完美结合, 提出了椭圆曲线密码机制,已经逐渐成为公钥密码学领域的一个重要研 究课题。相对于建立在大整数分解问题难解性之上的RSA密码机制,建 立在椭圆曲线离散对数问题难解性之上的ECC具有更强的安全性、更高 的实现效率、更低的实现代价,已经在很多主流安全系统中得到了应用, 并已逐渐被国际各大标准组织采纳做为公钥密码标准。

在2002年A.Juels和M.Sudan提出了“A Fuzzy Vault Scheme”。在 其提出的模糊金库算法中,将用户唯一的特征集合或其他属性集合A混 合用户的密钥进入基于Reed-Solomn的金库中。用户可以利用与集合A 有绝大多数元素相同的属性集合B恢复出密钥。U.Uludag等人提出了一 种基于指纹特征的模糊金库算法,该算法在生成指纹密钥之前首先对模 板和输入的指纹进行校准消除由于旋转等引起的角度变化,参与比对的 是指纹细节点的平面坐标值、方向场、细节点类型,如果前后两个指纹 的某两个点的平面坐标值、方向场相差在一个阈值之内,细节点类型相 同,则认为是相同的点。基于指纹特征的模糊金库方案可以用于保护安 全存储共享密钥。

使用基于椭圆曲线共享密钥安全产生方法和指纹模糊金库方案的 共享密钥安全存储方法为核心的本发明,安全性保障由椭圆曲线离散对 数问题的难解性以及用户生物特征唯一性提供。

发明内容

在真实可靠的实验条件下,本发明提供了一套实用化的一种基于椭 圆曲线与指纹模糊金库的密钥保护方法。

一种基于椭圆曲线与指纹模糊金库的密钥保护方法,包括三个部 分:第一步,利用一种基于椭圆曲线共享密钥安全生成方法,通信双方 安全生成一个共享密钥;第二步,利用指纹模糊金库绑定算法,将共享 密钥与经过相关处理的用户指纹信息进行绑定,生成指纹模糊金库;第 三步,利用经过验证的用户指纹信息从指纹模糊金库中提取共享密钥。

其中的第一步具体是:

用户A和用户B利用基于椭圆曲线共享密钥安全生成方法,安全生 成一个共享密钥,所有操作都是在推荐椭圆曲线下进行。椭圆曲线系统 参数如下:有限域,其中q为一个大素数;椭圆曲线方程 y2=x3+ax+bmodq上的两个元素;椭圆曲线的基点 G=(xG,yG)(G≠O),其中;并取n为基点G在上的阶。

此外,规定一个密钥派生函数KDF(Z,len)用以从一个共享的秘密比 特串中派生出密钥数据,密钥派生函数通过杂凑函数等方式实现;其中 Z是一个共享的秘密比特串,len是要获得的密钥长度。根据椭圆曲线密 码体系安全性考虑,密钥长度一般从128到256比特不等。

1.1用户A从椭圆曲线上独立生成一个密钥对作为自己的公 私钥对,包括用户A的私钥dA和公钥PA=[dA]G=(xA,yA);用户B进行相 同的工作得到一个公私钥对,包括用户B的私钥dB和公钥 PB=[dB]G=(xB,yB)。

1.2用户A秘密生成一个随机整数rA∈[1,n-1],在上计算rA倍点 RA=[rA]G=(x1,y1),并将RA发送给用户B;用户B进行相同的工作得到随 机整数rB∈[1,n-1],以及上的rB倍点RB=[rB]G=(x2,y2),并将RB发送给 用户A。

1.3用户A计算上的点U=[dA]PB+[rA]RB=(xU,yU),用户B进行 相同的工作计算上的点V=[dB]PA+[rB]RA=(xV,yV)。

1.4用户A计算KA=KDF(xU||yU,len),用户B计算 KB=KDF(xV||yV,len);易证,这里KA=KB。至此,基于椭圆曲线算法的 产生一个共享密钥完毕。

其中的第二步具体是:

用户A利用指纹模糊金库绑定算法,将共享密钥与经过相关处理的 用户指纹信息进行绑定,生成指纹模糊金库。用户B通过相同工作生成 模糊金库。

2.1用户A通过两次训练,提取、处理指纹信息得到一组相对稳定 的用户指纹细节点集合;将得到的所有细节点的平面坐标分别量化到8 个比特并串接得到一个长度为16的比特串,然后将所有细节点的数据 类型转化为整数,则可以得到一组范围在[0,216-1]内的整数集合F,稳定 细节点个数为f。

指纹细节点训练方法如下:将指纹样本依次进行特征配准,配准时 不区分细节点类型;两幅指纹可配准的细节点记为该枚指纹的真实细节 点,取同一个真实细节点在两幅图像取的两组坐标值的均值,记录为该 真实细节点的坐标值;配准好的细节点与第三幅指纹样本再次进行特征 配准;配准完成后得相对稳定的真实细节点集合。

2.2用户A将第一步得到的共享密钥进行格式化处理,格式化规则 为每16比特长度为一块,记一共可以得到k块;并将每块数据类型转化 为整数,则可以得到一组范围在[0,216-1]内的整数集合K。

2.3用户A根据密钥格式化处理产生的块数k,在有限域上构造 一个形如

P(x)=a0+a1x+a2x2+…+akxk(mod p)   (2) 的多项式,模数p根据经验推荐取值为65537,最高次数k根据密钥长度 一般取值范围从9到16。

2.4用户A为待绑定的共享密钥添加16比特长度的CRC循环冗余 校验码,以增加本发明保护密钥的可靠性;并将该CRC码数据类型转 化为整数,则可以得到一个范围在[0,216-1]内的整数。

2.5用户A使用2.3中提到的待绑定的共享密钥与2.4中的得到CRC 校验码作为多项式(2)的系数,其中a0为CRC校验码,a1,…,ak为待绑定 的共享密钥块。并将2.1得到的稳定的用户指纹信息集合F中的每个细 节点数据作为多项式输入值x带入多项式(2)中,求得点集{(x,P(x))|x∈F} 即为模糊金库中的真实点集合。

2.6用户A为模糊金库添加远远多于真实点集合个数的杂凑点集 合,杂凑点集合中的各组元素均随机产生,并要求各组元素与真实点不 相等,且各组元素必须不满足的多项式(2)。

2.7用户A将真实点集合和杂凑点集合乱置,最终生成一个包含真 实点集合、杂凑点集合,模糊金库基本信息(包括多项式最高次数k、 模数p)在内的指纹模糊金库。

其中的第三步具体是:

用户A利用经过验证的用户指纹信息从指纹模糊金库中提取共享 密钥。用户B进行相同工作可以从指纹模糊金库提取共享密钥。

3.1用户A通过相关处理、验证指纹信息得到一组用户查询指纹细 节点集合F′,细节点的个数为f′。

3.2用户A将用户查询指纹细节点集合F′与模糊金库中的各组数据 进行遍历对比,若相符的点的个数不小于在模糊金库中多项式最高次数 k,则继续执行;否则,提取密钥失败。

3.3对找到的相符的点进行组合计算,每k+1个点为一组,对每组 利用拉格朗日插值法尝试恢复可能密钥,并将得到的可能密钥进行CRC 校验。若通过CRC校验,则可能密钥即为共享密钥,提取密钥成功; 否则继续下一组尝试。直到尝试完所有组合情况,仍未提取到共享密钥, 则提取密钥失败。

本发明的有益效果:与有限乘法群安全生成共享密钥的方法相比 较,本发明利用椭圆曲线算法安全生成共享密钥的方法具有更强的安全 性、更高的实现效率、以及更低的实现代价,为在移动终端等计算资源 紧张的设备下使用提供可能;利用指纹模糊金库安全存储共享密钥的方 法,保证只有合法用户在合法指纹下才能提取到带有CRC校验功能的 共享密钥,保障了共享密钥安全存储的机密性、完整性、可用性。

附图说明

图1基于椭圆曲线和指纹特征的模糊金库方法流程图;

图2基于椭圆曲线的共享密钥安全生成方法流程图;

具体实施方式

以下结合附图对本发明作进一步说明。

一种基于椭圆曲线与指纹模糊金库的密钥保护方法流程图如图1所 示,主要包括三个部分:利用一种基于椭圆曲线共享密钥安全生成方法, 通信双方安全生成一个共享密钥;利用指纹模糊金库绑定算法,将共享 密钥与经过相关处理的用户指纹信息进行绑定,生成指纹模糊金库;利 用经过验证的用户指纹信息从指纹模糊金库中提取共享密钥。

1.其中的利用基于椭圆曲线共享密钥安全生成方法,通信双方安全 生成一个共享密钥流程如图2所示,所有操作都是在椭圆曲线下进行。 本例椭圆曲线系统参数如下所示,参数均采用16进制表示:

椭圆曲线方程为:y2=x3+ax+b mod q

素数q:

FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000000 FFFFFFFF FFFFFFFF

系数a:

FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000000 FFFFFFFF FFFFFFFC

系数b:

28E9FA9E 9D9F5E344D5A9E4B CF6509A7 F39789F515AB8F92 DDBCBD414D940E93

基点G=(xG,yG)(G≠O),其阶记为n。

坐标xG

32C4AE2C 1F1981195F9904466A39C9948FE30BBF F2660BE1 715A4589334C74C7

坐标yG

BC3736A2 F4F6779C 59BDCEE36B692153 D0A9877C C62A4740 02DF32E52139F0A0

阶n:

FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 7203DF6B 21C6052B 53BBF40939D54123

本例中使用的椭圆曲线在有限域上选取,其中q为一个长度为 256比特的大素数;椭圆曲线方程为y2=x3+ax+b mod q,其中 ;选取椭圆曲线的基点记为G=(xG,yG)(G≠O),其中 ,并记n为基点G在上的阶。

此外,规定一个密钥派生函数KDF(Z,len)用以从一个共享的秘密比 特串中派生出密钥数据,本例中密钥固定输出为160比特,派生函可以 选用SHA-1(Z)杂凑算法实现,只需要保证输入的比特串长度小于264。具 体操作过程如下:

1.1用户A从椭圆曲线上独立生成一个比特长度为256的密钥 对作为自己的公私钥对,包括私钥dA和公钥PA=[dA]G=(xA,yA);用户B 进行相同的工作得到一个比特长度为256的公私钥对,包括私钥dB和公 钥PB=[dB]G=(xB,yB)。

1.2用户A秘密生成一个随机整数rA∈[1,n-1],在上计算rA倍点RA=[rA]G=(x1,y1),并将RA发送给用户B;用户B进行相同的工作得 到随机整数rB∈[1,n-1],以及上的rB倍点RB=[rB]G=(x2,y2),并将 RB发送给用户A。

1.3用户A计算上的点U=[dA]PB+[rA]RB=(xU,yU),用户B 进行相同的工作计算上的点V=[dB]PA+[rB]RA=(xV,yV)。

1.4用户A计算KA=SHA-1(xU||yU),用户B计算KB=SHA-1(xV||yV); 易证,这里KA=KB。至此,基于椭圆曲线算法的产生一个共享密钥完毕。

2、用户A利用指纹模糊金库绑定算法(流程图如图1所示),将共 享密钥与经过相关处理的用户指纹信息进行绑定,生成指纹模糊金库。 用户B通过相同工作生成模糊金库。具体操作如下:

2.1用户A通过两次训练,提取、处理指纹信息得到一组相对稳定 的用户指纹细节点集合;将得到的所有细节点的平面坐标分别量化到8 个比特并串接得到一个长度为16的比特串,然后将所有细节点的数据 类型转化为整数,则可以得到一组范围在[0,216-1]内的整数集合F,稳定 细节点个数为f。

2.2用户A将第一步得到的160位共享密钥进行格式化处理,格式 化规则为每16比特长度为一块,记一共可以得到10块;并将每块数据 类型转化为整数,则可以得到一组范围在[0,216-1]内的整数集合K。

2.3用户A根据密钥格式化处理产生的块数,在有限域上构造 多项式如下:

P(x)=a0+a1x+a2x2+…+a10x10(mod 65537)   (3)

2.4用户A为160位共享密钥添加16比特长度的CRC循环冗余校 验码,以增加增加本发明保护密钥的可靠性;并将该CRC码数据类型 转化为整数,则可以得到一个范围在[0,216-1]内的整数。

2.5用户A使用10块转化过的密钥块集合K与2.4中的得到CRC 校验码作为多项式(3)的系数,其中a0为CRC校验码,a1,…,a10为整数 集合K。并将2.1得到的稳定的用户指纹信息集合F中的每个细节点数 据作为多项式输入值x带入多项式(3),求得点集{(x,P(x))|x∈F}即为模 糊金库中的真实点集合。

2.6用户A为模糊金库添加远远多于真实点集合个数的杂凑点集 合,杂凑点集合中的各组元素均随机产生,并要求各组元素与真实点不 相等,且各组元素必须不满足多项式(3)。

2.7用户A将真实点集合和杂凑点集合乱置,最终生成一个包含真 实点集合、杂凑点集合,模糊金库基本信息(包括多项式最高次数10、 模数65537)在内的模糊金库。

3、用户A利用经过验证用户指纹信息从指纹模糊金库中提取共享 密钥(流程图如图1所示)。用户B进行相同工作可以从指纹模糊金库 提取共享密钥。具体操作如下:

3.1用户A通过相关处理、验证指纹信息得到一组用户查询指纹细 节点集合F′,细节点的个数为f′。

3.2用户A将用户查询指纹细节点集合F′与模糊金库中的各组数据 进行遍历对比,若相符的点的个数不小于在模糊金库中多项式最高次数 10,则继续执行;否则,提取密钥失败。

3.3对找到的相符的点进行组合计算,每11个点为一组,对每组利 用拉格朗日插值法尝试恢复可能密钥,并将得到的可能密钥进行CRC 校验。若通过CRC校验,则可能密钥即为共享密钥,提取密钥成功; 否则继续下一组尝试。直到尝试完所有组合情况,仍未提取到共享密钥, 则提取密钥失败。

本技术领域中的普通技术人员应当认识到,以上实施例仅是用来说 明本发明,而并非作为对本发明的限定,只要在本发明的实质范围内, 对以上实施例的变化、变型都将落在本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号