| Literature DB >> 33151960 |
Reem ALmarwani1,2, Ning Zhang2, James Garside2.
Abstract
Data Integrity Auditing (DIA) is a security service for checking the integrity of data stored in a PCS (Public Cloud Storage), a third-party based storage service. A DIA service is provided by using integrity tags (hereafter referred to tags). This paper proposes a novel tagging method, called Tagging of Outsourced Data (TOD), for generating and verifying tags of files. TOD has a number of unique properties: (i) it supports both public and private verifiability, and achieves this property with a low level of overhead at the user end, making it particularly attractive to mobile users with resource-constrained devices, (ii) it protects data confidentiality, supports dynamic tags and is resilient against tag forgery and tag tampering (i.e. by authorised insiders) at the same time in more secure and efficient, making the method more suited to the PCS environment, (iii) it supports tags deduplication, making it more efficient, particularly for the user who has many files with data redundancy. Comprehensive security analysis and performance evaluation have been conducted to demonstrate the efficacy and efficiency of the approach taken in the design.Entities:
Year: 2020 PMID: 33151960 PMCID: PMC7643952 DOI: 10.1371/journal.pone.0241236
Source DB: PubMed Journal: PLoS One ISSN: 1932-6203 Impact factor: 3.240
Fig 1The DIA system model.
Advantages and disadvantages of existing methods.
| Tagging Methods | Advantages | Disadvantages |
|---|---|---|
| Ateniese_1 [ | Less computational cost in a tag verification | High storage cost Support bounded verifiability (venerable to replay attacks) Support private verification only Venerable to repudiation of tag generation attack |
| Chen [ | Less storage and communication costs | Support bounded verifiability (venerable to replay attacks) Support private verification only Venerable to a repudiation of tag generation attack |
| Krishra [ | Less computational cost in tag generation and verification attacks | Support bounded verifiability (venerable to replay attacks) Support private verification only Venerable to repudiation of tag generation attacks |
| Luo_1 [ | Support batch verification Support unbounded verification | Venerable to replace attacks Support private verification only Venerable to repudiation of tag generation attacks |
| Sookhak [ | Support batch verification Support unbounded verification Resist to replace attacks | Support private verification only Venerable to repudiation of tag generation |
| Ateniese_2 [ | Support public verification Support non-repudiation of tag generation Support data confidentiality against provider | High computational cost in tag generation and in private tag verification High storage and communication cost Not support dynamic data High storage and communication |
| Ni [ | Support public verification Support non-repudiation of tag generation | High storage and communication costs Support static data |
| Erway [ | Support data confidentiality against provider Support public verification Support non-repudiation of tag generation | High storage and communication costs Support static data |
| Hanser [ | Less storage and communication costs Support public verification Support non-repudiation of tag generation | High computational cost in a private tag verification |
| Li [ | Less storage and communication costs Support public verification Support non-repudiation of tag generation | Support static data High computational cost in a private tag verification |
| Liu [ | Support public verification Support Non-repudiation of tag generation | High computational cost in a private tag verification |
| Wang [ | Support public verification Support non-repudiation of tag generation | Support static data High computational cost in a private tag verification |
| Yang [ | Support public verification Support non-repudiation of tag generation | Support static data High computational cost in a private tag verification |
| Luo_2 [ | Support public verification Support non-repudiation of tag generation | High computational cost in a private tag verification Support static data |
| Salim [ | Support public verification Support non-repudiation of tag generation | High computational cost in a private tag verification Support static data |
Notations used in the design of TOD.
| Symbol | Meaning |
|---|---|
| Data file. | |
| { | Set of the data blocks. |
| Total number of data blocks in a data file. | |
| Total number of sectors in a data block. | |
| Number of data blocks used in one tag generation (In the OTfSB approach, T is equal 1). | |
| Number of required tags are generated for one data file (In the OTfSB approach, | |
| Number of data blocks used in each verification. | |
| Total number of data blocks in a file after eliminating redundant data blocks, where 1 ≼ | |
| {0, 1}* | Set of bit strings. |
| {0, 1} | Set of bit strings of length n. |
| Bit-length of | |
| Set of positive integers modulo a large prime p. | |
| Randomly and uniformly chosen element | |
| User’s LiSHE secret key | |
| User’s Paillier public key | |
| User’s BLS private key | |
| User’s BLS public key | |
| ID of the owner of the file. | |
| Random number generated using a secure pseudorandom number generator. |
Computational complexities of the Paillier, RSA and LiSHA schemes.
| Paillier | RSA | LiSHA | |
|---|---|---|---|
| Encryption Complexity | 2 | ||
| Decryption Complexity |
Exp: Modular exponentiation in x
Fig 2Four types of tags, their relationship and inputs and schemes used to generate them.
Fig 3The functional components of the TOD method.
Math equations for the generations of different tags.
| Tags | Equations |
|---|---|
| Identifier Tag | |
| Data Tag | |
| Data Block Tag | |
| DBTag Tag |
En_DB is an encrypted data block, En_IDTag is an encrypted form of IDTag, H() is a BLS hash function, υ is chosen uniformly at random from G1, AS() is the function defined in Eq (6), DBTagMapValue is the output from the MappingFunction algorithm, and x is the file owner’s BLS private key.
Math equations for tag verifications (private and public).
| Equations | |
|---|---|
| An aggregated | |
| A tag of | |
|
An aggregated | |
|
An aggregated | |
| A fresh value of | |
| A fresh value of | |
|
An aggregated | |
| A fresh value of | |
|
An aggregated | |
Notations used in the security analysis.
| Notation | Description |
|---|---|
| Bit-length of X | |
| Computational cost on brute force attack on X | |
| Probability of finding a collision in Z | |
| Degree of | |
| Primitive elements in | |
| Total number of Cycles per Second per Core | |
| Total number of Cores per Processor | |
| Total number of Processors per Device | |
| Total number of Seconds per Year | |
| Total Number of all possible combinations of Y, i.e. the space size of | |
| Estimated Cycle Number per combination check | |
| Device-Year |
Fig 4Costs of brute-force attack on IDTag versus the value of m.
Fig 5BFA cost: Scenarios-1 vs Scenarios-2 (GF(2128), bits and L = 160 bits).
Fig 6BFA cost: Scenarios-2 vs Scenarios-3 (L = 160 bits).
Fig 7BFA vs the length of tag (m) and the total number of IDTags for a data file (d).
Fig 8P vs. the bit-lengths of DBTag, En_IDTag and DBTagTag.
Fig 9Cost of BFA vs. the bit-lengths of the element in G1 and p.
Fig 10Level of efforts on brute-force attack on a LiSHE key vs. the key length and the key space.
Fig 11Given C = 50 blocks: Selection space (number of possible combinations) vs. file size (number of data blocks).
Basic operations: Symbols and meanings.
| Notation | Descriptions |
|---|---|
| Multiplication in | |
| Exponentiation in | |
| Bilinear pairing e(x, y), x ∈ | |
| Cryptographic hashing, i.e. | |
| Hashing to | |
| Addition in Zp | |
| Multiplication in Zp | |
| Exponentiation in Zp | |
| Multiplication in | |
| Exponentiation in | |
| Addition in | |
| Cost of tag generation in AS |
Fig 12TOD method vs the OTfMB and OTfSB approaches: The number of tags generated against data redundancy percentage, K = 1000, total number of blocks in a data file, 4 Data Blocks are used in generating one tag in OTfMB approach.
Tag generation and verification costs.
| PCS User | TPA | |
|---|---|---|
| TagGenerationCost | - | |
| TagGenerationCost | - | |
| STagPriVerCost | - | |
| BTagPriVerCost | - | |
| STagPubVerCost | - | |
| BTagPubVerCost | - |
* Use non-encrypted data blocks,
** Use encrypted data blocks
Comparing TOD method with existing tagging methods against the specified requirements.
| Tagging Methods | F1 | F2 | S1 | S2 | S3 | S4 | S5 | E1 | E2 | Cryptographic Schemes | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| A PCS User | A PCS User + TPA | ||||||||||
| Ateniese_1 method [ | Private | No | Yes | Yes | No | No | No | O(T×NT) | O(1)/O(NT) | - | HF+SC |
| Chen method [ | Private | No | Yes | Yes | No | No | No | O(T×NT) | O(1) | - | AS+SC |
| Krishra method [ | Private | No | Yes | No | No | No | No | O(K) | O(1) | - | SC |
| Luo_1 method [ | Private | No | Yes | No | No | No | Yes | O(K) | O(C) | - | AS |
| Sookhak method [ | Private | No | No | No | No | No | Yes | O(K×S) | O(1) | - | AS |
| Zhang method [ | Private | No | Yes | Yes | No | No | Yes | O(K) | O(C) | - | MAC |
| Xu method [ | Private | No | Yes | Yes | No | No | Yes | O(K×S) | O(1) | - | HomMAC |
| Ateniese_2 method [ | Public | No | Yes | Yes | Yes | Yes | Yes | O(K) | - | O(1) | RSA |
| Ni method [ | Public | No | Yes | Yes | Yes | No | Yes | O(K×S) | - | O(1) | RSA |
| Erway method [ | Public | No | Yes | Yes | Yes | Yes | Yes | O(K×S) | - | O(1) | RSA |
| Hanser method [ | Public | No | Yes | Yes | Yes | Yes | Yes | O(K) | - | O(1) | ECDSA |
| Li method [ | Public | No | Yes | Yes | Yes | No | Yes | O(K×S) | - | O(C) | BLS |
| Liu method [ | Public | Yes | Yes | Yes | Yes | No | Yes | O(K×S) | - | O(C) | BLS |
| Wang method [ | Public | No | Yes | Yes | Yes | No | Yes | O(K) | - | O(C) | BLS |
| Yang method [ | Public | Yes | Yes | Yes | Yes | No | Yes | O(K×S) | - | O(C) | BLS |
| Luo_2 method [ | Public | Yes | Yes | Yes | Yes | No | Yes | O(K×S) | - | O(C) | BLS |
| Salim method [ | Public | Yes | Yes | Yes | Yes | No | Yes | O(K) | - | O(C) | BLS |
| TOD method | Both | Yes | Yes | Yes | Yes | Yes | Yes | O(d) | O(C) | O(C) | HE + AS + BLS |
* OTfMB approach,
** OTfSB approach approach, + in the case of private variability,
*** only the collision between data blocks of one User, SC is Symmetric Cipher, HF is Hash Function, AS is Algebraic Signature, HE is Homomorphic Encryption.
Fig 13The required time of encryption vs. data redundancy percentage.
Comparing the TOD method and the related works: The required time of tag generation (in seconds).
| Methods | One Tag | 1000 Tags |
|---|---|---|
| Hash based | 0.0495 | 12.6741 |
| AS based | 0.0413 | 10.5789 |
| AS based | 0.0021 | 2.0466 |
| MAC based | 0.0096 | 9.5461 |
| RSA based | 0.4080 | 408.0272 |
| ECDSA based | 0.0355 | 35.4468 |
| BLS based | 0.0075 | 7.5000 |
| TOD | 0.0280 | 28 |
* OTfMB approach,
** OTfSB approach
Fig 14Tag generation cost vs data blocks number.
TOD method vs. BLS based tagging method: The required time (in seconds) of private and public tag verification.
| TOD | BLS-based | |
|---|---|---|
| Public Verification | 0.0514 | 0.0259 |
| Private Verification | 0.0001 | 0.0259 |
Fig 15Public tag verification cost: Individual vs batch verifications.
Fig 16Batch verification cost: Private vs public.
TOD method vs the related work: The tag size generated (in bytes).
| Works | Tag Size |
|---|---|
| Hash function-based | 48 |
| Algebraic Signature based | 32 |
| Algebraic Signature based | 32 |
| MAC-based | 48 |
| RSA-based | 384 |
| ECDSA-based | 64 |
| BLS-based | 32 |
| TOD Method | 64 |
* is OTfMB approach,
** is OTfSB approach