JP2008003438A - 乱数生成装置、乱数生成制御方法、メモリアクセス制御装置、および、通信装置 - Google Patents

乱数生成装置、乱数生成制御方法、メモリアクセス制御装置、および、通信装置 Download PDF

Info

Publication number
JP2008003438A
JP2008003438A JP2006174808A JP2006174808A JP2008003438A JP 2008003438 A JP2008003438 A JP 2008003438A JP 2006174808 A JP2006174808 A JP 2006174808A JP 2006174808 A JP2006174808 A JP 2006174808A JP 2008003438 A JP2008003438 A JP 2008003438A
Authority
JP
Japan
Prior art keywords
random number
pseudo
scramble key
memory
predetermined value
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
JP2006174808A
Other languages
English (en)
Inventor
Yukitake Muraoka
如竹 村岡
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP2006174808A priority Critical patent/JP2008003438A/ja
Priority to US11/765,840 priority patent/US20070299894A1/en
Priority to CNA2007101124656A priority patent/CN101097510A/zh
Publication of JP2008003438A publication Critical patent/JP2008003438A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/58Indexing scheme relating to groups G06F7/58 - G06F7/588
    • G06F2207/583Serial finite field implementation, i.e. serial implementation of finite field arithmetic, generating one new bit or trit per step, e.g. using an LFSR or several independent LFSRs; also includes PRNGs with parallel operation between LFSR and outputs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • G06F7/584Pseudo-random number generators using finite field arithmetic, e.g. using a linear feedback shift register
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless
    • H04L2209/805Lightweight hardware, e.g. radio-frequency identification [RFID] or sensor

Landscapes

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

Abstract

【課題】スクランブル鍵に推測が容易な値が設定されることを防止する。
【解決手段】乱数生成器101はGold系列の疑似乱数を生成し、スイッチ202を介して、乱数格納器203に出力し、格納させる。ビット列検査器201は、乱数格納器203に格納された疑似乱数が、スクランブル鍵としての使用が禁止されている所定の値と一致する場合、スイッチ202をオンにし、所定のビット数の疑似乱数を乱数生成器101から乱数格納器203に出力させ、疑似乱数の値を変更させ、禁止されている値と一致しない場合、スイッチ204をオンにし、乱数格納器203に格納されている疑似乱数を、スクランブル鍵バッファに出力させる。本発明は、リーダライタに適用することができる。
【選択図】図7

Description

本発明は、乱数生成装置、乱数生成制御方法、メモリアクセス制御装置、および、通信装置に関し、特に、データのスクランブルに用いるスクランブル鍵に推測が容易な値が設定されることを防止するようにした乱数生成装置、乱数生成制御方法、メモリアクセス制御装置、および、通信装置に関する。
従来、乱数列中で同じ値が連続する回数の種類を調べ、その種類の数に基づいて、出力される乱数の周期性を検査し、乱数生成回路の異常を判定することが提案されている(例えば、特許文献1参照)。
特開2005−249969号公報
ところで、各種のデータにスクランブルをかける場合に用いるスクランブル鍵として乱数が用いられる場合がある。そのようなスクランブル鍵に、例えば、000・・・000および111・・・111のように同じ値が連続するビット列、0101・・・0101、0101・・・010、1010・・・1010、および、1010・・・101のように異なる値が1つずつ交互に繰り返されるビット列などが設定された場合、データのスクランブルのかけ方を解析することにより、他の値が設定された場合と比べて、スクランブル鍵の値が容易に推測される可能性がある。
しかしながら、特許文献1に記載の発明は、乱数生成回路が発生する乱数の周期性の異常を検査するためのものであり、スクランブル鍵として適切な値であるかを検査することについては考慮されていない。
本発明は、このような状況に鑑みてなされたものであり、スクランブル鍵に推測が容易な値が設定されることを防止するためのものである。
本発明の第1の側面の乱数生成装置は、乱数または疑似乱数を生成し、出力する乱数生成装置であって、乱数生成手段により生成された乱数または疑似乱数が所定の値と等しい場合、前記乱数生成手段に新たな乱数または疑似乱数を生成させ、前記所定の値と異なる乱数または疑似乱数を出力するように制御する乱数出力制御手段が設けられている。
前記乱数生成手段には、Gold系列の疑似乱数を生成させることができる。
前記乱数出力制御手段には、同じ値が連続するビット列、および、異なる値が1つずつ交互に繰り返されるビット列とは異なる乱数または疑似乱数を出力するように制御させることができる。
本発明の第1の側面の乱数生成制御方法は、乱数または疑似乱数を生成し、出力する乱数生成装置の乱数生成制御方法であって、乱数生成部により生成された乱数または疑似乱数が所定の値と等しい場合、前記乱数生成部に新たな乱数または疑似乱数を生成させ、前記所定の値と異なる乱数または疑似乱数を出力するように制御するステップを含む。
本発明の第2の側面のメモリアクセス制御装置は、スクランブル鍵を用いて、入力された論理アドレスにスクランブルをかけることにより、実際にメモリにアクセスする物理アドレスを割り当てるメモリアクセス制御装置であって、乱数生成手段により生成された乱数または疑似乱数が所定の値と等しい場合、前記乱数生成手段に新たな乱数または疑似乱数を生成させ、前記所定の値と異なる乱数または疑似乱数を前記スクランブル鍵として出力するように制御する乱数出力制御手段が設けられている。
本発明の第3の側面の通信装置は、スクランブル鍵を用いて、入力された論理アドレスにスクランブルをかけることにより、実際にメモリにアクセスする物理アドレスを割り当てるメモリアクセス制御手段を有し、非接触ICカード機能を有する装置と通信を行う通信装置であって、乱数生成手段により生成された乱数または疑似乱数が所定の値と等しい場合、前記乱数生成手段に新たな乱数または疑似乱数を生成させ、前記所定の値と異なる乱数または疑似乱数を前記スクランブル鍵として出力するように制御する乱数出力制御手段が設けられている。
本発明の第1の側面においては、生成された乱数または疑似乱数が所定の値と等しい場合、新たな乱数または疑似乱数を生成させ、前記所定の値と異なる乱数または疑似乱数を出力するように制御される。
本発明の第2の側面においては、生成された乱数または疑似乱数が所定の値と等しい場合、新たな乱数または疑似乱数を生成させ、前記所定の値と異なる乱数または疑似乱数をスクランブル鍵として出力するように制御される。
本発明の第3の側面においては、生成された乱数または疑似乱数が所定の値と等しい場合、新たな乱数または疑似乱数を生成させ、前記所定の値と異なる乱数または疑似乱数をスクランブル鍵として出力するように制御される。
本発明の第1の側面乃至第3の側面によれば、所定の値と異なる値の乱数を出力することができる。また、本発明の第1の側面乃至第3の側面によれば、データのスクランブルに用いるスクランブル鍵に推測が容易な値が設定されることを防止することができる。
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書または図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、発明の詳細な説明に記載されていることを確認するためのものである。従って、発明の詳細な説明中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
本発明の第1の側面の乱数生成装置(例えば、図7の乱数出力器42)は、乱数または疑似乱数を生成し、出力する乱数生成装置であって、乱数生成手段(例えば、図7の乱数生成器101)により生成された乱数が所定の値と等しい場合、前記乱数生成手段に新たな乱数を生成させ、前記所定の値と異なる乱数を出力するように制御する乱数出力制御手段(例えば、図7のビット列検査器201)を備える。
本発明の第1の側面の乱数生成制御方法は、乱数または疑似乱数を生成し、出力する乱数生成装置(例えば、図7の乱数出力器42)の乱数生成制御方法であって、乱数生成部(例えば、図7の乱数生成器101)により生成された乱数または疑似乱数が所定の値と等しい場合、前記乱数生成部に新たな乱数または疑似乱数を生成させ、前記所定の値と異なる乱数または疑似乱数を出力するように制御する(例えば、図8のステップS102およびS103)ステップを含む。
本発明の第2の側面のメモリアクセス制御装置(例えば、図2のメモリアクセス制御部32)は、スクランブル鍵を用いて、入力された論理アドレスにスクランブルをかけることにより、実際にメモリ(例えば、図2のメモリ33)にアクセスする物理アドレスを割り当てるメモリアクセス制御装置であって、乱数生成手段(例えば、図7の乱数生成器101)により生成された乱数または疑似乱数が所定の値と等しい場合、前記乱数生成手段に新たな乱数または疑似乱数を生成させ、前記所定の値と異なる乱数または疑似乱数を前記スクランブル鍵として出力するように制御する乱数出力制御手段(例えば、図7のビット列検査器201)を備える。
本発明の第3の側面の通信装置(例えば、図1のリーダライタ1)は、スクランブル鍵を用いて、入力された論理アドレスにスクランブルをかけることにより、実際にメモリ(例えば、図2のメモリ33)にアクセスする物理アドレスを割り当てるメモリアクセス制御手段(例えば、図7の乱数生成器101)を有し、非接触ICカード機能を有する装置(例えば、図1のICカード2)と通信を行う通信装置であって、乱数生成手段(例えば、図7の乱数生成器101)により生成された乱数または疑似乱数が所定の値と等しい場合、前記乱数生成手段に新たな乱数または疑似乱数を生成させ、前記所定の値と異なる乱数または疑似乱数を前記スクランブル鍵として出力するように制御する乱数出力制御手段(例えば、図7のビット列検査器201)を備える。
以下、図を参照して、本発明の実施の形態について説明する。
図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の乱数出力器の機能的構成を示すブロック図である。 図2のバススクランブル器の機能的構成の詳細を示すブロック図である。 図1のリーダライタにより実行されるスクランブル鍵生成処理を説明するためのフローチャートである。 図1のリーダライタにより実行されるメモリアクセス制御処理を説明するためのフローチャートである。 図2の乱数出力器の第2の実施の形態の機能的構成を示すブロック図である。 図7の乱数出力器を備えた場合の図1のリーダライタにより実行されるスクランブル鍵生成処理を説明するためのフローチャートである。
符号の説明
1 リーダライタ, 2 ICカード, 13 制御モジュール, 31 CPU, 32 メモリアクセス制御部, 33 メモリ, 41 スクランブル鍵変更指令器, 42 乱数出力器, 43 バススクランブル器, 51 スクランブル鍵保持部, 52 アドレスバススクランブル回路, 61 スクランブル鍵バッファ, 62 内部メモリ, 101 乱数生成器, 102 スイッチ, 201 ビット列検査器, 202 スイッチ, 203 乱数格納器, 204 スイッチ

Claims (6)

  1. 乱数または疑似乱数を生成し、出力する乱数生成装置において、
    乱数生成手段により生成された乱数または疑似乱数が所定の値と等しい場合、前記乱数生成手段に新たな乱数または疑似乱数を生成させ、前記所定の値と異なる乱数または疑似乱数を出力するように制御する乱数出力制御手段を
    含む乱数生成装置。
  2. 前記乱数生成手段は、Gold系列の疑似乱数を生成する
    請求項1に記載の乱数生成装置。
  3. 前記乱数出力制御手段は、同じ値が連続するビット列、および、異なる値が1つずつ交互に繰り返されるビット列とは異なる乱数または疑似乱数を出力するように制御する
    請求項1に記載の乱数生成装置。
  4. 乱数または疑似乱数を生成し、出力する乱数生成装置の乱数生成制御方法において、
    乱数生成部により生成された乱数または疑似乱数が所定の値と等しい場合、前記乱数生成部に新たな乱数または疑似乱数を生成させ、前記所定の値と異なる乱数または疑似乱数を出力するように制御する
    ステップを含む乱数生成制御方法。
  5. スクランブル鍵を用いて、入力された論理アドレスにスクランブルをかけることにより、実際にメモリにアクセスする物理アドレスを割り当てるメモリアクセス制御装置において、
    乱数生成手段により生成された乱数または疑似乱数が所定の値と等しい場合、前記乱数生成手段に新たな乱数または疑似乱数を生成させ、前記所定の値と異なる乱数または疑似乱数を前記スクランブル鍵として出力するように制御する乱数出力制御手段を
    含むメモリアクセス制御装置。
  6. スクランブル鍵を用いて、入力された論理アドレスにスクランブルをかけることにより、実際にメモリにアクセスする物理アドレスを割り当てるメモリアクセス制御手段を有し、非接触ICカード機能を有する装置と通信を行う通信装置において、
    乱数生成手段により生成された乱数または疑似乱数が所定の値と等しい場合、前記乱数生成手段に新たな乱数または疑似乱数を生成させ、前記所定の値と異なる乱数または疑似乱数を前記スクランブル鍵として出力するように制御する乱数出力制御手段を
    含む通信装置。
JP2006174808A 2006-06-26 2006-06-26 乱数生成装置、乱数生成制御方法、メモリアクセス制御装置、および、通信装置 Pending JP2008003438A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2006174808A JP2008003438A (ja) 2006-06-26 2006-06-26 乱数生成装置、乱数生成制御方法、メモリアクセス制御装置、および、通信装置
US11/765,840 US20070299894A1 (en) 2006-06-26 2007-06-20 Random number generating apparatus, random number generating control method, memory access control apparatus, and communication apparatus
CNA2007101124656A CN101097510A (zh) 2006-06-26 2007-06-26 随机数生成设备及控制方法、存储器存取控制设备及通信设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006174808A JP2008003438A (ja) 2006-06-26 2006-06-26 乱数生成装置、乱数生成制御方法、メモリアクセス制御装置、および、通信装置

Publications (1)

Publication Number Publication Date
JP2008003438A true JP2008003438A (ja) 2008-01-10

Family

ID=38874693

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006174808A Pending JP2008003438A (ja) 2006-06-26 2006-06-26 乱数生成装置、乱数生成制御方法、メモリアクセス制御装置、および、通信装置

Country Status (3)

Country Link
US (1) US20070299894A1 (ja)
JP (1) JP2008003438A (ja)
CN (1) CN101097510A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019194873A (ja) * 2019-06-11 2019-11-07 東芝メモリ株式会社 ランダマイザおよび半導体記憶装置

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008003976A (ja) * 2006-06-26 2008-01-10 Sony Corp メモリアクセス制御装置および方法、並びに、通信装置
JP4625936B2 (ja) * 2007-06-12 2011-02-02 独立行政法人産業技術総合研究所 乱数発生器
US8484518B2 (en) * 2009-04-28 2013-07-09 Alcatel Lucent System and method for consecutive identical digit reduction
US20110075840A1 (en) * 2009-09-30 2011-03-31 Zayas Fernando A Method and system for generating random numbers in a storage device
US9838226B2 (en) * 2012-01-27 2017-12-05 Apple Inc. Methods and apparatus for the intelligent scrambling of control symbols
WO2019080109A1 (zh) * 2017-10-27 2019-05-02 福建联迪商用设备有限公司 一种终端随机数发生的方法及系统
TWI793429B (zh) 2019-07-25 2023-02-21 熵碼科技股份有限公司 加密金鑰生成器及傳輸系統
US11281795B2 (en) 2019-12-24 2022-03-22 Stmicroelectronics International N.V. Hierarchical random scrambling of secure data storage resulting in randomness across chips and on power on resets of individual chips
US11227046B2 (en) 2019-12-24 2022-01-18 Stmicroelectronics International N.V. Dynamic randomization of password challenge

Family Cites Families (16)

* Cited by examiner, † Cited by third party
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
US5539769A (en) * 1994-03-28 1996-07-23 University Of Southern California Adaptive fuzzy frequency hopping system
US6272637B1 (en) * 1997-04-14 2001-08-07 Dallas Semiconductor Corporation Systems and methods for protecting access to encrypted information
US6959383B1 (en) * 1997-07-10 2005-10-25 Yamaha Corporation Method and device for incorporating additional information into main information through electronic watermaking technique
US5943283A (en) * 1997-12-05 1999-08-24 Invox Technology Address scrambling in a semiconductor memory
US7051067B1 (en) * 1999-11-22 2006-05-23 Sun Microsystems, Inc. Object oriented mechanism for dynamically constructing customized implementations to enforce restrictions
JP2002328845A (ja) * 2001-05-07 2002-11-15 Fujitsu Ltd 半導体集積回路及びicカードのセキュリティー保護方法
US7149764B2 (en) * 2002-11-21 2006-12-12 Ip-First, Llc Random number generator bit string filter
US7295674B2 (en) * 2002-02-21 2007-11-13 Nxp B.V. On-line randomness test for detecting irregular pattern
FR2844941B1 (fr) * 2002-09-24 2005-02-18 At & T Corp Demande d'acces securise aux ressources d'un reseau intranet
US7139225B2 (en) * 2003-03-27 2006-11-21 Qualcomm, Incorporated Virtual real-time clock based on time information from multiple communication systems
JP3740540B2 (ja) * 2003-06-20 2006-02-01 独立行政法人情報通信研究機構 パルス生成器、パルス生成方法、通信装置および通信方法
JP4357480B2 (ja) * 2003-06-30 2009-11-04 富士通株式会社 無線通信認証プログラムおよび無線通信プログラム
US7154313B2 (en) * 2004-09-30 2006-12-26 Intel Corporation Wideband spread spectrum clock
TW200629192A (en) * 2005-02-03 2006-08-16 Sanyo Electric Co Random number generating circuit
WO2007001287A1 (en) * 2005-06-23 2007-01-04 Thomson Licensing Multi-media access device registration system and method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019194873A (ja) * 2019-06-11 2019-11-07 東芝メモリ株式会社 ランダマイザおよび半導体記憶装置

Also Published As

Publication number Publication date
US20070299894A1 (en) 2007-12-27
CN101097510A (zh) 2008-01-02

Similar Documents

Publication Publication Date Title
JP2008027327A (ja) メモリアクセス制御装置および方法、並びに、通信装置
JP2008003438A (ja) 乱数生成装置、乱数生成制御方法、メモリアクセス制御装置、および、通信装置
JP4984721B2 (ja) データ記憶装置、電力制御方法、並びに、通信装置
JP4349389B2 (ja) データ記憶装置、および、通信装置
JP2008003976A (ja) メモリアクセス制御装置および方法、並びに、通信装置
KR101975027B1 (ko) 시스템 온 칩, 이의 동작 방법, 이를 포함하는 장치들
JP5813380B2 (ja) 半導体記憶装置
US20140122903A1 (en) Semiconductor device and encryption key writing method
CN103577768A (zh) 管理用于数据的安全存储的密钥的方法及其设备
JP2000222176A (ja) 乱数生成回路、当該乱数生成回路を内蔵する非接触icカード及びリーダ/ライタ、並びに、当該乱数生成回路を内蔵する装置のテスト方法
CN101309138A (zh) 用于处理器的基于加密的安全保护方法及其设备
US9653004B2 (en) Systems and methods for downloading code and data into a secure non-volatile memory
US20090314841A1 (en) Ic card and authentication processing method in ic card
CN112395654A (zh) 存储装置
JP2007251783A (ja) 半導体装置の被処理データのスクランブル/デスクランブル方法、そのプログラム、スクランブル/デスクランブル回路、及びそれらを備える半導体装置
JP2007004456A (ja) 携帯可能電子装置及び携帯可能電子装置のデータ出力方法
US20050041803A1 (en) On-device random number generator
US20210191899A1 (en) Data processing circuit, data storage device including the same, and operating method thereof
JP2005292959A (ja) 不揮発性メモリモジュール及び不揮発性メモリシステム
TWI743715B (zh) 用來針對非揮發性記憶體進行資訊保護的方法及設備
KR102025178B1 (ko) 초기화가 가능한 재생 카트리지에 설치되는 인증용 메모리 모듈
JP6396119B2 (ja) Icモジュール、icカード、及びicカードの製造方法
JP2006024140A (ja) 乱数生成装置
JP5019210B2 (ja) 携帯可能電子装置、icカード、および携帯可能電子装置の制御方法
JP2007281994A (ja) 半導体集積回路

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080416

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080613

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20081007