(57)【要約】【課題】共通鍵ブロック暗号方式における暗号化及び復号の処理を低消費電力で、かつ、高速に行う。【解決手段】複数ビットの入力データをビット毎の対応規則に基づいて並べ替えて出力する共通鍵ブロック暗号方式の転置処理を行う暗号処理回路であって、前記入力データを受信し、受信した前記複数ビットの入力データを並列出力する出力ポートを有するデータ入力部と、複数ビットのデータが並列入力される入力ポートを有し、前記入力ポートに入力された前記データを出力するデータ出力部と、前記出力ポートと前記入力ポートとを、前記ビット毎の対応規則に基づいて接続する転置部と、を備える。【選択図】  図７
2006215280.tif 000002
【特許請求の範囲】
【請求項１】
複数ビットの入力データをビット毎の対応規則に基づいて並べ替えて出力する共通鍵ブロック暗号方式の転置処理を行う暗号処理回路であって、
前記複数ビットの入力データを受信し、受信した前記複数ビットの入力データを並列出力する出力ポートを有するデータ入力部と、
複数ビットのデータが並列入力される入力ポートを有し、前記入力ポートに入力された前記複数ビットのデータを出力するデータ出力部と、
前記出力ポートと前記入力ポートとを、前記ビット毎の対応規則に基づいて接続する転置部と、
を備えることを特徴とする暗号処理回路。
【請求項２】
請求項１に記載の暗号処理回路であって、
前記共通鍵ブロック暗号方式がＤＥＳであり、
前記入力データが、初期転置（Initial Permutation）における入力データであり、
前記ビット毎の対応規則が、前記初期転置におけるビット毎の対応規則であることを特徴とする暗号処理回路。
【請求項３】
請求項１に記載の暗号処理回路であって、
前記共通鍵ブロック暗号方式がＤＥＳであり、
前記入力データが、最終転置（Inverse Initial Permutation）における入力データであり、
前記ビット毎の対応規則が、前記最終転置におけるビット毎の対応規則であることを特徴とする暗号処理回路。
【請求項４】
請求項１に記載の暗号処理回路であって、
前記共通鍵ブロック暗号方式がＤＥＳであり、
前記入力データが、Ｆ関数の拡大型転置における入力データであり、
前記ビット毎の対応規則が、前記Ｆ関数の拡大型転置におけるビット毎の対応規則であることを特徴とする暗号処理回路。
【請求項５】
請求項１に記載の暗号処理回路であって、
前記共通鍵ブロック暗号方式がＤＥＳであり、
前記入力データが、Ｆ関数のＳ−ＢＯＸから出力されるデータであり、
前記ビット毎の対応規則が、前記Ｆ関数の当該入力データが入力される転置におけるビット毎の対応規則であることを特徴とする暗号処理回路。
【請求項６】
請求項１に記載の暗号処理回路であって、
前記共通鍵ブロック暗号方式がＤＥＳであり、
前記入力データが、縮約型転置（Permuted Choice 1）に入力される共通鍵であり、
前記ビット毎の対応規則が、前記縮約型転置におけるビット毎の対応規則であることを特徴とする暗号処理回路。
【請求項７】
請求項１に記載の暗号処理回路であって、
前記共通鍵ブロック暗号方式がＤＥＳであり、
前記入力データが、縮約型転置（Permuted Choice 2）における入力データであり、
前記ビット毎の対応規則が、前記縮約型転置におけるビット毎の対応規則であることを特徴とする暗号処理回路。
【請求項８】
請求項１に記載の暗号処理回路であって、
前記共通鍵ブロック暗号方式がＤＥＳであり、
前記入力データが、共通鍵を縮約型転置（Permuted Choice 1）により転置して得られたデータであり、
前記ビット毎の対応規則が、当該入力データと、縮約型転置（Permuted Choice 2）に入力されるデータと、のビット毎の対応規則であることを特徴とする暗号処理回路。
【請求項９】
請求項１に記載の暗号処理回路であって、
前記ビット毎の対応規則が異なる前記転置部を複数備え、
前記複数の転置部のうちの何れの転置部を用いるかを示す選択データを受信し、前記データ入力部から出力される前記入力データを前記選択データによって示される前記転置部に入力する選択部を更に備えることを特徴とする暗号処理回路。
【請求項１０】
請求項９に記載の暗号処理回路であって、
前記共通鍵ブロック暗号方式がＤＥＳであり、
前記複数の転置部の前記ビット毎の対応規則が、夫々、
初期転置におけるビット毎の対応規則、
最終転置におけるビット毎の対応規則、
Ｆ関数の拡大型転置におけるビット毎の対応規則、
Ｆ関数のＳ−ＢＯＸから出力されるデータが入力される転置におけるビット毎の対応規則、
縮約型転置（Permuted Choice 1）におけるビット毎の対応規則、
縮約型転置（Permuted Choice 2）におけるビット毎の対応規則、
前記縮約型転置（Permuted Choice 1）から出力されるデータと、前記縮約型転置（Permuted Choice 2）に入力されるデータと、のビット毎の対応規則  の何れかであることを特徴とする暗号処理回路。
【請求項１１】
請求項９に記載の暗号処理回路であって、
前記データ入力部から並列出力される前記複数ビットの入力データを対応規則に基づいて変換して前記データ出力部の前記入力ポートに並列出力する論理回路である換字部を更に備え、
前記選択データは、前記複数の転置部または前記換字部のうちの何れを用いるかを示すデータであり、
前記選択部は、前記データ入力部から出力される前記入力データを前記選択データによって示される前記転置部または前記換字部に入力すること、
を特徴とする暗号処理回路。
【請求項１２】
請求項１１に記載の暗号処理回路であって、
前記共通鍵ブロック暗号方式がＤＥＳであり、
前記複数の転置部の前記ビット毎の対応規則が、夫々、
初期転置におけるビット毎の対応規則、
最終転置におけるビット毎の対応規則、
Ｆ関数の拡大型転置におけるビット毎の対応規則、
Ｆ関数のＳ−ＢＯＸから出力されるデータが入力される転置におけるビット毎の対応規則、
縮約型転置（Permuted Choice 1）におけるビット毎の対応規則、
縮約型転置（Permuted Choice 2）におけるビット毎の対応規則、
前記縮約型転置（Permuted Choice 1）から出力されるデータと、前記縮約型転置（Permuted Choice 2）に入力されるデータと、のビット毎の対応規則  の何れかであり、
前記換字部の前記対応規則が、前記Ｓ−ＢＯＸに入力されるデータと前記Ｓ−ＢＯＸから出力されるデータとの対応規則であることを特徴とする暗号処理回路。
【請求項１３】
請求項９〜１２の何れか一項に記載の暗号処理回路であって、
前記選択部がマルチプレクサであることを特徴とする暗号処理回路。
【請求項１４】
複数ビットの入力データを対応規則に基づいて変換して出力する共通鍵ブロック暗号方式の換字処理を行う暗号処理回路であって、
前記複数ビットの入力データを受信し、受信した前記複数ビットの入力データを並列出力する出力ポートを有するデータ入力部と、
前記データ入力部から並列出力される前記複数ビットの入力データを前記対応規則に基づいて変換して出力する論理回路である換字部と、
前記換字部から出力される複数ビットのデータが並列入力される入力ポートを有し、前記入力ポートに入力された前記複数ビットのデータを出力するデータ出力部と、
を備えることを特徴とする暗号処理回路。
【請求項１５】
請求項１４に記載の暗号処理回路であって、
前記共通鍵ブロック暗号方式がＤＥＳであり
前記入力データが、Ｆ関数のＳ−ＢＯＸに入力されるデータであり、
前記対応規則が、前記入力データと前記Ｓ−ＢＯＸから出力されるデータとの対応規則であることを特徴とする暗号処理回路。
【請求項１６】
請求項１〜１５の何れか一項に記載の暗号処理回路であって、
前記データ入力部が複数のＤ型フリップフロップで構成され、前記出力ポートが当該複数のＤ型フリップフロップの出力端子であり、
前記データ出力部がトライステートバッファであることを特徴とする暗号処理回路。
【請求項１７】
請求項１〜１５の何れか一項に記載の暗号処理回路であって、
前記データ入力部への書き込みアドレスと前記データ出力部からの読み出しアドレスとが同一であることを特徴とする暗号処理回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、共通鍵ブロック暗号方式に用いられる暗号処理回路に関する。
【背景技術】
【０００２】
近年、キーレスエントリーシステムのように、無線等の通信手段によりデータを送受信することが広く行われている。キーレスエントリーシステムの場合、第三者にデータが不正に解読されることのないよう、データは暗号化された上で送受信される。
【０００３】
データの暗号化方式は多種多様であるが、ＤＥＳ（Data Encryption Standard）やＡＥＳ（Advanced Encryption Standard）等の標準規格を用いることが望ましい。これらの標準規格の暗号化方式の場合、不正に解読されるリスクの算出が容易であり、不正に解読された場合の保険料をこのリスクに基づいて算定することができるからである。逆に、標準規格以外の独自規格等の暗号化方式を用いる場合、不正に解読されるリスクの算出が難しく、概して、保険料が高くなることが多い。
【０００４】
このようなＤＥＳやＡＥＳ等の共通鍵ブロック暗号化方式では、データをいくつかのブロックに分割し、そのブロックごとに転置や換字等の処理が行われる。この転置や換字の処理は、入力データと出力データとの対応を示す対応表をメモリに記憶しておき、与えられた入力データに対応する出力データを対応表に基づいて求めることにより実現することができる（例えば、特許文献１）。
【特許文献１】特開２００４−１２０３０７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、転置や換字をソフトウェアで実現する場合、メモリに記憶された対応表の参照等を繰り返し行うため、処理負荷が高く、消費電力が大きい。そのため、キーレスエントリーシステムに、転置や換字がソフトウェアで実現された共通鍵ブロック暗号方式を採用すると、利用者が施錠・解錠の操作を行う子機の電池消耗が早くなってしまうという問題があった。また、キーレスエントリーシステムでは、施錠や解錠等の操作に対するレスポンスを良くするため、暗号化及び復号の処理速度を向上させる必要がある。
【０００６】
本発明は上記課題を鑑みてなされたものであり、共通鍵ブロック暗号方式における暗号化及び復号の処理を低消費電力で、かつ、高速に行う暗号処理回路を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明の暗号処理回路は、複数ビットの入力データをビット毎の対応規則に基づいて並べ替えて出力する共通鍵ブロック暗号方式の転置処理を行う暗号処理回路であって、前記複数ビットの入力データを受信し、受信した前記複数ビットの入力データを並列出力する出力ポートを有するデータ入力部と、複数ビットのデータが並列入力される入力ポートを有し、前記入力ポートに入力された前記複数ビットのデータを出力するデータ出力部と、前記出力ポートと前記入力ポートとを、前記ビット毎の対応規則に基づいて接続する転置部と、を備えることとする。
【０００８】
また、前記共通鍵ブロック暗号方式がＤＥＳであり、前記入力データが、初期転置（Initial Permutation）における入力データであり、前記ビット毎の対応規則が、前記初期転置におけるビット毎の対応規則であることとすることができる。
【０００９】
また、前記入力データが、ＤＥＳの最終転置（Inverse Initial Permutation）における入力データであり、前記ビット毎の対応規則が、前記最終転置におけるビット毎の対応規則であることとすることができる。
【００１０】
また、前記入力データが、ＤＥＳのＦ関数の拡大型転置における入力データであり、前記ビット毎の対応規則が、前記Ｆ関数の拡大型転置におけるビット毎の対応規則であることとすることができる。
【００１１】
また、前記入力データが、ＤＥＳのＦ関数のＳ−ＢＯＸから出力されるデータであり、前記ビット毎の対応規則が、前記Ｆ関数の当該入力データが入力される転置におけるビット毎の対応規則であることとすることができる。
【００１２】
また、前記入力データが、ＤＥＳの縮約型転置（Permuted Choice 1）に入力される共通鍵であり、前記ビット毎の対応規則が、前記縮約型転置におけるビット毎の対応規則であることとすることができる。
【００１３】
また、前記入力データが、ＤＥＳの縮約型転置（Permuted Choice 2）における入力データであり、前記ビット毎の対応規則が、前記縮約型転置におけるビット毎の対応規則であることとすることができる。
【００１４】
また、前記入力データが、ＤＥＳの共通鍵を縮約型転置（Permuted Choice 1）により転置して得られたデータであり、前記ビット毎の対応規則が、当該入力データと、縮約型転置（Permuted Choice 2）に入力されるデータと、のビット毎の対応規則であることとすることができる。
【００１５】
また、前記ビット毎の対応規則が異なる前記転置部を複数備え、前記複数の転置部のうちの何れの転置部を用いるかを示す選択データを受信し、前記データ入力部から出力される前記入力データを前記選択データによって示される前記転置部に入力する選択部を更に備えることとしてもよい。
【００１６】
また、前記転置部を複数備える場合において、前記共通鍵ブロック暗号方式がＤＥＳであり、前記複数の転置部の前記ビット毎の対応規則が、夫々、初期転置におけるビット毎の対応規則、最終転置におけるビット毎の対応規則、Ｆ関数の拡大型転置におけるビット毎の対応規則、Ｆ関数のＳ−ＢＯＸから出力されるデータが入力される転置におけるビット毎の対応規則、縮約型転置（Permuted Choice 1）におけるビット毎の対応規則、縮約型転置（Permuted Choice 2）におけるビット毎の対応規則、前記縮約型転置（Permuted Choice 1）から出力されるデータと、前記縮約型転置（Permuted Choice 2）に入力されるデータと、のビット毎の対応規則の何れかであることとすることができる。
【００１７】
また、前記転置部を複数備える場合において、前記データ入力部から並列出力される前記複数ビットの入力データを対応規則に基づいて変換して前記データ出力部の前記入力ポートに並列出力する論理回路である換字部を更に備え、前記選択データは、前記複数の転置部または前記換字部のうちの何れを用いるかを示すデータであり、前記選択部は、前記データ入力部から出力される前記入力データを前記選択データによって示される前記転置部または前記換字部に入力することとしてもよい。
【００１８】
また、前記複数の転置部と前記換字部とを備える場合において、前記共通鍵ブロック暗号方式がＤＥＳであり、前記複数の転置部の前記ビット毎の対応規則が、夫々、初期転置におけるビット毎の対応規則、最終転置におけるビット毎の対応規則、Ｆ関数の拡大型転置におけるビット毎の対応規則、Ｆ関数のＳ−ＢＯＸから出力されるデータが入力される転置におけるビット毎の対応規則、縮約型転置（Permuted Choice 1）におけるビット毎の対応規則、縮約型転置（Permuted Choice 2）におけるビット毎の対応規則、前記縮約型転置（Permuted Choice 1）から出力されるデータと、前記縮約型転置（Permuted Choice 2）に入力されるデータと、のビット毎の対応規則の何れかであり、前記換字部の前記対応規則が、前記Ｓ−ＢＯＸに入力されるデータと前記Ｓ−ＢＯＸから出力されるデータとの対応規則であることとすることができる。
【００１９】
また、前記選択部がマルチプレクサであることとすることができる。
【００２０】
また、本発明の暗号処理回路は、複数ビットの入力データを対応規則に基づいて変換して出力する共通鍵ブロック暗号方式の換字処理を行う暗号処理回路であって、前記複数ビットの入力データを受信し、受信した前記複数ビットの入力データを並列出力する出力ポートを有するデータ入力部と、前記データ入力部から並列出力される前記複数ビットの入力データを前記対応規則に基づいて変換して出力する論理回路である換字部と、前記換字部から出力される複数ビットのデータが並列入力される入力ポートを有し、前記入力ポートに入力された前記複数ビットのデータを出力するデータ出力部と、を備えることとする。
【００２１】
また、前記換字処理を行う暗号処理回路において、前記共通鍵ブロック暗号方式がＤＥＳであり、前記入力データが、Ｆ関数のＳ−ＢＯＸに入力されるデータであり、前記対応規則が、前記入力データと前記Ｓ−ＢＯＸから出力されるデータとの対応規則であることとしてもよい。
【００２２】
また、前記データ入力部が複数のＤ型フリップフロップで構成され、前記出力ポートが当該複数のＤ型フリップフロップの出力端子であり、前記データ出力部がトライステートバッファであることとすることができる。
【００２３】
また、前記データ入力部への書き込みアドレスと前記データ出力部からの読み出しアドレスとが同一であることとすることができる。
【発明の効果】
【００２４】
共通鍵ブロック暗号方式における暗号化及び復号の処理を低消費電力で、かつ、高速に行うことができる。
【発明を実施するための最良の形態】
【００２５】
＝＝全体構成＝＝
図１は、本発明の暗号処理回路を用いる一実施形態である自動車の錠の施錠・解錠を行うキーレスエントリーシステム１の全体構成を示す図である。キーレスエントリーシステム１は、携帯型の子機２と自動車等に搭載される親機３とを含んで構成されている。子機２は、例えば、自動車のドアロックやステアリングロックの鍵穴に差し込むキーのハンドル部等に設けられている。また、親機３は、自動車側に設けられている。
【００２６】
子機２は、電池１１、操作スイッチ１２、データ処理回路１３、及び送受信回路１４を備えている。電池１１は、子機２の各部の動作に必要な電力を供給するためのものである。操作スイッチ１２は、利用者からの施錠・解錠の指示を受け付けるスイッチである。データ処理回路１３は、施錠・解錠の際に必要となる認証用のデータの生成等を行う。送受信回路１４は、データ処理回路１３から出力されるデジタルデータをアナログデータに変換し、これを増幅して電磁波として送出する回路である。また、送受信回路１４は、親機３から送出された電磁波を受信し、これをデジタルデータに変換してデータ処理回路１３に入力することもできる。なお、電磁波としては、電波や赤外線が用いられる。
【００２７】
親機３は、データ処理回路２１、送受信回路２２、及び駆動回路２３を備えている。データ処理回路２１は、子機２から受信する認証用のデータに基づいた認証処理等を行う。送受信回路２２は、子機２から送出された電磁波を受信し、これをデジタルデータに変換してデータ処理回路２２に入力する回路である。また、送受信回路２２は、データ処理回路２１から出力されるデジタルデータをアナログデータに変換し、これを増幅して電磁波として送出することもできる。駆動回路２３は、自動車の錠を施錠・解錠するロック機構を作動させるアクチュエータ２４に駆動信号を送信する回路である。なお、親機２の各部２１〜２３には、自動車のバッテリ２５から電力が供給されている。
【００２８】
＝＝データ処理回路の構成＝＝
図２は、データ処理回路１３の構成を示す図である。データ処理回路１３は、ＣＰＵ５１Ａ、ＲＡＭ（Random Access Memory）５２Ａ、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）５３Ａ、乱数生成回路５４Ａ、暗号処理回路５５Ａ、及び入出力ポート５６Ａを備えている。そして、各部５１Ａ〜５６Ａはバス５７Ａにより互いに通信可能に接続されている。
【００２９】
ＣＰＵ５１Ａは、データ処理回路１３の全体を制御するものである。ＲＡＭ５２Ａには、ＣＰＵ５１Ａが使用する作業用データ等が記憶される。ＥＥＰＲＯＭ５３Ａは書き換え可能な不揮発性メモリであり、プログラムや保存用のデータ等が記憶されている。乱数生成回路５４Ａは、暗号化の処理において用いられる疑似乱数又は物理乱数を生成する回路である。暗号処理回路５５Ａは、共通鍵ブロック暗号方式における転置又は換字の処理を行う回路である。入出力ポート５６Ａは、データ処理回路１３の外部にある操作スイッチ１２や送受信回路１４等とデータの送受信を行うためのインタフェースである。
【００３０】
なお、本実施形態では、共通鍵ブロック暗号方式としてＤＥＳ（Data Encryption Standard）を用いることとする。このようなデータ処理回路１３では、プログラムの実行や暗号処理回路５５Ａの制御等により、ＤＥＳの暗号化又は復号の処理が行われる。なお、データ処理回路２１も同様の構成であり、ＣＰＵ５１Ｂ、ＲＡＭ５２Ｂ、ＥＥＰＲＯＭ５３Ｂ、乱数生成回路５４Ｂ、暗号処理回路５５Ｂ、入出力ポート５６Ｂ、及び各部５１Ｂ〜５６Ｂを互いに通信可能に接続するバス５７Ｂを備えている。
【００３１】
＝＝通信手順＝＝
図３は、キーレスエントリーシステム１の子機２と親機３との間における通信手順を示すフローチャートである。まず、子機２の操作スイッチ１２の操作等により送信処理が起動される（Ｓ３０１）。子機２のデータ処理回路１３は、ＥＥＰＲＯＭ５３Ａに記憶されている車番（車体番号）を親機３に送信する（Ｓ３０２）。親機３のデータ処理回路２１は、子機２から車番が送信されてくるのを待機しており（Ｓ３０３）、子機２から送信されてくる車番を受信すると、当該車番をＥＥＰＲＯＭ５３Ｂに記憶されている車番と比較する（Ｓ３０４）。
【００３２】
車番が一致しない場合（Ｓ３０４：ＮＧ）、親機３のデータ処理回路２１は、別の自動車の車番が送信されてきたと判断し、受信待機処理に戻る（Ｓ３０３）。車番が一致すると（Ｓ３０４：ＯＫ）、データ処理回路２１は、乱数生成回路５４Ｂを用いて６４ビットの一時鍵Ｒ０を生成する（Ｓ３０５）。そして、データ処理回路２１は、この一時鍵Ｒ０を、ＥＥＰＲＯＭ５３Ｂに記憶されている共通鍵Ｋを用いてＤＥＳで暗号化して子機２に送信する（Ｓ３０６）。
【００３３】
子機２のデータ処理回路１３は、親機３から送信されてくる暗号化された一時鍵Ｒ０を受信すると、ＥＥＰＲＯＭ５３Ａに記憶されている共通鍵Ｋを用いて一時鍵Ｒ０を復号する（Ｓ３０７）。続いて、データ処理回路１３は、乱数生成回路５４Ａを用いて６４ビットの一時鍵Ｒ１を生成する（Ｓ３０８）。そして、データ処理回路１３は、この一時鍵Ｒ１を親機３から受信した一時鍵Ｒ０を用いてＤＥＳで暗号化して親機３に送信する（Ｓ３０９）。親機３のデータ処理回路２１は、子機２から送信されてくる暗号化された一時鍵Ｒ１を受信すると、一時鍵Ｒ０を用いて一時鍵Ｒ１を復号する（Ｓ３１０）。
【００３４】
その後、子機２のデータ処理回路１３は、施錠・解錠指示等の情報データを、一時鍵Ｒ１を用いてＤＥＳで暗号化して親機３に送信する（Ｓ３１１）。親機３のデータ処理回路２１は、子機２から送信されてくる暗号化された情報データを受信すると、一時鍵Ｒ１を用いて情報データを復号する（Ｓ３１２）。そして、データ処理回路２１は、情報データに基づいて、例えば、駆動回路２３を介してアクチュエータ２４に施錠・解錠指示信号を送信する。
【００３５】
このように、キーレスエントリーシステム１においては、子機２及び親機３において乱数生成回路５４Ａ，５４Ｂを用いて一時鍵を生成し、ＤＥＳによる暗号化及び復号の処理を繰り返し行うことにより、セキュリティ強度を高めている。
【００３６】
＝＝ＤＥＳの暗号化・復号の処理＝＝
図４は、ＤＥＳの暗号化の処理の流れを示すフローチャートである。ＤＥＳの暗号化処理は、第１段から第１６段までの処理で構成されている。まず、暗号化の対象となる６４ビットの平文を初期転置（Initial Permutation）により並べ替え、第１段の入力データとなる左側の３２ビット（Ｌ０）及び右側の３２ビット（Ｒ０）を生成する（Ｓ４０１）。そして、第２段の入力データとなるＬ１及びＲ１は次式（１，２）により求められる。
【数１】
2006215280.tif 000003
【００３７】
ここで、Ｋ１は６４ビットの共通鍵から生成された鍵である。まず、６４ビットの共通鍵を縮約型転置（Permuted Choice 1：以後「ＰＣ１転置」と称する）により５６ビットに変換し、左側の２８ビット（Ｃ０）及び右側の２８ビット（Ｄ０）を生成する（Ｓ４０２）。さらに、Ｃ０及びＤ０を左ローテートシフトして、Ｃ１及びＤ１を生成する（Ｓ４０３，Ｓ４０４）。そして、Ｃ１及びＤ１を縮約型転置（Permuted Choice 2：以後「ＰＣ２転置」と称する）により４８ビットに変換することにより、Ｋ１が得られる（Ｓ４０５）。また、Ｃ１及びＤ１をさらに左ローテートシフトし、ＰＣ２転置を行うことにより、第２段以降で用いられる鍵Ｋ２〜Ｋ１６を生成することができる。
【００３８】
このようにして求められたＬ１及びＲ１が第２段の入力データとなり、第１６段まで繰り返し処理が実行される。つまり、Ｌｎ及びＲｎは、次式（３，４）により求められる。
【数２】
2006215280.tif 000004
【００３９】
そして、第１６段の出力データであるＬ１６及びＲ１６に対して最終転置（Inverse Initial Permutation）を行うことにより、平文を暗号化した暗号文を得ることができる（Ｓ４０６）。
【００４０】
図５は、Ｆ関数（Ｆ（Ｒ，Ｋ））の処理の流れを示す図である。まず、３２ビットのデータＲを拡大型転置により４８ビットに変換し、Ｒ’を生成する（Ｓ５０１）。次に、Ｒ’と４８ビットの鍵Ｋとをビット毎に排他的論理和することにより得られる４８ビットのデータを６ビットずつに分割し、Ｓ１〜Ｓ８のＳ−ＢＯＸに入力する。そして、各Ｓ−ＢＯＸから出力される４ビットを合わせて構成される３２ビットのデータを転置（以後「Ｐ転置」と称する）により並べ替えたデータがＦ関数の出力データとなる（Ｓ５０２）。
【００４１】
図６は、ＤＥＳの復号の処理の流れを示すフローチャートである。ＤＥＳの復号処理は、暗号化処理と同様に第１段から第１６のまでの処理で構成されている。まず、復号の対象となる６４ビットの暗号文を初期転置により並べ替え、第１段の入力データとなる左側の３２ビット（Ｒ１６）及び右側の３２ビット（Ｌ１６）を生成する（Ｓ６０１）。そして、第２段の入力データとなるＲ１５及びＬ１５は次式（５）及び（６）により求められる。
【数３】
2006215280.tif 000005
【００４２】
ここで、Ｋ１６は、６４ビットの共通鍵から生成された鍵である。まず、６４ビットの共通鍵をＰＣ１転置により５６ビットに変換し、左側の２８ビット（Ｃ１６）及び右側の２８ビット（Ｄ１６）を生成する（Ｓ６０２）。そして、Ｃ１６及びＤ１６をＰＣ２転置により４８ビットに変換することにより、Ｋ１６が得られる（Ｓ６０３）。また、Ｃ１６及びＤ１６を右ローテートシフトし、ＰＣ２転置を行うことにより、第２段以降で用いられる鍵Ｋ１５〜Ｋ１を生成することができる。
【００４３】
このようにして求められたＲ１５及びＬ１５が第２段の入力データとなり、第１６段まで繰り返し処理が実行される。つまり、ＲｎおよびＬｎは、次式（７）及び（８）により求められることとなる。
【数４】
2006215280.tif 000006
【００４４】
そして、第１６段の出力データであるＲ０及びＬ０に対して最終転置を行うことにより、暗号文を復号した平文を得ることができる（Ｓ６０４）。なお、復号処理におけるＬｎ、Ｒｎ、Ｃｎ、Ｄｎ、Ｋｎは、暗号化処理におけるＬｎ、Ｒｎ、Ｃｎ、Ｄｎ、Ｋｎと同一のものである。また、Ｃ０＝Ｃ１６、Ｄ０＝Ｄ１６である。
【００４５】
＝＝暗号処理回路の構成＝＝
本実施形態では、図４〜図６で説明した暗号化及び復号の処理における転置・換字処理が暗号処理回路５５Ａ，５５Ｂを用いて実現されている。暗号処理回路５５Ａ及び暗号処理回路５５Ｂは同様の構成であるため、以後、暗号処理回路５５Ａについて説明する。図７は、暗号処理回路５５Ａの構成を示す図である。暗号処理回路５５Ａは、入力レジスタ（データ入力部）６１、転置・換字部６２、出力バッファ（データ出力部）６３、選択レジスタ６４、マルチプレクサ６５，６６、及びアドレスデコーダ６７を備えている。
【００４６】
入力レジスタ６１は、複数のＤ型フリップフロップ（以後「Ｄ−ＦＦ」と称する）を用いて構成された６４ビットのレジスタであり、Ｄ−ＦＦの入力端子Ｄがバス５７Ａのデータバスに接続され、Ｄ−ＦＦの出力端子Ｑ（出力ポート）がマルチプレクサ６５を介して転置・換字部６２に接続されている。また、入力レジスタ６１を構成するＤ−ＦＦのクロック入力端子には、書き込み信号（ＷＲＩＴＥ）が入力される。なお、例えば、データバスが８ビットである場合には、入力レジスタ６１は、８ビットのレジスタを８つ用いた構成とすることができる。
【００４７】
転置・換字部６２は、初期転置部７１、最終転置部７２、拡大型転置部７３、Ｓ−ＢＯＸ部７４、Ｐ転置部７５、ＰＣ１転置部７６、ローテートシフト部７７、及びＰＣ２転置部７８の８つのモジュールを備えている。転置・換字部６２の各モジュール７１〜７８は、入力レジスタ６１から入力されるデータに対して転置又は換字処理を行い、マルチプレクサ６６を介して出力バッファ６３に出力する。
【００４８】
なお、Ｓ−ＢＯＸ部７４が本発明の換字部に該当し、その他の各部７１，７２，７３，７５，７６，７７，７８が本発明の転置部に該当する。また、選択レジスタ６４、マルチプレクサ６５、及びマルチプレクサ６６が本発明の選択部に該当する。
【００４９】
出力バッファ６３は、６４ビットのトライステートバッファであり、その６４ビットの入力端子（入力ポート）にマルチプレクサ６６を介して転置・換字部６２が接続されており、出力端子がバス５７Ａのデータバスに接続されている。なお、例えば、データバスが８ビットである場合には、出力バッファ６３は、８ビットのトライステートバッファを８つ用いた構成とすることができる。
【００５０】
選択レジスタ６４は、複数のＤ−ＦＦを用いて構成された、例えば８ビットのレジスタであり、Ｄ−ＦＦの入力端子Ｄがバス５７Ａのデータバスに接続され、Ｄ−ＦＦの出力端子Ｑがマルチプレクサ６５，６６に接続されている。また、選択レジスタ６４を構成するＤ−ＦＦのクロック入力端子には、書き込み信号（ＷＲＩＴＥ）が入力される。選択レジスタ６４には、転置・換字部６２のうちの何れのモジュールを選択するかを示す選択データが書き込まれる。マルチプレクサ６５は、選択レジスタ６４から出力される選択データに基づいて、入力レジスタ６１から出力されるデータを該当のモジュールに出力する。また、マルチプレクサ６６は、選択レジスタ６４から出力される選択データに基づいて、該当のモジュールから出力されるデータを出力バッファ６３に出力する。
【００５１】
アドレスデコーダ６７は、バス５７Ａのアドレスバスに接続されており、アドレスバスで指定されたアドレスに該当する回路を選択する。なお、本実施形態においては、入力レジスタ６１への書き込みアドレスと、出力バッファ６３からの読み出しアドレスは同一であることとする。
【００５２】
データ処理回路１３において、暗号処理回路５５Ａを用いて転置又は換字処理を行う流れについて説明する。まず、ＣＰＵ５１Ａは、アドレスバスに選択レジスタ６４のアドレスを出力し、データバスに転置・換字部６２の所望のモジュールを示す選択データを出力し、書き込み信号（ＷＲＩＴＥ）を出力することにより、選択レジスタに選択データを書き込む。続いて、ＣＰＵ５１Ａは、アドレスバスに入力レジスタ６１のアドレスを出力し、データバスに転置又は換字処理の入力データを出力し、書き込み信号（ＷＲＩＴＥ）を出力することにより、入力レジスタ６１に当該入力データを書き込む。これにより、入力レジスタ６１に入力されたデータがマルチプレクサ６５を介して所望のモジュールに入力され、転置又は換字処理の結果がマルチプレクサ６６を介して出力バッファ６３に出力される。
【００５３】
その後、ＣＰＵ５１Ａは、入力レジスタ６１と同一のアドレスである出力バッファ６３のアドレスをアドレスバスに出力し、出力バッファ６３に読み出し信号（ＲＥＡＤ）を入力する。これにより、入力データに対して転置又は換字処理を行ったデータが出力バッファ６３からデータバスに出力される。このように、ＣＰＵ５１Ａは、入力レジスタ６１にデータを書き込み、出力バッファ６３からデータを読み出すだけで、転置又は換字処理を行うことができる。
【００５４】
＝＝転置・換字部の構成＝＝
次に、転置・換字部６２の各モジュール７１〜７８の構成について説明する。
【００５５】
（１）初期転置
図８は、初期転置におけるビット毎の対応規則９１を示す図である。この対応規則９１は、例えば、初期転置部７１に入力される６４ビットの入力データの５８ビット目が出力データの１ビット目となり、入力データの５０ビット目が出力データの２ビット目となるというような、６４ビットの入力データと６４ビットの出力データとのビット毎の対応を示すものである。
【００５６】
図９は、初期転置部７１の構成を示す図である。図に示すように、初期転置部７１の入力側と出力側とが、対応規則９１に基づいて結線されている。例えば、入力側の５８ビット目が出力側の１ビット目となるように結線され、入力側の５０ビット目が出力側の２ビット目となるように結線されている。つまり、初期転置部７１は、マルチプレクサ６５，６６を介して、入力レジスタ６１の出力端子Ｑと出力バッファ６３の入力端子とを対応規則９１に基づいて接続していることとなる。
【００５７】
（２）最終転置
図１０は、最終転置におけるビット毎の対応規則９２を示す図である。この対応規則９２は、例えば、最終転置部７２に入力される６４ビットの入力データの４０ビット目が出力データの１ビット目となり、入力データの８ビット目が出力データの２ビット目となるというような、６４ビットの入力データと６４ビットの出力データとのビット毎の対応を示すものである。
【００５８】
図１１は、最終転置部７２の構成を示す図である。図に示すように、最終転置部７２の入力側と出力側とが、対応規則９２に基づいて結線されている。例えば、入力側の４０ビット目が出力側の１ビット目となるように結線され、入力側の８ビット目が出力側の２ビット目となるように結線されている。つまり、最終転置部７２は、マルチプレクサ６５，６６を介して、入力レジスタ６１の出力端子Ｑと出力バッファ６３の入力端子とを対応規則９２に基づいて接続していることとなる。
【００５９】
（３）拡大型転置
図１２は、拡大型転置におけるビット毎の対応規則９３を示す図である。この対応規則９３は、例えば、拡大型転置部７３に入力される３２ビットの入力データの３２ビット目が出力データの１ビット目となり、入力データの１ビット目が出力データの２ビット目となるというような、３２ビットの入力データと４８ビットの出力データとのビット毎の対応を示すものである。なお、拡大型転置においては、３２ビットの入力データを４８ビットの出力データに拡大するため、入力データのうちの１６ビットは、出力データの２ビットに出力される。例えば、入力データの１ビット目は、出力データの２ビット目及び４８ビット目の２ビットに出力される。
【００６０】
図１３は、拡大型転置部７３の構成を示す図である。図に示すように、拡大型転置部７３の入力側と出力側とが、対応規則９３に基づいて結線されている。例えば、入力側の３２ビット目が出力側の１ビット目となるように結線され、入力側の１ビット目が出力側の２ビット目となるように結線されている。つまり、拡大型転置部７３は、マルチプレクサ６５，６６を介して、入力レジスタ６１の出力端子Ｑと出力バッファ６３の入力端子とを対応規則９３に基づいて接続していることとなる。
【００６１】
（４）Ｓ−ＢＯＸ
図１４は、Ｓ−ＢＯＸ部７４の構成を示す図である。図に示すように、Ｓ−ＢＯＸ部７４は、Ｓ１〜Ｓ８で構成されており、４８ビットの入力データの先頭から６ビットごとに分割したデータがＳ１〜Ｓ８に入力される。そして、例えば、Ｓ１においては、６ビットの入力データが対応規則に基づいて４ビットに変換されて出力される。同様に、Ｓ２〜Ｓ８においても、６ビットの入力データが夫々の対応規則に基づいて４ビットに変換されて出力される。
【００６２】
図１５は、Ｓ−ＢＯＸ（Ｓ１）における対応規則９４を示す図である。この対応規則９４では、Ｓ１に入力される６ビットの入力データの１ビット目と６ビット目（Ｂ１・Ｂ６）が行となり、入力データの２ビット目から５ビット目（Ｂ２〜Ｂ５）が列となり、その交差する箇所にあるデータが出力データとなる。例えば、入力データ“１１００００”がＳ１に入力されたとする。この場合、Ｂ１・Ｂ６は“１０”となり、３行目が選択される。そして、Ｂ２〜Ｂ５は“１０００”となり、これを１０進で表した８列目が選択される。これにより、３行目の８列目にある１０進の“１５”を２進で表した“１１１１”が出力される。同様に、Ｓ２〜Ｓ８に対しても対応規則が定められている。
【００６３】
図１６は、Ｓ−ＢＯＸ部７４のＳ１の構成を示す図である。図に示すように、Ｓ１は、セレクタ９５及び置換回路９６を備えている。また、Ｓ１〜Ｓ８共通で用いられる選択レジスタ９７が設けられている。セレクタ９５には、Ｂ１・Ｂ６が入力され、その入力に従い、対応規則９４のどの行が選択されるかを示す信号を置換回路９６に出力する。置換回路９６には、Ｂ２〜Ｂ５を対応規則９４の各行の値に変換する論理回路が構成されており、Ｂ２〜Ｂ５を、セレクタ９５からの信号に基づいて変換して出力する。
【００６４】
選択レジスタ９７は、複数のＤ−ＦＦを用いて構成された、例えば８ビットのレジスタであり、Ｄ−ＦＦの入力端子Ｄがバス５７Ａのデータバスに接続され、Ｄ−ＦＦの出力端子Ｑがセレクタ９５に接続されている。そして、セレクタ９５は、選択レジスタ９７から出力される選択データに従って、Ｂ１とＢ６とを入れ替えることができる。例えば、セレクタ９５は、選択レジスタ９７から選択データ“０”が出力されている場合、Ｂ１・Ｂ６により対応規則９４の行を選択する信号を置換回路９６に出力し、選択レジスタ９７から選択データ“１”が出力されている場合、Ｂ６・Ｂ１により対応規則９４の行を選択する信号を置換回路９６に出力するようにすることができる。
【００６５】
つまり、前述した入力データ“１１００００”の場合、選択レジスタ９７から選択データ“１”が出力されている場合、Ｂ６・Ｂ１は“０１”となり２行目が選択され、２行目の８列目にある１０進の“１０”を２進で表した“１０１０”が出力される。このように、選択レジスタ９７に選択データを書き込むことにより、Ｓ１の対応規則９４を変化させることができる。
【００６６】
また、Ｓ２〜Ｓ８についても、Ｓ１と同様に構成されている。つまり、Ｓ１〜Ｓ８で構成されるＳ−ＢＯＸ部７４は、マルチプレクサ６５，６６を介して、入力レジスタ６１の出力端子Ｑから並列出力される入力データをＳ１〜Ｓ８の対応規則に基づいて変換して出力バッファ６３の入力端子に出力する論理回路であると言うことができる。
【００６７】
なお、本実施形態においては、最上位と最下位の２ビットをセレクタ９５に入力し、残りの４ビットを置換回路９６に入力する構成としたが、Ｓ−ＢＯＸ部７４の構成はこれに限られず、入力される６ビット（Ｂ１〜Ｂ６）から対応規則に基づいて４ビットを生成する論理回路であればよい。この場合においても、選択レジスタ９７から出力される選択データに従って、入力される６ビット（Ｂ１〜Ｂ６）の並びを入れ替えるように構成することができる。
【００６８】
（５）Ｐ転置
図１７は、Ｐ転置におけるビット毎の対応規則１０１を示す図である。この対応規則１０１は、例えば、最終転置部７５に入力される３２ビットの入力データの１６ビット目が出力データの１ビット目となり、入力データの７ビット目が出力データの２ビット目となるというような、３２ビットの入力データと３２ビットの出力データとのビット毎の対応を示すものである。
【００６９】
図１８は、Ｐ転置部７５の構成を示す図である。図に示すように、Ｐ転置部７５の入力側と出力側とが、対応規則１０１に基づいて結線されている。例えば、入力側の１６ビット目が出力側の１ビット目となるように結線され、入力側の７ビット目が出力側の２ビット目となるように結線されている。つまり、Ｐ転置部７５は、マルチプレクサ６５，６６を介して、入力レジスタ６１の出力端子Ｑと出力バッファ６３の入力端子とを対応規則１０１に基づいて接続していることとなる。
【００７０】
（６）ＰＣ１転置
図１９は、ＰＣ１転置におけるビット毎の対応規則１０２を示す図である。この対応規則１０２は、例えば、ＰＣ１転置部７６に入力される６４ビットの入力データの５７ビット目が出力データの１ビット目となり、入力データの４９ビット目が出力データの２ビット目となるというような、６４ビットの入力データと５６ビットの出力データとのビット毎の対応を示すものである。なお、ＰＣ１転置においては、６４ビットの入力データを５６ビットの出力データに縮約するため、入力データのうちの８ビットは出力データに出力されない。
【００７１】
図２０は、ＰＣ１転置部７６の構成を示す図である。図に示すように、ＰＣ１転置部７６の入力側と出力側とが、対応規則１０２に基づいて結線されている。例えば、入力側の５７ビット目が出力側の１ビット目となるように結線され、入力側の４９ビット目が出力側の２ビット目となるように結線されている。つまり、ＰＣ１転置部７６は、マルチプレクサ６５，６６を介して、入力レジスタ６１の出力端子Ｑと出力バッファ６３の入力端子とを対応規則１０２に基づいて接続していることとなる。
【００７２】
（７）ローテートシフト
図２１は、ローテートシフトにおける入力データと出力データとの対応規則１０３を示す図である。つまり、対応規則１０３は、２８ビットのＣ１及び２８ビットのＤ１は、２８ビットのＣ０及び２８ビットのＤ０を１ビット左ローテートシフトすることにより得られ、Ｃ２及びＤ２は、Ｃ１及びＤ１を１ビット左ローテートシフトすることにより得られ、Ｃ３及びＤ３は、Ｃ２及びＤ２を２ビット左ローテートシフトすることにより得られることを示している。このように、対応規則１０３においては、Ｃ１〜Ｃ１６及びＤ１〜Ｄ１６までのローテート数が示されている。なお、左ローテートシフトの処理は入力データの各ビットと出力データの各ビットとが１対１で対応したものであり、他の転置処理と同様にビット毎の対応規則であると言うことができる。
【００７３】
図２２は、ローテートシフト部７７の構成を示す図である。図は、ローテートシフト部７７のうち、Ｃ０及びＤ０からＣ１及びＤ１を生成する部分を示すものであり、入力側のＣ０及びＤ０を夫々１ビット左ローテートシフトして出力側にＣ１及びＤ１として出力されるように結線されている。また、Ｃ０及びＤ０からＣ２〜Ｃ１６及びＤ２〜Ｄ１６を生成する部分についても、同様に構成されている。つまり、ローテートシフト部７７は、マルチプレクサ６５，６６を介して、入力レジスタ６１の出力端子Ｑと出力バッファ６３の入力端子とを対応規則１０３に基づいて接続していることとなる。
【００７４】
なお、Ｃ１〜Ｃ１６及びＤ１〜Ｄ１６を生成するローテートシフト部７７を、例えば、Ｃ１及びＤ１を生成する回路、Ｃ２及びＤ２を生成する回路、というように夫々別々に構成することも可能であるが、これらをまとめて構成することも可能である。つまり、ローテートシフト部７７は、入力レジスタ６１から出力されるＣ０及びＤ０から、Ｃ１〜Ｃ１６及びＤ１〜Ｄ１６を一度に生成し、出力バッファ６３に出力するようにすることも可能である。この場合、出力バッファ６３は５６ビット（７バイト）を１６倍した１１２バイト以上の容量が必要である。このように、Ｃ１〜Ｃ１６及びＤ１〜Ｄ１６を一度に生成するようにすることで、鍵Ｋ１〜Ｋ１６を生成するためのローテートシフトを一度の処理で行うことができるため、暗号化及び復号の処理の処理速度を向上させることができる。
【００７５】
（８）ＰＣ２転置
図２３は、ＰＣ２転置におけるビット毎の対応規則１０４を示す図である。この対応規則１０４は、例えば、ＰＣ２転置部７８に入力される５６ビットの入力データの１４ビット目が出力データの１ビット目となり、入力データの１７ビット目が出力データの２ビット目となるというような、５６ビットの入力データと４８ビットの出力データとのビット毎の対応を示すものである。なお、ＰＣ２転置においては、５６ビットの入力データを４８ビットの出力データに縮約するため、入力データのうちの８ビットは出力データに出力されない。
【００７６】
図２４は、ＰＣ２転置部７８の構成を示す図である。図に示すように、ＰＣ２転置部７８の入力側と出力側とが、対応規則１０４に基づいて結線されている。例えば、入力側の１４ビット目が出力側の１ビット目となるように結線され、入力側の１７ビット目が出力側の２ビット目となるように結線されている。つまり、ＰＣ２転置部７８は、マルチプレクサ６５，６６を介して、入力レジスタ６１の出力端子Ｑと出力バッファ６３の入力端子とを対応規則１０４に基づいて接続していることとなる。
【００７７】
以上、本発明の一実施形態である暗号処理回路５５Ａ，５５Ｂを適用したキーレスエントリーシステム１について説明した。前述したように、暗号処理回路５５Ａ，５５Ｂは、共通鍵ブロック暗号方式であるＤＥＳの転置処理を行う回路であり、転置が必要な入力データを入力レジスタ６１に書き込むだけで、転置・換字部６２によって対応規則に基づいて接続された出力バッファ６３から、転置された結果のデータを得ることができる。つまり、当該暗号処理回路５５Ａ，５５Ｂにおいては、ソフトウェアによる対応表の参照等の処理を行うことなく転置が可能であり、低消費電力で、かつ、高速に暗号化及び復号を行うことができる。
【００７８】
なお、暗号処理回路５５Ａ，５５Ｂには、ＤＥＳの転置処理を行う初期転置部７１、最終転置部７２、拡大型転置部７３、Ｐ転置部７５、ＰＣ１転置部７６、ローテートシフト部７７、及びＰＣ２転置部７８が設けられており、これらの各部によって実行される転置処理を低消費電力で、かつ、高速に行うことができる。
【００７９】
また、暗号処理回路５５Ａ，５５Ｂでは、転置処理を行う各モジュール７１，７２，７３，７５，７６，７７，７８において入力レジスタ６１が共有されており、選択レジスタ６４及びマルチプレクサ６５によって、所望のモジュールにデータが入力される。このように、入力レジスタ６１を共有することにより、モジュールごとに入力レジスタを設ける場合と比較して部品数を削減することができ、回路全体の消費電力を削減することができる。
【００８０】
また、さらに、暗号処理回路５５Ａ，５５Ｂは、ＤＥＳの換字処理であるＳ−ＢＯＸの処理を行うＳ−ＢＯＸ部７４を備えており、換字が必要な入力データを入力レジスタ６１に書き込むだけで、対応規則に基づいて換字された結果のデータを得ることができる。つまり、当該暗号処理回路５５Ａ，５５Ｂにおいては、ソフトウェアによる対応表の参照等の処理を行うことなく換字が可能であり、低消費電力で、かつ、高速に暗号化及び復号を行うことができる。
【００８１】
なお、本実施形態の暗号処理回路５５Ａ，５５Ｂにおいては、転置または換字を行う複数のモジュール７１〜７８を備え、選択レジスタ６４及びマルチプレクサ６５，６６を用いて使用するモジュール７１〜７８を切り替えることとしたが、各モジュール７１〜７８を個別に構成することとしてもよい。例えば、初期転置のみを行う暗号処理回路を構成することも可能である。
【００８２】
また、暗号処理回路５５Ａ，５５Ｂにおいては、入力レジスタ６１からの出力データを転置・換字部６２に振り分ける回路として、マルチプレクサ６５が用いられている。データを振り分ける回路としては、マルチプレクサ６５以外にもトライステートバッファを用いることも可能である。しかし、一般的に、トライステートバッファよりもマルチプレクサの方が、出力の指示を受けてから対象のデータが出力されるまでの時間が短い。そのため、暗号処理回路５５Ａ，５５Ｂに、トライステートバッファよりも動作の速いマルチプレクサ６５を用いることにより、暗号化及び復号の処理速度を向上させることができる。
【００８３】
また、暗号処理回路５５Ａ，５５Ｂでは、複数のＤ−ＦＦで構成された入力レジスタ６１によりデータ入力部が実現され、トライステートバッファで構成された出力バッファ６３によりデータ出力部が実現されている。これ以外にも、データ入力部には、書き込まれたデータを記憶しておくメモリ等を用いることも可能である。しかし、メモリを用いる場合、書き込まれたデータを転置・換字部６２の各モジュールに読み出す動作（クロック）が必要となる。そこで、本実施形態の暗号処理回路５５Ａ，５５Ｂの構成とすることにより、入力レジスタ６１にデータが書き込まれると同時に、転置または換字された結果のデータが出力バッファ６３に入力され、出力バッファ６３から当該データを読み出すことが可能となる。つまり、転置・換字処理に必要なクロック数が削減され、低消費電力で、かつ、高速に暗号化及び復号を行うことができる。
【００８４】
また、暗号処理回路５５Ａ，５５Ｂにおいては、入力レジスタ６１への書き込みアドレスと出力バッファ６３からの読み出しアドレスとが同一である。これにより、転置または換字を行う際には、あるアドレスにデータを書き込み、そのアドレスからデータを読み出せばよいため、プログラムにおいてアドレス変換等の処理が不要であり、処理ステップを削減することができる。したがって、暗号化及び復号の処理における消費電力を低減し、かつ、処理速度を向上させることができる。
【００８５】
このように、消費電力を低減し、かつ、処理速度を向上させた暗号処理回路５５Ａ，５５Ｂをキーレスエントリーシステム１に適用することにより、子機２の電池１１の消費や親機３のバッテリ２５の消費を抑えることができる。また、暗号化及び復号の処理が高速に行われることにより、施錠や解錠等の操作に対するレスポンスを向上させることができる。
【００８６】
以上、本発明の実施形態について説明したが、上記実施形態は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物も含まれる。
【００８７】
例えば、本実施形態では、暗号処理回路５５Ａ，５５Ｂを用いてＤＥＳの暗号化及び復号を行うことができることを説明したが、ＤＥＳに限らず、トリプルＤＥＳの暗号化及び復号においても、暗号処理回路５５Ａ，５５Ｂを用いることが可能である。また、共通鍵ブロック暗号方式であるＡＥＳ（Advanced Encryption Standard）についても、同様の構成により転置または換字の処理を行う暗号処理回路を実現することができる。
【００８８】
また、本実施形態においては、暗号処理回路５５Ａ，５５Ｂの適用例としてキーレスエントリーシステム１をあげたが、キーレスエントリーシステム１に限らず、例えばＩＣカードを用いた自動改札システムや入退室管理システム等、データの暗号化が必要な様々なシステムに適用することが可能である。
【図面の簡単な説明】
【００８９】
【図１】本発明の暗号処理回路を用いる一実施形態である自動車の錠の施錠・解錠を行うキーレスエントリーシステムの全体構成を示す図である。
【図２】データ処理回路の構成を示す図である。
【図３】キーレスエントリーシステムの子機と親機との間における通信手順を示すフローチャートである。
【図４】ＤＥＳの暗号化の処理の流れを示すフローチャートである。
【図５】Ｆ関数（Ｆ（Ｒ，Ｋ））の処理の流れを示す図である。
【図６】ＤＥＳの復号の処理の流れを示すフローチャートである。
【図７】暗号処理回路の構成を示す図である。
【図８】初期転置におけるビット毎の対応規則を示す図である。
【図９】初期転置部の構成を示す図である。
【図１０】最終転置におけるビット毎の対応規則を示す図である。
【図１１】最終転置部の構成を示す図である。
【図１２】拡大型転置におけるビット毎の対応規則を示す図である。
【図１３】拡大型転置部の構成を示す図である。
【図１４】Ｓ−ＢＯＸ部の構成を示す図である。
【図１５】Ｓ−ＢＯＸ（Ｓ１）における対応規則を示す図である。
【図１６】Ｓ−ＢＯＸ部のＳ１の構成を示す図である。
【図１７】Ｐ転置におけるビット毎の対応規則を示す図である。
【図１８】Ｐ転置部の構成を示す図である。
【図１９】ＰＣ１転置におけるビット毎の対応規則を示す図である。
【図２０】ＰＣ１転置部の構成を示す図である。
【図２１】ローテートシフトにおけるローテート数を示す図である。
【図２２】ローテートシフト部の構成を示す図である。
【図２３】ＰＣ２転置におけるビット毎の対応規則を示す図である。
【図２４】ＰＣ２転置部の構成を示す図である。
【符号の説明】
【００９０】
１  キーレスエントリーシステム          ２  子機
３  親機                                １１  電池
１２  操作スイッチ                      １３，２１  データ処理回路
１４，２２  送受信回路                  ２３  駆動回路
２４  アクチュエータ                    ２５  バッテリ
５１Ａ，５１Ｂ  ＣＰＵ                  ５２Ａ，５２Ｂ  ＲＡＭ
５３Ａ，５３Ｂ  ＥＥＰＲＯＭ            ５４Ａ，５４Ｂ  乱数生成回路
５５Ａ，５５Ｂ  暗号処理回路            ５６Ａ，５６Ｂ  入出力ポート
６１  入力レジスタ                      ６２  転置・換字部
６３  出力バッファ                      ６４  選択レジスタ
６５，６６  マルチプレクサ              ６７  アドレスデコーダ
７１  初期転置部                        ７２  最終転置部
７３  拡大型転置部                      ７４  Ｓ−ＢＯＸ部
７５  Ｐ転置部                          ７６  ＰＣ１転置部
７７  ローテートシフト部                ７８  ＰＣ２転置部
９５  セレクタ                          ９６  置換回路
９７  選択レジスタ
【図１】
2006215280.tif 000007
【図２】
2006215280.tif 000008
【図３】
2006215280.tif 000009
【図４】
2006215280.tif 000010
【図５】
2006215280.tif 000011
【図６】
2006215280.tif 000012
【図７】
2006215280.tif 000013
【図８】
2006215280.tif 000014
【図９】
2006215280.tif 000015
【図１０】
2006215280.tif 000016
【図１１】
2006215280.tif 000017
【図１２】
2006215280.tif 000018
【図１３】
2006215280.tif 000019
【図１４】
2006215280.tif 000020
【図１５】
2006215280.tif 000021
【図１６】
2006215280.tif 000022
【図１７】
2006215280.tif 000023
【図１８】
2006215280.tif 000024
【図１９】
2006215280.tif 000025
【図２０】
2006215280.tif 000026
【図２１】
2006215280.tif 000027
【図２２】
2006215280.tif 000028
【図２３】
2006215280.tif 000029
【図２４】
2006215280.tif 000030