(57)【要約】【課題】通信システムにおいて、情報の伝送を安全に行う。【解決手段】PEDでは、秘密値発生部５２は、秘密値xを発生し、公開値算出部５４は、秘密値x、および既定値nおよびgを用いて所定の演算を行い、ICカードに送信する公開値Xを求め、暗号鍵算出部５５は、秘密値x、ICカードから送信されてくる公開値Y、および既定値nを用いて所定の演算を行うことにより、暗号鍵kを生成する。ICカードでは、秘密値発生部７２は、秘密値yを発生し、公開値算出部７４は、秘密値y、および既定値nおよびgを用いて所定の演算を行い、PEDに送信する公開値Yを求め、暗号鍵生成部７５は、秘密値y、PEDから送信されてくる公開値X、および既定値nを用いて所定の演算を行うことにより、暗号鍵k'を生成する。本発明は、例えば、PEDやICカード等の通信装置からなる通信システムに適用できる。【選択図】図３
2007288254.tif 000002
【特許請求の範囲】
【請求項１】
無線通信を行う第１と第２の通信装置からなる通信システムにおいて、
前記第１の通信装置は、
外部に秘密の第１の秘密値を発生する第１の秘密値発生手段と、
前記第１の秘密値、および既知の２つの既定値を用いて所定の演算を行い、前記第２の通信装置に送信する第１の公開値を求める第１の演算手段と、
前記第１の秘密値、前記第２の通信装置から送信されてくる第２の公開値、および前記２つの既定値のうちの一方の既定値を用いて前記所定の演算を行うことにより、前記第２の通信装置との間の暗号通信に用いる暗号鍵を生成する第１の暗号鍵生成手段と
を備え、
前記第２の通信装置は、
外部に秘密の第２の秘密値を発生する第２の秘密値発生手段と、
前記第２の秘密値、および前記２つの既定値を用いて前記所定の演算を行い、前記第１の通信装置に送信する前記第２の公開値を求める第２の演算手段と、
前記第２の秘密値、前記第１の通信装置から送信されてくる第１の公開値、および前記一方の既定値を用いて前記所定の演算を行うことにより、前記第１の通信装置との間の暗号通信に用いる前記暗号鍵を生成する第２の暗号鍵生成手段と
を備える
通信システム。
【請求項２】
他の通信装置と無線通信を行う通信装置において、
外部に秘密の第１の秘密値を発生する秘密値発生手段と、
前記第１の秘密値、および既知の２つの既定値を用いて所定の演算を行い、前記他の通信装置に送信する第１の公開値を求める演算手段と、
前記第１の秘密値、前記他の通信装置から送信されてくる、外部に秘密の第２の秘密値および前記２つの既定値を用いて前記所定の演算を行うことにより求められた第２の公開値、並びに前記２つの既定値のうちの一方の既定値を用いて前記所定の演算を行うことにより、前記他の通信装置との間の暗号通信に用いる暗号鍵を生成する暗号鍵生成手段と
を備える通信装置。
【請求項３】
PIDを記憶しているPID記憶手段と、
前記他の通信装置から送信されてくる、ユーザが入力したPIDを暗号化した暗号化PIDを、前記暗号鍵を用いて、PIDに復号する復号手段と、
前記記憶手段に記憶されているPIDと、前記復号手段が復号したPIDとが一致するかどうかを判定する判定手段と
をさらに備え、
前記記憶手段に記憶されているPIDと、前記復号手段が復号したPIDとが一致する場合、前記他の通信装置との通信を続行する
請求項２に記載の通信装置。
【請求項４】
PIDを入力するときに操作される操作手段と、
前記操作手段が操作されることにより入力されたPIDを、前記暗号鍵を用いて、暗号化PIDに暗号化する暗号化手段と
をさらに備え、
前記暗号化PIDを、前記他の通信装置に送信する
請求項２に記載の通信装置。
【請求項５】
他の通信装置と無線通信を行う通信装置の通信方法において、
外部に秘密の第１の秘密値を発生し、
前記第１の秘密値、および既知の２つの既定値を用いて所定の演算を行い、前記他の通信装置に送信する第１の公開値を求め、
前記第１の秘密値、前記他の通信装置から送信されてくる、外部に秘密の第２の秘密値および前記２つの既定値を用いて前記所定の演算を行うことにより求められた第２の公開値、並びに前記２つの既定値のうちの一方の既定値を用いて前記所定の演算を行うことにより、前記他の通信装置との間の暗号通信に用いる暗号鍵を生成する
ステップを含む通信方法。
【請求項６】
他の通信装置と無線通信を行う通信装置を制御するコンピュータに実行させるプログラムにおいて、
外部に秘密の第１の秘密値を発生し、
前記第１の秘密値、および既知の２つの既定値を用いて所定の演算を行い、前記他の通信装置に送信する第１の公開値を求め、
前記第１の秘密値、前記他の通信装置から送信されてくる、外部に秘密の第２の秘密値および前記２つの既定値を用いて前記所定の演算を行うことにより求められた第２の公開値、並びに前記２つの既定値のうちの一方の既定値を用いて前記所定の演算を行うことにより、前記他の通信装置との間の暗号通信に用いる暗号鍵を生成する
ステップを含むプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システム、通信装置および方法、並びにプログラムに関し、特に、例えば、ICカードやPED等から構成される無線通信システムにおいて、情報の伝送を安全に行う通信システム、通信装置および方法、並びにプログラムに関する。
【背景技術】
【０００２】
IC(Integrated Circuit)カードは、予め登録された正規のユーザのみに対して使用を許可し、正規のユーザ以外のユーザ（第三者）に対して使用を許可しないようにする必要がある。第三者によるICカードの不正使用を防ぐために、ICカードは、ユーザに対してPIN(Personal Identification Number)（暗証番号とも呼ばれる）等のPID(Personal Identifier)の入力を要求し、その要求に応じて入力されたPIDが正規のユーザのPIDであることを確認（認証）した場合にのみ、ユーザに使用を許可する。
【０００３】
ユーザが、例えば、PIN入力装置（PED(PIN Entry Device)）のテンキーパッドやキーボードを操作してPINをPEDに入力すると、入力されたPINは、PEDから、例えば、PEDの内部のリーダライタを経由してICカードに伝送され、ICカードに記憶されているPINと照合される。PINが、PEDからICカードに伝送される途中で悪意のある第三者に漏洩すると、その第三者が、漏洩したPINを用いて、ICカードを不正に使用する可能性がある。そのような事態を防ぐために、PEDからICカードに伝送されるPINを、第三者から保護する必要がある。
【０００４】
従来、PEDからICカードに伝送されるPINを保護する方法としては、PEDからICカードまでの伝送経路を盗聴等の第三者の攻撃から物理的に保護した状態で、PINを平文で伝送する方法や、PEDでPINを暗号化した暗号化PINを、PEDからICカードに伝送してICカード内でPINに復号する方法（例えば、特許文献１参照）等があった。
【０００５】
【特許文献１】特許第２０３９８６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
PEDからICカードまでの伝送経路を盗聴等から物理的に保護した状態で、PINを平文で伝送する方法は、ICカードをICカードのリーダライタに電気的に接触させて、PEDからICカードにデータを電気的に伝送する方式のICカード、いわゆる接触型ICカードで実現されている。
【０００７】
しかしながら、ICカードとICカードのリーダライタとが電気的に非接触の状態で、無線によって、PEDからICカードにデータを伝送する方式のICカード、いわゆる非接触型ICカードでは、無線（電波）を離れた場所で傍受するという盗聴が原理的に可能であり、PEDからICカードまでの伝送経路を物理的に保護することが難しい。
【０００８】
また、PEDでPINを暗号化した暗号化PINを、PEDからICカードに伝送してICカード内でPINに復号する方法は、PEDでの暗号化およびICカードでの復号に用いられる共通の暗号鍵が、PEDおよびICカードで予め保持される必要があるため、セキュリティリスクを考慮すると、限られた用途以外では、採用することが困難である。
【０００９】
即ち、様々なベンダーによって運用されるPEDと、様々な発行者によって発行されるICカードとが想定される汎用的な用途では、暗号鍵の配布や保管の際に、第三者の攻撃によってセキュリティの脆弱な装置から情報が漏洩するといった重大なセキュリティリスクが存在する。従って、汎用的な用途では、PEDとICカードに共通の暗号鍵を記憶させておき、PEDでPINを暗号化した暗号化PINを、PEDからICカードに伝送してICカード内でPINに復号する方法を採用することは好ましくない。
【００１０】
本発明は、このような状況に鑑みてなされたものであり、無線で平文を伝送することで生じる盗聴の脅威や、暗号鍵の共有から生じるセキュリティリスクを回避し、PID等の情報の伝送を安全に行うことができるようにするものである。
【課題を解決するための手段】
【００１１】
本発明の第１の側面の通信システムは、無線通信を行う第１と第２の通信装置からなる通信システムにおいて、前記第１の通信装置は、外部に秘密の第１の秘密値を発生する第１の秘密値発生手段と、前記第１の秘密値、および既知の２つの既定値を用いて所定の演算を行い、前記第２の通信装置に送信する第１の公開値を求める第１の演算手段と、前記第１の秘密値、前記第２の通信装置から送信されてくる第２の公開値、および前記２つの既定値のうちの一方の既定値を用いて前記所定の演算を行うことにより、前記第２の通信装置との間の暗号通信に用いる暗号鍵を生成する第１の暗号鍵生成手段とを備え、前記第２の通信装置は、外部に秘密の第２の秘密値を発生する第２の秘密値発生手段と、前記第２の秘密値、および前記２つの既定値を用いて前記所定の演算を行い、前記第１の通信装置に送信する前記第２の公開値を求める第２の演算手段と、前記第２の秘密値、前記第１の通信装置から送信されてくる第１の公開値、および前記一方の既定値を用いて前記所定の演算を行うことにより、前記第１の通信装置との間の暗号通信に用いる前記暗号鍵を生成する第２の暗号鍵生成手段とを備える。
【００１２】
本発明の第２の側面の通信装置は、他の通信装置と無線通信を行う通信装置において、外部に秘密の第１の秘密値を発生する秘密値発生手段と、前記第１の秘密値、および既知の２つの既定値を用いて所定の演算を行い、前記他の通信装置に送信する第１の公開値を求める演算手段と、前記第１の秘密値、前記他の通信装置から送信されてくる、外部に秘密の第２の秘密値および前記２つの既定値を用いて前記所定の演算を行うことにより求められた第２の公開値、並びに前記２つの既定値のうちの一方の既定値を用いて前記所定の演算を行うことにより、前記他の通信装置との間の暗号通信に用いる暗号鍵を生成する暗号鍵生成手段とを備える。
【００１３】
本発明の第２の側面の通信装置には、PIDを記憶しているPID記憶手段と、前記他の通信装置から送信されてくる、ユーザが入力したPIDを暗号化した暗号化PIDを、前記暗号鍵を用いて、PIDに復号する復号手段と、前記記憶手段に記憶されているPIDと、前記復号手段が復号したPIDとが一致するかどうかを判定する判定手段とをさらに設け、前記記憶手段に記憶されているPIDと、前記復号手段が復号したPIDとが一致する場合、前記他の通信装置との通信を続行させることができる。
【００１４】
本発明の第２の側面の通信装置には、PIDを入力するときに操作される操作手段と、前記操作手段が操作されることにより入力されたPIDを、前記暗号鍵を用いて、暗号化PIDに暗号化する暗号化手段とをさらに設け、前記暗号化PIDを、前記他の通信装置に送信させることができる。
【００１５】
本発明の第２の側面の通信方法、またはプログラムは、他の通信装置と無線通信を行う通信装置の通信方法、またはプログラムにおいて、外部に秘密の第１の秘密値を発生し、前記第１の秘密値、および既知の２つの既定値を用いて所定の演算を行い、前記他の通信装置に送信する第１の公開値を求め、前記第１の秘密値、前記他の通信装置から送信されてくる、外部に秘密の第２の秘密値および前記２つの既定値を用いて前記所定の演算を行うことにより求められた第２の公開値、並びに前記２つの既定値のうちの一方の既定値を用いて前記所定の演算を行うことにより、前記他の通信装置との間の暗号通信に用いる暗号鍵を生成するステップを含む。
【００１６】
本発明の第１の側面においては、前記第１の通信装置では、外部に秘密の第１の秘密値が発生され、前記第１の秘密値、および既知の２つの既定値を用いて所定の演算を行うことにより、前記第２の通信装置に送信する第１の公開値が求められる。そして、前記第１の秘密値、前記第２の通信装置から送信されてくる第２の公開値、および前記２つの既定値のうちの一方の既定値を用いて前記所定の演算が行われることにより、前記第２の通信装置との間の暗号通信に用いる暗号鍵が生成される。前記第２の通信装置では、外部に秘密の第２の秘密値が発生され、前記第２の秘密値、および前記２つの既定値を用いて前記所定の演算を行うことにより、前記第１の通信装置に送信する前記第２の公開値が求められる。そして、前記第２の秘密値、前記第１の通信装置から送信されてくる第１の公開値、および前記一方の既定値を用いて前記所定の演算が行われることにより、前記第１の通信装置との間の暗号通信に用いる前記暗号鍵が生成される。
【００１７】
本発明の第２の側面においては、外部に秘密の第１の秘密値が発生され、前記第１の秘密値、および既知の２つの既定値を用いて所定の演算を行うことにより、前記他の通信装置に送信する第１の公開値が求められる。そして、前記第１の秘密値、前記他の通信装置から送信されてくる、外部に秘密の第２の秘密値および前記２つの既定値を用いて前記所定の演算を行うことにより求められた第２の公開値、並びに前記２つの既定値のうちの一方の既定値を用いて前記所定の演算を行うことにより、前記他の通信装置との間の暗号通信に用いる暗号鍵が生成される。
【発明の効果】
【００１８】
本発明の第１および第２の側面によれば、情報の伝送を安全に行うことができる。
【発明を実施するための最良の形態】
【００１９】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書又は図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書又は図面に記載されていることを確認するためのものである。従って、明細書又は図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００２０】
本発明の第１の側面の通信システム（例えば、図１の無線通信システム１）は、無線通信を行う第１と第２の通信装置からなる通信システムにおいて、前記第１の通信装置（例えば、図１のＰＥＤ１１）は、外部に秘密の第１の秘密値を発生する第１の秘密値発生手段（例えば、図３の秘密値発生部５２）と、前記第１の秘密値、および既知の２つの既定値を用いて所定の演算を行い、前記第２の通信装置に送信する第１の公開値を求める第１の演算手段（例えば、図３の公開値算出部５４）と、前記第１の秘密値、前記第２の通信装置から送信されてくる第２の公開値、および前記２つの既定値のうちの一方の既定値を用いて前記所定の演算を行うことにより、前記第２の通信装置との間の暗号通信に用いる暗号鍵を生成する第１の暗号鍵生成手段（例えば、図３の暗号鍵算出部５５）とを備え、前記第２の通信装置（例えば、図１のICカード１２）は、外部に秘密の第２の秘密値を発生する第２の秘密値発生手段（例えば、図３の秘密値発生部７２）と、前記第２の秘密値、および前記２つの既定値を用いて前記所定の演算を行い、前記第１の通信装置に送信する前記第２の公開値を求める第２の演算手段（例えば、図３の公開値算出部７４）と、前記第２の秘密値、前記第１の通信装置から送信されてくる第１の公開値、および前記一方の既定値を用いて前記所定の演算を行うことにより、前記第１の通信装置との間の暗号通信に用いる前記暗号鍵を生成する第２の暗号鍵生成手段（例えば、図３の暗号鍵算出部７５）とを備える。
【００２１】
本発明の第２の側面の通信装置（例えば、図１のPED１１またはICカード１２）は、他の通信装置（例えば、図１のICカード１２またはPED１１）と無線通信を行う通信装置において、外部に秘密の第１の秘密値を発生する秘密値発生手段（例えば、図３の秘密値発生部５２）と、前記第１の秘密値、および既知の２つの既定値を用いて所定の演算を行い、前記他の通信装置に送信する第１の公開値を求める演算手段（例えば、図３の公開値算出部５４）と、前記第１の秘密値、前記他の通信装置から送信されてくる、外部に秘密の第２の秘密値および前記２つの既定値を用いて前記所定の演算を行うことにより求められた第２の公開値、並びに前記２つの既定値のうちの一方の既定値を用いて前記所定の演算を行うことにより、前記他の通信装置との間の暗号通信に用いる暗号鍵を生成する暗号鍵生成手段（例えば、図３の暗号鍵算出部５５）とを備える。
【００２２】
本発明の第２の側面の通信装置（例えば、図１のICカード１２）には、PIDを記憶しているPID記憶手段（例えば、図２の照合部３３）と、前記他の通信装置（例えば、図１のPED１１）から送信されてくる、ユーザが入力したPIDを暗号化した暗号化PIDを、前記暗号鍵を用いて、PIDに復号する復号手段（例えば、図２の復号部３５Ｂ）と、前記記憶手段に記憶されているPIDと、前記復号手段が復号したPIDとが一致するかどうかを判定する判定手段（例えば、図２の照合部３３）とをさらに設け、前記記憶手段に記憶されているPIDと、前記復号手段が復号したPIDとが一致する場合、前記他の通信装置との通信を続行させることができる。
【００２３】
本発明の第２の側面の通信装置（例えば、図１のPED１１）には、PIDを入力するときに操作される操作手段（例えば、図２の操作部２３）と、前記操作手段が操作されることにより入力されたPIDを、前記暗号鍵を用いて、暗号化PIDに暗号化する暗号化手段（例えば、図２の暗号化部２５Ａ）とをさらに設け、前記暗号化PIDを、前記他の通信装置に送信させることができる。
【００２４】
本発明の第２の側面の通信方法、またはプログラムは、他の通信装置と無線通信を行う通信装置の通信方法、またはプログラムにおいて、外部に秘密の第１の秘密値を発生し（例えば、図４のステップＳ１２）、前記第１の秘密値、および既知の２つの既定値を用いて所定の演算を行い、前記他の通信装置に送信する第１の公開値を求め（例えば、図４のステップＳ１３）、前記第１の秘密値、前記他の通信装置から送信されてくる、外部に秘密の第２の秘密値および前記２つの既定値を用いて前記所定の演算を行うことにより求められた第２の公開値、並びに前記２つの既定値のうちの一方の既定値を用いて前記所定の演算を行うことにより、前記他の通信装置との間の暗号通信に用いる暗号鍵を生成する（例えば、図４のステップＳ１６）ステップを含む。
【００２５】
以下、図面を参照して本発明を適用した実施の形態について説明する。
【００２６】
図１は、本発明を適用した通信システムの一実施の形態の構成例を示すブロック図である。
【００２７】
無線通信システム１は、PED１１およびICカード１２から構成され、PED１１とICカード１２との間では、電波や赤外線等を媒介として、非接触でPIN等のデータを送受信する無線通信が行われる。
【００２８】
PED１１は、ユーザによるPINの入力を受け付け、そのPINを暗号化する。さらに、PED１１は、PINを暗号化することにより得られる暗号化PINを、ICカード１２に対して送信する。
【００２９】
ICカード１２は、例えば、ICカード１２の発行時に設定されたPIN（以下、適宜、設定PINという）を記憶している。ICカード１２は、PED１１から送信されてくる暗号化PINを受信し、平文としてのPINに復号して、そのPINとICカード１２に記憶されている設定PINとを照合する。そして、ICカード１２は、暗号化PINを復号したPIN、つまり、PED１１に入力されたPINと設定PINとが一致する場合にのみ、ユーザにICカード１２の使用を許可する。
【００３０】
図２は、図１のPED１１およびICカード１２の機能的構成例を示すブロック図である。
【００３１】
図２において、PED１１には、リーダライタ２１、暗号鍵生成部２２、操作部２３、制御部２４、および暗号処理部２５が設けられ、ICカード１２には、RF(Radio Frequency)処理部３１、暗号鍵生成部３２、照合部３３、制御部３４、および暗号処理部３５が設けられている。
【００３２】
PED１１において、リーダライタ２１は、制御部２４から供給されるデータ等を、ICカード１２に対して無線で送信する。また、リーダライタ２１は、ICカード１２から送信されてくるデータ等を受信して、制御部２４に供給する。
【００３３】
暗号鍵生成部２２は、制御部２４、リーダライタ２１、並びにICカード１２のRF処理部３１および制御部３４を介して、暗号鍵生成部３２との間で各種のデータをやりとりすることにより、後述のDiffie-Hellman鍵交換アルゴリズムに従って、暗号通信に用いる暗号鍵を生成し、その暗号鍵を、制御部２４を介して、暗号処理部２５に供給する。
【００３４】
操作部２３は、ユーザによって操作され、その操作に対応する操作信号を、制御部２４に供給する。ユーザは、操作部２３を操作することにより、例えば、PINを入力することができる。
【００３５】
制御部２４は、PED１１を構成するリーダライタ２１、暗号鍵生成部２２、および暗号処理部２５を制御する。
【００３６】
また、制御部２４は、ICカード１２に対するコマンドを発行し、そのコマンドをリーダライタ２１を介してICカード１２に対して送信する。
【００３７】
暗号処理部２５は、暗号化部２５Ａおよび復号部２５Ｂから構成される。暗号化部２５Ａは、制御部２４から供給されるPIN等のデータを、暗号鍵生成部２２から制御部２４を介して供給される暗号鍵を用いて暗号化し、その暗号化したデータを制御部２４に供給する。復号部２５Ｂは、制御部２４から供給される、ICカード１２からの暗号化されたデータを、暗号鍵生成部２２から制御部２４を介して供給される暗号鍵を用いて復号し、復号したデータを制御部２４に供給する。
【００３８】
ICカード１２において、RF処理部３１は、PED１１のリーダライタ２１との間で無線通信を行うことにより、制御部３４から供給されるデータ等を、PED１１に対して送信し、また、PED１１から送信されてくるデータ等を受信して、制御部３４に供給する。
【００３９】
なお、ICカード１２からリーダライタ２１へのデータ等の送信は、RF処理部３１において、リーダライタ２１が出力するキャリアとしての電磁波等を、いわゆる負荷変調することによって行ってもよいし、RF処理部３１自身がキャリアを出力し、そのキャリアを変調することによって行ってもよい。
【００４０】
暗号鍵生成部３２は、制御部３４、RF処理部３１、並びに、PED１１のリーダライタ２１および制御部２４を介して、暗号鍵生成部２２との間で各種のデータをやりとりすることにより、Diffie-Hellman鍵交換アルゴリズムに従って、暗号通信に用いる暗号鍵を生成し、その暗号鍵を、制御部３４を介して、暗号処理部３５に供給する。
【００４１】
照合部３３は、設定PINを記憶しており、制御部３４を介して供給されるPINと、設定PINとが一致するかどうかを判定するPINの照合を行い、その照合結果を表す照合信号を、制御部３４に供給する。
【００４２】
制御部３４は、ICカード１２を構成するRF処理部３１、暗号鍵生成部３２、照合部３３および暗号処理部３５を制御する。即ち、制御部３４は、例えば、PED１１から送信され、RF処理部３１を介して供給される暗号化されたデータを、暗号処理部３５に供給して復号させる。また、制御部３４は、例えば、PED１１から送信されてきたPINを照合部３３に供給し、PINの照合を行わせる。
【００４３】
暗号処理部３５は、暗号化部３５Ａおよび復号部３５Ｂから構成される。暗号化部３５Ａは、制御部３４から供給されるデータを、暗号鍵生成部３２から制御部３４を介して供給される暗号鍵を用いて暗号化し、その暗号化したデータを制御部３４に供給する。また、復号部３５Ｂは、制御部３４から供給される、PED１１からの暗号化されたPIN等のデータを、暗号鍵生成部３２から制御部３４を介して供給される暗号鍵を用いて復号し、復号したデータを制御部３４に供給する。
【００４４】
図３は、PED１１の暗号鍵生成部２２およびICカード１２の暗号鍵生成部３２の機能的構成例を示すブロック図である。
【００４５】
PED１１の暗号鍵生成部２２と、ICカード１２の暗号鍵生成部３２との間では、Diffie-Hellman鍵交換アルゴリズムによって暗号通信に用いる暗号鍵の交換（生成）が行われる。
【００４６】
即ち、PED１１において、暗号鍵生成部２２の既定値記憶部５１は、PED１１とICカード１２（の暗号鍵生成部３２）とで既知の２つの既定値nおよびgを記憶している。既定値nおよび既定値gは、任意の素数である。
【００４７】
ここで、既定値nがより大きい数であるほど、暗号鍵の解読が困難になる。従って、既定値nとしては、好ましくは、可能な範囲でなるべく大きな数を採用する。
【００４８】
また、既定値nおよび既定値gは、外部に秘密にする必要はない。
【００４９】
秘密値発生部５２は、例えば、乱数を発生し、その乱数に基づいて、ICカード１２を含む外部に秘密の値である秘密値xを生成し、秘密値記憶部５３に供給する。ここで、秘密値xは、正の整数であり、大きな数であることが望ましい。
【００５０】
秘密値記憶部５３は、秘密値発生部５２から供給される秘密値xを記憶する。
【００５１】
公開値算出部５４は、既定値記憶部５１から既定値nおよび既定値gを読み出し、さらに秘密値記憶部５３から秘密値xを読み出す。そして、公開値算出部５４は、その既定値n、既定値g、および秘密値xを用いて、例えば、式（１）で表される所定の演算を行い、ICカード１２に公開する、外部に必ずしも秘密にする必要がない公開値Xを算出する。この公開値Xは、公開値算出部５４から、制御部２４およびリーダライタ２１を介して、ICカード１２に送信される。
【００５２】
【数１】
2007288254.tif 000003
【００５３】
ここで、(A)mod(B)は、AをBで除算した結果得られる剰余を表す。
【００５４】
暗号鍵算出部５５は、既定値記憶部５１から２つの既定値nとgのうちの一方である、例えば、既定値nを読み出し、さらに秘密値記憶部５３から秘密値xを読み出す。そして、暗号鍵算出部５５は、その既定値nおよび秘密値xと、ICカード１２から送信され、リーダライタ２１および制御部２４を介して供給される公開値Yとを用いて、式（２）で表される、式（１）と同一の所定の演算を行い、暗号鍵kを算出する。この暗号鍵kは、制御部２４を介して、暗号処理部２５に供給される。
【００５５】
【数２】
2007288254.tif 000004
【００５６】
即ち、ICカード１２において、暗号鍵生成部３２の既定値記憶部７１は、暗号鍵生成部２２の既定値記憶部５１が記憶しているのと同一の２つの既定値nおよびgを記憶している。
【００５７】
秘密値発生部７２は、例えば、秘密値記憶部５２と同様に、乱数を発生し、その乱数に基づいて、PED１１を含む外部に秘密の値である秘密値yを生成し、秘密値記憶部７３に供給する。
【００５８】
なお、秘密値yは、秘密値xと同様に、正の整数であり、大きな数であることが望ましい。
【００５９】
また、秘密値発生部５２によって発生される秘密値xと、秘密値発生部７２によって発生される秘密値yとは、同様の方法（アルゴリズム）に基づいて発生するようにしてもよいが、異なる方法（アルゴリズム）に基づいて発生するようにしてもよい。
【００６０】
秘密値記憶部７３は、秘密値発生部７２から供給される秘密値yを記憶する。
【００６１】
公開値算出部７４は、既定値記憶部７１から既定値nおよび既定値gを読み出し、さらに秘密値記憶部７３から秘密値yを読み出す。そして、公開値算出部７４は、その既定値n、既定値g、および秘密値yを用いて、式（３）で表される、式（１）と同一の所定の演算を行い、PED１１に公開する、外部に必ずしも秘密にする必要がない公開値Yを算出する。この公開値Yは、公開値算出部７４から、制御部３４およびRF処理部３１を介して、PED１１に送信される。
【００６２】
【数３】
2007288254.tif 000005
【００６３】
ここで、PED１１において、暗号鍵生成部２２の暗号鍵算出部５５は、以上のようにしてICカード１２から送信されてくる公開値Yを用いて、上述の式（２）の所定の演算を行い、暗号鍵kを求める。
【００６４】
暗号鍵算出部７５は、既定値記憶部７１から２つの既定値nとgのうちの一方である、例えば、既定値nを読み出し、さらに秘密値記憶部７３から秘密値yを読み出す。そして、暗号鍵算出部７５は、その既定値nおよび秘密値yと、PED１１から送信され、RF処理部３１および制御部３４を介して供給される公開値Xとを用いて、式（４）で表される、式（１）と同一の所定の演算を行い、暗号鍵k'を算出する。この暗号鍵k'は、制御部３４を介して、暗号処理部３５に供給される。
【００６５】
【数４】
2007288254.tif 000006
【００６６】
暗号鍵算出部５５において、式（２）により求められるkと、暗号鍵算出部７５において、式（４）により求められるk'とは、同一の暗号鍵であり、従って、PED１１とICカード１２とは、その同一の暗号鍵を用いて、暗号通信を行うことができる。
【００６７】
次に、図４のフローチャートを参照して、PED１１が行う処理およびICカード１２が行う処理について説明する。
【００６８】
なお、PED１１とICカード１２とは、例えば、予め、既定値nおよび既定値gを相互に交換するなどして、PED１１の既定値記憶部５１およびICカード１２の既定値記憶部７１のそれぞれには、共通（同一）の既定値nおよび既定値gが記憶されているものとする。
【００６９】
また、ICカード１２の照合部３３には、予め、正規のユーザ１（図１）のPIN（設定PIN）が記憶されているものとする。
【００７０】
PED１１のリーダライタ２１は、ICカード１２の存在を常時モニタしており（ポーリングしており）、ICカード１２が、PED１１の通信可能な範囲に存在することを検知すると、処理を開始する。
【００７１】
即ち、ステップＳ１１において、PED１１における暗号鍵生成部２２（図３）の公開値算出部５４は、既定値記憶部５１から既定値nおよび既定値gを読み出し、ステップＳ１２に進む。
【００７２】
ステップＳ１２において、PED１１における暗号鍵生成部２２（図３）の秘密値発生部５２は、秘密値xを生成し、秘密値記憶部５３に記憶させて、ステップＳ１３に進む。
【００７３】
ステップＳ１３において、PED１１における暗号鍵生成部２２（図３）の公開値算出部５４は、秘密値記憶部５３から秘密値xを読み出す。そして、公開値算出部５４は、読み出した既定値n、既定値g、および秘密値xを用いて、式（１）の所定の演算を行うことにより、公開値Xを算出し、図２の制御部２４に供給して、ステップＳ１４に進む。
【００７４】
ステップＳ１４において、制御部２４は、公開値算出部５４からの公開値Xを、リーダライタ２１を介して、ICカード１２に対して送信する。
【００７５】
ICカード１２は、PED１１からの公開値Xを受信すると、後述するようにして、公開値Yを送信してくるので、制御部２４は、ICカード１２から公開値Yが送信されてくるのを待って、ステップＳ１５に進み、ICカード１２から送信されてくる公開値Yを、リーダライタ２１を介して受信し、暗号鍵生成部２２に供給して、ステップＳ１６に進む。
【００７６】
ステップＳ１６において、PED１１における暗号鍵生成部２２（図３）の暗号鍵算出部５５は、既定値記憶部５１から既定値nを読み出し、さらに秘密値記憶部５３から秘密値xを読み出す。暗号鍵算出部５５は、制御部２４から供給される公開値Y、並びに、読み出した既定値nおよび秘密値xを用い、式（２）の所定の演算を行うことにより、暗号鍵kを算出し、制御部２４を介して、暗号処理部２５に供給して、ステップＳ１７に進む。
【００７７】
これにより、PED１１の暗号処理部２５は、暗号鍵kを用いて、ICカード１２との間の暗号通信を行うことが可能になる。
【００７８】
ステップＳ１７において、制御部２４は、例えば、ユーザにPINの入力を促すために、「PINを入力してください。」なるテキストを図示せぬ出力部に出力させる等により、PINの入力をユーザに対して要求し、ステップＳ１８に進む。
【００７９】
ステップＳ１８において、制御部２４は、ユーザがPINを入力したかどうかを判定する。ステップＳ１８において、ユーザがPINを入力していないと判定された場合、ステップＳ１８を繰り返す。
【００８０】
ステップＳ１８において、ユーザがPINを入力したと判定された場合、即ち、ユーザが、操作部２３を操作することにより、PINの入力を行い、これにより、操作部２３から制御部２４にユーザが入力したPINに対応する操作信号が供給された場合、ステップＳ１９に進み、制御部２４は、操作部２３から供給される操作信号に対応するPINを暗号処理部２５に供給する。暗号処理部２５の暗号化部２５Ａは、制御部２４から供給されるPINを暗号化し、その暗号化したPIN（暗号化PIN）を制御部２４に供給して、ステップＳ２０に進む。
【００８１】
ステップＳ２０において、制御部２４は、例えば、暗号処理部２５から供給される暗号化PINのデータを含むPINの照合要求を、リーダライタ２１を介してICカード１２に対して送信する。ここで、ICカード１２は、PED１１からPINの照合要求が送信されてくると、後述するようにして、PINの照合を行い、その照合の結果の通知（以下、適宜、結果通知という）を送信してくる。
【００８２】
制御部２４は、ICカード１２から結果通知が送信されてくるのを待って、ステップＳ２１に進み、ICカード１２からの結果通知がPINが一致した旨の通知である場合には、例えば、「PINが一致しました。」なる文字列を出力部に出力し、結果通知がPINが一致しない旨の通知である場合には、「PINが一致しません。」なる文字列を出力部に出力する。そして、PED１１では、結果通知がPINが一致した旨の通知である場合には、ICカード１２との通信が続行される。但し、PED１１は、その後、暗号鍵kを用いて、ICカード１２との間で暗号通信を行う。
【００８３】
即ち、ICカード１２に送信するデータは、暗号化部２５Ａにおいて、暗号鍵k'を用いて暗号化されて送信される。また、ICカード１２からは、データが暗号化して送信され、その送信されてきた暗号化されたデータは、復号部２５Ｂにおいて、暗号鍵kを用いて復号される。
【００８４】
一方、ICカード１２では、PED１１から公開値Xが送信されてくると、ステップＳ４１において、制御部３４は、PED１１からの公開値Xを、RF処理部３１を介して受信し、暗号鍵生成部３２（図３）の暗号鍵算出部７５に供給して、ステップＳ４２に進む。
【００８５】
ステップＳ４２において、暗号鍵生成部３２（図３）の秘密値発生部７２は、秘密値yを生成し、秘密値記憶部７３に記憶させて、ステップＳ４３に進む。
【００８６】
ステップＳ４３において、暗号鍵生成部３２（図３）の暗号鍵算出部７５は、既定値記憶部７１から既定値nを読み出し、さらに秘密値記憶部７３から秘密値yを読み出す。暗号鍵算出部７５は、制御部３４から供給される公開値X、並びに、読み出した既定値nおよび秘密値yを用い、式（４）の所定の演算を行うことにより、暗号鍵k'を算出し、制御部３４を介して、暗号処理部３５に供給して、ステップＳ４４に進む。
【００８７】
これにより、ICカード１２は、暗号鍵k'を用いて、PED１１との間での暗号通信を行うことが可能になる。
【００８８】
ステップＳ４４において、暗号鍵生成部３２（図３）の公開値算出部７４は、既定値記憶部７１から既定値nおよび既定値gを読み出し、ステップＳ４５に進む。
【００８９】
ステップＳ４５において、暗号鍵生成部３２（図３）の公開値算出部７４は、秘密値記憶部７３から秘密値yを読み出す。そして、公開値算出部７４は、読み出した既定値n、既定値g、および秘密値yを用いて、式（３）の所定の演算を行うことにより、公開値Yを算出し、図２の制御部３４に供給して、ステップＳ４６に進む。
【００９０】
ステップＳ４６において、制御部３４は、公開値算出部７４からの公開値Yを、RF処理部３１を介して、PED１１に対して送信し、ステップＳ４７に進む。
【００９１】
ステップＳ４７において、制御部３４は、PED１１がステップＳ２０で送信してくるPINの照合要求を、RF処理部３１を介して受信し、そのPINの照合要求に含まれている暗号化PINを抽出し、暗号処理部３５に供給して、ステップＳ４８に進む。
【００９２】
ステップＳ４８において、暗号処理部３５の復号部３５Ｂは、制御部３４から供給される暗号化PINを、ステップＳ４３で得た暗号鍵k'を用いて復号し、復号したPINを、制御部３４を介して、照合部３３に供給して、ステップＳ４９に進む。
【００９３】
ステップＳ４９において、照合部３３は、制御部３４から供給されるPIN（ユーザが入力したPIN）と、照合部３３に記憶されている設定PINとが一致しているかどうかを判定する照合を行う。
【００９４】
ステップＳ４９において、ユーザが入力したPINと設定PINとが一致すると判定された場合、ステップＳ５０に進み、制御部３４は、例えば、PINが一致した旨の結果通知を、RF処理部３１を介して、PED１１に対して送信し、そのまま、PED１１との通信を続行する。
【００９５】
即ち、ユーザが入力したPINと設定PINとが一致する場合には、ユーザが、正規のユーザであることが認証（確認）されたため、ICカード１２は、ユーザがICカード１２を使用すること、つまり、PED１１との間で暗号通信を行うことを許可し、ユーザは、ICカード１２の所定の機能を利用できるようになる。
【００９６】
具体的には、ICカード１２では、PED１１に送信するデータは、暗号化部３５Ａにおいて、暗号鍵k'を用いて暗号化されて送信される。また、PED１１から送信された暗号化されたデータは、復号部３５Ｂにおいて、暗号鍵k'を用いて復号される。
【００９７】
一方、ステップＳ４９において、ユーザが入力したPINと設定PINとが一致しないと判定された場合、ステップＳ５１に進み、制御部３４は、例えば、PINが一致しない旨の結果通知を、RF処理部３１を介して、PED１１に対して送信し、PED１１との通信を切断して、処理を終了する。
【００９８】
即ち、ユーザが入力したPINと設定PINとが一致しない場合には、ユーザが、正規のユーザであることが認証（確認）されなかったため、ICカード１２は、ユーザがICカード１２を使用することを許可しない。従って、正規のユーザでないユーザが、ICカード１２を不正に使用することを防ぐことができる。
【００９９】
ここで、Diffie-Hellman鍵交換アルゴリズムによれば、公開数Xおよび公開数Y、並びに、必ずしも秘密でない既定数nおよびgが分かっても、短時間で、暗号鍵k(＝k'＝gxy mod(n))を計算することは極めて困難である。従って、例えば、第三者３（図１）が、PED１１とICカード１２との間の無線通信を盗聴して、公開数Xおよび公開数Yを入手した場合でも、暗号鍵k（暗号鍵k'）は、PED１１とICカード１２のみが知りうる秘密情報となるため、その暗号鍵k（暗号鍵k'）を用いて、暗号通信を行うことにより、PED１１とICカード１２との間でPINその他のデータの伝送を安全に行うことができる。
【０１００】
さらに、PED１１とICカード１２とは、暗号通信を行うにあたり、事前に秘密の情報を共有しておく必要がない。
【０１０１】
また、PED１１においては、ICカード１２との通信が開始されるごとに、秘密値発生部５２が乱数を新たに発生し、その乱数に基づき、秘密数ｘを生成するので、秘密数ｘを用いて生成される暗号鍵kも通信ごとに異なり、従って、情報の伝送をさらに安全に行うことができる。
【０１０２】
PED１１と同様に、ICカード１２においては、PED１１との通信が開始されるごとに、秘密値発生部７２が乱数を発生し、その乱数に基づき、秘密数yを生成するので、秘密数yを用いて生成される暗号鍵k'も通信ごとに異なり、従って、PED１１と同様に、情報の伝送をさらに安全に行うことができる。
【０１０３】
また、鍵交換アルゴリズムとしてDiffie-Hellman鍵交換アルゴリズムを用いる場合について説明したが、鍵交換アルゴリズムはこれに限らず、ECDH(Elliptic Curve Diffie -Hellman)等の他の鍵交換アルゴリズムを用いるようにしてもよい。
【０１０４】
なお、ユーザが、操作部２３のテンキーやキーボード等を直接に操作して、PED１１にPINの入力を行う際に、第三者によるPINの盗聴はないものとする。
【０１０５】
また、ユーザは、所有するICカード１２を、信頼できるPED１１にセットすることにより、PED１１とICカード１２との間の（無線）通信を、第三者が間に入って中継する、いわゆる中間者攻撃はないものとする。
【０１０６】
なお、上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
【０１０７】
図５は、上述した一連の処理をプログラムにより実行するパーソナルコンピュータの構成の例を示すブロック図である。CPU（Central Processing Unit）９１は、ROM（Read Only Memory）９２、または記憶部９８に記憶されているプログラムに従って各種の処理を実行する。RAM（Random Access Memory）９３には、CPU９１が実行するプログラムやデータなどが適宜記憶される。これらのCPU９１、ROM９２、およびRAM９３は、バス９４により相互に接続されている。
【０１０８】
CPU９１にはまた、バス９４を介して入出力インターフェース９５が接続されている。入出力インターフェース９５には、キーボード、マウス、マイクロホンなどよりなる入力部９６、ディスプレイ、スピーカなどよりなる出力部９７が接続されている。CPU９１は、入力部９６から入力される指令に対応して各種の処理を実行する。そして、CPU９１は、処理の結果を出力部９７に出力する。
【０１０９】
入出力インターフェース９５に接続されている記憶部９８は、例えばハードディスクからなり、CPU９１が実行するプログラムや各種のデータを記憶する。通信部９９は、インターネットやローカルエリアネットワークなどのネットワークを介して外部の装置と通信する。
【０１１０】
また、通信部９９を介してプログラムを取得し、記憶部９８に記憶してもよい。
【０１１１】
入出力インターフェース９５に接続されているドライブ１００は、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア１０１が装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記憶部９８に転送され、記憶される。
【０１１２】
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを格納するプログラム記録媒体は、図５に示すように、磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)を含む）、光磁気ディスク、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア１０１、または、プログラムが一時的もしくは永続的に格納されるROM９２や、記憶部９８を構成するハードディスクなどにより構成される。プログラム記録媒体へのプログラムの格納は、必要に応じてルータ、モデムなどのインタフェースである通信部９９を介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を利用して行われる。
【０１１３】
なお、本明細書において、プログラム記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０１１４】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【０１１５】
本発明は、PEDやICカードの他の通信装置、例えば、ICカードの機能を内蔵し、近接通信を行う携帯電話機などに適用することができる。また、上述した暗号鍵の交換は、無線通信ではなく、有線通信で行うこともできる。
【図面の簡単な説明】
【０１１６】
【図１】本発明を適用した通信システムの一実施の形態の構成例を示すブロック図である。
【図２】PED１１およびICカード１２の機能的構成例を示すブロック図である。
【図３】暗号鍵生成部２２および暗号鍵生成部３２の機能的構成例を示すブロック図である。
【図４】PED１１が行う処理、およびICカード１２が行う処理について説明するフローチャートである。
【図５】本発明を適用したパーソナルコンピュータの一実施の形態の構成例を示すブロック図である。
【符号の説明】
【０１１７】
１  通信システム，  １１  PED，  １２  ICカード，  ２１  リーダライタ，  ２２  暗号鍵生成部，  ２３  操作部，  ２４  制御部，  ２５  暗号処理部，  ２５Ａ  暗号化部，  ２５Ｂ  復号部，  ３１  RF処理部，  ３２  暗号鍵生成部，  ３３  照合部，  ３４  制御部，  ３５  暗号処理部，  ３５Ａ  暗号化部，  ３５Ｂ  復号部，  ５１  既定値記憶部，  ５２  秘密値発生部，  ５３  秘密値記憶部，  ５４  公開値算出部，  ５５  暗号鍵算出部，  ７１  既定値記憶部，  ７２  秘密値発生部，  ７３  秘密値記憶部，  ７４  公開値算出部，  ７５  暗号鍵算出部，  ９１  CPU，  ９２  ROM，  ９３  RAM，  ９４  バス，  ９５  入出力インターフェイス，  ９６  入力部，  ９７  出力部，  ９８  記憶部，  ９９  通信部，  １００  ドライブ，  １０１  リムーバブルメディア
【図１】
2007288254.tif 000007
【図２】
2007288254.tif 000008
【図３】
2007288254.tif 000009
【図４】
2007288254.tif 000010
【図５】
2007288254.tif 000011