(57)【要約】【課題】簡単な回路構成で、複数の要因に基づいてランダム性が決定される高品位な疑似乱数列の初期値を生成する半導体集積回路装置を提供する。【解決手段】この半導体集積回路装置は、電源電圧の立ち上がりを検出して、リセット信号を一時的に活性化してから非活性化するパワーオンリセット回路と、発振動作を行うことにより順次変化するデータを出力し、リセット信号が非活性化されたときに発振動作を停止する第１の発振回路と、第１の発振回路の発振周波数よりも低い発振周波数で発振動作を行うことによりクロック信号を出力し、リセット信号が非活性化されたときに発振動作を停止する第２の発振回路と、第１の発振回路から出力されるデータをクロック信号に同期して順次保持することにより、リセット信号が非活性化されたときに所定ビット数のデータを疑似乱数列の初期値として出力するシフトレジスターとを含む。【選択図】図２
2016206917.tif 000002
【特許請求の範囲】
【請求項１】
電源電圧の立ち上がりを検出して、リセット信号を一時的に活性化してから非活性化するパワーオンリセット回路と、
発振動作を行うことにより順次変化するバイナリーのデータを出力し、前記リセット信号が非活性化されたときに発振動作を停止する第１の発振回路と、
前記第１の発振回路の発振周波数よりも低い発振周波数で発振動作を行うことによりクロック信号を出力し、前記リセット信号が非活性化されたときに発振動作を停止する第２の発振回路と、
前記第１の発振回路から出力されるデータを前記クロック信号に同期して順次保持することにより、前記リセット信号が非活性化されたときに所定ビット数のデータを疑似乱数列の初期値として出力するシフトレジスターと、
を備える半導体集積回路装置。
【請求項２】
電源電圧の立ち上がりを検出して、リセット信号を一時的に活性化してから非活性化するパワーオンリセット回路と、
発振動作を行うことにより発振信号を出力し、前記リセット信号が非活性化されたときに発振動作を停止する発振回路と、
前記発振回路から出力される発振信号に同期してカウント値を生成することにより、前記リセット信号が非活性化されたときに所定ビット数のカウント値を疑似乱数列の初期値として出力するカウンターと、
を備える半導体集積回路装置。
【請求項３】
前記第１の発振回路、前記第２の発振回路、又は、前記発振回路が、電源電圧の立ち上がりに応じて発振動作を開始するリングオシレーターを含む、請求項１又は２記載の半導体集積回路装置。
【請求項４】
前記パワーオンリセット回路が、電源電圧の立ち上がりを検出して、第１の期間において第１のリセット信号を活性化すると共に、前記第１の期間よりも長い第２の期間において第２のリセット信号を活性化し、
前記第１の発振回路、前記第２の発振回路、又は、前記発振回路が、前記第１のリセット信号が非活性化されたとき、又は、前記第２のリセット信号が非活性化されたときに発振動作を停止する、
請求項１〜３のいずれか１項記載の半導体集積回路装置。
【請求項５】
前記疑似乱数列の初期値に基づいて疑似乱数列を生成する疑似乱数列生成器と、
前記疑似乱数列生成器によって生成される疑似乱数列を用いて、入力されるデータを暗号化して暗号化データを出力する暗号化回路と、
前記疑似乱数列生成器によって生成される疑似乱数列を用いて、入力される暗号化データを復号して復号データを出力する復号回路と、
をさらに備える、請求項１〜４のいずれか１項記載の半導体集積回路装置。
【請求項６】
請求項１〜５のいずれか１項記載の半導体集積回路装置を備える電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号技術等において用いられる疑似乱数列の初期値（シード）を生成する機能を有する半導体集積回路装置に関する。さらに、本発明は、そのような半導体集積回路装置を用いた電子機器等に関する。
【背景技術】
【０００２】
例えば、機密情報を保管する際に、情報のセキュリティを確保するために、疑似乱数列を用いて情報を暗号化することが行われている。疑似乱数列は、初期値（シード）に基づいて確定的な計算によって生成されるので、初期値が判明すれば、疑似乱数が第三者に予測されてしまうおそれがある。従って、高度なセキュリティを確保するためには、疑似乱数列の初期値を第三者にとって予測困難とすることが必要である。
【０００３】
関連する技術として、特許文献１には、デジタル論理ゲート回路のみで、ランダム性の高い乱数列を高スループットで発生させる乱数生成回路が開示されている。この乱数生成回路は、奇数段のインバーターからなるリングオシレーターの中間ノード出力をクロックでラッチし、乱数値として出力する乱数生成回路であって、奇数段のインバーターをカスケードに接続した遅延生成部Ａと、偶数段のインバーターをカスケードに接続し、その初段のインバーターに遅延生成部Ａの最終段のインバーターの出力が接続される遅延生成部Ｂと、遅延生成部Ａの最終段のインバーターの出力と遅延生成部Ｂの最終段のインバーターの出力とを切り替えて遅延生成部Ａの初段のインバーターに接続するセレクターと、短周期のリングオシレーターを形成する第１の動作モード又は長周期のリングオシレーターを形成する第２の動作モードを選択する制御信号をセレクターに出力する制御部とを備え、第１の動作モードと第２の動作モードとを交互に切り替えて発振動作を継続しながら、第２の動作モードのタイミングでリングオシレーターの中間ノード出力をラッチし、乱数値として出力する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−１１７８４６号公報（段落００１４−００１５、図１）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１の乱数生成回路は、外部からクロック信号が供給されて動作し、制御部が、リングオシレーターにおけるインバーターの段数をクロック信号の周期内で変更する。即ち、初期状態においては、少ない段数のインバーターによって発振動作が行われて乱数列のランダム性が比較的高くなり、そのままインバーターの段数の多い動作モードに移行することにより、乱数列におけるハイレベルとローレベルとの偏りが少なくなる。
【０００６】
しかしながら、特許文献１において、乱数列のランダム性は、リングオシレーターの発振周期のジッターのみによって決定されるので、ジッターがあまり大きくない場合には、第三者によって乱数列が予測されてしまうおそれがある。また、乱数生成回路の回路構成が複雑になると共に、消費電流が増加してしまう。
【０００７】
そこで、本発明の第１の目的は、簡単な回路構成で、複数の要因に基づいてランダム性が決定されることにより、予測され難い高品位な疑似乱数列の初期値を生成することができる半導体集積回路装置を提供することである。また、本発明の第２の目的は、そのような半導体集積回路装置を用いた電子機器等を提供することである。
【課題を解決するための手段】
【０００８】
以上の課題の少なくとも一部を解決するため、本発明の第１の観点に係る半導体集積回路装置は、電源電圧の立ち上がりを検出して、リセット信号を一時的に活性化してから非活性化するパワーオンリセット回路と、発振動作を行うことにより順次変化するバイナリーのデータを出力し、リセット信号が非活性化されたときに発振動作を停止する第１の発振回路と、第１の発振回路の発振周波数よりも低い発振周波数で発振動作を行うことによりクロック信号を出力し、リセット信号が非活性化されたときに発振動作を停止する第２の発振回路と、第１の発振回路から出力されるデータをクロック信号に同期して順次保持することにより、リセット信号が非活性化されたときに所定ビット数のデータを疑似乱数列の初期値として出力するシフトレジスターとを備える。
【０００９】
本発明の第１の観点によれば、電源投入時から電源電圧が立ち上がるまでの発振周波数が不安定な期間を利用して、その期間において第１の発振回路から出力されるデータを第２の発振回路から出力されるクロック信号に同期してサンプリングすることにより、疑似乱数列の初期値が生成される。それにより、簡単な回路構成で、複数の要因に基づいてランダム性が決定されるので、予測され難い高品位な疑似乱数列の初期値を生成することができる。また、第１及び第２の発振回路は、電源電圧が十分に立ち上がってリセット信号が非活性化されると発振動作を停止するので、定常状態においては消費電流を低減することができる。
【００１０】
また、本発明の第２の観点に係る半導体集積回路装置は、電源電圧の立ち上がりを検出して、リセット信号を一時的に活性化してから非活性化するパワーオンリセット回路と、発振動作を行うことにより発振信号を出力し、リセット信号が非活性化されたときに発振動作を停止する発振回路と、発振回路から出力される発振信号に同期してカウント値を生成することにより、リセット信号が非活性化されたときに所定ビット数のカウント値を疑似乱数列の初期値として出力するカウンターとを備える。
【００１１】
本発明の第２の観点によれば、電源投入時から電源電圧が立ち上がるまでの発振周波数が不安定な期間を利用して、その期間において発振回路から出力される発振信号に同期してカウント値を生成することにより、疑似乱数列の初期値が生成される。それにより、簡単な回路構成で、複数の要因に基づいてランダム性が決定されるので、予測され難い高品位な疑似乱数列の初期値を生成することができる。また、発振回路は、電源電圧が十分に立ち上がってリセット信号が非活性化されると発振動作を停止するので、定常状態においては消費電流を低減することができる。
【００１２】
以上において、第１の発振回路、第２の発振回路、又は、発振回路が、電源電圧の立ち上がりに応じて発振動作を開始するリングオシレーターを含むようにしても良い。リングオシレーターの発振周波数は電源電圧に大きく依存し、発振周期のジッターも存在するので、疑似乱数列の初期値のランダム性を増加させることができる。
【００１３】
また、パワーオンリセット回路が、電源電圧の立ち上がりを検出して、第１の期間において第１のリセット信号を活性化すると共に、第１の期間よりも長い第２の期間において第２のリセット信号を活性化し、第１の発振回路、第２の発振回路、又は、発振回路が、第１のリセット信号が非活性化されたとき、又は、第２のリセット信号が非活性化されたときに発振動作を停止するようにしても良い。このように、パワーオンリセット回路が複数種類のリセット信号を生成する場合には、それらのリセット信号の内から選択された適切なリセット信号を用いて発振回路の動作期間を設定することができる。
【００１４】
本発明の第１の観点又は第２の観点に係る半導体集積回路装置は、疑似乱数列の初期値に基づいて疑似乱数列を生成する疑似乱数列生成器と、疑似乱数列生成器によって生成される疑似乱数列を用いて、入力されるデータを暗号化して暗号化データを出力する暗号化回路と、疑似乱数列生成器によって生成される疑似乱数列を用いて、入力される暗号化データを復号して復号データを出力する復号回路とをさらに備えても良い。それにより、疑似乱数列を半導体集積回路装置の外部に出力することなくデータを暗号化及び復号することができるので、高度なセキュリティが確保される。
【００１５】
本発明の１つの観点に係る電子機器は、上記いずれかの半導体集積回路装置を備える。それにより、電子機器においてデータを暗号化又は復号するために用いられる疑似乱数列の初期値が複数の要因に基づくランダム性を有するので、高度なセキュリティを有する電子機器を提供することができる。
【図面の簡単な説明】
【００１６】
【図１】半導体集積回路装置を用いた電子機器の電源系統の例を示す図。
【図２】本発明の第１の実施形態に係る半導体集積回路装置の構成例を示す図。
【図３】図２に示すパワーオンリセット回路の第１の構成例を示す回路図。
【図４】図２に示すパワーオンリセット回路の第２の構成例を示す回路図。
【図５】本発明の第１の実施形態に係る半導体集積回路装置の動作例を示す図。
【図６】本発明の第２の実施形態に係る半導体集積回路装置の構成例を示す図。
【図７】本発明の一実施形態に係る電子機器の構成例を示すブロック図。
【発明を実施するための形態】
【００１７】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。なお、同一の構成要素には同一の参照符号を付して、重複する説明を省略する。
図１は、本発明の各実施形態に係る半導体集積回路装置を用いた電子機器の電源系統の例を示す図である。図１に示すように、電子機器は、電池１０と、電源スイッチ２０と、キャパシターＣ０と、半導体集積回路装置３０とを含んでいる。
【００１８】
電源スイッチ２０がオン状態のときに、電池１０からキャパシターＣ０及び半導体集積回路装置３０に電源電圧が供給される。このとき、半導体集積回路装置３０の第１の電源端子には、高電位側の電源電圧ＶＤＤが供給され、半導体集積回路装置３０の第２の電源端子には、低電位側の電源電圧ＶＳＳが供給される。
【００１９】
＜第１の実施形態＞
図２は、本発明の第１の実施形態に係る半導体集積回路装置の一部の構成例を示すブロック図である。図２に示すように、半導体集積回路装置３０は、パワーオンリセット回路３１と、発振回路３２及び３３と、シフトレジスター３４と、メモリー３５と、疑似乱数列生成器３６と、暗号化回路３７と、復号回路３８と、制御部３９と、インターフェース部４０とを含んでいる。
【００２０】
半導体集積回路装置３０に供給される電源電圧が立ち上がる際には、順序回路等の誤動作を防止するために、半導体集積回路装置３０に内蔵された所定の回路をリセットすることが行われる。そのために、パワーオンリセット回路３１が設けられている。パワーオンリセット回路３１は、電源電圧の立ち上がりを検出して、リセット信号ＲＳＴを一時的に活性化してから非活性化する。
【００２１】
発振回路３２は、電源電圧が立ち上がってリセット信号ＲＳＴが活性化されているときに、発振動作を行うことにより順次変化するバイナリーのデータＤＡＴを出力し、リセット信号ＲＳＴが非活性化されたときに、発振動作を停止する。また、発振回路３３は、電源電圧が立ち上がってリセット信号ＲＳＴが活性化されているときに、発振回路３２の発振周波数よりも低い発振周波数で発振動作を行うことによりクロック信号ＣＬＫを出力し、リセット信号ＲＳＴが非活性化されたときに、発振動作を停止する。
【００２２】
発振回路３２及び３３としては、水晶振動子、セラミック振動子、又は、ＳＡＷ（Surface Acoustic Wave：表面弾性波）共振子等の振動子を用いて発振動作を行う発振回路を用いても良いが、以下においては、電源電圧の立ち上がりに応じて発振動作を開始するリングオシレーターを用いる場合について説明する。リングオシレーターの発振周波数は電源電圧に大きく依存し、発振周期のジッターも存在するので、疑似乱数列の初期値のランダム性を増加させることができる。
【００２３】
発振回路３２は、例えば、奇数段のインバーター３２１と、インバーター３２２と、ラッチ回路３２３とを含んでいる。各々のインバーター３２１又は３２２は、入力端子に入力される信号を反転して、反転された信号を出力端子から出力する。ラッチ回路３２３は、通過型ラッチ、データラッチ、又は、ゲーテッドラッチと呼ばれるラッチ回路であり、データ入力端子Ｄと、イネーブル入力端子Ｅと、出力端子Ｑとを有している。ラッチ回路３２３の出力端子Ｑとデータ入力端子Ｄとの間には、奇数段のインバーター３２１が直列に接続されている。
【００２４】
リセット信号ＲＳＴがローレベルに活性化されているときに、インバーター３２２からハイレベルの信号がラッチ回路３２３のイネーブル入力端子Ｅに入力され、ラッチ回路３２３は、データ入力端子Ｄに入力されるデータを出力端子Ｑに直接伝搬させる。ラッチ回路３２３の出力端子Ｑから出力されるデータＤＡＴは、奇数段のインバーター３２１を介してラッチ回路３２３のデータ入力端子Ｄに帰還される。それにより、発振回路３２は発振動作を行い、順次変化するバイナリーのデータＤＡＴを出力する。
【００２５】
リセット信号ＲＳＴがハイレベルに非活性化されると、インバーター３２２からローレベルの信号がラッチ回路３２３のイネーブル入力端子Ｅに入力され、ラッチ回路３２３は、データ入力端子Ｄにそのとき入力されているデータをラッチして出力端子Ｑから出力する。それにより、発振回路３２は発振動作を停止する。
【００２６】
発振回路３３は、例えば、ＮＯＲ回路３３１と、偶数段のインバーター３３２とを含んでいる。ＮＯＲ回路３３１は、第１の入力端子に入力される信号と第２の入力端子に入力される信号との論理和の反転を求めて、論理和の反転を表す信号を出力端子から出力する。ＮＯＲ回路３３１の出力端子と第２の入力端子との間には、偶数段のインバーター３３２が直列に接続されている。各々のインバーター３３２は、入力端子に入力される信号を反転して、反転された信号を出力端子から出力する。
【００２７】
リセット信号ＲＳＴがローレベルに活性化されているときに、ローレベルのリセット信号ＲＳＴがＮＯＲ回路３３１の第１の入力端子に入力され、ＮＯＲ回路３３１は、第２の入力端子に入力される信号を反転して、反転された信号を出力端子から出力する。ＮＯＲ回路３３１の出力端子から出力される信号は、偶数段のインバーター３３２を介してＮＯＲ回路３３１の第２の入力端子に帰還される。それにより、発振回路３３は発振動作を行い、クロック信号ＣＬＫを出力する。ここで、発振回路３３における反転段数を発振回路３２における反転段数よりも多くすることにより、発振回路３３の発振周波数を発振回路３２の発振周波数よりも低くすることができる。
【００２８】
リセット信号ＲＳＴがハイレベルに非活性化されると、ハイレベルのリセット信号ＲＳＴがＮＯＲ回路３３１の第１の入力端子に入力され、ＮＯＲ回路３３１は、ローレベルの信号を出力端子から出力する。それにより、発振回路３３は発振動作を停止する。なお、リセット信号ＲＳＴがハイアクティブである場合には、ＮＯＲ回路の替りにＮＡＮＤ回路が用いられる。
【００２９】
シフトレジスター３４は、発振回路３２から出力されるデータＤＡＴを、発振回路３３から出力されるクロック信号ＣＬＫに同期して順次保持することにより、リセット信号ＲＳＴが非活性化されたときに所定ビット数のデータを疑似乱数列の初期値（シード）として出力する。例えば、疑似乱数列の初期値として８ビットのデータが必要な場合には、８個のＤフリップフロップを含むシフトレジスターが用いられる。
【００３０】
リセット信号ＲＳＴが非活性化されると、メモリー３５は、制御部３９の制御の下で、シフトレジスター３４から出力される疑似乱数列の初期値を格納する。なお、メモリー３５として、不揮発性メモリーを用いても良い。また、疑似乱数列生成器３６は、制御部３９の制御の下で、メモリー３５に格納されている疑似乱数列の初期値に基づいて疑似乱数列を生成する。
【００３１】
例えば、疑似乱数列生成器３６は、線形帰還シフトレジスターで構成される。あるいは、疑似乱数列生成器３６は、組み合わせ回路又は順序回路を含む論理回路で構成され、平方採中法、線形合同法、メルセンヌ・ツイスター法、又は、カオス乱数法等の既知の方式に従って疑似乱数列を生成する。
【００３２】
その場合に、疑似乱数列を生成する方式及び疑似乱数列の初期値が既知であれば、疑似乱数列を予測することが可能である。従って、高度なセキュリティを確保するためには、疑似乱数列の初期値を第三者にとって予測困難とすることが必要である。そこで、本実施形態においては、パワーオンリセット回路３１から出力されるリセット信号ＲＳＴを利用して、発振回路３２及び３３、及び、シフトレジスター３４が、予測され難い高品位な疑似乱数列の初期値を生成する。
【００３３】
図３は、図２に示すパワーオンリセット回路の第１の構成例を示す回路図である。図３に示すパワーオンリセット回路３１は、抵抗Ｒ１と、キャパシターＣ１と、インバーター３１１及び３１２とを含んでいる。抵抗Ｒ１及びキャパシターＣ１は、電源電圧ＶＤＤの配線と電源電圧ＶＳＳの配線との間に直列に接続されている。
【００３４】
抵抗Ｒ１とキャパシターＣ１との接続点には、インバーター３１１の入力端子が接続されており、インバーター３１１の出力端子は、インバーター３１２の入力端子に接続されている。インバーター３１２は、出力端子からリセット信号（パワーオンリセット信号）ＰＯＲを出力する。パワーオンリセット信号ＰＯＲは、図２に示すリセット信号ＲＳＴとして用いられる。
【００３５】
電源投入によってパワーオンリセット回路３１に電源電圧が供給されると、抵抗Ｒ１を介してキャパシターＣ１が充電されることにより、抵抗Ｒ１とキャパシターＣ１との接続点の電位が徐々に上昇する。キャパシターＣ１の充電時間は、抵抗Ｒ１の抵抗値とキャパシターＣ１の容量値との積（時定数）によって決定される。
【００３６】
電源投入の直後においては、抵抗Ｒ１とキャパシターＣ１との接続点の電位がインバーター３１１のしきい電圧よりも低い。従って、インバーター３１１は、ハイレベルの信号を出力し、インバーター３１２は、ローレベルに活性化されたパワーオンリセット信号ＰＯＲを出力する。
【００３７】
電源投入から所定の期間が経過すると、キャパシターＣ１の充電が進み、抵抗Ｒ１とキャパシターＣ１との接続点の電位がインバーターのしきい電圧よりも高くなる。従って、インバーター３１１は、ローレベルの信号を出力し、インバーター３１２は、ハイレベルに非活性化されたパワーオンリセット信号ＰＯＲを出力する。
【００３８】
図４は、図２に示すパワーオンリセット回路の第２の構成例を示す回路図である。図４に示すパワーオンリセット回路３１は、図３に示す構成に、遅延回路３１３と、ＡＮＤ回路３１４とを追加したものである。遅延回路３１３は、インバーター３１２の出力端子から供給される第１のリセット信号（パワーオンリセット信号）ＰＯＲを遅延して出力する。ＡＮＤ回路３１４は、パワーオンリセット信号ＰＯＲと遅延回路３１３の出力信号との論理積を求め、論理積を表す第２のリセット信号（ホールド信号）ＨＬＤを出力する。
【００３９】
それにより、パワーオンリセット回路３１は、電源電圧の立ち上がりを検出して、第１の期間においてパワーオンリセット信号ＰＯＲをローレベルに活性化し、第１の期間の経過後にパワーオンリセット信号ＰＯＲをハイレベルに非活性化する。また、パワーオンリセット回路３１は、第１の期間よりも長い第２の期間においてホールド信号ＨＬＤをローレベルに活性化し、第２の期間の経過後にホールド信号ＨＬＤをハイレベルに非活性化する。
【００４０】
図２に示すリセット信号ＲＳＴとして、パワーオンリセット信号ＰＯＲを用いても良いし、あるいは、ホールド信号ＨＬＤを用いても良い。このように、パワーオンリセット回路３１が複数種類のリセット信号を生成する場合には、それらのリセット信号の内から選択された適切なリセット信号を用いて発振回路３２又は３３の動作期間を設定することができる。
【００４１】
再び図２を参照すると、暗号化回路３７は、疑似乱数列生成器３６によって生成される疑似乱数列を用いて、入力される平文データＤＰＬを暗号化して暗号文データＤＣＩを出力する。例えば、暗号化回路３７は、入力バッファーメモリーと、ラウンド鍵ジェネレーターと、暗号ラウンド回路と、出力バッファーメモリーとを含んでいる。
【００４２】
入力バッファーメモリーは、インターフェース部４０から供給される平文データＤＰＬを格納する。ラウンド鍵ジェネレーターは、疑似乱数列生成器３６によって生成される疑似乱数列を用いて、例えば、１２８ビットのラウンド鍵を生成する。暗号ラウンド回路は、ＡＥＳ（Advanced Encryption Standard）アルゴリズムに従って、ラウンド鍵を用いて平文データＤＰＬを１２８ビット単位で暗号化し、暗号文データＤＣＩを出力する。出力バッファーメモリーは、暗号ラウンド回路から出力される暗号文データＤＣＩを格納してインターフェース部４０に供給する。
【００４３】
復号回路３８は、疑似乱数列生成器３６によって生成される疑似乱数列を用いて、入力される暗号文データＤＣＩを復号して平文データＤＰＬを出力する。例えば、復号回路３８は、入力バッファーメモリーと、ラウンド鍵ジェネレーターと、復号ラウンド回路と、出力バッファーメモリーとを含んでいる。
【００４４】
入力バッファーメモリーは、インターフェース部４０から供給される暗号文データＤＣＩを格納する。ラウンド鍵ジェネレーターは、疑似乱数列生成器３６によって生成される疑似乱数列を用いて、例えば、１２８ビットのラウンド鍵を生成する。復号ラウンド回路は、ＡＥＳアルゴリズムに従って、ラウンド鍵を用いて暗号文データＤＣＩを１２８ビット単位で復号し、平文データＤＰＬを出力する。出力バッファーメモリーは、復号ラウンド回路から出力される平文データＤＰＬを格納してインターフェース部４０に供給する。
【００４５】
制御部３９は、インターフェース部４０を介して外部回路との間で各種の制御信号等を入出力すると共に、半導体集積回路装置３０の各部を制御する。インターフェース部４０は、外部回路から平文データＤＰＬを入力して暗号文データＤＣＩを外部回路に出力したり、外部回路から暗号文データＤＣＩを入力して平文データＤＰＬを外部回路に出力したりする。
【００４６】
このように、半導体集積回路装置３０が、疑似乱数列生成器３６と、暗号化回路３７と、復号回路３８とを内蔵することにより、疑似乱数列を半導体集積回路装置３０の外部に出力することなくデータを暗号化及び復号することができるので、高度なセキュリティが確保される。
【００４７】
次に、本発明の第１の実施形態に係る半導体集積回路装置の動作例について、図１、図２、図４、及び、図５を参照しながら説明する。
図５は、本発明の第１の実施形態に係る半導体集積回路装置の動作例を説明するための波形図である。この例においては、図２に示すリセット信号ＲＳＴとして、図４に示すパワーオンリセット回路３１から出力されるホールド信号ＨＬＤが用いられる。
【００４８】
時刻ｔ０において、図１に示す電源スイッチ２０がオン状態になって、半導体集積回路装置３０に電源が投入される。それにより、半導体集積回路装置３０の第１の電源端子に供給される電源電圧が、低電位側の電源電圧ＶＳＳから高電位側の電源電圧ＶＤＤに向けて上昇する。その際の上昇曲線は、温度、湿度、電池１０の残量及び内部抵抗、キャパシターＣ０の容量、又は、電源投入時における電源スイッチ２０のチャタリング等の複数の外部要因によって変化する。
【００４９】
時刻ｔ１において、図２に示すパワーオンリセット回路３１が、電源電圧の立ち上がりを検出して、パワーオンリセット信号ＰＯＲをローレベルに活性化する。リセット信号ＲＳＴ（ホールド信号ＨＬＤ）も、ローレベルに活性化されている。また、電源電圧の上昇に伴って、発振回路３２が発振動作を開始して、順次変化するバイナリーのデータＤＡＴを出力する。発振回路３３も発振動作を開始して、クロック信号ＣＬＫを出力する。
【００５０】
シフトレジスター３４は、発振回路３２から出力されるデータＤＡＴを、発振回路３３から出力されるクロック信号ＣＬＫに同期して順次保持する。なお、図５にはクロック信号ＣＬＫの３つのパルスのみが示されているが、実際には、時刻ｔ１から時刻ｔ３までの期間において、シフトレジスター３４に含まれているＤフリップフロップの数よりも多いパルスが生成される。
【００５１】
図５に示すように、電源投入からしばらくの間は、半導体集積回路装置３０の第１の電源端子に供給される電源電圧が変化する。この電源電圧は、発振回路３２及び発振回路３３に供給されるので、発振回路３２の発振周波数及び発振回路３３の発振周波数が不安定になっている。従って、シフトレジスター３４に保持されるデータは、予測され難いものとなる。
【００５２】
時刻ｔ２において、パワーオンリセット回路３１が、パワーオンリセット信号ＰＯＲをハイレベルに非活性化する。さらに、時刻ｔ３において、パワーオンリセット回路３１が、リセット信号ＲＳＴ（ホールド信号ＨＬＤ）をハイレベルに非活性化する。それにより、発振回路３２及び３３が発振動作を停止して、シフトレジスター３４が、保持されている所定ビット数のデータを疑似乱数列の初期値（シード）として出力する。また、半導体集積回路装置３０に内蔵された回路によって構成されるシステムが動作を開始する。
【００５３】
本実施形態によれば、電源投入時から電源電圧が立ち上がるまでの発振周波数が不安定な期間を利用して、その期間において発振回路３２から出力されるデータＤＡＴを発振回路３３から出力されるクロック信号ＣＬＫに同期してサンプリングすることにより、疑似乱数列の初期値が生成される。
【００５４】
電源投入時から電源電圧が立ち上がるまでの期間においては、電源電圧の上昇曲線が、複数の外部要因によって変化する。この電源電圧の供給を受ける発振回路３２及び発振回路３３は、電源電圧が上昇する間に発振動作を開始するので、発振動作が電源電圧の上昇曲線の影響を受けて、発振周波数が不安定になる。また、電源電圧が上昇する間において発振周波数が不安定になる特性は、発振回路３２と発振回路３３とで異なる。さらに、パワーオンリセット信号の活性化期間も変化するので、発振回路３２及び発振回路３３の発振動作期間がその影響を受けて変化する。その結果、疑似乱数列の初期値がランダムとなる。
【００５５】
それにより、簡単な回路構成で、複数の要因に基づいてランダム性が決定されるので、予測され難い高品位な疑似乱数列の初期値を生成することができる。また、発振回路３２及び３３は、電源電圧が十分に立ち上がってリセット信号ＲＳＴが非活性化されると発振動作を停止するので、定常状態においては消費電流を低減することができる。
【００５６】
＜第２の実施形態＞
図６は、本発明の第２の実施形態に係る半導体集積回路装置の一部の構成例を示すブロック図である。第２の実施形態においては、図２に示す第１の実施形態における発振回路３３及びシフトレジスター３４の替りに、カウンター４１が用いられる。その他の点に関しては、第２の実施形態は、第１の実施形態と同様である。
【００５７】
図６に示すように、半導体集積回路装置３０ａは、パワーオンリセット回路３１と、発振回路３２と、カウンター４１と、メモリー３５と、疑似乱数列生成器３６と、暗号化回路３７と、復号回路３８と、制御部３９と、インターフェース部４０とを含んでいる。
【００５８】
パワーオンリセット回路３１は、電源電圧の立ち上がりを検出して、リセット信号ＲＳＴを一時的に活性化してから非活性化する。発振回路３２は、電源電圧が立ち上がってリセット信号ＲＳＴが活性化されているときに、発振動作を行うことにより発振信号ＳＩＧを出力し、リセット信号ＲＳＴが非活性化されたときに、発振動作を停止する。
【００５９】
カウンター４１は、発振回路３２から出力される発振信号ＳＩＧに同期してカウント値を生成することにより、リセット信号ＲＳＴが非活性化されたときに所定ビット数のカウント値を疑似乱数列の初期値（シード）として出力する。例えば、疑似乱数列の初期値として８ビットのデータが必要な場合には、８ビットのカウント値を出力する８段のバイナリー・カウンターが用いられる。８段のバイナリー・カウンターは、発振信号ＳＩＧの周波数を１／２８に変換する機能を有しており、カウント値「２５５」の次には、カウント値「０」を出力する。
【００６０】
本実施形態によれば、電源投入時から電源電圧が立ち上がるまでの発振周波数が不安定な期間を利用して、その期間において発振回路３２から出力される発振信号ＳＩＧに同期してカウント値を生成することにより、疑似乱数列の初期値が生成される。それにより、簡単な回路構成で、複数の要因に基づいてランダム性が決定されるので、予測され難い高品位な疑似乱数列の初期値を生成することができる。また、発振回路３２は、電源電圧が十分に立ち上がってリセット信号ＲＳＴが非活性化されると発振動作を停止するので、定常状態においては消費電流を低減することができる。
【００６１】
＜電子機器＞
次に、本発明の一実施形態に係る電子機器について、図７を参照しながら説明する。
図７は、本発明の一実施形態に係る電子機器の構成例を示すブロック図である。図７に示すように、電子機器１００は、本発明に係る半導体集積回路装置１１０と、ＣＰＵ１２０と、操作部１３０と、ＲＯＭ（リードオンリー・メモリー）１４０と、ＲＡＭ（ランダムアクセス・メモリー）１５０と、格納部１６０と、通信部１７０と、表示部１８０と、音声出力部１９０とを含んでも良い。なお、図７に示す構成要素の一部を省略又は変更しても良いし、あるいは、図７に示す構成要素に他の構成要素を付加しても良い。
【００６２】
半導体集積回路装置１１０は、電源投入時から電源電圧が立ち上がるまでの発振周波数が不安定な期間を利用して、発振回路の出力信号に基づいて疑似乱数列の初期値を生成し、疑似乱数列の初期値を不揮発性メモリー等に保存する。その後、半導体集積回路装置１１０は、疑似乱数列の初期値に基づいて生成された疑似乱数列を用いて、ＣＰＵ１２０から入力されるデータを暗号化し、暗号化されたデータをＣＰＵ１２０に出力する。また、半導体集積回路装置１１０は、疑似乱数列の初期値に基づいて生成された疑似乱数列を用いて、ＣＰＵ１２０から入力される暗号化されたデータを復号し、復号されたデータをＣＰＵ１２０に出力する。
【００６３】
ＣＰＵ１２０は、ＲＯＭ１４０等に記憶されているプログラムに従って、半導体集積回路装置１１０から供給されるデータ等を用いて各種の演算処理や制御処理を行う。例えば、ＣＰＵ１２０は、操作部１３０から出力される操作信号に応じて各種のデータ処理を行ったり、外部との間でデータ通信を行うために通信部１７０を制御する。あるいは、ＣＰＵ１２０は、表示部１８０に各種の画像を表示させるための画像信号を生成したり、音声出力部１９０に各種の音声を出力させるための音声信号を生成する。
【００６４】
操作部１３０は、例えば、操作キーやボタンスイッチ等を含む入力装置であり、ユーザーによる操作に応じた操作信号をＣＰＵ１２０に出力する。ＲＯＭ１４０は、ＣＰＵ１２０が各種の演算処理や制御処理を行うためのプログラムやデータ等を記憶している。また、ＲＡＭ１５０は、ＣＰＵ１２０の作業領域として用いられ、ＲＯＭ１４０から読み出されたプログラムやデータ、操作部１３０を用いて入力されたデータ、又は、ＣＰＵ１２０がプログラムに従って実行した演算結果等を一時的に記憶する。格納部１６０は、例えば、不揮発性メモリー又はハードディスク等で構成され、各種のデータを格納する。
【００６５】
通信部１７０は、例えば、アナログ回路及びデジタル回路で構成され、ＣＰＵ１２０と外部装置との間のデータ通信を行う。表示部１８０は、例えば、ＬＣＤ（液晶表示装置）等を含み、ＣＰＵ１２０から供給される表示信号に基づいて各種の情報を表示する。また、音声出力部１９０は、例えば、スピーカー等を含み、ＣＰＵ１２０から供給される音声信号に基づいて音声を出力する。
【００６６】
ＣＰＵ１２０は、操作部１３０を用いて入力されたデータや通信部１７０によって受信されたデータを半導体集積回路装置１１０に供給し、半導体集積回路装置１１０によって暗号化されたデータを格納部１６０に格納する。また、ＣＰＵ１２０は、格納部１６０に格納されている暗号化されたデータを読み出して半導体集積回路装置１１０に供給し、半導体集積回路装置１１０によって復号されたデータを用いて各種の演算処理や制御処理を行う。あるいは、ＣＰＵ１２０は、暗号化されたデータを外部のデータベースサーバーに送信して保管するように通信部１７０を制御しても良い。
【００６７】
電子機器１００としては、例えば、スマートカード、電卓、電子辞書、電子ゲーム機器、携帯電話機等の移動端末、デジタルスチルカメラ、デジタルムービー、テレビ、テレビ電話、防犯用テレビモニター、ヘッドマウント・ディスプレイ、パーソナルコンピューター、プリンター、ネットワーク機器、カーナビゲーション装置、測定機器、及び、医療機器（例えば、電子体温計、血圧計、血糖計、心電図計測装置、超音波診断装置、及び、電子内視鏡）等が該当する。
【００６８】
本実施形態によれば、電子機器１００においてデータを暗号化又は復号するために用いられる疑似乱数列の初期値が複数の要因に基づくランダム性を有するので、高度なセキュリティを有する電子機器１００を提供することができる。
本発明は、以上説明した実施形態に限定されるものではなく、当該技術分野において通常の知識を有する者によって、本発明の技術的思想内で多くの変形が可能である。
【符号の説明】
【００６９】
１０…電池、２０…電源スイッチ、３０、３０ａ…半導体集積回路装置、３１…パワーオンリセット回路、３１１、３１２…インバーター、３１３…遅延回路、３１４…ＡＮＤ回路、３２…発振回路、３２１、３２２…インバーター、３２３…ラッチ回路、３３…発振回路、３３１…ＮＯＲ回路、３３２…インバーター、３４…シフトレジスター、３５…メモリー、３６…疑似乱数列生成器、３７…暗号化回路、３８…復号回路、３９…制御部、４０…インターフェース部、４１…カウンター、１００…電子機器、１１０…半導体集積回路装置、１２０…ＣＰＵ、１３０…操作部、１４０…ＲＯＭ、１５０…ＲＡＭ、１６０…格納部、１７０…通信部、１８０…表示部、１９０…音声出力部、Ｃ０、Ｃ１…キャパシター、Ｒ１…抵抗
【図１】
2016206917.tif 000003
【図２】
2016206917.tif 000004
【図３】
2016206917.tif 000005
【図４】
2016206917.tif 000006
【図５】
2016206917.tif 000007
【図６】
2016206917.tif 000008
【図７】
2016206917.tif 000009