(57)【要約】中央演算処理装置の演算能力を向上させる暗号方法が、中央演算処理装置によって暗号方法の変換関数を実行することを含んでいる。変換関数の演算は、複数の換字ボックスの使用を必要とする。本方法は、（Ａ）中央演算処理装置の処理ビット長を検出するステップ、（Ｂ）それぞれが複数の新たな換字値を含んでおり、該新たな換字値のビット長が処理ビット長に等しい少なくとも１つの新たな換字ボックスを、処理ビット長およびビット転置シーケンスに従って元の換字ボックスから生成するステップ、および（Ｃ）ビット拡大操作、ビット単位の排他的ＯＲ演算、ステップ（Ｂ）において生成した少なくとも１つの新たな換字ボックスを利用する選択操作、ビット単位の複数のＡＮＤ演算、およびビット単位の少なくとも１つのＯＲ演算を使用して、変換関数の演算を実行するステップ、を含んでいる。少なくとも１つの新たな換字ボックスは、中央演算処理装置の処理能力を完全に活用できるよう、種々のビット処理能力（例えば、８ビット、１６ビット、３２ビット）に応じて設計される。
2010507813.tif 000002
【特許請求の範囲】
【請求項１】
中央演算処理装置の演算能力を向上させる暗号方法であって、
ビット拡大操作と、ビット単位の排他的ＯＲ演算と、複数の換字ボックスの使用を必要とする一連の選択操作と、ビット単位の複数の論理演算とを含んでいる当該暗号方法の変換関数を、中央演算処理装置が実行する暗号方法であり、
（Ａ）中央演算処理装置の処理ビット長を検出するステップ、
（Ｂ）それぞれが複数の新たな換字値を含んでおり、該新たな換字値のビット長が処理ビット長に等しい少なくとも１つの新たな換字ボックスを、処理ビット長およびビット転置シーケンスに従って元の換字ボックスから生成するステップ、および
（Ｃ）ビット拡大操作、ビット単位の排他的ＯＲ演算、ステップ（Ｂ）において生成した少なくとも１つの新たな換字ボックスを利用する選択操作、ビット単位の複数のＡＮＤ演算、およびビット単位の少なくとも１つのＯＲ演算を使用して、変換関数を実行するステップ
を含んでいる暗号方法。
【請求項２】
ビット転置シーケンスが、データ暗号化標準（ＤＥＳ）アルゴリズムの関数（ｆ）の転置操作に従っており、変換関数が、データ暗号化標準（ＤＥＳ）アルゴリズムの関数（ｆ）と同じ結果を生成する請求項１に記載の中央演算処理装置の演算能力を向上させる暗号方法。
【請求項３】
ステップ（Ａ）において検出された中央演算処理装置の処理ビット長が８ビットである場合に、ステップ（Ｂ）の少なくとも１つの新たな換字ボックスのそれぞれの新たな換字値が、新たな換字値のそれぞれのビット長が８ビットとなるように、少なくとも１つの元の換字ボックスの換字値を組み合わせ、次いで並べ替えた結果である請求項１に記載の中央演算処理装置の演算能力を向上させる暗号方法。
【請求項４】
少なくとも１つの新たな換字ボックスのそれぞれの換字値が、元の換字ボックスの対応する組を複合換字ボックスへと組み合わせ、複合換字ボックスの対応する同じ位置の複合換字ボックスの換字値から３２ビットのシーケンスを形成し、３２ビットのシーケンスをビット転置シーケンスに従って並べ替え、３２ビットのシーケンスを、新たな換字値のそれぞれのビット長が８ビットである４つの新たな換字ボックスへと割り当てること、によって得られる請求項３に記載の中央演算処理装置の演算能力を向上させる暗号方法。
【請求項５】
３２ビットのシーケンスが、中央演算処理装置による処理のための４つのセグメントへと分割され、各セグメントが８ビットであって、各セグメントのビットの配置インデックスが、それぞれ［１６，７，２０，２１，２９，２１，２８，１７］、［１，１５，２３，２６，５，１８，３１，１０］、［２，８，２４，１４，３２，２７，３，９］、および［１９，１３，３０，６，２２，１１，４，２５］である請求項４に記載の中央演算処理装置の演算能力を向上させる暗号方法。
【請求項６】
ステップ（Ｃ）において、新たな換字ボックスのそれぞれが、対応する選択操作の結果として２組の８ビットの出力を有しており、８ビットの出力のそれぞれに適切なビット単位のＡＮＤ演算が加えられて所望のビット・データが得られ、所望のビット・データが、適切なビット単位のＯＲ演算を加えられた後に変換関数の結果をもたらす請求項４に記載の中央演算処理装置の演算能力を向上させる暗号方法。
【請求項７】
ステップ（Ａ）において検出された中央演算処理装置の処理ビット長が１６ビットである場合に、ステップ（Ｂ）の少なくとも１つの新たな換字ボックスのそれぞれの新たな換字値が、新たな換字値のそれぞれのビット長が１６ビットとなるように、少なくとも１つの元の換字ボックスの換字値を組み合わせ、次いで並べ替えた結果である請求項１に記載の中央演算処理装置の演算能力を向上させる暗号方法。
【請求項８】
少なくとも１つの新たな換字ボックスのそれぞれの換字値が、元の換字ボックスの対応する組を複合換字ボックスへと組み合わせ、複合換字ボックスの対応する同じ位置の複合換字ボックスの換字値から３２ビットのシーケンスを形成し、３２ビットのシーケンスをビット転置シーケンスに従って並べ替え、３２ビットのシーケンスを、新たな換字値のそれぞれのビット長が１６ビットである２つの新たな換字ボックスへと割り当てること、によって得られる請求項７に記載の中央演算処理装置の演算能力を向上させる暗号方法。
【請求項９】
３２ビットのシーケンスが、中央演算処理装置による処理のための２つのセグメントへと分割され、各セグメントが１６ビットであって、各セグメントのビットの配置インデックスが、それぞれ［１６，７，２０，２１，２９，１２，２８，１７，１，１５，２３，２６，５，１８，３１，１０］および［２，８，２４，１４，３２，２７，３，９，１９，１３，３０，６，２２，１１，４，２５］である請求項８に記載の中央演算処理装置の演算能力を向上させる暗号方法。
【請求項１０】
ステップ（Ｃ）において、新たな換字ボックスのそれぞれが、対応する選択操作の結果として４組の１６ビットの出力を有しており、１６ビットの出力のそれぞれに適切なビット単位のＡＮＤ演算が加えられて所望のビット・データが得られ、所望のビット・データが、適切なビット単位のＯＲ演算を加えられた後に変換関数の結果をもたらす請求項８に記載の中央演算処理装置の演算能力を向上させる暗号方法。
【請求項１１】
ステップ（Ａ）において検出された中央演算処理装置の処理ビット長が３２ビットである場合に、ステップ（Ｂ）の少なくとも１つの新たな換字ボックスのそれぞれの新たな換字値が、新たな換字値のそれぞれのビット長が３２ビットとなるように、少なくとも１つの元の換字ボックスの換字値を組み合わせ、次いで並べ替えた結果である請求項１に記載の中央演算処理装置の演算能力を向上させる暗号方法。
【請求項１２】
少なくとも１つの新たな換字ボックスのそれぞれの換字値が、元の換字ボックスの対応する組を複合換字ボックスへと組み合わせ、複合換字ボックスの対応する同じ位置の複合換字ボックスの換字値から３２ビットのシーケンスを形成し、３２ビットのシーケンスをビット転置シーケンスに従って並べ替え、３２ビットのシーケンスを、新たな換字値のそれぞれのビット長が３２ビットである新たな換字ボックスへと割り当てること、によって得られる請求項１１に記載の中央演算処理装置の演算能力を向上させる暗号方法。
【請求項１３】
３２ビットのシーケンスが、中央演算処理装置による処理のためのただ１つのセグメントであり、セグメントのビットの配置インデックスが、［１６，７，２０，２１，２９，１２，２８，１７，１，１５，２３，２６，５，１８，３１，１０，２，８，２４，１４，３２，２７，３，９，１９，１３，３０，６，２２，１１，４，２５］である請求項１２に記載の中央演算処理装置の演算能力を向上させる暗号方法。
【請求項１４】
ステップ（Ｃ）において、新たな換字ボックスが、対応する選択操作の結果として８組の３２ビットの出力を有しており、３２ビットの出力のそれぞれに適切なビット単位のＡＮＤ演算が加えられて所望のビット・データが得られ、所望のビット・データが、ビット単位のＯＲ演算を加えられた後に変換関数の結果をもたらす請求項１２に記載の中央演算処理装置の演算能力を向上させる暗号方法。
【請求項１５】
中央演算処理装置の演算能力を向上させる暗号装置であって、
・或る処理ビット長の処理能力を有しており、ビット拡大操作と、ビット単位の排他的ＯＲ演算と、複数の換字ボックスの使用を必要とする一連の選択操作と、ビット単位の複数の論理演算とを含んでいる暗号方法の変換関数を実行するための中央演算処理装置、および
・ブロック暗号
を備えており、
前記ブロック暗号が、
・処理ビット長を検出し、処理ビット長およびビット転置シーケンスに従って元の換字ボックスから少なくとも１つの新たな換字ボックスを生成する換字ボックス生成ユニット、
・サブ鍵生成処理を実行するための鍵生成ユニット、および
・平文／暗号文データを受け取り、ビット拡大操作、サブ鍵を使用するビット単位の排他的ＯＲ演算、換字ボックス生成ユニットによって生成された少なくとも１つの新たな換字ボックスを利用する選択操作、ビット単位の複数のＡＮＤ演算、およびビット単位の少なくとも１つのＯＲ演算による変換関数を、中央演算処理装置を利用して実行する暗号処理ユニット
を含んでいる暗号装置。
【請求項１６】
ビット転置シーケンスが、データ暗号化標準（ＤＥＳ）アルゴリズムの関数（ｆ）の転置操作に従っており、変換関数が、データ暗号化標準（ＤＥＳ）アルゴリズムの関数（ｆ）と同じ結果を生成する請求項１５に記載の中央演算処理装置の演算能力を向上させる暗号装置。
【請求項１７】
前記換字ボックス生成ユニットによって検出された前記中央演算処理装置の処理ビット長が８ビットである場合に、該換字ボックス生成ユニットが、処理ビット長に従って８ビットの新たな換字値を有する少なくとも１つの新たな換字ボックスをもたらし、少なくとも１つの新たな換字ボックスのそれぞれの新たな換字値は、少なくとも１つの元の換字ボックスの換字値を組み合わせ、次いで並べ替えた結果である請求項１５に記載の中央演算処理装置の演算能力を向上させる暗号装置。
【請求項１８】
少なくとも１つの新たな換字ボックスのそれぞれの換字値が、元の換字ボックスの対応する組を複合換字ボックスへと組み合わせ、複合換字ボックスの対応する同じ位置の複合換字ボックスの換字値から３２ビットのシーケンスを形成し、３２ビットのシーケンスをビット転置シーケンスに従って並べ替え、３２ビットのシーケンスを、新たな換字値のそれぞれのビット長が８ビットである４つの新たな換字ボックスへと割り当てること、によって得られる請求項１７に記載の中央演算処理装置の演算能力を向上させる暗号装置。
【請求項１９】
３２ビットのシーケンスが、前記中央演算処理装置による処理のための４つのセグメントへと分割され、各セグメントが８ビットであって、各セグメントのビットの配置インデックスが、それぞれ［１６，７，２０，２１，２９，２１，２８，１７］、［１，１５，２３，２６，５，１８，３１，１０］、［２，８，２４，１４，３２，２７，３，９］、および［１９，１３，３０，６，２２，１１，４，２５］である請求項１８に記載の中央演算処理装置の演算能力を向上させる暗号装置。
【請求項２０】
新たな換字ボックスのそれぞれが、対応する選択操作の結果として２組の８ビットの出力を有しており、８ビットの出力のそれぞれに適切なビット単位のＡＮＤ演算が加えられて所望のビット・データが得られ、所望のビット・データが、適切なビット単位のＯＲ演算を加えられた後に変換関数の結果をもたらす請求項１８に記載の中央演算処理装置の演算能力を向上させる暗号装置。
【請求項２１】
前記換字ボックス生成ユニットによって検出された前記中央演算処理装置の処理ビット長が１６ビットである場合に、該換字ボックス生成ユニットが、処理ビット長に従って１６ビットの新たな換字値を有する少なくとも１つの新たな換字ボックスをもたらし、少なくとも１つの新たな換字ボックスのそれぞれの新たな換字値は、少なくとも１つの元の換字ボックスの換字値を組み合わせ、次いで並べ替えた結果である請求項１５に記載の中央演算処理装置の演算能力を向上させる暗号装置。
【請求項２２】
少なくとも１つの新たな換字ボックスのそれぞれの換字値が、元の換字ボックスの対応する組を複合換字ボックスへと組み合わせ、複合換字ボックスの対応する同じ位置の複合換字ボックスの換字値から３２ビットのシーケンスを形成し、３２ビットのシーケンスをビット転置シーケンスに従って並べ替え、３２ビットのシーケンスを、新たな換字値のそれぞれのビット長が１６ビットである２つの新たな換字ボックスへと割り当てること、によって得られる請求項２１に記載の中央演算処理装置の演算能力を向上させる暗号装置。
【請求項２３】
３２ビットのシーケンスが、前記中央演算処理装置による処理のための２つのセグメントへと分割され、各セグメントが１６ビットであって、各セグメントのビットの配置インデックスが、それぞれ［１６，７，２０，２１，２９，１２，２８，１７，１，１５，２３，２６，５，１８，３１，１０］および［２，８，２４，１４，３２，２７，３，９，１９，１３，３０，６，２２，１１，４，２５］である請求項２２に記載の中央演算処理装置の演算能力を向上させる暗号装置。
【請求項２４】
新たな換字ボックスのそれぞれが、対応する選択操作の結果として４組の１６ビットの出力を有しており、１６ビットの出力のそれぞれに適切なビット単位のＡＮＤ演算が加えられて所望のビット・データが得られ、所望のビット・データが、適切なビット単位のＯＲ演算を加えられた後に変換関数の結果をもたらす請求項２２に記載の中央演算処理装置の演算能力を向上させる暗号装置。
【請求項２５】
前記換字ボックス生成ユニットによって検出された前記中央演算処理装置の処理ビット長が３２ビットである場合に、該換字ボックス生成ユニットが、処理ビット長に従って３２ビットの新たな換字値を有する少なくとも１つの新たな換字ボックスをもたらし、少なくとも１つの新たな換字ボックスのそれぞれの新たな換字値は、少なくとも１つの元の換字ボックスの換字値を組み合わせ、次いで並べ替えた結果である請求項１５に記載の中央演算処理装置の演算能力を向上させる暗号装置。
【請求項２６】
少なくとも１つの新たな換字ボックスのそれぞれの換字値が、元の換字ボックスの対応する組を複合換字ボックスへと組み合わせ、複合換字ボックスの対応する同じ位置の複合換字ボックスの換字値から３２ビットのシーケンスを形成し、３２ビットのシーケンスをビット転置シーケンスに従って並べ替え、３２ビットのシーケンスを、新たな換字値のそれぞれのビット長が３２ビットである新たな換字ボックスへと割り当てること、によって得られる請求項２５に記載の中央演算処理装置の演算能力を向上させる暗号装置。
【請求項２７】
３２ビットのシーケンスが、前記中央演算処理装置による処理のためのただ１つのセグメントであり、セグメントのビットの配置インデックスが、［１６，７，２０，２１，２９，１２，２８，１７，１，１５，２３，２６，５，１８，３１，１０，２，８，２４，１４，３２，２７，３，９，１９，１３，３０，６，２２，１１，４，２５］である請求項２６に記載の中央演算処理装置の演算能力を向上させる暗号装置。
【請求項２８】
新たな換字ボックスが、対応する選択操作の結果として８組の３２ビットの出力を有しており、３２ビットの出力のそれぞれに適切なビット単位のＡＮＤ演算が加えられて所望のビット・データが得られ、所望のビット・データが、ビット単位のＯＲ演算を加えられた後に変換関数の結果をもたらす請求項２６に記載の中央演算処理装置の演算能力を向上させる暗号装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号方法および暗号装置に関し、さらに詳しくは、データ暗号化標準（ＤＥＳ：Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）アルゴリズムにおいて使用されるように構成され、中央演算処理ユニットの演算能力を向上させる暗号方法および暗号装置に関する。
【背景技術】
【０００２】
図１を参照すると、データ暗号化標準（ＤＥＳ）アルゴリズムは、対称暗号化を使用し、すなわち暗号化および復号化の両者に同一の鍵が使用される技法である。
【０００３】
暗号化プロセスには、主として、平文９０１および鍵９０１をブロック暗号９２へと入力する入力ユニット９１と、内部の暗号化処理を使用して平文９０１を暗号文９０３へと変換するブロック暗号９２とが関与し、その後に暗号文９０３が、出力ユニット９３によって出力される。
【０００４】
図２を参照すると、ＤＥＳ技法の詳細な暗号化工程は、６４ビットの平文を入力する工程、ならびに平文に初期転置の処理８０１を加え、次いで暗号演算処理８０２（１６ラウンドの暗号演算段階８０４を含んでいる）を加え、最後に別の転置８０３（初期転置の逆転置である）を加える工程である。
【０００５】
初期転置の処理８０１は、６４ビットの平文のデータの各ビットの順序を、初期転置（ＩＰ）表に従って並べ替えることを含む。
【０００６】
暗号演算処理８０２の暗号演算段階８０４の各ラウンドは、主として、６４ビットのデータを３２ビットのデータからなる２つの部分、すなわちデータの右半分（Ｒｉ）およびデータの左半分（Ｌｉ）へと分割し、データの右半分（Ｒｉ）およびサブ鍵（Ｋｉ＋１）を演算のための関数（ｆ）へと入力した後で、関数（ｆ）の演算の結果およびデータの左半分（Ｌｉ）について、ビット単位の排他的ＯＲ（ビット単位のＸＯＲ）演算を実行し、ビット単位のＸＯＲ演算の結果を、暗号演算段階８０４の次のラウンドのためのデータの右半分（Ｒｉ＋１）とし、元のデータの右半分（Ｒｉ）を、暗号演算段階８０４の次のラウンドのためのデータの左半分（Ｌｉ＋１）とすることを含む。
【０００７】
初期転置の逆転置の処理８０３は、暗号演算処理８０２の演算結果のデータの各ビットの順序を、その後の暗号文としての出力のために、初期転置の逆転置（ＩＰ−１）表に従って並べ替えることを含む。
【０００８】
図３を参照すると、関数（ｆ）の処理方法は、３２ビットのデータ（Ｒｉ）について、データの各ビットの順序を参照拡大操作チャート（Ｅ）に従って並べ直して、３２ビットのデータ（Ｒｉ）を４８ビットのデータＥ（Ｒｉ）へと拡大する拡大操作を実行することを含む。拡大操作チャート（Ｅ）は、表１に示すとおりである。
【０００９】
【表１】
2010507813.tif 000003
【００１０】
次いで、拡大後のデータＥ（Ｒｉ）およびサブ鍵（Ｋｉ＋１）について、ビット単位のＸＯＲ演算が実行される。ビット単位のＸＯＲ演算から得られた結果が、一連の選択操作のために、８つの換字ボックス（Ｓボックス）Ｓ１〜Ｓ８へと均等に割り当てられる。それぞれのＳボックス（Ｓｊ）は、別々の換字表を有しており、その機構は、６ビットの入力データの最初および最後のビット（すなわち、２ビット）を換字表（合計４行）の行番号とし、６ビットの入力データの真ん中の４ビットを換字表（合計１６列）の列番号とし、行番号および列番号を座標としてとることによって対応する出力データの内容を突き止め、この内容を新たなビット値として機能させることにある。
【００１１】
表２が、Ｓボックス（Ｓ１）の換字表である。Ｓボックス（Ｓ１）の６ビットの入力データが（０  １１０１  １）２であると仮定すると、この換字方法は、この６ビットの入力データを、最初および最後のビット（０１）２が表２の行１（（０１）２＝１であるため）を表し、真ん中の４ビット（１１０１）２が表２の列１３（（１１０１）２＝１３であるため）を表しているインデックスであると考える。結果として、表２の座標（行１，列１３）を参照して、５という値が得られ、この値は、４ビットの出力データへと変換された後では（０１０１）２である（５＝（０１０１）２であるため）。合計で８つのＳボックス（Ｓｊ）が存在するため、以上から、６×８＝４８ビットが入力され、４×８＝３２ビットが出力されることを理解できるであろう。したがって、Ｓボックス（Ｓｊ）のそれぞれの選択処理の後で、全体としての出力の長さは、再び３２ビットに戻っている。
【００１２】
【表２】
2010507813.tif 000004
【００１３】
最後に、すべてのＳボックス（Ｓｊ）の全体としての出力に転置操作を加える必要があるが、この転置操作の方法は、３２ビットのデータの各ビットの位置を転置表（Ｐ）に従って並べ替えることを含んでおり、その結果が、関数（ｆ）の出力である。転置表（Ｐ）の配置インデックスは、表３に示すとおりである。
【００１４】
【表３】
2010507813.tif 000005
【００１５】
復号化プロセスに関しては、暗号化プロセスの逆であって、暗号化プロセスにおいて実行される操作の逆の操作によって、暗号文を元の平文へと戻すことができる。
【００１６】
以上から理解できるとおり、関数（ｆ）の演算は、ビット拡大操作、ビット単位の排他的ＯＲ演算、一連の選択操作、および転置操作の各工程を実行することを必要とし、既存の標準的な処理手順に限れば、選択操作のそれぞれのＳボックス（Ｓｊ）が、一度に４ビットずつしか出力することができない。しかしながら、中央演算処理装置（ＣＰＵ）のビット処理能力は常に向上しているため、それぞれの演算において、データのより多くのビットを処理することが可能である。したがって、より多くのビット（例えば、８ビット、１６ビット、または３２ビット）を処理することができる中央演算処理装置が使用される場合に、その処理能力を充分に活用することができない。
【発明の開示】
【００１７】
したがって、本発明の目的は、中央演算処理装置のビット処理能力に応じて機能し、中央演算処理装置の演算能力を向上させる暗号方法および暗号装置を提供することにある。
【００１８】
中央演算処理装置の演算能力を向上させるための本発明による暗号方法は、中央演算処理装置によって暗号方法の変換関数を実行することを含んでいる。変換関数は、ビット拡大操作と、ビット単位の排他的ＯＲ演算と、一連の選択操作と、ビット単位の複数の論理演算とを含んでいる。選択操作は、複数の換字ボックスの使用を必要とする。
【００１９】
本方法は、（Ａ）中央演算処理装置の処理ビット長を検出するステップ、（Ｂ）それぞれが複数の新たな換字値を含んでおり、該新たな換字値のビット長が処理ビット長に等しい少なくとも１つの新たな換字ボックスを、処理ビット長およびビット転置シーケンスに従って元の換字ボックスから生成するステップ、および（Ｃ）ビット拡大操作、ビット単位の排他的ＯＲ演算、ステップ（Ｂ）において生成した少なくとも１つの新たな換字ボックスを利用する選択操作、ビット単位の複数のＡＮＤ演算、およびビット単位の少なくとも１つのＯＲ演算を使用して、変換関数を実行するステップ、を含んでいる。
【００２０】
中央演算処理装置の演算能力を向上させるための本発明による暗号装置は、中央演算処理装置およびブロック暗号を備えている。ブロック暗号は、換字ボックス生成ユニット、鍵生成ユニット、および暗号処理ユニットを含んでいる。
【００２１】
中央演算処理装置は、或る処理ビット長の処理能力を有しており、暗号方法の変換関数を実行する。変換関数は、ビット拡大操作、ビット単位の排他的ＯＲ演算、一連の選択操作、およびビット単位の複数の論理演算を含んでいる。選択操作は、複数の換字ボックスの使用を必要とする。
【００２２】
換字ボックス生成ユニットが、処理ビット長を検出し、処理ビット長およびビット転置シーケンスに従って、元の換字ボックスから少なくとも１つの新たな換字ボックスを生成する。鍵生成ユニットが、サブ鍵生成処理を実行する。
【００２３】
暗号処理ユニットが、平文／暗号文データを受け取り、ビット拡大操作、サブ鍵を使用するビット単位の排他的ＯＲ演算、換字ボックス生成ユニットによって生成された少なくとも１つの新たな換字ボックスを利用する選択操作、ビット単位の複数のＡＮＤ演算、およびビット単位の少なくとも１つのＯＲ演算による変換関数を、中央演算処理装置を利用して実行する。
【００２４】
本発明による暗号方法および暗号装置においては、少なくとも１つの新たな換字ボックスが、中央演算処理装置の処理ビット長および特定のビット転置シーケンスに従って生成され、新たな換字ボックスのそれぞれが、ビット長が処理ビット長に等しい複数の新たな換字値を有している。したがって、種々のビット処理能力（例えば、８ビット、１６ビット、３２ビット）を有するさまざまな中央演算処理装置の処理能力を、完全に活用することが可能である。
【００２５】
本発明の他の特徴および利点は、添付の図面を参照し、好ましい実施形態についての以下の詳細な説明において明らかになるであろう。
【発明を実施するための最良の形態】
【００２６】
本発明をさらに詳しく説明する前に、本明細書の開示の全体を通して、同様の構成要素は同じ参照番号によって指し示されていることに注意すべきである。
【００２７】
図４を参照すると、本発明による暗号装置１００の好ましい実施形態においては、中央演算処理装置２が、暗号方法の変換関数を実行する。変換関数は、ビット拡大操作、ビット単位の排他的ＯＲ演算、一連の選択操作、および複数のビット単位の論理演算を含む。選択操作は、複数の換字ボックスの使用を必要とする。
【００２８】
変換関数は、データ暗号化標準（ＤＥＳ）の関数（ｆ）に類似しており、唯一の相違は、本発明が、選択操作を実行するための新規な換字ボックスを得るために、中央演算処理装置２の処理ビット長および関数（ｆ）の転置操作によって参照されるビット転置シーケンスと同じビット転置シーケンスを使用することにある。選択操作の結果に対して適切なビット単位のＡＮＤ演算およびビット単位のＯＲ演算を加えた後に、変換関数は、関数（ｆ）の結果と同じ結果を、元の転置操作を必要とすることなく直接的に生み出すことができる。
【００２９】
暗号装置１００は、ブロック暗号１、中央演算処理装置２、入力バッファ・ユニット３、および出力バッファ・ユニット４を備えている。
【００３０】
ここで、入力バッファ・ユニット３が、中央演算処理装置２の処理ビット長（例えば、８ビット、１６ビット、または３２ビット）ならびに暗号演算に必要なパラメータ（鍵、平文／暗号文）などの情報を受信して、一時的に保存する。
【００３１】
ブロック暗号１は、換字ボックス生成ユニット１１、鍵生成ユニット１２、暗号処理ユニット１３、およびデータ・バッファ・ユニット１４を含んでいる。
【００３２】
換字ボックス生成ユニット１１は、入力バッファ・ユニット３内の処理ビット長データ１０１およびビット転置シーケンスに従って少なくとも１つの新たな換字ボックスを生成し、この少なくとも１つの新たな換字ボックスをデータ・バッファ・ユニット１４に一時的に保存するためのものである。
【００３３】
鍵生成ユニット１２は、入力バッファ・ユニット３内の鍵１０２を受け取り、４８ビットのサブ鍵（Ｋｉ＋１）を生成するためのサブ鍵（Ｋｉ＋１）生成処理を実行し、サブ鍵（Ｋｉ＋１）をデータ・バッファ・ユニット１４に一時的に保存する。
【００３４】
暗号処理ユニット１３は、入力バッファ・ユニット３から４８ビットのデータＥ（Ｒｉ）１０３を受け取り、サブ鍵（Ｋｉ＋１）および少なくとも１つの新たな換字ボックスをデータ・バッファ・ユニット１４から入手して、暗号化プロセスを実行する。すでに述べたように、平文／暗号文には、１６ラウンドの暗号化操作が加えられ、各ラウンドは、データ（Ｒｉ）について拡大操作テーブル（Ｅ）を参照することによって４８ビットのデータＥ（Ｒｉ）を導出するためのビット拡大操作を実行し、どちらも４８ビットのデータ長であるデータＥ（Ｒｉ）およびサブ鍵（Ｋｉ＋１）についてビット単位の排他的ＯＲ演算を実行し、得られた４８ビットの結果を選択操作のために前記少なくとも１つの新たな換字ボックスのそれぞれへと均等に割り当て、最後に選択結果に対して適切なビット単位のＡＮＤおよびビット単位のＯＲ演算を加えることによって、関数（ｆ）の結果と同じ結果（データ暗号化標準（ＤＥＳ）によってさらに処理することができる）を元の転置操作を必要とせずに導出することを必要とする。
【００３５】
出力バッファ・ユニット４は、暗号処理ユニット１３によって暗号化または複合化処理が加えられた暗号文／平文を出力する。データ暗号化標準アルゴリズムが採用されているため、その技術的原理は当業者にとって公知であって、本発明の特徴ではなく、したがってさらなる詳細はここでは省略する。
【００３６】
図４および図５を参照すると、本発明による中央演算処理装置の演算能力を向上させるための暗号方法は、以下のステップを含んでおり、すなわち、ブロック暗号１によって中央演算処理装置２の処理ビット長を検出し（ステップ５０１）、次いで、それぞれが複数の新たな換字値（処理ビット長と同じビット長を有する）を含む少なくとも１つの新たな換字ボックスを、ブロック暗号１によって処理ビット長およびビット転置シーケンスに従って生成し（ステップ５０２）、ビット拡大操作、ビット単位の排他的ＯＲ演算、ステップ（５０２）によって生成された少なくとも１つの新たな換字ボックスを利用する選択操作、ビット単位の複数のＡＮＤ演算、およびビット単位の少なくとも１つのＯＲ演算を使用して、変換関数を実行する（ステップ５０３）ことを含んでいる。
【００３７】
本発明においては、暗号装置１００が、データ暗号化標準の関数（ｆ）と同様の変換関数を実行するために中央演算処理装置２を使用し、少なくとも１つの新たな換字ボックスのそれぞれの新たな換字値の長さが、処理ビット長さに等しいため、中央演算処理装置２の最適な演算性能を達成することが可能である。
【００３８】
図６に示されるとおり、新たな換字値の構成は、元のデータ暗号化標準（ＤＥＳ）の８つのＳボックス（Ｓ１〜Ｓ８）にもとづいている。少なくとも１つの新たな換字ボックスのそれぞれの新たな換字値は、少なくとも１つの元のＳボックスの換字値を組み合わせ、次いで並べ替えた結果である。元のデータ暗号化標準においては、Ｓボックス（Ｓ１〜Ｓ８）のそれぞれが、４×１６の換字値（それぞれ４ビットである）を収容している行列である。
【００３９】
少なくとも１つの新たな換字ボックスを構成する前に、元のＳボックス（Ｓ１〜Ｓ８）を、ペア、すなわち（Ｓ１，Ｓ２）、（Ｓ３，Ｓ４）、（Ｓ５，Ｓ６）、（Ｓ７，Ｓ８）に組み合わせて４つの一時行列（Ｔ１〜Ｔ４）を形成する必要があり、その後に一時行列（Ｔ１〜Ｔ４）の並べ替えが行われる。元のＳボックス（Ｓ１〜Ｓ８）の換字値のそれぞれが４ビットであるため、一時行列（Ｔ１〜Ｔ４）のそれぞれの換字値は、８ビットへと拡大される。
【００４０】
この好ましい実施形態においては、組み合わせの方法が、元の２つのＳボックスのうちの一方の換字値を最上位バイト（ＭＳＢ）とし、元の２つのＳボックスのうちの他方の換字値を最下位バイト（ＬＳＢ）とすることからなる。
【００４１】
それぞれの一時行列（Ｔ１〜Ｔ４）において対応する同じ位置に位置している換字値（８ビット）が、（Ｔ１）から（Ｔ４）の順に取得され、８×４＝３２ビットの一時行列（Ｕ）へと順に入力される。続いて、一時行列（Ｕ）のビット位置が、参照表（Ｐ）に従って入れ替えられることで、一時行列（Ｕ）が一時行列（Ｕ’）へと変化する。このやり方で、一時行列（Ｔ１〜Ｔ４）のすべての対応する位置が上述の手順を使用して処理された後で、それぞれが３２ビットのシーケンスと称される４×１６の一時行列（Ｕ’）が得られる。
【００４２】
少なくとも１つの新たな換字ボックスの換字値の構成における本発明の原理は、少なくとも１つの元のＳボックスを組み合わせ、次いで並べ替えることにあり、その方法は、少なくとも１つの新たな換字ボックスの新たな換字値のそれぞれのビット長が処理ビット長に等しくなるように、少なくとも１つの元のＳボックスから対応する同じ位置の換字値を順に取り出して３２ビットのシーケンスを形成し、次いで３２ビットのシーケンスを、特定のビット転置シーケンスに従って少なくとも１つの新たな換字ボックスへと順に割り当てることにある。
【００４３】
ここで、中央演算処理装置２の処理能力が８ビットである場合、３２ビットのシーケンスが、中央演算処理装置２による処理のために４つのセグメントへと分割されることに注意すべきである。各セグメントが８ビットであり、セグメント内のビットの配置インデックスは、それぞれ［１６，７，２０，２１，２９，２１，２８，１７］、［１，１５，２３，２６，５，１８，３１，１０］、［２，８，２４，１４，３２，２７，３，９］、および［１９，１３，３０，６，２２，１１，４，２５］である。中央演算処理装置２の処理能力が１６ビットである場合には、３２ビットのシーケンスが、中央演算処理装置２による処理のために２つのセグメントへと分割される。各セグメントが１６ビットであり、セグメント内のビットの配置インデックスは、それぞれ［１６，７，２０，２１，２９，１２，２８，１７，１，１５，２３，２６，５，１８，３１，１０］および［２，８，２４，１４，３２，２７，３，９，１９，１３，３０，６，２２，１１，４，２５］である。中央演算処理装置２の処理能力が３２ビットである場合には、３２ビットのシーケンスの全体が、３２ビットのセグメントと考えられる。セグメント内のビットの配置インデックスは、［１６，７，２０，２１，２９，１２，２８，１７，１，１５，２３，２６，５，１８，３１，１０，２，８，２４，１４，３２，２７，３，９，１９，１３，３０，６，２２，１１，４，２５］である。
【００４４】
暗号処理ユニット１３が、それぞれの一時行列（Ｕ’）（合計３２ビットを含んでいる）を中央演算処理装置２の処理能力に従って、少なくとも１つの新たな換字ボックスを得るために分割するため、４８ビットのデータが、変換のために少なくとも１つの新たな換字ボックスへと均等に割り当てられる。以下で、処理能力がそれぞれ８ビット、１６ビット、および３２ビットである種々の実施形態について説明する。
【００４５】
１．中央演算処理装置が８ビットの処理能力を有している場合の少なくとも１つの新たな換字ボックス
図７に示されているとおり、中央演算処理装置２の８ビットの処理能力に合致するように、一時行列（Ｕ’）の３２ビットが４つの部分へと分割され、次いで４つの新たな換字ボックスへと均等に割り当てられ、新たな換字ボックスの新たな換字値として機能する。新たな換字ボックスのそれぞれは、依然として４×１６の換字値を有しており、換字値はそれぞれ８ビットである。
【００４６】
図８に示されているとおり、新たな換字ボックス（Ｓ１’〜Ｓ４’）のそれぞれは、選択操作の結果として、２組の８ビットの出力を有している。２組の８ビットの出力に、適切なビット単位のＡＮＤ演算が加えられ、所望のビット・データが得られる。次いで、得られたビット・データに、適切なビット単位のＯＲ演算が加えられ、変換関数の結果が生成される。
【００４７】
この好ましい実施形態においては、中央演算処理装置２の処理能力が８ビットであり、４つの新たな換字ボックスが、新たな換字ボックス（Ｓ１’〜Ｓ４’）のそれぞれに４８ビット／４＝１２ビットのデータが割り当てられるように構成されている。これらの１２ビットが、２組の６ビットへと分割され、２組の６ビットが、対応する新たな換字ボックス（Ｓ１’〜Ｓ４’）から２つの８ビットの換字値をそれぞれ得るためのインデックスとして使用される。図９に、図８の新たな換字ボックスのうちの１つ（Ｓ１’）の新たな換字値が示されている。
【００４８】
再び図８を参照すると、新たな換字ボックス（Ｓ１’〜Ｓ４’）のそれぞれから２つの８ビットの換字値が得られた後、それぞれの８ビットの換字値について、ビット単位のＡＮＤ演算が実行される。換言すると、一方の換字値の最上位の４ビットおよび他方の換字値の最下位の４ビットが得られ、ビット単位のＯＲ演算によって組み合わせられ、８ビットのデータ出力が生成される。全部で４つの新たな換字ボックス（Ｓ１’〜Ｓ４’）が存在するため、全体としての出力は、８×４＝３２ビットのままである。
【００４９】
２．中央演算処理装置が１６ビットの処理能力を有している場合の少なくとも１つの新たな換字ボックス
図１０に示されているとおり、中央演算処理装置２の１６ビットの処理能力に合致するように、一時行列（Ｕ’）の３２ビットが２つの部分へと分割され、次いで２つの新たな換字ボックス（Ｓ１’’〜Ｓ２’’）へと均等に割り当てられ、新たな換字ボックスの新たな換字値として機能する。新たな換字ボックスのそれぞれは、依然として４×１６の換字値を有しており、換字値はそれぞれ１６ビットである。
【００５０】
図１１に示されているとおり、新たな換字ボックス（Ｓ１’’〜Ｓ２’’）のそれぞれは、選択操作の結果として、４組の１６ビットの出力を有している。４組の１６ビットの出力に、適切なビット単位のＡＮＤ演算が加えられ、所望のビット・データが得られる。次いで、得られたビット・データに、適切なビット単位のＯＲ演算が加えられ、変換関数の結果が生成される。
【００５１】
中央演算処理装置２の処理能力が１６ビットであるため、２つの新たな換字ボックスは、新たな換字ボックス（Ｓ１’’〜Ｓ２’’）のそれぞれに４８ビット／２＝２４ビットのデータが割り当てられるように構成されている。これらの２４ビットが、４組の６ビットへと分割され、４組の６ビットが、対応する新たな換字ボックス（Ｓ１’’〜Ｓ２’’）から４つの１６ビットの換字値をそれぞれ得るためのインデックスとして使用される。図１２に、図１１の新たな換字ボックスのうちの１つ（Ｓ１’’）の新たな換字値が示されている。
【００５２】
再び図１１を参照すると、新たな換字ボックス（Ｓ１’’〜Ｓ２’’）のそれぞれから４つの１６ビットの換字値が得られた後、それぞれの１６ビットの換字値について、ビット単位のＡＮＤ演算が実行される。換言すると、それぞれの換字値が、それぞれ４ビットである４つの等しい部位へと分割される。データの第１の４ビット分が、第１の換字値から得られ、データの第２の４ビット分が、第２の換字値から得られ、データの第３の４ビット分が、第３の換字値から得られ、データの第４の４ビット分が、第４の換字値から得られ、このようにして得られた４つの４ビットのデータ部分が、ビット単位のＯＲ演算によって組み合わせられ、１６ビットのデータ出力が生成される。全部で２つの新たな換字ボックス（Ｓ１’’〜Ｓ２’’）が存在するため、全体としての出力は、１６×２＝３２ビットのままである。
【００５３】
３．中央演算処理装置が３２ビットの処理能力を有している場合の新たな換字ボックス
図１３に示されているとおり、中央演算処理装置２の３２ビットの処理能力に合致するように、一時行列（Ｕ’）の３２ビットが、そのまま新たな換字ボックス（Ｓ１’’’）へと割り当てられ、新たな換字ボックスの新たな換字値として機能する。新たな換字ボックス（Ｓ１’’’）は、依然として４×１６の換字値を有しており、換字値はそれぞれ３２ビットである。
【００５４】
図１４に示されているとおり、新たな換字ボックス（Ｓ１’’’）は、選択操作の結果として、８組の３２ビットの出力を有している。８組の３２ビットの出力に、適切なビット単位のＡＮＤ演算が加えられ、所望のビット・データが得られる。次いで、得られたビット・データにビット単位のＯＲ演算が加えられ、変換関数の結果が生成される。
【００５５】
中央演算処理装置２の処理能力が３２ビットであるため、１つの新たな換字ボックスは、新たな換字ボックス（Ｓ１’’’）に４８ビットのデータが割り当てられるように構成されている。これらの４８ビットが、８組の６ビットへと分割され、８組の６ビットが、新たな換字ボックス（Ｓ１’’’）から８つの３２ビットの換字値をそれぞれ得るためのインデックスとして使用される。図１５に、図１４の新たな換字ボックス（Ｓ１’’’）の新たな換字値が示されている。
【００５６】
再び図１４を参照すると、新たな換字ボックス（Ｓ１’’’）から８つの３２ビットの換字値が得られた後、それぞれの８つの３２ビットの換字値について、ビット単位のＡＮＤ演算が実行される。換言すると、それぞれの換字値が、それぞれ４ビットである８つの等しい部位へと分割される。データの第１の４ビット分が、第１の換字値から得られ、データの第２の４ビット分が、第２の換字値から得られ、以下同様にして、データの第７の４ビット分が、第７の換字値から得られ、データの第８の４ビット分が、第８の換字値から得られ、このようにして得られた８つの４ビットのデータ部分が、ビット単位のＯＲ演算によって組み合わせられ、３２ビットのデータ出力が生成される。新たな換字ボックス（Ｓ１’’’）は１つだけであるため、全体としての出力は、３２×１＝３２ビットのままである。
【００５７】
要約すると、中央演算処理装置の演算能力を向上させるための本発明による暗号方法および暗号装置は、中央演算処理装置の処理ビット長および特定のビット転置シーケンスに対応する少なくとも１つの新たな換字ボックスを生成するように設計されている。少なくとも１つの新たな換字ボックスのそれぞれが、処理ビット長に等しいビット長を有する複数の新たな換字値を有している。したがって、４ビットを超える処理能力（例えば、８ビット、１６ビットまたは３２ビット）を有する中央演算処理装置について、その処理能力を完全に利用することができる。
【００５８】
しかしながら、上記はあくまでも本発明の好ましい実施形態にすぎず、本発明の実施の範囲を制限するものと理解してはならない。換言すると、本発明の特許請求の範囲および明細書の内容にもとづく単に均等な変種または変形はすべて、本発明の技術的範囲に包含される。
【産業上の利用可能性】
【００５９】
本発明は、中央演算処理装置の演算能力を向上させるための暗号方法および暗号装置に適用可能である。
【図面の簡単な説明】
【００６０】
【図１】データ暗号化標準（ＤＥＳ）アルゴリズムを実行する装置を説明するシステム・ブロック図である。
【図２】データ暗号化標準（ＤＥＳ）アルゴリズムの暗号化プロセスを説明するフロー図である。
【図３】図２の関数（ｆ）の演算を説明するフロー図である。
【図４】中央演算処理装置の演算能力を向上させるための本発明による暗号装置の好ましい実施形態を説明するシステム・ブロック図である。
【図５】中央演算処理装置の演算能力を向上させる本発明による暗号方法の好ましい実施形態を説明するフロー図である。
【図６】前もってシーケンスを生成することからなる新たな換字ボックスの換字値の構成の原理を説明する概略図である。
【図７】図６において得られたシーケンスを４つの部分へと分割した後で、４つの部分のそれぞれを新たな換字値として機能するように対応する４つの換字ボックスへと均等に割り当てる様子を説明する概略図である。
【図８】中央演算処理装置の処理能力が８ビットである場合について、４つの換字ボックスを構成するステップおよび３２ビットの出力を維持するステップを説明するフロー図である。
【図９】図８の換字ボックスのうちの１つの新たな換字値を含む参照表である。
【図１０】図６において得られたシーケンスを２つの部分へと分割した後で、２つの部分のそれぞれを新たな換字値として機能するように対応する２つの換字ボックスへと均等に割り当てる様子を説明する概略図である。
【図１１】中央演算処理装置の処理能力が１６ビットである場合について、２つの換字ボックスを構成するステップおよび３２ビットの出力を維持するステップを説明するフロー図である。
【図１２】図１１の換字ボックスのうちの１つの新たな換字値を含む参照表である。
【図１３】図６において得られたシーケンスを新たな換字値として機能するように換字ボックスへと割り当てる様子を説明する概略図である。
【図１４】中央演算処理装置の処理能力が３２ビットである場合について、１つの換字ボックスを構成するステップおよび３２ビットの出力を維持するステップを説明するフロー図である。
【図１５】図１４の換字ボックスの新たな換字値を含む参照表である。
【図１】
2010507813.tif 000006
【図２】
2010507813.tif 000007
【図３】
2010507813.tif 000008
【図４】
2010507813.tif 000009
【図５】
2010507813.tif 000010
【図６】
2010507813.tif 000011
【図７】
2010507813.tif 000012
【図８】
2010507813.tif 000013
【図９】
2010507813.tif 000014
【図１０】
2010507813.tif 000015
【図１１】
2010507813.tif 000016
【図１２】
2010507813.tif 000017
【図１３】
2010507813.tif 000018
【図１４】
2010507813.tif 000019
【図１５】
2010507813.tif 000020
【国際調査報告】
2010507813.tif 000021
2010507813.tif 000022
2010507813.tif 000023