(57)【要約】【課題】データ処理システムのための効率的な暗号化および認証【解決手段】データのいくらかが平文で送信されるが、依然として送信者により認証できるように、暗号化および認証データのための方法および装置がここに提示される。平文位置および／または暗号文位置の集合が、入力チェックサム値（４７０）と出力チェックサム値（４７５）を生成するためにどのデータブロックが使用されるのかを指定するために使用される。これらのチェックサムは、次に認証タグ（４９０）を生成するために使用される。
2006502451.tif 000002
【特許請求の範囲】
【請求項１】
データを、それぞれが暗号ブロックサイズに従ったサイズを有する複数の平文ブロックに配列することと、
少なくとも１つの暗号文ブロックが対応する平文ブロックと同じとなる少なくとも１つの平文位置を指定することと、
臨時値および第１の鍵を使用して複数の雑音ブロックを決定することと、
複数の中間暗号文ブロックを決定することであって、第１の中間暗号文ブロックが暗号化された臨時値に対応し、残りの中間暗号文が複数の中間平文ブロックを第２の鍵で暗号化することにより計算され、各中間平文ブロックが複数の平文ブロックと先行する中間暗号文ブロックの１つの組み合わせであることと、
前記複数の中間暗号文ブロックと前記複数の雑音ブロックを使用することにより複数の暗号文ブロックを決定することであって、第１の暗号文ブロックが前記第１の中間暗号文ブロックと同じであり、残りの暗号文ブロックが対応する中間暗号文ブロックを対応する雑音ブロックに結合することにより導出されることと、
前記複数の平文ブロックと、最後の平文ブロックに対応する中間暗号文ブロックに基づいて入力チェックサム値を計算することと、
前記複数の暗号文ブロックと雑音ブロックに基づき出力チェックサム値を計算することと、
前記入力チェックサム値を前記第２の鍵で暗号化し、暗号化された入力チェックサム値を出力チェックサムと結合することにより認証タグを計算することと、
平文位置により指定される前記複数の暗号文ブロックのそれぞれを対応する平文ブロックで置換することと、
認証タグを添付することと、
を含む、単一のエンティティとしてデータを暗号化および認証するための方法。
【請求項２】
前記暗号化することはブロック暗号の暗号化を使用する、請求項１に記載の方法。
【請求項３】
前記暗号化することは、
ブロック暗号の暗号化またはブロック暗号の復号を適用することを選ぶことと、
所定の選択規則の集合に従って使用するブロック暗号を選択することと、
選ばれたブロック暗号の暗号化またはブロック暗号の復号を、先行する中間暗号文ブロックと結合される前記複数の平文ブロックの１つに適用することにより前記複数の中間暗号文ブロックを形成することと、
を含む、請求項１に記載の方法。
【請求項４】
前記入力チェックサム値を計算することが、
前記該少なくとも１つの平文位置として指定されない位置に対応する前記複数の平文ブロックのすべてを結合することと、
最後の雑音ブロックと結合された複数の平文ブロックを結合することと、
を含む、請求項１に記載の方法。
【請求項５】
前記出力チェックサムを計算することが、
前記少なくとも１つの平文位置に対応する前記複数の暗号文ブロックのすべてを結合することと、
第１の雑音ブロックと結合された複数の暗号文ブロックを結合することと、
を含む、請求項１に記載の方法。
【請求項６】
結合することが、ビット単位の排他的論理和演算を使用して実行される、請求項１に記載の方法。
【請求項７】
結合することが、グループ演算子を使用して実行される、請求項１に記載の方法。
【請求項８】
前記グループ演算子はモジュール式整数加算演算子である、請求項７に記載の方法。
【請求項９】
臨時値と第１の鍵を使用して複数の雑音ブロックを決定することと、
複数の中間暗号文ブロックを決定するために、平文位置の集合内の平文位置により指定されていない複数のデータブロックのそれぞれを対応する雑音ブロックと結合することと、
前記平文位置の集合内の平文位置により指定される前記複数のデータブロックのそれぞれを、複数の平文ブロック内の平文ブロックとして指定することと、
前記平文位置の集合内の平文位置ごとに、中間平文ブロックを形成するために対応する平文ブロックを前の中間暗号文ブロックと結合し、平文位置に対応する中間暗号文ブロックを形成するために前記中間平文ブロックを暗号化することと、
前記平文位置の集合内にない位置ごとに、関連付けられた中間平文ブロックを形成するために対応する中間暗号文ブロックを復号し、前記平文位置の集合内にない位置ごとに平文ブロックを形成するために前記関連付けられた中間平文ブロックを前の中間暗号文ブロックと結合することと、
複数の二次暗号文ブロックのそれぞれが前記平文位置の集合内の平文位置に対応し、対応する中間暗号文ブロックを対応する雑音ブロックと結合することにより形成される複数の二次暗号文ブロックを決定することと、
最後の中間暗号文ブロックと、前記平文位置の集合内の平文位置により指定されていない前記複数のデータブロックを結合することにより入力チェックサム値を計算することと、
雑音ブロックと前記複数の二次暗号文ブロックを結合することにより出力チェックサム値を計算することと、
認証タグを検証することと、
を含む、平文位置の集合が定義される、認証タグを伴う複数のデータブロックを復号し、検証するための方法。
【請求項１０】
前記認証タグを検証することが、
前記入力チェックサム値を第２の鍵で暗号化し、暗号化された入力チェックサム値を前記出力チェックサム値と結合することにより試験認証タグを計算することと、
前記試験認証タグと前記認証タグが同じ場合に前記認証タグが検証される、前記試験認証タグを前記認証タグと比較することと、
を含む、請求項９に記載の方法。
【請求項１１】
前記認証タグを検証することが、
試験認証入力チェックサム値を形成するために、前記認証タグを前記出力チェックサム値に結合することと、
前記入力チェックサム値を暗号化することと、
前記試験暗号化入力チェックサム値と暗号化された入力チェックサム値が同じ場合に、前記認証タグが検証される、前記試験暗号化入力チェックサム値を前記暗号化された入力チェックサム値と比較することと、
を備える、請求項９に記載の方法。
【請求項１２】
前記認証タグを検証することが、
試験暗号化入力チェックサム値を形成するために、前記認証タグを前記出力チェックサム値に結合することと、
前記試験暗号化入力チェックサム値を復号し、試験入力チェックサム値を得ることと、
前記試験入力チェックサム値と前記入力チェックサム値が同じ場合に、前記認証タグが検証される、前記試験入力チェックサム値を前記入力チェックサム値に比較することと、
を含む、請求項９に記載の方法。
【請求項１３】
少なくとも１つのメモリ要素と、
データブロックを、それぞれが暗号ブロックサイズに従ったサイズを有する複数の平文ブロックの中に配列するため、
少なくとも１つの暗号文ブロックが対応する平文ブロックと同じである少なくとも１つの平文位置を指定するため、
臨時値と第１の鍵を使用して複数の雑音ブロックを決定するため、
第１の中間暗号文ブロックが暗号化された臨時値に対応し、残りの中間暗号文が、複数の中間平文ブロックを第２の鍵で暗号化することにより反復して計算され、各中間平文ブロックが前記複数の平文ブロックと先行する中間暗号文ブロックの１つの組み合わせである複数の中間暗号文ブロックを決定するため、
前記複数の中間暗号文ブロックと前記複数の雑音ブロックを使用することにより複数の暗号文ブロックを決定し、第１の暗号文ブロックが前記第１の中間暗号文ブロックと同じであり、残りの暗号文ブロックが対応する中間暗号文ブロックを対応する雑音ブロックと結合することにより導出されるため、
前記複数の平文ブロックと最後の平文ブロックに対応する中間暗号文ブロックに基づいて入力チェックサム値を計算するため、
前記複数の暗号文ブロックと雑音ブロックに基づいて出力チェックサム値を計算するため、
前記入力チェックサム値を第２の鍵で暗号化し、暗号化された入力チェックサム値を出力チェックサムと結合することにより認証タグを計算するため、
平文位置で指定される前記複数の暗号文ブロックのそれぞれを対応する平文ブロックで置換するため、および、
前記認証タグを添付するための、前記メモリ要素に記憶される命令の集合を実行するように構成される少なくとも１つの処理要素と、
を備える、データを暗号化および認証するための装置。
【請求項１４】
少なくとも１つのメモリ要素と、
臨時値と第１の鍵を使用し複数の雑音ブロックを決定するため、
複数の中間暗号文ブロックを決定するために、平文の集合内の平文位置により指定されない複数のデータブロックのそれぞれと、対応する雑音ブロックを結合するため、
平文位置の集合内の平文位置により指定される複数のデータブロックのそれぞれを、複数の平文ブロック内の平文ブロックとして指定するため、
平文位置の集合内の平文位置ごとに、中間平文ブロックを形成するために対応する平文ブロックを前の中間暗号文ブロックと結合し、前記平文位置に対応する中間暗号文ブロックを形成するために前記中間平文ブロックを暗号化するため、
平文位置の集合内にない位置ごとに、関連付けられた中間平文ブロックを形成するために対応する中間暗号文ブロックを復号し、平文位置の集合内にない位置ごとに平文ブロックを形成するために、前記関連付けられた中間平文ブロックを前の中間暗号文ブロックと結合するため、
複数の二次暗号文ブロックのそれぞれが平文位置の集合内の平文位置に対応し、対応する中間暗号文ブロックを対応する雑音ブロックに結合することにより形成される前記複数の二次暗号文ブロックを決定するため、
最後の中間暗号文ブロックと平文位置の集合内の平文位置により指定されない複数のデータブロックを結合することにより入力チェックサム値を計算するため、
雑音ブロックと前記複数の二次暗号文ブロックを結合することにより出力チェックサム値を計算するため、および、
認証タグを検証するための、メモリ要素に記憶される命令の集合を実行するように構成される少なくとも１つの処理要素と、
を備える、データを暗号化および認証するための装置。
【請求項１５】
平文位置の集合が、平文位置内のブロックが暗号化されていないことを示すためであり、暗号文位置の集合が前記暗号文位置内のブロックが暗号化されていることを示すためである前記平文位置の集合と前記暗号文位置の集合を指定することと、
データブロックが平文位置にある場合には、
前記データブロックに等しい平文ブロックを設定することと、
中間平文ブロックを形成するために前記平文ブロックを前の中間暗号文ブロックで排他論理和を取ることと、
中間暗号文ブロックを形成するために前記中間平文ブロックを暗号化することと、
前記データブロックが暗号文位置にある場合には、
対応する中間暗号文ブロックを形成するために前記データブロックを系列の集合からのデータブロックに対応する系列で排他的論理和を取ることと、
中間平文ブロックを形成するために、前記対応する中間暗号文ブロックを復号することと、
平文ブロックを形成するために前記中間平文ブロックを前の中間暗号文ブロックで排他的論理和を取ることと、
すべての中間ブロックを使用して認証タグを計算することと、
前記認証タグ、系列の集合からの第１の系列および系列の集合からの最後の系列を使用して最後の暗号文ブロックを計算することと、
前記暗号文ブロックと前記認証タグを送信することと、
を含む、単一のエンティティとしてデータを暗号化および認証するための方法。
【請求項１６】
平文位置の集合を生成することと、
データ伝送の第１の部分が前記平文位置の集合により指定され、データ伝送の第２の部分が前記平文位置の集合の任意の１つと関連付けられていない、データ伝送の第１の部分とデータ伝送の第２の部分を暗号文に暗号化することと、
前記平文位置の集合の任意の１つと関連付けられていないデータ伝送を使用して入力チェックサム値を生成することと、
前記データ伝送の第１の部分の暗号文を使用して出力チェックサム値を生成することと、
前記入力チェックサム値と前記出力チェックサム値を使用して認証タグを生成することと、
平文が前記平文位置の集合により指定されるデータ伝送の第１の部分である、前記平文、暗号文、および認証タグを送信することと、
を含む、データ伝送の第１の部分が平文として送信され、データ伝送の第２の部分が暗号文として送信され、データ伝送のすべてが認証される安全なデータ伝送のための方法。
【請求項１７】
複数の受信された伝送ブロックのそれぞれが平文位置の集合からの平文位置により指定されているかどうかを判定することと、
前記複数の受信された伝送ブロックを復号することであって、
平文位置により指定されない場合には、中間暗号文ブロックの集合を生成することと、中間平文ブロックの集合を生成するために前記中間暗号文ブロックの集合を復号することと、平文ブロックの集合を生成することと、
平文位置により指定される場合には、中間平文ブロックを形成するために平文位置により指定される前記複数の受信された伝送ブロックのそれぞれを前の中間暗号文ブロックと結合し、中間暗号文ブロックを得るために前記中間平文ブロックを暗号化することと、
を含む復号することと、
前記複数の受信された伝送ブロックを検証することであって、
平文位置により指定されない平文ブロックの集合を使用して入力チェックサム値を形成することと、
二次暗号文ブロックが平文位置に関連付けられていない中間暗号文ブロックの集合から導出される前記二次暗号文ブロックの集合を使用して出力チェックサム値を形成することと、
認証タグとの比較のために前記入力チェックサム値と前記出力チェックサム値を使用することと、
を含む検証することと、
を含む、複数の受信された伝送ブロックを復号し、検証するための方法。
【請求項１８】
前記復号することが前記検証することと並列して実行される、請求項１７に記載の方法。
【請求項１９】
平文ブロックの集合を記憶するための少なくとも１つのメモリ要素と、
入力ブロックを結合するための少なくとも１つの結合要素と、
入力に対して暗号関数を実行するための少なくとも１つの暗号化要素と、
伝送ストリーム内の特定の位置での伝送のために平文ブロックまたは暗号文ブロックのどちらかを選択するための少なくとも１つの選択要素と、
少なくとも２つのチェックサム生成プログラムと、
少なくとも１つの処理要素であって、少なくとも１つの処理が、前記少なくとも１つのメモリ要素と、前記少なくとも１つの結合要素と、前記少なくとも１つの暗号化要素と、前記少なくとも２つのチェックサム生成プログラムと、前記少なくとも１つの選択要素とを制御するためであり、その結果、
前記少なくとも１つの結合要素の第１の部分が、中間平文ブロックを出力するために平文ブロックを前の段階の中間暗号文ブロックと結合するためであり、前記少なくとも１つの暗号化要素の第１の部分が前記中間平文ブロックから現在の段階の中間暗号文ブロックを生成するためであり、前記少なくとも１つの結合要素の第２の部分が現在の状態の中間暗号文ブロックを雑音ブロックと結合することから暗号文ブロックを出力するためであり、第１のチェックサム生成プログラムが指定された平文ブロックの集合から第１のチェックサムを出力するためであり、少なくとも１つの暗号化要素の第２の部分が前記第１のチェックサムを暗号化するためであり、第２のチェックサム生成プログラムが指定された暗号文ブロックから第２のチェックサムを出力するためであり、前記少なくとも１つの結合要素の第３の部分が認証タグを形成するために暗号化された前記第１のチェックサムと前記第２のチェックサムを結合するためである、
少なくとも１つの処理要素と、
を備える、データを暗号化および認証するための装置。
【請求項２０】
データ伝送ブロックの集合を記憶するための少なくとも１つのメモリ要素と、
入力ブロックを結合するための少なくとも１つの結合要素と、
第１の暗号関数を入力に対して実行するための少なくとも１つの暗号化要素と、
第２の暗号関数が前記第１の暗号関数の逆数である、第２の暗号関数を入力に対して実行するための少なくとも１つの復号要素と、
前記少なくとも１つの暗号化要素からの出力または前記少なくとも１つの結合要素からの出力のどちらかを選択するための少なくとも１つの切り替え要素と、
平文ブロックの指定された集合に基づいて入力チェックサムを、二次暗号文ブロックの集合に基づいて出力チェックサムを生成するための少なくとも２つのチェックサム生成プログラムと、
少なくとも１つの処理要素であって、少なくとも１つの処理が、前記少なくとも１つのメモリ要素と、前記少なくとも１つの結合要素と、前記少なくとも１つの暗号化要素と、前記少なくとも１つの復号要素と、前記少なくとも２つのチェックサム生成プログラムと、前記少なくとも１つの切り替え要素とを制御するためであり、その結果、
前記少なくとも１つの結合要素の第１の部分が中間暗号文ブロックを形成するためにデータ伝送ブロックを雑音ブロックと結合するためであり、前記少なくとも１つの復号要素が中間平文ブロックを形成するために前記中間暗号文ブロックを復号するためであり、前記少なくとも１つの結合要素の第２の部分が平文ブロックを形成するために前記中間平文ブロックを前の段階の中間暗号文ブロックと結合するためであり、前記少なくとも１つの結合要素の第３の部分が第２の中間平文ブロックを形成するために、前記データ伝送ブロックを前の段階の中間暗号文ブロックと結合するためであり、前記少なくとも１つの暗号化要素が第２の中間暗号文ブロックを形成するために前記第２の中間平文ブロックを暗号化するためであり、前記少なくとも１つの切り替え要素が第１の中間暗号文ブロックまたは第２の中間暗号文ブロックのどちらかを選択するためであり、前記少なくとも１つの結合要素の第２の部分が二次暗号文ブロックを形成するために前記雑音ブロックを前記第２の中間暗号文ブロックと結合するためである、
少なくとも１つの処理要素と、
を備える、データ伝送を復号および検証するための装置。
【請求項２１】
平文位置の集合を生成するための手段と、
データ伝送の第１の部分が前記平文位置の集合により指定され、データ伝送の第２の部分が前記平文位置の集合の任意の１つに関連付けられていない、データ伝送の第１の部分とデータ伝送の第２の部分を暗号文に暗号化するための手段と、
前記平文位置の集合のどれか１つと関連付けられていないデータ伝送を使用して入力チェックサム値を生成するための手段と、
前記データ伝送の第１の部分の暗号文を使用して出力チェックサム値を生成するための手段と、
前記入力チェックサム値と前記出力チェックサム値を使用して認証タグを生成するための手段と、
平文が前記平文位置の集合により指定される前記データ伝送の第１の部分である、前記平文、前記暗号文、および前記認証タグを送信するための手段と、
を備える、データ伝送の第１の部分が平文として送信され、データ伝送の第２の部分が暗号文として送信され、データ伝送のすべてが認証される安全なデータ伝送のための装置。
【請求項２２】
複数の受信された伝送ブロックのそれぞれが平文位置の集合からの平文位置により指定されているかどうかを判定するための手段と、
前記複数の受信された伝送ブロックを復号するための手段であって、復号することが、
平文位置により指定されていない場合には、中間暗号文ブロックの集合を生成することと、中間平文ブロックの集合を生成するために前記中間暗号文ブロックの集合を復号することと、平文ブロックの集合を生成することと、
平文位置により指定されている場合には、中間平文ブロックを形成するために、平文位置により指定される前記複数の受信された伝送ブロックのそれぞれを前の中間暗号文ブロックと結合することと、中間暗号文ブロックを得るために前記中間平文ブロックを暗号化することと、
を備える手段と、
平文位置により指定されない前記平文ブロックの集合を使用して入力チェックサム値を形成し、二次暗号文ブロックが平文位置と関連付けられていない中間暗号文ブロックの集合から導出される、前記二次暗号文ブロックの集合を使用して出力チェックサム値を形成し、認証タグと比較のために前記入力チェックサム値と前記出力チェックサム値を使用することにより前記複数の受信された伝送ブロックを検証するための手段と、
を備える、複数の受信された伝送ブロックを復号および検証するための装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理システムの分野に関し、特にデータ処理システムにおけるセキュリティを改善することに関する。
【背景技術】
【０００２】
電子商取引、通信および放送などの多岐にわたる分野において、セキュリティは主要な関心事である。セキュリティ手段は、これらの分野で活用されるデータ処理システムおよび情報システムに要求される説明責任、公平さ、正確さ、機密性、操作性および他の判断基準に寄与する。このようなセキュリティを提供する暗号方法は、通常２つの目的、つまり暗号化と認証に従って分類される。暗号化は、許可されていない者がデータを読み取ることをできなくする技術である。認証はデータの完全性を検証する技術である。データの完全性を検証することは、データの作成者のアイデンティティを検証すること、および／またはデータが改変されたかどうかを検証することを必要とする。
【０００３】
暗号化システムは、多くの場合暗号法と呼ばれ、対称または非対称のどちらかであるという特性を有する。対称暗号化システムは情報を暗号化するために秘密鍵を使用し、暗号化された情報を復号するために同じ秘密鍵を使用する。公開鍵暗号系などの非対称暗号化システムは情報を暗号化するために第１の鍵を使用し、暗号化された情報を復号するために別の鍵を使用する。
【０００４】
多くの対称暗号法では、暗号化機能に１つの鍵が使用され、認証機能に別の鍵が使用される。したがって、対称暗号法を使用するデータ処理システムにおいては、暗号化および認証は２つの別々のエンティティとして実行される。認証は暗号化とほぼ同じほど多くの処理能力を必要とするため、処理の総量はデータを二度暗号化するために必要とされる処理量に同等である。携帯電話、携帯情報端末、または他の携帯通信装置などの電力が制限された環境またはハードウェアが制限された環境で動作するデータ処理システムでは、装置にかかる計算上の負荷を削減するため、あるいは装置が暗号化および認証を実行する速度を増加させるために、暗号化および認証を単一のエンティティとして実行できる暗号法を有することが望ましい。
【０００５】
Ｃｈａｒａｎｊｉｔ  Ｊｕｔｌａにより書かれた論文「ほとんど自由なメッセージ完全性を伴う暗号化モード（Ｅｎｃｙｒｐｔｉｏｎ  Ｍｏｄｅｓ  ｗｉｔｈ  Ａｌｍｏｓｔ  Ｆｒｅｅ  Ｍｅｓｓａｇｅ  Ｉｎｔｅｇｒｉｔｙ）」、暗号学の進歩（Ａｄｖａｎｃｅｓ  ｉｎ  Ｃｒｙｐｔｏｌｏｇｙ）、ＥＵＲＯＣＲＹＰＴ  ２００１コンピュータサイエンス（Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ）の講演集、第２０４５巻、Ｓｐｒｉｎｇｅｒ−Ｖｅｒｌａｇ、２００１年では、メッセージを暗号化し、暗号化されたメッセージを、暗号化だけの場合に必要とするのとほぼ同程度の処理を必要とする方法で認証することができる、暗号化システムが提示された。言い換えると、暗号化および認証は、単一の機能エンティティとして効率的に実行できる。したがって、セキュリティを提供するために必要とされる処理リソースの量が削減される。
【０００６】
Ｊｕｔｌａ暗号法は、送信されなければならないデータのすべてを暗号化するように設計されている。しかしながら、メッセージのすべてが暗号化されなければならないという要件は特定の用途では望ましくない。例えば、ＩＰＳｅｃなどの通信プロトコルでは、すべてのデータの暗号化は効率的ではない。データのヘッダ部分はアドレス指定の目的のために暗号化されずに送信されなければならない。ＩＣＳｅｃの基礎は、すべてが１９９５年８月にＲ．Ａｔｋｉｎｓｏｎにより提出された「インターネットプロトコルのためのセキュリティアーキテクチャ（Ｓｅｃｕｒｉｔｙ  Ａｒｃｈｉｔｅｃｔｕｒｅ  ｆｏｒ  ｔｈｅ  Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）」と題されるＲＦＣ１８２５、「ＩＰ認証ヘッダ（Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｈｅａｄｅｒ）」と題されるＲＦＣ１８２６および「ＩＰカプセル化セキュリティペイロード（ＥＳＰ）」と題されるＲＦＣ１８２７で定義される。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
したがって、メッセージのすべてのデータビットが暗号化される必要がないデータの暗号化および認証のための安全且つ効率的なシステムに対するニーズが存在する。
【課題を解決するための手段】
【０００８】
前記に述べられたニーズに対処するための方法および装置がここに提示される。具体的には、データメッセージのある部分を平文として送信、データメッセージのある部分を暗号文として送信することができるようにし、データメッセージの平文部分と暗号文部分の両方を検証するための単一の認証タグを使用するための方法および装置が提示される。
【０００９】
ある態様においては、単一のエンティティとしてデータを暗号化および認証するための方法が提示され、この方法は、データを、それぞれが暗号ブロックサイズに従ったサイズを有する複数の平文ブロックに配列することと、少なくとも１つの暗号文ブロックが対応する平文ブロックと同じとなる少なくとも１つの平文位置を指定することと、臨時値と第１の鍵を使用して複数の雑音ブロックを決定することと、複数の中間暗号文ブロックを決定することであって、第１の中間暗号文ブロックが暗号化された臨時値に対応し、残りの中間暗号文が、複数の中間平文ブロックを第２の鍵で暗号化することにより反復して計算され、各中間平文ブロックが複数の平文ブロックの１つと先行する中間暗号文ブロックの組み合わせであることと、複数の中間暗号文ブロックと複数の雑音ブロックを使用することにより複数の暗号文ブロックを決定することであって、第１の暗号文ブロックが第１の中間暗号文ブロックと同じであり、残りの暗号文ブロックが対応する中間暗号文ブロックを対応する雑音ブロックと結合することにより導出されることと、複数の平文ブロックと最後の平文ブロックに対応する中間暗号文ブロックに基づいて入力チェックサム値を計算することと、複数の暗号文ブロックと雑音ブロックに基づいて出力チェックサム値を計算することと、入力チェックサム値を第２の鍵で暗号化し、暗号化された入力チェックサム値を出力チェックサム値と結合することにより認証タグを計算することと、平文位置により指定される複数の暗号文ブロックのそれぞれを対応する平文ブロックで置換することと、認証タグを添付することとを含む。
【００１０】
別の態様においては、認証タグを伴なう複数のデータブロックを復号し、検証するための方法が提示されており、平文位置の集合が定義され、この方法は、複数の雑音ブロックを決定するために臨時値および第１の鍵を使用することと、複数の中間暗号文ブロックを決定するために、平文位置の集合の中の平文位置により指定されていない複数のデータブロックのそれぞれを対応する雑音ブロックと結合することと、平文位置の集合の中の平文位置により指定される複数のデータブロックのそれぞれを、複数の平文ブロックの中の平文ブロックとして指定することと、平文位置の集合の中の平文位置ごとに、中間平文ブロックを形成するために対応する平文ブロックを前の中間暗号文ブロックと結合し、平文位置に対応する中間平文ブロックを形成するために中間平文ブロックを暗号化することと、平文位置の集合内にない位置ごとに、関連する中間平文ブロックを形成するために対応する中間暗号文ブロックを復号し、平文位置の集合の中にない位置ごとに平文ブロックを形成するために、関連する中間平文ブロックを前の中間暗号文ブロックと結合することと、複数の二次暗号文ブロックを決定することであって、複数の二次暗号文ブロックのそれぞれが、平文位置の集合の中の平文位置に対応し、対応する中間暗号文ブロックを対応する雑音ブロックと結合することにより形成されることと、最後の中間暗号文ブロックと、平文位置の集合の中の平文位置によって指定されていない複数のデータブロックを結合することにより入力チェックサム値を計算することと、雑音ブロックと複数の二次暗号文ブロックを結合することによって出力チェックサム値を計算することと、認証タグを検証することとを含む。
【００１１】
別の態様においては、データ伝送の第１の部分は平文として送信され、データ伝送の第２の部分は暗号文として送信され、データ伝送のすべてが認証される安全なデータ伝送のための方法が提示され、この方法は、平文位置の集合を生成することと、データ伝送の第１の部分とデータ伝送の第２の部分を暗号文に暗号化することであって、データ伝送の第１の部分が平文位置の集合により指定され、データ伝送の第２の部分が平文位置の集合のどれか１つと関連付けられていないことと、平文位置の集合のどれか１つと関連付けられていないデータ伝送を使用して入力チェックサム値を生成することと、データ伝送の第１の部分の暗号文を使用して出力チェックサム値を生成することと、入力チェックサム値と出力チェックサム値を使用して認証タグを生成することと、平文、暗号文および認証タグを送信することであって、平文が平文位置の集合により指定されるデータ伝送の第１の部分であることとを含む。
【００１２】
別の態様においては、複数の受信された伝送ブロックを復号し、検証するための方法が提示され、この方法は、複数の受信された伝送ブロックのそれぞれが平文位置の集合からの平文位置により指定されているかどうかを判定することと、複数の受信された伝送ブロックを復号することであって、平文位置により指定されない場合には、中間暗号文ブロックの集合を生成することと、中間平文ブロックの集合を生成するために中間暗号文ブロックの集合を復号することと、平文ブロックの集合を生成することとを含み、平文位置により指定されている場合には、中間平文ブロックを形成するために平文位置により指定される複数の受信伝送ブロックのそれぞれを前の中間暗号文ブロックと結合することと、中間暗号文ブロックを取得するために中間平文ブロックを暗号化することとを含む該復号することと、複数の受信された伝送ブロックを検証することであって、平文位置により指定されない平文ブロックの集合を使用して入力チェックサム値を形成することと、二次暗号文ブロックの集合を使用して出力チェックサム値を形成し、二次暗号文ブロックが平文位置と関連付けられていない中間暗号文ブロックの集合から導出されることと、認証タグと比較するために入力チェックサム値と出力チェックサム値を使用することとを含む該検証することとを含む。
【００１３】
別の態様においては、データ伝送の第１の部分が平文として送信され、データ伝送の第２の部分が暗号文として送信され、データ伝送のすべてが認証される安全なデータ伝送のための装置が提示され、方法は、平文位置の集合を生成するための手段と、データ伝送の第１の部分とデータ伝送の第２の部分を暗号文に暗号化するための手段であって、データ伝送の第１の部分が平文位置の集合により指定され、データ伝送の第２の部分が平文位置の集合の任意の１つの関連付けられていない手段と、平文の位置の集合のどれか１つの関連付けられていないデータ伝送を使用して入力チェックサム値を生成するための手段と、データ伝送の第１の部分の暗号文を使用して出力チェックサム値を生成するための手段と、入力チェックサム値と出力チェックサム値を使用して認証タグを生成するための手段と、平文、暗号文および認証タグを送信するための手段であって、平文が平文位置の集合により指定されるデータ伝送の第１の部分である手段とを備える。
【００１４】
別の態様においては、複数の受信された伝送ブロックを復号し、検証するための装置が提示され、この装置は、複数の受信された伝送ブロックのそれぞれが平文位置の集合から平文位置により指定されるかどうかを判定するための手段と、複数の受信された伝送ブロックを復号するための手段であって、この復号することが、平文位置により指定されない場合には、中間暗号文ブロックの集合を生成することと、中間平文ブロックの集合を生成するために中間暗号文ブロックの集合を復号することと、平文ブロックの集合を生成することとを含み、平文位置により指定されている場合には、中間平文ブロックを形成するために前の中間暗号文ブロックと、平文位置により指定される複数の受信された伝送ブロックのそれぞれを結合することと、中間暗号文ブロックを得るために中間平文ブロックを暗号化することとを含む手段と、平文位置により指定されない平文ブロックの集合を使用して入力チェックサム値を形成することと、二次暗号文ブロックの集合を使用して出力チェックサム値を形成することと、二次暗号文ブロックが平文位置と関連付けられていない中間暗号文ブロックの集合から導出され、認証タグへの比較のために入力チェックサム値と出力チェックサム値を使用することとによって複数の受信された伝送ブロックを検証するための手段とを備える。
【発明を実施するための最良の形態】
【００１５】
暗号化は許可されていない者がデータを読み取ることをできなくする。オリジナルデータメッセージは、平文メッセージまたは平文と呼ばれる。暗号化されたメッセージは暗号文と呼ばれ、暗号化は、例えばブロック暗号、ハッシュ関数または他の暗号関数などの暗号文に平文を変換するための任意の手段を含む。復号は暗号文を平文に変換する、つまりオリジナルメッセージを再生するための任意の手段を含む。図１Ａは、暗号化のために設計された基本的な暗号法１０を描いている。平文メッセージ１１は暗号化方式１２により作動し、暗号文１３を形成する。次に暗号文１３は通信チャネル（図示せず）を通って送信され、別のサイト（図示せず）で復号方式１４を経て、平文１５を再生する。平文と暗号文は、デジタル形式で提示される音声データとビデオデータを含む任意のデータを参照できる。
【００１６】
暗号解析は暗号法のセキュリティを出し抜く技術である。暗号解析を実行するエンティティはこの技術では敵またはアタッカとして知られている。暗号化方式の暗号解析は、許可されていないメッセージを復号することに照準を合わせている。認証方式の暗号解析は誰か他者により送信されているとして検証できるメッセージの作文に照準を合わせている。
【００１７】
暗号法は秘密に基づいている。エンティティのグループは、このグループの外のエンティティが著しく大量の資源を費やさない限り秘密を手に入れることができない場合に秘密を共用する。この秘密はエンティティのグループ内のセキュリティ結合（ａｓｓｏｃｉａｔｉｏｎ）としての機能を果たすと言われている。
【００１８】
通常、秘密は、ビット単位で測定される鍵または鍵の集合を備える。鍵が長いほど、鍵は暗号的に（ｃｒｙｐｔｉｃａｌｌｙ）安全になる。対称暗号法はメッセージを暗号化するために、メッセージを復号するのと同じ秘密鍵を使用する。暗号化と復号の両方が同じ秘密鍵を活用する対称暗号化システム２０が、図１Ｂに描かれている。平文２１は、暗号化方式２２により作動する。秘密鍵２３は暗号化方式２２で使用され、暗号文２４を形成する。暗号文２４は通信チャネル（図示せず）上で、復号方式２５が同じ秘密鍵２３を使用して平文２６を形成する別のサイトに送信される。
【００１９】
対照的に、非対称暗号法は、メッセージを暗号化するために第１の鍵を使用し、それを復号するために別の鍵を使用する。図１Ｃは、公開鍵が暗号化のために提供され、秘密鍵が復号のために提供される、公開鍵暗号法３０として知られている非対称暗号化システムを描いている。公開鍵は公開され、その結果任意のパーティが任意のメッセージを暗号化するために公開鍵を使用できる。しかしながら、公開鍵で暗号化されたメッセージを復号するために内密に保持される未公開の鍵だけが使用されてよい。平文３１は、指定されたパーティと関連付けられ、出版物から得られる公開鍵３３を使用する暗号化方式３２に入力される。結果として生じる暗号文３４は通信チャネル（図示せず）上で指定されたパーティに送信される。指定されたパーティは、暗号文３４を平文３７に変換するために復号方式３５で秘密鍵３６を使用する。
【００２０】
一般的には、対称暗号化は非対称暗号化よりはるかに速い。しかしながら、送信者から受取人への秘密鍵の転送は、敵による傍受の可能性のために問題がある。１つの解決策は、許可されたパーティとだけ鍵を共用する、鍵を保持するための信頼を受けた第三者を使用することである。ここに説明されている実施形態はこの問題を取り扱わず、送信者と受信者が秘密鍵を共用すると仮定する。
【００２１】
前記暗号法により生成される暗号文の完全性は、通常、ある程度の認証データを送信済みの暗号文に添付することにより提供される。認証データは通常メッセージコンテンツおよび秘密完全性鍵の関数として計算される。
【００２２】
対称認証システムにおいて、認証データはメッセージ署名コード（ＭＡＣ）として知られている。ＭＡＣはメッセージコンテンツと秘密完全性鍵の両方の関数として計算され、送信者と指定されたターゲットの両方が秘密完全性鍵を共用する。送信者はメッセージを送信し、ＭＡＣを添付する。メッセージは平文または暗号文のどちらかの場合がある。受信者はメッセージからＭＡＣを計算し直し、計算し直されたＭＡＣが送信されたＭＡＣと一致する場合にだけメッセージの完全性を受け入れる。理論的には、メッセージの送信者だけがそのメッセージにとって有効な署名を作成し、それにより受信者にとってのメッセージを認証できるであろう。
【００２３】
署名と検証の両方が同じ秘密鍵を活用する対称認証システム４０が、図２Ａに描かれている。メッセージ４１は、鍵４３を使用して、認証データ４４を形成する認証方式４２によって作動する。認証データ４４とメッセージ４１は次に通信チャネル（図示せず）を通して別のパーティ（図示せず）に送信される。メッセージ４１は、認証データ４６を決定するために同じ鍵４３を使用して検証方式４５で作動する。受信側パーティによって生成される認証データ４６は、通信チャネル上で受信される認証データ４４に比較される。
【００２４】
非対称認証システムでは、認証データはデジタル署名として知られている。デジタル署名は、送信者のメッセージコンテンツと秘密完全性鍵の関数として計算される。送信者は、次に送信者の公開鍵を使用してデジタル署名に対する検証を実行する受信側パーティにデジタル署名を送信する。署名が秘密鍵を活用し、検証が対応する公開鍵を活用する非対称認証システム５０が図１Ｅに描かれている。
【００２５】
いくつかの方式では、ＭＡＣまたはデジタル署名は、秘密メッセージの一意の数学的な記述を含む「メッセージ要約」から計算される。メッセージ要約の長さはオリジナルのメッセージより短く、その結果メッセージ要約に関する計算はさらに容易に実行される。ＭＡＣまたはデジタル署名の秘密メッセージまたはメッセージ要約に対する依存は、秘密メッセージまたはメッセージ要約が一定のままとならないために、認証データが一定のままとならないことを確実にする。認証データが複数のメッセージ全体で一定のままとなる場合には、敵は認証データを容易に不当に私物化することができるであろう。
【００２６】
メッセージ要約は多くの場合、暗号ハッシュ関数を使用して計算される。暗号ハッシュ関数は、入力の長さに関係なく任意の入力から（固定数のビットを備える）値を計算する。暗号ハッシュ関数の１つの特性は、出力値を考慮すると、その出力を結果的に生じさせる入力を求めることが計算上困難であるという点である。暗号ハッシュ関数の例は、連邦情報処理規格出版物（ＦＩＰＳ  ＰＵＢＳ）により推奨され、米国標準技術局（ＮＩＳＴ）により発行されている「安全ハッシュ規格」ＦＩＰＳ  ＰＵＢ  １８０−１に記載されるようなＳＨＡ−１である。
【００２７】
ブロック暗号は方式に対する入力がつねにビット単位の固定された長さである対称暗号化方式である。この長さはブロック暗号のブロックサイズとして知られている。ブロック暗号の例は、ＦＩＰＳ  ＰＵＢＳにより推奨され、ＮＩＳＴにより発行される「データ暗号化規格」ＦＩＰＳ  ＰＵＢ  ４６−１に説明されるようなデータ暗号化規格（ＤＥＳ）である。ＤＥＳは６４ビットというブロックサイズを有する。ブロック暗号の別の例は、ＦＩＰＳ  ＰＵＢＳにより推奨され、ＮＩＳＴにより発行される「高度暗号化規格」、ＦＩＰＳ  ＰＵＢ  １９７に説明されるような高度暗号化規格（ＡＥＳ）である。ＡＥＳは１２８ビットというブロックサイズを有する。
【００２８】
ブロック暗号の鍵長さはビット単位の鍵の長さである。しかしながら、鍵のエントロピーは鍵の考えられる値の数の対数（基数２）である。エントロピーはビット単位でも作成される。例えば、ＤＥＳは６４ビットの鍵を有し、これらのビットの内の８つが鍵伝送でのエラーを検出するためのチェックサムとして使用される。その結果、ＤＥＳの鍵エントロピーは（６４−８）＝５６ビットである。
【００２９】
ブロック暗号の入力と対応する出力の複数の組を考慮すると、ブロック暗号鍵は、どの入力が正しい出力を生じさせるのかを決定するためにすべての考えられる鍵値を試験する敵により導出することができる。この種の攻撃が包括的鍵検索として知られている。この攻撃の計算の複雑性は攻撃に必要とされる暗号化演算の数である。したがって、ｋビットの鍵を抽出するための攻撃は、包括的な鍵検索におけるブロック暗号鍵を抽出するために約２ｋの暗号化演算を必要とする。
【００３０】
ブロック暗号は、他の暗号エンティティを構築するために有効である。ブロック暗号が使用される方法が運転モードと呼ばれる。ＤＥＳのための４つの運転モードは標準化され、ＦＩＰＳ  ＰＵＢＳにより推奨され、ＮＩＳＴにより発行される「ＤＥＳ運転モード」ＦＩＰＳ  ＰＵＢ８１に説明されている。これらの４つのモードとは、電子コードブック（ＥＢＣ）、暗号ブロック連鎖（ＣＢＣ）、出力フィードバック（ＯＦＢ）および暗号フィードバック（ＣＦＢ）である。例示的な目的のため、平文ブロックＰ１．．．およびＰｍという系列を暗号化するために、ＥＣＢとＣＢＣだけがここに説明されている。
【００３１】
ＥＣＢモードでは、ブロック暗号は以下の関係に従って暗号文のブロックに平文の各ブロックを暗号化するために使用され、
Ｃｉ＝Ｅｋ（Ｐｉ）
ここでＥｋ（Ｐｉ）は鍵Ｋを使用するブロックＰｉの暗号化を示す。ここで使用されるとき、Ｄｋ（Ｐｉ）は鍵Ｋを使用するブロックＰｉの復号を示す。
【００３２】
ＣＢＣモードでは、第１の平文ブロックは、秘密初期値（ＩＶ）で排他的論理和が取られ、次に暗号化される結果を形成する。このプロセスの数学的な記述は以下の関係に従って書かれる。
【数１】
2006502451.tif 000003
【００３３】
その後、各平文ブロックは以下のように暗号化の前に前の暗号文で排他的論理和が取られる。
【数２】
2006502451.tif 000004
【００３４】
効率的な暗号化および認証は対称暗号法では問題がある場合がある。最近まで、この要件を満たす唯一の解決策は素朴な手法を使用することだった。つまり、暗号化および認証を２つの別々の関数として提供するのである。この２つの関数はほぼ等しい量の計算を必要とするため、両方の関数を使用すると一方または他方だけを使用する場合の２倍費用がかかる。
【００３５】
論文「ほぼ自由なメッセージ完全性の暗号化モード（Ｅｎｃｙｒｐｔｉｏｎ  Ｍｏｄｅｓ  ｗｉｔｈ  Ａｌｍｏｓｔ  Ｆｒｅｅ  Ｍｅｓｓａｇｅ  Ｉｎｔｅｇｒｉｔｙ）」の中で、Ｊｕｔｌａは、暗号化または認証どちらかだけよりわずかに多くの計算を必要とするにすぎない暗号化と認証を提供する２つの方法を提案した。これらの方法は一般的な形式をとっており、核となる暗号としてブロック暗号を用いる。暗号の社会ではこのような方法は「運転モード」とも呼ばれる。完全性認識並行処理可能（Ｐａｒａｌｌｅｌｉｚａｂｌｅ）モード（ＩＡＰＭ）モードとして知られるＪｕｔｌａの運転モードの１つは本書では説明されない。完全性認識暗号ブロック連鎖（ＩＡＣＢＣ）モードとして知られるＪｕｔｌａの運転モードの他方は、図３に示されている。ＩＡＣＢＣは２つの鍵、Ｋ０とＫ１を使用する。送信者が（ｍ−１）個のメッセージブロックＰ１からＰｍ−１までから構成されるメッセージを暗号化、認証することを希望すると仮定する。送信者は、（ｍ＋１）の対数（基数２）より大きな次の整数に等しいｔを設定する。送信者は暗号文ブロックＣ０を形成するために暗号化される（臨時値または初期値として知られる）無作為な値ｒを選ぶ。ｒ＋１からｒ＋ｔまでの値は値Ｗ０からＷｔ−１を形成するために暗号化され、暗号化は鍵Ｋ０を使用する。次に、値Ｗ０からＷｔ−１が、ペアワイズに独立した値Ｓ０からＳｍを導出するために利用される。これらの値はここでは雑音ブロックと呼ばれる。値Ｓ０，．．．Ｓｍは、Ｓ０，．．．Ｓｍが、ｉがｊに等しくない場合にあらゆるペアＳ１とＳｊごとにおよびｎビットの定数ｃ１とｃ２のペアごとに確率Ｓ１＝ｃ１およびＳｊ＝ｃ２が２−２ｎという特性を備える一意に分散されるｎ−ビットの乱数である場合にはペアワイズに独立している。Ｓ０からＳｍまでの実際の計算はＩＡＣＢＣを理解することとは関係がなく、ここでは説明されない。暗号文ブロックＣ１からＣｍ−１の値は関係性に従って１≦ｉ≦ｍ−１について反復して導出され、
【数３】
2006502451.tif 000005
【００３６】
ここで鍵Ｋ１はそれぞれの暗号文ブロックに使用され、初期値Ｎ０はＣ０に設定される。値Ｍ１は中間平文ブロックと呼ばれ、値Ｎ１は中間暗号文ブロックと呼ばれる。送信者は次に以下によって定められるチェックサム値Ｐｍを計算する。
【数４】
2006502451.tif 000006
【００３７】
ＭＡＣタグＣｍは、
【数５】
2006502451.tif 000007
【００３８】
を鍵Ｋ１で暗号化し、暗号化された結果をＳ０で排他的論理和を取ることによってＰｍから計算される。数学的には、計算は以下のように表現できる。
【数６】
2006502451.tif 000008
【００３９】
送信者はＣ０．．．Ｃｍを送信する。
【００４０】
受信者がＣ’０．．．Ｃ’ｍを受信すると仮定する。受信者は、ｒ’を形成するためにＣ’０を最初に復号することにより復号プロセスを開始し、復号は鍵Ｋ１を使用する。値ｒ’＋１からｒ’＋ｔは値Ｗ’０からＷ’ｔ−１を形成するために暗号化され、暗号化は鍵Ｋ０を使用する。次に受信者はＳ’０からＳ’ｍまでの値を計算する。暗号文ブロックＰ１からＰｍ−１までの値は関係に従って１≦ｉ≦ｍ−１について反復して導出され、
【数７】
2006502451.tif 000009
【００４１】
ここで鍵Ｋ１は各平文ブロックのために使用され、初期値Ｎ’０はＣ’０に等しく設定される。受信者は、次に以下によって定義されるチェックサム値Ｐｍ’を計算する。
【数８】
2006502451.tif 000010
【００４２】
値Ｘは、鍵Ｋ１を使用してＮｍ−１でＰｍの排他的論理和を暗号化し、次にＳ’０で暗号化した結果の排他的論理和を取ることによって計算される。数学的には、プロセスは以下のとおりに説明できる。
【数９】
2006502451.tif 000011
【００４３】
ＸとＣ’ｍが等しい場合には、受信者は暗号化されたメッセージの完全性を確信できる。
【００４４】
論文「高速暗号化および認証：ＸＣＢＣ暗号化およびＸＥＢＣ認証モード（Ｆａｓｔ  Ｅｎｃｒｙｐｔｉｏｎ  ａｎｄ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ：ＸＣＢＣ  Ｅｎｃｒｙｐｔｉｏｎ  ａｎｄ  ＸＥＢＣ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｍｏｄｅｓ）」の中で、ＧｌｉｇｏｒおよびＤｏｎｅｓｃｕは、類似する量の計算を使用して暗号化および認証を提供する、拡張暗号文ブロック連鎖モード（ｅＸｔｅｎｄｅｄ  Ｃｉｐｈｅｒｔｅｘｔ  Ｂｌｏｃｋ  Ｃｈａｉｎｉｎｇ  ｍｏｄｅ）（ＸＣＢＣモード）と呼ばれる類似するモードを提案した。ＣＢＣとＩＡＣＢＣの間の主要な相違点は、形成が本書に関連していない雑音ブロックＳ０からＳｍの形成にある。
【００４５】
ＩＡＣＢＣ運転モードおよびＸＣＢＣ運転モードは特定の望ましくない特性を有する。第１の望ましくない特性とは、これらのモードがすべてのデータが暗号化された状態で送信されることを必要とするという点である。ＩＰＳｅｃなどのインターネットプロトコルでは、すべてのデータが暗号化されているメッセージを送信することは望ましくない。特に、アドレス指定情報を含むヘッダは平文で（ｉｎ  ｔｈｅ  ｃｌｅａｒ）送信されなければならない。ここに説明されている実施形態は、少量の処理だけを追加する一方で、データのブロックを平文として送信できるようにするＩＡＣＢＣモードとＸＣＢＣモード（以後ＣＢＣ−ＩＯモードと呼ばれる）の変形を提案する。
【００４６】
データシステムまたは通信システムにおけるハードウェアまたはソフトウェアのどちらかがＣＢＣ−ＩＯモードのさまざまな実施形態を実行するように構成できるであろうことに注意する必要がある。ハードウェアは、ここに説明されている暗号化、認証、復号および検証のプロセスを実行するために例えばメモリなどのコンピュータ読み取り可能媒体に記憶される一連の命令を実行する要素を処理することを含んでよいが、これに限定されない。さらに、ビット単位の論理的な排他的論理和演算子を使用して多様な結合ステップが説明される。実施形態の他のインプリメンテーションは、モジュール式整数加算演算を使用することにより実行することが可能であり、２つの入力は整数のバイナリ表現として取り扱われ、中間値は整数の合計としてバイナリ表現として形成され、出力は暗号ブロックサイズに中間値を切り捨てることによって形成される。他のグループ演算子も適切な変型とともに使用できるが、例示を容易にするためにＸＯＲ演算子を使用する実施形態だけがここで説明される。
【００４７】
ＣＢＣ−ＩＯモードの実施形態は図４Ａに説明されている。ＣＢＣ−ＩＯ運転モードは２つの鍵Ｋ０とＫ１を使用する。送信者が（ｍ−１）個のメッセージブロックＰ１からＰｍ−１までから構成されるメッセージを暗号化し、認証することを希望すると仮定する。
【００４８】
ステップ４００では、送信者と受信者は暗号化されていない形式で送信される平文ブロックの集合に関して合意する。Ｕに暗号化されていない形式で送信される平文ブロックの指数の集合を示させ、Ｕの要素は平文位置と呼ばれる。
【００４９】
ステップ４０２で、送信者は臨時値ｒを選び、雑音ブロックＳ０からＳｍを計算し、中間暗号文Ｎ０からＮｍ−１を取得し、暗号文Ｃ０からＣｍ−１を取得するためにＩＡＣＢＣモードまたはＸＣＢＣモードに従う。すなわち、Ｎ０＝Ｃ０＝ＥＫ１（ｒ）であり、中間暗号文Ｎ０からＮｍ−１まで、および暗号文ブロックＣ１からＣｍ−１までの値は、以下の関係に従って１≦ｉ≦ｍ−１について反復して導出される。
【数１０】
2006502451.tif 000012
【００５０】
鍵Ｋ１が各暗号文ブロックに使用されることに注意する。代替実施形態では、臨時値ｒは、派生値よりむしろ送信者と受信者の両方によって記憶されている所定の値である場合がある。
【００５１】
ステップ４１０で、送信者は、以下により定義されるチェックサム値ＣＨＫ＿ＩＮとＣＨＫ＿ＯＵＴを計算する。
【数１１】
2006502451.tif 000013
【００５２】
ステップ４２０では、送信者は鍵Ｋ１でＣＨＫ＿ＩＮを暗号化し、ＣＨＫ＿ＯＵＴで結果の排他的論理和を取ることによりＭＡＣタグＣｍを計算する。このプロセスは数学的には以下のとおりに説明される。
【数１２】
2006502451.tif 000014
【００５３】
ステップ４３０では、送信者はこれらの値Ｃｉをリセットし、そこではＣｉ＝Ｐｉとなるようにｉ∈Ｕ（ｉはＵに含まれる）（すなわち、暗号化されないで送信されるそれらの平文）である。ステップ４４０では、送信者はＣ０．．．Ｃｍを送信する。
【００５４】
モードは、認証タグが最後の暗号化の入力と出力と情報を結合することにより計算されるためにＣＢＣ−ＩＯと呼ばれる。ＣＢＣ−ＩＯモードを使用して認証タグを作成するステップは、ＣＨＫ＿ＩＮ値とＣＨＫ＿ＯＵＴ値の生成によるＩＡＣＢＣとは異なる。この相違のため、受信者での復号プロセスと検証プロセスは別に構成されなければならない。
【００５５】
図４Ｂは、前記ＣＢＣ−ＩＯモードを実行するように構成されるハードウェアのブロック図である。図４Ｂが、プロセッサとメモリが前記ＣＢＣ−ＩＯモードを実行するための一連の命令を実行するように構成される、ソフトウェアインプリメンテーションの代替策となるインプリメンテーションを描くことに注意する必要がある。メモリ要素４５０は平文ブロックＰｉを記憶し、その内のいくつかは暗号化されなければならず、そのすべてが認証されなければならない。暗号化要素４６０Ａ、４６０Ｂ、４６０Ｃ、および４６０Ｄは、暗号関数を入力に対して実行するように構成される。例示だけを目的とするために、４つの暗号化要素が平文ブロックを暗号化するために図４Ｂに示されているが、当業者は、実施形態の範囲に影響を及ぼすことなく、さらに多くまたはさらに少ない暗号化要素を実現できることを知っている。
【００５６】
この実施形態では、暗号化要素４６０Ａ、４６０Ｂ、４６０Ｃおよび４６０Ｄに対する入力は、第１の暗号化要素４６０Ａでの臨時値ｒ、およびそれぞれの残りの暗号化要素では個々に中間平文ブロックＭ１からＭｍ−１までである。中間平文ブロックＭ１からＭｍ−１は、結合要素４６２Ａ、４６２Ｂおよび４６２Ｃの出力である。ある態様では、結合要素４６２Ａ、４６２Ｂ、および４６２ＣはＸＯＲゲートである。暗号化要素４６０Ａ、４６０Ｂ、４６０Ｃおよび４６０Ｄの出力は中間暗号文ブロックＮ０からＮｍ−１である。中間暗号文ブロックＮ１からＮｍ−１は、要素４６４Ａ、４６４Ｂおよび４６４Ｃを結合することにより対応する雑音ブロックＳ１からＳｍ−１と結合される。結合要素４６４Ａ、４６４Ｂおよび４６４Ｃの出力は暗号文ブロックＣ１からＣｍ−１である。
【００５７】
処理ブロック（またはチェックサム生成プログラム）４７０は、暗号化された形式で送信されなければならない平文ブロックおよび最後の中間暗号文ブロックＮｍ−１を使用することによりチェックサム値ＣＨＫ＿ＩＮを求めるように構成される。処理ブロック（またはチェックサム生成プログラム）４７５は、第１の雑音ブロックＳ０および平文で送信されなければならない平文ブロックに対応する暗号文ブロックを使用することによりチェックサム値ＣＨＫ＿ＯＵＴを求めるように構成される。ＣＨＫ＿ＩＮおよびＣＨＫ＿ＯＵＴを求めるための式は上述されている。次にＣＨＫ＿ＩＮが暗号化要素４８０に入力される。暗号化要素４８０の出力は、コンバイナ要素４９０を使用してＣＨＫ−ＯＵＴと結合される。コンバイナ要素４９０の出力は、認証タグとしても使用される最後の暗号文ブロックＣｍである。
【００５８】
暗号文ブロックＣ１からＣｍ−１、認証タグＣｍ、および平文ブロックＰｉは、送信されなければならないブロックが暗号文であるのか、それとも平文であるのかを判断する選択要素４９５に入力される。言い換えると、ｉ∈ＵであるそれらのＰｉが、ｉ∈／Ｕ（ｉはＵに含まれない）であるそれらのＣｉとともに送信される。
【００５９】
図５は、ＣＢＣ−ＩＯモードにより暗号化、認証されたメッセージの復号および検証のブロック図である。ステップ５００では、受信者はブロックＣ’０．．．Ｃ’ｍを受け取る。ｉ∈Ｕの場合、Ｃ’１が暗号化されないで送信されたことに注意する。ステップ５１０では、受信者は、ｒ’を得るためにＣ’０を復号するために鍵Ｋ１を使用する。値ｒ’と鍵Ｋ０は、雑音ブロックＳ’０からＳ’ｍの値を導出するために使用される。
【００６０】
ステップ５２０では、１≦ｉ≦ｍの場合ｉの反復手順がｉ∈Ｕであるかどうかに関する決定で始まる。ｉ∈／Ｕの場合は、プログラムフローはステップ５３０に進む。ｉ∈Ｕの場合、プログラムフローはステップ５４０に進む。ステップ５３０では、受信者はｉ∈／Ｕについて中間暗号文Ｎ’ｉを決定する。ｉ∈／Ｕの場合中間暗号文Ｎ’ｉはＳ’ｉでＣ’ｉの排他的論理和を取ることによって求められ、数学的に以下のように記述される。
【数１３】
2006502451.tif 000015
【００６１】
ステップ５３２では、受信者は、ｉ∈／Ｕの場合以下として中間暗号文Ｎｉを復号する。
【数１４】
2006502451.tif 000016
【００６２】
プログラムフローはステップ５５０に進む。
【００６３】
ｉ∈Ｕの場合、ステップ５４０で、受信者はｉ∈Ｕの場合Ｐ’ｉ＝Ｃ’ｉであると判断する。
【００６４】
値ｉ∈Ｕを通る系列で進行するステップ５４２では、受信者がＰ’ｉとＮ’ｉ−１を結合し、以下の関係に従ってＭ’ｉを得る。
【数１５】
2006502451.tif 000017
【００６５】
プログラムフローはステップ５５０に進む。ステップ５５０で、指数ｉは増分され、ｉ＞ｍかどうかに関する決定が下される。条件ｉ＞ｍが真ではない場合には、プログラムフローはステップ５２０に戻る。条件ｉ＞ｍが真である場合には、プログラムフローは、検証プロセスの開始であるステップ５６０に進む。
【００６６】
平文位置について中間暗号文ブロックおよび中間平文ブロックを決定するための前記ステップが実施形態の範囲に影響を及ぼすことなく交換できるように順序付けることができることに注意する必要がある。また、前記ステップが、平文位置よりむしろ暗号文位置の集合を収容するために容易に改変できる、つまりステップは平文で送信されたブロックに関してよりむしろ、暗号化されたとして指定されるブロックに関して説明できることにも注意する必要がある。また、前記ステップ内で計算される値が反復手順での追加の使用のために記憶されることも注意する必要がある。
【００６７】
受信者はここですべての暗号文を復号したが、受信者はここで完全性を検証することを必要としている。完全性を検証するために、ステップ５６０では、受信者は最初に以下の関係に従ってｉ∈Ｕの場合二次暗号文Ｃ＊ｉを形成する。
【数１６】
2006502451.tif 000018
【００６８】
ステップ５７０では、受信者は、以下により定義されるチェックサム値ＣＨＫ＿ＩＮ’を計算する。
【数１７】
2006502451.tif 000019
【００６９】
ステップ５８０では、受信者は、以下の関係により定義されるチェックサム値ＣＨＫ＿ＯＵＴ’を計算する。
【数１８】
2006502451.tif 000020
【００７０】
ステップ５９０では、値Ｘは、鍵Ｋ１を使用してＣＨＫ＿ＩＮ’を暗号化し、ＣＨＫ＿ＯＵＴ’で結果の排他的論理和を取ることによって計算される。このプロセスは数学的には以下のように記述される。
【数１９】
2006502451.tif 000021
【００７１】
受信者は、ＸとＣ’ｍを比較し、それらが等しいかどうか判断する。それらが等しい場合には、受信者はメッセージの完全性を確信できる。メッセージの完全性が検証されると、メッセージは、以下のとおりである。
【００７２】
Ｐ＝Ｐ１，．．．Ｐｍ−１
代替実施形態では、受信者は比較のために代替値を使用する。ある実施形態では、認証タグはＣＨＫ＿ＯＵＴと結合され、試験暗号化入力チェックサム値を形成する。入力チェックサム値は暗号化されてから、試験暗号化入力チェックサム値に比較される。認証タグは、試験暗号化入力チェックサム値と暗号化入力チェックサム値が同じである場合には検証される。別の実施形態では、認証タグは出力チェックサム値と結合され、試験暗号化入力チェックサム値を形成する。試験暗号化入力チェックサムは、試験入力チェックサム値を得るために復号される。そして、試験入力チェックサム値は、次に入力チェックサム値と比較される。試験入力チェックサム値および入力チェックサム値が同じである場合には、認証タグが検証される。
【００７３】
別の代替実施形態では、検証ステップ５６０から５９０は、５２０から５５０の復号ステップに並行して実行できる。この並行処理が、受信者が送信者からの暗号化され、認証された伝送を処理する速度を加速する。
【００７４】
図６Ａは、前記ＣＢＣ−ＩＯモードを使用して暗号化されたメッセージの復号を実行するように構成されるハードウェアのブロック図である。図６Ｂ、図６Ｃおよび図６Ｄは、前記ＣＢＣ−ＩＯモードを使用して認証されたメッセージの検証を実行するように構成されるハードウェアのブロック図である。図６Ａでは、受信されたブロックＣ’０，Ｃ’１，．．．およびＣ’ｍがメモリ６００に記憶される。復号要素６１０Ａ、６１０Ｂ、６１０Ｃ、６１０Ｄおよび６１０Ｅは、鍵Ｋ１を使用して復号関数を実行するように構成され、それは鍵交渉プロセスの間に送信者と受取人の間で合意され、その詳細はここに説明されていない。第１の復号要素６１０Ａに対する入力は、送信者からのメッセージの第１のブロックであるブロックＣ’０である。第１の復号要素６１０Ａの出力は、ここに図示されていないハードウェア構成を使用することによって決定される雑音ブロックＳ’０，Ｓ’１，．．．，Ｓ’ｍ−１を求めるために使用されるｒ’である。
【００７５】
他の復号要素６１０Ｂ、６１０Ｃ、６１０Ｄおよび６１０Ｅに対する入力は、それぞれの復号要素で中間暗号文ブロックＮ’０からＮ’ｍを個々に生成する。中間暗号文ブロックＮ’１からＮ’ｍは、すべてｉ∈／Ｕの場合に受信された暗号文ブロックＣ’ｉと対応する雑音ブロックＳ’ｉを結合することにより形成され、上記結合することは、例えばＸＯＲゲートまたはモジュール式整数加算加算機などの結合要素６２０Ａ、６２０Ｂ、６２０Ｃおよび６２０Ｄを使用して実行される。
【００７６】
復号要素６１０Ａ、６１０Ｂ、６１０Ｃ、６１０Ｄおよび６１０Ｅの出力は、結合要素６２２Ａ、６２２Ｂ、６２２Ｃおよび６２２Ｄを使用して関連付けられた中間暗号文ブロックＮ’ｉと個々に結合される。結合要素６２２Ａ、６２２Ｂ、６２２Ｃおよび６２２Ｄの出力は、ｉ∈／Ｕである平文ブロックＰ’ｉである。
【００７７】
ｉ∈Ｕである場合に中間暗号文ブロックＮ’ｉの生成の場合、暗号化要素６３０Ａ、６３０Ｂおよび６３０Ｃは前の中間暗号文ブロックＮ’ｉ−１を中間暗号文ブロックＮ’ｉに暗号化するために鍵Ｋ１を使用する。結合要素６２４Ａ、６２４Ｂ、および６２４Ｃは、前の中間暗号文ブロックＮ’ｉ−１を平文ブロックＰ’ｉに結合し、暗号化要素６３０Ａ、６３０Ｂ、６３０Ｃおよび６３０Ｄにより暗号化される中間平文ブロックＭ’ｉを形成する。ｉ∈Ｕである平文ブロックＰ’ｉは、ｉ∈／ＵであるＰ’ｉの決定の後に、ｉ∈ＵであるＰ’ｉ＝Ｃ’ｉを設定することで導出されるにすぎないことに注意する必要がある。ｉ∈Ｕである中間暗号文ブロックＮｉの生成は、ｉ∈／Ｕである平文ブロックＰ’ｉの反復決定を可能にし、検証目的のために使用される二次暗号文ブロックＣ＊ｉを生成するために含まれる。この実施形態では、スイッチ６４０Ａ、６４０Ｂ、６４０Ｃおよび６４０Ｄは、平文位置が現在位置に先行したのか、それとも暗号文位置が現在位置に先行したのかに従って適切な中間暗号文ブロックの選択を容易にする制御線（図示せず）で実現される。
【００７８】
入力チェックサムＣＨＫ＿ＩＮは、中間暗号文ブロックＮ’ｍをｉ∈／Ｕであるすべての平文ブロックＰ’ｉの組み合わせと結合する組み合わせ要素（図示せず）の出力として求めることができる。出力チェックサムＣＨＫ＿ＯＵＴは、第１の雑音ブロックＳ’０を、それぞれが対応する中間暗号文ブロックＮ’ｉと対応する雑音ブロックＳ’ｉの組み合わせとして定義される、すべての二次暗号文Ｃ＊ｉの組み合わせと結合する組み合わせ要素（図示せず）の出力として求めることができる。二次暗号文ブロックＣ＊ｉは、図６Ａの結合要素６４５Ａ、６４５Ｂ、および６４５Ｃの出力である。
【００７９】
図６Ｂは、認証タグを検証するための１つの実施形態を示す。ＣＨＫ＿ＩＮ値は、暗号化要素６５０に入力される。暗号化要素６５０の出力は、結合要素６５５でＣＨＫ＿ＯＵＴ値と結合される。結合要素６５５の出力は、次に、比較要素６５７で認証タグである受信されたブロックＣ’ｍに比較される。図６Ｃは認証タグを検証するための別の実施形態である。ＣＨＫ＿ＩＮ値は暗号化要素６６０に入力される。認証タグＣ’ｍは結合要素６５５でＣＨＫ＿ＯＵＴと結合される。結合要素６６５の出力は、認証タグを検証するために比較要素６６７で暗号化要素６６０の出力に比較される。図６Ｄは認証タグを検証するための別の実施形態である。認証タグＣ’ｍは、結合要素６７０でＣＨＫ＿ＯＵＴ値と結合される。結合要素６７０の出力は復号要素６７５に入力される。復号要素６７５の出力は、次に比較要素６７７でＣＨＫ＿ＩＮ値に比較される。比較のどれかが一致を示す場合には、認証タグＣ’ｍが検証される。
【００８０】
アタッカは、受信者がメッセージを復号しようと試みるときに、受信者に平文位置の間違った集合を使用させる可能性がある。この種の攻撃を防止するために、送信者と受信者は特定の暗号文メッセージに適用する平文位置を検証するためになんらかの他の方法を使用しなければならない。この問題には単純な解決策がある。１つの解決策は、位置が平文位置である標準的な合意を有することである。別の解決策は、データブロック内に、平文位置の集合Ｕの表現を含み、その結果暗号文の検証が平文位置の集合の検証を含むことである。
【００８１】
チェックサム値の中での値Ｃｉの包含、ｉ∈／Ｕは、ＣＢＣ−ＩＯ運転モードとＪｕｔｌａおよびＧｌｉｇｏｒとＤｏｎｅｓｃｕにより提案される運転モードの間の相違点を形成する。ＣＢＣ−ＩＯが、暗号文と認証タグを計算するときにブロック暗号の暗号化を使用することに注意する。しかしながら、それは、ブロック暗号の暗号化演算のいくつかまたはすべての代わりに使用されるブロック暗号復号にとって等しく有効である。これは、復号およびメッセージ完全性の間にブロック暗号の復号からブロック暗号の暗号化への変化（逆の場合も同じ）を生じさせるであろう。
【００８２】
ＣＢＣ−ＩＯモードでは、暗号化機能および認証機能は、根本的なブロック暗号が安全であるならば安全である。この技術には、句「暗号化機能および認証機能が安全である」により意味されることについて正式な表現があるが、これらの正式な表現はこの発明の主題には関連性がないので、ここでは説明されない。当業者にとって、「暗号化機能および認証機能が安全である」の意味は周知であろう。
【００８３】
実施形態はここでＡＥＳブロック暗号に基づいたＣＢＣ−ＩＯモードに関して説明されてきたが、これらの実施形態は他のブロック暗号に基づいてＣＢＣ−ＩＯモードを構築するためにも適用できる。送信者がＰｉまたはＣｉどちらかを送信することを選び、認証が妥協して処理されないことに注意する。ここに説明される実施形態はパーティが、認証方式のセキュリティを傷つけることなく、暗号化されたブロックと暗号化されていないブロックの両方を送信できるようにする。Ｐｉが平文として送信される場合には、Ｐｉの暗号化されたバージョンは依然として秘密であり予測不可能で、安全な認証に使用することができる。
【００８４】
認証モード使用時、ＭＡＣを最終ブロックの一部としてだけ定義することが普通である。本実施形態は、最終ブロックの一部だけがＭＡＣとして送信されるように改変されてもよい。
【００８５】
当業者は、情報と信号が多岐に渡るさまざまな技術と技法のどれかを使用して表現されてよいことを理解するであろう。例えば、前記説明を通して参照されることがあるデータ、命令、コマンド、情報、信号、ビット、シンボルおよびチップは電圧、電流、電磁波、磁場または磁性粒子、光学場または光学粒子、あるいはその任意の組み合わせにより表現されてよい。
【００８６】
当業者は、ここに開示されている実施形態に関連して説明される多様な例示的な論理ブロック、モジュール、回路およびアルゴリズムステップが電子ハードウェア、コンピュータソフトウェア、または両方の組み合わせとして実現されてよいことをさらに理解するであろう。このハードウェアとソフトウェアの互換性を明確に示すために、多様な例示的な構成要素、ブロック、モジュール、回路およびステップが、一般的にはその機能性に関して前述されてきた。このような機能性がハードウェアとして実現されるのか、あるいはソフトウェアとして実現されるのかは特定の応用例および全体的なシステムに課される設計の制約に依存している。円熟した熟練工は、説明された機能性をそれぞれの特定の応用例のためにさまざまな点で実現してよいが、このようなインプリメンテーションの決定は、本発明の範囲からの逸脱を引き起こすと解釈されてはならない。
【００８７】
ここに開示されている実施形態に関連して説明される多様な論理ブロック、モジュールおよび回路は、汎用プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）または他のプログラマブル論理回路、離散ゲートまたはトランジスタ論理、離散ハードウェア構成要素、またはここに説明される機能を実行するように設計されるその任意の組み合わせを使用して実現、または実行されてよい。汎用プロセッサはマイクロプロセッサであってよいが、代替策では、プロセッサは従来のプロセッサ、コントローラ、マイクロコントローラまたは状態機械であってよい。プロセッサは、ＤＳＰとマイクロプロセッサ、複数のマイクロプロセッサ、ＤＳＰコアと連動する１台または複数台のマイクロプロセッサ、あるいは任意の他のこのような構成などのコンピュータ装置の組み合わせとして実現されてもよい。
【００８８】
ここに開示されている実施形態に関連して説明される方法またはアルゴリズムのステップは、ハードウェア内で、プロセッサにより実行されるソフトウェアモジュール内で、あるいは上記２つの組み合わせで直接的に具現化されてよい。ソフトウェアモジュールは、ＲＡＭメモリ、フラッシュメモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、ハードディスク、リムーバブルディスク、ＣＤ−ＲＯＭ、またはこの技術で既知のほかの形式の記憶媒体に常駐してよい。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるようにプロセッサに結合される。代替策では、記憶媒体はプロセッサに一体化してよい。プロセッサおよび記憶媒体はＡＳＩＣに常駐してよい。ＡＳＩＣはユーザ端末に常駐してよい。代替策では、プロセッサおよび記憶媒体はユーザ端末内の離散構成要素として常駐してよい。
【００８９】
開示されている実施形態の前の説明は、当業者が本発明を作成または使用できるようにするために提供される。これらの実施形態に対する多様な変型は当業者にとって容易に明らかとなり、ここに定められる一般的な原理は本発明の精神または範囲から逸脱することなく他の実施形態に適用されてよい。したがって、本発明はここに示される実施形態に限定されることを目的とせず、ここに開示される原理および新規特徴と一貫する最も幅広い範囲を与えられるべきである。
【図面の簡単な説明】
【００９０】
【図１Ａ】基本的な暗号法のブロック図である。
【図１Ｂ】対称暗号化システムのブロック図である。
【図１Ｃ】非対称暗号化システムのブロック図である。
【図２Ａ】対称認証システムのブロック図である。
【図２Ｂ】非対称認証システムのブロック図である。
【図３】完全性認識暗号ブロック連鎖モード（Ｉｎｔｅｇｒｉｔｙ  Ａｗａｒｅ  Ｃｉｐｈｅｒ−Ｂｌｏｃｋ  Ｃｈａｉｎｉｎｇ  Ｍｏｄｅ）のブロック図である。
【図４Ａ】ＣＢＣ−ＩＯモードのブロック図である。
【図４Ｂ】ＣＢＣ−ＩＯモードを実行するための装置のブロック図である。
【図５】ＣＢＣ−ＩＯモードにより暗号化され、認証されたメッセージの復号および検証のブロック図である。
【図６Ａ】ＣＢＣ−ＩＯモードにより暗号化され、認証されたメッセージの復号および検証を実行するための装置のブロック図である。
【図６Ｂ】ＣＢＣ−ＩＯモードにより暗号化され、認証されたメッセージを検証するためのさまざまな実施形態のブロック図である。
【図６Ｃ】ＣＢＣ−ＩＯモードにより暗号化され、認証されたメッセージを検証するためのさまざまな実施形態のブロック図である。
【図６Ｄ】ＣＢＣ−ＩＯモードにより暗号化され、認証されたメッセージを検証するためのさまざまな実施形態のブロック図である。
【図１Ａ】
2006502451.tif 000022
【図１Ｂ】
2006502451.tif 000023
【図１Ｃ】
2006502451.tif 000024
【図２Ａ】
2006502451.tif 000025
【図２Ｂ】
2006502451.tif 000026
【図３】
2006502451.tif 000027
【図４Ａ】
2006502451.tif 000028
【図４Ｂ】
2006502451.tif 000029
【図５】
2006502451.tif 000030
【図６Ａ】
2006502451.tif 000031
【図６Ｂ】
2006502451.tif 000032
【図６Ｃ】
2006502451.tif 000033
【図６Ｄ】
2006502451.tif 000034
【国際調査報告】
2006502451.tif 000035
2006502451.tif 000036