JP3302335B2 - Ciphertext verification method, its program recording medium, and its device - Google Patents

Ciphertext verification method, its program recording medium, and its device

Info

Publication number
JP3302335B2
JP3302335B2 JP01540999A JP1540999A JP3302335B2 JP 3302335 B2 JP3302335 B2 JP 3302335B2 JP 01540999 A JP01540999 A JP 01540999A JP 1540999 A JP1540999 A JP 1540999A JP 3302335 B2 JP3302335 B2 JP 3302335B2
Authority
JP
Japan
Prior art keywords
mod
value
decryptor
secret
ciphertext
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP01540999A
Other languages
Japanese (ja)
Other versions
JP2000216774A (en
Inventor
正幸 阿部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP01540999A priority Critical patent/JP3302335B2/en
Publication of JP2000216774A publication Critical patent/JP2000216774A/en
Application granted granted Critical
Publication of JP3302335B2 publication Critical patent/JP3302335B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】この発明は、電気通信システ
ムで通信を行う場合に、通信内容を秘匿し、かつ復号内
容を公開した場合にも復号者の秘密鍵に関する情報が漏
れることがない安全な暗号方法に関し、特に、暗号文の
正当性を復号者が検証する暗号文検証方法及びそのプロ
グラム記録媒体、に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a secure communication system in which communication contents are concealed in a telecommunication system and information about a private key of a decryptor is not leaked even when the decrypted contents are made public. More particularly, the present invention relates to a ciphertext verification method in which a decryptor verifies the legitimacy of a ciphertext and a program recording medium thereof.

【0002】[0002]

【従来の技術】選択平文攻撃に強い暗号系においては、
暗号文の送信者が元の平文を知っていることを復号者が
何らかの方法で検証する。Cramer−Shoup暗
号は、論文 R.Cramer and V.Shoup:“A practical publ
ic key cryptosystem provablysecure against adaptiv
e chosen chipertext attack ”, Advances in Cryptol
ogy-CRYPTO'98, LNCS 1462, Springer-Verlag, pp.13-2
5, 1998で提案された、汎用一方向性ハッシュ関数の存
在および、Diffie-Hellman判定問題の困難性という広く
信じられている仮定の下で、適応的選択暗号文攻撃に強
いことが証明できる公開鍵暗号方法である。Cramer-Sho
up暗号は一つの公開鍵に対応する一つの秘密鍵を持つ一
人の復号者を想定した暗号方法である。
2. Description of the Related Art In an encryption system resistant to selective plaintext attacks,
The decryptor verifies that the sender of the ciphertext knows the original plaintext in some way. The Cramer-Shoup cipher is described in R. Cramer and V. Shoup: "A practical publ.
ic key cryptosystem provablysecure against adaptiv
e chosen chipertext attack ”, Advances in Cryptol
ogy-CRYPTO'98, LNCS 1462, Springer-Verlag, pp.13-2
5, 1998, can be proved to be strong against adaptive choice ciphertext attacks under the widely believed assumption of the existence of a generalized one-way hash function and the difficulty of Diffie-Hellman decision problem This is a key encryption method. Cramer-Sho
Up encryption is an encryption method that assumes one decryption person having one secret key corresponding to one public key.

【0003】すでに一復号者の場合に適応的選択暗号文
攻撃に強いことが知られているCramer-Shoup暗号方法で
は、まず、大きな素数p、qを、qがp−1を割り切る
ように選び、乗法群Zpの位数qの部分群Gqの元g
1,g2を用いて、秘密鍵を(x1,x2,y1,y
2,z)∈Zq5 公開鍵をX=g1x1g2x2mod p,
Y=g1y1g2y2mod p,Z=g1z mod pとする。平
文m∈Gqに対する暗号文Eは(u1,u2,v,e)
より成り、正しく作成された暗号文はある乱数rに対し
てu1=g1r mod p,u2=g2r mod p,c=H
(u1,u2),v=Xr crmod p,e=mZr mod
pを満足する。この暗号文を受信した復号者は、まず、
c=H(u1,u2)を計算し、暗号文が検証式u1
x1+cy1u2x2+cy2≡v(mod p)を満たすか否かを検証
し、満たさない場合にはその暗号文の復号を拒否し、満
たす場合には、m=e/u1z modpを計算し、平文m
を得る。
In the Cramer-Shoup encryption method, which is already known to be resistant to adaptive selective ciphertext attacks in the case of a single decryptor, first, large prime numbers p and q are selected such that q divides p-1. , The element g of the subgroup Gq of order q of the multiplicative group Zp
1, g2, the secret key is (x1, x2, y1, y
2, z) ∈Zq 5, the public key X = g1 x1 g2 x2 mod p ,
Let Y = g1 y1 g2 y2 mod p and Z = g1 z mod p. The ciphertext E for the plaintext m∈Gq is (u1, u2, v, e)
A correctly formed ciphertext is such that for a given random number r, u1 = g1 r mod p, u2 = g2 r mod p, c = H
(U1, u2), v = X r Y cr mod p, e = mZ r mod
satisfies p. Upon receiving this ciphertext, the decryptor first
c = H (u1, u2) is calculated, and the ciphertext is verified by the verification formula u1.
x1 + cy1 u2 x2 + cy2 検証 Verify whether v (mod p) is satisfied, and if not, refuse to decrypt the ciphertext; otherwise, calculate m = e / u1 z modp And plaintext m
Get.

【0004】上記検証式により、復号者は、暗号文の制
作者が元の平文mを知っていることを確認することがで
きる。検証式を満たさない不正な暗号文に対しては復号
を拒否するので、攻撃者は何れの有用な情報も得られな
い。しかしながら、この暗号文検証方法では、検証の結
果復号を拒否する場合に、第三者に対して検証した暗号
文が不正であったこと、すなわち、V≡u1x1+cy1u2
x2+cy2(mod p)として、V≠v(mod p)とならない
ことを、Vに関する情報を何ら漏らすことなく証明する
のは現実的には困難である。
[0004] The above verification formula allows the decryptor to confirm that the creator of the ciphertext knows the original plaintext m. The attacker cannot obtain any useful information because it refuses decryption for an illegal ciphertext that does not satisfy the verification formula. However, in this ciphertext verification method, when decryption is rejected as a result of the verification, the verified ciphertext is incorrect for a third party, that is, V @ u1 x1 + cy1 u2.
as x2 + cy2 (mod p), that it does not become a V ≠ v (mod p), it is difficult in practice to prove without Las leakage what et al information about the V.

【0005】さらに、ElGamal暗号などでしばし
ば行われるように、一つの公開鍵に対して、対応する秘
密鍵を秘密分散により複数の部分秘密鍵に分散し、複数
の復号者にこれを保持させることにより、しきい値を越
える人数の復号者が協力したときのみ暗号文を復号でき
るようにするしきい値付き復号を適用する場合、この暗
号復号方法において検証式を満たさないような不正な暗
号文に対して、検証式の左辺u1x1+cy1u2x2+cy2の計
算結果Vが複数の復号者に知れてしまうため、攻撃者と
結託した復号者が存在した場合に、攻撃者に情報が漏洩
してしまい、選択暗号文攻撃への安全性を保つことはで
きない。
Further, as is often the case with the ElGamal encryption, the secret key corresponding to one public key is divided into a plurality of partial secret keys by secret sharing, and this is held by a plurality of decryptors. In the case of applying the thresholded decryption that enables decryption only when the number of decryptors exceeding the threshold value cooperates, an illegal ciphertext that does not satisfy the verification formula in this decryption method On the other hand, since the calculation result V of the left side of the verification formula u1 x1 + cy1 u2 x2 + cy2 is known to a plurality of decryptors , information is leaked to the attacker when there is a decryptor who colludes with the attacker. This makes it impossible to maintain security against selected ciphertext attacks.

【0006】しきい値付き復号方法については、例え
ば、論文 V.Shoup and R.Gennaro: “Securing thresho
ld cryptosystems against chosen ciphertext attack
”, Advances in Cryptology-EUROCRYPT ,98, LNCS 14
03, Springer-Verlag, pp.1-16,1998 で提案された方式
は、適応的選択暗号文攻撃に強いことがランダムオラク
ルの存在という仮定の下で示されている。
For a decoding method with a threshold value, see, for example, the article V. Shoup and R. Gennaro: “Securing thresho
ld cryptosystems against chosen ciphertext attack
”, Advances in Cryptology-EUROCRYPT , 98, LNCS 14
The method proposed in 03, Springer-Verlag, pp.1-16,1998 has been shown to be resistant to adaptive selective ciphertext attacks under the assumption that a random oracle exists.

【0007】しかしながら、ランダムオラクルという仮
定は、極めて非現実的であり、ランダムオラクルを通常
の衝突困難と考えられるハッシュ関数等に置き換えて使
用した場合には、その安全性について何の保証も得るこ
とができない。
However, the assumption of a random oracle is extremely impractical. If a random oracle is used by replacing it with a hash function or the like which is considered to be difficult to collide, no guarantee can be obtained for its security. Can not.

【0008】[0008]

【発明が解決しようとする課題】この発明の目的は、Cr
amer-Shoup暗号において、検証式における値に関する情
報を一切漏らすことなく、暗号文の正当性を検証でき、
また検証式の値が正当でないことを示している場合に、
その値が正しく作成されたものであることを、零知識証
明によって第三者に証明することができ、更に複数の復
号者が協力して検証する場合に、復号者中に不正者がい
たとしても、検証式の値が復号者にも漏洩することがな
い暗号文検証方法、そのプログラム記録媒体、及びその
装置を提供することにある。
SUMMARY OF THE INVENTION The object of the present invention is
In the amer-Shoup cipher, the validity of ciphertext can be verified without leaking any information about the value in the verification formula,
Also, if the value of the validation expression indicates that it is not valid,
A zero-knowledge proof can be used to prove to a third party that the value has been created correctly, and when multiple decryptors cooperate and verify, if there is an unauthorized person in the decryptors Another object of the present invention is to provide a ciphertext verification method, a program recording medium, and a device thereof, in which a value of a verification formula is not leaked to a decryption person.

【0009】[0009]

【課題を解決するための手段】Cramer-Shoup暗号におけ
る復号時の検証式の値を、復号者の誰もがその値を知り
得ない乱数によってべき乗し、そのべき乗した結果が1
となるか否かを検証することによって暗号文の正当性を
検証する。この乱数でべき乗するという計算を分散計算
により、全計算者の協力で行うことによって、検証式を
満たさない場合にも、べき乗する前の検証式の値はどの
復号者にも漏洩することはない、つまり正当でない場合
は、計算値が1でない値となり、その値が乱数でべき乗
されているから、そのべき乗されている値を示して計算
値が1でないこと、即ち正当でないことを示しても、そ
のべき乗前の値はかくされ、情報が漏れるおそれはな
い。
Means for Solving the Problems The value of the verification formula at the time of decryption in the Cramer-Shoup cipher is raised to the power of a random number that no one of the decryptors can know the value, and the result of the power raised is 1
The validity of the ciphertext is verified by verifying whether or not By performing the calculation of exponentiation with this random number by distributed calculation in cooperation with all the operators, even if the verification expression is not satisfied, the value of the verification expression before exponentiation does not leak to any decoder In other words, if the value is not valid, the calculated value is a value other than 1, and the value is raised to a power by a random number. Therefore, even if the calculated value is not 1 and the calculated value is not 1, that is, it is not valid. The value before the exponentiation is hidden, and there is no risk of information leakage.

【0010】n人の復号者をP1〜Pnとし、各復号者
Pj(j=1,2,…,n)は固有の公開値wjを持つ
ものとする。(x1,x2,y1,y2,z)∈Zq5
をしきい値tの秘密分散法により分散し、値wjに対応
する秘密値(x1j,x2j,y1j,y2j,zj)
を復号者Pjの秘密鍵とする。
It is assumed that n decryptors are P1 to Pn, and each decryptor Pj (j = 1, 2,..., N) has a unique public value wj. (X1, x2, y1, y2, z) ∈Zq 5
Is shared by a secret sharing scheme with a threshold value t, and a secret value (x1j, x2j, y1j, y2j, zj) corresponding to the value wj
Is the secret key of the decryptor Pj.

【0011】また、Xj=g1x1j g2x2j mod p,Y
j=g1y1j g2y2j mod p,Zj=g1zjmod pなる
(Xj,Yj,Zj)を復号者Pjの公開鍵とする。X
=g1x1g2x2mod p,Y=g1y1g2y2mod p,Z=
g1z mod pなる(X,Y,Z)を暗号化に用いる公開
鍵とする。各々の復号者装置間は、安全な通信路で接続
されており、各復号者装置は、他の全員の復号者装置が
同一の内容を受信することが保証される放送型通信路を
利用できるものとする。
Xj = g1 x1j g2 x2j mod p, Y
Let (Xj, Yj, Zj) that j = g1 y1j g2 y2j mod p and Zj = g1 zj mod p be the public key of the decryptor Pj. X
= G1 x1 g2 x2 mod p, Y = g1 y1 g2 y2 mod p, Z =
Let (X, Y, Z) g1 z mod p be the public key used for encryption. Each of the decryption devices is connected by a secure communication path, and each of the decryption devices can use a broadcast-type communication path that guarantees that all other decryption devices receive the same contents. Shall be.

【0012】E=(u1,u2,v,e)をCramer-Sho
up暗号方法により暗号化された平文mの暗号文とする。
復号者装置は、協力して分散乱数生成手順を実行し、復
号者Pjの装置は秘密値rjを得る。ここで、rjは乱
数r∈Zqをしきい値tの秘密分散法により分散した場
合の、値wjに対応する秘密値であり、任意のt+1個
の秘密値から、秘密復号手順により、rを回復できるよ
うな値である。また、分散乱数生成手順の性質から、各
復号者装置はrの値を知ることができず、rは0以上q
未満のランダムな整数となる。
E = (u1, u2, v, e) is calculated by Cramer-Sho
The encrypted text is a plaintext m encrypted by the up encryption method.
The decryptor device cooperates to execute the distributed random number generation procedure, and the device of the decryptor Pj obtains the secret value rj. Here, rj is a secret value corresponding to the value wj when the random number r∈Zq is shared by the secret sharing method with the threshold value t. From any t + 1 secret values, r It is a value that can be recovered. Also, due to the nature of the distributed random number generation procedure, each decryption device cannot know the value of r, and r is 0 or more and q
Will be a random integer less than.

【0013】Eを受信した各復号者Pjの装置は、c=
H(u1,u2)およびVj=(u1x1j+cy1ju2
x2j+cy2j-1rjmod pを計算する。更に、Vjをしき
い値2tの検証可能秘密分散法により分散し、値wk
(k=1,2,…,n、k≠j)に対応する秘密値Vj
kを各復号者Pkの装置に安全な通信路を介して送信す
る。他の全ての復号者装置からVjkを受信した後、復
号者Pkの装置はVkを放送型通信路を介して他の全て
の復号者装置へ送信する。各復号者装置は受信した各V
kが正しい値であることをVkjを用いて検証する。
The device of each decryptor Pj that has received E is c =
H (u1, u2) and Vj = (u1 x1j + cy1j u2
x2j + cy2j v -1 ) Calculate rj mod p. Further, Vj is distributed by a verifiable secret sharing scheme with a threshold value of 2t, and a value wk
Secret value Vj corresponding to (k = 1, 2,..., N, k ≠ j)
k is transmitted to the device of each decryptor Pk via a secure communication path. After receiving Vjk from all other decoder devices, the device of decoder Pk transmits Vk to all other decoder devices via the broadcast communication path. Each decryptor device receives each V
Verify that k is a correct value using Vkj.

【0014】正しいと確認されたVkのうち2t+1個
を選択し、指数部、つまりx1k+cy1k,x2k+
cy2kに対する秘密復元手順により復元した値Vが1
に等しいか否かを調べる。等しくないならば他の組み合
わせで同様に秘密復元手順を繰り返し、全ての2t+1
個の組み合わせについていずれも復元値が1に等しくな
いならば、復号を拒否して停止する。
[0014] Of the Vk confirmed to be correct, 2t + 1 are selected, and the exponent part, ie, x1k + cy1k, x2k +
The value V restored by the secret restoration procedure for cy2k is 1
Check if it is equal to. If they are not equal, repeat the secret recovery procedure in the other combinations in the same manner, for all 2t + 1
If the restoration value is not equal to 1 for any of the combinations, the decoding is refused and the operation is stopped.

【0015】各復号者装置が上記手順に従って計算した
場合、2t+1個以上の任意の正しいVkから、指数部
に対する秘密鍵復元手順により、V=(u1x1+cy1u2
x2+c y2-1r mod pなるVを復元することができる。
ここで、Vがpを法として1と合同でないならば、Cram
er-Shoup法における本来の検証式u1x1+cy1u2x2+c y2
の値もvと合同ではない。一方、Vが1と合同となる場
合は、本来の検証式がvと合同であるか、または、乱数
rが0であるかのいずれかである。しかしながら、分散
乱数生成手順で生成した乱数rが0となる確率は1/q
であり、十分小さいので無視する事ができる。従って、
Vが1と合同である場合には、本来の検証式はvと合同
であると見なすことができる。
When each decryptor calculates according to the above procedure, V = (u1 × 1 + cy1 u2) from a secret key recovery procedure for the exponent part from 2t + 1 or more correct Vk.
x2 + cy2v- 1 ) r mod V can be restored.
Here, if V is not congruent with 1 modulo p, then Cram
the original validation expression in the er-Shoup method u1 x1 + cy1 u2 x2 + c y2
Is not congruent with v. On the other hand, when V is congruent with 1, it means that the original verification formula is congruent with v or the random number r is 0. However, the probability that the random number r generated by the distributed random number generation procedure becomes 0 is 1 / q
And is small enough to be ignored. Therefore,
If V is congruent with 1, the original verification equation can be considered congruent with v.

【0016】ここで、不正を働く復号者が最大t人いる
と仮定する。このt人は、(1)不正な暗号文Eに対す
る検証式の値Vが1となるようにする、または(2)正
当な暗号文Eに対する検証式の値Vが1とならないよう
にする、の二通りの目的で上記手順から逸脱する場合が
あり得る。まず、(1)の目的を成功させるためには、
ある2t+1個のVkから復元されるVの値が1となる
ようにしなければならない。しかしながら、不正者装置
を含めた全ての復号者装置は他の復号者装置が出すVk
の値を知る前に、自分のVkの値を検証可能秘密分散方
法によって分散しなければならず、他の復号者装置のV
kの値を知ってから自装置のVkの値を変更することは
できないので、他の復号者装置のVkに関する予想が当
たった場合のみ不正な復号者は(1)の目的を達成する
ことができる。予想が当たる確率は1/qであり、十分
小さいので無視することができる。次に、(2)の場合
に関しては、不正な復号者装置が、どのような不正な値
Vkを送信したとしても、不正者は高々t人であり、他
の2t+1人の装置は正しい値を送信しているので、少
なくとも1通りは、全て正しい値の2t+1個のVkか
ら成る集合を取ることができ、そのような集合からV=
1が復元される。
Here, it is assumed that there are a maximum of t decryptors who commit fraud. The t persons (1) make sure that the value V of the verification formula for the illegal ciphertext E is 1 or (2) make sure that the value V of the verification formula for the valid ciphertext E does not become 1; It may be possible to deviate from the above procedure for two purposes. First, in order to achieve the purpose of (1),
The value of V restored from some 2t + 1 Vk must be 1. However, all the decryptor devices including the fraudulent device have Vk output from other decryptor devices.
Before knowing the value of Vc, the value of its own Vk must be shared by a verifiable secret sharing method, and the V
Since it is impossible to change the value of Vk of the own device after knowing the value of k, an unauthorized decoder can achieve the purpose of (1) only when the prediction regarding Vk of another decoder is successful. it can. The probability of hitting the prediction is 1 / q, which is small enough to ignore. Next, with regard to the case (2), no matter what the illegal decryptor device transmits the illegal value Vk, the illegal person is at most t, and the other 2t + 1 devices have the correct value. Since it is transmitting, at least one way can take a set of 2t + 1 Vk of all correct values, and from such a set V =
1 is restored.

【0017】情報の漏洩については、Vが1でない場
合、どのようなu1x1+cy1u2x2+cy2の値に対しても、
V=(u1x1+cy1u2x2+cy2-1r mod pを満たすr
の値が一つ定まるので、(u1x1+cy1u2x2+cy2-1
の値がrでランダム化され、このランダム化された値を
示しても、rでランダム化される前の値は漏れない、つ
まり上記検証方法では、u1x1+cy1u2x2+cy2に関する
情報は一切漏れない。
Regarding information leakage, if V is not 1, for any value of u1 x1 + cy1 u2 x2 + cy2 ,
V = (u1 x1 + cy1 u2 x2 + cy2 v −1 ) r mod r that satisfies p
Is determined, then (u1 x1 + cy1 u2 x2 + cy2 v -1 )
Is randomized by r, and even if this randomized value is indicated, the value before being randomized by r is not leaked. That is, in the above verification method, the information on u1 x1 + cy1 u2 x2 + cy2 is No leakage.

【0018】以上より、この発明によれば、不正を働く
復号者が全復号者の1/3未満ならば、秘密鍵に関する
情報を一切漏らすことなく、複数復号者の協力によって
本来のCramer-Shoup暗号方法の検証式と同等の検証式を
計算することが可能であり、よって、適応的選択暗号文
攻撃に強い、複数復号者の暗号復号装置を構成する事が
できる。
As described above, according to the present invention, if the number of unauthorized decryptors is less than 1/3 of all decryptors, the original Cramer-Shoup can be performed by the cooperation of a plurality of decryptors without leaking any information on the secret key. It is possible to calculate a verification equation equivalent to the verification equation of the encryption method, and therefore, it is possible to configure a multi-decryptor encryption / decryption apparatus that is resistant to adaptive selection ciphertext attacks.

【0019】以上の手法は復号者がn人いる場合に、各
復号者装置は、全ての復号者装置から受信したn個の検
証用データ(V1,…,Vn)に対して、2t+1個の
データを取りだし、ある検証式を満足するか否かを検証
する。満足しない場合は、この検証をn個に対して取り
得る全ての2t+1個の組み合わせに対して行う。その
ため、検証式を満足しない場合には、復号者の数nに対
して、計算量が指数的に増加するという欠点を持つ。
In the above-mentioned method, when there are n decryptors, each decryptor apparatus receives 2t + 1 pieces of verification data (V1,..., Vn) received from all decryptor apparatuses. Take out the data and verify whether it satisfies a certain verification formula. If not, this verification is performed for all 2t + 1 combinations that can be obtained for n. Therefore, when the verification formula is not satisfied, there is a disadvantage that the calculation amount increases exponentially with respect to the number n of the decryptors.

【0020】この発明の別の観点によれば、複数の復号
者による暗号復号方法において、多数の復号者に対して
も効率的に計算が実行でき、また、1/3以上の復号者
が不正を行っても回復可能であるような、適応的選択暗
号文攻撃に強い暗号の暗号文検証方法およびそのプログ
ラム記録媒体を提供する。即ちこの発明の別の観点によ
れば、まず、復号者の数に対する計算量を低減する手段
として、零知識証明によってその結果の正当性を各復号
者装置に証明させることによって不正者を特定し、正当
なデータのみを用いて暗号文の検証を行う。そうするこ
とによって、復号者の数nに比例した計算量で検証を行
うことが可能である。しかし、この際用いる零知識証明
は通信量が多いため、不正がほとんど起こらない場合に
は効率が悪い。各復号者装置の計算結果がBCH符号の
コードワードとなるように各復号者の固有の公開値を定
め、計算結果がコードワードであることを受信者装置が
検証し、コードワードでない場合にのみ零知識証明を実
行することによって、正しい暗号文を受信した場合に
は、通信量を抑えたまま効率的な計算を行うことが可能
となる。
According to another aspect of the present invention, in an encryption / decryption method using a plurality of decryptors, calculations can be efficiently performed even for a large number of decryptors, and more than one-third or more decrypters are illegal. The present invention provides a ciphertext verification method for a ciphertext that is resistant to adaptive selective ciphertext attacks that can be recovered even after performing the method, and a program recording medium therefor. That is, according to another aspect of the present invention, first, as means for reducing the amount of calculation for the number of decryptors, an unauthorized person is specified by having each decryptor device prove the validity of the result by zero-knowledge proof. The ciphertext is verified using only valid data. By doing so, it is possible to perform verification with a calculation amount proportional to the number n of decryptors. However, since the zero-knowledge proof used at this time has a large amount of communication, it is inefficient when fraud hardly occurs. A unique public value of each decoder is determined so that the calculation result of each decoder device becomes a codeword of the BCH code, the receiver device verifies that the calculation result is a codeword, and only when the calculation result is not a codeword, By executing the zero-knowledge proof, when a correct ciphertext is received, it is possible to perform an efficient calculation while suppressing the communication amount.

【0021】この方法に因れば、許容できる不正者の数
は、3t+1>nを満たすt人までであり、より許容度
の高い安全なシステムが望まれる場合には不適当であ
る。また、不正者が1/3以上1/2未満の場合に対応
する手段として、不正者が特定された場合に、他の復号
者装置が協力してその不正な復号者が持つ分散秘密鍵を
算出し、公開することによって、だれもがその不正な復
号者に代わって正しい結果を計算することができるよう
にすることにより、課題を解決する。
According to this method, the number of permissible fraudulent persons is up to t persons satisfying 3t + 1> n, which is inappropriate when a more permissive and secure system is desired. In addition, as a means to cope with the case where the fraudulent person is 1/3 or more and less than 1/2, when the fraudulent person is identified, another decryption apparatus cooperates with the decryption secret key possessed by the unauthorized decryption apparatus. The problem is solved by calculating and publishing so that anyone can calculate the correct result on behalf of its unauthorized decryptor.

【0022】具体的な手段は以下の通りである。n人の
復号者をP1〜Pnとし、各復号者Pjに対し、固有の
公開値wjを割り振る。3t<nを満たすしきい値tを
定める。(x1,x2,y1,y2,z)∈Zq5 をし
きい値tの秘密分散法により分散し、値wjに対応する
秘密値(x1j,x2j,y1j,y2j,zj)を復
号者Pjの秘密鍵とする。
Specific means are as follows. The n decryptors are P1 to Pn, and a unique public value wj is allocated to each decryptor Pj. A threshold value t that satisfies 3t <n is determined. (X1, x2, y1, y2 , z) the ∈Zq 5 was dispersed by a secret sharing scheme threshold t, the secret value corresponding to the value wj (x1j, x2j, y1j, y2j, zj) the decryption person Pj The secret key.

【0023】また、Xj=g1x1j g2x2j mod p,Y
j=g1y1j g2y2j mod p,Zj=g1zjmod pなる
(Xj,Yj,Zj)を復号者Pjの公開鍵とする。X
=g1x1g2x2mod p,Y=g1y1g2y2mod p,Z=
g1z mod pなる(X,Y,Z)を暗号化に用いる公開
鍵とする。各々の復号者装置間は、安全な通信路で接続
されており、各復号者装置は、他の全員の復号者装置が
同一の内容を受信することが保証される放送型通信路を
利用できるものとする。
Xj = g1 x1j g2 x2j mod p, Y
Let (Xj, Yj, Zj) that j = g1 y1j g2 y2j mod p and Zj = g1 zj mod p be the public key of the decryptor Pj. X
= G1 x1 g2 x2 mod p, Y = g1 y1 g2 y2 mod p, Z =
Let (X, Y, Z) g1 z mod p be the public key used for encryption. Each of the decryption devices is connected by a secure communication path, and each of the decryption devices can use a broadcast-type communication path that guarantees that all other decryption devices receive the same contents. Shall be.

【0024】E=(u1,u2,v,e)をCramer-Sho
up暗号方法により暗号化された平文mの暗号文とする。
復号者装置は、協力して分散乱数生成手順を実行し、復
号者Pjの装置は秘密値rjを得る。ここで、rjは乱
数r∈Zqをしきい値tの秘密分散法により分散した場
合の、値wjに対応する秘密値であり、任意のt+1個
の秘密値から、秘密復号手順により、rを回復できるよ
うな値である。また、分散乱数生成手順の性質から、各
復号者はrの値を知ることができず、rは0以上q未満
のランダムな整数となる。
Let E = (u1, u2, v, e) be a Cramer-Sho
The encrypted text is a plaintext m encrypted by the up encryption method.
The decryptor device cooperates to execute the distributed random number generation procedure, and the device of the decryptor Pj obtains the secret value rj. Here, rj is a secret value corresponding to the value wj when the random number r∈Zq is shared by the secret sharing method with the threshold value t. From any t + 1 secret values, r It is a value that can be recovered. Also, due to the nature of the distributed random number generation procedure, each decryptor cannot know the value of r, and r is a random integer from 0 to less than q.

【0025】次に、全復号者装置は協力して分散乗算手
段を実行し、各復号者Pjの装置は秘密値x1j′,x
2j′,y1j′,y2j′を得る。ここで、秘密値x
1j′は、乱数rと秘密鍵x1の積をしきい値tの秘密
分散法により分散して得られる値であり、任意のt+1
人の復号者が持つx1j′から、r・x1(mod q)を
復号することが可能である。秘密値x2j′,y1
j′,y2j′についても同様に、それぞれ任意のt+
1個の値から、r・x2(mod q),r・y1(mod
q),r・y2(mod q)を復元することができる。
Next, all the decryptor devices cooperate to execute the distributed multiplication means, and the device of each decryptor Pj determines the secret value x1j ', x
2j ', y1j', y2j 'are obtained. Where the secret value x
1j ′ is a value obtained by distributing the product of the random number r and the secret key x1 by the secret sharing method with the threshold value t,
It is possible to decode r · x1 (mod q) from x1j ′ possessed by one decryptor. Secret value x2j ', y1
j ′ and y2j ′ are similarly set at arbitrary t +
From one value, r · x2 (mod q), r · y1 (mod
q), r · y2 (mod q) can be restored.

【0026】Eを受信した各復号者Pj装置は、c=H
(u1,u2)およびVj=u1x1 j'+cy1j'u2
x2j'+cy2j'-rj mod pを計算し、放送型通信路を通じ
て他の全ての復号者装置へVjを送信する。次に、各復
号者装置は、(V1,…,Vn)の指数部がBCH符号
のコードワードであることを確認する。(V1,…,V
n)の指数部がBCH符号のコードワードでなく、正し
くないことが判明した場合、各復号者Pjの装置は、V
jがu1x1j'+cy1j'u2x2j'+cy2j'-rj mod pの計算
結果であることをx1j′,x2j′,y1j′,y2
j′,rjに関する情報を漏らすことなく、零知識証明
によって他の復号者に証明する。
Each decryptor Pj device receiving E receives c = H
( U1 , u2) and Vj = u1 x1 j '+ cy1j' u2
x2j '+ cy2j' v -rj mod p is calculated, and Vj is transmitted to all other decoder devices via the broadcast-type communication channel. Next, each decoder determines that the exponent part of (V1,..., Vn) is a BCH codeword. (V1, ..., V
If it turns out that the exponent part of n) is not a codeword of the BCH code and is incorrect, the device of each decoder Pj
X1j that j is u1 x1j '+ cy1j' u2 x2j '+ cy2j' v calculation results -rj mod p ', x2j', y1j ', y2
Without leaking information on j 'and rj, it is proved to other decryptors by the zero knowledge proof.

【0027】証明に失敗した復号者Pjは不正者である
と見なされ、その不正者である逸脱者の秘密値x1
j′,x2j′,y1j′,y2j′,rjを他の復号
者装置が秘密値回復手順を用いて回復し、正しいVjの
値を公開する。公開された正しいVjの値を含めて、正
しい(V1,…,Vn)を得る。(V1,…,Vn)の
指数部が正しいこと、コードワードであることを確認し
た後、指数部に対する秘密復元手順により、値Vを復元
する。各復号者装置はVが1に等しいか否かを調べ、等
しくないならば復号を拒否して停止する。
The decryptor Pj whose certification has failed is regarded as a fraudulent person, and the secret value x1 of the deviator who is the fraudulent person is j1.
j ', x2j', y1j ', y2j', rj are recovered by another decryptor using a secret value recovery procedure, and the correct value of Vj is made public. The correct (V1,..., Vn) is obtained including the published value of the correct Vj. After confirming that the exponent part of (V1,..., Vn) is correct and is a codeword, the value V is restored by a secret restoration procedure for the exponent part. Each decryptor device checks whether V is equal to 1 and if not, rejects decoding and stops.

【0028】等しいならば、各復号者Pjの装置はDj
=u1zjmod pを計算し、放送型通信路により他の全て
の復号者装置へ送信する。Djを受信した各復号者装置
は(D1,…,Dn)に対して、(V1,…,Vn)に
対して行ったのと同様のコードワードの検証を行い、不
正を検出した場合には同様に零知識証明を行って不正者
を特定し、正しいDjの値を秘密値回復手順を用いて回
復する。
If equal, the device of each decryptor Pj is Dj
= U1 zj mod p and transmit it to all other decoders by broadcast-type channel. Upon receiving Dj, each decryptor performs the same codeword verification on (D1,..., Dn) as performed on (V1,..., Vn). Similarly, an unauthorized person is identified by performing zero knowledge proof, and a correct value of Dj is recovered using a secret value recovery procedure.

【0029】各復号者装置は、正しい(D1,…,D
n)から、指数部に対する秘密復元手順によってD=u
z mod pを復元し、m=e/Dmod pを計算してメッ
セージmを復号する。各復号者装置が上記手順に従って
計算した場合、2t+1個以上の任意の正しいVkか
ら、指数部に対する秘密鍵復元手順により、V=(u1
x1+cy1u2x2+c y2-1r mod pなるVを復元すること
ができる。ここで、Vがpを法として1と合同でないな
らば、Cramer-Shoup法における本来の検証式u1x1+cy1
u2x2+c y2の値もvと合同ではない。一方、Vが1と合
同となる場合は、本来の検証式がvと合同であるか、ま
たは、乱数rが0であるかのいずれかである。しかしな
がら、分散乱数生成手順で生成した乱数rが0となる確
率は1/qであり、十分小さいので無視する事ができ
る。従って、Vが1と合同である場合には、本来の検証
式はvと合同であると見なすことができる。
Each of the decryption apparatuses is correct (D1,..., D
From n), D = u by the secret recovery procedure for the exponent part
Reconstruct 1 z mod p and calculate m = e / D mod p to decode message m. When each decryptor device calculates according to the above procedure, V = (u1) is obtained from 2t + 1 or more arbitrary correct Vk by a secret key restoration procedure for the exponent part.
x1 + cy1 u2 x2 + c y2 v -1) can restore the r mod p becomes V. Here, if V is not congruent with 1 modulo p, the original verification formula u1 x1 + cy1 in the Cramer-Shoup method
The value of u2x2 + cy2 is also not congruent with v. On the other hand, when V is congruent with 1, it means that the original verification formula is congruent with v or the random number r is 0. However, the probability that the random number r generated in the distributed random number generation procedure becomes 0 is 1 / q, which is sufficiently small and can be ignored. Therefore, when V is congruent with 1, the original verification formula can be regarded as congruent with v.

【0030】ここで、不正を働く復号者が最大t人いる
と仮定する。このt人は、(1)不正な暗号文Eに対す
る検証式の値Vが1となるようにする、または(2)正
当な暗号文Eに対する検証式の値Vが1とならないよう
にする、の二通りの目的で上記手順から逸脱する場合が
あり得る。しかしながら、全ての復号者装置の出力はB
CH符号のコードワード検査によって検証されるため、
不正な値が存在する場合は、不正な値が全体の1/3未
満ならば、その存在を検知することができる。そのよう
な場合には、各々の復号者は零知識証明により出力値の
正しさを証明するので、不正な値を出力した不正者は証
明に失敗し、排除される。
Here, it is assumed that there are a maximum of t decryptors who commit fraud. The t persons (1) make sure that the value V of the verification formula for the illegal ciphertext E is 1 or (2) make sure that the value V of the verification formula for the valid ciphertext E does not become 1; It may be possible to deviate from the above procedure for two purposes. However, the output of all decryptor devices is B
Because it is verified by the codeword inspection of the CH code,
When an incorrect value exists, if the incorrect value is less than 1/3 of the entire value, the existence can be detected. In such a case, each decryptor proves the correctness of the output value by the zero-knowledge proof, so that a fraudulent person who outputs an incorrect value fails the proof and is eliminated.

【0031】情報の漏洩については、Vが1でない場
合、どのようなu1x1+cy1u2x2+cy2の値に対しても、
V=(u1x1+cy1u2x2+cy2-1r mod pを満たすr
の値が一つ定まるので、上記検証方法では、u1x1+cy1
u2x2+cy2に関する情報は一切漏れない。以上より、こ
の発明によれば、不正を働く復号者が全復号者の1/3
未満ならば、秘密鍵に関する情報を一切漏らすことな
く、複数復号者の協力によって本来のCramer-Shoup暗号
方法の検証式と同等の検証式を計算することが可能であ
り、よって、適応的選択暗号文攻撃に強い、複数復号者
の暗号復号方法を構成する事ができる。
Regarding information leakage, when V is not 1, for any value of u1 x1 + cy1 u2 x2 + cy2 ,
V = (u1 x1 + cy1 u2 x2 + cy2 v −1 ) r mod r that satisfies p
Is determined, so in the above verification method, u1 x1 + cy1
No information about u2 x2 + cy2 is leaked. As described above, according to the present invention, the decryption person who performs fraud is one third of the total decryption person.
If it is less than the above, it is possible to calculate a verification equation equivalent to the original Cramer-Shoup cryptography verification equation with the cooperation of multiple decryptors without leaking any information on the secret key It is possible to configure a multi-decryptor encryption / decryption method that is strong against sentence attacks.

【0032】一方、上記手段において、BCH符号のコ
ードワード検査を行わず、常に零知識証明を実行して不
正者を特定し、他の復号者が協力してその不正な復号者
が持つ分散秘密鍵を算出し、公開することによって、だ
れもがその不正な復号者に代わって正しい結果を計算す
ることができるので、1/2未満の不正者に対応するこ
とができる(零知識証明が正しいことは多数決で決定す
るため、少なくとも1/2の復号者は正しくなければな
らない)。
On the other hand, in the above means, the code word check of the BCH code is not performed, the zero-knowledge proof is always executed to identify the unauthorized person, and the other secretaries cooperate with each other to share the secret secret possessed by the unauthorized decryptor. By calculating and publishing the key, anyone can calculate the correct result on behalf of the unauthorized decryptor, so that less than half the unauthorized person can be handled (the zero-knowledge proof is correct). That is decided by majority vote, so at least half of the decoders must be correct).

【0033】[0033]

【発明の実施の形態】実施例1 以下に、この発明の第一の実施例である暗号文検証方法
について説明する。図1に示すように暗号文作成者装置
11で作成された暗号文は復号者装置12で復号され
る。復号者装置12で、正しい暗号文でないと、勝手に
復号拒否することを避けるため、検証者装置13で、復
号拒否が妥当なものであるか否かを検証する。
DESCRIPTION OF THE PREFERRED EMBODIMENTS Embodiment 1 Hereinafter, a ciphertext verification method according to a first embodiment of the present invention will be described. As shown in FIG. 1, the ciphertext created by the ciphertext creator device 11 is decrypted by the decryptor device 12. In order to prevent the decryption device 12 from arbitrarily rejecting the decryption unless the ciphertext is correct, the verifier device 13 verifies whether the decryption rejection is appropriate.

【0034】いま大きな素数p,qがあり、qはp−1
を割り切るものとする。Gqの元g1,g2をランダム
に選択する。X=g1x1g2x2mod p,Y=g1y1g2
y2mod p,Z=g1z mod pを暗号化手順に用いる公開
鍵とする。ここで、(x1,x2,y1,y2,z)∈
Zq5 とする。公開鍵は公開パラメータめとしてp,
q,g1,g2と共に公開されているものとする。また
秘密鍵は復号者装置のメモリ上に格納されているものと
する。
Now, there are large prime numbers p and q, and q is p−1
Is divisible. Elements g1 and g2 of Gq are randomly selected. X = g1 x1 g2 x2 mod p, Y = g1 y1 g2
Let y2 mod p, Z = g1 z mod p be the public key used in the encryption procedure. Here, (x1, x2, y1, y2, z) ∈
And Zq 5. The public key is p,
It is assumed that it has been released along with q, g1, and g2. It is assumed that the secret key is stored on the memory of the decryption apparatus.

【0035】X,Y,Zを公開鍵としたCramer-Shoup暗
号方法により暗号化された平文mの暗号文E=(u1,
u2,v,e)を図2に示すように受信した後(S
1)、復号者装置は、乱数rを生成し(S2)、c=H
(u1,u2)およびV=(u1 x1+cy1u2
x2+cy2-1r mod pを計算する(S3)。Vが1なら
ば、この暗号文を合格とし(S4)、復号計算を行う
(S5)。
Cramer-Shoup encryption using X, Y, and Z as public keys
Ciphertext E = (u1,
u2, v, e) as shown in FIG.
1), the decryption apparatus generates a random number r (S2), and c = H
(U1, u2) and V = (u1 x1 + cy1u2
x2 + cy2v-1)rThe mod p is calculated (S3). If V is 1
If this is the case, the ciphertext is accepted (S4), and the decryption calculation is performed.
(S5).

【0036】Vが1でないならば不合格とする。第三者
へ不合格であることを証明するため、ビットコミットメ
ント関数BC()を用いて、BC(r)を公開する。こ
のビットコミット関数には、たとえば、Pederse
nによるものがある。即ち、乱数sを生成し、BC
(r,s):=gr s mod pと計算する。ここでg,
hはgを底とするhの離散対数が未知であるようなGq
の元である。
If V is not 1, it is rejected. In order to prove the rejection to a third party, BC (r) is made public by using a bit commitment function BC (). This bit commit function includes, for example, Pederse
n. That is, a random number s is generated, and BC
(R, s): = g r hs mod p is calculated. Where g,
h is Gq such that the discrete logarithm of h with base g is unknown.
Is the source of

【0037】その後、BC(r,s)を構成するrと、
公開鍵X,Yを構成するx1,x2,y1,y2を用い
て(u1x1+cy1u2x2+cy2-1r mod pなる計算を行
った結果がVであることを、r,x1,x2,y1,y
2に関する秘密を漏らさずに、零知識証明で第三者へ証
明する(S6)。この零知識証明は、以下の手順で行
う。
Then, r forming BC (r, s)
Using x1, x2, y1, and y2 constituting the public keys X and Y, the result of performing the calculation of (u1 x1 + cy1 u2 x2 + cy2 v -1 ) r mod p is V, and r, x1 , X2, y1, y
Without divulging the secret about No. 2 to a third party with zero knowledge proof (S6). This zero knowledge proof is performed in the following procedure.

【0038】以下では、g,hを、gを底とするhの離
散対数が未知であるようなGqの元とする。復号者装置
は、乱数a,a1,a2,b1,b2をZqより選択
し、 R=gr a mod p RX1=Rx1a1 modp RX2=Rx2a2 modp RY1=Ry1b1 modp RY2=Ry2b2 modp なるR,RX1,RX2,RY1,RY2を検証者装置
へ送付する。
In the following, g and h are elements of Gq such that the discrete logarithm of h whose base is g is unknown. Decoding's device, a random number a, a1, a2, b1, b2 selected from Zq, R = g r h a mod p RX1 = R x1 h a1 modp RX2 = R x2 h a2 modp RY1 = R y1 h b1 modp RY2 = R y2 h b2 modp become R, RX1, RX2, RY1, RY2 to the sent to the verifier apparatus.

【0039】さらに、復号者装置は乱数w0をZqより
ランダムに選択し、 K=g,L=gw0 mod p を検証者装置へ送付する。検証者装置は、e0およびe
1をZqよりランダムに選択して B=Ke0e1 modp を計算してBを復号者装置へ送付する。
Further, the decryption apparatus randomly selects a random number w0 from Zq, and sends K = g, L = g w0 mod p to the verifier apparatus. The verifier device has e0 and e
1 is randomly selected from Zq to calculate B = K e0 L e1 modp and send B to the decoder.

【0040】復号者装置は乱数w1〜w18をZqより
ランダムに選択し、 T1 =g1 w12 w2 mod p T2 =g1 w32 w4 mod p T3 =gw5w6 mod p T4 =Rw1w7 mod p T5 =Rw2w8 mod p T6 =Rw3w9 mod p T7 =Rw4w10 mod p T8 =gw11 w12 mod p T9 =gw13 w14 mod p T10=gw15 w16 mod p T11=gw17 w18 mod p T12=u1w11+cw15u2w13+cw17-w5 mod p を計算して、検証者装置へ送付する。
The decoder's device selects a random number w1~w18 randomly from Zq, T 1 = g 1 w1 g 2 w2 mod p T 2 = g 1 w3 g 2 w4 mod p T 3 = g w5 g w6 mod p T 4 = R w1 h w7 mod p T 5 = R w2 h w8 mod p T 6 = R w3 h w9 mod p T 7 = R w4 h w10 mod p T 8 = g w11 h w12 mod p T 9 = g w13 to calculate the h w14 mod p T 10 = g w15 h w16 mod p T 11 = g w17 h w18 mod p T 12 = u1 w11 + cw15 u2 w13 + cw17 v -w5 mod p, and sends to the verifier apparatus.

【0041】検証者装置は、e0,e1を復号者装置へ
送付する。 復号者装置は、B=Ke0e1 modp が成り立つことを確認し、成り立たない場合は証明を中
止する。これが成り立つ場合、復号者装置は z1=w1+e0・x1 modq z2=w2+e0・x2 modq z3=w3+e0・y1 modq z4=w4+e0・y2 modq z5=w5+e0・r modq z6=w6+e0・a modq z7=w7+e0・a1 modq z8=w8+e0・a2 modq z9=w9+e0・b1 modq z10=w10+e0・b2 modq z11=w11+e0・r・x1 modq z12=w12+e0(a・x1+a1) modq z13=w13+e0・r・x2 modq z14=w14+e0(a・x2+a2) modq z15=w15+e0・r・y1 modq z16=w16+e0(a・y1+b1) modq z17=w17+e0・r・y2 modq z18=w18+e0(a・y2+b2) modq を計算してz1〜z18およびw0を検証者装置へ送付
する。
The verifier sends e0 and e1 to the decryptor. The decryption apparatus confirms that B = K e0 L e1 modp holds, and stops the certification if it does not hold. If this is true, the decryptor apparatus calculates: z1 = w1 + e0 * x1 modq z2 = w2 + e0 * x2 modq z3 = w3 + e0 * y1 modq z4 = w4 + e0 * y2 modq z5 = w5 + e0 * r modq z6 = w6 + e0 * a modq e7 * 7 z8 = w8 + e0 · a2 modq z9 = w9 + e0 · b1 modq z10 = w10 + e0 · b2 modq z11 = w11 + e0 · r · x1 modq z12 = w12 + e0 (a · x1 + a1) modq z13 = w13 + e0 · r · x2 + modxz14 Modq z15 = w15 + e0 · r · y1 modq z16 = w16 + e0 (a · y1 + b1) modq z17 = w17 + e0 · r · y2 modq z18 = w18 + e0 (a · y2 + b2) modq is calculated, and z1 to z18 and w0 are sent to the verifier device. Send it.

【0042】検証者装置は、 L=gw0 modp g1 z12 z2=T1 e0mod p g1 z32 z4=T2 e0mod p gz5z6=T3 e0 modp Rz1z7=T4 (RX1)e0mod p Rz2z8=T5 (RX2)e0mod p Rz3z9=T6 (RY1)e0mod p Rz4z10 =T7 (RY2)e0mod p gz11 z12 =T8 (RX1)e0mod p gz13 z14 =T9 (RX2)e0mod p gz15 z16 =T10(RY1)e0mod p gz17 z18 =T11(RY2)e0mod p u1z11+cz15u2z13+cz17-z5 =T12e0mod p が成り立つことを検証する。The verifier apparatus, L = g w0 modp g 1 z1 g 2 z2 = T 1 X e0 mod p g 1 z3 g 2 z4 = T 2 Y e0 mod p g z5 h z6 = T 3 R e0 modp R z1 h z7 = T 4 (RX1 ) e0 mod p R z2 h z8 = T 5 (RX2) e0 mod p R z3 h z9 = T 6 (RY1) e0 mod p R z4 h z10 = T 7 (RY2) e0 mod p g z11 h z12 = T 8 (RX1) e0 mod p g z13 h z14 = T 9 (RX2) e0 mod p g z15 h z16 = T 10 (RY1) e0 mod p g z17 h z18 = T 11 (RY2) to verify that the e0 mod p u1 z11 + cz15 u2 z13 + cz17 v -z5 = T 12 V e0 mod p holds.

【0043】上の証明の原理は、Schnorr 署名と同様で
あり、復号者装置がV,X,Y,R,RX1,RX2,
RY1,RY2を正しく作成した場合にのみ検証式が成
り立つので、一つでも成り立たない場合は検証を失敗と
する。実施例2 以下に、この発明の第二の実施例について説明する。図
3に示すように暗号作成者装置11と復号者P1〜Pn
の各装置121 〜12n とは放送型通信路14に接続さ
れ、また復号者装置121 〜12n は相互に安全な通信
路15で接続されている。
The principle of the above proof is the same as that of the Schnorr signature, and the decryptor device is V, X, Y, R, RX1, RX2,
Since the verification formula is valid only when RY1 and RY2 are created correctly, the verification fails if even one does not hold. Embodiment 2 Hereinafter, a second embodiment of the present invention will be described. As shown in FIG. 3, the cipher creator device 11 and the decryptors P1 to Pn
And each device 12 1 to 12 n of which is connected to the broadcast channel 14, also decipherer device 12 1 to 12 n are connected by a secure communication channel 15 to each other.

【0044】いま大きな素数p,qがあり、qはp−1
を割り切るものとする。Gqの元g1,g2をランダム
に選択する。まず、n人の復号者をP1〜Pnとし、各
復号者Pj(j=1,2,…,n)に対し、固有の公開
値wjを割り振る。3t<nを満たすしきい値tを定め
る。全復号者装置は、しきい値tの分散乱数生成手順を
回実行し、復号者Pjの装置は秘密値(x1j,x2
j,y1j,y2j,zj)を得、これを復号者Pjの
秘密鍵とする。また、Xj=g1x1j g2x2j mod p,
Yj=g1y1j g2y2j mod p,Zj=g1zjmod pな
る(Xj,Yj,Zj)を復号者Pjの公開鍵とする。
さらに、X=g1x1g2x2mod p,Y=g1y1g2y2mo
d p,Z=g1z mod pを暗号化手順に用いる公開鍵と
する。ここで、(x1,x2,y1,y2,z)∈Zq
5 は任意のt+1組の秘密値(x1j,x2j,y1
j,y2j,zj)から、秘密復元手順により復元され
る乱数である。このような乱数を生成する分散乱数生成
手順には、例えば、Pedersenによる方法があ
る。以下に、その分散乱数生成手順を示す。
Now, there are large prime numbers p and q, and q is p−1
Is divisible. Elements g1 and g2 of Gq are randomly selected. First, n decryptors are defined as P1 to Pn, and a unique public value wj is allocated to each decryptor Pj (j = 1, 2,..., N). A threshold value t that satisfies 3t <n is determined. All the decryption apparatuses perform a distributed random number generation procedure of the threshold value t.
5 times, and the device of the decryptor Pj determines that the secret value (x1j, x2
j, y1j, y2j, zj), and this is used as the secret key of the decryptor Pj. Xj = g1 x1j g2 x2j mod p,
Let (Xj, Yj, Zj) such that Yj = g1 y1j g2 y2j mod p and Zj = g1 zj mod p be the public key of the decryptor Pj.
Further, X = g1 x1 g2 x2 mod p, Y = g1 y1 g2 y2 mo
Let d p, Z = g1 z mod p be the public key used in the encryption procedure. Here, (x1, x2, y1, y2, z) ∈Zq
5 is an arbitrary t + 1 set of secret values (x1j, x2j, y1
j, y2j, zj) are random numbers restored by the secret restoration procedure. As a distributed random number generation procedure for generating such random numbers, for example, there is a method by Pedersen. The procedure for generating the distributed random numbers will be described below.

【0045】各々の復号者装置間には、図3に示したよ
うに安全な通信路15があるものとし、また、各復号者
装置は、他の全員の復号者装置が同一の内容を受信する
ことが保証される放送型通信路14を利用できるものと
する。 S−1)Pjの装置はZq上の二つの多項式f(X)=
0j+a1jX+…+a tjt およびgj (X)=b0j
1jX+…+btjt をランダムに選択し、各Pkの装
置(k=1,2,…,n、k=jを除く)へfj(w
k)およびgj(wk)を安全な通信路を通じて送信す
る。
As shown in FIG. 3, between each decryptor device.
It is assumed that there is a secure communication channel 15 and that each decryptor
The device receives the same content from all other decryptor devices
That can use the broadcast type communication path 14 that is guaranteed to be
I do. S-1) The device of Pj has two polynomials f (X) =
a0j+ A1jX + ... + a tjXtAnd gj(X) = b0j+
b1jX + ... + btjXtRandomly select the Pk
(K = 1, 2,..., N, excluding k = j) fj (w
k) and gj (wk) over a secure channel
You.

【0046】S−2)Pjの装置はi=0,1,…,t
に対してCij=g1aij g2bij mod pを計算し、放送
型通信路を通じて他の全ての復号者装置へ送信する。S
−3)他の全ての復号者装置からCijを受信したPkの
装置はwki=wki mod qとしてg1fj(wk)g2
gj(wk)=C0j wk0 ・C1j wk1 …Ctj wkt mod pが成り立
つことを検証する。
S-2) The device of Pj is i = 0, 1,..., T
The C ij = g1 aij g2 bij mod p calculated for, and transmits through the broadcast communication channel to all other decoder's apparatus. S
-3) The apparatus of Pk that received the C ij from all other decipherer device wki = wk i mod q as g1 fj (wk) g2
gj (wk) = C 0j wk0 · C 1j wk1 ... Verify that C tj wkt mod p holds.

【0047】S−4)Pkの装置はx1k=f1(w
k)+f2(wk)+…+fn(wk)mod q、x2k
=g1(wk)+g2(wk)+…+gn(wk)mod
qとして分散乱数値x1k,x2kを得る。S−5)X
=C 01…C0n modpとする。同様に公開鍵Y,Zおよび
各復号者の対応する秘密鍵y1j,y2j,zjも同様
に作成する。
S-4) The device of Pk is x1k = f1 (w
k) + f2 (wk) +... + fn (wk) mod q, x2k
= G1 (wk) + g2 (wk) + ... + gn (wk) mod
The distributed random number values x1k and x2k are obtained as q. S-5) X
= C 01 ... C 0n modp. Similarly, the public keys Y and Z and the corresponding private keys y1j, y2j and zj of each decryptor are created in the same manner.

【0048】全復号者装置は、分散乱数生成手順によっ
て、分散された乱数r∈Zqを生成し、各復号者Pjの
装置は秘密値rjを保持する(図5,S1)。X,Y,
Zを公開鍵としたCramer-Shoup暗号方法により暗号化さ
れた平文mの暗号文E=(u1,u2,v,e)を受信
した後(S2)、各復号者Pjの装置は、c=H(u
1,u2)およびVj=(u1x1j+cy1ju2x2j+cy2j
-1rjmod pを計算する(S3)。
All the decryptor's devices generate a distributed random number rqZq by the distributed random number generation procedure, and each decrypter Pj's device holds the secret value rj (FIG. 5, S1). X, Y,
After receiving the ciphertext E = (u1, u2, v, e) of the plaintext m encrypted by the Cramer-Shoup encryption method using Z as a public key (S2), the device of each decryptor Pj sets c = H (u
1, u2) and Vj = (u1 x1j + cy1j u2 x2j + cy2j v
-1 ) Calculate rj mod p (S3).

【0049】続いてPjの装置はVjをしきい値2tの
検証可能秘密分散法により分散し、値wkに対応する秘
密値Vjkを各復号者Pkの装置に安全な通信路を介し
て送信する(S4)。ここで用いる検証可能秘密分散法
には、Pedersenの方法を用いることができる。
以下はその手順である。 P−1)大きな素数P,Qがあり、QはP−1を割り切
り、またQ>pとする、gおよびhは、log g hの値が
未知であるようなGQ の元とする。
Subsequently, the device of Pj distributes Vj by a verifiable secret sharing method with a threshold value of 2t, and transmits a secret value Vjk corresponding to the value wk to the device of each decryptor Pk via a secure communication path. (S4). Pedersen's method can be used for the verifiable secret sharing method used here.
The following is the procedure. P-1) There are large prime numbers P and Q, Q divides P-1 and Q> p, and g and h are elements of G Q for which the value of log g h is unknown.

【0050】P−2)Pjの装置はZQ 上の二つの多項
式fj (X)=Vj +a1jX+…+atjt およびgj
(X)=b0j+b1jX+…+btjt (ただしa0j=V
jとする)をVjの部分を除いてランダムに選択し、各
Pkの装置へfj(wk)およびgj(wk)、つまり
Vjkを安全な通信路を通じて送信する。P−3)Pj
の装置はi=0,1,…,tに対してCij=gaij
bij mod pを計算し、放送型通信路を通じて他の全ての
復号者装置へ送信する。
[0050] P-2) two of the polynomial f j on the device Pj Z Q (X) = V j + a 1j X + ... + a tj X t and g j
(X) = b 0j + b 1j X +... + B tj X t (where a 0j = V
j) are selected at random except for the portion of Vj, and fj (wk) and gj (wk), that is, Vjk, are transmitted to each Pk device through a secure communication channel. P-3) Pj
Apparatus has C ij = g aij h for i = 0, 1,..., T.
Calculate bij mod p and transmit it to all other decoder devices via the broadcast channel.

【0051】P−4)Cijを受信したPkの装置はwk
i=wki mod qとしてgfj(wk) gj(wk)=C0j wk0
1j wk1 …Ctj wkt mod pが成り立つことを検証する、
つまりVjkを検証する(S5)。 P−5)成り立たない場合、Pkの装置は「不合格」を
放送型通信路を通じて他の全ての復号者装置へ送信す
る。
P-4) CijThe device of Pk that has received
i = wkig as mod qfj (wk)h gj (wk)= C0j wk0
C1j wk1... Ctj wktverify that mod p holds,
That is, Vjk is verified (S5). P-5) If this does not hold, the Pk device gives a “fail”
Transmit to all other decryptor devices via broadcast communication channel
You.

【0052】P−6)「不合格」通知がt+1個以上で
ある場合、Pjは不正者と見なされて排除され(S
6)、他の全復号者装置はPjの装置が以前に送信した
全ての情報を廃棄する。P−4,5,6のステップは分
散秘密値Vjkの検証と、不正者の排除を行う手順であ
り、全ての復号者装置がデータを送信し終わった後、ま
とめて不合格リストを公表することで行ってもよい。
P-6) If the number of "fail" notifications is t + 1 or more, Pj is regarded as an unauthorized person and is excluded (Sj).
6), all other decryptor devices discard all information previously transmitted by the device of Pj. Steps P-4, 5, and 6 are procedures for verifying the shared secret value Vjk and removing an unauthorized person. After all decryption apparatuses have finished transmitting data, a reject list is made public. It may be done by doing.

【0053】全復号者装置が上記手順によってVjを分
散した後、各復号者Pjの装置は、Vjおよびb0jを放
送型通信路を通じて他の全ての復号者装置へ送信する
(S7)。これを受信した各復号者Pjの装置は、C0j
=g1Vjb0j mod pが成り立つことを確認してVjを
検証する(S8)。成り立たない場合は、前記同様、
「不合格」を他の全復号者装置へ通知し、不正者を排除
する(S9)。
After all the decoders have distributed Vj according to the above procedure, each decoder Pj transmits Vj and b0j to all other decoders via the broadcast communication channel (S7). The device of each decryptor Pj that has received this is C 0j
= G1 Vj hb0j mod p is verified and Vj is verified (S8). If it does not hold,
"Fail" is notified to all other decryption apparatuses, and an unauthorized person is excluded (S9).

【0054】正しいと確認された全てのVkから任意に
2t+1個を選択し(S10)、指数部に対する秘密復
元手順により復元した値Vが1に等しいか否かを調べる
(S11)。指数部に対する秘密復元手順は文献 Crame
r,et.al:“ A seure and Optimally Efficient Multi-A
uthority Election Scheme”, Advances in Cryptology
-Eurocrypt'97 , LNCS 1233 Springer-Verlag, pp.103-
118, 1997 に詳しい。以下に、選択した2t+1個のV
kのインデックスkの集合をαとした場合の指数部に対
する復元手順を示す。指数部の秘密値はPederse
nの検証可能秘密分散法で得られた秘密値であるとす
る。
2t + 1 are arbitrarily selected from all Vk confirmed to be correct (S10), and it is checked whether or not the value V restored by the secret restoration procedure for the exponent part is equal to 1 (S11). The secret recovery procedure for the exponent is described in Crame
r, et.al: “A seure and Optimally Efficient Multi-A
uthority Election Scheme ”, Advances in Cryptology
-Eurocrypt'97, LNCS 1233 Springer-Verlag, pp.103-
118, 1997 Below, the selected 2t + 1 V
The restoration procedure for the exponent part when the set of the index k of k is α is shown. The secret value of the exponent is Pederse
Let n be a secret value obtained by the verifiable secret sharing scheme.

【0055】R−1)まず、Lagrange補間係数
R-1) First, the Lagrange interpolation coefficient is

【0056】[0056]

【数1】 として計算する。 R−2)次に、(Equation 1) Is calculated as R-2) Next,

【0057】[0057]

【数2】 を計算する。Vが1でないならば他の2t+1個の組み
合わせで同様に秘密復元手順を繰り返す(S12)。全
ての組み合わせについていずれも復元値が1に等しくな
いならば、不合格を通知して停止する。
(Equation 2) Is calculated. If V is not 1, the secret restoration procedure is similarly repeated for another 2t + 1 combinations (S12). If the restoration value is not equal to 1 for all combinations, a failure is notified and the operation is stopped.

【0058】一つでも1になる組み合わせがあったなら
ば、この暗号文を合格とする。各復号者Pjの装置は図
4に示すようにDj=u1zjmod pを計算し(S1)、
放送型通信路により他の全ての復号者装置へ送信する
(S2)。Djを受信した各復号者装置はD1,…,D
nのu1を底とする離散対数がBCH符号のコードワー
ドであることを確認し(S4)、コードワードであれ
ば、前述の指数部に対する秘密復元手順によりD=u1
z mod pを復元し(S5)、m=e/D modpを計算し
てメッセージmを復号する(S6)。ステップS4でコ
ードワードでなければ、零知識証明により、計算の正し
さを証明させ、証明できないものは不正のDiとして廃
棄する(S7)。実施例3 以下に、この発明の第三の実施例について説明する。
If there is at least one combination, the ciphertext is accepted. The device of each decryptor Pj calculates Dj = u1 zj mod p as shown in FIG. 4 (S1),
The data is transmitted to all the other decryption apparatuses via the broadcast communication channel (S2). D1,..., D
It is confirmed that the discrete logarithm of n base u1 is the codeword of the BCH code (S4), and if it is a codeword, D = u1 by the secret restoration procedure for the exponent described above.
z mod p is restored (S5), and m = e / D modp is calculated to decode the message m (S6). If it is not a code word in step S4, the correctness of the calculation is proved by the zero knowledge proof, and those that cannot be proved are discarded as illegal Di (S7). Embodiment 3 Hereinafter, a third embodiment of the present invention will be described.

【0059】各々の復号者装置間には、安全な通信路が
あるものとし、また、各復号者装置は、他の全員の復号
者装置が同一の内容を受信することが保証される放送型
通信路を利用できるものとする。大きな素数p,qがあ
り、qはp−1を割り切るものとする。Gqの元g1,
g2をランダムに選択する。まず、n人の復号者をP1
〜Pnとし、各復号者Pjに対し、固有の公開値wjを
割り振る。3t<nを満たすしきい値tを定める。
It is assumed that there is a secure communication path between each of the decryption devices, and each of the decryption devices has a broadcast type in which all other decryption devices are guaranteed to receive the same contents. It is assumed that a communication path can be used. There are large prime numbers p and q, and q is divisible by p-1. The element g1 of Gq
g2 is selected at random. First, n decryptors are P1
To Pn, and a unique public value wj is assigned to each decryptor Pj. A threshold value t that satisfies 3t <n is determined.

【0060】まず、Pedersenによる秘密分散方
法を示す。まず、g,hを logg hが未知であるような
Gqの元とする。秘密値a0,b0を分散する分配者P
の装置は、Zq上のt次の二つの多項式f(X)=a0
+a1X+…+atXt ,g(X)=b0+b1X+…
+btX t をa0を除いてランダムに選択し、各受信者
Pjの装置へf(wj),g(wj)を安全な通信路を
通じて送付する。
First, the secret sharing method by Pedersen
Show the law. First, let g and h be loggh is unknown
Gq. Distributor P that distributes secret values a0 and b0
Is a t-th order polynomial f (X) = a0 on Zq
+ A1X + ... + atXt, G (X) = b0 + b1X +...
+ BtX tIs randomly selected except for a0, and each recipient
Pass f (wj) and g (wj) to the Pj device via a secure communication channel
Send it through.

【0061】つぎに、各係数のコミット値Eiをi=
0,…,tに対してEi=gaibimod pのように計算
し、放送型通信路を介して公開する。これらを受信した
各Pjの装置は、uji=wji mod qとしてgf(wj)
g( wj) =E0uj0 E1uj1 …Etujt mod pが成り立
つことを検証する。このE0 uj0 E1uj1 …Etujt mo
d pの値をPjの分散秘密値に対するコミットメントと
呼ぶ。各係数のコミット値が公開されていれば、誰で
も、どのPjの分散秘密値に対するコミットメントも計
算することができる。
Next, the commit value Ei of each coefficient is set as i =
Ei = g for 0, ..., taihbicalculated like mod p
And publish it via a broadcast channel. Received these
The device of each Pj is uji = wjig as mod qf (wj)
hg ( wj)= E0uj0E1uj1... Etujtmod p holds
Verify that This E0 uj0E1uj1... Etujtmo
Let the value of d p be the commitment to the shared secret value of Pj and
Call. If the commit value of each coefficient is published,
And the commitment to the shared secret value of any Pj
Can be calculated.

【0062】以下では、この秘密分散方法を Ped(a0,b0)[g,h] → (a0j,b0
j)(E0,…,Et) のように書く。(a0,b0)は分散される秘密情報で
あり、(a0j,b0j)は各Pjの装置が安全な通信
路を介して受信する分散秘密値であり、それぞれf(w
j),g(wj)に等しい。(E0,…,Et)は放送
型通信路を通じて公開される、各係数のコミット値であ
る。[g,h]はコミットを作成する際に用いる底を表
す。上記記法に関して、特に断りがない限り、定数項を
除く多項式の係数はランダムに選ぶものとする。
In the following, this secret sharing method is represented by Ped (a0, b0) [g, h] → (a0j, b0
j) Write as (E0, ..., Et). (A0, b0) is the secret information to be distributed, (a0j, b0j) is the distributed secret value received by the device of each Pj via a secure communication path, and each of them is f (w
j), g (wj). (E0,..., Et) are the commit values of the respective coefficients that are made public through the broadcast communication channel. [G, h] represents a base used when creating a commit. Regarding the above notation, unless otherwise specified, the coefficients of the polynomial except for the constant term are randomly selected.

【0063】このようにして分散された秘密値から、多
項式補間によって元の秘密を回復する場合には、まず、
各分散秘密値の保持者は、その値を公開する。公開され
た(a0j,b0j)値に対して、ga0j b0j =E0
uj0 E1uj1 …Etujt modpが成り立つことを確認す
る。この式が成り立つような任意のt+1個の(a0
j,b0j)について、そのインデックスjが作る集合
をαとする。Lagrange補間係数を
To recover the original secret from the secret value thus distributed by polynomial interpolation, first,
The holder of each shared secret value publishes that value. For the published (a0j, b0j) value, g a0j h b0j = E0
uj0 E1 uj1 ... Confirm that Etujt modp holds. Any t + 1 (a0
j, b0j), the set created by the index j is α. Lagrange interpolation coefficient

【0064】[0064]

【数3】 とすると、(Equation 3) Then

【0065】[0065]

【数4】 となり、a0を回復することができる。b0も同様にし
て回復できる。上記秘密分散方法は、底を一つだけ用い
ても全く同様に実行することができる。そのような場合
は、Ped(a0)[g]→(a0j)(E0,…,E
t)と書く。
(Equation 4) And a0 can be recovered. b0 can be similarly recovered. The above secret sharing method can be executed in exactly the same manner even if only one base is used. In such a case, Ped (a0) [g] → (a0j) (E0,..., E
Write t).

【0066】この秘密分散方法を利用して、複数人が協
調して分散された乱数を生成することができる。まず、
Piの装置は、乱数ai,biをZqより選択し、これ
を Ped(ai,bi)[g,h]→(aij,bij)
(Ei0…,Eit) のように分散する。P1〜Pnの全員がこれを実行す
る。すると、Pjの装置は、(a1j,b1j),…,
(anj,bnj)を安全な通信路から受信し、(E1
0,…,E1t),…,(En0,…,Ent)を放送
型通信路から受信する。このとき、Pjの分散秘密値
(x1j,x2j)を、x1j=a1j+…+anj m
odq,x2j=b1j+…+bnj modqとする。この
分散秘密値から回復される乱数値x1は、
Using this secret sharing method, a plurality of people can cooperatively generate a random number that is shared. First,
The Pi device selects random numbers ai and bi from Zq, and calculates them as Ped (ai, bi) [g, h] → (aij, bij)
(Ei0..., Eit). All of P1 to Pn execute this. Then, the device of Pj is (a1j, b1j),.
(Anj, bnj) is received from the secure communication path, and (E1
0,..., E1t),..., (En0,. At this time, the shared secret value (x1j, x2j) of Pj is represented by x1j = a1j +... + Anj m
odq, x2j = b1j +... + bnj modq. The random number value x1 recovered from the shared secret value is

【0067】[0067]

【数5】 であり、回復が実行されるまでは、誰にもその値が知ら
れることはない。また、この秘密乱数値を定数とする多
項式のk次の係数のコミット値EXkは、EXk=E1
k・E2k…Enkmod pとなる。特に、EX0=gx1
x2mod pであることに注意。この方法を、分散乱数生
成とよび、 Rand([a],[b])[g,h]→(aj,b
j)(E0,…,Et) と書く。([a],[b])は、生成される乱数値であ
り、[ ]はその値がどの計算者に対しても未知である
ことを意味する。[g,h],(aj,bj)および
(E0,…,Et)の意味は、前述の秘密分散の記法と
同様である。
(Equation 5) And no one knows its value until the recovery is performed. Further, the commit value EXk of the k-th coefficient of the polynomial using the secret random value as a constant is expressed as EXk = E1
k · E2k... Enkmod p. In particular, EX0 = g x1
Note that h x2 mod p. This method is called distributed random number generation, and Rand ([a], [b]) [g, h] → (aj, b
j) Write (E0,..., Et). ([A], [b]) are generated random numbers, and [] means that the value is unknown to any computer. The meanings of [g, h], (aj, bj) and (E0,..., Et) are the same as those of the secret sharing notation described above.

【0068】全復号者装置は、しきい値tの分散乱数生
成手順を Rand([x1],[x2])[g1,g2]→(x
1j,x2j)(EX0,…,EXt) Rand([y1],[y2])[g1,g2]→(y
1j,y2j)(EY0,…,EYt) Rand([z1])[g1]→(z1j)(EZ0,
…,EZt) のように3回実行し、復号者Pjの装置は秘密値(x1
j,x2j,y1j,y2j,zj)を得、これを復号
者Pjの装置の秘密鍵とする。また、Xj=g1x1j
x2j mod p,Yj=g1y1j g2y2j mod p,Zj=
g1zjmod pなる(Xj,Yj,Zj)を復号者Pj
装置の公開鍵とする。さらに、X=EX0=g1x1g2
x2mod p,Y=EY0=g1y1g2y2mod p,Z=EZ
0=g1zmod pを暗号化手順に用いる公開鍵とする。
ここで(x1,x2,y1,y2,z)∈Zq5 は任意
のt+1組の秘密値(x1j,x2j,y1j,y2
j,zj)から、秘密復元手順により復元される乱数で
ある。
The all-decoder apparatus performs a procedure for generating a distributed random number with a threshold value t by Rand ([x1], [x2]) [g1, g2] → (x
1j, x2j) (EX0,..., EXt) Rand ([y1], [y2]) [g1, g2] → (y
1j, y2j) (EY0,..., EYt) Rand ([z1]) [g1] → (z1j) (EZ0,
..., run three times as EZt), apparatus of the decryption person Pj is a secret value (x1
j, x2j, y1j, y2j, zj), and this is used as the secret key of the device of the decryptor Pj. Xj = g1 x1j g
2 x2j mod p, Yj = g1 y1j g2 y2j mod p, Zj =
g1 zj mod p (Xj, Yj, Zj) is assigned to the decryptor Pj .
The public key of the device . In addition, X = EX0 = g1 x1 g2
x2 mod p, Y = EY0 = g1 y1 g2 y2 mod p, Z = EZ
Let 0 = g1 z mod p be the public key used in the encryption procedure.
Here (x1, x2, y1, y2 , z) ∈Zq 5 is arbitrary t + 1 set of secret values (x1j, x2j, y1j, y2
j, zj) is a random number restored by the secret restoration procedure.

【0069】全復号者装置は、分散乱数生成手順Ran
d([r],[s])[g1,g2]→(rj,sj)
(R0,…,Rt)を実行し、分散された乱数r∈Zq
を生成し、各復号者Pjの装置は秘密値rj,sjを保
持する(図6、S1)。ここでRをR=R0=g1r
s mod pとする。
[0069] All the decryptor apparatuses perform a distributed random number generation procedure Ran.
d ([r], [s]) [g1, g2] → (rj, sj)
(R0,..., Rt) and a distributed random number r∈Zq
Is generated, and the device of each decryptor Pj holds the secret values rj and sj (FIG. 6, S1). Here, R is R = R0 = g1 r g
2 s mod p.

【0070】次に、全復号者装置は、分散乗算手段によ
って秘密値x1j′,x2j′,y1j′,y2j′を
得る(S2)。ここで、秘密値x1j′は、乱数rと秘
密鍵x1の積をしきい値tの秘密分散法により分散して
得られる値であり、任意のt+1人の復号者が持つx1
j′から、rx1(mod q)を復号することが可能であ
る。秘密値x2j′,y1j′,y2j′についても同
様に、それぞれ任意のt+1個の値から、rx2(mod
q),ry1(mod q),ry2(mod q)を復元する
ことができる。このような分散乗算手段については、以
下のように実行する。
Next, all the decryption apparatuses obtain secret values x1j ', x2j', y1j ', y2j' by means of distributed multiplication means (S2). Here, the secret value x1j ′ is a value obtained by distributing the product of the random number r and the secret key x1 by the secret sharing method with the threshold value t, and x1 held by any t + 1 decryptors
From j ′, rx1 (mod q) can be decoded. Similarly, for the secret values x2j ', y1j', y2j ', rx2 (mod
q), ry1 (mod q) and ry2 (mod q) can be restored. Such a variance multiplication means is executed as follows.

【0071】復号者Pjの装置は、 Ped(x1j,x2j)[g1,g2]→(x1j
i,x2ji)(EXj0,…,EXjt) を実行する。各Pjの装置は、Rj=g1rjg2sjmod
pを計算する。この値Rjは、uji=wji mod qと
してRj=R0uj0 R1uj1 …Rtujt mod pのように
計算しても良いので、誰でも計算できることに注意。
The device of the decryptor Pj is as follows: Ped (x1j, x2j) [g1, g2] → (x1j
i, x2ji) (EXj0,..., EXjt). The device of each Pj is Rj = g1 rj g2 sj mod
Calculate p. This value Rj, since uji = wj i mod q as Rj = R0 uj0 R1 uj1 ... may be calculated as Rt ujt mod p, note that you can calculate anyone.

【0072】次に、Pjの装置は、Ped(x1j,x
2j)でx1j,x2jを分散するのに用いた多項式を
そのまま用いて、Ped(x1j,s1j)[Rj,g
2]→(x1ji,s1ji)(ERX1j0,…,E
RX1jt) Ped(x2j,s2j)[Rj,g2]→(x1j
i,s2ji)(ERX2j0,…,ERX2jt) を実行する。ただし、s1j,s2jはランダムに選
び、また、これらを定数項とする多項式もランダムに選
ぶ。
Next, the device of Pj is Ped (x1j, x
2d), Ped (x1j, s1j) [Rj, g
2] → (x1ji, s1ji) (ERX1j0,..., E
RX1jt) Ped (x2j, s2j) [Rj, g2] → (x1j
i, s2ji) (ERX2j0,..., ERX2jt). However, s1j and s2j are randomly selected, and a polynomial using these as a constant term is also randomly selected.

【0073】最後に、Pjの装置は Ped(x1j・rj,x1j・sj+s1j)[g
1,g2]→(rx1ji,rs1ji)(ERX1j
0,…,ERX1jt) Ped(x2j・rj,x2j・sj+s2j)[g
1,g2]→(rx2ji,rs2ji)(ERX2j
0,…,ERX2jt) とする。
Finally, the device of Pj is Ped (x1j · rj, x1j · sj + s1j) [g
1, g2] → (rx1ji, rs1ji) (ERX1j
0,..., ERX1jt) Ped (x2j · rj, x2j · sj + s2j) [g
1, g2] → (rx2ji, rs2ji) (ERX2j
0, ..., ERX2jt).

【0074】上記手順をP1〜Pnの各装置が実行す
る。Piの装置は、受信した分散秘密値の集合(rx1
1i,…,rx1ni)から、Lagrange補間係
数を
The above procedure is executed by the devices P1 to Pn. The Pi device receives the set of received shared secret values (rx1
1i,..., Rx1ni), the Lagrange interpolation coefficient

【0075】[0075]

【数6】 を計算する。正しいx1j′のインデックスの集合をβ
とし、|β|>=t+1のとき、
(Equation 6) Is calculated. The set of correct x1j 'indices is β
When | β |> = t + 1,

【0076】[0076]

【数7】 となり、乗算結果r・x1を回復することができるの
で、x1j′がr・x1のt次の分散秘密値であること
が分かる。x1j′と同様に、x2j′も計算する。更
に、秘密値y1j′,y2j′についても同様に分散乗
算手順を実行して計算する。
(Equation 7) Since the multiplication result r · x1 can be recovered, it can be seen that x1j ′ is a t-th shared secret value of r · x1. Similarly to x1j ', x2j' is calculated. Further, the secret values y1j 'and y2j' are similarly calculated by executing the distributed multiplication procedure.

【0077】Cramer-Shoup暗号方法により暗号化された
平文mに対する暗号文E=(u1,u2,v,e)を受
信した後(S3)、各復号者Pjの装置は、c=H(u
1,u2)およびVj=u1x1j'+cy1j'u2x2j'+cy2j'
-rj mod pを計算し(S4)、放送型通信路を通じて
他の全ての復号者装置へVjを送信する(S5)。次
に、各復号者装置は、(V1,…,Vn)の指数部がB
CH符号のコードワードであることを確認する(S
6)。コードワード確認手順は、文献 F.J. MacWilliam
s : “ The Thory of Error Correcting Codes”, Nort
h-Holland Mathematical Library, pp.201-202または、
M.Ben-Or,S.Goldwasser, A.Wigerson:“ Completeness
Theorems for Non-Cryptographic Fault-Tolerant Dist
ributed Computation ”, 20th ACM Symposium on Theo
ry of Computing, pp.1-10, 1988に詳しい。以下にコー
ドワード確認手順を示す。 ・w≠1をmod qでの1のn乗根とし、ξij=w
j(i-1) modqとする。 ・j=1,…,2tの全てのjについて
After receiving the ciphertext E = (u1, u2, v, e) for the plaintext m encrypted by the Cramer-Shoup encryption method (S3), the device of each decryptor Pj sets c = H (u
1, u2) and Vj = u1 x1j '+ cy1j' u2 x2j '+ cy2j'
v- rj mod p is calculated (S4), and Vj is transmitted to all other decoder devices via the broadcast communication channel (S5). Next, in each decryptor, the exponent part of (V1,..., Vn) is B
Confirm that the code word is a CH code (S
6). For the codeword confirmation procedure, refer to the literature FJ MacWilliam
s: “The Thory of Error Correcting Codes”, Nort
h-Holland Mathematical Library, pp. 201-202 or
M. Ben-Or, S. Goldwasser, A. Wigerson: “Completeness
Theorems for Non-Cryptographic Fault-Tolerant Dist
ributed Computation ", 20 th ACM Symposium on Theo
See ry of Computing, pp. 1-10, 1988. The procedure for checking the codeword is shown below. Let w ≠ 1 be the nth root of 1 in mod q, and ξij = w
j (i-1) modq.・ For all j of j = 1, ..., 2t

【0078】[0078]

【数8】 となることを確認する。上記手順により、(V1,…,
Vn)の指数部が正しくないことが判明した場合、各復
号者Pjの装置は、Vjがu1x1j'+cy1j'u2
x2j'+cy2j'-rj mod pの計算結果であることをx1
j′,x2j′,y1j′,y2j′,rjに関する情
報を漏らすことなく、零知識証明によって他の復号者装
置に証明する(S7)。
(Equation 8) Make sure that By the above procedure, (V1, ...,
If the exponent part of Vn) is found to be incorrect, the device of each decryptor Pj determines that Vj is u1 x1j '+ cy1j' u2
x2j '+ cy2j' v- rj mod p is the calculation result of x1
Without leaking information on j ', x2j', y1j ', y2j', rj, it is proved to another decryption apparatus by the zero knowledge proof (S7).

【0079】この零知識証明は、以下のように実行す
る。ただし、以下のPjに対する手順の説明では、全て
の変数に添字jが付くため、これを省いて説明する。ま
ず、Pjの保持する分散秘密値x1′,x2′,y
1′,y2′,rに対して、a,a1,a2,b1をあ
る乱数として R=g1r g2s mod p RX1=ERX10=Rx1g2a1mod p RX2=ERX20=Rx2g2a2mod p RY1=ERY10=Ry1g2b1mod p RY2=ERY20=Ry2g2b2mod p なるコミットメントの値R,RX1,RX2,RY1,
RY2を、分散乱数生成手段および、分散乗算手段で公
開された係数のコミット値から、誰にでも得ることがで
きる。
This zero-knowledge proof is executed as follows. However, in the following description of the procedure for Pj, a subscript j is added to all variables, so that the description will be omitted. First, the shared secret values x1 ', x2', y held by Pj
1 ', y2', with respect to r, a, a1, a2, b1 as a random number in the R = g1 r g2 s mod p RX1 = ERX10 = R x1 g2 a1 mod p RX2 = ERX20 = R x2 g2 a2 mod p RY1 = ERY10 = R y1 g2 b1 mod p RY2 = ERY20 = R y2 g2 b2 mod p becomes the value of the commitment R, RX1, RX2, RY1,
RY2 can be obtained by anyone from the commit value of the coefficient published by the distributed random number generation means and the distributed multiplication means.

【0080】Pjは乱数w0をZqよりランダムに選択
し、 K=g,L=gw0mod p を他の復号者装置へ送付する。他の復号者装置は、協力
して Rand([e0],[e1])[K,L]→(e0
i,e1i)(Ee0,…,Eet) を実行し、Ee0=Ke0e1mod pをPjの装置へ送付
する。
Pj randomly selects a random number w0 from Zq, and sends K = g, L = g w0 mod p to another decryption apparatus. The other decryption apparatuses cooperate to make Rand ([e0], [e1]) [K, L] → (e0
i, e1i) (Ee0, ... , run the Eet), to send the Ee0 = K e0 L e1 mod p to the device of Pj.

【0081】Pjの装置は乱数w1〜w18をZqより
ランダムに選択し、 T1 =g1 w12 w2 modp T2 =g1 w32 w4 modp T3 =gw5w6 modp T4 =Rw1w7 modp T5 =Rw2w8 modp T6 =Rw3w9 modp T7 =Rw4w10modp T8 =gw11 w12 mod p T9 =gw13 w14 mod p T10=gw15 w16 mod p T11=gw17 w18 mod p T12=u1w11+cw15u2w13+cw17-w5 mod p を計算して、他の復号者装置へ送付する。
[0081] Pj device selects a random number w1~w18 randomly from Zq, T 1 = g 1 w1 g 2 w2 modp T 2 = g 1 w3 g 2 w4 modp T 3 = g w5 g w6 modp T 4 = R w1 h w7 modp T 5 = R w2 h w8 modp T 6 = R w3 h w9 modp T 7 = R w4 h w10 modp T 8 = g w11 h w12 mod p T 9 = g w13 h w14 mod p T 10 = calculate the g w15 h w16 mod p T 11 = g w17 h w18 mod p T 12 = u1 w11 + cw15 u2 w13 + cw17 v -w5 mod p, and sends to other decoding user equipment.

【0082】他の復号者装置は分散秘密値を公開してe
0,e1を回復し、Pjの装置へ送付する。Pjの装置
は、Ee0=Ke0e1 modpが成り立つことを確認し、
成り立たない場合は証明を中止する。これが成り立つ場
合、Pjの装置は S1=w1+e0・x1mod q S2=w2+e0・x2mod q S3=w3+e0・y1mod q S4=w4+e0・y2mod q S5=w5+e0・r mod q S6=w6+e0・a mod q S7=w7+e0・a1mod q S8=w8+e0・a2mod q S9=w9+e0・b1mod q S10=w10+e0・b2mod q S11=w11+e0・r・x1mod q S12=w12+e0(a・x1+a1)mod q S13=w13+e0・r・x2mod q S14=w14+e0(a・x2+a2)mod q S15=w15+e0・r・y1mod q S16=w16+e0(a・y1+b1)mod q S17=w17+e0・r・y2mod q S18=w18+e0(a・y2+b2)mod q を計算してS1〜S18およびw0を他の復号者装置へ
送付する。他の復号者装置は、 L=gw0 mod p g1 s12 s2=T1 e0 modp g1 s32 s4=T2 e0 modp gs5s6=T3 e0 modp Rs1s7=T4 (RX1)e0 modp Rs2s8=T5 (RX2)e0mod p Rs3s9=T6 (RY1)e0mod p Rs4s10 =T7 (RY2)e0mod p gs11 s12 =T8 (RX1)e0mod p gs13 s14 =T9 (RX2)e0mod p gs15 s16 =T10(RY1)e0mod p gs17 s18 =T11(RY2)e0mod p u1S11+cS15u2S13+cS17-S5 =T12e0mod p が成り立つことを検証する。
The other decryptor device discloses the shared secret value and sets e
0 and e1 are recovered and sent to the device of Pj. Pj of the device, make sure that the Ee0 = K e0 L e1 modp is true,
If it does not hold, the certification will be cancelled. If this holds, the device of Pj is: S1 = w1 + e0 · x1mod q S2 = w2 + e0 · x2mod q S3 = w3 + e0 · y1mod q S4 = w4 + e0 · y2mod q S5 = w5 + e0 · rmod qS6 = w6 + e0 · amod a1mod q S8 = w8 + e0 · a2mod q S9 = w9 + e0 · b1mod q S10 = w10 + e0 · b2mod q S11 = w11 + e0 · r · x1mod q S12 = w12 + e0 (a · x1 + a1) mod q S13 = w13 + e0 · r · x2mod q S14 = w14 + e0 ( a * x2 + a2) mod q S15 = w15 + e0 * r * y1 mod q S16 = w16 + e0 (a * y1 + b1) mod q S17 = w17 + e0 * r * y2mod q S18 = w18 + e0 (a * y2 + b2) mod q and calculate S1 to S18 w0 is sent to another decryption apparatus. Other decoding's device, L = g w0 mod p g 1 s1 g 2 s2 = T 1 X e0 modp g 1 s3 g 2 s4 = T 2 Y e0 modp g s5 h s6 = T 3 R e0 modp R s1 h s7 = T 4 (RX1) e0 modp R s2 h s8 = T 5 (RX2) e0 mod p R s3 h s9 = T 6 (RY1) e0 mod p R s4 h s10 = T 7 (RY2) e0 mod p g s11 h s12 = T 8 (RX1) e0 mod p g s13 h s14 = T 9 (RX2) e0 mod p g s15 h s16 = T 10 (RY1) e0 mod p g s17 h s18 = T 11 (RY2) e0 mod p u1 S11 + cS15 u2 S13 + cS17 v -S5 = T 12 V e0 mod p to verify that is true.

【0083】上式は、Pjの装置がV,X,Y,R,R
X1,RX2,RY1,RY2を正しく作成した場合に
のみ成り立つので、一つでも成り立たない場合は検証を
失敗とする(添字“j”を省略した説明は以上)。証明
に失敗した復号者Pjの装置は逸脱者であると見なさ
れ、逸脱者の秘密値x1j′,x2j′,y1j′,y
2j′,rjを他の復号者装置が秘密値回復手順を用い
て回復し、正しいVjの値を公開する。ここでの秘密値
回復手順については、例えば、文献 A.Herzberg, et.a
l: “ Proactive secret sharing or:How to cope with
perpetual leakage”, Advances in Cryptology-CRYPT
O'95,LNCS 963, pp.339-352, Springer-Verlag, 1995
に詳しい。その公開された正しいVjの値を含めて、正
しい(V1,…,Vn)を得る。
The above equation shows that the device of Pj is V, X, Y, R, R
Since it is valid only when X1, RX2, RY1, and RY2 are correctly created, the verification fails if even one does not hold (the explanation above omitting the suffix "j"). The device of the decryption person Pj who has failed to prove is regarded as a deviator, and the secret values x1j ', x2j', y1j ', y of the deviator
2j 'and rj are recovered by another decryption apparatus using a secret value recovery procedure, and the correct value of Vj is disclosed. For the secret value recovery procedure here, for example, see A. Herzberg, et.a
l: “Proactive secret sharing or: How to cope with
perpetual leakage ”, Advances in Cryptology-CRYPT
O'95, LNCS 963, pp.339-352, Springer-Verlag, 1995
Familiar with. The correct (V1,..., Vn) is obtained including the published correct value of Vj.

【0084】(V1,…,Vn)の指数部が正しいこと
を確認した後、指数部に対する秘密復元手順により、値
Vを復元する。各復号者装置はVが1に等しいか否かを
調べ、等しくないならば復号を拒否して停止する(S
8)。等しいならば、図4の場合と同様に、各復号者P
jの装置はDj=u1zjmodpを計算し、放送型通信路
により他の全ての復号者装置へ送信し、Djを受信した
各復号者装置は(D1,…,Dn)に対して(V1,
…,Vn)に対して行ったのと同様のコードワードの検
証を行い、不正を検出した場合には同様に零知識証明を
行って逸脱者を特定し、正しいDjの値を秘密値回復手
順を用いて回復する。
After confirming that the exponent part of (V1,..., Vn) is correct, the value V is restored by a secret restoration procedure for the exponent part. Each decryptor device checks whether V is equal to 1 and if not, refuses decryption and stops (S
8). If they are equal, then each decryptor P, as in FIG.
The device of j calculates Dj = u1 zj modp and transmits it to all other decoder devices via a broadcast-type communication channel. Each decoder device that receives Dj receives (V1,..., Dn) with respect to (D1,..., Dn). ,
.., Vn), the same codeword is verified, and if a fraud is detected, a zero-knowledge proof is similarly performed to identify the deviator, and the correct value of Dj is used as a secret value recovery procedure. Use to recover.

【0085】ここでの零知識証明は以下のように実行す
る。Pjの装置は乱数d0をZqよりランダムに選択
し、 W=g1 ,Q=g1 d0 modp を他の復号者装置へ送付する。他の復号者装置は、協力
して Rand([c2],[c3])[W,Q]→(c2
i,c3i)(Ec0,…,Ect) を実行し、Ec0=Wc2C3 modpをPjの装置へ送付
する。
The zero-knowledge proof here is executed as follows. The device of Pj randomly selects the random number d0 from Zq, and sends W = g 1 and Q = g 1 d0 modp to another decoder device. The other decryption apparatuses cooperate to make Rand ([c2], [c3]) [W, Q] → (c2
i, c3i) (Ec0, ... , run the Ect), to send the Ec0 = W c2 Q C3 modp to the device of Pj.

【0086】Pjの装置は乱数d1,d2をZqよりラ
ンダムに選択し、 T12=g1 d1 modp T13=u1d1 modp を計算して、他の復号者装置へ送付する。他の復号者装
置は分散秘密値を公開してc2,c3を回復し、Pjの
装置へ送付する。
The device of Pj randomly selects random numbers d1 and d2 from Zq, calculates T 12 = g 1 d1 modp T 13 = u1 d1 modp, and sends it to another decoder device. The other decryption apparatus publishes the shared secret value, recovers c2 and c3, and sends them to the apparatus of Pj.

【0087】Pjの装置はEc0=Wc2C3 modpが成
り立つことを確認し、成り立たない場合は証明を中止す
る。これが成り立つ場合、Pjの装置は S0=d1+c2・z1mod q を計算してS0およびd0を他の復号者装置へ送付す
る。他の復号者装置は、 Q=g1 d0 modp g1 s0=T12Xjc2 modp u1s0=T13Djc2 modp が成り立つことを検証する。
[0087] Pj of the device to make sure that holds true Ec0 = W c2 Q C3 modp, if you do not hold to cancel a certificate. If this holds, the device of Pj calculates S0 = d1 + c2 · z1mod q and sends S0 and d0 to another decoder device. Other decoding's device verifies that Q = g 1 d0 modp g 1 s0 = T 12 Xj c2 modp u1 s0 = T 13 Dj c2 modp holds.

【0088】上式は、Pjの装置がDjを正しく作成し
た場合にのみ成り立つので、一つでも成り立たない場合
は検証を失敗とする。各復号者装置は、正しい(D1,
…,Dn)から、指数部に対する秘密復元手順によって
D=u1z mod pを復元し、m=e/Dmod pを計算し
てメッセージmを復号する。
Since the above equation holds only when the device of Pj has correctly created Dj, the verification fails if even one does not hold. Each decryptor device is correct (D1,
, Dn), D = u1 z mod p is restored by a secret restoration procedure for the exponent part, and m = e / Dmod p is calculated to decrypt the message m.

【0089】図7に実施例2における復号者装置の機能
構成例を示す。メモリ21にはx1j,x2j,y1
j,y2j,zjの秘密鍵が記憶され、公開値wj,g
1,g2,p,qなども記憶され、更に外部へ送信する
情報、外部から受信する情報を一時記憶するためにメモ
リ21が用いられる。分散乱数生成部22は秘密分散器
23、分散秘密検証器24、分散秘密加算器25よりな
り、これらにより、秘密鍵x1j,x2j,y1j,y
2j,zjが作成され、また乱数rの分散値rjも生成
される。ハッシュ器26により受信暗号文Eについてc
=H(u1,u2)のハッシュ関数演算が行われ、また
べき乗演算器27によりVj=(u1x1j+ cy1ju2
x2j+cy2j-1rjmod pの演算が行われる。秘密分散部
31は秘密分散器32、分散秘密検証器33よりなり、
秘密値VjがVjkにしきい値2tの検証可能秘密分散
法により分散される。指数部秘密復元器34により、V
kの指数部に対する秘密復元手順が実行され、BCHコ
ードワード検証器35によりD1,…,Dnのw1を底
とする離散対数がBCH符号のコードワードであること
が確認される。放送型通信受信器36、放送型通信送信
器37、個別通信受信器38、個別通信送信器39が設
けられ、更に制御部41により各部が順次動作させられ
る。
FIG. 7 shows an example of a functional configuration of the decryption apparatus according to the second embodiment. The memory 21 has x1j, x2j, y1
j, y2j, zj private keys are stored, and public values wj, g
1, g2, p, q, etc. are also stored, and the memory 21 is used to temporarily store information to be transmitted to the outside and information to be received from the outside. The shared random number generation unit 22 includes a secret sharing device 23, a shared secret verification device 24, and a shared secret adder 25, and the secret keys x1j, x2j, y1j, y
2j and zj are generated, and a variance rj of the random number r is also generated. With respect to the received ciphertext E by the hasher 26, c
= H (u1, u2), and Vj = (u1 x1j + cy1j u2)
x2j + cy2j v -1 ) The operation of rj mod p is performed. The secret sharing unit 31 includes a secret sharing device 32 and a shared secret verification device 33,
The secret value Vj is distributed to Vjk by a verifiable secret sharing method with a threshold value of 2t. The exponent part secret recovery unit 34
A secret restoration procedure for the exponent part of k is executed, and the BCH codeword verifier 35 confirms that the discrete logarithm of D1,... A broadcast-type communication receiver 36, a broadcast-type communication transmitter 37, an individual communication receiver 38, and an individual communication transmitter 39 are provided, and each unit is sequentially operated by a control unit 41.

【0090】図8に実施例3に用いられる復号者装置の
機能構成を、図7と対応する部分に同一番号を付けて示
す。分散乗算手段43により、乱数rと秘密鍵x1の積
をしきい値tの秘密分散法により分散した値x1j′、
同様な値x2j′,y1j′,y2j′が求められる。
証明部44は乱数生成器45、べき乗演算器46、乗余
乗算・加算器47よりなり、Vjがu1x1j'+cy1j'u2
x2j'+cy2j'-rj modpの計算結果であることを零知識
証明によって他の復号者に証明する。零知識証明手順中
の検証は検証部48のべき乗演算器49と比較器51に
より行われる。
FIG. 8 shows the functional configuration of the decryption apparatus used in the third embodiment, with parts corresponding to those in FIG. A value x1j 'obtained by distributing the product of the random number r and the secret key x1 by the secret sharing method with the threshold value t by the sharing multiplication means 43,
Similar values x2j ', y1j', y2j 'are obtained.
The proving unit 44 includes a random number generator 45, a power calculator 46, and a modular multiplication / adder 47, and Vj is u1 x1j '+ cy1j' u2.
x2j '+ cy2j' v- rj The result of calculation of modp is proved to another decryptor by a zero-knowledge proof. The verification during the zero knowledge proof procedure is performed by the power calculator 49 and the comparator 51 of the verification unit 48.

【0091】[0091]

【発明の効果】Cramer-Shoup暗号における復号時の検証
式の値を、この発明では復号者の誰もがその値を知り得
ない乱数によってべき乗した値が1となるか否かを検証
することによって暗号文の正当性を検証しているため、
べき乗した値を公開しても、本来の検証式における値に
関する情報は一切漏洩しない。この値が正しく作成され
たことを零知識証明によって第三者へ証明する事によ
り、受信した暗号文が元の検証式を満足しないことを第
三者へ証明することができる。
According to the present invention, the value of the verification formula at the time of decryption in the Cramer-Shoup encryption is verified whether or not the value raised to the power of a random number by which no decryptor can know the value is 1. Has verified the validity of the ciphertext,
Even if the raised value is disclosed, no information about the value in the original verification formula is leaked. By proving to a third party that this value has been correctly created by zero-knowledge proof, it is possible to prove to the third party that the received ciphertext does not satisfy the original verification formula.

【0092】さらに、乱数でべき乗するという計算を分
散計算により、全計算者の協力で行うことによって、検
証式を満たさない場合にも、べき乗する前の検証式の値
がどの復号者にも漏洩することはないため、復号者の中
に不正者がいたとしても、攻撃者は何の利益も得ること
ができないため、選択的暗号文攻撃に対して安全なしき
い値付き復号方法となっている。
Further, by performing the calculation of exponentiation with random numbers by distributed calculation in cooperation with all the computers, even if the verification expression is not satisfied, the value of the verification expression before exponentiation is leaked to any decoder. Attackers can not gain any benefit even if there is an unauthorized person among the decryptors, so it is a secure thresholded decryption method against selective ciphertext attacks .

【0093】更にこの発明の別の観点によれば、零知識
証明によって計算結果の正当性を各復号者に証明させる
ことによって不正者を特定し、正当なデータのみを用い
て暗号文の検証を行うため、復号者の数nに比例した計
算量で検証を行うことが可能である。また、各復号者の
計算結果がBCH符号のコードワードとなるように各復
号者の固有の公開値を定め、まず、計算結果がコードワ
ードであることを受信者が検証し、コードワードでない
場合にのみ零知識証明を実行することによって、正しい
暗号文を受信した場合には、通信量を抑えたまま効率的
な計算を行うことが可能である。
Further, according to another aspect of the present invention, an unauthorized person is specified by making each decryptor prove the validity of the calculation result by zero-knowledge proof, and verification of a ciphertext is performed using only valid data. Therefore, verification can be performed with a calculation amount proportional to the number n of decryptors. Further, a unique public value of each decoder is determined so that the calculation result of each decoder becomes a codeword of the BCH code. First, the receiver verifies that the calculation result is a codeword. By executing the zero-knowledge proof only in the case where a correct ciphertext is received, it is possible to perform an efficient calculation while suppressing the communication amount.

【0094】さらに、不正者が特定された場合に、他の
復号者が協力してその不正な復号者が持つ分散秘密鍵を
算出し、公開することによって、だれもがその不正な復
号者に代わって正しい結果を計算することができるよう
にすることによって、1/3以上の不正者が存在して
も、それが1/2未満である限りにおいて、正しい検証
結果および復号結果を得ることが可能である。
Further, when an unauthorized person is specified, other decryptors cooperate to calculate and publish the shared secret key of the unauthorized decryptor, so that anyone can give the unauthorized decryptor. By being able to calculate the correct result instead, it is possible to obtain the correct verification result and the decryption result even if there is more than one third of the wrongdoer as long as it is less than one half. It is possible.

【図面の簡単な説明】[Brief description of the drawings]

【図1】この発明の実施例1のシステム構成を表す図。FIG. 1 is a diagram illustrating a system configuration according to a first embodiment of the present invention.

【図2】この発明の実施例1における復号者装置の検証
動作手順を示す流れ図。
FIG. 2 is a flowchart showing a verification operation procedure of the decryption apparatus according to the first embodiment of the present invention.

【図3】この発明の実施例2のシステム構成を表す図。FIG. 3 is a diagram illustrating a system configuration according to a second embodiment of the present invention.

【図4】この発明の実施例2における復号者Piの装置
の復号動作手順を示す流れ図。
FIG. 4 is a flowchart showing a decryption operation procedure of the decryptor Pi's device in Embodiment 2 of the present invention.

【図5】この発明の実施例2における復号者Piの装置
の検証動作手順を示す流れ図。
FIG. 5 is a flowchart showing a verification operation procedure of an apparatus of a decryptor Pi in Embodiment 2 of the present invention.

【図6】この発明の実施例3における復号者Piの装置
の検証動作手順を示す流れ図。
FIG. 6 is a flowchart showing a verification operation procedure of an apparatus of a decryptor Pi in Embodiment 3 of the present invention.

【図7】実施例2における復号者装置の機能構成を示す
図。
FIG. 7 is a diagram illustrating a functional configuration of a decryption apparatus according to the second embodiment.

【図8】実施例3における復号者装置の機能構成を示す
図。
FIG. 8 is a diagram illustrating a functional configuration of a decryption apparatus according to a third embodiment.

───────────────────────────────────────────────────── フロントページの続き (56)参考文献 A Practical Publi c Key Cryptosystem Provably Secure a gainst Adaptive Ch osen Ciphertext At tack,Lecture Notes in Computer Scien ce,1998年9月1日,Vol.1462, p.13−25 (58)調査した分野(Int.Cl.7,DB名) H04L 9/30 G09C 1/00 620 JICSTファイル(JOIS)──────────────────────────────────────────────────続 き Continuation of the front page (56) References A Practical Public Key Cryptosystem Provisionally Secure a gain Adaptive Chosen Ciphertext Attack, Lecturer, September 9, 1998 1462, p. 13-25 (58) Field surveyed (Int. Cl. 7 , DB name) H04L 9/30 G09C 1/00 620 JICST file (JOIS)

Claims (20)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】 pを大きな素数、qをp−1を割り切る
大きな素数とし、Gqは乗法群Zp* の位数qの部分群
を表すものとし、g1,g2は、g1を底とするg2の
離散対数が未知であるGqの元とし、Hを汎用ハッシュ
関数とし、 (x1,x2,y1,y2,z)∈Zq5 を秘密鍵、X
=g1x1g2x2mod p,Y=g1y1g2y2mod p,Z=
g1z mod pなる(X,Y,Z)を公開鍵とし、 平文mに対する暗号文EはcをH(u1,u2)mod q
としてu1=g1r mod p,u2=g2r mod p,v=
r crmod pなる三つ組み(u1,u2,v)を含む
暗号方法の暗号文検証方法において、 復号者装置は、乱数rを生成し、c=H(u1,u2)
mod qを計算し、 V=(u1x1+cy1u2x2+cy2-1r mod pを計算し、
Vが1に等しいことを確認することによって暗号文の正
当性を検証し、 Vが1に等しくない場合は、零知識証明を用いて、検証
者装置との間で、Vがある乱数rに対して(u1x1+cy1
u2x2+cy2-1r mod p計算した結果であることを
証明するプロトコルを実行することを特徴とする暗号文
検証方法。
1. Divide p by a large prime number and q by p-1
A large prime number, Gq is the multiplicative group Zp*Subgroup of order q
Where g1 and g2 are the values of g2 with g1 as the base.
Let Gq be an element whose discrete logarithm is unknown, and let H be a general-purpose hash
Function, and (x1, x2, y1, y2, z) ∈ZqFiveIs the secret key, X
= G1x1g2x2mod p, Y = g1y1g2y2mod p, Z =
g1zUsing (P, X, Y, Z) mod p as a public key, the ciphertext E for the plaintext m becomes c with H (u1, u2) mod q
U1 = g1rmod p, u2 = g2rmod p, v =
XrYcrmod includes the triplet (u1, u2, v)
Encryption methodCryptographic Verification MethodIn, the decryption apparatus generates a random number r, and c = H (u1, u2)
Calculate mod q, V = (u1x1 + cy1u2x2 + cy2v-1)rcalculate mod p,
Verify that V is equal to 1 to correct the ciphertext
Verify the validityAnd  If V is not equal to 1Is verified using the zero-knowledge proof.
Between the user device andV for a random number r (u1x1 + cy1
u2x2 + cy2v-1)rmod pToThat the result is calculated
ProveRun the protocolCiphertext characterized by the following:
Method of verification.
【請求項2】 pを大きな素数、qをp−1を割り切る
大きな素数とし、Gqは乗法群Zpの位数qの部分群を
表すものとし、g1,g2をGqの元とし、Hを汎用ハ
ッシュ関数とし、 n人の復号者Pj(j=1,2,…,n)の装置に
有の公開値wjを与え、 (x1,x2,y1,y2,z)∈Zq5 を3t<nを
満たすしきい値tの秘密分散法により分散して得られ
る、値wjに対応する秘密値(x1j,x2j,y1
j,y2j,zj)を復号者Pjの装置の秘密鍵とし、 Xj=g1x1j g2x2j mod p,Yj=g1y1j g2
y2j mod p,Zj=g1zjmod pなる(Xj,Yj,Z
j)を復号者Pjの装置の公開鍵とし、 各々の復号者装置間には、安全な通信路があるものと
し、また、各復号者装置は、他の全員の復号者装置が同
一の内容を受信することが保証される放送型通信路を利
用できるものとし、 乱数r∈Zqをしきい値tの秘密分散法により分散して
得られる、値wjに対応する秘密値rjを復号者Pj
装置は保持するものとし、 E=(u1,u2,v,e)を、X=g1x1g2x2mod
p,Y=g1y1g2y2mod p,Z=g1z mod pを公開
鍵とした平文mの暗号文とし、正しい暗号文はu1=g
r mod p,u2=g2r mod p,c=H(u1,u
2),v=Xr crmod p,e=mZr mod pを満足す
るとき、 Eを受信した各復号者Pjの装置は、c=H(u1,u
2)を計算し、 Vj=(u1x1j+cy1ju2x2j+cy2j-1rjmod pを計
算し、 Vjをしきい値t以上2t以下の検証可能多項式秘密分
散法により分散して得られる、値wk(k=1,2,
…,n、k≠j、以下同様)に対応する秘密値Vjkを
各復号者Pkの装置に安全な通信路を介して送信し、その後、その秘密分散に用いた多項式の各係数でgをべ
き乗した各値C ij (i=0,…,t)を、放送型通信路
により他の全ての復号者Pkの装置へ送信し、 ij を受信した復号者Pk(k=1,2,…,n、k≠
j)の装置はwkと、C ij を用いて、先に受信したVj
kが正しい値であることを検証し、 復号者Pkの装置は、放送型通信路により、Vkを全
の復号者Pj(j=1,2,…,n、j≠k、以下同
様)装置へ送信し、 Vkを受信した各復号者Pjの装置は各Vkが正しい値
であることを受信した 0j を用いて検証し、 正しいと確認されたVkのうち2t+1個を選択し、指
数部に対する秘密復元手順により復元した値Vが1に等
しいか否かを調べ、等しくないならば他の2t+1個の
組み合わせで同様に秘密復元手順を繰り返し、全ての組
み合わせについていずれも復元値が1に等しくないなら
ば、その暗号文を不正と判定し、 一つでも1になる組み合わせがあったならば、その暗号
文を正しいと判定することを特徴とする暗号文検証方
法。
2. Divide p by a large prime number and q by p-1
Gq is a large prime number, and Gq is a subgroup of order q of the multiplicative group Zp.
G1 and g2 are elements of Gq, and H is a general-purpose
Function and the neachDecryptorPj (j = 1,2, ..., n)Solid
Have a public value wjGiving, (X1, x2, y1, y2, z) ∈ZqFive3t <n
The secret sharing method with the threshold value t
Secret value (x1j, x2j, y1) corresponding to the value wj
j, y2j, zj) to the decryptor PjEquipmentXj = g1x1jg2x2jmod p, Yj = g1y1jg2
y2jmod p, Zj = g1zjmod p becomes (Xj, Yj, Z
j) is the decryptor PjEquipmentAnd that there is a secure communication path between each decryptor device.
Also, each decryptor device is the same as all other decryptor devices.
Use a broadcast-type communication path that is guaranteed to receive
The random number r∈Zq is shared by a secret sharing method with a threshold value t.
The obtained secret value rj corresponding to the value wj is converted to the decryptor Pj.of
apparatusHolds, E = (u1, u2, v, e) and X = g1x1g2x2mod
p, Y = g1y1g2y2mod p, Z = g1zRelease mod p
The ciphertext of the plaintext m used as the key, and the correct ciphertext is u1 = g
1rmod p, u2 = g2rmod p, c = H (u1, u
2), v = XrYcrmod p, e = mZrsatisfy mod p
When the device of each decryptor Pj that has received E receives c = H (u1, u
2), and Vj = (u1)x1j + cy1ju2x2j + cy2jv-1)rjmod p
Vj can be verified from threshold value t to 2tPolynomialSecret
The value wk obtained by dispersion by the scatter method(K = 1, 2,
..., n, k ≠ j, and so on)Secret value Vjk corresponding to
Transmitting to each decryptor Pk's device via a secure communication channel,After that, g is calculated with each coefficient of the polynomial used for the secret sharing.
Each value C multiplied ij (I = 0,..., T) are defined as broadcast-type communication paths.
To all other decryptor Pk's devices, C ij Pk (k = 1, 2,..., N, k}
The device of j) is wk and C ij , The previously received Vj
Verify that k is the correct value,  The device of the decryptor Pk uses the broadcast-type communication channel toThe wholehand
Decryptor ofPj (j = 1, 2,..., N, j ≠ k, hereinafter the same)
Mr)The device of each decryptor Pj that transmitted to the device and received VkIs eachVk is the correct value
Received thatC 0j , And 2t + 1 of Vk confirmed to be correct are selected.
The value V restored by the secret restoration procedure for several parts is equal to 1
Check if it is correct, and if it is not equal, the other 2t + 1
Repeat the security recovery procedure in the same way for all
If none of the restoration values is equal to 1
If the ciphertext is determined to be invalid, and there is at least one combination
Ciphertext verification method characterized by determining that a sentence is correct
Law.
【請求項3】 請求項の暗号文検証方法において、 上記暗号文が正しいと判定されると、 wをmod qでの1のn乗根とし、各復号者装置は、wj
をwj-1 mod qとし、1<j<nにおいてwj≠1を満
たすようなwjを公開の固有値とし、 各復号者Pjの装置はDj=u1zjmod pを計算し、放
送型通信路により他の全ての復号者装置へ送信し、受信
した(D1,…,Dn)のu1を底とする離散対数がB
CH符号のコードワードであることを確認すること、 を特徴とする暗号文検証方法。
3. The ciphertext verification method according to claim 2 , wherein when the ciphertext is determined to be correct, w is set to the nth root of 1 in mod q, and each decryptor device is configured to execute wj
Is defined as w j−1 mod q, and wj that satisfies wj ≠ 1 in 1 <j <n is defined as a public eigenvalue. The apparatus of each decoder Pj calculates Dj = u1 zj mod p, , And the discrete logarithm with the base u1 of (D1,..., Dn) received is B
Confirming that the code word is a CH code word;
【請求項4】 pを大きな素数、qをp−1を割り切る
大きな素数とし、Gqは乗法群Zp * の位数qの部分群
を表すものとし、g1,g2は、g1を底とするg2の
離散対数が未知であるGqの元とし、Hを汎用ハッシュ
関数とし、 (x1,x2,y1,y2,z)∈Zq 5 を秘密鍵、X
=g1 x1 g2 x2 mod p,Y=g1 y1 g2 y2 mod p,Z=
g1 z mod pなる(X,Y,Z)を公開鍵とし、 平文mに対する暗号文EはcをH(u1,u2)mod q
としてu1=g1 r mod p,u2=g2 r mod p,v=
r cr mod p,e=mZ r mod pなる四つ組み(u
1,u2,v,e)を含む暗号方法の暗号文検証方法に
おいて、 n人の各復号者Pj(j=1,…,n)の装置に、 wを
mod qでの1のn乗根とし、wjをwj-1 mod qとし、
1<j<nにおいてwj≠1を満たすものとし、各復号
者Pjの装置に値wjを割り当て、 復号者Pjの装置の秘密鍵(x1j,x2j,y1
j,y2j,zj)は、3t<nを満たすしきい値tの
秘密分散法により(x1,x2,y1,y2,z)を分
散して得られる、値wjに対応する秘密値とし、 Xj=g1x1j g2x2j mod p,Yj=g1y1j g2
y2j mod p,Zj=g1Zjmod pなる(Xj,Yj,Z
j)を復号者Pjの装置の公開鍵とし、 各々の復号者装置間には、安全な通信路があるものと
し、また、各復号者装置は、他の全員の復号者装置が同
一の内容を受信することが保証される放送型通信路を利
用できるものとし、 乱数r∈Zqをしきい値tの秘密分散法により分散して
得られる、値wjに対応する秘密値rjを復号者Pj
装置は保持するものとし、 各復号者Pjの装置は、r・x1,r・x2,r・y
1,r・y2をそれぞれしきい値tの秘密分散法により
分散して得られる、値wjに対応する秘密値x1j′,
x2j′,y1j′,y2j′を分散乗算法によって計
算して保持し、 暗号文を受信した各復号者Pjの装置は、c=H(u
1,u2)を計算し、Vj=u1x1j'+cy1j'u2
x2j'+cy2j'-rj mod pを計算し、放送型通信路によ
り、Vjを他の全ての復号者装置へ送信し、各復号者装置は受信した (V1,…,Vn)の指数部が
BCH符号のコードワードであることを確認し、 指数部に対する秘密復元手順により復元した値Vが1に
等しいことを確認することによって暗号文の正当性を検
証することを特徴とする暗号文検証方法。
4. Divide p by a large prime number and q by p-1
Gq is a large prime number, and Gq is a subgroup of order q of the multiplicative group Zp *
And g1 and g2 are the values of g2 with g1 as the base.
Let Gq be an element whose discrete logarithm is unknown, and let H be a general-purpose hash
A function, (x1, x2, y1, y2, z) ∈Zq 5 a secret key, X
= G1 x1 g2 x2 mod p, Y = g1 y1 g2 y2 mod p, Z =
The public key is (X, Y, Z) which is g1 z mod p, and the ciphertext E for the plaintext m is c (H (u1, u2) mod q
U1 = g1 r mod p, u2 = g2 r mod p, v =
X r Y cr mod p, e = mZ r mod p
1, u2, v, e)
Then , w is assigned to the device of each of the n decryptors Pj (j = 1,..., N).
Let n be the nth root of mod q, wj be w j-1 mod q,
1 <j <shall satisfy wj ≠ 1 in n, assign a value wj to the apparatus of the decryption person Pj, secret key (X1j devices of each decryption person Pj, x2j, y1
j, y2j, zj) is a secret value corresponding to the value wj obtained by distributing (x1, x2, y1, y2, z) by a secret sharing method with a threshold value t satisfying 3t <n, and Xj = G1 x1j g2 x2j mod p, Yj = g1 y1j g2
y2j mod p, Zj = g1 Zj mod p (Xj, Yj, Z
j) is the public key of the device of the decryptor Pj , there is a secure communication path between each decryptor device, and each decryptor device has the same contents as all other decryptor devices. The secret value rj corresponding to the value wj, which is obtained by distributing the random number rqZq by the secret sharing method with the threshold value t, is used as the decrypter Pj of
The device shall be retained, and the device of each decryptor Pj shall be r · x1, r · x2, ry
1, r · y2 obtained by distributing the secret values by a secret sharing method with a threshold value t, respectively.
x2j ', y1j', y2j 'are calculated and held by the distributed multiplication method, and the device of each decryption person Pj that receives the ciphertext obtains c = H (u
1, u2), and Vj = u1 x1j ′ + cy1j ′ u2
x2j '+ cy2j' v -rj mod p is calculated, and Vj is transmitted to all other decoder devices via the broadcast communication channel, and each decoder device receives the exponent part of (V1,..., Vn). Is a code word of a BCH code, and verifies the validity of the ciphertext by confirming that the value V restored by the secret restoration procedure for the exponent is equal to 1. Method.
【請求項5】 請求項の暗号文検証方法において、 (V1,…,Vn)がBCH符号のコードワードでない
場合に、各復号者Pjの装置は、零知識証明を用いて他
の復号者装置との間で、Vjがu1x1j'+cy1j'u2
x2j'+cy2j'-rj mod pの計算結果であることを証明す
るプロトコルをx1j′,x2j′,y1j′,y2
j′,rjに関する情報を漏らすことなく実行して、証
明に失敗した復号者Pjの装置を逸脱者の装置と特定
し、逸脱者の装置の秘密値x1j′,x2j′,y1
j′,y2j′,rjを、他の復号者装置が秘密値回復
手順を用いて復元することを特徴とする暗号文検証方
法。
5. The ciphertext verification method according to claim 4 , wherein when (V1,..., Vn) is not a BCH codeword, the apparatus of each decryptor Pj uses the zero-knowledge proof to perform other operations.
Between the decoding's device, Vj is u1 x1j '+ cy1j' u2
x2j '+ cy2j' prove that it is the result of v- rj mod p
Are defined as x1j ', x2j', y1j ', y2
It executes without leaking information about j ′ and rj, identifies the device of the decryption person Pj that failed in certification as the device of the deviant person, and sets the secret values x1j ′, x2j ′, y1 of the device of the deviator.
A ciphertext verification method, characterized in that j ', y2j', and rj are restored by another decryption apparatus using a secret value recovery procedure.
【請求項6】 pを大きな素数、qをp−1を割り切る
大きな素数とし、Gqは乗法群Zp * の位数qの部分群
を表すものとし、g1,g2は、g1を底とするg2の
離散対数が未知であるGqの元とし、Hを汎用ハッシュ
関数とし、 (x1,x2,y1,y2,z)∈Zq 5 を秘密鍵、X
=g1 x1 g2 x2 mod p,Y=g1 y1 g2 y2 mod p,Z=
g1 z mod pなる(X,Y,Z)を公開鍵とし、 平文mに対する暗号文EはcをH(u1,u2)mod q
としてu1=g1 r mod p,u2=g2 r mod p,v=
r cr mod p,e=mZ r mod pなる四つ組み(u
1,u2,v,e)を含む暗号方法の暗号文検証方法に
おいて、 n人の各復号者Pj(j=1,…,n)の装置に、wを
mod qでの1のn乗根とし、wjをw j-1 mod qとし、
1<j<nにおいてwj≠1を満たすものとし、各復号
者Pjの装置に値wjを割り当て、 各復号者Pjの装置の秘密鍵(x1j,x2j,y1
j,y2j,zj)は、3t<nを満たすしきい値tの
秘密分散法により(x1,x2,y1,y2,z)を分
散して得られる、値wjに対応する秘密値とし、 Xj=g1 x1j g2 x2j mod p,Yj=g1 y1j g2
y2j mod p,Zj=g1 Zj mod pなる(Xj,Yj,Z
j)を復号者Pjの装置の公開鍵とし、 各々の復号者装置間には、安全な通信路があるものと
し、また、各復号者装置は、他の全員の復号者装置が同
一の内容を受信することが保証される放送型通信路を利
用できるものとし、 乱数r∈Zqをしきい値tの秘密分散法により分散して
得られる、値wjに対応する秘密値rjを復号者Pjの
装置は保持するものとし、 各復号者Pjの装置は、r・x1,r・x2,r・y
1,r・y2をそれぞれしきい値tの秘密分散法により
分散して得られる、値wjに対応する秘密値x1j′,
x2j′,y1j′,y2j′を分散乗算法によって計
算して保持し、 暗号文を受信した各復号者Pjの装置は、c=H(u
1,u2)を計算し、Vj=u1 x1j'+cy1j' u2
x2j'+cy2j' -rj mod pを計算し、放送型通信路によ
り、Vjを他の全ての復号者装置へ送信し、 各復号者装置は零知識証明を用いて、他の復号者装置と
の間で、受信したVjがu1 x1j'+cy1j' u2 x2j'+cy2j'
-rj mod pの計算結果であることをx1j′,x2
j′,y1j′,y2j′,rjに関する情報を漏らす
ことなく、証明するプロトコルを実行し、 その証明に失敗した復号者Pjの装置を逸脱者装置とし
て特定し、逸脱者装置の秘密値x1j′,x2j′,y
1j′,y2j′,rjと他の復号者装置が秘密復元手
順を用いて復元し、 上記その証明された(V1,…,Vn)の指数部に対す
る秘密復元手順により復元した値Vが1に等しいことを
確認することによって暗号文の正当性を検証する ことを
特徴とする暗号文検証方法。
6. Divide p by a large prime number and q by p-1
Gq is a large prime number, and Gq is a subgroup of order q of the multiplicative group Zp *
And g1 and g2 are the values of g2 with g1 as the base.
Let Gq be an element whose discrete logarithm is unknown, and let H be a general-purpose hash
A function, (x1, x2, y1, y2, z) ∈Zq 5 a secret key, X
= G1 x1 g2 x2 mod p, Y = g1 y1 g2 y2 mod p, Z =
The public key is (X, Y, Z) which is g1 z mod p, and the ciphertext E for the plaintext m is c (H (u1, u2) mod q
U1 = g1 r mod p, u2 = g2 r mod p, v =
X r Y cr mod p, e = mZ r mod p
1, u2, v, e)
Then , w is assigned to the device of each of the n decryptors Pj (j = 1,..., N).
Let n be the nth root of mod q, wj be w j-1 mod q,
It is assumed that wj ≠ 1 is satisfied when 1 <j <n, and each decoding
The value wj is assigned to the device of the decryption person Pj, and the secret key (x1j, x2j, y1) of the device of each decryption person Pj is assigned.
j, y2j, zj) is a threshold value t satisfying 3t <n.
(X1, x2, y1, y2, z) is divided by the secret sharing method.
Obtained by dispersion, and a secret value corresponding to the value wj, Xj = g1 x1j g2 x2j mod p, Yj = g1 y1j g2
y2j mod p, Zj = g1 Zj mod p (Xj, Yj, Z
j) is the public key of the decryption device Pj, and there is a secure communication path between each decryption device.
Also, each decryptor device is the same as all other decryptor devices.
Use a broadcast-type communication path that is guaranteed to receive
The random number r 乱 数 Zq is shared by a secret sharing method with a threshold value t.
The obtained secret value rj corresponding to the value wj is given by the decryptor Pj.
It is assumed that the device is held, and the device of each decryptor Pj is r · x1, r · x2, ry.
1, r · y2 are calculated by the secret sharing method with threshold value t.
A secret value x1j ′ corresponding to the value wj, which is obtained by distribution,
x2j ', y1j', y2j 'are calculated by the variance multiplication method.
The device of each decryptor Pj that has calculated and stored the encrypted text has c = H (u
1, u2), and Vj = u1 x1j ′ + cy1j ′ u2
x2j '+ cy2j' v -rj mod p
And transmits Vj to all other decryptor devices, and each decryptor device uses the zero-knowledge proof to communicate with the other decryptor devices.
During the period, the received Vj is u1 x1j '+ cy1j' u2 x2j '+ cy2j'
It is x1j ', x2 that the calculation result of v- rj mod p is obtained.
leak information about j ', y1j', y2j ', rj
Without executing the certifying protocol, the device of the decryption person Pj who failed in the proof is regarded as the deviator device.
Secret values x1j ', x2j', y of the deviator device
1j ', y2j', rj and another decryptor device
And reconstructed using the above order, with respect to the exponent part of (V1,..., Vn)
That the value V restored by the secret restoration procedure is equal to 1.
A ciphertext verification method characterized by verifying the validity of a ciphertext by checking.
【請求項7】 請求項の暗号文検証方法において、 上記復元した値Vが1に等しい場合に、各復号者Pjの
装置はDj=u1zjmod pを計算し、放送型通信路によ
り他の全ての復号者装置へ送信し、 受信した(D1,…,Dn)のu1を底とする離散対数
がBCH符号のコードワードであることを確認すること
を特徴とする暗号文検証方法。
7. The ciphertext verification method according to claim 4 , wherein when the restored value V is equal to 1, each decryptor Pj's device calculates Dj = u1 zj mod p, and uses the broadcast-type communication channel to perform another calculation. A ciphertext verification method, comprising: confirming that a discrete logarithm having a base of u1 of (D1,..., Dn) received is a codeword of a BCH code.
【請求項8】 請求項の暗号文検証方法において、 復元した値Vが1に等しい場合に、各復号者Pjの装置
はDj=u1zjmod pを計算し、零知識証明を用いて、
他の復号者装置との間で、Djが正しい計算結果である
ことをzjに関する情報を漏らすことなく、証明するプ
ロトコルを実行し、 零知識証明に失敗した復号者Pjの装置を逸脱者装置
して特定し、逸脱者装置の秘密値zjを他の復号者装置
が秘密値回復手順を用いて復元することを特徴とする暗
号文検証方法。
8. The ciphertext verification method according to claim 6 , wherein, when the restored value V is equal to 1, the apparatus of each decryptor Pj calculates Dj = u1 zj mod p , and
With other decoding's apparatus, without leaking information about zj that Dj is the correct calculation result, it proved Surupu
Run the protocol, specified in <br/> a departure's device a device failed decryption person Pj zero knowledge proof, a secret value zj of departure's device other decipherer device using a secret value recovery procedure A ciphertext verification method characterized by restoring and restoring.
【請求項9】 請求項又はの暗号文検証方法におい
て、 各復号者装置は正しい(D1,…,Dn)から、 u1を底とする指数部に対する秘密復元手順によりD=
u1z mod pを復元し、 m=e/Dmod pを計算して平文mを復号することを特
徴とする暗号文検証方法。
9. The ciphertext verifying method according to claim 7 or 8 , wherein each of the decryptor apparatuses obtains D = D1 from the correct (D1,.
A ciphertext verification method characterized by restoring u1 z mod p, calculating m = e / Dmod p, and decrypting plaintext m.
【請求項10】 pを大きな素数、qをp−1を割り切
る大きな素数とし、Gqは乗法群Zpの位数pの部分群
を表すものとし、g1,g2をGpの元とし、Hを汎用
ハッシュ関数とし、X=g1x1g2x2mod p,Y=g1
y1g2y2modp,Z=g1z mod pを暗号化手順に用い
る公開鍵とし、(x1,x2,y1,y2,z)∈Zq
5 とし、平文mに対する暗号文EはcをH(u1,u
2)modpとしてu1=g1r mod p,u2=g2r mod
p,v=Xr crmod pなる三つ組み(u1,u2,
v)を含み、 乱数rを生成する処理と、 暗号文Eを受信する処理と、 c=H(u1,u2)mod qを計算する処理と、 V=(u1x1+cy1u2x2+cy2-1r mod pを計算する
処理と、 V=1であることを確認して暗号文の正当性を検証する
処理と V≠1ならば、ビットコミットメント関数(B
C)を用いてBC(r)を公開する処理と、 BC(r)を構成するrと、公開鍵X,Yを構成するx
1,x2,y1,y2を用いて、(u1x1+cy1u2
x2+cy2-1r mod pなる計算を行った結果がVである
ことを、零知識証明を用いて検証者装置との間で、r,
x1,x2,y1,y2に関する秘密を漏らさずに証
するプロトコルを実行する処理とを復号者装置のコンピ
ュータに実行させるプログラムを記録した記録媒体。
10. Divide p by a large prime number and q by p-1
Gq is a subgroup of the order p of the multiplicative group Zp
And g1 and g2 are elements of Gp, and H is a general
X = g1 as a hash functionx1g2x2mod p, Y = g1
y1g2y2modp, Z = g1zuse mod p for the encryption procedure
(X1, x2, y1, y2, z) ∈Zq
FiveAnd the ciphertext E for the plaintext m changes c to H (u1, u
2) u1 = g1 as modprmod p, u2 = g2rmod
 p, v = XrYcrmod p triplet (u1, u2,
v), a process of generating a random number r, a process of receiving a ciphertext E, a process of calculating c = H (u1, u2) mod q, and a process of V = (u1x1 + cy1u2x2 + cy2v-1)rcalculate mod p
Processing and verifying that V = 1 to verify the validity of the ciphertext
Processing and If V ≠ 1, the bit commitment function (B
C) to publish BC (r), r to form BC (r), and x to form public keys X and Y
1, x2, y1, y2, (u1x1 + cy1u2
x2 + cy2v-1)rThe result of calculating mod p is V
ThatBetween the verifier and the zero-knowledge proof,r,
Keep secrets about x1, x2, y1, y2TestimonyLight
DoRun the protocolProcessing andThe decryptor's device
Recorded programs to be executed by the computerrecoding media.
【請求項11】 pを大きな素数、qをp−1を割り切
る大きな素数とし、Gqは乗法群Zpの位数qの部分群
を表すものとし、g1,g2をGqの元とし、Hを汎用
ハッシュ関数とし、n人の各復号者Pj(j=1,…,
n)の装置に固有の公開値wjが与えられ、(x1,x
2,y1,y2,z)∈Zq5 を、3t<nを満たすし
きい値tの秘密分散法により分散して得られる、値wj
に対応する秘密値(x1j,x2j,y1j,y2j,
zj)を復号者Pjの装置の秘密鍵とし、Xj=g1
x1j g2x2j mod p,Yj=g1y1j g2y2j mod p,
Zj=g1zjmod pを復号者Pjの装置の公開鍵とし、 乱数r∈Zqをしきい値tの秘密分散法により分散して
得られる値wjに対応する秘密値rjを生成する処理
と、 X=g1x1g2x2mod p,Y=g1y1g2y2mod p,Z
=g1z mod pを公開鍵とし、平文mの暗号文とし、正
しい暗号文はu1=g1r mod p,u2=g2r mod
p,c=H(u1,u2),v=Xr crmod p,e=
mZr mod pを満た暗号文E=(u1,u2,v,
e)を受信する処理と、 c=H(u1,u2)を計算する処理と、 Vj=(u1x1j+cy1ju2x2j+cy2j-1rjmod pを計
算する処理と、 Vjをしきい値t以上2t以下の検証可能多項式秘密分
散法により分散して得られる、値wkに対応する秘密値
Vjkを各復号者Pkの装置に送信する処理と、 他の全ての復号者装置PkからVkjを受信する処理
と、秘密分散に用いた多項式の各係数でgをべき乗した各値
ij (i=0,…,)を他の全ての復号者装置へ送信
する処理と、 他の全ての復号者装置PkからC ik を受信する処理と、 wkと受信したC ik を用いて先に受信したVkjが正し
い値であることを検証する処理と、 Vjを他の全ての復号者装置へ送信する処理と、 他の全ての復号者装置からVkを受信する処理と 各Vkが正しい値であることを ok を用いて検証する処
理と、 正しいと確認されたVkのうち2t+1個を選択し、指
数部に対する秘密復元手順により復元した値Vが1に等
しいか否かを調べ、等しくないならば他の2t+1個の
組み合わせで同様に秘密復元手順を繰り返し、全ての組
み合わせについていずれも復元値が1に等しくないな
ら、その暗号文を不正と判定し、一つでも1になる組み
合わせがあったならば、その暗号文を正しいと判定する
処理と、 を復号者装置のコンピュータに実行させるプログラムを
記録した記録媒体。
11. Divide p by a large prime number and q by p-1
Gq is a subgroup of the order q of the multiplicative group Zp
Where g1 and g2 are elements of Gq, and H is a general
A hash function and n peopleEach ofDecryptor Pj(J = 1, ...,
device n)Unique public value wjGiven, (X1, x
2, y1, y2, z) ∈ZqFiveSatisfy 3t <n
The value wj obtained by distributing the threshold value t by the secret sharing method
Corresponding to the secret value (x1j, x2j, y1j, y2j,
zj) of the decryptor PjEquipmentXj = g1 as a secret key
x1jg2x2jmod p, Yj = g1y1jg2y2jmod p,
Zj = g1zjmod p to the decryptor PjEquipmentThe public key is used, and a random number r∈Zq is distributed by a secret sharing method with a threshold value t.
Processing for generating secret value rj corresponding to obtained value wj
And X = g1x1g2x2mod p, Y = g1y1g2y2mod p, Z
= G1zmod p is a public key, plaintext m is ciphertext, and
The new ciphertext is u1 = g1rmod p, u2 = g2rmod
p, c = H (u1, u2), v = XrYcrmod p, e =
mZrsatisfy mod pYouCiphertext E = (u1, u2, v,
e), c = H (u1, u2) is calculated, and Vj = (u1)x1j + cy1ju2x2j + cy2jv-1)rjmod p
Calculation, and verification of Vj from threshold t to 2tPolynomialSecret
Secret value corresponding to value wk, obtained by dispersion by the scatter method
A process of transmitting Vjk to the device of each decryptor Pk and a process of receiving Vkj from all other decryptor devices Pk
When,Each value obtained by raising g to the power of each coefficient of the polynomial used for secret sharing
C ij (I = 0, ..., t) To all other decryptor devices
Processing, All other decryptor devices Pk to C ik Processing to receive the wk and received C ik Vkj received earlier using
Processing to verify that the A process of transmitting Vj to all other decryptor devices, a process of receiving Vk from all other decryptor devices,,  Make sure that each Vk is the correct valueC OK Verification process using
Select 2t + 1 of Vk confirmed to be correct,
The value V restored by the secret restoration procedure for several parts is equal to 1
Check if it is correct, and if it is not equal, the other 2t + 1
Repeat the security recovery procedure in the same way for all
No restoration value is equal to 1 for any combination
The ciphertext is determined to be invalid and any
If there is a match, determine that the ciphertext is correct
Processing and a program that causes the computer of the decryptor device to execute
The recording medium on which it was recorded.
【請求項12】 pを大きな素数、qをp−1を割り切
る大きな素数とし、Gqは乗法群Zpの位数qの部分群
を表すものとし、g1,g2をGqの元とし、Hを汎用
ハッシュ関数とし、 (x1,x2,y1,y2,z)∈Zq5 を秘密鍵、X
=g1x1g2x2mod p,Y=g1y1g2y2mod p,Z=
g1z mod pなる(X,Y,Z)を公開鍵とし、 平文mに対する暗号文EはcをH(u1,u2)mod q
としてu1=g1r mod p,u2=g2r mod p,v=
r crmod p,e=mZ r mod pなるつ組み(u
1,u2,v,e)を含み wをmod qでの1のn乗根とし、wjをwj-1 mod qと
し、1<j<nにおいてwj≠1を満たすものとし、
人の各復号者Pj(j=1,…,n)の装置に値wjを
割り当て、 復号者Pjの装置の秘密鍵(x1j,x2j,y1j,
y2j,zj)は、3t<nを満たすしきい値tの秘密
分散法により(x1,x2,y1,y2,z)を分散し
て得られる、値wjに対応する秘密値とし、 Xj=g1x1j g2x2j mod p,Yj=g1y1j g2
y2j mod p,Zj=g1zjmod pなる(Xj,Yj,Z
j)を復号者Pjの装置の公開鍵とし、 乱数r∈Zqをしきい値tの秘密分散法により分散して
得られる、値wjに対応する秘密値rjを保持する処理
と、 rx1,rx2,ry1,ry2をそれぞれしきい値t
の秘密分散法により分散して得られる、値wjに対応す
る秘密値x1j′,x2j′,y1j′,y2j′を分
散乗算法によって計算して保持する処理と、 暗号文を受信すると、c=H(u1,u2)を計算し、
Vj=u1x1j'+cy1j'u2x2j'+cy2j'-rj mod pを計
算し、放送型通信路により、Vjを他の全ての復号者装
置へ送信する処理と、 (V1,…,Vn)の指数部がBCH符号のコードワー
ドであることを確認する処理と、 上記指数部に対する秘密復元手順により復元した値Vが
1に等しいことを確認することによって暗号文の正当性
を検証する処理とを復号者装置のコンピュータに実行さ
せるプログラムを記録した記録媒体。
12. Divide p by a large prime number and q by p-1
Gq is a subgroup of the order q of the multiplicative group Zp
Where g1 and g2 are elements of Gq, and H is a general
As a hash function, (x1, x2, y1, y2, z) ∈ZqFiveIs the secret key, X
= G1x1g2x2mod p, Y = g1y1g2y2mod p, Z =
g1zUsing (P, X, Y, Z) mod p as a public key, the ciphertext E for the plaintext m becomes c with H (u1, u2) mod q
U1 = g1rmod p, u2 = g2rmod p, v =
XrYcrmod p, E = mZ r mod pBecomeFourTuple (u
1, u2, v, E),  Let w be the nth root of 1 in mod q and wj be wj-1mod q and
And satisfying wj ≠ 1 when 1 <j <n,n
person'sEach decryptor Pj(J = 1,..., N)To the value wj
Assignment of the decryptor PjEquipmentThe secret key (x1j, x2j, y1j,
y2j, zj) is the secret of the threshold t satisfying 3t <n
Disperse (x1, x2, y1, y2, z) by the dispersion method
Xj = g1 as a secret value corresponding to the value wj obtained byx1jg2x2jmod p, Yj = g1y1jg2
y2jmod p, Zj = g1zjmod p becomes (Xj, Yj, Z
j) of the decryptor PjEquipmentThe public key is used, and a random number r∈Zq is distributed by a secret sharing method with a threshold value t.
A process for retaining a secret value rj corresponding to the value wj obtained.
And rx1, rx2, ry1, and ry2 are respectively set to the threshold value t.
Corresponding to the value wj obtained by sharing by the secret sharing method
Secret values x1j ', x2j', y1j ', y2j'
A process of calculating and holding by the scattered multiplication method, and upon receiving the ciphertext, calculate c = H (u1, u2),
Vj = u1x1j '+ cy1j'u2x2j '+ cy2j'v-rjmod p
And Vj is set to all other decryptor
And the exponent part of (V1,..., Vn) is the code word of the BCH code.
And the value V restored by the secret restoration procedure for the exponent is
The validity of the ciphertext by checking that it is equal to 1
To verify andDecryptor deviceComputerRealDone
ProgramRecordedrecoding media.
【請求項13】 請求項12の記録媒体において、 しきい値tを2t<nを満たすものとし、 (V1,…,Vn)の指数部がBCH符号のコードワー
ドであることを確認する処理の代わりに、Vjがu1
x1j'+cy1j'u2x2j'+cy2j'-rj mod pの正しい計算結
果であることをx1j′,x2j′,y1j′,y2
j′,rjに関する情報を漏らすことなく、零知識証明
を用いて、他の復号者装置との間で証明するプロトコル
を実行する処理と、 零知識証明が失敗した復号者Pjの装置を逸脱者の装置
として特定し、逸脱者の装置の秘密値x1j′,x2
j′,y1j′,y2j′,rjを秘密値回復手順を用
いて復元する処理とを上記コンピュータに実行させるプ
ログラムを上記プログラムに含むことを特徴とする記録
媒体。
13. The recording medium according to claim 12 , wherein the threshold value t satisfies 2t <n, and a process of confirming that the exponent part of (V1,..., Vn) is a code word of a BCH code. Instead, Vj is u1
x1j '+ cy1j' u2 x2j '+ cy2j' It is x1j ', x2j', y1j ', y2 that the correct calculation result of v- rj mod p is obtained.
Zero-knowledge proof without leaking information about j ', rj
Protocol to authenticate with other decryptor devices using
A process of execution to identify a device decryption person Pj that zero-knowledge proof fails as a departure of the apparatus <br/>, secret value x1j of deviation of the apparatus', x2
A recording medium characterized by including a program for causing the computer to execute a process of restoring j ', y1j', y2j ', and rj using a secret value recovery procedure.
【請求項14】 請求項12の記録媒体において、 (V1,…,Vn)がBCH符号のコードワードでない
場合に、Vjがu1x1j'+cy1j'u2x2j'+cy2j'-rj mo
d pの計算結果であることをx1j′,x2j′,y1
j′,y2j′,rjに関する情報を漏らすことなく、
零知識証明を用いて、他の復号者装置との間で証明する
プロトコルを実行する処理と、上記証明に失敗した復号
者Pjの装置を逸脱者の装置と特定し、逸脱者の装置
秘密値x1j′,x2j′,y1j′,y2j′,rj
を、秘密値回復手順を用いて復元する処理とを上記コン
ピュータに実行させるプログラムを上記プログラムが含
むことを特徴とする記録媒体。
14. The recording medium according to claim 12 , wherein when (V1,..., Vn) is not a BCH codeword, Vj is u1x1j '+ cy1j'u2x2j' + cy2j'v- rjmo.
x1j ', x2j', y1
Without leaking information about j ', y2j', rj,
Using zero-knowledge proof, which proves with other decipherer device
The process of executing the protocol and the device of the decryption person Pj who failed in the above certification are specified as the devices of the deviant person , and the secret values x1j ', x2j', y1j ', y2j', rj of the device of the deviator are specified.
Wherein the program includes a program for causing the computer to execute a process of restoring the program using a secret value recovery procedure.
【請求項15】 pを大きな素数、qをp−1を割り切
る大きな素数とし、Gqは乗法群Zpの位数qの部分群
を表すものとし、g1,g2をGqの元とし、Hを汎用
ハッシュ関数とし、 (x1,x2,y1,y2,z)∈Zq5 を秘密鍵、X
=g1x1g2x2mod p,Y=g1y1g2y2mod p,Z=
g1z mod pなる(X,Y,Z)を公開鍵とし、 平文mに対する暗号文EはcをH(u1,u2)mod q
としてu1=g1r mod p,u2=g2r mod p,v=
r crmod p,e=mZ r mod pなるつ組み(u
1,u2,v,e)を含む暗号文の検証装置であって、 乱数rを生成する手段と、 c=H(u1,u2)mod qを計算する手段と、 V=(u1x1+cy1u2x2+cy2-1r mod pを計算する
手段と、 Vが1に等しいことを確認することによって暗号文の正
当性を検証する手段と Vが1に等しくない場合に、零知識証明を用いて、復号
者装置との間で、Vが乱数rに対して(u1x1+cy1u2
x2+cy2-1r mod pのように計算した結果であること
を証明するプロトコルを実行する手段を備えることを特
徴とする暗号文検証装置。
15. p is a large prime number, q is a large prime number that divides p−1, Gq represents a subgroup of the order q of the multiplicative group Zp, g1 and g2 are elements of Gq, and H is a general and hash function, (x1, x2, y1, y2, z) ∈Zq 5 a secret key, X
= G1 x1 g2 x2 mod p, Y = g1 y1 g2 y2 mod p, Z =
The public key is (X, Y, Z) which is g1 z mod p.
U1 = g1 r mod p, u2 = g2 r mod p, v =
X r Y cr mod p, e = mZ r mod p becomes four pairs (u
1, u2, v , e ), means for generating a random number r, means for calculating c = H (u1, u2) mod q, and V = ( u1x1 + cy1). means for calculating a u2 x2 + cy2 v -1) r mod p, and means V to verify the validity of the ciphertext by confirming equal to 1, if V is not equal to 1, zero-knowledge using a certificate, decryption
With the user device, V is relative random number r (u1 x1 + cy1 u2
x2 + cy2 v -1 ) A ciphertext verification device comprising means for executing a protocol for proving that the result is calculated as in r mod p.
【請求項16】 pを大きな素数、qをp−1を割り切
る大きな素数とし、Gqは乗法群Zpの位数qの部分群
を表すものとし、g1,g2をGqの元とし、Hを汎用
ハッシュ関数とし、 n人の復号者Pj(j=1,…,n)の装置に固有の公
開値wjを与え、 (x1,x2,y1,y2,z)∈Zq5 を、3t<n
を満たすしきい値tの秘密分散法により分散して得られ
る、値wjに対応する秘密値(x1j,x2j,y1
j,y2j,zj)を復号者Pjの装置の秘密鍵とし、 Xj=g1x1j g2x2j mod p,Yj=g1y1j g2
y2j mod p,Zj=g1zjmod pなる(Xj,Yj,Z
j)を復号者Pjの装置の公開鍵とし、 各々の復号者装置間には、安全な通信路があるものと
し、また、各復号者装置は、他の全員の復号者装置が同
一の内容を受信することが保証される放送型通信路を利
用できるものとし、 乱数r∈Zqをしきい値tの秘密分散法により分散して
得られる、値wjに対応する秘密値rjを復号者Pjは
保持するものとし、 E=(u1,u2,v,e)を、X=g1x1g2x2mod
p,Y=g1y1g2y2mod p,Z=g1z mod pを公開
鍵とした平文mに対する暗号文とし、正しい暗号文はu
1=g1r mod p,u2=g2r mod p,c=H(u
1,u2),v=Xr crmod p,e=mZr mod pを
満足する暗号文の検証装置であって、 Eを受信してc=H(u1,u2)を計算する手段と、 Vj=(u1x1j+cy1ju2x2j+cy2j-1rjmod pを計
算する手段と、 Vjをしきい値t以上2t以下の検証可能多項式秘密分
散法により分散して、値wkに対応する秘密値Vjkを
得る手段と、 Vjkを各復号者Pkの装置に安全な通信路を介して送
信する手段と、秘密分散に用いた多項式の各係数でgをべき乗した各値
ij (i=0,1,…,t)を、放送型通信路により他
の全ての復号者装置へ送信する手段と、 他の全ての復号者装置PkからC ik を受信する手段と、 wkと受信したC ik を用いて先に受信したVkjが正し
い値であることを検証する手段と、 他の全ての復号者装置Pk、放送型通信路により、V
を送信する手段と各Vkが正しい値であることを
信したC 0k を用いて検証する手段と、 正しいと確認されたVkのうち2t+1個を選択し、指
数部に対する秘密復元手順によりVを復元する手段と、 復元した値Vが1に等しいか否かを調べる手段と、 Vが1に等しくないならば他の2t+1個の組み合わせ
で同様に秘密復元手順を繰り返し、Vが1に等しいか否
か調べる手段と、 2t+1個の全ての組み合わせについていずれも復元値
が1に等しくないならば、その暗号文を不正と判定し、
一つでも1になる組み合わせがあったならば、その暗号
文を正しいと判定する手段と、 を備えることを特徴とする暗号文検証装置。
16. p is a large prime number, q is a large prime number that divides p−1, Gq represents a subgroup of the order q of the multiplicative group Zp, g1 and g2 are elements of Gq, and H is a general-purpose element. and the hash function, the decryption person Pj for the n (j = 1, ..., n ) have unique public values wj to the apparatus of the (x1, x2, y1, y2 , z) ∈Zq 5, 3t <n
Secret value (x1j, x2j, y1) corresponding to the value wj obtained by distribution by the secret sharing method with a threshold value t satisfying
j, y2j, zj) as the secret key of the device of the decryptor Pj, and Xj = g1 x1j g2 x2j mod p, Yj = g1 y1j g2
y2j mod p, Zj = g1 zj mod p (Xj, Yj, Z
j) is the public key of the device of the decryptor Pj, there is a secure communication path between each decryptor device, and each decryptor device has the same contents as all other decryptor devices. The secret value rj corresponding to the value wj, which is obtained by distributing the random number rqZq by the secret sharing method with the threshold value t, is used as the decrypter Pj It shall held, E = (u1, u2, v, e) a, X = g1 x1 g2 x2 mod
p, Y = g1 y1 g2 y2 mod p, and Z = g1 z mod p are ciphertexts for the plaintext m using the public key, and the correct ciphertext is u
1 = g1 r mod p, u2 = g2 r mod p, c = H (u
1, u2), v = X r Y cr mod p, a verification device ciphertext satisfying e = mZ r mod p, means for calculating a reception to c = H (u1, u2) and E Vj = (u1 x1j + cy1j u2 x2j + cy2j v -1 ) means for calculating rj mod p, and Vj is distributed by a verifiable polynomial secret sharing method having a threshold value of t or more and 2t or less to correspond to a value wk Means for obtaining a secret value Vjk to be transmitted, means for transmitting Vjk to the device of each decryptor Pk via a secure communication path, and values obtained by raising g to the power of each coefficient of the polynomial used for secret sharing.
C i j (i = 0, 1,..., T) is changed by a broadcast-type communication channel.
Correct is Vkj previously received with means for transmitting to all of the decoding user equipment, means for receiving a C ik from all other decoder's device Pk, a C ik and the received wk of
Means for verifying that a have value, to all the other decoder's device Pk, the broadcast channel, V
means for sending a j, receiving that each Vk is the correct value
Means for verifying using the received C 0k , means for selecting 2t + 1 of Vk confirmed to be correct and restoring V by a secret restoration procedure for the exponent part, and whether or not the restored value V is equal to 1. Means for checking whether V is not equal to 1; means for repeating the same secret recovery procedure with another 2t + 1 combinations if V is not equal to 1; and means for checking whether V is equal to 1 and for all 2t + 1 combinations. If the restoration value is not equal to 1, the ciphertext is determined to be invalid,
Means for determining that the ciphertext is correct if there is at least one combination, and a ciphertext verifying device.
【請求項17】 請求項16の暗号文検証装置におい
て、 wをmod qでの1のn乗根とし、各復号者装置は、wj
をwj-1 mod qとし、1<j<nにおいてwj≠1を満
たすようなwjを公開の固有値とし、 Dj=u1zjmod pを計算する手段と、 Djを放送型通信路により他の全ての復号者装置へ送信
する手段と、 受信した(D1,…,Dn)のu1を底とする離散対数
がBCH符号のコードワードであることを確認する手段
とを備えることを特徴とする暗号文検証装置。
17. The ciphertext verifying apparatus according to claim 16 , wherein w is an n-th root of 1 in mod q, and each decryptor device is wj
Wj-1 mod q, wj that satisfies wj ≠ 1 in 1 <j <n is a public eigenvalue, Dj = u1 zj mod p means for calculating, and Dj is another A cipher comprising: means for transmitting to all decryptor devices; and means for confirming that the discrete logarithm of the received (D1,..., Dn) whose base is u1 is a BCH codeword. Statement verification device.
【請求項18】 pを大きな素数、qをp−1を割り切
る大きな素数とし、Gqは乗法群Zpの位数qの部分群
を表すものとし、g1,g2をGqの元とし、Hを汎用
ハッシュ関数とし、 (x1,x2,y1,y2,z)∈Zq5 を秘密鍵、X
=g1x1g2x2mod p,Y=g1y1g2y2mod p,Z=
g1z mod pなる(X,Y,Z)を公開鍵とし、 平文mに対する暗号文EはcをH(u1,u2)mod q
としてu1=g1r mod p,u2=g2r mod p,v=
r crmod p,e=mZ r mod pなるつ組み(u
1,u2,v,e)を含む暗号文の検証装置であって、 wをmod qでの1のn乗根とし、wjをwj-1 mod qと
し、1<j<nにおいてwj≠1を満たすものとし、各
復号者Pj(j=1,…,n)の装置に値wjを割り当
て、 復号者Pjの装置の秘密鍵(x1j,x2j,y1j,
y2j,zj)は、3t<nを満たすしきい値tの秘密
分散法により(x1,x2,y1,y2,z)を分散し
て得られる、値wjに対応する秘密値とし、 Xj=g1x1j g2x2j mod p,Yj=g1y1j g2
y2j mod p,Zj=g1Zjmod pなる(Xj,Yj,Z
j)を復号者Pjの装置の公開鍵とし、 各々の復号者装置間には、安全な通信路があるものと
し、また、各復号者装置は、他の全員の復号者装置が同
一の内容を受信することが保証される放送型通信路を利
用できるものとし、 乱数r∈Zqをしきい値tの秘密分散法により分散し
て、値wjに対応する秘密値rjを得る手段と、 rx1,rx2,ry1,ry2をそれぞれしきい値t
の秘密分散法により分散して、値wjに対応する秘密値
x1j′,x2j′,y1j′,y2j′を分散乗算法
によって計算して得る手段と、 受信した暗号文について、c=H(u1,u2)を計算
する手段と、Vj=u1x1j'+cy1j'u2x2j'+cy2j'
-rj mod pを計算する手段と、 放送型通信路により、Vjを他の全ての復号者装置へ送
信する手段と、 (V1,…,Vn)の指数部がBCH符号のコードワー
ドであることを確認する手段と、 指数部に対する秘密復元手順によりVを復元する手段
と、 復元した値Vが1に等しいことを確認することによって
暗号文の正当性を検証する手段と、 を備えることを特徴とする暗号文検証装置。
18. Divide p by a large prime number and q by p-1
Gq is a subgroup of the order q of the multiplicative group Zp
Where g1 and g2 are elements of Gq, and H is a general
As a hash function, (x1, x2, y1, y2, z) ∈ZqFiveIs the secret key, X
= G1x1g2x2mod p, Y = g1y1g2y2mod p, Z =
g1zUsing (P, X, Y, Z) mod p as a public key, the ciphertext E for the plaintext m becomes c with H (u1, u2) mod q
U1 = g1rmod p, u2 = g2rmod p, v =
XrYcrmod p, E = mZ r mod pBecomeFourTuple (u
1, u2, v, E), The ciphertext verification device comprising:  Let w be the nth root of 1 in mod q and wj be wj-1mod q and
It is assumed that wj ≠ 1 is satisfied when 1 <j <n.
Decryptor Pj(J = 1,..., N)Is assigned the value wj
hand,  Decryptor PjEquipmentThe secret key (x1j, x2j, y1j,
y2j, zj) is the secret of the threshold t satisfying 3t <n
Disperse (x1, x2, y1, y2, z) by the dispersion method
Xj = g1 as a secret value corresponding to the value wj obtained byx1jg2x2jmod p, Yj = g1y1jg2
y2jmod p, Zj = g1Zjmod p becomes (Xj, Yj, Z
j) of the decryptor PjEquipmentA public key, with a secure communication channel between each decryptor device
Also, each decryptor device is the same as all other decryptor devices.
Use a broadcast-type communication path that is guaranteed to receive
The random number r∈Zq is shared by a secret sharing method with a threshold value t.
Means for obtaining a secret value rj corresponding to the value wj;
Secret value corresponding to the value wj distributed by the secret sharing method of
Distributed multiplication method for x1j ', x2j', y1j ', y2j'
Calculates c = H (u1, u2) for the means obtained by calculating
And Vj = u1x1j '+ cy1j'u2x2j '+ cy2j'v
-rjsending Vj to all other decoders by means of calculating mod p and by means of a broadcast channel
Means for transmitting, and the exponent part of (V1,..., Vn) is a codeword of a BCH code.
Means for confirming that the password is valid, and means for restoring V using a secret restoration procedure for the exponent part.
And confirming that the restored value V is equal to 1
Means for verifying the validity of the ciphertext.
【請求項19】 請求項18の暗号文検証装置におい
て、 しきい値tを、2t<nを満たすものとし、 (V1,…,Vn)の指数部がBCH符号のコードワー
ドであることを確認する代わりに、Vjがu1
x1j'+cy1j'u2x2j'+cy2j'-rj mod pの正しい計算結
果であることをx1j′,x2j′,y1j′,y2
j′,rjに関する情報を漏らすことなく、零知識証明
を用いて他の復号者装置との間で、証明するプロトコル
を実行する手段を備えることを特徴とする暗号文検証装
置。
19. The ciphertext verification device according to claim 18 , wherein the threshold value t satisfies 2t <n, and it is confirmed that the exponent part of (V1,..., Vn) is a BCH codeword. Instead of Vj
x1j '+ cy1j' u2 x2j '+ cy2j' It is x1j ', x2j', y1j ', y2 that the correct calculation result of v- rj mod p is obtained.
Zero-knowledge proof without leaking information about j ', rj
Protocol to prove with other decryption devices using
Ciphertext verification device characterized by comprising means for executing.
【請求項20】 請求項18の暗号文検証装置におい
て、 (V1,…,Vn)がBCH符号のコードワードでない
場合に、Vjがu1x1j'+cy1j'u2x2j'+cy2j'-rj mo
d pの計算結果であることをx1j′,x2j′,y1
j′,y2j′,rjに関する情報を漏らすことなく、
零知識証明を用いて他の復号者装置との間で、証明する
プロトコルを実行する手段と、 その証明に失敗した復号者Pjの装置を逸脱者装置と特
定し、逸脱者装置の秘密値x1j′,x2j′,y1
j′,y2j′,rjを秘密値回復手順を用いて復元す
る手段とを備えることを特徴とする暗号文検証装置。
20. The ciphertext verifying apparatus according to claim 18 , wherein, if (V1,..., Vn) is not a code word of the BCH code, Vj is u1 x1j ′ + cy1j ′ u2 x2j ′ + cy2j ′ v -rj mo
x1j ', x2j', y1
Without leaking information about j ', y2j', rj,
Using zero-knowledge proof with another decoder's device, proving
Means for executing the protocol specifies a departure's device a device decipherer Pj has failed its certificate, secret value x1j deviations's apparatus ', x2j', y1
means for restoring j ', y2j', rj using a secret value recovery procedure.
JP01540999A 1999-01-25 1999-01-25 Ciphertext verification method, its program recording medium, and its device Expired - Fee Related JP3302335B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP01540999A JP3302335B2 (en) 1999-01-25 1999-01-25 Ciphertext verification method, its program recording medium, and its device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP01540999A JP3302335B2 (en) 1999-01-25 1999-01-25 Ciphertext verification method, its program recording medium, and its device

Publications (2)

Publication Number Publication Date
JP2000216774A JP2000216774A (en) 2000-08-04
JP3302335B2 true JP3302335B2 (en) 2002-07-15

Family

ID=11887950

Family Applications (1)

Application Number Title Priority Date Filing Date
JP01540999A Expired - Fee Related JP3302335B2 (en) 1999-01-25 1999-01-25 Ciphertext verification method, its program recording medium, and its device

Country Status (1)

Country Link
JP (1) JP3302335B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4867916B2 (en) 2005-02-28 2012-02-01 日本電気株式会社 Shuffle decoding correctness proving apparatus and method, shuffle decoding verifying apparatus and method, program and recording medium
US8484471B2 (en) 2008-10-07 2013-07-09 Nec Corporation Multi-party distributed multiplication device, multi-party distributed multiplication system and method
CN116488919B (en) * 2023-05-06 2023-12-12 北京和德宇航技术有限公司 Data processing method, communication node and storage medium

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
A Practical Public Key Cryptosystem Provably Secure against Adaptive Chosen Ciphertext Attack,Lecture Notes in Computer Science,1998年9月1日,Vol.1462,p.13−25

Also Published As

Publication number Publication date
JP2000216774A (en) 2000-08-04

Similar Documents

Publication Publication Date Title
JP7301039B2 (en) Threshold digital signature method and system
JP7202358B2 (en) A computer-implemented method of generating a threshold vault
EP0786178B1 (en) Secret-key certificates
US6587946B1 (en) Method and system for quorum controlled asymmetric proxy encryption
US5796833A (en) Public key sterilization
CN108199835B (en) Multi-party combined private key decryption method
CN110545279A (en) block chain transaction method, device and system with privacy and supervision functions
JP4932168B2 (en) New fair blind signing process
US8654975B2 (en) Joint encryption of data
US20060083370A1 (en) RSA with personalized secret
Neji et al. Distributed key generation protocol with a new complaint management strategy
CN111162912A (en) Verification method and device suitable for block chain
Abe et al. Flaws in some robust optimistic mix-nets
GB2600684A (en) Identifying denial-of-service attacks
JP2014515125A (en) Method, computer program, and apparatus for data encryption
Battagliola et al. Threshold ecdsa with an offline recovery party
CN108964906B (en) Digital signature method for cooperation with ECC
Mu et al. Delegated decryption
JP3302335B2 (en) Ciphertext verification method, its program recording medium, and its device
Su et al. Secure blockchain-based electronic voting mechanism.
GB2612309A (en) Threshold signature scheme
JP4533636B2 (en) Digital signature system, digital signature management apparatus, digital signature management method and program
JP4000900B2 (en) Cryptographic method with authentication, decryption method with authentication, verification method and device, program, and computer-readable recording medium
Feng et al. A new approach for UC security concurrent deniable authentication
Kohlweiss et al. Accountable tracing signatures

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090426

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090426

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100426

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees