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

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

Info

Publication number
JP2005331656A
JP2005331656A JP2004149052A JP2004149052A JP2005331656A JP 2005331656 A JP2005331656 A JP 2005331656A JP 2004149052 A JP2004149052 A JP 2004149052A JP 2004149052 A JP2004149052 A JP 2004149052A JP 2005331656 A JP2005331656 A JP 2005331656A
Authority
JP
Japan
Prior art keywords
polynomial
variable
plaintext
generating
message
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.)
Granted
Application number
JP2004149052A
Other languages
English (en)
Other versions
JP4282546B2 (ja
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 JP2004149052A priority Critical patent/JP4282546B2/ja
Priority to US11/128,283 priority patent/US7688973B2/en
Publication of JP2005331656A publication Critical patent/JP2005331656A/ja
Application granted granted Critical
Publication of JP4282546B2 publication Critical patent/JP4282546B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/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
    • 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
    • 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

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)
  • Storage Device Security (AREA)

Abstract

【課題】 量子計算機が出現しても安全性が確保でき、現在の計算機でも安全に実現可能であるとともに、小電力環境での実現可能性がある公開鍵暗号方式を構成する。
【解決手段】 代数曲面XのファイブレーションX(x,y,t)上の代数曲線(因子)のうちのセクションDを秘密鍵に用いた構成により、現代の数学で未解決の難問である代数曲面上の因子を求める求因子問題に安全性の根拠をおく公開鍵暗号方式の暗号装置、復号装置又は鍵生成装置を実現した。これにより、上記課題を解決する。
【選択図】 図1

Description

本発明は、代数曲面を用いた公開鍵暗号システムの暗号装置、復号装置、鍵生成装置、、プログラム及び方法に関する。
ネットワーク社会では、電子メールを始めとする多くの情報がネットワークを行き交うことにより、人々がコミュニケーションを行なう。このようなネットワーク社会において、暗号技術は情報の機密性や真正性を守る手段として広く活用されている。
暗号技術は、共通鍵暗号技術と公開鍵暗号技術に大きく分けることができる。共通鍵暗号はデータの攪拌アルゴリズムに基づいた暗号方式であり、高速に暗号化/復号ができる一方で、予め共通の鍵を持った2者間でしか秘密通信や認証通信ができない。
このため、共通鍵暗号は、主に有料デジタル放送のように、受信後にリアルタイムで復号されなければならない情報の暗号化に利用される。この場合、有料デジタル放送の復号鍵は、別途、限定受信システムと呼ばれる鍵配信システムを用いて視聴契約者だけに配信される。
一方、公開鍵暗号は数学的なアルゴリズムに基づいた暗号方式であり、暗号化/復号が共通鍵暗号より低速であるが、事前の鍵共有を必要とせずに、秘密通信や認証通信が可能となる特徴がある。詳しくは、公開鍵暗号は、通信の際には送信相手の公開鍵を用いて暗号処理を施すことで秘密通信を実現し、自己の秘密鍵を用いてデジタル署名を施すことで(成りすましを防ぐ)認証通信を可能とする。
ここで、インターネットに開設されているネットショッピング、銀行や証券会社のオンラインサイトでは、(クレジットカード番号や住所などの)顧客情報を盗聴から守るために、公開鍵暗号が用いられることが多い。理由は、顧客情報を暗号化するための暗号鍵を予め共有することが必ずしも可能でないため、共通鍵暗号が不向きなことによる。
代表的な公開鍵暗号には、RSA暗号と楕円曲線暗号がある。RSA暗号は、素因数分解問題の困難性を安全性の根拠としており、冪乗剰余演算が暗号化演算として用いられている。楕円曲線暗号は、楕円曲線上の離散対数問題の困難性を安全性の根拠としており、楕円曲線上の点演算が暗号化演算に用いられる。
これらの公開鍵暗号は、特定の鍵(公開鍵)に関する解読法は提案されているものの、一般的な解読法は知られていない。このため、安全性に関する重大な問題は、後に述べる量子計算機による解読法を除き、現在までのところ、見つかっていない。
この他の公開鍵暗号にはナップサック暗号及び多次多変数暗号などがある。ナップサック暗号は、(NP問題として知られている)ナップサック問題の困難性に安全性の根拠をおいた暗号方式である。多次多変数暗号は、体の拡大理論を利用して構成され、連立方程式の求解問題に安全性の根拠をおいた暗号方式である。
しかし、ナップサック暗号は、ほとんど全ての実現形態にて解読法が知られているので、安全性にかなり疑問がある。多次多変数暗号は、有力な解読法が知られている一方、この解読法は鍵サイズの増大により避けられることも知られている。とは言え、多次多変数暗号は、解読法を避けるのに必要な鍵サイズが膨大になり、問題視され始めている。
一方で、現在広く利用されているRSA暗号と楕円曲線暗号であっても量子計算機が出現すれば解読される危険に晒されている。量子計算機とは、量子力学で知られているエンタングルメントという物理現象を利用し、現在の計算機とは違った原理に基づいて超並列計算を実行可能な計算機である。かかる量子計算機は、現在までのところ実験レベルでしか動作が確認されていない仮想の計算機であるが、実現に向けた研究開発が進められている。1994年にショア(Shor)は、量子計算機を用いれば素因数分解や離散対数問題を効率的に解くアルゴリズムを構成できることを示した。即ち、量子計算機が実現すれば、素因数分解に基づくRSA暗号や、(楕円曲線上の)離散対数問題に基づく楕円曲線暗号は解読できることになる。
このような状況の下、量子計算機が実現されてもなお安全な公開鍵暗号が近年研究されてきている。量子計算機への耐性があると言われる暗号の一例として、量子公開鍵暗号が挙げられる(例えば、非特許文献1参照)。量子公開鍵暗号では、量子計算機を積極的に活用し、現在の計算機では生成が事実上不可能とされる強力なナップサック暗号を構成する鍵を量子計算機により生成する。これにより、量子公開鍵暗号では、量子計算機でも解読できない強力なナップサック暗号を構成し得る。
しかしながら、量子公開鍵暗号は、現在の計算機では鍵生成が不可能であるので、現時点では利用できない方式である。一方、多次多変数暗号は、現時点でも実現可能な公開鍵暗号であり、量子計算機でも解読が難しいとされる。しかし、多次多変数暗号は、現状の計算機に対して安全な鍵サイズが膨大なため、実用化が疑問視されている。
更に、公開鍵暗号は、共通鍵暗号と比較して、回路規模が大きく、処理時間も掛かるため、モバイル端末などの小電力環境では実現できないか、実現しても待ち時間が長いという問題がある。このため、小電力環境でも実現できる公開鍵暗号が求められている。
一般に公開鍵暗号は(素因数分解問題や離散対数問題などの)計算困難な問題を見出し、(秘密鍵を知らずに)暗号文を解読しようとする場合、当該計算困難な問題を解くことと同等になるように構成する。
しかし、計算困難な問題が見つかっても、その問題を安全性の根拠とする公開鍵暗号を容易に構成できる訳ではない。理由は、計算が困難すぎる問題を安全性の根拠にすると鍵を生成する問題も困難になるので、鍵を生成できないためである。一方、鍵生成が可能な程度に問題を容易にすると、解読も容易になってしまう。
従って、公開鍵暗号を構成するには、計算困難な問題を見つけるとともに、見つけた問題を、鍵生成できる程には容易だが、(生成した秘密鍵を知らずに)解読できる程には容易でないという絶妙なバランスを持つ問題に作り変える必要がある。このような問題の作り変えには高い創造性を必要とする。現実には、問題の作り変えが極めて困難なため、現在まで数えるほどの公開鍵暗号しか提案されていない。
T.岡本、K.田中、S.内山(T.Okamoto and K.Tanaka and S.Uchiyama)著:"量子公開鍵暗号システム(Quantum Public-Key Cryptosystems)",アドバンセズ・イン・クリプトロジー・クリプト2000(Advances in Cryptology - CRYPTO2000), レクチャー・ノーツ・イン・コンピュータ・サイエンス(Lecture Notes in Computer Science), 1880巻, pp.147-165, シュプリンガーフェアラーク(Springer-Verlag), 2000年. 松坂和夫著、「代数系入門」、岩波書店、1976年、p.140の定理8 D.コックス 他 著、「グレブナ基底と代数多様体入門(上)」、シュプリンガーフェアラーク(Springer-Verlag)
以上説明したように公開鍵暗号方式は、量子計算機でも解読が難しいことと、現在の計算機でも実用化できることが望まれている。更に、公開鍵暗号方式は、小電力環境でも実現できることが求められている。
本発明は上記実情を考慮してなされたもので、量子計算機が出現しても安全性が確保でき、現在の計算機でも安全に実現可能であるとともに、小電力環境での実現可能性がある公開鍵暗号方式を構成し得る暗号装置、復号装置、鍵生成装置、プログラム及び方法を提供することを目的とする。
第1の発明は、復号用の秘密鍵が代数曲面XのファイブレーションX(x,y,t)=0に対応する2つ以上のセクションのとき、公開鍵である代数曲面XのファイブレーションX(x,y,t)に基づいて、メッセージmを暗号化するための暗号装置であって、メッセージmを1変数tで次数(r−1)以下の平文多項式m(t)の係数として埋め込む平文埋め込み手段と、3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)を生成する多項式生成手段と、次数r以上のランダムな1変数既約多項式f(t)を生成する1変数既約多項式生成手段と、前記平文多項式m(t)に対し、前記各多項式p(x,y,t),q(x,y,t),f(t)と前記定義式X(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、前記平文多項式m(t)から暗号文F=Epk(m,p,q,f,X)を生成する暗号化手段とを備えた暗号装置である。
第2の発明は、復号用の秘密鍵が代数曲面XのファイブレーションX(x,y,t)=0に対応する1つのセクションのとき、公開鍵である代数曲面XのファイブレーションX(x,y,t)に基づいて、メッセージmを暗号化するための暗号装置であって、メッセージmを1変数tで次数(r−1)以下の平文多項式m(t)の係数として埋め込む平文埋め込み手段と、3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)を生成する多項式生成手段と、次数r以上のランダムな1変数既約多項式f(t)を生成する1変数既約多項式生成手段と、前記平文多項式m(t)に対し、前記1変数既約多項式f(t)と、少なくとも一方が相異なる2つのランダムな多項式の組q(x,y,t),q(x,y,t)とp(x,y,t),p(x,y,t)と、公開された代数曲面XのファイブレーションX(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、前記平文多項式m(t)から複数の暗号文F=Epk(m,p,q,f,X)及びF=Epk(m,p,q,f,X)を生成する暗号化手段とを備えた暗号装置である。
第3の発明は、メッセージmが1変数tで次数(r−1)以下の平文多項式m(t)の係数として埋め込まれた平文多項式m(t)に対し、3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)と、次数r以上のランダムな1変数既約多項式f(t)と、公開鍵である代数曲面XのファイブレーションX(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により前記平文多項式m(t)から生成された暗号文F=Epk(m,p,q,f,X)が入力されたとき、予め保持する秘密鍵である代数曲面XのファイブレーションX(x,y,t)=0に対応する2つのセクションD,Dに基づいて、前記暗号文Fから前記メッセージmを復号するための復号装置であって、前記入力された暗号文Fに対し、前記各セクションD,Dを代入して2つの1変数多項式h1(t),h2(t)を生成するセクション代入手段と、前記各1変数多項式h1(t),h2(t)を互いに減算し、減算結果{h1(t)−h2(t)}を得る多項式減算手段と、前記減算結果{h1(t)−h2(t)}を因数分解する因数分解手段と、因数分解結果から最も大きな次数を持つ既約多項式f(t)を抽出する多項式抽出手段と、前記1変数多項式h1(t)を前記既約多項式f(t)で除算し、剰余として平文多項式m(t)を得る剰余演算手段とを備えた復号装置である。
第4の発明は、メッセージmが1変数tで次数(r−1)以下の平文多項式m(t)の係数として埋め込まれた平文多項式m(t)に対し、次数r以上のランダムな1変数既約多項式f(t)と、少なくとも一方が相異なる2つのランダムな多項式の組q(x,y,t),q(x,y,t)とp(x,y,t),p(x,y,t)と、公開された代数曲面XのファイブレーションX(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、前記平文多項式m(t)から生成された複数の暗号文F=Epk(m,p,q,f,X)及びF=Epk(m,p,q,f,X)が入力されたとき、予め保持する秘密鍵である代数曲面XのファイブレーションX(x,y,t)=0に対応する1つのセクションDに基づいて、前記暗号文F,Fから前記メッセージmを復号するための復号装置であって、前記入力された2つの暗号文F,Fに対し、前記セクションDを代入することにより、2つの1変数多項式h1(t),h2(t)を生成するセクション代入手段と、前記各1変数多項式h1(t),h2(t)を互いに減算し、減算結果{h1(t)−h2(t)}を得る多項式減算手段と、前記減算結果{h1(t)−h2(t)}を因数分解する因数分解手段と、因数分解結果から最も大きな次数を持つ既約多項式f(t)を抽出する多項式抽出手段と、前記1変数多項式h1(t)を前記既約多項式f(t)で除算し、剰余として平文多項式m(t)を得る剰余演算手段とを備えた復号装置である。
第5の発明は、メッセージmを暗号化するための公開鍵である代数曲面XのファイブレーションX(x,y,t)と、前記暗号化されたメッセージmを復号するための秘密鍵である代数曲面XのファイブレーションX(x,y,t)=0に対応する2つのセクションD,Dとを生成するための鍵生成装置であって、ランダムな1変数多項式λ(t)を生成する第1の1変数多項式生成手段と、前記1変数多項式λ(t)で割り切れる1変数多項式λ(t)を生成する第2の1変数多項式手段と、前記1変数多項式λ(t)に基づいて、互いの差分{u(t)−v(t)}がλ(t)となるように、変数xをパラメータtで表示する2つの1変数多項式u(t),v(t)を生成する手段と、前記1変数多項式λ(t)に基づいて、互いの差分{u(t)−v(t)}がλ(t)となるように、変数yをパラメータtで表示する2つの1変数多項式u(t),v(t)を生成する手段と、前記各1変数多項式u(t),v(t),u(t),v(t)に基づいて、前記2つのセクションD:(x,y,t)=(u(t),u(t),t)及びD:(x,y,t)=(v(t),v(t),t)を生成するセクション生成手段と、前記各セクションD,Dを持つ代数曲面XのファイブレーションX(x,y,t)を生成する代数曲面生成手段とを備えた鍵生成装置である。
第6の発明は、メッセージmを暗号化するための公開鍵である代数曲面XのファイブレーションX(x,y,t)と、前記暗号化されたメッセージmを復号するための秘密鍵である代数曲面XのファイブレーションX(x,y,t)=0に対応する1つのセクションDとを生成するための鍵生成装置であって、ランダムな1変数多項式群ξ(t)(但し、iは自然数)を生成する第1の1変数多項式生成手段と、前記代数曲面の変数x,yをパラメータtで表示する2つの1変数多項式u(t),u(t)を生成する第2の1変数多項式生成手段と、前記各1変数多項式u(t),u(t)に基づいて、前記セクションD:(x,y,t)=(u(t),u(t),t)を生成するセクション生成手段と、前記1変数多項式群ξ(t)及び前記セクションDに基づいて、前記セクションDを持つ代数曲面XのファイブレーションX(x,y,t)を生成する代数曲面生成手段とを備えた鍵生成装置である。
(作用)
第1乃至第6の各発明は、代数曲面XのファイブレーションX(x,y,t)上の代数曲線(因子)のうちのセクションを秘密鍵に用いており、現代の数学で未解決の難問である代数曲面上の因子を求める求因子問題に安全性の根拠をおく公開鍵暗号方式の暗号装置、復号装置又は鍵生成装置を実現したので、量子計算機が出現しても安全性が確保でき、現在の計算機でも安全に実現可能であるとともに、小電力環境での実現可能性がある公開鍵暗号方式を構成することができる。
以上説明したように本発明によれば、量子計算機が出現しても安全性が確保でき、現在の計算機でも安全に実現可能であるとともに、小電力環境での実現可能性がある公開鍵暗号方式を構成することができる。
以下、本発明の各実施形態について図面を参照しながら説明する。
(第1の実施形態)
本発明で述べる代数曲面は体K上定義された連立(代数)方程式の解の集合のうち2次元の自由度を持ったものと定義される。例えば、次の式(1)に示す体K上の連立方程式は変数5つに対し、それらを束縛する3つの方程式があるので2次元の自由度を持っているので、代数曲面となる。
(x,y,z,v,w)=0
(x,y,z,v,w)=0
(x,y,z,v,w)=0 …(1)
特に、式(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=p)があるが、本実施形態では簡単のため主に素体Fpのみを扱う。一般に素体Fpのpは素体Fpの標数と呼ばれる。
一方、一般の有限体でも本発明は自明な変形を施すことによって同様に成立する。公開鍵暗号ではメッセージをデジタルデータとして埋め込む必要から有限体上で構成することが多く、本実施形態においても同様に有限体(本実施形態では特に素体)Fp上定義された代数曲面を扱う。
代数曲面X:f(x,y,z)=0上には通常代数曲線が複数存在する。このような代数曲線は代数曲面上の因子と呼ばれる。
一般に代数曲面の定義式が与えられた時に(非自明な)因子を求める問題は現代の数学においても未解決の難問であり、総当りなどの原始的な方法を除けば一般的な解法は知られていない。特に本実施形態で扱うような有限体で定義された代数曲面においては有理数体などの無限体(無限個の元からなる体)と比較しても手掛かりが少なく、より難しい問題であることが知られている。
本実施形態ではこの問題を代数曲面上の求因子問題もしくは単に求因子問題と呼び、代数曲面上の求因子問題に安全性の根拠をおく公開鍵暗号を構成する。
代数曲面Xの定義式f(x,y,z)=0において、変数zをtに変えて
t(x,y):=f(x,y,t)
とおく。これをK上の1変数代数関数体K(t)の元を係数とする多項式としてみたとき、gt(x,y)=0がK(t)上の代数曲線を定義するとき、Xはtをパラメータとするアフィン直線A1 上のファイブレーションを持つといい、f(x,y,t)=0を代数曲面Xのファイブレーションと呼び、Xなどと表す(尚、以下では簡単のためファイブレーションであることが明らかであるときには単なるXと表す)。ファイブレーションを持つ代数曲面には、セクションと呼ばれる
(x,y,t)=(u(t),u(t),t)
のように、tでパラメタライズされたX上の代数曲線が存在する。
またパラメータtに体Kの元tを代入して得られる代数曲線はファイバーと呼ばれXtのように表される。ここで、ファイバーとセクションは共に代数曲面Xの因子である。
一般に代数曲面のファイブレーションが与えられたとき、それに対応するファイバーは(tに体の元を代入することにより)直ちに求まるが、対応するセクションを求めることは極めて難しい。この意味ではファイバーは自明な因子であり、セクションは非自明な因子であると言える。
本実施形態で述べる公開鍵暗号は代数曲面上の求因子問題のうち、特に代数曲面XのファイブレーションXが与えられたときセクションを求める問題に安全性の根拠をおいた公開鍵暗号である。
ファイブレーションからセクションを求めるには現代の数学においてもセクション(u(t),u(t),t)を
deg u(t)<r,deg u(t)<r
と仮定した上で、
Figure 2005331656
を立てて、これを解くことによって求める方法しか知られていない。即ち、本発明の公開鍵暗号も従来技術で述べた多次多変数暗号と同様に連立方程式の求解問題に帰着すると言える。しかし、多次多変数暗号が(現代の数学ではかなり解明されている)有限体の拡大理論に依存しているのに対し、代数曲面暗号は数学上の未解決問題である求因子問題に依存している。このため、本発明の代数曲面暗号は、多次多変数暗号に比べ、問題の困難さのレベルが著しく高い。
以下では代数曲面上の求因子問題に基づいた公開鍵暗号の2つの具体的な構成を説明する。
(第1の実施形態)
本実施形態の公開鍵は以下の4つである。
1.素体の標数p
2.Fp上の代数曲面Xのファイブレーション:X(x,y,t)=0
3.Fp上の1変数既約多項式f(t)の最小次数r(但しrはX(x,y,t)におけるtの最大次数より大きく取る)。
4.(秘密鍵である)セクションにおける多項式u(t),u(t),v(t),v(t)の最大次数d
秘密鍵は以下の2つの異なるセクションD,Dである。
1.Fp上の代数曲面Xのセクション:D:(x,y,t)=(u(t),u(t),t)
2.Fp上の代数曲面Xのセクション:D:(x,y,t)=(v(t),v(t),t)
これらは後述する方法(鍵生成方法)で容易に求めることができる。
次に暗号化処理の概要を述べる。暗号化処理ではまず暗号化したいメッセージ(以下では平文と呼ぶ)をブロック分割して
m=m‖m‖・・・‖mr-1のようにし、平文多項式m(t)に
m(t)=mr-1r-1+・・・+m+m
に埋め込む(平文埋め込み処理)。ここでm(t)をFp上の多項式とするために、各m(0≦i≦r−1)はFpの元となるように取る必要がある。即ち、平文はpのビット長に基づいて
0≦m≦p−1
となるように平文を分割する。
次にFp上のランダム多項式p(x,y,t),q(x,y,t)をランダムに決める。このときp(x,y,t)においては、以下の2条件を満たして決定する必要がある。
即ち、各項のx指数、y指数、t指数をe,e,eとすると
(e+e)d+e<r …(3)
となる範囲内で取る。これは後述する復号処理において平文を一意に決定するための条件である。また、deg,deg,degによって、それぞれ多項式のx,y,tに関する次数を表すとし
dx:=deg X(x,y,t)、
dy:=deg X(x,y,t)
とおくと、後述する安全性からの要請により、
Figure 2005331656
更にf(t)も同様に、後述する安全性からの要請により
r>deg X(x,y,t) …(5)
を満たすように取らなくてはならない。
更にFp上ランダムな1変数のr次既約多項式f(t)を決める。ここで既約多項式とは、これ以上因数分解できない多項式のことである。有限体上の1変数多項式の場合、その既約性判定は極めて容易であることが知られている。以上の式m(t),p(x,y,t),q(x,y,t),f(t)及び公開鍵である代数曲面XのファイブレーションX(x,y,t)から
F(x,y,t)=m(t)+f(t)p(x,y,t)+X(x,y,t)q(x,y,t) …(6)
によって暗号文F(x,y,t)を計算する。後で<安全性の検討>として述べる通り、これらランダムな多項式p(x,y,t),q(x,y,t),f(t)はそのどの1つが欠けても安全性に問題が生ずる。即ち、暗号化の計算式は必然性のある式となっている。
暗号文F(x,y,t)を受け取った受信者は所有する秘密鍵D,Dを利用して次のように復号を行う。まず、セクションD,Dを暗号文F(x,y,t)に代入する。ここで、セクションD,Dを代数曲面X(x,y,t)に代入すると
X(u(t),u(t),t)=0、X(v(t),v(t),t)=0
なる関係があることに注意すると
(t)=F(u(t),u(t),t)=m(t)+f(t)p(u(t),u(t),t)
(t)=F(v(t),v(t),t)=m(t)+f(t)p(v(t),v(t),t)
という関係を持つ2つの式h(t)h(t)が求まることが分かる。次に、2式を辺々引き算して
(t)−h(t)=f(t){p(u(t),u(t),t)−p(v(t),v(t),t)}
…(7)
を計算する。次にh(t)−h(t)を因数分解して、最大次数を持つ因数をf(t)と定める。ここで最大次数の因子がf(t)であるためには、f(t)の次数をrとした時、
deg(p(u(t),u(t),t)−p(v(t),v(t),t))<r …(8)
となるようなp(x,y,t)を選択すれば十分であり、このためには
deg(p(u(t),u(t),t))<r
deg(p(v(t),v(t),t))<r …(9)
の両方が成り立つように選択する必要がある。しかし、送信者にはセクションが秘匿されているのでrを十分大きく取るとともに、セクションの各要素となっている多項式u(t),u(t),v(t),v(t)における次数の最大値dを公開鍵として公開している。即ち、p(x,y,t)を決定するときは式(9)を満たすために、その各項cxexeyetの指数e,e,eが条件式(3)を満たしていることが必要となる。尚、h(t)−h(t)の因数分解は1変数多項式の因数分解が容易であることから十分有効な時間内に処理可能である。得られたf(t)でh(t)を除すると(m(t)の次数がf(t)の次数r未満であることに注意すると)
(t)=m(t)+f(t)p(u(t),u(t),t)
の関係が得られ、平文多項式m(t)が得られる。得られた平文多項式m(t)から平文埋め込み処理と逆の処理で平文mを求めることができる。ここで、m(t)が剰余として一意的であることは特筆すべきことである。一意的でないと平文多項式m(t)の候補が複数存在してしまい、真の平文多項式を特定することが困難になる。m(t)が一意的である理由はh(t)が含まれる一変数多項式環F[t]においては整数と同様に除法の定理が成立するため、一変数多項式を一変数多項式で割った商と剰余は一意的となるからである。多項式環における除法の定理の証明は非特許文献2にある。
一方で2変数以上の多項式では除法の定理が一般には成立しないことが知られている(例えば、非特許文献3参照)。
最後に本実施形態における鍵生成方法を説明する。本実施形態の鍵生成はセクションD,Dをランダムに選び、それに対応したファイブレーションを計算することによって行う。但し、生成された代数曲面が2つのセクションを同時に持つようにするために以下のような工夫が必要となる。
ここでは簡単のため代数曲面のうち楕円曲面Eを例にとって鍵生成方法を示す。楕円曲面は
:y+y=x+a(t)x+b(t)
というファイブレーションを持つ代数曲面であると定義することができる。ここでa(t),b(t)は1変数多項式である。まず、素体の標数pを決める。このときpは小さくても安全性に問題は生じない。さて、セクションD,D
:(x,y,t)=(u(t),u(t),t)、
:(x,y,t)=(v(t),v(t),t)
とおいて楕円曲面Eに代入し、
(t)+u(t)=u(t)+a(t)u(t)+b(t)
(t)+v(t)=v(t)+a(t)v(t)+b(t)
を得る。これらを辺々引くとb(t)が消え、
(t)−v(t)−(u(t)−v(t))−(u(t)−v(t))=a(t)(u(t)−v(t))
となり、a(t)を多項式とするには、たとえば
(t)−v(t)|u(t)−v(t)
であれば十分である。このことを利用して以下に示すアルゴリズムで鍵生成を行うことができる。ここで、k(t)|k(t)は、多項式k(t)が多項式k(t)を割り切ることを意味している。まず、λ(t)|λ(t)となる2つの多項式をランダムに選択する。具体的にこのような多項式の組を求めるには、例えばλ(t)をランダムに与えて、同じくランダムな多項式c(t)によってλ(t)=c(t)λ(t)を計算することによってλ(t)を求めることで実現できる。次に多項式v(t)をランダムに選択し、
(t)−v(t)=λ(t)
によってu(t)を計算する。同様に多項式v(t)をランダムに選択し
(t)−v(t)=λ(t)
によってu(t)を計算する。以上の手段で計算されたu(t),v(t),u(t),v(t)を利用して
a(t)={u(t)−v(t)−(u(t)−v(t))−(u(t)−v(t))}/(u(t)−v(t))
…(10)
を計算することにより多項式a(t)が計算できる。更にb(t)はa(t)を利用して
b(t)=u(t)+u(t)−u(t)−a(t)u(t) …(11)
によって得られる。
鍵生成方法は楕円曲面以外の代数曲面であっても例えばy+y=x+a(t)+b(t)のような形の定義式を仮定するなら同様に可能であり、楕円曲面のみに限定される鍵生成方法ではない。しかし、例えばxyの項を含むような代数曲面には本実施形態で述べた鍵生成方法は適用できない。このような代数曲面においては第2の実施形態で述べる鍵生成方法が有効である。
但し、後で<安全性の検討>として述べる通り、代数曲面の式の形状には以下のような条件が必要となる。
『代数曲面XのファイブレーションX(x,y,t)をx,yの2変数多項式として見たとき(即ち、tを定数と見なしたとき)、xの1次の項c(t)xとyの1次の項c(t)yとを含み、c(t)とc(t)との間にはc(t)=c(t)などの特別な関係が無いものとする』(条件X)
従って、本発明の鍵生成処理においては代数曲面としてこの条件Xを満たすものを想定している。尚、本実施形態で例として述べる代数曲面は全てこの条件Xを満たしている。
最後にd及びrを求める方法を示す。これらは復号方法から式(3)を満たさなければならないことが分かっている。まずdは鍵生成方法で2つのセクションが求まっているため、そのu(t),v(t),u(t),v(t)の次数の最大値として決定する。rは代数曲面X(x,y,t)におけるt次数dから式(5)を満たすように取り、更にX(x,y,t)のx,y次数dから式(4),式(3)を満たすように修正する。そのような値の下限値をrとしても良い。例えば
r=(d+1+d+1)d+d
のように選択する方法もある。
<安全性の検討>
以下では、上述のように構成した本発明の公開鍵暗号の安全性に関して考察する。本発明の公開鍵暗号は代数曲面のファイブレーションXが与えられたとき、そのセクションを求める問題の難しさを安全性の根拠としている。一方でセクションは代数曲面を1変数代数関数体K(t)上の代数曲面と考えたとき、代数曲線上のK(t)有理点と捉えることができる。楕円曲面y+y=x+a(t)+b(t)を例に取り、このことを詳しく説明する。1変数代数関数体とは
K(t) = { f(t)/g(t)|f(t) ∈ K[t],g(t) ∈ K[t]−{0} }
で定義され、K係数の多項式を分母分子とする集合であり、体になる。即ち、体K上定義された楕円曲線y+y=x+ax+bを1変数代数関数体K(t)上定義すると楕円曲面になるという関係を持っている。そこで逆に、楕円曲面をK(t)上定義された楕円曲線と考えると、セクションの各要素x,y,tが1変数代数関数体K(t)の元からなることから、セクション自体をK(t)上定義された点と捉えることができる。このようにK(t)上の点で、当該代数曲面(この例では楕円曲面)の式を満たすものをK(t)有理点という。従って、主張の通り、セクションは代数曲面を1変数代数関数体K(t)上の代数曲面と考えたとき、代数曲線上のK(t)有理点と捉えることができる。尚、K上の点で当該代数曲面(この例では楕円曲面)の式を満たすものをK有理点という。
ファイブレーションを持つ代数曲面Xの場合、それが射影的ならば因子の間に代数的同値や数値的同値関係が定義できるので、X上の曲線(既約因子)は本質的にセクションとファイバーに分けられる。よって、X上の曲線はその2種類を考察すればよい。
しかし、Xがアフィン曲面である場合、因子の形や同値関係が、射影曲面のときとかなり異なるので、セクションやファイバー以外の曲線も考察しなければならない。具体的には、tをパラメータとした有理曲線(セクション)に加えて、xやyをパラメータとする曲線についても考える必要がある。これを一般的に表すと、座標(x,y,t)を変数sによって
x=u(s),y=u(s),t=u(s) …(12)
のようにパラメータ表示することになる。ここで、x,y,tのいずれかを定数に固定する因子(hyperplane section)及びその既約成分は容易に求めることができるので、本発明における代数曲面Xに関する求因子問題は「x,y,tのいずれも定数とならない1変数パラメータ表示(12)で表される因子は求めることは非常に困難である。」ということができる。ここでは、この求因子問題の難しさを仮定して、代数曲線暗号の安全性を検証する。
まず、暗号文
F(x,y,t)=m(t)+f(t)p(x,y,t)+X(x,y,t)q(x,y,t)
が与えられたとき、復号処理はtの多項式m(t)を特定することである。前述した復号方式では、F(x,y,t)にX(x,y,t)のセクション(u(t),u(t),t)及び(v(t),v(t),t)を代入し、多項式の因数分解により
f(t){p(u(t),u(t),t)−p(v(t),v(t),t)}
を導き出す操作がポイントとなる。以下では、次の3通りの攻撃方法[攻撃1]〜[攻撃3]に分類し、上記の操作以外に復号ができないことを検証する。
[攻撃1]式F(x,y,t)の形状からm(t)を判断する。
[攻撃2]変数x,y,tに何かを代入又はリダクションを行ってm(t)を取り出す。
[攻撃3]変数x,y,tに関する微分、偏微分を用いてm(t)を求める。
[攻撃1]式の形状から判断する攻撃方法
m(t)はtのみに関する多項式であり、もしF(x,y,t)の中にtのみの多項式がこれ以外になければ、F(x,y,t)の形状からm(t)が特定できる。しかし、
F(x,y,t)
={m(t)+cf(t)}+f(t){p(x,y,t)−c}+X(x,y,t)q(x,y,t)
と変形すれば明らかなように、F(x,y,t)の中のtの多項式はm(t)とは限らない。また、たとえm(t)+cf(t)が分かったとしても、f(t)が未知である限りm(t)を求めることはできない。
[攻撃2]変数への代入又はリダクションによる攻撃方法
f(x,y,t)をg(x,y,t)でリダクションするとはf(x,y,t)をg(x,y,t)で割った余りを求めることである。
[攻撃2−1]2次元多様体の代入による攻撃
いま公開されている情報は曲面の定義式X(x,y,t)だけなので、F(x,y,t)に対し利用して意味のある2次元多様体はX(x,y,t)自身である。これについては、グレブナー基底等を用いて暗号文F(x,y,t)をX(x,y,t)でリダクションすることが考えられる。しかし、3変数多項式では、一般に除法の定理が成り立たないので、F(x,y,t)からm(t)+f(t)p(x,y,t)が得られる確証はない。また、たとえ得られたとしても、[攻撃1]で述べたように、f(t)が未知であるのでm(t)の特定には至らない。
[攻撃2−2]1次元多様体の代入による攻撃
1次元多様体とは曲線のことである。一般の曲線は連立方程式によって定義される。その連立方程式がF(x,y,t)やX(x,y,t)と関係していない場合は、使える方法は多項式によるリダクションのみである。しかし、これは前述の2次元多様体の代入による攻撃で説明したようにm(t)の特定にはつながらない。
一方、F(x,y,t)やX(x,y,t)と密接に関係する曲線には次の2通りがある。
(i)x,y,tのいずれかを定数にする曲線
(ii)x,y,tのいずれも定数にせず、パラメータ表示(12)を持つ曲線
そして、曲線には次の2通りがある。
(a)曲面X上にある曲線(つまり、既約因子)
(b)曲面X上にない曲線
これらの分類により4つの場合が考えられるが、(ii)かつ(a)の場合は求因子問題の仮定により一般には求めることができないので、攻撃には使えない。よって、残りの3つの場合を検討する。
○(i)かつ(a)の場合
これはX上にあるファイバーとハイパープレーン・セクションとを用いた攻撃である。
まず、x=xで固定する場合、定義式からX(x,y,t)なる多項式を得る。また、暗号文F(x,y,t)にx=xを代入すると
F(x,y,t)=m(t)+f(t)p(x,y,t)+X(x,y,t)q(x,y,t)となる。
このとき、F(x,y,t)をX(x,y,t)で割ることによってm(t)+f(t)p(x,y,t)を取り出すことができれば、tのみからなる項とそうでない項を分類して考えることによってm(t),f(t)の候補が絞れる。更にxをx,x,x,・・・のように変化させることによりm(t)が求まる可能性がある。しかし、条件(5)と(4)によって、yについてもtについてもm(t)+f(t)p(x,y,t)の次数はX(x,y,t)の次数よりも大きい。よって、m(t)+f(t)p(x,y,t)を特定することはできない。
y=yで固定する場合もx=xのときと同様である。条件(5)と(4)によって、m(t)+f(t)p(x,y,t)を、F(x,y,t)をX(x,y,t)で割った剰余として特定することはできない。
一方、t=tで固定する場合、定義式からX(x,y,t)なる多項式を得る。これは、ファイバーの式である。また、暗号文F(x,y,t)にt=tを代入すると
F(x,y,t)=m(0)+f(0)p(x,y,t)+X(x,y,t)q(x,y,t)
となる。このときも、F(x,y,t)をX(x,y,t)で割ることを考えるが、条件(5)と(4)によって、xについてもyについてもm(0)+f(0)p(x,y,t)の次数はX(x,y,t)の次数よりも大きい。よって、(x=xもしくはy=yと固定する場合と同様に)m(0)+f(0)p(x,y,t)を特定することはできない。また、たとえ特定できたとしても、f(0)p(x,y,t)にも定数が含まれるので、どの部分が定数m(0)であるのか分からない。よって、この場合もm(t)を求めることはできない。
○(i)かつ(b)の場合
これは、x,y,tのいずれかを固定するが、X(x,y,t)=0を満たさない式を用いる場合である。この場合は、例えば
X(x,y,t)=X(x,y,t)
となるx=x,xを見つけ、F(x,y,t)及びF(x,y,t)をX(x,y,t)でリダクションすることにより、(i)かつ(a)の場合と同様の方法でm(t)を求められる可能性がある。しかしこの場合も、次数に関する条件(5)と(4)があるので、(i)かつ(a)の場合と同様の理由により、m(t)を得ることはできない。
○(ii)かつ(b)の場合
これは、Xのセクションではないが、1変数sでx=u(s),y=u(s),t=u(s)のようにパラメータ表示された曲線を用いる攻撃である。この場合、X(x,y,t)=0は満たさないが、
X(u(s),u(s),u(s))=X(v(s),v(s),v(s))
となる(u(s),u(s),u(s))、(v(s),v(s),v(s))を見つけることは可能である。そして、F(x,y,t)に代入すると
Figure 2005331656
ここで、F(u(s),u(s),u(s))−F(v(s),v(s),u(s))をX(u(s),u(s),u(s))で割る操作が考えられるが、次数に関する条件(5)、(4)によってf(t(s)){p(u(s),u(s),u(s))−p(v(s),v(s),u(s))}が得られる確証はない。したがって、この場合もf(t)やm(t)を求めることはできない。
但し、条件(5)、(4)から前記と同様に
deg X(u(s),u(s),u(s)) < deg f(u(s)){p(u(s),u(s),u(s))−p(v(s),v(s),u(s))}
を導くためには、差を取ることにより{p(u(s),u(s),u(s))−p(v(s),v(s),u(s))}の最高次の係数を含む高次の項が消えないようにする必要がある。このように最高次の項を残す目的で、条件Xが必要となる。実際、p(x,y,t)のx,yに関する最高次の項をxαβとすると、
p(u(s),u(s),u(s))−p(v(s),v(s),u(s)) …([2−2]−1)
において最高次の項が消えるのは
(s)α(s)β=v(s)α(s)β
となるときである。(u(s)/v(s))α(u(s)/v(s))β=1と変形すると分かるように、これは
(s)=ζv(s),u(s)=ηv(s)
を意味する。但し、ζ,ηは1の冪根である。一方、本攻撃においては、u(s)≠v(s)もしくはu(s)≠v(s)が成立する下で
X(u(s),u(s),u(s))=X(v(s),v(s),u(s))
であることが必要なので、
X(u(s),u(s),u(s))=X(ζv(s),ηv(s),u(s))
でなくてはならない。しかし、条件XによればX(x,y,t)にxのみの項、yのみの項が含まれるため、
ζ=η=1
を導くことができ、u(s)=v(s),u(s)=v(s)となるので、攻撃法の前提に反することになる。従って、代数曲面の定義式に条件Xを付すことにより、式([2−2]−1)に示す差により最高次の項が消えないように暗号文を構成することができる。
[攻撃2−3]0次元多様体の代入による攻撃
平文多項式をa,a,・・・,ar-1を未知数として
m(t)=ar-1r-1+・・・+a+a
とおく。(公開鍵である)代数曲面X(x,y,t)=0の有理点(x,y,t)は(どのような代数曲面でも)比較的簡単かつ大量に求まることが知られているため、これらの有理点を暗号文F(x,y,t)に代入して、
F(x,y,t)=m(t)+f(t)p(x,y,t)
という関係式が大量に求まる。これらを連立させるとm(t)が解けそうである。しかし、f(t)とq(x,y,t)はランダムな多項式であり、特にq(x,y,t)にあっては3変数多項式であるので係数の種類が次数nに関してO(n)以上のオーダで増大する。これらの係数を変数と考えると膨大な数の変数を持つ連立方程式の解を求める必要に迫られ、(3変数多項式の次数を上げることによって)現実的には解が求まらないレベルまで到達するのは容易である。従ってこの攻撃は現実的でない。
尚、暗号文からp(x,y,z)の因子を削除すると、連立方程式は
F(x,y,t)=m(t)+f(t)
となり
deg m(t)<r≦deg f(t)
であるのでdeg f(t),rがそれほど大きくなければ比較的簡単に係数が求まると言える。これ故に因子p(x,y,z)の存在意義がある。同様に、暗号文から既約多項式f(t)とp(x,y,t)の少なくとも一方を削除すると、本攻撃により
F(x,y,t)=m(t)
となり、更に簡単に平文多項式m(t)が求まってしまう。この理由で因子f(t),p(x,y,t)が存在する。
[攻撃3]微分、偏微分を用いる攻撃
定義式X(x,y,t)の微分や偏微分を用いて多項式を分析することが一般に可能である。しかし、セクションを求める手立てを与えるわけではない。また、上で考察した攻撃法より効率的な方法を与えるものでもない。よって、暗号文F(x,y,t)の解読に微分、偏微分を用いても問題の難しさに変化はない。
<バリエーション>
最後に本実施形態におけるいくつかのバリエーションを述べる。第1のバリエーションは、公開鍵の中にあるp,r,dを固定パラメータとすることで公開鍵のサイズを減らすことができることを特徴とするバリエーションである。勿論これらの一部だけを固定にする利用方法も考えられる。このバリエーションを用いると、パラメータの一部が固定されているので鍵生成時に制約が課せられることになるが、十分大きいr,dが取られていれば何回かの試行で所望の公開鍵X(x,y,t)が求まる。
第2のバリエーションは、公開鍵の中にあるdを公開しないことを特徴とする実施形態である。本来dは復号処理中の因数分解の結果、式(7)の右辺を得たとき、その中からf(t)を最大次数の因子として求めるための条件に利用される。式(7)では本来f(t)が求まれば十分で、f(t)がh(t)−h(t)の最大次数の因子である必要はない。仮にf(t)が一意に決定できなくてもh(t)のf(t)による剰余と(復号処理では利用しなかった)h(t)のf(t)による剰余を比較して等しくないならば当該f(t)は正しくないf(t)であると言える。ここで正しくないf(t)を選択してかつ2つの剰余が一致する確率は相当に小さいが、たとえ一致した場合でも平文にチェックビットを用意しておくことによってほとんどの場合正しい平文が特定される。以上のように構成することにより、dの制限を設けることが不要となり公開鍵が小さくなるばかりでなく、f(t)の次数を小さく取ることにより暗号文を小さくできる他にも、セクションの次数情報が漏れるのを防ぐことができるという効果がある。
第3のバリエーションは、暗号化に用いる式(6)の変形に関するバリエーションである。式(6)は例えば
F(x,y,t)=m(t)−f(t)p(x,y,t)−X(x,y,t)q(x,y,t)
のように変形しても同様に暗号化/復号が可能であり、同様の安全性がある。このように本発明の趣旨に反しない範囲で暗号化の式を変形し、それに伴い復号処理を変更することは十分可能である。
第4のバリエーションは、平文mを1変数既約多項式f(t)にも埋め込む方式である。前述した実施形態ではf(t)をランダムに生成する方式を示したが、秘密鍵無しにf(t)を求めることが困難であることも本発明の公開鍵暗号の性質であるから、f(t)にも平文情報を埋め込む方式が実現可能となっている。f(t)にも平文を埋め込む場合、より大きなサイズの平文を一度に暗号化できる。但し、埋め込んだ結果f(t)を既約多項式とする必要から、特定の係数にはランダムな係数が入るように予め定めておく必要がある。既約多項式は極めて多く存在するため、一部の係数に平文を埋め込んだとしても、ほとんどの場合、既約多項式を得ることができる。仮に得られなかった場合にはf(t)の次数を上げることにより、探索範囲を増やすことも可能である。
第5のバリエーションは、復号処理に復号結果の検証処理を追加する方式である。受信した暗号文F(x,y,t)には(本来暗号文にはならない)出鱈目なものが含まれる場合が考えられる。例えば故意に誰かが不正な暗号文を送信する場合と、伝送中の不具合で暗号文の一部が壊れてしまう場合とがある。このような不正な暗号文の排除は、第2のバリエーションと同様の方式で実行される。なお、第5のバリエーションにおいて、第2のバリエーションと異なる点は、第2のバリエーションでは最高次の因子が2つ以上存在した時に復号文の検証処理を行なうのに対し、第5のバリエーションでは、最高次の因子の個数に関わらず、復号文の検証処理を常に行う点である。
第6のバリエーションは、平文を単なるメッセージmとせず、ハッシュ関数hなどの一方向性関数を利用して
m’=m‖h(m) …(vari 6)
などとする。このようにすることによって、復号処理において出力された復号文m’に対して当該ハッシュ関数hを利用して式(vari 6)を満たしていることを確かめることにより、出力された復号文m’の真正性を確かめることができる。このような処理の必要性は、第5のバリエーションでも述べたような不正な暗号文を防ぐ効果を持っている。即ち、平文mに対応する正当な暗号文からmと何らかの関係を持ったmに対応する不正な暗号文を作成しようとする場合、改竄するものは(元の暗号文を復号できないので平文mを知らないため)平文mを求めることができない。一方、ハッシュ関数hは、一方向性を持っており、入力に対してランダムな値を取ることから、改竄された暗号文に、
’=m‖h(m)
のような構造を持たせることは極めて困難である。言い換えれば、本バリエーションは第2のバリエーションで述べた平文に付けるチェックビットをより具体的な形で述べたものということもできる。しかし、それ以上にこのような平文mの変換を含む公開鍵暗号の構成は一般に改竄に対する安全性や、(適当な暗号文を作成し、それを復号装置に復号させ、そこから情報を得ることによって暗号文を解読する)アクティブな攻撃にも対抗できる強い安全性を持つ暗号を構成できることが知られている。このようなことは本発明の代数曲線暗号についても同様に成り立ち、同様の効果を期待できる。
(第1の実施形態の具体的な構成)
次にこのような公開鍵暗号における鍵生成装置、暗号装置、復号装置の具体的な構成とそのアルゴリズムを示す。
(鍵生成装置及び処理の流れ)
本実施形態の鍵生成装置の構成と処理の流れを図3に示すフローチャートに沿って図2に示す全体構成図を参照しながら示す。尚、理解の助けとして具体的な数値や式を示すが、これはあくまでも理解を助けるための例であって、実際に使われる十分な安全性を持つ暗号化とは(特に多項式の次数などの点で)必ずしも一致していない。
本実施形態の鍵生成装置10は、制御部11、素数生成部12、セクション生成部13、1変数多項式生成部14、1変数多項式演算部15、代数曲面生成部16及び鍵出力部17を備えており、全体として図3に示す動作を実行するように、制御部11により他の各部12〜17が制御されるものである。以下、具体的に説明する。
鍵生成装置10は、鍵生成処理開始の指令が外部装置等から制御部11に伝えられることで処理を開始する。当該指令が制御部11に伝わると(ST1)、制御部11では素数生成部12に素数生成の要請を行う。素数生成はランダムに素数を発生させても良いが、ここでは大きな素数を使う必要はないので、高々6ビット程度の素数からランダム若しくは(出力順を予め決めておくなどの手段で)恣意的に選択するか、当該鍵生成装置10で予め定まっている素数を利用してもよい。ここでは素数p=17が生成されたとする(ST2)。
次に、制御部11は、セクション生成部13に素数pを送信し、セクション生成部13ではセクションの生成を開始する。まず素数pを1変数多項式生成部14に送信し生成を要求し、1変数多項式λ(t)(=−t(t−1))を得る(ST3)。
ここで、1変数多項式生成部14では、次数を予め定められた一定範囲内でランダムに選択し、その次数を持つ1変数多項式の係数を有限体Fpの元として0からp−1までの範囲でそれぞれ生成する。
制御部11は、λ(t)の生成時と同様にランダムな1変数多項式c(t)の生成処理を行いc(t)(=t)を得る(ST4)。しかる後、制御部11は、c(t)とλ(t)を1変数多項式演算部15に送信する。1変数多項式演算部15は、λ(t)=c(t)λ(t)を計算し(ST5)、得られたλ(t)(=−t(t−1))を制御部11に出力する。
制御部11は、λ(t)を受信すると、λ(t)の生成時と同様に1変数多項式v(t)(=t+1)をランダムに生成し(ST6)、得られたλ(t)(=−t(t−1))とv(t)(=t+1)を1変数多項式演算部15に送信し、u(t)(=λ(t)+v(t)=t+1)を得る(ST7)。また同様に、制御部11は、v(t)(=t+1)を生成し(ST8)、u(=λ(t)+v(t)=t+1)を計算する(ST9)。
次に、制御部11は、u(t),u(t),v(t),v(t)を代数曲面生成部16に送信する。代数曲面生成部16は、式(10)によってa(t)を1変数多項式演算部15を繰り返し使うことによって求める(ST10)。実際この例ではa(t)=−t+11t−3t−3と求まる。更に、代数曲面生成部16は、a(t)とu(t),u(t),v(t),v(t)から式(11)に基づいて同様の操作でb(t)=2t+6t+9t+3t+4を得ると(ST11)、このb(t)を制御部11に送信する。
以上の操作で、公開鍵である代数曲面XのファイブレーションE(x,y,t)と、秘密鍵である2つのセクションD,Dとが以下の式(13)及び式(14)に示すように得られる。
(x,y,t):y+y−x−(−t+11t−3t−3)x−2t−6t−9t−3t−4=0
…(13)
:(u(t),u(t),t)=(t+1,t+1,t)
:(v(t),v(t),t)=(t+1,t+1,t) …(14)
そこで、これらセクションに含まれる一変数多項式における次数の最大値をdとする(ST12)。
ここではd=3とする。次に制御部ではrを例えば
r=(d+1+d+1)d+d=(4+3)*3+4=25
のように選択する(ST13)。本実施形態では簡単のためr=22とする。
<第1のバリエーション>
次に、第1のバリエーションとして述べた公開鍵p,r,dを予め定めておく場合の鍵生成装置の処理の流れを図5に示すフローチャートに沿って図4に示す全体構成図を参照しながら示す。ほとんど実施形態と同じであるので異なるところのみを説明するに留める。まず本バリエーションによる実施形態では素数pが固定であるため、素数生成部12の代わりに固定パラメータ格納部18が設けられ、その中に入っているpを読み込む処理(ST2’)が素数生成処理と置き換わる。
更に、u(t),u(t),v(t),v(t)が計算された後に制御部11が固定パラメータ格納部18から予め定められたr,dを読み込み(ST10−1)、u(t),u(t),v(t),v(t)の最大次数d’と読み込まれたdを比較してd’≦dとなっていることを確かめる(ST10−2)。
ここで、この条件を満たしていない場合はステップST3に戻り、1変数多項式λ(t)の生成から繰り返す。条件を満たしていた場合は、rに関する3つの条件(3),(5),(4)をd’,rが満たしていることをチェックする。例えば式(13)で定義される代数曲面の場合、d=3,d=2であるので、最低でもe=4,e=3,e=0を満たす必要があり、これを代入して成立するかを見てもよい。条件が満たされていなかった場合はλ(t)の生成から繰り返す。条件を満たしていた場合は鍵が生成できたことになり、できた鍵を鍵出力部17に送り、鍵出力部17は生成された公開鍵と秘密鍵を出力する。
(暗号装置及び処理の流れ)
次に本実施形態の暗号装置の構成と処理の流れを図7に示すフローチャートに沿って図6に示す全体構成図を参照しながら示す。本実施形態の暗号装置20は、平文入力部21、公開鍵入力部22、平文埋め込み部23、暗号化部24、1変数既約多項式生成部25、多項式生成部26及び暗号文出力部27を備えており、全体として図7に示す動作を実行するように、暗号化部24により他の各部21〜23,25〜27が制御されるものである。以下、具体的に説明する。
暗号装置20は、平文入力部21から平文mを取得し、公開鍵入力部22から公開鍵X(x,y,t),p,r,dを取得することから処理を開始する。ここで、公開鍵を鍵生成処理の例として生成された
1.p=17
2.F17上の代数曲面Xのファイブレーション:
(x,y,t):y+y−x−(−t+11t−3t−3)x−2t−6t−9t−3t−4=0
3.Fp上の1変数既約多項式f(t)の最小次数r=22
4.(秘密鍵である)セクションにおける多項式u(t),u(t),v(t),v(t)の最大次数d=3
を利用する。
始めに、平文入力部21から平文が入力され(ST21)、公開鍵入力部22から公開鍵が入力される(ST22)。入力された公開鍵のうち1変数既約多項式f(t)の最小次数であるr=22と素体の標数p=17は取得され(ST23)、平文埋め込み部23に送られる。
平文埋め込み部23では、別途、平文入力部21から送信された平文mを標数pのビット長よりも1小さいビット長に分割する。この場合は(p=17であるから)平文mを4ビットに分割することができる。例えば平文mが16進表示で“m=0x315763ef25c04c792ef151”とするとこれらが4ビット毎に分割され、平文多項式m(t)の係数として次式のように埋め込まれる(ST24)。
Figure 2005331656
平文埋め込み部23では平文多項式m(t)を暗号化部24に送信する。一方で、公開鍵入力部22も暗号化部24に公開鍵を送信する。
暗号化部24は、平文多項式と公開鍵を受信すると、公開鍵のうちrとpを1変数既約多項式生成部25に送信する。1変数既約多項式生成部25は、r次以上の1変数既約多項式f(t)をランダムに生成し(ST25)、得られたf(t)を暗号化部24に返信する。
ここで既約多項式の生成は、r次以上の多項式をランダムに生成し、Fp上の既約性判定を1変数多項式が既約多項式となるまで繰り返すことにより行う。ここでは22次の既約多項式として以下のf(t)を選択したとする。
Figure 2005331656
暗号化部24は、1変数既約多項式f(t)を得ると、多項式生成部26にpを送信する。多項式生成部26は、3変数多項式の各項が次数に関する関係式(3)を満たし、条件(4)を満たすような項が存在するようランダムな3変数多項式p(x,y,t)を生成する(ST26)。ここでは簡単のためランダムな多項式を以下のものとする。
Figure 2005331656
この各項は式(3)に示された次数の関係式“3(e+e)+e<22”を満たし、更に条件(4)を満たす項7xを含んでいる。なお、多項式生成部26は、生成した3変数多項式p(x,y,t)を暗号化部24に返信する。
暗号化部24は、3変数多項式p(x,y,t)を得ると、公開鍵のうちp,r,dを多項式生成部26に送信し、3変数のランダムな多項式q(x,y,t)を生成させる(ST27)。
ここでは簡単のためにq(x,y,t)を次のものとする。
q(x,y,t)=xy+y+3t+13t+4t+8t+4
以上の処理で得られたm(t),f(t),p(x,y,t),q(x,y,t)と公開鍵である代数曲面X(x,y,t)を利用し、暗号化部24は、式(6)に従って暗号文F(x,y,t)を計算し展開する(ST28)。本実施形態の例であると、暗号文F(x,y,t)は次のようになる。
Figure 2005331656
暗号化部24は、この暗号文F(x,y,t)を(必要ならば予め定められたフォーマットに合わせて変形し)暗号文出力部27から出力し(ST29)、暗号化処理を終了する。
第2のバリエーションを本実施形態の暗号装置20に適用する場合p(x,y,t)の次数条件がなくなるため、q(x,y,t)と同じ方法で生成することにより実現できる。
第3のバリエーションは、本実施形態の暗号化処理に対して自然に成立する。第4のバリエーションは、平文埋め込み部23において平文mを本実施形態と同様の方法でブロック分割し、m(t)の係数と、f(t)の係数の予め定められた一部の係数とに埋め込み、1変数既約多項式生成部25においてf(t)の残りの係数をランダムに設定することにより同様に成立する。
第6のバリエーションは、平文埋め込み部23において、平文を予め定められたハッシュ関数hを利用して式(vari 6)のように変換し、新たな平文m’を作成する処理を新たに加えればそのまま成り立つ。
(復号装置及び処理の流れ)
最後に本実施形態の復号装置の構成と処理の流れを図9に示すフローチャートに沿って図8に示す全体構成図を参照しながら示す。本実施形態の復号装置30は、暗号文入力部31、鍵入力部32、復号部33、セクション代入部34、1変数多項式演算部35、1変数多項式因数分解部36、多項式抽出部37、1変数多項式剰余演算部38、平文展開部39及び平文出力部40を備えており、全体として図9に示す動作を実行するように、復号部33により他の各部31,32,34〜40が制御されるものである。以下、具体的に説明する。
復号装置30は、暗号文入力部31から暗号文F(x,y,t)を取得し(ST31)、鍵入力部32から公開鍵X(x,y,t)p,r,dと秘密鍵を取得することから(ST32)、処理を開始する。ここで秘密鍵とは2つのセクションであり、鍵生成で示した式(14)で定義されるセクションD1,D2を利用する。取得された暗号文と鍵情報は復号部33に送られ、復号処理が開始される。
復号部33はまず、セクション代入部34に暗号文F(x,y,t)とセクションD1を送信する。セクション代入部34は、D1をF(x,y,t)に代入し、必要に応じて多項式演算部35を利用することにより、以下のようなh(t)を得る(ST33)。
Figure 2005331656
得られたh(t),h(t)は、セクション代入部34から復号部33に送出される。復号部33は、h(t),h(t)を多項式演算部35に送信して引き算させ、その結果を1変数多項式因数分解部36に送信して因数分解させることにより(ST35)、式(15)に示すような因数分解結果を得る。
Figure 2005331656
ここで、最大次数の因子として既約多項式f(t)が現れる。因数分解結果である式(15)の右辺を多項式抽出部37に送信し、最大次数を持つ因子としてf(t)を抽出する(ST36)。そこで、復号部33は、f(t),h(t)を剰余演算部38に送る。剰余演算部38は、h(t)をf(t)で除し、剰余として次の平文多項式m(t)を計算し(ST37)、復号部33に送信する。
Figure 2005331656
復号部33は、m(t)を平文展開部39に送信する。平文展開部39は、これを展開し平文m=0x315763ef25c04c792ef151を得る(ST38)。平文展開部39は、この平文mを平文出力部40から出力する(ST39)。これにより、復号装置30は復号処理を終了する。
尚、第2のバリエーションにおける復号処理のアルゴリズムを図11に示した。全体構成図は図10であるが図8と平文展開部39と復号部33との間が双方向データ通信となっている点のみが異なっている。
第2のバリエーションにおける復号処理は、前述した復号処理とほとんど同じなので異なるところのみを説明する。本復号処理では1変数既約多項式f(t)の候補が複数現れる可能性があるので、そのそれぞれについて以下の処理を行う。
まず、復号処理と同様に剰余演算部38を利用してh(t)をf(t)で除し、剰余として平文多項式m(t)を得る(ST37’−1)。同様に剰余演算部38を利用してh(t)をf(t)で除し、剰余として平文多項式m(t)を得る(ST37’−2)。
次に、復号部33は、m(t),m(t)が等しいか否かをチェックする(ST37’−3)。等しくない場合は正しくないf(t)を取ってきてしまったことを意味するため、次候補のf(t)で同様の操作を行う(ST37’−4,ST37’−5)。
等しい場合はm(t)から復号処理と同様に平文展開部39で平文mを展開し(ST38’−1)、平文展開部39においてチェックサムを確認することにより平文の妥当性をチェックする(ST38’−2)。
ここでチェックサムが正しくない場合は正しくないf(t)で復号してしまったことを意味するので、再び復号部33に戻り、次候補のf(t)で同様の操作を繰り返す(ST37’−4,ST37’−5)。チェックサムが正しい場合は正しい復号が行われた可能性が極めて高くなるので平文出力部40から平文を出力して終了する。
尚、次候補のf(t)を抽出する処理において次候補が無くなった場合は正しいf(t)が得られなかったことを意味するため、エラーを出力して処理を終了する(ST37’−6)。
また、本復号処理においてはこの他にもf(t)の全候補を同様の操作で復号し、2種類のチェックを通った平文が2つあった場合は、2つ出力するという実施形態も考えられる。これにより、2通りの平文があることを知った受信者はもう一度送信者に(異なる暗号文を生成して)送信してもらうか、内容からどちらが正しいか自分で判断する機会を与えることになる。また、勿論チェックサムの付いていない平文も少なくないためチェックサムを付けない実現形態もあり得る。その場合はm(t)=m(t)となった時点で正しい平文と見なし、そのような平文が複数あった場合はこれら複数の候補を全て出力する。
第3のバリエーションは、本実施形態においても自然に成り立つ。第4のバリエーションは、復号処理の途中で求めたf(t)を平文の一部として平文展開部39に送り、平文展開部39でm(t)とf(t)を合わせて平文mを展開することにより本実施形態においても成立する。第5のバリエーションは、本実施形態の後半に述べたf(t)の候補が複数存在した場合の検証方法をそのまま毎回適用することで実施可能である。
第6のバリエーションは、平文展開部39においてまず、本実施形態と同様の手段で平文m’を展開し、展開された平文m’に対して(予め定められたハッシュ関数hを利用して)式(vari 6)を満たすことを確認することで実現できる。確認の結果、正しくない場合はエラーを出力し、正しい場合は、得られたメッセージmを平文出力部40に送信する。尚、本バリエーションは、第3のバリエーションと共に利用することも可能である。また本バリエーションは、例えば(vari 6)式に基づく確認をチェックサムと考えて実施することによって第2のバリエーションと共に利用することも可能である。
以上で、第1の実施形態における本発明の鍵生成装置、暗号装置、復号装置の具体的構成の説明を終了する。
上述したように本実施形態によれば、代数曲面X上の代数曲線(因子)のうちの2つのセクションD,Dを秘密鍵に用いており、現代の数学で未解決の難問である代数曲面上の因子を求める求因子問題に安全性の根拠をおく公開鍵暗号方式の暗号装置20、復号装置30又は鍵生成装置10を実現したので、量子計算機が出現しても安全性が確保でき、現在の計算機でも安全に実現可能であるとともに、小電力環境での実現可能性がある公開鍵暗号方式を構成することができる。
(第2の実施形態)
次に、本発明の第2の実施形態について説明する。
本実施形態の公開鍵は、以下の4つである。
1.素体の標数p
2.Fp上の代数曲面Xのファイブレーション:X(x,y,t)=0
3.Fp上の1変数既約多項式f(t)の最小次数r
4.(秘密鍵である)セクションにおける多項式u(t),u(t)の最大次数d
秘密鍵は以下のセクションDである。
1.Fp上の代数曲面Xのセクション:D:(x,y,t)=(u(t),u(t),t)
第2の実施形態は、第1の実施形態と比較すると、秘密鍵であるセクションが1つであることが大きく異なる。第2の実施形態は、このため秘密鍵のサイズが小さくなることは言うまでもなく、後述するように鍵生成の自由度が増えるという効果がある。
(暗号化処理)
本実施形態における暗号化処理の概要を述べる。暗号処理は第1の実施形態とほぼ同じであるが、1つの暗号文F(x,y,t)を生成した第1の実施形態とは異なり、第2の実施形態では2つの暗号文F(x,y,t),F(x,y,t)を生成する。
具体的には、第2の実施形態は、共通のf(t)を用いて、第1の実施形態と同様の手段で異なる2つのランダムな3変数多項式の組(p(x,y,t),p(x,y,t))と(q(x,y,t),q(x,y,t))を生成して、以下の2つの暗号文F(x,y,t),F(x,y,t)を生成する。
(x,y,t)=m(t)+f(t)p(x,y,t)+X(x,y,t)q(x,y,t)
(x,y,t)=m(t)+f(t)p(x,y,t)+X(x,y,t)q(x,y,t)
受信者は、暗号文F(x,y,t),F(x,y,t)を受けると、所有する秘密鍵Dを利用して次のように復号を行う。まず、セクションDを暗号文F(x,y,t),F(x,y,t)に代入することにより第1の実施形態と同様の考え方で次の2式h(t),h(t)を求める。
(t)=F(u(t),u(t),t)=m(t)+f(t)p(u(t),u(t),t)
(t)=F(u(t),u(t),t)=m(t)+f(t)p(u(t),u(t),t)
そして、2式を辺々引き算して次式h(t)−h(t)を計算する。
(t)−h(t)=f(t){p(u(t),u(t),t)−p(u(t),u(t),t)}
しかる後、h(t)−h(t)を因数分解して、最大次数を持つ因数をf(t)と定める。この後の処理は第1の実施形態と同じであるので説明を省略する。
(鍵生成処理)
最後に本実施形態における鍵生成方法を説明する。本実施形態の鍵生成は第1の実施形態と同様にセクションDをランダムに選び、それに対応したファイブレーションを計算することによって行う。
但し、本実施形態では第1の実施形態と異なり1つのセクションを満たすように構成すれば良く、第1の実施形態よりも容易にしかも自由度の高い鍵が生成される。
ここでは代数曲面のうち以下のような代数曲面を例にとって鍵生成方法を示す。
X:y=x+ξ(t)xy+ξ(t)x+ξ(t)y+ξ(t)
ここでξ(t),ξ(t),ξ(t),ξ(t)は1変数多項式である。まず、素体の標数pを決める。このときpは小さくても安全性に問題は生じない。さて、セクションDを
D:(x,y,t)=(u(t),u(t),t)
とおき、定数項以外の1変数多項式ξ(t),ξ(t),ξ(t)をランダムに定め、これらξ(t),ξ(t),ξ(t)とセクションDを代数曲面Xに代入することで
ξ(t)=u(t)−u(t)−ξ(t)u(t)(t)−ξ(t)u(t)−ξ(t)u(t) …(16)
によりξ(t)を得る。
鍵生成方法は定数項を持つ全ての代数曲面に適用できる。この点も第1の実施形態にない効果である。
最後にd及びrを求める方法を示す。これらは復号方法から式(3)を、安全性の要請から式(5),(4)を満たさなければならないことが分かっている。まずdは鍵生成方法で2つのセクションが求まっているため、そのu(t),u(t)の次数の最大値として決定する。rは例えば
r=(d+1+d+1)d+d
によって定めても良い。
また、第1の実施形態で述べた第1〜第5のバリエーションは本実施形態でも成立する。
<安全性の検討>
以下ではこのように構成した本実施形態の公開鍵暗号の安全性に関して考察する。基本的に第1の実施形態における安全性の検討がそのまま本実施形態の安全性の検討となる。第1の実施形態と異なるのは暗号文が2つあることであり、この部分の安全性に関して考察を行う。暗号文F(x,y,t),F(x,y,t)の引き算を行うと以下のようになる。
(x,y,t)−F(x,y,t)=f(t)(p(x,y,t)−p(x,y,t))−X(x,y,t)(q(x,y,t)−q(x,y,t))
この式では、平文多項式m(t)が消去されるもののq(x,y,t)≠q(x,y,t)であり、3変数多項式では一般に除法の定理が成り立たないことから、3変数多項式X(x,y,t)で当該式を除しても、その剰余等からほとんど情報が得られない。
(第2の実施形態の具体的な構成)
次に本実施形態の公開鍵暗号における鍵生成装置、暗号装置、復号装置の具体的な構成とそのアルゴリズムを示す。
(鍵生成装置及び処理の流れ)
本実施形態の鍵生成装置の構成と処理の流れを図12に示すフローチャートに沿って図2に示す全体構成図を参照しながら示す。また本実施形態では前述した代数曲面
X:y=x+ξ(t)xy+ξ(t)x+ξ(t)y+ξ(t)
を前提とした構成例を示している。また、理解の助けとして具体的な数値や式を示すが、これはあくまでも理解を助ける簡明な例であって、実際に使われる十分な安全性を持つ暗号化とは(特に多項式の次数などの点で)必ずしも一致していない。
本実施形態の鍵生成装置10は、鍵生成処理開始の指令が外部装置等から制御部11に伝えられることで開始される。当該指令が制御部11に伝わると(ST41)、制御部11では素数生成部12に素数生成の要請を行う。素数生成はランダムに素数を発生させても良いが、ここでは大きな素数を使う必要はないので、高々6ビット程度の素数からランダム若しくは(出力順を予め決めておくなどの手段で)恣意的に選択するか、当該鍵生成装置10で予め定まっている素数を利用してもよい。ここでは素数p=17が生成されたとする(ST42)。
次に、制御部11は、セクション生成部13に素数pを送信し、セクション生成部13ではセクションの生成を開始する。まず素数pを多項式生成部14に送信し生成を繰り返し要請し、1変数多項式ξ(t)(=t+1),ξ(t)(=−t+14),ξ(t)(=t+3t+6)を得る(ST43)。
多項式生成部14でのランダムな多項式の作り方は第1の実施形態と同様である。制御部11は、これらξ(t),ξ(t),ξ(t)を得たなら、同様に(セクションの要素となる)ランダムな1変数多項式u(t),u(t)の生成処理を行いu(t)(=t−1),u(t)(=t+2)を得る(ST44)。しかる後、制御部11は、これらξ(t),ξ(t),ξ(t),u(t),u(t)を代数曲面生成部16へ送信する。代数曲面生成部16は、式(16)によってξ(t)を1変数多項式演算部15を繰り返し使うことによって求める。実際この例では以下のようにξ(t)を求める。
ξ(t)=(t+2)+16(t+16)+16(t+1)(t+16)(t+2)+16(16t+14)(t+16)+16(t+3t+6)(t+2)
代数曲面生成部16は、得られたξ(t)を制御部11に送信する。以上の操作で、公開鍵である代数曲面XのファイブレーションX(x,y,t)と、秘密鍵であるセクションDとが以下の式(17)及び式(18)に示すように得られる(ST45)。
Figure 2005331656
次に、セクションDに含まれる一変数多項式における次数の最大値をdとする(ST46)。ここではd=2とする。次に制御部11では、rを一定の範囲の中から適当な自然数を選び1変数既約多項式の次数rとする(ST47)。次数rは次のように定めても良い。
r=(d+1+d+1)d+d=(3+4)*2+5=19
ここでは簡単のためr=15とする。
<第1のバリエーション>
次に、第1の実施形態と同様に成り立つとした第1のバリエーションを実施する鍵生成装置の処理の流れを図13に示すフローチャートに沿って図4に示す全体構成図を参照しながら示す。ここではp,r,dを固定するとし、ほとんど実施形態と同じであるので異なるところのみを説明するに留める。まず本バリエーションによる実施形態では素数pが固定であるため、素数生成部12の代わりに固定パラメータ格納部18が設けられ、その中に入っているpを読み込む処理(ST42”)が素数生成処理と置き換わる。
pを読み込んだ後、実施形態と同様にξ(t),ξ(t),ξ(t)をランダムに生成し、固定パラメータ格納部18からr,dを読み込んだ後(ST44”−1)、最大次数がdとなるように1変数多項式生成部14を利用して1変数多項式u(t),u(t)をランダムに生成する(ST44”−2)。以下では実施形態と同様の処理を行ない(ST45”)、鍵を生成する。できた鍵を鍵出力部17に送り、鍵出力部17は公開鍵と秘密鍵を出力する。
(暗号装置及び処理の流れ)
次に本実施形態の暗号装置の構成と処理の流れを図14に示すフローチャートに沿って図6に示す全体構成図を参照しながら示す。本実施形態の暗号装置20は平文入力部21から平文mを取得し、公開鍵入力部22から公開鍵X(x,y,t)p,r,dを取得することから処理を開始する。ここで、公開鍵を鍵生成処理の例として生成された
1.p=17
2.F17上の代数曲面Xのファイブレーション:
Figure 2005331656
3.Fp上の1変数既約多項式f(t)の最小次数r=15
4.(秘密鍵である)セクションにおける多項式u(t),u(t)の最大次数d=2
を利用する。
始めに、平文入力部21から平文が入力され(ST21)、公開鍵入力部22から公開鍵が入力される(ST22)。入力された公開鍵のうち1変数既約多項式f(t)の最小次数であるr=15と素体の標数p=17は取得され(ST23),平文埋め込み部23に送られる。平文埋め込み部23では、別途、平文入力部21から送信された平文mを送られたpのビット長よりも1小さいビット長に平文を分割する。この場合は(p=17であるから)4ビットに分割することができる。例えば平文mを16進表示で“m=0xb25f04c792ef151”とするとこれらが4ビット毎に分割され、平文多項式m(t)の係数として次式に示すように埋め込まれる(ST24)。
m(t)=11t14+2t13+5t12+15t11+0t10+4t+12t+7t+9t+2t+14t+15t+t+5t+1
平文埋め込み部23では平文多項式m(t)を暗号化部24に送信する。一方で、公開鍵入力部22も暗号化部24に入力された公開鍵を送信する。
暗号化部24は、平文多項式と公開鍵を受信すると、公開鍵のうちrとpを1変数既約多項式生成部25に送信する。1変数既約多項式生成部25は、r次以上の1変数既約多項式f(t)をランダムに生成し(ST25)、得られたf(t)を暗号化部24に返信する。
ここで既約多項式の生成はr次以上の多項式をランダムに生成し、既約性判定を1変数多項式が既約多項式となるまで繰り返すことにより行う。ここでは、15次の既約多項式として次式のf(t)を選択したとする。
f(t)=t15+13t14+7t13+8t12+10t+t+5t+12t+7t+7t+2t+t+2t+7
暗号化部24は、1変数既約多項式f(t)を得ると、多項式生成部26にpを送信する。多項式生成部26は、3変数多項式の各項が次数に関する関係式(3)を満たし、条件(4)を満たすような項が存在するよう2つの相異なるランダムな3変数多項式p(x,y,t),p(x,y,t)を生成する(ST26”)。ここでは簡単のためランダムな多項式p(x,y,t),p(x,y,t)を次のものとする。
Figure 2005331656
この各項は式(3)に示された次数の関係式((e+e)d+e<15)を満たしており、それぞれ4x,3xという条件(4)を満たす項が存在する。なお、多項式生成部26は、生成した3変数多項式p(x,y,t),p(x,y,t)を暗号化部24に返信する。
暗号化部24は、これら3変数多項式p(x,y,t),p(x,y,t)を得ると、公開鍵のうちp,r,dを多項式生成部26に送信し、2つの相異なるランダムな3変数多項式q(x,y,t),q(x,y,t)を生成させる(ST27”)。ここでは簡単のためにq(x,y,t),q(x,y,t)を次のものとする。
(x,y,t)=xy+y+3t+13t+4t+8t+4
(x,y,t)=txy+tx+4t+11t+7
以上の処理で得られたm(t),f(t),p(x,y,t),q(x,y,t)と公開鍵である代数曲面X(x,y,t)を利用し、式(6)に従って暗号文F(x,y,t)を計算し展開する(ST28”−1)。なお、ここでは式(6)はp(x,y,t)をp(x,y,t)に、q(x,y,t)をq(x,y,t)にそれぞれ読み替えて適用する。本実施形態の例であるとF(x,y,t)は次のようになる。
Figure 2005331656
同様にm(t)f(t)p2(x,y,t)q2(x,y,t)と公開鍵である代数曲面X(x,y,t)を利用して暗号文F2(x,y,t)を計算し展開する(ST28”−2)。本実施形態の例であるとF2(x,y,t)は次のようになる。
Figure 2005331656
暗号化部24は、これら暗号文F(x,y,t)F(x,y,t)を(必要ならば予め定められたフォーマットに合わせて変形し)暗号文出力部27から出力することにより(ST29”)、暗号化処理を終了する。
第2のバリエーションを本実施形態の暗号装置20に適用する場合p(x,y,t),p(x,y,t)の次数条件がなくなるため、q(x,y,t),q(x,y,t)と同じ方法で生成することにより実現できる。
第3のバリエーションは、本実施形態の暗号化処理に対して自然に成立する。第4のバリエーションは、平文埋め込み部23において平文mを本実施形態と同様の方法でブロック分割し、m(t)の係数と、f(t)の係数の予め定められた一部の係数とに埋め込み、1変数既約多項式生成部25においてf(t)の残りの係数をランダムに設定することにより同様に成立する。 第6のバリエーションは、平文埋め込み部23において、平文を予め定められたハッシュ関数hを利用して式(vari 6)のように変換し、新たな平文m’を作成する処理を新たに加えればそのまま成り立つ。
(復号装置及び処理の流れ)
最後に本実施形態の復号装置の構成と処理の流れを図15に示すフローチャートに沿って図8に示す全体構成図を参照しながら示す。本実施形態の復号装置30は暗号文入力部31から暗号文F(x,y,t)を取得し(ST31)、鍵入力部32から公開鍵X(x,y,t)p,r,dと秘密鍵を取得することから(ST32)、処理を開始する。ここで秘密鍵とは1つのセクションであり、鍵生成で示した式(18)で定義されるセクションDを利用する。取得された暗号文と鍵情報は復号部33に送られ、復号処理が開始される。
復号部33はまず、セクション代入部34に暗号文F(x,y,t),F(x,y,t)とセクションDを送信し、DをF(x,y,t)に代入し、必要に応じて多項式演算部35を利用することにより、以下のようなh(t)を得る(ST33”)。
Figure 2005331656
h1(t),h2(t)を得た復号部33はh(t),h(t)を多項式演算部35に送信して引き算させ、その結果を1変数多項式因数分解部36に送信して因数分解させることにより(ST35)、式(19)に示す因数分解結果を得る。
Figure 2005331656
ここで、最大次数の因子として既約多項式f(t)が現れる。因数分解結果である式(19)の右辺を多項式抽出部37に送信し、最大次数を持つ因子としてf(t)を抽出する(ST36)。そこで、復号部33はf(t),h1(t)を剰余演算部38に送り、剰余演算部38ではh1(t)をf(t)で除し、剰余として、以下のような平文多項式m(t)を計算し(ST37)、復号部33に送信する。
Figure 2005331656
復号部33ではm(t)を平文展開部39に送信する。平文展開部39は、これを展開し平文m=0xb25f04c792ef151を得る(ST38)。平文展開部39は、この平文mを平文出力部40から出力する(ST39)。これにより、復号装置30は、復号処理を終了する。
尚、第1の実施形態で言及した第2のバリエーションにおける復号装置30の全体構成図を図10に示し、復号処理のアルゴリズムを図16に示したが、第1の実施形態のそれに対して自明な変形(ST33”及びST34”等)を施しているに過ぎないのでここでは詳しい説明を省略する。
第3のバリエーションは、本実施形態においても自然に成り立つ。第4のバリエーションは、復号処理の途中で求めたf(t)を平文の一部として平文展開部39に送り、平文展開部39でm(t)とf(t)を合わせて平文mを展開することにより本実施形態においても成立する。第5のバリエーションは、本実施形態(もしくは第1の実施形態)の第2のバリエーションにおけるf(t)の候補が複数存在した場合の検証方法をそのまま毎回適用することで実施可能である。
第6のバリエーションは、平文展開部39においてまず、本実施形態と同様の手段で平文m’を展開し、展開された平文m’に対して(予め定められたハッシュ関数hを利用して)式(vari 6)を満たすことを確認することで実現できる。確認の結果、正しくない場合はエラーを出力し、正しい場合は、得られたメッセージmを平文出力部40に送信する。尚、本バリエーションは、第3のバリエーションと共に利用することも可能である。また本バリエーションは、例えば(vari 6)式に基づく確認をチェックサムと考えて実施することによって第2のバリエーションと共に利用することも可能である。
以上で、第2の実施形態における本発明の鍵生成装置10、暗号装置20、復号装置30の具体的構成の説明を終了する。
上述したように本実施形態によれば、第1の実施形態とは異なり、1つのセクションDを秘密鍵に用いているが、第1の実施形態と同様に求因子問題に安全性の根拠をおく公開鍵暗号方式の暗号装置20、復号装置30又は鍵生成装置10を実現したので、第1の実施形態と同様に、量子計算機が出現しても安全性が確保でき、現在の計算機でも安全に実現可能であるとともに、小電力環境での実現可能性がある公開鍵暗号方式を構成することができる。
また、第2の実施形態によれば、第1の実施形態と異なり1つのセクションDを満たすように構成すれば良いので、第1の実施形態よりも容易にしかも自由度の高い鍵を生成することができる。
なお、上記各実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスクなど)、光ディスク(CD−ROM、DVDなど)、光磁気ディスク(MO)、半導体メモリなどの記憶媒体に格納して頒布することもできる。
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているOS(オペレーティングシステム)や、データベース管理ソフト、ネットワークソフト等のMW(ミドルウェア)等が本実施形態を実現するための各処理の一部を実行しても良い。
さらに、本発明における記憶媒体は、コンピュータと独立した媒体に限らず、LANやインターネット等により伝送されたプログラムをダウンロードして記憶又は一時記憶した記憶媒体も含まれる。
また、記憶媒体は1つに限らず、複数の媒体から本実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
尚、本発明におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、本実施形態における各処理を実行するものであって、パソコン等の1つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
また、本発明におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
なお、本願発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
例えば、上記各実施形態では、鍵生成装置10、暗号装置20及び復号装置30を個別の装置として説明したが、これに限らず、各装置10,20,30のうち、例えば暗号装置20と復号装置30とを組合せて暗復号装置としたり、鍵生成装置10と復号装置30とを組合せた鍵生成機能付き復号装置のように、任意の2台を組合せてもよく、また、3台を組合せても良い。
本発明の各実施形態における代数曲面を説明するための模式図である。 本発明の第1の実施形態における鍵生成装置の全体構成図である。 同実施形態における鍵生成装置の処理の流れを説明するためのフローチャートである。 同実施形態の鍵生成装置における第1のバリエーションの全体構成図である。 同実施形態における鍵生成装置の第1のバリエーションの処理の流れを説明するためのフローチャートである。 同実施形態における暗号装置の全体構成図である。 同実施形態における暗号装置の処理の流れを説明するためのフローチャートである。 同実施形態における復号装置の全体構成図である。 同実施形態における復号装置の処理の流れを説明するためのフローチャートである。 同実施形態における復号装置の第2のバリエーションの全体構成図である。 同実施形態における復号装置の第2のバリエーションの処理の流れを説明するためのフローチャートである。 本発明の第2の実施形態に係る鍵生成装置の処理の流れを説明するためのフローチャートである。 同実施形態における鍵生成装置の第1のバリエーションの処理の流れを説明するためのフローチャートである。 同実施形態における暗号装置の処理の流れを説明するためのフローチャートである。 同実施形態における復号装置の処理の流れを説明するためのフローチャートである。 同実施形態における復号装置の第2のバリエーションの処理の流れを説明するためのフローチャートである。
符号の説明
10…鍵生成装置、11…制御部、12…素数生成部、13…セクション生成部、14…1変数多項式生成部、15,35…1変数多項式演算部、16…代数曲面生成部、17…鍵出力部、18…固定パラメータ格納部、20…暗号装置、21…平文入力部、22…公開鍵入力部、23…平文埋め込み部、24…暗号化部、25…1変数既約多項式生成部、26…多項式生成部、27…暗号文出力部、30…復号装置、31…暗号文入力部、32…鍵入力部、33…復号部、34…セクション代入部、36…1変数多項式因数分解部、37…多項式抽出部、38…1変数多項式剰余演算部、39…平文展開部、40…平文出力部。

Claims (33)

  1. 復号用の秘密鍵が代数曲面XのファイブレーションX(x,y,t)=0に対応する2つ以上のセクションのとき、公開鍵である代数曲面XのファイブレーションX(x,y,t)に基づいて、メッセージmを暗号化するための暗号装置であって、
    メッセージmを1変数tで次数(r−1)以下の平文多項式m(t)の係数として埋め込む平文埋め込み手段と、
    3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)を生成する多項式生成手段と、
    次数r以上のランダムな1変数既約多項式f(t)を生成する1変数既約多項式生成手段と、
    前記平文多項式m(t)に対し、前記各多項式p(x,y,t),q(x,y,t),f(t)と前記定義式X(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、前記平文多項式m(t)から暗号文F=Epk(m,p,q,f,X)を生成する暗号化手段と
    を備えたことを特徴とした暗号装置。
  2. 復号用の秘密鍵が代数曲面XのファイブレーションX(x,y,t)=0に対応する2つ以上のセクションのとき、公開鍵である代数曲面XのファイブレーションX(x,y,t)に基づいて、メッセージmを暗号化するための暗号装置であって、
    メッセージmを、1変数tで次数(r−1)以下の平文多項式m(t)の係数と次数r以上の1変数既約多項式f(t)の候補の一部の係数とに分担して埋め込む平文埋め込み手段と、
    3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)を生成する多項式生成手段と、
    前記1変数既約多項式f(t)の候補の各係数のうち、前記メッセージmが埋め込まれていない係数をランダムな値に設定し、前記1変数既約多項式f(t)を生成する1変数既約多項式生成手段と、
    前記平文多項式m(t)に対し、前記各多項式p(x,y,t),q(x,y,t),f(t)と前記定義式X(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、前記平文多項式m(t)から暗号文F=Epk(m,p,q,f,X)を生成する暗号化手段と
    を備えたことを特徴とした暗号装置。
  3. 復号用の秘密鍵が代数曲面XのファイブレーションX(x,y,t)=0に対応する1つのセクションのとき、公開鍵である代数曲面XのファイブレーションX(x,y,t)に基づいて、メッセージmを暗号化するための暗号装置であって、
    メッセージmを1変数tで次数(r−1)以下の平文多項式m(t)の係数として埋め込む平文埋め込み手段と、
    3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)を生成する多項式生成手段と、
    次数r以上のランダムな1変数既約多項式f(t)を生成する1変数既約多項式生成手段と、
    前記平文多項式m(t)に対し、前記1変数既約多項式f(t)と、少なくとも一方が相異なる2つのランダムな多項式の組q(x,y,t),q(x,y,t)とp(x,y,t),p(x,y,t)と、公開された代数曲面XのファイブレーションX(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、前記平文多項式m(t)から複数の暗号文F=Epk(m,p,q,f,X)及びF=Epk(m,p,q,f,X)を生成する暗号化手段と
    を備えたことを特徴とする暗号装置。
  4. 復号用の秘密鍵が代数曲面XのファイブレーションX(x,y,t)=0に対応する1つのセクションのとき、公開鍵である代数曲面XのファイブレーションX(x,y,t)に基づいて、メッセージmを暗号化するための暗号装置であって、
    メッセージmを、1変数tで次数(r−1)以下の平文多項式m(t)の係数と次数r以上の1変数既約多項式f(t)の候補の一部の係数とに分担して埋め込む平文埋め込み手段と、
    3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)を生成する多項式生成手段と、
    前記1変数既約多項式f(t)の候補の各係数のうち、前記メッセージmが埋め込まれていない係数をランダムな値に設定し、前記1変数既約多項式f(t)を生成する1変数既約多項式生成手段と、
    前記平文多項式m(t)に対し、前記1変数既約多項式f(t)と、少なくとも一方が相異なる2つのランダムな多項式の組q(x,y,t),q(x,y,t)とp(x,y,t),p(x,y,t)と、公開された代数曲面XのファイブレーションX(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、前記平文多項式m(t)から複数の暗号文F=Epk(m,p,q,f,X)及びF=Epk(m,p,q,f,X)を生成する暗号化手段と
    を備えたことを特徴とする暗号装置。
  5. メッセージmが1変数tで次数(r−1)以下の平文多項式m(t)の係数として埋め込まれた平文多項式m(t)に対し、3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)と、次数r以上のランダムな1変数既約多項式f(t)と、公開鍵である代数曲面XのファイブレーションX(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により前記平文多項式m(t)から生成された暗号文F=Epk(m,p,q,f,X)が入力されたとき、
    予め保持する秘密鍵である代数曲面XのファイブレーションX(x,y,t)=0に対応する2つのセクションD,Dに基づいて、前記暗号文Fから前記メッセージmを復号するための復号装置であって、
    前記入力された暗号文Fに対し、前記各セクションD,Dを代入して2つの1変数多項式h1(t),h2(t)を生成するセクション代入手段と、
    前記各1変数多項式h1(t),h2(t)を互いに減算し、減算結果{h1(t)−h2(t)}を得る多項式減算手段と、
    前記減算結果{h1(t)−h2(t)}を因数分解する因数分解手段と、
    因数分解結果から最も大きな次数を持つ既約多項式f(t)を抽出する多項式抽出手段と、
    前記1変数多項式h1(t)を前記既約多項式f(t)で除算し、剰余として平文多項式m(t)を得る剰余演算手段と
    を備えたことを特徴とする復号装置。
  6. メッセージmが1変数tで次数(r−1)以下の平文多項式m(t)の係数と次数r以上の1変数既約多項式f(t)の一部の係数とに分担して埋め込まれてなる当該平文多項式m(t)及び1変数既約多項式f(t)に対し、3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)と、前記1変数既約多項式f(t)と、公開鍵である代数曲面XのファイブレーションX(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により前記平文多項式m(t)から生成された暗号文F=Epk(m,p,q,f,X)が入力されたとき、
    予め保持する秘密鍵である代数曲面XのファイブレーションX(x,y,t)=0に対応する2つのセクションD,Dに基づいて、前記暗号文Fから前記メッセージmを復号するための復号装置であって、
    前記入力された暗号文Fに対し、前記各セクションD,Dを代入して2つの1変数多項式h1(t),h2(t)を生成するセクション代入手段と、
    前記各1変数多項式h1(t),h2(t)を互いに減算し、減算結果{h1(t)−h2(t)}を得る多項式減算手段と、
    前記減算結果{h1(t)−h2(t)}を因数分解する因数分解手段と、
    因数分解結果から最も大きな次数を持つ既約多項式f(t)を抽出する多項式抽出手段と、
    前記1変数多項式h1(t)を前記既約多項式f(t)で除算し、剰余として平文多項式m(t)を得る剰余演算手段と、
    この平文多項式m(t)及び前記抽出した既約多項式f(t)を展開し、メッセージmを得る平文展開手段と
    を備えたことを特徴とする復号装置。
  7. メッセージmが1変数tで次数(r−1)以下の平文多項式m(t)の係数として埋め込まれた平文多項式m(t)に対し、次数r以上のランダムな1変数既約多項式f(t)と、少なくとも一方が相異なる2つのランダムな多項式の組q(x,y,t),q(x,y,t)とp(x,y,t),p(x,y,t)と、公開された代数曲面XのファイブレーションX(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、前記平文多項式m(t)から生成された複数の暗号文F=Epk(m,p,q,f,X)及びF=Epk(m,p,q,f,X)が入力されたとき、
    予め保持する秘密鍵である代数曲面XのファイブレーションX(x,y,t)=0に対応する1つのセクションDに基づいて、前記暗号文F,Fから前記メッセージmを復号するための復号装置であって、
    前記入力された2つの暗号文F,Fに対し、前記セクションDを代入することにより、2つの1変数多項式h1(t),h2(t)を生成するセクション代入手段と、
    前記各1変数多項式h1(t),h2(t)を互いに減算し、減算結果{h1(t)−h2(t)}を得る多項式減算手段と、
    前記減算結果{h1(t)−h2(t)}を因数分解する因数分解手段と、
    因数分解結果から最も大きな次数を持つ既約多項式f(t)を抽出する多項式抽出手段と、
    前記1変数多項式h1(t)を前記既約多項式f(t)で除算し、剰余として平文多項式m(t)を得る剰余演算手段と
    を備えたことを特徴とする復号装置。
  8. メッセージmが1変数tで次数(r−1)以下の平文多項式m(t)の係数と次数r以上の1変数既約多項式f(t)の一部の係数とに分担して埋め込まれてなる当該平文多項式m(t)及び1変数既約多項式f(t)に対し、前記1変数既約多項式f(t)と、少なくとも一方が相異なる2つのランダムな多項式の組q(x,y,t),q(x,y,t)とp(x,y,t),p(x,y,t)と、公開された代数曲面XのファイブレーションX(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、前記平文多項式m(t)から生成された複数の暗号文F=Epk(m,p,q,f,X)及びF=Epk(m,p,q,f,X)が入力されたとき、
    予め保持する秘密鍵である代数曲面XのファイブレーションX(x,y,t)=0に対応する1つのセクションDに基づいて、前記暗号文F,Fから前記メッセージmを復号するための復号装置であって、
    前記入力された2つの暗号文F,Fに対し、前記セクションDを代入することにより、2つの1変数多項式h1(t),h2(t)を生成するセクション代入手段と、
    前記各1変数多項式h1(t),h2(t)を互いに減算し、減算結果{h1(t)−h2(t)}を得る多項式減算手段と、
    前記減算結果{h1(t)−h2(t)}を因数分解する因数分解手段と、
    因数分解結果から最も大きな次数を持つ既約多項式f(t)を抽出する多項式抽出手段と、
    前記1変数多項式h1(t)を前記既約多項式f(t)で除算し、剰余として平文多項式m(t)を得る剰余演算手段と、
    この平文多項式m(t)及び前記抽出した既約多項式f(t)を展開し、メッセージmを得る平文展開手段と
    を備えたことを特徴とする復号装置。
  9. 請求項5乃至請求項8のいずれか1項に記載の復号装置において、
    前記1変数多項式h2(t)を前記既約多項式f(t)で除算し、剰余として平文多項式m(t)を得る第2の剰余演算手段と、
    前記各剰余演算手段により得られた2つの平文多項式m(t)を互いに比較し、両者が一致することを検証する検証手段と
    を備えたことを特徴とする復号装置。
  10. メッセージmを暗号化するための公開鍵である代数曲面XのファイブレーションX(x,y,t)と、前記暗号化されたメッセージmを復号するための秘密鍵である代数曲面XのファイブレーションX(x,y,t)=0に対応する2つのセクションD,Dとを生成するための鍵生成装置であって、
    ランダムな1変数多項式λ(t)を生成する第1の1変数多項式生成手段と、
    前記1変数多項式λ(t)で割り切れる1変数多項式λ(t)を生成する第2の1変数多項式手段と、
    前記1変数多項式λ(t)に基づいて、互いの差分{u(t)−v(t)}がλ(t)となるように、変数xをパラメータtで表示する2つの1変数多項式u(t),v(t)を生成する手段と、
    前記1変数多項式λ(t)に基づいて、互いの差分{u(t)−v(t)}がλ(t)となるように、変数yをパラメータtで表示する2つの1変数多項式u(t),v(t)を生成する手段と、
    前記各1変数多項式u(t),v(t),u(t),v(t)に基づいて、前記2つのセクションD:(x,y,t)=(u(t),u(t),t)及びD:(x,y,t)=(v(t),v(t),t)を生成するセクション生成手段と、
    前記各セクションD,Dを持つ代数曲面XのファイブレーションX(x,y,t)を生成する代数曲面生成手段と
    を備えたことを特徴とする鍵生成装置。
  11. メッセージmを暗号化するための公開鍵である代数曲面XのファイブレーションX(x,y,t)と、前記暗号化されたメッセージmを復号するための秘密鍵である代数曲面XのファイブレーションX(x,y,t)=0に対応する1つのセクションDとを生成するための鍵生成装置であって、
    ランダムな1変数多項式群ξ(t)(但し、iは自然数)を生成する第1の1変数多項式生成手段と、
    前記代数曲面の変数x,yをパラメータtで表示する2つの1変数多項式u(t),u(t)を生成する第2の1変数多項式生成手段と、
    前記各1変数多項式u(t),u(t)に基づいて、前記セクションD:(x,y,t)=(u(t),u(t),t)を生成するセクション生成手段と、
    前記1変数多項式群ξ(t)及び前記セクションDに基づいて、前記セクションDを持つ代数曲面XのファイブレーションX(x,y,t)を生成する代数曲面生成手段と
    を備えたことを特徴とする鍵生成装置。
  12. 復号用の秘密鍵が代数曲面XのファイブレーションX(x,y,t)=0に対応する2つ以上のセクションのとき、公開鍵である代数曲面XのファイブレーションX(x,y,t)に基づいて、メッセージmを暗号化するための暗号装置に用いられるプログラムであって、
    前記暗号装置のコンピュータを、
    メッセージmを1変数tで次数(r−1)以下の平文多項式m(t)の係数として埋め込む平文埋め込み手段、
    3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)を生成する多項式生成手段、
    次数r以上のランダムな1変数既約多項式f(t)を生成する1変数既約多項式生成手段、
    前記平文多項式m(t)に対し、前記各多項式p(x,y,t),q(x,y,t),f(t)と前記定義式X(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、前記平文多項式m(t)から暗号文F=Epk(m,p,q,f,X)を生成する暗号化手段、
    として機能させるためのプログラム。
  13. 復号用の秘密鍵が代数曲面XのファイブレーションX(x,y,t)=0に対応する2つ以上のセクションのとき、公開鍵である代数曲面XのファイブレーションX(x,y,t)に基づいて、メッセージmを暗号化するための暗号装置に用いられるプログラムであって、
    前記暗号装置のコンピュータを、
    メッセージmを、1変数tで次数(r−1)以下の平文多項式m(t)の係数と次数r以上の1変数既約多項式f(t)の候補の一部の係数とに分担して埋め込む平文埋め込み手段、
    3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)を生成する多項式生成手段、
    前記1変数既約多項式f(t)の候補の各係数のうち、前記メッセージmが埋め込まれていない係数をランダムな値に設定し、前記1変数既約多項式f(t)を生成する1変数既約多項式生成手段、
    前記平文多項式m(t)に対し、前記各多項式p(x,y,t),q(x,y,t),f(t)と前記定義式X(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、前記平文多項式m(t)から暗号文F=Epk(m,p,q,f,X)を生成する暗号化手段、
    として機能させるためのプログラム。
  14. 復号用の秘密鍵が代数曲面XのファイブレーションX(x,y,t)=0に対応する1つのセクションのとき、公開鍵である代数曲面XのファイブレーションX(x,y,t)に基づいて、メッセージmを暗号化するための暗号装置に用いられるプログラムであって、
    前記暗号装置のコンピュータを、
    メッセージmを1変数tで次数(r−1)以下の平文多項式m(t)の係数として埋め込む平文埋め込み手段、
    3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)を生成する多項式生成手段、
    次数r以上のランダムな1変数既約多項式f(t)を生成する1変数既約多項式生成手段、
    前記平文多項式m(t)に対し、前記1変数既約多項式f(t)と、少なくとも一方が相異なる2つのランダムな多項式の組q(x,y,t),q(x,y,t)とp(x,y,t),p(x,y,t)と、公開された代数曲面XのファイブレーションX(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、前記平文多項式m(t)から複数の暗号文F=Epk(m,p,q,f,X)及びF=Epk(m,p,q,f,X)を生成する暗号化手段、
    として機能させるためのプログラム。
  15. 復号用の秘密鍵が代数曲面XのファイブレーションX(x,y,t)=0に対応する1つのセクションのとき、公開鍵である代数曲面XのファイブレーションX(x,y,t)に基づいて、メッセージmを暗号化するための暗号装置に用いられるプログラムであって、
    前記暗号装置のコンピュータを、
    メッセージmを、1変数tで次数(r−1)以下の平文多項式m(t)の係数と次数r以上の1変数既約多項式f(t)の候補の一部の係数とに分担して埋め込む平文埋め込み手段、
    3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)を生成する多項式生成手段、
    前記1変数既約多項式f(t)の候補の各係数のうち、前記メッセージmが埋め込まれていない係数をランダムな値に設定し、前記1変数既約多項式f(t)を生成する1変数既約多項式生成手段、
    前記平文多項式m(t)に対し、前記1変数既約多項式f(t)と、少なくとも一方が相異なる2つのランダムな多項式の組q(x,y,t),q(x,y,t)とp(x,y,t),p(x,y,t)と、公開された代数曲面XのファイブレーションX(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、前記平文多項式m(t)から複数の暗号文F=Epk(m,p,q,f,X)及びF=Epk(m,p,q,f,X)を生成する暗号化手段、
    として機能させるためのプログラム。
  16. メッセージmが1変数tで次数(r−1)以下の平文多項式m(t)の係数として埋め込まれた平文多項式m(t)に対し、3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)と、次数r以上のランダムな1変数既約多項式f(t)と、公開鍵である代数曲面XのファイブレーションX(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により前記平文多項式m(t)から生成された暗号文F=Epk(m,p,q,f,X)が入力されたとき、
    予め保持する秘密鍵である代数曲面XのファイブレーションX(x,y,t)=0に対応する2つのセクションD,Dに基づいて、前記暗号文Fから前記メッセージmを復号するための復号装置に用いられるプログラムであって、
    前記復号装置のコンピュータを、
    前記入力された暗号文Fに対し、前記各セクションD,Dを代入して2つの1変数多項式h1(t),h2(t)を生成するセクション代入手段、
    前記各1変数多項式h1(t),h2(t)を互いに減算し、減算結果{h1(t)−h2(t)}を得る多項式減算手段、
    前記減算結果{h1(t)−h2(t)}を因数分解する因数分解手段、
    因数分解結果から最も大きな次数を持つ既約多項式f(t)を抽出する多項式抽出手段、
    前記1変数多項式h1(t)を前記既約多項式f(t)で除算し、剰余として平文多項式m(t)を得る剰余演算手段、
    として機能させるためのプログラム。
  17. メッセージmが1変数tで次数(r−1)以下の平文多項式m(t)の係数と次数r以上の1変数既約多項式f(t)の一部の係数とに分担して埋め込まれてなる当該平文多項式m(t)及び1変数既約多項式f(t)に対し、3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)と、前記1変数既約多項式f(t)と、公開鍵である代数曲面XのファイブレーションX(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により前記平文多項式m(t)から生成された暗号文F=Epk(m,p,q,f,X)が入力されたとき、
    予め保持する秘密鍵である代数曲面XのファイブレーションX(x,y,t)=0に対応する2つのセクションD,Dに基づいて、前記暗号文Fから前記メッセージmを復号するための復号装置に用いられるプログラムであって、
    前記復号装置のコンピュータを、
    前記入力された暗号文Fに対し、前記各セクションD,Dを代入して2つの1変数多項式h1(t),h2(t)を生成するセクション代入手段、
    前記各1変数多項式h1(t),h2(t)を互いに減算し、減算結果{h1(t)−h2(t)}を得る多項式減算手段、
    前記減算結果{h1(t)−h2(t)}を因数分解する因数分解手段、
    因数分解結果から最も大きな次数を持つ既約多項式f(t)を抽出する多項式抽出手段、
    前記1変数多項式h1(t)を前記既約多項式f(t)で除算し、剰余として平文多項式m(t)を得る剰余演算手段、
    この平文多項式m(t)及び前記抽出した既約多項式f(t)を展開し、メッセージmを得る平文展開手段、
    として機能させるためのプログラム。
  18. メッセージmが1変数tで次数(r−1)以下の平文多項式m(t)の係数として埋め込まれた平文多項式m(t)に対し、次数r以上のランダムな1変数既約多項式f(t)と、少なくとも一方が相異なる2つのランダムな多項式の組q(x,y,t),q(x,y,t)とp(x,y,t),p(x,y,t)と、公開された代数曲面XのファイブレーションX(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、前記平文多項式m(t)から生成された複数の暗号文F=Epk(m,p,q,f,X)及びF=Epk(m,p,q,f,X)が入力されたとき、
    予め保持する秘密鍵である代数曲面XのファイブレーションX(x,y,t)=0に対応する1つのセクションDに基づいて、前記暗号文F,Fから前記メッセージmを復号するための復号装置に用いられるプログラムであって、
    前記復号装置のコンピュータを、
    前記入力された2つの暗号文F,Fに対し、前記セクションDを代入することにより、2つの1変数多項式h1(t),h2(t)を生成するセクション代入手段、
    前記各1変数多項式h1(t),h2(t)を互いに減算し、減算結果{h1(t)−h2(t)}を得る多項式減算手段、
    前記減算結果{h1(t)−h2(t)}を因数分解する因数分解手段、
    因数分解結果から最も大きな次数を持つ既約多項式f(t)を抽出する多項式抽出手段、
    前記1変数多項式h1(t)を前記既約多項式f(t)で除算し、剰余として平文多項式m(t)を得る剰余演算手段、
    として機能させるためのプログラム。
  19. メッセージmが1変数tで次数(r−1)以下の平文多項式m(t)の係数と次数r以上の1変数既約多項式f(t)の一部の係数とに分担して埋め込まれてなる当該平文多項式m(t)及び1変数既約多項式f(t)に対し、前記1変数既約多項式f(t)と、少なくとも一方が相異なる2つのランダムな多項式の組q(x,y,t),q(x,y,t)とp(x,y,t),p(x,y,t)と、公開された代数曲面XのファイブレーションX(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、前記平文多項式m(t)から生成された複数の暗号文F=Epk(m,p,q,f,X)及びF=Epk(m,p,q,f,X)が入力されたとき、
    予め保持する秘密鍵である代数曲面XのファイブレーションX(x,y,t)=0に対応する1つのセクションDに基づいて、前記暗号文F,Fから前記メッセージmを復号するための復号装置に用いられるプログラムであって、
    前記復号装置のコンピュータを、
    前記入力された2つの暗号文F,Fに対し、前記セクションDを代入することにより、2つの1変数多項式h1(t),h2(t)を生成するセクション代入手段、
    前記各1変数多項式h1(t),h2(t)を互いに減算し、減算結果{h1(t)−h2(t)}を得る多項式減算手段、
    前記減算結果{h1(t)−h2(t)}を因数分解する因数分解手段、
    因数分解結果から最も大きな次数を持つ既約多項式f(t)を抽出する多項式抽出手段、
    前記1変数多項式h1(t)を前記既約多項式f(t)で除算し、剰余として平文多項式m(t)を得る剰余演算手段、
    この平文多項式m(t)及び前記抽出した既約多項式f(t)を展開し、メッセージmを得る平文展開手段、
    として機能させるためのプログラム。
  20. 請求項16乃至請求項19のいずれか1項に記載のプログラムにおいて、
    前記復号装置のコンピュータを、
    前記1変数多項式h2(t)を前記既約多項式f(t)で除算し、剰余として平文多項式m(t)を得る第2の剰余演算手段、
    前記各剰余演算手段により得られた2つの平文多項式m(t)を互いに比較し、両者が一致することを検証する検証手段、
    として機能させるためのプログラム。
  21. メッセージmを暗号化するための公開鍵である代数曲面XのファイブレーションX(x,y,t)と、前記暗号化されたメッセージmを復号するための秘密鍵である代数曲面XのファイブレーションX(x,y,t)=0に対応する2つのセクションD,Dとを生成するための鍵生成装置に用いられるプログラムであって、
    前記鍵生成装置のコンピュータを、
    ランダムな1変数多項式λ(t)を生成する第1の1変数多項式生成手段、
    前記1変数多項式λ(t)で割り切れる1変数多項式λ(t)を生成する第2の1変数多項式手段、
    前記1変数多項式λ(t)に基づいて、互いの差分{u(t)−v(t)}がλ(t)となるように、変数xをパラメータtで表示する2つの1変数多項式u(t),v(t)を生成する手段、
    前記1変数多項式λ(t)に基づいて、互いの差分{u(t)−v(t)}がλ(t)となるように、変数yをパラメータtで表示する2つの1変数多項式u(t),v(t)を生成する手段、
    前記各1変数多項式u(t),v(t),u(t),v(t)に基づいて、前記2つのセクションD:(x,y,t)=(u(t),u(t),t)及びD:(x,y,t)=(v(t),v(t),t)を生成するセクション生成手段、
    前記各セクションD,Dを持つ代数曲面XのファイブレーションX(x,y,t)を生成する代数曲面生成手段、
    として機能させるためのプログラム。
  22. メッセージmを暗号化するための公開鍵である代数曲面XのファイブレーションX(x,y,t)と、前記暗号化されたメッセージmを復号するための秘密鍵である代数曲面XのファイブレーションX(x,y,t)=0に対応する1つのセクションDとを生成するための鍵生成装置に用いられるプログラムであって、
    前記鍵生成装置のコンピュータを、
    ランダムな1変数多項式群ξ(t)(但し、iは自然数)を生成する第1の1変数多項式生成手段、
    前記代数曲面の変数x,yをパラメータtで表示する2つの1変数多項式u(t),u(t)を生成する第2の1変数多項式生成手段、
    前記各1変数多項式u(t),u(t)に基づいて、前記セクションD:(x,y,t)=(u(t),u(t),t)を生成するセクション生成手段、
    前記1変数多項式群ξ(t)及び前記セクションDに基づいて、前記セクションDを持つ代数曲面XのファイブレーションX(x,y,t)を生成する代数曲面生成手段、
    として機能させるためのプログラム。
  23. 復号用の秘密鍵が代数曲面XのファイブレーションX(x,y,t)=0に対応する2つ以上のセクションのとき、公開鍵である代数曲面XのファイブレーションX(x,y,t)に基づいて、メッセージmを暗号化するための暗号装置が実行する暗号方法であって、
    メッセージmを1変数tで次数(r−1)以下の平文多項式m(t)の係数として埋め込む平文埋め込み工程と、
    3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)を生成する多項式生成工程と、
    次数r以上のランダムな1変数既約多項式f(t)を生成する1変数既約多項式生成工程と、
    前記平文多項式m(t)に対し、前記各多項式p(x,y,t),q(x,y,t),f(t)と前記定義式X(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、前記平文多項式m(t)から暗号文F=Epk(m,p,q,f,X)を生成する暗号化工程と
    を備えたことを特徴とした暗号方法。
  24. 復号用の秘密鍵が代数曲面XのファイブレーションX(x,y,t)=0に対応する2つ以上のセクションのとき、公開鍵である代数曲面XのファイブレーションX(x,y,t)に基づいて、メッセージmを暗号化するための暗号装置が実行する暗号方法であって、
    メッセージmを、1変数tで次数(r−1)以下の平文多項式m(t)の係数と次数r以上の1変数既約多項式f(t)の候補の一部の係数とに分担して埋め込む平文埋め込み工程と、
    3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)を生成する多項式生成工程と、
    前記1変数既約多項式f(t)の候補の各係数のうち、前記メッセージmが埋め込まれていない係数をランダムな値に設定し、前記1変数既約多項式f(t)を生成する1変数既約多項式生成工程と、
    前記平文多項式m(t)に対し、前記各多項式p(x,y,t),q(x,y,t),f(t)と前記定義式X(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、前記平文多項式m(t)から暗号文F=Epk(m,p,q,f,X)を生成する暗号化工程と
    を備えたことを特徴とした暗号方法。
  25. 復号用の秘密鍵が代数曲面XのファイブレーションX(x,y,t)=0に対応する1つのセクションのとき、公開鍵である代数曲面XのファイブレーションX(x,y,t)に基づいて、メッセージmを暗号化するための暗号装置が実行する暗号方法であって、
    メッセージmを1変数tで次数(r−1)以下の平文多項式m(t)の係数として埋め込む平文埋め込み工程と、
    3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)を生成する多項式生成工程と、
    次数r以上のランダムな1変数既約多項式f(t)を生成する1変数既約多項式生成工程と、
    前記平文多項式m(t)に対し、前記1変数既約多項式f(t)と、少なくとも一方が相異なる2つのランダムな多項式の組q(x,y,t),q(x,y,t)とp(x,y,t),p(x,y,t)と、公開された代数曲面XのファイブレーションX(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、前記平文多項式m(t)から複数の暗号文F=Epk(m,p,q,f,X)及びF=Epk(m,p,q,f,X)を生成する暗号化工程と
    を備えたことを特徴とする暗号方法。
  26. 復号用の秘密鍵が代数曲面XのファイブレーションX(x,y,t)=0に対応する1つのセクションのとき、公開鍵である代数曲面XのファイブレーションX(x,y,t)に基づいて、メッセージmを暗号化するための暗号装置が実行する暗号方法であって、
    メッセージmを、1変数tで次数(r−1)以下の平文多項式m(t)の係数と次数r以上の1変数既約多項式f(t)の候補の一部の係数とに分担して埋め込む平文埋め込み工程と、
    3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)を生成する多項式生成工程と、
    前記1変数既約多項式f(t)の候補の各係数のうち、前記メッセージmが埋め込まれていない係数をランダムな値に設定し、前記1変数既約多項式f(t)を生成する1変数既約多項式生成工程と、
    前記平文多項式m(t)に対し、前記1変数既約多項式f(t)と、少なくとも一方が相異なる2つのランダムな多項式の組q(x,y,t),q(x,y,t)とp(x,y,t),p(x,y,t)と、公開された代数曲面XのファイブレーションX(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、前記平文多項式m(t)から複数の暗号文F=Epk(m,p,q,f,X)及びF=Epk(m,p,q,f,X)を生成する暗号化工程と
    を備えたことを特徴とする暗号方法。
  27. メッセージmが1変数tで次数(r−1)以下の平文多項式m(t)の係数として埋め込まれた平文多項式m(t)に対し、3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)と、次数r以上のランダムな1変数既約多項式f(t)と、公開鍵である代数曲面XのファイブレーションX(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により前記平文多項式m(t)から生成された暗号文F=Epk(m,p,q,f,X)が入力されたとき、
    予め保持する秘密鍵である代数曲面XのファイブレーションX(x,y,t)=0に対応する2つのセクションD,Dに基づいて、前記暗号文Fから前記メッセージmを復号するための復号装置が実行する復号方法であって、
    前記入力された暗号文Fに対し、前記各セクションD,Dを代入して2つの1変数多項式h1(t),h2(t)を生成するセクション代入工程と、
    前記各1変数多項式h1(t),h2(t)を互いに減算し、減算結果{h1(t)−h2(t)}を得る多項式減算工程と、
    前記減算結果{h1(t)−h2(t)}を因数分解する因数分解工程と、
    因数分解結果から最も大きな次数を持つ既約多項式f(t)を抽出する多項式抽出工程と、
    前記1変数多項式h1(t)を前記既約多項式f(t)で除算し、剰余として平文多項式m(t)を得る剰余演算工程と
    を備えたことを特徴とする復号方法。
  28. メッセージmが1変数tで次数(r−1)以下の平文多項式m(t)の係数と次数r以上の1変数既約多項式f(t)の一部の係数とに分担して埋め込まれてなる当該平文多項式m(t)及び1変数既約多項式f(t)に対し、3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)と、前記1変数既約多項式f(t)と、公開鍵である代数曲面XのファイブレーションX(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により前記平文多項式m(t)から生成された暗号文F=Epk(m,p,q,f,X)が入力されたとき、
    予め保持する秘密鍵である代数曲面XのファイブレーションX(x,y,t)=0に対応する2つのセクションD,Dに基づいて、前記暗号文Fから前記メッセージmを復号するための復号装置が実行する復号方法であって、
    前記入力された暗号文Fに対し、前記各セクションD,Dを代入して2つの1変数多項式h1(t),h2(t)を生成するセクション代入工程と、
    前記各1変数多項式h1(t),h2(t)を互いに減算し、減算結果{h1(t)−h2(t)}を得る多項式減算工程と、
    前記減算結果{h1(t)−h2(t)}を因数分解する因数分解工程と、
    因数分解結果から最も大きな次数を持つ既約多項式f(t)を抽出する多項式抽出工程と、
    前記1変数多項式h1(t)を前記既約多項式f(t)で除算し、剰余として平文多項式m(t)を得る剰余演算工程と、
    この平文多項式m(t)及び前記抽出した既約多項式f(t)を展開し、メッセージmを得る平文展開工程と
    を備えたことを特徴とする復号方法。
  29. メッセージmが1変数tで次数(r−1)以下の平文多項式m(t)の係数として埋め込まれた平文多項式m(t)に対し、次数r以上のランダムな1変数既約多項式f(t)と、少なくとも一方が相異なる2つのランダムな多項式の組q(x,y,t),q(x,y,t)とp(x,y,t),p(x,y,t)と、公開された代数曲面XのファイブレーションX(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、前記平文多項式m(t)から生成された複数の暗号文F=Epk(m,p,q,f,X)及びF=Epk(m,p,q,f,X)が入力されたとき、
    予め保持する秘密鍵である代数曲面XのファイブレーションX(x,y,t)=0に対応する1つのセクションDに基づいて、前記暗号文F,Fから前記メッセージmを復号するための復号装置が実行する復号方法であって、
    前記入力された2つの暗号文F,Fに対し、前記セクションDを代入することにより、2つの1変数多項式h1(t),h2(t)を生成するセクション代入工程と、
    前記各1変数多項式h1(t),h2(t)を互いに減算し、減算結果{h1(t)−h2(t)}を得る多項式減算工程と、
    前記減算結果{h1(t)−h2(t)}を因数分解する因数分解工程と、
    因数分解結果から最も大きな次数を持つ既約多項式f(t)を抽出する多項式抽出工程と、
    前記1変数多項式h1(t)を前記既約多項式f(t)で除算し、剰余として平文多項式m(t)を得る剰余演算工程と
    を備えたことを特徴とする復号方法。
  30. メッセージmが1変数tで次数(r−1)以下の平文多項式m(t)の係数と次数r以上の1変数既約多項式f(t)の一部の係数とに分担して埋め込まれてなる当該平文多項式m(t)及び1変数既約多項式f(t)に対し、前記1変数既約多項式f(t)と、少なくとも一方が相異なる2つのランダムな多項式の組q(x,y,t),q(x,y,t)とp(x,y,t),p(x,y,t)と、公開された代数曲面XのファイブレーションX(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、前記平文多項式m(t)から生成された複数の暗号文F=Epk(m,p,q,f,X)及びF=Epk(m,p,q,f,X)が入力されたとき、
    予め保持する秘密鍵である代数曲面XのファイブレーションX(x,y,t)=0に対応する1つのセクションDに基づいて、前記暗号文F,Fから前記メッセージmを復号するための復号装置が実行する復号方法であって、
    前記入力された2つの暗号文F,Fに対し、前記セクションDを代入することにより、2つの1変数多項式h1(t),h2(t)を生成するセクション代入工程と、
    前記各1変数多項式h1(t),h2(t)を互いに減算し、減算結果{h1(t)−h2(t)}を得る多項式減算工程と、
    前記減算結果{h1(t)−h2(t)}を因数分解する因数分解工程と、
    因数分解結果から最も大きな次数を持つ既約多項式f(t)を抽出する多項式抽出工程と、
    前記1変数多項式h1(t)を前記既約多項式f(t)で除算し、剰余として平文多項式m(t)を得る剰余演算工程と、
    この平文多項式m(t)及び前記抽出した既約多項式f(t)を展開し、メッセージmを得る平文展開工程と
    を備えたことを特徴とする復号方法。
  31. 請求項27乃至請求項30のいずれか1項に記載の復号方法において、
    前記1変数多項式h2(t)を前記既約多項式f(t)で除算し、剰余として平文多項式m(t)を得る第2の剰余演算工程と、
    前記各剰余演算工程により得られた2つの平文多項式m(t)を互いに比較し、両者が一致することを検証する検証工程と
    を備えたことを特徴とする復号方法。
  32. メッセージmを暗号化するための公開鍵である代数曲面XのファイブレーションX(x,y,t)と、前記暗号化されたメッセージmを復号するための秘密鍵である代数曲面XのファイブレーションX(x,y,t)=0に対応する2つのセクションD,Dとを生成するための鍵生成装置が実行する鍵生成方法であって、
    ランダムな1変数多項式λ(t)を生成する第1の1変数多項式生成工程と、
    前記1変数多項式λ(t)で割り切れる1変数多項式λ(t)を生成する第2の1変数多項式工程と、
    前記1変数多項式λ(t)に基づいて、互いの差分{u(t)−v(t)}がλ(t)となるように、変数xをパラメータtで表示する2つの1変数多項式u(t),v(t)を生成する工程と、
    前記1変数多項式λ(t)に基づいて、互いの差分{u(t)−v(t)}がλ(t)となるように、変数yをパラメータtで表示する2つの1変数多項式u(t),v(t)を生成する工程と、
    前記各1変数多項式u(t),v(t),u(t),v(t)に基づいて、前記2つのセクションD:(x,y,t)=(u(t),u(t),t)及びD:(x,y,t)=(v(t),v(t),t)を生成するセクション生成工程と、
    前記各セクションD,Dを持つ代数曲面XのファイブレーションX(x,y,t)を生成する代数曲面生成工程と
    を備えたことを特徴とする鍵生成方法。
  33. メッセージmを暗号化するための公開鍵である代数曲面XのファイブレーションX(x,y,t)と、前記暗号化されたメッセージmを復号するための秘密鍵である代数曲面XのファイブレーションX(x,y,t)=0に対応する1つのセクションDとを生成するための鍵生成装置が実行する鍵生成方法であって、
    ランダムな1変数多項式群ξ(t)(但し、iは自然数)を生成する第1の1変数多項式生成工程と、
    前記代数曲面の変数x,yをパラメータtで表示する2つの1変数多項式u(t),u(t)を生成する第2の1変数多項式生成工程と、
    前記各1変数多項式u(t),u(t)に基づいて、前記セクションD:(x,y,t)=(u(t),u(t),t)を生成するセクション生成工程と、
    前記1変数多項式群ξ(t)及び前記セクションDに基づいて、前記セクションDを持つ代数曲面XのファイブレーションX(x,y,t)を生成する代数曲面生成工程と
    を備えたことを特徴とする鍵生成方法。
JP2004149052A 2004-05-19 2004-05-19 暗号装置、復号装置、鍵生成装置、プログラム及び方法 Expired - Fee Related JP4282546B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004149052A JP4282546B2 (ja) 2004-05-19 2004-05-19 暗号装置、復号装置、鍵生成装置、プログラム及び方法
US11/128,283 US7688973B2 (en) 2004-05-19 2005-05-13 Encryption apparatus, decryption apparatus, key generation apparatus, program, and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004149052A JP4282546B2 (ja) 2004-05-19 2004-05-19 暗号装置、復号装置、鍵生成装置、プログラム及び方法

Publications (2)

Publication Number Publication Date
JP2005331656A true JP2005331656A (ja) 2005-12-02
JP4282546B2 JP4282546B2 (ja) 2009-06-24

Family

ID=35448947

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004149052A Expired - Fee Related JP4282546B2 (ja) 2004-05-19 2004-05-19 暗号装置、復号装置、鍵生成装置、プログラム及び方法

Country Status (2)

Country Link
US (1) US7688973B2 (ja)
JP (1) JP4282546B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007139895A (ja) * 2005-11-15 2007-06-07 Toshiba Corp 暗号装置、復号装置、プログラム及び方法
JP2007271715A (ja) * 2006-03-30 2007-10-18 Toshiba Corp 鍵生成装置、プログラム及び方法
JP2008046295A (ja) * 2006-08-14 2008-02-28 Sony Corp 公開鍵暗号システム構築方法、暗号演算方法、および情報処理装置、並びにコンピュータ・プログラム
JP2009543498A (ja) * 2006-07-12 2009-12-03 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ デジタルデータ処理装置の耐改竄性
JP2010204466A (ja) * 2009-03-04 2010-09-16 Toshiba Corp 暗号装置、復号装置、鍵生成装置及びプログラム

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4575251B2 (ja) 2005-07-25 2010-11-04 株式会社東芝 デジタル署名生成装置、デジタル署名検証装置、デジタル署名生成方法、デジタル署名検証方法、デジタル署名生成プログラム及びデジタル署名検証プログラム
WO2007096566A1 (fr) * 2006-02-23 2007-08-30 France Telecom Dispositif et procede de hachage cryptographique
JP4197710B2 (ja) * 2006-07-19 2008-12-17 株式会社東芝 暗号装置、復号装置、プログラム及び方法
US7987367B2 (en) * 2006-08-30 2011-07-26 Samsung Electronics Co., Ltd. Method and apparatus for key agreement between devices using polynomial ring
KR101367101B1 (ko) 2006-08-30 2014-02-25 삼성전자주식회사 다항식환을 이용한 키 합의 방법 및 이를 위한 장치
JP2009116183A (ja) * 2007-11-08 2009-05-28 Toshiba Corp 暗号装置、復号装置、鍵生成装置及びプログラム
FI20075931L (fi) * 2007-12-18 2009-06-19 Abb Oy Menetelmä ja laite signaalidatan siirtämiseksi
US8037327B2 (en) * 2008-03-31 2011-10-11 Agilent Technologies, Inc. System and method for improving dynamic response in a power supply
JP2010164904A (ja) * 2009-01-19 2010-07-29 Fujitsu Ltd 楕円曲線演算処理装置、楕円曲線演算処理プログラム及び方法
US8639945B2 (en) * 2010-05-25 2014-01-28 Via Technologies, Inc. Branch and switch key instruction in a microprocessor that fetches and decrypts encrypted instructions
JP5594034B2 (ja) * 2010-07-30 2014-09-24 ソニー株式会社 認証装置、認証方法、及びプログラム
JP6069852B2 (ja) * 2011-08-29 2017-02-01 ソニー株式会社 情報処理装置、情報処理方法、及びプログラム
KR101301609B1 (ko) * 2012-05-31 2013-08-29 서울대학교산학협력단 비밀키 생성 장치 및 방법, 그리고 그 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체
US10574461B2 (en) * 2013-09-30 2020-02-25 Triad National Security, Llc Streaming authentication and multi-level security for communications networks using quantum cryptography
US9425952B2 (en) 2014-03-27 2016-08-23 Samsung Israel Research Corporation Algebraic manipulation detection codes from algebraic curves
KR102520502B1 (ko) * 2016-08-02 2023-04-12 엑스-로고스, 엘엘씨 기하 대수학을 이용한 강화된 데이터-중심 암호화 시스템을 위한 방법 및 시스템
US11128454B2 (en) 2019-05-30 2021-09-21 Bong Mann Kim Quantum safe cryptography and advanced encryption and key exchange (AEKE) method for symmetric key encryption/exchange

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2170834C (en) * 1996-03-01 2006-11-21 Calin A. Sandru Apparatus and method for enhancing the security of negotiable documents
JP2001255814A (ja) * 2000-03-10 2001-09-21 Murata Mach Ltd 復号方法、復号装置、及び復号プログラムの記録媒体
US20040151309A1 (en) * 2002-05-03 2004-08-05 Gentry Craig B Ring-based signature scheme

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007139895A (ja) * 2005-11-15 2007-06-07 Toshiba Corp 暗号装置、復号装置、プログラム及び方法
US7773747B2 (en) 2005-11-15 2010-08-10 Kabushiki Kaisha Toshiba Encryption apparatus, decryption apparatus, and method
JP4575283B2 (ja) * 2005-11-15 2010-11-04 株式会社東芝 暗号装置、復号装置、プログラム及び方法
JP2007271715A (ja) * 2006-03-30 2007-10-18 Toshiba Corp 鍵生成装置、プログラム及び方法
JP4664850B2 (ja) * 2006-03-30 2011-04-06 株式会社東芝 鍵生成装置、プログラム及び方法
JP2009543498A (ja) * 2006-07-12 2009-12-03 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ デジタルデータ処理装置の耐改竄性
US8543835B2 (en) 2006-07-12 2013-09-24 Irdeto B.V. Tamper resistance of a digital data processing unit
JP2008046295A (ja) * 2006-08-14 2008-02-28 Sony Corp 公開鍵暗号システム構築方法、暗号演算方法、および情報処理装置、並びにコンピュータ・プログラム
JP2010204466A (ja) * 2009-03-04 2010-09-16 Toshiba Corp 暗号装置、復号装置、鍵生成装置及びプログラム

Also Published As

Publication number Publication date
JP4282546B2 (ja) 2009-06-24
US20050271203A1 (en) 2005-12-08
US7688973B2 (en) 2010-03-30

Similar Documents

Publication Publication Date Title
JP4282546B2 (ja) 暗号装置、復号装置、鍵生成装置、プログラム及び方法
JP4384056B2 (ja) 暗号装置、復号装置、鍵生成装置、プログラム及び方法
JP4575283B2 (ja) 暗号装置、復号装置、プログラム及び方法
JP4197710B2 (ja) 暗号装置、復号装置、プログラム及び方法
US7711113B2 (en) ID-based signature, encryption system and encryption method
US7469048B2 (en) Methods for point compression for jacobians of hyperelliptic curves
JP4664850B2 (ja) 鍵生成装置、プログラム及び方法
Bosselaers et al. Integrity Primitives for Secure Information Systems: Final Ripe Report of Race Integrity Primitives Evaluation
JP2008203548A (ja) 二次双曲線群を使用する鍵生成方法、復号方法、署名検証方法、鍵ストリーム生成方法および装置。
JP2010204466A (ja) 暗号装置、復号装置、鍵生成装置及びプログラム
JP4869824B2 (ja) 受信者装置及び送信者装置及び暗号通信システム及びプログラム
US20100329447A1 (en) Encryption apparatus, decryption apparatus, key generation apparatus, and program
JP2014002230A (ja) 認証暗号化装置、認証復号装置、およびプログラム
JP2009175197A (ja) 暗号装置、復号装置、鍵生成装置及びプログラム
JP2021072593A (ja) 暗号処理システム及び暗号処理方法
JP7273742B2 (ja) 暗号化装置、復号装置、暗号方法、復号方法、暗号化プログラム及び復号プログラム
JP2011040932A (ja) 認証付き暗号化装置、認証付き暗号化方法、検証付き復号装置、検証付き復号方法、暗号システム、プログラム、記録媒体
JP4528114B2 (ja) 鍵生成装置、暗号化装置、検査装置、復号化装置並びに鍵生成プログラム、暗号化プログラム、検査プログラム、復号化プログラム
JP7443217B2 (ja) 暗号化装置、復号装置、暗号方法、復号方法、暗号化プログラム及び復号プログラム
JP4685621B2 (ja) 鍵生成装置、暗号化装置、復号化装置、乗法型ナップザック暗号システム、乗法型ナップザック暗号復号方法およびプログラム
JP2002023626A (ja) 公開鍵暗号方法および公開鍵暗号を用いた通信システム
CN113259094B (zh) 一种通用的层级签名加密系统与构建方法
JPH1155244A (ja) 鍵回復方法および装置
JP2010002662A (ja) リカバリ署名システム、署名生成装置、署名検証装置、それらの方法、及びプログラム
JPH1039751A (ja) 公開鍵暗号による通信および認証方法、ならびにそれらの装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050907

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090106

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090204

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090303

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090317

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

Free format text: PAYMENT UNTIL: 20120327

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130327

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130327

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140327

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees