APP下载

一种新的轻量级NFC身份认证协议*

2017-01-16汪学明

通信技术 2016年11期
关键词:标量公钥密文

徐 伟,汪学明

(1.贵州大学 大数据与信息工程学院,贵州 贵阳 550025;2.贵州大学 计算机科学与技术学院,贵州 贵阳 550025)

一种新的轻量级NFC身份认证协议*

徐 伟1,汪学明2

(1.贵州大学 大数据与信息工程学院,贵州 贵阳 550025;2.贵州大学 计算机科学与技术学院,贵州 贵阳 550025)

目前,近场通信技术(NFC)被广泛应用在移动支付、公交卡、门禁系统、电子标签等各个方面。为了解决NFC系统安全性问题,提出一种新的基于超椭圆曲线密码体制的NFC轻量级认证协议。与现有协议相比,新协议提供了双向认证服务,简化了秘钥管理,为认证各方提供了不可否认性特性。同时,新协议对认证过程和HECC中的标量乘运算也做了相应简化。HECC具有高安全性、低有限域的特点,适合应用于NFC系统中,在提供安全性的同时,降低对CPU计算能力的要求。分析表明,新协议达到了NFC系统的高安全性和高效率要求。

超椭圆曲线密码体制;身份认证;近场通信;公钥密码体制;协议

0 引 言

在嵌入式安全应用中,几乎毫无例外地使用了密码学技术来保护重要信息的传输,使之免受第三者攻击造成的不必要损失。近年来,近场通信技术(NFC)[1]作为一种短距无线通信技术,被广泛应

用在生活的各个方面,尤其在无线支付方面。银行卡﹑公交卡以及手机,都在使用NFC技术进行大量的电子现金交易。然而,NFC中并没有相应的数据加密标准。身份认证协议作为一种重要的密码手段,可以使NFC通信双方进行身份认证,并建立安全的通信信道,以抵御第三方攻击。在个人信息以及财产安全方面,身份认证协议起到了重要的保护作用。

多数情况下,NFC终端的计算能力及存储容量有限。比如,在门禁卡应用中,门禁卡使用的微型芯片决定其不能进行复杂的计算[2-3]。因此,工作在NFC系统中的身份认证协议必须是轻量级的,而且要足够安全,以抵御各种安全威胁。

Lee Et等人在文献[4]中提出一种基于公钥密码体制的NFC认证协议,解决了中间人攻击问题。然而,该协议不能提供双向认证服务,且不具备不可否认性。Thammarat C等人在文献[5]中提出了一种轻量级的NFC认证协议,该协议使用对称加密技术,每次使用不同的会话密钥来实现对协议运行双方的身份进行认证。但是,该协议也存在以下缺点:(1)秘钥管理复杂,终端要实现认证,就必须预先保留所有参与认证主体的组秘钥,这对于容量受限的NFC卡,该协议不具备可行性;(2)缺乏不可否认性。

本文提出一种基于亏格为2的超椭圆公钥密码体制(HECC)的NFC认证协议。与文献[4]和文献[5]提出的协议相比,新协议提供了双向认证特性和不可否认性;协议认证结束后会产生一个临时会话秘钥,用于建立安全的会话通道;还对HECC中的标量乘算法做了进一步优化,通过减少标量的汉明重量,使得标量乘的运算量进一步减少。

1 基础知识

1.1 超椭圆曲线密码体制

超椭圆曲密码体制HECC(Hyperelliptic Curve Cryptosystem)[6]是由Koblitz提出的一种公钥密码加密体制。与RSA和ECC公钥密码体制相比,HECC能够在更小的有限域实现相同的安全性。

超椭圆曲线方程满足v+h(u)=f(u),超椭圆曲线上的点可以记为(u,v)。在超椭圆曲线中,f(u)是次数为2g+1的首一多项式。h(u)的次数不大g,则称超椭圆曲线的亏格为g。一般地,超椭圆曲线点Pi的有限和形式称为除子,记D=∑miPi,∑mi称为除子的次数,D0表示次数为零的除子。

在超椭圆曲线C的Jacobian商群上,两个约简除子经过复合和约简后,可以唯一得到另一个约简除子,记为D1+D2=D3,又称为除子加运算。除子加运算满足交换律和结合律,m个除子D相加记为mD,如式(1),mD运算被称作标量乘。

特殊点的标量乘,如2k(k=1,2,…)可以预先计算并存储下来。标量乘mD可以表示为式(2)。在式(2)中qi取0和1两个值。

形如式(2)的标量乘形式,只需对qi≠0的所有项进行除子加运算。标量m的汉明重量(m二进制表示后含1的个数)为M,则标量乘mD只需进行M-1次除子加运算。

HECC安全性是基于有限域上超椭圆曲线的Jacobian[7]商群上的离散对数(HECCDLP)问题的难解性[8]。HECCDLP问题描述为:对于超椭圆曲线上的两个除子D1和D2,有D2=kD1,已知k和D1在多项式时间内可以求得D2;反之,已知D2﹑D1求k是困难的。

1.2 NFC近场通信技术

NFC(Near Field Communication)是一种短距离的无线通信技术,有效工作范围为10 cm,工作频率为13.56 MHz,最大传输距离为424 kb/s。NFC设备一般应用于如手机﹑平板电脑等便携式设备以及金融IC卡﹑门禁卡﹑电子标签上面。NFC传输距离短,可以有效防止信息泄露,而且与RFID技术兼容,近年来广泛应用于无线支付方面,如银行卡﹑公交卡以及大量的手机的电子现金交易。

2 轻量级NFC身份认证协议

本节提出一种基于超椭圆公钥密码体制的轻量级数字签名算法和基于超椭圆的密码体制的轻量级的公加解密算法。并用这两种算法实现轻量级的NFC身份认证协议。

设有限域Fq(q是素数,且q>280)上亏格为2的超椭圆曲线的Jacobian商群为J,其J的阶#J=nh,n为大素数,h为较小的余因子。在J上选取一个主除子D作为协议的公有参数。文中遇到的符号如表1所示。

表1 符号表

2.1 算法描述

2.1.1 数字签名算法

数字签名包括签名生成和签名验证两部分,分别描述如下。

签名生成:k1D为预先计算储存在A中的标量乘,可以由A随时更新,A对消息M签名需完成下述步骤。

(1)计算M的hash值c=h(M);

(2)N随机生成一个汉明重量小于40的随机数k11;

(4)A用自己的私钥dA计算:(5)A向B发送消息M和签名(r,s)。签名验证:B对签名(r,s)验证,需要完成以下过程。

(1)计算 u1=h( M) s-1,u2=rs-1;

(2)计算 X = u1D + u2QA,如果X=[1,0],则认证失败;否则,计算 v=λ(X);

(3)v=r时,则对A的身份认证成功;否则,认证失败。

证明:B对A的签名信息进行验证:

所以,只要满足λ( X) =λ( R),即可对N的身份进行确认。

因此,攻击者伪造签名就必须获取A的私钥。从A的公钥中解算出私钥是一个HECCDLP难题;攻击者想从一次签名信息中解算出私钥dA,必须从(k1+k11)D中解算出(k1+k11),同样是一个HECCDLP难题。所以,该算法具有内在的安全性和不可否认性。

2.1.2 基于HECC加解密算法

HECC加解密算法包括密文生成和密文解密两部分,分别描述如下。

密文生成:A使用B的公钥QB预生成kQB﹑kD。A对消息M加密需要完成以下步骤。

(2)A向B发送密文(e,kD)。

密文解密:B使用自己的私钥dB解密密文需要完成以下步骤。

证明:因为

所以,根据密文信息B可以唯一确定明文信息M。攻击者从密文解算出明文信息,必须知道B的私有秘钥,而密文中仅有公钥QB包含B的私钥信息,QB为公开参数。攻击者从QB中解算出dB是一个HECCDLP难题,所以该算法具有内在安全性。

2.2 协议描述

本节给出一种新的基于超椭圆公钥密码体制的NFC身份认证协议,实现NFC卡(N)﹑NFC读卡终端(POS)和身份认证服务器(AS)之间的身份认证和秘钥协商。如图1所示,NFC卡工作在被动模式下,N与AS之间的通信数据必须经过POS进行数据转发。此外,新协议完成认证的同时,产生一个一次一密的会话秘钥。此会话秘钥可以用于协议参与主体建立一条安全的通信信道,所以此协议也适合于工作在复杂的网络环境下。

图1 轻量级NFC身份认证协议工作模型

新协议描述如下:

终端N生成一个随机数n1和身份标示IDN一起发送给读卡终端POS。

POS→AS

POS生成随机数n2﹑a,并使用文献[9]提出的方案加密消息Q1=[n1⊕n2⊕h(IDN||IDpos||aD)],得到EpukAS[Q1],最后将信息EpukAS[Q1],IDN,IDpos,aD发送到服务器AS。

AS→POS

AS使用使用私钥EprkAS,解密出消息n1⊕n2||h(IDN||IDpos||aD); 根 据 IDN,IDpos,aD 计算 h'(IDN||IDpos||aD。 如 果 h'(IDN||IDpos||aD 和h(IDN||IDpos||aD相等,则继续运行协议;否则,停止会话。AS生成随机数n3﹑b,并使用POS的公钥对信息n1⊕n2⊕n3||h(IDAS||bD)加密,并将密文连同bD一起发送给POS。

POS→N

POS使用其私钥,解密出消息n1⊕n2⊕n3||h(IDAS||bD)。POS计算h'(IDAS||bD)。如果满足条件h(IDAS||bD)=h'(IDAS||bD),则完成对AS的身份认证;否则,结束会话。对AS身份认证成功后,POS使用n1⊕n2计算出n3,并将n3﹑IDpos发送给N。

N→POS

N随机产生一个会话秘钥k1,使用2.1.2算法生成密文。使用2.1.1算法生成签名。最后将e1﹑e2发给POS。

POS→AS

POS根据aD﹑bD,使用基于HECC的Diffie-Hellman密钥协议[7],计算出会话秘钥k2,并加密明文e1||e2||n3||n2得到[e1||e2||n3||n2]k2,然后将其发送给AS。

AS→POS

AS使用上一步同样的方法产生秘钥k2,并解密密文。若,则继续计算⊕ n2⊕n'

2。AS使用2.1.1签名算法对进行验证。若验证通过,则AS完成对POS和N的身份认证。AS使用k2生成密文[n1||IDN||k1]k2,并转发给POS。

POS→N

POS使用k2从密文中解密出。若,则POS完成对AS和N的身份认证,并使用k'1加密明文IDpos||n1||IDAS后发送给N。

N

N使用k1,从密文解密中解得IDpos||n1||IDAS,则完成对POS和AS的身份认证;否则,验证失败。

3 轻量级NFC身份认证协议对比分析

本节对轻量级NFC身份认证协议进行对比分析,已证明新协议适合NFC系统。

3.1 安全性分析

在文献[4]中,U1使用认证服务器AuC 的 公 钥, 加 密UID1||URx1||n1, 得 到 密 文Q1=EpukAuc(UID1||URx1||n1),并将Q1发给U2。同样,U2使用AuC的公钥,计算得到Q2=EpukAuC(Q1||UID1|| N2||UID2||URx2),并将Q2发送给AuC。AuC使用自己的私钥,解算出n1﹑n2,并计算 R1h( U ID1||n2)﹑R2=h( U ID2||n1||n2)⊕n1﹑R3=n1⊕n2。U2收到R1﹑R2﹑R3信息后,可以验证出U1和Auc的身份。U2将R1﹑R3转发给U1后,U1可以利用其信息解算出n1,从而验证AuC的身份。但是,R1﹑R3缺乏U2的相关信息,导致U1不能对U2的身份进行验证。因此,该协议提供的是单向认证服务。实际上,系统中任何其他合法用法都可以伪造U2与U1进行通信,而U1却无法对U2的身份进行有效认证[10]。

文献[5]中,Thammarat C提出一种基于对称密码的轻量级NFC身份认证协议。该文献包括两个子协议。子协议一为NFC卡N和身份认证协议AS之间的相互认证;子协议二为NFC卡﹑读卡器终端POS和身份认证服务器终端AS之间的三方认证。在子协议一中,N和AS之间通过向对方出示会话秘钥SKN-POSj,j=1,…,m来表明自己的身份。N和AS使用相同的会话秘钥SKN-POSj,导致N和AS一方可以随意伪造另一方的身份发起交易;同理,子协议二也具有相同的安全隐患。所以,该协议存在安全隐患,不具备不可否认性。

本文提出的新协议解决了文献[4-5]中身份认证协议的缺点。新协议中,每个认证主体都有一个唯一的私钥。POS使用AS的公钥,生成秘钥信息EpukAS[n1⊕n2||h( I DN||I DPOS||a D)],AS从POS发 来的密文中解密n1⊕n2,并向POS出示,则N完成对AS身份的确认。同理,AS使用同样的方法完成对POS的身份认证。POS完成对AS身份的确认后,使用协商的会话秘钥加密AS和POS之间的通信数据。所以,该协议能够有效保证AS和POS之间通信数据的安全。

N生成随机数k1,并使用AS的公钥和自己的私钥dN,生成密文,。N通过POS发送向AS发送密文e1﹑e2。AS根据密文e1﹑e2,验证N的身份并解出秘钥k1。AS分别向POS﹑N发送对POS﹑N身份的验证结果。POS从AS发来的密文信息中解出明文n2||IDN,则AS完成对N的身份认证。POS确定N的身份,并向N转发密文信息[IDPOS||n1||IDAS]k1。N使用秘钥k1解出IDpos||n1||IDAS,则N完成对POS 和AS的身份确认。

与已有文献提出的协议相比,新协议应用超椭圆公钥密码技术,很好地解决了文献[4-5]提出的身份认证协议面临的安全威胁。利用会话秘钥,在POS和AS﹑N和POS之间建立一个安全的会话信道,使协议可以在不安全的网络上运行,而不需要单独的安全信道。

3.2 效率分析

下面从秘钥存储和计算开销两方面对新协议进行分析,以说明新协议适合应用于计算和存储有限的NFC系统。

新协议中,HECC选择有限域为80 bit,hash函数生成算法为sha1,对称加密采用128 bit AES算法。表2为新协议与文献提出协议关于NFC卡片存储存储开销和认证交换数据的量的对比。从表2可看出,文献[5]提出的方案认证数据量最大,新协议和文献[4]提出的协议相当。在秘钥存储方面,文献[5]的储存开销随着POS机数量n的增加而增加。而新协议存储开销比文献[4]多了66.67%。

表2 NFC卡储存及认证交换数据量

表3则为三种协议方案的NFC卡计算开销方面的对比。可以看出,新协议进行的hash运算最少。与文献[4]相比,新协议NFC卡端只需要进行一次AES运算。文献[5]将认证信息串联在一起进行加密,明文变长,使用160 bit的ECC对明文信息进行加密必须分两次进行。而新协议使用模加的方式连接各个信息段,从而将明文信息控制在160 bit内,使得只需要一次HECC运算,便可完成对明文信息的加密。新协议预先计算标量乘kQAS,kD节省了一次HECC加密运算,与文献[5]相比,新协议牺牲,存储容量,换取了运算速度的提升。此外,新协议限制了k2的汉明重量,进一步减少了标量的乘计算量。

表3 NFC卡计算开销对比

从以上对比可以看出,与已有文献提出的协议相比,新协议执行加密解密要求的计算量最小,对存储容量要求低,适合应用于存储容量和计算能力受限的NFC系统。

4 结 语

本文提出的轻量级NFC身份认证协议具有超椭圆曲线密码体制短密钥﹑运算效率高和安全性高的特点。从安全性和效率上进行分析,新协议解决了Lee Et﹑Thammarat C等人所提方案的安全缺陷,同时提高了协议的执行效率。此外,在新协议中将身份认证和会话密钥协商同时进行,并使用会话密钥建立安全的通信信道,增强了系统的安全性,新协议可以工作在复杂的网络环境中。目前,设计基于HECC的离线支付协议是下一步要开展的工作。

[1] Schmidt A.Pervasive RFID and Near Field Communication Technology[J].IEEE Pervasive Computing,2007, 6(03):94-96.

[2] Robert Gripentog,Yoohwan Kim.Utilizing NFC to Secure Identification[C].Computer and Information Science (ICIS),2015:101-105.

[3] Kakali Chatterjee,Asok De,Daya Gupta.Mutual Authentication Protocol Using Hyperelliptic Curve Cryptosystem in Constrained Devices[J].International Journal of Network Security,2013,15(01):9-15.

[4] Yun-Seok L,Eun K,Min-Soo J.A NFC based Authentication Method for Defense of the Man in the Middle Attack[C]. Proceedings of the 3rd International Conference on Computer Science and Information Technology(ICCSIT’2013),2013:10-13.

[5] Thammarat C,Chokngamwong R,Techapanupreeda C,et al.A Secure Lightweight Protocol for NFC Communications with Mutual Authentication based on Limited-use of SessionKeys[C].2015 International Conference on Information Networking(ICOIN),2015:133-138.

[6] Koblitz N.Hyperelliptic cryptosystems[J].Journal of Cryptology,1989,1(03):139-150.

[7] David G,Cantor.Computing in the Jacobian of Hyperelliptic Curve[J].Mathematics of Computation,2010,48(177):95.

[8] 张方国.超椭圆曲线密码体制的研究[D].西安:西安电子科技大学,2001.

ZHANG Fang-guo.Research on Hyperelliptic Curve Cryptosystems[D].Xi’an:Xidian University,2001.

[9] 肖如良.超椭圆曲线密码体制的理论与实现[M].北京:经济管理出版社,2006.

XIAO Ru-liang.The Theory and Implementation of the Hyperelliptic Curve Cryptosystem[M].Beijing:Economy & Management Publishing House,2006.

[10] 苏剑飞,王景伟.网络攻击技术与网络安全探析[J].通信技术,2010,43(01):91-93.

SU Jian-fei,WANG Jing-wei.Discussion on Network Security and Attack Techniques[J].Communications Technology,2010,43(01):91-93.

A Novel Lightweight Identity Authentication Protocol in NFC Application

XU Wei1, WANG Xue-ming2

(1.College of Big Data and Information Engineering, Guizhou University, Guiyang Guizhou 550025, China; 2.College of Computer Science and Technology, Guizhou University, Guiyang Guizhou 550025, China)

Nowadays, NFC(Near Field Communication) is widely applied in many fields including mobile payment, bus card, access control system, electronic label and so on. In order to solve the security problem of NFC system, a novel NFC lightweight authentication protocol based on the hyper elliptic curve cryptosystem is proposed. Compared with the existing protocols, this novel protocol could provide mutual-authentication services, simplify key management, and furnish non-repudiation features for authenticated members. Meanwhile, this novel protocol also makes corresponding simplification of the authentication process and the scalar multiplication in HECC. HECC is characterized with high security and low finite field suitable for NFC system, and could reduce the requirements for the calculation capability of CPU while improving the security. Analysis indicates that this novel protocol could satisfy the requirements of high security and high efficiency by the NFC system.

hyperelliptic curve cryptosystem; identity authentication; near field communication; public-key cryptography; protocol

TN911

A

1002-0802(2016)-11-1529-06

10.3969/j.issn.1002-0802.2016.11.022

徐 伟(1989—),男,硕士,主要研究方向为移动通信﹑信息安全;

汪学明(1965—),男,博士,教授,主要研究方向为无线与移动通信﹑协议分析与模型检测﹑密码学与信息安全。

2016-07-17;

2016-10-24 Received date:2016-07-17;Revised date:2016-10-24

国家自然科学基金项目(No.[2011]61163049);贵州省自然科学基金资助项目黔科合J字(No.[2011]2197)

Foundation Item:National Natural Science Foundation of China(No.[2011]61163049);Natural Science Foundation of Guizhou Province(No. [2011]2197)

猜你喜欢

标量公钥密文
向量优化中基于改进集下真有效解的非线性标量化
面向ECDSA的低复杂度多标量乘算法设计
一种支持动态更新的可排名密文搜索方案
基于模糊数学的通信网络密文信息差错恢复
案例教学法在公钥密码体制难点教学中的应用——以ssh服务中双向认证为例
基于网络报文流量的协议密文分析方法
密钥共享下跨用户密文数据去重挖掘方法*
一种高效的椭圆曲线密码标量乘算法及其实现
神奇的公钥密码
国密SM2密码算法的C语言实现