TECHNICAL FIELD

The invention relates to the field of cryptography, and in particular, to a method and a system of identity authentication, and a computing device and a storage medium thereof.

BACKGROUND OF THE INVENTION

Public Key Infrastructure (PKI) is an infrastructure that supports public key management and authentication, encryption, integrity and accountability services. A simple PKI system includes a Certificate Authority (CA), a Register Authority (RA) and a corresponding PKI repository. The CA is used to issue and manage certificates. The RA can be either a part of the CA or an independent unit having a functionality including personal identity audit, Certificate Revocation List (CRL), key generation and key pair backup. The PKI repository can include a Lightweight Directory Access Protocol (LDAP) directory server and a common database to store and manage such information as user applications, certificates, keys, CRLs, and logs and provide certain query functions.

In contrast with PKI, a Time-Dependent Key Infrastructure (TKI) to which time information is built in, supports public key management and authentication, encryption, integrity and accountability services. In a TKI, a public medium such as a blockchain can serve as a CA in PKI. The public medium can ensure information published thereon not being tampered with.

With either PKI or TKI, when a user applies for a digital certificate, an authenticity thereof is required to be proved with the CA (e.g., an identity authentication).

SUMMARY OF THE INVENTION

In view of above technical problems, the disclosure provides a method and a system of identity authentication which implementing a zero-knowledge proof, and a computing device and a storage medium thereof.

In an aspect of the disclosure, a method of identity authentication at a user is provided to prove to a certificate authority that a key is owned by a user. The method can comprise selecting a certain number of keys from a set of keys of the user, obtaining a hash value of a correspondence between each key in the certain number of keys and a user identifier of the user respectively, and transmitting the obtained hash values to the certificate authority, and after receiving from the certificate authority a notification regarding a first subset of hash values, sending keys corresponding to the first subset of hash values as a first subset of keys to the certificate authority. The first subset of hash values can be selected by the certificate authority from the obtained hash values.

In some embodiments, the method of identity authentication can further comprise, after the certificate authority signs all hash values received from the user except the first subset of hash values, signing files with the keys corresponding to the hash values signed by the certificate authority.

In some embodiments, obtaining a hash value of a correspondence between each key in the certain number of keys and a user identifier of the user further comprises obtaining a hash value of a combination, the combination comprising each key in the certain number of keys and the user identifier of the user.

In some embodiments, obtaining a hash value of a correspondence between each key in the certain number of keys and a user identifier of the user further comprises obtaining a hash value of a combination, the combination comprising each key in the certain number of keys, the user identifier of the user and a publication time of said each key.

In some embodiments, the method of identity authentication can further comprise selecting a first key from the set of keys except the certain number of keys, obtaining a hash value of a correspondence between the first key and the user identifier, and obtaining a hash value of a combination respectively, the combination comprising the obtained hash value in relation to the first key, the user identifier and all keys from the certain number of keys except the first subset of keys, recording the obtained the hash value of the combination and the hash value in relation to the first key on a public medium, which the public medium being configured to ensure information published thereon not being tampered with, and releasing all keys in the certain number of keys except the first subset of keys after the certificate authority signs all the hash values received from the user except the first subset of hash values and after the hash value of the combination and the hash value in relation to the first key are recorded on the public medium.

In some embodiments, the method of identity authentication can further comprise selecting a first key from the set of keys except the certain number of keys obtaining a hash value of a correspondence between the first key and the user identifier and obtaining a hash value of a combination, the combination comprising the obtained hash value in relation to the first key, the user identifier, a publication time of the first key, and all keys from the certain number of keys except the first subset of keys, recording the obtained hash value of the combination and the hash value in relation to the first key on a public medium, which the public medium being configured to ensure information published thereon not being tampered with, and releasing all keys in the certain number of keys except the first subset of keys after the certificate authority signs all hash values received from the user except the first subset of hash values and after the hash value of the combination and the hash value in relation to the first key are recorded on the public medium.

In some embodiments, the public medium can be a blockchain.

In some embodiments, the public medium can be a bulletin board system operated by a trusted third party.

In some embodiments, the public medium can be a write-only database. A data block written to the write-only database can be irrevocable. A consensus can be reached among all users.

In some embodiments, the number of hash values in the first subset of hash values can be 15% of the number of keys in the certain number of keys.

In another aspect of the disclosure, a method of identity authentication at a certificate authority is provided to prove to a certificate authority that a key is owned by a user. The method can comprise receiving from the user hash values corresponding to a certain number of keys, selecting from the hash values a first subset of hash values and notifying the user of the first subset of hash values, obtaining a hash value of a correspondence between each key in a first subset of keys received from the user and a user identifier of the user respectively, and comparing the obtained hash value with a hash value in the first subset of hash values corresponding to said each key, and signing all hash values received from the user except the first subset of hash values if all the obtained hash values are correspondingly consistent with the hash values in the first subset of hash values.

In some embodiments, the method of identity authentication can further comprise obtaining a hash value of a correspondence between each key in a second subset of keys received from the user and the user identifier of the user respectively, and comparing the obtained hash value with a hash value in the hash values received from the user corresponding to said each key, the second subset of keys including all keys in the certain number of keys except the first subset of keys, and signing a hash value of a correspondence between a first key and the user identifier if all the hash values obtained for all keys in the second subset of keys are correspondingly consistent with the hash values received from the user.

In some embodiments, the correspondence between each key and the user identifier of the user can comprise a combination of said each key and the user identifier of the user. A correspondence between the first key and the user identifier can comprise a combination of the first key and the user identifier of the user.

In some embodiments, the correspondence between each key and the user identifier of the user can comprise a combination of said each key, the user identifier of the user and a publication time of said each key. A correspondence between the first key and the user identifier can comprise a combination of the first key, the user identifier of the user and a publication time of the first key.

In another aspect of the disclosure, a system of identity authentication is provided. The system can comprise a client and a certificate authority. A user can prove to the certificate authority via the client that a key is owned by the user. The client can select a certain number of keys from a set of keys of the user. The client can obtain a hash value of a correspondence between each key in the certain number of keys and a user identifier of the user and send the obtained hash values to the certificate authority. The certificate authority can select from the obtained hash values a first subset of hash values and notifies the client of the first subset of hash values. The client can send keys corresponding to the first subset of hash values to the certificate authority as a first subset of keys. The certificate authority can obtain a hash value of a correspondence between each key in the first subset of keys and the user identifier of the user and compare the obtained hash value with a corresponding hash value in the first subset of hash values. The certificate authority can sign all hash values received from the client except the first subset of hash values if all the obtained hash values are correspondingly consistent with the hash values in the first subset of hash values.

In some embodiments, the user can sign files via the client with keys corresponding to the hash values signed by the certificate authority.

In some embodiments, the correspondence between each key and the user identifier of the user can further comprise a combination, the combination comprising said each key and the user identifier of the user.

In some embodiments, the correspondence between each key and the user identifier of the user can further comprise a combination, the combination comprising said each key, the user identifier of the user and a publication time of said each key.

In some embodiments, the system of identity authentication can also comprise a public medium. The public medium can be configured to ensure information published thereon not being tampered. The client can select a first key from the set of keys except the certain number of keys. The client can obtain a hash value of a correspondence between the first key and the user identifier and obtain a hash value of a combination, the combination comprising the obtained hash value in relation to the first key, the user identifier and all keys from the certain number of keys except the first subset of keys. The client can record the obtained hash values of the combinations and the hash value in relation to the first key on the public medium. The client can release all keys in the certain number of keys except the first subset of keys as a second subset of keys. The certificate authority can obtain a hash value of a correspondence between each key in the second subset of keys and the user identifier and compare the obtained hash values with hash values received from the client corresponding to each key. The certificate authority can sign the hash value of the correspondence between the first key and the user identifier if all the hash values obtained for all the keys in the second subset of keys are correspondingly consistent with the hash values received from the client.

In some embodiments, the system of identity authentication can also comprise a public medium. The public media is configured to ensure information published thereon not being tampered. The client can select a first key from the set of keys except the certain number of keys. The client can obtain hash value of a correspondence between the first key and the user identifier, and obtain a hash values of a combination, the combination comprising the obtained hash value in relation to the first key, the user identifier, a publication time of the first key and all keys from the certain number of keys except the first subset of keys. The client can record the obtained hash values of the combinations and the hash value in relation to the first key on the public medium. The client can release all keys in the certain number of keys except the first subset of keys as a second subset of keys. The certificate authority can obtain a hash value of a correspondence between each key in the second subset of keys and the user identifier and compare the obtained hash values with hash values received from the client corresponding to each key. The certificate authority can sign the hash value of the correspondence between the first key and the user identifier if all the hash values obtained for all keys in the second subset of keys are correspondingly consistent with the hash values received from the client.

In some embodiments, the public medium can be a blockchain.

In some embodiments, the public medium can be a bulletin board system operated by a trusted third party.

In some embodiments, the public medium can be a write-only database. A data block written to the write-only database can be irrevocable. A consensus can be reached among all users.

In some embodiments, the number of hash values in the first subset of hash values can be 50% of the number of keys in the certain number of keys.

In another aspect of the disclosure, a computing device comprising a processor and a memory is provided. The memory can have a computer program stored thereon. The computer program, when executed by the processor, can implement the method of identity authentication as described hereinabove in the disclosure.

In another aspect of the disclosure, a machine-readable storage medium is provided. The machine-readable storage medium can comprise a computer program stored thereon. The computer program, when executed by a processor, can implement the method of identity authentication as described hereinabove in the disclosure.

The technical solution provided in the disclosure can be beneficial over prior art in various aspects:

In an aspect, the user can prove to the certificate authority that the user is the real owner of a key with the technical solution of the disclosure. In some instances, by sacrificing some keys (for example, the first subset of keys), the user can prove to the certificate authority that the user is the real owner of other keys (e.g., a second subset of keys). In the proofing process, the user does not provide to the certificate authority the other keys, thereby realizing zero-knowledge proof.

In another aspect, the certificate authority can select N hash values out of the received M hash values. The probability of an intruder correctly discovering the combination of keys corresponding to the N hash values is max {2−nN, 2−mN}, where n is the number of bits per hash value and m is the number of bits per key. Therefore, the technical solution of the disclosure is capable of resisting quantum computational attacks.

