図面 (/)

技術 乱数生成装置及び乱数生成方法

出願人 株式会社メガチップス
発明者 山本武史菅原崇彦
出願日 2015年1月9日 (5年11ヶ月経過) 出願番号 2015-003677
公開日 2016年7月14日 (4年5ヶ月経過) 公開番号 2016-128999
状態 特許登録済
技術分野 特定演算一般(初等関数/乱数発生/非基数) 暗号化・復号化装置及び秘密通信
主要キーワード 二値論理 周波数補正後 周波数補正信号 周波数補正回路 周波数補正値 故障処理 除外処理 故障通知
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2016年7月14日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (19)

課題

適正な乱数を生成し得ない状態で継続して使用されることを回避することが可能な、乱数生成装置を得る。

解決手段

乱数生成装置1は、直列に接続された複数奇数個の論理ゲートを含む論理ゲート列を有し、二値論理の「0」と「1」とが交互に繰り返される出力値S2を出力する発振回路2と、発振回路2の出力値S2を所定のタイミングでサンプリングすることにより、乱数S3を生成するサンプリング回路3と、上記論理ゲート列に含まれる複数の論理ゲートのうちいずれかの論理ゲートが故障している場合に、その故障を検出する検出回路11と、を備える。

概要

背景

近年における情報技術の発達に伴い、第三者による盗聴改ざん、なりすまし等の犯罪が増加する傾向にある。そのため、暗号化による情報セキュリティが重要になってきており、暗号化において乱数の利用は不可欠である。

従来は、関数の組み合わせによる計算式を用いた演算によって生成される擬似乱数が多く使用されていたが、関数や初期設定が人為的に漏洩する危険性や、第三者によって乱数生成パターン予測され得る可能性があった。そのため、擬似乱数に代えて、再現不可能性及び予測不可能性の高い真性乱数が求められるようになった。

一般的な真性乱数生成器では、二値論理の「0」と「1」とが交互に繰り返される出力値リング発振器から出力し、その出力値をシフトレジスタで所定のサンプリングクロックを用いてサンプリングすることによって、真性乱数が生成される。

なお、下記特許文献1には、乱数出力レジスタから出力された乱数出力に基づいてシステムクロック整数倍のサンプリングクロックを生成し、当該サンプリングクロックを用いて発振器の出力値をサンプリングすることにより、乱数出力レジスタで乱数を生成する真性乱数生成装置が開示されている。

概要

適正な乱数を生成し得ない状態で継続して使用されることを回避することが可能な、乱数生成装置を得る。乱数生成装置1は、直列に接続された複数奇数個の論理ゲートを含む論理ゲート列を有し、二値論理の「0」と「1」とが交互に繰り返される出力値S2を出力する発振回路2と、発振回路2の出力値S2を所定のタイミングでサンプリングすることにより、乱数S3を生成するサンプリング回路3と、上記論理ゲート列に含まれる複数の論理ゲートのうちいずれかの論理ゲートが故障している場合に、その故障を検出する検出回路11と、を備える。

目的

本発明はかかる事情に鑑みて成されたものであり、適正な乱数を生成し得ない状態で継続して使用されることを回避することが可能な、乱数生成装置及び乱数生成方法を得ることを目的とする

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

直列に接続された複数奇数個の論理ゲートを含む論理ゲート列を有し、二値論理の「0」と「1」とが交互に繰り返される出力値を出力する発振回路と、前記発振回路の出力値を所定のタイミングでサンプリングすることにより、乱数を生成する乱数生成回路と、前記論理ゲート列に含まれる複数の論理ゲートのうちいずれかの論理ゲートが故障している場合に、その故障を検出する検出回路と、を備える、乱数生成装置

請求項2

前記検出回路は、前記論理ゲート列に含まれる複数の論理ゲートの各々について、論理ゲートの出力値が所定方向トグルしていないことを検出することにより、論理ゲートの故障を検出する、請求項1に記載の乱数生成装置。

請求項3

前記検出回路がいずれかの論理ゲートの故障を検出した場合に、前記乱数生成装置の出力値が無効であることを示す通知信号を出力する故障通知部をさらに備える、請求項1又は2に記載の乱数生成装置。

請求項4

前記検出回路がいずれかの論理ゲートの故障を検出した場合に、その故障を補正する故障補正回路をさらに備える、請求項1〜3のいずれか一つに記載の乱数生成装置。

請求項5

直列に接続された複数奇数個の論理ゲートを含む論理ゲート列を有し、二値論理の「0」と「1」とが交互に繰り返される出力値を出力する発振回路と、前記発振回路の出力値を所定のタイミングでサンプリングすることにより、乱数を生成する乱数生成回路と、前記論理ゲート列に含まれる複数の論理ゲートのうちいずれかの論理ゲートが故障している場合に、その故障を補正する故障補正回路と、を備える、乱数生成装置。

請求項6

前記故障補正回路は、故障論理ゲートを含む偶数個の論理ゲートを前記論理ゲート列から除外することにより、故障を補正する、請求項4又は5に記載の乱数生成装置。

請求項7

前記発振回路は、複数の予備論理ゲートをさらに有し、前記故障補正回路が前記論理ゲート列から除外した論理ゲートの個数同数の予備論理ゲートを、前記論理ゲート列に追加する、周波数補正回路をさらに備える、請求項6に記載の乱数生成装置。

請求項8

(A)直列に接続された複数奇数個の論理ゲートを含む論理ゲート列を用いて、二値論理の「0」と「1」とが交互に繰り返される出力値を生成するステップと、(B)前記ステップ(A)で生成された出力値を所定のタイミングでサンプリングすることにより、乱数を生成するステップと、(C)前記論理ゲート列に含まれる複数の論理ゲートのうちいずれかの論理ゲートが故障している場合に、その故障を検出するステップと、を備える、乱数生成方法

請求項9

(A)直列に接続された複数奇数個の論理ゲートを含む論理ゲート列を用いて、二値論理の「0」と「1」とが交互に繰り返される出力値を生成するステップと、(B)前記ステップ(A)で生成された出力値を所定のタイミングでサンプリングすることにより、乱数を生成するステップと、(C)前記論理ゲート列に含まれる複数の論理ゲートのうちいずれかの論理ゲートが故障している場合に、その故障を補正するステップと、を備える、乱数生成方法。

技術分野

0001

本発明は、乱数生成装置及び乱数生成方法に関し、特に、真性乱数生成装置及び生成方法に関する。

背景技術

0002

近年における情報技術の発達に伴い、第三者による盗聴改ざん、なりすまし等の犯罪が増加する傾向にある。そのため、暗号化による情報セキュリティが重要になってきており、暗号化において乱数の利用は不可欠である。

0003

従来は、関数の組み合わせによる計算式を用いた演算によって生成される擬似乱数が多く使用されていたが、関数や初期設定が人為的に漏洩する危険性や、第三者によって乱数生成パターン予測され得る可能性があった。そのため、擬似乱数に代えて、再現不可能性及び予測不可能性の高い真性乱数が求められるようになった。

0004

一般的な真性乱数生成器では、二値論理の「0」と「1」とが交互に繰り返される出力値リング発振器から出力し、その出力値をシフトレジスタで所定のサンプリングクロックを用いてサンプリングすることによって、真性乱数が生成される。

0005

なお、下記特許文献1には、乱数出力レジスタから出力された乱数出力に基づいてシステムクロック整数倍のサンプリングクロックを生成し、当該サンプリングクロックを用いて発振器の出力値をサンプリングすることにより、乱数出力レジスタで乱数を生成する真性乱数生成装置が開示されている。

先行技術

0006

特開2005−174206号公報

発明が解決しようとする課題

0007

上記の通り一般的な真性乱数生成器では、リング発振器からの出力値をシフトレジスタでサンプリングすることによって、真性乱数が生成される。しかし、リング発振器を構成する複数の論理ゲートのうちのいずれかの論理ゲートが故障すれば、リング発振器は発振しなくなり、リング発振器からの出力値は「0」又は「1」に固定される。従って、そのような出力値をサンプリングしても乱数の生成は不可能であるため、論理ゲートが故障した状態で乱数生成器の使用を継続するのは、セキュリティ上、深刻な脅威になるおそれがある。

0008

本発明はかかる事情に鑑みて成されたものであり、適正な乱数を生成し得ない状態で継続して使用されることを回避することが可能な、乱数生成装置及び乱数生成方法を得ることを目的とするものである。

課題を解決するための手段

0009

本発明の第1の態様に係る乱数生成装置は、直列に接続された複数奇数個の論理ゲートを含む論理ゲート列を有し、二値論理の「0」と「1」とが交互に繰り返される出力値を出力する発振回路と、前記発振回路の出力値を所定のタイミングでサンプリングすることにより、乱数を生成する乱数生成回路と、前記論理ゲート列に含まれる複数の論理ゲートのうちいずれかの論理ゲートが故障している場合に、その故障を検出する検出回路と、を備えることを特徴とするものである。

0010

第1の態様に係る乱数生成装置によれば、検出回路は、論理ゲート列に含まれる複数の論理ゲートのうちいずれかの論理ゲートが故障している場合に、その故障を検出する。従って、検出回路がいずれかの論理ゲートの故障を検出した場合には、乱数を使用する外部装置に対してその旨を通知することにより、あるいは、乱数生成装置内でその故障を補正することにより、適正な乱数を生成し得ない状態で乱数生成装置が継続して使用されることを回避できる。

0011

本発明の第2の態様に係る乱数生成装置は、第1の態様に係る乱数生成装置において特に、前記検出回路は、前記論理ゲート列に含まれる複数の論理ゲートの各々について、論理ゲートの出力値が所定方向トグルしていないことを検出することにより、論理ゲートの故障を検出することを特徴とするものである。

0012

第2の態様に係る乱数生成装置によれば、検出回路は、論理ゲート列に含まれる複数の論理ゲートの各々について、論理ゲートの出力値が所定方向にトグルしていないことを検出することにより、論理ゲートの故障を検出する。これにより、論理ゲートの故障を簡易かつ確実に検出することが可能となる。

0013

本発明の第3の態様に係る乱数生成装置は、第1又は第2の態様に係る乱数生成装置において特に、前記検出回路がいずれかの論理ゲートの故障を検出した場合に、前記乱数生成装置の出力値が無効であることを示す通知信号を出力する故障通知部をさらに備えることを特徴とするものである。

0014

第3の態様に係る乱数生成装置によれば、故障通知部は、検出回路がいずれかの論理ゲートの故障を検出した場合に、乱数生成装置の出力値が無効であることを示す通知信号を出力する。従って、乱数を使用する外部装置は、故障通知部から当該通知信号が入力されることにより、乱数の使用を直ちに停止することが可能となる。

0015

本発明の第4の態様に係る乱数生成装置は、第1〜第3のいずれか一つの態様に係る乱数生成装置において特に、前記検出回路がいずれかの論理ゲートの故障を検出した場合に、その故障を補正する故障補正回路をさらに備えることを特徴とするものである。

0016

第4の態様に係る乱数生成装置によれば、故障補正回路は、検出回路がいずれかの論理ゲートの故障を検出した場合に、その故障を補正する。従って、故障補正回路が論理ゲートの故障を補正することによって発振回路は適正な出力値を出力するため、乱数生成回路は当該適正な出力値に基づいて適正な乱数を生成できる。その結果、適正な乱数を生成し得ない状態で乱数生成装置が継続して使用されることを回避できる。

0017

本発明の第5の態様に係る乱数生成装置は、直列に接続された複数奇数個の論理ゲートを含む論理ゲート列を有し、二値論理の「0」と「1」とが交互に繰り返される出力値を出力する発振回路と、前記発振回路の出力値を所定のタイミングでサンプリングすることにより、乱数を生成する乱数生成回路と、前記論理ゲート列に含まれる複数の論理ゲートのうちいずれかの論理ゲートが故障している場合に、その故障を補正する故障補正回路と、を備えることを特徴とするものである。

0018

第5の態様に係る乱数生成装置によれば、故障補正回路は、論理ゲート列に含まれる複数の論理ゲートのうちいずれかの論理ゲートが故障している場合に、その故障を補正する。従って、故障補正回路が論理ゲートの故障を補正することによって発振回路は適正な出力値を出力するため、乱数生成回路は当該適正な出力値に基づいて適正な乱数を生成できる。その結果、適正な乱数を生成し得ない状態で乱数生成装置が継続して使用されることを回避できる。

0019

本発明の第6の態様に係る乱数生成装置は、第4又は第5の態様に係る乱数生成装置において特に、前記故障補正回路は、故障論理ゲートを含む偶数個の論理ゲートを前記論理ゲート列から除外することにより、故障を補正することを特徴とするものである。

0020

第6の態様に係る乱数生成装置によれば、故障補正回路は、故障論理ゲートを含む偶数個の論理ゲートを論理ゲート列から除外することにより、故障を補正する。このように、バイパスにより故障論理ゲートを論理ゲート列から除外するという簡易な手法によって、論理ゲートの故障を簡易に補正することが可能となる。また、偶数個の論理ゲートを除外することにより、除外後の論理ゲート列は奇数個の論理ゲートによって構成されるため、発振回路の出力値を正しく発振させることが可能となる。

0021

本発明の第7の態様に係る乱数生成装置は、第6の態様に係る乱数生成装置において特に、前記発振回路は、複数の予備論理ゲートをさらに有し、前記故障補正回路が前記論理ゲート列から除外した論理ゲートの個数同数の予備論理ゲートを、前記論理ゲート列に追加する、周波数補正回路をさらに備えることを特徴とするものである。

0022

第7の態様に係る乱数生成装置によれば、周波数補正回路は、故障補正回路が論理ゲート列から除外した論理ゲートの個数と同数の予備論理ゲートを、論理ゲート列に追加する。従って、論理ゲート列を構成する論理ゲートの段数除外処理の前後で変わらないため、発振回路の発振周波数を維持することが可能となる。

0023

本発明の第8の態様に係る乱数生成方法は、(A)直列に接続された複数奇数個の論理ゲートを含む論理ゲート列を用いて、二値論理の「0」と「1」とが交互に繰り返される出力値を生成するステップと、(B)前記ステップ(A)で生成された出力値を所定のタイミングでサンプリングすることにより、乱数を生成するステップと、(C)前記論理ゲート列に含まれる複数の論理ゲートのうちいずれかの論理ゲートが故障している場合に、その故障を検出するステップと、を備えることを特徴とするものである。

0024

第8の態様に係る乱数生成方法によれば、ステップ(C)では、論理ゲート列に含まれる複数の論理ゲートのうちいずれかの論理ゲートが故障している場合に、その故障が検出される。従って、ステップ(C)においていずれかの論理ゲートの故障が検出された場合には、乱数を使用する外部装置に対してその旨を通知することにより、あるいは、乱数生成装置内でその故障を補正することにより、適正な乱数を生成し得ない状態で乱数生成装置が継続して使用されることを回避できる。

0025

本発明の第9の態様に係る乱数生成方法は、(A)直列に接続された複数奇数個の論理ゲートを含む論理ゲート列を用いて、二値論理の「0」と「1」とが交互に繰り返される出力値を生成するステップと、(B)前記ステップ(A)で生成された出力値を所定のタイミングでサンプリングすることにより、乱数を生成するステップと、(C)前記論理ゲート列に含まれる複数の論理ゲートのうちいずれかの論理ゲートが故障している場合に、その故障を補正するステップと、を備えることを特徴とするものである。

0026

第9の態様に係る乱数生成方法によれば、ステップ(C)では、論理ゲート列に含まれる複数の論理ゲートのうちいずれかの論理ゲートが故障している場合に、その故障が補正される。従って、ステップ(C)で論理ゲートの故障を補正することによってステップ(A)で適正な出力値を出力できるため、ステップ(B)では当該適正な出力値に基づいて適正な乱数を生成できる。その結果、適正な乱数を生成し得ない状態で乱数生成装置が継続して使用されることを回避できる。

発明の効果

0027

本発明によれば、適正な乱数を生成し得ない状態で乱数生成装置が継続して使用されることを回避することが可能となる。

図面の簡単な説明

0028

本発明の実施の形態1に係る乱数生成装置の構成を示す図である。
発振回路の構成を示す図である。
サンプリング回路の構成を示す図である。
故障処理部の構成を示す図である。
検出回路の具体的な構成を示す図である。
故障補正回路の具体的な構成を示す図である。
判定回路の具体的な構成を示す図である。
検出回路によるトグルの検出結果を示す図である。
故障補正回路によって生成された故障補正信号を示す図である。
検出回路によるトグルの検出結果を示す図である。
本発明の実施の形態2に係る乱数生成装置の構成を示す図である。
発振回路の構成を示す図である。
故障処理部の構成を示す図である。
周波数補正回路の具体的な構成を示す図である。
検出回路によるトグルの検出結果を示す図である。
故障補正回路によって生成された故障補正信号を示す図である。
周波数補正回路によって生成された周波数補正信号を示す図である。
検出回路によるトグルの検出結果を示す図である。

実施例

0029

以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、異なる図面において同一の符号を付した要素は、同一又は相応する要素を示すものとする。

0030

<実施の形態1>
図1は、本発明の実施の形態1に係る乱数生成装置1の構成を示す図である。図1接続関係で示すように、乱数生成装置1は、発振回路2、サンプリング回路3、及び故障処理部4を備えて構成されている。

0031

発振回路2は、二値論理の「0」と「1」とが交互に繰り返される出力値S2を出力する。サンプリング回路3は、乱数生成回路として機能し、システムクロックSCをサンプリングクロックとして用いて発振回路2の出力値S2をサンプリングすることにより、真性乱数S3を生成する。

0032

図2は、発振回路2の構成を示す図である。図2の接続関係で示すように、発振回路2は、複数の論理ゲートG0〜G10と複数のセレクタL1〜L9とを備えて構成されている。発振回路2は、複数の奇数個の論理ゲートが直列に接続された論理ゲート列を有している。本実施の形態の例では、9個の論理ゲートG1〜G9がセレクタL1〜L8を介して直列に接続されており、最終段の論理ゲートG9の出力は、セレクタL9及び論理ゲートG0を介して初段の論理ゲートG1に入力されている。これにより、9段の論理ゲートG1〜G9によってリングオシレータが構成されている。セレクタL9からの出力値として、発振回路2の出力値S2が得られる。

0033

論理ゲートG10は、論理ゲートG1の故障時にそれを代替するための論理ゲートである。セレクタL1の入力端子T0には論理ゲートG1の出力が接続されており、入力端子T1には論理ゲートG10の出力が接続されている。セレクタL1が故障補正値S50に基づいて入力端子T0,T1の一方を選択することにより、論理ゲートG1,G10が切り替えられる。

0034

セレクタL2〜L9は、入力端子T0,T1をそれぞれ有している。論理ゲートG2〜G9の出力は、対応するセレクタL2〜L9の入力端子T0にそれぞれ接続されている。セレクタL2〜L9の入力端子T1には、対応する論理ゲートG2〜G9をバイパスするための配線がそれぞれ接続されている。

0035

セレクタL2,L3は故障補正値S51に基づいて、セレクタL4,L5は故障補正値S52に基づいて、セレクタL6,L7は故障補正値S53に基づいて、セレクタL8,L9は故障補正値S54に基づいて、それぞれ入力端子T0,T1の一方を選択する。例えば、セレクタL2,L3が入力端子T0を選択した場合には、上記論理ゲート列内に論理ゲートG2,G3が含まれ、一方、入力端子T1を選択した場合には、バイパスによって上記論理ゲート列から論理ゲートG2,G3が除外される。

0036

図3は、サンプリング回路3の構成を示す図である。サンプリング回路3は、複数M個のフリップフロップ5(1)〜5(M)が直列に接続された構成を有している。各フリップフロップ5には、システムクロックSCが共通に入力される。

0037

初段のフリップフロップ5(1)のD端子には、発振回路2から出力値S2が入力される。二段目以降のフリップフロップ5(2)〜5(M)のD端子には、前段のフリップフロップ5(1)〜5(M−1)のQ端子からの出力が入力される。M個のフリップフロップ5(1)〜5(M)が直列に接続され、各フリップフロップ5からの出力が配列されることによって、合計Mビットの真性乱数S3がサンプリング回路3から出力される。

0038

図4は、故障処理部4の構成を示す図である。故障処理部4は、検出回路11、故障補正回路12、及び判定回路13を有している。検出回路11は、論理ゲートG1〜G9のいずれかが故障している場合に、その故障を検出する。故障補正回路12は、検出回路11が論理ゲートG1〜G9のいずれかの故障を検出した場合に、その故障を補正する。判定回路13は、故障通知部として機能し、検出回路11が論理ゲートG1〜G9のいずれかの故障を検出した場合に、乱数生成装置1の出力値(乱数S3)が無効であることを示す通知信号S6を出力する。

0039

図5は、検出回路11の具体的な構成を示す図である。図5の接続関係で示すように、検出回路11は、フリップフロップF1〜F9を備えて構成されている。

0040

図6は、故障補正回路12の具体的な構成を示す図である。図6の接続関係で示すように、故障補正回路12は、論理ゲートA1〜A8,B1〜B9,C1〜C4及び補正値出力回路15を備えて構成されている。

0041

図7は、判定回路13の具体的な構成を示す図である。図7の接続関係で示すように、判定回路13は、レジスタ21,22及び比較器23を備えて構成されている。

0042

以下、本実施の形態1に係る乱数生成装置1の動作について説明する。以下の例では、3段目の論理ゲートG3が故障している場合の動作について説明する。なお、故障補正値S50〜S54の初期値はいずれも「0」に設定されている。また、レジスタ21の初期値はオール「0」に設定されており、レジスタ22の初期値はオール「1」に設定されている。

0043

図1を参照して、まず、イネーブル信号S1をアサートすることにより、発振回路2は発振動作を開始する。これにより、発振回路2から出力値S2が出力される。出力値S2は、サンプリング回路3に入力される。

0044

サンプリング回路3は、システムクロックSCに同期して出力値S2をサンプリングする。図3を参照して、サンプリングされた出力値S2は初段のフリップフロップ5(1)に入力され、保持される。サンプリング回路3は、次のシステムクロックSCが入力されることにより、その時点で発振回路2が出力している出力値S2をサンプリングする。サンプリングされた出力値S2は初段のフリップフロップ5(1)に入力され、保持される。また、初段のフリップフロップ5(1)がそれまで保持していた出力値S2(前回のシステムクロックSCに基づいてサンプリングした出力値S2)は、初段のフリップフロップ5(1)から二段目のフリップフロップ5(2)にシフトされる。上記と同様の動作をM回繰り返すことにより、M個のフリップフロップ5(1)〜5(M)の各々に出力値S2が保持される。そして、各フリップフロップ5(1)〜5(M)が保持している出力値S2を各々のQ端子から出力し、これらM個の出力値S2を配列することによって、合計Mビットの乱数S3がサンプリング回路3から出力される。なお、サンプリング回路3は、システムクロックSCに代えて、所定のサンプリングイネーブル信号(図示しない)が入力されたタイミングで出力値S2をサンプリングしても良い。

0045

また、図1を参照して、イネーブル信号S1がアサートされることにより、故障処理部4は故障診断を開始する。図5を参照して、発振回路2の論理ゲートG1〜G9からの出力値S41〜S49は、検出回路11のフリップフロップF1〜F9にそれぞれ入力される。ここでは、出力値S41,S43,S45,S47,S49がHレベルからLレベルへトグルし、出力値S42,S44,S46,S48がLレベルからHレベルへトグルするタイミングで、出力値S41〜S49がフリップフロップF1〜F9に入力される。検出回路11は、出力値S41〜S49が上記の所定方向にトグルしているか否かを検出する。

0046

図8は、検出回路11によるトグルの検出結果を示す図である。フリップフロップF1,F3,F5,F7,F9は、出力値S41,S43,S45,S47,S49に関して、HレベルからLレベルへのトグル方向(N)を検出した場合には、「1」の検出結果を検出信号S71,S73,S75,S77,S79としてそれぞれ出力する。また、フリップフロップF2,F4,F6,F8は、出力値S42,S44,S46,S48に関して、LレベルからHレベルへのトグル方向(P)を検出した場合には、「1」の検出結果を検出信号S72,S74,S76,S78としてそれぞれ出力する。この例では論理ゲートG3が故障しているため、論理ゲートG3の出力値S43以降の出力値S43〜S49に関しては、所定方向のトグルが検出されず、検出結果は「0」となっている。

0047

図5,6を参照して、検出信号S71〜S79は、検出回路11から故障補正回路12に入力される。故障補正回路12は、検出信号S71〜S79のうち最初に値が「0」となる検出信号に対応する論理ゲートを、故障論理ゲートと特定する。この例では、最初に値が「0」となる検出信号S73に対応する論理ゲートG3を、故障論理ゲートと特定する。故障補正回路12は、故障論理ゲートの特定結果に基づいて、故障補正信号S5を生成する。

0048

図9は、故障補正回路12によって生成された故障補正信号S5(故障補正値S50〜S54)を示す図である。故障補正回路12は、論理ゲートG1〜G9がいずれも故障していない場合には、故障補正値S50〜S54を全て「0」に設定する。また、論理ゲートG1が故障している場合には、故障補正値S50を「1」に設定する。同様に、論理ゲートG2又はG3が故障している場合には故障補正値S51を、論理ゲートG4又はG5が故障している場合には故障補正値S52を、論理ゲートG6又はG7が故障している場合には故障補正値S53を、論理ゲートG8又はG9が故障している場合には故障補正値S54を、それぞれ「1」に設定する。この例では論理ゲートG3が故障しているため、故障補正値S51は「1」に設定され、故障補正値S50,S52〜S54は「0」に設定される。

0049

図7を参照して、故障補正値S50〜S54を含む故障補正信号S5は、故障補正回路12から判定回路13に入力される。故障補正信号S5は、レジスタ21に入力され、保持される。また、判定回路13は、故障補正値S50〜S54のいずれかが「1」に設定されている場合には、上記論理ゲート列内に故障論理ゲートが含まれていると判定し、乱数生成装置1の出力値(乱数S3)が無効であることを示す通知信号S6を出力する。この例では故障補正値S51が「1」に設定されているため、出力値の無効を示す通知信号S6が出力される。具体的には、通知信号S6をネゲートすることにより、値が「0」の通知信号S6を出力する。なお、故障補正値S50〜S54がいずれも「0」に設定されている場合には、判定回路13は、通知信号S6をアサートすることにより、値が「1」の通知信号S6を出力する。

0050

また、図2,6を参照して、故障補正値S50〜S54を含む故障補正信号S5は、補正値出力回路15から発振回路2に入力される。図2を参照して、セレクタL1〜L9は、故障補正値S50〜S54に基づいて入力端子T0,T1の一方をそれぞれ選択する。この例では、故障補正値S51は「1」に設定され、故障補正値S50,S52〜S54は「0」に設定されているため、セレクタL2,L3は入力端子T1を選択し、セレクタL1,L4〜L9は入力端子T0を選択する。セレクタL2,L3が入力端子T1を選択したことにより、バイパスによって論理ゲートG2,G3は上記論理ゲート列から除外される。その結果、故障補正後は、7段の論理ゲートG1,G4〜G9によってリングオシレータが構成される。

0051

論理ゲートG3より後段の論理ゲートG4〜G9が故障しているか否かを判定するために、論理ゲートG3の故障補正後も故障処理部4による故障診断は継続される。上記と同様に、論理ゲートG1〜G9からの出力値S41〜S49は、検出回路11のフリップフロップF1〜F9にそれぞれ入力される。検出回路11は、上記と同様に、出力値S41〜S49が所定方向にトグルしているか否かを検出する。

0052

図10は、検出回路11によるトグルの検出結果を示す図である。故障補正によって論理ゲートG3を論理ゲート列から除外したことにより、図8に示した状態から、出力値S44〜S49に関する検出結果が「1」に変化している。

0053

図5,6を参照して、検出信号S71〜S79は、検出回路11から故障補正回路12に入力される。故障補正回路12は、上記と同様に、検出信号S71〜S79に基づいて故障補正信号S5を生成する。この例では、論理ゲートG3は故障しており、その他の論理ゲートG1,G2,G4〜G9は故障していないため、故障補正値S51は「1」に設定され、故障補正値S50,S52〜S54は「0」に設定される。

0054

図7を参照して、故障補正値S50〜S54を含む故障補正信号S5は、故障補正回路12から判定回路13に入力される。故障補正信号S5は、レジスタ21に入力され、保持される。また、それまでレジスタ21が保持していた前回の故障補正信号S5は、レジスタ21からレジスタ22にシフトされる。比較器23は、レジスタ21に格納されている今回の故障補正信号S5と、レジスタ22に格納されている前回の故障補正信号S5とを比較する。そして、両者が同一である場合には、通知信号S6をアサートすることにより、値が「1」の通知信号S6を出力し、一方、両者が同一でない場合には、通知信号S6のネゲートを維持することにより、値が「0」の通知信号S6を出力する。なお、両者が同一でない場合に、別途エラー信号を出力しても良い。この例では、両者は同一となるため、値が「1」の通知信号S6が比較器23から出力される。つまり、乱数生成装置1の出力値(乱数S3)が有効であることを示す通知信号S6が出力される。

0055

このように本実施の形態に係る乱数生成装置1によれば、検出回路11は、論理ゲート列に含まれる複数の論理ゲートG1〜G9のうちいずれかの論理ゲートが故障している場合に、その故障を検出する。従って、検出回路11がいずれかの論理ゲートの故障を検出した場合には、乱数S3を使用する外部装置に対してその旨を通知することにより、あるいは、乱数生成装置1内でその故障を補正することにより、適正な乱数S3を生成し得ない状態で乱数生成装置1が継続して使用されることを回避できる。

0056

また、本実施の形態に係る乱数生成装置1によれば、検出回路11は、論理ゲート列に含まれる複数の論理ゲートG1〜G9の各々について、論理ゲートの出力値S41〜S49が所定方向にトグルしていないことを検出することにより、論理ゲートの故障を検出する。これにより、論理ゲートの故障を簡易かつ確実に検出することが可能となる。

0057

また、本実施の形態に係る乱数生成装置1によれば、判定回路13(故障通知部)は、検出回路11がいずれかの論理ゲートの故障を検出した場合に、乱数生成装置1の出力値(乱数S3)が無効であることを示す通知信号S6を出力する。従って、乱数S3を使用する外部装置は、判定回路13から当該通知信号S6が入力されることにより、乱数S3の使用を直ちに停止することが可能となる。

0058

また、本実施の形態に係る乱数生成装置1によれば、故障補正回路12は、検出回路11がいずれかの論理ゲートの故障を検出した場合に、その故障を補正する。従って、故障補正回路12が論理ゲートの故障を補正することによって発振回路2は適正な出力値S2を出力するため、サンプリング回路3は当該適正な出力値S2に基づいて適正な乱数S3を生成できる。その結果、適正な乱数S3を生成し得ない状態で乱数生成装置1が継続して使用されることを回避できる。

0059

また、本実施の形態に係る乱数生成装置1によれば、故障補正回路12は、故障論理ゲートG3を含む偶数個の論理ゲート(上記の例では2個の論理ゲートG2,G3)を論理ゲート列から除外することにより、故障を補正する。このように、バイパスにより故障論理ゲートG3を論理ゲート列から除外するという簡易な手法によって、論理ゲートG3の故障を簡易に補正することが可能となる。また、偶数個の論理ゲートを除外することにより、除外後の論理ゲート列は奇数個の論理ゲートによって構成されるため、発振回路2の出力値S2を正しく発振させることが可能となる。

0060

<実施の形態2>
図11は、本発明の実施の形態2に係る乱数生成装置1の構成を示す図である。図11の接続関係で示すように、乱数生成装置1は、発振回路2、サンプリング回路3、及び故障処理部4を備えて構成されている。故障補正信号S5に加えて周波数補正信号S10が、故障処理部10から発振回路2に入力される。

0061

図12は、発振回路2の構成を示す図である。図2に示した構成に、セレクタ30が追加されている。セレクタ30は、入力端子T0〜T3を有している。入力端子T0はセレクタL3の出力に、入力端子T1はセレクタL5の出力に、入力端子T2はセレクタL7の出力に、入力端子T3はセレクタL9の出力に、それぞれ接続されている。

0062

セレクタ30は、周波数補正信号S10に基づいて入力端子T0〜T3を切り替える。具体的にセレクタ30は、周波数補正信号S10の値が「00」である場合には入力端子T0を、「01」である場合には入力端子T1を、「10」である場合には入力端子T2を、「11」である場合には入力端子T3を、それぞれ選択する。セレクタ30の出力は、論理ゲートG0を介して論理ゲートG1,G10の入力に接続されている。

0063

初期状態では周波数補正信号S10の値は「00」に設定されており、セレクタ30は入力端子T0を選択する。これにより、3段の論理ゲートG1〜G3を含む論理ゲート列によって、リングオシレータが構成される。論理ゲートG4〜G9は、予備論理ゲートとして機能する。

0064

図13は、故障処理部4の構成を示す図である。図4に示した構成に、周波数補正回路31が追加されている。周波数補正回路31は、故障補正回路12が故障補正時に上記論理ゲート列から除外した論理ゲートの個数と同数の予備論理ゲートを、上記論理ゲート列に追加する。検出回路11、故障補正回路12、及び判定回路13の構成は、図5〜7に示した上記実施の形態1と同様である。

0065

図14は、周波数補正回路31の具体的な構成を示す図である。周波数補正回路31は、故障補正信号S5に含まれる故障補正値S51〜S54を加算するビット加算器32を有している。

0066

以下、本実施の形態2に係る乱数生成装置1の動作について説明する。以下の例では、3段目の論理ゲートG3が故障している場合の動作について説明する。なお、故障補正値S50〜S54の初期値はいずれも「0」に設定されている。また、レジスタ21の初期値はオール「0」に設定されており、レジスタ22の初期値はオール「1」に設定されている。

0067

図11を参照して、まず、イネーブル信号S1をアサートすることにより、発振回路2は発振動作を開始する。これにより、発振回路2から出力値S2が出力される。出力値S2は、サンプリング回路3に入力される。

0068

サンプリング回路3は、システムクロックSC(又は図示しないサンプリングイネーブル信号)に同期して出力値S2をサンプリングする。

0069

また、イネーブル信号S1がアサートされることにより、故障処理部4は故障診断を開始する。図5を参照して、初期状態の上記論理ゲート列を構成する論理ゲートG1〜G3からの出力値S41〜S43は、検出回路11のフリップフロップF1〜F3にそれぞれ入力される。ここでは、出力値S41,S43がHレベルからLレベルへトグルし、出力値S42がLレベルからHレベルへトグルするタイミングで、出力値S41〜S43がフリップフロップF1〜F3に入力される。検出回路11は、出力値S41〜S43が上記の所定方向にトグルしているか否かを検出する。

0070

図15は、検出回路11によるトグルの検出結果を示す図である。フリップフロップF1,F3は、出力値S41,S43に関して、HレベルからLレベルへのトグル方向(N)を検出した場合には、「1」の検出結果を検出信号S71,S73としてそれぞれ出力する。また、フリップフロップF2は、出力値S42に関して、LレベルからHレベルへのトグル方向(P)を検出した場合には、「1」の検出結果を検出信号S72として出力する。この例では論理ゲートG3が故障しているため、論理ゲートG3の出力値S43に関しては、所定方向のトグルが検出されず、検出結果は「0」となっている。

0071

図5,6を参照して、検出信号S71〜S73は、検出回路11から故障補正回路12に入力される。故障補正回路12は、検出信号S71〜S73のうち最初に値が「0」となる検出信号に対応する論理ゲートを、故障論理ゲートと特定する。この例では、最初に値が「0」となる検出信号S73に対応する論理ゲートG3を、故障論理ゲートと特定する。故障補正回路12は、故障論理ゲートの特定結果に基づいて、故障補正信号S5を生成する。

0072

図16は、故障補正回路12によって生成された故障補正信号S5(故障補正値S50〜S54)を示す図である。この例では、論理ゲートG1は故障していないため、故障補正値S50は「0」に設定される。また、論理ゲートG3は故障しているため、故障補正値S51は「1」に設定される。また、故障補正値S52〜S54は初期値の「0」に設定される。

0073

図7を参照して、故障補正値S50〜S54を含む故障補正信号S5は、故障補正回路12から判定回路13に入力される。故障補正信号S5は、レジスタ21に入力され、保持される。また、判定回路13は、故障補正値S50,S51のいずれかが「1」に設定されている場合には、初期状態の上記論理ゲート列内に故障論理ゲートが含まれていると判定し、乱数生成装置1の出力値(乱数S3)が無効であることを示す通知信号S6を出力する。この例では故障補正値S51が「1」に設定されているため、出力値の無効を示す通知信号S6が出力される。

0074

また、図14を参照して、故障補正値S50〜S54を含む故障補正信号S5は、故障補正回路12から周波数補正回路31に入力される。

0075

図17は、周波数補正回路31によって生成された周波数補正信号S10を示す図である。周波数補正回路31は、ビット加算器32によって故障補正値S51〜S54を加算することにより、周波数補正値を生成する。この例では、故障補正値S51は「1」であり、故障補正値S52〜S54は「0」であるため、周波数補正値は2ビットの「01」となる。周波数補正値「01」を含む周波数補正信号S10は、周波数補正回路31から発振回路2に入力される。

0076

また、図12,6を参照して、故障補正値S50〜S54を含む故障補正信号S5は、補正値出力回路15から発振回路2に入力される。図12を参照して、セレクタL1〜L9は、故障補正値S50〜S54に基づいて入力端子T0,T1の一方をそれぞれ選択する。この例では、故障補正値S51は「1」に設定され、故障補正値S50,S52〜S54は「0」に設定されているため、セレクタL2,L3は入力端子T1を選択し、セレクタL1,L4〜L9は入力端子T0を選択する。セレクタL2,L3が入力端子T1を選択したことにより、バイパスによって論理ゲートG2,G3は初期状態の上記論理ゲート列から除外される。また、周波数補正値「01」を含む周波数補正信号S10が入力されることにより、セレクタ30は入力端子T1を選択する。その結果、3段の論理ゲートG1,G4,G5によってリングオシレータが構成される。つまり、初期状態の論理ゲート列から故障補正によって論理ゲートG2,G3が除外され、代わりに周波数補正によって論理ゲートG4,G5が追加されることにより、リングオシレータの段数及び発振周波数が維持される。

0077

追加された論理ゲートG4,G5が故障しているか否かを判定するために、故障補正及び周波数補正後も故障処理部4による故障診断は継続される。上記と同様に、論理ゲートG1〜G5からの出力値S41〜S45が、検出回路11のフリップフロップF1〜F5にそれぞれ入力される。検出回路11は、上記と同様に、出力値S41〜S45が所定方向にトグルしているか否かを検出する。

0078

図18は、検出回路11によるトグルの検出結果を示す図である。この例では、論理ゲートG4,G5は故障していないため、出力値S44,S45に関する検出結果は「1」となっている。

0079

図5,6を参照して、検出信号S71〜S75は、検出回路11から故障補正回路12に入力される。故障補正回路12は、上記と同様に、検出信号S71〜S75に基づいて故障補正信号S5を生成する。この例では、論理ゲートG3は故障しており、その他の論理ゲートG1,G2,G4,G5は故障していないため、故障補正値S51は「1」に設定され、故障補正値S50,S52は「0」に設定される。また、故障補正値S53,S54は初期値の「0」に設定される。

0080

図7を参照して、故障補正値S50〜S54を含む故障補正信号S5は、故障補正回路12から判定回路13に入力される。故障補正信号S5は、レジスタ21に入力され、保持される。また、それまでレジスタ21が保持していた前回の故障補正信号S5は、レジスタ21からレジスタ22にシフトされる。比較器23は、レジスタ21に格納されている今回の故障補正信号S5と、レジスタ22に格納されている前回の故障補正信号S5とを比較する。そして、両者が同一である場合には、通知信号S6をアサートすることにより、値が「1」の通知信号S6を出力し、一方、両者が同一でない場合には、通知信号S6のネゲートを維持することにより、値が「0」の通知信号S6を出力する。この例では、両者は同一となるため、値が「1」の通知信号S6が比較器23から出力される。つまり、乱数生成装置1の出力値(乱数S3)が有効であることを示す通知信号S6が出力される。

0081

このように本実施の形態に係る乱数生成装置1によれば、周波数補正回路31は、故障補正回路4が論理ゲート列から除外した論理ゲート(上記の例では論理ゲートG2,G3)の個数と同数の予備論理ゲート(上記の例では論理ゲートG4,5)を、論理ゲート列に追加する。従って、論理ゲート列を構成する論理ゲートの段数は除外処理の前後で変わらないため、発振回路2の発振周波数を維持することが可能となる。

0082

1乱数生成装置
2発振回路
3サンプリング回路
4故障処理部
11検出回路
12故障補正回路
13判定回路
31 周波数補正回路

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ