(57)【特許請求の範囲】
【請求項１】
耐タンパデバイスと端末とからなるストリーム暗号処理システムであって、
前記耐タンパデバイスが、
保有する秘密鍵と前記端末から出力された初期値とを入力し、対応するハッシュ値を初期鍵として出力するハッシュ関数処理手段と、
該初期鍵と前記端末から出力された初期値とに基づいて、内部状態の初期化処理を行い、初期化処理後の内部状態を前記端末に出力する初期化処理手段と、
を備え、
前記端末が、
前記耐タンパデバイスから入力した内部状態を入力し、前記入力された内部状態に基づいて、その後の、平文の暗号化あるいは暗号文の復号化処理を行うストリーム暗号処理手段を備えたことを特徴とするストリーム暗号処理システム。
【請求項２】
ストリーム暗号の初期化処理を実行する耐タンパデバイスであって、
保有する秘密鍵と外部から入力された初期値とを結合して、対応するハッシュ値を初期鍵として出力するハッシュ関数処理手段と、
該初期鍵と前記外部から入力された初期値とに基づいて、内部状態の初期化処理を実行し、初期化処理後の内部状態を外部に出力する初期化処理手段と、
を備えたことを特徴とする耐タンパデバイス。
【請求項３】
耐タンパデバイスと端末とからなるストリーム暗号処理システムにおけるストリーム暗号処理方法であって、
前記端末が前記耐タンパデバイスに初期値を出力する第１のステップと、
前記耐タンパデバイスが、入力した初期値と保有する秘密鍵とを結合してハッシュ関数に入力する第２のステップと、
前記耐タンパデバイスが、前記ハッシュ関数の出力値を初期鍵とし、該初期鍵と前記端末から入力した初期値とを入力して、内部状態の初期化処理を実行する第３のステップと、
前記耐タンパデバイスが、初期化処理終了後の内部状態を前記端末に出力する第４のステップと、
前記端末が、入力した内部状態を、前記端末の備えるストリーム暗号処理部に入力する第５のステップと、
前記端末が、前記ストリーム暗号処理部により、平文の暗号化あるいは暗号文の復号化処理を行う第６のステップと、
を備えたことを特徴とするストリーム暗号処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストリーム暗号処理システム、ストリーム暗号処理方法に関し、特に、ストリーム暗号で使用する秘密鍵を隠蔽するストリーム暗号処理システム、耐タンパデバイス及びストリーム暗号処理方法に関する。
【背景技術】
【０００２】
近年、ブロック暗号に比べて高速に処理できるストリーム暗号が注目されている。このストリーム暗号は公知のように、ビット列からなるいわゆる平文から、同じ長さの適当な乱数とのビットごとの排他的論理和をとることによって暗号文とする暗号であり、したがって、その暗号文に暗号化時と同じ乱数ビット列との排他的論理和を行えば、元の平文に復号化することができる（例えば、特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平６−０７５５２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、現在使用されているストリーム暗号の多くは、内部状態がすべて盗み出されると、そこから秘密鍵が導出される危険性がある。一方で、ストリーム暗号をＩＣカードのような耐タンパデバイス内で実行すると、ＩＣカードの通信速度の制限により、暗号化／復号化の処理速度が低減されてしまうという問題もある。
【０００５】
そこで、本発明は、上述の課題に鑑みてなされたものであり、ストリーム暗号の初期化処理を耐タンパデバイス内で実行し、その後の暗号化／復号処理を他の装置で行うとともに、初期化処理において、ストリーム暗号アルゴリズムを階層化するストリーム暗号処理システム、耐タンパデバイス及びストリーム暗号処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、上記の課題を解決するために、以下の事項を提案している。
（１）本発明は、耐タンパデバイスと端末とからなるストリーム暗号処理システムであって、前記耐タンパデバイスが、保有する秘密鍵と前記端末から出力された初期値とを入力し、対応するハッシュ値を初期鍵として出力するハッシュ関数処理手段と、該初期鍵と前記端末から出力された初期値とに基づいて、ストリーム暗号の初期化処理を行い、初期化処理後の内部状態を前記端末に出力する初期化処理手段と、を備え、前記端末が、前記耐タンパデバイスから入力した内部状態を入力し、ストリーム暗号の暗号化あるいは復号化処理を行うストリーム暗号処理手段を備えたことを特徴とするストリーム暗号処理システムを提案している。
【０００７】
この発明によれば、耐タンパデバイスのハッシュ関数処理手段が、保有する秘密鍵と端末から出力された初期値とを入力し、対応するハッシュ値を初期鍵として出力する。また、初期化処理手段が初期鍵と端末から出力された初期値とに基づいて、ストリーム暗号の初期化処理を行い、初期化処理後の内部状態を前記端末に出力する。一方、端末ストリーム暗号処理手段は、耐タンパデバイスから入力した内部状態を入力し、ストリーム暗号の暗号化あるいは復号化処理を行う。すなわち、初期化処理を耐タンパデバイス内で実行し、さらに、初期化処理において、一方向性のハッシュ関数を追加することにより、内部状態から秘密鍵を容易に推定できないようにすることができる。また、暗号化／復号化処理を端末で実行することにより、暗号化／復号化処理における処理速度の低下を防止することができる。
【０００８】
（２）本発明は、耐タンパデバイスと端末とからなるストリーム暗号処理システムであって、前記耐タンパデバイスが、保有する秘密鍵と前記端末から出力された初期値とを入力し、初期化処理を実行して、鍵系列により構成された内部状態を前記端末に出力する鍵系列生成手段を備え、前記端末が、前記耐タンパデバイスから入力した内部状態を入力し、ストリーム暗号の暗号化あるいは復号化処理を行うストリーム暗号処理手段を備えたことを特徴とするストリーム暗号処理システムを提案している。
【０００９】
この発明によれば、耐タンパデバイスの鍵系列生成手段が、保有する秘密鍵と端末から出力された初期値とを入力し、初期化処理を実行して、鍵系列により構成された内部状態を端末に出力する。一方、端末のストリーム暗号処理手段が、耐タンパデバイスから入力した内部状態を入力し、ストリーム暗号の暗号化あるいは復号化処理を行う。すなわち、初期化処理を耐タンパデバイス内で実行し、さらに、初期化処理において、ストリーム暗号アルゴリズムを階層化することによって、内部状態から秘密鍵を容易に推定できないようにすることができる。また、暗号化／復号化処理を端末で実行することにより、暗号化／復号化処理における処理速度の低下を防止することができる。
【００１０】
（３）本発明は、ストリーム暗号の初期化処理を実行する耐タンパデバイスであって、保有する秘密鍵と外部から入力された初期値とを結合して、対応するハッシュ値を初期鍵として出力するハッシュ関数処理手段と、該初期鍵と前記外部から入力された初期値とに基づいて、ストリーム暗号の初期化処理を実行し、初期化処理後の内部状態を外部に出力する初期化処理手段と、を備えたことを特徴とする耐タンパデバイスを提案している。
【００１１】
この発明によれば、耐タンパデバイスのハッシュ関数処理手段が、保有する秘密鍵と外部から入力された初期値とを結合して、対応するハッシュ値を初期鍵として出力し、初期化処理手段が、初期鍵と外部から入力された初期値とに基づいて、ストリーム暗号の初期化処理を実行し、初期化処理後の内部状態を外部に出力する。したがって、初期化処理を耐タンパデバイス内で実行し、さらに、初期化処理において、ストリーム暗号アルゴリズムを階層化することによって、内部状態から秘密鍵を容易に推定できないようにすることができる。
【００１２】
（４）本発明は、ストリーム暗号の初期化処理を実行する耐タンパデバイスであって、保有する秘密鍵と外部から入力された初期値とを結合して、初期化処理を実行し、鍵系列により構成された内部状態を外部に出力する鍵系列生成手段を備えたことを特徴とする耐タンパデバイスを提案している。
【００１３】
この発明によれば、耐タンパデバイスの鍵系列生成手段が、保有する秘密鍵と外部から入力された初期値とを結合して、初期化処理を実行し、鍵系列により構成された内部状態を外部に出力する。したがって、初期化処理を耐タンパデバイス内で実行し、さらに、初期化処理において、ストリーム暗号アルゴリズムを階層化することによって、内部状態から秘密鍵を容易に推定できないようにすることができる。
【００１４】
（５）本発明は、耐タンパデバイスと端末とからなるストリーム暗号処理システムにおけるストリーム暗号処理方法であって、前記端末が前記耐タンパデバイスに初期値を出力する第１のステップと、前記耐タンパデバイスが、入力した初期値と保有する秘密鍵とを結合してハッシュ関数に入力する第２のステップと、前記耐タンパデバイスが、前記ハッシュ関数の出力値を初期鍵とし、該初期鍵と前記端末から入力した初期値とをストリーム暗号に入力して、初期化処理を実行する第３のステップと、前記耐タンパデバイスが、初期化処理終了後の内部状態を前記端末に出力する第４のステップと、前記端末が、入力した内部状態をストリーム暗号に入力する第５のステップと、前記端末が、ストリーム暗号処理を実行して暗号化あるいは復号化を行う第６のステップと、を備えたことを特徴とするストリーム暗号処理方法を提案している。
【００１５】
この発明によれば、端末が耐タンパデバイスに初期値を出力する。耐タンパデバイスは、入力した初期値と保有する秘密鍵とを結合してハッシュ関数に入力する。また、耐タンパデバイスは、ハッシュ関数の出力値を初期鍵とし、初期鍵と記端末から入力した初期値とをストリーム暗号に入力して、初期化処理を実行し、初期化処理終了後の内部状態を端末に出力する。一方、端末は、入力した内部状態をストリーム暗号に入力し、ストリーム暗号処理を実行して暗号化あるいは復号化を行う。すなわち、初期化処理を耐タンパデバイス内で実行し、さらに、初期化処理において、一方向性のハッシュ関数を追加することにより、内部状態から秘密鍵を容易に推定できないようにすることができる。また、暗号化／復号化処理を端末で実行することにより、暗号化／復号化処理における処理速度の低下を防止することができる。
【００１６】
（６）本発明は、耐タンパデバイスと端末とからなるストリーム暗号処理システムにおけるストリーム暗号処理方法であって、前記端末が前記耐タンパデバイスに初期値を出力する第１のステップと、前記耐タンパデバイスが、入力した初期値と保有する秘密鍵とをストリーム暗号に入力して初期化処理を実行する第２のステップと、前記耐タンパデバイスが、初期化したストリーム暗号を作動させ、内部状態と同じビット長を有する鍵系列を生成する第３のステップと、前記耐タンパデバイスが、該生成した鍵系列を前記端末に出力する第４のステップと、前記端末が、入力した該鍵系列を内部状態としてストリーム暗号に入力する第５のステップと、前記端末が、ストリーム暗号処理を実行して暗号化あるいは復号化を行う第６のステップと、を備えたことを特徴とするストリーム暗号処理方法を提案している。
【００１７】
この発明によれば、端末が耐タンパデバイスに初期値を出力する。耐タンパデバイスは、入力した初期値と保有する秘密鍵とをストリーム暗号に入力して初期化処理を実行する。そして、初期化したストリーム暗号を作動させ、内部状態と同じビット長を有する鍵系列を生成し、生成した鍵系列を端末に出力する。一方、端末は、入力した鍵系列を内部状態としてストリーム暗号に入力し、ストリーム暗号処理を実行して暗号化あるいは復号化を行う。すなわち、初期化処理を耐タンパデバイス内で実行し、さらに、初期化処理において、ストリーム暗号アルゴリズムを階層化することによって、内部状態から秘密鍵を容易に推定できないようにすることができる。また、暗号化／復号化処理を端末で実行することにより、暗号化／復号化処理における処理速度の低下を防止することができる。
【発明の効果】
【００１８】
本発明によれば、初期化処理を耐タンパデバイス内で実行し、さらに、初期化処理において、一方向性のハッシュ関数を追加することにより、内部状態から秘密鍵を容易に推定できないようにすることができるという効果がある。また、暗号化／復号化処理を端末で実行することにより、暗号化／復号化処理における処理速度の低下を防止することができるという効果がある。さらに、初期化処理を耐タンパデバイス内で実行し、さらに、初期化処理において、ストリーム暗号アルゴリズムを階層化することによって、内部状態から秘密鍵を容易に推定できないようにすることができるという効果がある。
【図面の簡単な説明】
【００１９】
【図１】第１の実施形態に係るストリーム暗号処理システムの構成図である。
【図２】第１の実施形態に係るストリーム暗号処理システムの処理フローである。
【図３】第２の実施形態に係るストリーム暗号処理システムの構成図である。
【図４】第２の実施形態に係るストリーム暗号処理システムの処理フローである。
【発明を実施するための形態】
【００２０】
以下、図面を用いて、本発明の実施形態について詳細に説明する。
なお、本実施形態における構成要素は適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組み合わせを含む様々なバリエーションが可能である。したがって、本実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
【００２１】
＜第１の実施形態＞
図１及び図２を用いて、第１の実施形態について説明する。なお、本実施形態においては、耐タンパデバイスとしてＩＣカードを、端末としてパーソナルコンピュータを例示して説明するが、ＩＣチップやその他の耐タンパデバイス及び携帯電話やその他の端末についても同様に適用が可能である。
【００２２】
＜ストリーム暗号処理システムの構成＞
本実施形態に係るストリーム暗号処理システムは、図１に示すように、耐タンパデバイスとしてのＩＣカード１００と、端末としてのパーソナルコンピュータ（ＰＣ）２００とから構成されている。また、ＩＣカード１００は、秘密鍵記憶部１０１と、ハッシュ関数処理部１０２と、初期化処理部１０３とを備え、パーソナルコンピュータ（ＰＣ）２００は、初期値生成部２０１と、ストリーム暗号処理部２０２とを備えている。
【００２３】
こうした構成により、初期化処理を耐タンパ性を有するＩＣカード１００内で実行するとともに、ストリーム暗号の暗号化／復号化処理を処理速度の高いパーソナルコンピュータ（ＰＣ）２００内で実行する。
【００２４】
ここで、ＩＣカード１００内の秘密鍵記憶部１０１は、初期化処理に用いる秘密鍵を格納する。ハッシュ関数処理部１０２は、パーソナルコンピュータ（ＰＣ）２００から入力した初期値と秘密鍵記憶部１０１に格納された秘密鍵とを結合して、一方向性ハッシュ関数により初期鍵を生成する。初期化処理部１０３は、ハッシュ関数処理部１０２から出力される初期鍵とパーソナルコンピュータ（ＰＣ）２００から入力した初期値とを入力し、ストリーム暗号による初期化処理を実行し、内部状態をパーソナルコンピュータ（ＰＣ）２００に出力する。
【００２５】
また、パーソナルコンピュータ（ＰＣ）２００内の初期値生成部２０１は、初期化処理に必要な初期値を生成し、ＩＣカード１００に出力する。ストリーム暗号処理部２０２は、ＩＣカード１００から内部状態を入力し、ストリーム暗号の暗号化／復号化処理を実行する。
【００２６】
＜ストリーム暗号処理システムの処理＞
次に、図２を用いて、本実施形態に係るストリーム暗号処理システムの処理について説明する。
まず、パーソナルコンピュータ（ＰＣ）２００は、初期値生成部２０１において生成した初期値をＩＣカード１００に入力する（ステップＳ１０１）。ＩＣカード１００は、入力された初期値と秘密鍵記憶部１０１に格納された秘密鍵とを結合し、ハッシュ関数処理部１０２に入力する（ステップＳ１０２）。
【００２７】
さらに、ハッシュ関数処理部１０２の出力値を初期鍵とし、パーソナルコンピュータ（ＰＣ）２００から入力した初期値を初期値として、初期化処理部１０３に入力し、初期化処理を行う（ステップ１０３）。そして、初期化処理終了後の内部状態をパーソナルコンピュータ（ＰＣ）２００に出力する(ステップ１０４)。
【００２８】
一方、パーソナルコンピュータ（ＰＣ）２００は、入力した内部状態をストリーム暗号処理部２０２に入力し（ステップＳ１０５）、ストリーム暗号を実行して、暗号化／復号化処理を行う（ステップＳ１０６）。
【００２９】
したがって、本実施形態によれば、初期化処理を耐タンパデバイス（ＩＣカード１００）内で実行し、さらに、初期化処理において、一方向性のハッシュ関数を追加することにより、内部状態から秘密鍵を容易に推定できないようにすることができる。また、暗号化／復号化処理を端末（パーソナルコンピュータ（ＰＣ）２００）で実行することにより、暗号化／復号化処理における処理速度の低下を防止することができる。
【００３０】
＜第２の実施形態＞
次に、図３及び図４を用いて、第２の実施形態について説明する。なお、本実施形態においても題１の実施形態と同様に、耐タンパデバイスとしてＩＣカードを、端末としてパーソナルコンピュータを例示して説明するが、ＩＣチップやその他の耐タンパデバイス及び携帯電話やその他の端末についても同様に適用が可能である。
【００３１】
＜ストリーム暗号処理システムの構成＞
本実施形態に係るストリーム暗号処理システムは、図３に示すように、耐タンパデバイスとしてのＩＣカード１００と、端末としてのパーソナルコンピュータ（ＰＣ）２００とから構成されている。また、ＩＣカード１００は、秘密鍵記憶部１０１と、鍵系列生成部１０４とを備え、パーソナルコンピュータ（ＰＣ）２００は、初期値生成部２０１と、ストリーム暗号処理部２０２とを備えている。
【００３２】
こうした構成により、初期化処理を耐タンパ性を有するＩＣカード１００内で実行するとともに、ストリーム暗号の暗号化／復号化処理を処理速度の高いパーソナルコンピュータ（ＰＣ）２００内で実行する。なお、第１の実施形態と同一の符号を付す構成要素については、同一の機能を有するものであるから、詳細な説明は、省略する。
【００３３】
ここで、ＩＣカード１００内の鍵系列生成部１０４は、秘密鍵記憶部１０１に格納された秘密鍵とパーソナルコンピュータ（ＰＣ）２００から入力した初期値とを入力し、ストリーム暗号による初期化処理を実行し、内部状態と同じビット長を有する鍵系列を生成して、パーソナルコンピュータ（ＰＣ）２００に出力する。
【００３４】
＜ストリーム暗号処理システムの処理＞
次に、図４を用いて、本実施形態に係るストリーム暗号処理システムの処理について説明する。
まず、パーソナルコンピュータ（ＰＣ）２００は、初期値生成部２０１において生成した初期値をＩＣカード１００に入力する（ステップＳ２０１）。ＩＣカード１００は、入力された初期値と秘密鍵記憶部１０１に格納された秘密鍵とを鍵系列生成部１０４に入力して、初期化処理を実行する（ステップＳ２０２）。
【００３５】
さらに、鍵系列生成部１０４は、初期化したストリーム暗号を動作させ、内部状態と同じビット長を有する鍵系列を生成する（ステップ２０３）。そして、生成した鍵系列をパーソナルコンピュータ（ＰＣ）２００に出力する(ステップ２０４)。
【００３６】
一方、パーソナルコンピュータ（ＰＣ）２００は、入力した鍵系列を内部状態としてストリーム暗号処理部２０２に入力し（ステップＳ２０５）、ストリーム暗号を実行して、暗号化／復号化処理を行う（ステップＳ２０６）。
【００３７】
したがって、本実施形態によれば、初期化処理を耐タンパデバイス（ＩＣカード１００）内で実行し、さらに、初期化処理において、一方向性のハッシュ関数を追加することにより、内部状態から秘密鍵を容易に推定できないようにすることができる。また、暗号化／復号化処理を端末（パーソナルコンピュータ（ＰＣ）２００）で実行することにより、暗号化／復号化処理における処理速度の低下を防止することができる。
【００３８】
以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【００３９】
１００・・・ＩＣカード、１０１・・・秘密鍵記憶部、１０２・・・ハッシュ関数処理部、１０３・・・初期化処理部、１０４・・・鍵系列生成部、２００・・・パーソナルコンピュータ（ＰＣ）、２０１・・・初期値生成部、２０２・・・ストリーム暗号処理部
【図１】
0005882797.tif 000002
【図２】
0005882797.tif 000003
【図３】
0005882797.tif 000004
【図４】
0005882797.tif 000005