説明

セキュリティ装置及びセキュリティシステム

【課題】ホスト装置に暗号化手段を設けることなく、ホスト装置とセキュリティ装置間の配線に流れるデータの情報漏洩を困難にするセキュリティ装置及びセキュリティシステムを提供する。
【解決手段】スクランブル演算機能を有するプロセッサと、第1の認証コードが記憶された記憶ユニットとを有するホスト装置に接続されるセキュリティ装置であって、第1の認証コードが記憶された記憶ユニットと乱数生成ユニットと暗号化ユニットとコントローラとを有し、コントローラは、乱数と第1の認証コードとをスクランブル演算して第1のスクランブルキーを生成してホスト装置に送信し、ホスト装置から、第1のスクランブルキーから取得した乱数に従って、暗号化対象データがスクランブル演算されて生成されたスクランブルデータを受信し、スクランブルデータと乱数とをスクランブル演算して暗号化対象データを生成し、暗号化対象データを暗号化ユニットによって暗号化して暗号化データを生成しホスト装置に送信する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、セキュリティ装置及びセキュリティシステムに関する。
【背景技術】
【0002】
近年、組込み機器のストレージ(外部記憶装置)等に格納されたデータや、回路基板の配線に流れるデータの盗難による情報漏洩が増加しており、セキュリティ機能追加の要望が高まっている。そこで、例えば、組み込み機器の既存システムにデータ暗号化機能を有するセキュリティチップ(セキュリティ装置)を追加搭載することが考えられる。これにより、回路基板上のホストチップ(ホスト装置)からマイクロプロセッサ等のストレージに格納されるデータや回路基板上に流れるデータを、セキュリティチップにより暗号化することができ、情報漏洩を防ぐことができる。
【0003】
一方で、ホストチップが処理するデータをセキュリティチップで暗号化するためには、ホストチップからセキュリティチップに、配線を介して暗号化対象のデータが転送されることになる。つまり、ホストチップとセキュリティチップ間の配線に暗号化前のデータが流れることになる。そのため、ホストチップとセキュリティチップ間に流れる暗号化前のデータについての盗難による情報漏洩が新たに懸念される。
【0004】
データの暗号化には、従来から、例えば、SSL/TLSやストリーム暗号方式等が用いられる。例えば、SSL/TLSでは、サーバが公開鍵をクライアントに送信し、クライアントは受信した公開鍵に基づいて乱数を暗号化(RSA、DHなど)してサーバに送信する。そして、サーバは、暗号化された乱数を公開鍵と対になる秘密鍵を用いて復号化し乱数を取得する。このように両者は乱数を共有し、共有した乱数を元に共通の暗号アルゴリズム(AES、DESなど)に基づいて共通鍵を生成し、その共通鍵に基づいてデータを暗号化し送受信する。
【0005】
また、ストリーム暗号方式では、送信側(例えば、クライアント)、受信側(例えば、サーバ)はカウンタ列、共通鍵を共有し、ブロック暗号(AES、DESなど)を用いて共通のストリーム暗号鍵列(乱数列)をそれぞれ生成する。そして、送信側は、送信対象のデータとストリーム暗号鍵列とを排他的論理和演算(XOR/EOR)してスクランブル化データを生成し受信側に送信すると共に、受信側は、スクランブル化データとストリーム暗号鍵列とを排他的論理和演算(XOR/EOR)して元のデータに復号化する。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2007−336506号公報
【特許文献2】特開平10−222468号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、従来の暗号化技術では、サーバ(受信側)、クライアント(送信側)双方に暗号化手段(RSA、AES等)が必要となる。例えば、SSL/TLSでは共通鍵の元になる乱数の共有時、及び共通鍵の生成時に、ストリーム暗号方式ではストリーム暗号鍵列の生成時に、双方に暗号化手段が必要となる。
【0008】
従って、従来の暗号化技術によると、ホストチップとセキュリティチップ間のデータを暗号化するためには、ホストチップにも暗号化手段が搭載されている必要があり、既存のホストチップにセキュリティチップを搭載するだけでホストチップ内のデータを暗号化するという初期の目的を達成できない。また、暗号化処理が高負荷であることから、ホストチップに暗号化手段を搭載することは、システム全体の負荷を高くしてしまい好ましくない。
【0009】
そこで、本発明は、ホスト装置に暗号化手段を設けることなく、ホスト装置とセキュリティ装置間の配線に流れるデータの情報漏洩を困難にするセキュリティ装置及びセキュリティシステムを提供する。
【課題を解決するための手段】
【0010】
第1の側面は、スクランブル演算機能を有するプロセッサと、第1の認証コードが記憶された記憶ユニットとを有するホスト装置に接続されるセキュリティ装置であって、
前記第1の認証コードが記憶された記憶ユニットと、
乱数を生成する乱数生成ユニットと、
データを暗号化または復号化する暗号化ユニットと、
前記スクランブル演算機能を有するコントローラとを有し、
前記コントローラは、
前記乱数生成ユニットが生成した前記乱数と前記第1の認証コードとを前記スクランブル演算して第1のスクランブルキーを生成して前記ホスト装置に送信し、
前記ホスト装置から、前記第1のスクランブルキーから取得した前記乱数に従って、暗号化対象データがスクランブル演算されて生成されたスクランブルデータを受信し、前記スクランブルデータと前記乱数とを前記スクランブル演算して前記暗号化対象データを生成し、当該暗号化対象データを前記暗号化ユニットによって暗号化して暗号化データを生成し、前記ホスト装置に送信する。
【発明の効果】
【0011】
第1の側面によれば、ホスト装置に暗号化手段を設けることなく、ホスト装置とセキュリティ装置間の配線に流れるデータの情報漏洩を困難にする。
【図面の簡単な説明】
【0012】
【図1】本実施の形態例における組み込みシステムの半導体装置の一例を表す図である。
【図2】本実施の形態例におけるホストチップとセキュリティチップを表す例図である。
【図3】第1の実施の形態例におけるチップ間の処理の一例を表す第1の図である。
【図4】第1の実施の形態例におけるチップ間の処理の一例を表す第2の図である。
【図5】第1の実施の形態例におけるチップ間の処理の別の例を表す第1の図である。
【図6】第1の実施の形態例におけるチップ間の処理の別の例を表す第2の図である。
【図7】第2の実施の形態例におけるチップ間の処理の一例を表す第1の図である。
【図8】第2の実施の形態例におけるチップ間の処理の一例を表す第2の図である。
【図9】第3の実施の形態例におけるチップ間の処理の一例を表す第1の図である。
【図10】第3の実施の形態例におけるチップ間の処理の一例を表す第2の図である。
【発明を実施するための形態】
【0013】
以下、図面にしたがって本発明の実施の形態について説明する。ただし、本発明の技術的範囲はこれらの実施の形態に限定されず、特許請求の範囲に記載された事項とその均等物まで及ぶものである。
【0014】
図1は、本実施の形態例における組み込みシステムの半導体装置100の一例を表す図である。同図の半導体装置100は、例えば、ホストチップ10、セキュリティチップ20、その他のユニット30、外部ストレージ40、通信ユニット50を有し、バス線によって接続されている。また、セキュリティチップ20は、ホストチップ10とバス線やシリアル線で接続されており、ホストチップ10から転送されたデータについて、RSAやAES等を用いて暗号化処理及び復号化処理を行う。
【0015】
例えば、ホストチップ10で処理されたデータはセキュリティチップ20に転送され、暗号化データに変換後、外部ストレージ40や通信ユニット50、その他のユニット30に転送される。また、外部の機器等から通信ユニット50を介して受信された暗号化データや、外部ストレージ40に格納された暗号化データが、セキュリティチップ20に転送されて復号化データに変換後、ホストチップ10に転送され処理が行われる。
【0016】
図2は、本実施の形態例におけるホストチップ10とセキュリティチップ20の構成の一例を表す図である。本実施の形態例におけるホストチップ10は、例えば、プロセッサ11、認証コードA1、認証コードA2、プロセッサ11の演算処理に用いられるメモリ12を有する。一方、セキュリティチップ20は、例えば、コントローラ21、メモリ22、認証コードA1、認証コードA2、乱数生成ユニット23、暗号化ユニット24を有する。セキュリティチップ20の乱数生成ユニット23は真性乱数または擬似乱数を生成し、暗号化ユニット24は、データの高度な暗号化処理及び復号化処理を行う。
【0017】
また、図2のホストチップ10のプロセッサ11及び、セキュリティチップ20のコントローラ21は、四則演算や論理演算等の演算機能を有する。また、ホストチップ10及びセキュリティチップ20は認証コードA1、A2を共有する。認証コードA1、A2は、例えば、約16桁の数値であり、例えば、外部から入力されてもよい。
【0018】
続いて、まず、第1の実施の形態例の処理について説明する。なお、認証コードA2は、第1、第2の実施の形態例では使用されず、第3の実施の形態例でのみ使用される。
【0019】
[第1の実施の形態例]
図3、図4は、第1の実施の形態例におけるホストチップ10とセキュリティチップ20間の処理の一例を表す図である。同図は、ホストチップ10からセキュリティチップ20に対して、非暗号化データが送信される場合のデータのスクランブル化について説明する図である。具体的に、非暗号化データはスクランブル化されてホストチップ10からセキュリティチップ20に送信され、セキュリティチップ20によって復元された後、暗号化処理されると共にスクランブル化されホストチップ10に送信される。本実施の形態例において、ホストチップ10とセキュリティチップ20とは、同一の認証コードA1を保持している。
【0020】
ここで、まず、データのスクランブル化演算について説明する。本実施の形態例では、スクランブル演算として排他的論理和(以下、XOR)演算を使用する。XOR演算は、ホストチップ10のプロセッサ11、及び、セキュリティチップ20のコントローラ21に基本的に備えられる演算処理機能に含まれる。XOR演算によるスクランブル演算では、対象の値がキーとなる値に従ってスクランブル化される。具体的に、対象の値Aはキーである値XとXOR演算されることによりスクランブル化され、値Bが生成される。そして、値Bが、再度、値XとXOR演算されることによって値Aが復元される。つまり、データ(値A)とキー(値X)とのXOR演算の結果、生成されたスクランブルデータ(値B)が、再度、キー(値X)に従ってXOR演算されることにより、元のデータ(値A)が復元される。
【0021】
XOR演算によるスクランブル化では、スクランブルデータから元のデータを復元するためには、キーが必要となる。しかし、第3者はキーを知らないため、スクランブル化データに基づいて元のデータを復元することができない。なお、スクランブル化演算は、XOR演算に限定されるものではない。スクランブル演算は、元のデータを復元可能な演算であれば、例えば、四則演算等の他の演算によって行われてもよいし、XOR演算や四則演算等の組合せによって行われてもよい。
【0022】
図3に戻り、初めに、ホストチップ10は、セキュリティチップ20に処理の開始を知らせる初期化コマンドを発行する(a)。セキュリティチップ20は、初期化コマンドを受信すると、乱数R1を生成する(b)。続いて、セキュリティチップ20の乱数生成ユニット23は、乱数R1と認証コードA1とをXOR演算してスクランブルキーS1を生成する(c)。そして、セキュリティチップ20は、初期化処理の結果と共に、生成したスクランブルキーS1をホストチップ10に送信する(d)。
【0023】
続いて、ホストチップ10では、スクランブルキーS1を受信すると、スクランブルキーS1を、予め保持している認証コードA1に従ってXOR演算し、乱数R1を取得する(e)。これにより、認証コードA1に加えて乱数R1が、ホストチップ10とセキュリティチップ20間で共有される。そこで、ホストチップ10は、暗号化対象のデータD1と共有した乱数R1とをXOR演算してスクランブル化データX1を生成し(f)、暗号化命令と共にセキュリティチップ20に送信する(g)。
【0024】
セキュリティチップ20は、暗号化命令とスクランブル化データX1とを受信すると、スクランブル化データX1を乱数R1に従ってXOR演算して、データD1を取得する(h)。そこで、セキュリティチップ20の暗号化ユニット24は、データD1を暗号化処理し暗号化データE1を生成する(i)。続いて、セキュリティチップ20は、暗号化データE1と乱数R1とをXOR演算し、スクランブル化暗号データY1を生成する(j)。
【0025】
続いて、図4に移り、セキュリティチップ20は、次の新たなスクランブル化用乱数である乱数R2を生成する(k)。そして、セキュリティチップ20は、生成した乱数R2と乱数R1とをXOR演算し、スクランブルキーS2を生成する(l)。続いて、セキュリティチップ20は、図3の処理jで生成したスクランブル化暗号データY1と共に、スクランブルキーS2をホストチップ10に送信する(m)。
【0026】
ホストチップ10は、スクランブル化暗号データY1とスクランブルキーS2とを受信すると、スクランブル化暗号データY1を乱数R1に従ってXOR演算して、暗号化データE1を取得する(n)。また、ホストチップ10は、受信したスクランブルキーS2を乱数R1に従ってXOR演算し、乱数R2を取得する(o)。これにより、暗号化対象のデータD1に対応する暗号化データE1がホストチップ10で取得されると共に、新たな乱数R2がホストチップ10とセキュリティチップ20間で共有される。
【0027】
そして、暗号化する対象のデータD2がさらにある場合、同様にして、ホストチップ10は、暗号化対象のデータD2と、新たな乱数R2とをXOR演算し、スクランブル化データX2を生成し(p)、セキュリティチップ20に送信する(q)。セキュリティチップ20は、受信したスクランブル化データX2を乱数R2に従ってXOR演算し、暗号化対象のデータD2を取得する(r)。前回の暗号化対象データD1と同様にして、データD2は暗号化ユニット24によって暗号化データE2に変換される。そして、暗号化データE2は、乱数R2とXOR演算され、スクランブル化暗号データY2が生成される。そして、新たなスクランブル化用乱数である乱数R3(図示せず)が生成され、スクランブル化暗号データY2と共に、ホストチップ10に送信される。
【0028】
このようにして、セキュリティチップ20は、ホストチップ10とセキュリティチップ20間で共有した乱数に従ってデータをスクランブル化し、送受信されるデータの漏洩を防ぐ。また、乱数は、一定数の送受信セッション毎に変更されると共に、前回のセッションの乱数(初回は認証コードA1)に従ってスクランブル化されてホストチップ10に送信され、ホストチップ10で当該乱数に従って復元されることによって共有される。
【0029】
ところで、上述した図3、図4の例では、ホストチップ10からセキュリティチップ20に暗号化対象のデータが送信される場合を例示したが、次に、ホストチップ10からセキュリティチップ20に復号化対象のデータが送信される場合について説明する。
【0030】
図5、図6は、ホストチップ10からセキュリティチップ20に暗号化されたデータが送信され、セキュリティチップ20で復号化される場合のデータのスクランブル化について説明する図である。図3、図4と同様にして、ホストチップ10及びセキュリティチップ20は、同一の認証コードA1を保持している。
【0031】
図5において、図3と同様にして、ホストチップ10とセキュリティチップ20間で乱数R1を共有すると、ホストチップ10は、暗号化データE1と乱数R1とをXOR演算し、スクランブル化暗号データY1を生成し(f)、復号化命令と共にセキュリティチップ20に送信する(g)。そして、セキュリティチップ20では、受信したスクランブル化暗号データY1を、乱数R1に従ってXOR演算して、暗号化データE1を取得する(h)。そして、セキュリティチップ20の暗号化ユニット24は、暗号化データE1を復号化してデータD1を生成する。
【0032】
続いて、セキュリティチップ20は、データD1のスクランブル化処理の前に、新たな乱数R2を生成する(j)。そして、セキュリティチップ20は、(図3のように)乱数R1ではなく、乱数R2とデータD1とをXOR演算して、スクランブル化データX1を生成する(k)。復号化された非暗号化データ(例えば、D1)は、暗号化データ(例えば、E1)に対して、データが解析された場合のリスクが高いためである。そのため、セキュリティチップは、非暗号化データを、既にスクランブル化に使用された乱数R1ではなく、新たに生成されスクランブル化に使用されていない乱数R2に従ってスクランブル化する。これにより、非暗号化データの復元がより困難になる。ただし、この例に限定されるものではなく、処理kにおいて、セキュリティチップ20は、非暗号化データD1を、乱数R1に従ってスクランブル化してもよい。
【0033】
図6に移り、続いて、セキュリティチップ20は、乱数1と乱数2とをXOR演算して、スクランブルキーS2を生成し(l)、スクランブル化データX1と共に、ホストチップ10に送信する(m)。ホストチップ10は、スクランブルキーS2を、乱数R1に従ってXOR演算し、乱数R2を取得する(o)。そして、ホストチップ10は、スクランブル化データX1を、乱数R2に従ってXOR演算し、データD1を取得する(n)。これにより、暗号化データE1が復号化処理されたデータD1がホストチップ10で取得されると共に、ホストチップ10とセキュリティチップ20間で乱数R2が共有される。そして、復号化する対象の暗号化データE2がさらにある場合、ホストチップ10は、暗号化データE2と乱数R2とをXOR演算し、スクランブル化暗号データY2を生成する(p)。この後の処理は、図5、図6の処理g〜処理nと同様である。
【0034】
以上のように、本実施の形態例におけるセキュリティチップ(セキュリティ装置)20は、データを暗号化する場合、乱数生成ユニット23が生成した乱数と認証コードとをスクランブル演算してスクランブルキーを生成してホストチップ(ホスト装置)10に送信し、ホストチップ10から、スクランブルキーから取得した乱数に従って暗号化対象データがスクランブル演算されて生成されたスクランブルデータを受信する。そして、セキュリティチップ20は、スクランブルデータと乱数とをスクランブル演算して暗号化対象データを生成し、暗号化対象データを暗号化ユニット24によって暗号化して暗号化データを生成し、ホストチップ10に送信する。
【0035】
一方、本実施の形態例におけるセキュリティチップ20は、データを復号化する場合、乱数生成ユニット23が生成した乱数と認証コードとをスクランブル演算してスクランブルキーを生成して前記ホストチップ10に送信すると共に、暗号化データを暗号化ユニット24によって復号化して復号化データを生成し、復号化データと乱数とをスクランブル演算してスクランブルデータを生成しホストチップ10に送信する。そして、セキュリティチップ20は、ホストチップ10のプロセッサ11に、スクランブルキーから取得された乱数に従ってスクランブルデータをスクランブル演算させ、スクランブルデータから復号化データを取得させる。
【0036】
また、ホストチップ10では、乱数は、初回は認証コードに2回目以降の各送受信セッションでは前回のセッションの乱数に従って、スクランブルキーがスクランブル演算されることによって取得される。2回目以降の各送受信セッションでは、セキュリティチップ20は、今回の送受信セッションの乱数と前回の送受信セッションの乱数とのスクランブル演算によってスクランブルキーを生成してホストチップ10に送信し、ホストチップ10では、当該スクランブルキーが、前回の送受信セッションの乱数に従ってスクランブル演算されることにより、今回の送受信セッションの乱数が取得される。
【0037】
これにより、本実施の形態例におけるセキュリティチップ20は、ホストチップ10に高度な暗号化処理を行う暗号化ユニット24を要することなく、ホストチップ10との間のデータをスクランブル化して、データの漏洩を防ぐことができる。また、セキュリティチップ20は、データのスクランブル化に高度な暗号化処理を用いないため、システムの負荷を抑え、スクランブル化による通信速度の低下を防ぐことができる。
【0038】
また、データのスクランブル化は、ホストチップ10及びセキュリティチップ20で共有された乱数に従って行われる。そのため、第3者は、スクランブルデータが乱数に従ってスクランブル化されていることを認識していた場合であっても、乱数の値を知らないためスクランブル化データを復元することができない。また、当該乱数は、セキュリティチップ20で前回の乱数(初回は、認証コード)に従ってスクランブル化されてホストチップ10に送信され、ホストチップ10で前回の乱数(初回は、認証コード)に従って復元されることにより共有される。このため、第3者が、スクランブルキーを取得した場合でも、前回の乱数(初回は認証コード)を検知しない限り、スクランブルキーから乱数の値を復元することができない。このように、本実施の形態例におけるセキュリティチップ20は、仮に、第3者がデータのスクランブル化手順を認識していた場合であっても、スクランブル化データに基づくデータの復元を困難にする。
【0039】
また、本実施の形態例におけるセキュリティチップ20によると、乱数を生成する乱数生成ユニット23はセキュリティチップ20のみに備えられていればよく、ホストチップ10は乱数生成ユニット23を有している必要がない。つまり、本実施の形態例におけるホストチップ10は、予め備えられている演算機能に加えてメモリ12等に認証コードを有していればよく、新たに暗号化ユニット24及び乱数生成ユニット23を備える必要がない。従って、ホストチップ10を有する既存システムの回路基板に、本実施の形態例におけるセキュリティチップ20が搭載されることによって、当該ホストチップ10とセキュリティチップ20間のデータのスクランブル化が可能になり、データの漏洩が防止される。
【0040】
さらに、本実施の形態例において、データのスクランブル化に使用される乱数は一定数の送受信セッション毎に変更される。これにより、仮に第3者によってある乱数が解析された場合であっても、一定数のセッションの後、データをスクランブル化する乱数は変更される。このため、本実施の形態例におけるセキュリティチップ20は、スクランブルデータの継続した解析を困難にし、データの漏洩範囲を最小限にすることができる。なお、本実施の形態例において、乱数の変更頻度は1回の送受信セッション毎であるが、この頻度に限定されるものではない。乱数の変更頻度は、複数回の送受信セッション毎であってもよいし、1回の送信または受信処理毎であってもよい。
【0041】
ところで、本実施の形態例では、暗号化された暗号化データE1、E2についてもスクランブル化の対象とされる。しかしながら、暗号化データは、仮にスクランブル化された状態から復元された場合であっても、暗号化されていることによりデータ内容が検知されるリスクは低い。そのため、暗号化データは、必ずしもスクランブル化の対象にされる必要はなく、少なくとも復元された場合のリスクの高い非暗号化のデータについてのみ、スクランブル化の対象にされればよい。
【0042】
また、本実施の形態例におけるセキュリティチップ20は、乱数は一定の送受信セッション毎に変更するものの、認証コードについては変更しない。セキュリティチップ20及びホストチップ10において、例えば、一時的に生成され使用される乱数はRAM等のメモリに格納され、認証コードについては不揮発性メモリ等のメモリに格納される。不揮発性メモリでは、電源供給が不安定な場合や書き込み限度回数を有する場合、更新時にエラーやデータ破損が発生することがある。
【0043】
しかし、本実施の形態例におけるセキュリティチップ20は認証コードについては変更しないことから、認証コードの変更に係る不揮発性メモリ更新時における認証コードの破損及び損失の懸念を回避することができる。そして、例え電源供給が不安定であることに起因してRAM等に格納された乱数が失われた場合であっても、セキュリティチップ20は、新たな初期化コマンド(図3、図5のa)に応答して、認証コードと新たに生成する乱数に従って、データのスクランブル化処理を再開することができる。
【0044】
[第2の実施の形態例]
第2の実施の形態例におけるセキュリティチップ20は、新たに生成した乱数の共有時におけるスクランブル化において、前回のセッションの乱数ではなく認証コードに従って、乱数をスクランブル化する。以下、図に従って説明する。
【0045】
図7、図8は、第2の実施の形態例におけるホストチップ10とセキュリティチップ20の処理の一例を表す図である。同7、図8は、図3、図4と同様に、ホストチップ10からセキュリティチップ20に非暗号化データが送信される場合のデータのスクランブル化について説明する図である。第1の実施の形態例と同様にして、ホストチップ10及びセキュリティチップ20は、同一の認証コードA1を保持している。
【0046】
図7の処理は、第1の実施の形態例における図3の処理と同様である。ホストチップ10とセキュリティチップ20間で乱数R1が共有され、ホストチップ10から、暗号化対象のデータD1がスクランブル化されたスクランブル化データX1が、セキュリティチップ20に送信される(g)。セキュリティチップ20は、スクランブル化データX1から暗号化対象のデータD1を取得し暗号化する。暗号化された暗号化データE1は、乱数R1に従ってスクランブル化される(j)。
【0047】
続いて、図8に移り、セキュリティチップ20は、次の新たなスクランブル化用乱数である乱数R2を生成し、スクランブル化する(l)。ただし、本実施の形態例では、セキュリティチップ20は、生成した乱数R2を、乱数R1ではなく認証コードA1に従ってXOR演算し、スクランブルキーS2を生成する。スクランブルキーS2は、スクランブル化暗号データY1と共に、ホストチップ10に送信される(m)。
【0048】
そして、ホストチップ10は、スクランブル化暗号データY1を乱数R1に従ってXOR演算して暗号化データE1を取得すると共に(n)、スクランブルキーS2を、乱数R1ではなく認証コードA1に従ってXOR演算し、乱数R2を取得する(o)。これにより、暗号化対象のデータD1の暗号化データE1がホストチップ10で取得されると共に、乱数R2がホストチップ10とセキュリティチップ20間で共有される。この後の処理は、図4の処理pから処理rと同様である。
【0049】
なお、図7、図8の例では、ホストチップ10からセキュリティチップ20に暗号化対象のデータが送信される場合を例示したが、ホストチップ10からセキュリティチップ20に復号化対象のデータが送信される場合についても同様である。この場合についても、セキュリティチップ20で新たに生成された乱数は認証コードA1に従ってスクランブル化されてホストチップ10に送信され、ホストチップ10で認証コードA1に従って復元されることによって共有される。そして、セキュリティチップ20で復号化されたデータは、乱数に従ってスクランブル化されてホストチップ10送信され、ホストチップ10で乱数に従ってスクランブル演算されることにより復元される。
【0050】
以上のように、本実施の形態例におけるセキュリティチップ20は、データを暗号化する場合、乱数生成ユニット23が生成した乱数と認証コードとをスクランブル演算してスクランブルキーを生成してホストチップ10に送信し、ホストチップ10から、スクランブルキーから取得した乱数に従って暗号化対象データがスクランブル演算されて生成されたスクランブルデータを受信する。そして、セキュリティチップ20は、スクランブルデータと乱数とをスクランブル演算して暗号化対象データを生成し、暗号化対象データを暗号化ユニット24によって暗号化して暗号化データを生成し、ホストチップ10に送信する。
【0051】
一方、本実施の形態例におけるセキュリティチップ20は、データを復号化する場合、乱数生成ユニット23が生成した乱数と認証コードとをスクランブル演算してスクランブルキーを生成して前記ホストチップ10に送信すると共に、暗号化データを暗号化ユニット24によって復号化して復号化データを生成し、復号化データと乱数とをスクランブル演算してスクランブルデータを生成しホストチップ10に送信する。そして、セキュリティチップ20は、ホストチップ10のプロセッサ11に、スクランブルキーから取得された乱数に従ってスクランブルデータをスクランブル演算させ、スクランブルデータから復号化データを取得させる。
【0052】
また、ホストチップ10では、乱数は、スクランブルキーが認証コードに従ってスクランブル演算されることによって取得される。
【0053】
これにより、本実施の形態例におけるセキュリティチップ20は、ホストチップ10に暗号化ユニット24を要することなく、ホストチップ10との間のデータをスクランブル化して、データの漏洩を防ぐことができる。また、セキュリティチップ20は、データのスクランブル化に高度な暗号処理を用いないため、システムの負荷を抑え、スクランブル化による通信速度の低下を防ぐことができる。
【0054】
また、データのスクランブル化は、ホストチップ10及びセキュリティチップ20間で共有された乱数に従って行われる。そのため、第3者は、スクランブルデータが乱数に従ってスクランブル化されていることを認識していた場合であっても、乱数の値を知らないためスクランブル化データを復元することができない。そして、本実施の形態例において、当該乱数は、セキュリティチップ20で認証コードA1に従ってスクランブル化されホストチップ10に送信され、ホストチップ10で認証コードA1に従って復元されることにより共有される。このため、第3者が、スクランブルキーを取得した場合でも、認証コードA1を検知しない限り、スクランブルキーから乱数の値を復元することができない。このように、本実施の形態例におけるセキュリティチップ20は、仮に、第3者がスクランブル化手順を認識していた場合であっても、スクランブル化データに基づくデータの復元を困難にする。
【0055】
また、本実施の形態例におけるセキュリティチップ20によると、乱数を生成する乱数生成ユニット23はセキュリティチップ20のみに備えられていればよく、ホストチップ10は乱数生成ユニット23を有している必要がない。従って、ホストチップ10を有する既存システムの回路基板に、本実施の形態例におけるセキュリティチップ20が搭載されることによって、当該ホストチップ10とセキュリティチップ20間のデータのスクランブル化が可能になり、データの漏洩が防止される。
【0056】
さらに、データのスクランブル化に使用される乱数は一定数の送受信セッション毎に変更される。そのため、本実施の形態例におけるセキュリティチップ20は、スクランブルデータの継続した解析を困難にし、データの漏洩範囲を最小限にすることができる。
【0057】
[第3の実施の形態例]
第3の実施の形態例におけるセキュリティチップ20は、2つの認証コードを有する(以下、第1の認証コード、第2の認証コードと称する)。第1の認証コードは、第2の実施の形態例と同様に、新たに生成した乱数の共有時におけるスクランブル化において使用される。そして、第2の認証コードは、データをスクランブル化するための第2のスクランブルキー生成のために使用される。以下、図に従って説明する。
【0058】
図9、図10は、第3の実施の形態例におけるホストチップ10とセキュリティチップ20の処理の一例を表す図である。同9、図10は、第1の実施の形態例における図3、図4と同様にして、ホストチップ10からセキュリティチップ20に非暗号化データが送信される場合のデータのスクランブル化について説明する図である。本実施の形態例では、ホストチップ10及びセキュリティチップ20は、第1の認証コードA1、第2の認証コードA2を予め共有する。
【0059】
図9において、セキュリティチップ20は、初期化コマンドを受信すると(a)、乱数R1を生成する(b)。続いて、セキュリティチップ20は、乱数R1と第1の認証コードA1とをXOR演算して第1のスクランブルキーS11を生成する(c)。そして、セキュリティチップ20は、初期化処理の結果と共に、生成した第1のスクランブルキーS11をホストチップ10に送信する(d)。ここまでの処理は、第1、2の実施の形態例と同様である。
【0060】
続いて、本実施の形態例におけるセキュリティチップ20は、さらに、生成した乱数R1と第2の認証コードA2とをXOR演算して第2のスクランブルキーS21を生成する(d)。一方、ホストチップ10では、第1、2の実施の形態例と同様に、第1のスクランブルキーS11を、予め保持している認証コードA1に従ってXOR演算し、乱数R1を取得する(f)。そして、さらに、本実施の形態例におけるホストチップ10は、取得した乱数R1と第2の認証コードA2とをXOR演算し、第2のスクランブルキーS21を生成する(g)。これにより、第1、第2の認証コードA1、A2に加えて、乱数R1及び第2のスクランブルキーS21が、ホストチップ10とセキュリティチップ20間で共有される。
【0061】
そして、本実施の形態例におけるホストチップ10は、暗号化対象のデータD1と第2のスクランブルキーS21とをXOR演算してスクランブル化データX1を生成し(h)、暗号化命令と共にセキュリティチップ20に送信する(i)。セキュリティチップ20は、スクランブル化データX1とを受信すると、スクランブル化データX1を、生成しておいた第2のスクランブルキーS21に従ってXOR演算して、暗号化対象のデータD1を取得する(j)。そして、データD1は、暗号化ユニット24によって暗号化処理され、暗号化データE1が生成される(k)。続いて、セキュリティチップ20は、暗号化データE1と第2のスクランブルキーS21とをXOR演算し、スクランブル化暗号データY1を生成する(l)。
【0062】
図10に移り、続いて、セキュリティチップ20は、新たな乱数R2を生成し(m)、当該乱数R2と第1の認証コードA1とをXOR演算して、新しい第1のスクランブルキーS12を生成する(n)。続いて、セキュリティチップ20は、図9の処理lで生成したスクランブル化暗号データY1と共に、第1のスクランブルキーS12をホストチップ10に送信する(o)。そして、セキュリティチップ20は、乱数R2と第2の認証コードA2とをXOR演算して、第2のスクランブルキーS22を生成しておく(p)。
【0063】
一方、ホストチップ10は、スクランブル化暗号データY1と第1のスクランブルキーS12とを受信すると、スクランブル化暗号データY1を、共有済みの第2のスクランブルキーS21に従ってXOR演算し、暗号化データE1を取得する(q)。また、ホストチップ10は、受信した第1のスクランブルキーS12を第1の認証コードA1に従ってXOR演算し、乱数R2を取得する(r)。これにより、暗号化対象のデータD1に対応する暗号化データE1がホストチップ10で取得されると共に、乱数R2がホストチップ10とセキュリティチップ20間で共有される。
【0064】
そして、暗号化する対象のデータD2がさらにある場合、同様にして、ホストチップ10は、乱数R2と第2の認証コードA2とをXOR演算して第2のスクランブルキーS22を生成する(s)。そして、ホストチップ10は、暗号化対象のデータD2とスクランブルキーS22とをXOR演算してスクランブル化データX2を生成し(図示せず)、セキュリティチップ20に送信する(図示せず)。セキュリティチップ20は、受信したスクランブル化データX2を、処理kで生成した第2のスクランブルキーS22に従ってXOR演算し、暗号化対象のデータD2を取得する。この後の処理は図9、図10の処理k〜処理qと同様である。
【0065】
なお、図9、図10の例では、ホストチップ10からセキュリティチップ20に暗号化対象のデータが送信される場合を例示したが、ホストチップ10からセキュリティチップ20に復号化対象のデータが送信される場合についても同様である。この場合についても、セキュリティチップ20で新たに生成された乱数は認証コードA1に従ってスクランブル化されてホストチップ10に送信され、ホストチップ10で認証コードA1に従って復元されることによって共有される。そして、セキュリティチップ20で復号化されたデータは、乱数がさらに第2の認証コードA2に従ってスクランブル化されて生成された第2のスクランブルキーに従ってスクランブル化され、ホストチップ10送信される。ホストチップ10では、スクランブル化されたデータが第2のスクランブルキーに従ってスクランブル演算されることにより、復号化データが復元される。
【0066】
以上のように、本実施の形態例におけるセキュリティチップ20は、データを暗号化する場合、乱数生成ユニット23が生成した乱数と第1の認証コードとをスクランブル演算して第1のスクランブルキーを生成してホストチップ10に送信すると共に、乱数と第2の認証コードとをスクランブル演算して第2のスクランブルキーを生成する。また、セキュリティチップ20は、ホストチップ10から、第1のスクランブルキーから取得された乱数と第2の認証コードとがスクランブル演算されて生成された第2のスクランブルキーに従って、暗号化対象データがスクランブル演算されて生成されたスクランブルデータを受信する。そして、セキュリティチップ20は、スクランブルデータと第2のスクランブルキーとをスクランブル演算して暗号化対象データを生成し、暗号化対象データを暗号化ユニット24によって暗号化して暗号化データを生成し、ホストチップ10に送信する。
【0067】
一方、本実施の形態例におけるセキュリティチップ20は、データを復号化する場合、乱数生成ユニット23が生成した乱数と第1の認証コードとをスクランブル演算して第1のスクランブルキーを生成してホストチップ10に送信すると共に、乱数と第2の認証コードとをスクランブル演算して第2のスクランブルキーを生成する。また、セキュリティチップ20は、暗号化データを暗号化ユニットによって復号化して復号化データを生成し、復号化データと第2のスクランブルキーとをスクランブル演算してスクランブルデータを生成しホストチップ10に送信する。そして、セキュリティチップ20は、ホストチップ10のプロセッサ11に、第1のスクランブルキーから取得された乱数と第2の認証コードとがスクランブル演算されて生成された第2のスクランブルキーに従って、スクランブルデータをスクランブル演算させ、スクランブルデータから復号化データを取得させる。
【0068】
また、ホストチップ10では、乱数は、第1のスクランブルキーが、第1の認証コードに従ってスクランブル演算されることによって取得される。
【0069】
これにより、本実施の形態例におけるセキュリティチップ20は、ホストチップ10に暗号化ユニット24を要することなく、ホストチップ10との間のデータをスクランブル化して、データの漏洩を防ぐことができる。また、セキュリティチップ20は、データのスクランブル化に高度な暗号処理を用いないため、システムの負荷を抑え、スクランブル化による通信速度の低下を防ぐことができる。
【0070】
また、本実施の形態例において、データのスクランブル化は、ホストチップ10及びセキュリティチップ20間で共有された乱数がさらに第2の認証コードに従ってスクランブル化され生成された第2のスクランブルキーに従って行われる。そのため、第3者は、乱数に加えて第2の認証コードを知らなければ、スクランブル化データを復元することができない。つまり、仮に、乱数が復元されてしまった場合でも、第2の認証コードを知らない第3者は、スクランブル化データを復元することができない。これにより、第3者によるスクランブルデータの復元がより困難になる。このように、本実施の形態例におけるセキュリティチップ20は、ホストチップ10とセキュリティチップ20間のデータ漏洩をより効果的に防止することができる。
【0071】
また、本実施の形態例におけるセキュリティチップ20によると、乱数を生成する乱数生成ユニット23はセキュリティチップ20のみに備えられていればよく、ホストチップ10は乱数生成ユニット23を有している必要がない。従って、ホストチップ10を有する既存システムの回路基板に、本実施の形態例におけるセキュリティチップ20が搭載されることによって、当該ホストチップ10とセキュリティチップ20間のデータのスクランブル化が可能になり、データの漏洩が防止される。
【0072】
さらに、データのスクランブル化に使用される第2のスクランブルキーの元になる乱数は、一定数の送受信セッション毎に変更される。そのため、本実施の形態例におけるセキュリティチップ20は、スクランブルデータの継続した解析を困難にし、データの漏洩範囲を最小限にすることができる。
【0073】
このようにして、本実施の形態例におけるセキュリティチップ20は、2つの認証コードを有し、第1の認証コードを使用して共有した乱数と第2の認証コードとに基づくスクランブルキーに従って、データをスクランブル化する。これにより、本実施の形態例におけるセキュリティチップ20は、ホストチップ10にハードウェアの変更を要することなく、システム全体の負荷を抑えながら、セキュリティ強度の高いデータのスクランブル化を実現することができる。これにより、セキュリティチップ20は、よりデータの漏洩を効果的に防ぐことができる。
【0074】
なお、本実施の形態例において、第1のスクランブルキーは、共有対象の乱数が、第1の認証コードに従ってスクランブル演算されることによって生成される。しかしながら、第1のスクランブルキーは、共有対象の乱数が、第1の認証コードではなく前回の送受信セッションの乱数に従って、スクランブル演算されることによって生成されてもよい。
【0075】
この場合、2回目以降の各送受信セッションでは、セキュリティチップ20は、今回の送受信セッションの乱数と、前回の送受信セッションの乱数とのスクランブル演算によって第1のスクランブルキーを生成し、ホストチップ10は、第1スクランブルキーから、前回の送受信セッションの乱数によるスクランブル演算によって、今回の送受信セッションの乱数を取得する。これにより、仮に第1の認証コードが第3者に知られてしまった場合でも、前回の送受信セッションの乱数を知らない第3者は、第1のスクランブルキーから今回の送受信セッションの乱数を復元することができない。
【0076】
以上、ホストチップ10とセキュリティチップ20間のデータのスクランブル化について述べた。ただし、本実施の形態例におけるデータのスクランブル化は、ホストチップ10とセキュリティチップ20間におけるデータのスクランブル化に限定されるものではなく、他の2者間(例えば、サーバとクライアント等)における通信のデータのスクランブル化にも適用可能である。
【0077】
以上の実施の形態をまとめると、次の付記のとおりである。
【0078】
(付記1)
スクランブル演算機能を有するプロセッサと、第1の認証コードが記憶された記憶ユニットとを有するホスト装置に接続されるセキュリティ装置であって、
前記第1の認証コードが記憶された記憶ユニットと、
乱数を生成する乱数生成ユニットと、
データを暗号化または復号化する暗号化ユニットと、
前記スクランブル演算機能を有するコントローラとを有し、
前記コントローラは、
前記乱数生成ユニットが生成した前記乱数と前記第1の認証コードとを前記スクランブル演算して第1のスクランブルキーを生成して前記ホスト装置に送信し、
前記ホスト装置から、前記第1のスクランブルキーから取得した前記乱数に従って、暗号化対象データがスクランブル演算されて生成されたスクランブルデータを受信し、前記スクランブルデータと前記乱数とを前記スクランブル演算して前記暗号化対象データを生成し、当該暗号化対象データを前記暗号化ユニットによって暗号化して暗号化データを生成し、前記ホスト装置に送信するセキュリティ装置。
【0079】
(付記2)
スクランブル演算機能を有するプロセッサと、第1の認証コードと第2の認証コードとが記憶された記憶ユニットとを有するホスト装置に接続されるセキュリティ装置であって、
前記第1の認証コードと前記第2の認証コードとが記憶された記憶ユニットと、
乱数を生成する乱数生成ユニットと、
データを暗号化または復号化する暗号化ユニットと、
前記スクランブル演算機能を有するコントローラとを有し、
前記コントローラは、
前記乱数生成ユニットが生成した前記乱数と前記第1の認証コードとを前記スクランブル演算して第1のスクランブルキーを生成して前記ホスト装置に送信すると共に、前記乱数と前記第2の認証コードとを前記スクランブル演算して第2のスクランブルキーを生成し、
前記ホスト装置から、前記第1のスクランブルキーから取得された前記乱数と前記第2の認証コードとが前記スクランブル演算されて生成された第2のスクランブルキーに従って、暗号化対象データがスクランブル演算されて生成されたスクランブルデータを受信し、前記スクランブルデータと前記第2のスクランブルキーとを前記スクランブル演算して前記暗号化対象データを生成し、当該暗号化対象データを前記暗号化ユニットによって暗号化して暗号化データを生成し、前記ホスト装置に送信するセキュリティ装置。
【0080】
(付記3)
スクランブル演算機能を有するプロセッサと、第1の認証コードが記憶された記憶ユニットとを有するホスト装置に接続されるセキュリティ装置であって、
前記第1の認証コードが記憶された記憶ユニットと、
乱数を生成する乱数生成ユニットと、
データを暗号化または復号化する暗号化ユニットと、
前記スクランブル演算機能を有するコントローラとを有し、
前記コントローラは、
前記乱数生成ユニットが生成した前記乱数と前記第1の認証コードとを前記スクランブル演算して第1のスクランブルキーを生成して前記ホスト装置に送信し、
暗号化データを前記暗号化ユニットによって復号化して復号化データを生成し、当該復号化データと前記乱数とを前記スクランブル演算してスクランブルデータを生成し前記ホスト装置に送信し、
前記ホスト装置の前記プロセッサに、前記第1のスクランブルキーから取得された前記乱数に従って前記スクランブルデータをスクランブル演算させ、前記スクランブルデータから前記復号化データを取得させるセキュリティ装置。
【0081】
(付記4)
スクランブル演算機能を有するプロセッサと、第1の認証コードと第2の認証コードとが記憶された記憶ユニットとを有するホスト装置に接続されるセキュリティ装置であって、
前記第1の認証コードと前記第2の認証コードとが記憶された記憶ユニットと、
乱数を生成する乱数生成ユニットと、
データを暗号化または復号化する暗号化ユニットと、
前記スクランブル演算機能を有するコントローラとを有し、
前記コントローラは、
前記乱数生成ユニットが生成した前記乱数と前記第1の認証コードとを前記スクランブル演算して第1のスクランブルキーを生成して前記ホスト装置に送信すると共に、前記乱数と前記第2の認証コードとを前記スクランブル演算して第2のスクランブルキーを生成し、
暗号化データを前記暗号化ユニットによって復号化して復号化データを生成し、当該復号化データと前記第2のスクランブルキーとを前記スクランブル演算してスクランブルデータを生成し前記ホスト装置に送信し、
前記ホスト装置の前記プロセッサに、前記第1のスクランブルキーから取得された前記乱数と前記第2の認証コードとが前記スクランブル演算されて生成された前記第2のスクランブルキーに従って、前記スクランブルデータをスクランブル演算させ、前記スクランブルデータから前記復号化データを取得させるセキュリティ装置。
【0082】
(付記5)
付記1乃至4のいずれかにおいて、
前記ホスト装置では、前記プロセッサにより、前記第1のスクランブルキーから、前記第1の認証コードによる前記スクランブル演算によって前記乱数が取得されるセキュリティ装置。
【0083】
(付記6)
付記1乃至4のいずれかにおいて、
前記乱数は前記スクランブルデータの送受信セッション毎に変更され、
2回目以降の各送受信セッションにおいて、
前記コントローラは、前記第1のスクランブルキーを、今回の送受信セッションの前記乱数と、前回の送受信セッションの乱数との前記スクランブル演算によって生成し、
前記ホスト装置では、前記プロセッサにより、前記第1のスクランブルキーから、前記前回の送受信セッションの乱数による前記スクランブル演算によって、前記今回の送受信セッションの乱数が取得されるセキュリティ装置。
【0084】
(付記7)
付記1乃至4のいずれかにおいて、
前記乱数は前記スクランブルデータの送受信セッション毎に変更され、
2回目以降の各送受信セッションにおいて、
前記コントローラは、前記第1のスクランブルキーを、今回の送受信セッションの前記乱数と、前記第1の認証コードとの前記スクランブル演算によって生成し、
前記ホスト装置では、前記プロセッサにより、前記第1のスクランブルキーから、前記第1の認証コードによる前記スクランブル演算によって、前記今回の送受信セッションの乱数が取得されるセキュリティ装置。
【0085】
(付記8)
付記1乃至4のいずれかにおいて、
前記スクランブル演算は、排他的論理和演算を含むセキュリティ装置。
【0086】
(付記9)
ホスト装置と、前記ホスト装置に接続されるセキュリティ装置とを有するセキュリティシステムであって、
前記ホスト装置は、
スクランブル演算機能を有するプロセッサと、
第1の認証コードが記憶された記憶ユニットとを有し、
前記セキュリティ装置は、
前記第1の認証コードが記憶された記憶ユニットと、
乱数を生成する乱数生成ユニットと、
データを暗号化または復号化する暗号化ユニットと、
前記スクランブル演算機能を有するコントローラとを有し、
前記コントローラは、
前記乱数生成ユニットが生成した前記乱数と前記第1の認証コードとを前記スクランブル演算して第1のスクランブルキーを生成して前記ホスト装置に送信し、
前記ホスト装置は、前記プロセッサによって、前記第1のスクランブルキーから取得した前記乱数に従って暗号化対象データをスクランブル演算しスクランブルデータを生成して前記セキュリティ装置に送信し、
前記コントローラは、受信した前記スクランブルデータと前記乱数とを前記スクランブル演算して前記暗号化対象データを生成し、当該暗号化対象データを前記暗号化ユニットによって暗号化して暗号化データを生成し、前記ホスト装置に送信するセキュリティシステム。
【0087】
(付記10)
ホスト装置と、前記ホスト装置に接続されるセキュリティ装置とを有するセキュリティシステムであって、
前記ホスト装置は、
スクランブル演算機能を有するプロセッサと、
第1の認証コードと第2の認証コードとが記憶された記憶ユニットとを有し、
前記セキュリティ装置は、
前記第1の認証コードと第2の認証コードとが記憶された記憶ユニットと、
乱数を生成する乱数生成ユニットと、
データを暗号化または復号化する暗号化ユニットと、
前記スクランブル演算機能を有するコントローラとを有し、
前記コントローラは、
前記乱数生成ユニットが生成した前記乱数と前記第1の認証コードとを前記スクランブル演算して第1のスクランブルキーを生成して前記ホスト装置に送信すると共に、前記乱数と前記第2の認証コードとを前記スクランブル演算して第2のスクランブルキーを生成し、
前記ホスト装置は、前記プロセッサによって、前記第1のスクランブルキーから取得した前記乱数をさらに前記第2の認証コードと前記スクランブル演算して生成した第2のスクランブルキーに従って、暗号化対象データをスクランブル演算しスクランブルデータを生成して前記セキュリティ装置に送信し、
前記コントローラは、受信した前記スクランブルデータと前記第2のスクランブルキーとを前記スクランブル演算して前記暗号化対象データを生成し、当該暗号化対象データを前記暗号化ユニットによって暗号化して暗号化データを生成し、前記ホスト装置に送信するセキュリティシステム。
【0088】
(付記11)
ホスト装置と、前記ホスト装置に接続されるセキュリティ装置とを有するセキュリティシステムであって、
前記ホスト装置は、
スクランブル演算機能を有するプロセッサと、
第1の認証コードが記憶された記憶ユニットとを有し、
前記セキュリティ装置は、
前記第1の認証コードが記憶された記憶ユニットと、
乱数を生成する乱数生成ユニットと、
データを暗号化または復号化する暗号化ユニットと、
前記スクランブル演算機能を有するコントローラとを有し、
前記コントローラは、
前記乱数生成ユニットが生成した前記乱数と前記第1の認証コードとを前記スクランブル演算して第1のスクランブルキーを生成して前記ホスト装置に送信し、
暗号化データを前記暗号化ユニットによって復号化して復号化データを生成し、当該復号化データと前記乱数とを前記スクランブル演算してスクランブルデータを生成し前記ホスト装置に送信し、
前記ホスト装置は、前記プロセッサによって、前記第1のスクランブルキーから取得された前記乱数に従って前記スクランブルデータをスクランブル演算して前記スクランブルデータから前記復号化データを取得するセキュリティシステム。
【0089】
(付記12)
ホスト装置と、前記ホスト装置に接続されるセキュリティ装置とを有するセキュリティシステムであって、
前記ホスト装置は、
スクランブル演算機能を有するプロセッサと、
第1の認証コードと第2の認証コードとが記憶された記憶ユニットとを有し、
前記セキュリティ装置は、
前記第1の認証コードと第2の認証コードとが記憶された記憶ユニットと、
乱数を生成する乱数生成ユニットと、
データを暗号化または復号化する暗号化ユニットと、
前記スクランブル演算機能を有するコントローラとを有し、
前記コントローラは、
前記乱数生成ユニットが生成した前記乱数と前記第1の認証コードとを前記スクランブル演算して第1のスクランブルキーを生成して前記ホスト装置に送信すると共に、前記乱数と前記第2の認証コードとを前記スクランブル演算して第2のスクランブルキーを生成し、
暗号化データを前記暗号化ユニットによって復号化して復号化データを生成し、当該復号化データと前記第2のスクランブルキーとを前記スクランブル演算してスクランブルデータを生成し前記ホスト装置に送信し、
前記ホスト装置は、前記プロセッサによって、前記第1のスクランブルキーから取得した前記乱数と前記第2の認証コードとを前記スクランブル演算して生成した前記第2のスクランブルキー従って、前記スクランブルデータをスクランブル演算させ、前記スクランブルデータから前記復号化データを取得するセキュリティシステム。
【0090】
(付記13)
付記9乃至12のいずれかにおいて、
前記ホスト装置では、前記プロセッサにより、前記第1のスクランブルキーから、前記第1の認証コードによるスクランブル演算によって前記乱数が取得されるセキュリティシステム。
【0091】
(付記14)
付記9乃至12のいずれかにおいて、
前記乱数は前記スクランブルデータの送受信セッション毎に変更され、
2回目以降の各送受信セッションにおいて、
前記コントローラは、前記第1のスクランブルキーを、今回の送受信セッションの前記乱数と、前回の送受信セッションの乱数との前記スクランブル演算によって生成し、
前記ホスト装置は、前記プロセッサにより、前記第1のスクランブルキーから、前記前回の送受信セッションの乱数による前記スクランブル演算によって、前記今回の送受信セッションの乱数を取得するセキュリティシステム。
【0092】
(付記15)
付記9乃至12のいずれかにおいて、
前記乱数は前記スクランブルデータの送受信セッション毎に変更され、
2回目以降の各送受信セッションにおいて、
前記コントローラは、前記第1のスクランブルキーを、今回の送受信セッションの前記乱数と、前記第1の認証コードとの前記スクランブル演算によって生成し、
前記ホスト装置は、前記プロセッサにより、前記第1のスクランブルキーから、前記第1の認証コードによる前記スクランブル演算によって、前記今回の送受信セッションの乱数を取得するセキュリティシステム。
【符号の説明】
【0093】
10:ホストチップ、11:プロセッサ、A1:第1の認証コード、A2:第2の認証コード、12:メモリ、20:セキュリティチップ、21:コントローラ、22:メモリ、23:乱数生成ユニット、24:暗号化ユニット

【特許請求の範囲】
【請求項1】
スクランブル演算機能を有するプロセッサと、第1の認証コードが記憶された記憶ユニットとを有するホスト装置に接続されるセキュリティ装置であって、
前記第1の認証コードが記憶された記憶ユニットと、
乱数を生成する乱数生成ユニットと、
データを暗号化または復号化する暗号化ユニットと、
前記スクランブル演算機能を有するコントローラとを有し、
前記コントローラは、
前記乱数生成ユニットが生成した前記乱数と前記第1の認証コードとを前記スクランブル演算して第1のスクランブルキーを生成して前記ホスト装置に送信し、
前記ホスト装置から、前記第1のスクランブルキーから取得した前記乱数に従って、暗号化対象データがスクランブル演算されて生成されたスクランブルデータを受信し、前記スクランブルデータと前記乱数とを前記スクランブル演算して前記暗号化対象データを生成し、当該暗号化対象データを前記暗号化ユニットによって暗号化して暗号化データを生成し、前記ホスト装置に送信するセキュリティ装置。
【請求項2】
スクランブル演算機能を有するプロセッサと、第1の認証コードと第2の認証コードとが記憶された記憶ユニットとを有するホスト装置に接続されるセキュリティ装置であって、
前記第1の認証コードと前記第2の認証コードとが記憶された記憶ユニットと、
乱数を生成する乱数生成ユニットと、
データを暗号化または復号化する暗号化ユニットと、
前記スクランブル演算機能を有するコントローラとを有し、
前記コントローラは、
前記乱数生成ユニットが生成した前記乱数と前記第1の認証コードとを前記スクランブル演算して第1のスクランブルキーを生成して前記ホスト装置に送信すると共に、前記乱数と前記第2の認証コードとを前記スクランブル演算して第2のスクランブルキーを生成し、
前記ホスト装置から、前記第1のスクランブルキーから取得された前記乱数と前記第2の認証コードとが前記スクランブル演算されて生成された第2のスクランブルキーに従って、暗号化対象データがスクランブル演算されて生成されたスクランブルデータを受信し、前記スクランブルデータと前記第2のスクランブルキーとを前記スクランブル演算して前記暗号化対象データを生成し、当該暗号化対象データを前記暗号化ユニットによって暗号化して暗号化データを生成し、前記ホスト装置に送信するセキュリティ装置。
【請求項3】
スクランブル演算機能を有するプロセッサと、第1の認証コードが記憶された記憶ユニットとを有するホスト装置に接続されるセキュリティ装置であって、
前記第1の認証コードが記憶された記憶ユニットと、
乱数を生成する乱数生成ユニットと、
データを暗号化または復号化する暗号化ユニットと、
前記スクランブル演算機能を有するコントローラとを有し、
前記コントローラは、
前記乱数生成ユニットが生成した前記乱数と前記第1の認証コードとを前記スクランブル演算して第1のスクランブルキーを生成して前記ホスト装置に送信し、
暗号化データを前記暗号化ユニットによって復号化して復号化データを生成し、当該復号化データと前記乱数とを前記スクランブル演算してスクランブルデータを生成し前記ホスト装置に送信し、
前記ホスト装置の前記プロセッサに、前記第1のスクランブルキーから取得された前記乱数に従って前記スクランブルデータをスクランブル演算させ、前記スクランブルデータから前記復号化データを取得させるセキュリティ装置。
【請求項4】
スクランブル演算機能を有するプロセッサと、第1の認証コードと第2の認証コードとが記憶された記憶ユニットとを有するホスト装置に接続されるセキュリティ装置であって、
前記第1の認証コードと前記第2の認証コードとが記憶された記憶ユニットと、
乱数を生成する乱数生成ユニットと、
データを暗号化または復号化する暗号化ユニットと、
前記スクランブル演算機能を有するコントローラとを有し、
前記コントローラは、
前記乱数生成ユニットが生成した前記乱数と前記第1の認証コードとを前記スクランブル演算して第1のスクランブルキーを生成して前記ホスト装置に送信すると共に、前記乱数と前記第2の認証コードとを前記スクランブル演算して第2のスクランブルキーを生成し、
暗号化データを前記暗号化ユニットによって復号化して復号化データを生成し、当該復号化データと前記第2のスクランブルキーとを前記スクランブル演算してスクランブルデータを生成し前記ホスト装置に送信し、
前記ホスト装置の前記プロセッサに、前記第1のスクランブルキーから取得された前記乱数と前記第2の認証コードとが前記スクランブル演算されて生成された前記第2のスクランブルキーに従って、前記スクランブルデータをスクランブル演算させ、前記スクランブルデータから前記復号化データを取得させるセキュリティ装置。
【請求項5】
請求項1乃至4のいずれかにおいて、
前記ホスト装置では、前記プロセッサにより、前記第1のスクランブルキーから、前記第1の認証コードによる前記スクランブル演算によって前記乱数が取得されるセキュリティ装置。
【請求項6】
請求項1乃至4のいずれかにおいて、
前記乱数は前記スクランブルデータの送受信セッション毎に変更され、
2回目以降の各送受信セッションにおいて、
前記コントローラは、前記第1のスクランブルキーを、今回の送受信セッションの前記乱数と、前回の送受信セッションの乱数との前記スクランブル演算によって生成し、
前記ホスト装置では、前記プロセッサにより、前記第1のスクランブルキーから、前記前回の送受信セッションの乱数による前記スクランブル演算によって、前記今回の送受信セッションの乱数が取得されるセキュリティ装置。
【請求項7】
請求項1乃至4のいずれかにおいて、
前記乱数は前記スクランブルデータの送受信セッション毎に変更され、
2回目以降の各送受信セッションにおいて、
前記コントローラは、前記第1のスクランブルキーを、今回の送受信セッションの前記乱数と、前記第1の認証コードとの前記スクランブル演算によって生成し、
前記ホスト装置では、前記プロセッサにより、前記第1のスクランブルキーから、前記第1の認証コードによる前記スクランブル演算によって、前記今回の送受信セッションの乱数が取得されるセキュリティ装置。
【請求項8】
ホスト装置と、前記ホスト装置に接続されるセキュリティ装置とを有するセキュリティシステムであって、
前記ホスト装置は、
スクランブル演算機能を有するプロセッサと、
第1の認証コードが記憶された記憶ユニットとを有し、
前記セキュリティ装置は、
前記第1の認証コードが記憶された記憶ユニットと、
乱数を生成する乱数生成ユニットと、
データを暗号化または復号化する暗号化ユニットと、
前記スクランブル演算機能を有するコントローラとを有し、
前記コントローラは、
前記乱数生成ユニットが生成した前記乱数と前記第1の認証コードとを前記スクランブル演算して第1のスクランブルキーを生成して前記ホスト装置に送信し、
前記ホスト装置は、前記プロセッサによって、前記第1のスクランブルキーから取得した前記乱数に従って暗号化対象データをスクランブル演算しスクランブルデータを生成して前記セキュリティ装置に送信し、
前記コントローラは、受信した前記スクランブルデータと前記乱数とを前記スクランブル演算して前記暗号化対象データを生成し、当該暗号化対象データを前記暗号化ユニットによって暗号化して暗号化データを生成し、前記ホスト装置に送信するセキュリティシステム。
【請求項9】
ホスト装置と、前記ホスト装置に接続されるセキュリティ装置とを有するセキュリティシステムであって、
前記ホスト装置は、
スクランブル演算機能を有するプロセッサと、
第1の認証コードと第2の認証コードとが記憶された記憶ユニットとを有し、
前記セキュリティ装置は、
前記第1の認証コードと第2の認証コードとが記憶された記憶ユニットと、
乱数を生成する乱数生成ユニットと、
データを暗号化または復号化する暗号化ユニットと、
前記スクランブル演算機能を有するコントローラとを有し、
前記コントローラは、
前記乱数生成ユニットが生成した前記乱数と前記第1の認証コードとを前記スクランブル演算して第1のスクランブルキーを生成して前記ホスト装置に送信すると共に、前記乱数と前記第2の認証コードとを前記スクランブル演算して第2のスクランブルキーを生成し、
前記ホスト装置は、前記プロセッサによって、前記第1のスクランブルキーから取得した前記乱数をさらに前記第2の認証コードと前記スクランブル演算して生成した第2のスクランブルキーに従って、暗号化対象データをスクランブル演算しスクランブルデータを生成して前記セキュリティ装置に送信し、
前記コントローラは、受信した前記スクランブルデータと前記第2のスクランブルキーとを前記スクランブル演算して前記暗号化対象データを生成し、当該暗号化対象データを前記暗号化ユニットによって暗号化して暗号化データを生成し、前記ホスト装置に送信するセキュリティシステム。
【請求項10】
ホスト装置と、前記ホスト装置に接続されるセキュリティ装置とを有するセキュリティシステムであって、
前記ホスト装置は、
スクランブル演算機能を有するプロセッサと、
第1の認証コードが記憶された記憶ユニットとを有し、
前記セキュリティ装置は、
前記第1の認証コードが記憶された記憶ユニットと、
乱数を生成する乱数生成ユニットと、
データを暗号化または復号化する暗号化ユニットと、
前記スクランブル演算機能を有するコントローラとを有し、
前記コントローラは、
前記乱数生成ユニットが生成した前記乱数と前記第1の認証コードとを前記スクランブル演算して第1のスクランブルキーを生成して前記ホスト装置に送信し、
暗号化データを前記暗号化ユニットによって復号化して復号化データを生成し、当該復号化データと前記乱数とを前記スクランブル演算してスクランブルデータを生成し前記ホスト装置に送信し、
前記ホスト装置は、前記プロセッサによって、前記第1のスクランブルキーから取得された前記乱数に従って前記スクランブルデータをスクランブル演算して前記スクランブルデータから前記復号化データを取得するセキュリティシステム。
【請求項11】
ホスト装置と、前記ホスト装置に接続されるセキュリティ装置とを有するセキュリティシステムであって、
前記ホスト装置は、
スクランブル演算機能を有するプロセッサと、
第1の認証コードと第2の認証コードとが記憶された記憶ユニットとを有し、
前記セキュリティ装置は、
前記第1の認証コードと第2の認証コードとが記憶された記憶ユニットと、
乱数を生成する乱数生成ユニットと、
データを暗号化または復号化する暗号化ユニットと、
前記スクランブル演算機能を有するコントローラとを有し、
前記コントローラは、
前記乱数生成ユニットが生成した前記乱数と前記第1の認証コードとを前記スクランブル演算して第1のスクランブルキーを生成して前記ホスト装置に送信すると共に、前記乱数と前記第2の認証コードとを前記スクランブル演算して第2のスクランブルキーを生成し、
暗号化データを前記暗号化ユニットによって復号化して復号化データを生成し、当該復号化データと前記第2のスクランブルキーとを前記スクランブル演算してスクランブルデータを生成し前記ホスト装置に送信し、
前記ホスト装置は、前記プロセッサによって、前記第1のスクランブルキーから取得した前記乱数と前記第2の認証コードとを前記スクランブル演算して生成した前記第2のスクランブルキー従って、前記スクランブルデータをスクランブル演算させ、前記スクランブルデータから前記復号化データを取得するセキュリティシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2013−25374(P2013−25374A)
【公開日】平成25年2月4日(2013.2.4)
【国際特許分類】
【出願番号】特願2011−156722(P2011−156722)
【出願日】平成23年7月15日(2011.7.15)
【出願人】(308014341)富士通セミコンダクター株式会社 (2,507)
【Fターム(参考)】