JP5975961B2 - Digital watermark system, digital watermark key generation apparatus, digital watermark method and program - Google Patents

Digital watermark system, digital watermark key generation apparatus, digital watermark method and program Download PDF

Info

Publication number
JP5975961B2
JP5975961B2 JP2013200796A JP2013200796A JP5975961B2 JP 5975961 B2 JP5975961 B2 JP 5975961B2 JP 2013200796 A JP2013200796 A JP 2013200796A JP 2013200796 A JP2013200796 A JP 2013200796A JP 5975961 B2 JP5975961 B2 JP 5975961B2
Authority
JP
Japan
Prior art keywords
key
digital watermark
base
matrix
function
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.)
Active
Application number
JP2013200796A
Other languages
Japanese (ja)
Other versions
JP2015068871A (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 JP2013200796A priority Critical patent/JP5975961B2/en
Publication of JP2015068871A publication Critical patent/JP2015068871A/en
Application granted granted Critical
Publication of JP5975961B2 publication Critical patent/JP5975961B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

この発明は、著作権保護や不正コピー防止などに利用される電子透かし技術に関し、特に、電気通信システムの暗号機能を実現するために用いられる暗号学的関数に対する電子透かし技術に関する。   The present invention relates to a digital watermark technique used for copyright protection and illegal copy prevention, and more particularly to a digital watermark technique for a cryptographic function used to realize a cryptographic function of a telecommunications system.

従来からデジタル音声、デジタル画像、デジタル動画などのマルチメディア情報に対して著作権保護や不正コピーの追跡、制御などを目的として電子透かし技術が用いられている。また、ソフトウェア、プログラムに対する電子透かしを実現するために、関数に対して電子透かしを入れる技術が考えられている。   2. Description of the Related Art Conventionally, digital watermark technology has been used for the purpose of copyright protection and tracking and control of illegal copying for multimedia information such as digital audio, digital images, and digital moving images. In order to realize digital watermarks for software and programs, a technique for putting digital watermarks into functions has been considered.

関数に対する電子透かしを実現する方法として、例えば、ハッシュ関数へ著作権を付与する方法(非特許文献1)や、放送暗号における復号関数へ著作権を付与する方法(非特許文献2)がある。これらの方式は、電子透かしの概念と近い技術であり、不正な関数生成を防止することができる。また、ペアリング上のベクトル空間におけるベクトル分解問題に基づき、デジタル署名への電子透かし方法が提案されている(非特許文献3)。   As a method for realizing a digital watermark for a function, for example, there are a method of assigning a copyright to a hash function (Non-Patent Document 1) and a method of assigning a copyright to a decryption function in broadcast encryption (Non-Patent Document 2). These methods are techniques close to the concept of digital watermarking, and can prevent illegal function generation. Further, based on a vector decomposition problem in a vector space on pairing, a digital watermark method for a digital signature has been proposed (Non-Patent Document 3).

David Naccache, Adi Shamir, and Julien P. Stern. “How to copyright a function?”, In Public Key Cryptography, volume 1560 of Lecture Notes in Computer Science, pages 188-196. Springer, 1999.David Naccache, Adi Shamir, and Julien P. Stern. “How to copyright a function?”, In Public Key Cryptography, volume 1560 of Lecture Notes in Computer Science, pages 188-196. Springer, 1999. Aggelos Kiayias and Moti Yung. “Traitor tracing with constant transmission rate.”, In EUROCRYPT, volume 2332 of Lecture Notes in Computer Science, pages 450-465. Springer, 2002.Aggelos Kiayias and Moti Yung. “Traitor tracing with constant transmission rate.”, In EUROCRYPT, volume 2332 of Lecture Notes in Computer Science, pages 450-465. Springer, 2002. Maki Yoshida and Toru Fujiwara. “Toward digital watermarking for cryptographic data.”, IEICE Transactions, 94-A(1):270-272, 2011.Maki Yoshida and Toru Fujiwara. “Toward digital watermarking for cryptographic data.”, IEICE Transactions, 94-A (1): 270-272, 2011.

しかしながら、従来の電子透かし技術は暗号学的な取り扱いがなされず、暗号学的に証明可能な安全性を有していなかった。また、暗号学的関数への電子透かし技術はこれまで実現されていなかった。   However, the conventional digital watermark technology is not handled cryptographically and has no security that can be proved cryptographically. In addition, digital watermark technology for cryptographic functions has not been realized so far.

例えば、非特許文献1に記載の技術は、著作権を付与することができるのはハッシュ関数のみである。ハッシュ関数は署名に利用することはできるが、公開鍵暗号や紛失通信など、その他の強力な暗号プリミティブを実現できるかどうかがわかっていない。また、非特許文献1の方式は電子透かしの検出をデータベースに登録してある情報を検索することでしか実現できず、電子透かしの除去もできない。さらに、著作権付与回数が限定されている。非特許文献2に記載の技術も、著作権を付与できるのは復号関数のみであるので、その他の強力な暗号プリミティブに応用できるかどうかがわかっておらず、著作権付与回数が限定されている。非特許文献3に記載の技術は、電子署名に対してしか実現できておらず、その他の強力な暗号プリミティブに応用できるかどうかがわかっていない。また、暗号学的に証明可能な安全性を有していない。   For example, in the technique described in Non-Patent Document 1, only a hash function can be given a copyright. Hash functions can be used for signing, but it is not known whether other strong cryptographic primitives such as public key cryptography and lost communications can be realized. In addition, the method of Non-Patent Document 1 can be realized only by searching for information registered in a database for detection of digital watermarks, and cannot be removed. Furthermore, the number of copyright grants is limited. Since the technology described in Non-Patent Document 2 can only grant a copyright to a decryption function, it is not known whether it can be applied to other strong cryptographic primitives, and the number of copyright grants is limited. . The technology described in Non-Patent Document 3 can only be realized for electronic signatures, and it is not known whether it can be applied to other strong cryptographic primitives. Also, it does not have cryptographically provable security.

この発明はこのような点に鑑みてなされたものであり、様々な暗号プリミティブを実現することができる暗号学的関数である損失落とし戸関数に対して電子透かしを埋め込み、検出し、除去することができる電子透かし技術を提供することを目的とする。   The present invention has been made in view of these points, and embeds, detects, and removes a digital watermark in a loss trap function that is a cryptographic function that can realize various cryptographic primitives. An object of the present invention is to provide a digital watermark technology that can

上記の課題を解決するために、この発明の電子透かしシステムは、電子透かし鍵生成装置、電子透かし埋込装置、電子透かし検出装置、電子透かし除去装置及び関数実行装置を含む。以下では、Nは自然数であり、qは素数であり、G,GTは位数qの巡回乗法群であり、gは群Gの生成元であり、Fqは位数qの有限体であり、Fq ×は有限体Fq上の乗法群であり、GL(N,Fq)は有限体Fq上のN次元一般線形群であり、Xは一般線形群GL(N,Fq)からランダムに生成した正則行列であり、Vは有限体Fq上のN次元ベクトル空間であり、Aはベクトル空間Vの標準基底であり、eはV×V→GTの双線形写像であり、γはN以下の任意の整数であり、paramVはparamV:=(q,V,GT,A,e)であるベクトル空間パラメータであるとする。 In order to solve the above problems, a digital watermark system of the present invention includes a digital watermark key generation device, a digital watermark embedding device, a digital watermark detection device, a digital watermark removal device, and a function execution device. In the following, N is a natural number, q is a prime number, G and G T are cyclic multiplicative groups of order q, g is a generator of group G, and F q is a finite field of order q. F q × is the multiplicative group on the finite field F q , GL (N, F q ) is the N-dimensional general linear group on the finite field F q , and X is the general linear group GL (N, F q ), A regular matrix randomly generated from), V is an N-dimensional vector space on the finite field F q , A is a standard basis of the vector space V, and e is a bilinear map of V × V → G T Γ is an arbitrary integer equal to or less than N, and param V is a vector space parameter of param V : = (q, V, G T , A, e).

電子透かし鍵生成装置は、双対直交基底生成部、鍵ペア生成部、埋込鍵生成部、検出鍵生成部、除去鍵生成部、単射鍵生成部及び損失鍵生成部を含む。双対直交基底生成部は、標準基底A及び正則行列Xを用いて、ベクトル空間Vの双対直交基底である基底B及び基底B*を生成する。鍵ペア生成部は、基底Bから所定の元を選択して基底B^を生成した上でベクトル空間パラメータparamV及び基底B^を含む公開鍵pk並びに基底B*から所定の元を選択した秘密鍵skを生成する。埋込鍵生成部は、基底B*から秘密鍵skに含まれない元を選択して埋込鍵mkを生成する。検出鍵生成部は、基底Bから基底B^に含まれない元を選択して検出鍵dkを生成する。除去鍵生成部は、正則行列Xを除去鍵rkとして設定する。単射鍵生成部は、単位行列に設定したγ×γの行列Mを用いて生成した行列ui,j、基底Bを用いて生成した行列vi,j及び基底B*を用いて生成した値kIDを含む単射鍵ekI並びに有限体Fqからランダムに生成した逆関数鍵ikを生成する。損失鍵生成部は、ゼロ行列に設定したγ×γの行列Mを用いて生成した行列ui,j、基底Bを用いて生成した行列vi,j及び基底B*を用いて生成した値kIDを含む損失鍵ekLを生成する。 The digital watermark key generation device includes a dual orthogonal basis generation unit, a key pair generation unit, an embedded key generation unit, a detection key generation unit, a removal key generation unit, a single key generation unit, and a loss key generation unit. The dual orthogonal base generation unit generates a base B and a base B * , which are dual orthogonal bases of the vector space V, using the standard base A and the regular matrix X. The key pair generation unit generates a base B ^ by selecting a predetermined element from the base B, and then a secret that selects the predetermined element from the public key pk and the base B * including the vector space parameter param V and the base B ^. Generate key sk. The embedded key generation unit selects an element not included in the secret key sk from the base B * and generates an embedded key mk. The detection key generation unit selects an element that is not included in the base B ^ from the base B and generates a detection key dk. The removal key generation unit sets the regular matrix X as the removal key rk. The injection key generation unit generates a matrix u i, j generated using a matrix M of γ × γ set as a unit matrix, a matrix v i, j generated using a base B , and a base B * An inverse function key ik randomly generated from the injection key ek I including the value k ID and the finite field F q is generated. The loss key generation unit generates a value using a matrix u i, j generated using a γ × γ matrix M set to a zero matrix, a matrix v i, j generated using a basis B , and a basis B *. k Generate a lost key ek L containing ID .

電子透かし埋込装置は、電子透かし埋込部を含む。電子透かし埋込部は、埋込対象関数鍵ekを入力として、埋込鍵mkを用いて、埋込対象関数鍵ekに含まれる値kIDに電子透かしを埋め込んだ透かし付関数鍵WM(ek)を生成する。 The digital watermark embedding device includes a digital watermark embedding unit. The watermark embedding unit receives the embedding target function key ek and uses the embedding key mk to use the watermarked function key WM (ek (ek) embedded with the digital watermark in the value k ID included in the embedding target function key ek. ) Is generated.

電子透かし検出装置は、電子透かし検出部を含む。電子透かし検出部は、検出対象関数鍵ek’を入力として、検出鍵dkを用いて、検出対象関数鍵ek’に含まれる値kIDに電子透かしが埋め込まれているか否かを示す情報を出力する。 The digital watermark detection apparatus includes a digital watermark detection unit. The digital watermark detection unit receives the detection target function key ek ′ and outputs information indicating whether the digital watermark is embedded in the value k ID included in the detection target function key ek ′ using the detection key dk To do.

電子透かし除去装置は、電子透かし除去部を含む。電子透かし除去部は、除去対象関数鍵ek”を入力として、除去鍵rkを用いて、除去対象関数鍵ek”に含まれる値kIDから電子透かしを取り除いた除去済関数鍵ek^を出力する。 The digital watermark removal apparatus includes a digital watermark removal unit. The digital watermark removal unit receives the removal target function key ek ”and outputs the removed function key ek ^ obtained by removing the digital watermark from the value k ID included in the removal target function key ek” using the removal key rk. .

関数実行装置は、関数実行部及び逆関数実行部を含む。関数実行部は、計算対象の情報xを入力として、透かし付関数鍵WM(ek)を用いて、計算結果である情報yを出力する。逆関数実行部は、逆計算対象の情報yを入力として、逆関数鍵ikを用いて、逆計算結果である情報xを出力する。   The function execution device includes a function execution unit and an inverse function execution unit. The function execution unit receives the calculation target information x, and outputs the calculation result information y using the watermarked function key WM (ek). The inverse function execution unit receives the information y to be inversely calculated and outputs information x that is the inverse calculation result using the inverse function key ik.

この発明の電子透かし処理技術によれば、損失落とし戸関数に対して電子透かしを埋め込み、検出し、除去することができる。損失落とし戸関数は、様々な暗号プリミティブを実現することができる暗号学的関数である。したがって、損失落とし戸関数により実現される暗号プリミティブを実装するソフトウェアに対して著作権の付与や不正コピーの防止などが可能となる。   According to the digital watermark processing technique of the present invention, it is possible to embed, detect, and remove a digital watermark from a lost trapdoor function. The loss trap function is a cryptographic function that can implement various cryptographic primitives. Therefore, it is possible to assign copyright to the software that implements the cryptographic primitive realized by the lost trap function and to prevent unauthorized copying.

図1は、損失落とし戸関数を説明するための図である。FIG. 1 is a diagram for explaining a loss trapdoor function. 図2は、関数に対する電子透かしの埋込及び除去を説明するための図である。FIG. 2 is a diagram for explaining embedding and removal of a digital watermark with respect to a function. 図3は、関数に対する電子透かしの検出を説明するための図である。FIG. 3 is a diagram for explaining digital watermark detection for a function. 図4は、電子透かしシステムの機能構成を例示する図である。FIG. 4 is a diagram illustrating a functional configuration of the digital watermark system. 図5は、電子透かし鍵生成装置の機能構成を例示する図である。FIG. 5 is a diagram illustrating a functional configuration of the digital watermark key generation apparatus. 図6(A)は、電子透かし埋込装置の機能構成を例示する図である。図6(B)は、電子透かし検出装置の機能構成を例示する図である。図6(C)は、電子透かし除去装置の機能構成を例示する図である。FIG. 6A is a diagram illustrating a functional configuration of the digital watermark embedding apparatus. FIG. 6B is a diagram illustrating a functional configuration of the digital watermark detection apparatus. FIG. 6C is a diagram illustrating a functional configuration of the digital watermark removal apparatus. 図7は、関数実行装置の機能構成を例示する図である。FIG. 7 is a diagram illustrating a functional configuration of the function execution device. 図8は、電子透かし鍵生成装置の処理フローを例示する図である。FIG. 8 is a diagram illustrating a processing flow of the digital watermark key generation apparatus. 図9(A)は、電子透かし埋込装置の処理フローを例示する図である。図9(B)は、電子透かし検出装置の処理フローを例示する図である。図9(C)は、電子透かし除去装置の処理フローを例示する図である。FIG. 9A is a diagram illustrating a processing flow of the digital watermark embedding apparatus. FIG. 9B is a diagram illustrating a processing flow of the digital watermark detection apparatus. FIG. 9C is a diagram illustrating a processing flow of the digital watermark removal apparatus. 図10は、関数実行装置の処理フローを例示する図である。FIG. 10 is a diagram illustrating a processing flow of the function execution device. 図11は、電子透かしシステムのデータフローを例示する図である。FIG. 11 is a diagram illustrating a data flow of the digital watermark system. 図12は、この発明の電子透かし処理技術と従来技術との比較を示す図である。FIG. 12 is a diagram showing a comparison between the digital watermark processing technique of the present invention and the conventional technique.

以下、この発明の実施の形態について詳細に説明する。なお、図面中において同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。   Hereinafter, embodiments of the present invention will be described in detail. In addition, the same number is attached | subjected to the component which has the same function in drawing, and duplication description is abbreviate | omitted.

[表記方法]
実施形態の説明に先立ち、この明細書で用いる表記方法及び用語を定義する。
[Notation]
Prior to the description of the embodiments, notation methods and terms used in this specification are defined.

次式は、ある値a,bについて、aにbを代入する、又は、aをbで定義することを表す。   The following expression represents that for a value a and b, b is substituted for a or a is defined by b.

Figure 0005975961
Figure 0005975961

_(アンダースコア)は下付き添字を表す。例えば、xy_zはyzがxに対する上付き添字であり、xy_zはyzがxに対する下付き添字であることを表す。 _ (Underscore) represents a subscript. For example, xy_z represents that yz is a superscript to x, and xy_z represents that yz is a subscript to x.

次式は、ある有限集合Sについて、集合Sから要素rを一様ランダムに選ぶことを表す。   The following expression represents that an element r is uniformly selected from the set S for a certain finite set S.

Figure 0005975961
Figure 0005975961

次式は、ある確率的多項式時間アルゴリズムAについて、アルゴリズムAがxを入力にとり、乱数を生成して動作し、aを出力することを表す。   The following equation represents that, for a certain stochastic polynomial time algorithm A, algorithm A takes x as input, operates by generating a random number, and outputs a.

Figure 0005975961
Figure 0005975961

(上付き文字の右矢印)は有限体Fq上のベクトル表現を表す。つまり、xは(x1,…,xn)∈Fqである。数式内における次式も同様である。 (superscript right arrow) represents a vector representation on the finite field Fq . That is, x is (x 1 ,..., X n ) ∈F q . The same applies to the following expression in the expression.

Figure 0005975961
Figure 0005975961

次式はいずれもベクトルxとベクトルyの内積を表す。 Each of the following expressions represents the inner product of the vector x and the vector y .

Figure 0005975961
Figure 0005975961

すなわち、x=(x1,…,xn)、y=(y1,…,yn)であるとして、次式により定義される演算を表す。 In other words, an operation defined by the following equation is expressed assuming that x = (x 1 ,..., X n ) and y = (y 1 ,..., Y n ).

Figure 0005975961
Figure 0005975961

T(上付き文字のT)は行列の転置を表す。例えば、XTは行列Xの転置行列である。数式内における次式も同様である。 T (superscript T) represents the transpose of the matrix. For example, XT is a transposed matrix of the matrix X. The same applies to the following expression in the expression.

Figure 0005975961
Figure 0005975961

-1(上付き文字の-1)は逆行列を表す。例えば、X-1は行列Xの逆行列である。数式内における次式も同様である。 -1 (superscript -1) represents an inverse matrix. For example, X −1 is the inverse of the matrix X. The same applies to the following expression in the expression.

Figure 0005975961
Figure 0005975961

bi∈V(i=1,…,n)のとき、span<b1,…,bn>⊆Vは、b1,…,bnによって生成される部分空間である。 b i ∈V (i = 1, ..., n) When, span <b 1, ..., b n> ⊆V is, b 1, ..., a subspace generated by b n.

基底B:=(b1,…,bN)と基底B*:=(b* 1,…,b* N)に対し、次式の演算を定義する。 For the basis B: = (b 1 ,..., B N ) and the basis B * : = (b * 1 ,..., B * N ), the following equation is defined.

Figure 0005975961
Figure 0005975961

ベクトルe jは次式により定義される標準基底ベクトルである。 The vector e j is a standard basis vector defined by the following equation.

Figure 0005975961
Figure 0005975961

λはセキュリティパラメータを表す。   λ represents a security parameter.

qはλビットの素数である。   q is a prime number of λ bits.

G,GTは素数位数qの巡回乗法群である。 G, G T is a cyclic multiplicative group of prime order q.

gは群Gの生成元である。   g is a generator of group G.

eはe:V×V→GTの双線形写像である。 e is e: a bilinear mapping of V × V → G T.

Fqは位数qの有限体である。 F q is a finite field of order q.

Fq ×は有限体Fqの乗法群である。 F q × is a multiplicative group of the finite field F q .

GL(n,Fq)は有限体Fq上のn次元一般線形群である。 GL (n, F q ) is an n-dimensional general linear group on the finite field F q .

BMSetupは1λを入力とし、双線形写像のパラメータ(q,g,G,GT,e)を出力する標準的なアルゴリズムである。 BMSetup is a standard algorithm that takes 1 λ as input and outputs parameters (q, g, G, G T , e) of bilinear mapping.

[双線形写像の説明]
双線形写像とは、楕円曲線上の二点に定義されるペアリング演算を行うための関数である。G×G→GTの双線形写像eは以下の性質を満たす。
<双線型性>任意のg,h∈G及び任意のa,b∈Fqに対して、e(ag,bh)=e(g,h)abが成立する。
<非退化性>e(g,g)≠1を満たすgが存在する。つまり、もしgがGの生成元ならe(g,g)はGTの生成元である。
<計算可能性>任意のg,h∈Gに対して、e(g,h)を効率的に(つまり多項式時間で)計算可能である。
[Explanation of bilinear mapping]
A bilinear map is a function for performing a pairing operation defined at two points on an elliptic curve. The bilinear map e of G × G → G T satisfies the following properties.
<Bilinearity> For any g, hεG and any a, bεF q , e (ag, bh) = e (g, h) ab holds.
<Non-degrading property> There exists g satisfying e (g, g) ≠ 1. That is if g if the generator of G e (g, g) the generator of G T.
<Computability> For any g, hεG, e (g, h) can be calculated efficiently (that is, in polynomial time).

双線形写像の具体例としては、例えば、WeilペアリングやTateペアリングなどが考えられる。ペアリング演算をコンピュータ上で行うためのアルゴリズムとしては、周知のMillerのアルゴリズムなどが存在する。詳しくは「D. Boneh and M. K. Franklin. “Identity-Based Encryption from the Weil Pairing.”, In CRYPTO’01,volume 2139 of Lecture Notes in Computer Science, pages 213-229, Springer, 2001.(参考文献1)」や「D. Moriyama, R. Nishimaki, and T. Okamoto, “公開鍵暗号の数理” 共立出版, 2011.(参考文献2)」及び「黒澤馨, “現代暗号への招待”, サイエンス社(参考文献3)」などを参照されたい。   Specific examples of the bilinear mapping include Weil pairing and Tate pairing. As an algorithm for performing the pairing operation on the computer, there is a well-known Miller algorithm. For details, see “D. Boneh and MK Franklin.“ Identity-Based Encryption from the Weil Pairing. ”, In CRYPTO'01, volume 2139 of Lecture Notes in Computer Science, pages 213-229, Springer, 2001. (Reference 1) ”And“ D. Moriyama, R. Nishimaki, and T. Okamoto, “Mathematics of Public Key Cryptography”, Kyoritsu Shuppan, 2011. Reference 3) ”and the like.

[双対ペアリングベクトル空間の説明]
この発明では双対ペアリングベクトル空間を利用する。対称ペアリング群(q,G,GT,g,e)による双対ペアリングベクトル空間(q,V,GT,A,e)とは、素数q、有限体Fq上のN次元ベクトル空間V、位数qの巡回群GT、ベクトル空間Vの標準基底A及びe:V×V→GTである双線形写像eの組である。
[Description of dual pairing vector space]
In the present invention, a dual pairing vector space is used. The dual pairing vector space (q, V, G T , A, e) by the symmetric pairing group (q, G, G T , g, e) is an N-dimensional vector space on the prime number q and the finite field F q It is a set of bilinear mapping e which is V, cyclic group G T of order q, standard basis A of vector space V, and e: V × V → G T.

ここで、N次元ベクトル空間Vは以下の式で定義される。   Here, the N-dimensional vector space V is defined by the following equation.

Figure 0005975961
Figure 0005975961

ベクトル空間Vの標準基底Aは以下の式で定義される。   The standard base A of the vector space V is defined by the following equation.

Figure 0005975961
Figure 0005975961

双線形写像eは以下の式で定義される。   The bilinear map e is defined by the following equation.

Figure 0005975961
Figure 0005975961

これは非退化双線形である。つまり、e(sx,ty)=e(x,y)st、かつ、もしすべてのy∈Vに対しe(x,y)=1ならばx=0である。 This is non-degenerate bilinear. That is, if e (sx, ty) = e (x, y) st and e (x, y) = 1 for all y∈V, x = 0.

すべてのi及びjに対しe(ai,aj)=e(g,g)δ_i,jである。ただし、i=jならばδi,j=1であり、i≠jならばδi,j=0である。またe(g,g)≠1である。 For all i and j, e (a i , a j ) = e (g, g) δ_i, j . However, if i = j, δ i, j = 1, and if i ≠ j, δ i, j = 0. Also, e (g, g) ≠ 1.

双対ペアリングベクトル空間生成アルゴリズムGdpvsは1λ及び自然数Nを入力として、ベクトル空間パラメータparamV:=(q,V,GT,A,e)を得る。ここで、Nはベクトル空間Vの次元数である。双対ペアリングベクトル空間生成アルゴリズムGdpvsはGbmpを使用して構成することができる。 The dual pairing vector space generation algorithm G dpvs receives 1 λ and a natural number N as input, and obtains a vector space parameter param V : = (q, V, G T , A, e). Here, N is the number of dimensions of the vector space V. The dual pairing vector space generation algorithm G dpvs can be constructed using G bmp .

双対ペアリングベクトル空間において、双対基底を構成する方法は以下の通りである。まず、双線形写像パラメータ(q,g,G,GT,e)を次式により生成する。 In the dual pairing vector space, a method for constructing a dual basis is as follows. First, bilinear mapping parameters (q, g, G, G T , e) are generated by the following equations.

Figure 0005975961
Figure 0005975961

次に、双対直交基底(paramV,B,B*)を次式により生成する。 Next, a dual orthogonal basis (param V , B, B * ) is generated by the following equation.

Figure 0005975961
Figure 0005975961

ただし、gobは次式により定義される。 However, g ob is defined by the following equation.

Figure 0005975961
Figure 0005975961

双対ペアリングベクトル空間は以下の性質を有する。
<ペアリング演算>双対ペアリングベクトル空間Vの要素x,y∈Vについて、次式が成立する。
The dual pairing vector space has the following properties.
<Pairing Operation> For the element x, y∈V of the dual pairing vector space V, the following equation is established.

Figure 0005975961
Figure 0005975961

ここで、x及びyは基底A上の係数ベクトルとして表現可能である。つまり、次式に示すように表すことができる。   Here, x and y can be expressed as coefficient vectors on the base A. That is, it can be expressed as shown in the following equation.

Figure 0005975961
Figure 0005975961

<基底変換>標準基底Aは一様ランダムな正則行列Xを用いて、N次元ベクトル空間Vの基底Bに変換可能である。ただし、正則行列Xは有限体Fq上のN次元一般線形群GL(N,Fq)よりランダムに生成され、次式により定義される。 <Base Conversion> The standard base A can be converted to the base B of the N-dimensional vector space V using a uniform random regular matrix X. However, the regular matrix X is randomly generated from the N-dimensional general linear group GL (N, F q ) on the finite field F q and is defined by the following equation.

Figure 0005975961
Figure 0005975961

また、基底Bは次式により定義される。   The base B is defined by the following equation.

Figure 0005975961
Figure 0005975961

標準基底Aは上記の正則行列Xを用いてN次元ベクトル空間Vの基底B*にも変換可能である。ただし、基底B*は次式により定義される。 The standard basis A can be converted into the basis B * of the N-dimensional vector space V using the regular matrix X described above. However, the base B * is defined by the following equation.

Figure 0005975961
Figure 0005975961

ここで注目すべきは次式が成立することである。   What should be noted here is that the following equation holds.

Figure 0005975961
Figure 0005975961

つまり、基底Bと基底B*はベクトル空間Vの双対直交基底である。 That is, the base B and the base B * are dual orthogonal bases in the vector space V.

ここで、x:=x1b1+…+xNbN∈V及びy:=y1b* 1+…+yNb* N∈Vは基底B及び基底B*の係数ベクトルとして表現可能である。つまり、次式が成立する。 Where x: = x 1 b 1 + ... + x N b N ∈V and y: = y 1 b * 1 + ... + y N b * N ∈V are expressed as coefficient vectors of base B and base B * Is possible. That is, the following equation is established.

Figure 0005975961
Figure 0005975961

双対ペアリングベクトル空間についての詳細は、「Tatsuaki Okamoto and Katsuyuki Takashima. “Fully secure functional encryption with general relations from the decisional linear assumption.”, In CRYPTO, volume 6223 of Lecture Notes in Computer Science, pages 191-208, Springer, 2010.(参考文献4)」を参照されたい。   For more information on dual pairing vector space, see “Tatsuaki Okamoto and Katsuyuki Takashima.“ Fully secure functional encryption with general relations from the decisional linear assumption. ”, In CRYPTO, volume 6223 of Lecture Notes in Computer Science, pages 191-208, See Springer, 2010. (reference 4).

[損失落とし戸関数の説明]
この発明では損失落とし戸関数に対する電子透かしを実現する。図1を参照して、損失落とし戸関数について説明する。ここでは、損失落とし戸関数LTFを定義域Dから定義域Rへの写像とする。損失落とし戸関数LTFは単射関数fと損失関数flossのいずれとしても動作することができるが、単射関数fと損失関数flossは識別不可能である。単射関数fは一対一の写像である。そして、逆関数f-1が計算可能である。逆関数f-1は計算が困難であるが、落とし戸tがあれば効率的に計算することができる。損失関数flossは単射ではない。したがって、落とし戸tがあったとしても逆関数floss -1は計算することができない。
[Explanation of loss trap function]
In the present invention, digital watermarking for the loss trap function is realized. The loss trap function will be described with reference to FIG. Here, the loss trapdoor function LTF is a mapping from the domain D to the domain R. The loss trap function LTF can operate as either the injection function f or the loss function f loss , but the injection function f and the loss function f loss are indistinguishable. The injection function f is a one-to-one mapping. The inverse function f −1 can be calculated. The inverse function f -1 is difficult to calculate, but can be calculated efficiently if there is a trapdoor t. The loss function f loss is not injective. Therefore, even if there is a trapdoor t, the inverse function f loss −1 cannot be calculated.

損失落とし戸関数LTFは以下の四つの多項式時間アルゴリズムからなる。ここで、λはセキュリティパラメータであり、n(λ)は関数の入力長である。
・単射鍵生成:アルゴリズムLTF.IGenは、計算鍵ekと逆計算鍵ikを出力する。
・計算:アルゴリズムLTF.Evalek(X)(ただし、X∈D)は像Y=fek(X)を出力する。
・逆計算:アルゴリズムLTF.Invertik(Y)は逆像X=f-1 ik(Y)を出力する。
・損失鍵生成:アルゴリズムLTF.LGenは計算鍵ek’を出力する。
The loss trap function LTF consists of the following four polynomial time algorithms. Here, λ is a security parameter, and n (λ) is an input length of the function.
-Single key generation: The algorithm LTF.IGen outputs a calculation key ek and an inverse calculation key ik.
Calculation: Algorithm LTF.Eval ek (X) (where X∈D) outputs an image Y = f ek (X).
Inverse calculation: The algorithm LTF.Invert ik (Y) outputs an inverse image X = f −1 ik (Y).
Lost key generation: The algorithm LTF.LGen outputs the calculation key ek ′.

損失落とし戸関数LTFは以下の性質を有する。
<完全性>すべての計算鍵ek及び逆計算鍵ikの組み合わせ
The loss trap function LTF has the following properties.
<Completeness> Combination of all calculation keys ek and reverse calculation keys ik

Figure 0005975961
Figure 0005975961

及びX∈Dに対して、fik -1(fek(X))=Xが成立する。
<識別不可能性>すべての確率的多項式時間攻撃者Αに対して
And for X∈D, f ik −1 (f ek (X)) = X holds.
<Indistinguishability> For all stochastic polynomial time attackers

Figure 0005975961
Figure 0005975961

が成立する。ここで、neglは無視できる関数である。
<損失性>損失落とし戸関数LTFがγ損失であるとは、すべての
Is established. Where negl is a negligible function.
<Loss> Loss trap function LTF is γ loss

Figure 0005975961
Figure 0005975961

に対して、像fek’(D)のサイズが高々|D|/2γとなることである。 On the other hand, the size of the image f ek ′ (D) is at most | D | / 2 γ .

損失落とし戸関数を利用することで、一方向性関数、落とし戸付一方向性関数、衝突困難ハッシュ関数、選択暗号文攻撃に対して安全な公開鍵暗号、紛失通信などの様々な暗号プリミティブを実現することができる。したがって、損失落とし戸関数に対する電子透かしを実現することは、様々な電子透かし付き暗号プリミティブを実現できることを意味している。   By using the loss trap function, various cryptographic primitives such as one-way functions, one-way functions with trap doors, hash functions that are difficult to collide, public key cryptography that is safe against selected ciphertext attacks, and lost communication are available. Can be realized. Therefore, realizing the digital watermark for the lost trapdoor function means that various cryptographic primitives with a digital watermark can be realized.

損失落とし戸関数についての詳細は、「Chris Peikert and Brent Waters. “Lossy trapdoor functions and their applications.”, In STOC'08, pages 187-196, ACM, 2008.(参考文献5)」及び「D. Moriyama, R. Nishimaki, and T. Okamoto. “公開鍵暗号の数理” 共立出版, 2011.(参考文献6)」を参照されたい。   For details on the loss trap function, see “Chris Peikert and Brent Waters.“ Lossy trapdoor functions and their applications. ”, In STOC'08, pages 187-196, ACM, 2008. (Reference 5)” and “D. See Moriyama, R. Nishimaki, and T. Okamoto. “Mathematics of public-key cryptography” Kyoritsu Shuppan, 2011. (reference 6).

[関数への電子透かし処理の説明]
図2を参照して、関数に対する電子透かしの埋込方法及び除去方法を説明する。関数fに対して電子透かしを埋め込むために、埋込アルゴリズムMarkは、埋込鍵mkを用いてそれぞれに異なるパターンが埋め込まれた透かし付き関数fm1,…,fmnを出力する。透かし付き関数fm1,…,fmnはいずれも電子透かしを埋め込む前の関数fと同じ計算を行う。
[Explanation of watermark processing to function]
A method for embedding and removing a digital watermark from a function will be described with reference to FIG. In order to embed a digital watermark in the function f, the embedding algorithm Mark outputs watermarked functions fm 1 ,..., Fm n in which different patterns are embedded using the embedded key mk. Each of the watermarked functions fm 1 ,..., Fm n performs the same calculation as the function f before embedding a digital watermark.

電子透かしを除去する除去アルゴリズムRemoveは、除去鍵rkを用いて透かし付き関数fm1,…,fmnに埋め込まれた電子透かしを除去して元の関数fを復元することができる。 The removal algorithm Remove that removes the digital watermark can remove the digital watermark embedded in the watermarked functions fm 1 ,..., Fm n using the removal key rk to restore the original function f.

図3を参照して、関数に対する電子透かしの検出方法を説明する。関数に対して電子透かしが埋め込まれているか否かを検出する検出アルゴリズムDetectは、検出鍵dkを用いて入力された関数に電子透かしが埋め込まれているかを示す情報を出力する。透かし付き関数fmjが入力された場合には、電子透かしが埋め込まれていることを示す「true」を出力する。透かしなし関数fが入力された場合には、電子透かしが埋め込まれていないことを示す「false」を出力する。不正なユーザjが他のユーザに関数fmjのコピーを渡した場合、コピーされた関数に電子透かしが埋め込まれているか否かを検出し、検出した電子透かしのパターンから関数fmjの流出元である不正ユーザjが誰かを特定することができる。 With reference to FIG. 3, a digital watermark detection method for a function will be described. A detection algorithm Detect that detects whether or not a digital watermark is embedded in a function outputs information indicating whether or not the digital watermark is embedded in the function input using the detection key dk. When the watermarked function fm j is input, “true” indicating that a digital watermark is embedded is output. When the watermarkless function f is input, “false” indicating that the digital watermark is not embedded is output. When an unauthorized user j passes a copy of the function fm j to another user, it detects whether or not a digital watermark is embedded in the copied function, and the source of the function fm j is detected from the detected watermark pattern. It is possible to identify someone who is an unauthorized user j.

したがって、電子透かしを実現するために必要とされる要件は、電子透かしの偽造を防止するために埋込鍵mkがなければ電子透かしを埋め込むことができないこと、そして、除去鍵rkがないと関数の機能を破壊することなく電子透かしを取り除くことができないことである。   Therefore, the requirements required to realize the watermark are that the watermark cannot be embedded without the embedded key mk to prevent forgery of the watermark, and the function without the removal key rk. The digital watermark cannot be removed without destroying the function.

[この発明のポイント]
損失落とし戸関数への電子透かしを実現するために、この発明では、双対ペアリングベクトル空間を利用する。そして、双対ペアリングベクトル空間の双対直交基底を使用した電子透かしの実現のために、準機能暗号文と準機能鍵を利用する。準機能暗号文は通常の暗号文と識別不可能であり、通常の鍵を用いる限り通常通り復号が可能である。準機能鍵は通常の鍵と識別不可能であり、通常の暗号文については通常通り復号可能である。一方で、準機能暗号文を準機能鍵で復号することは不可能である。この準機能暗号文と準機能鍵の性質は、従来は暗号の安全性を証明するためのテクニックとして用いられてきたが、暗号機能を実行する上では利用されてこなかった。この発明による問題解決手法として重要な点は、これら準機能暗号文と準機能鍵を証明のテクニックとしてだけではなく、暗号機能を実行する上で利用したことである。
[Points of the invention]
In order to realize a digital watermark to the loss trapdoor function, the present invention uses a dual pairing vector space. Then, a semi-functional ciphertext and a semi-functional key are used to realize a digital watermark using a dual orthogonal basis in a dual pairing vector space. The semi-functional ciphertext is indistinguishable from normal ciphertext, and can be decrypted as usual as long as a normal key is used. The semi-functional key is indistinguishable from the normal key, and the normal ciphertext can be decrypted as usual. On the other hand, it is impossible to decrypt a semi-functional ciphertext with a semi-functional key. The properties of the quasi-function ciphertext and the quasi-function key have been conventionally used as techniques for proving the security of encryption, but have not been used for executing encryption functions. An important point as a problem-solving technique according to the present invention is that these quasi-functional ciphertexts and quasi-functional keys are used not only as proof techniques but also for executing cryptographic functions.

また、電子透かしの除去を可能とするために、双対ペアリングベクトル空間の生成に使用した正則行列Xを利用する。これまで双対ペアリングベクトル空間を利用した技術は双対直交基底を利用することで様々な問題を解決してきたが、その生成に用いた行列Xそのものを利用することは考えられていなかった。このように正則行列Xを利用することも問題解決手法として重要な点である。   Further, in order to enable removal of the digital watermark, the regular matrix X used for generating the dual pairing vector space is used. So far, the technology using the dual pairing vector space has solved various problems by using the dual orthogonal basis, but it has not been considered to use the matrix X itself used for the generation. Using the regular matrix X in this way is also an important point as a problem solving technique.

[第一実施形態]
<構成>
図4を参照して、この発明の第一実施形態に係る電子透かしシステム1の機能構成例を説明する。電子透かしシステム1は電子透かし鍵生成装置10、電子透かし埋込装置20、電子透かし検出装置30、電子透かし除去装置40、関数実行装置50及びネットワーク9から構成される。電子透かし鍵生成装置10、電子透かし埋込装置20、電子透かし検出装置30、電子透かし除去装置40及び関数実行装置50はネットワーク9に接続されている。ネットワーク9は電子透かしシステム1を構成する各装置が相互に通信可能であればよく、例えばインターネットやLAN、WANなどで構成することができる。また、電子透かしシステム1を構成する各装置間は必ずしもネットワークを介してオンラインで通信可能である必要はない。例えば、電子透かし鍵生成装置10が出力する情報をUSBメモリなどの可搬記録媒体に記憶し、その可搬記録媒体から関数実行装置50へオフラインで入力するように構成してもよい。
[First embodiment]
<Configuration>
With reference to FIG. 4, a functional configuration example of the digital watermark system 1 according to the first embodiment of the present invention will be described. The digital watermark system 1 includes a digital watermark key generation device 10, a digital watermark embedding device 20, a digital watermark detection device 30, a digital watermark removal device 40, a function execution device 50, and a network 9. The digital watermark key generation device 10, the digital watermark embedding device 20, the digital watermark detection device 30, the digital watermark removal device 40, and the function execution device 50 are connected to the network 9. The network 9 only needs to be able to communicate with each other that constitutes the digital watermark system 1, and can be configured with, for example, the Internet, a LAN, or a WAN. In addition, it is not always necessary that the devices constituting the digital watermark system 1 can communicate online via a network. For example, the information output from the digital watermark key generation apparatus 10 may be stored in a portable recording medium such as a USB memory, and input from the portable recording medium to the function execution apparatus 50 offline.

図5を参照して、電子透かしシステム1に含まれる電子透かし鍵生成装置10の構成例を説明する。電子透かし鍵生成装置10は、双線形写像パラメータ生成部110、ベクトル空間パラメータ生成部115、双対直交基底生成部120、鍵ペア生成部125、埋込鍵生成部130、検出鍵生成部135、除去鍵生成部140、透かし鍵配信部145、単射鍵生成部150、損失鍵生成部155及び関数鍵配信部160を備える。電子透かし鍵生成装置10は、例えば、中央演算処理装置(Central Processing Unit、CPU)、主記憶装置(Random Access Memory、RAM)などを有する公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。電子透かし鍵生成装置10は、例えば、中央演算処理装置の制御のもとで各処理を実行する。電子透かし鍵生成装置10に入力されたデータや各処理で得られたデータは、例えば、主記憶装置に格納され、主記憶装置に格納されたデータは必要に応じて読み出されて他の処理に利用される。   A configuration example of the digital watermark key generation apparatus 10 included in the digital watermark system 1 will be described with reference to FIG. The digital watermark key generation apparatus 10 includes a bilinear mapping parameter generation unit 110, a vector space parameter generation unit 115, a dual orthogonal basis generation unit 120, a key pair generation unit 125, an embedded key generation unit 130, a detection key generation unit 135, and a removal The key generation unit 140, the watermark key distribution unit 145, the injection key generation unit 150, the loss key generation unit 155, and the function key distribution unit 160 are provided. The digital watermark key generation apparatus 10 is configured, for example, by reading a special program into a known or dedicated computer having a central processing unit (CPU), a main storage device (Random Access Memory, RAM), and the like. Special equipment. For example, the digital watermark key generation apparatus 10 executes each process under the control of the central processing unit. The data input to the digital watermark key generation device 10 and the data obtained in each process are stored in, for example, the main storage device, and the data stored in the main storage device is read out as necessary to perform other processing. Used for

図6(A)を参照して、電子透かしシステム1に含まれる電子透かし埋込装置20の構成例を説明する。電子透かし埋込装置20は、電子透かし埋込部210及び埋込鍵記憶部290を備える。電子透かし埋込装置20は、例えば、中央演算処理装置(Central Processing Unit、CPU)、主記憶装置(Random Access Memory、RAM)などを有する公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。電子透かし埋込装置20は、例えば、中央演算処理装置の制御のもとで各処理を実行する。電子透かし埋込装置20に入力されたデータや各処理で得られたデータは、例えば、主記憶装置に格納され、主記憶装置に格納されたデータは必要に応じて読み出されて他の処理に利用される。埋込鍵記憶部290は、例えば、RAM(Random Access Memory)などの主記憶装置、ハードディスクや光ディスク若しくはフラッシュメモリ(Flash Memory)のような半導体メモリ素子により構成される補助記憶装置、又はリレーショナルデータベースやキーバリューストアなどのミドルウェアにより構成することができる。   A configuration example of the digital watermark embedding device 20 included in the digital watermark system 1 will be described with reference to FIG. The digital watermark embedding device 20 includes a digital watermark embedding unit 210 and an embedded key storage unit 290. The digital watermark embedding device 20 is configured, for example, by loading a special program into a known or dedicated computer having a central processing unit (CPU), a main storage device (Random Access Memory, RAM), and the like. Special equipment. For example, the digital watermark embedding device 20 executes each process under the control of the central processing unit. The data input to the digital watermark embedding device 20 and the data obtained in each process are stored in, for example, the main storage device, and the data stored in the main storage device is read out as necessary to perform other processing. Used for The embedded key storage unit 290 includes, for example, a main storage device such as a RAM (Random Access Memory), an auxiliary storage device configured by a semiconductor memory element such as a hard disk, an optical disk, or a flash memory, a relational database, It can be configured with middleware such as a key-value store.

図6(B)を参照して、電子透かしシステム1に含まれる電子透かし検出装置30の構成例を説明する。電子透かし検出装置30は、電子透かし検出部310及び検出鍵記憶部390を備える。電子透かし検出装置30は、例えば、中央演算処理装置(Central Processing Unit、CPU)、主記憶装置(Random Access Memory、RAM)などを有する公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。電子透かし検出装置30は、例えば、中央演算処理装置の制御のもとで各処理を実行する。電子透かし検出装置30に入力されたデータや各処理で得られたデータは、例えば、主記憶装置に格納され、主記憶装置に格納されたデータは必要に応じて読み出されて他の処理に利用される。検出鍵記憶部390は、例えば、RAM(Random Access Memory)などの主記憶装置、ハードディスクや光ディスク若しくはフラッシュメモリ(Flash Memory)のような半導体メモリ素子により構成される補助記憶装置、又はリレーショナルデータベースやキーバリューストアなどのミドルウェアにより構成することができる。   With reference to FIG. 6B, a configuration example of the digital watermark detection apparatus 30 included in the digital watermark system 1 will be described. The digital watermark detection apparatus 30 includes a digital watermark detection unit 310 and a detection key storage unit 390. The digital watermark detection device 30 is configured, for example, by loading a special program into a known or dedicated computer having a central processing unit (CPU), a main storage device (Random Access Memory, RAM), and the like. It is a special device. For example, the digital watermark detection apparatus 30 executes each process under the control of the central processing unit. The data input to the digital watermark detection device 30 and the data obtained in each process are stored in, for example, the main storage device, and the data stored in the main storage device is read out as needed for other processing. Used. The detection key storage unit 390 is, for example, a main storage device such as a RAM (Random Access Memory), an auxiliary storage device configured by a semiconductor memory element such as a hard disk, an optical disk, or a flash memory, or a relational database or key. It can be configured with middleware such as a value store.

図6(C)を参照して、電子透かしシステム1に含まれる電子透かし除去装置40の構成例を説明する。電子透かし除去装置40は、電子透かし除去部410及び除去鍵記憶部490を備える。電子透かし除去装置40は、例えば、中央演算処理装置(Central Processing Unit、CPU)、主記憶装置(Random Access Memory、RAM)などを有する公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。電子透かし除去装置40は、例えば、中央演算処理装置の制御のもとで各処理を実行する。電子透かし除去装置40に入力されたデータや各処理で得られたデータは、例えば、主記憶装置に格納され、主記憶装置に格納されたデータは必要に応じて読み出されて他の処理に利用される。除去鍵記憶部490は、例えば、RAM(Random Access Memory)などの主記憶装置、ハードディスクや光ディスク若しくはフラッシュメモリ(Flash Memory)のような半導体メモリ素子により構成される補助記憶装置、又はリレーショナルデータベースやキーバリューストアなどのミドルウェアにより構成することができる。   With reference to FIG. 6C, a configuration example of the digital watermark removal apparatus 40 included in the digital watermark system 1 will be described. The digital watermark removal apparatus 40 includes a digital watermark removal unit 410 and a removal key storage unit 490. The digital watermark removal apparatus 40 is configured, for example, by loading a special program into a known or dedicated computer having a central processing unit (CPU), a main storage device (Random Access Memory, RAM), and the like. It is a special device. For example, the digital watermark removing apparatus 40 executes each process under the control of the central processing unit. The data input to the digital watermark removal device 40 and the data obtained in each process are stored in, for example, the main storage device, and the data stored in the main storage device is read out as needed for other processing. Used. The removal key storage unit 490 is, for example, a main storage device such as a RAM (Random Access Memory), an auxiliary storage device configured by a semiconductor memory element such as a hard disk, an optical disk, or a flash memory, or a relational database or key. It can be configured with middleware such as a value store.

図7を参照して、電子透かしシステム1に含まれる関数実行装置50の構成例を説明する。関数実行装置50は、関数実行部510、逆関数実行部520及び関数鍵記憶部590を備える。関数実行装置50は、例えば、中央演算処理装置(Central Processing Unit、CPU)、主記憶装置(Random Access Memory、RAM)などを有する公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。関数実行装置50は、例えば、中央演算処理装置の制御のもとで各処理を実行する。関数実行装置50に入力されたデータや各処理で得られたデータは、例えば、主記憶装置に格納され、主記憶装置に格納されたデータは必要に応じて読み出されて他の処理に利用される。関数鍵記憶部590は、例えば、RAM(Random Access Memory)などの主記憶装置、ハードディスクや光ディスク若しくはフラッシュメモリ(Flash Memory)のような半導体メモリ素子により構成される補助記憶装置、又はリレーショナルデータベースやキーバリューストアなどのミドルウェアにより構成することができる。   A configuration example of the function execution device 50 included in the digital watermark system 1 will be described with reference to FIG. The function execution device 50 includes a function execution unit 510, an inverse function execution unit 520, and a function key storage unit 590. The function execution device 50 is, for example, a special program configured by reading a special program into a known or dedicated computer having a central processing unit (CPU), a main storage device (Random Access Memory, RAM), and the like. Device. For example, the function execution device 50 executes each process under the control of the central processing unit. The data input to the function execution device 50 and the data obtained in each processing are stored in, for example, the main storage device, and the data stored in the main storage device is read out as necessary and used for other processing. Is done. The function key storage unit 590 is, for example, a main storage device such as a RAM (Random Access Memory), an auxiliary storage device configured by a semiconductor memory element such as a hard disk, an optical disk, or a flash memory, or a relational database or key. It can be configured with middleware such as a value store.

<鍵生成処理>
図8を参照して、電子透かし鍵生成装置10が実行する鍵生成処理の動作例を実際に行われる手続きの順に従って詳細に説明する。
<Key generation process>
With reference to FIG. 8, an operation example of the key generation processing executed by the digital watermark key generation apparatus 10 will be described in detail according to the order of procedures actually performed.

ステップS110において、電子透かし鍵生成装置10の備える双線形写像パラメータ生成部110は、セキュリティパラメータ1λを入力として、次式に示すようにBMSetupを実行して、双線形写像パラメータ(q,g,G,GT,e)を生成する。 In step S110, the bilinear mapping parameter generation unit 110 included in the digital watermark key generation apparatus 10 receives the security parameter 1 λ , executes BMSetup as shown in the following equation, and performs bilinear mapping parameters (q, g, G, G T , e) is generated.

Figure 0005975961
Figure 0005975961

ステップS115において、電子透かし鍵生成装置10の備えるベクトル空間パラメータ生成部115は、次式に示すように双対ペアリングベクトル空間生成アルゴリズムGdpvsを実行して、ベクトル空間パラメータparamV:=(q,V,GT,A,e,gT)を生成する。 In step S115, the vector space parameter generation unit 115 included in the digital watermark key generation device 10 executes the dual pairing vector space generation algorithm G dpvs as shown in the following equation, and the vector space parameter param V : = (q, V, G T , A, e, g T ) are generated.

Figure 0005975961
Figure 0005975961

ここで、gTは、有限体Fqの乗法群Fq ×から乱数ψを選択し、次式により計算する。 Here, g T is calculated from the following equation by selecting a random number ψ from the multiplicative group F q × of the finite field F q .

Figure 0005975961
Figure 0005975961

ステップS120において、電子透かし鍵生成装置10の備える双対直交基底生成部120は、ベクトル空間パラメータparamV:=(q,V,GT,A,e,gT)を用いて、ベクトル空間Vの基底B,B*,B^を生成する。まず、双対直交基底生成部120は、次式に示すように10次元一般線形群GL(10,Fq)から正則行列Xをランダムに生成する。ただし、i,j=1,…,10である。 In step S120, the dual orthogonal base generation unit 120 included in the digital watermark key generation apparatus 10 uses the vector space parameter param V : = (q, V, G T , A, e, g T ) to generate the vector space V. Generate bases B, B * , B ^. First, the dual orthogonal basis generator 120 randomly generates a regular matrix X from the 10-dimensional general linear group GL (10, F q ) as shown in the following equation. However, i, j = 1,.

Figure 0005975961
Figure 0005975961

次に、双対直交基底生成部120は、次式に示すように基底Bを生成する。   Next, the dual orthogonal base generation unit 120 generates a base B as shown in the following equation.

Figure 0005975961
Figure 0005975961

続いて、双対直交基底生成部120は、次式に示すように基底B*を生成する。 Subsequently, the dual orthogonal basis generator 120 generates a basis B * as shown in the following equation.

Figure 0005975961
Figure 0005975961

そして、双対直交基底生成部120は、基底B:=(b1,…,b10)を用いて基底B^:=(b1,b2,b3,b10)を生成する。 Then, the dual orthogonal basis generator 120 generates a basis B ^: = (b 1 , b 2 , b 3 , b 10 ) using the basis B: = (b 1 ,..., B 10 ).

ステップS125において、電子透かし鍵生成装置10の備える鍵ペア生成部125は、公開鍵pk:=(paramV,B^,Samp)を生成する。ここで、Sampは双対ペアリングベクトル空間のパラメータを用いて損失落とし戸関数の関数インデックスを生成する関数鍵生成アルゴリズムである。第一実施形態に係る関数鍵生成アルゴリズムSampについての詳細は後述する。 In step S125, the key pair generation unit 125 included in the digital watermark key generation device 10 generates a public key pk: = (param V , B ^, Samp). Here, Samp is a function key generation algorithm that generates a function index of a lost trapdoor function using parameters in a dual pairing vector space. Details of the function key generation algorithm Samp according to the first embodiment will be described later.

そして、鍵ペア生成部125は、基底B*:=(b* 1,…,b* 10)を用いて秘密鍵sk:=(b* 1,b* 2,b* 3,b* 6,b* 7)を生成する。 Then, the key pair generation unit 125 uses the basis B * : = (b * 1 ,..., B * 10 ), and the secret key sk: = (b * 1 , b * 2 , b * 3 , b * 6 , b * 7 ) is generated.

ステップS130において、電子透かし鍵生成装置10の備える埋込鍵生成部130は、基底B*:=(b* 1,…,b* 10)を用いて埋込鍵mk:=(b* 8,b* 9)を生成する。 In step S130, the embedded key generation unit 130 included in the digital watermark key generation apparatus 10 uses the base B * : = (b * 1 ,..., B * 10 ) to embed the embedded key mk: = (b * 8 , b * 9 ) is generated.

ステップS135において、電子透かし鍵生成装置10の備える検出鍵生成部135は、基底B:=(b1,…,b10)を用いて検出鍵dk:=(b8,b9)を生成する。 In step S135, the detection key generation unit 135 included in the digital watermark key generation device 10 generates the detection key dk: = (b 8 , b 9 ) using the base B: = (b 1 ,..., B 10 ). .

ステップS140において、電子透かし鍵生成装置10の備える除去鍵生成部140は、正則行列Xを用いて除去鍵rk:=X=(χi,j)(i,j=1,…,10)を生成する。 In step S140, the removal key generation unit 140 included in the digital watermark key generation device 10 uses the regular matrix X to obtain the removal key rk: = X = (χ i, j ) (i, j = 1,..., 10). Generate.

ステップS145において、電子透かし鍵生成装置10の備える透かし鍵配信部145は、生成した公開鍵pk:=(paramV,B^,Samp)、埋込鍵mk:=(b* 8,b* 9)、検出鍵dk:=(b8,b9)及び除去鍵rk:=Xを各装置に配信する。図11に電子透かし鍵生成装置10が生成した電子透かし鍵を配信する動作例を示す。公開鍵pkは電子透かし埋込装置20、電子透かし検出装置30及び電子透かし除去装置40に配信される。埋込鍵mkは電子透かし埋込装置20に配信される。検出鍵dkは電子透かし検出装置30に配信される。除去鍵rkは電子透かし除去装置40に配信される。 In step S145, the watermark key distribution unit 145 included in the digital watermark key generation device 10 generates the generated public key pk: = (param V , B ^, Samp), embedded key mk: = (b * 8 , b * 9 ), The detection key dk: = (b 8 , b 9 ) and the removal key rk: = X are distributed to each device. FIG. 11 shows an operation example in which the digital watermark key generated by the digital watermark key generation apparatus 10 is distributed. The public key pk is distributed to the digital watermark embedding device 20, the digital watermark detection device 30, and the digital watermark removal device 40. The embedded key mk is distributed to the digital watermark embedding device 20. The detection key dk is distributed to the digital watermark detection device 30. The removal key rk is distributed to the digital watermark removal apparatus 40.

電子透かし埋込装置20は、配信された公開鍵pk及び埋込鍵mkを埋込鍵記憶部290へ記憶する。電子透かし検出装置30は、配信された公開鍵pk及び検出鍵dkを検出鍵記憶部390へ記憶する。電子透かし除去装置40は、配信された公開鍵pk及び除去鍵rkを除去鍵記憶部490へ記憶する。   The digital watermark embedding device 20 stores the distributed public key pk and embedded key mk in the embedded key storage unit 290. The digital watermark detection apparatus 30 stores the distributed public key pk and detection key dk in the detection key storage unit 390. The digital watermark removal apparatus 40 stores the distributed public key pk and removal key rk in the removal key storage unit 490.

ステップS150において、電子透かし鍵生成装置10の備える単射鍵生成部150は、ベクトル空間パラメータparamV、基底B^及び秘密鍵skを入力として関数鍵生成アルゴリズムSampを実行し、関数鍵ek及び逆関数鍵ikを生成する。このとき、出力された関数鍵ekを単射鍵ekIとする。 In step S150, the injection key generation unit 150 included in the digital watermark key generation device 10 executes the function key generation algorithm Samp with the vector space parameter param V , the base B ^, and the secret key sk as inputs, and performs the function key ek and inverse Generate function key ik. At this time, the output function key ek is assumed to be an injection key ek I.

第一実施形態に係る関数鍵生成アルゴリズムSampは、以下のように関数鍵ek及び逆関数鍵ikを生成する。まず、任意のビット列ID∈{0,1}*を選択し、有限体Fq上のγ次元ベクトルψを次式に示すようにランダムに生成する。 The function key generation algorithm Samp according to the first embodiment generates a function key ek and an inverse function key ik as follows. First, an arbitrary bit string IDε {0,1} * is selected, and a γ-dimensional vector ψ on the finite field F q is randomly generated as shown in the following equation.

Figure 0005975961
Figure 0005975961

次に、j=1,…,γについて、次式に示すようにgT_jを計算する。 Next, g T_j is calculated for j = 1,..., Γ as shown in the following equation.

Figure 0005975961
Figure 0005975961

続いて、i=1,…,γについて、有限体Fq上の乱数ζiiiを次式に示すように生成する。 Subsequently, for i = 1,..., Γ, random numbers ζ i , φ i , ω i on the finite field F q are generated as shown in the following equation.

Figure 0005975961
Figure 0005975961

次に、i,j=1,…,γについて、行列ui,j及び行列υiを次式に示すように計算する。 Next, for i, j = 1,..., Γ, the matrix u i, j and the matrix υ i are calculated as shown in the following equation.

Figure 0005975961
Figure 0005975961

ただし、行列ui,jを生成する際に用いる行列mi,j(i,j=1,…,γ)は単位行列である。すなわち、mi,j=1(i=j)かつmi,j=0(i≠j)とする。 However, the matrix m i, j (i, j = 1,..., Γ) used when generating the matrix u i, j is a unit matrix. That is, mi, j = 1 (i = j) and mi, j = 0 (i ≠ j).

次に、有限体Fq上の乱数σ及び有限体Fq上の2次元ベクトルηを次式に示すようにランダムに生成する。 Then, the two-dimensional vector eta on the finite field F random on the q sigma and finite field F q randomly generated as shown in the following equation.

Figure 0005975961
Figure 0005975961

次に、ビット列ID、乱数σ、ベクトルη及び基底B*を用いて次式に示すように値kIDを生成する。 Next, using the bit string ID, random number σ, vector η →, and basis B * , a value k ID is generated as shown in the following equation.

Figure 0005975961
Figure 0005975961

そして、関数鍵生成アルゴリズムSampは、関数鍵ekを次式に示すように設定する。   Then, the function key generation algorithm Samp sets the function key ek as shown in the following equation.

Figure 0005975961
Figure 0005975961

ここで、{ui,j}i,jは(u1,1,…,uγ,γ)を表し、{υi}iは(υ1,…,υγ)を表す。これを行列で表現すると、次式に示すように表すことができる。 Here, {u i, j } i, j represents (u 1,1 ,..., U γ, γ ), and {υ i } i represents (υ 1 ,..., Ν γ ). This can be expressed as a matrix as shown in the following equation.

Figure 0005975961
Figure 0005975961

また、関数鍵生成アルゴリズムSampは、逆関数鍵ikをik:=ψと設定する。   Further, the function key generation algorithm Samp sets the inverse function key ik as ik: = ψ.

ステップS155において、電子透かし鍵生成装置10の備える損失鍵生成部155は、単射鍵生成部150と同様に、関数鍵生成アルゴリズムSampを実行することで、損失鍵ekL及び逆関数ikを生成する。ただし、関数鍵生成アルゴリズムSampにおいて、行列ui,jを生成する際に用いる行列mi,j(i,j=1,…,γ)はゼロ行列に設定する。すなわち、すべてのi,jについてmi,j=0である。また、逆関数ikはik:=⊥が設定される。損失関数は逆関数を計算できないためである。 In step S155, the loss key generation unit 155 included in the digital watermark key generation device 10 generates the loss key ek L and the inverse function ik by executing the function key generation algorithm Samp in the same manner as the injection key generation unit 150. To do. However, in the function key generation algorithm Samp, the matrix m i, j (i, j = 1,..., Γ) used when generating the matrix u i, j is set to a zero matrix. That is, m i, j = 0 for all i, j. In addition, ik: = ⊥ is set for the inverse function ik. This is because the loss function cannot calculate the inverse function.

ステップS160において、電子透かし鍵生成装置10の備える関数鍵配信部160は、生成した単射鍵ekI若しくは損失鍵ekL及び逆関数鍵ikを各装置に配信する。図11に電子透かし鍵生成装置10が生成した関数鍵を配信する動作例を示す。単射鍵ekI若しくは損失鍵ekLは電子透かし埋込装置20に配信される。逆関数鍵ikは関数実行装置50に配信される。電子透かしを埋め込まずに損失落とし戸関数LTFを利用したい場合には、単射鍵ekI若しくは損失鍵ekLを関数実行装置50に配信してもよい。 In step S160, the function key distribution unit 160 included in the digital watermark key generation apparatus 10 distributes the generated injection key ek I or the loss key ek L and the inverse function key ik to each apparatus. FIG. 11 shows an operation example in which the function key generated by the digital watermark key generation apparatus 10 is distributed. The injection key ek I or the loss key ek L is distributed to the digital watermark embedding apparatus 20. The inverse function key ik is distributed to the function execution device 50. When it is desired to use the lost trapdoor function LTF without embedding the digital watermark, the single shot key ek I or the lost key ek L may be distributed to the function execution device 50.

電子透かし埋込装置20は、配信された単射鍵ekI若しくは損失鍵ekLを埋込鍵記憶部290へ記憶する。関数実行装置50は、配信された逆関数鍵ikを関数鍵記憶部590へ記憶する。また、関数実行装置50は、単射鍵ekI若しくは損失鍵ekLが配信された場合には、その単射鍵ekI若しくは損失鍵ekLを関数鍵記憶部590へ記憶する。 The digital watermark embedding device 20 stores the distributed injection key ek I or the loss key ek L in the embedded key storage unit 290. The function execution device 50 stores the distributed inverse function key ik in the function key storage unit 590. In addition, when the one-shot key ek I or the loss key ek L is distributed, the function execution device 50 stores the one-shot key ek I or the loss key ek L in the function key storage unit 590.

<電子透かし埋込処理>
図9(A)を参照して、電子透かし埋込装置20が実行する電子透かし埋込処理の動作例を実際に行われる手続きの順に従って詳細に説明する。
<Digital watermark embedding process>
With reference to FIG. 9A, an operation example of the digital watermark embedding process executed by the digital watermark embedding apparatus 20 will be described in detail according to the order of procedures actually performed.

上述の通り、電子透かし埋込装置20の備える埋込鍵記憶部290には、電子透かし鍵生成装置10が生成した公開鍵pk及び埋込鍵mkが記憶されている。   As described above, the embedded key storage unit 290 included in the digital watermark embedding device 20 stores the public key pk and the embedded key mk generated by the digital watermark key generation device 10.

ステップS211において、電子透かし埋込装置20の備える電子透かし埋込部210は、埋込対象関数鍵ekを入力として、埋込鍵記憶部290に記憶されている公開鍵pk及び埋込鍵mkを用いて、透かし付関数鍵WM(ek)を出力する。埋込対象関数鍵ekは、電子透かし鍵生成装置10により生成された単射鍵ekI若しくは損失鍵ekLであり、次式に示すように表すことができる。 In step S211, the digital watermark embedding unit 210 included in the digital watermark embedding device 20 receives the embedding target function key ek and inputs the public key pk and the embedded key mk stored in the embedded key storage unit 290. To output the watermarked function key WM (ek). The embedding target function key ek is a one-shot key ek I or a loss key ek L generated by the digital watermark key generation apparatus 10 and can be expressed as shown in the following equation.

Figure 0005975961
Figure 0005975961

まず、電子透かし埋込部210は、有限体Fq上の乱数μ12を選択する。 First, the digital watermark embedding unit 210 selects random numbers μ 1 and μ 2 on the finite field F q .

Figure 0005975961
Figure 0005975961

次に、電子透かし埋込部210は、埋込対象関数鍵ekに含まれる値kID、乱数μ12及び基底B*を用いて、次式に示すように値k~IDを計算する。 Next, the digital watermark embedding unit 210 calculates values k to ID using the value k ID , random numbers μ 1 and μ 2 and base B * included in the embedding target function key ek as shown in the following equation: To do.

Figure 0005975961
Figure 0005975961

ステップS212において、電子透かし埋込部210は、透かし付関数鍵WM(ek)を次式に示すように出力する。   In step S212, the digital watermark embedding unit 210 outputs the watermarked function key WM (ek) as shown in the following equation.

Figure 0005975961
Figure 0005975961

<電子透かし検出処理>
図9(B)を参照して、電子透かし検出装置30が実行する電子透かし検出処理の動作例を実際に行われる手続きの順に従って詳細に説明する。
<Digital watermark detection processing>
With reference to FIG. 9B, an operation example of digital watermark detection processing executed by the digital watermark detection apparatus 30 will be described in detail according to the order of procedures actually performed.

上述の通り、電子透かし検出装置30の備える検出鍵記憶部390には、電子透かし鍵生成装置10が生成した公開鍵pk及び検出鍵dkが記憶されている。   As described above, the detection key storage unit 390 included in the digital watermark detection device 30 stores the public key pk and the detection key dk generated by the digital watermark key generation device 10.

ステップS311において、電子透かし検出装置30の備える電子透かし検出部310は、検出対象関数鍵ek’を入力として、検出鍵記憶部390に記憶されている公開鍵pk及び検出鍵dkを用いて、検出対象関数鍵ek’に電子透かしが埋め込まれているか否かを示す情報を出力する。検出対象関数鍵ek’は、電子透かし鍵生成装置10により生成された電子透かしが埋め込まれていない単射鍵ekI若しくは損失鍵ekL又は電子透かし埋込装置20により電子透かしが埋め込まれた透かし付関数鍵WM(ek)であり、次式に示すように表すことができる。 In step S311, the digital watermark detection unit 310 included in the digital watermark detection apparatus 30 receives the detection target function key ek ′ as an input, and uses the public key pk and the detection key dk stored in the detection key storage unit 390. Information indicating whether or not a digital watermark is embedded in the target function key ek ′ is output. The detection target function key ek ′ is a single key ek I or a loss key ek L in which the digital watermark generated by the digital watermark key generation device 10 is not embedded, or a watermark in which the digital watermark is embedded by the digital watermark embedding device 20. The attached function key WM (ek) can be expressed as shown in the following equation.

Figure 0005975961
Figure 0005975961

まず、電子透かし検出部310は、有限体Fqの乗法群Fq ×上の乱数δ12を選択する。 First, the digital watermark detection unit 310 selects random numbers δ 1 and δ 2 on the multiplicative group F q × of the finite field F q .

Figure 0005975961
Figure 0005975961

次に、電子透かし検出部310は、検出鍵dk:=(b8,b9)及び乱数δ12を用いて、次式に示すように値cを計算する。 Next, the digital watermark detection unit 310 uses the detection key dk: = (b 8 , b 9 ) and the random numbers δ 1 and δ 2 to calculate a value c as shown in the following equation.

Figure 0005975961
Figure 0005975961

そして、電子透かし検出部310は、検出対象関数鍵ek’に含まれる値k~ID及び値cを用いて、次式に示すように値Δを計算する。 Then, the digital watermark detection unit 310 uses the values k to ID and the value c included in the detection target function key ek ′ to calculate the value Δ as shown in the following equation.

Figure 0005975961
Figure 0005975961

ステップS312において、電子透かし検出装置30の備える電子透かし検出部310は、値Δを検証し、検証結果を出力する。具体的には、Δ≠1であれば、電子透かしが埋め込まれていることを示す情報として、例えば「true」を出力する。Δ=1であれば、電子透かしが埋め込まれていないことを示す情報として、例えば「false」を出力する。   In step S312, the digital watermark detection unit 310 included in the digital watermark detection apparatus 30 verifies the value Δ and outputs a verification result. Specifically, if Δ ≠ 1, for example, “true” is output as information indicating that a digital watermark is embedded. If Δ = 1, for example, “false” is output as information indicating that the digital watermark is not embedded.

<電子透かし除去処理>
図9(C)を参照して、電子透かし除去装置40が実行する電子透かし除去処理の動作例を実際に行われる手続きの順に従って詳細に説明する。
<Digital watermark removal processing>
With reference to FIG. 9C, an operation example of the digital watermark removal process executed by the digital watermark removal apparatus 40 will be described in detail according to the order of procedures actually performed.

上述の通り、電子透かし除去装置40の備える除去鍵記憶部490には、電子透かし鍵生成装置10が生成した公開鍵pk及び除去鍵rkが記憶されている。   As described above, the removal key storage unit 490 included in the digital watermark removal apparatus 40 stores the public key pk and the removal key rk generated by the digital watermark key generation apparatus 10.

ステップS411において、電子透かし除去装置40の備える電子透かし除去部410は、除去対象関数鍵ek”を入力として、除去鍵記憶部490に記憶されている公開鍵pk及び除去鍵rkを用いて、除去済関数鍵ek^を出力する。除去対象関数鍵ek”は、電子透かし埋込装置20により電子透かしが埋め込まれた透かし付関数鍵WM(ek)であり、次式に示すように表すことができる。   In step S411, the digital watermark removal unit 410 included in the digital watermark removal apparatus 40 uses the public key pk and the removal key rk stored in the removal key storage unit 490, with the removal target function key ek ”as an input. The function key ek "to be removed is a watermarked function key WM (ek) in which a digital watermark is embedded by the digital watermark embedding apparatus 20, and is expressed as shown in the following equation. it can.

Figure 0005975961
Figure 0005975961

まず、電子透かし除去部410は、除去鍵rk:=X=(χi,j)及び基底Bを用いて、ベクトル分解アルゴリズムDecomp(υ,(b1,…,bβ),X,B)を実行し、i=1,…,10について、次式を満たすzib* i(zi∈Fq)を出力する。 First, the digital watermark removal unit 410 uses the removal key rk: = X = (χ i, j ) and the base B to generate a vector decomposition algorithm Decomp (υ, (b 1 ,..., B β ), X, B). , And for i = 1,..., 10, z i b * i (z i εF q ) satisfying the following expression is output.

Figure 0005975961
Figure 0005975961

ベクトル分解アルゴリズムDecompは、(υ,(b1,…,bβ),X,B)を入力にとり、次式により定義される値を出力する。 The vector decomposition algorithm Decomp takes (υ, (b 1 ,..., B β ), X, B) as inputs and outputs a value defined by the following equation.

Figure 0005975961
Figure 0005975961

ただし、次式が成り立つ。   However, the following equation holds.

Figure 0005975961
Figure 0005975961

ここで、γ2はγ1より小さい任意の整数なので最小のγ2から順にベクトルを分解すれば、すべてのiに対してxibiを計算できる。 Here, since γ 2 is an arbitrary integer smaller than γ 1 , x i b i can be calculated for all i by decomposing the vector in order from the smallest γ 2 .

ベクトル分解アルゴリズムDecompは、「Tatsuaki Okamoto and Katsuyuki Takashima, “Homomorphic encryption and signatures from vector decomposition.”, In Pairing, volume 5209 of Lecture Notes in Computer Science, pages 57-74. Springer, 2008.(参考文献7)」に記載のアルゴリズムをそのまま利用することが可能である。参考文献7に記載のアルゴリズムを以下に示す。   The vector decomposition algorithm Decomp is described in “Tatsuaki Okamoto and Katsuyuki Takashima,“ Homomorphic encryption and signatures from vector decomposition. ”, In Pairing, volume 5209 of Lecture Notes in Computer Science, pages 57-74. Springer, 2008. (reference 7). Can be used as they are. The algorithm described in Reference 7 is shown below.

Figure 0005975961
Figure 0005975961

ここで、prjiは、以下の通りである。A:=(a1,…,aN)をベクトル空間Vの標準基底とし、ベクトルaiはFの固有値νiをもつ。Fの多項式prjj:=(Πi≠jji))-1Πi≠j(F-νi)は標準基底Aに関するj番目の射影演算である。つまり、к≠jに対してはprjj(aк)=0であり、к=jに対してはprjj(aj)=ajである。 Here, prj i is as follows. A: = (a 1 ,..., A N ) is a standard basis of the vector space V, and the vector a i has an eigenvalue ν i of F. The polynomial of F prj j : = (Πi ≠ jji )) -1 Π i ≠ j (F-ν i ) is the j-th projective operation on the standard basis A. That is, prj j (a к ) = 0 for κ ≠ j, and prj j (a j ) = a j for к = j.

そして、電子透かし除去部410は、次式に示すようにkIDを計算する。 Then, the digital watermark removal unit 410 calculates k ID as shown in the following equation.

Figure 0005975961
Figure 0005975961

ステップS412において、電子透かし除去装置40の備える電子透かし除去部410は、次式に示すように除去済関数鍵ek^を出力する。   In step S412, the digital watermark removal unit 410 included in the digital watermark removal apparatus 40 outputs the removed function key ek ^ as shown in the following equation.

Figure 0005975961
Figure 0005975961

<関数実行処理>
図10を参照して、関数実行装置50が実行する関数実行処理の動作例を実際に行われる手続きの順に従って詳細に説明する。
<Function execution processing>
With reference to FIG. 10, an operation example of the function execution process executed by the function execution device 50 will be described in detail according to the order of procedures actually performed.

上述の通り、関数実行装置50の備える関数鍵記憶部590には、電子透かし鍵生成装置10が生成した透かし付関数鍵WM(ek)及び逆関数鍵ikが記憶されている。   As described above, the function key storage unit 590 included in the function execution device 50 stores the watermarked function key WM (ek) and the inverse function key ik generated by the digital watermark key generation device 10.

ステップS510において、関数実行装置50の備える関数実行部510は、計算対象の情報x∈{0,1}γを入力として、関数鍵記憶部590に記憶されている透かし付関数鍵WM(ek)を用いて損失落とし戸関数LTFの計算アルゴリズムEvalを実行することで、計算結果である情報y:=(y1,…,yγ,y'γ+1)を出力する。 In step S510, the function execution unit 510 included in the function execution device 50 receives the calculation target information xε {0,1} γ and receives the watermarked function key WM (ek) stored in the function key storage unit 590. Is used to execute the calculation algorithm Eval of the loss trapdoor function LTF to output information y: = (y 1 ,..., Y γ , y ′ γ + 1 ) as a calculation result.

まず、計算アルゴリズムEvalは、x:=(x1,…,xγ)=xとして、j=1,…,γについて、次式に示すようにy1,…,yγ+1を計算する。 First, the calculation algorithm Eval calculates y 1 , ..., y γ + 1 as shown in the following equation for j = 1, ..., γ, where x: = (x 1 , ..., x γ ) = x To do.

Figure 0005975961
Figure 0005975961

ただし、ζ:=(ζ1,…,ζγ)、ω:=(ω1,…,ωγ)及びφ:=(φ1,…,φγ)である。次に、計算アルゴリズムEvalは、次式に示すように値y'γ+1を計算する。 However, ζ : = (ζ 1 ,..., Ζ γ ), ω : = (ω 1 ,..., Ω γ ) and φ : = (φ 1 ,..., Φ γ ). Next, the calculation algorithm Eval calculates the value y ′ γ + 1 as shown in the following equation.

Figure 0005975961
Figure 0005975961

そして、関数実行部510は、情報y:=(y1,…,yγ,y'γ+1)を出力する。 Then, the function execution unit 510 outputs information y: = (y 1 ,..., Y γ , y ′ γ + 1 ).

<逆関数実行処理>
図10を参照して、関数実行装置50が実行する逆関数実行処理の動作例を実際に行われる手続きの順に従って詳細に説明する。
<Inverse function execution processing>
With reference to FIG. 10, an operation example of the inverse function execution process executed by the function execution device 50 will be described in detail in the order of procedures actually performed.

上述の通り、関数実行装置50の備える関数鍵記憶部590には、電子透かし鍵生成装置10が生成した透かし付関数鍵WM(ek)及び逆関数鍵ikが記憶されている。   As described above, the function key storage unit 590 included in the function execution device 50 stores the watermarked function key WM (ek) and the inverse function key ik generated by the digital watermark key generation device 10.

ステップS520において、関数実行装置50の備える逆関数実行部520は、逆計算対象の情報y:=(y1,…,yγ,y'γ+1)を入力として、関数鍵記憶部590に記憶されている逆関数鍵ikを用いて損失落とし戸関数LTFの逆計算アルゴリズムInvertを実行することで、逆計算結果である情報x:=(x1,…,xγ)を出力する。 In step S520, the inverse function execution unit 520 included in the function execution device 50 receives the information y: = (y 1 ,..., Y γ , y ′ γ + 1 ) as the inverse calculation target and inputs it to the function key storage unit 590. Information x: = (x 1 ,..., X γ ), which is an inverse calculation result, is output by executing the inverse calculation algorithm Invert of the loss trapdoor function LTF using the stored inverse function key ik.

逆計算アルゴリズムInvertは、i,j:=1,…,γについて、次式に示すようにx'jを計算する。 The inverse calculation algorithm Invert calculates x ′ j as shown in the following equation for i, j: = 1,.

Figure 0005975961
Figure 0005975961

次に、j=1,…,γについて、x'j=gT x_jを満たす値となるように、xj∈{0,1}を設定する。 Next, for j = 1,..., Γ, x j ε {0, 1} is set so as to satisfy x ′ j = g T x_j .

そして、逆関数実行部520は、情報x:=(x1,…,xγ)を出力する。 Then, the inverse function execution unit 520 outputs information x: = (x 1 ,..., X γ ).

[第二実施形態]
以降の説明では、第一実施形態と相違する点を中心に説明し、第一実施形態と同様の部分については説明を省略する。
[Second Embodiment]
In the following description, points different from the first embodiment will be mainly described, and description of the same parts as those in the first embodiment will be omitted.

第二実施形態の電子透かしシステムの機能構成及び処理フローは第一実施形態と同様である。したがって、以降では第一実施形態に係る図4から図10を参照しながら説明をする。   The functional configuration and processing flow of the digital watermark system of the second embodiment are the same as those of the first embodiment. Accordingly, the following description will be made with reference to FIGS. 4 to 10 according to the first embodiment.

<鍵生成処理>
図8に示すステップS120において、電子透かし鍵生成装置10の備える双対直交基底生成部120は、ベクトル空間パラメータparamV:=(q,V,GT,A,e,gT)を用いて、ベクトル空間Vの基底D,D*,D^を生成する。まず、双対直交基底生成部120は、次式に示すように8次元一般線形群GL(8,Fq)から正則行列Xをランダムに生成する。ただし、i,j=1,…,8である。
<Key generation process>
In step S120 illustrated in FIG. 8, the dual orthogonal basis generation unit 120 included in the digital watermark key generation device 10 uses the vector space parameter param V : = (q, V, G T , A, e, g T ), Generate bases D, D * , D ^ of vector space V. First, the dual orthogonal basis generator 120 randomly generates a regular matrix X from the 8-dimensional general linear group GL (8, F q ) as shown in the following equation. However, i, j = 1,.

Figure 0005975961
Figure 0005975961

次に、双対直交基底生成部120は、次式に示すように基底Dを生成する。   Next, the dual orthogonal basis generator 120 generates a basis D as shown in the following equation.

Figure 0005975961
Figure 0005975961

続いて、双対直交基底生成部120は、次式に示すように基底D*を生成する。 Subsequently, the dual orthogonal basis generator 120 generates a basis D * as shown in the following equation.

Figure 0005975961
Figure 0005975961

そして、双対直交基底生成部120は、基底D:=(d1,…,d8)を用いて基底D^:=(d1,d2,d3,d4)を生成する。 Then, the dual orthogonal basis generator 120 generates a basis D ^: = (d 1 , d 2 , d 3 , d 4 ) using the basis D: = (d 1 ,..., D 8 ).

ステップS125において、電子透かし鍵生成装置10の備える鍵ペア生成部125は、公開鍵pk:=(paramV,D^,Samp)を生成する。ここで、Sampは双対ペアリングベクトル空間のパラメータを用いて損失落とし戸関数の関数インデックスを生成する関数鍵生成アルゴリズムである。第二実施形態に係る関数鍵生成アルゴリズムSampについての詳細は後述する。 In step S125, the key pair generation unit 125 included in the digital watermark key generation apparatus 10 generates a public key pk: = (param V , D ^, Samp). Here, Samp is a function key generation algorithm that generates a function index of a lost trapdoor function using parameters in a dual pairing vector space. Details of the function key generation algorithm Samp according to the second embodiment will be described later.

そして、鍵ペア生成部125は、有限体Fqから乱数α,θ,σを選択し、g^T:=e(d1,d* 1)αθとして、秘密鍵sk:=(αθd* 1,θd* 1,θd* 2,σd* 3,σd* 4)を生成する。 And the key pair generation unit 125, the random number α from finite field F q, theta, select σ, g ^ T: = e as (d 1, d * 1) αθ, secret key sk: = (αθd * 1 , θd * 1 , θd * 2 , σd * 3 , σd * 4 ).

ステップS130において、電子透かし鍵生成装置10の備える埋込鍵生成部130は、基底D*:=(d* 1,…,d* 8)を用いて埋込鍵mk:=(d* 7,d* 8)を生成する。 In step S130, the embedded key generation unit 130 included in the digital watermark key generating apparatus 10 uses the base D * : = (d * 1 ,..., D * 8 ) to embed the embedded key mk: = (d * 7 , d * 8 ) is generated.

ステップS135において、電子透かし鍵生成装置10の備える検出鍵生成部135は、基底D:=(d1,…,d8)を用いて検出鍵dk:=(d7,d8)を生成する。 In step S135, the detection key generation unit 135 included in the digital watermark key generation device 10 generates the detection key dk: = (d 7 , d 8 ) using the basis D: = (d 1 ,..., D 8 ). .

ステップS140において、電子透かし鍵生成装置10の備える除去鍵生成部140は、正則行列Xを用いて除去鍵rk:=X=(χi,j)(i,j=1,…,8)を生成する。 In step S140, the removal key generation unit 140 included in the digital watermark key generation device 10 uses the regular matrix X to obtain the removal key rk: = X = (χ i, j ) (i, j = 1,..., 8). Generate.

ステップS150において、電子透かし鍵生成装置10の備える単射鍵生成部150は、ベクトル空間パラメータparamV、基底D^及び秘密鍵skを入力として関数鍵生成アルゴリズムSampを実行し、関数鍵ek及び逆関数鍵ikを生成する。このとき、出力された関数鍵ekを単射鍵ekIとする。 In step S150, the injection key generation unit 150 included in the digital watermark key generation apparatus 10 executes the function key generation algorithm Samp with the vector space parameter param V , the basis D ^, and the secret key sk as inputs, and the function key ek and the inverse Generate function key ik. At this time, the output function key ek is assumed to be an injection key ek I.

第二実施形態に係る関数鍵生成アルゴリズムSampは、以下のように関数鍵ek及び逆関数鍵ikを生成する。まず、任意のビット列ID∈{0,1}*を選択し、有限体Fq上のγ次元ベクトルψを次式に示すように生成する。 The function key generation algorithm Samp according to the second embodiment generates the function key ek and the inverse function key ik as follows. First, an arbitrary bit string IDε {0,1} * is selected, and a γ-dimensional vector ψ on the finite field F q is generated as shown in the following equation.

Figure 0005975961
Figure 0005975961

次に、基底D,D*、乱数α,θを用いて、次式に示すようにg^Tを計算する。 Next, g ^ T is calculated using the basis D, D * and the random numbers α, θ as shown in the following equation.

Figure 0005975961
Figure 0005975961

次に、j=1,…,γについて、次式に示すようにgT_jを計算する。 Next, g T_j is calculated for j = 1,..., Γ as shown in the following equation.

Figure 0005975961
Figure 0005975961

続いて、i=1,…,γについて、有限体Fq上の値si,1,si,2を次式に示すように生成する。 Subsequently, for i = 1,..., Γ, values s i, 1 , s i, 2 on the finite field F q are generated as shown in the following equation.

Figure 0005975961
Figure 0005975961

次に、i,j=1,…,γについて、行列ui,j及び行列υiを次式に示すように計算する。 Next, for i, j = 1,..., Γ, the matrix u i, j and the matrix υ i are calculated as shown in the following equation.

Figure 0005975961
Figure 0005975961

ただし、行列ui,jを生成する際に用いる行列mi,j(i,j=1,…,γ)は単位行列である。すなわち、mi,j=1(i=j)かつmi,j=0(i≠j)とする。 However, the matrix m i, j (i, j = 1,..., Γ) used when generating the matrix u i, j is a unit matrix. That is, mi, j = 1 (i = j) and mi, j = 0 (i ≠ j).

次に、有限体Fq上の乱数r1,r2を選択する。 Next, random numbers r 1 and r 2 on the finite field F q are selected.

Figure 0005975961
Figure 0005975961

次に、ビット列ID、乱数α,θ,σ,r1,r2及び基底D*を用いて、次式に示すように値kIDを生成する。 Next, using the bit string ID, random numbers α, θ, σ, r 1 , r 2 and the basis D * , a value k ID is generated as shown in the following equation.

Figure 0005975961
Figure 0005975961

そして、関数鍵生成アルゴリズムSampは、関数鍵ekを次式に示すように設定する。   Then, the function key generation algorithm Samp sets the function key ek as shown in the following equation.

Figure 0005975961
Figure 0005975961

また、関数鍵生成アルゴリズムSampは、逆関数鍵ikをik:=ψと設定する。   Further, the function key generation algorithm Samp sets the inverse function key ik as ik: = ψ.

<電子透かし埋込処理>
図9(A)に示すステップS211において、電子透かし埋込装置20の備える電子透かし埋込部210は、埋込対象関数鍵ekを入力として、埋込鍵記憶部290に記憶されている公開鍵pk及び埋込鍵mkを用いて、透かし付関数鍵WM(ek)を出力する。埋込対象関数鍵ekは、電子透かし鍵生成装置10により生成された単射鍵ekI若しくは損失鍵ekLであり、次式に示すように表すことができる。
<Digital watermark embedding process>
In step S211 shown in FIG. 9A, the digital watermark embedding unit 210 included in the digital watermark embedding device 20 receives the embedding target function key ek as an input, and the public key stored in the embedded key storage unit 290. The watermarked function key WM (ek) is output using pk and the embedded key mk. The embedding target function key ek is a one-shot key ek I or a loss key ek L generated by the digital watermark key generation apparatus 10 and can be expressed as shown in the following equation.

Figure 0005975961
Figure 0005975961

まず、電子透かし埋込部210は、有限体Fq上の乱数t1,t2を選択する。 First, the digital watermark embedding unit 210 selects random numbers t 1 and t 2 on the finite field F q .

Figure 0005975961
Figure 0005975961

次に、電子透かし埋込部210は、埋込対象関数鍵ekに含まれる値kID、乱数t1,t2及び基底D*を用いて、次式に示すように値k~IDを計算する。 Next, the digital watermark embedding unit 210 uses the value k ID , the random numbers t 1 and t 2 and the basis D * included in the embedding target function key ek to calculate values k to ID as shown in the following equation: To do.

Figure 0005975961
Figure 0005975961

ステップS212において、電子透かし埋込部210は、透かし付関数鍵WM(ek)を次式に示すように出力する。   In step S212, the digital watermark embedding unit 210 outputs the watermarked function key WM (ek) as shown in the following equation.

Figure 0005975961
Figure 0005975961

<電子透かし検出処理>
図9(B)に示すステップS311において、電子透かし検出装置30の備える電子透かし検出部310は、検出対象関数鍵ek’を入力として、検出鍵記憶部390に記憶されている公開鍵pk及び検出鍵dkを用いて、検出対象関数鍵ek’に電子透かしが埋め込まれているか否かを示す情報を出力する。検出対象関数鍵ek’は、電子透かし鍵生成装置10により生成された電子透かしが埋め込まれていない単射鍵ekI若しくは損失鍵ekL又は電子透かし埋込装置20により電子透かしが埋め込まれた透かし付関数鍵WM(ek)であり、次式に示すように表すことができる。
<Digital watermark detection processing>
In step S311 illustrated in FIG. 9B, the digital watermark detection unit 310 included in the digital watermark detection apparatus 30 receives the detection target function key ek ′ and inputs the public key pk and the detection stored in the detection key storage unit 390. Using the key dk, information indicating whether or not a digital watermark is embedded in the detection target function key ek ′ is output. The detection target function key ek ′ is a single key ek I or a loss key ek L in which the digital watermark generated by the digital watermark key generation device 10 is not embedded, or a watermark in which the digital watermark is embedded by the digital watermark embedding device 20. The attached function key WM (ek) can be expressed as shown in the following equation.

Figure 0005975961
Figure 0005975961

まず、電子透かし検出部310は、有限体Fqの乗法群Fq ×上の乱数z1,z2を選択する。 First, the digital watermark detection unit 310 selects random numbers z 1 and z 2 on the multiplicative group F q × of the finite field F q .

Figure 0005975961
Figure 0005975961

次に、電子透かし検出部310は、検出鍵dk:=(d7,d8)及び乱数z1,z2を用いて、次式に示すように値cを計算する。 Next, the digital watermark detection unit 310 uses the detection key dk: = (d 7 , d 8 ) and the random numbers z 1 and z 2 to calculate a value c as shown in the following equation.

Figure 0005975961
Figure 0005975961

そして、電子透かし検出部310は、検出対象関数鍵ek’に含まれるk~ID及び値cを用いて、次式に示すように値Δを計算する。 Then, the digital watermark detection unit 310, using the k ~ ID and the value c included in the detection target function key ek ', it calculates a as shown in the following equation value delta.

Figure 0005975961
Figure 0005975961

ステップS312において、電子透かし検出装置30の備える電子透かし検出部310は、値Δを検証し、検証結果を出力する。具体的には、Δ≠1であれば、電子透かしが埋め込まれていることを示す情報として、例えば「true」を出力する。Δ=1であれば、電子透かしが埋め込まれていないことを示す情報として、例えば「false」を出力する。   In step S312, the digital watermark detection unit 310 included in the digital watermark detection apparatus 30 verifies the value Δ and outputs a verification result. Specifically, if Δ ≠ 1, for example, “true” is output as information indicating that a digital watermark is embedded. If Δ = 1, for example, “false” is output as information indicating that the digital watermark is not embedded.

<電子透かし除去処理>
図9(C)に示すステップS411において、電子透かし除去装置40の備える電子透かし除去部410は、除去対象関数鍵ek”を入力として、除去鍵記憶部490に記憶されている公開鍵pk及び除去鍵rkを用いて、除去済関数鍵ek^を出力する。除去対象関数鍵ek”は、電子透かし埋込装置20により電子透かしが埋め込まれた透かし付関数鍵WM(ek)であり、次式に示すように表すことができる。
<Digital watermark removal processing>
In step S411 shown in FIG. 9C, the digital watermark removal unit 410 included in the digital watermark removal apparatus 40 receives the removal target function key ek ”and inputs the public key pk and the removal stored in the removal key storage unit 490. The removed function key ek ^ is output using the key rk. The removal target function key ek "is a watermarked function key WM (ek) in which a digital watermark is embedded by the digital watermark embedding device 20, and is given by As shown in FIG.

Figure 0005975961
Figure 0005975961

まず、電子透かし除去部410は、除去鍵rk:=X=(χi,j)及び基底Dを用いて、上述のベクトル分解アルゴリズムDecomp(υ,(d1,…,dβ),X,D)を実行し、i=1,…,8について、次式を満たすzid* i(zi∈Fq)を出力する。 First, the digital watermark removal unit 410 uses the removal key rk: = X = (χ i, j ) and the basis D to perform the above-described vector decomposition algorithm Decomp (υ, (d 1 ,..., D β ), X, D) is executed, and z i d * i (z i εF q ) satisfying the following expression is output for i = 1,.

Figure 0005975961
Figure 0005975961

そして、電子透かし除去部410は、次式に示すようにkIDを計算する。 Then, the digital watermark removal unit 410 calculates k ID as shown in the following equation.

Figure 0005975961
Figure 0005975961

ステップS412において、電子透かし除去装置40の備える電子透かし除去部410は、次式に示すように除去済関数鍵ek^を出力する。   In step S412, the digital watermark removal unit 410 included in the digital watermark removal apparatus 40 outputs the removed function key ek ^ as shown in the following equation.

Figure 0005975961
Figure 0005975961

<関数実行処理>
図10に示すステップS510において、関数実行装置50の備える関数実行部510は、計算対象の情報x∈{0,1}γを入力として、関数鍵記憶部590に記憶されている透かし付関数鍵WM(ek)を用いて損失落とし戸関数LTFの計算アルゴリズムEvalを実行することで、計算結果である情報y:=(y1,…,yγ,y'γ+1)を出力する。
<Function execution processing>
In step S510 illustrated in FIG. 10, the function execution unit 510 included in the function execution device 50 receives the calculation target information xε {0,1} γ and receives the watermarked function key stored in the function key storage unit 590. By executing the calculation algorithm Eval of the loss trap function LTF using WM (ek), information y: = (y 1 ,..., Y γ , y ′ γ + 1 ) as a calculation result is output.

まず、計算アルゴリズムEvalは、x:=(x1,…,xγ)=xとして、i,j=1,…,γについて、次式に示すようにy1,…,yγ+1を計算する。 First, the calculation algorithm Eval assumes that x: = (x 1 ,..., X γ ) = x , and for i, j = 1,..., Γ, y 1 ,. Calculate

Figure 0005975961
Figure 0005975961

ただし、s 1:=(s1,1,…,s1,γ)及びs 2:=(s2,1,…,s2,γ)である。次に、計算アルゴリズムEvalは、次式に示すように値y'γ+1を計算する。 However, s 1 : = ( s1,1 , ..., s1 , γ ) and s 2 : = ( s2,1 , ..., s2 , γ ). Next, the calculation algorithm Eval calculates the value y ′ γ + 1 as shown in the following equation.

Figure 0005975961
Figure 0005975961

そして、関数実行部510は、情報y:=(y1,…,yγ,y'γ+1)を出力する。 Then, the function execution unit 510 outputs information y: = (y 1 ,..., Y γ , y ′ γ + 1 ).

<逆関数実行処理>
図10に示すステップS520において、関数実行装置50の備える逆関数実行部520は、逆計算対象の情報y:=(y1,…,yγ,y'γ+1)を入力として、関数鍵記憶部590に記憶されている逆関数鍵ikを用いて損失落とし戸関数LTFの逆計算アルゴリズムInvertを実行することで、逆計算結果である情報x:=(x1,…,xγ)を出力する。
<Inverse function execution processing>
In step S520 shown in FIG. 10, the inverse function execution unit 520 included in the function execution device 50 receives the information y: = (y 1 ,..., Y γ , y ′ γ + 1 ) to be inversely calculated as a function key. By using the inverse function key ik stored in the storage unit 590 and executing the inverse calculation algorithm Invert of the loss trapdoor function LTF, information x: = (x 1 ,..., X γ ) as the inverse calculation result is obtained. Output.

逆計算アルゴリズムInvertは、i,j:=1,…,γについて、次式に示すようにx'jを計算する。 The inverse calculation algorithm Invert calculates x ′ j as shown in the following equation for i, j: = 1,.

Figure 0005975961
Figure 0005975961

次に、j=1,…,γについて、x'j=g^T x_jを満たす値となるように、xj∈{0,1}を設定する。 Next, for j = 1,..., Γ, x j ε {0, 1} is set so that x ′ j = g ^ T x_j is satisfied.

そして、逆関数実行部520は、情報x:=(x1,…,xγ)を出力する。 Then, the inverse function execution unit 520 outputs information x: = (x 1 ,..., X γ ).

[この発明と従来技術との比較]
図12に、この発明の電子透かし技術と従来技術との比較を示す。“方式”列は、この明細書における文献の名称を表す。“タイプ”列は、それぞれの方式が目的としている技術の種類を表す。“対象”列は、それぞれの方式で著作権や電子透かしを処理する対象となる関数の種類を表す。“仮定”列は、それぞれの方式が安全性の根拠とする暗号学的な仮定を表す。“安全性”列は、それぞれの方式の安全性における特徴を表す。
[Comparison between this invention and the prior art]
FIG. 12 shows a comparison between the digital watermark technique of the present invention and the conventional technique. The “method” column represents the names of documents in this specification. The “type” column represents the type of technology that each scheme is intended for. The “target” column indicates the type of function to be processed for copyright and digital watermark in each method. The “Assumption” column represents the cryptographic assumption that each scheme is based on. The “safety” column represents the security features of each scheme.

非特許文献1及び非特許文献2は関数に対する著作権付与の方式であり、付与回数が限定されている。非特許文献3は関数に対する電子透かしの方式であるが、暗号学的に証明可能な安全性を有していない。このように、付与回数の限定がなく暗号学的に証明可能な安全性を有している電子透かし方式は、この発明のみが実現していることがわかる。   Non-Patent Document 1 and Non-Patent Document 2 are methods for assigning copyrights to functions, and the number of grants is limited. Non-Patent Document 3 is a digital watermark method for a function, but it does not have cryptographically provable security. In this way, it can be seen that only the present invention realizes a digital watermarking method that has no limitation on the number of times of granting and has cryptographically provable security.

[プログラム、記録媒体]
この発明は上述の実施形態に限定されるものではなく、この発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。上記実施例において説明した各種の処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
[Program, recording medium]
The present invention is not limited to the above-described embodiment, and it goes without saying that modifications can be made as appropriate without departing from the spirit of the present invention. The various processes described in the above-described embodiments are not only executed in time series according to the order described, but may be executed in parallel or individually as required by the processing capability of the apparatus that executes the processes.

また、上記実施形態で説明した各装置における各種の処理機能をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。   When various processing functions in each device described in the above embodiment are realized by a computer, the processing contents of the functions that each device should have are described by a program. Then, by executing this program on a computer, various processing functions in each of the above devices are realized on the computer.

この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなど、周知のどのような記録媒体であってもよい。   The program describing the processing contents can be recorded on a computer-readable recording medium. The computer-readable recording medium may be any known recording medium such as a magnetic recording device, an optical disk, a magneto-optical recording medium, and a semiconductor memory.

また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROMなどの可搬型記録媒体を販売、譲渡、貸与などすることによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。   Further, this program is distributed by selling, transferring, or lending a portable recording medium such as a DVD or CD-ROM in which the program is recorded. Furthermore, the program may be distributed by storing the program in a storage device of the server computer and transferring the program from the server computer to another computer via a network.

このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラム若しくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータなど)を含むものとする。   A computer that executes such a program first stores, for example, a program recorded on a portable recording medium or a program transferred from a server computer in its own storage device. When executing the process, the computer reads a program stored in its own recording medium and executes a process according to the read program. As another execution form of the program, the computer may directly read the program from a portable recording medium and execute processing according to the program, and the program is transferred from the server computer to the computer. Each time, the processing according to the received program may be executed sequentially. Also, the program is not transferred from the server computer to the computer, and the above-described processing is executed by a so-called ASP (Application Service Provider) type service that realizes the processing function only by the execution instruction and result acquisition. It is good. Note that the program in this embodiment includes information that is used for processing by an electronic computer and that conforms to the program (data that is not a direct command to a computer but has a property that defines the processing of the computer).

また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。   In this embodiment, the present apparatus is configured by executing a predetermined program on a computer. However, at least a part of these processing contents may be realized by hardware.

1 電子透かしシステム
9 ネットワーク
10 電子透かし鍵生成装置
20 電子透かし埋込装置
30 電子透かし検出装置
40 電子透かし除去装置
50 関数実行装置
110 双線形写像パラメータ生成部
115 ベクトル空間パラメータ生成部
120 双対直交基底生成部
125 鍵ペア生成部
130 埋込鍵生成部
135 検出鍵生成部
140 除去鍵生成部
145 透かし鍵配信部
150 単射鍵生成部
155 損失鍵生成部
160 関数鍵配信部
210 電子透かし埋込部
290 埋込鍵記憶部
310 電子透かし検出部
390 検出鍵記憶部
410 電子透かし除去部
490 除去鍵記憶部
510 関数実行部
520 逆関数実行部
590 関数鍵記憶部
1 Digital Watermark System 9 Network 10 Digital Watermark Key Generation Device 20 Digital Watermark Embedding Device 30 Digital Watermark Detection Device 40 Digital Watermark Removal Device 50 Function Execution Device 110 Bilinear Mapping Parameter Generation Unit 115 Vector Space Parameter Generation Unit 120 Dual Orthogonal Base Generation Unit 125 key pair generation unit 130 embedded key generation unit 135 detection key generation unit 140 removal key generation unit 145 watermark key distribution unit 150 injection key generation unit 155 loss key generation unit 160 function key distribution unit 210 digital watermark embedding unit 290 Embedded Key Storage Unit 310 Digital Watermark Detection Unit 390 Detection Key Storage Unit 410 Digital Watermark Removal Unit 490 Removal Key Storage Unit 510 Function Execution Unit 520 Inverse Function Execution Unit 590 Function Key Storage Unit

Claims (7)

電子透かし鍵生成装置、電子透かし埋込装置、電子透かし検出装置、電子透かし除去装置及び関数実行装置を含む電子透かしシステムであって、
Nは自然数であり、qは素数であり、G,GTは位数qの巡回乗法群であり、gは群Gの生成元であり、Fqは位数qの有限体であり、Fq ×は有限体Fq上の乗法群であり、GL(N,Fq)は有限体Fq上のN次元一般線形群であり、Xは一般線形群GL(N,Fq)からランダムに生成した正則行列であり、Vは有限体Fq上のN次元ベクトル空間であり、Aはベクトル空間Vの標準基底であり、eはV×V→GTの双線形写像であり、γはN以下の任意の整数であり、paramVはparamV:=(q,V,GT,A,e)であるベクトル空間パラメータであり、
上記電子透かし鍵生成装置は、
上記標準基底A及び上記正則行列Xを用いて、上記ベクトル空間Vの双対直交基底である基底B及び基底B*を生成する双対直交基底生成部と、
上記基底Bから所定の元を選択して基底B^を生成した上で上記ベクトル空間パラメータparamV及び上記基底B^を含む公開鍵pk並びに上記基底B*から所定の元を選択した秘密鍵skを生成する鍵ペア生成部と、
上記基底B*から上記秘密鍵skに含まれない元を選択して埋込鍵mkを生成する埋込鍵生成部と、
上記基底Bから上記基底B^に含まれない元を選択して検出鍵dkを生成する検出鍵生成部と、
上記正則行列Xを除去鍵rkとして設定する除去鍵生成部と、
単位行列に設定したγ×γの行列Mを用いて生成した行列ui,j、上記基底Bを用いて生成した行列vi,j及び上記基底B*を用いて生成した値kIDを含む単射鍵ekI並びに有限体Fqからランダムに生成した逆関数鍵ikを生成する単射鍵生成部と、
ゼロ行列に設定したγ×γの行列Mを用いて生成した行列ui,j、上記基底Bを用いて生成した行列vi,j及び上記基底B*を用いて生成した値kIDを含む損失鍵ekLを生成する損失鍵生成部と、
を含み、
上記電子透かし埋込装置は、
埋込対象関数鍵ekを入力として、上記埋込鍵mkを用いて、上記埋込対象関数鍵ekに含まれる値kIDに電子透かしを埋め込んだ透かし付関数鍵WM(ek)を生成する電子透かし埋込部
を含み、
上記電子透かし検出装置は、
検出対象関数鍵ek’を入力として、上記検出鍵dkを用いて、上記検出対象関数鍵ek’に含まれる値kIDに電子透かしが埋め込まれているか否かを示す情報を出力する電子透かし検出部
を含み、
上記電子透かし除去装置は、
除去対象関数鍵ek”を入力として、上記除去鍵rkを用いて、上記除去対象関数鍵ek”に含まれる値kIDから電子透かしを取り除いた除去済関数鍵ek^を出力する電子透かし除去部
を含み、
上記関数実行装置は、
計算対象の情報xを入力として、上記透かし付関数鍵WM(ek)を用いて、計算結果である情報yを出力する関数実行部と、
逆計算対象の情報yを入力として、上記逆関数鍵ikを用いて、逆計算結果である情報xを出力する逆関数実行部と、
を含む
電子透かしシステム。
An electronic watermark system including an electronic watermark key generation device, an electronic watermark embedding device, an electronic watermark detection device, an electronic watermark removal device, and a function execution device,
N is a natural number, q is a prime number, G, G T is a cyclic multiplicative group of order q, g is a generator of the group G, F q is a finite field of order q, F q × is a multiplicative group on the finite field F q , GL (N, F q ) is an N-dimensional general linear group on the finite field F q , and X is random from the general linear group GL (N, F q ) Where V is an N-dimensional vector space on a finite field F q , A is a standard basis of the vector space V, e is a bilinear map of V × V → G T , and γ Is any integer less than or equal to N, and param V is a vector space parameter with param V : = (q, V, G T , A, e)
The digital watermark key generating apparatus includes:
Using the standard basis A and the regular matrix X, a dual orthogonal basis generator for generating a base B and a base B * that are dual orthogonal bases of the vector space V;
After selecting a predetermined element from the base B and generating a base B ^, the public key pk including the vector space parameter param V and the base B ^ and the secret key sk selecting the predetermined element from the base B * A key pair generation unit for generating
An embedded key generation unit that generates an embedded key mk by selecting an element not included in the secret key sk from the base B * ;
A detection key generation unit that generates a detection key dk by selecting an element not included in the base B ^ from the base B;
A removal key generation unit that sets the regular matrix X as a removal key rk;
Contains matrix u i, j generated using matrix M of γ × γ set as unit matrix, matrix v i, j generated using base B , and value k ID generated using base B * A single key generation unit that generates an inverse function key ik randomly generated from the single key ek I and the finite field F q ;
Contains matrix u i, j generated using matrix M of γ × γ set to zero matrix, matrix v i, j generated using base B , and value k ID generated using base B * A loss key generation unit for generating a loss key ek L ;
Including
The digital watermark embedding device is:
An electronic device for generating a watermarked function key WM (ek) in which a digital watermark is embedded in a value k ID included in the embedding target function key ek using the embedding target function key ek as an input Including watermark embedding part,
The digital watermark detection apparatus includes:
Digital watermark detection that uses the detection key dk as an input and outputs information indicating whether or not a digital watermark is embedded in the value k ID included in the detection target function key ek ′ using the detection target function key ek ′ as an input Including
The digital watermark removing apparatus is
A digital watermark removing unit that outputs the removed function key ek ^ obtained by removing the digital watermark from the value k ID included in the removal target function key ek "using the removal key rk" as an input Including
The function execution device is
Using the watermarked function key WM (ek) with the calculation target information x as input, a function execution unit that outputs information y that is a calculation result;
Using the inverse function key ik as an input, the inverse calculation target information y, and the inverse function execution unit that outputs information x that is the inverse calculation result;
Including digital watermarking system.
請求項1に記載の電子透かしシステムであって、
Tは行列・の転置行列であり、・-1は行列・の逆行列であり、N=10であり、上記正則行列XはX:=χi,j(i,j=1,…,N)で定義され、上記標準基底AはA:=(a1,…,aN)で定義され、Sampは関数鍵ek及び逆関数鍵ikを出力する関数鍵生成アルゴリズムであり、
上記双対直交基底生成部は、上記基底Bを次式により生成し、
Figure 0005975961

上記基底B*を次式により生成するものであり、
Figure 0005975961

上記鍵ペア生成部は、上記基底B^:=(b1,b2,b3,b10)を生成した上で上記公開鍵pk:=(paramV,B^,Samp)及び上記秘密鍵sk:=(b* 1,b* 2,b* 3,b* 6,b* 7)を生成するものであり、
上記埋込鍵生成部は、上記埋込鍵mk:=(b* 8,b* 9)を生成するものであり、
上記検出鍵生成部は、上記検出鍵dk:=(b8,b9)を生成するものであり、
上記除去鍵生成部は、上記除去鍵rk:=Xを生成するものであり、
上記単射鍵生成部は、上記ベクトル空間パラメータparamV、上記基底B^及び上記秘密鍵skを入力として、上記関数鍵生成アルゴリズムSampを実行し、上記関数鍵ekを上記単射鍵ekIとして生成するものであり、
上記損失鍵生成部は、上記ベクトル空間パラメータparamV、上記基底B^及び上記秘密鍵skを入力として、上記関数鍵生成アルゴリズムSampを実行し、上記関数鍵ekを上記単射鍵ekLとして生成するものであり、
上記関数鍵生成アルゴリズムSampは、任意のビット列IDを生成し、有限体Fq上のγ次元ベクトルψをランダムに生成し、j=1,…,γについて、次式に示すようにgT_jを計算し、
Figure 0005975961

有限体Fqから乱数ζ1,…,ζγ、φ1,…,φγ、ω1,…,ωγを選択し、i,j=1,…,γについて次式に示すように行列ui,j及び行列υiを計算し、
Figure 0005975961

有限体Fq上の乱数σ及び有限体Fq上の2次元ベクトルηをランダムに生成し、次式に示すように値kIDを生成し、
Figure 0005975961

上記関数鍵ekを次式により生成し、
Figure 0005975961

上記逆関数鍵ikをik:=ψと設定するものであり、
上記電子透かし埋込部は、有限体Fq上の乱数μ12を選択し、次式に示すように値k~IDを計算し、
Figure 0005975961

次式により上記透かし付関数鍵WM(ek)を生成するものであり、
Figure 0005975961

上記電子透かし検出部は、乗法群Fq ×上の乱数δ12を選択し、次式に示すように値cを計算し、
Figure 0005975961

次式に示すように値Δを計算し、
Figure 0005975961

Δ≠1であれば電子透かしが埋め込まれていることを示す情報を出力し、Δ=1であれば電子透かしが埋め込まれていないことを示す情報出力するものであり、
上記電子透かし除去部は、i=1,…,10について、次式を満たす値zib* iを計算し、
Figure 0005975961

次式に示すように値kIDを計算し、
Figure 0005975961

次式に示すように除去済関数鍵ek^を出力するものであり、
Figure 0005975961

上記関数実行部は、上記情報xはx:=(x1,…,xγ)と表すとして、i,j=1,…,γについて次式に示すようにy1,…,yγ+1,y'γ+1を計算し、
Figure 0005975961

上記情報y:=(y1,…,yγ,y'γ+1)を出力するものであり、
上記逆関数実行部は、i,j:=1,…,γについて次式によりx'jを計算し、
Figure 0005975961

j=1,…,γについてx'j=gT x_jを満たす値となるようにxjを設定し、上記情報x:=(x1,…,xγ)を出力するものである
電子透かしシステム。
The electronic watermark system according to claim 1,
T is a transposed matrix of matrix, -1 is an inverse of matrix, N = 10, and the regular matrix X is X: = χ i, j (i, j = 1, ..., N), the standard basis A is defined as A: = (a 1 , ..., a N ), Samp is a function key generation algorithm that outputs a function key ek and an inverse function key ik,
The dual orthogonal basis generator generates the basis B by the following equation:
Figure 0005975961

The above base B * is generated by the following equation:
Figure 0005975961

The key pair generation unit generates the base B ^: = (b 1 , b 2 , b 3 , b 10 ) and then the public key pk: = (param V , B ^, Samp) and the secret key. sk: = (b * 1 , b * 2 , b * 3 , b * 6 , b * 7 )
The embedded key generation unit generates the embedded key mk: = (b * 8 , b * 9 ),
The detection key generation unit generates the detection key dk: = (b 8 , b 9 ),
The removal key generation unit generates the removal key rk: = X,
The injection key generation unit executes the function key generation algorithm Samp with the vector space parameter param V , the base B ^, and the secret key sk as inputs, and uses the function key ek as the injection key ek I. Is to generate
The loss key generation unit receives the vector space parameter param V , the base B ^ and the secret key sk as input, executes the function key generation algorithm Samp, and generates the function key ek as the injection key ek L Is what
The function key generation algorithm Samp generates an arbitrary bit string ID, generates a γ-dimensional vector ψ on a finite field F q at random, and sets g T_j to j = 1 ,. Calculate
Figure 0005975961

Random numbers ζ 1 , ..., ζ γ , φ 1 , ..., φ γ , ω 1 , ..., ω γ are selected from the finite field F q, and the matrix for i, j = 1, ..., γ is shown as calculate u i, j and matrix ν i ,
Figure 0005975961

The two-dimensional vector eta on the finite field F q on the random number σ and finite field F q randomly generated to generate the value k ID as shown in the following equation,
Figure 0005975961

The function key ek is generated by the following formula,
Figure 0005975961

The inverse function key ik is set as ik: = ψ,
The digital watermark embedding unit selects random numbers μ 1 and μ 2 on the finite field F q , calculates values k to ID as shown in the following equation,
Figure 0005975961

The watermarked function key WM (ek) is generated by the following equation:
Figure 0005975961

The digital watermark detection unit selects random numbers δ 1 and δ 2 on the multiplicative group F q × , calculates a value c as shown in the following equation,
Figure 0005975961

Calculate the value Δ as shown in the following equation:
Figure 0005975961

If Δ ≠ 1, information indicating that the digital watermark is embedded is output. If Δ = 1, information indicating that the digital watermark is not embedded is output.
The digital watermark removing unit calculates a value z i b * i satisfying the following expression for i = 1,...
Figure 0005975961

Calculate the value k ID as shown in the following equation:
Figure 0005975961

The removed function key ek ^ is output as shown in the following equation,
Figure 0005975961

The function execution unit assumes that the information x is expressed as x: = (x 1 ,..., X γ ), and y 1 ,..., Y γ + 1 , y ' γ + 1
Figure 0005975961

The above information y: = (y 1 ,..., Y γ , y ′ γ + 1 ) is output,
The inverse function execution unit calculates x ′ j by the following formula for i, j: = 1,.
Figure 0005975961

j = 1, ..., set the x j to a value satisfying x 'j = g T x_j for gamma, the information x: = (x 1, ... , x γ) watermarking and outputs the system.
請求項1に記載の電子透かしシステムであって、
Tは行列・の転置行列であり、・-1は行列・の逆行列であり、N=8であり、上記正則行列XはX:=χi,j(i,j=1,…,N)で定義され、上記標準基底AはA:=(a1,…,aN)で定義され、Sampは関数鍵ek及び逆関数鍵ikを出力する関数鍵生成アルゴリズムであり、
上記双対直交基底生成部は、上記基底Bを次式により生成し、
Figure 0005975961

上記基底B*を次式により生成するものであり、
Figure 0005975961

上記鍵ペア生成部は、上記基底B^を次式により生成した上で
Figure 0005975961

有限体Fqから乱数α,θ,σを選択し、上記公開鍵pk:=(paramV,B^,Samp)及び上記秘密鍵sk:=(αθd* 1,θd* 1,θd* 2,σd* 3,σd* 4)を生成するものであり、
上記埋込鍵生成部は、上記埋込鍵mk:=(d* 7,d* 8)を生成するものであり、
上記検出鍵生成部は、上記検出鍵dk:=(d7,d8)を生成するものであり、
上記除去鍵生成部は、上記除去鍵rk:=Xを生成するものであり、
上記単射鍵生成部は、上記ベクトル空間パラメータparamV、上記基底B^、上記秘密鍵skを入力として、上記関数鍵生成アルゴリズムSampを実行し、上記関数鍵ekを上記単射鍵ekIとして生成するものであり、
上記損失鍵生成部は、上記ベクトル空間パラメータparamV、上記基底B^及び上記秘密鍵skを入力として、上記関数鍵生成アルゴリズムSampを実行し、上記関数鍵ekを上記単射鍵ekLとして生成するものであり、
上記関数鍵生成アルゴリズムSampは、任意のビット列IDを生成し、有限体Fq上のγ次元ベクトルψをランダムに生成し、g^T:=e(d1,d1 *)αθとして、j=1,…,γについて、次式に示すようにgT_jを計算し、
Figure 0005975961

有限体Fqから乱数s1,1,…,sγ,1、s1,2,…,sγ,2を選択し、i,j=1,…,γについて次式に示すように行列ui,j及び行列υiを計算し、
Figure 0005975961

有限体Fq上の乱数r1,r2を選択し、次式に示すように値kIDを生成し、
Figure 0005975961

上記関数鍵ekを次式により生成し、
Figure 0005975961

上記逆関数鍵ikをik:=ψと設定するものであり、
上記電子透かし埋込部は、有限体Fq上の乱数t1,t2を選択し、次式に示すように値k~IDを計算し、
Figure 0005975961

次式により上記透かし付関数鍵WM(ek)を生成するものであり、
Figure 0005975961

上記電子透かし検出部は、乗法群Fq ×上の乱数z1,z2を選択し、次式に示すように値cを計算し、
Figure 0005975961

次式に示すように値Δを計算し、
Figure 0005975961

Δ≠1であれば電子透かしが埋め込まれていることを示す情報を出力し、Δ=1であれば電子透かしが埋め込まれていないことを示す情報出力するものであり、
上記電子透かし除去部は、i=1,…,8について、次式を満たす値zid* iを計算し、
Figure 0005975961

次式に示すように値kIDを計算し、
Figure 0005975961

次式に示すように除去済関数鍵ek^を出力するものであり、
Figure 0005975961

上記関数実行部は、上記情報xはx:=(x1,…,xγ)と表すとして、i,j=1,…,γについて次式に示すようにy1,…,yγ+1,y'γ+1を計算し、
Figure 0005975961

上記情報y:=(y1,…,yγ,y'γ+1)を出力するものであり、
上記逆関数実行部は、i,j:=1,…,γについて次式によりx'jを計算し、
Figure 0005975961

j=1,…,γについてx'j=g^T x_jを満たす値となるようにxjを設定し、上記情報x:=(x1,…,xγ)を出力するものである
電子透かしシステム。
The electronic watermark system according to claim 1,
T is a transposed matrix of matrix, -1 is an inverse of matrix, N = 8, and the regular matrix X is X: = χ i, j (i, j = 1, ..., N), the standard basis A is defined as A: = (a 1 , ..., a N ), Samp is a function key generation algorithm that outputs a function key ek and an inverse function key ik,
The dual orthogonal basis generator generates the basis B by the following equation:
Figure 0005975961

The above base B * is generated by the following equation:
Figure 0005975961

The key pair generator generates the base B ^ according to
Figure 0005975961

Random numbers α, θ, σ are selected from the finite field F q , the public key pk: = (param V , B ^, Samp) and the secret key sk: = (αθd * 1 , θd * 1 , θd * 2 , σd * 3 , σd * 4 )
The embedded key generation unit generates the embedded key mk: = (d * 7 , d * 8 ),
The detection key generation unit generates the detection key dk: = (d 7 , d 8 ),
The removal key generation unit generates the removal key rk: = X,
The injection key generation unit executes the function key generation algorithm Samp with the vector space parameter param V , the base B ^, and the secret key sk as inputs, and uses the function key ek as the injection key ek I. Is to generate
The loss key generation unit receives the vector space parameter param V , the base B ^ and the secret key sk as input, executes the function key generation algorithm Samp, and generates the function key ek as the injection key ek L Is what
The function key generation algorithm Samp generates an arbitrary bit string ID, generates a γ-dimensional vector ψ on a finite field F q at random, and sets g ^ T : = e (d 1 , d 1 * ) αθ as j For = 1, ..., γ, calculate g T_j as shown in the following equation,
Figure 0005975961

Random s 1, 1 from the finite field F q, ..., s γ, 1, s 1,2, ..., s γ, 2 select, i, j = 1, ... , a matrix as shown in the following equation for the gamma calculate u i, j and matrix ν i ,
Figure 0005975961

Select random numbers r 1 and r 2 on the finite field F q and generate the value k ID as shown in the following equation,
Figure 0005975961

The function key ek is generated by the following formula,
Figure 0005975961

The inverse function key ik is set as ik: = ψ,
The digital watermark embedding unit selects random numbers t 1 and t 2 on the finite field F q , calculates values k to ID as shown in the following equation,
Figure 0005975961

The watermarked function key WM (ek) is generated by the following equation:
Figure 0005975961

The digital watermark detection unit selects a random number z 1 , z 2 on the multiplicative group F q × , calculates a value c as shown in the following equation,
Figure 0005975961

Calculate the value Δ as shown in the following equation:
Figure 0005975961

If Δ ≠ 1, information indicating that the digital watermark is embedded is output. If Δ = 1, information indicating that the digital watermark is not embedded is output.
The digital watermark removal unit calculates a value z i d * i satisfying the following expression for i = 1,...
Figure 0005975961

Calculate the value k ID as shown in the following equation:
Figure 0005975961

The removed function key ek ^ is output as shown in the following equation,
Figure 0005975961

The function execution unit assumes that the information x is expressed as x: = (x 1 ,..., X γ ), and y 1 ,..., Y γ + 1 , y ' γ + 1
Figure 0005975961

The above information y: = (y 1 ,..., Y γ , y ′ γ + 1 ) is output,
The inverse function execution unit calculates x ′ j by the following formula for i, j: = 1,.
Figure 0005975961

x j is set so that x ′ j = g ^ T x_j is satisfied for j = 1,..., γ, and the above information x: = (x 1 ,..., x γ ) is output. Watermark system.
Nは自然数であり、qは素数であり、G,GTは位数qの巡回乗法群であり、gは群Gの生成元であり、Fqは位数qの有限体であり、Fq ×は有限体Fq上の乗法群であり、GL(N,Fq)は有限体Fq上のN次元一般線形群であり、Xは一般線形群GL(N,Fq)からランダムに生成した正則行列であり、Vは有限体Fq上のN次元ベクトル空間であり、Aはベクトル空間Vの標準基底であり、eはV×V→GTの双線形写像であり、γはN以下の任意の整数であり、paramVはparamV:=(q,V,GT,A,e)であるベクトル空間パラメータであり、
上記標準基底A及び上記正則行列Xを用いて、上記ベクトル空間Vの双対直交基底である基底B及び基底B*を生成する双対直交基底生成部と、
上記基底Bから所定の元を選択して基底B^を生成した上で上記ベクトル空間パラメータparamV及び上記基底B^を含む公開鍵pk並びに上記基底B*から所定の元を選択した秘密鍵skを生成する鍵ペア生成部と、
上記基底B*から上記秘密鍵skに含まれない元を選択して埋込鍵mkを生成する埋込鍵生成部と、
上記基底Bから上記基底B^に含まれない元を選択して検出鍵dkを生成する検出鍵生成部と、
上記正則行列Xを除去鍵rkとして設定する除去鍵生成部と、
単位行列に設定したγ×γの行列Mを用いて生成した行列ui,j、上記基底Bを用いて生成した行列vi,j及び上記基底B*を用いて生成した値kIDを含む単射鍵ekI並びに有限体Fqからランダムに生成した逆関数鍵ikを生成する単射鍵生成部と、
ゼロ行列に設定したγ×γの行列Mを用いて生成した行列ui,j、上記基底Bを用いて生成した行列vi,j及び上記基底B*を用いて生成した値kIDを含む損失鍵ekLを生成する損失鍵生成部と、
を含む電子透かし鍵生成装置。
N is a natural number, q is a prime number, G, G T is a cyclic multiplicative group of order q, g is a generator of the group G, F q is a finite field of order q, F q × is a multiplicative group on the finite field F q , GL (N, F q ) is an N-dimensional general linear group on the finite field F q , and X is random from the general linear group GL (N, F q ) Where V is an N-dimensional vector space on a finite field F q , A is a standard basis of the vector space V, e is a bilinear map of V × V → G T , and γ Is any integer less than or equal to N, and param V is a vector space parameter with param V : = (q, V, G T , A, e)
Using the standard basis A and the regular matrix X, a dual orthogonal basis generator for generating a base B and a base B * that are dual orthogonal bases of the vector space V;
After selecting a predetermined element from the base B and generating a base B ^, the public key pk including the vector space parameter param V and the base B ^ and the secret key sk selecting the predetermined element from the base B * A key pair generation unit for generating
An embedded key generation unit that generates an embedded key mk by selecting an element not included in the secret key sk from the base B * ;
A detection key generation unit that generates a detection key dk by selecting an element not included in the base B ^ from the base B;
A removal key generation unit that sets the regular matrix X as a removal key rk;
Contains matrix u i, j generated using matrix M of γ × γ set as unit matrix, matrix v i, j generated using base B , and value k ID generated using base B * A single key generation unit that generates an inverse function key ik randomly generated from the single key ek I and the finite field F q ;
Contains matrix u i, j generated using matrix M of γ × γ set to zero matrix, matrix v i, j generated using base B , and value k ID generated using base B * A loss key generation unit for generating a loss key ek L ;
An electronic watermark key generating apparatus including:
Nは自然数であり、qは素数であり、G,GTは位数qの巡回乗法群であり、gは群Gの生成元であり、Fqは位数qの有限体であり、Fq ×は有限体Fq上の乗法群であり、GL(N,Fq)は有限体Fq上のN次元一般線形群であり、Xは一般線形群GL(N,Fq)からランダムに生成した正則行列であり、Vは有限体Fq上のN次元ベクトル空間であり、Aはベクトル空間Vの標準基底であり、eはV×V→GTの双線形写像であり、γはN以下の任意の整数であり、paramVはparamV:=(q,V,GT,A,e)であるベクトル空間パラメータであり、
双対直交基底生成部が、上記標準基底A及び上記正則行列Xを用いて、上記ベクトル空間Vの双対直交基底である基底B及び基底B*を生成する双対直交基底生成ステップと、
鍵ペア生成部が、上記基底Bから所定の元を選択して基底B^を生成した上で上記ベクトル空間パラメータparamV及び上記基底B^を含む公開鍵pk並びに上記基底B*から所定の元を選択した秘密鍵skを生成する鍵ペア生成ステップと、
埋込鍵生成部が、上記基底B*から上記秘密鍵skに含まれない元を選択して埋込鍵mkを生成する埋込鍵生成ステップと、
検出鍵生成部が、上記基底Bから上記基底B^に含まれない元を選択して検出鍵dkを生成する検出鍵生成ステップと、
除去鍵生成部が、上記正則行列Xを除去鍵rkとして設定する除去鍵生成ステップと、
単射鍵生成部が、単位行列に設定したγ×γの行列Mを用いて生成した行列ui,j、上記基底Bを用いて生成した行列vi,j及び上記基底B*を用いて生成した値kIDを含む単射鍵ekI並びに有限体Fqからランダムに生成した逆関数鍵ikを生成する単射鍵生成ステップと、
損失鍵生成部が、ゼロ行列に設定したγ×γの行列Mを用いて生成した行列ui,j、上記基底Bを用いて生成した行列vi,j及び上記基底B*を用いて生成した値kIDを含む損失鍵ekLを生成する損失鍵生成ステップと、
電子透かし埋込部が、埋込対象関数鍵ekを入力として、上記埋込鍵mkを用いて、上記埋込対象関数鍵ekに含まれる値kIDに電子透かしを埋め込んだ透かし付関数鍵WM(ek)を生成する電子透かし埋込ステップと、
電子透かし検出部が、検出対象関数鍵ek’を入力として、上記検出鍵dkを用いて、上記検出対象関数鍵ek’に含まれる値kIDに電子透かしが埋め込まれているか否かを示す情報を出力する電子透かし検出ステップと、
電子透かし除去部が、除去対象関数鍵ek”を入力として、上記除去鍵rkを用いて、上記除去対象関数鍵ek”に含まれる値kIDから電子透かしを取り除いた除去済関数鍵ek^を出力する電子透かし除去ステップと、
関数実行部が、計算対象の情報xを入力として、上記透かし付関数鍵WM(ek)を用いて、計算結果である情報yを出力する関数実行ステップと、
逆関数実行部が、逆計算対象の情報yを入力として、上記逆関数鍵ikを用いて、逆計算結果である情報xを出力する逆関数実行ステップと、
を含む電子透かし方法。
N is a natural number, q is a prime number, G, G T is a cyclic multiplicative group of order q, g is a generator of the group G, F q is a finite field of order q, F q × is a multiplicative group on the finite field F q , GL (N, F q ) is an N-dimensional general linear group on the finite field F q , and X is random from the general linear group GL (N, F q ) Where V is an N-dimensional vector space on a finite field F q , A is a standard basis of the vector space V, e is a bilinear map of V × V → G T , and γ Is any integer less than or equal to N, and param V is a vector space parameter with param V : = (q, V, G T , A, e)
A dual orthogonal base generation unit that generates a base B and a base B * which are dual orthogonal bases of the vector space V using the standard base A and the regular matrix X;
The key pair generation unit generates a base B ^ by selecting a predetermined element from the base B, and then generates a base B ^ from the public key pk including the vector space parameter param V and the base B ^ and the base B *. A key pair generation step for generating the secret key sk selected
An embedded key generation unit that generates an embedded key mk by selecting an element not included in the secret key sk from the base B * , and
A detection key generation unit that generates a detection key dk by selecting an element that is not included in the base B ^ from the base B; and
A removal key generation unit that sets the regular matrix X as a removal key rk;
The injection key generation unit uses the matrix u i, j generated using the matrix M of γ × γ set as the unit matrix, the matrix v i, j generated using the base B , and the base B *. A single key generation step for generating a reciprocal key ik randomly generated from the single key ek I including the generated value k ID and the finite field F q ;
Generated by the loss key generator using the matrix u i, j generated using the γ × γ matrix M set to zero matrix, the matrix v i, j generated using the base B , and the base B * A lost key generation step for generating a lost key ek L including the obtained value k ID ;
A watermarked function key WM is obtained by embedding a digital watermark in a value k ID included in the embedding target function key ek using the embedding key mk by using the embedding target function key ek as an input. a digital watermark embedding step for generating (ek);
Information indicating whether a digital watermark is embedded in a value k ID included in the detection target function key ek ′ using the detection key dk by using the detection target function key ek ′ as an input by the digital watermark detection unit Digital watermark detection step for outputting,
The digital watermark removal unit receives the removal target function key ek ”and uses the removal key rk to obtain the removed function key ek ^ obtained by removing the digital watermark from the value k ID included in the removal target function key ek”. A watermark removal step to output;
The function execution unit receives the information x to be calculated as an input, and uses the watermarked function key WM (ek) to output information y that is a calculation result; and
An inverse function execution unit, using the inverse calculation target information y as an input, and using the inverse function key ik, outputs an inverse function execution result information x, and
A watermarking method including:
請求項4に記載の電子透かし鍵生成装置としてコンピュータを機能させるプログラム。 A program that causes a computer as a digital watermark key generating equipment according to claim 4. 請求項5に記載の電子透かし方法の各ステップをコンピュータに実行させるプログラム。The program which makes a computer perform each step of the electronic watermarking method of Claim 5.
JP2013200796A 2013-09-27 2013-09-27 Digital watermark system, digital watermark key generation apparatus, digital watermark method and program Active JP5975961B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013200796A JP5975961B2 (en) 2013-09-27 2013-09-27 Digital watermark system, digital watermark key generation apparatus, digital watermark method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013200796A JP5975961B2 (en) 2013-09-27 2013-09-27 Digital watermark system, digital watermark key generation apparatus, digital watermark method and program

Publications (2)

Publication Number Publication Date
JP2015068871A JP2015068871A (en) 2015-04-13
JP5975961B2 true JP5975961B2 (en) 2016-08-23

Family

ID=52835625

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013200796A Active JP5975961B2 (en) 2013-09-27 2013-09-27 Digital watermark system, digital watermark key generation apparatus, digital watermark method and program

Country Status (1)

Country Link
JP (1) JP5975961B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021095103A1 (en) * 2019-11-11 2021-05-20 日本電信電話株式会社 Electronic watermarking system, electronic watermarking method and program
WO2023218559A1 (en) * 2022-05-11 2023-11-16 日本電信電話株式会社 Pseudorandom function generation device, watermark extraction device, and program

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2856539A1 (en) * 2003-06-17 2004-12-24 France Telecom Broadcasted information encryption and/or decryption tracing method, involves implementing secret cryptographic function by multiple decoders, each including memory storing mathematical description of function
US8306216B2 (en) * 2007-01-11 2012-11-06 Irdeto B.V. Method and system for tracking or identifying copy of implementation of computational method, and computation system
WO2013004691A1 (en) * 2011-07-06 2013-01-10 Thomson Licensing Traitor tracing for software-implemented decryption algorithms

Also Published As

Publication number Publication date
JP2015068871A (en) 2015-04-13

Similar Documents

Publication Publication Date Title
JP5466763B2 (en) ENCRYPTION DEVICE, DECRYPTION DEVICE, ENCRYPTION METHOD, DECRYPTION METHOD, PROGRAM, AND RECORDING MEDIUM
Astuti et al. Simple and secure image steganography using LSB and triple XOR operation on MSB
WO2010123112A1 (en) Encoding apparatus, decoding apparatus, encoding method, decoding method, security method, program, and recording medium
US9698984B2 (en) Re-encrypted data verification program, re-encryption apparatus and re-encryption system
JP2016012111A (en) Encryption processing method, encryption processing device, and encryption processing program
Goyal et al. Watermarking public-key cryptographic primitives
Tang et al. Image encryption based on random projection partition and chaotic system
JP2006109107A (en) Signature formation method, signature verification method, public key distribution method, and information processing apparatus
JP6059347B2 (en) Decoding device, decoding capability providing device, method and program thereof
JP5400740B2 (en) Searchable encryption system, searchable encryption method, storage device, search device, and registrant device
JP6259402B2 (en) KEY DISTRIBUTION MANAGEMENT DEVICE, TERMINAL DEVICE, KEY DISTRIBUTION SYSTEM, AND PROGRAM
JP7384216B2 (en) Digital watermarking system, digital watermarking method and program
JP5975961B2 (en) Digital watermark system, digital watermark key generation apparatus, digital watermark method and program
JP2010160235A (en) Retrieval system, terminal device, database device, retrieval method, and program
US20200175893A1 (en) Encryption device, decryption device, encryption method, decryption method, and computer readable medium
Shi et al. A homomorphic encrypted reversible information hiding scheme for integrity authentication and piracy tracing
JP2013213962A (en) Electronic watermark processing system, function execution device, electronic watermark key generation device, electronic watermark embedded device, electronic watermark detection device, electronic watermark removal device, electronic watermark processing method, function execution method and program
Hu et al. Security and privacy protocols for perceptual image hashing
WO2021130935A1 (en) Digital watermark embedding device, digital watermark extraction device, digital watermark embedding method, digital watermark extraction method, and program
JP4748663B2 (en) Secret calculation method and system, and program
JP5097137B2 (en) Cryptographic communication system, terminal device, secret key generation method and program
Alwan et al. A survey on combined various data hiding techniques
JP2017038336A (en) Decryption method
JP2010054875A (en) Operating device, decryption device, encryption device, information sharing system, 2dnf operating system, signature generator, signature verifier, signature processing system, signature verification system, arithmetic operation method, and arithmetic operation program
Shukla et al. Image encryption using elliptic curve cryptography

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150714

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160419

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160426

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160621

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160712

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160719

R150 Certificate of patent or registration of utility model

Ref document number: 5975961

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150