説明

非証明書公開キーインフラストラクチャーに基づく、安全なクライアント・サーバー間の通信を設計するシステムおよび方法

【課題】 楕円曲線暗号化法および非証明書公開キーインフラストラクチャーによるクライアントとサーバー間の安全な通信を促進するためのシステムおよび方法。
【解決手段】 このシステムは楕円曲線diffie hellmanアルゴリズムに基づくm−ビットの秘密キーを発生手段で構成されている。さらにこのシステムは、前記秘密キーと楕円曲線diffie hellmanアルゴリズムによってセッションキーを発生する、セッションキー発生器で構成されている。このセッションキーが、クライアントとサーバー間の安全な通信を促進するために使用される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は通信の分野に関している。
【0002】
特にこの発明は暗号分野およびネットワークの機密保護に関している。
【0003】
明細書で使用した用語の定義
【0004】
この明細書内の"Primitives"(基本命令)という用語は、楕円曲線diffie hellmanシステム、楕円曲線デジタル署名システムのようなデジタル署名の作成および認証に使用する既知のシステム、またメッセージランダム化システム、jacobi identity認証システムのようなメッセージの真正性を確認する既知のシステムに関するものである。
【0005】
「デジタル署名」または「署名」という用語は、メッセージおよび金融取引の真正性の判断、さらに偽造または不正使用の検出が必要の場合に使用する機構に関するものである。
【0006】
上記の定義は、先行技術に現れた定義以外のものである。
【背景技術】
【0007】
クライアント・サーバー網はタスク又は作業負荷をサービス・プロバイダー(サーバー)およびサービス・リクエスター(クライアント)に分割する分散アプリケーション構築である。このようなネットワーク通信は必ずしも保護されたものとは言えない。クライアント・サーバーセットアップでは安全な通信を行うために、多くの研究者および会社が公開キー暗号法、アイデンティティーに基づく暗号法などを使用している。
【0008】
1993年、強いパスワード式認証キー交換 (PAKE) が BollovinとMerritteによって提供された。これは、一つ以上の当事者のパスワードの認識に基づく暗号式キーを成立する対話式方法である。その後、スタンフォード大学は、信頼できないネットワークに対して使用する新規なパスワード認証およびキー交換機構セキュアー・レモート・プロトコール(SRP)の特許を取得した。続いて、Sun Microsystemsによって提案された楕円曲線暗号システムという技術はオープンSSL認証局に組み込まれた。このコードによって、楕円曲線式のcipher suitesを使用して、安全なTLS/SSLハンドシェイク(応答確認)ができるようになった。
【0009】
この分野に対して行われた上記以外の研究
【0010】
Seiji Miyazaki および Kazuo Takaragi(米国特許6477254)は、暗号化ステップと復号化ステップが含まれているデータ暗号化および復号方法を提供した。この暗号化ステップでは, 公開キー暗号スキーム内に秘密キーおよび公開キーのn(nは正の整数)ペアが作成される。少なくとも一つの公開キーに従って、新規のキーが発生する。この新規のキーによって、共通キー暗号化スキーム内にデータが暗号される。新規のキーおよびn公開キーと関連するtermsを有する(k, n) (k は整数で、またk≦n)閾値論理が作成される。新規のキーおよびn公開キーによって閾値論理の計算が行われ、暗号化されたデータと計算の結果が保存される。復号化ステップでは、n秘密キーおよび閾値論理に対応する閾値逆論理に従って行った閾値論理の計算の保存された結果から選択されたk秘密キーから新規なキーが回復され、保存されたデータが共通キー暗号化スキームに復号される。米国特許第6477254は、データ暗号化とデータ複号化というステップが含まれているデータの暗号化と複号化方法をそれぞれ提供することが中心としている。データの暗号化ステップは、さらに秘密キーと公開キーの"n"ペアを有しており、発生された公開キー内の少なくとも二つのキーによって新規なキーを発生することが含まれている。
【0011】
Roger Kilian-Kehrらは、(米国特許第7673141)アプリケーションサービスに、保護されたアクセスを与えるシステムを提供した。米国特許第7673141に記載されているシステムは、アクセスを求めているクライアントにチャレンジ(挑戦)を与える第一の暗号化のテクニックを使用するチャレンジ・プロバイダーを提供した。クライアントが返答を発生させるには第二の暗号化のテクニックを使用して認証サービスに返答する。チャレンジと返答が第一の暗号化のテクニックに補完する第一の認証テクニックによって、また第二の暗号化のテクニックに補完する第二の認証テクニックによってそれぞれ認証された場合のみ認証サービスがクライアントにアクセスを与える。
【0012】
Robert Relyeaに申請された米国特許出願第2008069338 はコンピュータシステムおよびトークン(クライアント)に関連した立地因子を検証する方法を提供した。トークンはサーバーから暗号化されたチャレンジを受信する。この暗号化されたチャレンジがサーバーとトークンの共用のキーによって暗号化される。トークンはその暗号化されたチャレンジを共通キーによって復号し、既定の楕円曲線暗号法(ECC)によって操作して、操作されたチャレンジを得る。トークンは署名済みの操作(マニピュレイト)されたチャレンジおよびECC公開キーをチャレンジの回答としてサーバーに戻す。サーバーは署名済みの操作されたチャレンジを受信し、それは実際にECC公開キーに基づいたトークンで発生したかどうかを確認する。米国特許出願第20080069338ではクライアントがサーバーから暗号されたチャレンジを受信し、そのチャレンジの暗号化がクライアントとサーバーいずれにも認識できるキーによって行われる。
【0013】
Alexander Gantmanら(米国特許出願第2009003597)は共通の係数(modulus)Nの使用を合意した二つのエンテイテイ間の認証の方法、またそのための手段を有する装置を提供した。米国特許出願第2009003597の方法は入力された値から疑似乱数の文字列値を発生するステップ、係数(modulus)Nおよび疑似乱数の文字列値に基づいた第一の公開キー値を発生するステップ、第一の公開キー値に対応する第一のプライベートキー値を発生するステップ、第二の公開キー値を受信するステップ、係数N、第一のプライベートキー値および第二の公開キー値に基づいた、共用の秘密値を発生するステップ、共用の秘密値を使用して認証署名を決定して、前記の認証署名を送信するステップで構成されている。米国特許出願第2009003597の方法はキー発生ユニットによって第一の公開キーおよび第一のプライベートキーを発生させる。このシステムはレシーバ・ユニットによって第二の公開キー値を受信し、また秘密キー発生ユニットによって秘密共用キー値を発生させる。
【0014】
米国特許出願第2010211779によれば、ランダムキー要素が発生され、それは第一の当事者(サーバー)に暗号化され、第二の当事者(クライアント)に送信される。ランダムキー部分が第二の当事者の公開キーを使用して暗号化される。したがって、第二の当事者は第一の当事者から送信されたキー要素を受信する。また第一のランダムキー要素を受信する以外に、第二の当事者は第二のキー要素を発生する。クライアント (第二の当事者) 側では、第一のキー要素および第二のキー要素が暗号され、暗号化されたランダムキー要素ペアが作成される。このように発生されたランダムキー要素ペアが暗号化され、第二の当事者(クライアント)から第一の当事者(サーバー)へ送信される。第二の当事者から暗号されたランダムキー要素ペアを受信してから、サーバーまたは第一の当事者は、暗号された第二のランダムキー要素を第二の当事者に送信する。また、その後のクライアントとサーバー間の全ての通信に使用するキーは、第二のランダムキーに基づいて、第一の当事者側に計算/決定される。米国特許出願第2010211779は、アイデンティティーに基づいた暗号化スキームを提供することを中心としている。
【0015】
Lane W. Leeに与えられた米国特許第7549044には、デジタル権利管理(DRM)システムを実施できるように構成されたブロック・レベル記憶装置が記載されている。関連のホストシステムから公開キーを受信して、その返答としてこの記憶装置はホストシステムに、信頼を勝ち取るためには、そのホストが対応するプライベートキーを持っていることを証明するように挑戦(チャレンジ)する。公開キーによってセキュアされたセッションキーを暗号化してこの信頼性を勝ち取られる。ホストシステムはそのプライベートキーを使用してセキュアされたセッションキーを回復する。記憶装置はコンテントキーによって暗号化されたコンテントを記憶することも可能である。これ以外に記憶装置はセキュアされたセッションキーによってコンテントキーの暗号化を行うこともある。米国特許第7549044は、デジタル権利管理システムを提供することを中心としている。米国特許第7549044には、セキュアされたセッションキー自体が暗号されており、その後記憶装置とクライアント間の安全な通信を確保するため復号されることが記載されている。
【0016】
Zhu Huafei(中国特許出願第1444168)は非対称暗号化法の確率をもとに、楕円曲線公開キー証明書を作成することを開示した。中国特許出願第1444168で記載されたシステムにはクライアントとサーバー間の安全な通信を行うため、衝突防止ハッシュ機能の原理、公開キー暗号化システムおよび公開キー証明書システムの使用が含まれている。本発明と中国特許出願第1444168のシステムの相違点は、本発明は証明書が不必要なインフラストラクチャーを有していることである。上記中国特許出願は楕円曲線暗号化(ECC)の使用が開示されているが、本発明と大きな相違点は、上記中国特許出願では証明書式公開キーインフラストラクチャーの使用が開示されており、それに対して本発明では非証明書式公開キーインフラストラクチャーが使用されている。
【先行技術文献】
【特許文献】
【0017】
【特許文献1】米国特許第6,477,254号
【特許文献2】米国特許第7,673,141号
【特許文献3】米国特許出願第2008069338明細書
【特許文献4】米国特許出願第2009003597明細書
【特許文献5】米国特許出願第2010211779明細書
【特許文献6】米国特許第7,549,044号
【特許文献7】中国特許出願第1444168明細書
【発明の概要】
【発明が解決しようとする課題】
【0018】
特許文献の先行技術と従来の技術の問題点は、それらはすべて証明書式公開キー暗号化法および真正性確認式暗号化法によって実施される。この暗号化法は実際に使用するとき、複雑、また高価なキー管理が必要となり、キーエスクローの問題も招いている。近年、まだ完全に解決できていない問題に対しては非証明書公開キー暗号化法(CL-PKC)が導入された。一般的にはCL−PKCは双線形対号および逆演算を使用するから、システムの性能低下させる原因になる。
【0019】
したがって、双線形対を試用しないで非証明書式キー・クプトシステムに基づくコストまた時間効果の良いシステムが要求された。
【0020】
本発明の目的はクライアントとサーバー間の通信を安全にできるようなシステムを提供することである。
【0021】
本発明のもう一つの目的は、クライアントとサーバー間の通信を安全にできるような強固なシステムを提供することである。
【0022】
本発明のもう一つの目的は、不正使用できないようなシステムを提供することである。
【0023】
本発明のもう一つの目的は、軽量な認証システムを提供することである。
【0024】
本発明のもう一つの目的は、コスト効率の良い、非証明書公開キー暗号化技術を使用するシステムを提供することである。
【0025】
本発明のもう一つの目的は、時間効率の良い、双線形対を使用しないで非証明書式暗号化法を実施するシステムを提供することである。
【0026】
本発明のもう一つの目的は、帯域幅が小さいでも機能できるシステムを提供することである。
【0027】
本発明のもう一つの目的は、作用するとき、記憶空間を効率的に使用する空間効率のよいシステムを提供することである。
【0028】
本発明のもう一つの目的は、オンライン現金取引をすぐに、また安全に行えるシステムを提供することである。
【0029】
本発明のもう一つの目的は、リプレーアタックおよびラッシングアタックを防止するシステムを提供することである。
【0030】
本発明のもう一つの目的は、情報損失を低下を可能なシステムを提供することである。
【0031】
本発明のもう一つの目的は、多大なデータ量を送信するときも性能を妥協しないシステムを提供することである。
【課題を解決するための手段】
【0032】
本発明は、下記に記述したものを含まれるクライアントとサーバー間の通信を安全にできるようなシステムを提供する。
・乱数を発生するように構成された乱数発生器
・上記の乱数を受信し、理処理済の値を作成するように構成された処理手段
・上記の理処理済の値を受信してそれに対して偽造検出を行う第一の検証手段、該当する第一の検証手段は、また検証された値を発生するように構成されている
・第一の検証手段に連結した、第一の値を発生するように構成された計算手段、この手段は、また第一の値に対応する第二の値を発生する
・既定primitives(基本命令)を有する第二の検証手段。この手段は該当する第二の値を受信し、検証するように構成されていて、さらに公開キーおよび対応するプライベートキーを発生するようにも構成されている
・該当の既定primitives(基本命令)を有する、また秘密キーを発生する手段。この秘密キーを発生する手段は上記の第二の検証手段から公開キーを受信し、秘密キーを発生させる
・該当の既定primitives(基本命令)を持っているセッションキーを発生する手段。このセッションキーを発生する手段は上記のセッションキーを発生する手段から該当の秘密キーを受信し、セッションキーを発生する
クライアントとサーバー間の通信を促進する該当の秘密キーとセッションキー。
【0033】
本発明によればこの好ましくは上記の処理手段は、上記の乱数を受信し、それを公開キーを使用して楕円曲線暗号化法によって暗号化するように構成する暗号化手段が含まれている。
【0034】
本発明によれば好ましくは上記の処理手段は、上記の乱数を受信し、それをメッセージ・ランダム化によって処理するように構成されている前処理手段が含まれている。
【0035】
本発明によれば好ましくは第一の検証手段は上記処理済みの値を受信して、それをプライベートキーを使用して、楕円曲線暗号化法によって複号するように構成されている手段が含まれている。
【0036】
本発明によれば好ましくは、第一の検証手段は上記の処理済みの値を受信し、それをメッセージ・ランダム化によって検証して偽造を検出できるように構成されている前処理手段が含まれている。
【0037】
本発明によれば好ましくは、第一の値が公開キーとプライベートキーのペアおよびJacobi identityが含まれている群から選択される。
【0038】
本発明によれば好ましくは、第二の値がデジタル署名された値とlie productが含まれている群から選択される。
【0039】
本発明によれば好ましくは、既定primitives(基本命令)は、曲線diffie hellman法、楕円曲線デジタル署名法およびjacobi identity検証システムが含まれている群から選択される。
【0040】
本発明によれば好ましくは、既定primitives(基本命令)は、楕円曲線diffie hellmanシステムおよび楕円曲線デジタル署名システムが含まれている群から選択される。
【0041】
本発明は下記に述べたステップで構成されている、クライアントとサーバー間の通信を安全にできることを促進するような方法を提供する。
・乱数を発生させる
・上記の乱数を処理して、処理済の値を発生する
・偽造検出を行うために上記の処理済の値の検証を行う
・第一の値を発生させる
・第一の値に対応する第二の値を発生させる
・既定primitives(基本命令)によって上記の第二の値を検証する
・公開キーとそれに対応するプライベートキーを発生する
・公開キーを送信し、プライベートキーを保有する
・送信された公開キーを受信し、既定primitives(基本命令)に基づく秘密キーを発生する
・上記の秘密キーと既定primitives(基本命令)に基づくセッションキーを発生する。
【0042】
本発明によれば一般的には上記の乱数を処理して処理済の値を得る方法は、さらにその乱数を公開キーを使用して楕円曲線暗号化システムによって暗号化する手段が含まれている。
【0043】
本発明によれば一般的には上記の乱数を処理して処理済の値を得る方法は、さらにその乱数をビット・シャフリング、圧縮、T−機能および線形フィードバック・シフト登録が含まれた群から選択されたもので処理する手段で構成されている。
【0044】
本発明によれば一般的には処理済の値を検証する方法は、上記の処理済の値を公開キーを使用して、楕円曲線暗号化法によって復号化する手段が含まれている。
【0045】
本発明によれば一般的には上記の処理済の値を検証する方法は、さらにメッセージランダム化法によって上記の処理済の値を検証する手段が含まれている。
【0046】
本発明によれば一般的には、第一の値を発生する方法は、公開キーとプライベートキーのペアを発生する手段が含まれている。
【0047】
本発明によれば一般的には、第一の値を発生する方法は、さらにjacobi identityを発生する手段が含まれている。
【0048】
本発明によれば一般的には、 第一の値に基づく第二の値を発生する方法はさらにデジタル的にサインした値を発生する手段が含まれている。
【0049】
本発明によれば一般的には、 第一の値に基づく第二の値を発生する方法はさらにlie productを発生する手段が含まれている。
【0050】
本発明によれば一般的には、既定のprimitives(基本命令)によって上記第二の値を検証する手段は、さらに上記第二の値を曲線diffie hellman法、楕円曲線デジタル署名法およびjacobi identity検証法が含まれている群から選択されたもので構成されている。
【0051】
本発明によれば一般的には, 送信された公開キーを受信し、既定primitives(基本命令)に基づく秘密キーを発生する手段は、さらに前記秘密キーを楕円曲線diffie hellman法と楕円曲線デジタル署名法を含まれている群から選択された既定のprimitivesによって発生する手段で構成されている。
【0052】
本発明によれば一般的には, 上記の秘密キーと既定primitives(基本命令)に基づくセッションキーを発生するステップは、さらに上記セッションキーを楕円曲線diffie hellman法と楕円曲線デジタル署名法を含まれている群から選択された既定のprimitivesによって発生する手段で構成されている。
【図面の簡単な説明】
【0053】
次に本発明を添付図面を参考して説明する。
【0054】
【図1】本発明による第一のネットワーク・セキュリテイー・プロトコルの順序を説明する図である。
【図2】本発明による第二のネットワーク・セキュリテイー・プロトコルの順序を説明する図である。
【図3】本発明による第三のネットワーク・セキュリテイー・プロトコルの順序を説明する図である。
【発明を実施するための形態】
【0055】
本発明を添付図に示した実施の形態を参考しながら説明する。ただし本発明はこの実施の形態に限定せず、この説明はただ本発明の好適な実施の形態例に関するものである。
【0056】
本発明はサーバーとクライアント間に非証明書式公開キーインフラストラクチャー(PKI)を使用して、安全な通信を行うシステムおよび三つのネットワーク・セキュリテイー・プロトコルを提供する。
【0057】
このシステムは、サーバー・クライアント・アーキテクチャーで構成されている、キーを発生するセンター(KGC)として公開キーとプライベートキーのペアなどのキーを発生する少なくとも一つのサーバー、少なくとも一つのクライアントおよび通信に必要なハードウエアのセット、ポリシー、プロスィージャーなどが含まれるPKIのインフラストラクチャーなどで構成される。
【0058】
第一のネットワーク・セキュリテイー・プロトコルによる上記非証明書PKI式通信によって、上記サーバーは、キーを発生するセンター(KGC)として公開キーとプライベートキーを分配するようになる。第一のネットワーク・セキュリテイー・プロトコルによる上記非証明書PKI式通信をセットアップするときのステップは図1に示されている。
【0059】
図1に示されているようにクライアントは"client Hello"などのような初期のメッセージを送信して通信を開始する。クライアントのメッセージの返答としてサーバーが乱数発生器によって、長さ"n"ビットの乱数(値)を発生させる。サーバーは、またクライアントの公開キーを使用してその発生された値を暗号させる。この乱数の暗号化処理間はデジタル証明書が作成されない。サーバーは個人のクライアントに割り当てたプライベートキーと公開キーのセットを追跡する。サーバー側では、その値を暗号させるために楕円曲線暗号化法が使用される。クライアントの公開キーによって暗号された値がクライアントへ送信される。サーバーはクライアントに、暗号化された値が含めている値を復号させる、またその真正性を証明するように、挑戦する。クライアントはそのプライベートキーおよび楕円曲線diffie hellmanアルゴリズムによってそれを復号化し、その値が信頼できるソースから送信したものかどうかを確認する。クライアントはその暗号化された値を受信し、プライベートキーによってそれを復号する。その暗号された値の復号化に成功して、もとの値を回復してクライアントがその信頼性を証明する。クライアントは、サーバーから送信された値の検証のステップ(すなわち、サーバーから送信された値の複号化)を完了して、楕円曲線暗号化法を使用して、公開キーとプライベートキーのペアを発生する。
【0060】
クライアントは、楕円曲線デジタルアルゴリズムによって、その複号化された値にシグネチャーを作成して、それをサーバーに送信する。サーバーは、クライアントから送信されたシグネチャーを受信して、楕円曲線デジタルアルゴリズムによってそれを検証する。クライアントから送信されたシグネチャーを受信してからすぐ、サーバーは楕円曲線diffie hellmanアルゴリズムによって公開キーとプライベートキーのペアを発生して、その発生されたキーをクライアントに送信する。
【0061】
サーバーから公開キーを受信した後、クライアントは楕円曲線diffie hellmanアルゴリズムによって長さ"m"ビットの秘密キーを発生し、その秘密キーをサーバーと共有する。サーバーは楕円曲線diffie hellmanアルゴリズムに基づく"m"ビットのセッションキーを発生する。秘密キーとそれに対応するセッションキーが楕円曲線diffie hellmanアルゴリズムによって発生される。図1の参考数字100は楕円曲線diffie hellmanアルゴリズムによって長さ"m"ビットのセッションキーを発生するステップを示している。その後のクライアントとサーバー間のすべての通信と取引に対してはこのセッションキーが使用される。セッションキーがサーバーとクライアントのみに認識されるので、クライアントとサーバー間の通信は全く安全に行われる。
【0062】
第一のネットワーク・セキュリテイー・プロトコルによって、クライアントとサーバー間の通信を安全にするようにする方法は次のようなステップが含まれている。
【0063】
初期のステップ:各クライアントはキー発生センター(KGC)として機能するサーバーに発生された公開キーとプライベートキーのペアを有している。
【0064】
第1ステップ:クライアントはサーバーに対して"Client Hello!"というメッセージを送信して通信を開始する。
【0065】
第2ステップ:サーバーは疑似乱数発生器(PRNG)によってランダムチャレンジ(挑戦)またはnビットの乱数を発生する。その後、サーバーは、クライアントの公開キーを使用して 楕円曲線暗号化法(ECE)によって乱数を暗号化する。クライアントはそのプライベートキーを使用して、ECEによってその暗号化された乱数を復号する。
【0066】
第3ステップ:クライアントは楕円曲線暗号化法(ECE)によって、その楕円曲線に公開キーとプライベートキーを発生させる。この公開キーとプライベートキーの長さはNIST(米国標準技術局)の推薦にしたがって、256ビット、384 ビット又は512になる。クライアントは楕円曲線デジタル署名アルゴリズムを使用して、サーバーから送信した値にシグネチャーを作成し、それをサーバーに送信する。
【0067】
第4ステップ:サーバーは楕円曲線デジタル署名アルゴリズムを使用してそのシグネチャーを検証し、続いてその楕円曲線にキー・ペアを発生させる。サーバーはその公開キーをクライアントに送信する。
【0068】
第5ステップ:クライアントとサーバーはECDH(楕円曲線diffie hellman)アルゴリズムによって共有のm−ビットの秘密キーを取り決める。
【0069】
第6ステップ:クライアントとサーバーは暗号化のため楕円曲線diffie hellmanアルゴリズムによって、発生されたm−ビットのセッションキーを取り決める。クライアントとサーバーはcipher suiteを有する。
【0070】
第7ステップ:クライアントとサーバー間に安全な通信が確実に開始される。
【0071】
上記のプロトコルでは、ランダムチャレンジまたはランダム値が暗号された形に送信されるから、アタッカーはそれを推測することはできない。したがって、リプレーアタックおよびラッシングアタックが防止される。
【0072】
第二のネットワーク・セキュリテイー・プロトコルによって、非証明書PKI式通信をセットアップする方法は図2に示している。第二のネットワーク・セキュリテイー・プロトコによって行う非証明書PKI式通信はクライアントとサーバーに対して公開キーとプライベートキーのペアを発生するため、初期セットアップがなく、クライアントとサーバーは、プレーン・テキストをランダムメッセージに変換するような独自のメッセージ前処理(MP)機能を持っている。したがって、第一のネットワーク・セキュリテイー・プロトコとは少し違う。乱数を送信するときは、変化が全くされなかったことを確保するのにBijectiveマッピングを使用されている。乱数の場合は元の値をマスクするように、その値を代表するビット順序の変化又はランダム化が行われる。
【0073】
図2に見えるように、クライアントは"client Hello"などのような初期のメッセージを送信して通信を開始する。クライアントのメッセージの返答としてサーバーが乱数発生器によって、長さ"n"ビットの乱数(値)を発生させる。サーバーはメッセージ前処理機能(メッセージランダム化機能)によって、その発生した乱数を処理する。前記のメッセージ前処理機能は三つの演算を順序に行うように構成されている。その三つの演算はシャッフリング、T−機能およびLFSR(リニアフィードバックシフトレジスター)である。前処理はビットのシャッフリングから始まる。ビットのシャッフリングは拡散を促進する。拡散とは、インプットの統計内の冗長性はアウットプットでは消散されることである。シャッフリングのプロセスは逆行可能なプロセスで、元のビット・シーケンスがシャッフルされたものから簡単に回復できる。
【0074】
ビットのシャッフリング処理の次はT−機能のプロセスが行われる。T−機能は更新機能で、これは各ビットをその各ビット自体およびそれより重要性の低いものを線形結合で更新する機能である。T−機能の処理の次はLFSR(リニア・フィードバック・シフト・レジスター)の機能がある。LFSRプロセスでは、232−1ピリオドの32次の既約多項式を使用される。LFSRの場合は、与えられたインプットは与えられた既約多項式にて4〜15周期まで移動される。ビットシャッフリング、T−機能およびLFSR(前処理と総称される)のアウトプットは、極めてランダム化された値である。
【0075】
発生した値の前処理を行ってから、サーバーはその前処理した値と元の値をクライアントに送信する。この前処理した値は元の値から誘導されたもので、この前処理した値と元の値の唯一の相違点としては、前処理した値の場合にはビットシーケンスが変化されていることである。クライアント側には前処理した値はシャッフリング、T−機能およびLFSRの機能を逆の順序で(すなわち、LFSR、T−機能およびビットシャッフリングの順序で)使用して検証される。値の前処理の場合は、上記の処理を逆の順序で実行する。この三つの機能は逆行可能な機能があるからそれらをデータの損失および有害影響なく逆の順序で実行することができる。クライアントは、上記の処理を逆の順序で実行して(すなわち、LFSR、T−機能およびビットシャッフリングの順序で)確認した値を取得する。クライアントは、LFSR、T−機能およびビット・シャッフリング・プロセスの結果を確認して取得した値をサーバーから送信された元の値と比較して、それは偽造されたものかどうかを検出する。サーバーから送信された値を検証した後、サーバーから送信された値が真性のものだったら、クライアントが楕円曲線diffie-hellmanアルゴリズムによって公開キーとプライベートキーのペアを発生させる。なおクライアントは楕円曲線デジタル署名アルゴリズムによってサーバーから送信された値にシグネチャーを作成して、そのシグネチャーを公開キーと共に送信する。そのシグネチャーを受信した後、サーバーは楕円曲線デジタル署名アルゴリズムによってクライアントから送信されたシグネチャーを検証して、続いて楕円曲線diffie hellmanアルゴリズムによって公開キーとプライベートキーのペアを発生させる。その後、サーバーは発生された公開キーをクライアントに送信する。
【0076】
サーバーから公開キーを受信してから、クライアントは楕円曲線diffie hellmanアルゴリズムによって長さ"m"ビットの秘密キーを発生し、それをサーバーと共有する。ここで、サーバーはその秘密キーと楕円曲線diffie hellmanアルゴリズムに基づいて"m"ビットのセッションキーを発生させる。上記の秘密キーとそれに対応するセッションキーが楕円曲線diffie hellmanアルゴリズムを使用して発生される。図2の参考数字200は、秘密キーと楕円曲線diffie hellmanアルゴリズムに基づいて"m"ビットのセッションキーを発生するステップを示している。その後のサーバーとクライアント間のすべての通信と取引の場合は、そのセッションキーが使用される。セッションキーがサーバーとクライアントのみに認識されるようになっているから、サーバーとクライアント間の通信が安全に行われる。
【0077】
第二のネットワーク・セキュリテイー・プロトコルによるクライアントとサーバー間の通信を安全にできるような方法は次のようなステップで構成されている。
【0078】
第1ステップ:クライアントはサーバーに対して"Client Hello!"というメッセージを送信して通信を開始する。
【0079】
第2ステップ:サーバーは疑似乱数発生器(PRNG)によってランダムチャレンジまたはnビットの乱数を発生して、乱数のメッセージ前処理を計算する。クライアントはその乱数とMP(乱数)を受信してMP(乱数)を検証する。
【0080】
第3ステップ:クライアントは楕円曲線に公開キーとプライベートキーを発生させる。この公開キーとプライベートキーの長さはNIST(米国標準技術局)の推薦にしたがって、256ビット、384ビット又は512となる。クライアントは楕円曲線デジタル署名アルゴリズムを使用して、サーバーから送信した値をサインし、そのシグネチャーを公開キーとともにサーバーに送信する。
【0081】
第4ステップ:サーバーはそのシグネチャーを検証し、続いてその楕円曲線にキーのペアを発生させる。サーバーはその公開キーをクライアントに送信する。
【0082】
第5ステップ:クライアントとサーバーはECDH(楕円曲線diffie hellman)アルゴリズムによって共有のm−ビットの秘密キーを取り決める。
【0083】
第6ステップ:クライアントとサーバーは暗号化のため楕円曲線diffie hellmanアルゴリズムによって、発生されたm−ビットのセッションキーを取り決める。
【0084】
第7ステップ:クライアントとサーバー間に安全な通信が確実に開始される。
【0085】
上記のプロトコルでは、乱数がプレーンな形にMP(乱数)とともに送信されるので、リプレーアタックおよびラッシングアタックが防止される。ここは、アタッカーが乱数を変更することができるが、MP(乱数) が変更されないというbijective性質の概念は興味深いものである。
【0086】
第三のネットワーク・セキュリテイー・プロトコルに基づく非証明書PKI(公開キーインフラストラクチャー) 式通信は第一のネットワークセキュリテイープロトコルに似ているが、シグネチャーの発生することが異なっている。クライアントはサーバーを認識するためにはJacobi identity というLie algebrasの特別商品を使用する。Jacobi identityはランダムチャレンジRC = x || y ||zで働き、[[x, y], z] + [[y, z], x] + [[z, x], y] = 0の関係に従う。
【0087】
第三のネットワークを使用してネットワーク・セキュリテイー・プロトコルによって非証明書PKI式通信を設定するときのステップは図3に示してある。
【0088】
図3に示されてあるようにクライアントは"client Hello"などのような初期のメッセージを送信して通信を開始する。クライアントのメッセージの返答としてサーバーが乱数発生器によって、長さ"n"ビットの乱数(値)を発生させる。サーバーはクライアントの公開キーを使用してその発生された値をまた暗号させる。この乱数の暗号化処理間はデジタル証明書が作成されない。サーバーは個人のクライアントに割り当てたプライベートキーと公開キーのセットを追跡する。サーバー側では、その値を暗号させるために楕円曲線暗号化法は使用される。クライアントの公開キーによって暗号化された値がクライアントに送信される。サーバーはクライアントに、暗号化された値を復号化させる、またその真正性を証明するように、挑戦する。クライアントはその暗号化された値を受信し、プライベートキーおよび楕円曲線暗号化法によってそれを複号化して宛先としてのその信頼性を証明する。
【0089】
クライアントは、また送信された値にjacobi identityを計算する。すなわち、クライアントはその復号した値を三つに分け、受信した値にlie productを発生させる。
【0090】
本発明によれば、この値を例えばx, yとzに分けたとしたら、その値のjacobi identityはx||y||zで表現される。その乱数のjacobi identityは[[x, y], z] + [[y, z], x] + [[z, x],y] =0の関係を使用して検証される。
【0091】
本発明によれば、クライアントはその値のlie productを発生してサーバーに送信すると、サーバーはクライアントから送信されたlie product を[[x, y], z] + [[y, z], x] + [[z, x],x] =0という関係によって検証する。クライアントから送信されたlie productの真正性を検証した後、サーバーは楕円曲線暗号化法によって、公開キーとプライベートキーのペアを発生させる。公開キーとプライベートキーのペアを発生するために、楕円曲線暗号化法の一部になっている楕円曲線diffie hellmanアルゴリズムが使用される。続いて、クライアントはその公開キーをクライアントに送信する。サーバーから公開キーを受信してから、クライアントは楕円曲線diffie hellmanアルゴリズムによって、長さmビットの秘密キーを発生して、それをサーバーと共用する。そこでサーバーは、秘密キーと楕円曲線diffie hellmanアルゴリズムを使用して、長さmビットのセッションキーを発生させる。この秘密キーと対応するセッションキーが楕円曲線diffie hellmanアルゴリズムによって発生される。図3の参考数字300は長さ"m"ビットのセッションキーを発生するステップを示している。その後のサーバーとクライアント間のすべての通信と取引に対してはこのセッションキーが使用される。セッションキーがサーバーとクライアントのみに認識されるので、クライアントとサーバー間の通信は全く安全に行われる。
【0092】
第三のネットワークによって、サーバーとクライアント間の通信が安全にできるような方法は次のステップで構成されている。
【0093】
初期ステップ:各クライアントはキー発生センター(KGC)として働くサーバーに発生された公開キーとプライベートキーのペアが有している。
【0094】
第1ステップ:クライアントは"Client Hello"などのような初期のメッセージを送信して通信を開始する。
【0095】
第2ステップ:サーバーは疑似乱数発生器(PRNG)によってnビットのランダムチャレンジまたは乱数を発生させる。その後、サーバーは、クライアントの公開キーを使用して楕円曲線暗号化法(ECC)によって乱数を暗号化する。クライアントはそのプライベートキーを使用して、楕円曲線暗号化法によってその暗号化された乱数の復号化を行う。
【0096】
第3ステップ:クライアントは乱数= x||y||z にJacobi identityを計算してそのLie product [[x, y], z]をサーバーに送信する。
【0097】
第4ステップ:サーバーは [[x, y], z] + [[y, z], x] + [[z, x], y] = 0の関係を検証する。サーバーはECC(楕円曲線暗号化法)を使用して、その公開キーをクライアントに送信する。
【0098】
第5ステップ:クライアントとサーバーはECDH(楕円曲線diffie hellman)アルゴリズムによって共有のm−ビットの秘密キーを取り決める。
【0099】
第6ステップ:クライアントとサーバーは暗号化のため、楕円曲線diffie hellmanアルゴリズムによって発生されたm−ビットのセッションキーを取り決める。クライアントとサーバーがcipher suiteを有している。
【0100】
第7ステップ:クライアントとサーバー間に安全な通信が確実に開始される。
【0101】
技術的進歩
【0102】
本発明の技術的な進歩が次のようである。
・本発明はクライアントとサーバー間に安全な通信を行う強固なシステムを提供する
・本発明は不正使用を防止するシステムを提供する
・本発明は軽量の認証システムを提供する
・本発明は非証明書公開キー暗号化テクニックを使用する、コスト効率の良い、システムを提供する
・本発明は時間効率の良い、双線形対を使用しないで非証明書式暗号化法を実施できるシステムを提供する
・本発明はリプレーおよびラッシングアタックを防止するプロトコルのセットを提供する
・本発明は帯域幅が小さいでも機能できるシステムを提供する
・本発明は解析的に強固な機能によって情報の損失を低下させるプロトコルのセットを提供する
・本発明はユーザのオンライン現金取引を安全に行えるプロトコルのセットを提供する
・本発明は膨大な伝送可能なデータがあっても、性能に悪影響を受けないプロトコルのセットを提供する
・本発明はTLS (トランスポート層セキュリテイー・プロトコル) および UDP (ユーザ・データグラム・プロトコル)通信、スマートフォン、モバイル・バンキング、 位置情報システム、セット・トップ・ボックス・ユニット、アクセス制御システム、遠隔制御システム、パーソナル・デジタル・アシスタント、無線装置、警報システム、メッシュ・トポロジー・ネットワーク、携帯電話による支払いするシステム、keyless go システム、モバイル通信システムなどのクライアント・サーバーセットアップに対するアプリケーションに有利なものである
【0103】
ここでは、本発明のある特徴が特に強調してあるものの、本発明の要旨を逸脱しない範囲で好適実施形態の種々変更、また変化が可能である。本発明の本質又は好適な実施形態の上記した変更は、この開示によって当業者には、明らかになるものだが、本発明は明細書に記載された説明に限られるものではなく、ただ本発明の実例と見なされるものであることは言うまでもない。

【特許請求の範囲】
【請求項1】
下記のもので構成されている、クライアントとサーバー間の通信を安全にできるようなシステム。
・乱数を発生できる乱数発生器
・上記した乱数を受信して、処理した値を作成する処理手段
・処理済の値を受信し、それを検証して偽造を検出する、また検証した値を発生するように構成された第一の処理手段
・第一の検証手段に連結された、第一の値を発生する、また前記第一の値に対応する第二の値を発生するように構成された計算手段
・既定のprimitives(基本命令)を有する、前記の第二の値を受信して検証する、また公開キーと対応するプライベートキーを発生する第二の検証手段
・既定のprimitives(基本命令)を有する、第二の検証手段から前記の第二の公開キーを受信して、秘密キーを発生するように構成されている秘密キー発生手段および
・前記の既定primitives(基本命令) を有する、秘密キー発生器から前記秘密を受信して、その秘密キーに対応するセッションキーを発生するセッションキー発生手段
クライアント・サーバー間の安全な通信を促進する前記秘密キーとセッションキー。
【請求項2】
前記処理手段は、前記乱数を受信して、それを楕円曲線暗号化法によって公開キーを使用して暗号化できるように構成されている暗号化手段が含まれる請求項1に記載されたシステム。
【請求項3】
前記処理手段は、前記乱数を受信し、それを前処理して、前記処理済の値を作成するように構成された前処理手段が含まれる請求項1に記載されたシステム。
【請求項4】
前記処理済の値を受信し、それをプライベートキーを使用して楕円曲線暗号化法によって復号するように構成されている複号化手段が含まれる請求項1に記載されたシステム。
【請求項5】
前記処理済の値を受信してそれを偽造を検出するため検証する前処理手段で構成されている第一の検証手段が含まれる請求項1に記載されたシステム。
【請求項6】
第一の値がjacobi identityおよび公開キーとプライベートキーのペアが含まれる群から選択される請求項1に記載されたシステム。
【請求項7】
前記第二の値はデジタルサインされた値とlie productが含まれる群から選択される請求項1に記載されたシステム。
【請求項8】
前記既定primitives (基本命令)は、曲線diffie hellmanシステム、楕円曲線デジタル署名システムおよびjacobi identity検証システムが含まれている群から選択される請求項1に記載されたシステム。
【請求項9】
クライアント・サーバー間の安全な通信を促進する、また次の手段が含まれる方法。
・乱数を発生する
・その乱数を処理して、処理済の値を発生する
・その処理した値を検証して、偽造があるかどうかを検出する
・第一の値を発生する
・第一の値に対応する第二の値を発生する
・既定のprimitives(基本命令)によって前記第二の値を検証する
・公開キーと対応するプライベートキーを発生する
・公開キーを送信して、プライベートキーを保有する
・前記送信された公開キーを受信して既定のprimitives(基本命令)に基づく秘密キーを発生する
・前記秘密キーと既定のprimitives(基本命令)に基づくセッションキーを発生する。
【請求項10】
前記乱数の処理で処理済の値を作成する手段は、さらに楕円曲線diffie hellman法、楕円曲線デジタル署名法およびメッセージランダム化法が含まれている群から選択したprimitives (基本命令)を使用して処理するステップで構成されている請求項9に記載された方法。
【請求項11】
前記処理済の値を検証して、偽造があるかどうかを検出するステップは、さらに楕円曲線diffie hellman法、楕円曲線デジタル署名法およびメッセージランダム化法が含まれている群から選択したprimitives (基本命令) を使用して処理するステップで構成されている請求項9に記載された方法。
【請求項12】
前記第一の値を発生するステップは、さらに公開キー、プライベートキーおよびjacobi identityが含まれる群から選択したものからその値を発生する請求項9に記載された方法。
【請求項13】
前記第一の値に対応する前記第二の値を発生するステップは、さらにデジタルサイン値およびlie productが含まれる群から選択した値を発生する請求項9に記載された方法。
【請求項14】
秘密キーを発生するステップは、さらに前記秘密キーを楕円曲線diffie hellman法、楕円曲線デジタル署名法が含まれている群から選択したprimitives (基本命令)に基づいて発生する請求項9に記載された方法。
【請求項15】
前記秘密キーおよび既定のprimitives(基本命令)に基づいてセッションキーを発生するステップは、さらにそのセッションキーを楕円曲線diffie hellman法、楕円曲線デジタル署名法が含まれる群から選択したprimitives(基本命令)に基づいて発生する請求項9に記載された方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate


【公開番号】特開2011−125020(P2011−125020A)
【公開日】平成23年6月23日(2011.6.23)
【国際特許分類】
【外国語出願】
【出願番号】特願2010−275385(P2010−275385)
【出願日】平成22年12月10日(2010.12.10)
【出願人】(510309259)タタ コンサルタンシー サービシズ リミテッド (3)
【Fターム(参考)】