Data can be securely stored by distributing it across a network of machines which are interconnected. One efficient way to do this is to use network coding of the data and distribute linear combinations of packets to each neighbor of a node, and so forth, so that the data from each machine is propagated throughout the network, and can be recovered from any of a number of other machines. Thus linear combinations of the data for one user would be stored on many machines, and the problem is to ensure that none of the data is corrupted or polluted when returned to the original user. A malicious user may inject garbage into a network intentionally to corrupt some packets of data; alternatively, a software error or hardware malfunction may corrupt some packets of data. In addition, recombining packets in network coding at a subsequent node may distribute the corrupted data throughout the network causing more content to be polluted.
Systems and methods for security against corruption for networked storage are described. In one aspect, a destination device receives a linear combination of packets. The linear combination of packets represents digitally signed blocks of content and public information used to digitally sign segmented blocks of content. The destination device recombines the linear combination of packets to compute new valid signatures as linear combinations of received homomorphic digital signatures. The new valid signatures are for verifying by a requesting computing device recovering data associated with at least a subset of the linear combination of packets, integrity of the at least a subset. This provides the requesting node with security against corruption of data in networked storage.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the detailed description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
In the Figures, the left-most digit of a component reference number identifies the particular Figure in which the component first appears.
Systems (e.g., systems, apparatus, computer-readable media, etc.) and methods for security against corruption for networked storage are described below in reference to
Although not required, the systems and methods for security against corruption for networked storage are described in the general context of computer-executable instructions (program modules) being executed by a computing device such as a personal computer. Program modules generally include routines, programs, objects, components, data structures, etc., that perform particular tasks or implement particular abstract data types. While the systems and methods are described in the foregoing context, acts and operations described hereinafter may also be implemented in hardware.
In this example, coding module 116-1 of server 102 initially segments content for distribution into smaller blocks of data. These block segments are shown as respective portions of segmented content (or packets) in “other data” 120-1. Coding module 116-1 converts the packets to vectors in a finite dimensional vector space over a large prime field of cryptographic size. More particularly, coding module 116-1 computes a respective homomorphic digital signature 122-1 for each of block segment using a digital signature scheme, and signs the block segment with the respective signature 122-1 to create a respective signed block 124-1. In system 100, a homomorphism is shown when a result obtained by adding two vectors in a vector space and hashing to an elliptic curve is the same as the sum of the respective hashes of the two vectors on that elliptic curve. An exemplary such scheme to sign the block segments is described below in the section titled “Exemplary Homomorphic Signature Scheme.” Server 102 communicates the signed blocks 124-1 as a linear combination of packets (or vectors) across network 104 to one or more neighboring nodes (i.e., client devices 106). Exemplary network coding operations to generate such a linear combination of packets are described in greater detail below in the section titled “Network Coding Model.”
Responsive to receiving the random linear combinations of packets comprising the signed blocks 124-1, a node 106 verifies the signature of the server 102 for each signed block 118. An exemplary such verification process based on bilinearity of the Weil-pairing is described below in the section titled “Exemplary Homomorphic Signature Scheme.” These verification operations allow the client device 106 to identify a dishonest server 102 within content distribution system 100. Responsive to verifying and authenticating each signed block 124-1, and if the node 106 is designated by the packets as the final destination for the received random linear combination of packets, the node recombines the received blocks/packets and computes new valid holographic digital signatures 122-2 as linear combinations of the received signatures.
If client device 106 is not designated by the linear combination of packets as being the final recipient for the received content, and if the received content has been successfully verified and authenticated, coding module 116-2, which knows the digital signatures of some of the received content: (a) re-signs the received content; and (b) redistributes the newly re-signed content as a new linear combination of packets (a respective portion of “other data” 116-2) to a different client device 106. This process is iterative until a respective client device 106 is a final destination for content in a linear combination of packets received from either a server 102 and/or a client device 106. These latter operations allow a data receiving client device 106 to sign packets combined at various nodes in the network 104 without contacting the source (e.g., server 102 and/or another client device 106) to sign the packets in the new linear combination of packets.
To recover a received combination of packets from a set of nodes 106 and ensure integrity, a node 106 uploads the combination of packets from corresponding nodes 106 and checks the corresponding homomorphic digital signatures 122-2 on the received packets. Any node 106 receiving data with an invalid signature 122-2 discards the received data instead of recombining it with other received packets. The received data is different packets from different users (neighbors or peers). Each received packet is a linear combination of other packets (recombined at the previous peer). In this manner, system 100 guarantees integrity of data recovered from any other node 106 or 102 in network 104.
This section presents aspects of elliptic curves over finite fields. An elliptic curve E over a finite field Fq (this is sometimes abbreviated as E/Fq). Referring to the finite field, q>3 is a power of a prime, and a projective curve in P2(Fq) is given by an equation of the form
Y
2
Z=X
3
+AXZ+BZ
3,
with A,BεFq and 4A3+27B2≠0. The curve has two affine pieces: the piece with Z≠0 has the affine form y2=x3+Ax+B (obtained by setting x=X/Z and y=Y/Z); and the piece with Z=0 which has only one (projective) point namely (0:1:0) which we denote O. Let K be a field (not necessarily finite) that contains Fq, the set
E(K)={(x,y)εK×K:y2=x3+Ax+B}∪{O}
can be given the structure of an abelian group with O as the identity of the group. Moreover, the group operations can be efficiently computed in particular, if P,Q are points on E with coordinates in Fq, then P+Q and −P can be computed in O(log1+ε q) bit operations for any ε>0. Hasse's theorem gives a tight estimate for the size of the group E(Fq):
q+1−2√{square root over (q)}≦#E(Fq)≦q+1+2√{square root over (q)}.
The Schoof-Elkies-Atkin algorithm is a deterministic polynomial time algorithm that computes #E(Fq).
Let E/Fq be an elliptic curve and let
E[m]=Z/mZ×Z/mZ.
There is a map em:E[m]×E[m]→
e
m(S1+S2,T)=e(S1,T)e(S2,T)
e
m(S,T1+T2)=e(S,T1)e(S,T2).
Let E/Fq be an elliptic curve and let S, T be two m-torsion points on E with coordinates in Fq. Then there is a deterministic algorithm that can evaluate em(S,T) in O(log m log1+ε q) bit operations. When clear from the context, the subscript m is dropped when writing em.
A standard network coding framework for content distribution follows. Let G=(V,E) be a directed graph. A source sεV (e.g., a server 102 and/or a client 106) wishes to transmit some data (content for distribution) to a set T⊂V of the vertices. One chooses a vector space W/F (say of dimension d) and views the data to be transmitted (e.g., segmented content) as a bunch of vectors w1, . . . , wkεW. The source then creates the augmented vectors v1, . . . , vk by setting
where wij is the j-th coordinate of the vector wi. One can assume without loss of generality that the vectors vi are linearly independent. We denote the subspace (of Fpk+d) spanned by these vectors by V. Each edge eεE computes a linear combination, y(e), of the vectors entering the vertex v=in(e), that is to say
where meεFp. We consider the source as having k input edges carrying the k vectors wi. By induction one has that the vector y(e) on any edge is a linear combination y(e)=Σ1≦i≦kgi(e)vi and is a vector in V. The k-dimensional vector g(e)=g1(e), . . . , gk(e) is simply the first k-coordinates of the vector y(e). We call the matrix whose rows are the vectors g(e1), . . . , g(ek), where ei are the incoming edges for a tεT, as the global encoding matrix for t and denote it Gt. In practice the encoding vectors are chosen at random so the matrix Gt is invertible with high probability. Thus any receiver, on receiving y1, . . . , yk can find w1, . . . , wk by solving
where the yi are the vectors formed by removing the first k coordinates of the vector yi.
Network coding module 116 (i.e., coding modules 116-1, 116-2, through 116-N; there can be any number N of nodes 106) implements the following exemplary homomorphic signature scheme. Let p be a prime number (shown as respective portions of “other program data” 120) and q a power of a different prime with p<<q. Let V/Fp be a vector space of dimension d+k and let E/Fq be an elliptic curve such that R1, . . . , Rk, P1, . . . , Pd are all (distinct) points of p−torsion on E(Fq). We can define a function hR
The function hR
Suppose the server 102 (or the client 106) wishes to distribute v1, . . . , vkεV to a client device 106, the server chooses s1, . . . , sk and r1, . . . , rd which are secret in Fp. Such secrets are shown as respective portions of “other program data” 120. Server 102 then signs the packet vi (i.e., signed blocks 124) by computing
h
i
=h
s
R
, . . . , s
R
, r
P
, . . . , r
P
(vi).
The server publishes R1, . . . , Rk, P1, . . . , Pd, Q, sjQ for 1≦j≦k and riQ for 1≦i≦d (i.e., server published data portion of “other program data” 120). Here Q is another point of p-torsion on the elliptic curve distinct from the others such that ep(Rj,Q)≠1 and ep(Pi,Q)≠1 for 1≦j≦k and 1≦i≦d.
This signature hj (i.e., a homomorphic digital signature 122) is also appended to the data vj and transmitted according to the distribution scheme. Now, at any edge e that computes
coding module 116 also computes
and transmits h(e) together with the data y(e) as a linear combination of packets. Since the computation of the signature h(e) is a homomorphism, we have that if y(e)=Σiαivi then
Next we describe the verification process implemented by a respective client device 106. Suppose y(e)=u1, . . . , uk, v1, . . . , vd, security against corruption for networked storage module 116-2 determines whether
This works because if h(e) is the legitimate signature of y(e) then by definition
The verification uses the bilinearity of the Weil-pairing. Note that all the terms in the above verification can either be computed from the vector y(e) or from the public information.
The signature 122 is a point on the elliptic curve with coordinates in Fq, thus the size of the signature is O(log q) bits and this is the transmission overhead. The computation of the signature h(e) requires O(din log p log1+ε q) bit operations where din is the in-degree of in(e). The verification of a signature requires O((d+k)log p log1+ε q) bit operations.
Notation of the previous section is also used in this section. To thwart the described signature scheme, an adversary can either produce a hash collision for the function hs
Problem: Hash-Collision. Fix an integer r>1. Input: Given P1, . . . , Pr, points in a cyclic subgroup of order p (a prime) on an elliptic curve E/Fq. Output: Tuples a=(a1, . . . , ar), b=(b1, . . . , br)εFpr such that a≠b and
Proposition 1. There is a polynomial time reduction from Discrete Log on the cyclic group of order p on elliptic curves to H
Proof: First we treat the case when r=2. Let P and Q be points of order p on E(Fq) that are not the identity. Assume that Q lies in the subgroup generated by P. Our aim is to find a such that Q=aP, to this end we apply the alleged algorithm that solves Hash-Collision to the points P and Q. The algorithm produces two distinct pairs (x,y),(u,v)εFp2 such that
xP+yQ=uP+vQ.
This gives us a relation (x−u)P+(y−v)Q=O. We claim that x≠u and y≠v. Suppose that x=u, then we would have (y−v)Q=O, but Q is a point of order p (a prime) thus y−u≡0 mod p in other words y=v in Fp. This contradicts the assumption that (x,y) and (u,v) are distinct pairs in Fp2. Thus we have that Q=−(x−u)(y−v)−1P, where the inverse is taken modulo p.
If we have r>2 then we can do one of two things. Either we can take P1=P and P2=Q as before and set Pi=O for i>2 (in this case the proof reduces to the case when r=2), or we can take P1=r1P and Pi=riQ where ri are chosen at random from Fp. We get one equation in one unknown (the discrete log of Q). It is quite possible that the equation we get does not involve the unknown. However, this happens with very small probability as we argue next. Suppose the algorithm for H
then as long as Σ2≦i≦rbiri≢0 mod p, we can solve for the discrete log of Q. But the ri's are unknown to the oracle for Hash-Collision and so we can interchange the order in which this process occurs. In other words, given bi, for 2≦i≦r, what is the probability that the ri's we chose satisfy Σ2≦i≦rbiri=0? It is clear that the latter probability is 1/p. Thus with high probability we can solve for the discrete log of Q.
One can also conclude the above proposition from the proof presented in Bellare, M.; Goldreich, O.; Goldwasser, S.; Incremental cryptography: The case of hashing and signing, in Advances in Cryptology CRYPTO'94, Santa Barbara, Calif., 1994. This proof deals with finite fields but the argument applies equally well to the case of elliptic curves.
We have shown that producing hash collisions in the scheme implemented by digital signature for network coding module 116 is difficult. The other method by which an adversary can foil the scheme is by forging a signature. However, forging a signature is at least as hard as solving the so-called computational co-Diffie-Hellman problem on the elliptic curve. The only known way to solve this problem on elliptic curves is via computing discrete-logs. Thus forging a signature is at least as hard as solving the computational co-Diffie-Hellman on elliptic curves and probably as hard as computing discrete-logs.
The notation presented above when describing the network coding model and exemplary homomorphic signature scheme is also utilized in this section. To initialize the signature scheme module 116 of
In summary:
Find an extension Fq of the field Fl such that E[p]⊂E(Fq) (here E[p] refers to the set of all p-torsion points).
In general, if we have an elliptic curve E over a finite field K then the p-torsion points could be defined over an extension of degree Θ(p2) over the field K. The p-torsion points are defined over a small field so that the operations of module 116 can be carried out in polynomial time. In this section we discuss how one can pick a suitable field Fl and an elliptic curve over this field that has all its p-torsion defined over a small relative extension of the base field.
The known theory of complex multiplication of elliptic curves can be used to generate elliptic curves over a finite field with a certain number of points on them. The details of this algorithm are not necessary for our usage but, its running time is utilized, so we describe it next. Suppose we wish to produce an elliptic curve E/Fl (where l is a prime) that has exactly N points, where N lies in the interval l+1−2√{square root over (l)}≦N≦l+1+2√{square root over (l)}. Write N as l+1−t and set Dy2=t2−4l, where D or D/4 is squarefree (note that D is negative because of the Hasse bound). Then the algorithm to produce such a curve runs in time |D|O(1).
In system 100, an elliptic curve is sought with a small multiple of p points, this tells us that the field Fl over which we should look for such a curve must have l+1−2√{square root over (l)}≦mp≦l+1+2√{square root over (l)}. Additionally, t2−4l should have a small squarefree part, since this determines the running time of the method to generate such a curve. A prime l is selected such that 4l=4p2−Dy2 for a small (negative) D and also l≡−1 mod p; and we set t=2p. Thus l+1−t=l+1−2p≡0 mod p and so the number of points on the elliptic curve will be a multiple of p and the time to produce such a curve will also be reasonable since |D| is small.
To produce such a prime l, a (negative) D (with |D| small) is selected. It is determined whether ¼(p2−Dy2) is prime for y=0, 1, . . . . Since we are only interested in primes that are ≡−1 mod p, the above check is performed only for those values of y such that −Dy2≡−4 mod p. A conjecture of Lang-Trotter tells us that there will be many values of y that yield a prime. This is also related to a conjecture of Hardy-Littlewood on the prime values of quadratic polynomials. Now the complex multiplication method produces for us an elliptic curve E over Fl that has some p-torsion points. However, we need an elliptic curve such that E[p] is defined over a small degree extension of Fl. This is where the additional constraint that l≡−1 mod p is used. Since l≡−1 mod p the order of l in F*p is 2. Now a theorem of Koblitz-Balasubramanian shows that in this case the entire p-torsion is defined over a degree 2 extension over the base field, in other words E[p]⊂Fl
Remark 1. The theory of complex multiplication tells us that the curve E depends only on the quantity D. More precisely, for each D there is a finite list of elliptic curves E1, . . . , Em over a number field K such that E mod l satisfies our requirements. This is illustrated below in the section titled “Example”.
Let E/Fl be the elliptic curve identified using the method given above. Then #E(Fl)=l+1−2p, and let m be the largest divisor of #E(Fl) that is relatively prime to p. Let P be a random point on the curve E(Fl). Suppose mP≠O, then mP is a point of p-power torsion (by Lagrange's theorem). Let i≧1 be the smallest integer such that mpiP=O but mpu−1P≠O. Then mpi−1P is a point of p-torsion. Of course, if we found that mP=O we repeat by finding another random point P. The probability that for a random point P, mP=O is at most 1/p and so we will find a non-trivial point of p-torsion with very high probability.
This gives us the piece of the p-torsion defined over Fl. To find the piece of the p-torsion defined over Fl
φ2−2pφ+l=0.
This example was produced using the computer algebra package MAGMA. For this example we take D=−4. For any prime p, a suitable prime l is one that satisfies 4l=4p2+4y2 such that l≡−1 mod p. The congruence implies that y2=−1 mod p, in other words −1 should be a quadratic residue mod p. This in turn implies that p=1 mod 4, and that values of y that we need to search should be congruent to one of the square roots of −1 mod p.
Let p be a prime as follows:
26330018368571742206574632566065508402231508999153.
We search for prime values of p2+y2 with special properties. The complex multiplication method tells us that the elliptic curve
E:y
2
=x
3
+x(in affine form)
is a suitable elliptic curve. MAGMA tells us that #E(F) is:
3516881927290816899634862215683448167044556755196219863066511191456976613264142 847616337439963943072004,
which is indeed ≡0 mod p. The number of points on E(Fl
1236845849050477072586861412005782314655826646818745936122594860084650180144846 0142653837393007842909634176991355780216434931187550854726269234703885776384142 268869493894468081319453336772812036965744626464,
and this is ≡0 mod p2, which is a necessary condition for E[p] being a subgroup of E(Fl
P=(276701049983509532234106338452082440292711762773463732533683876759414814860205 8330843763239769722154862,736895619074862870441993260428363309212341952700619 999020137331297834986221601940750818713297548511336)
Q=(170343693342782875614389009934880452275069084044323551866473740367532495756430 3078396992524604785250333u+15712887469866185499501681171672209515250776009 77567312986377817436996986291386148589353156799909434396, 293262979414624776596432402939618431893907517428095829765520553326321029472 565240814005665686795414190u+28272291365284541630011849371574061637952 191623737718932812446648142173368705416653836715431228856385081).
Here u is a variable that gives the isomorphism Fl
e
p(P,Q)=18803618029983537254653390382035462993205409477769908010460 37660415779359581593172656075406185808275672u+31284655683961117025378938265048897550540714 78912095275807108199402549356171889616725860797979581965315.
The block 202, a server 102 digitally signs respective ones of a set of segmented blocks of content for distribution with respective homomorphic digital signatures 122 (
At block 204, server 102 distributes the packets along with public information (e.g., certain distinct prime number (p) torsion points on the elliptic curve) used to sign the segmented content encapsulated in the packets, across network 104 to a destination device (e.g., a respective client device 106). The packets and information are distributed using a distribution scheme. In one implementation, the distribution scheme is a network coding distribution scheme. Secret information such as secret keys and hash digests, which were used in the operations of block 202 to digitally sign the segmented content (i.e. vectors), are not distributed by server 102 with the linear combination of packets and the public information.
At block 206, a client device 106 receives one or more of the distributed linear combination of packets. At block 208, the client device 106 verifies and authenticates content encapsulated in the received packets using the public information distributed by the server along with the received packets. At block 210, the client device 106 determines whether it is the final destination device for receipt of the received packets. If not, operations continue at block 202 as described above (and as illustrated by on-page reference “A”), wherein the client device 106, in effect, becomes the server 102. More particularly, in this scenario, the client device 106, knowing the digital signatures of some of the linear combination of packets, the client device 106 can produce a signature of any linear combination of the packets (i.e., the received packets). This allows the client device 106 to digitally re-sign the packets without contacting the source (i.e. in this iteration, server 102). Additionally, this allows the client device to detect any node (e.g., a server 102 and/or a client 106) that maliciously claimed that linear combination of inputs was sent, when in fact the node injected some other data or garbage. With this in mind, the client device distributes the re-signed packets in a new linear combination, along with associated public information used to digitally sign the segmented blocks, to the destination device. The operations of blocks 202 through 210 are interactively repeated by any number of servers 102 and client devices 106 until the distributed content has reached the destination device.
At block 210, if client device 106 determines it is the final destination device for receipt of the received packets, operations of procedure 200 continue at block 302 of
Operations of block 306, responsive to receiving request(s) from a node 106 for specific ones of the received packets (i.e., corresponding data), communicates the requested data along with the corresponding new digital signature(s) (i.e. signed block(s) 124-2) To the requesting node 106. The requesting node 106 verifies and authenticates whether the received data has been corrupted or otherwise polluted since it was sent by the original user (e.g., please see block 204 of
Operations of block 406 discard, by the receiving node, any received data packet with an invalid signature. Operations of block 408 recombined packets with valid signatures for processing of data to be presented by user or otherwise consumed by a computer program application to perform one or actions. For instance, the recombined packets could represent; a video stream that is displayed to the user by means of media player software such as Windows Media Player; or an installer package that can be executed to install or update software on the user's machine; or backed information that is transmitted to the user machine to perform a restore operation following the loss of some previously backed up user data, etc. There are many other such examples. The particular operations for processing the data or for consuming the data to perform one or more actions are completely arbitrary being a function of the particular computer-program module requesting the data. There are many known practical and tangible uses for data retrieved from network nodes.
Although the above sections describe security against corruption for networked storage in language specific to structural features and/or methodological operations or actions, the implementations defined in the appended claims are not necessarily limited to the specific features or actions described. Rather, the specific features and operations for security against corruption for networked storage described above are exemplary forms of implementing the claimed subject matter.