(57)【要約】暗号化で使用する曲線について数学的なペアリングを決定することができる、１つもしくは複数の技法および／またはシステムが開示される。曲線について数学的なペアリングを決定するのに使用される複数の反転が（たとえば、計算の各要素の２進木表現のそれぞれのレベルにおいて単一の反転に）統合される。曲線についての数学的なペアリングは、統合された複数の反転を使用して右から左へと読み取ったスカラの２進表現からアフィン座標内で決定される。
2013517527.tif 000002
【特許請求の範囲】
【請求項１】
暗号化で使用する曲線について数学的なペアリングを決定するためのコンピュータ・ベースの方法であって、
１つまたは複数のマイクロプロセッサを使用して、前記曲線について前記数学的なペアリングを決定する際に使用される複数の反転を統合するステップと、
前記統合された複数の反転を使用して、右から左へと読み取ったスカラの２進表現に沿ってアフィン座標内で前記曲線についての前記数学的なペアリングを決定するステップと
を含むことを特徴とする方法。
【請求項２】
複数の反転を統合するステップが、数学的なペアリングを決定するために、前記複数の反転を統合して単一の反転にするステップを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記曲線について前記数学的なペアリングを決定するとき、１つまたは複数のペアリング計算のために、前記統合された複数の反転を再使用するステップを含むことを特徴とする請求項１に記載の方法。
【請求項４】
複数のプロセッサ上で右から左へと読み取ったスカラの２進表現に沿ってアフィン座標内で、前記曲線についての２つ以上の数学的なペアリングの決定を並列化するステップを含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記統合された反転の出力が、前記ペアリングの決定に際してラインの関数を更新するための傾斜値を含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記ペアリングの決定に際してラインの関数を更新するための１つまたは複数の傾斜値として、前記統合された複数の反転を使用するステップを含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記統合された反転の出力を使用して、前記数学的なペアリングを決定するのに使用されるラインの係数を更新するステップを含むことを特徴とする請求項１に記載の方法。
【請求項８】
右から左へと前記曲線についての前記スカラの２進表現を読み取るステップを含むことを特徴とする請求項１に記載の方法。
【請求項９】
前記曲線ポイントが、暗号化用途のために使用されるグループの要素を含むことを特徴とする請求項１に記載の方法。
【請求項１０】
前記統合された複数の反転を使用して、右から左へと読み取ったスカラの２進表現に沿ってアフィン座標内で前記曲線についての前記数学的なペアリングを決定するステップが、
右から左へと読み取った前記スカラの２進表現を使用して、スカラによって曲線ポイントの倍数を決定するステップと、
追加の統合の反転を決定するステップと、
前記統合された反転の出力を使用して、前記数学的なペアリングを決定するのに使用されるラインの関数を更新するステップと
を含むことを特徴とする請求項１に記載の方法。
【請求項１１】
暗号化で使用する曲線について数学的なペアリングを決定するためのシステムであって、
１つまたは複数の計算装置内に配置され、前記曲線についての前記数学的なペアリングを決定する際に使用される複数の反転を統合するように構成された１つまたは複数のプログラム化されたプロセッサと動作可能なように結合され、前記統合された反転のうちの１つまたは複数を格納するように構成されたデータ格納構成要素と動作可能なように結合された反転統合構成要素と、
前記データ格納構成要素と動作可能なように結合され、前記統合された複数の反転を使用して右から左へと読み取ったスカラの２進表現に沿ってアフィン座標において前記曲線についての前記数学的なペアリングを決定するように構成された数学的なペアリング決定構成要素と
を備えることを特徴とするシステム。
【請求項１２】
少なくとも２つの要素を受信するように構成された入力受信構成要素と、
前記スカラを含む暗号鍵と
を備える暗号化システムに含まれ、
前記受信された要素についての楕円曲線上での第１の数学的なペアリングの結果と、前記楕円曲線上の少なくとも２つのポイントについての第２の数学的なペアリングの結果とを、前記スカラを使用して比較するように構成されたことを特徴とする請求項１１に記載のシステム。
【請求項１３】
前記反転統合構成要素が、前記数学的なペアリングを決定するために前記複数の反転を、前記曲線上の２つのポイントについて前記数学的なペアリングを決定する際に使用するための単一の反転に統合するように構成されたことを特徴とする請求項１１に記載のシステム。
【請求項１４】
前記数学的なペアリング決定構成要素が、右から左へと読み取ったスカラの２進表現に沿ってアフィン座標において前記曲線ポイントの倍数について追加の関係の決定を並列化するように構成された複数のプロセッサと、動作可能なように結合されていることを特徴とする請求項１１に記載のシステム。
【請求項１５】
前記数学的なペアリング決定構成要素は、前記統合された複数の反転を決定する際に使用された第１の曲線ポイントが、前記統合された反転が再使用される第２の曲線ポイントと同じ要素である場合に、前記統合された複数の反転を再使用するように構成されることを特徴とする請求項１１に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、統合反転を使用する曲線上でのペアリングの決定に関する。
【背景技術】
【０００２】
コンピュータは、（インターネットなどの）ネットワークを介して相互接続される機会がますます増えてきており、セキュリティおよび認証の問題が、ますます重要になってきている。たとえば鍵ベースの暗号を必要とする暗号技法は、メッセージを形成し、暗号化プロセスを介して、一見理解不能なデータ（たとえば、通常は暗号文と呼ばれる）へと数学的に変換する、理解可能なデータ（たとえば、通常は平文と呼ばれる）のシーケンスを経ることができる。この例では、暗号化を反転させ、それにより、適切な鍵を有する暗号文の受取人は、この暗号文を平文に戻すことができるようになるが、不可能ではないにしても、適切な鍵をもたない受取人が平文の状態にすることは非常に難しくなる。
【０００３】
公開鍵暗号技法は、鍵ベースの暗号の一実施形態である。公開鍵暗号では、たとえば、それぞれの通信当事者が公開鍵／秘密鍵のペアを有する。それぞれのペアの公開鍵は、公に利用可能であり（たとえば、暗号化された通信文を送出しようとする他者には少なくとも利用可能であり）、秘密鍵の秘密は保持される。暗号化を使用して平文メッセージを受信側に伝達するためには、たとえば、送信側は、受信側の公開鍵を使用して平文メッセージを暗号化し、暗号文メッセージにすることができ、この暗号文メッセージを受信側に伝達することができる。この例では、暗号文メッセージを受信すると、受信側は、その秘密鍵を使用してこのメッセージを復号化し、それにより元の平文メッセージを復元する。
【０００４】
公開鍵／秘密鍵暗号化の一例は、２つの大きい素数を生成するステップと、それらを乗算して、大きい合成数を得るステップとを含み、この合成数が公開される。この例では、素数が適切に選択され、十分に大きい場合、その素数を知らない人が、合成数だけを知ることによってその素数を確定することは非常に難しい（たとえば、計算不能なので事実上不可能である）。しかし、この方法が安全であるためには、合成数のサイズが１，０００ビットを超えなければならない。状況によっては、こうした大きいサイズにより、この方法を使用することが非実用的になる。
【０００５】
認証の一例は、当事者またはマシンが、製品もしくはサービスへのアクセスまたはその使用を許可されていることを証明しようとする場合である。しばしば、ソフトウェア・プログラムでは製品ＩＤシステムが使用され、ソフトウェアに適切に代価を支払ったことを証明するために、適切にライセンスされたソフトウェア・パッケージの外側に刻印された製品ＩＤの数列をユーザが入力する。製品ＩＤの数列が長すぎる場合、扱いにくく、またユーザ・フレンドリではなくなる。他の一般的な例にはユーザ認証が含まれ、このときユーザは、認証コードを使用して、コンピュータ・システムに対して自分自身を認証する。
【０００６】
他の例としては、暗号化においてしばしば楕円曲線を使用して暗号鍵を生成する。楕円曲線は、暗号化によく適合した構造および特性を有する数学的対象である。暗号化で使用するために、楕円曲線についての多くのプロトコルが既に標準化されてきた。暗号化における最近の開発成果にはペアリングの使用が含まれ、楕円関数上の各ポイントなど、１つまたは複数のグループからの各要素のペアを組み合わせ、別のグループから新規の要素を生成して暗号化システムを作製することができる。
【発明の概要】
【０００７】
この発明の概要は、概念の中から選ばれたものを簡略化した形で紹介するために提供され、発明を実施するための形態において以下でさらに説明する。本発明の概要は、特許請求される主題の主要因または本質的な特徴を識別するものではなく、特許請求される主題の範囲を限定するために使用されるものでもない。
【０００８】
暗号化および復号化は、通常は秘密裏に実行される。この秘密は、一群のポイントの順序、または、生成装置もしくは生成装置の倍数などグループの他の特性を利用することができる。グループの各要素向けに各ポイントを楕円曲線上に実施することなど、暗号化においては様々な異なるグループを使用することができる。たとえば、こうしたグループについての離散対数問題（ＤＬＰ）が難しいと考えられるとき、暗号化／復号化において、楕円曲線から導出される一群の要素（たとえば、ポイント）を使用することができる。たとえば、安全な暗号化／復号化プロセスを作製するためには、暗号化においては困難なＤＬＰが好ましい。
【０００９】
現在、楕円曲線上でペアリングを計算するとき、楕円曲線が定義される有限体における乗算または反転など、多くの演算が必要になることがある。乗算の数を減らして、計算コストを低減させ、および／または他の方法で計算を迅速化する試みも可能である。計算を迅速化するための１つの技法は、ペアリングを計算するときに実行される反転の数を低減させることである。
【００１０】
たとえば、アフィン空間で動作するとき、乗算と反転の両方ともが実行され、反転は乗算よりも計算コストが高い。反転の数を低減させるために、現在の実務者は、アフィン空間から射影空間に曲線ポイントの座標系を変更する。これは、反転を低減させる効果を有するが、コンピュータではより安い乗算の数を増大させる。
【００１１】
本明細書に記載の技法および／またはシステムのうちの１つまたは複数により、座標を射影空間に変換するための代替になるものが提供されるが、楕円曲線でのペアリングを計算するには、反転数の低減がやはり必要である。これらの技法およびシステムを使用して、たとえばアフィン空間内の座標について反転を統合してもよく、ペアリング計算に使用される付加的な作用のために、これら統合された反転を再使用してもよい。さらに、たとえば、計算の部分をマルチコア・システム上で並列化して、計算時間全体を迅速化することができる。このようにして、たとえば、現在の実装形態よりも少ない計算資源で、またそれよりも短い時間で（たとえば、より速く）、暗号化システムで使用されるペアリングを計算することができる。
【００１２】
一実施形態では、暗号化で使用するための曲線向けの数学的なペアリングを決定するとき、曲線用のこの数学的なペアリングを決定するときに使用される複数の反転が統合される（たとえば、ペアリング計算での中間計算などの単一の反転になる）。曲線についての数学的なペアリングは、統合された複数の反転を使用して右から左へと読み取ったスカラの２進表現に沿ってアフィン座標内で決定される。
【００１３】
前述の目的および関連した目的を達成するために、以下の説明および添付図面が、ある種の例示的な態様および実装形態を説明する。これらは、１つまたは複数の態様が利用されてもよい、ほんのいくつかの互いに異なる方式を示す。本開示の他の態様、利点、および新規の特徴は、添付図面とともに考察すると、以下の詳細な説明から明らかとなろう。
【図面の簡単な説明】
【００１４】
【図１】本明細書において開示される方法および／またはシステムのうちの１つまたは複数による、例示的な暗号化システムを示すブロック図である。
【図２】ソフトウェアを検証するための製品識別子を使用する例示的なシステムの図である。
【図３】暗号化で使用するための曲線についての数学的なペアリングを決定するための例示的な方法の流れ図である。
【図４】本明細書に記載の方法のうちの１つまたは複数の方法の各部分の実装の一実施形態を示す流れ図である。
【図５】本明細書において開示される技法および／またはシステムのうちの１つまたは複数の例示的な一実装形態を示す流れ図である。
【図６】暗号化で使用するための曲線について数学的なペアリングを決定するための例示的なシステムを示す構成要素のブロック図である。
【図７】本明細書に記載のシステムのうちの１つまたは複数の例示的な一実装形態を示す構成要素のブロック図である。
【図８】本明細書において開示されるシステムのうちの１つまたは複数の例示的な一実装形態を示す構成要素のブロック図である。
【図９】本明細書に記載の方法および／またはシステムのうちの１つまたは複数を実施するよう考案することができる、例示的なコンピュータ読取り可能な媒体の図である。
【図１０】本明細書に記載の方法および／またはシステムのうちの１つまたは複数を実施するよう考案することができる、例示的な環境の構成要素のブロック図である。
【発明を実施するための形態】
【００１５】
ここで、図面を参照して、特許請求される主題を説明する。同じ参照番号は、全体を通して同じ要素を指すために使用する。以下の記述において説明するために、特許請求される主題を完全に理解するために、数多くの具体的な詳細を説明する。しかし、特許請求される主題は、これらの具体的な詳細がなくても実施できることが明らかになる可能性がある。他の例では、特許請求される主題の説明を容易にするために、各構造体および各装置がブロック図の形で示してある。
【００１６】
本明細書に記載の１つまたは複数の、暗号化ペアリングの技法および／またはシステムは、暗号化の用途に使用できる楕円曲線についての数学的なペアリングを決定することができる。たとえば、それらは、暗号化用途において、許可申請（たとえば、電子署名）についてペアリングを決定するのに使用することができる。
【００１７】
通常、ペアリングベースの暗号システムは、（たとえば、楕円曲線から導出された要素および２進乗算器の）グループを利用し、これらの要素は、（たとえば、曲線を知ることにより）公知である。ペアリングを計算するのに使用されるスカラが公知である。未知の秘密は、入力ポイントであるか、またはペアリングへの入力ポイントに暗黙的に含まれているかのいずれかである。セキュリティの基礎は、関連する離散対数問題の難しさである。一例として、図１に示したペアリングベースの暗号化および復号化は、通常、代数曲線のアスペクトまたは特性に基づいて生成される鍵を使用する暗号化および復号化を指す。図１および図２の例示的な暗号システムは、曲線は公知であるが、生成されるポイントは秘密であることに基づくものとすることができる。それというのも、スカラによって曲線から生成される各ポイントは秘密（たとえば、決定することが難しい）だからである。ペアリングベースの暗号化の一実施形態では、曲線は楕円曲線でもよく、グループを構成する要素は楕円曲線上のポイントから生成することができる。当業者であれば理解できるように、通常の状況では、ポイントＰは公知であり、スカラｍは秘密である。次いで、ポイントＱ＝ｍＰもまた公にされる。関連する離散対数問題が難しいので、ＰおよびＱからｍを決定することは実行不可能である。したがって、秘密は通常スカラそのものであり、各ポイントは公開される。
【００１８】
ペアリングベースの暗号システムを使用して、多種多様な情報を暗号化することができる。たとえば、暗号化システムを使用して「短い」署名または製品識別子を生成してもよく、これは、たとえばマシン、プログラム、もしくはユーザの検証および／または認証を可能にする符号である。署名は、比較的少ない数の文字を使用するという点で、「短い」署名とすることができる。
【００１９】
図１は、本明細書において開示される方法および／またはシステムのある実施形態による、例示的な暗号化システム１００を示すブロック図である。例示的な暗号システム１００は、暗号化装置１０２および復号化装置１０４を備える。平文メッセージ１０６は、暗号化装置１０２の入力モジュール１０８で受信することができ、この暗号化装置は、秘密スカラ（単に復号化装置１０４が知っている）に基づいて生成される（公知のグループの一要素である）公開鍵に基づいてメッセージ１０６を暗号化する、ペアリングベースの暗号化装置である。一実施形態では、グループは、暗号化装置１０２が使用する楕円曲線から生成される一群のポイントとすることができ、これについては、以下でより詳細に論じる。平文メッセージ１０６は、通常、暗号化されていないメッセージであるが、暗号化装置１０２は、他のタイプのメッセージを暗号化することができる。したがって、メッセージ１０６は、二者択一的に、他の何らかの構成要素（図示せず）もしくはユーザによって、暗号化または符号化してもよい。
【００２０】
暗号化装置１０２の出力モジュール１１０は、平文メッセージ１０６の暗号化されたバージョンを出力し、これを暗号文１１２とすることができる。暗号文１１２は、一連の理解できないテキストまたは他の何らかのデータを含んでもよく、次いで復号化装置１０４に送られるが、この復号化装置は、たとえば、暗号化装置１０２が実装されているコンピュータ・システムから離れたコンピュータ・システム上に実装することができる。暗号文１１２の暗号化された特性が与えられるとき、暗号化装置１０２と復号化装置１０４の間の通信リンクは安全である必要はない（たとえば、通信リンクは安全でないとしばしば考えられている）。一例として、通信リンクは、多種多様な従来型の公のプロトコルおよび／または専用プロトコルを使用して実装され、有線と無線の両方の実装形態を含む、多種多様な公衆ネットワークおよび／またはプライベートネットワークの１つとすることができる。さらに、通信リンクには、暗号文を含む媒体の手渡しまたは製品流通網の他の構成要素など、他の非コンピュータ・ネットワーク構成要素が含まれ得る。
【００２１】
復号化装置１０４は、入力モジュール１１４で暗号文１１２を受信し、メッセージ１０６を暗号化するのに使用される公開鍵に対応する秘密鍵（たとえば、ならびに必要な生成装置）を知っているので、暗号文１１２を復号化して、元の平文メッセージ１０６を復元することができ、この平文メッセージは、平文メッセージ１１８として出力モジュール１１６によって出力される。一実施形態では、復号化装置１０４は、楕円曲線から生成されるポイントのグループ（たとえば、暗号化装置１０２が使用していたグループ）に基づいてメッセージを復号化する、ペアリングベースの復号化装置であり、以下でより詳細に論じる。
【００２２】
一実施形態では、暗号化および復号化は、秘密に基づく例示的な暗号システム１００で実行され、この秘密は、楕円曲線からの一群のポイントの要素である公開鍵を生成するのに使用されるスカラでもよく、それにより、問題に向けての解決策を決定するのが難しくなる。この秘密は複合化装置１０４に知られており、暗号化装置１０２に知られている秘密に基づいて公開鍵を生成することができる。この実施形態では、この知見により、暗号化装置１０２は、続いて単に復号化装置１０４によって復号化することのできる平文メッセージを暗号化できるようにしてもよい。暗号化装置１０２を含む他の構成要素は、この秘密を知らないので、暗号文を復号化することができない（たとえば、復号化は技術的に可能であるが、計算上は実現可能ではない）。同様に、一実施形態では、復号化装置１０４はまた、平文メッセージに基づく秘密鍵を使用してメッセージを生成してもよく、このプロセスは平文メッセージのデジタル署名と呼ばれる。この実施形態では、署名されたメッセージを、暗号化装置１０２など他の構成要素に伝達することができ、この構成要素は、公開鍵に基づいてデジタル署名を確認することができる。
【００２３】
図２は、製品識別子を使用して、本明細書に記載の方法およびシステムのある実施形態により、ソフトウェアを検証する例示的なシステム２００の図である。この例示的なシステムは、製品識別子（ＩＤ）生成装置２０４を含むソフトウェア・コピー生成装置２０２を備える。ソフトウェア・コピー生成装置２０２は、１つまたは複数のアプリケーション・プログラム（たとえば、ワード処理プログラム、スプレッドシート・プログラム、オペレーティング・システム、一式のプログラムなど）の完全なコピーをまとめて実装するのに必要となるファイルを含むことができるソフトウェア媒体２１０（たとえば、ＣＤ−ＲＯＭ、ＤＶＤ（デジタル多用途ディスク）など）を生成してもよい。これらのファイルは、ソース・ファイル２０６から受信することができ、このソース・ファイルは、ローカル・ソース（たとえば、生成装置２０２の内部のハード・ドライブ）、遠隔ソース（たとえば、ネットワークを介して生成装置２０２に結合された）、またはそれらの組合せでもよい。図２には単一の生成装置２０２が示してあるが、しばしば複数の生成装置が、個別かつ／または協働して動作して、ソフトウェア媒体２１０を生成することのできる速度を増大させる。
【００２４】
製品ＩＤ生成装置２０４は、数字、文字、および／または他のシンボルを含んでもよい製品ＩＤ２１２を生成することができる。生成装置２０４は、本明細書に記載のペアリングベースの暗号化技法および／またはシステムを使用して、製品ＩＤ２１２を生成する。製品ＩＤ２１２は、ラベルに印刷してもよく、ソフトウェア媒体２１０を含むキャリヤまたはソフトウェア媒体２１０が中に入っている箱のいずれかに添付してもよい。あるいは、製品ＩＤ２１２は、オンライン・ソースを介してアプリケーション・プログラムのソフト・コピーを受けとるとき（たとえば、インターネットを介したソフトウェアのダウンロード）ユーザに提供される証明書など、電子的に利用可能にしてもよい。製品ＩＤ２１２は、暗号を使用して検証し、製品ＩＤ２１２が有効な製品ＩＤであることを確認することなど（たとえば、そのようにしてアプリケーション・プログラムをインストールできるようにする）、複数の機能を提供することができる。さらなる例では、製品ＩＤ２１２は、関連する特定のソフトウェア媒体２１０を認証する働きをしてもよい。
【００２５】
生成されたソフトウェア媒体２１０および関連する製品ＩＤ２１２を、流通網２１４に供給することができる。流通網２１４は、場合によっては１つまたは複数の「中間業者」（たとえば、卸売業者、供給業者、代理店、小売店（オンラインまたは従来型のいずれも）など）および／またはインターネットなどを介した電子配布を含む、様々な従来の流通のシステムおよび方法のうちの、１つまたは複数を代表することができる。媒体２１０および関連する製品ＩＤ２１２を配布する方式がどうであれ、媒体２１０および製品ＩＤ２１２は、通常、たとえばクライアント・コンピュータ２１８のユーザが購入するか（たとえば、ライセンスされ）、またはこのユーザに配布される。
【００２６】
クライアント・コンピュータ２１８は、ソフトウェア媒体２１０を読み取り、アプリケーション・プログラムをクライアント・コンピュータ２１８にインストールする（たとえば、アプリケーション・プログラムをクライアント・コンピュータ２１８のハード・ディスク・ドライブまたはメモリ（図示せず）にインストールする）ことができる媒体読取り装置２２０を備えることができる。一実施形態では、インストール・プロセスの一部分は、（たとえば、ライセンスされたコピーを検証するために）製品ＩＤ２１２を入力するステップを含むことができる。この入力は、手作業入力でもよく（たとえば、ユーザがキーボードを用いて製品ＩＤをタイプ入力する）、または代替的に自動入力でもよい（たとえば、コンピュータ２１８が、アプリケーション・プログラムに関連するライセンスの特定のフィールドに自動的にアクセスし、そこから製品ＩＤを抽出する）。クライアント・コンピュータ２１８はまた、アプリケーション・プログラムをインストールしている間に製品ＩＤ２１２を検証する、製品ＩＤ検証ツール２２２を備えることもできる。一実施形態では、この妥当性検査は、本明細書に記載のペアリングベースの復号化の技法および／またはシステムを使用して実行することができる。製品ＩＤが有効であると検証ツール２２２が判定する場合、適切な手順のアクションをとることができる（たとえば、ソフトウェア媒体２１０にプログラムをインストールすることにより、コンピュータ２１８にアプリケーションをインストールできるようになる）。しかし、製品ＩＤが無効であると検証ツール２２２が判定する場合、異なる手順のアクションをとることができる（たとえば、インストール・プログラムが、インストール・プロセスを終了して、アプリケーション・プログラムがインストールされるのを防止する）。
【００２７】
一実施形態では、製品ＩＤ検証ツール２２２はまた、場合によっては、製品ＩＤ２１２に基づいてソフトウェア媒体（たとえば、アプリケーション・プログラム）を認証することができる。この認証は、コンピュータ２１８において入力された製品ＩＤ２１２が、たとえば、アクセスされているアプリケーションの特定のコピーに対応することを確認する。一例として、この認証は、インストール中、または製品サポートもしくはアップグレードを要求するときなど、様々な時点において実行してもよい。あるいは、この実施形態では、この認証は、遠隔地点で実行してもよい（たとえば、クライアント・コンピュータ２１８のユーザが技術サポートを求めて電話するコール・センターにおいて、このユーザは、サポートを受ける前に製品ＩＤ２１２の提示を求められることがある）。
【００２８】
一実施形態では、アプリケーション・プログラムの製造業者が製品ＩＤの認証機能を利用しようと考える場合、アプリケーション・プログラムの各コピーについて生成装置２０４が生成する製品ＩＤは、固有のものとすることができる。一例として、固有の製品ＩＤは、互いに異なる初期の数または値を、アプリケーション・プログラムの各コピーに割り当てることによって作成することができる（たとえば、この初期値は、次いで製品ＩＤを生成するための基礎として使用される）。アプリケーション・プログラムのコピーに関連する固有値は、場合によっては、アプリケーション・プログラムの特定のコピーの表示とともに認証記録２０８（たとえば、データベースまたはリスト）として製造業者によって保持される。たとえば、コピーの表示は、アプリケーション・プログラムまたはソフトウェア媒体２１０に埋め込まれたシリアル・ナンバーでもよく、多種多様な従来の方式のいずれかで隠してもよい。あるいは、たとえば、個々の番号それ自体は、特定のコピーに関連するシリアル・ナンバーでもよく、それにより、製品ＩＤから初期値を抽出し、それがアプリケーション・プログラムまたはソフトウェア媒体２１０に埋め込まれたシリアル・ナンバーと同じであることを確認することにより、製造業者はアプリケーション・プログラムの真正性を確認することができるようになる。
【００２９】
曲線について数学的なペアリングを決定する方法を決定することができ、暗号鍵として提示される要素の第１のセット（たとえば、楕円曲線上のポイント）を、曲線上の既知のポイントと比較し、暗号化目的に使用することができる。有効な暗号システムは、通常、楕円曲線からの一群のポイントなど、そのグループについての離散対数問題（ＤＬＰ）が難しい（たとえば、計算するのが難しい）グループに基づいている。ＤＬＰは、グループ内で公式化することができ、グループの乗算など２進演算を伴う一群の要素である。実例として、ＤＬＰには、有限群Ｇ内の要素ｇ、およびＧの一要素である別の要素ｈを与えてもよく、ｇx＝ｈになるような整数ｘを見つける。暗号化で使用するためのペアリングを生成するには、通常、楕円曲線が定義される有限体において多くの潜在的な乗算が必要になる。
【００３０】
図３は、暗号化で使用するための曲線について数学的なペアリングを決定するための例示的な方法３００の流れ図である。例示的な方法３００は３０２で開始し、３０４で、曲線についての数学的なペアリングを決定する際に使用される複数の反転を統合する。楕円曲線上のペアリング演算は、たとえばペアリング演算をより効率的にするために、有限体において多くの潜在的な乗算を利用するので、数多くの乗算を減らすことができ、かつ／または別のペアリング演算において効率を上げることができる。
【００３１】
一実施形態では、曲線についての有限体において、乗算と反転の両方（たとえば、乗法的逆元すなわち逆数を識別すること）が、ペアリング演算について実行される。反転の実行は、通常、乗算よりも計算コストが高い。たとえば、計算における反転と乗算の比は、しばしば８０対１となることがあるが、それというのも、曲線のポイントで使用される座標系は、普通、アフィンから射影に変更されて、多くの反転を低減させるからである。反転の決定の実例として、ゼロでない実数ｘの乗法的逆元を見積もるために、数ｙを繰り返し２ｙ−ｘｙ2で置換することができる。この例では、ｙへの変更が閾値内にあるとき、ｙは、ｘの乗法的逆元の近似値である。この例は、単に説明するためのものであり、複素数など特に他のタイプの数について、反転を決定するための他の技法があることは理解されよう。
【００３２】
たとえば、例示的な方法３００では、アフィン座標系で動作している間、反転を組み合せ、それらを同時に決定することにより、多数の反転を大幅に減らすことができる。一実施形態では、ペアリング計算においてアフィン座標系を使用するとき、それぞれの倍加（たとえば乗算）および追加の動作は、有限体の反転を使用して、後続の動作において評価されるラインの傾斜値を計算する。この実施形態では、たとえば、「モンゴメリー・トリック」を使用して、単一の反転および３（１−１）乗算で１つの有限体反転を置換することにより、反転を統合することができる。
【００３３】
モンゴメリー・トリックの説明に役立つ実例として、要素ｘおよびｙについて反転を決定するためには、２つの反転を決定する代わりに、積ｘｙを決定することができ、その反転を計算することができる。この例では、次いで、乗算によってｘおよびｙの反転を決定することができる。すなわち、ｘ-1＝（ｘｙ）-1ｙおよびｙ-1＝（ｘｙ）-1ｘである。このようにして、この例では、１つの反転および３つの乗算によって２つの要素ｘおよびｙの反転を決定することができる。ｎ個の要素について反転を決定することになる場合、単に１つの反転および３（ｎ−１）の乗算を実行することができる。したがって、一実施形態では、ペアリング計算が複数の反転（ｎ）を含む場合、ｎ個の反転を統合して１つの反転にすることができる。
【００３４】
一実施形態では、［ａ1，．．．，ａs］を一連の要素とし、その逆数［ａ1-1，．．．，ａs-1］を計算することにする。まず、積ａ1．．．ａs、その逆数（ａ1．．．ａs）-1、１＜ｉ＜ｓについてのその積ａ1  ａi-1ａ1+1  ａs、および単一の要素の逆数を、以下の式によって計算することにより、逆数を計算することができる。  
ａi-1＝（ａ1  ａi-1ａi+1  ａs）（ａ1  ａs）-1
この動作は、１つの反転および３（ｓ−１）の乗算で実行することができる。すなわち、ｓの反転は、１つの反転および３（ｓ−１）の乗算で置換することができる。
【００３５】
一実施形態では、たとえば、積ａ1  ａ2．．．ａsを、ｓ−１の乗算を用いて２進木で計算することができ、反転を統合するのに使用するためにｓ−１の積を格納することができる。さらに、この実施形態では、逆数（ａ1  ａ2．．．ａs）-1が計算され、２（ｓ−１）乗算を用いて同じ木に沿って後続の逆数が計算される。
【００３６】
図３の例示的な方法３００に戻ると、３０６において、曲線についての数学的なペアリングは、統合された反転を使用して右から左へと読み取ったスカラの２進表現に沿ってアフィン座標内で決定される。曲線についてＴａｔｅペアリングを計算するとき、典型的なミラー・ループ・アルゴリズムが、スカラを介して左から右に（または上から下に）移動する。実例として、ｋ＞１とすることで、ミラー・アルゴリズムでの分母が消去されるものと仮定する。
【００３７】
以下の例示的な実施形態および実例について、以下の表記法を利用する。ｐ＞３を素数とし、Ｆqを特性ｐの有限体とする。Ｅを、ワイエルシュトラス方程式を有するＦqにわたって定義される楕円曲線とする。すなわちＥ：ｙ＾２＝ｘ＾３＋ａｘ＋ｂである。ｒ｜＃Ｅ（Ｆq）である素数ｒについて、ｋを、ｒに対するＥの埋込み次数とする。すなわち、ｋはｒ｜ｑ＾ｋ−１である最小の正の整数である。Ｅ上の１組のｒねじれ点は、Ｅ［ｒ］で表すことができ、１組のＦ＿（ｑ＾ｉ）の有理のｒねじれ点は、ｉ＞０においてＥ（Ｆ＿（ｑ＾ｉ））［ｒ］と表すことができる。φ＿ｑを、Ｅ上でのｑ乗のフロベニウス自己準同形とする。
【００３８】
さらに、以下の通り定義する。  
Ｇ＿１＝Ｅ［ｒ］∩ｋｅｒ（φ＿ｑ−［１］）＝Ｅ（Ｆ＿ｑ）［ｒ］
Ｇ＿２＝Ｅ［ｒ］∩ｋｅｒ（φ＿ｑ−［ｑ］）⊆Ｅ（Ｆ＿（ｑ＾ｋ））［ｒ］
ｋ＞１とする。Ｒｅｄｕｃｅｄ  Ｔａｔｅペアリングはマップである。  
ｅ＿ｒ＝Ｇ＿１×Ｇ＿２→Ｇ＿３
（Ｐ，Ｑ）ｆ＿（ｒ，Ｐ）（Ｑ）＾（（ｑ＾ｋ−１）／ｒ）
ここでｆ＿（ｒ，Ｐ）∈Ｆ＿ｑ（Ｅ）は、除数ｒ（Ｐ）−ｒ（Ｏ）を有する関数である。Ｅ上の２つのポイントＲおよびＳを通るライン１＿（Ｒ，Ｓ）で与えられるＦ＿ｑ（Ｅ）で関数を表す。Ｒ＝Ｓの場合、このラインはＲを通過する曲線の接線で与えられる。
【００３９】
以下では、（前述の表記法を使用して）Ｔａｔｅペアリングを計算するための典型的なミラー・ループの一実施形態が示してある。  
入力：Ｐ∈Ｇ1、Ｑ∈Ｇ2、ｒ＝（ｒm-1，．．．，ｒ0）2
出力：ｅr（Ｐ，Ｑ）＝ｆr,P（Ｑ）(q^k-1)/r
１：Ｒ←Ｐ，ｆ←１
２：ｆｏｒ（ｉ←ｍ−２；ｉ≧０；ｉ−−）ｄｏ
３：ｆ←ｆ2・ｌR,R（Ｑ）
４：Ｒ←［２］Ｒ
５：ｉｆ（ｒi＝１）ｔｈｅｎ
６：ｆ←ｆ・ｌR,R（Ｑ）
７：Ｒ←Ｒ＋Ｐ
８：ｅｎｄ  ｉｆ
９：ｅｎｄ  ｆｏｒ
１０：ｆ←ｆ(q^k-1)/r
１１：ｒｅｔｕｒｎ  ｆ
【００４０】
この実例では、前述のアルゴリズムにおけるライン３および４は、ともに普通は倍加動作と呼ばれ、ライン６および７は普通は追加動作と呼ばれる。
【００４１】
例示的な方法３００の動作３０６の一実施形態では、ミラー・ループ・アルゴリズムを修正することができ、右から左へと（または下から上に）２進表現が読み取られる。以下は、右から左への（または下から上への）実例である。  
入力：Ｐ∈Ｇ1，Ｑ∈Ｇ2，ｒ＝（ｒm-1，．．．，ｒ0）2
出力：ｅr（Ｐ，Ｑ）＝ｆr,P（Ｑ）(q^k-1)/r
１：Ｒ←Ｐ，ｆR←１
２：Ｖ←Ｏ，ｆV←１
３：ｆｏｒ（ｉ←０；ｉ≦ｍ−１；ｉ＋＋）ｄｏ
４：ｉｆ（ｒi＝１）ｔｈｅｎ
５：ｆV←ｆV・ｆR・ｌV,R（Ｑ）
６：Ｖ←Ｖ＋Ｒ
７：ｅｎｄ  ｉｆ
８：ｆR←ｆR2・ＩR,R（Ｑ）
９：Ｒ←［２］Ｒ
１０：ｅｎｄ  ｆｏｒ
１１：ｆ←ｆV(q^k-1)/r
１２：ｒｅｔｕｒｎ  ｆ
【００４２】
この実例では、倍加動作がライン８および９にあり、追加動作がライン５および６にある。前述のアルゴリズムは、ｍ回の倍加動作およびｈ回の追加動作を実行する。この例では、ループはｍ回実行することができるが、単にｍ−１回の倍加動作が使用され、最後の１つは計算に影響を及ぼさないことがある。
【００４３】
さらに、この実施形態では、「ボトムアップ」手法を使用するとき、（上記ボトムアップ・アルゴリズムにおいて）ライン５および６で追加動作を後回しにすることができる。ここで、たとえば、関連する関数値および対応する点（ｆR，Ｒ）を、（たとえば、データベース内の）リストＬに格納することができ、最終関数値を後で計算することができる。実例として、以下のアルゴリズムにより、値および点を格納することによって（以下のアルゴリズムのライン５を参照）、追加動作を後回しにするボトムアップ手法がもたらされ、最終関数値の計算が後に実行される（ライン１０を参照）。  
入力：Ｐ∈Ｇ1、Ｑ∈Ｇ2、ｒ＝（ｒm-1，．．．，ｒ0）2
出力：ｅr（Ｐ，Ｑ）＝ｆr,P（Ｑ）(q^k-1)/r
１：Ｒ←Ｐ，ｆR←１
２：Ｌ←［］
３：Ｆｏｒ（ｉ←０；ｉ≦ｍ−１；ｉ＋＋）ｄｏ
４：ｉｆ（ｒi＝１）ｔｈｅｎ
５：Ａｐｐｅｎｄ（ｆR，Ｒ）ｔｏ  Ｌ
６：ｅｎｄ  ｉｆ
７：ｆR←ｆR2・ｌR,R（Ｑ）
８：Ｒ←［２］Ｒ
９：Ｅｎｄ  ｆｏｒ
１０：Ｌ内のペアからｆR,P（Ｑ）を計算する。
１１：ｆ←ｆ(q^k-1)/r
１２：ｒｅｔｕｒｎ  ｆ
この例では、この手法は、計算を遅らせることにより、Ｆ＿（ｑ＾ｋ）でのｈ−１回の乗算と同等であるコストを節約することが可能になるので、現行のトップダウン・アルゴリズムよりも効率的にすることができる。
【００４４】
一実施形態では、統合された反転を使用して、前述のアルゴリズムのライン１０、「Ｌ内のペアからｆr、P（Ｑ）を計算する」を２進木に沿って実行することもできる。この実施形態において、２進木の各層では、統合された反転の技法を適用することができる。このようにして、たとえば前述の通り、曲線について数学的なペアリングを計算するとき、［ｌｏｇ（ｈ）］の反転および３（ｈ−１−［ｌｏｇ（ｈ）］）の乗算の代わりに（ｈ−１）回の反転を使用することができる。したがって、反転の数は劇的に減少するが、わずかな数の乗算が加えられ、これらの計算コストは安価である。
【００４５】
図３の例示的な方法３００は、曲線についての数学的ペアリングを計算して、３０８で終了する。
【００４６】
図４は、本明細書に記載の方法のうちの１つまたは複数の方法の各部分の実装の一実施形態４００を示す流れ図である。統合された複数の反転を使用して右から左へと読み取ったスカラの２進表現に沿って、アフィン座標において曲線についての数学的なペアリングを決定するステップは、４０２において、右から左へとスカラの２進表現を読み取るステップを含むことができる。前述の通り、たとえば、曲線ポイントの座標がアフィン空間にあるとき、スカラの２進表現を右から左へと読み取ることができる。
【００４７】
４０４において、曲線ポイントのスカラ倍数を計算することにより、曲線ポイントの倍数が決定され、たとえば、このスカラ倍数は、アフィン空間での曲線ポイントのｍ倍の和である。すなわち、たとえば、ボトムアップ手法アルゴリズムの乗算動作を実行することができ、複数の曲線ポイントの倍数を決定することができる。この動作は、たとえば、しばしば倍加動作と呼ばれ、（ｉ←０；ｉ≦ｍ−１；ｉ＋＋）の場合、（前述の表記法を使用して）ｆR←ｆR2・ｌR,R（Ｑ）およびＲ←［２］Ｒ・・・を実行する。特に、この実施形態では、たとえば座標を射影空間に切り替えて反転の数を減らす、現在普通に使用されている技法とは異なり、アフィン空間内の座標上で乗算が実行される。
【００４８】
４０６において、有限体について、曲線ポイントの追加の反転を決定することができる。すなわち、たとえば、右から左へとスカラを読み取りながら、スカラの２進表現に応じて曲線ポイントが追加される。この例では、曲線ポイントを追加するために、有限体において反転が決定される。一例として、反転は、しばしば乗法的逆元または逆数と呼ばれる。前述の通り、たとえば、反転が統合されて、追加プロセスにおいてそれぞれの動作について単一の反転になる。このようにして、単に、それぞれのレベルについて１つの反転を使用して、アルゴリズムのペアリング部分の２進木表現でのそれぞれのレベルで複数の反転が組み合わされる。
【００４９】
４０８において、たとえば、ラインの関数の傾斜値として、統合された反転の出力が決定され、このラインの関数は、その出力された傾斜値が更新される。たとえば、有限体にわたる曲線における要素（たとえば曲線ポイント）についてペアリングを計算するとき、ラインの関数を評価して、ペアリングを計算し、異なるグループ内で新規の要素などになる。したがって、この例では、たとえば、２進木表現のそれぞれのレベルにおいて、ラインの関数についての傾斜値として、統合された反転出力が使用され、このラインは、傾斜値で評価されてペアリングを決定する。
【００５０】
図５は、本明細書において記載される技法および／またはシステムのうちの１つまたは複数の一実装形態の一実施形態５００を示す流れ図である。この実施形態５００では、ユーザがその識別情報を認証するために提示するような電子署名５５０から、５０２でのペアリング計算用の入力として２つの要素が受信される。さらに、既知のグループ５５２から２つの要素（たとえば、セキュリティ用の共有秘密暗号鍵）がペアリング計算用の入力として提供される。この実施形態では、署名５５０からの要素についてペアリングが計算されることになり、ペアリングは、グループ５５２からの要素について計算されることになる。
【００５１】
５０４において、前述の通り、グループの要素として提供された曲線ポイントの倍数が決定される。この実施形態５００では、右から左へと読み取ったスカラ５５４の２進表現を使用して、曲線ポイントの倍数を決定する。５０６において、この倍数から反転が統合されて、単一の反転になり、遠隔データベースまたはローカルデータベースなどに格納される５５６。一実施形態では、２進表現５５４において右から左へと読み取ったスカラは、公開鍵などの暗号鍵内に含まれてもよい。
【００５２】
一実施形態では、右から左へと読み取ったスカラの２進表現に沿ってアフィン座標内において曲線についてのペアリングを決定するステップは、５０８において複数のプロセッサ上で並列処理することができる。たとえば、コンピュータは普通、マルチコア・プロセッサを有し、これにより、２つ以上のコア上で計算を並列処理して、計算を迅速化し、資源を解放することが可能になる。一実施形態では、この並列処理は、２つ以上のプロセッサ上で、たとえば同時に曲線ポイントの倍数を決定するために、２つ以上のインスタンスを含むことができる。
【００５３】
５１０において、統合された反転についての出力が、たとえば傾斜値として得られる。前述の通り、ペアリング計算における追加動作の２進木表現でのそれぞれのレベルで、統合された反転を使用してもよい。さらに、一実施形態では、格納済みの統合された反転５５６は、アフィン空間での１組の座標の後続のペアリング計算で再使用してもよい。一例として、統合された反転は、遠隔データベースまたはローカル・データベースから得て、再使用することができる。このようにして、反転の統合動作を減らすことにより、多くの計算を減らすことができる。
【００５４】
一実施形態では、統合された反転を決定する際に使用された第１の曲線ポイントが、統合された反転が再使用される第２の曲線ポイントと同じ要素であるとき、統合された反転を再使用してもよい。すなわち、ペアリング計算における一要素として提供された曲線ポイントを使用して、統合された反転を決定することができる。この実施形態では、要素の第１のセットが計算された後に要素の第２のセットが提示され、第２のセットが第１のセットからの要素と同じ要素を含む場合、たとえば要素の第２のセットについてペアリングを計算する際に、この統合された反転を再使用してもよい。
【００５５】
５１２において、傾斜値として統合された反転の出力を使用して、ラインの関数が更新される。一実施形態では、統合された反転の出力を使用して、ペアリングの計算に使用されるラインの関数内の係数を更新してもよい。５１４において、たとえば、更新されたラインの関数を評価し、その結果、暗号化された署名の許可要素５５８、および秘密要素５６０についての数学的なペアリングを得ることにより、要素についてペアリングを決定することができる。
【００５６】
５１６において、それぞれのペアリング５５８、５６０を比較して、たとえば、提供される電子署名の真正性を判定するために、それらが等しいのかどうか判定することができる。この実施形態５００では、５１８において各要素が等しくない（または、各要素が同じグループからではない）と分かると、提供された署名は５２０において認証されない。５１８において各要素が等しい（また、同じグループからである）と分かると、提供された署名は５２２において認証される。このようにして、たとえば、要素についてのペアリングの計算を暗号化目的に使用することができ、また本明細書に記載の１つまたは複数の技法を使用して、より効率的で速いペアリング計算を可能にしてもよい。
【００５７】
たとえば、暗号化目的で提供された要素を比較するために、曲線について数学的なペアリングを決定するための１つまたは複数のシステムを考案してもよい。暗号化で使用するためのペアリングの計算は、楕円曲線が定義される有限体において多くの潜在的な乗算および反転を必要とすることがあるので、本明細書に記載の１つまたは複数のシステムを考案して、これらのペアリングを計算するのに使用される時間および資源を減らすことができる。図６は、暗号化で使用するための曲線について数学的なペアリングを決定するための例示的なシステム６００を示す構成要素のブロック図である。
【００５８】
例示的なシステム６００は、反転統合構成要素６０２を備え、これは、曲線についての数学的なペアリングを決定するために使用される反転を統合する。反転統合構成要素６０２は、１つまたは複数のプログラム化されたプロセッサ６５０と動作可能なように結合されており、このプロセッサは１つまたは複数の計算装置（computing device）にあり、統合された反転６５６のうちの１つまたは複数を格納することができるデータ格納構成要素６５４を有する。さらに、例示的なシステム６００では、数学的なペアリング決定構成要素６０４が、データ格納構成要素６５４と動作可能なように結合されており、そこに格納されている統合された反転６５６を使用して右から左へと読み取ったスカラの２進表現に沿ったアフィン座標での曲線についての数学的なペアリングを決定することができる。
【００５９】
一実施形態では、反転統合構成要素６０２、ペアリング決定構成要素６０４、およびデータ格納構成要素６５４は、１つまたは複数のプロセッサ６５０を備える計算装置６５２など、同じ計算装置内に備えてもよい。あるいは、システムの構成要素は、様々な装置上またはその何らかの組合せに配置してもよい。
【００６０】
一実施形態では、反転統合構成要素６０２は、数学的なペアリングを決定する際に使用するために、複数の反転を単一の反転に統合するように構成することができる。たとえば、曲線ポイントの倍数の２進表現のレベルについてのそれぞれの反転を、反転統合構成要素６０２によって組み合わせて、そのレベルについての単一の反転にすることができる。この例では、組み合わされた（統合された反転、たとえば６５６）は、データ格納構成要素６５４に格納することができ、ペアリングを計算するためにペアリング決定構成要素６０４によって使用可能である。
【００６１】
図７は、本明細書に記載の１つまたは複数のシステムの例示的な一実装形態の一実施形態７００を示す構成要素のブロック図である。図１および図２に示したような（たとえば、１０４、２２２）暗号化システム７０２は、たとえば楕円曲線ベースの決定装置７５０上にペアリングを含んでもよく、この装置は、本明細書に記載のシステムの１つまたは複数の実装形態を利用する。さらに、暗号化システム７０２は、（たとえば、曲線を知ることにより）公知であるグループを含むことができ、このグループは、（たとえば、認証、セキュリティ、暗号化などのために）暗号システムを利用する。
【００６２】
この例示的な実施形態７００では、暗号化認証を使用する入力文書を読み取ることのできる構成要素などの入力構成要素７０４は、暗号化要素７０８および公開鍵７０６を含む文書７５４を受信する。一例として、文書７５４は、（たとえば、読むために）復号化装置に送られる暗号化された文書でもよく、暗号化要素７０８は、曲線上のポイント（たとえば、文書が真正である場合にグループに含まれるグループ要素）であり、スカラは、ペアリングの計算に使用される。公開鍵は通常、曲線上のポイントであるが、秘密鍵はスカラである。
【００６３】
この実施形態で７００では、楕円曲線ベースの決定装置７５０上でのペアリングは、送られてきた暗号化要素７０８、および秘密鍵７１０からの要素についてペアリングを決定して、たとえば、送られてきた文書が真正かどうか判定することができる。すなわち、文書が真正である場合、たとえば、公開鍵７０６からスカラを使用してそれぞれについてペアリングが計算されるとき、暗号化要素７０８は、秘密鍵７１０からの要素と同じ要素にマッチすることになる。このようにして、暗号化システムは、たとえば、閲覧用に文書７５４を復号化するために、文書７５４についての認証７５２を出力することができる。
【００６４】
図８は、本明細書に記載の１つまたは複数のシステムの一実装形態の別の例示的な一実施形態８００を示す構成要素のブロック図である。この実施形態８００では、数学的なペアリング決定構成要素５０４は、右から左へと読み取ったスカラの２進表現に沿ってアフィン座標内で曲線ポイント８５０の倍数について追加の関係の決定を並列化することができる複数のプロセッサ８０２ａ〜８０２ｎと、動作可能なように結合されている。すなわち、たとえば、ペアリング決定の様々な部分（たとえば、追加動作）を、いくつかのプロセッサ上で同時に実行して、ペアリング８５２を計算するための総合的な時間を減らすことができる。
【００６５】
さらに、例示的な実施形態８００では、数学的なペアリング決定構成要素５０４は、統合された複数の反転を決定する際に使用された第１の曲線ポイントが、統合された反転が再使用される第２の曲線ポイントと同じ要素である場合などに、統合された複数の反転６５６を再使用するように構成することができる。この実施形態では、反転再使用決定構成要素８０４は、第１の曲線ポイントの格納されたバージョンと８５０において受信された第２の曲線ポイントとを比較することなどにより、第２の曲線ポイントが第１の曲線ポイントと同じ要素かどうか判定することができる。さらに、反転再使用決定構成要素８０４は、データ格納構成要素６５４から、第１の曲線ポイントに対応する統合された反転６５６を取り出すことができる。このようにして、たとえば、新規の統合された反転を計算する代わりに、取り出された反転６５６をペアリング決定構成要素５０４が再使用することができる。
【００６６】
さらに他の実施形態では、本明細書において提示した技法のうちの１つまたは複数を実施するように構成されたプロセッサ実行可能な命令を含む、コンピュータ読取り可能な媒体を必要とする。このようにして考案することのできる例示的なコンピュータ読取り可能な媒体が図９に示してあるが、実装形態９００は、コンピュータ読取り可能な媒体９０８（たとえば、ＣＤ−Ｒ、ＤＶＤ−Ｒ、またはハード・ディスク・ドライブのプラッタ）を含み、これらの媒体上に、コンピュータ読取り可能なデータ９０６が符号化される。次に、コンピュータ読取り可能なデータ９０６は、本明細書において説明する原理のうちの１つまたは複数に従って動作するように構成された、１組のコンピュータ命令９０４を含む。こうした一実施形態９０２では、プロセッサ実行可能な命令９０４は、たとえば、図３の例示的な方法３００などの方法を実行するように構成してもよい。こうした他の一実施形態では、プロセッサ実行可能な命令９０４は、たとえば、図６の例示的なシステム６００などのシステムを実装するように構成してもよい。本明細書に提示した技法に従って動作するように構成された、こうした多くのコンピュータ読取り可能な媒体が、当業者によって考案することができる。
【００６７】
構造上の特徴および／または方法論的な作用に特有の用語で、主題について述べてきたが、添付の特許請求の範囲で定義される主題は、必ずしも前述の具体的な特徴または作用を限定するものではないことを理解されたい。むしろ、前述の具体的な特徴および作用は、特許請求の範囲を実施する例示的な形態として開示されている。
【００６８】
本出願で使用されているように、用語「構成要素」、「モジュール」、「システム」、「インターフェース」などは、全体として、ハードウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行時のソフトウェアのいずれかのコンピュータ関連の実体を指すものである。たとえば、構成要素は、それだけには限定されないが、プロセッサ上で実行されるプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行のスレッド、プログラム、および／またはコンピュータである。実例として、制御装置上で実行されているアプリケーションおよび制御装置はともに、構成要素である。１つまたは複数の構成要素は、プロセスおよび／または実行のスレッド内に存在してもよく、また構成要素は、１つのコンピュータ上に配置してもよく、かつ／または２つ以上のコンピュータの間に分散してもよい。
【００６９】
さらに、特許請求される主題は、ソフトウェア、ファームウェア、もしくはそれらの任意の組合せを生成して、開示された主題をコンピュータが実施するように制御するための標準のプログラミングおよび／またはエンジニアリング技法を使用する方法、装置、または製品として実施してもよい。本明細書で使用される用語「製品」は、任意のコンピュータ読取り可能な装置、キャリヤ、または媒体からアクセス可能なコンピュータ・プログラムを包含するものである。もちろん、特許請求される主題の精神または範囲から逸脱することなく、この構成に対して多くの修正形態を実施してもよいことが、当業者なら理解されよう。
【００７０】
図１０および以下の説明により、本明細書に記載の規定のうちの１つまたは複数での実施形態を実施するための、適切なコンピューティング環境の簡潔で全般的な説明が示される。図１０の動作環境は、適切な動作環境の一例に過ぎす、この動作環境の使用または機能の範囲に関して、いかなる限定をも示唆するものではない。計算装置の例には、それだけには限らないが、パーソナル・コンピュータ、サーバ・コンピュータ、ハンドヘルドまたはラップトップ装置、移動装置（移動電話、携帯型情報端末（ＰＤＡ）、メディア・プレーヤなど）、マルチプロセッサ・システム、家庭用電化製品、ミニ・コンピュータ、メインフレーム・コンピュータ、上記のシステムまたは装置などのうち任意のものを含む分散コンピューティング環境が含まれる。
【００７１】
必要とされてはいないが、各実施形態は、１つまたは複数の計算装置によって実行される「コンピュータ読取り可能な命令」との一般的な文脈で説明してある。コンピュータ読取り可能な命令は、（以下で説明される）コンピュータ読取り可能な媒体を介して分散してもよい。コンピュータ読取り可能な命令は、機能、オブジェクト、ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）、データ構造など、特定のタスクを実行し、または特定の抽象データ型を実装するプログラム・モジュールとして実施してもよい。通常、コンピュータ読取り可能な命令の機能は、様々な環境において要望される通り、組み合わせても、または分散してもよい。
【００７２】
図１０には、本明細書において提供された１つまたは複数の実施形態を実施するように構成された計算装置１０１２を備える、システム１０００の一例が示してある。一構成において、計算装置１０１２は、少なくとも１つの処理ユニット１０１６およびメモリ１０１８を備える。計算装置の正確な構成およびタイプに応じて、メモリ１０１８は、揮発性（たとえば、ＲＡＭなど）、不揮発性（たとえば、ＲＯＭ、フラッシュ・メモリなど）またはこれら２つの何らかの組合せでもよい。この構成が、図１０に破線１０１４で示してある。
【００７３】
他の実施形態では、装置１０１２は、追加の特徴および／または機能を含んでもよい。たとえば、装置１０１２はまた、磁気記憶装置、光記憶装置などを含むが、ただしそれだけに限定されない、（たとえば、取外し可能および／または取外し不可能な）追加の記憶装置を備えてもよい。こうした追加の記憶装置が、図１０に記憶装置１０２０で示してある。一実施形態では、本明細書において提供される１つまたは複数の実施形態を実施するためのコンピュータ読取り可能な命令は、記憶装置１０２０内に存在してもよい。記憶装置１０２０はまた、他のコンピュータ読取り可能な命令を記憶して、オペレーティング・システム、アプリケーション・プログラムなどを実施してもよい。コンピュータ読取り可能な命令は、たとえば、処理ユニット１０１６が実行するように、メモリ１０１８内にロードしてもよい。
【００７４】
本明細書では、用語「コンピュータ読取り可能な媒体」は、コンピュータ記憶媒体を含む。コンピュータ記憶媒体には、コンピュータ読取り可能な命令、または他のデータなど、情報を記憶するための任意の方法または技術で実装された、揮発性および不揮発性、取外し可能および取外し不可能な媒体が含まれる。メモリ１０１８および記憶装置１０２０は、コンピュータ記憶媒体の例である。コンピュータ記憶媒体には、それだけには限定されないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリ、もしくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）もしくは他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、もしくは他の磁気記憶装置、または、所望の情報を記憶するのに使用することができ、装置１０１２からアクセスすることのできる任意の他の媒体が含まれる。任意のこうしたコンピュータ記憶媒体は、装置１０１２の一部分であってもよい。
【００７５】
装置１０１２はまた、装置１０１２が他の装置と通信できるようにする、（１つまたは複数の）通信接続１０２６を含んでもよい。（１つまたは複数の）通信接続１０２６には、それだけには限定されないが、計算装置１０１２を他の計算装置に接続するための、モデム、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）、集積化されたネットワーク・インターフェース、無線周波数の送信機／受信機、赤外線ポート、ＵＳＢ接続、または他のインターフェースが含まれ得る。（１つまたは複数の）通信接続１０２６には、有線接続または無線接続が含まれ得る。（１つまたは複数の）通信接続１０２６は、通信媒体を送信および／または受信してもよい。
【００７６】
用語「コンピュータ読取り可能な媒体」には、通信媒体が含まれ得る。通信媒体は通常、搬送波もしくは他の搬送機構など、「変調されたデータ信号」内の、コンピュータ読取り可能な命令または他のデータを取り入れ、任意の情報送達媒体を含む。用語「変調データ信号」は、信号内の情報を符号化するように設定または変更された、その特性のうちの１つまたは複数を有する信号を含んでもよい。
【００７７】
装置１０１２には、キーボード、マウス、ペン、音声入力装置、タッチ入力装置、赤外線カメラ、ビデオ入力装置、および／または他の任意の入力装置など、（１つまたは複数の）入力装置１０２４が含まれ得る。１つまたは複数の表示装置、スピーカ、プリンタ、および／または他の任意の出力装置など、（１つまたは複数の）出力装置１０２２はまた、装置１０１２内に含まれてもよい。（１つまたは複数の）入力装置１０２４、および、（１つまたは複数の）出力装置１０２２は、有線接続、無線接続、またはその任意の組合せを介して、装置１０１２に接続してもよい。一実施形態では、他の計算装置からの入力装置または出力装置は、計算装置１０１２用の（１つまたは複数の）入力装置１０２４または（１つまたは複数の）出力装置１０２２として使用してもよい。
【００７８】
計算装置１０１２の構成部品は、バスなどの様々な相互接続部によって接続されてもよい。こうした相互接続部には、ＰＣＩ  Ｅｘｐｒｅｓｓなどの周辺装置相互接続（ＰＣＩ）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）、ファイアワイヤ（ＩＥＥＥ  １３９４）、光バス構造などが含まれ得る。他の実施形態では、計算装置１０１２の構成部品は、ネットワークによって相互接続されてもよい。たとえば、メモリ１０１８は、ネットワークによって相互接続された様々な物理的な位置に配置された、複数の物理メモリ・ユニットから構成されてもよい。
【００７９】
コンピュータ読取り可能な命令を格納するのに利用される記憶装置は、ネットワークを介して分散してもよいことが、当業者には理解されよう。たとえば、ネットワーク１０２８を介してアクセス可能な計算装置１０３０は、コンピュータ読取り可能な命令を記憶して、本明細書において提供される１つまたは複数の実施形態を実施してもよい。計算装置１０１２は、計算装置１０３０にアクセスし、実行のためのコンピュータ読取り可能な命令の一部分またはそのすべてをダウンロードしてもよい。あるいは、計算装置１０１２は、必要に応じて、コンピュータ読取り可能な命令の各部分をダウンロードしてもよく、または、命令によっては計算装置１０１２で実行してもよく、命令によっては計算装置１０３０で実行してもよい。
【００８０】
実施形態の様々な動作が、本明細書で提供される。一実施形態では、記述された動作のうちの１つまたは複数が、１つまたは複数のコンピュータ読取り可能な媒体上に記憶されたコンピュータ読取り可能な命令を構成し、この命令は、計算装置によって実行される場合、計算装置が、記述された動作を実行するようにする。各動作のいくつかまたはそのすべてが記述される順序は、これらの動作が必然的に順序に依存することを意味するものと解釈すべきではない。代替の順序付けが、この記述の恩恵をこうむる当業者には理解されよう。さらに、本明細書で提供される各実施形態においては、必ずしもすべての動作が存在しなくてもよいことが理解されよう。
【００８１】
さらに、用語「例示的」は、本明細書では、代表例、具体例、または例証としての機能を果たすことを意味するために使用される。本明細書で「例示的」と記述されたいかなる態様または設計も、必ずしも、他の態様または設計に勝って有利であると解釈されるものではない。むしろ、「例示的」という用語を使用することは、具体的に概念を提供するものである。本出願で使用されているように、用語「または」は、排他的な「または」ではなく、包含的な「または」を意味するものである。すなわち、別段の指定がない限り、または文脈から明らかでない限り、「ＸはＡまたはＢを利用する」は、自然な包含的順列のいずれをも意味するものである。すなわち、ＸがＡを利用する、ＸがＢを利用する、またはＸがＡとＢの両方を利用する場合、「ＸがＡまたはＢを利用する」は、前述の場合のいずれの下でも満たされる。さらに、本出願および添付の特許請求の範囲で使用する冠詞「ａ」および「ａｎ」は、一般に、別段の指定がない限り、または単数形を指すと文脈から明らかでない限り、「１つまたは複数」を意味するものと解釈してもよい。
【００８２】
また、本開示は、１つまたは複数の実装形態に関して図示し、説明してきたが、この明細書および添付図面を読み、理解することに基づいて、同等な変更形態および修正形態が、当業者には思いつくことになる。本開示は、こうしたすべての修正形態および変更形態を含み、以下の特許請求の範囲に記載の範囲によってのみ限定される。特に、上記構成要素（たとえば、要素、リソースなど）によって実行される様々な機能に関しては、本明細書で示した本開示の例示的な実装形態の機能を実行する開示された構造とは構造的に同等ではないが、こうした構成要素を記述するのに使用される用語は、別段の定めがない限り、記述された構成要素（たとえば、すなわち機能的に同等の）の指定された機能を実行する任意の構成要素に対応するものである。さらに、本開示の特定の特徴が、いくつかの実装形態のうちのほんの１つに関して開示されてきたが、こうした特徴は、必要に応じて、また任意の所与のまたは特定の用途に対して所望され有利になるよう、他の実装形態の１つまたは複数の他の特徴と組み合わせてもよい。さらに、用語「ｉｎｃｌｕｄｅｓ」、「ｈａｖｉｎｇ」、「ｈａｓ」、「ｗｉｔｈ」、またはそれらの変化形が、詳細な説明または特許請求の範囲のいずれかにおいて使用される限りにおいて、こうした用語は、用語「ｃｏｍｐｒｉｓｉｎｇ」と同様にして包含的であることを意図している。
【図１】
2013517527.tif 000003
【図２】
2013517527.tif 000004
【図３】
2013517527.tif 000005
【図４】
2013517527.tif 000006
【図５】
2013517527.tif 000007
【図６】
2013517527.tif 000008
【図７】
2013517527.tif 000009
【図８】
2013517527.tif 000010
【図９】
2013517527.tif 000011
【図１０】
2013517527.tif 000012
【国際調査報告】
2013517527.tif 000013
2013517527.tif 000014
2013517527.tif 000015