# Patent

## Title
Provable data integrity verifying method, apparatuses and system

## Abstract

The present invention proposes a Provable Data Integrity (PDI) verifying method, in which data are firstly fingerprinted at a client, and the fingerprints are sent to an archive along with the data; when necessary, the client sends a “challenge” to the archive so as to determine the integrity of the data, and the archive proves the integrity of the data by using the received fingerprints; and finally, the client verifies the integrity of the data based on the output from the archive in response to the “challenge”.

## Background
BACKGROUND OF THE INVENTION
1. Field of Invention
The present invention relates to the field of storage network security, and more particularly, to a Provable Data Integrity (PDI) verifying method, apparatuses and system.
2. Description of Prior Art
The Internet is fast evolving toward outsourcing data from one's local storage to global-scale persistent storage service. The Amazon Simple Storage Service (Amazon S3) (Reference 1: Amazon Simple Storage Service (Amazon S3), http://aws.amazon.com/s3) is one of such storage system for the Internet. Amazon S3 provides web services interface that can be used to store and retrieve data. The service of Amazon S3 is global-scale and business-class while its pricing is quite reasonable, US $0.15 per GB/Month of storage used, US $0.10 per GB for all data transfer in, and US $0.18 per GB for the first 10 TB/month data transfer out. In case someone is seeking for free global-scale storage service, there are as well. MediaMax (Reference 2: MediaMax Free Online Storage, http://www.mediamax.com) is providing 25 GB free online storage and the Gmail File System (Reference 3: Gmail Drive Shell Extension, http://www.viksoe.dk/code/gmail.htm) project has translated free Gmail accounts into one consistent free network storage space.
With these public storage space services, a client can discard its local storage subsystem and can retrieve data at any time and from anywhere over the Internet. This fabulous prospect has attracted lots of industry efforts and such efforts have made storage outsourcing an inevitable trend.
The IETF Network WG captured the trend and RFC 4810 “Long-Term Archive Service Requirement” was thus released (Reference 4: RFC 4810, Long-Term Archive Service Requirement, IETF Network WG. http://www.ieff.org/rfc/rfc4810.txt). RFC 4810 depicts requirements on a long-term archive service that is responsible for preserving data for long periods. Supporting non-repudiation of data existence, integrity, and origin is a primary purpose of a long-term archive service. As RFC 4810 stated, a long-term archive service must be capable of providing evidence that can be used to demonstrate the integrity of data for which it is responsible, from the time it received the data until the expiration of archival period of the data.
Outsourcing data from client storage to archive service has two fundamental steps, one is submitting data and the other is retrieving data. The naïve solution to verify data integrity involves retrieving the data from the archive. However, provision of high bandwidth from remote archive to the client verifier is impractical at present and in the near future as well. In particular, it's hard for a mobile client to enjoy high bandwidth connection. Moreover, as RFC 4810 stated, it may be a third-party verifier that checks integrity of user data. In such case, the third-party verifier should not have access to the user data; otherwise it may violate the user data privacy. In order to verity data integrity while avoid retrieving the data from the archive, prior work adopts an operation model of three steps, as illustrated in FIG. 1. Notice that for notational simplicity (and without loss of generality), hereafter we mostly take the case that the client, i.e. the data owner, is the user data integrity verifier as example. But as discussed before, the verifier in practice may be a third party other than the data owner.
At step 0, digital fingerprints of data are generated by the client and are sent to the archive along with the data. The archive needs to store the fingerprints of the data in addition to the data itself. At step 1 the client sends challenge on data integrity to the archive. And the archive utilizes the content of the data, the fingerprints of the data, and the client challenge all together to compute data integrity proof that is returned to the client for verification at step 2. Step 1 and step 2 may be repeated multiple times until the expiration of the archival period of the data.
Based on above operation model, below is a list of the key factors that should be considered by any technical solution to the provable data integrity issue.

    
    
        (I). The time it takes for the client to generate the fingerprint of data
        (II). The size of the archive storage that the fingerprint of data consumes
        (III). The size of the challenge that the verifier sends to the archive
        (IV). The time for the archive to compute the data integrity proof
        (V). The size of the data integrity proof that the archive sends to the verifier
        (VI). The time for the verifier to check the data integrity proof
    
    


There is a solution seemingly tackles the data integrity issue. Initially, the data owner divides the data into multiple fragments and for each fragment pre-computes a message authentication code (MAC). Whenever a verifier, the data owner or a third party, needs data integrity proof, it retrieves from the archive service a number of randomly selected fragments and re-computes the MAC of each fragment for comparison.
Deswarte et al. (Reference 5: Y. Deswarte, J. J. Quisquater, A. Saidane, Remote integrity checking, In Proc. of Conference on Integrity and Internal control in Information systems (IICIS'03), 2003) and Filho et al. (Reference 6: D. L. G. Filho, P. S. L. M. Baretto. Demonstrating Data Possession and Uncheatable Data Transfer. http://eprint.iacr.org/2006/150.pdf) proposed to verify that an archive correctly stores a file using RSA-based hash function.
Most recently, Ateniese et al. (Reference 7: G. Ateniese, R. Burns, R. Curtmola, J. Herring, L. Kissner, Z. Peterson, D. Song, Provable Data Possession at Untrusted Stores. http://eprint.iacr.org/2007/202.pdf) proposed a RSA-based provable data possession scheme, S-PDP scheme, where “S” stands for “sampling”. By sampling it means that the client selects a portion of the data at random and asks the archive to demonstrate evidence that the randomly selected data is in healthy status, i.e. data integrity of those selected is held. The S-PDP scheme doesn't require exponentiate the entire file and the communication complexity is constant which makes S-PDP scheme the most efficient one among all prior arts.
The naïve solution has drawback in that its communication complexity is linear with respect to the queried data size. Moreover, in the case of a third-party verifier, sending user data to the verifier is prohibitive because it violates the data owner's privacy. To avoid retrieving data from the archive service, one may improve the simple solution by choosing multiple secret keys and pre-computing multiple keyed-hash MAC for the data. Thus the verifier can each time reveal a secret key to the archive service and ask for a fresh keyed-hash MAC for comparison. However, this way the number a particular data can be verified is limited by the number of secret keys that has to be fixed a priori. When the keys are exhausted, in order to compute new MACs, retrieving the data from the archive service is inevitable.
The proposals of References 5 and 6 have drawback in that the archive has to exponentiate the entire file. As reference, given 2048-bit RSA modulus, one full exponent exponentiation takes 61.325 milliseconds on Intel Core Duo 2.16 GHz processor. Therefore it would take 251.3 seconds per Megabyte for exponentiation which means that to test integrity of 64 MB file, the archive has to spend 16083.8 seconds before the client can receive the data integrity proof.
The S-PDP scheme has one problem in that its design goal, i.e. sampling, may sometimes be meaningless to the data owner. By sampling, the S-PDP scheme tries to tolerate file block failure at seemingly high detection probability. For example, Reference 7 discusses how to reach detection probability of 99% in the case of 1% file blocks failure. However, there are many types of files that cannot withstand even one bit error. For example, loss of the head of a media file, where codec configuration parameters resides, will cause difficulty in rendering. For another example, damage on the (public key encrypted) symmetric encryption key that is embedded in an encrypted file results in garbage ciphertext that no one can recover the plaintext anymore. In general, what the data owner demands is 100% data safety. There is no compromise for whatever reasons. The S-PDP scheme has another problem in that it is extremely inefficient for being adopted by a third-party verification (or so-called public verifiability) system. In order to be publicly verifiable, the S-PDP scheme mandates that each file block must be smaller than the RSA public key e. Take 2048 bits RSA modulus as an example. The public key e can be at most 1024 bits. Hence, a solution according to the publicly verifiable S-PDP scheme has to logically divide a file into multiple 1024 bits file blocks. The consequence is a huge amount of file blocks, for each of which there must be a tag being generated. In other words, the size of the tags is two times larger than the file itself and the time it costs the client to tag a file is too much to be practically doable.
SUMMARY OF THE INVENTION
In view of above disadvantages in the prior arts, the present invention proposes the Provable Data Integrity (PDI) verifying method, in which data are firstly fingerprinted at a client, and the fingerprints are sent to an archive along with the data; when necessary, the client or the third-party verifier sends a “challenge” to the archive so as to determine the integrity of the data, and the archive proves the integrity of the data by using the received fingerprints; and finally, the client verifies the integrity of the data based on the output from the archive in response to the “challenge”.
According to a first aspect of the present invention, there is provided a method of fingerprinting data, which comprises steps of: dividing the data into N blocks Mi, i=1, 2, . . . , N; combining each of nB blocks into a super block to obtain n=┌N/nB┐ super blocks; selecting nB elements hj, j=1, 2, . . . , nB, from a finite cyclic group =g1 generating a fingerprint Tk for the kth super block respectively, k=1, 2, . . . , n, by using a locator Wk for the kth super block, the selected nB elements hj and a first private key χ.
Preferably, the nB elements hj are parts of a public key corresponding to the first private key χ.
Preferably, the nB elements hj satisfy a relation of hj=g1rj, where rj are secret keys.
Preferably, the fingerprint Tk for the kth super block is generated according to




  
    T
    k
  
  =
  
    
      (
      
        
          W
          k
        
        ·
        
          
            ∏
            
              j
              =
              1
            
            
              n
              B
            
          
          ⁢
          
            
          
          ⁢
          
            h
            j
            
              M
              
                
                  
                    (
                    
                      k
                      -
                      1
                    
                    )
                  
                  *
                  
                    n
                    B
                  
                
                +
                j
              
            
          
        
      
      )
    
    
      1
      
        x
        +
        
          z
          M
        
      
    
  




in which zM is an identifier for the data. More preferably, the locator Wk for the kth super block is a hash value taking at least k as an input.

Preferably, the fingerprint Tk for the kth super block is generated according to




  
    T
    k
  
  =
  
    
      
        (
        
          
            W
            k
          
          ·
          
            
              ∏
              
                j
                =
                1
              
              
                n
                B
              
            
            ⁢
            
              
            
            ⁢
            
              h
              j
              
                M
                
                  
                    
                      (
                      
                        k
                        -
                        1
                      
                      )
                    
                    *
                    
                      n
                      B
                    
                  
                  +
                  j
                
              
            
          
        
        )
      
      x
    
    .
  




More preferably, the locator Wk for the kth super block is a hash value taking at least k and an identifier zM for the data as inputs.
According to a second aspect of the present invention, there is provided a method of proving data integrity for data fingerprinted by the method of fingerprinting data according to the first aspect of the present invention, which comprises steps of: receiving a challenge comprising at least a first randomness defining key κ1 and a second randomness defining key κ2; constructing Φ boxes; randomly assigning the n fingerprints into the Φ boxes in a first random manner defined by the first randomness defining key κ1, each fingerprint being put into one box; generating Φ packed super blocks and corresponding packed fingerprints based on the above assignment of the n fingerprints; randomly transforming the Φ packed super blocks and corresponding packed fingerprints in a second random manner defined by the second randomness defining key κ2 to generate a transformed super block and a transformed fingerprint; generating a knowledge proof of the transformed super block.
Preferably, the knowledge proof of the transformed super block is the transformed super block itself.
Preferably, the knowledge proof of the transformed super block is generated based on the public key and the transformed super block. More preferably, the knowledge proof of the transformed super block H is represented as




  H
  =
  
    
      ∏
      
        j
        =
        1
      
      
        n
        B
      
    
    ⁢
    
      
    
    ⁢
    
      H
      j
      
        E
        j
      
    
  




in which Hj=hjθ, where θ is a second private key, and Ej is the transformed super block. Alternatively, the knowledge proof of the transformed super block H is represented as





  H
  =
  
    
      prf
      5
    
    ⁡
    
      (
      
        
          ∏
          
            j
            =
            1
          
          
            n
            B
          
        
        ⁢
        
          H
          j
          
            E
            j
          
        
      
      )
    
  




in which Hj=hjθ, where θ is a second private key, Ej is the transformed super block, and prf5(•) denotes a pseudo random function.

Preferably, the challenge further comprises a super block selecting key pair (κ3,Λ) to define which Λ super blocks and corresponding fingerprints, instead of all the n super blocks and corresponding fingerprints, will be selected for data integrity proving.
Preferably, the challenge further comprises a repetition factor ψ, and the steps from the box constructing to the knowledge proof generating are repeated the ψ times, each time generates one knowledge proof of the transformed super block which is denoted as an mth knowledge proof of the transformed super block Hm, m=1, 2, . . . , ψ. More preferably, the number of Φ equals to 2φ, where φ=┌l+ψ┐+1, and l is a security level factor that determines the security level of the method.
Preferably, the first and second randomness defining keys κ1 and κ2 and the super block selecting key pair (κ3,Λ) are selected by a verifier.
Preferably, the challenge contains a digitally signed time stamp from a Time Stamping Authority (TSA). More preferably, at least one of the first and second randomness defining keys κ1 and κ2 and the super block selecting key κ3 is generated from the digitally signed time stamp.
Preferably, the method of proving data integrity further comprises: sending the transformed fingerprint(s) and the knowledge proof(s) of the transformed super block(s).
According to a third aspect of the present invention, there is provided a method of verifying data integrity for data fingerprinted by the method of fingerprinting data according to the first aspect of the present invention in connection with the method of proving data integrity according to the second aspect of the present invention, which comprises steps of: generating and sending a challenge comprising at least a first randomness defining key κ1 and a second randomness defining key κ2; receiving a transformed fingerprint and a knowledge proof of the transformed super block; constructing Φ boxes; randomly assigning the n locators Wk into the Φ boxes in the first random manner, each locator being put into one box; generating Φ packed locators based on the above assignment of the n locators; randomly transforming the Φ packed locators in the second random manner to generate a transformed locator; generating an alleged knowledge proof of the transformed super block from the transformed fingerprint and the transformed locator; comparing the alleged knowledge proof of the transformed super block with the received knowledge proof of the transformed super block; verifying the data integrity for the data if the comparison result is positive.
Preferably, the alleged knowledge proof of the transformed super block is generated based on the identifier zM for the data, the transformed fingerprint and the transformed locator.
More preferably, the alleged knowledge proof of the transformed super block is generated further based on the first and second private keys χ and θ. More preferably, the alleged knowledge proof of the transformed super block is represented as

prf5((T1/χ·W)θ),

where T denotes the transformed fingerprint, and W denotes the transformed locator; and the locator Wk for the kth super block is a hash value taking at least k and the identifier zM for the data as inputs. Alternatively, the alleged knowledge proof of the transformed super block is represented as

prf5((Tχ+zM·W)θ),

where T denotes the transformed fingerprint, and W denotes the transformed locator; and the locator Wk for the kth super block is a hash value taking at least k as an input.

More preferably, the alleged knowledge proof of the transformed super block is generated as

e(T,Yθ·g2θzM)·e(W,g2θ)

in which Yθ=Yθ, g2θ=g2θ, Y=g2χε=g2 is a finite cyclic group having an additional group g=g with =g1 such that ==|G|=p where p is a large prime; e:×→G is a bilinear map function; T denotes the transformed fingerprint; W denotes the transformed locator; the locator Wk for the kth super block is a hash value taking at least k as an input; and χ and θ are the first and second private keys; and the alleged knowledge proof of the transformed super block is compared with the knowledge proof of the transformed super block as





  
    e
    ⁡
    
      (
      
        H
        ,
        
          g
          2
        
      
      )
    
  
  ⁢
  
    =
    ?
  
  ⁢
  
    
      e
      ⁡
      
        (
        
          T
          ,
          
            
              Y
              θ
            
            ·
            
              g
              
                2
                ⁢
                θ
              
              
                z
                M
              
            
          
        
        )
      
    
    ·
    
      e
      ⁡
      
        (
        
          W
          ,
          
            g
            
              2
              ⁢
              θ
            
          
        
        )
      
    
  




where H denotes the knowledge proof of the transformed super block.

More preferably, the alleged knowledge proof of the transformed super block is generated as

e(T,Yθ)·e(W,g2−θ)

in which Yθ·g2θ/χ, g2θ=g2θ, Y=g2χε=g2 is a finite cyclic group having an additional group g with =g1 such that ==||=p where p is a large prime; e:×→ is a bilinear map function; T denotes the transformed fingerprint; W denotes the transformed locator; the locator Wk for the kth super block is a hash value taking at least k and the identifier zM for the data as inputs; and χ and θ are the first and second private keys; and the alleged knowledge proof of the transformed super block is compared with the knowledge proof of the transformed super block as





  
    e
    ⁡
    
      (
      
        H
        ,
        
          g
          2
        
      
      )
    
  
  ⁢
  
    =
    ?
  
  ⁢
  
    
      e
      ⁡
      
        (
        
          T
          ,
          
            Y
            θ
          
        
        )
      
    
    ·
    
      e
      ⁡
      
        (
        
          W
          ,
          
            g
            
              2
              ⁢
              θ
            
          
        
        )
      
    
  




where H denotes the knowledge proof of the transformed super block.

Preferably, the challenge further comprises a super block selecting key pair (κ3,Λ) to define which Λ locators, instead of all the n locators, will be selected for data integrity verifying.
Preferably, the challenge further comprises a repetition factor ψ, and the steps from the box constructing to the comparison of knowledge proof and alleged knowledge proof are repeated the ψ times, and only if all the comparison results are positive, the data integrity for the data is verified.
Preferably, the first and second randomness defining keys κ1 and κ2 and the super block selecting key pair (κ3,Λ) are selected by a verifier.
Preferably, the challenge contains a digitally signed time stamp from a Time Stamping Authority (TSA). More preferably, at least one of the first and second randomness defining keys κ1 and κ2 and the super block selecting key κ3 is generated from the digitally signed time stamp.
According to a fourth aspect of the present invention, there is provided an apparatus for fingerprinting data, which comprises: a super block generating unit for dividing the data into N blocks Mi, i=1, 2, . . . , N, and combining each of nB blocks into a super block to obtain n=┌N/nB┐ super blocks; and a fingerprinting unit for selecting nB elements hj, j=1, 2, . . . , nB from a finite cyclic group =g1, and generating a fingerprint Tk for the kth super block respectively, k=1, 2, . . . , n, by using a locator Wk for the kth super block, the selected nB elements hj and a first private key χ.
Preferably, the nB elements hj are parts of a public key corresponding to the first private key χ.
Preferably, the nB elements hj satisfy a relation of hj=g1rj, where rj are secret keys.
According to a fifth aspect of the present invention, there is provided an apparatus for proving data integrity, which comprises: a receiving unit for receiving a challenge comprising at least a first randomness defining key κ1 and a second randomness defining key κ2; a packaging unit for constructing Φ boxes, randomly assigning the n fingerprints into the Φ boxes in a first random manner defined by the first randomness defining key κ1, each fingerprint being put into one box, and generating Φ packed super blocks and corresponding packed fingerprints based on the above assignment of the n fingerprints; a transforming unit for randomly transforming the Φ packed super blocks and corresponding packed fingerprints in a second random manner defined by the second randomness defining key κ2 to generate a transformed super block and a transformed fingerprint; and a knowledge proof generating unit for generating a knowledge proof of the transformed super block.
Preferably, the knowledge proof generating unit generates the knowledge proof of the transformed super block as the transformed super block itself.
Preferably, the knowledge proof generating unit generates the knowledge proof of the transformed super block based on the public key and the transformed super block.
Preferably, the challenge further comprises a super block selecting key pair (κ3,Λ) to define which Λ super blocks and corresponding fingerprints, instead of all the n super blocks and corresponding fingerprints, will be selected by the packaging unit for data integrity proving.
Preferably, the challenge further comprises a repetition factor ψ, and the operations of the packaging unit, the transforming unit and the knowledge proof generating unit are repeated the ψ times, each time generate one knowledge proof of the transformed super block which is denoted as an mth knowledge proof of the transformed super block Hm, m=1, 2, . . . , ψ.
Preferably, the challenge contains a digitally signed time stamp from a Time Stamping Authority (TSA). More preferably, at least one of the first and second randomness defining keys κ1 and κ2 and the super block selecting key κ3 is generated from the digitally signed time stamp.
Preferably, the apparatus for proving data integrity further comprises: a sending unit for sending the transformed fingerprint(s) and the knowledge proof(s) of the transformed super block(s).
According to a sixth aspect of the present invention, there is provided an apparatus for verifying data integrity, which comprises: a challenge generating and sending unit for generating and sending a challenge comprising at least a first randomness defining key κ1 and a second randomness defining key κ2; a receiving unit for receiving a transformed fingerprint and a knowledge proof of the transformed super block; a locator packaging unit for constructing Φ boxes, randomly assigning the n locators Wk into the Φ boxes in the first random manner, each locator being put into one box, and generating Φ packed locators based on the above assignment of the n locators; an alleged knowledge proof generating unit for randomly transforming the Φ packed locators in the second random manner to generate a transformed locator, and generating an alleged knowledge proof of the transformed super block from the transformed fingerprint and the transformed locator; a comparator for comparing the alleged knowledge proof of the transformed super block with the received knowledge proof of the transformed super block; and a verifying unit for verifying the data integrity if the comparison result is positive.
Preferably, the alleged knowledge proof generating unit generates the alleged knowledge proof of the transformed super block based on the identifier zM for the data, the transformed fingerprint and the transformed locator. More preferably, the alleged knowledge proof generating unit generates the alleged knowledge proof of the transformed super block further based on first and second private key χ and θ.
Preferably, the challenge generated by the challenge generating and sending unit further comprises a super block selecting key pair (κ3,Λ) to define which Λ locators, instead of all the n locators, will be selected by the locator packaging unit for data integrity verifying.
Preferably, the challenge generated by the challenge generating and sending unit further comprises a repetition factor ψ, and the operations of the locator packaging unit, the alleged knowledge proof generating unit and the comparator are repeated the ψ times, and only if all the comparison results are positive, the verifying unit verifies the data integrity.
Preferably, the challenge generated by the challenge generating and sending unit contains a digitally signed time stamp from a Time Stamping Authority (TSA). More preferably, the challenge generating and sending unit determines at least one of the first and second randomness defining keys κ1 and κ2 and the super block selecting key κ3 from the digitally signed time stamp.
According to a seventh aspect of the present invention, there is provided a data integrity verifying system, which comprises: the apparatus for proving data integrity according to the fifth aspect of the present invention; and the apparatus for verifying data integrity according to the sixth aspect of the present invention.
Preferably, the data integrity verifying system further comprises: the apparatus for fingerprinting data according to the fourth aspect of the present invention. More preferably, the apparatus for fingerprinting data is also used as the apparatus for verifying data integrity.
The inventive PDI scheme can ensure data integrity of the data at overwhelming probability, for instance 1-2−64. Compared to prior arts that achieve (1) data integrity is ensured on each bit of the data, (2) the size of the challenge that the client sends to the archive is constant, and (3) the size of the data integrity proof that the archive sends to the client is constant, the inventive PDI scheme has following four main advantages.

    
    
        (I). The speed that the client generates the fingerprint of data is the fastest
        (II). The speed that the archive generates response to the client challenge is the fastest
        (III). The speed that the client verifies the archive's response is the fastest
        (IV). The verifier may be a third-party verifier, and all above three advantages (I)-(III) can be also achieved. Moreover, the size of the fingerprints is the smallest
    
    


Take a 64 M bytes data file as a concrete example. The security strength is set to 2048-bit RSA signature comparable and l=64. Given Intel Core Duo 2.16 GHz processor for the client and Intel Qx6700 Core2 Quad 2.66 GHz processor for the archive, with PDI scheme the client spends about 12.7 seconds to fingerprint the file; the archive spends about 1.4 seconds to generate the transformed fingerprint and the knowledge proof of transformed super block; and the client spends about 0.4 second to verify the knowledge proof. All these timing values are even lower than the theoretic lower bounds that prior RSA based schemes can at best achieve.



BRIEF DESCRIPTION OF THE DRAWINGS
The above and other objects, features and advantages of the present invention will be clearer from the following detailed description about the non-limited embodiments of the present invention taken in conjunction with the accompanied drawings, in which:
FIG. 1 shows an operation model for proving data integrity;
FIG. 2 shows the flow charts for the method of proving data integrity (Atomic Proof Procedure) and the method of verifying data integrity (Atomic Verification Procedure) according to the present invention;
FIG. 3 is a logic view of the data;
FIGS. 4-7 shows a concrete example of the present invention and its demonstration of the correctness in which 6 blocks M1-M6 are used and 3 super blocks are formed with nB=2;
FIGS. 8-11 shows the result of the real experiment in which 256 blocks each having 27 bytes are combined into one super block, Φ=2θ=512 boxes are used, and the data file has a size of 64 M bytes;
FIG. 12 shows an alternative operation model for proving data integrity;
FIG. 13 shows yet another alternative operation model for proving data integrity;
FIG. 14 shows a block diagram of the client 1400 for implementing the present invention;
FIG. 15 shows a block diagram of the archive 1500 for implementing the present invention; and
FIG. 16 shows a block diagram of the verifier 1600 for implementing the present invention.



DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS
Hereunder, the present invention will be described in accordance with the drawings. In the following description, some particular embodiments are used for the purpose of description only, which shall not be understood as any limitation to the present invention but the examples thereof. While it may blur the understanding of the present invention, the conventional structure or construction will be omitted.
Principle Description
The Provable Data Integrity (PDI) scheme is herein presented that not only overcomes all the problems prior arts encountered but also outperforms all the prior arts.
Basically, the PDI scheme has below three steps that comply with operation model illustrated in FIG. 1.
Step 0′:
The PDI scheme requires a finite cyclic group =g1 Preferably,  is a finite cyclic group over elliptic curve. Throughout this invention disclosure, we use traditional multiplicative group notation, instead of the additive notation often used in elliptic curve settings. The client has a private key χ and a corresponding public key.
The client divides the data file into N blocks Mi, i=1, 2, . . . , N. Each nB blocks are combined together as a super block. Therefore, the data is divided into n=┌N/nB┐ super blocks. If the length of the data file is less than that n super blocks require, the data file will be logically padded with zero.
For each data file the client prepares nB elements hi of  i=1, 2, . . . , nB. In the preferable case, the client selects ri such that hi=g1ri and keeps ri secret. More preferably, the elements hi are part of the client's public key thus being independent of the data file.
The client utilizes his private key and the above nB elements hi to generate fingerprints for all the super blocks. For example, fingerprint of the ith super block is of the form




  
    
      T
      i
    
    =
    
      
        (
        
          
            W
            i
          
          ·
          
            
              ∏
              
                j
                =
                1
              
              
                n
                B
              
            
            ⁢
            
              
            
            ⁢
            
              h
              j
              
                M
                
                  
                    
                      (
                      
                        i
                        -
                        1
                      
                      )
                    
                    *
                    
                      n
                      B
                    
                  
                  +
                  j
                
              
            
          
        
        )
      
      
        1
        
          x
          +
          
            z
            M
          
        
      
    
  
  ,




where the locator Wi is a hash value that takes at least i as input, e.g. it may take the data file's file name and/or version number as additional input; and zM is an identifier specifically chosen for the data file, e.g. one identifier zM may be chosen for a set of data files while another identifier zM is chosen for another set of data files. Alternatively, the fingerprint is computed as





  
    
      T
      i
    
    =
    
      
        (
        
          
            W
            i
          
          ·
          
            
              ∏
              
                j
                =
                1
              
              
                n
                B
              
            
            ⁢
            
              
            
            ⁢
            
              h
              j
              
                M
                
                  
                    
                      (
                      
                        i
                        -
                        1
                      
                      )
                    
                    *
                    
                      n
                      B
                    
                  
                  +
                  j
                
              
            
          
        
        )
      
      x
    
  
  ,




where the locator Wi takes i and zM as input. In the preferable case, the client knows ri such that hi=gri. Hence by replacing





  
    
      ∏
      
        j
        =
        1
      
      
        n
        B
      
    
    ⁢
    
      
        h
        j
        
          M
          
            
              
                (
                
                  i
                  -
                  1
                
                )
              
              *
              
                n
                B
              
            
            +
            j
          
        
      
      ⁢
      
        
      
      ⁢
      to
      ⁢
      
        
      
      ⁢
      
        g
        1
      
      ⁢
      
        
          ∑
          
            j
            =
            1
          
          
            n
            B
          
        
        ⁢
        
          
            r
            j
          
          ·
          
            M
            
              
                
                  (
                  
                    i
                    -
                    1
                  
                  )
                
                *
                
                  n
                  B
                
              
              +
              j
            
          
        
      
    
  
  ,




the client can utilize knowledge of ri to speed up fingerprinting process.

As result of Step 0′, the client gets n fingerprints for n super blocks. The client sends all the fingerprints to the archive along with the data file and the nB elements hi. In the preferable case that the nB elements hi are part of the client's public key, the archive may get these elements already from e.g. public key directory. Thus these elements are unnecessary to be transmitted along with the data file.
Step 1′:
The client sends a “challenge” to the archive so as to determine the integrity of the data.
Based on the challenge received from the client, the archive needs to execute atomic proof procedure several, e.g. ψ, times.
For each atomic proof procedure, the archive first constructs Φ=2φ boxes, logically, and randomly assigns the n fingerprints into the boxes. The number Φ as well as the randomness is determined by the “challenge” received from the client. Each fingerprint must be put in one and only one box. Noting that each fingerprint exactly corresponds to one super block, after all the n fingerprints have been placed in the boxes, for each box there is a “packed super block” and a “packed fingerprint” on the “packed super block” generated based on the fingerprints that are assigned into the box. For instance, consider the case that only two fingerprints on the ηth and ωth super blocks are put in the Λth box. The “packed super block” of this box contains {circumflex over (M)}λj=Mη*nB+j+Mω*nB+j, j=1, 2, . . . , nB. And the “packed fingerprint” on the “packed super block” is {circumflex over (T)}λ=Tη·Tω.
Next, by applying another randomness to the “packed super blocks” and “packed fingerprints” of all the boxes, the archive generates one “transformed super block” and one “transformed fingerprint” on the “transformed super block”. The randomness here is again determined by the “challenge” received from the client. Continue with above example, the “transformed super block” will contain




  
    
      E
      j
    
    =
    
      
        ∑
        
          λ
          =
          1
        
        Φ
      
      ⁢
      
        
          a
          λ
        
        ·
        
          
            M
            ^
          
          
            λ
            ⁢
            
              
            
            ⁢
            j
          
        
      
    
  
  ,
  
    j
    =
    1
  
  ,
  2
  ,
  ...
  ⁢
  
    
  
  ,
  
    n
    B
  




and the “transformed fingerprint” on the “transformed super block” is





  
    T
    =
    
      
        ∏
        
          λ
          =
          1
        
        Φ
      
      ⁢
      
        
          T
          ^
        
        λ
        
          a
          λ
        
      
    
  
  ,




where aλ are random numbers determined by the client's “challenge”.

Finally, the archive generates “knowledge proof of the transformed super block”. It may be the “transformed super block” directly. Alternatively, it may be knowledge of the content of the “transformed super block” by standard interactive or non-interactive zero-knowledge proof technologies. Or alternatively, the client “challenge” contains Hi=hiθ, i=1, 2, . . . , nB, while the client chooses different θ for each challenge and keeps θ secret. In the preferable case, Hi are part of the client's public key and θ is part of the client's private key. Making use of Hi, the archive computes “knowledge proof of the transformed super block” as




  H
  =
  
    
      ∏
      
        i
        =
        1
      
      
        n
        B
      
    
    ⁢
    
      
        H
        i
        
          E
          i
        
      
      .
    
  




The archive needs to send the “transformed fingerprint” T and the “knowledge proof of transformed super block” H as output of the atomic proof procedure to the client.
In all, the archive should repeat the atomic proof procedures ψ times. We may choose φ=┌l/ψ┐+1 that determines the number of boxes, where l is chosen by the client and determines the security level. And we choose the bit length of the random number aλ to be φ. By repeating the atomic procedures ψ times, the security level of the PDI scheme can be (n/ψ)·2−l which means that if at least one block is damaged the archive can convince the verifier with probability at most (n/ψ)·2−l.
Said “The number Φ as well as the randomness is determined by the challenge received from the client” and “aλ are random numbers determined by the client's challenge” have alternative embodiments. For instance, we may choose φ=n and assign the n fingerprints evenly into n boxes, i.e., for each box there is one and only one fingerprint. And we choose the bit length of aλ to be l. In this case, choosing ψ=1 can achieve security level n·2−l.
Step 2′:
The client receives output of all the ψ atomic proof procedures from the archive. For each “transformed fingerprint” on “transformed super block” and the “knowledge proof of transformed super block” of one atomic proof procedure, the client carries out an atomic verification procedure.
For each atomic verification procedure, the client first constructs Φ boxes, logically, and randomly assigns the locator Wi into the boxes. The randomness is exactly the same as the archive used to assign fingerprints because the randomness is determined by the “challenge” that the client chose. Each locator must be put in one and only one box. After all the n locators have been placed in the boxes, for each box there is a “packed locator” generated based on the locators that are assigned into the box. For instance, consider the case that only two locators Wη and Wω are put in the λth box. The “packed locator” of this box is Ŵλ=Wη·Wω.
Next, by applying the another randomness to the “packed locators” of all boxes, the client generates one “transformed locator”. The randomness is exactly the same as the archive used to compute “transformed fingerprint” because the randomness is determined by the “challenge” that the client chose. The “transformed locator” is




  
    W
    =
    
      
        ∏
        
          λ
          =
          1
        
        Φ
      
      ⁢
      
        
          W
          ^
        
        λ
        
          a
          i
        
      
    
  
  ,




where aλ are random numbers determined by the client's “challenge”.

Finally, if the archive generates “knowledge proof of the transformed super block” as the “transformed super block” directly, the client computes “alleged knowledge proof of the transformed super block” as H′=(Tχ+zM/W) and compares with




  
    ∏
    
      i
      =
      1
    
    
      n
      B
    
  
  ⁢
  
    
      h
      i
      
        E
        i
      
    
    .
  




Only if they are equal, the atomic verification procedure outputs success. Alternatively, the client computes “alleged knowledge proof of the transformed super block” as H′=(Tχ+zM/W)θ and compares with the value H received from the archive. Only if H=H′, the atomic verification procedure outputs success. Alternatively, the “alleged knowledge proof of the transformed super block” is computed as (T1/χ/W)θ if the fingerprint is computed as





  
    T
    i
  
  =
  
    
      
        (
        
          
            W
            i
          
          ·
          
            
              ∏
              
                j
                =
                1
              
              
                n
                B
              
            
            ⁢
            
              h
              j
              
                M
                
                  
                    
                      (
                      
                        i
                        -
                        1
                      
                      )
                    
                    ⋆
                    
                      n
                      B
                    
                  
                  +
                  j
                
              
            
          
        
        )
      
      x
    
    .
  




If and only if all the atomic verification procedures output success, the client is convinced that the data integrity is kept at the archive side. In the case that at least one block is damaged at the archive side, the probability that the client is falsely convinced can at most be 2−l.
Detailed Explanation
Hereunder the present invention will be described in more details.
We use traditional multiplicative group notation, instead of the additive notation often used in elliptic curve settings.
Let =g1 and =g2 be two finite cyclic groups with additional group =g such that ||=||=||=p where p is some large prime. Bilinear map e:×→ is a function, such that

    
    
        Bilinear: for all h1ε h2ε for all a,bε e(h1a,h2b)=e(h1,h2)ab 
        Non-degenerate: ∃h1ε ∃h2ε such that e(h1,h2)≠I where I is the identity of 
        Computable: there exists an efficient algorithm for computing e
    
    


We suppose there is a setup algorithm Setup(•) that on input security parameter 1k, outputs above settings of bilinear map and writes this as (p,,g1,g2,e)←Setup(1k).
Since   and  are of the same prime order p, according to Bilinear property and Non-degenerate property it's easy to see that e(g1,g2)=g.
Given (p,,g1,g2,e)←Setup(1k), and five pseudo random functions prf1:{0,1}*→prf2:{0,1}*→ prf3(φ):{0,1}*→ prf4(φ):{0,1}*→ and prf5:→{0,1}160 as system parameters.
Client Fingerprints Data
The client has secret key




  
    (
    
      x
      ,
      θ
    
    )
  
  ⁢
  
    ⟵
    R
  
  ⁢
  
    Z
    p
    2
  




and public key Y=g2χε It's preferable that the client has a certificate on Y from a certification authority. Alternatively, the client secret key θ may for instance be computed as θ=prf1(χ,“second private key”).

In addition, the client computes (hi=g1prf1(i,χ),Hi=hiθ)ε i=1, 2 . . . , nB as his public keys.
Given data M that is divided into N blocks Mi (i=1, 2, . . . , N) each of which is lM bits in length, where lM<log p is a must. Denote the reference to M, e.g. its qualified file name, as FNM.
FIG. 3 illustrates how the data M is logically divided and organized into n super blocks. Let n=┌N/nB┐ denotes the number of super blocks. Notice that the data M will be logically padded with zero in the case that its length is not equal to N·lM or n·(nB·lM)
The client executes the following to fingerprint the data.

    
    
        a) The client selects identifier
    
    






  
    z
    M
  
  ⁢
  
    ⟵
    R
  
  ⁢
  
    Z
    p
  




and computes locator Wi=prf2(i,zM,FNM)ε





  
    
      
        
          T
          i
        
        =
        
        ⁢
        
          
            (
            
              
                W
                i
              
              ·
              
                
                  ∏
                  
                    j
                    =
                    1
                  
                  
                    n
                    B
                  
                
                ⁢
                
                  h
                  j
                  
                    M
                    
                      
                        
                          (
                          
                            i
                            -
                            1
                          
                          )
                        
                        ⋆
                        
                          n
                          B
                        
                      
                      +
                      j
                    
                  
                
              
            
            )
          
          
            1
            
              x
              +
              
                z
                M
              
            
          
        
      
    
  
  
    
      
        
          =
          
          ⁢
          
            
              
                (
                
                  
                    W
                    i
                  
                  ·
                  
                    g
                    1
                    
                      
                        ∑
                        
                          j
                          =
                          1
                        
                        
                          n
                          B
                        
                      
                      ⁢
                      
                        
                          
                            prf
                            1
                          
                          ⁡
                          
                            (
                            
                              j
                              ,
                              x
                            
                            )
                          
                        
                        ·
                        
                          M
                          
                            
                              
                                (
                                
                                  i
                                  -
                                  1
                                
                                )
                              
                              ⋆
                              
                                n
                                B
                              
                            
                            +
                            j
                          
                        
                      
                    
                  
                
                )
              
              
                1
                
                  x
                  +
                  
                    z
                    M
                  
                
              
            
            ∈
            
                            1
            
          
        
        ,
        
          
        
        ⁢
        
          i
          =
          1
        
        ,
        2
        ,
        ...
        ⁢
        
          
        
        ,
        
          n
          .
        
      
    
  




    
    
         Name Ti as the fingerprint of the ith super block
        b) The client signs (FNM,M,zM,{Ti}) with the secret key χ which yields signature S
        c) The client stores zM for FNM 
        d) The client sends FNM, M, zMε{Ti}ε and S to the archive
        e) On receiving FNM, M, zM, {Ti}, and S, the archive uses the client's public key to verify that S is a valid signature on (FNM,M,zM,{Ti})

Archive Proves Data Integrity

    
    


In order to make sure that whether the archive retains the content of FNM at zero-bit error, except with probability at most 2−l, the client challenges the archive and the archive responses as follows.

    
    
        i) The client selects repetition factor 1≦ψ≦l
        ii) The client selects
    
    






  
    (
    
      
        κ
        1
      
      ,
      
        κ
        2
      
    
    )
  
  ⁢
  
    ⟵
    R
  
  ⁢
  
    Z
    p
    2
  




    
    
         and sends FNM, chal=(l,ψ,κ1,κ2) to the archive
        iii) On receiving FNM and chal=(l,ψ,κ1,κ2), the archive first computes φ=┌l/ψ┐+1 and initializes transformed fingerprint Tk=Oε k=1, 2, . . . , ψ, where O is the identity of  Then the archive repeats the following atomic proof procedure independently ψ times.
        
            iii-a. Initialize packed fingerprint {right arrow over (T)}v=Oε packed super block evj=0, and transformed super block Ej=0, v=0, 1, . . . , Φ−1=2φ−1, j=1, 2, . . . , nB 
            iii-b. For each i=1, 2, . . . , n, compute
            
                b-i. σ=prf3(i,k,κ1)
                b-ii. {right arrow over (T)}σ*=Ti, which means adding Ti to the packed fingerprint of the σth box
                b-iii. For each j=1, 2, . . . , nB, compute eσj+=M(i-1)*nB+j mod p, which means adding M(i−1)*nB+j to the packed super block of the σth box
            
            
            iii-c. For each v=1, 2, . . . , Φ, compute
            
                c-i. av=prf4(v,k,κ2)
                c-ii. Tk*{right arrow over (T)}vav 
                c-iii. For each j=1, 2, . . . , nB, compute Ej+=av·evj mod p
            
            
            iii-d. Compute
        
        
    
    






  
    H
    k
  
  =
  
    
      prf
      5
    
    ⁡
    
      (
      
        
          ∏
          
            j
            =
            1
          
          
            n
            B
          
        
        ⁢
        
          H
          j
          
            E
            j
          
        
      
      )
    
  




    
    
        
        
             as the knowledge proof of the transformed super block
        
        
        iv) The archive sends the integrity proof (Tk,Hk), k=1, 2, . . . , ψ, to the client
    
    


Alternatively, the client selects




  
    κ
    1
  
  ⁢
  
    ⟵
    R
  
  ⁢
  
    Z
    p
  




and κ2 is for instance computed as κ2=prf1(κ1,“second randomness defining key”). Thus n may be omitted from transmission.

Client Verifies Data Integrity

On receiving (Tk,Hk), k=1, 2, . . . , ψ, the client repeats the following atomic verification procedure independently ψ times.

    
    
        I) Initialize transformed locator Wk=Iε packed locator Wv=Iε v=0, 1, . . . , Φ−1=2φ−1
        II) For each i=1, 2, . . . , n, compute σ=prf3(i,k,κ1) and Wσ*=prf2(i,FNM)
        III) For each v=1, 2, . . . , Φ, compute av=prf4(v,k,κ2) and Wk*=Wv−av 
        IV) Compute and verify that
    
    






  
    H
    k
  
  ⁢
  
    =
    ?
  
  ⁢
  
    
      
        prf
        5
      
      ⁡
      
        (
        
          
            (
            
              
                T
                k
                
                  x
                  +
                  
                    z
                    M
                  
                
              
              ·
              
                W
                k
              
            
            )
          
          θ
        
        )
      
    
    .
  




    
    
         Output TRUE if and only if the congruence holds.
    
    


The client is convinced by the data integrity proof if and only if all the atomic verification procedures output TRUE.
Concrete Example
FIGS. 4-7 shows a concrete example of the present invention and its demonstration of the correctness, in which 6 blocks M1-M6 are used and 3 super blocks are formed with nB=2. It is believed that those skilled in the art may understand the present invention quite clearly by referring to FIGS. 4-7 in conjunction with the above description step by step.
Real Experiment
FIGS. 8-11 shows the result of the real experiment in which 256 blocks each having 27 bytes are combined into one super block, Φ=2θ=512 boxes are used, and the data file has a size of 64 M bytes. Meanwhile, FIGS. 9-11 also list the result of Reference 7, from which it can be seen that as compared with Reference 7, the present invention has great improvements on the calculation time costs.
Other Embodiments
Alternative Scheme 1:
Slight modification to step iii-d. of “Archive Proves Data Integrity” and step IV) of “Client Verifies Data Integrity” yields PDI-2 scheme. This is a scheme that supports public verifiability.
The client in addition needs to compute Yθ=Yθ and g2θ=g2θ as his public keys.
Modification to Step iii-d. of “Archive Proves Data Integrity”:

    
    
        iii-dd. Compute
    
    






  
    H
    k
  
  =
  
    
      ∏
      
        j
        =
        1
      
      
        n
        B
      
    
    ⁢
    
      H
      j
      
        E
        j
      
    
  




    
    
         as the knowledge proof of the transformed super block
    
    


Modification to Step IV) of “Client Verifies Data Integrity”:

    
    
        IV′) Compute and verify that
    
    






  
    
      
        
          e
          ⁡
          
            (
            
              
                H
                k
              
              ,
              
                g
                2
              
            
            )
          
        
        ⁢
        
          =
          ?
        
        ⁢
        
          
            e
            ⁡
            
              (
              
                
                  T
                  k
                
                ,
                
                  
                    Y
                    θ
                  
                  ·
                  
                    g
                    
                      2
                      ⁢
                      θ
                    
                    
                      z
                      M
                    
                  
                
              
              )
            
          
          ·
          
            e
            ⁡
            
              (
              
                
                  W
                  k
                
                ,
                
                  g
                  
                    2
                    ⁢
                    θ
                  
                
              
              )
            
          
        
      
    
    
      
        
      
    
  




The PDI-2 scheme supports public verifiability because none step of “Archive Proves Data Integrity” and “Client Verifies Data Integrity” involves secret key of the client and hence can be effectively executed by a third-party verifier.
Alternative Scheme 1.1:
Slight modification to “Client Verifies Data Integrity” of PDI-2 yields an accelerated PDI-2 scheme.
Modification to Step IV′) of “Client Verifies Data Integrity”:

    
    
        IV-e) Select k random numbers rkεZ⊂ where k=1, 2, . . . , ψ, compute and verify that
    
    






  
    e
    ⁡
    
      (
      
        
          
            ∏
            
              k
              =
              1
            
            ψ
          
          ⁢
          
            H
            k
            
              r
              k
            
          
        
        ,
        
          g
          2
        
      
      )
    
  
  ⁢
  
    =
    ?
  
  ⁢
  
    
      e
      ⁡
      
        (
        
          
            
              ∏
              
                k
                =
                1
              
              ψ
            
            ⁢
            
              T
              k
              
                r
                k
              
            
          
          ,
          
            
              Y
              θ
            
            ·
            
              g
              
                2
                ⁢
                θ
              
              
                z
                M
              
            
          
        
        )
      
    
    ·
    
      e
      ⁡
      
        (
        
          
            
              ∏
              
                k
                =
                1
              
              ψ
            
            ⁢
            
              W
              k
              
                r
                k
              
            
          
          ,
          
            g
            
              2
              ⁢
              θ
            
          
        
        )
      
    
  




By the accelerated PDI-2 scheme, the client devotes less computation power on evaluating the pairings.
Alternative Scheme 2:
Slight modification to step a) of “Client Fingerprints Data” and step IV) of “Client Verifies Data Integrity” yields PDI-3 scheme.
Modification to Step a) of “Client Fingerprints Data”:

    
    
        aa) The client selects identifier
    
    






  
    z
    m
  
  ⁢
  
    ⟵
    R
  
  ⁢
  
    Z
    p
  




    
    
         and computes
    
    






  
    
      
        
          
            
              
              ⁢
              
                
                  
                    W
                    i
                  
                  =
                  
                    
                      
                        prf
                        2
                      
                      ⁡
                      
                        (
                        
                          i
                          ,
                          
                            z
                            M
                          
                          ,
                          
                            FN
                            M
                          
                        
                        )
                      
                    
                    ∈
                    
                                            1
                    
                  
                
                ,
              
            
          
        
        
          
            
              
              ⁢
              
                
                  
                    T
                    i
                  
                  =
                  
                    
                      
                        (
                        
                          
                            W
                            i
                          
                          ·
                          
                            g
                            1
                            
                              
                                ∑
                                
                                  j
                                  =
                                  1
                                
                                
                                  n
                                  B
                                
                              
                              ⁢
                              
                                
                                  
                                    prf
                                    1
                                  
                                  ⁡
                                  
                                    (
                                    
                                      j
                                      ,
                                      x
                                    
                                    )
                                  
                                
                                ·
                                
                                  M
                                  
                                    
                                      
                                        (
                                        
                                          i
                                          -
                                          1
                                        
                                        )
                                      
                                      ⋆
                                      
                                        n
                                        B
                                      
                                    
                                    +
                                    j
                                  
                                
                              
                            
                          
                        
                        )
                      
                      x
                    
                    ∈
                    
                                            1
                    
                  
                
                ,
              
            
          
        
        
          
            
              
              ⁢
              
                
                  i
                  =
                  1
                
                ,
                2
                ,
                ...
                ⁢
                
                  
                
                ,
                n
              
            
          
        
      
    
    
      
        
      
    
  




Modification to Step IV) of “Client Verifies Data Integrity”:

    
    
        IV′′) Compute and verify that
    
    






  
    H
    k
  
  ⁢
  
    =
    ?
  
  ⁢
  
    
      prf
      5
    
    ⁡
    
      (
      
        
          (
          
            
              T
              k
              
                1
                /
                x
              
            
            ·
            
              W
              k
            
          
          )
        
        θ
      
      )
    
  




Alternative Scheme 3:

Following with above alternative scheme 2, slight modification to step iii-d. of “Archive Proves Data Integrity” and step 1V) of “Client Verifies Data Integrity” yields PDI-4 scheme. This is another scheme that supports public verifiability.
The client in addition needs to compute Yθ=g2θ/χ and g2θ=g2θ as his public keys.
Modification to Step iii-d. of “Archive Proves Data Integrity”:




  
    H
    k
  
  =
  
    
      ∏
      
        j
        =
        1
      
      
        n
        B
      
    
    ⁢
    
      H
      j
      
        E
        j
      
    
  




    
    
        iii-ddd. Compute as knowledge proof of transformed super block
    
    


Modification to Step IV) of “Client Verifies Data Integrity”:

    
    
        IV′′′) Compute and verify that
    
    






  
    
      
        
          e
          ⁡
          
            (
            
              
                H
                k
              
              ,
              
                g
                2
              
            
            )
          
        
        ⁢
        
          =
          ?
        
        ⁢
        
          
            e
            ⁡
            
              (
              
                
                  T
                  k
                
                ,
                
                  Y
                  θ
                
              
              )
            
          
          ·
          
            e
            ⁡
            
              (
              
                
                  W
                  k
                
                ,
                
                  g
                  
                    2
                    ⁢
                    θ
                  
                
              
              )
            
          
        
      
    
    
      
        
      
    
  




The PDI-4 scheme supports public verifiability because none step of “Archive Proves Data Integrity” and “Client Verifies Data Integrity” involves secret key of the client and hence can be effectively executed by a third-party verifier.
Alternative Scheme 3.1:
Slight modification to “Client Verifies Data Integrity” of PDI-4 yields an accelerated PDI-4 scheme.
Modification to Step IV′′′) of “Client Verifies Data Integrity”:

    
    
        IV-f) Select k random numbers rkεZ⊂ where k=1, 2, . . . , ψ, compute and verify that
    
    






  
    e
    ⁡
    
      (
      
        
          
            ∏
            
              k
              =
              1
            
            ψ
          
          ⁢
          
            H
            k
            
              r
              k
            
          
        
        ,
        
          g
          2
        
      
      )
    
  
  ⁢
  
    =
    ?
  
  ⁢
  
    
      e
      ⁡
      
        (
        
          
            
              ∏
              
                k
                =
                1
              
              ψ
            
            ⁢
            
              T
              k
              
                r
                k
              
            
          
          ,
          
            Y
            θ
          
        
        )
      
    
    ·
    
      e
      ⁡
      
        (
        
          
            
              ∏
              
                k
                =
                1
              
              ψ
            
            ⁢
            
              W
              k
              
                r
                k
              
            
          
          ,
          
            g
            
              2
              ⁢
              θ
            
          
        
        )
      
    
  




By the accelerated PDI-4 scheme, the client devotes less computation power on evaluating the pairings.
Alternative Scheme 4:
For all the schemes described above, slight modifications to system parameters and steps of “Client Fingerprints Data” and steps of “Client Verifies Data Integrity” yields a scheme that support sampling.
To support sampling, an additional system parameter prf6:{0,1}*→{1, 2, . . . , n} is required. The challenge chal=(l,ψ,κ1,κ2) will in addition contain a key




  
    κ
    3
  
  ⁢
  
    ⟵
    R
  
  ⁢
  
    Z
    p
  




and a positive number Λ.

Then for all steps of “Client Fingerprints Data” and “Client Verifies Data Integrity”, all the i=1, 2, . . . , n will be replaced by i=prf6(θ3,1), prf6(θ3,2), . . . , prf6(κ3,Λ). Therefore, data integrity of only the sampled super blocks will be verified since only Λ super blocks that are selected by i=prf6(κ3,1), prf6(κ3,2), . . . , prf6(κ3,Λ) will be involved.
Thus, by Alternative Scheme 4, the archive may not use all the super blocks to generate data integrity proof. Instead, the client's challenge will inform the archive which and how many of the super blocks will be chosen to generate the proof.
Alternative Operation Model:
By introducing Time Stamping Authority (TSA) suggested by Reference 4 (RFC 4810), the challenge keys




  
    (
    
      
        κ
        1
      
      ,
      
        κ
        2
      
    
    )
  
  ⁢
  
    ⟵
    R
  
  ⁢
  
    Z
    p
    2
  




could be replaced by a digitally signed time stamp come from the TSA, as illustrated in FIG. 12. For example, denote the time stamp as T. Using standard hash algorithm SHA-1, one can obtain κ2=SHA-1(T,“1”) and κ2=SHA-1(T,“2”). With such replacement, what the client challenges for is whether its data is correctly retained up to no earlier than the time the time stamp is released by the TSA. Now both the archive and the client can benefit a lot from pre-computation except for the last step of atomic verification procedure that must utilize the response of the archive, i.e. (Tk,Hk).

Moreover, as shown in FIG. 13, in the case that the verifier is a third-party verifier, κ1 and κ2 may be also deduced from the time stamp of the TSA. In the case that sampling is enabled, κ3 may for example be deuced from the time stamp of the TSA as κ3=SHA-1(T,“3”).
Hardware Implementations:
As it is apparent for those skilled in the art, the present invention can be also implemented by hardware constructions. Hereunder, some examples are illustrated for the purpose of description only but should not be construed as any limitations.
Client
FIG. 14 shows a block diagram of the client 1400 for implementing the present invention. Herein, the client 1400 is used as an apparatus for fingerprinting data.
As shown in FIG. 14, the client 1400 includes: a super block generating unit 1410 for dividing the data into N blocks Mi, i=1, 2, . . . , N, and combining each of nB blocks into a super block to obtain n=┌N/nB┐ super blocks; and a fingerprinting unit 1420 for selecting nB elements hi, j=1, 2 . . . , nB from a finite cyclic group =g1, and generating a fingerprint Tk for the kth super block respectively, k=1, 2, . . . , n, by using a locator Wk for the kth super block, the selected nB elements hj and a first private key χ. The client 1400 also includes a memory 1430 for storing the information to be used or generated by the super block generating unit 1410 and the fingerprinting unit 1420, such as the generated super blocks, the finite cyclic group, the generated fingerprints, the locator, and the private key. However, those skilled in the art must be aware that the memory 1430 can be a separate unit as above or can be an/several integrated unit/units incorporated in the super block generating unit 1410 and/or the fingerprinting unit 1420.
Similarly, the nB elements hj can be parts of a public key corresponding to the first private key χ. Furthermore, the nB elements hj may satisfy a relation of hj=g1rj, where rj are secret keys. Also, the public key and/or the secret keys may be also stored in the memory 1430.
Archive
FIG. 15 shows a block diagram of the archive 1500 for implementing the present invention. Herein, the achieve 1500 is used as an apparatus for proving data integrity.
As shown in FIG. 15, the archive 1500 includes: a receiving unit 1510 for receiving a challenge comprising at least a first randomness defining key κ1 and a second randomness defining key κ2; a packaging unit 1520 for constructing Φ boxes, the number of Φ being determined by said challenge, randomly assigning the n fingerprints into the Φ boxes in a first random manner defined by the first randomness defining key κ1, each fingerprint being put into one box, and generating Φ packed super blocks and corresponding packed fingerprints based on the above assignment of the n fingerprints; a transforming unit 1530 for randomly transforming the Φ packed super blocks and corresponding packed fingerprints in a second random manner defined by the second randomness defining key κ2 to generate a transformed super block and a transformed fingerprint; and a knowledge proof generating unit 1540 for generating a knowledge proof of the transformed super block. The archive 1500 also includes a memory 1550 for storing the information to be used or generated by the receiving unit 1510, the packaging unit 1520, the transforming unit 1530 and the knowledge proof generating unit 1540. However, those skilled in the art must be aware that the memory 1550 can be a separate unit as above or can be an/several integrated unit/units incorporated in the receiving unit 1510, the packaging unit 1520, the transforming unit 1530 and the knowledge proof generating unit 1540.
The knowledge proof generating unit 1540 may generate the knowledge proof of the transformed super block as the transformed super block itself. Alternatively, the knowledge proof generating unit 1540 may generate the knowledge proof of the transformed super block based on the public key and the transformed super block.
The challenge may further comprise a super block selecting key pair (κ3,Λ) to define which Λ super blocks and corresponding fingerprints, instead of all the n super blocks and corresponding fingerprints, will be selected by the packaging unit 1520 for data integrity proving.
The challenge may further comprise a repetition factor ψ, and the operations of the packaging unit 1520, the transforming unit 1530 and the knowledge proof generating unit 1540 are repeated the ψ times, each time generate one knowledge proof of the transformed super block which is denoted as an mth knowledge proof of the transformed super block Hm, m=1, 2, . . . , ψ.
The challenge may contain a digitally signed time stamp from a Time Stamping Authority (TSA).
Furthermore, at least one of the first and second randomness defining keys κ1 and κ2 and the super block selecting key κ3 is generated from the digitally signed time stamp.
Furthermore, the archive 1500 may further comprises: a sending unit 1560 for sending the transformed fingerprint(s) and the knowledge proof(s) of the transformed super block(s).
Verifier (Client or Third-Party Verifier)
FIG. 16 shows a block diagram of the verifier 1600 for implementing the present invention. Herein, the verifier 1600 is used as an apparatus for verifying data integrity. Also, as it is apparent for those skilled in the art, the verifier 1600 can be the client 1400 itself or a third-party verifier. In the former case where the verifier 1600 is the client 1400 itself, it means that the client 1400 includes a sub-system for fingerprinting data as shown in FIG. 14 and a sub-system for verifying data integrity as shown in FIG. 16. On the other hand, in the latter case where the verifier 1600 is a third-party verifier, it means that the third-party verifier is only necessary to have the structure as shown in FIG. 16 and the structure as shown in FIG. 14 is optional.
As shown in FIG. 16, the verifier 1600 includes: a challenge generating and sending unit 1610 for generating and sending a challenge comprising at least a first randomness defining key κ1 and a second randomness defining key κ2; a receiving unit 1620 for receiving a transformed fingerprint and a knowledge proof of the transformed super block; a locator packaging unit 1630 for constructing Φ boxes, randomly assigning the n locators Wk into the Φ boxes in the first random manner, each locator being put into one box, and generating Φ packed locators based on the above assignment of the n locators; an alleged knowledge proof generating unit 1640 for randomly transforming the Φ packed locators in the second random manner to generate a transformed locator, and generating an alleged knowledge proof of the transformed super block from the transformed fingerprint and the transformed locator; a comparator 1650 for comparing the alleged knowledge proof of the transformed super block with the received knowledge proof of the transformed super block; and a verifying unit 1660 for verifying the data integrity if the comparison result is positive. The verifier 1600 also includes a memory 1670 for storing the information to be used or generated by the challenge generating and sending unit 1610, the receiving unit 1620, the locator packaging unit 1630, the alleged knowledge proof generating unit 1640, the comparator 1650 and the verifying unit 1660. However, those skilled in the art must be aware that the memory 1670 can be a separate unit as above or can be an/several integrated unit/units incorporated in the challenge generating and sending unit 1610, the receiving unit 1620, the locator packaging unit 1630, the alleged knowledge proof generating unit 1640, the comparator 1650 and the verifying unit 1660.
The alleged knowledge proof generating unit 1640 may generate the alleged knowledge proof of the transformed super block based on the identifier zM for the data, the transformed fingerprint and the transformed locator.
The alleged knowledge proof generating unit 1640 may generate the alleged knowledge proof of the transformed super block further based on first and second private key χ and θ.
The challenge generated by the challenge generating and sending unit 1610 may further comprise a super block selecting key pair (κ3,Λ) to define which Λ locators, instead of all the n locators, will be selected by the locator packaging unit for data integrity verifying.
The challenge generated by the challenge generating and sending unit 1610 may further comprise a repetition factor ψ, and the operations of the locator packaging unit 1630, the alleged knowledge proof generating unit 1640 and the comparator 1650 are repeated the ψ times, and only if all the comparison results are positive, the verifying unit 1660 verifies the data integrity.
The challenge generated by the challenge generating and sending unit 1610 may contain a digitally signed time stamp from a Time Stamping Authority (TSA).
The challenge generating and sending unit 1610 determines at least one of the first and second randomness defining keys κ1 and κ2 and the super block selecting key κ3 from the digitally signed time stamp.
The foregoing description gives only the preferred embodiments of the present invention and is not intended to limit the present invention in any way. Thus, any modification, substitution, improvement or like made within the spirit and principle of the present invention should be encompassed by the scope of the present invention.

## Claims

1. A method of verifying data integrity comprising:
fingerprinting data, by a client, by:
dividing the data into N blocks Mi, i=1, 2 . . . , N;
combining each of nB blocks into a super block to obtain n=[N/nB] super blocks;
selecting nB elements hj, i=1, 2, . . . , nB, from a finite cyclic group G1=<g1>,
and generating a fingerprint Tk for the kth super block respectively, k=1, 2, . . . , n, by using a locator Wk for the kth super block, the selected nB elements hj and a first private key χ;

generating and sending, by a client, a challenge comprising at least a first randomness defining key κ1 and a second randomness defining key κ2;
generating and sending, by a server, a transformed fingerprint and a knowledge proof of the transformed super block by:
constructing Φ boxes;
randomly assigning the n fingerprints into the Φ boxes in a first random manner defined by the first randomness defining key κ1, each fingerprint being put into one box;
generating Φ packed super blocks and corresponding packed fingerprints based on the above assignment of the n fingerprints;
randomly transforming the Φ packed super blocks and corresponding packed fingerprints in a second random manner defined by the second randomness defining key κ2 to generate a transformed super block and a transformed fingerprint;
generating a knowledge proof of the transformed super block; and

verifying data integrity, by the client, by:
constructing Φ boxes;
randomly assigning the n locators Wk into the Φ boxes in the first random manner, each locator being put into one box;
generating Φ packed locators based on the above assignment of the n locators;
randomly transforming the Φ packed locators in the second random manner to generate a transformed locator;
generating an alleged knowledge proof of the transformed super block from the transformed fingerprint and the transformed locator; and
comparing the alleged knowledge proof of the transformed super block with the received knowledge proof of the transformed super block.

2. The method of verifying data integrity according to claim 1, wherein the alleged knowledge proof of the transformed super block is generated based on an identifier zM for the data, the transformed fingerprint and the transformed locator.

3. The method of verifying data integrity according to claim 1, wherein the challenge further comprises a super block selecting key pair (κ3,Λ) to define which Λ locators, instead of all the n locators, will be selected for data integrity verifying.

4. The method of verifying data integrity according to claim 1, wherein the challenge further comprises a repetition factor ψ, and the steps from the box constructing to the comparison of knowledge proof and alleged knowledge proof are repeated the ψ times, and only if all the comparison results are positive, the data integrity for the data is verified.

5. The method of verifying data integrity according to claim 1, wherein the nB elements hj are parts of a public key corresponding to the first private key χ.

6. The method of verifying data integrity according to claim 1, wherein the nB elements hj satisfy a relation of hj=g1rj where rj are secret keys.

7. The method of verifying data integrity according to claim 1, wherein the fingerprint Tk for the kth super block is generated according to




  
    T
    k
  
  =
  
    
      (
      
        
          W
          k
        
        ·
        
          
            ∏
            
              j
              =
              1
            
            
              n
              B
            
          
          ⁢
          
            h
            j
            
              M
              
                
                  
                    (
                    
                      k
                      -
                      1
                    
                    )
                  
                  ⋆
                  
                    n
                    B
                  
                
                +
                j
              
            
          
        
      
      )
    
    
      1
      
        x
        +
        
          z
          M
        
      
    
  



in which zM is an identifier for the data.

8. The method of verifying data integrity according to claim 1, wherein the fingerprint Tk for the kth super block is generated according to




  
    T
    k
  
  =
  
    
      
        (
        
          
            W
            k
          
          ·
          
            
              ∏
              
                j
                =
                1
              
              
                n
                B
              
            
            ⁢
            
              h
              j
              
                M
                
                  
                    
                      (
                      
                        k
                        -
                        1
                      
                      )
                    
                    ⋆
                    
                      n
                      B
                    
                  
                  +
                  j
                
              
            
          
        
        )
      
      x
    
    .

9. The method of verifying data integrity according to claim 1, wherein the knowledge proof of the transformed super block is the transformed super block itself.

10. The method of verifying data integrity according to claim 1, wherein the knowledge proof of the transformed super block is generated based on the public key and the transformed super block.

11. The method of verifying data integrity according to claim 1, wherein the challenge further comprises a super block selecting key pair (κ3,Λ) to define which Λ super blocks and corresponding fingerprints, instead of all the n super blocks and corresponding fingerprints, will be selected for data integrity proving.

12. The method of verifying data integrity according to claim 1, wherein the challenge further comprises a repetition factor ψ, and the steps from the box constructing to the knowledge proof generating are repeated the ψ times, each time generates one knowledge proof of the transformed super block which is denoted as an mth knowledge proof of the transformed super block Hm, m=1, 2, . . . , ψ.

13. The method of verifying data integrity according to claim 2, wherein the alleged knowledge proof of the transformed super block is generated further based on the first private keys χ and a second private key θ.

14. The method of verifying data integrity according to claim 2, wherein the identifier zM is changeable according to the data.

15. The method of verifying data integrity according to claim 2, wherein the alleged knowledge proof of the transformed super block is generated as


e(T,Yθ·g2θzM)·e(W,g2θ)

in which Yθ=Yθ, g2θ=g2θ, Y=g2θεG2; G2=<g2> is a finite cyclic group having an additional group G=<g> with G1=<g1> such that |G1|=|G2|=|G|=p where p is a large prime; e:G1×G2→G is a bilinear map function; T denotes the transformed fingerprint; W denotes the transformed locator; the locator Wk for the kth super block is a hash value taking at least k as an input; χ is the first private key and θ is a second private key; and
the alleged knowledge proof of the transformed super block is compared with the knowledge proof of the transformed super block as





  
    e
    ⁡
    
      (
      
        H
        ,
        
          g
          2
        
      
      )
    
  
  ⁢
  
    =
    ?
  
  ⁢
  
    
      e
      ⁡
      
        (
        
          T
          ,
          
            
              Y
              θ
            
            ·
            
              g
              
                2
                ⁢
                θ
              
              
                z
                M
              
            
          
        
        )
      
    
    ·
    
      e
      ⁡
      
        (
        
          W
          ,
          
            g
            
              2
              ⁢
              θ
            
          
        
        )
      
    
  



where H denotes the knowledge proof of the transformed super block.

16. The method of verifying data integrity according to claim 2, wherein the alleged knowledge proof of the transformed super block is generated as


e(T,Yθ)·e(W,g2θ)

in which Yθ=g2θ/z, g2θ=g2θ, Y=g2zεG2; G2=<g2> is a finite cyclic group having an additional group G=<g> with G1=<g1> such that |G1|=|G2|=|G|=p where p is a large prime; e:G1×→G is a bilinear map function; T denotes the transformed fingerprint; W denotes the transformed locator; the locator Wk for the kth super block is a hash value taking at least k and the identifier zM for the data as inputs; and χ and θ are the first and second private keys; and
the alleged knowledge proof of the transformed super block is compared with the knowledge proof of the transformed super block as





  
    e
    ⁡
    
      (
      
        H
        ,
        
          g
          2
        
      
      )
    
  
  ⁢
  
    =
    ?
  
  ⁢
  
    
      e
      ⁡
      
        (
        
          T
          ,
          
            Y
            θ
          
        
        )
      
    
    ·
    
      e
      ⁡
      
        (
        
          W
          ,
          
            g
            
              2
              ⁢
              θ
            
          
        
        )
      
    
  



where H denotes the knowledge proof of the transformed super block.

17. The method of verifying data integrity according to claim 13, wherein the alleged knowledge proof of the transformed super block is represented as


prf5((T1/χ·W)θ,

where T denotes the transformed fingerprint, and W denotes the transformed locator; and the locator Wk for the kth super block is a hash value taking at least k and the identifier zM for the data as inputs.

18. The method of verifying data integrity according to claim 13, wherein the alleged knowledge proof of the transformed super block is represented as


prf5((Tθ+zM·W)θ),

where T denotes the transformed fingerprint, and W denotes the transformed locator; and the locator Wk for the kth super block is a hash value taking at least k as an input.

19. The method of verifying data integrity according to claim 17, wherein the locator Wk for the kth super block further includes a data file name and/or a version number for the data.

20. The method of verifying data integrity according to claim 18, wherein the locator Wk for the kth super block further includes a data file name and/or a version number for the data.

21. The method of verifying data integrity according to claim 15, wherein the locator Wk for the kth super block further includes a data file name and/or a version number for the data.

22. The method of verifying data integrity according to claim 15, wherein the challenge further includes a verification acceleration factor ψ, k random numbers rkεZ⊂Zp are selected, where k=1, 2, . . . , ψ, and it computes and verifies that




  
    e
    ⁡
    
      (
      
        
          
            ∏
            
              k
              =
              1
            
            ψ
          
          ⁢
          
            H
            k
            
              r
              k
            
          
        
        ,
        
          g
          2
        
      
      )
    
  
  ⁢
  
    =
    ?
  
  ⁢
  
    
      e
      ⁡
      
        (
        
          
            
              ∏
              
                k
                =
                1
              
              ψ
            
            ⁢
            
              T
              k
              
                r
                k
              
            
          
          ,
          
            
              Y
              θ
            
            ·
            
              g
              
                2
                ⁢
                θ
              
              
                z
                M
              
            
          
        
        )
      
    
    ·
    
      
        e
        ⁡
        
          (
          
            
              
                ∏
                
                  k
                  =
                  1
                
                ψ
              
              ⁢
              
                W
                k
                
                  r
                  k
                
              
            
            ,
            
              g
              
                2
                ⁢
                θ
              
            
          
          )
        
      
      .

23. The method of verifying data integrity according to claim 16, wherein the locator Wk for the kth super block further includes a data file name and/or a version number for the data.

24. The method of verifying data integrity according to claim 16, wherein the identifier zM is changeable according to the data.

25. The method of verifying data integrity according to claim 16, wherein the challenge further includes a verification acceleration factor ψ, k random numbers rkεZ⊂Zp are selected, where k=1, 2, . . . , ψ, and it computes and verifies that




  
    e
    ⁡
    
      (
      
        
          
            ∏
            
              k
              =
              1
            
            ψ
          
          ⁢
          
            H
            k
            
              r
              k
            
          
        
        ,
        
          g
          2
        
      
      )
    
  
  ⁢
  
    =
    ?
  
  ⁢
  
    
      e
      ⁡
      
        (
        
          
            
              ∏
              
                k
                =
                1
              
              ψ
            
            ⁢
            
              T
              k
              
                r
                k
              
            
          
          ,
          
            Y
            θ
          
        
        )
      
    
    ·
    
      
        e
        ⁡
        
          (
          
            
              
                ∏
                
                  k
                  =
                  1
                
                ψ
              
              ⁢
              
                W
                k
                
                  r
                  k
                
              
            
            ,
            
              g
              
                2
                ⁢
                θ
              
            
          
          )
        
      
      .

26. The method of verifying data integrity according to claim 3, wherein the first and second randomness defining keys κ1 and κ2 and the super block selecting key pair (κ3,Λ) are selected by a verifier.

27. The method of verifying data integrity according to claim 26, wherein the challenge contains a digitally signed time stamp from a Time Stamping Authority (TSA).

28. The method of verifying data integrity according to claim 27, wherein at least one of the first and second randomness defining keys κ1 and κ2 and the super block selecting key κ3 is generated from the digitally signed time stamp.

29. An apparatus for verifying data integrity, comprising:
a super block generating unit which divides data into N blocks Mi, i=1, 2 . . . , N, and combines each of nB blocks into a super block to obtain n=[N/nB] super blocks;
a fingerprinting unit which selects nB elements hj, j=1, 2 . . . , nB, from a finite cyclic group G1=<g1> and generating a fingerprint Tk for the kth su per block respectively k=1, 2 . . . , n, by using a locator Wk for the kth super block, the selected nB elements hj and a first private key χ;
a challenge generating and sending unit which generates and sends a challenge comprising at least a first randomness defining key κi and a second randomness defining key κ2;
a challenge receiving unit which receives the challenge;
a packaging unit which constructs Φ boxes, randomly assigns the n fingerprints into the Φ boxes in a first random manner defined by the first randomness defining κ1, each fingerprint being put into one box, and generates Φ packed super blocks and corresponding packed fingerprints based on the above assignment of the n fingerprints;
a transforming unit which randomly transforms the Φ packed super blocks and corresponding packed fingerprints in a second random manner defined by the second randomness defining key κ2 to generate a transformed super and a transformed fingerprint;
a knowledge proof generating unit which generates a knowledge proof of the transformed super block and sends the knowledge proof of the transformed super block and the transformed fingerprint;
a receiving unit which receives the transformed fingerprint and the received knowledge proof of the transformed super block;
a locator packaging unit which constructs Φ boxes, randomly assigns the n locators Wk into the Φ boxes in the first random manner, each locator being put into one box, and generates Φ packed locators based on the above assignment of the n locators;
an alleged knowledge proof generating unit which randomly transforms the Φ packed locators in the second random manner to generate a transformed locator, and generates an alleged knowledge proof of the transformed super block from the transformed fingerprint and the transformed locator; and
a comparator which compares the alleged knowledge proof of the transformed super block with the received knowledge proof of the transformed super block.

30. The apparatus for verifying data integrity according to claim 29, wherein the alleged knowledge proof generating unit generates the alleged knowledge proof of the transformed super block based on an identifier zM for the data, the transformed fingerprint and the transformed locator.

31. The apparatus for verifying data integrity according to claim 29, wherein the challenge generated by the challenge generating and sending unit further comprises a super block selecting key pair (κ3,Λ) to define which Λ locators, instead of all the n locators, will be selected by the locator packaging unit for data integrity verifying.

32. The apparatus for verifying data integrity according to claim 29, wherein the challenge generated by the challenge generating and sending unit further comprises a repetition factor ψ, and the operations of the locator packaging unit, the alleged knowledge proof generating unit and the comparator are repeated the ψ times, and only if all the comparison results are positive, the verifying unit verifies the data integrity.

33. The apparatus for verifying data integrity according to claim 29, wherein the nB elements hj are parts of a public key corresponding to the first private key χ.

34. The apparatus for verifying data integrity according to claim 29, wherein the nB elements hj satisfy a relation of hj=g1rj, where rj are secret keys.

35. The apparatus for verifying data integrity according to claim 29, wherein the knowledge proof generating unit generates the knowledge proof of the transformed super block as the transformed super block itself.

36. The apparatus for verifying data integrity according to claim 29, wherein the knowledge proof generating unit generates the knowledge proof of the transformed super block based on the public key and the transformed super block.

37. The apparatus for verifying data integrity according to claim 29, wherein the challenge further comprises a super block selecting key pair (κ3,Λ) to define which Λ super blocks and corresponding fingerprints, instead of all the n super blocks and corresponding fingerprints, will be selected by the packaging unit for data integrity proving.

38. The apparatus for verifying data integrity according to claim 29, wherein the challenge further comprises a repetition factor w, and the operations of the packaging unit, the transforming unit and the knowledge proof generating unit are repeated the ψ times, each time generate one knowledge proof of the transformed super block which is denoted as an mth knowledge proof of the transformed super block Hm, m=1, 2, . . . , ψ.

39. The apparatus for verifying data integrity according to claim 30, wherein the alleged knowledge proof generating unit generates the alleged knowledge proof of the transformed super block further based on the first private key χ and a second private key θ.

40. The apparatus for verifying data integrity according to claim 31, wherein the challenge generated by the challenge generating and sending unit contains a digitally signed time stamp from a Time Stamping Authority (TSA).

41. The apparatus for verifying data integrity according to claim 40, wherein the challenge generating and sending unit determines at least one of the first and second randomness defining keys κ1 and κ2 and the super block selecting key κ3 from the digitally signed time stamp.

42. A data integrity verifying system, comprising:
an apparatus for proving data integrity including:
a receiving unit for receiving a challenge comprising at least a first randomness defining key κi and a second randomness defining key κ2;
a packaging unit for constructing Φ boxes, randomly assigning the n fingerprints into the Φ boxes in a first random manner defined by the first randomness defining key κ1, each fingerprint being put into one box, and generating Φ packed super blocks and corresponding packed fingerprints based on the above assignment of the n fingerprints;
a transforming unit for randomly transforming the Φ packed super blocks and corresponding packed fingerprints in a second random manner defined by the second randomness defining key κ2 to generate a transformed super block and a transformed fingerprint; and
a knowledge proof generating unit for generating a knowledge proof of the transformed super block; and

an apparatus for verifying data integrity including:
a challenge generating and sending unit for generating and sending a challenge comprising at least a first randomness defining key κ1 and a second randomness defining key κ2;
a receiving unit for receiving a transformed fingerprint and a knowledge proof of the transformed super block;
a locator packaging unit for constructing Φ boxes, randomly assigning the n locators Wk into the Φ boxes in the first random manner, each locator being put into one box, and generating Φ packed locators based on the above assignment of the n locators;
an alleged knowledge proof generating unit for randomly transforming the Φ packed locators in the second random manner to generate a transformed locator, and generating an alleged knowledge proof of the transformed super block from the transformed fingerprint and the transformed locator;
a comparator for comparing the alleged knowledge proof of the transformed super block with the received knowledge proof of the transformed super block; and
a verifying unit for verifying the data integrity if the comparison result is positive.

43. The data integrity verifying system according to claim 42, further comprising: an apparatus for fingerprinting data including:
a super block generating unit for dividing the data into N blocks Mi, i=1, 2, . . . , N, and combining each of nB blocks into a super block to obtain n=[N/nB] super blocks; and
a fingerprinting unit for selecting nB elements hj, j=1, 2, . . . , nB, from a finite cyclic group G1=<g1>, and generating a fingerprint Tk for the kth super block respectively, k=1, 2, . . . , n, by using a locator Wk for the kth super block, the selected nB elements hj and a first private key χ.

44. The data integrity verifying system according to claim 43, wherein the apparatus for fingerprinting data is also used as the apparatus for verifying data integrity.

45. The method of verifying data integrity according to claim 7, wherein the locator Wk for the kth super block is a hash value taking at least k as an input.

46. The method of verifying data integrity according to claim 8, wherein the locator Wk for the kth super block is a hash value taking at least k and an identifier zM for the data as inputs.

47. The method of verifying data integrity according to claim 45 or 46, wherein the locator Wk for the kth super block further includes a data file name and/or a version number for the data.

48. The method of verifying data integrity according to claim 7 or 46, wherein the identifier zM is changeable according to the data.

49. The method of verifying data integrity according to claim 10, wherein the knowledge proof of the transformed super block H is represented as




  H
  =
  
    
      ∏
      
        j
        =
        1
      
      
        n
        B
      
    
    ⁢
    
      H
      j
      
        E
        j
      
    
  



in which Hj=hjθ, where θ is a second private key, and Ej is the transformed super block.

50. The method of verifying data integrity according to claim 10, wherein the knowledge proof of the transformed super block H is represented as




  H
  =
  
    
      prf
      5
    
    ⁡
    
      (
      
        
          ∏
          
            j
            =
            1
          
          
            n
            B
          
        
        ⁢
        
          H
          j
          
            E
            j
          
        
      
      )
    
  



in which Hj=hjθ, where θ is a second private key, Ej is the transformed super block, and prf5(•) denotes a pseudo random function.

51. The method of verifying data integrity according to claim 11, wherein the first and second randomness defining keys κ1 and κ2 and the super block selecting key pair (κ3,Λ) are selected by a verifier.

52. The method of verifying data integrity according to claim 12, wherein the number of Φ equals to 2φ, where φ=[l/ψ]+1, and l is a security level factor that determines the security level of the method.

53. The method of verifying data integrity according to claim 51, wherein the challenge contains a digitally signed time stamp from a Time Stamping Authority (TSA).

54. The method of verifying data integrity according to claim 53, wherein at least one of the first and second randomness defining keys κ1 and κ2 and the super block selecting key κ3 is generated from the digitally signed time stamp.

55. The apparatus for verifying data integrity according to claim 37, wherein the challenge contains a digitally signed time stamp from a Time Stamping Authority (TSA).

56. The apparatus for verifying data integrity according to claim 55, wherein at least one of the first and second randomness defining keys κ1 and κ2 and the super block selecting key κ3 is generated from the digitally signed time stamp.