Lightweight identity authentication method of medical internet of things based on block chain
By adopting blockchain-based lightweight identity authentication methods in the medical Internet of Things environment and using NFT, smart contracts and other technologies, the problems of poor user privacy protection and limited device resources are solved, and safe and efficient user identity authentication and device dynamic authentication are achieved.
Patent Information
- Application Number
- CN202411667180.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-11-21
- Publication Date
- 2025-02-28
AI Technical Summary
In the medical IoT environment, there are problems such as poor user privacy protection, limited device resources, difficulty in achieving safe and efficient communication between users, and imbalance in security and performance overhead.
The lightweight identity authentication method based on blockchain is adopted, and through the registration stage and identity authentication stage, non-fungible tokens (NFT), smart contracts, elliptic curve cryptography (ECC) and China Residual Theorem (CRT) are used to realize dual-factor authentication of user identity and dynamic authentication of devices.
It enhances the system's resistance to identity forgery attacks, provides a more secure and reliable authentication environment, reduces computing, communication and storage costs, and meets the authentication needs of resource-constrained devices.
Smart Images

Figure CN119544292A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of identity authentication, and in particular to a lightweight identity authentication method for medical Internet of Things based on blockchain. Background Art
[0002] The Internet of Things (IoT) has received widespread attention for its impact on the socio-economics and is changing our lifestyle with greater convenience in practical applications such as smart healthcare. The Internet of Medical Things (IoMT) is a key part of the IoT that can be used to collect and analyze patients' health data, thereby improving the quality of life and reducing medical expenses. In IoMT, wearable sensors are implanted in the human body or set on the body surface according to the disease condition. They collect variable health measurement data, which can be analyzed remotely by doctors to provide timely medical services to patients. There is no doubt that IoMT is gradually becoming a core component of today's smart medical systems. Although IoMT plays an important role in smart healthcare, many security and privacy issues occur due to the resource limitations, security and self-protection capabilities of the devices. Therefore, the authentication of users and their devices in IoMT scenarios is of utmost importance. In the field of IoT, especially the medical IoT, traditional authentication methods are no longer advantageous because they fail to fully cope with the time sensitivity and complexity of many-to-many communications unique to IoT. The security requirements of IoT healthcare networks are much higher than those of traditional smart medical architectures, and more stringent security measures are required to ensure the confidentiality, integrity and availability of data. Due to its excellent decentralized characteristics and data immutability, blockchain can achieve a higher level of confidentiality and integrity protection for user identity information. In this case, smart contracts are software used to promote, verify and execute transaction negotiations on the blockchain platform, which can achieve efficient user identity information management and identity authentication. However, most of the current blockchain-based IoMT authentication schemes are single-factor authentication schemes with insufficient security. At the same time, due to the limited resources of IoMT devices, the proposed scheme needs to meet the requirements of low computing overhead, communication overhead and storage overhead. Therefore, how to solve the dynamic identity authentication of multiple devices of users is also an issue worth considering. In summary, it is particularly important to design an identity authentication scheme that can solve the above problems in the medical Internet of Things environment. Summary of the invention
[0003] The present invention provides a lightweight identity authentication method for medical Internet of Things based on blockchain to solve the problems existing in the identity authentication scheme in the current medical Internet of Things environment, such as poor user privacy protection, limited device resources, difficulty in achieving secure and efficient communication between users, and unbalanced optimization in terms of security and performance overhead.
[0004] A lightweight identity authentication method for medical IoT based on blockchain is implemented through the registration phase and the identity authentication phase, which is specifically implemented by the following steps:
[0005] Step 1: Registration stage;
[0006] Step 1. User u registers his identity information with the administrator, and the administrator casts NFT on the blockchain for the successfully registered user u u ; User u includes patient p j and doctor d i ;
[0007] Step 1 and 2: The administrator selects a random number r2 and a timestamp T1 and calculates the identifier Identifier C2 = r2*H1(T1||PID u ); where H1 is a one-way hash function, PK u is the user's public key, PID u Pseudo identity for users;
[0008] Step 13: Administrator mints NFT u and Certificate u , making NFT u =C1, Cert u =C2, NFT u Authorize user address addr u , and the certificate Cert u Sent to user u; at the same time, the administrator builds a list list on the smart contract res [addr u ]=C2·C1, for the patient role, the administrator will NFT u As its parent NFT, it is associated with other child NFTs; and a list LifeTime[NFT is constructed through a smart contract u ], used to record NFT u The effective time of
[0009] Step 2: Identity authentication stage;
[0010] After the patient's wearable device collects the patient's medical information, it publishes it on the blockchain and sends its own certificate to the doctor; the doctor verifies his identity information by calculating the patient's certificate and the NFT on the blockchain. If the authentication is successful, the doctor will give his own certificate to the patient for verification; the patient verifies his identity information by calculating the doctor's certificate and the NFT on the blockchain. If the authentication is successful, the doctor will be granted access to the medical information and the authentication is completed.
[0011] Beneficial effects of the present invention:
[0012] The authentication method described in the present invention is a dual authentication method based on blockchain in the scenario of Internet of Medical Things (IoMT). The method integrates certificate authentication and physical unclonable function (PUF) authentication technology, and aims to provide dual verification of user identity, ensuring the security of the authentication process and the non-tamperability of user identity. Through this advanced dual protection measure, the system's resistance to identity forgery attacks is greatly enhanced, providing users with a more secure and reliable authentication environment.
[0013] In the authentication method described in the present invention, an identity authentication algorithm based on elliptic curve cryptography (ECC) and Chinese remainder theorem (CRT) is designed. The lightweight identity authentication scheme based on the algorithm has low computational cost, communication cost and storage cost, and can meet the authentication requirements of resource-constrained devices. By combining the algorithm with blockchain, the present invention proposes a certificate authentication method that can be publicly verified. This method can ensure mutual authentication of user certificates while realizing public authentication of user certificates. Any public certificate can be verified by all authorized persons.
[0014] In the method described in the present invention, the integrity and uniqueness of the user's identity information are guaranteed by combining a non-fungible token (NFT) with the identity information of the user and his or her device. A composable NFT is used to represent the identity information of the patient and his or her wearable device, wherein the user's identity certificate is used as the parent NFT and is associated with the child NFT represented by the device, thereby ensuring efficient management of the user's device. By combining the device NFT with the CRT-based authentication algorithm we proposed, dynamic authentication of the user's device information is achieved. At the same time, using the user certificate as the parent NFT ensures the integrity, uniqueness, unforgeability and transparency of the certificate, and enables public verification of the user certificate.
[0015] Experimental analysis shows that the authentication method described in the present invention can resist the current common attack methods while also meeting the characteristics of confidentiality, integrity, non-repudiation, etc. At the same time, this scheme also has advantages in terms of computing overhead, communication overhead and storage overhead. BRIEF DESCRIPTION OF THE DRAWINGS
[0016] Figure 1 Flow chart of the lightweight identity authentication method for medical Internet of Things based on blockchain described in the present invention;
[0017] Figure 2 A timing diagram of the patient registration phase;
[0018] Figure 3 This is the timing diagram for the doctor registration phase;
[0019] Figure 4 This is the timing diagram of the identity authentication stage. DETAILED DESCRIPTION
[0020] Specific implementation method 1. Combination Figures 1 to 4 This embodiment describes a lightweight identity authentication method for the medical Internet of Things based on blockchain, which includes three roles: administrator, doctor, and patient. The method is divided into three stages: initialization stage, registration stage, and identity authentication stage; it is specifically implemented by the following steps:
[0021] The specific process of the initialization phase is:
[0022] Step 1: The administrator randomly selects an elliptic curve group G with base point P and order q, and then selects a random number As the private key SK a , and calculate the public key PK a =a·P, where “·” represents the point multiplication operation. Then, the administrator selects a one-way hash function H1:{0,1} * →{0,1} n , H2:G→{0,1} n , where n is the size of the hash output. Finally, the administrator sends the public parameter set {G,P,q,PK a ,H1,H2} are published on the blockchain.
[0023] Step 2: Doctor d i Get a set of public parameters and select a random number Doctor's private key SK i =d, doctor's public key PK i =d·P. Patient p j Select random number The patient's private key SK j =p, patient public key PK j =p·P. Doctor’s public key PK i and patient public key PK j It will be published on the blockchain, and the administrator will create a public key list through the smart contract PK [addr u ]=PK u , used to store the public key information of doctors and patients. So far, the initialization phase is over.
[0024] like Figure 2 As shown in the registration phase, user u registers his identity information with the administrator, and the administrator casts NFT on the blockchain for the successfully registered user u. u ; User u includes patient p j and doctor d i ;
[0025] The specific process is:
[0026] Step 3: Patient pj The wearable device is mapped into an identifier set {ID j,1 ,…,ID j,t ,addr j}, store it in the distributed database (IPFS) to obtain the content identifier CID j , the administrator can obtain the patient's identifier set from IPFS through the content identifier. j Calculate the session key K pa =SK j ·PK a , call the smart contract method to issue a registration request, and send the encrypted message E(CID j ,K pa ) sent to the administrator;
[0027] Step 4: After receiving the encrypted message E(CID j ,K pa ) and registration request, the administrator will first j Get the device identifier set {ID j,1 ,…,ID j,t ,addr j}, then select t mutually prime random numbers Use these t random numbers as modulos to calculate the linear congruential equations:
[0028]
[0029] Calculate the device aggregation identifier AID j , calculate PID j =H1(addr j ||AID j ) as the patient’s pseudo-identity. The administrator will create a list list on the smart contract PID [PID j ] = addr j , used to store the patient's address on the blockchain and add the patient's address addr j associated with their pseudo-identities;
[0030] Step 5: The administrator uses smart contracts to batch mint NFTs for patients and their devices. t} As the value of TokenURI in the child NFT, TokenURI is the unique identifier of the metadata associated with the NFT, which defines the specific content and characteristics of the NFT and ensures the uniqueness of the NFT. The administrator creates a list list through a smart contract NFT, which is used to record the parent-child relationship of NFT. Finally, the administrator calls the smart contract method to authorize the parent NFT to the patient address addr j . So far, patient p j The registration process is complete.
[0031] Step 6: Doctor registration process Figure 3 As shown in the figure, the doctor di first obtains the feature information through the feature extraction device, and the feature information is mapped by the PUF function into the doctor's feature information set {ID i,1 ,…,ID i,t ,addr i}, it will be stored in IPFS to get the doctor's content identifier CID i . Then d i Calculate the session key K da =SK i ·PK a , sends a registration request to the administrator through a smart contract, and sends the encrypted message E(CID i ,K da ) sent to the administrator;
[0032] Step 7: The administrator obtains the doctor's content identifier CID i Then decrypt it and obtain the doctor registration information set {ID i,1 ,…,ID i,t ,addr i}, then select a random number Calculate identifier α = H1(addr i ⊕ID i,1 ⊕…⊕ID i,t )*r1, get the doctor's pseudo identity PID i =α·P=H1(addr i ⊕ID i,1 ⊕…⊕ID i,t ).r1·P, let list list PID [PID i ] = addr i The administrator will verify the information Info i =r1·P is published on the blockchain.
[0033] Step 8: For the successfully registered user u (patient or doctor), the administrator selects a random number and timestamp T1, calculate the identifier C2=r2*H1(T1||PID u ). The administrator will then mint NFT u and Certificate u , making NFT u=C1, Cert u =C2, NFT u Authorize user address addr u , and the user certificate Cert u Send to user u. At the same time, the administrator will create a list list on the smart contract res [addr u ]=C2·C1. For the patient role, the administrator will u As its parent NFT, it is associated with other child NFTs. In order to ensure the timeliness of the certificate and NFT, the administrator will create a list LifeTime[NFT u ], used to record NFT u The effective time.
[0034] The specific process of the identity authentication stage is as follows:
[0035] Step 9: Patient p j Part of the device collection {ID j,1 ,…,ID j,k}(1≤k≤t) After collecting the patient's physical condition information, store it in IPFS to generate a new partial device content identifier CID j,k . p j Will obtain the doctor's d through smart contracts i Corresponding verification information Info i , and select a random number Calculate the identifier R j =r3.Info i ;
[0036] Patient p j Calculate the linear congruential equations and get {ID j,1 ,…,ID j,k}Part of the device aggregate identifier AID j,k , calculate the identifier A j =H1(AID j,k ||addr j ), through smart contracts to doctors i Initiate an authentication request and send the message collection (A j ,R j ,Cert j )Send to d i , where the patient certificate Cert j Patient p j The certificate obtained during the registration phase.
[0037] Step 10: Doctor d i Received message collection (A j ,Rj ,Cert j ) After that, first check the patient's NFT j Whether the patient address addr is authorized j , and then through the list list Cert [addr j ]=Cert j Get patient p j The certificate information is then verified by the following formula to see if the patient's certificate is correct:
[0038] Cert j NFT j ==list res [addr j ]=H1(T1||PID j )·PK j
[0039] If the certificate and NFT j All correct, d i Get the current self-feature information based on PUF And calculate the characteristic information C = H2(a'·R j ), and at the same time send a resource access request to the patient, and send the message set (C, Cert i ) sent to patient p j .
[0040] Step 11: Patient p j Received message set (C, Cert i ) first check the doctor's certificate in the same way i and NFTs i The validity of Cert i NFT i ==H1(T1||PID i )·PK i Verify whether the certificate and NFT are correct, and finally determine whether H2(C) == H2(r3.PID i )=H2(a'·r1·r3.P), if the result is correct, execute step twelve.
[0041] Step 12: Patient p j Computing and Doctor of i Session key: K j,i =r3·PK i , the encrypted message E(K j,i ,CID j,k )Send to doctor i .
[0042] Step 13: Doctor d i After receiving the encrypted message E(K j,i ,CID j,k ), decrypt the message to get patient p j Part of the device content identifier CID j,k , and in IPFS through the partial device content identifier CID j,k Obtain the patient's condition information. At this point, the authentication phase ends.
[0043] The identity authentication method described in this embodiment is analyzed in several aspects, including security, traceability, mutual authentication, dynamic authentication of devices, publicly authenticatable certificates, forward / backward security, forgery attacks, replay attacks, man-in-the-middle attacks, stolen device attacks, offline password guessing attacks, and short-term secret leakage attacks.
[0044] Security Analysis:
[0045] Anonymity: In this implementation, users use their own address addr when processing transactions on and off the chain. u or Pseudo Identity PID u The two protect the user's real identity and prevent the adversary from obtaining the user's real identity. Even if the attacker knows the Cert u and PID u Finally, they know nothing about the privacy of patients and doctors. Therefore, this method guarantees the anonymity of user identity.
[0046] Traceability: When the administrator finds a malicious user, since the transactions in the registration and authentication stages are published on the blockchain, and the real identity of the malicious user is also obtained by the administrator during the registration stage, the administrator can trace the malicious user and his malicious behavior through the transaction information on the blockchain and the real identity information of the malicious user.
[0047] Mutual authentication: During the authentication phase, the doctor i First, the patient's p j NFT corresponding to the uploaded certificate j Is the patient address addr authorized? j If the NFT j Not authorized to addr j , the authentication fails. j After ownership, d i Will calculate Cert j NFT j ==H2(T1||PID j ).PKj , to determine whether the patient's certificate is correct. If the equation is not true, the authentication will still fail. Similarly, the patient will also authenticate the doctor's identity. Therefore, this method can achieve mutual authentication of the doctor and patient's identity.
[0048] Dynamic authentication of the device: During the authentication phase, the patient p j For device collection {ID j,1 ,…,ID j,k}(1≤k≤t) Calculate AID j,k and A j =H1(AID j,k ||addr j ), and A j Sent to the doctor entity. When the doctor finds p j When the device uploads malicious data, he will j Sent to the administrator. Since he knows {ID j,1 ,…,ID j,k}, and {m1,…,m k} is public data, so the administrator can calculate the AID j,k and verify its authenticity, which enables dynamic authentication of patient devices.
[0049] Publicly authenticatable certificates: In this method, the user certificate is divided into two parts: the Cert stored locally on the user u and NFTs stored on the blockchain u . Because NFT u It is public and everyone can verify the NFT u The validity of any u Users can verify it through public information. Therefore, the user's certificate is publicly verifiable.
[0050] Forward / backward security: During the registration phase, since {m1,…,m t} and r1 are both random numbers. Their freshness ensures that even if the current certificate information is leaked, it will not pose a threat to the security of the certificate information to be generated. At the same time, the current leaked certificate information will not affect the security of the previous certificate information. Therefore, this method has forward security and backward security.
[0051] Forgery attack: The attacker must forge a verifiable Cert' and NFT'. Since the forged NFT' is not minted and authorized by the administrator, his identity authentication will not succeed even if the verification results of the Cert' and NFT' are correct.
[0052] Replay attack: During the authentication phase, an attacker may use the eavesdropped certificate u Certification, due to Cert u The timestamp T1 in the certificate ensures the freshness of the certificate, and attackers cannot use eavesdropped certificate information to perform replay attacks.
[0053] Man-in-the-middle attack: Suppose an attacker tries to pretend to be a doctor or patient and send messages to other roles. However, in our scheme, all messages will be verified after being received by the receiver, and even authentication cannot be performed when some key information is unknown. In the authentication stage, the attacker must forge a legitimate certificate Cert' and a pseudo-identity PID' to pass the authentication. However, in order for it to pass the verification of the participants, the attacker must know the value of the random number r, as well as the random number r1 used to generate the PID, which is obviously impossible. Therefore, this scheme can effectively resist man-in-the-middle attacks.
[0054] Stolen device attack: In this method, the parameters stored by the doctor role are {Cert i ,d}, since the parameter α required in the authentication phase is generated based on the doctor’s biometrics, no entity will store α. Therefore, even if the attacker passes the NFT i and Cert i The authentication of the device cannot be forged, and the value of C cannot be forged, so the authentication cannot be passed. Therefore, this method can resist the attack of stolen devices.
[0055] Offline password guessing attack: Offline password guessing attack refers to the process in which the attacker attempts to obtain the password without accessing the user's system, such as by cracking the hash value. Therefore, during the authentication phase, the attacker may successfully obtain the AID issued by the patient. j,k Or α'.R issued by a doctor j However, even if the attacker obtains this information, his address addr i No NFT was obtained i or NFT j Therefore, it is difficult for him to successfully hack into the computer with only this information.
[0056] Ephemeral secret leakage attack: Even if the attacker steals {SK u ,Cert u} information, since the attacker’s address addr i No Cert obtained u Corresponding NFT u Therefore, the attacker still cannot impersonate a trusted user for identity authentication based on this information alone.
[0057] Through the formal security analysis tool AVISPA, it can be seen that the method of this embodiment can resist the current common attacks.
[0058] Specific implementation method 2: This implementation method is an example of the lightweight identity authentication method for medical Internet of Things based on blockchain described in specific implementation method 1: The specific process of this embodiment is:
[0059] Step 1: The administrator randomly selects an elliptic curve group G = 115…951, the base point is = (484…286,361…109), the order is q = 115…369, and then selects a random number As the private key SK a =115…097, and calculate the public key PK a =a·P=(841…330,700…008). Then, the administrator selects a one-way hash function H1:{0,1} * →{0,1} n , H2:G→{0,1} n , where n is the maximum size of the hash output. Finally, the administrator will {G,P,q,PK a ,H1,H2} are set as public parameters and published on the blockchain.
[0060] Step 2: After obtaining the public parameters, the doctor d i Select random number Let the private key Sk i =d=711…215, public key PK i =d·P=(940…494,). Patient p j Select random number Let the private key SK j =p=429…730, public key PK j =p·P=(941…615,329…948). PK i and PK j Published to the blockchain, the administrator maintains the public key list through smart contracts PK [addr u ]=PK u , used to store the public key information of all roles.
[0061] Step 3: Patient p j The wearable device is mapped into an identifier set {ID j,1 ,…,ID j,t ,addr j}, store it in IPFS to get CID j =Qmc…cds, calculate the session key K pa =SKj .PK a =941…615, call the smart contract method to issue a registration request, and send the encrypted message E(CID j ,K pa ) to the administrator.
[0062] Step 4: After receiving E(CID j ,K pa ) and registration request, the administrator will first j Get the device identifier set {ID j,1 ,…,ID j,t ,addr j}, then select t mutually prime random numbers {m1,…,m t}, calculate linear congruential equations
[0063]
[0064] Calculate the device aggregation identifier AID j =236…147, calculate PID j =H1(addr j ||AID j )_=461…435 as the pseudo-identity of the patient. The administrator maintains the list list on the smart contract PID [PID j ] = addr j .
[0065] Step 5: The administrator uses smart contracts to batch mint NFTs for patients and their devices. t} as the value of the TokenURI in the child NFT, and assign a value to the TokenURI of the parent NFT during the certificate generation phase, and combine the parent NFT with the child NFT. The administrator will maintain a table list through the smart contract NFT , which is used to record the parent-child relationship of NFT. Finally, the administrator calls the smart contract method to authorize the parent NFT to the patient address addr j .
[0066] Step 6: Doctor d i First, the feature information is obtained through the feature extraction device. These feature information will be mapped by the PUF function into a registration information set {ID i,1 ,…,ID i,t ,addr i}, it will be stored in IPFS to get CID i . Then d i Calculate the session key Kda = SK i ·PKa , sends a registration request to the administrator through a smart contract, and sends the encrypted message E(CID i ,K da ) to the administrator.
[0067] Step 7: After obtaining the doctor's identifier set, the administrator decrypts it and obtains the doctor's registration information set {ID i,1 ,…,ID i,t ,addr i}, then select a random number And calculate α = H1 (addr i ⊕ID i,1 ⊕…⊕ID i,t )*r1=378…186, get the doctor’s pseudo identity PID i =α.P=H1(addr i ⊕ID i,1 ⊕…⊕ID i,t )·r1·P=782…254, let list PID [PID i ] = addr i The administrator will Info i =r1.P is published on the blockchain. The doctor registration process is as follows Figure 3 shown.
[0068] Step 8: For the successfully registered user u (patient or doctor), the administrator selects a random number and timestamp T1, calculate C2=r2*H1(T1||PID u )=421…910. The administrator will then mint NFT u and Certificate u , making NFT u =C1, Cert u =C2, NFT u Authorize addr u , and Cert u Send to user u. At the same time, the administrator will maintain the list list on the smart contract res [addr u ]=C2·C1. For the patient role, the administrator will u As its parent NFT, it is associated with other child NFTs. In order to ensure the timeliness of the certificate and NFT, the administrator will maintain the list LifeTime[NFT u ], used to record NFT u The effective time.
[0069] Step 9: Patient pj The device collection {ID j,1 ,…,ID j,k}(1≤k≤t) After collecting the patient's physical condition information, store it in IPFS to generate CID j,k . p j Will obtain d through smart contracts i Corresponding Info i , and select a random number Let R j =r3·Info i =899…519. j According to CRT, {ID j,1 ,…,ID j,k}Part of the device aggregate identifier AID j,k , calculate the identifier A j =H1(AID j,k ||addr j )=522…631, through the smart contract to d j Initiate an authentication request and send (A j ,R j ,Cert j )Send to d i .
[0070] Step 10, d i Received j ,R j ,Cert j ) first check the NFT j Whether the patient address addr is authorized j , then through the list Cert [addr j ]=Cert j Get p j Certificate information, finally calculated
[0071] Cert j NFT j ==list res [addr j ]=H1(T1||PID j )·PK j
[0072] Verify that the certificate is correct. If both the certificate and NFT are correct, d i According to PUF, the current self-characteristic information a'=H2(addr i ⊕ID i,1 ⊕…⊕ID i,t )=114…921, and calculate the characteristic information C=H2(a'·Rj )=750…061, and at the same time send a resource access request to the patient, and (C,Cert i ) sent to p j .
[0073] Step 11. j Received (C, Cert i ) first check the Cert in the same way i and NFTs i The validity of the Cert i *NFT i ==H1(T1||PID i ).PK i Verify whether the certificate and NFT are correct, and finally determine whether H2(C) == H2(r3.PID i )=H2(a'·r1·r3·P), if the result is correct, proceed to the next step.
[0074] Step 12: j Calculate the session key K j,i =r3.PK i =782…254, the encrypted message s j,i =E(K j,i ,CID j,k )Send to d i .
[0075] Step 13: After receiving the encrypted message, the doctor j,i After that, decrypt the message to get the CID j,k , and obtain the patient's condition information through IPFS. At this point, the authentication phase ends. The authentication process is as follows Figure 4 shown.
[0076] In this implementation, the Solidity language is used to write smart contracts. The proposed framework is simulated by Ganache, a widely used simulator tool, which can establish the Ethereum blockchain in a controlled local environment. The Remix IDE tool is used to test the smart contracts and deploy them in the established blockchain. Hyperledger Caliper is also used to evaluate the designed smart contracts. The results show that this method can achieve efficient device management and lightweight identity authentication while ensuring the security of user identity information.
[0077] The technical features of the above-described embodiments may be arbitrarily combined. To make the description concise, not all possible combinations of the technical features in the above-described embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.
[0078] The above-mentioned embodiments only express the implementation methods of the present invention, and the descriptions thereof are relatively specific and detailed, but they cannot be understood as limiting the scope of the invention patent. It should be pointed out that, for ordinary technicians in this field, several variations and improvements can be made without departing from the concept of the present invention, which all belong to the protection scope of the present invention. Therefore, the protection scope of the patent of the present invention shall be subject to the attached claims.
Claims
1. A lightweight identity authentication method for medical IoT based on blockchain, characterized by: This authentication method is implemented through the registration phase and the identity authentication phase, which is specifically implemented by the following steps: Step 1: Registration stage; Step 1. User u registers his identity information with the administrator, and the administrator casts NFT on the blockchain for the successfully registered user u u ; User u includes patient p j and doctor d i ; Step 1 and 2: The administrator selects a random number r2 and a timestamp T1 and calculates the identifier Identifier C2 = r2*H1(T1||PID u ); where H1 is a one-way hash function, PK u is the user's public key, PID u Pseudo identity for users; Step 13: Administrator mints NFT u and Certificate u , making NFT u =C1, Cert u =C2, NFT u Authorize user address addr u , and the certificate Cert u Sent to user u; at the same time, the administrator builds a list list on the smart contract res [addr u ]=C2·C1, for the patient role, the administrator will NFT u As its parent NFT, it is associated with other child NFTs; and a list LifeTime[NFT is constructed through a smart contract u ], used to record NFT u The effective time of Step 2: Identity authentication stage; After the patient's wearable device collects the patient's medical information, it publishes it on the blockchain and sends its own certificate to the doctor; the doctor verifies his identity information by calculating the patient's certificate and the NFT on the blockchain. If the authentication is successful, the doctor will give his own certificate to the patient for verification; the patient verifies his identity information by calculating the doctor's certificate and the NFT on the blockchain. If the authentication is successful, the doctor will be granted access to the medical information and the authentication is completed.
2. The lightweight identity authentication method for medical Internet of Things based on blockchain according to claim 1 is characterized in that: Before step 1, an initialization phase is also included, and the specific process of the initialization phase is as follows: Step A: The administrator randomly selects an elliptic curve group G, sets the base point of the elliptic curve group G to be P, and the order of the elliptic curve group G to be q; Pick a random number As the private key SK a , and calculate the public key PK a =a·P; the administrator selects one-way hash functions H1 and H2 and converts the public parameter set {G,P,q,PK a ,H1,H2} are published on the blockchain; Step B, Doctor d i Get the public parameter set and select a random number Doctor's private key SK i =d, doctor's public key PK i =d·P; Patient p j Select random number The patient's private key SK j =p, patient public key PK j =p·P; the doctor's public key PK i and patient public key PK j Published to the blockchain, the administrator builds a public key list through a smart contract PK [addr u ]=PK u , used to store the public key information of doctors and patients.
3. The lightweight identity authentication method for medical Internet of Things based on blockchain according to claim 2 is characterized in that: In step 1, the patient p j The specific process of registering an identity with an administrator is as follows: Step A1: Patient p j The wearable device is mapped to an identifier set {ID j,1 ,…,ID j,t ,addr j }, store the identifier set in IPFS to obtain the content identifier CID j ; Step A2: Patient p j Calculate the session key K pa =SK j ·PK a , and send a registration request, sending the encrypted message E(CID j ,K pa ) sent to the administrator; Step A3: The administrator receives the encrypted message E(CID j ,K pa ) and the patient's registration request, based on the content identifier CID j Obtain the wearable device identifier set from IPFS; Then select t sets of mutually prime random numbers As a modulus, compute a system of linear congruential equations: Among them, AID j The wearable device aggregated identifier is used to calculate the patient's pseudo-identity PID j =H1(addr j ||AID j ), the administrator builds a list list on the smart contract PID [PID j ] = addr j , which is used to store the patient’s address on the blockchain and associate the user’s address with the pseudo-identity; Step A4: The administrator uses smart contracts to batch mint NFTs for patients and wearable devices; the random number set {m1,…,m t }As the value of the identifier TokenURI in the child NFT, the administrator will assign a value to the TokenURI of the parent NFT during the certificate generation phase and combine the parent NFT with the child NFT; the administrator constructs a list list through a smart contract NFT , used to record the parent-child relationship of NFT and authorize the parent NFT to the patient address addr j .
4. The lightweight identity authentication method for medical Internet of Things based on blockchain according to claim 2 is characterized in that: In step 1, the doctor i The specific process of registering an identity with an administrator is as follows: Step B1, Doctor d i The feature information is obtained by the feature extraction device, and the feature information is mapped into a registration information set {ID i,1 ,…,ID i,t ,addr i }, and store it in IPFS to obtain the doctor’s content identifier CID i ; Step B2, Doctor d i Calculate the session key K da =SK i ·PK a , sends a registration request to the administrator through a smart contract, and sends the encrypted message E(CID i ,K da ) sent to the administrator; Step B3: After obtaining the doctor's identifier set, the administrator decrypts it and obtains the doctor's registration information set {ID i,1 ,…,ID i,t ,addr i }; Step B4: Select a random number and calculate the identifier Get the doctor's pseudo identity PID i =α·P, let list PID [PID i ] = addr i , the administrator will verify the information Info i =r1·P is published on the blockchain.
5. The lightweight identity authentication method for medical Internet of Things based on blockchain according to claim 1 is characterized in that: The specific process of step 2 is: Step 21: Patient p j The partial device identifier set is {ID j,1 ,…,ID j,k After collecting the patient's physical condition information, store it in IPFS to generate a partial device content identifier CID j,k , 1≤k≤t; patient p j Get access to doctors through smart contracts i Corresponding verification information Info i , and select a random number Calculate the identifier R j =r3.Info i Patient p j According to CRT, {ID i,1 ,…,ID i,i }Part of the device aggregate identifier AID j,k , calculate the identifier A j =H1(AID j,k ||addr j ), through smart contracts to doctors i Initiate an authentication request and send the message collection (A j ,R j ,Cert j )Send to doctor i ; Step 2: Doctor d i Received message set (A j ,R j ,Cert j ) and view the NFT j Is the patient address addr authorized? j , through the list list Cert [addr j ]=Cert j Get patient p j The certificate information and verify whether the certificate is correct. If the certificate and NFT j Both are correct, Doctor D i Get the current self-feature information based on PUF And calculate the characteristic information C = H2(a'·R j ), and at the same time send a resource access request to the patient, and send the message set (C, Cert i ) sent to patient p j ; Step 2 and 3, p j Received message set (C, Cert i ) and then verify the Cert i and NFTs i The validity of the Cert i NFT i ==H1(T1||PID i )·PK i Verify whether the certificate and NFT are correct, and finally determine whether H2(C) == H2(r3.PID i )=H2(a'·r1·r3.P), if the result is correct, execute step 24; Step 24: Patient p j Computing and Doctor D i The session key K j,i =r3·PK i , the encrypted message E(K j,i ,CID j,k )Send to d i ; Step 25: Doctor d i After receiving the encrypted message E(K j,i ,CID j,k ), decrypt the message to get patient p j Part of the device content identifier CID j,k , and in IPFS through the partial device content identifier CID j,k Obtain patient condition information.
6. The lightweight identity authentication method for medical Internet of Things based on blockchain according to claim 5 is characterized in that: In step 22, verify whether the patient certificate is correct, which is expressed as follows: Cert j ·NFT j ==list res [addr j ]=H1(T1||PID j )·PK j Where H1 is a one-way hash function, T1 is a timestamp, and PID j Pseudo-identity for patients, PK j The patient's public key.
