CN107483429B - 一种数据加密方法和装置 - Google Patents
一种数据加密方法和装置 Download PDFInfo
- Publication number
- CN107483429B CN107483429B CN201710677433.4A CN201710677433A CN107483429B CN 107483429 B CN107483429 B CN 107483429B CN 201710677433 A CN201710677433 A CN 201710677433A CN 107483429 B CN107483429 B CN 107483429B
- Authority
- CN
- China
- Prior art keywords
- server
- terminal device
- identity information
- sent
- encrypted
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 230000006854 communication Effects 0.000 claims abstract description 154
- 238000004891 communication Methods 0.000 claims abstract description 152
- 230000005540 biological transmission Effects 0.000 claims abstract description 21
- 230000004044 response Effects 0.000 claims abstract description 19
- 230000006870 function Effects 0.000 claims description 72
- 230000008859 change Effects 0.000 description 5
- 230000002452 interceptive effect Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000002708 enhancing effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 210000003739 neck Anatomy 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了一种数据加密方法及装置,其中,方法包括:终端通过NFC获取用户身份证中的第一加密身份信息;发送身份验证请求至服务器,并接收服务器返回的应答请求和通信密钥,以与服务器进行相互身份验证,验证身份是否合法;在确定服务器合法时,使用通信密钥对第一加密身份信息进行加密;将加密后的第一加密身份信息发送至服务器;接收服务器发送的第二加密身份信息;使用通信密钥对第二加密身份信息进行解密,得到第二身份信息;显示第二身份信息。通过该技术方案,对身份证数据进行加密,保证了身份证数据传输的安全性。
Description
技术领域
本发明涉及身份认证技术领域,特别涉及一种数据加密方法和装置。
背景技术
目前,身份证识别在公共安全、交通运输、金融证券、物流运输、酒店预订等诸多领域得到广泛应用。但现有身份证识别设备均是单机设备,导致资源巨大浪费、系统成本高昂、部署周期漫长、使用携带不便、升级维护费用高等缺陷。
发明内容
本发明提供一种数据加密方法及装置,用以实现保护身份数据的安全性。
根据本发明实施例的第一方面,提供一种数据加密方法,用于终端设备,包括:
通过NFC获取用户身份证中的第一加密身份信息;
发送身份验证请求至服务器,并接收所述服务器返回的应答请求和通信密钥,以与所述服务器进行相互身份验证,验证身份是否合法;
在确定所述服务器合法时,使用所述通信密钥对所述第一加密身份信息进行加密;
将加密后的第一加密身份信息发送至所述服务器,以使所述服务器根据所述通信密钥对所述加密后的第一加密身份信息进行解密,确定所述终端设备是否合法,并在确定所述终端设备合法时,使用公安部安全控制模块对所述第一加密身份信息进行再解密,得到解密后的第一身份信息,使用所述通信密钥对所述第一身份信息进行加密,得到第二加密身份信息;
接收所述服务器发送的第二加密身份信息;
使用所述通信密钥对所述第二加密身份信息进行解密,得到第二身份信息;
显示所述第二身份信息。
在该实施例中,通过本发明的加密方法对身份证数据进行加密,保证了身份证数据传输的安全性。另外,将公安部的安全空中模块设置于服务器中,这样,只要终端上具有NFC模块,就可以通过终端设备对用户身份证进行认证,从而降低身份证认证系统的成本,给公安执勤、通信识别和物流运输等行业提供了随时随地进行身份验证的方案。具体地,若终端设备上显示出第二身份信息,且第二身份信息与身份证件上显示的信息相同,则说明用户身份认证通过,如果终端设备上未显示出第二身份信息,则说明可能终端设备和服务器之间的网络出现了异常。
在一个实施例中,所述发送身份验证请求至服务器,并接收所述服务器返回的应答请求和通信密钥,包括:
随机选取整数u,并计算u与椭圆曲线的基点G的乘积,得到a;
根据服务器的公钥PB和身份标识号Bid将a发送至所述服务器,以供所述服务器在收到a后,随机选取整数r,并根据服务器的私钥dB计算(a dB,r)的单向哈希函数值K=H(adB,r),将K确定为所述通信密钥,再计算(K,r,Bid)的单向哈希函数值b=H(K,r,Bid),将(b,r)发送至所述终端设备;
接收所述服务器发送的(b,r),并计算(u PB,r)的单向哈希函数值K'=H(uPB,r),再计算(K',r,Bid)的单向哈希函数值b'=H(K',r,Bid);
比较b和b'是否相等,在b和b'相等时,确定所述服务器合法;
在b和b'不相等时,确定所述服务器不合法,断开与所述服务器之间的连接;
获取自身的身份标识号Aid和公钥PA,计算(a,r,Aid)的单向哈希函数值U=H(a,r,Aid),以及所述终端设备的签名s=u-1(U+dAax)modn;
使用所述通信密钥K对所述签名s和所述公钥PA进行加密,得到第一加密结果e=EK(s,PA),将第一加密结果e发送至所述服务器,以供所述服务器对所述终端设备进行身份验证。
在该实施例中,由于涉及到被检验对象的个人敏感信息,为切实确保通信信息的安全,不被非法和无关用户窃听或利用,通讯的安全性要求很高。为此,通信双方首先需要对彼此进行身份认证,以确认通信双方的身份合法。其次,在实现身份认证后,为防止数据被窃听或篡改,通信过程采取完整性保护和信息加密保护。因此,双方在交互信息之间还需要分配通信密钥。如果能够将身份认证和密钥分配结合起来进行,在实现身份认证的同时,也能完成通信密钥的分配,将能够在确保安全性的基础上,缩短交互时间,提高通信效率,增加用户便利性。
终端设备和服务器通信时每次均生成新的通信密钥,且通信密钥由通信双方共同决定,这样既保证了对通信双方的公平性,也可有效抵御重放攻击等安全威胁,增强安全性。
具体地,设G是椭圆曲线E上的基点,其阶为n(n为素数且足够大)。dA是用户A的私钥,其公钥为PA=dAG。dB是解码服务器B的私钥,其公钥为PB=dBG。
在本方案中,要实现手机客户端A和解码服务器B进行通信。双方需要共享的信息包括大素数P,椭圆曲线上的基点G,G的阶n,安全单向哈希函数H(),A的签名算法ECDSA及其验证算法,单向加解密算法EK(M)及DK(M)。
解码服务器B的公钥PB及身份标识号Bid是预先公告用户。终端设备A的公钥PA是临时产生的,并由A在交互过程中必要的时候将其发送给服务器B。
具体执行步骤如下:
i.由终端设备A发起通信请求。A选取随机数u∈[1,n-1],计算a=uG并将a发送给服务器B。
ii.服务器B收到消息a后,另外选取随机数r∈[1,n-1],计算K=H(adB,r)。再计算b=H(K,r,Bid),并将(b,r)发送给终端设备。若A对B之后的认证通过,K将作为双方通信的通信密钥。
iii.用户A收到(b,r),计算K'=H(uPB,r)得到K'。然后再计算b'=H(K',r,Bid)。比较b和b'是否相等。如果相等,则说明通信另一方是服务器,A实现了对服务器B的一次身份认证。若b和b'不相等,则认为正在通信的一方不是合法服务器端,断开连接。
iv.终端设备A完成对服务器的身份认证后,先计算U=H(a,r,Aid),然后对杂凑值进行签名s=u-1(U+dAax)modn,并将之前得到K作为双方接下来通信的通信密钥。A对签名s和用户A的公钥PA利用通信密钥K进行加密,得e=EK(s,PA),将加密结果e发送给服务器B。
v.服务器B收到消息e后,利用自己计算得到的通信密钥K对消息e进行脱密,得到终端设备的签名消息s和终端设备A的公钥PA。终端设备A的身份标识符Aid在双方建立连接时,可由服务器B自动获得。服务器B便可根据已掌握的a,r,Aid计算u1=Us-1modn和u2=axs- 1modn。最终可计算得到u1G+u2P=(x1',y1'),其中,P是一个大素数,E是有限域F=GF(P)上的椭圆曲线,P、G为E上的点,n是点G的阶,且P=kG,k∈[1,n-1]。若该点的第1个分量经转换后等于ax,服务器B接受正在与之通话方为合法终端设备,完成对终端设备的身份验证。同时,也完成了通信密钥K的分配。
通过上述技术方案,实现了终端设备A对服务器B的身份认证。终端设备A计算所掌握的信息,并通过验证b'=H(K',r,Bid)=b是否成立,可以确认与之通信的一方是否掌握私钥dB,从而可以实现对服务器B的身份合法性认证。同时还实现了服务器B对终端设备A的身份认证:服务器B通过验证ax=x1'modn是否成立,可以确认正在与之通信的一方是否拥有私钥dA,检验签名是否合法,从而确认终端设备A的身份合法性。并且,终端设备A的签名中包含a和随机数r,也进一步向服务器B表明了自己的身份合法性。另外,还产生并安全分配了通信密钥K:通信密钥K由通信双方产生的随机数共同决定,是新鲜的,对双方也是公平的。由于椭圆曲线上离散对数问题的难解性以及安全单向哈希函数的变换作用,使得通信密钥K的分配是安全的。
上述技术方案的安全性分析如下:
1)本方案的安全性是基于椭圆曲线上的离散对数难题。当前,尚无有效算法可以在可接受的时间内解决该难题。因此,攻击者即使知道椭圆曲线上的基点G、终端设备A的公钥PA服务器的公钥PB,也是无法得到终端设备A的私钥dA、服务器B的私钥dB的。所以终端设备A和服务器B的私钥都是安全的。
2)在第一步发送过程中,若只知道a和椭圆曲线基点G,求解终端设备选取的随机数u,同样是相当于解椭圆曲线上的离散对数问题,是困难的。所以u的机密性也得到保证。
3)终端设备A每次选取的随机数u都不同,可以防止u被截获后再次利用。
4)本方案可保证通信密钥K的新鲜性。通信密钥K由终端设备A选取的随机数u和服务器选取的随机数r共同决定的。由于每次双方选取的随机数不同,这样就保证了通信密钥是新鲜的。
5)本方案可抵抗重放攻击:每次通信,通信双方都重新选择随机数u和r,从而通信密钥是新鲜的。即使只有其中一方身份合法且执行了方案,由于该方选取的随机数与之前不同,故而攻击者也无法利用已截获的信息得到通信密钥,进而也无法通过身份验证。
6)本方案可抵抗伪装攻击:攻击者不论想伪装成哪一方,都会因为没有相应的私钥而无法完成身份验证。
7)本方案实现了通信密钥的安全分配:由于椭圆曲线上离散对数问题的难解性,攻击者无法得到终端设备A的私钥dA、服务器B的私钥dB以及随机数u,从而无法得到通信密钥K。
8)在信道中传输的都是经过安全单向哈希函数杂凑或用SM4加密后的数据,即使被截取,攻击者也是无法得到原始数据。
在一个实施例中,所述使用所述通信密钥对所述第一加密身份信息进行加密,包括:
随机选取整数R,并计算所述第一加密身份信息M的单向哈希函数值H(M);
使用所述通信密钥对所述第一加密身份信息M,单向哈希函数值H(M)和R进行加密,得到第二加密结果Ek(M,H(M),R);
发送所述第二加密结果Ek(M,H(M),R)至所述服务器。
在该实施例中,终端设备A对待发送信息M计算H(M)和Ek(M,H(M),R)。然后将Ek(M,H(M),R)发送给服务器B。服务器B接收到Ek(M,H(M),R)后,先对Ek(M,H(M),R)脱密得到M和R,然后判断是否为新的随机数。若R不是新的随机数,则直接拒绝接受信息M。若是,接下来对M进行哈希处理得到H'(M)。而后比较H(M)=H'(M)是否相等。若两者相等,则接受M。否则,拒绝接受信息M。
上述方案中,i.实现了数据完整性认证每次发送的密文。包含信息M的和其杂凑值H(M)。在传输中,若数据因为传输中丢失或被篡改而发生改变,接收方验证时,H(M)=H'(M)不会成立,从而接收方拒绝接受消息M。ii.实现了消息新鲜性认证。发送方在发送的消息中,加入了一个新的随机数R。接收方通过验证该随机数R是否为新鲜的,来确保每次接收的消息均为新鲜消息。攻击者若立即重放该消息,则会因为无法通过随机数检验而失败。若攻击者想在下次通信中重放该消息进行攻击,则会因为通信密钥K发生改变而根本无法正确解密该消息,攻击也无法达成。因此,本方案可以抵抗重放攻击。iii.实现了消息源认证。本方案中,消息源认证通过两个方面进行保证。一是通信密钥K。通信中,只有合法通信双方才拥有通信密钥K。在不考虑重放攻击时,可以确认只有合法通信方才能发送被正确加密的密文或接收并解密得到正确的明文。二是随机数R。假使消息来自于攻击者的重放,则会因为无法通过消息新鲜性认证而被拒绝。因而,方案可实现消息源认证,抵抗伪造攻击。并且方案中实现完整性认证过程中,仅涉及两次哈希运算和两次数据比较,运算量较小,计算效率较高。具体地,哈希运算可以采用SM3算法,SM3算法是国家密码管理局公布的商用密码杂凑算法,适合软硬件实现。
根据本发明实施例的第二方面,提供一种数据加密方法,用于服务器,包括:
接收终端设备发送的身份验证请求,并根据所述身份验证请求发送应答请求和通信密钥至所述终端设备,以与所述终端设备进行相互身份验证,验证身份是否合法;
在确定所述终端设备合法时,接收所述终端设备发送的加密后的第一加密身份信息;
使用所述通信密钥对所述加密后的第一加密身份信息进行解密,确定所述终端设备是否合法;
在确定所述终端设备合法时,使用公安部安全控制模块对所述第一加密身份信息进行再解密,得到解密后的第一身份信息,使用所述通信密钥对所述第一身份信息进行加密,得到第二加密身份信息;
发送所述第二加密身份信息至所述终端设备,以使所述终端设备对所述第二加密身份信息进行解密得到第二身份信息,并显示所述第二身份信息。
在一个实施例中,所述接收终端设备发送的身份验证请求,并根据所述身份验证请求发送应答请求和通信密钥至所述终端设备,包括:
接收所述终端设备发送的随机选取的整数u与椭圆曲线的基点G的乘积a;
在收到a后,随机选取整数r,并根据服务器的私钥dB计算(a dB,r)的单向哈希函数值K=H(adB,r),将K确定为所述通信密钥,再计算(K,r,Bid)的单向哈希函数值b=H(K,r,Bid),将(b,r)发送至所述终端设备,以供所述终端设备确定所述服务器是否合法;
接收终端设备发送的第一加密结果e=EK(s,PA),其中,所述第一加密结果包括终端设备的签名s和公钥PA,所述终端设备的签名s=u-1(U+dAax)modn;
使用所述通信密钥对所述第一加密结果进行解密,得到所述终端设备的签名s和公钥PA;
根据所述终端设备的签名s、公钥PA和终端设备的身份标识号Aid,计算u1=Us- 1modn和u2=axs-1modn,其中,ax表示x1的模n值,x1表示a=uG的横坐标;
计算u1G+u2P=(x1',y1'),根据计算结果确定所述终端设备是否合法,其中,P是一个大素数,E是有限域F=GF(P)上的椭圆曲线,P、G为E上的点,n是点G的阶,且P=kG,k∈[1,n-1]。
在一个实施例中,所述方法还包括:
接收终端设备发送的第二加密结果Ek(M,H(M),R),其中,M表示第一加密身份信息,H(M)表示M的单向哈希函数值,R表示所述终端设备随机选取的整数;
对所述第二加密结果进行解密,得到所述终端设备随机选取的整数R和第一加密身份信息;
判断R是不是新的随机数,在确定R不是新的随机数时,拒绝接受所述第一加密身份信息;
在确定R是新的随机数时,计算所述第一加密身份信息的单向哈希函数值H'(M),并确定所述H'(M)与H(M)是否相同;
在确定所述H'(M)与H(M)相同时,接受所述第一加密身份信息,否则,拒绝接受所述第一加密身份信息。
根据本发明实施例的第三方面,提供一种数据加密装置,用于终端设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
通过NFC获取用户身份证中的第一加密身份信息;
发送身份验证请求至服务器,并接收所述服务器返回的应答请求和通信密钥,以与所述服务器进行相互身份验证,验证身份是否合法;
在确定所述服务器合法时,使用所述通信密钥对所述第一加密身份信息进行加密;
将加密后的第一加密身份信息发送至所述服务器,以使所述服务器根据所述通信密钥对所述加密后的第一加密身份信息进行解密,确定所述终端设备是否合法,并在确定所述终端设备合法时,使用公安部安全控制模块对所述第一加密身份信息进行再解密,得到解密后的第一身份信息,使用所述通信密钥对所述第一身份信息进行加密,得到第二加密身份信息;
接收所述服务器发送的第二加密身份信息;
使用所述通信密钥对所述第二加密身份信息进行解密,得到第二身份信息;
显示所述第二身份信息。
在一个实施例中,所述发送身份验证请求至服务器,并接收所述服务器返回的应答请求和通信密钥,包括:
随机选取整数u,并计算u与椭圆曲线的基点G的乘积,得到a;
根据服务器的公钥PB和身份标识号Bid将a发送至所述服务器,以供所述服务器在收到a后,随机选取整数r,并根据服务器的私钥dB计算(a dB,r)的单向哈希函数值K=H(adB,r),将K确定为所述通信密钥,再计算(K,r,Bid)的单向哈希函数值b=H(K,r,Bid),将(b,r)发送至所述终端设备;
接收所述服务器发送的(b,r),并计算(u PB,r)的单向哈希函数值K'=H(uPB,r),再计算(K',r,Bid)的单向哈希函数值b'=H(K',r,Bid);
比较b和b'是否相等,在b和b'相等时,确定所述服务器合法;
在b和b'不相等时,确定所述服务器不合法,断开与所述服务器之间的连接;
获取自身的身份标识号Aid和公钥PA,计算(a,r,Aid)的单向哈希函数值U=H(a,r,Aid),以及所述终端设备的签名s=u-1(U+dAax)modn;
使用所述通信密钥K对所述签名s和所述公钥PA进行加密,得到第一加密结果e=EK(s,PA),将第一加密结果e发送至所述服务器,以供所述服务器对所述终端设备进行身份验证。
在一个实施例中,所述使用所述通信密钥对所述第一加密身份信息进行加密,包括:
随机选取整数R,并计算所述第一加密身份信息M的单向哈希函数值H(M);
使用所述通信密钥对所述第一加密身份信息M,单向哈希函数值H(M)和R进行加密,得到第二加密结果Ek(M,H(M),R);
发送所述第二加密结果Ek(M,H(M),R)至所述服务器。
根据本发明实施例的第四方面,提供一种数据加密装置,用于服务器,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
接收终端设备发送的身份验证请求,并根据所述身份验证请求发送应答请求和通信密钥至所述终端设备,以与所述终端设备进行相互身份验证,验证身份是否合法;
在确定所述终端设备合法时,接收所述终端设备发送的加密后的第一加密身份信息;
使用所述通信密钥对所述加密后的第一加密身份信息进行解密,确定所述终端设备是否合法;
在确定所述终端设备合法时,使用公安部安全控制模块对所述第一加密身份信息进行再解密,得到解密后的第一身份信息,使用所述通信密钥对所述第一身份信息进行加密,得到第二加密身份信息;
发送所述第二加密身份信息至所述终端设备,以使所述终端设备对所述第二加密身份信息进行解密得到第二身份信息,并显示所述第二身份信息。
在一个实施例中,所述接收终端设备发送的身份验证请求,并根据所述身份验证请求发送应答请求和通信密钥至所述终端设备,包括:
接收所述终端设备发送的随机选取的整数u与椭圆曲线的基点G的乘积a;
在收到a后,随机选取整数r,并根据服务器的私钥dB计算(a dB,r)的单向哈希函数值K=H(adB,r),将K确定为所述通信密钥,再计算(K,r,Bid)的单向哈希函数值b=H(K,r,Bid),将(b,r)发送至所述终端设备,以供所述终端设备确定所述服务器是否合法;
接收终端设备发送的第一加密结果e=EK(s,PA),其中,所述第一加密结果包括终端设备的签名s和公钥PA,所述终端设备的签名s=u-1(U+dAax)modn;
使用所述通信密钥对所述第一加密结果进行解密,得到所述终端设备的签名s和公钥PA;
根据所述终端设备的签名s、公钥PA和终端设备的身份标识号Aid,计算u1=Us- 1modn和u2=axs-1modn,其中,ax表示x1的模n值,x1表示a=uG的横坐标;
计算u1G+u2P=(x1',y1'),根据计算结果确定所述终端设备是否合法,其中,P是一个大素数,E是有限域F=GF(P)上的椭圆曲线,P、G为E上的点,n是点G的阶,且P=kG,k∈[1,n-1]。
在一个实施例中,所述处理器还被配置为:
接收终端设备发送的第二加密结果Ek(M,H(M),R),其中,M表示第一加密身份信息,H(M)表示M的单向哈希函数值,R表示所述终端设备随机选取的整数;
对所述第二加密结果进行解密,得到所述终端设备随机选取的整数R和第一加密身份信息;
判断R是不是新的随机数,在确定R不是新的随机数时,拒绝接受所述第一加密身份信息;
在确定R是新的随机数时,计算所述第一加密身份信息的单向哈希函数值H'(M),并确定所述H'(M)与H(M)是否相同;
在确定所述H'(M)与H(M)相同时,接受所述第一加密身份信息,否则,拒绝接受所述第一加密身份信息。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1是根据一示例性实施例示出的一种数据加密方法的流程图。
图2是根据一示例性实施例示出的一种数据加密方法中步骤S102的流程图。
图3是根据一示例性实施例示出的一种数据加密方法中步骤S103的流程图。
图4是根据一示例性实施例示出的一种数据加密方法的流程图。
图5是根据一示例性实施例示出的一种数据加密方法中步骤S401的流程图。
图6是根据一示例性实施例示出的另一种数据加密方法的流程图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
图1是根据一示例性实施例示出的一种数据加密方法的流程图。该数据加密方法应用于终端设备中,该终端设备可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等任一具有NFC模块的设备。如图1所示,该方法包括步骤S101-S107:
在步骤S101中,通过NFC获取用户身份证中的第一加密身份信息;
在步骤S102中,发送身份验证请求至服务器,并接收服务器返回的应答请求和通信密钥,以与服务器进行相互身份验证,验证身份是否合法;
在步骤S103中,在确定服务器合法时,使用通信密钥对第一加密身份信息进行加密;
在步骤S104中,将加密后的第一加密身份信息发送至服务器,以使服务器根据通信密钥对加密后的第一加密身份信息进行解密,确定终端设备是否合法,并在确定终端设备合法时,使用公安部安全控制模块对第一加密身份信息进行再解密,得到解密后的第一身份信息,使用通信密钥对第一身份信息进行加密,得到第二加密身份信息;
在步骤S105中,接收服务器发送的第二加密身份信息;
在步骤S106中,使用通信密钥对第二加密身份信息进行解密,得到第二身份信息;
在步骤S107中,显示第二身份信息。
在该实施例中,通过本发明的加密方法对身份证数据进行加密,保证了身份证数据传输的安全性。另外,将公安部的安全空中模块设置于服务器中,这样,只要终端上具有NFC模块,就可以通过终端设备对用户身份证进行认证,从而降低身份证认证系统的成本,给公安执勤、通信识别和物流运输等行业提供了随时随地进行身份验证的方案。具体地,若终端设备上显示出第二身份信息,且第二身份信息与身份证件上显示的信息相同,则说明用户身份认证通过,如果终端设备上未显示出第二身份信息,则说明可能终端设备和服务器之间的网络出现了异常。
图2是根据一示例性实施例示出的一种数据加密方法中步骤S102的流程图。
在一个实施例中,步骤S102包括步骤S201-S207:
在步骤S201中,随机选取整数u,并计算u与椭圆曲线的基点G的乘积,得到a;
在步骤S202中,根据服务器的公钥PB和身份标识号Bid将a发送至服务器,以供服务器在收到a后,随机选取整数r,并根据服务器的私钥dB计算(a dB,r)的单向哈希函数值K=H(adB,r),将K确定为通信密钥,再计算(K,r,Bid)的单向哈希函数值b=H(K,r,Bid),将(b,r)发送至终端设备;
在步骤S203中,接收服务器发送的(b,r),并计算(u PB,r)的单向哈希函数值K'=H(uPB,r),再计算(K',r,Bid)的单向哈希函数值b'=H(K',r,Bid);
在步骤S204中,比较b和b'是否相等,在b和b'相等时,确定服务器合法;
在步骤S205中,在b和b'不相等时,确定服务器不合法,断开与服务器之间的连接;
在步骤S206中,获取自身的身份标识号Aid和公钥PA,计算(a,r,Aid)的单向哈希函数值U=H(a,r,Aid),以及终端设备的签名s=u-1(U+dAax)modn;
在步骤S207中,使用通信密钥K对签名s和公钥PA进行加密,得到第一加密结果e=EK(s,PA),将第一加密结果e发送至服务器,以供服务器对终端设备进行身份验证。
在该实施例中,由于涉及到被检验对象的个人敏感信息,为切实确保通信信息的安全,不被非法和无关用户窃听或利用,通讯的安全性要求很高。为此,通信双方首先需要对彼此进行身份认证,以确认通信双方的身份合法。其次,在实现身份认证后,为防止数据被窃听或篡改,通信过程采取完整性保护和信息加密保护。因此,双方在交互信息之间还需要分配通信密钥。如果能够将身份认证和密钥分配结合起来进行,在实现身份认证的同时,也能完成通信密钥的分配,将能够在确保安全性的基础上,缩短交互时间,提高通信效率,增加用户便利性。
终端设备和服务器通信时每次均生成新的通信密钥,且通信密钥由通信双方共同决定,这样既保证了对通信双方的公平性,也可有效抵御重放攻击等安全威胁,增强安全性。
具体地,设G是椭圆曲线E上的基点,其阶为n(n为素数且足够大)。dA是用户A的私钥,其公钥为PA=dAG。dB是解码服务器B的私钥,其公钥为PB=dBG。
在本方案中,要实现手机客户端A和解码服务器B进行通信。双方需要共享的信息包括大素数P,椭圆曲线上的基点G,G的阶n,安全单向哈希函数H(),A的签名算法ECDSA及其验证算法,单向加解密算法EK(M)及DK(M)。
解码服务器B的公钥PB及身份标识号Bid是预先公告用户。终端设备A的公钥PA是临时产生的,并由A在交互过程中必要的时候将其发送给服务器B。
具体执行步骤如下:
i.由终端设备A发起通信请求。A选取随机数u∈[1,n-1],计算a=uG并将a发送给服务器B。
ii.服务器B收到消息a后,另外选取随机数r∈[1,n-1],计算K=H(adB,r)。再计算b=H(K,r,Bid),并将(b,r)发送给终端设备。若A对B之后的认证通过,K将作为双方通信的通信密钥。
iii.用户A收到(b,r),计算K'=H(uPB,r)得到K'。然后再计算b'=H(K',r,Bid)。比较b和b'是否相等。如果相等,则说明通信另一方是服务器,A实现了对服务器B的一次身份认证。若b和b'不相等,则认为正在通信的一方不是合法服务器端,断开连接。
iv.终端设备A完成对服务器的身份认证后,先计算U=H(a,r,Aid),然后对杂凑值进行签名s=u-1(U+dAax)modn,并将之前得到K作为双方接下来通信的通信密钥。A对签名s和用户A的公钥PA利用通信密钥K进行加密,得e=EK(s,PA),将加密结果e发送给服务器B。
v.服务器B收到消息e后,利用自己计算得到的通信密钥K对消息e进行脱密,得到终端设备的签名消息s和终端设备A的公钥PA。终端设备A的身份标识符Aid在双方建立连接时,可由服务器B自动获得。服务器B便可根据已掌握的a,r,Aid计算u1=Us-1modn和u2=axs- 1modn。最终可计算得到u1G+u2P=(x1',y1'),其中,P是一个大素数,E是有限域F=GF(P)上的椭圆曲线,P、G为E上的点,n是点G的阶,且P=kG,k∈[1,n-1]。若该点的第1个分量经转换后等于ax,服务器B接受正在与之通话方为合法终端设备,完成对终端设备的身份验证。同时,也完成了通信密钥K的分配。
通过上述技术方案,实现了终端设备A对服务器B的身份认证。终端设备A计算所掌握的信息,并通过验证b'=H(K',r,Bid)=b是否成立,可以确认与之通信的一方是否掌握私钥dB,从而可以实现对服务器B的身份合法性认证。同时还实现了服务器B对终端设备A的身份认证:服务器B通过验证ax=x1'modn是否成立,可以确认正在与之通信的一方是否拥有私钥dA,检验签名是否合法,从而确认终端设备A的身份合法性。并且,终端设备A的签名中包含a和随机数r,也进一步向服务器B表明了自己的身份合法性。另外,还产生并安全分配了通信密钥K:通信密钥K由通信双方产生的随机数共同决定,是新鲜的,对双方也是公平的。由于椭圆曲线上离散对数问题的难解性以及安全单向哈希函数的变换作用,使得通信密钥K的分配是安全的。
上述技术方案的安全性分析如下:
1)本方案的安全性是基于椭圆曲线上的离散对数难题。当前,尚无有效算法可以在可接受的时间内解决该难题。因此,攻击者即使知道椭圆曲线上的基点G、终端设备A的公钥PA服务器的公钥PB,也是无法得到终端设备A的私钥dA、服务器B的私钥dB的。所以终端设备A和服务器B的私钥都是安全的。
2)在第一步发送过程中,若只知道a和椭圆曲线基点G,求解终端设备选取的随机数u,同样是相当于解椭圆曲线上的离散对数问题,是困难的。所以u的机密性也得到保证。
3)终端设备A每次选取的随机数u都不同,可以防止u被截获后再次利用。
4)本方案可保证通信密钥K的新鲜性。通信密钥K由终端设备A选取的随机数u和服务器选取的随机数r共同决定的。由于每次双方选取的随机数不同,这样就保证了通信密钥是新鲜的。
5)本方案可抵抗重放攻击:每次通信,通信双方都重新选择随机数u和r,从而通信密钥是新鲜的。即使只有其中一方身份合法且执行了方案,由于该方选取的随机数与之前不同,故而攻击者也无法利用已截获的信息得到通信密钥,进而也无法通过身份验证。
6)本方案可抵抗伪装攻击:攻击者不论想伪装成哪一方,都会因为没有相应的私钥而无法完成身份验证。
7)本方案实现了通信密钥的安全分配:由于椭圆曲线上离散对数问题的难解性,攻击者无法得到终端设备A的私钥dA、服务器B的私钥dB以及随机数u,从而无法得到通信密钥K。
8)在信道中传输的都是经过安全单向哈希函数杂凑或用SM4加密后的数据,即使被截取,攻击者也是无法得到原始数据。
图3是根据一示例性实施例示出的一种数据加密方法中步骤S103的流程图。
如图3所示,在一个实施例中,上述步骤S103包括步骤S301-S303:
在步骤S301中,随机选取整数R,并计算第一加密身份信息M的单向哈希函数值H(M);
在步骤S302中,使用通信密钥对第一加密身份信息M,单向哈希函数值H(M)和R进行加密,得到第二加密结果Ek(M,H(M),R);
在步骤S303中,发送第二加密结果Ek(M,H(M),R)至服务器。
在该实施例中,终端设备A对待发送信息M计算H(M)和Ek(M,H(M),R)。然后将Ek(M,H(M),R)发送给服务器B。服务器B接收到Ek(M,H(M),R)后,先对Ek(M,H(M),R)脱密得到M和R,然后判断是否为新的随机数。若R不是新的随机数,则直接拒绝接受信息M。若是,接下来对M进行哈希处理得到H'(M)。而后比较H(M)=H'(M)是否相等。若两者相等,则接受M。否则,拒绝接受信息M。
上述方案中,i.实现了数据完整性认证每次发送的密文。包含信息M的和其杂凑值H(M)。在传输中,若数据因为传输中丢失或被篡改而发生改变,接收方验证时,H(M)=H'(M)不会成立,从而接收方拒绝接受消息M。ii.实现了消息新鲜性认证。发送方在发送的消息中,加入了一个新的随机数R。接收方通过验证该随机数R是否为新鲜的,来确保每次接收的消息均为新鲜消息。攻击者若立即重放该消息,则会因为无法通过随机数检验而失败。若攻击者想在下次通信中重放该消息进行攻击,则会因为通信密钥K发生改变而根本无法正确解密该消息,攻击也无法达成。因此,本方案可以抵抗重放攻击。iii.实现了消息源认证。本方案中,消息源认证通过两个方面进行保证。一是通信密钥K。通信中,只有合法通信双方才拥有通信密钥K。在不考虑重放攻击时,可以确认只有合法通信方才能发送被正确加密的密文或接收并解密得到正确的明文。二是随机数R。假使消息来自于攻击者的重放,则会因为无法通过消息新鲜性认证而被拒绝。因而,方案可实现消息源认证,抵抗伪造攻击。并且方案中实现完整性认证过程中,仅涉及两次哈希运算和两次数据比较,运算量较小,计算效率较高。具体地,哈希运算可以采用SM3算法,SM3算法是国家密码管理局公布的商用密码杂凑算法,适合软硬件实现。
图4是根据一示例性实施例示出的一种数据加密方法的流程图。
如图4所示,在一个实施例中,用于服务器的数据加密方法包括步骤S401-S405:
在步骤S401中,接收终端设备发送的身份验证请求,并根据身份验证请求发送应答请求和通信密钥至终端设备,以与终端设备进行相互身份验证,验证身份是否合法;
在步骤S402中,在确定终端设备合法时,接收终端设备发送的加密后的第一加密身份信息;
在步骤S403中,使用通信密钥对加密后的第一加密身份信息进行解密,确定终端设备是否合法;
在步骤S404中,在确定终端设备合法时,使用公安部安全控制模块对第一加密身份信息进行再解密,得到解密后的第一身份信息,使用通信密钥对第一身份信息进行加密,得到第二加密身份信息;
在步骤S405中,发送第二加密身份信息至终端设备,以使终端设备对第二加密身份信息进行解密得到第二身份信息,并显示第二身份信息。
在该实施例中,将公安部的安全空中模块设置于服务器中,这样,只要终端上具有NFC模块,就可以通过终端设备对用户身份证进行认证,从而降低身份证认证系统的成本,给公安执勤、通信识别和物流运输等行业提供了随时随地进行身份验证的方案。具体地,若终端设备上显示出第二身份信息,且第二身份信息与身份证件上显示的信息相同,则说明用户身份认证通过,如果终端设备上未显示出第二身份信息,则说明可能终端设备和服务器之间的网络出现了异常。
图5是根据一示例性实施例示出的一种数据加密方法中步骤S401的流程图。
如图5所示,在一个实施例中,上述步骤S401包括步骤S501-S506:
在步骤S501中,接收终端设备发送的随机选取的整数u与椭圆曲线的基点G的乘积a;
在步骤S502中,在收到a后,随机选取整数r,并根据服务器的私钥dB计算(a dB,r)的单向哈希函数值K=H(adB,r),将K确定为通信密钥,再计算(K,r,Bid)的单向哈希函数值b=H(K,r,Bid),将(b,r)发送至终端设备,以供终端设备确定服务器是否合法;
在步骤S503中,接收终端设备发送的第一加密结果e=EK(s,PA),其中,第一加密结果包括终端设备的签名s和公钥PA,终端设备的签名s=u-1(U+dAax)modn;
在步骤S504中,使用通信密钥对第一加密结果进行解密,得到终端设备的签名s和公钥PA;
在步骤S505中,根据终端设备的签名s、公钥PA和终端设备的身份标识号Aid,计算u1=Us-1modn和u2=axs-1modn,其中,ax表示x1的模n值,x1表示a=uG的横坐标;
在步骤S506中,计算u1G+u2P=(x1’,y1’)根据计算结果确定终端设备是否合法,其中,P是一个大素数,E是有限域F=GF(P)上的椭圆曲线,P、G为E上的点,n是点G的阶,且P=kG,k∈[1,n-1]。
图6是根据一示例性实施例示出的另一种数据加密方法的流程图。
如图6所示,在一个实施例中,上述方法还包括步骤S601-S605:
在步骤S601中,接收终端设备发送的第二加密结果Ek(M,H(M),R),其中,M表示第一加密身份信息,H(M)表示M的单向哈希函数值,R表示终端设备随机选取的整数;
在步骤S602中,对第二加密结果进行解密,得到终端设备随机选取的整数R和第一加密身份信息;
在步骤S603中,判断R是不是新的随机数,在确定R不是新的随机数时,拒绝接受第一加密身份信息;
在步骤S604中,在确定R是新的随机数时,计算第一加密身份信息的单向哈希函数值H’(M),并确定H’(M)与H(M)是否相同;
在步骤S605中,在确定H’(M)与H(M)相同时,接受第一加密身份信息,否则,拒绝接受第一加密身份信息。
在该实施例中,终端设备A对待发送信息M计算H(M)和Ek(M,H(M),R)。然后将Ek(M,H(M),R)发送给服务器B。服务器B接收到Ek(M,H(M),R)后,先对Ek(M,H(M),R)脱密得到M和R,然后判断是否为新的随机数。若R不是新的随机数,则直接拒绝接受信息M。若是,接下来对M进行哈希处理得到H'(M)。而后比较H(M)=H'(M)是否相等。若两者相等,则接受M。否则,拒绝接受信息M。
上述方案中,i.实现了数据完整性认证每次发送的密文。包含信息M的和其杂凑值H(M)。在传输中,若数据因为传输中丢失或被篡改而发生改变,接收方验证时,H(M)=H'(M)不会成立,从而接收方拒绝接受消息M。i i.实现了消息新鲜性认证。发送方在发送的消息中,加入了一个新的随机数R。接收方通过验证该随机数R是否为新鲜的,来确保每次接收的消息均为新鲜消息。攻击者若立即重放该消息,则会因为无法通过随机数检验而失败。若攻击者想在下次通信中重放该消息进行攻击,则会因为通信密钥K发生改变而根本无法正确解密该消息,攻击也无法达成。因此,本方案可以抵抗重放攻击。i i i.实现了消息源认证。本方案中,消息源认证通过两个方面进行保证。一是通信密钥K。通信中,只有合法通信双方才拥有通信密钥K。在不考虑重放攻击时,可以确认只有合法通信方才能发送被正确加密的密文或接收并解密得到正确的明文。二是随机数R。假使消息来自于攻击者的重放,则会因为无法通过消息新鲜性认证而被拒绝。因而,方案可实现消息源认证,抵抗伪造攻击。并且方案中实现完整性认证过程中,仅涉及两次哈希运算和两次数据比较,运算量较小,计算效率较高。具体地,哈希运算可以采用SM3算法,SM3算法是国家密码管理局公布的商用密码杂凑算法,适合软硬件实现。
根据本发明实施例的第三方面,提供一种数据加密装置,用于终端设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
通过NFC获取用户身份证中的第一加密身份信息;
发送身份验证请求至服务器,并接收所述服务器返回的应答请求和通信密钥,以与所述服务器进行相互身份验证,验证身份是否合法;
在确定所述服务器合法时,使用所述通信密钥对所述第一加密身份信息进行加密;
将加密后的第一加密身份信息发送至所述服务器,以使所述服务器根据所述通信密钥对所述加密后的第一加密身份信息进行解密,确定所述终端设备是否合法,并在确定所述终端设备合法时,使用公安部安全控制模块对所述第一加密身份信息进行再解密,得到解密后的第一身份信息,使用所述通信密钥对所述第一身份信息进行加密,得到第二加密身份信息;
接收所述服务器发送的第二加密身份信息;
使用所述通信密钥对所述第二加密身份信息进行解密,得到第二身份信息;
显示所述第二身份信息。
在一个实施例中,所述发送身份验证请求至服务器,并接收所述服务器返回的应答请求和通信密钥,包括:
随机选取整数u,并计算u与椭圆曲线的基点G的乘积,得到a;
根据服务器的公钥PB和身份标识号Bid将a发送至所述服务器,以供所述服务器在收到a后,随机选取整数r,并根据服务器的私钥dB计算(a dB,r)的单向哈希函数值K=H(adB,r),将K确定为所述通信密钥,再计算(K,r,Bid)的单向哈希函数值b=H(K,r,Bid),将(b,r)发送至所述终端设备;
接收所述服务器发送的(b,r),并计算(u PB,r)的单向哈希函数值K'=H(uPB,r),再计算(K',r,Bid)的单向哈希函数值b'=H(K',r,Bid);
比较b和b'是否相等,在b和b'相等时,确定所述服务器合法;
在b和b'不相等时,确定所述服务器不合法,断开与所述服务器之间的连接;
获取自身的身份标识号Aid和公钥PA,计算(a,r,Aid)的单向哈希函数值U=H(a,r,Aid),以及所述终端设备的签名s=u-1(U+dAax)modn;
使用所述通信密钥K对所述签名s和所述公钥PA进行加密,得到第一加密结果e=EK(s,PA),将第一加密结果e发送至所述服务器,以供所述服务器对所述终端设备进行身份验证。
在一个实施例中,所述使用所述通信密钥对所述第一加密身份信息进行加密,包括:
随机选取整数R,并计算所述第一加密身份信息M的单向哈希函数值H(M);
使用所述通信密钥对所述第一加密身份信息M,单向哈希函数值H(M)和R进行加密,得到第二加密结果Ek(M,H(M),R);
发送所述第二加密结果Ek(M,H(M),R)至所述服务器。
根据本发明实施例的第四方面,提供一种数据加密装置,用于服务器,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
接收终端设备发送的身份验证请求,并根据所述身份验证请求发送应答请求和通信密钥至所述终端设备,以与所述终端设备进行相互身份验证,验证身份是否合法;
在确定所述终端设备合法时,接收所述终端设备发送的加密后的第一加密身份信息;
使用所述通信密钥对所述加密后的第一加密身份信息进行解密,确定所述终端设备是否合法;
在确定所述终端设备合法时,使用公安部安全控制模块对所述第一加密身份信息进行再解密,得到解密后的第一身份信息,使用所述通信密钥对所述第一身份信息进行加密,得到第二加密身份信息;
发送所述第二加密身份信息至所述终端设备,以使所述终端设备对所述第二加密身份信息进行解密得到第二身份信息,并显示所述第二身份信息。
在一个实施例中,所述接收终端设备发送的身份验证请求,并根据所述身份验证请求发送应答请求和通信密钥至所述终端设备,包括:
接收所述终端设备发送的随机选取的整数u与椭圆曲线的基点G的乘积a;
在收到a后,随机选取整数r,并根据服务器的私钥dB计算(a dB,r)的单向哈希函数值K=H(adB,r),将K确定为所述通信密钥,再计算(K,r,Bid)的单向哈希函数值b=H(K,r,Bid),将(b,r)发送至所述终端设备,以供所述终端设备确定所述服务器是否合法;
接收终端设备发送的第一加密结果e=EK(s,PA),其中,所述第一加密结果包括终端设备的签名s和公钥PA,所述终端设备的签名s=u-1(U+dAax)modn;
使用所述通信密钥对所述第一加密结果进行解密,得到所述终端设备的签名s和公钥PA;
根据所述终端设备的签名s、公钥PA和终端设备的身份标识号Aid,计算u1=Us- 1modn和u2=axs-1modn,其中,ax表示x1的模n值,x1表示a=uG的横坐标;
计算u1G+u2P=(x1',y1'),根据计算结果确定所述终端设备是否合法,其中,P是一个大素数,E是有限域F=GF(P)上的椭圆曲线,P、G为E上的点,n是点G的阶,且P=kG,k∈[1,n-1]。
在一个实施例中,所述处理器还被配置为:
接收终端设备发送的第二加密结果Ek(M,H(M),R),其中,M表示第一加密身份信息,H(M)表示M的单向哈希函数值,R表示所述终端设备随机选取的整数;
对所述第二加密结果进行解密,得到所述终端设备随机选取的整数R和第一加密身份信息;
判断R是不是新的随机数,在确定R不是新的随机数时,拒绝接受所述第一加密身份信息;
在确定R是新的随机数时,计算所述第一加密身份信息的单向哈希函数值H'(M),并确定所述H'(M)与H(M)是否相同;
在确定所述H'(M)与H(M)相同时,接受所述第一加密身份信息,否则,拒绝接受所述第一加密身份信息。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (8)
1.一种数据加密方法,用于终端设备,其特征在于,包括:
通过NFC获取用户身份证中的第一加密身份信息;
发送身份验证请求至服务器,并接收所述服务器返回的应答请求和通信密钥,以与所述服务器进行相互身份验证,验证身份是否合法;
在确定所述服务器合法时,使用所述通信密钥对所述第一加密身份信息进行加密;
将加密后的第一加密身份信息发送至所述服务器,以使所述服务器根据所述通信密钥对所述加密后的第一加密身份信息进行解密,确定所述终端设备是否合法,并在确定所述终端设备合法时,使用公安部安全控制模块对所述第一加密身份信息进行再解密,得到解密后的第一身份信息,使用所述通信密钥对所述第一身份信息进行加密,得到第二加密身份信息;
接收所述服务器发送的第二加密身份信息;
使用所述通信密钥对所述第二加密身份信息进行解密,得到第二身份信息;
显示所述第二身份信息;
所述发送身份验证请求至服务器,并接收所述服务器返回的应答请求和通信密钥,包括:
随机选取整数u,并计算u与椭圆曲线的基点G的乘积,得到a;
根据服务器的公钥PB和身份标识号Bid将a发送至所述服务器,以供所述服务器在收到a后,随机选取整数r,并根据服务器的私钥dB计算(a dB,r)的单向哈希函数值K=H(adB,r),将K确定为所述通信密钥,再计算(K,r,Bid)的单向哈希函数值b=H(K,r,Bid),将(b,r)发送至所述终端设备;
接收所述服务器发送的(b,r),并计算(u PB,r)的单向哈希函数值K'=H(uPB,r),再计算(K',r,Bid)的单向哈希函数值b'=H(K',r,Bid);
比较b和b'是否相等,在b和b'相等时,确定所述服务器合法;
在b和b'不相等时,确定所述服务器不合法,断开与所述服务器之间的连接;
获取自身的身份标识号Aid和公钥PA,计算(a,r,Aid)的单向哈希函数值U=H(a,r,Aid),以及所述终端设备的签名s=u-1(U+dAax)modn;
使用所述通信密钥K对所述签名s和所述公钥PA进行加密,得到第一加密结果e=EK(s,PA),将第一加密结果e发送至所述服务器,以供所述服务器对所述终端设备进行身份验证。
2.根据权利要求1所述的方法,其特征在于,所述使用所述通信密钥对所述第一加密身份信息进行加密,包括:
随机选取整数R,并计算所述第一加密身份信息M的单向哈希函数值H(M);
使用所述通信密钥对所述第一加密身份信息M,单向哈希函数值H(M)和R进行加密,得到第二加密结果Ek(M,H(M),R);
发送所述第二加密结果Ek(M,H(M),R)至所述服务器。
3.一种数据加密方法,用于服务器,其特征在于,包括:
接收终端设备发送的身份验证请求,并根据所述身份验证请求发送应答请求和通信密钥至所述终端设备,以与所述终端设备进行相互身份验证,验证身份是否合法;
在确定所述终端设备合法时,接收所述终端设备发送的加密后的第一加密身份信息;
使用所述通信密钥对所述加密后的第一加密身份信息进行解密,确定所述终端设备是否合法;
在确定所述终端设备合法时,使用公安部安全控制模块对所述第一加密身份信息进行再解密,得到解密后的第一身份信息,使用所述通信密钥对所述第一身份信息进行加密,得到第二加密身份信息;
发送所述第二加密身份信息至所述终端设备,以使所述终端设备对所述第二加密身份信息进行解密得到第二身份信息,并显示所述第二身份信息;
所述接收终端设备发送的身份验证请求,并根据所述身份验证请求发送应答请求和通信密钥至所述终端设备,包括:
接收所述终端设备发送的随机选取的整数u与椭圆曲线的基点G的乘积a;
在收到a后,随机选取整数r,并根据服务器的私钥dB计算(a dB,r)的单向哈希函数值K=H(adB,r),将K确定为所述通信密钥,再计算(K,r,Bid)的单向哈希函数值b=H(K,r,Bid),将(b,r)发送至所述终端设备,以供所述终端设备确定所述服务器是否合法;
接收终端设备发送的第一加密结果e=EK(s,PA),其中,所述第一加密结果包括终端设备的签名s和公钥PA,所述终端设备的签名s=u-1(U+dAax)modn;
使用所述通信密钥对所述第一加密结果进行解密,得到所述终端设备的签名s和公钥PA;
根据所述终端设备的签名s、公钥PA和终端设备的身份标识号Aid,计算u1=Us-1modn和u2=axs-1modn,其中,ax表示x1的模n值,x1表示a=uG的横坐标;
计算u1G+u2P=(x'1,y'1),根据计算结果确定所述终端设备是否合法,其中,P是一个大素数,E是有限域F=GF(P)上的椭圆曲线,P、G为E上的点,n是点G的阶,且P=kG,k∈[1,n-1]。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
接收终端设备发送的第二加密结果Ek(M,H(M),R),其中,M表示第一加密身份信息,H(M)表示M的单向哈希函数值,R表示所述终端设备随机选取的整数;
对所述第二加密结果进行解密,得到所述终端设备随机选取的整数R和第一加密身份信息;
判断R是不是新的随机数,在确定R不是新的随机数时,拒绝接受所述第一加密身份信息;
在确定R是新的随机数时,计算所述第一加密身份信息的单向哈希函数值H'(M),并确定所述H'(M)与H(M)是否相同;
在确定所述H'(M)与H(M)相同时,接受所述第一加密身份信息,否则,拒绝接受所述第一加密身份信息。
5.一种数据加密装置,用于终端设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
通过NFC获取用户身份证中的第一加密身份信息;
发送身份验证请求至服务器,并接收所述服务器返回的应答请求和通信密钥,以与所述服务器进行相互身份验证,验证身份是否合法;
在确定所述服务器合法时,使用所述通信密钥对所述第一加密身份信息进行加密;
将加密后的第一加密身份信息发送至所述服务器,以使所述服务器根据所述通信密钥对所述加密后的第一加密身份信息进行解密,确定所述终端设备是否合法,并在确定所述终端设备合法时,使用公安部安全控制模块对所述第一加密身份信息进行再解密,得到解密后的第一身份信息,使用所述通信密钥对所述第一身份信息进行加密,得到第二加密身份信息;
接收所述服务器发送的第二加密身份信息;
使用所述通信密钥对所述第二加密身份信息进行解密,得到第二身份信息;显示所述第二身份信息;
所述发送身份验证请求至服务器,并接收所述服务器返回的应答请求和通信密钥,包括:
随机选取整数u,并计算u与椭圆曲线的基点G的乘积,得到a;
根据服务器的公钥PB和身份标识号Bid将a发送至所述服务器,以供所述服务器在收到a后,随机选取整数r,并根据服务器的私钥dB计算(a dB,r)的单向哈希函数值K=H(adB,r),将K确定为所述通信密钥,再计算(K,r,Bid)的单向哈希函数值b=H(K,r,Bid),将(b,r)发送至所述终端设备;
接收所述服务器发送的(b,r),并计算(u PB,r)的单向哈希函数值K'=H(uPB,r),再计算(K',r,Bid)的单向哈希函数值b'=H(K',r,Bid);
比较b和b'是否相等,在b和b'相等时,确定所述服务器合法;
在b和b'不相等时,确定所述服务器不合法,断开与所述服务器之间的连接;
获取自身的身份标识号Aid和公钥PA,计算(a,r,Aid)的单向哈希函数值U=H(a,r,Aid),以及所述终端设备的签名s=u-1(U+dAax)modn;
使用所述通信密钥K对所述签名s和所述公钥PA进行加密,得到第一加密结果e=EK(s,PA),将第一加密结果e发送至所述服务器,以供所述服务器对所述终端设备进行身份验证。
6.根据权利要求5所述的装置,其特征在于,所述使用所述通信密钥对所述第一加密身份信息进行加密,包括:
随机选取整数R,并计算所述第一加密身份信息M的单向哈希函数值H(M);
使用所述通信密钥对所述第一加密身份信息M,单向哈希函数值H(M)和R进行加密,得到第二加密结果Ek(M,H(M),R);
发送所述第二加密结果Ek(M,H(M),R)至所述服务器。
7.一种数据加密装置,用于服务器,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
接收终端设备发送的身份验证请求,并根据所述身份验证请求发送应答请求和通信密钥至所述终端设备,以与所述终端设备进行相互身份验证,验证身份是否合法;
在确定所述终端设备合法时,接收所述终端设备发送的加密后的第一加密身份信息;
使用所述通信密钥对所述加密后的第一加密身份信息进行解密,确定所述终端设备是否合法;
在确定所述终端设备合法时,使用公安部安全控制模块对所述第一加密身份信息进行再解密,得到解密后的第一身份信息,使用所述通信密钥对所述第一身份信息进行加密,得到第二加密身份信息;
发送所述第二加密身份信息至所述终端设备,以使所述终端设备对所述第二加密身份信息进行解密得到第二身份信息,并显示所述第二身份信息;
所述接收终端设备发送的身份验证请求,并根据所述身份验证请求发送应答请求和通信密钥至所述终端设备,包括:
接收所述终端设备发送的随机选取的整数u与椭圆曲线的基点G的乘积a;
在收到a后,随机选取整数r,并根据服务器的私钥dB计算(a dB,r)的单向哈希函数值K=H(adB,r),将K确定为所述通信密钥,再计算(K,r,Bid)的单向哈希函数值b=H(K,r,Bid),将(b,r)发送至所述终端设备,以供所述终端设备确定所述服务器是否合法;
接收终端设备发送的第一加密结果e=EK(s,PA),其中,所述第一加密结果包括终端设备的签名s和公钥PA,所述终端设备的签名s=u-1(U+dAax)modn;
使用所述通信密钥对所述第一加密结果进行解密,得到所述终端设备的签名s和公钥PA;
根据所述终端设备的签名s、公钥PA和终端设备的身份标识号Aid,计算u1=Us-1modn和u2=axs-1modn,其中,ax表示x1的模n值,x1表示a=uG的横坐标;
计算u1G+u2P=(x'1,y'1),根据计算结果确定所述终端设备是否合法,其中,P是一个大素数,E是有限域F=GF(P)上的椭圆曲线,P、G为E上的点,n是点G的阶,且P=kG,k∈[1,n-1]。
8.根据权利要求7所述的装置,其特征在于,所述处理器还被配置为:
接收终端设备发送的第二加密结果Ek(M,H(M),R),其中,M表示第一加密身份信息,H(M)表示M的单向哈希函数值,R表示所述终端设备随机选取的整数;
对所述第二加密结果进行解密,得到所述终端设备随机选取的整数R和第一加密身份信息;
判断R是不是新的随机数,在确定R不是新的随机数时,拒绝接受所述第一加密身份信息;
在确定R是新的随机数时,计算所述第一加密身份信息的单向哈希函数值H'(M),并确定所述H'(M)与H(M)是否相同;
在确定所述H'(M)与H(M)相同时,接受所述第一加密身份信息,否则,拒绝接受所述第一加密身份信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710677433.4A CN107483429B (zh) | 2017-08-09 | 2017-08-09 | 一种数据加密方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710677433.4A CN107483429B (zh) | 2017-08-09 | 2017-08-09 | 一种数据加密方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107483429A CN107483429A (zh) | 2017-12-15 |
CN107483429B true CN107483429B (zh) | 2019-10-11 |
Family
ID=60599985
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710677433.4A Expired - Fee Related CN107483429B (zh) | 2017-08-09 | 2017-08-09 | 一种数据加密方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107483429B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019178828A1 (zh) * | 2018-03-23 | 2019-09-26 | 深圳市大疆创新科技有限公司 | 控制方法、设备及系统 |
CN108390892B (zh) * | 2018-03-31 | 2020-10-09 | 深圳忆联信息系统有限公司 | 一种远程存储系统安全访问的控制方法和装置 |
CN111541716A (zh) * | 2020-05-14 | 2020-08-14 | 东软睿驰汽车技术(沈阳)有限公司 | 一种数据传输的方法和相关装置 |
CN112688784B (zh) * | 2020-12-23 | 2023-04-11 | 中科美络科技股份有限公司 | 一种数字签名、验证方法、装置及系统 |
CN114760026A (zh) * | 2020-12-26 | 2022-07-15 | 西安西电捷通无线网络通信股份有限公司 | 一种身份鉴别方法和装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102377759A (zh) * | 2010-08-25 | 2012-03-14 | 中国移动通信有限公司 | 业务处理系统、用户身份识别方法以及相关装置 |
CN104639329A (zh) * | 2015-02-02 | 2015-05-20 | 浙江大学 | 基于椭圆曲线码的用户身份相互认证方法 |
CN104951937A (zh) * | 2015-04-27 | 2015-09-30 | 上海浩恺信息科技有限公司 | 一种移动设备之间的鉴权方法和鉴权系统 |
CN106027252A (zh) * | 2016-01-21 | 2016-10-12 | 李明 | 一种身份证认证系统中的云认证平台 |
CN106411528A (zh) * | 2016-10-17 | 2017-02-15 | 重庆邮电大学 | 一种基于隐式证书的轻量级认证密钥协商方法 |
CN107018130A (zh) * | 2017-03-29 | 2017-08-04 | 易青松 | 一种身份证云识别认证系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4117550B2 (ja) * | 2003-03-19 | 2008-07-16 | ソニー株式会社 | 通信システム、決済管理装置および方法、携帯情報端末および情報処理方法、並びにプログラム |
US8988187B2 (en) * | 2011-01-13 | 2015-03-24 | Hong Kong Applied Science And Technology Research Institute Co., Ltd. | Proximity based biometric identification systems and methods |
-
2017
- 2017-08-09 CN CN201710677433.4A patent/CN107483429B/zh not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102377759A (zh) * | 2010-08-25 | 2012-03-14 | 中国移动通信有限公司 | 业务处理系统、用户身份识别方法以及相关装置 |
CN104639329A (zh) * | 2015-02-02 | 2015-05-20 | 浙江大学 | 基于椭圆曲线码的用户身份相互认证方法 |
CN104951937A (zh) * | 2015-04-27 | 2015-09-30 | 上海浩恺信息科技有限公司 | 一种移动设备之间的鉴权方法和鉴权系统 |
CN106027252A (zh) * | 2016-01-21 | 2016-10-12 | 李明 | 一种身份证认证系统中的云认证平台 |
CN106411528A (zh) * | 2016-10-17 | 2017-02-15 | 重庆邮电大学 | 一种基于隐式证书的轻量级认证密钥协商方法 |
CN107018130A (zh) * | 2017-03-29 | 2017-08-04 | 易青松 | 一种身份证云识别认证系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107483429A (zh) | 2017-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111371730B (zh) | 边缘计算场景下支持异构终端匿名接入的轻量级认证方法 | |
CN107483429B (zh) | 一种数据加密方法和装置 | |
Chen et al. | Security enhancement on an improvement on two remote user authentication schemes using smart cards | |
KR101508360B1 (ko) | 데이터 전송 장치 및 방법, 그리고 그 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체 | |
JP5307191B2 (ja) | 無線通信機器とサーバとの間でのデータの安全なトランザクションのためのシステムおよび方法 | |
KR20190073472A (ko) | 데이터 송신 방법, 장치 및 시스템 | |
US20110194698A1 (en) | Key Sharing System | |
CN109495445A (zh) | 基于物联网的身份认证方法、装置、终端、服务器及介质 | |
EP2140605A1 (en) | Secure electronic messaging system requiring key retrieval for deriving decryption key | |
CN103166958A (zh) | 一种文件的保护方法及系统 | |
CN110087240B (zh) | 基于wpa2-psk模式的无线网络安全数据传输方法及系统 | |
US11438316B2 (en) | Sharing encrypted items with participants verification | |
CN102164033A (zh) | 防止服务被攻击的方法、设备及系统 | |
CN107483430A (zh) | 一种基于身份证云识别的人证合一认证方法和装置 | |
CN105743641B (zh) | 一种可显式验证公钥的多接收者签密方法 | |
Chen et al. | Security analysis and improvement of user authentication framework for cloud computing | |
Madhusudhan | A secure and lightweight authentication scheme for roaming service in global mobile networks | |
CN108809633A (zh) | 一种身份认证的方法、装置及系统 | |
Chen | Secure multicast key protocol for electronic mail systems with providing perfect forward secrecy | |
Lin et al. | Authentication protocols with nonrepudiation services in personal communication systems | |
Juang et al. | Efficient 3GPP authentication and key agreement with robust user privacy protection | |
CN101437228B (zh) | 基于智能卡的无线业务的实现方法、装置和系统 | |
Chen et al. | A secure end-to-end mobile chat scheme | |
Kumaravelu et al. | Computationally efficient and secure anonymous authentication scheme for IoT‐based mobile pay‐TV systems | |
Jia et al. | A Critique of a Lightweight Identity Authentication Protocol for Vehicular Networks. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
EE01 | Entry into force of recordation of patent licensing contract | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20171215 Assignee: Xinwo (Guangzhou) Technology Co.,Ltd. Assignor: BEIJING CSI TECHNOLOGY Co.,Ltd. Contract record no.: X2021440000006 Denomination of invention: A data encryption method and device Granted publication date: 20191011 License type: Common License Record date: 20210114 |
|
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20191011 |