JP4326482B2 - 暗号処理回路 - Google Patents

暗号処理回路 Download PDF

Info

Publication number
JP4326482B2
JP4326482B2 JP2005028116A JP2005028116A JP4326482B2 JP 4326482 B2 JP4326482 B2 JP 4326482B2 JP 2005028116 A JP2005028116 A JP 2005028116A JP 2005028116 A JP2005028116 A JP 2005028116A JP 4326482 B2 JP4326482 B2 JP 4326482B2
Authority
JP
Japan
Prior art keywords
data
bit
input
output
transposition
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005028116A
Other languages
English (en)
Other versions
JP2006215281A (ja
Inventor
静 石村
昭 池谷
一雅 千明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sanyo Electric Co Ltd
Original Assignee
Sanyo Electric Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sanyo Electric Co Ltd filed Critical Sanyo Electric Co Ltd
Priority to JP2005028116A priority Critical patent/JP4326482B2/ja
Priority to TW095103544A priority patent/TWI290426B/zh
Priority to US11/275,880 priority patent/US20060171532A1/en
Priority to KR1020060010144A priority patent/KR100828272B1/ko
Publication of JP2006215281A publication Critical patent/JP2006215281A/ja
Application granted granted Critical
Publication of JP4326482B2 publication Critical patent/JP4326482B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、共通鍵ブロック暗号方式に用いられる暗号処理回路に関する。
近年、キーレスエントリーシステムのように、無線等の通信手段によりデータを送受信することが広く行われている。キーレスエントリーシステムの場合、第三者にデータが不正に解読されることのないよう、データは暗号化された上で送受信される。
データの暗号化方式は多種多様であるが、DES(Data Encryption Standard)やAES(Advanced Encryption Standard)等の標準規格を用いることが望ましい。これらの標準規格の暗号化方式の場合、不正に解読されるリスクの算出が容易であり、不正に解読された場合の保険料をこのリスクに基づいて算定することができるからである。逆に、標準規格以外の独自規格等の暗号化方式を用いる場合、不正に解読されるリスクの算出が難しく、概して、保険料が高くなることが多い。
このようなDESやAES等の共通鍵ブロック暗号化方式では、データをいくつかのブロックに分割し、そのブロックごとに換字処理が行われる。この換字処理は、入力データと出力データとの対応を示す対応表をメモリに記憶しておき、与えられた入力データに対応する出力データを対応表に基づいて求めるというソフトウェアによる処理により実現することもできる。
しかし、換字処理をソフトウェアで実現する場合、メモリに記憶された対応表の参照等を繰り返し行うため、処理負荷が高く、消費電力が大きい。そのため、キーレスエントリーシステムに、換字処理がソフトウェアで実現された共通鍵ブロック暗号方式を採用すると、利用者が施錠・解錠の操作を行う子機の電池消耗が早くなり、また、施錠・解錠に対するレスポンスが低下してしまうという問題があった。そこで、共通鍵ブロック暗号方式における換字処理等をハードウェアにより実現するする方法が提案されている(例えば、特許文献1)。
特開2004−178507号公報
しかしながら、換字処理をハードウェアにより実現した場合、入力データと出力データとの対応規則が固定化されてしまう。そのため、差分攻撃法や線形攻撃法等によってその対応規則が解析されたような場合等に、ハードウェアを修正しないと換字処理における対応規則を変更することができず、安全性が十分ではなかった。
本発明は上記課題を鑑みてなされたものであり、共通鍵ブロック暗号方式の換字処理 を行う暗号処理回路において、ハードウェアを修正せずに換字処理における入力データと出力データとの対応規則を変更可能とすることにより、安全性を高めることを目的とする。
上記目的を達成するため、本発明の暗号処理回路は、複数ビットの入力データを変換して出力する共通鍵ブロック暗号方式の換字処理を行う暗号処理回路であって、前記入力データと、前記入力データの並べ替えを指示する選択データと、を受信し、前記入力データを前記選択データに基づいて並べ替えたデータを所定の対応規則に基づいて変換して出力する論理回路であることとする。
また、前記共通鍵ブロック暗号方式がDESであり、前記所定の対応規則が、DESのS−BOXに入力されるデータと前記S−BOXから出力されるデータとの対応規則であることとすることができる。
さらに、前記論理回路は、前記S−BOXに入力される前記複数ビット(例えば6ビット)の入力データの最上位ビット及び最下位ビットを前記選択データに基づいて並べ替えて出力する選択回路と、前記選択回路から出力される前記複数ビットの入力データの最上位ビット及び最下位ビットと、前記複数ビットの入力データの最上位ビット及び最下位ビット以外のビットと、を前記所定の対応規則に基づいて変換して出力する換字回路と、を備えることとすることができる。
共通鍵ブロック暗号方式の換字処理を行う暗号処理回路において、ハードウェアを修正せずに換字処理における入力データと出力データとの対応規則を変更可能とすることにより、安全性を高めることができる。
==全体構成==
図1は、本発明の暗号処理回路を用いる一実施形態である自動車の錠の施錠・解錠を行うキーレスエントリーシステム1の全体構成を示す図である。キーレスエントリーシステム1は、携帯型の子機2と自動車等に搭載される親機3とを含んで構成されている。子機2は、例えば、自動車のドアロックやステアリングロックの鍵穴に差し込むキーのハンドル部等に設けられている。また、親機3は、自動車側に設けられている。
子機2は、電池11、操作スイッチ12、データ処理回路13、及び送受信回路14を備えている。電池11は、子機2の各部の動作に必要な電力を供給するためのものである。操作スイッチ12は、利用者からの施錠・解錠の指示を受け付けるスイッチである。データ処理回路13は、施錠・解錠の際に必要となる認証用のデータの生成等を行う。送受信回路14は、データ処理回路13から出力されるデジタルデータをアナログデータに変換し、これを増幅して電磁波として送出する回路である。また、送受信回路14は、親機3から送出された電磁波を受信し、これをデジタルデータに変換してデータ処理回路13に入力することもできる。なお、電磁波としては、電波や赤外線が用いられる。
親機3は、データ処理回路21、送受信回路22、及び駆動回路23を備えている。データ処理回路21は、子機2から受信する認証用のデータに基づいた認証処理等を行う。送受信回路22は、子機2から送出された電磁波を受信し、これをデジタルデータに変換してデータ処理回路22に入力する回路である。また、送受信回路22は、データ処理回路21から出力されるデジタルデータをアナログデータに変換し、これを増幅して電磁波として送出することもできる。駆動回路23は、自動車の錠を施錠・解錠するロック機構を作動させるアクチュエータ24に駆動信号を送信する回路である。なお、親機2の各部21〜23には、自動車のバッテリ25から電力が供給されている。
==データ処理回路の構成==
図2は、データ処理回路13の構成を示す図である。データ処理回路13は、CPU51A、RAM(Random Access Memory)52A、EEPROM(Electrically Erasable Programmable Read-Only Memory)53A、乱数生成回路54A、暗号処理回路55A、及び入出力ポート56Aを備えている。そして、各部51A〜56Aはバス57Aにより互いに通信可能に接続されている。
CPU51Aは、データ処理回路13の全体を制御するものである。RAM52Aには、CPU51Aが使用する作業用データ等が記憶される。EEPROM53Aは書き換え可能な不揮発性メモリであり、プログラムや保存用のデータ等が記憶されている。乱数生成回路54Aは、暗号化の処理において用いられる疑似乱数又は物理乱数を生成する回路である。暗号処理回路55Aは、共通鍵ブロック暗号方式における転置又は換字の処理を行う回路である。入出力ポート56Aは、データ処理回路13の外部にある操作スイッチ12や送受信回路14等とデータの送受信を行うためのインタフェースである。
なお、本実施形態では、共通鍵ブロック暗号方式としてDES(Data Encryption Standard)を用いることとする。このようなデータ処理回路13では、プログラムの実行や暗号処理回路55Aの制御等により、DESの暗号化又は復号の処理が行われる。なお、データ処理回路21も同様の構成であり、CPU51B、RAM52B、EEPROM53B、乱数生成回路54B、暗号処理回路55B、入出力ポート56B、及び各部51B〜56Bを互いに通信可能に接続するバス57Bを備えている。
==通信手順==
図3は、キーレスエントリーシステム1の子機2と親機3との間における通信手順を示すフローチャートである。まず、子機2の操作スイッチ12の操作等により送信処理が起動される(S301)。子機2のデータ処理回路13は、EEPROM53Aに記憶されている車番(車体番号)を親機3に送信する(S302)。親機3のデータ処理回路21は、子機2から車番が送信されてくるのを待機しており(S303)、子機2から送信されてくる車番を受信すると、当該車番をEEPROM53Bに記憶されている車番と比較する(S304)。
車番が一致しない場合(S304:NG)、親機3のデータ処理回路21は、別の自動車の車番が送信されてきたと判断し、受信待機処理に戻る(S303)。車番が一致すると(S304:OK)、データ処理回路21は、乱数生成回路54Bを用いて64ビットの一時鍵R0を生成する(S305)。そして、データ処理回路21は、この一時鍵R0を、EEPROM53Bに記憶されている共通鍵Kを用いてDESで暗号化して子機2に送信する(S306)。
子機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)。
その後、子機2のデータ処理回路13は、施錠・解錠指示等の情報データを、一時鍵R1を用いてDESで暗号化して親機3に送信する(S311)。親機3のデータ処理回路21は、子機2から送信されてくる暗号化された情報データを受信すると、一時鍵R1を用いて情報データを復号する(S312)。そして、データ処理回路21は、情報データに基づいて、例えば、駆動回路23を介してアクチュエータ24に施錠・解錠指示信号を送信する。
このように、キーレスエントリーシステム1においては、子機2及び親機3において乱数生成回路54A,54Bを用いて一時鍵を生成し、DESによる暗号化及び復号の処理を繰り返し行うことにより、セキュリティ強度を高めている。
==DESの暗号化・復号の処理==
図4は、DESの暗号化の処理の流れを示すフローチャートである。DESの暗号化処理は、第1段から第16段までの処理で構成されている。まず、暗号化の対象となる64ビットの平文を初期転置(Initial Permutation)により並べ替え、第1段の入力データとなる左側の32ビット(L)及び右側の32ビット(R)を生成する(S401)。そして、第2段の入力データとなるL及びRは次式(1,2)により求められる。
Figure 0004326482
ここで、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を生成することができる。
このようにして求められたL及びRが第2段の入力データとなり、第16段まで繰り返し処理が実行される。つまり、L及びRは、次式(3,4)により求められる。
Figure 0004326482
そして、第16段の出力データであるL16及びR16に対して最終転置(Inverse Initial Permutation)を行うことにより、平文を暗号化した暗号文を得ることができる(S406)。
図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)。
図6は、DESの復号の処理の流れを示すフローチャートである。DESの復号処理は、暗号化処理と同様に第1段から第16のまでの処理で構成されている。まず、復号の対象となる64ビットの暗号文を初期転置により並べ替え、第1段の入力データとなる左側の32ビット(R16)及び右側の32ビット(L16)を生成する(S601)。そして、第2段の入力データとなるR15及びL15は次式(5)及び(6)により求められる。
Figure 0004326482
ここで、K16は、64ビットの共通鍵から生成された鍵である。まず、64ビットの共通鍵をPC1転置により56ビットに変換し、左側の28ビット(C16)及び右側の28ビット(D16)を生成する(S602)。そして、C16及びD16をPC2転置により48ビットに変換することにより、K16が得られる(S603)。また、C16及びD16を右ローテートシフトし、PC2転置を行うことにより、第2段以降で用いられる鍵K15〜Kを生成することができる。
このようにして求められたR15及びL15が第2段の入力データとなり、第16段まで繰り返し処理が実行される。つまり、RおよびLは、次式(7)及び(8)により求められることとなる。
Figure 0004326482
そして、第16段の出力データであるR及びLに対して最終転置を行うことにより、暗号文を復号した平文を得ることができる(S604)。なお、復号処理におけるL、R、C、D、Kは、暗号化処理におけるL、R、C、D、Kと同一のものである。また、C=C16、D=D16である。
==暗号処理回路の構成==
本実施形態では、図4〜図6で説明した暗号化及び復号の処理における転置・換字処理が暗号処理回路55A,55Bを用いて実現されている。暗号処理回路55A及び暗号処理回路55Bは同様の構成であるため、以後、暗号処理回路55Aについて説明する。図7は、暗号処理回路55Aの構成を示す図である。暗号処理回路55Aは、入力レジスタ(データ入力部)61、転置・換字部62、出力バッファ(データ出力部)63、選択レジスタ64、マルチプレクサ65,66、及びアドレスデコーダ67を備えている。
入力レジスタ61は、複数のD型フリップフロップ(以後「D−FF」と称する)を用いて構成された64ビットのレジスタであり、D−FFの入力端子Dがバス57Aのデータバスに接続され、D−FFの出力端子Q(出力ポート)がマルチプレクサ65を介して転置・換字部62に接続されている。また、入力レジスタ61を構成するD−FFのクロック入力端子には、書き込み信号(WRITE)が入力される。なお、例えば、データバスが8ビットである場合には、入力レジスタ61は、8ビットのレジスタを8つ用いた構成とすることができる。
転置・換字部62は、初期転置部71、最終転置部72、拡大型転置部73、S−BOX部74、P転置部75、PC1転置部76、ローテートシフト部77、及びPC2転置部78の8つのモジュールを備えている。転置・換字部62の各モジュール71〜78は、入力レジスタ61から入力されるデータに対して転置又は換字処理を行い、マルチプレクサ66を介して出力バッファ63に出力する。
なお、S−BOX部74が本発明の換字部に該当し、その他の各部71,72,73,75,76,77,78が本発明の転置部に該当する。また、選択レジスタ64、マルチプレクサ65、及びマルチプレクサ66が本発明の選択部に該当する。
出力バッファ63は、64ビットのトライステートバッファであり、その64ビットの入力端子(入力ポート)にマルチプレクサ66を介して転置・換字部62が接続されており、出力端子がバス57Aのデータバスに接続されている。なお、例えば、データバスが8ビットである場合には、出力バッファ63は、8ビットのトライステートバッファを8つ用いた構成とすることができる。
選択レジスタ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に出力する。
アドレスデコーダ67は、バス57Aのアドレスバスに接続されており、アドレスバスで指定されたアドレスに該当する回路を選択する。なお、本実施形態においては、入力レジスタ61への書き込みアドレスと、出力バッファ63からの読み出しアドレスは同一であることとする。
データ処理回路13において、暗号処理回路55Aを用いて転置又は換字処理を行う流れについて説明する。まず、CPU51Aは、アドレスバスに選択レジスタ64のアドレスを出力し、データバスに転置・換字部62の所望のモジュールを示す選択データを出力し、書き込み信号(WRITE)を出力することにより、選択レジスタに選択データを書き込む。続いて、CPU51Aは、アドレスバスに入力レジスタ61のアドレスを出力し、データバスに転置又は換字処理の入力データを出力し、書き込み信号(WRITE)を出力することにより、入力レジスタ61に当該入力データを書き込む。これにより、入力レジスタ61に入力されたデータがマルチプレクサ65を介して所望のモジュールに入力され、転置又は換字処理の結果がマルチプレクサ66を介して出力バッファ63に出力される。
その後、CPU51Aは、入力レジスタ61と同一のアドレスである出力バッファ63のアドレスをアドレスバスに出力し、出力バッファ63に読み出し信号(READ)を入力する。これにより、入力データに対して転置又は換字処理を行ったデータが出力バッファ63からデータバスに出力される。このように、CPU51Aは、入力レジスタ61にデータを書き込み、出力バッファ63からデータを読み出すだけで、転置又は換字処理を行うことができる。
==転置・換字部の構成==
次に、転置・換字部62の各モジュール71〜78の構成について説明する。
(1)初期転置
図8は、初期転置におけるビット毎の対応規則91を示す図である。この対応規則91は、例えば、初期転置部71に入力される64ビットの入力データの58ビット目が出力データの1ビット目となり、入力データの50ビット目が出力データの2ビット目となるというような、64ビットの入力データと64ビットの出力データとのビット毎の対応を示すものである。
図9は、初期転置部71の構成を示す図である。図に示すように、初期転置部71の入力側と出力側とが、対応規則91に基づいて結線されている。例えば、入力側の58ビット目が出力側の1ビット目となるように結線され、入力側の50ビット目が出力側の2ビット目となるように結線されている。つまり、初期転置部71は、マルチプレクサ65,66を介して、入力レジスタ61の出力端子Qと出力バッファ63の入力端子とを対応規則91に基づいて接続していることとなる。
(2)最終転置
図10は、最終転置におけるビット毎の対応規則92を示す図である。この対応規則92は、例えば、最終転置部72に入力される64ビットの入力データの40ビット目が出力データの1ビット目となり、入力データの8ビット目が出力データの2ビット目となるというような、64ビットの入力データと64ビットの出力データとのビット毎の対応を示すものである。
図11は、最終転置部72の構成を示す図である。図に示すように、最終転置部72の入力側と出力側とが、対応規則92に基づいて結線されている。例えば、入力側の40ビット目が出力側の1ビット目となるように結線され、入力側の8ビット目が出力側の2ビット目となるように結線されている。つまり、最終転置部72は、マルチプレクサ65,66を介して、入力レジスタ61の出力端子Qと出力バッファ63の入力端子とを対応規則92に基づいて接続していることとなる。
(3)拡大型転置
図12は、拡大型転置におけるビット毎の対応規則93を示す図である。この対応規則93は、例えば、拡大型転置部73に入力される32ビットの入力データの32ビット目が出力データの1ビット目となり、入力データの1ビット目が出力データの2ビット目となるというような、32ビットの入力データと48ビットの出力データとのビット毎の対応を示すものである。なお、拡大型転置においては、32ビットの入力データを48ビットの出力データに拡大するため、入力データのうちの16ビットは、出力データの2ビットに出力される。例えば、入力データの1ビット目は、出力データの2ビット目及び48ビット目の2ビットに出力される。
図13は、拡大型転置部73の構成を示す図である。図に示すように、拡大型転置部73の入力側と出力側とが、対応規則93に基づいて結線されている。例えば、入力側の32ビット目が出力側の1ビット目となるように結線され、入力側の1ビット目が出力側の2ビット目となるように結線されている。つまり、拡大型転置部73は、マルチプレクサ65,66を介して、入力レジスタ61の出力端子Qと出力バッファ63の入力端子とを対応規則93に基づいて接続していることとなる。
(4)S−BOX
図14は、S−BOX部74の構成を示す図である。図に示すように、S−BOX部74は、S1〜S8で構成されており、48ビットの入力データの先頭から6ビットごとに分割したデータがS1〜S8に入力される。そして、例えば、S1においては、6ビットの入力データが対応規則に基づいて4ビットに変換されて出力される。同様に、S2〜S8においても、6ビットの入力データが夫々の対応規則に基づいて4ビットに変換されて出力される。
図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に対しても対応規則が定められている。
図16は、S−BOX部74のS1の構成を示す図である。図に示すように、S1は、セレクタ95、置換回路96、及び選択回路97を備えている。また、S1〜S8共通で用いられる選択レジスタ98が設けられている。なお、セレクタ95及び置換回路96が本発明の換字回路に該当する。
セレクタ95には、選択回路97を介してB1及びB6が入力され、その入力に従い、対応規則94のどの行が選択されるかを示す信号を置換回路96に出力する。置換回路96には、B2〜B5を対応規則94の各行の値に変換する論理回路が構成されており、B2〜B5を、セレクタ95からの信号に基づいて変換して出力する。
選択レジスタ98は、複数のD−FFを用いて構成された、例えば8ビットのレジスタであり、D−FFの入力端子Dがバス57Aのデータバスに接続され、D−FFの出力端子Qが選択回路97に接続されている。そして、選択回路97は、選択レジスタ98から出力される選択データに従って、セレクタ95に出力するB1とB6とを並べ替えることができる。例えば、選択レジスタ98から選択データ“0”が出力されている場合、選択回路97は、1ビット目97aからB1を出力し、2ビット目97bからB6を出力する。また、選択レジスタ98から選択データ“1”が出力されている場合、選択回路97は、1ビット目97aからB6を出力し、2ビット目97bからB1を出力する。
つまり、前述した入力データ“110000”の場合、選択レジスタ98から選択データ“1”が出力されている場合、選択回路97からセレクタ95に入力されるデータは“01”となり2行目が選択され、2行目の8列目にある10進の“10”を2進で表した“1010”が出力される。このように、選択レジスタ98に書き込まれる選択データを変化させることにより、S1の対応規則94を変化させることができる。
また、S2〜S8についても、S1と同様に構成されている。つまり、S1〜S8で構成されるS−BOX部74は、マルチプレクサ65,66を介して、入力レジスタ61の出力端子Qから並列出力される入力データをS1〜S8の対応規則に基づいて変換して出力バッファ63の入力端子に出力する論理回路であると言うことができる。
なお、本実施形態においては、最上位と最下位の2ビットを選択回路97で並べ替えてセレクタ95に入力し、残りの4ビットを置換回路96に入力する構成としたが、S−BOX部74の構成はこれに限られず、入力される6ビット(B1〜B6)を選択データに基づいて並べ替えたデータを、対応規則に基づいて4ビットに変換する論理回路であればよい。
(5)P転置
図17は、P転置におけるビット毎の対応規則101を示す図である。この対応規則101は、例えば、最終転置部75に入力される32ビットの入力データの16ビット目が出力データの1ビット目となり、入力データの7ビット目が出力データの2ビット目となるというような、32ビットの入力データと32ビットの出力データとのビット毎の対応を示すものである。
図18は、P転置部75の構成を示す図である。図に示すように、P転置部75の入力側と出力側とが、対応規則101に基づいて結線されている。例えば、入力側の16ビット目が出力側の1ビット目となるように結線され、入力側の7ビット目が出力側の2ビット目となるように結線されている。つまり、P転置部75は、マルチプレクサ65,66を介して、入力レジスタ61の出力端子Qと出力バッファ63の入力端子とを対応規則101に基づいて接続していることとなる。
(6)PC1転置
図19は、PC1転置におけるビット毎の対応規則102を示す図である。この対応規則102は、例えば、PC1転置部76に入力される64ビットの入力データの57ビット目が出力データの1ビット目となり、入力データの49ビット目が出力データの2ビット目となるというような、64ビットの入力データと56ビットの出力データとのビット毎の対応を示すものである。なお、PC1転置においては、64ビットの入力データを56ビットの出力データに縮約するため、入力データのうちの8ビットは出力データに出力されない。
図20は、PC1転置部76の構成を示す図である。図に示すように、PC1転置部76の入力側と出力側とが、対応規則102に基づいて結線されている。例えば、入力側の57ビット目が出力側の1ビット目となるように結線され、入力側の49ビット目が出力側の2ビット目となるように結線されている。つまり、PC1転置部76は、マルチプレクサ65,66を介して、入力レジスタ61の出力端子Qと出力バッファ63の入力端子とを対応規則102に基づいて接続していることとなる。
(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で対応したものであり、他の転置処理と同様にビット毎の対応規則であると言うことができる。
図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に基づいて接続していることとなる。
なお、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を生成するためのローテートシフトを一度の処理で行うことができるため、暗号化及び復号の処理の処理速度を向上させることができる。
(8)PC2転置
図23は、PC2転置におけるビット毎の対応規則104を示す図である。この対応規則104は、例えば、PC2転置部78に入力される56ビットの入力データの14ビット目が出力データの1ビット目となり、入力データの17ビット目が出力データの2ビット目となるというような、56ビットの入力データと48ビットの出力データとのビット毎の対応を示すものである。なお、PC2転置においては、56ビットの入力データを48ビットの出力データに縮約するため、入力データのうちの8ビットは出力データに出力されない。
図24は、PC2転置部78の構成を示す図である。図に示すように、PC2転置部78の入力側と出力側とが、対応規則104に基づいて結線されている。例えば、入力側の14ビット目が出力側の1ビット目となるように結線され、入力側の17ビット目が出力側の2ビット目となるように結線されている。つまり、PC2転置部78は、マルチプレクサ65,66を介して、入力レジスタ61の出力端子Qと出力バッファ63の入力端子とを対応規則104に基づいて接続していることとなる。
以上、本発明の一実施形態である暗号処理回路55A,55Bを適用したキーレスエントリーシステム1について説明した。前述したように、暗号処理回路55A,55BのS−BOX部74は、S1〜S8の各S−BOXに入力される6ビットのデータを選択レジスタ98から出力される選択データに基づいて並べ替えたデータを所定の対応規則に基づいて変換して出力する。つまり、選択レジスタに記憶されている選択データを書き換えることにより、ハードウェアを修正せずにS−BOXにおける入力データと出力データとの対応規則を変更可能とし、安全性を高めることができる。とくに、本実施形態の暗号処理回路55A,55BのS−BOX部74においては、6ビットの入力データの最上位ビット及び最下位ビットを選択データに基づいて並べ替えることにより、例えばS1における対応規則94において選択される行を、ハードウェアを修正せずに変更可能とすることにより、安全性を高めている。
なお、本実施形態においては、本発明の暗号処理回路を共通鍵ブロック暗号方式の一つであるDESに適用した例を説明したが、共通鍵ブロック暗号方式はDESに限られず、トリプルDESやAES(Advanced Encryption Standard)等の共通鍵ブロック暗号方式においても、同様の構成によりハードウェアを修正せずに換字処理における入力データと出力データとの対応規則を変更可能とし、安全性を高めることができる。
また、本実施形態においては、暗号処理回路55A,55Bの適用例としてキーレスエントリーシステム1をあげたが、キーレスエントリーシステム1に限らず、例えばICカードを用いた自動改札システムや入退室管理システム等、データの暗号化が必要な様々なシステムに適用することが可能である。
以上、本発明の実施形態について説明したが、上記実施形態は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物も含まれる。
本発明の暗号処理回路を用いる一実施形態である自動車の錠の施錠・解錠を行うキーレスエントリーシステムの全体構成を示す図である。 データ処理回路の構成を示す図である。 キーレスエントリーシステムの子機と親機との間における通信手順を示すフローチャートである。 DESの暗号化の処理の流れを示すフローチャートである。 F関数(F(R,K))の処理の流れを示す図である。 DESの復号の処理の流れを示すフローチャートである。 暗号処理回路の構成を示す図である。 初期転置におけるビット毎の対応規則を示す図である。 初期転置部の構成を示す図である。 最終転置におけるビット毎の対応規則を示す図である。 最終転置部の構成を示す図である。 拡大型転置におけるビット毎の対応規則を示す図である。 拡大型転置部の構成を示す図である。 S−BOX部の構成を示す図である。 S−BOX(S1)における対応規則を示す図である。 S−BOX部のS1の構成を示す図である。 P転置におけるビット毎の対応規則を示す図である。 P転置部の構成を示す図である。 PC1転置におけるビット毎の対応規則を示す図である。 PC1転置部の構成を示す図である。 ローテートシフトにおけるローテート数を示す図である。 ローテートシフト部の構成を示す図である。 PC2転置におけるビット毎の対応規則を示す図である。 PC2転置部の構成を示す図である。
符号の説明
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 選択回路 98 選択レジスタ

Claims (1)

  1. 複数ビットの入力データを変換して出力する共通鍵ブロック暗号方式がDESであり、所定の対応規則が、DESのS−BOXに入力されるデータと前記S−BOXから出力されるデータとの対応規則を行う暗号処理回路であって、
    前記入力データと、前記入力データの並べ替えを指示する選択データと、を受信し、前記入力データを前記選択データに基づいて並べ替えたデータを所定の対応規則に基づいて変換して出力する論理回路と、を備え、
    前記論理回路は、
    前記S−BOXに入力される前記複数ビットの入力データの最上位ビット及び最下位ビットを前記選択データに基づいて並べ替えて出力する選択回路と、
    前記選択回路から出力される前記複数ビットの入力データの最上位ビット及び最下位ビットと、前記複数ビットの入力データの最上位ビット及び最下位ビット以外のビットと、を前記所定の対応規則に基づいて変換して出力する換字回路と、
    を有することを特徴とする暗号処理回路。
JP2005028116A 2005-02-03 2005-02-03 暗号処理回路 Expired - Fee Related JP4326482B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2005028116A JP4326482B2 (ja) 2005-02-03 2005-02-03 暗号処理回路
TW095103544A TWI290426B (en) 2005-02-03 2006-01-27 Encryption processing circuit
US11/275,880 US20060171532A1 (en) 2005-02-03 2006-02-01 Encryption Processing Circuit
KR1020060010144A KR100828272B1 (ko) 2005-02-03 2006-02-02 암호 처리 회로

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005028116A JP4326482B2 (ja) 2005-02-03 2005-02-03 暗号処理回路

Publications (2)

Publication Number Publication Date
JP2006215281A JP2006215281A (ja) 2006-08-17
JP4326482B2 true JP4326482B2 (ja) 2009-09-09

Family

ID=36978567

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005028116A Expired - Fee Related JP4326482B2 (ja) 2005-02-03 2005-02-03 暗号処理回路

Country Status (1)

Country Link
JP (1) JP4326482B2 (ja)

Also Published As

Publication number Publication date
JP2006215281A (ja) 2006-08-17

Similar Documents

Publication Publication Date Title
KR100828272B1 (ko) 암호 처리 회로
US8457306B2 (en) Cryptographic module and IC card
US20030002664A1 (en) Data encryption and decryption system and method using merged ciphers
KR100737651B1 (ko) 난수 생성 회로
US8428251B2 (en) System and method for stream/block cipher with internal random states
EP1860630B1 (en) Data converting apparatus and data converting method
EP0802653A2 (en) Multi-cycle non-parallel data encryption engine
CN111722831B (zh) 一种加密系统及其实现方法
JP2006215824A (ja) 乱数生成回路
JP2011512562A (ja) アクセス及び通信に関するデータのランダム暗号化及び復号化方法
US6466669B1 (en) Cipher processor, IC card and cipher processing method
US8024583B2 (en) Confidential information processing host device and confidential information processing method
EP1059760A1 (en) Method for the block-encryption of discrete data
JP2006215280A (ja) 暗号処理回路
JP4326482B2 (ja) 暗号処理回路
US20030235298A1 (en) Shifting an encryption key in either a first or second direction via a uni-directional shifting unit
KR100456599B1 (ko) 병렬 디이에스 구조를 갖는 암호 장치
EP2413305B1 (en) Data processing device and data processing method
US20070140482A1 (en) Method for storing data in a random access memory and encryption and decryption device
JP2006215825A (ja) 乱数生成回路
KR100403820B1 (ko) 암호화 처리장치 그 방법
JP4515716B2 (ja) 拡大鍵生成装置、暗号化装置および暗号化システム
JP4395527B2 (ja) 情報処理装置
JP2000047580A (ja) 暗号変換装置、復号変換装置、暗号通信装置および自動料金徴収装置
EP1403840B1 (en) Arithmetic device and encryption/decryption device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071228

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090303

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090408

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090512

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090609

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120619

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120619

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees