JP2023178201A - 暗号化装置、復号装置、ストレージシステム、情報処理装置、暗号化方法、復号方法、解凍装置、及び解凍方法 - Google Patents

暗号化装置、復号装置、ストレージシステム、情報処理装置、暗号化方法、復号方法、解凍装置、及び解凍方法 Download PDF

Info

Publication number
JP2023178201A
JP2023178201A JP2023044386A JP2023044386A JP2023178201A JP 2023178201 A JP2023178201 A JP 2023178201A JP 2023044386 A JP2023044386 A JP 2023044386A JP 2023044386 A JP2023044386 A JP 2023044386A JP 2023178201 A JP2023178201 A JP 2023178201A
Authority
JP
Japan
Prior art keywords
ciphertext
component
subsequent
random number
subcomponent
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.)
Pending
Application number
JP2023044386A
Other languages
English (en)
Inventor
義洋 大場
Yoshihiro Oba
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.)
Kioxia Corp
Original Assignee
Kioxia 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 Kioxia Corp filed Critical Kioxia Corp
Priority to US18/204,878 priority Critical patent/US20230396411A1/en
Publication of JP2023178201A publication Critical patent/JP2023178201A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

【課題】格子理論に基づく暗号文を可逆的に圧縮する暗号化装置を提供する。【解決手段】実施形態に係る暗号化装置は、生成部と置換部と暗号化部を具備する。生成部は(n+1)次元の一次独立な部分乱数ベクトルを生成し、部分乱数ベクトルからN次元の乱数ベクトルを生成する。置換部はN次元の乱数ベクトルに対して所定の関数による演算を所定回数実行した結果を出力する。暗号化部は平文ブロックの先頭成分に対して(n+1)次元の正則な部分行列を持つN行(n+1)列の公開鍵とN次元の乱数ベクトルを用いて暗号化する。暗号化部は平文ブロックの後続成分に対して公開鍵と置換部の出力を用いて暗号化し、先頭サブ成分の暗号文を含み後続サブ成分の暗号文を含まない後続成分圧縮暗号文を生成する。nとNは正整数であり、(n+1)<Nである。【選択図】図1

Description

本発明の実施形態は、暗号化装置、復号装置、ストレージシステム、情報処理装置、暗号化方法、復号方法、解凍装置、及び解凍方法に関する。
格子理論に基づく暗号化(以下、格子暗号化と称する)において、暗号文を圧縮することが提案されている。一例として、暗号文に使用される除数の変更におる暗号文の圧縮が提案されている。圧縮前の暗号文に使用される除数qと圧縮後の暗号文に使用される除数q´の関係をq´<qとすると、暗号文の1シンボルをエンコードするのに必要なビット幅を小さくすることができる。この結果、暗号文のサイズが低減でき、暗号文が圧縮される。
しかし、q´<qとすると、q種類の暗号文シンボルのうち、(q-q´)種類については復号が正しく行われない。すなわち、この圧縮は可逆的な圧縮ではない。
米国特許出願公開第2019/0312728号明細書 特表2020-537450号公報 特表2020-537191号公報
"Ring-LWE Ciphertext Compression and Error Correction",https://eprint.iacr.org/2016/1058.pdf
本発明の一実施形態は、格子理論に基づく暗号文を可逆的に圧縮する暗号化装置を提供することである。
実施形態に係る暗号化装置は、先頭成分と複数の後続成分を含む平文ブロックを暗号化して、前記先頭成分に対応する先頭成分暗号文と前記複数の後続成分に対応する複数の後続成分暗号文とを生成可能である。前記先頭成分暗号文は先頭サブ成分と後続サブ成分を含む。前記複数の後続成分暗号文のそれぞれは先頭サブ成分と後続サブ成分を含む。前記暗号化装置は、(n+1)次元の一次独立な部分乱数ベクトルを生成し、前記部分乱数ベクトルからN次元の乱数ベクトルを生成する生成部と、前記N次元の乱数ベクトルに対して所定の関数による演算を所定回数実行した結果を出力する置換部と、(n+1)次元の正則な部分行列を持つN行(n+1)列の公開鍵と前記N次元の乱数ベクトルを用いて前記先頭成分を暗号化し、前記先頭成分暗号文を生成し、前記公開鍵と前記置換部の出力を用いて前記後続成分を暗号化し、前記複数の後続成分暗号文を生成する暗号化部と、を具備する。前記後続成分暗号文は、先頭サブ成分の暗号文を含み、後続サブ成分の暗号文を含まない。nとNは正整数であり、(n+1)<Nである。
第1実施形態に係る暗号化装置の構成例を説明するためのブロック図。 第1実施形態に係る暗号化装置に入力される平文ブロックの一例を説明するための図。 第1実施形態に係る暗号化装置の処理の一例を説明するためのフローチャート。 第1実施形態に係る圧縮暗号文ブロックのレイアウトの一例を説明するための図。 第2実施形態に係る復号装置の構成例を説明するためのブロック図。 第2実施形態に係る復号装置の処理の一例を説明するためのフローチャート。 第3実施形態に係るストレージシステムの一例を説明するためのブロック図。 第4実施形態に係るストレージシステムの一例を説明するためのブロック図。 第5実施形態に係る情報処理システムの一例を説明するためのブロック図。 第6実施形態に係るストレージシステムの一例を説明するためのブロック図。 第7実施形態に係る情報処理システムの一例を説明するためのブロック図。 第8実施形態に係る解凍装置の構成例を説明するためのブロック図。 第8実施形態に係る平文ブロックの一例を説明するための図。 第8実施形態に係る解凍装置の処理の一例を説明するためのフローチャート。 第8実施形態に係る圧縮暗号文ブロックのレイアウトの一例を説明するための図。 第9実施形態に係るストレージシステムの一例を説明するためのブロック図。 第10実施形態に係るストレージシステムの一例を説明するためのブロック図。 第11実施形態に係るストレージシステムの一例を説明するためのブロック図。 第12実施形態に係る情報処理システムの一例を説明するためのブロック図。 第13実施形態に係るストレージシステムの一例を説明するためのブロック図。 第14実施形態に係る情報処理システムの一例を説明するためのブロック図。
以下、図面を参照して、実施形態を説明する。以下の説明は、実施形態の技術的思想を具体化するための装置や方法を例示するものであって、実施形態の技術的思想は、以下に説明する構成要素の構造、形状、配置、材質等に限定されるものではない。当業者が容易に想到し得る変形は、当然に開示の範囲に含まれる。説明をより明確にするため、図面において、各要素のサイズ、厚み、平面寸法又は形状等を実際の実施態様に対して変更して模式的に表す場合もある。複数の図面において、互いの寸法の関係や比率が異なる要素が含まれることもある。複数の図面において、対応する要素には同じ参照数字を付して重複する説明を省略する場合もある。いくつかの要素に複数の呼称を付す場合があるが、これら呼称の例はあくまで例示であり、これらの要素に他の呼称を付すことを否定するものではない。また、複数の呼称が付されていない要素についても、他の呼称を付すことを否定するものではない。なお、以下の説明において、「接続」は直接接続のみならず、他の要素を介した接続も含む場合もある。
以下、図面を参照しながら本実施の形態について詳細に説明する。
(第1実施形態)
図1は、第1実施形態に係る暗号化装置10の構成例を説明するためのブロック図である。暗号化装置10は、乱数生成部12、乱数置換部14、圧縮暗号化部16、及び制御部18を含む。乱数生成部12、乱数置換部14、圧縮暗号化部16、及び制御部18は、SoC(Silicon on a Chip)のような専用の電気回路等のハードウェアによって実現されるものであってもよいし、プロセッサ(図示せず)によって実行されるプログラム(ソフトウェア)によって実現されるものであってもよい。
乱数生成部12は、N次元の乱数ベクトルの一部分である(n+1)次元の一次独立な部分乱数ベクトルを生成する。乱数生成部12は、さらに、部分乱数ベクトルからN次元の乱数ベクトルを生成する。nとNは、正整数である。(n+1)<Nである。乱数生成部12は、乱数ベクトルを乱数置換部14と圧縮暗号化部16に出力する。
乱数置換部14は、乱数ベクトルに対して所定の関数σによる演算を所定回数実行し、その演算結果を圧縮暗号化部16に出力する。
圧縮暗号化部16は、平文ブロックを外部から入力し、平文ブロックを圧縮暗号化する。
図2は、第1実施形態に係る暗号化装置に入力される平文ブロックの一例を説明するための図である。平文ブロックは時系列のM個の成分m、m、…mを含む。M>1である。成分m、m、…mの各々は、環R2の元である。
圧縮暗号化部16は、時系列データである平文ブロックの先頭に位置する先頭成分mと先頭成分に後続する後続成分m、…mに対して異なる暗号化を行う。
圧縮暗号化部16は、平文ブロックの先頭成分mに対しては、公開鍵と乱数ベクトルを用いて、暗号化し、(n+1)個の暗号文を含む先頭成分暗号文を生成する。
圧縮暗号化部16は、平文ブロックの複数の後続成分m、…mの各々に対しては、公開鍵と乱数置換部14の出力を用いて、暗号化し、(N-1)個の暗号文を含む後続成分暗号文を生成する。
後続成分暗号文は、先頭サブ成分の暗号文のみのリストを含み、後続サブ成分の暗号文を含まない。そのため、後続成分暗号文が含む暗号文に関するサブ成分の数は、平文ブロックが含むサブ成分の数より少ない。以降、後続成分暗号文は後続成分圧縮暗号文と称する。
圧縮暗号化部16は、先頭成分暗号文と後続成分圧縮暗号文のリストとを含む圧縮暗号文ブロックを外部に出力する。
制御部18は、乱数生成部12、乱数置換部14、及び圧縮暗号化部16の動作タイミングを制御する。
暗号化装置10の暗号化処理を説明する。暗号化装置10は、格子暗号を利用する。格子暗号とは、基底ベクトルの整数線形結合で表現できる全てのベクトルから成る集合である格子を用いて構成される暗号である。公開鍵のN個の行ベクトルや乱数ベクトルは格子の一つの元である。種々の格子暗号アルゴリズムが実用化されている。暗号化装置10は、どのような格子暗号アルゴリズムも利用可能である。格子暗号アルゴリズムの一例として、BGV方式を説明する。BGV方式の一例は、次の論文に記載されている。
Zvika Brakerski,Craig Gentry,Vinod Vaikuntanathan,“(Leveled) Fully Homomorphic Encryption without Bootstrapping”,ACM Transactions on Computation Theory,Volume 6,Issue 3,July 2014
BGV方式において、環R=Z[X]/(X+1)である。環R=R/qRである。dは2のべき乗である。Zは整数の集合である。Z[X]は整数係数多項式の集合である。A/Bは群Aの部分群Bによる剰余類を表す。環Rは環Rの除数qによる剰余類である。例えば、環Rを整数係数多項式の集合とし、q=2とすると、環Rは係数が0または1の整数多項式の集合と等価である。qRは、環Rのそれぞれの元をq倍したものの集合である。
一般に、環Rの元はd次元の整数ベクトルで表される。d=1の場合、環Rの元はスカラーとして扱うことができる。
秘密鍵は、(n+1)次元の環Rのベクトルを含む。n>2,d=1の場合、格子暗号はLWE(Learning With Errors)と呼ばれる。n=1,d>1の場合、格子暗号はRing LWEと呼ばれる。LWEの場合、R=Zとなる。
第1実施形態に係る暗号化処理における秘密鍵、公開鍵、乱数ベクトル、先頭成分暗号文、後続成分圧縮暗号文のリスト、及び関数σの構成について述べる。
秘密鍵
秘密鍵《s》は、式1、式2で表される。この明細書では、記号《 》はベクトルを表す。
《s》=(1,《t》)∈R n+1 式1
《t》∈R ←χ 式2
χは環R上の確率分布(ガウス分布や一様分布など)である。
公開鍵
公開鍵A∈R N(n+1)は、秘密鍵《s》に含まれる《t》を用いて、式3乃至式6で表される。
A=(《b》,B) 式3
《b》=B《t》+2《e》 式4
《e》←χ 式5
B∈R Nn←UNn 式6
Uは環R上の一様分布である。
公開鍵Aは(n+1)次元の正則な部分行列を持つN行(n+1)列の行列である。公開鍵AのN個の行ベクトルのうち特定の(n+1)個の行ベクトルを含む正則な部分行列A´は逆行列を持つように構成される。本実施形態においては、A´は公開鍵Aの先頭(n+1)個の行ベクトルであるとする。この場合、(n+1)次元の正則な部分行列の第i行は、公開鍵の第i行と一致する。
乱数ベクトル《r
部分乱数ベクトル《r´》∈R n+1から乱数ベクトル《r》∈R を生成する方法の一例を示す。
b=(bi,j1≦i≦N-(n+1),1≦j≦(n+1) 式7
bの各成分bi,j∈Rは定数とする。
乱数ベクトル《r》のi番目の成分r1,iは式8のように計算される。式8において、r´1,iは部分乱数ベクトル《r´》のi番目の成分である。
Figure 2023178201000002
乱数ベクトルの第i成分は部分乱数ベクトルの第i成分と一致する。
先頭成分暗号文
先頭成分暗号文《c》∈R n+1は、先頭成分m、公開鍵A、乱数ベクトル《r》から式9のように生成される。
《c》=(m,0)+A《r》 式9
はn個のRの零元の並びを表す。AはAの転置行列を表す。
後続成分圧縮暗号文
後続成分圧縮暗号文のリスト(《ci、1》)2≦i≦Mの第i成分《ci、1》は、式10のように生成される。
《ci、1》=m+A σi-1(《r》) 式10
は公開鍵Aの先頭行を表す。σ(i-1)は関数σによる演算を(i-1)回実行する操作を表す。σi-1(《r》)=《r》である。
関数σ
乱数置換部14が使用する関数σとして種々の関数を利用することが出来る。
M≦Nの場合、関数σとしてビットローテート関数を用いることができる。この場合、σ(r)=(r≫1)|(r≪N-1)(右ローテート)、又はσ(r)=(r≪1)|(r≫N-1)(左ローテート)である。記号≫は右ビットシフト演算子、記号≪は左ビットシフト演算子、記号|はビットOR演算子を表す。
関数σとして一方向性関数を用いることができる。この場合、σ(r)=H(r)である。Hはハッシュ関数、又は暗号学的ハッシュ関数である。
M≦Nの場合、関数σとして置換関数を用いることができる。σが置換関数である場合、全てのy∈{0,1}に対し、y=σ(x)となるx∈{0,1}がただ一つ存在する。
図3は、第1実施形態に係る暗号化装置10の暗号化処理の一例を説明するためのフローチャートである。
制御部18は、先ず圧縮暗号化部16を動作させる。圧縮暗号化部16は、外部から平文ブロック(m1≦i≦M∈R を入力する(S301)。
制御部18は、次に乱数生成部12を動作させる。乱数生成部12は、部分乱数ベクトル《r´》∈R n+1を生成する(S302)。乱数生成部12は、式8に従い部分乱数ベクトル《r´》から乱数ベクトル《r》∈R を生成する(S303)。ここで、n+1<Mである。
制御部18は、次に、圧縮暗号化部16を動作させる。圧縮暗号化部16は、式9に従い平文ブロックの先頭成分mに対する先頭成分暗号文《c》=(m,0)+A《r》を生成する(S305)。
制御部18は、ループ制御変数iを2に設定する(S306)。
制御部18は、次に、圧縮暗号化部16を動作させる。圧縮暗号化部16は、式10に従い平文ブロックの後続成分mに対する後続成分圧縮暗号文の第i成分《ci,1》=m+A σi-1(《r》)を生成する(S307)。後続成分圧縮暗号文は、平文ブロックの後続成分mの先頭サブ成分の暗号文を含み、後続成分mの先頭以外のサブ成分の暗号文を含まない。
制御部18は、ループ制御変数iをインクリメントする(S308)。
制御部18は、i<Mであるか判定する(S309)。i<Mである場合(S309:Yes)、制御部18は、圧縮暗号化部16を動作させる。圧縮暗号化部16は、式10に従い平文ブロックの後続成分mに対する後続成分圧縮暗号文の第i成分《ci,1》を生成する(S307)。
i≧Mである場合(S309:No)、制御部18は、圧縮暗号化部16を動作させる。圧縮暗号化部16は、S305で生成した先頭成分暗号文《c》とS307で生成した後続成分圧縮暗号文リスト(《ci,1》)2≦i≦Mを含む圧縮暗号文ブロックを外部に出力する(S310)。この後、暗号化処理は終了する。
図4は、第1実施形態に係る圧縮暗号文ブロックのレイアウトの一例を説明するための図である。図4の各行は図2に示した平文ブロックの各成分の暗号文に対応する。
第1実施形態に係る暗号化装置によれば、先頭成分mに対する先頭成分暗号文《c》は、図4の太線の枠で囲まれた1行目の(n+1)個のサブ成分の暗号文《c1,1》、《c1,2》、…《c1,n+1》を含む。後続成分m(2≦i≦M)に対する後続成分圧縮暗号文リスト(《ci,1》)2≦i≦Mは、図4の太線の枠で囲まれた先頭サブ成分の暗号文《c2,1》、…《cM,1》のみを含む。後続成分圧縮暗号文リスト(《ci,1》)2≦i≦Mは、先頭サブ成分以外のサブ成分の暗号文《c2,2》、…《c2,n+1》;…;《cM,2》、…《cM,n+1》(図4の破線の枠で囲まれた暗号文)を含まない。これにより、格子暗号の暗号文ブロックの暗号文の数がM×(n+1)からM+nに減少され、暗号文ブロックのサイズが小さくなる。
公開鍵Aは(n+1)次元の正則な部分行列を持つN行(n+1)列の行列であるので、公開鍵AのN個の行ベクトルのうち特定の(n+1)個の行ベクトルを含む正則な部分行列A´は逆行列を持つように構成される。そのため、後述の式12により部分行列A´の逆行列を用いて部分乱数ベクトルを復元し、復元した部分乱数ベクトルから式8を用いて乱数ベクトルを復元することが可能となり、圧縮暗号文ブロックには含まれていない後続成分圧縮暗号文の先頭サブ成分以外のサブ成分に対応する暗号文《c2,2》、…《c2,n+1》;…;《cM,2》、…《cM,n+1》は、復号装置で復元される。
第1実施形態に係る暗号化装置は、SSDコントローラ、ネットワークインタフェースカード、NVMeTMコントローラ、クラウドサーバ、及びクライアントPC等に実装され得る。実装例は、第3実施形態乃至第7実施形態で説明する。
(第2実施形態)
図5は、第2実施形態に係る復号装置30の構成例を説明するためのブロック図である。復号装置30は、乱数復元部32、乱数置換部34、解凍復号部36、及び制御部38を含む。乱数復元部32、乱数置換部34、解凍復号部36、及び制御部38は、電気回路等のハードウェアによって実現されるものであってもよいし、プロセッサ(図示せず)によって実行されるプログラム(ソフトウェア)によって実現されるものであってもよい。
乱数復元部32は、平文ブロックの先頭成分暗号文と公開鍵からN次元の乱数ベクトルを復元する。乱数復元部32は、乱数ベクトルを乱数置換部34と解凍復号部36に出力する。
乱数置換部34は、乱数ベクトルに対して所定の関数σによる演算を所定回数実行し、その結果を解凍復号部36に出力する。
解凍復号部36は、先頭成分暗号文と後続成分圧縮暗号文リストを含む圧縮暗号文ブロックを外部から入力し、先頭成分暗号文と後続成分圧縮暗号文リストに対して異なる復号演算を行う。解凍復号部36に入力される圧縮暗号文ブロックの一例は、図4に示す暗号文ブロックである。
解凍復号部36は、先頭成分暗号文に対して公開鍵に対応する秘密鍵を用いる復号演算を行い、先頭成分暗号文から平文ブロックの先頭成分を復号する。
解凍復号部36は、公開鍵と乱数置換部34の出力とを用いて後続成分圧縮暗号文リストに含まれる各後続成分圧縮暗号文の先頭サブ成分の暗号文から後続サブ成分の暗号文を復元し、入力した後続成分圧縮暗号文リストと復元した後続サブ成分の暗号文とを含む後続成分圧縮暗号文に対して秘密鍵を用いる復号演算を行い、後続成分圧縮暗号文から平文ブロックの後続成分を復号する。
制御部38は、乱数復元部32、乱数置換部34、及び解凍復号部36の動作タイミングを制御する。
第2実施形態に係る復号処理における平文ブロックの復号方法、部分乱数ベクトルの復元方法、乱数ベクトルの復元方法、及び後続成分圧縮暗号文の復元方法について述べる。
平文ブロックの復号方法
平文ブロックの第i成分mは、暗号文ブロックの第i成分《c》から秘密鍵《s》により式11のように復号される。
=[[<《c》,《s》>] 式11
記号<《a》,《b》>はベクトルa,bの内積を表す。[x]は区間(-a/2,a/2]での(x mod a)の値を表す。
部分乱数ベクトルの復元
部分乱数ベクトル《r´》∈R n+1は、乱数ベクトル《r》∈R の(n+1)個の一次独立な成分に対応する公開鍵Aの部分行列A´、先頭成分暗号文《c》、平文ブロックの先頭成分mから式12により復元される。
《r´》=(A´-1(《c》-(m,0)) 式12
第2実施形態において、A´は公開鍵Aの先頭(n+1)個の行ベクトルであるとする。
乱数ベクトルの復元
乱数ベクトル《r》∈R は、部分乱数ベクトル《r´》∈R n+1を用いて暗号化時に使用した乱数ベクトル生成方法と同一の方法で復元する。例えば、暗号化時に式8を使用した場合、式8を用いて乱数ベクトル《r》を復元する。
後続成分圧縮暗号文の復元
後続成分圧縮暗号文の第i番目の暗号文《c》の第j成分《ci,j》は、式13のように計算される。
《ci,j》=A σi-1(《r》) 式13
ここで、関数σは暗号化時に使用したものと同一のものが使用される。
図6は、第2実施形態に係る復号装置30の復号処理の一例を説明するためのフローチャートである。復号装置30は、どのような格子暗号アルゴリズムも利用可能である。第1実施形態と同様にBGV方式の格子暗号アルゴリズムを用いる復号処理について説明する。
制御部38は、先ず解凍復号部36を動作させる。解凍復号部36は、外部から圧縮暗号文ブロック《c》,(《ci,1》)2≦i≦Mを入力する(S601)。
解凍復号部36は、式11に従って平文ブロックの先頭成分m=[[<《c》,《s》>]を復号する(S602)。
制御部38は、次に、乱数復元部32を動作させる。乱数復元部32は、式12に従って部分乱数ベクトル《r´》=(A´-1(《c》-(m,0))を復元する(S603)。乱数復元部323は、式8に従って部分乱数ベクトル《r´》から乱数ベクトル《r》∈R を復元する(S604)。
制御部38は、ループ制御変数iを2に設定する(S606)。
制御部38は、ループ制御変数jを2に設定する(S607)。
制御部38は、解凍復号部36を動作させる。解凍復号部36は、式13に従って暗号文《c》の第j成分《ci,j》=A σi-1(《r》)を復元する(S608)。
制御部38は、j<n+1であるか判定する(S609)。j<n+1である場合(S609:Yes)、制御部38は、ループ制御変数jをインクリメントする(S610)。その後、制御部38は、S608以降の処理を実行する。
j≧n+1である場合(S609:No)、制御部38は、解凍復号部36を動作させる。解凍復号部36は、式11に従って《c》から平文ブロックのi番目の成分m=[[<《c》,《s》>]を復号する(S611)。
制御部38は、ループ制御変数iをインクリメントする(S612)。
制御部38は、i<Mであるか判定する(S613)。i<Mである場合(S613:Yes)、制御部38は、ループ制御変数jを2に設定する(S607)。その後、制御部38は、S608以降の処理を実行する。
i≧Nである場合(S613:No)、制御部38は、解凍復号部36を動作させる。解凍復号部36は、S602で復号した先頭成分mとS611で復号した後続成分(m1≦i≦Mを含む平文ブロック(m1≦i≦Mを外部に出力する(S614)。この後、復号処理は終了する。
第2実施形態に係る復号装置によれば、格子暗号の圧縮暗号文ブロックに含まれていない暗号文が復元され、圧縮暗号文が正しく復号される。
第2実施形態に係る復号装置は、SSDコントローラ、ネットワークインタフェースカード、NVMeコントローラ、クラウドサーバ、及びクライアントPC等に実装され得る。実装例は、第3実施形態乃至第7実施形態で説明する。
(第3実施形態)
図7は、第3実施形態に係るストレージシステムの一例を説明するためのブロック図である。
ストレージシステム102は、ホスト100に接続可能である。ホスト100は、ストレージシステム102にアクセスする情報処理装置である。ホスト100とストレージシステム102は、情報処理システムを構成する。ストレージシステム102は、ホスト100のメインストレージとして使用され得る。ストレージシステム102は、ホスト100に内蔵されてもよいし、ホスト100の外部に設けられ、ホスト100にケーブルまたはネットワークを介して接続されてもよい。ホスト100は、大量且つ多様なデータをストレージシステム102に保存するサーバ(ストレージサーバ)であってもよい。ホスト100は、パーソナルコンピュータであってもよい。ストレージシステム102は、データセンター等のサーバに組み込まれるビジネスユース向けのシステムであってもよい。ストレージシステム102はパーソナルコンピュータに組み込まれるパーソナルユース向けのシステムであってもよい。ストレージシステム102の一例は、SSD(Solid State Drive)である。以降、ストレージシステムは、SSDと称する。
SSD102は、NAND型フラッシュメモリ(以降、NANDメモリと称する)112と、コントローラ110を備える。
NANDメモリ112は、不揮発性メモリの一例である。NANDメモリの代わりに、NOR型フラッシュメモリ、MRAM(Magneto-resistive Random Access Memory)、PRAM(Phase change Random Access Memory)、ReRAM(Resistive Random Access Memory)、FeRAM(Ferroelectric Random Access Memory)を用いてもよい。
コントローラ110は、ホスト100から送信されるコマンド(要求)に従って、NANDメモリ112にデータを書き込むよう、又はNANDメモリ112からデータを読み出すように構成されている。コントローラ110は、SoCのような電気回路によって構成され得る。
コントローラ110は、SSD102の動作を司る機能を有する。コントローラ110は、ホストインタフェース(ホストI/F回路と称する)122、NANDインタフェース(NAND I/F回路と称する)124、CPU126、ROM(Read Only Memory)128、RAM(Random Access Memory)130、暗号化装置132、及び復号装置134等を備える。ホストI/F回路122、CPU126、ROM128、RAM130、NAND I/F回路124、暗号化装置132、及び復号装置134は、バスを介して互いに接続されている。
暗号化装置132は、第1実施形態に係る暗号化装置10に対応する。復号装置134は、第2実施形態に係る復号装置30に対応する。暗号化装置132の乱数置換部と復号装置134の乱数置換部をそれぞれ設けるのではなく、片方を省略し、1つの乱数置換部を暗号化装置132と復号装置134とで共用してもよい。
CPU126は、ホストI/F回路122、NAND I/F回路124、暗号化装置132、及び復号装置134を制御するように構成されたプロセッサである。CPU126は、SSD102の電源オンに応答してNANDメモリ112またはROM128から制御プログラム(ファームウェア)をRAM130にロードし、当該制御プログラムを実行することによって様々な処理を行う。CPU126は、ホスト100からの様々な要求に対する処理を実行することができる。CPU126の動作は、CPU126によって実行される制御プログラムによって制御される。ホスト100からの要求に対する処理の一部または全部は、コントローラ110内の専用ハードウェアによって実行されてもよい。
第3実施形態に係るSSD102は、ホスト100から送信された平文ブロックを暗号化装置132により暗号化し、圧縮暗号文ブロックを生成する。SSD102は、圧縮暗号文ブロックをNANDメモリ112に書き込む。SSD102は、NANDメモリ112から読み出した圧縮暗号文ブロックを復号装置134により復号して平文ブロックを生成する。SSD102は、平文ブロックをホスト100へ送信する。
第3実施形態に係るSSDによれば、格子暗号の暗号文ブロックの暗号化時の圧縮が可能となる。また、第3実施形態に係るSSDによれば、圧縮された格子暗号の暗号文ブロックに含まれていない暗号文が復号時に復元され、暗号文ブロックが正しく復号される。
(第4実施形態)
図8は、第4実施形態に係るSSD202の一例を説明するためのブロック図である。SSD202は、NVMe仕様のSSDである。
SSD202は、ホスト200に接続可能である。ホスト200は、第3実施形態に係るホスト100に対応する。
SSD102は、NANDメモリ212と、コントローラ210を備える。
NANDメモリ212は、第3実施形態に係るNANDメモリ112に対応する。コントローラ210は、PCIeTMインタフェース回路(PCIe I/F回路)214と、NVMeコントローラ216を含む。PCIe I/F回路214は、第3実施形態に係るホストI/F回路122に対応する。
NVMeコントローラ216は、NAND I/F回路220、CPU222、ROM224、RAM226、暗号化装置230、及び復号装置232等を備える。NAND I/F回路220、CPU222、ROM224、RAM226、暗号化装置230、及び復号装置232は、第3実施形態に係るNAND I/F回路124、CPU126、ROM128、RAM130、暗号化装置132、及び復号装置134にそれぞれ対応する。暗号化装置230の乱数置換部と復号装置232の乱数置換部をそれぞれ設けるのではなく、片方を省略し、1つの乱数置換部を暗号化装置230と復号装置232とで共用してもよい。
第4実施形態に係るSSD202によれば、NVMe仕様のSSDにおいても、格子暗号の暗号文ブロックが暗号化時に圧縮され、圧縮された格子暗号の暗号文ブロックに含まれていない暗号文が復号時に復元され、暗号文ブロックが正しく復号される。
(第5実施形態)
図9は、第5実施形態に係る情報処理システムの一例を説明するためのブロック図である。情報処理システムは、ホスト300とSSD302を含む。SSD302は、ホスト300に接続可能である。
ホスト300は、SSD302の動作を司る機能を有する。ホスト300は、SSDインタフェース(SSD I/F回路と称する)310、CPU314、ROM316、RAM318、暗号化装置320、及び復号装置322等を備える。SSD I/F回路310、CPU314、ROM316、RAM318、暗号化装置320、及び復号装置322は、バスを介して互いに接続されている。
暗号化装置320は、第1実施形態に係る暗号化装置10に対応し、ホスト300が生成する平文ブロック又はホスト300に入力された平文ブロックを暗号化する。復号装置322は、第2実施形態に係る復号装置30に対応し、SSD302から送信された暗号文ブロックを復号し、平文ブロックを生成する。暗号化装置320の乱数置換部と復号装置322の乱数置換部をそれぞれ設けるのではなく、片方を省略し、1つの乱数置換部を暗号化装置320と復号装置322とで共用してもよい。SSD I/F回路310は、SSD302に暗号文を送信し、SSD302から暗号文を受信する通信回路である。
CPU314は、SSD I/F回路310、暗号化装置320、及び復号装置322を制御するように構成されたプロセッサである。CPU314は、ホスト300の電源オンに応答してROM316から制御プログラム(ファームウェア)をRAM318にロードし、当該制御プログラムを実行することによって様々な処理を行う。
SSD302は、NANDメモリ332と、コントローラ330を備える。
NANDメモリ332は、第3実施形態に係るNANDメモリ112に対応する。コントローラ330は、ホストI/F回路334、NAND I/F回路336、CPU340、ROM342、及びRAM346等を備える。ホストI/F回路334、NAND I/F回路336、CPU340、ROM342、及びRAM346は、第3実施形態に係るホストI/F回路122、NAND I/F回路124、CPU126、ROM128、及びRAM130にそれぞれ対応する。
第5実施形態に係る情報処理システムによれば、ホスト300が暗号化装置320と復号装置322を備えるので、SSD302が暗号化装置と復号装置を備えなくても、SSD302は圧縮暗号文ブロックを記憶することができる。ホスト300が暗号化装置320と復号装置322の一方を備え、SSD302のコントローラ330が暗号化装置320と復号装置322の他方を備えてもよい。
(第6実施形態)
図10は、第6実施形態に係るSSD404の一例を説明するためのブロック図である。
SSD404は、ネットワーク400を介してサーバ402に接続可能である。
サーバ402は、SSD404の動作を司る機能を有する。サーバ402は、第3実施形態のホスト100又は第4実施形態のホスト200に対応する。
SSD404は、コントローラ410とNANDメモリ412を含む。NANDメモリ412は、第3実施形態に係るNANDメモリ112に対応する。コントローラ410は、第3実施形態のコントローラ110に対応する。しかし、コントローラ410は、ホスト I/F回路122の代わりに、ネットワークインタフェースカード(NIC)422を備える点がコントローラ110と異なる。NIC422は、暗号化装置430及び復号装置432等を備える。暗号化装置430は第1実施形態の暗号化装置10に対応する。復号装置432は第2実施形態の復号装置30に対応する。暗号化装置430の乱数置換部と復号装置432の乱数置換部をそれぞれ設けるのではなく、片方を省略し、1つの乱数置換部を暗号化装置430と復号装置432とで共用してもよい。
コントローラ410は、NIC422、CPU442、ROM444、RAM446、NAND I/F回路242を備える。CPU442、ROM444、RAM446、及びNAND I/F回路242は、第3実施形態のCPU126、ROM128、RAM130、及びNAND I/F回路124、又は第4実施形態のCPU222、ROM224、RAM226、及びNAND I/F回路220、又は第5実施形態のCPU340、ROM342、RAM344、及びNAND I/F回路336に対応する。
第6実施形態によれば、ネットワーク400に直接接続できるSSD404においても、可逆的に圧縮された暗号文ブロックを記憶することができる。
(第7実施形態)
図11は、第7実施形態に係る情報処理システムの一例を説明するためのブロック図である。情報処理システムは、サーバ504とSSD502-1、502-2、502-3を含む。
SSD502-1、502-2、502-3は、ネットワーク500を介してサーバ504に接続可能である。
サーバ504は、SSD502-1、502-2、502-3の動作を司る機能を有する。サーバ504は、第5実施形態のホスト300に対応する。
第7実施形態は、第6実施形態とは、暗号化装置と復号装置の配置が異なる。第6実施形態では、SSD404のNIC422が暗号化装置430と復号装置432を備える。第7実施形態では、サーバ504が暗号化装置514と復号装置516を備える。
サーバ504は、SSD502-1、502-2、502-3の動作を司る機能を有する。サーバ504は、ネットワークI/F回路512、暗号化装置514、復号装置516、CPU522、ROM524、RAM526等を備える。暗号化装置514は第1実施形態の暗号化装置10に対応する。復号装置4516は第2実施形態の復号装置30に対応する。CPU522、ROM524、RAM526は、第5実施形態のCPU314、ROM316、RAM318に対応する。
第7実施形態に係る情報処理システムによれば、サーバ504が暗号化装置514と復号装置516を備えるので、SSD502-1、502-2、502-3が暗号化装置と復号装置を備えなくても、SSD502-1、502-2、502-3は圧縮暗号文ブロックを記憶することができる。サーバ504が暗号化装置514と復号装置516の一方を備え、SSD502-1、502-2、502-3が暗号化装置514と復号装置516の他方を備えてもよい。
(第8実施形態)
図12は、第8実施形態に係る圧縮暗号文の解凍装置602の構成例を説明するためのブロック図である。第1、第3乃至第7実施形態のいずれかに係る暗号化装置により生成される圧縮暗号文が解凍装置602に入力される。解凍装置602は、準同型乱数復元部606、準同型乱数置換部608、準同型解凍部604、及び制御部610を含む。準同型乱数復元部606、準同型乱数置換部608、準同型解凍部604、及び制御部610は、SoC(Silicon on a Chip)のような専用の電気回路等のハードウェアによって実現されるものであってもよいし、プロセッサ(図示せず)によって実行されるプログラム(ソフトウェア)によって実現されるものであってもよい。
準同型乱数復元部606は、先頭成分暗号文と暗号文ブロックに関する公開鍵とから、公開鍵により暗号化されたN次元の乱数ベクトルを準同型復元する。
準同型乱数置換部608は、公開鍵により暗号化されたN次元の乱数ベクトルに対して所定の関数σによる演算を所定回数実行した結果を準同型解凍部610に出力する。
準同型解凍部610は、外部から圧縮暗号文ブロックを読み込む。圧縮暗号文ブロックは、先頭成分暗号文と複数の後続成分圧縮暗号文のリストを含む。準同型解凍部610は、圧縮暗号文ブロックを解凍し、暗号文ブロックを出力する。準同型解凍部610は、先頭成分暗号文はそのまま外部に出力する。準同型解凍部610は、公開鍵の転置行列の先頭行と公開鍵により暗号化されたN次元の乱数ベクトルに対して所定の関数σによる演算を所定回数実行した結果との積を求める。準同型解凍部610は、公開鍵により暗号化された後続成分圧縮暗号文と上記積との差分を求める。準同型解凍部610は、複数の後続成分圧縮暗号文の各々に対し、上記差分を当該後続成分圧縮暗号文の先頭サブ成分と後続サブ成分として外部に出力する。準同型解凍部610は、先頭成分暗号文と複数の後続成分暗号文を含む暗号文ブロックを出力する。
図13は、平文ブロックの一例を説明するための図である。平文ブロックが圧縮暗号化されて得られた圧縮暗号文ブロックが第8実施形態に係る解凍装置602に入力される。平文ブロックは時系列のM個の成分m、m、…mを含む。M>1である。成分m、m、…mの各々は、環R2の元である。
時系列データである平文ブロックの先頭に位置する先頭成分mと先頭成分に後続する後続成分m、…mに対して異なる暗号化が施される。
平文ブロックの先頭成分mに対しては、公開鍵と乱数ベクトルを用いて、暗号化が施され、(n+1)個の暗号文を含む先頭成分暗号文が生成される。
平文ブロックの複数の後続成分m、…mの各々に対しては、公開鍵と乱数置換関数σの出力を用いて、暗号化が施され、(N-1)個の暗号文を含む後続成分圧縮暗号文が生成される。
後続成分圧縮暗号文は、先頭サブ成分の暗号文のみのリストを含み、後続サブ成分の暗号文を含まない。
先頭成分暗号文と後続成分圧縮暗号文のリストとを含む圧縮暗号文ブロックが解凍装置602に入力される。
制御部610は、準同型乱数復元部606、準同型乱数置換部608、及び準同型解凍部604の動作タイミングを制御する。
解凍装置602に入力される圧縮暗号文ブロックの生成方法を説明する。解凍装置602は、格子暗号を利用する。格子暗号とは、基底ベクトルの整数線形結合で表現できる全てのベクトルから成る集合である格子を用いて構成される暗号である。公開鍵のN個の行ベクトルや乱数ベクトルは格子の一つの元である。種々の格子暗号アルゴリズムが実用化されている。解凍装置602は、どのような格子暗号アルゴリズムも利用可能である。格子暗号アルゴリズムの一例として、第1実施形態で説明したZvika Brakerski等の論文に記載されたBGV方式がある。
第8実施形態に係る解凍処理における秘密鍵、公開鍵、乱数ベクトル、先頭成分暗号文、後続成分圧縮暗号文のリスト、及び関数σの構成は、第1実施形態に係る暗号化処理における秘密鍵、公開鍵、乱数ベクトル、先頭成分暗号文、後続成分圧縮暗号文のリスト、及び関数σの構成と同じであるので、詳細な説明は省略する。
秘密鍵《s》は、式1、式2で表される。
公開鍵A∈R N(n+1)は、秘密鍵《s》に含まれる《t》を用いて、式3乃至式6で表される。
準同型乱数復元部606が部分乱数ベクトル《r´》∈R n+1から乱数ベクトル《r》∈R を生成する方法の一例は、式7と式8で表される。
先頭成分暗号文《c》∈R n+1は、先頭成分m、公開鍵A、乱数ベクトル《r》から式9のように生成される。
後続成分圧縮暗号文のリスト(《ci、1》)2≦i≦Mの第i成分《ci、1》は、式10のように生成される。
準同型乱数置換部608が使用する関数σとして第1実施形態で説明した種々の関数を利用することが出来る。
図14は、第8実施形態に係る解凍装置602の解凍処理の一例を説明するためのフローチャートである。
制御部610は、まず先頭成分暗号文について準同型解凍部604を動作させる。準同型解凍部604は、外部から圧縮暗号文ブロック《c》(=Enc(pk,m))および(《ci,1》)2≦i≦Mを入力する(S1401)。
制御部610は、準同型乱数復元部606を動作させる。準同型乱数復元部606は、公開鍵pk(=A)で暗号化された部分乱数ベクトルEnc(pk,r´1,j)=(A´-1{Enc(pk,c1,j)-(Enc(pk,m),Enc(pk,0))}を準同型復元する(S1402)。ここで、1≦j≦n+1である。
準同型乱数復元部606は、公開鍵pkで暗号化された部分乱数ベクトル(Enc(pk,r´1,j))1≦j≦n+1から公開鍵pkで暗号化された乱数ベクトルEnc(pk,《r》)=(Enc(pk,r1,j))1≦j≦n+1を準同型復元する(S1403)。準同型乱数復元部606が暗号化された部分乱数ベクトルを復元処理すると、暗号化された乱数ベクトルが得られる。
ここで、乱数ベクトルは式8により表されているので、暗号化された乱数ベクトルは式14で表される。
Figure 2023178201000003
制御部610は、ループ制御変数i(行番号)を2に設定する(S1404)。
制御部610は、次に後続成分圧縮暗号文について準同型解凍部604を動作させる。準同型解凍部604は、Enc(pk,《ci,1》)を計算する(S1405)。Enc(pk,《ci,1》)は後の処理で使われる。
準同型解凍部604は、Enc(pk,A σi-1(《r》))=A (Enc(pk,σj-1(《r》)))=A σj-1(Enc(pk,(《r》))を計算する(S1406)。
準同型解凍部604は、《c》=Enc(pk,m)=Enc(pk,《ci,1》-Enc(pk,A σi-1(《r》))を計算する(S1407)。関数σはi-1乗されているので、i=2のときσの1乗となり、圧縮暗号文ブロック《c》の計算の際、関数σが1回適用される。
制御部610は、ループ制御変数iをインクリメントする(S1408)。
制御部610は、i<Mであるか判定する(S1409)。i<Mである場合(S1409:Yes)、制御部610は、次の後続成分圧縮暗号文について準同型解凍部604を動作させる(S1405)。
i≧Mである場合(S1409:No)、制御部610は、準同型解凍部604を動作させる。準同型解凍部604は、先頭成分暗号文《c》とS1407で生成した後続成分圧縮暗号文(《c》)2≦i≦Mを含む暗号文ブロック(《c》)1≦i≦Mを外部に出力する(S1410)。この後、解凍処理は終了する。
図15は、解凍装置602に入力される圧縮暗号文ブロックのレイアウトの一例を説明するための図である。図15の各行は図13に示した平文ブロックの各成分の暗号文に対応する。
第8実施形態によれば、解凍装置602の入力となる先頭成分mに対する先頭成分暗号文《c》は、図15の太線の枠で囲まれた1行目の(n+1)個のサブ成分の暗号文《c1,1》、《c1,2》、…《c1,n+1》を含む。解凍装置602の入力となる後続成分m(2≦i≦M)に対する後続成分圧縮暗号文リスト(《ci,1》)2≦i≦Mは、図15の太線の枠で囲まれた先頭サブ成分の暗号文《c2,1》、…《cM,1》のみを含む。後続成分圧縮暗号文リスト(《ci,1》)2≦i≦Mは、先頭サブ成分以外のサブ成分の暗号文《c2,2》、…《c2,n+1》;…;《cM,2》、…《cM,n+1》(図15の破線の枠で囲まれた暗号文)を含まない。これにより、格子暗号の暗号文ブロックの暗号文の数がM×(n+1)からM+nに減少され、暗号文ブロックのサイズが小さくなる。
公開鍵Aは(n+1)次元の正則な部分行列を持つN行(n+1)列の行列であるので、公開鍵AのN個の行ベクトルのうち特定の(n+1)個の行ベクトルを含む正則な部分行列A´は逆行列を持つように構成される。そのため、第2実施形態で説明した式12により部分行列A´の逆行列を用いて部分乱数ベクトルを復元し、復元した部分乱数ベクトルから第1実施形態で説明した式9を用いて公開鍵Aで暗号化された乱数ベクトルを復元することが可能となる。圧縮暗号文ブロックには含まれていない後続成分圧縮暗号文の先頭サブ成分以外のサブ成分に対応する暗号文《c2,2》、…《c2,n+1》;…;《cM,2》、…《cM,n+1》は、解凍装置602で復元される。復元された暗号文ブロックに対しては、準同型加算や準同型乗算などの準同型演算を施すことが可能となる。
第8実施形態に係る解凍装置602は、SSDコントローラ、ネットワークインタフェースカード、NVMeコントローラ、クラウドサーバ、及びクライアントPC等に実装され得る。第8実施形態は、第3実施形態乃至第7実施形態と同様に実装される。
(第9実施形態)
図16は、第9実施形態に係るSSD702の一例を説明するためのブロック図である。
SSD702は、ホスト700に接続可能である。ホスト700は、SSD702にアクセスする情報処理装置である。ホスト700とSSD702は、情報処理システムを構成する。SSD702は、ホスト700のメインストレージとして使用され得る。SSD702は、ホスト700に内蔵されてもよいし、ホスト700の外部に設けられ、ホスト700にケーブルまたはネットワークを介して接続されてもよい。ホスト700は、大量且つ多様なデータをSSD702に保存するサーバ(ストレージサーバ)であってもよい。ホスト700は、パーソナルコンピュータであってもよい。SSD702は、データセンター等のサーバに組み込まれるビジネスユース向けのシステムであってもよい。SSD702はパーソナルコンピュータに組み込まれるパーソナルユース向けのシステムであってもよい。SSD702の一例は、SSD(Solid State Drive)である。
SSD702は、NANDメモリ712と、コントローラ710を備える。
NANDメモリ712は、不揮発性メモリの一例である。
コントローラ710は、ホスト700から送信されるコマンド(要求)に従って、NANDメモリ712にデータを書き込むよう、又はNANDメモリ712からデータを読み出すように構成されている。コントローラ710は、SoCのような電気回路によって構成され得る。
コントローラ710は、SSD702の動作を司る機能を有する。コントローラ710は、ホストI/F回路722、NAND I/F回路724、CPU726、ROM728、RAM730、及び解凍装置732等を備える。ホストI/F回路722、CPU726、ROM728、RAM730、NAND I/F回路724、及び解凍装置732は、バスを介して互いに接続されている。
解凍装置732は、第8実施形態に係る解凍装置602に対応する。
CPU726は、ホストI/F回路722、NAND I/F回路724、及び解凍装置732を制御するように構成されたプロセッサである。CPU726は、SSD702の電源オンに応答してNANDメモリ712またはROM728から制御プログラム(ファームウェア)をRAM730にロードし、当該制御プログラムを実行することによって様々な処理を行う。CPU726は、ホスト700からの様々な要求に対する処理を実行することができる。CPU726の動作は、CPU726によって実行される制御プログラムによって制御される。ホスト700からの要求に対する処理の一部または全部は、コントローラ710内の専用ハードウェアによって実行されてもよい。
第9実施形態に係るSSD702は、ホスト700から送信された圧縮暗号文ブロックを解凍装置732により解凍し、暗号文ブロックを生成する。SSD702は、暗号文ブロックをNANDメモリ712に書き込む。
第9実施形態に係るSSD702によれば、格子暗号の圧縮暗号文ブロックの解凍が可能となる。SSD702以外の装置、例えばホスト700が暗号文の復号処理を行う。
(第10実施形態)
図17は、第10実施形態に係るSSD752の一例を説明するためのブロック図である。
SSD752は、ホスト750に接続可能である。ホスト750は、第9実施形態に係るホスト700に対応する。
SSD752は、NANDメモリ762と、コントローラ760を備える。
NANDメモリ762は、第9実施形態に係るNANDメモリ712に対応する。コントローラ760は、第9実施形態に係るコントローラ760に対応する。
コントローラ760は、ホストI/F回路772、NAND I/F回路774、CPU776、ROM778、RAM780、解凍装置782、及び秘密計算装置784等を備える。ホストI/F回路772、NAND I/F回路774、CPU776、ROM778、RAM780、及び解凍装置782は、第9実施形態に係るホストI/F回路722、NAND I/F回路724、CPU726、ROM728、RAM730、及び解凍装置732にそれぞれ対応する。
第10実施形態に係るSSD752は、ホスト750から送信された圧縮暗号文ブロックを解凍装置782により解凍し、暗号文ブロックを生成する。SSD752は、暗号文ブロックをNANDメモリ762またはRAM780に書込む。
秘密計算装置784は、NANDメモリ762またはRAM780から暗号文ブロックを読出す。秘密計算装置784は、暗号文ブロックに対し、暗号化した状態で加算、乗算、関数計算などの演算を適用し、かつ、必要であれば演算結果に対してノイズ低減処理(ブートストラッピング)処理を適用する。秘密計算装置784は、演算適用後の暗号文ブロックをNANDメモリ762またはRAM780に書込む。他の動作は第9実施形態と同じである。 第10実施形態によれば、格子暗号の圧縮暗号文ブロックの解凍に加え、解凍後の暗号文ブロックに対して秘密計算を施すことが可能となる。SSD752以外の装置、例えばホスト750が暗号文の復号処理を行う。
(第11実施形態)
図18は、第11実施形態に係るSSD802の一例を説明するためのブロック図である。SSD802は、NVMe仕様のSSDである。
SSD802は、ホスト800に接続可能である。ホスト800は、第10実施形態に係るホスト750に対応する。
SSD802は、NANDメモリ812と、コントローラ810を備える。
NANDメモリ812は、第10実施形態に係るNANDメモリ762に対応する。コントローラ810は、PCIeインタフェース回路(PCIe I/F回路)822と、NVMeコントローラ820を含む。PCIe I/F回路822は、第10実施形態に係るホストI/F回路772に対応する。
NVMeコントローラ820は、NAND I/F回路824、CPU826、ROM828、RAM830、解凍装置832、及び秘密計算装置824等を備える。NAND I/F回路824、CPU826、ROM828、RAM830、解凍装置832、及び秘密計算装置834は、第10実施形態に係るNAND I/F回路774、CPU776、ROM778、RAM780、解凍装置782、及び秘密計算装置784にそれぞれ対応する。
第11実施形態に係るSSD802によれば、NVMe仕様のSSDにおいても、格子暗号の圧縮暗号文ブロックの解凍に加え、解凍後の暗号文ブロックに対して秘密計算を施すことが可能となる。SSD802以外の装置、例えばホスト800が暗号文の復号処理を行う。
(第12実施形態)
図19は、第12実施形態に係る情報処理システムの一例を説明するためのブロック図である。情報処理システムは、ホスト850とSSD852を含む。SSD852は、ホスト850に接続可能である。
ホスト850は、SSD852の動作を司る機能を有する。ホスト850は、SSDインタフェース(SSD I/F回路と称する)862、CPU864、ROM866、RAM868、解凍装置870、及び秘密計算装置872等を備える。SSD I/F回路862、CPU864、ROM866、RAM868、暗号化装置870、及び秘密計算装置872は、バスを介して互いに接続されている。
解凍装置870は、第8実施形態に係る解凍装置602に対応する。解凍装置870は、ホスト850が生成する圧縮暗号文ブロックを解凍し、暗号文ブロックを生成する。解凍装置870は、暗号文ブロックをRAM868に書き込むか、または、SSD852に送信する。
秘密計算装置872は、第10実施形態に係る秘密計算装置784に対応する。秘密計算装置872は、RAM868、またはSSD852から暗号文ブロックを読み出す。秘密計算装置784は、暗号文ブロックに対し、暗号化した状態で加算、乗算、関数計算などの演算を適用し、かつ、必要であれば演算結果に対してノイズ低減処理(ブートストラッピング)処理を適用する。秘密計算装置872は、演算適用後の暗号文ブロックをRAM868に書込むか、SSD850に送信する。
SSD I/F回路862は、SSD852に暗号文/暗号文ブロックを送信し、SSD852から暗号文/暗号文ブロックを受信する通信回路である。
CPU864は、SSD I/F回路862、解凍装置870、及び秘密計算装置872を制御するように構成されたプロセッサである。CPU864は、ホスト850の電源オンに応答してROM866から制御プログラム(ファームウェア)をRAM868にロードし、当該制御プログラムを実行することによって様々な処理を行う。
SSD852は、NANDメモリ882と、コントローラ880を備える。
NANDメモリ882は、第10実施形態に係るNANDメモリ762に対応する。コントローラ880は、ホストI/F回路890、NAND I/F回路892、CPU894、ROM896、及びRAM898等を備える。ホストI/F回路890、NAND I/F回路892、CPU894、ROM896、及びRAM898は、第10実施形態に係るホストI/F回路772、NAND I/F回路774、CPU776、ROM778、及びRAM780にそれぞれ対応する。
第12実施形態に係る情報処理システムによれば、ホスト850が解凍装置870と秘密計算装置872を備えるので、SSD852が解凍装置と秘密計算装置を備えなくても、SSD852は圧縮暗号文ブロックを記憶することができる。ホスト850が解凍装置870と秘密計算装置872の一方を備え、SSD852のコントローラ880が解凍装置870と秘密計算装置872の他方を備えてもよい。
(第13実施形態)
図20は、第13実施形態に係るSSD902の一例を説明するためのブロック図である。
SSD902は、ネットワーク904を介してサーバ900に接続可能である。
サーバ900は、SSD902の動作を司る機能を有する。サーバ900は、第10実施形態のホスト750又は第11実施形態のホスト800に対応する。
SSD902は、コントローラ910とNANDメモリ912を含む。NANDメモリ912は、第10実施形態に係るNANDメモリ762に対応する。コントローラ910は、第10実施形態のコントローラ760に対応する。しかし、コントローラ910は、ホスト I/F回路772の代わりに、ネットワークインタフェースカード(NIC)920を備える点がコントローラと異なる。NIC920は、解凍装置992と秘密計算装置994等を備える。解凍装置992は第8実施形態の解凍装置602に対応する。秘密計算装置924は第10実施形態の秘密計算装置784に対応する。
コントローラ910は、NIC920、CPU930、ROM932、RAM934、NAND I/F回路936を備える。CPU930、ROM932、RAM934、及びNAND I/F回路936は、第10実施形態のCPU776、ROM778、RAM780、及びNAND I/F回路774、又は第11実施形態のCPU826、ROM828、RAM830、及びNAND I/F回路824、又は第12実施形態のCPU894、ROM896、RAM898、及びNAND I/F回路892に対応する。
第13実施形態によれば、ネットワーク904に直接接続できるSSD902においても、格子暗号の圧縮暗号文ブロックの解凍、及び解凍後の暗号文ブロックに対して秘密計算を施すことが可能となる。
(第14実施形態)
図21は、第14実施形態に係る情報処理システムの一例を説明するためのブロック図である。情報処理システムは、サーバ950と複数台のSSD、例えば3台のSSD952-1、952-2、952-3を含む。
SSD952-1、952-2、952-3は、ネットワーク954を介してサーバ950に接続可能である。
サーバ950は、複数台のSSD952-1、952-2、952-3の動作を司る機能を有する。サーバ950は、第12実施形態のホスト850に対応する。
第14実施形態は、第13実施形態とは、解凍装置と秘密計算装置の配置が異なる。第13実施形態では、SSD902のNIC920が解凍装置922と秘密計算装置924を備える。第14実施形態では、サーバ950が解凍装置960と秘密計算装置962を備える。
サーバ950は、複数のSSD952-1、952-2、952-3の動作を司る機能を有する。サーバ950は、ネットワークI/F回路964、解凍装置960、秘密計算装置962、CPU966、ROM968、RAM970等を備える。解凍装置960は、第8実施形態の解凍装置602に対応する。秘密計算装置962は第10実施形態の秘密計算装置784に対応する。CPU966、ROM968、RAM970は、第12実施形態のCPU864、ROM866、RAM868に対応する。
第14実施形態に係る情報処理システムによれば、サーバ950が解凍装置960と秘密計算装置962を備えるので、複数のSSD952-1、952-2、952-3が解凍装置と秘密計算装置を備えなくても、SSD952-1、952-2、952-3は、解凍された暗号文ブロックを記憶することができる。サーバ950が解凍装置960と秘密計算装置962の一方を備え、SSD952-1、952-2、952-3が解凍装置960と秘密計算装置962の他方を備えてもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
10…暗号化装置、12…乱数生成部、14…乱数置換部、16…圧縮暗号化部、18…制御部、30…復号装置、32…乱数復元部、34…乱数置換部、36…解凍復号部、38…制御部

Claims (20)

  1. 先頭成分と複数の後続成分を含む平文ブロックを暗号化して、前記先頭成分に対応する先頭成分暗号文と前記複数の後続成分に対応する複数の後続成分暗号文とを生成可能な暗号化装置であって、
    前記先頭成分暗号文は先頭サブ成分と後続サブ成分を含み、
    前記複数の後続成分暗号文のそれぞれは先頭サブ成分と後続サブ成分を含み、
    前記暗号化装置は、
    (n+1)次元の一次独立な部分乱数ベクトルを生成し、前記部分乱数ベクトルからN次元の乱数ベクトルを生成する生成部と、
    前記N次元の乱数ベクトルに対して所定の関数による演算を所定回数実行した結果を出力する置換部と、
    前記先頭成分を、(n+1)次元の正則な部分行列を持つN行(n+1)列の公開鍵と前記N次元の乱数ベクトルを用いて暗号化し、前記先頭成分暗号文を生成し、前記複数の後続成分の各々を、前記公開鍵と前記置換部の出力を用いて暗号化し、前記複数の後続成分暗号文を生成する暗号化部と、を具備し、
    前記後続成分暗号文の各々は、先頭サブ成分の暗号文を含み、後続サブ成分の暗号文を含まず、
    nとNは正整数であり、
    (n+1)<Nである、暗号化装置。
  2. 前記先頭成分暗号文は、先頭サブ成分の暗号文と後続サブ成分の暗号文を含む、請求項1に記載の暗号化装置。
  3. 前記暗号化部は、前記先頭成分暗号文と前記複数の後続成分の各々の前記先頭サブ成分の暗号文のリストとを含む暗号文ブロックを出力する、請求項1に記載の暗号化装置。
  4. 前記(n+1)次元の正則な部分行列の第i行は、前記公開鍵の第i行と一致し、
    前記乱数ベクトルの第i成分は前記部分乱数ベクトルの第i成分と一致する、請求項1に記載の暗号化装置。
  5. 請求項1に記載の暗号化装置と、
    記憶媒体と、
    前記暗号化装置により生成された先頭成分暗号文と複数の後続成分暗号文を含む暗号文ブロックを前記記憶媒体に書き込むコントローラと、を具備するストレージシステム。
  6. 前記コントローラは、前記記憶媒体に書き込まれた前記暗号文ブロックを読み出して、前記読み出した暗号文ブロックを復号する復号装置を備え、
    前記復号装置は前記読み出した暗号文に基づいて、前記複数の後続成分暗号文の各々の後続サブ成分を復元する
    請求項5記載のストレージシステム。
  7. 請求項1に記載の暗号化装置と、
    前記暗号化装置により生成された先頭成分暗号文と複数の後続成分暗号文を含む暗号文ブロックをストレージシステムに送信する通信インタフェース回路と、を具備する情報処理装置。
  8. 先頭成分と複数の後続成分を含む平文ブロックを暗号化して、前記先頭成分に対応する先頭成分暗号文と前記複数の後続成分に対応する複数の後続成分暗号文とを生成可能な暗号化方法であって、
    前記先頭成分暗号文は先頭サブ成分と後続サブ成分を含み、
    前記複数の後続成分暗号文のそれぞれは先頭サブ成分と後続サブ成分を含み、
    前記暗号化方法は、
    (n+1)次元の一次独立な部分乱数ベクトルを生成することと、
    前記部分乱数ベクトルからN次元の乱数ベクトルを生成することと、
    前記N次元の乱数ベクトルに対して所定の関数による演算を所定回数実行した結果を出力することと、
    前記先頭成分を、(n+1)次元の正則な部分行列を持つN行(n+1)列の公開鍵と前記N次元の乱数ベクトルを用いて暗号化し、前記先頭成分暗号文を生成することと、
    前記複数の後続成分の各々を、前記公開鍵と前記所定の関数による演算を所定回数実行した結果を用いて暗号化し、前記複数の後続成分暗号文を生成することを具備し、
    前記後続成分暗号文は、先頭サブ成分の暗号文を含み、後続サブ成分の暗号文を含まず、
    nとNは正整数であり、
    (n+1)<Nである、暗号化方法。
  9. 先頭成分暗号文と複数の後続成分暗号文を含む暗号文ブロックを復号するための復号装置であって、
    前記暗号文ブロックは、乱数ベクトルにより暗号化されており、
    前記先頭成分暗号文は、先頭サブ成分の暗号文と後続サブ成分の暗号文を含み、
    前記複数の後続成分暗号文のそれぞれは、先頭サブ成分の暗号文を含み、後続サブ成分の暗号文を含まず、
    前記復号装置は、
    前記先頭成分暗号文から前記暗号文ブロックに関する秘密鍵により平文ブロックの先頭成分を復号する復号部と、
    前記平文ブロックの先頭成分と前記暗号文ブロックに関する公開鍵から前記乱数ベクトルを復元する復元部と、
    前記乱数ベクトルに対して所定の関数による演算を所定回数実行した結果を出力する置換部と、を具備し、
    前記復号部は、前記公開鍵と前記置換部の出力により前記複数の後続成分暗号文の各々の後続サブ成分の暗号文を復元し、入力した前記先頭サブ成分の暗号文と復元した前記後続サブ成分の暗号文を含む後続成分暗号文から前記秘密鍵により前記平文ブロックの後続成分を復号する、復号装置。
  10. 前記暗号文ブロックは、前記先頭成分暗号文と前記後続成分の前記先頭サブ成分の暗号文のリストとを含む、請求項9に記載の復号装置。
  11. 前記復元部は、
    前記平文ブロックの先頭成分と、前記暗号文ブロックの先頭成分の暗号文と、前記公開鍵から(n+1)次元の一次独立な部分乱数ベクトルを生成し、
    前記部分乱数ベクトルからN次元の前記乱数ベクトルを復元する、請求項9記載の復号装置。
  12. 前記公開鍵は、(n+1)次元の正則な部分行列を持つN行(n+1)列の鍵である、請求項11に記載の復号装置。
  13. 前記(n+1)次元の正則な部分行列の第i行は、前記公開鍵の第i行と一致し、
    前記乱数ベクトルの第i成分は前記部分乱数ベクトルの第i成分と一致する、請求項12に記載の復号装置。
  14. 先頭成分暗号文と複数の後続成分暗号文を含む暗号文ブロックを入力する復号方法であって、
    前記暗号文ブロックは、乱数ベクトルにより暗号化されており、
    前記先頭成分暗号文は、先頭サブ成分と後続サブ成分の暗号文を含み、
    前記後続成分暗号文は、先頭サブ成分の暗号文を含み、後続サブ成分の暗号文を含まず、
    前記復号方法は、
    前記先頭成分暗号文から前記暗号文ブロックに関する秘密鍵により平文ブロックの先頭成分を復号することと、
    前記平文ブロックの先頭成分と前記暗号文ブロックに関する公開鍵から前記乱数ベクトルを復元することと、
    前記乱数ベクトルに対して所定の関数による演算を所定回数実行した結果を出力することと、
    前記公開鍵と前記所定の関数による演算を所定回数実行した結果により前記複数の後続成分暗号文の各々の後続サブ成分の暗号文を復元することと、
    入力した前記先頭サブ成分の暗号文と復元した前記後続サブ成分の暗号文を含む後続成分暗号文から前記秘密鍵により前記平文ブロックの後続成分を復号することと、を具備する復号方法。
  15. 先頭成分と複数の後続成分を含む平文ブロックを暗号化して、前記先頭成分に対応する先頭成分暗号文と前記複数の後続成分に対応する複数の後続成分暗号文とを生成可能な暗号化装置と、
    前記先頭成分暗号文と前記複数の後続成分暗号文を含む暗号文ブロックを復号するための復号装置と、を具備する情報処理装置であって、
    前記先頭成分暗号文は、先頭サブ成分と後続サブ成分の暗号文を含み、
    前記後続成分暗号文は、先頭サブ成分の暗号文を含み、後続サブ成分の暗号文を含まず、
    前記暗号化装置は、
    (n+1)次元の一次独立な部分乱数ベクトルを生成し、前記部分乱数ベクトルからN次元の乱数ベクトルを生成する生成部と、
    前記N次元の乱数ベクトルに対して所定の関数による演算を所定回数実行した結果を出力する置換部と、
    (n+1)次元の正則な部分行列を持つN行(n+1)列の公開鍵と前記N次元の乱数ベクトルを用いて前記先頭成分を暗号化し、先頭成分暗号文を生成し、前記公開鍵と前記置換部の出力を用いて前記後続成分を暗号化し、後続成分暗号文を生成する暗号化部と、を具備し、
    前記後続成分暗号文は、先頭サブ成分の暗号文を含み、後続サブ成分の暗号文を含まず、
    nとNは正整数であり、
    (n+1)<Nであり、
    前記復号装置は、
    前記先頭成分暗号文から前記暗号文ブロックに関する秘密鍵により平文ブロックの先頭成分を復号する復号部と、
    前記平文ブロックの先頭成分と前記暗号文ブロックに関する公開鍵から前記乱数ベクトルを復元する復元部と、
    前記乱数ベクトルに対して所定の関数による演算を所定回数実行した結果を出力する置換部と、を具備し、
    前記復号部は、前記公開鍵と前記置換部の出力により前記複数の後続成分暗号文の各々の後続サブ成分の暗号文を復元し、入力した前記先頭サブ成分の暗号文と復元した前記後続サブ成分の暗号文を含む後続成分暗号文から前記秘密鍵により前記平文ブロックの後続成分を復号する、情報処理装置。
  16. 先頭成分暗号文と複数の後続成分圧縮暗号文を含む圧縮暗号文ブロックを解凍し、暗号文ブロックを出力する解凍装置であって、
    前記先頭成分暗号文は先頭サブ成分と後続サブ成分を含み、
    前記複数の後続成分圧縮暗号文のそれぞれは先頭サブ成分と後続サブ成分を含み、
    前記解凍装置は、
    前記先頭成分暗号文と前記暗号文ブロックに関する公開鍵から前記公開鍵により暗号化された乱数ベクトルを復元する乱数復元部と、
    前記公開鍵により暗号化された前記乱数ベクトルに対して置換関数の値を出力する乱数置換部と、
    前記複数の後続成分圧縮暗号文に対し、前記公開鍵により暗号化された後続成分圧縮暗号文と、前記公開鍵の転置行列の先頭行と前記公開鍵により暗号化された前記乱数ベクトルに対する前記置換関数の値との積との差分を複数の後続成分暗号文の先頭サブ成分と後続サブ成分として求め、前記先頭成分暗号文と前記複数の後続成分暗号文を含む暗号文ブロックを出力する解凍部、と
    を具備する解凍装置。
  17. 請求項16に記載の解凍装置と、
    記憶媒体と、
    前記解凍装置から出力された暗号文ブロックを前記記憶媒体に書き込むコントローラと、
    を具備するストレージシステム。
  18. 前記コントローラは、前記解凍装置から出力された暗号文ブロックを暗号化した状態で演算する演算部を具備し、前記演算部の演算結果を前記記憶媒体に書き込む、請求項17記載のストレージシステム。
  19. 請求項16に記載の解凍装置と、
    前記解凍装置から出力された暗号文ブロックを暗号化した状態で演算する演算部と、
    を具備する情報処理装置。
  20. 先頭成分暗号文と複数の後続成分圧縮暗号文を含む圧縮暗号文ブロックを解凍し、暗号文ブロックを出力する解凍方法であって、
    前記先頭成分暗号文は先頭サブ成分と後続サブ成分を含み、
    前記複数の後続成分圧縮暗号文のそれぞれは先頭サブ成分と後続サブ成分を含み、
    前記解凍方法は、
    前記先頭成分暗号文と前記暗号文ブロックに関する公開鍵から前記公開鍵により暗号化された乱数ベクトルを復元することと、
    前記公開鍵により暗号化された前記乱数ベクトルに対して置換関数の値を出力することと、
    前記複数の後続成分圧縮暗号文に対し、前記公開鍵により暗号化された後続成分圧縮暗号文と、前記公開鍵の転置行列の先頭行と前記公開鍵により暗号化された前記乱数ベクトルに対する前記置換関数の値との積との差分を複数の後続成分暗号文の先頭サブ成分と後続サブ成分として求め、前記先頭成分暗号文と前記複数の後続成分暗号文を含む暗号文ブロックを出力すること、と
    を具備する解凍方法。
JP2023044386A 2022-06-03 2023-03-20 暗号化装置、復号装置、ストレージシステム、情報処理装置、暗号化方法、復号方法、解凍装置、及び解凍方法 Pending JP2023178201A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US18/204,878 US20230396411A1 (en) 2022-06-03 2023-06-01 Encryption device, decryption device, storage system, information processing device, encryption method, decryption method, decompression device, and decompression method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2022090731 2022-06-03
JP2022090731 2022-06-03

Publications (1)

Publication Number Publication Date
JP2023178201A true JP2023178201A (ja) 2023-12-14

Family

ID=89124009

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023044386A Pending JP2023178201A (ja) 2022-06-03 2023-03-20 暗号化装置、復号装置、ストレージシステム、情報処理装置、暗号化方法、復号方法、解凍装置、及び解凍方法

Country Status (1)

Country Link
JP (1) JP2023178201A (ja)

Similar Documents

Publication Publication Date Title
JP6730741B2 (ja) 処理装置、処理方法、処理プログラム、及び暗号処理システム
JP6730740B2 (ja) 処理装置、処理方法、処理プログラム、及び暗号処理システム
Han et al. Efficient logistic regression on large encrypted data
JP6391900B1 (ja) 準同型推論装置、準同型推論方法、準同型推論プログラム及び秘匿情報処理システム
JP6962578B2 (ja) 暗号処理システム、暗号処理装置、暗号処理プログラム、及び暗号処理方法
EP2750322A1 (en) Cryptography processing device and cryptography processing method
US20040202326A1 (en) System and methods for real-time encryption of digital images based on 2D and 3D multi-parametric chaotic maps
CN107533812A (zh) 秘密分散方法、秘密分散系统、分散装置和程序
US9054870B2 (en) Information security based on eigendecomposition
JP6974461B2 (ja) 幾何代数を用いた高度データ中心型暗号化システムのための方法およびシステム
CN111512592A (zh) 转换密钥生成装置、密文转换装置、隐匿信息处理系统、转换密钥生成方法、转换密钥生成程序、密文转换方法和密文转换程序
KR102339833B1 (ko) 다변수 패킹을 이용하는 연산 장치 및 방법
US20150227747A1 (en) Information security based on eigendecomposition
WO2014007296A1 (ja) 順序保存暗号化システム、暗号化装置、復号化装置、暗号化方法、復号化方法およびこれらのプログラム
JP2019095635A (ja) 処理装置、推論装置、学習装置、処理システム、処理方法、及び処理プログラム
CN110169010A (zh) 同态运算装置、加密系统和同态运算程序
US11558171B2 (en) Apparatus and method for encryption, apparatus and method for converting ciphertext
JP6729119B2 (ja) 暗号化装置、復号装置、暗号化方法、コンピュータプログラム、データ構造、および記憶媒体
JP2023178201A (ja) 暗号化装置、復号装置、ストレージシステム、情報処理装置、暗号化方法、復号方法、解凍装置、及び解凍方法
WO2020070973A1 (ja) 復号装置、暗号システム、復号方法及び復号プログラム
US20230396411A1 (en) Encryption device, decryption device, storage system, information processing device, encryption method, decryption method, decompression device, and decompression method
US12034850B2 (en) Encryption device, decryption device, encryption method, decryption method, and computer program products
EP4072062A1 (en) Apparatus for processing non-polynomial operation on homomorphic encrypted messages and methods thereof
US11288985B2 (en) Encryption device, decryption device, encryption method, decryption method, encryption program product, and decryption program product
WO2022137447A1 (ja) 秘匿情報処理システムおよび秘匿情報処理方法