(57)【特許請求の範囲】
【請求項１】
他の通信装置と暗号化されたデータの送受信を行う通信処理部と、
前記他の通信装置と暗号化されたデータの送受信で使用する暗号鍵に基づいて生成された第１の暗号データを記憶する記憶部と、
前記他の通信装置から前記通信処理部を介して受信した認証データと当該通信装置の認証データが一致するかどうか比較する認証処理部と、
認証データが一致した場合に、前記記憶部に記憶されている第１の暗号データと前記認証データとに基づいて暗号鍵を生成し、前記認証データと前記暗号鍵とに基づいて第２の暗号データを生成し、前記第２の暗号データを前記第１の暗号データとして前記記憶部に記憶させるとともに、前記通信処理部を介して前記他の通信装置と前記暗号鍵を使用してデータを暗号化するデータ暗号化部と、を備えたことを特徴とする通信装置。
【請求項２】
前記データ暗号化部は、前記認証データと前記暗号鍵とに基づいてハッシュ計算により第２の暗号データを生成することを特徴とする請求項１記載の通信装置。
【請求項３】
通信装置と他の通信装置と暗号化されたデータの送受信を行う通信方法であって、
認証処理部が、前記通信装置の認証データと前記他の通信装置から受信した認証データとが一致するかどうか比較する第１ステップと、
データ暗号化部は、認証データが一致した場合に、記憶されている第１の暗号データと前記認証データとに基づいて暗号鍵を生成し、前記認証データと前記暗号鍵とに基づいて第２の暗号データを生成し、前記第２の暗号データを前記第１の暗号データとして記憶し、前記他の通信装置と前記暗号鍵を使用してデータを暗号化する第２ステップと、を備えたことを特徴とする通信方法。
【請求項４】
前記第２ステップにおいて、前記データ暗号化部は、前記認証データと前記暗号鍵とに基づいてハッシュ計算により第２の暗号データを生成することを特徴とする請求項３記載の通信方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、インターネット上で秘匿性の高いデータや著作権を保護する必要のあるデータを送受信する際、通信機器間の暗号通信を行うためのセッション鍵生成方法に関する。
【０００２】
【従来の技術】
近年、インターネット上でデジタルコンテンツ配信サービスが普及しつつある。このデジタルコンテンツは、著作権を保護する必要がある場合、配信路上でコンテンツデータが不正に流出しないよう考慮されなければならない。
【０００３】
一般に、このようなコンテンツデータは、伝送路上で暗号化処理を行って配送される。コンテンツ提供者側が暗号化を行い、暗号化データを受取ったコンテンツ購入者は、暗号データを復号することで購入したコンテンツデータを得ることができる。その際、共通鍵暗号を使用する場合は、提供者、購入者双方で共通暗号用の共通鍵を保持しなければならない。この共通鍵は、一般に通信のセッション毎に生成されるため、セッション鍵と呼ばれる。セッション毎に生成される理由は、不正を働く購入者が不正を可能とする機器（不正端末）、提供者の機器（サーバ）にアクセスし、セッション鍵を解読した場合、それ以降、不正にコンテンツデータを入手しつづけることが可能となるためである。したがって、このような不正の流出を防ぐためには、セッション鍵の生成過程で、正しい購入者であることを認識した上でセッション鍵を生成し、サーバ−端末間で安全にセッション鍵を共有しなければならない。
【０００４】
以下、従来技術としてサーバ−端末間でのセッション鍵の共有方法について説明する。
【０００５】
図１０は、従来技術のセッション鍵生成を保有する情報機器の構成図である。
【０００６】
全体の構成としては、モデムなど通信を行うための通信処理部１０１とキーボードやマウスといった入力装置１０２とスケジュールを行う条件の入力や結果を表示する表示装置１０３と中央処理装置（ＣＰＵ）１０４、そして、処理中のプログラムや値を一時的に記憶する主記憶装置１０５、そして、プログラムと処理途中のデータを保存したり記憶するための二次記憶装置１０６から構成される。二次記憶装置１０６は、認証処理部１０７と暗号処理部１０８、セッション鍵生成部１０９から成る。
【０００７】
次に、従来技術におけるセッション鍵生成の処理の流れを図１１から図１３を使用して説明する。
【０００８】
図１１は、通信機器である端末、サーバ間でのセッション鍵生成までの概要を示すフローチャートである。
【０００９】
先ず、双方において、サーバ認証が行われ、続いて端末認証が行われる。認証のアルゴリズムは次に述べるチャレンジ＆レスポンス方式が一般的である。サーバ端末の相互認証が成功した後、双方で共通のセッション鍵を生成し、セッション鍵による暗号化通信を実施する。
【００１０】
図１２は、認証アルゴリズムであるチャレンジ＆レスポンスの処理を示すフローチャートを示す。認証は、サーバ認証と端末認証の２つがあるが、ここでは、サーバ認証を説明する。なお、端末認証では、サーバと端末を入換えた形で同じアルゴリズムが使用されるため省略する。
【００１１】
先ず、最初に、ステップ１１１において、端末内部で乱数を生成する。生成した乱数は、ステップ１１２においてサーバへ送信される。ステップ１１３において、端末内では、生成した乱数に対して一方向性関数Ｇにより演算を行い演算結果を値Ｘとする。続いて、サーバ側では、端末から受信した乱数に対して、上述の一方向性関数と同じ演算Ｇを計算し（Ｓ１１４、Ｓ１１５）、値をＹとする。サーバでの演算結果Ｙを端末へ送信し（Ｓ１１６）、端末において、ステップ１１７においてＸ，Ｙの値を照合する。Ｘ＝Ｙの場合は、ステップ１１８においてサーバ認証成功として処理され、次の処理である端末認証へ移る。また、ステップ１１７において、ＸとＹの値が異なっていれば、サーバ認証失敗として処理され、移行の処理を中止する。同様なフローでサーバと端末を入換えて端末認証が実行される。
【００１２】
続いて、図１３を用いて従来技術におけるセッション鍵の生成方法について説明する。
【００１３】
セッション鍵の生成は、端末、サーバ双方で同じ方法で実施される。例として、端末内でのセッション鍵の生成過程を説明する。図１３は、セッション鍵の処理を示すフローチャートである。
【００１４】
先ず、ステップ１２１において、認証時に得た値Ｘを得る。続いてステップ１２２において、予めサーバと端末で保有する共通の秘密情報Ｚを得る。次に関数Ｆ（Ｘ、Ｚ）によりセッション鍵Ｋｓを計算する（Ｓ１２３、Ｓ１２４）。このようにしてセッション鍵が得られる。
【００１５】
以上が、従来技術におけるセッション鍵生成処理の流れである。
【００１６】
【発明が解決しようとする課題】
従来の方法では、双方で暗号化アルゴリズムを決定し、セッション鍵を生成する際に、正しい相手であることを確認するために、認証時に使用したデータを鍵データに含める方法が一般的であった。しかし、この場合でも、生成されるセッション鍵は、その時々の認証時に不正者のアクセスによって盗み取られる危険性はあるため、正しい端末であることを証明する手がかりにより、更にセキュリティ上強固なセッション鍵の生成方法が望まれる。
【００１７】
そこで、本発明は、セッション鍵の生成方法として、過去に使用したセッション鍵を鍵生成時に用いることで、確実な相手でかつ両者しか知りえない情報によってセッション鍵を生成することを第１の目的とする。
【００１９】
【課題を解決するための手段】
上記第１の目的を達成するために、本発明のセッション鍵生成方法は、暗号化通信を行う処理装置間で、過去に使用したセッション鍵を新たなセッション鍵生成時に用いることにより、確実に正しい相手でかつ両者しか知りえない情報によってセッション鍵を生成する方法が得られる。
【００２１】
【発明の実施の形態】
本発明の請求項１に記載の発明は、他の通信装置と暗号化されたデータの送受信を行う通信処理部と、前記他の通信装置と暗号化されたデータの送受信で使用する暗号鍵に基づいて生成された第１の暗号データを記憶する記憶部と、前記他の通信装置から前記通信処理部を介して受信した認証データと当該通信装置の認証データが一致するかどうか比較する認証処理部と、認証データが一致した場合に、前記記憶部に記憶されている第１の暗号データと前記認証データとに基づいて暗号鍵を生成し、前記認証データと前記暗号鍵とに基づいて第２の暗号データを生成し、前記第２の暗号データを前記第１の暗号データとして前記記憶部に記憶させるとともに、前記通信処理部を介して前記他の通信装置と前記暗号鍵を使用してデータを暗号化するデータ暗号化部と、を備えた通信装置であって、暗号化通信を行う処理装置間で、過去にしようとしたセッション鍵を新たなセッション鍵生成時に用いることにより、確実に正しい相手でかつ両者しか知りえない情報によってセッション鍵を生成することが可能とする作用を有する。また、セッション鍵そのものではなく、認証情報を加えた値を得ることができ、前回のセッション鍵が流出したとしても、このセッション鍵情報のみでは、新しいセッション鍵を求めることができないため、より確実に正しい相手でなければ、セッション鍵を生成は難しくなり、強固なセッション鍵を生成することができる。
【００２２】
本発明の請求項２に記載の発明は、前記データ暗号化部は、前記認証データと前記暗号鍵とに基づいてハッシュ計算により第２の暗号データを生成することを特徴とする通信装置である。
【００２３】
本発明の請求項３に記載の発明は、通信装置と他の通信装置と暗号化されたデータの送受信を行う通信方法であって、認証処理部が、前記通信装置の認証データと前記他の通信装置から受信した認証データとが一致するかどうか比較する第１ステップと、データ暗号化部は、認証データが一致した場合に、記憶されている第１の暗号データと前記認証データとに基づいて暗号鍵を生成し、前記認証データと前記暗号鍵とに基づいて第２の暗号データを生成し、前記第２の暗号データを前記第１の暗号データとして記憶し、前記他の通信装置と前記暗号鍵を使用してデータを暗号化する第２ステップと、を備えた通信方法であって、確実に正しい相手でかつ両者しか知りえない情報によってセッション鍵を生成することが可能とする作用を有する。また、セッション鍵そのものではなく、認証情報を加えた値を得ることができ、前回のセッション鍵が流出したとしても、このセッション鍵情報のみでは、新しいセッション鍵を求めることができないため、より確実に正しい相手でなければ、セッション鍵を生成は難しくなり、強固なセッション鍵を生成することができる。
【００２４】
本発明の請求項４に記載の発明は、前記第２ステップにおいて、前記データ暗号化部は、前記認証データと前記暗号鍵とに基づいてハッシュ計算により第２の暗号データを生成することを特徴とする通信方法である。
【００２５】
以下、本発明の実施の形態について、図１〜図８を用いて説明する。
【００２６】
（実施の形態１）
図１は、本発明の実施の形態１によるセッションキー生成方法を実施するための構成を示すブロック図である。
【００２７】
全体の構成としては、モデムなど通信を行うための通信処理部１と、キーボードやマウスといった入力装置２と、スケジュールを行う条件の入力や結果を表示する表示装置３と、中央処理装置（ＣＰＵ）４と、処理中のプログラムや値を一時的に記憶する主記憶装置５と、そして、プログラムと演算結果を保存したり記憶するための二次記憶装置６とから構成される。二次記憶装置６は、通信相手との認証を行う認証処理部、暗号処理やダイジェスト生成の演算を行う暗号処理部８、セッション鍵生成部９、セッション鍵情報保存部１０、セッション鍵切替えタイミング制御部１１とから成る。
【００２８】
図２は、認証アルゴリズムであるチャレンジ＆レスポンスの処理フローを示す。認証は、サーバ認証と端末認証の２つがあるが、ここでは、サーバ認証を説明する。なお、端末認証では、サーバと端末を入換えた形で同じアルゴリズムが使用されるため省略する。
【００２９】
先ず、最初に、ステップ１１において、端末内部で乱数を生成する。生成した乱数は、ステップ１２において、予めサーバと端末で共有している共通秘密鍵で暗号化し、サーバへ送信される（Ｓ１３）。端末内では、生成した乱数に対して一方向性関数Ｇにより演算を行い演算結果を値Ｘとする（Ｓ１４）。続いて、サーバ側では、端末から受信した暗号化乱数を復号し（Ｓ１５）、上述の一方向性関数Ｇと同じ演算を行い（Ｓ１６、Ｓ１７）、値をＹとする。サーバでの演算結果Ｙを端末へ送信し（Ｓ１８）、端末において、ステップ１９においてＸ，Ｙの値を照合する。Ｘ＝Ｙの場合は、ステップ２１においてサーバ認証成功として処理され、次の処理である端末認証へ移る。また、ステップ１９において、ＸとＹの値が異なっていれば、サーバ認証失敗として処理され、移行の処理を中止する（Ｓ２０）。
【００３０】
同様なフローでサーバと端末を入換えて端末認証が実行される。
【００３１】
以上のように本発明では、チャレンジ＆レスポンスの認証で使用する乱数自身を暗号化して伝送路上に流すことにより、乱数と一方向性関数Ｇの関係を解読しにくい構成とする。
【００３２】
次に、本発明のセッション鍵生成方法について説明する。図３は、セッション鍵の生成方法を示す説明図である。
【００３３】
この方法では、端末サーバ双方で、チャレンジレスポンスによる相互認証を実行し、相互認証の過程で生成した双方で共通した認証情報と、前回生成したセッション鍵を排他的論理和で演算し、その演算結果をセッション鍵として使用するというものである。この方法により、前回の暗号化通信を行った相手でなければ、共通のセッション鍵を生成することはできないため、より確実に正しい相手であることになる。この方法の処理の流れを図４のフローチャートを使用して説明する。なお、端末サーバ双方で同じ処理を行うため、ここでは端末側で行う処理を例に説明する。
【００３４】
先ずステップ３１において、サーバ認証で用いる照合データＹと端末認証で用いる照合データＺを基に、ＹとＺの排他的論理を計算し、その結果をＡＵ１とする。ステップ３２において前回生成し、予め保存したセッション鍵ＫＳ１を二次記憶領域から取り出す。次にステップ３３において、ＡＵ１とＫＳ１の排他的論理を演算し結果をＫＳ２とする。ステップ３４において、ＫＳ２を今回の暗号化通信用のセッション鍵情報として一次記憶領域に保存する。最後にステップ３５において次回のセッション鍵生成時にＫＳ１の値として使用するため、二次記憶領域に保存し、セッション鍵生成の処理が終了する。
【００３５】
以上が、本発明における実施の形態１である。
【００３６】
（実施の形態２）
次に、実施の形態２について図５、図６を用いて説明する。
【００３７】
なお、相互認証の方法は、図２を用いて説明した実施の形態１と同様な方法で行うものとし、ここではセッション鍵生成方法のみを説明する。
【００３８】
図５は、セッション鍵の生成方法を示す説明図である。
【００３９】
この方法では、端末サーバ双方で、チャレンジレスポンスによる相互認証を実行し、相互認証の過程で生成した双方で共通した認証情報と、前回生成したセッション鍵を基に生成した情報からハッシュ演算を行って生成した値とから排他的論理和の演算を行いし、その演算結果をセッション鍵として使用するというものである。この方法により、実施の形態１の方法に加え、セッション鍵そのものではなく、認証情報を加えた値を得ることができ、前回のセッション鍵が流出したとしても、このセッション鍵情報のみでは、新しいセッション鍵を求めることができないため、より確実に正しい相手でなければ、セッション鍵を生成は難しくなり、強固なセッション鍵の生成方法と言える。この方法の処理の流れを図６のフローチャートを使用して説明する。なお、端末サーバ双方で同じ処理を行うため、ここでは端末側で行う処理を例に説明する。
【００４０】
先ずステップ４１において，サーバ認証で用いる照合データＹと端末認証で用いる照合データＺを基に、ＹとＺの排他的論理を計算し、その結果をＡＵ２とする。ステップ４２において前回生成し、予め保存したハッシュ値Ｈ１を二次記憶領域から取り出す。次にステップ４３において、ＡＵ２とＨ１の排他的論理を演算し結果をＫＳ３とする。ステップ４４において、ＫＳ３を今回の暗号化通信用のセッション鍵情報として一次記憶領域に保存する。次にステップ４５において、ＡＵ２とＫＳ３を結合してハッシュ計算を行い値Ｈ２とする。ステップ４６において、Ｈ２を次回のセッション鍵生成時に使用するＨ１の値として使用するため、二次記憶領域に保存し、このセッション鍵生成の処理が終了する。
【００４１】
以上が、本発明の実施の形態２である。
【００４２】
（実施の形態３）
次に、実施の形態３について図７、図８を用いて説明する。
【００４３】
なお、相互認証の方法は、図２を用いて説明した実施の形態１と同様な方法で行うものとし、ここではセッション鍵生成方法のみを説明する。
【００４４】
図７は、セッション鍵の生成方法を示す説明図である。
【００４５】
この方法では、初回に端末サーバ双方で、チャレンジレスポンスによる相互認証を実行し、相互認証の過程で生成した双方で共通した認証情報を基に、セッション鍵を生成し、その後、次回のセッション鍵を生成記憶しておき、次回のセッション鍵として使用する方法である。次回のセッション鍵の生成では、端末側で乱数を生成し、現在のセッション鍵とこの乱数の排他的論理和演算を実行した値を次回のセッション鍵とするものである。この方法により、今回認証をパスしたとしても前回の通信を行った相手でなければ、セッション鍵を入手できないという強固なセッション鍵の生成方法と言える。
【００４６】
この方法の処理の流れを図８のフローチャートを使用して説明する。なお、端末サーバ双方では、乱数生成以外は、同じ処理を行うため、ここでは端末側で行う処理を例に説明する。
【００４７】
また、初回に行う相互認証からのセッション鍵生成は、実施の形態１で説明した、サーバ認証で用いる照合データＹと端末認証で用いる照合データＺを基に、ＹとＺの排他的論理を計算した値ＡＵ１をセッション鍵として使用する。図８のフローチャートは初回移行のセッション鍵生成の説明である。
【００４８】
先ずステップ５１において，予め二次記憶に保存した、次回セッション鍵を取り出す。ステップ５２において現在の暗号化通信でのセッション鍵Ｋ４として一次記憶に保存する。次に、ステップ５３において、端末側で乱数Ｒを生成する。ステップ５４において、サーバに対し乱数Ｒを暗号化して送信する。ステップ５５において、セッション鍵Ｋ４と乱数Ｒとの排他的論理和を計算し次回のセッション鍵Ｋ５とする。ステップ５６において、Ｋ５を２次記憶領域に保存し、このセッション鍵生成の処理が終了する。
【００４９】
以上が、本発明の実施の形態３である。
【００５０】
（実施の形態４）
次に、暗号化通信時にセッション鍵を切替えるためのトリガーをかけずにサーバ端末間でランダムにセッション鍵を切替える方法について説明する。
【００５１】
現在通信を行っているセッション鍵を入力として、データ変換Ｆを行い、双方での通信回数（全ての送受信回数を対象）までを有効とし、通信回数をカウントアップし、算出の通信回数に達した時点でサーバ端末双方でセッション鍵を生成、その後の暗号化通信のセッション鍵とする方法である。
【００５２】
図９は、この方法の説明である。先ず６４ビット長のデータが生成された時点で、サーバ端末双方でこの鍵データを基に変換Ｆにより切替えタイミングを算出する。算出された値になるまで、双方で通信回数のカウントアップを行い、切替えタイミングの値（例えば８７回）に達したら、セッション鍵の再生を実行し、同様に新たに生成されたセッション鍵から変換Ｆによって得られる切替えタイミングまで通信を行う。なお、セッション鍵の生成方法は、実施の形態１〜３で説明した何れかの方法を用いる。
【００５３】
以上が、本発明の実施の形態４である。
【００５４】
【発明の効果】
以上説明したように、本発明の請求項１に記載の通信装置は、暗号化通信を行う処理装置間で、過去に使用したセッション鍵を新たなセッション鍵生成時に用いることで、確実に正しい相手でかつ両者しか知りえない情報によってセッション鍵を生成することができるという有利な効果が得られる。
また、セッション鍵そのものではなく、認証情報を加えた値を得ることができ、前回のセッション鍵が流出したとしても、このセッション鍵情報のみでは、新しいセッション鍵を求めることができないため、より確実に正しい相手でなければ、セッション鍵の生成は難しくなり、強固なセッション鍵を生成することができる。
【００５６】
本発明の請求項３に記載の通信方法は、暗号化通信を行う処理装置間で、過去に使用したセッション鍵を新たなセッション鍵生成時に用いることで、確実に正しい相手でかつ両者しか知りえない情報によってセッション鍵を生成することができるという有利な効果が得られる。
また、セッション鍵そのものではなく、認証情報を加えた値を得ることができ、前回のセッション鍵が流出したとしても、このセッション鍵情報のみでは、新しいセッション鍵を求めることができないため、より確実に正しい相手でなければ、セッション鍵の生成は難しくなり、強固なセッション鍵を生成することができる。
【図面の簡単な説明】
【図１】本発明のシステム構成図
【図２】本発明におけるチャレンジ＆レスポンスの処理フローチャート
【図３】本発明の実施の形態１におけるセッション鍵生成方法説明図
【図４】本発明の実施の形態１におけるセッション鍵までの処理フローチャート
【図５】本発明の実施の形態２におけるセッション鍵生成方法説明図
【図６】本発明の実施の形態２におけるセッション鍵までの処理フローチャート
【図７】本発明の実施の形態３におけるセッション鍵生成方法説明図
【図８】本発明の実施の形態３におけるセッション鍵までの処理フローチャート
【図９】鍵切替えタイミングの説明図
【図１０】従来のセッション鍵生成方法を搭載した装置を示すブロック図
【図１１】従来のセッション鍵生成方法の処理の概要図
【図１２】従来の認証処理の詳細フローチャート
【図１３】従来のセッション鍵生成処理の詳細フローチャート
【符号の説明】
１  通信処理部
２  入力装置
３  表示装置
４  中央処理装置（ＣＰＵ）
５  主記憶装置
６  二次記憶装置
７  認証処理部
８  暗号処理部
９  セッション鍵生成部
１０  セッション鍵情報保存部
１１  セッション鍵切替えタイミング制御部
【図１】
0004604418.tif 000002
【図２】
0004604418.tif 000003
【図３】
0004604418.tif 000004
【図４】
0004604418.tif 000005
【図５】
0004604418.tif 000006
【図６】
0004604418.tif 000007
【図７】
0004604418.tif 000008
【図８】
0004604418.tif 000009
【図９】
0004604418.tif 000010
【図１０】
0004604418.tif 000011
【図１１】
0004604418.tif 000012
【図１２】
0004604418.tif 000013
【図１３】
0004604418.tif 000014