JP2008003976A - メモリアクセス制御装置および方法、並びに、通信装置 - Google Patents
メモリアクセス制御装置および方法、並びに、通信装置 Download PDFInfo
- Publication number
- JP2008003976A JP2008003976A JP2006174807A JP2006174807A JP2008003976A JP 2008003976 A JP2008003976 A JP 2008003976A JP 2006174807 A JP2006174807 A JP 2006174807A JP 2006174807 A JP2006174807 A JP 2006174807A JP 2008003976 A JP2008003976 A JP 2008003976A
- Authority
- JP
- Japan
- Prior art keywords
- random number
- scramble key
- memory
- scramble
- data
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/82—Protecting input, output or interconnection devices
- G06F21/85—Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
Abstract
【課題】メモリ上のデータのセキュリティを簡単に向上させる。
【解決手段】スクランブル変更指令器41を介して、スクランブル鍵の変更の指令が入力された場合、乱数出力器42は、生成した疑似乱数をスクランブル鍵バッファ61に出力する。スクランブル鍵バッファ61は、取得した疑似乱数をスクランブル鍵として保持するとともに、内部メモリ62にバックアップさせる。アドレスバススクランブル回路52は、スクランブル鍵バッファ61が保持するスクランブル鍵を用いて、CPU31によりデータの書き込みまたは読み出しが指令された論理アドレスにスクランブルをかけ、実際にメモリ33にデータを書き込んだり読み込んだりする物理アドレスに変換する。本発明は、リーダライタに適用することができる。
【選択図】図2
【解決手段】スクランブル変更指令器41を介して、スクランブル鍵の変更の指令が入力された場合、乱数出力器42は、生成した疑似乱数をスクランブル鍵バッファ61に出力する。スクランブル鍵バッファ61は、取得した疑似乱数をスクランブル鍵として保持するとともに、内部メモリ62にバックアップさせる。アドレスバススクランブル回路52は、スクランブル鍵バッファ61が保持するスクランブル鍵を用いて、CPU31によりデータの書き込みまたは読み出しが指令された論理アドレスにスクランブルをかけ、実際にメモリ33にデータを書き込んだり読み込んだりする物理アドレスに変換する。本発明は、リーダライタに適用することができる。
【選択図】図2
Description
本発明は、メモリアクセス制御装置および方法、並びに、通信装置に関し、特に、メモリ上のデータのセキュリティを簡単に向上させるようにしたメモリアクセス制御装置および方法、並びに、通信装置に関する。
従来、CPU(Central Processing Unit)などのプロセッサによりアクセスが指示された論理アドレスにスクランブルをかけ、実際にメモリにアクセスする物理アドレスを割り当てることにより、メモリ上のデータの解析や改ざんを困難にすることが提案されている(例えば、特許文献1参照)。
ところで、データの盗聴や改ざんの手口がより巧妙になっている近年においては、特許文献1に記載されている手法に加えて、メモリ上のデータのセキュリティをさらに向上させることが望まれている。
本発明は、このような状況に鑑みてなされたものであり、メモリ上のデータのセキュリティを簡単に向上させるようにするものである。
本発明の第1の側面のメモリアクセス制御装置は、入力されたスクランブル鍵を保持するスクランブル鍵保持手段と、保持されている前記スクランブル鍵を用いて、入力された論理アドレスにスクランブルをかけることにより、実際にメモリにアクセスする物理アドレスを割り当てるスクランブル手段とが設けられている。
前記スクランブル鍵としての乱数または疑似乱数を生成する乱数生成手段をさらに設けることができる。
前記乱数生成手段には、Gold系列の疑似乱数を生成させることができる。
前記乱数生成手段には、生成した乱数または疑似乱数が所定の値と等しい場合、新たな乱数または疑似乱数を生成させることができる。
本発明の第1の側面のメモリアクセス制御方法は、入力されたスクランブル鍵を保持し、保持されている前記スクランブル鍵を用いて、入力された論理アドレスにスクランブルをかけることにより、実際にメモリにアクセスする物理アドレスを割り当てるステップを含む。
本発明の第2の側面の通信装置は、非接触ICカード機能を有する装置と通信を行う通信装置であって、入力されたスクランブル鍵を保持するスクランブル鍵保持手段と、保持されている前記スクランブル鍵を用いて、入力された論理アドレスにスクランブルをかけることにより、実際にメモリにアクセスする物理アドレスを割り当てるスクランブル手段とが設けられている。
本発明の第1の側面においては、入力されたスクランブル鍵が保持され、保持されている前記スクランブル鍵を用いて、入力された論理アドレスにスクランブルをかけることにより、実際にメモリにアクセスする物理アドレスが割り当てられる。
本発明の第2の側面においては、入力されたスクランブル鍵が保持され、保持されている前記スクランブル鍵を用いて、入力された論理アドレスにスクランブルをかけることにより、実際にメモリにアクセスする物理アドレスが割り当てられる。
本発明の第1の側面または第2の側面によれば、メモリ上の解析および改ざんを困難にすることができる。また、本発明の第1の側面または第2の側面によれば、メモリ上のデータのセキュリティを簡単に向上させることができる。
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書または図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、発明の詳細な説明に記載されていることを確認するためのものである。従って、発明の詳細な説明中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
本発明の第1の側面のメモリアクセス制御装置(例えば、図2のバススクランブル器43)は、第1に、入力されたスクランブル鍵を保持するスクランブル鍵保持手段(例えば、図2のスクランブル鍵保持部51)と、保持されている前記スクランブル鍵を用いて、入力された論理アドレスにスクランブルをかけることにより、実際にメモリ(例えば、図2のメモリ33)にアクセスする物理アドレスを割り当てるスクランブル手段(例えば、図2のアドレスバススクランブル回路52)とを備える。
本発明の第1の側面のメモリアクセス制御装置は、第2に、前記スクランブル鍵としての乱数または疑似乱数を生成する乱数生成手段(例えば、図3の乱数生成器101)をさらに備える。
本発明の第1の側面のメモリアクセス制御方法は、入力されたスクランブル鍵を保持し(例えば、図5のステップS2または図8のステップS105)、保持されている前記スクランブル鍵を用いて、入力された論理アドレスにスクランブルをかけることにより、実際にメモリにアクセスする物理アドレスを割り当てる(例えば、図6のステップS38またはS41)ステップを含む。
本発明の第2の側面の通信装置(例えば、図1のリーダライタ1)は、非接触ICカード機能を有する装置(例えば、図1のICカード2)と通信を行う通信装置であって、入力されたスクランブル鍵を保持するスクランブル鍵保持手段(例えば、図2のスクランブル鍵保持部51)と、保持されている前記スクランブル鍵を用いて、入力された論理アドレスにスクランブルをかけることにより、実際にメモリ(例えば、図2のメモリ33)にアクセスする物理アドレスを割り当てるスクランブル手段(例えば、図2のアドレスバススクランブル回路52)とを備える。
以下、図を参照して、本発明の実施の形態について説明する。
図1は、本発明を適用したリーダライタの一実施の形態を示すブロック図である。本発明を適用したリーダライタ1は、アンテナ11、RFドライブ基板12、および、制御モジュール13を含むように構成される。
RFドライブ基板12は、アンテナ11を介して、非接触式のICカード2との間で、単一の周波数の搬送波を使用した、電磁誘導による近接通信を行う。RFドライブ基板12が使用する搬送波の周波数としては、例えば、ISM(Industrial Scientific Medical)バンドの13.56MHzなどを採用することができる。また、近接通信とは、通信する装置どうしの距離が、数10cm以内となって可能となる通信を意味し、通信する装置(の筐体)同士が接触して行う通信も含まれる。
制御モジュール13は、ICカード2を利用したサービスを実現するための処理を実行し、適宜、サービスで使用されるデータを、アンテナ11およびRFドライブ基板12を介して、ICカード2に書き込んだり、ICカード2から読み出したりする。また、制御モジュール13は、複数の種類のサービスの処理を並行して実行することが可能である。すなわち、例えば、電子マネーサービス、プリペイドカードサービス、各種の交通機関の乗車カードサービスなど、非接触式のICカードを利用した複数のサービスを、1台のリーダライタ1により提供することができる。
図2は、図1の制御モジュール13の機能的構成を示すブロック図である。制御モジュール13は、CPU31、メモリアクセス制御部32、メモリ33、および、リセット回路34を含むように構成される。また、メモリアクセス制御部32は、スクランブル鍵変更指令器41、乱数出力器42、および、バススクランブル器43を含むように構成される。さらに、バススクランブル器43は、スクランブル鍵保持部51、および、アドレスバススクランブル回路52を含むように構成される。また、スクランブル鍵保持部51は、スクランブル鍵バッファ61、および、内部メモリ62を含むように構成される。
CPU31とアドレスバススクランブル回路52とは、バス幅がnビットのアドレスバス35を介して相互に接続され、アドレスバススクランブル回路52とメモリ33とは、アドレスバス35と同じnビットのバス幅のアドレスバス36を介して相互に接続されている。また、CPU31とメモリ33は、バス幅がmビットのデータバス37を介して、相互に接続されている。
CPU31は、所定のプログラムを実行することにより、ICカード2を利用したサービスを実現するための処理を実行する。また、CPU31は、各サービスに対応したプログラムを並行して実行することができる。換言すれば、CPU31は、複数のサービスの処理を並行して実行することができる。
CPU31は、各サービスで使用するデータを、メモリ33に書き込んだり、メモリ33から読み出したりする。CPU31は、メモリ33にデータを書き込む場合、データの論理的な書き込み位置を表す論理アドレスを示す論理アドレス信号を、アドレスバス35を介してアドレスバススクランブル回路52に供給するとともに、書き込むデータを含み、データの書き込みの指令を示す書き込み信号を、データバス37を介してメモリ33に供給する。また、CPU31は、メモリ33からデータを読み出す場合、データの論理的な読み出し位置を表す論理アドレスを示す論理アドレス信号を、アドレスバス35を介してアドレスバススクランブル回路52に供給するとともに、データの読み出しの指令を示す読み出し信号を、データバス37を介してメモリ33に供給する。
メモリアクセス制御部32は、CPU31のメモリ33へのアクセスを制御する。
メモリアクセス制御部32に含まれる個々の構成要素のうち、スクランブル鍵変更指令器41は、例えば、ボタン、スイッチなどにより構成される。スクランブル鍵保持部51に保持されているスクランブル鍵を変更する場合、例えば、ユーザが、スクランブル鍵変更指令器41を介して、スクランブル鍵の変更の指令を入力する。
乱数出力器42は、スクランブル鍵変更指令器41からスクランブル鍵の変更の指令を示す信号が供給された場合、nビットのビット列からなる疑似乱数を生成し、生成した疑似乱数をスクランブル鍵としてスクランブル鍵バッファ61に出力する。
バススクランブル器43は、CPU31から供給される論理アドレス信号により示される論理アドレスを、メモリ33に実際にアクセスする物理アドレスに変換する処理を行う。
バススクランブル器43に含まれる個々の構成要素のうち、スクランブル鍵保持部51は、乱数出力器42から供給された疑似乱数をスクランブル鍵として保持する。具体的には、スクランブル鍵保持部51のスクランブル鍵バッファ61が、乱数出力器42から供給された疑似乱数をスクランブル鍵として保持するととともに、スクランブル鍵を内部メモリ62に供給し、記憶させる。内部メモリ62は、フラッシュメモリなどの不揮発性メモリ、または、電池などによりバックアップされたRAM(Random Access Memory)などにより構成され、制御モジュール13の電源がオフされた状態においても、スクランブル鍵を保持し続ける。また、スクランブル鍵バッファ61は、制御モジュール13の電源がオフされた状態からオンされた場合、内部メモリ62に記憶されているスクランブル鍵を読み出し、保持する。さらに、スクランブル鍵バッファ61は、制御モジュール13の電源がオンされてから、内部メモリ62からのスクランブル鍵の読み出しが完了するまでの間、リセット指令信号をリセット回路34に供給する。
アドレスバススクランブル回路52は、スクランブル鍵バッファ61に保持されている鍵を用いて、CPU31から供給された論理アドレス信号により示される論理アドレスにスクランブルをかけることにより、論理アドレスを実際にメモリ33にアクセスする物理アドレスに変換する。換言すれば、アドレススバスクランブル回路52は、入力された論理アドレスにスクランブルをかけることにより、その論理アドレスに対して、物理アドレスを割り当てる。アドレスバススクランブル回路52は、アドレスバス36を介して、変換後の物理アドレスを示す物理アドレス信号をメモリ33に供給する。
メモリ33は、例えば、フラッシュメモリ、EEPROM(Electrically Erasable and Programmable Read Only Memory)、HDD(Hard Disk Drive)、MRAM(Magnetoresistive Random Access Memory,磁気抵抗メモリ)、FeRAM(Ferroelectric Random Access Memory,強誘電体メモリ)、または、OUM(Ovonic Unified Memory)などの不揮発性のメモリにより構成される。メモリ33は、CPU31から書き込み信号が供給された場合、アドレスバススクランブル回路52から供給された物理アドレス信号により示されるメモリ33上の物理アドレスに、書き込み信号に含まれるデータを書き込む。また、メモリ33は、CPU31から読み出し信号が供給された場合、アドレスバススクランブル回路52から供給された物理アドレス信号により示されるメモリ33上の物理アドレスからデータを読み出し、読み出したデータを、データバス37を介して、CPU31に供給する。
リセット回路34は、スクランブル鍵バッファ61からリセット指令信号が供給されている間、CPU31にリセット信号を供給し、CPU31の状態を初期化する。
図3は、乱数出力器42の機能的構成を示すブロック図である。乱数出力器42は、乱数生成器101、および、スイッチ102を含むように構成される。
乱数生成器101は、L1ビットのシフトレジスタを有するLFSR(Linear Feedback Shift Register,リニアフィードバックシフトレジスタ)型乱数発生器111、L2ビットのシフトレジスタを有するLFSR型乱数発生器112、および、EXOR回路113を含むように構成される。
LFSR型乱数発生器111,112は、シフトレジスタの所定のビットの値の排他的論理和をフィードバック値としてシフトレジスタに入力する周知のLFSRの原理により構成される。乱数生成器101は、LFSR型乱数発生器111,112により生成される2つの異なるM系列の疑似乱数の排他的論理和をEXOR回路113によりビット毎に取ることにより、Gold系列の疑似乱数を生成する。なお、乱数生成器101が備えるLFSR型乱数発生器111,112の個数は、2個に限定されるものではなく、3個以上とすることも可能である。
スイッチ102は、スクランブル鍵変更指令器41からスクランブル鍵の変更の指令を示す信号が入力された場合、オンとなり、乱数生成器101により生成されたGold系列の疑似乱数を示すビット列が、スイッチ102を介してスクランブル鍵バッファ61に出力される。
図4は、バススクランブル器43の機能的構成の詳細を示すブロック図である。
スクランブル鍵バッファ61は、シリアル入力およびパラレル入出力のnビットのシフトレジスタなどにより構成され、乱数出力器42からシリアル信号により供給された疑似乱数をスクランブル鍵として保持する。
アドレスバススクランブル回路52は、アドレスバス35を介してCPU31から供給される論理アドレス信号により示されるビットA1乃至Anからなるnビットの論理アドレスと、スクランブル鍵バッファ61に保持されているビットK1乃至Knからなるnビットのスクランブル鍵との排他的論理和を、EXOR回路151−1乃至151−nによりビット毎に取ることにより、論理アドレスをビットSA1乃至SAnからなるnビットの物理アドレスに変換する。アドレスバススクランブル回路52は、アドレスバス36を介して、変換後の物理アドレスを示す物理アドレス信号をメモリ33に供給する。
次に、図5および図6を参照して、リーダライタ1の処理を説明する。
まず、図5のフローチャートを参照して、リーダライタ1により実行されるスクランブル鍵生成処理について説明する。なお、この処理は、例えば、リーダライタ1の電源がオンになっている場合に、ユーザが、スクランブル鍵変更指令器41を介して、スクランブル鍵の変更の指令を入力したとき開始される。
ステップS1において、乱数出力器42は、疑似乱数を出力する。具体的には、スクランブル鍵変更指令器41は、スクランブル鍵の変更の指令を示す信号をスイッチ102に供給し、スイッチ102をオンさせる。乱数生成器101は、リーダライタ1の電源がオンになっている間、常に疑似乱数を生成しており、スイッチ102がオンされることにより、スイッチ102を介して、乱数生成器101からスクランブル鍵バッファ61への疑似乱数の出力が開始される。スイッチ102は、乱数生成器101から疑似乱数がnビット出力されたとき、オフとなる。
ステップS2において、バススクランブル器43は、スクランブル鍵を設定し、スクランブル鍵生成処理は終了する。具体的には、スクランブル鍵バッファ61は、乱数出力器42から供給されたnビットのビット列からなる疑似乱数をスクランブル鍵として内部のレジスタに保持する。また、スクランブル鍵バッファ61は、内部メモリ62にスクランブル鍵を供給し、記憶させる。すなわち、スクランブル鍵が内部メモリ62にバックアップされる。
これにより、簡単に、各制御モジュール13に対して、それぞれ値が異なり、かつ、予測が困難なスクランブル鍵を設定することができる。なお、このスクランブル鍵設定処理は、例えば、リーダライタ1を工場から出荷する前に行われる。
次に、図6のフローチャートを参照して、リーダライタ1により実行されるメモリアクセス制御処理を説明する。なお、この処理は、例えば、リーダライタ1の電源がオンされたとき開始される。
ステップS31において、スクランブル鍵バッファ61は、リーダライタ1の電源がオンされ、制御モジュール13の電源がオンされることにより、リセット回路34へのリセット指令信号の供給を開始する。
ステップS32において、リセット回路34は、CPU31へのリセット信号の供給を開始し、CPU31をリセットする。これにより、CPU31の状態が初期化される。
ステップS33において、スクランブル鍵バッファ61は、内部メモリ62に保持されているスクランブル鍵を読み出す。スクランブル鍵バッファ61は、読み出したスクランブル鍵を内部のレジスタに保持する。
ステップS34において、スクランブル鍵バッファ61は、リセット回路34へのリセット指令信号の供給を停止する。これに伴い、リセット回路34は、CPU31へのリセット信号の供給を停止し、CPU31は、プログラムの実行を開始する。
ステップS35において、CPU31は、データを書き込むかを判定する。CPU31は、実行中のプログラムにおいて、次の処理がデータの書き込みを行う処理でない場合、データを書き込まないと判定し、処理はステップS36に進む。
ステップS36において、CPU31は、データを読み出すかを判定する。CPU31は、実行中のプログラムにおいて、次の処理がデータの読み出しを行う処理でない場合、データを読み出さないと判定し、処理はステップS35に戻る。
その後、ステップS35において、データを書き込むと判定されるか、ステップS36においてデータを読み出すと判定されるまで、ステップS35およびS36の処理が繰り返し実行される。
ステップS35においてCPU31は、実行中のプログラムにおいて、次の処理がデータの書き込みを行う処理である場合、データを書き込むと判定し、処理はステップS37に進む。
ステップS37において、CPU31は、データの書き込みを指令する。具体的には、CPU31は、データの論理的な書き込み位置を表す論理アドレスを示す論理アドレス信号を、アドレスバス35を介してアドレスバススクランブル回路52に供給するとともに、書き込むデータを含み、データの書き込みの指令を示す書き込み信号を、データバス37を介してメモリ33に供給する。
ステップS38において、アドレスバススクランブル回路52は、論理アドレスを物理アドレスに変換する。具体的には、アドレスバススクランブル回路52は、論理アドレス信号により示される論理アドレスとスクランブル鍵バッファ61に保持されているスクランブル鍵との排他的論理和をビット毎に取り、論理アドレスにスクランブルをかけることにより、論理アドレスを物理アドレスに変換する。アドレスバススクランブル回路52は、変換後の物理アドレスを示す物理アドレス信号を、アドレスバス36を介してメモリ33に供給する。
ステップS39において、メモリ33は、データを書き込む。具体的には、メモリ33は、物理アドレス信号に示されるメモリ33上の物理アドレスに、CPU31から供給された書き込み信号に含まれるデータを書き込む。これにより、CPU31から連続した論理アドレスへのデータの書き込みが指令されても、実際には、ランダムに配置されるようにメモリ33にデータが書き込まれるため、メモリ33に格納されているデータの内容を解析したり、改ざんしたりすることが困難となる。
その後、処理はステップS35に戻り、ステップS35以降の処理が実行される。
ステップS36において、CPU31は、実行中のプログラムにおいて、次の処理がデータの読み出しを行う処理である場合、データを読み出すと判定し、処理はステップS40に進む。
ステップS40において、CPU31は、データの読み出しを指令する。具体的には、CPU31は、データの論理的な読み出し位置を表す論理アドレスを示す論理アドレス信号を、アドレスバス35を介してアドレスバススクランブル回路52に供給するとともに、データの読み出しの指令を示す読み出し信号を、データバス37を介してメモリ33に供給する。
ステップS41において、上述したステップS38の処理と同様に、論理アドレスが物理アドレスに変換され、変換後の物理アドレスを示す物理アドレス信号が、アドレスバス36を介して、アドレスバススクランブル回路52からメモリ33に供給される。
ステップS42において、メモリ33は、データを読み出す。具体的には、メモリ33は、物理アドレス信号により示される物理アドレスに記憶されているデータを読み出し、読み出したデータを、データバス37を介して、CPU31に供給する。
その後、処理はステップS35に戻り、ステップS35以降の処理が実行される。
以上のように、各制御モジュール13に異なるスクランブル鍵を簡単に設定することができるため、たとえ、1台の制御モジュール13に設定されているスクランブル鍵が解析されたとしても、そのスクランブル鍵を用いて、他の制御モジュール13のメモリ33に記憶されているデータの解析や改ざんをすることができない。従って、データの流出や改ざんの被害を最小限に抑えることができる。
また、疑似乱数の生成方法およびアドレスのスクランブル方法については、従来の技術をそのまま使用することができ、新たに複雑な回路を設ける必要がなく、スクランブル鍵の変更の指令を入力する以外にユーザの手間も増えないため、簡単にメモリ33上のデータのセキュリティを向上させることができる。
次に、図7および図8を参照して、乱数出力器42の第2の実施の形態について説明する。
図7は、乱数出力器42の第2の実施の形態の機能的構成を示すブロック図である。図7の乱数出力器42は、乱数生成器101、ビット列検査器201、スイッチ202、nビットのシフトレジスタにより構成される乱数格納器203、および、スイッチ204を含むように構成される。なお、図中、図3と対応する部分については、同じ符号を付してあり、処理が同じ部分については、その説明は繰り返しになるので省略する。
ビット列検査器201は、スクランブル鍵変更指令器41からスクランブル鍵の変更の指令を示す信号を取得する。ビット列検査器201は、スクランブル鍵変更指令器41からスクランブル鍵の変更の指令を信号が供給された場合、スイッチ202をオンにする。これにより、乱数生成器101により生成されたGold系列の疑似乱数を示すビット列が、スイッチ202を介して、乱数生成器101から乱数格納器203に供給され、格納される。
また、ビット列検査器201は、乱数格納器203に格納された疑似乱数が、スクランブル鍵としての使用が禁止されている所定の値と一致するかを検査する。乱数格納器203に格納された疑似乱数が、スクランブル鍵としての使用が禁止されている値と一致する場合、ビット列検査器201は、スイッチ202をオンにし、所定のビット数の疑似乱数を、乱数生成器101から乱数格納器203に出力させ、乱数格納器203に格納されている疑似乱数の値を変更させる。ビット列検査器201は、乱数格納器203に格納されている疑似乱数が、スクランブル鍵としての使用が禁止されている値と一致しない場合、スイッチ204をオンにする。これにより、乱数格納器203に格納されているnビットのビット列からなる疑似乱数が、スイッチ204を介して、スクランブル鍵バッファ61に出力される。すなわち、ビット列検査器201は、乱数生成器101により生成された疑似乱数が所定の禁止された値と等しい場合、乱数生成器101に新たな乱数を生成させ、禁止された値と異なる乱数をスクランブル鍵バッファ61に出力するように制御する。
次に、図8のフローチャートを参照して、図7の乱数出力器42がリーダライタ1に設けられた場合に、図5のフローチャートの代わりにリーダライタ1により実行されるスクランブル鍵生成処理について説明する。なお、この処理は、例えば、リーダライタ1の電源がオンになっている場合に、ユーザが、スクランブル鍵変更指令器41を介して、スクランブル鍵の変更の指令を入力したとき開始される。
ステップS101において、乱数出力器42は、疑似乱数を生成する。具体的には、スクランブル鍵変更指令器41は、スクランブル鍵の変更の指令示す信号をビット列検査器201に供給する。ビット列検査器201は、スイッチ202をオンにする。乱数生成器101は、リーダライタ1の電源がオンになっている間、常に疑似乱数を生成しており、スイッチ202がオンされることにより、スイッチ202を介して、乱数生成器101から乱数格納器203への疑似乱数の出力が開始される。ビット列検査器201は、乱数生成器101から疑似乱数がnビット出力されたとき、スイッチ202をオフにする。
ステップS102において、ビット列検査器201は、疑似乱数がスクランブル鍵としての使用が禁止されている値であるかを判定する。具体的には、ビット列検査器201は、乱数格納器203に格納されている疑似乱数を、スクランブル鍵としての使用が禁止されている値と比較する。例えば、ユーザは、000・・・000および111・・・111のように、同じ値が連続するビット列、0101・・・0101、0101・・・010、1010・・・1010、および、1010・・・101のように、異なる値が1つずつ交互に繰り返されるビット列など、他の値と比べて容易に推測される可能性がある値を、スクランブル鍵としての使用を禁止する値として予め設定しておき、ビット列検査器201は、乱数格納器203に格納されている疑似乱数が、その禁止されている値であると判定した場合、処理はステップS103に進む。
ステップS103において、ビット列検査器201は、新たな疑似乱数を生成する。具体的には、ビット列検査器201は、スイッチ202をオンにし、所定のビット数の疑似乱数を、乱数生成器101から乱数格納器203に出力させる。乱数格納器203は、格納されているビット列を、新たに入力された疑似乱数のビット数だけ上位方向にシフトし、ビット列の末尾に入力された疑似乱数を付加する。すなわち、乱数生成器101により生成された新たな疑似乱数が、乱数格納器203に格納される。
その後、処理はステップS102に戻り、ステップS102において、疑似乱数がスクランブル鍵としての使用が禁止されている値でないと判定されるまで、ステップS102およびS103の処理が繰り返し実行される。
ステップS102において、疑似乱数がスクランブル鍵としての使用が禁止されている値でないと判定された場合、処理はステップS104に進む。
ステップS104において、乱数出力器42は、疑似乱数を出力する。具体的には、ビット列検査器201は、スイッチ204をオンにする。これにより、乱数格納器203に格納されている疑似乱数が、スイッチ204を介して、スクランブル鍵バッファ61に出力される。
ステップS105において、上述した図5のステップS2の処理と同様に、スクランブル鍵が設定され、スクランブル鍵生成処理は終了する。
このように、スクランブル鍵に推測が容易な値が設定されることが防止されるため、メモリ33に記憶されているデータの解析および改ざんが困難となり、メモリ33上のデータのセキュリティが向上する。また、例えば、メモリ33を交換したり、初期化したタイミングで、スクランブル鍵を変更するようにすることにより、スクランブル鍵の解析をより困難にすることができる。
なお、以上の説明では、Gold系列の疑似乱数をスクランブル鍵に用いる例を示したが、スクランブル鍵に用いる乱数または疑似乱数は上述した例に限定されるものではなく、例えば、LFSRを1個だけ備えたM系列の疑似乱数を用いたり、熱雑音を利用した物理乱数を用いるようにしてもよい。
また、アドレスにスクランブルをかける方法も上述した例に限定されるものではなく、乱数または疑似乱数により設定されたスクランブル鍵を用いた他の方法を適用するようにしてもよい。
さらに、以上の説明では、リーダライタ1と通信する相手としてICカード2を例に挙げたが、もちろん、リーダライタ1は、非接触ICカード機能を有する装置、例えば、非接触ICカード機能を有する携帯電話機、携帯情報端末(Personal Digital Assistants)、時計、コンピュータなどと通信することが可能である。
また、図2のメモリアクセス制御部32を、リーダライタ以外の、メモリのデータを読み書きする他の装置に適用することも可能である。
さらに、図7の乱数出力器42においては、上述した、スクランブル鍵として推測が容易な値の出力を禁止する以外に、用途に応じて、出力を禁止する値を任意に設定することが可能である。
また、以上の説明では、図2のメモリ33を不揮発性のメモリとする例を示したが、揮発性のメモリに対して、メモリアクセス制御部42を用いることももちろん可能である。
さらに、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
1 リーダライタ, 2 ICカード, 13 制御モジュール, 31 CPU, 32 メモリアクセス制御部, 33 メモリ, 41 スクランブル鍵変更指令器, 42 乱数出力器, 43 バススクランブル器, 51 スクランブル鍵保持部, 52 アドレスバススクランブル回路, 61 スクランブル鍵バッファ, 62 内部メモリ, 101 乱数生成器, 102 スイッチ, 201 ビット列検査器, 202 スイッチ, 203 乱数格納器, 204 スイッチ
Claims (6)
- 入力されたスクランブル鍵を保持するスクランブル鍵保持手段と、
保持されている前記スクランブル鍵を用いて、入力された論理アドレスにスクランブルをかけることにより、前記論理アドレスに対して、実際にメモリにアクセスする物理アドレスを割り当てるスクランブル手段と
を含むメモリアクセス制御装置。 - 前記スクランブル鍵としての乱数または疑似乱数を生成する乱数生成手段を
さらに含む請求項1に記載のメモリアクセス制御装置。 - 前記乱数生成手段は、Gold系列の疑似乱数を生成する
請求項2に記載のメモリアクセス制御装置。 - 前記乱数生成手段は、生成した乱数または疑似乱数が所定の値と等しい場合、新たな乱数または疑似乱数を生成する
請求項2に記載のメモリアクセス制御装置。 - 入力されたスクランブル鍵を保持し、
保持されている前記スクランブル鍵を用いて、入力された論理アドレスにスクランブルをかけることにより、実際にメモリにアクセスする物理アドレスを割り当てる
ステップを含むメモリアクセス制御方法。 - 非接触ICカード機能を有する装置と通信を行う通信装置において、
入力されたスクランブル鍵を保持するスクランブル鍵保持手段と、
保持されている前記スクランブル鍵を用いて、入力された論理アドレスにスクランブルをかけることにより、前記非接触ICカード機能を有する装置から読み出したデータを格納するメモリに実際にアクセスする物理アドレスを割り当てるスクランブル手段と
を含む通信装置。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006174807A JP2008003976A (ja) | 2006-06-26 | 2006-06-26 | メモリアクセス制御装置および方法、並びに、通信装置 |
US11/765,809 US20070297605A1 (en) | 2006-06-26 | 2007-06-20 | Memory access control apparatus and method, and communication apparatus |
EP07012308A EP1873672A3 (en) | 2006-06-26 | 2007-06-22 | Memory access control apparatus and method, and communication apparatus |
SG200704766-5A SG138585A1 (en) | 2006-06-26 | 2007-06-25 | Memory access control apparatus and method, and communication apparatus |
CNA2007101124641A CN101097550A (zh) | 2006-06-26 | 2007-06-26 | 存储器存取控制设备和方法、以及通信设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006174807A JP2008003976A (ja) | 2006-06-26 | 2006-06-26 | メモリアクセス制御装置および方法、並びに、通信装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008003976A true JP2008003976A (ja) | 2008-01-10 |
Family
ID=38571867
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006174807A Pending JP2008003976A (ja) | 2006-06-26 | 2006-06-26 | メモリアクセス制御装置および方法、並びに、通信装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20070297605A1 (ja) |
EP (1) | EP1873672A3 (ja) |
JP (1) | JP2008003976A (ja) |
CN (1) | CN101097550A (ja) |
SG (1) | SG138585A1 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4807377B2 (ja) * | 2008-05-13 | 2011-11-02 | ソニー株式会社 | 通信装置、通信方法、通信システム及びサービス発行方法 |
US8583942B2 (en) * | 2011-02-04 | 2013-11-12 | Cypress Semiconductor Corporation | Authenticating ferroelectric random access memory (F-RAM) device and method |
KR101818445B1 (ko) * | 2011-07-08 | 2018-01-16 | 삼성전자주식회사 | 메모리 컨트롤러, 이의 동작 방법, 및 상기 메모리 컨트롤러를 포함하는 전자 장치들 |
JP5779434B2 (ja) * | 2011-07-15 | 2015-09-16 | 株式会社ソシオネクスト | セキュリティ装置及びセキュリティシステム |
CN104346103B (zh) * | 2013-08-09 | 2018-02-02 | 群联电子股份有限公司 | 指令执行方法、存储器控制器与存储器储存装置 |
KR102644274B1 (ko) * | 2018-11-22 | 2024-03-06 | 삼성전자주식회사 | 메모리 컨트롤러, 이를 포함하는 메모리 시스템, 및 메모리 컨트롤러의 동작 방법 |
KR20220009523A (ko) * | 2020-07-15 | 2022-01-25 | 삼성전자주식회사 | 스토리지 컨트롤러, 및 스토리지 컨트롤러의 동작 방법 |
CN116343889B (zh) * | 2023-03-03 | 2024-03-29 | 悦芯科技股份有限公司 | 一种存储芯片置乱测试方法、装置、设备及存储介质 |
Family Cites Families (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4423287A (en) * | 1981-06-26 | 1983-12-27 | Visa U.S.A., Inc. | End-to-end encryption system and method of operation |
JPS60177498A (ja) * | 1984-02-23 | 1985-09-11 | Fujitsu Ltd | 半導体記憶装置 |
US5226137A (en) * | 1989-05-15 | 1993-07-06 | Dallas Semiconductor Corp. | Electronic key with multiple password protected sub-keys using address and translation to implement a block data move between public and protected sub-keys |
US5428685A (en) | 1992-01-22 | 1995-06-27 | Fujitsu Limited | IC memory card and method of protecting data therein |
US5539769A (en) * | 1994-03-28 | 1996-07-23 | University Of Southern California | Adaptive fuzzy frequency hopping system |
US5890199A (en) * | 1996-10-21 | 1999-03-30 | Ramtron International Corporation | Data processor incorporating a ferroelectric memory array selectably configurable as read/write and read only memory |
US6272637B1 (en) * | 1997-04-14 | 2001-08-07 | Dallas Semiconductor Corporation | Systems and methods for protecting access to encrypted information |
US5943283A (en) * | 1997-12-05 | 1999-08-24 | Invox Technology | Address scrambling in a semiconductor memory |
JP3638770B2 (ja) * | 1997-12-05 | 2005-04-13 | 東京エレクトロンデバイス株式会社 | テスト機能を備える記憶装置 |
DE19922155A1 (de) * | 1999-05-12 | 2000-11-23 | Giesecke & Devrient Gmbh | Speicheranordnung mit Adreßverwürfelung |
US6507808B1 (en) * | 1999-06-23 | 2003-01-14 | International Business Machines Corporation | Hardware logic verification data transfer checking apparatus and method therefor |
US7051067B1 (en) * | 1999-11-22 | 2006-05-23 | Sun Microsystems, Inc. | Object oriented mechanism for dynamically constructing customized implementations to enforce restrictions |
JP3314181B2 (ja) * | 2000-04-07 | 2002-08-12 | 独立行政法人通信総合研究所 | 擬似乱数列の出力装置、送信装置、受信装置、通信システム、フィルタ装置、擬似乱数列の出力方法、送信方法、受信方法、フィルタ方法、ならびに、情報記録媒体 |
JP2002328845A (ja) * | 2001-05-07 | 2002-11-15 | Fujitsu Ltd | 半導体集積回路及びicカードのセキュリティー保護方法 |
FR2825869B1 (fr) * | 2001-06-08 | 2003-10-03 | France Telecom | Procede d'authentification entre un objet de telecommunication portable et une borne d'acces public |
FR2831737B1 (fr) * | 2001-10-29 | 2003-12-26 | France Telecom | Procede et systeme de transmission avec controle d'acces de donnees numeriques embrouillees dans un reseau d'echange de donnees |
US20030115476A1 (en) * | 2001-10-31 | 2003-06-19 | Mckee Bret | Hardware-enforced control of access to memory within a computer using hardware-enforced semaphores and other similar, hardware-enforced serialization and sequencing mechanisms |
US7149764B2 (en) * | 2002-11-21 | 2006-12-12 | Ip-First, Llc | Random number generator bit string filter |
US7149898B2 (en) * | 2002-01-14 | 2006-12-12 | Sun Microsystems, Inc. | Self-monitoring and trending service system with a cascaded pipeline with enhanced authentication and registration |
US7295674B2 (en) * | 2002-02-21 | 2007-11-13 | Nxp B.V. | On-line randomness test for detecting irregular pattern |
US7055082B2 (en) * | 2002-10-29 | 2006-05-30 | Victor Company Of Japan, Ltd. | Information recording and reproducing apparatus |
US7032088B2 (en) * | 2003-08-07 | 2006-04-18 | Siemens Corporate Research, Inc. | Advanced memory management architecture for large data volumes |
CN100356342C (zh) | 2003-11-18 | 2007-12-19 | 株式会社瑞萨科技 | 信息处理装置 |
US20050172132A1 (en) * | 2004-01-30 | 2005-08-04 | Chen Sherman (. | Secure key authentication and ladder system |
US7827223B2 (en) * | 2004-04-22 | 2010-11-02 | Fortress Gb Ltd. | Accelerated throughput synchronized word stream cipher, message authenticator and zero-knowledge output random number generator |
US7380119B2 (en) * | 2004-04-29 | 2008-05-27 | International Business Machines Corporation | Method and system for virtualization of trusted platform modules |
US7765600B2 (en) * | 2004-05-04 | 2010-07-27 | General Instrument Corporation | Methods and apparatuses for authorizing features of a computer program for use with a product |
JP4447977B2 (ja) * | 2004-06-30 | 2010-04-07 | 富士通マイクロエレクトロニクス株式会社 | セキュアプロセッサ、およびセキュアプロセッサ用プログラム。 |
TW200629192A (en) * | 2005-02-03 | 2006-08-16 | Sanyo Electric Co | Random number generating circuit |
BRPI0520341A2 (pt) * | 2005-06-23 | 2009-05-05 | Thomson Licensing | sistema e método de registro de dispositivo de acesso a multimìdia |
US7831624B2 (en) * | 2005-06-24 | 2010-11-09 | Seagate Technology Llc | Skip list with address related table structure |
US7454107B2 (en) * | 2005-11-01 | 2008-11-18 | Corning Cable Systems Llc | Fiber optic cables suitable for automated preconnectorization |
JP2008003438A (ja) * | 2006-06-26 | 2008-01-10 | Sony Corp | 乱数生成装置、乱数生成制御方法、メモリアクセス制御装置、および、通信装置 |
-
2006
- 2006-06-26 JP JP2006174807A patent/JP2008003976A/ja active Pending
-
2007
- 2007-06-20 US US11/765,809 patent/US20070297605A1/en not_active Abandoned
- 2007-06-22 EP EP07012308A patent/EP1873672A3/en not_active Withdrawn
- 2007-06-25 SG SG200704766-5A patent/SG138585A1/en unknown
- 2007-06-26 CN CNA2007101124641A patent/CN101097550A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20070297605A1 (en) | 2007-12-27 |
SG138585A1 (en) | 2008-01-28 |
CN101097550A (zh) | 2008-01-02 |
EP1873672A3 (en) | 2008-02-27 |
EP1873672A2 (en) | 2008-01-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2008027327A (ja) | メモリアクセス制御装置および方法、並びに、通信装置 | |
JP2008003438A (ja) | 乱数生成装置、乱数生成制御方法、メモリアクセス制御装置、および、通信装置 | |
JP2008003976A (ja) | メモリアクセス制御装置および方法、並びに、通信装置 | |
JP4984721B2 (ja) | データ記憶装置、電力制御方法、並びに、通信装置 | |
JP4349389B2 (ja) | データ記憶装置、および、通信装置 | |
KR101975027B1 (ko) | 시스템 온 칩, 이의 동작 방법, 이를 포함하는 장치들 | |
KR100445406B1 (ko) | 데이터 암호화 장치 및 그 방법 | |
JP2000222176A (ja) | 乱数生成回路、当該乱数生成回路を内蔵する非接触icカード及びリーダ/ライタ、並びに、当該乱数生成回路を内蔵する装置のテスト方法 | |
RU2007141753A (ru) | Безопасное хранение данных с защитой целостности | |
CN103577768A (zh) | 管理用于数据的安全存储的密钥的方法及其设备 | |
CN101309138A (zh) | 用于处理器的基于加密的安全保护方法及其设备 | |
EP2124172A1 (en) | Ic card and method for authenticating ic card | |
JP2007251783A (ja) | 半導体装置の被処理データのスクランブル/デスクランブル方法、そのプログラム、スクランブル/デスクランブル回路、及びそれらを備える半導体装置 | |
CN112395654A (zh) | 存储装置 | |
JP2007004456A (ja) | 携帯可能電子装置及び携帯可能電子装置のデータ出力方法 | |
JP5231079B2 (ja) | 疑似乱数発生器及びデータ通信装置 | |
JP2008109276A (ja) | 携帯可能電子装置 | |
JP4863279B2 (ja) | メモリシステム及びメモリアクセス方法 | |
CN109753821B (zh) | 数据存取装置及方法 | |
JP2000242470A (ja) | 乱数生成装置および方法および記録媒体 | |
JP2005266952A (ja) | メモリカード制御装置、半導体メモリカード、カードインターフェースコントローラ、及び半導体メモリカードの認証方法 | |
JP2005149262A (ja) | 情報処理装置 | |
JP2006024140A (ja) | 乱数生成装置 | |
JP6396119B2 (ja) | Icモジュール、icカード、及びicカードの製造方法 | |
KR101565968B1 (ko) | 데이터 보호를 위한 메모리, 이를 포함하는 메모리 시스템 및 이의 동작 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080421 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080529 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080707 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080828 |