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

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

Info

Publication number
JP7273742B2
JP7273742B2 JP2020019948A JP2020019948A JP7273742B2 JP 7273742 B2 JP7273742 B2 JP 7273742B2 JP 2020019948 A JP2020019948 A JP 2020019948A JP 2020019948 A JP2020019948 A JP 2020019948A JP 7273742 B2 JP7273742 B2 JP 7273742B2
Authority
JP
Japan
Prior art keywords
polynomial
plaintext
unit
encryption
equation
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.)
Active
Application number
JP2020019948A
Other languages
English (en)
Other versions
JP2021124679A (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 JP2020019948A priority Critical patent/JP7273742B2/ja
Priority to US17/004,211 priority patent/US11288985B2/en
Publication of JP2021124679A publication Critical patent/JP2021124679A/ja
Application granted granted Critical
Publication of JP7273742B2 publication Critical patent/JP7273742B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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
    • 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/12Details relating to cryptographic hardware or logic circuitry

Landscapes

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

Description

本発明の実施形態は暗号化装置、復号装置、暗号方法、復号方法、暗号化プログラム及び復号プログラムに関する。
電子メールを始めとする多くの情報がネットワークを行き交うことにより、人々がコミュニケーションを行なうネットワーク社会において、暗号技術は情報の機密性や真正性を守る手段として広く活用されている。一方で、現在広く利用されているRSA暗号や楕円曲線暗号であっても量子計算機が出現すれば解読される危険に晒されている。
特開2010―204466号公報
本発明が解決しようとする課題は、量子計算機が出現しても安全性が確保できる暗号化装置、復号装置、暗号方法、復号方法、暗号化プログラム及び復号プログラムを提供することである。
実施形態の暗号化装置は、公開鍵取得部と平文埋め込み部と多項式演算部と第1の多項式生成部と第2の多項式生成部と暗号化部とを備える。公開鍵取得部は、環F[t]/g(t)(F[t]は、有限体F上の1変数多項式環、g(t)は法多項式)の元を係数に持つ多変数不定方程式X(x,・・・,x)と、識別多項式f(t)とを含む公開鍵を取得する。平文埋め込み部は、メッセージmを、前記環F[t]/g(t)の元のうち次数が制限された多項式を係数に持つ複数個の平文多項式因子m(x,・・・,x)(i=1,・・・,k)の係数として分散して埋め込む。多項式演算部は、前記平文多項式因子m(x,・・・,x)(i=1,・・・,k)を掛け合わせた平文多項式M(x,・・・,x)を生成する。第1の多項式生成部は、前記環F[t]/g(t)の元を係数に持つランダム多項式r(x,・・・,x)をランダムに生成する。第2の多項式生成部は、前記環F[t]/g(t)の元のうち次数が制限された多項式を係数に持つノイズ多項式e(x,・・・,x)をランダムに生成する。暗号化部は、前記平文多項式M(x,・・・,x)に対し、前記識別多項式f(t)と,前記ランダム多項式r(x,・・・,x)と,前記ノイズ多項式e(x,・・・,x)と、前記多変数不定方程式X(x,・・・,x)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、暗号文c(x,・・・,x)=Epk(M,f,r,e;X)を生成する。
実施形態の暗号化装置の機能構成の例を示す図。 実施形態の暗号化方法の例を示すフローチャート。 実施形態の復号装置の機能構成の例を示す図。 実施形態の復号方法の例を示すフローチャート。 実施形態の鍵生成装置の機能構成の例を示す図。 実施形態の鍵生成方法の例を示すフローチャート。 実施形態の次数削減処理(ステップS45の詳細)の例を示すフローチャート。 実施形態の変形例の暗号化方法の例を示すフローチャート。 実施形態の変形例の復号方法の例を示すフローチャート。 実施形態の変形例の復号方法の例を示すフローチャート。 実施形態の変形例の復号方法の例を示すフローチャート。 線形代数攻撃における変数の個数と式の個数の比較例1を示す図。 線形代数攻撃における変数の個数と式の個数の比較例2を示す図。 実施形態の暗号化装置、復号装置及び鍵生成装置のハードウェア構成の例を示す図。
以下に添付図面を参照して、暗号化装置、復号装置、暗号方法、復号方法、暗号化プログラム及び復号プログラムの実施形態を詳細に説明する。
暗号技術は大きく共通鍵暗号技術と公開鍵暗号技術に分けることができる。共通鍵暗号はデータの攪拌アルゴリズムに基づいた暗号方式で、高速に暗号化/復号ができる一方で、予め共通の鍵を持った2者間でしか秘密通信や認証通信ができない。公開鍵暗号は数学的なアルゴリズムに基づいた暗号方式で、共通鍵暗号ほど暗号化/復号が高速でないが、事前の鍵共有を必要としない。公開鍵暗号は、通信の際は送信相手が公開している公開鍵を利用して秘密通信を実現し、送信者の秘密鍵を利用してデジタル署名を施すことで(成りすましを防ぐ)認証通信が可能となるという特徴がある。
このため共通鍵暗号は主に有料デジタル放送のように受信後リアルタイムで復号されなければならない情報の暗号化に利用され、その復号鍵は別途限定受信システムと呼ばれる鍵配信システムを用いて視聴契約者だけに配信する方法が採用されている。一方、インターネットに開設されているオンラインサイトでは顧客情報(クレジットカード番号や住所など)を盗聴から守るために暗号化を行う必要があるが、その暗号鍵は予め交付しておくことが必ずしも可能でないため、公開鍵暗号が用いられることが多い。
代表的な公開鍵暗号にはRSA暗号と楕円曲線暗号がある。RSA暗号は素因数分解問題の困難性が安全性の根拠となっており、冪乗剰余演算が暗号化演算として用いられている。楕円曲線暗号は楕円曲線上の離散対数問題の困難性が安全性の根拠となっており、楕円曲線上の点演算が暗号化演算に用いられている。これらの公開鍵暗号は特定の鍵(公開鍵)に関する解読法は提案されているものの、一般的な解読法は知られていないため、安全性に関する重大な問題は、後に述べる量子計算機による解読法を除き、現在までのところ見つかっていない。
この他の公開鍵暗号には(NP問題として知られている)ナップサック問題の困難性に安全性の根拠をおいたナップサック暗号、体の拡大理論を利用して構成され、連立方程式の求解問題に安全性の根拠をおいた多次多変数暗号などがある。しかし、ナップサック暗号に関しては既にほとんど全ての実現形態において解読法が知られており、安全性はかなり疑問であると言わざるを得ない。
多次多変数暗号に関しては有力な攻撃方法が知られている一方で知られている解読法が通用しない実現形態も存在するため、安全性に関してはかなり損なわれているが、決定的なものとはなっていない。しかし、知られている解読法を避けるために必要な鍵サイズが大きくなっており、問題視されはじめている。
一方で、現在広く利用されているRSA暗号と楕円曲線暗号であっても量子計算機が出現すれば解読される危険に晒されている。量子計算機とは量子力学で知られているエンタングルメントという物理現象を利用して、(現在の計算機とは違った原理に基づいて)超並列計算を行わせることができる計算機である。量子計算機は、現在までのところ実験レベルでしか動作が確認されていない仮想の計算機であるが、実現に向けた研究開発が進められている。この量子計算機を用いて1994年にShorは素因数分解や離散対数問題を効率的に解くアルゴリズムが構成できることを示した。即ち、量子計算機が実現すれば素因数分解に基づくRSA暗号や、(楕円曲線上の)離散対数問題に基づく楕円曲線暗号は解読できることになる。
このような状況の下、量子計算機が実現されてもなお安全である可能性を秘めた公開鍵暗号の研究が近年行われるようになってきた。現時点でも実現可能な公開鍵暗号で量子計算機でも解読が難しいとされているものに格子暗号がある。格子暗号は格子という離散的なn次元ベクトル空間(線形空間)の中で原点以外の点の中で最も原点に近い点を求める問題(最短ベクトル問題)を安全性の根拠にしている公開鍵暗号である。
最短ベクトル問題はNP困難な問題ではあるが、線形問題であるため、小さなサイズの問題は容易に解けてしまう。そこで、安全性を実現するための次元数が大きくなり、公開鍵や秘密鍵といった鍵サイズが大きくなり、特にローエンドデバイスへの適用が危ぶまれている。更に、公開鍵暗号は共通鍵暗号と比較して、回路規模が大きく、処理時間も掛かるため、モバイル端末などの小電力環境では実現できないか実現しても処理時間が掛かるという問題があった。このため、小電力環境でも実現できる公開鍵暗号が求められている。
一般に公開鍵暗号は(素因数分解問題や離散対数問題などの)計算困難な問題を見出し、(秘密鍵を知らずに)暗号文を解読しようとする場合、当該計算困難な問題を解くことと同等になるように構成する。しかし、逆に計算困難な問題を1つ定めたとしても、必ずその問題を安全性の根拠とするような公開鍵暗号が容易に構成できる訳ではない。なぜなら、計算が困難すぎる問題に安全性の根拠をおくと鍵を生成する問題も困難になり、構成ができない。一方で問題を鍵生成が可能となる程度に容易とすると、解読も容易になってしまう。
従って、公開鍵暗号を構成するには計算困難な問題を見つけるとともに、鍵生成できる程には容易だが、(生成した秘密鍵を知らずに)解読できる程には容易でないという絶妙なバランスを持つ問題に作り変えるという創造性が必要であり、この部分の構成が難しいために現在まで数えるほどの公開鍵暗号しか提案されてこなかった。そのような中で、量子計算機による計算でも効率的に解読できない可能性があり、小電力環境でも高速に処理できることが期待される公開鍵暗号に代数曲面を用いた公開鍵暗号(特許文献1)が提案されている。
特許文献1の公開鍵暗号は、秘密鍵を代数曲面X(x,y,t)に対応する2つのセクションとし、公開鍵を代数曲面X(x,y,t)とし、多項式生成手段と暗号化手段とを備える。多項式生成手段は、平文mを平文多項式m(x,y,t)に埋め込む処理と、3変数x,y,tのランダムな多項式h(x,y,t),s(x,y,t),s(x,y,t),r(x,y,t),r(x,y,t)を生成する処理とを行う。暗号化手段は、各多項式と定義式X(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、平文多項式m(x,y,t)から2つの暗号文c=Epk(m,s,r,h,X),c=Epk(m,s,r,h,X)を生成する。特許文献1の公開鍵暗号は、暗号文に非線形性はあるものの、暗号文が2つあり、かつノイズ項がなかったため、解読された。
以下、実施形態では、このような現状に鑑み、量子計算機が出現しても安全性が確保できる可能性を秘め、脆弱性を解消できる公開鍵暗号について説明する。具体的には、秘密を非線形な多項式に隠すことにより、1つの暗号文に非線形構造を持たせ、かつノイズを付加することにより、脆弱性を解消できる公開鍵暗号を構成する。
[代数の説明]
はじめに実施形態で利用する代数を定義する。まず、整数の集合をZで表し、自然数qでの整数Zの剰余類をZと記す。Zは剰余類なので、通常、
={[0],[1],・・・,[q-1]}
と記す。ここで、Zの各元は以下のような性質を満たすことから、加減乗算が定義される。
[a]+[b]=[a+b]
[a]-[b]=[a-b]
[a]・[b]=[a・b]
このように加減乗算が定義でき、結合法則が成り立つとともに、加法の単位元0を含み且つ0以外の元xに対して足し合わせると0となる逆元[-x]を有する集合を環という。
除算に関しては、[b]・[x]=[x]・[b]=[1]を満たす元[x]が存在する[b]についてのみ定義でき、このような元[x]が存在するとき、[x]を[b]の逆元といい[b-1]とかく。即ち、逆元が存在する[b]について除算[a]/[b]は
[b]・[b-1]=[1]
を満たす逆元[b-1]を[a]に掛ける([a]・[b-1])ことにより計算される。
の元[b]に逆元[b-1]が存在するための必要十分条件はGCD(b,q)=1である。即ち、Zの元bはbとqが互いに素となるとき、かつ、その時に限り逆元[b-1]を持つ。例えば、q=5としたとき、b=3は、3と5が互いに素であることから、[3-1]=[2]となる。しかし、q=6とした場合はGCD(3,6)=3となり、互いに素にならず、逆元が存在しないことから、除法は実現できない。
さて、[0]はqで割ったときの余りが0となる集合を表している。明示的に書けば
[0]={・・・,-2q,-q,0,q,2q,・・・}
を意味する。Zに演算を定義するに際しては、集合[0]の要素のどの元で計算しても答えは一致することから、簡単のために集合[0]に含まれる1つの要素(代表元)で代表させて計算することを考える。この代表元は(その性格から)この集合に含まれている元であれば何でも良いのではあるが、実施形態では簡単のため、0で代表させる。同様に、[1]を1、[2]を2のように最小の正整数で代表させ、Zを{0,1,・・・,q-1}で代表させることとする。
ここで、qを素数とすると、0以外の全ての代表元はqと互いに素となり、除法が定義できる。即ち、qを素数とするとZにおいて加減乗除が定義できる。このように可換環であり、0以外の元が乗法に関して逆元を持つ集合を体という。特にqを素数にしたときのZのように有限個の元からなる体を有限体という。有限体はその元の数が素数か素数の冪となるものしかなく、前者を素体と呼ぶ。ここで述べたZは素体である。
次に、多項式に関わる記法と定義を示す。整数Zを係数とする一変数多項式の集合をZ[t]と記載する。ここでtは多項式の変数である。また、剰余環Zを係数とする多項式の集合をZ[t]と記載する。ここで、容易に分かるようにZ[t],Z[t]はともに加減乗算が可能である。しかし、多項式の除算は定数項のみからなる多項式以外は逆元が存在しないため成立しない。
次に多項式環Z[t]を多項式t-1で割った剰余類を考える。例えばn=3,q=5とするとtが1と合同(剰余類の中では同じ元)になるため、t+2t+4t+2≡2t+4t+3のように次数がn-1以下の元として表現できる。一般には(tが1と合同となるため)n-1次以下の項のみで代表される剰余類が出来上がる。t-1のような剰余をとる1変数多項式を法多項式という。
即ち、法多項式t-1の下での加減算は
(t+3t+4)+(3t+3t+2)=4t+t+1
(t+3t+4)-(3t+3t+2)=3t+2
となり、乗算は通常のZ[t]の乗算を実行した上で、tと1の合同を反映するため、
(t+3t+4)・(3t+3t+2)=3t+12t+23t+18t+8
=3t+2t+3t+3t+3
=3t+t
のように計算される。また、乗算と加算(或いは減算)を組み合わせることにより、
(t+3t+4)・(3t+3t+2)+(4t+3t+1)
=(3t+t)+(4t+3t+1)
=2t+4t+1
のように計算ができる。このような集合をZ[t]/(t-1)とかき、Rq,nと略記する。Rq,nは環となるが、元によっては除算も定義できる(即ち、Rq,nの元f(t)に逆元が存在する)場合があり、その必要十分条件はGCD(f(t),t-1)=1である。
例えば、R5,3(=Z[t]/(t-1))の場合、t+t+2はt-1と互いに素になり、拡張ユークリッド互除法により、
(t+2t+3)-1=2t+4
と計算できる。即ち、(t+2t+3)・(2t+4)=1により、2t+4がt+2t+3の逆元であることが確認できる。一方で、t-1はt-1と共通因子t-1を持つため、逆元を持たない。
ここで、法多項式g(t)がF上既約多項式だとすると、Rq,nに含まれる0以外の元に逆元が計算でき、体となる。このような体を有限体Fの拡大体といい、pの要素を持つ有限体となる。また、元の有限体Fはpの要素を持ち、素体と呼ばれる。
実施形態では、代数として、環Rp,n及び環Rp,n上の2変数多項式環Rp,n[x,y]、有限体F、並びに、F上の1変数多項式環F[t]を主に利用する。尚、多項式の係数として環Rp,nの部分集合を下記式(1)により定義する。
Figure 0007273742000001
尚、Rp,d自体では環とはならないこと、およびRp,nは実質、下記式(2)となり、実質的な次数はn-1であることには注意を要する。
Figure 0007273742000002
[2変数多項式の記法]
次に、2変数多項式に関する用語と記号を定義する。まず、環R上の2変数多項式を下記式(3)により記載する。
Figure 0007273742000003
ここで、τi,jは環Rの元である。集合Γξは多項式ξ(x,y)に含まれる非零の単項式のx及びyの指数の組(i,j)の集合で、2変数多項式ξ(x,y)の項集合と呼ぶ。
たとえば、下記式(4)のZ上の多項式の項集合は、下記式(5)となる。
Figure 0007273742000004
Figure 0007273742000005
ここで、Γξの要素数は2変数多項式ξ(x,y)の単項式の数と一致する。また以下では,2変数多項式であることが明らかな場合、ξ(x,y)を単にξと書くことがある。
2つの項集合Γξ,Γηの積Γξηを下記式(6)のように定義する。
Figure 0007273742000006
これは、多項式ξ(x,y)η(x,y)の項集合を意味する。項集合Γが与えられたとき、この項集合を持つ環R上の2変数多項式の集合を下記式(7)により定義し、下記式(7)の左辺の記号により環R上の2変数多項式の集合を示す。
Figure 0007273742000007
尚、係数環Rが明確な時には、上記式(7)の左辺に記載の/Rを省略する。
[不定方程式とその求解問題]
不定方程式は変数の数が(方程式に含まれる)式の数よりも多い方程式と定義できる。不定方程式はその束縛条件が少ない一方で解の自由度が大きいため、解を持てば複数(場合によっては無数)となることが多い(これが「不定」の意味するところである。)。実際、整数係数の不定方程式の実数解(或いは複素数解)は無数に存在し、その幾つかを近似解として求めることは容易である。一方で、整数係数の不定方程式の整数解や有限体上の不定方程式の(有限体上の)解など離散的な集合に解を持つ方程式については、通常このような手法は使えない。そこで、何らかの理論的な絞り込みが必要になるが、そのような絞り込みを行っても、一般的には有限回の手段では解の存在、非存在を判定することができないことが知られている(非可解問題)。
実施形態で提案する不定方程式暗号は1変数多項式環F[t]上定義された不定方程式X(x,y)=0の求解問題も非可解問題の1つであることが証明されており、以下のように定義される。
定義1(一変数多項式環F[t]上の不定方程式の求解問題)
1変数多項式環F[t]上定義された不定方程式X(x,y)=0が与えられた時、F[t]上の解u(t),u(t)を求める問題を一変数多項式環F[t]上の不定方程式の求解問題という。
この問題は一般的な解法アルゴリズムが存在しないことが証明されている非可解問題に属する。
以下の実施形態では、不定方程式暗号の鍵生成アルゴリズムと暗復号アルゴリズムを示す。本方式において平文は平文多項式と呼ぶF[t]上の2変数多項式m(x,y)の因子m(x,y)(i=1,・・・,k)に分散して埋め込まれる。即ち、本方式においては、平文多項式は下記式(8)の積構造(非線形構造)で構成される。
Figure 0007273742000008
上記式(8)の積構造(非線形構造)を有することにより、復号においてもm(x,y)を復元した後、因数分解を行って、因子m(x,y)(i=1,・・・,k)を求めない限りは平文が復元できないようになっている。以下では簡単のためにm(x,y)のx,yの次数を1とし、m(x,y)=mx,i(t)x+my,i(t)y+m1,i(t)の形に書ける多項式のみを因子とする平文多項式のみを考える。
また、以下に示すアルゴリズムでは、理解を助ける目的で小さなサイズの数値例を添えるが、この数値例では暗号の安全性は保てないことをお断りしておかなければならない。
[システムパラメータ]
システムパラメータとは、各アルゴリズムで利用されるパラメータで、安全性や復号可能性を保証するための下記パラメータ1.~8.である。
1.下記式(9)で表される(非線形)不定方程式X(x,y)の項集合:Γ
Figure 0007273742000009
ただし、Γは、(0,0)を含む。
(例)Γ={(2,0),(1,1),(0,2),(1,0),(0,1),(0,0)}
2.下記式(10)で表されるランダム多項式の項集合:Γ
Figure 0007273742000010
ただし、Γは、(0,0)を含む。
(例)Γ={1,0),(0,1),(0,0)}
また、Γ及びΓから導出されるパラメータとして、下記式(11)~(13)がある。
Figure 0007273742000011
Figure 0007273742000012
Figure 0007273742000013
本例の場合には、D=2,D=1,D=3となる。D,Dはそれぞれ不定方程式X、ランダム多項式rの総次数を意味し、本例のようにD≧2の場合は非線形不定方程式となる。
3.p:素体Fのサイズを示す素数
(例)p=7
4.d:平文多項式因子m(x,y)(i=1,・・・,k)に含まれる各係数の次数の最大値
ここでは、前述の通り、平文多項式因子はm(x,y)=mx,i(t)x+my,i(t)y+m1,i(t)のように書けるので、dは下記式(14)となる。
Figure 0007273742000014
ここで、Dは平文多項式因子の数を表す。
(例)d=1,D=2
5.d:ノイズ多項式e(x,y)に含まれる各係数の次数の最大値
(例)d=2
6.d:不定方程式の解の次数
(例)d=4
=degu(t)=degu(t)に注意。ここで、復号を可能とするため、下記式(15)を満たす必要がある。
Figure 0007273742000015
7.d:識別多項式f(t)の次数
ここで、dは復号を可能とするため、下記式(16)で表される条件を満たす。
Figure 0007273742000016
(例)d=11>D(d+d)=10
8.n:Rp,n(=F[t]/g(t))における法多項式g(t)の次数
ここで、g(t)はF上既約でなくても良い。ここで、nは復号を可能とするため、下記式(17)で表される条件を満たす。
Figure 0007273742000017
(例)n=27(>11+(2+1)・4+1=24)
上述のp,D,Dr,d及びdは独立に設定することができ、残りのd,d及びnは、p,D,Dr,d及びdに伴って決めることができる。実際、d,d及びnには、上述の式(15)~(17)の従属関係があり、d<d≪d<nとなる。
[秘密鍵]
1.下記式(18)により表される不定方程式Xの最小解:u
Figure 0007273742000018
(例)ここでd=4,p=7のとき、秘密鍵uは下記式(19)により表される。
Figure 0007273742000019
[公開鍵]
1.下記式(19)により表される不定方程式:X(x,y)
Figure 0007273742000020
ここで、X=0は秘密鍵uを解に持つ。即ち、X(u(t),u(t))=0。
[鍵生成]
システムパラメータp,d,n,Γ及びΓを入力として以下の処理を行う。
[秘密鍵の生成]
[t]の多項式u(t),u(t)をdegu(t)=degu(t)=dの条件で、一様ランダムに生成する。
(例)p=7,d=4の場合、多項式u(t),u(t)は、例えば上述の式(19)により表される。
[公開鍵の生成]
1.不定方程式の項集合Γから定数項a00(t)以外の項を一様ランダムに生成する。具体的な生成方法は、以下の通りである。
(a)X=0(Xに初期値0を代入)
(b)Γの各要素(i,j)(但し、(0,0)は除く)に対して以下を実行する。
i.次数d以下の多項式aij(t)をF[t]から一様ランダムに生成する。
ii.X=X+aij(t)x(Xに右辺の式を代入)
(例)d=4,Γ={(2,0),(1,1),(0,2),(1,0),(0,1),(0,0)}のとき、生成されるX(x,y)は、例えば下記式(21)により表される。
Figure 0007273742000021
2.定数項a00(t)を下記式(22)により計算する。
Figure 0007273742000022
(例)上述の例の場合には、a00(t)は下記式(23)により表され、Xは下記式(24)により表される。
Figure 0007273742000023
Figure 0007273742000024
3.定数項a00(t)の次数をds以下に削減する。
ここで不定方程式X(x,y)は(x,y)=(u(t),u(t))を零点に持っているため、同じ零点を持つ別の多項式Y(x,y)と加減算した多項式X′(x,y)=X(x,y)-Y(x,y)もまた同じ零点を持つ。そこで、a00(t)をu(t)で割った商Q(t)、余りをR(t)とすると、a00(t)=Q(t)u(t)+R(t)(degR(t)<2d)と書けるので、-Q(t)x+a00(t)-R(t)=0は(x,y)=(u(t),u(t))に解を持つ。そこで、Y(x,y)=-Q(t)x+a00(t)-R(t)として、X′(x,y)=X(x,y)-Y(x,y)を計算するとX′(x,y)=X(x,y)+Q(t)x-R(t)となり、dega00(t)>degR(t)であることから、より小さな次数の定数項を持つ多項式となるとともにX′(x,y)をあらためてX(x,y)とおき、これを繰り返すことで、最終的にdega00(t)はdより小さくなる。
本例の場合は、Xは下記式(25)となる。
Figure 0007273742000025
このように係数となる多項式の次数を揃えることで、X(x,y)をF[t]/(t-1)の元としても考えることができる。
[暗号化]
次に、実施形態の暗号化処理について説明する。
[平文の埋め込み]
実施形態では、平文を埋め込む平文多項式は上述の式(8)のような積構造をしているため、直接埋め込むことができない。そこで、実施形態の暗号化装置は、平文を平文多項式因子m(x,y)(i=1,・・・,D)に分散して埋め込む。平文多項式の因子m(x,y)は前述の通り、m(x,y)=mx,i(t)x+my,i(t)y+m1,i(t)と書ける。係数mx,i(t),my,i(t)及びm1,i(t)はそれぞれd次である。実施形態の暗号化装置は、平文Mをp進展開して、下記式(26)によって表す。
Figure 0007273742000026
このとき、平文Mは下記式(27)のように埋め込まれる。
Figure 0007273742000027
即ち、p=7,d=1とすると、実施形態の暗号化装置は、平文(3,4,2,4,2,4)(7)を平文多項式の因子として分散して埋め込む。例えば、ここではD=2のとき、平文(3,4,2,4,2,4)(7)は、m=(1,4,2,3,6,4)(7),m=(3,1,1,6,5,1)(7)のように分散する。平文は、ベクトルの要素ごとの積m・m=(3,4,2,4,2,4)(7)を取ることで復元される。このように平文を複数の要素に分散するには例えば次のようにすればよい。
実施形態の暗号化装置は、平文mをm,・・・,mDmに分散するときm,・・・,mDm-1を平文mと同じサイズのランダムなデータとして生成し、mDmをm・(m・m・・・mDm-1-1とする。ここで、(m・m・・・mDm-1-1はベクトルm・m・・・mDm-1各要素の逆元を掛け合わせて並べたものと定義する。
[暗号化アルゴリズム]
1.平文を、上述の方法で次数d次の平文多項式の因子m(x,y)(i=1,・・・,D)に分散して埋め込む。m=(1,4,2,3,6,4)(7),m=(3,1,1,6,5,1)(7)のように分散する場合、下記のようになる。
m1(x,y)=(t+4)x+(2t+3)y+6t+4
m2(x,y)=(3t+1)x+(t+6)y+5t+1
2.ランダム多項式r(x,y)の生成
2変数ランダム多項式r(x,y)をランダム多項式の項集合Γから生成する。具体的な生成方法は、以下の通りである。
(a)r=0(rに初期値0を代入)
(b)Γの各(i,j)に対して以下を実行する。
i.次数n-1の多項式rij(t)をRp,nから一様ランダムに生成する。
ii.r=r+rij(t)x(rに右辺の式を代入)
(例)p=7,n=27,D=1のとき、生成されるランダム多項式rは、例えば下記式(28)により表される。
Figure 0007273742000028
3.ノイズ多項式e(x,y)の生成
ノイズ多項式e(x,y)をノイズ多項式の形式Γから生成する。具体的な生成方法は、以下の通りである。
(a)e=0(eに初期値0を代入)
(b)Γの各(i,j)に対して以下を実行する。
i.次数dの多項式eij(t)をRp,deから一様ランダムに生成。
ii.e=e+eij(t)x(eに右辺の式を代入)
(例)p=7,n=27,D=1,d=2のとき、生成されるノイズ多項式eは、例えば下記式(29)により表される。
Figure 0007273742000029
4.暗号文c(x,y)の生成
下記式(30)によって暗号文c(x,y)=Epk(M,f,r,e;X)を計算する。
Figure 0007273742000030
(例)本例の場合、暗号文cは下記式(31)によって表される。
Figure 0007273742000031
[復号]
次に、実施形態の復号処理について説明する。
最小解u:(x,y)=(u(t),u(t))を不定方程式X(x,y)に代入するとX(u(t),u(t))=0となる関係があることに注意する。
[復号アルゴリズム]
復号アルゴリズムは以下の通りである。
1.解の代入
解uをc(x,y)に代入して下記式(32)を計算する。
Figure 0007273742000032
ここで、nの取り方の条件(上記式(17))から、degc(u(t),u(t))<nとなる。これは、c(u(t),u(t))をRp,nの元としてみても、F[t]の元としてみても同じであることを意味している。そこで、以下ではc(u(t),u(t))をF[t]の元として扱う。本例では、下記式(33)となる。
Figure 0007273742000033
2.平文多項式の積m(u(t),u(t))m(u(t),u(t))・・・m(u(t),u(t))をc(u(t),u(t)) mod f(t)によって求める。これは、条件(上記式(16))が下記式(34)を保証していることに起因する。
Figure 0007273742000034
本例では、平文多項式の積は、下記式(35)で表される。
Figure 0007273742000035
3.m(u(t),u(t))を因数分解
本例の場合は、下記式(36)となる。
Figure 0007273742000036
4.ステップ3で得られた因子の組合せから平文多項式を復元する。
本例の場合は、因子(t+1)(t+t+t+5)から(3t+5)x+(6t+2)y+4t+5が復元される。また、因子(t+4)(t+2t+2t+2t+6)から(2t+3)x+(3t+4)y+t+3が復元される。すなわち、因子の組み合わせが2通りあるため、1つに特定する必要がある。
[平文多項式因子の復元]
次に、因子の組み合わせの特定の仕方と、復元について説明する。上述の復号アルゴリズムのステップ4で得られたm(u(t),u(t))から平文多項式の因子m(x,y)を復元する方法を示す。ここでは記述を簡略化するため、添え字を付けず、m(u(t),u(t))から平文多項式の因子m(x,y)を復元するアルゴリズムを示す。
正しい(即ち、正しい平文多項式m(x,y)に対応した)m(u(t),u(t))が得られたとする。このとき、平文多項式は下記式(37)により与えられる。
Figure 0007273742000037
ここで、degm(t),degm(t),degm(t)≦dであることから、下記式(38)と書ける。
Figure 0007273742000038
そこで、mx,i,my,i,m1,i(i=0,・・・,d)を変数として、秘密鍵である(x,y)=(u(t),u(t))を代入し、得られた式をm(u(t),u(t))と比較する(下記式(39))。
Figure 0007273742000039
即ち、上記式(39)は右辺にのみ変数があり、左辺には変数がないことから、右辺と左辺の係数比較により連立方程式が立つ。しかも右辺の変数は相互に乗算されることがないので、連立一次方程式が成立し、これを解くことにより、平文多項式が復元できる。
尚、上記式(39)から導出される方程式は変数が3(d+1)、式は平文多項式が上記式(37)の形であることを考えるとd+d+1だけ存在することが分かる。ここで、解が1つに定まるためには、式の数が変数の数以上にならなければならないので、d≧2(d+1)でなければならない(上記式(15))。ここで、解が求まらなかったときは、正しいm(u(t),u(t))ではなかったことを意味し、その因子は破棄される。
[平文多項式の因子の絞り込み]
次に、M(u(t),u(t))を因数分解したときに得られる因子から、平文多項式の因子に対応する因子m(u(t),u(t))の候補を抽出して、絞り込む方法について、実施形態で利用している例を利用して詳しく説明する。
まず、因子m(u(t),u(t))の次数はd+dで、本例ではd=4,d=1なので、5次となる。また、因数分解は下記式(40)で表されるので、因子のペアは、下記式(41)又は(42)となる。
Figure 0007273742000040
Figure 0007273742000041
Figure 0007273742000042
実際、上記式(41)について平文を復元すると、下記式(43)が得られる。下記式(43)は、暗号化で使われた平文多項式因子の4倍と一致する。
Figure 0007273742000043
一方で、上記式(42)について平文を復元すると、下記式(44)が得られる。下記式(44)は、暗号化で使れれた平文多項式因子の定数倍とは一致しない。
Figure 0007273742000044
実際、上記式(43)から平文を復元すると、(4,6,6,1,2,6)・(6,3,5,4,1,3)=(3,4,2,4,2,4)となり、元の平文と一致する。一方、上記式(44)から平文を復元すると、(0,3,1,6,3,4)・(1,3,4,2,6,6)=(0,2,4,5,4,3)となって平文と一致しない。これらを識別するために実施形態では平文の中に認証子を導入する。
認証子は本来メッセージの正当性を確認するために利用するものであるが、ここでは正しい平文を識別するために利用する。認証子にはいろいろな種類があるが、ここでは簡単な例としてFの元を要素とする平文(a,a,a,a)に対して、認証子を(a,a)=(a+a+4,a+a+3)と定義し、これを平文の一部とし、平文を(a,a,a,a,a,a)とする。
すなわち、実施形態の認証子((a,a))は、元の暗号化対象データ(平文(a,a,a,a))から所定の演算によって算出される。メッセージmは、暗号化対象データ(平文(a,a,a,a))と認証子((a,a))とを含む。
この認証子を本例に適用すると、上記式(43)から復元された平文(3,4,2,4)の認証子は(2,4)となり、復号結果に含まれる認証子(2,4)と一致する。一方、上記式(44)から復元された平文(0,2,4,5)の認証子は(1,3)となり、復号結果に含まれる認証子(4,3)と一致しない。よって上記式(43)から復元された平文(3,4,2,4,2,4)が復号結果となる。
尚、本例においては、m(u(t),u(t))の因子の次数がそれぞれ(1,1,4,4)であったため、このような比較的単純な組み合わせとなったが、例えば因子の次数が(1,1,2,2,2,2)のような場合は、より複雑となる。このような場合には(ここでは詳しく述べないが)部分和問題を解くアルゴリズムを活用する。部分和問題とは長さlの自然数の数列a,a,・・・,aがあったとき、この要素の中から幾つかを選んで足した結果が特定の数Nとなるような部分数列を求める問題である。この例ではN=5として足した結果が5になるような部分数列のうち重なりのないものを求める問題となる。
ここで、数列(1,1,2,2,2,2)の個々の数字に対応する因子があるので、これらを区別するために、それぞれの要素に番号を付けて[1,2,3,4,5,6]と表記する。ここで、例えば[1,3,4]は対応する数列が(1,2,2)であるから、足したら5となる。[2,5,6]も足したら5になり、これらの組み合わせが候補の1つとなる。この他にも[2,3,6]などという組み合わせもあり、これには[1,4,5]が対応するペアとなる。部分和問題は一般にはNP困難な問題となるが、このように小さなサイズの問題は比較的短時間で求められることが知られている。
[バリエーション]
以下では実施形態の幾つかのバリエーションを述べる。
[ノイズ多項式におけるバリエーション]
上述の実施形態ではノイズ多項式は係数となる1変数多項式の係数がdに制限されている以外の制約はないが、これを平文多項式と同じ積の構造に展開するバリエーションが考えられる。即ち、ノイズ多項式を下記式(45)によって定義する。
Figure 0007273742000045
本実施形態の場合であれば、d≧2(d+1)の条件の下で、平文を復元する手段と同じ手段で復号が可能となる。これにより、e(x,y)が求まるので、求まっている平文多項式因子の積M(x,y)とから、下記式(46)によりr(x,y)が求まる。
Figure 0007273742000046
実際、このような構成は数々のメリットを生み出す。まず、平文多項式M(x,y)に加えてノイズ多項式e(x,y)を復元することにより、それぞれの多項式に曖昧性があっても、上記式(46)における除算が成立する組合せのみに絞り込むことができる。実際、X(x,y)は2変数多項式であるため、間違ったM(x,y),e(x,y)の組み合わせではこの除算が成立しない(即ち、何らかの剰余が出てしまう)可能性が極めて高いので、復号結果候補の絞り込みが可能となる。そのため、認証子が不要になる。
また、このように構成することで、本実施形態でランダムに生成しているe(x,y),r(x,y)にも平文を埋め込むことができ、更に大量のデータを1回で暗号化できるだけでなく、暗号文を改竄すると復号不能になる可能性が高いことから暗号文の改竄検知にも役立つ。
[平文多項式とノイズ多項式の役割の置き換え]
上述の実施形態の暗号文cは下記式(47)の形式となっている。
Figure 0007273742000047
上記式(47)の第1項と第3項の役割を変更し、下記式(48)の形式としてもよい。
Figure 0007273742000048
上記式(48)の形式にすることで、平文多項式の次数はノイズ多項式の次数を超えることが可能となり、大きな平文を埋め込みたい場合に平文多項式因子の次数を上げて対応することが可能となる。因みに平文多項式因子が1次の場合は|3p(d+1)|ビッ
ト分のデータが埋め込めるのに対して、2次の場合はその約2倍の|6p(d+1)|ビット分のデータが埋め込める。
一方で、復号に際しては上述の式(39)で示したように連立方程式を立てるが、式の数が2d+d+1であり、変数の数が6(d+1)であることから、これを解くにはd≧5(d+1)/2の条件が必要となる。
[暗号化演算におけるバリエーション]
上述の実施形態の暗号文cは上記式(47)の形式となっているが、下記式(49)の形式のように、ランダム多項式とノイズ多項式の符号(+又は-)の組み合わせを考慮することによって、4通りのバリエーションが考えられる。
Figure 0007273742000049
上述の実施形態では、ランダム多項式とノイズ多項式の符号が両方+である場合について説明したが、他の3通りのバリエーションで暗号文cを生成しても、実施形態の場合と同様にして復号が可能になる。
[変数に関するバリエーション]
本実施形態では一貫しRp,n上の2変数多項式を扱ってきたが、これを一般のl変数(多変数)としても本実施形態と同様に暗号化アルゴリズム、復号アルゴリズム、鍵生成アルゴリズムが成り立つ。変数の数が3つより多くなっても不定方程式X(x,・・・,x)が1つであれば不定方程式であることに変わりはなく、その求解問題は計算困難である。それどころか、変数が増えると多くの場合より計算困難な問題となり、安全性が強化される。そのため鍵サイズが削減可能となるだけでなく、変数が多いため、埋め込める平文のサイズは増える。一方で、復元する係数が増えるためシステムパラメータはd=l(d+1)に変更しなければならない。
多変数の場合、暗号化装置10では、例えば、公開鍵取得部2が、環F[t]/g(t)(F[t]は、有限体F上の1変数多項式環、g(t)は法多項式)の元を係数に持つ多変数不定方程式X(x,・・・,x)と、識別多項式f(t)とを含む公開鍵を取得する。平文埋め込み部3が、メッセージmを、環F[t]/g(t)の元のうち次数が制限された多項式を係数に持つ複数個の平文多項式因子m(x,・・・,x)(i=1,・・・,k)の係数として分散して埋め込む。多項式演算部8が、平文多項式因子m(x,・・・,x)(i=1,・・・,k)を掛け合わせた平文多項式M(x,・・・,x)を生成する。第1の多項式生成部が、環F[t]/g(t)の元を係数に持つランダム多項式r(x,・・・,x)をランダムに生成し、第2の多項式生成部が、環F[t]/g(t)の元のうち次数が制限された多項式を係数に持つノイズ多項式e(x,・・・,x)をランダムに生成する。なお、第1及び第2の多項式生成部は、上述の多項式生成部6のように1つの機能ブロックで実現してもよいし、別々に実現してもよい。そして、暗号化部5が、平文多項式M(x,・・・,x)に対し、識別多項式f(t)と,ランダム多項式r(x,・・・,x)と,ノイズ多項式e(x,・・・,x)と、多変数不定方程式X(x,・・・,x)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理(上述の式(30)に相当)により、暗号文c(x,・・・,x)=Epk(M,f,r,e;X)を生成する。
また、多変数の場合、復号装置20では、例えば、鍵取得部22が、環F[t]/g(t)(F[t]は、有限体F上の1変数多項式環、g(t)は法多項式)の元を係数に持つ多変数不定方程式X(x,・・・,x)と、識別多項式f(t)とを含む公開鍵を取得し、秘密鍵として、多変数不定方程式X(x,・・・,x)の零点u(x,・・・,x)=(ux1(t),・・・,uxl(t))を取得する。零点代入部24が、暗号文c(x,・・・,x)に対し、零点uを代入して1変数多項式h(t)を生成する。多項式演算部25が、1変数多項式h(t)に対し、識別多項式f(t)で割った余りとして、1変数多項式μ(t)を得る。因数分解部6が、1変数多項式μ(t)を有限体F上で因数分解することにより、第1の因子を取得する。組合せ計算部28が、第1の因子を組み合わせて、環F[t]/g(t)の元のうち次数が制限された多項式を係数に持つ複数個の平文多項式因子m(x,・・・,x)(i=1,・・・,k)の積である平文多項式の因子に零点uが代入された第2の因子を求める。平文多項式因子復元部29が、第2の因子と、零点uとを用いて連立1次方程式を導き、連立1次方程式を解くことにより平文多項式因子m(x,・・・,x)を復元する。復号部23が、平文多項式因子m(x,・・・,x)から平文ベクトルを抽出し、平文ベクトルの要素の積を計算してメッセージmを復号する。平文検査部30が、メッセージmから認証子を抽出し、認証子を検証する。そして、平文出力部31が、認証子の検証が成功したメッセージmを復号結果として出力する。
[不定方程式の係数に関するバリエーション]
本実施形態の公開鍵である不定方程式X(x,y)の係数は次数をd(<n)として多項式集合R,dから選択している。これは耐量子計算機暗号における課題の1つである公開鍵サイズの削減と、公開鍵各項の係数の次数を合わせるための設定である。しかし、公開鍵サイズに制限を設ける必要がないハイエンドなアプリケーションにおいてはより安全性を重視してRp,nを用いることも可能であるし、よりローエンドなアプリケーションに関しては定数項以外の係数をより小さく取ることも可能である。そうすることによって公開鍵サイズが更に削減され、実装され易くなる。
上述のバリエーション(変形例)は、互いに独立に成立するので、幾つか(或いは全部を)併用することができる。
[具体的な構成]
次に本実施形態の公開鍵暗号における暗号化装置、復号装置及び鍵生成装置の具体的な構成とその動作方法を示す。
まず、本実施形態の暗号化装置の構成と処理の流れを図2に示すフローチャートに沿って図1に示す全体構成図を参照しながら示す。
実施形態の暗号化装置10は、平文取得部1、公開鍵取得部2、平文埋め込み部3、記憶部4、暗号化部5、多項式生成部6、ランダム値生成部7、多項式演算部8及び暗号文出力部9を備える。
まず、平文取得部1が、平文mを取得する(ステップS1)。平文取得部1は、例えば他のアプリケーション又は他の装置等から取得された暗号化対象データを、平文mとして取得する。平文取得部1は、平文mを平文埋め込み部3に入力する。
次に、公開鍵取得部2が、2変数不定方程式X(x,y)と、識別多項式f(t)とを含む公開鍵を取得する(ステップS2)。公開鍵取得部2は、例えば後述の鍵生成装置等の他の装置から公開鍵を取得する。
次に、平文埋め込み部3が、記憶部4からシステムパラメータp,D,dを取得する(ステップS3)。
次に、平文埋め込み部3が、平文取得部1から入力された平文mを|p|-1ビット(|p|はpのビット長)の3(d+1)個のサブブロックに分割する。次に、平文埋め込み部3が、各サブブロックをD個の平文断片に分割する(ステップS4)。
なお、分割方法は、D個の平文断片が揃ったときに復元できる方法であれば何でも良いが、一例としてベクトルの要素ごとの積を利用した方法が挙げられる。
平文埋め込み部3は、平文断片を順次D個の平文多項式因子に埋め込む(ステップS5)。本実施形態では平文多項式因子は1次式としているため、m(x,y)=mx,i(t)x+my,i(t)y+m1,i(t)(i=1,・・・,D)であり、各係数mx,i(t),my,i(t),m1,i(t)の次数がdであり、これら多項式の係数はFの元である。平文埋め込み部3は、平文断片を、この1次式の平文多項式因子にそれぞれ埋め込み、平文多項式因子m(x,y),・・・,mDm(x,y)を生成する。
尚、このように本実施形態の暗号方式のブロックサイズは、3(|p|-1)(d+1)であり、これより大きな平文が入力された際には、まずはこのブロックサイズに分割した上で、ブロック毎に暗号化する。
平文埋め込み部3は、生成されたD個の平文多項式因子を暗号化部5に入力する。
一方、暗号化部5は、公開鍵取得部2から公開鍵を受け付けると、記憶部4から当該公開鍵に適合するシステムパラメータp,Γ,d,d,nを取得する。暗号化部は、公開鍵X(x,y)から非零の項を抽出してX(x,y)の項集合Γを計算し、ΓΓを計算することによりノイズ多項式e(x,y)の項集合Γを導出する。
また、暗号化部5はシステムパラメータp,n,Γを多項式生成部6に入力し、項集合Γに従ってn-1次の多項式を係数に持つランダムな多項式r(x,y)の生成を多項式生成部6に指示する。多項式生成部6は、ランダム値生成部7に指示して係数rij(t)の係数となるような0からp-1までの整数を必要な数(この場合はn#Γ個)だけランダム値生成部7に生成させ、これらの整数に基づいてr(x,y)を生成する(ステップS6)。なお、#Γは集合Γの要素数を示す。
暗号化部5は、引き続きシステムパラメータp,d、及び、ノイズ多項式の形式Γに基づいて、ランダム多項式r(x,y)の生成方法と同じ方法で、ノイズ多項式e(x,y)を生成する(ステップS7)。
最後に、暗号化部5は、ランダム多項式r(x,y)、ノイズ多項式e(x,y)、公開鍵(X(x,y),f(t))、及び、D個の平文多項式因子m(x,y),・・・,mDm(x,y)から暗号文c(x,y)を、下記式(50)に従って生成する(ステップS8)。暗号化部5は、暗号文c(x,y)を暗号文出力部9に入力する。
Figure 0007273742000050
次に、暗号文出力部9は、暗号化装置10の出力として、暗号文c(x,y)を(必要ならば予め定められたフォーマットに合わせて変形してから)出力する(ステップS9)。
次に本実施形態の復号装置の構成と処理の流れを図4に示すフローチャートに沿って図3に示す全体構成図を参照しながら説明する。
実施形態の復号装置20は、暗号文取得部21、鍵取得部22、復号部23、零点代入部24、多項式演算部25、因数分解部26、記憶部27、組合せ計算部28、平文多項式因子復元部29、平文検査部30及び平文出力部31を備える。
まず、暗号文取得部21が、暗号文c(x,y)を取得する(ステップS21)。暗号文取得部21は、例えばネットワークを介して他の装置から暗号文c(x,y)を取得する。
次に、鍵取得部22が、公開鍵(X(x,y),f(t))と、秘密鍵(零点u:(u(t),u(t))とを取得する(ステップS22)。鍵取得部22は、例えばネットワークを介して他の装置等から公開鍵(X(x,y),f(t))を取得し、復号装置の記憶部27等から秘密鍵(零点u:(u(t),u(t))を取得する。
次に、復号部23が、暗号文取得部21から暗号文c(x,y)を受け付け、鍵取得部22から公開鍵(X(x,y),f(t))と、秘密鍵(零点u:(u(t),u(t))とを受け付けると、復号処理が開始される。
復号部23はまず、零点代入部24に暗号文c(x,y)と零点uとを入力する。零点代入部24は、零点uをc(x,y)に代入し、h(t)を計算する(ステップS23)。零点代入部24は、h(t)を復号部23に入力する。
次に、復号部23は、零点代入部24からh(t)を受け付けると、h(t)を多項式演算部25に入力する。多項式演算部25は、復号部23からh(t)を受け付けると、h(t) mod f(t)を計算し、h(t) mod f(t)の計算結果を復号部23に入力する(ステップS24)。
次に、復号部23は、多項式演算部25からh(t) mod f(t)の計算結果を受け付けると、当該計算結果を因数分解部26に入力する。因数分解部26は、復号部23からh(t) mod f(t)の計算結果(剰余μ(t))を受け付けると、当該計算結果の因数分解を実行し(ステップS25)、因数分解の結果を、因子の順序付けられた因子配列として復号部23に入力する。
次に、復号部23は、記憶部27から、システムパラメータd,dを抽出し、因数分解部26から入力された因子配列から、それぞれの因子の次数を取り出して対応する次数配列を生成する。更に、復号部23は、次数配列と平文多項式因子の次数に対応するN(=d+d)を組合せ計算部28に入力する。組合せ計算部28は、次数が丁度Nとなるような因子の組み合わせ(因子系列)を全て抽出し(ステップS26)、当該因子系列のリストを復号部23に入力する。
復号部23は、組合せ計算部28から因子系列のリストを受け付けると、当該リストから因子系列を抽出して、零点u及びシステムパラメータd,dとともに平文多項式因子復元部29に入力する。平文多項式因子復元部29は、復号部23から入力された因子系列と零点uとシステムパラメータdとから上述の方法で平文多項式因子m(x,y),・・・,mDm(x,y)を復元し(ステップS27)、当該平文多項式因子を復号部23に入力する。
復号部23は、平文多項式因子復元部29から平文多項式因子m(x,y),・・・,mDm(x,y)を受け付けると、当該平文多項式因子の係数から分割された平文を抽出し、平文mを復元し(ステップS28)、当該平文mを平文検査部30に入力する。
平文検査部30は、平文mに含まれる上述の認証子を検査し、合否を判定する(ステップS29)。平文検査部30は、合否の判定結果を復号部23に入力する。
合否の判定結果が合格であった場合(ステップS29,OK)、平文出力部31が、mを復号結果として出力し(ステップS32)、復号処理を終了する。
一方で、合否の判定結果が不合格であった場合(ステップS29,NG)、復号部23は、次の平文多項式因子候補があるか否かを判定する(ステップS30)。次の平文多項式因子候補がある場合(ステップS30,Yes)、復号部23は、次の平文多項式因子候補を抽出し(ステップS31)、ステップS27の処理に戻る。
尚、次の平文多項式因子候補がない場合(ステップS30,No)、平文出力部31が、復号失敗を示すエラーを出力し(ステップS33)、復号処理を終了する。復号失敗の原因としては通信路上で暗号文が壊れてしまった、或いは改竄されてしまったことが考えられる。
次に本実施形態の鍵生成装置の構成と処理の流れを図6に示すフローチャートに沿って図5に示す全体構成図を参照しながら示す。
実施形態の鍵生成装置40は、システムパラメータ取得部41、制御部42、多項式生成部43、ランダム値生成部44、不定方程式生成部45、多項式演算部46及び鍵出力部47を備える。
まず、システムパラメータ取得部41が、システムパラメータp,Γx,d,dを取得する(ステップS41)。システムパラメータp,Γx,d,dは、例えばユーザからの入力を受け付けることによって取得される。また例えば、システムパラメータp,Γx,d,dは、システムパラメータp,Γx,d,dを含む設定データ等を読み込むことにより取得される。
システムパラメータ取得部41は、システムパラメータを制御部42に入力する。制御部42では、システムパラメータ取得部41から入力されたシステムパラメータに基づいて他の処理部と連携して以下のような処理を行う。
まず、制御部42は、システムパラメータ取得部41から入力されたシステムパラメータのうちp,dを多項式生成部43に入力し、Rp,dsに含まれる2つの多項式u(t),u(t)の生成を指示する。次に、多項式生成部43が、ランダム値生成部44に2(d+1)個の0からp-1までの整数の生成を指示する。ランダム値生成部44は、疑似乱数生成器などを使って2(d+1)個の0からp-1までの乱数を生成し、多項式生成部に入力する。多項式生成部43は、ランダム値生成部44から入力された2(d+1)個の乱数を係数として持つ多項式u(t),u(t)を生成し(ステップS42)、当該多項式u(t),u(t)を制御部42に入力する。
制御部42は、多項式生成部43から受け付けた多項式u(t),u(t)を秘密鍵として保持(格納)する。
また、制御部42は、公開鍵(下記式(51)により表される不定方程式X(x,y))の生成を実施する。
Figure 0007273742000051
制御部42は、公開鍵を生成するため、X(x,y)の定数項以外の係数aij(t)をRp,dsから抽出する。具体的には、制御部42は、上述の多項式u(t),u(t)を生成したときと同様に、多項式生成部43にパラメータp,dを入力し、Rp,dsに含まれる#Γ-1個の多項式の生成を指示する。多項式生成部43は、ランダム値生成部44を利用して多項式の係数を生成し、当該係数を有する2(d+1)個の多項式を生成する。多項式生成部43は、2(d+1)個の多項式を制御部42に入力する。
制御部42は、多項式生成部43により生成された多項式、システムパラメータp,Γ,d及び秘密鍵u(t),u(t)を不定方程式生成部45に入力する。
不定方程式生成部45は、多項式演算部46を利用しながら、まず定数項のない不定
方程式X′(x,y)を生成する(ステップS43)。次に、不定方程式生成部45は、秘密鍵(多項式u(t),u(t))をX′(x,y)の変数x,yにそれぞれ代入することで、定数項a00(t)=-X′(u(t),u(t))を計算する(ステップS44)。
次に、不定方程式生成部45は、定数項a00(t)の次数を削減する処理を行う(ステップS45)。
この次数削減の処理に関しては、その一例を図7に従って詳しく説明する。この次数削減処理は定数項a00(t)と秘密鍵u(t),u(t)を入力とし、同じ零点を持つ不定方程式の中で次数がd以下の定数項を持つ別の不定方程式に変換する処理である。
基本的な原理は秘密鍵(零点)を利用して、同じ零点を持つ定数項の次数が小さな不定方程式に置き換えていくことにあり、理論的な背景は上述の通りである。
簡単のため、以下の説明ではX(x,y)にはx(i=1,・・・,degX)の項が全て含まれているとする。まず、不定方程式生成部45は、i=degX(x,y)と設定して(ステップS61)、a00(t) mod u(t)を計算し、a00(t)を置き換えるとともに、ai0′(t)=a00(t)/u(t)を計算し(ステップS62)、X′(x,y)をX′(x,y)+ai0′(t)xに置き換える(ステップS63)。この操作をiを1つずつデクリメントしながら(ステップS64)、1になるまで続ける(ステップS65)。
さて、図6に戻り、図7の処理をX′(x,y)について行うと以下のようになる。a00(t)がa00(t)=-X′(u(t),u(t))と設定されており、X′(x,y)の各係数の次数がdであることから、a00(t)の次数はd(degX(x,y)+1)を超えず、ほぼd(degX(x,y)+1)となることが期待される。一方で、図7の処理によりa00(t)の次数はddegX(x,y)未満となり、当初のa00(t)と比較して概ねd次だけ削減される。また、ai0′(t)はa00(t)をu(t)degX(x,y)で割った商であるため次数はd以下となり、ai0(t)の次数を超えない。このことを踏まえると、図7の処理により、不定方程式X′(x,y)は定数項以外の係数の次数を変更せずに定数項の次数をdだけ削減できたことが分かる。この操作をiが0になるまで続けることで、最終的にX′(x,y)の定数項以外の係数の次数を変更せずに定数項のみd未満とすることができる。
次に、不定方程式生成部45は、X(x,y)=X′(x,y)+a00(t)によって不定方程式を生成する(ステップS46)。
ここで生成されたX(x,y)が当初の不定方程式X′(x,y)+a00(t)と同じ零点(u(t),u(t))を持つことを示す。そのためには各ステップで得られる不定方程式が零点(u(t),u(t))を持つことを示せばよい。各ステップで得られる不定方程式はX′(x,y)+ai0′(t)x+(a00(t) mod u(t))である。ここに零点(u(t),u(t))を代入すると、下記式(52)となり、零点となっていることが分かる。
Figure 0007273742000052
このように生成された不定方程式X(x,y)は不定方程式生成部から制御部42に出力される。制御部42は、Rp,dfに含まれる識別多項式f(t)を生成するため、多項式生成部43にシステムパラメータp,dを入力する。多項式生成部43は、上述のu(t),u(t)を生成する処理と同様に、ランダム値生成部44を利用して識別多項式f(t)を生成し(ステップS47)、当該識別多項式を制御部に出力する。
制御部42は、生成された公開鍵(X(x,y),f(t))及び秘密鍵(u(t),u(t))を鍵出力部47に入力する。鍵出力部47は、制御部42から入力された公開鍵(X(x,y),f(t))及び秘密鍵(u(t),u(t))を鍵生成装置の外部に出力する(ステップS48)。
最後にバリエーションに関する具体的な構成を述べる。ノイズ多項式におけるバリエーションはノイズ多項式の積の構造(上述の式(45))を持たせて復号の際に復元可能とするバリエーションである。従って、上述の暗号化アルゴリズムにおいては図8に示すように、ノイズ多項式因子の生成(ステップS77)を、本実施形態の平文多項式の生成と同様に行ない、暗号文を下記式(53)によって生成するところ(ステップS78)が異なる。なお、ステップS71~ステップS76、及びステップS79の処理は、上述の図2のステップS1~ステップS6、及びステップS9の処理と同様である。
Figure 0007273742000053
一方、復号アルゴリズムに関してはノイズ多項式e(x,y)・・・e(x,y)を復元するため、図9A乃至Cに示すように、h(t)=c(u(t),u(t))をf(t)で割った商を求め(ステップS97)、これを因数分解することにより(ステップS98)、生じた因子のうち次数がd+dとなる因子の組み合わせ(ノイズ因子系列)を求める処理(ステップS99)が必要になる。なお、ステップS91~ステップS96の処理は、上述の図4のステップS21~ステップS26の処理と同様である。
平文多項式因子復元部29が、平文因子系列とノイズ因子系列からそれぞれ候補を順番に取り出し、それぞれ平文多項式因子m(x,y),・・・,mDm(x,y)、ノイズ多項式因子e(x,y),・・・,e(x,y)に復元し(ステップS100~ステップS103)、それぞれについてq(x,y)=c(x,y)-f(t)e(x,y)・・・e(x,y)-m(x,y)・・・mDm(x,y)を計算する(ステップS104)。
次に、平文多項式因子復元部29が、q(x,y)が公開鍵X(x,y)で割れるか否かを判定する(ステップS105)。もし、ここで正しい平文多項式因子、ノイズ多項式がえられていれば、暗号文の式からq(x,y)/X(x,y)=r(x,y)が計算できるはずである。そこでq(x,y)が公開鍵X(x,y)で割れた場合(ステップS105,Yes)、平文多項式因子復元部29が、実際にr(x,y)を求めるとともに(ステップS106)、得られた平文多項式因子から平文mを復元し(ステップS107)、当該平文mを出力する(ステップS108)。
一方で、q(x,y)が公開鍵X(x,y)で割れなかった場合(ステップS105,No)、平文多項式因子復元部29が、次の平文多項式因子、ノイズ多項式因子の系列を抽出し(ステップS109、ステップS110)、同様のことを繰り返す(ステップS111,ステップS112)。最終的にどの組合せでもq(x,y)が公開鍵X(x,y)で割れなかった場合(ステップS110,No)、暗号文が伝送路中で壊れたか、改竄された可能性があるので、平文出力部31が、エラーを出力し(ステップS113)、復号装置20の処理を終了する。
尚、本バリエーションでは暗号化のときに生成した多項式r(x,y),e(x,y),・・・,e(x,y)が復元されることで、平文多項式因子の曖昧性を除去している。このため本実施形態で用いた認証子は必要なくなる。
平文多項式とノイズ多項式の役割を置き換えるバリエーションは暗号化装置10においては暗号文の生成式を変更すれば良く、復号装置20においてもh(t)=c(u(t),u(t))を計算した後、h(t)/f(t)によってm(u(t),u(t))・・・mDm(u(t),u(t))を計算すれば後は同様に処理できる。
尚、ノイズ多項式におけるバリエーションとの組み合わせにおいても同様の変形で実現可能である。暗号化演算に関するバリエーションについては、変更した部分が暗号文において加法を減法にするだけであることから、これらの変更は本実施形態の暗号化装置10、復号装置20に自然に反映可能である。
変数に関するバリエーションについて本実施形態を変更する部分は暗号化アルゴリズム、復号アルゴリズム及び鍵生成アルゴリズムのうちで変数の数に関する部分のみとなる。即ち、変数をx,yとしている部分を変数x,・・・,xに変更し、それに伴ってこれに代入する秘密鍵を(ux1(t),・・・,uxl(t))とするなど自明な変更を施すだけで実現可能となる。
不定方程式の係数に関するバリエーションは公開鍵となる不定方程式の係数の次数の取り方をより柔軟に変更するものである。従って、鍵生成アルゴリズムにおける不定方程式の定数項以外の係数を選択する集合をRp,dsからRp,nなど他の多項式集合を選択し、これに変更すれば実現可能である。但し、Rp,nとした場合は本実施形態で述べた定数項の次数削減アルゴリズムは法多項式g(t)により全ての係数がn-1次以下になるので不要となる。
[安全性の検討]
以下では本実施形態で構成した本発明の公開鍵暗号の安全性に関して考察する。
[線形代数攻撃]
公開鍵X,fと、これに対応したRp,n上の多項式Y(=m・・・m+X+f・e)が与えられたとき、集合F/Rdmに属する多項式m(i=1,・・・,k)の積Mを求める問題と捉えて検討する。実際、Mが正しく求まれば因数分解により、多項式m(i=1,・・・,k)が求まり、解読が可能となる。
ここでは簡単のため、下記式(54)で示される条件で議論する。
Figure 0007273742000054
ここで、M,r,e,Yは、下記式(55)により表すことができる。
Figure 0007273742000055
暗号文c(x,y)は、下記式(56)と書ける。
Figure 0007273742000056
そこで、M,r,eの係数Mij,rij,eijを未知数においての右辺を計算し,左辺と各項xの係数を比較することによって連立方程式を立てて,M,r,eを求める攻撃を線形代数攻撃という。ここで、下記式(57)から、下記式(58)の連立方程式が導出できる。
Figure 0007273742000057
Figure 0007273742000058
この連立一次方程式は変数が15個、式が6個であることから,9次元の解空間を持つ。一般には変数の個数が#Γ+#Γ+#Γ、式の個数が#Γであることから,#Γ+#Γ次元の解空間を持つ。
しかしながら、上記式(58)はRp,n上の方程式であるが、これをF上の方程式と考えると6n個の式が存在することになる。一方、これに対する変数はMijがRp,Dmdmに属し、rijがRp,nに属し、eijがRp,deに属していることから、変数の数は上記式(54)の条件の下ではそれぞれ18,3n,12個となり、合計3n+30個となる。本例ではn=21になるので、式の数が93個、変数の数が126個となり、一般的な意味では解空間は存在しない。しかし、ここでは少なくとも1つ解があることが分かっているため、これを解くことによって、所望の解が求まる可能性が高い。
一般には、eij(p,dの元)に含まれる変数の数は、下記式(59)で表される。
Figure 0007273742000059
また、rij(p,nの元)に含まれる変数の数が、n・Dr+2Dr=n・(D+2)(D+1)/2個、Mij(Rp,2dmの元)に含まれる変数の数が、3(2d+1)個となる。一方、式の数は、下記式(60)により表される。
Figure 0007273742000060
上述の式(15)~(17)によるシステムパラメータの制約を考慮に入れると、独立なパラメータD,D,d,dのうち、Dを固定し、D,dを増やすことにより、rijに含まれる変数の数が式の数に近づき、eijに含まれる変数の数が増えることにより、全体的に変数の数が式の数を超えて不定となる。実際、上記式(54)の条件のうち、下記を固定し、他の条件を変化させた場合の変数の数と式の数の変化の様子を図10に示す。
degm(x,y)=1(i=1,・・・,k)
=2
図10によると、dを十分大きく取ることによって、解空間が存在する連立方程式となり、解が一意に決まらないため、解空間に対して総当たり攻撃を行なってM=m・m・・・mと分解できる多項式を選択する必要が生じる。
[局所攻撃]
ここで、上述の式(58)の連立方程式を部分的に解く攻撃を検討する。例えば、上述の式(58)の連立方程式のうち最初の式M20+a1010+fe20=d20のみが解けるか検討する。これが解ければ平文多項式の部分情報M20が取得できる。しかし、この方程式は変数の数が2d+d+n+2個で式の数がn個であるから、明らかに不定となる。これは他のどの式でも1つ取り出すだけでは事情は変わらない。
では、複数組み合わせて取り出した場合はどうであろうか。例えば、
20+a1010+fe20=d20
10+a1000+a0010+fe10=d10
00+a0000+fe00=d00
の場合は、最も多くの変数を含むr10,r00が重なっているため、変数の数は2n+(D+D+1)(d+2d+2)個、式の個数は3n個となるので、線形代数攻撃の分析と同様にDを固定して、dを増やすことにより、変数の数が式の数を超えることが期待できる。実際、D=2の場合に図10と同じパラメータで計算すると、局所方程式の場合も、図11のように不定となることが確認できた。
[鍵復元攻撃]
本暗号方式では係数環をRp,n(=F/g(t))とする不定方程式X(x,y)=0の解のうち、Rp,dsに含まれる解を秘密鍵としている。このため、この秘密鍵を求めることができれば,本暗号は解読される。
ここで、D,d,d≧1と、上述の式(17)の条件からn>(D+1)dであることが分かる。即ち、これは求める解と同じd次の多項式の対(x,y)=(v(t),v(t))をF[t]上の多項式としてX(x,y)に代入したとき、必ずdegX(v(t),v(t))<nとなることを意味している。即ち、係数環をRp,n(=F/g(t))とする不定方程式X(x,y)=0の解のうち次数dの解を求める問題と、X(x,y)=0のF[t]上の解を求める問題とは等価となる。実際、前者の解を求めることができれば、後者の解が求まることとなり、その逆も真である。よって、鍵復元攻撃は求セクション問題に帰着する。
最後に、実施形態の暗号化装置10、復号装置20及び鍵生成装置40のハードウェア構成の例について説明する。
[ハードウェア構成の例]
図12は実施形態の暗号化装置10、復号装置20及び鍵生成装置40のハードウェア構成の例を示す図である。
実施形態の暗号化装置10、復号装置20及び鍵生成装置40は、制御装置301、主記憶装置302、補助記憶装置303、表示装置304、入力装置305及び通信装置306を備える。制御装置301、主記憶装置302、補助記憶装置303、表示装置304、入力装置305及び通信装置306は、バス310を介して接続されている。
制御装置301は、補助記憶装置303から主記憶装置302に読み出されたプログラムを実行する。主記憶装置302は、ROM(Read Only Memory)、及び、RAM(Random Access Memory)等のメモリである。補助記憶装置303は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、及び、メモリカード等である。
表示装置304は表示情報を表示する。表示装置304は、例えば液晶ディスプレイ等である。入力装置305は、コンピュータを操作するためのインタフェースである。入力装置305は、例えばキーボードやマウス等である。コンピュータがスマートフォン及びタブレット型端末等のスマートデバイスの場合、表示装置304及び入力装置305は、例えばタッチパネルである。通信装置306は、他の装置と通信するためのインタフェースである。
コンピュータで実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD-ROM、メモリカード、CD-R及びDVD(Digital Versatile Disc)等のコンピュータで読み取り可能な記憶媒体に記録されてコンピュータ・プログラム・プロダクトとして提供される。
またコンピュータで実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。またコンピュータで実行されるプログラムをダウンロードさせずにインターネット等のネットワーク経由で提供するように構成してもよい。
またコンピュータで実行されるプログラムを、ROM等に予め組み込んで提供するように構成してもよい。
コンピュータで実行されるプログラムは、実施形態の暗号化装置10、復号装置20及び鍵生成装置40の機能構成(機能ブロック)のうち、プログラムによっても実現可能な機能ブロックを含むモジュール構成となっている。当該各機能ブロックは、実際のハードウェアとしては、制御装置301が記憶媒体からプログラムを読み出して実行することにより、上記各機能ブロックが主記憶装置302上にロードされる。すなわち上記各機能ブロックは主記憶装置302上に生成される。
なお上述した各機能ブロックの一部又は全部をソフトウェアにより実現せずに、IC(Integrated Circuit)等のハードウェアにより実現してもよい。
また複数のプロセッサを用いて各機能を実現する場合、各プロセッサは、各機能のうち1つを実現してもよいし、各機能のうち2つ以上を実現してもよい。
また実施形態の暗号化装置10、復号装置20及び鍵生成装置40を実現するコンピュータの動作形態は任意でよい。例えば、暗号化装置10(復号装置20、鍵生成装置40)を1台のコンピュータにより実現してもよい。また例えば、暗号化装置10、復号装置20及び鍵生成装置40を、ネットワーク上のクラウドシステムとして動作させてもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1 平文取得部
2 公開鍵取得部
3 平文埋め込み部
4 記憶部
5 暗号化部
6 多項式生成部
7 ランダム値生成部
8 多項式演算部
9 暗号文出力部
10 暗号化装置
20 復号装置
21 暗号文取得部
22 鍵取得部
23 復号部
24 零点代入部
25 多項式演算部
26 因数分解部
27 記憶部
28 組合せ計算部
29 平文多項式因子復元部
30 平文検査部
31 平文出力部
40 鍵生成装置
41 システムパラメータ取得部
42 制御部
43 多項式生成部
44 ランダム値生成部
45 不定方程式生成部
46 多項式演算部
47 鍵出力部
301 制御装置
302 主記憶装置
303 補助記憶装置
304 表示装置
305 入力装置
306 通信装置
310 バス

Claims (10)

  1. 環F[t]/g(t)(F[t]は、有限体F上の1変数多項式環、g(t)は法多項式)の元を係数に持つ多変数不定方程式X(x,・・・,x)と、識別多項式f(t)とを含む公開鍵を取得する公開鍵取得部と、
    メッセージmを、前記環F[t]/g(t)の元のうち次数が制限された多項式を係数に持つ複数個の平文多項式因子m(x,・・・,x)(i=1,・・・,k)の係数として分散して埋め込む平文埋め込み部と、
    前記平文多項式因子m(x,・・・,x)(i=1,・・・,k)を掛け合わせた平文多項式M(x,・・・,x)を生成する多項式演算部と、
    前記環F[t]/g(t)の元を係数に持つランダム多項式r(x,・・・,x)をランダムに生成する第1の多項式生成部と、
    前記環F[t]/g(t)の元のうち次数が制限された多項式を係数に持つノイズ多項式e(x,・・・,x)をランダムに生成する第2の多項式生成部と、
    前記平文多項式M(x,・・・,x)に対し、前記識別多項式f(t)と,前記ランダム多項式r(x,・・・,x)と,前記ノイズ多項式e(x,・・・,x)と、前記多変数不定方程式X(x,・・・,x)とを用いて、
    Figure 0007273742000061
    による演算を行う暗号化処理により、暗号文c(x,・・・,x)=Epk(M,f,r,e;X)を生成する暗号化部と、
    を備える暗号化装置。
  2. 前記多変数不定方程式X(x,・・・,x)の解の次数d、及び、前記平文多項式因子m(x,・・・,x)(i=1,・・・,k)に含まれる各係数の次数の最大値dは、d≧l(d+1)を満たす、
    請求項1に記載の暗号化装置。
  3. 前記識別多項式f(t)の次数d、前記平文多項式因子m(x,・・・,x)の数D、前記多変数不定方程式X(x,・・・,x)の解の次数d、及び、前記ノイズ多項式e(x,・・・,x)に含まれる各係数の次数の最大値dは、d>D(d+d)を満たす、
    請求項1に記載の暗号化装置。
  4. 前記法多項式g(t)の次数n、前記識別多項式f(t)の次数d、前記多変数不定方程式X(x,・・・,x)の総次数D、前記ランダム多項式r(x,・・・,x)の総次数D、前記多変数不定方程式X(x,・・・,x)の解の次数d、及び、前記ノイズ多項式e(x,・・・,x)に含まれる各係数の次数の最大値dは、n>d+(D+D)d+dを満たす、
    請求項1に記載の暗号化装置。
  5. 環F[t]/g(t)(F[t]は、有限体F上の1変数多項式環、g(t)は法多項式)の元を係数に持つ多変数不定方程式X(x,・・・,x)と、識別多項式f(t)とを含む公開鍵を取得し、秘密鍵として、前記多変数不定方程式X(x,・・・,x)の零点u(x,・・・,x)=(ux1(t),・・・,uxl(t))を取得する鍵取得部と、
    暗号文c(x,・・・,x)に対し、前記零点uを代入して1変数多項式h(t)を生成する零点代入部と、
    前記1変数多項式h(t)に対し、前記識別多項式f(t)で割った余りとして、1変数多項式μ(t)を得る多項式演算部と、
    前記1変数多項式μ(t)を前記有限体F上で因数分解することにより、第1の因子を取得する因数分解部と、
    前記第1の因子を組み合わせて、前記環F[t]/g(t)の元のうち次数が制限された多項式を係数に持つ複数個の平文多項式因子m(x,・・・,x)(i=1,・・・,k)の積である平文多項式の因子に前記零点uが代入された第2の因子を求める組合せ計算部と、
    前記第2の因子と、前記零点uとを用いて連立1次方程式を導き、前記連立1次方程式を解くことにより前記平文多項式因子m(x,・・・,x)を復元する平文多項式因子復元部と、
    前記平文多項式因子m(x,・・・,x)から平文ベクトルを抽出し、前記平文ベクトルの要素の積を計算してメッセージmを復号する復号部と、
    前記メッセージmから認証子を抽出し、前記認証子を検証する平文検査部と、
    前記認証子の検証が成功したメッセージmを復号結果として出力する平文出力部と、
    を備える復号装置。
  6. 前記認証子は、暗号化対象データから所定の演算によって算出され、
    前記メッセージmは、前記暗号化対象データと前記認証子とを含む、
    請求項5に記載の復号装置。
  7. 暗号化装置が、環F[t]/g(t)(F[t]は、有限体F上の1変数多項式環、g(t)は法多項式)の元を係数に持つ多変数不定方程式X(x,・・・,x)と、識別多項式f(t)とを含む公開鍵を取得するステップと、
    前記暗号化装置が、メッセージmを、前記環F[t]/g(t)の元のうち次数が制限された多項式を係数に持つ複数個の平文多項式因子m(x,・・・,x)(i=1,・・・,k)の係数として分散して埋め込むステップと、
    前記暗号化装置が、前記平文多項式因子m(x,・・・,x)(i=1,・・・,k)を掛け合わせた平文多項式M(x,・・・,x)を生成するステップと、
    前記暗号化装置が、前記環F[t]/g(t)の元を係数に持つランダム多項式r(x,・・・,x)をランダムに生成するステップと、
    前記暗号化装置が、前記環F[t]/g(t)の元のうち次数が制限された多項式を係数に持つノイズ多項式e(x,・・・,x)をランダムに生成するステップと、
    前記暗号化装置が、前記平文多項式M(x,・・・,x)に対し、前記識別多項式f(t)と,前記ランダム多項式r(x,・・・,x)と,前記ノイズ多項式e(x,・・・,x)と、前記多変数不定方程式X(x,・・・,x)とを用いて、
    Figure 0007273742000062
    による演算を行う暗号化処理により、暗号文c(x,・・・,x)=Epk(M,f,r,e;X)を生成するステップと、
    を含む暗号化方法。
  8. 復号装置が、環F[t]/g(t)(F[t]は、有限体F上の1変数多項式環、g(t)は法多項式)の元を係数に持つ多変数不定方程式X(x,・・・,x)と、識別多項式f(t)とを含む公開鍵を取得し、秘密鍵として、前記多変数不定方程式X(x,・・・,x)の零点u(x,・・・,x)=(ux1(t),・・・,uxl(t))を取得するステップと、
    前記復号装置が、暗号文c(x,・・・,x)に対し、前記零点uを代入して1変数多項式h(t)を生成するステップと、
    前記復号装置が、前記1変数多項式h(t)に対し、前記識別多項式f(t)で割った余りとして、1変数多項式μ(t)を得るステップと、
    前記復号装置が、前記1変数多項式μ(t)を前記有限体F上で因数分解することにより、第1の因子を取得するステップと、
    前記復号装置が、前記第1の因子を組み合わせて、前記環F[t]/g(t)の元のうち次数が制限された多項式を係数に持つ複数個の平文多項式因子m(x,・・・,x)(i=1,・・・,k)の積である平文多項式の因子に前記零点uが代入された第2の因子を求めるステップと、
    前記復号装置が、前記第2の因子と、前記零点uとを用いて連立1次方程式を導き、前記連立1次方程式を解くことにより前記平文多項式因子m(x,・・・,x)を復元するステップと、
    前記復号装置が、前記平文多項式因子m(x,・・・,x)から平文ベクトルを抽出し、前記平文ベクトルの要素の積を計算してメッセージmを復号するステップと、
    前記復号装置が、前記メッセージmから認証子を抽出し、前記認証子を検証するステップと、
    前記復号装置が、前記認証子の検証が成功したメッセージmを復号結果として出力するステップと、
    を含む復号方法。
  9. コンピュータを、
    環F[t]/g(t)(F[t]は、有限体F上の1変数多項式環、g(t)は法多項式)の元を係数に持つ多変数不定方程式X(x,・・・,x)と、識別多項式f(t)とを含む公開鍵を取得する公開鍵取得部と、
    メッセージmを、前記環F[t]/g(t)の元のうち次数が制限された多項式を係数に持つ複数個の平文多項式因子m(x,・・・,x)(i=1,・・・,k)の係数として分散して埋め込む平文埋め込み部と、
    前記平文多項式因子m(x,・・・,x)(i=1,・・・,k)を掛け合わせた平文多項式M(x,・・・,x)を生成する多項式演算部と、
    前記環F[t]/g(t)の元を係数に持つランダム多項式r(x,・・・,x)をランダムに生成する第1の多項式生成部と、
    前記環F[t]/g(t)の元のうち次数が制限された多項式を係数に持つノイズ多項式e(x,・・・,x)をランダムに生成する第2の多項式生成部と、
    前記平文多項式M(x,・・・,x)に対し、前記識別多項式f(t)と,前記ランダム多項式r(x,・・・,x)と,前記ノイズ多項式e(x,・・・,x)と、前記多変数不定方程式X(x,・・・,x)とを用いて、
    Figure 0007273742000063
    による演算を行う暗号化処理により、暗号文c(x,・・・,x)=Epk(M,f,r,e;X)を生成する暗号化部、
    として機能させるための暗号化プログラム。
  10. コンピュータを、
    環F[t]/g(t)(F[t]は、有限体F上の1変数多項式環、g(t)は法多項式)の元を係数に持つ多変数不定方程式X(x,・・・,x)と、識別多項式f(t)とを含む公開鍵を取得し、秘密鍵として、前記多変数不定方程式X(x,・・・,x)の零点u(x,・・・,x)=(ux1(t),・・・,uxl(t))を取得する取得部と、
    暗号文c(x,・・・,x)に対し、前記零点uを代入して1変数多項式h(t)を生成する零点代入部と、
    前記1変数多項式h(t)に対し、前記識別多項式f(t)で割った余りとして、1変数多項式μ(t)を得る多項式演算部と、
    前記1変数多項式μ(t)を前記有限体F上で因数分解することにより、第1の因子を取得する因数分解部と、
    前記第1の因子を組み合わせて、前記環F[t]/g(t)の元のうち次数が制限された多項式を係数に持つ複数個の平文多項式因子m(x,・・・,x)(i=1,・・・,k)の積である平文多項式の因子に前記零点uが代入された第2の因子を求める組合せ計算部と、
    前記第2の因子と、前記零点uとを用いて連立1次方程式を導き、前記連立1次方程式を解くことにより前記平文多項式因子m(x,・・・,x)を復元する平文多項式因子復元部と、
    前記平文多項式因子m(x,・・・,x)から平文ベクトルを抽出し、前記平文ベクトルの要素の積を計算してメッセージmを復号する復号部と、
    前記メッセージmから認証子を抽出し、前記認証子を検証する平文検査部と、
    前記認証子の検証が成功したメッセージmを復号結果として出力する平文出力部、
    として機能させるための復号プログラム。
JP2020019948A 2020-02-07 2020-02-07 暗号化装置、復号装置、暗号方法、復号方法、暗号化プログラム及び復号プログラム Active JP7273742B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020019948A JP7273742B2 (ja) 2020-02-07 2020-02-07 暗号化装置、復号装置、暗号方法、復号方法、暗号化プログラム及び復号プログラム
US17/004,211 US11288985B2 (en) 2020-02-07 2020-08-27 Encryption device, decryption device, encryption method, decryption method, encryption program product, and decryption program product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020019948A JP7273742B2 (ja) 2020-02-07 2020-02-07 暗号化装置、復号装置、暗号方法、復号方法、暗号化プログラム及び復号プログラム

Publications (2)

Publication Number Publication Date
JP2021124679A JP2021124679A (ja) 2021-08-30
JP7273742B2 true JP7273742B2 (ja) 2023-05-15

Family

ID=77177234

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020019948A Active JP7273742B2 (ja) 2020-02-07 2020-02-07 暗号化装置、復号装置、暗号方法、復号方法、暗号化プログラム及び復号プログラム

Country Status (2)

Country Link
US (1) US11288985B2 (ja)
JP (1) JP7273742B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220014366A1 (en) * 2020-07-13 2022-01-13 Synopsys, Inc. Key protection using a noising and de-noising scheme
CN115879552B (zh) * 2021-09-28 2024-06-14 本源量子计算科技(合肥)股份有限公司 量子模数乘逆运算方法、装置、电子装置及模数算术组件

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001255814A (ja) * 2000-03-10 2001-09-21 Murata Mach Ltd 復号方法、復号装置、及び復号プログラムの記録媒体
JP4774492B2 (ja) * 2003-10-28 2011-09-14 財団法人生産技術研究奨励会 認証システム及び遠隔分散保存システム
JP4575283B2 (ja) * 2005-11-15 2010-11-04 株式会社東芝 暗号装置、復号装置、プログラム及び方法
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 暗号装置、復号装置、鍵生成装置及びプログラム
JP2009175197A (ja) * 2008-01-21 2009-08-06 Toshiba Corp 暗号装置、復号装置、鍵生成装置及びプログラム
US8520854B2 (en) * 2008-08-28 2013-08-27 Red Hat, Inc. Sharing a secret using polynomials over polynomials
JP2010204466A (ja) 2009-03-04 2010-09-16 Toshiba Corp 暗号装置、復号装置、鍵生成装置及びプログラム
JP5736816B2 (ja) * 2010-05-31 2015-06-17 ソニー株式会社 認証装置、認証方法、プログラム、及び署名生成装置
JP5594034B2 (ja) * 2010-07-30 2014-09-24 ソニー株式会社 認証装置、認証方法、及びプログラム
JP6173904B2 (ja) * 2013-12-13 2017-08-02 株式会社東芝 共通鍵暗号装置及びプログラム、並びに、共通鍵復号装置及びプログラム
CN105337737B (zh) * 2014-07-03 2018-11-20 华为技术有限公司 公钥加密通信方法和装置
NL2013520B1 (en) * 2014-09-24 2016-09-29 Koninklijke Philips Nv Public-key encryption system.
DE102018108313A1 (de) * 2018-04-09 2019-10-10 Infineon Technologies Ag Verfahren und Verarbeitungsvorrichtung zum Ausführen einer kryptografischen Operation auf Gitterbasis

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
AKIYAMA, K. et al.,A Public-key Encryption Scheme Based on Non-linear Indeterminate Equations (Giophantus),Cryptology ePrint Archive,Paper 2017/1241 ver:20180730:082044,[online],2018年07月30日,pp.1-52,<URL:https://eprint.iarc.org/archive/2017/20180730:082044>
秋山浩一郎 他,一方向性を仮定した不定方程式暗号のバリエーションに関する考察,2020年 暗号と情報セキュリティシンポジウム予稿集,2020年01月,pp.1-8
秋山浩一郎 他,不定方程式暗号における鍵復元攻撃の改良及びパラメータの考察,2018年 暗号と情報セキュリティシンポジウム予稿集,pp.1-8
秋山浩一郎 他,不定方程式暗号のバリエーションに対する鍵復元攻撃に関する考察,2019年 暗号と情報セキュリティシンポジウム予稿集 ,2019年01月,pp.1-8

Also Published As

Publication number Publication date
JP2021124679A (ja) 2021-08-30
US20210248928A1 (en) 2021-08-12
US11288985B2 (en) 2022-03-29

Similar Documents

Publication Publication Date Title
CN110363030B (zh) 用于执行基于格的密码操作的方法和处理设备
EP1467512B1 (en) Encryption process employing chaotic maps and digital signature process
US7688973B2 (en) Encryption apparatus, decryption apparatus, key generation apparatus, program, and method
JP2008252299A (ja) 暗号処理システム及び暗号処理方法
JPH08504962A (ja) 暗号化方法
JP7328969B2 (ja) 暗号システムおよび方法
JP7273742B2 (ja) 暗号化装置、復号装置、暗号方法、復号方法、暗号化プログラム及び復号プログラム
US11838431B2 (en) Cryptographic operation
Lin et al. Effective generalized equations of secure hyperelliptic curve digital signature algorithms
US6480606B1 (en) Elliptic curve encryption method and system
Muhammad et al. Loop-based RSA key generation algorithm using string identity
Gaithuru et al. Insight into the operation of NTRU and a comparative study of NTRU, RSA and ECC public key cryptosystems
JP2007187908A (ja) サイドチャネル攻撃に耐性を有するモジュラーべき乗算計算装置及びモジュラーべき乗算計算方法
US20220150064A1 (en) Encryption device, decryption device, encryption method, decryption method, and computer program products
Petzoldt et al. Eliminating decryption failures from the simple matrix encryption scheme
JP2003255831A (ja) 楕円曲線スカラー倍計算方法及び装置
Ahirwal et al. Signcryption scheme that utilizes elliptic curve for both encryption and signature generation
Encinas et al. Maple implementation of the Chor-Rivest cryptosystem
Koç et al. Development of Cryptography since Shannon
Priyatharsan et al. A new elliptic curve cryptographic system over the finite fields
Mohapatra Signcryption schemes with forward secrecy based on elliptic curve cryptography
US20240205006A1 (en) Encryption device, decryption device, key generation device, encryption method, decryption method, key generation method, computer program product for encryption, computer program product for decryption, and computer program product for key generation
WO2003013052A1 (en) Cryptosystems based on non-commutatity
US20240195607A1 (en) Encryption device, key generation device, and computer program product for encryption
Faraoun A novel verifiable and unconditionally secure (m, t, n)-threshold multi-secret sharing scheme using overdetermined systems of linear equations over finite Galois fields

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230320

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230428

R151 Written notification of patent or utility model registration

Ref document number: 7273742

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151