Method for implementing mutual authentication protocol based on radio frequency fingerprint and fuzzy extractor
A mutual authentication protocol based on radio frequency (RF) fingerprint and fuzzy extractor is provided. Two kinds of nodes in the protocol are denoted by authenticator and verifier respectively. In the registration phase, the verifier sends a registration request to the verifier, the verifier receives its RF fingerprint and uses the fuzzy extractor to process it. After storing the help string P related to the verifier, the key generated by R is returned to the verifier, and the verifier stores the key after receiving it. In the authentication phase, the verifier sends an encrypted message containing the challenge value to the verifier. After receiving it, the verifier recovers the key needed for decryption through the fuzzy extractor using the extracted RF fingerprint and the previously stored P value, and returns a reply message to the verifier to achieve the final two-way authentication effect.
1 . A method for RF fingerprint and fuzzy extractor based bidirectional authentication between an authenticator and a verifier, comprising
(1) in a registration phase, sending a registration request from an authenticator to a verifier, wherein the registration request comprises radio frequency (RF) fingerprint features of the authenticator,
obtaining the RF fingerprint features of the authenticator in the registration request by the verifier, processing the RF fingerprint features through a fuzzy extractor to obtain fingerprint data w, and using the fingerprint data w to generate a help string P related to the authenticator and a string R to be used for generating a key by the fuzzy extractor,
generating the key by the fuzzy extractor by using the string R in the verifier and storing the help string P corresponding to the authenticator in the verifier, sending the key generated by the string R from the verifier to the authenticator, and receiving and storing the key generated by the string R corresponding to the verifier in the authenticator; and
(2) in an authentication phase, generating a challenge value ch by a random number generation function, using the stored key generated by the string R corresponding to the verifier to encrypt a message in the authenticator, hashing the challenge value ch to obtain a hash value of the challenge value ch, and sending an authentication request comprising the encrypted message and the hash value of the challenge value ch from the authenticator to the verifier, wherein the authentication request comprises the RF fingerprint features of the authenticator,
receiving the authentication request comprising the encrypted message and the hash value of the challenge value ch, obtaining the RF fingerprint features of the authenticator in the authentication request by the verifier and processing the RF fingerprint features in the authentication request as in the registration phase to obtain fingerprint data w′, using the fingerprint data w′ and the help string P corresponding to the authenticator stored in the verifier in the registration phase as input data in the fuzzy extractor and performing a reproduction function to recover the same string R as the string R generated in the registration phase, and using the recovered string R to generate the same key through the fuzzy extractor in the verifier as in the registration phase, decrypting the encrypted message received in the authentication request by using the generated key to obtain decrypted challenge value ch, hashing the decrypted challenge value ch to obtain a hash value of the decrypted challenge value ch, and comparing the hash value of the decrypted challenge value ch with the hash value of the challenge value ch received in the authenticator request, and if the decryption is successful and the hash values are the same, authenticating the identity of the authenticator,
digitally signing with the key and returning a reply message with the digital signature from the verifier to the authenticator, verifying the reply message with the digital signature by the authenticator by using the stored key generated by the string R during the registration phase and authenticating the identity of the verifier, and completing mutual authentication.
2 . The method of claim 1 , wherein the key generated by string R is an asymmetric key pair consisting of a public key pk and a private key sk, and the method further comprises the following steps:
(1) in the registration phase, conducting a quantitative processing of the output of the RF fingerprint features in the registration request by the verifier to obtain the fingerprint data w after receiving the registration request sent by the authenticator,
using the fingerprint data w as an input for the fuzzy extractor and executing a generation function to obtain the string R and the help string P as follows:
R,P =Generate( w ),
wherein the string R is a secret value that is used to generate the asymmetric key pair of the public key pk and the private key sk, the help string P is related to the authenticator and is used together with fingerprint data processed from the RF fingerprint features of the authenticator as input for the reproduction function of the fuzzy extractor to recover the same string R,
storing in the verifier the help string P corresponding to the authenticator and returning the public key pk to the authenticator,
receiving and storing the public key pk corresponding to the verifier by the authenticator;
(2) in the authentication phase, generating the challenge value ch by the random number generation function in the authenticator, searching the public key pk corresponding to the verifier by the authenticator within authenticator's own node, encrypting the challenge value ch using the public key pk to obtain the encrypted message encrypt(ch,pk), hashing the challenge value ch to obtain the hash value hash(ch), and sending the authentication request comprising the encrypted message to the verifier with the following content:
m =encrypt( ch,pk )+authenticator+hash( ch ),
wherein the authentication request comprises the RF fingerprint features of the authenticator,
upon receiving the authentication request by the verifier, searching for the help string P corresponding to the authenticator in the verifier within the verifier's own node, obtaining and quantifying the RF fingerprint features in the authentication request as in the registration phase to obtain the fingerprint data w′,
using the fingerprint data w′ and the help string P corresponding to the authenticator as the input to the fuzzy extractor, and executing the reproduction function to recover the same string R as the string R generated in the registration phase:
R =Reproduce( w′,P ),
using the recovered R to generate the same key pair of the public key pk and the private key by the verifier, and using the private key sk generated by the recovered R to decrypt the encrypted message received in the authenticator request and obtaining the decrypted challenge value ch as follows:
ch =decrypt( m,sk ),
hashing the decrypted challenge value ch to obtain the hash value of the decrypted challenge value, comparing the hash value of the decrypted challenge value ch with the hash value of the challenge value ch received in the authenticator request, and the verifier successfully authenticating the identity of the authenticator after the decryption is successful and confirming that the hash values are the same,
using the private key sk to digitally sign and sending a reply message with the digital signature from the verifier to the authenticator,
using the public key pk to verify the reply message with the digital signature by the authenticator and authenticating the identity of the verifier, and completing the mutual authentication.
3 . The method of claim 1 , wherein the key generated by the string R is a symmetric key, and the method further comprises the following steps:
(1) in the registration phase, after receiving the registration request from the authenticator, the verifier obtaining the RF fingerprint features in the registration request and quantifying the RF fingerprint features to obtain the fingerprint data w, using the fingerprint data w as an input of the fuzzy extractor and executing a generation function to generate the string R and the help string P as follows:
R,P =Generate( w ),
wherein the string R is used to generate a symmetric key K, the help string P is related to the authenticator and used as an input, together with the fingerprint date, in the reproduction function of the fuzzy extractor to recover the string R,
generating a symmetric key K by using the string R, the verifier storing the help string P corresponding to the authenticator and returning the symmetric key K to the authenticator,
receiving and storing the symmetric key K corresponding to the verifier by the authenticator; and
(2) in the authentication phase, generating the challenge value ch by the random number generation function by the authenticator,
the authenticator looking up the symmetric key K corresponding to the verifier in the authenticator's own node, encrypting the challenge value ch with the symmetric key K to obtain an encrypted message encrypt(ch, K), hashing the challenge value ch to obtain a hash value of the challenge value ch hash(ch), and sends an authentication request to the corresponding verifier with the following content:
m =encrypt( ch,K )±authenticator+hash( ch ),
receiving the authentication request comprising the encrypted message and the hash value by the verifier, searching for the help string P related to the authenticator in the verifier's own node, and quantizing the RF fingerprint features in the authentication request as in the registration phase to obtain the fingerprint data w′,
using the fingerprint data w′ and the help string P as input to the fuzzy extractor, and executing the reproduction function to recover the same string R as the string R generated during the registration phase:
R =Reproduce( w′,P ),
the verifier using the recovered string R to generate the same symmetric key K as in the registration phase, and using the generated symmetric key K to decrypt the encrypted message in the authentication request to obtain the decrypted challenge value ch:
ch =decrypt( m,K ),
hashing the decrypted challenge value ch to obtain a hash value of the decrypted challenge value ch and comparing the hash value of the decrypted challenge value ch with the hash value of the challenge value ch in the authentication request, the verifier successfully authenticating the identity of the authenticator after decryption is successful and confirming that the hash values are the same,
the verifier using the symmetric key K to digitally sign and sending a reply message with the digital signature to the authenticator,
after receiving the reply message, the authenticator using the symmetric key K to verify the reply message with the digital signature, authenticating the identity of the verifier, and completing mutual authentication.