| CPC H04L 9/3247 (2013.01) [G16H 10/60 (2018.01); H04L 9/0825 (2013.01); H04L 9/3236 (2013.01); H04L 9/50 (2022.05)] | 8 Claims |

|
1. A blockchain-based electronic medical record sharing method, adapted for a medical institution node, comprising steps of:
obtaining an electronic medical record from a preset database;
performing a Hash operation on the electronic medical record to generate a medical record abstract;
constructing a Generalized Reed-Solomon (GRS) code based on a finite field, comprising:
constructing the finite field; and
constructing the GRS code with a code length of n, a dimensionality of k and an error correction capability of t according to the finite field, wherein n, k, and t are arbitrary positive integers;
generating a public key and a private key according to the GRS code, comprising:
selecting a nonsingular matrix of (n−k)×(n−k), a dense matrix of n×n having ranking z, and a sparse matrix of n×n in the finite field with an average row weight and an average column weight of x, z and x are natural numbers, z<n, and x<n;
performing a matrix addition operation on the dense matrix and the sparse matrix to obtain a transformation matrix;
performing a matrix multiplication operation on an inverse matrix of the nonsingular matrix, a check matrix of the GRS code of size (n−K)×n, and a transpose matrix of the transformation matrix to obtain the public key; and
defining the private key as comprising the nonsingular matrix, the check matrix, the transformation matrix, and a decoding algorithm;
using the private key to process the electronic medical record abstract to thereby obtain a first digital signature;
decoding the first digital signature with the private key to obtain an error vector as a second digital signature;
decoding the first digital signature using the decoding algorithm and the transformation matrix to obtain a first error vector;
performing a matrix multiplication operation on the first error vector and an inverse matrix of the transformation matrix to obtain a second error vector, wherein a weight of the second error vector is less than or equal to the error correction capability t of the GRS code;
constructing an index pair of the second error vector and using the index pair as a second digital signature;
sending the second digital signature to a verification node for verification; and
receiving a block confirmed by the verification node and adding the block to a blockchain structure maintained by the preset database.
|