説明

暗号処理回路

【課題】共通鍵ブロック暗号方式における暗号化及び復号の処理を低消費電力で、かつ、高速に行う。
【解決手段】複数ビットの入力データをビット毎の対応規則に基づいて並べ替えて出力する共通鍵ブロック暗号方式の転置処理を行う暗号処理回路であって、前記入力データを受信し、受信した前記複数ビットの入力データを並列出力する出力ポートを有するデータ入力部と、複数ビットのデータが並列入力される入力ポートを有し、前記入力ポートに入力された前記データを出力するデータ出力部と、前記出力ポートと前記入力ポートとを、前記ビット毎の対応規則に基づいて接続する転置部と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、共通鍵ブロック暗号方式に用いられる暗号処理回路に関する。
【背景技術】
【0002】
近年、キーレスエントリーシステムのように、無線等の通信手段によりデータを送受信することが広く行われている。キーレスエントリーシステムの場合、第三者にデータが不正に解読されることのないよう、データは暗号化された上で送受信される。
【0003】
データの暗号化方式は多種多様であるが、DES(Data Encryption Standard)やAES(Advanced Encryption Standard)等の標準規格を用いることが望ましい。これらの標準規格の暗号化方式の場合、不正に解読されるリスクの算出が容易であり、不正に解読された場合の保険料をこのリスクに基づいて算定することができるからである。逆に、標準規格以外の独自規格等の暗号化方式を用いる場合、不正に解読されるリスクの算出が難しく、概して、保険料が高くなることが多い。
【0004】
このようなDESやAES等の共通鍵ブロック暗号化方式では、データをいくつかのブロックに分割し、そのブロックごとに転置や換字等の処理が行われる。この転置や換字の処理は、入力データと出力データとの対応を示す対応表をメモリに記憶しておき、与えられた入力データに対応する出力データを対応表に基づいて求めることにより実現することができる(例えば、特許文献1)。
【特許文献1】特開2004−120307号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、転置や換字をソフトウェアで実現する場合、メモリに記憶された対応表の参照等を繰り返し行うため、処理負荷が高く、消費電力が大きい。そのため、キーレスエントリーシステムに、転置や換字がソフトウェアで実現された共通鍵ブロック暗号方式を採用すると、利用者が施錠・解錠の操作を行う子機の電池消耗が早くなってしまうという問題があった。また、キーレスエントリーシステムでは、施錠や解錠等の操作に対するレスポンスを良くするため、暗号化及び復号の処理速度を向上させる必要がある。
【0006】
本発明は上記課題を鑑みてなされたものであり、共通鍵ブロック暗号方式における暗号化及び復号の処理を低消費電力で、かつ、高速に行う暗号処理回路を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するため、本発明の暗号処理回路は、複数ビットの入力データをビット毎の対応規則に基づいて並べ替えて出力する共通鍵ブロック暗号方式の転置処理を行う暗号処理回路であって、前記複数ビットの入力データを受信し、受信した前記複数ビットの入力データを並列出力する出力ポートを有するデータ入力部と、複数ビットのデータが並列入力される入力ポートを有し、前記入力ポートに入力された前記複数ビットのデータを出力するデータ出力部と、前記出力ポートと前記入力ポートとを、前記ビット毎の対応規則に基づいて接続する転置部と、を備えることとする。
【0008】
また、前記共通鍵ブロック暗号方式がDESであり、前記入力データが、初期転置(Initial Permutation)における入力データであり、前記ビット毎の対応規則が、前記初期転置におけるビット毎の対応規則であることとすることができる。
【0009】
また、前記入力データが、DESの最終転置(Inverse Initial Permutation)における入力データであり、前記ビット毎の対応規則が、前記最終転置におけるビット毎の対応規則であることとすることができる。
【0010】
また、前記入力データが、DESのF関数の拡大型転置における入力データであり、前記ビット毎の対応規則が、前記F関数の拡大型転置におけるビット毎の対応規則であることとすることができる。
【0011】
また、前記入力データが、DESのF関数のS−BOXから出力されるデータであり、前記ビット毎の対応規則が、前記F関数の当該入力データが入力される転置におけるビット毎の対応規則であることとすることができる。
【0012】
また、前記入力データが、DESの縮約型転置(Permuted Choice 1)に入力される共通鍵であり、前記ビット毎の対応規則が、前記縮約型転置におけるビット毎の対応規則であることとすることができる。
【0013】
また、前記入力データが、DESの縮約型転置(Permuted Choice 2)における入力データであり、前記ビット毎の対応規則が、前記縮約型転置におけるビット毎の対応規則であることとすることができる。
【0014】
また、前記入力データが、DESの共通鍵を縮約型転置(Permuted Choice 1)により転置して得られたデータであり、前記ビット毎の対応規則が、当該入力データと、縮約型転置(Permuted Choice 2)に入力されるデータと、のビット毎の対応規則であることとすることができる。
【0015】
また、前記ビット毎の対応規則が異なる前記転置部を複数備え、前記複数の転置部のうちの何れの転置部を用いるかを示す選択データを受信し、前記データ入力部から出力される前記入力データを前記選択データによって示される前記転置部に入力する選択部を更に備えることとしてもよい。
【0016】
また、前記転置部を複数備える場合において、前記共通鍵ブロック暗号方式がDESであり、前記複数の転置部の前記ビット毎の対応規則が、夫々、初期転置におけるビット毎の対応規則、最終転置におけるビット毎の対応規則、F関数の拡大型転置におけるビット毎の対応規則、F関数のS−BOXから出力されるデータが入力される転置におけるビット毎の対応規則、縮約型転置(Permuted Choice 1)におけるビット毎の対応規則、縮約型転置(Permuted Choice 2)におけるビット毎の対応規則、前記縮約型転置(Permuted Choice 1)から出力されるデータと、前記縮約型転置(Permuted Choice 2)に入力されるデータと、のビット毎の対応規則の何れかであることとすることができる。
【0017】
また、前記転置部を複数備える場合において、前記データ入力部から並列出力される前記複数ビットの入力データを対応規則に基づいて変換して前記データ出力部の前記入力ポートに並列出力する論理回路である換字部を更に備え、前記選択データは、前記複数の転置部または前記換字部のうちの何れを用いるかを示すデータであり、前記選択部は、前記データ入力部から出力される前記入力データを前記選択データによって示される前記転置部または前記換字部に入力することとしてもよい。
【0018】
また、前記複数の転置部と前記換字部とを備える場合において、前記共通鍵ブロック暗号方式がDESであり、前記複数の転置部の前記ビット毎の対応規則が、夫々、初期転置におけるビット毎の対応規則、最終転置におけるビット毎の対応規則、F関数の拡大型転置におけるビット毎の対応規則、F関数のS−BOXから出力されるデータが入力される転置におけるビット毎の対応規則、縮約型転置(Permuted Choice 1)におけるビット毎の対応規則、縮約型転置(Permuted Choice 2)におけるビット毎の対応規則、前記縮約型転置(Permuted Choice 1)から出力されるデータと、前記縮約型転置(Permuted Choice 2)に入力されるデータと、のビット毎の対応規則の何れかであり、前記換字部の前記対応規則が、前記S−BOXに入力されるデータと前記S−BOXから出力されるデータとの対応規則であることとすることができる。
【0019】
また、前記選択部がマルチプレクサであることとすることができる。
【0020】
また、本発明の暗号処理回路は、複数ビットの入力データを対応規則に基づいて変換して出力する共通鍵ブロック暗号方式の換字処理を行う暗号処理回路であって、前記複数ビットの入力データを受信し、受信した前記複数ビットの入力データを並列出力する出力ポートを有するデータ入力部と、前記データ入力部から並列出力される前記複数ビットの入力データを前記対応規則に基づいて変換して出力する論理回路である換字部と、前記換字部から出力される複数ビットのデータが並列入力される入力ポートを有し、前記入力ポートに入力された前記複数ビットのデータを出力するデータ出力部と、を備えることとする。
【0021】
また、前記換字処理を行う暗号処理回路において、前記共通鍵ブロック暗号方式がDESであり、前記入力データが、F関数のS−BOXに入力されるデータであり、前記対応規則が、前記入力データと前記S−BOXから出力されるデータとの対応規則であることとしてもよい。
【0022】
また、前記データ入力部が複数のD型フリップフロップで構成され、前記出力ポートが当該複数のD型フリップフロップの出力端子であり、前記データ出力部がトライステートバッファであることとすることができる。
【0023】
また、前記データ入力部への書き込みアドレスと前記データ出力部からの読み出しアドレスとが同一であることとすることができる。
【発明の効果】
【0024】
共通鍵ブロック暗号方式における暗号化及び復号の処理を低消費電力で、かつ、高速に行うことができる。
【発明を実施するための最良の形態】
【0025】
==全体構成==
図1は、本発明の暗号処理回路を用いる一実施形態である自動車の錠の施錠・解錠を行うキーレスエントリーシステム1の全体構成を示す図である。キーレスエントリーシステム1は、携帯型の子機2と自動車等に搭載される親機3とを含んで構成されている。子機2は、例えば、自動車のドアロックやステアリングロックの鍵穴に差し込むキーのハンドル部等に設けられている。また、親機3は、自動車側に設けられている。
【0026】
子機2は、電池11、操作スイッチ12、データ処理回路13、及び送受信回路14を備えている。電池11は、子機2の各部の動作に必要な電力を供給するためのものである。操作スイッチ12は、利用者からの施錠・解錠の指示を受け付けるスイッチである。データ処理回路13は、施錠・解錠の際に必要となる認証用のデータの生成等を行う。送受信回路14は、データ処理回路13から出力されるデジタルデータをアナログデータに変換し、これを増幅して電磁波として送出する回路である。また、送受信回路14は、親機3から送出された電磁波を受信し、これをデジタルデータに変換してデータ処理回路13に入力することもできる。なお、電磁波としては、電波や赤外線が用いられる。
【0027】
親機3は、データ処理回路21、送受信回路22、及び駆動回路23を備えている。データ処理回路21は、子機2から受信する認証用のデータに基づいた認証処理等を行う。送受信回路22は、子機2から送出された電磁波を受信し、これをデジタルデータに変換してデータ処理回路22に入力する回路である。また、送受信回路22は、データ処理回路21から出力されるデジタルデータをアナログデータに変換し、これを増幅して電磁波として送出することもできる。駆動回路23は、自動車の錠を施錠・解錠するロック機構を作動させるアクチュエータ24に駆動信号を送信する回路である。なお、親機2の各部21〜23には、自動車のバッテリ25から電力が供給されている。
【0028】
==データ処理回路の構成==
図2は、データ処理回路13の構成を示す図である。データ処理回路13は、CPU51A、RAM(Random Access Memory)52A、EEPROM(Electrically Erasable Programmable Read-Only Memory)53A、乱数生成回路54A、暗号処理回路55A、及び入出力ポート56Aを備えている。そして、各部51A〜56Aはバス57Aにより互いに通信可能に接続されている。
【0029】
CPU51Aは、データ処理回路13の全体を制御するものである。RAM52Aには、CPU51Aが使用する作業用データ等が記憶される。EEPROM53Aは書き換え可能な不揮発性メモリであり、プログラムや保存用のデータ等が記憶されている。乱数生成回路54Aは、暗号化の処理において用いられる疑似乱数又は物理乱数を生成する回路である。暗号処理回路55Aは、共通鍵ブロック暗号方式における転置又は換字の処理を行う回路である。入出力ポート56Aは、データ処理回路13の外部にある操作スイッチ12や送受信回路14等とデータの送受信を行うためのインタフェースである。
【0030】
なお、本実施形態では、共通鍵ブロック暗号方式としてDES(Data Encryption Standard)を用いることとする。このようなデータ処理回路13では、プログラムの実行や暗号処理回路55Aの制御等により、DESの暗号化又は復号の処理が行われる。なお、データ処理回路21も同様の構成であり、CPU51B、RAM52B、EEPROM53B、乱数生成回路54B、暗号処理回路55B、入出力ポート56B、及び各部51B〜56Bを互いに通信可能に接続するバス57Bを備えている。
【0031】
==通信手順==
図3は、キーレスエントリーシステム1の子機2と親機3との間における通信手順を示すフローチャートである。まず、子機2の操作スイッチ12の操作等により送信処理が起動される(S301)。子機2のデータ処理回路13は、EEPROM53Aに記憶されている車番(車体番号)を親機3に送信する(S302)。親機3のデータ処理回路21は、子機2から車番が送信されてくるのを待機しており(S303)、子機2から送信されてくる車番を受信すると、当該車番をEEPROM53Bに記憶されている車番と比較する(S304)。
【0032】
車番が一致しない場合(S304:NG)、親機3のデータ処理回路21は、別の自動車の車番が送信されてきたと判断し、受信待機処理に戻る(S303)。車番が一致すると(S304:OK)、データ処理回路21は、乱数生成回路54Bを用いて64ビットの一時鍵R0を生成する(S305)。そして、データ処理回路21は、この一時鍵R0を、EEPROM53Bに記憶されている共通鍵Kを用いてDESで暗号化して子機2に送信する(S306)。
【0033】
子機2のデータ処理回路13は、親機3から送信されてくる暗号化された一時鍵R0を受信すると、EEPROM53Aに記憶されている共通鍵Kを用いて一時鍵R0を復号する(S307)。続いて、データ処理回路13は、乱数生成回路54Aを用いて64ビットの一時鍵R1を生成する(S308)。そして、データ処理回路13は、この一時鍵R1を親機3から受信した一時鍵R0を用いてDESで暗号化して親機3に送信する(S309)。親機3のデータ処理回路21は、子機2から送信されてくる暗号化された一時鍵R1を受信すると、一時鍵R0を用いて一時鍵R1を復号する(S310)。
【0034】
その後、子機2のデータ処理回路13は、施錠・解錠指示等の情報データを、一時鍵R1を用いてDESで暗号化して親機3に送信する(S311)。親機3のデータ処理回路21は、子機2から送信されてくる暗号化された情報データを受信すると、一時鍵R1を用いて情報データを復号する(S312)。そして、データ処理回路21は、情報データに基づいて、例えば、駆動回路23を介してアクチュエータ24に施錠・解錠指示信号を送信する。
【0035】
このように、キーレスエントリーシステム1においては、子機2及び親機3において乱数生成回路54A,54Bを用いて一時鍵を生成し、DESによる暗号化及び復号の処理を繰り返し行うことにより、セキュリティ強度を高めている。
【0036】
==DESの暗号化・復号の処理==
図4は、DESの暗号化の処理の流れを示すフローチャートである。DESの暗号化処理は、第1段から第16段までの処理で構成されている。まず、暗号化の対象となる64ビットの平文を初期転置(Initial Permutation)により並べ替え、第1段の入力データとなる左側の32ビット(L)及び右側の32ビット(R)を生成する(S401)。そして、第2段の入力データとなるL及びRは次式(1,2)により求められる。
【数1】

【0037】
ここで、Kは64ビットの共通鍵から生成された鍵である。まず、64ビットの共通鍵を縮約型転置(Permuted Choice 1:以後「PC1転置」と称する)により56ビットに変換し、左側の28ビット(C)及び右側の28ビット(D)を生成する(S402)。さらに、C及びDを左ローテートシフトして、C及びDを生成する(S403,S404)。そして、C及びDを縮約型転置(Permuted Choice 2:以後「PC2転置」と称する)により48ビットに変換することにより、Kが得られる(S405)。また、C及びDをさらに左ローテートシフトし、PC2転置を行うことにより、第2段以降で用いられる鍵K〜K16を生成することができる。
【0038】
このようにして求められたL及びRが第2段の入力データとなり、第16段まで繰り返し処理が実行される。つまり、L及びRは、次式(3,4)により求められる。
【数2】

【0039】
そして、第16段の出力データであるL16及びR16に対して最終転置(Inverse Initial Permutation)を行うことにより、平文を暗号化した暗号文を得ることができる(S406)。
【0040】
図5は、F関数(F(R,K))の処理の流れを示す図である。まず、32ビットのデータRを拡大型転置により48ビットに変換し、R’を生成する(S501)。次に、R’と48ビットの鍵Kとをビット毎に排他的論理和することにより得られる48ビットのデータを6ビットずつに分割し、S1〜S8のS−BOXに入力する。そして、各S−BOXから出力される4ビットを合わせて構成される32ビットのデータを転置(以後「P転置」と称する)により並べ替えたデータがF関数の出力データとなる(S502)。
【0041】
図6は、DESの復号の処理の流れを示すフローチャートである。DESの復号処理は、暗号化処理と同様に第1段から第16のまでの処理で構成されている。まず、復号の対象となる64ビットの暗号文を初期転置により並べ替え、第1段の入力データとなる左側の32ビット(R16)及び右側の32ビット(L16)を生成する(S601)。そして、第2段の入力データとなるR15及びL15は次式(5)及び(6)により求められる。
【数3】

【0042】
ここで、K16は、64ビットの共通鍵から生成された鍵である。まず、64ビットの共通鍵をPC1転置により56ビットに変換し、左側の28ビット(C16)及び右側の28ビット(D16)を生成する(S602)。そして、C16及びD16をPC2転置により48ビットに変換することにより、K16が得られる(S603)。また、C16及びD16を右ローテートシフトし、PC2転置を行うことにより、第2段以降で用いられる鍵K15〜Kを生成することができる。
【0043】
このようにして求められたR15及びL15が第2段の入力データとなり、第16段まで繰り返し処理が実行される。つまり、RおよびLは、次式(7)及び(8)により求められることとなる。
【数4】

【0044】
そして、第16段の出力データであるR及びLに対して最終転置を行うことにより、暗号文を復号した平文を得ることができる(S604)。なお、復号処理におけるL、R、C、D、Kは、暗号化処理におけるL、R、C、D、Kと同一のものである。また、C=C16、D=D16である。
【0045】
==暗号処理回路の構成==
本実施形態では、図4〜図6で説明した暗号化及び復号の処理における転置・換字処理が暗号処理回路55A,55Bを用いて実現されている。暗号処理回路55A及び暗号処理回路55Bは同様の構成であるため、以後、暗号処理回路55Aについて説明する。図7は、暗号処理回路55Aの構成を示す図である。暗号処理回路55Aは、入力レジスタ(データ入力部)61、転置・換字部62、出力バッファ(データ出力部)63、選択レジスタ64、マルチプレクサ65,66、及びアドレスデコーダ67を備えている。
【0046】
入力レジスタ61は、複数のD型フリップフロップ(以後「D−FF」と称する)を用いて構成された64ビットのレジスタであり、D−FFの入力端子Dがバス57Aのデータバスに接続され、D−FFの出力端子Q(出力ポート)がマルチプレクサ65を介して転置・換字部62に接続されている。また、入力レジスタ61を構成するD−FFのクロック入力端子には、書き込み信号(WRITE)が入力される。なお、例えば、データバスが8ビットである場合には、入力レジスタ61は、8ビットのレジスタを8つ用いた構成とすることができる。
【0047】
転置・換字部62は、初期転置部71、最終転置部72、拡大型転置部73、S−BOX部74、P転置部75、PC1転置部76、ローテートシフト部77、及びPC2転置部78の8つのモジュールを備えている。転置・換字部62の各モジュール71〜78は、入力レジスタ61から入力されるデータに対して転置又は換字処理を行い、マルチプレクサ66を介して出力バッファ63に出力する。
【0048】
なお、S−BOX部74が本発明の換字部に該当し、その他の各部71,72,73,75,76,77,78が本発明の転置部に該当する。また、選択レジスタ64、マルチプレクサ65、及びマルチプレクサ66が本発明の選択部に該当する。
【0049】
出力バッファ63は、64ビットのトライステートバッファであり、その64ビットの入力端子(入力ポート)にマルチプレクサ66を介して転置・換字部62が接続されており、出力端子がバス57Aのデータバスに接続されている。なお、例えば、データバスが8ビットである場合には、出力バッファ63は、8ビットのトライステートバッファを8つ用いた構成とすることができる。
【0050】
選択レジスタ64は、複数のD−FFを用いて構成された、例えば8ビットのレジスタであり、D−FFの入力端子Dがバス57Aのデータバスに接続され、D−FFの出力端子Qがマルチプレクサ65,66に接続されている。また、選択レジスタ64を構成するD−FFのクロック入力端子には、書き込み信号(WRITE)が入力される。選択レジスタ64には、転置・換字部62のうちの何れのモジュールを選択するかを示す選択データが書き込まれる。マルチプレクサ65は、選択レジスタ64から出力される選択データに基づいて、入力レジスタ61から出力されるデータを該当のモジュールに出力する。また、マルチプレクサ66は、選択レジスタ64から出力される選択データに基づいて、該当のモジュールから出力されるデータを出力バッファ63に出力する。
【0051】
アドレスデコーダ67は、バス57Aのアドレスバスに接続されており、アドレスバスで指定されたアドレスに該当する回路を選択する。なお、本実施形態においては、入力レジスタ61への書き込みアドレスと、出力バッファ63からの読み出しアドレスは同一であることとする。
【0052】
データ処理回路13において、暗号処理回路55Aを用いて転置又は換字処理を行う流れについて説明する。まず、CPU51Aは、アドレスバスに選択レジスタ64のアドレスを出力し、データバスに転置・換字部62の所望のモジュールを示す選択データを出力し、書き込み信号(WRITE)を出力することにより、選択レジスタに選択データを書き込む。続いて、CPU51Aは、アドレスバスに入力レジスタ61のアドレスを出力し、データバスに転置又は換字処理の入力データを出力し、書き込み信号(WRITE)を出力することにより、入力レジスタ61に当該入力データを書き込む。これにより、入力レジスタ61に入力されたデータがマルチプレクサ65を介して所望のモジュールに入力され、転置又は換字処理の結果がマルチプレクサ66を介して出力バッファ63に出力される。
【0053】
その後、CPU51Aは、入力レジスタ61と同一のアドレスである出力バッファ63のアドレスをアドレスバスに出力し、出力バッファ63に読み出し信号(READ)を入力する。これにより、入力データに対して転置又は換字処理を行ったデータが出力バッファ63からデータバスに出力される。このように、CPU51Aは、入力レジスタ61にデータを書き込み、出力バッファ63からデータを読み出すだけで、転置又は換字処理を行うことができる。
【0054】
==転置・換字部の構成==
次に、転置・換字部62の各モジュール71〜78の構成について説明する。
【0055】
(1)初期転置
図8は、初期転置におけるビット毎の対応規則91を示す図である。この対応規則91は、例えば、初期転置部71に入力される64ビットの入力データの58ビット目が出力データの1ビット目となり、入力データの50ビット目が出力データの2ビット目となるというような、64ビットの入力データと64ビットの出力データとのビット毎の対応を示すものである。
【0056】
図9は、初期転置部71の構成を示す図である。図に示すように、初期転置部71の入力側と出力側とが、対応規則91に基づいて結線されている。例えば、入力側の58ビット目が出力側の1ビット目となるように結線され、入力側の50ビット目が出力側の2ビット目となるように結線されている。つまり、初期転置部71は、マルチプレクサ65,66を介して、入力レジスタ61の出力端子Qと出力バッファ63の入力端子とを対応規則91に基づいて接続していることとなる。
【0057】
(2)最終転置
図10は、最終転置におけるビット毎の対応規則92を示す図である。この対応規則92は、例えば、最終転置部72に入力される64ビットの入力データの40ビット目が出力データの1ビット目となり、入力データの8ビット目が出力データの2ビット目となるというような、64ビットの入力データと64ビットの出力データとのビット毎の対応を示すものである。
【0058】
図11は、最終転置部72の構成を示す図である。図に示すように、最終転置部72の入力側と出力側とが、対応規則92に基づいて結線されている。例えば、入力側の40ビット目が出力側の1ビット目となるように結線され、入力側の8ビット目が出力側の2ビット目となるように結線されている。つまり、最終転置部72は、マルチプレクサ65,66を介して、入力レジスタ61の出力端子Qと出力バッファ63の入力端子とを対応規則92に基づいて接続していることとなる。
【0059】
(3)拡大型転置
図12は、拡大型転置におけるビット毎の対応規則93を示す図である。この対応規則93は、例えば、拡大型転置部73に入力される32ビットの入力データの32ビット目が出力データの1ビット目となり、入力データの1ビット目が出力データの2ビット目となるというような、32ビットの入力データと48ビットの出力データとのビット毎の対応を示すものである。なお、拡大型転置においては、32ビットの入力データを48ビットの出力データに拡大するため、入力データのうちの16ビットは、出力データの2ビットに出力される。例えば、入力データの1ビット目は、出力データの2ビット目及び48ビット目の2ビットに出力される。
【0060】
図13は、拡大型転置部73の構成を示す図である。図に示すように、拡大型転置部73の入力側と出力側とが、対応規則93に基づいて結線されている。例えば、入力側の32ビット目が出力側の1ビット目となるように結線され、入力側の1ビット目が出力側の2ビット目となるように結線されている。つまり、拡大型転置部73は、マルチプレクサ65,66を介して、入力レジスタ61の出力端子Qと出力バッファ63の入力端子とを対応規則93に基づいて接続していることとなる。
【0061】
(4)S−BOX
図14は、S−BOX部74の構成を示す図である。図に示すように、S−BOX部74は、S1〜S8で構成されており、48ビットの入力データの先頭から6ビットごとに分割したデータがS1〜S8に入力される。そして、例えば、S1においては、6ビットの入力データが対応規則に基づいて4ビットに変換されて出力される。同様に、S2〜S8においても、6ビットの入力データが夫々の対応規則に基づいて4ビットに変換されて出力される。
【0062】
図15は、S−BOX(S1)における対応規則94を示す図である。この対応規則94では、S1に入力される6ビットの入力データの1ビット目と6ビット目(B1・B6)が行となり、入力データの2ビット目から5ビット目(B2〜B5)が列となり、その交差する箇所にあるデータが出力データとなる。例えば、入力データ“110000”がS1に入力されたとする。この場合、B1・B6は“10”となり、3行目が選択される。そして、B2〜B5は“1000”となり、これを10進で表した8列目が選択される。これにより、3行目の8列目にある10進の“15”を2進で表した“1111”が出力される。同様に、S2〜S8に対しても対応規則が定められている。
【0063】
図16は、S−BOX部74のS1の構成を示す図である。図に示すように、S1は、セレクタ95及び置換回路96を備えている。また、S1〜S8共通で用いられる選択レジスタ97が設けられている。セレクタ95には、B1・B6が入力され、その入力に従い、対応規則94のどの行が選択されるかを示す信号を置換回路96に出力する。置換回路96には、B2〜B5を対応規則94の各行の値に変換する論理回路が構成されており、B2〜B5を、セレクタ95からの信号に基づいて変換して出力する。
【0064】
選択レジスタ97は、複数のD−FFを用いて構成された、例えば8ビットのレジスタであり、D−FFの入力端子Dがバス57Aのデータバスに接続され、D−FFの出力端子Qがセレクタ95に接続されている。そして、セレクタ95は、選択レジスタ97から出力される選択データに従って、B1とB6とを入れ替えることができる。例えば、セレクタ95は、選択レジスタ97から選択データ“0”が出力されている場合、B1・B6により対応規則94の行を選択する信号を置換回路96に出力し、選択レジスタ97から選択データ“1”が出力されている場合、B6・B1により対応規則94の行を選択する信号を置換回路96に出力するようにすることができる。
【0065】
つまり、前述した入力データ“110000”の場合、選択レジスタ97から選択データ“1”が出力されている場合、B6・B1は“01”となり2行目が選択され、2行目の8列目にある10進の“10”を2進で表した“1010”が出力される。このように、選択レジスタ97に選択データを書き込むことにより、S1の対応規則94を変化させることができる。
【0066】
また、S2〜S8についても、S1と同様に構成されている。つまり、S1〜S8で構成されるS−BOX部74は、マルチプレクサ65,66を介して、入力レジスタ61の出力端子Qから並列出力される入力データをS1〜S8の対応規則に基づいて変換して出力バッファ63の入力端子に出力する論理回路であると言うことができる。
【0067】
なお、本実施形態においては、最上位と最下位の2ビットをセレクタ95に入力し、残りの4ビットを置換回路96に入力する構成としたが、S−BOX部74の構成はこれに限られず、入力される6ビット(B1〜B6)から対応規則に基づいて4ビットを生成する論理回路であればよい。この場合においても、選択レジスタ97から出力される選択データに従って、入力される6ビット(B1〜B6)の並びを入れ替えるように構成することができる。
【0068】
(5)P転置
図17は、P転置におけるビット毎の対応規則101を示す図である。この対応規則101は、例えば、最終転置部75に入力される32ビットの入力データの16ビット目が出力データの1ビット目となり、入力データの7ビット目が出力データの2ビット目となるというような、32ビットの入力データと32ビットの出力データとのビット毎の対応を示すものである。
【0069】
図18は、P転置部75の構成を示す図である。図に示すように、P転置部75の入力側と出力側とが、対応規則101に基づいて結線されている。例えば、入力側の16ビット目が出力側の1ビット目となるように結線され、入力側の7ビット目が出力側の2ビット目となるように結線されている。つまり、P転置部75は、マルチプレクサ65,66を介して、入力レジスタ61の出力端子Qと出力バッファ63の入力端子とを対応規則101に基づいて接続していることとなる。
【0070】
(6)PC1転置
図19は、PC1転置におけるビット毎の対応規則102を示す図である。この対応規則102は、例えば、PC1転置部76に入力される64ビットの入力データの57ビット目が出力データの1ビット目となり、入力データの49ビット目が出力データの2ビット目となるというような、64ビットの入力データと56ビットの出力データとのビット毎の対応を示すものである。なお、PC1転置においては、64ビットの入力データを56ビットの出力データに縮約するため、入力データのうちの8ビットは出力データに出力されない。
【0071】
図20は、PC1転置部76の構成を示す図である。図に示すように、PC1転置部76の入力側と出力側とが、対応規則102に基づいて結線されている。例えば、入力側の57ビット目が出力側の1ビット目となるように結線され、入力側の49ビット目が出力側の2ビット目となるように結線されている。つまり、PC1転置部76は、マルチプレクサ65,66を介して、入力レジスタ61の出力端子Qと出力バッファ63の入力端子とを対応規則102に基づいて接続していることとなる。
【0072】
(7)ローテートシフト
図21は、ローテートシフトにおける入力データと出力データとの対応規則103を示す図である。つまり、対応規則103は、28ビットのC及び28ビットのDは、28ビットのC及び28ビットのDを1ビット左ローテートシフトすることにより得られ、C及びDは、C及びDを1ビット左ローテートシフトすることにより得られ、C及びDは、C及びDを2ビット左ローテートシフトすることにより得られることを示している。このように、対応規則103においては、C〜C16及びD〜D16までのローテート数が示されている。なお、左ローテートシフトの処理は入力データの各ビットと出力データの各ビットとが1対1で対応したものであり、他の転置処理と同様にビット毎の対応規則であると言うことができる。
【0073】
図22は、ローテートシフト部77の構成を示す図である。図は、ローテートシフト部77のうち、C及びDからC及びDを生成する部分を示すものであり、入力側のC及びDを夫々1ビット左ローテートシフトして出力側にC及びDとして出力されるように結線されている。また、C及びDからC〜C16及びD〜D16を生成する部分についても、同様に構成されている。つまり、ローテートシフト部77は、マルチプレクサ65,66を介して、入力レジスタ61の出力端子Qと出力バッファ63の入力端子とを対応規則103に基づいて接続していることとなる。
【0074】
なお、C〜C16及びD〜D16を生成するローテートシフト部77を、例えば、C及びDを生成する回路、C及びDを生成する回路、というように夫々別々に構成することも可能であるが、これらをまとめて構成することも可能である。つまり、ローテートシフト部77は、入力レジスタ61から出力されるC及びDから、C〜C16及びD〜D16を一度に生成し、出力バッファ63に出力するようにすることも可能である。この場合、出力バッファ63は56ビット(7バイト)を16倍した112バイト以上の容量が必要である。このように、C〜C16及びD〜D16を一度に生成するようにすることで、鍵K〜K16を生成するためのローテートシフトを一度の処理で行うことができるため、暗号化及び復号の処理の処理速度を向上させることができる。
【0075】
(8)PC2転置
図23は、PC2転置におけるビット毎の対応規則104を示す図である。この対応規則104は、例えば、PC2転置部78に入力される56ビットの入力データの14ビット目が出力データの1ビット目となり、入力データの17ビット目が出力データの2ビット目となるというような、56ビットの入力データと48ビットの出力データとのビット毎の対応を示すものである。なお、PC2転置においては、56ビットの入力データを48ビットの出力データに縮約するため、入力データのうちの8ビットは出力データに出力されない。
【0076】
図24は、PC2転置部78の構成を示す図である。図に示すように、PC2転置部78の入力側と出力側とが、対応規則104に基づいて結線されている。例えば、入力側の14ビット目が出力側の1ビット目となるように結線され、入力側の17ビット目が出力側の2ビット目となるように結線されている。つまり、PC2転置部78は、マルチプレクサ65,66を介して、入力レジスタ61の出力端子Qと出力バッファ63の入力端子とを対応規則104に基づいて接続していることとなる。
【0077】
以上、本発明の一実施形態である暗号処理回路55A,55Bを適用したキーレスエントリーシステム1について説明した。前述したように、暗号処理回路55A,55Bは、共通鍵ブロック暗号方式であるDESの転置処理を行う回路であり、転置が必要な入力データを入力レジスタ61に書き込むだけで、転置・換字部62によって対応規則に基づいて接続された出力バッファ63から、転置された結果のデータを得ることができる。つまり、当該暗号処理回路55A,55Bにおいては、ソフトウェアによる対応表の参照等の処理を行うことなく転置が可能であり、低消費電力で、かつ、高速に暗号化及び復号を行うことができる。
【0078】
なお、暗号処理回路55A,55Bには、DESの転置処理を行う初期転置部71、最終転置部72、拡大型転置部73、P転置部75、PC1転置部76、ローテートシフト部77、及びPC2転置部78が設けられており、これらの各部によって実行される転置処理を低消費電力で、かつ、高速に行うことができる。
【0079】
また、暗号処理回路55A,55Bでは、転置処理を行う各モジュール71,72,73,75,76,77,78において入力レジスタ61が共有されており、選択レジスタ64及びマルチプレクサ65によって、所望のモジュールにデータが入力される。このように、入力レジスタ61を共有することにより、モジュールごとに入力レジスタを設ける場合と比較して部品数を削減することができ、回路全体の消費電力を削減することができる。
【0080】
また、さらに、暗号処理回路55A,55Bは、DESの換字処理であるS−BOXの処理を行うS−BOX部74を備えており、換字が必要な入力データを入力レジスタ61に書き込むだけで、対応規則に基づいて換字された結果のデータを得ることができる。つまり、当該暗号処理回路55A,55Bにおいては、ソフトウェアによる対応表の参照等の処理を行うことなく換字が可能であり、低消費電力で、かつ、高速に暗号化及び復号を行うことができる。
【0081】
なお、本実施形態の暗号処理回路55A,55Bにおいては、転置または換字を行う複数のモジュール71〜78を備え、選択レジスタ64及びマルチプレクサ65,66を用いて使用するモジュール71〜78を切り替えることとしたが、各モジュール71〜78を個別に構成することとしてもよい。例えば、初期転置のみを行う暗号処理回路を構成することも可能である。
【0082】
また、暗号処理回路55A,55Bにおいては、入力レジスタ61からの出力データを転置・換字部62に振り分ける回路として、マルチプレクサ65が用いられている。データを振り分ける回路としては、マルチプレクサ65以外にもトライステートバッファを用いることも可能である。しかし、一般的に、トライステートバッファよりもマルチプレクサの方が、出力の指示を受けてから対象のデータが出力されるまでの時間が短い。そのため、暗号処理回路55A,55Bに、トライステートバッファよりも動作の速いマルチプレクサ65を用いることにより、暗号化及び復号の処理速度を向上させることができる。
【0083】
また、暗号処理回路55A,55Bでは、複数のD−FFで構成された入力レジスタ61によりデータ入力部が実現され、トライステートバッファで構成された出力バッファ63によりデータ出力部が実現されている。これ以外にも、データ入力部には、書き込まれたデータを記憶しておくメモリ等を用いることも可能である。しかし、メモリを用いる場合、書き込まれたデータを転置・換字部62の各モジュールに読み出す動作(クロック)が必要となる。そこで、本実施形態の暗号処理回路55A,55Bの構成とすることにより、入力レジスタ61にデータが書き込まれると同時に、転置または換字された結果のデータが出力バッファ63に入力され、出力バッファ63から当該データを読み出すことが可能となる。つまり、転置・換字処理に必要なクロック数が削減され、低消費電力で、かつ、高速に暗号化及び復号を行うことができる。
【0084】
また、暗号処理回路55A,55Bにおいては、入力レジスタ61への書き込みアドレスと出力バッファ63からの読み出しアドレスとが同一である。これにより、転置または換字を行う際には、あるアドレスにデータを書き込み、そのアドレスからデータを読み出せばよいため、プログラムにおいてアドレス変換等の処理が不要であり、処理ステップを削減することができる。したがって、暗号化及び復号の処理における消費電力を低減し、かつ、処理速度を向上させることができる。
【0085】
このように、消費電力を低減し、かつ、処理速度を向上させた暗号処理回路55A,55Bをキーレスエントリーシステム1に適用することにより、子機2の電池11の消費や親機3のバッテリ25の消費を抑えることができる。また、暗号化及び復号の処理が高速に行われることにより、施錠や解錠等の操作に対するレスポンスを向上させることができる。
【0086】
以上、本発明の実施形態について説明したが、上記実施形態は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物も含まれる。
【0087】
例えば、本実施形態では、暗号処理回路55A,55Bを用いてDESの暗号化及び復号を行うことができることを説明したが、DESに限らず、トリプルDESの暗号化及び復号においても、暗号処理回路55A,55Bを用いることが可能である。また、共通鍵ブロック暗号方式であるAES(Advanced Encryption Standard)についても、同様の構成により転置または換字の処理を行う暗号処理回路を実現することができる。
【0088】
また、本実施形態においては、暗号処理回路55A,55Bの適用例としてキーレスエントリーシステム1をあげたが、キーレスエントリーシステム1に限らず、例えばICカードを用いた自動改札システムや入退室管理システム等、データの暗号化が必要な様々なシステムに適用することが可能である。
【図面の簡単な説明】
【0089】
【図1】本発明の暗号処理回路を用いる一実施形態である自動車の錠の施錠・解錠を行うキーレスエントリーシステムの全体構成を示す図である。
【図2】データ処理回路の構成を示す図である。
【図3】キーレスエントリーシステムの子機と親機との間における通信手順を示すフローチャートである。
【図4】DESの暗号化の処理の流れを示すフローチャートである。
【図5】F関数(F(R,K))の処理の流れを示す図である。
【図6】DESの復号の処理の流れを示すフローチャートである。
【図7】暗号処理回路の構成を示す図である。
【図8】初期転置におけるビット毎の対応規則を示す図である。
【図9】初期転置部の構成を示す図である。
【図10】最終転置におけるビット毎の対応規則を示す図である。
【図11】最終転置部の構成を示す図である。
【図12】拡大型転置におけるビット毎の対応規則を示す図である。
【図13】拡大型転置部の構成を示す図である。
【図14】S−BOX部の構成を示す図である。
【図15】S−BOX(S1)における対応規則を示す図である。
【図16】S−BOX部のS1の構成を示す図である。
【図17】P転置におけるビット毎の対応規則を示す図である。
【図18】P転置部の構成を示す図である。
【図19】PC1転置におけるビット毎の対応規則を示す図である。
【図20】PC1転置部の構成を示す図である。
【図21】ローテートシフトにおけるローテート数を示す図である。
【図22】ローテートシフト部の構成を示す図である。
【図23】PC2転置におけるビット毎の対応規則を示す図である。
【図24】PC2転置部の構成を示す図である。
【符号の説明】
【0090】
1 キーレスエントリーシステム 2 子機
3 親機 11 電池
12 操作スイッチ 13,21 データ処理回路
14,22 送受信回路 23 駆動回路
24 アクチュエータ 25 バッテリ
51A,51B CPU 52A,52B RAM
53A,53B EEPROM 54A,54B 乱数生成回路
55A,55B 暗号処理回路 56A,56B 入出力ポート
61 入力レジスタ 62 転置・換字部
63 出力バッファ 64 選択レジスタ
65,66 マルチプレクサ 67 アドレスデコーダ
71 初期転置部 72 最終転置部
73 拡大型転置部 74 S−BOX部
75 P転置部 76 PC1転置部
77 ローテートシフト部 78 PC2転置部
95 セレクタ 96 置換回路
97 選択レジスタ

【特許請求の範囲】
【請求項1】
複数ビットの入力データをビット毎の対応規則に基づいて並べ替えて出力する共通鍵ブロック暗号方式の転置処理を行う暗号処理回路であって、
前記複数ビットの入力データを受信し、受信した前記複数ビットの入力データを並列出力する出力ポートを有するデータ入力部と、
複数ビットのデータが並列入力される入力ポートを有し、前記入力ポートに入力された前記複数ビットのデータを出力するデータ出力部と、
前記出力ポートと前記入力ポートとを、前記ビット毎の対応規則に基づいて接続する転置部と、
を備えることを特徴とする暗号処理回路。
【請求項2】
請求項1に記載の暗号処理回路であって、
前記共通鍵ブロック暗号方式がDESであり、
前記入力データが、初期転置(Initial Permutation)における入力データであり、
前記ビット毎の対応規則が、前記初期転置におけるビット毎の対応規則であることを特徴とする暗号処理回路。
【請求項3】
請求項1に記載の暗号処理回路であって、
前記共通鍵ブロック暗号方式がDESであり、
前記入力データが、最終転置(Inverse Initial Permutation)における入力データであり、
前記ビット毎の対応規則が、前記最終転置におけるビット毎の対応規則であることを特徴とする暗号処理回路。
【請求項4】
請求項1に記載の暗号処理回路であって、
前記共通鍵ブロック暗号方式がDESであり、
前記入力データが、F関数の拡大型転置における入力データであり、
前記ビット毎の対応規則が、前記F関数の拡大型転置におけるビット毎の対応規則であることを特徴とする暗号処理回路。
【請求項5】
請求項1に記載の暗号処理回路であって、
前記共通鍵ブロック暗号方式がDESであり、
前記入力データが、F関数のS−BOXから出力されるデータであり、
前記ビット毎の対応規則が、前記F関数の当該入力データが入力される転置におけるビット毎の対応規則であることを特徴とする暗号処理回路。
【請求項6】
請求項1に記載の暗号処理回路であって、
前記共通鍵ブロック暗号方式がDESであり、
前記入力データが、縮約型転置(Permuted Choice 1)に入力される共通鍵であり、
前記ビット毎の対応規則が、前記縮約型転置におけるビット毎の対応規則であることを特徴とする暗号処理回路。
【請求項7】
請求項1に記載の暗号処理回路であって、
前記共通鍵ブロック暗号方式がDESであり、
前記入力データが、縮約型転置(Permuted Choice 2)における入力データであり、
前記ビット毎の対応規則が、前記縮約型転置におけるビット毎の対応規則であることを特徴とする暗号処理回路。
【請求項8】
請求項1に記載の暗号処理回路であって、
前記共通鍵ブロック暗号方式がDESであり、
前記入力データが、共通鍵を縮約型転置(Permuted Choice 1)により転置して得られたデータであり、
前記ビット毎の対応規則が、当該入力データと、縮約型転置(Permuted Choice 2)に入力されるデータと、のビット毎の対応規則であることを特徴とする暗号処理回路。
【請求項9】
請求項1に記載の暗号処理回路であって、
前記ビット毎の対応規則が異なる前記転置部を複数備え、
前記複数の転置部のうちの何れの転置部を用いるかを示す選択データを受信し、前記データ入力部から出力される前記入力データを前記選択データによって示される前記転置部に入力する選択部を更に備えることを特徴とする暗号処理回路。
【請求項10】
請求項9に記載の暗号処理回路であって、
前記共通鍵ブロック暗号方式がDESであり、
前記複数の転置部の前記ビット毎の対応規則が、夫々、
初期転置におけるビット毎の対応規則、
最終転置におけるビット毎の対応規則、
F関数の拡大型転置におけるビット毎の対応規則、
F関数のS−BOXから出力されるデータが入力される転置におけるビット毎の対応規則、
縮約型転置(Permuted Choice 1)におけるビット毎の対応規則、
縮約型転置(Permuted Choice 2)におけるビット毎の対応規則、
前記縮約型転置(Permuted Choice 1)から出力されるデータと、前記縮約型転置(Permuted Choice 2)に入力されるデータと、のビット毎の対応規則 の何れかであることを特徴とする暗号処理回路。
【請求項11】
請求項9に記載の暗号処理回路であって、
前記データ入力部から並列出力される前記複数ビットの入力データを対応規則に基づいて変換して前記データ出力部の前記入力ポートに並列出力する論理回路である換字部を更に備え、
前記選択データは、前記複数の転置部または前記換字部のうちの何れを用いるかを示すデータであり、
前記選択部は、前記データ入力部から出力される前記入力データを前記選択データによって示される前記転置部または前記換字部に入力すること、
を特徴とする暗号処理回路。
【請求項12】
請求項11に記載の暗号処理回路であって、
前記共通鍵ブロック暗号方式がDESであり、
前記複数の転置部の前記ビット毎の対応規則が、夫々、
初期転置におけるビット毎の対応規則、
最終転置におけるビット毎の対応規則、
F関数の拡大型転置におけるビット毎の対応規則、
F関数のS−BOXから出力されるデータが入力される転置におけるビット毎の対応規則、
縮約型転置(Permuted Choice 1)におけるビット毎の対応規則、
縮約型転置(Permuted Choice 2)におけるビット毎の対応規則、
前記縮約型転置(Permuted Choice 1)から出力されるデータと、前記縮約型転置(Permuted Choice 2)に入力されるデータと、のビット毎の対応規則 の何れかであり、
前記換字部の前記対応規則が、前記S−BOXに入力されるデータと前記S−BOXから出力されるデータとの対応規則であることを特徴とする暗号処理回路。
【請求項13】
請求項9〜12の何れか一項に記載の暗号処理回路であって、
前記選択部がマルチプレクサであることを特徴とする暗号処理回路。
【請求項14】
複数ビットの入力データを対応規則に基づいて変換して出力する共通鍵ブロック暗号方式の換字処理を行う暗号処理回路であって、
前記複数ビットの入力データを受信し、受信した前記複数ビットの入力データを並列出力する出力ポートを有するデータ入力部と、
前記データ入力部から並列出力される前記複数ビットの入力データを前記対応規則に基づいて変換して出力する論理回路である換字部と、
前記換字部から出力される複数ビットのデータが並列入力される入力ポートを有し、前記入力ポートに入力された前記複数ビットのデータを出力するデータ出力部と、
を備えることを特徴とする暗号処理回路。
【請求項15】
請求項14に記載の暗号処理回路であって、
前記共通鍵ブロック暗号方式がDESであり
前記入力データが、F関数のS−BOXに入力されるデータであり、
前記対応規則が、前記入力データと前記S−BOXから出力されるデータとの対応規則であることを特徴とする暗号処理回路。
【請求項16】
請求項1〜15の何れか一項に記載の暗号処理回路であって、
前記データ入力部が複数のD型フリップフロップで構成され、前記出力ポートが当該複数のD型フリップフロップの出力端子であり、
前記データ出力部がトライステートバッファであることを特徴とする暗号処理回路。
【請求項17】
請求項1〜15の何れか一項に記載の暗号処理回路であって、
前記データ入力部への書き込みアドレスと前記データ出力部からの読み出しアドレスとが同一であることを特徴とする暗号処理回路。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate