(57)【特許請求の範囲】
【請求項１】
通信リンクを介して通信するよう構成され、そのうち、前記通信リンクはメモリデバイス及びプロセッサの間で複数の暗号化ビットの交換を行うのに用いられ、そのうち前記通信リンクを介して交換する前記暗号化ビットは、前記プロセッサにリアルタイム実行されるソフトウェアコードを含むインタフェースと、
カスケード方式により複数の平文ビットに対しストリーム暗号操作及び混合操作を行うことによって、前記平文ビットの第１ストリームを、前記通信リンクを介して交換される前記複数の暗号化ビットの第２ストリームに変換し、そのうち、前記混合操作は、前記平文ビットを前記混合操作の複数の入力ビットとして受け取り、前記入力ビットをガロア体演算することにより複数の出力ビットを生成し、且つ前記ストリーム暗号操作が、疑似ランダムシーケンスに基づき前記混合操作で生成された前記出力ビットに暗号化を行うことで前記暗号化ビットを生成することを含む論理回路と、
を含むデータ保護装置。
【請求項２】
前記論理回路は、少なくとも２つの相互接続される混合ステージを含み、少なくとも最初及び最後の混合ステージを含み、
前記各混合ステージは、複数のガロア体（Galois Field，GF）乗算器を含み、そのうち、前記論理回路は、前記最初の混合ステージの前記ガロア体乗算器において、前記入力ビットを分割し、前記最後の混合ステージの結果を組み合わせて前記出力ビットを生成することによって前記混合操作を行うよう構成される請求項１に記載のデータ保護装置。
【請求項３】
少なくとも１つの前記混合ステージ中の各前記ガロア体乗算器は、前記入力ビット又は前の混合ステージからの複数の被乗算ビットを受け取り、更に、相応する混合キーを受け取るよう構成され、そのうち、前記混合キーは、リモート機器中の対応する混合キーのガロア体乗算逆数であり、且つ前記リモート機器は、前記通信リンクの相対側に位置し、そのうち、前記論理回路は、各前記ガロア体乗算器中において、前記被乗算ビットを相応する前記混合キーに乗算することによって前記混合操作を行うよう構成される請求項２に記載のデータ保護装置。
【請求項４】
前記論理回路は、前記入力ビットをガロア体中の相応し且つ非定数の混合キーに乗算することによって前記混合操作を行うよう構成される請求項１に記載のデータ保護装置。
【請求項５】
前記論理回路は、相応する前記ガロア体中の前記混合キーを定数要素に乗算するか、前記定数要素のガロア体乗算逆数に乗算することによって、前記通信リンクの相対側のリモート機器と相互に協調して前記混合キーを繰り返し更新し、任意の与えられた時間において、前記混合キーが前記リモート機器に使用される対応混合キーの前記ガロア体乗算逆数となるよう構成される請求項４に記載のデータ保護装置。
【請求項６】
前記定数要素及び前記ガロア体乗算逆数は、それぞれ２及び２-1に等しく、且つ前記論理回路は、線形フィードバックシフトレジスタを使用して前記混合キーを生成するよう構成され、そのうち、前記線形フィードバックシフトレジスタは、シフト演算を使用してガロア体乗算演算を実施する請求項５に記載のデータ保護装置。
【請求項７】
前記論理回路は、前記混合キーを相応するガロア体中の２又は２-1の整数乗の数値に初期化し、初期混合キーが前記リモート機器に使用される対応初期混合キーの前記ガロア体乗算逆数となるよう構成される請求項６に記載のデータ保護装置。
【請求項８】
ホストコンピュータ及びメモリデバイスを含むシステムにより実行されるデータ保護方法であって、
通信リンクを介して複数の暗号化ビットを交換し、そのうち、前記通信リンクはメモリデバイス及びプロセッサの間を接続し、前記暗号化ビットの交換は、前記プロセッサにおいて、リアルタイム実行するソフトウェアコードを交換するステップと、
カスケード方式により複数の平文ビットに対しストリーム暗号操作及び混合操作を行うことによって、前記平文ビットの第１ストリームを、前記通信リンクを介して交換された前記暗号化ビットの第２ストリームに変換するステップと、を含み、
前記混合操作は、前記平文ビットを前記混合操作の複数の入力ビットとして受け取り、前記入力ビットをガロア体演算することにより複数の出力ビットを生成し、且つ前記ストリーム暗号操作が、疑似ランダムシーケンスに基づき前記混合操作で生成された前記出力ビットに暗号化を行うことで前記暗号化ビットを生成することを含む、データ保護方法。
【請求項９】
少なくとも２つの相互接続される混合ステージを提供するステップを含み、そのうち、少なくとも最初及び最後の混合ステージを含み、且つ各前記混合ステージは、複数のガロア体演算器を含み、
前記混合操作を行うステップは、前記最初の混合ステージの前記ガロア体乗算器において、前記入力ビットを分割し、前記最後の混合ステージの結果を組み合わせて前記出力ビットを生成するステップを含む請求項８に記載のデータ保護方法。
【請求項１０】
前記混合操作を行うステップは、
前記入力ビット又は前の混合ステージからの複数の被乗算ビット及び相応する混合キーを少なくとも１つの前記混合ステージ中の各前記ガロア体乗算器に提供するステップと、
各前記ガロア体乗算器において、前記被乗算ビットを相応する前記混合キーに乗算するステップとを含み、
前記混合キーは、リモート機器における対応混合キーのガロア体乗算逆数であり、且つ前記リモート機器は、前記通信リンクの相対側に位置する請求項９に記載のデータ保護方法。
【請求項１１】
前記混合操作を行うことは、
前記入力ビットをガロア体における相応し且つ非定数の混合キーに乗算することを含む請求項８に記載のデータ保護方法。
【請求項１２】
前記混合操作を行うステップは、
相応する前記ガロア体における前記混合キーを、定数要素に乗算するか、前記定数要素のガロア体乗算要素に乗算し、前記通信リンクの相対側のリモート機器と相互に協調して前記混合キーを繰り返し更新し、任意の与えられた時間において、前記混合キーが何れも前記リモート機器に使用される対応混合キーの前記ガロア体乗算逆数である請求項１１に記載のデータ保護方法。
【請求項１３】
前記定数要素及び前記ガロア体乗算逆数は、それぞれ２及び２-1に等しく、且つそのうち、前記混合操作を行うステップは、
線形フィードバックシフトレジスタを使用して前記混合キーを生成するステップを含み、そのうち、前記線形フィードバックシフトレジスタは、シフト演算を使用してガロア体乗算演算を実施する請求項１２に記載のデータ保護方法。
【請求項１４】
前記混合キーを更新することは、前記混合キーを相応するガロア体中の２又は２-1の整数乗の数値に初期化し、初期混合キーを前記リモート機器に使用される対応する初期混合キーの前記ガロア体乗算逆数とすることを含む請求項１３に記載のデータ保護方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データセキュリティに関し、特に、ストリーム暗号データを保護することに用いる方法及びシステムに関する。
【背景技術】
【０００２】
各種セキュアストレージシステムにおいて、ホストコンピュータは、1つ又は複数のストレージ装置とデータを交換する。ホストコンピュータ及びストレージ装置の間のインタフェースを保護することに用いる方法は、本分野において、公知となっている。例えば、米国特許出願公開第2013/0262880号明細書は、メモリアクセス回路及び対応する方法を記載しており、前記特許出願公開案の開示内容は、引用方式で本文中に組み込むものとする。メモリアクセス回路は、メモリと通信する暗号化ブロックを含み、前記メモリは、ブロックを基礎としてデータブロック中のデータに暗号化を行う。メモリアクセス回路は、更に、エラー注入ブロックを含み、前記エラー注入ブロックは、エラーをデータブロック中のデータに注入するよう構成される。メモリアクセス回路は、更に、データランダマイザ及びアドレスランダマイザを含む。データランダマイザは、データブロック内のデータビットを複数回シャッフル（shuffle）してメモリ中のデータを攪乱し、且つシャッフルされたデータビットをランダムデータと混合（mash）するよう構成される。アドレスランダマイザは、攪乱されたデータをメモリの各箇所に分布するよう構成される。この米国特許出願公開案は、更に、その対応する方法を実施する前記メモリアクセス回路を含むメモリシステムを開示している。
【０００３】
もう１つの実例として、米国特許出願公開第2011/0283115号明細書（その開示内容は、引用方式で本文中に組み込むものとする）は、初期のソフトウェアコードからリバースエンジニアリング分析に抵抗できる最終的ソフトウェアコードを作成する方法を記載しており、そのうち、前記方法は、最大Ｍビットデータを直接処理可能なプロセッサによって実行する。最終的ソフトウェアコードの作成は、以下のステップを含む：（i）変換テーブルを構築し、前記変換テーブルの入力は、１つの命令を含み、且つその出力は、複数の等価命令又は命令セットを含む。（ii）入力データを複数のセグメントに分割（split）し、各セグメントは、Ｍを超過しないランダム長を有する。及び、（iii）命令ブロック中の各命令に対し、変換テーブルを使用して等価命令又は命令セットを擬似ランダムに（pseudo-randomly）選択し、等価命令ブロックを獲得し、前記複数の等価命令ブロックを付加し、最終的ソフトウェアコードを獲得する。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
多くのセキュアストレージシステムにおいて、ホストコンピュータは、通信リンク又はバスを介してメモリデバイスと通信する。そのうち、通信リンクは、容易に各種パスワード攻撃を受ける可能性がある。本発明は、メモリデバイスのインタフェースを保護し、パスワード攻撃を受けることを回避するデータ保護装置及びその方法を提供する。
【課題を解決するための手段】
【０００５】
本発明の実施例は、データ保護装置を提供し、前記装置は、インタフェース及び論理回路を含む。前記インタフェースは、通信リンクを介して通信するよう構成される。前記論理回路は、ストリーム暗号操作及び混合操作のカスケードを行うことによって、平文ビットの第１ストリームと、通信リンクを介して交換される暗号化ビットの第２ストリームとの間で変換を行う。そのうち、混合操作は、入力ビットを出力ビットに暗号マッピング（cryptographically maps）する。
【０００６】
幾つかの実施例において、暗号化ビットは、通信リンクを介してメモリデバイス及びプロセッサの間で交換を行うものである。その他の実施例において、通信リンクを介して交換する暗号化ビットは、プロセッサ上で即時実行されるソフトウェアコードを含む。
【０００７】
幾つかの実施例において、論理回路は、少なくとも２つの相互接続される混合ステージを含み、それは、少なくとも最初及び最後の混合ステージを含み、且つ各前記混合ステージは、複数のガロア体（Galois Field，GF）乗算器を含み、そのうち、論理回路は、最初の混合ステージのガロア体乗算器において、入力ビットを分割し、最後の混合ステージの結果を組み合わせて出力ビットを生成することによって混合操作を行うよう構成される。もう１つの実施例において、少なくとも１つの混合ステージ中のガロア体乗算器は、入力ビット又は前の混合ステージからの被乗数ビットを受け取り、更に、相応する混合キーを受け取るよう構成され、そのうち、混合キーは、リモート機器中の対応する混合キーのガロア体乗算逆数であり、且つリモート機器は、通信リンクの相対側に位置し、そのうち、論理回路は、各ガロア体乗算器中において、被乗算ビットを相応する混合キーに乗算することによって混合操作を行うよう構成される。
【０００８】
幾つかの実施例において、論理回路は、入力ビットをガロア体中の相応し且つ非定数の混合キーに乗算することによって混合操作を行うよう構成される。その他の実施例において、論理回路は、相応するガロア体中の混合キーを、定数要素に乗算するか、定数要素のガロア体乗算逆数に乗算することによって、通信リンクの相対側におけるリモート機器と相互に協調して混合キーを繰り返し更新し、任意の与えられた時間において、混合キーがリモート機器に使用される対応混合キーのガロア体乗算逆数となるよう構成される。その他の実施例において、定数要素及びガロア体乗算逆数は、それぞれ２及び２-1に等しく、且つ論理回路は、線形フィードバックシフトレジスタを使用して混合キーを生成するよう構成され、そのうち、線形フィードバックシフトレジスタは、シフト演算を使用してガロア体乗算演算を実施する。その他の実施例において、論理回路は、混合キーを相応するガロア体中の２又は２-1の整数乗の数値に初期化し、初期混合キーがリモート機器に使用される対応初期混合キーのガロア体乗算逆数となるよう構成される。
【０００９】
本発明の実施例は、更に、方法を提供し、前記方法は、通信リンクを介して暗号化ビットを交換することを含む。ストリーム暗号操作及び混合操作のカスケードを行うことによって、平文ビットの第１ストリームと通信リンクを介して交換された暗号化ビットの第２ストリームとの間の変換を実施し、そのうち、混合操作は、入力ビットを出力ビットに暗号マッピングする。
【発明の効果】
【００１０】
本発明のデータ保護装置及びその方法は、メモリデバイスのインタフェースを保護し、パスワード攻撃を受けることを回避する。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施例に基づいて示されるセキュアストレージシステムのブロック図である。
【図２】本発明の実施例に基づいて示される暗号混合方法の説明図である。
【図３】本発明の実施例に基づいて示される暗号混合の代替実施例の説明図である。
【図４】本発明の実施例に基づいて示される暗号混合の代替実施例の説明図である。
【発明を実施するための形態】
【００１２】
本発明の前記特徴及び利点を更に分かり易くする為、以下に、実施例を挙げ、図面を合わせて詳細に説明する。
【００１３】
[概要]
多くのセキュアストレージシステムにおいて、ホストコンピュータは、通信リンク又はバスを介してメモリデバイスと通信する。通信リンクは、容易に各種パスワード攻撃を受ける可能性がある。本文において、本発明の実施例は、メモリデバイスのインタフェースを保護し、パスワード攻撃を受けることを回避する改善方法及びシステムを提供する。
【００１４】
原則上、双方向にリンクを介して交換されるデータに対して暗号化を行い、ホストコンピュータ及びメモリデバイスの間のリンクを保護することができる。読み取り方向において、メモリデバイスは、暗号化データをホストコンピュータへ送信し、書き込み方向において、メモリデバイスは、ホストコンピュータから受け取った暗号化データを受信する。各通信方向において、メモリデバイス及びホストコンピュータのうちの一者は、送信側であり、他者は、受信側である。
【００１５】
例えば、ホストコンピュータのセントラルプロセッサユニット（ＣＰＵ）は、メモリデバイスからリアルタイム抽出したコードを実行する時、メモリアクセス時のレイテンシ（latency）が低いことが重要である。レイテンシの高いブロック暗号化に対して、レイテンシ及び複雑性を減少させる為、通常、ストリーム暗号技術を使用してリンク介して伝送されるデータに対して暗号化を行う。送信側において、ストリーム暗号化装置が擬似ランダムシーケンスにより平文データに対して暗号化を行い（例えば、ビット単位の排他的論理和（bitwise XOR）演算）、暗号文（cipher text）を生成し、受信側において、復号化装置が同一シーケンスにより暗号文に対して復号化を行い、平文データを復元する。
【００１６】
複雑性及びレイテンシが低いという点について述べれば、ストリーム暗号は、有利であるが、ストリーム暗号は、容易にパスワード攻撃（例えば、ビット位置に基づく攻撃）を受ける可能性がある。例えば、承認されていない攻撃者は、メモリデバイスインタフェースの１つ又は複数の固定位置のビットと対応する一定の周期モードに基づいてストリーム暗号データの値を監視又は変更し、システムのセキュリティの破壊を試みることができる。本文中に記載する実施例は、ストリーム暗号化装置の上記脆弱性を有効に補うことができる。
【００１７】
読み取り方向において、メモリデバイスは、送信端であり、且つホストコンピュータが受信端である。幾つかの実施例において、ストリーム暗号化装置がマスキング（masking）を行う前、メモリデバイスは、秘密マッピングキーを使用して平文に対して暗号混合操作を行う。前記混合操作は、平文データビットを混合ビットにマッピングし、マッピングキーを知らず且つ承認されていないユーザが平文データビットの値及び/又は位置を推測することができないようにする。ホストコンピュータは、復号後に逆マッピング（混合マッピングに相対する）を行い、混合ビットに対して脱混合を行い且つ平文データを復元する。書き込み方向において、ホストコンピュータ及びメモリデバイスは、それぞれ送信端及び受信端であり、同様の処理フローを応用する。
【００１８】
実施例において、暗号混合は、ガロア体（Galois-Field，GF）算術演算に基づくものである。以下の記載において、算術演算は、与えられるガロア体中の要素に応用することができ、且つ与えられるガロア体は、幾つかの基本的な生成多項式を使用することによって生成されることができると仮定する。開示される技術は、任意の有効な生成多項式に適用されるので、以下では、生成多項式に関する詳細を省略する。従って、用語『乗算』（multiplication）が指すものは、与えられるガロア体中の要素間の相乗であり、且つ与えられる要素の『乗算逆数』（multiplicative inverse）という用語が指すものは、この与えられる要素と相乗する（ガロア体算術演算を使用する）時、前記ガロア体中で定義される単位要素を生成する要素である。同様に、用語『冪』（power）が指すものは、与えられるガロア体中の要素自身の繰り返し相乗である。
【００１９】
例えば、送信端の混合ユニットがＮビットの平文データＤＸを受信すると仮定する。実施例において、Ｎが３２であるが、代替実施例において、Ｎは、任意の適合する正の整数を含むことができる。混合ユニットは、Ｎビットガロア体乗算器を含み、且つ前記Ｎビットガロア体乗算器は、Ｎビットの平文データＤＸをＮビット秘密マッピングキーＫに乗算し、Ｎビットの混合データＭＸを出力し、即ち、ＭＸ＝ＤＸ*Ｋであり、そのうち演算符号『*』は、相応するガロア体中の乗算を表す。
【００２０】
受信端は、脱混合ユニットを含み、前記脱混合ユニットは、Ｎビット混合データＭＸを受け取り、且つ類似のＮビットガロア体乗算器を使用して混合データＭＸを逆マッピングキーに乗算し、前記逆マッピングキーは、マッピングキーＫの乗算逆数に等しく、即ち、ＤＸ＝ＭＸ*Ｋ-1であり、そのうち、Ｋ-1は、逆マッピングキーである。
【００２１】
幾つかの実施例において、各送信側及び受信側は、通信リンクの相対側の他方と相互に協調し、混合キーを繰り返し更新し、任意の与えられた時間において、一方が使用する混合キーは、他方が使用する対応混合キーのガロア体乗算逆数である。
【００２２】
幾つかの実施例において、混合ユニットは、線形フィードバックシフトレジスタ（Linear Feedback Shift Register，LFSR）を使用して秘密マッピングキーＫを生成し、且つ脱混合ユニットは、もう１つの線形フィードバックシフトレジスタを使用して逆マッピングキーＫ-1を生成する。混合及び脱混合に用いる線形フィードバックシフトレジスタは、相応する秘密値Ｒ及びＲ-1に初期化され、且つ相互に同期してシフトを行い、送信側及び受信側における相応するマッピングキーが相互の乗算逆数に等しくなるようにする。
【００２３】
ガロア体の任意の要素を計算するガロア体乗算逆数は、大量の計算資源を必要とする。実施例において、脱混合ユニットの逆初期値Ｒ-1を計算する複雑性を低減する為、初期値Ｒを２の負でない整数ｒ乗、即ち、Ｒ＝２rに制限することができる。脱混合ユニットは、固定された予め算出された値２-1を保留し、２-1のｒ乗により逆初期値Ｒ-1を計算し、即ち、Ｒ-1=(２-1)rである。一般の乗算逆数と比較し、冪演算による逆初期値Ｒ-1を計算する複雑性を顕著に低減する。
【００２４】
混合キーは、線形フィードバックシフトレジスタを使用して生成することに制限しない。代替実施例において、任意のその他の適合する手段を使用して送信端及び受信端中の混合キーに対して初期化及び更新を行うことができ、任意の時間において、送信端及び受信端の混合キーが互いにガロア体乗算逆数となるようにする。また、混合キーは、相応するガロア体中の２及び２-1以外の定数の整数乗として構成されることもできる。
【００２５】
幾つかの実施例において、混合ユニットは、２つの混合ステージによって３２ビットの平文データを混合し、各混合ステージは、それぞれ４個の８ビットガロア体乗算器を含む。第１ステージにおいて、４つのガロア体乗算器中の各１つが３２ビットの平文データから取り出した８ビット入力データを相応する８ビットマッピングキーに乗算する。物理的大きさ、実施複雑性及びレイテンシにとっては、８ビット乗算器（３２ビット乗算器でなく）を使用する方が有利である。
【００２６】
相互接続方式で第１ステージが出力した３２ビットを４個の８ビットにマッピングし、且つこの４個の８ビットをそれぞれ第２ステージの４個のガロア体乗算器に入力する。第２ステージのガロア体乗算器中の各１つは、その８ビットを相応する８ビットのマッピングキーに乗算して８ビット混合出力を生成する。続いて、第２ステージの４個の８ビット出力を互いに組み合わせて３２ビット混合データ出力を生成する。
【００２７】
幾つかの実施例において、混合ユニットは、６４ビット線形フィードバックシフトレジスタを使用して第１及び第２混合ステージで８個のマッピングキーを生成する。混合ユニットは、６４ビット線形フィードバックシフトレジスタの出力を２つの３２ビットキーに分割し、前記２つの３２ビットキーは、それぞれ４個の８ビットマッピングキーに更に分割される。
【００２８】
受信端において、脱混合ユニットは、２つの脱混合ステージを含み、各脱混合ステージは、それぞれ４個の８ビットガロア体乗算器を含む。脱混合ユニットは、更に、混合ユニットの線形フィードバックシフトレジスタと同期動作する６４ビット線形フィードバックシフトレジスタを含み、前記６４ビット線形フィードバックシフトレジスタは、８個の８ビット逆マッピングキーを出力し、且つ前記８個の８ビット逆マッピングキーは、それぞれ混合ユニットの相応するマッピングキーの乗算逆数に等しい。実施例において、両側の線形フィードバックシフトレジスタは、同一の擬似ランダムシーケンスを生成し、且つ脱混合側において、例えば、相応するガロア体中でルックアップテーブルを使用し、３２ビット線形フィードバックシフトレジスタが出力する各８ビットのサブグループに対して逆変換を行う。４個の８ビットガロア体要素を逆変換するのに必要なテーブルサイズ及び保存空間（１Ｋ×８ビット）は、１つの３２ビットガロア体要素を逆変換するのに必要なルックアップテーブル（４Ｇ×３２ビット）より明らかに小さい。
【００２９】
脱混合ユニットは、２つの脱混合ステージにおいて、ガロア体乗算を応用し、且つ更に第１及び第２脱混合ステージの間で逆相互接続方式を応用し、平文データを復元する。
【００３０】
開示する技術において、ストリーム暗号化の前に暗号混合を実行する。前記混合操作は、平文データビットを混合ビットにマッピングし、平文ビットの実際の値及び位置を隠す。ガロア体乗算器を使用して混合操作を実施することは、ただ複雑性及びレイテンシを僅かに増加させるのみである。
【００３１】
[システムの説明]
図１は、本発明の実施例に基づいて示されるセキュアストレージシステム２０のブロック図である。セキュアストレージシステム２０は、メモリデバイス２４を含み、前記メモリデバイス２４は、ホストコンピュータ２８のデータをメモリアレイ３２中に保存する。メモリデバイス２４は、任意の適合するタイプのデータ、例えば、ユーザデータ、実行可能なコード及びセキュアシステム状態を保存することができる。システム状態は、多種の情報、例えば、システム起動時間、システムイベント及びエラーログ情報及びセルフテスト結果を含む。データは、暗号化又は非暗号化形式でメモリアレイ３２中に保存することができる。
【００３２】
図１の実施例において、メモリデバイス２４は、不揮発性メモリ（Nonvolatile Memory，NVM）を含む。代替実施例において、メモリデバイス２４は、任意の適合するタイプのメモリ、例えば、リードオンリーメモリ（Read Only Memory，ROM）、ランダムアクセスメモリ（Random Access Memory，RAM）又は任意のタイプの不揮発性メモリ（例えば、フラッシュメモリ）を含むことができる。ホストコンピュータ２８は、相応する通信リンク(図示せず)を使用して、リンク３４を介してメモリデバイス２４と通信する。
【００３３】
メモリデバイス２４に用いる保存命令は、少なくともデータ読み取り、書き込み、修正及び消去を含む。ホストコンピュータ２８は、リンク３４を介して相応する通信信号を印加することによって保存操作を行う。また、ホストコンピュータ２８のセントラルプロセッサユニット３６は、リンク３４を介してコード命令及びデータを読み取り、メモリデバイス２４からリアルタイム取得したコードを実行する。
【００３４】
幾つかの実施例において、リンク３４は、パラレルリンク又はバスを含み、これらパラレルリンク又はバスは、単独のデータライン、アドレスライン及び制御ラインを有する。その他の実施例において、リンク３４は、シリアルリンクを含み、且つそのうちのデータ、アドレス及び制御情報は、共通の実体的接続において連続的に伝送される。この種のシリアルインタフェースは、例えば、シリアルペリフェラルインタフェース（Serial Peripheral Interface，SPI）、内蔵集積回路（Inter-Integrated Circuit，I2C）、ユニバーサルシリアルバス（Universal Serial Bus，USB）、マルチメディアカード（Multimedia Card，MMC）インタフェース及びセキュアデジタル（Secure Digital，SD）インタフェースを含む。
【００３５】
本実施例において、ホストコンピュータ２８及びメモリデバイス２４がそれぞれ単独の半導体ダイ（die）を含み、且つ前記２つのダイが共通のパッケージ上又は単独のパッケージ上に位置すると仮定する。更に、承認されていない攻撃者が各ダイ内の秘密情報を直接獲得することができないが、パッケージを開いてリンク３４の信号を獲得し、システムのセキュリティの破壊を試みることができると仮定する。承認されていないユーザは、リンク３４を介して実行を試みる主なパスワード攻撃は、以下を含む：
・動作中に伝送される情報を改竄し、特定ビット位置においてパスワード攻撃を試みる。
・メモリデバイス中に保存された秘密情報を獲得する。
・メモリデバイス中に保存された情報を改竄する。
・メモリデバイスに承認されていない命令を実行させる。
・システム状態に関する情報を獲得する。
・動作中にシステムの状態を変更する。
・リバースエンジニアリングを実行し、システムの機能性を理解する。
【００３６】
開示する実施例において、ホストコンピュータ２８及びメモリデバイス２４の間の通信は、データ操作によってそれをリンク３４上で隠蔽することによって保護される。データ操作は、パスワードデータ混合及びストリーム暗号化のカスケードを含み、その詳細は、後方で説明するとおりである。従って、承認されていない攻撃者がリンク３４の信号を獲得したとしても、攻撃者が上に列記したパスワード攻撃を実行することは、困難又は不可能である。メモリデバイスに対して往復するアクセス遅延及び計算複雑性にとって、データ操作は、最小の性能損失となる。幾つかの実施例において、データ操作は、データ暗号化及びパスワードデータ混合を含み、その詳細は、後方で説明するとおりである。
【００３７】
メモリデバイス２４及びホストコンピュータ２８は、それぞれ相応する秘密バインドキー４０，４４を使用して相互に認証し合い、且つ認証失敗時に秘密情報に対する承認されていないアクセスを防止する。バインドキー４０，４４の大きさは、十分な暗号化強度を提供するに足るまで大きいもの、例えば、１２８ビットキー、或いはそれ以上である。幾つかの実施例において、ホストコンピュータ２８、メモリデバイス２４又はその二者は、対称鍵共有プロトコル（symmetric key sharing protocols）を使用してバインドキー４０，４４を生成し、バインドキー４０，４４を同一にさせる。その他の実施例において、ホストコンピュータ２８及びメモリデバイス２４は、非対称鍵共有プロトコル（asymmetric key sharing protocols、公開-秘密鍵供給プロトコル（public-private key sharing protocols）とも称される）を採用し、そのうち、バインドキー４０，４４は、通常異なるものである。
【００３８】
幾つかの実施例において、バインドキー４０，４４は、システムのライフサイクル全体において不変なものである。或いは、先ずバインドキー４０，４４及び任意のその他の秘密情報をホストコンピュータ２８及びメモリデバイス２４において抹消し、続いてバインドキー４０，４４を新たな秘密値として再構成することによってキー４０，４４の構成を時々置き換えることができる。
【００３９】
幾つかの実施例において、ホストコンピュータ２８は、ローカルにおいてバインドキー４０を生成し、且つバインドキー４０を伝送し、それをメモリデバイス２４の不揮発性位置に保存させる。例えば、実施例において、ホストコンピュータ２８は、ホストコンピュータ２８のダイ内の物理特性を測定し、且つ測定結果を相応するビットシーケンスに変換し、バインドキー４０（及び/又はその他の秘密情報）の秘密値として用いる。この種の物理特性は、例えば、ダイ内の幾つかの遅延パス、ダイ内の半導体ゲートの状態を反転させる閾値電圧及びダイ内のリング発振器の自己発振周波数を含むことができる。
【００４０】
実施例において、ホストコンピュータ２８、メモリデバイス２４又はその二者は、暗号ダイジェスト（cryptographic digest）を使用してバインドキー４０の有効性（例えば、通電時）を確認し、そのうち、暗号ダイジェストは、バインドキー４０を介して算出され、バインドキー４０と共にメモリデバイス２４中に保存される。
【００４１】
上記のように、データを操作することによって、それをリンク３４において隠蔽し、データは、リンク３４を介して安全に交換されることができる。明確にする為、図１では、ただ読み取り方向（即ち、ホストコンピュータ２８は、メモリアレイ３２中に保存されるデータを読み取る）の状況のみを示している。反対方向（ホストコンピュータ２８からメモリデバイス２４へ）におけるデータ操作は、通常、同様の方式で実施する。メモリアレイ３２中に保存したデータは、暗号化されたものであるか、暗号化されていないものであることができる。
【００４２】
メモリデバイス２４が与えられたデータユニット（例えば、３２ビットユニット又は任意のその他の適合するデータユニットの大きさ）によりデータをメモリアレイ３２中に保存すると仮定する。読み取り方向において、メモリデバイス２４は、メモリアレイ３２から平文データＤＸの単位を取得する。平文データＤＸは、混合ユニット４８に入力され、且つ前記混合ユニット４８は、平文データＤＸに対して暗号マッピングを行い、混合データＭＸを生成する。ストリーム暗号器５２は、続いて混合データＭＸを暗号化し、且つメモリデバイス２４は、リング３４を介して暗号データＣＸを送信する。以下の説明において、用語『混合』が指すのは、秘密マッピングキーを使用して入力ビットを出力ビットに暗号マッピングすることであり、このように、マッピングキーが何であるかを知らなければ、計算を介して出力ビットから入力ビットを推測することはできない。混合ユニット４８中のマッピング操作及びストリーム暗号器５２中の暗号操作は、秘密セッションキー５６により決定され、その詳細は、以下のとおりである。
【００４３】
読み取り方向において、ホストコンピュータ２８は、暗号データＣＸを受け取り、且つ平文データＤＸを復元する。ホストコンピュータ２８は、先ず、ストリーム復号器６０を使用して暗号データＣＸに対して復号化を行い、混合データＭＸを復元し、続いて混合ユニット４８の操作を逆転し、脱混合ユニット６４を使用して混合データＭＸを脱混合することによって、平文データＤＸを復元する。ストリーム復号器６０及び脱混合ユニット６４における操作は、秘密セッションキー６８により決定され、前記秘密セッションキー６８は、秘密セッションキー５６と一致され、メモリデバイス２４により相応実行される混合及び暗号操作を適切に逆転できるよう確保する。
【００４４】
書き込み方向（図示せず）において、ホストコンピュータ２８は、データをメモリデバイス２４中に書き込む。この種の状況において、ホストコンピュータ２８は、リンク３４を介してデータを送信する前にデータの混合及び暗号化を行うことができ、メモリデバイス２４は、復号化及びその後の脱混合を行うことによって平文データを復元することができる。
【００４５】
与えられた読み取り又は書き込み方向に対して、端から端へのデータの流れは、混合操作を逆転する脱混合、及び暗号化操作を逆転する復号化を含む。しかしながら、幾つかの実施例において、書き込み方向における混合及び暗号操作は、読み取り方向における混合及び暗号操作と異なることができる。
【００４６】
秘密セッションキー５６及び６８は、データを操作し、それをリンク３４において隠蔽することに用いられる。ホストコンピュータ２８は、時に(例えば、通電時)、秘密セッションキー５６及び６８を再構成することができる。幾つかの実施例において、ホストコンピュータ２８は、メモリデバイス２４へ秘密セッションキー５６の暗号化バージョンを含むセッション秘密を送信し、前記秘密セッションキー５６の暗号化バージョンは、バインドキー４４を使用して秘密セッションキー５６に対して暗号化を行う。メモリデバイス２４は、バインドキー４０を使用してセッション秘密に対して復号化を行うことによって秘密セッションキー５６を取得する。
【００４７】
その他の実施例において、ホストコンピュータ２８は、暗号化されていないセッションシード（session seed）をメモリデバイス２４に送信する。メモリデバイス２４及びホストコンピュータ２８は、それぞれ任意の適合するパスワード演算法又は方法（例えば、セキュアハッシュアルゴリズム（SHA）又は高度暗号化標準（AES））を使用し、セッションシード及び相応するバインドキー４０又は４４を使用して相応する秘密セッションキー５６又は６８を生成する。
【００４８】
ホストコンピュータ２８及びメモリデバイス２４は、更に、相応するパスワードシーケンスジェネレータ７２及び７６を含む。ストリーム暗号器５２は、パスワードシーケンスジェネレータ７２により生成されるビットシーケンス及び混合データＭＸの間において、ビット単位の排他的論理和（bitwise XOR）を応用して暗号データＣＸを生成する。同様に、ストリーム復号器６０は、パスワードシーケンスジェネレータ７６により生成されるシーケンス及び暗号データＣＸの間において、ビット単位の排他的論理和を応用して混合データＭＸを復元する。
【００４９】
パスワードシーケンスジェネレータ７２及び７６は、それぞれ相応する秘密セッションキー５６又は６８に基づいて擬似ランダムシーケンスを生成し、秘密セッションキー５６，６８及びシステムの状態を獲得することができず且つ承認されていないユーザが実際の擬似ランダムシーケンスを予測することができないようする。パスワードシーケンスジェネレータ７２及び７６は、リンク３４上の毎回のトランザクション（transaction）に対して新たなシーケンスを生成するか、いくつかの通信トランザクションごとに新たなシーケンスを１回生成する。
【００５０】
パスワードシーケンスジェネレータ７２及び７６は、任意の適合する方法を用いて擬似ランダムシーケンスを生成することができる。１つの実施例において、パスワードシーケンスジェネレータ７２は、ハッシュ関数（Hash Function，例えばSHA-2）及び１回の実行ごとに（又は数回の実行ごとに）徐々に増加する計数値（図示せず）を含む。パスワードシーケンスジェネレータ７２は、秘密セッションキー５６及び計数値によってハッシュ関数を計算し、出力シーケンスを生成する。
【００５１】
もう１つの実施例において、パスワードシーケンスジェネレータ７２は、秘密セッションキー、計数値及び前回のトランザクション中で伝送される平文データ（又はその一部分）によってハッシュ関数を計算し、従って、両側が何れも既知のものである。更にもう1つの実施例において、例えば、ハッシュ関数の出力の大きさが暗号化を行うに十分でない時、パスワードシーケンスジェネレータ７２は、更に、ハッシュ関数の結果を線形フィードバックシフトレジスタ（Linear Feedback Shift Register，LFSR）に入力し、線形フィードバックシフトレジスタの出力を擬似ランダムシーケンスとする。
【００５２】
図１中のセキュアストレージシステム２０、メモリデバイス２４及びホストコンピュータ２８の構成は、ただ概念を明確にするための師範例の構成というのみである。代替実施例において、セキュアストレージシステム、メモリデバイス及びホストコンピュータの任意のその他の構成を使用することもできる。例えば、１つの実施例において、ホストコンピュータは、別途のメモリコントローラによってメモリデバイスと通信する。この実施例において、開示される技術を使用し、ホストコンピュータとメモリコントローラとの間の各リンク及びメモリコントローラとメモリデバイスとの間の各リンクを保護することができる。もう１つの実施例において、ホストコンピュータ自身は、メモリデバイスを管理するメモリコントローラとなる。
【００５３】
メモリデバイス２４及びホストコンピュータ２８の相違する要素、例えば、混合ユニット４８、ストリーム暗号器５２、パスワードシーケンスジェネレータ７２、ストリーム復号器６０、脱混合ユニット６４及びパスワードシーケンスジェネレータ７６は、任意の適合するハードウェア、例えば、特定用途向け集積回路（ASIC）又はフィールドプログラマブルゲートアレイ（FPGA）中に使用して実施することができる。幾つかの実施例において、メモリデバイス２４及びホストコンピュータ２８の幾つかの要素は、ソフトウェアを使用するか、ハードウェア及びソフトウェア要素の組み合わせを使用して実施することができる。
【００５４】
幾つかの実施例において、メモリデバイス２４及び／又はホストコンピュータ２８の幾つかの要素、例えば、混合ユニット４８及び／又は脱混合ユニット６４は、汎用プロセッサを含むことができ、ソフトウェアを用い、前記汎用プロセッサに対してプログラミングを行い、本文中に記載の機能を実施する。ソフトウェアは、例えば、電子形式でネットワークを介してプロセッサにダウンロードすることができ、又は、非一時的有形メディア（例えば、磁性、光又は電子メモリ）に提供及び／又は保存されることもできる。
【００５５】
図１の実施例において、ホストコンピュータ２８は、単一のメモリデバイス２４と通信する。代替実施例において、ホストコンピュータ（例えば、メモリコントローラ）は、複数のメモリデバイスと通信することができ、且つメモリデバイスは、それぞれ相応するバインドキー及び秘密セッションキーを有する。この種の実施例において、ホストコンピュータ又はメモリコントローラは、適合するそれぞれの秘密キーを使用して各メモリデバイスと通信する。
【００５６】
前記図１の実施例において、送信側は、データ混合後に暗号化を行い、且つ受信側は、復号化し、その後に脱混合を行う。代替実施例において、発信側において暗号化した後、混合を行い、且つ受信側において脱混合した後に復号化を行うことができる。
【００５７】
以下の説明及び明細書本文において、メモリデバイス２４及び／又はホストコンピュータ２８の各種部材は、統一して論理回路と称する。
【００５８】
[データ暗号混合の師範的実施例]
図２は、本発明に基づく実施例が示す暗号混合方法の説明図である。暗号混合は、秘密混合キーを使用して行われる入力ビットから出力ビットへの可逆マッピングに対応する。
【００５９】
本実施例において、前記方法は、相応する混合ユニット４８及び脱混合ユニット６４により実施される暗号混合部分及び脱混合部分を含む。前記図１に示すように、混合ユニット４８の出力は、不揮発性メモリ（NVM）側で暗号化が行われ、且つホストコンピュータ側で復号化が行われ、実際に混合ユニット４８により生成される混合データＭＸは、脱混合ユニット６４に入力される。従って、実際上のデータの流れは、通常データ暗号化及び復号化を含むが、分かり易くする為、ここでは、これら要素を省略し、混合ユニット４８の出力が脱混合ユニット６４に入力される状況により図２中の方法を説明する。
【００６０】
図２の実施例において、混合操作は、ガロア体乗算に基づくものである。混合ユニット４８は、３２ビットガロア体乗算器９０_１及び線形フィードバックシフトレジスタ（LFSR）９４を含む。３２ビットガロア体乗算器９０_１は、３２ビット平文データＤＸ及び線形フィードバックシフトレジスタ９４からの３２ビットマッピングキーＫを受信する。３２ビットガロア体乗算器９０_１は、相応するガロア体において３２ビット平文データＤＸを３２ビット秘密マッピングキーＫに乗算し、３２ビット混合データＭＸを生成する（即ち、ＭＸ＝ＤＸ*Ｋ）。
【００６１】
混合ユニット４８は、線形フィードバックシフトレジスタ（LFSR）９４を使用して初期秘密値に初期化する（初期値をＲで示す）。初期値Ｒは、通常秘密セッションキーから導出されるので、送信側及び受信側の双方が何れも既知である。線形フィードバックシフトレジスタ（LFSR）９４に対して行うシフトは、相応するガロア体において2倍に相応する。各１つの新たな３２ビット平文データＤＸが入力され（又は複数毎の３２ビット平文データＤＸが入力され）、線形フィードバックシフトレジスタ９４がシフトを行い、相応する新たなマッピングキーＫを生成し、従って、３２ビット平文データＤＸを３２ビット混合データに暗号化マッピングし、出力する。
【００６２】
脱混合ユニット６４は、混合ユニット４８に対して暗号化逆マッピングを行う。脱混合ユニット６４は、３２ビットガロア体乗算器９０_２（メモリデバイス側におけるガロア体乗算器に類似）及び線形フィードバックシフトレジスタ（LFSR_INV）９８を含む。線形フィードバックシフトレジスタ（LFSR）９４が初期値Ｒに初期化される時、線形フィードバックシフトレジスタ（LFSR_INV）９８がその乗算逆数（即ち、初期値Ｒ-1）に初期化される。また、線形フィードバックシフトレジスタ（LFSR_INV）９８に対するシフトは、２-1倍に等しい。従って、線形フィードバックシフトレジスタ（LFSR）９４及び線形フィードバックシフトレジスタ（LFSR_INV）９８のシフトを同期することによって、線形フィードバックシフトレジスタ（LFSR_INV）９８の出力は、何れも線形フィードバックシフトレジスタ（LFSR）９４の出力の乗算逆数に等しくすることができる。言い換えれば、線形フィードバックシフトレジスタ（LFSR）９４が３２ビット秘密マッピングキーＫを出力する時、線形フィードバックシフトレジスタ（LFSR_INV）９８が相応する３２ビット秘密マッピングキーＫ-1を出力する。３２ビット混合データＭＸを３２ビット秘密マッピングキーＫ-1に乗算することによって、３２ビットガロア体乗算器９０_２は、３２ビット混合データＭＸから３２ビット平文データＤＸに復元することができる。
【００６３】
実施例において、初期値Ｒは、任意の値を含むことができ、且つホストコンピュータ２８は、任意の適合する方法を使用してその乗算逆数（即ち、初期値Ｒ-1）を計算することができる。もう１つの実施例において、初期値Ｒ-1を検出することに用いる計算資源は有限であり、従って、初期値Ｒは、Ｒ＝２rの形式に制限され、ｒは負でない整数である。同様に、初期値Ｒ-1は、初期値Ｒ-1=(２-1)rの形式に制限され、そのうち、相応するガロア体中の値２-1は、例えば、ダイ設計時に予め決定することができる。冪演算を使用して乗算逆数（即ち、初期値Ｒ-1）を計算する複雑性は、常規数字の乗算逆数を計算するよりも遥かに小さい。
【００６４】
図３及び図４は、本発明に基づく実施例に示される暗号混合の代替方法の説明図である。以下の説明において、図１中の混合ユニット４８及び脱混合ユニット６４がそれぞれ図３及び図４中に示される相応する実施例を使用して実施されると仮定する。
【００６５】
図３において、２つの混合ステージＳＴＡＧＥ_１、ＳＴＡＧＥ_２を使用して、暗号混合操作を実施し、前記混合ステージＳＴＡＧＥ_１、ＳＴＡＧＥ_２は、それぞれ４個の８ビットガロア体乗算器１００を含む。混合ステージＳＴＡＧＥ_１、ＳＴＡＧＥ_２のガロア体乗算器は、それぞれ１００_１〜１００_４（＃１〜＃４）及び１００_５〜１００_８（＃５〜＃８）として番号付けされる。６４ビット線形フィードバックシフトレジスタ（LFSR）１０４は、２つの３２ビット秘密値Ｋ１及びＫ２を生成し、それぞれ混合ステージＳＴＡＧＥ_１、ＳＴＡＧＥ_２において、使用する。
【００６６】
混合ステージＳＴＡＧＥ_１において、３２ビット平文データＤＸは、４個の８ビットデータＸ１〜Ｘ４に分割される。また、秘密値Ｋ１は、４個の８ビットのサブキーＫ１１〜Ｋ１４に分割される。ガロア体乗算器１００_１は、データＸ１をサブキーＫ１１に乗算し、且つデータＹ１を出力する。同様に、ガロア体乗算器１００_２〜１００_４は、それぞれデータＹ２＝Ｘ２*Ｋ１２、データＹ３=Ｘ３*Ｋ１３及びデータＹ４＝Ｘ４*Ｋ１４を計算する。
【００６７】
混合ステージＳＴＡＧＥ_２において、秘密値Ｋ２は、４個の８ビットサブキーＫ２１〜Ｋ２４に分割され、前記サブキーＫ２１〜Ｋ２４は、それぞれガロア体乗算器１００_５〜１００_８（＃５〜＃８）に入力される。ガロア体乗算器１００_５〜１００_８（＃５〜＃８）は、それぞれ相応する８ビットデータＺ１〜Ｚ４を受け取る。相互接続方式で、データＹ１〜Ｙ４を８ビットデータＺ１〜Ｚ４にマッピングする。
【００６８】
本実施例において、相互接続方式でデータＹ１〜Ｙ４をそれぞれ４個の２ビットグループに分割する。異なるデータＹ１〜Ｙ４の結果に由来する４個の２ビットグループを互いに組み合わせることによって、それぞれ８ビットデータＺ１〜Ｚ４に形成する。ガロア体乗  算器１００_５〜１００_８（＃５〜＃８）は、それぞれ８ビットデータＷ１＝Ｚ１*Ｋ２１、８ビットデータＷ２＝Ｚ２*Ｋ２２、８ビットデータＷ３＝Ｚ３*Ｋ２３及び８ビットデータＷ４＝Ｚ４*Ｋ２４を計算し、これら８ビットデータＷ１〜Ｗ４は、続いて３２ビットデータＭＸに組み合わせられて出力される。
【００６９】
図４は、脱混合ユニット６４の実施例を示し、それは、前記図３中に示す混合ユニット４８の実施例と互換性を有する。図４に示す実施例は、２つの脱混合ステージＳＴＡＧＥ_３、ＳＴＡＧＥ_４を含み、それらは、それぞれ４個の８ビットガロア体乗算器１００_９〜１００_１２（編集番号＃９〜＃１２である）及びガロア体乗算器１００_１３〜１００_１６（編集番号＃１３〜＃１６である）を含む。脱混合ステージＳＴＡＧＥ_３、ＳＴＡＧＥ_４は、逆混合を行い、それぞれ混合ステージＳＴＡＧＥ_２、ＳＴＡＧＥ_１の相応する混合操作に相対する。
【００７０】
６４ビット線形フィードバックシフトレジスタ（LFSR_INV）１０８は、２つの３２ビットマッピングキーＫ１_ＩＮＶ、Ｋ２_ＩＮＶを出力する。脱混合ステージＳＴＡＧＥ_３において、３２ビットマッピングキーＫ２_ＩＮＶは、４個のサブキーＫ２１-1〜Ｋ２４-1に分割され、それは、それぞれサブキーＫ２１〜Ｋ２４の乗算逆数に等しい。同様に、脱混合ステージＳＴＡＧＥ_４において、３２ビットマッピングキーＫ１_ＩＮＶは、４個のサブキーＫ１１-1〜Ｋ１４-1に分割され、それは、それぞれサブキーＫ１１〜Ｋ１４の乗算逆数に等しい。
【００７１】
６４ビット線形フィードバックシフトレジスタ（LFSR）１０４、６４ビット線形フィードバックシフトレジスタ（LFSR_INV）１０８は、相応する初期値に初期化され、続いて同期してシフトされ、脱混合ステージＳＴＡＧＥ_３、ＳＴＡＧＥ_４において脱混合を行うことに用いる８個のサブキーが混合ステージＳＴＡＧＥ_２、ＳＴＡＧＥ_１において混合を行うことに用いられる８個のサブキーの乗算逆数に等しい。
【００７２】
実施例において、６４ビット線形フィードバックシフトレジスタ（LFSR）１０４、６４ビット線形フィードバックシフトレジスタ（LFSR_INV）１０８の二者は、同一に初期化され且つ同期シフトされ、それに何れも同一の３２ビット値を出力させる。図４中の８ビット逆キーは、ルックアップテーブルを使用して６４ビット線形フィードバックシフトレジスタ（LFSR）１０４が出力する相応する８ビットグループ中から導出し、前記ルックアップテーブルは、ガロア体要素をそのガロア体乗算逆数に変換する。
【００７３】
脱混合ステージＳＴＡＧＥ_３において、３２ビット混合データＭＸは、４個の８ビットデータＷ１〜Ｗ４に分割される。脱混合ステージＳＴＡＧＥ_３は、Ｚ１＝Ｗ１*Ｋ２１-1、…、Ｚ４＝Ｗ４*Ｋ２４-1を計算することによってデータＺ１〜Ｚ４を復元する。脱混合ステージ６４は、脱混合ステージＳＴＡＧＥ_３、ＳＴＡＧＥ_４の間で相互接続方式を応用し、前記図３の混合ユニット４８中に使用されるデータＹ１〜Ｙ４からデータＺ１〜Ｚ４へのマッピングを逆転し、データＺ１〜Ｚ４からＹ１〜Ｙ４を復元する。脱混合ステージＳＴＡＧＥ_４は、Ｘ１＝Ｙ１*Ｋ１１-1、…、Ｘ４＝Ｙ４*Ｋ１４-1を計算することによって８ビットのデータＸ１〜Ｘ４を復元する。続いて、前記４個の８ビットデータＸ１〜Ｘ４の結果を互いに組み合わせて３２ビットの平文データＤＸを復元する。
【００７４】
開示する技術において、ホストコンピュータ及びメモリデバイスは、セキュアリンクを介して通信する。しかしながら、提示する技術は、任意のその他の適合する各方面の通信が用いる任意のその他の適合する通信リンクを保護することに適用される。
【００７５】
本文で説明する実施例は、主にセキュアメモリデバイスに対する応用であるが、本文で説明する方法及びシステムは、その他の応用、例えば、各種その他のデータ伝送の応用に用いることもできる。例えば、開示する技術は、任意の有線又は無線通信リンクを保護すること、及びファイルストレージのインタフェースを保護することに適用できる。
【００７６】
以上のごとく、本発明を実施形態により開示したが、もとより、本発明を限定するためのものではなく、当業者であれば容易に理解できるように、本発明の技術思想の範囲内において、適当な変更ならびに修正が当然なされうるものであるから、その特許権保護の範囲は、特許請求の範囲および、それと均等な領域を基準として定めなければならない。
【符号の説明】
【００７７】
２０  セキュアストレージシステム
２４  メモリデバイス
２８  ホストコンピュータ
３２  メモリアレイ
３４  リンク
３６  セントラルプロセッサユニット
４０  バインドキー
４４  バインドキー
４８  混合ユニット
５２  ストリーム暗号器
５６  秘密セッションキー
６０  ストリーム復号器
６４  脱混合ユニット
６８  秘密セッションキー
７２  パスワードシーケンスジェネレータ
７６  パスワードシーケンスジェネレータ
９０_１  ３２ビットガロア体乗算器
９０_２  ３２ビットガロア体乗算器
９４  線形フィードバックシフトレジスタ（LSFR）
９８  線形フィードバックシフトレジスタ（LSFR_INV）
１００_１〜１００_１６  ８ビットガロア体乗算器＃１〜＃１６
１０４  ６４ビット線形フィードバックシフトレジスタ（LSFR）
１０８  ６４ビット線形フィードバックシフトレジスタ（LSFR_INV）
【図１】
0006030103.tif 000002
【図２】
0006030103.tif 000003
【図３】
0006030103.tif 000004
【図４】
0006030103.tif 000005