CN108337092B - 用于在通信网络中执行集体认证的方法和*** - Google Patents
用于在通信网络中执行集体认证的方法和*** Download PDFInfo
- Publication number
- CN108337092B CN108337092B CN201711246426.5A CN201711246426A CN108337092B CN 108337092 B CN108337092 B CN 108337092B CN 201711246426 A CN201711246426 A CN 201711246426A CN 108337092 B CN108337092 B CN 108337092B
- Authority
- CN
- China
- Prior art keywords
- node
- attestation
- value
- verification
- network
- 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.)
- Active
Links
Images
Classifications
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3271—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
-
- 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/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/3033—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to pseudo-prime or prime number generation, e.g. primality test
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3249—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using RSA or related signature schemes, e.g. Rabin scheme
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明提供用于在具有验证节点和多个证明节点的通信网络中执行集体认证的方法、***和设备。所述方法包括:通过每个证明节点基于预先确定的公开模值和由每个证明节点选定的随机值计算第一值;通过所述验证节点基于由所述多个证明节点计算出的所述第一值计算第一验证值;生成针对每个证明节点的随机数;通过每个证明节点基于所述生成的随机数、所述选定的随机值、所述每个证明节点的私钥以及所述预先确定的公开模值计算第二值;通过所述验证节点基于由所述多个证明节点计算出的所述第二值计算第二验证值;以及基于所述第一验证值、所述第二验证值和所述生成的随机数是否满足预先确定的认证条件来确定认证是否成功。
Description
技术领域
本发明大体上涉及一种用于在通信网络中执行集体认证的方法和***,所述方法和***允许验证节点(验证装置)集体地认证通信网络中的多个证明节点(证明装置)。
背景技术
现有Fiat-Shamir方法允许一个验证节点与一个证明节点之间的一对一交互,以认证通信网络中的证明节点。然而,在许多情况下,需要将通信网络中的多个证明节点作为整体来认证。典型实例是电量计网络,必须通过验证节点检查其总体完整性。在使用现有Fiat-Shamir协议的情况下,这种交互将需要与电量计一样多的一对一会话。
现有Fiat-Shamir协议的第二个缺点在于每个证明节点必须将其信息直接发送到验证节点。众所周知,传送消息所需的能量随发送器与接收器之间的距离的增加而增大。物联网(Internet of Things,IoT)节点是简单、能量受限的装置。因而,传送能量到验证节点可能昂贵且会缩短装置的寿命。因此,需要寻找一种用于认证通信网络中的证明节点以减少能量且缩短证明节点的处理时间的解决方案。
发明内容
本发明的实施例提供用于通过验证节点集体地认证通信网络中的多个证明节点的解决方案。在此解决方案中,每个证明节点仅将信息传送到其最近的相邻节点,即其父节点/子节点,以供验证节点验证,因此明显地减少到验证节点的传送能量。可互换地,集体认证可被称为群集认证。
根据本发明的第一方面,提供一种用于在具有验证节点和连接到所述验证节点的多个证明节点的通信网络中执行集体认证的方法。所述方法包括:
通过所述网络中的每个证明节点基于预先确定的公开***参数和由所述每个证明节点选定的随机值计算针对所述每个证明节点的第一值;
通过所述验证节点基于由所述网络中的所述多个证明节点计算出的多个第一值计算第一验证值;
生成针对所述网络中的所述每个证明节点的随机数;
通过所述网络中的所述每个证明节点基于针对所述每个证明节点生成的所述随机数、由所述每个证明节点选定的所述随机值、所述每个证明节点的所述私钥以及所述预先确定的公开***参数计算针对所述每个证明节点的第二值;
通过所述验证节点基于由所述网络中的所述多个证明节点计算出的多个第二值计算第二验证值;以及
通过所述验证节点基于所述第一验证值、所述第二验证值和针对所述网络中的所述多个证明节点生成的所述随机数是否满足预先确定的认证条件来确定对所述多个证明节点的认证是否成功。
参考第一方面,在第一方面的第一可能实施方式中,所述方法进一步包括:
通过所述网络中的每个证明节点将第一单位值发送到所述每个证明节点的父节点,其中如果所述网络中的所述证明节点中的一个直接连接到至少一个子节点,那么基于由所述证明节点和所述证明节点的所述至少一个子节点两者计算出的所述第一值计算所述第一单位值;且如果所述网络中的所述证明节点中的一个是离开节点,那么基于由所述证明节点计算出的所述第一值确定所述第一单位值;
其中,基于由所述证明节点计算出的所述多个第一值计算第一验证值的步骤进一步包括:
通过所述验证节点基于至少一个第一单位值计算所述第一验证值,其中通过直接连接到所述网络中的所述验证节点的至少一个证明节点相应地计算所述至少一个第一单位值中的每一个。
参考第一方面或第一方面的第一可能实施方式,在第一方面的第二可能实施方式中,所述方法进一步包括:
通过所述网络中的所述每个证明节点将第二单位值发送到所述每个证明节点的父节点,其中如果所述证明节点中的一个直接连接到至少一个子节点,那么基于由所述证明节点和所述证明节点的所述至少一个子节点两者计算出的所述第二值计算所述第二单位值;且如果所述证明节点中的一个是离开节点,那么基于由所述证明节点计算出的所述第二值确定所述第二单位值;
其中,基于由所述证明节点计算出的多个第二值计算第二验证值的步骤进一步包括:
通过所述验证节点基于至少一个第二单位值计算所述第二验证值,其中通过直接连接到所述网络中的所述验证节点的至少一个证明节点相应地计算所述至少一个第二单位值中的每一个。
参考第一方面或第一方面的第一和第二可能实施方式中的任一个,在第一方面的第三可能实施方式中,生成针对网络中的每个证明节点的随机数的步骤进一步包括:
通过所述验证节点生成针对所述网络中的所述每个证明节点的随机数;以及
直接或经由所述网络中的所述每个证明节点的父节点将针对所述每个证明节点的所述生成的随机数发送到所述每个证明节点。
参考第一方面或第一方面的第一和第二可能实施方式中的任一个,在第一方面的第四可能实施方式中,生成针对网络中的每个证明节点的随机数的步骤进一步包括:
通过所述验证节点生成根随机值且在所述网络中共享所述生成的根随机值;
通过所述每个证明节点基于所述根随机值和预先确定的函数生成针对所述每个证明节点的随机数。
参考第一方面或第一方面的第一到第四可能实施方式中的任一个,在第一方面的第五可能实施方式中,所述方法进一步包括:
通过每个证明节点或验证节点或受信任方计算网络中的每个证明节点的公钥或私钥。
参考第一方面的第五可能实施方式,在第一方面的第六可能实施方式中,基于预先确定的公开***参数和每个证明节点的标识计算每个证明节点的公钥或私钥。
参考第一方面的第六可能实施方式,在第一方面的第七可能实施方式中,预先确定的***参数是公开模数,所述公开模数是多个素数的乘积,其中所述素数中的至少两个是不同的。
参考第一方面的第六或第七可能实施方式,在第一方面的第八可能实施方式中,根据以下方程计算每个证明节点的公钥或私钥:
其中,vi=(vi,1,…,vi,k)是所述证明节点Pi的所述公钥,si=(si,1,…,si,k)是所述证明节点Pi的所述私钥,n是被称作公开模数的所述预先确定的公开***参数,u是所述网络中的所述证明节点的数目,k是不小于1的预设整数,c是不小于2的预设整数。
参考第一方面的第八可能实施方式,在第一方面的第九可能实施方式中,通过网络中的每个证明节点根据以下方程计算第一值:
其中,xi是由所述证明节点Pi,计算出的所述第一值,n是所述预先确定的公开模值,ri是由所述证明节点Pi选定的所述随机值,c是不小于2的预设整数。
参考第一方面的第九可能实施方式,在第一方面的第十可能实施方式中,根据以下方程计算第一验证值:
其中,x是所述第一验证值,xi是由所述证明节点Pi计算出的所述第一值,n是被称作公开模数的所述预先确定的***参数,u是所述网络中的所述证明节点的数目。
参考第一方面的第十可能实施方式,在第一方面的第十一可能实施方式中,根据以下方程计算第二验证值:
其中,y是所述第二验证值,yi是由所述证明节点Pi计算出的所述第二值,n是所述预先确定的公开模值,u是所述网络中的所述证明节点的数目,其中根据以下方程计算所述第二值yi:
其中,n是所述预先确定的公开模值,ri是由所述证明节点Pi选定的所述随机值,si=(si,1,…,si,k)是所述证明节点Pi的所述私钥,k是预设整数,k≥1,ei=(ei,1,…,ei,k)是针对所述证明节点Pi生成的所述随机数,其中ei,j是ei的第j位。
参考第一方面的第十一可能实施方式,在第一方面的第十二可能实施方式中,确定对多个证明节点的认证是否成功的步骤进一步包括:
如果满足以下方程,那么确定对所述多个证明节点的所述认证成功:
其中,x是所述第一验证值,y是所述第二验证值,c是所述预设整数,c≥2,vi=(vi,1,…,vi,k)是所述证明节点Pi的所述公钥,ei=(ei,1,…,ei,k)是针对所述证明节点Pi生成的所述随机数。
参考第一方面的第五到第十二可能实施方式中的任一个,在第一方面的第十三可能实施方式中,通过求关于至少随机种子和其它相关信息的加密型强伪随机函数的值而从随机种子中推导出每个证明节点的私钥。
参考第一方面的第五到第十二可能实施方式中的任一个,在第一方面的第十四可能实施方式中,通过证明节点自身或通过已被告知预先确定的公开模值的受信任方推导出每个证明节点的私钥。
参考第一方面的第五到第十二可能实施方式中的任一个,在第一方面的第十五可能实施方式中,通过从预先确定的第二群字中随机地选择第一群字且基于由第二群字的所有两两乘积组成的预设表计算第一群中的字的乘积而生成每个证明节点的私钥。
参考第一方面的第五可能实施方式,在第一方面的第十六可能实施方式中,根据以下方程计算每个证明节点的公钥或私钥:
其中,vi是所述证明节点Pi的所述公钥,si是所述证明节点Pi的所述私钥,g是循环群Gq的生成元,所述循环群Gq具有素数阶q。
参考第一方面的第十六可能实施方式,在第一方面的第十七可能实施方式中,通过每个证明节点根据以下方程计算第一值:
其中,xi是由所述证明节点Pi计算出的所述第一值,g是循环群Gq的生成元,ri是由所述证明节点Pi选定的所述随机值。
参考第一方面的第十七可能实施方式,在第一方面的第十八可能实施方式中,通过验证节点根据以下方程计算第一验证值:
其中,x是所述第一验证值,u是所述网络中的所述证明节点的数目。
参考第一方面的第十八可能实施方式,在第一方面的第十九可能实施方式中,根据以下方程计算第二验证值:
其中,y是所述第二验证值,yi是由所述证明节点Pi计算出的所述第二值,u是所述网络中的所述证明节点的数目,q是所述循环群Gq的所述素数阶,其中根据以下方程计算所述第二值yi:
yi=ri+siei mod q,或
yi=ri-siei mod q
其中,ri是由所述证明节点Pi选定的所述随机值,si是所述证明节点Pi的所述私钥,ei是针对所述证明节点Pi生成的所述随机数。
参考第一方面的第十九可能实施方式,在第一方面的第二十可能实施方式中,确定对多个证明节点的认证是否成功的步骤进一步包括:
如果所述第一验证值、所述第二验证值和针对所述网络中的所述多个证明节点生成的所述随机数满足以下方程中示出的预先确定的认证条件,那么对所述多个证明节点的所述认证成功:
其中,x是所述第一验证值,y是所述第二验证值,vi是所述证明节点Pi的所述公钥,ei是针对所述证明节点Pi生成的所述随机数。
参考第一方面的第十二或第二十可能实施方式,在第一方面的第二十一可能实施方式中,所述方法进一步包括:如果确定对多个证明节点的认证不成功,那么
通过所述验证节点将所述网络中的所述多个证明节点分类成证明节点的多个子集,且认证所述证明节点的每个子集是否满足所述预先确定的认证条件;或
通过所述验证节点执行现有Fiat-Shamir方法来确定所述网络中的所述证明节点中的每一个是否满足所述认证条件。
参考第一方面或第一方面的先前可能实施方式中的任一个,在第一方面的第二十二可能实施方式中,在计算多个第一值的步骤之前,所述方法进一步包括:
通过所述验证节点将认证请求消息(authentication request message,AR-消息)直接或经由直接连接到所述每个证明节点的父节点发送到所述每个证明节点。
根据本发明的第二方面,提供一种用于在具有验证节点和连接到所述验证节点的多个证明节点的通信网络中执行集体认证的方法。所述方法包括:
通过所述验证节点基于多个第一值计算第一验证值,其中通过所述网络中的所述多个证明节点中的一个基于预先确定的公开***参数和由所述证明节点选定的随机值单独地计算所述第一值中的每一个;
通过所述验证节点基于多个第二值计算第二验证值,其中通过所述网络中的所述多个证明节点中的一个基于针对所述证明节点生成的随机数、由所述证明节点选定的所述随机值和所述预先确定的公开***参数来单独地计算所述第二值中的每一个;以及
通过所述验证节点基于所述第一验证值、所述第二验证值和针对所述网络中的所述多个证明节点生成的所述随机数是否满足预先确定的认证条件来确定对所述多个证明节点的认证是否成功。
参考第二方面,在第二方面的第一可能实施方式中,基于多个第一值计算第一验证值的步骤进一步包括:
通过所述验证节点基于相应地从直接连接到所述验证节点的至少一个证明节点接收的至少一个第一单位值计算所述第一验证值,其中基于由直接连接到所述验证节点的证明节点计算出的第一值和由直接连接到所述验证节点的所述证明节点的至少一个子节点相应地计算出的至少一个第一值来计算所述至少一个第一单位值中的每一个。
参考第二方面或第二方面的第一可能实施方式,在第二方面的第二可能实施方式中,基于多个第二值计算第二验证值的步骤进一步包括:
通过所述验证节点基于相应地从直接连接到所述验证节点的至少一个证明节点接收的至少一个第二单位值计算所述第二验证值,其中基于由直接连接到所述验证节点的证明节点单独地计算出的第二值和由直接连接到所述验证节点的所述证明节点的至少一个子节点相应地计算出的至少一个第二值来计算所述至少一个第二单位值中的每一个。
参考第二方面或第二方面的第一和第二可能实施方式中的任一个,在第二方面的第三可能实施方式中,所述方法进一步包括:
通过所述验证节点生成针对所述网络中的每个证明节点的随机数且将所述生成的随机数发送到所述网络中的所述每个证明节点。
参考第二方面或第二方面的第一和第二可能实施方式中的任一个,在第二方面的第四可能实施方式中,所述方法进一步包括:
通过所述验证节点生成根随机值且在所述网络中共享所述生成的根随机值;
其中,通过所述网络中的每个证明节点基于所述根随机值和预先确定的函数生成针对所述每个证明节点的所述随机数。
根据本发明的第三方面,提供一种用于在具有验证节点和连接到所述验证节点的多个证明节点的通信网络中执行集体认证的方法。所述方法包括:
通过所述网络中的每个证明节点基于预先确定的公开***参数和由所述每个证明节点选定的随机值计算第一值,且将所述计算出的第一值发送到直接连接到所述每个证明节点的父节点;以及
通过所述网络中的所述每个证明节点基于针对所述每个证明节点生成的随机数、由所述每个证明节点选定的所述随机值、所述每个证明节点的所述私钥以及所述预先确定的公开***参数来计算第二值,且将所述计算出的第二值发送到直接连接到所述每个证明节点的父节点。
参考第三方面,在第三方面的第一可能实施方式中,所述方法进一步包括:
通过所述网络中的所述每个证明节点从所述验证节点接收根随机值,以及
通过所述每个证明节点基于所述所接收到的根随机值和预先定义的函数生成用于计算针对所述每个证明节点的所述第二值的随机数。
根据本发明的第四方面,提供一种用于在通信网络中执行集体认证的***。所述***包括:
验证节点和多个证明节点,
其中,所述证明节点中的每一个用于:基于预先确定的公开模值和由所述证明节点中的所述每一个选定的随机值计算第一值;且基于针对所述证明节点中的所述每一个生成的随机数、由所述证明节点中的所述每一个选定的所述随机值、所述证明节点中的所述每一个的所述私钥以及所述预先确定的公开模值计算第二值;并且
所述验证节点用于:基于由所述网络中的所述多个证明节点计算出的多个第一值计算第一验证值;基于由所述网络中的所述多个证明节点计算出的多个第二值计算第二验证值;且基于所述第一验证值、所述第二验证值和针对所述网络中的所述多个证明节点生成的所述随机数是否满足预先确定的认证条件来确定对所述多个证明节点的认证是否成功。
参考第四方面,在第四方面的第一可能实施方式中,所述证明节点中的每一个进一步用于将第一单位值发送到所述网络中的所述证明节点中的所述每一个的父节点,其中如果所述网络中的所述证明节点中的一个直接连接到所述网络中的至少一个子节点,那么基于由所述证明节点和所述网络中的所述证明节点的所述至少一个子节点两者计算出的所述第一值计算所述第一单位值;且如果所述网络中的所述证明节点中的一个是离开节点,那么基于由所述证明节点计算出的所述第一值确定所述第一单位值;
其中,所述验证节点进一步用于基于至少一个第一单位值计算所述第一验证值,其中通过直接连接到所述网络中的所述验证节点的至少一个证明节点相应地计算所述至少一个第一单位值中的每一个。
参考第四方面或第四方面的第一可能实施方式,在第四方面的第二可能实施方式中,所述网络中的所述证明节点中的每一个进一步用于将第二单位值发送到所述网络中的所述每个证明节点的父节点,其中如果所述证明节点中的一个直接连接到所述网络中的至少一个子节点,那么基于由所述证明节点和所述网络中的所述证明节点的所述至少一个子节点两者计算出的所述第二值计算所述第二单位值;且如果所述证明节点是离开节点,那么基于由所述证明节点计算出的所述第二值确定所述第二单位值;
其中,所述验证节点进一步用于基于至少一个第二单位值计算所述第二验证值,其中通过直接连接到所述网络中的所述验证节点的至少一个证明节点相应地计算所述至少一个第二单位值中的每一个。
参考第四方面或第四方面的第一和第二可能实施方式中的任一个,在第四方面的第三可能实施方式中,所述验证节点进一步用于:生成针对所述网络中的所述每个证明节点的所述随机数,且将针对所述每个证明节点的所述生成的随机数直接或经由所述网络中的所述每个证明节点的父节点发送到所述每个证明节点。
参考第四方面或第四方面的第一到第三可能实施方式中的任一个,在第四方面的第四可能实施方式中,所述验证节点进一步用于生成根随机值且在所述网络中共享所述生成的根随机值;
其中,所述证明节点中的所述每一个进一步用于基于所述根随机值和预先确定的函数生成针对所述证明节点中的所述每一个的随机数。
36参考第四方面或第四方面的第一到第四可能实施方式中的任一个,在第四方面的第五可能实施方式中,所述每个证明节点进一步用于计算所述每个证明节点的公钥或所述私钥;或所述验证节点或受信任方用于计算所述网络中的所述每个证明节点的所述公钥或所述私钥。
参考第四方面的第五可能实施方式,在第四方面的第六可能实施方式中,所述证明节点中的所述每一个或所述受信任方进一步用于基于所述预先确定的模值计算所述证明节点中的所述每一个的所述公钥或私钥。
参考第四方面的第六可能实施方式,在第四方面的第七可能实施方式中,所述预先确定的公开模值是多个素数的乘积,其中所述素数中的至少两个是不同的。
参考第四方面的第六或第七可能实施方式,在第四方面的第八可能实施方式中,所述证明节点中的每一个或所述受信任方进一步用于根据以下方程计算每个证明节点的所述公钥或私钥:
其中,vi=(vi,1,…,vi,k)是所述证明节点Pi的所述公钥,si=(si,1,…,si,k)是所述证明节点Pi的所述私钥,n是所述预先确定的公开模值,u是所述网络中的所述证明节点的数目,k是不小于1的预设整数,c是不小于2的预设整数。
参考第四方面的第八可能实施方式,在第四方面的第九可能实施方式中,证明节点中的每一个进一步用于根据以下方程计算第一值:
其中,xi是由所述证明节点Pi计算出的所述第一值,n是所述预先确定的公开模值,ri是由所述证明节点Pi选定的所述随机值,c是不小于2的预设整数。
参考第四方面的第九可能实施方式,在第四方面的第十可能实施方式中,验证节点进一步用于根据以下方程计算第一验证值:
其中,x是所述第一验证值,xi是由所述证明节点Pi计算出的所述第一值,n是所述预先确定的公开模值,u是所述网络中的所述证明节点的数目。
参考第四方面的第十可能实施方式,在第四方面的第十一可能实施方式中,网络中的证明节点中的每一个进一步用于根据以下方程计算第二值:
其中,所述验证节点进一步用于根据以下方程计算所述第二验证值:
其中,yi是由所述证明节点Pi计算出的所述第二值,ri是由所述证明节点Pi选定的所述随机值,si=(si,1,…,si,k)是所述证明节点Pi的所述私钥,k是预设整数,k≥1,ei=(ei,1,…,ei,k)是针对所述证明节点Pi生成的所述随机数,其中,ei,j是ei的第j位,n是所述预先确定的公开模值,y是所述第二验证值,u是所述网络中的所述证明节点的数目。
参考第四方面的第十一可能实施方式,在第四方面的第十二可能实施方式中,所述验证节点进一步用于:基于所述第一验证值、所述第二验证值和针对所述网络中的所述多个证明节点生成的所述随机数是否满足以下方程中所指示的所述预先确定的认证条件来确定对所述多个证明节点的所述认证是否成功:
其中,x是所述第一验证值,y是所述第二验证值,c是预设整数,c≥2,vi=(vi,1,…,vi,k)是所述证明节点Pi的所述公钥。
参考第四方面的第五到第十二可能实施方式中的任一个,在第四方面的第十三可能实施方式中,通过求关于随机种子和其它相关信息的加密型强伪随机函数的值而从随机种子中推导出每个证明节点的私钥。
参考第四方面的第五到第十二可能实施方式中的任一个,在第四方面的第十四可能实施方式中,通过证明节点自身或通过已被告知预先确定的公开模值的受信任方推导出每个证明节点的私钥。
参考第四方面的第五到第十二可能实施方式中的任一个,在第四方面的第十五可能实施方式中,通过从预先确定的第二群字中随机地选择第一群字且基于由第二群字的所有两两乘积组成的预设表计算第一群中的字的乘积而生成每个证明节点的私钥。
参考第四方面的第五可能实施方式,在第四方面的第十五可能实施方式中,所述证明节点中的每一个或所述受信任方进一步用于根据以下方程计算每个证明节点的所述公钥或私钥:
其中,vi是所述证明节点Pi的所述公钥,si是所述证明节点Pi的所述私钥,g是循环群Gq的生成元,所述循环群Gq具有素数阶q。
参考第四方面的第十五可能实施方式,在第四方面的第十六可能实施方式中,根据以下方程通过每个证明节点计算第一值:
其中,xi是由证明节点Pi计算出的所述第一值,g是循环群Gq的所述生成元,ri是由所述证明节点Pi选定的所述随机值。
参考第四方面的第十六可能实施方式,在第四方面的第十七可能实施方式中,验证节点进一步用于根据以下方程计算第一验证值:
其中,x是所述第一验证值,u是所述网络中的所述证明节点的数目。
参考第四方面的第十七可能实施方式,在第四方面的第十八可能实施方式中,证明节点中的每一个进一步用于根据以下方程计算第二值:
yi=ri+siei mod q,或
yi=ri-siei mod q
其中,所述验证节点进一步用于根据以下方程计算所述第二验证值:
其中,yi是由所述证明节点Pi计算出的所述第二值,ri是由所述证明节点Pi选定的所述随机值,si是所述证明节点Pi的所述私钥,ei是针对所述证明节点Pi生成的所述随机数,y是所述第二验证值,u是所述网络中的所述证明节点的所述数目,q是所述循环群Gq的所述素数阶。
参考第四方面的第十八可能实施方式,在第四方面的第十九可能实施方式中,所述验证节点进一步用于:基于所述第一验证值、所述第二验证值和针对所述网络中的所述多个证明节点生成的所述随机数是否满足以下方程中所指示的所述预先确定的认证条件来确定对所述多个证明节点的所述认证是否成功:
其中,x是所述第一验证值,y是所述第二验证值,vi是所述证明节点Pi的所述公钥。
参考第四方面的第十二或第十八可能实施方式,在第四方面的第二十可能实施方式中,验证节点进一步用于
如果对所述多个证明节点的所述认证不成功,那么将所述网络中的所述多个证明节点分类成证明节点的多个子集,且认证所述证明节点的每个子集是否满足预先确定的认证条件;或
执行现有Fiat-Shamir方法来确定所述网络中的所述证明节点中的每一个是否满足预先确定的认证条件。
参考第四方面或第四方面的第一到第二十可能实施方式中的任一个,所述验证节点进一步用于将认证请求消息(authentication request message,AR-消息)直接或经由直接连接到所述网络中的所述每个证明节点的父节点发送到所述每个证明节点;
其中,所述证明节点中的每一个进一步用于在接收到所述认证请求消息之后计算所述第一值。
根据本发明的第五方面,提供一种用于在包含多个证明节点的通信网络中执行集体认证的设备。所述设备用于
基于多个第一值计算第一验证值,其中通过所述网络中的所述多个证明节点中的一个基于预先确定的公开***参数和由所述证明节点选定的随机值单独地计算所述第一值中的每一个;
基于多个第二值计算第二验证值,其中通过所述网络中的所述多个证明节点中的一个基于针对所述证明节点生成的随机数、由所述证明节点选定的所述随机值、所述证明节点的所述私钥以及所述预先确定的公开***参数单独地计算所述第二值中的每一个;且
基于所述第一验证值、所述第二验证值和针对所述网络中的所述多个证明节点中的每一个生成的所述随机数是否满足预先确定的认证条件来确定对所述多个证明节点的认证是否成功。
根据本发明的第六方面,提供一种用于在包含验证节点和多个证明节点的通信网络中执行集体认证的证明节点。所述证明节点用于
基于预先确定的公开***参数和由所述证明节点选定的随机值计算第一值,且将所述计算出的第一值发送到直接连接到所述网络中的所述证明节点的父节点;
基于针对所述证明节点生成的随机数、由所述证明节点选定的所述随机值、所述证明节点的所述私钥以及所述预先确定的公开***参数计算第二值,且将所述计算出的第二值发送到直接连接到所述网络中的所述证明节点的所述父节点。
附图说明
将参考附图详细描述本发明,在附图中:
图1是说明根据本发明的第一实施例的用于在具有验证节点和连接到所述验证节点的多个证明节点的通信网络中执行集体认证的方法的流程图;
图2说明根据图1中第一实施例的一个实例的通过每个证明节点计算第一值且将第一值发送到网络中的其父节点的步骤;
图3说明根据图1中第一实施例的一个实例的通过验证节点生成随机向量且将随机向量发送到网络中的证明节点的步骤;
图4说明根据图1中第一实施例的一个实例的通过每个证明节点计算第二值且将第二值发送到网络中的其父节点的步骤;
图5是说明根据本发明的一个实施例的失败认证的过程的流程图;
图6是说明根据本发明的第二实施例的用于在具有验证节点和连接到所述验证节点的多个证明节点的通信网络中执行集体认证的方法的流程图。
具体实施方式
在以下描述中,阐述许多具体细节以便提供对本发明的各种说明性实施例的透彻理解。然而,本领域的技术人员将理解,可以在不具有这些具体细节中的一些或全部的情况下实践本发明的实施例。应理解,本文中所用的术语仅仅是出于描述特定实施例的目的,且并不意图限制本发明的范围。在图式中,在所有若干视图中,相同参考标号指代相同或相似功能性或特征。
本发明的实施例提供一种用于在具有验证节点和连接到所述验证节点的多个证明节点的通信网络中执行集体认证的方法,所述方法至少包括以下步骤:
网络中的每个证明节点基于预先确定的公开***参数和由每个证明节点选定的随机值计算针对每个证明节点的第一值;
验证节点基于由网络中的多个证明节点计算出的多个第一值计算第一验证值;
生成针对网络中的每个证明节点的随机数;
网络中的每个证明节点基于针对每个证明节点生成的随机数、由每个证明节点选定的随机值、每个证明节点的私钥以及预先确定的公开***参数计算针对每个证明节点的第二值;
验证节点基于由网络中的多个证明节点计算出的多个第二值计算第二验证值;且基于第一验证值、第二验证值和针对网络中的多个证明节点生成的随机数是否满足预先确定的认证条件来确定对多个证明节点的认证是否成功。
图1是说明根据本发明的第一实施例的用于在具有验证节点和连接到所述验证节点的多个证明节点的通信网络中执行集体认证的方法的流程图。在此实施例中,通信网络包含u+1个节点/装置,所述节点/装置是验证节点/装置V和u个证明节点/装置P1、…、Pu。通信网络中的u+1个节点/装置形成生成树W。验证节点V是生成树W中的根节点,且生成树W中的所有节点/装置知晓其父节点/装置和其子节点/装置,如果存在索引,也知晓其索引。
在物联网(Internet of Things,IoT)/机器对机器(Machine to Machine,M2M)的情形下,验证节点/装置V可以是服务器、网关、路由器,或用于认证多个IoT/M2M证明节点/装置/实体Pi的合适实体。在无线传感器网络(wireless sensor network,WSN)中,证明节点/装置Pi可以是多个传感器且验证节点/装置可以是基站。
在此实施例中,基于预先确定的公开***参数和每个证明节点Pi的标识计算每个证明节点Pi的私钥和公钥。具体地说,每个证明节点Pi的私钥和公钥满足方程(1)或(2),即,可根据以下方程(1)或(2)计算每个证明节点Pi的公钥和私钥:
其中,vi=(vi,1,…,vi,k)是证明节点Pi的公钥,si=(si,1,…,si,k)是证明节点Pi的私钥,n是被称作公开模数的预先确定的公开***参数,所述公开模数是多个素数的乘积,其中素数中的一些可以相同,或素数中的至少两个不同,u是网络中的证明节点的数目;k是不小于1的预设整数;c是不小于2的预设整数。
此处,可以通过与现有Fiat-Shamir方案/方法相同的方式生成预先确定的公开***参数n、每个证明节点的私钥或公钥,且由网络中的所有节点共享n。将在下文中参考图2到图4描述认证过程。
在框101中,任选地,触发证明节点以运用验证节点V执行认证过程。
在此实施例中,如果网络具有连接到验证节点V的多层/级的证明节点,那么可通过来自验证节点V的认证请求消息(authentication request message,AR-消息)触发认证过程。验证节点V可首先将认证请求消息(authentication request message,AR-消息)发送到直接连接到验证节点的所有第一级证明节点,以触发认证过程。接着,第一级证明节点中的每一个将AR-消息相应地发送到其子节点。
参看图2,在实施例的一个实例中,直接连接到验证节点V的证明节点包含证明节点P4和证明节点P7。证明节点P4具有三个子节点P1、P2和P3,证明节点P7具有两个子节点P5和P6。在此实例中,验证节点V可首先将AR-消息发送到P4和P7,接着P4将AR-消息发送到其子节点P1到P2;P7将AR-消息发送到其子节点P5和P6。
AR-消息可含有对e的承诺,以用于即使对不可信验证节点也保证协议的零知识特性。对e的承诺是隐藏e的值,但同时当验证节点V需要公开此承诺时验证节点V无法改变e的值。此处,e是由验证节点V选定的质询,其将在下文中予以说明。
在本发明的其它实施例中,当证明节点运用验证节点V自动地执行集体或群集认证时可根据预先确定的时序触发认证过程。
在框102中,网络中的证明节点中的每一个基于预先确定的公开***参数和由每个证明节点选定的随机值计算第一值,且将计算出的第一值发送到其父节点。
在此实施例的一个实例中,证明节点中的每一个可根据以下方程(3)计算第一值:
其中,xi是由证明节点Pi计算出的第一值,n是预先确定的公开模数,ri是由证明节点Pi选定的随机值,c是不小于2的预设整数。参看图2,在此实例中,将证明节点P1、P2和P3相应计算出的第一值发送到其父证明节点P4;将证明节点P5和P6相应地计算出的第一值发送到其父证明节点P7。
在框103中,网络中的父证明节点中的每一个基于其自身的第一值和其子节点的第一值计算第一单位值,且在存在其父证明节点的情况下将计算出的第一单位值发送到其父证明节点,或将计算出的第一单位值发送到验证节点V。父证明节点包含通信网络中具有至少一个子证明节点的任何证明节点。
这些递归程序基于网络中的生成树W的层/级的数目而执行。在图2中示出的实例中,网络具有两层证明节点,因此递归程序以两个步骤执行。
在图2中示出的实例中,网络中的父证明节点包含证明节点P4和P7。证明节点P4基于其自身的第一值和其子节点P1到P3的第一值计算第一单位值。具体地说,证明节点P4通过将其自身的第一值与来自证明节点P1到P3的所有第一值相乘来计算第一单位值,且将计算出的第一单位值发送到验证节点V。类似地,证明节点P7基于其自身的第一值和其子节点P5和P6的第一值计算第一单位值。具体地说,证明节点P7通过将其自身的第一值与来自证明节点P5和P6的第一值相乘来计算第一单位值,且将计算出的第一单位值发送到验证节点V。
在框104中,验证节点V基于由直接连接到验证节点V的至少一个证明节点相应地计算出的至少一个第一单位值计算第一验证值。
在图2中示出的实例中,根据以下方程(4)计算第一验证值:
其中,x是第一验证值,xi是由证明节点Pi计算出的第一值,n是预先确定的公开模值,u是网络中的证明节点的数目。在图2中示出的实例中,网络具有7个证明节点,u=7。
替代地,父证明节点中的每一个可仅将其自身的第一值和其子节点的第一值发送到验证节点V,接着验证节点V将基于方程(4)计算第一验证值。
在框105中,生成针对通信网络中的每个证明节点的随机数。
在本发明的实施例中,可通过验证节点生成针对网络中的每个证明节点的随机数且将所述随机数发送到网络中的每个证明节点。替代地,可通过证明节点基于由验证节点生成且共享的根随机值生成针对每个证明节点的随机数。
如图3中所示出,在本发明的一个实施例中,通过验证节点V生成随机向量e=(e1,e2,e3,e4,e5,e6,e7),且将所述随机向量作为认证质询(AC-消息)发送到直接连接到验证节点的证明节点P4和P7。接着,证明节点P4将随机向量e发送到其子节点P1、P2和P3中的每一个;证明节点P7将随机向量e发送到其子装置P5和P6中的每一个。
应注意,此步骤的目的是告知网络中的证明节点中的每一个或为网络中的证明节点中的每一个提供针对其生成的随机数。可采用各种方式来实现此目的。举例来说,可将整个随机向量e共享到网络中的证明节点中的每一个,且网络中的证明节点中的每一个根据所接收的随机向量识别针对其自身生成的对应随机数。替代地,对于网络中的证明节点中的每一个,仅共享随机向量的相关部分,例如,如果证明节点在网络中是父证明节点,那么可仅将针对其自身和其子证明节点生成的随机数发送到所述证明节点,或如果证明节点在网络中无子节点,即证明节点是离开节点,那么仅将针对此证明节点生成的对应随机数发送到所述证明节点。
在框106中,网络中的证明节点中的每一个基于由每个证明节点选定的随机值、每个证明节点的私钥和针对每个证明节点生成的随机数计算第二值,且将计算出的第二值发送到网络中的其父节点。
在本发明的一个实施例中,证明节点中的每一个根据方程(5)计算第二值
其中,n是预先确定的公开模数,ri是由证明节点Pi选定的随机值,si=(si,1,…,si,k)是证明节点Pi的私钥,k是预设整数,k≥1,ei=(ei,1,…,ei,k)是针对证明节点Pi生成的随机数。
在框107中,网络中的父证明节点中的每一个基于其自身的第二值和其子装置的第二值计算第二单位值,且在存在其父节点的情况下将计算出的第二单位值发送到其父节点,或将计算出的第二单位值发送到验证节点V。
这些递归程序基于网络中的生成树W的层/级的数目而执行。在图2中示出的实例中,网络具有两层证明节点,因此递归程序以两个步骤执行。
在框108中,验证节点基于至少一个第二单位值计算第二验证值,其中通过直接连接到网络中的验证节点的至少一个证明节点,即通过网络中的验证节点的至少一个子节点,相应地计算至少一个第二单位值中的每一个。
在此实施例的一个实例中,验证节点根据以下方程(6)计算第二验证值:
其中,y是第二验证值,yi是由证明节点Pi计算出的第二值,n是预先确定的公开模值,u是网络中的证明节点的数目。
在框109中,验证节点V基于第一验证值、第二验证值和针对每个证明节点生成的随机数是否满足预先确定的认证条件来确定对多个证明节点的认证是否成功。
具体来说,如果第一验证值、第二验证值和针对每个证明节点生成的随机数满足预先确定的认证条件,那么验证节点确定对多个证明节点的认证成功,即所有证明节点均经成功认证。
在此实施例的一个实例中,验证节点根据以下方程(7)或(8),即预先确定的认证条件,确定对多个证明节点的认证是否成功:
其中,x是第一验证值,y是第二验证值,c是预设整数,c≥2,vi=(vi,1,…,vi,k)是证明节点Pi的公钥。
如果验证节点V确定所有证明节点均经成功认证,那么验证节点V可输出一组经认证的证明节点(AN)。
应注意,为了增强每个证明节点的私钥的保密性和/或缩小每个证明节点的私钥的大小,可多次运行或执行以上认证过程。
对于预先定义的安全参数λ,其为至少20。为确保此安全级别,建议对参数进行以下约束:
-应运行或执行t次认证协议,使得t≥λ/k,其中k指代每个证明节点的私钥的数目。当c接近λ时,此数目合理地接近一;
-为实现在线认证的临界20位安全级别,可要求tk≥λ≥20,这意味着攻击者可通过猜测正确的质询向量e来冒充节点通过认证,成功率约为一百万分之一;
-预先确定的公开***参数,即公开模值n应为至少512位。
技术人员应了解,每个证明节点的公钥可由另一实体经由例如由如公共或专属公钥基础设施(Public Key Infrastructure,PKI)中的受信任方(通常被称为鉴定机构)发布的、由制造商预先安设的、由所有者配置的、存储于可供所有合法节点和用户获取的密钥目录中的任何合适的构件鉴定。为了实现相互认证,验证装置V还可通过使用其私钥对新生成的消息签名来对证明节点进行自我认证。
认证网络所需的操作的总次数取决于附近的精确拓朴,但确实会受以下条件限制:
-模平方运算的次数为(2tu+1)
-模乘运算的次数小于(2u+2uk)t。
平均起来,每个证明节点仅执行恒定数目次操作。最后,仅发送O(d)(即,以d为单位的数线性)个消息,其中d是W的次数,W是logu的阶数,因此在认证期间仅发送对数数目个消息。
对于许多轻型IoT装置来说,内存是稀缺资源,因此在一些情形下,对于每个节点Pi来说存储高达k|n|位的私钥si=(si,1,…,si,k)会是一个挑战。为降低内存要求,可将每个si,j选为短随机数,例如80位。此外,节点Pi甚至可以选择随机种子bi,且接着通过求关于随机种子bi以及索引j等其它信息的加密型强伪随机函数G的值来推导出其私钥值si,j中的每一个。举例来说,每个Pi可设定si,j=G(bi,j)。实际上,G可以是加密散列函数。在根据随机种子bi生成si,j之后,仍通过方程(1)计算每个对应的公钥值vi。
应注意,作为此变体的缺点,每次认证时证明节点需要通过k次求函数G的值来从随机种子bi还原其私钥向量。
在本发明的此实施例中,将uk位质询e=(e1,…,eu)贯穿网络发送到所有单独的节点。在不损害保密性的情况下缩短e的长度的一个方法如下:
-验证节点V选择短值e,例如80位,且将其发送到节点。
-每个证明节点Pi通过求关于包含e和其索引或标识的输入的加密型强伪随机函数H的值来针对其自身计算质询ei。举例来说,可设定ei=H(e,i)。实际上,H可以是加密散列函数。
-验证装置V还以相同方式计算质询ei,且使用这些质询值根据方程(7)或(8)检查(x,y)的有效性。
在假设理想伪随机函数H的情况下,此变体不影响保密性,且此变体可结合下文所描述的其它改进使用。
类似于现有Fiat-Shamir方案,通过假设存在知晓公开模数n的素因子且负责推断出每个证明节点的私钥si,j的受信任方,可将本发明的实施例中所公开的认证过程转换为基于标识的方案。
详细地说,T可首先通过使用加密型强伪随机函数F从Pi的标识信息IDi和索引j以及其它可能信息中推导出每个证明节点Pi的公钥。举例来说,通过确定公钥vi,j=F(IDi,j),T可通过使用其模数n的素因子的秘密知识而根据方程(1)或方程(2)从vi,j中推断出私钥si,j。应注意,在此变体中,可能需要删除从使用函数F中推导出的一些vi,j,但此处理将不影响验证装置还原节点Pi的公钥。
为了进一步降低认证过程的计算成本,在本发明的一个实施例中,执行以下操作:
‐每个证明节点Pi选择m个字w1,…,wm的字母表,其中字是32位值,且计算一次,且对于所有两两乘积的查找表,pi,j=wiwj。应注意,每个条目pi,j为64位长。
‐通过从此字母表中随机抽样m′次生成值si,j′s。即,仅通过串联从字母表中获取的m′个字(位模式)来创建si,j。
‐因此,各自为32m′位整数的值si,j′s可取mm′个可能值。
为了计算响应yi,每个证明节点Pi须计算多个值si,jsi,l,所述值si,jsi,l可通过查找由所有值pi,j组成的表来计算。这相比于原始做法速度得到明显提升。
举例来说,如果m=m′=32,那么每个si是在3232=2160个可能值中选取的1024位数。
查找表的大小适中,例如是给定的,归因于查找表的对称性,仅需要存储32×(32+1)/2=528个值。由于每个条目是64位,因此将查找表大小简化为仅4224字节。
此外,如果根据一些特定规则,如第一最小m字,选择这些m个字,那么此大小可进一步缩小。
想法是如果预先计算并存储一些乘积,仅在认证过程期间在线集合这些乘积,那么可降低计算成本:对于任何1≤a,b≤k,将通过si,a,b=si,asi,b mod n定义的si,a,b的值存储于查找表。将si,a,b的组合值用于求值yi的值会产生以下三种可能的情形,分别为:
1.si,a和si,b两者均出现在yi中,此种出现的概率是1/4,在这种状况下,必须执行一次额外乘法运算;
2.si,a和si,b均未出现在yi中,此种出现的概率是1/4,在这种状况下,不执行动作;
3.si,a或si,b任一者但非两者出现在yi中,此种出现的概率是1/2,在这种状况下,需要一次单乘。
因此,期望的乘法运算次数减少了25%,也就是说,减少到(3/4)2k-1,其中k是e的大小。
可扩展方法以在γ>1大小的窗口中工作。举例来说,在γ=3的情况下,对于每个0≤l<k/3,预先计算以下值:
si,3l+1,3l+2=si,3l+1si,3l+2mod n,
si,3l+2,3l+3=si,3l+2si,3l+3mod n,
si,3l+1,3l+3=si,3l+1si,3l+3mod n,
si,3l+1,3l+2,3l+3=si,3l+1si,3l+2si,3l+3mod n。
遵循与上文相同的分析,在质询响应阶段期间预期的乘法运算次数是(7/24)2k。代价是更大的γ值需要更多的预先计算和内存。更精确地说,通过写入μ=2kmodγ且使用符号指代数字q的整数部分,得到以下折衷,其中L是si的组分数:
-自左乘次数是
认证过程可经调试以更好地适合操作约束:举例来说,在IoT的背景下,从节点输出通信是极其昂贵的操作。本发明描述变体的另一目的在于在保持保密性的同时减少所发送的信息的量,减小内存的大小和/或减少由单独节点进行的计算量。
为了简化异常过程,可明确地或暗含地运用网络中的节点之间的消息传输证明节点和验证节点的索引。
如果第一验证值、第二验证值和针对每个证明节点生成的随机数不满足预先确定的认证条件,那么认证过程失败,且验证节点V可执行如下文所描述的失败认证的过程。
上文认证过程可能归因于可能在任何步骤处偶然或故意引发的不同原因而失败。由于上文已描述的算法分布性质,单个缺陷节点足以使认证失败。根据本发明的一个实施例,验证节点可执行对失败认证的若干任选过程,包含放弃/终止认证程序、再次运用所有证明节点运行/执行认证过程、识别失败认证的证明节点的子集,或运用网络中的每个证明节点单独地执行现有Fiat-Shamir认证过程。此失败认证的过程在图5中予以说明且描述如下。
在框501中,验证节点V确定第一验证值x、第二验证值y和针对每个证明节点的随机数是否满足方程(7)或(8)中所指示的预先确定的认证条件,如果是,那么流程次序进行到框502;如果否,那么流程次序进行到框503。
在框502中,验证节点V将所有证明节点P1,…,Pu添加到之前初始化为空的集合已认证节点(Authenticated Node,AN)中。这意味着网络中的所有证明节点均经成功认证,且认证过程正常完成。否则,至少一个节点认证失败。V可选择不同的方法,以用于失败认证的过程。
在框503中,验证节点V确定是否放弃/终止认证过程。如果是,那么流程进行到框504;如果否,那么流程次序进行到框505。
在框504中,所有证明节点均未经认证且AN不变。
在框505中,验证节点V确定是否再次执行认证过程。如果是,那么流程次序进行到框501,以确定第一验证值x、第二验证值y和针对每个证明节点的随机数是否满足方程(7)或(8)中所指示的预先确定的认证条件;如果否,那么流程次序进行到框506。
在框506中,如果验证节点V选择将网络中的证明节点分类成多个子集且对证明节点的每个子集独立地执行认证过程,那么流程次序进行到框507;否则,流程次序进行到框511。
在框507到框510中,验证节点V确定针对证明节点的当前子集计算的第一验证值x和第二验证值y是否满足方程(7)或(8)中所指示的预先确定的认证条件。如果是,那么验证节点V将证明节点的当前子集添加到集合AN;如果否,那么集合AN不变。如果证明节点的当前子集是最后一个子集,那么输出集合AN,如果证明节点的当前子集不是最后一个子集,那么流程次序进行到框507。
在框511中,如果验证节点V选择使用现有Fiat-Shamir方法独立地认证网络中的证明节点,那么流程次序进行到框512。
在框512到框515中,如果验证节点V确定当前证明节点经认证,那么验证节点V将当前证明节点添加到集合AN;如果未经认证,那么集合AN不变。如果当前证明节点是最后一个证明节点,那么验证节点V输出集合AN;如果当前证明节点不是最后一个证明节点,那么流程次序进行到框512以认证下一个证明节点。
应注意,图5中所示出的实施例仅用于说明失败认证的各种任选过程。其不用于限制本发明的范围。具体地说,在本发明的其它实施例中,可调换框503、505、506和511中的步骤的次序,因为这些步骤都是独立的。
在此实施例中,考虑到输出AN,所有不在AN中的证明节点均被分类为未经成功认证的节点。
为了认证证明节点的每个子集,假设验证节点V知晓或被每个第一级父节点告知此子集中的所有证明节点的索引,第一级父节点即直接连接到验证节点V的节点。此外,视需要,对于已在认证过程中失败的证明节点的子集,每个第一级父证明节点可以类似方式找出对失败负责的第一级父证明节点的子证明节点,但此处假设第一级父证明节点知晓其子证明节点的公钥。第一级父证明节点的子证明节点可以是离开节点,即所述证明节点在网络中不具有子节点,或第一级父证明节点的子证明节点可以是在网络中具有至少一个子节点的父节点。甚至,此过程可关于下层父证明节点逐步地进一步进行,以逐个地精确识别认证失败的所有单独证明节点。
为了使现有Fiat-Shamir方案能够作为备用认证,在实施此解决方案时无实际的额外负担。这归因于以下事实:所有证明节点已参与Fiat-Shamir计算所需的硬件和软件,且可使用相同的公开***参数,例如公开模数。
上文集体/群集认证过程的基本想法可扩展到由承诺、质询和响应组成的一些其它识别方案。以下内容示出本发明如何适用于Schnorr识别方案,(C.P.Schnorr,“智能卡的有效识别和签名(Efficient identification and signatures for smart cards)”,G.Brassard编,密码学进展—1989年欧洲密码年会纪要,第239-252页,斯普林格出版社,1990年,计算机科学讲课笔记435),使得网络中的验证装置可有效地集体认证多个装置或节点。
类似于基于群集认证的Shamir-Fiat算法,上文所论述的发明可直接扩展到分布式Schnorr识别方案,其中,验证装置V可以有效方式集体认证网络内的u个节点P1,…,Pu。
图6是说明根据本发明的另一实施例的用于在包含验证节点和多个证明节点的通信网络中执行集体认证的方法的流程图。在此实施例中,根据以下方程(9)计算每个证明节点的公钥或私钥:
其中,vi是证明节点Pi的公钥,si是证明节点Pi的私钥,g是循环群Gq的生成元,所述循环群Gq具有素数阶q。循环群Gq的素数阶q的二进制长度为至少80位。
此处将不详细描述类似于图1中示出的实施例的步骤。
在框601中,触发验证节点V与证明节点之间的集体群集认证过程。
在框602中,证明节点中的每一个根据以下方程(10)计算第一值,且将计算出的第一值发送到网络中的其父节点。
其中,xi是由证明节点Pi计算出的第一值,g是循环群Gq的生成元,ri是由证明节点Pi选定的随机值。
在框603中,网络中的父证明节点中的每一个基于其自身的第一值和其子节点的第一值计算第一单位值,且在存在其父证明节点的情况下将计算出的第一单位值发送到其父证明节点,或将计算出的第一单位值发送到验证节点V。
在框604中,验证节点V计算从通信网络中的其子节点接收到的所有第一单位值的乘积,以获得第一验证值,如方程(11)中所示出:
其中,x是第一验证值,u是网络中的证明节点的数目。
在框605中,生成针对网络中每个证明节点的随机数。
在框606中,网络中的证明节点中的每一个根据方程(12)或(13)计算第二值,且将计算出的第二值发送到网络中的其父节点。
yi=ri+siei mod q,或 (12)
yi=ri-siei mod q。 (13)
其中,ri是由证明节点Pi选定的随机值,si是证明节点Pi的私钥,ei是针对证明节点Pi生成的随机数。
在框607中,网络中的父证明节点中的每一个基于其自身的第二值和其子装置的第二值计算第二单位值,且在存在其父装置的情况下将计算出的第二单位值发送到其父装置,或将计算出的第二单位值发送到验证节点V。
在框608中,验证节点根据以下方程(14)计算第二验证值:
其中y是第二验证值,yi是由证明节点Pi计算出的第二值,u是网络中的证明节点的数目,q是循环群Gq的素数阶。
在框609中,验证节点V基于第一验证值、第二验证值和针对每个证明节点生成的随机数是否满足预先确定的认证条件来确定对多个证明节点的认证是否成功。
预先确定的认证条件在以下方程(15)或(16)中示出:
其中,x是第一验证值,y是第二验证值,vi是证明节点Pi的公钥,ei是针对证明节点Pi生成的随机数。
前述和在图5中说明的失败认证的过程可适用于第二实施例中。此处将不详细地描述。
应注意,素数阶q的底层循环群Gq可选为Zp的子群,即整数模p的乘法群,其中p是具有至少512位的大素数且q是(p-1)的除数。
应注意,可以加法方式而非乘法方式指代素数阶q的底层循环群Gq。尤其,Gq可选为椭圆曲线上定义的点的循环群。
应注意,为了保证保密性,底层循环群Gq的素数阶q的二进制长度为至少80。
应注意,每个节点的公钥vi可由另一实体经由例如由如公共或专属公钥基础设施(Public Key Infrastructure,PKI)中的受信任方(通常被称为鉴定机构)发布的、由制造商预先安设的、由所有者配置的、存储于可供所有合法节点和用户获取的密钥目录中的任何合适的构件鉴定。
应注意,通过假设***管理员(通常被称为私钥生成器)对每个节点的标识进行签名以生成被视为节点的私钥的签名,甚至可将vi定义为从节点Pi的标识(和其它参数)中推导出的基于标识的公钥。具体地说,可通过使用Schnorr签名方案或如Mihir Bellare等人所研究的基于Diffie-Hellman密钥的其它签名方案(“基于标识的识别和签名方案的保密性证明(Security Proofs for Identity-Based Identification and SignatureSchemes)”,2004年欧洲密码年会纪要,第268-286页,计算机科学讲课笔记3027,斯普林格出版社,2004年)生成此签名。
应注意,为实现相互认证,验证装置V还可通过使用其私钥对新生成的消息签名来对证明节点P1,…,Pu进行自我认证。
根据上文所描述的本发明的实施例,本发明中公开的认证过程可用于在通信网络中同时对多个证明节点执行群集认证。此外,通信网络中的每个证明节点仅将信息传送到其最近的相邻节点,即其父节点/子节点,以供验证节点验证,因此明显地减少到验证节点的传送能量。
应理解,上文描述的实施例和特征应被视为示例性的且不具有限制性。举例来说,上述实施例可以与彼此组合使用。本领域的技术人员根据对本说明书的考量和对实施例的实践将清楚多个其它实施例。因此,本发明的范围应通过参考所附权利要求书以及此类权利要求书所授予的等效物的完整范围来确定。此外,出于描述明确性的目的使用了某些术语,且这些术语不会限制本发明的所公开实施例。
Claims (14)
1.一种用于在具有验证节点和连接到所述验证节点的多个证明节点的通信网络中执行集体认证的方法,其特征在于,所述方法包括:
通过所述网络中的每个证明节点基于预先确定的公开***参数和由所述每个证明节点选定的随机值计算针对所述每个证明节点的第一值;
通过所述验证节点基于由所述网络中的所述多个证明节点计算出的多个第一值计算第一验证值;
生成针对所述网络中的所述每个证明节点的随机数;
通过所述网络中的所述每个证明节点基于针对所述每个证明节点生成的所述随机数、由所述每个证明节点选定的所述随机值、所述每个证明节点的私钥以及所述预先确定的公开***参数计算针对所述每个证明节点的第二值;
通过所述验证节点基于由所述网络中的所述多个证明节点计算出的多个第二值计算第二验证值;以及
通过所述验证节点基于所述第一验证值、所述第二验证值和针对所述网络中的所述多个证明节点生成的所述随机数是否满足预先确定的认证条件来确定对所述多个证明节点的认证是否成功。
2.根据权利要求1所述的方法,其特征在于,进一步包括:
通过所述网络中的每个证明节点将第一单位值发送到所述每个证明节点的父节点,其中如果所述网络中的所述证明节点中的一个直接连接到至少一个子节点,那么基于由所述证明节点和所述证明节点的所述至少一个子节点两者计算出的所述第一值计算所述第一单位值;如果所述网络中的所述证明节点中的一个是离开节点,那么基于由所述证明节点计算出的所述第一值确定所述第一单位值;
其中,所述基于由所述证明节点计算出的所述多个第一值计算第一验证值的步骤进一步包括:
通过所述验证节点基于至少一个第一单位值计算所述第一验证值,其中通过直接连接到所述网络中的所述验证节点的至少一个证明节点相应地计算所述至少一个第一单位值中的每一个。
3.根据权利要求2所述的方法,其特征在于,进一步包括:
通过所述网络中的所述每个证明节点将第二单位值发送到所述每个证明节点的父节点,其中如果所述证明节点中的一个直接连接到至少一个子节点,那么基于由所述证明节点和所述证明节点的所述至少一个子节点两者计算出的所述第二值计算所述第二单位值;且如果所述证明节点中的一个是离开节点,那么基于由所述证明节点计算出的所述第二值确定所述第二单位值;
其中,所述基于由所述证明节点计算出的多个第二值计算第二验证值的步骤进一步包括:
通过所述验证节点基于至少一个第二单位值计算所述第二验证值,其中通过直接连接到所述网络中的所述验证节点的至少一个证明节点相应地计算所述至少一个第二单位值中的每一个。
4.根据权利要求1到3中任一项所述的方法,其特征在于,所述生成针对所述网络中的所述每个证明节点的随机数的步骤,包括:
通过所述验证节点生成针对所述网络中的所述每个证明节点的随机数;以及
直接或经由所述网络中的所述每个证明节点的父节点将针对所述每个证明节点的所述生成的随机数发送到所述每个证明节点。
5.根据权利要求1到3中任一项所述的方法,其特征在于,所述生成针对所述网络中的所述每个证明节点的随机数的步骤,包括:
通过所述验证节点生成根随机值且在所述网络中共享所述生成的根随机值;
通过所述每个证明节点基于所述根随机值和预先确定的函数生成针对所述每个证明节点的随机数。
6.一种用于在具有验证节点和连接到所述验证节点的多个证明节点的通信网络中执行集体认证的方法,其特征在于,所述方法包括:
通过所述网络中的每个证明节点基于预先确定的公开***参数和由所述每个证明节点选定的随机值计算针对所述每个证明节点的第一值,且将所述计算出的第一值发送到直接连接到所述每个证明节点的父证明节点;
通过所述网络中的每个所述父证明节点基于自身的所述第一值和直接连接到所述父证明节点的子证明节点的所述第一值计算第一单位值,且将所述计算出的第一单位值发送到所述验证节点;
通过所述验证节点基于由直接连接到所述验证节点的所述父证明节点计算出的所述第一单位值计算第一验证值;
通过所述网络中的所述每个证明节点基于针对所述每个证明节点生成的随机数、由所述每个证明节点选定的所述随机值、所述每个证明节点的私钥以及所述预先确定的公开***参数来计算第二值,且将所述计算出的第二值发送到直接连接到所述每个证明节点的父证明节点;
通过所述网络中的每个所述父证明节点基于自身的所述第二值和直接连接到所述父证明节点的子证明节点的所述第二值计算第二单位值,且将所述计算出的第二单位值发送到所述验证节点;
通过所述验证节点基于由直接连接到所述验证节点的所述父证明节点计算出的所述第二单位值计算第二验证值;
通过所述验证节点基于所述第一验证值、所述第二验证值和针对所述网络中的所述多个证明节点生成的所述随机数是否满足预先确定的认证条件来确定对所述多个证明节点的认证是否成功。
7.根据权利要求6所述的方法,其特征在于,进一步包括:
通过所述网络中的所述每个证明节点从所述验证节点接收根随机值,以及
通过所述每个证明节点基于所述所接收到的根随机值和预先确定的函数生成用于计算针对所述每个证明节点的所述第二值的随机数。
8.一种用于在通信网络中执行集体认证的***,其特征在于,包括:
验证节点和多个证明节点,
其中,所述证明节点中的每一个用于:基于预先确定的公开模值和由所述证明节点中的所述每一个选定的随机值计算第一值;且基于针对所述证明节点中的所述每一个生成的随机数、由所述证明节点中的所述每一个选定的所述随机值、所述证明节点中的所述每一个的私钥以及所述预先确定的公开模值计算第二值;
所述验证节点用于:基于由所述网络中的所述多个证明节点计算出的多个第一值计算第一验证值;基于由所述网络中的所述多个证明节点计算出的多个第二值计算第二验证值;且基于所述第一验证值、所述第二验证值和针对所述网络中的所述多个证明节点生成的所述随机数是否满足预先确定的认证条件来确定对所述多个证明节点的认证是否成功。
9.根据权利要求8所述的***,其特征在于,所述证明节点中的每一个进一步用于将第一单位值发送到所述网络中的所述证明节点中的所述每一个的父节点,其中如果所述网络中的所述证明节点中的一个直接连接到所述网络中的至少一个子节点,那么基于由所述证明节点和所述网络中的所述证明节点的所述至少一个子节点两者计算出的所述第一值计算所述第一单位值;且如果所述网络中的所述证明节点中的一个是离开节点,那么基于由所述证明节点计算出的所述第一值确定所述第一单位值;
其中,所述验证节点进一步用于基于至少一个第一单位值计算所述第一验证值,其中通过直接连接到所述网络中的所述验证节点的至少一个证明节点相应地计算所述至少一个第一单位值中的每一个。
10.根据权利要求9所述的***,其特征在于,所述网络中的所述证明节点中的每一个进一步用于将第二单位值发送到所述网络中的所述每个证明节点的父节点,其中如果所述证明节点中的一个直接连接到所述网络中的至少一个子节点,那么基于由所述证明节点和所述网络中的所述证明节点的所述至少一个子节点两者计算出的所述第二值计算所述第二单位值;且如果所述证明节点是离开节点,那么基于由所述证明节点计算出的所述第二值确定所述第二单位值;
其中,所述验证节点进一步用于基于至少一个第二单位值计算所述第二验证值,其中通过直接连接到所述网络中的所述验证节点的至少一个证明节点相应地计算所述至少一个第二单位值中的每一个。
11.根据权利要求8到10中任一项所述的***,其特征在于,所述验证节点进一步用于:生成针对所述网络中的所述每个证明节点的所述随机数,且将针对所述每个证明节点的所述生成的随机数直接或经由所述网络中的所述每个证明节点的父节点发送到所述每个证明节点。
12.根据权利要求8到10中任一项所述的***,其特征在于,所述验证节点进一步用于生成根随机值且在所述网络中共享所述生成的根随机值;
其中,所述证明节点中的所述每一个进一步用于基于所述根随机值和预先确定的函数生成针对所述证明节点中的所述每一个的随机数。
13.一种用于在包含多个证明节点的通信网络中执行集体认证的设备,其特征在于,所述设备用于
基于多个第一值计算第一验证值,其中通过所述网络中的所述多个证明节点中的一个基于预先确定的公开***参数和由所述证明节点选定的随机值单独地计算所述第一值中的每一个;
基于多个第二值计算第二验证值,其中通过所述网络中的所述多个证明节点中的一个基于针对所述证明节点生成的随机数、由所述证明节点选定的所述随机值、所述证明节点的私钥以及所述预先确定的公开***参数单独地计算所述第二值中的每一个;且
基于所述第一验证值、所述第二验证值和针对所述网络中的所述多个证明节点中的每一个生成的所述随机数是否满足预先确定的认证条件来确定对所述多个证明节点的认证是否成功。
14.一种用于在包含验证节点和多个证明节点的通信网络中执行集体认证的证明节点,其特征在于,所述证明节点用于
基于预先确定的公开***参数和由所述证明节点选定的随机值计算第一值,且将所述计算出的第一值发送到直接连接到所述网络中的所述证明节点的父证明节点;
基于针对所述每个证明节点生成的随机数、由所述每个证明节点选定的所述随机值、所述每个证明节点的私钥以及所述预先确定的公开***参数来计算第二值,且将所述计算出的第二值发送到直接连接到所述每个证明节点的所述父证明节点;
所述证明节点为父证明节点,所述证明节点还用于:
基于自身的所述第一值和直接连接到所述证明节点的子证明节点的所述第一值计算第一单位值,且将所述计算出的第一单位值发送到所述验证节点,以使得所述验证节点基于由直接连接到所述验证节点的所述父证明节点计算出的所述第一单位值计算第一验证值;
基于自身的所述第二值和直接连接到所述证明节点的子证明节点的所述第二值计算第二单位值,且将所述计算出的第二单位值发送到所述验证节点,以使得所述验证节点基于由直接连接到所述验证节点的所述父证明节点计算出的所述第二单位值计算第二验证值并基于所述第一验证值、所述第二验证值和针对所述网络中的所述多个证明节点生成的所述随机数是否满足预先确定的认证条件来确定对所述多个证明节点的认证是否成功。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SG10201700379U | 2017-01-17 | ||
SG10201700379UA SG10201700379UA (en) | 2016-01-20 | 2017-01-17 | Method and system for performing collective authentication in a communication network |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108337092A CN108337092A (zh) | 2018-07-27 |
CN108337092B true CN108337092B (zh) | 2021-02-12 |
Family
ID=62923681
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711246426.5A Active CN108337092B (zh) | 2017-01-17 | 2017-12-01 | 用于在通信网络中执行集体认证的方法和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108337092B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
MX2021002895A (es) * | 2018-09-14 | 2021-08-24 | Spectrum Brands Inc | Autenticacion de internet de dispositivos de las cosas, incluidas las cerraduras electronicas. |
CN109617735B (zh) | 2018-12-26 | 2021-04-09 | 华为技术有限公司 | 云计算数据中心***、网关、服务器及报文处理方法 |
CN110535657B (zh) * | 2019-08-21 | 2022-03-04 | 上海唯链信息科技有限公司 | 一种多个私钥管理设备相互身份认证的方法及装置 |
CN110675256B (zh) * | 2019-08-30 | 2020-08-21 | 阿里巴巴集团控股有限公司 | 部署和执行智能合约的方法及装置 |
US10783082B2 (en) | 2019-08-30 | 2020-09-22 | Alibaba Group Holding Limited | Deploying a smart contract |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101286872A (zh) * | 2008-05-29 | 2008-10-15 | 上海交通大学 | 无线传感器网络中分布式入侵检测方法 |
CN101888295A (zh) * | 2009-05-15 | 2010-11-17 | 南京理工大学 | 分布式多项安全认证方法 |
CN102271379A (zh) * | 2011-05-09 | 2011-12-07 | 陈志奎 | 一种基于上下文感知技术的物联网节点节能路由方法 |
CN103701700A (zh) * | 2013-12-24 | 2014-04-02 | 中国科学院信息工程研究所 | 一种通信网络中的节点发现方法及*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8695089B2 (en) * | 2007-03-30 | 2014-04-08 | International Business Machines Corporation | Method and system for resilient packet traceback in wireless mesh and sensor networks |
-
2017
- 2017-12-01 CN CN201711246426.5A patent/CN108337092B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101286872A (zh) * | 2008-05-29 | 2008-10-15 | 上海交通大学 | 无线传感器网络中分布式入侵检测方法 |
CN101888295A (zh) * | 2009-05-15 | 2010-11-17 | 南京理工大学 | 分布式多项安全认证方法 |
CN102271379A (zh) * | 2011-05-09 | 2011-12-07 | 陈志奎 | 一种基于上下文感知技术的物联网节点节能路由方法 |
CN103701700A (zh) * | 2013-12-24 | 2014-04-02 | 中国科学院信息工程研究所 | 一种通信网络中的节点发现方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN108337092A (zh) | 2018-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108337092B (zh) | 用于在通信网络中执行集体认证的方法和*** | |
US7308097B2 (en) | Digital signature and authentication method and apparatus | |
JP4639084B2 (ja) | セキュア認証の暗号方法および暗号装置 | |
CN110167021B (zh) | 一种车载虚拟钥匙实现及通信方法 | |
US20210243026A1 (en) | Password based threshold token generation | |
US10057071B2 (en) | Component for connecting to a data bus, and methods for implementing a cryptographic functionality in such a component | |
Hohenberger et al. | Universal signature aggregators | |
Li et al. | Provably secure certificate-based signature scheme without pairings | |
Brogle et al. | Sequential aggregate signatures with lazy verification from trapdoor permutations | |
Harkins | Dragonfly key exchange | |
CN112787796B (zh) | 一种边缘计算中检测虚假数据注入的聚合方法及装置 | |
CA2305896C (en) | Key validation scheme | |
AU2015202599B2 (en) | Methods and devices for securing keys when key-management processes are subverted by an adversary | |
Ruan et al. | After-the-fact leakage-resilient identity-based authenticated key exchange | |
Kumar et al. | Group signatures with probabilistic revocation: A computationally-scalable approach for providing privacy-preserving authentication | |
KR100989185B1 (ko) | Rsa기반 패스워드 인증을 통한 세션키 분배방법 | |
CN116707956A (zh) | 一种基于零知识证明的物联网设备认证方法和装置 | |
CN109951276A (zh) | 基于tpm的嵌入式设备远程身份认证方法 | |
US20110064216A1 (en) | Cryptographic message signature method having strengthened security, signature verification method, and corresponding devices and computer program products | |
Tsai | An improved cross-layer privacy-preserving authentication in WAVE-enabled VANETs | |
CN116055136A (zh) | 一种基于秘密共享的多目标认证方法 | |
CN115550007A (zh) | 一种基于异构***的具有等值测试功能的签密方法及*** | |
Zhang et al. | Verifier-based anonymous password-authenticated key exchange protocol in the standard model | |
Byun | PDAKE: a provably secure PUF-based device authenticated key exchange in cloud setting | |
Jin et al. | A supplement to Liu et al.'s certificateless signcryption scheme in the standard model |
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 |