Data storage method and system for protecting privacy of medical big data
By encrypting and decentralizing medical big data and establishing a strict access control mechanism, the problem of medical big data privacy protection is solved, and efficient, secure storage and access control of data are achieved.
Patent Information
- Application Number
- CN202411434554.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-10-15
- Publication Date
- 2025-02-07
- Estimated Expiration
- Not applicable · inactive patent
AI Technical Summary
The sensitivity of medical big data has led to privacy protection becoming an urgent problem to be solved, and it is difficult for existing technology to effectively protect the privacy and security of medical data.
Using data storage methods, including collecting and organizing medical big data, encrypting data using advanced symmetric encryption algorithms (such as AES), splitting them into multiple data blocks and scattering them, and establishing a strict access control mechanism to ensure that only authorized users can access the corresponding data.
Through encryption and decentralized storage, it is ensured that even if the data is illegally obtained during storage or transmission, it is difficult to crack; at the same time, a strict access control mechanism ensures that only authorized users can access the data, effectively protecting the privacy and security of medical big data.
Smart Images

Figure CN119397589A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of medical big data processing and information security technology, covering multiple sub-fields such as data integration of medical information systems, cryptography applications, distributed storage technology, and access control mechanisms. Background Art
[0002] With the rapid development of medical information technology, the value of medical big data has become increasingly prominent. Medical big data contains rich data resources such as patients' basic information, medical records, diagnosis results, treatment plans, medical images, etc. These data are extremely important for medical research, clinical decision-making, disease prevention and public health management. At the same time, the continuous popularization and application of various medical information systems have led to an explosive growth in the scale of medical big data. However, the sensitivity of medical big data has also brought severe challenges to privacy protection. Medical data contains patients' personal privacy information, such as name, ID number, contact information, medical history, etc. Once leaked, it may cause serious damage to the patient's personal rights and interests. In addition, medical big data may also involve important aspects such as the commercial secrets of medical institutions and national security. Therefore, how to effectively protect the privacy security of medical big data has become an urgent problem to be solved.
[0003] Based on this, the present invention proposes a data storage method for protecting the privacy of medical big data. Summary of the invention
[0004] The present invention provides a data storage method for protecting the privacy of medical big data, comprising:
[0005] Collect medical big data and organize and classify it according to rules;
[0006] Encrypt the sorted medical data to generate ciphertext data;
[0007] Divide the encrypted ciphertext data into multiple data blocks for decentralized storage;
[0008] Select appropriate storage nodes and allocate data blocks to different storage nodes;
[0009] Establish a strict access control mechanism to ensure that only authorized users can access the corresponding data.
[0010] As described above, a data storage method for protecting the privacy of medical big data collects data from different medical information systems, such as electronic medical record systems, Internet hospital systems, and impact archiving systems. The data is classified according to rules and data from different sources are integrated together.
[0011] As described above, a data storage method for protecting the privacy of medical big data uses an advanced symmetric encryption algorithm AES to encrypt the sorted medical data. The encryption and decryption speeds are fast and suitable for processing large amounts of data.
[0012] As described above, a data storage method for protecting the privacy of medical big data divides the encrypted ciphertext data into multiple data blocks, each of which has a fixed size, so as to facilitate decentralized storage. Even if a storage node is attacked, only part of the data can be obtained instead of the complete data set.
[0013] As described above, a data storage method for protecting the privacy of medical big data determines the number, size and segmentation rules of the divided data blocks according to the requirements of the storage system and the characteristics of the data. For example, the size of the data block is determined based on factors such as the number of storage nodes, storage capacity and network bandwidth.
[0014] As described above, a data storage method for protecting the privacy of medical big data selects appropriate storage nodes based on factors such as the available space, load conditions, and network distance of the storage nodes, and distributes data blocks to different storage nodes.
[0015] As described above, a data storage method for protecting the privacy of medical big data establishes a strict access control mechanism, ensures that only authorized users can access the corresponding data through role-based access control, and adopts multi-factor authentication to improve security.
[0016] The present invention also provides a data storage system for protecting the privacy of medical big data, comprising:
[0017] Data collection module: collects medical big data and organizes and classifies it according to rules;
[0018] Data encryption module: encrypts the sorted medical data to generate ciphertext data;
[0019] Data segmentation module: divides the encrypted ciphertext data into multiple data blocks for decentralized storage;
[0020] Storage node selection module: selects appropriate storage nodes and allocates data blocks to different storage nodes;
[0021] Access control module: Establish a strict access control mechanism to ensure that only authorized users can access the corresponding data.
[0022] The present invention also provides a computer storage medium, comprising: at least one memory and at least one processor;
[0023] The memory is used to store one or more program instructions;
[0024] A processor is used to run one or more program instructions to execute a data storage method for protecting the privacy of medical big data.
[0025] The beneficial effects achieved by the present invention are as follows: by adopting the technical solution of the present invention, medical data is encrypted through an encryption algorithm of advanced security standard symmetric encryption, so that even if the data is illegally obtained during storage or transmission, it is difficult to crack; the encrypted ciphertext data is stored in different storage nodes in a dispersed manner, and even if a storage node fails, the entire data will not be lost. BRIEF DESCRIPTION OF THE DRAWINGS
[0026] In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments recorded in the present invention. For ordinary technicians in this field, other drawings can also be obtained based on these drawings.
[0027] Figure 1 This is a flow chart of a data storage method for protecting the privacy of medical big data provided in Example 1 of the present application;
[0028] Figure 2 This is a schematic diagram of a data storage system for protecting the privacy of medical big data provided in Example 2 of the present application. DETAILED DESCRIPTION
[0029] The following is a clear and complete description of the technical solutions in the embodiments of the present invention in conjunction with the drawings in the embodiments of the present invention. Obviously, the described embodiments are part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative work are within the scope of protection of the present invention.
[0030] Embodiment 1
[0031] like Figure 1 As shown, the first embodiment of the present application provides a data storage method for protecting the privacy of medical big data, including:
[0032] Step S10: Collect medical big data and sort and classify according to rules;
[0033] Medical big data is collected from different medical information systems, including hospital information management system (HIS), electronic medical record system (EMR), laboratory information management system (LIS), medical image archiving and communication system (PACS), etc. The types of data collected include basic information of patients (such as name, age, gender, etc.), medical records (including symptom description, diagnosis results, treatment plan, etc.), examination and inspection data (such as blood tests, imaging examinations, etc.) and other related medical data.
[0034] Furthermore, the collected medical data are classified according to corresponding rules.
[0035] Based on sensitive data and non-sensitive data classification:
[0036] Sensitive data includes patients’ detailed disease diagnosis, genetic information, specific treatment plans, etc. These data require higher levels of protection.
[0037] Non-sensitive data includes part of the patient’s basic information (such as age range, gender, etc.), some common symptom descriptions, etc.
[0038] Define a classification function F(d) to distinguish sensitive data from non-sensitive data. Assume that data item d has n features, represented by f 1 (d),f 2 (d),…,f n (d) Define the sensitive feature set as S = {s 1 ,s 2 ,…,s m}. If there is a feature f i (d)∈S, then F(d) = sensitive data; otherwise F(d) = non-sensitive data. Introduce the sensitive data importance evaluation formula, and set the sensitive data importance index as S sensityivity , Where j is a counting variable that increases gradually from 1; m is the number of different evaluation dimensions of sensitive data; P data_detail P is the data detail parameter, ranging from 1 to 5, with a higher value indicating more detailed data; data_consequence T is the data leakage consequence parameter, ranging from 1 to 5, and the higher the value, the more serious the leakage consequence; data_lifespan is the effective life cycle of data; g(t) is a function of time used to measure the change in the importance of data during its life cycle; P data_access_frequenceThe data access frequency parameter ranges from 1 to 5. The higher the value, the more frequently the data is accessed. This formula is used to comprehensively evaluate the importance of sensitive data, taking into account factors such as the level of data detail, the consequences of leakage, and the frequency of access, to ensure that sensitive data is properly protected and stored.
[0039] Classification based on disease type: Classify data according to different disease types, such as cardiovascular disease, respiratory disease, digestive system disease, etc., which is helpful for the research and analysis of specific diseases. Define a feature vector for each disease type. For example, for cardiovascular disease, its feature vector includes specific symptoms, examination indicators, etc. For a data item d, calculate the similarity between its features and the feature vectors of each disease type and classify it into the disease type with the highest similarity. Assume that there are k disease types, and each disease type has a feature vector represented by V j =(v 1j ,v 2j ,…,v nj ), where n is the number of features, j∈{1,2,…,k}. For a data item d, its feature is represented by F(d)=(f 1 (d),f 2 (d),…,f n (d)). Calculate the similarity between data item d and the feature vector of disease type j, and the calculation formula is: in is the dot product of two vectors, and They are vectors F(d) and V j After calculating the similarity between the data item d and the feature vectors of all disease types, it is classified into the disease type with the highest similarity.
[0040] Classification based on data source: Classify according to the source of the data, such as different departments, medical equipment, etc. Classify according to the source identification field in the data item, such as department code, medical equipment number, etc.
[0041] Furthermore, duplicate data, erroneous data and incomplete data are removed, and the data format is standardized to make it more convenient and consistent in subsequent processing.
[0042] Step S20, encrypting the sorted medical data to generate ciphertext data;
[0043] The data is encrypted using the Advanced Encryption Standard (AES) algorithm, which supports 128-bit, 192-bit, and 256-bit key lengths. Considering the sensitivity of medical data, a 256-bit key length is selected to ensure security and reduce the risk of being cracked.
[0044] Use a secure random number generator to generate a 256-bit key to ensure that the generated key is sufficiently random and unpredictable. Use the generated 256-bit key K and the AES encryption mode (CBC mode) to initialize the AES encryptor. The CBC mode increases the security of encryption by XORing each plaintext block with the previous ciphertext block and then encrypting it. Because AES usually requires the length of the input data to be an integer multiple of the fixed block size in a specific working mode (such as CBC mode). If the length of the sorted medical data is not an integer multiple of the block size, padding is required. Let the medical data be D and the data length be |D|. If |D|%16≠0, padding is required so that the length of the padded data satisfies |D'|%16=0, where D' is the padded data. Use the initialized encryptor to encrypt the padded data D'. Let the encrypted ciphertext data be C, then C=AES K (D'), where AES K Indicates that the AES encryption operation is performed using the key K. The encryption strength index E is introduced. The encryption strength index can quantify the degree of protection of medical data by the encryption algorithm. In the medical field, the data is extremely sensitive and contains detailed disease diagnosis, genetic information, specific treatment plans, etc. of the patient. Through the encryption strength index, it can be clearly known whether the encryption method currently used can effectively prevent the data from being accessed or cracked by unauthorized personnel. The encryption strength index calculation formula is Among them, E represents the encryption strength index, which is used to comprehensively evaluate the security and strength of encryption; i is a counting variable, which gradually increases from 1; n represents the total number of different encryption parameters; P i are different encryption parameter weights, which are used to adjust the contribution of different factors in the encryption strength calculation; L key Indicates the key length. Here, the key length is 256 bits. A longer key length can provide higher security, making it exponentially more difficult to crack the password. data_sensitivity P is the data sensitivity parameter, ranging from 1 to 5. The higher the value, the more sensitive the data. For example, detailed disease diagnosis and genetic information belong to highly sensitive data. Once leaked, this information will have serious adverse effects on patients. data_criticality It is a parameter of data criticality, ranging from 1 to 5, reflecting the importance of data in medical decision-making and patient treatment. For example, a specific treatment plan is crucial to the patient's recovery and is considered critical data. enc It represents the time used for encryption. If the encryption time is too long, it may affect the performance and response speed of the system. By adjusting the encryption algorithm or hardware equipment, the encryption time can be shortened while ensuring the encryption strength. f(t) is a function of time in the encryption process. It is used to comprehensively consider the impact of encryption time; γ is the weight coefficient, which is used to adjust the weight of data importance parameters in encryption strength calculation; P data_importance It is a parameter of data importance, with a value range of 1 to 5. It comprehensively considers the importance of data to patients, medical institutions, and medical research. For example, the medical records of patients with certain rare diseases may be extremely important to medical research.
[0045] Step S30, dividing the encrypted ciphertext data into multiple data blocks for distributed storage;
[0046] Split the encrypted ciphertext data and first determine the fixed data block size. The selection of this size needs to take into account factors such as the characteristics of the storage system, network transmission efficiency, and the convenience of subsequent data recovery. For example, each data block can be selected to be 1024 bytes, 2048 bytes, or 4096 bytes. Let the fixed data block size be B, let the encrypted ciphertext data be C, and its total size be S. Determine the size of the ciphertext data by traversing the ciphertext data or querying the metadata of the storage system. Calculate the number of data blocks, the number of data blocks Where [·] indicates rounding up. If the size of the ciphertext data cannot be divided by the fixed data block size, the size of the last data block may be smaller than the fixed data block size, but it still needs to be stored as an independent data block.
[0047] Use sequential segmentation to split the data blocks. Starting from the beginning of the ciphertext data, take data fragments of fixed length as a data block. Let the ciphertext data be C, and the i-th data block be D i , for i=1 to N-1, the value of the data block is D i = C[(i-1)B:iB], which means starting from the position (i-1)B of the ciphertext data, take a data segment of length B as the i-th data block; if i = N, that is, the last data block, its size may be smaller than the fixed data block size, then D N =C[(N-1)B:S], which means starting from the position (N-1)B of the ciphertext data, take all the remaining data as the last data block. During the segmentation process, the system calculates the importance coefficient I of each data block. i , the formula is as follows, The system will be based on I i The allocation strategy of each data block is dynamically adjusted based on the value of S. Blocks with higher importance are stored on devices with higher reliability first. i represents the size of the i-th data block, and α is used as an adjustment factor to increase the impact of the data block size on the importance. A larger α value will make the importance of larger data blocks more prominent; F irepresents the access frequency of the i-th data block; β is the adjustment factor used to adjust the impact of the access frequency on the importance of the data block; W i Indicates the load of the storage device. The higher the load, the lower the importance of the data block. γ is introduced to adjust the impact of the device load on the importance of the data block. T i Indicates the generation time of the data block and the network volatility N i Processed together to smooth the time impact of data blocks; H i Represents the equipment health index, and introduces the logarithmic function log(H i +2) Flexibly adjust the relationship between the data block aging rate and the device health status, and increase the impact of the device health status on the importance of the data block by combining it with the generation time; i Indicates the logical position of the i-th data block in the device, combined with the sine function Used to simulate the load balancing of storage devices, M i Indicates the distribution range of storage devices, which is used to control the amplitude of periodic fluctuations. After the data blocks are segmented, a unique tag is generated for the data blocks. When storing the data blocks, the tags of the data blocks need to be stored together with the data blocks so that the data blocks can be accurately identified and located in the subsequent data recovery and access process; a storage mapping table is established to record the tag and storage location of each data block. In this way, when a specific data block needs to be accessed, its storage location can be quickly found by querying the storage mapping table.
[0048] Step S40: Select appropriate storage nodes and distribute data blocks to different storage nodes;
[0049] After completing the ciphertext data segmentation, enter the storage node selection and data block allocation. Evaluate the storage nodes, (1) count the available storage capacity of each storage node. Suppose the storage node set is N = {n 1 ,n 2 ,…,n k}, where n i represents the i-th storage node. For each storage node n i , and its available storage capacity is recorded as Determine the total storage capacity required based on the size and number of data blocks. Suppose the set of ciphertext data blocks after segmentation is D = {d 1 ,d 2 ,…,d m}, where d j represents the jth data block, and the size of each data block is recorded as The total storage capacity required is m represents the total number of ciphertext data blocks after segmentation. (2) Measure the network distance between each storage node and the data access point. The network distance can be measured by indicators such as network delay and bandwidth. Suppose storage node n i The network distance to the data access point is recorded as The smaller the network distance, the faster the data access speed. (3) Evaluate the reliability of each storage node. Reliability can be measured by factors such as the historical failure rate of the storage node, backup strategy, and data recovery capability. Suppose storage node n i The reliability of The more reliable the storage node, the lower the risk of data loss.
[0050] Select storage nodes based on storage capacity: give priority to storage nodes with available storage capacity greater than or equal to the size of a single data block. i ,if Then the data block d j Assign to the storage node. If there are multiple storage nodes that meet the conditions, further consider factors such as network distance and reliability. Selection based on network distance: For storage nodes with a smaller network distance, data blocks are assigned first to increase the speed of data access. Assume that the priority of data access is inversely proportional to the network distance, that is, the priority Sort the storage nodes by priority, and give priority to the storage nodes with high priority to allocate data blocks. Selection based on reliability: Storage nodes with high reliability are given priority to allocate data blocks to reduce the risk of data loss. Assume that the weight of data allocation is proportional to reliability, that is, weight The storage nodes are sorted according to their weights, and the storage nodes with large weights are given priority in allocating data blocks.
[0051] In order to achieve distributed data storage, we try to evenly distribute data blocks to different storage nodes to ensure that the number of data blocks stored on each storage node is roughly equal. Let the order of data block allocation be d 1 ,d 2 ,…,d m , the order of storage nodes is n 1 ,n 2 ,…,n k , distribute the data blocks to the storage nodes in order, i.e., d 1 Assign to n 1 , d 2 Assign to n 2 , and so on, when it is allocated to the last storage node n k Then, from n 1Continue to allocate. If there is a correlation between data blocks, allocate related data blocks to the same storage node or nearby storage nodes to improve the efficiency of data access. After allocating data blocks to storage nodes, you need to update the storage mapping table to record the storage location of each data block. The storage mapping table includes information such as the data block tag, the storage node identifier, and the specific storage location on the storage node. In this way, when you need to access a specific data block, you can quickly find its storage location by querying the storage mapping table.
[0052] Step S50: Establish a strict access control mechanism to ensure that only authorized users can access the corresponding data.
[0053] Require users to provide multiple authentication information when logging into the system to enhance security. For example, users first need to enter a username and password, which is the most basic authentication method. However, in order to further ensure the authenticity of the identity, the system also requires users to enter a mobile phone verification code. When a user registers, his or her mobile phone number is bound to the account. When logging in, the system will send a randomly generated verification code to the mobile phone number. The user can only continue the login process if the verification code is correctly entered within the specified time. In addition, it can also be combined with biometric authentication methods such as fingerprint recognition or facial recognition. These biometric features are unique and difficult to forge, which can effectively prevent others from impersonating others.
[0054] To establish an access control mechanism based on roles, we first define different user roles, which are divided according to the user's responsibilities and permissions in the medical system. For example, the administrator role has the highest permissions and can manage all functions and data of the system; the doctor role can view and modify the patient's medical records, but cannot perform system management operations; the nurse role is mainly responsible for the patient's daily care records and some basic medical data entry; the researcher role can access specific research data, but cannot modify the patient's clinical treatment data, etc. Suppose the role set consists of these different role names, and each role has its specific permission range.
[0055] For each role, a corresponding set of permissions is assigned. These permissions include operations such as reading, writing, modifying, and deleting specific data, as well as access to system functions. For example, the permission set of the administrator role includes full control over all data, as well as access to functions such as system settings and user management; the permission set of the doctor role includes read and modify permissions on patient medical records, but no delete permissions, etc. After a user is assigned to a specific role, he or she can only access data within the scope of permissions of the role. For example, if a user is assigned to the doctor role, then when he or she tries to access a piece of data, the system will check whether the data is within the scope of permissions of the doctor role. If so, the user accesses the data; if not, the system will deny the user's access request.
[0056] All data access behaviors are recorded in detail for subsequent audit and analysis. The access log should include information such as access time, user identity, accessed data block, etc. For example, when a user accesses a data block at a specific time, the system will record this access behavior, including the user's username, the specific time of access, the identifier of the accessed data block, etc. Suppose the access log set consists of multiple such records, each of which represents a data access behavior.
[0057] Use a database or a dedicated log file to store access logs to ensure the security and queryability of the logs. When an audit is required, these log records can be queried and analyzed to understand the system access situation and discover potential security issues.
[0058] Embodiment 2
[0059] like Figure 2 As shown, Embodiment 2 of the present application provides a data storage system for protecting the privacy of medical big data, including:
[0060] Data collection module: collects medical big data and organizes and classifies it according to rules;
[0061] Medical big data is collected from different medical information systems, including hospital information management system (HIS), electronic medical record system (EMR), laboratory information management system (LIS), medical image archiving and communication system (PACS), etc. The types of data collected include basic information of patients (such as name, age, gender, etc.), medical records (including symptom description, diagnosis results, treatment plan, etc.), examination and inspection data (such as blood tests, imaging examinations, etc.) and other related medical data.
[0062] Furthermore, the collected medical data are classified according to corresponding rules.
[0063] Based on sensitive data and non-sensitive data classification:
[0064] Sensitive data includes patients’ detailed disease diagnosis, genetic information, specific treatment plans, etc. These data require higher levels of protection.
[0065] Non-sensitive data includes part of the patient’s basic information (such as age range, gender, etc.), some common symptom descriptions, etc.
[0066] Define a classification function F(d) to distinguish sensitive data from non-sensitive data. Assume that data item d has n features, represented by f 1 (d),f 2 (d),…,f n (d) Define the sensitive feature set as S = {s1 ,s 2 ,…,s m}. If there is a feature f i (d)∈S, then F(d) = sensitive data; otherwise F(d) = non-sensitive data. Introduce the sensitive data importance evaluation formula, and set the sensitive data importance index as S sensitivity , Where j is a counting variable that increases gradually from 1; m is the number of different evaluation dimensions of sensitive data; P data_detail P is the data detail parameter, ranging from 1 to 5, with a higher value indicating more detailed data; data_consequence T is the data leakage consequence parameter, ranging from 1 to 5, and the higher the value, the more serious the leakage consequence; data_lifespan is the effective life cycle of data; g(t) is a function of time used to measure the change in the importance of data during its life cycle; P data_access_frequence The data access frequency parameter ranges from 1 to 5. The higher the value, the more frequently the data is accessed. This formula is used to comprehensively evaluate the importance of sensitive data, taking into account factors such as the level of data detail, the consequences of leakage, and the frequency of access, to ensure that sensitive data is properly protected and stored.
[0067] Classification based on disease type: Classify data according to different disease types, such as cardiovascular disease, respiratory disease, digestive system disease, etc., which is helpful for the research and analysis of specific diseases. Define a feature vector for each disease type. For example, for cardiovascular disease, its feature vector includes specific symptoms, examination indicators, etc. For a data item d, calculate the similarity between its features and the feature vectors of each disease type and classify it into the disease type with the highest similarity. Assume that there are k disease types, and each disease type has a feature vector represented by V j =(v 1j ,v 2j ,…,v nj ), where n is the number of features, j∈{1,2,…,k}. For a data item d, its feature is represented by F(d)=(f 1 (d),f 2 (d),…,f n (d)). Calculate the similarity between data item d and the feature vector of disease type j, and the calculation formula is: in is the dot product of two vectors, and They are vectors F(d) and V j After calculating the similarity between the data item d and the feature vectors of all disease types, it is classified into the disease type with the highest similarity.
[0068] Classification based on data source: Classify according to the source of the data, such as different departments, medical equipment, etc. Classify according to the source identification field in the data item, such as department code, medical equipment number, etc.
[0069] Furthermore, duplicate data, erroneous data and incomplete data are removed, and the data format is standardized to make it more convenient and consistent in subsequent processing.
[0070] Data encryption module: encrypts the sorted medical data to generate ciphertext data;
[0071] The data is encrypted using the Advanced Encryption Standard (AES) algorithm, which supports 128-bit, 192-bit, and 256-bit key lengths. Considering the sensitivity of medical data, a 256-bit key length is selected to ensure security and reduce the risk of being cracked.
[0072] Use a secure random number generator to generate a 256-bit key to ensure that the generated key is sufficiently random and unpredictable. Use the generated 256-bit key K and the AES encryption mode (CBC mode) to initialize the AES encryptor. The CBC mode increases the security of encryption by XORing each plaintext block with the previous ciphertext block and then encrypting it. Because AES usually requires the length of the input data to be an integer multiple of the fixed block size in a specific working mode (such as CBC mode). If the length of the sorted medical data is not an integer multiple of the block size, padding is required. Let the medical data be D and the data length be |D|. If |D|%16≠0, padding is required so that the length of the padded data satisfies |D'|%16=0, where D' is the padded data. Use the initialized encryptor to encrypt the padded data D'. Let the encrypted ciphertext data be C, then C=AES K (D'), where AES K Indicates that the AES encryption operation is performed using the key K. The encryption strength index E is introduced. The encryption strength index can quantify the degree of protection of medical data by the encryption algorithm. In the medical field, the data is extremely sensitive and contains detailed disease diagnosis, genetic information, specific treatment plans, etc. of the patient. Through the encryption strength index, it can be clearly known whether the encryption method currently used can effectively prevent the data from being accessed or cracked by unauthorized personnel. The encryption strength index calculation formula is Among them, E represents the encryption strength index, which is used to comprehensively evaluate the security and strength of encryption; i is a counting variable, which gradually increases from 1; n represents the total number of different encryption parameters; P i are different encryption parameter weights, which are used to adjust the contribution of different factors in the encryption strength calculation; L keyIndicates the key length. Here, the key length is 256 bits. A longer key length can provide higher security, making it exponentially more difficult to crack the password. data_sensitivity P is the data sensitivity parameter, ranging from 1 to 5. The higher the value, the more sensitive the data. For example, detailed disease diagnosis and genetic information belong to highly sensitive data. Once leaked, this information will have serious adverse effects on patients. data_criticality It is a parameter of data criticality, ranging from 1 to 5, reflecting the importance of data in medical decision-making and patient treatment. For example, a specific treatment plan is crucial to the patient's recovery and is considered critical data. enc It represents the time used for encryption. If the encryption time is too long, it may affect the performance and response speed of the system. By adjusting the encryption algorithm or hardware equipment, the encryption time can be shortened while ensuring the encryption strength. f(t) is a function of time in the encryption process. It is used to comprehensively consider the impact of encryption time; γ is the weight coefficient, which is used to adjust the weight of data importance parameters in encryption strength calculation; P data_importance It is a parameter of data importance, with a value range of 1 to 5. It comprehensively considers the importance of data to patients, medical institutions, and medical research. For example, the medical records of patients with certain rare diseases may be extremely important to medical research.
[0073] Data segmentation module: divides the encrypted ciphertext data into multiple data blocks for decentralized storage;
[0074] Split the encrypted ciphertext data and first determine the fixed data block size. The selection of this size needs to take into account factors such as the characteristics of the storage system, network transmission efficiency, and the convenience of subsequent data recovery. For example, each data block can be selected to be 1024 bytes, 2048 bytes, or 4096 bytes. Let the fixed data block size be B, let the encrypted ciphertext data be C, and its total size be S. Determine the size of the ciphertext data by traversing the ciphertext data or querying the metadata of the storage system. Calculate the number of data blocks, the number of data blocks Where [·] indicates rounding up. If the size of the ciphertext data cannot be divided by the fixed data block size, the size of the last data block may be smaller than the fixed data block size, but it still needs to be stored as an independent data block.
[0075] Use sequential segmentation to split the data blocks. Starting from the beginning of the ciphertext data, take data fragments of fixed length as a data block. Let the ciphertext data be C, and the i-th data block be D i , for i=1 to N-1, the value of the data block is D i= C[(i-1)B:iB], which means starting from the position (i-1)B of the ciphertext data, take a data fragment of length B as the i-th data block; if i = N, that is, the last data block, its size may be smaller than the fixed data block size, then D N =C[(N-1)B:S], which means starting from the position (N-1)B of the ciphertext data, take all the remaining data as the last data block. During the segmentation process, the system calculates the importance coefficient I of each data block. i , the formula is as follows, The system will be based on I i The allocation strategy of each data block is dynamically adjusted based on the value of S. Blocks with higher importance are stored on devices with higher reliability first. i represents the size of the i-th data block, and α is used as an adjustment factor to increase the impact of the data block size on the importance. A larger α value will make the importance of larger data blocks more prominent; F i represents the access frequency of the i-th data block; β is the adjustment factor used to adjust the impact of the access frequency on the importance of the data block; W i Indicates the load of the storage device. The higher the load, the lower the importance of the data block. γ is introduced to adjust the impact of the device load on the importance of the data block. T i Indicates the generation time of the data block and the network volatility N i Processed together to smooth the time impact of data blocks; H i Represents the equipment health index, and introduces the logarithmic function log(H i +2) Flexibly adjust the relationship between the data block aging rate and the device health status, and increase the impact of the device health status on the importance of the data block by combining it with the generation time; i Indicates the logical position of the i-th data block in the device, combined with the sine function Used to simulate the load balancing of storage devices, M i Indicates the distribution range of storage devices, which is used to control the amplitude of periodic fluctuations. After the data blocks are segmented, a unique tag is generated for the data blocks. When storing the data blocks, the tags of the data blocks need to be stored together with the data blocks so that the data blocks can be accurately identified and located in the subsequent data recovery and access process; a storage mapping table is established to record the tag and storage location of each data block. In this way, when a specific data block needs to be accessed, its storage location can be quickly found by querying the storage mapping table.
[0076] Storage node selection module: selects appropriate storage nodes and allocates data blocks to different storage nodes;
[0077] After completing the ciphertext data segmentation, enter the storage node selection and data block allocation. Evaluate the storage nodes, (1) count the available storage capacity of each storage node. Suppose the storage node set is N = {n 1 ,n 2 ,…,n k}, where n i represents the i-th storage node. For each storage node n i , and its available storage capacity is recorded as Determine the total storage capacity required based on the size and number of data blocks. Suppose the set of ciphertext data blocks after segmentation is D = {d 1 ,d 2 ,…,d m}, where d j represents the jth data block, and the size of each data block is recorded as The total storage capacity required is represents the total number of ciphertext data blocks after segmentation. (2) Measure the network distance between each storage node and the data access point. The network distance can be measured by indicators such as network delay and bandwidth. Suppose storage node n i The network distance to the data access point is recorded as The smaller the network distance, the faster the data access speed. (3) Evaluate the reliability of each storage node. Reliability can be measured by factors such as the historical failure rate of the storage node, backup strategy, and data recovery capability. Suppose storage node n i The reliability of The more reliable the storage node, the lower the risk of data loss.
[0078] Select storage nodes based on storage capacity: give priority to storage nodes with available storage capacity greater than or equal to the size of a single data block. i ,if Then the data block d j Assign to the storage node. If there are multiple storage nodes that meet the conditions, further consider factors such as network distance and reliability. Selection based on network distance: For storage nodes with a smaller network distance, data blocks are assigned first to increase the speed of data access. Assume that the priority of data access is inversely proportional to the network distance, that is, the priority Sort the storage nodes by priority, and give priority to the storage nodes with high priority to allocate data blocks. Selection based on reliability: Storage nodes with high reliability are given priority to allocate data blocks to reduce the risk of data loss. Assume that the weight of data allocation is proportional to reliability, that is, weight The storage nodes are sorted according to their weights, and the storage nodes with large weights are given priority in allocating data blocks.
[0079] In order to achieve distributed data storage, we try to evenly distribute data blocks to different storage nodes to ensure that the number of data blocks stored on each storage node is roughly equal. Let the order of data block allocation be d 1 ,d 2 ,…,d m , the order of storage nodes is n 1 ,n 2 ,…,n k , distribute the data blocks to the storage nodes in order, i.e., d 1 Assign to n 1 , d 2 Assign to n 2 , and so on, when it is allocated to the last storage node n k Then, from n 1 Continue to allocate. If there is a correlation between data blocks, allocate related data blocks to the same storage node or nearby storage nodes to improve the efficiency of data access. After allocating data blocks to storage nodes, you need to update the storage mapping table to record the storage location of each data block. The storage mapping table includes information such as the data block tag, the storage node identifier, and the specific storage location on the storage node. In this way, when you need to access a specific data block, you can quickly find its storage location by querying the storage mapping table.
[0080] Access control module: Establish a strict access control mechanism to ensure that only authorized users can access the corresponding data.
[0081] Require users to provide multiple authentication information when logging into the system to enhance security. For example, users first need to enter a username and password, which is the most basic authentication method. However, in order to further ensure the authenticity of the identity, the system also requires users to enter a mobile phone verification code. When a user registers, his or her mobile phone number is bound to the account. When logging in, the system will send a randomly generated verification code to the mobile phone number. The user can only continue the login process if the verification code is correctly entered within the specified time. In addition, it can also be combined with biometric authentication methods such as fingerprint recognition or facial recognition. These biometric features are unique and difficult to forge, which can effectively prevent others from impersonating others.
[0082] To establish an access control mechanism based on roles, we first define different user roles, which are divided according to the user's responsibilities and permissions in the medical system. For example, the administrator role has the highest permissions and can manage all functions and data of the system; the doctor role can view and modify the patient's medical records, but cannot perform system management operations; the nurse role is mainly responsible for the patient's daily care records and some basic medical data entry; the researcher role can access specific research data, but cannot modify the patient's clinical treatment data, etc. Suppose the role set consists of these different role names, and each role has its specific permission range.
[0083] For each role, a corresponding set of permissions is assigned. These permissions include operations such as reading, writing, modifying, and deleting specific data, as well as access to system functions. For example, the permission set of the administrator role includes full control over all data, as well as access to functions such as system settings and user management; the permission set of the doctor role includes read and modify permissions on patient medical records, but no delete permissions, etc. After a user is assigned to a specific role, he or she can only access data within the scope of permissions of the role. For example, if a user is assigned to the doctor role, then when he or she tries to access a piece of data, the system will check whether the data is within the scope of permissions of the doctor role. If so, the user accesses the data; if not, the system will deny the user's access request.
[0084] All data access behaviors are recorded in detail for subsequent audit and analysis. The access log should include information such as access time, user identity, accessed data block, etc. For example, when a user accesses a data block at a specific time, the system will record this access behavior, including the user's username, the specific time of access, the identifier of the accessed data block, etc. Suppose the access log set consists of multiple such records, each of which represents a data access behavior.
[0085] Use a database or a dedicated log file to store access logs to ensure the security and queryability of the logs. When an audit is required, these log records can be queried and analyzed to understand the system access situation and discover potential security issues.
[0086] Corresponding to the above embodiment, an embodiment of the present invention provides a computer storage medium, including: at least one memory and at least one processor;
[0087] The memory is used to store one or more program instructions;
[0088] A processor is used to run one or more program instructions to execute a data storage method for protecting the privacy of medical big data.
[0089] Corresponding to the above-mentioned embodiments, an embodiment of the present invention provides a computer-readable storage medium, which contains one or more program instructions, and the one or more program instructions are used by a processor to execute a data storage method for protecting the privacy of medical big data.
[0090] The embodiments disclosed in the present invention provide a computer-readable storage medium, in which computer program instructions are stored. When the computer program instructions are executed on a computer, the computer executes the above-mentioned data storage method for protecting the privacy of medical big data.
[0091] In the embodiment of the present invention, the processor may be an integrated circuit chip having the ability to process signals. The processor may be a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components.
[0092] The methods, steps and logic block diagrams disclosed in the embodiments of the present invention can be implemented or executed. The general processor can be a microprocessor or the processor can also be any conventional processor, etc. The steps of the method disclosed in the embodiments of the present invention can be directly embodied as a hardware decoding processor for execution, or can be executed by a combination of hardware and software modules in the decoding processor. The software module can be located in a mature storage medium in the field such as a random access memory, a flash memory, a read-only memory, a programmable read-only memory or an electrically erasable programmable memory, a register, etc. The processor reads the information in the storage medium and completes the steps of the above method in combination with its hardware.
[0093] The storage medium may be a memory, which may be, for example, a volatile memory or a nonvolatile memory, or may include both volatile and nonvolatile memory.
[0094] Among them, the non-volatile memory can be a read-only memory (ROM), a programmable ROM (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory.
[0095] The volatile memory may be a random access memory (RAM) which is used as an external cache. By way of example and not limitation, many forms of RAM are available, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate synchronous DRAM (DDRSDRAM), enhanced synchronous DRAM (ESDRAM), synchronous link DRAM (SLDRAM), and direct RAM bus DRAM (DRRAM).
[0096] The storage media described in the embodiments of the present invention are intended to include, but are not limited to, these and any other suitable types of memory.
[0097] Those skilled in the art will appreciate that in one or more of the above examples, the functions described in the present invention can be implemented using a combination of hardware and software. When software is used, the corresponding functions can be stored in a computer-readable medium or transmitted as one or more instructions or codes on a computer-readable medium. Computer-readable media include computer storage media and communication media, wherein communication media include any media that facilitates the transmission of computer programs from one place to another. Storage media can be any available media that can be accessed by general or special-purpose computers.
[0098] The specific implementation methods described above further illustrate the objectives, technical solutions and beneficial effects of the present invention in detail. It should be understood that the above description is only a specific implementation method of the present invention and is not intended to limit the scope of protection of the present invention. Any modifications, equivalent substitutions, improvements, etc. made on the basis of the technical solution of the present invention should be included in the scope of protection of the present invention.
Claims
1. A data storage method for protecting the privacy of medical big data, characterized in that: include: Collect medical big data and organize and classify it according to rules; Encrypt the sorted medical data to generate ciphertext data; Divide the encrypted ciphertext data into multiple data blocks for decentralized storage; Select appropriate storage nodes and allocate data blocks to different storage nodes; Establish a strict access control mechanism to ensure that only authorized users can access the corresponding data.
2. A data storage method for protecting the privacy of medical big data according to claim 1, characterized in that: The collected data comes from different medical information systems, such as electronic medical record systems, Internet hospital systems, and image archiving systems. The data is classified according to rules, and data from different sources are integrated together.
3. A data storage method for protecting the privacy of medical big data as claimed in claim 1, characterized in that: The sorted medical data is encrypted using the advanced symmetric encryption algorithm AES, which has fast encryption and decryption speeds and is suitable for processing large amounts of data.
4. A data storage method for protecting the privacy of medical big data according to claim 1, characterized in that: The encrypted ciphertext data is divided into multiple data blocks, each of which has a fixed size, so that it can be stored in a decentralized manner. Even if a storage node is attacked, only part of the data can be obtained instead of the complete data set.
5. A data storage method for protecting the privacy of medical big data as claimed in claim 4, characterized in that: The number, size and segmentation rules of the data blocks to be segmented are determined according to the requirements of the storage system and the characteristics of the data. For example, the size of the data block is determined based on factors such as the number of storage nodes, storage capacity and network bandwidth.
6. A data storage method for protecting the privacy of medical big data according to claim 1, characterized in that: Select appropriate storage nodes based on available space, load conditions, network distance and other factors, and distribute data blocks to different storage nodes.
7. A data storage method for protecting the privacy of medical big data according to claim 1, characterized in that: Establish a strict access control mechanism, ensure that only authorized users can access the corresponding data through role-based access control, and adopt multi-factor authentication to improve security.
8. A data storage system for protecting the privacy of medical big data, characterized in that: include: Data collection module: collects medical big data and organizes and classifies it according to rules; Data encryption module: encrypts the sorted medical data to generate ciphertext data; Data segmentation module: divides the encrypted ciphertext data into multiple data blocks for decentralized storage; Storage node selection module: selects appropriate storage nodes and allocates data blocks to different storage nodes; Access control module: Establish a strict access control mechanism to ensure that only authorized users can access the corresponding data.
9. A computer storage medium comprising: at least one memory and at least one processor; The memory is used to store one or more program instructions; A processor, used to run one or more program instructions to execute a data storage method for protecting the privacy of medical big data as described in any one of claims 1-8.
Citation Information
Patent Citations
Electronic medical record access control method based on block chain
CN110321721A
Secure storage control method and device for user data
CN116756774A