JP2010204466A - 暗号装置、復号装置、鍵生成装置及びプログラム - Google Patents

暗号装置、復号装置、鍵生成装置及びプログラム Download PDF

Info

Publication number
JP2010204466A
JP2010204466A JP2009050976A JP2009050976A JP2010204466A JP 2010204466 A JP2010204466 A JP 2010204466A JP 2009050976 A JP2009050976 A JP 2009050976A JP 2009050976 A JP2009050976 A JP 2009050976A JP 2010204466 A JP2010204466 A JP 2010204466A
Authority
JP
Japan
Prior art keywords
polynomial
plaintext
variable
candidate
fibration
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.)
Pending
Application number
JP2009050976A
Other languages
English (en)
Inventor
Koichiro Akiyama
浩一郎 秋山
Yasuhiro Goto
泰宏 後藤
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2009050976A priority Critical patent/JP2010204466A/ja
Priority to US12/560,895 priority patent/US8311215B2/en
Publication of JP2010204466A publication Critical patent/JP2010204466A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3026Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to polynomials generation, e.g. generation of irreducible polynomials
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/34Encoding or coding, e.g. Huffman coding or error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Complex Calculations (AREA)
  • Error Detection And Correction (AREA)

Abstract

【課題】代数曲面を用いた公開鍵暗号方式において、因数分解処理と因数抽出処理の負荷を低減することにより、復号処理の効率化を実現する。
【解決手段】復号装置200は、複数の暗号文Fi(x,y,t)(i=1,…,k)にセクションDを代入するセクション代入部205と、代入後のL組の多項式he(t),hw(t)を互いに減算する1変数多項式演算部206と、減算結果のL個の多項式gj(t)(=he(t)−hw(t))(j=1,…,L)の最大公約式φ(t)を求める最大公約式演算部207とを備えている。従って、高い次数の多項式{h1(t)−h2(t)}を因数分解して因数を抽出した従来とは異なり、高い次数の多項式gj(t)から低い次数の最大公約式φ(t)を求め、低い次数の最大公約式φ(t)を因数分解して因数を抽出するので、上記課題を解決できる。
【選択図】 図2

Description

本発明は、公開鍵暗号システムに用いられる暗号装置、復号装置、鍵生成装置及びプログラムに関する。
ネットワーク社会では、電子メール等の多くの情報がネットワーク上に伝送されることにより、人々のコミュニケーションが行われる。このようなネットワーク社会において、公開鍵暗号は情報の機密性や真正性を守る技術として広く活用されている。
代表的な公開鍵暗号としてはRSA暗号と楕円曲線暗号がある。これらの公開鍵暗号は、一般的な解読法が知られていないため、後述する量子計算機による解読法を除き、安全性に関する重大な問題が見つかっていない。他の公開鍵暗号としてはナップサック暗号と多次多変数暗号などがある。しかしながら、ナップサック暗号は有力な解読法があるため、安全性に疑問がある。多次多変数暗号は、鍵サイズの増大により、有力な攻撃方法を避けられる反面、鍵サイズが膨大になってしまう問題がある。
一方、RSA暗号と楕円曲線暗号は量子計算機が出現すれば解読される可能性が高い。量子計算機は、現在の計算機とは異なり、量子力学におけるエンタングルメントという物理現象を利用して超並列計算を実行可能な計算機である。量子計算機は、実験レベルの仮想の計算機であるが、実現に向けて研究開発が進められている。1994年にショア(Shor)は、量子計算機によれば素因数分解や離散対数問題を効率的に解けることを示した。従って、量子計算機が実現すれば、素因数分解に基づくRSA暗号や、楕円曲線上の離散対数問題に基づく楕円曲線暗号は解読される可能性が高い。
他方、量子計算機が実現されても安全な公開鍵暗号が研究されてきている。一例として、量子公開鍵暗号が挙げられる。量子公開鍵暗号では、現在の計算機では鍵生成が不可能である程に強力なナップサック暗号の鍵を量子計算機により生成する。このため、量子公開鍵暗号では、量子計算機でも計算できない程に強力なナップサック暗号を構成し得る。しかしながら、量子公開鍵暗号は、現在の計算機では鍵生成が不可能であるため、現時点では利用できない。
一方、多次多変数暗号は、現時点でも実現可能であり、量子計算機でも解読が難しい。しかしながら、多次多変数暗号は、前述した通り、膨大な鍵サイズを要するため、実用化が疑問視されている。
更に、公開鍵暗号は、共通鍵暗号と比べ、回路規模が大きく、処理時間が長い。よって、モバイル端末などの小電力環境では実現できないか、実現しても待ち時間が長いという問題がある。このため、小電力環境でも実現できる公開鍵暗号が求められている。
一般に公開鍵暗号は、予め素因数分解問題や離散対数問題などの計算困難な問題を見出し、秘密鍵を知らずに暗号文の解読を試みる場合に当該計算困難な問題を解くことと同等になるように構成する。
しかし、計算困難な問題が見つかっても、その問題を安全性の根拠とする公開鍵暗号を容易に構成できる訳ではない。理由は、計算が困難すぎる問題を安全性の根拠にすると鍵を生成する問題も困難になるので、鍵を生成できないためである。一方、鍵生成が可能な程度に問題を容易にすると、解読も容易になってしまう。
従って、公開鍵暗号を構成するには、計算困難な問題を見つけるとともに、見つけた問題を、鍵生成が容易だが、解読が容易でないという絶妙なバランスを持つ問題に作り変える必要がある。このような問題の作り変えには高い創造性を必要とする。実際には、問題の作り変えが極めて困難なため、数えるほどの公開鍵暗号しか提案されていない。
このような状況において、量子計算機でも効率的に解読できない可能性があり、小電力環境でも高速に処理可能な公開鍵暗号として、代数曲面を用いた公開鍵暗号が提案されている(例えば、非特許文献1参照。)。
代数曲面を用いた公開鍵暗号は、秘密鍵を代数曲面X(x,y,t)に対応する2つのセクションとし、公開鍵を代数曲面X(x,y,t)とする時、平文mを平文多項式m(x,y,t)に埋め込む処理と、因子多項式f(x,y,t)を、ランダムに生成する処理と、3変数x,y,tのランダムな2つの多項式の組si(x,y,t)ri(x,y,t)(i=1,2)を生成する多項式生成処理と、各多項式の組si(x,y,t)ri(x,y,t)(i=1,2)と定義式X(x,y,t)とを加算又は減算する処理により、平文多項式m(x,y,t)から2つの暗号文Fi(x,y,t)=E(m,si,ri,f,X)(i=1,2)を生成する暗号化処理を実行する。
更に、復号処理においては2つの暗号文F1(x,y,t), F2(x,y,t),に秘密鍵であるセクションD:(x,y,t)=(ux(t),uy(t),t)を代入してそれぞれ1変数多項式h1(t),h2(t)を求めるとともに、これらを互いに減算した結果を因数分解して、その因数分解結果からdeg f(ux(t),uy(t),t)を次数に持つ因子を抽出する。この因子は一意に抽出されるとは限らないが、正しい因子多項式f(ux(t),uy(t),t)を抽出できた際には、1変数多項式h1(t),h2(t)のいずれかを因子多項式f(ux(t),uy(t),t)で割ることにより、剰余として正しい平文多項式候補m(ux(t),uy(t),t)が抽出され、正しい平文mが復元される。
一方、因子多項式f(ux(t),uy(t),t)でない因子が抽出された場合は、前述同様の演算により間違った平文m’が復元され、平文に予め埋め込まれた誤り検出符号などを使ってその誤りを見出すことができる。
K. Akiyama, Y. Goto, "An improvement of the algebraic surface public-key cryptosystem", Symposium on Cryptography and Information Security 2009,1F1-1(2009).
しかしながら、以上のような代数曲面を用いた公開鍵暗号は、通常は特に問題が無いが、本発明者の検討によれば、処理全体の効率化を実現することが求められている。
例えば、前述した復号処理においては処理時間の殆どが、因数分解処理と、因数分解結果からdeg f(ux(t),uy(t),t)を次数に持つ因子を抽出する因子抽出処理に掛かる。特に因子抽出処理は因数分解結果により、組み合わせが多大となる場合があり、復号処理時間に大きな違いが生じる。このため、代数曲面を用いた公開鍵暗号は、復号処理の処理時間の殆どを占める因数分解処理と因数抽出処理の負荷を低減し、処理全体の効率化を実現することが求められている。
また、前述した暗号化処理においては、2つの暗号文を作成するための演算処理が4回の乗算と4回の加算によって構成される。また、復号処理においては、セクション代入後の多項式h1(t),h2(t)を互いに減算し、減算結果を因数分解する処理が必須となっている。ここで、暗号化処理又は復号処理のうち、少なくとも一方の演算処理の負荷を低減することが望ましい。
このように本発明者の検討によれば、代数曲面を用いた公開鍵暗号において、このような暗号化処理又は復号処理における演算処理の負荷を低減することにより、処理全体の効率化を実現することが求められている。
本発明は上記実情を考慮してなされたもので、代数曲面を用いた公開鍵暗号において、暗号化処理又は復号処理における演算処理の負荷を低減することにより、処理全体の効率化を実現し得る暗号装置、復号装置、鍵生成装置及びプログラムを提供することを目的とする。
本発明の第1の局面は、体Kの代数曲面X(x,y,t)=0のうち、x,yがtでパラメタライズされた曲線(x,y,t)=(ux(t),uy(t),t)であるセクションが存在する代数曲面XであるファイブレーションX(x,y,t)=0を公開鍵とし、前記ファイブレーションX(x,y,t)に対応する1つ以上のセクションを秘密鍵とする公開鍵暗号方式を用い、前記公開鍵であるファイブレーションX(x,y,t)に基づいて、メッセージmを暗号化するための暗号装置であって、前記メッセージmを3変数の平文多項式m(x,y,t)の係数として埋め込む平文埋め込み手段と、前記平文多項式に前記セクションを代入したときに得られる1変数多項式の次数に比べ、前記セクションを代入したときに得られる1変数多項式の次数が大きくなる範囲で3変数の識別多項式f(x,y,t)を生成する識別多項式生成手段と、3つ以上の多項式の組ri(x,y,t),si(x,y,t)(i=1,…,k)をランダムに生成する多項式生成手段と、前記平文多項式m(x,y,t)に対し、前記識別多項式f(x,y,t)及び多項式si(x,y,t)の乗算結果f(x,y,t)si(x,y,t)と、前記ファイブレーションX(x,y,t)及び多項式ri(x,y,t)の乗算結果X(x,y,t)ri(x,y,t)とを加算又は減算する処理により、3つ以上の暗号文Fi(x,y,t)=E(m,si,ri,f,X)(i=1,…,k)を生成する暗号化手段と、を備えた暗号装置である。
本発明の第2の局面は、体Kの代数曲面X(x,y,t)=0のうち、x,yがtでパラメタライズされた曲線(x,y,t)=(ux(t),uy(t),t)であるセクションが存在する代数曲面XであるファイブレーションX(x,y,t)=0を公開鍵とし、前記ファイブレーションX(x,y,t)に対応する1つ以上のセクションを秘密鍵とする公開鍵暗号方式が用いられ、前記メッセージmが係数として埋め込まれた3変数の平文多項式m(x,y,t)に対し、3変数の識別多項式f(x,y,t)及び多項式s1(x,y,t)の乗算結果f(x,y,t)si(x,y,t)と、前記ファイブレーションX(x,y,t)及び多項式ri(x,y,t)の乗算結果X(x,y,t)ri(x,y,t)とを加算又は減算する処理により生成された3つ以上の暗号文Fi(x,y,t)=E(m,si,ri,f,X)(i=1,…,k)が入力されたとき、前記セクションに基づいて、当該暗号文Fi(x,y,t)(i=1,…,k)から前記メッセージmを復号するための復号装置であって、前記入力された暗号文Fi(x,y,t)(i=1,…,k)のそれぞれに対し、前記セクションを代入して3つ以上の1変数多項式hi(t)(i=1,…,k)を生成するセクション代入手段と、前記各1変数多項式hi(t)(i=1,…,k)の中の2組の相異なる多項式を互いに減算し、減算結果としての複数の多項式gj(t)(j=1,…,L)を得る多項式減算手段と、前記各多項式のgj(t)(j=1,…,L)のうちの2つ以上の多項式の最大公約式φ(t)を求める最大公約式演算手段と、前記最大公約式φ(t)を因数分解する因数分解手段と、前記因数分解の結果により生じた因子を組合せることによって丁度deg f(ux(t),uy(t),t)を次数に持つ全ての識別多項式候補f(ux(t),uy(t),t)を抽出する多項式抽出手段と、前記1変数多項式hi(t)(i=1,…,k)のうち、少なくとも1つの1変数多項式hi(t)を前記識別多項式候補f(ux(t),uy(t),t)で除算し、剰余として平文多項式候補m(ux(t),uy(t),t)を得る剰余演算手段と、前記平文多項式候補m(ux(t),uy(t),t)と、前記平文多項式m(x,y,t)の予め公開されたフレームとに基づいて当該平文多項式m(x,y,t)の係数を変数とする連立1次方程式を導き、この連立1次方程式を解くことにより平文候補Mを生成する平文候補生成手段と、前記平文候補Mに含まれる誤り検出符号により真の平文であるか否かを検査する平文多項式検査手段と、前記検査の結果、真の平文である平文候補Mがあった場合に当該平文候補Mを平文として出力する出力手段と、を備えた復号装置である。
本発明の第3の局面は、体Kの代数曲面X(x,y,t)=0のうち、x,yがtでパラメタライズされた曲線(x,y,t)=(ux(t),uy(t),t)であるセクションが存在する代数曲面XであるファイブレーションX(x,y,t)=0を公開鍵とし、前記ファイブレーションX(x,y,t)に対応する1つ以上のセクションを秘密鍵とする公開鍵暗号方式に関し、前記公開鍵であるファイブレーションX(x,y,t)と、前記秘密鍵であるセクションとを生成するための鍵生成装置であって、前記ファイブレーションX(x,y,t)の定数項以外の項の次数degt X’及び前記ファイブレーションX(x,y,t)の2変数x,yの係数集合ΛXを入力する手段と、前記セクションをランダムに生成するセクション生成手段と、前記生成されたセクション及び前記入力された次数degt X’及び係数集合ΛXに基づいて、前記代数曲面のファイブレーションX(x,y,t)を変数x,yの多項式としてみたときに定数項以外の項の係数をランダムに生成することにより、定数項以外の項を生成する係数生成手段と、前記定数項以外の項に前記セクションを代入して得られる代入結果に負の符号を付すことにより前記定数項を計算する定数項計算手段と、前記定数項以外の項の次数degt X’及び前記定数項の次数degt a00のうち、いずれか大きい方の次数をファイブレーションの次数degt Xに決定し、前記定数項以外の項及び前記定数項からなるファイブレーションX(x,y,t)を生成するファイブレーション生成手段と、前記ファイブレーションの次数degt X及び係数集合ΛXに基づき、条件“degt X < degt m < degt f”及び“(degx f,degy f)∈Λf”の範囲で、識別多項式の次数degt f及び2変数x,yの係数集合Λfをランダムに生成する手段(但し、degt mは平文多項式の変数tの次数、degt fは識別多項式の変数tの次数、degx fは識別多項式の変数xの次数、degy fは識別多項式の変数yの次数)と、前記係数集合Λf,ΛXの積ΛfΛXを計算し、この計算結果の部分集合で且つ条件“(degx m,degy m,degt m)∈Γm”の範囲で、平文多項式の2変数x,yの係数集合Λmを決定する手段(但し、Γmは、平文多項式m(x,y,t)に含まれる非零の単項式の(x指数,y指数,t指数)の集合)と、前記平文多項式の次数degt mを、条件“degt X <degt m < degt f”の範囲で決定する手段と、前記係数集合Λfに含まれる各要素(i,j)に基づき、要素(i,j)=(degx f, degy f)の場合にはdeg fij(t)=degt fとして前記識別多項式の係数の次数fij(t)を決定し、要素(i,j)≠(degx f, degy f)の場合には0≦deg fij(t)≦degt fの範囲でランダムに前記次数fij(t)を決定することにより、前記係数集合Λf及び前記次数fij(t)からなる識別多項式のフレームFRfを決定する手段と、前記代数曲面から係数集合ΛXとΛXの要素(i,j)に対応する係数の次数deg aij(t)を抽出し、この係数集合ΛX及び係数の次数deg aij(t)から代数曲面のフレームFRXを生成する手段と、前記各フレームFRf,FRXを互いに積算してフレームFRg(=FRf FRX)を生成する手段と、前記平文多項式の係数集合Λmに含まれる要素(i,j)に対応する係数の次数deg mij(t)をdeg mij(t)=min{degt m, deg gij(t)}に決定する手段と、前記係数集合Λm及び次数deg mij(t)からなるフレームであって、係数mijkを変数とした平文多項式のフレームに対し、前記セクションを代入するセクション代入手段と、前記代入した結果得られる変数mijkを順序付けして変数ベクトル(m000,m001,…,mijk,…)を生成する手段と、前記代入した結果得られる1変数多項式m(ux(t),uy(t),t)をtに関して整理し、tの係数mijkux(t)iuy(t)jとなる多項式を抽出する係数抽出手段と、前記変数ベクトル(m000,m001,…,mijk,…)との積が丁度前記tの係数mijkux(t)iuy(t)jとなるように係数行列を生成する係数行列生成手段と、前記係数行列の階数を計算する係数行列計算手段と、前記階数が前記変数ベクトルの次元数と一致しない場合に、前記1変数多項式m(ux(t),uy(t),t)の一部の変数mijkを定数にする変数調整手段と、前記階数が前記変数ベクトルの次元数と一致した場合の1変数多項式m(ux(t),uy(t),t)に対応する3変数多項式m(x,y,t)のフレームを平文多項式のフレームFRmとして出力する出力手段と、を備えた鍵生成装置である。
本発明の第4の局面は、体Kの代数曲面X(x,y,t)=0のうち、x,yがtでパラメタライズされた曲線(x,y,t)=(ux(t),uy(t),t)であるセクションが存在する代数曲面XであるファイブレーションX(x,y,t)=0を公開鍵とし、前記ファイブレーションX(x,y,t)に対応する1つ以上のセクションを秘密鍵とする公開鍵暗号方式を用い、前記公開鍵であるファイブレーションX(x,y,t)に基づいて、メッセージmを暗号化するための暗号装置であって、前記メッセージmを3変数の平文多項式m(x,y,t)の係数として埋め込む平文埋め込み手段と、前記平文多項式に前記セクションを代入したときに得られる1変数多項式の次数に比べ、前記セクションを代入したときに得られる1変数多項式の次数が大きくなる範囲で3変数の識別多項式f(x,y,t)を生成する識別多項式生成手段と、2つの多項式の組r1(x,y,t),s1(x,y,t),r2(x,y,t),s2(x,y,t)をランダムに生成する多項式生成手段と、前記平文多項式m(x,y,t)に対し、前記識別多項式f(x,y,t)及び多項式s1(x,y,t)の乗算結果f(x,y,t)s1(x,y,t)と、前記ファイブレーションX(x,y,t)及び多項式r1(x,y,t)の乗算結果X(x,y,t)r1(x,y,t)とを加算又は減算する処理により、1つの暗号文F1(x,y,t)=E(m,s1,r1,f,X)を生成する第1の暗号文生成手段と、前記平文多項式m(x,y,t)を用いずに、前記識別多項式f(x,y,t)及び多項式s2(x,y,t)の乗算結果f(x,y,t)s2(x,y,t)と、前記ファイブレーションX(x,y,t)及び多項式r2(x,y,t)の乗算結果X(x,y,t)r2(x,y,t)とを加算又は減算する処理により、1つの暗号文F2(x,y,t)=E(s2,r2,f,X)を生成する第2の暗号文生成手段と、を備えた暗号装置である。
本発明の第5の局面は、体Kの代数曲面X(x,y,t)=0のうち、x,yがtでパラメタライズされた曲線(x,y,t)=(ux(t),uy(t),t)であるセクションが存在する代数曲面XであるファイブレーションX(x,y,t)=0を公開鍵とし、前記ファイブレーションX(x,y,t)に対応する1つ以上のセクションを秘密鍵とする公開鍵暗号方式が用いられ、前記メッセージmが係数として埋め込まれた3変数の平文多項式m(x,y,t)に対し、3変数の識別多項式f(x,y,t)及び多項式s1(x,y,t)の乗算結果f(x,y,t)s1(x,y,t)と、前記ファイブレーションX(x,y,t)及び多項式r1(x,y,t)の乗算結果X(x,y,t)r1(x,y,t)とを加算又は減算する処理により生成された1つの暗号文F1(x,y,t)=E(m,s1,r1,f,X)と、前記平文多項式m(x,y,t)を用いずに、前記識別多項式f(x,y,t)及び多項式s2(x,y,t)の乗算結果f(x,y,t)s2(x,y,t)と、前記ファイブレーションX(x,y,t)及び多項式r2(x,y,t)の乗算結果X(x,y,t)r2(x,y,t)とを加算又は減算する処理により生成された1つの暗号文F2(x,y,t)=E(s2,r2,f,X)とからなる2つの暗号文F1(x,y,t),F2(x,y,t)が入力されたとき、前記セクションに基づいて、当該暗号文F1(x,y,t),F2(x,y,t),から前記メッセージmを復号するための復号装置であって、前記入力された暗号文F1(x,y,t),F2(x,y,t)のそれぞれに対し、前記セクションを代入して2つの1変数多項式h1(t),h2(t)を生成するセクション代入手段と、前記各1変数多項式h1(t),h2(t)のうち、暗号文F2(x,y,t)から生成された1変数多項式h2(t)を因数分解する因数分解手段と、前記因数分解の結果により生じた因子を組合せることによって丁度deg f(ux(t),uy(t),t)を次数に持つ全ての識別多項式候補f(ux(t),uy(t),t)を抽出する多項式抽出手段と、前記1変数多項式h1(t),h2(t)のうち、暗号文F1(x,y,t)から生成された1変数多項式h1(t)を前記識別多項式候補f(ux(t),uy(t),t)で除算し、剰余として平文多項式候補m(ux(t),uy(t),t)を得る剰余演算手段と、前記平文多項式候補m(ux(t),uy(t),t)と、前記平文多項式m(x,y,t)の予め公開されたフレームとに基づいて当該平文多項式m(x,y,t)の係数を変数とする連立1次方程式を導き、この連立1次方程式を解くことにより平文候補Mを生成する平文候補生成手段と、前記平文候補Mに含まれる誤り検出符号により真の平文であるか否かを検査する平文多項式検査手段と、前記検査の結果、真の平文である平文候補Mがあった場合に当該平文候補Mを平文として出力する出力手段と、を備えた復号装置である。
なお、第1乃至第5の各局面は、装置として表現したが、装置に限らず、方法、プログラム、プログラムを記憶したコンピュータ読取り可能な記憶媒体として表現してもよい。
(作用)
第1乃至第3の局面においては、高い次数の多項式{h1(t)−h2(t)}を因数分解して因数を抽出した従来とは異なり、高い次数の多項式hi(t)から低い次数の最大公約式φ(t)を求め、低い次数の最大公約式φ(t)を因数分解して因数を抽出するための暗号装置、復号装置及び鍵生成装置を実現させている。
従って、第1乃至第3の局面によれば、代数曲面を用いた公開鍵暗号方式において、低い次数の最大公約式φ(t)を用いて因数分解処理と因数抽出処理の負荷を低減することにより、復号処理における演算処理の負荷を低減でき、処理全体の効率化を実現することができる。
第4の局面においては、代数曲面を用いた公開鍵暗号方式において、従来とは異なり、平文多項式m(x,y,t)を用いずに第2の暗号文F2(x,y,t)を生成することから、平文多項式m(x,y,t)に対する加算又は減算処理を1回省略できるので、暗号処理における演算処理の負荷を低減でき、もって、処理全体の効率化を実現することができる。
第5の局面によれば、代数曲面を用いた公開鍵暗号方式において、従来とは異なり、平文多項式m(x,y,t)を用いない第2の暗号文F2(x,y,t)から生成した多項式h2(t)を因数分解することから、従来の平文多項式m(ux(t),uy(t),t)をキャンセルするための減算処理{h1(t)−h2(t)}を省略して因数分解を実行できるので、復号処理における演算処理の負荷を低減でき、もって、処理全体の効率化を実現することができる。
以上説明したように本発明によれば、代数曲面を用いた公開鍵暗号において、因数分解処理と因数抽出処理の負荷を低減することにより、復号処理の効率化を実現できる。
以下、本発明の各実施形態について図面を用いて説明する。
各実施形態における代数曲面は体K上定義された連立(代数)方程式の解の集合のうち2次元の自由度を持ったものと定義される。例えば、次の式(1)に示す体K上の連立方程式は5つの変数を束縛する3つの方程式があることから、2次元の自由度を持っているので、代数曲面となる。
Figure 2010204466
特に、式(2)に示す如き、3変数のK上代数方程式の解の集合として定義される空間もK上の代数曲面となる。
f(x,y,z)=0 (2)
なお、式(1)、式(2)に示した代数曲面の定義式はアフィン空間におけるものである。射影空間における代数曲面の定義式は(式(2)の場合)f(x,y,z,w)=0である。
しかし、各実施形態では代数曲面を射影空間で扱うことがないので代数曲面の定義式を式(1)若しくは式(2)とした。但し、射影空間で表現しても各実施形態はそのまま成立する。
一方、代数曲線は体K上定義された連立(代数)方程式の解の集合のうち1次元の自由度を持ったものである。よって、例えば次式のように定義される。
g(x,y)=0
本実施形態においては式(2)のように1つの式で書ける代数曲面のみを扱うので、以下では式(2)を代数曲面の定義方程式のごとく扱う。
体とは加減乗除が自由にできる集合である。実数、有理数、複素数は体に該当する。整数や行列など、0以外に除算ができない元を含む集合は体に該当しない。体の中には有限体と呼ばれる有限個の元から構成される体がある。例えば素数pに対し、pを法とする剰余類Z/pZは体をなす。このような体は、素体と呼ばれ、Fpなどと書かれる。有限体にはこの他に素数の冪乗個の元を持つ体Fq(q=pr)がある。但し、本実施形態では、簡単のため、主に素体Fpのみを扱う。一般に素体Fpのpは素体Fpの標数と呼ばれる。
一方、一般の有限体を扱う場合でも各実施形態は自明な変形を施すことによって同様に成立する。公開鍵暗号はメッセージをデジタルデータとして埋め込む必要から有限体上で構成することが多い。本実施形態においても同様に有限体(本実施形態では特に素体)Fp上定義された代数曲面を扱う。
代数曲面f(x,y,z)=0上には図1に示すように、通常、代数曲線が複数存在する。このような代数曲線は代数曲面上の因子と呼ばれる。
一般に代数曲面の定義式が与えられた時に(非自明な)因子を求める問題は、現代の数学でも未解決の難問であり、後述するような多次多変数連立方程式を解いたり、総当りで求めるなどの原始的な方法を除けば、一般的な解法が知られていない。特に本実施形態で扱うような有限体で定義された代数曲面においては、有理数体などの無限体(無限個の元からなる体)と比較しても手掛かりが少なく、より難しい問題であることが知られている。
本実施形態ではこの問題を代数曲面上の求因子問題もしくは単に求因子問題と呼び、代数曲面上の求因子問題に安全性の根拠をおく公開鍵暗号を構成する。
さて、体K上の代数曲面X: f(x,y,z)=0のうち、
h(x,y,t)=0
と定義され、セクションと呼ばれるx,yがtでパラメタライズされた曲線
(x,y,t)=(ux(t),uy(t),t)
が存在するようなフレームに表現された代数曲面を代数曲面Xのファイブレーションといい、Xtなどと表す。なお、以下では、ファイブレーションであることが明らかであるので、単にXと表す。
また、パラメータtに体Kの元t0を代入して得られる代数曲線はファイバーと呼ばれ、Xt0のように表される。ファイバーとセクションは共に代数曲面Xtの因子である。
一般に代数曲面のファイブレーションが与えられたとき、それに対応するファイバーは(tに体の元を代入することにより)直ちに求まるが、対応するセクションを求めることは極めて難しい。このため、ファイバーは自明な因子であり、セクションは非自明な因子であると言える。
各実施形態の公開鍵暗号は、代数曲面上の求因子問題のうち、特に代数曲面XのファイブレーションXtが与えられたとき、セクションを求める問題に安全性の根拠をおく。
ファイブレーションからセクションを求めるには現代の数学においても次の(i)から(iv)の手順による方法しか知られていない。
(i) セクション(ux(t),uy(t),t)を
deg ux(t) < rx,deg uy(t) < ry
と仮定した上で、ux(t),uy(t)を次式のようにおく。
Figure 2010204466
(iv) 連立方程式系を解く。
次に、代数曲面上の求セクション問題に基づく各実施形態の公開鍵暗号を具体的に説明する。
(各実施形態の公開鍵暗号)
(用語の定義)
始めに、用語を定義する。3変数多項式ξ(x,y,t)の変数xに関する次数をdegX ξ(x,y,t)、変数yに関する次数をdegyξ(x,y,t)、変数tに関する次数をdegtξ(x,y,t)と表す。
3変数多項式ξ(x,y,t)を表現するとき
Figure 2010204466
の2通りの表現方法を用いる。ここで、Γξは多項式ξ(x,y,t)に含まれる非零の単項式の(x指数,y指数,t指数)の集合と定義され、ξの(3変数)係数集合と呼ぶ。Λξは多項式ξ(x,y,t)をx,yの多項式としてみた時の非零の項の(x指数,y指数)の集合と定義され、ξの(2変数)係数集合と呼ぶ。
また、(2変数)係数集合Λξと(2変数)係数集合Ληの積ΛξΛηは、
ΛξΛη={(i1+i2, j1+j2)|(i1, j1)∈Λξ,(i2, j2)∈Λη
と定義され、3変数多項式ξ(x,y,t)η(x,y,t)の(2変数)係数集合を意味する。(3変数)係数集合の積集合も同様に定義される。
3変数多項式ξ(x,y,t)のフレームFRξとは、
Figure 2010204466
において、(2変数)係数集合Λξと係数集合Λξの各要素(i,j)に対応する係数ξij(t)の最大次数degξij(t)のみが定まっているものを言う。また、フレームFRξとフレームFRηの積FRξFRηは以下のように定義される。
Figure 2010204466
において、
Λψ=ΛξΛη
(i,j)∈Λψ ⇒ degψij(t)=degξij(t)+degηij(t)
(第1の実施形態の概要)
本実施形態の公開鍵暗号は、以下の2つのシステムパラメータp,dを持っている。
1. 有限体のサイズ:p
2. (秘密鍵である)セクションの最高次数:d=max{deg ux(t),deg uy(t)} (3)
また、公開鍵は、以下の3つである。
Figure 2010204466
秘密鍵は、以下のセクションDである。
1. Fp 上の代数曲面Xのセクション: D: (x,y,t)=(ux(t),uy(t),t)
但し、平文多項式、識別多項式それぞれのフレームは、
Figure 2010204466
と条件(5)を満たすように定める。
Λm⊂ΛfΛX (5)
これらは期待される安全性を実現するための条件である。また、復号のための条件
deg m(ux(t),uy(t),t) < deg f(ux(t),uy(t),t) (6)
は、条件(4)を満たせば次数の関係から、あらゆるセクションに対して必然的に満たされることが分かる。
これらのパラメータは後述する方法(鍵生成方法)で容易に求めることができる。
暗号化処理の概要を述べる。暗号化処理ではまず暗号化したいメッセージ(以下では平文と呼ぶ)をブロック分割してm=m00‖m10‖…‖mijとする。なお、‖は連接を表す。ここで、L=deg mij(t)としたとき、
|mij|≦(|p|−1)(L+1)とし、mij(t)のtkの係数mijkは上記mijを|p|−1ビット毎に分割したものとする。即ち、
mij=mij0‖mij1‖…‖mijL
ここで|p|はpのビット長を表している。このようにして平文を次式に示す如き平文多項式m(x,y,t)に埋め込む。
Figure 2010204466
尚、各実施形態のメッセージには誤り検出符号が含まれているとしている。誤り検出符号は送信上に生じたノイズなどの影響でメッセージの一部が毀損したときにそれを検出する機能を持つ。誤り検出符号として特にハッシュ関数によるハッシュ値を取ってもよい。
次に、Fp上の識別多項式f(x,y,t)を定められたフレームでランダムに生成する。続いて多項式ri(x,y,t),si(x,y,t)をランダムに生成して、3変数多項式m(x,y,t),f(x,y,t)及び公開鍵である代数曲面XのファイブレーションX(x,y,t)から3つ以上の暗号文Fi(x,y,t)を計算する。
Fi(x,y,t)=m(x,y,t)+f(x,y,t)si(x,y,t)+X(x,y,t)ri(x,y,t) (7)
ここで、i=1…kとし、kは3以上とする。
なお、非特許文献1で開示されている暗号方式は、k=2である。これは後で述べるように、k≦3とすることによって、因数分解すべき多項式の次数を絞り込み、復号処理時間の掛かる因数分解処理、因数抽出処理の時間を削減するためのものである。
暗号文Fi(x,y,t)(i=1…k)を受け取った受信者は、所有する秘密鍵であるセクションDを利用して次のように復号を行う。まず、セクションDを暗号文F(x,y,t)に代入する。ここで、セクションDを代数曲面X(x,y,t)に代入する。
X(ux(t),uy(t),t)=0,
なる関係があることに注意する。そうすれば、
hi(t)=Fi(ux(t),uy(t),t)
=m(ux(t),uy(t),t)+f(ux(t),uy(t),t)si(ux(t),uy(t),t)
という関係を持つk個の式hi(t)(i=1…k)が求まることが分かる。次に、k個の多項式のうち、互いに異なる2式を辺々引き算して、複数の多項式gj(t)を計算する。
gj(t)=f(ux(t),uy(t),t){sa(ux(t),uy(t),t)−sb(ux(t),uy(t),t)} (8)
ここで、1≦a≠b≦kである。
次に、複数の多項式gj(t)の最大公約式φ(t)を求め、これを因数分解して、deg f(ux(t),uy(t),t)を次数に持つ因子f(ux(t),uy(t),t)を抽出する。ここで、このような因子は一意的に求まるとは限らないが、正しい因子f(ux(t),uy(t),t)が抽出できた際には、条件(6)からhi(t)(i=1…k)のいずれかを因子f(ux(t),uy(t),t)で割ることにより、剰余として正しい平文多項式候補m(ux(t),uy(t),t)が抽出される。
正しい平文多項式候補m(ux(t),uy(t),t)が求められた場合、そこから平文mを以下の手段で導出する。平文多項式m(x,y,t)
Figure 2010204466
とおき、平文候補多項式m(ux(t),uy(t),t)と、mijkux(t)iuy(t)jtkとが等しいことからtkの係数比較により、mijkを変数とする連立1次方程式が得られる。
実際、
m(ux(t),uy(t),t)=mijkux(t)i uy(t)j tk
の両辺はmijk以外の変数はtのみであり、
Figure 2010204466
から変数tの係数を比較することにより、連立1次方程式
aτ(…,mijk,…)=cτ(1≦τ≦K)
を得る。これを解くことによりmijkが求まる。ここで、式の個数と変数の個数の関係によってはmijkが一意的に定まらないこともある。この問題は公開鍵の1つである平文多項式のフレームの定め方で解決するが、詳しくは鍵生成手法の部分で述べる。
ここで、求められた平文が正しいものであるか否かは平文に埋め込まれた誤り検出符号で確認する。
しかし、識別多項式f(ux(t),uy(t),t)の候補が複数ある場合は必ずしも、ここで得られた平文が真の平文とは限らない。そこで、前述した手法で抽出された平文について誤り検出符号によるチェックを行ない、検査に成功(即ち、誤り検出符号によって誤りとならなかった)候補を平文とする。
一方、識別多項式f(ux(t),uy(t),t)でない因子が抽出された場合は、前述同様の演算により間違った平文m’が復元され、平文に予め埋め込まれた誤り検出符号などを使ってその誤りを見出すことができる。
復号処理においては、複数の因子の候補が出現するが、本実施形態の復号方式は非特許文献1で開示されている復号方式よりも効率的である。なぜならば非特許文献1で開示されている復号方式は2つの暗号文F1,F2から構成されているため、1つの減算結果g1(t)=h1(t)−h2(t)しか導出できないため、ここから最大公約式を計算することができず、g1(t)そのものを因数分解するしかなかった。一般にg1(t)の方が本実施形態で計算される最大公約式φ(t)よりも次数が高いため、因数分解処理の処理時間が掛かる。更に、因数分解した結果の因子も多いため、因数抽出処理に処理時間が掛かる。特に後者の因数抽出処理はdeg f(ux(t),uy(t),t)を次数に持つ多項式を抽出するため、以下の例のように多くの組み合わせが生じる。
例えば、deg f(ux(t),uy(t),t)=5のとき、
g1(t)=(t3+1)(t2+t+1)t(t+1)(t+2)(t+3)(t+4)
とすれば、次数の種類が3, 2, 1, 1, 1, 1, 1であるので、次数の組み合わせとして
5=3+2,3+1+1,2+1+1+1,1+1+1+1+1
が考えられる。この問題は一般には数列から所定の値を持つ部分和を求めるという部分和問題となり、極めて困難な問題となる。従って、非特許文献1で開示された暗号方式では十分計算可能な範囲ではあるものの、(因数分解結果によっては)高速に演算することができない場合がある。
これに対して本実施形態の復号方式は暗号方式において3つ以上の暗号文Fi(i=1…k)を用いるため、複数の減算結果gj(t)(j=1, …,L)が導出でき、それらの最大公約式φ(t)から、より次数の低い多項式が得られるため、非特許文献1で開示された暗号方式よりも高速に復号できる。
尚、ここで最大公約式の計算はユークリッドの互除法と呼ばれる演算で計算でき、同演算は非常に高速に演算できる。更に因数分解も対象となる多項式が1変数多項式であるため、容易であることが知られており、十分有効な時間内に処理可能である。
ところで、識別多項式f(ux(t),uy(t),t)の候補が複数ある場合は必ずしも、ここで得られた平文が真の平文とは限らない。そこで、全ての識別多項式f(ux(t),uy(t),t)の候補から、前述した手法で抽出された平文について誤り検出符号によるチェックを行ない、検査に成功(即ち、誤り検出符号によって誤りとならなかった)候補を平文とする。
この検査に成功した候補が1つも無かった場合は復号失敗として処理する。このような場合は理論的には有り得ないが、送信側の計算ミスや伝送路上での改竄などの何らかの理由により正しくない暗号文を受信したことより起こる可能性がある。
最後に本実施形態における鍵生成方法を説明する。本実施形態の鍵生成方法は代数曲面及びパラメータの生成、識別多項式のフレームの生成、平文多項式のフレームの生成からなり、この順に実行される。
始めに、代数曲面及びパラメータの生成手法から説明する。同生成方法の入力はシステムパラメータp, d, degt X’, Λxである。ここで、degt X’は代数曲面Xから定数項を除いた多項式X’(=X−a00(t))の次数である。これらは公開鍵となる代数曲面のパラメータであり、求セクション問題が十分困難となるように選択されている。まず、代数曲面の生成手法を説明する。代数曲面の生成はセクションDをランダムに選び、それに対応したファイブレーションを計算することによって行う。
始めに、システムパラメータp, d, degt X’, Λxに基づいて、代数曲面のファイブレーション
Figure 2010204466
によって定数項a00(t)を決定する。また、
degt X = max{degt X’, deg a00(t)}
によってdegt Xを決定する。
次に、識別多項式と平文多項式のパラメータ生成手法を説明する。まず、識別多項式のパラメータdegt f, Λfをdegt X, ΛXに基づいて条件(4)の範囲でランダムに生成する。次に、ΛfΛXを計算し、平文多項式の係数集合Λmをその部分集合で且つ条件(4)を満たす範囲で決定する。ここで、条件(4)を満たす係数集合Λmが存在しない場合は、パラメータdegt f, Λfの生成からやり直す。次に、degt mを
degt X <degt m < degt f
の範囲で決定する。ここで、degt f =(degt X)+1である場合など前記条件を満たすdegt mができないときは、degt f, Λfの決定からやり直す。
以上で、代数曲面及びパラメータの生成方法の説明を終了する。
続いて、識別多項式のフレームの生成手法について説明する。識別多項式のフレームの生成は、前述したパラメータに基づいて、係数集合Λfに含まれる各要素(i,j)に対するdeg fij(t)を決定することで行う。但し、要素(i,j)=(degx f, degy f)の場合はdeg fij(t)=degt fとし、それ以外の場合は0≦deg fij(t)≦degt fの範囲でランダムに生成する。これで識別多項式のフレームFRfが決定された。
次に、平文多項式のフレームの生成手法について説明する。代数曲面は既に生成されているので、これから係数集合ΛXとΛXの要素(i,j)に対応する係数の次数deg aij(t)を抽出することにより代数曲面のフレームFRXを導出する。続いて各フレームFRf,FRXからFRg(=FRf FRX)を計算する。ここで、係数集合Λmは、このフレームFRgに対応する係数集合Λg(=ΛX Λf)の部分集合になっている。そこで、以下のように係数集合Λmに含まれる要素(i,j)に対応する係数の次数deg mij(t)をdeg mij(t)=min{degt m, deg gij(t)}に決定する。これにより、条件(4)が実現できる。
平文多項式m(x,y,t)の生成において重要な点はセクションによってできる連立1次方程式に一意解を持たせることである。このために、生成した代数曲面のセクション(x,y,t)=(u(t),uy(t),t) に基づいて以下のような処理を行なう。まず、前述したように定めたフレームFRmにセクションを代入して、
Figure 2010204466
における変数tτの係数であり、有限体Fpの元である。また行列Aは変数ベクトル(m000,m001,…,mijk,…)において変数mijkがΚ番目の要素として表現されている場合、行列Aではtτの係数としてのmijkが非零の元として出現している場合は行列Aの(τ,Κ)成分にその係数、出現しない場合は(τ,Κ)成分に0として表現された行列である。即ち、変数ベクトル(m000,m001,m002,m010,m011,m012)に対して
Figure 2010204466
となる。さて、本連立1次方程式が如何なるc0,c1,…,cKが生じても一意解を持つ必要十分条件は線形代数の理論により変数ベクトル(m000,m001,m002,m010,m011,m012)の次元数が行列Aの階数と等しくなることである。
よって、行列Aの階数を計算すると共に、その階数が変数ベクトルの次元数と一致しないときにはtの上位次数に対応したmijkに零などの定数を代入して変数の数を段階的に引き下げていくことにより、一意性が達成できる。実際、前記連立1次方程式は解が存在するので、本実施形態において作成される行列Aは階数が変数ベクトルの次元数よりも大きくなることはない。なぜなら、もし階数が変数ベクトルの次元数よりも大きくなった場合は線形代数の理論により対応する連立1次方程式に解がなくなる。よって行列の階数は必ず変数ベクトルの次元数以下となる。そこで、階数と変数ベクトルの次元数の一致させるためには、変数ベクトルの次元数を段階的に下げていく調整が必要となる。ここで0とした変数mijkには平文を埋め込むことができないため、各(i,j)において非零でよいmijkにおけるkの最大値を持ってmij(t)の次数と定める。このことにより、平文多項式のフレームが定まる。但し、条件(4)を満たすためにいずれかのmij(t)の上位の項を非零とする必要がある。
以上で、平文多項式のフレームの決定手法の説明を終了し、もって鍵生成手法の説明も終了する。
<第1の実施形態のバリエーション>
最後に本実施形態におけるいくつかのバリエーションを述べる。各バリエーションは任意の組合せで同時に実施できるが、説明の便宜上、各バリエーションを個別に実施した場合を説明する。尚、以下ではri(x,y,t)(i=1,…,k)を区別する必要がない共通の事象の場合には単にr(x,y,t)と書き、si(x,y,t)(i=1,…,k)を区別する必要がない共通の事象の場合には単にs(x,y,t)と書くこととする。暗号文Fi(x,y,t)についても同様とする。
第1のバリエーションは、暗号化処理において、暗号文を生成する式(7)の変形に関するバリエーションである。式(7)は、例えば
F(x,y,t)=m(x,y,t)−f(x,y,t)s(x,y,t)−X(x,y,t)r(x,y,t)
のように変形しても同様に暗号化/復号が可能である。このように本発明の趣旨に反しない範囲で暗号化の式を変形し、それに伴い復号処理を変更することは可能であり、本発明の範囲に含まれる。
第2のバリエーションは暗号化処理において、識別多項式f(x,y,t)を既約多項式とする方式である。
本実施形態においては識別多項式には既約多項式という制約を設けなかったが、既約多項式であれば、2つの暗号文にセクションを代入してできる2つの1変数多項式から計算できるf(ux(t),uy(t),t){s1(ux(t),uy(t),t)−s2(ux(t),uy(t),t)}から因数分解によってf(ux(t),uy(t),t)が既約多項式として抽出される可能性があるだけでなく、確率的に因子の数が少なくなり、f(ux(t),uy(t),t)の抽出が容易となる。
第3のバリエーションは、暗号化処理において、平文mを識別多項式f(x,y,t)にも埋め込む方式である。前述した実施形態では識別多項式をランダムに生成する方式を示したが、秘密鍵なしにf(x,y,t)を求めることが困難であることも本実施形態の公開鍵暗号の性質であるから、識別多項式にも平文情報を埋め込む方式が実現可能である。逆に、本バリエーションのようにf(x,y,t)にも平文を埋め込む場合、より大きなサイズの平文を一度に暗号化できるという効果もある。但し、第2のバリエーションと共に実施する場合は、埋め込んだ結果であるf(x,y,t)を既約多項式とする必要から、特定の係数にはランダムな係数が埋め込まれるように予め定めておく必要がある。既約多項式は極めて多く存在するため、一部の係数に平文を埋め込んだとしても、ほとんどの場合、既約多項式を得ることができる。
第4のバリエーションは、暗号化処理において、項f(x,y,t)s(x,y,t)と、項X(x,y,t)r(x,y,t)とがx,yの多項式として同じ同類項を含み、かつそれらの係数となるtを変数とする1変数多項式の次数を一致させるように、ランダム多項式s(x,y,t),r(x,y,t)を生成する方式である。このバリエーションによれば暗号文の上からは、f(x,y,t)s(x,y,t)の項と、X(x,y,t)r(x,y,t)の項との区別がつかないため安全性が高まる。更に、m(x,y,t)に関しても同様にx,yの多項式としてみたとき、X(x,y,t)r(x,y,t)(あるいはf(x,y,t)s(x,y,t))の同類項に含まれ、その係数の次数もX(x,y,t)r(x,y,t)に含まれる当該同類項の次数よりも低いことが満たされると、よりm(x,y,t)がX(x,y,t)r(x,y,t)の項と識別不能となるため、安全性が高まる。
第5のバリエーションは、復号処理において、正しい平文が2つ以上計算される場合に対応したものである。本実施形態では、最大公約式φ(t)を因数分解して、次数が丁度deg f(ux(t),uy(t),t)となるように因子を組合せることにより識別多項式f(ux(t),uy(t),t)の候補を得ている。次に、これに対応した平文候補Mを計算し、当該平文候補Mに含まれる誤り検出符号によって、当該平文候補が正しいものであるか否かを判定し、正しいと判定された場合には処理をそこで止めて、平文を出力していた。これに対し本バリエーションでは全ての識別多項式の候補から平文候補を計算し、前述した検査を行い、検査に成功(即ち、誤り検出符号で誤りが検出されなかった)平文候補のみを記録する。
このとき、全ての識別多項式の候補に伴う処理が終了した時点で、当該候補が複数ある場合や1つも無かった場合は復号失敗として処理する。このように構成することで、誤り検出符号の能力が低い場合や偶然の一致などによって平文が2つ以上計算されてしまう場合の誤りに備えることができる。
第6のバリエーションは、復号処理において、複数のセクションを利用する方式である。本実施形態では1つのセクションのみを利用していたが、複数のセクションを利用することにより誤り検出符号を用いることなく、正しい平文を計算することができる。複数のセクションを利用する場合はセクション毎に本実施形態の復号処理を行ない、出力された平文候補の集合の共通分となる平文を正しい平文として出力することができる。一方、更にセクションによっては(確率的にはほとんど無視できる範囲ではあるが)復号演算において、
si(ux(t),uy(t),t)−sj(ux(t),uy(t),t)=0
となり、平文候補が1つも求まらない可能性もある。このようなときにも本バリエーションは有用である。尚、第5のバリエーションと併せて実施することも可能である。
ここで、第6のバリエーションを実現するために複数のセクションを持つ代数曲面の生成手法を説明しなければならない。以下では2つのセクションD1,D2を持つ代数曲面を生成する鍵生成手法について述べる。
本鍵生成はセクションD1,D2をランダムに選び、それに対応したファイブレーションを計算することによって行う。但し、生成された代数曲面が2つのセクションを同時に持つようにするために以下のような工夫が必要となる。代数曲面(のファイブレーション)を次式のように書く。
Figure 2010204466
ここで、セクションD1,D2
1:(x,y,t)=(ux(t),uy(t),t),
2:(x,y,t)=(vx(t),vy(t),t)
とおいて代数曲面Xに代入し、
Σ(i,j)ij(t)ux(t)iuy(t)j=0
Σ(i,j)ij(t)vx(t)ivy(t)j=0
を得る。これらを辺々引くと両式に共通の定数項a00(t)が消え、式(10)を得る。
Figure 2010204466
から多項式となるa10(t)を生成するには、
ux(t)−vx(t)|uy(t)−vy(t)
のように設定すれば十分である(なお、A|Bの表記は、AがBを割り切ること、即ちBがAの倍数(倍式)であることを意味する)。このことは式(11)と
(ux(t)−vx(t))|(ux(t)i−vx(t)i)
(uy(t)−vy(t))|(uy(t)j−vy(t)j)
から明らかである。
以上のことを利用して以下に示すアルゴリズムで鍵生成を行うことができる。まず、λx(t)|λy(t)となる2つの多項式をランダムに選択する。
具体的にこのような多項式の組λx(t),λy(t)を求めるには、dをセクションの最大次数としたとき、例えばd次以下のλx(t)をランダムに与えて、次数d−deg λx(t)以下のランダムな多項式c(t)によってλy(t)=c(t)λx(t)を計算すればよい。
ここで、λx(t)=ux(t)−vx(t), λy(t)=uy(t)−vy(t)
とおく。続いて、多項式vx(t)をランダムに選択し、
ux(t)=λx(t)+vx(t)
により、ux(t)を計算する。λx(t), vx(t)の次数はd以下なので、ux(t)の次数もd以下となる。
同様に多項式vy(t)をランダムに選択し
uy(t)=λy(t)+vy(t)
により、uy(t)を計算する。同様にλy(t), vy(t)の次数はd以下なのでuy(t)の次数もd以下となる。
次に、a00(t),a10(t)x以外の係数aij(t)((i,j)≠(0,0),(1,0))をランダムに生成し、前述のように計算されたux(t),vx(t),uy(t),vy(t)を利用して式(10)に従ってa10(t)を計算する。更に、
Figure 2010204466
などのようにxの因子とyの因子をランダムに両辺に分けて公開鍵暗号である代数曲面を生成することが望ましい。このように公開鍵と秘密鍵を生成することによって一般にn個以上のセクションを持つ代数曲面を生成することができる。
第7のバリエーションは、暗号化処理において、暗号文を生成する式(7)の変形に関するバリエーションである。式(7)を例えば
F1(x,y,t)=m(x,y,t)+f(x,y,t)s1(x,y,t)+X(x,y,t)r1(x,y,t)
F2(x,y,t)= f(x,y,t)s2(x,y,t)+X(x,y,t)r2(x,y,t)
F3(x,y,t)= f(x,y,t)s3(x,y,t)+X(x,y,t)r3(x,y,t)
のように変形しても復号が可能である。この際にはF2,F3にセクションを代入して得られる多項式h2(t),h3(t)はm(x,y,t)の項が含まれないので、減算処理をすることなく、減算処理結果として得られた多項式gj(t)(j=1,…,L)の一部と看做して最大公約式φ(t)を求め、最大公約式φ(t)でh1(t)を割った剰余としてm(ux(t),uy(t),t)を求めることができる。このように少なくとも1つの暗号文にm(x,y,t)の項を含め、他の暗号文にはm(x,y,t)の項を含めないことによって、減算処理を省略でき、更なる高速化が可能となる。また、このことは暗号化処理においても加算を削減する意味でも有効である。
第8のバリエーションは、復号処理において導出されるgj(t)(j=1,…,L)の最大公約式φ(t)の次数がdeg f(ux(t),uy(t),t)と一致した場合、φ(t)の因数分解処理と因数抽出処理をスキップすることにより、更なる高速化が実現できる方式である。これはφ(t)の次数とdeg f(ux(t),uy(t),t)が一致するということはf(ux(t),uy(t),t)=φ(t)を意味し、直接hi(t)(i=1,…,k)のいずれかをf(ux(t),uy(t),t)で割ることにより、剰余として正しいm(ux(t),uy(t),t)が抽出可能となる。このバリエーションは常に実行できるとは限らないが、基礎体のサイズpが大きくなるとdeg φ(t)=deg f(ux(t),uy(t),t)となる確率が高くなり、高速化に繋がる。尚、本バリエーションを第7のバリエーションに適用することが可能である。
(第2の実施形態の概要)
次に、第2の実施形態の概要を説明するが、第1の実施形態と同一部分についてはその詳しい説明を省略し、ここでは異なる部分について主に述べる。
始めに、第2の実施形態において、システムパラメータ、公開鍵、秘密鍵、フレームの条件といった前提条件は第1の実施形態と同様である。また、第2の実施形態の鍵生成処理は第1の実施形態と同様である。
続いて、第2の実施形態の暗号化処理の概要を述べる。
第2の実施形態の暗号化処理においては、平文を平文多項式に埋め込むまでの処理は前述した通りである。また、誤り検出符号についても前述した通りである。
しかしながら、第2の実施形態の暗号化処理は、第1の実施形態とは異なり、次のように2つの暗号文F1(x,y,t),F2(x,y,t)を生成する。
すなわち、Fp上の識別多項式f(x,y,t)を定められたフレームでランダムに生成した後、4つの多項式r1(x,y,t),s1(x,y,t),r2(x,y,t),s2(x,y,t)をランダムに生成して、3変数多項式m(x,y,t),f(x,y,t)及び公開鍵である代数曲面XのファイブレーションX(x,y,t)から2つの暗号文F1(x,y,t),F2(x,y,t)を計算する。
F1(x,y,t)=m(x,y,t)+f(x,y,t)s1(x,y,t)+X(x,y,t)r1(x,y,t)
F2(x,y,t)= f(x,y,t)s2(x,y,t)+X(x,y,t)r2(x,y,t) (7)’
第2の実施形態の暗号化処理においては、非特許文献1に開示されている暗号化方式と比較して、第2の暗号文F2(x,y,t)において平文多項式m(x,y,t)を加算する処理が少なくなり、全体として加算3回、乗算4回となって高速・効率的となる。
次に、第2の実施形態の復号処理の概要を述べる。
暗号文F1(x,y,t),F2(x,y,t)を受け取った受信者は、所有する秘密鍵であるセクションDを利用して次のように復号を行う。まず、セクションDを暗号文F1(x,y,t),F2(x,y,t)に代入する。ここで、セクションDを代数曲面X(x,y,t)に代入する。
X(ux(t),uy(t),t)=0,
なる関係があることに注意する。そうすれば、
h1(t)=F1(ux(t),uy(t),t)
=m(ux(t),uy(t),t)+f(ux(t),uy(t),t)s1(ux(t),uy(t),t)
h2(t)=F2(ux(t),uy(t),t)
= f(ux(t),uy(t),t)s2(ux(t),uy(t),t)
という関係を持つ2つの多項式h1(t),h2(t)が求まることが分かる。次に、m(ux(t),uy(t),t)を含まない多項式h2(t)を因数分解して因子f(ux(t),uy(t),t)を求める。このような因子は一意的に求まるとは限らないが、正しい因子f(ux(t),uy(t),t)を抽出できた際には、条件(6)から多項式h1(t)を因子f(ux(t),uy(t),t)で割ることにより、剰余として正しい平文多項式候補m(ux(t),uy(t),t)が抽出される。
正しい平文多項式候補m(ux(t),uy(t),t)が求められた場合、以降の平文導出処理、平文検査処理及び平文出力処理は第1の実施形態と同様に実行される。
第2の実施形態の復号処理においては、非特許文献1に開示されている復号方式と比較して、セクション代入後の多項式h1(t),h2(t)を互いに減算する処理が省かれるので、高速・効率的となる。
<第2の実施形態のバリエーション>
最後に本実施形態におけるいくつかのバリエーションを述べる。各バリエーションは任意の組合せで同時に実施できるが、説明の便宜上、各バリエーションを個別に実施した場合を説明する。尚、以下ではri(x,y,t)(i=1,…,k)を区別する必要がない共通の事象の場合には単にr(x,y,t)と書き、si(x,y,t)(i=1,…,k)を区別する必要がない共通の事象の場合には単にs(x,y,t)と書くこととする。暗号文Fi(x,y,t)についても同様とする。
第1のバリエーションは、暗号化処理において、暗号文を生成する式(7)’の変形に関するバリエーションである。式(7)’は、例えば
F1(x,y,t)=m(x,y,t)−f(x,y,t)s1(x,y,t)−X(x,y,t)r1(x,y,t)
F2(x,y,t)= f(x,y,t)s2(x,y,t)−X(x,y,t)r2(x,y,t)
のように変形しても同様に暗号化/復号が可能である。なお、復号処理においては、セクション代入後の多項式h1(t),h2(t)は以下のようになる。
h1(t)=F1(ux(t),uy(t),t)
=m(ux(t),uy(t),t)−f(ux(t),uy(t),t)s1(ux(t),uy(t),t)
h2(t)=F2(ux(t),uy(t),t)
= f(ux(t),uy(t),t)s2(ux(t),uy(t),t)
このように本発明の趣旨に反しない範囲で暗号化の式を変形し、それに伴い復号処理を変更することは可能であり、本発明の範囲に含まれる。
第2のバリエーションは暗号化処理において、識別多項式f(x,y,t)を既約多項式とする方式である。
本実施形態においては識別多項式には既約多項式という制約を設けなかったが、既約多項式であれば、第2の暗号文F2(x,y,t)にセクションを代入してできる1変数多項式h2(t)から因数分解によってf(ux(t),uy(t),t)が既約多項式として抽出される可能性があるだけでなく、確率的に因子の数が少なくなり、f(ux(t),uy(t),t)の抽出が容易となる。
第3のバリエーションは、暗号化処理において、平文mを識別多項式f(x,y,t)にも埋め込む方式である。前述した実施形態では識別多項式をランダムに生成する方式を示したが、秘密鍵なしにf(x,y,t)を求めることが困難であることも本実施形態の公開鍵暗号の性質であるから、識別多項式にも平文情報を埋め込む方式が実現可能である。逆に、本バリエーションのようにf(x,y,t)にも平文を埋め込む場合、より大きなサイズの平文を一度に暗号化できるという効果もある。但し、第2のバリエーションと共に実施する場合は、埋め込んだ結果であるf(x,y,t)を既約多項式とする必要から、特定の係数にはランダムな係数が埋め込まれるように予め定めておく必要がある。既約多項式は極めて多く存在するため、一部の係数に平文を埋め込んだとしても、ほとんどの場合、既約多項式を得ることができる。
第4のバリエーションは、暗号化処理において、項f(x,y,t)s(x,y,t)と、項X(x,y,t)r(x,y,t)とがx,yの多項式として同じ同類項を含み、かつそれらの係数となるtを変数とする1変数多項式の次数を一致させるように、ランダム多項式s(x,y,t),r(x,y,t)を生成する方式である。このバリエーションによれば暗号文の上からは、f(x,y,t)s(x,y,t)の項と、X(x,y,t)r(x,y,t)の項との区別がつかないため安全性が高まる。更に、m(x,y,t)に関しても同様にx,yの多項式としてみたとき、X(x,y,t)r(x,y,t)(あるいはf(x,y,t)s(x,y,t))の同類項に含まれ、その係数の次数もX(x,y,t)r(x,y,t)に含まれる当該同類項の次数よりも低いことが満たされると、よりm(x,y,t)がX(x,y,t)r(x,y,t)の項と識別不能となるため、安全性が高まる。
第5のバリエーションは、復号処理において、正しい平文が2つ以上計算される場合に対応したものである。本実施形態では、多項式h2(t)を因数分解して、次数が丁度deg f(ux(t),uy(t),t)となるように因子を組合せることにより識別多項式f(ux(t),uy(t),t)の候補を得ている。次に、これに対応した平文候補Mを計算し、当該平文候補Mに含まれる誤り検出符号によって、当該平文候補が正しいものであるか否かを判定し、正しいと判定された場合には処理をそこで止めて、平文を出力していた。これに対し本バリエーションでは全ての識別多項式の候補から平文候補を計算し、前述した検査を行い、検査に成功(即ち、誤り検出符号で誤りが検出されなかった)平文候補のみを記録する。
このとき、全ての識別多項式の候補に伴う処理が終了した時点で、当該候補が複数ある場合や1つも無かった場合は復号失敗として処理する。このように構成することで、誤り検出符号の能力が低い場合や偶然の一致などによって平文が2つ以上計算されてしまう場合の誤りに備えることができる。
第6のバリエーションは、復号処理において、複数のセクションを利用する方式である。本実施形態では1つのセクションのみを利用していたが、複数のセクションを利用することにより誤り検出符号を用いることなく、正しい平文を計算することができる。複数のセクションを利用する場合はセクション毎に本実施形態の復号処理を行ない、出力された平文候補の集合の共通分となる平文を正しい平文として出力することができる。一方、更にセクションによっては(確率的にはほとんど無視できる範囲ではあるが)復号演算において、
s2(ux(t),uy(t),t)=0
となり、平文候補が1つも求まらない可能性もある。このようなときにも本バリエーションは有用である。尚、第5のバリエーションと併せて実施することも可能である。
ここで、第6のバリエーションを実現するための複数のセクションを持つ代数曲面の生成手法は、第1の実施形態の第6のバリエーションにおける手法と同様である。また、2つのセクションD1,D2を持つ代数曲面を生成する鍵生成手法についても、第1の実施形態の第6のバリエーションにおける手法と同様である。
<安全性の検討>
以下では第1及び第2の実施形態で構成した公開鍵暗号の安全性に関して考察する。
[1]総当り攻撃
暗号文F(x,y,t)を構成する各要素m(x,y,t),f(x,y,t),s(x,y,t),r(x,y,t)をmijk,fijk,sijk,rijkを変数として
Figure 2010204466
とおき、これらと暗号文F(x,y,t)を比較することによって、多次多変数連立方程式系を生成し、これを解くという攻撃が考えられる。しかしこの場合、r(x,y,t)をx,yの多項式として見て、十分多くの項を含ませると共に、x,yの多項式として見たとき各項の係数となる多項式の次数を十分高くすることにより、変数の数を増大させ、容易に解けないレベルにまで高めることが可能である。例えば、現在100程度の変数を持つ多次多変数方程式は、現在の計算機処理量と処理手法では解くのが極めて困難である。そこで、項や係数の次数を変数の数が100を超える程度にまで増大させ、本攻撃を回避することができる。
[2]リダクション攻撃
本実施形態の公開鍵暗号では代数曲面X(x,y,t)のみが公開されている。そこで暗号文F(x,y,t)をX(x,y,t)で割った余りとして、m(x,y,t)+f(x,y,t)s(x,y,t)が求まらないかを検討しなくてはならない。しかし、3変数多項式同士の割り算の場合、剰余が一意に決まらない。なぜならば文献(D.コックス 他,“グレブナ基底と代数多様体入門(上),”シュプリンガー・フェアラーク東京,(2000),p.94, 例4にあるように2変数以上の多項式では一般に除法の定理が成り立たないためである。
[3]代入攻撃
[3−1]代数曲面上の代数曲線を代入する攻撃
(セクションを含む)代数曲線はωをパラメータとして、式(14)のように書ける。
(x,y,t)=(ux(ω),uy(ω),ut(ω)) (14)
これらの曲線のうち、代数曲面X(x,y,t)に含まれるものを見出すことができれば、セクションの代わりに代入して、セクションによる復号と同様の手法により、解読することができる。ここではこのような代数曲線を見出すことが与えられているセクションを見出すことと同等かそれ以上に計算困難であることを示す。このような曲線をdeg ut(ω)に注目して分類する。
・ deg ut(ω)≧2の場合
この場合は一般の因子となり、求因子問題の困難性により脅威とはならない。
・ deg ut(ω)=1の場合
これが求まると線形変換でセクションが求まるため、求セクション問題が困難であるという仮定の下ではこのような代数曲線を求めることも困難となる。
・ deg ut(ω)=0の場合
これは特異ファイバー(singular fiber)と呼ばれるもので、ほとんど全ての代数曲面に存在する。しかし、一般の求因子問題の特別な場合であり、効率的に解く方法は知られていない。
[3−2]代数曲面外の代数曲線を代入する攻撃
代数曲面外の代数曲線の場合も式(14)として書け、X(ux(ω),uy(ω),ut(ω))≠0である。よって、次式を得る。
F(ux(ω),uy(ω),ut(ω))=m(ux(ω),uy(ω),ut(ω))+f(ux(ω),uy(ω),ut(ω))s(ux(ω),uy(ω),ut(ω))+X(ux(ω),uy(ω),ut(ω))r(ux(ω),uy(ω),ut(ω))
しかし、ここで分かっている式はX(ux(ω),uy(ω),ut(ω))であるのでF(ux(ω),uy(ω),ut(ω))をX(ux(ω),uy(ω),ut(ω))でリダクションする攻撃が考えられる。これは1変数なので可能ではあるが、条件(4)(5)により、m(ux(ω),uy(ω),ut(ω))+f(ux(ω),uy(ω),ut(ω))s(ux(ω),uy(ω),ut(ω))の次数の方が、X(ux(ω),uy(ω),ut(ω))の次数よりも大きいため、正確な剰余を得ることが困難である。
[3−3]代数曲面上の有理点を代入する攻撃
代数曲面X(x,y,t)の有理点(X(x,y,t)=0 となる点)を代入することによる攻撃がある。即ち、mijk,fijk,sijkを未知数として
Figure 2010204466
とおき、(公開鍵である)代数曲面X(x,y,t)=0のK有理点(xi,yi,ti)は(どのような代数曲面でも)比較的簡単かつ大量に求まることが知られているため、これらの有理点を暗号文F(x,y,t) に代入して、
F(xi,yi,ti)=m(xi,yi,ti)+f(xi,yi,ti)s(xi,yi,ti)
という関係式が大量に求まる。ここでKはFp及びその拡大体をさしている。
これらを連立させるとm(x,y,t)が解ける可能性がある。しかし、f(x,y,t),s(x,y,t)はランダムな多項式であり、特にf(x,y,t)s(x,y,t)はX(x,y,t)r(x,y,t)に含まれる全ての同類項を全て含むと共に、各項の係数の次数が等しいので、r(x,y,t)の各係数の次数を十分大きくしておけば、必然的にs(x,y,t)の係数の次数も連立方程式が解けないほど大きくなり、事実上計算不可能となる。従ってこのような攻撃は本実施形態の公開鍵暗号にとっては脅威とはならない。
一方、暗号文からs1(x,y,t)の因子を削除すると、連立方程式は
F1(xi,yi,ti)=m(xi,yi,ti)+f(xi,yi,ti)
となり、連立1次方程式を解くことにより、比較的簡単に係数が求められてしまう。この理由で因子s(x,y,t)が存在する。
また、暗号文から識別多項式f(x,y,t)の要素を削除すると、本攻撃により
F1(xi,yi,ti)=m(xi,yi,ti)+ s1(xi,yi,ti)
となり、更に簡単に平文多項式m(x,y,t)が求まってしまう。この理由で識別多項式f(x,y,t)を含む要素が存在する。
以上のように各実施形態の公開鍵暗号は、上述した攻撃に対する耐性がある。即ち(逆に言うと)各実施形態の公開鍵暗号は耐性を持つように各構成要素が設定されている。
(第1の実施形態の具体的な構成)
以下、本発明の第1の実施形態について具体的に説明する。図2は本発明の第1の実施形態に係る暗号装置の全体構成図であり、図3は同実施形態における復号装置の全体構成図である。図4は同実施形態における鍵生成装置の全体構成図である。
なお、以下の暗号装置100、復号装置200及び鍵生成装置300は、装置100,200,300毎に、ハードウェア構成、又はハードウェア資源とソフトウェアとの組合せ構成のいずれでも実施可能となっている。組合せ構成のソフトウェアとしては、予めネットワーク又は記憶媒体1,2,3から対応する装置のコンピュータにインストールされ、対応する装置の機能を実現させるためのプログラムが用いられる。このことは以下の各実施形態及び各バリエーションでも同様である。
ここで、暗号装置100は、図2に示すように、パラメータ格納部101、メモリ102、入力部103、平文埋め込み部104、暗号化部105、識別多項式生成部106、多項式生成部107、ランダム値生成部108、多項式演算部109及び出力部110が互いにバス111を介して接続されている。
パラメータ格納部101は、暗号化部105から読出可能なメモリであり、システムパラメータである素体の標数pを格納している。
メモリ102は、各部103〜109から読出/書込可能な記憶装置である。
入力部103は、外部から入力された平文多項式のフレームΛm,deg mij(t)及び平文mを平文埋め込み部104に送出する機能と、外部から入力された公開鍵X(x,y,t),Λmf,deg mij(t),deg fij(t)を暗号化部103に送出する機能とをもっている。
平文埋め込み部104は、入力部103から受けた平文多項式のフレーム及び平文mに基づいて、平文mを平文多項式m(x,y,t)の係数に埋め込む機能と、得られた平文多項式m(x,y,t)を暗号化部105に送出する機能とをもっている。
暗号化部105は、入力部103から受けた公開鍵及びパラメータ格納部101内のパラメータpに基づいて、図5のST5〜ST8に示す動作を実行するように、各部102,106〜109を制御する機能をもっている。
識別多項式生成部106は、暗号化部105から受けた識別多項式f(x,y,t)のフレーム及びパラメータpに基づいて、識別多項式f(x,y,t)をランダムに生成する機能と、得られた識別多項式f(x,y,t)を暗号化部105に送出する機能とをもっている。
多項式生成部107は、3組以上の多項式ri(x,y,t),si(x,y,t)(i=1,…,k)を生成する指示を暗号化部105から受けると、ランダム値生成部108に対してランダム値の出力要請を繰り返し行い、得られたランダム値を利用して2k個の多項式ri(x,y,t),si(x,y,t)(i=1,…,k)を生成する機能と、生成した多項式ri(x,y,t),si(x,y,t)(i=1,…,k)を暗号化部105に送出する機能とをもっている。
ランダム値生成部108は、多項式生成部107から受けた出力要請に応じてランダム値を生成し、このランダム値を多項式生成部107に送出する機能をもっている。
多項式演算部109は、暗号化部105から受けた多項式とその演算指示に基づいて、多項式演算を実行し、演算結果を暗号化部105に送出する機能をもっている。
出力部110は、暗号化部105から受けた暗号文Fi(x,y,t)(i=1,…,k)を出力する機能をもっている。
復号装置200は、図3に示すように、パラメータ格納部201、メモリ202、入力部203、復号部204、セクション代入部205、1変数多項式演算部206、最大公約式演算部207、1変数多項式因数分解部208、1変数多項式剰余演算部209、連立1次方程式求解部210、平文検査部211及び出力部212が互いにバス213を介して接続されている。
パラメータ格納部201は、復号部204から読出可能なメモリであり、システムパラメータである素体の標数pを格納している。
メモリ202は、各部203〜211から読出/書込可能な記憶装置である。
入力部203は、外部から入力された暗号文Fi(x,y,t)(i=1,…,k)、公開鍵x(x,y,t)及びセクションDを復号部204に送出する機能をもっている。
復号部204は、入力部204から受けた暗号文Fi(x,y,t)(i=1,…,k)、公開鍵x(x,y,t)及びセクションDと、パラメータ格納部内のパラメータpとに基づいて、図6のST13〜ST25に示す動作を実行するように各部202,205〜212を制御する機能をもっている。
セクション代入部205は、復号部204から暗号文Fi(x,y,t)(i=1,…,k)とセクションDを受けると、セクションDを暗号文Fi(x,y,t)(i=1,…,k)に代入して1変数多項式hi(t)(i=1,…,k)を得る機能と、得られたhi(t)(i=1,…,k)を復号部204に送出する機能とをもっている。
1変数多項式演算部206は、セクション代入部205又は復号部204から受けた1変数多項式の加減乗除演算を実行する機能と、演算結果をセクション代入部205又は復号部204に送出する機能をもっている。
最大公約式演算部207は、復号部から多項式gj(t)(j=1,…,L)を受けると、多項式gj(t)(j=1,…,L)の最大公約式φ(t)を求める機能と、求めた最大公約式φ(t)を復号部204に送出する機能とをもっている。
1変数多項式因数分解部208は、復号部204から受けた最大公約式φ(t)等の1変数多項式を因数分解する機能と、因数分解の結果を因子の順序付けられた配列として復号部204に送出する機能とをもっている。
1変数多項式剰余演算部209は、復号部204から受けた被除多項式及び除多項式としての1変数多項式の剰余演算を実行する機能と、演算結果としての剰余を復号部204に送出する機能とをもっている。
連立1次方程式求解部210は、復号部204から受けた連立1次方程式を行列演算によって解く機能と、得られた解を復号部204に送出する機能とをもっている。
平文検査部211は、復号部204から受けた平文候補M内の誤り検出符号を検査する機能と、検査結果を復号部204に送出する機能とをもっている。
出力部212は、復号部204から受けた平文mを出力する機能をもっている。
鍵生成装置300は、図4に示すように、固定パラメータ格納部301、メモリ302、入力部303、制御部304、セクション生成部305、1変数多項式生成部306、代数曲面生成部307、多項式演算部308、パラメータ生成部309、フレーム生成部310、平文多項式生成部311、行列生成部312、階数演算部313及び出力部314が互いにバス315を介して接続されている。
固定パラメータ格納部301は、制御部304から読出可能なメモリであり、固定パラメータである素数pとセクションの最大次数dを格納している。
メモリ302は、各部303〜312から読出/書込可能な記憶装置である。
入力部303は、外部から入力されたファイブレーションX(x,y,t)の定数項以外の項の次数degt X’及び前記ファイブレーションX(x,y,t)の2変数x,yの係数集合ΛXを一時的にメモリ302に保存し、メモリ302内の次数degt X’及び係数集合ΛXを制御部304に送出する機能をもっている。
制御部304は、入力部303から受けた次数degt X’及び係数集合ΛXと、固定パラメータ格納部301内の固定パラメータp,dとに基づいて、図7のST34〜ST37に示す動作を実行するように各部302,305〜314を制御する機能と、入力部303から受けた平文多項式の係数集合Λm及び係数の次数deg mij(t)と、固定パラメータ格納部301内の固定パラメータpとに基づいて、図8のST44〜ST50に示す動作を実行するように各部302,305〜312を制御する機能とをもっている。
セクション生成部305は、制御部304から受けた固定パラメータp,dに基づいて、1変数多項式生成部306により生成した2つの1変数多項式ux(t),uy(t)からセクションD:(x,y,t)=(ux(t),uy(t),t)を生成して制御部304に送出する機能をもっている。
1変数多項式生成部306は、セクション生成部305から受けた固定パラメータp,dに基づいて、素体Fp上の次数dの1変数多項式ux(t),uy(t)を生成し、これら1変数多項式ux(t),uy(t)をセクション生成部305に送出する機能をもっている。
代数曲面生成部307は、制御部304から受けたセクションD、システムパラメータdegt X’, Λx及び素数pに基づいて、定数項以外の項の係数をランダムに生成することにより定数項以外の項を生成する機能と、多項式演算部308を用い、定数項以外の項にセクションDを代入して負の符号を付した定数項とを生成し、代数曲面Xの次数degt X = max{degt X’, deg a00(t)}を決定し、定数項以外の項及び定数項からなるファイブレーションX(x,y,t)である代数曲面Xを生成する機能と、この代数曲面Xを制御部304に送出する機能と、をもっている。
パラメータ生成部309は、識別多項式のパラメータdegt f, Λfをdegt X, ΛXに基づいて条件(4)の範囲でランダムに生成する機能と、ΛfΛXを計算し、平文多項式の係数集合Λmをその部分集合で且つ条件(4)を満たす範囲で決定する機能と、平文多項式の次数degt mを、degt X <degt m < degt f の範囲で決定する機能と、前述したパラメータに基づいて、集合Λfに含まれる各要素(i,j)に対するdeg fij(t)を決定し、識別多項式のフレームFRfを決定する機能とをもっている。
フレーム生成部310は、生成された代数曲面から係数集合ΛXとΛXの要素(i,j)に対応する係数の次数deg aij(t)を抽出し、この係数集合ΛX及び係数の次数deg aij(t)から代数曲面のフレームFRXを生成する機能と、各フレームFRf,FRXを互いに積算してフレームFRg(=FRf FRX)を生成する機能と、平文多項式の係数集合Λmに含まれる要素(i,j)に対応する係数の次数deg mij(t)をdeg mij(t)=min{degt m, deg gij}に決定する機能とをもっている。
多項式演算部308は、代数曲面生成部307に制御され、多項式演算を実行し、演算結果を代数曲面生成部307に送出する機能をもっている。
平文多項式生成部311は、制御部304から受けた平文多項式の係数集合Λm及び係数の次数deg mij(t)から定まる平文多項式のフレームFRm及び素数pのデータと、メモリ302内のセクションとに基づいて、平文多項式の係数mijkを変数としてセクションを代入する機能と、代入した結果得られるmijkを順序付けした変数ベクトル(m000,m001,…,mijk,…)とtを変数とする多項式を行列生成部312に送出する機能と、行列生成部312から受けた係数行列Aの階数を計算するための指示を階数演算部313に送出する機能と、階数演算部313から受けた階数と変数ベクトルの次元数とを比較し、階数が変数ベクトルの次元数と一致するか否かを判定する機能と、この判定の結果、否であれば変数mijkの一部を定数として階数演算部313への指示をやり直す機能と、判定の結果、階数がベクトルの次元数が一致すれば平文多項式のフレームを制御部304に送出する機能とをもっている。
行列生成部312は、平文多項式生成部311から変数ベクトル(m000,m001,…,mijk,…)及び平文多項式m(ux(t),uy(t),t)を受けると、m(ux(t),uy(t),t)を変数tに関して整理し、変数mijkを含む係数を変数ベクトルで表現した係数行列Aを生成する機能と、係数行列Aを平文多項式生成部311に送出する機能とをもっている。
階数演算部313は、係数行列Aの階数を計算するための指示を平文多項式生成部311から受けると、この指示に基づき、係数行列Aの階数を計算して平文多項式生成部311に送出する機能をもっている。
出力部314は、平文多項式生成部311から受けた平文多項式m(x,y,t)のフレームを出力する機能をもっている。
次に、以上のように構成された暗号装置、復号装置及び鍵生成装置の動作について図5乃至図8のフローチャートを用いて説明する。
(暗号化処理)
暗号装置100は、図5に示すように、入力部103から平文mを取得し(ST1)、入力部103から公開鍵としての代数曲面のファイブレーションX(x,y,t)、平文多項式m(x,y,t)のフレーム、識別多項式f(x,y,t)のフレームを取得すると(ST2)、処理を開始する。ここで、これらのフレームは、非零の項の集合と同一視できる集合Λmfと、各項の係数の次数deg mij(t),deg fij(t)とから構成されている。また、システムパラメータである素体の標数pは、パラメータ格納部101から取得され(ST3)、平文埋め込み部104に送られる。
平文埋め込み部104では、入力部103から受けた平文多項式のフレームに基づいて、別途、入力部103から受けた平文mを、m=m00‖m10‖…‖mijのようにブロック分割する。ここで、L=deg mij(t)としたとき、
|mij|≦(|p|−1)(L+1)
とし、mij(t)のtkの係数mijkは上記mijを|p|−1ビット毎に分割したものとする。即ち、
mij=mij0‖mij1‖…‖mijL
ここで|p|はpのビット長を表している。このようにして平文mを平文多項式m(x,y,t)の係数に埋め込む(ST4)。
平文埋め込み部104は、平文多項式m(x,y,t)を暗号化部105に送出する。一方、入力部103は、公開鍵を暗号化部105に送出する。パラメータ格納部101はパラメータpを暗号化部105に送出する。
暗号化部105では、平文多項式m(x,y,t)、パラメータp、公開鍵を受信すると、これらをメモリ102に書き込む。しかる後、暗号化部105は、メモリ102内の識別多項式f(x,y,t)のフレームと、パラメータpとを識別多項式生成部106に送出する。
識別多項式生成部106は、識別多項式f(x,y,t)のフレームと、パラメータpとに基づいて、識別多項式f(x,y,t)をランダムに生成し(ST5)、得られた識別多項式f(x,y,t)を暗号化部105に送出する。
暗号化部105は、この識別多項式f(x,y,t)をメモリ102に保存した後、3組以上の多項式ri(x,y,t),si(x,y,t)(i=1,…,k)を生成する指示を多項式生成部107に送出する。
多項式生成部107では、ランダム値生成部108に対してランダム値の出力要請を繰り返し行い、その出力であるランダム値を利用して2k個の多項式ri(x,y,t),si(x,y,t)(i=1,…,k)を生成する(ST6)。生成された多項式ri(x,y,t),si(x,y,t)(i=1,…,k)は、多項式生成部107から暗号化部105に送出される。
暗号化部105は、受信した多項式ri(x,y,t),si(x,y,t)(i=1,…,k)をメモリ102に保存した後、多項式演算部109に順次、多項式とその演算指示を送出しながらk個の暗号文Fi(x,y,t)(i=1,…,k)を次式に基づいて計算する(ST7)。
Fi(x,y,t)=m(x,y,t)+f(x,y,t)si(x,y,t)+X(x,y,t)ri(x,y,t)
計算された暗号文Fi(x,y,t)(i=1,…,k)は、暗号化部105によりメモリ102に保存される。
しかる後、暗号化部105は、メモリ102内の暗号文Fi(x,y,t)(i=1,…,k)を出力部110に送出する。出力部110はこの暗号文Fi(x,y,t)(i=1,…,k)を(必要ならば予め定められたフォーマットに合わせて変形し)出力する(ST8)。
以上により、暗号装置100は暗号化処理を終了する。
(復号処理)
復号装置200においては、図6に示すように、入力部203から暗号文Fi(x,y,t)(i=1,…,k)を取得し(ST11)、入力部203から公開鍵X(x,y,t)と秘密鍵を取得し(ST12)、パラメータ格納部201からpを取得することから処理を開始する。ここで、秘密鍵とはセクションDである。取得された暗号文と鍵情報は復号部204に送られる。復号部204は、暗号文と鍵情報等をメモリ202に保存する。
復号部204は、メモリ202内の暗号文Fi(x,y,t)(i=1,…,k)とセクションDをセクション代入部205に送出する。
セクション代入部205は、セクションDを暗号文Fi(x,y,t)(i=1,…,k)に代入し、必要に応じて1変数多項式演算部206を利用することにより、hi(t)(i=1,…,k)を得る(ST13)。ここで、1変数多項式演算部206は1変数多項式の加減乗除演算を行う。得られたhi(t)(i=1,…,k)は、セクション代入部205から復号部204に送出される。
復号部204は、得られたk個の多項式hi(t)(i=1,…,k)のうち、相異なる2つをL組抽出し、L組のhe(t),hw(t)(i=1,…,e,…,w,…,k)のそれぞれを1変数多項式演算部206に送出する。1変数多項式演算部206は、L組のhe(t),hw(t)の一方から他方を減算して多項式gj(t){=he(t)−hw(t)}(j=1,…,L)を生成し(ST14)、減算結果の多項式gj(t)(j=1,…,L)を復号部204に送出する。
復号部204は、減算結果の多項式gj(t)(j=1,…,L)を最大公約式演算部207に送出する。最大公約式演算部207は、減算結果の多項式gj(t)(j=1,…,L)の最大公約式φ(t)を求め(ST15)、最大公約式φ(t)を復号部204に送出する。
復号部204は、最大公約式φ(t)を1変数多項式因数分解部208に送出する。1変数多項式因数分解部208は、この最大公約式φ(t)を因数分解し(ST16)、因数分解の結果を因子の順序付けられた配列として復号部204に送出する。
復号部204は、これらの因子の組合せのうち、次数が丁度deg f(ux(t),uy(t),t)となる全ての組合せを識別多項式の候補として抽出する(ST17)。具体的には、復号部204は、配列として順序付けられた因子を順序の若いものから全ての組合せを順に求め、その中で次数が丁度deg f(ux(t),uy(t),t)となる組合せだけを抽出する手法が使用可能となっている。但し、この手法を実行する場合、因子の数をl個とすれば2lの組合せが存在する。そこで、この手法に加え、次数がdeg f(ux(t),uy(t),t)を超えた組合せに関してはそれ以上の因子を組合せないことにより、より短い処理時間で因子の組合せを抽出する。
次に、復号部204は、識別多項式f(ux(t),uy(t),t)の候補を順に抽出し(ST18)、順次、h1(t)と共に1変数多項式剰余演算部209に送出する。
1変数多項式剰余演算部209は、次式に示すように、h1(t)を識別多項式f(ux(t),uy(t),t)の候補で割った余りを求めて(ST19)、復号部204に送出する。
m(ux(t),uy(t),t) ≡ h1(t) (mod f(ux(t),uy(t),t))
ここで、条件(6)よりdegm(ux(t),uy(t),t)<deg f(ux(t),uy(t),t)であるため、正しいf(ux(t),uy(t),t)が求まっているという前提の下では正しいm(ux(t),uy(t),t)が求まることが分かる。
次に、復号部204は、平文多項式m(x,y,t)
Figure 2010204466
の係数mijkを変数とし、ステップST19で求めたm(ux(t),uy(t),t)と、mijkux(t)iuy(t)jtkのtkにおける係数比較により、mijkを変数とする連立1次方程式を生成し、これを連立1次方程式求解部210に送出する。
連立1次方程式求解部210では、この連立1次方程式を行列演算によって解き、解を復号部204に出力する。
復号部204は、この解をメッセージの形に復元し、平文候補Mを生成する(ST20)。この復元方法は前述の通りである。
次に、復号部204は、平文候補Mを平文検査部211に送出する。平文検査部211は、平文候補Mに含まれている誤り検出符号を検査し(ST21)、検査結果を復号部204に送出する。復号部204は、ステップST21の検査結果が不合格を示す場合には、次の識別多項式の候補があるか否かを判定し(ST22)、存在すれば次の識別多項式の候補をf(ux(t),uy(t),t)とおいて、ステップST19〜ST21を繰り返す(ST23)。ステップST22の判定の結果、識別多項式の候補が無い場合には、復号部204はエラーを出力して(ST24)、処理を終了する。
一方、ステップST20の検査結果が合格を示す場合には、復号部204は平文候補Mを正しい平文mとして出力部212から出力する(ST25)。
以上により、復号装置200は復号処理を終了する。
(鍵生成処理)
始めに、代数曲面の生成を説明し、続いて平文多項式のフレームの生成について述べる。
[代数曲面及びパラメータの生成]
鍵生成装置300は、図7に示すように、システムパラメータdegt X’, Λxが入力部303から入力されると(ST31)、処理を開始する。
入力部303は、システムパラメータdegt X’, Λxを一時的にメモリ302に保存し、メモリ302内のシステムパラメータdegt X’, Λxを制御部304に送出する。
制御部304は、システムパラメータdegt X’, Λxを受けると、固定パラメータ格納部301から固定パラメータである素数pとセクションの最大次数dを読み込むと(ST32)、これら固定パラメータp,dをセクション生成部305に送出する。
セクション生成部305は1変数多項式生成部306により、素体Fp上の次数dの1変数多項式ux(t),uy(t)を生成し、2つの1変数多項式ux(t),uy(t)からセクションD:(x,y,t)=(ux(t),uy(t),t)を生成して制御部304に送出する(ST33)。
制御部304は、このセクションD、システムパラメータdegt X’, Λx及び素数pを代数曲面生成部307に送出する。
代数曲面生成部307は、セクションD、システムパラメータdegt X’, Λx及び素数pを受けると、定数項以外のaij(t)をランダムに生成する(ST34)。更に、代数曲面生成部307は、代数曲面Xの定数項以外の部分にセクションD:(x,y,t)=(ux(t),uy(t),t)を代入し、代入結果に負の符号を付して定数項a00(t)を生成し(ST35)、代数曲面Xの次数degt X = max{degt X’, deg a00(t)}を決定する(ST36)。
これにより、代数曲面生成部307は、定数項以外の部分及び定数項a00(t)からなる代数曲面を生成する。尚、この計算の際には多項式演算部308に指示を送り加減乗算を行なう。また、ここで生成した代数曲面Xは、代数曲面XのうちのファイブレーションX(x,y,t)である。
生成された代数曲面Xは、代数曲面生成部307から制御部304に送出される。制御部304は、代数曲面X及びセクションDをメモリ302に書き込む。
次に、鍵生成装置300においては、パラメータ生成部309が、識別多項式のパラメータdegt f, Λfをdegt X, ΛXに基づいて条件(4)の範囲でランダムに生成する(ST37)。次に、パラメータ生成部309は、ΛfΛXを計算し、平文多項式の係数集合Λmをその部分集合で且つ条件(4)を満たす範囲で決定する(ST38)。ここで、条件(4)を満たす係数集合Λmが存在しない場合は、ステップST37に戻り、パラメータdegt f, Λfの生成からやり直す。
次に、パラメータ生成部309は、平文多項式の次数degt mを、degt X <degt m < degt f の範囲で決定する(ST39)。ここで、degt f =(degt X)+1である場合など、この範囲の条件を満たすdegt mができないときは、ステップST37に戻り、degt f, Λfの決定からやり直す。
続いて、パラメータ生成部309は、前述したパラメータに基づいて、集合Λfに含まれる各要素(i,j)に対するdeg fij(t)を決定する(ST40)。但し、要素(i,j)=(degx f, degy f)の場合はdeg fij(t)=degt fとし、それ以外の場合は0≦deg fij(t)≦degt fの範囲でランダムに生成する。これにより、パラメータ生成部309は、識別多項式のフレームFRfを決定する(ST41)。
[平文多項式のフレームの生成]
鍵生成装置300においては、図8に示すように、フレーム生成部310が、ステップST36により生成された代数曲面から係数集合ΛXとΛXの要素(i,j)に対応する係数の次数deg aij(t)を抽出し(ST51)、この係数集合ΛX及び係数の次数deg aij(t)から代数曲面のフレームFRXを生成する(ST52)。
続いて、フレーム生成部310は、ステップST41,ST52で得られた各フレームFRf,FRXを互いに積算してフレームFRg(=FRf FRX)を生成する(ST53)。
さらに、フレーム生成部310は、平文多項式の係数集合Λmに含まれる要素(i,j)に対応する係数の次数deg mij(t)をdeg mij(t)=min{degt m, deg gij}に決定する(ST54)。
入力部303は、平文多項式の係数集合Λm及び係数の次数deg mij(t)を一時的にメモリ302に保存し、メモリ302内の平文多項式の係数集合Λm及び係数の次数deg mij(t)を制御部304に送出する。
制御部304は、平文多項式の係数集合Λm及び係数の次数deg mij(t)を受けると、固定パラメータ格納部301から固定パラメータである素数pを読み込む。制御部304は、平文多項式の係数集合Λm、係数の次数deg mij(t)、及び素数pのデータを平文多項式生成部311に送出する。
平文多項式生成部311は、この平文多項式の係数集合Λm及び係数の次数deg mij(t)から定まる平文多項式のフレームFRmにメモリ302内のセクション(x,y,t)=(ux(t),uy(t),t)を代入し、次式のm(ux(t),uy(t),t)を計算する(ST55)。
Figure 2010204466
ここで、mijkは変数である。平文多項式生成部311は、この変数mijkを順序付けして変数ベクトル(m000,m001,…,mijk,…)を生成し(ST56)、これら変数ベクトル(m000,m001,…,mijk,…)及び1変数多項式m(ux(t),uy(t),t)を行列生成部312に送出する。
行列生成部312は、m(ux(t),uy(t),t)を変数tに関して整理し、変数mijkを含む係数mijkux(t)iuy(t)jを変数ベクトル(m000,m001,…,mijk,…)で表現した係数行列Aを生成する(ST57)。具体的には、行列生成部312は、変数tに関して整理した多項式からtの係数mijkux(t)iuy(t)jとなる多項式を抽出し、変数ベクトル(m000,m001,…,mijk,…)との積が丁度tの係数mijkux(t)iuy(t)jとなるように係数行列を生成する。生成された係数行列Aは、行列生成部312から平文多項式生成部311に送出される。
平文多項式生成部311は、この係数行列Aの階数を計算するための指示を階数演算部313に送出する。階数演算部313は、この指示に基づき、係数行列Aの階数を計算して平文多項式生成部311に送出する(ST58)。
平文多項式生成部311は、この階数と変数ベクトルの次元数とを比較し、階数が変数ベクトルの次元数と一致するか否かを判定する(ST59)。
この判定の結果、否であれば一意解が得られないため、平文多項式生成部311は、変数mijkの一部を定数とし(ST60)、ステップST47の階数の計算からやり直す。また、ステップST48の判定の結果、階数がベクトルの次元数と一致すれば一意解が得られるため、1変数多項式m(ux(t),uy(t),t)に対応する平文多項式m(x,y,t)のフレームを制御部304に出力する。
制御部304は、平文多項式m(x,y,t)のフレームを出力部314から出力する(ST61)。
以上により、鍵生成装置300は鍵生成処理を終了する。
上述したように本実施形態によれば、高い次数の多項式{h1(t)−h2(t)}を因数分解して因数を抽出した従来とは異なり、高い次数の多項式hi(t)から低い次数の最大公約式φ(t)を求め、低い次数の最大公約式φ(t)を因数分解して因数を抽出するための暗号装置、復号装置及び鍵生成装置を実現させている。
従って、代数曲面を用いた公開鍵暗号方式において、低い次数の最大公約式φ(t)を用いて因数分解処理と因数抽出処理の負荷を低減することにより、復号処理の効率化を実現することができる。
<第1の実施形態のバリエーション>
第1のバリエーションに関しては、暗号化部105がステップST7において(7)式に代えて、例えば次式に基づいて暗号文を作成することにより実現できる。
F(x,y,t)=m(x,y,t)−f(x,y,t)s(x,y,t)−X(x,y,t)r(x,y,t)
一方、復号処理に関しても本バリエーションにおける暗号化演算に併せて自明に変形すれば実現できる。
第2のバリエーションに関しては、暗号装置100の識別多項式生成部106に既約性を判定する既約性判定機能を付加し、ステップST5により生成した識別多項式f(x,y,t)について既約多項式か否かを判定すると共に、既約多項式でない場合には、再度、ステップST5の処理を繰り返すことにより実現できる。なお、既約性の判定としては、例えば識別多項式f(x,y,t)について因数分解可能か否かを判定し、判定結果が因数分解可能であれば既約多項式でないと判定して当該識別多項式を破棄し、判定結果が否であれば当該識別多項式を既約多項式であると判定すればよい。
第3のバリエーションに関しては、暗号化処理におけるステップST4の平文mを平文多項式m(x,y,t)に埋め込む処理に代えて、平文埋め込み部104が平文mを平文多項式m(x,y,t)の係数と識別多項式f(x,y,t)の係数とに分担して埋め込む処理を実行すれば実現できる。この場合、復号処理においては、平文多項式m(x,y,t)の係数を変数として平文多項式m(ux(t),uy(t),t)と平文多項式の候補Mとの係数比較により生じる連立1次方程式を解くことで平文候補Mを生成して平文mを求めたのと同じ処理を識別多項式f(x,y,t)について実行すればよい。すなわち、復号処理においては、平文多項式からの復号処理と同様に、識別多項式f(x,y,t)の係数を変数として識別多項式f(ux(t),uy(t),t)と識別多項式の候補Mとの係数比較により生じる連立1次方程式を解くことで平文候補Mを生成して平文mを求めればよい。更に第2のバリエーションと併用する場合、識別多項式f(x,y,t)に平文mを埋め込む際には、f(x,y,t)の一部の係数に埋め込むと共に、残りの係数で既約多項式となるように調整する方法を実行すればよい。
第4のバリエーションに関しては、多項式生成部107がステップST6において、多項式r(x,y,t),s(x,y,t)を生成する際に、X(x,y,t)r(x,y,t)と、f(x,y,t)s(x,y,t)とがx,yの多項式として同じ同類項を含み、かつx,yの多項式の係数となるtを変数とする1変数多項式の次数を一致させる条件を満たすようにすればよい。この条件は、一方の多項式r(x,y,t)のフレームを識別多項式f(x,y,t)のフレームに一致させ、他方の多項式s(x,y,t)のフレームをファイブレーションX(x,y,t)のフレームに一致させるようにして、多項式r(x,y,t),s(x,y,t)を生成することにより満たすことができる。具体的には、識別多項式f(x,y,t)の各項のx,yの次数と同一のx,yの次数を各項がもつように多項式r(x,y,t)を生成し、ファイブレーションX(x,y,t)の各項のx,yの次数と同一のx,yの次数を各項がもつように多項式s(x,y,t)を生成すればよい。
第5のバリエーションに関しては、復号処理のステップST17とST18との間において、図示しないカウンタの値kを0に設定し、ステップST21の検査に合格した場合には当該平文候補Mをメモリ202に格納すると共に、カウンタの値kを“+1”だけインクリメントし、次候補となるf(ux(t),uy(t),t)に対してステップST19から同様の処理を行なう。次候補のf(ux(t),uy(t),t)が無くなった段階で、カウンタの値kが2以上か0の場合にはエラーを出力し、カウンタの値kが1の場合にはメモリ202内の平文候補Mを平文mとして出力する。第5のバリエーションは、以上のようにして実現できる。
第6のバリエーションに関しては、復号処理のステップST13〜ST23(但し、ST21は省略)をセクションDの数だけ繰り返し、各セクションDl(l=1,…,n)に対応した平文候補の集合Mlを求め、これらの集合Mlに含まれる平文候補をメモリ202に保存する。その後、平文候補集合Mlに共通な平文候補を平文mとして出力部212に出力する。
補足すると、第6のバリエーションのステップST13においては、セクション代入部205は、入力された暗号文Fi(x,y,t)(i=1, …, k)のそれぞれに対し、各セクションDl(l=1,…,n)を代入してそれぞれk個の1変数多項式{h11(t),h21(t),…,hk1(t)},…,{h1n(t),h2n(t),…,hkn(t)}を生成する。これら1変数多項式{h11(t),h21(t),…,hk1(t)},…,{h1n(t),h2n(t),…,hkn(t)}は、セクション代入部205から復号部204に送出される。
ステップST14においては、復号部204は、各1変数多項式{h11(t),h21(t),…,hk1(t)},…,{h1n(t),h2n(t),…,hkn(t)}を1変数多項式演算部206に送出して減算させることにより、各1変数多項式{h11(t),h21(t),…,hk1(t)},…,{h1n(t),h2n(t),…,hkn(t)}に関し、それぞれ互いに減算した減算結果{h11(t)−h21(t)},…,{h1n(t)−h2n(t)},…を示す多項式gl(t)(={hi1l(t)−hi2l(t)})(i1,i2 ∈ i、i1≠i2、l=1, …, n)を得る。
ステップST15においては、復号部204は、減算結果を示す多項式gl(t)(l=1, …, n)を最大公約式演算部207に送出して多項式gl(t)(l=1, …, n)の最大公約式φl(t)を算出させることにより、最大公約式φl(t)を得る。
ステップST16においては、復号部204は、最大公約式φl(t)を1変数多項式因数分解部208に送出して因数分解させる。
1変数多項式因数分解部208は、因数分解の結果を因子の順序付けられた配列として復号部204に送出する。
ステップST17においては、復号部204は、因数分解の結果により生じた因子を組合せることによって丁度deg f(uxl(t),uyl(t),t)を次数に持つ全ての識別多項式候補f(uxl(t),uyl(t),t)を抽出する。
ステップST18においては、復号部204は、識別多項式f(uxl(t),uyl(t),t)の候補を順に抽出し、順次、h11(t),…,h1n(t)と共に1変数多項式剰余演算部209に送出する。
ステップST19においては、1変数多項式剰余演算部209は、1変数多項式h11(t),…,h1n(t)をそれぞれ識別多項式候補f(uxl(t),uyl(t),t)で除算し、剰余として得られた平文多項式候補m(uxl(t),uyl(t),t)を復号部204に送出する。
復号部204は、前述同様に、平文多項式候補m(uxl(t),uyl(t),t)と、前記平文多項式m(x,y,t)の予め公開されたフレームとに基づいて当該平文多項式m(x,y,t)の係数を変数とする連立1次方程式を導く。
ステップST20においては、この連立1次方程式を連立1次方程式求解部210が解くことにより、この解から復号部204が平文候補Mlを生成する。この平文候補Mlは、復号部204から平文検査部211に送出される。
ステップST21においては、平文検査部211は、1変数多項式h11(t),…,h1n(t)をそれぞれ除算して得られたn個の平文多項式候補m(uxl(t),uyl(t),t)から得られたn個の平文候補Mlにおいて共通した平文候補Mがあるか否かを判定する。
ステップST25においては、復号部204は、平文検査部211による判定の結果、共通した平文候補Mがあった場合に当該共通した平文候補Mを平文として出力部212から出力する。
第6のバリエーションは、以上のようにして実現できる。尚、複数の平文候補がある場合、エラー出力してもよいが、この場合には第5のバリエーションと併用して複数の平文候補に誤り検出符号の検査を用いて平文候補を絞ることにより、エラー出力を回避して実施できる可能性が高い。
第7のバリエーションに関しては、暗号化処理において、m(x,y,t), ri(x,y,t), si(x,y,t), f(x,y,t)と公開鍵X(x,y,t)を用いて暗号化する際に、少なくとも1つの暗号文を式(7)に従って計算し、それ以外の暗号文は式(7)において平文多項式m(x,y,t)を加算しない式
Fi(x,y,t)= f(x,y,t)si(x,y,t)+X(x,y,t)ri(x,y,t)
に従って計算する。また、復号処理においては、図9にバリエーションの処理を破線で囲んで示すように、前述したステップST12の後、セクション代入部205で暗号文Fi(x,y,t)(i=1,…,k)にセクションDを代入し、この暗号文Fi(ux(t),uy(t),t)に対応する多項式hi(t)(=Fi(ux(t),uy(t),t))を得ると(ST13)、平文多項式が加算されていない暗号文Fi(ux(t),uy(t),t)(i=1,…,k)については、前述したhi(t)をgj(t)としてメモリ202に保存する(ST14v1)。また、平文多項式が加算されている暗号文Fi(ux(t),uy(t),t)(i=1,…,k)の多項式hi(t)については、多項式hi(t)の中から、相異なる2つの多項式he(t),hw(t)を複数組抽出し、各組のhe(t),hw(t)を1変数多項式演算部206に送信して一方の多項式he(t)から他方の多項式hw(t)を減算し、複数の減算結果をgj(t)としてメモリ202に保存する(ST14v2)。これらステップST14v1,ST14v2の実行順序は逆でもよい。いずれにしてもステップST14v1,ST14v2の後、前述した通り、ステップST15以降の処理が実行される。
第8のバリエーションに関しては、復号処理において、図10にバリエーションの処理を破線で囲んで示すように、前述したステップST15によって復号部204が最大公約式φ(t)を得た後に、最大公約式φ(t)の次数deg φ(t)と、識別多項式f(ux(t),uy(t),t)の次数deg f(ux(t),uy(t),t)とを復号部204が比較する処理(ST15v)を付加し、両者が一致した場合(ST15v:YES)には、f(ux(t),uy(t),t)=φ(t)として、復号部204がh1(t)のf(ux(t),uy(t),t)による剰余を求める処理(ST19)に進む。両者が一致しなかった場合(ST15v:NO)には、前述した通り、復号部204がステップST16に進み、最大公約式φ(t)の因数分解処理以降の処理を順次実行する。
(第2の実施形態の具体的な構成)
以下、本発明の第2の実施形態について具体的に説明する。図11は本発明の第2の実施形態に係る暗号装置の全体構成図であり、図12は同実施形態における復号装置の全体構成図であって、図2及び図3と同一部分には同一符号を付してその詳しい説明を省略し、ここでは異なる部分について主に述べる。また、本実施形態の鍵生成装置300は、第1の実施形態に述べた通りである。
ここで、本実施形態の暗号装置200は、図2に示した暗号化部105に代えて、暗号化部105’を備えている。
暗号化部105’は、入力部103から受けた公開鍵及びパラメータ格納部101内のパラメータpに基づいて、図13のST5〜ST8vに示す動作を実行するように、各部102,106〜109を制御する機能をもっている。
本実施形態の復号装置200は、図3に示した復号部204及び最大公約式演算部207に代えて、復号部204’を備えている。
復号部204’は、入力部204から受けた暗号文F1(x,y,t),F2(x,y,t)、公開鍵x(x,y,t)及びセクションDと、パラメータ格納部内のパラメータpとに基づいて、図14のST13v1〜ST17及び図6のST17〜ST25に示した動作を実行するように各部202,205〜212を制御する機能をもっている。
次に、以上のように構成された暗号装置及び復号装置の動作について図13及び図14のフローチャートを用いて説明する。
(暗号化処理)
暗号装置100は、図13に本実施形態固有の処理を破線で囲んで示すように、前述したステップST5の後、暗号化部105’が識別多項式f(x,y,t)をメモリ102に保存した後、2組の多項式ri(x,y,t),si(x,y,t)(i=1,2)を生成する指示を多項式生成部107に送出する。
多項式生成部107では、ランダム値生成部108によるランダム値を利用して4個の多項式r1(x,y,t),s1(x,y,t),r2(x,y,t),s2(x,y,t)を生成する(ST6v)。生成された多項式r1(x,y,t),s1(x,y,t),r2(x,y,t),s2(x,y,t)は、多項式生成部107から暗号化部105’に送出される。
暗号化部105’は、受信した多項式r1(x,y,t),s1(x,y,t),r2(x,y,t),s2(x,y,t)をメモリ102に保存した後、多項式演算部109に順次、多項式とその演算指示を送出しながら2個の暗号文F1(x,y,t), F2(x,y,t)を次式に基づいて計算する(ST7v1,ST7v2)。
F1(x,y,t)=m(x,y,t)+f(x,y,t)s1(x,y,t)+X(x,y,t)r1(x,y,t)
F2(x,y,t)= f(x,y,t)s2(x,y,t)+X(x,y,t)r2(x,y,t)
計算された暗号文F1(x,y,t), F2(x,y,t)は、暗号化部105’によりメモリ102に保存される。
しかる後、暗号化部105’は、メモリ102内の暗号文F1(x,y,t), F2(x,y,t)を出力部110に送出する。出力部110はこの暗号文F1(x,y,t), F2(x,y,t)を(必要ならば予め定められたフォーマットに合わせて変形し)出力する(ST8v)。
以上により、暗号装置100は暗号化処理を終了する。
(復号処理)
復号装置200は、図14に本実施形態固有の処理を破線で囲んで示すように、入力部203から暗号文F1(x,y,t), F2(x,y,t)を取得し(ST11v)、入力部203から公開鍵X(x,y,t)と秘密鍵を取得し(ST12)、パラメータ格納部201からpを取得することから処理を開始する。取得された暗号文と鍵情報は復号部204’に送られる。復号部204’は、暗号文と鍵情報等をメモリ202に保存する。
復号部204’は、メモリ202内の暗号文F1(x,y,t),F2(x,y,t)とセクションDをセクション代入部205に送出する。
セクション代入部205は、順次、セクションDを暗号文F1(x,y,t),F2(x,y,t)に代入し、必要に応じて1変数多項式演算部206を利用することにより、h1(t),h2(t)を得る(ST13v1,ST13v2)。ここで、1変数多項式演算部206は1変数多項式の加減乗除演算を行う。得られたh1(t),h2(t)は、セクション代入部205から復号部204に送出される。
復号部204’は、得られた多項式h1(t),h2(t)のうち、m(ux(t),uy(t),t)を含まない多項式h2(t)を1変数多項式因数分解部208に送出する。1変数多項式因数分解部208は、この多項式h2(t)を因数分解し(ST16v)、因数分解の結果を因子の順序付けられた配列として復号部204’に送出する。以下の復号処理は前述した通りである。
(鍵生成処理)
鍵生成装置300による鍵生成動作は、第1の実施形態に述べた通りである。
上述したように本実施形態によれば、暗号化処理において、従来とは異なり、平文多項式m(x,y,t)を用いずに第2の暗号文F2(x,y,t)を生成することから、平文多項式m(x,y,t)に対する加算又は減算処理を1回省略できるので、暗号処理における演算処理の負荷を低減でき、もって、処理全体の効率化を実現することができる。
また、復号処理において、従来とは異なり、平文多項式m(x,y,t)を用いない第2の暗号文F2(x,y,t)から生成した多項式h2(t)を因数分解することから、従来の平文多項式m(ux(t),uy(t),t)をキャンセルするための減算処理{h1(t)−h2(t)}を省略して因数分解を実行できるので、復号処理における演算処理の負荷を低減でき、もって、処理全体の効率化を実現することができる。
補足すると、本実施形態は、m(x,y,t)を含まない多項式h2(t)を1つだけ用いるので、前述した減算処理の省略に加え、第1の実施形態に述べた最大公約式φ(t)を求める処理をも省略できるので、より一層高速化を図ることができる。
<第2の実施形態のバリエーション>
第1のバリエーションに関しては、暗号化部105’がステップST7v1,ST7v2の暗号文F1(x,y,t),F2(x,y,t)の生成時に、以下のように加算に代えて減算を用いることにより実現できる。
F1(x,y,t)=m(x,y,t)−f(x,y,t)s1(x,y,t)−X(x,y,t)r1(x,y,t)
F2(x,y,t)= f(x,y,t)s2(x,y,t)−X(x,y,t)r2(x,y,t)
一方、復号処理に関しても本バリエーションにおける暗号化演算に併せて自明に変形すれば実現できる。具体的には、ステップST13v1,ST13v2で得られる1変数多項式h1(t), h2(t)が以下のようになる。なお、h2(t)は本実施形態と同じである。
h1(t)=F1(ux(t),uy(t),t)
=m(ux(t),uy(t),t)−f(ux(t),uy(t),t)s1(ux(t),uy(t),t)
h2(t)=F2(ux(t),uy(t),t)
= f(ux(t),uy(t),t)s2(ux(t),uy(t),t)
このように、第1のバリエーションに関しては、ステップST7v1,ST7v2,ST13v1,ST13v2の処理が若干異なるものの、他の処理を本実施形態と同様に実施して同様の効果を得ることができる。
また、第2の実施形態は、第2、第3、第4又は第5のバリエーションを実施する場合には、第1の実施形態の各バリエーションと同様に各バリエーションを実施して前述した効果を得ることができる。
また、第2の実施形態は、第6のバリエーションを実施する場合、復号処理のステップST13v1〜ST23(但し、ST21は省略)をセクションDの数だけ繰り返し、各セクションDl(l=1,…,n)に対応した平文候補の集合Mlを求め、これらの集合Mlに含まれる平文候補をメモリ202に保存する。その後、平文候補集合Mlに共通な平文候補を平文mとして出力部212に出力する。
補足すると、第2の実施形態のステップST13v1,ST13v2においては、セクション代入部205は、入力された暗号文F1(x,y,t),F2(x,y,t)のそれぞれに対し、各セクションDl(l=1,…,n)を代入してそれぞれ2つの1変数多項式{h11(t),h21(t)},…,{h1n(t),h2n(t)}を生成する。これら1変数多項式{h11(t),h21(t)},…,{h1n(t),h2n(t)}は、セクション代入部205から復号部204’に送出される。
ステップST16vにおいては、復号部204’は、これら1変数多項式{h11(t),h21(t)},…,{h1n(t),h2n(t)}のうち、m(uxl(t),uyl(t),t)を含まない多項式{h21(t),…,h2n(t)}を1変数多項式因数分解部208に送出する。1変数多項式因数分解部208は、この多項式{h21(t),…,h2n(t)}を因数分解し(ST16v)、因数分解の結果を因子の順序付けられた配列として復号部204’に送出する。以下の復号処理は、第1の実施形態の第6のバリエーションに述べた通りである。第6のバリエーションは、以上のようにして実現できる。
なお、上記実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスクなど)、光ディスク(CD−ROM、DVDなど)、光磁気ディスク(MO)、半導体メモリなどの記憶媒体に格納して頒布することもできる。
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているOS(オペレーティングシステム)や、データベース管理ソフト、ネットワークソフト等のMW(ミドルウェア)等が上記実施形態を実現するための各処理の一部を実行しても良い。
さらに、本発明における記憶媒体は、コンピュータと独立した媒体に限らず、LANやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
また、記憶媒体は1つに限らず、複数の媒体から上記実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
尚、本発明におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、上記実施形態における各処理を実行するものであって、パソコン等の1つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
また、本発明におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
なお、本願発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組合せにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組合せてもよい。
一般的な代数曲線を説明するための模式図である。 本発明の第1の実施形態に係る暗号装置の全体構成図である。 同実施形態における復号装置の全体構成図である。 同実施形態における鍵生成装置の全体構成図である。 同実施形態における暗号装置の動作を説明するためのフローチャートである。 同実施形態における復号装置の動作を説明するためのフローチャートである。 同実施形態における鍵生成装置の動作を説明するためのフローチャートである。 同実施形態における鍵生成装置の動作を説明するためのフローチャートである。 同実施形態における復号装置のバリエーションを説明するためのフローチャートである。 同実施形態における復号装置の他のバリエーションを説明するためのフローチャートである。 本発明の第2の実施形態に係る暗号装置の全体構成図である。 同実施形態における復号装置の全体構成図である。 同実施形態における暗号装置の動作を説明するためのフローチャートである。 同実施形態における復号装置の動作を説明するためのフローチャートである。
1,2,3…記憶媒体、100…暗号装置、101,201…パラメータ格納部、102,202,302…メモリ、103,203,303…入力部、104…平文埋め込み部、105,105’…暗号化部、106…識別多項式生成部、107…多項式生成部、108…ランダム値生成部、109,308…多項式演算部、110,212,314…出力部、111,213,315…バス、200…復号装置、204,204’…復号部、205…セクション代入部、206…1変数多項式演算部、207…最大公約式演算部、208…1変数多項式因数分解部、209…1変数多項式剰余演算部、210…連立1次方程式求解部、211…平文検査部、300…鍵生成装置、301…固定パラメータ格納部、304…制御部、305…セクション生成部、306…1変数多項式生成部、307…代数曲面生成部、309…パラメータ生成部、310…フレーム生成部、311…平文多項式生成部、312…行列生成部、313…階数演算部。

Claims (30)

  1. 体Kの代数曲面X(x,y,z)=0のうち、x,yがtでパラメタライズされた曲線(x,y,t)=(ux(t),uy(t),t)であるセクションが存在する代数曲面XであるファイブレーションX(x,y,t)=0を公開鍵とし、前記ファイブレーションX(x,y,t)に対応する1つ以上のセクションを秘密鍵とする公開鍵暗号方式を用い、前記公開鍵であるファイブレーションX(x,y,t)に基づいて、メッセージmを暗号化するための暗号装置であって、
    前記メッセージmを3変数の平文多項式m(x,y,t)の係数として埋め込む平文埋め込み手段と、
    前記平文多項式に前記セクションを代入したときに得られる1変数多項式の次数に比べ、前記セクションを代入したときに得られる1変数多項式の次数が大きくなる範囲で3変数の識別多項式f(x,y,t)を生成する識別多項式生成手段と、
    3つ以上の多項式の組ri(x,y,t),si(x,y,t)(i=1,…,k)をランダムに生成する多項式生成手段と、
    前記平文多項式m(x,y,t)に対し、前記識別多項式f(x,y,t)及び多項式si(x,y,t)の乗算結果f(x,y,t)si(x,y,t)と、前記ファイブレーションX(x,y,t)及び多項式ri(x,y,t)の乗算結果X(x,y,t)ri(x,y,t)とを加算又は減算する処理により、3つ以上の暗号文Fi(x,y,t)=E(m,si,ri,f,X)(i=1,…,k)を生成する暗号化手段と、
    を備えたことを特徴とする暗号装置。
  2. 請求項1に対応する暗号装置において、
    前記平文埋め込み手段は、前記メッセージmを3変数の平文多項式m(x,y,t)の係数と3変数の識別多項式f(x,y,t)の係数とに分担して埋め込むことを特徴とする暗号装置。
  3. 請求項1又は請求項2に記載の暗号装置において、
    前記多項式生成手段は、
    前記識別多項式f(x,y,t)の各項のx,yの次数と同一のx,yの次数を各項がもつように前記多項式ri(x,y,t)(i=1,…,k)を生成する第1の多項式生成手段と、
    前記ファイブレーションX(x,y,t)の各項のx,yの次数と同一のx,yの次数を各項がもつように前記多項式si(x,y,t)(i=1,…,k)を生成する第2の多項式生成手段と、
    を備えたことを特徴とする暗号装置。
  4. 体Kの代数曲面X(x,y,t)=0のうち、x,yがtでパラメタライズされた曲線(x,y,t)=(ux(t),uy(t),t)であるセクションが存在する代数曲面XであるファイブレーションX(x,y,t)=0を公開鍵とし、前記ファイブレーションX(x,y,t)に対応する1つ以上のセクションを秘密鍵とする公開鍵暗号方式を用い、前記公開鍵であるファイブレーションX(x,y,t)に基づいて、メッセージmを暗号化するための暗号装置であって、
    前記メッセージmを3変数の平文多項式m(x,y,t)の係数として埋め込む平文埋め込み手段と、
    前記平文多項式に前記セクションを代入したときに得られる1変数多項式の次数に比べ、前記セクションを代入したときに得られる1変数多項式の次数が大きくなる範囲で3変数の識別多項式f(x,y,t)を生成する識別多項式生成手段と、
    2つの多項式の組r1(x,y,t),s1(x,y,t),r2(x,y,t),s2(x,y,t)をランダムに生成する多項式生成手段と、
    前記平文多項式m(x,y,t)に対し、前記識別多項式f(x,y,t)及び多項式s1(x,y,t)の乗算結果f(x,y,t)s1(x,y,t)と、前記ファイブレーションX(x,y,t)及び多項式r1(x,y,t)の乗算結果X(x,y,t)r1(x,y,t)とを加算又は減算する処理により、1つの暗号文F1(x,y,t)=E(m,s1,r1,f,X)を生成する第1の暗号文生成手段と、
    前記平文多項式m(x,y,t)を用いずに、前記識別多項式f(x,y,t)及び多項式s2(x,y,t)の乗算結果f(x,y,t)s2(x,y,t)と、前記ファイブレーションX(x,y,t)及び多項式r2(x,y,t)の乗算結果X(x,y,t)r2(x,y,t)とを加算又は減算する処理により、1つの暗号文F2(x,y,t)=E(s2,r2,f,X)を生成する第2の暗号文生成手段と、
    を備えたことを特徴とする暗号装置。
  5. 請求項4に対応する暗号装置において、
    前記平文埋め込み手段は、前記メッセージmを3変数の平文多項式m(x,y,t)の係数と3変数の識別多項式f(x,y,t)の係数とに分担して埋め込むことを特徴とする暗号装置。
  6. 請求項4又は請求項5に記載の暗号装置において、
    前記多項式生成手段は、
    前記識別多項式f(x,y,t)の各項のx,yの次数と同一のx,yの次数を各項がもつように前記多項式ri(x,y,t)(i=1,2)を生成する第1の多項式生成手段と、
    前記ファイブレーションX(x,y,t)の各項のx,yの次数と同一のx,yの次数を各項がもつように前記多項式si(x,y,t)(i=1,2)を生成する第2の多項式生成手段と、
    を備えたことを特徴とする暗号装置。
  7. 体Kの代数曲面X(x,y,t)=0のうち、x,yがtでパラメタライズされた曲線(x,y,t)=(ux(t),uy(t),t)であるセクションが存在する代数曲面XであるファイブレーションX(x,y,t)=0を公開鍵とし、前記ファイブレーションX(x,y,t)に対応する1つ以上のセクションを秘密鍵とする公開鍵暗号方式を用い、前記公開鍵であるファイブレーションX(x,y,t)に基づいて、メッセージmを暗号化するための暗号装置であって、
    前記メッセージmを3変数の平文多項式m(x,y,t)の係数として埋め込む平文埋め込み手段と、
    前記平文多項式に前記セクションを代入したときに得られる1変数多項式の次数に比べ、前記セクションを代入したときに得られる1変数多項式の次数が大きくなる範囲で3変数の識別多項式f(x,y,t)を生成する識別多項式生成手段と、
    3つ以上の多項式の組ri(x,y,t),si(x,y,t)(i=1,…,k)をランダムに生成する多項式生成手段と、
    前記平文多項式m(x,y,t)に対し、前記識別多項式f(x,y,t)及び多項式si(x,y,t)の乗算結果f(x,y,t)si(x,y,t)と、前記ファイブレーションX(x,y,t)及び多項式ri(x,y,t)の乗算結果X(x,y,t)ri(x,y,t)とを加算又は減算する処理により、少なくとも1つの暗号文Fi(x,y,t)=E(m,si,ri,f,X)(i=1,…,k)を生成する第1の暗号文生成手段と、
    前記平文多項式m(x,y,t)を用いずに、前記識別多項式f(x,y,t)及び多項式si(x,y,t)の乗算結果f(x,y,t)si(x,y,t)と、前記ファイブレーションX(x,y,t)及び多項式ri(x,y,t)の乗算結果X(x,y,t)ri(x,y,t)とを加算又は減算する処理により、2つ以上の暗号文Fi(x,y,t)=E(si,ri,f,X)(i=1,…,k)を生成する第2の暗号文生成手段と、
    を備えたことを特徴とする暗号装置。
  8. 請求項7に対応する暗号装置において、
    前記平文埋め込み手段は、前記メッセージmを3変数の平文多項式m(x,y,t)の係数と3変数の識別多項式f(x,y,t)の係数とに分担して埋め込むことを特徴とする暗号装置。
  9. 請求項7又は請求項8に記載の暗号装置において、
    前記多項式生成手段は、
    前記識別多項式f(x,y,t)の各項のx,yの次数と同一のx,yの次数を各項がもつように前記多項式ri(x,y,t)(i=1,…,k)を生成する第1の多項式生成手段と、
    前記ファイブレーションX(x,y,t)の各項のx,yの次数と同一のx,yの次数を各項がもつように前記多項式si(x,y,t)(i=1,…,k)を生成する第2の多項式生成手段と、
    を備えたことを特徴とする暗号装置。
  10. 体Kの代数曲面X(x,y,t)=0のうち、x,yがtでパラメタライズされた曲線(x,y,t)=(ux(t),uy(t),t)であるセクションが存在する代数曲面XであるファイブレーションX(x,y,t)=0を公開鍵とし、前記ファイブレーションX(x,y,t)に対応する1つ以上のセクションを秘密鍵とする公開鍵暗号方式が用いられ、前記メッセージmが係数として埋め込まれた3変数の平文多項式m(x,y,t)に対し、3変数の識別多項式f(x,y,t)及び多項式s1(x,y,t)の乗算結果f(x,y,t)si(x,y,t)と、前記ファイブレーションX(x,y,t)及び多項式ri(x,y,t)の乗算結果X(x,y,t)ri(x,y,t)とを加算又は減算する処理により生成された3つ以上の暗号文Fi(x,y,t)=E(m,si,ri,f,X)(i=1,…,k)が入力されたとき、前記セクションに基づいて、当該暗号文Fi(x,y,t)(i=1,…,k)から前記メッセージmを復号するための復号装置であって、
    前記入力された暗号文Fi(x,y,t)(i=1,…,k)のそれぞれに対し、前記セクションを代入して3つ以上の1変数多項式hi(t)(i=1,…,k)を生成するセクション代入手段と、
    前記各1変数多項式hi(t)(i=1,…,k)の中の2組の相異なる多項式を互いに減算し、減算結果としての複数の多項式gj(t)(j=1,…,L)を得る多項式減算手段と、
    前記各多項式のgj(t)(j=1,…,L)のうちの2つ以上の多項式の最大公約式φ(t)を求める最大公約式演算手段と、
    前記最大公約式φ(t)を因数分解する因数分解手段と、
    前記因数分解の結果により生じた因子を組合せることによって丁度deg f(ux(t),uy(t),t)を次数に持つ全ての識別多項式候補f(ux(t),uy(t),t)を抽出する多項式抽出手段と、
    前記1変数多項式hi(t)(i=1,…,k)のうち、少なくとも1つの1変数多項式hi(t)を前記識別多項式候補f(ux(t),uy(t),t)で除算し、剰余として平文多項式候補m(ux(t),uy(t),t)を得る剰余演算手段と、
    前記平文多項式候補m(ux(t),uy(t),t)と、前記平文多項式m(x,y,t)の予め公開されたフレームとに基づいて当該平文多項式m(x,y,t)の係数を変数とする連立1次方程式を導き、この連立1次方程式を解くことにより平文候補Mを生成する平文候補生成手段と、
    前記平文候補Mに含まれる誤り検出符号により真の平文であるか否かを検査する平文多項式検査手段と、
    前記検査の結果、真の平文である平文候補Mがあった場合に当該平文候補Mを平文として出力する出力手段と、
    を備えたことを特徴とする復号装置。
  11. 請求項10に記載の復号装置において、
    前記メッセージmは3変数の平文多項式m(x,y,t)の係数と3変数の識別多項式f(x,y,t)の係数とに分担して埋め込まれており、
    前記平文候補生成手段は、
    前記平文多項式候補m(ux(t),uy(t),t)と、前記平文多項式m(x,y,t)の予め公開されたフレームとに基づいて当該平文多項式m(x,y,t)の係数を変数とする連立1次方程式を導き、この連立1次方程式を解くことにより平文候補Mを生成する第1の候補生成手段と、
    前記識別多項式候補f(ux(t),uy(t),t)と、前記識別多項式f(x,y,t)の予め公開されたフレームとに基づいて当該識別多項式f(x,y,t)の係数を変数とする連立1次方程式を導き、この連立1次方程式を解くことにより平文候補Mを生成する第2の候補生成手段と
    を備えたことを特徴とする復号装置。
  12. 請求項10又は請求項11に記載の復号装置において、
    前記3つ以上の暗号文Fi(x,y,t)=E(m,si,ri,f,X)(i=1,…,k)に代えて、
    前記平文多項式m(x,y,t)に対し、前記識別多項式f(x,y,t)及び多項式si(x,y,t)の乗算結果f(x,y,t)si(x,y,t)と、前記ファイブレーションX(x,y,t)及び多項式ri(x,y,t)の乗算結果X(x,y,t)ri(x,y,t)とを加算又は減算する処理により生成された少なくとも1つの暗号文Fi(x,y,t)=E(m,si,ri,f,X)(i=1,…,k)と、
    前記平文多項式m(x,y,t)を用いずに、前記識別多項式f(x,y,t)及び多項式si(x,y,t)の乗算結果f(x,y,t)si(x,y,t)と、前記ファイブレーションX(x,y,t)及び多項式ri(x,y,t)の乗算結果X(x,y,t)ri(x,y,t)とを加算又は減算する処理により生成された1つ以上の暗号文Fi(x,y,t)=E(si,ri,f,X)(i=1,…,k)とからなる2つ以上の暗号文Fi(x,y,t)(i=1,…,k)が入力された場合に関し、
    前記平文多項式m(x,y,t)を用いずに生成された暗号文Fi(x,y,t)=E(si,ri,f,X)(i=1,…,k)に前記セクションDを代入して生成された前記1変数多項式hi(t)(i=1,…,k)については前記減算を実行しないように前記多項式演算手段を制御することにより、当該1変数多項式hi(t)(i=1,…,k)を前記多項式gj(t)(j=1,…,L)として得る手段と、
    を備えたことを特徴とする復号装置。
  13. 請求項10乃至請求項12のいずれか1項に記載の復号装置において、
    前記最大公約式演算手段により求められた最大公約式φ(t)の次数deg φ(t)と、識別多項式f(ux(t),uy(t),t)の次数deg f(ux(t),uy(t),t)とを比較する手段と、
    この比較の結果、両者が一致したとき、前記因数分解手段及び多項式抽出手段を実行せず、前記最大公約式φ(t)を前記識別多項式候補f(ux(t),uy(t),t)として前記除算を実行するように前記剰余演算手段を制御する手段と、
    を備えたことを特徴とする復号装置。
  14. 体Kの代数曲面X(x,y,t)=0のうち、x,yがtでパラメタライズされた曲線(x,y,t)=(ux(t),uy(t),t)であるセクションが存在する代数曲面XであるファイブレーションX(x,y,t)=0を公開鍵とし、前記ファイブレーションX(x,y,t)に対応する1つ以上のセクションを秘密鍵とする公開鍵暗号方式が用いられ、前記メッセージmが係数として埋め込まれた3変数の平文多項式m(x,y,t)に対し、3変数の識別多項式f(x,y,t)及び多項式s1(x,y,t)の乗算結果f(x,y,t)s1(x,y,t)と、前記ファイブレーションX(x,y,t)及び多項式r1(x,y,t)の乗算結果X(x,y,t)r1(x,y,t)とを加算又は減算する処理により生成された1つの暗号文F1(x,y,t)=E(m,s1,r1,f,X)と、前記平文多項式m(x,y,t)を用いずに、前記識別多項式f(x,y,t)及び多項式s2(x,y,t)の乗算結果f(x,y,t)s2(x,y,t)と、前記ファイブレーションX(x,y,t)及び多項式r2(x,y,t)の乗算結果X(x,y,t)r2(x,y,t)とを加算又は減算する処理により生成された1つの暗号文F2(x,y,t)=E(s2,r2,f,X)とからなる2つの暗号文F1(x,y,t),F2(x,y,t)が入力されたとき、前記セクションに基づいて、当該暗号文F1(x,y,t),F2(x,y,t),から前記メッセージmを復号するための復号装置であって、
    前記入力された暗号文F1(x,y,t),F2(x,y,t)のそれぞれに対し、前記セクションを代入して2つの1変数多項式h1(t),h2(t)を生成するセクション代入手段と、
    前記各1変数多項式h1(t),h2(t)のうち、暗号文F2(x,y,t)から生成された1変数多項式h2(t)を因数分解する因数分解手段と、
    前記因数分解の結果により生じた因子を組合せることによって丁度deg f(ux(t),uy(t),t)を次数に持つ全ての識別多項式候補f(ux(t),uy(t),t)を抽出する多項式抽出手段と、
    前記1変数多項式h1(t),h2(t)のうち、暗号文F1(x,y,t)から生成された1変数多項式h1(t)を前記識別多項式候補f(ux(t),uy(t),t)で除算し、剰余として平文多項式候補m(ux(t),uy(t),t)を得る剰余演算手段と、
    前記平文多項式候補m(ux(t),uy(t),t)と、前記平文多項式m(x,y,t)の予め公開されたフレームとに基づいて当該平文多項式m(x,y,t)の係数を変数とする連立1次方程式を導き、この連立1次方程式を解くことにより平文候補Mを生成する平文候補生成手段と、
    前記平文候補Mに含まれる誤り検出符号により真の平文であるか否かを検査する平文多項式検査手段と、
    前記検査の結果、真の平文である平文候補Mがあった場合に当該平文候補Mを平文として出力する出力手段と、
    を備えたことを特徴とする復号装置。
  15. 請求項14に記載の復号装置において、
    前記メッセージmは3変数の平文多項式m(x,y,t)の係数と3変数の識別多項式f(x,y,t)の係数とに分担して埋め込まれており、
    前記平文候補生成手段は、
    前記平文多項式候補m(ux(t),uy(t),t)と、前記平文多項式m(x,y,t)の予め公開されたフレームとに基づいて当該平文多項式m(x,y,t)の係数を変数とする連立1次方程式を導き、この連立1次方程式を解くことにより平文候補Mを生成する第1の候補生成手段と、
    前記識別多項式候補f(ux(t),uy(t),t)と、前記識別多項式f(x,y,t)の予め公開されたフレームとに基づいて当該識別多項式f(x,y,t)の係数を変数とする連立1次方程式を導き、この連立1次方程式を解くことにより平文候補Mを生成する第2の候補生成手段と
    を備えたことを特徴とする復号装置。
  16. 体Kの代数曲面X(x,y,t)=0のうち、x,yがtでパラメタライズされた曲線(x,y,t)=(ux(t),uy(t),t)であるセクションが存在する代数曲面XであるファイブレーションX(x,y,t)=0を公開鍵とし、前記ファイブレーションX(x,y,t)に対応するn個のセクションDl(l=1,…,n)を秘密鍵とする公開鍵暗号方式が用いられ、前記メッセージmが係数として埋め込まれた3変数の平文多項式m(x,y,t)に対し、3変数の識別多項式f(x,y,t)及び多項式si(x,y,t)の乗算結果f(x,y,t)si(x,y,t)と、前記ファイブレーションX(x,y,t)及び多項式ri(x,y,t)の乗算結果X(x,y,t)ri(x,y,t)とを加算又は減算する処理により生成された3つ以上の暗号文Fi(x,y,t)=E(m,si,ri,f,X)(i=1,…,k)が入力されたとき、前記n個のセクションDl(l=1,…,n)に基づいて、当該暗号文Fi(x,y,t)(i=1,…,k)から前記メッセージmを復号するための復号装置であって、
    前記入力された暗号文Fi(x,y,t)(i=1,…,k)のそれぞれに対し、前記各セクションDl(l=1,…,n)を代入してそれぞれk個の1変数多項式{h11(t),h21(t),…,hk1(t)},…,{h1n(t),h2n(t),…,hkn(t)}を生成するセクション代入手段と、
    前記各1変数多項式{h11(t),h21(t),…,hk1(t)},…,{h1n(t),h2n(t),…,hkn(t)}に関し、同じセクションを代入した1変数多項式それぞれを互いに減算した減算結果{h1l(t)−h2l(t)},…,{h(k-1}l(t)−hkl(t)}のうちの2つ以上の多項式の最大公約式φl(t)を求める最大公約式演算手段と、
    前記最大公約式φl(t)を因数分解する因数分解手段と、
    前記因数分解の結果により生じた因子を組合せることによって丁度deg f(uxl(t),uyl(t),t)を次数に持つ全ての識別多項式候補f(uxl(t),uyl(t),t)を抽出する多項式抽出手段と、
    前記1変数多項式h11(t),…,h1n(t)をそれぞれ前記識別多項式候補f(uxl(t),uyl(t),t)で除算し、剰余としてn個の平文多項式候補m(uxl(t),uyl(t),t)を得る剰余演算手段と、
    前記平文多項式候補m(uxl(t),uyl(t),t)と、前記平文多項式m(x,y,t)の予め公開されたフレームとに基づいて当該平文多項式m(x,y,t)の係数を変数とする連立1次方程式を導き、この連立1次方程式を解くことにより平文候補Mlを生成する平文候補生成手段と、
    前記1変数多項式h11(t),…,h1n(t)をそれぞれ除算して得られたn個の平文多項式候補m(uxl(t),uyl(t),t)から得られたn個の平文候補Mlにおいて共通した平文候補Mがあるか否かを判定する共通候補判定手段と、
    前記判定の結果、共通した平文候補Mがあった場合に当該共通した平文候補Mを平文として出力する出力手段と、
    を備えたことを特徴とする復号装置。
  17. 請求項16に記載の復号装置において、
    前記メッセージmは3変数の平文多項式m(x,y,t)の係数と3変数の識別多項式f(x,y,t)の係数とに分担して埋め込まれており、
    前記平文候補生成手段は、
    前記平文多項式候補m(uxl(t),uyl(t),t)と、前記平文多項式m(x,y,t)の予め公開されたフレームとに基づいて当該平文多項式m(x,y,t)の係数を変数とする連立1次方程式を導き、この連立1次方程式を解くことにより平文候補Mlを生成する第1の候補生成手段と、
    前記識別多項式候補f(uxl(t),uyl(t),t)と、前記識別多項式f(x,y,t)の予め公開されたフレームとに基づいて当該識別多項式f(x,y,t)の係数を変数とする連立1次方程式を導き、この連立1次方程式を解くことにより平文候補Ml’を生成する第2の候補生成手段とを備えており、
    前記共通候補判定手段は、
    前記第1及び第2の候補生成手段により得られた各々の平文候補Ml, Ml’に共通した平文候補Mがあるか否かを判定することを特徴とする復号装置。
  18. 請求項16又は請求項17に記載の復号装置において、
    前記3つ以上の暗号文Fi(x,y,t)=E(m,si,ri,f,X)(i=1,…,k)に代えて、
    前記平文多項式m(x,y,t)に対し、前記識別多項式f(x,y,t)及び多項式si(x,y,t)の乗算結果f(x,y,t)si(x,y,t)と、前記ファイブレーションX(x,y,t)及び多項式ri(x,y,t)の乗算結果X(x,y,t)ri(x,y,t)とを加算又は減算する処理により生成された少なくとも1つの暗号文Fi(x,y,t)=E(m,si,ri,f,X)(i=1,…,k)と、
    前記平文多項式m(x,y,t)を用いずに、前記識別多項式f(x,y,t)及び多項式si(x,y,t)の乗算結果f(x,y,t)si(x,y,t)と、前記ファイブレーションX(x,y,t)及び多項式ri(x,y,t)の乗算結果X(x,y,t)ri(x,y,t)とを加算又は減算する処理により生成された1つ以上の暗号文Fi(x,y,t)=E(si,ri,f,X)(i=1,…,k)とからなる2つ以上の暗号文Fi(x,y,t)(i=1,…,k)が入力された場合に関し、
    前記平文多項式m(x,y,t)を用いずに生成された暗号文Fi(x,y,t)=E(si,ri,f,X)(i=1,…,k)に前記各セクションDl(l=1,…,n)を代入して生成された前記1変数多項式{hi1(t),hi2(t),…,hin(t)}については前記減算を実行しないように前記多項式演算手段を制御することにより、前記最大公約式φl(t)を求める最大公約式演算手段と、
    を備えたことを特徴とする復号装置。
  19. 請求項16乃至請求項18のいずれか1項に記載の復号装置において、
    前記最大公約式演算手段により求められた最大公約式φl(t)の次数deg φl(t)と、識別多項式f(uxl(t),uyl(t),t)の次数deg f(uxl(t),uyl(t),t)とを比較する手段と、
    この比較の結果、両者が一致したとき、前記因数分解手段及び多項式抽出手段を実行せず、前記最大公約式φl(t)を前記識別多項式候補f(uxl(t),uyl(t),t)として前記除算を実行するように前記剰余演算手段を制御する手段と、
    を備えたことを特徴とする復号装置。
  20. 体Kの代数曲面X(x,y,t)=0のうち、x,yがtでパラメタライズされた曲線(x,y,t)=(ux(t),uy(t),t)であるセクションが存在する代数曲面XであるファイブレーションX(x,y,t)=0を公開鍵とし、前記ファイブレーションX(x,y,t)に対応するn個のセクションDl(l=1,…,n)を秘密鍵とする公開鍵暗号方式が用いられ、前記メッセージmが係数として埋め込まれた3変数の平文多項式m(x,y,t)に対し、3変数の識別多項式f(x,y,t)及び多項式s1(x,y,t)の乗算結果f(x,y,t)s1(x,y,t)と、前記ファイブレーションX(x,y,t)及び多項式r1(x,y,t)の乗算結果X(x,y,t)r1(x,y,t)とを加算又は減算する処理により生成された1つの暗号文F1(x,y,t)=E(m,s1,r1,f,X)と、前記平文多項式m(x,y,t)を用いずに、前記識別多項式f(x,y,t)及び多項式s2(x,y,t)の乗算結果f(x,y,t)s2(x,y,t)と、前記ファイブレーションX(x,y,t)及び多項式r2(x,y,t)の乗算結果X(x,y,t)r2(x,y,t)とを加算又は減算する処理により生成された1つの暗号文F2(x,y,t)=E(s2,r2,f,X)とからなる2つの暗号文F1(x,y,t),F2(x,y,t)が入力されたとき、前記n個のセクションDl(l=1,…,n)に基づいて、当該暗号文F1(x,y,t),F2(x,y,t)から前記メッセージmを復号するための復号装置であって、
    前記入力された暗号文F1(x,y,t),F2(x,y,t)のそれぞれに対し、前記各セクションDl(l=1,…,n)を代入してそれぞれ2つの1変数多項式{h11(t),h21(t)},…,{h1n(t),h2n(t)}を生成するセクション代入手段と、
    前記各1変数多項式{h11(t),h21(t)},…,{h1n(t),h2n(t)}のうち、暗号文F2(x,y,t)から生成された1変数多項式h21(t),…,h2n(t)を因数分解する因数分解手段と、
    前記因数分解の結果により生じた因子を組合せることによって丁度deg f(uxl(t),uyl(t),t)を次数に持つ全ての識別多項式候補f(uxl(t),uyl(t),t)を抽出する多項式抽出手段と、
    前記1変数多項式{h11(t),h21(t)},…,{h1n(t),h2n(t)}のうち、暗号文F1(x,y,t)から生成された1変数多項式h11(t),…,h1n(t)を前記識別多項式候補f(uxl(t),uyl(t),t)で除算し、剰余として平文多項式候補m(uxl(t),uyl(t),t)を得る剰余演算手段と、
    前記平文多項式候補m(uxl(t),uyl(t),t)と、前記平文多項式m(x,y,t)の予め公開されたフレームとに基づいて当該平文多項式m(x,y,t)の係数を変数とする連立1次方程式を導き、この連立1次方程式を解くことにより平文候補Mlを生成する平文候補生成手段と、
    前記1変数多項式h11(t),…,h1n(t)をそれぞれ除算して得られたn個の平文多項式候補m(uxl(t),uyl(t),t)から得られたn個の平文候補Mlにおいて共通した平文候補Mがあるか否かを判定する共通候補判定手段と、
    前記判定の結果、共通した平文候補Mがあった場合に当該共通した平文候補Mを平文として出力する出力手段と、
    を備えたことを特徴とする復号装置。
  21. 請求項20に記載の復号装置において、
    前記メッセージmは3変数の平文多項式m(x,y,t)の係数と3変数の識別多項式f(x,y,t)の係数とに分担して埋め込まれており、
    前記平文候補生成手段は、
    前記平文多項式候補m(uxl(t),uyl(t),t)と、前記平文多項式m(x,y,t)の予め公開されたフレームとに基づいて当該平文多項式m(x,y,t)の係数を変数とする連立1次方程式を導き、この連立1次方程式を解くことにより平文候補Mlを生成する第1の候補生成手段と、
    前記識別多項式候補f(uxl(t),uyl(t),t)と、前記識別多項式f(x,y,t)の予め公開されたフレームとに基づいて当該識別多項式f(x,y,t)の係数を変数とする連立1次方程式を導き、この連立1次方程式を解くことにより平文候補Ml’を生成する第2の候補生成手段と
    を備えたことを特徴とする復号装置。
  22. 体Kの代数曲面X(x,y,t)=0のうち、x,yがtでパラメタライズされた曲線(x,y,t)=(ux(t),uy(t),t)であるセクションが存在する代数曲面XであるファイブレーションX(x,y,t)=0を公開鍵とし、前記ファイブレーションX(x,y,t)に対応する1つ以上のセクションを秘密鍵とする公開鍵暗号方式に関し、前記公開鍵であるファイブレーションX(x,y,t)と、前記秘密鍵であるセクションとを生成するための鍵生成装置であって、
    前記ファイブレーションX(x,y,t)の定数項以外の項の次数degt X’及び前記ファイブレーションX(x,y,t)の2変数x,yの係数集合ΛXを入力する手段と、
    前記セクションをランダムに生成するセクション生成手段と、
    前記生成されたセクション及び前記入力された次数degt X’及び係数集合ΛXに基づいて、前記代数曲面のファイブレーションX(x,y,t)を変数x,yの多項式としてみたときに定数項以外の項の係数をランダムに生成することにより、定数項以外の項を生成する係数生成手段と、
    前記定数項以外の項に前記セクションを代入して得られる代入結果に負の符号を付すことにより前記定数項を計算する定数項計算手段と、
    前記定数項以外の項の次数degt X’及び前記定数項の次数degt a00のうち、いずれか大きい方の次数をファイブレーションの次数degt Xに決定し、前記定数項以外の項及び前記定数項からなるファイブレーションX(x,y,t)を生成するファイブレーション生成手段と、
    前記ファイブレーションの次数degt X及び係数集合ΛXに基づき、条件“degt X < degt m < degt f”及び“(degx f,degy f)∈Λf”の範囲で、識別多項式の次数degt f及び2変数x,yの係数集合Λfをランダムに生成する手段(但し、degt mは平文多項式の変数tの次数、degt fは識別多項式の変数tの次数、degx fは識別多項式の変数xの次数、degy fは識別多項式の変数yの次数)と、
    前記係数集合Λf,ΛXの積ΛfΛXを計算し、この計算結果の部分集合で且つ条件“(degx m,degy m,degt m)∈Γm”の範囲で、平文多項式の2変数x,yの係数集合Λmを決定する手段(但し、Γmは、平文多項式m(x,y,t)に含まれる非零の単項式の(x指数,y指数,t指数)の集合)と、
    前記平文多項式の次数degt mを、条件“degt X <degt m < degt f”の範囲で決定する手段と、
    前記係数集合Λfに含まれる各要素(i,j)に基づき、要素(i,j)=(degx f, degy f)の場合にはdeg fij(t)=degt fとして前記識別多項式の係数の次数fij(t)を決定し、要素(i,j)≠(degx f, degy f)の場合には0≦deg fij(t)≦degt fの範囲でランダムに前記次数fij(t)を決定することにより、前記係数集合Λf及び前記次数fij(t)からなる識別多項式のフレームFRfを決定する手段と、
    前記代数曲面から係数集合ΛXとΛXの要素(i,j)に対応する係数の次数deg aij(t)を抽出し、この係数集合ΛX及び係数の次数deg aij(t)から代数曲面のフレームFRXを生成する手段と、
    前記各フレームFRf,FRXを互いに積算してフレームFRg(=FRf FRX)を生成する手段と、
    前記平文多項式の係数集合Λmに含まれる要素(i,j)に対応する係数の次数deg mij(t)をdeg mij(t)=min{degt m, deg gij(t)}に決定する手段と、
    前記係数集合Λm及び次数deg mij(t)からなるフレームであって、係数mijkを変数とした平文多項式のフレームに対し、前記セクションを代入するセクション代入手段と、
    前記代入した結果得られる変数mijkを順序付けして変数ベクトル(m000,m001,…,mijk,…)を生成する手段と、
    前記代入した結果得られる1変数多項式m(ux(t),uy(t),t)をtに関して整理し、tの係数mijkux(t)iuy(t)jとなる多項式を抽出する係数抽出手段と、
    前記変数ベクトル(m000,m001,…,mijk,…)との積が丁度前記tの係数mijkux(t)iuy(t)jとなるように係数行列を生成する係数行列生成手段と、
    前記係数行列の階数を計算する係数行列計算手段と、
    前記階数が前記変数ベクトルの次元数と一致しない場合に、前記1変数多項式m(ux(t),uy(t),t)の一部の変数mijkを定数にする変数調整手段と、
    前記階数が前記変数ベクトルの次元数と一致する場合の1変数多項式m(ux(t),uy(t),t)に対応する3変数多項式m(x,y,t)のフレームを平文多項式のフレームFRmとして出力する出力手段、
    を備えたことを特徴とする鍵生成装置。
  23. 体Kの代数曲面X(x,y,t)=0のうち、x,yがtでパラメタライズされた曲線(x,y,t)=(ux(t),uy(t),t)であるセクションが存在する代数曲面XであるファイブレーションX(x,y,t)=0を公開鍵とし、前記ファイブレーションX(x,y,t)に対応する1つ以上のセクションを秘密鍵とする公開鍵暗号方式を用い、前記公開鍵であるファイブレーションX(x,y,t)に基づいて、メッセージmを暗号化するための暗号装置に用いられるプログラムであって、
    前記暗号装置を、
    前記メッセージmを3変数の平文多項式m(x,y,t)の係数として埋め込む平文埋め込み手段、
    前記係数が埋め込まれた平文多項式m(x,y,t)を前記暗号装置のメモリに書き込む手段、
    前記平文多項式に前記セクションを代入したときに得られる1変数多項式の次数に比べ、前記セクションを代入したときに得られる1変数多項式の次数が大きくなる範囲で3変数の識別多項式f(x,y,t)を生成する識別多項式生成手段、
    3つ以上の多項式の組ri(x,y,t),si(x,y,t)(i=1,…,k)をランダムに生成する多項式生成手段、
    前記メモリ内の平文多項式m(x,y,t)に対し、前記識別多項式f(x,y,t)及び多項式si(x,y,t)の乗算結果f(x,y,t)si(x,y,t)と、前記ファイブレーションX(x,y,t)及び多項式ri(x,y,t)の乗算結果X(x,y,t)ri(x,y,t)とを加算又は減算する処理により、3つ以上の暗号文Fi(x,y,t)=E(m,si,ri,f,X)(i=1,…,k)を生成する暗号化手段、
    として機能させるためのプログラム。
  24. 体Kの代数曲面X(x,y,t)=0のうち、x,yがtでパラメタライズされた曲線(x,y,t)=(ux(t),uy(t),t)であるセクションが存在する代数曲面XであるファイブレーションX(x,y,t)=0を公開鍵とし、前記ファイブレーションX(x,y,t)に対応する1つ以上のセクションを秘密鍵とする公開鍵暗号方式を用い、前記公開鍵であるファイブレーションX(x,y,t)に基づいて、メッセージmを暗号化するための暗号装置に用いられるプログラムであって、
    前記暗号装置を、
    前記メッセージmを3変数の平文多項式m(x,y,t)の係数として埋め込む平文埋め込み手段、
    前記係数が埋め込まれた平文多項式m(x,y,t)を前記暗号装置のメモリに書き込む手段、
    前記平文多項式に前記セクションを代入したときに得られる1変数多項式の次数に比べ、前記セクションを代入したときに得られる1変数多項式の次数が大きくなる範囲で3変数の識別多項式f(x,y,t)を生成する識別多項式生成手段、
    2つの多項式の組r1(x,y,t),s1(x,y,t),r2(x,y,t),s2(x,y,t)をランダムに生成する多項式生成手段、
    前記メモリ内の平文多項式m(x,y,t)に対し、前記識別多項式f(x,y,t)及び多項式s1(x,y,t)の乗算結果f(x,y,t)s1(x,y,t)と、前記ファイブレーションX(x,y,t)及び多項式r1(x,y,t)の乗算結果X(x,y,t)r1(x,y,t)とを加算又は減算する処理により、1つの暗号文F1(x,y,t)=E(m,s1,r1,f,X)を生成する第1の暗号文生成手段、
    前記平文多項式m(x,y,t)を用いずに、前記識別多項式f(x,y,t)及び多項式s2(x,y,t)の乗算結果f(x,y,t)s2(x,y,t)と、前記ファイブレーションX(x,y,t)及び多項式r2(x,y,t)の乗算結果X(x,y,t)r2(x,y,t)とを加算又は減算する処理により、1つの暗号文F2(x,y,t)=E(s2,r2,f,X)を生成する第2の暗号文生成手段、
    として機能させるためのプログラム。
  25. 体Kの代数曲面X(x,y,t)=0のうち、x,yがtでパラメタライズされた曲線(x,y,t)=(ux(t),uy(t),t)であるセクションが存在する代数曲面XであるファイブレーションX(x,y,t)=0を公開鍵とし、前記ファイブレーションX(x,y,t)に対応する1つ以上のセクションを秘密鍵とする公開鍵暗号方式を用い、前記公開鍵であるファイブレーションX(x,y,t)に基づいて、メッセージmを暗号化するための暗号装置に用いられるプログラムであって、
    前記暗号装置を、
    前記メッセージmを3変数の平文多項式m(x,y,t)の係数として埋め込む平文埋め込み手段、
    前記平文多項式に前記セクションを代入したときに得られる1変数多項式の次数に比べ、前記セクションを代入したときに得られる1変数多項式の次数が大きくなる範囲で3変数の識別多項式f(x,y,t)を生成する識別多項式生成手段、
    3つ以上の多項式の組ri(x,y,t),si(x,y,t)(i=1,…,k)をランダムに生成する多項式生成手段、
    前記平文多項式m(x,y,t)に対し、前記識別多項式f(x,y,t)及び多項式si(x,y,t)の乗算結果f(x,y,t)si(x,y,t)と、前記ファイブレーションX(x,y,t)及び多項式ri(x,y,t)の乗算結果X(x,y,t)ri(x,y,t)とを加算又は減算する処理により、少なくとも1つの暗号文Fi(x,y,t)=E(m,si,ri,f,X)(i=1,…,k)を生成する第1の暗号文生成手段、
    前記平文多項式m(x,y,t)を用いずに、前記識別多項式f(x,y,t)及び多項式si(x,y,t)の乗算結果f(x,y,t)si(x,y,t)と、前記ファイブレーションX(x,y,t)及び多項式ri(x,y,t)の乗算結果X(x,y,t)ri(x,y,t)とを加算又は減算する処理により、2つ以上の暗号文Fi(x,y,t)=E(si,ri,f,X)(i=1,…,k)を生成する第2の暗号文生成手段、
    として機能させるためのプログラム。
  26. 体Kの代数曲面X(x,y,t)=0のうち、x,yがtでパラメタライズされた曲線(x,y,t)=(ux(t),uy(t),t)であるセクションが存在する代数曲面XであるファイブレーションX(x,y,t)=0を公開鍵とし、前記ファイブレーションX(x,y,t)に対応する1つ以上のセクションを秘密鍵とする公開鍵暗号方式が用いられ、前記メッセージmが係数として埋め込まれた3変数の平文多項式m(x,y,t)に対し、3変数の識別多項式f(x,y,t)及び多項式s1(x,y,t)の乗算結果f(x,y,t)si(x,y,t)と、前記ファイブレーションX(x,y,t)及び多項式ri(x,y,t)の乗算結果X(x,y,t)ri(x,y,t)とを加算又は減算する処理により生成された3つ以上の暗号文Fi(x,y,t)=E(m,si,ri,f,X)(i=1,…,k)が入力されたとき、前記セクションに基づいて、当該暗号文Fi(x,y,t)(i=1,…,k)から前記メッセージmを復号するための復号装置に用いられるプログラムであって、
    前記復号装置を、
    前記入力された暗号文Fi(x,y,t)(i=1,…,k)を前記復号装置のメモリに書き込む手段、
    前記メモリ内の暗号文Fi(x,y,t)(i=1,…,k)のそれぞれに対し、前記セクションを代入して3つ以上の1変数多項式hi(t)(i=1,…,k)を生成するセクション代入手段、
    前記各1変数多項式hi(t)(i=1,…,k)の中の2組の相異なる多項式を互いに減算し、減算結果としての複数の多項式gj(t)(j=1,…,L)を得る多項式減算手段、
    前記各多項式のgj(t)(j=1,…,L)のうちの2つ以上の多項式の最大公約式φ(t)を求める最大公約式演算手段、
    前記最大公約式φ(t)を因数分解する因数分解手段、
    前記因数分解の結果により生じた因子を組合せることによって丁度deg f(ux(t),uy(t),t)を次数に持つ全ての識別多項式候補f(ux(t),uy(t),t)を抽出する多項式抽出手段、
    前記1変数多項式h1(t)を前記識別多項式候補f(ux(t),uy(t),t)で除算し、剰余として平文多項式候補m(ux(t),uy(t),t)を得る剰余演算手段、
    前記平文多項式候補m(ux(t),uy(t),t)と、前記平文多項式m(x,y,t)の予め公開されたフレームとに基づいて当該平文多項式m(x,y,t)の係数を変数とする連立1次方程式を導き、この連立1次方程式を解くことにより平文候補Mを生成する平文候補生成手段、
    前記平文候補Mに含まれる誤り検出符号により真の平文であるか否かを検査する平文多項式検査手段、
    前記検査の結果、真の平文である平文候補Mがあった場合に当該平文候補Mを平文として出力する出力手段、
    として機能させるためのプログラム。
  27. 体Kの代数曲面X(x,y,t)=0のうち、x,yがtでパラメタライズされた曲線(x,y,t)=(ux(t),uy(t),t)であるセクションが存在する代数曲面XであるファイブレーションX(x,y,t)=0を公開鍵とし、前記ファイブレーションX(x,y,t)に対応する1つ以上のセクションを秘密鍵とする公開鍵暗号方式が用いられ、前記メッセージmが係数として埋め込まれた3変数の平文多項式m(x,y,t)に対し、3変数の識別多項式f(x,y,t)及び多項式s1(x,y,t)の乗算結果f(x,y,t)s1(x,y,t)と、前記ファイブレーションX(x,y,t)及び多項式r1(x,y,t)の乗算結果X(x,y,t)r1(x,y,t)とを加算又は減算する処理により生成された1つの暗号文F1(x,y,t)=E(m,s1,r1,f,X)と、前記平文多項式m(x,y,t)を用いずに、前記識別多項式f(x,y,t)及び多項式s2(x,y,t)の乗算結果f(x,y,t)s2(x,y,t)と、前記ファイブレーションX(x,y,t)及び多項式r2(x,y,t)の乗算結果X(x,y,t)r2(x,y,t)とを加算又は減算する処理により生成された1つの暗号文F2(x,y,t)=E(s2,r2,f,X)とからなる2つの暗号文F1(x,y,t),F2(x,y,t)が入力されたとき、前記セクションに基づいて、当該暗号文F1(x,y,t),F2(x,y,t)から前記メッセージmを復号するための復号装置に用いられるプログラムであって、
    前記復号装置を、
    前記入力された暗号文F1(x,y,t),F2(x,y,t)のそれぞれに対し、前記セクションを代入して2つの1変数多項式h1(t),h2(t)を生成するセクション代入手段、
    前記各1変数多項式h1(t),h2(t)のうち、暗号文F2(x,y,t)から生成された1変数多項式h2(t)を因数分解する因数分解手段、
    前記因数分解の結果により生じた因子を組合せることによって丁度deg f(ux(t),uy(t),t)を次数に持つ全ての識別多項式候補f(ux(t),uy(t),t)を抽出する多項式抽出手段、
    前記1変数多項式h1(t),h2(t)のうち、暗号文F1(x,y,t)から生成された1変数多項式h1(t)を前記識別多項式候補f(ux(t),uy(t),t)で除算し、剰余として平文多項式候補m(ux(t),uy(t),t)を得る剰余演算手段、
    前記平文多項式候補m(ux(t),uy(t),t)と、前記平文多項式m(x,y,t)の予め公開されたフレームとに基づいて当該平文多項式m(x,y,t)の係数を変数とする連立1次方程式を導き、この連立1次方程式を解くことにより平文候補Mを生成する平文候補生成手段、
    前記平文候補Mに含まれる誤り検出符号により真の平文であるか否かを検査する平文多項式検査手段、
    前記検査の結果、真の平文である平文候補Mがあった場合に当該平文候補Mを平文として出力する出力手段、
    として機能させるためのプログラム。
  28. 体Kの代数曲面X(x,y,t)=0のうち、x,yがtでパラメタライズされた曲線(x,y,t)=(ux(t),uy(t),t)であるセクションが存在する代数曲面XであるファイブレーションX(x,y,t)=0を公開鍵とし、前記ファイブレーションX(x,y,t)に対応するn個のセクションD1,…,Dnを秘密鍵とする公開鍵暗号方式が用いられ、前記メッセージmが係数として埋め込まれた3変数の平文多項式m(x,y,t)に対し、3変数の識別多項式f(x,y,t)及び多項式si(x,y,t)の乗算結果f(x,y,t)si(x,y,t)と、前記ファイブレーションX(x,y,t)及び多項式ri(x,y,t)の乗算結果X(x,y,t)ri(x,y,t)とを加算又は減算する処理により生成された3つ以上の暗号文Fi(x,y,t)=E(m,si,ri,f,X)(i=1,…,k)が入力されたとき、前記n個のセクションD1,…,Dnに基づいて、当該暗号文Fi(x,y,t)(i=1,…,k)から前記メッセージmを復号するための復号装置に用いられるプログラムであって、
    前記復号装置を、
    前記入力された暗号文Fi(x,y,t)(i=1,…,k)を前記復号装置のメモリに書き込む手段、
    前記メモリ内の暗号文Fi(x,y,t)(i=1,…,k)のそれぞれに対し、前記各セクションD1,…,Dnを代入してそれぞれk個の1変数多項式{h11(t),h21(t),…,hk1(t)},…,{h1n(t),h2n(t),…,hkn(t)}を生成するセクション代入手段、
    前記各1変数多項式{h11(t),h21(t),…,hk1(t)},…,{h1n(t),h2n(t),…,hkn(t)}に関し、同じセクションを代入した1変数多項式それぞれを互いに減算した減算結果{h1l(t)−h21(t)},…,{h(k-1)l(t)−hkl(t),…}のうちの2つ以上の多項式の最大公約式φl(t)を求める最大公約式演算手段、
    前記最大公約式φl(t)を因数分解する因数分解手段、
    前記因数分解の結果により生じた因子を組合せることによって丁度deg f(uxl(t),uyl(t),t)を次数に持つ全ての識別多項式候補f(uxl(t),uyl(t),t)を抽出する多項式抽出手段、
    前記1変数多項式h11(t),…,h1n(t)をそれぞれ前記識別多項式候補f(uxl(t),uyl(t),t)で除算し、剰余としてn個の平文多項式候補m(uxl(t),uyl(t),t)を得る剰余演算手段、
    前記平文多項式候補m(uxl(t),uyl(t),t)と、前記平文多項式m(x,y,t)の予め公開されたフレームとに基づいて当該平文多項式m(x,y,t)の係数を変数とする連立1次方程式を導き、この連立1次方程式を解くことにより平文候補Mlを生成する平文候補生成手段、
    前記1変数多項式h11(t),…,h1n(t)をそれぞれ除算して得られたn個の平文多項式候補m(ux(t),uy(t),t)から得られたn個の平文候補Mlにおいて共通した平文候補Mがあるか否かを判定する共通候補判定手段、
    前記判定の結果、共通した平文候補Mがあった場合に当該共通した平文候補Mを平文として出力する出力手段、
    として機能させるためのプログラム。
  29. 体Kの代数曲面X(x,y,t)=0のうち、x,yがtでパラメタライズされた曲線(x,y,t)=(ux(t),uy(t),t)であるセクションが存在する代数曲面XであるファイブレーションX(x,y,t)=0を公開鍵とし、前記ファイブレーションX(x,y,t)に対応するn個のセクションD1,…,Dnを秘密鍵とする公開鍵暗号方式が用いられ、前記メッセージmが係数として埋め込まれた3変数の平文多項式m(x,y,t)に対し、3変数の識別多項式f(x,y,t)及び多項式s1(x,y,t)の乗算結果f(x,y,t)s1(x,y,t)と、前記ファイブレーションX(x,y,t)及び多項式r1(x,y,t)の乗算結果X(x,y,t)r1(x,y,t)とを加算又は減算する処理により生成された1つの暗号文F1(x,y,t)=E(m,s1,r1,f,X)と、前記平文多項式m(x,y,t)を用いずに、前記識別多項式f(x,y,t)及び多項式s2(x,y,t)の乗算結果f(x,y,t)s2(x,y,t)と、前記ファイブレーションX(x,y,t)及び多項式r2(x,y,t)の乗算結果X(x,y,t)r2(x,y,t)とを加算又は減算する処理により生成された1つの暗号文F2(x,y,t)=E(s2,r2,f,X)とからなる2つの暗号文F1(x,y,t),F2(x,y,t)が入力されたとき、前記n個のセクションD1,…,Dnに基づいて、当該暗号文F1(x,y,t),F2(x,y,t)から前記メッセージmを復号するための復号装置に用いられるプログラムであって、
    前記復号装置を、
    前記入力された暗号文F1(x,y,t),F2(x,y,t)のそれぞれに対し、前記各セクションD1,…,Dnを代入してそれぞれ2つの1変数多項式{h11(t),h21(t)},…,{h1n(t),h2n(t)}を生成するセクション代入手段、
    前記各1変数多項式{h11(t),h21(t)},…,{h1n(t),h2n(t)}のうち、暗号文F2(x,y,t)から生成された1変数多項式h21(t),…,h2n(t)を因数分解する因数分解手段、
    前記因数分解の結果により生じた因子を組合せることによって丁度deg f(uxl(t),uyl(t),t)を次数に持つ全ての識別多項式候補f(uxl(t),uyl(t),t)を抽出する多項式抽出手段、
    前記1変数多項式{h11(t),h21(t)},…,{h1n(t),h2n(t)}のうち、暗号文F1(x,y,t)から生成された1変数多項式h11(t),…,h1n(t)を前記識別多項式候補f(uxl(t),uyl(t),t)で除算し、剰余として平文多項式候補m(uxl(t),uyl(t),t)を得る剰余演算手段、
    前記平文多項式候補m(uxl(t),uyl(t),t)と、前記平文多項式m(x,y,t)の予め公開されたフレームとに基づいて当該平文多項式m(x,y,t)の係数を変数とする連立1次方程式を導き、この連立1次方程式を解くことにより平文候補Mlを生成する平文候補生成手段、
    前記1変数多項式h11(t),…,h1n(t)をそれぞれ除算して得られたn個の平文多項式候補m(uxl(t),uyl(t),t)から得られたn個の平文候補Mlにおいて共通した平文候補Mがあるか否かを判定する共通候補判定手段、
    前記判定の結果、共通した平文候補Mがあった場合に当該共通した平文候補Mを平文として出力する出力手段、
    として機能させるためのプログラム。
  30. 体Kの代数曲面X(x,y,t)=0のうち、x,yがtでパラメタライズされた曲線(x,y,t)=(ux(t),uy(t),t)であるセクションが存在する代数曲面XであるファイブレーションX(x,y,t)=0を公開鍵とし、前記ファイブレーションX(x,y,t)に対応する1つ以上のセクションを秘密鍵とする公開鍵暗号方式に関し、前記公開鍵であるファイブレーションX(x,y,t)と、前記秘密鍵であるセクションとを生成するための鍵生成装置に用いられるプログラムであって、
    前記鍵生成装置を、
    前記ファイブレーションX(x,y,t)の定数項以外の項の次数degt X’及び前記ファイブレーションX(x,y,t)の2変数x,yの係数集合ΛXを入力する手段、
    素数pとセクションの最大次数dとを格納する格納手段、
    前記格納手段内の素数pと最大次数dとに基づいて、素体Fp上の次数dの1変数多項式ux(t),uy(t)を生成し、当該1変数多項式ux(t),uy(t)から前記セクション(ux(t),uy(t),t)を生成するセクション生成手段、
    前記生成されたセクション及び前記入力された次数degt X’及び係数集合ΛXに基づいて、前記代数曲面のファイブレーションX(x,y,t)を変数x,yの多項式としてみたときに定数項以外の項の係数をランダムに生成することにより、定数項以外の項を生成する係数生成手段、
    前記定数項以外の項の次数degt X’及び前記定数項の次数degt a00のうち、いずれか大きい方の次数をファイブレーションの次数degt Xに決定し、前記定数項以外の項及び前記定数項からなるファイブレーションX(x,y,t)を生成するファイブレーション生成手段、
    前記ファイブレーションの次数degt X及び係数集合ΛXに基づき、条件“degt X < degt m < degt f”及び“(degx f,degy f)∈Λf”の範囲で、識別多項式の次数degt f及び2変数x,yの係数集合Λfをランダムに生成する手段(但し、degt mは平文多項式の変数tの次数、degt fは識別多項式の変数tの次数、degx fは識別多項式の変数xの次数、degy fは識別多項式の変数yの次数)、
    前記係数集合Λf,ΛXの積ΛfΛXを計算し、この計算結果の部分集合で且つ条件“(degx m,degy m,degt m)∈Γm”の範囲で、平文多項式の2変数x,yの係数集合Λmを決定する手段(但し、Γmは、平文多項式m(x,y,t)に含まれる非零の単項式の(x指数,y指数,t指数)の集合)、
    前記平文多項式の次数degt mを、条件“degt X <degt m < degt f”の範囲で決定する手段、
    前記係数集合Λfに含まれる各要素(i,j)に基づき、要素(i,j)=(degx f, degy f)の場合にはdeg fij(t)=degt fとして前記識別多項式の係数の次数fij(t)を決定し、要素(i,j)≠(degx f, degy f)の場合には0≦deg fij(t)≦degt fの範囲でランダムに前記次数fij(t)を決定することにより、前記係数集合Λf及び前記次数fij(t)からなる識別多項式のフレームFRfを決定する手段、
    前記代数曲面から係数集合ΛXとΛXの要素(i,j)に対応する係数の次数deg aij(t)を抽出し、この係数集合ΛX及び係数の次数deg aij(t)から代数曲面のフレームFRXを生成する手段、
    前記各フレームFRf,FRXを互いに積算してフレームFRg(=FRf FRX)を生成する手段、
    前記平文多項式の係数集合Λmに含まれる要素(i,j)に対応する係数の次数deg mij(t)をdeg mij(t)=min{degt m, deg gij(t)}に決定する手段、
    前記係数集合Λm及び次数deg mij(t)からなるフレームであって、係数mijkを変数とした平文多項式のフレームに対し、前記セクションを代入するセクション代入手段と、
    前記代入した結果得られる変数mijkを順序付けして変数ベクトル(m000,m001,…,mijk,…)を生成する手段、
    前記代入した結果得られる1変数多項式m(ux(t),uy(t),t)をtに関して整理し、tの係数mijkux(t)iuy(t)jとなる多項式を抽出する係数抽出手段、
    前記変数ベクトル(m000,m001,…,mijk,…)との積が丁度前記tの係数mijkux(t)iuy(t)jとなるように係数行列を生成する係数行列生成手段、
    前記係数行列の階数を計算する係数行列計算手段、
    前記階数が前記変数ベクトルの次元数と一致しない場合に、前記1変数多項式m(ux(t),uy(t),t)の一部の変数mijkを定数にする変数調整手段、
    前記階数が前記変数ベクトルの次元数と一致した場合の1変数多項式m(ux(t),uy(t),t)に対応する3変数多項式m(x,y,t)のフレームを平文多項式のフレームFRmとして出力する出力手段、
    として機能させるためのプログラム。
JP2009050976A 2009-03-04 2009-03-04 暗号装置、復号装置、鍵生成装置及びプログラム Pending JP2010204466A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009050976A JP2010204466A (ja) 2009-03-04 2009-03-04 暗号装置、復号装置、鍵生成装置及びプログラム
US12/560,895 US8311215B2 (en) 2009-03-04 2009-09-16 Encryption apparatus, decryption apparatus, key generation apparatus, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009050976A JP2010204466A (ja) 2009-03-04 2009-03-04 暗号装置、復号装置、鍵生成装置及びプログラム

Publications (1)

Publication Number Publication Date
JP2010204466A true JP2010204466A (ja) 2010-09-16

Family

ID=42678277

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009050976A Pending JP2010204466A (ja) 2009-03-04 2009-03-04 暗号装置、復号装置、鍵生成装置及びプログラム

Country Status (2)

Country Link
US (1) US8311215B2 (ja)
JP (1) JP2010204466A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11288985B2 (en) 2020-02-07 2022-03-29 Kabushiki Kaisha Toshiba Encryption device, decryption device, encryption method, decryption method, encryption program product, and decryption program product
JP7443217B2 (ja) 2020-11-12 2024-03-05 株式会社東芝 暗号化装置、復号装置、暗号方法、復号方法、暗号化プログラム及び復号プログラム

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5178810B2 (ja) * 2010-12-09 2013-04-10 株式会社東芝 伸長装置および圧縮装置
JP5814880B2 (ja) 2012-07-31 2015-11-17 三菱電機株式会社 暗号システム、暗号方法、暗号プログラム及び復号装置
US20150249467A1 (en) * 2014-03-03 2015-09-03 Kabushiki Kaisha Toshiba Storage device, controller, and data writing method
KR102520502B1 (ko) * 2016-08-02 2023-04-12 엑스-로고스, 엘엘씨 기하 대수학을 이용한 강화된 데이터-중심 암호화 시스템을 위한 방법 및 시스템
WO2018216749A1 (ja) * 2017-05-25 2018-11-29 Necネットワーク・センサ株式会社 暗号通信方法、情報処理装置及びプログラム
JP6977882B2 (ja) * 2018-05-25 2021-12-08 日本電信電話株式会社 秘密一括近似システム、秘密計算装置、秘密一括近似方法、およびプログラム
US11481761B2 (en) * 2018-06-03 2022-10-25 VVOW Company Limited Peer-to-peer cryptocurrency and crypto asset trading platform
JP2022012403A (ja) * 2020-07-01 2022-01-17 キヤノン株式会社 プログラム、情報処理装置及び制御方法
US11444767B1 (en) * 2021-03-03 2022-09-13 Nxp B.V. Method for multiplying polynomials for a cryptographic operation
CN114861204B (zh) * 2022-05-06 2023-09-22 北京瀚博网络科技有限公司 一种大数据信息安全存储加密系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005331656A (ja) * 2004-05-19 2005-12-02 Toshiba Corp 暗号装置、復号装置、鍵生成装置、プログラム及び方法
JP2007139895A (ja) * 2005-11-15 2007-06-07 Toshiba Corp 暗号装置、復号装置、プログラム及び方法
JP2007271715A (ja) * 2006-03-30 2007-10-18 Toshiba Corp 鍵生成装置、プログラム及び方法
JP2008026498A (ja) * 2006-07-19 2008-02-07 Toshiba Corp 暗号装置、復号装置、プログラム及び方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4384056B2 (ja) 2005-01-11 2009-12-16 株式会社東芝 暗号装置、復号装置、鍵生成装置、プログラム及び方法
JP4575251B2 (ja) 2005-07-25 2010-11-04 株式会社東芝 デジタル署名生成装置、デジタル署名検証装置、デジタル署名生成方法、デジタル署名検証方法、デジタル署名生成プログラム及びデジタル署名検証プログラム
JP2009175197A (ja) 2008-01-21 2009-08-06 Toshiba Corp 暗号装置、復号装置、鍵生成装置及びプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005331656A (ja) * 2004-05-19 2005-12-02 Toshiba Corp 暗号装置、復号装置、鍵生成装置、プログラム及び方法
JP2007139895A (ja) * 2005-11-15 2007-06-07 Toshiba Corp 暗号装置、復号装置、プログラム及び方法
JP2007271715A (ja) * 2006-03-30 2007-10-18 Toshiba Corp 鍵生成装置、プログラム及び方法
JP2008026498A (ja) * 2006-07-19 2008-02-07 Toshiba Corp 暗号装置、復号装置、プログラム及び方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6013025503; Koichiro Akiyama, Yasuhiro Goto: 'n improvement of the algebraic surface public-key cryptosystem' 2008年暗号と情報セキュリティシンポジウム講演論文集 , 20080122 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11288985B2 (en) 2020-02-07 2022-03-29 Kabushiki Kaisha Toshiba Encryption device, decryption device, encryption method, decryption method, encryption program product, and decryption program product
JP7443217B2 (ja) 2020-11-12 2024-03-05 株式会社東芝 暗号化装置、復号装置、暗号方法、復号方法、暗号化プログラム及び復号プログラム

Also Published As

Publication number Publication date
US8311215B2 (en) 2012-11-13
US20100226496A1 (en) 2010-09-09

Similar Documents

Publication Publication Date Title
JP2010204466A (ja) 暗号装置、復号装置、鍵生成装置及びプログラム
JP4575283B2 (ja) 暗号装置、復号装置、プログラム及び方法
JP4197710B2 (ja) 暗号装置、復号装置、プログラム及び方法
JP4384056B2 (ja) 暗号装置、復号装置、鍵生成装置、プログラム及び方法
JP4664850B2 (ja) 鍵生成装置、プログラム及び方法
JP3560860B2 (ja) 秘密分散システム、装置及び記憶媒体
JP4282546B2 (ja) 暗号装置、復号装置、鍵生成装置、プログラム及び方法
JP2009116183A (ja) 暗号装置、復号装置、鍵生成装置及びプログラム
US8548161B2 (en) Crytographically transforming data text
JP2009175197A (ja) 暗号装置、復号装置、鍵生成装置及びプログラム
JP5852518B2 (ja) 認証暗号化装置、認証復号装置、およびプログラム
JP4737334B2 (ja) 暗号装置、復号装置、暗号プログラム、復号プログラム、及び記録媒体
JP5732429B2 (ja) 秘密分散システム、データ分散装置、データ復元装置、秘密分散方法、およびプログラム
Kazmirchuk et al. The Improvement of digital signature algorithm based on elliptic curve cryptography
JP7273742B2 (ja) 暗号化装置、復号装置、暗号方法、復号方法、暗号化プログラム及び復号プログラム
EP2947813B1 (en) Decryption service providing device, processing device, safety evaluation device, program, and recording medium
JP2007187908A (ja) サイドチャネル攻撃に耐性を有するモジュラーべき乗算計算装置及びモジュラーべき乗算計算方法
WO2019163636A1 (ja) 秘密計算装置、秘密計算認証システム、秘密計算方法、およびプログラム
US8924448B2 (en) Arithmetic device, method, and program product
JP2011040932A (ja) 認証付き暗号化装置、認証付き暗号化方法、検証付き復号装置、検証付き復号方法、暗号システム、プログラム、記録媒体
JP5300373B2 (ja) 代数的トーラスを用いたデータ圧縮処理を行う装置およびプログラム
JP5354994B2 (ja) 代数的トーラスを用いたデータ圧縮処理を行う装置およびプログラム
JP5573041B2 (ja) 情報処理装置、コード生成方法、コード検証方法およびプログラム
de Oliveira et al. An efficient software implementation of the hash-based signature scheme MSS and its variants
Téllez et al. Supersingular Isogeny and Ring Learning With Errors-Based Diffie-Hellman Cryptosystems: A Performance and Security Comparison

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110916

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130522

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130604

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20131015