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