(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022184327
(43)【公開日】2022-12-13
(54)【発明の名称】セキュアエレメント,デバイスおよび不揮発性メモリの管理方法
(51)【国際特許分類】
G06F 12/00 20060101AFI20221206BHJP
【FI】
G06F12/00 550Z
【審査請求】未請求
【請求項の数】3
【出願形態】OL
(21)【出願番号】P 2021092105
(22)【出願日】2021-06-01
(71)【出願人】
【識別番号】000002897
【氏名又は名称】大日本印刷株式会社
(74)【代理人】
【識別番号】100122529
【弁理士】
【氏名又は名称】藤枡 裕実
(74)【代理人】
【識別番号】100135954
【弁理士】
【氏名又は名称】深町 圭子
(74)【代理人】
【識別番号】100119057
【弁理士】
【氏名又は名称】伊藤 英生
(74)【代理人】
【識別番号】100131369
【弁理士】
【氏名又は名称】後藤 直樹
(74)【代理人】
【識別番号】100171859
【弁理士】
【氏名又は名称】立石 英之
(72)【発明者】
【氏名】高木 桂子
【テーマコード(参考)】
5B160
【Fターム(参考)】
5B160NA02
(57)【要約】 (修正有)
【課題】複雑にならない比較的単純な処理で,不揮発性メモリのメモリ寿命を延ばせるセキュアエレメント、セキュアエレメントを実装したデバイス及び不揮発性メモリの管理方法を提供する。
【解決手段】セキュアエレメントは,ページ13の代替に利用するスペア領域を設けた不揮発性メモリ104と,論理ページ番号に関連付けて論理ページ番号に対応させたページ13のエントリ情報を管理するメモリ管理手段11を備える。メモリ管理手段11は,データを書き込む処理を実行するごとに,データを書き込んだページ13の更新回数を記録し,更新回数が閾値に達すると,データを書き込んだページ13のページデータをスペア領域のページ13に複写した後,データを書き込んだページ13が対応している論理ページ番号に関連付けられているエントリ情報を,ページデータを複写したスペア領域のページのエントリ情報に書き換える処理を実行する。
【選択図】
図3
【特許請求の範囲】
【請求項1】
データを格納したページの代替に利用するスペア領域を設けた電気的に書き換え可能な不揮発性メモリと,論理ページ番号に関連付けて論理ページ番号に対応させたページのエントリ情報を管理するメモリ管理手段を備え,
前記メモリ管理手段は,データを書き込む処理を実行するごとに,データを書き込んだページの更新回数を記録し,データを書き込んだページの更新回数が閾値に達すると,データを書き込んだページのページデータを前記スペア領域に含まれる一つのページに複写し,データを書き込んだページが対応している論理ページ番号に関連付けられているエントリ情報を,前記ページデータを複写した前記スペア領域のページのエントリ情報に書き換える処理を実行する,
ことを特徴とするセキュアエレメント。
【請求項2】
請求項1に記載したセキュアエレメントを実装したデバイス。
【請求項3】
データを格納したページの代替に利用するスペア領域を電気的に書き換え可能な不揮発性メモリに設け,論理ページ番号に関連付けて論理ページ番号に対応させたページのエントリ情報を管理するメモリ管理手段が,データを書き込む処理を実行するごとに,データを書き込んだページの更新回数を記録するステップ,前記メモリ管理手段が,データを書き込んだページの更新回数が閾値に達すると,データを書き込んだページのページデータを前記スペア領域に含まれる一つのページに複写し,データを書き込んだページが対応している論理ページ番号に関連付けられているエントリ情報を,前記ページデータを複写した前記スペア領域のページのエントリ情報に書き換えるステップを実行する,
ことを特徴とするセキュアエレメントの不揮発性メモリ管理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は,セキュアエレメントが有する不揮発性メモリのメモリ寿命を延ばす技術に関する。
【背景技術】
【0002】
外部からの解析攻撃に対する強固な耐タンパー性を持つ半導体製品であるセキュアエレメントは,様々なデバイス(例えば,ICカード)に搭載されている。セキュアエレメントを搭載したデバイスの主用途はセキュリティ用途(例えば,金融決済用途)になる。
【0003】
セキュリティ用途で用いられるデバイスに実装するセキュアエレメントは,データを記憶するメモリとして,電気的に書き換え可能な不揮発性メモリを備える。これ以降,不揮発性メモリとは,電気的に書き換え可能な不揮発性メモリを意味する。
【0004】
セキュアエレメントが備える不揮発性メモリは,ページと呼ばれる単位で管理される。不揮発性メモリでは,データの消去単位はページ単位になる。このため,データを格納した不揮発性メモリのページにデータを書き込む処理では,データを書き込むページのページデータ(ページの全体データを意味する)を消去した後,所定のアドレスにデータを書き込んだページデータを,ページデータを消去したページに書き込まなければならない。
【0005】
不揮発性メモリを構成する記録素子の構造上,不揮発性メモリの更新回数(消去回数)には上限がある。不揮発性メモリに設けられた更新限度回数は,不揮発性メモリの種類によって異なる。例えば,不揮発性メモリの更新限度回数は10万回である。
【0006】
近年,セキュアエレメントに格納するデータのサイズが増加したことにより,セキュアエレメントが備える不揮発性メモリの容量が増加し,不揮発性メモリのページサイズも増加傾向にある。
【0007】
ページサイズが大きくなると,サイズが大きいデータを扱う場合,データを書き込むページが少なくて済むなどの利点が生じる。しかし,サイズが小さいデータを取り扱う場合,1つのページに含まれるデータの数が多くなるため,書き換え頻度が高い複数のデータが1つページに格納されていると,このページの更新回数が増え,不揮発性メモリのメモリ寿命が短くなる問題が生じる。よって,書き換え頻度の高いデータが存在しても,不揮発性メモリのメモリ寿命が短くならない工夫が必要になる。
【0008】
不揮発性メモリのメモリ寿命を延ばす工夫に,ウェアレベリング処理を用いるのが一般的になっている(例えば,特許文献1)。ウェアレベリング処理とは,書き換えが行われる記憶素子が特定のものに偏らないように分散することで,特定のデータについて繰り返し書き換えが発生した場合でも不揮発性メモリの全体として記憶素子の消耗を平均化する技術である。
【先行技術文献】
【特許文献】
【0009】
【発明の概要】
【発明が解決しようとする課題】
【0010】
ウェアレベリング処理により不揮発性メモリのメモリ寿命を延ばすと,不揮発性メモリのメモリ寿命を延ばすための処理が複雑になる問題がある。特に,書き換え頻度が高くサイズが小さいデータが一つのページに複数点在すると,それぞれのデータを考慮してウェアレベリング処理を行わなければならず,不揮発性メモリのメモリ寿命を延ばすための処理がより複雑になる。
【0011】
そこで,本発明は,複雑にならない比較的単純な処理で,セキュアエレメントに実装された不揮発性メモリのメモリ寿命を延ばせることを目的とする。
【課題を解決するための手段】
【0012】
上述した課題を解決する第1発明は, データを格納したページの代替に利用するスペア領域を設けた電気的に書き換え可能な不揮発性メモリと,論理ページ番号に関連付けて論理ページ番号に対応させたページのエントリ情報を管理するメモリ管理手段を備え,前記メモリ管理手段は,データを書き込む処理を実行するごとに,データを書き込んだページの更新回数を記録し,データを書き込んだページの更新回数が閾値に達すると,データを書き込んだページのページデータを前記スペア領域に含まれる一つのページに複写し,データを書き込んだページが対応している論理ページ番号に関連付けられているエントリ情報を,前記ページデータを複写した前記スペア領域のページのエントリ情報に書き換える処理を実行することを特徴とするセキュアエレメントである。
【0013】
更に,第2発明は,第1発明に記載したセキュアエレメントを実装したデバイスである。
【0014】
更に,第3発明は,データを格納したページの代替に利用するスペア領域を電気的に書き換え可能な不揮発性メモリに設け,論理ページ番号に関連付けて論理ページ番号に対応させたページのエントリ情報を管理するメモリ管理手段が,データを書き込む処理を実行するごとに,データを書き込んだページの更新回数を記録するステップ,前記メモリ管理手段が,データを書き込んだページの更新回数が閾値に達すると,データを書き込んだページのページデータを前記スペア領域に含まれる一つのページに複写し,データを書き込んだページが対応している論理ページ番号に関連付けられているエントリ情報を,前記ページデータを複写した前記スペア領域のページのエントリ情報に書き換えるステップを実行することを特徴とするセキュアエレメントの不揮発性メモリ管理方法である。
【発明の効果】
【0015】
本発明では,更新回数が更新限度回数に近づいた不揮発性メモリのページを他のページで代替するだけの比較的単純な処理で,不揮発性メモリのメモリ寿命を延ばすことができる。
【図面の簡単な説明】
【0016】
【
図1】セキュアエレメントを搭載したデバイスの一例を説明する図。
【
図2】セキュアエレメントが備えるハードウェアを説明する図。
【
図6】セキュアエレメントが備えるメモリ管理手段の動作を説明する図。
【
図7】更新回数が閾値に達したページを代替する処理を説明する図。
【発明を実施するための形態】
【0017】
ここから,本発明に係る実施形態について記載する。本実施形態は,本発明の理解を容易にするためのものであり,本発明は,本実施形態に限定されるものではない。また,特に断りのない限り,図面は,本発明の理解を容易にするために描かれた模式的な図である。
【0018】
図1は,セキュアエレメント1を搭載したデバイス2の一例を説明する図である。
図1では,セキュアエレメント1を搭載したデバイス2を,ISO7816に準拠した接触通信により外部端末と通信する接触型ICカードとして図示している。
【0019】
図1において,デバイス2はクレジットカードの形状にしているが,セキュアエレメント1を搭載したデバイス2の形状は,クレジットカードの形状に限定されない。セキュアエレメント1を搭載したデバイス2は,スマートフォンなどに装着するSIM(Subscriber Identity Module)でもよく,または,スマートフォンなどの基板に実装するeSIM(embedded Subscriber Identity Module)でもよい。
【0020】
図1で図示したデバイス2において,セキュアエレメント1は外部端子の裏側に樹脂モールドされている。セキュアエレメント1は,外部端子20を介して図外の外部装置(例えば,リーダライタ)と接触通信する。なお,セキュアエレメント1が対応する通信方式は,ISO7816に準拠した接触通信に限定されない。セキュアエレメント1が対応する通信方式は,ISO14443に準拠した非接触通信でもよく,コンピュータ内部で用いられる通信方式(例えば,SPI,Serial Peripheral Interface)でもよい。
【0021】
図2は,セキュアエレメント1が備えるハードウェアを説明する図である。本実施形態に係るセキュアエレメント1は,ハードウェアとして,接触通信インタフェース101,CPU100(Central Processing Unit),RAM102(Random Access Memory),ROM103(Read Only Memory),不揮発性メモリ104,コプロセッサ105(Coprocessor),乱数生成器106(RNG: Random Number Generator),および,電力供給回路107を備えている。当然のことながら,セキュアエレメント1に集積する回路は,これらの回路に限定されない。
【0022】
本実施形態において,セキュアエレメント1のCPU100は,メモリに格納されたプログラムコードを解釈して,所定の処理を実行する回路である。電力供給回路107は,デバイス2の表面にある外部端子20(VCC端子)と接続し,外部端末から供給された電力を他の回路(例えば,CPU100)に供給する回路である。接触通信インタフェース101は,デバイス2の表面にある外部端子20(I/O端子)と接続し,外部端末と接触通信を行う回路である。コプロセッサ105は,暗号鍵を用いた暗号演算を高速に処理できるように構成された回路である。乱数生成器106は,乱数を生成する回路である。
【0023】
RAM102,ROM103および不揮発性メモリ104は,セキュアエレメント1が備えるメモリになる。RAM102は,電気的な書き換え可能な揮発性メモリである。ROM103は,電気的に書き換えできない読取り専用のメモリである。不揮発性メモリ104は,電気的に書き換え可能な不揮発性のメモリである。
【0024】
図3は,セキュアエレメント1の構成を説明する図である。セキュアエレメント1が備える不揮発性メモリ104は,データの書き込み対象となるメモリである。セキュアエレメント1に実装されたオペレーティングシステム10(以下,「OS10」と記す。OSは,Operating Systemの略)は,不揮発性メモリ104を管理する機能を有する。
【0025】
アプリケーション12は,不揮発性メモリ104にデータを書き込む処理を必要とするコマンドを有する。このコマンドには,書き込み系コマンドのみならず認証系コマンドなども含まれる。認証系コマンドでは,認証の中断または失敗した回数をカウントするリトライカウンタが少なくとも必要となる。リトライカウンタは不揮発性メモリ104に格納されるデータである。認証系コマンドが実行されるごとに,不揮発性メモリ104に格納されたリトライカウンタの値は一つ減算した値に書き換えられ,認証系コマンドに対応した認証に成功すると,不揮発性メモリ104に格納されたリトライカウンタの値はリトライカウンタの最大値に書き換えられる。
【0026】
図4は,不揮発性メモリ104の構造を説明する図である。
図4で図示したごとく,セキュアエレメント1が備える不揮発性メモリ104は,セキュアエレメント1に実装されたOS10により,ページ13と呼ばれる単位に分割されて管理される。ページ13とは,具体的に,所定のページサイズの連続したアドレス範囲になる。容量が比較的小さい不揮発性メモリ104の場合,ページサイズは数十バイト程度であるが,容量が比較的大きい不揮発性メモリ104の場合,ページサイズは,128バイト,256バイトまたは512バイトなどになる。
【0027】
セキュアエレメント1が備える不揮発性メモリ104はデータ格納領域1040およびスペア領域1043を含んでいる。データ格納領域1040は,OS10に割り当てられた領域であるOS領域1041と,セキュアエレメント1に実装されたアプリケーション12に割り当てられた領域であるアプリケーション領域1042を含む。OS領域1041に含まれるページ13には,OS10が使用するデータを少なくとも格納する。OS10のプログラムコードの本体はROM103に記憶される。アプリケーション領域1042に含まれるページ13には,アプリケーション12のプログラムコード,および,アプリケーション12が使用するデータを格納する。
【0028】
スペア領域1043は,データ格納領域1040に含まれるページ13の代替に用いるページ13を確保するための領域である。スペア領域1043のページ13で代替するデータ格納領域1040のページ13は,更新回数が不揮発性メモリ104の更新限度回数に近くなったページ13になる。なお,データ格納領域1040のページ13の代替に使用されたスペア領域1043のページ13は,スペア領域1043からデータ格納領域1040に移行する。スペア領域1043の一つのページ13が代替に使用されると,スペア領域1043に含まれるページ数は一つ減るが,データ格納領域1040に含まれるページ数は変わらない。
【0029】
セキュアエレメント1に実装されたOS10は,不揮発性メモリ104を管理する機能としてメモリ管理手段11を備えている。
【0030】
メモリ管理手段11は,セキュアエレメント1に実装されている不揮発性メモリ104のページ13を管理するためのデータテーブルとして,論理ページ番号とこれに対応させる不揮発性メモリ104のページ13に係るエントリ情報を記したページテーブル130を有している。
【0031】
論理ページ番号は,不揮発性メモリ104の論理的なページ番号で,コンピュータプログラムがアドレスの指定に使用するページ番号である。論理ページ番号を用いて不揮発性メモリ104のページ13を管理することで,コンピュータプログラムは,コンピュータプログラムがアクセスするデータの物理アドレスを意識することなく,所定のデータにアクセスできる。
【0032】
図5は,ページテーブル130を説明する図である。ページテーブル130には,論理ページ番号の総数に応じたレコードが設けられる。本実施形態において,論理ページ番号の総数は,不揮発性メモリ104の総ページになる。
図5では,論理ページ番号は降順で並んでいる。一つのレコードには,レコードに対応する論理ページ番号と,論理ページ番号に対応させるページ属性と,論理ページ番号に対応させるページ13のエントリ情報が記される。
【0033】
ページ属性は,論理ページ番号に対応させる不揮発性メモリ104のページ13の属性を示す情報である。本実施形態では,ページ属性は,データ格納領域1040またはスペア領域1043のいずれかを示す情報である。ページ属性をスペア領域1043に設定する論理ページ番号の数は予め決まっている。
図5では,ページ属性をスペア領域1043に設定した論理ページ番号は,ページテーブル130の下位最末端に配置されている。
図5において,ページ属性をスペア領域1043に設定しない論理ページ番号のページ属性はすべてデータ格納領域1040に設定されている。
【0034】
不揮発性メモリ104のページ13のエントリ情報は,不揮発性メモリ104のページ13にアクセスするための情報を含んでいる。本実施形態のエントリ情報は,ページ13の開始アドレスを含んでいる。開始アドレスは,ページ13に対応する領域の先頭になる不揮発性メモリ104のアドレスである。ページテーブル130に記されたエントリ情報を利用することで,論理ページ番号に対応する不揮発性メモリ104のページ13にアクセスできる。
【0035】
メモリ管理手段11は,ページ13の更新回数をページ13ごと管理できるように構成されている。ページ13の更新回数はページテーブル130に記憶させることができるが,ページ13の更新回数をページテーブル130に記憶させると,ページテーブル130を格納したページ13の更新回数が最も高くなってしまう。なぜなら,データを書き込むページ13にかかわらず,データを書き込む処理を実行するごとに,ページテーブル130を格納したページ13の更新が必ず必要になるからである。
【0036】
そこで,本実施形態では,ページ13ごとに記憶させるデータであるページ管理情報131にページ13の更新回数を記憶させている。ページ管理情報131には,更新回数以外に,ページ13の管理に係る他のデータを含ませることができる。例えば,ページデータの誤り検出符号をページ管理情報131に含ませることができる。データの書き込みはページ単位で行われるため,ページ13にデータを書き込む際,データを書き込むページ13のページ管理情報131に含まれる更新回数も同時に更新すれば,ページ13の更新回数を記録するためだけにページ13を更新する必要はなくなる。
【0037】
本実施形態に係るメモリ管理手段11が,ページ13の更新回数をページ13ごとに管理するのは,ページ13の更新回数が更新限度回数に近づいたページ13をスペア領域1043のページ13で代替できるようにするためである。メモリ管理手段11がこの機能を備えることにより,更新回数が更新限度回数に近づいたページ13を他のページ13で代替するだけの比較的単純な処理で,不揮発性メモリ104のメモリ寿命を延ばすことができる。また,書き換え頻度の高いページ13のページ数に合わせてスペア領域1043に含ませるページ数の初期値を決定すれば,不揮発性メモリ104のメモリ寿命を延ばすために必要な不揮発性メモリ104のページ数を少なくできる。
【0038】
ここから,本実施形態に係るセキュアエレメント1が備えるメモリ管理手段11の動作について詳細に説明する。
図6は,セキュアエレメント1が備えるメモリ管理手段11の動作を説明する図である。
図6の説明は、本発明に係る不揮発性メモリ管理方法の説明も兼ねる。
【0039】
図6のステップS1において,メモリ管理手段11は,不揮発性メモリ104へのデータ書き込み要求を受ける。不揮発性メモリ104へのデータ書き込み要求をメモリ管理手段11に行う主体はアプリケーション12などのコンピュータプログラムになる。不揮発性メモリ104へのデータ書き込み要求では,不揮発性メモリ104に書き込むデータとこのデータを書き込む書き込み先アドレスがメモリ管理手段11に引き渡される。なお,書き込み先アドレスの指定には,論理ページ番号が少なくとも用いられる。具体的には,アドレスは,論理ページ番号とページ内オフセットによって記述される。
【0040】
図6のステップS2おいて,メモリ管理手段11は,データ書き込み要求に含まれる書き込み先アドレスから,データ書き込み要求に含まれるデータを書き込む処理を実行する。
図6のステップS3において,メモリ管理手段11は,データを書き込んだ不揮発性メモリ104のページ13(データ格納領域1040に含まれるページ13になる)の更新回数を記録する処理を行う。
図6のステップS4において,メモリ管理手段11は,データを書き込んだ不揮発性メモリ104のページ13の更新回数を確認する。データを書き込んだ不揮発性メモリ104のページ13の更新回数が閾値に達していない場合,メモリ管理手段11は,不揮発性メモリ104のページ13の代替に係る処理を実行することなく,
図6の手順を終了する。
【0041】
データを書き込んだ不揮発性メモリ104のページ13の更新回数が閾値に達した場合,メモリ管理手段11は,データを書き込んだ不揮発性メモリ104のページ13を代替する処理を実行する。
【0042】
更新回数が閾値に達した不揮発性メモリ104のページ13を代替する際,まず,メモリ管理手段11は,
図6のステップS5において,ページ属性がスペア領域1043で,スペア領域1043のページ13のエントリ情報を関連付けている論理ページ番号をページテーブル130から一つ選択する。
【0043】
次に,メモリ管理手段11は,
図6のステップS6において,更新回数が閾値に達した不揮発性メモリ104のページ13の更新回数を初期化する。なお,更新回数が閾値に達した不揮発性メモリ104のページ13は,データ書き込み要求の書き込み先アドレスに含まれる論理ページ番号に対応するページ13になる。
【0044】
次に,メモリ管理手段11は,
図6のステップS7において,更新回数が閾値に達した不揮発性メモリ104のページ13を,
図6のステップS5で選択した論理ページ番号に対応するスペア領域1043のページ13で代替する処理を実行して,
図6の手順は終了する。
【0045】
図6のステップS4において,ページ13の更新回数を記録する処理の具体的な内容は,ページ13の更新回数の記録場所で異なる。ページ管理情報131にページ13の更新回数を記録する場合,データの書き込みと共にページ管理情報131の更新回数も更新される。
【0046】
図6のステップS7において,更新回数の判定に用いる閾値の決め方は任意である。例えば,閾値は,不揮発性メモリ104に設けられた更新限度回数の95%の値にできる。
【0047】
図7は,更新回数が閾値に達したページ13を代替する処理を説明する図である。
図6のステップS7において,更新回数が閾値に達したデータ格納領域1040のページ13をスペア領域1043のページ13で代替する処理は,
図7で図示した処理になる。
【0048】
図7のステップS10において,メモリ管理手段11は,更新回数が閾値に達したページ13のページデータを,
図6のステップS5で選択した論理ページ番号に対応するスペア領域1043のページ13に複写する。更新回数が閾値に達したページ13にアクセスするためのエントリ情報は,ページテーブル130において,データ書き込み要求の書き込み先アドレスに含まれる論理ページ番号に関連付けられているエントリ情報になる。代替に用いるスペア領域1043のページ13にアクセスするためのエントリ情報は,
図6のステップS5で選択した論理ページ番号に関連付けられているエントリ情報になる。
【0049】
次に,
図7のステップS11において,メモリ管理手段11は,ページテーブル130において,更新回数が閾値に達したページ13に対応している論理ページ番号に関連付けられたエントリ情報を,
図6のステップS5で選択した論理ページ番号に関連付けられているエントリ情報,すなわち,ページデータを複写したスペア領域1043のページ13のエントリ情報に書き換える。これにより,更新回数が閾値に達した不揮発性メモリ104のページ13は,
図6のステップS5で選択した論理ページ番号が対応しているスペア領域1043のページ13で代替される。また,更新回数が閾値に達したページ13のエントリ情報はページテーブル130から消えるため,更新回数が閾値に達したページ13は利用できない。
【0050】
次に,
図7のステップS12において,メモリ管理手段11は,更新回数が閾値に達したページ13の代替に使用したスペア領域1043のページ13に対応している論理ページ番号のエントリ情報,すなわち,
図6のステップS5で選択した論理ページ番号に関連付けられているエントリ情報を消去し,
図7の手順は終了する。
図6のステップS5で選択した論理ページ番号に関連付けられているエントリ情報を消去することで,データ格納領域1040のページ13の代替に使用したスペア領域1043のページ13はページ13の代替に使用できなくなる。
【符号の説明】
【0051】
1 セキュアエレメント
10 オペレーティングシステム
11 メモリ管理手段
12 アプリケーション
104 不揮発性メモリ
1040 データ格納領域
1043 スペア領域
13 ページ
130 ページテーブル
1300 エントリ情報
131 ページ管理情報