A non-repudiation storage method and system with multiple snapshot security
By combining a puncturable pseudo-random function and a tree structure, a repudiable storage system with multi-snapshot security is constructed, which solves the problem of insufficient security of traditional steganography under multi-snapshot attacks, and realizes the irrecoverability of data and improves space utilization.
Patent Information
- Application Number
- CN202510017392.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-01-06
- Publication Date
- 2025-12-19
- Estimated Expiration
- 2045-01-06
AI Technical Summary
Traditional steganography techniques cannot effectively guarantee the security of denial-of-storage under multiple snapshot attacks. They cannot conceal the existence of hidden data when multiple snapshots are taken, which allows attackers to infer the existence of hidden data by analyzing the differences between snapshots.
By employing a puncturable pseudo-random function (PPRF) combined with a tree structure and a TPM module, a deniable storage system with multi-snapshot security is constructed through encryption and puncturing operations. This ensures that data cannot be recovered under multiple snapshots and simulates the existence of deleted space on the disk.
Provides multi-snapshot security against multi-snapshot attacks, ensuring data is unrecoverable, improving storage space utilization, increasing capacity by up to 50 times, and featuring detachability and robust security.
Smart Images

Figure CN119808180B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the technical field of information security, and in particular to a non-repudiable storage method and system with multi-snapshot security. BACKGROUND
[0002] In the face of highly scrutinized scenarios, users not only need to ensure that certain sensitive data can be securely and completely deleted when necessary (to ensure that attackers cannot recover), but also need to be able to reasonably deny the existence of remaining hidden data under external pressure. This ability is called "non-repudiated storage". Non-repudiated storage refers to the ability of a user to deny the existence of hidden data when subjected to scrutiny, so that external inspectors cannot confirm the true state of the data. However, when an attacker can obtain the state of a storage device multiple times (i.e., perform a multi-snapshot attack), it is still possible to infer the existence of hidden data by comparing the differences between different snapshots, thereby threatening the security of non-repudiated storage.
[0003] Traditional steganography techniques mainly protect user privacy by hiding stored information, but their design goals do not cover the security needs under multi-snapshot attacks. In the context of a single observation, some steganography or non-repudiated storage schemes can provide reasonable denial, but in the case of multiple snapshot acquisitions, small and continuous file changes can still expose the existence of hidden data. This means that traditional steganography techniques have significant security deficiencies when dealing with multi-snapshot attacks, and cannot effectively guarantee the reliability of non-repudiated storage.
[0004] To solve this problem, recent research has proposed a secure deletion technology based on puncturable pseudorandom functions (PPRF). The core capability of a secure deletion system is to completely delete specific data when needed, ensuring that it cannot be recovered. Through the "puncture" operation, PPRF enables specific data keys to be quickly and tracelessly invalidated, thereby achieving secure deletion of data. However, simply integrating a secure deletion mechanism with non-repudiated storage cannot provide sufficient security in a multi-snapshot attack environment. Because even if the data can be deleted, the changes between snapshots can still expose traces of hidden data. SUMMARY
[0005] The present application aims to overcome the deficiencies of the prior art and provide a non-repudiated storage method and system with multi-snapshot security.
[0006] The purpose of the present application is achieved by the following technical solutions:
[0007] In a first aspect, the present application discloses a non-repudiated storage method with multi-snapshot security, comprising the following steps:
[0008] S1, generating system public parameters according to security parameters;
[0009] S2, inputting a password of a secure deletion system to initialize a first master key;
[0010] S3, inputting a password of a hidden storage system to initialize a second master key;
[0011] S4, storing PPRF disk states through a tree structure to generate a first key tree;
[0012] S5, encrypting and storing encryption keys of all files to generate a first file key table;
[0013] S6, constructing a storage space of a non-repudiation storage system;
[0014] S7, writing / updating, reading and deleting public files;
[0015] S8, writing, updating and deleting hidden data.
[0016] Based on the first aspect, step S1 specifically comprises: generating system public parameters according to security parameters . ; wherein represents a key derivation algorithm; and represents a symmetric cipher algorithm; represents a punchable pseudo-random function.
[0017] Based on the first aspect, step S2 specifically comprises: uniformly and randomly selecting a first master key of a secure deletion system , encrypting the first master key according to a first derived key of a user password and storing it in a TPM module .
[0018] Based on the first aspect, step S3 specifically comprises: uniformly and randomly selecting a second master key of a hidden storage system , encrypting the second master key according to a second derived key of a user password and storing it in a TPM module .
[0019] Based on the first aspect, step S4 specifically comprises: each leaf node includes an encrypted block of PPRF state, each encrypted internal node includes a pointer to a child node in the tree and a first key required to decrypt the child node in the tree, encrypting a second layer node through the first master key to obtain a left child node of the second layer node and right node wherein is the key of the left child node of the root node, is the key of the right child node of the root node; the second layer node encrypts the third layer node until the leaf node is reached, and a complete first key tree is constructed.
[0020] Based on the first aspect, step S5 specifically comprises: encrypting all file encryption keys in a fixed position on the disk to obtain a first file key table, the first file key table is divided once every 4KB, and each 4KB storage block includes 127 32-byte file keys, a single 8-byte tag value , 16 magic bytes and 8-byte padding, while maintaining a first atomic counter , used to represent the maximum value of the current storage block , which is persistently stored.
[0021] Based on the first aspect, step S6 specifically comprises: storing the hidden space table together with the actual hidden space, when the deniable storage system is started, starting multiple threads to scan the first eight bytes of all sectors and decrypting, filtering out the hidden space using the magic value and offset value range, and constructing a hidden space linked list in memory, each item of the linked list being detailed information of the underlying sector, while maintaining the size of the available hidden space in memory , the size of each underlying sector is 512 bytes, and the first eight bytes of the sector are used to identify the hidden volume and hidden sector where the sector is located; the first byte and the second byte are used to identify the hidden volume , the third byte to the sixth byte are used to identify the hidden logical sector LHS where the sector is located, the seventh byte is used to identify the offset Offset of the sector in the hidden logical sector, and the eighth byte is used to identify the magic value ; when a sector is included in the hidden space table, first mark the sector as temporarily unused, fill all the first eight bytes of the sector with magic bytes, and encrypt using the first master key ; if a hidden sector is used, fill the first eight bytes of the sector in the same way.
[0022] Based on the first aspect, step S7 specifically comprises the following sub-steps:
[0023] S71, based on the first key tree and the first file key table, generating a first encryption key for the public file, encrypting the public file using the first encryption key, and then writing the public file to the disk, the first encryption key is encrypted by the second encryption key of the first key tree and stored in the first file key table;
[0024] S72, obtain the second encryption key from the first file key table, obtain the first encryption key by decrypting the second encryption key, and obtain the plaintext by decrypting the public file through the first encryption key;
[0025] S73, intercept the deletion request, puncture the first encryption key of the public file corresponding to the deletion request to obtain the third encryption key, encrypt all file keys in the storage block using the third encryption key to obtain the second file key table; meanwhile, rotate the first master key to obtain the third master key, encrypt the second layer node using the third master key, and encrypt the third layer node by the second layer node until reaching the leaf node to construct a complete second key tree; increment the first atomic counter to obtain the second atomic counter; write the second file key table, the second key tree and the second atomic counter into the disk to obtain the storage space of the public file corresponding to the deletion request, and obtain the first storage space.
[0026] Based on the first aspect, in step S71, the first encryption key is generated for the public file, and the encrypted public file is written into the disk. If there is a conflict with the hidden sector, the allocation strategy is dynamically adjusted, that is, the hidden sector is obtained from the hidden space chain table for the public file, and written into the promotion space utilization rate; specifically including the following steps:
[0027] S711, extract the sector information to be written from the bio;
[0028] S712, compare with the hidden sector record table in the memory, if there is an intersection part and the hidden sector in the intersection part is in use, the intersection part reselects the sector;
[0029] S713, if there is still not enough sector to meet the non-intersection use condition after reselection, the specified hidden sector is taken out from the hidden space chain table for use;
[0030] S714, if the intersection part is not used, the block space is removed from the hidden space chain table ;
[0031] S715, generate the first encryption key for the public file ;
[0032] S716, encrypt the public file using the first encryption key ;
[0033] S717, calculate the storage block corresponding to the first encryption key ;
[0034] S718, compute the first encryption key the storage block where the file is located ;
[0035] S719, compute the second encryption key of the storage block ;
[0036] S7110, encrypt the first encryption key using the second encryption key at the location in the storage block .
[0037] Based on the first aspect, in step S72, the storage block and location corresponding to the inode number are calculated , the second encryption key is derived from the tag using the PPRF, specifically including the following steps:
[0038] S721, calculate the storage block and location corresponding to the inode number of the file ;
[0039] S722, compute the second encryption key of the storage block , decrypt the first encryption key using the second encryption key , and decrypt and read the public file using the first encryption key .
[0040] Based on the first aspect, step S73 specifically includes the following steps:
[0041] S731, intercept the delete request REQ_OP_DISCARD, calculate the storage block and location corresponding to the inode number of the file ;
[0042] S732, replace the location of the storage block with a random key ;
[0043] S733, puncture the first encryption key at the tag using the PPRF ;
[0044] S734, refresh the tag ;
[0045] S735, incrementing the atomic tag counter ;
[0046] S736, recalculating the storage block of the second encryption key , obtaining the third encryption key ;
[0047] S737, using the third encryption key encrypt the storage block of all file keys, obtaining the second file key table;
[0048] S738, rotating the first master key , obtaining the third master key , encrypting the second layer node by the third master key , the second layer node encrypts the third layer node until reaching the leaf node, and a complete second key tree is constructed;
[0049] S739, writing the second key tree, the second file key table and the atomic counter value to the disk;
[0050] S7310, reading and recording the physical sectors occupied by the public file corresponding to the deletion request , recording in the hidden space linked list in the memory, and marking as not used;
[0051] S7311, returning the successful deletion state, and not issuing a cleaning command to the disk.
[0052] Based on the first aspect, step S8 specifically includes the following steps:
[0053] S81, writing hidden data into the first storage space;
[0054] S82, when the hidden data changes, synchronously updating the hidden data in the first storage space;
[0055] S83, deleting the hidden data and recycling the storage space corresponding to the deleted hidden data;
[0056] S84, persistently processing the current state of the hidden data, cleaning the second master key in the memory and TPM, and simultaneously restoring to the secure deletion state without hidden data storage.
[0057] Based on the first aspect, in step S81, it is checked whether the hidden space size is sufficient to store the hidden data, and if not, more first storage space is obtained by deleting the public file, allocating hidden sectors and encrypting the second master key Write after encryption, update hidden space size ; Specifically comprising the following steps:
[0058] S811, obtaining the to-be-written size of hidden data of the write request ;
[0059] S812, comparing the to-be-written size and the hidden space size , if the to-be-written size > hidden space size , return request error, delete common file to obtain more first storage space;
[0060] S813, calculating the actual number of hidden sectors required ;
[0061] S814, taking out hidden sectors from the hidden space linked list , initializing the hidden volume, hidden logical sector LHS, offset Offset and magic value of each sector ; ;
[0062] S815, using the second master key to encrypt the taken out hidden sectors respectively;
[0063] S816, write the used hidden sectors to the disk, remove the hidden sectors from the hidden space linked list at the same time, update the value of the hidden space size , and complete the write.
[0064] Based on the first aspect, in step S82, the number of hidden sectors is adjusted to adapt to the to-be-written size of the updated hidden data, and the corresponding mapping update and encryption write-back operation is performed; Specifically comprising the following steps:
[0065] S821, receiving an update request, issuing a request to update hidden data, including target logical volume , target logical hidden sector LHS', size of new data , content data pointer of new data;
[0066] S822, find the current mapping information, query whether there is a corresponding logical volume and hidden logical sector LHS in the hidden space linked list , if not, return request error, update fails;
[0067] S823, calculating the number of hidden sectors required for updating At the same time, read the current number of hidden sectors. ;
[0068] S824. If the required number of hidden sectors is equal to the current number of hidden sectors. Update the data on the existing sector;
[0069] S825. If the required number of hidden sectors is less than the current number of hidden sectors. Release some hidden sectors that are no longer needed, remove redundant hidden sectors from the current mapping, and return the corresponding physical sectors to the hidden space linked list. Update hidden space size ;
[0070] S826. If the required number of hidden sectors is greater than the current number of hidden sectors. Perform additional hidden sector expansion and verify the number of additional expanded sectors. ;
[0071] If the number of additional sectors is expanded If the request fails, a request error will be returned, and public files will be deleted to obtain more initial storage space;
[0072] If the number of additional sectors is expanded Then from the hidden space linked list Extract the number of additional extended sectors Hidden sectors are logically concatenated to the original number of hidden sectors. Then, initialize the hidden volume for each sector. Hidden Logical Sectors (LHS), Offset, Magic Value ;
[0073] S827. Execute steps S815-S816 to complete the update of hidden data.
[0074] Based on the first aspect, in step S83, the first eight bytes of the corresponding hidden sector are filled with a magic value. Return to the hidden space linked list Update hidden space size This involves the following steps to delete hidden data:
[0075] S831. Receive a deletion request, find the mapping information of the hidden data to be deleted in the hidden space linked list. The hidden volume corresponding to the query is in the middle. And the hidden logical sector (LHS), if it does not exist, return a request error and the deletion failed;
[0076] S832. Determine the number of hidden sectors to be deleted. Obtaining how many hidden sectors are occupied by the corresponding hidden data from the mapping information;
[0077] S833, filling the first 8 bytes of the hidden sector to be deleted with magic values Re-adding to the hidden space linked list , and updating The value;
[0078] S834, storing the changes of the hidden sector to be deleted to the disk.
[0079] Based on the first aspect, step S84 specifically includes the following steps:
[0080] S841, if there is an ongoing hidden data writing, updating or deleting operation, wait for the completion of these operations to ensure that the hidden data in the hidden space linked list and the hidden data written on the disk are consistent;
[0081] S842, flush all hidden space related original data structures to the disk;
[0082] S843, clear the hidden data structure in the memory, release the memory of the hidden space linked list and the size of the hidden space, export the second master key in the TPM module, and erase the second master key in the TPM module;
[0083] S844, uninstall the secure deletion system and then reinstall it to ensure that there is no code logic of the non-repudiation storage system in the secure deletion system.
[0084] The second aspect, the present application discloses a non-repudiation storage system with multi-snapshot security, which is used for the non-repudiation storage method with multi-snapshot security, comprising:
[0085] Secure deletion system initialization module: for inputting the password of the secure deletion system to initialize the master key;
[0086] Hidden storage system initialization module: for inputting the password of the hidden storage system to initialize the master key;
[0087] PPRF key tree module: for storing the PPRF disk state through a tree structure;
[0088] File key table module: for encrypting and storing the encryption keys of all files;
[0089] Hidden space table module: for designing the deleted space and constructing the storage space of the non-repudiation storage system;
[0090] High-efficiency safe deletion module: used for writing / updating, reading and deleting public files;
[0091] Detachable hidden storage module: used for writing, updating and deleting hidden data.
[0092] The beneficial effects of the present application are:
[0093] 1) The storage system proposed by the present application is consistent with the existing safe deletion system in terms of storage layout, which can be interpreted as a space that has been deleted but has not been cleaned by the underlying disk, and has storage deniability.
[0094] 2) The key of the deleted ciphertext in the present application has been pierced and cannot be recovered, which can be interpreted as normal file changes during snapshot, and has multi-snapshot security.
[0095] 3) The hidden space and public space in the present application can be freely switched, and compared with the existing deniable storage system with multi-snapshot security, the capacity can be increased by up to 50 times.
[0096] 4) The hidden space in the present application is encrypted using the master key located in the TPM module, which provides strong protection for the security of the hidden space.
[0097] 5) The hidden storage module in the present application has detachability, and the process of detaching and reinstalling does not affect the reading and writing of public files, and has good expandability. BRIEF DESCRIPTION OF DRAWINGS
[0098] Figure 1 A deniable storage method with multi-snapshot security according to an embodiment of the present application;
[0099] Figure 2 A deniable storage system with multi-snapshot security according to an embodiment of the present application. DETAILED DESCRIPTION
[0100] The technical solutions of the present application will be described in detail below in conjunction with embodiments. Obviously, the described embodiments are only part of the embodiments of the present application, not all embodiments. Based on the embodiments in the present application, all other embodiments obtained by those skilled in the art without creative labor are within the scope of protection of the present application.
[0101] The application discloses a kind of can not be able to recognize storage method and system with multi-snapshot security;By fusing advanced secure deletion mechanism and specific storage layout design, not only can sensitive data be efficiently deleted when needed, but also can hide the existence of data under the environment of multi-snapshot attack. Specifically, the system presents the same storage evolution track as normal operation between multiple snapshots, so that external observers cannot infer the existence of hidden data through snapshot difference. When facing strong review, the system can continuously provide reasonable explanation, while ensuring that sensitive information has been completely deleted or is still in a deep hidden state. This innovative design provides a new research idea and application value for dealing with data protection challenges under multi-snapshot attack in theory and practice. The application discloses a kind of can not be able to recognize storage method with multi-snapshot security, and its step schematic diagram is as shown in Figure 1 The application discloses a kind of can not be able to recognize storage method and system with multi-snapshot security;By fusing advanced secure deletion mechanism and specific storage layout design, not only can sensitive data be efficiently deleted when needed, but also can hide the existence of data under the environment of multi-snapshot attack. Specifically, the system presents the same storage evolution track as normal operation between multiple snapshots, so that external observers cannot infer the existence of hidden data through snapshot difference. When facing strong review, the system can continuously provide reasonable explanation, while ensuring that sensitive information has been completely deleted or is still in a deep hidden state. This innovative design provides a new research idea and application value for dealing with data protection challenges under multi-snapshot attack in theory and practice. The application discloses a kind of can not be able to recognize storage method with multi-snapshot security, and its step schematic diagram is as shown in
[0102] S1, generate system public parameters according to security parameters;
[0103] S2, input the password of the secure deletion system to initialize the first master key;
[0104] S3, input the password of the hidden storage system to initialize the second master key;
[0105] S4, store the disk state of PPRF in a tree structure to generate a first key tree;
[0106] S5, encrypt and store the encryption keys of all files to generate a first file key table;
[0107] S6, build the storage space of the non-recognizable storage system;
[0108] S7, write / update, read and delete public files;
[0109] S8, write, update and delete hidden data.
[0110] Specifically, step S1 specifically includes: generating system public parameters according to security parameters ; wherein denotes a key derivation algorithm; and denotes a symmetric cipher algorithm; denotes a puncturable pseudo-random function.
[0111] Specifically, step S2 specifically comprises: uniformly and randomly selecting a first master key of the secure deletion system , encrypting the first master key according to a first derived key of the user password and storing in the TPM module .
[0112] Specifically, step S3 specifically comprises: uniformly and randomly selecting a second master key of the hidden storage system , encrypting the second master key according to a second derived key of the user password and storing in the TPM module .
[0113] Specifically, step S4 specifically comprises: each leaf node includes an encrypted block of PPRF state, each encrypted internal node includes a pointer to a child node in the tree and a first key required to decrypt the child node in the tree, encrypting the second layer node by the first master key , obtaining the left child node and the right node of the second layer node, wherein is the key of the left child node of the root node, is the key of the right child node of the root node; the second layer node encrypts the third layer node until the leaf node is reached, and a complete first key tree is constructed.
[0114] Specifically, step S5 specifically comprises: encrypting all file encryption keys in a fixed position on the disk, obtaining a first file key table, the first file key table is divided once every 4KB, and each 4KB storage block includes 127 32-byte file keys (each of the 127 files with adjacent inode numbers), a single 8-byte tag value , 16 magic bytes (used to assist PPRF key rotation) and 8-byte padding, while maintaining a first atomic counter , used to represent the maximum value of the current storage block , which is persistently stored.
[0115] Specifically, step S6 includes: storing the hidden space table and the actual hidden space together; when the repudiable storage system starts, starting multiple threads to scan and decrypt the first eight bytes of all sectors; filtering out the hidden space using magic values and offset ranges; and constructing a hidden space linked list in memory. Each item in the linked list contains detailed information about the underlying sector, while also maintaining the size of the available hidden space in memory. Each underlying sector is 512 bytes in size. The first eight bytes of the sector are used to identify the hidden volume and hidden sector to which the sector is located; the first and second bytes are used to identify the hidden volume to which the sector is located. The third to sixth bytes are used to identify the hidden logical sector (LHS) in which the sector is located; the seventh byte is used to identify the offset of the sector within the hidden logical sector; and the eighth byte is used to identify the magic value. When a sector is added to the hidden space table, it is first marked as unused, the first eight bytes of the sector are filled with magic bytes, and the first master key is used. Encrypt; if a hidden sector is used, fill the first eight bytes in the same way.
[0116] Specifically, step S7 includes the following sub-steps:
[0117] S71. Based on the first key tree and the first file key table, generate a first encryption key for the public file, encrypt the public file using the first encryption key, and then write the public file to the disk. The first encryption key is encrypted by the second encryption key of the first key tree and stored in the first file key table.
[0118] S72. Obtain the second encryption key from the first file key table, decrypt the second encryption key to obtain the first encryption key, and decrypt the public file using the first encryption key to obtain the plaintext;
[0119] S73. Intercept the deletion request, penetrate the first encryption key of the public file corresponding to the deletion request to obtain the third encryption key, and use the third encryption key to encrypt the storage block. The system obtains the second file key table by encrypting all file keys; simultaneously, it rotates the first master key to obtain the third master key, uses the third master key to encrypt the second-level nodes, and the second-level nodes encrypt the third-level nodes until the leaf nodes are reached, thus constructing a complete second key tree; it increments the first atomic counter to obtain the second atomic counter; and it writes the second file key table, the second key tree, and the second atomic counter to the disk, thereby obtaining the storage space for the public file corresponding to the deletion request and obtaining the first storage space.
[0120] Specifically, in step S71, a first encryption key is generated for the public file, the public file is encrypted and written to the disk, and if it conflicts with the hidden sector, the allocation strategy is dynamically adjusted, that is, from the hidden space linked list. The hidden sector is retrieved and used for public files, and writing to it improves space utilization; the specific steps include:
[0121] S711. Extract the sector information to be written from the current bio;
[0122] S712. Compare with the hidden sector record table in memory. If there is an intersection and the hidden sector in the intersection is in use, then reselect the sector in the intersection.
[0123] S713. If, after reselection, there are still not enough sectors to meet the condition of not being used interchangeably, then select from the hidden space linked list. Extract the specified hidden sector for use;
[0124] S714. If the intersection portion is unused, remove that block of space from the hidden space linked list. Remove from;
[0125] S715, for public documents Generate the first encryption key ;
[0126] S716, Using the first encryption key Encrypted public files ;
[0127] S717, Calculate the first encryption key The corresponding storage block ;
[0128] S718, Calculate the first encryption key The storage block Storage location in ;
[0129] S719, Computational Storage Block Second encryption key ;
[0130] S7110, using a second encryption key Encryption first encryption key In storage block The position in the middle .
[0131] Specifically, in step S72, the storage block is calculated based on the inode number. With position Using PPRF from the tag Export the second encryption key Specifically, it includes the following steps:
[0132] S721, By file inode number Calculate the corresponding storage block and location ;
[0133] S722, Computational Storage Block Second encryption key Decrypt the first encryption key using the second encryption key. Using the first encryption key For public documents Decrypt and read.
[0134] Specifically, step S73 includes the following steps:
[0135] S731. Intercept the deletion request REQ_OP_DISCARD by the file's inode number. Calculate the corresponding storage block and location ;
[0136] S732, Replace storage blocks with random keys Location ;
[0137] S733, via PPRF puncture tag The first encryption key ;
[0138] S734, Refresh Tag ;
[0139] S735, Incrementing Atomic Tag Counter ;
[0140] S736, Recalculate storage blocks Second encryption key Obtain the third encryption key ;
[0141] S737, using a third encryption key Encrypted storage blocks Obtain the second file key table by analyzing all file keys in the table.
[0142] S738, Rotate the first master key Obtain the third master key Through a third master key The second-level nodes are encrypted, and the second-level nodes encrypt the third-level nodes, until the leaf nodes are reached, thus constructing a complete second key tree;
[0143] S739, write the second key tree, the second file key table and the atomic calculator value to the disk;
[0144] S7310, read and record the physical sectors occupied by the public file corresponding to the deletion request in the hidden space linked list recorded in the memory , and mark as not used yet;
[0145] S7311, return the successful deletion state, and do not issue a cleaning command to the disk.
[0146] Specifically, step S8 specifically includes the following steps:
[0147] S81, write the hidden data into the first storage space;
[0148] S82, when the hidden data changes, synchronously update the hidden data in the first storage space;
[0149] S83, delete the hidden data, and recycle the storage space corresponding to the deleted hidden data;
[0150] S84, persistently process the current state of the hidden data, clean up the second master key in the memory and the TPM, and restore to the secure deletion state without hidden data storage.
[0151] Specifically, in step S81, check whether the hidden space size is sufficient to store the hidden data, if not, delete the public file to obtain more first storage space, allocate hidden sectors and write after encryption by the second master key , and update the hidden space size ; specifically including the following steps:
[0152] S811, obtain the to-be-written size of the hidden data of the write request ;
[0153] S812, compare the to-be-written size and the hidden space size , if the to-be-written size > the hidden space size , return a request error, delete the public file to obtain more first storage space;
[0154] S813, calculate the actual number of hidden sectors required ;
[0155] S814, take out the hidden space linked list from the hidden space linked list hidden sectors, initialize hidden volume of each sector , hidden logical sectors LHS, offset Offset and magic value ;
[0156] S815, using the second master key encrypts the extracted hidden sectors respectively;
[0157] S816, writes the used hidden sectors into the disk, removes the hidden sectors from the hidden space linked list at the same time, updates the value of hidden space size , and completes the writing.
[0158] Specifically, in step S82, the number of hidden sectors is adjusted to adapt to the size of the updated hidden data to be written, and the corresponding mapping update and encryption write-back operation is performed; specifically including the following steps:
[0159] S821, receiving an update request, issuing a request to update hidden data, including target logical volume , target logical hidden sector LHS', size of new data , content data pointer of new data;
[0160] S822, find the current mapping information, query whether there is a corresponding logical volume and hidden logical sector LHS in the hidden space linked list , if not, return request error, update fails;
[0161] S823, calculate the number of hidden sectors required for updating , and read the current number of hidden sectors ;
[0162] S824, if the number of hidden sectors required is equal to the current number of hidden sectors , update the data on the original sector;
[0163] S825, if the number of hidden sectors required is less than the current number of hidden sectors , release part of the hidden sectors that are no longer needed, remove the redundant hidden sectors from the current mapping, and return the corresponding physical sector to the hidden space linked list , update the hidden space size ;
[0164] S826, if the number of hidden sectors required is greater than the current number of hidden sectors , perform additional hidden sector expansion, and check the number of additional expansion sectors ,
[0165] If the number of additional extended sectors , return request error, delete the common file for obtaining more first storage space;
[0166] If the number of additional extended sectors , take out the number of additional extended sectors from the hidden space linked list , logically splice to the original number of hidden sectors , and then initialize the hidden volume, hidden logical sector LHS, offset, magic value of each sector ;
[0167] S827, execute steps S815-S816 to complete the update of hidden data.
[0168] Specifically, in step S83, the first eight bytes of the corresponding hidden sector are filled with a magic value , returned to the hidden space linked list , the hidden space size is updated , and the hidden data is deleted; specifically including the following steps:
[0169] S831, receive a deletion request, find the mapping information of the current hidden data to be deleted, query the corresponding hidden volume and hidden logical sector LHS in the hidden space linked list , if not exist, return request error, deletion fails;
[0170] S832, determine the number of hidden sectors to be deleted , and obtain how many hidden sectors the corresponding hidden data occupies from the mapping information;
[0171] S833, fill the first 8 bytes of these hidden sectors to be deleted with a magic value , rejoin the hidden space linked list , and update the value ;
[0172] S834, store the changes of these hidden sectors to be deleted to the disk.
[0173] Specifically, step S84 specifically includes the following steps:
[0174] S841, if there is an ongoing hidden data write, update or delete operation, wait for the completion of these operations to ensure that the hidden data in the hidden space linked list and the hidden data written on the disk are consistent;
[0175] S842, flush all hidden space related original data structure to disk;
[0176] S843, clear hidden data structure in memory, release hidden space linked list and hidden space size The memory exports the second master key in the TPM module, and erases the second master key in the TPM module. ;
[0177] S844, uninstall the secure deletion system and then reinstall, ensure that there is no code logic of the non-repudiation storage system in the secure deletion system.
[0178] The application also discloses a non-repudiation storage system with multi-snapshot security, which is used for the non-repudiation storage method with multi-snapshot security, and provides an efficient secure deletion module and a detachable hidden storage module, each of which is divided into a plurality of sub-modules, through the two modules, the reading, writing and deleting operations of the public files can be efficiently realized, and a hidden storage system with multi-snapshot security can be realized by using the space occupied by the deleted files, and a structure diagram is as shown in the figure. Figure 2
[0179] The secure deletion system initialization module is used for inputting a password of the secure deletion system to initialize a master key.
[0180] The hidden storage system initialization module is used for inputting a password of the hidden storage system to initialize a master key.
[0181] The PPRF key tree module is used for storing the PPRF disk state through a tree structure.
[0182] The file key table module is used for encrypting and storing the encryption keys of all files.
[0183] The hidden space table module is used for designing the deleted space and constructing the storage space of the non-repudiation storage system.
[0184] The efficient secure deletion module is used for writing / updating, reading and deleting the public files.
[0185] The detachable hidden storage module is used for writing, updating and deleting the hidden data. The hidden storage module can be freely unloaded and reloaded, does not affect the public reading and writing performance, and has good expansibility and security.
[0186] Specifically, the efficient secure deletion template comprises:
[0187] Public file write / update module: based on PPRF key tree structure and file key table, the file is encrypted and stored, and the file encryption key is encrypted and stored in the file key table using the PPRF key tree derived key; generate a file key for the data to be written, and store it in the disk after encryption. If it conflicts with the hidden sector, dynamically adjust the allocation strategy, and if necessary, collect the hidden space from Get the hidden sector for public writing to improve space utilization.
[0188] Public file reading module: for decrypting and reading a specified file;
[0189] Public file deletion module: based on the puncture operation of PPRF, the key of the specified file is punctured and the key table is updated, and the block storage space is collected.
[0190] Specifically, the detachable hidden storage module comprises:
[0191] Hidden data write module: for writing data into the space collected by the public file deletion module;
[0192] Hidden data update module: for synchronizing the changes of data to the hidden space;
[0193] Hidden data deletion module: for deleting hidden data and recycling part of the hidden space;
[0194] Hidden storage uninstall module: for uninstalling the hidden data write, update and delete modules from secure deletion. When uninstalling, synchronize and persist the hidden data state, clean up the memory structure and hidden key in the TPM, restore the system to the secure deletion state without hidden storage, and ensure that the extensibility and non-repudiation are not affected.
[0195] The above only describes the preferred embodiments of the present application, and it should be understood that the present application is not limited to the forms disclosed herein, and should not be considered as excluding other embodiments, but can be used in various other combinations, modifications and environments, and can be modified within the scope of the concepts described herein, by the above-mentioned teaching or related art or knowledge. The modifications and changes made by those skilled in the art without departing from the spirit and scope of the present application shall be within the scope of protection of the appended claims of the present application.
Claims
1. A method for repudiable storage with multi-snapshot security, characterized in that, Includes the following steps: S1. Generate system common parameters based on safety parameters; S2. Enter the password for the secure deletion system to initialize the first master key; S3. Enter the password for the hidden storage system to initialize the second master key; S4. Store the disk state of PPRF in a tree structure to generate the first key tree; S5. Encrypt and store the encryption keys for all files, and generate the first file key table; S6. Construct the storage space for a denial-of-rejection storage system; S7. Perform write / update, read, and delete operations on public files; S8. Write, update, and delete hidden data; Step S1 specifically includes: based on security parameters Generate system common parameters ;in Indicates the key derivation algorithm; and This represents a symmetric cryptographic algorithm; This represents a perforable pseudo-random function; Step S2 specifically includes: uniformly and randomly selecting the first master key for the secure deletion system. According to the user password First derived key Encrypt the first master key And stored in the TPM module ; Step S3 specifically includes: uniformly and randomly selecting the second master key of the hidden storage system. According to the user password Second derived key Encrypt the second master key And stored in the TPM module ; Step S4 specifically includes: each leaf node includes an encrypted block in PPRF state; each encrypted internal node includes a pointer to a child node in the tree and a first key required to decrypt the child node in the tree; and the first master key is used to... Encrypt the second-level nodes to obtain the left child nodes of the second-level nodes. and right node ,in This is the key of the left child node of the root node. The key is the right child of the root node; the second-level nodes encrypt the third-level nodes until they reach the leaf nodes, thus constructing a complete first key tree; Step S5 specifically includes: encrypting and storing the encryption keys for all files at a fixed location on the disk to obtain a first file key table, wherein the first file key table is divided into blocks of 4KB each, and each 4KB block is stored in a specific location. Includes 127 file keys of 32 bytes each, and a single 8-byte tag value. 16 magic bytes and 8 bytes of padding, while maintaining the first atomic counter. Used to represent the current storage block The maximum value, which will be persistently stored; Step S6 specifically includes: storing the hidden space table and the actual hidden space together; when the repudiable storage system starts, starting multiple threads to scan and decrypt the first eight bytes of all sectors; filtering out the hidden space using magic values and offset ranges; and constructing a hidden space linked list in memory. Each item in the linked list contains detailed information about the underlying sector, while also maintaining the size of the available hidden space in memory. Each underlying sector is 512 bytes in size. The first eight bytes of the sector are used to identify the hidden volume and hidden sector to which the sector is located; the first and second bytes are used to identify the hidden volume to which the sector is located. The third to sixth bytes are used to identify the hidden logical sector (LHS) where the sector is located; the seventh byte is used to identify the offset of the sector within the hidden logical sector; and the eighth byte is used to identify the magic value. When a sector is added to the hidden space table, it is first marked as unused, the first eight bytes of the sector are filled with magic bytes, and the first master key is used. Encrypt; if a hidden sector is used, its first eight bytes are padded in the same way; Step S7 specifically includes the following sub-steps: S71. Based on the first key tree and the first file key table, generate a first encryption key for the public file, encrypt the public file using the first encryption key, and then write the public file to the disk. The first encryption key is encrypted by the second encryption key of the first key tree and stored in the first file key table. S72. Obtain the second encryption key from the first file key table, decrypt the second encryption key to obtain the first encryption key, and decrypt the public file using the first encryption key to obtain the plaintext; S73. Intercept the deletion request, penetrate the first encryption key of the public file corresponding to the deletion request to obtain the third encryption key, and use the third encryption key to encrypt the storage block. The system retrieves all file keys to obtain a second file key table; simultaneously, it rotates the first master key to obtain a third master key, uses the third master key to encrypt the second-level nodes, and the second-level nodes encrypt the third-level nodes until a leaf node is reached, thus constructing a complete second key tree; it increments the first atomic counter to obtain a second atomic counter; and it writes the second file key table, the second key tree, and the second atomic counter to the disk, thereby obtaining the storage space for the public file corresponding to the deletion request and obtaining the first storage space. Step S8 specifically includes the following steps: S81. Write the hidden data into the first storage space; S82. When the hidden data changes, the hidden data in the first storage space is updated synchronously. S83. Delete the hidden data and reclaim the storage space corresponding to the deleted hidden data; S84. Persist the current state of the hidden data, clear the second master key in memory and TPM, and restore it to a secure deletion state with no hidden data stored.
2. The repudiable storage method with multi-snapshot security according to claim 1, characterized in that; In step S71, a first encryption key is generated for the public file, and the public file is encrypted and written to the disk. If it conflicts with a hidden sector, the allocation strategy is dynamically adjusted, i.e., from the hidden space linked list. The hidden sector is retrieved and used for public files, and writing to it improves space utilization; the specific steps include: S711. Extract the sector information to be written from the current bio; S712. Compare with the hidden sector record table in memory. If there is an intersection and the hidden sector in the intersection is in use, then reselect the sector in the intersection. S713. If, after reselection, there are still not enough sectors to meet the condition of not being used interchangeably, then select from the hidden space linked list. Extract the specified hidden sector for use; S714. If the intersection portion is unused, remove that block of space from the hidden space linked list. Remove from; S715, for public documents Generate the first encryption key ; S716, Using the first encryption key Encrypted public files ; S717, Calculate the first encryption key The corresponding storage block ; S718, Calculate the first encryption key The storage block Storage location in ; S719, Computational Storage Block Second encryption key ; S7110, using a second encryption key Encryption first encryption key In storage block The position in the middle .
3. The repudiable storage method with multi-snapshot security according to claim 2, characterized in that: In step S72, the storage block is calculated based on the inode number. With position Using PPRF from the tag Export the second encryption key Specifically, it includes the following steps: S721, By file inode number Calculate the corresponding storage block and location ; S722, Computational Storage Block Second encryption key Decrypt the first encryption key using the second encryption key. Using the first encryption key For public documents Decrypt and read.
4. A repudiable storage method with multi-snapshot security according to claim 3, characterized in that, Step S73 specifically includes the following steps: S731. Intercept the deletion request REQ_OP_DISCARD by the file's inode number. Calculate the corresponding storage block and location ; S732, Replace storage blocks with random keys Location ; S733, via PPRF puncture tag The first encryption key ; S734, Refresh Tag ; S735, Incrementing Atomic Tag Counter ; S736, Recalculate storage blocks Second encryption key Obtain the third encryption key ; S737, using a third encryption key Encrypted storage blocks Obtain the second file key table by analyzing all file keys in the table. S738, Rotate the first master key Obtain the third master key Through a third master key Use a third master key The second-level nodes are encrypted, and the second-level nodes encrypt the third-level nodes, until the leaf nodes are reached, thus constructing a complete second key tree; S739. Write the second key tree, the second file key table, and the atomic calculator values to disk; S7310. Read and record the physical sectors occupied by the public file corresponding to the deletion request. The hidden linked list recorded in memory It is marked as not in use. S7311: Returns the status of successful deletion without issuing a cleanup command to the disk.
5. A repudiable storage method with multi-snapshot security according to claim 4, characterized in that, In step S81, check the size of the hidden space. If there is not enough space to store the hidden data, delete public files to obtain more initial storage space, allocate hidden sectors, and use the second master key. Encrypt and write, update the hidden space size ; Specifically, the following steps are included: S811, Obtain the size of the hidden data to be written in the write request. ; S812, Compare the size to be written and the size of the hidden space If the size to be written >Hidden space size If the request fails, a request error will be returned, and public files will be deleted to obtain more initial storage space; S813. Calculate the actual number of hidden sectors required. ; S814, from the hidden space linked list Take out Each hidden sector initializes a hidden volume. Hidden logical sector (LHS), offset, and magic value ; S815, Use the second master key Retrieved separately One hidden sector; S816, to be used Write these hidden sectors to the disk, and simultaneously remove these hidden sectors from the hidden space linked list. Remove from the middle and update the hidden space size. The value is then written.
6. A repudiable storage method with multi-snapshot security according to claim 5, characterized in that: In step S82, the number of hidden sectors is adjusted to accommodate the size of the hidden data to be written, and the corresponding mapping update and encrypted write-back operations are performed; specifically, the following steps are included: S821. Receive update request and issue a request to update hidden data, including the target logical volume. Target logical hidden sector (LHS) , Size of new data The content pointer of the new data; S822. Locate the current mapping information in the hidden space linked list. Check if there is a corresponding logical volume. If the corresponding Hidden Logical Sector (LHS) does not exist, a request error is returned and the update fails. S823, Calculate the number of hidden sectors required for the update. At the same time, read the current number of hidden sectors. ; S824. If the required number of hidden sectors is equal to the current number of hidden sectors. Update the data on the existing sector; S825. If the required number of hidden sectors is less than the current number of hidden sectors. Release some hidden sectors that are no longer needed, remove redundant hidden sectors from the current mapping, and return the corresponding physical sectors to the hidden space linked list. Update hidden space size ; S826. If the required number of hidden sectors is greater than the current number of hidden sectors. Perform additional hidden sector expansion and verify the number of additional expanded sectors. , If the number of additional sectors is expanded If the request fails, a request error will be returned, and public files will be deleted to obtain more initial storage space; If the number of additional sectors is expanded Then from the hidden space linked list Extract the number of additional extended sectors Hidden sectors are logically concatenated to the original number of hidden sectors. Then, initialize the hidden volume for each sector. Hidden Logical Sectors (LHS), Offset, Magic Value ; S827. Execute steps S815-S816 to complete the update of hidden data.
7. A repudiable storage method with multi-snapshot security according to claim 6, characterized in that: In step S83, the first eight bytes of the corresponding hidden sector are filled with a magic value. Return to the hidden space linked list Update hidden space size This involves the following steps to delete hidden data: S831. Receive a deletion request, find the mapping information of the hidden data to be deleted in the hidden space linked list. The corresponding hidden volume can be found in the query. And the hidden logical sector (LHS), if it does not exist, return a request error and the deletion failed; S832. Determine the number of hidden sectors to be deleted. From the mapping information, we can obtain how many hidden sectors the corresponding hidden data occupies; S833. Use magic values to store the first 8 bytes of the hidden sector to be deleted. Fill and re-add to the hidden space linked list. In, and update value; S834. Store the changes to the hidden sectors to be deleted to the disk.
8. A repudiable storage method with multi-snapshot security according to claim 7, characterized in that, Step S84 specifically includes the following steps: S841. If there are ongoing hidden data write, update, or delete operations, wait for these operations to complete to ensure the hidden space linked list. The hidden data in the file is consistent with the hidden data written to the disk; S842, refresh all original data structures related to the hidden space to the disk; S843. Clear hidden data structures in memory and release the hidden space linked list. and the size of the hidden space The memory will contain the second master key from the TPM module. Export and erase the second master key from the TPM module. ; S844. Uninstall the Secure Removal System and then reinstall it, ensuring that there is no code logic for the repudiable storage system in the Secure Removal System.
9. A repudiable storage system with multi-snapshot security, used in the repudiable storage method with multi-snapshot security as described in any one of claims 1-8, characterized in that, include: Secure Deletion System Initialization Module: Used to input the password for the secure deletion system and initialize the master key; Hidden storage system initialization module: used to input the password for the hidden storage system and initialize the master key; PPRF key tree module: used to store PPRF disk state in a tree structure; File Key Table Module: Used to encrypt and store the encryption keys for all files; Hidden Space Table Module: Used to design deleted spaces and build storage space for a denial-of-recognition storage system; Highly efficient and secure deletion module: used for writing / updating, reading, and deleting public files; Removable hidden storage module: used for writing, updating, and deleting hidden data.
Citation Information
Patent Citations
Method and system for safely deleting key-derived encrypted mobile terminal data
CN108573176A
Security indexing system based on SGX
CN110069946A