暗号化装置、端末装置、暗号化プログラム及び方法、情報処理プログラム及び方法
【課題】所定の時間で更新されるカウンタ情報に基づく暗号化データの復号化処理におけるカウンタ情報のずれを処理能力が低い装置であっても補正することができる暗号装置、暗号通信プログラム及び方法を提供する。
【解決手段】暗号通信を行う対象である端末装置1と共に、所定の時間毎に更新される値である暗号鍵を管理する暗号鍵管理部206と、端末装置1が管理している暗号鍵に基づいて暗号化された所定のデータを受信する受信部203と、受信部203において受信され暗号化された所定のデータを復号し、端末装置1において管理されている暗号鍵と暗号鍵管理部206において管理されている暗号鍵との値の差を求め、該差に基づいて暗号鍵管理部206において管理されている暗号鍵を補正し、端末装置1と共通して用いる共通鍵を生成し、補正した暗号鍵に基づいて共通鍵を暗号化して端末装置1に送信する共通鍵送信部203とを有する。
【解決手段】暗号通信を行う対象である端末装置1と共に、所定の時間毎に更新される値である暗号鍵を管理する暗号鍵管理部206と、端末装置1が管理している暗号鍵に基づいて暗号化された所定のデータを受信する受信部203と、受信部203において受信され暗号化された所定のデータを復号し、端末装置1において管理されている暗号鍵と暗号鍵管理部206において管理されている暗号鍵との値の差を求め、該差に基づいて暗号鍵管理部206において管理されている暗号鍵を補正し、端末装置1と共通して用いる共通鍵を生成し、補正した暗号鍵に基づいて共通鍵を暗号化して端末装置1に送信する共通鍵送信部203とを有する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、所定の時間毎に更新されるカウンタ値に基づく暗号化及び復号により暗号通信を行なう暗号化装置、端末装置、暗号化プログラム及び方法、情報処理プログラム及び方法に関する。
【背景技術】
【0002】
情報通信における暗号方式のひとつとして、暗号化と復号化で同じ鍵を用いる共通鍵暗号方式が知られている。秘密情報としての共通鍵を基礎とするデータの暗号/復号システムまたは暗号通信システムにおいて、共通鍵情報の漏洩対策または秘匿性向上のための定期的な保守作業として、共通鍵の更新を考えた場合、新しい共通鍵を配信する装置と共通鍵を更新される装置間で相互に正規の装置であることを確認し、且つ送受される共通鍵の漏洩を防ぐ必要がある。
【0003】
上述の条件を満たす安全な共通鍵配信の手段としては、共通鍵を配信する装置の利用者自身が例えばUSBメモリーなどの物理的に独立した記憶媒体に共通鍵を書き込み、共通鍵を更新される装置に共通鍵が書き込まれた記憶媒体用のインターフェースを予め設けておく手段や、公開鍵方式等の別途用意された手段により両装置の相互認証性と通信の秘匿性を確保しつつ新しい共通鍵の送受を行う等、共通暗号方式とは別の手段を仮定する必要がある。
【0004】
上述の問題を解決する技術として、暗号化する装置と復号化する装置の時間の同期によって鍵を生成し、暗号通信に先立つ鍵交換シーケンスのないセッションキーを保持する仕組みを実現する技術が知られている(例えば特許文献1参照)。
【0005】
しかし、特にEthernet(登録商標)に代表される実時間通信を保障しないインターネット通信においては、鍵生成に用いられる時間情報の更新間隔が小さければ小さい程、暗号化する装置と復号化する装置の同期にずれが生じて、復号に失敗する恐れがある。また逆に、更新間隔が大きければ大きい程、盗聴者は暗号解読のための情報を想定しやすくなる。
【0006】
この同期のずれを解決する技術として、誤り訂正符号を暗号対象データに対して算出して付加する技術が知られている(例えば特許文献2参照)。
【特許文献1】特開2002−290391号公報
【特許文献2】特開2006−238200号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献2の技術によると、通信する情報量が大きくなるにつれて、その情報に対する誤り訂正符号の算出に係るリソース消費量が増大することになり、処理能力の低い携帯電話機のような小型装置や高速処理を必要とする装置には適さない。
【0008】
本発明は上述した課題を解決するためになされたものであり、所定の時間で更新されるカウンタ情報に基づく暗号化データの復号化処理におけるカウンタ情報のずれを処理能力が低い装置であっても補正することができる暗号化装置、端末装置、暗号化プログラム及び方法、情報処理プログラム及び方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
上述した課題を解決するため、本発明の一態様は、端末装置と暗号通信を行なうことができる暗号化装置であって、前記端末装置と共に、所定の時間毎に更新される値である暗号鍵を管理する暗号鍵管理部と、前記端末装置により管理されている前記暗号鍵に基づいて暗号化された所定のデータを受信する受信部と、前記受信部により受信され暗号化された前記所定のデータを復号し、前記端末装置により管理されている暗号鍵と前記暗号鍵管理部により管理されている暗号鍵との値の差を求め、該差に基づいて前記暗号鍵管理部において管理されている暗号鍵を補正し、前記端末装置と共通して用いる共通鍵を生成し、補正した前記暗号鍵に基づいて前記共通鍵を暗号化して前記端末装置に送信する共通鍵送信部とを備える。
【0010】
また、本発明の一態様は、暗号化装置と暗号通信を行なうことができる端末装置であって、前記暗号化装置と共に、所定の時間毎に更新される暗号鍵を管理する暗号鍵管理部と、所定のデータを前記暗号鍵に基づいて暗号化し、暗号化された前記所定のデータを前記暗号化装置に送信する送信部と、前記暗号化装置と共通して用いられる鍵であり、前記暗号化装置において生成され、前記所定のデータに基づいて補正された暗号鍵に基づいて暗号化された鍵である共通鍵を受信し、前記暗号鍵管理部において管理される前記暗号鍵に基づいて復号する共通鍵受信部とを備える。
【0011】
また、本発明の一態様は、端末装置と暗号通信を行なうことができる暗号化プログラムであって、前記端末装置と共に、所定の時間毎に更新される値である暗号鍵を管理する暗号鍵管理ステップと、前記端末装置により管理されている前記暗号鍵に基づいて暗号化された所定のデータを受信する受信ステップと、前記受信ステップにより受信され暗号化された前記所定のデータを復号し、前記端末装置により管理されている暗号鍵と前記暗号鍵管理ステップにより管理されている暗号鍵との値の差を求め、該差に基づいて前記暗号鍵管理ステップにおいて管理されている暗号鍵を補正し、前記端末装置と共通して用いる共通鍵を生成し、補正した前記暗号鍵に基づいて前記共通鍵を暗号化して前記端末装置に送信する共通鍵送信ステップとをコンピュータに実行させる。
【発明の効果】
【0012】
本発明によれば、所定の時間で更新されるカウンタ情報に基づく暗号化データの復号処理におけるカウンタ情報のずれを処理能力が低い装置であっても補正することができる暗号化装置、端末装置、暗号化プログラム及び方法、情報処理プログラム及び方法を提供することが可能となる。
【発明を実施するための最良の形態】
【0013】
以下、本発明の実施の形態について図面を参照しつつ説明する。
【0014】
まず、本実施の形態における暗号装置の構成を図1に示す。なお、本実施の形態において、暗号装置1(端末装置)と暗号装置2(暗号化装置)は暗号通信機能に関しては同じ構成である異なる装置であり、暗号装置1はクライアントとして動作する携帯電話機とし、暗号装置2はサーバとして動作するパーソナルコンピュータとする。また、暗号装置1と暗号装置2はネットワーク上で通信を行なうものとするが、有線通信、赤外線、近距離のみ有効な無線通信のいずれであっても良い。また、図1において両装置は図示しないディスプレイ及び入力部を備えるものとし、大容量のデータを容易に転送できるバーコードによって、後述する秘密鍵を夫々の装置のディスプレイに表示し(秘密鍵表示ステップ)、それらを互いに読み取ることにより通信を行なっても構わない。
【0015】
暗号装置2に対してクライアント動作する暗号装置1は、ユーザIF部101(秘密鍵表示部)、初期化処理部102(接続許可部、ポート番号算出部)、共通鍵処理部103(送信部、暗号鍵受信部、共通鍵受信部)、共通鍵管理部104、暗号通信部105、カウンタ処理部106(暗号鍵管理部)、セキュア保存領域107(秘密鍵管理部)を備える。
【0016】
また、暗号装置1に対してサーバ動作する暗号装置2は、ユーザIF部201(秘密鍵表示部)、初期化処理部202(接続許可部、ポート番号算出部)、共通鍵処理部203(受信部、暗号鍵送信部、共通鍵送信部)、共通鍵管理部204、暗号通信部205、カウンタ処理部206(暗号鍵管理部)、セキュア保存領域207(秘密鍵管理部)を備える。
【0017】
セキュア保存領域107及びセキュア保存領域207は、同一の共通鍵によって暗号化及び復号化を行なうグループ内で共通に設定された情報であり、暗号通信及び暗号通信に係る初期化動作に用いられる情報である共有秘密情報(秘密鍵)を保持するものである。また、カウンタ処理部106及びカウンタ処理部206は1秒ごとに1の加算が行なわれるカウンタ値(暗号鍵)を出力するものである。
【0018】
ユーザIF部101及びユーザIF部201は図示しないディスプレイに情報を出力させ、同じく図示しない入力部からの情報を取得するものである。また、初期化処理部102及び初期化処理部202は共有秘密情報をセキュア保存領域107及びセキュア保存領域207にそれぞれ保存し、共有秘密情報及びカウンタ値の初期化時にユーザに対して情報を示すためユーザIF部101及びユーザIF部201の制御を行なうものである。
【0019】
共通鍵処理部103及び共通鍵処理部203は乱数を生成し、共有秘密情報、カウンタ値及び生成した乱数によって共通鍵生成に用いる値を算出するものである。また、サーバ動作する暗号装置2の共通鍵処理部203においては、誤差を想定してカウンタ値の補正処理がなされる。また、共通鍵管理部104及び共通鍵管理部204は共通鍵処理部103及び共通鍵処理部203によって夫々生成された共通鍵を管理するものである。また、暗号通信部105及び暗号通信部205は共通鍵管理部104及び共通鍵管理部204において管理される共通鍵によって通信情報を暗号化して送信し、受信した通信情報を共通鍵によって復号化する。
【0020】
次に、本実施の形態における暗号装置の動作を説明する。図2は暗号装置の共通鍵の更新動作を示すシーケンス図である。また、図2において、暗号装置1及び暗号装置2の共有秘密情報及びカウンタ値の初期化はすでになされ、暗号装置1及び暗号装置2は同じく設定された共有秘密情報及び同期されたカウンタ値を保持している(秘密鍵管理ステップ、暗号鍵管理ステップ)ものとする。
【0021】
まず、クライアントである暗号装置1の共通鍵処理部103が乱数K0を生成し(S101)、乱数K0とセキュア保存領域107から取得した共有秘密情報とカウンタ処理部106から取得したカウンタ値を用いて以下の式によって、値K1を算出し、暗号装置2へ送信する(S102、送信ステップ)。
【0022】
K1=E(MAC(XOR(共有秘密情報,カウンタ値))),カウンタ値||K0)
【0023】
この式において、E(A,B)は例えばDESやAES(Advanced Encryption Standard)のようなAを暗号鍵としてBの値を暗号化する関数を意味する。また、MAC()は例えばSHA(Secure Hash Algorithm)のような、引数のハッシュ値を計算するハッシュ関数であり、XORは排他的論理和を意味するものである。また、C||DはCとDをデータとして連結することを意味し、本実施の形態においてカウンタ値は10Byte(32bit、整数に対応)の長さの固定長の文字列表現とする。また、暗号装置1及び暗号装置2において、このカウンタ値をハッシュ演算した結果に置き換え、付加されるデータをより複雑にすることにより秘匿性を高めることもできる。
【0024】
暗号装置1より送信されたK1を受信した暗号装置2の共通鍵処理部203はカウンタ補正処理を実行し、K1からK0を算出する(S103、受信ステップ、共通鍵送信ステップ)。
【0025】
カウンタ補正処理は、暗号装置1及び暗号装置2にそれぞれ備わるカウンタ処理部106間に生じるずれを補正しつつ、K1からK0を算出するためになされる。なお、カウンタ補正処理の詳細については後述する。
【0026】
次に、暗号装置2の共通鍵処理部203は乱数K2を生成し(S104、共通鍵送信ステップ)、K2とカウンタ補正処理によって得られたK0を用いて以下の式により値I0を算出し、暗号装置1へ送信し(S105、共通鍵送信ステップ)、共通鍵管理部204にK2を入力し、共通鍵管理部204がK2を暗号通信部205に入力し、暗号通信部205はK2を共通鍵とする(S107)。
【0027】
I0=D(K0,K2)
【0028】
この式においてD(A,B)は関数E()による暗号化に対して、Aを暗号鍵としてBの値を復号する関数を意味する。
【0029】
I0を受信した暗号装置1の共通鍵処理部103は、以下の式によりK2を算出し(S106、共通鍵受信ステップ)、共通鍵管理部104にK2を入力し、共通鍵管理部104がK2を暗号通信部105に入力し、暗号通信部105はK2を共通鍵とする(S108)。
【0030】
K2=D(K0,I0)
【0031】
そして、暗号装置1の暗号通信部105及び暗号装置2の暗号通信部205は互いにK2を共通鍵として通信を行なう(S109)。以降、暗号装置1及び暗号装置2は全ての送信情報を以下の式によって暗号化する。
【0032】
暗号文=E(K2,平文)
【0033】
また、受信時は以下の式により受信情報を復号する。
【0034】
平文=D(K2,暗号文)
【0035】
上述の動作により、暗号装置1及び暗号装置2において同一に設定された情報である共有秘密情報と、両装置の初期化以降、時間に同期して更新されるカウンタ値に基づく共通鍵の暗号化によって、暗号装置2は暗号装置1に対して安全に共通鍵を送信することができる。
【0036】
図3は暗号装置のカウンタ補正処理の動作を示すフローチャートである。なお、暗号装置2にはカウンタ値の最大誤差を有する値Nが予め設定されているものとする。例えば、暗号装置1及び暗号装置2のカウンタ値のリセット間隔が1ヶ月であり、1ヶ月のカウンタのずれの最大値が±10ならば、N=10となる。
【0037】
まず、暗号装置2の共通鍵処理部203は暗号装置1の共通鍵処理部103により算出されたK1を取得し(S201)、以下の式により10Byteの長さの固定長の文字列表現であるLとLにデータ連結された値であるKを求める(S202)。
【0038】
L||K=D(MAC(XOR(共有秘密情報,サーバカウンタ値+i)),K1)
【0039】
D()はAを暗号鍵としてBの値を復号化する関数を意味し、図2のステップS102におけるK1の算出の際に用いられた式でのE()に対応するものである。サーバカウンタ値は暗号装置2のカウンタ値であり、iはカウンタ値を補正する値であり、−NからNまでの整数値であって、初期状態は−Nが設定されている。
【0040】
次に、暗号装置2の共通鍵処理部203は上述の式によって算出されたL||KよりLを取り出し、上述の式で用いられたサーバカウンタ値+iと等しいかどうかを判断する(S203)。
【0041】
Lとサーバカウンタ値が等しい場合(S203,YES)、つまりLが暗号装置1のカウンタ値である場合は、Lに付加されているKはK0であるため、暗号装置2の共通鍵処理部203はL||KからKを取り出す(S204)。
【0042】
また、ステップS203の判断において、Lとサーバカウンタ値+iが等しくない場合(S203,NO)、暗号装置2の共通鍵処理部203はiの絶対値がN以下であるかどうかを判断する(S205)。
【0043】
iの絶対値がN以下である場合(S205,YES)、暗号装置2の共通鍵処理部203はiに1を加算する(S207)。
【0044】
一方、iの絶対値がNより大きい場合(S205,NO)、暗号装置2の共通鍵処理部203はエラーを返す(S206)。なお、エラーが発生した場合、暗号装置1はカウンタ値を更新するが、この動作については後述する。
【0045】
上述の動作により暗号装置1と暗号装置2のカウンタ値のずれを処理能力の低い装置であっても補正することができる。また、サーバ動作をする暗号装置2で補正をするので、クライアント動作をする暗号装置1において誤り訂正符号処理のようなリソースを消費する処理が必要ない。
【0046】
次に、カウンタ値の初期化処理について説明する。図4は暗号装置1の共有秘密情報及びカウンタ値の初期化動作を示すシーケンス図である。また、図5〜図8は初期化動作における画面表示を示す図である。なお、図4において暗号装置2はすでに初期化がなされ、共有秘密情報及びカウンタ値が適切に設定されているものとする。また、初期化の際に用いられる情報である初期化用情報はサーバ動作する暗号装置2のIPアドレス(ネットワークアドレス)とする。
【0047】
まず、ユーザが暗号装置2の入力部を操作することにより、ユーザIF部201を介して暗号装置2のディスプレイに初期化画面が呼び出され(図4−S301、図5−D301)、同様にユーザが暗号装置1の入力部を操作することにより、ユーザIF部101を介して暗号装置1のディスプレイに初期化画面が呼び出される(図4−S302、図5−D302)。なお、これらの動作の順序は逆であっても構わない。
【0048】
次に暗号装置2のユーザIF部201は共有秘密情報及び初期化用情報をディスプレイに表示させ(図4−S303、図6−D303)、暗号装置1のユーザは暗号装置2のディスプレイに表示された共有秘密情報及び初期化用情報を入力する(図4−S304、図6−D304)。
【0049】
暗号装置1は入力された共有秘密情報に基づいて共通鍵を生成し(図4−S305、暗号鍵受信ステップ)、暗号装置2も同様に共有秘密情報に基づいて共通鍵を生成する(図4−S306、暗号鍵送信ステップ)。なお、共有秘密情報に基づく共通鍵の生成処理については後述する。また、以降の初期化処理において、この共通鍵を用いた暗号化によって両装置間の通信が行なわれる。また、共通鍵による通信の前にクライアントである暗号装置1において、PIN(Personal Identification Number)認証を実施することによりセキュリティを高めても良い。
【0050】
共通鍵を生成した暗号装置1は入力された初期化情報であるIPアドレスに基づいて暗号装置2に対して接続要求を送信し(図4−S307、図7−D307)、接続要求を受信した暗号装置2は要求を許可する(図4−S308、図7−D308、接続許可ステップ)。なお、暗号装置1からの接続要求に対する暗号装置2の選択肢は、“一時的接続許可”、“恒久的接続許可”、“接続拒否”とする。“一時的接続許可”が選択されると、暗号装置2の共通鍵処理部203は乱数を生成し、それをカウンタ値として暗号装置1に送信する(共通鍵送信ステップ)。また、“恒久的接続許可”が選択されると、暗号装置2の共通鍵処理部203はカウンタ処理部206からその時点のカウンタ値を取得し、暗号装置1へ送信する。また、“接続拒否”が選択されると暗号装置2は暗号装置1との通信を終了し、初期化処理を終了する。図4においては、“恒久的接続許可”が選択されたものとする。
【0051】
上述のように暗号装置2が接続要求に対して確認を行なうことによって、暗号装置2のユーザは暗号装置2に対して接続要求があることを知ることができ、その要求に対して判断を下すことができるため、不正利用者からのアクセスを防止することができる。なお、IPアドレスが一致するか否かの判断は初期化処理部102によってなされるものとする。
【0052】
次に、接続を許可した暗号装置2の共通鍵処理部103は暗号装置1に対しカウンタ値を送信し(図4−S309、図8−D309)、暗号装置1はカウンタ値を取得する(図4−S310、図8−D310)。
【0053】
図9は暗号装置の共有秘密情報による共通鍵生成処理の動作を示すシーケンス図である。この図で示す動作は図4のステップS305、ステップS306における処理の詳細な動作である。
【0054】
まず、暗号装置1の共通鍵処理部103が乱数K0を生成し(S401)、生成した乱数K0に基づいて以下の式によりK1を算出して暗号装置2に対して送信する(S402)。
【0055】
K1=E(MAC(共有秘密情報),K0)
【0056】
K1を受信した暗号装置2の共通鍵処理部203はK1に基づいて以下の式によりK0を算出する(S403)
【0057】
K0=D(MAC(共有秘密情報),K1)
【0058】
さらに、暗号装置2の共通鍵処理部203は乱数K2を生成し(S404)、K2に基づいて以下の式によりK3を算出して暗号装置1に送信する(S405)。
【0059】
K3を受信した暗号装置1の共通鍵処理部103はK3に基づいて以下の式によりK4及びK5を算出し(S406)、K5を暗号装置2に送信する(S407)。
【0060】
K4=D(MAC(K0),K3)
【0061】
K5=E(MAC(K0),(K4+1))
【0062】
K5を受信した暗号装置2はK5に基づいて以下の式によりK6を算出し、K6=K2+1であることを確認する(S408)。なお、K6=K2+1であることが確認できない場合、暗号装置2は暗号装置1との通信を遮断する。
【0063】
K6=D(MAC(K0),K5)
【0064】
暗号装置2がK6=K2+1であることを確認した後、暗号装置1及び暗号装置2の共通鍵処理部103及び共通鍵処理部203は共通鍵管理部104及び共通鍵管理部204にK0を共通鍵として入力し、共通鍵管理部104及び共通鍵管理部204は共通鍵を暗号通信部105及び暗号通信部205に夫々入力し、共通鍵K0により初期化処理における通信を行なう(S409)。
【0065】
次に、クライアント動作する複数の暗号装置を対象とした複数鍵更新処理について説明する。図10は暗号装置の複数鍵更新処理の動作を示すシーケンス図である。また図11〜図14は複数鍵更新処理における画面表示を示す図である。なお、図10ではクライアント動作する複数の暗号装置を便宜上単独で記載しているが、対象となる装置の数だけ存在しているものとする。
【0066】
まず、サーバ動作する暗号装置2において、カウンタ値更新処理が起動され(S501)、暗号装置2のカウンタ処理部206はカウンタ値の初期値となる乱数を生成する(図10−S502、図11−D502)。なお、暗号装置2はこのカウンタ初期値とは別に更新前のカウンタ値も保持している。
【0067】
さらに、暗号装置2はUDP(User Datagram Protocol)ブロードキャスト送信を行って対象となるクライアント動作する暗号装置1からの応答を待ち、応答を返した暗号装置1へ生成したカウンタ初期値を更新前のカウンタ値と共有秘密情報によって暗号化して送信し(図10−S503、図12−D503)、暗号装置1はカウンタ初期値を受信して(図10−S504)、暗号装置1のカウンタ処理部106はカウンタ初期値を取得し、カウンタをリセットする(図10−S505、図12−D505)。
【0068】
なお、UDPブロードキャストに使用されるポート番号は通信を行なう暗号装置1及び暗号装置2間で統一されていれるものとする。また、暗号装置1及び暗号装置2において予め定められた値M及びNと更新前のカウンタ値を用いて以下の式により通信を行なうポート番号が決められても良い(ポート番号算出ステップ)。
【0069】
ポート番号=M+カウンタ値%N
【0070】
この式において%は剰余算を意味し、M及びNはネットワーク上の他のサービスと競合しない所定の値とする。また、ポート番号の決定においてもカウンタ値の補正がなされても良い。なお、このポート番号を算出する処理は初期化処理部103により実行されるものとする。
【0071】
カウンタ値を初期化した暗号装置1はカウンタ値の初期化が終了したことを暗号装置2に更新前のカウンタ値と共有秘密情報に基づいて暗号化して通知し(図10−S506、図13−D506)、暗号装置2はその通知を受信する(図10−S507、図13−D507)。
【0072】
さらに暗号装置2は他のクライアント動作する暗号装置1へステップS503〜S507の動作を鍵更新する装置の数だけ繰り返し実行する(図10−S508)。なお、夫々の装置において更新されるカウンタ初期値は処理時点の時間に合わせて更新されたカウンタ初期値である。
【0073】
鍵更新すべき全ての暗号装置1に対して更新を実行した暗号装置2は暗号装置1とのずれが生じないように調整するために、複数の暗号装置1との処理応答において生じた最大遅延時間に応じた時間待機した後にカウンタ値をカウンタ初期値に置き換える(図10−S509、図14−D509)。
【0074】
以上の動作により、暗号装置1及び暗号装置2はカウンタ値の更新という処理によって鍵の更新を行なうことができるため、従来技術の鍵の更新よりも装置のリソースを消費しない。
【0075】
次に、上述の鍵更新処理において、カウンタ値が更新されなかったクライアント動作する暗号装置に対する鍵更新処理について説明する。図15はエラーを返すクライアントとして動作する暗号装置に対する鍵更新処理の動作を示すシーケンス図である。また、図16〜図18は図15の鍵更新処理における画面表示を示す図である。なお、図15において、暗号装置1は図3のステップS205においてカウンタ値が補正の許容値Nを超えており、カウンタ値の更新がなされていないものとする。
【0076】
まず、暗号装置2は暗号装置1に対してエラー通知を送信し(図15−S601、図16−D601)、暗号装置1はエラー通知を受信する(図15−S602、図16−D602)。なお、暗号装置1はエラー通知を受信した際、カウンタ値の更新をするか否かを暗号装置1のユーザに確認するために、PINコードによる利用者認証を実施しても良い。
【0077】
次に、暗号装置1は図9において説明したように共有秘密情報に基づいて共通鍵を生成し(図15−S603)、同様に暗号装置2も共有秘密情報に基づいて共通鍵を生成し(図15−S604)、両装置間での通信確認を行なう(図15−S605)。
【0078】
共有秘密情報に基づく暗号通信が確立されると、暗号装置2の共通鍵処理部203は初期化処理部202を介してユーザIF部201にディスプレイに接続要求が来ている旨を通知させる(図15−S606、図17−D606)。なお、暗号装置1からの接続要求に対する暗号装置2の選択肢は、“一時的接続許可”、“恒久的接続許可”、“接続拒否”とする。“一時的接続許可”が選択されると、暗号装置2の共通鍵処理部203は乱数を生成し、それをカウンタ値として暗号装置1に送信する。また、“恒久的接続許可”が選択されると、暗号装置2の共通鍵処理部103はカウンタ処理部206からその時点のカウンタ値を取得し、暗号装置1へ送信する。また、“接続拒否”が選択されると暗号装置2は暗号装置1との通信を終了し、初期化処理を終了する。図4においては、“恒久的接続許可”が選択されたものとする。
【0079】
接続を許可した暗号装置2の共通鍵処理部203は暗号装置1に対しカウンタ値を送信し(図15−S607、図18−D607)、暗号装置1はカウンタ値を取得する(図15−S608、図18−D608)。
【0080】
カウンタ値を取得した暗号装置1はカウンタ値をリセットして、以降は共有秘密情報及びカウンタ値に基づいて暗号装置2と暗号通信を行なう。
【0081】
なお、本実施の形態では装置内部に発明を実施する機能が予め記録されている場合で説明をしたが、これに限らず同様の機能をネットワークから装置にダウンロードしても良いし、同様の機能を記録媒体に記憶させたものを装置にインストールしてもよい。記録媒体としては、CD−ROM等プログラムを記憶でき、かつ装置が読み取り可能な記録媒体であれば、その形態は何れの形態であっても良い。またこのように予めインストールやダウンロードにより得る機能は装置内部のOS(オペレーティング・システム)等と共働してその機能を実現させるものであってもよい。
【図面の簡単な説明】
【0082】
【図1】本実施の形態における暗号装置の構成を示すブロック図である。
【図2】暗号装置の共通鍵の更新動作を示すシーケンス図である。
【図3】暗号装置のカウンタ補正処理の動作を示すフローチャートである。
【図4】暗号装置の共有秘密情報及びカウンタ値の初期化動作を示すシーケンス図である。
【図5】初期化動作における画面表示を示す図である。
【図6】初期化動作における画面表示を示す図である。
【図7】初期化動作における画面表示を示す図である。
【図8】初期化動作における画面表示を示す図である。
【図9】暗号装置の共有秘密情報による共通鍵生成処理の動作を示すシーケンス図である。
【図10】暗号装置の複数鍵更新処理の動作を示すシーケンス図である。
【図11】複数鍵更新処理における画面表示を示す図である。
【図12】複数鍵更新処理における画面表示を示す図である。
【図13】複数鍵更新処理における画面表示を示す図である。
【図14】複数鍵更新処理における画面表示を示す図である。
【図15】エラーを返すクライアントとして動作する暗号装置に対する鍵更新処理の動作を示す図である。
【図16】エラーを返すクライアントに対する鍵更新処理における画面表示を示す図である。
【図17】エラーを返すクライアントに対する鍵更新処理における画面表示を示す図である。
【図18】エラーを返すクライアントに対する鍵更新処理における画面表示を示す図である。
【符号の説明】
【0083】
暗号装置、101,201 ユーザIF部、102,202 初期化処理部、103,203 共通鍵処理部、104,204 共通鍵管部、105,205 暗号通信部、106,206 カウンタ処理部、107,207 セキュア保存領域。
【技術分野】
【0001】
本発明は、所定の時間毎に更新されるカウンタ値に基づく暗号化及び復号により暗号通信を行なう暗号化装置、端末装置、暗号化プログラム及び方法、情報処理プログラム及び方法に関する。
【背景技術】
【0002】
情報通信における暗号方式のひとつとして、暗号化と復号化で同じ鍵を用いる共通鍵暗号方式が知られている。秘密情報としての共通鍵を基礎とするデータの暗号/復号システムまたは暗号通信システムにおいて、共通鍵情報の漏洩対策または秘匿性向上のための定期的な保守作業として、共通鍵の更新を考えた場合、新しい共通鍵を配信する装置と共通鍵を更新される装置間で相互に正規の装置であることを確認し、且つ送受される共通鍵の漏洩を防ぐ必要がある。
【0003】
上述の条件を満たす安全な共通鍵配信の手段としては、共通鍵を配信する装置の利用者自身が例えばUSBメモリーなどの物理的に独立した記憶媒体に共通鍵を書き込み、共通鍵を更新される装置に共通鍵が書き込まれた記憶媒体用のインターフェースを予め設けておく手段や、公開鍵方式等の別途用意された手段により両装置の相互認証性と通信の秘匿性を確保しつつ新しい共通鍵の送受を行う等、共通暗号方式とは別の手段を仮定する必要がある。
【0004】
上述の問題を解決する技術として、暗号化する装置と復号化する装置の時間の同期によって鍵を生成し、暗号通信に先立つ鍵交換シーケンスのないセッションキーを保持する仕組みを実現する技術が知られている(例えば特許文献1参照)。
【0005】
しかし、特にEthernet(登録商標)に代表される実時間通信を保障しないインターネット通信においては、鍵生成に用いられる時間情報の更新間隔が小さければ小さい程、暗号化する装置と復号化する装置の同期にずれが生じて、復号に失敗する恐れがある。また逆に、更新間隔が大きければ大きい程、盗聴者は暗号解読のための情報を想定しやすくなる。
【0006】
この同期のずれを解決する技術として、誤り訂正符号を暗号対象データに対して算出して付加する技術が知られている(例えば特許文献2参照)。
【特許文献1】特開2002−290391号公報
【特許文献2】特開2006−238200号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献2の技術によると、通信する情報量が大きくなるにつれて、その情報に対する誤り訂正符号の算出に係るリソース消費量が増大することになり、処理能力の低い携帯電話機のような小型装置や高速処理を必要とする装置には適さない。
【0008】
本発明は上述した課題を解決するためになされたものであり、所定の時間で更新されるカウンタ情報に基づく暗号化データの復号化処理におけるカウンタ情報のずれを処理能力が低い装置であっても補正することができる暗号化装置、端末装置、暗号化プログラム及び方法、情報処理プログラム及び方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
上述した課題を解決するため、本発明の一態様は、端末装置と暗号通信を行なうことができる暗号化装置であって、前記端末装置と共に、所定の時間毎に更新される値である暗号鍵を管理する暗号鍵管理部と、前記端末装置により管理されている前記暗号鍵に基づいて暗号化された所定のデータを受信する受信部と、前記受信部により受信され暗号化された前記所定のデータを復号し、前記端末装置により管理されている暗号鍵と前記暗号鍵管理部により管理されている暗号鍵との値の差を求め、該差に基づいて前記暗号鍵管理部において管理されている暗号鍵を補正し、前記端末装置と共通して用いる共通鍵を生成し、補正した前記暗号鍵に基づいて前記共通鍵を暗号化して前記端末装置に送信する共通鍵送信部とを備える。
【0010】
また、本発明の一態様は、暗号化装置と暗号通信を行なうことができる端末装置であって、前記暗号化装置と共に、所定の時間毎に更新される暗号鍵を管理する暗号鍵管理部と、所定のデータを前記暗号鍵に基づいて暗号化し、暗号化された前記所定のデータを前記暗号化装置に送信する送信部と、前記暗号化装置と共通して用いられる鍵であり、前記暗号化装置において生成され、前記所定のデータに基づいて補正された暗号鍵に基づいて暗号化された鍵である共通鍵を受信し、前記暗号鍵管理部において管理される前記暗号鍵に基づいて復号する共通鍵受信部とを備える。
【0011】
また、本発明の一態様は、端末装置と暗号通信を行なうことができる暗号化プログラムであって、前記端末装置と共に、所定の時間毎に更新される値である暗号鍵を管理する暗号鍵管理ステップと、前記端末装置により管理されている前記暗号鍵に基づいて暗号化された所定のデータを受信する受信ステップと、前記受信ステップにより受信され暗号化された前記所定のデータを復号し、前記端末装置により管理されている暗号鍵と前記暗号鍵管理ステップにより管理されている暗号鍵との値の差を求め、該差に基づいて前記暗号鍵管理ステップにおいて管理されている暗号鍵を補正し、前記端末装置と共通して用いる共通鍵を生成し、補正した前記暗号鍵に基づいて前記共通鍵を暗号化して前記端末装置に送信する共通鍵送信ステップとをコンピュータに実行させる。
【発明の効果】
【0012】
本発明によれば、所定の時間で更新されるカウンタ情報に基づく暗号化データの復号処理におけるカウンタ情報のずれを処理能力が低い装置であっても補正することができる暗号化装置、端末装置、暗号化プログラム及び方法、情報処理プログラム及び方法を提供することが可能となる。
【発明を実施するための最良の形態】
【0013】
以下、本発明の実施の形態について図面を参照しつつ説明する。
【0014】
まず、本実施の形態における暗号装置の構成を図1に示す。なお、本実施の形態において、暗号装置1(端末装置)と暗号装置2(暗号化装置)は暗号通信機能に関しては同じ構成である異なる装置であり、暗号装置1はクライアントとして動作する携帯電話機とし、暗号装置2はサーバとして動作するパーソナルコンピュータとする。また、暗号装置1と暗号装置2はネットワーク上で通信を行なうものとするが、有線通信、赤外線、近距離のみ有効な無線通信のいずれであっても良い。また、図1において両装置は図示しないディスプレイ及び入力部を備えるものとし、大容量のデータを容易に転送できるバーコードによって、後述する秘密鍵を夫々の装置のディスプレイに表示し(秘密鍵表示ステップ)、それらを互いに読み取ることにより通信を行なっても構わない。
【0015】
暗号装置2に対してクライアント動作する暗号装置1は、ユーザIF部101(秘密鍵表示部)、初期化処理部102(接続許可部、ポート番号算出部)、共通鍵処理部103(送信部、暗号鍵受信部、共通鍵受信部)、共通鍵管理部104、暗号通信部105、カウンタ処理部106(暗号鍵管理部)、セキュア保存領域107(秘密鍵管理部)を備える。
【0016】
また、暗号装置1に対してサーバ動作する暗号装置2は、ユーザIF部201(秘密鍵表示部)、初期化処理部202(接続許可部、ポート番号算出部)、共通鍵処理部203(受信部、暗号鍵送信部、共通鍵送信部)、共通鍵管理部204、暗号通信部205、カウンタ処理部206(暗号鍵管理部)、セキュア保存領域207(秘密鍵管理部)を備える。
【0017】
セキュア保存領域107及びセキュア保存領域207は、同一の共通鍵によって暗号化及び復号化を行なうグループ内で共通に設定された情報であり、暗号通信及び暗号通信に係る初期化動作に用いられる情報である共有秘密情報(秘密鍵)を保持するものである。また、カウンタ処理部106及びカウンタ処理部206は1秒ごとに1の加算が行なわれるカウンタ値(暗号鍵)を出力するものである。
【0018】
ユーザIF部101及びユーザIF部201は図示しないディスプレイに情報を出力させ、同じく図示しない入力部からの情報を取得するものである。また、初期化処理部102及び初期化処理部202は共有秘密情報をセキュア保存領域107及びセキュア保存領域207にそれぞれ保存し、共有秘密情報及びカウンタ値の初期化時にユーザに対して情報を示すためユーザIF部101及びユーザIF部201の制御を行なうものである。
【0019】
共通鍵処理部103及び共通鍵処理部203は乱数を生成し、共有秘密情報、カウンタ値及び生成した乱数によって共通鍵生成に用いる値を算出するものである。また、サーバ動作する暗号装置2の共通鍵処理部203においては、誤差を想定してカウンタ値の補正処理がなされる。また、共通鍵管理部104及び共通鍵管理部204は共通鍵処理部103及び共通鍵処理部203によって夫々生成された共通鍵を管理するものである。また、暗号通信部105及び暗号通信部205は共通鍵管理部104及び共通鍵管理部204において管理される共通鍵によって通信情報を暗号化して送信し、受信した通信情報を共通鍵によって復号化する。
【0020】
次に、本実施の形態における暗号装置の動作を説明する。図2は暗号装置の共通鍵の更新動作を示すシーケンス図である。また、図2において、暗号装置1及び暗号装置2の共有秘密情報及びカウンタ値の初期化はすでになされ、暗号装置1及び暗号装置2は同じく設定された共有秘密情報及び同期されたカウンタ値を保持している(秘密鍵管理ステップ、暗号鍵管理ステップ)ものとする。
【0021】
まず、クライアントである暗号装置1の共通鍵処理部103が乱数K0を生成し(S101)、乱数K0とセキュア保存領域107から取得した共有秘密情報とカウンタ処理部106から取得したカウンタ値を用いて以下の式によって、値K1を算出し、暗号装置2へ送信する(S102、送信ステップ)。
【0022】
K1=E(MAC(XOR(共有秘密情報,カウンタ値))),カウンタ値||K0)
【0023】
この式において、E(A,B)は例えばDESやAES(Advanced Encryption Standard)のようなAを暗号鍵としてBの値を暗号化する関数を意味する。また、MAC()は例えばSHA(Secure Hash Algorithm)のような、引数のハッシュ値を計算するハッシュ関数であり、XORは排他的論理和を意味するものである。また、C||DはCとDをデータとして連結することを意味し、本実施の形態においてカウンタ値は10Byte(32bit、整数に対応)の長さの固定長の文字列表現とする。また、暗号装置1及び暗号装置2において、このカウンタ値をハッシュ演算した結果に置き換え、付加されるデータをより複雑にすることにより秘匿性を高めることもできる。
【0024】
暗号装置1より送信されたK1を受信した暗号装置2の共通鍵処理部203はカウンタ補正処理を実行し、K1からK0を算出する(S103、受信ステップ、共通鍵送信ステップ)。
【0025】
カウンタ補正処理は、暗号装置1及び暗号装置2にそれぞれ備わるカウンタ処理部106間に生じるずれを補正しつつ、K1からK0を算出するためになされる。なお、カウンタ補正処理の詳細については後述する。
【0026】
次に、暗号装置2の共通鍵処理部203は乱数K2を生成し(S104、共通鍵送信ステップ)、K2とカウンタ補正処理によって得られたK0を用いて以下の式により値I0を算出し、暗号装置1へ送信し(S105、共通鍵送信ステップ)、共通鍵管理部204にK2を入力し、共通鍵管理部204がK2を暗号通信部205に入力し、暗号通信部205はK2を共通鍵とする(S107)。
【0027】
I0=D(K0,K2)
【0028】
この式においてD(A,B)は関数E()による暗号化に対して、Aを暗号鍵としてBの値を復号する関数を意味する。
【0029】
I0を受信した暗号装置1の共通鍵処理部103は、以下の式によりK2を算出し(S106、共通鍵受信ステップ)、共通鍵管理部104にK2を入力し、共通鍵管理部104がK2を暗号通信部105に入力し、暗号通信部105はK2を共通鍵とする(S108)。
【0030】
K2=D(K0,I0)
【0031】
そして、暗号装置1の暗号通信部105及び暗号装置2の暗号通信部205は互いにK2を共通鍵として通信を行なう(S109)。以降、暗号装置1及び暗号装置2は全ての送信情報を以下の式によって暗号化する。
【0032】
暗号文=E(K2,平文)
【0033】
また、受信時は以下の式により受信情報を復号する。
【0034】
平文=D(K2,暗号文)
【0035】
上述の動作により、暗号装置1及び暗号装置2において同一に設定された情報である共有秘密情報と、両装置の初期化以降、時間に同期して更新されるカウンタ値に基づく共通鍵の暗号化によって、暗号装置2は暗号装置1に対して安全に共通鍵を送信することができる。
【0036】
図3は暗号装置のカウンタ補正処理の動作を示すフローチャートである。なお、暗号装置2にはカウンタ値の最大誤差を有する値Nが予め設定されているものとする。例えば、暗号装置1及び暗号装置2のカウンタ値のリセット間隔が1ヶ月であり、1ヶ月のカウンタのずれの最大値が±10ならば、N=10となる。
【0037】
まず、暗号装置2の共通鍵処理部203は暗号装置1の共通鍵処理部103により算出されたK1を取得し(S201)、以下の式により10Byteの長さの固定長の文字列表現であるLとLにデータ連結された値であるKを求める(S202)。
【0038】
L||K=D(MAC(XOR(共有秘密情報,サーバカウンタ値+i)),K1)
【0039】
D()はAを暗号鍵としてBの値を復号化する関数を意味し、図2のステップS102におけるK1の算出の際に用いられた式でのE()に対応するものである。サーバカウンタ値は暗号装置2のカウンタ値であり、iはカウンタ値を補正する値であり、−NからNまでの整数値であって、初期状態は−Nが設定されている。
【0040】
次に、暗号装置2の共通鍵処理部203は上述の式によって算出されたL||KよりLを取り出し、上述の式で用いられたサーバカウンタ値+iと等しいかどうかを判断する(S203)。
【0041】
Lとサーバカウンタ値が等しい場合(S203,YES)、つまりLが暗号装置1のカウンタ値である場合は、Lに付加されているKはK0であるため、暗号装置2の共通鍵処理部203はL||KからKを取り出す(S204)。
【0042】
また、ステップS203の判断において、Lとサーバカウンタ値+iが等しくない場合(S203,NO)、暗号装置2の共通鍵処理部203はiの絶対値がN以下であるかどうかを判断する(S205)。
【0043】
iの絶対値がN以下である場合(S205,YES)、暗号装置2の共通鍵処理部203はiに1を加算する(S207)。
【0044】
一方、iの絶対値がNより大きい場合(S205,NO)、暗号装置2の共通鍵処理部203はエラーを返す(S206)。なお、エラーが発生した場合、暗号装置1はカウンタ値を更新するが、この動作については後述する。
【0045】
上述の動作により暗号装置1と暗号装置2のカウンタ値のずれを処理能力の低い装置であっても補正することができる。また、サーバ動作をする暗号装置2で補正をするので、クライアント動作をする暗号装置1において誤り訂正符号処理のようなリソースを消費する処理が必要ない。
【0046】
次に、カウンタ値の初期化処理について説明する。図4は暗号装置1の共有秘密情報及びカウンタ値の初期化動作を示すシーケンス図である。また、図5〜図8は初期化動作における画面表示を示す図である。なお、図4において暗号装置2はすでに初期化がなされ、共有秘密情報及びカウンタ値が適切に設定されているものとする。また、初期化の際に用いられる情報である初期化用情報はサーバ動作する暗号装置2のIPアドレス(ネットワークアドレス)とする。
【0047】
まず、ユーザが暗号装置2の入力部を操作することにより、ユーザIF部201を介して暗号装置2のディスプレイに初期化画面が呼び出され(図4−S301、図5−D301)、同様にユーザが暗号装置1の入力部を操作することにより、ユーザIF部101を介して暗号装置1のディスプレイに初期化画面が呼び出される(図4−S302、図5−D302)。なお、これらの動作の順序は逆であっても構わない。
【0048】
次に暗号装置2のユーザIF部201は共有秘密情報及び初期化用情報をディスプレイに表示させ(図4−S303、図6−D303)、暗号装置1のユーザは暗号装置2のディスプレイに表示された共有秘密情報及び初期化用情報を入力する(図4−S304、図6−D304)。
【0049】
暗号装置1は入力された共有秘密情報に基づいて共通鍵を生成し(図4−S305、暗号鍵受信ステップ)、暗号装置2も同様に共有秘密情報に基づいて共通鍵を生成する(図4−S306、暗号鍵送信ステップ)。なお、共有秘密情報に基づく共通鍵の生成処理については後述する。また、以降の初期化処理において、この共通鍵を用いた暗号化によって両装置間の通信が行なわれる。また、共通鍵による通信の前にクライアントである暗号装置1において、PIN(Personal Identification Number)認証を実施することによりセキュリティを高めても良い。
【0050】
共通鍵を生成した暗号装置1は入力された初期化情報であるIPアドレスに基づいて暗号装置2に対して接続要求を送信し(図4−S307、図7−D307)、接続要求を受信した暗号装置2は要求を許可する(図4−S308、図7−D308、接続許可ステップ)。なお、暗号装置1からの接続要求に対する暗号装置2の選択肢は、“一時的接続許可”、“恒久的接続許可”、“接続拒否”とする。“一時的接続許可”が選択されると、暗号装置2の共通鍵処理部203は乱数を生成し、それをカウンタ値として暗号装置1に送信する(共通鍵送信ステップ)。また、“恒久的接続許可”が選択されると、暗号装置2の共通鍵処理部203はカウンタ処理部206からその時点のカウンタ値を取得し、暗号装置1へ送信する。また、“接続拒否”が選択されると暗号装置2は暗号装置1との通信を終了し、初期化処理を終了する。図4においては、“恒久的接続許可”が選択されたものとする。
【0051】
上述のように暗号装置2が接続要求に対して確認を行なうことによって、暗号装置2のユーザは暗号装置2に対して接続要求があることを知ることができ、その要求に対して判断を下すことができるため、不正利用者からのアクセスを防止することができる。なお、IPアドレスが一致するか否かの判断は初期化処理部102によってなされるものとする。
【0052】
次に、接続を許可した暗号装置2の共通鍵処理部103は暗号装置1に対しカウンタ値を送信し(図4−S309、図8−D309)、暗号装置1はカウンタ値を取得する(図4−S310、図8−D310)。
【0053】
図9は暗号装置の共有秘密情報による共通鍵生成処理の動作を示すシーケンス図である。この図で示す動作は図4のステップS305、ステップS306における処理の詳細な動作である。
【0054】
まず、暗号装置1の共通鍵処理部103が乱数K0を生成し(S401)、生成した乱数K0に基づいて以下の式によりK1を算出して暗号装置2に対して送信する(S402)。
【0055】
K1=E(MAC(共有秘密情報),K0)
【0056】
K1を受信した暗号装置2の共通鍵処理部203はK1に基づいて以下の式によりK0を算出する(S403)
【0057】
K0=D(MAC(共有秘密情報),K1)
【0058】
さらに、暗号装置2の共通鍵処理部203は乱数K2を生成し(S404)、K2に基づいて以下の式によりK3を算出して暗号装置1に送信する(S405)。
【0059】
K3を受信した暗号装置1の共通鍵処理部103はK3に基づいて以下の式によりK4及びK5を算出し(S406)、K5を暗号装置2に送信する(S407)。
【0060】
K4=D(MAC(K0),K3)
【0061】
K5=E(MAC(K0),(K4+1))
【0062】
K5を受信した暗号装置2はK5に基づいて以下の式によりK6を算出し、K6=K2+1であることを確認する(S408)。なお、K6=K2+1であることが確認できない場合、暗号装置2は暗号装置1との通信を遮断する。
【0063】
K6=D(MAC(K0),K5)
【0064】
暗号装置2がK6=K2+1であることを確認した後、暗号装置1及び暗号装置2の共通鍵処理部103及び共通鍵処理部203は共通鍵管理部104及び共通鍵管理部204にK0を共通鍵として入力し、共通鍵管理部104及び共通鍵管理部204は共通鍵を暗号通信部105及び暗号通信部205に夫々入力し、共通鍵K0により初期化処理における通信を行なう(S409)。
【0065】
次に、クライアント動作する複数の暗号装置を対象とした複数鍵更新処理について説明する。図10は暗号装置の複数鍵更新処理の動作を示すシーケンス図である。また図11〜図14は複数鍵更新処理における画面表示を示す図である。なお、図10ではクライアント動作する複数の暗号装置を便宜上単独で記載しているが、対象となる装置の数だけ存在しているものとする。
【0066】
まず、サーバ動作する暗号装置2において、カウンタ値更新処理が起動され(S501)、暗号装置2のカウンタ処理部206はカウンタ値の初期値となる乱数を生成する(図10−S502、図11−D502)。なお、暗号装置2はこのカウンタ初期値とは別に更新前のカウンタ値も保持している。
【0067】
さらに、暗号装置2はUDP(User Datagram Protocol)ブロードキャスト送信を行って対象となるクライアント動作する暗号装置1からの応答を待ち、応答を返した暗号装置1へ生成したカウンタ初期値を更新前のカウンタ値と共有秘密情報によって暗号化して送信し(図10−S503、図12−D503)、暗号装置1はカウンタ初期値を受信して(図10−S504)、暗号装置1のカウンタ処理部106はカウンタ初期値を取得し、カウンタをリセットする(図10−S505、図12−D505)。
【0068】
なお、UDPブロードキャストに使用されるポート番号は通信を行なう暗号装置1及び暗号装置2間で統一されていれるものとする。また、暗号装置1及び暗号装置2において予め定められた値M及びNと更新前のカウンタ値を用いて以下の式により通信を行なうポート番号が決められても良い(ポート番号算出ステップ)。
【0069】
ポート番号=M+カウンタ値%N
【0070】
この式において%は剰余算を意味し、M及びNはネットワーク上の他のサービスと競合しない所定の値とする。また、ポート番号の決定においてもカウンタ値の補正がなされても良い。なお、このポート番号を算出する処理は初期化処理部103により実行されるものとする。
【0071】
カウンタ値を初期化した暗号装置1はカウンタ値の初期化が終了したことを暗号装置2に更新前のカウンタ値と共有秘密情報に基づいて暗号化して通知し(図10−S506、図13−D506)、暗号装置2はその通知を受信する(図10−S507、図13−D507)。
【0072】
さらに暗号装置2は他のクライアント動作する暗号装置1へステップS503〜S507の動作を鍵更新する装置の数だけ繰り返し実行する(図10−S508)。なお、夫々の装置において更新されるカウンタ初期値は処理時点の時間に合わせて更新されたカウンタ初期値である。
【0073】
鍵更新すべき全ての暗号装置1に対して更新を実行した暗号装置2は暗号装置1とのずれが生じないように調整するために、複数の暗号装置1との処理応答において生じた最大遅延時間に応じた時間待機した後にカウンタ値をカウンタ初期値に置き換える(図10−S509、図14−D509)。
【0074】
以上の動作により、暗号装置1及び暗号装置2はカウンタ値の更新という処理によって鍵の更新を行なうことができるため、従来技術の鍵の更新よりも装置のリソースを消費しない。
【0075】
次に、上述の鍵更新処理において、カウンタ値が更新されなかったクライアント動作する暗号装置に対する鍵更新処理について説明する。図15はエラーを返すクライアントとして動作する暗号装置に対する鍵更新処理の動作を示すシーケンス図である。また、図16〜図18は図15の鍵更新処理における画面表示を示す図である。なお、図15において、暗号装置1は図3のステップS205においてカウンタ値が補正の許容値Nを超えており、カウンタ値の更新がなされていないものとする。
【0076】
まず、暗号装置2は暗号装置1に対してエラー通知を送信し(図15−S601、図16−D601)、暗号装置1はエラー通知を受信する(図15−S602、図16−D602)。なお、暗号装置1はエラー通知を受信した際、カウンタ値の更新をするか否かを暗号装置1のユーザに確認するために、PINコードによる利用者認証を実施しても良い。
【0077】
次に、暗号装置1は図9において説明したように共有秘密情報に基づいて共通鍵を生成し(図15−S603)、同様に暗号装置2も共有秘密情報に基づいて共通鍵を生成し(図15−S604)、両装置間での通信確認を行なう(図15−S605)。
【0078】
共有秘密情報に基づく暗号通信が確立されると、暗号装置2の共通鍵処理部203は初期化処理部202を介してユーザIF部201にディスプレイに接続要求が来ている旨を通知させる(図15−S606、図17−D606)。なお、暗号装置1からの接続要求に対する暗号装置2の選択肢は、“一時的接続許可”、“恒久的接続許可”、“接続拒否”とする。“一時的接続許可”が選択されると、暗号装置2の共通鍵処理部203は乱数を生成し、それをカウンタ値として暗号装置1に送信する。また、“恒久的接続許可”が選択されると、暗号装置2の共通鍵処理部103はカウンタ処理部206からその時点のカウンタ値を取得し、暗号装置1へ送信する。また、“接続拒否”が選択されると暗号装置2は暗号装置1との通信を終了し、初期化処理を終了する。図4においては、“恒久的接続許可”が選択されたものとする。
【0079】
接続を許可した暗号装置2の共通鍵処理部203は暗号装置1に対しカウンタ値を送信し(図15−S607、図18−D607)、暗号装置1はカウンタ値を取得する(図15−S608、図18−D608)。
【0080】
カウンタ値を取得した暗号装置1はカウンタ値をリセットして、以降は共有秘密情報及びカウンタ値に基づいて暗号装置2と暗号通信を行なう。
【0081】
なお、本実施の形態では装置内部に発明を実施する機能が予め記録されている場合で説明をしたが、これに限らず同様の機能をネットワークから装置にダウンロードしても良いし、同様の機能を記録媒体に記憶させたものを装置にインストールしてもよい。記録媒体としては、CD−ROM等プログラムを記憶でき、かつ装置が読み取り可能な記録媒体であれば、その形態は何れの形態であっても良い。またこのように予めインストールやダウンロードにより得る機能は装置内部のOS(オペレーティング・システム)等と共働してその機能を実現させるものであってもよい。
【図面の簡単な説明】
【0082】
【図1】本実施の形態における暗号装置の構成を示すブロック図である。
【図2】暗号装置の共通鍵の更新動作を示すシーケンス図である。
【図3】暗号装置のカウンタ補正処理の動作を示すフローチャートである。
【図4】暗号装置の共有秘密情報及びカウンタ値の初期化動作を示すシーケンス図である。
【図5】初期化動作における画面表示を示す図である。
【図6】初期化動作における画面表示を示す図である。
【図7】初期化動作における画面表示を示す図である。
【図8】初期化動作における画面表示を示す図である。
【図9】暗号装置の共有秘密情報による共通鍵生成処理の動作を示すシーケンス図である。
【図10】暗号装置の複数鍵更新処理の動作を示すシーケンス図である。
【図11】複数鍵更新処理における画面表示を示す図である。
【図12】複数鍵更新処理における画面表示を示す図である。
【図13】複数鍵更新処理における画面表示を示す図である。
【図14】複数鍵更新処理における画面表示を示す図である。
【図15】エラーを返すクライアントとして動作する暗号装置に対する鍵更新処理の動作を示す図である。
【図16】エラーを返すクライアントに対する鍵更新処理における画面表示を示す図である。
【図17】エラーを返すクライアントに対する鍵更新処理における画面表示を示す図である。
【図18】エラーを返すクライアントに対する鍵更新処理における画面表示を示す図である。
【符号の説明】
【0083】
暗号装置、101,201 ユーザIF部、102,202 初期化処理部、103,203 共通鍵処理部、104,204 共通鍵管部、105,205 暗号通信部、106,206 カウンタ処理部、107,207 セキュア保存領域。
【特許請求の範囲】
【請求項1】
端末装置と暗号通信を行なうことができる暗号化装置であって、
前記端末装置と共に、所定の時間毎に更新される値である暗号鍵を管理する暗号鍵管理部と、
前記端末装置により管理されている前記暗号鍵に基づいて暗号化された所定のデータを受信する受信部と、
前記受信部により受信され暗号化された前記所定のデータを復号し、前記端末装置により管理されている暗号鍵と前記暗号鍵管理部により管理されている暗号鍵との値の差を求め、該差に基づいて前記暗号鍵管理部において管理されている暗号鍵を補正し、前記端末装置と共通して用いる共通鍵を生成し、補正した前記暗号鍵に基づいて前記共通鍵を暗号化して前記端末装置に送信する共通鍵送信部と
を備える暗号化装置。
【請求項2】
請求項1に記載の暗号化装置において、
前記共通鍵送信部は、前記端末装置により管理されている暗号鍵と前記暗号鍵管理部により管理されている暗号鍵との値の差が所定の範囲内である場合に、該差に基づいて前記暗号鍵管理部により管理されている暗号鍵を補正することを特徴とする暗号化装置。
【請求項3】
請求項1または請求項2に記載の暗号化装置において、
前記受信部により受信された前記所定のデータの復号化された平文には前記端末装置により管理されている暗号鍵が含まれており、
前記共通鍵送信部は、前記暗号鍵管理部により管理されている前記暗号鍵を補正し、前記受信部により受信された前記所定のデータを補正した前記暗号鍵に基づいて復号し、復号した前記所定のデータに含まれる暗号鍵と補正した前記暗号鍵との一致を以って、前記端末装置により管理されている暗号鍵と前記暗号鍵管理部により管理されている暗号鍵との値の差を求めることを特徴とする暗号化装置。
【請求項4】
請求項1乃至請求項3のいずれかに記載の暗号化装置において、
前記端末装置と共通に設定された秘密鍵を管理する秘密鍵管理部と、
前記暗号鍵管理部により管理されている前記暗号鍵を前記秘密鍵に基づいて暗号化し、暗号化した暗号鍵を前記端末装置へ送信する暗号鍵送信部とをさらに備える暗号化装置。
【請求項5】
請求項4に記載の暗号化装置において、
前記暗号鍵送信部は、前記端末装置により管理されている暗号鍵と前記暗号鍵管理部により管理されている暗号鍵との値の差が所定の範囲内にない場合に、前記秘密鍵管理部により管理されている秘密鍵に基づいて、前記暗号鍵管理部により管理されている暗号鍵を暗号化し、暗号化した暗号鍵を前記端末装置へ送信することを特徴とする暗号化装置。
【請求項6】
端末装置と暗号通信を行なうことができる暗号化プログラムであって、
前記端末装置と共に、所定の時間毎に更新される値である暗号鍵を管理する暗号鍵管理ステップと、
前記端末装置により管理されている前記暗号鍵に基づいて暗号化された所定のデータを受信する受信ステップと、
前記受信ステップにより受信され暗号化された前記所定のデータを復号し、前記端末装置により管理されている暗号鍵と前記暗号鍵管理ステップにより管理されている暗号鍵との値の差を求め、該差に基づいて前記暗号鍵管理ステップにおいて管理されている暗号鍵を補正し、前記端末装置と共通して用いる共通鍵を生成し、補正した前記暗号鍵に基づいて前記共通鍵を暗号化して前記端末装置に送信する共通鍵送信ステップと
をコンピュータに実行させる暗号化プログラム。
【請求項7】
請求項6に記載の暗号化プログラムにおいて、
前記共通鍵送信ステップは、前記端末装置により管理されている暗号鍵と前記暗号鍵管理ステップにより管理されている暗号鍵との値の差が所定の範囲内である場合に、該差に基づいて前記暗号鍵管理ステップにより管理されている暗号鍵を補正することを特徴とする暗号化プログラム。
【請求項8】
請求項6または請求項7に記載の暗号化プログラムにおいて、
前記受信ステップにより受信された前記所定のデータの復号化された平文には前記端末装置により管理されている暗号鍵が含まれており、
前記共通鍵送信ステップは、前記暗号鍵管理ステップにより管理されている前記暗号鍵を補正し、前記受信ステップにより受信された前記所定のデータを補正した前記暗号鍵に基づいて復号し、復号した前記所定のデータに含まれる暗号鍵と補正した前記暗号鍵との一致を以って、前記端末装置により管理されている暗号鍵と前記暗号鍵管理ステップにより管理されている暗号鍵との値の差を求めることを特徴とする暗号化プログラム。
【請求項9】
請求項6乃至請求項8のいずれかに記載の暗号化プログラムにおいて、
前記端末装置と共通に設定された秘密鍵を管理する秘密鍵管理ステップと、
前記暗号鍵管理ステップにより管理されている前記暗号鍵を前記秘密鍵に基づいて暗号化し、暗号化した暗号鍵を前記端末装置へ送信する暗号鍵送信ステップとをさらにコンピュータに実行させる暗号化プログラム。
【請求項10】
請求項9に記載の暗号化プログラムにおいて、
前記暗号鍵送信ステップは、前記端末装置により管理されている暗号鍵と前記暗号鍵管理ステップにより管理されている暗号鍵との値の差が所定の範囲内にない場合に、前記秘密鍵管理ステップにより管理されている秘密鍵に基づいて、前記暗号鍵管理ステップにより管理されている暗号鍵を暗号化し、暗号化した暗号鍵を前記端末装置へ送信することを特徴とする暗号化プログラム。
【請求項1】
端末装置と暗号通信を行なうことができる暗号化装置であって、
前記端末装置と共に、所定の時間毎に更新される値である暗号鍵を管理する暗号鍵管理部と、
前記端末装置により管理されている前記暗号鍵に基づいて暗号化された所定のデータを受信する受信部と、
前記受信部により受信され暗号化された前記所定のデータを復号し、前記端末装置により管理されている暗号鍵と前記暗号鍵管理部により管理されている暗号鍵との値の差を求め、該差に基づいて前記暗号鍵管理部において管理されている暗号鍵を補正し、前記端末装置と共通して用いる共通鍵を生成し、補正した前記暗号鍵に基づいて前記共通鍵を暗号化して前記端末装置に送信する共通鍵送信部と
を備える暗号化装置。
【請求項2】
請求項1に記載の暗号化装置において、
前記共通鍵送信部は、前記端末装置により管理されている暗号鍵と前記暗号鍵管理部により管理されている暗号鍵との値の差が所定の範囲内である場合に、該差に基づいて前記暗号鍵管理部により管理されている暗号鍵を補正することを特徴とする暗号化装置。
【請求項3】
請求項1または請求項2に記載の暗号化装置において、
前記受信部により受信された前記所定のデータの復号化された平文には前記端末装置により管理されている暗号鍵が含まれており、
前記共通鍵送信部は、前記暗号鍵管理部により管理されている前記暗号鍵を補正し、前記受信部により受信された前記所定のデータを補正した前記暗号鍵に基づいて復号し、復号した前記所定のデータに含まれる暗号鍵と補正した前記暗号鍵との一致を以って、前記端末装置により管理されている暗号鍵と前記暗号鍵管理部により管理されている暗号鍵との値の差を求めることを特徴とする暗号化装置。
【請求項4】
請求項1乃至請求項3のいずれかに記載の暗号化装置において、
前記端末装置と共通に設定された秘密鍵を管理する秘密鍵管理部と、
前記暗号鍵管理部により管理されている前記暗号鍵を前記秘密鍵に基づいて暗号化し、暗号化した暗号鍵を前記端末装置へ送信する暗号鍵送信部とをさらに備える暗号化装置。
【請求項5】
請求項4に記載の暗号化装置において、
前記暗号鍵送信部は、前記端末装置により管理されている暗号鍵と前記暗号鍵管理部により管理されている暗号鍵との値の差が所定の範囲内にない場合に、前記秘密鍵管理部により管理されている秘密鍵に基づいて、前記暗号鍵管理部により管理されている暗号鍵を暗号化し、暗号化した暗号鍵を前記端末装置へ送信することを特徴とする暗号化装置。
【請求項6】
端末装置と暗号通信を行なうことができる暗号化プログラムであって、
前記端末装置と共に、所定の時間毎に更新される値である暗号鍵を管理する暗号鍵管理ステップと、
前記端末装置により管理されている前記暗号鍵に基づいて暗号化された所定のデータを受信する受信ステップと、
前記受信ステップにより受信され暗号化された前記所定のデータを復号し、前記端末装置により管理されている暗号鍵と前記暗号鍵管理ステップにより管理されている暗号鍵との値の差を求め、該差に基づいて前記暗号鍵管理ステップにおいて管理されている暗号鍵を補正し、前記端末装置と共通して用いる共通鍵を生成し、補正した前記暗号鍵に基づいて前記共通鍵を暗号化して前記端末装置に送信する共通鍵送信ステップと
をコンピュータに実行させる暗号化プログラム。
【請求項7】
請求項6に記載の暗号化プログラムにおいて、
前記共通鍵送信ステップは、前記端末装置により管理されている暗号鍵と前記暗号鍵管理ステップにより管理されている暗号鍵との値の差が所定の範囲内である場合に、該差に基づいて前記暗号鍵管理ステップにより管理されている暗号鍵を補正することを特徴とする暗号化プログラム。
【請求項8】
請求項6または請求項7に記載の暗号化プログラムにおいて、
前記受信ステップにより受信された前記所定のデータの復号化された平文には前記端末装置により管理されている暗号鍵が含まれており、
前記共通鍵送信ステップは、前記暗号鍵管理ステップにより管理されている前記暗号鍵を補正し、前記受信ステップにより受信された前記所定のデータを補正した前記暗号鍵に基づいて復号し、復号した前記所定のデータに含まれる暗号鍵と補正した前記暗号鍵との一致を以って、前記端末装置により管理されている暗号鍵と前記暗号鍵管理ステップにより管理されている暗号鍵との値の差を求めることを特徴とする暗号化プログラム。
【請求項9】
請求項6乃至請求項8のいずれかに記載の暗号化プログラムにおいて、
前記端末装置と共通に設定された秘密鍵を管理する秘密鍵管理ステップと、
前記暗号鍵管理ステップにより管理されている前記暗号鍵を前記秘密鍵に基づいて暗号化し、暗号化した暗号鍵を前記端末装置へ送信する暗号鍵送信ステップとをさらにコンピュータに実行させる暗号化プログラム。
【請求項10】
請求項9に記載の暗号化プログラムにおいて、
前記暗号鍵送信ステップは、前記端末装置により管理されている暗号鍵と前記暗号鍵管理ステップにより管理されている暗号鍵との値の差が所定の範囲内にない場合に、前記秘密鍵管理ステップにより管理されている秘密鍵に基づいて、前記暗号鍵管理ステップにより管理されている暗号鍵を暗号化し、暗号化した暗号鍵を前記端末装置へ送信することを特徴とする暗号化プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【公開番号】特開2010−68396(P2010−68396A)
【公開日】平成22年3月25日(2010.3.25)
【国際特許分類】
【出願番号】特願2008−234614(P2008−234614)
【出願日】平成20年9月12日(2008.9.12)
【出願人】(000003078)株式会社東芝 (54,554)
【出願人】(301063496)東芝ソリューション株式会社 (1,478)
【Fターム(参考)】
【公開日】平成22年3月25日(2010.3.25)
【国際特許分類】
【出願日】平成20年9月12日(2008.9.12)
【出願人】(000003078)株式会社東芝 (54,554)
【出願人】(301063496)東芝ソリューション株式会社 (1,478)
【Fターム(参考)】
[ Back to top ]