(57)【特許請求の範囲】
【請求項１】
メモリセルアレイ、ロウデコーダ、コラムデコーダ、センスアンプ、及び入出力ドライバを備えたメモリ集積回路であって、
前記メモリセルアレイ内の各メモリセルに対するデータの読み出し又は書き込みを行う２本の相補ビット線と、
乱数データおよびアドレスデータが入力される入力制御線とを備え、
前記乱数データと内部アドレスデータとの排他的論理和の演算結果が、前記アドレスデータとして前記ロウデコーダおよび前記コラムデコーダの各々に入力され、
前記ロウデコーダにおいて、前記乱数データと前記アドレスデータとの排他的論理和の演算結果をワードデコード信号に変換し、
前記コラムデコーダにおいて、前記乱数データと前記アドレスデータとの排他的論理和の演算結果をコラムデコード信号に変換し、
前記メモリセルアレイが、前記ワードデコード信号および前記コラムデコード信号によりアクセスされ、アクセスされた前記メモリセルのデータが、前記２本の相補ビット線を通じて前記センスアンプに伝達され、
前記センスアンプにおいて、前記アクセスされた前記メモリセルのデータと前記乱数データとの排他的論理和を演算し、前記入出力ドライバにおいて、該演算結果を前記メモリセルのデータとして出力するメモリ集積回路。
【請求項２】
前記ロウデコーダ、前記コラムデコーダ、及び前記センスアンプが、ドミノＲＳＬ回路を備えて構成されている請求項１に記載のメモリ集積回路。
【請求項３】
前記ロウデコーダが、第１プリデコーダと、メモリセルのワード線をドライブするワード線ドライバとを備えて構成され、
前記第１プリデコーダが、前記アドレスデータを構成する複数のビットデータの一部を反転させる複数の第１インバータと、複数の第１ドミノＲＳＬゲートとを備え、
前記第１ドミノＲＳＬゲートが、第１〜第８トランジスタ及び第２インバータを備え、
第１及び第５トランジスタがＰＭＯＳトランジスタであり、
第２〜第４及び第６〜第８トランジスタがＮＭＯＳトランジスタであり、
前記第１〜第４トランジスタが、ソース又はドレインが相互に接続されて、順に直列に接続され、
直列に接続された前記第１〜第４トランジスタの一方の端部に位置する前記第１トランジスタのソースに電源電圧が印加され、
直列に接続された前記第１〜第４トランジスタの他方の端部に位置する前記第４トランジスタのソースに接地電圧が印加され、
前記第１トランジスタ及び前記第４トランジスタのゲートにクロックが入力され、
前記第５トランジスタのソースに電源電圧が印加され、
前記第６及び第７トランジスタが並列に接続され、
前記第６及び第７トランジスタの接続ノードの一方に、前記第５トランジスタのドレインが接続され、
前記第６及び第７トランジスタの接続ノードの他方に、前記第８トランジスタのドレインが接続され、
前記第８トランジスタのソースが、前記第３及び第４トランジスタの接続ノードに接続され、
前記第１及び第２トランジスタの接続ノードと前記第５〜第７トランジスタの接続ノードとが接続されて、第１出力ノードを形成し、
前記第１出力ノードが、前記第２インバータを介して前記第５トランジスタのゲートに接続され、
前記第２トランジスタ及び前記第６トランジスタのゲートに、前記アドレスデータを構成する１ビットデータ又は前記第１インバータの出力データが入力され、
前記第３トランジスタ及び前記第７トランジスタのゲートに、前記第２トランジスタ及び前記第６トランジスタのゲートに入力されるデータとは異なる、前記アドレスデータを構成する１ビットデータ又は前記第１インバータの出力データが入力され、
前記第８トランジスタのゲートに、前記乱数データ又は前記乱数データの反転データが入力される
請求項２に記載のメモリ集積回路。
【請求項４】
前記ロウデコーダが、第１プリデコーダと、メモリセルのワード線をドライブするワード線ドライバとを備えて構成され、
前記第１プリデコーダが、前記アドレスデータを構成する複数のビットデータの一部を反転させる複数の第１インバータと、複数の第１ドミノＲＳＬゲートとを備え、
前記第１ドミノＲＳＬゲートが、第１〜第８トランジスタ及び第２インバータを備え、
第１及び第５トランジスタがＮＭＯＳトランジスタであり、
第２〜第４及び第６〜第８トランジスタがＰＭＯＳトランジスタであり、
前記第１〜第４トランジスタが、ソース又はドレインが相互に接続されて、順に直列に接続され、
直列に接続された前記第１〜第４トランジスタの一方の端部に位置する前記第１トランジスタのソースに接地電圧が印加され、
直列に接続された前記第１〜第４トランジスタの他方の端部に位置する前記第４トランジスタのソースに電源電圧が印加され、
前記第１トランジスタ及び前記第４トランジスタのゲートにクロックが入力され、
前記第５トランジスタのソースに接地電圧が印加され、
前記第６及び第７トランジスタが並列に接続され、
前記第６及び第７トランジスタの接続ノードの一方に、前記第５トランジスタのドレインが接続され、
前記第６及び第７トランジスタの接続ノードの他方に、前記第８トランジスタのドレインが接続され、
前記第８トランジスタのソースが、前記第３及び第４トランジスタの接続ノードに接続され、
前記第１及び第２トランジスタの接続ノードと前記第５〜第７トランジスタの接続ノードとが接続されて、第１出力ノードを形成し、
前記第１出力ノードが、前記第２インバータを介して前記第５トランジスタのゲートに接続され、
前記第２トランジスタ及び前記第６トランジスタのゲートに、前記アドレスデータを構成する１ビットデータ又は前記第１インバータの出力データが入力され、
前記第３トランジスタ及び前記第７トランジスタのゲートに、前記第２トランジスタ及び前記第６トランジスタのゲートに入力されるデータとは異なる、前記アドレスデータを構成する１ビットデータ又は前記第１インバータの出力データが入力され、
前記第８トランジスタのゲートに、前記乱数データ又は前記乱数データの反転データが入力される
請求項２に記載のメモリ集積回路。
【請求項５】
前記ワード線ドライバが複数の第２ドミノＲＳＬゲートを備え、
前記第２ドミノＲＳＬゲートが、第９〜第１７トランジスタ及び第３インバータを備え、
第９及び第１４トランジスタがＰＭＯＳトランジスタであり、
第１０〜第１３及び第１５〜第１７トランジスタがＮＭＯＳトランジスタであり、
前記第９〜第１３トランジスタが、ソース又はドレインが相互に接続されて、順に直列に接続され、
直列に接続された前記第９〜第１３トランジスタの一方の端部に位置する前記第９トランジスタのソースに電源電圧が印加され、
直列に接続された前記第９〜第１３トランジスタの他方の端部に位置する前記第１３トランジスタのソースに接地電圧が印加され、
前記第９トランジスタ及び前記第１３トランジスタのゲートにクロックが入力され、
前記第１４〜第１７トランジスタが、ソース又はドレインが相互に接続されて、順に直列に接続され、
直列に接続された前記第１４〜第１７トランジスタの一方の端部に位置する前記第１４トランジスタのソースに電源電圧が印加され、
直列に接続された前記第１４〜第１７トランジスタの他方の端部に位置する前記第１７トランジスタのソースが、前記第１３トランジスタのドレインに接続され、
前記第９及び第１０トランジスタの接続ノードと前記第１４及び第１５トランジスタの接続ノードとが接続されて第２出力ノードを形成し、
前記第２出力ノードが、前記第３インバータを介して前記第１４トランジスタのゲートに接続され、
前記第１０及び第１１トランジスタの各々のゲートに、重複すること無く前記第１ドミノＲＳＬゲートの出力信号が入力され、
前記第１５トランジスタのゲートに、前記第１０トランジスタのゲートに入力される信号の反転信号が入力され、
前記第１６トランジスタのゲートに、前記第１１トランジスタのゲートに入力される信号の反転信号が入力され、
前記第１２及び第１７トランジスタの各々に、重複すること無く前記乱数データ又は前記乱数データの反転データが入力される
請求項３又は４に記載のメモリ集積回路。
【請求項６】
前記ワード線ドライバが複数の第２ドミノＲＳＬゲートを備え、
前記第２ドミノＲＳＬゲートが、第９〜第１７トランジスタ及び第３インバータを備え、
第９及び第１４トランジスタがＮＭＯＳトランジスタであり、
第１０〜第１３及び第１５〜第１７トランジスタがＰＭＯＳトランジスタであり、
前記第９〜第１３トランジスタが、ソース又はドレインが相互に接続されて、順に直列に接続され、
直列に接続された前記第９〜第１３トランジスタの一方の端部に位置する前記第９トランジスタのソースに接地電圧が印加され、
直列に接続された前記第９〜第１３トランジスタの他方の端部に位置する前記第１３トランジスタのソースに電源電圧が印加され、
前記第９トランジスタ及び前記第１３トランジスタのゲートにクロックが入力され、
前記第１４〜第１７トランジスタが、ソース又はドレインが相互に接続されて、順に直列に接続され、
直列に接続された前記第１４〜第１７トランジスタの一方の端部に位置する前記第１４トランジスタのソースに接地電圧が印加され、
直列に接続された前記第１４〜第１７トランジスタの他方の端部に位置する前記第１７トランジスタのソースが、前記第１３トランジスタのドレインに接続され、
前記第９及び第１０トランジスタの接続ノードと前記第１４及び第１５トランジスタの接続ノードとが接続されて第２出力ノードを形成し、
前記第２出力ノードが、前記第３インバータを介して前記第１４トランジスタのゲートに接続され、
前記第１０及び第１１トランジスタの各々のゲートに、重複すること無く前記第１ドミノＲＳＬゲートの出力信号が入力され、
前記第１５トランジスタのゲートに、前記第１０トランジスタのゲートに入力される信号の反転信号が入力され、
前記第１６トランジスタのゲートに、前記第１１トランジスタのゲートに入力される信号の反転信号が入力され、
前記第１２及び第１７トランジスタの各々に、重複すること無く前記乱数データ又は前記乱数データの反転データが入力される
請求項３又は４に記載のメモリ集積回路。
【請求項７】
前記センスアンプが、前記相補ビット線に接続されたビット線プリチャージユニット及びクロスカップルセンスアンプユニットと、ドミノＲＳＬマルチプレクサとを備え、
前記ドミノＲＳＬマルチプレクサが、第１８〜第２４トランジスタ及び第４インバータを備え、
第１８及び第２２トランジスタがＰＭＯＳトランジスタであり、
第１９〜第２１、第２３、及び第２４トランジスタがＮＭＯＳトランジスタであり、
前記第１８〜第２１トランジスタが、ソース又はドレインが相互に接続されて、順に直列に接続され、
直列に接続された前記第１８〜第２１トランジスタの一方の端部に位置する前記第１８トランジスタのソースに電源電圧が印加され、
直列に接続された前記第１８〜第２１トランジスタの他方の端部に位置する前記第２１トランジスタのソースに接地電圧が印加され、
前記第１８トランジスタ及び前記第２１トランジスタのゲートにクロックが入力され、
前記第２２〜第２４トランジスタが、ソース又はドレインが相互に接続されて、順に直列に接続され、
直列に接続された前記第２２〜第２４トランジスタの一方の端部に位置する前記第２２トランジスタのソースに電源電圧が印加され、
直列に接続された前記第２２〜第２４トランジスタの他方の端部に位置する前記第２４トランジスタのソースが、前記第２１トランジスタのドレインに接続され、
前記第１８及び第１９トランジスタの接続ノードと前記第２２及び第２３トランジスタの接続ノードとが接続されて第３出力ノードを形成し、
前記第３出力ノードが、前記第４インバータを介して前記第２２トランジスタのゲートに接続され、
前記第１９及び第２３トランジスタの各々のゲートに、重複すること無く前記相補ビット線からの信号が入力され、
前記第２０及び第２４トランジスタの各々のゲートに、前記乱数データ又は前記乱数データの反転データが入力される
請求項３〜６の何れか１項に記載のメモリ集積回路。
【請求項８】
前記センスアンプが、前記相補ビット線に接続されたビット線プリチャージユニット及びクロスカップルセンスアンプユニットと、ドミノＲＳＬマルチプレクサとを備え、
前記ドミノＲＳＬマルチプレクサが、第１８〜第２４トランジスタ及び第４インバータを備え、
第１８及び第２２トランジスタがＮＭＯＳトランジスタであり、
第１９〜第２１、第２３、及び第２４トランジスタがＰＭＯＳトランジスタであり、
前記第１８〜第２１トランジスタが、ソース又はドレインが相互に接続されて、順に直列に接続され、
直列に接続された前記第１８〜第２１トランジスタの一方の端部に位置する前記第１８トランジスタのソースに接地電圧が印加され、
直列に接続された前記第１８〜第２１トランジスタの他方の端部に位置する前記第２１トランジスタのソースに電源電圧が印加され、
前記第１８トランジスタ及び前記第２１トランジスタのゲートにクロックが入力され、
前記第２２〜第２４トランジスタが、ソース又はドレインが相互に接続されて、順に直列に接続され、
直列に接続された前記第２２〜第２４トランジスタの一方の端部に位置する前記第２２トランジスタのソースに接地電圧が印加され、
直列に接続された前記第２２〜第２４トランジスタの他方の端部に位置する前記第２４トランジスタのソースが、前記第２１トランジスタのドレインに接続され、
前記第１８及び第１９トランジスタの接続ノードと前記第２２及び第２３トランジスタの接続ノードとが接続されて第３出力ノードを形成し、
前記第３出力ノードが、前記第４インバータを介して前記第２２トランジスタのゲートに接続され、
前記第１９及び第２３トランジスタの各々のゲートに、重複すること無く前記相補ビット線からの信号が入力され、
前記第２０及び第２４トランジスタの各々のゲートに、前記乱数データ又は前記乱数データの反転データが入力される
請求項３〜６の何れか１項に記載のメモリ集積回路。
【請求項９】
前記コラムデコーダが、第２プリデコーダと、メモリセルのコラムデコード線をドライブするコラムデコード線ドライバとを備えて構成され、
前記第２プリデコーダが、前記アドレスデータを構成する複数の前記ビットデータのうち前記第１プリデコーダに入力されないビットデータを反転させる第５インバータと、第３ドミノＲＳＬゲートとを備え、
前記第３ドミノＲＳＬゲートが、第２５〜第３２トランジスタ及び第６インバータを備え、
第２５及び第２９トランジスタがＰＭＯＳトランジスタであり、
第２６〜第２８及び第３０〜第３２トランジスタがＮＭＯＳトランジスタであり、
前記第２５〜第３２トランジスタが、ソース又はドレインが相互に接続されて、順に直列に接続され、
直列に接続された前記第２５〜第２８トランジスタの一方の端部に位置する前記第２５トランジスタのソースに電源電圧が印加され、
直列に接続された前記第２５〜第２８トランジスタの他方の端部に位置する前記第２８トランジスタのソースに接地電圧が印加され、
前記第２５トランジスタ及び前記第２８トランジスタのゲートにクロックが入力され、
前記第２９トランジスタのソースに電源電圧が印加され、
前記第３０及び第３１トランジスタが並列に接続され、
前記第３０及び第３１トランジスタの接続ノードの一方に、前記第２９トランジスタのドレインが接続され、
前記第３０及び第３１トランジスタの接続ノードの他方に、前記第３２トランジスタのドレインが接続され、
前記第３２トランジスタのソースが、前記第２７及び第２８トランジスタの接続ノードに接続され、
前記第２５及び第２６トランジスタの接続ノードと前記第２９〜第３１トランジスタの接続ノードとが接続されて、第４出力ノードを形成し、
前記第４出力ノードが、前記第６インバータを介して前記第２９トランジスタのゲートに接続され、
前記第２６トランジスタ及び第３０トランジスタのゲートに、前記第１プリデコーダに入力されない、前記アドレスデータを構成する１ビットデータ又は前記第５インバータの出力データが入力され、
前記第２７トランジスタ及び前記第３１トランジスタのゲートに、前記第２６トランジスタ及び前記第３０トランジスタのゲートに入力されるデータとは異なる、前記第１プリデコーダに入力されない、前記アドレスデータを構成する１ビットデータ又は前記第５インバータの出力データが入力され、
前記第３２トランジスタのゲートに、前記乱数データ又は前記乱数データの反転データが入力される
請求項３〜８の何れか１項に記載のメモリ集積回路。
【請求項１０】
前記コラムデコーダが、第２プリデコーダと、メモリセルのコラムデコード線をドライブするコラムデコード線ドライバとを備えて構成され、
前記第２プリデコーダが、前記アドレスデータを構成する複数の前記ビットデータのうち前記第１プリデコーダに入力されないビットデータを反転させる第５インバータと、第３ドミノＲＳＬゲートとを備え、
前記第３ドミノＲＳＬゲートが、第２５〜第３２トランジスタ及び第６インバータを備え、
第２５及び第２９トランジスタがＮＭＯＳトランジスタであり、
第２６〜第２８及び第３０〜第３２トランジスタがＰＭＯＳトランジスタであり、
前記第２５〜第３２トランジスタが、ソース又はドレインが相互に接続されて、順に直列に接続され、
直列に接続された前記第２５〜第２８トランジスタの一方の端部に位置する前記第２５トランジスタのソースに接地電圧が印加され、
直列に接続された前記第２５〜第２８トランジスタの他方の端部に位置する前記第２８トランジスタのソースに電源電圧が印加され、
前記第２５トランジスタ及び前記第２８トランジスタのゲートにクロックが入力され、
前記第２９トランジスタのソースに接地電圧が印加され、
前記第３０及び第３１トランジスタが並列に接続され、
前記第３０及び第３１トランジスタの接続ノードの一方に、前記第２９トランジスタのドレインが接続され、
前記第３０及び第３１トランジスタの接続ノードの他方に、前記第３２トランジスタのドレインが接続され、
前記第３２トランジスタのソースが、前記第２７及び第２８トランジスタの接続ノードに接続され、
前記第２５及び第２６トランジスタの接続ノードと前記第２９〜第３１トランジスタの接続ノードとが接続されて、第４出力ノードを形成し、
前記第４出力ノードが、前記第６インバータを介して前記第２９トランジスタのゲートに接続され、
前記第２６トランジスタ及び第３０トランジスタのゲートに、前記第１プリデコーダに入力されない、前記アドレスデータを構成する１ビットデータ又は前記第５インバータの出力データが入力され、
前記第２７トランジスタ及び前記第３１トランジスタのゲートに、前記第２６トランジスタ及び前記第３０トランジスタのゲートに入力されるデータとは異なる、前記第１プリデコーダに入力されない、前記アドレスデータを構成する１ビットデータ又は前記第５インバータの出力データが入力され、
前記第３２トランジスタのゲートに、前記乱数データ又は前記乱数データの反転データが入力される
請求項３〜８の何れか１項に記載のメモリ集積回路。
【請求項１１】
前記コラムデコード線ドライバが第４ドミノＲＳＬゲートを備え、
前記第４ドミノＲＳＬゲートが、第３３〜第４１トランジスタ及び第７インバータを備え、
第３３及び第３８トランジスタがＰＭＯＳトランジスタであり、
第３４〜第３７及び第３９〜第４１トランジスタがＮＭＯＳトランジスタであり、
前記第３３〜第３７トランジスタが、ソース又はドレインが相互に接続されて、順に直列に接続され、
直列に接続された前記第３３〜第３７トランジスタの一方の端部に位置する前記第３３トランジスタのソースに電源電圧が印加され、
直列に接続された前記第３３〜第３７トランジスタの他方の端部に位置する前記第３７トランジスタのソースに接地電圧が印加され、
前記第３３トランジスタ及び前記第３７トランジスタのゲートにクロックが入力され、
前記第３８〜第４１トランジスタが、ソース又はドレインが相互に接続されて、順に直列に接続され、
直列に接続された前記第３８〜第４１トランジスタの一方の端部に位置する前記第３８トランジスタのソースに電源電圧が印加され、
直列に接続された前記第３８〜第４１トランジスタの他方の端部に位置する前記第４１トランジスタのソースが、前記第３７トランジスタのドレインに接続され、
前記第３３及び第３４トランジスタの接続ノードと前記第３８及び第３９トランジスタの接続ノードとが接続されて、第５出力ノードを形成し、
前記第５出力ノードが、前記第７インバータを介して前記第３８トランジスタのゲートに接続され、
前記第３４及び第３５トランジスタの各々のゲートに、重複すること無く前記第３ドミノＲＳＬゲートの出力信号が入力され、
前記第３９トランジスタのゲートに、前記第３４トランジスタのゲートに入力される信号の反転信号が入力され、
前記第４０トランジスタのゲートに、前記第３５トランジスタのゲートに入力される信号の反転信号が入力され、
前記第３６及び第４１トランジスタの各々に、重複すること無く前記乱数データ又は前記乱数データの反転データが入力される
請求項９又は１０に記載のメモリ集積回路。
【請求項１２】
前記コラムデコード線ドライバが第４ドミノＲＳＬゲートを備え、
前記第４ドミノＲＳＬゲートが、第３３〜第４１トランジスタ及び第７インバータを備え、
第３３及び第３８トランジスタがＮＭＯＳトランジスタであり、
第３４〜第３７及び第３９〜第４１トランジスタがＰＭＯＳトランジスタであり、
前記第３３〜第３７トランジスタが、ソース又はドレインが相互に接続されて、順に直列に接続され、
直列に接続された前記第３３〜第３７トランジスタの一方の端部に位置する前記第３３トランジスタのソースに接地電圧が印加され、
直列に接続された前記第３３〜第３７トランジスタの他方の端部に位置する前記第３７トランジスタのソースに電源電圧が印加され、
前記第３３トランジスタ及び前記第３７トランジスタのゲートにクロックが入力され、
前記第３８〜第４１トランジスタが、ソース又はドレインが相互に接続されて、順に直列に接続され、
直列に接続された前記第３８〜第４１トランジスタの一方の端部に位置する前記第３８トランジスタのソースに接地電圧が印加され、
直列に接続された前記第３８〜第４１トランジスタの他方の端部に位置する前記第４１トランジスタのソースが、前記第３７トランジスタのドレインに接続され、
前記第３３及び第３４トランジスタの接続ノードと前記第３８及び第３９トランジスタの接続ノードとが接続されて、第５出力ノードを形成し、
前記第５出力ノードが、前記第７インバータを介して前記第３８トランジスタのゲートに接続され、
前記第３４及び第３５トランジスタの各々のゲートに、重複すること無く前記第３ドミノＲＳＬゲートの出力信号が入力され、
前記第３９トランジスタのゲートに、前記第３４トランジスタのゲートに入力される信号の反転信号が入力され、
前記第４０トランジスタのゲートに、前記第３５トランジスタのゲートに入力される信号の反転信号が入力され、
前記第３６及び第４１トランジスタの各々に、重複すること無く前記乱数データ又は前記乱数データの反転データが入力される
請求項９又は１０に記載のメモリ集積回路。
【請求項１３】
請求項１〜１２の何れか１項に記載のメモリ集積回路を備えている暗号回路。
【請求項１４】
請求項１〜１２の何れか１項に記載のメモリ集積回路と、乱数発生回路とを備え、
前記乱数発生回路の出力が、前記メモリ集積回路に入力される前記乱数データであり、
前記乱数発生回路が、
線形帰還形シフトレジスタと、２列に縦列接続されたＮ段のセレクタ回路と、アービター回路と、前記線形帰還形シフトレジスタの出力信号及び前記アービター回路の出力信号を排他的論理和演算して乱数を出力する演算ゲートとを備え、
前記線形帰還形シフトレジスタが、直列に接続されたＮ個のシフトレジスタと複数の排他的論理和演算子とを備え、
前記アービター回路が、
接地電圧と電源電圧との間に直列接続されたクロスカップルセンスアンプ、及び、ソースが相互接続され且つドレインが相互接続された２つのトランジスタで構成されたイネーブルゲートと、
一方の入力端に第１入力信号が入力され、他方の入力端が前記クロスカップルセンスアンプの第１センシングノードに接続され、出力端が、前記イネーブルゲートを構成する一方のトランジスタのゲートに接続された第１ＮＡＮＤゲートと、
一方の入力端に第２入力信号が入力され、他方の入力端が前記クロスカップルセンスアンプの第２センシングノードに接続され、出力端が、前記イネーブルゲートを構成する他方のトランジスタのゲートに接続された第２ＮＡＮＤゲートとを備え、
前記シフトレジスタの出力が、選択信号であるチャレンジとして前記セレクタ回路に入力され、
最終段の２つのセレクタ回路の出力信号が前記第１及び第２入力信号として前記アービター回路に入力され、
前記第１および第２ＮＡＮＤゲートの出力の一方が、前記アービター回路から前記乱数として出力される暗号回路。
【請求項１５】
ＤＥＳ暗号又はＡＥＳ暗号用の暗号回路であって、
Ｓ−Ｂｏｘが前記メモリ集積回路で構成されている請求項１３又は１４に記載の暗号回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号アルゴリズムを実現する半導体デバイスに関し、特に、半導体デバイス内で処理される秘密情報（主として暗号鍵）を、半導体デバイスの消費電力、および消費電力に依存する輻射電磁波などのサイドチャネル情報を用いて、窃取する攻撃に対しての対抗措置を備えた耐タンパ性メモリ集積回路およびそれを利用した暗号回路に関する。
【背景技術】
【０００２】
近年、ＩＣカードのように、ＬＳＩを利用して金銭情報や個人情報を保管するシステムが社会基盤として広く普及しており、このようなセキュリティＬＳＩの信頼性・安全性保証の重要性はきわめて高い。セキュリティＬＳＩにおいては、内部に搭載する暗号回路を用いて機密情報を守秘しており、暗号回路鍵の情報を外部に漏えいさせないことが必須となる。３ＤＥＳ（Triple Data Encryption Standard）やＡＥＳ（Advanced Encryption Standard）といった現代暗号では、入出力となっている平文―暗号文のペアを入手し、最高速のコンピュータを駆使しても、現実的な時間内では暗号鍵を特定できないような暗号アルゴリズムが採用されており、安全性が確認されている。【０００３】
これ以外の暗号鍵の窃取方法として、暗号アルゴリズム実行時の半導体デバイスの消費電力、および消費電力に依存する輻射電磁波などのサイドチャネル情報を用いて、暗号鍵を特定する手法が、脅威とされている。このようなサイドチャネル攻撃の中で、差分電力攻撃（ＤＰＡ：Differential Power Analysis）は１９９９年にP. Kocherによって発表された攻撃手法であり、下記非特許文献１（Paul Kocher, Joshua Jaffe, and Benjamin Jun,“Differential Power Analysis”, Advances in Cryptography- Proceedings of CRYPTO’99, Springer-Verlag, August 1999, pp.388-397、）に開示された方法が最も強力な攻撃であるとされている。これは、暗号デバイス動作時の信号値または信号遷移頻度と、消費電力との間には相関関係があることを利用している。このことを、図１の（ａ）に示した２入力ＡＮＤゲートを用いて具体的に説明する。２入力ＡＮＤゲートの入力の遷移は、遷移前をＡ１、Ｂ１、遷移後をＡ２、Ｂ２と書くと、図１の（ｂ）に示すように１６通りの組み合わせが存在する。遷移前のＡ端子の入力（Ａ１）の状態が機密情報（「注目ビット」で示す）であり、Ｂ端子はランダムに遷移すると仮定すると、Ａ１＝０（図１（ｂ）の上側８行を参照）の時の出力遷移確率は２／８＝１／４であるのに対して、Ａ１＝１（図１（ｂ）の下側８行を参照）の時の出力遷移確率は４／８＝１／２である。図１（ｂ）における斜線部分が、出力が遷移する場合を示す。従って遷移前のＡ端子の入力すなわちＡ１のデータと消費電力とには相関がある。暗号デバイスにおいて、機密情報である暗号鍵データはデバイス内部の電気信号として伝搬されることから、暗号デバイス動作時の消費電力を統計処理することで、機密情報である暗号鍵を特定することができる。本例ではＡＮＤゲートの例を示したが、ＯＲゲートでも、ＮＡＮＤ、ＮＯＲゲートでも非線形ゲートの場合には同じＤＰＡ攻撃が可能である。【０００４】
このＤＰＡ攻撃に対する対抗措置としては、第１に暗号デバイスの電気信号値と暗号情報に相関を無くす対策、第２に暗号デバイスの信号値に関わらずデバイスが一定の電力を消費するような対策が提案されている。【０００５】
前者の対策例としては、下記特許文献１（特開２０００−０６６５８５号公報）に開示されているように、共通鍵ブロック暗号ＤＥＳに対して、そのアルゴリズムで使用されるＳ−Ｂｏｘと呼ばれる置換テーブルの入力値を、乱数パラメータＲによって一定の規則の下に変化させ、変化させた入力に対して、正規アルゴリズムと同じ出力演算結果を得るために規則ごとに異なったＳ−Ｂｏｘ置換テーブルを用いて演算を行う方法が提案されている。乱数Ｒに依存して異なったＳ−Ｂｏｘ演算が行われるため、同一の入力値、同一の暗号鍵に対しても異なった消費電力となるので、暗号鍵と消費電力との相関関係が得られなくなる。この他に、下記特許文献２（特表２００２−５１９７２２号公報）に開示された方法も類似の対抗措置であり、乱数パラメータＲを利用して、演算前に通常のＳ−Ｂｏｘ置換テーブルと異なるテーブルを用意して処理を行う点は共通である。これらの暗号演算処理はＣＰＵ（Central Processing Unit）とＣＰＵから参照できるメモリとから構成されたハードウエアを用いてソフトウエアで処理することが一般的であり、後述のハードウエアを用いた手法と比較して暗号処理演算時間が長く、処理速度が遅くなるという欠点がある。【０００６】
後者の対策例としては、下記特許文献３（国際特許出願公開ＷＯ２００６−００６１９９号パンフレット）に開示されている手法がある。特許文献３中の図１２、１３のＤＥＳ暗号用Ｓ−Ｂｏｘの構成例で示されるように、共通鍵暗号に用いられるＳ−Ｂｏｘテーブルは、ＡＮＤゲートやＯＲゲートなどの非線形ゲートと否定論理を用いた組み合わせ論理回路を用いて実現することが可能である。【０００７】
このうち、非線形ゲートは、上記したように入力データ値に依存して出力の遷移確率が異なるため、出力の遷移確率に比例する消費電力も入力データ値に依存するという特徴を持つ。図１に示した２入力ＡＮＤゲートの例では、入力Ａが０の時の出力遷移確率は１／４であり、入力Ａが１の時の出力遷移確率は１／２となる。このため入力Ａが固定され、入力Ｂがランダムに変化しているときのデバイスの消費電力を計測すれば入力Ａが１か０かを推定することが可能となる。したがってＡに機密情報に関連したビット情報が入力されている場合には、消費電力を用いてこれを推定することが可能となる。【０００８】
このような、非線形ゲートに内在する消費電力の均一化対策としては、下記非特許文献２（K.Tiri and Ingrid Verbauwhede,“A Logic Level Design Methodology for a Secure DPA Resistant ASIC or FPGA Implementation”, Design Automation and Test in Europe Conference, pp.246-251 (2004)）に開示されている、図２の（ａ）に示すような相補的な動作を行うゲートを使用したプリチャージ付き２線相補ロジックがある。論理ゲート間の信号伝搬は２線の相補信号を用い、出力ノードを論理演算開始前に必ず初期化（論理０とする）ことにより、演算時は相補信号のどちらかが必ず遷移することとなり、どのような演算を行ったとしても信号線の遷移確率は一定となる。図２の（ｂ）に示す遷移テーブルでは、最下行が初期化（／ｐｒｃｈ＝０即ちｐｒｃｈ＝１）を表しており、このとき出力Ｚ、／Ｚは共に０である。その後、どのような入力パターンであっても、出力Ｚ、／Ｚのどちらかが必ず遷移することが分かる。【０００９】
しかしながら、一定の消費電力を保証するためには、Ａと／Ａ、Ｚと／Ｚといった相補信号を伝搬する信号線の寄生容量を完全に同一にする必要があり、ＬＳＩレイアウト設計上の観点からは極めて難しく、またゲートおよび配線が増加するため実装面積が３倍以上になる点が実用上の問題点となっている。【００１０】
これに対して、特許文献３に示されている「ＲＳＬ（Random Switching Logic)ゲート」は、乱数を用いてゲートの遷移確率を均一化する手法を採用することにより１線式で消費電力の均一化を達成している。図３の（ａ）は特許文献３に示されているＲＳＬ方式を用いたＮＡＮＤゲートである。（ａ）の回路は、（ｂ）に示すように、乱数ｒが０の場合はＮＡＮＤゲートとして、乱数ｒが１の場合はＮＯＲゲートとして機能する。演算前には／ｅｎ信号は１とされ、出力ｚ＝０となり、前述の２線相補ロジックと同様のプリチャージが行われる。プリチャージ状態からのＮＡＮＤゲートの出力遷移確率は２５％、ＮＯＲゲートの出力遷移確率は７５％なので、乱数ｒが確率５０％で１と０の間を遷移すれば、出力ノードは確率５０％で遷移する。したがって、暗号デバイスの信号値に関わらずデバイスが一定の電力を消費することとなり、ＤＰＡ対策となる。また、この状態では所望の演算結果が得られないという問題があるが、図４に示すように目的とする組合せ論理回路の前段および後段において、ＲＳＬ方式で使用するのと同じ乱数ｒを用いてＥＸＯＲ演算を行うと、組合せ論理回路内で正論理と負論理を切り替えることとなり、所望の演算を実行することができる。ＥＸＯＲ演算部は遷移確率５０％の線形回路であるため、ＤＰＡ攻撃の対象とはならない。【００１１】
ＤＰＡ攻撃に対する完全な耐性を得るためには、論理回路においてハザード（配線遅延や素子遅延のために瞬間的に生じる信号値の変化）が発生しないことを保証しなければならない。このため／ｅｎ端子は入力信号ｘ、ｙの値の入力決定後に１から０に遷移しなければならない（図５の（ａ）参照。図５の（ａ）は図３の（ａ）と同じ回路である）。また、／ｅｎ端子は０から１に遷移する際には、前段から０にリセットされたデータが到達する前に実行しなければならない。このために図５の（ｂ）に示すような非同期信号回路（破線領域）の実装と制御が必要とされている。なお、図５（ｂ）において、ＴＧはタイミングジェネレータ、ＴＣはタイミングコントローラである。ＬＳＩにおいては、トランジスタは電源電圧や環境温度によって駆動能力が大きく変化するため、正確に時間を制御しなければならない非同期信号回路の実装は困難である。【００１２】
上記の問題点を解決したものが、下記非特許文献３（豊田善靖、木戸健太、下林義明、藤野毅、「暗号回路の電力差分解析攻撃に対して耐性があるドミノ型ＲＳＬ回路の提案」、電子情報通信学会技術報告VLD2007-77）で提案されたドミノＲＳＬ方式である。図６の（ａ）にドミノ型ＲＳＬ方式ＡＮＤ／ＯＲゲートを示す。本方式は、ＲＳＬ方式と同様に乱数ｒを用いてＡＮＤゲートとＯＲゲートが切り替わる（図６の（ｂ）参照）ことからＤＰＡ耐性が保証される。かつ、入力Ｘ、Ｙが０であるとき出力Ｚが０になる論理を使用するドミノ方式を使用しているために、出力は１回しか変化することなく本質的にハザードが発生しない。このため、ＲＳＬ方式で実装が困難であった／ｅｎ信号の非同期タイミング制御が不要となる特長がある。また、ＲＳＬ回路と比較するとトランジスタ数が少なく１ゲートあたりの面積が小さいという特長もある。本ドミノＲＳＬ回路を用いたＤＥＳ暗号回路がＤＰＡ耐性を持つことは、下記非特許文献４（奥山一樹、小島憲司、岩井克彦、藤野毅、「Domino-RSL方式を用いてFPGA実装された暗号回路に対するDPA耐性検証」、暗号と情報セキュリティーシンポジウム(SCIS2010)、2010年1月）にて報告されている。【００１３】
図７にドミノＲＳＬ方式を用いて設計したＤＥＳ暗号回路の回路ブロック図を示す。ドミノＲＳＬ方式を適用しなければならないのは、非線形ゲートが必要なＳ−Ｂｏｘ回路だけである。ＤＥＳ暗号回路におけるＳ−Ｂｏｘ回路は６入力４出力のテーブルであり、８種類のテーブルが使われるため、８種類のＳ−Ｂｏｘ（Ｓ−Ｂｏｘ１〜Ｓ−Ｂｏｘ８）を示している。Ｓ−Ｂｏｘは６入力４出力のテーブルをハードウエア記述言語で記載し、否定論理を含まない論理合成が可能なツール（カリフォルニア大学バークレー校：UC Berkleyが配布しているＳＩＳ論理合成ツール）を用いてドミノＲＳＬゲートを含むネットリストに変換できる。なお、回路中にＲＴと記載されたＥＸＯＲゲートは、ＤＦＦの遷移を利用したハミングディスタンス型のＤＰＡ攻撃に対するランダムマスク対策として導入されている。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開２０００−０６６５８５号公報
【特許文献２】特表２００２−５１９７２２号公報
【特許文献３】国際特許出願公開ＷＯ２００６−００６１９９号パンフレット
【非特許文献】
【００１５】
【非特許文献１】Paul Kocher, Joshua Jaffe, and Benjamin Jun,“Differential Power Analysis”, Advances in Cryptography- Proceedings of CRYPTO’99, Springer-Verlag, August 1999, pp.388-397
【非特許文献２】K.Tiri and Ingrid Verbauwhede,“A Logic Level Design Methodology for a Secure DPA Resistant ASIC or FPGA Implementation”, Design Automation and Test in Europe Conference, pp.246-251 (2004)
【非特許文献３】豊田善靖、木戸健太、下林義明、藤野毅、「暗号回路の電力差分解析攻撃に対して耐性があるドミノ型RSL回路の提案」、電子情報通信学会技術報告VLD2007-77
【非特許文献４】奥山一樹、小島憲司、岩井克彦、藤野毅、「Domino-RSL方式を用いてFPGA実装された暗号回路に対するDPA耐性検証」、暗号と情報セキュリティーシンポジウム(SCIS2010)、2010年1月
【非特許文献５】Jae W Lee, et. al. “A Technique to Build a Secret Key in Integrated Circuits for Identification and Authentication Applications”, 2004 Symposium on VLSI Circuits, pp.176-179
【発明の概要】
【発明が解決しようとする課題】
【００１６】
ドミノＲＳＬ回路を用いたＳ−ＢｏｘのＬＳＩ実装における現実的な問題点は、以下の３点である。
（１）ドミノ方式に対応するためには入力初段以外では否定論理を使用しないようにする論理合成ツールを使用しなければならないが、実用ＬＳＩ設計において一般的に普及している論理合成ツールであるシノプシス社のデザインコンパイラでは、そのような論理合成をすることができない。
（２）ドミノＲＳＬゲートという一般的なＬＳＩ設計ライブラリに含まれないセルを用意して自動配置配線を行わなければならず、本セル用のツールライブラリを作成しなければならない。
（３）ドミノＲＳＬゲートごとに／ＣＬＫ信号を配線しなければならないため、／ＣＬＫ信号線負荷が大きくクロック設計が困難である。【００１７】
本発明は、ＤＰＡ攻撃に強い耐タンパ性メモリ集積回路、特に、上記のようなドミノＲＳＬゲートを用いたＡＳＩＣ設計フローの問題点を解決でき、容易に集積回路設計を可能にできる耐タンパ性メモリ集積回路、及び、それをハードウエアコア（以降「セキュアメモリ」と呼ぶ）として用いた暗号回路（例えばＳ−ＢｏｘをＬＳＩ実装した暗号回路）を提供することを目的とする。
【課題を解決するための手段】
【００１８】
例えば、ＤＥＳ暗号回路のＳ−ＢＯＸ１個を実装するのに必要な６入力４出力のテーブルは６ビットのアドレス線と４ビットのデータ線を持つ２６×４＝２５６ビットのセキュアメモリとして実現できる。本発明のセキュアメモリでは、ＤＰＡ耐性を持たせるために、メモリの周辺回路部は、例えばドミノＲＳＬ方式を用いて設計を行う。このため、通常のメモリとしての６本のアドレス線およびデータ線およびクロック（ＣＬＫ）以外に、ドミノＲＳＬ回路に対応した乱数Ｒを入力制御線として備える点が大きく異なる特徴点である。【００１９】
以下において、括弧を付して符号を記載するが、これは、発明の理解を容易にするためであり、発明を限定することを意図していない。【００２０】
上記した課題を解決するために、本発明に係る第１のメモリ集積回路は、メモリセルアレイ、ロウデコーダ、コラムデコーダ、センスアンプ、及び入出力ドライバを備えたメモリ集積回路であって、
前記メモリセルアレイ内の各メモリセルに対するデータの読み出し又は書き込みが２本の相補ビット線を介して行われ、
前記ロウデコーダ、前記コラムデコーダ、及び前記センスアンプが、外部から入力される乱数データによって信号線の遷移確率が均一化される回路で構成されている。【００２１】
本発明に係る第２のメモリ集積回路は、上記の第１のメモリ集積回路において、前記ロウデコーダ、前記コラムデコーダ、及び前記センスアンプが、ドミノＲＳＬ回路を備えて構成されている。【００２２】
本発明に係る第３のメモリ集積回路は、上記の第２のメモリ集積回路において、
前記ロウデコーダが、第１プリデコーダと、メモリセルのワード線をドライブするワード線ドライバとを備えて構成され、
前記第１プリデコーダが、前記アドレスデータを構成する複数のビットデータの一部を反転させる複数の第１インバータ（図12(a)のインバータ）と、複数の第１ドミノＲＳＬゲート（RSL_AND）とを備え、
前記第１ドミノＲＳＬゲート（RSL_AND）が、第１〜第８トランジスタ（Tr1〜Tr8）及び第２インバータ（Inv1）を備え、
第１及び第５トランジスタがＰＭＯＳトランジスタであり、
第２〜第４及び第６〜第８トランジスタがＮＭＯＳトランジスタであり、
前記第１〜第４トランジスタ（Tr1〜Tr4）が、ソース又はドレインが相互に接続されて、順に直列に接続され、
直列に接続された前記第１〜第４トランジスタ（Tr1〜Tr4）の一方の端部に位置する前記第１トランジスタ（Tr1）のソースに電源電圧（Vdd）が印加され、
直列に接続された前記第１〜第４トランジスタ（Tr1〜Tr4）の他方の端部に位置する前記第４トランジスタ（Tr4）のソースに接地電圧（Gnd）が印加され、
前記第１トランジスタ（Tr1）及び前記第４トランジスタ（Tr4）のゲートにクロック（CLK）が入力され、
前記第５トランジスタ（Tr5）のソースに電源電圧が印加され、
前記第６及び第７トランジスタ（Tr6、Tr7）が並列に接続され、
前記第６及び第７トランジスタ（Tr6、Tr7）の接続ノードの一方に、前記第５トランジスタ（Tr5）のドレインが接続され、
前記第６及び第７トランジスタ（Tr6、Tr7）の接続ノードの他方に、前記第８トランジスタ（Tr8）のドレインが接続され、
前記第８トランジスタ（Tr8）のソースが、前記第３及び第４トランジスタ（Tr3、Tr4）の接続ノードに接続され、
前記第１及び第２トランジスタ（Tr1、Tr2）の接続ノードと前記第５〜第７トランジスタ（Tr5〜Tr7）の接続ノードとが接続されて、第１出力ノードを形成し、
前記第１出力ノードが、前記第２インバータ（Inv1）を介して前記第５トランジスタ（Tr5）のゲートに接続され、
前記第２トランジスタ（Tr2）及び前記第６トランジスタ（Tr6）のゲートに、前記アドレスデータを構成する１ビットデータ（A[2]〜A[3]）又は前記第１インバータの出力データが入力され、
前記第３トランジスタ（Tr3）及び前記第７トランジスタ（Tr7）のゲートに、前記第２トランジスタ（Tr2）及び前記第６トランジスタ（Tr6）のゲートに入力されるデータとは異なる、前記アドレスデータを構成する１ビットデータ（A[2]〜A[3]）又は前記第１インバータの出力データが入力され、
前記第８トランジスタ（Tr8）のゲートに、前記乱数データ（R）又は前記乱数データの反転データ（/R）が入力される。【００２３】
本発明に係る第４のメモリ集積回路は、上記の第２のメモリ集積回路において、
前記ロウデコーダが、第１プリデコーダと、メモリセルのワード線をドライブするワード線ドライバとを備えて構成され、
前記第１プリデコーダが、前記アドレスデータを構成する複数のビットデータの一部を反転させる複数の第１インバータ（図12(a)のインバータ）と、複数の第１ドミノＲＳＬゲート（RSL_AND）とを備え、
前記第１ドミノＲＳＬゲート（RSL_AND）が、第１〜第８トランジスタ（Tr1’〜Tr8’）及び第２インバータ（Inv1’）を備え、
第１及び第５トランジスタがＮＭＯＳトランジスタであり、
第２〜第４及び第６〜第８トランジスタがＰＭＯＳトランジスタであり、
前記第１〜第４トランジスタ（Tr1’〜Tr4’）が、ソース又はドレインが相互に接続されて、順に直列に接続され、
直列に接続された前記第１〜第４トランジスタ（Tr1’〜Tr4’）の一方の端部に位置する前記第１トランジスタ（Tr1’）のソースに接地電圧（Gnd）が印加され、
直列に接続された前記第１〜第４トランジスタ（Tr1’〜Tr4’）の他方の端部に位置する前記第４トランジスタ（Tr4’）のソースに電源電圧（Vdd）が印加され、
前記第１トランジスタ（Tr1’）及び前記第４トランジスタ（Tr4’）のゲートにクロック（CLK）が入力され、
前記第５トランジスタ（Tr5’）のソースに接地電圧が印加され、
前記第６及び第７トランジスタ（Tr6’、Tr7’）が並列に接続され、
前記第６及び第７トランジスタ（Tr6’、Tr7’）の接続ノードの一方に、前記第５トランジスタ（Tr5’）のドレインが接続され、
前記第６及び第７トランジスタ（Tr6’、Tr7’）の接続ノードの他方に、前記第８トランジスタ（Tr8’）のドレインが接続され、
前記第８トランジスタ（Tr8’）のソースが、前記第３及び第４トランジスタ（Tr3’、Tr4’）の接続ノードに接続され、
前記第１及び第２トランジスタ（Tr1’、Tr2’）の接続ノードと前記第５〜第７トランジスタ（Tr5’〜Tr7’）の接続ノードとが接続されて、第１出力ノードを形成し、
前記第１出力ノードが、前記第２インバータ（Inv1’）を介して前記第５トランジスタ（Tr5’）のゲートに接続され、
前記第２トランジスタ（Tr2’）及び前記第６トランジスタ（Tr6’）のゲートに、前記アドレスデータを構成する１ビットデータ（A[2]〜A[3]）又は前記第１インバータの出力データが入力され、
前記第３トランジスタ（Tr3’）及び前記第７トランジスタ（Tr7’）のゲートに、前記第２トランジスタ（Tr2’）及び前記第６トランジスタ（Tr6’）のゲートに入力されるデータとは異なる、前記アドレスデータを構成する１ビットデータ（A[2]〜A[3]）又は前記第１インバータの出力データが入力され、
前記第８トランジスタ（Tr8’）のゲートに、前記乱数データ（R）又は前記乱数データの反転データ（/R）が入力される。【００２４】
本発明に係る第５のメモリ集積回路は、上記の第３又は第４のメモリ集積回路において、
前記ワード線ドライバが複数の第２ドミノＲＳＬゲート（RSL_WDrive）を備え、
前記第２ドミノＲＳＬゲート（RSL_WDrive）が、第９〜第１７トランジスタ（Tr9〜Tr17）及び第３インバータ（Inv2）を備え、
第９及び第１４トランジスタがＰＭＯＳトランジスタであり、
第１０〜第１３及び第１５〜第１７トランジスタがＮＭＯＳトランジスタであり、
前記第９〜第１３トランジスタ（Tr9〜Tr13）が、ソース又はドレインが相互に接続されて、順に直列に接続され、
直列に接続された前記第９〜第１３トランジスタ（Tr9〜Tr13）の一方の端部に位置する前記第９トランジスタ（Tr9）のソースに電源電圧が印加され、
直列に接続された前記第９〜第１３トランジスタ（Tr9〜Tr13）の他方の端部に位置する前記第１３トランジスタ（Tr13）のソースに接地電圧が印加され、
前記第９トランジスタ（Tr9）及び前記第１３トランジスタ（Tr13）のゲートにクロック（CLK）が入力され、
前記第１４〜第１７トランジスタ（Tr14〜Tr17）が、ソース又はドレインが相互に接続されて、順に直列に接続され、
直列に接続された前記第１４〜第１７トランジスタ（Tr14〜Tr17）の一方の端部に位置する前記第１４トランジスタ（Tr14）のソースに電源電圧が印加され、
直列に接続された前記第１４〜第１７トランジスタ（Tr14〜Tr17）の他方の端部に位置する前記第１７トランジスタ（Tr17）のソースが、前記第１３トランジスタ（Tr13）のドレインに接続され、
前記第９及び第１０トランジスタ（Tr9、Tr10）の接続ノードと前記第１４及び第１５トランジスタ（Tr14、Tr15）の接続ノードとが接続されて第２出力ノードを形成し、
前記第２出力ノードが、前記第３インバータ（Inv2）を介して前記第１４トランジスタ（Tr14）のゲートに接続され、
前記第１０及び第１１トランジスタ（Tr10、Tr11）の各々のゲート（IN3、IN4）に、重複すること無く前記第１ドミノＲＳＬゲートの出力信号（a[0]〜a[3]、b[0]〜b[3]）が入力され、
前記第１５トランジスタ（Tr15）のゲートに、前記第１０トランジスタ（Tr10）のゲートに入力される信号（IN3）の反転信号（/IN3）が入力され、
前記第１６トランジスタ（Tr16）のゲートに、前記第１１トランジスタ（Tr11）のゲートに入力される信号（IN4）の反転信号（/IN4）が入力され、
前記第１２及び第１７トランジスタ（Tr12、Tr17）の各々に、重複すること無く前記乱数データ（R）又は前記乱数データの反転データ（/R）が入力される。【００２５】
本発明に係る第６のメモリ集積回路は、上記の第３又は第４のメモリ集積回路において、
前記ワード線ドライバが複数の第２ドミノＲＳＬゲート（RSL_WDrive）を備え、
前記第２ドミノＲＳＬゲート（RSL_WDrive）が、第９〜第１７トランジスタ（Tr9’〜Tr17’）及び第３インバータ（Inv2’）を備え、
第９及び第１４トランジスタがＮＭＯＳトランジスタであり、
第１０〜第１３及び第１５〜第１７トランジスタがＰＭＯＳトランジスタであり、
前記第９〜第１３トランジスタ（Tr9’〜Tr13’）が、ソース又はドレインが相互に接続されて、順に直列に接続され、
直列に接続された前記第９〜第１３トランジスタ（Tr9’〜Tr13’）の一方の端部に位置する前記第９トランジスタ（Tr9’）のソースに接地電圧が印加され、
直列に接続された前記第９〜第１３トランジスタ（Tr9’〜Tr13’）の他方の端部に位置する前記第１３トランジスタ（Tr13’）のソースに電源電圧が印加され、
前記第９トランジスタ（Tr9’）及び前記第１３トランジスタ（Tr13’）のゲートにクロック（CLK）が入力され、
前記第１４〜第１７トランジスタ（Tr14’〜Tr17’）が、ソース又はドレインが相互に接続されて、順に直列に接続され、
直列に接続された前記第１４〜第１７トランジスタ（Tr14’〜Tr17’）の一方の端部に位置する前記第１４トランジスタ（Tr14’）のソースに接地電圧が印加され、
直列に接続された前記第１４〜第１７トランジスタ（Tr14’〜Tr17’）の他方の端部に位置する前記第１７トランジスタ（Tr17’）のソースが、前記第１３トランジスタ（Tr13’）のドレインに接続され、
前記第９及び第１０トランジスタ（Tr9’、Tr10’）の接続ノードと前記第１４及び第１５トランジスタ（Tr14’、Tr15’）の接続ノードとが接続されて第２出力ノードを形成し、
前記第２出力ノードが、前記第３インバータ（Inv2’）を介して前記第１４トランジスタ（Tr14’）のゲートに接続され、
前記第１０及び第１１トランジスタ（Tr10’、Tr11’）の各々のゲート（IN3、IN4）に、重複すること無く前記第１ドミノＲＳＬゲートの出力信号（a[0]〜a[3]、b[0]〜b[3]）が入力され、
前記第１５トランジスタ（Tr15’）のゲートに、前記第１０トランジスタ（Tr10’）のゲートに入力される信号（IN3）の反転信号（/IN3）が入力され、
前記第１６トランジスタ（Tr16’）のゲートに、前記第１１トランジスタ（Tr11’）のゲートに入力される信号（IN4）の反転信号（/IN4）が入力され、
前記第１２及び第１７トランジスタ（Tr12’、Tr17’）の各々に、重複すること無く前記乱数データ（R）又は前記乱数データの反転データ（/R）が入力される。【００２６】
本発明に係る第７のメモリ集積回路は、上記の第３〜第６のメモリ集積回路の何れかにおいて、
前記センスアンプが、前記相補ビット線（BL、/BL）に接続されたビット線プリチャージユニット及びクロスカップルセンスアンプユニットと、ドミノＲＳＬマルチプレクサ（RSL_MUX）とを備え、
前記ドミノＲＳＬマルチプレクサが、第１８〜第２４トランジスタ（Tr18〜Tr24）及び第４インバータ（Inv3’）を備え、
第１８及び第２２トランジスタがＰＭＯＳトランジスタであり、
第１９〜第２１、第２３、及び第２４トランジスタがＮＭＯＳトランジスタであり、
前記第１８〜第２１トランジスタ（Tr18〜Tr21）が、ソース又はドレインが相互に接続されて、順に直列に接続され、
直列に接続された前記第１８〜第２１トランジスタ（Tr18〜Tr21）の一方の端部に位置する前記第１８トランジスタ（Tr18）のソースに電源電圧が印加され、
直列に接続された前記第１８〜第２１トランジスタ（Tr18〜Tr21）の他方の端部に位置する前記第２１トランジスタ（Tr21）のソースに接地電圧が印加され、
前記第１８トランジスタ（Tr18）及び前記第２１トランジスタ（Tr21）のゲートにクロック（CLK）が入力され、
前記第２２〜第２４トランジスタ（Tr22〜Tr24）が、ソース又はドレインが相互に接続されて、順に直列に接続され、
直列に接続された前記第２２〜第２４トランジスタ（Tr22〜Tr24）の一方の端部に位置する前記第２２トランジスタ（Tr22）のソースに電源電圧が印加され、
直列に接続された前記第２２〜第２４トランジスタ（Tr22〜Tr24）の他方の端部に位置する前記第２４トランジスタ（Tr24）のソースが、前記第２１トランジスタ（Tr21）のドレインに接続され、
前記第１８及び第１９トランジスタ（Tr18、Tr19）の接続ノードと前記第２２及び第２３トランジスタ（Tr22、Tr23）の接続ノードとが接続されて第３出力ノードを形成し、
前記第３出力ノードが、前記第４インバータ（Inv3）を介して前記第２２トランジスタ（Tr22）のゲートに接続され、
前記第１９及び第２３トランジスタ（Tr19、Tr23）の各々のゲートに、重複すること無く前記相補ビット線（BL、/BL）からの信号が入力され、
前記第２０及び第２４トランジスタ（Tr20、Tr24）の各々のゲートに、前記乱数データ（R）又は前記乱数データの反転データが入力される。【００２７】
本発明に係る第８のメモリ集積回路は、上記の第３〜第６のメモリ集積回路の何れかにおいて、
前記センスアンプが、前記相補ビット線（BL、/BL）に接続されたビット線プリチャージユニット及びクロスカップルセンスアンプユニットと、ドミノＲＳＬマルチプレクサ（RSL_MUX）とを備え、
前記ドミノＲＳＬマルチプレクサが、第１８〜第２４トランジスタ（Tr18’〜Tr24’）及び第４インバータ（Inv3’）を備え、
第１８及び第２２トランジスタがＮＭＯＳトランジスタであり、
第１９〜第２１、第２３、及び第２４トランジスタがＰＭＯＳトランジスタであり、
前記第１８〜第２１トランジスタ（Tr18’〜Tr21’）が、ソース又はドレインが相互に接続されて、順に直列に接続され、
直列に接続された前記第１８〜第２１トランジスタ（Tr18’〜Tr21’）の一方の端部に位置する前記第１８トランジスタ（Tr18’）のソースに接地電圧が印加され、
直列に接続された前記第１８〜第２１トランジスタ（Tr18’〜Tr21’）の他方の端部に位置する前記第２１トランジスタ（Tr21’）のソースに電源電圧が印加され、
前記第１８トランジスタ（Tr18’）及び前記第２１トランジスタ（Tr21’）のゲートにクロック（CLK）が入力され、
前記第２２〜第２４トランジスタ（Tr22’〜Tr24’）が、ソース又はドレインが相互に接続されて、順に直列に接続され、
直列に接続された前記第２２〜第２４トランジスタ（Tr22’〜Tr24’）の一方の端部に位置する前記第２２トランジスタ（Tr22’）のソースに接地電圧が印加され、
直列に接続された前記第２２〜第２４トランジスタ（Tr22’〜Tr24’）の他方の端部に位置する前記第２４トランジスタ（Tr24’）のソースが、前記第２１トランジスタ（Tr21’）のドレインに接続され、
前記第１８及び第１９トランジスタ（Tr18’、Tr19’）の接続ノードと前記第２２及び第２３トランジスタ（Tr22’、Tr23’）の接続ノードとが接続されて第３出力ノードを形成し、
前記第３出力ノードが、前記第４インバータ（Inv3’）を介して前記第２２トランジスタ（Tr22’）のゲートに接続され、
前記第１９及び第２３トランジスタ（Tr19’、Tr23’）の各々のゲートに、重複すること無く前記相補ビット線（BL、/BL）からの信号が入力され、
前記第２０及び第２４トランジスタ（Tr20’、Tr24’）の各々のゲートに、前記乱数データ（R）又は前記乱数データの反転データが入力される。【００２８】
本発明に係る第９のメモリ集積回路は、上記の第３〜第８のメモリ集積回路の何れかにおいて、
前記コラムデコーダが、第２プリデコーダと、メモリセルのコラムデコード線をドライブするコラムデコード線ドライバとを備えて構成され、
前記第２プリデコーダが、前記アドレスデータを構成する複数の前記ビットデータのうち前記第１プリデコーダに入力されないビットデータを反転させる第５インバータと、第３ドミノＲＳＬゲート（RSL_AND）とを備え、
前記第３ドミノＲＳＬゲートが、第２５〜第３２トランジスタ及び第６インバータを備え、
第２５及び第２９トランジスタがＰＭＯＳトランジスタであり、
第２６〜第２８及び第３０〜第３２トランジスタがＮＭＯＳトランジスタであり、
前記第２５〜第３２トランジスタが、ソース又はドレインが相互に接続されて、順に直列に接続され、
直列に接続された前記第２５〜第２８トランジスタの一方の端部に位置する前記第２５トランジスタのソースに電源電圧が印加され、
直列に接続された前記第２５〜第２８トランジスタの他方の端部に位置する前記第２８トランジスタのソースに接地電圧が印加され、
前記第２５トランジスタ及び前記第２８トランジスタのゲートにクロックが入力され、
前記第２９トランジスタのソースに電源電圧が印加され、
前記第３０及び第３１トランジスタが並列に接続され、
前記第３０及び第３１トランジスタの接続ノードの一方に、前記第２９トランジスタのドレインが接続され、
前記第３０及び第３１トランジスタの接続ノードの他方に、前記第３２トランジスタのドレインが接続され、
前記第３２トランジスタのソースが、前記第２７及び第２８トランジスタの接続ノードに接続され、
前記第２５及び第２６トランジスタの接続ノードと前記第２９〜第３１トランジスタの接続ノードとが接続されて、第４出力ノードを形成し、
前記第４出力ノードが、前記第６インバータを介して前記第２９トランジスタのゲートに接続され、
前記第２６トランジスタ及び第３０トランジスタのゲートに、前記第１プリデコーダに入力されない、前記アドレスデータを構成する１ビットデータ又は前記第５インバータの出力データが入力され、
前記第２７トランジスタ及び前記第３１トランジスタのゲートに、前記第２６トランジスタ及び前記第３０トランジスタのゲートに入力されるデータとは異なる、前記第１プリデコーダに入力されない、前記アドレスデータを構成する１ビットデータ又は前記第５インバータの出力データが入力され、
前記第３２トランジスタのゲートに、前記乱数データ（R）又は前記乱数データの反転データ（/R）が入力される。【００２９】
本発明に係る第１０のメモリ集積回路は、上記の第３〜第８のメモリ集積回路の何れかにおいて、
前記コラムデコーダが、第２プリデコーダと、メモリセルのコラムデコード線をドライブするコラムデコード線ドライバとを備えて構成され、
前記第２プリデコーダが、前記アドレスデータを構成する複数の前記ビットデータのうち前記第１プリデコーダに入力されないビットデータを反転させる第５インバータと、第３ドミノＲＳＬゲート（RSL_AND）とを備え、
前記第３ドミノＲＳＬゲートが、第２５〜第３２トランジスタ及び第６インバータを備え、
第２５及び第２９トランジスタがＮＭＯＳトランジスタであり、
第２６〜第２８及び第３０〜第３２トランジスタがＰＭＯＳトランジスタであり、
前記第２５〜第３２トランジスタが、ソース又はドレインが相互に接続されて、順に直列に接続され、
直列に接続された前記第２５〜第２８トランジスタの一方の端部に位置する前記第２５トランジスタのソースに接地電圧が印加され、
直列に接続された前記第２５〜第２８トランジスタの他方の端部に位置する前記第２８トランジスタのソースに電源電圧が印加され、
前記第２５トランジスタ及び前記第２８トランジスタのゲートにクロックが入力され、
前記第２９トランジスタのソースに接地電圧が印加され、
前記第３０及び第３１トランジスタが並列に接続され、
前記第３０及び第３１トランジスタの接続ノードの一方に、前記第２９トランジスタのドレインが接続され、
前記第３０及び第３１トランジスタの接続ノードの他方に、前記第３２トランジスタのドレインが接続され、
前記第３２トランジスタのソースが、前記第２７及び第２８トランジスタの接続ノードに接続され、
前記第２５及び第２６トランジスタの接続ノードと前記第２９〜第３１トランジスタの接続ノードとが接続されて、第４出力ノードを形成し、
前記第４出力ノードが、前記第６インバータを介して前記第２９トランジスタのゲートに接続され、
前記第２６トランジスタ及び第３０トランジスタのゲートに、前記第１プリデコーダに入力されない、前記アドレスデータを構成する１ビットデータ又は前記第５インバータの出力データが入力され、
前記第２７トランジスタ及び前記第３１トランジスタのゲートに、前記第２６トランジスタ及び前記第３０トランジスタのゲートに入力されるデータとは異なる、前記第１プリデコーダに入力されない、前記アドレスデータを構成する１ビットデータ又は前記第５インバータの出力データが入力され、
前記第３２トランジスタのゲートに、前記乱数データ（R）又は前記乱数データの反転データ（/R）が入力される。【００３０】
本発明に係る第１１のメモリ集積回路は、上記の第９又は第１０のメモリ集積回路において、
前記コラムデコード線ドライバが第４ドミノＲＳＬゲート（RSL_WDrive）を備え、
前記第４ドミノＲＳＬゲート（RSL_WDrive）が、第３３〜第４１トランジスタ及び第７インバータを備え、
第３３及び第３８トランジスタがＰＭＯＳトランジスタであり、
第３４〜第３７及び第３９〜第４１トランジスタがＮＭＯＳトランジスタであり、
前記第３３〜第３７トランジスタが、ソース又はドレインが相互に接続されて、順に直列に接続され、
直列に接続された前記第３３〜第３７トランジスタの一方の端部に位置する前記第３３トランジスタのソースに電源電圧が印加され、
直列に接続された前記第３３〜第３７トランジスタの他方の端部に位置する前記第３７トランジスタのソースに接地電圧が印加され、
前記第３３トランジスタ及び前記第３７トランジスタのゲートにクロック（CLK）が入力され、
前記第３８〜第４１トランジスタが、ソース又はドレインが相互に接続されて、順に直列に接続され、
直列に接続された前記第３８〜第４１トランジスタの一方の端部に位置する前記第３８トランジスタのソースに電源電圧が印加され、
直列に接続された前記第３８〜第４１トランジスタの他方の端部に位置する前記第４１トランジスタのソースが、前記第３７トランジスタのドレインに接続され、
前記第３３及び第３４トランジスタの接続ノードと前記第３８及び第３９トランジスタの接続ノードとが接続されて、前記第５出力ノードを形成し、
前記第５出力ノードが、前記第７インバータを介して前記第３８トランジスタのゲートに接続され、
前記第３４及び第３５トランジスタの各々のゲート（IN3、IN4）に、重複すること無く前記第３ドミノＲＳＬゲートの出力信号が入力され、
前記第３９トランジスタのゲートに、前記第３４トランジスタのゲートに入力される信号（IN3）の反転信号（/IN3）が入力され、
前記第４０トランジスタのゲートに、前記第３５トランジスタのゲートに入力される信号（IN4）の反転信号（/IN4）が入力され、
前記第３６及び第４１トランジスタの各々に、重複すること無く前記乱数データ（R）又は前記乱数データの反転データ（/R）が入力される。【００３１】
本発明に係る第１２のメモリ集積回路は、上記の第９又は第１０のメモリ集積回路において、
前記コラムデコード線ドライバが第４ドミノＲＳＬゲート（RSL_WDrive）を備え、
前記第４ドミノＲＳＬゲート（RSL_WDrive）が、第３３〜第４１トランジスタ及び第７インバータを備え、
第３３及び第３８トランジスタがＮＭＯＳトランジスタであり、
第３４〜第３７及び第３９〜第４１トランジスタがＰＭＯＳトランジスタであり、
前記第３３〜第３７トランジスタが、ソース又はドレインが相互に接続されて、順に直列に接続され、
直列に接続された前記第３３〜第３７トランジスタの一方の端部に位置する前記第３３トランジスタのソースに接地電圧が印加され、
直列に接続された前記第３３〜第３７トランジスタの他方の端部に位置する前記第３７トランジスタのソースに電源電圧が印加され、
前記第３３トランジスタ及び前記第３７トランジスタのゲートにクロック（CLK）が入力され、
前記第３８〜第４１トランジスタが、ソース又はドレインが相互に接続されて、順に直列に接続され、
直列に接続された前記第３８〜第４１トランジスタの一方の端部に位置する前記第３８トランジスタのソースに接地電圧が印加され、
直列に接続された前記第３８〜第４１トランジスタの他方の端部に位置する前記第４１トランジスタのソースが、前記第３７トランジスタのドレインに接続され、
前記第３３及び第３４トランジスタの接続ノードと前記第３８及び第３９トランジスタの接続ノードとが接続されて、前記第５出力ノードを形成し、
前記第５出力ノードが、前記第７インバータを介して前記第３８トランジスタのゲートに接続され、
前記第３４及び第３５トランジスタの各々のゲート（IN3、IN4）に、重複すること無く前記第３ドミノＲＳＬゲートの出力信号が入力され、
前記第３９トランジスタのゲートに、前記第３４トランジスタのゲートに入力される信号（IN3）の反転信号（/IN3）が入力され、
前記第４０トランジスタのゲートに、前記第３５トランジスタのゲートに入力される信号（IN4）の反転信号（/IN4）が入力され、
前記第３６及び第４１トランジスタの各々に、重複すること無く前記乱数データ（R）又は前記乱数データの反転データ（/R）が入力される。【００３２】
本発明に係る第１の暗号回路は、上記の第１〜第１２のメモリ集積回路を備えている。【００３３】
本発明に係る乱数発生回路は、
線形帰還形シフトレジスタと、２列に縦列接続されたＮ段のセレクタ回路と、アービター回路と、前記線形帰還形シフトレジスタの出力信号及び前記アービター回路の出力信号を排他的論理和演算して乱数を出力する演算ゲートとを備え、
前記線形帰還形シフトレジスタが、直列に接続されたＮ個のシフトレジスタと複数の排他的論理和演算子とを備え、
前記アービター回路が、
接地電圧と電源電圧との間に直列接続されたクロスカップルセンスアンプ、及び、ソースが相互接続され且つドレインが相互接続された２つのトランジスタで構成されたイネーブルゲートと、
一方の入力端に第１入力信号が入力され、他方の入力端が前記クロスカップルセンスアンプの第１センシングノードに接続され、出力端が、前記イネーブルゲートを構成する一方のトランジスタのゲートに接続された第１ＮＡＮＤゲートと、
一方の入力端に第２入力信号が入力され、他方の入力端が前記クロスカップルセンスアンプの第２センシングノードに接続され、出力端が、前記イネーブルゲートを構成する他方のトランジスタのゲートに接続された第２ＮＡＮＤゲートとを備え、
前記シフトレジスタの出力が、選択信号であるチャレンジとして前記セレクタ回路に入力され、
最終段の２つのセレクタ回路の出力信号が前記第１及び第２入力信号として前記アービター回路に入力され、
前記第１および第２ＮＡＮＤゲートの出力の一方が、前記アービター回路から前記乱数として出力される。【００３４】
本発明に係る第２の暗号回路は、
上記の第１〜第１２のメモリ集積回路の何れかと、上記の乱数発生回路とを備え、
前記乱数発生回路の出力が、前記メモリ集積回路に入力される前記乱数データである。【００３５】
本発明に係る第３の暗号回路は、
ＤＥＳ暗号又はＡＥＳ暗号用の暗号回路である上記の第１又は第２の暗号回路であって、
Ｓ−Ｂｏｘが前記メモリ集積回路で構成されている。
【発明の効果】
【００３６】
本発明のメモリ集積回路およびそれを利用した暗号回路によれば、耐タンパ性があり、ＤＰＡ攻撃に強く、信頼性が高い暗号手段を実現することができる。【００３７】
また、上記のように、入力データとして乱数を用いたセキュアメモリをハードウエアコアとしてＳ−Ｂｏｘを実現することにより、暗号回路の設計者は、ＤＰＡ耐性を持った暗号回路を設計することが可能となる。セキュアメモリ回路の部分はドミノＲＳＬ回路を用いて構成してもよい。ここで、ドミノＲＳＬゲートは既にセキュアメモリの内部に設計されているので、設計者は、ドミノＲＳＬゲートを意識する必要は無い。具体的には、暗号回路の設計者は、暗号回路全体のレイアウトを、業界標準的な自動レイアウトツール（配置および配線ツール）を用いて作成することが可能となる。したがって、ドミノ回路向けの論理合成ツールやドミノＲＳＬゲートという特殊なセルライブラリを用意する必要がなくなる。さらに、ドミノＲＳＬゲートに必要な／ＣＬＫ線の負荷も考慮する必要がなくなる。
【００３８】
また、ＤＥＳ暗号回路では８種類のＳ−Ｂｏｘが必要であるが、セキュアメモリ内部のデータを変更するだけで、すべてのＳ−Ｂｏｘに対して同一のハードウエアコアを用いることができるという利点も生まれる。旧世代のＤＥＳ暗号回路に代わる、新しい標準となっているＡＥＳ暗号回路でも非線形ゲートが使用されているのは、Ｓ−Ｂｏｘ部だけであり、ＡＥＳで使用されているＳ−Ｂｏｘに対応した８ビット入力８ビット出力のセキュアメモリ（容量は２Ｋビット）を用意すれば簡単に対応できる。
【図面の簡単な説明】
【００３９】
【図１】ＤＰＡ攻撃の原理を説明する図である。
【図２】プリチャージ付相補ロジックを示す図である。
【図３】ＲＳＬ方式ＮＡＮＤゲートを示す回路図である。
【図４】ＲＳＬ方式を用いた演算を示すブロック図である。
【図５】ＲＳＬ方式におけるｅｎ信号の非同期制御を説明する回路図である。
【図６】ドミノ型ＲＳＬ方式のＡＮＤ／ＯＲゲートを示す回路図である。
【図７】ドミノＲＳＬ回路を用いて実装したＤＥＳ暗号回路を示す図である。
【図８】本発明の実施の形態に係るセキュアメモリの概略構成を示すブロック図である。
【図９】メモリセルの例を示す回路図である。
【図１０】メモリセルアレイの概略構造を示す図である。
【図１１】従来のプリデコーダを示す図である。
【図１２】本発明の実施の形態に係るプリデコーダを示す回路図である。
【図１３】図１２に示したプリデコーダの動作波形を示すタイミングチャートである。
【図１４】従来のワード線ドライバを示す図である。
【図１５】本発明の実施の形態に係るワード線ドライバを示す回路図である。
【図１６】図１５に示したワード線ドライバの動作波形を示すタイミングチャートである。
【図１７】アドレスとワード線確認回路を示す回路図である。
【図１８】図１７に示した回路の動作波形を示すタイミングチャートである。
【図１９】従来のセンスアンプ回路を示す回路図である。
【図２０】図１９に示したセンスアンプ回路の動作及び消費電力を示すタイミングチャートである。
【図２１】本発明の実施の形態に係るセンスアンプ回路を示す回路図である。
【図２２】図２１に示した回路の動作及び消費電力を示すタイミングチャートである。
【図２３】図１２（ｂ）と置換可能なドミノＲＳＬゲートの一例を示す回路図である。
【図２４】図１５（ｂ）と置換可能なドミノＲＳＬゲートの一例を示す回路図である。
【図２５】図２１（ｂ）と置換可能なドミノＲＳＬマルチプレクサの一例を示す回路図である。
【図２６】従来の擬似乱数発生器を示す回路図である。
【図２７】チップの製造ばらつきを使用したＰＵＦ回路を示すブロック図である。
【図２８】アービター回路及びセレクタの一例を示す回路図である。
【図２９】本発明の実施の形態に係る乱数発生回路を示す回路図である。
【発明を実施するための形態】
【００４０】
以下、本発明に係る実施の形態を、添付した図面に基づいて説明する。
図８に、本発明の実施の形態に係る耐タンパ性メモリ集積回路（セキュアメモリ）の機能ブロック図を示す。本セキュアメモリは、メモリアレイと、アドレスプリデコーダ及びワード線ドライバから構成されるロウデコーダと、コラムデコーダと、センスアンプと、入出力ドライバとから構成されている。本セキュアメモリは、外部からクロックＣＬＫ、アドレスデータＡ、制御信号／Ｗｒｉｔｅが入力され、メモリアレイ中の対応するメモリセルに対してデータの書込み／読み出しを行う。本セキュアメモリが、通常のメモリと異なる点は、外部の乱数発生器（図示せず）から乱数Ｒが入力される点である。アドレスＡは入力、データＤは入出力であり、本セキュアメモリをＤＥＳ暗号回路のＳ−Ｂｏｘとして使用する場合には、図８に示したように、アドレスＡが６ビットの入力、データＤが４ビットの出力となる。Ｒｅａｄ／Ｗｒｉｔｅの制御信号／Ｗｒｉｔｅは、メモリがＲＯＭ（リードオンリーメモリ）の場合には不必要であるが、ＲＡＭ（ランダムアクセスメモリ）の場合には、Ｓ−Ｂｏｘのテーブルデータを初期値として書き込むために使用するために必要であり、書き込み時のみ／Ｗｒｉｔｅ＝０とする。
【００４１】
以下に、本セキュアメモリの構成要素に関して具体的に説明する。なお、以下の説明において、本発明の理解を容易にするために、適宜従来技術と対比して説明する。また、セキュアメモリを主としてＤＥＳ暗号回路のＳ−Ｂｏｘとして使用することを想定して説明するが、これに限定されるものではない。
【００４２】
＜メモリアレイ＞
メモリアレイ内部のメモリセルとしては、図９に示すような、スタティックＲＡＭ型（ａ）またはマスクＲＯＭ型（ｂ）を使用する。図９に示したスタティックＲＡＭは一般的な回路構造であり、ワード線をＨｉにすることで、相補ビット線データの読み出し、書き込みを行う。マスクＲＯＭの場合はＳ−Ｂｏｘのテーブル値が１か０であるかによって、ＬＳＩ製造時のフォトマスクのレイアウトを変化させて、ＲＯＭデータを書き込む。一般的にはコンタクトレイアやビアレイアを使用することが多い。一般的なマスクＲＯＭ（ｃ）では、ビット線は相補構造をしていないが、本発明に係るマスクＲＯＭ（ｂ）は、単一のセルとして相補ビット線を駆動するために、２つのトランジスタを配置する構造をとらなければならない。これは、ビット線が相補でないと、セルから読み出した値が０か１かによって消費電力に差が生じてしまうためである。逆にビット線を相補形式で読みだすことができるメモリセルであれば、任意のメモリセルを使用することができ、例えば、ダイナミックＲＡＭであっても、強誘電体メモリであっても、磁性体を用いたメモリであってもかまわない。ＤＥＳ用のＳ−Ｂｏｘに使用する場合は、６ビットアドレス、４ビット出力の２５６ビットメモリアレイとなり、図１０に示すようにワード線Ｗが１６本、ビット線対（ＢＬと／ＢＬ）が１６対（３２本）ある構造となる。各メモリセルは１本のワード線と１対のビット線に接続される。
【００４３】
＜ロウデコーダ＞
ロウデコーダは４ビットのアドレスをデコードして１６本のワード線のうち、１本のワード線を選択して駆動する回路であり、アドレスプリデコーダ（以下、単にプリデコーダとも記す）とワード線ドライバとに大きく分類することができる。
【００４４】
＜プリデコーダ＞
従来の一般的な回路におけるプリデコーダは図１１の（ａ）に示すような回路であり、（ｂ）のテーブルに示したパターンで信号を発生させる。すなわちＡ［２］、Ａ［３］のアドレス信号の４つの状態をデコードしてａ［０］、ａ［１］、ａ［２］、ａ［３］のどれか１つの信号線だけを論理１とする組み合わせ論理回路である。同様に、Ａ［４］、Ａ［５］のアドレス信号からｂ［０］、ｂ［１］、ｂ［２］、ｂ［３］の信号をプリデコードする。図１１（ａ）に示す従来の回路はＮＡＮＤゲートを用いており、ＤＰＡの原理で説明した図１のＡＮＤゲートと同じくＮＡＮＤゲートは非線形ゲートであるため、ＤＰＡ攻撃の対象となり得る。
【００４５】
これに対して本発明では、プリデコーダを図１２の（ａ）に示すようにドミノＲＳＬゲートＲＳＬ＿ＡＮＤを用いて実現する。図１２の（ｂ）に、ドミノＲＳＬゲートＲＳＬ＿ＡＮＤの具体的な回路を示す。ドミノＲＳＬゲートＲＳＬ＿ＡＮＤは、図６（ａ）に示した回路に対して出力駆動用のインバータを付加しているが、図６（ａ）の回路と等価な回路である。なお、インバータの内部に示すinvx1、invx8は、インバータを構成するＮＭＯＳ及びＰＭＯＳトランジスタのサイズ（ゲート幅）の違いを示しており、invxに続く数値が大きい程サイズが大きく、大きな負荷容量を駆動できることを意味する（図１２以外の回路図においても同様）。
【００４６】
ドミノＲＳＬゲートＲＳＬ＿ＡＮＤの入力のうち、第１の入力端子にはクロックＣＬＫが入力され、第２及び第３の入力端子ＩＮ１、ＩＮ２には、入力Ａ［２］、Ａ［３］又はそれらを反転した信号が入力される。また、（ｂ）では第４の入力端子にはＲのみ表示しているが、乱数Ｒ又はその反転信号／Ｒが入力される。
【００４７】
図１２から分かるように、入力Ａ［２］、Ａ［３］から、相補信号である出力信号ａ［０］〜ａ［３］及び／ａ［０］〜／ａ［３］が生成される。なお、図１２には入力Ａ［２］、Ａ［３］に関する回路のみ示しているが、入力Ａ［４］、Ａ［５］に関する回路も同様に構成され、その回路からは、図１２の出力信号ａ［０］〜ａ［３］及び／ａ［０］〜／ａ［３］に対応する出力信号ｂ［０］〜ｂ［３］及び／ｂ［０］〜／ｂ［３］が生成される。
【００４８】
図１２（ａ）に示したプリデコーダの動作波形を図１３に示す。ドミノＲＳＬゲートはダイナミック回路であるので、ＣＬＫ＝０のプリチャージ期間中はすべての入出力が０にリセットされている。ＣＬＫ＝１となると、入力信号に応じて出力値が決定されるが、乱数Ｒ＝０の正論理で演算しているときには、ａ［０］、ａ［１］、ａ［２］、ａ［３］には図１１（ｂ）で示したのと同じ論理が出力されている。ただし、本発明のプリデコーダにおいてはａ［０］、ａ［１］、ａ［２］、ａ［３］だけでなく、その反転信号（但しＣＬＫ＝１の期間のみ）である／ａ［０］、／ａ［１］、／ａ［２］、／ａ［３］もドミノＲＳＬゲートを用いて出力していることに注意されたい。Ｒ＝１の負論理の演算も同様に行われている。一つの信号線たとえばａ［０］に注目すると正論理においてはＨｉデータが出力される確率は１／４であるが、負論理においては３／４の確率でＨｉデータが出力されるため、乱数Ｒが１と０を１／２の確率で入力されるならば、ａ［０］ノードがＨｉに遷移する確率はどのような入力データに対しても１／２となる。同様にしてすべての信号線ａ［０］〜ａ［３］、／ａ［０］〜／ａ［３］がＨｉデータを出力する確率はすべて１／２となり、アドレスの入力値にかかわらず消費電力は一定となる。
【００４９】
＜ワード線ドライバ＞
従来のワード線ドライバは図１４の（ａ）に示す回路で構成されている。すなわち、１６本のワード線は、２種類のプリデコード信号ａ［０］〜ａ［３］、ｂ［０］〜ｂ［３］のうちから１本ずつの信号線が選ばれ、それら２本の信号線にＣＬＫ信号を加えた３入力ＡＮＤゲートｗｄ３を用いて駆動されている。ＣＬＫ信号を入れるのはワード線を立ち上げるタイミングをコントロールするためである。図１２の（ｂ）は、プリデコード信号ａ［０］〜ａ［３］、ｂ［０］〜ｂ［３］によるワード線Ｗの選択を示すテーブルである。なお、（ａ）においては回路の一部が省略されており、１６個の３入力ＡＮＤゲートｗｄ３のうちの５個と、１６本のワード線Ｗのうちの５本のみを示している。（ｂ）のテーブルに関しても同様に省略されている。
【００５０】
これに対して、本発明のワード線ドライバには、図１５の（ａ）に示す回路を使用する。ドミノＲＳＬゲートＲＳＬ＿ＷＤｒｉｖの具体的な回路を図１５の（ｂ）に示す。本発明のワード線ドライバは１６個のドミノＲＳＬゲートＲＳＬ＿ＷＤｒｉｖｅを備えて構成されるが、図１５（ａ）では、そのうちワード線ｗ［０］〜ｗ［４］をドライブするドミノＲＳＬゲートＲＳＬ＿ＷＤｒｉｖｅのみを示している。また、図１５（ａ）のドミノＲＳＬゲートＲＳＬ＿ＷＤｒｉｖｅの内部に示した符号ｂは、反転信号が入力されることを示す。
【００５１】
ドミノＲＳＬゲートＲＳＬ＿ＷＤｒｉｖｅには、２系統のプリデコード信号ａ、ｂとその相補信号／ａ、／ｂが入力ＩＮ３、ＩＮ４および／ＩＮ３、／ＩＮ４に入力されている。即ち、１つのドミノＲＳＬゲートＲＳＬ＿ＷＤｒｉｖには、例えば、ＩＮ３、／ＩＮ３にａ［ｉ］、／ａ［ｉ］（ｉ＝０〜３）が入力され、ＩＮ４、／ＩＮ４にｂ［ｊ］、／ｂ［ｊ］（ｊ＝０〜３）が入力される。ドミノＲＳＬゲートＲＳＬ＿ＷＤｒｉｖｅでは、ＣＬＫ＝１の期間において、Ｒ＝０（正論理）の時はＩＮ３、ＩＮ４の両方がＨｉデータとなり、Ｒ＝１（負論理）の時は／ＩＮ３、／ＩＮ４の両方がＨｉデータの時ＯＵＴ２＝Ｈｉとなって、ワード線が活性化される。
【００５２】
図１５の（ａ）に示した回路の動作波形を図１６に示す。Ｒ＝０の時はａ［０］＝ｂ［０］＝Ｈｉの時にｗ［０］＝Ｈｉに、Ｒ＝０の時はａ［０］＝ｂ［０］＝Ｌｏ（波形には示していないが、このとき／ａ［０］＝／ｂ［０］＝Ｈｉ）の時に、ｗ［０］＝Ｈｉとなっている。
【００５３】
＜ロウデコーダの動作確認＞
図１７にプリデコーダとワード線ドライバを含むロウデコーダの動作確認用の回路図を示す。図１７のＲｏｗＤｅｃｏｄｅｒ＿ＲＳＬが、図１２及び図１５に示した回路で構成されているシミュレーション用ロウデコーダである。アドレスｉｎＡ［５：２］を０から１５までインクリメントしたとき、乱数Ｒ＝０の場合（正論理）には、アドレスＡ［５：２］＝ｉｎＡ［５：２］として、シミュレーション用ロウデコーダＲｏｗＤｅｃｏｄｅｒ＿ＲＳＬに入力される。一方、乱数Ｒ＝１の場合（負論理）には、アドレスｉｎＡ［５：２］はＥＸＯＲゲートｘｏｒで反転されて、Ａ［５：２］＝／ｉｎＡ［５：２］としてシミュレーション用ロウデコーダＲｏｗＤｅｃｏｄｅｒ＿ＲＳＬに入力される。図１７の回路でシミュレーションした結果の動作波形を図１８に示す。これから、Ｒ＝０、Ｒ＝１のどちらの場合でもワード線がｗ［０］からｗ［１５］まで順に活性化されていることが確認できる。
【００５４】
＜コラムデコーダおよびセンスアンプ回路＞
メモリアレイから出力に至る経路には、図８に示すようにコラムデコーダとメモリアレイのデータを読み出すセンスアンプ回路とがある。コラムデコーダはメモリアレイから読み出されたデータの内、出力に必要なデータを選択する回路であり、ＤＥＳ暗号回路の例では、アドレスＡ［０］〜Ａ［１］をデコードして、メモリアレイから出力された１６個のデータから４個を選択する。本発明のコラムデコーダは、ドミノＲＳＬゲートを用いて、上記した本発明のロウデコーダと同様に構成される。即ち、本発明のコラムデコーダは、プリデコーダ（図１２参照）と、コラムデコード線ドライバ（図１５のワード線ドライバに対応）から構成される。その動作において、コラムデコード線ドライバの出力信号（図１５（ｂ）のＯＵＴ２に対応）がコラムデータの選択信号すなわちコラムデコード信号（後述の図２１参照）となる。
【００５５】
図１９に従来のセンスアンプ回路を示す。ビット線プリチャージ部は読み出し前に、ビット線信号ペア（ＢＬと／ＢＬ）をＶｄｄ電位にしておくために使用される。この図には示していないが、メモリアレイ内にも同じプリチャージ部が存在する。ビット線読み出し時にはＣＬＫ信号はＨｉとなり、プリチャージ部が不活性になると同時に、メモリアレイ内のワード線（ｗ［０］またはｗ［１］）が活性化されメモリセルによってビット線信号ペア（ＢＬと／ＢＬ）にデータが出力される（メモリセルからのデータ読み出し）。ビット線信号ペアの電位は、コラムデコード信号が入力されたＮＭＯＳトランスミッションゲートを経由してクロスカップル型のセンスアンプ部（クロスカップルセンスアンプ部）に到達し、ここでデータが増幅される。増幅された相補データは、２個のＮＡＮＤゲートｗｄ１で構成されるＲＳフリップフロップでラッチされ出力バッファを経て出力ＤＯＵＴとして出力される。図２０に従来のセンスアンプ回路の動作波形（下段）と消費電力（上段）を示す。アドレスＡ［０］＝０の時はメモリアレイからはデータ１（ＢＬ＝Ｈｉかつ／ＢＬ＝Ｌｏ）が、アドレスＡ［０］＝１の時はメモリアレイからはデータ１（ＢＬ＝Ｌｏかつ／ＢＬ＝Ｈｉ）が読み出される。このとき、それぞれＤＯＵＴ＝ＬｏおよびＨｉとなり、ＤＯＵＴに付随している１ｐＦの寄生容量が充電されることに伴ってＤＯＵＴ＝１の時だけ大きな消費電力が消費される。従って、図２０において白抜きの矢印で示したように、出力論理データと消費電力とに相関が生まれるためＤＰＡ攻撃の対象となる。
【００５６】
これに対して、発明のセンスアンプ回路は図２１のように構成されている。メモリアレイからクロスカップルセンスアンプユニットまでの動作は従来と同じであるが、ＲＳフリップフロップに代えてドミノＲＳＬマルチプレクサＲＳＬ＿ＭＵＸが使用されている。図２１（ａ）に示されたドミノＲＳＬマルチプレクサＲＳＬ＿ＭＵＸ内に記載された０、１は、入力端子を表す。ビット線ＢＬ、／ＢＬはそれぞれ、インバータを介して入力端子１、０に接続されている。ドミノＲＳＬマルチプレクサＲＳＬ＿ＭＵＸの具体的な回路図を、図２１の（ｂ）に示す。ドミノＲＳＬマルチプレクサＲＳＬ＿ＭＵＸでは、Ｒ＝０の場合には／ＢＬの反転信号（ＢＬ信号すなわちセルデータと同じ論理）が、Ｒ＝１の場合にはＢＬの反転信号（／ＢＬ信号すなわちセルデータの反転論理）が、出力バッファに伝搬されＤＯＵＴに出力される。本回路はメモリアレイからＤＯＵＴに至るまで、ＢＬ側と／ＢＬ側とで回路が全く対称に設計されていることに注意されたい。
【００５７】
図２２に、図２１に示したセンスアンプ回路の動作波形（下段）と消費電力（上段）を示す。ＤＯＵＴには乱数Ｒ＝０の時には正論理、乱数Ｒ＝１の時には負論理のデータが出力され、消費電力はＤＯＵＴがＨｉになるとき大きくなる。従って、図２２において白抜きの矢印で示したように、出力論理データと消費電力に相関がなくなるためＤＰＡ攻撃の対象となることは無くなる。
【００５８】
以上、本発明に係る耐タンパ性メモリ集積回路（セキュアメモリ）を構成する各要素、即ちメモリアレイ、ロウデコーダ、コラムデコーダ、及びセンスアンプ回路について、従来と比較しながら説明した。本発明の特徴は、メモリセルにおいてはＢＬと／ＢＬ線という相補入出力線を持つセルを用いていること、ロウおよびコラムデコーダにおいてはアドレスのデコード回路にＡＮＤゲートに代えて２種類のドミノＲＳＬゲートＲＳＬ＿ＡＮＤ及びＲＳＬ＿ＷＤｒｉｖを用いていること、また、センスアンプ回路においては出力ＤＯＵＴに対して、ＢＬと／ＢＬ信号から全く対称な信号経路を用いて信号を伝搬するために、ドミノＲＳＬマルチプレクサを用いて相補データの片側を選択して出力している点である。
【００５９】
図１２、図１５、図２１は、ドミノＲＳＬ回路を適用したアドレスプリデコーダ、ワード線ドライバ、センスアンプ回路の一例であり、これらに限定されない。例えば、ＮＭＯＳトランジスタとＰＭＯＳトランジスタとを相互に置き換えて同様の機能の回路を構成することができる。図２３〜２５は、それぞれ図１２（ｂ）、図１５（ｂ）、図２１（ｂ）において、ＮＭＯＳトランジスタとＰＭＯＳトランジスタとを置き換えたドミノＲＳＬ回路の一例を示す回路図である。図２３〜２５は、図１２（ｂ）、図１５（ｂ）、図２１（ｂ）の各回路と論理は反転するが、同様の機能を有する回路であり、図１２（ｂ）、図１５（ｂ）、図２１（ｂ）の各回路の代わりに使用することができる。なお、図２３〜２５の各要素（トランジスタなど）を表す符合には、図１２（ｂ）、図１５（ｂ）、図２１（ｂ）における対応する要素の符号に「’」を付している。
【００６０】
また、上記ではドミノＲＳＬ回路で構成する場合を説明したが、メモリアレイ及び入出力ドライバ以外の回路は、乱数を用いて信号線の遷移確率を均一化できる回路方式であればドミノＲＳＬ以外の実装方式も可能である。
【００６１】
＜乱数発生回路＞
乱数Ｒは、公知の乱数発生回路を用いて発生させればよいが、より耐タンパ性を向上させるには、以下に説明する乱数発生回路を採用することが望ましい。
乱数発生回路でもっとも一般的に使用されているのは図２６に示す線形帰還型シフトレジスタ（ＬＦＳＲ：Linear Feedback Shift Resister）型疑似乱数発生器である。この乱数発生器は、１６個のシフトレジスタＳＲと、３個のＥＸＯＲゲートで構成されており、その動作は公知であるので説明は省略する。図２６に示した線形帰還型シフトレジスタ型疑似乱数発生器（１６ビットＬＦＳＲ）では、６５５３５個のデータ列を一周期とする同じデータ列が発生する。このデータ列は、１６ビットデータの初期値が同じであれば、すべてのチップで同じ乱数系列が発生される。万が一、同じ設計の暗号回路が調査されて本セキュアメモリの乱数発生回路情報が窃取された場合には、その乱数値に基づいて消費電力値を補正し、ＤＰＡ攻撃を行うことも不可能ではない。
【００６２】
このような疑似乱数データを推定したＤＰＡ攻撃を無効化するため、同じ回路であってもチップごとに異なる乱数を発生する回路を採用することが望ましい。図２７はチップ製造時のトランジスタの性能バラツキを利用したＰＵＦ（Physically Unclonable Function）回路と呼ばれ、この回路の原理は上記非特許文献５（Jae W Lee, et. al. “A Technique to Build a Secret Key in Integrated Circuits for Identification and Authentication Applications”, 2004 Symposium on VLSI Circuits, pp.176-179）に開示されている。Ｎ段のセレクタ回路が２列に縦列接続されており、外部から与えられたチャレンジ（選択信号）に従って２種類の経路を使用して立ち上がりエッジの信号が伝搬される。図２７では略記しているが、上下に対応する２つのセレクタには、同じ１ビットのチャレンジ信号が入力される。従って、途中で中断することなく最後まで伝播される信号は、相互に重複しない２つの経路を通る。これら２種類の経路の信号は同じタイミングで出力されるはずであるが、各セレクタを構成するトランジスタの製造ばらつきによって到達時間差Δｔが発生する。アービター回路においては、立ち上がりエッジの到達時間差を検出して、上段の出力信号が早く到達した場合（Δｔ＞０）にはデータ１を、下段の出力信号が早く到達した場合（Δｔ＜０）にはデータ０を、レスポンスとして出力する。アービター回路の出力は、上段と下段の経路をマルチプレクサの入力値を変化させて切り替えることで、製造ばらつきを反映してランダムに変化する。
【００６３】
このアービター回路は、微少な時間差を検出するために重要な回路であるが、非特許文献５には内部回路が開示されていない。本発明では、例えば図２８（ａ）に示す回路を採用する。初期状態としては／ＲＥＳＥＴ＝０となっているため、クロスカップルセンスアンプと電源の間に位置するイネーブルゲート（２つのトランジスタのソース同士及びドレイン同士が接続されて形成されたゲート）はＯＦＦ状態にある。／ＲＥＳＥＴ＝１として、ＩＮ１、ＩＮ２のどちらかにＨｉデータが入るとイネーブルゲートはＯＮし、クロスカップル型のセンスアンプが動作を始め、ＩＮ１とＩＮ２との電位差（センシングノードＮ１、Ｎ２の電位差）を検出して先に立ち上がりエッジが到達した側のＯＵＴ端子が１に反対側のＯＵＴ端子が０に変化する。本回路は、アービター回路として、先に到達した側のライズエッジをトリガ信号としてセンスアンプを動作させている点が特徴である。アービター回路の出力（レスポンス）としては、図２８（ａ）のＯＵＴ１、ＯＵＴ２のどちらか一方を使用すればよい。なお、図２８の（ａ）において、インバータは無くてもよい。しかし、センスアンプを動作させるＰＭＯＳのゲートノードは、ＩＮ１、ＩＮ２のどちらかがＨｉになった後はできるだけ早くＬｏにすることが望ましいので、容量負荷は最小限にする必要がある。従って、外部出力ＯＵＴ１、ＯＵＴ２はインバータを介して出力することが望ましい。
【００６４】
このようなＰＵＦ回路を用いた、チップごとに異なる乱数を発生させることが可能な回路の例を図２９に示す。セレクタ回路が１６段（３２個）接続されて形成されたＰＵＦ回路（図２７の回路）のチャレンジとして、１６ビットのＬＦＳＲ疑似乱数発生回路を構成する各シフトレジスタの出力を接続する。この結果得られたＰＵＦ回路のレスポンスと、ＬＦＳＲ疑似乱数発生回路の出力との排他的論理和を演算し、その結果をセキュアメモリで使用する乱数Ｒとする。ＬＦＳＲ疑似乱数発生回路の出力は１、０の個数がほぼ同数であることを反映して、この乱数Ｒは１と０がほぼ同数となり、消費電力の偏りが無くなるとともに、ＰＵＦ回路の出力はチップごとに異なる。
【００６５】
このように、本発明に係るチップごとの製造ばらつきを利用した乱数発生回路を使用することにより、規則的な疑似乱数データを推定して行うＤＰＡ攻撃を無効化することができる。なお、ＰＵＦの出力である１／０の出現率が５０％になるように設計する場合ＰＵＦの出力を直接乱数Ｒとして使用しても良い。ＰＵＦの１／０出現率は、アービター回路のレイアウト（ノードの寄生容量）に依存して偏りが出やすいが、５０％になるように設計するには、チューニング用の付加回路を図２８（ａ）の回路に設けることで対応可能である。
【００６６】
なお、上記した乱数発生回路は、暗号回路への応用に限定されず、ＬＳＩの回路応用において、できるだけ不規則な乱数を必要とするアプリケーション（モンテカルロシミュレーションなど）全般に使用できる。
【産業上の利用可能性】
【００６７】
本発明によれば、ＤＰＡ攻撃に強い耐タンパ性メモリ集積回路、特に、ドミノＲＳＬゲートを用いたＡＳＩＣ設計フローの問題点を解決でき、容易に集積回路設計を可能にできる耐タンパ性メモリ集積回路、及び、それをセキュアメモリとして用いた暗号回路（例えばＳ−ＢｏｘをＬＳＩ実装した暗号回路）を提供することができる。
【符号の説明】
【００６８】
Ｔｒ１〜Ｔｒ２４、Ｔｒ１’〜Ｔｒ２４’    トランジスタ
Ｉｎｖ１〜Ｉｎｖ３、Ｉｎｖ１’〜Ｉｎｖ３’    インバータ
ＢＬ、／ＢＬ    ビット線
ｗ    ワード線
ＯＵＴ１〜ＯＵＴ３、ＤＯＵＴ    出力端子（出力信号）
Ａ［０］〜Ａ［５］    アドレスデータ
ａ［０］〜ａ［３］、／ａ［０］〜／ａ［３］、ｂ［０］〜ｂ［３］、／ｂ［０］〜／ｂ［３］    プリデコード信号
ＣＬＫ    クロック
Ｒ、ｒ    乱数
【図１】
0005544611.tif 000002
【図２】
0005544611.tif 000003
【図３】
0005544611.tif 000004
【図４】
0005544611.tif 000005
【図５】
0005544611.tif 000006
【図６】
0005544611.tif 000007
【図７】
0005544611.tif 000008
【図８】
0005544611.tif 000009
【図９】
0005544611.tif 000010
【図１０】
0005544611.tif 000011
【図１１】
0005544611.tif 000012
【図１２】
0005544611.tif 000013
【図１３】
0005544611.tif 000014
【図１４】
0005544611.tif 000015
【図１５】
0005544611.tif 000016
【図１６】
0005544611.tif 000017
【図１７】
0005544611.tif 000018
【図１８】
0005544611.tif 000019
【図１９】
0005544611.tif 000020
【図２０】
0005544611.tif 000021
【図２１】
0005544611.tif 000022
【図２２】
0005544611.tif 000023
【図２３】
0005544611.tif 000024
【図２４】
0005544611.tif 000025
【図２５】
0005544611.tif 000026
【図２６】
0005544611.tif 000027
【図２７】
0005544611.tif 000028
【図２８】
0005544611.tif 000029
【図２９】
0005544611.tif 000030