(57)【要約】暗号化エンジンの関数を実装する方法において、複数の論理ブロック（ＬＢ１−ＬＢ３２）が提供される。各論理ブロックは関数（Ｆ、Ｇ、Ｈ、Ｉ）を実行するためのものである。  各関数は、各々が第１または第２変数を持ちうる３つの変数（Ｂ、Ｃ、Ｄ）に基づいて実行される。  この関数は、第１の値を有しているとして選択された第１変数値（Ｂ）と、実際の値を有している第２および第３変数（Ｃ、Ｄ）を用いて実行される。  同様に、この関数は、第２の値を有しているとして選択された第１変数値（Ｂ）と、実際の値を有している第２および第３変数（Ｃ、Ｄ）を用いて実行される。  第１変数（Ｂ）の実際の値が決定され、論理ブロックの出力は第１変数（Ｂ）の実際の値によって決定される。
2007532082.tif 000002
【特許請求の範囲】
【請求項１】
第１あるいは第２の値を持ちうる第１変数（Ｂ）の入力、および、第１あるいは第２の値を持ちうる第２変数（Ｃ）の入力に基づいて実行される関数を実行する方法であって、
第２変数（Ｃ）の実際の値を提供するステップと、
第１出力を提供するために、前記第１の値に設定された前記第１変数（Ｂ）の入力、および、前記実際の値を有する前記第２変数（Ｃ）の入力に基づいて前記関数を実行するステップと、
第２出力を提供するために、前記第２の値に設定された前記第１変数（Ｂ）の入力、および、前記実際の値を有する前記第２変数（Ｃ）の入力に基づいて前記関数を実行するステップとを含む方法。
【請求項２】
前記第１変数（Ｂ）の実際の値を提供するステップをさらに含む、請求項１記載の方法。
【請求項３】
前記第１あるいは前記第２のいずれかの出力を選択するステップをさらに含み、前記第１出力は、前記第１変数（Ｂ）が実際の第１の値を有する場合に選択され、前記第２出力は前記第１変数（Ｂ）が第２の実際の値を有する場合に選択される、請求項２記載の方法。
【請求項４】
第１あるいは第１の値を持ちうる第１変数（Ｂ）の入力、第１あるいは第２の値を持ちうる第２変数（Ｃ）の入力、および、第１あるいは第２の値を持ちうる第３変数（Ｄ）の入力に基づいて実行される関数を実行する方法であって、
前記第２および第３変数（Ｃ、Ｄ）に対して実際の値を提供するステップと、
第１出力を提供するために、前記第１の値に設定された前記第１変数（Ｂ）の入力、前記実際の値を有する前記第２変数（Ｃ）の入力、および、前記実際の値を有する前記第３変数（Ｄ）の入力に基づいて関数を実行するステップと、
第２出力を提供するために、前記第２の値に設定された前記第１変数（Ｂ）の入力、前記実際の値を有する前記第２変数（Ｃ）の入力、および、前記実際の値を有する前記第３変数（Ｄ）の入力に基づいて関数を実行するステップと、
を含む方法。
【請求項５】
前記第１変数（Ｂ）の実際の値を提供するステップをさらに含む、請求項４に記載の方法。
【請求項６】
前記第１あるいは前記第２のいずれかの出力を選択するステップをさらに含み、前記第１出力は、前記第１変数（Ｂ）の前記実際の値が前記第１の値の場合に選択され、前記第２出力は、前記第１変数（Ｂ）の実際の値が前記第２の値の場合に選択される、請求項５記載の方法。
【請求項７】
暗号化エンジンの関数を実行する方法において、
各々が関数を実行する第１および第２論理ブロックを提供するステップであって、前記第１論理ブロックの前記関数は、第１あるいは第２の値を持ちうる第１変数（Ｂ）の入力、および、第１あるいは第２の値を持ちうる第２変数（Ｃ）の入力に基づいて実行され、前記第２論理ブロックの前記関数は、前記第１あるいは前記第２の値を持ちうる第１変数（Ｂ）の入力、および、第１あるいは第２の値を持ちうる前記第３変数（Ｃ）の入力に基づいて実行されるステップと、  
前記第２変数（Ｃ）の実際の値を提供するステップと、
第１出力を提供するために、前記第１論理ブロックの前記関数を、前記第１の値に設定された前記第１変数（Ｂ）の入力、および、前記実際の値に基づいた前記第２変数（Ｃ）の入力に基づいて実行するステップと、
第２出力を提供するために、前記第１論理ブロックの前記関数を、前記第２の値に設定された前記第１変数（Ｂ）の入力、および、前記実際の値に基づいた前記第２変数（Ｃ）の入力に基づいて実行するステップと、
前記第３変数（Ｄ）の実際の値を提供するステップと、
第３出力を提供するために、前記第２論理ブロックの前記関数を、前記第１の値に設定された前記第１変数（Ｂ）の入力、および、前記実際の値に基づいた前記第３変数（Ｄ）の入力に基づいて実行するステップと、
第４出力を提供するために、前記第２論理ブロックの前記関数を、前記第２の値に設定された前記第１変数（Ｂ）の入力、および、前記実際の値に基づいた前記第３変数（Ｃ）の入力に基づいて実行するステップとを含む方法。
【請求項８】
前記第１変数（Ｂ）の実際の値を提供するステップをさらに含む、請求項７記載の方法。
【請求項９】
前記第１あるいは前記第２出力を選択するステップをさらに含み、前記第１出力は、前記第１変数（Ｂ）が実際の第１の値を有する場合に選択され、前記第２出力は、前記第１変数（Ｂ）が実際の第２の値を有する場合に選択される、請求項８に記載の方法。
【請求項１０】
前記第３または前記第４出力を選択するステップをさらに含み、前記第４出力は、前記第１変数（Ｂ）が第１の実際の値を有する場合に選択され、前記第２出力は、前記第１変数（Ｂ）が第２の実際の値を有する場合に選択される、請求項９記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
概して、本発明は、 暗号化エンジンの動作速度を高める技術分野に関する。
【背景技術】
【０００２】
参照として本文中に組み込まれている文献「ＲＦＣ  １３２１−Ｔｈｅ  ＭＤ５−Ｍｅｓｓａｇｅ−Ｄｉｇｅｓｔ  Ａｌｇｏｒｉｔｈｍ」（Ｒ．Ｒｉｖｅｓｔ、ＭＩＴコンピュータサイエンス研究所およびＲＳＡデータ・セキュリティー社、１９９２年４月、１−１８ページ）には、図１の構造によって示されるオペレーションアプローチ(operational approach)が開示されている。
そのようなオペレーションでは、レジスタＡは３２ビットのデータ（Ａ３１、Ａ３０、．．．Ａ０）で満たされており、レジスタＢは３２ビットのデータ（Ｂ３１、Ｂ３０、．．．Ｂ０）で満たされており、レジスタＣは３２ビットのデータ（Ｃ３１、Ｃ３０、．．．Ｃ０）  で満たされており、レジスタＤは３２ビットのデータ（Ｄ３１、Ｄ３０、．．．Ｄ０）で満たされている。さらに、レジスタ５は５１２ビットのデータで満たされており、レジスタ６は５１２ビットのデータで満たされている。各レジスタＡ、Ｂ、Ｃ、Ｄ、５および６は０あるいは１の値を有し得る。
【０００３】
その文献によれば、４つの補助関数が定義される。
F(B, C, D) = BC v not(B) D
G(B, C, D) = BD v C not(D)
H(B, C, D) = B xor C xor D
I(B, C, D) = C xor (B v not(D))
【０００４】
さらに、レジスタ５の５１２ビットは、各々が３２ビットの１６の別のグループ（ｋ＝０−１５）に分けられ、関数Ｘ（ｋ）はｋの値により決定されるグループを選択するように動作する。
レジスタ６の５１２ビットは、各々が３２ビットの１６の別のグループ（ｉ＝１−１６）に分けられ、関数Ｔ（ｉ）はｉの値により決定されるグループを選択するように動作する。
関数ＣＬＳ（ｓ）ロテータ１１（function CLS(s) rotator 11）は、値ｓ(ｓ=１−６４)により決定される多数のビットによって示されたコンテンツを回転（ローテート）させるように動作する。
【０００５】
［ＡＢＣＤｋｓｉ］を用いて、以下のラウンドの各々のオペレーションを示す。
/* ラウンド 1./
結果=b+((a+F(b,c,d)+X[k]+T[i])<<<s).*/
/*次の１６のオペレーションが行われる。
[ABCD 0 7 1] [DABC 1 12 2] [CDAB 2 17 3] [BCDA 3 22 4]
[ABCD 4 7 5] [DABC 5 12 6] [CDAB 6 17 7] [BCDA 7 22 8]
[ABCD 8 7 9] [DABC 9 12 10] [CDAB 10 17 11] [BCDA 11 22 12]
[ABCD 12 7 13] [DABC 13 12 14] [CDAB 14 17 15] [BCDA 15 22 16]
【０００６】
/* ラウンド 2.*/
結果=b+((a+G(b,c,d)+X[k]+T[i]<<<s).*/
/*以下の１６のオペレーションを行う。*/
[ABCD 1 5 17] [DABC 6 9 18] [CDAB 11 14 19] [BCDA 0 20 20]
[ABCD 5 5 21 ] [DABC 10 9 22] [CDAB 15 14 23] [BCDA 4 20 24]
[ABCD 9 5 25] [DABC 14 9 26] [CDAB 3 14 27] [BCDA 8 20 28]
[ABCD 13 5 29] [DABC 2 9 30] [CDAB 7 14 31] [BCDA 12 20 32]
【０００７】
/* ラウンド 3. */
結果=b+((a+H(b,c,d)+X[k]+T[i]<<<s).*/
/*以下の１６のオペレーションを行う。*/
[ABCD 5 4 33] [DABC 8 11 34] [CDAB 11 16 35] [BCDA 14 23 36]
[ABCD 1 4 37] [DABC 4 11 38] [CDAB 7 16 39] [BCDA 10 23 40]
[ABCD 13 4 41 ] [DABC 0 11 42] [CDAB 3 16 43] [BCDA 6 23 44]
[ABCD 9 4 45] [DABC 12 11 46] [CDAB 15 16 47] [BCDA 2 23 48]
【０００８】
/* ラウンド 4. */
結果=b+((a+I(b,c,d)+X[k]+T[i]<<<s).*/
/*以下の１６のオペレーションを行う。*/
[ABCD 0 6 49] [DABC 7 10 50] [CDAB 14 15 51] [BCDA 5 21 52]
[ABCD 12 6 53] [DABC 3 10 54] [CDAB 10 15 55] [BCDA 1 21 56]
[ABCD 8 6 57] [DABC 15 10 58] [CDAB 6 15 59] [BCDA 13 21 60]
[ABCD 4 6 61] [DABC 11 10 62] [CDAB 2 15 63] [BCDA 9 21 64]
【０００９】
図１および図２を参照しながら、第１ラウンドの第１オペレーション、つまり、［ＡＢＣＤ  ０  ７  １］を以下に説明する。
まず、レジスタＡにおける３２ビットのデータセットが加算器７に適用される。レジスタＢのデータセットの第１変数、つまりビットＢ３１、レジスタＣのデータセットの第１変数、つまりビットＣ３１、および、レジスタＤのデータセットの第１変数、つまりビットＤ３１が、（変数Ｂ３１、Ｃ３１、Ｄ３１の第１セットが）論理ブロック８への入力として適用される。この論理ブロックは、いずれの関数Ｆ、Ｇ、Ｈ、あるいはＩへこれらの変数を適用することができる。
【００１０】
同時に、レジスタＢのデータセットの第２変数、つまりビットＢ３０、レジスタＣのデータセットの第２変数、つまりビットＣ３０、および、レジスタＤのデータセットの第２変数、つまりビットＤ３０（変数Ｂ３１、Ｃ３１、Ｄ３１の第２セット）もまた、各々の変数セットに対して、論理ブロック８などへの入力として適用される。この具体例では、関数Ｆがこれらの変数に適用される(図２)。
３ビットからなる３２セットの各々に並行して処理が実行され、３２ビットの出力を生成し、この出力を加算器７に入力する。
論理ブロック８からの３２ビットの出力を加算器７へ入力すると、レジスタＢのコンテンツはレジスタＣと加算器１２へ入力され、レジスタＣのコンテンツはレジスタＤへ、レジスタＤのコンテンツはレジスタＡに記録される。
加算器７は論理ブロック８からの入力と加算器７へ入力されるレジスタＡのデータセットを追加し、これにより、３２ビットの出力を加算器９へ送る。
値ｋ＝０は、レジスタ５の３２ビットのグループ０が加算器９への入力として適用され、加算器９が、加算器７からの入力とレジスタ５の３２ビットのグループ０を追加することを示す。
加算器９の出力は加算器１０へ入力され、値ｉ＝１は、レジスタ６の３２ビットのグループ１が加算器１０への入力として適用され、加算器１０が、加算器９からの入力とレジスタ６の３２ビットのグループ１を追加することを示す。
加算器１０からの３２ビットの出力は、数値ｓによって決定されるロテータＣＬＳ（ｓ）によってローテーションされる。この場合、ｓ＝７である。ローテーションしたコンテンツは、加算器１２へ記録され、レジスタＢのコンテンツに入力される。このコンテンツはすでに加算器１２へ記録済である。加算器１２の出力はレジスタＢに入力される。
【００１１】
同様に関数Ｆを適用し、第１ラウンドの第２オペレーション、つまり、［ＤＡＢＣ  １  １２  ２］に対してこの処理を繰り返し行う。また、この処理を、各々が関数Ｆを適用する第１ラウンドの全１６のオペレーションに対して繰り返し行う。
上記の処理は、第２ラウンドの第１オペレーション、つまり、［ＡＢＣＤ  １  ５  １７］に適用される。しかし、論理ブロック８は、送られてくる入力に関数Ｇを適用する（図４）。上記と同様、第２ラウンドの１６のオペレーションが上述のチャートに従い行われる。第３および第４ラウンドは、関数Ｈ（図５）および関数Ｉ（図６）をそれぞれ用いて、上述のチャートに従い同様の方法で行われる。
論理ブロック８が適用する関数は、レジスタＢ、Ｃ、およびＤからの入力によって決まることは明らかであろう。論理ブロック８は、レジスタＣおよびレジスタＤのコンテンツを直接的に利用できるが、第１ラウンドの第１オペレーション後、論理ブロック８へ適用されるレジスタＢのコンテンツは、加算器７、レジスタ５、加算器９、加算器１０、レジスタ６、ロテータ１１、および、加算器１２を含む多数の計算を通じて到達する。論理ブロック８は関数を適用する前に、３つすべてのレジスタＢ、Ｃ、Ｄからの入力を待つ必要があるので、この時間のかかる処理により、システム全体の動作速度は希望する速度よりも遅くなる。従って、上述したオペレーションの速度を上げる方法が求められている。
【発明の開示】
【００１２】
暗号化エンジンの機能を実装する本方法では、各々が関数を実行するための、第１と第２論理ブロックが提供される。第１論理ブロックの関数は、第１あるいは第２の値を持ちうる第１変数の入力と、第１あるいは第２の値を持ちうる第２変数の入力に基づいて実行される。第２論理ブロックの関数は、第１あるいは第２の値を持ちうる第１変数の入力、および、第１あるいは第２の値を持ちうる第３変数の入力に基づいて実行される。第２変数の実際の値が提供される。
第１論理ブロックの関数は、第１の値に設定された第１変数の入力と実際の値に基づいた第２変数の入力に基づいて実行され、第１の出力が提供される。第１論理ブロックの関数は、第２の値に設定された第１変数の入力と実際の値に基づいた第２変数の入力に基づいて実行され、第２の出力が提供される。第３変数の実際の値が提供される。第２論理ブロックの関数は、第１の値に設定された第１変数の入力と実際の値に基づいた第３変数の入力に基づいて実行され、第３の出力が提供される。
第２論理ブロックの関数は、第２の値に設定された第１変数の入力と実際の値に基づいた第３変数の入力に基づいて実行され、第４の出力が提供される。
【００１３】
添付の図面とともに、以下の発明の詳細な説明を参照することにより、本発明をよりよく理解することができる。後述の説明から当業者には極めて明らかなことではあるが、開示され、説明される本発明の実施形態は、本発明を実現するための最良の形態を説明するためのものにすぎない。本発明をその他の実施形態においても実現可能であること、いくつかの詳細な部分については、本発明の範囲からまったく離れることなしに、変更可能であり、様々な明白な実施例を採用することができることを、理解していただきたい。従って、図面および詳細な説明は本質的に説明のためのものであり、本発明を限定しようとするものではないものとして扱われるべきである。
本発明の新規な特徴は、添付の特許請求の範囲において記載される。しかし、発明そのもの、さらに、前述の好適な使用方法、およびその目的と特徴は、添付の図面とともに後述の実施形態の詳細な説明を参照することによって最もよく理解される。
【発明を実施するための最良の形態】
【００１４】
本発明を実行するために発明者によって目下のところ検討されている最良の形態を例示した本発明の具体的な実施形態について説明する。
【００１５】
図７は、本発明の実施形態を示す。図示されているように、３２の個々の論理ブロックＬＢ１、ＢＬ２、ＬＢ３、．．．ＬＢ３２が提供されている。これらの論理ブロックＬＢ１−ＬＢ３２は、図１の単一の論理ブロック８に取って代わるものである。図１の実施形態では、レジスタＢ、Ｃ、Ｄの各々は単一の論理ブロック８に並列な３２の接続を有していたことが思い出されるであろう。
【００１６】
本実施形態では、図７で明らかなように、レジスタＢは論理ブロックＬＢ１−ＬＢ３２の各々へ個々の接続を有しており、レジスタＣは論理ブロックＬＢ１−ＬＢ３２の各々へ個々の接続を有しており、レジスタＤは論理ブロックＬＢ１−ＬＢ３２の各々へ個々の接続を有している。
論理ブロックＬＢ１−ＬＢ３２は同一の構成であり、また、その詳細、例えば、論理ブロックＬＢ１、ＬＢ２、ＬＢ３、およびＬＢ３２を図８から図１１に示す。
各論理ブロックは、選択される関数Ｆ、Ｇ、Ｈ、Ｉを実行するための２つの関数ブロックを含む。つまり、論理ブロックＬＢ１は関数ブロックＬＢ１ＦＢ１、ＬＢ１ＦＢ２を含み、論理ブロックＬＢ２は関数ブロックＬＢ２ＦＢ１、ＬＢ２ＦＢ２を含む、などである。
同時に、ビットＣ３１、Ｄ３１の実際の値は、論理ブロックＬＢ１の両方の関数ブロックＬＢ１ＦＢ１、ＬＢ１ＦＢ２の入力として適用され（図８）、ビットＣ３０、Ｄ３０の実際の値は、論理ブロックＬＢ２の両方の関数ブロックＬＢ２ＦＢ１、ＬＢ２ＦＢ２の入力として適用され（図９）、ビットＣ２９、Ｄ２９の実際の値は、論理ブロックＬＢ３の両方の関数ブロックＬＢ３ＦＢ１、ＬＢ３ＦＢ２の入力として適用される（図１０）など、すべての論理ブロックを通じて適用される。ビットＣ０、Ｄ０の実際の値は論理ブロックＬＢ３２の両方の関数ブロックＬＢ３２ＦＢ１、ＬＢ３２ＦＢ２の入力として適用される（図１１）。
各論理ブロック内では、各関数ブロックへ追加の入力が提供され、その入力は、１つの関数ブロックに対しては０に、もう１つの関数ブロックに対しては１に設定される。例えば、図８に例示しているように、関数ブロックＬＢ１ＦＢ１への追加の入力は０に設定され、関数ブロックＬＢ１ＦＢ２への追加の入力は１に設定される。これは、レジスタＢにおいて、個々のビットが取り得る両方の値を表す。
【００１７】
オペレーションでは、論理ブロックＬＢ１の関数ブロックＬＢ１ＦＢ１は、入力Ｃ３１、Ｄ３１、Ｂ＝０で関数Ｆを実行し、一方では、論理ブロックＬＢ１の関数ブロックＬＢ１ＦＢ２は入力Ｃ３１、Ｄ３１、Ｂ＝１で関数Ｆを実行する（図８）。
同時に、論理ブロックＬＢ２の関数ブロックＬＢ２ＦＢ１は、入力Ｃ３０、Ｄ３０、Ｂ＝０で関数Ｆを実行し、論理ブロックＬＢ２の関数ブロックＬＢ２ＦＢ２は入力Ｃ３０、Ｄ３０、Ｂ＝１で関数Ｆを実行する（図９）。論理ブロックＬＢ３の関数ブロックＬＢ３ＦＢ１は、入力Ｃ２９、Ｄ２９、Ｂ＝０で関数Ｆを実行し、論理ブロックＬＢ３の関数ブロックＬＢ３ＦＢ２は入力Ｃ２９、Ｄ２９、Ｂ＝１で関数Ｆを実行する（図１０）。すべての論理ブロックを通じて、論理ブロックＬＢ３２の関数ブロックＬＢ３２ＦＢ１は、入力Ｃ０、Ｄ０、Ｂ＝０で関数Ｆを実行し、論理ブロックＬＢ３２の関数ブロックＬＢ３２ＦＢ２は入力Ｃ０、Ｄ０、Ｂ＝１で関数Ｆを実行する（図１１）。
【００１８】
各論理ブロック内では、ペアの関数ブロックの出力は、マルチプレクサへ提供される（例えば、論理ブロックＬＢ１では、関数ブロックＬＢ１ＦＢ１、ＬＢ１ＦＢ２からの出力はマルチプレクサＭ１へ送られ、論理ブロックＬＢ２では、関数ブロックＬＢ２ＦＢ１、ＬＢ２ＦＢ２からの出力はマルチプレクサＭ２へ送られる、など）。
これらの動作はすべて、レジスタＢからデータが送られる前に行われ、その結果、上述のように、データの、レジスタＢへの到達が遅れるおそれがある。しかし、レジスタＢへ到達するそのような値を予測して、レジスタＢへ送られるデータのそれぞれのビットの両方の値に基づいて計算が行われる。次に、そのような（３２ビット）データが実際にレジスタＢに到達すると、レジスタＢのビットＢ３１の実際の値がマルチプレクサＭ１の入力として適用される。マルチプレクサＭ１はこの入力に基づいて、関数ブロック（関数ブロックＬＢ１ＦＢ１あるいは関数ブロックＬＢ１ＦＢ２のいずれか）の出力を選択する。関数ブロックの出力はレジスタＢのビットＢ３１の実際の値に基づくものである。つまり、ビットＢ３１の実際の値が０の場合、関数ブロックＬＢ１ＦＢ１からの出力は論理ブロックＬＢ１の出力として選択される。同様に、第２論理ブロックＬＢ２の実際の出力はレジスタＢのビットＢ３０の実際の値に基づき、第３論理ブロックＬＢ３の実際の出力はレジスタＢのビットＢ２９の実際の値に基づく、等々である。
【００１９】
論理ブロックＬＢ１−ＬＢ３２のそれぞれの出力は、図１の加算器７へ適用される３２ビットデータのそれぞれのビットを構成する。これは以前に論理ブロック８によって提供されたものである。上述のように、ラウンド１の全１６のオペレーションは関数Ｆに基づいて行われる（上記のチャートを参照のこと）。上記と同様に、上記のチャートに従い、関数Ｇに基づいて、第２ラウンドの１６のオペレーションが行われる。第３および第４ラウンド、関数Ｈ（図１３）と関数Ｉ（図１４）をそれぞれ用いて、同じく上記のチャートに従い同様の方法で行われる。
【００２０】
各論理ブロックでは、レジスタＣからの入力の実際の値、レジスタＤからの入力の実際の値、および、レジスタＢからの入力の取り得る両方の値に基づいて関数が実行され、論理ブロックの出力は、マルチプレクサへ適用される際の、レジスタＢの特定のビットの実際の値に基づいて決定されることは明らかであろう。
【００２１】
したがって、レジスタＢに到達させるための、値Ｂ３１−Ｂ０に対するあらゆる不測の事態をカバーした計算は、これらのビットの実際の値がレジスタＢに属する前にすでに行われている。実際の値がレジスタＢに到達すると、各ビットの値はマルチプレクサへの直接路によって送られる。これは、レジスタＢ、Ｃ、およびＤからの入力の３つの実際の値を論理ブロック８に送った後にだけ関数が実行された従来技術と比較される。現状では、レジスタＢへデータを提供する上述のステップと並行して関数が実行される。また、レジスタＢからマルチプレクサへの直接路を用いて、レジスタＢのビットの実際の値に基づいた、マルチプレクサへの出力を選択する簡単なステップだけを行う必要がある。本発明の実施形態についての上記の説明は、例証および解説の目的で行われたものである。
【００２２】
これらの説明は網羅的なものではなく、また本発明をここに開示された特定の形態に限定しようとするものでもない。上記の教示に鑑みて、他の変形または修正を行うことが可能である。
この実施形態は、本発明の原理およびその実際の応用を最もよく説明することにより、当業者が本発明を様々な実施形態において、そして考えられる特定の使用形態に適合するように様々な変形を加えて利用できるように、選択され説明されたものである。そのような変更および変形は、特許請求の範囲を公正に、法的な権利に基づいた範囲において解釈することによって定められる、本発明の範囲内のものである。
【図面の簡単な説明】
【００２３】
【図１】従来技術の方法のオペレーションを例示した説明図。
【図２】従来技術の方法のオペレーションを例示した説明図。
【図３】従来技術の方法のオペレーションを例示した説明図。
【図４】従来技術の方法のオペレーションを例示した説明図。
【図５】従来技術の方法のオペレーションを例示した説明図。
【図６】従来技術の方法のオペレーションを例示した説明図。
【図７】本発明の方法のオペレーションを例示した説明図。
【図８】本発明の方法のオペレーションを例示した説明図。
【図９】本発明の方法のオペレーションを例示した説明図。
【図１０】本発明の方法のオペレーションを例示した説明図。
【図１１】本発明の方法のオペレーションを例示した説明図。
【図１２】本発明の方法のオペレーションを例示した説明図。
【図１３】本発明の方法のオペレーションを例示した説明図。
【図１４】本発明の方法のオペレーションを例示した説明図。
【図１】
2007532082.tif 000003
【図２】
2007532082.tif 000004
【図３】
2007532082.tif 000005
【図４】
2007532082.tif 000006
【図５】
2007532082.tif 000007
【図６】
2007532082.tif 000008
【図７】
2007532082.tif 000009
【図８】
2007532082.tif 000010
【図９】
2007532082.tif 000011
【図１０】
2007532082.tif 000012
【図１１】
2007532082.tif 000013
【図１２】
2007532082.tif 000014
【図１３】
2007532082.tif 000015
【図１４】
2007532082.tif 000016
【国際調査報告】
2007532082.tif 000017