説明

パラメータ生成装置、暗号処理システム、方法およびプログラム

【課題】拡大体上の代数的トーラスを用いた公開鍵暗号方式において適切なパラメータを生成すること。
【解決手段】パラメータ生成装置であって、有限体Fpmの拡大次数mを決定する拡大次数決定部と、有限体FのサイズWと、代数的トーラスTの次数nと、拡大次数mとに基づくビット数の素数pを探索する第1素数探索部130と、群GのサイズSに基づいて定められるビット数であり、円分多項式Φnm(p)を割り切る素数qを探索する第2素数探索部140と、代数的トーラスTの次数nと有限体Fpmの拡大次数mとの乗算値nmがqで割り切れるか否かを検査する検査部150と、乗算値nmがqで割り切れない場合に、暗号系が安全性ありと判定する安全性判定部170と、暗号系が安全性ありと判定された場合に、素数pと、素数qと、代数的トーラスTの次数nと、拡大次数mとからなるパラメータ(p,q,n,m)を出力する出力部160とを備えた。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、離散対数問題を安全性の根拠とする公開鍵暗号方式によりデータを暗号化する際のパラメータを生成するパラメータ生成装置、このパラメータ生成装置を備えた暗号処理システム、方法およびプログラムに関する。
【背景技術】
【0002】
事前の鍵共有なしに安全な通信を実現する公開鍵暗号方式は、ネットワーク・セキュリティの基盤技術として幅広く利用されている。また、情報端末の多様化が進み、小型機器においても方式や実装を工夫して公開鍵を用いた各種スキーム/プロトコルが用いられるようになってきた。
【0003】
公開鍵暗号方式において現在の典型的な暗号系サイズは1024ビットであるが、解読が困難とされる暗号系サイズは年々大きくなっている。計算機の進歩とともに攻撃者の能力も上がっているためである。公開鍵暗号では公開鍵サイズや暗号文サイズは暗号系サイズの数倍(方式により異なる)となるので、メモリ容量や通信帯域が十分でない機器にとっては暗号系サイズの増大が問題となる。
【0004】
そこで、公開鍵暗号方式における公開鍵のサイズや暗号文のサイズを圧縮する圧縮暗号技術が考案されている(例えば、非特許文献1参照)。この方法は、公開鍵暗号で用いる数の集合のうち代数的トーラスと呼ばれる部分集合を用いると、集合の要素を小さいビット数で表現できるという事実に基づいている。圧縮暗号の技術では、圧縮率(すなわち、圧縮前のビット数/圧縮後のビット数)を大きくする改良を行っており、集合の要素を小さいビット数の表現に変換する際に付加的な入力を用いる(例えば、非特許文献2参照)。小さいビット数の表現へ変換を行う写像を圧縮写像ρ、θといい、それぞれRS圧縮写像、DW圧縮写像と呼ぶことにする。
【0005】
暗号文を圧縮する場合には、RS圧縮写像ρでは、暗号文cを入力として次式に示す計算を行い、圧縮暗号文γを得る。
【0006】
ρ(c)=γ
また、DW圧縮写像θでは、暗号文cが入力として与えられたときに適当な補助入力a1を用いて次式のような計算を行い、圧縮暗号文γと補助出力a1を得る。
θ(c,a1)=(γ,a2)
【0007】
圧縮暗号文を圧縮前の元のビット数の表現に戻す場合には、それぞれρ、θの逆写像を(γ,a2)に施す。圧縮写像ρの逆写像をρ-1、圧縮写像θの逆写像をθ-1と記述し、それぞれRS伸長写像、DW伸長写像と呼ぶ。RS伸長写像では、圧縮暗号文としてγが与えられたときに次式のような計算を行い、cを得る。
【0008】
ρ-1(γ)=c
DW伸長写像では、圧縮暗号文としてγとa2の組が与えられたときに次式の計算を行い、cとa1を得る。
【0009】
θ-1(γ,a2)=(c,a1)
代数的トーラスを用いた圧縮伸長は、公開鍵暗号における公開鍵や暗号文だけでなく、デジタル署名における署名や鍵交換スキームにおける交換メッセージにも適用できる。
【0010】
Cramer−Shoup暗号が非特許文献3にて提案されている。Cramer−Shoup暗号は標準モデルでの安全性が証明されている方式であるが、公開鍵や暗号文の成分の数が多いという特徴がある。具体的には、Cramer−Shoup暗号の暗号文は4つの成分(c1,c2,c3,c4)からなる。公開鍵も4つの成分(g〜,e,f,h)からなる。しかも、各成分は実際に暗号に用いられる群よりも大きな表現で表されるという問題がある。つまり、Cramer−Shoup暗号は有限群G~の素数位数部分群G上で定義されているが、公開鍵や暗号文の成分はG~の表現で表されている。具体的には、Cramer−Shoup暗号は素体の乗法群の素数位数部分群で定義されているが、公開鍵や暗号文の成分は素体の表現で表されている。
【0011】
Cramer−Shoup暗号やその他の公開鍵暗号において、有限群G~の部分群であって実際に暗号に用いられる群Gを代数的トーラスTの部分群とすることにより、公開鍵や暗号文を有限群G~のサイズではなく代数的トーラスTのサイズで表現する。ここで、代数的トーラスTは有限群G~の部分群とする。
【0012】
これまでに、素体上の代数的トーラスを用いたElGamal暗号やDH鍵交換が提案されている(非特許文献1、2参照)。Tが素体上のトーラスの場合、Tの部分群となるより小さなトーラスは存在しない。このとき、G~を拡大体Fの乗法群とする。部分群Gを選択する際には、Gの位数がTの位数を割り切ることと、Gの位数がFの拡大次数を割り切らないことを示していた。
【0013】
【非特許文献1】K. Rubin and A. Silverberg, “Torus−Based Cryptography”, CRYPTO 2003, LNCS 2729, 349−365, 2003.
【非特許文献2】M. van Dijk and D. Woodruff, “Asymptotically Optimal Communication for Torus−Based Cryptography”, CRYPTO 2004, LNCS 3152, 157−178, 2004.
【非特許文献3】R. Cramer and V. Shoup, ”A practical public key cryptosystem provably secure against adaptive chosen ciphertext attack”, CRYPTO’98, LNCS 1462, pp.13−25, 1998.
【発明の開示】
【発明が解決しようとする課題】
【0014】
しかしながら、拡大体上の代数的トーラスを用いた公開鍵暗号については、適切なパラメータ選択は知られていない。このため、素体上の代数的トーラスの場合のパラメータの選択方法を、拡大体上の代数的トーラスを用いた公開鍵暗号にそのまま適用することも考えられる。
【0015】
しかしながら、この方法では、部分群Gが拡大体Fよりも小さな拡大体に包含される場合を排除できず、適切なパラメータを選択することができないという問題がある。
【0016】
本発明は、上記に鑑みてなされたものであって、拡大体上の代数的トーラスを用いた公開鍵暗号方式において適切なパラメータを生成することができるパラメータ生成装置、暗号処理システム、方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0017】
上述した課題を解決し、目的を達成するために、本発明にかかるパラメータ生成装置は、 トーラス圧縮公開鍵暗号方式で用いられる暗号系が定義される群Gが包含される代数的トーラスTの次数nと、安全性を定める有限体FのサイズWと、前記群GのサイズSの入力を受け付ける入力受付部と、前記代数的トーラスが定義される有限体Fpmの拡大次数mを決定する拡大次数決定部と、前記有限体FのサイズWと、前記代数的トーラスTの次数nと、前記拡大次数mとに基づくビット数の素数pを探索する第1素数探索部と、前記群GのサイズSに基づいて定められるビット数であり、円分多項式Φnm(p)を割り切る素数qを探索する第2素数探索部と、代数的トーラスTの次数nと前記有限体Fpmの拡大次数mとの乗算値nmがqで割り切れるか否かを検査する検査部と、前記乗算値nmがqで割り切れない場合に、前記暗号系が安全性ありと判定する安全性判定部と、前記暗号系が安全性ありと判定された場合に、前記素数pと、前記素数qと、前記代数的トーラスTの次数nと、前記拡大次数mとからなるパラメータ(p,q,n,m)を出力する出力部と、を備えたことを特徴とする。
【0018】
また、本発明にかかる暗号処理システムは、パラメータ生成装置と、鍵生成装置と、暗号化装置と、前記暗号化装置にネットワークで接続された復号化装置とを備えた暗号処理システムであって、前記パラメータ生成装置は、トーラス圧縮公開鍵暗号方式で用いられる暗号系が定義される群Gが包含される代数的トーラスTの次数nと、前記代数的トーラスが定義され、安全性を定める有限体FのサイズWと、前記群GのサイズSの入力を受け付ける第1入力受付部と、前記代数的トーラスが定義される有限体Fpmの拡大次数mを決定する拡大次数決定部と、有限体FのサイズWと、前記代数的トーラスTの次数nと、前記拡大次数mとに基づくビット数の素数pを探索する第1素数探索部と、前記群GのサイズSに基づいて定められるビット数であり、円分多項式Φnm(p)を割り切る素数qを探索する第2素数探索部と、代数的トーラスTの次数nと前記有限体Fpmの拡大次数mとの乗算値nmがqで割り切れるか否かを検査する検査部と、前記乗算値nmがqで割り切れない場合に、前記暗号系が安全性ありと判定する安全性判定部と、前記暗号系が安全性ありと判定された場合に、前記素数pと、前記素数qと、前記代数的トーラスTの次数nと、前記拡大次数mとからなるパラメータ(p,q,n,m)を出力する第1出力部と、を備え、前記鍵生成装置は、前記パラメータ(p,q,n,m)の入力を受け付ける第2入力受付部と、前記素数qを前記群Gの位数とし、前記素数pを前記有限体Fの標数とし、前記標数p、前記拡大次数mの有限体またはその部分体上の演算の組み合わせで公開鍵を計算する公開鍵計算部と、前記公開鍵を出力する第2出力部と、を備え、前記暗号化装置は、前記公開鍵と平文の入力を受け付ける第3入力受付部と、前記標数pおよび前記拡大次数mの有限体またはその部分体上の演算の組み合わせにより、前記平文に対して前記公開鍵を用いた暗号化処理を施して、暗号文を求める暗号化処理部と、前記暗号文を前記復号化装置に送信する送信部と、を備え、前記復号化装置は、秘密鍵を記憶する記憶部と、前記暗号文を受信する受信部と、前記標数pおよび前記拡大次数mの有限体またはその部分体上の演算の組み合わせにより、前記暗号文に対して前記秘密鍵を用いた復号化処理を施して、前記平文を求める復号化処理部と、前記平文を出力する第4出力部と、を備えたことを特徴とする。
【0019】
また、本発明は上記パラメータ生成装置で実行される方法およびコンピュータを上記パラメータ生成装置の各部として機能させるプログラムである。
【発明の効果】
【0020】
本発明によれば、拡大体上の代数的トーラスを用いた公開鍵暗号方式において適切なパラメータを生成することができるという効果を奏する。
【発明を実施するための最良の形態】
【0021】
以下に添付図面を参照して、この発明にかかるパラメータ生成装置、暗号処理システム、方法およびプログラムの最良な実施の形態を詳細に説明する。
【0022】
(実施の形態1)
図1は、実施の形態1にかかる暗号処理システムのシステム構成を示すブロック図である。図1に示すように、実施の形態1にかかる暗号処理システムは、パラメータ生成装置100と、鍵生成装置200と、送信装置30と、受信装置40とを含んでいる。送信装置30は暗号化装置300を備え、受信装置40は復号化装置400を備えている。
【0023】
パラメータ生成装置100は、公開鍵暗号に関する公開情報としてのパラメータを生成する。パラメータとしては、群の要素やハッシュ関数などの情報や、暗号系が定義される群に関する情報として、位数や生成元の情報が含まれる。パラメータ生成装置100の構成の詳細については後述する。
【0024】
鍵生成装置200は、パラメータ生成装置100によって生成されたパラメータ(公開情報)を用いて、公開鍵と、公開鍵に対応する秘密鍵とを生成する。鍵生成装置200の構成の詳細については後述する。
【0025】
暗号化装置300を有する送信装置30には、鍵生成装置200が生成した公開鍵と、暗号化の対象の平文データとが入力される。この平文データは、送信装置30に予め記憶されたものであっても、送信装置30が生成したものであっても、他の通信装置から受信したものであっても、記憶媒体から読み出したものであってもよい。
【0026】
暗号化装置300は、公開鍵を用いて平文データを暗号化して暗号文を生成し、生成した暗号文を受信装置40に送信する。暗号化装置300の構成の詳細については後述する。
【0027】
復号装置400を有する受信装置40は、暗号文を受信すると、当該暗号文の暗号化に用いられた公開鍵に対応する秘密鍵を用いて暗号文を復号することにより、平文データを得る。復号化装置400の構成の詳細については後述する。
【0028】
なお、送信装置30および受信装置40は、例えば、図示しないインターネットなどのネットワークを介して相互に接続されたPC(Personal Computer)等によって構成することができる。
【0029】
なお、暗号化装置300および復号装置400は、暗号方式として、Cramer−Shoup暗号を用いる。適用可能な暗号方式はこれに限られず、ElGamal暗号などの有限体上の離散対数問題に基づく暗号方式であればあらゆる方式を適用できる。
【0030】
また、本実施の形態では、暗号化装置300および復号装置400が、それぞれ送信装置30および受信装置40に含まれる構成を例に説明するが、装置構成はこれに限られるものではない。例えば、送信装置30および受信装置40以外の装置に暗号化装置300および復号装置400が含まれるように構成してもよい。また、暗号化装置300および復号装置400を同一の装置上に含むように構成してもよい。
【0031】
本実施の形態のパラメータ生成装置100について説明する。まず、本実施の形態におけるパラメータ生成の原理について説明する。
【0032】
体とは四則演算が定義される数の集合であって、数の集合が有限の場合は有限体と呼ばれる。有限体に含まれる数の個数は素数であるか素数のべき乗であることが知られている。数の個数が素数である体を素体といい、数の個数が素数のべき乗である体を拡大体という。素体や拡大体の要素の個数を決めている素数を標数と呼び、べき乗を拡大次数と呼ぶ。
【0033】
乗法群とは乗算と除算が定義される数の集合であって、有限体の要素から0を除くと乗法群となることが知られている。また、群の要素の個数を位数と呼ぶ。
【0034】
Tを拡大体上の代数的トーラスとすると、Tの部分群となるより小さなトーラスが存在する。G~を拡大体Fの乗法群とすると、より小さなトーラスのうち拡大体Fの真部分体に包含されないトーラスtが決まり、その次数は拡大体の次数となる。tはTの部分群であるので、tの素数位数部分群上で暗号系を定義すると、公開鍵や暗号文はTのサイズで表現される。圧縮伸長写像が構成できるTの次数を定め、Tが定義される拡大体の次数と標数を安全性の要件から求める。
【0035】
仮に、群Gが拡大体Fの真部分体F’に包含されるとき、Gの安全性を決定するのはF’のサイズである。つまり、そのサイズの差だけ安全性が低下する。F=F’のとき(すなわち、Gがtの部分群のとき)、元のFの安全性を下げることなくTの素数位数部分群G上で暗号系が定義される。
【0036】
一方、F>F’であってもF’を十分なサイズとすれば、代数的トーラスTの最大の圧縮率(すなわち、Fのサイズ/Tのサイズ)よりは小さい圧縮率(F’のサイズ/Tのサイズ)で圧縮される。F=F’とするパラメータ生成法の原理を以下に詳しく示す。
【0037】
ここで、拡大体Fで定まる安全性を有する群G上で公開鍵暗号系を定義することを考える。ここで拡大体Fの乗法群をG~とし、その部分群である代数的トーラスをTとする。Gは代数的トーラスTの素数位数部分群とする。これらの集合として、以下の具体的な集合を考える。
【0038】
1)拡大体Fは,標数pのnm次拡大体とする。ここで、pは素数、nとmは正整数、Fの位数(要素の数)はpnmである。すなわち、(1)式で示される。
【0039】
【数1】

【0040】
2)拡大体Fの乗法群G~の位数は、pnm−1である。これを(2)式で示す。
【0041】
【数2】

(2)式において、#Xは群Xの位数を示す。
【0042】
3)拡大体Fの乗法群G~の部分群である代数的トーラスTは、標数pのm次拡大体上で定義された次数nの代数的トーラスとする。代数的トーラスTの位数は、Φn(pm)である。ここで、Φn(x)はn次の円分多項式とする。これを(3)式で示す。
【0043】
【数3】

【0044】
4)代数的トーラスTの素数位数部分群Gの位数をqは、安全性の観点からΦnm(p)を割り切る素数としなければならない。これを(4)式に示す。
【0045】
【数4】

【0046】
代数的トーラスTの素数位数部分群G、代数的トーラスT、拡大体Fの乗法群G~、拡大体Fは、公開情報となるパラメータ(p,q,m,n)によって一意に定まる。このとき、p:拡大体Fの標数、q:素数位数部分群Gの位数、m:代数的トーラスTが定義される拡大体Fpmの次数、n:代数的トーラスTの次数である。代数的トーラスTの素数位数部分群Gが包含される最小の拡大体をF’とすると、pのmod qでの位数が拡大体F’の拡大次数である。拡大体F’の拡大次数はq|(px−1)を満たす最小のxであり、この関係式が(5)式のように書き換えられることより明らかである。
【0047】
【数5】

【0048】
この結果は、文献「Laura Hitt,”On the minimal embedding field”,Pairing2007,LNCS 4575,pp.294−301,2007.」に記述された拡大体上楕円曲線の埋め込み次数に関する議論を再考することにより導かれる。pのmod qでの位数をord(q,p)と記述すると、F’=Fはord(q,p)=nmと同値である。さらに、ord(q,p)=nmは(6)式と同値である。
【0049】
【数6】

【0050】
nm−1がd|nmなる円分多項式Φd(p)の積で分解されることより、(6)式は(7)式と同値であることを導いた。
【0051】
【数7】

【0052】
ここで、拡大体F’の拡大次数がnmの約数になることは、xがq|(px−1)を満たす最小のxであることより証明される。さらに、文献「W.Bosma,J.Hutton and E.R.Verheul,“Looking beyond XTR”,Asiacrypt’02,LNCS 2501,pp.46−63,2002.」に記述されているように、qがnmを割り切らない場合は、mod qの多項式(Xnm−1)が重根を持たないので、この場合は(6)、(7)式の「かつ」以降の条件は、自動的に成立する。また、拡大体上の代数的トーラスTの位数について、円分多項式の性質を用いると、(8)式に表されることを発見した。ここで、mnはmの因数であってnの素因数の全ての積とし、m~nはm/mnとする。
【0053】
【数8】

【0054】
本実施の形態のパラメータ生成装置100では、この(8)式を用いて安全でかつ扱いやすいパラメータ(p,q,m、n)を効率よく生成する。
【0055】
図2は、実施の形態1のパラメータ生成装置100の機能的構成を示すブロック図である。図2に示すように、本実施の形態のパラメータ生成装置100は、入力受付部110と、拡大次数決定部120と、第1素数探索部130と、第2素数探索部140と、検査部150と、安全性判定部170と、出力部160とを主に備えている。
【0056】
入力受付部110は、代数的トーラスTの次数nと、拡大体FのサイズWと、代数的トーラスTの素数位数部分群GのサイズSの入力を受け付ける。拡大次数決定部120は、拡大体Fの拡大次数mを決定する。
【0057】
トーラス圧縮Cramer−Shoup暗号で用いられる群は、パラメータ(p,q,m,n)によって一意に定まる。このとき、p:拡大体の標数、q:素数位数部分群の位数、m:代数的トーラスが定義される拡大体の次数、n:代数的トーラスの次数である。本実施の形態では、(7)式に基づいて定められた(9−1)式で示す条件1および(9−2)式で示す条件2の両方を満たすパラメータ(p,q,m,n)を探索する。
【0058】
【数9】

【0059】
条件1は、素数位数部分群Gが代数的トーラスTの部分群のうち次数nmの代数的トーラスに包含されるための条件である。この条件1を満たす素数p、qは、それぞれ第1素数探索部130、第2素数探索部140で探索される。
【0060】
すなわち、第1素数探索部130は、拡大体FのサイズWと、代数的トーラスTの次数nと、拡大次数mとに基づくビット数の素数pを探索する。具体的には、第1素数探索部130は、W/nmビット以上の素数pを探索する。
【0061】
第2素数探索部140は、円分多項式Φnm(p)を割り切る素数であって、素数位数部分群GのサイズSに基づいて定められるビット数である素数qを探索する。具体的には、第2素数探索部140は、円分多項式Φnm(p)を割り切るSビット以上の素数qを探索する。
【0062】
(9−2)式で示す条件2は、素数位数部分群Gが代数的トーラスTの部分群のうち、唯一の部分群に含まれる条件である。拡大次数決定部120で決定されたm、第1探索部130で探索された素数p、第2素数探索部140で探索された素数qが、条件2を満たすかどうかは、検査部150で検査される。すなわち、検査部150は、代数的トーラスTの次数nと有限体Fpmの拡大次数mとの乗算値nmが素数qで割り切れるか否かを検査する。そして、条件2を満たさない場合には、再度、mの決定、p、qの探索を行うことになる。
【0063】
ここで、条件2として(9−2)式を用いる代わりに、(10)式を用いるように構成してもよい。
【0064】
【数10】

【0065】
ここで、dはnmの約数である。この(10)式の条件は、ord(q,p)=nmであることの必要十分条件となる。ただし、(10)式では、全てのdについて検査を行う必要があるため、(9−2)式の条件を判断する手法の方が、検査時間を短縮することができるという利点がある。
【0066】
安全性判定部170は、検査部150によって乗算値nmが素数qで割り切れないと検査された場合に、暗号系が安全性ありと判定する。
【0067】
出力部160は、nmが素数qで割り切れない場合に、暗号系が安全性ありと判定し、素数pと、素数qと、拡大次数mと、代数的トーラスの次数nとからなるパラメータ(p,q,m,n)を出力する。
【0068】
次に、鍵生成装置200について説明する。図3は、実施の形態1の鍵生成装置200の機能的構成を示すブロック図である。本実施の形態の鍵生成装置200は、図3に示すように、鍵計算部210と、通信部220とを主に備えている。
【0069】
鍵計算部210は、パラメータ生成装置100で生成されたパラメータ(p,q,m,n)を入力して公開鍵や秘密鍵を生成する。鍵計算部210は、乱数生成部211と、演算部212とを備えている。
【0070】
乱数生成部211は、素数位数部分群Gの位数qで範囲が限定される乱数を生成する。演算部212は、秘密鍵を生成する。また、演算部212は、素数位数部分群Gの生成元gを入力し、標数pおよび拡大次数mの拡大体またはその部分体上で、素数位数部分群Gの生成元gに対して、生成した乱数を用いてべき乗演算および乗算を行うことにより、その演算結果を公開鍵として求める。
【0071】
Cramer−Shoup暗号における鍵生成処理では、べき乗も乗算も素体上でおこなっていたが、トーラス圧縮Cramer−Shoup暗号における鍵生成処理では、べき乗と乗算は拡大体上で行う。標数pの拡大次数nmの拡大体上の演算となるが、nは代数的トーラスの次数であり、mは代数的トーラスが定義される拡大体の拡大次数であることより、拡大体Fpmの元n個からなるベクトルの計算とする。圧縮伸長写像や代数的トーラス上の演算は拡大体Fpm上の演算を用いるため、同じ演算処理を利用することができ、効率な演算を行うことができる。
【0072】
なお、拡大体Fpm上の乗算と加算は必ずしも逐次的に行う必要はなく、ベクトル表現の変換やn次拡大の法多項式や基底は、あらかじめ拡大体の表現を合意していれば必要ない。
【0073】
通信部220は、生成した秘密鍵、公開鍵をネットワークを介して暗号化装置300、復号化装置400に送信する。
【0074】
次に、暗号化装置300について説明する。図4は、実施の形態1の暗号化装置300の機能的構成を示すブロック図である。暗号化装置300は、図4に示すように、暗号化処理部310と、圧縮処理部320と、公開鍵記憶部340と、通信部330とを備えている。
【0075】
暗号化処理部310は、拡大体Fの標数pおよび拡大次数mの拡大体Fまたはその部分体上の演算の組み合わせにより、平文に対して公開鍵を用いた暗号化処理を施して、暗号文を求めるものである。
【0076】
ここで、Cramer−Shoup暗号方式について説明する。図5は、Cramer−Shoup暗号方式の暗号化および復号の処理手順を示す説明図である。図5で、qは素数、gは暗号が定義される群G(位数はq)の生成元、g~,e,f,hは群Gの元である。平文データmもGの元である。rはランダムに生成される乱数である。
【0077】
図4に示すように、Cramer−Shoup暗号の暗号化の具体的な処理は、乱数乗のべき乗計算と乗算、ハッシュ関数の計算からなる。
【0078】
暗号化処理部310では、(A−1)〜(A−4)式により平文データmに対応する暗号文データ(c1,c2,c3,c4)を計算する。ここで、(A−3)式におけるHはハッシュ関数を示しており、ハッシュ関数Hに暗号文データを入力してハッシュ値vを求めている。秘密鍵は1からqまでの整数(または0からq−1までの整数)とする。
【0079】
図4に戻り、この手順を実行するため、暗号化処理部310は、乱数生成部311と、演算部312とを備えている。
【0080】
乱数生成部311は、素数位数群Gの位数qで範囲が限定される乱数rを生成する。演算部312は、生成元gと公開鍵とを乱数で第1のべき乗演算し(A−1)、第1のべき乗演算の結果と平文とを乗算し(A−2)、乗算した結果と第1のべき乗演算の結果のハッシュ値を求め(A−3)、ハッシュ値と乱数で公開鍵を第2のべき乗演算し、第1のべき乗演算の結果と第2のべき乗演算の結果とを、暗号文として求める(A−4)。
【0081】
圧縮処理部320は、暗号化処理部310で生成された暗号文を圧縮写像によりトーラス圧縮する。
【0082】
トーラス圧縮Cramer−Shoup暗号における上記の暗号化処理と圧縮処理では、べき乗と乗算は、標数pおよび拡大次数mの拡大体Fpmまたはその部分体上で行われる。
【0083】
すなわち、暗号化処理と圧縮処理は、標数pの拡大次数nmの拡大体上の演算となるが、nは代数的トーラスの次数であり、mは代数的トーラスが定義される拡大体の拡大次数であることより、拡大体Fpmの元n個からなるベクトルの計算とする。圧縮写像や代数的トーラス上の演算は拡大体Fpm上の演算を用いるため、同じ演算処理を利用することができ、効率な演算を行うことができる。
【0084】
なお、拡大体F上の乗算と加算は必ずしも逐次的に行う必要はなく、ベクトル表現の変換やn次拡大の法多項式や基底は、あらかじめ拡大体の表現を合意していれば必要ない。
【0085】
通信部330は、鍵生成装置200や復号化装置400とのデータの送受信を行う。具体的には、通信部330は、鍵生成装置200から公開鍵を受信する。また、通信部330は、復号化装置400に、トーラス圧縮された暗号文を送信する。公開鍵記憶部340は、鍵生成装置200から受信した公開鍵を保存しておく記憶媒体である。
【0086】
次に、復号化装置400について説明する。図6は、実施の形態1の復号化装置400の機能的構成を示すブロック図である。復号化装置400は、図6に示すように、伸長処理部410と、復号化処理部420と、圧縮処理部450と、秘密鍵記憶部440と、通信部430とを主に備えている。
【0087】
通信部430は、鍵生成装置200から秘密鍵を受信する。また、通信部430は、暗号化装置300から圧縮された暗号文を受信する。秘密鍵記憶部440は、受信した秘密鍵を保存しておく記憶媒体である。
【0088】
伸長処理部410は、標数pおよび拡大次数mの拡大体Fpmまたはその部分体上で、暗号化装置300から受信した圧縮された暗号文を伸長写像を使って伸長する。
【0089】
復号化処理部420は、暗号文を秘密鍵を用いて復号化し、平文を取得する。ここで、図5に戻り、復号化処理部420では、(B−1)〜(B−6)式により秘密鍵(x1,x2,y1,y2,z1,z2)と暗号文データ(c1,c2,c3,c4)から正当な平文データであるか否かのチェックを行い、平文データmを計算する。ここで、秘密鍵(x1,x2,y1,y2,z1,z2)は1からqまでの整数とする。また、c∈?G(またはG〜)は、cが群G(または群G〜)に属するか否かを判断することを示している。
【0090】
このため、復号化処理部420は、第1判定部421と、第2判定部422と、演算部423とを備えている。
【0091】
すなわち、Cramer−Shoup暗号の復号の具体的な処理は、正しい群の元であるかの検査とハッシュ関数の計算、検査式のチェック(べき乗と乗算)、平文の計算(逆元と乗算)からなる。
【0092】
第1判定部421は、暗号文が素数位数部分群Gの元であるか否かを検査し、素数位数部分群Gまたは拡大体Fの乗法群G~の元である場合には、暗号文は正当であると判定する(B−1、B−2)。
【0093】
演算部423は、標数pおよび拡大次数mの拡大体Fpmまたはその部分体上で、暗号文の要素であるc1、c2をべき乗演算および乗算して逆元を求め、暗号文の要素であるc3と乗算して平文mを求める(B−3,B−4)。
【0094】
第2判定部422は、標数pおよび拡大次数mの拡大体Fpmまたはその部分体上で、ハッシュ関数Hを用いて暗号文のハッシュ値を求め(B−5)、ハッシュ値と秘密鍵とにより暗号文の要素であるc1、c2をべき乗演算および乗算して、暗号文の要素であるc4と一致する場合に、暗号文は正当であると判定する(B−6)。
【0095】
なお、(B−1),(B−2)式による正しい群の元であるかの検査を、伸長処理の前に実行するように構成してもよく、この場合には無駄な伸長写像の計算を省くことができる。また、素数位数の代数的トーラスを用いる場合には、圧縮された表現における検査は容易となり都合が良い。さらに、ハッシュ関数の計算についても、暗号化処理部420とその入力値を圧縮後の値とすることで合意されているならば、伸長処理の前に行っても良い。
【0096】
圧縮処理部450は、復号化処理部420で算出された平文を、標数pおよび拡大次数mの拡大体Fpmまたはその部分体上の演算によりトーラス圧縮する。
【0097】
次に、以上のように構成された本実施の形態の暗号処理システムにおけるパラメータ生成から復号化までの処理について説明する。
【0098】
まず、パラメータ生成装置100におけるパラメータ生成処理について説明する。図7は、実施の形態1のパラメータ処理の手順を示すフローチャートである。
【0099】
まず、入力受付部110は、代数的トーラスTの次数n、拡大体FのサイズW、素数位数部分群GのサイズSの組の入力を受け付ける(ステップS11)。
【0100】
そして、拡大次数決定部120により、拡大体Fの拡大次数mを決定する(ステップS12)。ここで、拡大次数mの決定について詳細に説明する。
【0101】
例えば、n=6、W=2048、S=224として考える。拡大体Fpmを構成するための条件として、素体Fpのm次拡大の法多項式がFp上で既約であること、m次拡大体Fpmの3次拡大の法多項式がFpm上で既約であること、3m次拡大体Fp3mの2次拡大の法多項式がFp3m上で既約であることである。
【0102】
例えば、m次、3次、2次拡大の法多項式がそれぞれzm−s、y3−w、x2+1のとき、これらの法多項式がそれぞれFp、Fpm、Fp3m上で既約である十分条件は次の4つの条件が同時に成立することである。
【0103】
1)mが奇数であること。
2)mは3で割り切れるかつpは4mで割った余りが2m+1であること、または、mは3で割り切れないかつpは12mで割った余りが6m+1であること。
3)s(floor(p/m)d)≠1,d|m,d≠m
4)w(floor(p/m)×(p^m-1)/(p-1))≠1
ここで、floor(x)は床関数であり、xを越えない最大の整数を返す関数である。また、p^xは、pのx乗を示す。
【0104】
また、素数位数トーラスとなる条件として、トーラスT6(Fpm)の位数はΦ(pm)であり、これが素数となる必要条件は次式が成り立つことである。
【0105】
5)m=2a×3b
従って、拡大次数決定部120は、上記1)〜5)までの条件を満たすように、拡大次数mを決定している。
【0106】
他の例では、m次、3次、2次拡大の法多項式がそれぞれzm−s、y3−w、x2−δのとき、これらの法多項式がそれぞれFp、Fpm、Fp3m上で既約である必要十分条件は次の5つの条件が同時に成立することである。
【0107】
1’)mの素因数で(p−1)が割り切れること、かつ、(pm−1)が3で割り切れること、かつ、(p3m−1)が2で割り切れること。
2’)mが4で割り切れるならば(p−1)が4で割り切れること。
3’)s(floor(p/P))≠1 ただし、Pは、mの素因数である。
4’)w(floor(p^m/3))≠1
5’)δ(floor(p^(3m)/2))≠1
ここで、floor(x)は床関数であり、xを越えない最大の整数を返す関数である。
【0108】
また、素数位数トーラスとなる条件として、トーラスT6(Fpm)の位数はΦ(pm)であり、これが素数となる必要条件は次式が成り立つことである。
【0109】
6’)m=2a×3b
従って、拡大次数決定部120は、上記1’)〜6’)までの条件を満たすように、拡大次数mを決定している。
【0110】
次いで、第1素数探索部130が、W/nmビット以上の素数pを探索する(ステップS13)。
【0111】
例えば、m次、3次、2次拡大の法多項式がそれぞれzm−s、y3−w、x2+1の場合、素数pとして、2)の条件を満たす素数を探索する。mの候補が複数ある場合にはそれぞれについて実施する。上述の例では,m=27,81,243であるため,mが3で割り切れるので、素数pとして、4mで除算した余りが2m+1となるような素数を探索する。
【0112】
また、他の例では、m次、3次、2次拡大の法多項式がそれぞれzm−s、y3−w、x2−δの場合、素数pとして、1’)および2’)の条件を満たす素数を探索する。mの候補が複数ある場合にはそれぞれについて実施する。上述の例では,m=18,24,27,32,…であるため、素数pとして、mが2で割り切れる場合(p−1)が2で割り切れ、mが3で割り切れる場合(p−1)が3で割り切れ、mが4で割り切れる場合(p−1)が4で割り切れ、かつ、(pm−1)が3で割り切れ、かつ、(p3m−1)が2で割り切れるような素数を探索する。
【0113】
そして、素数pが探索されるまで(ステップS14:No)、上記ステップS12およびS13の処理を繰り返す。
【0114】
素数pが探索された場合には(ステップS14:Yes)、(9−1)式の条件を満たすべく、第2素数探索部140は、Φnm(p)を割り切るSビット以上の素数qを探索する(ステップS15)。
【0115】
そして、素数qが探索されたら、(9−2)式で示す条件2を満たしているか判断するため、検査部150は、nmが素数qで割り切れるか否かを判断する(ステップS16)。nmが素数qで割り切れる場合には(ステップS16:Yes)、ステップS15の素数qの探索を繰り返す。
【0116】
一方、ステップS16で、nmが素数qで割り切れない場合(ステップS16:No)、安全性判定部170は暗号系が安全性ありと判定して、出力部160は、(9−2)式の条件2を満足する素数qが探索されたと判断して、パラメータ(p,q,m,n)を出力する(ステップS17)。
【0117】
ここで、パラメータ生成処理の第1変形例(実施の形態1の変形例1)として、暗号系が定義される素数位数部分群Gとして素数位数トーラスTそのものを用いる場合の処理がある。このような場合には、素数位数トーラスTの位数が素数位数部分群Gの位数と等しくなるので、Φn(pm)=qである。従って、この条件の下、条件1と条件2を満たすパラメータを探索する。
【0118】
図8は、実施の形態1の変形例1のパラメータ生成処理の手順を示すフローチャートである。図8に示すように、本変形例では、ステップS26の素数qの探索において、Φn(pm)=Φnm(p)=qを満たす素数qを探索している点が、図7の処理と異なり、他のステップS21〜24、S26,S7の処理は、図7の処理と同様である。
【0119】
また、パラメータ生成処理の第2の変形例(実施の形態1の変形例2)として、(8)式に基づいた条件により素数qの探索を行うこともできる。図9は、実施の形態1の変形例2のパラメータ生成処理の手順を示すフローチャートである。本変形例では、代数的トーラスTの位数について(8)式が成立するので、m~n=1の場合、Φn(pm)=Φnm(p)となる。このため、ステップS32の拡大体Fの拡大次数mを決定する際に、m~n=1という制約を課し、この上で、ステップS35の素数qの探索処理において、=Φnm(p)=qとなる素数qを探索している。これにより、変形例2のステップS25におけるΦn(pm)=Φnm(p)の検査を省略することができる。
【0120】
また、パラメータ生成処理の第3の変形例(実施の形態1の変形例3)として、次の処理がある。図10は、実施の形態1の変形例3のパラメータ生成処理の手順を示すフローチャートである。(9−2)式に示す条件2が成立しない場合でも、全てのd|nm,d<nmについて(10)式が成立すれば、パラメータを求めることができる。ここで、dはnmの約数である。
【0121】
このため、本変形例では、ステップS46において、(9−2)式の条件2が成立しない場合、すなわち、nmが素数qで割り切れる場合には(ステップS46:Yes)、(10)式の判断、すなわち、nmの約数dについてΦd(p)が割り切れるか否かを判断し(ステップS47)、割り切れない場合には(ステップS47:No)、条件2が成立しない場合でもパラメータ(p、q、m、n)を出力している。一方、割り切れる場合には(ステップS47:Yes)、再度、素数qの探索を行う。
【0122】
他のステップS41〜S45,S46,S48の処理については、変形例2の処理と同様に行われる。なお、図10では、ステップS47の処理を変形例2(図9)の処理に組み込んだ例を示したが、これに限定されるものではなく、実施の形態1の図7の処理、変形例2の図8の処理に組み込むように構成してもよい。
【0123】
次に、鍵生成装置200による鍵生成処理について説明する。図11は、実施の形態1の鍵生成処理の手順を示すフローチャートである。
【0124】
まず、乱数生成部211は、パラメータ生成装置100からパラメータ(p、q、m、n)を入力し(ステップS51)、その中の素数位数部分群Gの位数qを用いて、0<w<qとなる乱数wを生成する(ステップS52)。また、乱数生成部211は、素数位数部分群Gの位数qを用いて、0≦x1,x2,y1,y2,z1,z2<qとなる乱数x1,x2,y1,y2,z1,z2を生成する(ステップS53)。
【0125】
次に、演算部212が、素数位数部分群Gの生成元gを取得する(ステップS54)。
【0126】
次に、演算部212は、次の(11−1)〜(11−4)式のべき乗計算を行う(ステップS55)。
【0127】
【数11−1】

【0128】
そして、出力部220は、その計算結果である(g~,e,f,h)を公開鍵として出力し(ステップS56)、また、(x1,x2,y1,y2,z1,z2)を秘密鍵として出力する(ステップS57)。より具体的には、出力部220は、公開鍵を暗号化装置300に送信し、秘密鍵を復号化装置400に送信する。
【0129】
次に、暗号化装置300による暗号化処理ついて説明する。図12は、実施の形態1の暗号化処理の手順を示すフローチャートである。具体的には、図5に示す(A−1)〜(A−5)式に示す算出処理が行われる。
【0130】
まず、通信部303は、生成元g、公開鍵g~、e、f、hと、平文データmとを入力する(ステップS61)。次に、乱数生成部311は、乱数rを生成する(ステップS62)。
【0131】
次に、演算部312、生成元g、公開鍵のうちg~、hと、乱数rとを用いて、べき乗計算c1=gr、c2=g〜r、b=hrを実行する(ステップS63)。また、演算部312は、平文データmと、算出したbとを乗算し、c3=mbを算出する(ステップS64)。
【0132】
次に、圧縮処理部320は、c1、c2、c3を、圧縮写像により圧縮する(ステップS65)。
【0133】
次に、演算部312は、ハッシュ関数Hへの入力としてc1、c2、c3を用いてハッシュ値v=H(c1、c2、c3)を算出する(ステップS66)。そして、演算部312は、公開鍵のうちe、fと、乱数rと、算出されたハッシュ値vとを用いて、べき乗計算c4=errvを実行する(ステップS67)。
【0134】
次に、圧縮処理部320は、c4を、圧縮写像を用いて圧縮する(ステップS68)。最後に、通信部330は、圧縮後の(c1、c2、c3、c4)を圧縮された暗号文データ(圧縮暗号文)として出力し(ステップS69)、復号化装置400に送信する。
【0135】
次に、復号化装置400による復号化処理について説明する。図13は、実施の形態1の復号化処理の手順を示すフローチャートである。具体的には、図5の(B−1)〜(B−6)式の算出処理を行う。
【0136】
まず、通信部430は、復号の対象となる暗号文データ(圧縮暗号文)を受信することにより入力する(ステップS71)。
【0137】
次に、第1判定部421は、暗号文データの成分(要素)である圧縮されたc1、c2、c3、c4のそれぞれが正しい群の元であるか否か、すなわち、c1、c2、c3、c4それぞれが群Gの元となっているか否かを判断する(ステップS72)。具体的には、暗号文の成分を要素とするベクトル表現(c1,c2,c3,c4)の各値が、0からp−1までの範囲に入っている場合に、暗号文c1,c2,c3,c4のそれぞれが正しい群の元であると判定することができる。
【0138】
暗号文データの成分が正しい群Gの元でないと判断された場合は(ステップS72:NO)、復号処理を終了する。
【0139】
暗号文データの成分が正しい群Gの元であると判断された場合(ステップS72:YES)、復号処理部410は、ハッシュ関数Hへの入力としてc1、c2、c3を用いてハッシュ値v=H(c1、c2、c3)を算出する(ステップS73)。
【0140】
次に、伸長処理部410は、圧縮された暗号文c1、c2、c3を伸長写像を用いて伸長する(ステップS74)。また、演算部423は、ハッシュ値vと、伸長後の暗号文c1、c2と、秘密鍵のうちx1、x2、y1、y2とを用いて、べき乗計算c=c1(x1+y1v)c2(x2+y2v)を実行する(ステップS75)。そして、演算部423は、べき乗計算により算出されたcを圧縮する(ステップS76)。また、伸長処理部410は、圧縮された暗号文c4を伸長する。
【0141】
次に、第2判定部422は、cと入力された暗号文データの成分のうちc4とが一致するか否かを判断する(ステップS77)。具体的には、暗号文のベクトル表現における各値が一致した場合に、cと入力された暗号文データの成分c4とが一致すると判定することができる。
【0142】
そして、両者が一致しない場合は(ステップS77:No)、復号処理を終了する。一方、両者が一致する場合は(ステップS77:Yes)、演算部423は、c1、c2と、秘密鍵のうちz1、z2とを用いて、べき乗計算b=c1z1c2z2を実行する(ステップS78)。
【0143】
次に、演算部423は、c3と、算出されたbとを用いて、平文m=c3b−1を算出する(ステップS79)。そして、圧縮処理部450によって平文mを圧縮し(ステップS80)、圧縮された平文mを出力する(ステップS81)。
【0144】
以上説明したように、本実施の形態によれば、パラメータ生成装置100で、(9−1)式および(9−2)式を満たすように、パラメータ(p、q,m、n)を生成し、このパラメータを用いて、鍵生成、暗号化処理、復号化処理を行っているので、拡大体上の代数的トーラスを用いた公開鍵暗号方式において適切なパラメータを生成することができ、これにより、より安全性のある暗号化処理を実現することができる。
【0145】
ここで、鍵生成処理で生成し、復号化処理で使用する秘密鍵としては、上述した(x1,x2,y1,y2,z1,z2)に限定されるものではない。例えば、秘密鍵の個数を(x1,x2,y1,y2,z1,z2)よりも少なく構成してもよい。
【0146】
このような場合の鍵生成処理の変形例(実施の形態1の変形例4)として、鍵生成装置200において生成する秘密鍵の個数が4個とする場合の処理がある。図14は、実施の形態1の変形例4の鍵生成処理の手順を示すフローチャートである。この変形例では、実施の形態1の鍵生成処理(図11)と同様に、パラメータ(p,q,m,n)の入力(ステップS51)、乱数wの生成(ステップS52)の後、乱数生成部211は、素数位数部分群Gの位数qを用いて、0≦x,y,z<qとなる乱数x,y,zを生成する(ステップS53b)。
【0147】
次に、演算部212は、次の(11−5)〜(11−8)式のべき乗計算を行う(ステップS55b)。
【0148】
【数11−2】

【0149】
そして、出力部220は、その計算結果である(g~,e,f,h)を公開鍵として出力し(ステップS56)、また、(w,x,y,z)を秘密鍵として出力する(ステップS57b)。
【0150】
また、復号化処理の変形例(実施の形態1の変形例5)として、上記変形例4の鍵生成処理により生成された4個の秘密鍵を用いる場合の処理がある。図15は、実施の形態1の変形例5の復号化処理の手順を示すフローチャートである。
【0151】
圧縮暗号文の入力から圧縮暗号文c1,c2,c3の伸長までの処理(ステップS71〜S74)については、図13で示した実施の形態1の復号化処理と同様に行われる。
【0152】
本変形例では、ステップS74bにおいて圧縮暗号文c1,c3を伸長したら、演算部423は、ハッシュ値vと、伸長後の暗号文c1と、秘密鍵のうちw、x、yとを用いて、べき乗計算t1=c1,t2=c1(x+yv)を実行する(ステップS75b)。そして、演算部423は、算出されたt1,t2を圧縮する(ステップS76b)。
【0153】
次に、第2判定部422は、t1と、入力された暗号文データの成分のうちc2とが一致するか否か、および、t2と、入力された暗号文データの成分のうちc4とが一致するか否かを判断する(ステップS77b)。
【0154】
そして、t1とc2が一致しない、あるいはt2とc4とが一致しない場合には(ステップS77b:No)、復号処理を終了する。一方、t1とc2が一致し、かつt2とc4とが一致する場合には(ステップS77b:Yes)、演算部423は、c1と、秘密鍵のうちのzとを用いて、べき乗計算b=c1を実行する(ステップS78b)。
【0155】
この後の平文mの圧縮(ステップS80)、平文mの出力(ステップS81)は、図13で示した実施の形態1の復号化処理と同様に行われる。
【0156】
なお、本変形例では、秘密鍵の個数が4個の場合を例にあげて説明したが、秘密鍵の個数はこれに限定されるものではない。
【0157】
(実施の形態2)
実施の形態2の暗号処理システムは、鍵生成装置において生成した公開鍵を圧縮するものである。図16は、実施の形態2にかかる暗号処理システムのシステム構成を示すブロック図である。図16に示すように、実施の形態2にかかる暗号処理システムは、パラメータ生成装置100と、鍵生成装置1420と、送信装置30と、受信装置40とを含んでいる。送信装置30は暗号化装置1430を備え、受信装置40は復号化装置400を備えている。
【0158】
本実施の形態において、パラメータ装置100、復号化装置400は、実施の形態1と同様の機能、構成を有している。
【0159】
鍵生成装置1420は、パラメータ生成装置100によって生成されたパラメータ(公開情報)を用いて、公開鍵と、公開鍵に対応する秘密鍵とを生成し、生成された公開鍵を圧縮して出力する。
【0160】
図17は、実施の形態2の鍵生成装置1420の機能的構成を示すブロック図である。本実施の形態の鍵生成装置1420は、図17に示すように、鍵計算部210と、圧縮処理部1421と、通信部220とを備えている。鍵計算部210と通信部220は、実施の形態1の鍵生成装置200と同様の機能および構成を有している。
【0161】
圧縮処理部1421は、鍵計算部210で生成された公開鍵を、標数pおよび拡大次数mの拡大体Fpmまたはその部分体上の演算により、トーラス圧縮する。圧縮された公開鍵は、通信部220によって暗号化装置1430に送信される。
【0162】
図18は、暗号化装置1430の機能的構成を示すブロック図である。本実施の形態の暗号化装置1430は、暗号化処理部310と、圧縮処理部320と、伸長処理部1431と、通信部330と、公開鍵記憶部340とを備えている。ここで、暗号化処理部310、圧縮処理部320、通信部330、公開鍵記憶部340については実施の形態1の暗号化装置300と同様の機能および構成を有している。
【0163】
伸長処理部1431は、通信部330が鍵生成装置1420から受信したトーラス圧縮された公開鍵を、標数pおよび拡大次数mの拡大体またはその部分体上の演算により、トーラス伸長する。
【0164】
次に、以上のように構成された本実施の形態の鍵生成処理について説明する。図19は、実施の形態2の鍵生成処理の手順を示すフローチャートである。パラメータ(p,q,m,n)の入力から生成元gに対するべき乗計算までの処理(ステップS91〜S95)については、実施の形態1におけるステップS51からS55までの処理と同様に行われる。
【0165】
べき乗演算が終了したら、算出されたg~,e,f,hを、圧縮処理部1421により圧縮写像を用いて標数pおよび拡大次数mの拡大体Fpmまたはその部分体上の演算によりトーラス圧縮する(ステップS96)。
【0166】
そして、通信部220は、圧縮された(g~,e,f,h)を圧縮公開鍵として出力し(ステップS97)、また、(x1,x2,y1,y2,z1,z2)を秘密鍵として出力する(ステップS98)。より具体的には、出力部220は、公開鍵を暗号化装置1430に送信し、秘密鍵を復号化装置400に送信する。
【0167】
次に、暗号化装置1430による暗号化処理について説明する。図20は、実施の形態2の暗号化処理の手順を示すフローチャートである。
【0168】
まず、通信部303が、生成元g、圧縮公開鍵(g~、e、f、h)と、平文データmとを受信(入力)する(ステップS101)。次に、伸長処理部1431は、受信した圧縮公開鍵(g~、e、f、h)を、伸長写像を用いて標数pおよび拡大次数mの拡大体Fpmまたはその部分体上の演算によりトーラス伸長する(ステップS102)。
【0169】
これ以降、伸長された公開鍵を用いた暗号文の生成処理については、実施の形態1の暗号化処理におけるステップS62からS69までの処理と同様に行われる。
【0170】
このように実施の形態2では、鍵生成の際の圧縮処理、暗号化処理の際の伸長処理における演算を、標数pおよび拡大次数mの拡大体Fpmまたはその部分体上で行っている。このため、本実施の形態では、拡大体上の代数的トーラスを用いた公開鍵暗号方式において適切なパラメータを生成することができ、これにより、より安全性のある暗号化処理を実現することができる。
【0171】
(実施の形態3)
実施の形態3の暗号処理システムは、パラメータ生成装置において、パラメータに対してトーラス上離散対数問題における効率的な計算法が有効な場合に、当該パラメータの生成を回避するものである。
【0172】
図21は、実施の形態3にかかる暗号処理システムのシステム構成を示すブロック図である。図21に示すように、実施の形態3にかかる暗号処理システムは、パラメータ生成装置1910と、鍵生成装置200と、送信装置30と、受信装置40とを含んでいる。送信装置30は暗号化装置300を備え、受信装置40は復号化装置400を備えている。
【0173】
本実施の形態において、鍵生成装置200、送信装置30(すなわち、暗号化装置300)、受信装置40(すなわち、復号化装置400)については、実施の形態1と同様の機能、構成を有している。
【0174】
図22は、実施の形態3のパラメータ生成装置1910の機能的構成を示すブロック図である。本実施の形態のパラメータ生成装置1910は、図22に示すように、入力受付部110と、拡大次数決定部120と、第1素数探索部130と、第2素数探索部140と、検査部150と、安全性判定部170と、有効性判定部1911と、出力部160とを主に備えている。ここで、入力受付部110、拡大次数決定部120、第1素数探索部130、第2素数探索部140、検査部150、安全性判定部170、出力部160については、実施の形態1のパラメータ生成装置100と同様の機能および構成を有している。
【0175】
有効性判定部1911は、パラメータ(p,q,m,n)に対し、トーラス上離散対数問題における効率的な計算法が有効か否かを判定する。以下、かかる判定について詳細に説明する。
【0176】
トーラス上離散対数問題の解法にGranger−Vercauteren法がある。このGranger−Vercauteren法については、文献「R.Granger and F. Vercauteren,“On the discrete logarithm problem on Algebraic Tori”, CRYPTO 2005, LNCS 3621,pp.66−85,2005.」に開示されている。
【0177】
Granger−Vercauteren法により効率的な解法を行うことができるパラメータの生成を回避する必要がある。Granger−Vercauteren法では、T2アルゴリズムとT6アルゴリズムの2種類のアルゴリズムが提案されている。
【0178】
T2アルゴリズムの計算量は、(12−1)式、T6アルゴリズムの計算量は(12−2)式で算出される量になると見積もられている。
【0179】
【数12】

【0180】
ここで、T2アルゴリズムはn=2であってm!≒p、すなわち、(13−1)式を満たす場合に、準指数時間になると理論的に見積もられている。一方、T6アルゴリズムはn=6であって(2m)!212m≒p、すなわち、(13−2)式のとき準指数時間になると実験により見積もられている。
【0181】
【数13】

【0182】
従って、(13−1)式、あるいは(13−2)式を満たすようなパラメータの生成を回避する必要がある。
【0183】
本実施の形態の有効性判定部1911では、パラメータ(p,q,m,n)が、(13−1)式または(13−2)式の条件を満たすか否かを調べることにより、当該パラメータに対してトーラス上離散対数問題における効率的な計算法が有効か否かを判定する。
【0184】
ここで、有効性判定部1911では、(13−1)式、(13−2)式のそれぞれにおいて、右辺の値と左辺の値とが近似しているか否かは、右辺の値と左辺の値との差が所定の範囲内にあるか否かを判断することにより判定する。
【0185】
また、T2アルゴリズムは (p,q,m,n(=6))に対して(p,q,m’(=3m),n’(=2))として適用できるので、有効性判定部1911は、n=6の場合には、かかる適用を行って、(13−1)式、(13−2)式の判定を行っている。
【0186】
また、本実施の形態では、有効性判定部1911は、すべてのパラメータ(p、q、m、n)生成された場合に、(13−1)式、(13−2)式の判定を行って、(13−1)式、(13−2)式を満たす場合には、再度、パラメータ(p、q、m、n)の決定をやり直している。
【0187】
次に、本実施の形態のパラメータ生成処理について説明する。図23は、実施の形態3のパラメータ生成処理の手順を示すフローチャートである。(n,W,S)の入力受付けからパラメータ(p,q,m,n)の出力までの処理(ステップS121〜S127)については、実施の形態1のパラメータ生成処理と同様に行われる。
【0188】
本実施の形態では、ステップS127において、パラメータ(p,q,m,n)が出力された場合、さらに、このパラメータ(p,q,m,n)が(13−1)式または(13−2)式の条件を満たすか否かを判定する(ステップS128)。
【0189】
そして、パラメータ(p,q,m,n)が(13−1)式または(13−2)式の条件を満たす場合には(ステップS128:Yes)、かかるパラメータはトーラス上離散対数問題における効率的な計算法が有効なパラメータであるため、これらを除外すべく、再度、ステップS122からの処理を繰り返す。
【0190】
ステップS128において、パラメータ(p,q,m,n)が(13−1)式および(13−2)式の条件を満たさない場合には(ステップS128:No)、かかるパラメータはトーラス上離散対数問題における効率的な計算法が有効でないパラメータであるため、これらのパラメータを以降の暗号処理に用いるべく、パラメータ(p,q,m,n)を出力する(ステップS129)。
【0191】
このように本実施の形態では、パラメータ生成処理の際に、トーラス上離散対数問題における効率的な計算法が有効であるパラメータを除外しているので、より安全で適切なパラメータ生成を行うことができる。
【0192】
ここで、(13−1)式、(13−2)式の判定のタイミングについて、他の例を考える。(13−1)式、(13−2)式を見てみると、この2つの条件式は、素数qに依存しないことがわかる。従って、実施の形態3の変形例1では、素数pの探索が終了した時点で、有効性判定部1911により、素数qをのぞいたパラメータm、p、nが(13−1)式、または(13−2)式の条件を満たすか否か判定している。これにより、パラメータ生成の処理時間の短縮化を図ることができる。
【0193】
図24は、実施の形態3の変形例1のパラメータ生成処理の手順を示すフローチャートである。図24に示すように、第1素数探索部130で素数pが探索された場合に(ステップS144:Yes)、有効性判定部1911により、ステップS142で決定された拡大次数m、探索された素数pと、nとを用いて、(13−1)式または(13−2)式の条件の判断を行う(ステップS145)。そして、(13−1)式または(13−2)式の条件が成立する場合には(ステップS145:Yes)、ステップS142へ戻り、再度、mの決定、pの探索を繰り返す。
【0194】
一方、(13−1)式または(13−2)式の条件が成立しない場合には(ステップS145:No)、素数qの探索を行う。これ以降の処理は、実施の形態1のパラメータ生成処理と同様に行われる。
【0195】
実施の形態3の変形例2では、素数pを探索する際に、有効性判定部1911は、(13−1)式または(13−2)式の条件を満たす素数pの範囲を決定し、第1素数探索部130でこの範囲で素数pの探索を行っている。
【0196】
図25は、実施の形態3の変形例2のパラメータ生成処理の手順を示すフローチャートである。本変形例では、実施の形態1の変形例2のパラメータ生成処理に上記処理を追加している。すなわち、m~n=1となるmを決定したら(ステップS162)、有効性判定部1911は、(13−1)式または(13−2)式の条件が成立する素数pの範囲を決定する(ステップS163)。そして、第1素数探索部130は、W/nmビット以上で、かつステップS162で決定された範囲で素数pを探索する(ステップS164)。これ以降の処理については、実施の形態1の変形例2のパラメータ生成処理と同様である。
【0197】
実施の形態3の変形例3では、素数pを探索する際に、拡大次数決定部120は、(13−1)式または(13−2)式の条件を満たすmを決定している。
【0198】
図26は、実施の形態3の変形例3のパラメータ生成処理の手順を示すフローチャートである。入力受付部110が(n,W,S)の入力を受け付ける(ステップS181)。そして、有効性判定部1911は、(13−1)式、(13−2)式の条件が成立しないmの範囲を定め、拡大次数決定部120は、この範囲で拡大次数mを決定する(ステップS182)。
【0199】
例えば、T2アルゴリズムについて(14−1)式、T6アルゴリズムについて(14−2)式となるmを避ける。
【0200】
【数14】

【0201】
例えば、右辺と左辺に10倍以上の差があれば採用する。log(p)の下限はW/nmであるから(14−1)式と(14−2)式の右辺はW/nmとして良い。実施の形態1で説明したように、m次、3次、2次拡大の法多項式がそれぞれzm−s、y3−w、x2+1のとき、これらの多項式がそれぞれFp、Fpm、Fp3m上で既約である十分条件のうち、1)と5)の条件より、m=3eであるから、m=3,9,27,81,243,729,・・・について、W/nm,3m×log(3m),2m×log(m)+12mを計算する。さらに、(14−1)式と(14−2)式の条件を回避すると、m=27,81,243が得られる。729以上のmについてはW/nm<1となるので有限体のサイズ6m×log(p)がW程度となるpは存在しないので対象外とする。
【0202】
他の例では、実施の形態1で説明したように、m次、3次、2次拡大の法多項式がそれぞれzm−s、y3−w、x2−δのとき、これらの多項式がそれぞれFp、Fpm、Fp3m上で既約である必要十分条件のうち、6‘)の条件より、m=2であるから、(14−1)式と(14−2)式の条件を回避すると、16以下が除外される。384以上のmについてはW/nm<1となるので有限体のサイズ6m×log(p)がW程度となるpは存在しないので対象外とする。
【0203】
(実施の形態4)
実施の形態4の暗号処理システムでは、パラメータ生成装置100で生成されたパラメータの安全性を判定する安全性判定装置を備えている。
【0204】
図27は、実施の形態4にかかる暗号処理システムのシステム構成を示すブロック図である。図27に示すように、実施の形態4にかかる暗号処理システムは、パラメータ生成装置100と、鍵生成装置200と、安全性判定装置2400と、送信装置30と、受信装置40とを含んでいる。送信装置30は暗号化装置300を備え、受信装置40は復号化装置400を備えている。
【0205】
本実施の形態において、パラメータ生成装置100、鍵生成装置200、送信装置30(すなわち、暗号化装置300)、受信装置40(すなわち、復号化装置400)については、実施の形態1と同様の機能、構成を有している。
【0206】
図28は、安全性判定装置2400の機能的構成を示すブロック図である。本実施の形態の安全性判定装置2400は、第1検査部2410と、第2検査部2420と、判定部2430と、通信部2450と、記憶部2440とを主に備えている。
【0207】
素数位数qの群が標数pの拡大体に埋め込まれるとき、最小の拡大次数をord(q,p)と表すと、パラメータが満たすべき条件はord(q,p)=nmと書き換えられる。この条件をパラメータが満たしているかどうかについては、パラメータ(p,q,m,n)が上述した(9−1)式と(9−2)式の2つの条件を満たしているかを判断する。
【0208】
代数的トーラスの部分トーラスがいくつかあるとき、暗号に使う部分群の位数はqで固定しておくとする。(9−1)式の条件1は、一番大きな拡大体に対応する(その部分体には包含されない)部分トーラスに含まれる部分群を暗号に使うことを意味する。(9−2)式の条件2は、暗号に使う部分群が、より小さな拡大体と対応する部分トーラスには含まれないことを意味する。すなわち、(9−2)式の条件2は、暗号に使う部分群は、部分トーラスのうち、ただひとつのトーラスに含まれることを意味する。
【0209】
従って、第1検査部2410は、パラメータが上述した(9−1)式を満たすか否かを判断して円分多項式Φnm(p)がqで割り切れるか否かを判断することにより、素数位数部分群Gが代数的トーラスTの部分群のうち次数nmの代数的トーラスに包含されるか否かを検査する。
【0210】
第2検査部2420は、パラメータが上述した(9−2)式を満たすか否かを判断して乗算値nmがqで割り切れるか否かを判断することにより、素数位数部分群Gが代数的トーラスTの部分群のうち、唯一の部分群に含まれるかを検査する。
【0211】
判定部2430は、第1検査部2410の検査結果が肯定的であり、かつ、第2検査部によ2420る検査結果が肯定的である場合に、パラメータ(p,q,m,n)は標数p、拡大次数nmの拡大体と同等の安全性を有すると判定する。
【0212】
通信部2450は、パラメータ(p,q,m,n)を受信し、また安全性の判定結果を送信する。
【0213】
記憶部2440は、判定結果などを一時的に保存する記憶媒体である。
【0214】
次に以上のように構成された安全性判定装置2400による安全性判定処理について説明する。図29は、実施の形態4の安全性判定処理の手順を示すフローチャートである。
【0215】
まず、通信部2450が、パラメータ生成装置100で生成されたパラメータ(p、q、m、n)を受信することより受け付ける(ステップS201)。次に検査部2410は、円分多項式Φnm(p)がqで割り切れるか否かを調べる(ステップS202)。そして、割り切れない場合には(ステップS202:No)、判定部2430は、パラメータ(p、q、m、n)が拡大体Fpnm(標数p、拡大次数nmの拡大体)と同等の安全性がないと判定し(ステップS206)、通信部2450は、安定性なしの出力を行う(ステップS207)。
【0216】
一方、ステップS202で、円分多項式Φnm(p)がqで割り切れる場合には(ステップS202:Yes)、第2検査部2420は、nmがqで割り切れるか否かを調べる(ステップS203)。そして、nmがqで割り切れた場合には(ステップS203:Yes)、判定部2430は、パラメータ(p、q、m、n)が拡大体Fpnmと同等の安全性がないと判定し(ステップS206)、通信部2450は、安定性なしの出力を行う(ステップS207)。
【0217】
一方、ステップS203で、nmがqで割り切れない場合には(ステップS203:No)、判定部2430は、パラメータ(p、q、m、n)が拡大体Fpnmと同等の安全性があると判定し(ステップS204)、通信部2450は、パラメータ(p、q、m、n)の出力を行う(ステップS205)。
【0218】
このように実施の形態4では、得られたパラメータが(9−1)式、(9−2)式の条件を満たすか否かを判定しているので、安全性の低下を未然に防止することが可能となる。
【0219】
ここで、(9−2)式で示す条件2が成立しない場合でも、すべてのd|nm,d<nmについて、(10)式が成立すれば、パラメータは安全性を有することになる。
【0220】
図30は、実施の形態4の変形例1の安全性判定処理の手順を示すフローチャートである。パラメータ(p,q,m,n)の入力受付け(ステップS221)、円分多項式Φnm(p)がqで割り切れるか否かの判断(ステップS222)およびnmがqで割り切れるか否かの判断(ステップS223)は、実施の形態4における図29の処理(ステップS201,S202,S203)と同様に行われる。本変形例では、ステップS223において、nmがqで割り切れ、(9−2)式の条件2を満たさない場合でも(ステップS223:Yes)、すべてのd|nm,d<nmについて、(10)式が成立するか否かを調べる。すなわち、nmの約数dについてΦd(p)がqで割り切れるか否かを調べる(ステップS226)。そして、割り切れない場合には(ステップS226:No)、(10)式を満たすと判断して、パラメータ(p、q、m、n)が拡大体Fpnmと同等の安全性があると判定し(ステップS224)、通信部2450は、パラメータ(p、q、m、n)の出力を行う(ステップS225)。
【0221】
一方、ステップS226において、nmの約数dについてΦd(p)がqで割り切れる場合には(ステップS226:Yes)、(10)式を満たさないと判断して、判定部2430は、パラメータ(p、q、m、n)が拡大体Fpnmと同等の安全性がないと判定し(ステップS227)、通信部2450は、安定性なしの出力を行う(ステップS228)。
【0222】
また、実施の形態4の変形例2として、(9−1)式で示す条件1、(9−2)式で示す条件2が成立しない場合でも、暗号系が定義されている素数位数部分群Gがどの拡大体に包含されるかを調べ、どの程度安全性が低下するかを出力しても良い。
【0223】
図31は、実施の形態4の変形例2の安全性判定処理の手順を示すフローチャートである。パラメータ(p,q,m,n)の入力(ステップS241)および円分多項式Φnm(p)がqで割り切れるか否かの判断(ステップS242)、nmがqで割り切れるか否かの判断(ステップS243)およびnmの約数dについてΦd(p)がqで割り切れるか否かの判断(ステップS244)は、実施の形態4の変形例1における図30の処理(ステップS221,S222,S223,S224)と同様に行われる。
【0224】
本変形例では、ステップS242において、円分多項式Φnm(p)がqで割り切れず(ステップS242:No)、(9−1)式の条件1を満たさない場合には、nmの約数dについてΦd(p)がqで割り切れるかどうか調べる(ステップS247)。そして、nmの約数dについてΦd(p)がqで割り切れる場合には(ステップS247:Yes)、(10)式を満たさないと判断して、割り切れた最小のdを取得して(ステップS248)、拡大体Fpdと同等の安全性があると判定する(ステップS249)。
【0225】
一方、ステップS247において、nmの約数dについてΦd(p)がqで割り切れない場合には(ステップS247:No)、判定部2430は安全性は不明であると判定し(ステップS251)、通信部2450は安全性が不明である旨を出力する(ステップS253)。
【0226】
また、ステップS243において、nmがqで割り切れ、(9−2)式の条件2を満たさない場合でも(ステップS243:Yes)、nmの約数dについてΦd(p)がqで割り切れるかどうか調べる(ステップS244)。そして、nmの約数dについてΦd(p)がqで割り切れる場合には(ステップS244:Yes)、(10)式を満たさないと判断して、割り切れた最小のdを取得して(ステップS248)、拡大体Fpdと同等の安全性があると判定する(ステップS249)。これにより、安全性のレベルを判定することが可能となる。
【0227】
一方、ステップS244において、nmがqで割り切れない場合には(ステップS244:No)、実施の形態4の変形例1における図30と同様の処理(ステップS224,S225)が行われる(ステップS245,S246)。
【0228】
(実施の形態5)
実施の形態5にかかる暗号処理システムは、鍵生成装置における公開鍵計算部の処理を効率化するものである。図32は、実施の形態5にかかる暗号処理システムのシステム構成を示すブロック図である。図32に示すように、実施の形態5にかかる暗号処理システムは、パラメータ生成装置100と、鍵生成装置3200と、送信装置30と、受信装置40とを含んでいる。送信装置30は暗号化装置300を備え、受信装置40は復号化装置300を備えている。
【0229】
本実施の形態において、パラメータ生成装置100、送信装置30(すなわち、暗号化装置300)、受信装置40(すなわち、復号化装置400)については、実施の形態1または2と同様の機能、構成を有している。
【0230】
図33は、実施の形態5の鍵生成装置3200の機能的構成を示すブロック図である。本実施の形態の鍵生成装置3200は、図33に示すように、鍵計算部3210と、通信部220とを主に備えている。ここで、通信部220の機能は、実施の形態1と同様である。
【0231】
鍵計算部3210は、実施の形態1と同様に、パラメータ生成装置100で生成されたパラメータ(p,q,m,n)を入力して公開鍵や秘密鍵を生成する。鍵計算部3210は、乱数生成部211と、伸長処理部3232と、演算部3212とを備えている。乱数生成部211の機能は、実施の形態1と同様である。
【0232】
演算部3212は、実施の形態1と同様に秘密鍵を生成する他、素数位数部分群Gの生成元gを取得する。このとき、演算部3212は、生成元gを圧縮された表現で取得する。生成元gを生成する場合、圧縮した表現とすると素数位数部分群Gに入らない生成元を生成する確率が下がり、生成元の生成効率を向上させることができる。特に、素数位数部分群Gが素数位数の代数的トーラスTの場合は、代数的トーラスTが定義される有限体Fpmの要素を生成すれば、常に素数位数部分群Gに入る生成元gを生成することができる。また、生成元gをメモリに記憶しておき、メモリから生成元gを読み出す形態においても、生成元gを圧縮した表現でメモリ等に記憶する場合の方が、圧縮されていない生成元gを記憶する場合に比べて、メモリの記憶容量を削減することができるという利点がある。
【0233】
伸長処理部3232は、演算部3212により取得した圧縮した表現の生成元gを、演算部3212によるべき乗または乗算を行う前に、トーラス伸長する。演算部3212は、伸長処理部3232によりトーラス伸長された生成元gに対して、実施の形態1と同様に、標数pおよび拡大次数mの拡大体またはその部分体上で、生成した乱数を用いてべき乗演算および乗算を行い公開鍵を求める。
【0234】
次に、鍵生成装置3200による鍵生成処理について説明する。図34は、実施の形態5の鍵生成処理の手順を示すフローチャートである。
【0235】
まず、パラメータ(p、q、m、n)の入力から乱数x1,x2,y1,y2,z1,z2の生成までの処理(ステップS261〜S263)は、実施の形態1における鍵生成処理(ステップS51〜S53)と同様に行われる。
【0236】
乱数x1,x2,y1,y2,z1,z2が生成されたら、演算部3212が、素数位数部分群Gの圧縮された表現の生成元gを取得する(ステップS264)。そして、べき乗計算または乗算を行う前に、伸長処理部3232は、圧縮された表現の生成元gをトーラス伸長する(ステップS265)。
【0237】
これ以降の公開鍵の生成および出力、秘密鍵の出力の処理(ステップS266〜S268)は、実施の形態1における鍵生成処理(ステップS55〜S57)と同様に行われる。
このように実施の形態5では、鍵生成装置3200において、圧縮された表現の生成元gを取得して、伸長処理部3232によって取得した生成元g(圧縮表現)のトーラス伸長を行っているので、生成元gの生成時にその位数をチェックしたり、代数的トーラスの要素を伸長した表現で記憶しなければならない伸長処理部3232のない鍵生成装置に比べて、生成元gの取得にかかる処理を効率的に行うことができる。
【0238】
実施の形態1〜5のパラメータ生成装置、鍵生成装置、暗号化装置、復号化装置は、CPUなどの制御装置と、ROM(Read Only Memory)やRAMなどの記憶装置と、HDD、CDドライブ装置などの外部記憶装置と、ディスプレイ装置などの表示装置と、キーボードやマウスなどの入力装置を備えており、通常のコンピュータを利用したハードウェア構成となっている。
【0239】
実施の形態1〜5のパラメータ生成装置、鍵生成装置、暗号化装置、復号化装置で実行される各プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【0240】
また、実施の形態1〜5のパラメータ生成装置、鍵生成装置、暗号化装置、復号化装置で実行される各プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、実施の形態1〜5のパラメータ生成装置、鍵生成装置、暗号化装置、復号化装置で実行される各プログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
【0241】
また、実施の形態1〜5のパラメータ生成装置、鍵生成装置、暗号化装置、復号化装置で実行される各プログラムを、ROM等に予め組み込んで提供するように構成してもよい。
【0242】
実施の形態1〜5のパラメータ生成装置、鍵生成装置、暗号化装置、復号化装置で実行される各プログラムは、上述した各部を含むモジュール構成となっており、実際のハードウェアとしてはCPU(プロセッサ)が上記記憶媒体から各プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、上記各部が主記憶装置上に生成されるようになっている。
【0243】
なお、本発明は、上記実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施の形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施の形態に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施の形態にわたる構成要素を適宜組み合わせても良い。
【図面の簡単な説明】
【0244】
【図1】実施の形態1にかかる暗号処理システムのシステム構成を示すブロック図である。
【図2】実施の形態1のパラメータ生成装置の機能的構成を示すブロック図である。
【図3】実施の形態1の鍵生成装置の機能的構成を示すブロック図である。
【図4】実施の形態1の暗号化装置の機能的構成を示すブロック図である。
【図5】Cramer−Shoup暗号方式の暗号化および復号の処理手順を示す説明図である。
【図6】実施の形態1の復号化装置の機能的構成を示すブロック図である。
【図7】実施の形態1のパラメータ処理の手順を示すフローチャートである。
【図8】実施の形態1の変形例1のパラメータ生成処理の手順を示すフローチャートである。
【図9】実施の形態1の変形例2のパラメータ生成処理の手順を示すフローチャートである。
【図10】実施の形態1の変形例3のパラメータ生成処理の手順を示すフローチャートである。
【図11】実施の形態1の鍵生成処理の手順を示すフローチャートである。
【図12】実施の形態1の暗号化処理の手順を示すフローチャートである。
【図13】実施の形態1の復号化処理の手順を示すフローチャートである。
【図14】実施の形態1の変形例4の鍵生成処理の手順を示すフローチャートである。
【図15】実施の形態1の変形例5の復号化処理の手順を示すフローチャートである。
【図16】実施の形態2にかかる暗号処理システムのシステム構成を示すブロック図である。
【図17】実施の形態2の鍵生成装置の機能的構成を示すブロック図である。
【図18】暗号化装置1430の機能的構成を示すブロック図である。
【図19】実施の形態2の鍵生成処理の手順を示すフローチャートである。
【図20】実施の形態2の暗号化処理の手順を示すフローチャートである。
【図21】実施の形態3にかかる暗号処理システムのシステム構成を示すブロック図である。
【図22】実施の形態3のパラメータ生成装置の機能的構成を示すブロック図である。
【図23】実施の形態3のパラメータ生成処理の手順を示すフローチャートである。
【図24】実施の形態3の変形例1のパラメータ生成処理の手順を示すフローチャートである。
【図25】実施の形態3の変形例2のパラメータ生成処理の手順を示すフローチャートである。
【図26】実施の形態3の変形例3のパラメータ生成処理の手順を示すフローチャートである。
【図27】実施の形態4にかかる暗号処理システムのシステム構成を示すブロック図である。
【図28】安全性判定装置の機能的構成を示すブロック図である。
【図29】実施の形態4の安全性判定処理の手順を示すフローチャートである。
【図30】実施の形態4の変形例1の安全性判定処理の手順を示すフローチャートである。
【図31】実施の形態4の変形例2の安全性判定処理の手順を示すフローチャートである。
【図32】実施の形態5にかかる暗号処理システムのシステム構成を示すブロック図である。
【図33】実施の形態5の鍵生成装置の機能的構成を示すブロック図である。
【図34】実施の形態5の鍵生成処理の手順を示すフローチャートである。
【符号の説明】
【0245】
30 送信装置
40 受信装置
100,1910 パラメータ生成装置
110 入力受付部
120 拡大次数決定部
130 第1素数探索部
140 第2素数探索部
150 検査部
160 出力部
170 安全性判定部
200,1420 鍵生成装置
210 鍵計算部
211,311 乱数生成部
212,312,423 演算部
220,330,430,2450 通信部
300、1430 暗号化装置
310 暗号化処理部
320,450,1421 圧縮処理部
340 公開鍵記憶部
400 復号化装置
410,1431 伸長処理部
420 復号化処理部
421 第1判定部
422 第2判定部
440 秘密鍵記憶部
1911 有効性判定部
2400 安全性判定装置
2410 第1検査部
2420 第2検査部
2430 判定部
2440 記憶部

【特許請求の範囲】
【請求項1】
トーラス圧縮公開鍵暗号方式で用いられる暗号系が定義される群Gが包含される代数的トーラスTの次数nと、安全性を定める有限体FのサイズWと、前記群GのサイズSの入力を受け付ける入力受付部と、
前記代数的トーラスが定義される有限体Fpmの拡大次数mを決定する拡大次数決定部と、
前記有限体FのサイズWと、前記代数的トーラスTの次数nと、前記拡大次数mとに基づくビット数の素数pを探索する第1素数探索部と、
前記群GのサイズSに基づいて定められるビット数であり、円分多項式Φnm(p)を割り切る素数qを探索する第2素数探索部と、
代数的トーラスTの次数nと前記有限体Fpmの拡大次数mとの乗算値nmがqで割り切れるか否かを検査する検査部と、
前記乗算値nmがqで割り切れない場合に、前記暗号系が安全性ありと判定する安全性判定部と、
前記暗号系が安全性ありと判定された場合に、前記素数pと、前記素数qと、前記代数的トーラスTの次数nと、前記拡大次数mとからなるパラメータ(p,q,n,m)を出力する出力部と、
を備えたことを特徴とするパラメータ生成装置。
【請求項2】
前記第1素数探索部は、W/nmビット以上の素数を探索し、
前記第2素数探索部は、円分多項式Φnm(p)を割り切るSビット以上の素数qを探索することを特徴とする請求項1に記載のパラメータ生成装置。
【請求項3】
前記群Gは、素数位数トーラスTを用い、
前記第2素数探索部は、Φn(pm)=Φnm(p)=qを満たし、かつSビット以上の素数qを探索することを特徴とする請求項1に記載のパラメータ生成装置。
【請求項4】
前記群Gは、素数位数トーラスTを用い、
前記拡大次数決定部は、前記拡大次数mを、代数的トーラスTの次数nの素因数のべき乗の積を算出することにより決定し、
前記第2素数探索部は、Φnm(p)=qを満たし、かつSビット以上の前記素数qを探索することを特徴とする請求項1に記載のパラメータ生成装置。
【請求項5】
前記群Gは、素数位数トーラスTを用い、
前記検査部は、前記乗算値nmが素数qで割り切れる場合に、さらに、前記乗算値nmの約数d(但し、d<nm)のそれぞれを採択して、円分多項式Φd(p)がqで割り切れるか否かの検査を行い、
前記出力部は、さらに、採択されたいずれの約数dについても、前記円分多項式Φd(p)がqで割り切れない場合に、前記パラメータ(p、q、m)を出力することを特徴とする請求項1に記載のパラメータ生成装置。
【請求項6】
前記検査部は、前記素数pのビット数が所定ビット数より大きい場合に、nmが前記素数qよりも小さいか否かの検査を行い、
前記出力部は、前記乗算値nmが前記素数qよりも小さい場合に、前記暗号系が安全性ありと判定し、前記パラメータ(p,q,n,m)を出力することを特徴とする請求項1に記載のパラメータ生成装置。
【請求項7】
前記トーラス圧縮公開鍵暗号方式は、トーラス圧縮Cramer−Shoup暗号方式であることを特徴とする請求項2〜6のいずれか1項に記載のパラメータ生成装置。
【請求項8】
前記代数的トーラスTの次数nが2で割り切れる場合に、前記素数p、前記代数的トーラスTの次数n、前記有限体Fpmの拡大次数mが条件1を満たすか否かを判定し、前記代数的トーラスTの次数nが6で割り切れる場合に、前記素数p、前記代数的トーラスTの次数n、前記有限体Fpmの拡大次数mが条件2を満たすか否かを判定することにより、トーラス上離散対数問題の計算法が有効か否かを判定する有効性判定部を更に備えたことを特徴とする請求項1に記載のパラメータ生成装置。
条件1:m’logm’≒logp
ただし、n’=2、m’=nm/2
条件2:2m’logm’+12m’log2≒logp
ただし、n’=6、m’=nm/6
【請求項9】
前記出力部は、トーラス上離散対数問題の計算法が有効でないと判定された場合に、前記パラメータ(p,q,n,m)を出力することを特徴とする請求項8に記載のパラメータ生成装置。
【請求項10】
前記有効性判定部は、前記第1素数探索部により前記素数pが探索された後、トーラス上離散対数問題の計算法が有効か否かを判定し、
前記第2素数探索部は、トーラス上離散対数問題の計算法が有効でないと判定された場合に、前記素数qを探索することを特徴とする請求項8に記載のパラメータ生成装置。
【請求項11】
前記第1素数探索部は、前記有効性判定部によって前記条件1または前記条件2を満たさないと判定され、かつ前記有限体FのサイズWと、前記代数的トーラスTの次数nと、前記拡大次数mとに基づくビット数の前記素数pを探索することを特徴とする請求項8に記載のパラメータ生成装置。
【請求項12】
前記拡大次数決定部は、前記有効性判定部によって前記条件1または前記条件2を満たさないと判定された、前記有限体Fpmの拡大次数mを決定することを特徴とする請求項8に記載のパラメータ生成装置。
【請求項13】
パラメータ生成装置と、鍵生成装置と、暗号化装置と、前記暗号化装置にネットワークで接続された復号化装置とを備えた暗号処理システムであって、
前記パラメータ生成装置は、
トーラス圧縮公開鍵暗号方式で用いられる暗号系が定義される群Gが包含される代数的トーラスTの次数nと、前記代数的トーラスが定義され、安全性を定める有限体FのサイズWと、前記群GのサイズSの入力を受け付ける第1入力受付部と、
前記代数的トーラスが定義される有限体Fpmの拡大次数mを決定する拡大次数決定部と、
有限体FのサイズWと、前記代数的トーラスTの次数nと、前記拡大次数mとに基づくビット数の素数pを探索する第1素数探索部と、
前記群GのサイズSに基づいて定められるビット数であり、円分多項式Φnm(p)を割り切る素数qを探索する第2素数探索部と、
代数的トーラスTの次数nと前記有限体Fpmの拡大次数mとの乗算値nmがqで割り切れるか否かを検査する検査部と、
前記乗算値nmがqで割り切れない場合に、前記暗号系が安全性ありと判定する第1安全性判定部と、
前記暗号系が安全性ありと判定された場合に、前記素数pと、前記素数qと、前記代数的トーラスTの次数nと、前記拡大次数mとからなるパラメータ(p,q,n,m)を出力する第1出力部と、を備え、
前記鍵生成装置は、
前記パラメータ(p,q,n,m)の入力を受け付ける第2入力受付部と、
前記素数qを前記群Gの位数とし、前記素数pを前記有限体Fの標数とし、前記標数p、前記拡大次数mの有限体またはその部分体上の演算の組み合わせで公開鍵を計算する公開鍵計算部と、
前記公開鍵を出力する第2出力部と、を備え、
前記暗号化装置は、
前記公開鍵と平文の入力を受け付ける第3入力受付部と、
前記標数pおよび前記拡大次数mの有限体またはその部分体上の演算の組み合わせにより、前記平文に対して前記公開鍵を用いた暗号化処理を施して、暗号文を求める暗号化処理部と、
前記暗号文を前記復号化装置に送信する送信部と、を備え、
前記復号化装置は、
秘密鍵を記憶する記憶部と、
前記暗号文を受信する受信部と、
前記標数pおよび前記拡大次数mの有限体またはその部分体上の演算の組み合わせにより、前記暗号文に対して前記秘密鍵を用いた復号化処理を施して、前記平文を求める復号化処理部と、
前記平文を出力する第4出力部と、
を備えたことを特徴とする暗号処理システム。
【請求項14】
前記トーラス圧縮公開鍵暗号方式は、離散対数問題に基づく暗号方式であり、
前記鍵生成装置の前記公開鍵計算部は、
前記群Gの位数qで範囲が限定される乱数を生成する第1乱数生成部と、
前記標数pおよび前記拡大次数mの有限体またはその部分体上の演算により、前記群Gの生成元gに対して、生成した乱数または前記乱数を用いて計算されるべき指数でべき乗演算および乗算を行うことにより、前記公開鍵を求める第1演算部と、
を備えたことを特徴とする請求項13に記載の暗号処理システム。
【請求項15】
前記鍵生成装置は、前記標数pおよび前記拡大次数mの有限体またはその部分体上の演算により、前記公開鍵をトーラス圧縮する第1圧縮処理部を更に備え、
前記第2出力部は、前記公開鍵として前記第1圧縮処理部によりトーラス圧縮された公開鍵を出力することを特徴とする請求項14に記載の暗号処理システム。
【請求項16】
前記鍵生成装置は、トーラス圧縮された前記生成元gをトーラス伸長する第1伸長処理部を更に備え、
前記第1演算部は、前記標数pおよび前記拡大次数mの有限体またはその部分体上の演算により、前記第1伸長処理部によりトーラス伸長された生成元gに対して、生成した乱数または前記乱数を用いて計算されるべき指数でべき乗演算および乗算を行うことにより、前記公開鍵を求めることを特徴とする請求項14に記載の暗号処理システム。
【請求項17】
前記トーラス圧縮公開鍵暗号方式は、トーラス圧縮Cramer−Shoup暗号方式であることを特徴とする請求項15または16に記載の暗号処理システム。
【請求項18】
前記トーラス圧縮公開鍵暗号方式は、離散対数問題に基づく暗号方式であり、
前記暗号化装置の前記暗号化処理部は、
前記群Gの位数qで範囲が限定される乱数を生成する第2乱数生成部と、
前記標数pおよび前記拡大次数mの有限体またはその部分体上で、前記生成元gと前記公開鍵とを前記乱数で第1のべき乗演算し、第1のべき乗演算の結果と前記平文とを乗算し、乗算した結果と前記第1のべき乗演算の結果のハッシュ値を求め、前記ハッシュ値と前記乱数で前記公開鍵を第2のべき乗演算し、第1のべき乗演算の結果と第2のべき乗演算の結果とを、前記暗号文として求める第2演算部と、
を備えたことを特徴とする請求項13に記載の暗号処理システム。
【請求項19】
前記暗号化装置は、前記標数pおよび前記拡大次数mの有限体またはその部分体上の演算により、前記暗号文をトーラス圧縮する第2圧縮処理部をさらに備えたことを特徴とする請求項18に記載の暗号処理システム。
【請求項20】
前記暗号化装置は、前記標数pおよび前記拡大次数mの有限体またはその部分体上の演算により、前記トーラス圧縮された公開鍵をトーラス伸長する第2伸長処理部をさらに備えたことを特徴とする請求項18に記載の暗号処理システム。
【請求項21】
前記トーラス圧縮公開鍵暗号方式は、トーラス圧縮Cramer−Shoup暗号方式であることを特徴とする請求項19または20に記載の暗号処理システム。
【請求項22】
前記トーラス圧縮公開鍵暗号方式は、離散対数問題に基づく暗号方式であり、
前記復号化装置の前記復号化処理部は、
前記暗号文が前記群Gの元であるか否かを検査し、前記群Gの元である場合には、前記暗号文は正当であると判定する第1判定部と、
前記暗号文のハッシュ値を求め、前記ハッシュ値と前記秘密鍵とにより前記暗号文の要素をべき乗演算および乗算して、所定の検査式と一致する場合に、前記暗号文は正当であると判定する第2判定部と、
前記標数pおよび前記拡大次数mの有限体またはその部分体上の演算により、前記暗号文の要素をべき乗演算および乗算して逆元値を求め、前記暗号文の要素と乗算して前記平文を求める第3演算部と、を備え、
前記第4出力部は、前記第1判定部および前記第2判定部により前記暗号文が正当であると判定された場合に、前記平文を出力することを特徴とする請求項13に記載の暗号処理システム。
【請求項23】
前記復号化装置の前記受信部は、トーラス圧縮された暗号文を受信し、
前記復号化装置の前記第1判定部は、前記トーラス圧縮された暗号文が前記群Gの元であるか否かを検査し、前記群Gの元である場合には、前記暗号文は正当であると判定し、
前記復号化装置は、
前記標数pおよび前記拡大次数mの有限体またはその部分体上の演算により、前記トーラス圧縮された暗号文をトーラス伸長する第3伸長処理部をさらに備えたことを特徴とする請求項22に記載の暗号処理システム。
【請求項24】
前記復号化装置は、前記標数pおよび前記拡大次数mの有限体またはその部分体上の演算により、前記平文をトーラス圧縮する第3圧縮処理部をさらに備え、
前記第4出力部は、前記平文として前記第3圧縮処理部によりトーラス圧縮された平文を出力することを特徴とする請求項22に記載の暗号処理システム。
【請求項25】
前記トーラス圧縮公開鍵暗号方式は、トーラス圧縮Cramer−Shoup暗号方式であって、
前記第3演算部は、前記逆元値を前記暗号文の第3の要素と乗算して前記平文を求めることを特徴とする請求項23または24に記載の暗号処理システム。
【請求項26】
前記第2判定部は、前記ハッシュ値と前記秘密鍵とにより前記暗号文の第1要素および第2要素をべき乗演算および乗算して、前記検査式として前記暗号文の第4の要素と一致する場合に、前記暗号文は正当であると判定することを特徴とする請求項25に記載の暗号処理システム。
【請求項27】
前記第2判定部は、前記ハッシュ値と前記秘密鍵とにより前記暗号文の第1要素をべき乗演算および乗算して、前記検査式として前記暗号文の第2の要素および第4の要素とそれぞれ一致する場合に、前記暗号文は正当であると判定し、
前記第3演算部は、前記標数pおよび前記拡大次数mの有限体またはその部分体上の演算により、前記暗号文の第1の要素をべき乗演算および乗算して逆元値を求めることを特徴とする請求項25に記載の暗号処理システム。
【請求項28】
前記暗号系の安全性を判定する安全性判定装置をさらに備え、
前記安全性判定装置は、
前記パラメータ生成装置で出力された前記パラメータ(p,q,m,n)の入力を受け付ける第5入力受付部と、
前記円分多項式Φnm(p)がqで割り切れるか否かを判断することにより、前記群Gが前記代数的トーラスTの部分群のうち次数nmの代数的トーラスに包含されるか否かを検査する第1検査部と、
前記乗算値nmがqで割り切れるか否かを判断することにより、前記群Gが前記代数的トーラスTの部分群のうち、唯一の部分群に含まれるかを検査する第2検査部と、
前記第1検査部の検査結果が肯定的であり、かつ、前記第2検査部による検査結果が肯定的である場合に、前記パラメータ(p,q,m,n)は前記標数p、前記拡大次数nmの拡大体と同等の安全性を有すると判定する第2安全性判定部と、
前記第2安全性判定部による判定結果を出力する第5出力部と、
を備えたことを特徴とする請求項13に記載の暗号処理システム。
【請求項29】
前記第2検査部は、前記乗算値nmが素数qで割り切れる場合に、さらに、前記乗算値nmの約数d(但し、d<nm)のそれぞれを採択して、円分多項式Φd(p)がqで割り切れるか否かの検査を行い、
前記第2安全性判定部は、前記第1検査部による検査結果が肯定的であり、前記第2検査部による最小の約数dがnmである場合に、前記パラメータ(p,q,m,n)は標数p、拡大次数nmの拡大体と同等の安全性を有すると判定することを特徴とする請求項28に記載の暗号処理システム。
【請求項30】
前記最小のdを記憶する拡大次数記憶部をさらに備え、
前記第2安全性判定部は、さらに、前記拡大体記憶部に記憶されたdを取得し、前記パラメータ(p,q,m,n)は前記標数p、拡大次数dの拡大体と同等の安全性を有すると判定することを特徴とする請求項29に記載の暗号処理システム。
【請求項31】
パラメータ生成装置で実行されるパラメータ生成方法であって、
トーラス圧縮公開鍵暗号方式で用いられる暗号系が定義される群Gが包含される代数的トーラスTの次数nと、安全性を定める有限体FのサイズWと、前記群GのサイズSの入力を受け付ける入力受付ステップと、
前記代数的トーラスが定義される有限体Fpmの拡大次数mを決定する拡大次数決定ステップと、
前記有限体FのサイズWと、前記代数的トーラスTの次数nと、前記拡大次数mとに基づくビット数の素数pを探索する第1素数探索ステップと、
前記群GのサイズSに基づいて定められるビット数であり、円分多項式Φnm(p)を割り切る素数qを探索する第2素数探索ステップと、
代数的トーラスTの次数nと前記有限体Fpmの拡大次数mとの乗算値nmがqで割り切れるか否かを検査する検査ステップと、
前記乗算値nmがqで割り切れない場合に、前記暗号系が安全性ありと判定する安全性判定ステップと、
前記暗号系が安全性ありと判定された場合に、前記素数pと、前記素数qと、前記代数的トーラスTの次数nと、前記拡大次数mとからなるパラメータ(p,q,n,m)を出力する出力ステップと、
を含むことを特徴とするパラメータ生成方法。
【請求項32】
コンピュータを、
トーラス圧縮公開鍵暗号方式で用いられる暗号系が定義される群Gが包含される代数的トーラスTの次数nと、安全性を定める有限体FのサイズWと、前記群GのサイズSの入力を受け付ける入力受付部と、
前記代数的トーラスが定義される有限体Fpmの拡大次数mを決定する拡大次数決定部と、
前記有限体FのサイズWと、前記代数的トーラスTの次数nと、前記拡大次数mとに基づくビット数の素数pを探索する第1素数探索部と、
前記群GのサイズSに基づいて定められるビット数であり、円分多項式Φnm(p)を割り切る素数qを探索する第2素数探索部と、
代数的トーラスTの次数nと前記有限体Fpmの拡大次数mとの乗算値nmがqで割り切れるか否かを検査する検査部と、
前記乗算値nmがqで割り切れない場合に、前記暗号系が安全性ありと判定する安全性判定部と、
前記暗号系が安全性ありと判定された場合に、前記素数pと、前記素数qと、前記代数的トーラスTの次数nと、前記拡大次数mとからなるパラメータ(p,q,n,m)を出力する出力部と、
して機能させるプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate