(57)【要約】【課題】スクランブルによるデータの秘匿性を高めるべくスクランブル用キーの生成にランダム性を付加する。【解決手段】半導体メモリ２は、メモリアレイ２６と、スクランブル／デスクランブル部２１とを備える。スクランブル／デスクランブル部２１は、メモリアレイから読み出された読み出しデータＤｔｒにスクランブル処理を施して出力データｓ０〜ｓ７を生成し、入力されたスクランブル済みの信号ＩＯにデスクランブル処理を施してメモリアレイに対するコマンドＣｍｄを生成する。スクランブル／デスクランブル部２１は、スクランブル済みの信号ＩＯ、コマンドＣｍｄ、読み出しデータＤｔｒ、出力データｓ０〜ｓ７のうちの、少なくとも二つから選択されるものが所定の条件を満足することを契機として、スクランブル処理及び／又はデスクランブル処理に用いられるキーｑ０〜ｑ７を生成する方法の更新が行われる。【選択図】図１
2008010923.tif 000002
【特許請求の範囲】
【請求項１】
メモリアレイと、
スクランブル／デスクランブル部と
を備え、
前記スクランブル／デスクランブル部は、
前記メモリアレイから読み出された読み出しデータにスクランブル処理を施して出力データを生成し、
入力されたスクランブル済みの信号にデスクランブル処理を施して前記メモリアレイに対するコマンドを生成し、
前記スクランブル済みの信号、前記コマンド、前記読み出しデータ、前記出力データのうちの、少なくとも二つから選択される少なくとも一つが所定の条件を満足することを契機として、前記スクランブル処理及び／又は前記デスクランブル処理に用いられるスクランブル用キーを生成する方法の更新が行われる、半導体メモリ。
【請求項２】
前記スクランブル／デスクランブル部は、
前記スクランブル用キーを生成する方法の更新のための制御信号を生成する制御回路と、
前記読み出しデータと前記スクランブル済みの信号とを選択的に前記制御回路に与えるセレクタと
を有する、請求項１記載の半導体メモリ。
【請求項３】
メモリアレイと、
スクランブル／デスクランブル部と
を備え、
前記スクランブル／デスクランブル部は、
前記メモリアレイから読み出された読み出しデータにスクランブル処理を施して出力データを生成し、
入力されたスクランブル済みの信号にデスクランブル処理を施して前記メモリアレイに対するコマンドを生成し、
前記スクランブル済みの信号、前記出力データから少なくともいずれか一つを選択し、選択されたものが所定の条件を満足することを契機として、前記スクランブル処理及び／又は前記デスクランブル処理に用いられるスクランブル用キーを生成する方法の更新が行われる、半導体メモリ。
【請求項４】
前記スクランブル／デスクランブル部は、
前記スクランブル済みの信号、前記出力データを入力し、その少なくとも一つが前記所定の条件を満足することを契機として、前記スクランブル用キーを生成する方法の更新のための制御信号を生成する制御回路
を有する、請求項３記載の半導体メモリ。
【請求項５】
前記スクランブル／デスクランブル部は、
前記スクランブル済みの信号又は前記読み出しデータと、前記スクランブル用キーとの排他的論理和を演算する演算部
を更に有する、請求項２又は請求項４記載の半導体メモリ。
【請求項６】
前記スクランブル用キーはＭ系列の疑似乱数であり、前記更新は前記Ｍ系列の疑似乱数の初期値の更新である、請求項１乃至請求項５のいずれか一つに記載の半導体メモリ。
【請求項７】
前記スクランブル用キーはGold系列の疑似乱数であり、前記更新は前記Gold系列の疑似乱数の初期値の更新である、請求項１乃至請求項５のいずれか一つに記載の半導体メモリ。
【請求項８】
前記スクランブル用キーはＭ系列の疑似乱数であり、前記更新は前記Ｍ系列の疑似乱数の特性方程式の更新である、請求項１乃至請求項５のいずれか一つに記載の半導体メモリ。
【請求項９】
前記スクランブル用キーはGold系列の疑似乱数であり、前記更新は前記Gold系列の疑似乱数の特性方程式の更新である、請求項１乃至請求項５のいずれか一つに記載の半導体メモリ。
【請求項１０】
前記スクランブル用キーはＭ系列の疑似乱数であり、前記更新は前記Ｍ系列の疑似乱数のシフトビット数の更新である、請求項１乃至請求項５のいずれか一つに記載の半導体メモリ。
【請求項１１】
前記スクランブル用キーはGold系列の疑似乱数であり、前記更新は前記Gold系列の疑似乱数のシフトビット数の更新である、請求項１乃至請求項５のいずれか一つに記載の半導体メモリ。
【請求項１２】
請求項１乃至請求項１１のいずれか一つに記載の半導体メモリと、
前記スクランブル用キーを用いてスクランブル処理及び／又はデスクランブル処理を行うスクランブル／デスクランブル部を有するホスト機器と
を備える、データ授受システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はデータにスクランブルを施す技術に関する。
【背景技術】
【０００２】
ホスト機器と、着脱可能に接続される半導体メモリとの間で授受されるデータにスクランブルを施すことが提案されている。これは、半導体メモリに格納された情報を、ホスト機器との接続部分の信号を観測することで不正に取得されることを回避するためである。
【０００３】
一定個数のデータストリームとの間で論理演算を行ってスクランブルに用いるためのデータ列（以下、「スクランブル用キー」と仮称する）を、シフトレジスタを用いて生成する技術が例えば特許文献１乃至４に紹介されている。
【０００４】
【特許文献１】特開２０００−２７８０９９号公報
【特許文献２】特開２００２−１５０６９８号公報
【特許文献３】特開２００２−１７０３３３号公報
【特許文献４】特開平１０−３０８７２０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
スクランブルによるデータの秘匿性を高めるためにはスクランブル用キーの生成にランダム性を付加する事が望ましい。かかるランダム性の付加のためには、ホスト機器側と半導体メモリ側とでタイミングを整合させて、スクランブル用キーの生成のための処理を更新することが望ましい。
【０００６】
しかしながら、スクランブル用キーの生成方法が一旦解析されてしまうと、その後のスクランブル用キーが予想されてしまい、半導体メモリから得られるデータのスクランブルが破られてしまう。
【０００７】
そこでスクランブル用キーの生成のための処理を更新する際に用いる値（例えば初期値）をランダムにし、以て当該更新にランダム性を付加することも考えられる。しかし更新のタイミングを単にタイマに基づいて所定期間毎に行うのであれば、当該タイマを強制的に停止することによって、初期値をランダムにすることの利点が損なわれる。
【０００８】
そこで本発明では、スクランブル用キーの生成方法を更新するタイミングを決定する基準を複数準備することにより、その更新のランダムさの実効性を高めることを目的とする。このランダムさとしては、例えば初期値のランダム化であり、スクランブル用キーの生成のための処理に用いられる手法の変更である。
【課題を解決するための手段】
【０００９】
この発明にかかる半導体メモリは、メモリアレイと、スクランブル／デスクランブル部とを備える。その第１の態様では、前記スクランブル／デスクランブル部は、前記メモリアレイから読み出された読み出しデータにスクランブル処理を施して出力データを生成し、入力されたスクランブル済みの信号にデスクランブル処理を施して前記メモリアレイに対するコマンドを生成し、前記スクランブル済みの信号、前記コマンド、前記読み出しデータ、前記出力データのうちの、少なくとも二つから選択される少なくとも一つが所定の条件を満足することを契機として、前記スクランブル処理及び／又は前記デスクランブル処理に用いられるスクランブル用キーを生成する方法の更新が行われる。
【００１０】
その第３の態様では、前記スクランブル／デスクランブル部は、前記メモリアレイから読み出された読み出しデータにスクランブル処理を施して出力データを生成し、入力されたスクランブル済みの信号にデスクランブル処理を施して前記メモリアレイに対するコマンドを生成し、前記スクランブル済みの信号、前記出力データから少なくともいずれか一つを選択し、選択されたものが所定の条件を満足することを契機として、前記スクランブル処理及び／又は前記デスクランブル処理に用いられるスクランブル用キーを生成する方法の更新が行われる。
【００１１】
この発明にかかる半導体メモリの第２の態様は、その第１の態様であって、前記スクランブル／デスクランブル部は、前記スクランブル用キーを生成する方法の更新のための制御信号を生成する制御回路と、前記読み出しデータと前記スクランブル済みの信号とを選択的に前記制御回路に与えるセレクタとを有する。
【００１２】
この発明にかかる半導体メモリの第４の態様は、その第３の態様であって、前記スクランブル／デスクランブル部は、前記スクランブル済みの信号、前記出力データを入力し、そのすくなくとも一つが前記所定の条件を満足することを契機として、前記スクランブル用キーを生成する方法の更新のための制御信号を生成する制御回路を有する。
【００１３】
この発明にかかる半導体メモリの第５の態様は、その第２の態様又は第４の態様であって、前記スクランブル／デスクランブル部は、前記スクランブル済みの信号又は前記読み出しデータと、前記スクランブル用キーとの排他的論理和を演算する演算部を更に有する。
【００１４】
この発明にかかるデータ授受システムは、この発明にかかる半導体メモリと、前記スクランブル用キーを用いてスクランブル処理及び／又はデスクランブル処理を行うスクランブル／デスクランブル部を有するホスト機器とを備える。
【００１５】
例えば前記スクランブル用キーはＭ系列の疑似乱数や、Gold系列の疑似乱数である。例えば前記更新は、疑似乱数の初期値の更新や、疑似乱数の特性方程式の更新や、疑似乱数のシフトビット数の更新である。
【発明の効果】
【００１６】
この発明にかかる半導体メモリの第１の態様によれば、スクランブル用キーの生成方法を更新するタイミングを決定する基準を複数準備することにより、その更新のランダムさの実効性を高める。
【００１７】
この発明にかかる半導体メモリの第２の態様乃至第４態様によれば、スクランブル用キーの生成方法を更新するタイミングを決定する基準として、読み出しデータとスクランブル済みの信号とを選択することができる。
【００１８】
この発明にかかる半導体メモリの第５の態様によれば、スクランブル処理及びデスクランブル処理に共通のスクランブル用キーを採用することができる。
【００１９】
この発明にかかるデータ授受システムによれば、ホスト機器と半導体メモリとの間で授受される情報はスクランブルされ、当該情報が不正に取得されることを回避する。
【発明を実施するための最良の形態】
【００２０】
［基本的な考え方］  
図１はこの発明の一例であるスクランブル／デスクランブル技術が採用されるデータ授受システムの構成を概念的に示すブロック図である。当該システムはホスト機器１と半導体メモリ２とを有しており、両者間においてはスクランブル済みの信号ＩＯが授受される。
【００２１】
本実施の形態では８ビットのパラレルデータが扱われる場合が例示され、スクランブル／デスクランブルはその対象となる８ビットのパラレルデータと８ビットのスクランブル用キーとの排他的論理和を採る場合が例示される。ただし、これらの態様は例示であって、本発明がかかる態様に限定される必要はない。
【００２２】
ホスト機器１はスクランブル／デスクランブル部１１と入出力部（図中ではＩ／Ｏと表記）１２とを備えている。ホスト機器１はその他にも、半導体メモリ２へ与えるコマンドＣｍｄや書き込みデータＤｔｗ及び書き込みデータＤｔｗの格納先を示すアドレスＡｄｒを出力する処理、半導体メモリ２から読み出しデータＤｔｒを入力する処理、これらの処理並びにスクランブル／デスクランブル部１１及び出力部１２の機能を実行するが、本発明とは直接関係しないので説明は省略する。
【００２３】
半導体メモリ２はスクランブル／デスクランブル部２１、入出力部（図中ではＩ／Ｏと表記）２２、メモリアレイ２６を備えている。半導体メモリ２は、他に機能を有することもあり得るが、その基本的な機能は以下の二つである。
【００２４】
第１の機能：スクランブル済みの信号ＩＯを、入出力部２２を介してホスト機器１から得る。スクランブル済みの信号ＩＯをデスクランブルして、メモリアレイ２６に対するコマンドＣｍｄ、書き込みデータＤｔｗ、もしくはアドレスＡｄｒを得る。コマンドＣｍｄ、書き込みデータＤｔｗ、もしくはアドレスＡｄｒに基づいてメモリアレイ２６へとデータＤｔを入力し、あるいはメモリアレイ２６から読み出しデータＤｔｒを読み出す機能；
第２の機能：読み出しデータＤｔｒをスクランブルし、これを入出力部２２を介して、ホスト機器１へと出力する機能。
【００２５】
図２及び図３は、それぞれ第１の機能及び第２の機能を示すブロック図であり、いずれも半導体メモリ２の構造自体は図１のそれと同じである。但し、図２では第１の機能における、図３では第２の機能における、それぞれ信号やデータの流れを太線で示している。
【００２６】
半導体メモリ２はコマンド判定部２４を更に備えている。コマンド判定部２４は第１の機能においてデスクランブルされた結果がコマンドＣｍｄであるか否かを判定する。コマンドＣｍｄであればそのコマンドを後述するシフトレジスタ制御回路２１１に与える。
【００２７】
半導体メモリ２はメモリ制御部２５を更に備えている。メモリ制御部２５は、コマンドＣｍｄ、書き込みデータＤｔｗ、あるいはアドレスＡｄｒをメモリアレイ２６に出力する。
【００２８】
コマンドＣｍｄは例えば読み出し命令、書き込み命令である。例えばコマンドＣｍｄが読み出し命令である場合、通常はアドレスＡｄｒを伴っている。当該コマンドＣｍｄに基づいて、当該アドレスＡｄｒにおいてメモリアレイ２６に格納されていたデータが読み出しデータＤｔｒとして読み出される。読み出しデータＤｔｒはスクランブル／デスクランブル部２１に入力する。
【００２９】
例えばコマンドＣｍｄが書き込み命令である場合、通常はアドレスＡｄｒ及び書き込みデータＤｔｗを伴っている。そして当該コマンドＣｍｄに基づいて、随伴した書き込みデータＤｔｗが、当該アドレスＡｄｒにおいてメモリアレイ２６へと書き込まれる。
【００３０】
例外的には、前回のコマンドＣｍｄにおいてアドレスＡｄｒが伴われている場合、そのアドレスＡｄｒに対するアドレス値の差分が、今回のコマンドＣｍｄに伴っていてもよい。また前回のコマンドＣｍｄが書き込み命令であって書き込みデータＤｔｗが随伴しており、今回のコマンドＣｍｄも書き込み命令であって前回の書き込みデータＤｔｗに対する値の差分が、今回のコマンドＣｍｄに随伴してもよい。
【００３１】
スクランブル／デスクランブル部２１はシフトレジスタ制御回路２１１、セレクタ２１２、演算部２１３、キー生成部２１４を備えている。キー生成部２１４は、図中では四角の配列で模式的に図示されている）シフトレジスタ群を有しており、これらはスクランブル／デスクランブルに用いられるスクランブル用キー（以下、単に「キー」と称す）ｑ０〜ｑ７を生成する。
【００３２】
セレクタ２１２は入出力部２２を介して与えられるスクランブル済みの信号ＩＯと、読み出しデータＤｔｒとが与えられる。半導体メモリ２が上述の第１の機能、第２の機能を発揮する場合にそれぞれ対応して、セレクタ２１２はスクランブル済みの信号ＩＯ、読み出しデータＤｔｒを選択し、これらの内で選択されたものが被処理信号ｐ０〜ｐ７として演算部２１３及びシフトレジスタ制御回路２１１に与えられる。
【００３３】
演算部２１３にはキーｑ０〜ｑ７及び被処理信号ｐ０〜ｐ７が与えられる。半導体メモリ２が上述の第１の機能を発揮する場合には被処理信号ｐ０〜ｐ７はデスクランブルの対象であり、演算部２１３の出力データｓ０〜ｓ７はデスクランブルされたコマンドＣｍｄ、書き込みデータＤｔｗ、あるいはアドレスＡｄｒとなる。半導体メモリ２が上述の第２の機能を発揮する場合には被処理信号ｐ０〜ｐ７はスクランブルの対象であり、演算部２１３の出力データｓ０〜ｓ７は読み出しデータＤｔｒをスクランブルして得ることができ、入出力部２２及びシフトレジスタ制御回路２１１に与えられる。演算部２１３は８ビットをパラレルで処理し、例えばキーｑ０〜ｑ７及び被処理信号ｐ０〜ｐ７のビット毎の排他的論理和を演算する。
【００３４】
このように演算部２１３ではキーｑ０〜ｑ７を用いて排他的論理和を演算することにより、スクランブル処理とデスクランブル処理とで共通のキーｑ０〜ｑ７を用いることができる。
【００３５】
半導体メモリ２が上述の第２の機能を発揮する場合には、入出力部２２を介して出力データｓ０〜ｓ７はホスト機器１へと与えられる。
【００３６】
キー生成部２１４におけるキーｑ０〜ｑ７の生成方法は、シフトレジスタ制御回路２１１で生成されるシフト制御信号によって更新される。そしてシフト制御信号は、シフトレジスタ制御回路２１１に与えられる四者のうちの少なくとも二つから選択される少なくとも一つが所定の条件を満足することを契機として活性化する。この四者とは、(i)入力部２２、セレクタ２１２を介してホスト機器１から得られるスクランブル済みの信号ＩＯ、(ii)デスクランブルの後にコマンド判定部から得られるコマンドＣｍｄ、(iii)セレクタ２１２を介してメモリアレイ２６から得られる読み出しデータＤｔｒ、(iv)演算部２１３で読み出しデータＤｔｒをスクランブルして得られる出力データｓ０〜ｓ７である。
【００３７】
シフトレジスタ制御回路２１１にはこれら四者が全て与えられる必要はない。例えばシフトレジスタ制御回路２１１はスクランブル済みの信号ＩＯ、出力データｓ０〜ｓ７を受け、これらの二つの少なくともいずれかを選択し、選択されたものが所定の条件を満足することを契機としてシフト制御信号を活性化させればよい。当該選択が可能となることにより、スクランブルの実効性が高まる。なお、この選択は経時的に変更してもよい。
【００３８】
図４はこれら四者の流れを示すブロック図であり、半導体メモリ２の構造自体は図１のそれと同じである。但し、図４ではこれら四者の流れを太線で示している。
【００３９】
上記四者は見方を変えれば纏めて把握することもできる。例えばスクランブル済みの信号ＩＯとして、ホスト機器１から得られるもの（上記(i)に相当）と、ホスト機器１へと与えるもの（上記(iv)に相当）とを纏めて把握することができる。また読み出しデータＤｔｒとして、スクランブル前のもの（上記(iii)に相当）と、スクランブル済みのもの（上記(iv)に相当）とを纏めて把握することができる。
【００４０】
被処理信号ｐ０〜ｐ７がシフトレジスタ制御回路２１１に与えられるので、シフト制御信号を活性化してキーｑ０〜ｑ７の生成方法を更新する契機を決定する基準としては、少なくともスクランブル済みの信号ＩＯを選択することができる。
【００４１】
例えばスクランブル済みの信号ＩＯが所定の値を採ることを契機として、シフト制御信号が活性化する。あるいは読み出しデータＤｔｒが所定の値を採ることを契機としてもよい。あるいはコマンドＣｍｄが所定の条件を満足したことを契機として、シフト制御信号が活性化する。所定の条件とは「コマンドＣｍｄが読み出し命令である」あるいは「所定の条件が前回満足されてから１０回目のコマンドＣｍｄである」、を例挙することができる。
【００４２】
その他、図示は省略するが、書き込みデータＤｔｗ、あるいはアドレスＡｄｒなど、デスクランブルされた情報が所定の条件を満足したことを契機として、シフト制御信号が活性化してもよい。例えば書き込みデータＤｔｗが所定の値を採ること、アドレスＡｄｒが所定の値を採ることを契機としてもよい。
【００４３】
シフトレジスタ制御回路２１１においては、前記四者のうちの少なくとも二つのいずれかが所定の条件を採ることを検出するが、かかる処理はハードウェアで実現するのみならず、ソフトウェアで実現してもよい。かかるソフトウェアは、半導体メモリにおいて通常設けられる不図示のＣＰＵによって実行してもよい。
【００４４】
ホスト機器１が備えるスクランブル／デスクランブル部１１についても同様の構成、機能を与えることができる。そしてスクランブル／デスクランブル部２１においてスクランブル／デスクランブルに用いられるキーｑ０〜ｑ７と同じキーを用いて、スクランブル／デスクランブル部１１においてそれぞれデスクランブル／スクランブルが実行される。
【００４５】
よってホスト機器１と半導体メモリ２との間ではキーｑ０〜ｑ７の授受がなされるか、あるいはキーｑ０〜ｑ７を生成するための情報（例えば下記で詳述する初期値など）の授受がなされるか、もしくは同期して同一のキーｑ０〜ｑ７を生成することが望ましい。例えばホスト機器１と半導体メモリ２との間でのキーｑ０〜ｑ７の授受や、キーｑ０〜ｑ７の生成の同期においてはスクランブルしない情報を両者間で授受しても良い。その場合には入出力部２２から入力した、スクランブルされていない情報をコマンド判定部２４に与える必要がある。
【００４６】
そこで半導体メモリ２はセレクタ２３を更に備えており、入出力部２２から入力した情報がスクランブル済みの信号ＩＯである場合には出力データｓ０〜ｓ７を選択し、入出力部２２から入力した情報がスクランブルされていない情報である場合にはこれを選択し、いずれもコマンド判定部２４に与える。
【００４７】
例えば電源オン直後のいわゆるパワーオンリセットが発生した場合には、一旦ホスト機器１から、シフト制御信号をデフォルト値に設定するためのコマンドを送ることとし、そのときにはセレクタは入出力部２２から入力した情報を選択してこれをコマンド判定部２４に与えることができる。これにより、キーｑ０〜ｑ７が一旦はデフォルト値に設定され、その後は上述したシフト制御信号の活性化により、キーｑ０〜ｑ７の生成方法が更新される。
【００４８】
ホスト機器１と半導体メモリ２との間では、上記したキーｑ０〜ｑ７の授受や、シフト制御信号をデフォルト値に設定するためのコマンドの授受を除き、原則的にはスクランブルされた情報が授受される。もちろん、キーｑ０〜ｑ７の授受あるいはその生成に用いられる初期値を、スクランブル済みの信号ＩＯとして授受し、それまでに用いられていたキーｑ０〜ｑ７を用いてデスクランブルしてもよい。
【００４９】
あるいは当該初期値はその一部分が予め、ホスト機器１と半導体メモリ２とでデフォルト値に設定されており、残りの部分を暗号化してホスト機器１から半導体メモリ２へと送信してもよい。当該暗号化は上記スクランブルとは別個の周知の暗号化技術を採用することができる。
【００５０】
このようにしてホスト機器１と半導体メモリ２とは、スクランブルされた情報が授受されるデータ授受システムを構成し、両者で授受される情報が不正に取得されることを回避している。
【００５１】
以上のようにして、スクランブル用キーの生成方法を更新するタイミングを決定する基準を複数準備することにより、スクランブル用キーの生成方法のランダムさの実効性を高めることができる。以下ではこのランダムさの例を挙げる。
【００５２】
［初期値のランダム化］
第１の実施の形態．
図５はキー生成部２１４（図１参照）の構成を例示する回路図である。キー生成部２１４はＭ系列（Maximum length sequence）乱数発生回路２１４Ａと、８ビットのシフトレジスタ群１３０とを備えている。またＭ系列乱数発生回路２１４Ａは５ビットのシフトレジスタ群１０と、帰還回路１２１とを備えている。
【００５３】
シフトレジスタ群１０は直列に接続された１ビットのシフトレジスタ１００〜１０４を有しており、それぞれがビット値ａ０〜ａ４を出力する。そしてシフトレジスタ１０４、１０３，１０２，１０１はそれぞれビット値ａ４，ａ３，ａ２，ａ１をシフトレジスタ１０３，１０２，１０１，１００に出力する。
【００５４】
シフトレジスタ１００はビット値ａ０を帰還回路１２１の入力側に供給し、シフトレジスタ１０４は帰還回路１２１から出力されたビット値を入力する。
【００５５】
帰還回路１２１は演算子１０５〜１０７を有している。演算子１０５はビット値ａ０，ａ１の排他的論理和を出力し、演算子１０６は演算子１０５の出力とビット値ａ２との排他的論理和を出力し、演算子１０７は演算子１０６の出力とビット値ａ３との排他的論理和を出力する。そしてシフトレジスタ１０４は演算子１０７の出力を入力する。
【００５６】
よってＭ系列乱数発生回路２１４Ａは特性方程式Ｆ（ｘ）＝ｘ5＋ｘ3＋ｘ2＋ｘ＋１に基づいて構成されている。ここでは一度にシフトされるビットは１ビットである場合を例示するが、より複数のビットを一度にシフトしてもよい。
【００５７】
シフトレジスタ制御回路２１１からは活性化したシフト制御信号として、初期値ｂ０〜ｂ４がシフトレジスタ１００〜１０４に与えられる。初期値ｂ０〜ｂ４は、例えばスクランブル済みの信号ＩＯの値を採用しても良い。もちろん、初期値ｂ０〜ｂ４は常時与えられ続けるのではなく、シフト制御信号が活性化する契機となったときのみシフトレジスタ１００〜１０４に与えられる。
【００５８】
図６はシフトレジスタ群１３０、演算部２１３の構成及び接続関係を示す回路図である。シフトレジスタ群１３０は直列に接続された１ビットのシフトレジスタ１１０〜１１７を有し、この順にシフトレジスタ群１０からの出力が順にシフトされる。そしてシフトレジスタ１１０〜１１７のそれぞれが格納する値が、キーｑ０〜ｑ７となって演算部２１３に与えられる。
【００５９】
演算部２１３は８個の演算子を有しており、キーｑｉと被処理信号ｐｉ（ｉ＝０〜７）の排他的論理和が出力データｓｉとして出力される。
【００６０】
Ｍ系列の疑似乱数の性質上、特性方程式が同じであれば、複数回のシフトを行って得られる疑似乱数を、初期値を変更することにより得ることができる。但し例外的に、全ての初期値が“０”となってしまう場合には、キーｑｉもすべて“０”となってしまい、スクランブルの効果が実質的には見込めない。しかしながら、シフト制御信号があらためて活性化すれば、初期値ｂ０〜ｂ４は例えばそのときのスクランブル済みの信号ＩＯの値で更新される。よってスクランブルの効果が得られるようになると考えられる。
【００６１】
もちろん、初期値ｂ０〜ｂ４はスクランブル済みの信号ＩＯの値以外にも、他の値、例えばコマンドＣｍｄ、アドレスＡｄｒ、書き込みデータＤｔｗの値、出力データｓ０〜ｓ７の一部を採用してもよい。あるいは別途に他の疑似乱数を発生する機構を採用し、当該疑似乱数を用いて初期値ｂ０〜ｂ４を設定してもよい。
【００６２】
第２の実施の形態．
図７はキー生成部２１４（図１参照）の構成を例示する回路図である。キー生成部２１４は第１の実施の形態で示されたＭ系列乱数発生回路２１４Ａ及びシフトレジスタ群１３０と、他のＭ系列乱数発生回路２１４Ｂと、演算子９０１とを備えている。
【００６３】
Ｍ系列乱数発生回路２１４Ｂは、５ビットのシフトレジスタ群２０と、帰還回路１２２とを備えている。
【００６４】
シフトレジスタ群２０は直列に接続された１ビットのシフトレジスタ２００〜２０４を有しており、それぞれがビット値ｆ０〜ｆ４を出力する。そしてシフトレジスタ２０４、２０３，２０２，２０１はそれぞれビット値ｆ４，ｆ３，ｆ２，ｆ１をシフトレジスタ２０３，２０２，２０１，２００に出力する。
【００６５】
シフトレジスタ２００はビット値ｆ０を帰還回路１２２の入力側に供給し、シフトレジスタ２０４は帰還回路１２２から出力されたビット値を入力する。
【００６６】
帰還回路１２２は演算子２０５〜２０７を有している。演算子２０５はビット値ｆ０，ｆ１の排他的論理和を出力し、演算子２０６は演算子２０５の出力とビット値ｆ２との排他的論理和を出力し、演算子２０７は演算子２０６の出力とビット値ｆ４との排他的論理和を出力する。そしてシフトレジスタ２０４は演算子２０７の出力を入力する。
【００６７】
よってＭ系列乱数発生回路２１４Ｂは特性方程式Ｆ（ｘ）＝ｘ5＋ｘ4＋ｘ2＋ｘ＋１に基づいて構成されている。ここでは一度にシフトされるビットは１ビットである場合を例示するが、より複数のビットを一度にシフトしてもよい。
【００６８】
演算子９０１はビット値ａ０，ｆ０の排他的論理和を生成し、シフトレジスタ群１３０に出力する。よって演算子９０１からはＧｏｌｄ系列の疑似乱数が得られることになる。
【００６９】
シフトレジスタ制御回路２１１からは活性化したシフト制御信号として、初期値ｂ０〜ｂ４がシフトレジスタ１００〜１０４に、初期値ｄ０〜ｄ４がシフトレジスタ２００〜２０４に、それぞれ与えられる。初期値ｂ０〜ｂ４，ｄ０〜ｄ４は、例えばスクランブル済みの信号ＩＯの値を採用しても良い。もちろん、初期値ｂ０〜ｂ４，ｄ０〜ｄ４は常時与えられ続けるのではなく、シフト制御信号が活性化する契機となったときのみシフトレジスタ１００〜１０４、２００〜２０４に与えられる。
【００７０】
Ｇｏｌｄ系列の疑似乱数の性質上、特性方程式が同じであっても、初期値を変更すると異なる系列の疑似乱数を発生する。よってより一層、スクランブルの方法が外部からはわかりにくくできる。
【００７１】
［乱数発生系列の変更］
第３の実施の形態．
図８はキー生成部２１４（図１参照）の構成を例示する回路図である。キー生成部２１４はＭ系列乱数発生回路２１４Ｃと、第１の実施の形態で示されたシフトレジスタ群１３０とを備えている。またＭ系列乱数発生回路２１４Ｃは第１の実施の形態で示されたシフトレジスタ群１０と、帰還回路１２３とを備えている。
【００７２】
帰還回路１２３は演算子１０５〜１０８と、セレクタ１４１，１４２とを有している。演算子１０５はビット値ａ０，ａ１の排他的論理和を出力し、演算子１０６はセレクタ１４１の出力とビット値ａ２との排他的論理和を出力し、演算子１０７は演算子１０６の出力とビット値ａ３との排他的論理和を出力し、演算子１０８は演算子１０７の出力とビット値ａ４との排他的論理和を出力する。
【００７３】
セレクタ１４１は選択信号ｓｅｌ１が“０”，“１”である場合に応じて、それぞれビット値ａ０及び演算子１０５の出力を選択して出力する。セレクタ１４２は選択信号ｓｅｌ２が“０”，“１”である場合に応じて、それぞれ演算子１０７の出力及び演算子１０８の出力を選択して出力する。そしてシフトレジスタ１０４はセレクタ１４２の出力を入力する。
【００７４】
よってＭ系列乱数発生回路２１４Ｃは選択信号ｓｅｌ１，ｓｅｌ２の値によって、異なる特性方程式に基づいて動作する。具体的には選択信号ｓｅｌ１，ｓｅｌ２がそれぞれ“１”、“０”を採る場合には、Ｍ系列乱数発生回路２１４Ｃは第１の実施の形態で示されたＭ系列乱数発生回路２１４Ａと同様に、その特性方程式はＦ（ｘ）＝ｘ5＋ｘ3＋ｘ2＋ｘ＋１となる。また選択信号ｓｅｌ１，ｓｅｌ２がそれぞれ“０”、“１”を採る場合には、Ｍ系列乱数発生回路２１４Ｃの特性方程式はＦ（ｘ）＝ｘ5＋ｘ4＋ｘ3＋ｘ2＋１となる。
【００７５】
そして選択信号ｓｅｌ１，ｓｅｌ２は、シフトレジスタ制御回路２１１からの活性化したシフト制御信号として出力される。従って、スクランブル用キーの生成のための処理を更新するに際して、Ｍ系列の疑似乱数の特性方程式を異ならせ、ランダムさの実効性を高めることができる。
【００７６】
第４の実施の形態．
図９はキー生成部２１４（図１参照）の構成を例示する回路図である。キー生成部２１４は第３の実施の形態で示されたＭ系列乱数発生回路２１４Ｃと、第１の実施の形態で示されたシフトレジスタ群１３０と、Ｍ系列乱数発生回路２１４Ｄと、演算子９０１とを備えている。またＭ系列乱数発生回路２１４Ｄは第２の実施の形態で示されたシフトレジスタ群２０と、帰還回路１２４とを備えている。
【００７７】
帰還回路１２４は演算子２０５〜２０８と、セレクタ１４３，１４４とを有している。演算子２０５はビット値ｆ０，ｆ１の排他的論理和を出力し、演算子２０６はビット値ｆ１，ｆ２の排他的論理和を出力し、演算子２０７はセレクタ１４３の出力とビット値ｆ３との排他的論理和を出力し、演算子２０８はセレクタ１４４の出力とビット値ｆ４との排他的論理和を出力する。
【００７８】
セレクタ１４３は選択信号ｓｅｌ１が“０”，“１”である場合に応じて、それぞれ演算子２０５の出力及び演算子２０６の出力を選択して出力する。セレクタ１４４は選択信号ｓｅｌ２が“０”，“１”である場合に応じて、それぞれセレクタ１４３の出力及び演算子２０７の出力を選択して出力する。そしてシフトレジスタ２０４は演算子２０８の出力を入力する。
【００７９】
よってＭ系列乱数発生回路２１４Ｄは選択信号ｓｅｌ１，ｓｅｌ２の値によって、異なる特性方程式に基づいて動作する。具体的には選択信号ｓｅｌ１，ｓｅｌ２がそれぞれ“１”、“０”を採る場合には、Ｍ系列乱数発生回路２１４Ｃは第２の実施の形態で示されたＭ系列乱数発生回路２１４Ｂと同様に、その特性方程式はＦ（ｘ）＝ｘ5＋ｘ4＋ｘ2＋ｘ＋１となる。また選択信号ｓｅｌ１，ｓｅｌ２がそれぞれ“０”、“１”を採る場合には、Ｍ系列乱数発生回路２１４Ｄの特性方程式はＦ（ｘ）＝ｘ5＋ｘ4＋ｘ3＋ｘ＋１となる。
【００８０】
演算子９０１はビット値ａ０，ｆ０の排他的論理和を生成し、シフトレジスタ群１３０へと出力する。
【００８１】
よって本実施の形態におけるキー生成部２１４はＧｏｌｄ系列乱数発生回路として機能し、選択信号ｓｅｌ１，ｓｅｌ２がそれぞれ“１”、“０”を採る場合には、特性方程式Ｆ（ｘ）＝（ｘ5＋ｘ3＋ｘ2＋ｘ＋１）・（ｘ5＋ｘ4＋ｘ2＋ｘ＋１）に基づいて動作する。また選択信号ｓｅｌ１，ｓｅｌ２がそれぞれ“０”、“１”を採る場合には、特性方程式Ｆ（ｘ）＝（ｘ5＋ｘ4＋ｘ3＋ｘ2＋１）・（ｘ5＋ｘ4＋ｘ3＋ｘ＋１）に基づいて動作する。
【００８２】
第３の実施の形態で述べたように、選択信号ｓｅｌ１，ｓｅｌ２は、シフトレジスタ制御回路２１１からの活性化したシフト制御信号として出力される。従って、スクランブル用キーの生成のための処理を更新するに際して、Ｇｏｌｄ系列の疑似乱数の特性方程式を異ならせ、ランダムさの実効性を高めることができる。
【００８３】
［シフトビット数の変更］
第５の実施の形態．
図１０はキー生成部２１４（図１参照）の構成を例示する回路図である。キー生成部２１４は第１の実施の形態で示されたシフトレジスタ群１０と、帰還回路１２５と、演算回路１３１とを備えたＭ系列乱数発生回路２１４Ｅで構成されている。
【００８４】
帰還回路１２５はシフトレジスタ群１０からビット値ａ０〜ａ４を入力し、初期値ｂ０〜ｂ４を生成して、それぞれのシフトレジスタ１００〜１０４に与える。演算回路１３１はビット値ａ０〜ａ４を入力し、キーｑ０〜９７となる８ビットの値ｃ０〜ｃ７を出力する。
【００８５】
選択信号ｓｅｌは、シフトレジスタ制御回路２１１からの活性化したシフト制御信号として帰還回路１２５と演算回路１３１とに出力される。
【００８６】
図１１は帰還回路１２５の構成を示す回路である。演算子５０１，５０２，５０３はビット値ａ０，ａ１の排他的論理和を求めて出力する。演算子５０４，５０５，５０６はビット値ａ１，ａ２の排他的論理和を求めて出力する。演算子５０７はビット値ａ２，ａ３の排他的論理和を求めて出力する。演算子５０８はビット値ａ３と、演算子５０２の出力との排他的論理和を求めて出力する。演算子５０９はビット値ａ０，ａ３の排他的論理和を求めて出力する。演算子５１０はビット値ａ３，ａ４の排他的論理和を求めて出力する。演算子５１１はビット値ａ４と、演算子５０４の出力との排他的論理和を求めて出力する。演算子５１２，５３０はビット値ａ１，ａ４の出力の排他的論理和を求めて出力する。演算子５１３はビット値ａ４と、演算子５０６の出力との排他的論理和を求めて出力する。
【００８７】
セレクタ３００は演算子５０９，５１３のいずれかの出力を初期値ｂ０として出力する。具体的には選択信号ｓｅｌが値“０”を採る場合には、演算子５０９の出力、即ちビット値ａ０，ａ３の排他的論理和を出力する。また選択信号ｓｅｌが値“１”を採る場合には、演算子５１３の出力、即ちビット値ａ１，ａ２，ａ４の排他的論理和を出力する。
【００８８】
セレクタ３０１は演算子５１２，５０３のいずれかの出力を初期値ｂ１として出力する。具体的には選択信号ｓｅｌが値“０”を採る場合には、演算子５１２の出力、即ちビット値ａ１，ａ４の排他的論理和を出力する。また選択信号ｓｅｌが値“１”を採る場合には、演算子５０３の出力、即ちビット値ａ０，ａ１の排他的論理和を出力する。
【００８９】
セレクタ３０２は演算子５０８，５０５のいずれかの出力を初期値ｂ２として出力する。具体的には選択信号ｓｅｌが値“０”を採る場合には、演算子５０８の出力、即ちビット値ａ０，ａ１，ａ３の排他的論理和を出力する。また選択信号ｓｅｌが値“１”を採る場合には、演算子５０５の出力、即ちビット値ａ１，ａ２の排他的論理和を出力する。
【００９０】
セレクタ３０３は演算子５１１，５０７のいずれかの出力を初期値ｂ３として出力する。具体的には選択信号ｓｅｌが値“０”を採る場合には、演算子５１１の出力、即ちビット値ａ１，ａ２，ａ４の排他的論理和を出力する。また選択信号ｓｅｌが値“１”を採る場合には、演算子５０７の出力、即ちビット値ａ２，ａ３の排他的論理和を出力する。
【００９１】
セレクタ３０４は演算子５０１，５１０のいずれかの出力を初期値ｂ４として出力する。具体的には選択信号ｓｅｌが値“０”を採る場合には、演算子５０１の出力、即ちビット値ａ０，ａ１の排他的論理和を出力する。また選択信号ｓｅｌが値“１”を採る場合には、演算子５１０の出力、即ちビット値ａ３，ａ４の排他的論理和を出力する。
【００９２】
図１２は演算回路１３１の構成を示す回路である。演算子５１４，５１５，５１６，５１７，５１８はビット値ａ０，ａ１の排他的論理和を求めて出力する。演算子５１９はビット値ａ２と、演算子５１４の出力との排他的論理和を求めて出力する。演算子５２０，５２２はビット値ａ１，ａ２の排他的論理和を求めて出力する。演算子５２１はビット値ａ２と、演算子５１５の出力との排他的論理和を求めて出力する。演算子５２３はビット値ａ３と、演算子５１９の出力との排他的論理和を求めて出力する。演算子５２４はビット値ａ３と、演算子５２０の出力との排他的論理和を求めて出力する。演算子５２５はビット値ａ０，ａ３の排他的論理和を求めて出力する。演算子５２６はビット値ａ３と、演算子５２１の出力との排他的論理和を求めて出力する。演算子５２７はビット値ａ３と、演算子５２２の出力との排他的論理和を求めて出力する。演算子５２８はビット値ａ３と、演算子５１６の出力との排他的論理和を求めて出力する。演算子５２９はビット値ａ４と、演算子５２４の出力との排他的論理和を求めて出力する。演算子５３１はビット値ａ４と、演算子５２７の出力との排他的論理和を求めて出力する。演算子５３２はビット値ａ４と、演算子５１７の出力との排他的論理和を求めて出力する。演算子５３３はビット値ａ４と、演算子５１８の出力との排他的論理和を求めて出力する。
【００９３】
上記の構成を有することにより、キー生成回路２１４Ｅは特性方程式Ｆ（ｘ）＝ｘ5＋ｘ3＋ｘ2＋ｘ＋１に基づいたＭ系列の疑似乱数を発生する。選択信号ｓｅｌが値“０”を採る場合には、初期値ｂ０〜ｂ４はそれぞれ、ビット値ａ０，ａ３の排他的論理和、ビット値ａ１，ａ４の排他的論理和、ビット値ａ０，ａ１，ａ３の排他的論理和、ビット値ａ１，ａ２，ａ４の排他的論理和、ビット値ａ０，ａ１の排他的論理和を採る。これらの値は、特性方程式Ｆ（ｘ）＝ｘ5＋ｘ3＋ｘ2＋ｘ＋１に基づいたＭ系列の疑似乱数において、シフトレジスタ１００〜１０４を８ビット分シフトした値に相当する。即ち、選択信号ｓｅｌが値“０”を採る場合には、シフトビット数が８のＭ系列の疑似乱数が発生される。
【００９４】
因みに、選択信号ｓｅｌが値“０”を採る場合には、８ビットの値ｃ０〜ｃ７はそれぞれ、ビット値ａ０，ａ１，ａ４の排他的論理和、ビット値ａ１，ａ２，ａ３，ａ４の排他的論理和、ビット値ａ０，ａ１，ａ２，ａ３の排他的論理和、ビット値ａ４、ビット値ａ３、ビット値ａ２、ビット値ａ１、ビット値ａ０を採る。
【００９５】
選択信号ｓｅｌが値“１”を採る場合には、初期値ｂ０〜ｂ４はそれぞれ、ビット値ａ１，ａ２，ａ４の排他的論理和、ビット値ａ０，ａ１の排他的論理和、ビット値ａ１，ａ２の排他的論理和、ビット値ａ２，ａ３の排他的論理和、ビット値ａ３，ａ４の排他的論理和を採る。これらの値は、特性方程式Ｆ（ｘ）＝ｘ5＋ｘ3＋ｘ2＋ｘ＋１に基づいたＭ系列の疑似乱数において、シフトレジスタ１００〜１０４を１１ビット分シフトした値に相当する。即ち、選択信号ｓｅｌが値“１”を採る場合には、シフトビット数が１１のＭ系列の疑似乱数が発生される。
【００９６】
因みに、選択信号ｓｅｌが値“１”を採る場合には、８ビットの値ｃ０〜ｃ７はそれぞれ、ビット値ａ０，ａ１，ａ３の排他的論理和、ビット値ａ１，ａ４の排他的論理和、ビット値ａ０，ａ３の排他的論理和、ビット値ａ０，ａ１，ａ４の排他的論理和、ビット値ａ１，ａ２，ａ３，ａ４の排他的論理和、ビット値ａ０，ａ１，ａ２，ａ３の排他的論理和、ビット値ａ４、ビット値ａ３を採る。
【００９７】
選択信号ｓｅｌは、シフトレジスタ制御回路２１１からの活性化したシフト制御信号として出力される。従って、スクランブル用キーの生成のための処理を更新するに際して、Ｍ系列の疑似乱数のシフトビット数を異ならせ、ランダムさの実効性を高めることができる。
【００９８】
なお、シフトビット数はＭ系列の疑似乱数の周期と互いに素であることが望ましい。両者が１以外の公約数を有した場合には、ランダムさの実効性が損なわれるからである。
【００９９】
第６の実施の形態．
図１３はキー生成部２１４（図１参照）の構成を例示する回路図である。キー生成部２１４は第５の実施の形態で示されたＭ系列乱数発生回路２１４Ｅと、Ｍ系列乱数発生回路２１４Ｆと、合成部１３５とを備えている。Ｍ系列乱数発生回路２１４Ｆは、第２の実施の形態で示されたシフトレジスタ群２０と、帰還回路１２６と、演算回路１３２とを備えている。
【０１００】
選択信号ｓｅｌは、シフトレジスタ制御回路２１１からの活性化したシフト制御信号としてＭ系列乱数発生回路２１４Ｅと、帰還回路１２６と、演算回路１３２とに出力される。Ｍ系列乱数発生回路２１４Ｅの動作は第５の実施の形態で説明したので、本実施の形態では割愛する。但し、本実施の形態では８ビットの値ｃ０〜ｃ７はキーｑ０〜ｑ７を得るための出力前駆値として機能する。
【０１０１】
帰還回路１２６はシフトレジスタ群２０からビット値ｆ０〜ｆ４を入力し、初期値ｄ０〜ｄ４を生成して、それぞれのシフトレジスタ２００〜２０４に与える。演算回路１３２はビット値ｆ０〜ｆ４を入力し、８ビットの出力前駆値ｅ０〜ｅ７を出力する。
【０１０２】
合成部１３５は出力前駆値ｃ０〜ｃ７と出力前駆値ｅ０〜ｅ７との排他的論理和をビット毎に生成し、これをキーｑ０〜ｑ７として出力する。よって本実施の形態においてはＭ系列乱数発生回路２１４Ｅ，２１４Ｆは、キーｑ０〜ｑ７を生成するのではなく、二組の出力前駆値を生成する。これら二組の出力前駆値の排他的論理和を生成することによって、スクランブル／デスクランブルのキーが生成される。
【０１０３】
換言すれば、第５の実施の形態は、出力前駆値ｅ０〜ｅ７が全てゼロであると見れば、本実施の形態の変形として捉えることができる。
【０１０４】
図１４は帰還回路１２６の構成を示す回路である。具体的には演算子７０１，７０２はビット値ｆ０，ｆ１の排他的論理和を求めて出力する。演算子７０３はビット値ｆ０，ｆ２の排他的論理和を求めて出力する。演算子７０４はビット値ｆ２と、演算子７０２の出力との排他的論理和を求めて出力する。演算子７０５はビット値ｆ０，ｆ３の排他的論理和を求めて出力する。演算子７０６はビット値ｆ３と、演算子７０４の出力との排他的論理和を求めて出力する。演算子７０７はビット値ｆ４と、演算子７０３の出力との排他的論理和を求めて出力する。演算子７０８はビット値ｆ０，ｆ３の排他的論理和を求めて出力する。演算子７０９，７１４はビット値ｆ１，ｆ４の排他的論理和を求めて出力する。演算子７１０はビット値ｆ１，ｆ３の排他的論理和を求めて出力する。演算子７１１はビット値ｆ０，ｆ４の排他的論理和を求めて出力する。演算子７１２はビット値ｆ４と、演算子７０１の出力との排他的論理和を求めて出力する。演算子７１３はビット値ｆ４と、演算子７０６の出力との排他的論理和を求めて出力する。演算子７１５はビット値ｆ２，ｆ４の排他的論理和を求めて出力する。
【０１０５】
セレクタ６００は演算子７１０，７０８のいずれかの出力をシフトレジスタ設定値ｄ０として出力する。具体的には選択信号ｓｅｌが値“０”を採る場合には、演算子７１０の出力、即ちビット値ｆ１，ｆ３の排他的論理和を出力する。また選択信号ｓｅｌが値“１”を採る場合には、演算子７０８の出力、即ちビット値ｆ０，ｆ３の排他的論理和を出力する。
【０１０６】
セレクタ６０１は演算子７１５，７１４のいずれかの出力をシフトレジスタ設定値ｄ１として出力する。具体的には選択信号ｓｅｌが値“０”を採る場合には、演算子７１５の出力、即ちビット値ｆ２，ｆ４の排他的論理和を出力する。また選択信号ｓｅｌが値“１”を採る場合には、演算子７１４の出力、即ちビット値ｆ１，ｆ４の排他的論理和を出力する。
【０１０７】
セレクタ６０２は演算子７１３，７１２のいずれかの出力をシフトレジスタ設定値ｄ２として出力する。具体的には選択信号ｓｅｌが値“０”を採る場合には、演算子７１３の出力、即ちビット値ｆ０，ｆ１，ｆ２，ｆ３，ｆ４の排他的論理和を出力する。また選択信号ｓｅｌが値“１”を採る場合には、演算子７１２の出力、即ちビット値ｆ０，ｆ１，ｆ４の排他的論理和を出力する。
【０１０８】
セレクタ６０３は演算子７０５，７１１のいずれかの出力をシフトレジスタ設定値ｄ３として出力する。具体的には選択信号ｓｅｌが値“０”を採る場合には、演算子７０５の出力、即ちビット値ｆ０，ｆ３の排他的論理和を出力する。また選択信号ｓｅｌが値“１”を採る場合には、演算子７１１の出力、即ちビット値ｆ０，ｆ４の排他的論理和を出力する。
【０１０９】
セレクタ６０４は演算子７０９，７０７のいずれかの出力をシフトレジスタ設定値ｄ４として出力する。具体的には選択信号ｓｅｌが値“０”を採る場合には、演算子７０９の出力、即ちビット値ｆ１，ｆ４の排他的論理和を出力する。また選択信号ｓｅｌが値“１”を採る場合には、演算子７０７の出力、即ちビット値ｆ０，ｆ２，ｆ４の排他的論理和を出力する。
【０１１０】
図１５は演算回路１３２の構成を示す回路である。演算子７１６はビット値ｆ０と、演算子７３１の出力との排他的論理和を求めて出力する。演算子７１７はビット値ｆ０と、演算子７２３の出力との排他的論理和を求めて出力する。演算子７１８，７２２はビット値ｆ０，ｆ２の排他的論理和を求めて出力する。演算子７１９はビット値ｆ０と、演算子７２５の出力との排他的論理和を求めて出力する。演算子７２０はビット値ｆ０と、演算子７３２の出力との排他的論理和を求めて出力する。演算子７２１はビット値ｆ０と、演算子７２６の出力との排他的論理和を求めて出力する。演算子７２３はビット値ｆ１と、演算子７２７の出力との排他的論理和を求めて出力する。演算子７２４はビット値ｆ１，ｆ３の排他的論理和を求めて出力する。演算子７２５はビット値ｆ１と、演算子７２８の出力との排他的論理和を求めて出力する。演算子７２６はビット値ｆ１と、演算子７２９の出力との排他的論理和を求めて出力する。演算子７２７，７２８，７３０はビット値ｆ２，ｆ４の排他的論理和を求めて出力する。演算子７２９はビット値ｆ２と、演算子７３３の出力との排他的論理和を求めて出力する。演算子７３１，７３２，７３３はビット値ｆ３，ｆ４の排他的論理和を求めて出力する。
【０１１１】
セレクタ８００は演算子７２２，７２１のいずれかの出力を出力前駆値ｅ０として出力する。具体的には選択信号ｓｅｌが値“０”を採る場合には、演算子７２２の出力、即ちビット値ｆ０，ｆ２の排他的論理和を出力する。また選択信号ｓｅｌが値“１”を採る場合には、演算子７２１の出力、即ちビット値ｆ０，ｆ１，ｆ２，ｆ３，ｆ４の排他的論理和を出力する。
【０１１２】
セレクタ８０１は演算子７２０，７３０のいずれかの出力を出力前駆値ｅ１として出力する。具体的には選択信号ｓｅｌが値“０”を採る場合には、演算子７２０の出力、即ちビット値ｆ０，ｆ３，ｆ４の排他的論理和を出力する。また選択信号ｓｅｌが値“１”を採る場合には、演算子７３０の出力、即ちビット値ｆ２，ｆ４の排他的論理和を出力する。
【０１１３】
セレクタ８０２は演算子７１９，７２４のいずれかの出力を出力前駆値ｅ２として出力する。具体的には選択信号ｓｅｌが値“０”を採る場合には、演算子７１９の出力、即ちビット値ｆ０，ｆ１，ｆ２，ｆ４の排他的論理和を出力する。また選択信号ｓｅｌが値“１”を採る場合には、演算子７２４の出力、即ちビット値ｆ１，ｆ３の排他的論理和を出力する。
【０１１４】
セレクタ８０３はビット値ｆ４の出力と、演算子７１８のいずれかの出力を出力前駆値ｅ３として出力する。具体的には選択信号ｓｅｌが値“０”を採る場合には、ビット値ｆ４に格納されていた値を出力する。また選択信号ｓｅｌが値“１”を採る場合には、演算子７１８の出力、即ちビット値ｆ０，ｆ２の排他的論理和を出力する。
【０１１５】
セレクタ８０４はビット値ｆ３の出力と、演算子７３１のいずれかの出力を出力前駆値ｅ４として出力する。具体的には選択信号ｓｅｌが値“０”を採る場合には、ビット値ｆ３に格納されていた値を出力する。また選択信号ｓｅｌが値“１”を採る場合には、演算子７３１の出力、即ちビット値ｆ０，ｆ３，ｆ４の排他的論理和を出力する。
【０１１６】
セレクタ８０５はビット値ｆ２の出力と、演算子７１７のいずれかの出力を出力前駆値ｅ５として出力する。具体的には選択信号ｓｅｌが値“０”を採る場合には、ビット値ｆ２に格納されていた値を出力する。また選択信号ｓｅｌが値“１”を採る場合には、演算子７１７の出力、即ちビット値ｆ０，ｆ１，ｆ２，ｆ４の排他的論理和を出力する。
【０１１７】
セレクタ８０６は、選択信号ｓｅｌが値“０”を採る場合にはビット値ｆ１に格納されていた値を、選択信号ｓｅｌが値“１”を採る場合にはビット値ｆ４に格納されていた値を、それぞれ出力前駆値ｅ６として出力する。
【０１１８】
セレクタ８０７は、選択信号ｓｅｌが値“０”を採る場合にはビット値ｆ０に格納されていた値を、選択信号ｓｅｌが値“１”を採る場合にはビット値ｆ３に格納されていた値を、それぞれ出力前駆値ｅ７として出力する。
【０１１９】
上記の構成を有することにより、Ｍ系列乱数発生回路２１４Ｆは特性方程式Ｆ（ｘ）＝ｘ5＋ｘ4＋ｘ2＋ｘ＋１に基づいたＭ系列の疑似乱数を発生する。選択信号ｓｅｌが値“０”を採る場合には、初期値ｄ０〜ｄ４はそれぞれ、ビット値ｆ１，ｆ３の排他的論理和、ビット値ｆ２，ｆ４の排他的論理和、ビット値ｆ０，ｆ１，ｆ２，ｆ３，ｆ４の排他的論理和、ビット値ｆ０，ｆ３の排他的論理和、ビット値ｆ１，ｆ４の排他的論理和を採る。
【０１２０】
これらの値は、特性方程式Ｆ（ｘ）＝ｘ5＋ｘ4＋ｘ2＋ｘ＋１に基づいたＭ系列の疑似乱数において、シフトレジスタ２００〜２０４を８ビット分シフトした値に相当する。即ち、選択信号ｓｅｌが値“０”を採る場合には、シフトビット数が８のＭ系列の疑似乱数が発生される。
【０１２１】
因みに、選択信号ｓｅｌが値“０”を採る場合には、出力前駆値ｅ０〜ｅ７はそれぞれ、ビット値ｆ０，ｆ２の排他的論理和、ビット値ｆ０，ｆ３，ｆ４の排他的論理和、ビット値ｆ０，ｆ１，ｆ２，ｆ４の排他的論理和、ビット値ｆ４、ビット値ｆ３、ビット値ｆ２、ビット値ｆ１、ビット値ｆ０を採る。
【０１２２】
選択信号ｓｅｌが値“１”を採る場合には、初期値ｄ０〜ｄ４はそれぞれ、ビット値ｆ０，ｆ３の排他的論理和、ビット値ｆ１，ｆ４の排他的論理和、ビット値ｆ０，ｆ１，ｆ４の排他的論理和、ビット値ｆ０，ｆ４の排他的論理和、ビット値ｆ０，ｆ２，ｆ４の排他的論理和を採る。
【０１２３】
これらの値は、特性方程式Ｆ（ｘ）＝ｘ5＋ｘ4＋ｘ2＋ｘ＋１に基づいたＭ系列の疑似乱数において、シフトレジスタ２００〜２０４を１１ビット分シフトした値に相当する。即ち、選択信号ｓｅｌが値“１”を採る場合には、シフトビット数が１１のＭ系列の疑似乱数が発生される。
【０１２４】
因みに、選択信号ｓｅｌが値“１”を採る場合には、出力前駆値ｅ０〜ｅ７はそれぞれ、ビット値ｆ０，ｆ１，ｆ２，ｆ３，ｆ４の排他的論理和、ビット値ｆ２，ｆ４の排他的論理和、ビット値ｆ１，ｆ３の排他的論理和、ビット値ｆ０，ｆ２の排他的論理和、ビット値ｆ０，ｆ３，ｆ４の排他的論理和、ビット値ｆ０，ｆ１，ｆ２，ｆ４の排他的論理和、ビット値ｆ４、ビット値ｆ３を採る。
【０１２５】
図１６は合成部１３５の構成を例示する回路図である。合成部１３５は８個の演算子を有し、そのそれぞれが一対の１ビットの排他的論理和を演算する。これら８個の演算子により、出力前駆値ｃ０〜ｃ７と出力前駆値ｅ０〜ｅ７との排他的論理和がビット毎に生成され、これらがキーｑ０〜ｑ７として出力される。
【０１２６】
よって本実施の形態におけるキー生成部２１４は特性方程式Ｆ（ｘ）＝（ｘ5＋ｘ3＋ｘ2＋ｘ＋１）・（ｘ5＋ｘ4＋ｘ2＋ｘ＋１）に基づいて動作するＧｏｌｄ系列乱数発生回路として機能する。そして選択信号ｓｅｌがそれぞれ“０”、“１”を採る場合に対応して、シフトビット数として８ビットと１１ビットとが採用される。
【０１２７】
選択信号ｓｅｌは、シフトレジスタ制御回路２１１からの活性化したシフト制御信号として出力される。従って、スクランブル用キーの生成のための処理を更新するに際して、Ｇｏｌｄ系列の疑似乱数のシフトビット数を異ならせ、ランダムさの実効性を高めることができる。
【０１２８】
［変形］
上記の説明ではＭ系列、Ｇｏｌｄ系列を用いて疑似乱数を発生させる技術を例示したが、本発明において採用される乱数はこれらの手法によるものには限定されない。これ以外の疑似乱数発生方法を採用し、［基本的な考え方］で述べたようなスクランブル用キーの生成方法を更新するタイミングを決定する基準を複数準備してもよい。
【図面の簡単な説明】
【０１２９】
【図１】この発明の一例であるスクランブル／デスクランブル技術が採用されるデータ授受システムの構成を概念的に示すブロック図である。
【図２】第１の機能を示すブロック図である。
【図３】第２の機能を示すブロック図である。
【図４】シフトレジスタ制御回路に与えられる四者の流れを示すブロック図である。
【図５】この発明の第１の実施の形態におけるキー生成部の構成を例示する回路図である。
【図６】この発明の第１の実施の形態におけるシフトレジスタ群、演算部の構成及び接続関係を示す回路図である。
【図７】この発明の第２の実施の形態におけるキー生成部の構成を例示する回路図である。
【図８】この発明の第３の実施の形態におけるキー生成部の構成を例示する回路図である。
【図９】この発明の第４の実施の形態におけるキー生成部の構成を例示する回路図である。
【図１０】この発明の第５の実施の形態におけるキー生成部の構成を例示する回路図である。
【図１１】この発明の第５の実施の形態における帰還回路の構成を示す回路図である。
【図１２】この発明の第５の実施の形態における演算回路の構成を示す回路図である。
【図１３】この発明の第６の実施の形態におけるキー生成部の構成を例示する回路図である。
【図１４】この発明の第６の実施の形態における帰還回路の構成を示す回路図である。
【図１５】この発明の第６の実施の形態における演算回路の構成を示す回路図である。
【図１６】この発明の第６の実施の形態における合成部の構成を例示する回路図である。
【符号の説明】
【０１３０】
１  ホスト機器
２  半導体メモリ
１１，２１  スクランブル／デスクランブル部
２６  メモリアレイ
２１１  シフトレジスタ制御回路
２１３  演算部
Ｄｔｒ  読み出しデータ
ｑ０〜ｑ７  キー
ｓ０〜ｓ７  出力データ
【図１】
2008010923.tif 000003
【図２】
2008010923.tif 000004
【図３】
2008010923.tif 000005
【図４】
2008010923.tif 000006
【図５】
2008010923.tif 000007
【図６】
2008010923.tif 000008
【図７】
2008010923.tif 000009
【図８】
2008010923.tif 000010
【図９】
2008010923.tif 000011
【図１０】
2008010923.tif 000012
【図１１】
2008010923.tif 000013
【図１２】
2008010923.tif 000014
【図１３】
2008010923.tif 000015
【図１４】
2008010923.tif 000016
【図１５】
2008010923.tif 000017
【図１６】
2008010923.tif 000018