図面 (/)

技術 ストレージデバイスによって支援されるインライン暗号化および暗号化解除

出願人 クアルコム,インコーポレイテッド
発明者 アサフ・シャチャム
出願日 2014年4月4日 (4年7ヶ月経過) 出願番号 2016-508960
公開日 2016年6月9日 (2年5ヶ月経過) 公開番号 2016-517241
状態 未査定
技術分野 暗号化・復号化装置及び秘密通信 記憶装置の機密保護
主要キーワード 電力管理サブシステム 光学ストレージデバイス インラインデータ 周辺サブシステム プロセッシング回路 状況インジケータ ランタイムデータ 例示的デバイス
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2016年6月9日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (20)

課題・解決手段

様々な特徴は、インライン暗号化およびインライン暗号化解除に関する。一態様では、インライン読取/書込動作が、システムオンアチップ(SoC)のホストストレージコントローラによるデータのインライン暗号化/暗号化解除を容易にするためのパラメータを提供するようにオフチップストレーデバイスを構成することによって実行される。ストレージデバイスによってホストストレージコントローラに提供されるパラメータは、データの特定のブロックに関する読取動作と書込動作とについて同一であるが、データのブロックごとに異なる識別子を含む。ホストストレージコントローラは、パラメータを初期ベクトルとして使用して、データの暗号化/暗号化解除で使用するための暗号化キーを生成する。ホストストレージコントローラおよびオフチップストレージデバイスの例示的な読取動作と書込動作について、本明細書で説明する。

概要

背景

データを保護するために、そのようなデータは、しばしば、伝送中および/または記憶される時に暗号化される。一例では、データは、ストレージバスを介してホストシステムオンアチップ(SoC)に接続された外部ストレージデバイス内に記憶される。通常のSoCは、アプリケーション処理回路と、SoCのハードウェア要素であるホストストレージコントローラとを含む可能性がある。アプリケーション処理回路は、外部ストレージデバイスから/への読取/書込トランザクションを開始するように働くホストソフトウェアを実行する。たとえば、ホストソフトウェアコンポーネントは、外部ストレージデバイスへ読取/書込トランザクションを発行するようにホストストレージコントローラに指示することができる。ホストストレージコントローラは、データをストレージデバイスに/からコピーするためにストレージバスを介して外部ストレージデバイスと通信し、その後、そのような動作の完了についてホストソフトウェアに通知する。ホストストレージコントローラは、別々のメモリバスを介してホストメモリアクセスすることもできる。通常、ホストメモリは、一般に、悪意のある攻撃から保護された、よりセキュアメモリであるが、外部ストレージデバイスは、一般に、そのような攻撃に脆弱な、より非セキュアオフチップメモリデバイスである。したがって、外部ストレージデバイスに記憶されるデータは、暗号化される必要がある可能性があるが、ホストメモリに記憶されるデータは、一般に、暗号化される必要がない。暗号化プロセスは、ホストストレージコントローラから入手可能ではないパラメータを必要とする可能性がある。そのようなシステム内では、ホストストレージコントローラは、通常、制限されたコマンド復号を有する(または全く有しない)チャネルとして動作する。読取/書込動作の複雑さ(たとえば、コマンド生成/復号およびアクセス最適化)は、ホストソフトウェア内と、ストレージデバイスによって実行されるファームウェア内とにある。したがって、外部ストレージデバイス内に記憶されるデータを保護するために、データの暗号化/暗号化解除は、通常は、ホストストレージコントローラによるのではなくホストソフトウェアおよび/またはストレージデバイスによって実行される。

概要

様々な特徴は、インライン暗号化およびインライン暗号化解除に関する。一態様では、インライン読取/書込動作が、システムオンアチップ(SoC)のホストストレージコントローラによるデータのインライン暗号化/暗号化解除を容易にするためのパラメータを提供するようにオフチップストレージデバイスを構成することによって実行される。ストレージデバイスによってホストストレージコントローラに提供されるパラメータは、データの特定のブロックに関する読取動作と書込動作とについて同一であるが、データのブロックごとに異なる識別子を含む。ホストストレージコントローラは、パラメータを初期ベクトルとして使用して、データの暗号化/暗号化解除で使用するための暗号化キーを生成する。ホストストレージコントローラおよびオフチップストレージデバイスの例示的な読取動作と書込動作について、本明細書で説明する。

目的

以下の説明では、本開示の様々な態様の完全な理解を提供する

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

ホストストレージコントローラの外部のストレージデバイスへの書込動作中にデータを暗号化するために使用可能な、前記ホストストレージコントローラでの方法であって、前記ストレージデバイスにデータを書き込む書込コマンドを、要求するホストソフトウェアコンポーネントから入手するステップと、前記ストレージデバイスに前記書込コマンドを送るステップと、前記データに関連するパラメータを前記ストレージデバイスから入手するステップと、前記パラメータに基づいて暗号化キーを生成するステップと、前記暗号化キーを使用して前記データを暗号化するステップとを含む、方法。

請求項2

前記暗号化されたデータを前記ストレージデバイスに送るステップをさらに含む、請求項1に記載の方法。

請求項3

前記データに関連する前記パラメータは、データの特定のブロックに関する読取動作と書込動作とについて同一であるが、データのブロックごとに異なる識別子を提供する、請求項1に記載の方法。

請求項4

前記データに関連する前記パラメータは、前記データを記憶するための論理ブロックアドレス(LBA)を含む、請求項3に記載の方法。

請求項5

前記データに関連する前記パラメータは、前記データ内のブロック数の表示をさらに含む、請求項3に記載の方法。

請求項6

前記データに関連する前記パラメータは、前記ストレージデバイスから、レディトゥートランスファ(RTT)要求データパケット内で受け取られる、請求項3に記載の方法。

請求項7

前記ストレージデバイスは、ユニバーサルフラッシュストレージ(UFS)デバイスであり、前記データに関連する前記パラメータは、RTT UFSプロトコル情報単位(UPIU)を含むデータパケット内で受け取られる、請求項6に記載の方法。

請求項8

個々の書込トランザクションに関連するキーインデックスを有する転送要求記述子を含む転送要求リストを維持するステップをさらに含む、請求項1に記載の方法。

請求項9

前記暗号化キーを生成するステップは、前記ストレージデバイスから入手された前記パラメータから初期ベクトルを生成するステップと、初期キーを入手するステップと、前記初期キーおよび前記初期ベクトルから前記暗号化キーを生成するステップとを含む、請求項1に記載の方法。

請求項10

前記ホストストレージコントローラは、システムオンアチップ(SoC)のコンポーネントであり、前記ストレージデバイスは、前記SoCの外部のオフチップストレージデバイスであり、前記ホストストレージコントローラは、前記オフチップストレージデバイスでの記憶のために前記データのインラインデータ暗号化を実行する、請求項1に記載の方法。

請求項11

ホストストレージコントローラの外部のストレージデバイスからの読取動作中にデータを暗号化解除するために使用可能な、前記ホストストレージコントローラでの方法であって、前記ストレージデバイスからデータを読み取る読取コマンドを、要求するホストソフトウェアコンポーネントから入手するステップと、前記ストレージデバイスに前記読取コマンドを送るステップと、暗号化されたデータと前記暗号化されたデータに関連するパラメータとを前記ストレージデバイスから入手するステップと、前記パラメータに基づいて暗号化解除キーを生成するステップと、前記暗号化解除キーを使用して前記暗号化されたデータを暗号化解除するステップとを含む、方法。

請求項12

前記暗号化解除されたデータを、前記要求するホストソフトウェアコンポーネントに提供するステップをさらに含む、請求項11に記載の方法。

請求項13

前記データに関連する前記パラメータは、データの特定のブロックに関する読取動作と書込動作とについて同一であるが、データのブロックごとに異なる識別子を提供する、請求項11に記載の方法。

請求項14

前記暗号化されたデータに関連する前記パラメータは、前記データを読み取るための論理ブロックアドレス(LBA)を含む、請求項11に記載の方法。

請求項15

前記暗号化されたデータに関連する前記パラメータは、前記暗号化されたデータ内のブロック数の表示を含む、請求項13に記載の方法。

請求項16

前記暗号化されたデータに関連する前記パラメータは、前記ストレージデバイスから、プロトコル情報単位内で受け取られる、請求項13に記載の方法。

請求項17

前記ストレージデバイスは、ユニバーサルフラッシュストレージ(UFS)デバイスであり、前記暗号化されたデータに関連する前記パラメータは、UFSプロトコル情報単位(UPIU)を含むデータパケット内で受け取られる、請求項16に記載の方法。

請求項18

個々の読取トランザクションに関連するキーインデックスを有する転送要求記述子を含む転送要求リストを維持するステップをさらに含む、請求項15に記載の方法。

請求項19

前記暗号化解除キーを生成するステップは、前記ストレージデバイスから入手された前記パラメータから初期ベクトルを生成するステップと、初期キーを入手するステップと、前記初期キーおよび前記初期ベクトルから前記暗号化解除キーを生成するステップとを含む、請求項11に記載の方法。

請求項20

前記ホストストレージコントローラは、システムオンアチップ(SoC)のコンポーネントであり、前記ストレージデバイスは、前記SoCの外部のオフチップストレージデバイスであり、前記ホストストレージコントローラは、前記オフチップストレージデバイスから受け取られた暗号化されたデータのインラインデータ暗号化解除を実行する、請求項11に記載の方法。

請求項21

データを記憶するためのストレージデバイスと、前記ストレージデバイスに結合された処理回路であって、ホストストレージコントローラを有し、前記ホストストレージコントローラは、前記ストレージデバイスにデータを書き込む書込コマンドを、要求するホストソフトウェアコンポーネントから入手し、前記ストレージデバイスに前記書込コマンドを送り、前記データに関連するパラメータを前記ストレージデバイスから入手し、前記パラメータに基づいて暗号化キーを生成し、前記暗号化キーを使用して前記データを暗号化するように構成される、処理回路とを含む、デバイス。

請求項22

前記ホストストレージコントローラは、前記暗号化されたデータを前記ストレージデバイスに送るようにさらに構成される、請求項21に記載のデバイス。

請求項23

前記データに関連する前記パラメータは、データの特定のブロックに関する読取動作と書込動作とについて同一であるが、データのブロックごとに異なる識別子を提供する、請求項21に記載のデバイス。

請求項24

前記データに関連する前記パラメータは、前記データ内のブロック数の表示をさらに含む、請求項23に記載のデバイス。

請求項25

前記ホストストレージコントローラは、システムオンアチップ(SoC)のコンポーネントであり、前記ストレージデバイスは、前記SoCの外部のオフチップストレージデバイスであり、前記ホストストレージコントローラは、前記オフチップストレージデバイスでの記憶のために前記データのインラインデータ暗号化を実行するように構成される、請求項21に記載のデバイス。

請求項26

データを記憶するためのストレージデバイスと、前記ストレージデバイスに結合された処理回路であって、ホストストレージコントローラを有し、前記ホストストレージコントローラは、前記ストレージデバイスからデータを読み取る読取コマンドを、要求するホストソフトウェアコンポーネントから入手し、前記ストレージデバイスに前記読取コマンドを送り、暗号化されたデータと前記暗号化されたデータに関連するパラメータとを前記ストレージデバイスから入手し、前記パラメータに基づいて暗号化解除キーを生成し、前記暗号化解除キーを使用して前記暗号化されたデータを暗号化解除するように構成される、処理回路とを含む、デバイス。

請求項27

前記ホストストレージコントローラは、前記暗号化解除されたデータを、前記要求するホストソフトウェアコンポーネントに提供するようにさらに構成される、請求項26に記載のデバイス。

請求項28

前記データに関連する前記パラメータは、データの特定のブロックに関する読取動作と書込動作とについて同一であるが、データのブロックごとに異なる識別子を提供する、請求項26に記載のデバイス。

請求項29

前記暗号化されたデータに関連する前記パラメータは、前記暗号化されたデータ内のブロック数の表示をさらに含む、請求項28に記載のデバイス。

請求項30

前記ホストストレージコントローラは、システムオンアチップ(SoC)のコンポーネントであり、前記ストレージデバイスは、前記SoCの外部のオフチップストレージデバイスであり、前記ホストストレージコントローラは、前記オフチップストレージデバイスから受け取られた暗号化されたデータのインラインデータ暗号化解除を実行するように構成される、請求項26に記載のデバイス。

技術分野

0001

米国特許法第119条の下での優先権の主張
本特許出願は、本願の譲受人に譲渡され、これによって参照によって特に本明細書に組み込まれている、2013年4月16日に出願した米国特許仮出願第61/812616号、名称「DEVICE ASSISTED INLINE STORAGE ENCRYPTION」の優先権を主張するものである。

0002

本開示は、外部記憶デバイスとともに使用されるホストストレージコントローラに関し、具体的には、データのインライン暗号化およびインライン暗号化解除に関する。

背景技術

0003

データを保護するために、そのようなデータは、しばしば、伝送中および/または記憶される時に暗号化される。一例では、データは、ストレージバスを介してホストシステムオンアチップ(SoC)に接続された外部ストレージデバイス内に記憶される。通常のSoCは、アプリケーション処理回路と、SoCのハードウェア要素であるホストストレージコントローラとを含む可能性がある。アプリケーション処理回路は、外部ストレージデバイスから/への読取/書込トランザクションを開始するように働くホストソフトウェアを実行する。たとえば、ホストソフトウェアコンポーネントは、外部ストレージデバイスへ読取/書込トランザクションを発行するようにホストストレージコントローラに指示することができる。ホストストレージコントローラは、データをストレージデバイスに/からコピーするためにストレージバスを介して外部ストレージデバイスと通信し、その後、そのような動作の完了についてホストソフトウェアに通知する。ホストストレージコントローラは、別々のメモリバスを介してホストメモリアクセスすることもできる。通常、ホストメモリは、一般に、悪意のある攻撃から保護された、よりセキュアメモリであるが、外部ストレージデバイスは、一般に、そのような攻撃に脆弱な、より非セキュアオフチップメモリデバイスである。したがって、外部ストレージデバイスに記憶されるデータは、暗号化される必要がある可能性があるが、ホストメモリに記憶されるデータは、一般に、暗号化される必要がない。暗号化プロセスは、ホストストレージコントローラから入手可能ではないパラメータを必要とする可能性がある。そのようなシステム内では、ホストストレージコントローラは、通常、制限されたコマンド復号を有する(または全く有しない)チャネルとして動作する。読取/書込動作の複雑さ(たとえば、コマンド生成/復号およびアクセス最適化)は、ホストソフトウェア内と、ストレージデバイスによって実行されるファームウェア内とにある。したがって、外部ストレージデバイス内に記憶されるデータを保護するために、データの暗号化/暗号化解除は、通常は、ホストストレージコントローラによるのではなくホストソフトウェアおよび/またはストレージデバイスによって実行される。

先行技術

0004

JESD220A標準規格文書
JESD223A標準規格文書

発明が解決しようとする課題

0005

しかしながら、その代わりにホストストレージコントローラによる効率的なインライン暗号化/暗号化解除を可能にする解決策の必要がある。

課題を解決するための手段

0006

ホストストレージコントローラの外部のストレージデバイスへの書込動作中にデータを暗号化するために使用可能な、ホストストレージコントローラでの方法は、ストレージデバイスにデータを書き込む書込コマンドを、要求するホストソフトウェアコンポーネントから入手するステップと、ストレージデバイスに書込コマンドを送るステップと、データに関連するパラメータをストレージデバイスから入手するステップと、パラメータに基づいて暗号化キーを生成するステップと、暗号化キーを使用してデータを暗号化するステップと含む。

0007

別の態様では、ホストストレージコントローラの外部のストレージデバイスからの読取動作中にデータを暗号化解除するために使用可能な、ホストストレージコントローラでの方法は、ストレージデバイスからデータを読み取る読取コマンドを、要求するホストソフトウェアコンポーネントから入手するステップと、ストレージデバイスに読取コマンドを送るステップと、暗号化されたデータと暗号化されたデータに関連するパラメータとをストレージデバイスから入手するステップと、パラメータに基づいて暗号化解除キーを生成するステップと、暗号化解除キーを使用して暗号化されたデータを暗号化解除するステップとを含む。

0008

さらに別の態様では、デバイスは、データを記憶するためのストレージデバイスと、ストレージデバイスに結合された処理回路であって、ホストストレージコントローラを有し、ホストストレージコントローラは、ストレージデバイスにデータを書き込む書込コマンドを、要求するホストソフトウェアコンポーネントから入手し、ストレージデバイスに書込コマンドを送り、データに関連するパラメータをストレージデバイスから入手し、パラメータに基づいて暗号化キーを生成し、暗号化キーを使用してデータを暗号化するように構成される、処理回路とを含む。

0009

さらに別の態様では、デバイスは、データを記憶するためのストレージデバイスと、ストレージデバイスに結合された処理回路であって、ホストストレージコントローラを有し、ホストストレージコントローラは、ストレージデバイスからデータを読み取る読取コマンドを、要求するホストソフトウェアコンポーネントから入手し、ストレージデバイスに読取コマンドを送り、暗号化されたデータと暗号化されたデータに関連するパラメータとをストレージデバイスから入手し、パラメータに基づいて暗号化解除キーを生成し、暗号化解除キーを使用して暗号化されたデータを暗号化解除するように構成される、処理回路とを含む。

0010

様々な特徴、性質、および利点は、図面に関連して解釈される時に、下で示される詳細な説明から明白になり、図面では、同様の符号が、終始対応して同一になる。

図面の簡単な説明

0011

インライン暗号化/暗号化解除を有する例示的なシステムオンアチップ(SoC)を示す図である。
例示的なアプリケーション処理回路、ホストストレージコントローラ、および外部ストレージデバイスと、それらの間で交換される情報とを示す図である。
SoCが、ストレージデバイスによって支援されるインライン暗号化/暗号化解除の態勢の整ったホストストレージコントローラを含む、例示的なSoCを詳細に示す図である。
オフチップストレージデバイスに関連するホストストレージコントローラによって実行され得る例示的なインライン暗号化/書込動作を示す図である。
ホストストレージコントローラとオフチップストレージデバイスとの間で実行される例示的なインライン暗号化/書込動作を示す図である。
ストレージデバイスによって支援されるインライン暗号化/暗号化解除のユニバーサルフラッシュストレージ(UFS:universal flash storage)実施態様に関してトランザクションキューイングとともに使用される例示的なレジスタおよびホストメモリ空間を示す図である。
UFS転送要求記述子(UTRD:UFS transfer request descriptor)がキーインデックスを含む、図6の実施態様とともに使用される例示的なUTRDを示す図である。
UFSプロトコル情報単位(UPIU:UFS protocol information unit)が論理ブロックアドレス(LBA)インジケータブロックカウントインジケータとを含む、図6の実施態様とともに使用される例示的なレディトゥートランスファ(RTT:ready to transfer)UPIUを示す図である。
オフチップストレージデバイスに関連してホストストレージコントローラによって実行され得る例示的なインライン暗号化解除/読取動作を示す図である。
ホストストレージコントローラとオフチップストレージデバイスとの間で実行される例示的なインライン暗号化解除/読取動作を示す図である。
UPIUがLBAインジケータとブロックカウントインジケータとを含む、図10の実施態様とともに使用される例示的な「データイン」UPIUを示す図である。
図1〜図11のシステム、方法、および装置を活用することができる処理システムを使用する装置のハードウェア実施態様の例を示すブロック図である。
図12の処理回路の例示的なコンポーネントを示すブロック図である。
図12の機械可読媒体の例示的な命令コンポーネントを示すブロック図である。
ストレージデバイスへの書込動作中にデータを暗号化する、ホストストレージコントローラで動作可能な方法を示す図である。
ストレージデバイスからの読取動作中にデータを暗号化解除する、ホストストレージコントローラで動作可能な方法を示す図である。
ホストストレージコントローラによる書込動作中のデータ暗号化を容易にする、ストレージデバイスで動作可能な方法を示す図である。
ホストストレージコントローラによる読取動作中のデータ暗号化解除を容易にする、ストレージデバイスで動作可能な方法を示す図である。
ストレージデバイスへの書込動作中にデータを暗号化する、ホストストレージコントローラで動作可能な代替の方法を示す図である。
ストレージデバイスからの読取動作中にデータを暗号化解除する、ホストストレージコントローラで動作可能な代替の方法を示す図である。

実施例

0012

以下の説明では、本開示の様々な態様の完全な理解を提供するために具体的な詳細が与えられる。しかしながら、当業者は、これらの特定の詳細なしで諸態様を実践できることを理解するであろう。たとえば、回路が、不必要な詳細で諸態様を不明瞭にすることを避けるためにブロック図で示される場合がある。他の場合に、周知の回路、構造、および技法が、本開示の諸態様を不明瞭にしないようにするために、詳細には示されない場合がある。

0013

「例示的」という単語は、本明細書では、「例、実例、または例示として働く」を意味するのに使用される。本明細書で「例示的」として説明される何らかの実施態様または態様は、必ずしも、本開示の他の態様より好ましいまたは有利と解釈されるべきではない。同様に、「諸態様」という用語は、本開示のすべての態様が、議論される特徴、利点、または動作のモードを含むことを必要としない。

0014

概要
複数の新規の特徴は、ストレージデバイスによって支援されるインライン暗号化およびインライン暗号化解除に関する。一態様では、インライン読取/書込動作が、システムオンアチップ(SoC)のホストストレージコントローラによるデータのインライン暗号化/暗号化解除を容易にするためのパラメータを提供するようにオフチップストレージデバイスを構成することによって実行される。本明細書で説明される様々な例では、オフチップストレージデバイスからホストストレージコントローラによって入手されるパラメータは、データの特定のブロックに関する読取動作と書込動作とについて同一であるが、データのブロックごとに異なる識別子を提供する。そのようなパラメータの特定の例は、データを暗号化/暗号化解除するためにストレージデバイスから入手される論理ブロックアドレス(LBA)である。しかしながら、高められたセキュリティを提供するために、他のパラメータを、LBAに加えてまたはその代わりに使用することができる。本明細書でインライン暗号化/暗号化解除手順の具体的な例を提供するために、以下の説明の一部は、LBAが使用される実施態様を対象とするが、LBAに加えてまたはその代わりに、他のパラメータを使用することができることを理解されたい。

0015

ホストストレージコントローラは、データの暗号化/暗号化解除で使用するキーを生成しまたは他の形で入手するために、ストレージデバイスから入手したパラメータを使用し、したがって、SoCの他のコンポーネントがそのような機能を実行しまたは制御する必要を軽減して、これによってより効率的なインライン暗号化/暗号化解除を提供する。LBAが、ホストストレージコントローラによってストレージデバイスから入手される例では、LBAは、暗号化/暗号化解除で使用される初期ベクトル(または初期化ベクトル)として使用される。この手順は、ホストソフトウェアから受け取られる読取/書込コマンドからそのような情報を抽出することを試みることによるなど、オフチップストレージデバイス以外のソースから初期ベクトルを他の形で入手するインライン暗号化/暗号化解除システムとは別個である。また、初期ベクトルとしてLBAを使用することによって、初期ベクトルが、書込/暗号化動作と読取/暗号化解除動作との両方について同一になり、これによって、ホストストレージコントローラが、以前に暗号化され、オフチップストレージデバイスに記憶されたデータを暗号化解除することが可能になることに留意されたい。さらに、初期ベクトルは、データのブロックごとに異なるものになり、これによって、データのブロックごとに一意初期値が提供される。さらに、初期ベクトルとしての使用のためにLBAまたは他の適切なパラメータをオフチップストレージデバイスから入手することによって、初期ベクトル情報を、オンチップメモリに記憶する必要がなくなり、したがって、貴重オンチップ記憶空間が節約される。また、通常、ホストストレージコントローラは、オフチップストレージデバイスによって使用される実際のストレージアドレスを与えられるのではなく、その代わりに、データのホストメモリアドレスだけを与えられ、このホストメモリアドレスは、同一のデータに対する読取動作と書込動作との間で異なる可能性がある。したがって、ホストメモリアドレスは、通常、インライン暗号化/暗号化解除のためには使用され得ない。これに関して、ストレージデバイスによって使用されるアドレス(物理的であれ論理的であれ)は、ホストプロセッサによって使用されるメモリアドレスとは異なるアドレス空間内にある。従来、ホストストレージコントローラは、暗号化/暗号化解除での使用のためにオフチップストレージデバイスからストレージアドレスを受け取らず、したがって、これを使用することができない。

0016

本明細書で説明されるいくつかの例は、以前はJoint Electron Device Engineering Council(JEDEC)と称したJEDEC Solid State Technology AssociationのUFSホストコントローラインターフェース標準規格全般的に従って実行される読取動作と書込動作を含む。たとえば、2012年6月のJESD220A標準規格文書およびJESD223A標準規格文書を参照されたい。JEDEC UFS読取動作およびJEDEC UFS書込動作は、下で説明されるように、本明細書で開示される様々な特徴を提供するために変更される。しかしながら、本明細書で説明される特徴のうちの少なくともいくつかを、プロプライエタリシステムおよび他のシステムを含む、全般的にJEDEC標準規格に従わない他のシステムで実施できることを理解されたい。

0017

インライン書込暗号化および読取暗号化解除を有する例示的デバイス
図1に、インライン暗号化/暗号化解除を有する例示的なシステムオンアチップ100をおおまかに示す。短く言うと、SoC 100は、ホストソフトウェアまたはソフトウェアコンポーネント102を実行する態勢が整ったアプリケーション処理回路101を含み、ホストストレージコントローラ104をさらに含む。この例では、ホストストレージコントローラ104は、ストレージバス108を介して外部ストレージデバイス106に書き込まれるデータを暗号化し、かつ/または同一のストレージバスを介してストレージデバイス106から読み取られるデータを暗号化解除することができるインライン暗号化/暗号化解除モジュール105を含む。これらの動作を、メモリバス112を介してアクセスされるホストメモリ110内に記憶されたデータまたは他のパラメータに関連して実行することができる。暗号化/暗号化解除モジュール105によって実行される動作を容易にするために、ストレージデバイス106は、読取動作中および書込動作中にホストストレージコントローラ104にパラメータ(LBA値など)を提供するように構成される。

0018

図2は、アプリケーション処理回路202、ホストストレージコントローラ204、および外部ストレージデバイス206の例示的な読取動作と書込動作を示し、インライン暗号化/暗号化解除とともに使用するためにそれらの間で交換される情報を具体的に示すタイミング図200を提供するものである。処理は、アプリケーション処理回路202が、外部ストレージデバイス206に書き込まれるデータを識別する内部接続線を介してホストストレージコントローラ204に書込コマンド208を(具体的には図示されていない、要求するホストソフトウェアコンポーネントの代わりに)送ることから始まる。データは、ホストメモリアドレスによって識別され得る(ホストメモリデバイスは、他のコンポーネントをより明瞭に示すことを可能にするために、この図には具体的に示されていない)。ホストストレージコントローラ204は、記憶されるデータの量を示す書込コマンド要求210をストレージバス(やはり図2には図示せず)を介して外部ストレージデバイス206に送ることによって、書込コマンドに応答する。書込コマンド要求と、様々なコンポーネントの間で交換され得る他のパラメータ、データパケット、およびコマンドとを、下でJEDECベースの例に関連して提供する。

0019

書込コマンド要求に応答して、外部ストレージデバイス206は、データを記憶するための適切な位置を識別するために、そのメモリを調べる。この位置は、そのストレージデバイスLBAと、そのLBAから始まって記憶されるデータのブロック数(すなわち、ブロックカウント)とによって識別される。ブロック数は、記憶されるデータの量と、ストレージデバイス内の個々のストレージブロックのサイズとに依存する。いくつかの場合に、データは、外部ストレージデバイス206内の複数の異なる位置に記憶される必要があり、したがって、複数のLBA値および対応するブロックカウントが、識別される必要がある可能性がある。図2のコンポーネントの全体的な動作を説明する際の明瞭さのために、単一のLBAだけが必要である例を提示する。その後、LBAおよびブロックカウント212が、外部ストレージデバイス206からホストストレージコントローラ204に送られる(たとえば図8を参照して下で議論される他のパラメータと一緒に)。

0020

214では、ホストストレージコントローラ204が、LBA/ブロックカウントと初期キーとに基づいて暗号化キーを生成し、この初期キーは、ホストストレージコントローラ204がそれ自体で生成するか、ホストメモリから取り出すかのいずれかである。初期キーが、ホストストレージコントローラ204によって生成される場合には、ホストストレージコントローラ204は、暗号化解除での後続の使用のために、その初期キーをホストメモリ内に保存することができる。例示的な暗号化キー生成技法は、下で議論されるが、ここで、LBAは、暗号化キーを生成するための初期キーと一緒に暗号化関数に適用するための初期ベクトルとして使用される(単独でまたはブロックカウントと組み合わせて)。216では、ホストストレージコントローラ204が、外部ストレージデバイスに記憶すべきデータを内部ホストメモリから入手し、暗号化キーを使用してそのデータを暗号化する。暗号化されたデータ218が、外部ストレージデバイス206にストレージバスを介して送られ、219では、暗号化されたデータ218が、前に示されたLBAに外部ストレージデバイス206によって記憶される。212と219との間(両端を含む)のプロセスを、必要な場合に任意の回数だけ繰り返すことができることに留意されたい。図示されていない様々な肯定応答インジケータを、ストレージデバイスによってホストストレージコントローラに、およびホストストレージコントローラによってアプリケーション処理回路に、提供することができる。これらおよび他の例示的な実施詳細については、下を参照されたい。

0021

後刻に、アプリケーション処理回路202が、要求するホストソフトウェアコンポーネントの代わりに、外部ストレージデバイスからデータを取り出すことを必要とする場合がある。したがって、アプリケーション処理回路202は、外部ストレージデバイス206から読み取られるべきデータを識別する読取コマンド220をホストストレージコントローラ204に送る。このデータは、やはり、ホストメモリアドレスによって識別され得る。ホストストレージコントローラ204は、取り出されるべきデータを識別するそれ自体の読取コマンド222を外部ストレージデバイス206に送ることによって、読取コマンドに応答する。外部ストレージデバイス206は、223で、そのメモリから暗号化されたデータを取り出し、224で、暗号化されたデータと対応するLBAおよびブロックカウントとをホストストレージコントローラ204に送る。やはり、例示的なJEDECベースの実施態様の詳細を、下で提示する。226では、ホストストレージコントローラ204が、LBA/ブロックカウントと初期キー(ホストメモリから取り出すことができる)とに基づいて、データの暗号化解除キーを生成する。228では、ホストストレージコントローラ204が、暗号化解除キーを使用して、外部ストレージデバイス206から取り出されたデータを暗号化解除し、230では、要求するホストソフトウェアによる使用のために、暗号化解除されたデータをホストメモリに書き込む。223と230との間(両端を含む)のプロセスをも、必要な場合に任意の回数だけ繰り返すことができることに留意されたい。

0022

本明細書で説明されるインライン暗号化/暗号化解除のシステムおよび手順を、広範囲のデバイス内で、および広範囲のアプリケーションのために、活用しまたは使用することができる。具体的な例を提供するために、インライン暗号化/暗号化解除モジュールを有するホストストレージコントローラが、UFSデバイスなどのオフチップストレージデバイスを有するモバイル通信デバイス内での使用のためにSoC処理回路上で提供される、例示的なハードウェア環境を説明する。他の例示的なハードウェア環境は、他の通信デバイスおよびコンポーネントと、それらとともに使用するための様々な周辺デバイスなどを含む。さらに、(非セキュアな)オフチップストレージデバイスから前述のパラメータを受け取ることに対する代替案として、そのようなパラメータを、その代わりに、ホストストレージコントローラによって生成し、暗号化/暗号化解除での使用のためにセキュアメモリ内で維持することができ、そのような実施態様については、下で図19および図20を参照して短く説明する。

0023

例示的なシステムオンアチップハードウェア環境
図3に、様々な新規の特徴を活用できる一例による、モバイル通信デバイスのSoC処理回路300を示す。このSoC処理回路は、Qualcomm Incorporated社のSnapdragon(商標)処理回路とすることができる。SoC処理回路300は、様々なソフトウェアコンポーネント313(図示の明瞭さのために、CPUコアとは別々のブロックとして図示されているが、ソフトウェアがCPUコア312内で走行できることを了解されたい)に関連して動作する態勢が整っているマルチコアCPU 312を含むアプリケーション処理回路310を含む。アプリケーション処理回路310は、通常、モバイル通信デバイスのすべてのコンポーネントの動作を制御する。一態様では、アプリケーション処理回路310は、暗号化/暗号化解除モジュール351を使用してインライン暗号化およびインライン暗号化解除を実行する態勢が整っているホストストレージコントローラ350に結合される。アプリケーション処理回路310は、SoC処理回路300の様々なコンポーネントのためのブートシーケンス命令を記憶するブートROM 318をも含むことができる。SoC処理回路300は、アプリケーション処理回路310によって制御される1つまたは複数の周辺サブシステム320をさらに含む。周辺サブシステム320は、ストレージサブシステム(たとえば、読取専用メモリ(ROM)、ランダムアクセスメモリ(RAM))、ビデオ/グラフィックスサブシステム(たとえば、ディジタル信号処理回路(DSP)、グラフィックス処理回路ユニット(GPU))、オーディオサブシステム(たとえば、DSP、アナログ-ディジタル変換器(ADC)、ディジタル-アナログ変換器(DAC))、電力管理サブシステムセキュリティサブシステム(たとえば、他の暗号化コンポーネントおよびディジタル著作権管理(DRM)コンポーネント)、入出力(I/O)サブシステム(たとえば、キーボードタッチスクリーン)、ならびに有線およびワイヤレス接続性サブシステム(たとえば、universal serial bus(USB)、全地球測位システム(GPS)、Wi-Fi、Global System Mobile(GSM(登録商標))、符号分割多元接続(CDMA)、4G Long Term Evolution(LTE)モデム)を含むことができるが、これに限定されない。モデムサブシステムである例示的な周辺サブシステム320は、DSP 322、様々な他のハードウェア(HW)およびソフトウェア(SW)コンポーネント324、ならびに様々なラジオ周波数(RF)コンポーネント326を含む。一態様では、各周辺サブシステム320は、関連する周辺サブシステム320のプライマリブートイメージ(図示せず)を記憶するブートROM 328をも含む。

0024

SoC処理回路300は、内部共有ストレージ332(たとえば、スタティックRAM(SRAM)、ダブルデータレート(DDR)シンクロナスダイナミック(SD)RAM、DRAMフラッシュメモリなど)など、様々なランタイムデータまたは他のパラメータを記憶し、ホストメモリを提供するために、アプリケーション処理回路310および様々な周辺サブシステム320によって共有される、様々な内部共有HWリソース330をさらに含む。図3の例では、内部共有ストレージ332は、暗号化キーを記憶し、いくつかの例ではインライン暗号化/暗号化解除モジュール351によって使用される前述のパラメータを記憶する(具体的には、これらのパラメータがオフチップストレージデバイスによって提供されない場合に)のに使用され得るキー/パラメータストレージ要素、部分、またはコンポーネント333を含む。他の例では、キーは、モバイルデバイス内の他所に記憶され、あるいは、ホストストレージコントローラによって必要に応じて生成される。

0025

一態様では、SoC 300のコンポーネント310、318、320、328、および330は、シングルチップ基板上に集積される。SoC処理回路300は、異なるチップ基板上に配置され得、1つまたは複数のバスを介してSoC処理回路300と通信することができる、様々な外部共有HWリソース340をさらに含む。外部共有HWリソース340は、たとえば、オペレーティングシステム(OS)情報、システムファイルプログラム、アプリケーション、ユーザデータ、オーディオ/ビデオファイル、その他などの様々なタイプのデータを記憶するためにアプリケーション処理回路310および様々な周辺サブシステム320によって共有され得る、外部共有ストレージ342(たとえば、DDR RAM(登録商標)またはDRAM)および/または永久的もしくは半永久的データストレージ344(たとえば、Secure Digital(SD)カードハードディスクドライブ(HDD)、embedded multimedia card(e.MMCまたはe-MMC)デバイス、UFSデバイスなど)を含むことができる。外部リソースおよびデバイス340内に記憶されるデータの少なくとも一部は、書込動作中にホストストレージコントローラ350によって暗号化され得、その後、読取動作中にホストストレージコントローラによって暗号化解除され得る。

0026

SoC処理回路300を組み込んだモバイル通信デバイスがアクティブ化される時に、SoC処理回路は、システムブートアッププロセスを開始する。具体的には、アプリケーション処理回路310が、様々な周辺サブシステム320のためのブートシーケンス命令を含む、SoC処理回路300のためのブート命令を取り出すために、ブートROM 318にアクセスする。周辺サブシステム320は、追加の周辺ブートROM 328を有することもできる。

0027

例示的なインライン暗号化/暗号化解除手順
図4に、図3の処理回路のホストストレージコントローラまたは他の適切に態勢の整ったコンポーネント、デバイス、システム、もしくは処理回路によって使用され得る例示的なインライン暗号化/書込動作400を示す。図4の手順は、全般的に、ストレージデバイスによって支援されるインライン暗号化を提供するように変更された、JEDEC標準規格およびプロトコルに従って実行される。この例では、LBAは、初期ベクトルを生成する際の使用のためにホストストレージコントローラによってストレージデバイスから受け取られるが、すでに説明したように、LBA以外のパラメータを、その代わりに使用することができる。ステップ402では、ホストストレージコントローラが、そのホストストレージコントローラを組み込んだSoC処理回路の外部のUFSデバイスなどのオフチップストレージデバイスにデータを書き込む書込コマンドを、要求するホストソフトウェアコンポーネントから受け取る。この書込コマンドを、内部SoCコマンド伝送線を介して受け取ることができる。ステップ404では、ホストストレージコントローラが、ストレージバスを介してオフチップストレージデバイスにコマンド記述子ブロック(CDB)書込コマンドを送り、このコマンドは、全般的にJEDEC標準規格に従って、UFSプロトコル情報単位(UPIU)として構成される。ステップ406では、これに応答して、ホストストレージコントローラが、ストレージバスを介してオフチップストレージデバイスからレディトゥートランスファ(RTT)要求UPIUを受け取り、ここで、RTT要求UPIUは、直接メモリアクセス(DMA)コンテキストデータを有し、記憶されるべきデータのブロック数の表示と一緒に、記憶されるべきデータの最初のブロックのLBAなどの1つまたは複数のパラメータを指定するパケットヘッダを含む離散連続ブロックを伴って構成される。ステップ406のRTTが、ステップ404の直後に受け取られる必要がないことに留意されたい。そうではなく、RTTを、後刻に受け取ることができる。例示的なRTT要求UPIUを、図8に示し、下で説明する。

0028

ステップ408では、ホストストレージコントローラが、データの最初のブロックのLBAとブロック数の表示とに少なくとも部分的に基づいて、たとえば初期ベクトルとしてLBAを(単独でまたはブロックカウントと組み合わせて)使用することによって、またはLBAから初期ベクトルを生成することによって、暗号化キーを生成しまたは他の形で入手する。本明細書では、「入手すること」という用語が、たとえば計算すること、コンピューティング、生成すること、獲得すること、受け取ること、取り出すこと、または何らかの他の適切な対応する行動を実行することを幅広包含することに留意されたい。全体的なシステムのセキュリティ必要に応じて、ステップ408で様々な暗号化キー生成技法を使用することができる。少なくともいくつかの例では、ホストストレージコントローラは、初期ベクトルを生成するのにLBAを使用する(または、初期ベクトルとしてLBAを使用する)。ホストストレージコントローラは、ホストメモリから(図3のキーストレージ333からなど)初期キーをも入手する。その後、ホストストレージコントローラは、初期キーおよび初期ベクトルから暗号化キーを生成する。たとえば初期ベクトルおよび初期キーを、Advanced Encryption Standard(AES)暗号化機能に適用して、暗号化キー(暗号鍵)を生成することができる。

0029

ステップ410では、ホストストレージコントローラが、暗号化キーを使用してデータを暗号化する。様々な特定の暗号化技法を、ステップ410で使用することができる。AESの例では、初期ベクトルおよび初期キーから生成された暗号化キー(暗号鍵)が、暗号化されるべきデータに1回または複数回適用され得る。また、ステップ410では、ホストストレージコントローラが、書込トランザクションのためのUFS転送要求記述子(UTRD)内にキーインデックスを保存する。UTRDのキューを有する例示的なホストメモリ空間を、図6および図7に示し、下でUFSの例について説明する。ステップ412では、ホストストレージコントローラが、1つまたは複数の「データアウト」UPIUを使用してストレージバスを介してその中での記憶のためにストレージデバイスに暗号化されたデータを送り、暗号化されたデータのストレージを確認する状況情報を有する応答UPIUを受け取る。

0030

図5に、前述のストレージバスを介してホストストレージコントローラ502とオフチップストレージデバイス504との間で交換されるコマンドおよび他のパケットを示すタイミング図/流れ図500によって例示的なインライン暗号化/書込動作をさらに示す。当初に、データがオフチップストレージデバイスに書き込まれる必要があることを示す書込CDB情報を含むコマンドUPIU 506が、ホストストレージコントローラからオフチップストレージデバイスに伝送される。その後、これに応答して、オフチップストレージデバイスがデータを受け取る準備ができていることを示すRTT UPIU 508が、オフチップストレージデバイスからホストストレージコントローラに伝送される。すでに説明したように、RTT UPIUは、DMAコンテキストデータを含み、記憶されるべきデータのブロック数の表示と一緒に記憶されるべきデータの最初のブロックのLBAを含む1つまたは複数のパラメータを指定するパケットヘッダを含む離散連続ブロックを伴って構成される。図5には示されていないが、RTT UPIU 508の受取の後に、ホストストレージコントローラは、すでに説明したように、書き込まれるべきデータを暗号化する。オフチップストレージデバイスに記憶されるべき暗号化されたデータを含む1つまたは複数のデータアウトUPIU 510が、ホストストレージコントローラからオフチップストレージデバイスに伝送される。別のRTT UPIU 512に応答して、ホストストレージコントローラは、さらなる暗号化されたデータを含む1つまたは複数の追加のデータアウトUPIU 514を送る。最終的に、状況情報を含む応答UPIU 516が、全般的にJEDECUFSプロトコルに従って、オフチップストレージデバイスからホストストレージコントローラに送られる。応答UPIUは、たとえば、データが成功して記憶されたことを示すことができる。

0031

図6に、様々な前述のパラメータおよびコマンドを記憶し、維持し、または処理することができるメモリ空間600を使用する例示的なUFSホストコントローラインターフェース(HCI)の全般的なアーキテクチャを示す。より具体的には、この図は、ホストメモリ空間602と入出力(I/O)メモリ/レジスタ空間604とを示す。図6は、様々なリスト、コマンド、およびデータバッファによる例示的なトランザクションキューイングをも示す。図6の全体的な特徴を、全般的にJEDECUFS標準規格に従って構成することができるので、この特徴については、各々がキーインデックス(KEYIDX)を有するUTRDを強調して短く説明するのみとする。ホストメモリ空間602は、各々がKEYIDXを含むUTRDをリストするUTPトランザクション要求リスト606を維持する。KEYIDXを有するUTRDは、この図では608と表される。キーインデックスを有する個々の例示的なUTRDを、図7に示し、下で説明する。図6のUTRDは、UTPトランザクション要求リスト606内でのキューイングのために入出力レジスタ/メモリ空間のUTPトランザクション要求コンポーネント610を介して受け取られる。その後、リスト606のUTRDは、JEDEC標準規格に従って、対応する応答UPIUおよび物理領域記述テーブル(PRDT:physical region description table)とともに使用するための、対応するコマンドUPIUを生成するのに使用される。図6では、コマンドUPIU、応答UPIU、およびPRDTの各グループが、612と表される。少なくともいくつかのグループ化は、グループ614によって表されるように、PRDTを含まなくてもよい。PRDTに関連するデータを、データバッファ616に記憶することができる。さらに、ホストメモリ空間602は、入出力レジスタ/メモリ空間604のUTP管理要求622を介して受け取られる様々なTM要求UPIU 620を記憶しまたはキューイングするためのUTPタスク管理要求リスト618を含む。完全さのために、入出力レジスタ/メモリ空間604の他のコンポーネントが、特に言及され、これらは、ホストコントローラ能力624、割込みおよびホスト状況インジケータ626、UFS相互接続(UIC)コマンド628、ならびにベンダ固有値630を含む。図6に示されたこれらおよび他のコンポーネントに関するさらなる情報については、前述のJEDEC文書を参照されたい。

0032

図7に、702と表される、前述のキーインデックスを含む例示的なUTRD 700を示す。この例では、キーインデックスは、8ビットID:KEYIDX[7:0]である。コマンドタイプ値、全体的コマンド状況値、UTPコマンド記述子ベースアドレス値(図示のように2つの別々の部分に記憶される)、応答UPIUオフセット値、応答UPIU長さ値、PRDTオフセット値、およびPRDT長さ値など、UTRDの様々な他の要素が、完全さのために示されている。やはり、図7に示されたこれらおよび他の値に関するさらなる情報については、前述のJEDEC文書を参照されたい。

0033

図8に、804と表される前述のLBAと806と表されるブロックカウントとを含むRTT UPIU 800を示す。この例では、LBAは、32ビット値:LBA[31:0]であり、ブロックカウントは、8ビット値:BLKCNT[7:0]である。論理ユニット番号(LUN)、総エクストラヘッダセグメント(EHS:extra header segment)長、データセグメント長、データバッファオフセットデータ転送カウント、およびエンドツーエンド巡回冗長検査(E2ECRC:end to end cyclic redundancy check)ヘッダなど、RTT UPIUの様々な他の要素が、完全さのために示されている。この図に注記されているように、ヘッダは、HDビットが1の場合に省略され得る。1がセットされている時に、HDビットは、すべてのヘッダセグメントのエンドツーエンドCRCが、UPIU内に含まれることを指定する。CRCフィールドは、ヘッダエリア内のすべてのフィールドを含む。CRCは、ヘッダに続く32ビット語位置に配置される。エンドツーエンドCRCは、JEDEC標準規格のすべてのバージョンで必ずしもサポートされてはおらず、したがって、HDに0をセットすることができる。図8に示されたこれらおよび他の値に関するさらなる情報については、前述のJEDEC文書を参照されたい。

0034

LBAをRTT UPIU内で提供するのではなく、1つまたは複数の代替のパラメータをその代わりに提供することができることに留意されたい。一般的に言って、様々なパラメータ、具体的には暗号化/暗号化解除での使用のための初期ベクトルを生成するのに適するパラメータを、使用することができる。これに関して、パラメータは、読取コマンドと書込コマンドとについて同一であり(書込動作中に暗号化されたデータを後続の読取動作中に簡単に暗号化解除できるようにするために)、データブロックごとに一意でなければならない識別子を含まなければならない。LBAは、これらの要件のために働くので、本明細書で例示的なパラメータとして使用されるが、具体的にはLBAを変更するか破壊する可能性がある攻撃を阻止するために、追加のセキュリティ特徴を提供する他の値を、その代わりに使用することができる。

0035

ここで図9〜図11に移って、インライン暗号化解除/読取動作を、これから、図4〜図8の技法を使用して以前に暗号化され、ストレージに書き込まれたデータの読取および暗号化解除での使用について説明する。

0036

図9に、図3の処理回路のホストストレージコントローラまたは他の適切に態勢の整ったコンポーネント、デバイス、システム、もしくは処理回路によって実行され得る例示的なインライン暗号化解除/読取動作900を示す。ステップ902では、ホストストレージコントローラが、そのホストストレージコントローラを組み込んだSoC処理回路の外部のUFSデバイスなどのオフチップストレージデバイスからデータを読み取る読取コマンドを、要求するホストソフトウェアコンポーネントから受け取る。読取コマンドを、内部SoCコマンド伝送線を介して受け取ることができる。ステップ904では、ホストストレージコントローラが、ストレージバスを介してオフチップストレージデバイスにCDB読取コマンドを送り、コマンドは、全般的にJEDEC標準規格に従って、読み取られるべきデータを識別するUPIUとして構成される。ステップ906では、これに応答して、ホストストレージコントローラが、ストレージバスを介してオフチップストレージデバイスから1つまたは複数の「データイン」UPIUを受け取り、このUPIUは、やはり、取り出されるべきデータのブロック数の表示と一緒に、取り出されるべきデータの最初のブロックのLBAなどの1つまたは複数のパラメータを指定するパケットヘッダを含む離散連続ブロックを伴って構成される。例示的なデータインUPIUを、図11に示し、下で説明する。

0037

ステップ908では、ホストストレージコントローラが、トランザクションのための対応するUTRD(すでに説明したように、キーインデックス値を含む)に関連するデータの最初のブロックのLBAおよびデータのブロック数に少なくとも部分的に基づいて、読み取るべきデータの暗号化解除キーを生成するか、SoCのホストメモリのキーメモリから他の形で取り出す。一例では、ホストストレージコントローラは、LBAから初期ベクトルを生成し(または、初期ベクトルとしてLBAを使用し)、メモリから初期キーを入手し(トランザクションのためのキーインデックスに関連する)、その後、初期キーおよび初期ベクトルから暗号化解除キーを生成する。システムによって使用される暗号化/暗号化解除の特定のタイプに依存して、暗号化解除キーが、単に暗号化ではなく暗号化解除のために使用される、前述の暗号化キーと同一のキーとされ得ることに留意されたい。しかしながら、いくつかの実施態様では、暗号化解除キーは、暗号化キーと異なるものとすることができ、したがって、一般性のために、本明細書では、暗号化キーと暗号化解除キーとに別々の用語を使用する。ステップ910では、ホストストレージコントローラが、暗号化解除キーを使用してデータを暗号化解除する。ステップ912では、ホストストレージコントローラが、通常はデータをシステムメモリ(たとえば、ホストメモリ)に書き込むことによって、暗号化解除されたデータを、要求するホストソフトウェアコンポーネントに提供しまたは「送る」。

0038

図10に、前述のストレージバスを介してホストストレージコントローラ1002とオフチップストレージデバイス1004との間で交換されるコマンドを示すタイミング図/流れ図1000によって例示的なインライン暗号化解除/読取動作を示す。当初に、データがオフチップストレージデバイスから読み取られる必要があることを示すCDB読取情報を含むコマンドUPIU 1006が、ホストストレージコントローラからオフチップストレージデバイスに伝送される。これに応答して、暗号化されたデータを含む、1つまたは複数のデータインUPIU 1008が、オフチップストレージデバイスからホストストレージコントローラに伝送される。すでに説明したように、各データインUPIUは、読み取られるデータのブロック数の表示と一緒に、読み取られるデータの最初のブロックのLBAなどの1つまたは複数のパラメータを指定するパケットヘッダを含む離散連続ブロックを伴って構成される。最終的に、状況情報を含む応答UPIU 1010が、全般的にJEDECUFSプロトコルに従って、ホストコントローラからオフチップストレージデバイスに送られる。応答UPIUは、たとえば、データがホストストレージコントローラによって成功して受け取られたことを示すことができる。

0039

図11に、1104と表される前述のLBAおよび1106と表されるブロックカウントならびにこの図のUPIUの行1108から始まる暗号化されたデータを含む、例示的なデータインUPIU 1100を示す。やはり、LBAは、32ビット値:LBA[31:0]であり、ブロックカウントは、8ビット値:BLKCNT[7:0]である。タスクタグ、総EHS長、データセグメント長、データバッファオフセット、データ転送カウント、およびE2ECRC値を含む1つまたは複数のヘッダなど、UPIU内の様々な他の要素が、完全さのために示されている。この図に注記されているように、第1のE2ECRCヘッダは、HDビットが1の場合に省略され得る。第2のE2ECRCヘッダは、DDビットが0の場合に省略され得る。1がセットされている時に、DDビットは、データセグメントのE2ECRCがUPIU内に含まれることを指定する。32ビットCRCが、データセグメント内のすべてのフィールドにわたって計算され、UPIUの最後の語位置としてデータセグメントの末尾に配置され得る。注記したように、エンドツーエンドCRCは、JEDEC標準規格のすべてのバージョンで必ずしもサポートされてはおらず、したがって、DD(ならびにHD)に0をセットすることができる。図11に示されたこれらおよび他の値に関するさらなる情報については、前述のJEDEC文書を参照されたい。UPIUの受取時に、ホストストレージコントローラは、パケットから暗号化されたデータを抽出し、LBA値およびBLKCNT値を使用して、データを暗号化解除するための暗号化解除キーを入手しまたは生成する。LBAは、データインUPIU内に含まれるデータのための暗号化解除キーを入手しまたは生成するための初期ベクトルとして使用され得る。すでに注記したように、LBAの他にまたはこれに加えて、他のパラメータを使用することができる。他のパラメータが使用される場合に、そのパラメータは、そのパラメータが、データの特定のブロックに関する読取動作と書込動作とについて同一になる(ホストストレージコントローラが以前に暗号化されたデータを暗号化解除することを可能にするために)が、データのブロックごとに異なる(一意性を提供するために)識別子を提供するようになるように選択され、使用されなければならない。

0040

例示的なシステムおよび方法
図12に、図2〜図11のシステム、方法、および装置を実施することができる全体的なシステムまたは装置1200を示す。本開示の様々な態様によれば、要素、要素の何らかの部分、または要素の何らかの組合せを、図3のSoC処理回路などの1つまたは複数の処理回路1204を含む処理システム1214を用いて実施することができる。たとえば、装置1200を、モバイル通信システムユーザ機器(UE)とすることができる。装置1200を、無線ネットワーク制御装置(RNC)とともに使用することができる。SoCに加えて、処理回路1204の例は、マイクロプロセッシング回路マイクロコントローラ、ディジタル信号処理回路(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブル論理デバイス(PLD)、状態機械ゲーテッドロジックディスクリートハードウェア回路、および本開示全体で説明される様々な機能性を実行するように構成された他の適切なハードウェアを含む。すなわち、装置1200内で利用される処理回路1204は、ストレージデバイス1205内でデータのインライン暗号化および暗号化解除を実行するためのプロセスなど、上で説明され、図2〜図12に示されたプロセス(および、図15〜図20に示され、下で議論されるプロセス)のうちの任意の1つまたは複数を実施するのに使用され得る。

0041

図12の例では、処理システム1214を、全般的にバス1202によって表されるバスアーキテクチャを用いて実施することができる。バス1202は、処理システム1214の特定の応用例および全体的な設計制約に依存して、任意の個数の相互接続するバスおよびブリッジを含むことができる。バス1202は、1つまたは複数の処理回路を含む様々な回路(全般的に処理回路1204によって表される)、ストレージデバイス1205、および機械可読、プロセッサ可読、処理回路可読、またはコンピュータ可読の媒体(全般的に、非一時的機械可読媒体1206によって表される)をリンクする。バス1202は、タイミングソース周辺機器電圧レギュレータ、および電力管理回路などの様々な他の回路をもリンクすることができ、これらの他の回路は、当技術分野で周知であり、したがって、これ以上は説明しない。バスインターフェース1208は、バス1202とトランシーバ1210との間のインターフェースを提供する。トランシーバ1210は、伝送媒体を介して様々な他の装置と通信するための手段を提供する。装置の性質に依存して、ユーザインターフェース1212(たとえば、キーパッドディスプレイスピーカマイクロホンジョイスティック)を提供することもできる。

0042

処理回路1204は、バス1202の管理と、機械可読媒体1206上に記憶されたソフトウェアの実行を含む全般的な処理との責任を負う。ソフトウェアは、処理回路1204によって実行される時に、処理システム1214に、任意の特定の装置について本明細書で説明される様々な機能を実行させる。機械可読媒体1206は、ソフトウェアを実行する時に処理回路1204によって操作されるデータを記憶するのにも使用され得る。

0043

処理システム内の1つまたは複数の処理回路1204は、ソフトウェアまたはソフトウェアコンポーネントを実行することができる。ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェアマイクロコードハードウェア記述言語、または他のいずれとして呼ばれる場合であっても、命令、命令セット、コード、コードセグメントプログラムコード、プログラム、サブプログラムソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーションソフトウェアパッケージルーチンサブルーチンオブジェクト実行可能ファイル、実行のスレッド手続き、関数、その他を意味するものとして幅広く解釈されなければならない。処理回路は、必要なタスクを実行することができる。コードセグメントは、手続き、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、または命令、データ構造、もしくはプログラムステートメントの何らかの組合せを表すことができる。コードセグメントを、情報、データ、引数、パラメータ、またはメモリ内容もしくはストレージ内容を渡し、かつ/または受け取ることによって、別のコードセグメントまたはハードウェア回路に結合することができる。情報、引数、パラメータ、データなどを、メモリ共有、メッセージパッシングトークンパッシング、ネットワーク伝送などを含む任意の適切な手段を介して渡し、転送し、または伝送することができる。

0044

ソフトウェアは、機械可読媒体1206上に存在することができる。機械可読媒体1206は、非一時的機械可読媒体とすることができる。非一時的な処理回路可読、機械可読、またはコンピュータ可読の媒体は、たとえば、磁気ストレージデバイス(たとえば、ハードディスクフロッピディスク磁気ストリップ)、光ディスク(たとえば、コンパクトディスク(CD)またはディジタル多用途ディスク(DVD))、スマートカードフラッシュメモリデバイス(たとえば、カード、スティック、またはキードライブ)、RAM、ROM、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)、レジスタ、リムーバブルディスク、ハードディスク、CD-ROM、ならびに機械またはコンピュータによってアクセスされ読み取られ得るソフトウェアおよび/または命令を記憶する任意の他の適切な媒体を含む。「機械可読媒体」、「コンピュータ可読媒体」、「処理回路可読媒体」、および/または「プロセッサ可読媒体」という用語は、ポータブルまたは固定式のストレージデバイス、光学ストレージデバイス、ならびに命令および/またはデータを記憶し、含み、または担持することのできる様々な他の媒体などの非一次的媒体を含むことができるが、これに限定されない。したがって、本明細書で説明される様々な方法を、「機械可読媒体」、「コンピュータ可読媒体」、「処理回路可読媒体」、および/または「プロセッサ可読媒体」内に記憶され、1つまたは複数の処理回路、機械、および/またはデバイスによって実行され得る命令および/またはデータによって完全にまたは部分的に実施することができる。機械可読媒体は、たとえば、搬送波伝送線、およびコンピュータによってアクセスされ、読み取られ得るソフトウェアおよび/または命令を伝送するための任意の他の適切な媒体をも含むことができる。機械可読媒体1206は、処理システム1214内に、処理システム1214の外部に存在し、あるいは、処理システム1214を含む複数のエンティティにまたがって分散され得る。機械可読媒体1206を、コンピュータプログラム製品内で実施することができる。たとえば、コンピュータプログラム製品は、パッケージング材料内に機械可読媒体を含むことができる。当業者は、特定の応用例およびシステム全体に課せ
られる全体的な設計制約に依存して、本開示全体で提示される説明される機能性をどのようにして最もよく実施すべきかを認めるであろう。

0045

たとえば、機械可読媒体1206は、処理回路1204によって実行された時に、処理回路に、ストレージデバイスにデータを書き込む書込コマンドを、要求するホストソフトウェアコンポーネントから受け取らせ、ストレージデバイスに書込コマンドを送らせ、データに関連するパラメータをストレージデバイスから受け取らせ、パラメータに基づいて暗号化キーを生成させ、暗号化キーを使用してデータを暗号化させる、1つまたは複数の命令を有することができる。もう1つの例として、機械可読媒体1206は、処理回路1204によって実行された時に、処理回路に、ストレージデバイスからデータを入手する読取コマンドを、要求するホストソフトウェアコンポーネントから受け取らせ、ストレージデバイスに読取コマンドを送らせ、暗号化されたデータと暗号化されたデータに関連するパラメータとをストレージデバイスから受け取らせ、パラメータに基づいて暗号化解除キーを入手させ、暗号化解除キーを使用して暗号化されたデータを暗号化解除させる、1つまたは複数の命令を有することができる。

0046

図面に示されたコンポーネント、ステップ、特徴、および/または機能のうちの1つまたは複数を、再配置し、かつ/または単一のコンポーネント、ステップ、特徴、または機能に組み合わせ、あるいは複数のコンポーネント、ステップ、または機能で実施することができる。追加の要素、コンポーネント、ステップ、および/または機能を、本開示から逸脱せずに追加することもできる。図に示す装置、デバイス、および/または構成要素は、図に記載した方法、特徴、またはステップのうちの1つまたは複数を実行するように構成され得る。また、本明細書で説明したアルゴリズムは、効率的にソフトウェアに実装されてもよく、かつ/またはハードウェアに組み込まれてもよい。

0047

本明細書で開示される例に関連して説明される様々な例示的な論理ブロック、モジュール、回路、要素、および/またはコンポーネントを、汎用処理回路、ディジタル信号処理回路(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理コンポーネント、ディスクリートゲートまたはトランジスタ論理、ディスクリートハードウェアコンポーネント、または本明細書で説明される機能を実行するように設計されたそれらの何らかの組合せを用いて実施しまたは実行することができる。汎用処理回路は、マイクロプロセッシング回路とすることができるが、代替案では、処理回路を、何らかの従来の処理回路、コントローラ、マイクロコントローラ、または状態機械とすることができる。処理回路を、コンピューティングコンポーネントの組合せ、たとえば、DSPとマイクロプロセッシング回路との組合せ、複数のマイクロプロセッシング回路、DSPコアに関連する1つもしくは複数のマイクロプロセッシング回路、または何らかの他のそのような構成として実施することもできる。

0048

したがって、本開示の一態様では、図3および図12に示された処理回路300および/または1204を、図4、図5、図9、および/または図10(および/または下で議論される図15、図16、図17、図18、図19、および/または図20)で説明されるアルゴリズム、方法、および/またはステップを実行するように特に設計され、かつ/またはハードワイヤされた特殊化された処理回路(たとえば、ASIC)とすることができる。したがって、そのような特殊化された処理回路(たとえば、ASIC)を、図4、図5、図9、および/または図10(および/または下で議論される図15、図16、図17、図18、図19、および/または図20)で説明されるアルゴリズム、方法、および/またはステップを実行するための手段の一例とすることができる。機械可読記憶媒体は、特殊化された処理回路(たとえば、ASIC)によって実行された時に、その特殊化された処理回路に本明細書で説明されるアルゴリズム、方法、および/またはステップを実行させる命令を記憶することができる。

0049

図13に、ストレージデバイス1205とともに使用するためのホストストレージコントローラ1301を有する処理回路1204の選択された例示的なコンポーネントを示す。具体的には、図13のホストストレージコントローラ1301は、ストレージデバイスにデータを書き込むための書込コマンドを、要求するホストソフトウェアコンポーネント(この図には図示せず)から入手するように動作可能であり、ストレージデバイスからデータを読み取るための読取コマンドを、要求するホストソフトウェアコンポーネントから入手するようにも動作可能である、読取/書込コマンド入力モジュール/回路1300を含む。ホストストレージコントローラ1301は、ストレージデバイス1205に読取コマンドおよび書込コマンドを送るように動作可能な読取/書込コマンド出力モジュール/回路1302と、LBAおよびブロックカウントまたは他の適切なパラメータなど、ストレージデバイスへ/から読み取られ/書き込まれるべきデータに関連する1つまたは複数のパラメータを入手するように動作可能なLBA/ブロックカウントパラメータ入力モジュール/回路1304とをも含む。ホストストレージコントローラ1301は、ストレージデバイスでの記憶のためにホストストレージコントローラを使用してデータを暗号化するように動作可能なインライン暗号化モジュール/回路1306と、ストレージデバイスから読み取られたデータを暗号化解除するように動作可能なインライン暗号化解除モジュール/回路1308とをも含む。さらに、ホストストレージコントローラ1301は、LBAまたはパラメータ入力モジュール/回路1304によって入手された他のパラメータに少なくとも部分的に基づいて暗号化/暗号化解除キーを入手するか他の形で生成するように動作可能なキー処理モジュール/回路を含む。

0050

図13のストレージデバイス1205は、読み取られ/書き込まれるべき暗号化されたデータを示すホストストレージコントローラ1301からの読取コマンドおよび/または書込コマンドを受け取るように動作可能な読取/書込コマンド入力モジュール/回路1312を含む。LBA/ブロックカウントパラメータ出力モジュール/回路1314は、ホストストレージコントローラ1301内でのデータのインライン暗号化/暗号化解除を容易にするために、LBAおよびブロックカウントなど、読み取られ/書き込まれるべきデータに関連する1つまたは複数のパラメータを出力するように動作可能である。ストレージデバイス1205は、ホストストレージコントローラ1301から暗号化されたデータを(書込コマンドに関連して)受け取り、ホストストレージコントローラ1301に暗号化されたデータを(読取コマンドに関連して)出力するように動作可能な暗号化データ入出力モジュール/回路をも含む。暗号化データストレージユニット1318は、暗号化されたデータを記憶する。

0051

図14に、図12の処理回路1204のホストストレージコントローラ1301などのホストストレージコントローラとともに使用するための機械可読、コンピュータ可読、または処理回路可読の媒体1206の選択された例示的な命令を示す。この図は、図12のデバイス1205などのストレージデバイスとともに使用するための機械可読、コンピュータ可読、または処理回路可読の媒体1401の選択された例示的な命令をも示す。短く言うと、図14の機械可読媒体1206は、図12のホストストレージコントローラ1301によって実行された時に、そのホストストレージコントローラにインライン暗号化/暗号化解除動作を制御させまたは実行させる様々な命令を含む。具体的には、読取/書込コマンド入力命令1400は、ホストストレージコントローラに、ストレージデバイスにデータを書き込む書込コマンドを、要求するホストソフトウェアコンポーネント(この図には図示せず)から入手させるように動作可能であり、ホストストレージコントローラにストレージデバイスからデータを読み取る読取コマンドを要求するホストソフトウェアコンポーネントから入手させるように動作可能でもある。機械可読媒体1206は、ホストストレージコントローラに、読取コマンドおよび書込コマンドをストレージデバイス1205へ送らせるように動作可能な読取/書込コマンド出力命令1402と、ホストストレージコントローラに、LBAおよびブロックカウントなど、ストレージデバイスへ/から読み取られ/書き込まれるべきデータに関連する1つまたは複数のパラメータを入手させるように動作可能なLBA/ブロックカウントパラメータ入力命令1404とをも含む。機械可読媒体1206は、ホストストレージコントローラに、ストレージデバイスでの記憶のためにホストストレージコントローラを使用してデータを暗号化させるように動作可能なインライン暗号化命令1406と、ホストストレージコントローラに、ストレージデバイスから読み取られたデータを暗号化解除させるように動作可能なインライン暗号化解除命令1408とをも含む。さらに、機械可読媒体1206は、ホストストレージコントローラに、パラメータ入力命令1404の実行によって入手されるLBAまたは他のパラメータに少なくとも部分的に基づいて暗号化/暗号化解除キーを入手させまたは他の形で
生成させるように動作可能なキー処理命令を含む。

0052

図12のストレージデバイスとともに使用するための図14の機械可読媒体1401は、読取/書込コマンド入力命令1412を含み、読取/書込コマンド入力命令1412は、ストレージデバイスの回路網によって実行された時に、ストレージデバイスに、読み取られ/書き込まれるべき暗号化されたデータを示す読取コマンドおよび/または書込コマンドを図12のホストストレージコントローラ1301から受け取らせる。LBA/ブロックカウントパラメータ出力命令1414は、ストレージデバイスに、ホストストレージコントローラ内でのデータのインライン暗号化/暗号化解除を容易にするために、LBAおよびブロックカウントなど、読み取られ/書き込まれるべきデータに関連する1つまたは複数のパラメータを出力させるように動作可能である。機械可読媒体1401は、ストレージデバイスに、ホストストレージコントローラから暗号化されたデータを(書込コマンドに関連して)受け取らせ、ホストストレージコントローラに暗号化されたデータを(読取コマンドに関連して)出力させるように動作可能な暗号化データ入出力命令をも含む。暗号化データストレージユニット1418は、暗号化されたデータを記憶する。

0053

図15に、図12の処理回路1204のホストストレージコントローラ1301または書込動作中のデータのインライン暗号化のための他の適切に態勢の整ったデバイスによって実行され得る方法または手順1500を幅広く示し、要約する。ステップ1502では、ホストストレージコントローラが、ストレージデバイスにデータを書き込む書込コマンドを、要求するホストソフトウェアコンポーネントから入手する。ステップ1504では、ホストストレージコントローラが、書込コマンドをストレージデバイスに送る。ステップ1506では、ホストストレージコントローラが、ストレージデバイスからデータに関連するパラメータを入手し、ここで、少なくともいくつかの例では、パラメータは、データの特定のブロックに関する読取動作と書込動作とについて同一であるが、データのブロックごとに異なる識別子を提供する。ステップ1508では、ホストストレージコントローラが、パラメータに基づいて暗号化キーを生成しまたは他の形で入手し、ステップ1510では、暗号化キーを使用してデータを暗号化する。ステップ1512では、ホストストレージコントローラが、暗号化されたデータをストレージデバイスに送る。

0054

図16に、図12の処理回路1204のホストストレージコントローラ1301または読取動作中のデータのインライン暗号化解除のための他の適切に態勢の整ったデバイスによって実行され得る方法または手順1600を幅広く示し、要約する。ステップ1602では、ホストストレージコントローラが、ストレージデバイスからデータを読み取る読取コマンドを、要求するホストソフトウェアコンポーネントから入手する。ステップ1604では、ホストストレージコントローラが、読取コマンドをストレージデバイスに送る。ステップ1606では、ホストストレージコントローラが、ストレージデバイスから暗号化されたデータおよび暗号化されたデータに関連するパラメータを入手し、ここで、少なくともいくつかの例では、パラメータは、データの特定のブロックに関する読取動作と書込動作とについて同一であるが、データのブロックごとに異なる識別子を提供する。ステップ1608では、ホストストレージコントローラが、パラメータに基づいて暗号化解除キーを生成しまたは他の形で入手し、ステップ1610では、暗号化解除キーを使用して、暗号化されたデータを暗号化解除する。ステップ1612では、ホストストレージコントローラが、要求するホストソフトウェアコンポーネントに暗号化解除されたデータを提供しまたは「送る」。

0055

図17に、図12のストレージデバイス1205または書込動作の一部として暗号化されたデータをホストストレージコントローラから受け取り、記憶するための他の適切に態勢の整ったデバイスによって実行され得る方法または手順1700を幅広く示し、要約する。ステップ1702では、ストレージデバイスが、ストレージデバイスに書き込まれるべきデータを示す書込コマンドをホストストレージコントローラから受け取る。ステップ1704では、ストレージデバイスが、ホストストレージコントローラによるデータのインライン暗号化を容易にするために、ホストストレージコントローラにデータに関連するパラメータを送り、ここで、少なくともいくつかの例では、パラメータは、データの特定のブロックに関する読取動作と書込動作とについて同一であるが、データのブロックごとに異なる識別子を提供する。ステップ1706では、ストレージデバイスが、ホストストレージコントローラからインライン暗号化されたデータを受け取り、ステップ1708では、ホストストレージコントローラから受け取られたインライン暗号化されたデータを記憶する。

0056

図18に、図12のストレージデバイス1205または読取動作の一部として暗号化されたデータを取り出し、ホストストレージコントローラに送るための他の適切に態勢の整ったデバイスによって実行され得る方法または手順1800を幅広く示し、要約する。ステップ1802では、ストレージデバイスが、ストレージデバイスから読み取られるべき暗号化されたデータを示す読取コマンドをホストストレージコントローラから受け取る。ステップ1804では、ストレージデバイスが、暗号化されたデータを取り出す。ステップ1806では、ストレージデバイスが、ホストストレージコントローラによるデータのインライン暗号化解除を容易にするために、暗号化されたデータに関連するパラメータと一緒に暗号化されたデータをホストストレージコントローラに送り、ここで、少なくともいくつかの例では、パラメータは、データの特定のブロックに関する読取動作と書込動作とについて同一であるが、データのブロックごとに異なる識別子を提供する。

0057

図19に、ホストストレージコントローラが、暗号化キーがそれから生成される前述のパラメータをストレージデバイスから受け取らない実施態様での使用のための、図12の処理回路1204のホストストレージコントローラ1301または書込動作中のデータのインライン暗号化のための他の適切に態勢の整ったデバイスによって実行され得る方法または手順1900を幅広く示し、要約する。ステップ1902では、ホストストレージコントローラが、ストレージデバイスにデータを書き込む書込コマンドを、要求するホストソフトウェアコンポーネントから入手する。ステップ1904では、ホストストレージコントローラが、ストレージデバイスに書込コマンドを送る。ステップ1906では、ホストストレージコントローラが、ホストメモリからパラメータを入手し、ここで、パラメータは、データの特定のブロックに関する読取動作と書込動作とについて同一であるが、データのブロックごとに異なる識別子を提供する。ステップ1908では、ホストストレージコントローラが、パラメータに基づいて暗号化キーを生成しまたは他の形で入手し、ステップ1910では、暗号化キーを使用してデータを暗号化する。ステップ1912では、ホストストレージコントローラが、暗号化されたデータをストレージデバイスに送る。

0058

図20に、ホストストレージコントローラが、暗号化解除キーがそれから生成される前述のパラメータをストレージデバイスから受け取らない実施態様での使用のための、図12の処理回路1204のホストストレージコントローラ1301または読取動作中のデータのインライン暗号化解除のための他の適切に態勢の整ったデバイスによって実行され得る方法または手順2000を幅広く示し、要約する。ステップ2002では、ホストストレージコントローラが、ストレージデバイスからデータを読み取る読取コマンドを、要求するホストソフトウェアコンポーネントから入手する。ステップ2004では、ホストストレージコントローラが、読取コマンドをストレージデバイスに送る。ステップ2006では、ホストストレージコントローラが、ストレージデバイスから暗号化されたデータを入手し、また、ホストメモリからパラメータを入手し、ここで、パラメータは、データの特定のブロックに関する読取動作と書込動作とについて同一であるが、データのブロックごとに異なる識別子を提供する。ステップ2008では、ホストストレージコントローラが、パラメータに基づいて暗号化解除キーを生成しまたは他の形で入手し、ステップ2010では、暗号化解除キーを使用して、暗号化されたデータを暗号化解除する。ステップ2012では、ホストストレージコントローラが、通常はデータをホストメモリに書き込むことによって、暗号化解除されたデータを、要求するホストソフトウェアコンポーネントに提供しまたは「送る」。

0059

本開示の諸態様が、本明細書で、フローチャート、流れ図、構造図、またはブロック図として描かれるプロセスとして説明される場合があることに留意されたい。流れ図が、動作を順次プロセスとして説明する場合があるが、動作の多くを、並列にまたは同時に実行することができる。加えて、動作の順序を再配置することができる。プロセスは、その動作が完了した時に終了される。プロセスは、メソッド、関数、手続き、サブルーチン、サブプログラムなどに対応することができる。プロセスが関数に対応する時には、その終了は、呼び出す側の関数またはメイン関数への関数のリターンに対応する。

0060

当業者は、本明細書で開示される諸態様に関連して説明される様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップを、電子ハードウェア、コンピュータソフトウェア、またはその両方の組合せとして実施できることを、さらに了解するはずである。ハードウェアとソフトウェアとのこの相互交換可能性を明瞭に示すために、様々な例示的なコンポーネント、ブロック、モジュール、回路、およびステップが、上では全般的にその機能性に関して説明された。そのような機能性が、ハードウェアまたはソフトウェアのどちらとして実施されるのかは、具体的な応用と、システム全体に課せられる設計制約とに依存する。

0061

本明細書で開示される例に関連して説明される方法またはアルゴリズムを、ハードウェアで直接に、プロセッサによって実行可能なソフトウェアモジュールで、またはその両方の組合せで、処理ユニットプログラミング命令、または他のディレクティブの形で実施することができ、単一のデバイス内に含めるか、複数のデバイスにまたがって分散させることができる。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野で既知の任意の他の形の記憶媒体に存在することができる。プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、記憶媒体を、プロセッサに結合することができる。代替案では、記憶媒体を、プロセッサと一体とすることができる。

0062

本明細書で説明される本発明の様々な特徴を、本発明から逸脱せずに異なるシステム内で実施することができる。上記の実施形態は例にすぎず、本発明を限定するものと解釈すべきではないことに留意されたい。実施形態の説明は、例示的なものであり、特許請求の範囲を限定するものではない。したがって、本技法を、他のタイプの装置にたやすく適用することができ、多数の代替案、修正形態、および変形形態が、当業者に明白である。

0063

100システムオンアチップ
101アプリケーション処理回路
102ソフトウェアコンポーネント
104 ホストストレージコントローラ
105インライン暗号化/暗号化解除モジュール
106外部ストレージデバイス
108ストレージバス
110ホストメモリ
112メモリバス
202 アプリケーション処理回路
204 ホストストレージコントローラ
206 外部ストレージデバイス
208書込コマンド
210 書込コマンド要求
212 LBA/ブロックカウント
218 暗号化されたデータ
220 読取コマンド
222 読取コマンド
224 暗号化されたデータおよびLBA/ブロックカウント
230暗号化解除されたデータ
300 SoC処理回路
310 アプリケーション処理回路
312CPUコア
313 ソフトウェアコンポーネント
318ブートROM
320周辺サブシステム
330 内部共有HWリソース
322 DSP
324ハードウェア(HW)およびソフトウェア(SW)コンポーネント
326ラジオ周波数(RF)コンポーネント
328 ブートROM
332 内部共有ストレージ
333キー/パラメータストレージ要素、部分、またはコンポーネント
340 外部共有HWリソース
342 外部共有ストレージ
344永久的もしくは半永久的データストレージ
350 ホストストレージコントローラ
351 暗号化/暗号化解除モジュール
400 インライン暗号化/書込動作
500 タイミング図/流れ図
502 ホストストレージコントローラ
504オフチップストレージデバイス
506 コマンドUPIU
508RTT UPIU
510データアウトUPIU
512 RTT UPIU
514 データアウトUPIU
516応答UPIU
600メモリ空間
602 ホストメモリ空間
604入出力(I/O)メモリ/レジスタ空間
606UTPトランザクション要求リスト
608KEYIDXを有するUTRD
610 UTPトランザクション要求コンポーネント
612 コマンドUPIU、応答UPIU、およびPRDTの各グループ
614 グループ
616データバッファ
618 UTPタスク管理要求リスト
620 TM要求UPIU
622 UTP管理要求
624ホストコントローラ能力
626割込みおよびホスト状況インジケータ
628 UFS相互接続(UIC)コマンド
630ベンダ固有値
700 UTRD
702キーインデックス
800 RTT UPIU
804 LBA
806 ブロックカウント
900 インライン暗号化解除/読取動作
1000 タイミング図/流れ図
1002 ホストストレージコントローラ
1004 オフチップストレージデバイス
1006 コマンドUPIU
1008 UPIU内の1つまたは複数のデータ
1010 応答UPIU
1100 UPIU内の例示的なデータ
1104 LBA
1106 ブロックカウント
1108 行
1200 装置
1202バス
1204 処理回路
1205ストレージデバイス
1206 非一時的機械可読媒体
1208バスインターフェース
1210トランシーバ
1212ユーザインターフェース
1214 処理システム
1300 読取/書込コマンド入力モジュール/回路
1301 ホストストレージコントローラ
1302 読取/書込コマンド出力モジュール/回路
1304 LBA/ブロックカウントパラメータ入力モジュール/回路
1306 インライン暗号化モジュール/回路
1308 インライン暗号化解除モジュール/回路
1312 読取/書込コマンド入力モジュール/回路
1314 LBA/ブロックカウントパラメータ出力モジュール/回路
1318 暗号化データストレージユニット
1400 読取/書込コマンド入力命令
1401機械可読、コンピュータ可読、または処理回路可読の媒体
1402 読取/書込コマンド出力命令
1404 LBA/ブロックカウントパラメータ入力命令
1406 インライン暗号化命令
1408 インライン暗号化解除命令
1412 読取/書込コマンド入力命令
1414 LBA/ブロックカウントパラメータ出力命令
1418 暗号化データストレージユニット
1500 方法または手順
1600 方法または手順
1700 方法または手順
1800 方法または手順
1900 方法または手順
2000 方法または手順

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

新着 最近 公開された関連が強い 技術

この 技術と関連性が強い 技術

関連性が強い 技術一覧

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する挑戦したい社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ