JPWO2006118101A1 - 機密情報処理用ホスト機器および機密情報処理方法 - Google Patents

機密情報処理用ホスト機器および機密情報処理方法 Download PDF

Info

Publication number
JPWO2006118101A1
JPWO2006118101A1 JP2006529384A JP2006529384A JPWO2006118101A1 JP WO2006118101 A1 JPWO2006118101 A1 JP WO2006118101A1 JP 2006529384 A JP2006529384 A JP 2006529384A JP 2006529384 A JP2006529384 A JP 2006529384A JP WO2006118101 A1 JPWO2006118101 A1 JP WO2006118101A1
Authority
JP
Japan
Prior art keywords
key
confidential information
information processing
enc
authentication
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2006529384A
Other languages
English (en)
Inventor
和也 清水
和也 清水
友哉 佐藤
友哉 佐藤
藤原 睦
睦 藤原
塩見 謙太郎
謙太郎 塩見
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Publication of JPWO2006118101A1 publication Critical patent/JPWO2006118101A1/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

ターゲット機器に、m個(mは自然数)の鍵{Ka1,...,Kam}をKai(iは1≦i≦mを満たす自然数)がKa(i−1)により暗号化された形で格納し、またn個(nは自然数)の鍵{Kb1,...,Kbn}をKbj(jは1≦j≦nを満たす自然数)がKb(j−1)により暗号化された形で格納する場合に、機密情報処理部において、KaiがKa(i−1)により暗号化された暗号化鍵Enc(Kai,Ka(i−1))を、Kb(j−1)により暗号化しなおして、暗号化鍵Enc(Kai,Kb(j−1))として出力する処理を行わせる。

Description

本発明は、ターゲット機器に格納される鍵に対する暗号変換処理方法および、それを実現する機密情報処理装置としてのホスト機器に関する。
近年、メモリカードといったデータを蓄積するための機器(以下、「ターゲット機器」という。)は、その利用用途の拡大に伴い広く利用されるようになってきた。このターゲット機器は、一般的にターゲット機器を挿入するためのスロットを備え、挿入されたターゲット機器に対してデータの格納を行う機器(以下、「ホスト機器」という。)により使用される。
また、ターゲット機器の利用用途の一つに、オーディオデータなどの著作権保護が必要なデータを扱う用途がある。このような用途においては、オーディオデータなどの著作権を保護する目的で機密情報処理方法が用いられる。この機密情報処理方法では、著作権の保護が必要なデータに対しては暗号化を行い、暗号化されたデータをターゲット機器に格納する。これにより、著作物などのコンテンツに対する不正なコピー、あるいはコンテンツの外部への漏洩を防止する。
以下では、このような著作権保護を行うための機密情報処理方法について説明する。著作権保護を行う機密情報処理方法においては、まず、ターゲット機器とホスト機器の間で認証処理を行う。次に、認証が成功した場合のみ、暗号化コンテンツを復号化するための鍵であるコンテンツ鍵(以下、「Kc」という。)をホスト機器がターゲット機器から入手可能な構成となっている。ホスト機器は、コンテンツ鍵の入手により、ターゲット機器に格納された暗号化コンテンツを利用可能になる。このような構成により、不正なホスト機器により暗号化コンテンツが復号化されるのを防ぐことが出来る。このような著作権保護を行うための機密情報処理方法に関する先行技術文献として特許文献1がある。
続いて、認証が成功した場合に、Kcを用いてホスト機器がコンテンツを復号化する処理について図面を参照しながら説明する。図1はこのような機密情報処理方法を実行するホスト機器の主要部の構成を示す機能ブロック図である。ここで、図1では認証処理が正常に終了し、ターゲット機器とホスト機器がともに正当な機器であることが確認されているとする。図1では、ホスト機器1300にターゲット機器1301が挿入され、ホスト機器1300に備わった鍵などの機密情報の暗号化や復号化を行うための機密情報処理部1302により、ワーク用の領域であるワーク領域1303に格納された暗号化コンテンツ1304を復号化してコンテンツ1305を利用する場合を説明する。なお、ここで機密情報処理部は、セキュリティを高めるために、ハードウェアとして半導体集積回路に実装されている。
図1では、前述したようにターゲット機器1301に対して認証が成功している場合を説明するため、認証処理1306から生成される鍵である認証鍵Ka0(1307)が生成されている。ここで認証鍵とは、認証が成功した場合にのみ機密情報処理部1302に生成される鍵であり、認証処理において、ホスト機器が所有する認証用の鍵である認証用ホスト鍵と、ターゲット機器が有する認証用の鍵である認証用スレーブ鍵とに基づいて算出される。
また、コンテンツ鍵はターゲット機器1301に格納され、コンテンツの復号化が行われる際にターゲット機器1301から入手される。なお、Kcはその秘匿性確保のために、認証鍵であるKa0により暗号化された形でターゲット機器1301に保持される。したがって、認証処理によりKa0を生成したホスト機器のみが暗号化されたKcを復号可能なことが分かる。なお、以下ではKcをKa0により暗号化した暗号化鍵はEnc(Kc,Ka0)と表記する(その他の暗号化鍵についても同様の表記を用いる)。また暗号化されたコンテンツは、Kcにより暗号化され、ターゲット機器1301に格納される。そのため、Kcを生成したホスト機器であれば、暗号化コンテンツをターゲット機器1301から入手することにより復号化可能である。
以下では、認証処理後にホスト機器1300がターゲット機器に格納されたEnc(Kc,Ka0)1308を入手し、ワーク領域1303に格納した後の処理を説明する。また、暗号化コンテンツ1304も認証処理後にターゲット機器1301から入手され、ワーク領域1303に格納済みとする。なお、Enc(Kc,Ka0)や暗号化コンテンツは、必ずしも一旦ワーク領域1303に格納する必要はなく、直接ターゲット機器1301から機密情報処理部1302に入力することも可能である。
コンテンツの復号化においては、まずホスト機器1300はEnc(Kc,Ka0)1308を機密情報処理部1302に入力し、認証処理1306で生成したKa0(1307)により復号化処理1309を行う。これにより平文状態(暗号化されていない状態を称す)のコンテンツ鍵であるKc1310が生成される。なお、生成されたKc1310は機密情報処理部1302に保持され、ホスト機器1300はその値を知ることが出来ない。続いて、ホスト機器1300は暗号化コンテンツ1304を入力し、機密情報処理部1302においてKcによる復号化処理1311が行われる。これによりホスト機器1300は復号化されたコンテンツ1305を得ることができ、コンテンツの復号化処理が終了となる。このように、コンテンツの復号化の際は、Kcは暗号化されたEnc(Kc,Ka0)の形で機密情報処理部に入力され、また暗号化されていないKcは機密情報処理部に保持される。そのため、ホスト機器ではKcの秘匿性を確保した形でコンテンツの復号化が行える。
特開2000−357126号公報
近年、ターゲット機器の利用用途が広まってきたことに伴い、複数の機密情報処理方法が混在してターゲット機器に実装される場合が増えてきた。このような状況においては、コンテンツを暗号化するための鍵であるコンテンツ鍵Kcは、異なる機密情報処理方法の間で相互に利用できることが望ましい。ところが、コンテンツ鍵Kcを相互に利用する際において、Kcはその秘匿性が確保されている必要がある。つまり暗号化されていないコンテンツ鍵Kcがユーザーなどの第三者に知られるのを防ぐ必要がある。また、第三者によりコンテンツ鍵Kcの不正な相互利用が行われるのを防ぐ必要がある。ここで、不正な相互利用の例としては、あるコンテンツ鍵Kcが同一ターゲット機器内でのみ相互利用が許されている場合に、異なるターゲット機器間でそのコンテンツ鍵Kcを相互利用可能とすることなどがある。
また、図1に示した機密情報処理方法では認証鍵Ka0により暗号化されたEnc(Kc,Ka0)をターゲット機器に格納している。この機密情報処理方法は、暗号化コンテンツを平文のコンテンツに復号化するまでに、2段階の復号を必要とする。つまり、認証鍵Ka0による暗号化コンテンツ鍵ENC(Kc,Ka0)からコンテンツ鍵Kcへの復号、コンテンツ鍵Kcによる暗号化コンテンツの復号の2段階である。
これに対して、2段階よりも多い段数の機密情報処理方法が考えられる。例えば、3段階の機密情報処理方法では、認証鍵Ka0により鍵Ka1を暗号化したEnc(Ka1,Ka0)をターゲット機器に格納し、さらにこのKa1によりKcを暗号化したEnc(Kc,Ka1)をターゲット機器に格納することになる。これによっても、コンテンツの保護を行うことが可能である。この場合、ターゲット機器との間で認証処理を行うことによって機密情報処理部に認証鍵Ka0を生成すれば、Enc(Ka1,Ka0)が復号可能になり、さらに復号化されたKa1によりEnc(Kc,Ka1)を復号可能になる。
同様に、多段階の機密情報処理方法を一般化すれば、m個の暗号化鍵[Enc(Ka1,Ka2),...,Enc(Ka(m−1),Kam)]をターゲット機器に格納し、Kamをコンテンツ鍵の暗号鍵として使用することになると考えられる。2段階の機密情報処理方法におけるコンテンツ鍵Kcを、異なる機密情報処理方法の間で相互利用可能とすることが望まれるのと同様に、多段階の全部又は一部の鍵Kai(iは1≦i≦mを満たす自然数)が異なる機密情報処理方法との間で相互利用可能になることも望まれる。
したがって、本発明の目的は、m個の暗号化鍵[Enc(Ka1,Ka2),...,Enc(Ka(m−1),Kam)]がターゲット機器に格納される場合において、鍵Kaiを異なる機密情報処理方法との間で相互利用するための処理方法を提供することにある。
またその処理方法が、Kaiの秘匿性が確保された状態で、また第三者によるKaiの不正な相互利用を防いだ状態で実行可能とすることを目的とする。
上記課題を解決するために、本発明の機密情報処理用ホスト機器は、暗号化コンテンツを含む暗号化された状態の機密情報を格納するターゲット機器から前記暗号化コンテンツを読み出し、復号化して利用する機密情報処理用のホスト機器であって、予め定められた複数のシーケンスのみに従って動作を行う機密情報処理部と、前記機密情報処理部に対して、前記複数のシーケンスの起動を指示するCPUと、前記機密情報処理部とターゲット機器との間で前記機密情報を含むデータの入出力を行う第1のインターフェース部と、前記機密情報処理部と前記CPUとの間で前記機密情報を含むデータの入出力を行う第2のインターフェース部と、を備え、前記ターゲット機器またはホスト機器は、m個の鍵{K1,...,Km}を暗号化された状態で前記機密情報として格納し、前記鍵Kmは、コンテンツを暗号化するコンテンツ鍵であり、鍵Ki(1≦i≦mを満たす自然数)は鍵K(i−1)により暗号化され、前記複数のシーケンスは、前記m個の鍵のうち任意の鍵Kiを暗号化する鍵を、K(i−1)から別の鍵に変換する鍵変換シーケンスを含み、前記第1のインターフェース部と前記第2のインターフェース部は、前記鍵変換シーケンスが起動された場合に、暗号化された状態の機密情報のみを前記機密情報処理部の外部に出力するように構成されている。
上記構成をとることにより、CPUが機密情報処理部を用いて自由に鍵変換を行うのではなく、CPUが機密情報処理部に予め定められた鍵変換シーケンスの起動を指示することによって動作を行い、かつ鍵変換シーケンスの過程で生成される機密情報が機密情報外部に出力されないため、セキュリティを保ったままコンテンツを異なる機密情報処理方法の間で相互利用することが可能となる。
また、前記ホスト機器は前記ターゲット機器との間で第1の認証処理を行い、前記鍵K1を暗号化する前記鍵K0は第1の認証処理により生成される認証鍵Ka0であり、前記ターゲット機器と同一または異なるターゲット機器はn個(nは自然数)の鍵{Kb1,...,Kbn}を格納し、鍵Kbj(1≦j≦nを満たす自然数)はKb(j−1)により暗号化され、前記ホスト機器は、さらに前記ターゲット機器と同一または異なるターゲット機器の間で第2の認証処理を行い、前記鍵Kb0は前記第2の認証処理により生成される認証鍵であり、前記別の鍵は前記鍵{Kb0,...,Kb(n−1)}のうちの何れかの鍵であるようにしてもよい。
また、前記別の鍵は、Kb(n−m+i)であってもよい。この構成によれば、認証鍵Kb0からの復号化の回数(段数)が変わらずにコンテンツ鍵を復号化できるので、さらに好ましい。
また、前記ホスト機器は前記ターゲット機器との間で第1の認証処理を行い、前記鍵K1を暗号化する前記鍵K0が、前記第1の認証処理により生成される認証鍵Ka0であり、前記別の鍵は、前記機密情報処理部に格納されたホスト鍵Khであってもよい。
上記構成は、ターゲット機器に格納された鍵情報のバックアップとして有用である。バックアップされた鍵情報はホスト鍵Khで暗号化された状態で保存されるため、ホスト鍵Khを持ったホスト機器、すなわちバックアップを行ったホスト機器のみが復号可能となる。
また、前記鍵K0は、前記機密情報処理部に格納されたホスト鍵Khであり、前記ホスト機器は、さらに前記ターゲット機器と同一または異なるターゲット機器の間で第2の認証処理を行い、該ターゲット機器はn個(nは自然数)の鍵{Kb1,...,Kbn}を格納し、鍵Kbj(1≦j≦nを満たす自然数)は鍵Kb(j−1)により暗号化され、前記鍵Kb0は、前記第2の認証処理により生成された認証鍵であり、前記鍵変換シーケンスにおいて、鍵K1を暗号化する鍵を、前記ホスト鍵Khから{Kb0,...,Kb(n−1)}のうち何れかの鍵へと変換するようにしてもよい。
上記構成は、ホスト機器にバックアップされた鍵情報をターゲット機器にリストアする場合に有用である。バックアップされた鍵情報はホスト鍵Khで暗号化された状態で保存されるため、ホスト鍵Khを持ったホスト機器、すなわちバックアップを行ったホスト機器のみが復号可能となる。
また、前記ホスト機器は前記ターゲット機器との間で第1の認証処理を行い、前記K1を暗号化する前記鍵K0は、前記第1の認証処理により生成される認証鍵Ka0であり、前記ターゲット機器は、(m−s)個の鍵{Ke1,...Ke(m−s)}を格納し、鍵Kej(1≦j≦m−sを満たす自然数)は鍵Ke(j−1)により暗号化され、鍵Ke0は、前記m個の鍵{K1,...,Km}のうちの何れかの鍵Ks(1≦s<mを満たす自然数)であり、前記別の鍵は、{Ke1,...,Ke(m−s−1)}のうち何れかの鍵であってもよい。
上記構成によると、ターゲット機器に格納されるべき暗号化された鍵情報の数を減らすことが可能となる。
また、前記機密情報処理部は、さらに、前記第1の認証処理が適正に終了しているか否かを示す認証フラグを保持するフラグ保持部を有し、前記認証フラグが前記第1の認証処理が適正に終了していることを示さない場合に、前記ホストCPUからの鍵変換シーケンスの起動を禁止するようにしてもよい。
上記構成により、適正に第1の認証処理を終了した場合にしか鍵変換シーケンスが起動されないので、不正な認証処理によって鍵変換シーケンスを起動することを防止できる。
また、前記機密情報処理部は、さらに、前記第2の認証処理が適正に終了しているか否かを示す認証フラグを保持するフラグ保持部を有し、前記認証フラグが前記第2の認証処理が適正に終了していることを示さない場合に、前記ホストCPUからの鍵変換シーケンスの起動を禁止するようにしてもよい。
上記構成により、適正に第2の認証処理を終了した場合にしか鍵変換シーケンスが起動されないので、不正な認証処理によって鍵変換シーケンスを起動することを防止できる。
また、前記機密情報処理部は、さらに、前記鍵K(i−1)が内部に生成されているか否かを示す鍵生成フラグを保持するフラグ保持部を有し、前記鍵生成フラグが、鍵K(i−1)が内部に生成されていることを示さない場合に、前記ホストCPUからの鍵変換シーケンスの起動を禁止するようにしてもよい。
上記構成により、鍵Kiを暗号化していた鍵K(i−1)が生成されている場合にしか鍵変換シーケンスが起動されないので、不正な鍵を用いて鍵変換シーケンスが起動されることを防止することができる。
また、前記機密情報処理部は、さらに、前記別の鍵が内部に生成されているか否かを示す鍵生成フラグを保持するフラグ保持部を有し、前記鍵生成フラグが前記別の鍵が内部に生成されていることを示さない場合に、前記ホストCPUからの鍵変換シーケンスの起動を禁止するようにしてもよい。
上記構成により、変換するための鍵が生成されている場合にしか鍵変換シーケンスが起動されないので、不正な鍵を用いて鍵変換シーケンスが起動されることを防止することができる。
また、前記機密情報処理部は、さらに、前記第1の認証処理と前記第2の認証処理とが同一のターゲット機器に対して行われたか否かを示すターゲットフラグを保持するフラグ保持部を有し、前記ターゲットフラグが前記第1の認証処理と前記第2の認証処理とが同一のターゲット機器に対して行われたことを示さない場合に、前記ホストCPUからの鍵変換シーケンスの起動を禁止するようにしてもよい。
上記構成により、同一のターゲット機器に対してしか鍵変換を受け付けないといった制約がある場合に、その制約を確実に守ることができる。また、ターゲット機器を接続するスロットが2つある場合に、各々のスロットに異なるターゲット機器を接続して不正に鍵変換シーケンスを起動することを防止できる。
本発明の処理方法を用いた場合、異なる認証鍵を持つ機密情報処理方法の間などにおいて鍵変換処理を実行することができる。これにより、Kcなどを異なる機密情報処理の間で相互に利用可能となる。また、機密情報処理部においては、鍵変換処理の実行にあたりユーザーによる不正な処理が行われていないこと確認することから、ユーザーによる不正な鍵変換処理が実行されるのを防ぐことができる。さらに暗号化されていない鍵を機密情報処理部内で保持することにより、鍵情報の秘匿性が確保される。
またターゲット機器以外の機器との間で、鍵の相互利用やバックアップが、ユーザーによる不正な処理を防いだ形で、かつ鍵情報が秘匿化された形で実現される。
さらに、不要となった鍵の消去などによる鍵の整理が、ユーザーによる不正な処理を防いだ形で、かつ鍵情報が秘匿化された形で可能となる。
図1は、従来技術におけるコンテンツの復号化方法を示す図である。 図2は、本発明における機密情報処理システムの全体を示す図である。 図3は、本発明における入力Enc(Kc,Ka2)から出力Enc(Kc,Kb1)を得る鍵変換処理を行うための構成を示す図である。 図4は、本発明における鍵変換制御部および鍵変換制御フラグの構成を示す図である。 図5は、本発明における入力Enc(Kc,Ka2)から出力Enc(Kc,Kb1)を得る鍵変換処理を行うためのフローチャートである。 図6は、本発明における認証の消去でのターゲット機器交換前の構成を示す図である。 図7は、本発明における認証の消去でのターゲット機器交換後の構成を示す図である。 図8は、本発明における入力Enc(Kc,Ka2)から出力Enc(Kc,Kh)を得る鍵変換処理を行うための構成を示す図である。 図9は、本発明における入力Enc(Kc,Ka2)から出力Enc(Kc,Kh)を得る鍵変換処理を行うためのフローチャートである。 図10は、本発明における入力Enc(Kc,Kh)から出力Enc(Kc,Kb1)を得る鍵変換処理を行うための構成を示す図である。 図11は、本発明における入力Enc(Kc,Kh)から出力Enc(Kc,Kb1)を得る鍵変換処理を行うためのフローチャートである。 図12は、本発明における入力Enc(Kc,Ka2)から出力Enc(Kc,Kd2)を得る鍵変換処理を行うための構成を示す図である。 図13は、本発明における入力Enc(Kc,Kd2)から出力Enc(Kc,Ke2)を得る鍵変換処理を行うためのフローチャートである。
符号の説明
100 ホスト機器
101 ターゲット機器
102 機密情報処理部
103 ホストCPU
104 ホストI/F
105 ターゲットI/F
106 ワーク領域
107 内部バス
108 半導体集積回路
216 鍵変換制御部
217 鍵変換制御フラグ
300 鍵変換処理設定デコード回路
301 セレクタ
302 ANDゲート
303 認証フラグ(Ka0)
304 認証フラグ(Kb0)
305 同一ターゲットフラグ
306 鍵生成フラグ(Ka2)
307 鍵生成フラグ(Kb1)
500 ターゲット機器1
600 ターゲット機器2
1300 ホスト機器
1301 ターゲット機器
1302 機密情報処理部
1303 ワーク領域
以下、本発明を実施するための最良の形態について、図面を参照しながら説明する。
(実施の形態1)
実施の形態1では、本発明における鍵変換処理方法について説明する。図2はホスト機器100とターゲット機器101から構成される機密情報処理システムの全体構成を示したものである。
ホスト機器100は、所定の制御シーケンスに従って機密情報(以下では、鍵などの平文状態での不正利用が許されない情報を示す)の暗号化や復号化を行う機密情報処理部102と、機密情報処理部102に対して所定の制御シーケンスを起動するホストCPU103と、ホストCPU103とターゲット機器101、および機密情報処理部102との間でデータの入出力を行うホストI/F部104と、ターゲット機器101との間でデータの入出力を行うターゲットI/F部105と、ホストCPU103や機密情報処理部102がその動作のためにデータを一時格納しておくためのワーク用の領域であるワーク領域106、および内部バス107とから構成される。また、機密情報処理部102は、ホストI/F部104およびターゲットI/F部105とともに秘匿化されたハードウェアである半導体集積回路108として構成される。なお、上記の構成要素に加えホストCPU103も併せて秘匿化された半導体集積回路として構成してもよい。
また、ホスト機器100とターゲット機器101との間で鍵などの機密情報の読み出しおよび書き出しが行われる場合には、ホスト機器100とターゲット機器101との間で認証処理を行う必要がある。なお、ここで行う認証処理は、秘密鍵方式または公開鍵方式のいずれの暗号方式を利用して行ってもよい。認証が成功すると、ホスト機器100はターゲット機器101からターゲットI/F部105を介して機密情報を読み出し、機密情報処理部102を用いて復号化して利用する。また、機密情報処理部102の動作の起動はホストCPU103から行われ、起動された場合、セキュリティの確保された、あるいはセキュリティの必要の少ない所定のシーケンスのみを行う。
ここで、ホストI/F部104とターゲットI/F部105とは、機密情報処理部102が行うシーケンスの途中で生成される中間情報のうち機密性の高いもの(平文状態の機密情報等)を、秘匿化された半導体集積回路108外部には出力しないように構成されている。
また、機密情報処理部102とホストCPU103は同一の半導体チップで構成しても別チップで構成してもどちらでも構わない。
図3は本発明における、鍵変換処理の実施の形態の一つを示したものである。図2と同一の要素については、同一の符号を用いている。図3では本発明の実施の形態の一つとして、ターゲット機器101に三つの暗号化鍵{Enc(Ka1,Ka0),Enc(Ka2,Ka1),Enc(Kc,Ka2)}が格納され、さらに同一のターゲット機器101に二つの暗号化鍵{Enc(Kb1,Kb0),Enc(Kb2,Kb1)}が格納された状態で、Enc(Kc,Ka2)に対して鍵変換処理を行うことによりEnc(Kc,Kb1)を得る場合を説明する。なお、この図では説明の簡略化のために、図2におけるホストI/F部104、ターゲットI/F部105、および内部バス107は省略した。なお、図3において、復号化202、205、209、213は別個の復号化回路があるかのように描かれているが、これは説明をシーケンスに沿って簡略化するためであり、実際には同一の復号化回路をシーケンスに沿って複数回利用することが多い。この場合、復号化に用いられる、あるいは復号化の結果生成される各鍵は外部からアクセスできない領域に格納しておく必要がある。また、暗号化と復号化のアルゴリズムに関連性がある場合は、復号化と暗号化の回路の一部、あるいは全部を共用することも可能である。
また、ここでは鍵変換処理を行うにあたり、ターゲット機器に対する認証処理が終了し機密情報処理部102に認証鍵Ka0(200)が生成されているものとする。またターゲット機器101に格納されたEnc(Ka1,Ka0)201がワーク領域106に一旦格納された後に、機密情報処理部102にIN1として入力され認証鍵Ka0(200)により復号化202することによりKa1(203)が生成され、さらにターゲット機器101に格納されたEnc(Ka2,Ka1)204がワーク領域106に一旦格納された後に、機密情報処理部102にIN2として入力されKa1(203)により復号化205することによりKa2(206)が生成されているものとする。また同様に、ターゲット機器に対して別の認証処理を行うことにより認証鍵Kb0(207)が機密情報処理部102に生成されているものとする。ターゲット機器101に格納されたEnc(Kb1,Kb0)208がワーク領域106に一旦格納された後に、機密情報処理部102にIN3として入力され認証鍵Kb0(207)により復号化209することによりKb1(210)が生成されているものとする。なお、これらEnc(Ka1,Ka0)201、Enc(Ka2,Ka1)204およびEnc(Kb1,Kb0)208は、必ずしも一旦ワーク領域106に格納する必要はなく、直接ターゲット機器101から機密情報処理部102に入力することも可能である。
また、鍵変換処理の入力となるEnc(Kc,Ka2)211は、認証処理後にターゲット機器101からホスト機器100のワーク領域106に格納済みであり、出力であるEnc(Kc,Kb1)212はワーク領域106に格納されるものとする。そしてワーク領域格納後に、改めてターゲット機器に格納されるものとする。なお、これらEnc(Kc,Ka2)211やEnc(Kc,Kb1)212は、必ずしも一旦ワーク領域106に格納する必要はなく、直接ターゲット機器101から機密情報処理部102に入力する、もしくは直接機密情報処理部102からターゲット機器101に出力することも可能である。
以下、鍵変換処理が行われる際の機密情報処理部102の動作を説明する。図3では、機密情報処理部102にEnc(Kc,Ka2)からEnc(Kc,Kb1)への鍵変換処理を行うための制御シーケンスが定義されており、この制御シーケンスがホストCPU103から起動されたとする。これにより、鍵変換処理が開始される。
鍵変換処理では、まずKcに対する暗号化および復号化を行うための鍵(機密情報処理部102に生成されたKa2(206)およびKb1(210))が復号化を行うための回路および暗号化を行うための回路に設定される。そして次にEnc(Kc,Ka2)211が機密情報処理部102に入力され、この入力された鍵に対してKa2(206)を用いて復号化処理213を行う。このようにKa2(206)で復号化を行うことにより、暗号化されていないKc214が機密情報処理部102に生成される。この際、機密情報処理部102ではこの鍵をホストCPU103からアクセスされない形で保持する。この実装の例としては、ホストCPU103からアクセス不可能なレジスタにKc214を格納する方法がある。なお、Kc214は鍵変換処理終了後に機密情報処理部102により消去しても構わない。そして、Kc214に対してKb1(210)を用いて暗号化処理215を行う。この暗号化処理215によりEnc(Kc,Kb1)212が機密情報処理部102から出力される。以上の処理により鍵変換処理が終了する。
また、鍵変換処理における暗号化処理215や復号化処理213は、図3に示す鍵変換制御部216や、鍵変換制御フラグ217により制御される。ここで、鍵変換制御部216は暗号化処理215や復号化処理213を行う回路に対して、それぞれの回路で使用される鍵を設定するための信号、およびそれぞれの回路に対するイネーブル信号を生成するための回路である。なお、ここでのイネーブル信号とは、この信号が入力されている間はそれぞれの回路において暗号化や復号化が実行可能とするための信号である。また、鍵変換制御フラグ217は、ホストCPU103から鍵変換処理の制御シーケンスが起動された際に鍵変換制御部216に読み出され、イネーブル信号生成の条件として使用される。
ここで本発明における鍵変換制御フラグ217は三種類のフラグから成り、一つ目は鍵変換処理の入力となる暗号化鍵を格納するターゲット機器、および鍵変換処理の出力となる暗号化鍵を格納するターゲット機器に対してそれぞれ認証処理が行われたどうかを示すためのフラグ(以下、「認証フラグ」という。)で、それぞれのターゲット機器が不正な機器でないことを確認するために使用される。図3の例では、それぞれの認証が行われた場合に1になるものとする。
二つ目は前記の二つの認証処理が同一のターゲット機器に対して行われたかを示すためのフラグ(以下、「同一ターゲットフラグ」という。)で、鍵変換処理の入力となる暗号化鍵および出力となる暗号化鍵が同一のターゲット機器に格納される必要がある場合に、同一ターゲット機器に対して認証処理が行われたかどうかを確認するために使用される。図3の例では、同一のターゲット機器に対して認証が行われた場合に1になるものとする。なお、同一ターゲット機器であることを確認するための方法の一例には、それぞれの認証処理の際に、ターゲット機器に固有な識別番号を機密情報処理部102に保持し、それら保持された識別番号が同一かどうかを確認することにより、同一ターゲット機器かどうかを判定する方法がある。
三つ目は鍵変換処理において復号化および暗号化を行うための鍵(図3ではKa2(206)およびKb1(210))が機密情報処理部にそれぞれ生成されたかどうかを示すためのフラグ(以下、「鍵生成フラグ」という。)で、図3の例ではKa2(206)またはKb1(210)が生成されていない状態、すなわちKa2=0またはKb1=0などの状態で復号化または暗号化が行われないことを確認するために使用される。図3の例では、鍵の生成が行われた場合に1になるものとする。なお、鍵が生成されたことを確認する方法としては、図3のKa2(206)を例とした場合、Ka2を生成するために必要な復号化処理(図3では、復号化処理202および復号化処理205)がそれぞれ行われたことを機密情報処理部102で保持し、それらの結果から必要な復号化処理がすべて行われたかどうかを確認する方法などがある。
図4は、図3の鍵変換処理で使用される鍵変換制御部216と鍵変換制御フラグ217の構成例を示したものである。鍵変換制御部216は、機密情報処理部102に対してどの鍵変換処理を起動するかを設定するための鍵変換処理設定をホストCPU103からの入力として持ち、暗号回路に対する鍵選択信号およびイネーブル信号を出力として持つ。また、鍵変換処理設定をデコードするための鍵変換設定デコード回路300と、デコード回路から出力される信号を選択信号とするセレクタ301、およびセレクタ301への入力として使用するためのANDゲート302から構成される。ここで、鍵変換設定デコード回路300は例えば、ホストCPU103からの鍵変換処理設定を保持するためのレジスタと、それらレジスタの値を機密情報処理部102で使用される内部制御信号に変換するための回路から構成される。また、ANDゲート302の入力には、ホストCPU103から起動された鍵変換処理が不正なく行われるために必要となるフラグが入力される。
ここで、図3の場合に必要となるフラグを説明する。図3の処理では認証鍵Ka0(200)および認証鍵Kb0(207)から生成されるKa2(206)およびKb1(210)が使用される。そのため、認証鍵Ka0(200)を生成する認証処理および認証鍵Kb0(207)を生成する認証処理がともに終了している必要がある。そのため、認証フラグ(Ka0)303および認証フラグ(Kb0)304が使用され、それらがともに1となる必要がある。また、図3の場合は鍵変換処理の入力であるEnc(Kc,Ka2)211と、出力であるEnc(Kc,Kb1)212がともに同一のターゲット機器に格納されているものとする。そのため、同一ターゲットフラグ305が使用され、その値が1となる必要がある。なお、同一ターゲット機器内での鍵変換処理ではない場合は、同一ターゲットフラグ305はイネーブル信号生成の条件として使用されない。また、鍵変換処理においてはKa2(206)およびKb1(210)がともに機密情報処理部102に生成される必要があるので、鍵生成フラグ(Ka2)306および鍵生成フラグ(Kb1)307が使用され、それらがともに1となる必要がある。したがって、図3に示す鍵変換処理を行う鍵変換処理設定がホストCPU103から行われた場合は、これら五つのフラグを入力に持つANDゲート302の出力が、セレクタ301の出力として選択される。そのため、これら五つのフラグがすべて1となっている場合のみ、暗号回路が使用可能となる。なお、上記の五つのフラグを全て備える必要は必ずしもない。例えば、認証フラグと鍵生成フラグは何れか一方しかなくともシステムによっては一定のセキュリティレベルを達成することができ得る。また、同一ターゲットフラグ305は、同一ターゲットでの鍵変換しか許容しないようなモードが存在する場合は必要であるが、そういったモードが存在しない場合には必ずしも必要ない。しかし、ここでスロットが二つ存在する場合には、同一ターゲットフラグ305を備えることが好ましく、その理由については実施の形態2において後述する。
なお、これらのフラグはCPUが直接に書き換えを行うことはできず、各処理の結果を受けて機密情報処理部内でハードウェア的に書き換えられるものである。
次に、図5のフローチャートを用いることにより図3に示した鍵変換処理の流れを説明する。本発明の鍵変換処理では、図3に対する説明でも示したように、まずホストCPU103により鍵変換処理設定400が行われる。これにより、機密情報処理部102で実行される鍵変換処理が起動される。次に、鍵変換制御フラグ読み出し401が鍵変換制御部216に対して行われる。読み出し後に、機密情報処理部102に対してEnc(Kc,Ka2)入力402を行う。そして、読み出されたフラグを基に、機密情報処理部102で不正な処理が行われないための条件が満たされているかどうかが確認される。これらの確認の処理は、図5では条件分岐403から条件分岐407に相当する。なお、不正な処理が行われないことが確認出来るのであれば、確認を行う順番は図5に示すとおりでなくても構わない。
図5では、図3の鍵変換制御フラグの説明でも示したように、五つの確認が行われる。まず、ターゲット機器に対する認証の条件として、鍵変換処理の入力であるEnc(Kc,Ka2)211を格納するターゲット機器に対して認証鍵Ka0(200)を生成する認証処理が行われているかを条件分岐403で確認する。これにより、認証鍵Ka0(200)を生成する認証処理が行われていること、およびEnc(Kc,Ka2)211を格納するターゲット機器が不正な機器でないことを確認する。次に、鍵変換処理の出力であるEnc(Kc,Kb1)212を格納するターゲット機器に対して認証鍵Kb0(207)を生成する認証処理が行われているかを条件分岐404で確認する。これにより、認証鍵Kb0(207)を生成する認証処理が行われていること、およびEnc(Kc,Kb1)212を格納するターゲット機器が不正な機器でないことを確認する。
次に、同一ターゲットフラグの説明で示したように、図3の例では鍵変換処理は同一のターゲット機器内で行われる場合を前提としているため、実行した二つの認証処理が同一のターゲット機器に対して行われたかを条件分岐405で確認する。これにより、同一ターゲット機器内での鍵変換処理が行われているかを確認する。
また、鍵生成フラグの説明で示したように、Ka2(206)およびKb1(210)が機密情報処理部102に生成されていることを、条件分岐406および条件分岐407で確認する。これにより、Ka2(206)およびKb1(210)が生成されていない状態、すなわちKa2=0およびKb1=0などの状態で復号化および暗号化が行われないことを確認する。
以上の確認が行われた場合、ホストCPU103が設定した鍵変換処理が不正なく実行されることが確認される。そのため、確認後に入力であるEnc(Kc,Ka2)に対する変換処理408(図3では、Ka2(206)で復号化して、Kb1(210)で暗号化する処理)が行われる。この間、鍵変換制御部216から暗号化処理215や復号化処理213を行う回路に対してイネーブル信号が出力されている。そして変換処理が行われたことにより、Enc(Kc,Kb1)出力409が行われる。出力後、鍵変換処理が終了となる。
以上のように、図3および図5の処理を用いることにより鍵変換処理が実行される。なお、図3の例ではターゲット機器に{Enc(Ka1,Ka0),Enc(Ka2,Ka1),Enc(Kc,Ka2)}が格納され、また同一ターゲット機器に{Enc(Kb1,Kb0),Enc(Kb2,Kb1)}が格納された状態で、Enc(Kc,Ka2)211に対して鍵変換処理を行ってEnc(Kc,Kb1)212を得る場合を説明した。しかしながら、本発明はこの場合に限られるものではない。例えば、Ka2で暗号化されたコンテンツ鍵が複数あり、これらの全てについて別の認証処理で得られたKb0を認証鍵とする機密情報処理方法で利用したい場合でもよい。この場合、各々のコンテンツ鍵を暗号化する鍵をKb1に変換すると、コンテンツ鍵の個数と同じ回数の鍵変換処理を行う必要がある。そこで、Enc(Ka2,Ka1)をEnc(Ka2,Kb0)へと変換するような鍵変換処理を行う。すると、Ka2を暗号化のための鍵とする全てのコンテンツ鍵が、一度の鍵変換処理を行うのみで、Kb0を認証鍵とする機密情報処理方法で利用可能となる。なお、ここでEnc(Ka1,Ka0)をEnc(Ka1,Kb0)へと変換することも可能ではある。しかしながら、この場合は認証鍵Kb0からKcを復号化するまでの回数がKb1を用いる場合と比べて増えてしまう。したがって、機密情報処理部が、認証鍵に応じてその復号化の回数を管理し、管理している回数以外の回数の復号化で得られた結果を出力しないように構成されている場合などはEnc(Ka2,Ka1)をEnc(Ka2,Kb0)へと変換したほうが好ましい。
そこで、これを一般化して、ターゲット機器にm個(mは自然数)の鍵{Enc(Ka1,Ka0),...,Enc(Kam,Ka(m−1))}が格納され、さらにn個(nは自然数)の鍵{Enc(Kb1,Kb0),...,Enc(Kbn,Kb(n−1))}が格納された状態で、KamおよびKbnをコンテンツの暗号化および復号化に使用し、iおよびjをそれぞれ1≦i≦m、1≦j≦nを満たす自然数として、Enc(Kai,Ka(i−1))に対して鍵変換処理を行ってEnc(Kai,Kb(j−1))を得る構成としても良い。この場合、鍵変換処理を行うためには、機密情報処理部の復号化を行う回路にKa(i−1)を使用し、暗号化を行う回路にKb(j−1)を使用して、また鍵変換処理フラグとしてKa(i−1)が生成されたことを示すフラグ、およびKb(j−1)が生成されたことを示すフラグを代わりに使用すれば、図3と同様の鍵変換処理が実行可能である。したがって、機密情報処理部にKa(i−1)およびKb(j−1)に対応する鍵生成フラグを追加し、鍵変換制御部にこのフラグを選択するための回路を追加すればよい。また、m−i=n−jを満たすと、認証鍵Kb0からの復号化の回数が変わらずにコンテンツ鍵を復号化できるので、さらに好ましい。
(実施の形態2)
次に実施の形態2について説明する。基本的な全体構成は図2と同様なので説明を省略する。
実施の形態2では、本発明における認証のフラグの消去、および認証鍵の消去について説明する。図6および図7は、認証鍵Ka0を生成する認証のフラグの消去および認証鍵Ka0の消去を行うことにより、不正なターゲット機器の挿抜による不正な処理を防ぐことができることを示したものである。なお、図2と同一の要素については、同一の符号を用いている。なお、図6、図7において、復号化503、506、604,606は別個の復号化回路があるかのように描かれているが、これは説明をシーケンスに沿って簡略化するためであり、実際には同一の復号化回路をシーケンスに沿って複数回利用することが多い。この場合、復号化に用いられる、あるいは復号化の結果生成される各鍵は外部からアクセスできない領域に格納しておく必要がある。また、暗号化と復号化のアルゴリズムに関連性がある場合は、復号化と暗号化の回路の一部、あるいは全部を共用することも可能である。
図6ではターゲット機器1(500)がホスト機器100に挿入され、ターゲット機器に三つの暗号化鍵{Enc(Ka1,Ka0),Enc(Ka2,Ka1),Enc(Kc,Ka2)}が格納された状態であるものとする。また図7ではターゲット機器1(500)がホスト機器100から抜かれ、代わりにターゲット機器2(600)がホスト機器100に挿入され、ターゲット機器に一つの暗号化鍵Enc(Kb1,Kb0)が格納された状態であるものとする。ここで本実施の形態では、ホストCPU103が不正な処理を行おうとした場合でもセキュリティを保てる仕組みを提供することを目的とする。したがって、ホストCPU103のワーク領域106に格納された三つの暗号化鍵{Enc(Ka1,Ka0),Enc(Ka2,Ka1),Enc(Kc,Ka2)}はワーク領域106から消去されないものと仮定する。そして図6および図7を用いて、Kcに対して、Ka0から生成されるKa2と、認証鍵Kb0から生成されるKb1により鍵変換処理が行われるものとする。このように、図6および図7では、鍵変換処理を行うにあたりターゲット機器を交換した場合に、機密情報処理部102がどのような動作をするかを説明する。なお、ここでは鍵変換処理が同一ターゲット機器に対して行われる必要があるものとする。そのため、ターゲット機器の挿抜が行われた場合はその挿抜は不正な処理となる。
まず、図6のようにターゲット機器1(500)が挿入された状態で認証を行い、ターゲット機器1(500)が正当な機器であれば、機密情報処理部に認証鍵Ka0(501)が生成され、また認証鍵Ka0(501)を生成する認証処理が行われたことが、認証フラグ(Ka0)508により保持される。その後、ターゲット機器1に格納されていたEnc(Ka1,Ka0)502がワーク領域106に一旦格納された後に、機密情報処理部102にIN1として入力され認証鍵Ka0(501)により復号化503することによりKa1(504)を生成し、またターゲット機器1に格納されていたEnc(Ka2,Ka1)505がワーク領域106に一旦格納された後に、機密情報処理部102にIN2として入力されKa1(504)により復号化506することによりKa2(507)を生成したとする。なお、これらEnc(Ka1,Ka0)502およびEnc(Ka2,Ka1)505は、必ずしも一旦ワーク領域106に格納する必要はなく、直接ターゲット機器500から機密情報処理部102に入力することも可能である。
さらにターゲット機器1(500)に格納されたEnc(Kc,Ka2)509をホスト機器100のワーク領域106に格納済みとする。なお、このEnc(Kc,Ka2)は、必ずしも一旦ワーク領域106に格納する必要はなく、直接ターゲット機器500から機密情報処理部102に入力することも可能である。
ここで、図7に示すように、ターゲット機器1(500)をホスト機器100から抜き、ターゲット機器2(600)が代わりに挿入されたとする。なお、ここでは鍵変換処理が同一ターゲット機器に対して行われることを前提としている。そのため、この挿抜は不正な挿抜となる。このような場合、本発明の鍵変換処理においては、ターゲット機器が抜かれたことによりそのターゲット機器に対する認証、および認証処理の際に機密情報処理部102に生成した認証鍵を消去する。また、機密情報処理部102に認証鍵から生成された鍵(Ka1(504)やKa2(507))が生成されている場合は、それらを消去してもよい。
ここで認証の消去とは、認証フラグの消去であり、図7の例では認証フラグ(Ka0)508を0とする処理である。また認証鍵の消去とは、図7の例ではターゲット機器1(500)の認証鍵Ka0(501)に対しKa0=0と設定することなどを指す。なお、これらの情報の消去には、機密情報処理部102によりターゲット機器が抜かれたことを検知し、機密情報処理部102が消去を行う方法や、ホストCPU103によりターゲット機器が抜かれたことを検知し、ホストCPU103が機密情報処理部102に消去を行う制御シーケンスを起動する方法などがある。
次に、図7の例では、ターゲット機器2(600)に対して認証鍵Kb0(601)を生成する認証処理を行ったものとする。もしターゲット機器2(600)が正当な機器であれば、認証鍵Kb0(601)が生成され、また認証鍵Kb0を生成する認証が成立したことが、認証フラグ(Kb0)602により保持される。さらに、ここではターゲット機器2(600)に格納されていたEnc(Kb1,Kb0)603がワーク領域106に一旦格納された後に、機密情報処理部102にIN3として入力され認証鍵Kb0(601)により復号化604することによりKb1(605)が生成されているとする。なお、このEnc(Kb1,Kb0)603は、必ずしも一旦ワーク領域106に格納する必要はなく、直接ターゲット機器600から機密情報処理部102に入力することも可能である。
この状態で、ホストCPU103によりEnc(Kc,Ka2)からEnc(Kc,Kb1)への鍵変換処理が起動され、ワーク領域106に格納されてあったEnc(Kc,Ka2)509が入力されたとする。このような処理を行った場合は、認証フラグ(Ka0)508が0である、すなわち認証鍵Ka0を生成する認証処理が行われていないことが機密情報処理部で保持されている。そのため、Ka2(507)を用いて復号化を行う暗号回路に対してイネーブル信号が生成されていないため、復号化処理606が行われずにKcを得ることができない。またKcに対する暗号化処理607を行う暗号回路に対しても、イネーブル信号が生成されていない。
ところが、ここでターゲット機器1(500)に対する認証が行われたことが消去されていなければ、ターゲット機器1(500)が抜かれた後も機密情報処理部102の認証フラグ(Ka0)508が1のままとなる。すると、次に挿入されたターゲット機器2(600)の認証によって、認証フラグ(Kb0)602が1となる。ここで、図4を参照すると、鍵自体は認証によって適正に存在し得るため、鍵生成フラグ(Ka2)306と鍵生成フラグ(Kb1)307も1となり得る。したがって、不正に鍵変換処理が起動される可能性が残る。
またここで、同一ターゲットフラグ305の有用性について、スロットが二つ存在する場合を例にとって説明する。この場合、第1のスロットに対して、ターゲット機器1の認証を成功させ、第2のスロットに対してターゲット機器2の認証を成功させると、認証フラグ(Ka0)508と認証フラグ(Kb0)602が1となり、鍵自体も正当に生成され得る。したがって、CPUが不正に処理を起動することで不正な鍵変換が行われる可能性がある。しかし同一ターゲットフラグを設け、同一ターゲット機器への鍵変換のみを許容することで、そのような不正を行うことができなくなる。なお、同一ターゲットフラグを更新する方法であるが、実施の形態1で説明した固有な識別番号を用いる実装方法以外に、それぞれの認証処理がどのスロットに対して行われたかを保持する実装方法でもよい。このような実装方法では、ホスト機器に二つのスロットが存在し、それぞれに異なるターゲット機器が挿入された場合、スロットが異なることからそれぞれが異なるターゲット機器と判定することができ、上述したような状況でも不正な処理の起動を防ぐことが可能である。当然、一度ターゲット機器を抜いてから再度挿入した場合は、認証フラグが消去されるので不正な処理は行われない。
したがって、図6および図7に示すように、ターゲット機器がホスト機器100から抜かれた場合は、そのターゲット機器に対する認証が成功したことや認証鍵を消去することにより、不正な鍵変換処理が防ぐことができる。
(実施の形態3)
次に実施の形態3について説明する。基本的な全体構成は図2と同様なので説明を省略する。
実施の形態3では、本発明における鍵変換処理方法について説明する。図8は本発明における、鍵変換処理の実施の形態の一つを示したものである。図2および図3と同一の要素については、同一の符号を用いている。図8では本発明の実施の形態の一つとして、ターゲット機器101に三つの暗号化鍵{Enc(Ka1,Ka0),Enc(Ka2,Ka1),Enc(Kc,Ka2)}が格納された状態で、Enc(Kc,Ka2)に対して、機密情報処理部に外部から読み出されないようにして格納されたホスト鍵Khにより鍵変換処理を行ってEnc(Kc,Kh)を得る場合を説明する。ここで、ホスト鍵Khを機密情報処理部に格納する方法としては半導体集積回路の製造時に機密情報処理部内に実装する方法、あるいは半導体集積回路外部から電子配信等を介して暗号化された状態で半導体集積回路内部に入力し、半導体集積回路内部において復号化して機密情報処理部内に格納する方法等がある。これは後述する実施の形態4においても同様である。なお、図8において、復号化702、705、710は別個の復号化回路があるかのように描かれているが、これは説明をシーケンスに沿って簡略化するためであり、実際には同一の復号化回路をシーケンスに沿って複数回利用することが多い。この場合、復号化に用いられる、あるいは復号化の結果生成される各鍵は外部からアクセスできない領域に格納しておく必要がある。また、暗号化と復号化のアルゴリズムに関連性がある場合は、復号化と暗号化の回路の一部、あるいは全部を共用することも可能である。
ここで、Enc(Kc,Kh)はターゲット機器に格納されるのではなく、例えばホスト機器内のハードディスクなどの蓄積デバイスに格納される。この鍵変換処理の利用例としては、ターゲット機器に格納されたKcのバックアップなどを可能にする。このような処理では、バックアップされたKcはEnc(Kc,Kh)として保存されるため、Khを持ったホスト機器、すなわちバックアップを行ったホスト機器のみがEnc(Kc,Kh)を復号可能となる。
また、図8では、ターゲット機器101に対する認証処理が終了し機密情報処理部102にKa0(700)が生成されたものとする。またターゲット機器101に格納されたEnc(Ka1,Ka0)701がワーク領域106に一旦格納された後に、機密情報処理部102にIN1として入力されKa0(700)により復号化702することによりKa1(703)が生成され、さらにターゲット機器101に格納されたEnc(Ka2,Ka1)704がワーク領域106に一旦格納された後に、機密情報処理部102にIN2として入力されKa1(703)により復号化705することによりKa2(706)が生成されているものとする。なお、これらEnc(Ka1,Ka0)701およびEnc(Ka2,Ka1)704は、必ずしも一旦ワーク領域106に格納する必要はなく、直接ターゲット機器101から機密情報処理部102に入力することも可能である。
また、鍵変換処理の入力となるEnc(Kc,Ka2)707は、認証処理後にターゲット機器101からホスト機器100のワーク領域106に格納済みであり、出力であるEnc(Kc,Kh)708はワーク領域106に格納されるものとする。そしてワーク領域格納後に、改めてホスト機器100の蓄積デバイスなどに保存されるものとする。なお、入力のEnc(Kc,Ka2)は、必ずしも一旦ワーク領域106に格納する必要はなく、直接ターゲット機器101から機密情報処理部102に入力することも可能である。
以下、Ka2(706)およびKh709を用いた鍵変換処理が行われる際の機密情報処理部102の動作を説明する。図8では、機密情報処理部102にEnc(Kc,Ka2)からEnc(Kc,Kh)への鍵変換処理を行うための制御シーケンスが定義されており、この制御シーケンスがホストCPU103から起動されたとする。これにより、鍵変換処理が開始される。
鍵変換処理では、まずKcに対する暗号化および復号化を行うための鍵(機密情報処理部102に生成されたKa2(706)、および機密情報処理部102に格納されたKh709)が復号化を行うための回路および暗号化を行うための回路に設定される。そして次にEnc(Kc,Ka2)707が機密情報処理部102に入力され、この入力された鍵に対してKa2(706)を用いて復号化処理710を行う。このようにKa2(706)で復号化を行うことにより、暗号化されていないKc711が機密情報処理部102に生成される。この際、機密情報処理部102ではこの鍵をホストCPU103からアクセスされない形で保持する。この実装の例としては、ホストCPU103からアクセス不可能なレジスタにKc711を格納する方法がある。なお、Kc711は鍵変換処理終了後に機密情報処理部102により消去しても構わない。そして、Kc711に対してKh709を用いて暗号化処理712を行う。この暗号化処理712によりEnc(Kc,Kh)708が機密情報処理部102から出力される。以上の処理により鍵変換処理が終了する。
また、実施の形態1の場合と同様に、鍵変換処理における暗号化処理712や復号化処理710は、図8に示す鍵変換制御部216や、鍵変換制御フラグ217により制御される。ここで、図8の場合に必要となるフラグを考察する。図8の処理では認証鍵Ka0(700)から生成されるKa2(706)が使用される。そのため、認証鍵Ka0(700)を生成する認証処理が終了している必要がある。そのため、認証フラグ(Ka0)が鍵変換制御フラグ217の一つとして必要となる。なお、図8の場合は鍵変換処理の入力であるEnc(Kc,Ka2)707と、出力であるEnc(Kc,Kh)708は同一のターゲット機器に格納される必要がないため、同一ターゲットフラグは不要である。また、この鍵変換処理においては、Ka2(706)が復号化処理により機密情報処理部102に生成される必要がある。そのため、鍵生成フラグ(Ka2)が鍵変換制御フラグ217の一つとして必要となる。なお、Kh709は前もってホスト機器100に格納されている鍵なので、Kh709に対する生成フラグは不要である。したがって、図8に示す鍵変換処理を行う鍵変換処理設定がホストCPU103から行われた場合は、認証フラグ(Ka0)および鍵生成フラグ(Ka2)の二つのフラグを入力に持つANDゲートの出力が、図4に示すセレクタ301の出力として選択される。そのため、これら二つのフラグがともに1となっている場合のみ、暗号回路が使用可能となる。
次に、以下では図9のフローチャートを用いることにより図8に示した鍵変換処理の流れを説明する。本発明の鍵変換処理では、実施の形態1でも説明したように、まずホストCPU103により鍵変換処理設定800が行われる。これにより、機密情報処理部102で実行される鍵変換処理が起動される。次に、鍵変換制御フラグ読み出し801が鍵変換制御部216に対して行われる。読み出し後に、機密情報処理部102に対してEnc(Kc,Ka2)入力802を行う。そして、読み出されたフラグを基に、機密情報処理部102で不正な処理が行われないための条件が満たされているかどうかが確認される。これらの確認の処理は、図9では条件分岐803と条件分岐804に相当する。なお、不正な処理が行われないことが確認出来るのであれば、確認を行う順番は図9に示すとおりでなくても構わない。
図9では、図8の鍵変換制御フラグの説明でも示したように、二つの確認が行われる。まず、ターゲット機器に対する認証の条件として、鍵変換処理の入力であるEnc(Kc,Ka2)707を格納するターゲット機器に対して認証鍵Ka0(700)を生成する認証処理が行われているかを条件分岐803で確認する。これにより、認証鍵Ka0(700)を生成する認証処理が行われていること、およびEnc(Kc,Ka2)707を格納するターゲット機器が不正な機器でないことを確認する。また、鍵生成フラグの説明で示したように、Ka2(706)が機密情報処理部102に生成されていることを条件分岐804で確認する。これにより、Ka2(706)が生成されていない状態、すなわちKa2=0などの状態で復号化が行われないことを確認する。
以上の確認が行われた場合、ホストCPU103が設定した鍵変換処理が不正なく実行されることが確認される。そのため、確認後に入力であるEnc(Kc,Ka2)に対する変換処理805(図8では、Ka2(706)で復号化して、Kh(709)で暗号化する処理)が行われる。この間、鍵変換制御部216から暗号化処理712や復号化処理710を行う回路に対してイネーブル信号が出力されている。そして変換処理が行われたことにより、Enc(Kc,Kh)出力806が行われる。出力後、鍵変換処理が終了となる。
以上のように、図8および図9の処理を用いることにより鍵変換処理が実行される。なお、図8の例ではターゲット機器に{Enc(Ka1,Ka0),Enc(Ka2,Ka1),Enc(Kc,Ka2)}が格納された状態で、Enc(Kc,Ka2)707に対して鍵変換処理を行ってEnc(Kc,Kh)708を得る場合を説明した。そこで、これを一般化して、ターゲット機器にm個(mは自然数)の鍵{Enc(Ka1,Ka0),...,Enc(Kam,Ka(m−1))}が格納された状態で、Kamをコンテンツの暗号化および復号化に使用し、iを1≦i≦mを満たす自然数として、Enc(Kai,Ka(i−1))に対して鍵変換処理を行ってEnc(Kai,Kh)を得る構成としても良い。この場合、鍵変換処理を行うためには、機密情報処理部の復号化を行う回路にKa(i−1)を使用し、暗号化を行う回路にKhを使用して、また鍵変換処理フラグとしてKa(i−1)が生成されたことを示すフラグを代わりに使用すれば、図8と同様の鍵変換処理が実行可能である。したがって、機密情報処理部にKa(i−1)に対応する鍵生成フラグを追加し、鍵変換制御部にこのフラグを選択するための回路を追加すればよい。
(実施の形態4)
次に実施の形態4について説明する。基本的な全体構成は図2と同様なので説明を省略する。
実施の形態4では、本発明における鍵変換処理方法について説明する。図10は本発明における、鍵変換処理の実施の形態の一つを示したものである。図2および図3と同一の要素については、同一の符号を用いている。図10では本発明の実施の形態の一つとして、ターゲット機器101に二つの暗号化鍵{Enc(Kb1,Kb0),Enc(Kb2,Kb1)}が格納された状態で、Enc(Kc,Kh)に対して、Kb1により鍵変換処理を行ってEnc(Kc,Kb1)を得る場合を説明する。なお、図10において、復号化902、907は別個の復号化回路があるかのように描かれているが、これは説明をシーケンスに沿って簡略化するためであり、実際には同一の復号化回路をシーケンスに沿って複数回利用することが多い。この場合、復号化に用いられる、あるいは復号化の結果生成される各鍵は外部からアクセスできない領域に格納しておく必要がある。また、暗号化と復号化のアルゴリズムに関連性がある場合は、復号化と暗号化の回路の一部、あるいは全部を共用することも可能である。
ここで、Enc(Kc,Kh)はターゲット機器に格納されるのではなく、実施の形態3と同様に、例えばホスト機器内のハードディスクなどの蓄積デバイスに格納される。この鍵変換処理の利用例としては、ホスト機器にバックアップされたKcをターゲット機器にリストアする処理などが挙げられる。このような処理では、バックアップされたKcはEnc(Kc,Kh)として保存されているため、Khを持ったホスト機器、すなわちバックアップを行ったホスト機器のみがEnc(Kc,Kh)を復号可能となる。
また、図10では、ターゲット機器101に対する認証処理が終了し機密情報処理部102に認証鍵Kb0(900)が生成されたものとする。またターゲット機器101に格納されたEnc(Kb1,Kb0)901がワーク領域106に一旦格納された後に、機密情報処理部102にIN1として入力されKb0(900)により復号化902することによりKb1(903)が生成されているものとする。なお、このEnc(Kb1,Kb0)901は、必ずしも一旦ワーク領域106に格納する必要はなく、直接ターゲット機器101から機密情報処理部102に入力することも可能である。
また、鍵変換処理の入力となるEnc(Kc,Kh)904は、すでにホスト機器100の蓄積デバイスなどからワーク領域106に格納済みであり、出力であるEnc(Kc,Kb1)905はワーク領域106に格納されるものとする。そしてワーク領域格納後に、改めてターゲット機器101に格納されるものとする。なお、出力のEnc(Kc,Kb1)は、必ずしも一旦ワーク領域106に格納する必要はなく、直接機密情報処理部102からターゲット機器101に出力することも可能である。
以下、Kh906およびKb1(903)を用いた鍵変換処理が行われる際の機密情報処理部102の動作を説明する。図10では、機密情報処理部102にEnc(Kc,Kh)からEnc(Kc,Kb1)への鍵変換処理を行うための制御シーケンスが定義されており、この制御シーケンスがホストCPU103から起動されたとする。
鍵変換処理では、まずKcに対する暗号化および復号化を行うための鍵(機密情報処理部102に格納されたKh906、および機密情報処理部102に生成されたKb1(903))が復号化を行うための回路および暗号化を行うための回路に設定される。そして次にEnc(Kc,Kh)904が機密情報処理部102に入力され、この入力された鍵に対してKh906を用いて復号化処理907を行う。このようにKh906で復号化を行うことにより、暗号化されていないKc908が機密情報処理部102に生成される。この際、機密情報処理部102ではこの鍵をホストCPU103からアクセスされない形で保持する。この実装の例としては、ホストCPU103からアクセス不可能なレジスタにKc908を格納する方法がある。なお、Kc908は鍵変換処理終了後に機密情報処理部102により消去しても構わない。そして、Kc908に対してKb1(903)を用いて暗号化処理909を行う。この暗号化処理909によりEnc(Kc,Kb1)905が機密情報処理部102から出力される。以上の処理により鍵変換処理が終了する。
また、実施の形態1の場合と同様に、鍵変換処理における暗号化処理909や復号化処理907は、図10に示す鍵変換制御部216や、鍵変換制御フラグ217により制御される。ここで、図10の場合に必要となるフラグを考察する。図10の処理では認証鍵Kb0(900)から生成されるKb1(903)が使用される。そのため、認証鍵Kb0(900)を生成する認証処理が終了している必要がある。そのため、認証フラグ(Kb0)が鍵変換制御フラグ217の一つとして必要となる。なお、図10の場合は鍵変換処理の入力であるEnc(Kc,Kh)904と、出力であるEnc(Kc,Kb1)905は同一のターゲット機器に格納される必要がないため、同一ターゲットフラグは不要である。また、この鍵変換処理においては、Kb1(903)が復号化処理により機密情報処理部102に生成される必要がある。そのため、鍵生成フラグ(Kb1)が鍵変換制御フラグ217の一つとして必要となる。なお、Kh906は前もってホスト機器100に格納されている鍵なので、Kh906に対する生成フラグは不要である。したがって、図10に示す鍵変換処理を行う鍵変換処理設定がホストCPU103から行われた場合は、認証フラグ(Kb0)および鍵生成フラグ(Kb1)の二つのフラグを入力に持つANDゲートの出力が、図4に示すセレクタ301の出力として選択される。そのため、これら二つのフラグがともに1となっている場合のみ、暗号回路が使用可能となる。
次に、以下では図11のフローチャートを用いることにより図10に示した鍵変換処理の流れを説明する。本発明の鍵変換処理では、実施の形態1でも説明したように、まずホストCPU103により鍵変換処理設定1000が行われる。これにより、機密情報処理部102で実行される鍵変換処理が起動される。次に、鍵変換制御フラグ読み出し1001が鍵変換制御部217に対して行われる。読み出し後に、機密情報処理部102に対してEnc(Kc,Kh)入力1002を行う。そして、読み出されたフラグを基に、機密情報処理部102で不正な処理が行われないための条件が満たされているかどうかが確認される。これらの確認の処理は、図11では条件分岐1003と条件分岐1004に相当する。なお、不正な処理が行われないことが確認出来るのであれば、確認を行う順番は図11に示すとおりでなくても構わない。
図11では、図10の鍵変換制御フラグの説明でも示したように、二つの確認が行われる。まず、ターゲット機器に対する認証の条件として、鍵変換処理の出力であるEnc(Kc,Kb1)905を格納するターゲット機器に対して認証鍵Kb0(900)を生成する認証処理が行われているかを条件分岐1003で確認する。これにより、認証鍵Kb0(900)を生成する認証処理が行われていること、およびEnc(Kc,Kb1)905を格納するターゲット機器が不正な機器でないことを確認する。また、鍵生成フラグの説明で示したように、Kb1(903)が機密情報処理部102に生成されていることを、条件分岐1004で確認する。これにより、Kb1(903)が生成されていない状態、すなわちKb1=0などの状態で暗号化が行われないことを確認する。
以上の確認が行われた場合、ホストCPU103が設定した鍵変換処理が不正なく実行されることが確認される。そのため、確認後に入力であるEnc(Kc,Kh)に対する変換処理1005(図10では、Kh906で復号化して、Kb1(903)で暗号化する処理)が行われる。この間、鍵変換制御部216から暗号化処理909や復号化処理907を行う回路に対してイネーブル信号が出力されている。そして変換処理が行われたことにより、Enc(Kc,Kb1)出力1006が行われる。出力後、鍵変換処理が終了となる。
以上のように、図10および図11の処理を用いることにより鍵変換処理が実行される。なお、図10の例ではターゲット機器に{Enc(Kb1,Kb0),Enc(Kb2,Kb1)}が格納された状態で、Enc(Kc,Kh)904に対して鍵変換処理を行ってEnc(Kc,Kb1)905を得る場合を説明した。そこで、これを一般化して、ターゲット機器にn個(nは自然数)の鍵{Enc(Kb1,Kb0),...,Enc(Kbn,Kb(n−1))}が格納された状態で、Kbnをコンテンツの暗号化および復号化に使用し、jを1≦j≦nを満たす自然数として、Enc(Kai,Kh)に対して鍵変換処理を行ってEnc(Kai,Kb(j−1))を得る構成としても良い。この場合、鍵変換処理を行うためには、機密情報処理部の暗号化を行う回路にKhを使用し、復号化を行う回路にKb(j−1)を使用して、また鍵変換処理フラグとしてKb(j−1)が生成されたことを示すフラグを代わりに使用すれば、図10と同様の鍵変換処理が実行可能である。したがって、機密情報処理部にKb(j−1)に対応する鍵生成フラグを追加し、鍵変換制御部にこのフラグを選択するための回路を追加すればよい。
(実施の形態5)
次に実施の形態5について説明する。基本的な全体構成は図2と同様なので説明を省略する。
実施の形態5では、本発明における鍵変換処理方法について説明する。図12は本発明における、鍵変換処理の実施の形態の一つを示したものである。図2および図3と同一の要素については、同一の符号を用いている。図12では本発明の実施の形態の一つとして、ターゲット機器101に暗号化鍵Enc(Ka1,Ka0)が格納され、さらに同一ターゲット機器にKa1により暗号化された二つの暗号化鍵{Enc(Kd2,Ka1)およびEnc(Ke2,Ka1)が格納され、またそれぞれKd2およびKe2により暗号化された鍵Enc(Kc,Kd2)およびEnc(Ke3,Ke2)が格納された状態を説明する。そして、Enc(Kc,Kd2)に対して、Ke2により鍵変換処理を行ってEnc(Kc,Ke2)を得る場合を説明する。このように、実施の形態5では、同一の認証鍵Ka0から生成される鍵の間での鍵変換処理を説明する。なお、図12において、復号化1102、1105、1108、1112は別個の復号化回路があるかのように描かれているが、これは説明をシーケンスに沿って簡略化するためであり、実際には同一の復号化回路をシーケンスに沿って複数回利用することが多い。この場合、復号化に用いられる、あるいは復号化の結果生成される各鍵は外部からアクセスできない領域に格納しておく必要がある。また、暗号化と復号化のアルゴリズムに関連性がある場合は、復号化と暗号化の回路の一部、あるいは全部を共用することも可能である。
この鍵変換処理の利用例としては、この処理を行ったことによりKcを暗号化する鍵がKd2からKe2に変更されることから、Kd2を不要として、さらに不要となったKd2をターゲット機器から消去することにより、Kcを暗号化する鍵の個数を減らすなどの用途に利用できる。
また、図12では、ターゲット機器101に対する認証処理が終了し機密情報処理部102に認証鍵Ka0(1100)が生成されたものとする。またターゲット機器101に格納されたEnc(Ka1,Ka0)1101がワーク領域106に一旦格納された後に、機密情報処理部102にIN1として入力され認証鍵Ka0(1100)により復号化1102することによりKa1(1103)が生成され、さらにターゲット機器101に格納されたEnc(Kd2,Ka1)1104がワーク領域106に一旦格納された後に、機密情報処理部102にIN2として入力されKa1(1103)により復号化1105することによりKd2(1106)が生成されているものとする。またターゲット機器101に格納されたEnc(Ke2,Ka1)1107がワーク領域106に一旦格納された後に、機密情報処理部102にIN3として入力されKa1(1103)により復号化1108することによりKe2(1109)が生成されているものとする。なお、これらEnc(Ka1,Ka0)1101、Enc(Kd2,Ka1)1104およびEnc(Ke2,Ka1)1107は、必ずしも一旦ワーク領域106に格納する必要はなく、直接ターゲット機器101から機密情報処理部102に入力することも可能である。
また、鍵変換処理の入力となるEnc(Kc,Kd2)1110は、認証処理後にターゲット機器101からホスト機器100のワーク領域106に格納済みであり、出力であるEnc(Kc,Ke2)1111はワーク領域106に格納されるものとする。そしてワーク領域格納後に、改めてターゲット機器101に格納されるものとする。なお、これらEnc(Kc,Kd2)やEnc(Kc,Ke2)は、必ずしも一旦ワーク領域106に格納する必要はなく、直接ターゲット機器101から機密情報処理部102に入力する、もしくは直接機密情報処理部102からターゲット機器101に出力することも可能である。
以下、Kd2(1106)およびKe2(1109)を用いた鍵変換処理が行われる際の機密情報処理部102の動作を説明する。図12では、機密情報処理部102にEnc(Kc,Kd2)からEnc(Kc,Ke2)への鍵変換処理を行うための制御シーケンスが定義されており、この制御シーケンスがホストCPU103から起動されたとする。
鍵変換処理では、まずKcに対する暗号化および復号化を行うための鍵(機密情報処理部に生成されたKd2(1106)およびKe2(1109))が復号化を行うための回路および暗号化を行うための回路に設定される。そして次にEnc(Kc,Kd2)1110が機密情報処理部102に入力され、この入力された鍵に対してKd2(1106)を用いて復号化処理1112を行う。このようにKd2(1106)で復号化を行うことにより、暗号化されていないKc1113が機密情報処理部102に生成される。この際、機密情報処理部102ではこの鍵をホストCPU103からアクセスされない形で保持する。この実装の例としては、ホストCPU103からアクセス不可能なレジスタにKc1113を格納する方法がある。なお、Kc1113は鍵変換処理終了後に機密情報処理部102により消去しても構わない。そして、Kc1113に対してKe2(1109)を用いて暗号化処理1114を行う。この暗号化処理1114によりEnc(Kc,Ke2)1111が機密情報処理部102から出力される。以上の処理により鍵変換処理が終了する。
また、実施の形態1の場合と同様に、鍵変換処理における暗号化処理1114や復号化処理1112は、図12に示す鍵変換制御部216や、鍵変換制御フラグ217により制御される。ここで、図12の場合に必要となるフラグを考察する。図12の処理では認証鍵Ka0(1100)から生成されるKd2(1106)およびKe2(1109)が使用される。そのため、認証鍵Ka0(1100)を生成する認証処理が終了している必要がある。そのため、認証フラグ(Ka0)が鍵変換制御フラグ217の一つとして必要となる。なお、図12の場合は認証鍵Ka0(1100)を生成する認証処理のみが行われるため、同一ターゲットフラグは不要である。また、この鍵変換処理においては、Kd2(1106)およびKe2(1109)が復号化処理により機密情報処理部102に生成される必要がある。そのため、鍵生成フラグ(Kd2)および鍵生成フラグ(Ke2)が鍵変換制御フラグ217として必要となる。したがって、図12に示す鍵変換処理を行う鍵変換処理設定がホストCPU103から行われた場合は、認証フラグ(Ka0)、鍵生成フラグ(Kd2)および鍵生成フラグ(Ke2)の三つのフラグを入力に持つANDゲートの出力が、図4に示すセレクタ301の出力として選択される。そのため、これら三つのフラグがともに1となっている場合のみ、暗号回路が使用可能となる。
次に、以下では図13のフローチャートを用いることにより図12に示した鍵変換処理の流れを説明する。本発明の鍵変換処理では、実施の形態1でも説明したように、まずホストCPU103により鍵変換処理設定1200が行われる。これにより、機密情報処理部102で実行される鍵変換処理が起動される。次に、鍵変換制御フラグ読み出し1201が鍵変換制御部217に対して行われる。読み出し後に、機密情報処理部102に対してEnc(Kc,Kd2)入力1202を行う。そして、読み出されたフラグを基に、機密情報処理部102で不正な処理が行われないための条件が満たされているかどうかが確認される。これらの確認の処理は、図13では条件分岐1203から条件分岐1205に相当する。なお、不正な処理が行われないことが確認出来るのであれば、確認を行う順番は図13に示すとおりでなくても構わない。
図13では、図12の鍵変換制御フラグの説明でも示したように、三つの確認が行われる。まず、ターゲット機器に対する認証の条件として、鍵変換処理の入力であるEnc(Kc,Kd2)1110および出力であるEnc(Kc,Ke2)1111を格納するターゲット機器に対して認証鍵Ka0(1100)を生成する認証処理が行われているかを条件分岐1203で確認する。これにより、認証鍵Ka0(1100)を生成する認証処理が行われていること、およびEnc(Kc,Kd2)1110やEnc(Kc,Ke2)1111を格納するターゲット機器が不正な機器でないことを確認する。また、鍵生成フラグの説明で示したように、Kd2(1106)およびKe2(1109)が機密情報処理部102に生成されていることを、条件分岐1204および条件分岐1205で確認する。これにより、Kd2(1106)およびKe2(1109)が生成されていない状態、すなわちKd2=0およびKe2=0などの状態で復号化および暗号化が行われないことを確認する。
以上の確認が行われた場合、ホストCPU103が設定した鍵変換処理が不正なく実行されることが確認される。そのため、確認後に入力であるEnc(Kc,Kd2)に対する変換処理1206(図12では、Kd2(1106)で復号化して、Ke2(1109)で暗号化する処理)が行われる。この間、鍵変換制御部216から暗号化処理1114や復号化処理1112を行う回路に対してイネーブル信号が出力されている。そして変換処理が行われたことにより、Enc(Kc,Ke2)出力1207が行われる。出力後、鍵変換処理が終了となる。
以上のように、図12および図13の処理を用いることにより鍵変換処理が実行される。なお、図12の例ではターゲット機器にEnc(Ka1,Ka0)と、{Enc(Kd2,Ka1),Enc(Kc,Kd2)}および{Enc(Ke2,Ka1),Enc(Ke3,Ke2)}が格納された状態で、Enc(Kc,Kd2)1110に対して鍵変換処理を行ってEnc(Kc,Ke2)1111を得る構成としても良い。そこで、これを一般化して、ターゲット機器にs個(sは自然数)の鍵{Enc(Ka1,Ka0),...,Enc(Kas,Ka(s−1))}が格納され、またそれぞれt個(tは自然数)からなる鍵{Enc(Kd1,Kas),Enc(Kd2,Kd1),...,Enc(Kdt,Kd(t−1))}および{Enc(Ke1,Kas),Enc(Ke2,Ke1),...,Enc(Ket,Ke(t−1))}が格納された状態で、KdtおよびKetをコンテンツの暗号化および復号化に使用し、iを1≦i≦tを満たす自然数として、Enc(Kdi,Kd(i−1))に対して鍵変換処理を行ってEnc(Kdi,Ke(j−1))を得る場合でもよい。この場合、鍵変換処理を行うためには、機密情報処理部の復号化を行う回路にKd(i−1)を使用し、暗号化を行う回路にKe(i−1)を使用して、また鍵変換処理フラグとしてKd(i−1)が生成されたことを示すフラグ、およびKe(i−1)が生成されたことを示すフラグを代わりに使用すれば、図12と同様の鍵変換処理が実行可能である。したがって、機密情報処理部にKd(i−1)およびKe(i−1)に対応する鍵生成フラグを追加し、鍵変換制御部にこのフラグを選択するための回路を追加すればよい。
本発明により、異なる機密情報処理方法の間などで鍵変換処理を実行可能であり、またその際、鍵情報が漏洩することなく、さらに不正な処理が行われることなく処理が実行可能である。したがって、複数の機密情報処理方法を実装したターゲット機器を利用する機密情報システムなどで利用可能である。
本発明は、ターゲット機器に格納される鍵に対する暗号変換処理方法および、それを実現する機密情報処理装置としてのホスト機器に関する。
近年、メモリカードといったデータを蓄積するための機器(以下、「ターゲット機器」という。)は、その利用用途の拡大に伴い広く利用されるようになってきた。このターゲット機器は、一般的にターゲット機器を挿入するためのスロットを備え、挿入されたターゲット機器に対してデータの格納を行う機器(以下、「ホスト機器」という。)により使用される。
また、ターゲット機器の利用用途の一つに、オーディオデータなどの著作権保護が必要なデータを扱う用途がある。このような用途においては、オーディオデータなどの著作権を保護する目的で機密情報処理方法が用いられる。この機密情報処理方法では、著作権の保護が必要なデータに対しては暗号化を行い、暗号化されたデータをターゲット機器に格納する。これにより、著作物などのコンテンツに対する不正なコピー、あるいはコンテンツの外部への漏洩を防止する。
以下では、このような著作権保護を行うための機密情報処理方法について説明する。著作権保護を行う機密情報処理方法においては、まず、ターゲット機器とホスト機器の間で認証処理を行う。次に、認証が成功した場合のみ、暗号化コンテンツを復号化するための鍵であるコンテンツ鍵(以下、「Kc」という。)をホスト機器がターゲット機器から入手可能な構成となっている。ホスト機器は、コンテンツ鍵の入手により、ターゲット機器に格納された暗号化コンテンツを利用可能になる。このような構成により、不正なホスト機器により暗号化コンテンツが復号化されるのを防ぐことが出来る。このような著作権保護を行うための機密情報処理方法に関する先行技術文献として特許文献1がある。
続いて、認証が成功した場合に、Kcを用いてホスト機器がコンテンツを復号化する処理について図面を参照しながら説明する。図1はこのような機密情報処理方法を実行するホスト機器の主要部の構成を示す機能ブロック図である。ここで、図1では認証処理が正常に終了し、ターゲット機器とホスト機器がともに正当な機器であることが確認されているとする。図1では、ホスト機器1300にターゲット機器1301が挿入され、ホスト機器1300に備わった鍵などの機密情報の暗号化や復号化を行うための機密情報処理部1302により、ワーク用の領域であるワーク領域1303に格納された暗号化コンテンツ1304を復号化してコンテンツ1305を利用する場合を説明する。なお、ここで機密情報処理部は、セキュリティを高めるために、ハードウェアとして半導体集積回路に実装されている。
図1では、前述したようにターゲット機器1301に対して認証が成功している場合を説明するため、認証処理1306から生成される鍵である認証鍵Ka0(1307)が生成されている。ここで認証鍵とは、認証が成功した場合にのみ機密情報処理部1302に生成される鍵であり、認証処理において、ホスト機器が所有する認証用の鍵である認証用ホスト鍵と、ターゲット機器が有する認証用の鍵である認証用スレーブ鍵とに基づいて算出される。
また、コンテンツ鍵はターゲット機器1301に格納され、コンテンツの復号化が行われる際にターゲット機器1301から入手される。なお、Kcはその秘匿性確保のために、認証鍵であるKa0により暗号化された形でターゲット機器1301に保持される。したがって、認証処理によりKa0を生成したホスト機器のみが暗号化されたKcを復号可能なことが分かる。なお、以下ではKcをKa0により暗号化した暗号化鍵はEnc(Kc,Ka0)と表記する(その他の暗号化鍵についても同様の表記を用いる)。また暗号化されたコンテンツは、Kcにより暗号化され、ターゲット機器1301に格納される。そのため、Kcを生成したホスト機器であれば、暗号化コンテンツをターゲット機器1301から入手することにより復号化可能である。
以下では、認証処理後にホスト機器1300がターゲット機器に格納されたEnc(Kc,Ka0)1308を入手し、ワーク領域1303に格納した後の処理を説明する。また、暗号化コンテンツ1304も認証処理後にターゲット機器1301から入手され、ワーク領域1303に格納済みとする。なお、Enc(Kc,Ka0)や暗号化コンテンツは、必ずしも一旦ワーク領域1303に格納する必要はなく、直接ターゲット機器1301から機密情報処理部1302に入力することも可能である。
コンテンツの復号化においては、まずホスト機器1300はEnc(Kc,Ka0)1308を機密情報処理部1302に入力し、認証処理1306で生成したKa0(1307)により復号化処理1309を行う。これにより平文状態(暗号化されていない状態を称す)のコンテンツ鍵であるKc1310が生成される。なお、生成されたKc1310は機密情報処理部1302に保持され、ホスト機器1300はその値を知ることが出来ない。続いて、ホスト機器1300は暗号化コンテンツ1304を入力し、機密情報処理部1302においてKcによる復号化処理1311が行われる。これによりホスト機器1300は復号化されたコンテンツ1305を得ることができ、コンテンツの復号化処理が終了となる。このように、コンテンツの復号化の際は、Kcは暗号化されたEnc(Kc,Ka0)の形で機密情報処理部に入力され、また暗号化されていないKcは機密情報処理部に保持される。そのため、ホスト機器ではKcの秘匿性を確保した形でコンテンツの復号化が行える。
特開2000−357126号公報
近年、ターゲット機器の利用用途が広まってきたことに伴い、複数の機密情報処理方法が混在してターゲット機器に実装される場合が増えてきた。このような状況においては、コンテンツを暗号化するための鍵であるコンテンツ鍵Kcは、異なる機密情報処理方法の間で相互に利用できることが望ましい。ところが、コンテンツ鍵Kcを相互に利用する際において、Kcはその秘匿性が確保されている必要がある。つまり暗号化されていないコンテンツ鍵Kcがユーザーなどの第三者に知られるのを防ぐ必要がある。また、第三者によりコンテンツ鍵Kcの不正な相互利用が行われるのを防ぐ必要がある。ここで、不正な相互利用の例としては、あるコンテンツ鍵Kcが同一ターゲット機器内でのみ相互利用が許されている場合に、異なるターゲット機器間でそのコンテンツ鍵Kcを相互利用可能とすることなどがある。
また、図1に示した機密情報処理方法では認証鍵Ka0により暗号化されたEnc(Kc,Ka0)をターゲット機器に格納している。この機密情報処理方法は、暗号化コンテンツを平文のコンテンツに復号化するまでに、2段階の復号を必要とする。つまり、認証鍵Ka0による暗号化コンテンツ鍵ENC(Kc,Ka0)からコンテンツ鍵Kcへの復号、コンテンツ鍵Kcによる暗号化コンテンツの復号の2段階である。
これに対して、2段階よりも多い段数の機密情報処理方法が考えられる。例えば、3段階の機密情報処理方法では、認証鍵Ka0により鍵Ka1を暗号化したEnc(Ka1,Ka0)をターゲット機器に格納し、さらにこのKa1によりKcを暗号化したEnc(Kc,Ka1)をターゲット機器に格納することになる。これによっても、コンテンツの保護を行うことが可能である。この場合、ターゲット機器との間で認証処理を行うことによって機密情報処理部に認証鍵Ka0を生成すれば、Enc(Ka1,Ka0)が復号可能になり、さらに復号化されたKa1によりEnc(Kc,Ka1)を復号可能になる。
同様に、多段階の機密情報処理方法を一般化すれば、m個の暗号化鍵{Enc(Ka1,Ka2),...,Enc(Ka(m−1),Kam)}をターゲット機器に格納し、Kamをコンテンツ鍵の暗号鍵として使用することになると考えられる。2段階の機密情報処理方法におけるコンテンツ鍵Kcを、異なる機密情報処理方法の間で相互利用可能とすることが望まれるのと同様に、多段階の全部又は一部の鍵Kai(iは1≦i≦mを満たす自然数)が異なる機密情報処理方法との間で相互利用可能になることも望まれる。
したがって、本発明の目的は、m個の暗号化鍵{Enc(Ka1,Ka2),...,Enc(Ka(m−1),Kam)}がターゲット機器に格納される場合において、鍵Kaiを異なる機密情報処理方法との間で相互利用するための処理方法を提供することにある。
またその処理方法が、Kaiの秘匿性が確保された状態で、また第三者によるKaiの不正な相互利用を防いだ状態で実行可能とすることを目的とする。
上記課題を解決するために、本発明の機密情報処理用ホスト機器は、暗号化コンテンツを含む暗号化された状態の機密情報を格納するターゲット機器から前記暗号化コンテンツを読み出し、復号化して利用する機密情報処理用のホスト機器であって、予め定められた複数のシーケンスのみに従って動作を行う機密情報処理部と、前記機密情報処理部に対して、前記複数のシーケンスの起動を指示するCPUと、前記機密情報処理部とターゲット機器との間で前記機密情報を含むデータの入出力を行う第1のインターフェース部と、前記機密情報処理部と前記CPUとの間で前記機密情報を含むデータの入出力を行う第2のインターフェース部と、を備え、前記ターゲット機器またはホスト機器は、m個の鍵{K1,...,Km}を暗号化された状態で前記機密情報として格納し、前記鍵Kmは、コンテンツを暗号化するコンテンツ鍵であり、鍵Ki(1≦i≦mを満たす自然数)は鍵K(i−1)により暗号化され、前記複数のシーケンスは、前記m個の鍵のうち任意の鍵Kiを暗号化する鍵を、K(i−1)から別の鍵に変換する鍵変換シーケンスを含み、前記第1のインターフェース部と前記第2のインターフェース部は、前記鍵変換シーケンスが起動された場合に、暗号化された状態の機密情報のみを前記機密情報処理部の外部に出力するように構成されている。
上記構成をとることにより、CPUが機密情報処理部を用いて自由に鍵変換を行うのではなく、CPUが機密情報処理部に予め定められた鍵変換シーケンスの起動を指示することによって動作を行い、かつ鍵変換シーケンスの過程で生成される機密情報が機密情報外部に出力されないため、セキュリティを保ったままコンテンツを異なる機密情報処理方法の間で相互利用することが可能となる。
また、前記ホスト機器は前記ターゲット機器との間で第1の認証処理を行い、前記鍵K1を暗号化する前記鍵K0は第1の認証処理により生成される認証鍵Ka0であり、前記ターゲット機器と同一または異なるターゲット機器はn個(nは自然数)の鍵{Kb1,...,Kbn}を格納し、鍵Kbj(1≦j≦nを満たす自然数)はKb(j−1)により暗号化され、前記ホスト機器は、さらに前記ターゲット機器と同一または異なるターゲット機器の間で第2の認証処理を行い、前記鍵Kb0は前記第2の認証処理により生成される認証鍵であり、前記別の鍵は前記鍵{Kb0,...,Kb(n−1)}のうちの何れかの鍵であるようにしてもよい。
また、前記別の鍵は、Kb(n−m+i)であってもよい。この構成によれば、認証鍵Kb0からの復号化の回数(段数)が変わらずにコンテンツ鍵を復号化できるので、さらに好ましい。
また、前記ホスト機器は前記ターゲット機器との間で第1の認証処理を行い、前記鍵K1を暗号化する前記鍵K0が、前記第1の認証処理により生成される認証鍵Ka0であり、前記別の鍵は、前記機密情報処理部に格納されたホスト鍵Khであってもよい。
上記構成は、ターゲット機器に格納された鍵情報のバックアップとして有用である。バックアップされた鍵情報はホスト鍵Khで暗号化された状態で保存されるため、ホスト鍵Khを持ったホスト機器、すなわちバックアップを行ったホスト機器のみが復号可能となる。
また、前記鍵K0は、前記機密情報処理部に格納されたホスト鍵Khであり、前記ホスト機器は、さらに前記ターゲット機器と同一または異なるターゲット機器の間で第2の認証処理を行い、該ターゲット機器はn個(nは自然数)の鍵{Kb1,...,Kbn}を格納し、鍵Kbj(1≦j≦nを満たす自然数)は鍵Kb(j−1)により暗号化され、前記鍵Kb0は、前記第2の認証処理により生成された認証鍵であり、前記鍵変換シーケンスにおいて、鍵K1を暗号化する鍵を、前記ホスト鍵Khから{Kb0,...,Kb(n−1)}のうち何れかの鍵へと変換するようにしてもよい。
上記構成は、ホスト機器にバックアップされた鍵情報をターゲット機器にリストアする場合に有用である。バックアップされた鍵情報はホスト鍵Khで暗号化された状態で保存されるため、ホスト鍵Khを持ったホスト機器、すなわちバックアップを行ったホスト機器のみが復号可能となる。
また、前記ホスト機器は前記ターゲット機器との間で第1の認証処理を行い、前記K1を暗号化する前記鍵K0は、前記第1の認証処理により生成される認証鍵Ka0であり、前記ターゲット機器は、(m−s)個の鍵{Ke1,...Ke(m−s)}を格納し、鍵Kej(1≦j≦m−sを満たす自然数)は鍵Ke(j−1)により暗号化され、鍵Ke0は、前記m個の鍵{K1,...,Km}のうちの何れかの鍵Ks(1≦s<mを満たす自然数)であり、前記別の鍵は、{Ke1,...,Ke(m−s−1)}のうち何れかの鍵であってもよい。
上記構成によると、ターゲット機器に格納されるべき暗号化された鍵情報の数を減らすことが可能となる。
また、前記機密情報処理部は、さらに、前記第1の認証処理が適正に終了しているか否かを示す認証フラグを保持するフラグ保持部を有し、前記認証フラグが前記第1の認証処理が適正に終了していることを示さない場合に、前記ホストCPUからの鍵変換シーケンスの起動を禁止するようにしてもよい。
上記構成により、適正に第1の認証処理を終了した場合にしか鍵変換シーケンスが起動されないので、不正な認証処理によって鍵変換シーケンスを起動することを防止できる。
また、前記機密情報処理部は、さらに、前記第2の認証処理が適正に終了しているか否かを示す認証フラグを保持するフラグ保持部を有し、前記認証フラグが前記第2の認証処理が適正に終了していることを示さない場合に、前記ホストCPUからの鍵変換シーケンスの起動を禁止するようにしてもよい。
上記構成により、適正に第2の認証処理を終了した場合にしか鍵変換シーケンスが起動されないので、不正な認証処理によって鍵変換シーケンスを起動することを防止できる。
また、前記機密情報処理部は、さらに、前記鍵K(i−1)が内部に生成されているか否かを示す鍵生成フラグを保持するフラグ保持部を有し、前記鍵生成フラグが、鍵K(i−1)が内部に生成されていることを示さない場合に、前記ホストCPUからの鍵変換シーケンスの起動を禁止するようにしてもよい。
上記構成により、鍵Kiを暗号化していた鍵K(i−1)が生成されている場合にしか鍵変換シーケンスが起動されないので、不正な鍵を用いて鍵変換シーケンスが起動されることを防止することができる。
また、前記機密情報処理部は、さらに、前記別の鍵が内部に生成されているか否かを示す鍵生成フラグを保持するフラグ保持部を有し、前記鍵生成フラグが前記別の鍵が内部に生成されていることを示さない場合に、前記ホストCPUからの鍵変換シーケンスの起動を禁止するようにしてもよい。
上記構成により、変換するための鍵が生成されている場合にしか鍵変換シーケンスが起動されないので、不正な鍵を用いて鍵変換シーケンスが起動されることを防止することができる。
また、前記機密情報処理部は、さらに、前記第1の認証処理と前記第2の認証処理とが同一のターゲット機器に対して行われたか否かを示すターゲットフラグを保持するフラグ保持部を有し、前記ターゲットフラグが前記第1の認証処理と前記第2の認証処理とが同一のターゲット機器に対して行われたことを示さない場合に、前記ホストCPUからの鍵変換シーケンスの起動を禁止するようにしてもよい。
上記構成により、同一のターゲット機器に対してしか鍵変換を受け付けないといった制約がある場合に、その制約を確実に守ることができる。また、ターゲット機器を接続するスロットが2つある場合に、各々のスロットに異なるターゲット機器を接続して不正に鍵変換シーケンスを起動することを防止できる。
本発明の処理方法を用いた場合、異なる認証鍵を持つ機密情報処理方法の間などにおいて鍵変換処理を実行することができる。これにより、Kcなどを異なる機密情報処理の間で相互に利用可能となる。また、機密情報処理部においては、鍵変換処理の実行にあたりユーザーによる不正な処理が行われていないこと確認することから、ユーザーによる不正な鍵変換処理が実行されるのを防ぐことができる。さらに暗号化されていない鍵を機密情報処理部内で保持することにより、鍵情報の秘匿性が確保される。
またターゲット機器以外の機器との間で、鍵の相互利用やバックアップが、ユーザーによる不正な処理を防いだ形で、かつ鍵情報が秘匿化された形で実現される。
さらに、不要となった鍵の消去などによる鍵の整理が、ユーザーによる不正な処理を防いだ形で、かつ鍵情報が秘匿化された形で可能となる。
以下、本発明を実施するための最良の形態について、図面を参照しながら説明する。
(実施の形態1)
実施の形態1では、本発明における鍵変換処理方法について説明する。図2はホスト機器100とターゲット機器101から構成される機密情報処理システムの全体構成を示したものである。
ホスト機器100は、所定の制御シーケンスに従って機密情報(以下では、鍵などの平文状態での不正利用が許されない情報を示す)の暗号化や復号化を行う機密情報処理部102と、機密情報処理部102に対して所定の制御シーケンスを起動するホストCPU103と、ホストCPU103とターゲット機器101、および機密情報処理部102との間でデータの入出力を行うホストI/F部104と、ターゲット機器101との間でデータの入出力を行うターゲットI/F部105と、ホストCPU103や機密情報処理部102がその動作のためにデータを一時格納しておくためのワーク用の領域であるワーク領域106、および内部バス107とから構成される。また、機密情報処理部102は、ホストI/F部104およびターゲットI/F部105とともに秘匿化されたハードウェアである半導体集積回路108として構成される。なお、上記の構成要素に加えホストCPU103も併せて秘匿化された半導体集積回路として構成してもよい。
また、ホスト機器100とターゲット機器101との間で鍵などの機密情報の読み出しおよび書き出しが行われる場合には、ホスト機器100とターゲット機器101との間で認証処理を行う必要がある。なお、ここで行う認証処理は、秘密鍵方式または公開鍵方式のいずれの暗号方式を利用して行ってもよい。認証が成功すると、ホスト機器100はターゲット機器101からターゲットI/F部105を介して機密情報を読み出し、機密情報処理部102を用いて復号化して利用する。また、機密情報処理部102の動作の起動はホストCPU103から行われ、起動された場合、セキュリティの確保された、あるいはセキュリティの必要の少ない所定のシーケンスのみを行う。
ここで、ホストI/F部104とターゲットI/F部105とは、機密情報処理部102が行うシーケンスの途中で生成される中間情報のうち機密性の高いもの(平文状態の機密情報等)を、秘匿化された半導体集積回路108外部には出力しないように構成されている。
また、機密情報処理部102とホストCPU103は同一の半導体チップで構成しても別チップで構成してもどちらでも構わない。
図3は本発明における、鍵変換処理の実施の形態の一つを示したものである。図2と同一の要素については、同一の符号を用いている。図3では本発明の実施の形態の一つとして、ターゲット機器101に三つの暗号化鍵{Enc(Ka1,Ka0),Enc(Ka2,Ka1),Enc(Kc,Ka2)}が格納され、さらに同一のターゲット機器101に二つの暗号化鍵{Enc(Kb1,Kb0),Enc(Kb2,Kb1)}が格納された状態で、Enc(Kc,Ka2)に対して鍵変換処理を行うことによりEnc(Kc,Kb1)を得る場合を説明する。なお、この図では説明の簡略化のために、図2におけるホストI/F部104、ターゲットI/F部105、および内部バス107は省略した。なお、図3において、復号化202、205、209、213は別個の復号化回路があるかのように描かれているが、これは説明をシーケンスに沿って簡略化するためであり、実際には同一の復号化回路をシーケンスに沿って複数回利用することが多い。この場合、復号化に用いられる、あるいは復号化の結果生成される各鍵は外部からアクセスできない領域に格納しておく必要がある。また、暗号化と復号化のアルゴリズムに関連性がある場合は、復号化と暗号化の回路の一部、あるいは全部を共用することも可能である。
また、ここでは鍵変換処理を行うにあたり、ターゲット機器に対する認証処理が終了し機密情報処理部102に認証鍵Ka0(200)が生成されているものとする。またターゲット機器101に格納されたEnc(Ka1,Ka0)201がワーク領域106に一旦格納された後に、機密情報処理部102にIN1として入力され認証鍵Ka0(200)により復号化202することによりKa1(203)が生成され、さらにターゲット機器101に格納されたEnc(Ka2,Ka1)204がワーク領域106に一旦格納された後に、機密情報処理部102にIN2として入力されKa1(203)により復号化205することによりKa2(206)が生成されているものとする。また同様に、ターゲット機器に対して別の認証処理を行うことにより認証鍵Kb0(207)が機密情報処理部102に生成されているものとする。ターゲット機器101に格納されたEnc(Kb1,Kb0)208がワーク領域106に一旦格納された後に、機密情報処理部102にIN3として入力され認証鍵Kb0(207)により復号化209することによりKb1(210)が生成されているものとする。なお、これらEnc(Ka1,Ka0)201、Enc(Ka2,Ka1)204およびEnc(Kb1,Kb0)208は、必ずしも一旦ワーク領域106に格納する必要はなく、直接ターゲット機器101から機密情報処理部102に入力することも可能である。
また、鍵変換処理の入力となるEnc(Kc,Ka2)211は、認証処理後にターゲット機器101からホスト機器100のワーク領域106に格納済みであり、出力であるEnc(Kc,Kb1)212はワーク領域106に格納されるものとする。そしてワーク領域格納後に、改めてターゲット機器に格納されるものとする。なお、これらEnc(Kc,Ka2)211やEnc(Kc,Kb1)212は、必ずしも一旦ワーク領域106に格納する必要はなく、直接ターゲット機器101から機密情報処理部102に入力する、もしくは直接機密情報処理部102からターゲット機器101に出力することも可能である。
以下、鍵変換処理が行われる際の機密情報処理部102の動作を説明する。図3では、機密情報処理部102にEnc(Kc,Ka2)からEnc(Kc,Kb1)への鍵変換処理を行うための制御シーケンスが定義されており、この制御シーケンスがホストCPU103から起動されたとする。これにより、鍵変換処理が開始される。
鍵変換処理では、まずKcに対する暗号化および復号化を行うための鍵(機密情報処理部102に生成されたKa2(206)およびKb1(210))が復号化を行うための回路および暗号化を行うための回路に設定される。そして次にEnc(Kc,Ka2)211が機密情報処理部102に入力され、この入力された鍵に対してKa2(206)を用いて復号化処理213を行う。このようにKa2(206)で復号化を行うことにより、暗号化されていないKc214が機密情報処理部102に生成される。この際、機密情報処理部102ではこの鍵をホストCPU103からアクセスされない形で保持する。この実装の例としては、ホストCPU103からアクセス不可能なレジスタにKc214を格納する方法がある。なお、Kc214は鍵変換処理終了後に機密情報処理部102により消去しても構わない。そして、Kc214に対してKb1(210)を用いて暗号化処理215を行う。この暗号化処理215によりEnc(Kc,Kb1)212が機密情報処理部102から出力される。以上の処理により鍵変換処理が終了する。
また、鍵変換処理における暗号化処理215や復号化処理213は、図3に示す鍵変換制御部216や、鍵変換制御フラグ217により制御される。ここで、鍵変換制御部216は暗号化処理215や復号化処理213を行う回路に対して、それぞれの回路で使用される鍵を設定するための信号、およびそれぞれの回路に対するイネーブル信号を生成するための回路である。なお、ここでのイネーブル信号とは、この信号が入力されている間はそれぞれの回路において暗号化や復号化が実行可能とするための信号である。また、鍵変換制御フラグ217は、ホストCPU103から鍵変換処理の制御シーケンスが起動された際に鍵変換制御部216に読み出され、イネーブル信号生成の条件として使用される。
ここで本発明における鍵変換制御フラグ217は三種類のフラグから成り、一つ目は鍵変換処理の入力となる暗号化鍵を格納するターゲット機器、および鍵変換処理の出力となる暗号化鍵を格納するターゲット機器に対してそれぞれ認証処理が行われたどうかを示すためのフラグ(以下、「認証フラグ」という。)で、それぞれのターゲット機器が不正な機器でないことを確認するために使用される。図3の例では、それぞれの認証が行われた場合に1になるものとする。
二つ目は前記の二つの認証処理が同一のターゲット機器に対して行われたかを示すためのフラグ(以下、「同一ターゲットフラグ」という。)で、鍵変換処理の入力となる暗号化鍵および出力となる暗号化鍵が同一のターゲット機器に格納される必要がある場合に、同一ターゲット機器に対して認証処理が行われたかどうかを確認するために使用される。図3の例では、同一のターゲット機器に対して認証が行われた場合に1になるものとする。なお、同一ターゲット機器であることを確認するための方法の一例には、それぞれの認証処理の際に、ターゲット機器に固有な識別番号を機密情報処理部102に保持し、それら保持された識別番号が同一かどうかを確認することにより、同一ターゲット機器かどうかを判定する方法がある。
三つ目は鍵変換処理において復号化および暗号化を行うための鍵(図3ではKa2(206)およびKb1(210))が機密情報処理部にそれぞれ生成されたかどうかを示すためのフラグ(以下、「鍵生成フラグ」という。)で、図3の例ではKa2(206)またはKb1(210)が生成されていない状態、すなわちKa2=0またはKb1=0などの状態で復号化または暗号化が行われないことを確認するために使用される。図3の例では、鍵の生成が行われた場合に1になるものとする。なお、鍵が生成されたことを確認する方法としては、図3のKa2(206)を例とした場合、Ka2を生成するために必要な復号化処理(図3では、復号化処理202および復号化処理205)がそれぞれ行われたことを機密情報処理部102で保持し、それらの結果から必要な復号化処理がすべて行われたかどうかを確認する方法などがある。
図4は、図3の鍵変換処理で使用される鍵変換制御部216と鍵変換制御フラグ217の構成例を示したものである。鍵変換制御部216は、機密情報処理部102に対してどの鍵変換処理を起動するかを設定するための鍵変換処理設定をホストCPU103からの入力として持ち、暗号回路に対する鍵選択信号およびイネーブル信号を出力として持つ。また、鍵変換処理設定をデコードするための鍵変換設定デコード回路300と、デコード回路から出力される信号を選択信号とするセレクタ301、およびセレクタ301への入力として使用するためのANDゲート302から構成される。ここで、鍵変換設定デコード回路300は例えば、ホストCPU103からの鍵変換処理設定を保持するためのレジスタと、それらレジスタの値を機密情報処理部102で使用される内部制御信号に変換するための回路から構成される。また、ANDゲート302の入力には、ホストCPU103から起動された鍵変換処理が不正なく行われるために必要となるフラグが入力される。
ここで、図3の場合に必要となるフラグを説明する。図3の処理では認証鍵Ka0(200)および認証鍵Kb0(207)から生成されるKa2(206)およびKb1(210)が使用される。そのため、認証鍵Ka0(200)を生成する認証処理および認証鍵Kb0(207)を生成する認証処理がともに終了している必要がある。そのため、認証フラグ(Ka0)303および認証フラグ(Kb0)304が使用され、それらがともに1となる必要がある。また、図3の場合は鍵変換処理の入力であるEnc(Kc,Ka2)211と、出力であるEnc(Kc,Kb1)212がともに同一のターゲット機器に格納されているものとする。そのため、同一ターゲットフラグ305が使用され、その値が1となる必要がある。なお、同一ターゲット機器内での鍵変換処理ではない場合は、同一ターゲットフラグ305はイネーブル信号生成の条件として使用されない。また、鍵変換処理においてはKa2(206)およびKb1(210)がともに機密情報処理部102に生成される必要があるので、鍵生成フラグ(Ka2)306および鍵生成フラグ(Kb1)307が使用され、それらがともに1となる必要がある。したがって、図3に示す鍵変換処理を行う鍵変換処理設定がホストCPU103から行われた場合は、これら五つのフラグを入力に持つANDゲート302の出力が、セレクタ301の出力として選択される。そのため、これら五つのフラグがすべて1となっている場合のみ、暗号回路が使用可能となる。なお、上記の五つのフラグを全て備える必要は必ずしもない。例えば、認証フラグと鍵生成フラグは何れか一方しかなくともシステムによっては一定のセキュリティレベルを達成することができ得る。また、同一ターゲットフラグ305は、同一ターゲットでの鍵変換しか許容しないようなモードが存在する場合は必要であるが、そういったモードが存在しない場合には必ずしも必要ない。しかし、ここでスロットが二つ存在する場合には、同一ターゲットフラグ305を備えることが好ましく、その理由については実施の形態2において後述する。
なお、これらのフラグはCPUが直接に書き換えを行うことはできず、各処理の結果を受けて機密情報処理部内でハードウェア的に書き換えられるものである。
次に、図5のフローチャートを用いることにより図3に示した鍵変換処理の流れを説明する。本発明の鍵変換処理では、図3に対する説明でも示したように、まずホストCPU103により鍵変換処理設定400が行われる。これにより、機密情報処理部102で実行される鍵変換処理が起動される。次に、鍵変換制御フラグ読み出し401が鍵変換制御部216に対して行われる。読み出し後に、機密情報処理部102に対してEnc(Kc,Ka2)入力402を行う。そして、読み出されたフラグを基に、機密情報処理部102で不正な処理が行われないための条件が満たされているかどうかが確認される。これらの確認の処理は、図5では条件分岐403から条件分岐407に相当する。なお、不正な処理が行われないことが確認出来るのであれば、確認を行う順番は図5に示すとおりでなくても構わない。
図5では、図3の鍵変換制御フラグの説明でも示したように、五つの確認が行われる。まず、ターゲット機器に対する認証の条件として、鍵変換処理の入力であるEnc(Kc,Ka2)211を格納するターゲット機器に対して認証鍵Ka0(200)を生成する認証処理が行われているかを条件分岐403で確認する。これにより、認証鍵Ka0(200)を生成する認証処理が行われていること、およびEnc(Kc,Ka2)211を格納するターゲット機器が不正な機器でないことを確認する。次に、鍵変換処理の出力であるEnc(Kc,Kb1)212を格納するターゲット機器に対して認証鍵Kb0(207)を生成する認証処理が行われているかを条件分岐404で確認する。これにより、認証鍵Kb0(207)を生成する認証処理が行われていること、およびEnc(Kc,Kb1)212を格納するターゲット機器が不正な機器でないことを確認する。
次に、同一ターゲットフラグの説明で示したように、図3の例では鍵変換処理は同一のターゲット機器内で行われる場合を前提としているため、実行した二つの認証処理が同一のターゲット機器に対して行われたかを条件分岐405で確認する。これにより、同一ターゲット機器内での鍵変換処理が行われているかを確認する。
また、鍵生成フラグの説明で示したように、Ka2(206)およびKb1(210)が機密情報処理部102に生成されていることを、条件分岐406および条件分岐407で確認する。これにより、Ka2(206)およびKb1(210)が生成されていない状態、すなわちKa2=0およびKb1=0などの状態で復号化および暗号化が行われないことを確認する。
以上の確認が行われた場合、ホストCPU103が設定した鍵変換処理が不正なく実行されることが確認される。そのため、確認後に入力であるEnc(Kc,Ka2)に対する変換処理408(図3では、Ka2(206)で復号化して、Kb1(210)で暗号化する処理)が行われる。この間、鍵変換制御部216から暗号化処理215や復号化処理213を行う回路に対してイネーブル信号が出力されている。そして変換処理が行われたことにより、Enc(Kc,Kb1)出力409が行われる。出力後、鍵変換処理が終了となる。
以上のように、図3および図5の処理を用いることにより鍵変換処理が実行される。なお、図3の例ではターゲット機器に{Enc(Ka1,Ka0),Enc(Ka2,Ka1),Enc(Kc,Ka2)}が格納され、また同一ターゲット機器に{Enc(Kb1,Kb0),Enc(Kb2,Kb1)}が格納された状態で、Enc(Kc,Ka2)211に対して鍵変換処理を行ってEnc(Kc,Kb1)212を得る場合を説明した。しかしながら、本発明はこの場合に限られるものではない。例えば、Ka2で暗号化されたコンテンツ鍵が複数あり、これらの全てについて別の認証処理で得られたKb0を認証鍵とする機密情報処理方法で利用したい場合でもよい。この場合、各々のコンテンツ鍵を暗号化する鍵をKb1に変換すると、コンテンツ鍵の個数と同じ回数の鍵変換処理を行う必要がある。そこで、Enc(Ka2,Ka1)をEnc(Ka2,Kb0)へと変換するような鍵変換処理を行う。すると、Ka2を暗号化のための鍵とする全てのコンテンツ鍵が、一度の鍵変換処理を行うのみで、Kb0を認証鍵とする機密情報処理方法で利用可能となる。なお、ここでEnc(Ka1,Ka0)をEnc(Ka1,Kb0)へと変換することも可能ではある。しかしながら、この場合は認証鍵Kb0からKcを復号化するまでの回数がKb1を用いる場合と比べて増えてしまう。したがって、機密情報処理部が、認証鍵に応じてその復号化の回数を管理し、管理している回数以外の回数の復号化で得られた結果を出力しないように構成されている場合などはEnc(Ka2,Ka1)をEnc(Ka2,Kb0)へと変換したほうが好ましい。
そこで、これを一般化して、ターゲット機器にm個(mは自然数)の鍵{Enc(Ka1,Ka0),...,Enc(Kam,Ka(m−1))}が格納され、さらにn個(nは自然数)の鍵{Enc(Kb1,Kb0),...,Enc(Kbn,Kb(n−1))}が格納された状態で、KamおよびKbnをコンテンツの暗号化および復号化に使用し、iおよびjをそれぞれ1≦i≦m、1≦j≦nを満たす自然数として、Enc(Kai,Ka(i−1))に対して鍵変換処理を行ってEnc(Kai,Kb(j−1))を得る構成としても良い。この場合、鍵変換処理を行うためには、機密情報処理部の復号化を行う回路にKa(i−1)を使用し、暗号化を行う回路にKb(j−1)を使用して、また鍵変換処理フラグとしてKa(i−1)が生成されたことを示すフラグ、およびKb(j−1)が生成されたことを示すフラグを代わりに使用すれば、図3と同様の鍵変換処理が実行可能である。したがって、機密情報処理部にKa(i−1)およびKb(j−1)に対応する鍵生成フラグを追加し、鍵変換制御部にこのフラグを選択するための回路を追加すればよい。また、m−i=n−jを満たすと、認証鍵Kb0からの復号化の回数が変わらずにコンテンツ鍵を復号化できるので、さらに好ましい。
(実施の形態2)
次に実施の形態2について説明する。基本的な全体構成は図2と同様なので説明を省略する。
実施の形態2では、本発明における認証のフラグの消去、および認証鍵の消去について説明する。図6および図7は、認証鍵Ka0を生成する認証のフラグの消去および認証鍵Ka0の消去を行うことにより、不正なターゲット機器の挿抜による不正な処理を防ぐことができることを示したものである。なお、図2と同一の要素については、同一の符号を用いている。なお、図6、図7において、復号化503、506、604,606は別個の復号化回路があるかのように描かれているが、これは説明をシーケンスに沿って簡略化するためであり、実際には同一の復号化回路をシーケンスに沿って複数回利用することが多い。この場合、復号化に用いられる、あるいは復号化の結果生成される各鍵は外部からアクセスできない領域に格納しておく必要がある。また、暗号化と復号化のアルゴリズムに関連性がある場合は、復号化と暗号化の回路の一部、あるいは全部を共用することも可能である。
図6ではターゲット機器1(500)がホスト機器100に挿入され、ターゲット機器に三つの暗号化鍵{Enc(Ka1,Ka0),Enc(Ka2,Ka1),Enc(Kc,Ka2)}が格納された状態であるものとする。また図7ではターゲット機器1(500)がホスト機器100から抜かれ、代わりにターゲット機器2(600)がホスト機器100に挿入され、ターゲット機器に一つの暗号化鍵Enc(Kb1,Kb0)が格納された状態であるものとする。ここで本実施の形態では、ホストCPU103が不正な処理を行おうとした場合でもセキュリティを保てる仕組みを提供することを目的とする。したがって、ホストCPU103のワーク領域106に格納された三つの暗号化鍵{Enc(Ka1,Ka0),Enc(Ka2,Ka1),Enc(Kc,Ka2)}はワーク領域106から消去されないものと仮定する。そして図6および図7を用いて、Kcに対して、Ka0から生成されるKa2と、認証鍵Kb0から生成されるKb1により鍵変換処理が行われるものとする。このように、図6および図7では、鍵変換処理を行うにあたりターゲット機器を交換した場合に、機密情報処理部102がどのような動作をするかを説明する。なお、ここでは鍵変換処理が同一ターゲット機器に対して行われる必要があるものとする。そのため、ターゲット機器の挿抜が行われた場合はその挿抜は不正な処理となる。
まず、図6のようにターゲット機器1(500)が挿入された状態で認証を行い、ターゲット機器1(500)が正当な機器であれば、機密情報処理部に認証鍵Ka0(501)が生成され、また認証鍵Ka0(501)を生成する認証処理が行われたことが、認証フラグ(Ka0)508により保持される。その後、ターゲット機器1に格納されていたEnc(Ka1,Ka0)502がワーク領域106に一旦格納された後に、機密情報処理部102にIN1として入力され認証鍵Ka0(501)により復号化503することによりKa1(504)を生成し、またターゲット機器1に格納されていたEnc(Ka2,Ka1)505がワーク領域106に一旦格納された後に、機密情報処理部102にIN2として入力されKa1(504)により復号化506することによりKa2(507)を生成したとする。なお、これらEnc(Ka1,Ka0)502およびEnc(Ka2,Ka1)505は、必ずしも一旦ワーク領域106に格納する必要はなく、直接ターゲット機器500から機密情報処理部102に入力することも可能である。
さらにターゲット機器1(500)に格納されたEnc(Kc,Ka2)509をホスト機器100のワーク領域106に格納済みとする。なお、このEnc(Kc,Ka2)は、必ずしも一旦ワーク領域106に格納する必要はなく、直接ターゲット機器500から機密情報処理部102に入力することも可能である。
ここで、図7に示すように、ターゲット機器1(500)をホスト機器100から抜き、ターゲット機器2(600)が代わりに挿入されたとする。なお、ここでは鍵変換処理が同一ターゲット機器に対して行われることを前提としている。そのため、この挿抜は不正な挿抜となる。このような場合、本発明の鍵変換処理においては、ターゲット機器が抜かれたことによりそのターゲット機器に対する認証、および認証処理の際に機密情報処理部102に生成した認証鍵を消去する。また、機密情報処理部102に認証鍵から生成された鍵(Ka1(504)やKa2(507))が生成されている場合は、それらを消去してもよい。
ここで認証の消去とは、認証フラグの消去であり、図7の例では認証フラグ(Ka0)508を0とする処理である。また認証鍵の消去とは、図7の例ではターゲット機器1(500)の認証鍵Ka0(501)に対しKa0=0と設定することなどを指す。なお、これらの情報の消去には、機密情報処理部102によりターゲット機器が抜かれたことを検知し、機密情報処理部102が消去を行う方法や、ホストCPU103によりターゲット機器が抜かれたことを検知し、ホストCPU103が機密情報処理部102に消去を行う制御シーケンスを起動する方法などがある。
次に、図7の例では、ターゲット機器2(600)に対して認証鍵Kb0(601)を生成する認証処理を行ったものとする。もしターゲット機器2(600)が正当な機器であれば、認証鍵Kb0(601)が生成され、また認証鍵Kb0を生成する認証が成立したことが、認証フラグ(Kb0)602により保持される。さらに、ここではターゲット機器2(600)に格納されていたEnc(Kb1,Kb0)603がワーク領域106に一旦格納された後に、機密情報処理部102にIN3として入力され認証鍵Kb0(601)により復号化604することによりKb1(605)が生成されているとする。なお、このEnc(Kb1,Kb0)603は、必ずしも一旦ワーク領域106に格納する必要はなく、直接ターゲット機器600から機密情報処理部102に入力することも可能である。
この状態で、ホストCPU103によりEnc(Kc,Ka2)からEnc(Kc,Kb1)への鍵変換処理が起動され、ワーク領域106に格納されてあったEnc(Kc,Ka2)509が入力されたとする。このような処理を行った場合は、認証フラグ(Ka0)508が0である、すなわち認証鍵Ka0を生成する認証処理が行われていないことが機密情報処理部で保持されている。そのため、Ka2(507)を用いて復号化を行う暗号回路に対してイネーブル信号が生成されていないため、復号化処理606が行われずにKcを得ることができない。またKcに対する暗号化処理607を行う暗号回路に対しても、イネーブル信号が生成されていない。
ところが、ここでターゲット機器1(500)に対する認証が行われたことが消去されていなければ、ターゲット機器1(500)が抜かれた後も機密情報処理部102の認証フラグ(Ka0)508が1のままとなる。すると、次に挿入されたターゲット機器2(600)の認証によって、認証フラグ(Kb0)602が1となる。ここで、図4を参照すると、鍵自体は認証によって適正に存在し得るため、鍵生成フラグ(Ka2)306と鍵生成フラグ(Kb1)307も1となり得る。したがって、不正に鍵変換処理が起動される可能性が残る。
またここで、同一ターゲットフラグ305の有用性について、スロットが二つ存在する場合を例にとって説明する。この場合、第1のスロットに対して、ターゲット機器1の認証を成功させ、第2のスロットに対してターゲット機器2の認証を成功させると、認証フラグ(Ka0)508と認証フラグ(Kb0)602が1となり、鍵自体も正当に生成され得る。したがって、CPUが不正に処理を起動することで不正な鍵変換が行われる可能性がある。しかし同一ターゲットフラグを設け、同一ターゲット機器への鍵変換のみを許容することで、そのような不正を行うことができなくなる。なお、同一ターゲットフラグを更新する方法であるが、実施の形態1で説明した固有な識別番号を用いる実装方法以外に、それぞれの認証処理がどのスロットに対して行われたかを保持する実装方法でもよい。このような実装方法では、ホスト機器に二つのスロットが存在し、それぞれに異なるターゲット機器が挿入された場合、スロットが異なることからそれぞれが異なるターゲット機器と判定することができ、上述したような状況でも不正な処理の起動を防ぐことが可能である。当然、一度ターゲット機器を抜いてから再度挿入した場合は、認証フラグが消去されるので不正な処理は行われない。
したがって、図6および図7に示すように、ターゲット機器がホスト機器100から抜かれた場合は、そのターゲット機器に対する認証が成功したことや認証鍵を消去することにより、不正な鍵変換処理が防ぐことができる。
(実施の形態3)
次に実施の形態3について説明する。基本的な全体構成は図2と同様なので説明を省略する。
実施の形態3では、本発明における鍵変換処理方法について説明する。図8は本発明における、鍵変換処理の実施の形態の一つを示したものである。図2および図3と同一の要素については、同一の符号を用いている。図8では本発明の実施の形態の一つとして、ターゲット機器101に三つの暗号化鍵{Enc(Ka1,Ka0),Enc(Ka2,Ka1),Enc(Kc,Ka2)}が格納された状態で、Enc(Kc,Ka2)に対して、機密情報処理部に外部から読み出されないようにして格納されたホスト鍵Khにより鍵変換処理を行ってEnc(Kc,Kh)を得る場合を説明する。ここで、ホスト鍵Khを機密情報処理部に格納する方法としては半導体集積回路の製造時に機密情報処理部内に実装する方法、あるいは半導体集積回路外部から電子配信等を介して暗号化された状態で半導体集積回路内部に入力し、半導体集積回路内部において復号化して機密情報処理部内に格納する方法等がある。これは後述する実施の形態4においても同様である。なお、図8において、復号化702、705、710は別個の復号化回路があるかのように描かれているが、これは説明をシーケンスに沿って簡略化するためであり、実際には同一の復号化回路をシーケンスに沿って複数回利用することが多い。この場合、復号化に用いられる、あるいは復号化の結果生成される各鍵は外部からアクセスできない領域に格納しておく必要がある。また、暗号化と復号化のアルゴリズムに関連性がある場合は、復号化と暗号化の回路の一部、あるいは全部を共用することも可能である。
ここで、Enc(Kc,Kh)はターゲット機器に格納されるのではなく、例えばホスト機器内のハードディスクなどの蓄積デバイスに格納される。この鍵変換処理の利用例としては、ターゲット機器に格納されたKcのバックアップなどを可能にする。このような処理では、バックアップされたKcはEnc(Kc,Kh)として保存されるため、Khを持ったホスト機器、すなわちバックアップを行ったホスト機器のみがEnc(Kc,Kh)を復号可能となる。
また、図8では、ターゲット機器101に対する認証処理が終了し機密情報処理部102にKa0(700)が生成されたものとする。またターゲット機器101に格納されたEnc(Ka1,Ka0)701がワーク領域106に一旦格納された後に、機密情報処理部102にIN1として入力されKa0(700)により復号化702することによりKa1(703)が生成され、さらにターゲット機器101に格納されたEnc(Ka2,Ka1)704がワーク領域106に一旦格納された後に、機密情報処理部102にIN2として入力されKa1(703)により復号化705することによりKa2(706)が生成されているものとする。なお、これらEnc(Ka1,Ka0)701およびEnc(Ka2,Ka1)704は、必ずしも一旦ワーク領域106に格納する必要はなく、直接ターゲット機器101から機密情報処理部102に入力することも可能である。
また、鍵変換処理の入力となるEnc(Kc,Ka2)707は、認証処理後にターゲット機器101からホスト機器100のワーク領域106に格納済みであり、出力であるEnc(Kc,Kh)708はワーク領域106に格納されるものとする。そしてワーク領域格納後に、改めてホスト機器100の蓄積デバイスなどに保存されるものとする。なお、入力のEnc(Kc,Ka2)は、必ずしも一旦ワーク領域106に格納する必要はなく、直接ターゲット機器101から機密情報処理部102に入力することも可能である。
以下、Ka2(706)およびKh709を用いた鍵変換処理が行われる際の機密情報処理部102の動作を説明する。図8では、機密情報処理部102にEnc(Kc,Ka2)からEnc(Kc,Kh)への鍵変換処理を行うための制御シーケンスが定義されており、この制御シーケンスがホストCPU103から起動されたとする。これにより、鍵変換処理が開始される。
鍵変換処理では、まずKcに対する暗号化および復号化を行うための鍵(機密情報処理部102に生成されたKa2(706)、および機密情報処理部102に格納されたKh709)が復号化を行うための回路および暗号化を行うための回路に設定される。そして次にEnc(Kc,Ka2)707が機密情報処理部102に入力され、この入力された鍵に対してKa2(706)を用いて復号化処理710を行う。このようにKa2(706)で復号化を行うことにより、暗号化されていないKc711が機密情報処理部102に生成される。この際、機密情報処理部102ではこの鍵をホストCPU103からアクセスされない形で保持する。この実装の例としては、ホストCPU103からアクセス不可能なレジスタにKc711を格納する方法がある。なお、Kc711は鍵変換処理終了後に機密情報処理部102により消去しても構わない。そして、Kc711に対してKh709を用いて暗号化処理712を行う。この暗号化処理712によりEnc(Kc,Kh)708が機密情報処理部102から出力される。以上の処理により鍵変換処理が終了する。
また、実施の形態1の場合と同様に、鍵変換処理における暗号化処理712や復号化処理710は、図8に示す鍵変換制御部216や、鍵変換制御フラグ217により制御される。ここで、図8の場合に必要となるフラグを考察する。図8の処理では認証鍵Ka0(700)から生成されるKa2(706)が使用される。そのため、認証鍵Ka0(700)を生成する認証処理が終了している必要がある。そのため、認証フラグ(Ka0)が鍵変換制御フラグ217の一つとして必要となる。なお、図8の場合は鍵変換処理の入力であるEnc(Kc,Ka2)707と、出力であるEnc(Kc,Kh)708は同一のターゲット機器に格納される必要がないため、同一ターゲットフラグは不要である。また、この鍵変換処理においては、Ka2(706)が復号化処理により機密情報処理部102に生成される必要がある。そのため、鍵生成フラグ(Ka2)が鍵変換制御フラグ217の一つとして必要となる。なお、Kh709は前もってホスト機器100に格納されている鍵なので、Kh709に対する生成フラグは不要である。したがって、図8に示す鍵変換処理を行う鍵変換処理設定がホストCPU103から行われた場合は、認証フラグ(Ka0)および鍵生成フラグ(Ka2)の二つのフラグを入力に持つANDゲートの出力が、図4に示すセレクタ301の出力として選択される。そのため、これら二つのフラグがともに1となっている場合のみ、暗号回路が使用可能となる。
次に、以下では図9のフローチャートを用いることにより図8に示した鍵変換処理の流れを説明する。本発明の鍵変換処理では、実施の形態1でも説明したように、まずホストCPU103により鍵変換処理設定800が行われる。これにより、機密情報処理部102で実行される鍵変換処理が起動される。次に、鍵変換制御フラグ読み出し801が鍵変換制御部216に対して行われる。読み出し後に、機密情報処理部102に対してEnc(Kc,Ka2)入力802を行う。そして、読み出されたフラグを基に、機密情報処理部102で不正な処理が行われないための条件が満たされているかどうかが確認される。これらの確認の処理は、図9では条件分岐803と条件分岐804に相当する。なお、不正な処理が行われないことが確認出来るのであれば、確認を行う順番は図9に示すとおりでなくても構わない。
図9では、図8の鍵変換制御フラグの説明でも示したように、二つの確認が行われる。まず、ターゲット機器に対する認証の条件として、鍵変換処理の入力であるEnc(Kc,Ka2)707を格納するターゲット機器に対して認証鍵Ka0(700)を生成する認証処理が行われているかを条件分岐803で確認する。これにより、認証鍵Ka0(700)を生成する認証処理が行われていること、およびEnc(Kc,Ka2)707を格納するターゲット機器が不正な機器でないことを確認する。また、鍵生成フラグの説明で示したように、Ka2(706)が機密情報処理部102に生成されていることを条件分岐804で確認する。これにより、Ka2(706)が生成されていない状態、すなわちKa2=0などの状態で復号化が行われないことを確認する。
以上の確認が行われた場合、ホストCPU103が設定した鍵変換処理が不正なく実行されることが確認される。そのため、確認後に入力であるEnc(Kc,Ka2)に対する変換処理805(図8では、Ka2(706)で復号化して、Kh(709)で暗号化する処理)が行われる。この間、鍵変換制御部216から暗号化処理712や復号化処理710を行う回路に対してイネーブル信号が出力されている。そして変換処理が行われたことにより、Enc(Kc,Kh)出力806が行われる。出力後、鍵変換処理が終了となる。
以上のように、図8および図9の処理を用いることにより鍵変換処理が実行される。なお、図8の例ではターゲット機器に{Enc(Ka1,Ka0),Enc(Ka2,Ka1),Enc(Kc,Ka2)}が格納された状態で、Enc(Kc,Ka2)707に対して鍵変換処理を行ってEnc(Kc,Kh)708を得る場合を説明した。そこで、これを一般化して、ターゲット機器にm個(mは自然数)の鍵{Enc(Ka1,Ka0),...,Enc(Kam,Ka(m−1))}が格納された状態で、Kamをコンテンツの暗号化および復号化に使用し、iを1≦i≦mを満たす自然数として、Enc(Kai,Ka(i−1))に対して鍵変換処理を行ってEnc(Kai,Kh)を得る構成としても良い。この場合、鍵変換処理を行うためには、機密情報処理部の復号化を行う回路にKa(i−1)を使用し、暗号化を行う回路にKhを使用して、また鍵変換処理フラグとしてKa(i−1)が生成されたことを示すフラグを代わりに使用すれば、図8と同様の鍵変換処理が実行可能である。したがって、機密情報処理部にKa(i−1)に対応する鍵生成フラグを追加し、鍵変換制御部にこのフラグを選択するための回路を追加すればよい。
(実施の形態4)
次に実施の形態4について説明する。基本的な全体構成は図2と同様なので説明を省略する。
実施の形態4では、本発明における鍵変換処理方法について説明する。図10は本発明における、鍵変換処理の実施の形態の一つを示したものである。図2および図3と同一の要素については、同一の符号を用いている。図10では本発明の実施の形態の一つとして、ターゲット機器101に二つの暗号化鍵{Enc(Kb1,Kb0),Enc(Kb2,Kb1)}が格納された状態で、Enc(Kc,Kh)に対して、Kb1により鍵変換処理を行ってEnc(Kc,Kb1)を得る場合を説明する。なお、図10において、復号化902、907は別個の復号化回路があるかのように描かれているが、これは説明をシーケンスに沿って簡略化するためであり、実際には同一の復号化回路をシーケンスに沿って複数回利用することが多い。この場合、復号化に用いられる、あるいは復号化の結果生成される各鍵は外部からアクセスできない領域に格納しておく必要がある。また、暗号化と復号化のアルゴリズムに関連性がある場合は、復号化と暗号化の回路の一部、あるいは全部を共用することも可能である。
ここで、Enc(Kc,Kh)はターゲット機器に格納されるのではなく、実施の形態3と同様に、例えばホスト機器内のハードディスクなどの蓄積デバイスに格納される。この鍵変換処理の利用例としては、ホスト機器にバックアップされたKcをターゲット機器にリストアする処理などが挙げられる。このような処理では、バックアップされたKcはEnc(Kc,Kh)として保存されているため、Khを持ったホスト機器、すなわちバックアップを行ったホスト機器のみがEnc(Kc,Kh)を復号可能となる。
また、図10では、ターゲット機器101に対する認証処理が終了し機密情報処理部102に認証鍵Kb0(900)が生成されたものとする。またターゲット機器101に格納されたEnc(Kb1,Kb0)901がワーク領域106に一旦格納された後に、機密情報処理部102にIN1として入力されKb0(900)により復号化902することによりKb1(903)が生成されているものとする。なお、このEnc(Kb1,Kb0)901は、必ずしも一旦ワーク領域106に格納する必要はなく、直接ターゲット機器101から機密情報処理部102に入力することも可能である。
また、鍵変換処理の入力となるEnc(Kc,Kh)904は、すでにホスト機器100の蓄積デバイスなどからワーク領域106に格納済みであり、出力であるEnc(Kc,Kb1)905はワーク領域106に格納されるものとする。そしてワーク領域格納後に、改めてターゲット機器101に格納されるものとする。なお、出力のEnc(Kc,Kb1)は、必ずしも一旦ワーク領域106に格納する必要はなく、直接機密情報処理部102からターゲット機器101に出力することも可能である。
以下、Kh906およびKb1(903)を用いた鍵変換処理が行われる際の機密情報処理部102の動作を説明する。図10では、機密情報処理部102にEnc(Kc,Kh)からEnc(Kc,Kb1)への鍵変換処理を行うための制御シーケンスが定義されており、この制御シーケンスがホストCPU103から起動されたとする。
鍵変換処理では、まずKcに対する暗号化および復号化を行うための鍵(機密情報処理部102に格納されたKh906、および機密情報処理部102に生成されたKb1(903))が復号化を行うための回路および暗号化を行うための回路に設定される。そして次にEnc(Kc,Kh)904が機密情報処理部102に入力され、この入力された鍵に対してKh906を用いて復号化処理907を行う。このようにKh906で復号化を行うことにより、暗号化されていないKc908が機密情報処理部102に生成される。この際、機密情報処理部102ではこの鍵をホストCPU103からアクセスされない形で保持する。この実装の例としては、ホストCPU103からアクセス不可能なレジスタにKc908を格納する方法がある。なお、Kc908は鍵変換処理終了後に機密情報処理部102により消去しても構わない。そして、Kc908に対してKb1(903)を用いて暗号化処理909を行う。この暗号化処理909によりEnc(Kc,Kb1)905が機密情報処理部102から出力される。以上の処理により鍵変換処理が終了する。
また、実施の形態1の場合と同様に、鍵変換処理における暗号化処理909や復号化処理907は、図10に示す鍵変換制御部216や、鍵変換制御フラグ217により制御される。ここで、図10の場合に必要となるフラグを考察する。図10の処理では認証鍵Kb0(900)から生成されるKb1(903)が使用される。そのため、認証鍵Kb0(900)を生成する認証処理が終了している必要がある。そのため、認証フラグ(Kb0)が鍵変換制御フラグ217の一つとして必要となる。なお、図10の場合は鍵変換処理の入力であるEnc(Kc,Kh)904と、出力であるEnc(Kc,Kb1)905は同一のターゲット機器に格納される必要がないため、同一ターゲットフラグは不要である。また、この鍵変換処理においては、Kb1(903)が復号化処理により機密情報処理部102に生成される必要がある。そのため、鍵生成フラグ(Kb1)が鍵変換制御フラグ217の一つとして必要となる。なお、Kh906は前もってホスト機器100に格納されている鍵なので、Kh906に対する生成フラグは不要である。したがって、図10に示す鍵変換処理を行う鍵変換処理設定がホストCPU103から行われた場合は、認証フラグ(Kb0)および鍵生成フラグ(Kb1)の二つのフラグを入力に持つANDゲートの出力が、図4に示すセレクタ301の出力として選択される。そのため、これら二つのフラグがともに1となっている場合のみ、暗号回路が使用可能となる。
次に、以下では図11のフローチャートを用いることにより図10に示した鍵変換処理の流れを説明する。本発明の鍵変換処理では、実施の形態1でも説明したように、まずホストCPU103により鍵変換処理設定1000が行われる。これにより、機密情報処理部102で実行される鍵変換処理が起動される。次に、鍵変換制御フラグ読み出し1001が鍵変換制御部217に対して行われる。読み出し後に、機密情報処理部102に対してEnc(Kc,Kh)入力1002を行う。そして、読み出されたフラグを基に、機密情報処理部102で不正な処理が行われないための条件が満たされているかどうかが確認される。これらの確認の処理は、図11では条件分岐1003と条件分岐1004に相当する。なお、不正な処理が行われないことが確認出来るのであれば、確認を行う順番は図11に示すとおりでなくても構わない。
図11では、図10の鍵変換制御フラグの説明でも示したように、二つの確認が行われる。まず、ターゲット機器に対する認証の条件として、鍵変換処理の出力であるEnc(Kc,Kb1)905を格納するターゲット機器に対して認証鍵Kb0(900)を生成する認証処理が行われているかを条件分岐1003で確認する。これにより、認証鍵Kb0(900)を生成する認証処理が行われていること、およびEnc(Kc,Kb1)905を格納するターゲット機器が不正な機器でないことを確認する。また、鍵生成フラグの説明で示したように、Kb1(903)が機密情報処理部102に生成されていることを、条件分岐1004で確認する。これにより、Kb1(903)が生成されていない状態、すなわちKb1=0などの状態で暗号化が行われないことを確認する。
以上の確認が行われた場合、ホストCPU103が設定した鍵変換処理が不正なく実行されることが確認される。そのため、確認後に入力であるEnc(Kc,Kh)に対する変換処理1005(図10では、Kh906で復号化して、Kb1(903)で暗号化する処理)が行われる。この間、鍵変換制御部216から暗号化処理909や復号化処理907を行う回路に対してイネーブル信号が出力されている。そして変換処理が行われたことにより、Enc(Kc,Kb1)出力1006が行われる。出力後、鍵変換処理が終了となる。
以上のように、図10および図11の処理を用いることにより鍵変換処理が実行される。なお、図10の例ではターゲット機器に{Enc(Kb1,Kb0),Enc(Kb2,Kb1)}が格納された状態で、Enc(Kc,Kh)904に対して鍵変換処理を行ってEnc(Kc,Kb1)905を得る場合を説明した。そこで、これを一般化して、ターゲット機器にn個(nは自然数)の鍵{Enc(Kb1,Kb0),...,Enc(Kbn,Kb(n−1))}が格納された状態で、Kbnをコンテンツの暗号化および復号化に使用し、jを1≦j≦nを満たす自然数として、Enc(Kai,Kh)に対して鍵変換処理を行ってEnc(Kai,Kb(j−1))を得る構成としても良い。この場合、鍵変換処理を行うためには、機密情報処理部の暗号化を行う回路にKhを使用し、復号化を行う回路にKb(j−1)を使用して、また鍵変換処理フラグとしてKb(j−1)が生成されたことを示すフラグを代わりに使用すれば、図10と同様の鍵変換処理が実行可能である。したがって、機密情報処理部にKb(j−1)に対応する鍵生成フラグを追加し、鍵変換制御部にこのフラグを選択するための回路を追加すればよい。
(実施の形態5)
次に実施の形態5について説明する。基本的な全体構成は図2と同様なので説明を省略する。
実施の形態5では、本発明における鍵変換処理方法について説明する。図12は本発明における、鍵変換処理の実施の形態の一つを示したものである。図2および図3と同一の要素については、同一の符号を用いている。図12では本発明の実施の形態の一つとして、ターゲット機器101に暗号化鍵Enc(Ka1,Ka0)が格納され、さらに同一ターゲット機器にKa1により暗号化された二つの暗号化鍵{Enc(Kd2,Ka1)およびEnc(Ke2,Ka1)が格納され、またそれぞれKd2およびKe2により暗号化された鍵Enc(Kc,Kd2)およびEnc(Ke3,Ke2)が格納された状態を説明する。そして、Enc(Kc,Kd2)に対して、Ke2により鍵変換処理を行ってEnc(Kc,Ke2)を得る場合を説明する。このように、実施の形態5では、同一の認証鍵Ka0から生成される鍵の間での鍵変換処理を説明する。なお、図12において、復号化1102、1105、1108、1112は別個の復号化回路があるかのように描かれているが、これは説明をシーケンスに沿って簡略化するためであり、実際には同一の復号化回路をシーケンスに沿って複数回利用することが多い。この場合、復号化に用いられる、あるいは復号化の結果生成される各鍵は外部からアクセスできない領域に格納しておく必要がある。また、暗号化と復号化のアルゴリズムに関連性がある場合は、復号化と暗号化の回路の一部、あるいは全部を共用することも可能である。
この鍵変換処理の利用例としては、この処理を行ったことによりKcを暗号化する鍵がKd2からKe2に変更されることから、Kd2を不要として、さらに不要となったKd2をターゲット機器から消去することにより、Kcを暗号化する鍵の個数を減らすなどの用途に利用できる。
また、図12では、ターゲット機器101に対する認証処理が終了し機密情報処理部102に認証鍵Ka0(1100)が生成されたものとする。またターゲット機器101に格納されたEnc(Ka1,Ka0)1101がワーク領域106に一旦格納された後に、機密情報処理部102にIN1として入力され認証鍵Ka0(1100)により復号化1102することによりKa1(1103)が生成され、さらにターゲット機器101に格納されたEnc(Kd2,Ka1)1104がワーク領域106に一旦格納された後に、機密情報処理部102にIN2として入力されKa1(1103)により復号化1105することによりKd2(1106)が生成されているものとする。またターゲット機器101に格納されたEnc(Ke2,Ka1)1107がワーク領域106に一旦格納された後に、機密情報処理部102にIN3として入力されKa1(1103)により復号化1108することによりKe2(1109)が生成されているものとする。なお、これらEnc(Ka1,Ka0)1101、Enc(Kd2,Ka1)1104およびEnc(Ke2,Ka1)1107は、必ずしも一旦ワーク領域106に格納する必要はなく、直接ターゲット機器101から機密情報処理部102に入力することも可能である。
また、鍵変換処理の入力となるEnc(Kc,Kd2)1110は、認証処理後にターゲット機器101からホスト機器100のワーク領域106に格納済みであり、出力であるEnc(Kc,Ke2)1111はワーク領域106に格納されるものとする。そしてワーク領域格納後に、改めてターゲット機器101に格納されるものとする。なお、これらEnc(Kc,Kd2)やEnc(Kc,Ke2)は、必ずしも一旦ワーク領域106に格納する必要はなく、直接ターゲット機器101から機密情報処理部102に入力する、もしくは直接機密情報処理部102からターゲット機器101に出力することも可能である。
以下、Kd2(1106)およびKe2(1109)を用いた鍵変換処理が行われる際の機密情報処理部102の動作を説明する。図12では、機密情報処理部102にEnc(Kc,Kd2)からEnc(Kc,Ke2)への鍵変換処理を行うための制御シーケンスが定義されており、この制御シーケンスがホストCPU103から起動されたとする。
鍵変換処理では、まずKcに対する暗号化および復号化を行うための鍵(機密情報処理部に生成されたKd2(1106)およびKe2(1109))が復号化を行うための回路および暗号化を行うための回路に設定される。そして次にEnc(Kc,Kd2)1110が機密情報処理部102に入力され、この入力された鍵に対してKd2(1106)を用いて復号化処理1112を行う。このようにKd2(1106)で復号化を行うことにより、暗号化されていないKc1113が機密情報処理部102に生成される。この際、機密情報処理部102ではこの鍵をホストCPU103からアクセスされない形で保持する。この実装の例としては、ホストCPU103からアクセス不可能なレジスタにKc1113を格納する方法がある。なお、Kc1113は鍵変換処理終了後に機密情報処理部102により消去しても構わない。そして、Kc1113に対してKe2(1109)を用いて暗号化処理1114を行う。この暗号化処理1114によりEnc(Kc,Ke2)1111が機密情報処理部102から出力される。以上の処理により鍵変換処理が終了する。
また、実施の形態1の場合と同様に、鍵変換処理における暗号化処理1114や復号化処理1112は、図12に示す鍵変換制御部216や、鍵変換制御フラグ217により制御される。ここで、図12の場合に必要となるフラグを考察する。図12の処理では認証鍵Ka0(1100)から生成されるKd2(1106)およびKe2(1109)が使用される。そのため、認証鍵Ka0(1100)を生成する認証処理が終了している必要がある。そのため、認証フラグ(Ka0)が鍵変換制御フラグ217の一つとして必要となる。なお、図12の場合は認証鍵Ka0(1100)を生成する認証処理のみが行われるため、同一ターゲットフラグは不要である。また、この鍵変換処理においては、Kd2(1106)およびKe2(1109)が復号化処理により機密情報処理部102に生成される必要がある。そのため、鍵生成フラグ(Kd2)および鍵生成フラグ(Ke2)が鍵変換制御フラグ217として必要となる。したがって、図12に示す鍵変換処理を行う鍵変換処理設定がホストCPU103から行われた場合は、認証フラグ(Ka0)、鍵生成フラグ(Kd2)および鍵生成フラグ(Ke2)の三つのフラグを入力に持つANDゲートの出力が、図4に示すセレクタ301の出力として選択される。そのため、これら三つのフラグがともに1となっている場合のみ、暗号回路が使用可能となる。
次に、以下では図13のフローチャートを用いることにより図12に示した鍵変換処理の流れを説明する。本発明の鍵変換処理では、実施の形態1でも説明したように、まずホストCPU103により鍵変換処理設定1200が行われる。これにより、機密情報処理部102で実行される鍵変換処理が起動される。次に、鍵変換制御フラグ読み出し1201が鍵変換制御部217に対して行われる。読み出し後に、機密情報処理部102に対してEnc(Kc,Kd2)入力1202を行う。そして、読み出されたフラグを基に、機密情報処理部102で不正な処理が行われないための条件が満たされているかどうかが確認される。これらの確認の処理は、図13では条件分岐1203から条件分岐1205に相当する。なお、不正な処理が行われないことが確認出来るのであれば、確認を行う順番は図13に示すとおりでなくても構わない。
図13では、図12の鍵変換制御フラグの説明でも示したように、三つの確認が行われる。まず、ターゲット機器に対する認証の条件として、鍵変換処理の入力であるEnc(Kc,Kd2)1110および出力であるEnc(Kc,Ke2)1111を格納するターゲット機器に対して認証鍵Ka0(1100)を生成する認証処理が行われているかを条件分岐1203で確認する。これにより、認証鍵Ka0(1100)を生成する認証処理が行われていること、およびEnc(Kc,Kd2)1110やEnc(Kc,Ke2)1111を格納するターゲット機器が不正な機器でないことを確認する。また、鍵生成フラグの説明で示したように、Kd2(1106)およびKe2(1109)が機密情報処理部102に生成されていることを、条件分岐1204および条件分岐1205で確認する。これにより、Kd2(1106)およびKe2(1109)が生成されていない状態、すなわちKd2=0およびKe2=0などの状態で復号化および暗号化が行われないことを確認する。
以上の確認が行われた場合、ホストCPU103が設定した鍵変換処理が不正なく実行されることが確認される。そのため、確認後に入力であるEnc(Kc,Kd2)に対する変換処理1206(図12では、Kd2(1106)で復号化して、Ke2(1109)で暗号化する処理)が行われる。この間、鍵変換制御部216から暗号化処理1114や復号化処理1112を行う回路に対してイネーブル信号が出力されている。そして変換処理が行われたことにより、Enc(Kc,Ke2)出力1207が行われる。出力後、鍵変換処理が終了となる。
以上のように、図12および図13の処理を用いることにより鍵変換処理が実行される。なお、図12の例ではターゲット機器にEnc(Ka1,Ka0)と、{Enc(Kd2,Ka1), Enc(Kc,Kd2)}および{Enc(Ke2,Ka1),Enc(Ke3,Ke2)}が格納された状態で、Enc(Kc,Kd2)1110に対して鍵変換処理を行ってEnc(Kc,Ke2)1111を得る構成としても良い。そこで、これを一般化して、ターゲット機器にs個(sは自然数)の鍵{Enc(Ka1,Ka0),...,Enc(Kas,Ka(s−1))}が格納され、またそれぞれt個(tは自然数)からなる鍵{Enc(Kd1,Kas),Enc(Kd2,Kd1),...,Enc(Kdt,Kd(t−1))}および{Enc(Ke1,Kas),Enc(Ke2,Ke1),...,Enc(Ket,Ke(t−1))}が格納された状態で、KdtおよびKetをコンテンツの暗号化および復号化に使用し、iを1≦i≦tを満たす自然数として、Enc(Kdi,Kd(i−1))に対して鍵変換処理を行ってEnc(Kdi,Ke(j−1))を得る場合でもよい。この場合、鍵変換処理を行うためには、機密情報処理部の復号化を行う回路にKd(i−1)を使用し、暗号化を行う回路にKe(i−1)を使用して、また鍵変換処理フラグとしてKd(i−1)が生成されたことを示すフラグ、およびKe(i−1)が生成されたことを示すフラグを代わりに使用すれば、図12と同様の鍵変換処理が実行可能である。したがって、機密情報処理部にKd(i−1)およびKe(i−1)に対応する鍵生成フラグを追加し、鍵変換制御部にこのフラグを選択するための回路を追加すればよい。
本発明により、異なる機密情報処理方法の間などで鍵変換処理を実行可能であり、またその際、鍵情報が漏洩することなく、さらに不正な処理が行われることなく処理が実行可能である。したがって、複数の機密情報処理方法を実装したターゲット機器を利用する機密情報システムなどで利用可能である。
図1は、従来技術におけるコンテンツの復号化方法を示す図である。 図2は、本発明における機密情報処理システムの全体を示す図である。 図3は、本発明における入力Enc(Kc,Ka2)から出力Enc(Kc,Kb1)を得る鍵変換処理を行うための構成を示す図である。 図4は、本発明における鍵変換制御部および鍵変換制御フラグの構成を示す図である。 図5は、本発明における入力Enc(Kc,Ka2)から出力Enc(Kc,Kb1)を得る鍵変換処理を行うためのフローチャートである。 図6は、本発明における認証の消去でのターゲット機器交換前の構成を示す図である。 図7は、本発明における認証の消去でのターゲット機器交換後の構成を示す図である。 図8は、本発明における入力Enc(Kc,Ka2)から出力Enc(Kc,Kh)を得る鍵変換処理を行うための構成を示す図である。 図9は、本発明における入力Enc(Kc,Ka2)から出力Enc(Kc,Kh)を得る鍵変換処理を行うためのフローチャートである。 図10は、本発明における入力Enc(Kc,Kh)から出力Enc(Kc,Kb1)を得る鍵変換処理を行うための構成を示す図である。 図11は、本発明における入力Enc(Kc,Kh)から出力Enc(Kc,Kb1)を得る鍵変換処理を行うためのフローチャートである。 図12は、本発明における入力Enc(Kc,Ka2)から出力Enc(Kc,Kd2)を得る鍵変換処理を行うための構成を示す図である。 図13は、本発明における入力Enc(Kc,Kd2)から出力Enc(Kc,Ke2)を得る鍵変換処理を行うためのフローチャートである。
符号の説明
100 ホスト機器
101 ターゲット機器
102 機密情報処理部
103 ホストCPU
104 ホストI/F
105 ターゲットI/F
106 ワーク領域
107 内部バス
108 半導体集積回路
216 鍵変換制御部
217 鍵変換制御フラグ
300 鍵変換処理設定デコード回路
301 セレクタ
302 ANDゲート
303 認証フラグ(Ka0)
304 認証フラグ(Kb0)
305 同一ターゲットフラグ
306 鍵生成フラグ(Ka2)
307 鍵生成フラグ(Kb1)
500 ターゲット機器1
600 ターゲット機器2
1300 ホスト機器
1301 ターゲット機器
1302 機密情報処理部
1303 ワーク領域

Claims (15)

  1. 暗号化コンテンツを含む暗号化された状態の機密情報を格納するターゲット機器から前記暗号化コンテンツを読み出し、復号化して利用する機密情報処理用のホスト機器であって、
    予め定められた複数のシーケンスのみに従って動作を行う機密情報処理部と、
    前記機密情報処理部に対して、前記複数のシーケンスの起動を指示するCPUと、
    前記機密情報処理部とターゲット機器との間で前記機密情報を含むデータの入出力を行う第1のインターフェース部と、
    前記機密情報処理部と前記CPUとの間で前記機密情報を含むデータの入出力を行う第2のインターフェース部と、
    を備え、
    前記ターゲット機器またはホスト機器は、m個の鍵{K1,...,Km}を暗号化された状態で前記機密情報として格納し、
    前記鍵Kmは、コンテンツを暗号化するコンテンツ鍵であり、
    鍵Ki(1≦i≦mを満たす自然数)は鍵K(i−1)により暗号化され、
    前記複数のシーケンスは、前記m個の鍵のうち任意の鍵Kiを暗号化する鍵を、K(i−1)から別の鍵に変換する鍵変換シーケンスを含み、
    前記第1のインターフェース部と前記第2のインターフェース部は、前記鍵変換シーケンスが起動された場合に、暗号化された状態の機密情報のみを前記機密情報処理部の外部に出力する
    ことを特徴とする機密情報処理用のホスト機器。
  2. 前記ホスト機器は前記ターゲット機器との間で第1の認証処理を行い、
    前記鍵K1を暗号化する前記鍵K0は第1の認証処理により生成される認証鍵Ka0であり、
    前記ターゲット機器と同一または異なるターゲット機器はn個(nは自然数)の鍵{Kb1,...,Kbn}を格納し、
    鍵Kbj(1≦j≦nを満たす自然数)はKb(j−1)により暗号化され、
    前記ホスト機器は、さらに前記ターゲット機器と同一または異なるターゲット機器の間で第2の認証処理を行い、
    前記鍵Kb0は前記第2の認証処理により生成される認証鍵であり、
    前記別の鍵は前記鍵{Kb0,...,Kb(n−1)}のうちの何れかの鍵である
    ことを特徴とする請求項1記載の機密情報処理用のホスト機器。
  3. 前記別の鍵は、Kb(n−m+i)である
    ことを特徴とする請求項2記載の機密情報処理用のホスト機器。
  4. 前記ホスト機器は前記ターゲット機器との間で第1の認証処理を行い、
    前記鍵K1を暗号化する前記鍵K0が、前記第1の認証処理により生成される認証鍵Ka0であり、
    前記別の鍵は、前記機密情報処理部に格納されたホスト鍵Khである
    ことを特徴とする請求項1記載の機密情報処理用のホスト機器。
  5. 前記鍵K0は、前記機密情報処理部に格納されたホスト鍵Khであり、
    前記ホスト機器は、さらに前記ターゲット機器と同一または異なるターゲット機器の間で第2の認証処理を行い、
    該ターゲット機器はn個(nは自然数)の鍵{Kb1,...,Kbn}を格納し、
    鍵Kbj(1≦j≦nを満たす自然数)は鍵Kb(j−1)により暗号化され、
    前記鍵Kb0は、前記第2の認証処理により生成された認証鍵であり、
    前記鍵変換シーケンスにおいて、鍵K1を暗号化する鍵を、前記ホスト鍵Khから{Kb0,...,Kb(n−1)}のうち何れかの鍵へと変換する
    こと特徴とする請求項1記載の機密情報処理用のホスト機器。
  6. 前記ホスト機器は前記ターゲット機器との間で第1の認証処理を行い、
    前記K1を暗号化する前記鍵K0は、前記第1の認証処理により生成される認証鍵Ka0であり、
    前記ターゲット機器は、(m−s)個の鍵{Ke1,...Ke(m−s)}を格納し、鍵Kej(1≦j≦m−sを満たす自然数)は鍵Ke(j−1)により暗号化され、
    鍵Ke0は、前記m個の鍵{K1,...,Km}のうちの何れかの鍵Ks(1≦s<mを満たす自然数)であり、
    前記別の鍵は、{Ke1,...,Ke(m−s−1)}のうち何れかの鍵である
    ことを特徴とする請求項1記載の機密情報処理用のホスト機器。
  7. 前記機密情報処理部は、さらに、
    前記第1の認証処理が適正に終了しているか否かを示す認証フラグを保持するフラグ保持部を有し、
    前記認証フラグが前記第1の認証処理が適正に終了していることを示さない場合に、前記ホストCPUからの鍵変換シーケンスの起動を禁止する
    ことを特徴とする請求項2、4、6何れかに記載の機密情報処理用のホスト機器。
  8. 前記機密情報処理部は、さらに、
    前記第2の認証処理が適正に終了しているか否かを示す認証フラグを保持するフラグ保持部を有し、
    前記認証フラグが前記第2の認証処理が適正に終了していることを示さない場合に、前記ホストCPUからの鍵変換シーケンスの起動を禁止する
    ことを特徴とする請求項2または5に記載の機密情報処理用のホスト機器。
  9. 前記機密情報処理部は、さらに、
    前記鍵K(i−1)が内部に生成されているか否かを示す鍵生成フラグを保持するフラグ保持部を有し、
    前記鍵生成フラグが、鍵K(i−1)が内部に生成されていることを示さない場合に、前記ホストCPUからの鍵変換シーケンスの起動を禁止する
    ことを特徴とする請求項7記載の機密情報処理用のホスト機器。
  10. 前記機密情報処理部は、さらに、
    前記別の鍵が内部に生成されているか否かを示す鍵生成フラグを保持するフラグ保持部を有し、
    前記鍵生成フラグが前記別の鍵が内部に生成されていることを示さない場合に、前記ホストCPUからの鍵変換シーケンスの起動を禁止する
    ことを特徴とする請求項8記載の機密情報処理用のホスト機器。
  11. 前記機密情報処理部は、さらに、
    前記第1の認証処理と前記第2の認証処理とが同一のターゲット機器に対して行われたか否かを示すターゲットフラグを保持するフラグ保持部を有し、
    前記ターゲットフラグが前記第1の認証処理と前記第2の認証処理とが同一のターゲット機器に対して行われたことを示さない場合に、前記ホストCPUからの鍵変換シーケンスの起動を禁止する
    ことを特徴とする請求項2記載の機密情報処理用のホスト機器。
  12. 前記機密情報処理部は、さらに、
    前記ターゲット機器との間の接続が切断された場合、前記フラグ保持手段に保持された前記フラグを初期化する
    ことを特徴とする請求項7または8に記載の機密情報処理用のホスト機器。
  13. 前記ホスト機器は、前記ターゲット機器との間の接続が切断された場合、前記機密情報処理部が復号化し内部に保持する鍵を消去する
    ことを特徴とする請求項1〜13の何れかに記載の機密情報処理用のホスト機器。
  14. 単一の半導体装置として実装されたことを特徴とする請求項1〜14の何れかに記載の機密情報処理用のホスト機器。
  15. 暗号化コンテンツを含む暗号化された状態の機密情報を格納するターゲット機器から前記暗号化コンテンツを読み出し、復号化して利用する機密情報処理用のホスト機器における機密情報処理方法であって、
    前記ホスト機器は、
    予め定められた複数のシーケンスのみに従って動作を行う機密情報処理部と、
    前記機密情報処理部に対して、前記複数のシーケンスの起動を指示するCPUと、
    前記機密情報処理部とターゲット機器との間で前記機密情報を含むデータの入出力を行う第1のインターフェース部と、
    前記機密情報処理部と前記CPUとの間で前記機密情報を含むデータの入出力を行う第2のインターフェース部とを備え、
    前記ターゲット機器またはホスト機器は、m個の鍵{K1,...,Km}を暗号化された状態で前記機密情報として格納し、
    前記鍵Kmは、コンテンツを暗号化するコンテンツ鍵であり、
    鍵Ki(1≦i≦mを満たす自然数)は鍵K(i−1)により暗号化され、
    前記機密情報処理方法は、
    前記複数のシーケンスにおいて、前記m個の鍵のうち任意の鍵Kiを暗号化する鍵を、K(i−1)から別の鍵に変換する鍵変換シーケンスを実行し、
    前記第1のインターフェース部と前記第2のインターフェース部は、前記鍵変換シーケンスが起動された場合に、暗号化された状態の機密情報のみを前記機密情報処理部の外部に出力する
    ことを特徴とする機密情報処理方法。
JP2006529384A 2005-04-27 2006-04-25 機密情報処理用ホスト機器および機密情報処理方法 Pending JPWO2006118101A1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2005129308 2005-04-27
JP2005129308 2005-04-27
PCT/JP2006/308626 WO2006118101A1 (ja) 2005-04-27 2006-04-25 機密情報処理用ホスト機器および機密情報処理方法

Publications (1)

Publication Number Publication Date
JPWO2006118101A1 true JPWO2006118101A1 (ja) 2008-12-18

Family

ID=37307901

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006529384A Pending JPWO2006118101A1 (ja) 2005-04-27 2006-04-25 機密情報処理用ホスト機器および機密情報処理方法

Country Status (5)

Country Link
US (1) US8024583B2 (ja)
EP (1) EP1876753B1 (ja)
JP (1) JPWO2006118101A1 (ja)
CN (1) CN101167301B (ja)
WO (1) WO2006118101A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010108237A (ja) * 2008-10-30 2010-05-13 Nec Corp 情報処理システム
US20120096542A1 (en) * 2010-10-14 2012-04-19 Shea David P Portable confidential account information management device
CN102769525B (zh) * 2011-05-04 2015-12-02 国民技术股份有限公司 一种tcm的用户密钥备份与恢复方法
CN104335220B (zh) * 2012-03-30 2018-04-20 爱迪德技术有限公司 用于防止和检测安全威胁的方法和系统
US9171170B2 (en) * 2012-08-17 2015-10-27 Broadcom Corporation Data and key separation using a secure central processing unit
US10218496B2 (en) * 2014-08-04 2019-02-26 Cryptography Research, Inc. Outputting a key based on an authorized sequence of operations

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001175606A (ja) * 1999-12-20 2001-06-29 Sony Corp データ処理装置、データ処理機器およびその方法
JP2001256113A (ja) * 2000-03-13 2001-09-21 Toshiba Corp コンテンツ処理システムおよびコンテンツ保護方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5805706A (en) 1996-04-17 1998-09-08 Intel Corporation Apparatus and method for re-encrypting data without unsecured exposure of its non-encrypted format
JP3479390B2 (ja) 1995-06-30 2003-12-15 沖電気工業株式会社 機密性データの解読防止方法と情報処理装置
JPH1195660A (ja) 1997-09-22 1999-04-09 Nippon Telegr & Teleph Corp <Ntt> 電子文書匿名通信方法、そのプログラム記録媒体及びその装置
JP4621314B2 (ja) 1999-06-16 2011-01-26 株式会社東芝 記憶媒体
CN1326352C (zh) * 1999-12-03 2007-07-11 三洋电机株式会社 数据传输系统及用于该系统的记录装置
JP2002094499A (ja) * 2000-09-18 2002-03-29 Sanyo Electric Co Ltd データ端末装置およびヘッドホン装置
US7167559B2 (en) * 2001-03-28 2007-01-23 Matsushita Electric Industrial Co., Ltd. Information security device, exponentiation device, modular exponentiation device, and elliptic curve exponentiation device
JP4596686B2 (ja) * 2001-06-13 2010-12-08 富士通株式会社 Dpaに対して安全な暗号化
JP3869761B2 (ja) * 2002-06-05 2007-01-17 三洋電機株式会社 コンテンツ再生装置
US7184550B2 (en) * 2002-08-15 2007-02-27 Intel Corporation Method and apparatus for simultaneous decryption and re-encryption of publicly distributed content via stream ciphers
JP3881942B2 (ja) 2002-09-04 2007-02-14 松下電器産業株式会社 暗号化部を有する半導体装置
CN1150726C (zh) * 2002-10-01 2004-05-19 华中科技大学 一种安全网络传输方法及其系统
JP4067985B2 (ja) 2003-02-28 2008-03-26 松下電器産業株式会社 アプリケーション認証システムと装置
DE602004007116T2 (de) * 2003-03-14 2008-02-28 Koninklijke Philips Electronics N.V. Geschützter rückkanal vom digitalen rechte verwaltenden dongle
CN1317649C (zh) * 2003-09-19 2007-05-23 联想(北京)有限公司 一种基于安全芯片的计算机终端安全系统
US20060165233A1 (en) * 2003-12-17 2006-07-27 Masao Nonaka Methods and apparatuses for distributing system secret parameter group and encrypted intermediate key group for generating content encryption and decryption deys
KR20050087271A (ko) * 2004-02-26 2005-08-31 삼성전자주식회사 가변 키 길이를 가지는 초기 라운드 키에 대응하는 암호라운드 키와 복호 라운드 키를 선택적으로 발생하는 키스케쥴 장치
JP4763368B2 (ja) 2005-07-12 2011-08-31 パナソニック株式会社 通信カード、機密情報処理システム、機密情報転送方法およびプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001175606A (ja) * 1999-12-20 2001-06-29 Sony Corp データ処理装置、データ処理機器およびその方法
JP2001256113A (ja) * 2000-03-13 2001-09-21 Toshiba Corp コンテンツ処理システムおよびコンテンツ保護方法

Also Published As

Publication number Publication date
WO2006118101A1 (ja) 2006-11-09
US20090083547A1 (en) 2009-03-26
EP1876753B1 (en) 2016-03-02
CN101167301A (zh) 2008-04-23
EP1876753A4 (en) 2012-03-07
US8024583B2 (en) 2011-09-20
EP1876753A1 (en) 2008-01-09
CN101167301B (zh) 2011-02-16

Similar Documents

Publication Publication Date Title
JP5984625B2 (ja) 半導体装置及び暗号鍵書き込み方法
JP2020535693A (ja) 記憶データ暗号化/復号化装置及び方法
JP4758904B2 (ja) 機密情報処理方法
JP2010509662A (ja) 外部不揮発性メモリに記憶された情報の暗号化のための方法およびシステム
JPH08328962A (ja) 端末機と、当該端末機に接続されるメモリカードからなるシステム
US10565381B2 (en) Method and apparatus for performing firmware programming on microcontroller chip, and associated microcontroller chip
JP2007241519A (ja) 携帯端末
EP1830240A1 (en) Memory information protecting system, semiconductor memory, and method for protecting memory information
EP2922235B1 (en) Security module for secure function execution on untrusted platform
JPWO2006118101A1 (ja) 機密情報処理用ホスト機器および機密情報処理方法
US20020168067A1 (en) Copy protection method and system for a field-programmable gate array
JP2008299683A (ja) 情報記録媒体のセキュリティ方法、情報処理装置及びプログラム
US20080104396A1 (en) Authentication Method
JP2007193800A (ja) カード認証システムのセキュリティレベルを向上させる装置及び方法
JP2007233226A (ja) 可搬性記憶媒体、機密保護システム、および機密保護方法
KR20020071274A (ko) Pc기반의 암호칩 및 플래시 메모리를 이용한 유.에스.비보안보조기억장치
JP2000076144A (ja) 論理回路、マイクロコンピュータ、および論理回路・記憶回路間の通信方法
US11698993B2 (en) Integrated circuit configured to perform symmetric encryption operations with secret key protection
JP5539024B2 (ja) データ暗号化装置およびその制御方法
CN114065267A (zh) 基于国密算法的fpga码流的保护方法及其装置
JP2008003774A (ja) マイクロコンピュータ
JPH0728406A (ja) スクランブル方法
KR101516751B1 (ko) 암호문의 편집을 통한 원문 해독 방지방법과 방지시스템
JP2005092729A (ja) 電子文書の保護方法、電子文書編集装置、電子文書編集プログラム
CN114520740A (zh) 一种加密方法、装置、设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090309

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110817

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111017

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20111115

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120203

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120209

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20120706