(57)【要約】【課題】外部クロック信号の周期が変更された場合であっても鍵が特定される可能性を低減することが可能な暗号化処理回路を提供すること。【解決手段】暗号化処理回路１００は、レジスタに格納されている情報を取得し、当該取得された情報を予め設定された方式に従って鍵に基づいて変換し、当該変換された情報を当該レジスタに格納する、ラウンド処理を実行することにより、入力された情報を暗号化する暗号化処理回路である。暗号化処理回路１００は、外部から外部クロック信号が入力され、フィードバック制御を行うことにより、当該入力された外部クロック信号と同期した内部クロック信号を生成する位相同期回路１０１と、上記生成された内部クロック信号に同期して作動するように構成され、且つ、上記ラウンド処理を繰り返し実行することにより、上記入力された情報を暗号化するラウンド処理回路１０２と、を備える。【選択図】図４
2012169721.tif 000002
【特許請求の範囲】
【請求項１】
レジスタに格納されている情報を取得し、当該取得された情報を予め設定された方式に従って鍵に基づいて変換し、当該変換された情報を当該レジスタに格納する、ラウンド処理を実行することにより、入力された情報を暗号化する暗号化処理回路であって、
外部から外部クロック信号が入力され、フィードバック制御を行うことにより、当該入力された外部クロック信号と同期した内部クロック信号を生成する位相同期回路と、
前記生成された内部クロック信号に同期して作動するように構成され、且つ、前記ラウンド処理を繰り返し実行することにより、前記入力された情報を暗号化するラウンド処理回路と、
を備える暗号化処理回路。
【請求項２】
請求項１に記載の暗号化処理回路であって、
前記ラウンド処理回路は、前記位相同期回路が生成する前記内部クロック信号が、前記外部クロック信号と同期した時点以降の時点にて、前記ラウンド処理の実行を開始するように構成された暗号化処理回路。
【請求項３】
請求項１又は請求項２に記載の暗号化処理回路であって、
前記外部クロック信号が異常であることを検出する異常検出手段を備え、
前記外部クロック信号が異常であることが検出された場合、前記レジスタに格納されている情報を消去するように構成された暗号化処理回路。
【請求項４】
請求項３に記載の暗号化処理回路であって、
前記異常検出手段は、前記外部クロック信号と、前記内部クロック信号と、の差を検出する作動増幅回路を含むとともに、当該検出された差が、予め設定された閾値差よりも大きい場合に、当該外部クロック信号が異常であることを検出するように構成された暗号化処理回路。
【請求項５】
請求項１乃至請求項４のいずれか一項に記載の暗号化処理回路であって、
ブロック暗号方式に従って、前記入力された情報を暗号化するように構成された暗号化処理回路。
【請求項６】
レジスタに格納されている情報を取得し、当該取得された情報を予め設定された方式に従って鍵に基づいて変換し、当該変換された情報を当該レジスタに格納する、ラウンド処理を実行することにより、入力された情報を暗号化する暗号化処理方法であって、
外部から外部クロック信号が入力され、フィードバック制御を行うことにより、当該入力された外部クロック信号と同期した内部クロック信号を生成し、
前記生成された内部クロック信号に同期して作動することによって、前記ラウンド処理を繰り返し実行することにより、前記入力された情報を暗号化する、暗号化処理方法。
【請求項７】
請求項６に記載の暗号化処理方法であって、
前記内部クロック信号が前記外部クロック信号と同期した時点以降の時点にて、前記ラウンド処理の実行を開始する、暗号化処理方法。
【請求項８】
請求項６又は請求項７に記載の暗号化処理方法であって、
前記外部クロック信号が異常であることを検出し、
前記外部クロック信号が異常であることが検出された場合、前記レジスタに格納されている情報を消去する、暗号化処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ラウンド処理を実行することにより情報を暗号化する暗号化処理回路に関する。
【背景技術】
【０００２】
ラウンド処理を実行することにより情報を暗号化する暗号化処理回路が知られている。この種の暗号化処理回路の一つとして、特許文献１に記載の暗号化処理回路は、外部クロック信号に同期してラウンド処理を繰り返し実行することにより、入力された情報を暗号化する。ラウンド処理は、レジスタに格納されている情報を取得し、当該取得された情報を予め設定された方式に従って鍵に基づいて変換し、当該変換された情報を当該レジスタに格納する処理である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−２４５７５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、レジスタに格納するために当該レジスタに入力される情報が、予め設定されたデータ維持要求期間内に変更された場合を想定する。ここで、データ維持要求期間は、外部クロック信号の立ち上がりエッジ（又は、立ち下がりエッジ）よりもセットアップタイムだけ前の時点から、当該エッジよりもホールドタイムだけ後の時点までの期間である。この場合、レジスタに格納される情報が、変更前の情報であるか、変更後の情報であるか、が保証されなくなる。
【０００５】
そこで、ラウンド処理の実行結果を表す情報がレジスタに入力される際に、外部クロック信号の周期を短くすることにより、暗号化処理回路に異常な処理を実行させることができる。また、暗号化処理回路が異常な処理を実行した場合における、暗号化された情報と、暗号化処理回路が正常な処理を実行した場合における、暗号化された情報と、の差を表す情報に基づいて（即ち、フォールト攻撃によって）、鍵を特定できる場合があることが知られている。
【０００６】
このように、上記暗号化処理回路においては、外部クロック信号の周期が変更されることにより鍵が特定されてしまう虞があった。
【０００７】
このため、本発明の目的は、上述した課題である「外部クロック信号の周期が変更されることにより鍵が特定されてしまう場合が生じること」を解決することが可能な暗号化処理回路を提供することにある。
【課題を解決するための手段】
【０００８】
かかる目的を達成するため本発明の一形態である暗号化処理回路は、
レジスタに格納されている情報を取得し、当該取得された情報を予め設定された方式に従って鍵に基づいて変換し、当該変換された情報を当該レジスタに格納する、ラウンド処理を実行することにより、入力された情報を暗号化する暗号化処理回路である。
【０００９】
更に、この暗号化処理回路は、
外部から外部クロック信号が入力され、フィードバック制御を行うことにより、当該入力された外部クロック信号と同期した内部クロック信号を生成する位相同期回路と、
上記生成された内部クロック信号に同期して作動するように構成され、且つ、上記ラウンド処理を繰り返し実行することにより、上記入力された情報を暗号化するラウンド処理回路と、
を備える。
【００１０】
また、本発明の他の形態である暗号化処理方法は、
レジスタに格納されている情報を取得し、当該取得された情報を予め設定された方式に従って鍵に基づいて変換し、当該変換された情報を当該レジスタに格納する、ラウンド処理を実行することにより、入力された情報を暗号化する方法である。
【００１１】
更に、この暗号化処理方法は、
外部から外部クロック信号が入力され、フィードバック制御を行うことにより、当該入力された外部クロック信号と同期した内部クロック信号を生成し、
上記生成された内部クロック信号に同期して作動することによって、上記ラウンド処理を繰り返し実行することにより、上記入力された情報を暗号化する方法である。
【発明の効果】
【００１２】
本発明は、以上のように構成されることにより、外部クロック信号の周期が変更された場合であっても鍵が特定される可能性を低減することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の第１実施形態に係る暗号化処理回路の概略構成を表す図である。
【図２】本発明の第１実施形態に係る暗号化処理回路が実行する処理を示したフローチャートである。
【図３】本発明の第２実施形態に係る暗号化処理回路の概略構成を表す図である。
【図４】本発明の第３実施形態に係る暗号化処理回路の概略構成を表す図である。
【発明を実施するための形態】
【００１４】
以下、本発明に係る、暗号化処理回路、及び、暗号化処理方法、の各実施形態について図１〜図４を参照しながら説明する。
【００１５】
＜第１実施形態＞
（構成）
図１に示したように、第１実施形態に係る暗号化処理回路１は、集積回路である。暗号化処理回路１には、暗号化処理回路１の外部から情報（平文）が入力される。暗号化処理回路１は、入力された情報を鍵（としての情報）に基づいて暗号化する。そして、暗号化処理回路１は、暗号化された情報（暗号文）を暗号化処理回路１の外部へ出力する。
【００１６】
本例では、暗号化処理回路１は、共通鍵暗号方式の１つであるＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）暗号方式に従って、入力された情報を暗号化する。ＡＥＳ暗号方式は、ブロック暗号方式の１つである。なお、暗号化処理回路１は、ＤＥＳ（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）暗号方式等の他の暗号方式に従って、入力された情報を暗号化するように構成されていてもよい。
【００１７】
暗号化処理回路１は、ラウンド処理回路１０と、鍵スケジュール処理回路２０と、位相同期回路（ＰＬＬ；Ｐｈａｓｅ  Ｌｏｃｋｅｄ  Ｌｏｏｐ）３０と、を備える。
【００１８】
位相同期回路３０には、暗号化処理回路１の外部からクロック信号（外部クロック信号）が入力される。位相同期回路３０は、フィードバック制御を行うことにより、入力された外部クロック信号と同期したクロック信号（内部クロック信号）を生成する。位相同期回路３０は、生成した内部クロック信号を、ラウンド処理回路１０及び鍵スケジュール処理回路２０のそれぞれへ出力（供給）する。
【００１９】
ラウンド処理回路１０は、位相同期回路３０により生成された内部クロック信号に同期して作動するように構成される。ラウンド処理回路１０は、ラウンド処理を、予め設定された反復回数だけ繰り返し実行することにより、暗号化処理回路１に入力された情報（平文）を暗号化する。ラウンド処理回路１０は、内部クロック信号の立ち上がりエッジ（なお、立ち下がりエッジでもよい）が到来する毎に、ラウンド処理を１回だけ実行する。
【００２０】
ラウンド処理回路１０は、位相同期回路３０が生成する内部クロック信号が、外部クロック信号と同期した時点以降の時点にて、ラウンド処理の実行を開始する。本例では、ラウンド処理回路１０は、位相同期回路３０に入力される外部クロック信号の立ち上がりエッジが到来した回数（エッジ到来回数）が、予め設定された待機回数に到達した時点にて、ラウンド処理の実行を開始する。
【００２１】
ラウンド処理回路１０は、レジスタ１１と、変換処理回路１２と、を備える。
変換処理回路１２は、ラウンド処理を実行する。
具体的には、変換処理回路１２は、１回目のラウンド処理においては、入力された平文を、変換処理の対象となる情報（変換処理対象情報）として取得する。変換処理回路１２は、２回目以降のラウンド処理においては、レジスタ１１に格納されている情報を変換処理対象情報として取得する。
【００２２】
変換処理回路１２には、鍵スケジュール処理回路２０により生成された拡大鍵が入力される。変換処理回路１２は、入力された拡大鍵に基づいて、取得された情報（変換処理対象情報）を、予め設定された方式に従って変換する（即ち、変換処理対象情報に対する変換処理を実行する）。変換処理回路１２は、変換された情報をレジスタ１１に格納する。
このようにして、変換処理回路１２は、ラウンド処理を実行する。
【００２３】
ラウンド処理回路１０は、変換処理回路１２によって、反復回数だけラウンド処理が実行された後、レジスタ１１に格納されている情報を取得し、取得された情報を暗号化された情報（暗号文）として暗号化処理回路１の外部へ出力する。
【００２４】
鍵スケジュール処理回路２０は、拡大鍵生成回路２１を備える。拡大鍵生成回路２１は、予め記憶している鍵に基づいて、各ラウンド処理に対する拡大（拡張）鍵（ラウンド鍵）を生成する。本例では、拡大鍵生成回路２１は、各ラウンド処理に対する拡大鍵が、互いに異なる情報となるように拡大鍵を生成する。そして、拡大鍵生成回路２１は、生成された拡大鍵を変換処理回路１２へ出力する。なお、拡大鍵生成回路２１は、暗号化処理回路１の外部から鍵が入力されるように構成されていてもよい。
【００２５】
（作動）
次に、上述した暗号化処理回路１の作動について説明する。
暗号化処理回路１は、図２にフローチャートにより示した処理を、暗号化処理回路１の起動時に実行するようになっている。
【００２６】
具体的に述べると、暗号化処理回路１は、ステップＳ１０１にて、エッジ到来回数が待機回数に到達（一致）するまで待機する。そして、エッジ到来回数が待機回数に到達すると、暗号化処理回路１は、「Ｙｅｓ」と判定してステップＳ１０２へ進み、平文が入力されるまで待機する。
【００２７】
次いで、暗号化処理回路１に平文が入力されると、暗号化処理回路１は、「Ｙｅｓ」と判定してステップＳ１０３へ進み、入力された平文を、１回目のラウンド処理における変換処理対象情報として取得する。
【００２８】
そして、暗号化処理回路１は、予め記憶している鍵に基づいて、１回目のラウンド処理に対する拡大鍵を生成する（ステップＳ１０４）。次いで、暗号化処理回路１は、カウンタ値ｉを１に設定する（ステップＳ１０５）。
【００２９】
そして、暗号化処理回路１は、ステップＳ１０４にて生成された拡大鍵に基づいて、ステップＳ１０３にて取得された変換処理対象情報に対する１回目の変換処理を実行する（ステップＳ１０６）。そして、暗号化処理回路１は、変換された情報をレジスタ１１に格納する（ステップＳ１０７）。
なお、ステップＳ１０３、ステップＳ１０６及びステップＳ１０７の処理は、１回目のラウンド処理を構成している。
【００３０】
次いで、暗号化処理回路１は、カウンタ値ｉが反復回数Ｎよりも小さいか否かを判定する（ステップＳ１０８）。いま、カウンタ値ｉが反復回数Ｎよりも小さい場合を想定する。この場合、暗号化処理回路１は、「Ｙｅｓ」と判定してステップＳ１０９へ進み、レジスタに格納されている情報を、ｉ回目のラウンド処理における変換処理対象情報として取得する。
【００３１】
そして、暗号化処理回路１は、予め記憶している鍵に基づいて、ｉ回目のラウンド処理に対する拡大鍵を生成する（ステップＳ１１０）。次いで、暗号化処理回路１は、カウンタ値ｉに１を加算する（ステップＳ１１１）。
【００３２】
そして、暗号化処理回路１は、ステップＳ１１０にて生成された拡大鍵に基づいて、ステップＳ１０９にて取得された変換処理対象情報に対するｉ回目の変換処理を実行する（ステップＳ１１２）。そして、暗号化処理回路１は、変換された情報をレジスタ１１に格納する（ステップＳ１１３）。
なお、ステップＳ１０９、ステップＳ１１２及びステップＳ１１３の処理は、ｉ回目のラウンド処理を構成している。
【００３３】
その後、カウンタ値ｉが反復回数Ｎに到達（一致）すると、暗号化処理回路１は、ステップＳ１０８に進んだとき、「Ｎｏ」と判定してステップＳ１１４へ進む。そして、暗号化処理回路１は、レジスタに格納されている情報を、入力された平文が暗号化された情報（暗号文）として取得する。次いで、暗号化処理回路１は、取得された暗号文を、暗号化処理回路１の外部へ出力する。その後、暗号化処理回路１は、ステップＳ１０２へ戻る。
【００３４】
以上、説明したように、本発明の第１実施形態に係る暗号化処理回路１によれば、暗号化処理回路１は、位相同期回路３０により生成された内部クロック信号に同期してラウンド処理を繰り返し実行することにより、入力された情報を暗号化する。これにより、外部クロック信号の周期が変更された場合であっても、暗号化処理回路１に正常な処理を実行させることができる。この結果、外部クロック信号の周期が変更された場合であっても鍵が特定される可能性を低減することができる。
【００３５】
更に、本発明の第１実施形態に係る暗号化処理回路１によれば、ラウンド処理回路１０は、位相同期回路３０が生成する内部クロック信号が、外部クロック信号と同期した時点以降の時点にて、ラウンド処理の実行を開始するように構成される。
【００３６】
ところで、位相同期回路３０は、フィードバック制御を行うことにより、外部クロック信号と同期した内部クロック信号を生成する。従って、位相同期回路３０が生成する内部クロック信号が外部クロック信号と同期するまでには、所定の遅延時間（ロックアップタイム）を要する。そこで、上記のように暗号化処理回路１を構成することにより、暗号化処理回路１に、より一層確実に正常な処理を実行させることができる。
【００３７】
＜第２実施形態＞
次に、本発明の第２実施形態に係る暗号化処理回路について説明する。第２実施形態に係る暗号化処理回路は、上記第１実施形態に係る暗号化処理回路に対して、外部クロック信号が異常であることが検出された場合、レジスタに格納されている情報を消去する点において相違している。従って、以下、かかる相違点を中心として説明する。
【００３８】
第２実施形態に係る暗号化処理回路１は、図３に示したように、第１実施形態に係る暗号化処理回路１が備える構成に加えて、異常検出回路（異常検出手段）４０を備える。異常検出回路４０は、作動増幅回路４１を備える。
【００３９】
作動増幅回路４１は、暗号化処理回路１の外部から暗号化処理回路１に入力される外部クロック信号と、位相同期回路３０により生成される内部クロック信号と、の差を検出する。
【００４０】
異常検出回路４０は、作動増幅回路４１により検出された差が、予め設定された閾値差よりも大きい場合に、外部クロック信号が異常であることを検出する。更に、異常検出回路４０は、外部クロック信号が異常であることが検出された場合、レジスタ１１に格納されている情報を消去する。
【００４１】
ところで、外部クロック信号が異常である場合（例えば、外部クロック信号の周期が変更された場合等）、暗号化処理回路１が攻撃（フォールト攻撃、及び、サイドチャネル攻撃等）されている可能性が比較的高い。
【００４２】
そこで、上記のように暗号化処理回路１を構成することにより、外部クロック信号が異常であることが検出された時点にて、暗号化処理回路１が入力された情報を暗号化する処理を実質的に中止することができる。この結果、鍵が特定される可能性をより一層低減することができる。
【００４３】
＜第３実施形態＞
次に、本発明の第３実施形態に係る暗号化処理回路について図４を参照しながら説明する。
第３実施形態に係る暗号化処理回路１００は、
レジスタに格納されている情報を取得し、当該取得された情報を予め設定された方式に従って鍵に基づいて変換し、当該変換された情報を当該レジスタに格納する、ラウンド処理を実行することにより、入力された情報を暗号化する暗号化処理回路である。
【００４４】
更に、この暗号化処理回路１００は、
外部から外部クロック信号が入力され、フィードバック制御を行うことにより、当該入力された外部クロック信号と同期した内部クロック信号を生成する位相同期回路１０１と、
上記生成された内部クロック信号に同期して作動するように構成され、且つ、上記ラウンド処理を繰り返し実行することにより、上記入力された情報を暗号化するラウンド処理回路１０２と、
を備える。
【００４５】
これによれば、暗号化処理回路１００は、位相同期回路１０１により生成された内部クロック信号に同期してラウンド処理を繰り返し実行することにより、入力された情報を暗号化する。これにより、外部クロック信号の周期が変更された場合であっても、暗号化処理回路１００に正常な処理を実行させることができる。この結果、外部クロック信号の周期が変更された場合であっても鍵が特定される可能性を低減することができる。
【００４６】
以上、上記実施形態を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成及び詳細に、本願発明の範囲内において当業者が理解し得る様々な変更をすることができる。
【００４７】
また、上記実施形態の他の変形例として、上述した実施形態及び変形例の任意の組み合わせが採用されてもよい。
【００４８】
＜付記＞
上記実施形態の一部又は全部は、以下の付記のように記載され得るが、以下には限られない。
【００４９】
（付記１）
レジスタに格納されている情報を取得し、当該取得された情報を予め設定された方式に従って鍵に基づいて変換し、当該変換された情報を当該レジスタに格納する、ラウンド処理を実行することにより、入力された情報を暗号化する暗号化処理回路であって、
外部から外部クロック信号が入力され、フィードバック制御を行うことにより、当該入力された外部クロック信号と同期した内部クロック信号を生成する位相同期回路と、
前記生成された内部クロック信号に同期して作動するように構成され、且つ、前記ラウンド処理を繰り返し実行することにより、前記入力された情報を暗号化するラウンド処理回路と、
を備える暗号化処理回路。
【００５０】
これによれば、暗号化処理回路は、位相同期回路により生成された内部クロック信号に同期してラウンド処理を繰り返し実行することにより、入力された情報を暗号化する。これにより、外部クロック信号の周期が変更された場合であっても、暗号化処理回路に正常な処理を実行させることができる。この結果、外部クロック信号の周期が変更された場合であっても鍵が特定される可能性を低減することができる。
【００５１】
（付記２）
付記１に記載の暗号化処理回路であって、
前記ラウンド処理回路は、前記位相同期回路が生成する前記内部クロック信号が、前記外部クロック信号と同期した時点以降の時点にて、前記ラウンド処理の実行を開始するように構成された暗号化処理回路。
【００５２】
ところで、位相同期回路は、フィードバック制御を行うことにより、外部クロック信号と同期した内部クロック信号を生成する。従って、位相同期回路が生成する内部クロック信号が外部クロック信号と同期するまでには、所定の遅延時間を要する。そこで、上記のように暗号化処理回路を構成することにより、暗号化処理回路に、より一層確実に正常な処理を実行させることができる。
【００５３】
（付記３）
付記１又は付記２に記載の暗号化処理回路であって、
前記外部クロック信号が異常であることを検出する異常検出手段を備え、
前記外部クロック信号が異常であることが検出された場合、前記レジスタに格納されている情報を消去するように構成された暗号化処理回路。
【００５４】
ところで、外部クロック信号が異常である場合（例えば、外部クロック信号の周期が変更された場合等）、暗号化処理回路が攻撃（フォールト攻撃、及び、サイドチャネル攻撃等）されている可能性が比較的高い。そこで、上記のように暗号化処理回路を構成することにより、外部クロック信号が異常であることが検出された時点にて、暗号化処理回路が入力された情報を暗号化する処理を実質的に中止することができる。この結果、鍵が特定される可能性をより一層低減することができる。
【００５５】
（付記４）
付記３に記載の暗号化処理回路であって、
前記異常検出手段は、前記外部クロック信号と、前記内部クロック信号と、の差を検出する作動増幅回路を含むとともに、当該検出された差が、予め設定された閾値差よりも大きい場合に、当該外部クロック信号が異常であることを検出するように構成された暗号化処理回路。
【００５６】
（付記５）
付記１乃至付記４のいずれか一項に記載の暗号化処理回路であって、
ブロック暗号方式に従って、前記入力された情報を暗号化するように構成された暗号化処理回路。
【００５７】
（付記６）
レジスタに格納されている情報を取得し、当該取得された情報を予め設定された方式に従って鍵に基づいて変換し、当該変換された情報を当該レジスタに格納する、ラウンド処理を実行することにより、入力された情報を暗号化する暗号化処理方法であって、
外部から外部クロック信号が入力され、フィードバック制御を行うことにより、当該入力された外部クロック信号と同期した内部クロック信号を生成し、
前記生成された内部クロック信号に同期して作動することによって、前記ラウンド処理を繰り返し実行することにより、前記入力された情報を暗号化する、暗号化処理方法。
【００５８】
（付記７）
付記６に記載の暗号化処理方法であって、
前記内部クロック信号が前記外部クロック信号と同期した時点以降の時点にて、前記ラウンド処理の実行を開始する、暗号化処理方法。
【００５９】
（付記８）
付記６又は付記７に記載の暗号化処理方法であって、
前記外部クロック信号が異常であることを検出し、
前記外部クロック信号が異常であることが検出された場合、前記レジスタに格納されている情報を消去する、暗号化処理方法。
【産業上の利用可能性】
【００６０】
本発明は、ラウンド処理を実行することにより情報を暗号化する暗号化処理回路等に適用可能である。
【符号の説明】
【００６１】
１      暗号化処理回路
１０    ラウンド処理回路
１１    レジスタ
１２    変換処理回路
２０    鍵スケジュール処理回路
２１    拡大鍵生成回路
３０    位相同期回路
４０    異常検出回路
４１    作動増幅回路
１００  暗号化処理回路
１０１  位相同期回路
１０２  ラウンド処理回路
【図１】
2012169721.tif 000003
【図２】
2012169721.tif 000004
【図３】
2012169721.tif 000005
【図４】
2012169721.tif 000006