(57)【要約】対称鍵暗号化の方法は、メッセージ・テキスト内の文字の順序に応じて文字の写像が変わる、強化されたホモフォニック換字を引き起こす、変換の合成の使用を伴う。この方法を実行する際、まず、暗号鍵が生成される。次いで、多表式換字が実行され、これは、プレーンテキスト・データ要素と生成された鍵との排他的論理和演算（例えば、ブール論理排他的論理和演算／計算）を行うことを伴う。次に、格納フォーマットが、ビッグエンディアンからリトルエンディアンに、またはその逆に変更され、データが１つまたは複数の正方行列に格納される。最後に、強化されたホモフォニック換字が実行され、これは、要素ごとに、終域において要素が写像され得る部分集合は全終域自体であり、したがって所与の終域についての可能な限り最大の部分集合が提供されることを意味する。言い換えれば、定義域内の任意の所与の要素は、終域の任意の要素に写像され得る。
2009503580.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータ要素を暗号化する方法であって、
定義域からの各データ要素を複数の終域要素のうちの１つに写像する工程を含み、
前記データ要素のそれぞれが終域要素のいずれかに写像可能であることを特徴とする方法。
【請求項２】
データ要素が写像される前記終域要素が、前記定義域内のデータ要素の順序に応じて変わり、
前記データ要素を写像する前記工程が、前記データ要素の部分を、排他的な対において互いに交換する工程を含むことを特徴とする請求項１に記載の方法。
【請求項３】
各交換と共に変わる一次方程式を使用して交換すべき前記データ要素の部分を計算する工程をさらに含み、各データ要素が４ビットより大きい２進数であり、交換する各データ要素の部分が４ビットのニブルであり、そして前記４ビットが連続または非連続であり、さらに、
１つまたは複数の鍵を生成する工程と、
前記１つまたは複数の鍵に基づいて前記データ要素に対して多表式換字処理を行う工程とを含み、前記一次方程式が少なくとも一部分前記鍵の少なくとも１つに基づく、
ことを特徴とする請求項２に記載の方法。
【請求項４】
前記データ要素を少なくとも１つの正方行列に配列する工程と、
前記少なくとも１つの正方行列の対角線をはさんで交換する前記排他的な対を計算する工程とをさらに含むことを特徴とする請求項３に記載の方法。
【請求項５】
第１の組の暗号化されたデータを生成するために、少なくとも１つの鍵を使用して、前記データに対して多表式換字処理を行う工程と、
前記第１の組の暗号化されたデータの格納フォーマットを変更して、第２の組の暗号化されたデータを生成する工程と、
前記第２の組の暗号化されたデータに対してホモフォニック換字処理を行う工程とを含むデータを暗号化する方法。
【請求項６】
前記ホモフォニック換字処理を行う工程の前に、前記第２の組の暗号化されたデータを少なくとも１つの正方行列に格納する工程を含み、前記少なくとも１つの正方行列における各セルが前記第２の組の暗号化されたデータからのデータ要素を含む、ことを特徴とする請求項５に記載の方法。
【請求項７】
前記少なくとも１つの鍵を生成する工程と、
必要な鍵の深さを計算する工程と、
最初の鍵から１つまたは複数の中間鍵を計算する工程とを含み、中間鍵の数が前記必要な鍵の深さに対応し、さらに、
前記１つまたは複数の中間鍵と前記最初の鍵とを連結して、前記少なくとも１つの鍵を生成する工程を含むことを特徴とする請求項５に記載の方法。
【請求項８】
前記多表式換字処理を行う工程が、前記データと前記少なくとも１つの鍵との排他的論理和演算を行う工程を含むことを特徴とする請求項５に記載の方法。
【請求項９】
前記データが最初にビッグエンディアン・フォーマットまたはリトルエンディアン・フォーマットで格納され、
前記第１の組の暗号化されたデータの前記格納フォーマットを変更する工程が、前記初期データ格納フォーマットに基づいて、ビッグエンディアン・フォーマットからリトルエンディアン・フォーマットに、またはその逆に変更する工程を含むことを特徴とする請求項８に記載の方法。
【請求項１０】
前記ホモフォニック換字処理を行う前記工程の前に、前記第２の組の暗号化されたデータを少なくとも１つの正方行列に格納する工程を含み、前記少なくとも１つの正方行列における各セルが前記第２の組の暗号化されたデータからのデータ要素を含み、さらに、
前記ホモフォニック換字処理を行う前記工程が、前記データ要素の部分を、前記少なくとも１つの正方行列の対角線をはさんで、排他的な対において互いに交換する工程を含み、交換すべき前記データ要素の部分が各交換と共に変わる一次方程式を使用して計算されることを特徴とする請求項９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号化技術に関し、より詳細には、符号化データの生成または変換に関する。
【背景技術】
【０００２】
暗号化技術は、情報セキュリティを提供するために、ネットワークを介したデータの送信に広く使用されてきた。情報を暗号化するいくつかの異なる技術およびアルゴリズムが提案されており、これらの技術の多くは、現在、暗号化業界で広く使用されている。暗号化技術は、対称鍵暗号化または公開鍵暗号化のいずれかとして分類することができる。暗号化の特定の技術およびアルゴリズムを選択する主な基準は、技術、総合的な性能、および実装の容易さによって提供されるセキュリティのレベルである。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
対称鍵暗号化は、同じ暗号化鍵を使用して、当該のデータ・メッセージを暗号化し、解読することを伴う。一般に、復号鍵を暗号鍵から算出したり、その逆を行ったりすることができる。対称鍵暗号化のアルゴリズムは、通常、非常に迅速に電子的に実行することができる。しかし、暗号化鍵のコピーは、機密にしておく必要があり、そうでなければ、暗号化された送信の各端部で安全に維持される必要がある。最もよく知られている対称鍵データ暗号化技術の一部は、単一換字式暗号（ｓｉｍｐｌｅ  ｓｕｂｓｔｉｔｕｔｉｏｎ  ｃｉｐｈｅｒ）、ホモフォニック換字式暗号（ｈｏｍｏｐｈｏｎｉｃ  ｓｕｂｓｔｉｔｕｔｉｏｎ  ｃｉｐｈｅｒ）、多表式換字暗号（ｐｏｌｙａｌｐｈａｂｅｔｉｃ  ｓｕｂｓｔｉｔｕｔｉｏｎ  ｃｉｐｈｅｒ）、転置暗号（ｔｒａｎｓｐｏｓｉｔｉｏｎ  ｃｉｐｈｅｒ）、暗号の合成、およびストリーム暗号である。
【課題を解決するための手段】
【０００４】
本発明の一実施形態によれば、対称鍵データ暗号化の方法は、メッセージ・テキスト内の文字の順序に応じて文字の写像が変わる、強化されたホモフォニック換字を引き起こす、変換の合成の使用を伴う。この方法を実行する際、まず、暗号鍵が生成される。次いで、多表式換字がデータに実行され、これは、元のデータと生成された鍵との「排他的論理和演算」（例えば、ブール論理排他的論理和演算／計算）を行うことを伴う。次に、格納フォーマットがビッグエンディアンからリトルエンディアンに、またはその逆に変更される。最後に、データを１つまたは複数の正方行列に配置した後、強化されたホモフォニック換字が行われる。
【０００５】
既存のホモフォニック換字は、換字前定義域（ｐｒｅ−ｓｕｂｓｔｉｔｕｔｉｏｎ  ｄｏｍａｉｎ）内の各要素を、換字後終域（ｐｏｓｔ−ｓｕｂｓｔｉｔｕｔｉｏｎ  ｃｏ−ｄｏｍａｉｎ）内の互いに素な部分集合に写像する。本発明の強化されたホモフォニック換字は、終域において要素が写像され得る部分集合が全終域自体であるように、対合であり得る。したがって、定義域内の任意の所与の要素は、終域の任意の要素に写像され得る。さらに、定義域内の要素が写像される終域内の特定の要素は、データ・ブロック内の文字または他のデータ要素の順序および選択された鍵に応じて変わる。
【０００６】
本発明の一実施形態は、複数のデータ要素を暗号化するためのホモフォニック換字の方法として特徴付けることができ、各データ要素が換字前定義域から換字後終域内の複数の要素のうちの１つに写像され、データ要素のそれぞれが終域要素のいずれかに写像可能である。データ要素の終域要素への写像のために、各正方行列内の各セル内のデータ要素の一部が別のセル内のデータと交換される。具体的には、あるセルからの４ビット（ビットは必ずしも連続していない）の１ニブルが、別のセル内の１ニブルと、行列にわたって対角線状に交換される。
【０００７】
対角線の交換のための式に基づいて、セルの特定の対が選択される。暗号化鍵の値に基づいており、換字前定義域内のデータ要素の順序に応じて交換ごとに変わる一次方程式に従って、交換すべきビットの位置が計算される。
【０００８】
本発明の追加の実施形態によれば、データ暗号化方法は、１つまたは複数の暗号化鍵を使用してデータへの多表式換字処理を行い、次いでデータの格納フォーマットを（任意選択でビッグエンディアン・フォーマットからリトルエンディアン・フォーマットに、またはその逆に）変更することを伴い得る。その後、例えば、上述した強化されたホモフォニック換字処理や別のホモフォニック換字処理など、ホモフォニック換字処理がデータに対して行われ得る。暗号化鍵は、１つまたは複数の中間鍵と最初の鍵とを連結することによって生成することができ、中間鍵の数は、鍵の深さ（ｋｅｙ  ｄｅｐｔｈ）に基づき、中間鍵は、最初の鍵から計算される。
【０００９】
本発明は、添付の図面を参照して非制限の実施形態の以下の説明を読めば、よりよく理解される。
【発明を実施するための最良の形態】
【００１０】
図１〜図６を参照すると、本発明の一実施形態は、対称鍵アルゴリズムを使用してデータを暗号化する方法に関する。一般に、この方法は、コンピュータまたは他の電子装置を使用して方法を実行するコンピュータ・プログラミング・コードとして実装される。当該のデータの暗号化のために、ステップ１００で、「プレーンテキスト」データ１２（暗号化すべき元のデータを意味する）を含むファイル１０にアクセスする。例えば、ファイルは、２進数フォーマットなどのデータなど、コンピュータ可読形式のデータを含む電子ファイルやレコードとすることができる。ステップ１０２で、プレーンテキスト・データ１２の暗号化に使用するために、１つまたは複数の暗号化鍵１４が生成される。これは、データ・ファイル１０にアクセスする前に行われ得る。次いで、ステップ１０４で、多表式換字が行われ、これは、データ１２と生成された暗号化鍵１４との「排他的論理和演算（ＸＯＲ）」１６（例えば、２を法とする加算（ｍｏｄｕｌｏ  ２  ａｄｄｉｔｉｏｎ）としても知られる、ブール論理排他的論理和計算／演算）を行って、中間暗号文２０を含むレコード、ファイル、または他のデータ・アレイ１８を生成することを伴う。言い換えれば、中間暗号文２０＝プレーンテキスト・データ１２＋暗号化鍵１４である。次に、ステップ１０６で、中間暗号文２０を含むファイル１８の格納フォーマットが、ビッグエンディアンからリトルエンディアンに、またはその逆に変更される。これによって、中間暗号文２０を含むが、格納フォーマット／順序が再配列された、改訂されたファイルまたはデータ・アレイ２２が得られる（新しいファイル２２は、元のファイル１８と同じ格納空間を占め得る）。最後に、ステップ１０８で、中間暗号文２０の強化されたホモフォニック換字が行われて、「最終的な」完全に暗号化された暗号文２４が生成され、これは、ファイル、レコード、またはデータ・アレイ２６に格納され得る。
【００１１】
暗号化鍵１４は、鍵生成プロセスの「深さの最小値（ｍｉｎｉｍｕｍ  ｄｅｐｔｈ）」、および最初の鍵の２つのパラメータに従って生成される。一例として、深さの最小値が２、および最初の鍵が１６進法で０ｘＣＡ８Ｅの場合について検討する（１６進法、２進法、および１０進法の間での変換の標準テーブルが図３に示されている）。図４に示されているステップのように、最初の鍵を使用して、暗号化鍵１４の組を生成する。一般に、与えられた例のように、最初の鍵は、例えば４桁の１６進数や１６桁の２進数など、２バイトのデータに対応する。
【００１２】
まず、ステップ１１０で、最初の鍵が２進形式で表される。例えば、上記で与えられた最初の鍵（ＣＡ８Ｅ）について、２進表現は、１１００  １０１０  １０００  １１１０である。次に、ステップ１１２で、２進法で表される最初の鍵における各ニブル（「ニブル」は４ビット）の１０進法等量が決定される。したがって、ニブル１＝１１００＝＞１２、ニブル２＝１０１０＝＞１０、ニブル３＝１０００＝＞８、およびニブル４＝１１１０＝＞１４である。次に、ステップ１１４で、例えば１２・１４＝１６８など、ニブル１とニブル４の積が算出される。次いでステップ１１６で、最後の２桁に対して個々に、８を法とする演算、（６ｍｏｄ８＝６）および（８ｍｏｄ８＝０）が行われる。８を法とする演算（「ａ」ｍｏｄ「ｂ」＝「ｎ」）は、「ａ」を「ｂ」で割った整数剰余を算出するものとして定義されることを理解されたい。したがって、（６ｍｏｄ８）は、整数剰余６を有し、（８ｍｏｄ８）は、剰余０、すなわち８／８＝１、剰余０である。
【００１３】
鍵生成の必要な深さを算出するために、ステップ１１８で、例えば１０・８＝８０など、ニブル２とニブル３の積が算出される。次いで、ステップ１２０で、例えば（８０ｍｏｄ２＝０）など、積に対して２を法とする演算が行われる。この場合もまた、８０／２＝４０、剰余０である。次いで、ステップ１２２で、最初に選択された鍵の深さの最小値、例えば２がこの値に追加される。現在の例では、これによって、２（０＋２＝２）の鍵生成の必要な深さが得られる。要約すると、
必要な深さ＝深さの最小値＋（（Ｎｉｂｂｌｅ＿２＿ｄｅｃｉｍａｌ・Ｎｉｂｂｌｅ＿３＿ｄｅｃｉｍａｌ）ｍｏｄ２）
である。
鍵生成の必要な深さを計算するために、ステップ１１８〜１２２がすでに実行されているとステップ１２３で決定された場合、アルゴリズムは、ステップ１２４に直接進んでもよい。
【００１４】
引き続き、ステップ１２４で、ステップ１１６で得られた値（６および０など）を使用して、ステップ１１６で得られた値の積が偶数である場合、ニブル１およびニブル２は共に、右に６回ローテートされる。そうでない場合、これらは左に６回ローテートされる。いずれの場合も、ローテートの程度は、例えば６など、ステップ１１６で得られた最初の値に等しい。同様に、ニブル３およびニブル４は、場合に応じて、例えば０など、ステップ１１６で得られた第２の値に等しい程度に左または右にローテートされる。したがって、この例では、ステップ１１６で得られた第２の値が０であるため、ニブル３およびニブル４は、ローテートされない。この例では、ローテート後、最初の鍵０ｘＣＡ８Ｅが０ｘ２Ｂ８Ｅに変換される。０ｘ２Ｂ８Ｅは、「レベル１」の中間鍵である。ステップ１２５で、必要な鍵の深さに基づいて、必要な中間鍵のすべてが計算されたかどうかを決定する。例えば、必要な深さが３である場合、３つの中間鍵が計算される。直前の中間鍵に対してプロセスを繰り返すことによって、さらに中間鍵が生成される。この例では、必要な深さが２であるため、例えば０ｘ２Ｂ８Ｅなど、レベル１の鍵に対してステップ１１２、１１４、１１６、および１２４が繰り返されて、この例では０ｘＣＡ８Ｅである「レベル２」の中間鍵が取得される。
【００１５】
その標準的な意味によれば、当業者にはよく知られているように、「右にローテートする」および「左にローテートする」という用語は、２進数（この場合）を左または右に桁送りし、桁送りされた桁が「折り返して」数字の先頭または末尾に戻ることを指す。２進数が右に１桁ローテートされる場合、最小桁の数字（一番右の数字）が最上桁（一番左の場所）に移動される。同様に、２進数が左に１桁ローテートされる場合、最上桁の数字（一番左の数字）が最小桁（一番右の場所）に移動される。例えば、２進数１００１０１１１を右に２桁ローテートすることによって、１１１００１０１が得られる。数字を左に１桁ローテートすることによって、００１０１１１１が得られる。
【００１６】
一旦中間鍵が計算されると、ステップ１２６で、中間鍵および最初の鍵のニブルを連結することによって、最終組の暗号化鍵１４が得られる。連結の順序は、次の通りである。
ａ）レベル２の鍵のニブル１および２
ｂ）レベル１の鍵のニブル１および２
ｃ）最初の鍵のニブル１および２
ｄ）最初の鍵のニブル３および４
ｅ）レベル２の鍵のニブル３および４
ｆ）レベル１の鍵のニブル３および４
検討された例では、最終鍵は、０ｘＣＡ、０ｘ２Ｂ、０ｘＣＡ、０ｘ８Ｅ、０ｘ８Ｅ、および０ｘ８Ｅとなる。追加の中間鍵がある場合、これらを使用して、例えば、ａ〜ｄ）それぞれレベル３〜１の鍵および最初の鍵のニブル１および２、ｅ〜ｈ）それぞれ最初の鍵およびレベル３〜１鍵のニブル３および４など、類似の方法で最終鍵を生成することになる。
【００１７】
図５を参照すると、データ暗号化方法のステップの次のシーケンスは、ステップ１０２（図４）で生成された鍵１４を使用した多表式換字（図１のステップ１０４）を伴う。ステップ１３０で、必要な場合、暗号化すべきデータ１２（例えばテキストなど）が２進法等量で表される。例えば、テキストは、ＡＳＣＩＩフォーマットに変換され、各キ―ボード文字は、標準の指定された１６進法等量を有し、例えば、ＡＳＣＩＩで、文字「ｂ」は、６２の１６進値を有し、セミコロンは、３Ｂの１６進値を有する。ステップ１３２で、多表式換字の場合、２進法の各データ文字と暗号鍵１４との排他的論理和演算が次から次へと順々に行われる。特に、第１のデータ・バイトと第１の鍵バイトとの排他的論理和演算が行われる。次いで、次のデータ・バイトと次の鍵バイトとの排他的論理和演算が行われ、このプロセスは、循環キュー式で続行する。すなわち、鍵の最後のバイトに到達すると、このプロセスは先頭から続行する。その標準の定義によれば、ＸＯＲ関数１６は、入力の１つのみが真の場合、真の値（１）を戻し、両方またはいずれかが真である場合、偽の値（０）が戻される。したがって、０ＸＯＲ０＝０、１ＸＯＲ１＝０、１ＸＯＲ０＝１、および０ＸＯＲ１＝１である。そのため、ＸＯＲ関数を小文字「ｂ」、すなわちＡＳＣＩＩ１６進値６２（２進数０１１０００１０）に適用する際、結果として得られる中間暗号文２０は、６２ＸＯＲ  ＣＡ＝＞０１１００００１ＸＯＲ１１００１０１０＝１０１０１０１１となる。次のデータ文字がセミコロンである場合、結果として得られる中間暗号文２０は、３Ｂ  ＸＯＲ  ２Ｂとなる。
【００１８】
一般に、ステップ１３２で計算された中間暗号文２０は、一時メモリまたはストレージ１８に格納される。ステップ１３４（図１のステップ１０６）で、暗号文２０が最初にどのように格納されたかに応じて、中間暗号文２０の格納フォーマットが、ビッグエンディアン・フォーマットからリトルエンディアン・フォーマットに、またはその逆に変更される。「ビッグエンディアン」および「リトルエンディアン」は、どのバイトがマルチバイト・データ・タイプの最上位であるかを指し、バイトのシーケンスがコンピュータのメモリに格納される順序を表す。ビッグエンディアン・システムでは、このシーケンスにおける最上位値は、最も低いストレージ・アドレス（例えば最初）に格納される。リトルエンディアン・システムでは、シーケンスにおける最下位値が最初に格納される。そのため、２進数１００１  ０００１  ０１０１  １１１１の場合、次の通りである。
ビッグエンディアン／リトルエンディアン：
アドレス０：１００１／１１１１
アドレス１：０００１／０１０１
アドレス２：０１０１／０００１
アドレス３：１１１１／１００１
【００１９】
ステップ１３６で、中間暗号文２０が１つまたは複数の正方行列２８に格納される。「Ｌ」がブロックで暗号化すべきテキストの長さである場合、正方行列のサイズ「Ｊ」は、Ｊ＝Ｉ２、Ｉ∈（１，２，３，・・・Ｎ）となるような、可能な限り最大のＪ≦Ｌとなるように選択される。言い換えれば、Ｉが整数であるため、Ｊ＝１，４，９，１６，．．．Ｎ２であり、この場合、Ｊは、Ｌの最大値に制限される。あるいは、さらに正方行列のサイズが最初の鍵によって決まるようにすることができる。最初の鍵に応じて行列サイズを選択するために、最初の鍵の最上位バイトと最下位バイトの積「Ｐ」が算出される。行列のサイズは、次のように選択される。
Ｊ＝（２＋（Ｐ  ｍｏｄ（Ｉ−２）））２，Ｉ∈（１，２，３，．．．Ｎ）
【００２０】
残りの文字（Ｌ−Ｊ）も正方行列に配列される。残りの文字（Ｌ−Ｊ）の正方行列のサイズ「Ｋ」は、Ｋ＝Ｍ２、Ｍ∈（１，２，３，．．．Ｎ）となるような、可能な限り最大の「Ｋ≦（Ｌ−Ｊ）」になるように選択される。（（Ｌ−Ｊ）＜４）である場合、ＸＯＲ演算を行った後、最後の（Ｌ−Ｊ）バイトは、これらの最後の（Ｌ−Ｊ）バイトのすぐ前に暗号化される正方行列内の文字の前に置かれる。
【００２１】
図６は、３０文字データ・ブロック、すなわちＬ＝３０の場合、データが正方行列にどのように配列されるかを示している。Ｊ≦ＬおよびＪ＝Ｉ２、Ｉ∈（１，２，３，．．．Ｎ）を満たす最大の「Ｊ」は、Ｊ＝２５となる。したがって、データの第１の行列は、５×５の正方行列２８ａとなる。残りの５文字（Ｌ−Ｊ＝３０−２５＝５）は、２×２行列２８ｂに配列されることになる。５文字が２×２の行列に収まり得ないため、残りの１文字２８ｃが残り、正方行列２８ｂの前に配置されることになる。示されているように、正方行列は、８ビット・データ要素３０などに分割された中間暗号文を含む（この場合も、データ要素は、データの特定の部分、文字列、グループを意味する）。
【００２２】
強化されたホモフォニック換字は、暗号化方法の最終ステップである（図１のステップ１０８）。一般的にいうと、ホモフォニック換字は、換字前定義域（ここでは、正方行列２８における中間暗号文２０）から例えば暗号記号など複数の終域要素にデータ要素を写像することを伴う。ホモフォニック換字を行うために、行列２８ごとに、行列２８内の各セルのデータ要素３０からのニブル（４ビット）がその行列２８の対角線をはさんで交換される。交換すべき特定のニブルの選択は、形式ｙ＝ｍｘの一次方程式（２つの変数の間の直線的な関係を定義し、それに図式化する２変数方程式を意味する）に基づく。「ｘ」は、文字間で正の数ずつ増分するため、ブロック内の文字ごとに交換されるニブルも変わり、強化されたホモフォニック換字を引き起こす。式ｙ＝ｍｘにおいて、ステップ１３８で、「ｍ」の値（線の傾き）、ｘの最初の値、およびｘの増分が、以下の式によって、鍵生成ステップ（図４）で生成された最終鍵１４から決定される。
ｍの値＝最初の鍵／最後の鍵
ｘの最初の値＝（最初の鍵・最後の鍵）ｍｏｄ１０
ｘの増分（第２の鍵）ｍｏｄ１０
最後の鍵がゼロの値を有する場合、４が最後の鍵のデフォルトの値とみなされる。こうした場合、ｍ＝最初の鍵／４である。
上記で算出された最終鍵の例の場合、
ｍ＝０ｘＣＡ／０ｘ８Ｅ＝２０２／１４２＝１．４
ｘの最初の値＝（２０２・１４２）ｍｏｄ１０＝４
ｘの増分＝４３ｍｏｄ１０＝３
【００２３】
より一般的な意味で、交換すべき特定のニブルを選択するための一次方程式は、ｙ＝ｍｘ＋ｂの形式とすることができ、この場合「ｂ」は定数である。上記で与えられたｙ＝ｍｘの一次方程式は、０の「ｂ」値を有すると理解されたい。「ｂ」に様々な値を使用することができるが、これは定数オフセットであるため、全体的な暗号化の結果に影響を与えない。
【００２４】
ニブルは、位置「ａ［ｉ］［ｊ］」および「ａ［ｎ−１−ｉ］［ｎ−１−ｊ］」におけるデータ要素間で、行列の対角線をはさんで交換され、この場合、以下の通りである。
行列サイズ＝（ｎ×ｎ）
０≦ｉ≦（（ｎ／２）−１）
０≦ｊ≦（ｎ−１）
したがって、図６に示された行列２８ａについて、
ｎ＝５
０≦ｉ≦１．５（２に丸められる）
０≦ｊ≦４
ａ［ｉ］［ｊ］は［４−ｉ］［４−ｊ］と交換
ａ（０）（０）→ａ（４）（４）；ａ（０）（１）→ａ（４）（３）；ａ（０）（２）→ａ（４）（２）；ａ（０）（３）→ａ（４）（１）；
ａ（０）（４）→ａ（４）（０）
ａ（１）（０）→ａ（３）（４）；ａ（１）（１）→ａ（３）（３）；ａ（１）（２）→ａ（３）（２）；ａ（１）（３）→ａ（３）（１）；
ａ（１）（４）→ａ（３）（０）
ａ（２）（０）→ａ（２）（４）；ａ（２）（１）→ａ（２）（３）；ａ（２）（２）→ａ（２）（２）
「ａ［ｉ］［ｊ］」および「ａ［ｎ−１−ｉ］［ｎ−１−ｊ］」によって定義された正方行列のセルの各対は、「排他的な対」を形成し、これは、各セルにおけるデータ要素の一部分は、唯一のもう一方のセルにおける一部分と交換されることを意味すると理解されたい。
【００２５】
データ要素間で交換すべきニブルを決定する特定の諸ステップは、次の通りである。まず、ステップ１４０で、一次方程式ｙ＝ｍｘからのｙの値が、ｍについての計算値およびｘの初期値に基づいて計算される。ステップ１４２で、値「ｙ１」は、ｙ１が交換の必要があるニブルの最初のビットである場合、ｙ１＝（７−（ｙ  ｍｏｄ８））に従って計算される。ステップ１４４で、ｙ１から開始し、ａ［ｉ］［ｊ］における４ビットは、ａ［ｎ−１−ｉ］［ｎ−１−ｊ］における対応するビットと交換される。交換されるビット位置は、ｙ１、（（ｙ１＋７）ｍｏｄ８）、（（ｙ１＋６）ｍｏｄ８）、および（（ｙ１＋５）ｍｏｄ８）となる。次いで、ステップ１４６で、ｘの値は、増分値ずつ増分され、例えば上記で与えられた例では、増分値は３である。引き続き、ステップ１４７で決定されたように、「ｉ」ごとに、また行列ごとに、ステップ１４０〜１４６が繰り返される。このように、プレーンテキスト・データ１２は、最終暗号文２４に暗号化され、ステップ１４８のようにファイル２６に格納することができる。次いでファイル２６は、送信され、後で解読され得る。
【００２６】
上述したように、既存のホモフォニック換字は、換字前定義域内の各要素を、換字後終域内の互いに素な部分集合に写像する。一例として、既存の１つの方法によれば、アルファベットの各文字が、その文字（終域要素）に排他的に関連付けられた複数の記号の１つに写像され、記号の数は、当該の言語におけるその文字の頻度に基づく。例えば、
「Ａ」は３、４、１２、１９、２３、２５、３２に写像し、
「Ｂ」は５、１４、２０に写像し、
「Ｃ」は１、２４、３４に写像する、
などである。
ここで、例えば「Ａ」は、Ａ，Ｂ，Ｃ．．．から成る換字前定義域内の要素である。換字後終域は、１、３、４、５、１２、１４など、すべての数字記号から成る。記号５、１４、および２０は、Ｂについての終域の互いに素な部分集合であり、この場合、「互いに素」は、各記号が排他的にその対応する文字に関連付けられるように、部分集合のいずれもが共通の記号を有していないことを意味する。本発明の強化されたホモフォニック換字のプロセスによれば、換字前定義域内の各データ要素（例えば、交換前の行列２８内のデータ要素３０）を、換字後終域内の任意の要素（例えば、交換が行われた後の行列内のデータ要素など）に写像することができる。例えば、換字前（交換前）正方行列２８ａ内の８ビット数を、終域内の任意の他の８ビット数に写像することができ、終域は、すべての２５６の可能な８ビット数（ゼロを含む）を含む。したがって、要素ごとに、終域において要素が写像され得る部分集合は全終域自体であり、それによって所与の終域についての可能な限り最大の部分集合が提供される。さらに、定義域内の要素が写像される終域内の特定の要素は、データ・ブロック内の文字の順序および選択された鍵に応じて変わる。
【００２７】
解読の場合、上述した暗号化の諸ステップは、次のように、逆の順で行われる。まず、正方行列内のニブルは、図５に関して上述した順序の逆に「再交換」される。ニブルを再交換する前に、文字を正方行列のブロックに配列した後に残された最後のいくつかの文字「Ｒ」（図６の２８ｃなど）が算出される。「Ｒ」が４未満である場合、最後の「Ｒ」文字は、最後の正方行列の最初の「Ｒ」文字と交換される。次いで、この場合も、格納フォーマットがビッグエンディアンからリトルエンディアン・フォーマットに、またはその逆に変更される。最後に、上述したように、ＸＯＲ演算および最終鍵を使用して、多表式換字が行われる。
【００２８】
上述したように、本発明による対称鍵データ暗号化の方法は、変換の合成を使用する。ホモフォニック換字に使用される対合は、所与の終域の可能な限り最大の部分集合を使用して文字を置換する利点を有する。変換には、動的であるという更なる利点があり、これは、終域内の要素への所与の文字の写像がメッセージ・テキスト内の様々な位置で異なり、したがって暗号技術のセキュリティを強化することを含意する。
【００２９】
本発明のこの方法は、光ディスク、固定ディスク、集積回路など、コンピュータ可読媒体（図示せず）に格納される、コンピュータまたは他の電子装置によって実行可能な命令を使用して実施され得る。
【００３０】
対称鍵データ暗号化の上述した方法において、本明細書に組み込まれた本発明の意図および範囲から逸脱することなく、いくつかの変更を加えることができるため、上記の説明または添付図面に示されている主題のすべては、単に本明細書の発明の概念を示す例として解釈され、本発明を制限するものと解釈されないものとする。
【図面の簡単な説明】
【００３１】
【図１】本発明の一実施形態による対称鍵データ暗号化の方法の諸ステップを示すフロー図である。
【図２】本方法の概要図である。
【図３】標準の１６進法から２進法、１０進法への変換を示す図である。
【図４】暗号化鍵を生成する諸ステップを示すフロー図である。
【図５】データを暗号化する諸ステップを示すフロー図である。
【図６】正方行列に配列された中間暗号文の概要図である。
【図１】
2009503580.tif 000003
【図２】
2009503580.tif 000004
【図３】
2009503580.tif 000005
【図４】
2009503580.tif 000006
【図５】
2009503580.tif 000007
【図６】
2009503580.tif 000008
【国際調査報告】
2009503580.tif 000009
2009503580.tif 000010
2009503580.tif 000011
2009503580.tif 000012
2009503580.tif 000013