(57)【要約】【課題】特別に乱数用の回路を準備せずに、発生頻度が一様で無くかつ再現性が無く予測不可能性の高い乱数を発生させる。【解決手段】鍵Ａ、Ｂにより入力データに対してＤＥＳ処理を行うＤＥＳ処理回路１１，１２と、排他的論理和回路２１とを備え、ＤＥＳ処理回路１１，１２の入出力をリング状に接続し、ＤＥＳ処理回路１１，１２の出力を排他的論理和回路２１に取り込んでその排他的論理和回路２１から乱数を出力させる。【選択図】図１
2007333854.tif 000002
【特許請求の範囲】
【請求項１】
鍵Ａ、Ｂにより入力データに対してＤＥＳ処理又はＡＥＳ処理等を行う第１および第２の処理回路と、排他的論理和回路とを備え、
前記第１および第２の処理回路の入出力をリング状に接続し、前記第１および第２の処理回路の出力を前記排他的論理和回路に取り込んで演算し、前記排他的論理和回路から乱数を出力させることを特徴とする乱数発生回路。
【請求項２】
ＤＥＳ処理又はＡＥＳ処理等を行う１個の処理回路と、第１および第２の鍵レジスタと、第１および第２の出力レジスタと、排他的論理和回路とを備え、
前記第１の鍵レジスタの鍵と前記第１の出力レジスタのデータを前記処理回路に取り込んで処理した結果を前記第２の出力レジスタにセットし、前記第２の鍵レジスタの鍵と前記第２の出力レジスタのデータを前記処理回路に取り込んで処理した結果を前記第１の出力レジスタにセットすることを繰り返し、前記第１の出力レジスタのデータと前記第２の出力レジスタのデータを前記排他的論理和回路に取り込んで演算し、前記排他的論理和回路から乱数を出力させることを特徴とする乱数発生回路。
【請求項３】
請求項２に記載の乱数発生回路において、
前記第１および第２の鍵レジスタの一方は、外部入力のデータと外部入力の鍵を前記処理回路に取り込んで処理した結果がセットされ、前記第１および第２の鍵レジスタの他方は、前記外部入力のデータと前記一方の鍵レジスタの鍵を前記処理回路に取り込んで処理した結果がセットされることを特徴とする乱数発生回路。
【請求項４】
請求項２又は３に記載の乱数発生回路において、
前記第１の鍵レジスタの鍵、前記第２の鍵レジスタの鍵、又は外部入力鍵を選択して前記処理回路に入力させる第１のセレクタと、前記第１の出力レジスタのデータ、前記第２の出力レジスタのデータ、又は外部入力データを選択して前記処理回路に入力させる第２のセレクタを備えることを特徴とする特徴とする乱数発生回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、認証用ＩＤや暗号化鍵等に使用する乱数を発生する乱数発生回路に関すものである。
【背景技術】
【０００２】
有線通信や無線通信において、接続相手の認証する為に認証用ＩＤを受け渡しするが、その時、外部からの盗聴を防ぐ為に、各種暗号化処理を行って、認証用ＩＤやデータの送受を行っている。この暗号化処理としてＤＥＳ（Data Encryption Standard）やトリプルＤＥＳを採用することがある。ＤＥＳを使って暗号処理を行う場合、平文（元データ）について任意の鍵で暗号化および復号化を行う。この鍵生成や認証ＩＤ生成において乱数を使用する場合がある。
【０００３】
一般的に乱数の発生は、マイクロコントローラによるプログラム処理を使って発生させることが多い。また乱数発生回路として熱雑音を使ったＩＣ等もある。また、特許文献１で示す様にシフトレジスタを利用した例や、１つのＤＥＳ暗号回路を乱数系列として採用したり、ＤＥＳ暗号回路の鍵をパラメータ算出回路で生成する方法が提案されている。
【特許文献１】特開平０７−０３６６７２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、乱数を発生する方法として、マイクロコントローラによるプログラム処理では、非再現性が高く無く、処理方法が解読されれば乱数の予測不可能性を高めることができない。また、熱雑音等を使った乱数発生器は、高価であったり外部部品を取り付ける必要がある。さらに、特許文献１に記述されているＤＥＳを使った乱数発生回路の場合、ＤＥＳの処理内容は公開されているので、ある乱数の値から次の乱数値を予測することが可能である。特に、ＤＥＳの処理１段では、差分分解読法と呼ばれる解読法が提案されており、ＤＥＳの鍵を解読されてしまう可能性もある。また、その鍵をパラメータ算出回路で生成する方法では、ハードウェアが増加するデメリットがある。
【０００５】
本発明は以上のような点に鑑みてなされたものであり、その目的は、発生頻度が一様で無くかつ再現性が無く予測不可能性の高い乱数を発生する乱数発生回路を簡易な構成で実現することにある。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、請求項１にかかる発明は、鍵Ａ、Ｂにより入力データに対してＤＥＳ処理又はＡＥＳ処理等を行う第１および第２の処理回路と、排他的論理和回路とを備え、前記第１および第２の処理回路の入出力をリング状に接続し、前記第１および第２の処理回路の出力を前記排他的論理和回路に取り込んで演算し、前記排他的論理和回路から乱数を出力させることを特徴とする。
請求項２にかかる発明は、ＤＥＳ処理又はＡＥＳ処理等を行う１個の処理回路と、第１および第２の鍵レジスタと、第１および第２の出力レジスタと、排他的論理和回路とを備え、前記第１の鍵レジスタの鍵と前記第１の出力レジスタのデータを前記処理回路に取り込んで処理した結果を前記第２の出力レジスタにセットし、前記第２の鍵レジスタの鍵と前記第２の出力レジスタのデータを前記処理回路に取り込んで処理した結果を前記第１の出力レジスタにセットすることを繰り返し、前記第１の出力レジスタのデータと前記第２の出力レジスタのデータを前記排他的論理和回路に取り込んで演算し、前記排他的論理和回路から乱数を出力させることを特徴とする。
請求項３にかかる発明は、請求項２に記載の乱数発生回路において、前記第１および第２の鍵レジスタの一方は、外部入力のデータと外部入力の鍵を前記処理回路に取り込んで処理した結果がセットされ、前記第１および第２の鍵レジスタの他方は、前記外部入力のデータと前記一方の鍵レジスタの鍵を前記処理回路に取り込んで処理した結果がセットされることを特徴とする。
請求項４にかかる発明は、請求項２又は３に記載の乱数発生回路において、前記第１の鍵レジスタの鍵、前記第２の鍵レジスタの鍵、又は外部入力鍵を選択して前記処理回路に入力させる第１のセレクタと、前記第１の出力レジスタのデータ、前記第２の出力レジスタのデータ、又は外部入力データを選択して前記処理回路に入力させる第２のセレクタを備えることを特徴とする特徴とする。
【発明の効果】
【０００７】
本発明の乱数発生回路よれば、ＤＥＳ処理又はＡＥＳ処理等を行う処理回路を持つシステムにおいて、特別に乱数用の回路を準備せずに、発生頻度が一様で無くかつ再現性が無く予測不可能性の高い乱数を発生させることができる。
【発明を実施するための最良の形態】
【０００８】
図１は本発明の実施例の乱数発生回路の基本構成を示すブロック図である。１１は鍵ＡでＤＥＳ処理を行う第１のＤＥＳ処理回路、１２は鍵ＢでＤＥＳ処理を行う第２のＤＥＳ処理回路、２１はＤＥＳ処理回路１１，１２からの出力Ａ，出力Ｂの各ビットの排他的論理和の演算を行う排他的論理和回路である。ＤＥＳ処理回路１１の出力ＡはＤＥＳ処理回路１２に取り込まれ、ＤＥＳ処理回路１２の出力ＢはＤＥＳ処理回路１１に取り込まれるように、それらの入出力がたすきがけ（リング状）接続され、排他的論理和回路２１に入力するデータは、多段のＤＥＳ処理が行われたデータとなる。
【０００９】
ここで、初期値Ａ，Ｂは最初に乱数出力を生成するときに使用する。一度、出力Ａ，Ｂが求まれば、以後は、ＤＥＳ処理回路１１の入力には出力Ｂを、ＤＥＳ処理回路１２の入力には出力Ａを使用し、それぞれのＤＥＳ処理を実行することにより、排他論理和回路２１を介して、乱数出力が生成される。
【００１０】
出力Ａ，Ｂ、初期値Ａ，Ｂは６４ビットのデータである。鍵Ａ、Ｂはパリティを含めて６４ビットのデータである。乱数出力には６４ビットのデータが生成されるが、実際に乱数として使用する場合は、６４ビットの全部を使用することはもとより、最上位または最下位のビットのシリアルデータを使用したり、６４ビットの任意の幅のデータを使用することも可能である。
【００１１】
図４に図１の乱数発生回路を使った場合の乱数評価結果を示した。乱数の評価として、National Institute of Standard Tecno1ogyの「FIPS140-2」のテストト基準に基づいて評価を行った。「FIPS140-2」の規格の１(The MONO Bit TEST)、２(The long Run TEST)、３(The Runs TEST)、４(The Poker TEST)の基準を満たすことが確認できた。
【００１２】
図２に、図１に示した乱数発生回路の基本構成を１個のＤＥＳ処理回路で実現する具体例を示す。１０はＤＥＳ処理回路、２１は排他的論理和回路である。３１は鍵Ａを保持する鍵Ａレジスタ、３２は鍵Ｂを保持する鍵Ｂレジスタである。４１は出力Ａのデータを保持する出力Ａレジスタ、４２は出力Ｂのデータを保持する出力Ｂレジスタ、４３はレジスタ４１の出力Ａを一時保持する出力Ａ’レジスタである。５０は４種の命令（命令１：ＤＥＳ暗号化、命令２：ＤＥＳ復号化、命令３：乱数初期化、命令４：乱数発生）に応じてＤＥＳ処理回路１０のモードをセットする制御回路、５１，５２はその制御回路５０で制御されるセレクタである。
【００１３】
さて、命令１（ＤＥＳ暗号化の場合）では、制御回路５０により、ＤＥＳ処理回路１０の「ｍｏｄｅ」が暗号化用に設定され、セレクタ５１，５２がＤＥＳ処理回路１０の「Ｄｉｎ」と「ｋｅｙ」にデータＸと鍵Ｘを選択して入力する。データＸに平文（元データ）を入力すると暗号化が実行され、「Ｄｏｕｔ」に暗号化されたデータが出力される。
【００１４】
命令２（ＤＥＳ復号化の場合）では、制御回路５０により、ＤＥＳ処理回路１０の「ｍｏｄｅ」が復号号化用に設定され、セレクタ５１，５２がＤＥＳ処理回路１０の「Ｄｉｎ」と「ｋｅｙ」にデータＸと鍵Ｘを選択して入力する。データＸに暗号化されたデータを入力すれば復号化が実行され、「Ｄｏｕｔ」に復号化されたデータが出力される。
【００１５】
命令３（乱数初期化の場合）では、まず、制御回路５０により、ＤＥＳ処理回路１０の「ｍｏｄｅ」が暗号化用に設定され、セレクタ５１，５２がＤＥＳ処理回路１０の「Ｄｉｎ」と「ｋｅｙ」にデータＸと鍵Ｘを選択して入力し、ＤＥＳ処理を実行し、「Ｄｏｕｔ」から鍵Ａを出力し、これが鍵Ａレジスタ３１にセットされる。
【００１６】
次に、制御回路５０により、ＤＥＳ処理回路１０の「ｍｏｄｅ」が復号化用に設定され、セレクタ５１が「Ｄｉｎ」にデータＸを選択して入力し、セレクタ５２が「ｋｅｙ」に鍵Ａレジスタ３１の鍵Ａを選択して入力し、ＤＥＳ処理を実行し、「Ｄｏｕｔ」から鍵Ｂを出力し、これが鍵Ｂレジスタ３２にセットされる。
【００１７】
次に、制御回路５０により、ＤＥＳ処理回路１０の「ｍｏｄｅ」が暗号化用に設定され、セレクタ５１が「Ｄｉｎ」にデータＸを選択して入力し、セレクタ５２が「ｋｅｙ」に鍵Ａレジスタ３１の鍵Ａを選択して入力し、ＤＥＳ処理を実行し、「Ｄｏｕｔ」から出力Ａを出力し、これが出力Ａレジスタ４１にセットされる。
【００１８】
次に、制御回路５０により、ＤＥＳ処理回路１０の「ｍｏｄｅ」が復号化用に設定され、セレクタ５１が「Ｄｉｎ」にデータＸを選択して入力し、セレクタ５２が「ｋｅｙ」に鍵Ｂレジスタ３２の鍵Ｂを選択して入力し、ＤＥＳ処理を実行し、「Ｄｏｕｔ」から出力Ｂを出力し、これが出力Ｂレジスタ４２にセットされる。
【００１９】
以上の処理により、、鍵Ａレジスタ３１、鍵Ｂレジスタ３２、出力Ａレジスタ４１、出力Ｂレジスタ４２にそれぞれ値がセットされ、初期化が完了する。ここで、乱数の初期化で使用するデータＸ、鍵Ｘには任意の値を設定する。また、出力Ａレジスタ４１、出力Ｂレジスタ４２、鍵Ａレジスタ３１、鍵Ｂレジスタ３２の値を生成する手順、つまり、上記に述べたレジスタへの値のセットの順番や暗号や復号の切り替え、「Ｄｉｎ」や「ｋｅｙ」の切り替えの組み合わせは、適宜変更することが可能である。
【００２０】
命令４（乱数発生の場合）では、まず、制御回路５０により、ＤＥＳ処理回路１０の「ｍｏｄｅ」が暗号化用又は複合化用に設定され、セレクタ５１，５２がＤＥＳ処理回路１０の「Ｄｉｎ」と「ｋｅｙ」に、出力Ｂレジスタ４２の値と鍵Ａレジスタ３１の値を選択して入力させ、ＤＥＳ処理を実行し、「Ｄｏｕｔ」から出力Ａを出力し、これが出力Ａレジスタ４１にセットされる。この時に出力Ａレジスタ４１の値を出力Ａ’レジスタ４３に退避しておく。
【００２１】
次に、制御回路５０により、ＤＥＳ処理回路１０の「ｍｏｄｅ」が暗号化用又は複合化用に設定され、セレクタ５１，５２がＤＥＳ処理回路１０の「Ｄｉｎ」と「ｋｅｙ」に、出力Ａ’レジスタ４３の値と鍵Ｂレジスタ３２の値を選択して入力させ、ＤＥＳ処理を実行し、「Ｄｏｕｔ」から出力Ｂを出力し、これが出力Ｂレジスタ４２にセットされる。その後、出力Ａレジスタ４１の値と出力Ｂレジスタ４２の値が排他的論理和回路２１で排他的論理和演算され、乱数出力が得られる。
【００２２】
ここで、出力Ａレジスタ４１の値を出力Ａ’レジスタ４３に退避するのは、図１の乱数発生回路構成を実現する場合に、ＤＥＳ処理回路１２の入力データが処理途中で変化するの避ける為である。
【００２３】
なお、図２で示された回路によってトリプルＤＥＳの暗号化を行う場合は、平文（元データ）Ｘと鍵Ｘ１を設定して命令１で暗号化処理を行い、そのＤＥＳ出力（Ｄｏｕｔ）をデータＸに設定すると共に鍵Ｘに鍵Ｘ２を設定して、再び命令１で暗号化処理を行い、そのＤＥＳ出力をデータＸに設定すると共に鍵Ｘに鉄Ｘ３を設定して、再び命令１で暗号化処理を行うことにより、実行できる。トリプルＤＥＳの復号化も同様に、鍵Ｘ３，鍵Ｘ２，鍵Ｘ１を使い、命令２を３回実行して実現できる。
【００２４】
図３に２個のＤＥＳ回路１１，１２を使った別の実施例の乱数発生回路を示す。これは、ＤＥＳ処理回路１１の出力Ａ２をＤＥＳ処理回路１２の入力とし、そのＤＥＳ処理回路１２の出力ＢをＤＥＳ処理回路１１の入力に戻すようにした回路である。出力Ａの値と出力Ｂの値を排他的論理和回路４１で演算することにより乱数出力を得る。ＤＥＳ処理回路１１にのみ初期値Ｙを与える。図１の構成ではＤＥＳ処理回路１１と１２が同時に実行されるのに対して、図３の構成ではＤＥＳ処理回路１１での実行の後にＤＥＳ処理回路１２が実行される違いがある。
【００２５】
図３の構成を１個のＤＥＳ処理回路で実行する場合は、図２の回路において、出力Ａ’レジスタ４３を削除した回路になる。
【００２６】
なお、上記では、暗号化回路としてＤＥＳ処理回路を採用しているシステムの場合について説明したが、暗号化回路として、ＡＥＳ（Advanced Encryption Standard)処理回路等の他の暗号化回路を使うシステムにおいても、ＤＥＳの代わりにそれぞれの暗号化回路を使用することにより、同様な乱数発生回路を構成することが可能である。
【図面の簡単な説明】
【００２７】
【図１】本発明の実施例の乱数発生回路の基本構成を示すブロック図である。
【図２】図１の乱数発生回路の具体的回路ブロック図である。
【図３】本発明の別の実施例の乱数発生回路の基本構成を示すブロック図である。
【図４】図１の乱数発生回路の評価結果の説明図である。
【符号の説明】
【００２８】
１０〜１２：ＤＥＳ処理回路
２１：排他的論理和回路
３１：鍵Ａレジスタ
３２：鍵Ｂレジスタ
４１：出力Ａレジスタ
４２：出力Ｂレジスタ
４３：出力Ａ’レジスタ
５０：制御回路
５１，７２：セレタタ
【図１】
2007333854.tif 000003
【図２】
2007333854.tif 000004
【図３】
2007333854.tif 000005
【図４】
2007333854.tif 000006