近场通信设备间的点对点支付通信方法转让专利

申请号 : CN201510559940.9

文献号 : CN105245257B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 郑紫微何晨晖

申请人 : 宁波大学

摘要 :

本发明涉及近场通信设备间的点对点支付通信方法,通信双方中的第一NFC终端、第二NFC终端分别将各自真实ID存储在第三方可信机构,第三方可信机构存储两个NFC终端的匿名身份;当点对点支付通信时,第一NFC终端向第三方可信机构请求使用其匿名身份,并计算、发送自身的自更新公钥和密钥验证标签给第二NFC终端验证;第二NFC终端同样发送其自更新公钥、密钥验证标签给第一NFC终端验证;当第一NFC终端、第二NFC终端的密钥验证标签均被对方验证通过且自更新公钥均相同时,判断两个NFC终端间物理距离大于预设距离时,则第一NFC终端、第二NFC终端以其相同的自更新公钥为双方的共享公钥,完成点对点通信。

权利要求 :

1.近场通信设备间的点对点支付通信方法,其特征在于,依次包括如下步骤:

(1)设定第一NFC终端的全球身份标识号为IDFirst,第二NFC终端的全球身份标识号为IDSecond,第三方可信机构为TSM;其中,第三方可信机构TSM用于存储第一NFC终端的匿名身份、第二NFC终端的匿名身份、第一NFC终端的真实IDFirst以及第二NFC终端的真实IDSecond;匿名身份由公钥、私钥、第三方可信机构TSM的全球身份标识号IDTSM以及TSM的签名组成;

利用第一NFC终端在第三方支付平台注册对应支付账户,并由第三方支付平台存储第一NFC终端的全球身份标识号IDFirst、支付密码;

利用第二NFC终端在第三方支付平台注册对应收款账户,并由第三方支付平台存储第二NFC终端的全球身份标识号IDSecond;

(2)第一NFC终端向第三方可信机构TSM请求使用其匿名身份时,由第三方可信机构TSM产生第一NFC终端的匿名身份集合PSFirst,并将此匿名身份集合PSFirst发送给第一NFC终端;

第三方可信机构TSM则存储发送给第一NFC终端的匿名身份集合PSFirst以及第一NFC终端的真实IDFirst;其中,第三方可信机构TSM生成第一NFC终端的匿名身份过程包括:(2-1)在第三方可信机构TSM接收到第一NFC终端的匿名身份请求时,第三方可信机构TSM产生n个随机值 其中, 表示第一NFC终端的第i个匿名身份的私钥;

(2-2)第三方可信机构TSM将其产生的各随机值 与椭圆曲线基点G相乘,得到n个公钥 其中, 表示第一NFC终端的第i个匿名身份的公钥, 基点G在椭圆曲线上,椭圆曲线为:E:y2=x3+ax+b modn1,E为椭圆曲线,a,b为椭圆曲线E的系数,(x,y)是椭圆曲线E上的点,n1是椭圆曲线E的阶;

(2-3)第三方可信机构TSM根据第一NFC终端的第i个匿名身份的私钥 以及对应该私钥 的公钥 产生得到对应第一NFC终端的第i个匿名身份的第三方可信机构TSM签名其中,EncK(m)表示用密钥K对信息m加密,Sigk(m)表示用密钥k对信息m签名,||为连接符号;

(2-4)第三方可信机构TSM根据其所产生的第一NFC终端的第i个匿名身份的签名得到第一NFC终端的匿名身份集合PSFirst,其中:(3)第一NFC终端接收到第三方可信机构TSM发送的匿名身份集合PSFirst后,断开其与第三方可信机构TSM的通信,并对第一NFC终端与第二NFC终端之间的NFC安全协议进行激活:(3-1)第一NFC终端产生随机数NFirst和随机整数RFirst,并计算、得到其自更新公钥和 然后将 和NFirst压缩后发送给第二NFC终端,其中经压缩分别变成QFirst”i、QFirst'i; 是基点为G的椭圆曲线E上的点,其中,QTSM表示第三方可信机构TSM的公钥,kTSM表示第三方可信机构TSM的私钥;

(3-2)第二NFC终端产生随机数NSecond和随机整数RSecond,并计算、得到其自更新公钥 和 然后将 和NSecond压缩后发送给第一NFC终端,其中经压缩分别变成QSecond”i、QSecond'i:

表示第

二NFC终端的第i个匿名身份的公钥, 表示第二NFC终端的第i个匿名身份的私钥;

(3-3)根据第一NFC终端与第二NFC终端互相交换的公钥及随机数,分别计算其共同点P(Px,Py)、共享秘值z及共享秘钥QSSE:(a)第一NFC终端计算得到共同点P(Px,Py)、共享秘值z及共享秘钥QSSE_First,计算得到第一NFC终端发送的密钥验证标签MacTagFirst,并发送密钥验证标签MacTagFirst给第二NFC终端验证:z=Px,

QSSE_First=KDF(NFirst,NSecond,IDFirst,IDSecond,Z),其中,Z为共享秘值z转换后得到的对应的8比特字符串,共享秘值z与8比特字符串Z之间的转换公式为:z是非负整数,字符串预期长度K满足28K>z,输出的M1,M2,...,Mk是字符串Z从左到右的位值;

验证标签MacTagFirst计算使用ISO/IEC 11770-3定义的密钥验证机制:MacTagFirst=MAC-KC(QSSE_First,0x03,IDFirst,IDSecond,QFirst,QSecond);

该密钥验证机制使用AES加密XCBC-MAC-96模式,计算得:

MacTagFirst=AES-XCBC-MAC-96QSSE_First(0x03||IDFirst||IDSecond||QFirst||QSecond);

(b)第二NFC终端计算得到共同点P(Px,Py)、共享秘值z及共享秘钥QSSE_second,验证第一NFC终端发送的密钥验证标签MacTagFirst,并计算得到第二NFC终端的密钥验证标签MacTagSecond,发送密钥验证标签MacTagSecond给第一NFC终端验证:z=Px,

QSSE_second=KDF(NFirst,NSecond,IDFirst,IDSecond,Z),验证标签MacTagSecond计算使用ISO/IEC 11770-3定义的密钥验证机制:MacTagSecond=MAC-KC(QSSE_Second,0x03,IDSecond,IDFirst,QSecond,QFirst);

该密钥验证机制使用AES加密XCBC-MAC-96模式,计算得:

(3-4)当第一NFC终端的密钥验证标签MacTagFirst被第二NFC终端验证通过,且第二NFC终端的密钥验证标签MacTagSecond被第一NFC终端验证通过时,则第一NFC终端、第二NFC终端均以QSSE作为共享秘钥,并进行数据通信连接,然后执行步骤(4),其中QSSE=QSSE_First=QSSE_second;否则,则中断第一NFC终端与第二NFC终端之间的通信连接;其中,第二NFC终端验证第一NFC终端的密钥验证标签MacTagFirst过程包括:第二NFC终端根据其计算得到的共享秘钥QSSE_second,计算第一NFC终端的密钥验证标签MacTag'First,其中若MacTag'First=MacTagFirst,则表示第一NFC终端的密钥验证标签MacTagFirst被第二NFC终端验证通过,否则,表示验证未通过;

第一NFC终端验证第二NFC终端的密钥验证标签MacTagSecond过程包括:第一NFC终端根据其计算得到的共享秘钥QSSE_First,计算第二NFC终端的密钥验证标签MacTag'Second,其中若MacTag'Second=MacTagSecond,则表示第二NFC终端的密钥验证标签MacTagSecond被第一NFC终端验证通过,否则,表示验证未通过;

其中,密钥验证标签MacTag'First、MacTag'Second的计算均使用ISO/IEC 11770-3定义的密钥验证机制,密钥验证机制均使用AES加密XCBC-MAC-96模式;

(4)第一NFC终端获取自身的GPS定位数据并接收第二NFC终端发送来的GPS定位数据,第一NFC终端根据自身GPS定位数据以及接收的GPS定位数据,计算第一NFC终端与第二NFC终端之间的物理距离d:若两者间的物理距离d大于第一NFC终端的预设距离d0,表示第二NFC终端为潜在攻击用户,则第一NFC终端中断与第二NFC终端的通信连接;否则,第一NFC终端继续保持与第二NFC终端的通信连接,并执行步骤(5);

(5)利用第一NFC终端生成虚拟键盘,并通过虚拟键盘输入支付密码,然后由第一NFC终端将支付密码、全球身份标识号IDFirst发送给第三方支付平台,其中,所述虚拟键盘的界面为动态界面,且动态界面上具有0~9十个数字,所述数字在动态界面上的布局上随机的;

(6)第三方支付平台接收第一NFC终端发送的支付密码和全球身份标识号IDFirst,且判断接收的支付密码、全球身份标识号IDFirst与第三方支付平台内存储的预设支付密码、全球身份标识号IDFirst一致时,则将第一NFC终端对应支付账户的款项转入给第二NFC终端对应的收款账户,并发送成功支付通知给第一NFC终端。

2.根据权利要求1所述的点对点支付通信方法,其特征在于,所述步骤(2-2)中的椭圆曲线E中:a=-3,

b=64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1,n1=6277101735386680763835789423176059013767194773182842284081。

说明书 :

近场通信设备间的点对点支付通信方法

技术领域

[0001] 本发明涉及通信领域,尤其涉及一种近场通信设备间的点对点支付通信方法。

背景技术

[0002] 近场通信(Near Field Communication,简称NFC)是一种短距高频的无线电技术,是由非接触式射频识别技术和点对点通信技术融合演变而来,其在0到20cm距离内,工作在13.56MHz频率,传输速度有106Kbit/秒、212Kbit/秒或者424Kbit/秒三种,并可以在不同的传输速度之间自动切换。
[0003] NFC具有三种使用模式:卡模式、点对点通信模式、读/写卡器模式。其中,点对点通信模式用于实现不同的NFC终端之间的数据交互,从而将多个具备NFC功能的设备通信连接起来,并通过链路层通信协议实现数据的点对点传输。可知,具有NFC功能的近场通信设备之间可以进行无线数据传输。例如,消费者在利用NFC通信设备购物、完成支付的交易活动中,消费者的NFC通信设备需要与商家的NFC通信设备进行配对通信,才能完成整个点对点支付过程。
[0004] 然而,利用现有的NFC通信设备与另一NFC通信设备进行点对点支付通信时,由于近场通信较短的通信距离,且不采用安全校验,使得点对点支付过程存在较大的安全隐患,容易被其他设备进行攻击。

发明内容

[0005] 本发明所要解决的技术问题是针对上述现有技术提供一种在近场通信的点对点通信模式中,使用动态公钥密钥和匿名身份进行安全通信的近场通信设备间的点对点支付通信方法。
[0006] 本发明解决上述技术问题所采用的技术方案为:近场通信设备间的点对点支付通信方法,其特征在于,依次包括如下步骤:
[0007] (1)设定第一NFC终端的全球身份标识号为IDFirst,第二NFC终端的全球身份标识号为IDSecond,第三方可信机构为TSM;其中,第三方可信机构TSM用于存储第一NFC终端的匿名身份、第二NFC终端的匿名身份、第一NFC终端的真实IDFirst以及第二NFC终端的真实IDSecond;匿名身份由公钥、私钥、第三方可信机构TSM的全球身份标识号IDTSM以及TSM的签名组成;
[0008] 利用第一NFC终端在第三方支付平台注册对应支付账户,并由第三方支付平台存储第一NFC终端的全球身份标识号IDFirst、支付密码;
[0009] 利用第二NFC终端在第三方支付平台注册对应收款账户,并由第三方支付平台存储第二NFC终端的全球身份标识号IDSecond;
[0010] (2)第一NFC终端向第三方可信机构TSM请求使用其匿名身份时,由第三方可信机构TSM产生第一NFC终端的匿名身份集合PSFirst,并将此匿名身份集合PSFirst发送给第一NFC终端;第三方可信机构TSM则存储发送给第一NFC终端的匿名身份集合PSFirst以及第一NFC终端的真实IDFirst;其中,第三方可信机构TSM生成第一NFC终端的匿名身份过程包括:
[0011] (2-1)在第三方可信机构TSM接收到第一NFC终端的匿名身份请求时,第三方可信机构TSM产生n个随机值 其中, 表示第一NFC终端的第i个匿名身份的私钥;
[0012] (2-2)第三方可信机构TSM将其产生的各随机值 与椭圆曲线基点G相乘,得到n个公钥 其中, 表示第一NFC终端的第i个匿名身份的公钥, 基点G在椭圆曲线上,椭圆曲线为:E:y2=x3+ax+b modn1,E为椭圆曲线,a,b为椭圆曲线E的系数,(x,y)是椭圆曲线E上的点,n1是椭圆曲线E的阶;
[0013] (2-3)第三方可信机构TSM根据第一NFC终端的第i个匿名身份的私钥 以及对应该私钥 的公钥 产生得到对应第一NFC终端的第i个匿名身份的第三方可信机构TSM签名
[0014]
[0015] 其中,EncK(m)表示用密钥K对信息m加密,Sigk(m)表示用密钥k对信息m签名,||为连接符号;
[0016] (2-4)第三方可信机构TSM根据其所产生的第一NFC终端的第i个匿名身份的签名得到第一NFC终端的匿名身份集合PSFirst,其中:
[0017]
[0018] (3)第一NFC终端接收到第三方可信机构TSM发送的匿名身份集合PSFirst后,断开其与第三方可信机构TSM的通信,并对第一NFC终端与第二NFC终端之间的NFC安全协议进行激活:
[0019] (3-1)第一NFC终端产生随机数NFirst和随机整数RFirst,并计算、得到其自更新公钥 和 然后将 和NFirst压缩后发送给第二NFC终端,其中经压缩分别变成QFirst”i、QFirst'i; 是基点为G的椭圆曲线E上
的点,其中,
[0020]
[0021] QTSM表示第三方可信机构TSM的公钥,kTSM表示第三方可信机构TSM的私钥;
[0022] (3-2)第二NFC终端产生随机数NSecond和随机整数RSecond,并计算、得到其自更新公钥 和 然后将 和NSecond压缩后发送给第一NFC终端,其中经压缩分别变成QSecond”i、QSecond'i:
[0023]
[0024] 表示第二NFC终端的第i个匿名身份的公钥, 表示第二NFC终端的第i个匿名身份的私钥;
[0025] (3-3)根据第一NFC终端与第二NFC终端互相交换的公钥及随机数,分别计算其共同点P(Px,Py)、共享秘值z及共享秘钥QSSE:
[0026] (a)第一NFC终端计算得到共同点P(Px,Py)、共享秘值z及共享秘钥QSSE_First,计算得到第一NFC终端发送的密钥验证标签MacTagFirst,并发送密钥验证标签MacTagFirst给第二NFC终端验证:
[0027]
[0028] z=Px,
[0029] QSSE_First=KDF(NFirst,NSecond,IDFirst,IDSecond,Z),
[0030]
[0031] 其中,Z为共享秘值z转换后得到的对应的8比特字符串,共享秘值z与8比特字符串Z之间的转换公式为:
[0032]
[0033] z是非负整数,字符串预期长度K满足28K>z,输出的M1,M2,...,Mk是字符串Z从左到右的位值;
[0034] 验证标签MacTagFirst计算使用ISO/IEC 11770-3定义的密钥验证机制:
[0035] MacTagFirst=MAC-KC(QSSE_First,0x03,IDFirst,IDSecond,QFirst,QSecond);
[0036] 该密钥验证机制使用AES加密XCBC-MAC-96模式,计算得:
[0037] MacTagFirst=AES-XCBC-MAC-96QSSE_First(0x03||IDFirst||IDSecond||QFirst||QSecond);
[0038] (b)第二NFC终端计算得到共同点P(Px,Py)、共享秘值z及共享秘钥QSSE_second,验证第一NFC终端发送的密钥验证标签MacTagFirst,并计算得到第二NFC终端的密钥验证标签MacTagSecond,发送密钥验证标签MacTagSecond给第一NFC终端验证:
[0039]
[0040] z=Px,
[0041] QSSE_second=KDF(NFirst,NSecond,IDFirst,IDSecond,Z),
[0042]
[0043] 验证标签MacTagSecond计算使用ISO/IEC 11770-3定义的密钥验证机制:
[0044] MacTagSecond=MAC-KC(QSSE_Second,0x03,IDSecond,IDFirst,QSecond,QFirst);
[0045] 该密钥验证机制使用AES加密XCBC-MAC-96模式,计算得:
[0046]
[0047] (3-4)当第一NFC终端的密钥验证标签MacTagFirst被第二NFC终端验证通过,且第二NFC终端的密钥验证标签MacTagSecond被第一NFC终端验证通过时,则第一NFC终端、第二NFC终端均以QSSE作为共享秘钥,并进行数据通信连接,然后执行步骤(4),其中QSSE=QSSE_First=QSSE_second;否则,则中断第一NFC终端与第二NFC终端之间的通信连接;其中,[0048] 第二NFC终端验证第一NFC终端的密钥验证标签MacTagFirst过程包括:第二NFC终端根据其计算得到的共享秘钥QSSE_second,计算第一NFC终端的密钥验证标签MacTag'First,其中若MacTag'First=MacTagFirst,则表示第一NFC终端的密钥验证标签MacTagFirst被第二NFC终端验证通过,否则,表示验证未通过;
[0049] 第一NFC终端验证第二NFC终端的密钥验证标签MacTagSecond过程包括:第一NFC终端根据其计算得到的共享秘钥QSSE_First,计算第二NFC终端的密钥验证标签MacTag'Second,其中 若MacTag'Second=MacTagSecond,则表示第二NFC终端的密钥验证标签MacTagSecond被第一NFC终端验证通过,否则,表示验证未通过;
[0050] 其中,密钥验证标签MacTag'First、MacTag'Second的计算均使用ISO/IEC 11770-3定义的密钥验证机制,密钥验证机制均使用AES加密XCBC-MAC-96模式;
[0051] (4)第一NFC终端获取自身的GPS定位数据并接收第二NFC终端发送来的GPS定位数据,第一NFC终端根据自身GPS定位数据以及接收的GPS定位数据,计算第一NFC终端与第二NFC终端之间的物理距离d:
[0052] 若两者间的物理距离d大于第一NFC终端的预设距离d0,表示第二NFC终端为潜在攻击用户,则第一NFC终端中断与第二NFC终端的通信连接;否则,第一NFC终端继续保持与第二NFC终端的通信连接,并执行步骤(5);
[0053] (5)利用第一NFC终端生成虚拟键盘,并通过虚拟键盘输入支付密码,然后由第一NFC终端将支付密码、全球身份标识号IDFirst发送给第三方支付平台,其中,所述虚拟键盘的界面为动态界面,且动态界面上具有0~9十个数字,所述数字在动态界面上的布局上随机的;
[0054] (6)第三方支付平台接收第一NFC终端发送的支付密码和全球身份标识号IDFirst,且判断接收的支付密码、全球身份标识号IDFirst与第三方支付平台内存储的预设支付密码、全球身份标识号IDFirst一致时,则将第一NFC终端对应支付账户的款项转入给第二NFC终端对应的收款账户,并发送成功支付通知给第一NFC终端。
[0055] 进一步地,所述步骤(2-2)中的椭圆曲线E中:
[0056] a=-3,
[0057] b=64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1,
[0058] n1=6277101735386680763835789423176059013767194773182842284081。
[0059] 与现有技术相比,本发明的优点在于:近场通信设备之间进行点对点通信时,通信双方中的第一NFC终端、第二NFC终端首先分别将各自的真实ID存储在第三方可信机构中,同时第三方可信机构存储两个NFC终端的匿名身份;当两个NFC终端需要进行点对点时,则由第一NFC终端向第三方可信机构请求使用其匿名身份,并在获得其匿名身份集合后,计算得到自身的自更新公钥和密钥验证标签,并发送自更新公钥和密钥验证标签给第二NFC终端进行验证;而第二NFC终端也同样的发送其计算的自更新公钥、密钥验证标签给第一NFC终端进行验证;当第一NFC终端、第二NFC终端的密钥验证标签均被对方验证通过,且自更新公钥均相同时,判断第一NFC终端与第二NFC终端间的物理距离大于预设的近场通信距离时,表示不存在攻击者,则第一NFC终端、第二NFC终端以其相同的自更新公钥为双方的共享公钥,从而完成近场通信设备间的点对点通信。

附图说明

[0060] 图1为本发明实施例中近场通信设备间的点对点支付通信方法的流程示意图;
[0061] 图2为本发明实施例中虚拟键盘上0~9十个数字的随机布局示意图。

具体实施方式

[0062] 以下结合附图实施例对本发明作进一步详细描述。
[0063] 如图1所示,本实施例中的近场通信设备间的点对点支付通信方法,依次包括如下步骤:
[0064] (1)设定第一NFC终端的全球身份标识号为IDFirst,第二NFC终端的全球身份标识号为IDSecond,第三方可信机构为TSM;其中,第三方可信机构TSM用于存储第一NFC终端的匿名身份、第二NFC终端的匿名身份、第一NFC终端的真实IDFirst以及第二NFC终端的真实IDSecond;匿名身份由公钥、私钥、第三方可信机构TSM的全球身份标识号IDTSM以及TSM的签名组成;第二NFC终端和第一NFC终端在交易的过程中,使用第三方可信机构TSM中对应的匿名身份,以防止潜藏NFC终端对公钥 的非法截获;而在第二NFC终端持有者与第一NFC终端持有者出现交易纠纷时,则可以由该第三方可信机构TSM出具第一NFC终端、第二NFC终端对应的真实IDFirst和真实IDSecond,以为解决交易纠纷提供第三方证明;
[0065] 利用第一NFC终端在第三方支付平台注册对应支付账户,并由第三方支付平台存储第一NFC终端的全球身份标识号IDFirst、支付密码;支付密码可以是数字或字母或数字、字母的组合;
[0066] 利用第二NFC终端在第三方支付平台注册对应收款账户,并由第三方支付平台存储第二NFC终端的全球身份标识号IDSecond;
[0067] (2)第一NFC终端向第三方可信机构TSM请求使用其匿名身份时,由第三方可信机构TSM产生第一NFC终端的匿名身份集合PSFirst,并将此匿名身份集合PSFirst发送给第一NFC终端;第三方可信机构TSM则存储发送给第一NFC终端的匿名身份集合PSFirst以及第一NFC终端的真实IDFirst;其中,第三方可信机构TSM生成第一NFC终端的匿名身份过程包括:
[0068] (2-1)在第三方可信机构TSM接收到第一NFC终端的匿名身份请求时,第三方可信机构TSM产生n个随机值 其中, 表示第一NFC终端的第i个匿名身份的私钥;
[0069] (2-2)第三方可信机构TSM将其产生的各随机值 与椭圆曲线基点G相乘,得到n个公钥 其中, 表示第一NFC终端的第i个匿名身份的公钥, 基点G在椭圆曲线上,椭圆曲线为:E:y2=x3+ax+b modn1,E为椭圆曲线,a,b为椭圆曲线E的系数,(x,y)是椭圆曲线E上的点,n1是椭圆曲线E的阶;其中,在本实施例的椭圆曲线E中:
[0070] a=-3,
[0071] b=64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1,
[0072] n1=6277101735386680763835789423176059013767194773182842284081;
[0073] (2-3)第三方可信机构TSM根据第一NFC终端的第i个匿名身份的私钥 以及对应该私钥 的公钥 产生得到对应第一NFC终端的第i个匿名身份的第三方可信机构TSM签名 签名 表示第三方可信机构TSM对第一NFC终端的第i个匿名身份进行了认证:
[0074]
[0075] 其中,EncK(m)表示用密钥K对信息m加密,Sigk(m)表示用密钥k对信息m签名,||为连接符号;
[0076] (2-4)第三方可信机构TSM根据其所产生的第一NFC终端的第i个匿名身份的签名得到第一NFC终端的匿名身份集合PSFirst,其中:
[0077]
[0078] (3)第一NFC终端接收到第三方可信机构TSM发送的匿名身份集合PSFirst后,断开其与第三方可信机构TSM的通信,并对第一NFC终端与第二NFC终端之间的NFC安全协议进行激活;激活NFC安全协议的过程包括:
[0079] (3-1)第一NFC终端产生随机数NFirst和随机整数RFirst,并计算、得到其自更新公钥 和 然后将 和NFirst压缩后发送给第二NFC终端,其中i i
经压缩分别变成QFirst”、QFirst'; 是基点为G的椭圆曲线E上
的点,其中,
[0080]
[0081] QTSM表示第三方可信机构TSM的公钥,kTSM表示第三方可信机构TSM的私钥;
[0082] (3-2)第二NFC终端产生随机数NSecond和随机整数RSecond,并计算、得到其自更新公钥 和 然后将 和NSecond压缩后发送给第一NFC终端,其中经压缩分别变成QSecond”i、QSecond'i:
[0083]
[0084]
[0085] 表示第二NFC终端的第i个匿名身份的公钥, 表示第二NFC终端的第i个匿名身份的私钥;
[0086] (3-3)根据第一NFC终端与第二NFC终端互相交换的公钥及随机数,分别计算其共同点P(Px,Py)、共享秘值z及共享秘钥QSSE:
[0087] (a)第一NFC终端计算得到共同点P(Px,Py)、共享秘值z及共享秘钥QSSE_First,计算得到第一NFC终端发送的密钥验证标签MacTagFirst,并发送密钥验证标签MacTagFirst给第二NFC终端验证:
[0088]
[0089] z=Px,
[0090] QSSE_First=KDF(NFirst,NSecond,IDFirst,IDSecond,Z),
[0091]
[0092] 其中,Z为共享秘值z转换后得到的对应的8比特字符串,共享秘值z与8比特字符串Z之间的转换公式为:
[0093]
[0094] z是非负整数,字符串预期长度K满足28K>z,输出的M1,M2,...,Mk是字符串Z从左到右的位值;
[0095] 验证标签MacTagFirst计算使用ISO/IEC 11770-3定义的密钥验证机制:
[0096] MacTagFirst=MAC-KC(QSSE_First,0x03,IDFirst,IDSecond,QFirst,QSecond);
[0097] 该密钥验证机制使用AES加密XCBC-MAC-96模式,计算得:
[0098] MacTagFirst=AES-XCBC-MAC-96QSSE_First(0x03||IDFirst||IDSecond||QFirst||QSecond);
[0099] (b)第二NFC终端计算得到共同点P(Px,Py)、共享秘值z及共享秘钥QSSE_second,验证第一NFC终端发送的密钥验证标签MacTagFirst,并计算得到第二NFC终端的密钥验证标签MacTagSecond,发送密钥验证标签MacTagSecond给第一NFC终端验证:
[0100]
[0101] z=Px,
[0102] QSSE_second=KDF(NFirst,NSecond,IDFirst,IDSecond,Z),
[0103]
[0104] 验证标签MacTagSecond计算使用ISO/IEC 11770-3定义的密钥验证机制:
[0105] MacTagSecond=MAC-KC(QSSE_Second,0x03,IDSecond,IDFirst,QSecond,QFirst);
[0106] 该密钥验证机制使用AES加密XCBC-MAC-96模式,计算得:
[0107]
[0108] (3-4)当第一NFC终端的密钥验证标签MacTagFirst被第二NFC终端验证通过,且第二NFC终端的密钥验证标签MacTagSecond被第一NFC终端验证通过时,则第一NFC终端、第二NFC终端均以QSSE作为共享秘钥,并进行数据通信连接,然后执行步骤(4),其中QSSE=QSSE_First=QSSE_second;否则,则中断第一NFC终端与第二NFC终端之间的通信连接;其中,[0109] 第二NFC终端验证第一NFC终端的密钥验证标签MacTagFirst过程包括:第二NFC终端根据其计算得到的共享秘钥QSSE_second,计算第一NFC终端的密钥验证标签MacTag'First,其中若MacTag'First=MacTagFirst,则表示第一NFC终端的密钥验证标签MacTagFirst被第二NFC终端验证通过,否则,表示验证未通过;
[0110] 第一NFC终端验证第二NFC终端的密钥验证标签MacTagSecond过程包括:第一NFC终端根据其计算得到的共享秘钥QSSE_First,计算第二NFC终端的密钥验证标签MacTag'Second,其中 若MacTag'Second=MacTagSecond,则表示第二NFC终端的密钥验证标签MacTagSecond被第一NFC终端验证通过,否则,表示验证未通过;
[0111] 其中,密钥验证标签MacTag'First、MacTag'Second的计算均使用ISO/IEC 11770-3定义的密钥验证机制,密钥验证机制均使用AES加密XCBC-MAC-96模式;
[0112] (4)第一NFC终端获取自身的GPS定位数据并接收第二NFC终端发送来的GPS定位数据,第一NFC终端根据自身GPS定位数据以及接收的GPS定位数据,计算第一NFC终端与第二NFC终端之间的物理距离d:
[0113] 若两者间的物理距离d大于第一NFC终端的预设距离d0,表示第二NFC终端为潜在攻击用户,则第一NFC终端中断与第二NFC终端的通信连接,例如,NFC的通信距离在20cm以内,第一NFC终端内的预设距离d0可以设置成20cm;否则,第一NFC终端继续保持与第二NFC终端的通信连接,并执行步骤(5);
[0114] (5)利用第一NFC终端生成虚拟键盘,并通过虚拟键盘输入支付密码,然后由第一NFC终端将支付密码、全球身份标识号IDFirst发送给第三方支付平台,其中,虚拟键盘的界面为动态界面,且动态界面上具有0~9十个数字,数字在动态界面上的布局是随机的;图2给出了虚拟键盘上0~9十个数字的随机布局情况;另外,虚拟键盘上也可以是字母或者字母、数字的组合;
[0115] (6)第三方支付平台接收第一NFC终端发送的支付密码和全球身份标识号IDFirst,且判断接收的支付密码、全球身份标识号IDFirst与第三方支付平台内存储的预设支付密码、全球身份标识号IDFirst一致时,则将第一NFC终端对应支付账户的款项转入给第二NFC终端对应的收款账户,并发送成功支付通知给第一NFC终端,以提示第一NFC终端与第二NFC终端之间安全地完成了点对点通信。