(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024104875
(43)【公開日】2024-08-06
(54)【発明の名称】メモリシステムおよび制御方法
(51)【国際特許分類】
G06F 21/57 20130101AFI20240730BHJP
【FI】
G06F21/57
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2023009280
(22)【出願日】2023-01-25
(71)【出願人】
【識別番号】318010018
【氏名又は名称】キオクシア株式会社
(74)【代理人】
【識別番号】110001737
【氏名又は名称】弁理士法人スズエ国際特許事務所
(72)【発明者】
【氏名】松井 一
(57)【要約】
【課題】ファームウェアの署名検証の高速化を図ることができるメモリシステムを提供する。
【解決手段】実施形態によれば、メモリシステムは、コントローラが、CPUと、アクセラレータとを具備する。アクセラレータは、第1署名方式を用いて署名検証を行う。コントローラは、第2署名方式を用いて生成されたデジタル署名が付与されているファームウェアを入力して、不揮発性メモリに格納されているファームウェアを更新する場合、第2署名方式を用いて署名検証を行うプログラムをCPUで実行し、プログラムによって、ファームウェアの署名検証を行う。コントローラは、第1署名方式を用いてデジタル署名を再生成し、このデジタル署名を付与して、入力したファームウェアを不揮発性メモリに格納する。コントローラは、ファームウェアを起動する場合、不揮発性メモリに格納されているファームウェアの署名検証をアクセラレータによって実行する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
不揮発性メモリと、
前記不揮発性メモリを制御するコントローラと、
を具備し、
前記コントローラは、
CPUと、
第1署名方式の第1デジタル署名による署名検証を行うアクセラレータと、
を具備し、
前記コントローラは、
前記不揮発性メモリに格納されている第1ファームウェアを第2署名方式の第2デジタル署名が付与されている第2ファームウェアに更新する場合、
前記第2デジタル署名による署名検証を行うプログラムを前記CPUで実行し、前記CPUによって、前記第2ファームウェアに付与されている第2デジタル署名による前記第2ファームウェアの署名検証を行い、
前記第2ファームウェア用の第1デジタル署名を生成し、
前記第2ファームウェアに付与されるデジタル署名を前記第2ファームウェアに付与されている前記第2デジタル署名から前記生成した第1デジタル署名に置き換えて、前記第1ファームウェアを前記第2ファームウェアに更新し、
前記不揮発性メモリに格納されている第2ファームウェアを起動する場合、
前記第2ファームウェアに付与されている第1デジタル署名による前記第2ファームウェアの署名検証を前記アクセラレータによって行い、
前記第2ファームウェアを前記CPUによって実行する、
メモリシステム。
【請求項2】
前記第1署名方式は、耐量子計算機暗号非対応の署名方式であり、
前記第2署名方式は、耐量子計算機暗号対応の署名方式である、
請求項1に記載のメモリシステム。
【請求項3】
前記コントローラは、前記メモリシステム固有の情報を暗号鍵として用いて、前記生成した第1デジタル署名を共通鍵暗号方式により暗号化する請求項1または2に記載のメモリシステム。
【請求項4】
前記アクセラレータは、前記第1デジタル署名を生成する機能を有する請求項1または2に記載のメモリシステム。
【請求項5】
前記第1デジタル署名を生成する第2アクセラレータを具備する請求項1または2に記載のメモリシステム。
【請求項6】
前記コントローラは、前記第1デジタル署名を生成するプログラムを前記CPUで実行し、前記CPUによって、前記第2ファームウェア用の第1デジタル署名を生成する請求項1または2に記載のメモリシステム。
【請求項7】
前記第1署名方式は、ECDSA署名またはRSA署名である請求項1または2に記載のメモリシステム。
【請求項8】
CPUと、第1署名方式の第1デジタル署名による署名検証を行うアクセラレータとを具備し、不揮発性メモリを制御するコントローラによって実行される制御方法であって、
前記不揮発性メモリに格納されている第1ファームウェアを第2署名方式の第2デジタル署名が付与されている第2ファームウェアに更新する場合、
前記第2デジタル署名による署名検証を行うプログラムを前記CPUで実行し、前記CPUによって、前記第2ファームウェアに付与されている第2デジタル署名による前記第2ファームウェアの署名検証を行い、
前記第2ファームウェア用の第1デジタル署名を生成し、
前記第2ファームウェアに付与されるデジタル署名を第2デジタル署名から前記生成した第1デジタル署名に置き換えて、前記第1ファームウェアを前記第2ファームウェアに更新し、
前記不揮発性メモリに格納されている第2ファームウェアを起動する場合、
前記第2ファームウェアに付与されている第1デジタル署名による前記第2ファームウェアの署名検証を前記アクセラレータによって行い、
前記第2ファームウェアを前記CPUによって実行する、
制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、メモリシステムおよび制御方法に関する。
【背景技術】
【0002】
NAND型フラッシュメモリ(以下、フラッシュメモリ)を搭載するSSD(Solid State Drive)は、フラッシュメモリを制御するコントローラが、ファームウェアと称されるプログラムの記述に沿って動作する。ファームウェアは、デジタル署名と共にフラッシュメモリに格納されており、コントローラは、たとえばSSDの電源オン時やリセット時、ファームウェアを起動するにあたり、デジタル署名によるファームウェアの署名検証を実行する。この署名検証により、コントローラは、改ざんされたファームウェアを起動してしまうことを防止する。コントローラは、署名検証用のハードウェアアクセラレータを搭載することで、ファームウェアの署名検証がSSDの起動時間を長引かせることを防止している。
【0003】
また、コントローラは、ファームウェアの更新時においても、デジタル署名が付与された新たなファームウェアを入力して、デジタル署名によるファームウェアの署名検証を実行する。この署名検証により、コントローラは、非正規のファームウェアを組み込んでしまうことを防止する。
【0004】
近年、量子計算機が注目を集めており、今後、耐量子計算機暗号対応のデジタル署名の普及が進んでいくと見込まれている。しかしながら、耐量子計算機暗号非対応のデジタル署名による署名検証を実行するハードウェアアクセラレータのみを搭載するSSDにおいては、耐量子計算機暗号対応のデジタル署名が付与された新たなファームウェアを署名検証することができない。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明の1つの実施形態は、ファームウェアの署名検証の高速化を図ることができるメモリシステムおよび制御方法を提供する。
【課題を解決するための手段】
【0007】
実施形態によれば、メモリシステムは、不揮発性メモリと、コントローラと、を具備する。コントローラは、不揮発性メモリを制御する。コントローラは、CPUと、アクセラレータと、を具備する。アクセラレータは、第1署名方式を用いて署名検証を行う。コントローラは、不揮発性メモリに格納されている第1ファームウェアを第2署名方式の第2デジタル署名が付与されている第2ファームウェアに更新する場合、第2デジタル署名による署名検証を行うプログラムをCPUで実行し、CPUによって、第2ファームウェアに付与されている第2デジタル署名による第2ファームウェアの署名検証を行い、第2ファームウェア用の第1デジタル署名を生成し、第2ファームウェアに付与されるデジタル署名を第2デジタル署名から前記生成した第1デジタル署名に置き換えて、前記第1ファームウェアを前記第2ファームウェアに更新する。コントローラは、不揮発性メモリに格納されている第2ファームウェアを起動する場合、第2ファームウェアに付与されている第1デジタル署名による第2ファームウェアの署名検証を前記アクセラレータによって行い、第2ファームウェアを前記CPUによって実行する。
【図面の簡単な説明】
【0008】
【
図1】実施形態のメモリシステムの一構成例を示す図。
【
図2】実施形態のメモリシステムのファームウェア更新時の動作手順を示すフローチャート。
【
図3】実施形態のメモリシステムのファームウェア起動時の動作手順を示すフローチャート。
【
図4】実施形態のメモリシステムのECDSA署名生成時の動作手順を示すフローチャート。
【
図5】実施形態のメモリシステムのECDSA署名検証時の動作手順を示すフローチャート。
【
図6】実施形態のメモリシステムが入力するPQC署名がFALCON署名であると想定した場合における当該FALCON署名の生成手順を示すフローチャート。
【
図7】実施形態のメモリシステムのFALCON署名(PQC署名)検証時の動作手順を示すフローチャート。
【発明を実施するための形態】
【0009】
以下、実施の形態について、図面を参照して説明する。
【0010】
図1は、実施形態のメモリシステム1の一構成例を示す図である。
【0011】
メモリシステム1は、たとえばSSDとして実現され得る。メモリシステム1は、コントローラ10と、不揮発性メモリ20とを有する。メモリシステム1がSSDとして実現される場合、不揮発性メモリ20は、フラッシュメモリである。
【0012】
コントローラ10は、不揮発性メモリ20を制御する。コントローラ10は、メモリシステム1の電源オン時やリセット時、不揮発性メモリ20の制御のために組み込まれているファームウェアを起動する。コントローラ10は、改ざんされたファームウェアを実行したり、非正規のファームウェアを組み込んだりしないように、適時、ファームウェアの署名検証を実行する。
【0013】
メモリシステム1には、起動時間に制約が設けられる場合がある。そのため、コントローラ10は、ファームウェアの署名検証を高速に実行することが可能なハードウェアアクセラレータ14を有する。ここで、実施形態のメモリシステム1においては、コントローラ10内のハードウェアアクセラレータ14が、たとえばECDSA署名といった耐量子計算機暗号非対応のデジタル署名による署名検証を実行する署名検証装置であることを想定する。つまり、ハードウェアアクセラレータ14は、PQC署名などと称される耐量子計算機暗号対応のデジタル署名による署名検証を実行することはできない。
【0014】
耐量子計算機暗号は、量子計算機に対して安全な暗号方式の総称であり、NIST(米国標準技術研究所)による標準化では、CRYSTALS-DILITHIUM、FALCON、SPHINCS+という方式が量子計算機に対して安全なデジタル署名方式として選定され、規格化作業が進められている。
【0015】
そこで、実施形態のメモリシステム1は、たとえば、ファームウェアのネットワーク経由での提供により耐量子計算機暗号の適用が開始され、耐量子計算機暗号対応のデジタル署名が付与されたファームウェアへのアップデートが行われる状況となった場合においても、起動時間に関する制約を満たすために、ファームウェアの署名検証の高速化を図る仕組みを備えたものであり、以下、この点について詳述する。
【0016】
なお、以下、ファームウェアを署名検証することを、(ファームウェアに付与されている)デジタル署名を検証するということがある。
【0017】
コントローラ10は、ファームウェアの署名検証に関わる構成要素として、前述のハードウェアアクセラレータ14のほか、入力部11と、バッファ12と、CPU13と、暗号化部15と、復号部16とを有する。なお、ここでは、ハードウェアアクセラレータ14は、たとえば、ECDSA署名でファームウェア201を署名検証するECDSA署名検証装置である。耐量子計算機暗号非対応のデジタル署名には、ECDSA署名のほか、RSA署名なども存在する。つまり、ハードウェアアクセラレータ14は、RSA署名でファームウェア201を署名検証するRSA署名検証装置であってもよい。この場合には、後述するECDSA署名生成部132は、RSA署名生成部となる。
【0018】
ECDSA署名は、楕円曲線の点のスカラー倍算の逆演算が困難であることに基づいたデジタル署名方式であり、楕円曲線上の点Gをパラメータとして、スカラーである秘密鍵dに対して楕円曲線のスカラー倍算を適用して得られた楕円曲線上の点を公開鍵dGとする。署名生成時には、ファームウェアmのハッシュ値hを計算し、秘密情報kから楕円曲線スカラー倍算によりkGを計算してkGのx座標をrとし、s=(rd+h)・k-1(mod n)を計算して、r,sを署名とする。nは点Gの位数である。また、署名検証時には、ファームウェアmのハッシュ値hを計算し、パラメータG、公開鍵dG、署名r,sを使って、(s-1・r(mod n))・dG+(s-1・h(mod n))・Gを計算して、そのx座標をr’とし、r=r’であることを確認する。
【0019】
(s-1・r(mod n))・dG+(s-1・h(mod n))・Gは、
・u=s―1・r(mod n)
・v=s―1・h(mod n)
・u・dG+v・G
として計算される。
【0020】
このときスカラーや楕円曲線の点の座標は256ビットや384ビットなどの多倍長整数であり、多倍長整数の四則演算を有限体上で行う必要がある点が特徴の1つである。
【0021】
つまり、ECDSA署名の処理には、256ビットや384ビットなどの多倍長整数の剰余演算が必須であるため、プログラムによりCPU13で処理すると、32ビットや64ビットずつ処理する必要がある。これに対して、ハードウェアアクセラレータ14は、多倍長整数の剰余演算ができるようなロジックとFFとで構成される。そのため、ハードウェアアクセラレータ14は、プログラムを使用してCPU13で処理する場合と比べて、ECDSA署名を高速に処理することができる。
【0022】
入力部11は、ファームウェア201の更新時、パーソナルコンピュータなどであるホストから、アップデート版の新たなファームウェア201と、ファームウェア201に付与されているPQC署名202とを受け取る。入力部11に入力されるファームウェア201は、共通鍵暗号方式で既に暗号化されている。
【0023】
バッファ12は、CPU13に対して作業領域を提供する、たとえばDRAMといった揮発性の記憶媒体である。入力部11から入力されたファームウェア201およびPQC署名202は、バッファ12に一時的に格納される。
【0024】
CPU13は、ファームウェア201を含む各種プログラムを実行する。実施形態のメモリシステム1においては、たとえば、ファームウェア201のネットワーク経由での提供について耐量子計算機暗号の適用への移行が決定したら、PQC署名が付与されたファームウェア201の提供が開始される前の、ECDSA署名が付与されたファームウェア201の提供により、PQC署名検証部131とECDSA署名生成部132とをコントローラ10内に構築するためのプログラムをあらかじめ取り込んでおく。あるいは、たとえばファームウェア201のネットワーク経由での提供について耐量子計算機暗号の適用への移行が決定した後は、(耐量子計算機暗号対応のデジタル署名による署名検証を実行するハードウェアアクセラレータを持たない)メモリシステム1の出荷前に、PQC署名検証部131とECDSA署名生成部132とをコントローラ10内に構築するためのプログラムを含むファームウェア201を、あらかじめ不揮発性メモリ20などに書き込んでおいてもよい。
【0025】
PQC署名検証部131は、耐量子計算機暗号対応のデジタル署名であるPQC署名202でファームウェア201を署名検証する。ファームウェア201の署名検証は、暗号化されたファームウェア201に対して実行される。なお、この署名検証はプログラムの記述に沿ってCPU13よって実行されるので、ハードウェアアクセラレータ14による署名検証と比較して時間を要する。しかし、ファームウェア201の更新時は、メモリシステム1の電源オン時やリセット時と異なり、所要時間が若干長くなることは許容される。PQC署名検証部131によるファームウェア201の署名検証が失敗した場合、コントローラ10は、ファームウェア201の更新をエラー終了する。
【0026】
たとえば、PQC署名の1つであるFALCONは、NTRU格子に基づいたデジタル署名方式であり、多項式の行列Aを公開鍵、B×At=0を満たす多項式の行列Bを秘密鍵とする。署名生成時には、乱数rとファームウェアmの連接に対するハッシュ計算により多項式cを求め、秘密鍵Bを用いてt=(c 0)B-1を中心としてzをサンプリングし、(s1 s2)=(t-z)Bとして、(s1 s2)が短くなければサンプリングをやり直し、短ければ(r,s2)を署名とする。署名検証時には、署名rとファームウェアmの連接に対するハッシュ計算により多項式cを求め、公開鍵A=(1 h)を用いてs1=c-s2hを計算し、(s1 s2)が短いことを確認する。このとき、c,t,z,s1,s2は高次元の多項式であり、高次元多項式の乗算を行う必要がある点が特徴の1つである。
【0027】
ECDSA署名生成部132は、PQC署名202に代えて、前述の計算で、ファームウェア201に付与するECDSA署名203を生成する。コントローラ10は、PQC署名検証部131によるファームウェア201の署名検証が成功した場合において、ECDSA署名生成部132によるECDSA署名203の生成を実施する。なお、ECDSA署名でファームウェア201を署名検証するハードウェアアクセラレータ14をコントローラ10が搭載する実施形態のメモリシステム1においては、ECDSA署名生成部132をプログラムで構築することに代えて、ECDSA署名203を生成する機能をハードウェアアクセラレータ14に搭載してもよい。あるいは、ECDSA署名203を生成する機能を、ハードウェアアクセラレータ14とは別のハードウェアアクセラレータとしてコントローラ10内に搭載するようにしてもよい。
【0028】
暗号化部15は、ECDSA署名生成部132によって生成されたECDSA署名203を、たとえば共通鍵暗号方式で暗号化する。コントローラ10は、暗号化されたファームウェア201およびECDSA署名203を不揮発性メモリ20に格納する。
【0029】
共通鍵暗号方式としては、量子計算機に対して安全である方式を用いる。たとえばAESを用いることができる。共通鍵暗号の共通鍵は、たとえば、メモリシステム1のハードウェア内に埋め込まれており、外部から読み出したり改ざんしたりすることはできないものである。eFuse、あるいは、PUF(Phisically Unclonable Function)を用いて、デバイス(メモリシステム1)ごとに異なる共通鍵を保持できるようにしてもよい。デバイスごとに異なる共通鍵を用いることで、統計的な手法を用いたサイドチャネル攻撃に対する耐性を高めることが可能になる。このように、共通鍵暗号による暗号化を行うことで、耐量子計算機暗号対応のデジタル署名を耐量子計算機暗号非対応のデジタル署名に置き換えることによるセキュリティ面の脆弱性をカバーすることができる。換言すれば、量子計算機による攻撃を防ぐことができる。
【0030】
一方、復号部16は、暗号化されたファームウェア201と、暗号化部15が共通鍵暗号方式で暗号化したECDSA署名203と、を復号する。コントローラ10は、メモリシステム1の電源オン時やリセット時、復号部16によるECDSA署名203の復号を行う。復号されたECDSA署名203は、バッファ12に一時的に格納される。
【0031】
この時点では、ファームウェア201に付与されているデジタル署名は、PQC署名202からECDSA署名203へと置き換わっているので、コントローラ10は、ハードウェアアクセラレータ14によって、ファームウェア201の署名検証を実行することができる。コントローラ10は、ファームウェア201の署名検証を、暗号化されたファームウェア201に対して実行する。署名検証が成功すると、コントローラ10は、復号部16によるファームウェア201の復号を行う。復号されたファームウェア201は、バッファ12に格納される。
【0032】
なお、コントローラ10は、メモリシステム1の電源オン時やリセット時、あるいはファームウェア201の更新時のいずれの場合においても、ファームウェア201の署名検証を、復号部16によるファームウェア201の復号後、復号されたファームウェア201に対して実行するという構成であってもよい。
【0033】
これにより、実施形態のメモリシステム1は、ファームウェア201の署名検証の高速化を図ることができる。
【0034】
図2は、実施形態のメモリシステム1のファームウェア201更新時の動作手順を示すフローチャートである。
【0035】
コントローラ10は、ファームウェア201とPQC署名202とを受け取る(S101)。コントローラ10は、PQC署名202を検証する(S102)。つまり、コントローラ10は、PQC署名202によるファームウェア201の署名検証を実行する。この検証は、PQC署名検証部131、すなわちCPU13によって、ある程度の所要時間を費やして実行される。
【0036】
検証が成功した場合(S103:YES)、コントローラ10は、ファームウェア201を更新する(S104)。コントローラ10は、更新後のファームウェア201について、入力時に付与されていたPQC署名202に代えて、ECDSA署名203を生成する(S105)。コントローラ10は、ECDSA署名203を暗号化して不揮発性メモリ20に保存する(S106)。
【0037】
検証が失敗した場合は(S103:NO)、コントローラ10は、ファームウェア201の更新をエラー終了する。
【0038】
図3は、実施形態のメモリシステム1のファームウェア201起動時の動作手順を示すフローチャートである。ファームウェア201起動時とは、すなわち、メモリシステム1の電源オン時やリセット時である。
【0039】
コントローラ10は、ECDSA署名203を復号して検証する(S201)。つまり、コントローラ10は、復号部16により復号されたECDSA署名203を使用してファームウェア201の署名検証を実行する。この検証は、ハードウェアアクセラレータ14によって高速に実行される。
【0040】
検証が成功した場合(S202:YES)、コントローラ10は、ファームウェア201を起動する(S203)。一方、検証が失敗した場合は(S202:NO)、コントローラ10は、ファームウェア201を起動することなくエラー終了する。
【0041】
図4は、実施形態のメモリシステム1のECDSA署名203生成時の動作手順を示すフローチャートである。つまり、ECDSA署名生成部132の処理の流れを示すフローチャートである。
【0042】
ECDSA署名生成部132は、ファームウェアmのハッシュ値hを計算する(S301)。ECDSA署名生成部132は、秘密情報kから楕円曲線スカラー倍算によりkGを計算し、kGのx座標をrとする(S302)。
【0043】
ECDSA署名生成部132は、s=(rd+h)・k-1を計算する(S303)。ECDSA署名生成部132は、r,sをECDSA署名とする(S304)。
【0044】
図5は、実施形態のメモリシステム1のECDSA署名203検証時の動作手順を示すフローチャートである。つまり、ハードウェアアクセラレータ14の処理の流れを示すフローチャートである。
【0045】
ハードウェアアクセラレータ14は、ファームウェアmのハッシュ値hを計算する(S401)。ハードウェアアクセラレータ14は、パラメータG、公開鍵dG、署名r,sを使って(s-1・r)・dG+(s-1・h)・Gを計算し、そのx座標をr’とする(S402)。
【0046】
ハードウェアアクセラレータ14は、r=r’か否かを判定する(S403)。r=r’である場合(S403:YES)、ハードウェアアクセラレータ14は、検証成功と判定する(S404)。一方、r=r’でない場合(S403:NO)、ハードウェアアクセラレータ14は、検証失敗と判定する(S405)。
【0047】
図6は、実施形態のメモリシステム1が受け取るPQC署名202がFALCON署名であると想定した場合における当該FALCON署名の生成手順を示すフローチャートである。FALCON署名の生成は、たとえば、ファームウェア201の提供元のコンピュータによって実行される。
【0048】
FALCON署名生成装置は、乱数rとファームウェアmの連接に対するハッシュ計算により多項式cを求める(S501)。FALCON署名生成装置は、秘密鍵Bを用いて、t=(c 0)B-1を中心としてzをサンプリングする(S502)。FALCON署名生成装置は、(s1 s2)=(t-z)Bとする(S503)。
【0049】
FALCON署名生成装置は、(s1 s2)が短いか否かを判定する(S504)。短くない場合(S504:NO)、FALCON署名生成装置は、S502に戻り、サンプリングをやり直す。短い場合(S504:YES)、FALCON署名生成装置は、(r,s2)を署名とする(S505)。
【0050】
図7は、実施形態のメモリシステム1のFALCON署名(PQC署名202)検証時の動作手順を示すフローチャートである。つまり、PQC署名検証部131の処理の流れを示すフローチャートである。
【0051】
PQC署名検証部131は、署名rとファームウェアmの連接に対するハッシュ計算により多項式cを求める(S601)。PQC署名検証部131は、公開鍵A=(1 h)を用いてs1=c-s2hを計算する(S602)。
【0052】
PQC署名検証部131は、(s1 s2)が短いか否かを判定する(S603)。短い場合(S603:YES)、PQC署名検証部131は、検証成功と判定する(S404)。一方、短くない場合(S603:NO)、PQC署名検証部131は、検証失敗と判定する(S605)。
【0053】
以上のように、実施形態のメモリシステム1は、耐量子計算機暗号非対応のデジタル署名による署名検証を実行するハードウェアアクセラレータ14のみを有し、耐量子計算機暗号対応のデジタル署名による署名検証を実行するハードウェアアクセラレータを有していなくても、たとえば、ファームウェア201のネットワーク経由での提供について耐量子計算機暗号の適用への移行した後も、電源オン時やリセット時におけるファームウェア201の署名検証の高速化を図ることができる。
【0054】
より詳しくは、ファームウェア201に付与されているPQC署名202を、速さを要求されないファームウェア201更新時にECDSA署名203に置き換えることで、ハードウェアアクセラレータ14での高速な署名検証を可能とする。また、ECDSA署名203およびファームウェア201を、メモリシステム1固有の情報を暗号鍵として暗号化して不揮発性メモリ20に保存することで、耐量子計算機暗号対応のデジタル署名を耐量子計算機暗号非対応のデジタル署名に置き換えても、量子計算機による攻撃を防ぐことができる。
【0055】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0056】
1…メモリシステム、10…コントローラ、11…入力部、12…バッファ、13…CPU、14…ハードウェアアクセラレータ、15…暗号化部、16…復号部、20…不揮発性メモリ、131…PQC署名検証部、132…ECDSA署名生成部、201…ファームウェア、202…PQC署名、203…ECDSA署名。