JP4575283B2 - 暗号装置、復号装置、プログラム及び方法 - Google Patents

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

Info

Publication number
JP4575283B2
JP4575283B2 JP2005330516A JP2005330516A JP4575283B2 JP 4575283 B2 JP4575283 B2 JP 4575283B2 JP 2005330516 A JP2005330516 A JP 2005330516A JP 2005330516 A JP2005330516 A JP 2005330516A JP 4575283 B2 JP4575283 B2 JP 4575283B2
Authority
JP
Japan
Prior art keywords
polynomial
plaintext
ciphertext
encryption
variable
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005330516A
Other languages
English (en)
Other versions
JP2007139895A (ja
Inventor
浩一郎 秋山
泰宏 後藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2005330516A priority Critical patent/JP4575283B2/ja
Priority to US11/426,450 priority patent/US7773747B2/en
Publication of JP2007139895A publication Critical patent/JP2007139895A/ja
Application granted granted Critical
Publication of JP4575283B2 publication Critical patent/JP4575283B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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)

Description

本発明は、代数曲面を用いた公開鍵暗号方式の暗号装置、復号装置、プログラム及び方法に関する。
ネットワーク社会では、電子メール等の多くの情報がネットワーク上に伝送されることにより、人々のコミュニケーションが行われる。このようなネットワーク社会において、暗号技術は情報の機密性や真正性を守る手段として広く活用されている。
暗号技術は、共通鍵暗号技術と公開鍵暗号技術に大きく分類できる。共通鍵暗号はデータの攪拌アルゴリズムに基づいた暗号方式であり、高速に暗号化/復号ができる一方で、予め共通鍵を共有した2者間でしか秘密通信や認証通信ができない。
このため、共通鍵暗号は、主に有料デジタル放送のように、受信後にリアルタイムに復号される情報の暗号化に利用される。この場合、有料デジタル放送の復号鍵は、別途、限定受信システムと呼ばれる鍵配信システムを用いて視聴契約者だけに配信される。
一方、公開鍵暗号は数学的なアルゴリズムに基づいた暗号方式であり、暗号化/復号が共通鍵暗号より低速であるが、事前の鍵共有を不要としつつ、秘密通信や認証通信が可能となる利点がある。詳しくは、公開鍵暗号は、送信相手の公開鍵を用いて暗号処理を施すことで秘密通信を実現し、自己の秘密鍵を用いてデジタル署名を施すことで認証通信を可能とする。
ここで、インターネットに開設されているネットショッピング、銀行や証券会社のオンラインサイトでは、クレジットカード番号や住所などの顧客情報を盗聴から守るために、公開鍵暗号が用いられることが多い。理由は、顧客情報を暗号化するための暗号鍵を予め共有することが必ずしも可能でないため、共通鍵暗号が不向きなことによる。
代表的な公開鍵暗号には、RSA暗号と楕円曲線暗号がある。RSA暗号は、素因数分解問題の困難性を安全性の根拠としており、べき乗剰余演算が暗号化演算として用いられている。楕円曲線暗号は、楕円曲線上の離散対数問題の困難性を安全性の根拠としており、楕円曲線上の点演算が暗号化演算に用いられる。
これらの公開鍵暗号は、特定の鍵(公開鍵)に関する解読法は提案されているものの、一般的な解読法が知られていない。このため、安全性に関する重大な問題は、後述する量子計算機による解読法を除き、現在までのところ、見つかっていない。
この他の公開鍵暗号にはナップサック暗号及び多次多変数暗号などがある。ナップサック暗号は、NP問題としてのナップサック問題の困難性に安全性の根拠をおいた暗号方式である。多次多変数暗号は、体の拡大理論を利用して構成され、連立方程式の解を求める問題に安全性の根拠をおいた暗号方式である。
しかし、ナップサック暗号は、ほとんどの実現形態にて解読法が知られているので、安全性に疑問がある。多次多変数暗号は、有力な解読法が知られている一方、この解読法は鍵サイズの増大により避けられることも知られている。しかし、多次多変数暗号は、この解読法を避けるのに必要な鍵サイズが膨大になるので、問題視され始めている。
一方、前述したRSA暗号と楕円曲線暗号も、量子計算機が出現すれば解読される可能性が高い。量子計算機は、現在の計算機とは異なり、量子力学におけるエンタングルメントという物理現象を利用して超並列計算を実行可能な計算機である。量子計算機は、実験レベルの仮想の計算機であるが、実現に向けて研究開発が進められている。1994年にショア(Shor)は、量子計算機によれば、素因数分解や離散対数問題を効率的に解くアルゴリズムを構成できることを示した。即ち、量子計算機が実現すれば、素因数分解に基づくRSA暗号や、楕円曲線上の離散対数問題に基づく楕円曲線暗号は解読される可能性が高い。
一方、量子計算機が実現されても安全な公開鍵暗号が研究されてきている。一例として、量子公開鍵暗号が挙げられる。量子公開鍵暗号では、現在の計算機では鍵生成が不可能である程に強力なナップサック暗号の鍵を量子計算機により生成する。このため、量子公開鍵暗号では、量子計算機でも解読できない程に強力なナップサック暗号を構成し得る。しかし、量子公開鍵暗号は、現在の計算機では鍵生成が不可能なため、現時点では利用できない。
一方、多次多変数暗号は、現時点でも実現可能な公開鍵暗号であり、量子計算機でも解読が難しい。しかし、多次多変数暗号は、現在の計算機に対して安全な鍵サイズが膨大なため、実用化が疑問視されている。
更に、公開鍵暗号は、共通鍵暗号と比べ、回路規模が大きく、処理時間が長い。よって、モバイル端末などの小電力環境では実現できないか、実現しても待ち時間が長いという問題がある。このため、小電力環境でも実現できる公開鍵暗号が求められている。
一般に公開鍵暗号は、予め素因数分解問題や離散対数問題などの計算困難な問題を見出し、秘密鍵を知らずに暗号文の解読を試みる場合、当該計算困難な問題を解くことと同等になるように構成する。
しかし、計算困難な問題が見つかっても、その問題を安全性の根拠とする公開鍵暗号を容易に構成できる訳ではない。理由は、計算が困難すぎる問題を安全性の根拠にすると鍵を生成する問題も困難になるので、鍵を生成できないためである。一方、鍵生成が可能な程度に問題を容易にすると、解読も容易になってしまう。
従って、公開鍵暗号を構成するには、計算困難な問題を見つけるとともに、見つけた問題を、鍵生成は容易だが、解読は容易でないという絶妙なバランスを持つ問題に作り変える必要がある。このような問題の作り変えには高い創造性を必要とする。実際には、問題の作り変えが極めて困難なため、数えるほどの公開鍵暗号しか提案されていない。
このような状況において、量子計算機が出現しても安全性を確保できる可能性があり、現在の計算機でも安全に実現可能であるとともに、小電力環境での実現可能性がある公開鍵暗号方式として、代数曲面を用いた公開鍵暗号が本発明者により提案されている(例えば、特許文献1参照)。但し、特許文献1記載の方式は、2005年11月現在、特許文献1が未公開であり、公知技術ではない。以下ではこれを(簡単のため)代数曲面暗号と呼ぶことにする。
また、公開鍵暗号の安全性は、素因数分解問題や離散対数問題のように、公開鍵暗号を構築する問題の困難性に基づくと考えられている。しかし、この考えは、厳密な帰着関係を述べるものではない。
厳密な帰着関係を述べるためには、解読者による攻撃と達成される安全性とをモデル化し、モデル化した攻撃の下で安全性を達成することと、安全性の根拠となる問題の難しさとが等価であることを証明する必要がある。すなわち、公開鍵暗号の安全性と問題の困難性との厳密な帰着関係を述べることが安全性証明である。
安全性証明において、攻撃のモデルには大きく分けて受動的攻撃(Chosen Plaintext Attack(CPA))と能動的攻撃がある。
受動的攻撃とは、公開鍵を利用して平文を繰り返し暗号化し、得られる暗号文から情報を引き出そうとする攻撃である。能動的攻撃(Chosen Cipher Attack(CCA))とは、更に暗号文を復号装置に適応的に入力し、得られる復号結果から秘密鍵の情報を引き出そうとする攻撃である。この意味からCCAの方がCPAより強い攻撃となっている。
また、安全性証明において、達成される安全性には2つの基準が提案されている。
第1の基準は、2つの平文を暗号化した後に区別できないこと(Indistinguishable(IND))である。第2の基準は、暗号文に多項式時間の操作を施しても、元の平文と関係のある平文の暗号文を作成できないこと(Non-Malleable(NM))である。
従って、安全性証明の基準は、敵による攻撃のモデルと、達成される安全性との組合せでIND−CPA,NM−CCAのように表現される。IND−CPAは、受動的攻撃の下で、2つの暗号文から元の平文を区別する情報を抽出できない旨を意味する。NM−CCAは、能動的攻撃の下で、暗号文を操作した結果から元の平文に関係した情報を得られない旨を意味する。現在のところ、最強の安全性と考えられている基準はIND−CCAである。
一方、IND−CPAの意味で安全性が証明された公開鍵暗号を、IND−CCAの意味で証明可能安全な公開鍵暗号アルゴリズムに変換する方法が知られている(例えば、特許文献2参照)。従って、IND−CPAの意味で安全性が証明された公開鍵暗号を構成できれば、この公開鍵暗号をIND−CCAの意味で証明可能安全(provable secure)な公開鍵暗号に変換することが可能となっている。
特願2004−149052号明細書 特許第3306384号特許公報
以上説明したように、量子計算機が出現しても安全性を確保できる可能性があり、現在の計算機でも安全に実現可能であるとともに、小電力環境での実現可能性がある証明可能安全な公開鍵暗号を構成することが望まれている。
本発明は上記実情を考慮してなされたもので、量子計算機が出現しても安全性を確保できる可能性があり、現在の計算機でも安全に実現可能であるとともに、小電力環境での実現可能性がある証明可能安全な公開鍵暗号方式を構成し得る暗号装置、復号装置、プログラム及び方法を提供することを目的とする。
第1の発明は、復号用の秘密鍵が代数曲面XのファイブレーションX(x,y,t)=0に対応する2つ以上のセクションのとき、公開鍵である代数曲面XのファイブレーションX(x,y,t)に基づいて、予めメッセージmを暗号化するための暗号装置であって、前記メッセージmと乱数rを連結した平文Mを1変数tで次数l-1以下の平文多項式M(t)の係数として埋め込む平文埋め込み手段と、前記平文Mのハッシュ値H(M)に基づいて3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)を生成する多項式生成手段と、次数l以上のランダムな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と乱数rを連結した平文Mを1変数tで次数l-1以下の平文多項式M(t)と次数l以上の1変数既約多項式f(t)の候補の一部の係数とに分担して埋め込む平文埋め込み手段と、前記平文Mのハッシュ値H(M)に基づいて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の発明は、第1又は第2の発明の暗号装置において、前記多項式生成手段としては、前記平文Mのハッシュ値H(M)に基づいて3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)の各項のx指数、y指数、t指数及び係数のうち、少なくとも2つ以上を生成する暗号装置である。
第4の発明は、メッセージmと乱数rを連結した平文Mが1変数tで次数(l-1)以下の平文多項式M(t)の係数として埋め込まれた平文多項式M(t)に対し、3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)と、次数l以上のランダムな1変数既約多項式f(t)と、公開鍵である代数曲面XのファイブレーションX(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により前記平文多項式M(t)から生成された暗号文F=Epk(M,p,q,f,X)が入力されたとき、予め保持する秘密鍵である代数曲面XのファイブレーションX(x,y,t)=0に対応する2つのセクションD1,D2に基づいて、前記暗号文Fから前記メッセージmを復号するための復号装置であって、前記入力された暗号文Fに対し、前記各セクションD1,D2を代入して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)の係数から平文Mを抽出する平文抽出手段と、前記平文抽出手段により得られた平文Mに基づいて、この平文Mのハッシュ値H(M)を演算するハッシュ演算手段と、前記ハッシュ演算手段により得られたハッシュ値H(M)に基づいて、3変数x,y,tの多項式p(x,y,t),q(x,y,t)を生成する多項式生成手段と、前記各多項式p(x,y,t),q(x,y,t),f(t)と前記ファイブレーションX(x,y,t)とに基づいて、前記暗号化処理と同じ処理により、暗号文F’=Epk(M,p,q,f,X)を再現する暗号文再現手段と、前記入力された暗号文Fと前記再現された暗号文F’とが一致するか否かを判定する暗号文判定手段と、前記暗号文判定手段による判定結果が一致の場合、前記平文M又は前記メッセージmを出力する平文出力手段と、前記暗号文判定手段による判定結果が否の場合、暗号文無
効情報を出力する無効出力手段とを備えた復号装置である。
第5の発明は、メッセージmと乱数rを連結した平文Mが1変数tで次数(l-1)以下の平文多項式M(t)の係数と次数l以上の1変数既約多項式f(t)の候補の一部の係数とに分担して埋め込まれた平文多項式M(t)に対し、3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)と、次数l以上のランダムな1変数既約多項式f(t)と、公開鍵である代数曲面XのファイブレーションX(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により前記平文多項式M(t)から生成された暗号文F=Epk(M,p,q,f,X)が入力されたとき、予め保持する秘密鍵である代数曲面XのファイブレーションX(x,y,t)=0に対応する2つのセクションD1,D2に基づいて、前記暗号文Fから前記メッセージmを復号するための復号装置であって、前記入力された暗号文Fに対し、前記各セクションD1,D2を代入して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を抽出する平文抽出手段と、前記平文抽出手段により得られた平文Mに基づいて、この平文Mのハッシュ値H(M)を演算するハッシュ演算手段と、前記ハッシュ演算手段により得られたハッシュ値H(M)に基づいて3変数x,y,tの多項式p(x,y,t),q(x,y,t)を生成する多項式生成手段と、前記各多項式p(x,y,t),q(x,y,t),f(t)と前記ファイブレーションX(x,y,t)とに基づいて、前記暗号化処理と同じ処理により、暗号文F’=Epk(M,p,q,f,X)を再現する暗号文再現手段と、前記入力された暗号文Fと前記再現された暗号文F’とが一致するか否かを判定する暗号文判定手段と、前記暗号文判定手段による判定結果
が一致を示す場合、前記平文M又は前記メッセージmを出力する平文出力手段と、前記暗号文判定手段による判定結果が否の場合、暗号文無効情報を出力する無効出力手段とを備えた復号装置である。
第6の発明は、第4又は第5の発明の復号装置において、前記多項式生成手段としては、前記平文Mのハッシュ値H(M)に基づいて前記多項式p(x,y,t),q(x,y,t)の各項のx指数、y指数、t指数及び係数のうち、少なくとも2つ以上を生成する復号装置である。
(作用)
第1〜第6の各発明は、復号用の秘密鍵が代数曲面XのファイブレーションX(x,y,t)=0に対応する2つ以上のセクションであり、公開鍵が代数曲面XのファイブレーションX(x,y,t)であるという構成により、量子計算機が出現しても安全性を確保できる可能性があり、現在の計算機でも安全に実現可能であるとともに、小電力環境での実現可能性がある公開鍵暗号方式を構成できる。
また、第1〜第6の各発明は、次数l-1以下の平文多項式M(t)と、次数l以上のランダムな1変数既約多項式f(t)とを用いる構成により、後述する[証明5]に基づいて、IND−CPA(受動的攻撃の下で、2つの暗号文から元の平文を区別する情報を抽出できない)の意味で証明可能安全な公開鍵暗号方式を構成できる。さらに、第1〜第6の各発明は、メッセージmと乱数rを連結した平文Mを平文多項式M(t)の係数として埋め込み、Mのハッシュ値H(M)に基づいて前記各多項式p(x,y,t),q(x,y,t)を生成することにより暗号化し、復号時に復号された平文Mからハッシュ値H(M)を計算して暗号化と同じ手段で前記各多項式p(x,y,t),q(x,y,t)を生成し、暗号文F’を再現し、前記再現された暗号文F’が前記入力された暗号文Fと一致することを確認する構成により、IND−CPAの意味で安全な公開鍵暗号方式を、IND−CCA(能動的攻撃の下で、暗号文を操作した結果から元の平文に関係した情報を得られない)の意味で証明可能安全な公開鍵暗号方式に変換している。
従って、第1〜第6の各発明は、IND−CCAの意味で証明可能安全な公開鍵暗号方式を構成できる。
以上説明したように本発明によれば、量子計算機が出現しても安全性を確保できる可能性があり、現在の計算機でも安全に実現可能であるとともに、小電力環境での実現可能性がある証明可能安全な公開鍵暗号方式を構成できる。
以下、本発明の各実施形態を図面を用いて説明するが、その前に、各実施形態の前提として、代数曲面及び代数曲面上の求セクション問題について述べる。求セクション問題は、各実施形態の基礎となるランダム化多項式判定問題に関連する問題である。
(実施形態の前提)
本発明で述べる代数曲面は体K上定義された連立(代数)方程式の解の集合のうち2次元の自由度を持ったものと定義される。例えば、次の式(1)に示す体K上の連立方程式は変数5つに対し、それらを束縛する3つの方程式があるので2次元の自由度を持っているので、代数曲面となる。
1(x,y,z,v,w)=0
2(x,y,z,v,w)=0
3(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上定義された代数曲面を扱う。
代数曲面f(x,y,z)=0上には図13に示すように通常代数曲線が複数存在する。このような代数曲線は代数曲面上の因子と呼ばれる。
一般に代数曲面の定義式が与えられた時に(非自明な)因子を求める問題は現代の数学においても未解決の難問であり、総当りなどの原始的な方法を除けば一般的な解法は知られていない。特に本実施形態で扱うような有限体で定義された代数曲面においては有理数体などの無限体(無限個の元からなる体)と比較しても手掛かりが少なく、より難しい問題であることが知られている。
本実施形態ではこの問題を代数曲面上の求因子問題もしくは単に求因子問題と呼び、代数曲面上の求因子問題に安全性の根拠をおく公開鍵暗号を構成する。
さて体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と表す)。
また、代数曲面Xのファイブレーションにおけるパラメータtに体Kの元t0を代入して得られる代数曲線はファイバーと呼ばれ、Xt0のように表される。ここで、ファイバーとセクションは共に代数曲面Xtの因子である。
一般に代数曲面のファイブレーションが与えられたとき、それに対応するファイバーは(tに体の元を代入することにより)直ちに求まるが、対応するセクションを求めることは極めて難しい。この意味ではファイバーは自明な因子であり、セクションは非自明な因子であると言える。
本発明の公開鍵暗号は代数曲面上の求因子問題のうち、特に代数曲面XのファイブレーションXtが与えられたとき、セクションを求める問題に安全性の根拠をおいた公開鍵暗号である。
ファイブレーションからセクションを求めるには現代の数学においてもセクション(ux(t),uy(t),t)を
deg ux(t)<rx, deg uy(t)<ry
と仮定した上で、
Figure 0004575283
を立てて、これを解くことによって求める方法しか知られていない。尚、以下ではセクション(ux(t),uy(t),t)における次数をdegux(t)とdeguy(t)の最大値と定義する。
以下では、代数曲面上の求セクション問題と関連するランダム化多項式判定問題に基づいた安全性が証明可能な本発明の公開鍵暗号の具体的な構成を説明する。
(第1の実施形態)
(概要)
本実施形態の公開鍵は以下の5つである。
1.素体の標数p
2.Fp上の代数曲面Xのファイブレーション:X(x,y,t)=0
3.Fp上の1変数既約多項式f(t)の次数l
但し、
degtX(x,y,t)<l (3−0)
4.(秘密鍵である)セクションにおける多項式ux(t),uy(t),vx(t),vy(t)の最大次数d
5.3変数多項式p(x,y,t)のx,yの最高指数e
秘密鍵は以下の2つの異なるセクションD1,D2である。
1.Fp上の代数曲面Xのセクション:D1:(x,y,t)=(ux(t),uy(t),t)
2.Fp上の代数曲面Xのセクション:D2:(x,y,t)=(vx(t),vy(t),t)
これらは後述する方法(鍵生成方法)で容易に求めることができる。
次に暗号化処理の概要を述べる。暗号化処理ではまず暗号化したいメッセージ(以下では平文と呼ぶ)をブロック分割して
m=m0‖m1‖・・・‖ml-1
のようにし、平文多項式m(t)に
Figure 0004575283
に埋め込む(平文埋め込み処理)。ここでm(t)をFp上の多項式とするために、各mi(0≦i≦l-1)はFpの元となるように取る必要がある。即ち、平文mはpのビット長に基づいて
0≦mi≦p-1
となるように分割される。なお、平文mは整数であり、例えばメッセージを表す文字コード列が整数に読み替えられることにより、構成されている。
次に、Fp上のランダム多項式p(x,y,t),q(x,y,t)をランダムに決める。このときp(x,y,t)は次の条件(3)(4)を満たすように決める。
α>degxX(x,y,t)
β>degyX(x,y,t)
なる指数α,βに対して xαβの項を含む
(3)
(degxp(x,y,t)+degyp(x,y,t))d+degtp(x,y,t)<l (4)
ここで、degx, degy, degtによって、それぞれ多項式のx,y,tに関する次数を表すものとする。また、q(x,y,t)は次の条件(5)を満たすように決める。
degtq(x,y,t)<l (5)
次に、Fp上ランダムな1変数のl次既約多項式f(t)を決める。ここで、既約多項式とは、これ以上因数分解できない多項式のことである。有限体上の1変数多項式の場合、その既約性判定は極めて容易であることが知られている。以上の式m(t),p(x,y,t),q(x,y,t),f(t)及び公開鍵である代数曲面XのファイブレーションX(x,y,t)から次の式(6)によって暗号文F(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)を受け取った受信者は、所有する秘密鍵D1,D2を利用して次のように復号を行う。まず、セクションD1,D2を暗号文F(x,y,t)に代入する。ここで、セクションD1,D2を代数曲面X(x,y,t)に代入すると、
X(ux(t),uy(t),t)=0,X(vx(t),vy(t),t)=0なる関係があることに注意すると
1(t)=F(ux(t),uy(t),t)=m(t)+f(t)p(ux(t),uy(t),t)
2(t)=F(vx(t),vy(t),t)=m(t)+f(t)p(vx(t),vy(t),t)
という関係を持つ2つの式h1(t),h2(t)が求まることが分かる。次に、2式を辺々引き算して、次の式(7)を計算する。
1(t)−h2(t)=f(t){p(ux(t),uy(t),t)−p(vx(t),vy(t),t)}
(7)
次に、h1(t)−h2(t)を因数分解して、最大次数を持つ因数をf(t)と定める。ここで最大次数の因子がf(t)であるためには、f(t)の次数をlとした時、条件(8)を満たすようなp(x,y,t)を選択すれば必要十分である。
deg(p(ux(t),uy(t),t)−p(vx(t),vy(t),t))<l (8)
このためには、条件(9)の両方が成り立つように選択する必要がある。
deg(p(ux(t),uy(t),t))<l
deg(p(vx(t),vy(t),t))<l
(9)
しかし、送信者にはセクションが秘匿されているのでlを十分大きく取るとともに、セクションの各要素となっている多項式ux(t),uy(t),vx(t),vy(t)における次数の最大値dを公開鍵として公開している。即ち、p(x,y,t)を決定するときは条件式(4)を満たしていれば十分である。尚、h1(t)−h2(t)の因数分解は1変数多項式の因数分解が容易であることから十分有効な時間内に処理可能である。得られたf(t)でh1(t)を除すると(m(t)の次数がf(t)の次数l以下であることに注意すると)
1(t)=m(t)+f(t)p(ux(t),uy(t),t)
の関係が得られ、平文多項式m(t)が得られる。
得られた平文多項式m(t)から平文埋め込み処理と逆の処理で平文mを求めることができる。ここで、m(t)が剰余として一意的であることは特筆すべきことである。一意的でないと平文多項式m(t)の候補が複数存在してしまい、真の平文多項式を特定することが困難になる。m(t)が一意的である理由はh1(t)が含まれる一変数多項式環F[t]においては整数と同様に除法の定理が成立するため、一変数多項式を一変数多項式で割った商と剰余は一意的となるからである。
一方で2変数以上の多項式では除法の定理が成立しないことが知られている。
最後に本実施形態における鍵生成方法を説明する。本実施形態の鍵生成はセクションD1,D2をランダムに選び、それに対応したファイブレーションを計算することによって行う。但し、生成された代数曲面が2つのセクションを同時に持つようにするために以下のような工夫が必要となる。
ここでは簡単のため代数曲面のうち楕円曲面Etを例にとって鍵生成方法を示す。楕円曲面は、次式に示すファイブレーションを持つ代数曲面であると定義することができる。
Et:y2=x3+a(t)x+b(t)
ここで、a(t),b(t)は1変数多項式である。まず、素体の標数pを決める。このときpは小さくても安全性に問題は生じない。さて、セクションD1,D2
1:(x,y,t)=(ux(t),uy(t),t),
2:(x,y,t)=(vx(t),vy(t),t)
とおいて楕円曲面Etに代入し、
y(t)2=ux(t)3+a(t)ux(t)+b(t)
y(t)2=vx(t)3+a(t)vx(t)+b(t)
を得る。これらを辺々引くとb(t)が消え、
y(t)2−vy(t)2−(ux(t)3−vx(t)3)=a(t)(ux(t)−vx(t))
となる。a(t)を多項式とするには、例えば
x(t)−vx(t)|uy(t)−vy(t)
であれば十分である。このことを利用して以下に示すアルゴリズムで鍵生成を行うことができる。ここで、k1(t)|k2(t)は多項式k1(t)が多項式k2(t)を割り切ることを意味している。まず、λx(t)|λy(t)となる2つの多項式をランダムに選択する。
具体的にこのような多項式の組を求めるには、例えばλx(t)をランダムに与えて、同じくランダムな多項式c(t)によってλy(t)=c(t)λx(t)を計算することによってλy(t)を求めることで実現できる。
次に多項式vx(t)をランダムに選択し、
x(t)−vx(t)=λx(t)
によってux(t)を計算する。同様に多項式vy(t)をランダムに選択し
y(t)−vy(t)=λy(t)
によってuy(t)を計算する。
以上の手段で計算されたux(t),vx(t),uy(t),vy(t)を利用して、次の式(10)を計算することにより多項式a(t)を計算できる。
a(t)={uy(t)2−vy(t)2−(ux(t)3−vx(t)3)}/(ux(t)−vx(t))
(10)
更にb(t)はa(t)を利用して次の式(11)によって得られる。
b(t)=uy(t)2−ux(t)3−a(t)ux(t) (11)
鍵生成方法は、楕円曲面以外の代数曲面であっても例えばy2=x5+a(t)x+b(t)のような形の定義式を仮定するなら同様に可能であり、楕円曲面のみに限定される鍵生成方法ではない。
尚、具体的なパラメータl,d,eの設定に関しては後述する。
続いて、本実施形態のアルゴリズムが、後述するランダム化多項式判定問題が難しいと仮定すると、IND−CPAの意味で証明可能安全であることを説明する。まず、復号アルゴリズムは式(7)において、
{p(ux(t),uy(t),t)−p(vx(t),vy(t),t)}=0
の場合失敗する。しかし、このようなことは公開鍵であるeに対して無視できる(negligible)確率でしか生じない。
[命題1] 少なくとも2つの相異なるセクション
Figure 0004575283
を持つ有限体Fp上定義された代数曲面のファイブレーションX(x,y,t)=0と3変数多項式p(x,y,t)のx,yに関する指数の最大値eに対して、
p(ux(t),uy(t),t)=p(vx(t),vy(t),t) (12)
となる確率は1/pe+1である。
[証明1] X(x,y,t)の有する相異なるセクション(ux(t),uy(t),t),(vx(t),vy(t),t)においてux(t)≠vx(t)であるとする。もし、ux(t)=vx(t)であった場合はuy(t)≠vy(t)となり、以下の議論をuy(t)≠vy(t)の仮定で同様に展開することができる。
さて、式(12)を満たすようなxにおいて指数の最大値eを取るp(x,y,t)が存在したとする。このとき、Fp上の任意の(e−1)次以下の1変数多項式g(x)(≠0)に対して
p(x,y,t)+g(x)は式(12)を満たさない。なぜなら、もし満たしたとすると
g(ux(t))=g(vx(t))
が成り立ち、有限体Fpを無限体にまで拡大したときに無限個の解を持つことになり、ux(t)=vx(t)が従う。また、このように生成された式は式(12)を満たすような別のp(x,y,t)から同様の手段で得られる多項式とは決して一致しない。実際、式(12)を満たす他のp1(x,y,t),p2(x,y,t)と1変数多項式g1(x),g2(x)に対して
1(x,y,t)+g1(x)=p2(x,y,t)+g2(x) (13)
であったとする。このとき
1(x,y,t)−p2(x,y,t)=g2(x)−g1(x)
となる。ここでg1(x)=g2(x)であるならばp1(x,y,t)=p2(x,y,t)となり矛盾するので、g1(x)≠g2(x)である。今g(x)=g2(x)−g1(x)とすると、p1(x,y,t)−p2(x,y,t)の性質から
g(ux(t))=g(vx(t))
を満たすので、ux(t)=vx(t)が従う。よって式(13)を満たすような相異なる(p1(x,y,t),g1(t)),(p2(x,y,t),g2(t))の組は存在しない。尚、p(x,y,t)がyにおいて指数の最大値をとった場合は、xとyの役割を変更することにより証明がそのまま成り立つ。
以上のことから式(12)を満たす1つのFp[x,y,t]上の3変数多項式p(x,y,t)に対して少なくともpe+1個の式(12)を満たさない多項式を重複なく対応付けることができる。よって、式(12)を満たすp(x,y,t)は高々1/pe+1の確率でしか生じない。
代数曲面暗号の安全性は以下の代数曲面暗号に関するランダム化多項式判定問題に依存している。
[定義1] 代数曲面暗号に関するランダム化多項式判定問題
p上定義された次数d以下の2つの相異なるセクションを有する代数曲面のファイブレーションX(x,y,t)=0と自然数lが与えられた時、3変数多項式A(x,y,t)が集合S
Figure 0004575283
に属するか否かを判定する問題を代数曲面暗号に関するランダム化多項式判定問題といい、代数曲面暗号に関することが明らかなときには単にランダム化多項式判定問題という。
ランダム化多項式判定問題は次数d以下の2つの相異なるセクションを有する代数曲面のファイブレーションX(x,y,t)=0と既約多項式f(t)の最小次数lが与えられた時、与えられた多項式g(x,y,t)が
f(t)p(x,y,t)+X(x,y,t)q(x,y,t) (14)
という形に書けるか書けないかを判定する問題である。もし、多項式g(x,y,t)が2通り以上の書き方で式(14)のごとく書けたとすると、攻撃者(問題を解く人)は(正しいと判定は)複数ある書き方のうちの1つの書き方を見出せばよく、ランダム化多項式判定問題はそれだけ容易となる。しかしp(x,y,t)が条件(3)(4)、q(x,y,t)が条件(5)を満たす限りにおいては、そのようなことはなく一意に書けることが以下のように示せる。
[命題2] 多項式g(x,y,t)が次数d以下の2つの相異なるセクションを有する代数曲面のファイブレーションX(x,y,t)=0と既約多項式f(t)の最小次数lと、条件(3)(4)を満たすp(x,y,t)、条件(5)を満たすq(x,y,t)によって
f(t)p(x,y,t)+X(x,y,t)q(x,y,t)
のように書けるとき、その書き方は一意的である。
[証明2] 2通りの表現で、仮定のごとく書けるg(x,y,t)が存在したとして
g(x,y,t)=f1(t)p1(x,y,t)+X(x,y,t)q1(x,y,t)
=f2(t)p2(x,y,t)+X(x,y,t)q2(x,y,t)
(15)
と書く。仮定からX(x,y,t)は2つの相異なる次数d以下のセクションを持つ代数曲面なので、それらのセクションを(ux(t),uy(t),t),(vx(t),vy(t),t)とすると、
Figure 0004575283
ここで、命題1から無視できる(negligible)確率を除けば
1(ux(t),uy(t),t)−p1(vx(t),vy(t),t)≠0
であるので、
2(ux(t),uy(t),t)−p2(vx(t),vy(t),t)≠0
1(x,y,t),p2(x,y,t)が条件(4)を満たすことから、次数の関係によって
2(t)=cf1(t)となる。ここでcは有限体Fpの元である。従って、式(15)の辺々を引いて前式を反映させると、
1(t)(p1(x,y,t)−cp2(x,y,t))=X(x,y,t)(q2(x,y,t)−q1(x,y,t))
を得る。ここで代数曲面X(x,y,t)の既約性から(f(t),X(x,y,t))=1となり、Fp[x,y,t]は一意分解整域であるので、
1(t)|q2(x,y,t)−q1(x,y,t)
が従う。ここでq(x,y,t)に対する条件(5)により、
degt2(x,y,t)−q1(x,y,t)<deg f1(t)
であるので
1(x,y,t)=q2(x,y,t)
となる。従って、
1(x,y,t)=p2(x,y,t)
となり、c=1即ち
1(t)=f2(t)
が従う。よって2つの表現は一致する。
このようにランダム化多項式判定問題を解くためには一意的な解が存在する問題の解の有無を判定することになるため、容易に解ける問題ではない。もちろん求セクション問題が容易に解ければランダム化多項式判定問題も容易に解けるけれども、求セクション問題を解く以外にランダム化多項式判定問題を解く方法は知られていない。このためランダム化多項式判定問題も十分に難しい問題であると考えられる。
また、命題から本発明の公開鍵暗号の復号結果が一意的であることが以下のように示される。
[補題1] 少なくとも2つの次数d以下の相異なるセクションを持つ代数曲面のファイブレーションX(x,y,t)=0と既約多項式f(t)の最小次数lに対応したランダム化多項式G(x,y,t)に対して、
m(t)+G(x,y,t)
はランダム化多項式とはならない。但し、m(t)は0でない次数l−1以下の1変数多項式である。
[証明3] m(t)+G(x,y,t)がランダム化多項式だとすると、
m(t)+G(x,y,t)=f1(t)p1(x,y,t)+X(x,y,t)q1(x,y,t)
=m(t)+f2(t)p2(x,y,t)+X(x,y,t)q2(x,y,t)
(16)
と書ける。ここで、仮定からX(x,y,t)は2つのセクションを持つ代数曲面なので、それらのセクションを(ux(t),uy(t),t),(vx(t),vy(t),t)とすると、
Figure 0004575283
ここで、命題1から無視できる(negligible)確率を除けば
1(ux(t),uy(t),t)−p1(vx(t),vy(t),t)≠0
であるので、
2(ux(t),uy(t),t)−p2(vx(t),vy(t),t)≠0
となり、p1(x,y,t),p2(x,y,t)が条件(4)を満たすことから、次数の関係によって
2(t)=cf1(t)
となる。よって、式(16)に(ux(t),uy(t),t)と前式を代入することで、
m(t)=f1(t){p1(ux(t),uy(t),t)−cp2(ux(t),uy(t),t)}
を得る。しかし、これはdeg m(t)≧lとなり矛盾する。従って、m(t)+G(x,y,t)はランダム化多項式とはならない。
[定理1]
少なくとも2つのセクションを持つ代数曲面のファイブレーションX(x,y,t)=0と既約多項式f(t)の最小次数lと2つのセクションに含まれる1変数多項式の最大次数dに対応したランダム化多項式G(x,y,t)と、次数l−1以下の1変数多項式m(t)による表現m(t)+G(x,y,t)は一意的である。
[証明4]
deg m1(t),deg m2(t)<lを満たす1変数多項式m1(t),m2(t)とランダム化多項式G1(x,y,t),G2(x,y,t)に対して
1(t)+G1(x,y,t)=m2(t)+G2(x,y,t)
となる関係があったとする。このとき
1(t)−m2(t)+G1(x,y,t)
がランダム化多項式となる。すると補題1により、
1(t)=m2(t)
となり、
1(x,y,t)=G2(x,y,t)
が従う。よって表現は一意的である。
次にこれらの結果に基づいて本実施形態の公開鍵暗号の安全性証明を行なう。
[定義2] IND−CPA
Π:=(K,E,D)を公開鍵暗号、これに対する確率的アルゴリズムA:=(A1,A2)を考え、このアルゴリズムに対してセキュリティパラメータをk∈Nとして
Figure 0004575283
パラメータkは公開鍵暗号の安全性の基本となる問題の難しさを表わす指標で、本発明の公開鍵暗号の場合はpを固定した場合、dもしくはlがパラメータとなる。実際、後述するパラメータ設計方法でも明らかになるようにlはdの関数であるため、dをパラメータと考えても良い。
ここで、CPAは平文を暗号化プログラムに掛け、出力されてくる暗号文を参考に適応的に平文を構成することを意味しており、アルゴリズムA(=(A1,A2))はそのようなことができることを仮定している。尚、以下で詳しく述べるようにアルゴリズムは大きく分けて2つのアルゴリズムA1とA2を有しているためA(=(A1,A2))のように記述する。
次に達成される安全性の基準であるINDに関して説明する。INDとは鍵生成アルゴリズムKを使ってパラメータkを満たすように生成した公開鍵と秘密鍵のペア(pk,sk)を出力させ
(pk,sk)←K(1k
そのうち公開鍵pkのみを知っているアルゴリズムA1が何度か適応的に平文を暗号化した後で、2つのメッセージm0,m1を選択し、
(x0,x1,s)←A1(pk);
暗号化オラクルと呼ばれる第3者にそのどちらかを選んで暗号化させ、暗号文yを得たとする。
b←R{0,1};y ←Epk(xb):
このとき、その暗号文yから対応するメッセージがm0であるかm1であるかをアルゴリズムA2を利用して当てる
2(x0,x1,s,y)=b
ことができることを意味する。一方、INDにおいては答えは0か1なのであるから、出鱈目に回答した場合1/2の確率で正解となる。そこで、ここでは1/2からどれだけ隔たっているかどうかが問題となる。即ち、確率
Figure 0004575283
無視できる(negligibleである)とはパラメータkに対して確率が指数関数的に小さくなることである。例えば1/plや1/pdなどはパラメータをdとしたとき、無視できる(negligible)確率であるということができる。
さて、ランダム化多項式判定問題が難しいとすると代数曲面暗号の安全性が以下のように証明できる。
[定理2] 代数曲面暗号がIND−CPAの意味で安全であることと、ランダム化多項式判定問題が多項式時間で解けないこととは同値である。
[証明5] 代数曲面暗号ΠがIND−CPAの意味で安全ならば、ランダム化多項式判定問題が多項式時間内に無視できない(non-negligible)確率で解けないことを示す。ランダム化多項式判定問題を多項式時間内に無視できない(non-negligible)確率AdvAで解くアルゴリズムAが存在したとする。このとき代数曲面暗号ΠをIND−CPAの意味で解く敵C=(C1,C2)を図14のように構成できる。図14においてC1は公開鍵として与えられたX,l,d,eが入力されると公開鍵を使った何らかの処理を行い、2つの平文m0(t),m1(t)を暗号化オラクルεに出力する。暗号オラクルεは入力された平文のうちから1つmb(t)を選んで、公開鍵を利用して暗号化し、暗号文F(x,y,t)を敵Cに返す。敵Cは受け取った暗号文F(x,y,t)に対して
η0(x,y,t)=F(x,y,t)−m0(t)
を作成し、アルゴリズムAによって結果D(η0,S)が得られる。ここで、D(η,S)は{0,1}を値域として取る関数で、多項式ηがランダム化多項式の集合Sに属する場合1、属さない場合0とする。敵CはD(η0,S)の値が0ならばb=1を、D(η0,S)値が1ならばb=0を出力する。以上の処理はアルゴリズムAが多項式時間で終了することを仮定しているので、多項式時間で終了する。
Figure 0004575283
次に、ランダム化多項式判定問題が多項式時間内に無視できない(non-negligible)確率で解けないならば代数曲面暗号ΠがIND−CPAの意味で安全であることを示す。代数曲面暗号ΠがIND−CPAの意味で安全でないとする。このとき代数曲面暗号ΠをIND−CPAの意味で破る敵A=(A1,A2)が存在する。この敵Aを仮定してランダム化多項式判定問題が多項式時間内に無視できない(non-negligible)確率で解けるアルゴリズムAが存在することを示す。即ち、アルゴリズムAはランダム化多項式集合S(=S(X,l,d))と多項式η(x,y,t)が与えられたとき、η(x,y,t)がSに属するか否かを図15のように判定する。図15において、ランダム化多項式集合のパラメータX,l,dを公開鍵とする公開鍵暗号Πを考え、X,l,dを公開鍵として敵A=(A1,A2)に入力する(ST1)。A1は平文m0(t),m1(t)を暗号化オラクルεに出力する。暗号化オラクルεはbを集合{0,1}からランダムに選択し、暗号文F(x,y,t)(=mb(t)+η(x,y,t))を生成することによりシミュレートされる(ST2)。敵Aは暗号オラクルによって生成された暗号文F(x,y,t)を受け取って(A2において)多項式時間内に終了するアルゴリズムで処理し、b’を出力する(ST3)。ここでb’=bであればD(η,S)=1、b’≠bであればD(η,S)=0とする。アルゴリズムAは明らかに多項式時間内に終了する。次にAdvAを以下のように評価する。ここで、G=Fp[x,y,t],R=G−Sと定義する。
Figure 0004575283
Figure 0004575283
[パラメータの設定方法]
本節では上述した議論でその安全性がランダム化多項式判定問題に帰着された本発明の公開鍵暗号に関して、そのパラメータの具体的な設定方法に関して説明する。
本発明の公開鍵暗号のパラメータは有限体Fpのサイズpとセクションの最高次数dである。また1変数多項式f(t)の次数l(d)は条件(4)から
l(d)=(2d+1)e(d)+1 (17)
とすれば良いことが分かる。また、3変数多項式p(x,y,t)のx,yの最大指数e(d)は復号の失敗確率に関するパラメータであり、その確率は命題1により1/pe(d)+1である。従って、失敗確率を2nとしたければ、
(|p|−1)(e(d)+1)>n
を満たすようにとれば良い。ここで|p|はpのビット長を表す。
(第1の実施形態の具体的な構成)
次に、本実施形態の公開鍵暗号における暗号装置、復号装置の具体的な構成とそのアルゴリズムについて説明する。図1は本発明の第1の実施形態に係る暗号装置の全体構成図であり、図2は同実施形態における復号装置の全体構成図である。
なお、以下の暗号装置10及び復号装置20は、各装置10,20毎に、ハードウェア構成、又はハードウェア資源とソフトウェアとの組合せ構成のいずれでも実施可能となっている。組合せ構成のソフトウェアとしては、予めネットワーク又は記憶媒体から対応する装置のコンピュータにインストールされ、対応する装置の機能を実現させるためのプログラムが用いられる。
ここで、暗号装置10は、図1に示すように、平文入力部11、公開鍵入力部12、平文埋め込み部13、暗号化部14、1変数既約多項式生成部15、多項式生成部16及び暗号文出力部17を備えている。また、暗号装置10は、図示しないメモリ(ハードウェア資源)を有し、各部11〜17から入力データ、出力データ及び処理中のデータ等が適宜読出/書込可能となっている。
ここで、平文入力部11は、外部から入力された平文(メッセージ)mを一時的にメモリに保持し、この平文mを平文埋め込み部13に送出する機能をもっている。
公開鍵入力部12は、外部から入力された公開鍵を一時的にメモリに保持し、この公開鍵を平文埋め込み部13及び暗号化部14に送出する機能をもっている。
平文埋め込み部13は、平文入力部11から受けた平文m及び公開鍵入力部12から受けた公開鍵に基づいて、平文mを1変数tで次数l-1以下の平文多項式m(t)の係数として埋め込む機能と、得られた平文多項式m(t)を暗号化部14に送出する機能をもっている。
暗号化部14は、平文埋め込み部13から受けた平文多項式m(t)及び公開鍵入力部12から受けた公開鍵X(x,y,t),p,l,d,eに基づいて、図3に示す動作を実行するように、後段の各部15〜17を制御するものであり、特に、平文多項式m(t)に対し、各多項式p(x,y,t),q(x,y,t),f(t)とファイブレーションX(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、平文多項式m(t)から暗号文F(x,y,t)(=Epk(m,p,q,f,X))を生成する機能をもっている。
1変数既約多項式生成部15は、暗号化部14に制御され、次数l以上のランダムな1変数既約多項式f(t)を生成する機能をもっている。
多項式生成部16は、暗号化部14に制御され、3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)を生成する機能をもっている。
暗号文出力部17は、暗号化部14により生成された暗号文F(x,y,t)を出力する機能をもっている。
一方、復号装置20は、図2に示すように、暗号文入力部21、鍵入力部22、復号部23、セクション代入部24、1変数多項式演算部25、1変数多項式因数分解部26、多項式抽出部27、1変数多項式剰余演算部28、平文展開部29及び平文出力部30を備えている。また、復号装置20は、図示しないメモリ(ハードウェア資源)を有し、各部21〜30から入力データ、出力データ及び処理中のデータ等が適宜読出/書込可能となっている。
暗号文入力部21は、外部から入力された暗号文Fを一時的にメモリに保持し、この暗号文Fを復号部23に送出する機能をもっている。
鍵入力部22は、外部から入力された公開鍵を一時的にメモリに保持し、この公開鍵を復号部23に送出する機能をもっている。
復号部23は、図4に示す動作を実行するように、後段の各部24〜29を制御する機能をもっている。
セクション代入部24は、復号部23に制御され、入力された暗号文Fに対し、各セクションD1,D2を代入して2つの1変数多項式h1(t),h2(t)を生成する機能をもっている。
1変数多項式演算部25は、復号部23に制御され、各1変数多項式h1(t),h2(t)を互いに減算し、減算結果{h1(t)−h2(t)}を得る機能をもっている。
1変数多項式因数分解部26は、復号部23に制御され、減算結果{h1(t)−h2(t)}を因数分解する機能をもっている。
多項式抽出部27は、復号部23に制御され、因数分解結果から最も大きな次数を持つ既約多項式f(t)を抽出する機能をもっている。
1変数多項式剰余演算部28は、復号部23に制御され、1変数多項式h1(t)を既約多項式f(t)で除算し、剰余として平文多項式m(t)を得る機能をもっている。
平文展開部29は、復号部23から受けた平文多項式m(t)の係数から平文mを抽出する機能をもっている。
平文出力部30は、平文展開部29から受けた平文mを出力する機能をもっている。
次に、以上のように構成された暗号装置及び復号装置の動作を図3及び図4のフローチャートを用いて説明する。
(暗号化処理:図3)
暗号装置10においては、平文入力部10から平文(メッセージ)mが入力され(ST11)、公開鍵入力部12から公開鍵X(x,y,t),p,l,d,eが入力されることから(ST12)、暗号化処理を開始する。入力された公開鍵のうち、1変数既約多項式f(t)の次数であるlと素体の標数pとが取得され(ST13)、l,pが平文埋め込み部13に送られる。
平文埋め込み部13では、別途、平文入力部11から送出された平文mを標数pのビット長よりも1小さいビット長に分割する。例えばp=17の場合は4ビットに分割することができる。ここで、平文mが16進表示で
m=0x315763ef25c04c792ef151
であるとする。
この場合、平文埋め込み部13は、16進表示の平文mを4ビット毎に分割し、平文多項式m(t)の係数として次式のように埋め込む(ST14)。
m(t)=3t21+t20+5t19+7t18+6t17+3t16+15t15+11t14+2t13
+5t12+12t11+0t10+4t9+12t8+7t7+9t6+2t5+14t4
+15t3+t2+5t+1
平文埋め込み部13は、平文多項式m(t)を暗号化部14に送信する。一方で、公開鍵入力部12は、公開鍵X(x,y,t),p,l,d,eを暗号化部14に送信する。
暗号化部14では、公開鍵のうち、lとpを1変数既約多項式生成部15に送信する。
1変数既約多項式生成部15は、l次の1変数既約多項式f(t)をランダムに生成し(ST15)、得られた1変数既約多項式f(t)を暗号化部14に返信する。ここで、既約多項式の生成はl次の多項式をランダムに生成し、Fp上の既約性判定を1変数多項式が既約多項式となるまで繰り返すことにより行う。
暗号化部14は、1変数既約多項式f(t)を得ると、多項式生成部16にp,l,d,eを送信する。多項式生成部16は、p,l,d,eに基づいて、3変数多項式の各項が次数に関する関係式(3)と条件(4)を満たすようにランダムな3変数多項式p(x,y,t)を生成する(ST16)。生成方法はランダムに生成した後、2つの条件を満たすことをチェックし、満たさなかった時には再度ランダムに生成する方法と2条件に合うように生成する3変数多項式に制約を掛ける方法がある。いずれの方法を用いるにせよ条件(3)(4)の範囲においては十分に多様な係数を取りえる余地が存在するため実行可能な時間内で生成が終了する。多項式生成部16は、得られた3変数多項式p(x,y,t)を暗号化部14に送信する。
暗号化部14は、3変数多項式p(x,y,t)を受けると、公開鍵のうちp,l,d,eを多項式生成部16に送信する。多項式生成部16は、p,l,d,eに基づいて、条件(5)を満たすように3変数のランダムな多項式q(x,y,t)を生成し(ST17)、得られた3変数多項式q(x,y,t)を暗号化部14に送信する。
暗号化部14は、以上の処理で得られたm(t),f(t),p(x,y,t),q(x,y,t)と公開鍵である代数曲面X(x,y,t)を利用して、式(6)に従って暗号文F(x,y,t)を計算し展開する(ST18)。暗号化部14は、この暗号文を(必要ならば予め定められたフォーマットに合わせて変形し)暗号文出力部17から出力し(ST19)、暗号化処理を終了する。
(復号処理:図4)
復号装置20においては、暗号文入力部21から暗号文F(x,y,t)を取得し(ST21)、鍵入力部22から公開鍵X(x,y,t),pと秘密鍵を取得することから(ST22)、復号処理を開始する。ここで、秘密鍵とは2つのセクションD1,D2である。取得された暗号文と鍵情報は復号部23に送られる。
復号部23は、セクション代入部24に暗号文F(x,y,t)とセクションD1を送信する。セクション代入部24は、D1をF(x,y,t)に代入し、必要に応じて1変数多項式演算部25を利用することにより、h1(t)を得る(ST23)。ここで、1変数多項式演算部25は1変数多項式の加減乗除演算を行う。得られたh1(t)は、セクション代入部24から復号部23に送信される。
また同様に、復号部23は、セクション代入部24に暗号文F(x,y,t)とセクションD2を送信する。セクション代入部24は、セクションD2をF(x,y,t)に代入し、h2(t)を得る(ST24)。得られたh2(t)は、セクション代入部24から復号部23に送信される。
復号部23は、h1(t),h2(t)を1変数多項式演算部25に送信して減算させる。1変数多項式演算部25は、減算結果{h1(t)−h2(t)}を復号部23に送信する。
復号部23は、減算結果{h1(t)−h2(t)}を1変数多項式因数分解部26に送信して因数分解させる(ST25)。1変数多項式因数分解部26は、因数分解結果のうち、最大次数の因子として既約多項式f(t)を決定し(ST26)、この既約多項式f(t)を復号部23に送信する。
次に、復号部23は、f(t),h1(t)を1変数多項式剰余演算部28に送信する。
1変数多項式剰余演算部28は、h1(t)をf(t)で除し、剰余として平文多項式m(t)を計算し(ST27)、復号部23に送信する。
復号部23では、m(t)を平文展開部29に送信する。平文展開部29はこの平文多項式m(t)から平文mを展開し、得られた平文mを平文出力部30に送信する。平文出力部30はこの平文mを出力する(ST29)。これにより、復号装置20は、復号処理を終了する。
上述したように本実施形態によれば、量子計算機が出現しても安全性を確保できる可能性があり、現在の計算機でも安全に実現可能であるとともに、小電力環境での実現可能性がある証明可能安全な公開鍵暗号方式を構成することができる。
補足すると、本実施形態によれば、復号用の秘密鍵が代数曲面XのファイブレーションX(x,y,t)=0に対応する2つ以上のセクションであり、公開鍵が代数曲面XのファイブレーションX(x,y,t)であるという構成により、量子計算機が出現しても安全性を確保できる可能性があり、現在の計算機でも安全に実現可能であるとともに、小電力環境での実現可能性がある公開鍵暗号方式を構成できる。
また、本実施形態によれば、次数l-1以下の平文多項式m(t)と、次数l以上のランダムな1変数既約多項式f(t)とを用いる構成により、前述した証明5に基づいて、IND−CPAの意味で証明可能安全な公開鍵暗号方式を構成できる。
<第1の実施形態のバリエーション>
第1のバリエーションは、本実施形態の公開鍵におけるp,l,d,eを固定パラメータとする構成により、公開鍵のサイズを減らすバリエーションである。勿論これらの一部だけを固定にする利用方法も考えられる。
本バリエーションにおいては、パラメータの一部が固定されることから、鍵生成時に制約があるものの、十分大きいl,d,eが取られていれば、何回かの試行で所望の公開鍵X(x,y,t)を生成可能である。
第2のバリエーションは、暗号化に用いる式(6)の変形に関するバリエーションである。式(6)は、例えば
F(x,y,t)=m(t)−f(t)p(x,y,t)−X(x,y,t)q(x,y,t)
のように変形しても同様に暗号化/復号が可能であり、同様の安全性が証明可能である。このように本発明の趣旨に反しない範囲で暗号化の式を変形し、それに伴い復号処理を変更することが十分可能である。
第3のバリエーションは、平文mを1変数既約多項式f(t)にも埋め込む方式である。前述した実施形態ではf(t)をランダムに生成する方式を示したが、秘密鍵無しにf(t)を求めることが困難であることも本発明の公開鍵暗号の性質であるから、f(t)にも平文情報を埋め込む方式が実現可能となっている。
f(t)にも平文mを埋め込む場合、より大きなサイズの平文を一度に暗号化できる。但し、埋め込んだ結果f(t)を既約多項式とする必要から、特定の係数にはランダムな係数が入るように予め定めておく必要がある。既約多項式は極めて多く存在するため、一部の係数に平文mを埋め込んだとしても、ほとんどの場合、既約多項式を得ることができる。仮に得られなかった場合にはf(t)の次数を上げることにより、探索範囲を増やすことも可能である。このような変形を施しても同様の安全性を証明可能となっている。
第4のバリエーションは公開鍵から3変数多項式p(x,y,t)のx,yの最高指数としてのパラメータeを除く方式である。このパラメータe本来命題1に示したように復号の失敗確率を表現する時の指数になるものである。即ち、安全性に関して直接の指標にならないため、復号失敗時には(p(x,y,t)を変更して)再暗号化する規則にすれば、パラメータeを公開鍵から外す実施形態も可能である。このような実施形態をとることにより、公開鍵サイズが小さくなる他、p(x,y,t)の生成を必要以上に制限する必要がなくなる。
(第2の実施形態)
次に、本発明の第2の実施形態について説明する。本実施形態の公開鍵と秘密鍵は第1の実施形態と同じである。本実施形態の公開鍵暗号は、受動的な攻撃に関して安全性(IND−CPA)を保証した第1の実施形態に比べ、より高い安全性を保証するものであり、具体的には、能動的な攻撃に関しても安全性(IND−CCA)を保証している。
本実施形態は、第1の実施形態に示した公開鍵暗号がIND−CPAの意味での安全性を有することから、特許文献2に記載されている変換を用いることによってIND−CCAの意味で安全な公開鍵暗号を構成する。
Figure 0004575283
のように実行する。即ち、平文mとランダム要素r(第1の実施形態では3変数多項式p(x,y,t),q(x,y,t)や一変数多項式f(t)の各因子の係数などにあたる)に基づいて暗号化されていた公開鍵を、m‖rを平文として、m‖rのハッシュ値H(m‖r)をランダム要素として暗号化する方式に変換する。
これに伴い復号処理においては、第1の実施形態と同様の復号処理で復号した後、平文m‖rから真のメッセージであるmを抽出すると共に、平文m‖rのハッシュ値H(m‖r)を計算し、H(m‖r)をランダム要素とする暗号文F’(x,y,t)を再現して入力された暗号文F(x,y,t)と比較し、一致している場合には復号された平文mを出力するが、一致していない場合には復号結果を出力せず、無効な暗号文である旨の出力を行なう。
しかし、特許文献2記載の変換は強い意味での安全性を主張するため、暗号文にある種の構造を持たせることから、第1の実施形態のようなランダム性の強い暗号文の構成が難しくなる。その意味からは暗号化の方式自体は(ランダム性という側面からみれば)弱いアルゴリズムとなっており、例えばp(x,y,t),q(x,y,t)で用いる多項式の項の種類、即ち
Figure 0004575283
において出現する項xiyjtkやxlymtnを決めておき、係数ai,j,k,bl,m,nにランダム要素H(m‖r)を割り振るような単純な変換を施すだけでは安全な方式を構成することができない。一方、本実施形態では、安全性を保ったまま変換を実施する具体的な方式を示す。
(第2の実施形態の具体的な構成)
次に、本発明の第2の実施形態について説明する。なお、本実施形態の公開鍵と秘密鍵は第1の実施形態と同様なので、説明を省略する。鍵生成に関しても第1の実施形態と同様である。
図5は本発明の第2の実施形態に係る暗号装置の全体構成図であり、図6は同実施形態における復号装置の全体構成図であって、図1又は図2と同一部分については同一符号を付してその詳しい説明を省略し、ここでは異なる部分について主に述べる。
すなわち、本実施形態は、第1の実施形態の変形例であり、前述した通り、より高い安全性を保証するものであって、平文mに乱数rを連結してm‖rとし、このm‖rのハッシュ値H(m‖r)をランダム要素として用いている。
具体的には、暗号装置10においては、平文埋め込み部13’、暗号化部14’及び多項式生成部16’が若干変形されており、乱数生成部18が付加されている。また、復号装置20においては、平文展開部29’及び平文出力部30’が若干変形されており、暗号文検証部31が付加されている。
ここで、平文埋め込み部13’は、平文入力部11から送出された平文(メッセージ)mを受け、且つ公開鍵入力部12から送出された公開鍵を受けたとき、乱数生成部18に乱数生成を指示する機能と、平文mと乱数rとを連結して新たな平文M(=m‖r)を生成する機能と、公開鍵に基づいて、平文Mを1変数tで次数l-1以下の平文多項式M(t)の係数として埋め込む機能をもっている。
暗号化部14’は、前述した機能に加え、図7〜図9に示す動作を実現させるように、多項式生成部16’を制御する機能をもっている。
多項式生成部16’は、暗号化部14’に制御され、平文Mのハッシュ値H(M)に基づいて3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)を生成するものであり、平文Mのハッシュ値H(M)に基づいて3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)の各項のx指数、y指数、t指数及び係数のうち、少なくとも2つ以上を生成する機能をもっている。
乱数生成部18は、平文埋め込み部13’に制御され、固定長の乱数rを生成する機能と、生成した乱数rを平文埋め込み部13’に送出する機能とをもっている。
一方、平文展開部29’は、復号部23から受けた平文多項式M(t)の係数から平文Mを抽出する機能と、この平文Mを暗号文検証部31に送出する機能とをもっている。
平文出力部30’は、暗号文検証部31による判定結果が一致の場合、暗号文検証部31から受けた平文M又はメッセージmを出力する機能と、この判定結果が否の場合、暗号文無効情報を出力する機能をもっている。
暗号文検証部31は、平文展開部29’により得られた平文Mに基づいて、この平文Mのハッシュ値H(M)を演算する機能と、得られたハッシュ値H(M)をメモリ(図示せず)に保持する機能と、メモリ内のハッシュ値H(M)に基づいて、3変数x,y,tの多項式p(x,y,t),q(x,y,t)を生成する機能と、各多項式p(x,y,t),q(x,y,t),f(t)とファイブレーションX(x,y,t)とに基づいて、暗号装置10の暗号化処理と同じ処理により、暗号文F’(x,y,t)(=Epk(M,p,q,f,X))を再現する機能と、入力された暗号文F(x,y,t)と再現された暗号文F’(x,y,t)とが一致するか否かを判定する機能と、判定結果に応じて平文出力部30’を制御する機能とをもっている。
次に、以上のように構成された暗号装置及び復号装置の動作を図7〜図10のフローチャートを用いて説明する。
(暗号化処理:図7〜図9)
ステップST11〜ST13までの処理は、前述した通りに実行される。
次に、平文埋め込み部13’は、平文入力部11から入力された平文mに対し、乱数生成部18に乱数生成を指示する。乱数生成部18は、この指示により、固定長の乱数rを生成して平文埋め込み部13’に送信する(ST14’−1)。
平文埋め込み部13’は、受信した乱数rを平文mに連結してM(=m‖r)を生成すると共に(ST14’−2)、Mを新たな平文として平文多項式M(t)を第1の実施形態と同じ処理で生成する(ST14’−3)。
次に、本実施形態における3変数多項式p(x,y,t),q(x,y,t)の生成処理について説明する。暗号化部14’は、1変数既約多項式f(t)を1変数既約多項式生成部15に生成させた後(ST15)、M(=m‖r)のハッシュ値H(m‖r)を計算する(ST16’−1)。次に、暗号化部14’は、多項式生成部16’にp,l,d,e及びH(m‖r)を送信する。
多項式生成部16’は、p,l,d,e及びH(m‖r)に基づいて、3変数多項式p(x,y,t),q(x,y,t)の各項がハッシュ値H(m‖r)の値を反映するように、3変数多項式p(x,y,t),q(x,y,t)を生成する。このとき、p(x,y,t)は、条件(3)と条件(4)を満たし、最高次数をe以上とするように、生成される。q(x,y,t)は、条件(5)を満たすように生成される。具体的な生成方法は以下の通りである。
x,ey,etをex,ey がそれぞれdegxX(x,y,t),degyX(x,y,t)を超える自然数であり、 かつ(ex+ey)d+et<lを満たすように定める(ST16’−2)。このようなex,ey,etはlを十分大きくとっているので具体的に定めることができる。
更に、生成される多項式q(x,y,t)が条件(5)を満足するためにdx,dy,dtをdt<lなる条件の下で定める(ST16’−3)。続いて、次式に示すように、ブロックサイズbp,bqを定める(ST16’−4)。
p=|p|+|ex|+|ey|+|et|,
q=|p|+|dx|+|dy|+|dt|
ここで、|a|はaのビット長を意味する。また、bpはp(x,y,t)の1つの項ai,j,kxiyjtkを生成するために必要なブロックサイズである。同様にbqはq(x,y,t)の1つの項bi,j,kxiyjtkを生成するために必要なブロックサイズである。
これを受けて、H(m‖r)の前半分をbpビットずつgブロックに、後半分をbqビットずつhブロックに分解して
H(m‖r)=α1‖・・・‖αg‖β1‖・・・‖βh
とする(ST16−5’)。
そしてp(x,y,t)=0として(ST16’−6)、3変数ランダム多項式p(x,y,t)を条件(4)を満たすように生成する。具体的には、H(m‖r)の前半分α1‖α2‖・・・‖αgの各ブロックに対して以下の操作をn=1・・・,gにおいて繰り返し行なう(ST16’−7〜ST16’−9)。
ここで、ブロックの各αn
0|=|p|,|γ1|=|ex|,|γ2|=|ey|,|γ3|=|et|
の大きさで
αn=γ0 (n)‖γ1 (n)‖γ2 (n)‖γ3 (n)
のごとく分割される(ST16’−7)。
a=γ0 (n) (mod p)
i=γ1 (n) (mod ex)
j=γ2 (n) (mod ey)
k=γ3 (n) (mod et)
(ST16’−8)
p(x,y,t)+=axiyjtk (ST16’−9)
なお、記号“+=”は、左辺に右辺を足し込む旨を意味する。
このようにして完成されたp(x,y,t)は、条件(3)を満たすか否かが判定され(ST16’−10)、否の場合、多項式生成部16’は、暗号化部14’にその旨を出力する。
暗号化部14’では、ステップST13終了後の状態に戻り、平文埋め込み部13’に対して平文の再埋め込みを指示する。以下、前述同様に、ステップST14〜ST16’−10までの処理が再度、実行される。
一方、ステップST16’−10の判定の結果、p(x,y,t)が条件(3)を満たしたとする。この場合、q(x,y,t)=0として(ST17’−1)、3変数ランダム多項式q(x,y,t)を条件(5)を満たすように生成する。具体的には、H(m‖r)の後半分β1‖β2‖・・・‖βhの各ブロックに対して以下の操作をm=1・・・,hにおいて繰り返し行なう(ST17’−2〜ST17’−4)。
ここで、ブロックの各βmは
0|=|p|,|ζ1|=|dx|,|ζ2|=|dy|,|ζ3|=|dt|
の大きさで
βn=ζ0 (m)‖ζ1 (m)‖ζ2 (m)‖ζ3 (m)
のごとく分割される(ST17’−2)。
b=ζ0 (m) (mod p)
i=ζ1 (m) (mod dx)
j=ζ2 (m) (mod dy)
k=ζ3 (m) (mod dt)
(ST17’−3)
q(x,y,t)+=bxiyjtk (ST17’−4)
これにより、3変数多項式q(x,y,t)が生成される。多項式生成部16’は、これら3変数多項式p(x,y,t),q(x,y,t)を暗号化部14’に出力する。
暗号化部14’は、M(t),f(t),p(x,y,t),q(x,y,t)を用いて
F(x,y,t)=M(t)+f(t)p(x,y,t)+X(x,y,t)q(x,y,t)によって暗号文F(x,y,t)を計算する(ST18’)。得られた暗号文F(x,y,t)は、前述同様に、暗号文出力部17から出力される(ST19)。
(復号処理:図10)
ステップST21〜ST27までの処理は、前述した通りに実行される。これにより、復号部23では、ステップST21で入力された暗号文F(x,y,t)から、平文多項式M(t)が得られる。
復号部23は、この平文多項式M(t)を平文展開部29’に送信する。平文展開部29’は、この平文多項式M(t)から平文Mを展開し(ST28’−1)、得られた平文Mを暗号文検証部31に送る。
暗号文検証部31では、この平文Mからハッシュ値H(m‖r)を計算し(ST28’−2)、得られたH(m‖r)から暗号装置10の暗号化処理と同じ処理により、3変数多項式p(x,y,t),q(x,y,t)を生成する(ST28’−3)。次に、暗号文検証部31は、3変数多項式p(x,y,t),q(x,y,t)と、先に得られているf(t),M(t)とに基づいて、暗号文F’(x,y,t)を再現する(ST28’−4)。
しかる後、暗号文検証部31は、ステップST21で入力された暗号文F(x,y,t)と、ステップST28’−4で再現した暗号文F’(x,y,t)とが一致するか否かを判定する(ST28’−5)。
この判定結果が否の場合、暗号文検証部31は、平文出力部30’に暗号文が無効である旨の信号を送り、平文出力部30’は暗号文無効情報を出力する(ST28’−6)。
一方、ステップ28’−5の判定結果が一致を示す場合、暗号文検証部31は、平文出力部30’に平文Mを送る。平文出力部30’は、平文Mを真の平文mに変換し、平文mを出力する(ST29)。
上述したように本実施形態によれば、第1の実施形態の効果に加え、第1の実施形態のIND−CPAよりも安全であるIND−CCAの意味で証明可能安全な公開鍵暗号方式を構成することができる。
補足すると、本実施形態では、メッセージmと乱数rを連結した平文Mを平文多項式M(t)の係数として埋め込む構成により、IND−CPAの意味で安全な公開鍵暗号方式を、IND−CCAの意味で証明可能安全な公開鍵暗号方式に変換している。従って、本実施形態によれば、IND−CCAの意味で証明可能安全な公開鍵暗号方式を構成することができる。
<第2の実施形態のバリエーション>
第1の実施形態で述べた第1〜第4のバリエーションは、本実施形態でもそのまま成り立つ。すなわち、第1のバリエーションとして、公開鍵におけるp,l,d,eの一部又は全部を固定パラメータとし、公開鍵のサイズを減らすことができる。
また、第2のバリエーションとして、暗号化に用いる式(6)を例えば、
F(x,y,t)=m(t)−f(t)p(x,y,t)−X(x,y,t)q(x,y,t)
のように変形して暗号化/復号してもよい。
さらに、第3のバリエーションとして、平文M=m‖rを1変数既約多項式f(t)にも埋め込む方式としてもよい。この場合、暗号化処理及び復号処理のフローチャートはそれぞれ図11(ST14”−3,ST15”)又は図12(ST28”)に示すように変形される。これに伴い、平文埋め込み部13’、1変数既約多項式生成部15及び平文展開部29’は、それぞれ以下のように変形される。
すなわち、平文埋め込み部13’は、メッセージmと乱数rを連結した平文Mを1変数tで次数l-1以下の平文多項式M(t)と次数l以上の1変数既約多項式f(t)の候補の一部の係数とに分担して埋め込むものに変形される。また、1変数既約多項式生成部15は、1変数既約多項式f(t)の候補の各係数のうち、平文Mが埋め込まれていない係数をランダムな値に設定し、1変数既約多項式f(t)を生成するものに変形される。さらに、平文展開部29’は、平文多項式M(t)の係数と既約多項式f(t)の一部の係数とから平文Mを抽出するものに変形される。
以上のように、第2の実施形態においても、第1の実施形態で述べた第1〜第3のバリエーションを用いることができる。
なお、上記実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスクなど)、光ディスク(CD−ROM、DVDなど)、光磁気ディスク(MO)、半導体メモリなどの記憶媒体に格納して頒布することもできる。
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているOS(オペレーティングシステム)や、データベース管理ソフト、ネットワークソフト等のMW(ミドルウェア)等が上記実施形態を実現するための各処理の一部を実行しても良い。
さらに、本発明における記憶媒体は、コンピュータと独立した媒体に限らず、LANやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
また、記憶媒体は1つに限らず、複数の媒体から上記実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
尚、本発明におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、上記実施形態における各処理を実行するものであって、パソコン等の1つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
また、本発明におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
なお、本願発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
本発明の第1の実施形態に係る暗号装置の全体構成図である。 同実施形態に係る復号装置の全体構成図である。 同実施形態における暗号装置の処理の流れを説明するためのフローチャートである。 同実施形態における復号装置の処理の流れを説明するためのフローチャートである。 本発明の第2の実施形態に係る暗号装置の全体構成図である。 同実施形態に係る復号装置の全体構成図である。 同実施形態における暗号装置の処理の流れを説明するためのフローチャートである。 同実施形態における暗号装置の処理の流れを説明するためのフローチャートである。 同実施形態における暗号装置の処理の流れを説明するためのフローチャートである。 同実施形態における復号装置の処理の流れを説明するためのフローチャートである。 同実施形態における暗号装置のバリエーションを説明するためのフローチャートである。 同実施形態における復号装置のバリエーションを説明するためのフローチャートである。 各実施形態における代数曲面を説明するための模式図である。 各実施形態における安全性証明を説明するための模式図である。 各実施形態における安全性証明を説明するための模式図である。
符号の説明
10…暗号装置、11…平文入力部、12…公開鍵入力部、13,13’…平文埋め込み部、14,14’…暗号化部、15…1変数既約多項式生成部、16,16’…多項式生成部、17…暗号文出力部、18…乱数生成部、20…復号装置、21…暗号文入力部、22…鍵入力部、23…復号部、24…セクション代入部、25…1変数多項式演算部、26…1変数多項式因数分解部、27…多項式抽出部、28…1変数多項式剰余演算部、29,29’…平文展開部、30…平文出力部、31…暗号文検証部。

Claims (18)

  1. 復号用の秘密鍵が代数曲面XのファイブレーションX(x,y,t)=0に対応する2つ以上のセクションのとき、公開鍵である代数曲面XのファイブレーションX(x,y,t)に基づいて、予めメッセージmを暗号化するための暗号装置であって、
    前記メッセージmと乱数rを連結した平文Mを1変数tで次数l-1以下の平文多項式M(t)の係数として埋め込む平文埋め込み手段と、
    前記平文Mのハッシュ値H(M)に基づいて3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)を生成する多項式生成手段と、
    次数l以上のランダムな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と乱数rを連結した平文Mを1変数tで次数l-1以下の平文多項式M(t)と次数l以上の1変数既約多項式f(t)の候補の一部の係数とに分担して埋め込む平文埋め込み手段と、
    前記平文Mのハッシュ値H(M)に基づいて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. 請求項1又は請求項2に記載の暗号装置において、
    前記多項式生成手段は、前記平文Mのハッシュ値H(M)に基づいて3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)の各項のx指数、y指数、t指数及び係数のうち、少なくとも2つ以上を生成することを特徴とする暗号装置。
  4. メッセージmと乱数rを連結した平文Mが1変数tで次数(l-1)以下の平文多項式M(t)の係数として埋め込まれた平文多項式M(t)に対し、3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)と、次数l以上のランダムな1変数既約多項式f(t)と、公開鍵である代数曲面XのファイブレーションX(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により前記平文多項式M(t)から生成された暗号文F=Epk(M,p,q,f,X)が入力されたとき、予め保持する秘密鍵である代数曲面XのファイブレーションX(x,y,t)=0に対応する2つのセクションD1,D2に基づいて、前記暗号文Fから前記メッセージmを復号するための復号装置であって、
    前記入力された暗号文Fに対し、前記各セクションD1,D2を代入して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)の係数から平文Mを抽出する平文抽出手段と、
    前記平文抽出手段により得られた平文Mに基づいて、この平文Mのハッシュ値H(M)を演算するハッシュ演算手段と、
    前記ハッシュ演算手段により得られたハッシュ値H(M)に基づいて、3変数x,y,tの多項式p(x,y,t),q(x,y,t)を生成する多項式生成手段と、
    前記各多項式p(x,y,t),q(x,y,t),f(t)と前記ファイブレーションX(x,y,t)とに基づいて、前記暗号化処理と同じ処理により、暗号文F’=Epk(M,p,q,f,X)を再現する暗号文再現手段と、
    前記入力された暗号文Fと前記再現された暗号文F’とが一致するか否かを判定する暗号文判定手段と、
    前記暗号文判定手段による判定結果が一致の場合、前記平文M又は前記メッセージmを出力する平文出力手段と、
    前記暗号文判定手段による判定結果が否の場合、暗号文無効情報を出力する無効出力手段と
    を備えたことを特徴とする復号装置。
  5. メッセージmと乱数rを連結した平文Mが1変数tで次数(l-1)以下の平文多項式M(t)の係数と次数l以上の1変数既約多項式f(t)の候補の一部の係数とに分担して埋め込まれた平文多項式M(t)に対し、3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)と、次数l以上のランダムな1変数既約多項式f(t)と、公開鍵である代数曲面XのファイブレーションX(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により前記平文多項式M(t)から生成された暗号文F=Epk(M,p,q,f,X)が入力されたとき、
    予め保持する秘密鍵である代数曲面XのファイブレーションX(x,y,t)=0に対応する2つのセクションD1,D2に基づいて、前記暗号文Fから前記メッセージmを復号するための復号装置であって、
    前記入力された暗号文Fに対し、前記各セクションD1,D2を代入して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を抽出する平文抽出手段と、
    前記平文抽出手段により得られた平文Mに基づいて、この平文Mのハッシュ値H(M)を演算するハッシュ演算手段と、
    前記ハッシュ演算手段により得られたハッシュ値H(M)に基づいて3変数x,y,tの多項式p(x,y,t),q(x,y,t)を生成する多項式生成手段と、
    前記各多項式p(x,y,t),q(x,y,t),f(t)と前記ファイブレーションX(x,y,t)とに基づいて、前記暗号化処理と同じ処理により、暗号文F’=Epk(M,p,q,f,X)を再現する暗号文再現手段と、
    前記入力された暗号文Fと前記再現された暗号文F’とが一致するか否かを判定する暗号文判定手段と、
    前記暗号文判定手段による判定結果が一致を示す場合、前記平文M又は前記メッセージmを出力する平文出力手段と、
    前記暗号文判定手段による判定結果が否の場合、暗号文無効情報を出力する無効出力手段と
    を備えたことを特徴とする復号装置。
  6. 請求項4又は請求項5に記載の復号装置において、
    前記多項式生成手段は、前記平文Mのハッシュ値H(M)に基づいて前記多項式p(x,y,t),q(x,y,t)の各項のx指数、y指数、t指数及び係数のうち、少なくとも2つ以上を生成することを特徴とする復号装置。
  7. 復号用の秘密鍵が代数曲面XのファイブレーションX(x,y,t)=0に対応する2つ以上のセクションのとき、公開鍵である代数曲面XのファイブレーションX(x,y,t)に基づいて、予めメッセージmを暗号化するための暗号装置のプログラムであって、
    前記暗号装置のコンピュータを、
    入力されたメッセージmを一時的にメモリに保持して送出する手段、
    乱数rを生成する手段、
    前記送出されたメッセージmと前記生成された乱数rとを連結した平文Mを1変数tで次数l-1以下の平文多項式M(t)の係数として埋め込む平文埋め込み手段、
    前記平文Mのハッシュ値H(M)に基づいて3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)を生成する多項式生成手段、
    次数l以上のランダムな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)を生成する暗号化手段、
    として機能させるためのプログラム。
  8. 復号用の秘密鍵が代数曲面XのファイブレーションX(x,y,t)=0に対応する2つ以上のセクションのとき、公開鍵である代数曲面XのファイブレーションX(x,y,t)に基づいて、予めメッセージmを暗号化するための暗号装置のプログラムであって、
    前記暗号装置のコンピュータを、
    入力されたメッセージmを一時的にメモリに保持して送出する手段、
    乱数rを生成する手段、
    前記送出されたメッセージmと前記生成された乱数rを連結した平文Mを1変数tで次数l-1以下の平文多項式M(t)と次数l以上の1変数既約多項式f(t)の候補の一部の係数とに分担して埋め込む平文埋め込み手段、
    前記平文Mのハッシュ値H(M)に基づいて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)を生成する暗号化手段、
    として機能させるためのプログラム。
  9. 請求項7又は請求項8に記載のプログラムにおいて、
    前記多項式生成手段は、前記平文Mのハッシュ値H(M)に基づいて3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)の各項のx指数、y指数、t指数及び係数のうち、少なくとも2つ以上を生成することを特徴とするプログラム。
  10. メッセージmと乱数rを連結した平文Mが1変数tで次数(l-1)以下の平文多項式M(t)の係数として埋め込まれた平文多項式M(t)に対し、3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)と、次数l以上のランダムな1変数既約多項式f(t)と、公開鍵である代数曲面XのファイブレーションX(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により前記平文多項式M(t)から生成された暗号文F=Epk(M,p,q,f,X)が入力されたとき、予め保持する秘密鍵である代数曲面XのファイブレーションX(x,y,t)=0に対応する2つのセクションD1,D2に基づいて、前記暗号文Fから前記メッセージmを復号するための復号装置のプログラムであって、
    前記復号装置のコンピュータを、
    前記入力された暗号文Fに対し、前記各セクションD1,D2を代入して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)の係数から平文Mを抽出する平文抽出手段、
    前記平文抽出手段により得られた平文Mに基づいて、この平文Mのハッシュ値H(M)を演算してメモリに保持するハッシュ演算手段、
    前記メモリ内のハッシュ値H(M)に基づいて、3変数x,y,tの多項式p(x,y,t),q(x,y,t)を生成する多項式生成手段、
    前記各多項式p(x,y,t),q(x,y,t),f(t)と前記ファイブレーションX(x,y,t)とに基づいて、前記暗号化処理と同じ処理により、暗号文F’=Epk(M,p,q,f,X)を再現する暗号文再現手段、
    前記入力された暗号文Fと前記再現された暗号文F’とが一致するか否かを判定する暗号文判定手段、
    前記暗号文判定手段による判定結果が一致の場合、前記平文M又は前記メッセージmを出力する平文出力手段、
    前記暗号文判定手段による判定結果が否の場合、暗号文無効情報を出力する無効出力手段、
    として機能させるためのプログラム。
  11. メッセージmと乱数rを連結した平文Mが1変数tで次数(l-1)以下の平文多項式M(t)の係数と次数l以上の1変数既約多項式f(t)の候補の一部の係数とに分担して埋め込まれた平文多項式M(t)に対し、3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)と、次数l以上のランダムな1変数既約多項式f(t)と、公開鍵である代数曲面XのファイブレーションX(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により前記平文多項式M(t)から生成された暗号文F=Epk(M,p,q,f,X)が入力されたとき、
    予め保持する秘密鍵である代数曲面XのファイブレーションX(x,y,t)=0に対応する2つのセクションD1,D2に基づいて、前記暗号文Fから前記メッセージmを復号するための復号装置のプログラムであって、
    前記復号装置のコンピュータを、
    前記入力された暗号文Fに対し、前記各セクションD1,D2を代入して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を抽出する平文抽出手段、
    前記平文抽出手段により得られた平文Mに基づいて、この平文Mのハッシュ値H(M)を演算してメモリに保持するハッシュ演算手段、
    前記メモリ内のハッシュ値H(M)に基づいて3変数x,y,tの多項式p(x,y,t),q(x,y,t)を生成する多項式生成手段、
    前記各多項式p(x,y,t),q(x,y,t),f(t)と前記ファイブレーションX(x,y,t)とに基づいて、前記暗号化処理と同じ処理により、暗号文F’=Epk(M,p,q,f,X)を再現する暗号文再現手段、
    前記入力された暗号文Fと前記再現された暗号文F’とが一致するか否かを判定する暗号文判定手段、
    前記暗号文判定手段による判定結果が一致を示す場合、前記平文M又は前記メッセージmを出力する平文出力手段、
    前記暗号文判定手段による判定結果が否の場合、暗号文無効情報を出力する無効出力手段、
    として機能させるためのプログラム。
  12. 請求項10又は請求項11に記載のプログラムにおいて、
    前記多項式生成手段は、前記平文Mのハッシュ値H(M)に基づいて前記多項式p(x,y,t),q(x,y,t)の各項のx指数、y指数、t指数及び係数のうち、少なくとも2つ以上を生成することを特徴とするプログラム。
  13. 平文埋め込み手段、多項式生成手段、1変数既約多項式生成手段及び暗号化手段を備え、復号用の秘密鍵が代数曲面XのファイブレーションX(x,y,t)=0に対応する2つ以上のセクションのとき、公開鍵である代数曲面XのファイブレーションX(x,y,t)に基づいて、予めメッセージmを暗号化するための暗号装置が実行する暗号方法であって、
    前記平文埋め込み手段が、前記メッセージmと乱数rを連結した平文Mを1変数tで次数l−1以下の平文多項式M(t)の係数として埋め込む平文埋め込み工程と、
    前記多項式生成手段が、前記平文Mのハッシュ値H(M)に基づいて3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)を生成する多項式生成工程と、
    前記1変数既約多項式生成手段が、次数l以上のランダムな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. 平文埋め込み手段、多項式生成手段、1変数既約多項式生成手段及び暗号化手段を備え、復号用の秘密鍵が代数曲面XのファイブレーションX(x,y,t)=0に対応する2つ以上のセクションのとき、公開鍵である代数曲面XのファイブレーションX(x,y,t)に基づいて、予めメッセージmを暗号化するための暗号装置が実行する暗号方法であって、
    前記平文埋め込み手段が、前記メッセージmと乱数rを連結した平文Mを1変数tで次数l−1以下の平文多項式M(t)と次数l以上の1変数既約多項式f(t)の候補の一部の係数とに分担して埋め込む平文埋め込み工程と、
    前記多項式生成手段が、前記平文Mのハッシュ値H(M)に基づいて3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)を生成する多項式生成工程と、
    前記1変数既約多項式生成手段が、前記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)を生成する暗号化工程と
    を備えたことを特徴とする暗号方法。
  15. 請求項13又は請求項14に記載の暗号方法において、
    前記多項式生成工程は、前記平文Mのハッシュ値H(M)に基づいて3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)の各項のx指数、y指数、t指数及び係数のうち、少なくとも2つ以上を生成することを特徴とする暗号方法。
  16. メッセージmと乱数rを連結した平文Mが1変数tで次数(l−1)以下の平文多項式M(t)の係数として埋め込まれた平文多項式M(t)に対し、3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)と、次数l以上のランダムな1変数既約多項式f(t)と、公開鍵である代数曲面XのファイブレーションX(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により前記平文多項式M(t)から生成された暗号文F=Epk(M,p,q,f,X)が入力されたとき、
    セクション代入手段、多項式減算手段、因数分解手段、多項式抽出手段、剰余演算手段、平文抽出手段、ハッシュ演算手段、多項式生成手段、暗号文再現手段、暗号文判定手段、平文出力手段及び無効出力手段を備え、予め保持する秘密鍵である代数曲面XのファイブレーションX(x,y,t)=0に対応する2つのセクションD1,D2に基づいて、前記暗号文Fから前記メッセージmを復号するための復号装置が実行する復号方法であって、
    前記セクション代入手段が、前記入力された暗号文Fに対し、前記各セクションD1,D2を代入して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)の係数から平文Mを抽出する平文抽出工程と、
    前記ハッシュ演算手段が、前記平文抽出工程により得られた平文Mに基づいて、この平文Mのハッシュ値H(M)を演算するハッシュ演算工程と、
    前記多項式生成手段が、前記ハッシュ演算工程により得られたハッシュ値H(M)に基づいて、3変数x,y,tの多項式p(x,y,t),q(x,y,t)を生成する多項式生成工程と、
    前記暗号文再現手段が、前記各多項式p(x,y,t),q(x,y,t),f(t)と前記ファイブレーションX(x,y,t)とに基づいて、前記暗号化処理と同じ処理により、暗号文F’=Epk(M,p,q,f,X)を再現する暗号文再現工程と、
    前記暗号文判定手段が、前記入力された暗号文Fと前記再現された暗号文F’とが一致するか否かを判定する暗号文判定工程と、
    前記平文出力手段が、前記暗号文判定工程による判定結果が一致の場合、前記平文M又は前記メッセージmを出力する平文出力工程と、
    前記無効出力手段が、前記暗号文判定工程による判定結果が否の場合、暗号文無効情報を出力する無効出力工程と
    を備えたことを特徴とする復号方法。
  17. メッセージmと乱数rを連結した平文Mが1変数tで次数(l−1)以下の平文多項式M(t)の係数と次数l以上の1変数既約多項式f(t)の候補の一部の係数とに分担して埋め込まれた平文多項式M(t)に対し、3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)と、次数l以上のランダムな1変数既約多項式f(t)と、公開鍵である代数曲面XのファイブレーションX(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により前記平文多項式M(t)から生成された暗号文F=Epk(M,p,q,f,X)が入力されたとき、
    セクション代入手段、多項式減算手段、因数分解手段、多項式抽出手段、剰余演算手段、平文抽出手段、ハッシュ演算手段、多項式生成手段、暗号文再現手段、暗号文判定手段、平文出力手段及び無効出力手段を備え、予め保持する秘密鍵である代数曲面XのファイブレーションX(x,y,t)=0に対応する2つのセクションD1,D2に基づいて、前記暗号文Fから前記メッセージmを復号するための復号装置が実行する復号方法であって、
    前記セクション代入手段が、前記入力された暗号文Fに対し、前記各セクションD1,D2を代入して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を抽出する平文抽出工程と、
    前記ハッシュ演算手段が、前記平文抽出工程により得られた平文Mに基づいて、この平文Mのハッシュ値H(M)を演算するハッシュ演算工程と、
    前記多項式生成手段が、前記ハッシュ演算工程により得られたハッシュ値H(M)に基づいて3変数x,y,tの多項式p(x,y,t),q(x,y,t)を生成する多項式生成工程と、
    前記暗号文再現手段が、前記各多項式p(x,y,t),q(x,y,t),f(t)と前記ファイブレーションX(x,y,t)とに基づいて、前記暗号化処理と同じ処理により、暗号文F’=Epk(M,p,q,f,X)を再現する暗号文再現工程と、
    前記暗号文判定手段が、前記入力された暗号文Fと前記再現された暗号文F’とが一致するか否かを判定する暗号文判定工程と、
    前記平文出力手段が、前記暗号文判定工程による判定結果が一致を示す場合、前記平文M又は前記メッセージmを出力する平文出力工程と、
    前記無効出力手段が、前記暗号文判定工程による判定結果が否の場合、暗号文無効情報を出力する無効出力工程と
    を備えたことを特徴とする復号方法。
  18. 請求項16又は請求項17に記載の復号方法において、
    前記多項式生成工程は、前記平文Mのハッシュ値H(M)に基づいて前記多項式p(x,y,t),q(x,y,t)の各項のx指数、y指数、t指数及び係数のうち、少なくとも2つ以上を生成することを特徴とする復号方法。
JP2005330516A 2005-11-15 2005-11-15 暗号装置、復号装置、プログラム及び方法 Expired - Fee Related JP4575283B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005330516A JP4575283B2 (ja) 2005-11-15 2005-11-15 暗号装置、復号装置、プログラム及び方法
US11/426,450 US7773747B2 (en) 2005-11-15 2006-06-26 Encryption apparatus, decryption apparatus, and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005330516A JP4575283B2 (ja) 2005-11-15 2005-11-15 暗号装置、復号装置、プログラム及び方法

Publications (2)

Publication Number Publication Date
JP2007139895A JP2007139895A (ja) 2007-06-07
JP4575283B2 true JP4575283B2 (ja) 2010-11-04

Family

ID=38040821

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005330516A Expired - Fee Related JP4575283B2 (ja) 2005-11-15 2005-11-15 暗号装置、復号装置、プログラム及び方法

Country Status (2)

Country Link
US (1) US7773747B2 (ja)
JP (1) JP4575283B2 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4575251B2 (ja) 2005-07-25 2010-11-04 株式会社東芝 デジタル署名生成装置、デジタル署名検証装置、デジタル署名生成方法、デジタル署名検証方法、デジタル署名生成プログラム及びデジタル署名検証プログラム
JP4197710B2 (ja) * 2006-07-19 2008-12-17 株式会社東芝 暗号装置、復号装置、プログラム及び方法
US9059838B2 (en) * 2007-03-30 2015-06-16 Verizon Patent And Licensing Inc. Encryption algorithm with randomized buffer
CA2591280A1 (en) * 2007-06-12 2008-12-12 Nikolajs Volkova A new digital signature scheme
JP2009116183A (ja) * 2007-11-08 2009-05-28 Toshiba Corp 暗号装置、復号装置、鍵生成装置及びプログラム
JP2010204466A (ja) 2009-03-04 2010-09-16 Toshiba Corp 暗号装置、復号装置、鍵生成装置及びプログラム
JP5736816B2 (ja) * 2010-05-31 2015-06-17 ソニー株式会社 認証装置、認証方法、プログラム、及び署名生成装置
JP5593850B2 (ja) * 2010-05-31 2014-09-24 ソニー株式会社 認証装置、認証方法、プログラム、及び署名生成装置
JP5132724B2 (ja) * 2010-06-28 2013-01-30 株式会社東芝 鍵生成装置、鍵生成方法及び鍵生成プログラム
JP2013042315A (ja) * 2011-08-12 2013-02-28 Sony Corp 情報処理装置、及び情報処理方法
JP5790287B2 (ja) * 2011-08-12 2015-10-07 ソニー株式会社 情報処理装置、情報処理方法、プログラム、及び記録媒体
JP6069852B2 (ja) * 2011-08-29 2017-02-01 ソニー株式会社 情報処理装置、情報処理方法、及びプログラム
JP6173904B2 (ja) * 2013-12-13 2017-08-02 株式会社東芝 共通鍵暗号装置及びプログラム、並びに、共通鍵復号装置及びプログラム
CN105337737B (zh) * 2014-07-03 2018-11-20 华为技术有限公司 公钥加密通信方法和装置
JP6413598B2 (ja) * 2014-10-10 2018-10-31 富士通株式会社 暗号処理方法、暗号処理装置、及び暗号処理プログラム
JP6413743B2 (ja) * 2014-12-16 2018-10-31 富士通株式会社 暗号処理装置、暗号処理方法、及び暗号処理プログラム
US10833841B2 (en) * 2016-07-13 2020-11-10 Sap Se Leakage-free order-preserving encryption
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
JP7273742B2 (ja) * 2020-02-07 2023-05-15 株式会社東芝 暗号化装置、復号装置、暗号方法、復号方法、暗号化プログラム及び復号プログラム
CN112487448B (zh) * 2020-11-27 2024-05-03 珠海零边界集成电路有限公司 一种加密信息处理装置、方法及计算机设备
CN112667994B (zh) * 2020-12-10 2023-01-20 山东大学 一种面向计算机的对称密码形式化描述方法及系统
CN113779645B (zh) * 2021-11-12 2022-02-22 南京大学 一种量子数字签名和量子数字签密方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0488736A (ja) * 1990-07-31 1992-03-23 Matsushita Electric Ind Co Ltd データ伝送方式
JP2005331656A (ja) * 2004-05-19 2005-12-02 Toshiba Corp 暗号装置、復号装置、鍵生成装置、プログラム及び方法

Family Cites Families (4)

* 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
JP3306384B2 (ja) 1998-11-11 2002-07-24 日本電信電話株式会社 ランダム関数利用公開鍵暗号の暗号装置、復号装置、及びプログラム記録媒体
JP2001255814A (ja) * 2000-03-10 2001-09-21 Murata Mach Ltd 復号方法、復号装置、及び復号プログラムの記録媒体
US7895436B2 (en) * 2003-10-28 2011-02-22 The Foundation For The Promotion Of Industrial Science Authentication system and remotely-distributed storage system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0488736A (ja) * 1990-07-31 1992-03-23 Matsushita Electric Ind Co Ltd データ伝送方式
JP2005331656A (ja) * 2004-05-19 2005-12-02 Toshiba Corp 暗号装置、復号装置、鍵生成装置、プログラム及び方法

Also Published As

Publication number Publication date
US20070110232A1 (en) 2007-05-17
JP2007139895A (ja) 2007-06-07
US7773747B2 (en) 2010-08-10

Similar Documents

Publication Publication Date Title
JP4575283B2 (ja) 暗号装置、復号装置、プログラム及び方法
JP4384056B2 (ja) 暗号装置、復号装置、鍵生成装置、プログラム及び方法
US7688973B2 (en) Encryption apparatus, decryption apparatus, key generation apparatus, program, and method
US7711113B2 (en) ID-based signature, encryption system and encryption method
JP4664850B2 (ja) 鍵生成装置、プログラム及び方法
JP4197710B2 (ja) 暗号装置、復号装置、プログラム及び方法
Millérioux et al. A connection between chaotic and conventional cryptography
KR100259179B1 (ko) 암호화 통신 처리
Jayapandian et al. Secure and efficient online data storage and sharing over cloud environment using probabilistic with homomorphic encryption
CN115549891B (zh) 同态加密方法、同态解密方法、同态计算方法及设备
CN105721156A (zh) 用于模幂加密方案的通用编码函数
JP2009175197A (ja) 暗号装置、復号装置、鍵生成装置及びプログラム
JP2009116183A (ja) 暗号装置、復号装置、鍵生成装置及びプログラム
US6111952A (en) Asymmetrical cryptographic communication method and portable object therefore
JP2007036364A (ja) タイム装置、暗号化装置、復号化装置、暗号化/復号化システム
Hodowu et al. An enhancement of data security in cloud computing with an implementation of a two-level cryptographic technique, using AES and ECC algorithm
Kazmirchuk et al. The Improvement of digital signature algorithm based on elliptic curve cryptography
JP4690819B2 (ja) 楕円曲線暗号におけるスカラー倍計算方法およびスカラー倍計算装置
JP2003255831A (ja) 楕円曲線スカラー倍計算方法及び装置
JP4861369B2 (ja) リカバリ署名システム、署名生成装置、署名検証装置、それらの方法、及びプログラム
Rao et al. Secure and practical outsourcing of linear programming in cloud computing: A survey
WO2023238230A1 (ja) 暗号システム
Téllez et al. Supersingular Isogeny and Ring Learning With Errors-Based Diffie-Hellman Cryptosystems: A Performance and Security Comparison
Davida et al. Efficient encryption and storage of close distance messages with applications to cloud storage
JP3881273B2 (ja) 暗号鍵生成装置、暗号鍵生成プログラムおよびそのプログラムを記録した記録媒体

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100525

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100628

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: 20100720

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: 20100819

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

Free format text: PAYMENT UNTIL: 20130827

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees