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

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

Info

Publication number
JP2006194990A
JP2006194990A JP2005004220A JP2005004220A JP2006194990A JP 2006194990 A JP2006194990 A JP 2006194990A JP 2005004220 A JP2005004220 A JP 2005004220A JP 2005004220 A JP2005004220 A JP 2005004220A JP 2006194990 A JP2006194990 A JP 2006194990A
Authority
JP
Japan
Prior art keywords
polynomial
integer
diophantine equation
irreducible
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
JP2005004220A
Other languages
English (en)
Other versions
JP4384056B2 (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 JP2005004220A priority Critical patent/JP4384056B2/ja
Priority to US11/220,641 priority patent/US20060251247A1/en
Publication of JP2006194990A publication Critical patent/JP2006194990A/ja
Application granted granted Critical
Publication of JP4384056B2 publication Critical patent/JP4384056B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B82NANOTECHNOLOGY
    • B82YSPECIFIC USES OR APPLICATIONS OF NANOSTRUCTURES; MEASUREMENT OR ANALYSIS OF NANOSTRUCTURES; MANUFACTURE OR TREATMENT OF NANOSTRUCTURES
    • B82Y10/00Nanotechnology for information processing, storage or transmission, e.g. quantum computing or single electron logic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3026Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to polynomials generation, e.g. generation of irreducible polynomials
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Chemical & Material Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • Nanotechnology (AREA)
  • Algebra (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Computational Mathematics (AREA)
  • Crystallography & Structural Chemistry (AREA)
  • Artificial Intelligence (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】 量子計算機が出現しても安全性を確保でき、現在の計算機でも安全に実現可能であると共に、小電力環境での実現可能性がある公開鍵暗号方式を構成する。
【解決手段】 ディオファンタス方程式Xの2つの整数解S,Sを秘密鍵に用いており、一般的な解法アルゴリズムが存在しないディオファンタス方程式の整数解を求める問題に安全性の根拠をおく公開鍵暗号方式の暗号装置20,復号装置30又は鍵生成装置10を実現した。これにより、上記課題を解決する。
【選択図】 図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(x1,…,xn)=0に対応する2つの整数解のとき、公開鍵であるディオファンタス方程式X(x1,…,xn)とランダムに生成する既約多項式f(t)の最小次数Lに基づいて、メッセージを暗号化するための暗号装置であって、前記メッセージを整数mに展開する展開手段と、前記整数mを次数(L−1)以下の1変数多項式m(t)に埋め込む埋め込み手段と、ランダムな2つの多項式p(x1,…,xn,t),q(x1,…,xn,t)を生成する多項式生成手段と、次数L以上のランダムな既約多項式f(t)を生成する既約多項式生成手段と、前記多項式m(t)に対し、前記各多項式p(x1,…,xn,t),q(x1,…,xn,t)と既約多項式f(t)と公開鍵であるディオファンタス方程式X(x1,…,xn)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行い、前記多項式m(t)から暗号文F=Epk(m,p,q,f,X)を生成する暗号化手段とを備えた暗号装置である。
第2の発明は、復号用の秘密鍵がディオファンタス方程式X(x1,…,xn)=0に対応する1つの整数解のとき、公開鍵であるディオファンタス方程式X(x1,…,xn)とランダムな既約多項式の最小次数Lに基づいて、メッセージmを暗号化するための暗号装置であって、前記メッセージを整数mに展開する展開手段と、前記整数mを次数(L−1)以下の1変数多項式m(t)に埋め込む埋め込み手段と、少なくとも一方が相異なる2つのランダムな多項式の組p(x1,…,xn,t),p(x1,…,xn,t),q(x1,…,xn,t),q(x1,…,xn,t)を生成する多項式生成手段と、次数L以上のランダムな既約多項式f(t)を生成する既約多項式生成手段と、前記多項式m(t)に対し、前記各多項式p(x1,…,xn,t),p(x1,…,xn,t),q(x1,…,xn,t),q(x1,…,xn,t)と公開鍵であるディオファンタス方程式X(x1,…,xn)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行い、前記多項式m(t)から暗号文F=Epk(m,p,q,f,X)及びF=Epk(m,p,q,f,X)を生成する暗号化手段とを備えた暗号装置である。
第3の発明は、メッセージが埋め込まれてなる次数(L−1)以下の多項式m(t)に対し、ランダムな2つの多項式p(x1,…,xn,t),q(x1,…,xn,t)と既約多項式f(t)と公開鍵であるディオファンタス方程式X(x1,…,xn)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、前記多項式m(t)から生成された暗号文F=Epk(m,p,q,f,X)が入力されたとき、予め保持する復号用の秘密鍵がディオファンタス方程式X(x1,…,xn)=0に対応する2つの整数解S,Sに基づいて、前記暗号文Fからメッセージを復号するための復号装置であって、前記入力された暗号文Fに対し、前記整数解S,Sを個別に代入して2つの多項式h(t),h(t)を生成する整数解代入手段と、前記代入により得られた一方の多項式h(t)から他方の多項式h(t)を減算し、減算結果(h(t)−h(t))を得る多項式減算手段と、前記減算結果(h(t)−h(t))を因数分解する因数分解手段と、前記因数分解結果から最大次数の既約多項式f(t)を抽出する素因子抽出手段と、前記代入により得られた多項式h(t)又はh(t)を前記既約多項式f(t)で除算し、剰余として前記メッセージに対応する多項式m(t)を求める剰余演算手段とを備えた復号装置である。
第4の発明は、メッセージが埋め込まれてなる次数(L−1)以下の多項式m(t)に対し、少なくとも一方が相異なる2つのランダムな多項式の組p(x1,…,xn,t),p(x1,…,xn,t),q(x1,…,xn,t),q(x1,…,xn,t)と次数L以上のランダムな既約多項式f(t)と公開鍵であるディオファンタス方程式X(x1,…,xn)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、前記多項式m(t)から生成された暗号文F=Epk(m,p,q,f,X)及びF=Epk(m,p,q,f,X)が入力されたとき、予め保持する復号用の秘密鍵がディオファンタス方程式X(x1,…,xn)=0に対応する1つの整数解Sに基づいて、前記暗号文F,Fからメッセージを復号するための復号装置であって、前記入力された暗号文F,Fに対し、前記整数解Sを個別に代入して2つの多項式h(t),h(t)を生成する整数解代入手段と、前記代入により得られた一方の多項式h(t)から他方の多項式h(t)を減算し、減算結果(h(t)−h(t))を得る多項式減算手段と、前記減算結果(h(t)−h(t))を因数分解する因数分解手段と、前記因数分解結果から最大次数の既約多項式f(t)を抽出する因子抽出手段と、前記代入により得られた多項式h(t)又はh(t)を前記既約多項式f(t)で除算し、剰余として前記メッセージに対応する多項式m(t)を求める剰余演算手段とを備えた復号装置である。
第5の発明は、メッセージが埋め込まれてなる次数(L−1)以下の多項式m(t)を暗号化するための公開鍵であるディオファンタス方程式X(x1,…,xn)と、前記暗号化された多項式m(t)を復号するための秘密鍵であるディオファンタス方程式X(x1,…,xn)=0に対応する2つの整数解S,Sとを生成するための鍵生成装置であって、係数を変数としたディオファンタス方程式を決定するディオファンタス方程式決定手段と、2つの整数解S=(c1,…,cn),S=(g1,…,gn)をランダムに生成する整数解生成手段と、前記2つの整数解S,Sを前記係数を変数としたディオファンタス方程式に代入して得られた連立方程式を行列表現した際の係数行列を求め、前記係数行列に掃きだし法を施すことによって、基本解を求める行列演算手段と、前記基本解から自由変数にランダムな値を代入することにより、具体的な解ベクトルを求め、前記解ベクトルの各要素の分母の最小公倍数をかけることによって整数解ベクトルを求めることでディオファンタス方程式を生成するディオファンタス方程式生成手段とを備えた鍵生成装置である。
第6の発明は、メッセージが埋め込まれてなる次数(L−1)以下の多項式m(t)を暗号化するための公開鍵であるディオファンタス方程式X(x1,…,xn)と、前記暗号化された多項式m(t)を復号するための秘密鍵であるディオファンタス方程式X(x1,…,xn)=0に対応する整数解Sとを生成するための鍵生成装置であって、係数を変数としたディオファンタス方程式を決定するディオファンタス方程式決定手段と、整数解Sをランダムに生成する整数解生成手段と、ディオファンタス方程式の定数項以外の係数をランダムに決定する係数生成手段と、前記生成された整数解Sと前記生成された係数から前記生成されたディオファンタス方程式の定数項を求めるディオファンタス方程式生成手段とを備えた鍵生成装置である。
(作用)
第1乃至第6の各発明は、ディオファンタス方程式Xの整数解を秘密鍵に用いる構成により、一般的な解法アルゴリズムが存在しないディオファンタス方程式の整数解を求める問題に安全性の根拠をおく公開鍵暗号方式の暗号装置、復号装置又は鍵生成装置を実現したので、量子計算機が出現しても安全性を確保でき、現在の計算機でも安全に実現可能であると共に、小電力環境での実現可能性がある公開鍵暗号方式を構成することができる。
以上説明したように本発明によれば、量子計算機が出現しても安全性を確保でき、現在の計算機でも安全に実現可能であるとともに、小電力環境での実現可能性がある公開鍵暗号方式を構成することができる。
以下、本発明の各実施形態について図面を参照しながら説明する。
(第1の実施形態)
整数を係数に持つ有限個の方程式に共通の整数解を求めることをディオファンタス方程式または不定方程式を解くといい、整数解を求めることを前提とした整数係数の(有限個の)方程式をディオファンタス方程式もしくは不定方程式と呼ぶ。例えば整数係数の連立方程式である式(1)は、ディオファンタス方程式である。
Figure 2006194990
ディオファンタス方程式の整数解を求める問題は、紀元前から研究され、多くの数学者の興味を惹き、整数論という一分野を確立するもととなった。
近年、ディオファンタス方程式の整数解を求める問題には一般的な解法アルゴリズムが存在しないことが分かってきた。即ち、ディオファンタス方程式を解くには、その方程式(若しくは方程式群)に固有の解法アルゴリズムを適用させるしか方法がない。しかしながら、解法アルゴリズムが知られているディオファンタス方程式(若しくはディオファンタス方程式群)は極めて限られている。
このようにディオファンタス方程式の整数解を求める問題は、RSA暗号が安全性の根拠にしている素因数分解問題や楕円曲線暗号が安全性の根拠にしている楕円曲線上の離散対数問題に一般的な解法アルゴリズムが知られていることを考えると、相当難しい問題と考えることができる。実際、2次のディオファンタス方程式の整数解を求める問題は、(一部の簡単な実例を除いて)NP完全問題であることが知られている。
尚、本実施形態では簡単のため、1つの方程式からなるn変数のディオファンタス方程式のみを取り扱うため、
X(x1,…,xn)=0
のように記述する。
しかし、本発明の本質的な部分はディオファンタス方程式の整数解を求める問題に安全性をおく公開鍵暗号を構成することであるので、この範囲で複数のディオファンタス方程式を利用した構成も可能である。
以下では、ディオファンタス方程式の整数解を求める問題の困難性に基づいた公開鍵暗号の具体的な構成を説明する。
第1の実施形態の公開鍵は以下のディオファンタス方程式Xである。
ディオファンタス方程式:X(x1,…,xn)=0
秘密鍵は以下の2つである。
1.ディオファンタス方程式Xの整数解:S:(x1,…,xn)=(c1,…,cn)
2.ディオファンタス方程式Xの整数解:S:(x1,…,xn)=(g1,…,gn)
これらは後述する方法(鍵生成方法)で容易に求めることができる。
次に暗号化処理の概要を述べる。暗号化処理ではまず暗号化したいメッセージ(以下では平文と呼ぶ)を整数mに変換し、整数mを(L−1)次以下の多項式の係数に埋め込む。ここで、Lはメッセージ暗号化時に受信者と送信者の間で取り決められる既約多項式f(t)の最小次数である。次に、整数係数の多項式q(x1,…,xn,t)をランダムに生成する。続いて定数項を持つ整数係数の多項式p(x1,…,xn,t)を条件(2)、条件(3)、条件(4)を満たす範囲でランダムに生成する。条件(2)は次の通りである。
1≦∀i≦n degxip(x1,…,xn,t)>degxiX(x1,…,xn)
(2)
degxip(x1,…,xn,t)は多項式p(x1,…,xn,t)を変数xの多項式と思ったときの次数を表す。例えばxの次数degと、yの次数degは、それぞれ次のようになる。
deg(x+2xt+5xyt+3)=3,
deg(x+2xt+5xyt+3)=5
条件(3)は次の通りである。
Figure 2006194990
次にランダムな既約多項式f(t)を生成する。ここで、既約多項式生成処理には極めて効率的なアルゴリズムが存在する。既約多項式生成は、ランダムに多項式を選択する処理と、選択した多項式が既約多項式か否かを判定する既約性判定処理とからなり、既約多項式と判定される多項式を得るまで、上述した処理を繰りかえす内容なので、比較的短時間に行うことができる。
既約多項式f(t)を得ると、次の式(5)に基づいて、暗号文F(x1,…,xn,t)を計算する。
F(x1,…,xn,t)=m(t)+f(t)p(x1,…,xn,t)+X(x1,…,xn)q(x1,…,xn,t) (5)
なお、後述する<安全性の検討>でも示される通り、ランダムな多項式p(x1,…,xn,t),q(x1,…,xn,t)は一方が欠けても安全性に問題が生ずる。即ち、2つのランダム多項式p(x1,…,xn,t),q(x1,…,xn,t)は、安全性の観点から、必然性をもって式(5)に含まれている。
暗号文F(x1,…,xn,t)を受け取った受信者は、所有する秘密鍵S,Sを利用して次のように復号を行う。まず、整数解S,Sを暗号文F(x1,…,xn,t)に代入する。
代入した結果、X(c1,…,cn)=0,X(g1,…,gn)=0、であるから、以下の2つの多項式h(t),h(t)が求まる。
(t)=F(c1,…,cn,t)=m(t)+f(t)p(c1,…,cn,t)
(t)=F(g1,…,gn,t)=m(t)+f(t)p(g1,…,gn,t)
次に、これら2式を辺々引き算し、次の式(6)を計算する。
(t)−h(t)=f(t){p(c1,…,cn,t)−p(g1,…,gn,t)} (6)
計算により得られたh(t)−h(t)を因数分解し、最大次数の既約多項式をf(t)と定める。ここで、条件(4)により因子{p(c1,…,cn,t)−p(g1,…,gn,t)}の次数が高々(L−1)で抑えられることにより、f(t)が最大次数の既約多項式として決定できる。また、h(t)−h(t)の因数分解は、h(t)−h(t)の次数が50程度のあまり大きくない整数であれば、実時間で実行できるアルゴリズムが知られている。得られた既約多項式f(t)で整数h(t)を除すると(m(t)の次数がf(t)の次数より小さいことに注意すると)、次式の関係から剰余として平文を埋め込んだ多項式m(t)が一意的に得られる。
(t)=m(t)+f(t)p(c1,…,cn,t)
最後に本実施形態における鍵生成方法を説明する。この鍵生成は、整数解S,Sをランダムに選び、整数解S,Sに対応したディオファンタス方程式を生成して行う。但し、生成されたディオファンタス方程式が2つの整数解S,Sを同時に持つようにするため、以下のような工夫をする。
まず、ディオファンタス方程式の形を決める。一例として式(7)の形とする。
X(x,y) = a+a+ax+a=0 (7)
ここでは簡単のためx=x,x=yとした2変数のディオファンタス方程式を考える。ここで、a,…,aは係数であり整数である。尚、公開鍵暗号の公開鍵としてディオファンタス方程式を使う場合は定数項が入っていることが望ましい。何故なら定数項がない場合、自明な解(0,…,0)が存在してしまい、解読のために重大なヒントを与えることになるからである。
次に整数解S1:(c,…,c)とS2:(g,…,g)とをランダムに選択する。本実施形態で述べる鍵生成手法は整数解を先に(ランダムに)決め、ディオファンタス方程式の係数で調整するという方法であるので、整数解には何らの条件も付かない。
ランダムに生成した整数解S=(c,c),S=(g,g)をディオファンタス方程式X(x,y)に代入して次式を得る。
+a +a+a=0
+a +a+a=0
を得る。更にこれを
Figure 2006194990
なる基本解が得られ、基本解における自由な変数a,aにランダムな整数(若しくは有理数)を代入することによって、有理数としてa,aが求まる。更に、これらa,a,a,aに分母の最小公倍数を掛けることによって、整数としての係数a,a,a,aを求めることができる。このようにしてランダムな2つの整数解S,Sを持つディオファンタス方程式が生成できる。尚、掃きだし法により、
Figure 2006194990
のように変形しても、同様のアルゴリズムで係数a,a,a,aを求めることができる。
また、上記鍵生成方法は、その構成から分かるように式(7)の形態のディオファンタス方程式に限らず、一般のディオファンタス方程式であっても同様に可能であり、本発明の公開鍵暗号全般に有効な鍵生成方法である。
<安全性の検討>
以下では、前述した本実施形態の公開鍵暗号の安全性に関して考察する。本実施形態の公開鍵暗号は、ディオファンタス方程式X(x1,…,xn)=0が与えられたとき、その整数解を求める問題の難しさを安全性の根拠としている。
復号処理は、次式の暗号文F(x1,…,xn,t)から多項式m(t)を特定することである。
F(x1,…,xn,t)=m(t)+f(t)・p(x1,…,xn,t)+X(x1,…,xn)q(x1,…,xn,t)
前述した復号方式では、F(x1,…,xn,t)にX(x1,…,xn)の整数解(c1,…,cn)および(g1,…,gn)を代入し、多項式の因数分解により式(6)の右辺を導き出す操作がポイントとなる。以下では、次の4通りの攻撃方法[攻撃1]〜[攻撃4]に分類し、上記の操作以外に復号ができないことを検証する。
[攻撃1]式F(x1,…,xn,t)の形状からm(t)を推定する。
[攻撃2]整数解以外の解を代入してm(t)を求める。
[攻撃3]各種リダクションによってm(t)を求める。
[3−1]ディオファンタス多項式X(x1,…,xn)によるリダクション
[3−2]素数pによるリダクション
[攻撃4]変数x1,…,xnをパラメータ表示することによりm(t)を求める。
[攻撃1]式の形状から平文を推定する攻撃方法
平文を埋め込んだ多項式m(t)は、暗号文F(x1,…,xn,t)の中のtのみを変数として含む項の部分のみに存在する。従って、暗号文F(x1,…,xn,t)の中にtのみを変数として含む項がm(t)以外になければ、F(x1,…,xn,t)の形状からm(t)が特定できる。しかしながら、暗号文F(x1,…,xn,t)は、cを任意の整数として次式のように変形すれば、他の定数項cf(t)が明らかに存在する。
F(x1,…,xn)={m(t)+cf(t)}+f(t){p(x1,…,xn,t)−c}+X(x1,…,xn)q(x1,…,xn,t)
従って、暗号文F(x1,…,xn,t)中のtのみを変数として含む項としてm(t)を特定することはできない。
[攻撃2]整数解以外の解を代入する攻撃方法
ディオファンタス方程式に整数解以外の解を代入する攻撃が考えられる。ディオファンタス方程式の整数解を求めることは困難であるが、実数解や複素数解を求めることは比較的容易である。ここでは簡単のため、実数解(r1,…,rn),(s1,…,sn)をそれぞれ代入し、得られた2つの数を辺々引くと、f(t){p(r1,…,rn,t)−p(s1,…,sn,t)}が求まる。しかし、第二因子{p(r1,…,rn,t)−p(s1,…,sn,t)}が実数もしくは複素数となるため、因数分解でf(t)を求めることはできない。
[攻撃3]各種リダクションによる攻撃方法
暗号文F(x1,…,xn,t)をリダクションすることにより、解読し易い空間に暗号文を写し、この解読し易い空間において解読する攻撃が考えられる。ここでは、以下の2つの場合に関して安全性を考察する。尚、f(x1,…,xn,t)をg(x1,…,xn)でリダクションするとは、f(x1,…,xn,t)をg(x1,…,xn)で割った余りを求めることである。
[攻撃3−1]ディオファンタス多項式X(x1,…,xn)によるリダクション
暗号文F(x1,…,xn,t)にディオファンタス方程式X(x1,…,xn)のリダクションを施すと、X(x1,…,xn)が2変数以上の場合、剰余が一意に定まらないことが知られている(例えば、非特許文献2,3参照)。また、仮に(グレブナー基底等を用いて)剰余が一意に定まったとしても、多項式p(x1,…,xn,t)が条件(2)を満たすので、定まった剰余が望ましい剰余 m(t)+f(t)p(x1,…,xn,t)であるかを検証する手段がない。しかし、ここで暗号文F(x1,…,xn,t)にq(x1,…,xn,t)の因子が無ければ、単に暗号文F(x1,…,xn,t)からX(x1,…,xn)を引き算するだけで正しいm(t)+f(t)p(x1,…,xn,t)が求まってしまう。m(t)+f(t)p(x1,…,xn,t)が求まれば変数(x1,…,xn)に(ディオファンタス方程式の整数解とは限らない)適当な2つの整数の組(u1,…,un)、(v1,…,vn)を割り当てることによって、本実施形態の復号方式と同様の手段で平文を埋め込んだ多項式m(t)を求めることができる。従って、このような攻撃を防ぐ意味で、因子p(x1,…,xn,t)は必要不可欠な因子であるといえる。
[攻撃3−2]素数pによるリダクション
暗号文F(x1,…,xn,t)を素数pでリダクションすることにより、有限体F上のディオファンタス方程式X(x1,…,xn)=0の求解問題は極めて容易になる。そこで実際に解を求めて、f(t){p(r1,…,rn,t)−p(s1,…,sn,t)}(mod p)を導くことができる。しかしながら、有限体F上で解を求めただけなので、因数分解等の手段によって既約多項式f(t)を求めることができない。
一方、もし暗号文F(x1,…,xn,t)にp(x1,…,xn,t)の因子が無ければ、この攻撃でf(t)(mod p)が求まるので、m(t)(mod p)が求まる。そこで、様々な素数pでリダクションを行ない、それぞれ得られた結果から中国の剰余定理に基づいて、平文を埋め込んだ多項式m(t)を求めることができる。従って、このような攻撃を防ぐ意味で、因子p(x1,…,xn,t)は必要不可欠な因子であるといえる。
[攻撃4]変数x1,…,xnをパラメータ表示することによる攻撃方法
ディオファンタス方程式X(x1,…,xn)は各変数xをx(t)のようにパラメータ表示することにより、1変数多項式とすることができる。このとき、暗号文は、式(5)から次式のf(t)のように求まる。
F(t)=m(t)+f(t)p(x1(t),…,xn(t) ,t)+X(x1(t),…,xn(t))q(x1(t),…,xn(t) ,t)
ここで、パラメータ表示した暗号文f(t)をディオファンタス方程式X(x1(t),…,xt(t))で割ることにより、望ましい剰余「m(t)+f(t)p(x1(t),…,xn(t) ,t)」が求まる恐れがある。しかし、条件(3)により、どのようなパラメータ表示を行っても、多項式p(x1(t),…,xn(t) ,t)の次数がディオファンタス方程式X(x1(t),…,xn(t))の次数よりも大きくなる(deg p(x1(t),…,xn(t) ,t) > deg X (x1(t),…,xn(t)))。
このため、求まった剰余が望ましい剰余「m(t)+f(t)p(x1(t),…,xn(t) ,t)」であるかを検証する手段がない。尚、この攻撃は、一部の変数を定数にしても成立するが、同様の考察で、望ましい剰余「m(t)+f(t)p(x1(t),…,xn(t) ,t)」を求めることができない。
<バリエーション>
最後に本実施形態におけるいくつかのバリエーションを述べる。
第1のバリエーションは、暗号化の式(5)を変形させた方式である。例えば、式(5)をF(x1,…,xn,t)=m(t)−f(t)p(x1,…,xn,t)−X(x1,…,xn)q(x1,…,xn,t)のように、加算を減算に変形した方式である。このように変形しても、前述同様に、暗号化/復号が可能であり、同様の安全性を得ることができる。このように本発明の趣旨に反しない範囲で暗号化の式を変形し、それに伴い復号処理を変更することは十分可能である。
第2のバリエーションは、平文を既約多項式f(t)にも埋め込む方式である。既約多項式f(t)はランダムに生成する旨を述べたが、秘密鍵を持たない人が既約多項式f(t)を求めることが困難であることも本発明の公開鍵暗号の性質であるので、既約多項式f(t)に平文情報を埋め込むことも可能となる。これに伴い、より大きなサイズの平文を一度に暗号化できる。一方で、埋め込んだ結果f(t)が既約多項式である必要から特定次数の項の係数にランダムな数が入るように予め定めておく必要がある。既約多項式は極めてたくさん存在するため、前述したように一部のビットに平文を埋め込んでもそれが故に既約多項式が求まらないことはほとんどない。
第3のバリエーションは、復号処理に復号結果の検証処理を追加する方式である。送信されてくる暗号文F(x1,…,xn,t)の中には、式(5)に示した構成を持たない出鱈目な暗号文F’が含まれてくる可能性がある。この原因は故意に誰かが不正な暗号文F’を送信する場合と、伝送中の不具合で一部が破損した暗号文F”を受信した場合とがある。かかる不正な暗号文F’,F”は、前述した2つの平文の不一致(m≠m)を確認する検証処理で排除できる。
第4のバリエーションは、平文を単なる対応した整数mに展開せず、ハッシュ関数hなどの一方向性関数を利用し、式(8)のように変形する方式である。
m’=m‖h(m) (8)
この第4のバリエーションによれば、復号文m’から得られる平文mにハッシュ関数hを施して式(8)を満たすか否かを判定することにより、出力された復号文m’の真正性を確認できる。一方、改竄する者は、改竄後の暗号文F’から得られる平文m0’に関し、m0’=m0‖h(m0)のような連接構造を持たせることが極めて困難となる。従って、第4のバリエーションは、第3のバリエーションで述べたような不正な暗号文F’の作成を阻止する効果を持っている。一般に、平文mに一方向変換を施した公開鍵暗号の構成は、改竄に対する安全性や、(適当な暗号文を作成しそれを復号装置に復号させ、復号装置から情報を得て暗号文を解読する)アクティブな攻撃にも対抗できる強い安全性を持つ暗号を構成できる性質が知られている。この性質は、本発明の公開鍵暗号についても同様に成り立ち、同様の効果が期待できる。
(第1の実施形態の具体的な構成)
次に、このような公開鍵暗号における鍵生成装置、暗号装置、復号装置の具体的な構成とそのアルゴリズムを2変数の場合を例にとり示す。
(鍵生成装置及び処理の流れ)
本実施形態の鍵生成装置の構成と処理の流れを図2に示すフローチャートに沿って図1に示す全体構成図を参照しながら示す。尚、以下に述べる具体的な数値や式は、あくまでも理解を助ける簡明な例であり、実際に使われる十分な安全性を持つ暗号化とは(特に多項式の次数などの点で)必ずしも一致していない。
本実施形態の鍵生成装置10は、制御部11、ディオファンタス方程式決定部12、整数解生成部13、整数生成部14、行列演算部15、ディオファンタス方程式生成部16及び鍵出力部17を備えており、全体として、図2に示す動作を実行するように、制御部11により他の各部12〜17が制御されるものである。また、鍵生成装置10は、図示しないメモリを有し、各部11〜17から入力データ、出力データ及び処理中のデータ等が適宜読出/書込可能となっている。以下、具体的に説明する。
鍵生成装置10は、鍵生成処理開始の指令が外部装置等から制御部11に伝えられることで処理を開始する。当該指令が制御部11に伝わると(ST1)、制御部11ではディオファンタス方程式決定部12にディオファンタス方程式の出力要請を行う。
ディオファンタス方程式決定部12では、式(7)に示した如き、ディオファンタス方程式の形を決定し(ST2)、この方程式の形を制御部11に出力する。ここで、方程式の形は、式(7)の形に限らず、真にランダムに出力しても良いが、何通りかの形を予め用意しておき、その中からランダムに抽出する方法でも構わない。
次に、制御部11は、整数解生成部13に2つの整数解S=(c,…,c),S=(g,…,g)を生成するように指示を出す。整数解生成部13は整数生成部14を援用して整数解S,Sをランダムに生成する(ST3,ST4)。ここでは簡単のため、式(7)に示すような2変数のディオファンタス方程式を例に取り、具体的に説明する。
生成された2つの整数解を、S:(c,c)=(1213,5724),S:(g,g)=(6871,7519)とする。次に、制御部11は行列演算部15にこれらの整数解を送信する。行列演算部15では、これら2つの整数解をディオファンタス方程式である式(7)に代入し、
Figure 2006194990
が求まる(ST7)。行列演算部15はこの基本解を制御部11に送信する。制御部11ではディオファンタス方程式生成部16に基本解を送信し、ディオファンタス方程式を出力させる旨の命令を出す。
ディオファンタス方程式生成部16では、この命令を受けると、基本解において自由な係数をランダムに設定する(ST8)。ここでは、例えば係数a,aをランダムにa=3892,a=2056と設定する。また、ディオファンタス方程式生成部16では、この自由な係数a,aから基本解を使って自由でない係数a,aを決定し(ST9)、係数ベクトル(a,a,a,a)=(3892,2056,−38516785658796941794378/2829,43682591769016200836744482/2829)を得る。
更にディオファンタス方程式生成部16では、係数ベクトル(a,a,a,a)を整数ベクトルとして取るために、分母の最小公倍数2829を掛けて、最終的なディオファンタス方程式の係数ベクトル(a,a,a,a)=(11010468,5816424,−38516785658796941794378,43682591769016200836744482)を得る。しかる後、ディオファンタス方程式生成部16は、この整数ベクトルを制御部11に送信する。
制御部11では、この整数ベクトルに基づき、S,Sを整数解に持つディオファンタス方程式X(x,y)を次のように生成できる。
X(x,y):11010468x23 + 5816424y2 − 38516785658796941794378x + 43682591769016200836744482 = 0
このディオファンタス方程式X(x,y)を鍵出力部17から出力することにより鍵生成処理が終了する。
(暗号装置及び処理の流れ)
次に本実施形態の暗号装置の構成と処理の流れを図4に示すフローチャートに沿って図3に示す全体構成図を参照しながら示す。本実施形態の暗号装置20は、平文入力部21、公開鍵入力部22、平文変換部23、暗号化部24、既約多項式生成部25、多項式生成部26及び暗号文出力部27を備えており、全体として図4に示す動作を実行するように、暗号化部24により他の各部21〜23,25〜27が制御されるものである。また、暗号装置20は、図示しないメモリを有し、各部21〜27から入力データ、出力データ及び処理中のデータ等が適宜読出/書込可能となっている。以下、具体的に説明する。
暗号装置20は、平文入力部21からメッセージを取得し、公開鍵入力部22から公開鍵X(x1,…,xn)と既約多項式の最小次数Lを取得することから処理を開始する。なお、公開鍵としては、鍵生成処理の例で生成された「ディオファンタス方程式」を用いる。公開鍵の具体例は下記である。
ディオファンタス方程式:
X(x,y):11010468x23 + 5816424y2 − 38516785658796941794378x + 43682591769016200836744482 = 0
また、公開鍵とは別にランダムに生成する既約多項式f(t)の次数L(=5)を入力する。
始めに、暗号装置20は、平文入力部21からメッセージが入力され(ST21)、公開鍵入力部22から公開鍵と既約多項式の最小次数Lが入力される(ST22)。入力された既約多項式の最小次数L(=5)が平文変換部23に送られる。
平文変換部23では、別途、平文入力部21から送信されたメッセージを、まず、整数mに展開し(ST23)、既約多項式f(t)の最小次数Lよりも小さい次数の多項式m(t)に変換する(ST24)。変換のアルゴリズムは種々存在するが、メッセージを整数mに展開するには文字コード列を単純に整数に読み替える方法が一般的である。更に、整数mを多項式m(t)に変換する方法としては、整数mを一定ビット毎Lブロックに分割し、それぞれのブロックの整数を係数とする(L−1)次多項式m(t)に埋め込む方法が一般的である。本実施形態の場合は、メッセージを整数(16進表示)
m=0x3E54402F8E7C82B9 2A982398452E3A80 5C948A3025D32493 14204A043C0230D1 78982CA92C020131
に変換できたとする。以下、整数mを平文mとも呼ぶ。
平文変換部23では、平文mを前記表記のようにL(=5)分割し、以下の(L−1)次多項式m(t)に埋め込んで、暗号化部24に送信する。
Figure 2006194990
一方、公開鍵入力部22は公開鍵と既約多項式f(t)の最小次数Lを暗号化部24に送信する。
暗号化部24は、多項式m(t)と公開鍵と既約多項式f(t)の最小次数Lを受信すると、既約多項式f(t)の最小次数Lを既約多項式生成部25に送信する。
既約多項式生成部25は、次数L以上の1変数多項式を生成してメモリ(図示せず)に保存し、メモリ内の1変数多項式を既約判定することにより、既約多項式f(t)をランダムに生成する(ST25)。既約多項式生成部25は、得られた次数L(=5)の既約多項式f(t)を暗号化部24に返信する。
Figure 2006194990
暗号化部24は、既約多項式f(t)を受信すると、公開鍵に含まれるディオファンタス方程式Xを多項式生成部26に送信する。
多項式生成部26は、ディオファンタス方程式Xを受けると、3変数のランダムな多項式q(x,y,t)を生成し(ST26)、この多項式q(x,y,t)を暗号化部24に返信する。ここで、3変数多項式q(x,y,t)は、簡単のため、次式のものとする。
q(x,y,t)=2xyt+34yt+53+t
暗号化部24は、3変数多項式q(x,y,t)を得ると、条件(2),(3),(4)を満たすランダムな3変数多項式p(x,y,t)を生成する(ST27)。ここでは、3変数多項式p(x,y,t)を次式のものとする。
p(x,y,t)=7xt+15xyt+7x+65xt+4xy+3y+5yt+5xy+43xy+3x+6xy+4
この2変数多項式p(x,y,t)は、条件(2),(3),(4)を満たしている。
暗号化部24は、以上の処理で得られた多項式m(t),既約多項式f(t),多項式p(x,y,t),q(x,y,t)と、公開鍵であるディオファンタス方程式X(x,y)=0とを用い、式(5)に基づいて、暗号文F(x,y,t)を計算し展開する(ST28)。
暗号文F(x,y,t)は、本実施形態の例において次式のようになる。
Figure 2006194990
暗号化部24は、この暗号文F(x,y,t)を(必要ならば予め定められたフォーマットに合わせて変形し)暗号文出力部29から出力することにより(ST29)、暗号化処理を終了する。
第1のバリエーションは、本実施形態の暗号化処理における式(5)を変形するだけで自然に成立する。
第2のバリエーションは、平文変換部23において、メッセージを本実施形態と同様の方法で整数mに展開し、多項式m(t)と既約多項式f(t)の上位次数の係数に埋め込み、既約多項式生成部25において、既約多項式f(t)の残りの次数をランダムに設定することにより、同様に成立する。
第4のバリエーションは、平文変換部23において、平文mを予め定められたハッシュ関数hを利用して式(8)のように変換し、新たな平文m’を作成する処理を付け加えればそのまま成り立つ。
(復号装置及び処理の流れ)
最後に本実施形態の復号装置の構成と処理の流れを図6に示すフローチャートに沿って図5に示す全体構成図を参照しながら示す。本実施形態の復号装置30は、暗号文入力部31、鍵入力部32、復号部33、整数解代入部34、多項式演算部35、因数分解部36、因子抽出部37、剰余演算部38、平文展開部39及び平文出力部40を備えており、全体として図6に示す動作を実行するように、復号部33により他の各部31,32,34〜40が制御されるものである。また、復号装置30は、図示しないメモリを有し、各部31〜40から入力データ、出力データ及び処理中のデータ等が適宜読出/書込可能となっている。以下、前述の暗号装置と同様、2変数の場合を例にとって具体的に説明する。
復号装置30は、暗号文入力部31から暗号文F(x,y,t)を取得し(ST31)、鍵入力部32から公開鍵X(x,y)と秘密鍵を取得することから(ST32)、処理を開始する。ここで秘密鍵とは2つの整数解であり、鍵生成のステップST3,ST4で得られた整数解S,Sを利用する。取得された暗号文と鍵情報は復号部33に送られ、復号処理が開始される。
復号部33は、整数解代入部34に暗号文F(x,y,t)と整数解Sを送信する。整数解代入部34は、整数解Sを暗号文F(x,y,t)に代入し、必要に応じて多項式演算部35を利用することにより、以下のような多項式h(t)を得る(ST33)。
Figure 2006194990
ここで、多項式演算部35は、多項式の加減乗除演算を行う。また同様に、整数解代入部34は、整数解SをF(x,y,t)に代入し、以下のような多項式h(t)を得る(ST34)。
Figure 2006194990
得られた代入結果h(t),h(t)は、整数解代入部34から復号部33に送出される。
復号部33は、代入結果h(t),h(t)を多項式演算部35に送信して引き算させ、その結果を因数分解部36に送信して因数分解させることにより(ST35)、式(9)に示すような因数分解結果を得ると、この因数分解結果をメモリ(図示せず)に保存する。
Figure 2006194990
(9)
復号部33は、因子抽出部37により、メモリ内の因数分解結果から最大次数の素因子を抽出して、既約多項式f(t)を決定する(ST36)。
復号部33は、既約多項式f(t)及び代入結果h(t)を剰余演算部38に送る。剰余演算部38は、代入結果h(t)を既約多項式f(t)で除し、剰余として多項式m(t)を計算し(ST37)、この多項式m(t)を整数mに変換し、この整数mを復号部33に送信する(ST38)。復号部33はこの整数mを平文mとして平文展開部39に送信する。
平文展開部39においてチェックサムを確認することにより平文の妥当性をチェックする(ST39)。ここで、チェックサムが正しくない場合は誤った暗号文が入力されたことを意味するので、エラーを出力し処理を終了する(ST40)。チェックサムが正しい場合は正しい復号が行われた可能性が極めて高くなるので、平文展開部39により平文mからメッセージを展開し(ST41)、得られたメッセージを平文出力部40から出力して終了する(ST42)。
また、勿論チェックサムの付いていない平文も少なくないため、チェックサムを付けない実現形態もあり得る。その場合はST38で得られた平文mを出力する。
いずれにしても、復号部33は、得られた平文mを平文展開部39に送信してメッセージに展開させ、このメッセージを平文出力部40から出力させ、復号処理を終了する。
第1のバリエーションは本実施形態の復号処理でも自明な変形によって成立する。
第2のバリエーションは、復号処理の途中で求めたf(t)を平文の一部として平文展開部39に送り、平文展開部39でm(t)とf(t)を合わせて平文を展開することにより本実施形態においても成立する。
第3のバリエーションは、そのアルゴリズムを図7に示した。全体構成図は図5である。まず、ステップST37に述べたように、復号部33は、最初のf(t)の候補に対して前述した復号処理と同様に剰余演算部38を利用してh(t)をf(t)で除し、剰余として平文多項式m(t)を求める(ST37−1)。次に、復号部33は前述同様に、剰余演算部38を利用してh(t)をf(t)で除し、剰余として平文多項式m(t)を得る(ST37−2)。
復号部33では、2つの多項式m(t),m(t)が等しいか否かをチェックする(ST37−3)。等しくない場合(ST37−3;NO)は、正しい暗号文でない旨を意味するため、エラーを出力して処理を終了する(ST40)。
等しい場合(ST37−3;YES)は、平文m(t)から復号処理と同様に平文展開部39で平文mを展開し(ST37−4,ST38)、平文展開部39においてチェックサムを確認することにより平文の妥当性をチェックする(ST39)。以下の処理は本実施形態と同様である。
第4のバリエーションは、平文展開部39においてまず、本実施形態と同様の手段で平文m’を展開し、展開されたm’に対して(予め定められたハッシュ関数hを利用して)式(8)を満たすことを確認することで実現できる。確認の結果、正しくない場合はエラーを出力し、正しい場合は得られたメッセージを平文出力部40に送信する。尚、第4のバリエーションは、例えば式(8)に基づく確認をチェックサムとして実施することにより、第3のバリエーションと共に利用することも(同様の手段により)可能である。
以上で、第1の実施形態における本発明の鍵生成装置、暗号装置、復号装置の具体的構成の説明を終了する。
上述したように本実施形態によれば、ディオファンタス方程式Xの2つの整数解S,Sを秘密鍵に用いており、一般的な解法アルゴリズムが存在しないディオファンタス方程式の整数解を求める問題に安全性の根拠をおく公開鍵暗号方式の暗号装置20,復号装置30又は鍵生成装置10を実現したので、量子計算機が出現しても安全性を確保でき、現在の計算機でも安全に実現可能であると共に、小電力環境での実現可能性がある公開鍵暗号方式を構成することができる。
(第2の実施形態)
次に、本発明の第2の実施形態について説明する。
本実施形態の公開鍵は、以下のディオファンタス方程式Xである。
ディオファンタス方程式:X(x1,…,xn)=0
秘密鍵は以下の整数解Sである。
ディオファンタス方程式Xの整数解:S:(c1,…,cn)
第2の実施形態は、第1の実施形態と比較すると、秘密鍵である整数解が1つであることが大きく異なる。第2の実施形態は、このため秘密鍵のサイズが小さくなることは言うまでもなく、後述するように鍵生成の自由度が増えるという効果がある。
(暗号化処理)
本実施形態における暗号化処理の概要を述べる。暗号処理は第1の実施形態とほぼ同じであるが、1つの暗号文F(x1,…,xn,t)を生成した第1の実施形態とは異なり、2つの暗号文F(x1,…,xn,t),F(x1,…,xn,t)を生成する。
具体的には、第2の実施形態では、共通のf(t)を用いて、第1の実施形態と同様の手段で相異なる2つのランダムな多項式の組(q(x1,…,xn,t),q(x1,…,xn,t))と(p(x1,…,xn,t),p(x1,…,xn,t))を生成して、以下の2つの暗号文F(x1,…,xn,t),F(x1,…,xn,t)を生成する。
(x1,…,xn,t)=m(t)+f(t)p(x1,…,xn,t)+X(x1,…,xn)q(x1,…,xn,t)
(x1,…,xn,t)=m(t)+f(t)p(x1,…,xn,t)+X(x1,…,xn)q(x1,…,xn,t)
ここで、多項式p(x1,…,xn,t),p(x1,…,xn,t)は条件(2)と条件(3)を満たすほか、(第1の実施形態と同じ理由により)条件(4)を満たす必要がある。
受信者は、暗号文F(x1,…,xn,t),F(x1,…,xn,t)を受けると、所有する秘密鍵Sを利用して次のように復号を行う。まず、整数解Sを暗号文F(x1,…,xn,t),F(x1,…,xn,t)に代入することにより第1の実施形態と同様の考え方で次の2式h,hを求める。
(t)=F(c1,…,cn,t)=m(t)+f(t)p(c1,…,cn,t)
(t)=F(c1,…,cn,t)=m(t)+f(t)p(c1,…,cn,t)
次に、2式を辺々引き算して次式h(t)−h(t)を計算する。
(t)−h(t)=f(t){p(c1,…,cn,t)−p(c1,…,cn,t)}
しかる後、計算結果h(t)−h(t)を因数分解して、最大次数の既約多項式をf(t)と定める。この後の処理は第1の実施形態と同じであるので、説明を省略する。
(鍵生成処理)
最後に本実施形態における鍵生成方法を説明する。本実施形態の鍵生成は第1の実施形態と同様にセクションSをランダムに選び、それに対応したディオファンタス方程式を構成することによって行う。
但し、第2の実施形態では第1の実施形態と異なり、1つの整数解を満たすように構成すれば良く、第1の実施形態よりも容易にしかも自由度の高い鍵が生成される。
ここではディオファンタス方程式のうち第1の実施形態でも例にあげた式(7)の形のディオファンタス方程式を例にとって鍵生成を示す。即ち、x=x,x=yとした2変数のディオファンタス方程式を考える。ここでa,…,aは係数であり整数である。尚、公開鍵暗号の公開鍵としてディオファンタス方程式を使う場合は式(7)のように定数項が入っていることが望ましい。何故なら定数項がない場合、自明な解(0,…,0)が存在してしまい、解読のために重大なヒントを与えることになるからである。まず定数項以外の係数a,a,aをランダムに生成する。次に整数解S=(c,c)をディオファンタス方程式X(x,y)=0に代入し、次式を得る。
+a +a+a=0
この式から定数項aを次のように得る。
=−a −a −a
鍵生成方法は、定数項を持つ全てのディオファンタス方程式に適用できるだけでなく、整数解への制約が全く無い。この点が第1の実施形態にない効果と言える。
また、第1の実施形態で述べた各バリエーションは本実施形態でも成立する。
<安全性の検討>
以下ではこのように構成した本実施形態の公開鍵暗号の安全性に関して考察する。基本的に第1の実施形態における安全性の検討がそのまま本実施形態の安全性の検討となる。第1の実施形態と異なるのは暗号文が2つあることであり、この部分の安全性に関して考察を行う。暗号文F(x1,…,xn,t),F(x1,…,xn,t)の引き算を行うと以下のようになる。
(x1,…,xn,t)−F(x1,…,xn,t)=f(t)((p(x1,…,xn,t)−p(x1,…,xn,t))−X(x1,…,xn)((q(x1,…,xn,t)−q(x1,…,xn,t))
この式では、多項式m(t)は消去されるもののp(x1,…,xn,t)≠p(x1,…,xn,t)かつq(x1,…,xn,t)≠q(x1,…,xn,t)であり、n変数多項式の因数分解が必ずしも一意的でないことから、その因子等からもほとんど情報が得られない。
(第2の実施形態の具体的な構成)
次に本実施形態の公開鍵暗号における鍵生成装置、暗号装置、復号装置の具体的な構成とそのアルゴリズムを2変数の場合を例にとり示す。本実施形態の鍵生成装置の構成と処理の流れを図8に示すフローチャートに沿って図12に示す全体構成図を参照しながら示す。また本実施形態では式(7)に示したディオファンタス方程式を前提とした構成例を示している。また、理解の助けとして具体的な数値や式を示すが、これはあくまでも理解を助ける簡明な例であって、実際に使われる十分な安全性を持つ暗号化とは(特に多項式の次数などの点で)必ずしも一致していない。
本実施形態の鍵生成装置10は、鍵生成処理開始の指令が外部装置等から制御部11に伝えられることで開始される。当該指令が制御部11に伝わると(ST51)、制御部11ではディオファンタス方程式決定部12にディオファンタス方程式の出力要請を行う。
ディオファンタス方程式決定部12では、式(7)に示したような,係数を変数としたディオファンタス方程式の形を決定し(ST52)、この方程式の形を制御部11に出力する。方程式の形の出力方法は、ステップST2で述べた通りである。
次に、制御部11は、ディオファンタス方程式を係数生成部18に送信する。
係数生成部18では、ディオファンタス方程式を受けると、このディオファンタス方程式に含まれる定数項以外の係数a,a,aをランダムに生成し(ST53)、得られた係数a(=23),a(=387),a(=38)を制御部11に送信する。
制御部11は、受信した係数a,a,aをディオファンタス方程式に設定して一旦、メモリ(図示せず)に保存した後、整数解Sの生成を整数解生成部13に要請する。整数解生成部13は、この要請により、2つのランダムな整数を求めることで整数解S=(c1,c2)=(1213,1873)をランダムに生成し(ST54)、得られた整数解S=(c1,c2)を制御部11に送信する。
制御部11は、受信した整数解S=(c1,c2)を一旦、メモリ(図示せず)に保存する。
しかる後、制御部11は、メモリ内の整数解S=(c1,c2)と係数a,a,aを設定済みのディオファンタス方程式とをディオファンタス方程式生成部16に送信する。ディオファンタス方程式生成部16は、この整数解S=(c,c)をディオファンタス方程式X(x,y)=0に代入し、定数項a(=−222363126905964496)を求める(ST55)。しかる後、ディオファンタス方程式生成部16は、この係数aを制御部11に送信する。
以上の操作で、式(10)及び式(11)に示すように、公開鍵であるディオファンタス方程式Xと秘密鍵である整数解Sとが得られる。
X(x,y):23x23+387y2+38x−222363126905964496
(10)
S:(c,c)=(1213,1873) (11)
(暗号装置及び処理の流れ)
次に本実施形態の暗号装置の構成と処理の流れを図9に示すフローチャートに沿って図3に示す全体構成図を参照しながら示す。本実施形態の暗号装置20は平文入力部21からメッセージを取得し、公開鍵入力部22から公開鍵X(x1,…,xn)と既約多項式の最大次数Lを取得することから処理を開始する。なお、公開鍵としては、鍵生成処理の例で述べたように、「ディオファンタス方程式」を利用し、送信者が取り決めた「既約多項式の最小次数L」を用いる。公開鍵の具体例は下記である。
ディオファンタス方程式X
X:23x+387y+38x−222363126905964496
更に、ここでは既約多項式の最小次数Lを5とする。
始めに、暗号装置20は、平文入力部21からメッセージが入力され(ST21)、公開鍵入力部22から公開鍵と既約多項式の最小次数が入力される(ST22)。入力された公開鍵と既約多項式の最小次数のうち、既約多項式f(t)の最小次数L(=5)が平文変換部23に送られる。
平文変換部23では、別途、平文入力部21から送信されたメッセージを、既約多項式のの最小次数Lよりも小さい次数の多項式に変換する(ST23)。変換のアルゴリズムは第1の実施形態に述べた通りである。ここでは、L=5なのでメッセージを4次の多項式m(t)に変換できたとする。
Figure 2006194990
平文変換部23では、多項式m(t)を暗号化部に送信する。一方、公開鍵入力部22は公開鍵を暗号化部24に送信する。
暗号化部24は、多項式m(t)と公開鍵及び既約多項式の最小次数Lを受信すると、既約多項式の最小次数Lを既約多項式生成部25に送信する(ST24)。
既約多項式生成部25は、前述同様に、次数Lの既約多項式f(t)をランダムに生成し(ST25)、得られた次数L(=5)の既約多項式f(t)を暗号化部24に返信する。
Figure 2006194990
暗号化部24は、既約多項式f(t)を受信すると、公開鍵であるディオファンタス方程式Xを多項式生成部26に送信する。多項式生成部26は、ディオファンタス方程式Xを受けると、3変数のランダムな多項式q1(x,y,t),q2(x,y,t)を生成し(ST26”)、この多項式q1(x,y,t),q2(x,y,t)を暗号化部24に返信する。ここで、多項式q1(x,y,t),q2(x,y,t)は簡単のため、次式のものとする。
q1(x,y,t)=13xt+378y+34xt+93
q2(x,y,t)=26xyt+52yxt+29
暗号化部24はこの3変数多項式q1(x,y,t),q2(x,y,t)を得ると、多項式生成部に条件(2),(3),(4)を満たす相異なる3変数多項式p1(x,y,t),p2(x,y,t)を生成させる(ST27”)。ここでは、3変数多項式p1(x,y,t),p2(x,y,t)を次式のものとする。
(x,y,t)=4x442+5x46t+7x333+3x25+34x23t+6x2yt+3xy2+86y4t+54y2+5t+4
(x,y,t)=23x542+4x3t+43x354+4x23t+8x22+34x3yt+5xy24+21x2y+7y2+7t3+5
この各項は式(2)(3)(4)に示された次数の関係式を満たしている。
暗号化部24は、以上の処理で得られた多項式m(t),既約多項式f(t),多項式p(x,y,t),q(x,y,t)と、公開鍵であるディオファンタス方程式X(x,y)とを用い、式(5)に基づいて、暗号文F(x,y,t)を計算し展開する(ST28”−1)。なお、ここでは式(5)はp(x,y,t)をp(x,y,t)に、q(x,y,t)をq(x,y,t)にそれぞれ読み替えて適用する。暗号文F(x,y,t)は、本実施形態の例において次式のようになる。
Figure 2006194990
暗号化部24は、同様に多項式m(t),既約多項式f(t),多項式p(x,y,t),q(x,y,t)と、公開鍵であるディオファンタス方程式X(x,y)とを利用して暗号文F(x,y,t)を計算し展開する(ST28”−2)。暗号文F(x,y,t)は、本実施形態の例において次式のようになる。
Figure 2006194990
暗号化部24は、これら暗号文F(x,y,t),F(x,y,t)を(必要ならば予め定められたフォーマットに合わせて変形し)暗号文出力部29から出力することにより、暗号化処理は終了する。
第1の実施形態におけるバリエーションのうち、第3のバリエーション以外は第2の実施形態の暗号装置20でも同様の構成で成立する。
(復号装置及び処理の流れ)
最後に本実施形態の復号装置の構成と処理の流れを図10に示すフローチャートに沿って図5に示す全体構成図を参照しながら示す。本実施形態の復号装置30は暗号文入力部31から暗号文F(x,y,t),F(x,y,t)を取得し(ST31)、鍵入力部22から公開鍵X(x,y)と、秘密鍵Sを取得することから(ST32)、処理を開始する。ここで秘密鍵とは1つの整数解であり、鍵生成で示した式(11)で定義される整数解Sを利用する。取得された暗号文と鍵情報は復号部33に送られ、復号処理が開始される。
復号部33は、整数解代入部34に暗号文F(x,y,t)と整数解Sを送信する。整数解代入部34は、整数解Sを暗号文F(x,y,t)に代入し、必要に応じて多項式演算部35を利用することにより、以下のような多項式h(t)を得る(ST33”)。
Figure 2006194990
ここで、多項式演算部35は多項式の加減乗除演算を行う。また同様に、整数解代入部34は、整数解SをF(x,y,t)に代入し、以下のような多項式h(t)を得る(ST34”)。
Figure 2006194990
得られた代入結果h(t),h(t)は、整数解代入部34から復号部33に送出される。
復号部33は、代入結果h(t),h(t)を多項式演算部35に送信して引き算させ、その結果を因数分解部36に送信して因数分解することにより(ST35)、式(12)に示すような因数分解結果を得ると、因数分解結果をメモリ内に保存する。
Figure 2006194990
(12)
復号部33は、因子抽出部37を用い、メモリ内の因数分解結果から最大次数の既約多項式として、既約多項式f(t)を決定する(ST36)。
復号部33は、既約多項式f(t),代入結果h(t)を剰余演算部38に送る。剰余演算部38は、代入結果h(t)を既約多項式f(t)で除し、剰余として多項式m(t)を計算し(ST37)、この平文mを復号部33に送信する。
復号部33では、前述同様に多項式mを平文展開部39に送信して、多項式m(t)から平文mを抽出するとともに平文mからメッセージに展開し(ST38〜ST41)、平文出力部40から出力することによって(ST42)、復号処理を終了する。
第1〜第4のバリエーションは第1の実施形態と同様の実現方法で、本実施形態でも実施可能である。尚、第3のバリエーションに関しては図11にそのアルゴリズムを示した。
以上で、第2の実施形態における本発明の鍵生成装置、暗号装置、復号装置の具体的構成の説明を終了する。
上述したように本実施形態によれば、第1の実施形態とは異なり、1つの整数解Sを秘密鍵に用いているが、第1の実施形態と同様に、ディオファンタス方程式の整数解を求める問題に安全性の根拠をおく公開鍵暗号方式の暗号装置20,復号装置30又は鍵生成装置10を実現したので、第1の実施形態と同様に、量子計算機が出現しても安全性を確保でき、現在の計算機でも安全に実現可能であると共に、小電力環境での実現可能性がある公開鍵暗号方式を構成することができる。
また、第2の実施形態によれば、第1の実施形態とは異なり、1つの整数解Sを満たすように構成すれば良いので、第1の実施形態よりも容易にしかも自由度の高い鍵を生成することができる。
なお、上記各実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスクなど)、光ディスク(CD−ROM、DVDなど)、光磁気ディスク(MO)、半導体メモリなどの記憶媒体に格納して頒布することもできる。
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているOS(オペレーティングシステム)や、データベース管理ソフト、ネットワークソフト等のMW(ミドルウェア)等が本実施形態を実現するための各処理の一部を実行しても良い。
さらに、本発明における記憶媒体は、コンピュータと独立した媒体に限らず、LANやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
また、記憶媒体は1つに限らず、複数の媒体から本実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
尚、本発明におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、本実施形態における各処理を実行するものであって、パソコン等の1つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
また、本発明におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
なお、本願発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
本発明の第1の実施形態における鍵生成装置の全体構成図である。 同実施形態における鍵生成装置の処理の流れを説明するためのフローチャートである。 同実施形態における暗号装置の全体構成図である。 同実施形態における暗号装置の処理の流れを説明するためのフローチャートである。 同実施形態における復号装置の全体構成図である。 同実施形態における復号装置の処理の流れを説明するためのフローチャートである。 同実施形態における鍵生成装置の第1のバリエーションの処理の流れを説明するためのフローチャートである。 本発明の第2の実施形態における鍵生成装置の処理の流れを説明するためのフローチャートである。 同実施形態における暗号装置の処理の流れを説明するためのフローチャートである。 同実施形態における復号装置の処理の流れを説明するためのフローチャートである。 同実施形態における復号装置の第3のバリエーションの処理の流れを説明するためのフローチャートである。 同実施形態における鍵生成装置の全体構成図である。
符号の説明
10…鍵生成装置、11…制御部、12…ディオファンタス方程式決定部、13…整数解生成部、14…整数生成部、15…行列演算部、16…ディオファンタス方程式生成部、17…鍵出力部、18…係数生成部、20…暗号装置、21…平文入力部、22…公開鍵入力部、23…平文変換部、24…暗号化部、25…既約多項式生成部、26…多項式生成部、27…暗号文出力部、30…復号装置、31…暗号文入力部、32…鍵入力部、33…復号部、34…整数解代入部、35…多項式演算部、36…因数分解部、37…因子抽出部、38…剰余演算部、39…平文展開部、40…平文出力部。

Claims (30)

  1. 復号用の秘密鍵がディオファンタス方程式X(x1,…,xn)=0に対応する2つの整数解のとき、公開鍵であるディオファンタス方程式X(x1,…,xn)と既約多項式の最小次数Lに基づいて、メッセージを暗号化するための暗号装置であって、
    前記メッセージを整数mに展開する展開手段と、
    前記整数mを次数(L−1)次以下の多項式m(t)に埋め込む手段と、
    ランダムな2つの多項式p(x1,…,xn,t),q(x1,…,xn,t)を生成する多項式生成手段と、
    次数L以上のランダムな既約多項式f(t)を生成する既約多項式生成手段と、
    前記多項式m(t)に対し、前記各多項式p(x1,…,xn,t),q(x1,…,xn,t)と既約多項式f(t)と公開鍵であるディオファンタス方程式X(x1,…,xn)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行い、前記多項式m(t)から暗号文F=Epk(m,p,q,f,X)を生成する暗号化手段と
    を備えたことを特徴とした暗号装置。
  2. 復号用の秘密鍵がディオファンタス方程式X(x1,…,xn)=0に対応する2つの整数解のとき、公開鍵であるディオファンタス方程式X(x1,…,xn)と既約多項式の最小次数Lに基づいて、メッセージを暗号化するための暗号装置であって、
    前記メッセージを整数mに展開する展開手段と、
    前記整数mを次数(L−1)次以下の1変数多項式m(t)と次数L以上の既約多項式f(t)の候補の一部の係数とに分担して埋め込む手段と、
    ランダムな2つの多項式p(x1,…,xn,t),q(x1,…,xn,t)を生成する多項式生成手段と、
    前記次数L以上の既約多項式f(t)の候補の各係数のうち、前記整数mが埋め込まれていない係数をランダムな値に設定し、前記既約多項式f(t)を生成する既約多項式生成手段と、
    前記多項式m(t)に対し、前記各多項式p(x1,…,xn,t),q(x1,…,xn,t)と既約多項式f(t)と公開鍵であるディオファンタス方程式X(x1,…,xn)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行い、前記多項式m(t)から暗号文F=Epk(m,p,q,f,X)を生成する暗号化手段と
    を備えたことを特徴とした暗号装置。
  3. 復号用の秘密鍵がディオファンタス方程式X(x1,…,xn)=0に対応する1つの整数解のとき、公開鍵であるディオファンタス方程式X(x1,…,xn) と既約多項式の最小次数Lとに基づいて、メッセージmを暗号化するための暗号装置であって、
    前記メッセージを整数mに展開する展開手段と、
    前記整数mを次数(L−1)次以下の多項式m(t)に埋め込む手段と、
    少なくとも一方が相異なる2つのランダムな多項式の組p(x1,…,xn、t),p(x1,…,xn,t),q(x1,…,xn,t),q(x1,…,xn,t)を生成する多項式生成手段と、
    次数L以上のランダムな既約多項式を生成する既約多項式生成手段と、
    前記多項式m(t)に対し、前記各多項式p(x1,…,xn,t),p(x1,…,xn,t),q(x1,…,xn,t),q(x1,…,xn,t)と既約多項式f(t)と公開鍵であるディオファンタス方程式X(x1,…,xn)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行い、前記整数mから暗号文F=Epk(m,p,q,f,X)及びF=Epk(m,p,q,f,X)を生成する暗号化手段と
    を備えたことを特徴とした暗号装置。
  4. 復号用の秘密鍵がディオファンタス方程式X(x1,…,xn)=0に対応する1つの整数解のとき、公開鍵であるディオファンタス方程式X(x1,…,xn) と既約多項式の最小次数Lとに基づいて、メッセージmを暗号化するための暗号装置であって、
    前記メッセージを整数mに展開する展開手段と、
    前記整数mを次数(L−1)次以下の多項式m(t)と次数L以上の既約多項式f(t)の候補の一部の係数とに分担して埋め込む手段と、
    少なくとも一方が相異なる2つのランダムな多項式の組p(x1,…,xn、t),p(x1,…,xn,t),q(x1,…,xn,t),q(x1,…,xn,t)を生成する多項式生成手段と、
    前記次数L以上の既約多項式f(t)の候補の各係数のうち、前記整数mが埋め込まれていない係数をランダムな値に設定し、前記既約多項式f(t)を生成する既約多項式生成手段と、
    前記多項式m(t)に対し、前記各多項式p(x1,…,xn,t),p(x1,…,xn,t),q(x1,…,xn,t),q(x1,…,xn,t)と既約多項式f(t)と公開鍵であるディオファンタス方程式X(x1,…,xn)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行い、前記多項式m(t)から暗号文F=Epk(m,p,q,f,X)及びF=Epk(m,p,q,f,X)を生成する暗号化手段と
    を備えたことを特徴とした暗号装置。
  5. メッセージが埋め込まれてなる次数(L−1)以下の多項式m(t)に対し、ランダムな2つの多項式p(x1,…,xn,t),q(x1,…,xn,t)と既約多項式f(t)と公開鍵であるディオファンタス方程式X(x1,…,xn)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、前記多項式m(t)から生成された暗号文F=Epk(m,p,q,f,X)が入力されたとき、
    予め保持する復号用の秘密鍵がディオファンタス方程式X(x1,…,xn)=0に対応する2つの整数解S,Sに基づいて、前記暗号文Fからメッセージを復号するための復号装置であって、
    前記入力された暗号文Fに対し、前記整数解S,Sを個別に代入して2つの多項式h(t),h(t)を生成する整数解代入手段と、
    前記代入により得られた一方の多項式h(t)から他方の多項式h(t)を減算し、減算結果(h(t)−h(t))を得る多項式減算手段と、
    前記減算結果(h(t)−h(t))を因数分解する因数分解手段と、
    前記素因数分解結果から最大次数の既約多項式f(t)を抽出する因子抽出手段と、
    前記代入により得られた多項式h(t)又はh(t)を前記既約多項式f(t)で除算し、剰余として前記メッセージに対応する多項式m(t)を求める剰余演算手段と
    を備えたことを特徴とする復号装置。
  6. メッセージが埋め込まれてなる次数(L−1)以下の多項式m(t)と次数L以上の既約多項式f(t)に対し、ランダムな2つの多項式p(x1,…,xn,t),q(x1,…,xn,t)と公開鍵であるディオファンタス方程式X(x1,…,xn)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、前記多項式m(t)とf(t)から生成された暗号文F=Epk(m,p,q,f,X)が入力されたとき、
    予め保持する復号用の秘密鍵がディオファンタス方程式X(x1,…,xn)=0に対応する2つの整数解S,Sに基づいて、前記暗号文Fからメッセージを復号するための復号装置であって、
    前記入力された暗号文Fに対し、前記整数解S,Sを個別に代入して2つの多項式h(t),h(t)を生成する整数解代入手段と、
    前記代入により得られた一方の多項式h(t)から他方の多項式h(t)を減算し、減算結果(h(t)−h(t))を得る多項式減算手段と、
    前記減算結果(h(t)−h(t))を因数分解する因数分解手段と、
    前記素因数分解結果から最大次数の既約多項式f(t)を抽出する因子抽出手段と、
    前記代入により得られた多項式h(t)又はh(t)を前記既約多項式f(t)で除算し、剰余として前記メッセージに対応する多項式m(t)を求める剰余演算手段と
    を備えたことを特徴とする復号装置。
  7. メッセージが埋め込まれてなる次数(L−1)以下の多項式m(t)に対し、少なくとも一方が相異なる2つのランダムな多項式の組p(x1,…,xn,t),p(x1,…,xn,t),q(x1,…,xn,t),q(x1,…,xn,t)と既約多項式f(t)と公開鍵であるディオファンタス方程式X(x1,…,xn)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、前記多項式m(t)から生成された暗号文F=Epk(m,p,q,f,X)及びF=Epk(m,p,q,f,X)が入力されたとき、
    予め保持する復号用の秘密鍵がディオファンタス方程式X(x1,…,xn)=0に対応する1つの整数解Sに基づいて、前記暗号文F,Fからメッセージを復号するための復号装置であって、
    前記入力された暗号文F,Fに対し、前記整数解Sを個別に代入して2つの多項式h(t),h(t)を生成する整数解代入手段と、
    前記代入により得られた一方の多項式h(t)から他方の多項式h(t)を減算し、減算結果(h(t)−h(t))を得る多項式減算手段と、
    前記減算結果(h(t)−h(t))を因数分解する因数分解手段と、
    前記因数分解結果から最大次数の既約多項式f(t)を抽出する因子抽出手段と、
    前記代入により得られた多項式h(t)又はh(t)を前記既約多項式f(t)で除算し、剰余として前記メッセージに対応する多項式m(t)を求める剰余演算手段と
    を備えたことを特徴とする復号装置。
  8. メッセージが埋め込まれてなる次数(L−1)以下の多項式m(t)と次数L以上の既約多項式f(t)に対し、少なくとも一方が相異なる2つのランダムな多項式の組p(x1,…,xn,t),p(x1,…,xn,t),q(x1,…,xn,t),q(x1,…,xn,t)と公開鍵であるディオファンタス方程式X(x1,…,xn)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、前記多項式m(t)とf(t)から生成された暗号文F=Epk(m,p,q,f,X)及びF=Epk(m,p,q,f,X)が入力されたとき、
    予め保持する復号用の秘密鍵がディオファンタス方程式X(x1,…,xn)=0に対応する1つの整数解Sに基づいて、前記暗号文F,Fからメッセージを復号するための復号装置であって、
    前記入力された暗号文F,Fに対し、前記整数解Sを個別に代入して2つの多項式h(t),h(t)を生成する整数解代入手段と、
    前記代入により得られた一方の多項式h(t)から他方の多項式h(t)を減算し、減算結果(h(t)−h(t))を得る多項式減算手段と、
    前記減算結果(h(t)−h(t))を因数分解する因数分解手段と、
    前記因数分解結果から最大次数の既約多項式f(t)を抽出する因子抽出手段と、
    前記代入により得られた多項式h(t)又はh(t)を前記既約多項式f(t)で除算し、剰余として前記メッセージに対応する多項式m(t)を求める剰余演算手段と
    を備えたことを特徴とする復号装置。
  9. メッセージが埋め込まれてなる次数(L−1)以下の多項式m(t)を暗号化するための公開鍵であるディオファンタス方程式X(x1,…,xn)と、前記暗号化された多項式m(t)を復号するための秘密鍵であるディオファンタス方程式X(x1,…,xn)=0に対応する2つの整数解S,Sとを生成するための鍵生成装置であって、
    複数個の係数をそれぞれ変数としたディオファンタス方程式を決定するディオファンタス方程式決定手段と、
    2つの整数解S=(c1,…,cn),S=(g1,…,gn)をランダムに生成する整数解生成手段と、
    前記2つの整数解S,Sを前記係数を変数としたディオファンタス方程式に代入して得られた連立方程式を行列表現した際の係数行列を求め、前記係数行列に掃きだし法を施すことによって、前記各係数のうちの幾つかの係数を自由変数である他の係数で表した基本解を求める行列演算手段と、
    前記基本解の自由変数にランダムな値を代入することにより、整数の要素及び/又は有理数の要素で各係数を表す第1係数ベクトルを求め、この第1係数ベクトルの各要素の分母の最小公倍数を当該各要素にかけることによって全て整数の要素で各係数を表す第2係数ベクトルを求めることでディオファンタス方程式を生成するディオファンタス方程式生成手段と
    を備えたことを特徴とする鍵生成装置。
  10. メッセージが埋め込まれてなる次数(L−1)以下の多項式m(t)を暗号化するための公開鍵であるディオファンタス方程式X(x1,…,xn)と、前記暗号化された多項式m(t)を復号するための秘密鍵であるディオファンタス方程式X(x1,…,xn)=0に対応する整数解Sとを生成するための鍵生成装置であって、
    係数を変数とした変数項及び定数項からなるディオファンタス方程式を決定するディオファンタス方程式決定手段と、
    整数解Sをランダムに生成する整数解生成手段と、
    ディオファンタス方程式の変数項の係数をランダムに決定する係数生成手段と、
    前記生成された整数解Sと前記決定された係数から前記生成されたディオファンタス方程式の定数項を求めるディオファンタス方程式生成手段と
    を備えたことを特徴とする鍵生成装置。
  11. 復号用の秘密鍵がディオファンタス方程式X(x1,…,xn)=0に対応する2つの整数解のとき、公開鍵であるディオファンタス方程式X(x1,…,xn)と既約多項式の最小次数Lに基づいて、メッセージを暗号化するための暗号装置に用いられるプログラムであって、
    前記暗号装置のコンピュータを、
    前記メッセージを整数mに展開する展開手段、
    前記整数mを次数(L−1)次以下の多項式m(t)に埋め込む手段、
    ランダムな2つの多項式p(x1,…,xn,t),q(x1,…,xn,t)を生成する多項式生成手段、
    次数L以上のランダムな既約多項式候補f’(t)を生成してメモリに保存し、前記メモリ内の既約多項式候補f’(t)を既約判定することにより、既約多項式f(t)を生成する既約多項式生成手段、
    前記多項式m(t)に対し、前記各多項式p(x1,…,xn,t),q(x1,…,xn,t)と既約多項式f(t)と公開鍵であるディオファンタス方程式X(x1,…,xn)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行い、前記多項式m(t)から暗号文F=Epk(m,p,q,f,X)を生成する暗号化手段、
    として機能させるためのプログラム。
  12. 復号用の秘密鍵がディオファンタス方程式X(x1,…,xn)=0に対応する2つの整数解のとき、公開鍵であるディオファンタス方程式X(x1,…,xn)と既約多項式の最小次数Lに基づいて、メッセージを暗号化するための暗号装置に用いられるプログラムであって、
    前記暗号装置のコンピュータを、
    前記メッセージを整数mに展開する展開手段、
    前記整数mを次数(L−1)次以下の多項式m(t)と次数L以上の既約多項式f(t)の候補の一部の係数とに分担して埋め込む手段、
    ランダムな2つの多項式p(x1,…,xn,t),q(x1,…,xn,t)を生成する多項式生成手段、
    前記次数L以上の既約多項式候補f’(t)の係数のうち、前記メッセージが埋め込まれていない係数をランダムな値に設定し、前記既約多項式f’(t)を生成してメモリに保存し、前記メモリ内の既約多項式候補f’(t)を既約判定することにより、既約多項式f(t)を生成する既約多項式生成手段、
    前記多項式m(t)に対し、前記各多項式p(x1,…,xn,t),q(x1,…,xn,t)と既約多項式fと公開鍵であるディオファンタス方程式X(x1,…,xn)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行い、前記多項式m(t)から暗号文F=Epk(m,p,q,f,X)を生成する暗号化手段、
    として機能させるためのプログラム。
  13. 復号用の秘密鍵がディオファンタス方程式X(x1,…,xn)=0に対応する1つの整数解のとき、公開鍵であるディオファンタス方程式X(x1,…,xn)と既約多項式の最小次数Lに基づいて、メッセージmを暗号化するための暗号装置に用いられるプログラムであって、
    前記暗号装置のコンピュータを、
    前記メッセージを整数mに展開する展開手段、
    前記整数mを次数(L−1)次以下の多項式m(t)に埋め込む手段、
    少なくとも一方が相異なる2つのランダムな多項式の組p(x1,…,xn,t),p(x1,…,xn,t),q(x1,…,xn,t),q(x1,…,xn,t)を生成する多項式生成手段、
    次数L以上のランダムな既約多項式候補f’(t)を生成してメモリに保存し、前記メモリ内の既約多項式候補f’(t)を既約判定することにより、既約多項式f(t)を生成する既約多項式生成手段、
    前記多項式m(t)に対し、前記各多項式p(x1,…,xn,t),p(x1,…,xn,t),q(x1,…,xn,t),q(x1,…,xn,t)と既約多項式f(t)と公開鍵であるディオファンタス方程式X(x1,…,xn)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行い、前記多項式m(t)から暗号文F=Epk(m,p,q,f,X)及びF=Epk(m,p,q,f,X)を生成する暗号化手段、
    として機能させるためのプログラム。
  14. 復号用の秘密鍵がディオファンタス方程式X(x1,…,xn)=0に対応する1つの整数解のとき、公開鍵であるディオファンタス方程式X(x1,…,xn)と既約多項式の最小次数Lに基づいて、メッセージmを暗号化するための暗号装置に用いられるプログラムであって、
    前記暗号装置のコンピュータを、
    前記メッセージを整数mに展開する展開手段、
    前記整数mを次数(L−1)次以下の1変数多項式m(t)と次数L以上の既約多項式f(t)の候補の一部の係数とに分担して埋め込む手段、
    少なくとも一方が相異なる2つのランダムな多項式の組p(x1,…,xn,t),p(x1,…,xn,t),q(x1,…,xn,t),q(x1,…,xn,t)を生成する多項式生成手段、
    前記次数L以上の既約多項式候補f’(t)の係数のうち、前記メッセージが埋め込まれていない係数をランダムな値に設定し、前記既約多項式f‘(t)を生成してメモリに保存し、前記メモリ内の既約多項式候補f’(t)を既約判定することにより、既約多項式f(t)を生成する既約多項式生成手段、
    前記多項式m(t)に対し、前記各多項式p(x1,…,xn,t),p(x1,…,xn,t),q(x1,…,xn,t),q(x1,…,xn,t)と既約多項式f(t)と公開鍵であるディオファンタス方程式X(x1,…,xn)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行い、前記多項式m(t)から暗号文F=Epk(m,p,q,f,X)及びF=Epk(m,p,q,f,X)を生成する暗号化手段、
    として機能させるためのプログラム。
  15. メッセージが埋め込まれてなる次数(L−1)以下の多項式m(t)に対し、ランダムな2つの多項式p(x1,…,xn,t),q(x1,…,xn,t)と公開鍵であるディオファンタス方程式X(x1,…,xn)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、前記多項式m(t)から生成された暗号文F=Epk(m,p,q,f,X)が入力されたとき、
    予め保持する復号用の秘密鍵がディオファンタス方程式X(x1,…,xn)=0に対応する2つの整数解S,Sに基づいて、前記暗号文Fからメッセージを復号するための復号装置に用いられるプログラムであって、
    前記復号装置のコンピュータを、
    前記入力された暗号文Fに対し、前記整数解S,Sを個別に代入して2つの多項式h(t),h(t)を生成する整数解代入手段、
    前記代入により得られた一方の多項式h(t)から他方の多項式h(t)を減算し、減算結果(h(t)−h(t))を得る多項式減算手段、
    前記減算結果(h(t)−h(t))を因数分解し、得られた因数分解結果をメモリに保存する因数分解手段、
    前記メモリ内の因数分解結果から最大次数の既約多項式f(t)を抽出する素因子抽出手段、
    前記代入により得られた多項式h(t)又はh(t)を前記素既約多項式f(t)で除算し、剰余として前記メッセージに対応する多項式m(t)を求める剰余演算手段、
    として機能させるためのプログラム。
  16. メッセージが埋め込まれてなる次数(L−1)以下の多項式m(t)と次数L以上の既約多項式f(t)に対し、ランダムな2つの多項式p(x1,…,xn,t),q(x1,…,xn,t)と公開鍵であるディオファンタス方程式X(x1,…,xn)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、前記多項式m(t)とf(t)から生成された暗号文F=Epk(m,p,q,f,X)が入力されたとき、
    予め保持する復号用の秘密鍵がディオファンタス方程式X(x1,…,xn)=0に対応する2つの整数解S,Sに基づいて、前記暗号文Fからメッセージを復号するための復号装置に用いられるプログラムであって、
    前記復号装置のコンピュータを、
    前記入力された暗号文Fに対し、前記整数解S,Sを個別に代入して2つの多項式h(t),h(t)を生成する整数解代入手段、
    前記代入により得られた一方の多項式h(t)から他方の多項式h(t)を減算し、減算結果(h(t)−h(t))を得る多項式減算手段、
    前記減算結果(h(t)−h(t))を因数分解し、得られた因数分解結果をメモリに保存する因数分解手段、
    前記メモリ内の因数分解結果から最大次数の既約多項式f(t)を抽出する素因子抽出手段、
    前記代入により得られた多項式h(t)又はh(t)を前記素既約多項式f(t)で除算し、剰余として前記メッセージに対応する多項式m(t)を求める剰余演算手段、
    として機能させるためのプログラム。
  17. メッセージが埋め込まれてなる次数(L−1)以下の多項式m(t)に対し、少なくとも一方が相異なる2つのランダムな多項式の組p(x1,…,xn,t),p(x1,…,xn,t),q(x1,…,xn,t),q(x1,…,xn,t)と既約多項式fと公開鍵であるディオファンタス方程式X(x1,…,xn)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、前記多項式m(t)から生成された暗号文F=Epk(m,p,q,f,X)及びF=Epk(m,p,q,f,X)が入力されたとき、
    予め保持する復号用の秘密鍵がディオファンタス方程式X(x1,…,xn)=0に対応する1つの整数解Sに基づいて、前記暗号文F,Fからメッセージを復号するための復号装置に用いられるプログラムであって、
    前記復号装置のコンピュータを、
    前記入力された暗号文F,Fに対し、前記整数解Sを個別に代入して2つの多項式h(t),h(t)を生成する整数解代入手段、
    前記代入により得られた一方の多項式h(t)から他方の多項式h(t)を減算し、減算結果(h(t)−h(t))を得る多項式減算手段、
    前記減算結果(h(t)−h(t))を因数分解し、得られた因数分解結果をメモリに保存する因数分解手段、
    前記メモリ内の因数分解結果から最大次数の既約多項式f(t)を抽出する因子抽出手段、
    前記代入により得られた多項式h(t)又はh(t)を前記既約多項式f(t)で除算し、剰余として前記メッセージに対応する多項式m(t)を求める剰余演算手段、
    として機能させるためのプログラム。
  18. メッセージが埋め込まれてなる次数(L−1)以下の多項式m(t)と次数L以上の既約多項式f(t)に対し、少なくとも一方が相異なる2つのランダムな多項式の組p(x1,…,xn,t),p(x1,…,xn,t),q(x1,…,xn,t),q(x1,…,xn,t)と既約多項式fと公開鍵であるディオファンタス方程式X(x1,…,xn)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、前記多項式m(t)とf(t)から生成された暗号文F=Epk(m,p,q,f,X)及びF=Epk(m,p,q,f,X)が入力されたとき、
    予め保持する復号用の秘密鍵がディオファンタス方程式X(x1,…,xn)=0に対応する1つの整数解Sに基づいて、前記暗号文F,Fからメッセージを復号するための復号装置に用いられるプログラムであって、
    前記復号装置のコンピュータを、
    前記入力された暗号文F,Fに対し、前記整数解Sを個別に代入して2つの多項式h(t),h(t)を生成する整数解代入手段、
    前記代入により得られた一方の多項式h(t)から他方の多項式h(t)を減算し、減算結果(h(t)−h(t))を得る多項式減算手段、
    前記減算結果(h(t)−h(t))を因数分解し、得られた因数分解結果をメモリに保存する因数分解手段、
    前記メモリ内の因数分解結果から最大次数の既約多項式f(t)を抽出する因子抽出手段、
    前記代入により得られた多項式h(t)又はh(t)を前記既約多項式f(t)で除算し、剰余として前記メッセージに対応する多項式m(t)を求める剰余演算手段、
    として機能させるためのプログラム。
  19. メッセージが埋め込まれてなる次数(L−1)以下の多項式m(t)を暗号化するための公開鍵であるディオファンタス方程式X(x1,…,xn)と、前記暗号化された多項式m(t)を復号するための秘密鍵であるディオファンタス方程式X(x1,…,xn)=0に対応する2つの整数解S,Sとを生成するための鍵生成装置に用いられるプログラムであって、
    前記鍵生成装置のコンピュータを、
    複数個の係数をそれぞれ変数としたディオファンタス方程式を決定するディオファンタス方程式決定手段、
    2つの整数解S=(c1,…,cn),S=(g1,…,gn)をランダムに生成する整数解生成手段、
    前記2つの整数解S,Sを前記係数を変数としたディオファンタス方程式に代入して得られた連立方程式を行列表現した際の係数行列を求め、前記係数行列に掃きだし法を施すことによって、前記各係数のうちの幾つかの係数を自由変数である他の係数で表した基本解を求める行列演算手段、
    前記基本解の自由変数にランダムな値を代入することにより、整数の要素及び/又は有理数の要素で各係数を表す第1係数ベクトルを求め、この第1係数ベクトルの各要素の分母の最小公倍数を当該各要素にかけることによって全て整数の要素で各係数を表す第2係数ベクトルを求めることでディオファンタス方程式を生成するディオファンタス方程式生成手段、
    として機能させるためのプログラム。
  20. メッセージが埋め込まれてなる次数(L−1)以下の多項式m(t)を暗号化するための公開鍵であるディオファンタス方程式X(x1,…,xn)と、前記暗号化された多項式m(t)を復号するための秘密鍵であるディオファンタス方程式X(x1,…,xn)=0に対応する整数解Sとを生成するための鍵生成装置に用いられるプログラムであって、
    前記鍵生成装置のコンピュータを、
    係数を変数とした変数項及び定数項からなるディオファンタス方程式を決定するディオファンタス方程式決定手段、
    整数解Sをランダムに生成する整数解生成手段、
    ディオファンタス方程式の変数項の係数をランダムに決定する係数生成手段、
    前記生成された整数解Sと前記決定された係数から前記生成されたディオファンタス方程式の定数項を求めるディオファンタス方程式生成手段、
    として機能させるためのプログラム。
  21. 復号用の秘密鍵がディオファンタス方程式X(x1,…,xn)=0に対応する2つの整数解のとき、公開鍵であるディオファンタス方程式X(x1,…,xn)と既約多項式の最小次数Lに基づいて、メッセージを暗号化するための暗号装置が実行する暗号方法であって、
    前記メッセージを整数mに展開する展開工程と、
    前記整数mを次数(L−1)次以下の多項式m(t)に埋め込む埋め込み工程と、
    ランダムな2つの多項式p(x1,…,xn,t),q(x1,…,xn,t)を生成する多項式生成工程と、
    次数L以上のランダムな既約多項式f(t)を生成する既約多項式生成工程と、
    前記多項式m(t)に対し、前記各多項式p(x1,…,xn,t),q(x1,…,xn,t)と既約多項式f(t)と公開鍵であるディオファンタス方程式X(x1,…,xn)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行い、前記多項式m(t)から暗号文F=Epk(m,p,q,f,X)を生成する暗号化工程と
    を備えたことを特徴とした暗号方法。
  22. 復号用の秘密鍵がディオファンタス方程式X(x1,…,xn)=0に対応する2つの整数解のとき、公開鍵であるディオファンタス方程式X(x1,…,xn)と既約多項式の最小次数Lに基づいて、メッセージを暗号化するための暗号装置が実行する暗号方法であって、
    前記メッセージを整数mに展開する展開工程と、
    前記整数mを次数(L−1)次以下の1変数多項式m(t)と次数L以上の既約多項式f(t)の候補の一部の係数とに分担して埋め込む埋め込み工程と、
    ランダムな2つの多項式p(x1,…,xn,t),q(x1,…,xn,t)を生成する多項式生成工程と、
    前記次数L以上の既約多項式f(t)の候補の各係数のうち、前記メッセージmが埋め込まれていない係数をランダムな値に設定し、前記既約多項式f(t)を生成する既約多項式生成工程と、
    前記多項式m(t)に対し、前記各多項式p(x1,…,xn,t),q(x1,…,xn,t)と既約多項式f(t)と公開鍵であるディオファンタス方程式X(x1,…,xn)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行い、前記多項式m(t)から暗号文F=Epk(m,p,q,f,X)を生成する暗号化工程と
    を備えたことを特徴とした暗号方法。
  23. 復号用の秘密鍵がディオファンタス方程式X(x1,…,xn)=0に対応する1つの整数解のとき、公開鍵であるディオファンタス方程式X(x1,…,xn)と既約多項式の最小次数Lに基づいて、メッセージmを暗号化するための暗号装置が実行する暗号方法であって、
    前記メッセージを整数mに展開する展開工程と、
    前記整数を次数(L−1)以下の多項式m(t)に埋め込む埋め込み工程と、
    少なくとも一方が相異なる2つのランダムな多項式の組p(x1,…,xn,t),p(x1,…,xn,t),q(x1,…,xn,t),q(x1,…,xn,t)を生成する多項式生成工程と、
    次数L以上のランダムな既約多項式f(t)を生成する既約多項式生成工程と、
    前記多項式m(t)に対し、前記各多項式p(x1,…,xn,t),p(x1,…,xn,t),q(x1,…,xn,t),q(x1,…,xn,t)と既約多項式f(t)と公開鍵であるディオファンタス方程式X(x1,…,xn)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行い、前記多項式m(t)から暗号文F=Epk(m,p,q,f,X)及びF=Epk(m,p,q,f,X)を生成する暗号化工程と
    を備えたことを特徴とした暗号方法。
  24. 復号用の秘密鍵がディオファンタス方程式X(x1,…,xn)=0に対応する1つの整数解のとき、公開鍵であるディオファンタス方程式X(x1,…,xn)と既約多項式の最小次数Lに基づいて、メッセージmを暗号化するための暗号装置が実行する暗号方法であって、
    前記メッセージを整数mに展開する展開工程と、
    前記整数mを次数(L−1)次以下の1変数多項式m(t)と次数L以上の既約多項式f(t)の候補の一部の係数とに分担して埋め込む埋め込み工程と、
    少なくとも一方が相異なる2つのランダムな多項式の組p(x1,…,xn,t),p(x1,…,xn,t),q(x1,…,xn,t),q(x1,…,xn,t)を生成する多項式生成工程と、
    前記次数L以上の既約多項式f(t)の候補の各係数のうち、前記整数mが埋め込まれていない係数をランダムな値に設定し、前記既約多項式f(t)を生成する既約多項式生成工程と、
    前記多項式m(t)に対し、前記各多項式p(x1,…,xn,t),p(x1,…,xn,t),q(x1,…,xn,t),q(x1,…,xn,t)と既約多項式f(t)と公開鍵であるディオファンタス方程式X(x1,…,xn)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行い、前記多項式m(t)から暗号文F=Epk(m,p,q,f,X)及びF=Epk(m,p,q,f,X)を生成する暗号化工程と
    を備えたことを特徴とした暗号方法。
  25. メッセージが埋め込まれてなる次数(L−1)以下の多項式m(t)に対し、ランダムな2つの多項式p(x1,…,xn,t),q(x1,…,xn,t)と既約多項式f(t)と公開鍵であるディオファンタス方程式X(x1,…,xn)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、前記多項式m(t)から生成された暗号文F=Epk(m,p,q,f,X)が入力されたとき、
    予め保持する復号用の秘密鍵がディオファンタス方程式X(x1,…,xn)=0に対応する2つの整数解S,Sに基づいて、前記暗号文Fからメッセージを復号するための復号装置が実行する復号方法であって、
    前記入力された暗号文Fに対し、前記整数解S,Sを個別に代入して2つの多項式h(t),h(t)を生成する整数解代入工程と、
    前記代入により得られた一方の多項式h(t)から他方の多項式h(t)を減算し、減算結果(h(t)−h(t))を得る多項式減算工程と、
    前記減算結果(h(t)−h(t))を因数分解する因数分解工程と、
    前記因数分解結果から最大次数の既約多項式f(t)を抽出する素因子抽出工程と、
    前記代入により得られた多項式h(t)又はh(t)を前記既約多項式f(t)で除算し、剰余として前記メッセージに対応する多項式m(t)を求める剰余演算工程と
    を備えたことを特徴とする復号方法。
  26. メッセージが埋め込まれてなる次数(L−1)以下の多項式m(t)と次数L以上の既約多項式f(t)に対し、ランダムな2つの多項式p(x1,…,xn,t),q(x1,…,xn,t)と公開鍵であるディオファンタス方程式X(x1,…,xn)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、前記多項式m(t)から生成された暗号文F=Epk(m,p,q,f,X)が入力されたとき、
    予め保持する復号用の秘密鍵がディオファンタス方程式X(x1,…,xn)=0に対応する2つの整数解S,Sに基づいて、前記暗号文Fからメッセージを復号するための復号装置が実行する復号方法であって、
    前記入力された暗号文Fに対し、前記整数解S,Sを個別に代入して2つの多項式h(t),h(t)を生成する整数解代入工程と、
    前記代入により得られた一方の多項式h(t)から他方の多項式h(t)を減算し、減算結果(h(t)−h(t))を得る多項式減算工程と、
    前記減算結果(h(t)−h(t))を因数分解する因数分解工程と、
    前記因数分解結果から最大次数の既約多項式f(t)を抽出する素因子抽出工程と、
    前記代入により得られた多項式h(t)又はh(t)を前記既約多項式f(t)で除算し、剰余として前記メッセージに対応する多項式m(t)を求める剰余演算工程と
    を備えたことを特徴とする復号方法。
  27. メッセージが埋め込まれてなる次数(L−1)以下の多項式m(t)に対し、少なくとも一方が相異なる2つのランダムな多項式の組p(x1,…,xn,t),p(x1,…,xn,t),q(x1,…,xn,t),q(x1,…,xn,t)と次数L以上の既約多項式f(t)と公開鍵であるディオファンタス方程式X(x1,…,xn)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、前記多項式m(t)から生成された暗号文F=Epk(m,p,q,f,X)及びF=Epk(m,p,q,f,X)が入力されたとき、
    予め保持する復号用の秘密鍵がディオファンタス方程式X(x1,…,xn)=0に対応する1つの整数解Sに基づいて、前記暗号文F,Fからメッセージを復号するための復号装置が実行する復号方法であって、
    前記入力された暗号文F,Fに対し、前記整数解Sを個別に代入して2つの多項式h(t),h(t)を生成する整数解代入工程と、
    前記代入により得られた一方の多項式h(t)から他方の多項式h(t)を減算し、減算結果(h(t)−h(t))を得る多項式減算工程と、
    前記減算結果(h(t)−h(t))を因数分解する因数分解工程と、
    前記因数分解結果から最大次数の既約多項式f(t)を抽出する因子抽出工程と、
    前記代入により得られた多項式h(t)又はh(t)を前記既約多項式f(t)で除算し、剰余として前記メッセージに対応する多項式m(t)を求める剰余演算工程と
    を備えたことを特徴とする復号方法。
  28. メッセージが埋め込まれてなる次数(L−1)以下の多項式m(t)と次数L以上の既約多項式f(t)に対し、少なくとも一方が相異なる2つのランダムな多項式の組p(x1,…,xn,t),p(x1,…,xn,t),q(x1,…,xn,t),q(x1,…,xn,t)と公開鍵であるディオファンタス方程式X(x1,…,xn)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、前記多項式m(t)とf(t)から生成された暗号文F=Epk(m,p,q,f,X)及びF=Epk(m,p,q,f,X)が入力されたとき、
    予め保持する復号用の秘密鍵がディオファンタス方程式X(x1,…,xn)=0に対応する1つの整数解Sに基づいて、前記暗号文F,Fからメッセージを復号するための復号装置が実行する復号方法であって、
    前記入力された暗号文F,Fに対し、前記整数解Sを個別に代入して2つの多項式h(t),h(t)を生成する整数解代入工程と、
    前記代入により得られた一方の多項式h(t)から他方の多項式h(t)を減算し、減算結果(h(t)−h(t))を得る多項式減算工程と、
    前記減算結果(h(t)−h(t))を因数分解する因数分解工程と、
    前記因数分解結果から最大次数の既約多項式fを抽出する因子抽出工程と、
    前記代入により得られた多項式h(t)又はh(t)を前記既約多項式f(t)で除算し、剰余として前記メッセージに対応する多項式m(t)を求める剰余演算工程と
    を備えたことを特徴とする復号方法。
  29. メッセージが埋め込まれてなる次数(L−1)以下の多項式m(t)を暗号化するための公開鍵であるディオファンタス方程式X(x1,…,xn)と、前記暗号化された多項式m(t)を復号するための秘密鍵であるディオファンタス方程式X(x1,…,xn)=0に対応する2つの整数解S,Sとを生成するための鍵生成装置が実行する鍵生成方法であって、
    複数個の係数をそれぞれ変数としたディオファンタス方程式を決定するディオファンタス方程式決定工程と、
    2つの整数解S=(c1,…,cn),S=(g1,…,gn)をランダムに生成する整数解生成工程と、
    前記2つの整数解S,Sを前記係数を変数としたディオファンタス方程式に代入して得られた連立方程式を行列表現した際の係数行列を求め、前記係数行列に掃きだし法を施すことによって、前記各係数のうちの幾つかの係数を自由変数である他の係数で表した基本解を求める行列演算工程と、
    前記基本解の自由変数にランダムな値を代入することにより、整数の要素及び/又は有理数の要素で各係数を表す第1係数ベクトルを求め、この第1係数ベクトルの各要素の分母の最小公倍数を当該各要素にかけることによって全て整数の要素で各係数を表す第2係数ベクトルを求めることでディオファンタス方程式を生成するディオファンタス方程式生成工程と
    を備えたことを特徴とする鍵生成方法。
  30. メッセージが埋め込まれてなる次数(L−1)以下の多項式m(t)を暗号化するための公開鍵であるディオファンタス方程式X(x1,…,xn)と、前記暗号化された多項式m(t)を復号するための秘密鍵であるディオファンタス方程式X(x1,…,xn)=0に対応する整数解Sとを生成するための鍵生成装置が実行する鍵生成方法であって、
    係数を変数とした変数項及び定数項からなるディオファンタス方程式を決定するディオファンタス方程式決定工程と、
    整数解Sをランダムに生成する整数解生成工程と、
    ディオファンタス方程式の変数項の係数をランダムに決定する係数生成工程と、
    前記生成された整数解Sと前記決定された係数から前記生成されたディオファンタス方程式の定数項を求めるディオファンタス方程式生成工程と
    を備えたことを特徴とする鍵生成方法。
JP2005004220A 2005-01-11 2005-01-11 暗号装置、復号装置、鍵生成装置、プログラム及び方法 Expired - Fee Related JP4384056B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005004220A JP4384056B2 (ja) 2005-01-11 2005-01-11 暗号装置、復号装置、鍵生成装置、プログラム及び方法
US11/220,641 US20060251247A1 (en) 2005-01-11 2005-09-08 Encryption apparatus, decryption apparatus, key generation apparatus, program and method therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005004220A JP4384056B2 (ja) 2005-01-11 2005-01-11 暗号装置、復号装置、鍵生成装置、プログラム及び方法

Publications (2)

Publication Number Publication Date
JP2006194990A true JP2006194990A (ja) 2006-07-27
JP4384056B2 JP4384056B2 (ja) 2009-12-16

Family

ID=36801140

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005004220A Expired - Fee Related JP4384056B2 (ja) 2005-01-11 2005-01-11 暗号装置、復号装置、鍵生成装置、プログラム及び方法

Country Status (2)

Country Link
US (1) US20060251247A1 (ja)
JP (1) JP4384056B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7194303B1 (ja) 2021-09-09 2022-12-21 エアーズ インベストメント ホールディングス プライベート リミテッド ディオファントス方程式及び人工知能が関与する暗号、復号、及び鍵生成の装置並びに方法

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4664850B2 (ja) * 2006-03-30 2011-04-06 株式会社東芝 鍵生成装置、プログラム及び方法
JP4197710B2 (ja) * 2006-07-19 2008-12-17 株式会社東芝 暗号装置、復号装置、プログラム及び方法
JP2009116183A (ja) * 2007-11-08 2009-05-28 Toshiba Corp 暗号装置、復号装置、鍵生成装置及びプログラム
JP2010204466A (ja) 2009-03-04 2010-09-16 Toshiba Corp 暗号装置、復号装置、鍵生成装置及びプログラム
CN102136911A (zh) * 2011-03-11 2011-07-27 西京学院 一种电子公文的加密方法
WO2017079652A1 (en) * 2015-11-05 2017-05-11 Pulsifer Allen Cryptographic transactions system
US10133603B2 (en) 2017-02-14 2018-11-20 Bank Of America Corporation Computerized system for real-time resource transfer verification and tracking
US10447472B2 (en) * 2017-02-21 2019-10-15 Bank Of America Corporation Block computing for information silo
US10454892B2 (en) 2017-02-21 2019-10-22 Bank Of America Corporation Determining security features for external quantum-level computing processing
US10243976B2 (en) 2017-02-24 2019-03-26 Bank Of America Corporation Information securities resource propagation for attack prevention
US10489726B2 (en) 2017-02-27 2019-11-26 Bank Of America Corporation Lineage identification and tracking of resource inception, use, and current location
US10440051B2 (en) 2017-03-03 2019-10-08 Bank Of America Corporation Enhanced detection of polymorphic malicious content within an entity
US10284496B2 (en) 2017-03-03 2019-05-07 Bank Of America Corporation Computerized system for providing resource distribution channels based on predicting future resource distributions
US10437991B2 (en) 2017-03-06 2019-10-08 Bank Of America Corporation Distractional variable identification for authentication of resource distribution
US10270594B2 (en) 2017-03-06 2019-04-23 Bank Of America Corporation Enhanced polymorphic quantum enabled firewall
US10412082B2 (en) 2017-03-09 2019-09-10 Bank Of America Corporation Multi-variable composition at channel for multi-faceted authentication
US10440052B2 (en) 2017-03-17 2019-10-08 Bank Of America Corporation Real-time linear identification of resource distribution breach
US11120356B2 (en) 2017-03-17 2021-09-14 Bank Of America Corporation Morphing federated model for real-time prevention of resource abuse
US11055776B2 (en) 2017-03-23 2021-07-06 Bank Of America Corporation Multi-disciplinary comprehensive real-time trading signal within a designated time frame
US10476854B2 (en) 2017-04-20 2019-11-12 Bank Of America Corporation Quantum key distribution logon widget
CN108737098A (zh) * 2018-06-27 2018-11-02 山西师范大学 密钥生成方法、信息加解密方法、装置、介质及电子设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7194303B1 (ja) 2021-09-09 2022-12-21 エアーズ インベストメント ホールディングス プライベート リミテッド ディオファントス方程式及び人工知能が関与する暗号、復号、及び鍵生成の装置並びに方法

Also Published As

Publication number Publication date
US20060251247A1 (en) 2006-11-09
JP4384056B2 (ja) 2009-12-16

Similar Documents

Publication Publication Date Title
JP4384056B2 (ja) 暗号装置、復号装置、鍵生成装置、プログラム及び方法
JP4575283B2 (ja) 暗号装置、復号装置、プログラム及び方法
US7711113B2 (en) ID-based signature, encryption system and encryption method
US7688973B2 (en) Encryption apparatus, decryption apparatus, key generation apparatus, program, and method
JP4809598B2 (ja) 暗号システムの設計におけるアイソジャニの使用
EP1710952B1 (en) Cryptographic Applications of the Cartier Pairing
US7469048B2 (en) Methods for point compression for jacobians of hyperelliptic curves
JP4197710B2 (ja) 暗号装置、復号装置、プログラム及び方法
KR20050087815A (ko) 키공유 시스템, 공유키 생성장치 및 공유키 복원장치
JP4776906B2 (ja) 署名生成方法及び情報処理装置
JP2001024880A (ja) 情報処理装置およびその方法、並びに、情報流通システム
JP2009175197A (ja) 暗号装置、復号装置、鍵生成装置及びプログラム
JP2009116183A (ja) 暗号装置、復号装置、鍵生成装置及びプログラム
JP2010049213A (ja) 暗号化装置、復号装置、暗号通信システム、方法及びプログラム
JP2010049212A (ja) 復号装置、復号方法、復号プログラム、暗号化装置、暗号化方法および暗号化プログラム
JP5354994B2 (ja) 代数的トーラスを用いたデータ圧縮処理を行う装置およびプログラム
JP5300373B2 (ja) 代数的トーラスを用いたデータ圧縮処理を行う装置およびプログラム
Anand et al. Real-time symmetric cryptography using quaternion julia set
JP2002023626A (ja) 公開鍵暗号方法および公開鍵暗号を用いた通信システム
JP4086419B2 (ja) 情報処理装置およびその方法
JP2010049214A (ja) 暗号化装置、復号装置、暗号文検証装置、暗号化方法、復号方法及びプログラム
JPH1155244A (ja) 鍵回復方法および装置
JP2001222218A (ja) 暗号化装置、方法、復号装置、方法、暗号システム及びプログラムを記憶した記憶媒体
JP2004201292A (ja) 鍵共有システム、共有鍵生成装置及び共有鍵復元装置
Wang et al. A biometric signcryption scheme without bilinear pairing

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090707

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090812

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

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

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

Free format text: PAYMENT UNTIL: 20121002

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20121002

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20131002

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees