JP7125857B2 - 暗号化システム、暗号化装置、復号装置、暗号化方法、復号方法、及びプログラム - Google Patents

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

Info

Publication number
JP7125857B2
JP7125857B2 JP2018096219A JP2018096219A JP7125857B2 JP 7125857 B2 JP7125857 B2 JP 7125857B2 JP 2018096219 A JP2018096219 A JP 2018096219A JP 2018096219 A JP2018096219 A JP 2018096219A JP 7125857 B2 JP7125857 B2 JP 7125857B2
Authority
JP
Japan
Prior art keywords
encryption
decryption
mod
key
encrypted 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.)
Active
Application number
JP2018096219A
Other languages
English (en)
Other versions
JP2019200382A (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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2018096219A priority Critical patent/JP7125857B2/ja
Priority to PCT/JP2019/017468 priority patent/WO2019220900A1/ja
Priority to US17/054,741 priority patent/US20210226791A1/en
Publication of JP2019200382A publication Critical patent/JP2019200382A/ja
Application granted granted Critical
Publication of JP7125857B2 publication Critical patent/JP7125857B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/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

Landscapes

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

Description

本発明は、暗号化システム、暗号化装置、復号装置、暗号化方法、復号方法、及びプログラムに関する。
多項式環を用いて定義された格子の最短ベクトル問題の困難性を利用した公開鍵暗号であるNTRU暗号が従来から知られている(非特許文献1)。近年では、耐量子暗号の候補として、NTRU暗号が注目されている。
また、NTRU暗号による暗号化においてRound関数を用いることで、復号に要する時間をより高速化させることが可能なRounded NTRU暗号と呼ばれる手法も知られている(非特許文献2)。
Jeffrey Hoffstein, Jill Pipher, Joseph H. Silverman: NTRU: A Ring-Based Public Key Cryptosystem., In ANTS 1998, pages 267-288. 1998. Daniel J. Bernstein, Chitchanok Chuengsatiansup, Tanja Lange, Christine van Vredendaal: NTRU Prime: Reducing Attack Surface at Low Cost. In SAC 2017, pages 235-260. 2017.
ところで、近年では、IoT機器等のハードウェア資源が比較的乏しい機器においても通信の暗号化や復号が要請されていることが多い。このため、より高速な処理が可能で、かつ、メモリ使用量が少ないNTRU暗号の実現が期待されている。
本発明の実施の形態は、上記の点に鑑みてなされたもので、NTRU暗号の復号処理を高速化すると共に、秘密鍵のサイズを小さくすることを目的とする。
上記目的を達成するため、本発明の実施の形態は、環R=Z[x]/(f(x))(ただし、f(x)は所定のn次多項式)の部分集合をD及びD、p<qを互いに素な正整数、f´及びg´を前記Rの要素として、前記Dからランダムに選択された要素f=p・f´と、前記Dからランダムに選択された要素g=1+p・g´と、法qでの前記fの逆元Fとを用いて、h=g・F(mod q)を公開鍵、前記fを秘密鍵として生成する鍵生成手段と、前記Rの部分集合をDとして、前記Dから選択された要素rと、前記hとを用いて、暗号化メッセージc=round(h・r)を生成する暗号化手段と、前記暗号化メッセージcを用いて、a=f・c(mod q)を計算した後、r=a(mod p)を計算することで、前記暗号化メッセージcを復号する復号手段と、を有することを特徴とする。
本発明の実施の形態によれば、NTRU暗号の復号処理を高速化すると共に、秘密鍵のサイズを小さくすることができる。
本発明の実施の形態における暗号化システムの全体構成の一例を示す図である。 本発明の実施の形態における暗号化装置及び復号装置のハードウェア構成の一例を示す図である。 本発明の実施の形態における暗号化システムの機能構成の一例を示す図である。 本発明の実施の形態における暗号化及び復号処理の一例を示すシーケンス図(実施例1)である。 本発明の実施の形態における暗号化及び復号処理の一例を示すシーケンス図(実施例2)である。
以下、本発明の実施の形態について説明する。本発明の実施の形態では、NTRU暗号の復号処理を高速化すると共に、秘密鍵のサイズを小さくすることが可能な暗号化システム1について説明する。
<NTRU暗号の従来手法>
本発明の実施の形態におけるNTRU暗号の手法を説明する前に、いくつかのNTRU暗号の従来手法について説明する。以降では、nをセキュリティパラメータ、Rを環であるものとする。環Rは、整数係数の多項式環Z[x]を用いて、R:=Z[x]/(f(x))と定義される。ここで、(f(x))はf(x)が生成するイデアルである。f(x)としては、例えば、f(x)=x-1、f(x)=x+1、f(x)=x-x-1又はf(x)=x+xn-1+・・・+x+1等の所定のn次多項式であるものとする。
また、p及びqを、p<q、かつ、互いに素な正整数であるものとする。このようなp及びqとしては、例えば、p=3、q=210等が挙げられる。
更に、環Rの適当な部分集合をDとした場合に、環Rの要素fをDからランダムに選ぶことを「f←D」と表す。また、環Rの要素同士の加法を「+」、乗法を「・」で表す。
(1)NTRU暗号
非特許文献1に開示されているNTRU暗号では、以下のように鍵生成、暗号化及び復号が行われる。
(鍵生成)
f←、g←として、h:=g・F (mod q)を計算する。ここで、D及びDは環Rの部分集合、Fは法qでのfの逆元(すなわち、f・F=1 (mod q)となる要素)である。
そして、公開鍵をh、秘密鍵をf及びFとする。ここで、Fは法pでのfの逆元(すなわち、f・F=1 (mod p)となる要素)である。
なお、Fを秘密鍵として予め生成しておくのではなく、復号時にfからFを計算しても良い。ただし、この場合、復号時に、fからFを計算するための計算時間を要する。
(暗号化)
(r,e)を用いて、暗号化メッセージc:=p・h・r+e (mod q)を計算する。ここで、rは環Rの部分集合Dの要素である。また、eは環Rの部分集合Dの要素であり、暗号化対象のメッセージである。(r,e)は、暗号化メッセージの送信側(すなわち、暗号化メッセージを生成及び送信する機器又は装置等)により選ばれる。(r,e)としては、例えば、D及びDを環Rの部分集合として、r←、eをDから選択された要素とすれば良い。なお、Dは、暗号化対象のメッセージの集合(例えば、平文集合等)である。
(復号)
暗号化メッセージcの受信側(すなわち、暗号化メッセージを受信及び復号する機器又は装置等)は、以下のStep1-1及びStep1-2により暗号化メッセージcをメッセージeに復号する。
Step1-1)a:=f・c (mod q)を計算する。なお、f・c=p・f・h・r+f・e=p・g・r+f・e (mod q)である。
Step1-2)e:=a・F (mod p)を計算する。これにより、メッセージeが得られる。なお、必要ならば、r=(c-e)/(p・h)を計算しても良い。
(2)f=1+p・f´型のNTRU暗号
上記(1)のNTRU暗号の手法の一部を変形した従来手法として、fを1+p・f´の形に制限したNTRU暗号(このNTRU暗号を「f=1+p・f´型のNTRU暗号」と表す。)がある。ここで、f´は環Rの要素である。
この場合、fの法pでの逆元Fは必ず1となる。これは、f=1 (mod p)となるためである。そのため、f=1+p・f´型のNTRU暗号では、上記のNTRU暗号と比べて、秘密鍵にFを含める必要がなく、かつ、上記のStep1-2におけるFの乗法が不要となるという利点がある。
(鍵生成)
f=1+p・f´←、g←として、h:=g・F (mod q)を計算する。ここで、D及びDは環Rの部分集合、Fは法qでのfの逆元である。
そして、公開鍵をh、秘密鍵をfとする。
(暗号化)
(r,e)を用いて、暗号化メッセージc:=p・h・r+e (mod q)を計算する。ここで、rは環Rの部分集合Dの要素である。また、eは環Rの部分集合Dの要素であり、暗号化対象のメッセージである。(r,e)は、暗号化メッセージの送信側により選ばれる。
(復号)
暗号化メッセージcの受信側は、以下のStep2-1及びStep2-2により暗号化メッセージcをメッセージeに復号する。
Step2-1)a:=f・c (mod q)を計算する。なお、f・c=p・f・h・r+f・e=p・g・r+(1+p・f´)・e=e+p・(g・r+f´・e) (mod q)である。
Step2-2)e:=a (mod p)を計算する。これにより、メッセージeが得られる。なお、必要ならば、r=(c-e)/(p・h)を計算しても良い。
(3)Rounded NTRU暗号
非特許文献2に開示されているRounded NTRU暗号では、暗号化の際にRound関数でeを定義する。すなわち、Rounded NTRU暗号では、eをp・h・rから一意に決定する。ここで、Round関数をround(・)として、round(a)は、a∈Zについて、最も近いpの倍数に丸める関数であるものとする。具体的な計算例を挙げると、round(-5)=-6、round(4)=3等となる。
(鍵生成)
f=p・f´←、g←として、h:=g・F (mod q)を計算する。ここで、D及びDは環Rの部分集合、Fは法qでのfの逆元である。
そして、公開鍵をh、秘密鍵をf及びGとする。ここで、Gは法pでのgの逆元(すなわち、g・G=1 (mod p)となる要素)である。
(暗号化)
rを用いて、暗号化メッセージc:=round(h・r)を計算する。ここで、rは環Rの部分集合Dの要素であり、暗号化対象のメッセージである。rは、暗号化メッセージの送信側により選ばれる。rとしては、例えば、Dを環Rの部分集合として、rをDから選択された要素すれば良い。なお、Rounded NTRU暗号では、Dが暗号化対象のメッセージの集合(例えば、平文集合等)である。
ここで、上述したように、round(h・r)によりeが一意に決定される。すなわち、round(h・r)=h・r+eである。
(復号)
暗号化メッセージcの受信側は、以下のStep3-1~Step3-3により暗号化メッセージcをメッセージrに復号する。
Step3-1)a:=f・c (mod q)を計算する。なお、f・c=(p・f´)・(h・r+e)=g・r+p・f´・e (mod q)である。
Step3-2)a´:=a (mod p)を計算する。なお、a=g・r (mod p)である。
Step3-3)r:=a´・G (mod p)を計算する。これにより、メッセージrが得られる。
(4)Rounded NTRU暗号+Dent4
上記(3)のRounded NTRU暗号に対して、以下の参考文献1のTable4に記載されている鍵カプセル化メカニズム(KEM:Key Encapsulation Mechanism)を適用することもできる。
[参考文献1]
Alexander W. Dent: A Designer's Guide to KEMs, https://eprint.iacr.org/2002/174
上記の鍵カプセル化メカニズムをRounded NTRU暗号に適用したNTRU暗号を「Rounded NTRU暗号+Dent4」と表す。
(鍵生成)
f=p・f´←、g←として、h:=g・F (mod q)を計算する。ここで、D及びDは環Rの部分集合、Fは法qでのfの逆元である。
そして、公開鍵をh、秘密鍵をh、f及びGとする。ここで、Gは法pでのgの逆元である。
(暗号化(鍵カプセル化))
r←として、c:=round(h・r)を計算する。また、(c,K):=H(r)を計算する。ここで、Dは環Rの部分集合、H(・)はハッシュ関数である。
そして、c:=(c,c)を暗号化メッセージ、Kを共有鍵とする。なお、(c,K)は、例えば、H(r)として得られるビット長をL、共有鍵のビット長をLとした場合、H(r)として得られたビット列のうち、0ビット目からL-L-1ビット目までのビット列をc、L-Lビット目からL-1ビット目までのビット列をKとすれば良い。
ここで、上述したように、round(h・r)によりeが一意に決定される。すなわち、round(h・r)=h・r+eである。
(復号(鍵カプセル化解除))
暗号化メッセージcの受信側は、以下のStep4-1~Step4-5により鍵カプセル化解除を行って、共有鍵を生成する。
Step4-1)a:=f・c (mod q)を計算する。なお、f・c=(p・f´)・(h・r+e)=g・r+p・f´・e (mod q)である。
Step4-2)a´:=a (mod p)を計算する。なお、a=g・r (mod p)である。
Step4-3)r´:=a´・G (mod p)を計算する。
Step4-4)r´を用いて鍵カプセル化を行って、c´、c´及びK´を得る。すなわち、c´:=round(h・r´)と、(c´,K´):=H(r´)とを計算して、c´、c´及びK´を得る。
Step4-5)r´∈D、かつ、(c,c)=(c´,c´)である場合、K´を共有鍵とする。これより、暗号化メッセージcの受信側と送信側との間で共有鍵K=K´が共有される。なお、r´∈D及び(c,c)=(c´,c´)の少なくとも一方を満たさない場合、復号失敗(鍵カプセル化解除失敗)とする。
<本発明の実施の形態におけるNTRU暗号の手法>
次に、本発明の実施の形態におけるNTRU暗号の手法は、上記(3)のRounded NTRU暗号を改良して、秘密鍵をfとしたものである。これにより、上記(3)のRounded NTRU暗号と比べて、秘密鍵としてGを保存する必要がなく、かつ、上記のStep3-3が不要になるという利点がある。すなわち、本発明の実施の形態におけるNTRU暗号の手法では、復号処理の高速化させることができると共に、秘密鍵のサイズを小さくすることができる。
(鍵生成)
f=p・f´←、g=1+p・g´←として、h:=g・F (mod q)を計算する。ここで、D及びDは環Rの部分集合、g´は環Rの要素、Fは法qでのfの逆元である。
そして、公開鍵をh、秘密鍵をfとする。このように、上記(3)のRounded NTRU暗号と比べて、秘密鍵としてGが不要であるため、秘密鍵のサイズを小さくすることができる。言い換えれば、秘密鍵の保存に必要な記憶領域を小さくすることができる。なお、fに加えて、gも秘密鍵としても良い。
(暗号化)
rを用いて、暗号化メッセージc:=round(h・r)を計算する。ここで、rは環Rの部分集合Dの要素であり、暗号化対象のメッセージである。rは、暗号化メッセージの送信側により選ばれる。rとしては、例えば、Dを環Rの部分集合として、rをDから選択された要素すれば良い。なお、本発明の実施の形態におけるNTRU暗号では、上記(3)のRounded NTRU暗号と同様に、Dが暗号化対象のメッセージの集合(例えば、平文集合等)である。
ここで、上記(3)のRounded NTRU暗号と同様に、round(h・r)によりeが一意に決定される。すなわち、round(h・r)=h・r+eである。
(復号)
暗号化メッセージcの受信側は、以下のStep5-1~Step5-3により暗号化メッセージcをメッセージrに復号する。
Step5-1)a:=f・c (mod q)を計算する。なお、f・c=(p・f´)・(h・r+e)=p・f´・h・r+p・f´・e=(1+p・g´)・r+p・f´・e=r+p・(g´・r+f´・e) (mod q)
Step5-2)r:=a (mod p)を計算する。これにより、メッセージrが得られる。このように、上記(3)のRounded NTRU暗号と比べて、上記のStep3-3が不要であるため、復号処理をより高速に行うことができるようになる。
<本発明の実施の形態におけるNTRU暗号+Dent4の手法>
本発明の実施の形態におけるNTRU暗号に対して、上記の参考文献1のTable4に記載されている鍵カプセル化メカニズムを適用することもできる。この鍵カプセル化メカニズムを、本発明の実施の形態におけるNTRU暗号に適用したNTRU暗号を「本発明の実施の形態におけるRounded NTRU暗号+Dent4」と表す。
(鍵生成)
f=p・f´←、g=1+p・g´←として、h:=g・F (mod q)を計算する。ここで、D及びDは環Rの部分集合、g´は環Rの要素、Fは法qでのfの逆元である。
そして、公開鍵をh、秘密鍵をh及びfとする。このように、上記(4)のRounded NTRU暗号+Dent4と比べて、秘密鍵としてGが不要であるため、秘密鍵のサイズを小さくすることができる。言い換えれば、秘密鍵の保存に必要な記憶領域を小さくすることができる。なお、fに加えて、gも秘密鍵としても良い。
(暗号化(鍵カプセル化))
r←として、c:=round(h・r)を計算する。また、(c,K):=H(r)を計算する。ここで、Dは環Rの部分集合、H(・)はハッシュ関数である。
そして、c:=(c,c)を暗号化メッセージ、Kを共有鍵とする。
ここで、上述したように、round(h・r)によりeが一意に決定される。すなわち、round(h・r)=h・r+eである。
(復号(鍵カプセル化解除))
暗号化メッセージcの受信側は、以下のStep6-1~Step6-4により鍵カプセル化解除を行って、共有鍵を生成する。
Step6-1)a:=f・c (mod q)を計算する。なお、f・c=(p・f´)・(h・r+e)=(1+p・g´)・r+p・f´・e=r+p・(g´・r+f´・e) (mod q)である。
Step6-2)r´:=a (mod p)を計算する。
Step6-3)r´を用いて鍵カプセル化を行って、c´、c´及びK´を得る。すなわち、c´:=round(h・r´)と、(c´,K´):=H(r´)とを計算して、c´、c´及びK´を得る。
Step6-4)r´∈D、かつ、(c,c)=(c´,c´)である場合、K´を共有鍵とする。これより、暗号化メッセージcの受信側と送信側との間で共有鍵K=K´が共有される。なお、r´∈D及び(c,c)=(c´,c´)の少なくとも一方を満たさない場合、復号失敗(鍵カプセル化解除失敗)とする。
このように、上記(4)のRounded NTRU暗号+Dent4と比べて、上記のStep4-3が不要であるため、復号処理(鍵カプセル化解除処理)をより高速に行うことができるようになる。
<全体構成>
次に、本発明の実施の形態における暗号化システム1の全体構成について、図1を参照しながら説明する。図1は、本発明の実施の形態における暗号化システム1の全体構成の一例を示す図である。
図1に示すように、本発明の実施の形態における暗号化システム1には、1台以上の暗号化装置10と、1台以上の復号装置20とが含まれる。また、暗号化装置10と復号装置20とは、例えばインターネット等の広域的なネットワークNを介して通信可能に接続されている。
暗号化装置10は、公開鍵の生成と、暗号化メッセージの復号とを行う各種装置又は機器である。一方で、復号装置20は、メッセージの暗号化を行う各種装置又は機器である。
暗号化装置10及び復号装置20としては、他の装置又は機器と通信可能な任意の装置又は機器が用いられる。例えば、PC(パーソナルコンピュータ)、スマートフォン、タブレット端末、ウェアラブルデバイス、ゲーム機器、家電、カーナビゲーション端末、センサデバイス等のIoT機器等が用いられる。
<ハードウェア構成>
次に、本発明の実施の形態における暗号化装置10及び復号装置20のハードウェア構成について、図2を参照しながら説明する。図2は、本発明の実施の形態における暗号化装置10及び復号装置20のハードウェア構成の一例を示す図である。なお、暗号化装置10及び復号装置20は、略同様のハードウェア構成で実現可能であるため、以降では、主に、暗号化装置10のハードウェア構成について説明する。
図2に示すように、本発明の実施の形態における暗号化装置10は、入力装置11と、表示装置12と、外部I/F13と、RAM(Random Access Memory)14と、ROM(Read Only Memory)15と、CPU(Central Processing Unit)16と、通信I/F17と、補助記憶装置18とを有する。これらの各ハードウェアは、それぞれがバスBを介して通信可能に接続されている。
入力装置11は、例えばキーボードやマウス、タッチパネル等である。表示装置12は、例えばディスプレイ等である。なお、暗号化装置10及び復号装置20は、入力装置11及び表示装置12のうちの少なくとも一方を有していなくても良い。
外部I/F13は、外部装置とのインタフェースである。外部装置には、記録媒体13a等がある。記録媒体13aとしては、例えば、CD(Compact Disc)、DVD(Digital Versatile Disk)、SDメモリカード(Secure Digital memory card)、USB(Universal Serial Bus)メモリカード等が挙げられる。記録媒体13aには、暗号化装置10の各機能を実現する1以上のプログラムや復号装置20の各機能を実現する1以上のプログラム等が記録されていても良い。
RAM14は、プログラムやデータを一時保持する揮発性の半導体メモリである。ROM15は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。
CPU16は、ROM15や補助記憶装置18等からプログラムやデータをRAM14上に読み出して処理を実行する演算装置である。
通信I/F17は、ネットワークNに接続するためのインタフェースである。なお、暗号化装置10の各機能を実現する1以上のプログラムや復号装置20の各機能を実現する1以上のプログラム等は、通信I/F17を介して、所定のサーバ装置等から取得(ダウンロード)されても良い。
補助記憶装置18は、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)等の不揮発性の記憶装置である。補助記憶装置18には、暗号化装置10の各機能を実現する1以上のプログラム等が記憶されている。なお、復号装置20の補助記憶装置18には、当該復号装置20の各機能を実現する1以上のプログラム等が記憶されている。
本発明の実施の形態における暗号化装置10及び復号装置20は、図2に示すハードウェア構成を有することにより、後述する各種処理を実現することができる。なお、図2では、本発明の実施の形態における暗号化装置10及び復号装置20が1台の情報処理装置(コンピュータ)で実現されている場合を示したが、これに限られない。本発明の実施の形態における暗号化装置10及び復号装置20は、複数台の情報処理装置(コンピュータ)で実現されていても良い。
<機能構成>
次に、本発明の実施の形態における暗号化システム1の機能構成について、図3を参照しながら説明する。図3は、本発明の実施の形態における暗号化システム1の機能構成の一例を示す図である。
図3に示すように、本発明の実施の形態における暗号化装置10は、通信部101と、暗号化部102とを有する。これら各機能部は、暗号化装置10にインストールされた1以上のプログラムがCPU16に実行させる処理により実現される。
通信部101は、復号装置20との間で各種データの送受信を行う。例えば、通信部101は、暗号化メッセージを復号装置20に送信する。
暗号化部102は、復号装置20によって公開された公開鍵を用いて、本発明の実施の形態におけるNTRU暗号により暗号化メッセージを生成する。
図3に示すように、本発明の実施の形態における復号装置20は、通信部201と、鍵生成部202と、復号部203とを有する。これら各機能部は、復号装置20にインストールされた1以上のプログラムがCPU16に実行させる処理により実現される。
通信部201は、暗号化装置10との間で各種データの送受信を行う。例えば、通信部201は、暗号化装置10からの暗号化メッセージを受信する。
鍵生成部202は、本発明の実施の形態におけるNTRU暗号により公開鍵及び秘密鍵を生成する。
復号部203は、鍵生成部202により生成した秘密鍵を用いて、本発明の実施の形態におけるNTRU暗号により暗号化メッセージを復号する。
<暗号化及び復号処理(実施例1)>
以降では、実施例1として、本発明の実施の形態におけるNTRU暗号により暗号化及び復号を行う処理について、図4を参照しながら説明する。図4は、本発明の実施の形態における暗号化及び復号処理の一例を示すシーケンス図(実施例1)である。
まず、復号装置20の鍵生成部202は、公開鍵hと秘密鍵fとを生成する(ステップS101)。すなわち、鍵生成部202は、f=p・f´←、g=1+p・g´←として、h:=g・F (mod q)を計算し、公開鍵をh、秘密鍵をfとする。ここで、D及びDは環Rの部分集合、g´は環Rの要素、Fは法qでのfの逆元である。なお、公開鍵hは、暗号化装置10に対して公開される。
次に、暗号化装置10の暗号化部102は、公開鍵hを用いて、暗号化対象のメッセージr∈Dを暗号化して、暗号化メッセージcを生成する(ステップS102)。すなわち、暗号化部102は、c:=round(h・r)を計算することで、暗号化メッセージcを生成する。ここで、Dは、環Rの部分集合である。
次に、暗号化装置10の通信部101は、暗号化メッセージcを復号装置20に送信する(ステップS103)。
復号装置20の復号部203は、通信部201により暗号化メッセージcを受信すると、秘密鍵fを用いて、上記のStep5-1~Step5-3により暗号化メッセージcをメッセージrに復号する(ステップS104)。
<暗号化及び復号処理(実施例2)>
以降では、実施例2として、本発明の実施の形態におけるNTRU暗号+Dent4により暗号化装置10と復号装置20との間で共有鍵を共有した上で、この共有鍵により暗号化及び復号を行う処理について、図5を参照しながら説明する。図5は、本発明の実施の形態における暗号化及び復号処理の一例を示すシーケンス図(実施例2)である。
まず、復号装置20の鍵生成部202は、公開鍵hと秘密鍵fとを生成する(ステップS201)。すなわち、鍵生成部202は、f=p・f´←、g=1+p・g´←として、h:=g・F (mod q)を計算し、公開鍵をh、秘密鍵をfとする。ここで、D及びDは環Rの部分集合、g´は環Rの要素、Fは法qでのfの逆元である。なお、公開鍵hは、暗号化装置10に対して公開される。
次に、暗号化装置10の暗号化部102は、公開鍵hを用いて、鍵カプセル化により共有鍵K及び暗号化メッセージcを生成する(ステップS202)。すなわち、暗号化部102は、r←として、c:=round(h・r)と、(c,K):=H(r)とを計算して、暗号化メッセージc:=(c,c)及び共有鍵Kを生成する。ここで、Dは環Rの部分集合、H(・)はハッシュ関数である。
次に、暗号化装置10の通信部101は、暗号化メッセージcを復号装置20に送信する(ステップS203)。
復号装置20の復号部203は、通信部201により暗号化メッセージcを受信すると、秘密鍵fを用いて、上記のStep6-1~Step6-4により暗号化メッセージcから共有鍵K=K´を生成する(ステップS204)。そして、復号部203は、共有鍵Kが得られたことを暗号化装置10に通知する。
次に、暗号化装置10の暗号化部102は、共有鍵Kを用いて、任意の暗号化アルゴリズムにより暗号化対象のメッセージを暗号化して、暗号化メッセージを生成する(ステップS205)。
次に、暗号化装置10の通信部101は、暗号化メッセージを復号装置20に送信する(ステップS206)。
復号装置20の復号部203は、通信部201により暗号化メッセージを受信すると、共有鍵Kを用いて、上記の暗号化アルゴリズムに対応する復号アルゴリズムにより暗号化メッセージを復号する(ステップS207)。
<本発明の効果>
ここで、一例として、以下の参考文献2に記載されているパラメータセットkem/ntrulpr4591761を用いた場合における本発明の効果について説明する。
[参考文献2]
Daniel J. Bernstein, Chitchanok Chuengsatiansup, Tanja Lange, Christine van Vredendaal: NTRU Prime NIST Submitted.
上記のパラメータセットkem/ntrulpr4591761では、p=3、n=761、q=4591であり、f(x)=x-x-1である。この場合、上記の参考文献2に記載されているように、従来のRounded NTRU暗号では、公開鍵は1218bytes、暗号化メッセージは1015bytes、秘密鍵は1600bytes=1218+191+191bytesである。
これに対して、本発明の実施の形態におけるNTRU暗号の手法を用いることで、秘密鍵のサイズを1409bytes=1218+191bytesに削減することができる。
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
1 暗号化システム
10 暗号化装置
20 復号装置
101 通信部
102 暗号化部
201 通信部
202 鍵生成部
203 復号部

Claims (6)

  1. 環R=Z[x]/(f(x))(ただし、f(x)は所定のn次多項式)の部分集合をD及びD、p<qを互いに素な正整数、f´及びg´を前記Rの要素として、前記Dからランダムに選択された要素f=p・f´と、前記Dからランダムに選択された要素g=1+p・g´と、法qでの前記fの逆元Fとを用いて、h=g・F(mod q)を公開鍵、前記fを秘密鍵として生成する鍵生成手段と、
    前記Rの部分集合をD、前記Dから選択された要素rを暗号化対象として、前記rと、前記hとを用いて、暗号化メッセージc=round(h・r)を生成する暗号化手段と、
    前記暗号化メッセージcを用いて、a=f・c(mod q)を計算した後、復号結果を表すr=a(mod p)を計算することで、前記暗号化メッセージcを復号する復号手段と、
    を有することを特徴とする暗号化システム。
  2. 前記暗号化手段は、
    前記Dからランダムに選択された要素rを暗号化対象として、前記rと、前記hと、
    所定のハッシュ関数Hとを用いて、c=round(h・r)と、(c,K)=H(r)とを計算し、暗号化メッセージc=(c,c)と、共有鍵Kとを生成し、
    前記復号手段は、
    前記暗号化メッセージcを用いて、a=f・c (mod q)を計算した後、復号結果を表すr´=a (mod p)を計算し、
    前記r´を用いて、c´=round(h・r´)と、(c´,K´)=H(r´)とを計算することで、共有鍵K=K´を生成する、
    ことを特徴とする請求項1に記載の暗号化システム。
  3. 前記復号手段は、
    前記r´が前記Dの要素であり、かつ、(c,c)=(c´,c´)である場合に、前記K´を共有鍵Kとして生成し、
    前記r´が前記Dの要素でない又は/及び(c,c)=(c´,c´)でない場合、復号失敗とする、
    ことを特徴とする請求項2に記載の暗号化システム。
  4. 環R=Z[x]/(f(x))(ただし、f(x)は所定のn次多項式)の部分集合をD及びD、p<qを互いに素な正整数、f´及びg´を前記Rの要素として、前記Dからランダムに選択された要素f=p・f´と、前記Dからランダムに選択された要素g=1+p・g´と、法qでの前記fの逆元Fとを用いて、h=g・F(mod q)を公開鍵、前記fを秘密鍵として生成する鍵生成手段と、
    前記hを用いて暗号化装置により暗号化された暗号化メッセージcを受信する受信手段と、
    前記受信手段により受信された暗号化メッセージcを用いて、a=f・c(mod q)を計算した後、復号結果を表すr=a(mod p)を計算することで、前記暗号化メッセージcを復号する復号手段と、
    を有することを特徴とする復号装置。
  5. 環R=Z[x]/(f(x))(ただし、f(x)は所定のn次多項式)の部分集合をD及びD、p<qを互いに素な正整数、f´及びg´を前記Rの要素として、前記Dからランダムに選択された要素f=p・f´と、前記Dからランダムに選択された要素g=1+p・g´と、法qでの前記fの逆元Fqとを用いて、h=g・F(mod q)を公開鍵、前記fを秘密鍵として生成する鍵生成手順と、
    前記hを用いて暗号化装置により暗号化された暗号化メッセージcを受信する受信手順と、
    前記受信手順により受信された暗号化メッセージcを用いて、a=f・c(mod q)を計算した後、復号結果を表すr=a(mod p)を計算することで、前記暗号化メッセージcを復号する復号手順と、
    をコンピュータが実行することを特徴とする復号方法。
  6. コンピュータを、請求項に記載の復号装置として機能させるためのプログラム。

JP2018096219A 2018-05-18 2018-05-18 暗号化システム、暗号化装置、復号装置、暗号化方法、復号方法、及びプログラム Active JP7125857B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2018096219A JP7125857B2 (ja) 2018-05-18 2018-05-18 暗号化システム、暗号化装置、復号装置、暗号化方法、復号方法、及びプログラム
PCT/JP2019/017468 WO2019220900A1 (ja) 2018-05-18 2019-04-24 暗号化システム、暗号化装置、復号装置、暗号化方法、復号方法、及びプログラム
US17/054,741 US20210226791A1 (en) 2018-05-18 2019-04-24 Encryption system, encryption apparatus, decryption apparatus, encryption method, decryption method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018096219A JP7125857B2 (ja) 2018-05-18 2018-05-18 暗号化システム、暗号化装置、復号装置、暗号化方法、復号方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2019200382A JP2019200382A (ja) 2019-11-21
JP7125857B2 true JP7125857B2 (ja) 2022-08-25

Family

ID=68539852

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018096219A Active JP7125857B2 (ja) 2018-05-18 2018-05-18 暗号化システム、暗号化装置、復号装置、暗号化方法、復号方法、及びプログラム

Country Status (3)

Country Link
US (1) US20210226791A1 (ja)
JP (1) JP7125857B2 (ja)
WO (1) WO2019220900A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7273753B2 (ja) * 2020-03-06 2023-05-15 株式会社東芝 数論変換処理装置、数論変換処理方法及びプログラム
US11991281B1 (en) * 2023-10-31 2024-05-21 Massood Kamalpour Systems and methods for digital data management including creation of storage location with storage access id

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
BERNSTEIN, Daniel J. et al.,NTRU Prime: reducing attack surfice at low cost,Cryptology ePrint Archive,International Association for Cryptologic Research,2017年08月,Report 2016/461, Ver. 20170817:160919,pp. 1-55,https://eprint.iacr.org/2016/461/20170817:160919,[2019年7月23日検索],インターネット
HUELSING, Andreas et al.,High-speed key encapsulation from NTRU,Cryptology ePrint Archive,International Association for Cryptologic Research,2017年08月,Report 2017/667, Ver. 20170829:225239,pp. 1-27,https://eprint.iacr.org/2017/667/20170829:225239,[2019年7月24日検索],インターネット

Also Published As

Publication number Publication date
WO2019220900A1 (ja) 2019-11-21
JP2019200382A (ja) 2019-11-21
US20210226791A1 (en) 2021-07-22

Similar Documents

Publication Publication Date Title
Sohal et al. BDNA-A DNA inspired symmetric key cryptographic technique to secure cloud computing
Acar et al. A survey on homomorphic encryption schemes: Theory and implementation
Perlner et al. Quantum resistant public key cryptography: a survey
US8429408B2 (en) Masking the output of random number generators in key generation protocols
JP6019453B2 (ja) 暗号化装置、復号化装置、及びプログラム
JP5011264B2 (ja) セキュリティ強化のための転置データ変換
JP6363032B2 (ja) 鍵付替え方向制御システムおよび鍵付替え方向制御方法
CN107359979B (zh) 基于截断多项式的对称全同态加密方法
Iyer et al. A novel idea on multimedia encryption using hybrid crypto approach
JP6556955B2 (ja) 通信端末、サーバ装置、プログラム
Sengupta et al. Message mapping and reverse mapping in elliptic curve cryptosystem
CN115549891B (zh) 同态加密方法、同态解密方法、同态计算方法及设备
Kanna et al. Enhancing the security of user data using the keyword encryption and hybrid cryptographic algorithm in cloud
Hodowu et al. An enhancement of data security in cloud computing with an implementation of a two-level cryptographic technique, using AES and ECC algorithm
JP7125857B2 (ja) 暗号化システム、暗号化装置、復号装置、暗号化方法、復号方法、及びプログラム
JP6294882B2 (ja) 鍵保管装置、鍵保管方法、及びそのプログラム
Grover et al. A framework for cloud data security
CN109495478B (zh) 一种基于区块链的分布式安全通信方法及***
EP2395698B1 (en) Implicit certificate generation in the case of weak pseudo-random number generators
WO2022239129A1 (ja) 鍵交換システム、機器、鍵交換方法、及びプログラム
JP4685621B2 (ja) 鍵生成装置、暗号化装置、復号化装置、乗法型ナップザック暗号システム、乗法型ナップザック暗号復号方法およびプログラム
JPWO2005098796A1 (ja) 暗号方式の安全性を保証するパディング適用方法
WO2024028961A1 (ja) 暗号システム、方法及びプログラム
Kumari et al. An EHSA for RSA Cryptosystem
Singh et al. Security of Data with 3DES & Watermarking Algorithm

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200819

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211005

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211203

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20220426

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220711

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20220711

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20220719

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20220720

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220815

R150 Certificate of patent or registration of utility model

Ref document number: 7125857

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150