JP2016206917A - 半導体集積回路装置及びそれを用いた電子機器 - Google Patents

半導体集積回路装置及びそれを用いた電子機器 Download PDF

Info

Publication number
JP2016206917A
JP2016206917A JP2015087292A JP2015087292A JP2016206917A JP 2016206917 A JP2016206917 A JP 2016206917A JP 2015087292 A JP2015087292 A JP 2015087292A JP 2015087292 A JP2015087292 A JP 2015087292A JP 2016206917 A JP2016206917 A JP 2016206917A
Authority
JP
Japan
Prior art keywords
oscillation
circuit
random number
reset signal
number sequence
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.)
Pending
Application number
JP2015087292A
Other languages
English (en)
Inventor
秋山 千里
Chisato Akiyama
千里 秋山
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2015087292A priority Critical patent/JP2016206917A/ja
Publication of JP2016206917A publication Critical patent/JP2016206917A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】簡単な回路構成で、複数の要因に基づいてランダム性が決定される高品位な疑似乱数列の初期値を生成する半導体集積回路装置を提供する。【解決手段】この半導体集積回路装置は、電源電圧の立ち上がりを検出して、リセット信号を一時的に活性化してから非活性化するパワーオンリセット回路と、発振動作を行うことにより順次変化するデータを出力し、リセット信号が非活性化されたときに発振動作を停止する第1の発振回路と、第1の発振回路の発振周波数よりも低い発振周波数で発振動作を行うことによりクロック信号を出力し、リセット信号が非活性化されたときに発振動作を停止する第2の発振回路と、第1の発振回路から出力されるデータをクロック信号に同期して順次保持することにより、リセット信号が非活性化されたときに所定ビット数のデータを疑似乱数列の初期値として出力するシフトレジスターとを含む。【選択図】図2

Description

本発明は、暗号技術等において用いられる疑似乱数列の初期値(シード)を生成する機能を有する半導体集積回路装置に関する。さらに、本発明は、そのような半導体集積回路装置を用いた電子機器等に関する。
例えば、機密情報を保管する際に、情報のセキュリティを確保するために、疑似乱数列を用いて情報を暗号化することが行われている。疑似乱数列は、初期値(シード)に基づいて確定的な計算によって生成されるので、初期値が判明すれば、疑似乱数が第三者に予測されてしまうおそれがある。従って、高度なセキュリティを確保するためには、疑似乱数列の初期値を第三者にとって予測困難とすることが必要である。
関連する技術として、特許文献1には、デジタル論理ゲート回路のみで、ランダム性の高い乱数列を高スループットで発生させる乱数生成回路が開示されている。この乱数生成回路は、奇数段のインバーターからなるリングオシレーターの中間ノード出力をクロックでラッチし、乱数値として出力する乱数生成回路であって、奇数段のインバーターをカスケードに接続した遅延生成部Aと、偶数段のインバーターをカスケードに接続し、その初段のインバーターに遅延生成部Aの最終段のインバーターの出力が接続される遅延生成部Bと、遅延生成部Aの最終段のインバーターの出力と遅延生成部Bの最終段のインバーターの出力とを切り替えて遅延生成部Aの初段のインバーターに接続するセレクターと、短周期のリングオシレーターを形成する第1の動作モード又は長周期のリングオシレーターを形成する第2の動作モードを選択する制御信号をセレクターに出力する制御部とを備え、第1の動作モードと第2の動作モードとを交互に切り替えて発振動作を継続しながら、第2の動作モードのタイミングでリングオシレーターの中間ノード出力をラッチし、乱数値として出力する。
特開2010−117846号公報(段落0014−0015、図1)
特許文献1の乱数生成回路は、外部からクロック信号が供給されて動作し、制御部が、リングオシレーターにおけるインバーターの段数をクロック信号の周期内で変更する。即ち、初期状態においては、少ない段数のインバーターによって発振動作が行われて乱数列のランダム性が比較的高くなり、そのままインバーターの段数の多い動作モードに移行することにより、乱数列におけるハイレベルとローレベルとの偏りが少なくなる。
しかしながら、特許文献1において、乱数列のランダム性は、リングオシレーターの発振周期のジッターのみによって決定されるので、ジッターがあまり大きくない場合には、第三者によって乱数列が予測されてしまうおそれがある。また、乱数生成回路の回路構成が複雑になると共に、消費電流が増加してしまう。
そこで、本発明の第1の目的は、簡単な回路構成で、複数の要因に基づいてランダム性が決定されることにより、予測され難い高品位な疑似乱数列の初期値を生成することができる半導体集積回路装置を提供することである。また、本発明の第2の目的は、そのような半導体集積回路装置を用いた電子機器等を提供することである。
以上の課題の少なくとも一部を解決するため、本発明の第1の観点に係る半導体集積回路装置は、電源電圧の立ち上がりを検出して、リセット信号を一時的に活性化してから非活性化するパワーオンリセット回路と、発振動作を行うことにより順次変化するバイナリーのデータを出力し、リセット信号が非活性化されたときに発振動作を停止する第1の発振回路と、第1の発振回路の発振周波数よりも低い発振周波数で発振動作を行うことによりクロック信号を出力し、リセット信号が非活性化されたときに発振動作を停止する第2の発振回路と、第1の発振回路から出力されるデータをクロック信号に同期して順次保持することにより、リセット信号が非活性化されたときに所定ビット数のデータを疑似乱数列の初期値として出力するシフトレジスターとを備える。
本発明の第1の観点によれば、電源投入時から電源電圧が立ち上がるまでの発振周波数が不安定な期間を利用して、その期間において第1の発振回路から出力されるデータを第2の発振回路から出力されるクロック信号に同期してサンプリングすることにより、疑似乱数列の初期値が生成される。それにより、簡単な回路構成で、複数の要因に基づいてランダム性が決定されるので、予測され難い高品位な疑似乱数列の初期値を生成することができる。また、第1及び第2の発振回路は、電源電圧が十分に立ち上がってリセット信号が非活性化されると発振動作を停止するので、定常状態においては消費電流を低減することができる。
また、本発明の第2の観点に係る半導体集積回路装置は、電源電圧の立ち上がりを検出して、リセット信号を一時的に活性化してから非活性化するパワーオンリセット回路と、発振動作を行うことにより発振信号を出力し、リセット信号が非活性化されたときに発振動作を停止する発振回路と、発振回路から出力される発振信号に同期してカウント値を生成することにより、リセット信号が非活性化されたときに所定ビット数のカウント値を疑似乱数列の初期値として出力するカウンターとを備える。
本発明の第2の観点によれば、電源投入時から電源電圧が立ち上がるまでの発振周波数が不安定な期間を利用して、その期間において発振回路から出力される発振信号に同期してカウント値を生成することにより、疑似乱数列の初期値が生成される。それにより、簡単な回路構成で、複数の要因に基づいてランダム性が決定されるので、予測され難い高品位な疑似乱数列の初期値を生成することができる。また、発振回路は、電源電圧が十分に立ち上がってリセット信号が非活性化されると発振動作を停止するので、定常状態においては消費電流を低減することができる。
以上において、第1の発振回路、第2の発振回路、又は、発振回路が、電源電圧の立ち上がりに応じて発振動作を開始するリングオシレーターを含むようにしても良い。リングオシレーターの発振周波数は電源電圧に大きく依存し、発振周期のジッターも存在するので、疑似乱数列の初期値のランダム性を増加させることができる。
また、パワーオンリセット回路が、電源電圧の立ち上がりを検出して、第1の期間において第1のリセット信号を活性化すると共に、第1の期間よりも長い第2の期間において第2のリセット信号を活性化し、第1の発振回路、第2の発振回路、又は、発振回路が、第1のリセット信号が非活性化されたとき、又は、第2のリセット信号が非活性化されたときに発振動作を停止するようにしても良い。このように、パワーオンリセット回路が複数種類のリセット信号を生成する場合には、それらのリセット信号の内から選択された適切なリセット信号を用いて発振回路の動作期間を設定することができる。
本発明の第1の観点又は第2の観点に係る半導体集積回路装置は、疑似乱数列の初期値に基づいて疑似乱数列を生成する疑似乱数列生成器と、疑似乱数列生成器によって生成される疑似乱数列を用いて、入力されるデータを暗号化して暗号化データを出力する暗号化回路と、疑似乱数列生成器によって生成される疑似乱数列を用いて、入力される暗号化データを復号して復号データを出力する復号回路とをさらに備えても良い。それにより、疑似乱数列を半導体集積回路装置の外部に出力することなくデータを暗号化及び復号することができるので、高度なセキュリティが確保される。
本発明の1つの観点に係る電子機器は、上記いずれかの半導体集積回路装置を備える。それにより、電子機器においてデータを暗号化又は復号するために用いられる疑似乱数列の初期値が複数の要因に基づくランダム性を有するので、高度なセキュリティを有する電子機器を提供することができる。
半導体集積回路装置を用いた電子機器の電源系統の例を示す図。 本発明の第1の実施形態に係る半導体集積回路装置の構成例を示す図。 図2に示すパワーオンリセット回路の第1の構成例を示す回路図。 図2に示すパワーオンリセット回路の第2の構成例を示す回路図。 本発明の第1の実施形態に係る半導体集積回路装置の動作例を示す図。 本発明の第2の実施形態に係る半導体集積回路装置の構成例を示す図。 本発明の一実施形態に係る電子機器の構成例を示すブロック図。
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。なお、同一の構成要素には同一の参照符号を付して、重複する説明を省略する。
図1は、本発明の各実施形態に係る半導体集積回路装置を用いた電子機器の電源系統の例を示す図である。図1に示すように、電子機器は、電池10と、電源スイッチ20と、キャパシターC0と、半導体集積回路装置30とを含んでいる。
電源スイッチ20がオン状態のときに、電池10からキャパシターC0及び半導体集積回路装置30に電源電圧が供給される。このとき、半導体集積回路装置30の第1の電源端子には、高電位側の電源電圧VDDが供給され、半導体集積回路装置30の第2の電源端子には、低電位側の電源電圧VSSが供給される。
<第1の実施形態>
図2は、本発明の第1の実施形態に係る半導体集積回路装置の一部の構成例を示すブロック図である。図2に示すように、半導体集積回路装置30は、パワーオンリセット回路31と、発振回路32及び33と、シフトレジスター34と、メモリー35と、疑似乱数列生成器36と、暗号化回路37と、復号回路38と、制御部39と、インターフェース部40とを含んでいる。
半導体集積回路装置30に供給される電源電圧が立ち上がる際には、順序回路等の誤動作を防止するために、半導体集積回路装置30に内蔵された所定の回路をリセットすることが行われる。そのために、パワーオンリセット回路31が設けられている。パワーオンリセット回路31は、電源電圧の立ち上がりを検出して、リセット信号RSTを一時的に活性化してから非活性化する。
発振回路32は、電源電圧が立ち上がってリセット信号RSTが活性化されているときに、発振動作を行うことにより順次変化するバイナリーのデータDATを出力し、リセット信号RSTが非活性化されたときに、発振動作を停止する。また、発振回路33は、電源電圧が立ち上がってリセット信号RSTが活性化されているときに、発振回路32の発振周波数よりも低い発振周波数で発振動作を行うことによりクロック信号CLKを出力し、リセット信号RSTが非活性化されたときに、発振動作を停止する。
発振回路32及び33としては、水晶振動子、セラミック振動子、又は、SAW(Surface Acoustic Wave:表面弾性波)共振子等の振動子を用いて発振動作を行う発振回路を用いても良いが、以下においては、電源電圧の立ち上がりに応じて発振動作を開始するリングオシレーターを用いる場合について説明する。リングオシレーターの発振周波数は電源電圧に大きく依存し、発振周期のジッターも存在するので、疑似乱数列の初期値のランダム性を増加させることができる。
発振回路32は、例えば、奇数段のインバーター321と、インバーター322と、ラッチ回路323とを含んでいる。各々のインバーター321又は322は、入力端子に入力される信号を反転して、反転された信号を出力端子から出力する。ラッチ回路323は、通過型ラッチ、データラッチ、又は、ゲーテッドラッチと呼ばれるラッチ回路であり、データ入力端子Dと、イネーブル入力端子Eと、出力端子Qとを有している。ラッチ回路323の出力端子Qとデータ入力端子Dとの間には、奇数段のインバーター321が直列に接続されている。
リセット信号RSTがローレベルに活性化されているときに、インバーター322からハイレベルの信号がラッチ回路323のイネーブル入力端子Eに入力され、ラッチ回路323は、データ入力端子Dに入力されるデータを出力端子Qに直接伝搬させる。ラッチ回路323の出力端子Qから出力されるデータDATは、奇数段のインバーター321を介してラッチ回路323のデータ入力端子Dに帰還される。それにより、発振回路32は発振動作を行い、順次変化するバイナリーのデータDATを出力する。
リセット信号RSTがハイレベルに非活性化されると、インバーター322からローレベルの信号がラッチ回路323のイネーブル入力端子Eに入力され、ラッチ回路323は、データ入力端子Dにそのとき入力されているデータをラッチして出力端子Qから出力する。それにより、発振回路32は発振動作を停止する。
発振回路33は、例えば、NOR回路331と、偶数段のインバーター332とを含んでいる。NOR回路331は、第1の入力端子に入力される信号と第2の入力端子に入力される信号との論理和の反転を求めて、論理和の反転を表す信号を出力端子から出力する。NOR回路331の出力端子と第2の入力端子との間には、偶数段のインバーター332が直列に接続されている。各々のインバーター332は、入力端子に入力される信号を反転して、反転された信号を出力端子から出力する。
リセット信号RSTがローレベルに活性化されているときに、ローレベルのリセット信号RSTがNOR回路331の第1の入力端子に入力され、NOR回路331は、第2の入力端子に入力される信号を反転して、反転された信号を出力端子から出力する。NOR回路331の出力端子から出力される信号は、偶数段のインバーター332を介してNOR回路331の第2の入力端子に帰還される。それにより、発振回路33は発振動作を行い、クロック信号CLKを出力する。ここで、発振回路33における反転段数を発振回路32における反転段数よりも多くすることにより、発振回路33の発振周波数を発振回路32の発振周波数よりも低くすることができる。
リセット信号RSTがハイレベルに非活性化されると、ハイレベルのリセット信号RSTがNOR回路331の第1の入力端子に入力され、NOR回路331は、ローレベルの信号を出力端子から出力する。それにより、発振回路33は発振動作を停止する。なお、リセット信号RSTがハイアクティブである場合には、NOR回路の替りにNAND回路が用いられる。
シフトレジスター34は、発振回路32から出力されるデータDATを、発振回路33から出力されるクロック信号CLKに同期して順次保持することにより、リセット信号RSTが非活性化されたときに所定ビット数のデータを疑似乱数列の初期値(シード)として出力する。例えば、疑似乱数列の初期値として8ビットのデータが必要な場合には、8個のDフリップフロップを含むシフトレジスターが用いられる。
リセット信号RSTが非活性化されると、メモリー35は、制御部39の制御の下で、シフトレジスター34から出力される疑似乱数列の初期値を格納する。なお、メモリー35として、不揮発性メモリーを用いても良い。また、疑似乱数列生成器36は、制御部39の制御の下で、メモリー35に格納されている疑似乱数列の初期値に基づいて疑似乱数列を生成する。
例えば、疑似乱数列生成器36は、線形帰還シフトレジスターで構成される。あるいは、疑似乱数列生成器36は、組み合わせ回路又は順序回路を含む論理回路で構成され、平方採中法、線形合同法、メルセンヌ・ツイスター法、又は、カオス乱数法等の既知の方式に従って疑似乱数列を生成する。
その場合に、疑似乱数列を生成する方式及び疑似乱数列の初期値が既知であれば、疑似乱数列を予測することが可能である。従って、高度なセキュリティを確保するためには、疑似乱数列の初期値を第三者にとって予測困難とすることが必要である。そこで、本実施形態においては、パワーオンリセット回路31から出力されるリセット信号RSTを利用して、発振回路32及び33、及び、シフトレジスター34が、予測され難い高品位な疑似乱数列の初期値を生成する。
図3は、図2に示すパワーオンリセット回路の第1の構成例を示す回路図である。図3に示すパワーオンリセット回路31は、抵抗R1と、キャパシターC1と、インバーター311及び312とを含んでいる。抵抗R1及びキャパシターC1は、電源電圧VDDの配線と電源電圧VSSの配線との間に直列に接続されている。
抵抗R1とキャパシターC1との接続点には、インバーター311の入力端子が接続されており、インバーター311の出力端子は、インバーター312の入力端子に接続されている。インバーター312は、出力端子からリセット信号(パワーオンリセット信号)PORを出力する。パワーオンリセット信号PORは、図2に示すリセット信号RSTとして用いられる。
電源投入によってパワーオンリセット回路31に電源電圧が供給されると、抵抗R1を介してキャパシターC1が充電されることにより、抵抗R1とキャパシターC1との接続点の電位が徐々に上昇する。キャパシターC1の充電時間は、抵抗R1の抵抗値とキャパシターC1の容量値との積(時定数)によって決定される。
電源投入の直後においては、抵抗R1とキャパシターC1との接続点の電位がインバーター311のしきい電圧よりも低い。従って、インバーター311は、ハイレベルの信号を出力し、インバーター312は、ローレベルに活性化されたパワーオンリセット信号PORを出力する。
電源投入から所定の期間が経過すると、キャパシターC1の充電が進み、抵抗R1とキャパシターC1との接続点の電位がインバーターのしきい電圧よりも高くなる。従って、インバーター311は、ローレベルの信号を出力し、インバーター312は、ハイレベルに非活性化されたパワーオンリセット信号PORを出力する。
図4は、図2に示すパワーオンリセット回路の第2の構成例を示す回路図である。図4に示すパワーオンリセット回路31は、図3に示す構成に、遅延回路313と、AND回路314とを追加したものである。遅延回路313は、インバーター312の出力端子から供給される第1のリセット信号(パワーオンリセット信号)PORを遅延して出力する。AND回路314は、パワーオンリセット信号PORと遅延回路313の出力信号との論理積を求め、論理積を表す第2のリセット信号(ホールド信号)HLDを出力する。
それにより、パワーオンリセット回路31は、電源電圧の立ち上がりを検出して、第1の期間においてパワーオンリセット信号PORをローレベルに活性化し、第1の期間の経過後にパワーオンリセット信号PORをハイレベルに非活性化する。また、パワーオンリセット回路31は、第1の期間よりも長い第2の期間においてホールド信号HLDをローレベルに活性化し、第2の期間の経過後にホールド信号HLDをハイレベルに非活性化する。
図2に示すリセット信号RSTとして、パワーオンリセット信号PORを用いても良いし、あるいは、ホールド信号HLDを用いても良い。このように、パワーオンリセット回路31が複数種類のリセット信号を生成する場合には、それらのリセット信号の内から選択された適切なリセット信号を用いて発振回路32又は33の動作期間を設定することができる。
再び図2を参照すると、暗号化回路37は、疑似乱数列生成器36によって生成される疑似乱数列を用いて、入力される平文データDPLを暗号化して暗号文データDCIを出力する。例えば、暗号化回路37は、入力バッファーメモリーと、ラウンド鍵ジェネレーターと、暗号ラウンド回路と、出力バッファーメモリーとを含んでいる。
入力バッファーメモリーは、インターフェース部40から供給される平文データDPLを格納する。ラウンド鍵ジェネレーターは、疑似乱数列生成器36によって生成される疑似乱数列を用いて、例えば、128ビットのラウンド鍵を生成する。暗号ラウンド回路は、AES(Advanced Encryption Standard)アルゴリズムに従って、ラウンド鍵を用いて平文データDPLを128ビット単位で暗号化し、暗号文データDCIを出力する。出力バッファーメモリーは、暗号ラウンド回路から出力される暗号文データDCIを格納してインターフェース部40に供給する。
復号回路38は、疑似乱数列生成器36によって生成される疑似乱数列を用いて、入力される暗号文データDCIを復号して平文データDPLを出力する。例えば、復号回路38は、入力バッファーメモリーと、ラウンド鍵ジェネレーターと、復号ラウンド回路と、出力バッファーメモリーとを含んでいる。
入力バッファーメモリーは、インターフェース部40から供給される暗号文データDCIを格納する。ラウンド鍵ジェネレーターは、疑似乱数列生成器36によって生成される疑似乱数列を用いて、例えば、128ビットのラウンド鍵を生成する。復号ラウンド回路は、AESアルゴリズムに従って、ラウンド鍵を用いて暗号文データDCIを128ビット単位で復号し、平文データDPLを出力する。出力バッファーメモリーは、復号ラウンド回路から出力される平文データDPLを格納してインターフェース部40に供給する。
制御部39は、インターフェース部40を介して外部回路との間で各種の制御信号等を入出力すると共に、半導体集積回路装置30の各部を制御する。インターフェース部40は、外部回路から平文データDPLを入力して暗号文データDCIを外部回路に出力したり、外部回路から暗号文データDCIを入力して平文データDPLを外部回路に出力したりする。
このように、半導体集積回路装置30が、疑似乱数列生成器36と、暗号化回路37と、復号回路38とを内蔵することにより、疑似乱数列を半導体集積回路装置30の外部に出力することなくデータを暗号化及び復号することができるので、高度なセキュリティが確保される。
次に、本発明の第1の実施形態に係る半導体集積回路装置の動作例について、図1、図2、図4、及び、図5を参照しながら説明する。
図5は、本発明の第1の実施形態に係る半導体集積回路装置の動作例を説明するための波形図である。この例においては、図2に示すリセット信号RSTとして、図4に示すパワーオンリセット回路31から出力されるホールド信号HLDが用いられる。
時刻t0において、図1に示す電源スイッチ20がオン状態になって、半導体集積回路装置30に電源が投入される。それにより、半導体集積回路装置30の第1の電源端子に供給される電源電圧が、低電位側の電源電圧VSSから高電位側の電源電圧VDDに向けて上昇する。その際の上昇曲線は、温度、湿度、電池10の残量及び内部抵抗、キャパシターC0の容量、又は、電源投入時における電源スイッチ20のチャタリング等の複数の外部要因によって変化する。
時刻t1において、図2に示すパワーオンリセット回路31が、電源電圧の立ち上がりを検出して、パワーオンリセット信号PORをローレベルに活性化する。リセット信号RST(ホールド信号HLD)も、ローレベルに活性化されている。また、電源電圧の上昇に伴って、発振回路32が発振動作を開始して、順次変化するバイナリーのデータDATを出力する。発振回路33も発振動作を開始して、クロック信号CLKを出力する。
シフトレジスター34は、発振回路32から出力されるデータDATを、発振回路33から出力されるクロック信号CLKに同期して順次保持する。なお、図5にはクロック信号CLKの3つのパルスのみが示されているが、実際には、時刻t1から時刻t3までの期間において、シフトレジスター34に含まれているDフリップフロップの数よりも多いパルスが生成される。
図5に示すように、電源投入からしばらくの間は、半導体集積回路装置30の第1の電源端子に供給される電源電圧が変化する。この電源電圧は、発振回路32及び発振回路33に供給されるので、発振回路32の発振周波数及び発振回路33の発振周波数が不安定になっている。従って、シフトレジスター34に保持されるデータは、予測され難いものとなる。
時刻t2において、パワーオンリセット回路31が、パワーオンリセット信号PORをハイレベルに非活性化する。さらに、時刻t3において、パワーオンリセット回路31が、リセット信号RST(ホールド信号HLD)をハイレベルに非活性化する。それにより、発振回路32及び33が発振動作を停止して、シフトレジスター34が、保持されている所定ビット数のデータを疑似乱数列の初期値(シード)として出力する。また、半導体集積回路装置30に内蔵された回路によって構成されるシステムが動作を開始する。
本実施形態によれば、電源投入時から電源電圧が立ち上がるまでの発振周波数が不安定な期間を利用して、その期間において発振回路32から出力されるデータDATを発振回路33から出力されるクロック信号CLKに同期してサンプリングすることにより、疑似乱数列の初期値が生成される。
電源投入時から電源電圧が立ち上がるまでの期間においては、電源電圧の上昇曲線が、複数の外部要因によって変化する。この電源電圧の供給を受ける発振回路32及び発振回路33は、電源電圧が上昇する間に発振動作を開始するので、発振動作が電源電圧の上昇曲線の影響を受けて、発振周波数が不安定になる。また、電源電圧が上昇する間において発振周波数が不安定になる特性は、発振回路32と発振回路33とで異なる。さらに、パワーオンリセット信号の活性化期間も変化するので、発振回路32及び発振回路33の発振動作期間がその影響を受けて変化する。その結果、疑似乱数列の初期値がランダムとなる。
それにより、簡単な回路構成で、複数の要因に基づいてランダム性が決定されるので、予測され難い高品位な疑似乱数列の初期値を生成することができる。また、発振回路32及び33は、電源電圧が十分に立ち上がってリセット信号RSTが非活性化されると発振動作を停止するので、定常状態においては消費電流を低減することができる。
<第2の実施形態>
図6は、本発明の第2の実施形態に係る半導体集積回路装置の一部の構成例を示すブロック図である。第2の実施形態においては、図2に示す第1の実施形態における発振回路33及びシフトレジスター34の替りに、カウンター41が用いられる。その他の点に関しては、第2の実施形態は、第1の実施形態と同様である。
図6に示すように、半導体集積回路装置30aは、パワーオンリセット回路31と、発振回路32と、カウンター41と、メモリー35と、疑似乱数列生成器36と、暗号化回路37と、復号回路38と、制御部39と、インターフェース部40とを含んでいる。
パワーオンリセット回路31は、電源電圧の立ち上がりを検出して、リセット信号RSTを一時的に活性化してから非活性化する。発振回路32は、電源電圧が立ち上がってリセット信号RSTが活性化されているときに、発振動作を行うことにより発振信号SIGを出力し、リセット信号RSTが非活性化されたときに、発振動作を停止する。
カウンター41は、発振回路32から出力される発振信号SIGに同期してカウント値を生成することにより、リセット信号RSTが非活性化されたときに所定ビット数のカウント値を疑似乱数列の初期値(シード)として出力する。例えば、疑似乱数列の初期値として8ビットのデータが必要な場合には、8ビットのカウント値を出力する8段のバイナリー・カウンターが用いられる。8段のバイナリー・カウンターは、発振信号SIGの周波数を1/2に変換する機能を有しており、カウント値「255」の次には、カウント値「0」を出力する。
本実施形態によれば、電源投入時から電源電圧が立ち上がるまでの発振周波数が不安定な期間を利用して、その期間において発振回路32から出力される発振信号SIGに同期してカウント値を生成することにより、疑似乱数列の初期値が生成される。それにより、簡単な回路構成で、複数の要因に基づいてランダム性が決定されるので、予測され難い高品位な疑似乱数列の初期値を生成することができる。また、発振回路32は、電源電圧が十分に立ち上がってリセット信号RSTが非活性化されると発振動作を停止するので、定常状態においては消費電流を低減することができる。
<電子機器>
次に、本発明の一実施形態に係る電子機器について、図7を参照しながら説明する。
図7は、本発明の一実施形態に係る電子機器の構成例を示すブロック図である。図7に示すように、電子機器100は、本発明に係る半導体集積回路装置110と、CPU120と、操作部130と、ROM(リードオンリー・メモリー)140と、RAM(ランダムアクセス・メモリー)150と、格納部160と、通信部170と、表示部180と、音声出力部190とを含んでも良い。なお、図7に示す構成要素の一部を省略又は変更しても良いし、あるいは、図7に示す構成要素に他の構成要素を付加しても良い。
半導体集積回路装置110は、電源投入時から電源電圧が立ち上がるまでの発振周波数が不安定な期間を利用して、発振回路の出力信号に基づいて疑似乱数列の初期値を生成し、疑似乱数列の初期値を不揮発性メモリー等に保存する。その後、半導体集積回路装置110は、疑似乱数列の初期値に基づいて生成された疑似乱数列を用いて、CPU120から入力されるデータを暗号化し、暗号化されたデータをCPU120に出力する。また、半導体集積回路装置110は、疑似乱数列の初期値に基づいて生成された疑似乱数列を用いて、CPU120から入力される暗号化されたデータを復号し、復号されたデータをCPU120に出力する。
CPU120は、ROM140等に記憶されているプログラムに従って、半導体集積回路装置110から供給されるデータ等を用いて各種の演算処理や制御処理を行う。例えば、CPU120は、操作部130から出力される操作信号に応じて各種のデータ処理を行ったり、外部との間でデータ通信を行うために通信部170を制御する。あるいは、CPU120は、表示部180に各種の画像を表示させるための画像信号を生成したり、音声出力部190に各種の音声を出力させるための音声信号を生成する。
操作部130は、例えば、操作キーやボタンスイッチ等を含む入力装置であり、ユーザーによる操作に応じた操作信号をCPU120に出力する。ROM140は、CPU120が各種の演算処理や制御処理を行うためのプログラムやデータ等を記憶している。また、RAM150は、CPU120の作業領域として用いられ、ROM140から読み出されたプログラムやデータ、操作部130を用いて入力されたデータ、又は、CPU120がプログラムに従って実行した演算結果等を一時的に記憶する。格納部160は、例えば、不揮発性メモリー又はハードディスク等で構成され、各種のデータを格納する。
通信部170は、例えば、アナログ回路及びデジタル回路で構成され、CPU120と外部装置との間のデータ通信を行う。表示部180は、例えば、LCD(液晶表示装置)等を含み、CPU120から供給される表示信号に基づいて各種の情報を表示する。また、音声出力部190は、例えば、スピーカー等を含み、CPU120から供給される音声信号に基づいて音声を出力する。
CPU120は、操作部130を用いて入力されたデータや通信部170によって受信されたデータを半導体集積回路装置110に供給し、半導体集積回路装置110によって暗号化されたデータを格納部160に格納する。また、CPU120は、格納部160に格納されている暗号化されたデータを読み出して半導体集積回路装置110に供給し、半導体集積回路装置110によって復号されたデータを用いて各種の演算処理や制御処理を行う。あるいは、CPU120は、暗号化されたデータを外部のデータベースサーバーに送信して保管するように通信部170を制御しても良い。
電子機器100としては、例えば、スマートカード、電卓、電子辞書、電子ゲーム機器、携帯電話機等の移動端末、デジタルスチルカメラ、デジタルムービー、テレビ、テレビ電話、防犯用テレビモニター、ヘッドマウント・ディスプレイ、パーソナルコンピューター、プリンター、ネットワーク機器、カーナビゲーション装置、測定機器、及び、医療機器(例えば、電子体温計、血圧計、血糖計、心電図計測装置、超音波診断装置、及び、電子内視鏡)等が該当する。
本実施形態によれば、電子機器100においてデータを暗号化又は復号するために用いられる疑似乱数列の初期値が複数の要因に基づくランダム性を有するので、高度なセキュリティを有する電子機器100を提供することができる。
本発明は、以上説明した実施形態に限定されるものではなく、当該技術分野において通常の知識を有する者によって、本発明の技術的思想内で多くの変形が可能である。
10…電池、20…電源スイッチ、30、30a…半導体集積回路装置、31…パワーオンリセット回路、311、312…インバーター、313…遅延回路、314…AND回路、32…発振回路、321、322…インバーター、323…ラッチ回路、33…発振回路、331…NOR回路、332…インバーター、34…シフトレジスター、35…メモリー、36…疑似乱数列生成器、37…暗号化回路、38…復号回路、39…制御部、40…インターフェース部、41…カウンター、100…電子機器、110…半導体集積回路装置、120…CPU、130…操作部、140…ROM、150…RAM、160…格納部、170…通信部、180…表示部、190…音声出力部、C0、C1…キャパシター、R1…抵抗

Claims (6)

  1. 電源電圧の立ち上がりを検出して、リセット信号を一時的に活性化してから非活性化するパワーオンリセット回路と、
    発振動作を行うことにより順次変化するバイナリーのデータを出力し、前記リセット信号が非活性化されたときに発振動作を停止する第1の発振回路と、
    前記第1の発振回路の発振周波数よりも低い発振周波数で発振動作を行うことによりクロック信号を出力し、前記リセット信号が非活性化されたときに発振動作を停止する第2の発振回路と、
    前記第1の発振回路から出力されるデータを前記クロック信号に同期して順次保持することにより、前記リセット信号が非活性化されたときに所定ビット数のデータを疑似乱数列の初期値として出力するシフトレジスターと、
    を備える半導体集積回路装置。
  2. 電源電圧の立ち上がりを検出して、リセット信号を一時的に活性化してから非活性化するパワーオンリセット回路と、
    発振動作を行うことにより発振信号を出力し、前記リセット信号が非活性化されたときに発振動作を停止する発振回路と、
    前記発振回路から出力される発振信号に同期してカウント値を生成することにより、前記リセット信号が非活性化されたときに所定ビット数のカウント値を疑似乱数列の初期値として出力するカウンターと、
    を備える半導体集積回路装置。
  3. 前記第1の発振回路、前記第2の発振回路、又は、前記発振回路が、電源電圧の立ち上がりに応じて発振動作を開始するリングオシレーターを含む、請求項1又は2記載の半導体集積回路装置。
  4. 前記パワーオンリセット回路が、電源電圧の立ち上がりを検出して、第1の期間において第1のリセット信号を活性化すると共に、前記第1の期間よりも長い第2の期間において第2のリセット信号を活性化し、
    前記第1の発振回路、前記第2の発振回路、又は、前記発振回路が、前記第1のリセット信号が非活性化されたとき、又は、前記第2のリセット信号が非活性化されたときに発振動作を停止する、
    請求項1〜3のいずれか1項記載の半導体集積回路装置。
  5. 前記疑似乱数列の初期値に基づいて疑似乱数列を生成する疑似乱数列生成器と、
    前記疑似乱数列生成器によって生成される疑似乱数列を用いて、入力されるデータを暗号化して暗号化データを出力する暗号化回路と、
    前記疑似乱数列生成器によって生成される疑似乱数列を用いて、入力される暗号化データを復号して復号データを出力する復号回路と、
    をさらに備える、請求項1〜4のいずれか1項記載の半導体集積回路装置。
  6. 請求項1〜5のいずれか1項記載の半導体集積回路装置を備える電子機器。
JP2015087292A 2015-04-22 2015-04-22 半導体集積回路装置及びそれを用いた電子機器 Pending JP2016206917A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015087292A JP2016206917A (ja) 2015-04-22 2015-04-22 半導体集積回路装置及びそれを用いた電子機器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015087292A JP2016206917A (ja) 2015-04-22 2015-04-22 半導体集積回路装置及びそれを用いた電子機器

Publications (1)

Publication Number Publication Date
JP2016206917A true JP2016206917A (ja) 2016-12-08

Family

ID=57489941

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015087292A Pending JP2016206917A (ja) 2015-04-22 2015-04-22 半導体集積回路装置及びそれを用いた電子機器

Country Status (1)

Country Link
JP (1) JP2016206917A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101854620B1 (ko) * 2017-03-08 2018-06-15 충북대학교 산학협력단 저전압 파워-온 리셋 회로

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101854620B1 (ko) * 2017-03-08 2018-06-15 충북대학교 산학협력단 저전압 파워-온 리셋 회로

Similar Documents

Publication Publication Date Title
US6954770B1 (en) Random number generator
US7376687B2 (en) Pseudo-random number generator
US11516027B2 (en) Method and apparatus for protecting embedded software
Golic New methods for digital generation and postprocessing of random data
US9640247B2 (en) Methods and apparatuses for generating random numbers based on bit cell settling time
US8410857B2 (en) Apparatus and method for generating a random bit sequence
US9405510B2 (en) Random number generator
KR101987141B1 (ko) 난수 발생기
JP2006139756A (ja) 乱数発生器および乱数を発生する方法
US9015218B2 (en) Random number generator, encryption device, and authentication device
KR20100127789A (ko) 디지털 제어 오실레이터를 기반으로한 디지털 난수 생성기
KR20170019702A (ko) 난수 발생 장치
TW201237744A (en) Apparatus and method for generating a random number
JP2004234153A (ja) シード生成回路、乱数生成回路、半導体集積回路、icカード及び情報端末機器
JP2019121403A (ja) ランダムコード発生装置
Fujieda On the feasibility of TERO-based true random number generator on Xilinx FPGAs
US20090327381A1 (en) True random number generator
US7293054B2 (en) Random number source and associated methods
US20150193206A1 (en) Method for generating an output of a random source of a random generator
Yakut et al. Secure and efficient hybrid random number generator based on sponge constructions for cryptographic applications
TWI579763B (zh) 具有亂數產生模式的儲存電路
TWI801742B (zh) 熵產生器及產生增強熵的方法
JP2016206917A (ja) 半導体集積回路装置及びそれを用いた電子機器
JP5119417B2 (ja) 擬似乱数生成装置
JP5356362B2 (ja) 乱数生成回路