Secret sharing using the Chinese remainder theorem

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

Secret sharing consists of recovering a secret SScript error: No such module "Check for unknown parameters". from a set of shares, each containing partial information about the secret. The Chinese remainder theorem (CRT) states that for a given system of simultaneous congruence equations, the solution is unique in some Z/nZScript error: No such module "Check for unknown parameters"., with n > 0Script error: No such module "Check for unknown parameters". under some appropriate conditions on the congruences. Secret sharing can thus use the CRT to produce the shares presented in the congruence equations and the secret could be recovered by solving the system of congruences to get the unique solution, which will be the secret to recover.

Secret sharing schemes: several types

Script error: No such module "Labelled list hatnote". There are several types of secret sharing schemes. The most basic types are the so-called threshold schemes, where only the cardinality of the set of shares matters. In other words, given a secret SScript error: No such module "Check for unknown parameters"., and nScript error: No such module "Check for unknown parameters". shares, any set of tScript error: No such module "Check for unknown parameters". shares is a set with the smallest cardinality from which the secret can be recovered, in the sense that any set of t − 1Script error: No such module "Check for unknown parameters". shares is not enough to give SScript error: No such module "Check for unknown parameters".. This is known as a threshold access structure. We call such schemes (t, n)Script error: No such module "Check for unknown parameters". threshold secret sharing schemes, or tScript error: No such module "Check for unknown parameters".-out-of-nScript error: No such module "Check for unknown parameters". scheme.

Threshold secret sharing schemes differ from one another by the method of generating the shares, starting from a certain secret. The first ones are Shamir's threshold secret sharing scheme, which is based on polynomial interpolation in order to find SScript error: No such module "Check for unknown parameters". from a given set of shares, and George Blakley's geometric secret sharing scheme, which uses geometric methods to recover the secret SScript error: No such module "Check for unknown parameters".. Threshold secret sharing schemes based on the CRT are due to Mignotte and Asmuth–Bloom, they use special sequences of integers along with the CRT.

Chinese remainder theorem

Script error: No such module "Labelled list hatnote". Let k2,m1,...,mk2, and b1,...,bk𝐙. The system of congruences

{xb1 mod m1xbk mod mk

has solutions in ZScript error: No such module "Check for unknown parameters". if and only if bibjmod(mi,mj) for all 1i,jk, where (mi,mj) denotes the greatest common divisor (GCD) of miScript error: No such module "Check for unknown parameters". and mjScript error: No such module "Check for unknown parameters".. Furthermore, under these conditions, the system has a unique solution in Z/nZScript error: No such module "Check for unknown parameters". where n=[m1,...,mk], which denotes the least common multiple (LCM) of m1,...,mk.

Secret sharing using the CRT

Since the Chinese remainder theorem provides us with a method to uniquely determine a number S modulo k-many relatively prime integers m1,m2,...,mk, given that S<i=1kmi, then, the idea is to construct a scheme that will determine the secret SScript error: No such module "Check for unknown parameters". given any kScript error: No such module "Check for unknown parameters". shares (in this case, the remainder of SScript error: No such module "Check for unknown parameters". modulo each of the numbers miScript error: No such module "Check for unknown parameters".), but will not reveal the secret given less than kScript error: No such module "Check for unknown parameters". of such shares.

Ultimately, we choose nScript error: No such module "Check for unknown parameters". relatively prime integers m1<m2<...<mn such that SScript error: No such module "Check for unknown parameters". is smaller than the product of any choice of kScript error: No such module "Check for unknown parameters". of these integers, but at the same time is greater than any choice of k − 1Script error: No such module "Check for unknown parameters". of them. Then the shares s1,s2,...,sn are defined by si=Smod mi for i=1,2,...,n. In this manner, thanks to the CRT, we can uniquely determine SScript error: No such module "Check for unknown parameters". from any set of kScript error: No such module "Check for unknown parameters". or more shares, but not from less than kScript error: No such module "Check for unknown parameters".. This provides the so-called threshold access structure.

This condition on SScript error: No such module "Check for unknown parameters". can also be regarded as

i=nk+2nmi<S<i=1kmi.

Since SScript error: No such module "Check for unknown parameters". is smaller than the smallest product of kScript error: No such module "Check for unknown parameters". of the integers, it will be smaller than the product of any kScript error: No such module "Check for unknown parameters". of them. Also, being greater than the product of the greatest k − 1Script error: No such module "Check for unknown parameters". integers, it will be greater than the product of any k − 1Script error: No such module "Check for unknown parameters". of them.

There are two secret sharing schemes that utilize essentially this idea, the Mignotte and Asmuth–Bloom schemes, which are explained below.

Mignotte threshold secret sharing scheme

As said before, the Mignotte threshold secret sharing scheme uses, along with the CRT, special sequences of integers called the (k, n)Script error: No such module "Check for unknown parameters".-Mignotte sequences which consist of nScript error: No such module "Check for unknown parameters". integers, pairwise coprime, such that the product of the smallest kScript error: No such module "Check for unknown parameters". of them is greater than the product of the k − 1Script error: No such module "Check for unknown parameters". biggest ones. This condition is crucial because the scheme is built on choosing the secret as an integer between the two products, and this condition ensures that at least kScript error: No such module "Check for unknown parameters". shares are needed to fully recover the secret, no matter how they are chosen.

Formally, let 2 ≤ knScript error: No such module "Check for unknown parameters". be integers. A (k, n)Script error: No such module "Check for unknown parameters".-Mignotte sequence is a strictly increasing sequence of positive integers m1<<mn, with (mi,mj)=1 for all 1 ≤ i < jnScript error: No such module "Check for unknown parameters"., such that mnk+2mn<m1mk. Let α=mnk+2mn and β=m1mk; we call the integers lying strictly between α and β the authorized range. We build a (k, n)Script error: No such module "Check for unknown parameters".-threshold secret sharing scheme as follows: We choose the secret SScript error: No such module "Check for unknown parameters". as a random integer α<S<β in the authorized range. We compute, for every 1 ≤ inScript error: No such module "Check for unknown parameters"., the reduction modulo miScript error: No such module "Check for unknown parameters". of SScript error: No such module "Check for unknown parameters". that we call siScript error: No such module "Check for unknown parameters"., these are the shares. Now, for any kScript error: No such module "Check for unknown parameters". different shares si1,,sik, we consider the system of congruences:

{xsi1 mod mi1xsik mod mik

By the Chinese remainder theorem, since mi1,,mik are pairwise coprime, the system has a unique solution modulo mi1mik. By the construction of our shares, this solution is nothing but the secret SScript error: No such module "Check for unknown parameters". to recover.

Asmuth–Bloom threshold secret sharing scheme

This scheme also uses special sequences of integers. Let 2 ≤ knScript error: No such module "Check for unknown parameters". be integers. We consider a sequence of pairwise coprime positive integers m0<...<mn such that m0mnk+2mn<m1mk. For this given sequence, we choose the secret S as a random integer in the set Z/m0ZScript error: No such module "Check for unknown parameters"..

We then pick a random integer Template:Mvar such that S+αm0<m1mk. We compute the reduction modulo miScript error: No such module "Check for unknown parameters". of S+αm0, for all 1 ≤ inScript error: No such module "Check for unknown parameters"., these are the shares Ii=(si,mi). Now, for any kScript error: No such module "Check for unknown parameters". different shares Ii1,...,Iik, we consider the system of congruences:

{xsi1 mod mi1xsik mod mik

By the Chinese remainder theorem, since mi1,...,mik are pairwise coprime, the system has a unique solution S0Script error: No such module "Check for unknown parameters". modulo mi1mik. By the construction of our shares, the secret S is the reduction modulo m0Script error: No such module "Check for unknown parameters". of S0Script error: No such module "Check for unknown parameters"..

It is important to notice that the Mignotte (k, n)Script error: No such module "Check for unknown parameters".-threshold secret-sharing scheme is not perfect in the sense that a set of less than kScript error: No such module "Check for unknown parameters". shares contains some information about the secret. The Asmuth–Bloom scheme is perfect: Template:Mvar is independent of the secret Template:Mvar and

i=nk+2nmiα}<i=1kmim0

Therefore Template:Mvar can be any integer modulo

i=nk+2nmi.

This product of k − 1Script error: No such module "Check for unknown parameters". moduli is the largest of any of the nScript error: No such module "Check for unknown parameters". choose k − 1Script error: No such module "Check for unknown parameters". possible products, therefore any subset of k − 1Script error: No such module "Check for unknown parameters". equivalences can be any integer modulo its product, and no information from Template:Mvar is leaked.

Example

The following is an example on the Asmuth–Bloom scheme. For practical purposes we choose small values for all parameters. We choose k = 3Script error: No such module "Check for unknown parameters". and n = 4Script error: No such module "Check for unknown parameters".. Our pairwise coprime integers being m0=3,m1=11,m2=13,m3=17 and m4=19. They satisfy the Asmuth–Bloom required sequence because 31719<111317.

Say our secret Template:Mvar is 2. Pick α=51, satisfying the required condition for the Asmuth–Bloom scheme. Then 2+513=155 and we compute the shares for each of the integers 11, 13, 17 and 19. They are respectively 1, 12, 2 and 3. We consider one possible set of 3 shares: among the 4 possible sets of 3 shares we take the set Template:Mset and show that it recovers the secret S = 2Script error: No such module "Check for unknown parameters".. Consider the following system of congruences:

{x1 mod 11x12 mod 13x2 mod 17

To solve the system, let M=111317. From a constructive algorithm for solving such a system, we know that a solution to the system is x0=1e1+12e2+2e3, where each eiScript error: No such module "Check for unknown parameters". is found as follows:

By Bézout's identity, since (mi,M/mi)=1, there exist positive integers riScript error: No such module "Check for unknown parameters". and siScript error: No such module "Check for unknown parameters"., that can be found using the Extended Euclidean algorithm, such that ri.mi+si.M/mi=1. Set ei=siM/mi.

From the identities 1=12212011=(5)187+7213=5143+(42)17, we get that e1=221,e2=935,e3=715, and the unique solution modulo 111317 is 155. Finally, S=1552mod3.

See also

References

<templatestyles src="Refbegin/styles.css" />

  • Oded Goldreich, Dana Ron and Madhu Sudan, Chinese Remaindering with Errors, IEEE Transactions on Information Theory, Vol. 46, No. 4, July 2000, pages 1330-1338.
  • Mignotte M. (1983) How to Share a Secret. In: Beth T. (eds) Cryptography. EUROCRYPT 1982. Lecture Notes in Computer Science, vol 149. Springer, Berlin, Heidelberg.
  • C.A. Asmuth and J. Bloom. A modular approach to key safeguarding. IEEE Transactions on Information Theory, IT-29(2):208-210, 1983.
  • Sorin Iftene. General Secret Sharing Based on the Chinese Remainder Theorem with Applications in E-Voting. Electronic Notes in Theoretical Computer Science (ENTCS). Volume 186, (July 2007). Pages 67–84. Year of Publication: 2007. Template:Catalog lookup linkScript error: No such module "check isxn"..
  • Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. Introduction to Algorithms, Second Edition. MIT Press and McGraw-Hill, 2001. Template:ISBN. Section 31.5: The Chinese remainder theorem, pages 873-876.
  • Ronald Cramer. Basic Secret Sharing (Lectures 1-2), Class Notes. October 2008, version 1.1.

External links

ru:Схема Миньотта