CN105337736B - 全同态消息认证方法、装置及*** - Google Patents

全同态消息认证方法、装置及*** Download PDF

Info

Publication number
CN105337736B
CN105337736B CN201410309571.3A CN201410309571A CN105337736B CN 105337736 B CN105337736 B CN 105337736B CN 201410309571 A CN201410309571 A CN 201410309571A CN 105337736 B CN105337736 B CN 105337736B
Authority
CN
China
Prior art keywords
calculated
result
calculation
data
character
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
Application number
CN201410309571.3A
Other languages
English (en)
Other versions
CN105337736A (zh
Inventor
陈文彬
雷浩
杨琴琴
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201410309571.3A priority Critical patent/CN105337736B/zh
Priority to PCT/CN2015/072570 priority patent/WO2016000453A1/zh
Priority to EP15775600.8A priority patent/EP3163792B1/en
Priority to US14/985,883 priority patent/US10009343B2/en
Publication of CN105337736A publication Critical patent/CN105337736A/zh
Application granted granted Critical
Publication of CN105337736B publication Critical patent/CN105337736B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3226Cryptographic 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 a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3231Biological data, e.g. fingerprint, voice or retina
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0861Network architectures or network communication protocols for network security for authentication of entities using biometrical features, e.g. fingerprint, retina-scan

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Power Engineering (AREA)
  • Collating Specific Patterns (AREA)
  • Measurement Of The Respiration, Hearing Ability, Form, And Blood Characteristics Of Living Organisms (AREA)

Abstract

本发明实施例提供一种全同态消息认证方法、装置及***,包括:获取消息认证密钥,消息认证密钥包括公钥、第一字符串和第二字符串,第一字符串为长度为n的0和1的字符串,且第一字符串中字符为1的个数为2n/3;第二字符串为长度为n的0和1的字符串,且在第二字符串中,与第一字符串中的为1的字符对应的位置上的字符包括n/3个0,并根据消息认证密钥生成待计算的数据中每个比特对应的认证指纹,向服务器发送计算请求,并接收服务器返回的待计算的数据的计算结果以及计算结果对应的认证指纹,并根据接收到的计算结果对应的认证指纹对计算结果进行正确性认证,有效降低验证过程中的计算量,提高对服务器的计算结果的验证效率。

Description

全同态消息认证方法、装置及***
技术领域
本发明实施例涉及计算机信息技术领域,尤其涉及一种全同态消息认证方法、装置及***。
背景技术
全同态加密算法包括一个产生公钥、私钥和计算钥的算法,一个加密算法,一个解密算法和一个密文计算函数,该全同态加密算法主要用于分布式计算的计算结果的认证,即全同态消息认证技术。
目前,全同态消息认证技术的具体实现方式为:终端获取消息认证密钥,该消息认证密钥包括根据上述全同态加密算法获取的公钥、私钥和计算钥,还包括:第一字符串和第二字符串,该第一字符串为随机产生的集合{1,2,…,n-1,n}的长度为n/2的子集,该第二字符串为一个长度为n的0和1组成的随机字符串,其中,n为大于或等于2的整数。终端根据该消息认证密钥上述全同态加密算法中的加密算法生成待计算的数据中每个比特的认证指纹,并将该待计算的数据、该认证指纹、该消息认证密钥以及前述全同态加密算法一起发送给服务器。服务器根据预先配置的用于计算待计算数据的计算函数计算该待计算的数据,获取计算结果;通过预先配置的哈希函数族计算该计算结果的认证指纹的第一分量,并对该消息认证密钥中的第一字符串的每个字符,根据该计算结果、待计算的数据中每个比特的认证指纹和上述计算钥,通过上述全同态加密算法中的密文计算函数进行计算,获取该计算结果的认证指纹的第二分量,最终获取完整的该计算结果的认证指纹,并将该计算结果和该计算结果的认证指纹返回给终端。终端首先根据预先配置的哈希函数族重新计算该计算结果的认证指纹的第一分量,以确认该重新计算的该计算结果的认证指纹的第一分量与服务器返回的认证指纹的第一分量相同;再进行进一步认证,针对待计算数据的第j个比特,终端第一字符串中的第i个字符,根据预先配置的伪随机函数生成伪随机串rand(i,j);并将0和该rand(i,j)输入上述加密算法获取0在伪随机串rand(i,j)下的加密密文;并根据该加密密文、预先配置的用于计算待计算数据的计算函数和上述计算钥,通过全同态加密算法中的密文计算函数进行计算,获取该计算结果的认证指纹的第i个第二分量,根据上述方法进行n/2此次计算,获取该计算结果的认证指纹的全部第二分量,然后比较服务器发送来的该计算结果的认证指纹的第二分量与终端获取的该计算结果的认证指纹的第二分量是否相同。若服务器发送来的该计算结果的认证指纹与终端重新计算的该计算结果的认证指纹相同,则确定该计算结果正确。针对待计算数据的每一个比特,都按照上述方法进行计算结果的验证。
但是,由于消息认证密钥中的第一字符串是由长度为n/2的{1,2,…,n-1,n}的子集组成的,因此,在计算待计算数据的每个比特的认证指纹时,计算复杂,且在终端认证服务器返回的计算结果时,需要重新计算计算结果,并需要对待计算数据的每个比特进行n/2次计算,才能获取计算结果对应的认证指纹的第二分量,以与第二认证指纹的第二分量进行对比认证,使得计算量较大,验证效率低。
发明内容
本发明实施例提供一种全同态消息认证方法、装置及***,有效降低验证过程中的计算量,提高对服务器的计算结果的验证效率。
本发明第一方面提供一种全同态消息认证算法,所述方法应用于终端,包括:
获取消息认证密钥,所述消息认证密钥包括公钥、第一字符串和第二字符串,所述第一字符串为长度为n的0和1的字符串,且所述第一字符串中字符为1的个数为2n/3;所述第二字符串为长度为n的0和1的字符串,且在所述第二字符串中,与所述第一字符串中的为1的字符对应的位置上的字符包括n/3个0,其中,n为大于或等于2的整数;
根据第一输入字符、所述公钥和伪随机串生成待计算的数据中的第i个比特对应的n个密文中的一个,确定所述n个密文为所述第i个比特对应的认证指纹的第二分量,其中,若所述第一字符串中的第j个字符为0,则所述第一输入字符为所述第i个比特,或者,若所述第一字符串中的第j个字符为1并且所述第二个字符串中的第j个字符为0,则所述第一输入字符为0,或者,若所述第一字符串中的第j个字符为1并且所述第二个字符串中的第j个字符为1,则所述第一输入字符为1;所述第i个比特对应的认证指纹还包括第一分量;其中,i为整数,大于或等于1,且小于或等于所述待计算的数据的总比特数t,t大于或等于1;j为整数,大于或等于1,且小于或等于n;
向服务器发送计算请求,所述计算请求包括:所述待计算的数据,所述待计算的数据中的每个比特对应的所述认证指纹、预先配置的全同态加密算法、以及所述消息认证密钥;
接收所述服务器返回的所述待计算的数据的计算结果以及所述计算结果对应的认证指纹,并根据接收到的所述计算结果对应的认证指纹对所述计算结果进行正确性认证。
结合第一方面,在第一方面的第一种可能的实施方式中,所述所述第i个比特对应的认证指纹由以下步骤生成,包括:
根据预先配置的伪随机函数和所述待计算的数据中的第i个比特的标签生成所述第i个比特对应的认证指纹的第一分量;
根据所述伪随机函数生成与所述待计算的数据中的第i个比特对应的n个伪随机串;
根据所述第一字符串、所述第二字符串和所述n个伪随机串生成所述第i个比特对应的n个密文作为所述第i个比特对应的认证指纹的第二分量,其中,若所述第一字符串中的第j个字符为0,则将所述第i个比特、所述公钥和所述第j个伪随机串输入预先配置的加密算法生成一个密文;若所述第一字符串中的第j个字符为1并且所述第二个字符串中的第j个字符为0,则将0、所述公钥和所述第j个伪随机串输入所述预先配置的加密算法生成一个密文;若所述第一字符串中的第j个字符为1并且所述第二个字符串中的第j个字符为1,则将1、所述公钥和所述第j个伪随机串输入所述预先配置的加密算法生成一个密文。
结合第一方面或第一方面的第一种可能的实施方式,在第一方面的第二种可能的实施方式中,根据接收到的所述计算结果对应的认证指纹对所述计算结果进行正确性认证,包括:
获取重新计算的所述计算结果对应的认证指纹的第一分量;
比较所述接收到的所述计算结果对应的认证指纹的第一分量与所述重新计算的所述计算结果对应的认证指纹的第一分量是否相等;
若所述接收到的所述计算结果对应的认证指纹的第一分量与所述重新计算的所述计算结果对应的认证指纹的第一分量相等,则继续对所述计算结果进行正确性认证;若二者不相等,则确定所述计算结果不正确。
结合第一方面的第二种可能的实施方式,在第一方面的第三种可能的实施方式中,所述获取重新计算的所述计算结果对应的认证指纹的第一分量,包括:
根据所述待计算的数据的t个比特对应的t个所述认证指纹的第一分量,采用用于计算所述待计算的数据的计算函数,获取重新计算的所述计算结果对应的认证指纹的第一分量;
其中,所述用于计算待计算的数据的计算函数为哈希树,所述哈希树包括:t个输入,1个输出,且所述哈希树中的各个节点均为预先配置的安全哈希函数。
结合第一方面的第二种可能的实施方式,在第一方面的第四种可能的实施方式中,所述获取重新计算所述计算结果对应的认证指纹的第一分量,包括:
将所述待计算数据的t个比特对应的t个所述认证指纹的第一分量发送给第三方设备,以使所述第三方设备根据接收的所述待计算的数据的t个比特对应的t个所述认证指纹的第一分量,采用预先配置的用于计算待计算的数据的计算函数,获取重新计算的所述计算结果对应的认证指纹的第一分量;
接收所述第三方设备返回的所述重新计算的所述计算结果对应的认证指纹的第一分量;
其中,所述用于计算待计算的数据的计算函数为哈希树,所述哈希树包括:t个输入,1个输出,且所述哈希树中的各个节点均为所述安全哈希函数。
结合第一方面的第二至第四种中的任一种可能的实施方式,在第一方面的第五种可能的实施方式中,所述消息认证密钥还包括私钥,所述接收到的所述计算结果对应的认证指纹的第一分量与所述重新计算的所述计算结果对应的认证指纹的第一分量相等,则继续对所述计算结果进行正确性认证,包括:
根据所述私钥,分别计算所述接收到的所述计算结果对应的认证指纹的n个第二分量对应的n个明文;
若所述n个明文全部与所述计算结果相同,则确定所述计算结果正确。
本发明第二方面提供一种全同态消息认证方法,所述方法应用于服务器,包括:
接收终端发送的计算请求,所述计算请求包括:待计算的数据,所述待计算的数据中的每个比特对应的认证指纹、全同态加密算法、以及消息认证密钥;
根据预先配置的用于计算待计算的数据的计算函数以及所述待计算的数据,计算所述待计算的数据的计算结果;
根据所述预先配置的用于计算待计算的数据的计算函数、所述待计算的数据的计算结果、所述待计算的数据中的每个比特对应的认证指纹,所述预先配置的全同态加密算法以及所述消息认证密钥,计算所述计算结果对应的认证指纹;
将所述待计算的数据的计算结果以及所述计算结果对应的认证指纹返回终端,以供所述终端根据接收到的所述计算结果对应的认证指纹对所述计算结果进行正确性认证。
结合第二方面,在第二方面的第一种可能的实施方式中,所述根据预先配置的用于计算待计算的数据的计算函数以及所述待计算的数据,计算所述待计算的数据的计算结果,包括:
根据所述待计算的数据的t个比特,采用所述预先配置的用于计算待计算的数据的计算函数,获取所述待计算的数据的计算结果;
其中,所述预先配置的用于计算待计算的数据的计算函数为哈希树,所述哈希树包括:t个输入,1个输出,且所述哈希树中的各个节点均为预先配置的安全哈希函数;t为所述待计算的数据的总比特数。
结合第二方面的第一种可能的实施方式,在第二方面的第二种可能的实施方式中,所述待计算的数据中的每个比特对应的认证指纹包括第一分量和n个第二分量,且所述消息认证密钥还包括计算钥,则所述根据所述预先配置的用于计算待计算的数据的计算函数、所述待计算的数据的计算结果、所述待计算的数据中的每个比特对应的认证指纹,所述预先配置的全同态加密算法以及所述消息认证密钥,计算所述计算结果对应的认证指纹,包括:
根据所述待计算的数据的t个比特对应的t个所述认证指纹的第一分量,采用所述预先配置的用于计算待计算的数据的计算函数,获取所述计算结果对应的认证指纹的第一分量;
根据所述计算结果、所述待计算的数据的每个比特对应的认证指纹的n个第二分量和所述计算钥,采用所述预先配置的全同态加密算法中的密文计算函数,获取所述计算结果对应的认证指纹的n个第二分量。
本发明实施例第三方面提供一种全同态消息认证装置,包括:
获取模块,用于获取消息认证密钥,所述消息认证密钥包括公钥、第一字符串和第二字符串,所述第一字符串为长度为n的0和1的字符串,且所述第一字符串中字符为1的个数为2n/3;所述第二字符串为长度为n的0和1的字符串,且在所述第二字符串中,与所述第一字符串中的为1的字符对应的位置上的字符包括n/3个0,其中,n为大于或等于2的整数;
生成模块,用于根据第一输入字符、所述公钥和伪随机串生成待计算的数据中的第i个比特对应的n个密文中的一个,确定所述n个密文为所述第i个比特对应的认证指纹的第二分量,其中,若所述第一字符串中的第j个字符为0,则所述第一输入字符为所述第i个比特,或者,若所述第一字符串中的第j个字符为1并且所述第二个字符串中的第j个字符为0,则所述第一输入字符为0,或者,若所述第一字符串中的第j个字符为1并且所述第二个字符串中的第j个字符为1,则所述第一输入字符为1;所述第i个比特对应的认证指纹还包括第一分量;其中,i为整数,大于或等于1,且小于或等于所述待计算的数据的总比特数t,t大于或等于1;j为整数,大于或等于1,且小于或等于n;
收发模块,用于向服务器发送计算请求,所述计算请求包括:所述待计算的数据,所述待计算的数据中的每个比特对应的所述认证指纹、预先配置的全同态加密算法、以及所述消息认证密钥;
所述收发模块还用于接收所述服务器返回的所述待计算的数据的计算结果以及所述计算结果对应的认证指纹;
处理模块,用于根据所述收发模块接收到的所述计算结果对应的认证指纹对所述计算结果进行正确性认证。
结合第三方面,在第三方面的第一种可能的实施方式中,所述消生成模块具体用于:
根据预先配置的伪随机函数和所述待计算的数据中的第i个比特的标签生成所述第i个比特对应的认证指纹的第一分量;
根据所述伪随机函数生成与所述待计算的数据中的第i个比特对应的n个伪随机串;
根据所述第一字符串、所述第二字符串和所述n个伪随机串生成所述第i个比特对应的n个密文作为所述第i个比特对应的认证指纹的第二分量,其中,若所述第一字符串中的第j个字符为0,则将所述第i个比特、所述公钥和所述第j个伪随机串输入预先配置的加密算法生成一个密文;若所述第一字符串中的第j个字符为1并且所述第二个字符串中的第j个字符为0,则将0、所述公钥和所述第j个伪随机串输入所述预先配置的加密算法生成一个密文;若所述第一字符串中的第j个字符为1并且所述第二个字符串中的第j个字符为1,则将1、所述公钥和所述第j个伪随机串输入所述预先配置的加密算法生成一个密文。
结合第三方面和第三方面的第一种可能的实施方式,在第三方面的第二种可能的实施方式中,所述处理模块具体用于:
获取重新计算的所述计算结果对应的认证指纹的第一分量;
比较所述接收到的所述计算结果对应的认证指纹的第一分量与所述重新计算的所述计算结果对应的认证指纹的第一分量是否相等;
若所述接收到的所述计算结果对应的认证指纹的第一分量与所述重新计算的所述计算结果对应的认证指纹的第一分量相等,则继续对所述计算结果进行正确性认证;若二者不相等,则确定所述计算结果不正确。
结合第三方面的第二种可能的实施方式,在第三方面的第三种可能的实施方式中,所述处理模块还用于根据获取的所述待计算的数据的t个比特对应的t个所述认证指纹的第一分量,采用用于计算待计算的数据的计算函数,获取重新计算的所述计算结果对应的认证指纹的第一分量;
其中,所述用于计算待计算的数据的计算函数为哈希树,所述哈希树包括:t个输入,1个输出,且所述哈希树中的各个节点均为预先配置的安全哈希函数。
结合第三方面的第二种可能的实施方式,在第三方面的第四种可能的实施方式中所述收发模块还用于:
将所述待计算数据的t个比特对应的t个所述认证指纹的第一分量发送给第三方设备,以使所述第三方设备根据接收的所述待计算的数据的t个比特对应的t个所述认证指纹的第一分量,采用预先配置的用于计算待计算的数据的计算函数,获取重新计算的所述计算结果对应的认证指纹的第一分量;
接收所述第三方设备返回的所述重新计算的所述计算结果对应的认证指纹的第一分量;
其中,所述用于计算待计算的数据的计算函数为哈希树,所述哈希树包括:t个输入,1个输出,且所述哈希树中的各个节点均为所述安全哈希函数。
结合第三方面的第二至第四种中的任一种可能的实施方式,在第三方面的第五种可能的实施方式中,所述消息认证密钥还包括私钥,所述处理模块还用于:
根据所述私钥,分别计算所述接收到的所述计算结果对应的认证指纹的n个第二分量对应的n个明文;
判断若所述n个明文全部与所述计算结果相同,则确定所述计算结果正确。
本发明实施例第四方面提供一种全同态消息认证装置,包括:
收发模块,用于接收终端发送的计算请求,所述计算请求包括:待计算的数据,所述待计算的数据中的每个比特对应的认证指纹、全同态加密算法、以及消息认证密钥;
处理模块,用于根据预先配置的用于计算待计算的数据的计算函数以及所述待计算的数据,计算所述待计算的数据的计算结果;
所述处理模块还用于根据所述预先配置的用于计算待计算的数据的计算函数、所述待计算的数据的计算结果、所述待计算的数据中的每个比特对应的认证指纹,所述预先配置的全同态加密算法以及所述消息认证密钥,计算所述计算结果对应的认证指纹;
所述收发模块还用于将所述待计算的数据的计算结果以及所述计算结果对应的认证指纹返回终端,以供所述终端根据接收到的所述计算结果对应的认证指纹对所述计算结果进行正确性认证。
结合第四方面,在第四方面的第一种可能的实施方式中,所述处理模块具体用于:
根据所述待计算的数据的t个比特,采用所述预先配置的用于计算待计算的数据的计算函数,获取所述待计算的数据的计算结果;
其中,所述预先配置的用于计算待计算的数据的计算函数为哈希树,所述哈希树包括:t个输入,1个输出,且所述哈希树中的各个节点均为预先配置的安全哈希函数;t为所述待计算的数据的总比特数。
结合第四方面的第一种可能的实施方式,在第四方面的第二种可能的实施方式中,所述待计算的数据中的每个比特对应的认证指纹包括第一分量和n个第二分量,且所述消息认证密钥包括计算钥,则所述处理模块还用于:
根据所述待计算的数据的t个比特对应的t个所述认证指纹的第一分量,采用所述预先配置的用于计算待计算的数据的计算函数,获取所述计算结果对应的认证指纹的第一分量;
根据所述计算结果、所述待计算的数据的每个比特对应的认证指纹的n个第二分量和所述计算钥,采用所述预先配置的全同态加密算法中的密文计算函数,获取所述计算结果对应的认证指纹的n个第二分量。
本发明第五方面提供一种全同态消息认证***,所述***包括终端和服务器,其中,
所述终端用于获取消息认证密钥,所述消息认证密钥包括:第一字符串和第二字符串,所述第一字符串为长度为n的0和1的字符串,且所述第一字符串中1的个数为2n/3;所述第二字符串为长度为n的0和1的字符串,且在所述第二字符串中,与所述第一字符串中的1对应的位置上的字符包括n/3个0;n为大于或等于2的整数;根据第一输入字符、所述公钥和伪随机串生成待计算的数据中的第i个比特对应的n个密文中的一个,确定所述n个密文为所述第i个比特对应的认证指纹的第二分量,其中,若所述第一字符串中的第j个字符为0,则所述第一输入字符为所述第i个比特,或者,若所述第一字符串中的第j个字符为1并且所述第二个字符串中的第j个字符为0,则所述第一输入字符为0,或者,若所述第一字符串中的第j个字符为1并且所述第二个字符串中的第j个字符为1,则所述第一输入字符为1;所述第i个比特对应的认证指纹还包括第一分量;其中,i为整数,大于或等于1,且小于或等于所述待计算的数据的总比特数t,t大于或等于1;j为整数,大于或等于1,且小于或等于n;向所述服务器发送计算请求,所述计算请求包括:所述待计算的数据,所述待计算的数据中的每个比特对应的认证指纹、预先配置的全同态加密算法以及所述消息认证密钥;接收所述服务器返回的所述待计算的数据的计算结果以及所述计算结果对应的认证指纹;根据接收到的所述计算结果对应的认证指纹对所述计算结果进行正确性认证;
所述服务器用于:接收终端发送的计算请求;根据预先配置的用于计算待计算的数据的计算函数以及所述待计算的数据,计算所述待计算的数据的计算结果;根据所述预先配置的用于计算待计算的数据的计算函数、所述待计算的数据的计算结果、所述待计算的数据中的每个比特对应的认证指纹,所述预先配置的全同态加密算法以及所述消息认证密钥,计算所述计算结果对应的认证指纹;将所述待计算的数据的计算结果以及所述计算结果对应的认证指纹返回所述终端,以供所述终端根据接收到的所述计算结果对应的认证指纹对所述计算结果进行正确性认证。
结合第五方面,在第五方面的第一种可能的实施方式中,所述终端具体用于:根据预先配置的伪随机函数和所述待计算的数据中的第i个比特的标签生成所述第i个比特对应的认证指纹的第一分量;根据所述伪随机函数生成与所述待计算的数据中的第i个比特对应的n个伪随机串;根据所述第一字符串、所述第二字符串和所述n个伪随机串生成所述第i个比特对应的n个密文作为所述第i个比特对应的认证指纹的第二分量,其中,若所述第一字符串中的第j个字符为0,则将所述第i个比特、所述公钥和所述第j个伪随机串输入预先配置的加密算法生成所述密文;若所述第一字符串中的第j个字符为1并且所述第二个字符串中的第j个字符为0,则将0、所述公钥和所述第j个伪随机串输入所述预先配置的加密算法生成所述密文;若所述第一字符串中的第j个字符为1并且所述第二个字符串中的第j个字符为1,则将1、所述公钥和所述第j个伪随机串输入所述预先配置的加密算法生成所述密文;其中,i为整数,大于或等于1,且小于或等于所述待计算的数据的总比特数t;j为整数,大于或等于1,且小于或等于n。
可见,本发明实施例提供的全同态消息认证方法、装置及***,在满足安全性验证的前提下,通过选择长度为n的0和1的第一字符串,且所述第一字符串中1的个数为2n/3,以及长度为n的0和1的第二字符串,且在所述第二字符串中,与所述第一字符串中的1对应的位置上的字符包括n/3个0,解决了现有技术中第一字符串为随机产生的集合{1,2,…,n-1,n}的长度为n/2的子集,在计算每个比特对应的认证指纹的过程中对于非1或0的随机数计算过程复杂的问题,有效降低验证过程中的计算量,提高对服务器的计算结果的验证效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明全同态消息认证方法实施例一的流程图;
图2为本发明全同态消息认证方法实施例二的流程图;
图3为本发明全同态消息认证方法实施例三的流程图;
图4为本发明全同态消息认证方法实施例四的流程图;
图5为本发明全同态消息认证方法实施例五的流程图;
图6为本发明全同态消息认证方法实施例六的流程图;
图7为本发明中用于计算待计算的数据的计算函数的一实例示意图;
图8为本发明全同态消息认证装置实施例一的结构示意图;
图9为本发明全同态消息认证装置实施例三的结构示意图;
图10为本发明终端实施例一的结构示意图;
图11为本发明服务器实施例一的结构示意图;
图12为本发明全同态消息认证***实施例一的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明全同态消息认证方法实施例一的流程图。本发明实施例提供一种全同态消息认证方法,主要用于分布式环境下,例如云计算环境,即终端需要服务器对指定的待计算的数据,按照一定的计算函数对该待计算的数据进行计算获取计算结果,服务器将该计算结果返回给终端,而服务器跟终端之间不存在信任关系、或者客观上服务器存在恶意、或者受到敌手攻击从而使得该计算结果并非终端需要的,因此终端需要对服务器返回的计算结果进行正确性的验证,本实施例主要提供了在上述过程中终端侧的全同态消息认证方法的技术方案。如图1所示,具体的步骤如下:
S101:获取消息认证密钥,所述消息认证密钥包括公钥、第一字符串和第二字符串,所述第一字符串为长度为n的0和1的字符串,且所述第一字符串中字符为1的个数为2n/3;所述第二字符串为长度为n的0和1的字符串,且在所述第二字符串中,与所述第一字符串中的为1的字符对应的位置上的字符包括n/3个0,其中,n为大于或等于2的整数。
在本实施例中,终端确定随机的安全参数n,n为一个大于或等于2的整数,即第一字符串和第二字符串的长度,然后选择长度为n的第一字符串和第二字符串,该第一字符串和第二字符串中的字符均为0或1,在第一字符串中,包括2n/3个1和n/3个0,并且在第二字符串中,与第一字符串中1的位置对应的2n/3个1位置上分别有n/3个0和n/3个1。例如:n为9,即第一字符串和第二字符串的长度都为9,第一字符串为{010111011},其中中包括6个1,第二字符串可以为{100101010}。需要说明的是,本示例中,在第一字符串确定的情况下,第二字符串并非只有一种形式,上述仅是示例,该第二字符串只要满足上述条件即可,即在第二字符串中,与第一字符串中1对应的位置上一半是0,另一半是1。
S102:根据第一输入字符、所述公钥和伪随机串生成待计算的数据中的第i个比特对应的n个密文中的一个,确定所述n个密文为所述第i个比特对应的认证指纹的第二分量,其中,若所述第一字符串中的第j个字符为0,则所述第一输入字符为所述第i个比特,或者,若所述第一字符串中的第j个字符为1并且所述第二个字符串中的第j个字符为0,则所述第一输入字符为0,或者,若所述第一字符串中的第j个字符为1并且所述第二个字符串中的第j个字符为1,则所述第一输入字符为1;所述第i个比特对应的认证指纹还包括第一分量;其中,i为整数,大于或等于1,且小于或等于所述待计算的数据的总比特数t,t大于或等于1;j为整数,大于或等于1,且小于或等于n。
在本实施例中,根据所述消息认证密钥,分别生成待计算的数据中的每个比特对应的认证指纹,待计算的数据包括至少一个比特的信息量,对于待计算的数据中的每个比特,都根据所述消息认证密钥生成一个对应的认证指纹。
S103:向服务器发送计算请求,所述计算请求包括:所述待计算的数据,所述待计算的数据中的每个比特对应的认证指纹、预先配置的全同态加密算法以及所述消息认证密钥。
在本实施例中,若该待计算的数据有t个比特,则发送给服务器的计算请求中包括待计算的数据的t个比特对应的t个认证指纹。全同态加密算法包括一个产生公钥、私钥和计算钥的算法,一个加密算法,一个解密算法和一个密文计算函数,主要应用在计算每个比特对应的认证指纹和验证服务器计算结果的运算过程中,为现有算法,在此不多作赘述。
S104:接收所述服务器返回的所述待计算的数据的计算结果以及所述计算结果对应的认证指纹,并根据接收到的所述计算结果对应的认证指纹对所述计算结果进行正确性认证。
在本实施例中,终端接收服务返回的将计算待计算的数据后获取的计算结果和该计算结果对应的认证指纹,并通过该计算结果对应的认证指纹验证该计算结果是否正确,如果验证该计算结果正确,则接收该计算结果;如果验证该计算结果不正确,则丢弃该计算结果。
本实施例提供的全同态消息认证方法,在满足验证需求的前提下,通过获取消息认证密钥,该消息认证密钥包括:第一字符串为长度为n的0和1的字符串,且所述第一字符串中1的个数为2n/3,第二字符串为长度n的0和1的字符串,且与所述第一字符串中的1对应的位置上的字符包括n/3个0,根据该消息认证密钥生成待计算的数据的每个比特对应的认证指纹,并将待计算的数据、每个比特对应的认证指纹、全同态加密算法以及所述消息认证密钥发送给服务器,以使服务器计算待计算的数据的计算结果和所述计算结果对应的认证指纹并返回终端,终端根据接收到的该计算结果对应的认证指纹对所述计算结果进行正确性认证,通过选择长度为n的0和1的第一字符串,且所述第一字符串中1的个数为2n/3,以及长度为n的0和1的第二字符串,且在所述第二字符串中,与所述第一字符串中的1对应的位置上的字符包括n/3个0,解决了现有技术中第一字符串为随机产生的集合{1,2,…,n-1,n}的长度为n/2的子集,在计算每个比特对应的认证指纹的过程中对于非1或0的随机数计算过程复杂的问题,有效降低终端算法的复杂性和计算量。
进一步地,图2为本发明全同态消息认证方法实施例二的流程图,在上述图1所示实施例的基础上,该消息认证密钥还包括公钥pk、私钥sk'、计算钥evk'、预先配置的安全哈希函数和预先配置的伪随机函数,所述第i个比特对应的认证指纹由以下步骤生成:
S201:根据预先配置的伪随机函数和所述待计算的数据中的第i个比特的标签生成所述第i个比特对应的认证指纹的第一分量。
在本实施例中,该待计算的数据总共有t个比特,预先配置的伪随机函数可以为一个单独的函数(还可以为一个函数族)例如:该伪随机函数为fk,第i个比特的认证指纹的第一分量为vi,将第i个比特的标签τ输入该伪随机函数进行计算获取第i个比特的认证指纹的第一分量,即vi=fk(τ)。
另外,在本发明实施例中,待计算的数据中的每个比特都有一个特定标签,这个标签为每个比特的一个标识,类似于一个编号,用来标记这个比特在待处理的数据中的位置。
S202:根据所述伪随机函数生成与所述待计算的数据中的第i个比特对应的n个伪随机串。
在本实施例中,例如:将i和该第i个比特的标签τ输入上述伪随机函数生成n个伪随机串,即randi=fk(τ,i),该n个伪随机串可以用rand1,rand2,...,randn来表示,用于在后续计算第i个比特的认证指纹的第二分量的过程中使用。
S203:根据所述第一字符串、所述第二字符串和所述n个伪随机串生成所述第i个比特对应的n个密文作为所述第i个比特对应的认证指纹的第二分量,其中,若所述第一字符串中的第j个字符为0,则将所述第i个比特、所述公钥和所述第j个伪随机串输入预先配置的加密算法生成一个密文;若所述第一字符串中的第j个字符为1并且所述第二个字符串中的第j个字符为0,则将0、所述公钥和所述第j个伪随机串输入所述预先配置的加密算法生成一个密文;若所述第一字符串中的第j个字符为1并且所述第二个字符串中的第j个字符为1,则将1、所述公钥和所述第j个伪随机串输入所述预先配置的加密算法生成一个密文。
在本实施例中,该预先配置的加密算法为全同态加密算法中的加密算法(HE.Enc),i为整数,大于或等于1,且小于或等于所述待计算的数据的总比特数t;j为整数,大于或等于1,且小于或等于n。针对该第i个比特,详细说明第i个比特对应的认证指纹的第二分量的获取方式:
若所述第一字符串中的第j个字符为0,则将所述第i个比特、所述公钥和所述第j个伪随机串输入预先配置的加密算法生成所述密文cj,即cj=HE.Enc(bi,pk,randj),其中,用bi表示该第i个比特。
若所述第一字符串中的第j个字符为1并且所述第二个字符串中的第j个字符为0,则将0、所述公钥和所述第j个伪随机串输入所述预先配置的加密算法生成所述密文cj,即cj=HE.Enc(0,pk,randj)。
若所述第一字符串中的第j个字符为1并且所述第二个字符串中的第j个字符为1,则将1、所述公钥和所述伪随机串输入所述预先配置的加密算法生成所述密文cj,即cj=HE.Enc(1,pk,randj)。
按照上述方式遍历判断第一字符串,获取n个密文作为第i个比特对应的的认证指纹的第二分量,cj=HE.Enc(bi,pk,randj)表示bi在伪随机串randi下的加密密文,例如:cj=HE.Enc(1,pk,randj)表示1在伪随机串randj下的加密密文。
所述第i个比特对应的所述认证指纹包括所述第i个比特的认证指纹的第二分量和所述第i个比特的认证指纹的第一分量。(第i个比特对应的所述认证指纹可以表示为θi=(c1,…cn,vi)。
本实施例提供的全同态消息认证方法,通过获取消息认证密钥,该消息认证密钥包括:第一字符串为长度为n的0和1的字符串,且所述第一字符串中1的个数为2n/3,第二字符串为长度n的0和1的字符串,且与所述第一字符串中的1对应的位置上的字符包括n/3个0,在根据该消息认证密钥生成待计算的数据的每个比特对应的认证指纹过程中,在每个比特对应的认证指纹的第二分量中随机***2n/3个0和1的的随机密文,并将待计算的数据、每个比特对应的认证指纹、全同态加密算法以及所述消息认证密钥发送给服务器,以使服务器计算待计算的数据的计算结果和所述计算结果对应的认证指纹并返回终端,终端根据接收到的该计算结果对应的认证指纹对所述计算结果进行正确性认证,通过选择长度为n,且1的个数为2n/3的第一字符串和长度为n的,且在与第一字符串中的1对应的位置上的字符包括n/3个0的第二字符串,解决了现有技术中第一字符串为随机产生的集合{1,2,…,n-1,n}的长度为n/2的子集,在计算每个比特对应的认证指纹的过程中对于非1或0的随机数计算过程复杂的问题,有效降低终端算法的复杂性和计算量,提高对计算结果的验证效率。
图3为本发明全同态消息认证方法实施例三的流程图,如图3所示,在上述实施例一以及实施例二的基础上,S104的具体实现步骤为:
S301:获取重新计算的所述计算结果对应的认证指纹的第一分量。
在本实施例中,终端接收到服务器返回的计算结果和计算结果对应的认证指纹,首先对验证该计算结果的对应的认证指纹的第一分量,需要获取重新计算的计算结果对应的认证指纹的第一分量,具体的获取方式有以下两种:
第一种获取方式,终端预先配置了用于计算待计算的数据的计算函数,则终端根据获取的所述待计算的数据的t个比特对应的t个所述认证指纹的第一分量,采用该用于计算待计算的数据的计算函数,获取重新计算的所述计算结果对应的认证指纹的第一分量;
其中,所述用于计算待计算的数据的计算函数为哈希树,所述哈希树包括:t个输入,1个输出,且所述哈希树中的各个节点均为预先配置的安全哈希函数。
第二种获取方式,终端没有配置用于计算待计算的数据的计算函数,引入第三方设备进行计算,在该第三方设备上配置了用于计算待计算的数据的计算函数,则终端将将所述待计算数据的t个比特对应的t个所述认证指纹的第一分量发送给第三方设备,以使所述第三方设备根据接收的所述待计算的数据的t个比特对应的t个所述认证指纹的第一分量,采用预先配置的用于计算待计算的数据的计算函数,获取重新计算的所述计算结果对应的认证指纹的第一分量,并接收所述第三方设备返回的所述重新计算的所述计算结果对应的认证指纹的第一分量;其中,所述用于计算待计算的数据的计算函数为哈希树,所述哈希树包括:t个输入,1个输出,且所述哈希树中的各个节点均为所述安全哈希函数。
该第三方设备为半可信的第三方(例如:卫生主管部门)用户设备不需要知道用于计算待计算数据的计算函数,并且该第三方设备也不知道终端的待计算的数据,保证了用户设备的隐私。
S302:比较所述接收到的所述计算结果对应的认证指纹的第一分量与所述重新计算的所述计算结果对应的认证指纹的第一分量是否相等。
S303:若所述接收到的所述计算结果对应的认证指纹的第一分量与所述重新计算的所述计算结果对应的认证指纹的第一分量相等,则继续对所述计算结果进行正确性认证;若二者不相等,则确定所述计算结果不正确。
本实施例提供的全同态消息认证方法,通过获取消息认证密钥,该消息认证密钥包括:第一字符串为长度为n的0和1的字符串,且所述第一字符串中1的个数为2n/3,第二字符串为长度n的0和1的字符串,且与所述第一字符串中的1对应的位置上的字符包括n/3个0,在根据该消息认证密钥生成待计算的数据的每个比特对应的认证指纹过程中,在每个比特对应的认证指纹的第二分量中随机***2n/3个0和1的的随机密文,并将待计算的数据、每个比特对应的认证指纹、全同态加密算法以及所述消息认证密钥发送给服务器,以使服务器计算待计算的数据的计算结果和所述计算结果对应的认证指纹并返回终端,终端根据接收到的该计算结果对应的认证指纹对所述计算结果,获取重新计算的该计算结果对应的认证指纹,以便对该计算结果进行正确性认证,具体的若终端已配置了用于计算待计算的数据的计算函数,则通过终端自己计算获取该计算结果对应的认证指纹的第一分量,若终端上没有配置用于计算待计算的数据的计算函数,则将该计算结果发送给第三方设备,以使第三方设备进行计算并返回重新计算的计算结果对应的认证指纹的第一分量,与接收的服务器发送的计算结果对应的认证指纹的第一分量进行对比,验证计算结果的正确性,若正确则进行进一步验证,通过选择长度为n,且1的个数为2n/3的第一字符串和长度为n的,且在与第一字符串中的1对应的位置上的字符包括n/3个0的第二字符串,解决了现有技术中第一字符串为随机产生的集合{1,2,…,n-1,n}的长度为n/2的子集,在计算每个比特对应的认证指纹的过程中对于非1或0的随机数计算过程复杂的问题,利用第三方设备进行计算计算结果对应的认证指纹的第一分量,还解决了用于计算待计算的数据的计算函数为商业机密的情况下,终端不知用于计算待计算的数据的计算函数所造成的不便,且保护了终端的隐私,有效降低终端算法的复杂性和计算量,提高对计算结果的验证效率。
图4为本发明全同态消息认证方法实施例四的流程图,如图4所示,在上述图3所示的实施例的基础上,所述消息认证密钥还包括私钥,则所述接收到的所述计算结果对应的认证指纹的第一分量与所述重新计算的所述计算结果对应的认证指纹的第一分量相等,则继续对所述计算结果进行正确性认证的具体实现方式为:
S401:根据所述私钥,分别计算所述接收到的所述计算结果对应的认证指纹的n个第二分量对应的n个明文。
在本实施例中,终端对接收到的服务器发送的计算结果对应的认证指纹的每个第二分量根据所述私钥进行解密计算,获取n个对应的明文,用于与计算结果进行对比判断。
例如:服务器发送的计算结果为e,该计算结果对应的认证指纹为,其中该计算结果对应的认证指纹的第二分量为,则根据所述私钥sk',调用公式,进行解密获取计算对应的明文ej,获取所有的明文e1,...,en
S402:若所述n个明文全部与所述计算结果相同,则确定所述计算结果正确。
在本实施例中,从1至n依次判断上述n个明文与上述计算结果是否相等,若存在一个明文与上述计算结果不相同,则认为该计算结果不正确,结束正确性验证操作。具体的,可以通过如下方式进行认证:
若所述第一字符串中的第j个字符是0,则判断所述计算结果与第j个所述明文是否相等,若不相等,则确定所述计算结果不正确,将该计算结果丢弃,并结束正确性验证操作。
若所述第一字符串中第j个字符是1,且所述第二字符串中第j个字符是1,则判断所述计算结果与第j个所述明文是否相等;若验证出存在一个所述明文与所述计算结果不相等时,则确定所述计算结果不正确,将该计算结果丢弃,并结束正确性验证操作。
若所述第一字符串中第j个字符是1,且所述第二字符串中第j个字符是0,则判断所述计算结果与第j个所述明文是否相等;若验证出存在一个所述明文与所述计算结果不相等时,则确定所述计算结果不正确,将该计算结果丢弃,并结束正确性验证操作。
上述三个步骤为一次验证过程中针对第一字符串和第二字符串中的字符不同的一种具体的操作方式,每次验证一个明文与结算结果相同时,则j加1,继续根据第一字符串和第二字符串的字符进行认证。其中,j为整数,大于或等于1,且小于或等于n,n为一个大于等于2的正整数,即确定的第一字符串和第二字符串的长度。
例如:对上述计算结果e,根据通过解密计算获取的明文e1,…,en进行验证,若结合上述其他实施例,在整个验证过程中,没有丢弃所述计算结果e,则接受该计算结果e,终端认为服务器返回的计算结果正确。
本实施例提供的全同态消息认证方法,通过获取消息认证密钥,该消息认证密钥包括:第一字符串为长度为n的0和1的字符串,且所述第一字符串中1的个数为2n/3,第二字符串为长度n的0和1的字符串,且与所述第一字符串中的1对应的位置上的字符包括n/3个0,在根据该消息认证密钥生成待计算的数据的每个比特对应的认证指纹过程中,在每个比特对应的认证指纹的第二分量中随机***2n/3个0和1的的随机密文,并将待计算的数据、每个比特对应的认证指纹、全同态加密算法以及所述消息认证密钥发送给服务器,以使服务器计算待计算的数据的计算结果和所述计算结果对应的认证指纹并返回终端,终端根据接收到的该计算结果对应的认证指纹对所述计算结果,获取重新计算的该计算结果对应的认证指纹,以便对该计算结果进行正确性认证,具体的若终端已配置了用于计算待计算的数据的计算函数,则通过终端自己计算获取该计算结果对应的认证指纹的第一分量,若终端上没有配置用于计算待计算的数据的计算函数,则将该计算结果发送给第三方设备,以使第三方设备进行计算并返回重新计算的计算结果对应的认证指纹的第一分量,与接收的服务器发送的计算结果对应的认证指纹的第一分量进行对比,验证计算结果的正确性,若正确则进行进一步验证,调用私钥对服务器发送的计算结果对应的认证指纹的第二分量进行解密计算获取t个明文,并与计算结果进行对比,验证所述计算结果的正确性。通过选择长度为n,且1的个数为2n/3的第一字符串和长度为n的,且在与第一字符串中的1对应的位置上的字符包括n/3个0的第二字符串,解决了现有技术中第一字符串为随机产生的集合{1,2,…,n-1,n}的长度为n/2的子集,在计算每个比特对应的认证指纹的过程中对于非1或0的随机数计算过程复杂的问题,还解决了用于计算待计算的数据的计算函数为商业机密的情况下,终端不知用于计算待计算的数据的计算函数所造成的不便,且保护了终端的隐私,另外,在接收到服务器返回的计算结果对应的认证指纹后,总共只需要进行n次解密计算,相较于现有技术中对每个比特都要重新进行n/2次运算,总共需要t*(n/2)次运算才能重新计算获取到该计算结果对应的认证指纹的第二分量,有效降低终端验证时的算法的复杂性和计算量,提高对计算结果的验证效率。
图5为本发明全同态消息认证方法实施例五的流程图,如图5所示,本实施例提供了服务器侧的全同态消息认证方法的技术方案,具体步骤如下:
S501:接收终端发送的计算请求,所述计算请求包括:待计算的数据,所述待计算的数据中的每个比特对应的认证指纹、全同态加密算法以及消息认证密钥。
S502:根据预先配置的用于计算待计算的数据的计算函数以及所述待计算的数据,计算所述待计算的数据的计算结果。
S503:根据所述预先配置的用于计算待计算的数据的计算函数、所述待计算的数据的计算结果、所述待计算的数据中的每个比特对应的认证指纹,所述预先配置的全同态加密算法以及所述消息认证密钥,计算所述计算结果对应的认证指纹。
S504:将所述待计算的数据的计算结果以及所述计算结果对应的认证指纹返回终端,以供所述终端根据接收到的所述计算结果对应的认证指纹对所述计算结果进行正确性认证。
在本实施例中,服务器中预先配置了用于计算待计算的数据的计算函数,以对终端发送的待计算的数据进行计算获取计算结果,服务器不需要再向终端返回原始的待计算的数据,只是对该计算结果增加一个对应的认证指纹,以便终端根据该计算结果对应的认证指纹对计算结果进行验证,获取正确的计算结果而不必再知道原始待计算的数据。
本实施例提供的全同态消息认证方法,通过接收终端发送的计算请求,其中包括消息认证密钥,服务器根据预先配置的用于计算待计算的数据的计算函数计算待计算的数据的计算结果,并根据该消息认证密钥、该计算结果和待计算的数据的每个比特对应的认证指纹计算获取所述计算结果对应的认证指纹并返回终端,以使终端根据接收到的该计算结果对应的认证指纹对所述计算结果进行正确性认证,解决了现有技术中终端生成的消息认证密钥的第一字符串为随机产生的集合{1,2,…,n-1,n}的长度为n/2的子集,在计算每个比特对应的认证指纹的过程中对于非1或0的随机数计算过程复杂的问题,有效降低终端验证过程中的计算量,提高终端对服务器的计算结果的验证效率。。
图6为本发明全同态消息认证方法实施例六的流程图,如图6所示,在上述实施例的基础上,S502和S503的具体实现步骤为:
S601:根据所述待计算的数据的t个比特,采用所述预先配置的用于计算待计算的数据的计算函数,获取所述待计算的数据的计算结果。
在本实施例中,首先获取待计算的数据的计算结果。所述用于计算待计算的数据的计算函数为哈希树,所述哈希树包括:t个输入,1个输出,且所述哈希树中的各个节点均为预先配置的安全哈希函数;t为所述待计算的数据的总比特数。
S602:根据所述待计算的数据的t个比特对应的t个所述认证指纹的第一分量,采用所述预先配置的用于计算待计算的数据的计算函数,获取所述计算结果对应的认证指纹的第一分量。
在本实施例中,所述待计算的数据中的每个比特对应的认证指纹包括第一分量和第二分量,则对于所述待计算的数据的t个比特来说总共有t个对应的认证指纹,每个认证指纹包括一个第一分量和n个第二分量,且所述消息认证密钥包括计算钥。
S603:根据所述计算结果、所述待计算的数据的每个比特对应的认证指纹的n个第二分量和所述计算钥,采用所述预先配置的全同态加密算法中的密文计算函数,获取所述计算结果对应的认证指纹的n个第二分量。
在本实施例中,所述计算结果对应的认证指纹包括所述计算结果对应的认证指纹的第一分量和所述计算结果对应的认证指纹的n个第二分量,服务器计算获得了待计算的数据的计算结果以及计算结果对应的认证指纹,并发送给终端,以使终端根据计算结果对应的认证指纹对计算结果的正确性进行验证,获取正确的计算结果。
本实施例提供的全同态消息认证方法,通过接收终端发送的计算请求,其中包括消息认证密钥包括计算钥,服务器根据预先配置的用于计算待计算的数据的计算函数计算待计算的数据的计算结果,并根据该消息认证密钥、该计算结果和待计算的数据的每个比特对应的认证指纹计算获取所述计算结果对应的认证指纹的第一分量和第二分量,并返回终端,以使终端根据接收到的该计算结果对应的认证指纹对所述计算结果进行正确性认证,解决了现有技术中终端生成的消息认证密钥的第一字符串为随机产生的集合{1,2,…,n-1,n}的长度为n/2的子集,在计算每个比特对应的认证指纹的过程中对于非1或0的随机数计算过程复杂的问题,有效降低终端验证过程中的计算量,提高终端对服务器的计算结果的验证效率。。
图7为本发明中用于计算待计算的数据的计算函数的一实例示意图,如图7所示,在上述图1-6所示的技术方案中,用于计算待计算的数据的计算函数为一个为哈希树,所述哈希树包括:t个输入,1个输出,且所述哈希树中的各个节点均为预先配置的安全哈希函数,下面特举例说明该计算函数的应用。可以用g表示该用于计算待计算的数据的计算函数:
在本实例中,g可以表示为{0,1}t→{0,1},是一个电路,安全哈希函数H为{0,1}*→{0,1}m哈希树gH表示为{{0,1}*}t→{0,1}m,如图7所示,待计算的数据的总比特数位6,每个节点均为安全哈希函数H,可以为加法门或者乘法门电路,服务器获取待计算的数据的计算结果时,将待计算的数据的每个比特分别输入不同的输入线路,获取的最终输出结果为计算结果e。服务器获取计算结果对应的认证指纹的第一分量时,将输入线路的输入分别输入待计算的数据每个比特对应的认证指纹的第一分量vi作为输入(i大于等于1,小于等于6),最终输出的为计算结果对应的认证指纹的第一分量。终端和第三方设备应用该用于计算待计算的数据的计算函数时,计算方式与服务器相同。
图8为本发明全同态消息认证装置实施例一的结构示意图。如图8所示,该全同态消息认证装置80包括:获取模块81,用于获取消息认证密钥,所述消息认证密钥包括公钥、第一字符串和第二字符串,所述第一字符串为长度为n的0和1的字符串,且所述第一字符串中字符为1的个数为2n/3;所述第二字符串为长度为n的0和1的字符串,且在所述第二字符串中,与所述第一字符串中的为1的字符对应的位置上的字符包括n/3个0,其中,n为大于或等于2的整数;
生成模块82,用于根据第一输入字符、所述公钥和伪随机串生成待计算的数据中的第i个比特对应的n个密文中的一个,确定所述n个密文为所述第i个比特对应的认证指纹的第二分量,其中,若所述第一字符串中的第j个字符为0,则所述第一输入字符为所述第i个比特,或者,若所述第一字符串中的第j个字符为1并且所述第二个字符串中的第j个字符为0,则所述第一输入字符为0,或者,若所述第一字符串中的第j个字符为1并且所述第二个字符串中的第j个字符为1,则所述第一输入字符为1;所述第i个比特对应的认证指纹还包括第一分量;其中,i为整数,大于或等于1,且小于或等于所述待计算的数据的总比特数t,t大于或等于1;j为整数,大于或等于1,且小于或等于n;
收发模块83,用于向服务器发送计算请求,所述计算请求包括:所述待计算的数据,所述待计算的数据中的每个比特对应的认证指纹、预先配置的全同态加密算法以及所述消息认证密钥;
所述收发模块83还用于接收所述服务器返回的所述待计算的数据的计算结果以及所述计算结果对应的认证指纹;
处理模块84,用于根据所述收发模块接收到的所述计算结果对应的认证指纹对所述计算结果进行正确性认证。
本实施例提供的全同态消息认证装置,通过获取模块获取消息认证密钥,该消息认证密钥包括:第一字符串为长度为n的0和1的字符串,且所述第一字符串中1的个数为2n/3,第二字符串为长度n的0和1的字符串,且与所述第一字符串中的1对应的位置上的字符包括n/3个0,生成模块根据该消息认证密钥生成待计算的数据的每个比特对应的认证指纹,收发模块将待计算的数据、每个比特对应的认证指纹、全同态加密算法以及所述消息认证密钥发送给服务器,以使服务器计算待计算的数据的计算结果和所述计算结果对应的认证指纹并返回终端,处理模块根据接收到的该计算结果对应的认证指纹对所述计算结果进行正确性认证,通过选择长度为n的0和1的第一字符串,且所述第一字符串中1的个数为2n/3,以及长度为n的0和1的第二字符串,且在所述第二字符串中,与所述第一字符串中的1对应的位置上的字符包括n/3个0,解决了现有技术中第一字符串为随机产生的集合{1,2,…,n-1,n}的长度为n/2的子集,在计算每个比特对应的认证指纹的过程中对于非1或0的随机数计算过程复杂的问题,有效降低终端算法的复杂性和计算量。
本发明全同态消息认证装置实施例二中,在上述实施例的基础上,所述生成模块82具体用于:
根据预先配置的伪随机函数和所述待计算的数据中的第i个比特的标签生成所述第i个比特对应的认证指纹的第一分量;
根据所述伪随机函数生成与所述待计算的数据中的第i个比特对应的n个伪随机串;
根据所述第一字符串、所述第二字符串和所述n个伪随机串生成所述第i个比特对应的n个密文作为所述第i个比特对应的认证指纹的第二分量,其中,若所述第一字符串中的第j个字符为0,则将所述第i个比特、所述公钥和所述第j个伪随机串输入预先配置的加密算法生成一个密文;若所述第一字符串中的第j个字符为1并且所述第二个字符串中的第j个字符为0,则将0、所述公钥和所述第j个伪随机串输入所述预先配置的加密算法生成一个密文;若所述第一字符串中的第j个字符为1并且所述第二个字符串中的第j个字符为1,则将1、所述公钥和所述第j个伪随机串输入所述预先配置的加密算法生成一个密文。
进一步的,所述处理模块84具体用于:
重新计算所述计算结果对应的认证指纹的第一分量;
比较所述接收到的所述计算结果对应的认证指纹的第一分量与所述重新计算的所述计算结果对应的认证指纹的第一分量是否相等;
若所述接收到的所述计算结果对应的认证指纹的第一分量与所述重新计算的所述计算结果对应的认证指纹的第一分量相等,则继续对所述计算结果进行正确性认证;若二者不相等,则确定所述计算结果不正确。
可选的,所述处理模块84还用于还用于根据获取的所述待计算的数据的t个比特对应的t个所述认证指纹的第一分量,采用用于计算待计算的数据的计算函数,获取重新计算的所述计算结果对应的认证指纹的第一分量;
其中,所述用于计算待计算的数据的计算函数为哈希树,所述哈希树包括:t个输入,1个输出,且所述哈希树中的各个节点均为预先配置的安全哈希函数。
可选的,所述收发模块83还用于:
将所述待计算数据的t个比特对应的t个所述认证指纹的第一分量发送给第三方设备,以使所述第三方设备根据接收的所述待计算的数据的t个比特对应的t个所述认证指纹的第一分量,采用预先配置的用于计算待计算的数据的计算函数,获取重新计算的所述计算结果对应的认证指纹的第一分量;
接收所述第三方设备返回的所述重新计算的所述计算结果对应的认证指纹的第一分量;
其中,所述用于计算待计算的数据的计算函数为哈希树,所述哈希树包括:t个输入,1个输出,且所述哈希树中的各个节点均为所述安全哈希函数。
进一步的,所述消息认证密钥还包括私钥,所述处理模块84还用于:
根据所述私钥,分别计算所述接收到的所述计算结果对应的认证指纹的n个第二分量对应的n个明文;
判断若所述n个明文全部与所述计算结果相同,则确定所述计算结果正确。
本实施例提供的全同态消息认证装置,用于执行图1-7所示的方法实施例的技术方案,其实现原理和技术效果类似,在此不作赘述。
图9为本发明全同态消息认证装置实施例三的结构示意图。如图9所示,该全同态消息认证装置90包括,收发模块91,用于接收终端发送的计算请求,所述计算请求包括:待计算的数据,所述待计算的数据中的每个比特对应的认证指纹、全同态加密算法以及消息认证密钥;
处理模块92,用于根据预先配置的用于计算待计算的数据的计算函数以及所述待计算的数据,计算所述待计算的数据的计算结果;
所述处理模块92还用于根据所述预先配置的用于计算待计算的数据的计算函数、所述待计算的数据的计算结果、所述待计算的数据中的每个比特对应的认证指纹,所述预先配置的全同态加密算法以及所述消息认证密钥,计算所述计算结果对应的认证指纹;
所述收发模块91还用于将所述待计算的数据的计算结果以及所述计算结果对应的认证指纹返回终端,以供所述终端根据接收到的所述计算结果对应的认证指纹对所述计算结果进行正确性认证。
本实施例提供的全同态消息认证装置,用于执行图1-7所示的方法实施例的技术方案,通过接收模块接收终端发送的计算请求,计算请求包括:待计算的数据,消息认证密钥;处理模块根据预先配置的用于计算待计算的数据的计算函数计算所述待计算的数据的计算结果,并根据该消息认证密钥、该计算结果和待计算的数据的每个比特对应的认证指纹计算获取所述计算结果对应的认证指纹,并返回给终端,以使终端根据接收到的计算结果对应的认证指纹对所述计算结果进行正确性认证,解决了现有技术中第一字符串为随机产生的集合{1,2,…,n-1,n}的长度为n/2的子集,在计算每个比特对应的认证指纹的过程中对于非1或0的随机数计算过程复杂的问题,有效降低终端算法的复杂性和计算量。
本发明全同态消息认证装置实施例四中,在上述实施例的基础上,所述处理模块92具体用于:
根据所述待计算的数据的t个比特,采用所述预先配置的用于计算待计算的数据的计算函数,获取所述待计算的数据的计算结果;
其中,所述预先配置的用于计算待计算的数据的计算函数为哈希树,所述哈希树包括:t个输入,1个输出,且所述哈希树中的各个节点均为预先配置的安全哈希函数;t为所述待计算的数据的总比特数。
进一步的,所述待计算的数据中的每个比特对应的认证指纹包括第一分量和n个第二分量,且所述消息认证密钥包括计算钥,则所述处理模块92还用于:
根据所述待计算的数据的t个比特对应的t个所述认证指纹的第一分量,采用所述预先配置的用于计算待计算的数据的计算函数,获取所述计算结果对应的认证指纹的第一分量;
根据所述计算结果、所述待计算的数据的每个比特对应的认证指纹的n个第二分量和所述计算钥,采用所述预先配置的全同态加密算法中的密文计算函数,获取所述计算结果对应的认证指纹的n个第二分量。
即计算结果对应的认证指纹包括所述计算结果对应的认证指纹的第一分量和所述计算结果对应的认证指纹的第二分量。
本实施例提供的全同态消息认证装置,用于执行图1-7所示的方法实施例的技术方案,其实现原理和技术效果类似,在此不作赘述。
图10为本发明终端实施例一的结构示意图,如图10所示,该终端100包括:处理器101、发送器102和接收器103,具体的,处理器101,用于获取消息认证密钥,所述消息认证密钥包括:第一字符串和第二字符串,所述第一字符串为长度为n的0和1的字符串,且所述第一字符串中1的个数为2n/3;所述第二字符串为长度为n的0和1的字符串,且在所述第二字符串中,与所述第一字符串中的1对应的位置上的字符包括n/3个0;n为大于或等于2的整数:
所述处理器101还用于根据所述消息认证密钥,分别生成待计算的数据中的每个比特对应的认证指纹;
发送器102用于向服务器发送计算请求,所述计算请求包括:所述待计算的数据,所述待计算的数据中的每个比特对应的认证指纹、预先配置的全同态加密算法以及所述消息认证密钥;
接收器103用于接收所述服务器返回的所述待计算的数据的计算结果以及所述计算结果对应的认证指纹;
所述处理器101还用于根据接收到的所述计算结果对应的认证指纹对所述计算结果进行正确性认证。
本实施例提供的终端,在满足验证需求的前提下,通过处理器获取消息认证密钥,该消息认证密钥包括:第一字符串为长度为n的0和1的字符串,且所述第一字符串中1的个数为2n/3,第二字符串为长度n的0和1的字符串,且与所述第一字符串中的1对应的位置上的字符包括n/3个0,根据该消息认证密钥生成待计算的数据的每个比特对应的认证指纹,发送器将待计算的数据、每个比特对应的认证指纹、全同态加密算法以及所述消息认证密钥发送给服务器,以使服务器计算待计算的数据的计算结果和所述计算结果对应的认证指纹并返回终端,处理器根据接收器接收到的该计算结果对应的认证指纹对所述计算结果进行正确性认证,通过选择长度为n的0和1的第一字符串,且所述第一字符串中1的个数为2n/3,以及长度为n的0和1的第二字符串,且在所述第二字符串中,与所述第一字符串中的1对应的位置上的字符包括n/3个0,获取的待计算的数据的每个比特的认证指纹的第二分量中***n2/3个0和1的密文,解决了现有技术中第一字符串为随机产生的集合{1,2,…,n-1,n}的长度为n/2的子集,在计算每个比特对应的认证指纹的过程中对于非1或0的随机数计算过程复杂的问题,有效降低终端算法的复杂性和计算量。
在本发明终端的实施例二中,在上述实施例的基础上,所述消息认证密钥还包括公钥,则所述处理器101具体用于:
根据预先配置的伪随机函数和所述待计算的数据中的第i个比特的标签生成所述第i个比特对应的认证指纹的第一分量;
根据所述伪随机函数生成与所述待计算的数据中的第i个比特对应的n个伪随机串;
根据所述第一字符串、所述第二字符串和所述n个伪随机串生成所述第i个比特对应的n个密文作为所述第i个比特对应的认证指纹的第二分量,其中,若所述第一字符串中的第j个字符为0,则将所述第i个比特、所述公钥和所述第j个伪随机串输入预先配置的加密算法生成所述密文;若所述第一字符串中的第j个字符为1并且所述第二个字符串中的第j个字符为0,则将0、所述公钥和所述第j个伪随机串输入所述预先配置的加密算法生成所述密文;若所述第一字符串中的第j个字符为1并且所述第二个字符串中的第j个字符为1,则将1、所述公钥和所述第j个伪随机串输入所述预先配置的加密算法生成所述密文;
其中,i为整数,大于或等于1,且小于或等于所述待计算的数据的总比特数t;j为整数,大于或等于1,且小于或等于n。
进一步的,所述处理器101具体用于:
获取重新计算的所述计算结果对应的认证指纹的第一分量;
比较所述接收到的所述计算结果对应的认证指纹的第一分量与所述重新计算的所述计算结果对应的认证指纹的第一分量是否相等;
若所述接收到的所述计算结果对应的认证指纹的第一分量与所述重新计算的所述计算结果对应的认证指纹的第一分量相等,则继续对所述计算结果进行正确性认证;若二者不相等,则确定所述计算结果不正确。
进一步的,所述处理器101:
根据所述待计算的数据的t个比特对应的t个所述认证指纹的第一分量,采用用于计算所述待计算的数据的计算函数,获取重新计算的所述计算结果对应的认证指纹的第一分量;
其中,所述用于计算待计算的数据的计算函数为哈希树,所述哈希树包括:t个输入,1个输出,且所述哈希树中的各个节点均为预先配置的安全哈希函数。
可选的,所述发送器102还用于将所述待计算数据的t个比特对应的t个所述认证指纹的第一分量发送给第三方设备,以使所述第三方设备根据接收的所述待计算的数据的t个比特对应的t个所述认证指纹的第一分量,采用预先配置的用于计算待计算的数据的计算函数,获取重新计算的所述计算结果对应的认证指纹的第一分量
所述接收器103还用于接收所述第三方设备返回的所述重新计算的所述计算结果对应的认证指纹的第一分量;
其中,所述用于计算待计算的数据的计算函数为哈希树,所述哈希树包括:t个输入,1个输出,且所述哈希树中的各个节点均为所述安全哈希函数。
可选的,所述消息认证密钥还包括私钥,所述处理器101还用于:
根据所述私钥,分别计算所述接收到的所述计算结果对应的认证指纹的n个第二分量对应的n个明文;
判断若所述n个明文全部与所述计算结果相同,则确定所述计算结果正确。
本实施例提供的终端,用于执行图1至图7所示的实施例的技术方案,其实现原理和技术效果类似,在此不再赘述。
图11为本发明服务器实施例一的结构示意图,如图所示,该服务器110包括:接收器111、处理器112和发送器113,具体的,接收器111用于接收终端发送的计算请求,所述计算请求包括:待计算的数据,所述待计算的数据中的每个比特对应的认证指纹、全同态加密算法以及消息认证密钥;
处理器112用于根据预先配置的用于计算待计算的数据的计算函数以及所述待计算的数据,计算所述待计算的数据的计算结果;
所述处理器112还用于根据所述预先配置的用于计算待计算的数据的计算函数、所述待计算的数据的计算结果、所述待计算的数据中的每个比特对应的认证指纹,所述预先配置的全同态加密算法以及所述消息认证密钥,计算所述计算结果对应的认证指纹;
发送器113用于将所述待计算的数据的计算结果以及所述计算结果对应的认证指纹返回终端,以供所述终端根据接收到的所述计算结果对应的认证指纹对所述计算结果进行正确性认证。
本实施例提供的服务器,通过接收器接收终端发送的计算请求,其中包括消息认证密钥,处理器根据预先配置的用于计算待计算的数据的计算函数计算待计算的数据的计算结果,,并根据该消息认证密钥、该计算结果和待计算的数据的每个比特对应的认证指纹计算获取所述计算结果对应的认证指纹并通过发送器返回终端,以使终端根据接收到的该计算结果对应的认证指纹对所述计算结果进行正确性认证,通过选择长度为n,且1的个数为2n/3的第一字符串和长度为n的,且在与第一字符串中的1对应的位置上的字符包括n/3个0的第二字符串,解决了现有技术中第一字符串为随机产生的集合{1,2,…,n-1,n}的长度为n/2的子集,在计算每个比特对应的认证指纹的过程中对于非1或0的随机数计算过程复杂的问题,有效降低终端算法的复杂性和计算量。
在本发明服务器的实施例二中,在上述实施例的基础上,所述处理器112具体用于:
根据所述待计算的数据的t个比特,采用所述预先配置的用于计算待计算的数据的计算函数,获取所述待计算的数据的计算结果;
其中,所述预先配置的用于计算待计算的数据的计算函数为哈希树,所述哈希树包括:t个输入,1个输出,且所述哈希树中的各个节点均为预先配置的安全哈希函数;t为所述待计算的数据的总比特数。
进一步的,所述待计算的数据中的每个比特对应的认证指纹包括第一分量和n个第二分量,且所述消息认证密钥包括计算钥,则所述处理器112具体用于:
根据所述待计算的数据的t个比特对应的t个所述认证指纹的第一分量,采用所述预先配置的用于计算待计算的数据的计算函数,获取所述计算结果对应的认证指纹的第一分量;
根据所述计算结果、所述待计算的数据的每个比特对应的认证指纹的n个第二分量和所述计算钥,采用所述预先配置的全同态加密算法中的密文计算函数,获取所述计算结果对应的认证指纹的n个第二分量。
本实施例提供的服务器,用于执行图1-7所示的方法实施例的技术方案,其实现原理和技术效果类似,在此不再赘述。
另外,在上述终端的实施例一和实施例二以及服务器的实施例一和实施例二中,应理解,在本发明实施例中,该处理器101和处理器112可以是中央处理单元(CentralProcessing Unit,简称CPU),还可以是其他通用处理器、数字信号处理器(Digital SignalProcessor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
在实现过程中,终端和服务器实现图1-7所示的方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
图12为本发明全同态消息认证***实施例一的结构示意图,如图12所示,该全同态消息认证***120包括终端121和服务器122,其中,
所述终端121用于获取消息认证密钥,所述消息认证密钥包括:第一字符串和第二字符串,所述第一字符串为长度为n的0和1的字符串,且所述第一字符串中1的个数为2n/3;所述第二字符串为长度为n的0和1的字符串,且在所述第二字符串中,与所述第一字符串中的1对应的位置上的字符包括n/3个0;n为大于或等于2的整数;根据第一输入字符、所述公钥和伪随机串生成待计算的数据中的第i个比特对应的n个密文中的一个,确定所述n个密文为所述第i个比特对应的认证指纹的第二分量,其中,若所述第一字符串中的第j个字符为0,则所述第一输入字符为所述第i个比特,或者,若所述第一字符串中的第j个字符为1并且所述第二个字符串中的第j个字符为0,则所述第一输入字符为0,或者,若所述第一字符串中的第j个字符为1并且所述第二个字符串中的第j个字符为1,则所述第一输入字符为1;所述第i个比特对应的认证指纹还包括第一分量;其中,i为整数,大于或等于1,且小于或等于所述待计算的数据的总比特数t,t大于或等于1;j为整数,大于或等于1,且小于或等于n;向所述服务器发送计算请求,所述计算请求包括:所述待计算的数据,所述待计算的数据中的每个比特对应的认证指纹、预先配置的全同态加密算法以及所述消息认证密钥;接收所述服务器返回的所述待计算的数据的计算结果以及所述计算结果对应的认证指纹;根据接收到的所述计算结果对应的认证指纹对所述计算结果进行正确性认证;
所述服务器122用于:接收终端发送的计算请求;根据预先配置的用于计算待计算的数据的计算函数以及所述待计算的数据,计算所述待计算的数据的计算结果;根据所述预先配置的用于计算待计算的数据的计算函数、所述待计算的数据的计算结果、所述待计算的数据中的每个比特对应的认证指纹,所述预先配置的全同态加密算法以及所述消息认证密钥,计算所述计算结果对应的认证指纹;将所述待计算的数据的计算结果以及所述计算结果对应的认证指纹返回所述终端,以供所述终端根据接收到的所述计算结果对应的认证指纹对所述计算结果进行正确性认证。
本实施例提供的全同态消息认证***,在满足验证需求的前提下,通过终端获取消息认证密钥,该消息认证密钥包括:第一字符串为长度为n的0和1的字符串,且所述第一字符串中1的个数为2n/3,第二字符串为长度n的0和1的字符串,且与所述第一字符串中的1对应的位置上的字符包括n/3个0,根据该消息认证密钥生成待计算的数据的每个比特对应的认证指纹,并将待计算的数据、每个比特对应的认证指纹、全同态加密算法以及所述消息认证密钥发送给服务器,以使服务器计算待计算的数据的计算结果和所述计算结果对应的认证指纹并返回终端,根据接收器接收到的该计算结果对应的认证指纹对所述计算结果进行正确性认证,通过选择长度为n的0和1的第一字符串,且所述第一字符串中1的个数为2n/3,以及长度为n的0和1的第二字符串,且在所述第二字符串中,与所述第一字符串中的1对应的位置上的字符包括n/3个0,获取的待计算的数据的每个比特的认证指纹的第二分量中***n2/3个0和1的密文,解决了现有技术中第一字符串为随机产生的集合{1,2,…,n-1,n}的长度为n/2的子集,在计算每个比特对应的认证指纹的过程中对于非1或0的随机数计算过程复杂的问题,有效降低终端算法的复杂性和计算量。
在上述实施例的基础上,所述终端121具体用于:根据预先配置的伪随机函数和所述待计算的数据中的第i个比特的标签生成所述第i个比特对应的认证指纹的第一分量;根据所述伪随机函数生成与所述待计算的数据中的第i个比特对应的n个伪随机串;根据所述第一字符串、所述第二字符串和所述n个伪随机串生成所述第i个比特对应的n个密文作为所述第i个比特对应的认证指纹的第二分量,其中,若所述第一字符串中的第j个字符为0,则将所述第i个比特、所述公钥和所述第j个伪随机串输入预先配置的加密算法生成所述密文;若所述第一字符串中的第j个字符为1并且所述第二个字符串中的第j个字符为0,则将0、所述公钥和所述第j个伪随机串输入所述预先配置的加密算法生成所述密文;若所述第一字符串中的第j个字符为1并且所述第二个字符串中的第j个字符为1,则将1、所述公钥和所述第j个伪随机串输入所述预先配置的加密算法生成所述密文;其中,i为整数,大于或等于1,且小于或等于所述待计算的数据的总比特数t;j为整数,大于或等于1,且小于或等于n。
可选的,所述终端121还用于:获取重新计算的所述计算结果对应的认证指纹的第一分量;比较所述接收到的所述计算结果对应的认证指纹的第一分量与所述重新计算的所述计算结果对应的认证指纹的第一分量是否相等;若所述接收到的所述计算结果对应的认证指纹的第一分量与所述重新计算的所述计算结果对应的认证指纹的第一分量相等,则继续对所述计算结果进行正确性认证;若二者不相等,则确定所述计算结果不正确。
可选的,所述终端121具体用于根据所述待计算的数据的t个比特对应的t个所述认证指纹的第一分量,采用用于计算所述待计算的数据的计算函数,获取重新计算的所述计算结果对应的认证指纹的第一分量;或者,将所述待计算数据的t个比特对应的t个所述认证指纹的第一分量发送给第三方设备,以使所述第三方设备根据接收的所述待计算的数据的t个比特对应的t个所述认证指纹的第一分量,采用预先配置的用于计算待计算的数据的计算函数,获取重新计算的所述计算结果对应的认证指纹的第一分量;接收所述第三方设备返回的所述重新计算的所述计算结果对应的认证指纹的第一分量;其中,所述用于计算待计算的数据的计算函数为哈希树,所述哈希树包括:t个输入,1个输出,且所述哈希树中的各个节点均为所述安全哈希函数。
可选的,所述终端121还用于:根据所述私钥,分别计算所述接收到的所述计算结果对应的认证指纹的n个第二分量对应的n个明文;若所述n个明文全部与所述计算结果相同,则确定所述计算结果正确。
可选的,所述服务器122具体用于:根据所述待计算的数据的t个比特,采用所述预先配置的用于计算待计算的数据的计算函数,获取所述待计算的数据的计算结果;其中,所述预先配置的用于计算待计算的数据的计算函数为哈希树,所述哈希树包括:t个输入,1个输出,且所述哈希树中的各个节点均为预先配置的安全哈希函数;t为所述待计算的数据的总比特数。
可选的,所述服务器122还用于:根据所述待计算的数据的t个比特对应的t个所述认证指纹的第一分量,采用所述预先配置的用于计算待计算的数据的计算函数,获取所述计算结果对应的认证指纹的第一分量;
根据所述计算结果、所述待计算的数据的每个比特对应的认证指纹的n个第二分量和所述计算钥,采用所述预先配置的全同态加密算法中的密文计算函数,获取所述计算结果对应的认证指纹的n个第二分量。
上述实施例提供的全同态消息认证***,用于执行图1-7任一所示的方法实施例的技术方案,其实现原理和技术效果类似,在此不再赘述。
需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (20)

1.一种全同态消息认证方法,其特征在于,所述方法应用于终端,包括:
获取消息认证密钥,所述消息认证密钥包括公钥、第一字符串和第二字符串,所述第一字符串为长度为n的0和1的字符串,且所述第一字符串中字符为1的个数为2n/3;所述第二字符串为长度为n的0和1的字符串,且在所述第二字符串中,与所述第一字符串中的为1的字符对应的位置上的字符包括n/3个0,其中,n为大于或等于2的整数;
根据第一输入字符、所述公钥和伪随机串生成待计算的数据中的第i个比特对应的n个密文中的一个,确定所述n个密文为所述第i个比特对应的认证指纹的第二分量,其中,若所述第一字符串中的第j个字符为0,则所述第一输入字符为所述第i个比特,或者,若所述第一字符串中的第j个字符为1并且所述第二字符串中的第j个字符为0,则所述第一输入字符为0,或者,若所述第一字符串中的第j个字符为1并且所述第二字符串中的第j个字符为1,则所述第一输入字符为1;所述第i个比特对应的认证指纹还包括第一分量;其中,i为整数,大于或等于1,且小于或等于所述待计算的数据的总比特数t,t大于或等于1;j为整数,大于或等于1,且小于或等于n;
向服务器发送计算请求,所述计算请求包括:所述待计算的数据,所述待计算的数据中的每个比特对应的认证指纹、预先配置的全同态加密算法以及所述消息认证密钥;
接收所述服务器返回的所述待计算的数据的计算结果以及所述计算结果对应的认证指纹;
根据接收到的所述计算结果对应的认证指纹对所述计算结果进行正确性认证。
2.根据权利要求1所述的方法,其特征在于,所述第i个比特对应的认证指纹由以下步骤生成,包括:
根据预先配置的伪随机函数和所述待计算的数据中的第i个比特的标签生成所述第i个比特对应的认证指纹的第一分量;
根据所述伪随机函数生成与所述待计算的数据中的第i个比特对应的n个伪随机串;
根据所述第一字符串、所述第二字符串和所述n个伪随机串生成所述第i个比特对应的n个密文作为所述第i个比特对应的认证指纹的第二分量,其中,若所述第一字符串中的第j个字符为0,则将所述第i个比特、所述公钥和第j个伪随机串输入预先配置的加密算法生成一个密文;若所述第一字符串中的第j个字符为1并且所述第二字符串中的第j个字符为0,则将0、所述公钥和所述第j个伪随机串输入所述预先配置的加密算法生成一个密文;若所述第一字符串中的第j个字符为1并且所述第二字符串中的第j个字符为1,则将1、所述公钥和所述第j个伪随机串输入所述预先配置的加密算法生成一个密文。
3.根据权利要求2所述的方法,其特征在于,根据接收到的所述计算结果对应的认证指纹对所述计算结果进行正确性认证,包括:
获取重新计算的所述计算结果对应的认证指纹的第一分量;
比较所述接收到的所述计算结果对应的认证指纹的第一分量与所述重新计算的所述计算结果对应的认证指纹的第一分量是否相等;
若所述接收到的所述计算结果对应的认证指纹的第一分量与所述重新计算的所述计算结果对应的认证指纹的第一分量相等,则继续对所述计算结果进行正确性认证;若二者不相等,则确定所述计算结果不正确。
4.根据权利要求3所述的方法,其特征在于,所述获取重新计算的所述计算结果对应的认证指纹的第一分量,包括:
根据所述待计算的数据的t个比特对应的t个所述认证指纹的第一分量,采用用于计算所述待计算的数据的计算函数,获取重新计算的所述计算结果对应的认证指纹的第一分量;
其中,所述用于计算待计算的数据的计算函数为哈希树,所述哈希树包括:t个输入,1个输出,且所述哈希树中的各个节点均为预先配置的安全哈希函数。
5.根据权利要求3所述的方法,其特征在于,所述获取重新计算的所述计算结果对应的认证指纹的第一分量,包括:
将所述待计算数据的t个比特对应的t个所述认证指纹的第一分量发送给第三方设备,以使所述第三方设备根据接收的所述待计算的数据的t个比特对应的t个所述认证指纹的第一分量,采用预先配置的用于计算待计算的数据的计算函数,获取重新计算的所述计算结果对应的认证指纹的第一分量;
接收所述第三方设备返回的所述重新计算的所述计算结果对应的认证指纹的第一分量;
其中,所述用于计算待计算的数据的计算函数为哈希树,所述哈希树包括:t个输入,1个输出,且所述哈希树中的各个节点均为安全哈希函数。
6.根据权利要求3至5任一所述的方法,其特征在于,所述消息认证密钥还包括私钥,所述接收到的所述计算结果对应的认证指纹的第一分量与所述重新计算的所述计算结果对应的认证指纹的第一分量相等,则继续对所述计算结果进行正确性认证,包括:
根据所述私钥,分别计算所述接收到的所述计算结果对应的认证指纹的n个第二分量对应的n个明文;
若所述n个明文全部与所述计算结果相同,则确定所述计算结果正确。
7.一种全同态消息认证方法,其特征在于,所述方法应用于服务器,包括:
接收终端发送的计算请求,所述计算请求包括:待计算的数据,所述待计算的数据中的每个比特对应的认证指纹、预先配置的全同态加密算法以及消息认证密钥;
根据预先配置的用于计算待计算的数据的计算函数以及所述待计算的数据,计算所述待计算的数据的计算结果;
根据所述预先配置的用于计算待计算的数据的计算函数、所述待计算的数据的计算结果、所述待计算的数据中的每个比特对应的认证指纹,所述预先配置的全同态加密算法以及所述消息认证密钥,计算所述计算结果对应的认证指纹;
将所述待计算的数据的计算结果以及所述计算结果对应的认证指纹返回所述终端,以供所述终端根据接收到的所述计算结果对应的认证指纹对所述计算结果进行正确性认证。
8.根据权利要求7所述的方法,其特征在于,所述根据预先配置的用于计算待计算的数据的计算函数以及所述待计算的数据,计算所述待计算的数据的计算结果,包括:
根据所述待计算的数据的t个比特,采用所述预先配置的用于计算待计算的数据的计算函数,获取所述待计算的数据的计算结果;
其中,所述预先配置的用于计算待计算的数据的计算函数为哈希树,所述哈希树包括:t个输入,1个输出,且所述哈希树中的各个节点均为预先配置的安全哈希函数;t为所述待计算的数据的总比特数。
9.根据权利要求8所述的方法,其特征在于,所述待计算的数据中的每个比特对应的认证指纹包括第一分量和n个第二分量,且所述消息认证密钥包括计算钥,则所述根据所述预先配置的用于计算待计算的数据的计算函数、所述待计算的数据的计算结果、所述待计算的数据中的每个比特对应的认证指纹,所述预先配置的全同态加密算法以及所述消息认证密钥,计算所述计算结果对应的认证指纹,包括:
根据所述待计算的数据的t个比特对应的t个所述认证指纹的第一分量,采用所述预先配置的用于计算待计算的数据的计算函数,获取所述计算结果对应的认证指纹的第一分量;
根据所述计算结果、所述待计算的数据的每个比特对应的认证指纹的n个第二分量和所述计算钥,采用所述预先配置的全同态加密算法中的密文计算函数,获取所述计算结果对应的认证指纹的n个第二分量。
10.一种全同态消息认证装置,其特征在于,包括:
获取模块,用于获取消息认证密钥,所述消息认证密钥包括公钥、第一字符串和第二字符串,所述第一字符串为长度为n的0和1的字符串,且所述第一字符串中字符为1的个数为2n/3;所述第二字符串为长度为n的0和1的字符串,且在所述第二字符串中,与所述第一字符串中的为1的字符对应的位置上的字符包括n/3个0,其中,n为大于或等于2的整数;
生成模块,用于根据第一输入字符、所述公钥和伪随机串生成待计算的数据中的第i个比特对应的n个密文中的一个,确定所述n个密文为所述第i个比特对应的认证指纹的第二分量,其中,若所述第一字符串中的第j个字符为0,则所述第一输入字符为所述第i个比特,或者,若所述第一字符串中的第j个字符为1并且所述第二字符串中的第j个字符为0,则所述第一输入字符为0,或者,若所述第一字符串中的第j个字符为1并且所述第二字符串中的第j个字符为1,则所述第一输入字符为1;所述第i个比特对应的认证指纹还包括第一分量;其中,i为整数,大于或等于1,且小于或等于所述待计算的数据的总比特数t,t大于或等于1;j为整数,大于或等于1,且小于或等于n;
收发模块,用于向服务器发送计算请求,所述计算请求包括:所述待计算的数据,所述待计算的数据中的每个比特对应的认证指纹、预先配置的全同态加密算法以及所述消息认证密钥;
所述收发模块还用于接收所述服务器返回的所述待计算的数据的计算结果以及所述计算结果对应的认证指纹;
处理模块,用于根据所述收发模块接收到的所述计算结果对应的认证指纹对所述计算结果进行正确性认证。
11.根据权利要求10所述的装置,其特征在于,所述生成模块具体用于:
根据预先配置的伪随机函数和所述待计算的数据中的第i个比特的标签生成所述第i个比特对应的认证指纹的第一分量;
根据所述伪随机函数生成与所述待计算的数据中的第i个比特对应的n个伪随机串;
根据所述第一字符串、所述第二字符串和所述n个伪随机串生成所述第i个比特对应的n个密文作为所述第i个比特对应的认证指纹的第二分量,其中,若所述第一字符串中的第j个字符为0,则将所述第i个比特、所述公钥和第j个伪随机串输入预先配置的加密算法生成一个密文;若所述第一字符串中的第j个字符为1并且所述第二字符串中的第j个字符为0,则将0、所述公钥和所述第j个伪随机串输入所述预先配置的加密算法生成一个密文;若所述第一字符串中的第j个字符为1并且所述第二字符串中的第j个字符为1,则将1、所述公钥和所述第j个伪随机串输入所述预先配置的加密算法生成一个密文。
12.根据权利要求10或11所述的装置,其特征在于,所述处理模块具体用于:
获取重新计算的所述计算结果对应的认证指纹的第一分量;
比较所述接收到的所述计算结果对应的认证指纹的第一分量与所述重新计算的所述计算结果对应的认证指纹的第一分量是否相等;
若所述接收到的所述计算结果对应的认证指纹的第一分量与所述重新计算的所述计算结果对应的认证指纹的第一分量相等,则继续对所述计算结果进行正确性认证;若二者不相等,则确定所述计算结果不正确。
13.根据权利要求12所述的装置,其特征在于,所述处理模块还用于根据获取的所述待计算的数据的t个比特对应的t个所述认证指纹的第一分量,采用用于计算待计算的数据的计算函数,获取重新计算的所述计算结果对应的认证指纹的第一分量;
其中,所述用于计算待计算的数据的计算函数为哈希树,所述哈希树包括:t个输入,1个输出,且所述哈希树中的各个节点均为预先配置的安全哈希函数。
14.根据权利要求12所述的装置,其特征在于,所述收发模块还用于:
将所述待计算数据的t个比特对应的t个所述认证指纹的第一分量发送给第三方设备,以使所述第三方设备根据接收的所述待计算的数据的t个比特对应的t个所述认证指纹的第一分量,采用预先配置的用于计算待计算的数据的计算函数,获取重新计算的所述计算结果对应的认证指纹的第一分量;
接收所述第三方设备返回的所述重新计算的所述计算结果对应的认证指纹的第一分量;
其中,所述用于计算待计算的数据的计算函数为哈希树,所述哈希树包括:t个输入,1个输出,且所述哈希树中的各个节点均为安全哈希函数。
15.根据权利要求13或14所述的装置,其特征在于,所述消息认证密钥还包括私钥,所述处理模块还用于:
根据所述私钥,分别计算所述接收到的所述计算结果对应的认证指纹的n个第二分量对应的n个明文;
判断若所述n个明文全部与所述计算结果相同,则确定所述计算结果正确。
16.一种全同态消息认证装置,其特征在于,包括:
收发模块,用于接收终端发送的计算请求,所述计算请求包括:待计算的数据,所述待计算的数据中的每个比特对应的认证指纹、预先配置的全同态加密算法以及消息认证密钥;
处理模块,用于根据预先配置的用于计算待计算的数据的计算函数以及所述待计算的数据,计算所述待计算的数据的计算结果;
所述处理模块还用于根据所述预先配置的用于计算待计算的数据的计算函数、所述待计算的数据的计算结果、所述待计算的数据中的每个比特对应的认证指纹,所述预先配置的全同态加密算法以及所述消息认证密钥,计算所述计算结果对应的认证指纹;
所述收发模块还用于将所述待计算的数据的计算结果以及所述计算结果对应的认证指纹返回所述终端,以供所述终端根据接收到的所述计算结果对应的认证指纹对所述计算结果进行正确性认证。
17.根据权利要求16所述的装置,其特征在于,所述处理模块具体用于:
根据所述待计算的数据的t个比特,采用所述预先配置的用于计算待计算的数据的计算函数,获取所述待计算的数据的计算结果;
其中,所述预先配置的用于计算待计算的数据的计算函数为哈希树,所述哈希树包括:t个输入,1个输出,且所述哈希树中的各个节点均为预先配置的安全哈希函数;t为所述待计算的数据的总比特数。
18.根据权利要求17所述的装置,其特征在于,所述待计算的数据中的每个比特对应的认证指纹包括第一分量和n个第二分量,且所述消息认证密钥包括计算钥,则所述处理模块还用于:
根据所述待计算的数据的t个比特对应的t个所述认证指纹的第一分量,采用所述预先配置的用于计算待计算的数据的计算函数,获取所述计算结果对应的认证指纹的第一分量;
根据所述计算结果、所述待计算的数据的每个比特对应的认证指纹的n个第二分量和所述计算钥,采用所述预先配置的全同态加密算法中的密文计算函数,获取所述计算结果对应的认证指纹的n个第二分量。
19.一种全同态消息认证***,其特征在于,所述***包括终端和服务器,其中,
所述终端用于获取消息认证密钥,所述消息认证密钥包括:第一字符串和第二字符串,所述第一字符串为长度为n的0和1的字符串,且所述第一字符串中1的个数为2n/3;所述第二字符串为长度为n的0和1的字符串,且在所述第二字符串中,与所述第一字符串中的1对应的位置上的字符包括n/3个0;n为大于或等于2的整数;根据第一输入字符、公钥和伪随机串生成待计算的数据中的第i个比特对应的n个密文中的一个,确定所述n个密文为所述第i个比特对应的认证指纹的第二分量,其中,若所述第一字符串中的第j个字符为0,则所述第一输入字符为所述第i个比特,或者,若所述第一字符串中的第j个字符为1并且所述第二字符串中的第j个字符为0,则所述第一输入字符为0,或者,若所述第一字符串中的第j个字符为1并且所述第二字符串中的第j个字符为1,则所述第一输入字符为1;所述第i个比特对应的认证指纹还包括第一分量;其中,i为整数,大于或等于1,且小于或等于所述待计算的数据的总比特数t,t大于或等于1;j为整数,大于或等于1,且小于或等于n;向所述服务器发送计算请求,所述计算请求包括:所述待计算的数据,所述待计算的数据中的每个比特对应的认证指纹、预先配置的全同态加密算法以及所述消息认证密钥;接收所述服务器返回的所述待计算的数据的计算结果以及所述计算结果对应的认证指纹;根据接收到的所述计算结果对应的认证指纹对所述计算结果进行正确性认证;
所述服务器用于:接收终端发送的计算请求;根据预先配置的用于计算待计算的数据的计算函数以及所述待计算的数据,计算所述待计算的数据的计算结果;根据所述预先配置的用于计算待计算的数据的计算函数、所述待计算的数据的计算结果、所述待计算的数据中的每个比特对应的认证指纹,所述预先配置的全同态加密算法以及所述消息认证密钥,计算所述计算结果对应的认证指纹;将所述待计算的数据的计算结果以及所述计算结果对应的认证指纹返回所述终端,以供所述终端根据接收到的所述计算结果对应的认证指纹对所述计算结果进行正确性认证。
20.根据权利要求19所述的***,其特征在于,所述终端具体用于:根据预先配置的伪随机函数和所述待计算的数据中的第i个比特的标签生成所述第i个比特对应的认证指纹的第一分量;根据所述伪随机函数生成与所述待计算的数据中的第i个比特对应的n个伪随机串;根据所述第一字符串、所述第二字符串和所述n个伪随机串生成所述第i个比特对应的n个密文作为所述第i个比特对应的认证指纹的第二分量,其中,若所述第一字符串中的第j个字符为0,则将所述第i个比特、所述公钥和第j个伪随机串输入预先配置的加密算法生成所述密文;若所述第一字符串中的第j个字符为1并且所述第二字符串中的第j个字符为0,则将0、所述公钥和所述第j个伪随机串输入所述预先配置的加密算法生成所述密文;若所述第一字符串中的第j个字符为1并且所述第二字符串中的第j个字符为1,则将1、所述公钥和所述第j个伪随机串输入所述预先配置的加密算法生成所述密文;其中,i为整数,大于或等于1,且小于或等于所述待计算的数据的总比特数t;j为整数,大于或等于1,且小于或等于n。
CN201410309571.3A 2014-06-30 2014-06-30 全同态消息认证方法、装置及*** Expired - Fee Related CN105337736B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201410309571.3A CN105337736B (zh) 2014-06-30 2014-06-30 全同态消息认证方法、装置及***
PCT/CN2015/072570 WO2016000453A1 (zh) 2014-06-30 2015-02-09 全同态消息认证方法、装置及***
EP15775600.8A EP3163792B1 (en) 2014-06-30 2015-02-09 Fully homomorphic message authentication method, device and system
US14/985,883 US10009343B2 (en) 2014-06-30 2015-12-31 Method, apparatus, and system for authenticating fully homomorphic message

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410309571.3A CN105337736B (zh) 2014-06-30 2014-06-30 全同态消息认证方法、装置及***

Publications (2)

Publication Number Publication Date
CN105337736A CN105337736A (zh) 2016-02-17
CN105337736B true CN105337736B (zh) 2018-10-30

Family

ID=55018404

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410309571.3A Expired - Fee Related CN105337736B (zh) 2014-06-30 2014-06-30 全同态消息认证方法、装置及***

Country Status (4)

Country Link
US (1) US10009343B2 (zh)
EP (1) EP3163792B1 (zh)
CN (1) CN105337736B (zh)
WO (1) WO2016000453A1 (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170293913A1 (en) * 2016-04-12 2017-10-12 The Governing Council Of The University Of Toronto System and methods for validating and performing operations on homomorphically encrypted data
IT201600105253A1 (it) * 2016-10-19 2018-04-19 Torino Politecnico Dispositivo e metodi per l'autenticazione di unn apparato d'utente
US10972251B2 (en) 2017-01-20 2021-04-06 Enveil, Inc. Secure web browsing via homomorphic encryption
US11777729B2 (en) 2017-01-20 2023-10-03 Enveil, Inc. Secure analytics using term generation and homomorphic encryption
US10873568B2 (en) 2017-01-20 2020-12-22 Enveil, Inc. Secure analytics using homomorphic and injective format-preserving encryption and an encrypted analytics matrix
US10790960B2 (en) 2017-01-20 2020-09-29 Enveil, Inc. Secure probabilistic analytics using an encrypted analytics matrix
US11507683B2 (en) 2017-01-20 2022-11-22 Enveil, Inc. Query processing with adaptive risk decisioning
US11196541B2 (en) 2017-01-20 2021-12-07 Enveil, Inc. Secure machine learning analytics using homomorphic encryption
EP3503456A1 (en) * 2017-12-19 2019-06-26 Koninklijke Philips N.V. Homomorphic encryption for password authentication
CN110661610B (zh) 2018-06-29 2020-11-03 创新先进技术有限公司 安全多方计算协议的输入获取方法和装置
CN109413506B (zh) * 2018-09-30 2021-06-11 武汉斗鱼网络科技有限公司 一种弹幕数据的校验方法、装置、终端及存储介质
US10902133B2 (en) 2018-10-25 2021-01-26 Enveil, Inc. Computational operations in enclave computing environments
US10817262B2 (en) 2018-11-08 2020-10-27 Enveil, Inc. Reduced and pipelined hardware architecture for Montgomery Modular Multiplication
US10554637B1 (en) * 2019-05-01 2020-02-04 Cyberark Software Ltd. Secure and reconstructible distribution of data among network resources
US20210081807A1 (en) * 2019-09-17 2021-03-18 Sap Se Non-Interactive Private Decision Tree Evaluation
US11601258B2 (en) 2020-10-08 2023-03-07 Enveil, Inc. Selector derived encryption systems and methods

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102012980A (zh) * 2010-11-16 2011-04-13 中国科学技术大学苏州研究院 基于同态加密***的文本信息隐藏安全检测方法
CN102082665A (zh) * 2009-11-30 2011-06-01 ***通信集团公司 一种eap认证中的标识认证方法、***和设备
CN103475472A (zh) * 2013-07-22 2013-12-25 浙江万里学院 环lwe上ntru型的全同态加密方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090158054A1 (en) 2007-12-13 2009-06-18 Massachusetts Institute Of Technology Private data processing
US8630422B2 (en) 2009-11-10 2014-01-14 International Business Machines Corporation Fully homomorphic encryption method based on a bootstrappable encryption scheme, computer program and apparatus
US8861716B2 (en) 2010-03-30 2014-10-14 International Business Machines Corporation Efficient homomorphic encryption scheme for bilinear forms
US8903083B2 (en) 2010-08-16 2014-12-02 International Business Machines Corporation Fast evaluation of many polynomials with small coefficients on the same point
JP2012049679A (ja) 2010-08-25 2012-03-08 Sony Corp 端末装置、サーバ、データ処理システム、データ処理方法、及びプログラム
EP2786292B1 (en) * 2011-11-28 2016-06-08 Porticor Ltd. Methods and devices for securing keys for a non-secured, distributed environment with applications to virtualization and cloud-computing security and management
US8667288B2 (en) * 2012-05-29 2014-03-04 Robert Bosch Gmbh System and method for message verification in broadcast and multicast networks
WO2014016795A2 (en) * 2012-07-26 2014-01-30 Nds Limited Method and system for homomorphicly randomizing an input
JP2014126865A (ja) * 2012-12-27 2014-07-07 Fujitsu Ltd 暗号処理装置および方法
EP2719149B1 (en) * 2013-04-05 2015-09-16 Nec Corporation Method and system for modifying an authenticated and/or encrypted message
JP2014209677A (ja) * 2013-04-16 2014-11-06 株式会社東芝 データ管理装置、電力使用量計算システム、データ管理方法、及びデータ管理プログラム
CN105339995B (zh) * 2013-07-18 2018-04-06 日本电信电话株式会社 解密装置、解密能力提供装置、其方法、以及记录介质
US10037544B2 (en) * 2013-12-18 2018-07-31 Intel Corporation Technologies for collecting advertising statistics in a privacy sensitive manner
US9264407B2 (en) * 2014-04-03 2016-02-16 Palo Alto Research Center Incorporated Computer-implemented system and method for establishing distributed secret shares in a private data aggregation scheme
US10148291B2 (en) * 2014-04-24 2018-12-04 University Of Maryland, College Park Practical dynamic proofs of retrievability with multiple buffers
US20150365227A1 (en) * 2014-06-11 2015-12-17 International Business Machines Corporation Shared security utility appliance for secure application and data processing

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102082665A (zh) * 2009-11-30 2011-06-01 ***通信集团公司 一种eap认证中的标识认证方法、***和设备
CN102012980A (zh) * 2010-11-16 2011-04-13 中国科学技术大学苏州研究院 基于同态加密***的文本信息隐藏安全检测方法
CN103475472A (zh) * 2013-07-22 2013-12-25 浙江万里学院 环lwe上ntru型的全同态加密方法

Also Published As

Publication number Publication date
CN105337736A (zh) 2016-02-17
EP3163792B1 (en) 2019-08-28
US10009343B2 (en) 2018-06-26
US20160119346A1 (en) 2016-04-28
EP3163792A1 (en) 2017-05-03
EP3163792A4 (en) 2018-02-28
WO2016000453A1 (zh) 2016-01-07

Similar Documents

Publication Publication Date Title
CN105337736B (zh) 全同态消息认证方法、装置及***
US7649992B2 (en) Apparatuses for encoding, decoding, and authenticating data in cipher block chaining messaging authentication code
CN109309569A (zh) 基于sm2算法的协同签名的方法、装置及存储介质
CN107196763A (zh) Sm2算法协同签名及解密方法、装置与***
US8661240B2 (en) Joint encryption of data
CN109981641A (zh) 一种基于区块链技术的安全发布订阅***及发布订阅方法
CN103563288B (zh) 基于口令的单轮密钥交换协议
JP6950745B2 (ja) 鍵交換装置、鍵交換システム、鍵交換方法、及び鍵交換プログラム
CN105812349B (zh) 一种基于身份信息的非对称密钥分发及消息加密方法
US11677543B2 (en) Key exchange method and key exchange system
US12010216B2 (en) Computer-implemented system and method for highly secure, high speed encryption and transmission of data
CN106789087B (zh) 确定消息的数据摘要、基于多方的数字签名的方法及***
CN109818752A (zh) 信用评分生成方法、装置、计算机设备和存储介质
US11528127B2 (en) Computer-implemented system and method for highly secure, high speed encryption and transmission of data
CN109309566A (zh) 一种认证方法、装置、***、设备及存储介质
CN109660344A (zh) 基于非对称密钥池路由装置的抗量子计算区块链交易方法和***
JPWO2016199507A1 (ja) 鍵交換方法、鍵交換システム、鍵配送装置、通信装置、およびプログラム
CN106534077B (zh) 一种基于对称密码的可认证的代理重加密***及方法
CN115277064B (zh) 数据加密、数据解密方法、装置、电子设备和介质
CN116561791A (zh) 隐私求交方法、装置及存储介质
JP3746919B2 (ja) 可変認証情報を用いる資格認証方法
CN110401533A (zh) 一种私钥加密方法及装置
CN114189329B (zh) 一种公钥认证可否认加密方法及***
CN113055172B (zh) 一种密钥协商方法、装置、电子设备及存储介质
CN114285558B (zh) 一种基于半可信硬件的多方隐私计算方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20181030