一种基于nfc的点对点数据传输方法
【专利摘要】本发明涉及一种基于NFC的点对点数据传输方法,包括:1)首先两台即将进行点对点传输的NFC设备A和B均使用RSA加密算法,分别得到一组公钥和私钥2)两台NFC设备A和B两端各自生成一个随机数Ra、Rb,分别与各自设备Id,绑定组成有序数对,每台NFC设备使用对方设备的公钥加密自己的有序数对,并交换两组数对加密后的密文,使用各自的私钥解密收到的密文,得到对方传递过来的随机数和设备Id;3)每台NFC设备各自拼接两个数对,然后使用哈希算法生成会话密钥R;4)传输数据时,使用上述步骤生成的会话密钥R对要传递的数据进行加密,并将密文进行混淆拆分处理。本发明能够保证基于NFC的点对点数据传输过程的可靠性、高效性以及安全性。
【专利说明】一种基于NFC的点对点数据传输方法
【技术领域】
[0001] 本发明涉及一种点对点数据传输方法。
【背景技术】
[0002] 随着无线通讯技术的不断发展,NFC技术自出现以来,凭借自身传输带宽高、能耗 低等优势而被应用到各行业中。可以说作为RFID技术的一个延伸,NFC突破了 RFID只能 实现信息的读取及判定的局限,强调双方可以近距离滴交互信息。而在NFC产业链中最重 要的应用当数支付产业,因此,其安全性问题也逐渐成为了关注的热点。
[0003] 现阶段NFC三种工作模式中的卡模拟模式与读卡器模式的安全性加密技术已然 趋于成熟,目前业界普遍看好NFC技术,最主要的是该技术这两种工作模式的加密性能很 好,因此逐步应用在银行小额支付以及转账方面。而点对点模式作为第三种重要的工作模 式,其传输过程却存在着严重的明文传输这一安全风险。相比于另两种方式,移动设备间近 距离直接传递数据(例如交换商务名片、个人相互间的资金圈存业务、手机向NFC打印机传 输重要打印数据等方面)的安全性就显得尤为薄弱,也迫切成为需要改进的问题。
【发明内容】
[0004] 本发明的目的是改进现有的NFC点对点模式数据传输方法的缺陷,提出一种能够 保证通信过程可靠性、高效性以及安全性的基于NFC的点对点数据传输方法。本发明的技 术方案如下:
[0005] -种基于NFC的点对点数据传输方法,包括步骤如下:
[0006] 1)首先两台即将进行点对点传输的NFC设备A和B均使用RSA加密算法,分别计 算得到各自的一组公钥和私钥,对外公开交换公钥,但不公开私钥;
[0007] 2)接下来两台NFC设备A和B两端各自生成一个随机数Ra、Rb,分别与各自设备 Id,分别取名为Ida、Idb,绑定组成有序数对(Ra、Id a)、(Rb、Idb),每台NFC设备使用对方设备 的公钥加密自己的有序数对,并交换两组数对加密后的密文,然后使用各自的私钥解密收 到的密文,得到对方传递过来的随机数和设备Id ;
[0008] 3)每台NFC设备各自拼接两个数对,得到序列[Ra、Ida、R b、Idb],然后使用MD5哈 希算法从中获取一个固定长度的密钥作为接下来通讯的会话密钥R ;
[0009] 4)传输数据时,使用上述步骤生成的会话密钥R对要传递的数据Μ进行加密,将加 密后得到的密文m按照序位号n mod3结果为0、1、2的标准提取并进行拆分,拆分后重组得 到3段密文mi、m2、m 3,再将每段密文都按照序位号2n标准循环移位重排序,经过上述混淆 处理后得到最终要传输的密文Sl、s 2、s3 ;
[0010] 5)将要传输的密文Sp s2、s3分别进行传输;
[0011] 6)接收端当且仅当接收到全部的密文数据时,才将这3部分数据段按照原混淆和 拆分算法逆行恢复成原始的有序密文m,再用会话密钥R进行解密,还原出明文M。
[0012] 本发明通过在NFC协议栈之上添加自定义的NFC加密方法,对点对点传输的数据 进行加密保护,有效地消除过程中盗取窃听等安全隐患,从而提高安全性。所设计的NFC 传输加密方法兼有公开密钥密码体制与对称密钥密码体制两者的优点,结合NFC设备的实 际,使用哈希、拆分、混淆等方法实现了多重加密,充分保证了通信的安全及可靠。具体而 言,本发明具有下列特点:
[0013] (1)应用针对性强:在已有的NFC两种工作模式(卡模拟模式与读卡器模式)的 安全性加密已然趋于成熟的基础上,本发明一改过去这两种工作模式对于加密的要求,特 别依据点对点模式中出现的问题进行了有针对性的加密设计,改进措施更加专一有力。
[0014] (2)灵活选择加密方式:由于传输数据的大小对于加密的影响显著,公开密钥密 码体制适用于小型数据交换,对称密码加密体制多应用于大型数据的交换,因此设计上选 择将两者的优势相结合。RSA加密算法作为最具代表性的公钥密码体制,使用不同的加密密 钥与解密密钥,并有着"由已知加密密钥推导出解密密钥在计算上是不可行的"先天优势, 安全性良好特别适合于小数据加密,故而选择用其加密设备的基本信息;当两端均获得对 方设备的信息后,再结合自身信息各自在本地即可完成计算,确定接下来的会话密钥而无 需再进行密钥传输,可以避免拦截,并且无论接下来NFC传输数据的大小如何,对称密钥都 可以以其自身的快捷高效很方便地将数据进行加密封装。
[0015] (3)实现多重加密:为进一步确保传输安全,设计将密文按照自定义的提取拆分 规则切割成若干段密文后再传递,并且传递前要将每段密文使用自定义的规则进行序位混 淆处理。这样一来,每一段密文不仅由其自身生成的算法决定,还与其他几段密文紧密相 关;第三方只拦截其中的一段或几段不仅无法解析出局部的明文,连恢复密文正确的序列 还原出完整的密文也很难做到。因此实现了多重安全保证。
[0016] (4)改动最小原则:由于NFC加密层数据没有指定特定的加密体制,因而可以平滑 的进行升级采用密级更高的加密方案,而不需要改变已有的函数接口,从而达到保证安全 与改动最小的双重优势。
【专利附图】
【附图说明】
[0017] 图1是本发明中分析NFC点对点工作模式漏洞产生的示意图。
[0018] 图2是本发明中NFC点对点工作模式传输数据加密解密的整体运作流程图。
【具体实施方式】
[0019] 为使本发明的目的、实现方案和优点更为清晰,下面对本发明的具体实施作进一 步的详细描述,本发明的具体图解参见图1和图2所示。
[0020] (1)用两台NFC设备直接相互感应传递数据时,中途利用相关窃听装置进行拦截 抓取,分析测试结果发现,抓取到的数据不论从握手应答阶段开始还是建立连接后实际传 输,均为明文。以下图1为分析NFC点对点传输模式工作原理及发现测试漏洞的示意图。故 而需要在当前NFC协议栈之上添加额外的NFC加密方法,保护点对点模式传输的数据。
[0021] (2)算法设计上,我们可以采用公开密钥加密与对称密钥加密相结合的方式,不需 要专门的保密通道即可预先交换双方使用的公开密钥。在此基础上,结合NFC设备的具体 信息,使用公钥加密私钥解密的方式,向对方传递自己的基本信息,两方信息相结合后,哈 希计算出一个只有双方互知的对称密钥。用该对称密钥加密数据后,进一步对整段密文进 行提取拆分和混淆排序处理,之后再逐段进行发送。接收端只需要按照定义好的规则逆行 处理,解密即可得到原始明文。
[0022] (3)针对上述分析,设计具体的加密算法,步骤如下:
[0023] 1)首先两台即将进行点对点传输的NFC设备A和B均使用RSA加密算法,分别计 算得到各自的一组公钥和私钥,对外公开交换公钥,但不公开私钥;
[0024] 2)接下来两台NFC设备A和B两端各自生成一个随机数Ra、Rb,分别与各自设备 的NFCId(取名为Id a、Idb)绑定组成有序数对(Ra、Ida)、(R b、Idb)。每台NFC设备使用对方 设备的公钥加密自己的有序数对儿,并交换两组数对加密后的密文,然后使用各自的私钥 解密收到的密文,得到对方传递过来的随机数和设备Id ;
[0025] 3)交互后,两端各自拼接两个数对,得到序列[Ra、Ida、R b、Idb],然后使用MD5哈希 算法从中获取一个固定长度的密钥作为接下来通讯的会话密钥R ;
[0026] 4)传输数据时,使用上述步骤生成的会话密钥R对要传递的数据Μ进行加密。将 加密后得到的密文m按照序位号n mod3结果为0、1、2的标准提取并进行拆分,拆分后重组 得到3段密文。再将每段密文都按照序位号2n标准循环移位重排序,经过上述混 淆处理后得到最终要传输的密文 Sl、s2、s3 ;
[0027] 5)将混淆后的3部分密文数据段分别进行传输。当且仅当接收端接收到全部的密 文数据时,才可以将这3部分数据段按照原混淆和拆分算法逆行恢复成原始的有序密文m, 再用会话密钥R进行解密,还原出明文Μ。反之,当接收端希望向发送端传递数据时,亦同 理。
[0028] 由于NFC设备的Id号可以唯一标识该台设备,生成的随机数又具有即时性与任意 性,可以确保难以被伪造和复制;其次,由于RSA加密算法的安全性保证,可以确保Id号与 生成的随机数传递过程的安全;而MD5哈希算法作用于拼接后标准统一的序列可以同时在 设备两端直接产生相同的密钥结果,从而避免了只在一方生成密钥后仍需向另一方传送的 不安全性,确保了会话密钥R只在两台设备之间互相知晓而第三方无从得知,安全可靠;力口 密后的数据并未直接一整段传递,而是将其依据拆分和混淆的原理切成若干段,每段打乱 顺序重新排列,然后逐段发送,这就使得即使第三方抓取到其中某一段密文数据,没有另外 几段密文数据作支撑,照样无法恢复成顺序正确的完整密文,也就更加不可能解密得到明 文了。因此,上述4点证明了该方案的安全性。整个NFC点对点传输过程的加密解密如图 2所示。
【权利要求】
1. 一种基于NFC的点对点数据传输方法,包括步骤如下: 1) 两台即将进行点对点传输的NFC设备A和B均使用RSA加密算法,分别计算得到各 自的一组公钥和私钥,对外公开交换公钥,但不公开私钥; 2) 两台NFC设备A和B两端各自生成一个随机数Ra、Rb,分别与各自设备Id,即1(1 3和 Idb,绑定组成有序数对(Ra、Ida)、(Rb、Id b),每台NFC设备使用对方设备的公钥加密自己的 有序数对,并交换两组数对加密后的密文,然后使用各自的私钥解密收到的密文,得到对方 传递过来的随机数和设备Id ; 3) 每台NFC设备各自拼接两个数对,得到序列[Ra、Ida、Rb、Id b],然后使用MD5哈希算 法从中获取一个固定长度的密钥作为接下来通讯的会话密钥R ; 4) 传输数据时,使用上述步骤生成的会话密钥R对要传递的数据Μ进行加密,将加密后 得到的密文m按照序位号n mod3结果为0、1、2的标准提取并进行拆分,拆分后重组得到3 段密文叫、m2、m3,再将每段密文都按照序位号2n标准循环移位重排序,经过上述混淆处理 后得到最终要传输的密文Sp s2、s3 ; 5) 将要传输的密文Sp s2、s3分别进行传输; 6) 接收端当且仅当接收到全部的密文数据时,才将这3部分数据段按照原混淆和拆分 算法逆行恢复成原始的有序密文m,再用会话密钥R进行解密,还原出明文M。
【文档编号】H04L9/06GK104219054SQ201410448164
【公开日】2014年12月17日 申请日期:2014年9月4日 优先权日:2014年9月4日
【发明者】邹佳伟, 金志刚 申请人:天津大学