(57)【特許請求の範囲】
【請求項１】
物理乱数を生成し、出力する物理乱数生成素子と、
前記物理乱数をデジタル化し、乱数列を出力するデジタル化回路と、
前記乱数列を検定する検定回路と、
前記乱数列が入力されるシフトレジスタと、前記シフトレジスタに記憶された前記乱数列とエラー訂正符号生成行列との乗算を行う乗算部と、前記検定回路による検定結果に応じてオンまたはオフが切り替わる切り替えスイッチと、を有し、前記検定回路による検定結果が不合格の場合に、前記切り替えスイッチが切り替わることにより、前記乗算部の出力を訂正された乱数列として出力するエラー訂正符号回路と、
を備え、前記検定回路は、前記検定結果が不合格の場合に前記訂正された乱数列を検定し、
前記シフトレジスタと前記乗算部とは、線形フィードバックシフトレジスタを構成し、
前記エラー訂正符号回路は、前記デジタル化回路と前記検定回路との間に設けられかつ前記検定回路による検定結果が不合格となるまで前記デジタル化回路の出力を前記検定回路に出力する乱数生成回路。
【請求項２】
前記エラー訂正符号生成行列の生成多項式の各次数の係数の情報を記憶するメモリを更に備え、
前記乗算部は前記エラー訂正符号生成行列に関する生成多項式における各次数の係数に対応して設けられたパストランジスタを備え、前記パストランジスタは前記メモリに記憶された情報に基づいてオンまたはオフする請求項１記載の乱数生成回路。
【請求項３】
物理乱数を生成し、出力する物理乱数生成素子と、
前記物理乱数をデジタル化し、乱数列を出力するデジタル化回路と、
前記乱数列を検定する検定回路と、
前記乱数列が入力されるシフトレジスタと、前記シフトレジスタに記憶された前記乱数列とエラー訂正符号生成行列との乗算を行う乗算部と、前記検定回路による検定結果に応じてオンまたはオフが切り替わる切り替えスイッチと、を有し、前記検定回路による検定結果が不合格の場合に、前記切り替えスイッチが切り替わることにより、前記乗算部の出力を訂正された乱数列として出力するエラー訂正符号回路と、
前記デジタル化回路の出力と、 前記エラー訂正符号回路の出力との排他的論理和演算を行う排他的論理和ゲートと、
を備え、前記検定回路は、前記検定結果が不合格の場合に前記訂正された乱数列を検定し、
前記シフトレジスタと前記乗算部とは、線形フィードバックシフトレジスタを構成し、
前記検定回路は、前記排他的論理和ゲートから出力される乱数列を検定する乱数生成回路。
【請求項４】
前記エラー訂正符号生成行列の生成多項式の各次数の係数の情報を記憶するメモリを更に備え、
前記乗算部は前記エラー訂正符号生成行列に関する生成多項式における各次数の係数に対応して設けられたパストランジスタを備え、前記パストランジスタは前記メモリに記憶された情報に基づいてオンまたはオフする請求項３記載の乱数生成回路。
【請求項５】
物理乱数を生成し、出力する物理乱数生成素子と、
前記物理乱数をデジタル化し、乱数列を出力するデジタル化回路と、
前記乱数列を検定する検定回路と、
入力信号として送られてくる前記乱数列を一つの入力端子に受ける第１の排他的論理和ゲートと、直列に接続された複数のフリップフロップを有するシフトレジスタと、前記複数のフリップフロップのそれぞれに対応して設けられかつ一端が対応するフリップフロップの出力端子に接続され、ゲートにエラー訂正符号生成行列に関する生成多項式の係数に応じた信号を受ける複数のパストランジスタと、前記複数のパストランジスタのそれぞれの他端から送られてくる信号の排他的論理和演算を行う第２の排他的論理和ゲートと、前記検定回路による検定結果に応じてオンまたはオフし、前記第２の排他的論理和ゲートの出力を前記第１の排他的論理和ゲートの他方の入力端子に出力するスイッチと、前記検定回路による検定結果に応じて、前記シフトレジスタの最終段のフリップフロップの出力と、前記第２の排他的論理和ゲートの出力とを切り替えて出力する切り替えスイッチ回路と、を有するエラー訂正符号回路と、
を備え、前記検定回路は、前記切り替えスイッチ回路の出力に基づいて前記乱数列を検定する乱数生成回路。
【請求項６】
物理乱数を生成し、出力する物理乱数生成素子と、
前記物理乱数をデジタル化し、乱数列を出力するデジタル化回路と、
前記乱数列を検定する検定回路と、
直列に接続された複数のフリップフロップを有するシフトレジスタと、前記シフトレジスタの入力段におけるフリップフロップの入力端子に設けられた第１の排他的論理和ゲートと、隣接する前記フリップフロップ間にそれぞれ設けられた複数の第２の排他的論理和ゲートと、前記シフトレジスタの最終段におけるフリップフロップの出力側に設けられた第３の排他的論理和ゲートと、前記第１乃至第３の排他的論理和ゲートのそれぞれに対応して設けられかつ一端が対応する排他的論理和ゲートの一方の入力端子に接続され、他端が共通に接続され、ゲートにエラー訂正符号生成行列に関する生成多項式の係数に応じた信号を受ける複数のパストランジスタと、前記検定回路による検定結果に応じて、入力信号を、前記複数のパストランジスタの他端および前記第１の排他的論理和ゲートの他方の入力端子の一方に切り替えて出力する第１の切り替えスイッチ回路と、前記検定回路による検定結果に応じて、前記複数のパストランジスタの他端における信号と、前記第３の排他的論理和ゲートの出力とを切り替えて出力する第２の切り替えスイッチ回路と、を有するエラー訂正符号回路と、
を備え、前記検定回路は、前記第２の切り替えスイッチ回路の出力に基づいて、前記乱数列を検定する乱数生成回路。
【請求項７】
請求項１乃至４のいずれかに記載の乱数生成回路と、個人情報が記憶されたメモリと、ＣＰＵと、を備えている暗号回路であって、
個人認証のために前記暗号回路がシステムに接続されたとき、前記ＣＰＵが乱数の質を変化させたい場合に、前記エラー訂正符号回路において、前記乱数列と前記エラー訂正符号生成行列との乗算を行わせる暗号回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モバイル機器に用いられる乱数生成回路およびこれを用いた暗号回路に関する。
【背景技術】
【０００２】
携帯電話などのモバイル機器、ＩＣカードなどの利用が急速に拡大するにつれて、小規模電子回路に対する個人情報に関するセキュリティ技術への要求が厳しくなってきている。これに応じて、セキュリティ基盤技術の一つである乱数生成回路に対してもより高品質でかつ小面積なものへの要求が年々高まっている。そして最近では、ソフトで作成する擬似乱数ではなく、自然の揺らぎ現象を利用した物理乱数の必要性が叫ばれている。【０００３】
これを背景として、近年、物理現象、特にトランジスタのノイズを増幅する物理乱数生成素子および回路が提案されている。標準的にはＳｉトランジスタ（ＭＯＳＦＥＴ）の１／ｆノイズを利用した乱数生成回路（例えば、非特許文献１）、またより小型回路でかつ高速の乱数を生成する機能を有するＳｉＮトランジスタを利用した乱数生成回路が提案されている（例えば、非特許文献２参照）。【０００４】
しかし、これらトランジスタのノイズを利用する乱数生成回路では、通常のトランジスタ毎にノイズ特性が微妙に異なるために、ウェハー内、ウェハー間における素子ばらつきなどを考慮すると、工場での出荷時に個々のチップ（乱数生成回路）毎に最適化を測る必要がある。また、長年の使用に伴うトランジスタ特性の経年変化に応じた、最適な稼動電圧などの再調整を担う修正回路の必要があり、回路面積が増大するという問題および信頼性が低下するという問題があった。【０００５】
一方、学術分野において、Patrick LacharmeがＥＣＣ（Error-correcting code）と呼ばれる符合理論の符号生成行列を用いると乱数性が良くなること数学的に論じた（論文（“Post-processing functions for a biased physical random number generator”，Fast Software Encryption 2008(FSE), 10-13 Feb. 2008）参照）。これは、各データが「０」または「１」であるｎ個のデータからなる入力信号列を（ｘ１，ｘ２，…，ｘｎ）とする場合、データ「０」とデータ「１」の出現が完全にランダムであれば、データ「０」とデータ「１」はそれぞれ１／２の確率で発生する。ところが、実際の出現率は１／２からずれる。この１／２からのずれあるいは偏りをｅ／２（０＜ｅ＜１）とすると、つまり、データ「０」、「１」の生じる確率をそれぞれ（１＋ｅ）／２、（１−ｅ）／２とすると、データ「０」とデータ「１」の偏りｅ／２は、通信回路のエラー訂正に用いる符号生成行列Ｇ
【数１】
0005433686.tif 000002
を用いて変換された新しい信号列（ｙ１，ｙ２，…，ｙｍ）
【数２】
0005433686.tif 000003
においては、データ「０」とデータ「１」の偏りは、ｅｄ／２となる（上記論文の定理１参照）というものである。ここでｄは符号生成行列Ｇによって形成される線形コードの最小距離である。この場合ｎ＞ｍという関係が成り立ち、データを圧縮することにより、乱数データの持っているエントロピーを増加させるということが本質的である。【０００６】
しかしながら上記論文では、偏りが減るということは述べられているが、実際に使用されている商用乱数検定に合格するかどうかなどについては述べられていない。また、上記論文で、シフトレジスタを使用することは述べられているが、システムとして、実際の物理乱数回路にどのように組み込むかについては議論されていない。つまり、単に式（２）を回路化するだけでは乱数生成回路に余計なオーバヘッドが加わるだけで、効率的ではない。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】R. Brederlow et al., “A Low-Power True Random Number Generator using Random Telegraph Noise of Single Oxｉｄｅ−Ｔｒａｐｓ”，ISSCC pp. 536-537, Feb. 2006
【非特許文献２】M. Matsumoto, et al, “1200μm2 Physical Random-Number Generators Based on a SiN MOSFET for Secure Smart-Card Applications,” ISSCC, pp.414-415, 2008
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明は、ＥＣＣの機能を小面積で実現できるとともに、余計なオーバヘッドが加わるのを可及的に抑制することのできる乱数生成回路およびこれを用いた暗号回路を提供する。
【課題を解決するための手段】
【０００９】
本発明の第１の態様による乱数生成回路は、物理乱数を生成し、出力する物理乱数生成素子と、前記物理乱数をデジタル化し、乱数列を出力するデジタル化回路と、前記乱数列を検定する検定回路と、前記乱数列が入力されるシフトレジスタと、前記シフトレジスタに記憶された前記乱数列とエラー訂正符号生成行列との乗算を行う乗算部と、前記検定回路による検定結果に応じてオンまたはオフが切り替わる切り替えスイッチと、を有し、前記検定回路による検定結果が不合格の場合に、前記切り替えスイッチが切り替わることにより、前記乗算部の出力を訂正された乱数列として出力するエラー訂正符号回路と、を備え、前記検定回路は、前記検定結果が不合格の場合に前記訂正された乱数列を検定することを特徴とする。【００１０】
また、本発明の第２の態様による暗号回路は、第１の態様による乱数生成回路と、個人情報が記憶されたメモリと、ＣＰＵと、を備えている暗号回路であって、個人認証のために前記暗号回路がシステムに接続されたとき、前記ＣＰＵが乱数の質を変化させたい場合に、前記エラー訂正符号回路において、前記乱数列とエラー訂正符号生成行列との乗算を行わせることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、ＥＣＣの機能を小面積で実現することができるとともに余計なオーバヘッドが加わるのを可及的に抑制することのできる乱数生成回路およびこれを用いた暗号回路を提供することが可能となる。  
【図面の簡単な説明】
【００１２】
【図１】本発明の第１実施形態による乱数生成回路を示すブロック図。
【図２】第１実施形態に係るＬＦＳＲ／ＥＣＣ回路の一具体例を示す回路。
【図３】ＬＦＳＲの一具体例を示す回路図。
【図４】図３に示すＬＦＳＲの具体的な回路図。
【図５】生成多項式Ｇ（ｘ）と、乱数データとの乗算を行う回路図。
【図６】図３に示す回路と図５に示す回路を合わせた機能を有する回路図。
【図７】第１実施形態に係るＬＦＳＲ／ＥＣＣ回路の他の具体例を示す回路。
【図８】図８（ａ）は物理乱数を示す図、図８（ｂ）は図８（ａ）に示す物理乱数に（７，４）コードを１回かけて検定を行った結果を示す図。
【図９】図９（ａ）は物理乱数に（７，４）コードを２回かけて得られた乱数を示す図、図９（ｂ）は図９（ａ）に示す乱数の検定結果を示す図。
【図１０】図１０（ａ）は（１５，５，７）ＢＣＨコード生成行列を示す図、図１０（ｂ）は、（１５，５，７）ＢＣＨコードを１回かけて検定を行った結果を示す図。
【図１１】タップ数の多いＬＦＳＲに短いコードの生成行列を適用する場合のＬＦＳＲ／ＥＣＣ回路を示す図。
【図１２】本発明の第２実施形態による乱数生成回路を示すブロック図。
【図１３】本発明の第３実施形態による乱数生成回路を示すブロック図。
【図１４】メモリに設けられているＥＣＣ回路を示す回路図。
【図１５】第３実施形態に用いられるＥＣＣ回路を示す回路図。
【図１６】図１６（ａ）、１６（ｂ）は本発明の第４実施形態による暗号回路を説明する図。
【図１７】第４実施形態の暗号回路を説明する図。
【発明を実施するための形態】
【００１３】
本発明の実施形態を説明する前に、本発明の概要について説明する。
【００１４】
ＥＣＣの機能を回路化する出発点となるのは符号生成行列が次のように表されていることである。
【数３】
0005433686.tif 000004
一般的に符号理論は多項式で表すことができる。これにより式（３）に示す符号生成行列を表す生成多項式は、
【数４】
0005433686.tif 000005
と表すことができる。そして、入力データも同様に
ｂ（ｘ）＝Σｂｉｘｉ                                （５）
と表すと式（４）の行列演算はＧ（ｘ）・ｂ（ｘ）と表すことができる。例えば７ビットのデータを符号化して４ビットにする、符号生成行列は、
【数５】
0005433686.tif 000006
となる。この（６）式の右辺で表される符号生成行列の各要素は、
【数６】
0005433686.tif 000007
で表される多項式同士の積の３次〜６次の項の係数に一致し、多項式同士の積の一部分であることがわかる。そして、この多項式同士の積の形からわかるように、符合の生成はシフトレジスタを用いて行うことができる。
【００１５】
一方、物理乱数生成回路には物理乱数源だけでなく、一般的に線形フィードバックシフトレジスタ（以下、ＬＦＳＲ（Linear Feedback Shift Resistor）とも云う）を用いることが多い。またＮＡＮＤフラッシュメモリ、ＥＥＰＲＯＭなどの、ＩＣカードや携帯電話などのセキュリティシステムに搭載されるメモリ部分にも生成行列を用いた訂正符号回路（ＥＣＣ回路）が搭載されている。
【００１６】
そこで、本発明の一実施形態においては、物理乱数生成回路とは全く別に上記の符号生成行列の掛け算を表すシフトレジスタを用いることなく、従来のＬＦＳＲに改良を加えることにより、従来の物理乱数生成回路から面積を大幅に増大させることなく、余計なオーバヘッドが加わるのを可及的に抑制し、上記の乱数の平滑化の実行する、すなわち偏りを小さくすることができる。
【００１７】
以下、図面を参照して実施形態を説明する。
【００１８】
（第１実施形態）
本発明の第１実施形態による乱数生成回路を図１に示す。本実施形態の乱数生成回路１は、物理乱数生成素子１１と、デジタル化回路１３と、排他的論理和ゲート１４と、ＬＦＳＲおよびＥＣＣ回路（以下、ＬＦＳＲ／ＥＣＣ回路とも云う）１５と、検定回路１７と、ＣＰＵ１９と、メモリ２１と、を備えている。物理乱数生成素子１１はアナログ信号である物理乱数を発生する。デジタル化回路１３は物理乱数生成素子１１から出力されたアナログ信号として物理乱数を、「０」と「１」からなるデジタル信号としての乱数に変換する。この際に、ある程度、乱数の質が平滑される。通常は、この後に、検定回路と、ＬＦＳＲが設置され、乱数の質のチェック（検定）及び平滑化が行われる。本実施形態においては、ＬＦＳＲ部分を改良し、符号生成行列を掛け合わせるＥＣＣ機能を、ＬＦＳＲ／ＥＣＣ回路１５内に設けられる切り替えスイッチのオン、オフを切り替えることにより行う。
【００１９】
検定回路１７としては例えば、特開２００７−１６４４３４号公報に記載されているように数学的検定を回路化したもの、あるいは特許第４０９４５７０号公報に記載されているように検定を簡略化したものなどがある。ソフトとして、後に述べるＦＩＰＳ１４０−２などを用いることもある。このような検定回路１７の出力信号（検定結果）は図１に示すように、中央演算部分（ＣＰＵ）１９に送られる。検定結果が合格の場合、乱数データはこのまま使用されるが、不合格の場合、図１で示す切り替え信号がメモリ２１に送られ、同時に乱数データが図１に示すように、排他的論理和ゲート１４の一つの入力端に戻される。
【００２０】
排他的論理和ゲート１４は、デジタル化回路１３の出力と、ＣＰＵ１９から送られてくる不合格となった乱数データとの排他的論理和演算を行い、演算結果をＬＦＳＲ／ＥＣＣ回路１５に送出する。なお、本実施形態においては、デジタル化回路１３と、ＬＦＳＲ／ＥＣＣ回路１５との間に排他的論理和ゲート１４を設けたが、この排他的論理和ゲート１４の代わりに、例えば、後述する図１３に示すようなスイッチ回路２２を設けてもよい。この場合、スイッチ回路は、通常のときは、デジタル化回路１３の出力がＬＦＳＲ／ＥＣＣ回路１５に送出されるように接続し、検定回路１７による検定が不合格のときはＣＰＵ１９から送られてくる不合格となった乱数データをＬＦＳＲ／ＥＣＣ回路１５に送出するように接続を切り替える。
【００２１】
ＬＦＳＲ／ＥＣＣ回路１５は、後に示す乱数生成用ＬＦＳＲと符号生成行列をデータ列に乗算する機能（式（６）の右辺の行列の各要素の演算）、すなわちＥＣＣ機能を統合した回路を示す。このＬＦＳＲ／ＥＣＣ回路１５では、二つの特性をトランジスタのスイッチで切り替えることができ、どのトランジスタをＯＮ／ＯＦＦさせるかを図１に示すメモリ２１に書き込まれている。図１中の切り替え信号により、ＬＦＳＲ／ＥＣＣ回路１５内の乱数生成用ＬＦＳＲから、符号生成行列を乗算するＥＣＣ回路に切り替える。これにより乱数の質を向上させることができる。符号生成行列が乗算された乱数データは再び検定回路１７に入り、検定が行われる。ＣＰＵ１９に検定回路１７から合格信号が送られれば、乱数として使用することができる。不合格の場合は、再び、切り替え信号がメモリ２１送られるとともに乱数が、排他的論理和ゲート１４を介してＬＦＳＲ／ＥＣＣ回路１５に送られ、再度、式（６）の右辺に示す行列の演算が行われる。
【００２２】
物理乱数生成素子しては、特許３９７４４２９号公報に示すように量子ドット系を用いるもの、特開２００５−１６７１６５号公報に示すようにチャネル上にトンネル絶縁膜を介して、電子の充放電が可能な導電性微粒子を設けたＭＯＳＦＥＴ、特開２００８−２９９５９５号公報に示すようにソースとドレイン間に流れる電流にランダムノイズが含まれるＭＯＳＦＥＴ、米国特許第７，４２６，５２７号、独国特許公開第１０２００４０１１１７０号明細書などに示されているように素子内にあるトラップを利用したもの、あるいは仏国特許第２８１７３６１号明細書に示すように電流揺らぎを用いたものなどを用いることがきる。また、独国特許公開第２００００６０００６６５０号明細書に開示されているように発振器とジッターを利用する乱数生成素子、または独国特許公開第２００００１０００３４７２号明細書に開示されているように二つのクロックとＶＣＯを利用したものなども利用できる。
【００２３】
図２に、本実施形態におけるＬＦＳＲ／ＥＣＣ回路１５の一具体例を示す。この具体例のＬＦＳＲ／ＥＣＣ回路１５は、（４）式に表される生成多項式を用いるものであって、入力信号として送られてくるデジタル乱数（例えば、デジタル化回路１３から、排他的論理和ゲート１４を介して送られてくるデジタル乱数（例えば、乱数列ｂ６、ｂ５、ｂ４、ｂ３、ｂ２、ｂ１、ｂ０））を一つの入力端子に受ける排他的論理和ゲート３０と、直列に接続されたｎ−ｋ＋１個のフリップフロップ３２ｎ−ｋ、３２ｎ−ｋ−１、・・・、３２１、３２０と、ｎ−ｋ＋１個のＮチャネルのパストランジスタ３４ｎ−ｋ、３４ｎ−ｋ−１、・・・、３４１、３４０と、ｎ−ｋ個の排他的論理和ゲート３６ｎ−ｋ−１、・・・、３６１、３６０と、Ｎチャネルトランジスタからなる切り替えスイッチ３７と、Ｎチャネルトランジスタ３８ａ，３８ｂからなる切り替えスイッチ回路３８と、を備えている。
【００２４】
各パストランジスタ３４ｉ（ｉ＝ｎ−ｋ、・・・、１、０）は、一端がフリップフロップ３２ｉの出力端子に接続され、メモリ２１に記憶されている生成多項式のｉ次の係数ｇｉに応じた信号をゲートに受ける。すなわち、パストランジスタ３４ｉ（ｉ＝ｎ−ｋ、・・・、１、０）は、生成多項式のｉ次の係数ｇｉが「０」である場合には、パストランジスタ３４ｉがオフする信号をゲートに受け、係数ｇｉが「１」である場合には、パストランジスタ３４ｉがオンする信号をゲートに受ける。
【００２５】
排他的論理和ゲート３６ｎ−ｋ−１は、２つの入力端子がパストランジスタ３４ｎ−ｋ、３４ｎ−ｋ−１の他端に接続され、これらの入力端子に入力される信号の排他的論理和を演算する。また、排他的論理和ゲート３６ｉ（ｉ＝ｎ−ｋ−２、・・・、１、０）は、一つの入力端子がパストランジスタ３４ｉの他端に接続され、他の一つの入力端子が排他的論理和ゲート３６ｉ−１の出力端子に接続され、これらの入力端子に入力される信号の排他的論理和を演算する。すなわち、排他的論理和ゲート３６０の出力は、ｎ−ｋ＋１個のパストランジスタ３４ｎ−ｋ、３４ｎ−ｋ−１、・・・、３４１、３４０の他端を介して送られてくる信号の排他的論理和演算の演算結果となり、ｎ−ｋ個の排他的論理和ゲート３６ｎ−ｋ−１、・・・、３６１、３６０は、全体で一つの排他的論理和ゲートを構成している。
【００２６】
切り替えスイッチ３７は、ＣＰＵ１９から出力されてメモリ２１に記憶された切り替え信号をゲートに受けて動作し、排他的論理和ゲート３６０の出力を排他的論理和ゲート３０の他の入力端子に送出する。したがって、排他的論理和ゲート３０は、排他的論理和ゲート３６０の出力と、排他的論理和ゲート１４の出力との排他的論理和演算を行い、演算結果をフリップフロップ３２ｎ−ｋに送出する。
【００２７】
切り替えスイッチ回路３８のトランジスタ３８ａは、メモリ２１に記憶された切り替え信号をゲートに受けて動作し、フリップフロップ３２０の出力を検定回路１７に送出し、トランジスタ３８ｂは、メモリ２１に記憶された切り替え信号をゲートに受けて動作し、排他的論理和ゲート３６０の出力検定回路１７に送出する。  
このように構成されたＬＦＳＲ／ＥＣＣ回路の動作を説明する。まず、トランジスタ３８ａをオンにし、排他的論理和ゲート１４から送られてきた乱数を、排他的論理和ゲート３０を介してＬＦＳＲに送る。このとき、トランジスタ３８ｂはオフ状態となっている。すると、切り替えスイッチ３７およびトランジスタ３８ａを介して乱数が、図１に示す検定回路１７に送られ、検定が行われる。
【００２８】
検定に合格すれば、乱数生成回路１から外部に出力される。もし、検定回路１７において、検定が不合格の場合（ＮＧ）は、切り替えスイッチ３７およびトランジスタ３８ａをオフにして、不合格となった乱数データ列と符号生成行列との掛け算（（６）式の右辺に示す行列の演算）を実行する。この際、符号生成行列を掛けた乱数データは、トランジスタ３８ｂをオン状態にすることにより得られ、図１に示す検定回路１７に送られて再び検定が行われる。
【００２９】
この検定において合格であれば、乱数生成回路１から外部に出力される。もし、検定に不合格であれば、再び、不合格となった乱数データ列と符号生成行列との掛け算が行われる。この際、一回目の符号生成行列と二回目の符号生成行列は同じであってもよいし、異なっていてもかまわない。これは個々のデバイスの履歴、特性などにより決定することができる。どの符号生成行列を用いるかは生成多項式の係数ｇｎ−ｋ、ｇｎ−ｋ−１、・・・、ｇ１、ｇ０の値に応じて対応するパストランジスタをオンまたはオフ状態にすることによって制御される。
【００３０】
なお、この図２ではパストランジスタとしてＮチャネルトランジスタだけを用いたが、これは説明を簡単にするためであり、通常のＮチャネルトランジスタとＰチャネルトランジスタとを併用したものが一般的である。また経年劣化に伴い、最適なコードが変化する場合もある。この場合は、一般的に、ユーザがＡＴＭなどのシステムにアクセスしてきたときに、最適な符号をチェックし、どのパストランジスタをＯＮにするかはユーザの携帯端末にあるメモリ部分に書き込むことようにしてもよい。
【００３１】
ＬＦＳＲと、（７，４）線形コード符号生成行列の切り替えを示す一例を図３乃至図６を参照して説明する。ここで訂正符号の（ｎ，ｋ）コードとは、通常、ｋビットのデータにｎ−ｋ個の冗長ビットを加えてｎビットとして、通信などに用いるものである。生成多項式Ｇ（ｘ）＝ｘ３＋ｘ２＋１である場合の（７，４）コードの符号生成行列は、
【数７】
0005433686.tif 000008
で表される。コードの種類などは、例えば、Stephen B. Wickerｃｈ著、”Error Control Systems for Digital Communication and Storage”，Prentice Hall;1995などに多数掲載されている。図３は、｛３，２，１，０｝にタップ（フリップフロップ）をもつＬＦＳＲの一例である。このＬＦＳＲは、排他的論理和ゲート３０と、直列に接続された４個のフリップフロップ３２３、３２２、３２１、３２０と、排他的論理和ゲート３６２、３６１、３６０とを備えている。すなわち、この図３に示すＬＦＳＲは、図２に示すＬＦＳＲ／ＥＣＣ回路１５からパストランジスタ３４３、３４２、３４１、３４０と、切り替えスイッチ３７と、切り替えスイッチ回路３８を削除した構成となっている。この図３に示すＬＦＳＲの具体的な回路図を図４に示す。どの位置にタップを取るかについては例えば、B. Schneier著、”Applied Cryptography，John Wiley & Sons, Inc. 2nd editionの表１７．１、１７．２に記されている。
【００３２】
図５は、（７，４）コード生成多項式Ｇ（ｘ）＝ｘ３＋ｘ＋１を表す回路図である。この回路は、直列に接続された４個のフリップフロップ３２３、３２２、３２１、３２０と、排他的論理和ゲート３６１、３６０とを備えている。すなわち、この図５に示す回路は、図２に示すＬＦＳＲ／ＥＣＣ回路１５からパストランジスタ３４３、３４２、３４１、３４０と、排他的論理和ゲート３０、３６３と、切り替えスイッチ３７と、切り替えスイッチ回路３８を削除した構成となっている。
【００３３】
図３および図５に示す回路を同時に実現するのが図６に示す回路である。図６において、切り替えスイッチ３７、トランジスタからなるスイッチ３８ａ、パストランジスタ３４３、３４２、３４１、３４０をオン状態にすれば、図３に示すＬＦＳＲが実現され、本実施形態で説明したように物理乱数の平滑化に利用できる。なお、このとき、スイッチ３８ｂはオフ状態とする。図６において、切り替えスイッチ３７、スイッチ３８ａ、係数ｇ２に対応するパストランジスタ３４２をオフ状態にし、スイッチ３８ｂをオン状態にすれば、式（６）の右辺の御列などで表されるエントロピーの増大した乱数生成列が得られる。すなわち、図６に示す回路は、（７，４）コードを生成する本実施形態のＬＦＳＲ／ＥＣＣ回路１５となっている。図２乃至図６においては、フリップフロップとして、Ｄ型フリップフロップを用いている。これらのＤ型フリップフロップは、システムにあったクロック信号が入力されることにより同期される。
【００３４】
なお、本実施形態のＬＦＳＲ／ＥＣＣ回路１５として、図２に示す一具体例を挙げたが、他の具体例として、図７に示す回路も用いることができる。図７に示す回路は図２に示す回路と、排他的論理和ゲートの位置が異なっているが等価となっている。この図７に示すＬＦＳＲ／ＥＣＣ回路１５は、（４）式に表される生成多項式を用いるものであって、Ｎチャネルトランジスタ３８ａ１，３８ｂ１を有し入力信号として送られてくるデジタル乱数を選択する切り替えスイッチ回路３８１と、直列に接続されたｎ−ｋ個のフリップフロップ３２０、３２１、・・・、３２ｎ−ｋ−１と、ｎ−ｋ＋１個のＮチャネルのパストランジスタ３４０、３４１、・・・、３４ｎ−ｋと、ｎ−ｋ個の排他的論理和ゲート３６０、３６１、・・・、３６ｎ−ｋ−１と、Ｎチャネルトランジスタ３８ａ２，３８ｂ２を有する切り替えスイッチ回路３８２と、を備えている。
【００３５】
トランジスタ３８ａ１、３８ｂ１の一端は入力端子に接続されている。また、トランジスタ３８ａ２、３８ｂ２の一端は出力端子に接続されている。そして、トランジスタ３８ｂ２の他端と、トランジスタ３８ａ２の他端は接続されている。
【００３６】
各パストランジスタ３４ｉ（ｉ＝０、１、・・・、ｎ−ｋ）は、一端がトランジスタ３８ｂ２の他端に接続され、他端が排他的論理和ゲート３６ｉの２つの入力端子のうちの一方の入力端子に接続される。そして、メモリ２１に記憶されている生成多項式のｉ次の係数ｇｉに応じた信号をゲートに受ける。すなわち、パストランジスタ３４ｉ（ｉ＝ｎ−ｋ、・・・、１、０）は、生成多項式のｉ次の係数ｇｉが「０」である場合には、パストランジスタ３４ｉがオフする信号をゲートに受け、係数ｇｉが「１」である場合には、パストランジスタ３４ｉがオンする信号をゲートに受ける。
【００３７】
排他的論理和ゲート３６０の他方の入力端子は、トランジスタ３８ａ１の他端に接続される。各フリップフロップ３２ｉ（ｉ＝０、１、・・・、ｎ−ｋ−１）は、排他的論理和ゲート３６ｉ−１の出力端子と、排他的論理和ゲート３６ｉの他方の入力端子との間に設けられる。排他的論理和ゲート３６ｎ−ｋの出力端子は、トランジスタ３８ｂ２の他端に接続される。
【００３８】
図７に示す回路においては、ＬＦＳＲとして機能するときは、トランジスタ３８ａ１、３８ａ２がオン状態、トランジスタ３８ｂ１、３８ｂ２がオフ状態となる。また、エラー訂正回路（ＥＣＣ）として機能するときは、トランジスタ３８ａ１、３８ａ２がオフ状態、トランジスタ３８ｂ１、３８ｂ２がオン状態となる。
【００３９】
次に、図８（ａ）乃至図１０（ｂ）に、実際にＳｉＮトランジスタを有する乱数生成素子を用いて発生させた乱数について、特にデータの乱数の質が落ちた場合に上記符号生成行列を適用した場合の実験結果および統計的検定の結果を示す。図８（ａ）はＳｉＮトランジスタを有する乱数生成素子から得られた信号をデジタル化した二種類の乱数データＡ、Ｂを示す。図８（ｂ）は図８（ａ）に示す乱数データＡ、Ｂに（７，４）コード用符号生成行列を一回乗算し、この乗算結果に、ＦＩＰＳ１４０−２という統計的検定を適用した場合の検定結果を示す。ＦＩＰＳ１４０−２は、米国標準規局（ＮＩＳＴ）が示した２００００個の乱数データの質を評価する統計的検定であり、モノビット検定（monobit test）、ポーカー検定（Poker test）、Ｒｕｎ検定（Run test）、Ｌｏｎｇ  ｒｕｎ検定の四種類がある。これらの検定の概要は以下の通りとなっている。
【００４０】
１．モノビット検定（The monobit test）
２００００個のデータのうち、「１」の出る回数が９，７２５と１０，２７５の間にあれば合格とする検定である。この検定は自由度１のχ二乗検定を行うときの棄却率が０．０１％の場合と同じである。
【００４１】
２．ポーカー検定（The poker test）
２００００個のデータを上から順に４ビット数に変換する。すなわち０，１から，  １，・・・，１５の数にする。ｆ（ｉ）をｉ（０＝＜ｉ＜１５）の出る回数とするとき次の数を計算する。
【数８】
0005433686.tif 000009
このとき２．１６＜Ｖ＜４６．１７ならば合格とする検定である。この検定は自由度１５のχ二乗検定に相当する。
【００４２】
３．Ｒｕｎ検定（The run test）
０が最大いくつ連続して出るか、あるいは１が最大いくつ連続して出るかを評価する。続いた数が最大６個を基準として、続いた数の回数が０と１の両方について下記の表の範囲にあれば合格となる。
【表１】
0005433686.tif 000010
【００４３】
４．Ｌｏｎｇ  Ｒｕｎ検定（Long run test）
これは連続する０もしくは連続する１が２６個以下であれば合格とする検定である。
【００４４】
再び図８（ｂ）に戻る。図８（ｂ）に示す検定結果において、「ＮＧ」とあるのは検定に合格しなかった場合であり、「Ｐａｓｓ」とあるのは検定に合格したことを示す。図８（ｂ）からわかるように、一回の符号生成行列を乗算するだけでも、乱数の質は改善する。図９（ａ）および図９（ｂ）は、ＳｉＮトランジスタを有する乱数生成素子から得られた信号をデジタル化した二種類の乱数データＡ、Ｂに、二回の（７，４）コードの符号生成行列を適用した乱数データおよびその検定結果をそれぞれ示す。例えば、図８（ａ）と図９（ａ）を見比べて見てもわかるように乱数の質は大幅に改善される。
【００４５】
図１０（ａ）および図１０（ｂ）は（１５，５，７）ＢＣＨ（Bose-Chaudhuri-Hocquenghem）コードの生成行列およびこの生成行列を１回、適用した場合の検定結果を示す。このＢＣＨコードでは１５個のデータを５個に圧縮するため、圧縮度が高くなることも予想される。しかし、図１０（ｂ）からわかるように、データの圧縮率だけでは、乱数の質を上げることに直結しない。最もここでは乱数の質が元々かなり悪いデータを使用しているので、更に良質な乱数データを用いれば一回の符号生成行列で合格することが可能となる。一般的に、物理乱数は個々の乱数生成素子の作製する上で生じたばらつきおよび経年変化等など、非常に多くの要因で乱数の質の劣化が起こるため、上記の例で示すように、一回の符号生成行列の適用では一般に不十分となる場合がある。乱数生成回路ごとに、最適なコードの符号生成行列を利用することが望まれる。本実施形態で示したように、検定回路と併用して用いることが重要である。
【００４６】
図１１に、タップの多いＬＦＳＲに短いコードの生成行列を適用する場合の例を示す。ＬＦＳＲはタップの数ｎについて最大２ｎ−１個の擬似乱数を生成することができる。回路によっては大きなタップ数のＬＦＳＲを利用することもあり、図１１では（７，４）コードの生成行列をタップ数が８以上のＬＦＳＲに適用した例を示す。この図１１では、切り替えスイッチＳＷ３，ＳＷ４，ＳＷ５が設けられており、スイッチ３７、３８ａ、ＳＷ３、ＳＷ５がオン状態、スイッチＳＷ４がオフ状態の場合のＬＦＳＲに対応する。符号生成行列で乱数の質を上げるときはスイッチＳＷ４だけをオン状態にする。この図１０では２回（７，４）コードを利用した例を示したが、ＬＦＳＲが長い場合は３回以上使用することもできるし、二種類以上のコードを組み込むこともできる。なおこのスイッチ３７、ＳＷ３〜ＳＷ５、スイッチ３８ａ、３８ｂは通常のトランジスタを用いることができる。
【００４７】
なお、乱数の質が低いものでもよい場合は、ＬＳＦＲをそのまま通し、検定回路の合格ラインを低くし、質の高い乱数が必要な場合は、ＥＣＣを使うという方法もある。
【００４８】
以上説明したように、本実施形態においては、ＥＣＣの機能がＬＦＳＲに取り込まれているので、ＥＣＣの機能を小面積で実現することができるとともに余計なオーバヘッドが加わるのを可及的に抑制することができる。
【００４９】
（第２実施形態）
次に、本発明の第２実施形態による乱数生成回路を図１２に示す。この実施形態の乱数生成回路１Ａは、図１に示す第１実施形態の乱数生成回路１においてデジタル化回路１３と直列に接続されていたＬＦＳＲ／ＥＣＣ回路１５を、このＬＦＳＲ／ＥＣＣ回路１５の出力と、デジタル化回路１３の出力との排他的論理和を排他的論理和ゲート１６で演算し、その演算結果を検定回路１７に送出するようにした構成となっている。この場合ＬＦＳＲ／ＥＣＣ回路１５は、第１実施形態と同様に例えば図２または図７に示す構成を有するが、排他的論理和ゲート３０への入力信号は、第１実施形態と異なり、ＣＰＵ１９から送られて来る乱数データとなる。この実施形態においても、検定回路１７によって検定が不合格とされた場合は、ＣＰＵ１９からは切り替え信号がメモリ２１に送られ、ＬＦＳＲ／ＥＣＣ回路１５において符号生成行列との乗算を行うように、第１実施形態と同様に、例えば図２に示す切り替えスイッチ３７およびスイッチ回路３８を切り替えることにより実行される。なお、図７に示すＬＦＳＲ／ＥＣＣ回路１５を用いた場合には、スイッチ回路３８１、３８２のトランジスタのオン／オフを切り替えることにより実行される。
【００５０】
本実施形態は第１実施形態と同様に、ＥＣＣの機能がＬＦＳＲに取り込まれているので、ＥＣＣの機能を小面積で実現することができるとともに余計なオーバヘッドが加わるのを可及的に抑制することができる。
【００５１】
（第３実施形態）
次に、本発明の第３実施形態による乱数生成回路を、図１３乃至図１５を参照して説明する。本実施形態の乱数生成回路１Ｂは、メモリ内に設けられてデータのエラー訂正に用いられているエラー訂正回路（ＥＣＣ回路）を、乱数データの平滑化に用いるものであって、図１に示す第１実施形態の乱数生成回路において、ＬＦＳＲ／ＥＣＣ回路１５の代わりにスイッチ回路２２を設けるとともに、メモリ２１を、ＥＣＣ回路を有するメモリ２３に置き換え、更にこのメモリ２３のＥＣＣ回路に切り替えスイッチおよび排他的論理和ゲートを設けてＥＣＣ回路２４とした構成となっている。
【００５２】
通常、メモリにエラー訂正回路（ＥＣＣ回路）が設けられている（例えば、文献（Stephen B. Wickerｃｈ著、”Error Control Systems for Digital Communication and Storage”，Prentice Hall;1995）の図５乃至図１１参照）。メモリに設けられているＥＣＣ回路の一具体例を図１４に示す。この具体例のＥＣＣ回路は、入力されたワードデータを受け、記憶するワードバッファ１００と、スイッチ１０２と、シンドローム計算部１０４と、ＡＮＤゲートを有するシンドローム検出部１０６と、スイッチ１０８と、排他的論理ゲート１１０と、を有している。スイッチ１０２と、スイッチ１０８とは連動し、例えば一方が接点Ｙに接続されるときには他方も接点Ｙに接続される。
【００５３】
シンドローム計算部１０４は、排他的論理和ゲート１０４ａ、１０４ｃと、フリップフロップ１０４ｂ、１０４ｄ、１０４ｅとを有している。排他的論理和ゲート１０４ａは、スイッチ１０２介して送られてくる入力されたワードデータと、フリップフロップ１０４ｅの出力とに基づいて、排他的論理和演算を行い、演算結果をフリップフロップ１０４ｂに送出する。排他的論理和ゲート１０４ｃは、フリップフロップ１０４ｂの出力と、フリップフロップ１０４ｅの出力とに基づいて、排他的論理和演算を行い、演算結果をフリップフロップ１０４ｄに送出する。フリップフロップ１０４ｄの出力は、フリップフロップ１０４ｅに出力される。このシンドローム計算部１０４において、フリップフロップ１０４ｂ、１０４ｄ、１０４ｅがシフトレジスタを構成する。
【００５４】
シンドローム検出部のＡＮＤゲート１０６は、フリップフロップ１０４ｂの出力、フリップフロップ１０４ｄの出力の反転値、およびフリップフロップ１０４ｅの出力に基づいて、ＡＮＤ演算を行い、演算結果をスイッチ１０８を介して排他的論理和ゲート１１０に送出する。排他的論理和ゲート１１０は、スイッチ１０８を介して送られてくるＡＮＤゲート１０６の出力と、ワードバッファ１００の出力とに基づいて、排他的論理和演算を行い、演算結果を外部に送出する。
【００５５】
図１４に示すＥＣＣ回路においては、入力されたデータ（ワードデータ）を訂正しない場合には、スイッチ１０２およびスイッチ１０８をオフ状態（接点Ｘに接続した状態）とする。この場合は、入力されたデータは、ワードバッファ１００を介して外部に出力される。入力されたデータを訂正する場合には、スイッチ１０２およびスイッチ１０８をオン状態（接点Ｙに接続した状態）とする。この場合は、入力されたデータは、ワードバッファ１００に記憶されるとともに、スイッチ１０２を介してシンドローム計算部に送られて、シンドロームが計算される。そして、この計算結果に基づいて、シンドロームがシンドローム検出部１０６において検出される。このシンドロームは、ワードバッファ１００の出力と、排他的論理和ゲート１１０において排他的論理和演算されることにより、訂正されたワードが排他的論理和ゲートから出力される。なお、この図１４に示す回路は、スイッチ１０２，１０８により、デコード機能を行うことになる。
【００５６】
このように、メモリに設けられているＥＣＣ回路を使用する、本実施形態におけるＥＣＣ回路２４を図１５に示す。このＥＣＣ回路２４は、図１４に示すＥＣＣ回路において、スイッチ１２０、１２４と、排他的論理和ゲート１２２とを設けた構成となっている。
【００５７】
図１３に示すＣＰＵ１９からの乱数データは、スイッチ１２０を介してシンドローム計算部１０４の排他的論理和ゲート１０４ａ、１０４ｃ、１２２の一方の入力端子に送られる。排他的論理和ゲート１２２は、ＣＰＵ１９から送られてきた乱数データと、フリップフロップ１０４ｅの出力とに基づいて、排他的論理和演算を行い、この演算結果を、訂正された（平滑化された）乱数データとして、スイッチ１２４を介して出力する。このＥＣＣ回路２４から出力された訂正された乱数データは、図１３に示すスイッチ回路２２に送られる。なお、本実施形態においては、排他的論理和ゲートから出力された乱数データは、（６）式の右辺に示す符号訂正された乱数データとなる。
【００５８】
本実施形態の乱数生成回路においては、最初は、スイッチ回路２２の接点ａと接点を結線しておく。すると、デジタル化回路１２から出力されたデジタル化された乱数データは、検定回路１７に送られて、検定される。検定回路１７における検定が合格（ＯＫ）の場合は、ＣＰＵ１９を介して、乱数データが外部に出力される。検定が不合格（ＮＧ）の場合は、乱数データはＣＰＵ１９からＥＣＣ回路２４に送られる。このとき、同時にスイッチ回路２２の接点ｂと接点ｃとが結線される。この結果、ＥＣＣ回路２４によって訂正された乱数データは、スイッチ回路２２を介して検定回路１７に送られ、検定される。この検定が合格であれば、ＣＰＵ１９を介して、乱数データが外部に出力され、不合格（ＮＧ）の場合は、乱数データはＣＰＵ１９からＥＣＣ回路２４に送られ、上述したことが繰り返される。
【００５９】
以上説明したように、本実施形態によれば、ＥＣＣの機能がメモリに取り込まれているので、ＥＣＣの機能を小面積で実現することができるとともに余計なオーバヘッドが加わるのを可及的に抑制することができる。
【００６０】
（第４実施形態）
次に、本発明の第４実施形態による暗号回路を図１６（ａ）乃至図１７を参照して説明する。本実施形態の暗号回路は、第１乃至第３実施形態のいずれかの乱数生成回路を有し、例えばＩＣカードあるいはモバイル機器などに用いられる。そして、本実施形態においては、乱数生成回路のメモリに記憶されているコードあるいは生成行列のうちのどれを使用できるかを、ユーザが暗号回路である例えばＩＣカードの情報を読み取る装置にアクセスしたときに変更することが可能な構成となっている。具体的には、図１６（ａ）、１６（ｂ）に示すような状況で使用する。図１６（ａ）では銀行、郵便局などの金融機関など、あるいは官公庁が住民情報の登録などに使用するＡＴＭ（Automated Teller Machine）において、ユーザがお金や個人情報を出し入れする際に、そのユーザが暗号回路としてのＩＣカードを利用する場合、あるいは図１６（ｂ）に示すような、コンビニエンスストア、電車バスなどに設置された読み取り端末と、本実施形態の暗号回路である、例えば携帯電話または小型ＰＣなどのモバイル機器とで無線などを介して電子マネー、個人情報、データなどをやり取りする場合を考える。これらのＡＴＭ、公共の場所に置かれた読み取り端末はデータ回線を通じて、企業、官公庁のメインコンピュータ、あるいはサーバーに接続しているので以後、システムと呼ぶ。
【００６１】
図１７に示すように、ユーザが、本実施形態の暗号回路５０であるＩＣカードあるいはモバイル機器を使用する場合、初めにシステム６０が暗号回路５０の個人認証をする必要がある。このとき、システム６０は、本実施形態の暗号回路である、ＩＣカードまたはモバイル機器内のメモリ５６に蓄えられた個人情報を、暗号回路５０のＣＰＵ５２を介して読みにいく。本実施形態では、このシステム６０が、暗号回路５０である、ＩＣカードまたはモバイル機器と交信をする際に、ＣＰＵ５２が乱数生成回路５４から生成される乱数の質を検定し、もし乱数の質に劣化が見られれば、劣化の度合いに応じて、乱数と、第１乃至第３実施形態におけるエラー訂正コード用生成行列との乗算を実行する。例えば、販売時にはエラー訂正コード用生成行列の適用が不要な場合の乱数が劣化した場合、乱数と、第１乃至第３実施形態のエラー訂正コード用生成行列との乗算を１回行ってから乱数データを出力する。さらに劣化が進んだ場合には生成行列との乗算の回数を１回から２回に増やすなどの処置を取る。どのエラー訂正コード用生成行列を適用するかは劣化の度合いなどに応じて、システム側のコンピュータで幾つかのパターンを設けて適用する。そして、その結果はモバイル機器のメモリ部分に書き込み、自動的に修正されたエラー訂正コード用生成行列を適用できるようにする。これは、例えば図２に示すように、ＬＦＳＲ／ＥＣＣ回路１５において、どのコードを選択するかは各スイッチで変更可能であるのでどのスイッチをオン／オフするかの変更情報をモバイル機器内のメモリに保存することにより、経年劣化が起こっても乱数の質を高く保つことができる。
【００６２】
また、本実施形態においては、乱数生成回路から出力される乱数を検定（テスト）して、劣化した場合に、乱数とエラー訂正コード用生成行列との乗算を実行し、乱数の質を変えたが、暗号回路がシステムによってアクセスされた場合に、検定を行わずに乱数とエラー訂正コード用生成行列との乗算を実行してもよい。これは、ＣＰＵが乱数の質を変えたい場合、例えば、暗号回路が製造されてからかなりの年数を経ていて乱数生成回路から出力される乱数に劣化が生じていると見なされる場合には、有効である。
【００６３】
以上説明したように、本実施形態によれば、ＥＣＣの機能がＬＦＳＲに取り込まれているので、ＥＣＣの機能を小面積で実現することができるとともに余計なオーバヘッドが加わるのを可及的に抑制することができる。
【００６４】
なお、上記実施形態では、符号生成行列は簡単な線形符号行列のみ示したが、符号の種類は様々なものが適用可能であり、上述した文献、Stephen B. Wickerｃｈ著、”Error Control Systems for Digital Communication and Storage”，Prentice Hall;1995などに記載されている一般的な巡回符号、ハミング符号、ＢＣＨ符号、リード−ソロモン（Reed-Solomon）符号、ターボ符号などを使用した生成行列を用いても良い。
【００６５】
上述したように、物理乱数生成素子として、特許３９７４４２９号公報に示すように量子ドット系を用いるもの、特開２００５−１６７１６５号公報に示すようにチャネル上にトンネル絶縁膜を介して、電子の充放電が可能な導電性微粒子を設けたＭＯＳＦＥＴ、特開２００８−２９９５９５号公報に示すようにソースとドレイン間に流れる電流にランダムノイズが含まれるＭＯＳＦＥＴ、米国特許第７，４２６，５２７号、独国特許公開第１０２００４０１１１７０号明細書などに示すように素子内にあるトラップを利用したもの、あるいは仏国特許第２８１７３６１号明細書に示すように電流揺らぎを用いたものなどを用いることができる。これらの物理乱数生成素子は、通常のトランジスタ内の揺らぎ現象を利用したにおいては、ゲート絶縁膜の劣化などのトランジスタそのものの劣化が起こる場合がある。したがって、このような物理乱数生成素子を用いるときは、第１乃至第３実施形態の乱数生成回路のような構成とすることが有効である。
【図１】
0005433686.tif 000011
【図２】
0005433686.tif 000012
【図３】
0005433686.tif 000013
【図４】
0005433686.tif 000014
【図５】
0005433686.tif 000015
【図６】
0005433686.tif 000016
【図７】
0005433686.tif 000017
【図８】
0005433686.tif 000018
【図９】
0005433686.tif 000019
【図１０】
0005433686.tif 000020
【図１１】
0005433686.tif 000021
【図１２】
0005433686.tif 000022
【図１３】
0005433686.tif 000023
【図１４】
0005433686.tif 000024
【図１５】
0005433686.tif 000025
【図１６】
0005433686.tif 000026
【図１７】
0005433686.tif 000027