(57)【要約】      （修正有）【課題】処理性能に影響を与えることなく、大量のデータを安全かつ高速に暗号化できる暗号化装置を提供する。【解決手段】暗号化装置１は、外部から入力される第１共通鍵から少なくとも一つのサブ鍵を鍵スケジュールで生成する鍵スケジュール部１２と、サブ鍵を取得して第２共通鍵を復号する共通鍵復号部１４と、第１共通鍵と第２共通鍵とを比較する共通鍵比較部１６と、外部から入力される平文ブロックをサブ鍵を用いて暗号化して暗号文ブロックを生成するデータスクランブル部１７と、共通鍵比較部１６による比較結果に基づいて暗号文ブロックを出力するか否かを判定する出力判定部１８とを備える。【効果】データの暗号化処理と並列させて、入力される第１共通鍵とサブ鍵から復号した第２共通鍵を比較するため、暗号化処理性能に影響を与えることなく共通鍵やサブ鍵の異常に対するエラー処理が可能である。【選択図】図１
2019124713.tif 000002
【特許請求の範囲】
【請求項１】
第１共通鍵を保持する第１共通鍵保持手段と、
前記第１共通鍵保持手段に保持された前記第１共通鍵から少なくとも一つのサブ鍵を鍵スケジュールで生成するサブ鍵生成手段と、
前記サブ鍵生成手段によって生成される前記サブ鍵を保持するサブ鍵保持手段と、
前記サブ鍵保持手段に保持された前記サブ鍵を取得して第２共通鍵を復号する共通鍵復号手段と、
前記共通鍵復号手段によって復号される前記第２共通鍵を保持する第２共通鍵保持手段と、
前記第１共通鍵保持手段に保持された前記第１共通鍵と、前記第２共通鍵保持手段に保持された前記第２共通鍵とを比較する共通鍵比較手段と、
前記サブ鍵保持手段に保持された前記サブ鍵を用いて平文ブロックを暗号化して暗号文ブロックを生成する暗号化手段と、
共通鍵比較手段による前記第１共通鍵と前記第２共通鍵との比較結果と、前記暗号化手段によって生成された前記暗号文ブロックとが入力され、前記共通鍵比較手段による比較結果に基づいて前記暗号文ブロックを出力するか否かを判定する出力判定手段とを備える暗号化装置。
【請求項２】
前記出力判定手段は、
前記第１共通鍵と前記第２共通鍵とが同じ場合に前記暗号文ブロックを出力し、
前記第１共通鍵と前記第２共通鍵とが異なる場合に前記暗号文ブロックを破棄する請求項１に記載の暗号化装置。
【請求項３】
入力された共通鍵と、前記第１共通鍵保持手段に保持された前記第１共通鍵とを比較し、前記サブ鍵を生成するか否かを判定するサブ鍵判定手段を備え、
前記サブ鍵判定手段は、
入力された前記共通鍵と前記第１共通鍵とが異なる場合、入力された前記共通鍵を前記第１共通鍵として前記第１共通鍵保持手段に保持させ、前記第１共通鍵保持手段に新たに保持させた前記第１共通鍵から前記サブ鍵を生成することを前記サブ鍵生成手段に指示し、
前記入力された共通鍵と前記第１共通鍵とが等しい場合、前記サブ鍵を生成することを前記サブ鍵生成手段に指示しない請求項１または２に記載の暗号化装置。
【請求項４】
暗号化指示に応じて疑似乱数を生成させる疑似乱数発生手段と、
前記疑似乱数発生手段によって生成された前記疑似乱数を用いて共通鍵を生成し、生成した前記共通鍵を前記第１共通鍵として前記第１共通鍵保持手段に保持させる共通鍵生成手段とを備える請求項１または２に記載の暗号化装置。
【請求項５】
前記共通鍵比較手段による前記第１共通鍵と前記第２共通鍵との比較結果に基づいて、前記サブ鍵に異常があると疑われるか否かを判定する再試行判定手段を備え、
前記再試行判定手段は、
前記サブ鍵に異常があると疑われる場合、前記サブ鍵を再生成することを前記サブ鍵生成手段に指示し、
前記サブ鍵に異常があると疑われない場合、前記共通鍵比較手段による比較結果を前記出力判定手段に出力する請求項１乃至４のいずれか一項に記載の暗号化装置。
【請求項６】
前記暗号化手段が二重化され、
二重化された前記暗号化手段によって同一の前記平文ブロックから生成される少なくとも二つの前記暗号文ブロックが入力され、入力された少なくとも二つの前記暗号文ブロックを比較する暗号ブロック比較手段を備え、
前記暗号ブロック比較手段は、
入力された少なくとも二つの前記暗号文ブロックが異なる場合は異常があると判定して前記出力判定手段に前記暗号文ブロックを出力せず、
入力された少なくとも二つの前記暗号文ブロックが等しい場合は正常であると判定して前記出力判定手段に前記暗号文ブロックを出力する請求項１乃至５のいずれか一項に記載の暗号化装置。
【請求項７】
第１共通鍵を保持する第１共通鍵保持手段と、
前記第１共通鍵保持手段に保持された前記第１共通鍵から少なくとも一つのサブ鍵を鍵スケジュールで生成するサブ鍵生成手段と、
前記サブ鍵生成手段によって生成される前記サブ鍵を保持するサブ鍵保持手段と、
前記サブ鍵保持手段に保持された前記サブ鍵を取得して第２共通鍵を復号する共通鍵復号手段と、
前記共通鍵復号手段によって復号される前記第２共通鍵を保持する第２共通鍵保持手段と、
前記第１共通鍵保持手段に保持された前記第１共通鍵と、前記第２共通鍵保持手段に保持された前記第２共通鍵とを比較する共通鍵比較手段と、
前記サブ鍵保持手段に保持された前記サブ鍵を用いて暗号文ブロックから平文ブロックを復号する復号手段と、
共通鍵比較手段による前記第１共通鍵と前記第２共通鍵との比較結果と、前記復号手段によって復号された前記平文ブロックとが入力され、前記共通鍵比較手段による比較結果に基づいて前記平文ブロックを出力するか否かを判定する出力判定手段とを備える復号装置。
【請求項８】
第１共通鍵から少なくとも一つのサブ鍵を鍵スケジュールで生成し、生成された前記サブ鍵を用いて平文ブロックを暗号化して暗号文ブロックを生成するとともに、生成された前記サブ鍵を用いて第２共通鍵を復号して、前記第１共通鍵と前記第２共通鍵との比較結果に基づいて前記暗号文ブロックを出力するか否かを判定する暗号化装置と、
前記第１共通鍵から少なくとも一つのサブ鍵を鍵スケジュールで生成し、生成された前記サブ鍵を用いて前記暗号文ブロックから前記平文ブロックを復号するとともに、生成された前記サブ鍵を用いて前記第２共通鍵を復号して、前記第１共通鍵と前記第２共通鍵との比較結果に基づいて前記平文ブロックを出力するか否かを判定する復号装置とを備え、
前記暗号化装置は、
前記平文ブロックを暗号化した前記暗号文ブロックを前記復号装置に送信し、
前記復号装置は、
前記暗号化装置から受信した前記暗号文ブロックから前記平文ブロックを復号する回線暗号システム。
【請求項９】
第１共通鍵を第１共通鍵保持手段に保持し、
前記第１共通鍵保持手段に保持された前記第１共通鍵から少なくとも一つのサブ鍵を鍵スケジュールで生成し、
生成された前記サブ鍵をサブ鍵保持手段に保持し、
前記サブ鍵保持手段に保持された前記サブ鍵を用いて第２共通鍵を復号し、
復号された前記第２共通鍵を第２共通鍵保持手段に保持し、
前記第１共通鍵保持手段に保持された前記第１共通鍵と、前記第２共通鍵保持手段に保持された前記第２共通鍵とを比較し、
前記サブ鍵保持手段に保持された前記サブ鍵を用いて平文ブロックを暗号化して暗号文ブロックを生成し、
前記第１共通鍵と前記第２共通鍵との比較結果に基づいて前記暗号文ブロックを出力するか否かを判定する暗号化方法。
【請求項１０】
第１共通鍵を第１共通鍵保持手段に保持する処理と、
前記第１共通鍵保持手段に保持された前記第１共通鍵から少なくとも一つのサブ鍵を鍵スケジュールで生成する処理と、
生成された前記サブ鍵をサブ鍵保持手段に保持する処理と、
前記サブ鍵保持手段に保持された前記サブ鍵を用いて第２共通鍵を復号する処理と、
復号された前記第２共通鍵を第２共通鍵保持手段に保持する処理と、
前記第１共通鍵保持手段に保持された前記第１共通鍵と、前記第２共通鍵保持手段に保持された前記第２共通鍵とを比較する処理と、
前記サブ鍵保持手段に保持された前記サブ鍵を用いて平文ブロックを暗号化して暗号文ブロックを生成する処理と、
前記第１共通鍵と前記第２共通鍵との比較結果に基づいて前記暗号文ブロックを出力するか否かを判定する処理とをコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号化装置、復号装置、回線暗号システム、暗号化方法およびプログラムに関する。特に、ブロック暗号を用いた暗号化装置、復号装置、回線暗号システム、暗号化方法およびプログラムに関する。
【背景技術】
【０００２】
情報化社会の発展に伴って、情報の漏洩や改ざんなどのリスクが高まっている。情報の安全性や信頼性を確保するためには情報セキュリティ技術が重要である。情報セキュリティ技術を構成する１つの要素として暗号化技術が挙げられる。暗号化技術は、ハードウェアやソフトウェアを問わず様々な製品で利用されている。
【０００３】
暗号化技術は、公開鍵暗号方式と共通鍵暗号方式という２つの方式に大別される。公開鍵暗号方式では、誰でも取得できる公開鍵と、受信側のみが保持する秘密鍵との２種類の鍵が使用される。公開鍵暗号方式は、鍵の受け渡しが容易であることが特徴である。一方、共通鍵暗号方式は、共通鍵と呼ばれる同一の鍵が使用される。共通鍵暗号方式は、仕組みがシンプルであるために処理が速いのが特徴である。
【０００４】
共通鍵暗号方式を暗号アルゴリズムのタイプで分類すると、ストリーム暗号とブロック暗号の２つに分けられる。ストリーム暗号は、１バイトなどの細かい単位で処理を行う暗号アルゴリズムである。一方、ブロック暗号は、暗号化処理の単位をブロックと呼ばれる一定長のまとまりに分けて処理を行う暗号アルゴリズムである。ブロック暗号は、ラウンドと呼ばれる繰り返し処理を行う構造を有する。ブロック暗号では、鍵スケジュール部が各ラウンドで使用するサブ鍵を生成し、データスクランブル部が各サブ鍵を使用して平文を暗号文に変換する。ブロック暗号は、大量のデータを暗号化するのに適している。
【０００５】
特許文献１には、共通鍵ブロック暗号処理を実行する暗号処理装置について開示されている。特許文献１の装置は、ラウンド関数を複数ラウンド繰り返すデータ変換処理を行なう暗号処理部と、ラウンド関数の実行に適用するラウンド鍵を生成する鍵スケジュール部とを有する。鍵スケジュール部は、暗号処理部で利用するラウンド関数を含む暗号化関数に秘密鍵を入力して中間鍵を生成する中間鍵生成部と、中間鍵生成部の生成する中間鍵を入力してラウンド鍵を生成する中間鍵拡大部とを有する。
【０００６】
ブロック暗号の手法の一つとして、大量のデータを高速に暗号化するためにサブ鍵の生成回数を限定する手法がある。例えば、鍵スケジュール部の処理を最初のブロックでのみ行い、鍵スケジュール部が生成したサブ鍵をレジスタやメモリなどの記憶部に格納させる。２回目以降の暗号ブロックでは、記憶部に格納されたサブ鍵を使用して平文の暗号化を行う。この手法を用いる場合は、安全に暗号化処理を行うために、共通鍵だけではなくサブ鍵を管理する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００８−０５８８３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
一般的な共通鍵暗号方式のブロック暗号の暗号化処理では、共通鍵を記憶部に格納し、暗号化処理を行うたびに鍵スケジュールを実行するため、大量のデータを暗号化処理する場合に時間が掛かるという問題点があった。
【０００９】
また、特許文献１の装置は、平文を暗号化する際に、秘密鍵や中間鍵、ラウンド鍵などの複数の種類の鍵を用いることによって鍵解析の困難性を高めることができる。しかしながら、特許文献１の装置には、鍵の管理が複雑になるという問題点があった。
【００１０】
また、サブ鍵の生成回数を限定する手法によれば、大量のデータを高速に暗号化できる。しかしながら、この手法の場合、共通鍵に加えて、鍵スケジュールにより生成したサブ鍵も記憶部に格納するため、鍵の漏洩や改ざんなどのリスクが高まるという問題点があった。
【００１１】
本発明の目的は、上述した課題を解決するために、処理性能に影響を与えることなく、大量のデータを安全かつ高速に暗号化できる暗号化装置を提供することにある。
【課題を解決するための手段】
【００１２】
本発明の一態様の暗号化装置は、第１共通鍵を保持する第１共通鍵保持部と、第１共通鍵保持部に保持された第１共通鍵から少なくとも一つのサブ鍵を鍵スケジュールで生成するサブ鍵生成部と、サブ鍵生成部によって生成されるサブ鍵を保持するサブ鍵保持部と、サブ鍵保持部に保持されたサブ鍵を取得して第２共通鍵を復号する共通鍵復号部と、共通鍵復号部によって復号される第２共通鍵を保持する第２共通鍵保持部と、第１共通鍵保持部に保持された第１共通鍵と、第２共通鍵保持部に保持された第２共通鍵とを比較する共通鍵比較部と、サブ鍵保持部に保持されたサブ鍵を用いて平文ブロックを暗号化して暗号文ブロックを生成する暗号化部と、共通鍵比較部による第１共通鍵と第２共通鍵との比較結果と、暗号化部によって生成された暗号文ブロックとが入力され、共通鍵比較部による比較結果に基づいて暗号文ブロックを出力するか否かを判定する出力判定部とを備える。
【００１３】
本発明の一態様の復号装置は、第１共通鍵を保持する第１共通鍵保持部と、第１共通鍵保持部に保持された第１共通鍵から少なくとも一つのサブ鍵を鍵スケジュールで生成するサブ鍵生成部と、サブ鍵生成部によって生成されるサブ鍵を保持するサブ鍵保持部と、サブ鍵保持部に保持されたサブ鍵を取得して第２共通鍵を復号する共通鍵復号部と、共通鍵復号部によって復号される第２共通鍵を保持する第２共通鍵保持部と、第１共通鍵保持部に保持された第１共通鍵と、第２共通鍵保持部に保持された第２共通鍵とを比較する共通鍵比較部と、サブ鍵保持部に保持されたサブ鍵を用いて暗号文ブロックから平文ブロックを復号する復号部と、共通鍵比較部による第１共通鍵と第２共通鍵との比較結果と、復号部によって復号された平文ブロックとが入力され、共通鍵比較部による比較結果に基づいて平文ブロックを出力するか否かを判定する出力判定部とを備える。
【００１４】
本発明の一態様の回線暗号システムは、第１共通鍵から少なくとも一つのサブ鍵を鍵スケジュールで生成し、生成されたサブ鍵を用いて平文ブロックを暗号化して暗号文ブロックを生成するとともに、生成されたサブ鍵を用いて第２共通鍵を復号して、第１共通鍵と第２共通鍵との比較結果に基づいて暗号文ブロックを出力するか否かを判定する暗号化装置と、第１共通鍵から少なくとも一つのサブ鍵を鍵スケジュールで生成し、生成されたサブ鍵を用いて暗号文ブロックから平文ブロックを復号するとともに、生成されたサブ鍵を用いて第２共通鍵を復号して、第１共通鍵と第２共通鍵との比較結果に基づいて平文ブロックを出力するか否かを判定する復号装置とを備え、暗号化装置は、平文ブロックを暗号化した暗号文ブロックを復号装置に送信し、復号装置は、暗号化装置から受信した暗号文ブロックから平文ブロックを復号する。
【００１５】
本発明の一態様の暗号化方法においては、第１共通鍵を第１共通鍵保持部に保持し、第１共通鍵保持部に保持された第１共通鍵から少なくとも一つのサブ鍵を鍵スケジュールで生成し、生成されたサブ鍵をサブ鍵保持部に保持し、サブ鍵保持部に保持されたサブ鍵を用いて第２共通鍵を復号し、復号された第２共通鍵を第２共通鍵保持部に保持し、第１共通鍵保持部に保持された第１共通鍵と、第２共通鍵保持部に保持された第２共通鍵とを比較し、サブ鍵保持部に保持されたサブ鍵を用いて平文ブロックを暗号化して暗号文ブロックを生成し、第１共通鍵と第２共通鍵との比較結果に基づいて暗号文ブロックを出力するか否かを判定する。
【００１６】
本発明の一態様のプログラムは、第１共通鍵を第１共通鍵保持部に保持する処理と、第１共通鍵保持部に保持された第１共通鍵から少なくとも一つのサブ鍵を鍵スケジュールで生成する処理と、生成されたサブ鍵をサブ鍵保持部に保持する処理と、サブ鍵保持部に保持されたサブ鍵を用いて第２共通鍵を復号する処理と、復号された第２共通鍵を第２共通鍵保持部に保持する処理と、第１共通鍵保持部に保持された第１共通鍵と、第２共通鍵保持部に保持された第２共通鍵とを比較する処理と、サブ鍵保持部に保持されたサブ鍵を用いて平文ブロックを暗号化して暗号文ブロックを生成する処理と、第１共通鍵と第２共通鍵との比較結果に基づいて暗号文ブロックを出力するか否かを判定する処理とをコンピュータに実行させるプログラム。
【発明の効果】
【００１７】
本発明によれば、処理性能に影響を与えることなく、大量のデータを安全かつ高速に暗号化できる暗号化装置を提供することが可能になる。
【図面の簡単な説明】
【００１８】
【図１】本発明の第１の実施形態に係る暗号化装置の構成の一例を示すブロック図である。
【図２】本発明の第１の実施形態に係る暗号化装置の動作例について説明するためのフローチャートである。
【図３】本発明の第２の実施形態に係る暗号化装置の構成の一例を示すブロック図である。
【図４】本発明の第２の実施形態に係る暗号化装置の動作例について説明するためのフローチャートである。
【図５】本発明の第３の実施形態に係る暗号化装置の構成の一例を示すブロック図である。
【図６】本発明の第３の実施形態に係る暗号化装置の動作例について説明するためのフローチャートである。
【図７】本発明の第４の実施形態に係る暗号化装置の構成の一例を示すブロック図である。
【図８】本発明の第４の実施形態に係る暗号化装置の動作例について説明するためのフローチャートである。
【図９】本発明の第５の実施形態に係る暗号化装置の構成の一例を示すブロック図である。
【図１０】本発明の第５の実施形態に係る暗号化装置の動作例について説明するためのフローチャートである。
【図１１】本発明の第６の実施形態に係る復号装置の構成の一例を示すブロック図である。
【図１２】本発明の第７の実施形態に係る回線暗号システムの構成の一例を示すブロック図である。
【図１３】本発明の各実施形態に係る暗号化装置および復号装置のハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【００１９】
以下に、本発明を実施するための形態について図面を用いて説明する。ただし、以下に述べる実施形態には、本発明を実施するために技術的に好ましい限定がされているが、発明の範囲を以下に限定するものではない。また、以下の実施形態の説明に用いる全図においては、特に理由がない限り、同様箇所には同一符号を付す。また、以下の実施形態において、同様の構成・動作に関しては繰り返しの説明を省略する場合がある。また、図面中の矢印の向きは、一例を示すものであり、信号の向きを限定するものではない。
【００２０】
（第１の実施形態）
まず、本発明の第１の実施形態の暗号化装置について図面を参照しながら説明する。本実施形態の暗号化装置には、暗号化対象データ（対象データとも呼ぶ）を構成する少なくとも一つの平文ブロックと、平文ブロックを暗号化するための共通鍵とが入力される。本実施形態の暗号化装置は、共通鍵からサブ鍵を生成し、生成したサブ鍵を用いて平文ブロックを暗号化することによって暗号文ブロックを生成する。なお、本実施形態の暗号化装置は、予め記憶された共通鍵を用いて平文ブロックを暗号化ブロックに暗号化するように構成してもよい。
【００２１】
（構成）
図１は、本実施形態の暗号化装置１の構成の一例を示すブロック図である。図１のように、暗号化装置１は、第１共通鍵保持部１１、鍵スケジュール部１２、サブ鍵保持部１３、共通鍵復号部１４、第２共通鍵保持部１５、共通鍵比較部１６、データスクランブル部１７、出力判定部１８を備える。
【００２２】
第１共通鍵保持部１１（第１共通鍵保持手段とも呼ぶ）は、入力された共通鍵（以下、第１共通鍵とも呼ぶ）を保持する。例えば、第１共通鍵保持部１１は、レジスタやメモリによって実現される。
【００２３】
鍵スケジュール部１２（サブ鍵生成手段とも呼ぶ）は、第１共通鍵保持部１１に保持された第１共通鍵を取得する。鍵スケジュール部１２は、取得した第１共通鍵からサブ鍵を生成する。例えば、鍵スケジュール部１２は、全てのラウンドで用いられるＮ個のサブ鍵を第１共通鍵から生成する（Ｎは自然数）。鍵スケジュール部１２は、生成したサブ鍵をサブ鍵保持部１３に記憶させる。
【００２４】
例えば、鍵スケジュール部１２は、ＡＥＳ（Advanced Encryption Standard）などの共通鍵方式のブロック暗号アルゴリズムを用いて鍵スケジュールを行う。なお、鍵スケジュール部１２は、ＤＥＳ（Data Encryption Standard）やトリプルＤＥＳなどのブロック暗号アルゴリズムを用いて鍵スケジュールを行ってもよい。また、鍵スケジュール部１２は、ＭＩＳＴＹ１（Mitsubishi Improved Security Technology）やＣａｍｅｌｉａなどのブロック暗号アルゴリズムを用いて鍵スケジュールを行ってもよい。ただし、鍵スケジュール部１２による鍵スケジュールは、ここで挙げた手法に限定されない。
【００２５】
サブ鍵保持部１３（サブ鍵保持手段とも呼ぶ）は、鍵スケジュール部１２によって生成されたサブ鍵が記憶される。例えば、サブ鍵保持部１３は、レジスタやメモリによって実現される。
【００２６】
共通鍵復号部１４（共通鍵復号手段とも呼ぶ）は、サブ鍵保持部１３に記憶されたサブ鍵から共通鍵（以下、第２共通鍵とも呼ぶ）を復号する。例えば、共通鍵復号部１４は、サブ鍵保持部１３に格納されたＮ個のサブ鍵から第２共通鍵を復号する（Ｎは自然数）。共通鍵復号部１４は、復号された第２共通鍵を第２共通鍵保持部１５に保持させる。
【００２７】
第２共通鍵保持部１５（第２共通鍵保持手段とも呼ぶ）は、共通鍵復号部１４によって復号された第２共通鍵を保持する。例えば、第２共通鍵保持部１５は、レジスタやメモリによって実現される。
【００２８】
共通鍵比較部１６（共通鍵比較手段とも呼ぶ）は、第１共通鍵保持部１１に保持された第１共通鍵と、第２共通鍵保持部１５に保持された第２共通鍵とを比較する。共通鍵比較部１６は、第１共通鍵と第２共通鍵の比較結果を出力判定部１８に出力する。
【００２９】
データスクランブル部１７（暗号化手段とも呼ぶ）には、暗号化対象データ（対象データとも呼ぶ）を構成する少なくとも一つの平文ブロックが入力され、サブ鍵保持部１３からサブ鍵が入力される。データスクランブル部１７は、サブ鍵を用いて、入力された平文ブロックを暗号化することによって暗号文ブロックを生成する。データスクランブル部１７は、生成した暗号文ブロックを出力判定部１８に出力する。
【００３０】
出力判定部１８（出力判定手段とも呼ぶ）には、データスクランブル部１７から暗号文ブロックが入力され、共通鍵比較部１６から第１共通鍵と第２共通鍵との比較結果が入力される。出力判定部１８は、共通鍵比較部１６による比較結果に基づいて、暗号文ブロックを出力するか否かを判定する。出力判定部１８は、第１共通鍵と第２共通鍵とが同じ場合、暗号文ブロックを出力すると判定する。一方、出力判定部１８は、第１共通鍵と第２共通鍵とが異なる場合、サブ鍵に故障や改ざんなどの異常（エラーとも呼ぶ）を検出し、暗号文ブロックを出力せずに破棄する。
【００３１】
以上が、暗号化装置１の構成についての説明である。次に、暗号化装置１の動作について図面を参照しながら説明する。
【００３２】
（動作）
図２は、暗号化装置１の動作の一例について説明するためのフローチャートである。すなわち、図２は、暗号化装置１によって実行される暗号化処理の手順を示すフローチャートである。なお、以下の図２のフローチャートに沿った説明においては、暗号化装置１を動作の主体として説明する。
【００３３】
図２において、まず、暗号化装置１は、共通鍵が入力されると、その共通鍵（第１共通鍵とも呼ぶ）を第１共通鍵保持部１１に格納する（ステップＳ１０１）。
【００３４】
次に、暗号化装置１は、共通鍵方式のブロック暗号アルゴリズムにより鍵スケジュールを行うことによって、第１共通鍵保持部１１に格納された第１共通鍵からサブ鍵を生成する（ステップＳ１０２）。
【００３５】
次に、暗号化装置１は、生成されたサブ鍵をサブ鍵保持部１３に格納する（ステップＳ１０３）。
【００３６】
暗号化装置１は、サブ鍵保持部１３に格納されたサブ鍵を用いて、入力された平文ブロックを共通鍵方式のブロック暗号アルゴリズムにより暗号化する（ステップＳ１０４）。
【００３７】
また、暗号化装置１は、ステップＳ１０４の暗号化処理と並行して、サブ鍵保持部１３に格納されたサブ鍵を用いて共通鍵復号処理を実行して共通鍵（第２共通鍵とも呼ぶ）を復号する（ステップＳ１０５）。
【００３８】
次に、暗号化装置１は、復号された第２共通鍵を第２共通鍵保持部１５に格納する（ステップＳ１０６）。
【００３９】
次に、暗号化装置１は、第１共通鍵保持部１１に格納された第１共通鍵と、第２共通鍵保持部１５に格納された第２共通鍵とを比較する（ステップＳ１０７）。
【００４０】
そして、暗号化装置１は、第１共通鍵と第２共通鍵とが一致した場合（ステップＳ１０８でＹｅｓ）、暗号文ブロックを出力する（ステップＳ１０９）。
【００４１】
一方、暗号化装置１は、第１共通鍵と第２共通鍵とが一致しなかった場合（ステップＳ１０８でＮｏ）、サブ鍵に異常を検出してエラー処理を行い、暗号文ブロックを破棄する（ステップＳ１１０）。
【００４２】
以上が、図２のフローチャートに沿った暗号化装置１の動作の一例についての説明である。
【００４３】
以上のように、本実施形態の暗号化装置は、データの暗号化処理と並列させて、入力された共通鍵（第１共通鍵）と、サブ鍵から復号した共通鍵（第２共通鍵）とを比較し、共通鍵やサブ鍵の異常の有無を判定する。また、本実施形態の暗号化装置は、共通鍵やサブ鍵の異常の有無に関する判定結果に基づいて暗号文ブロックを出力するか否かを判断する。本実施形態の暗号化装置は、共通鍵やサブ鍵に異常があった場合、エラー処理を行うことによって不正な暗号文ブロックを出力しない。
【００４４】
すなわち、本実施形態の暗号化装置によれば、処理性能に影響を与えることなく、大量のデータを安全かつ高速に暗号化できる。
【００４５】
（第２の実施形態）
次に、本発明の第２の実施形態に係る暗号化装置について図面を参照しながら説明する。本実施形態の暗号化装置は、入力された共通鍵に対応するサブ鍵の有無に基づいてサブ鍵を生成するか否かを判定する点で、第１の実施形態とは異なる。なお、以下の説明においては、第１の実施形態と同様の構成については同じ符号を付し、詳細な説明を省略する場合がある。
【００４６】
図３は、本実施形態の暗号化装置２の構成の一例を示すブロック図である。図３のように、暗号化装置２は、第１の実施形態の暗号化装置１にサブ鍵生成判定部２１を加えた構成を有する。
【００４７】
サブ鍵生成判定部２１（サブ鍵生成判定手段とも呼ぶ）には共通鍵が入力される。サブ鍵生成判定部２１は、入力された共通鍵が、第１共通鍵保持部１１に保持されている第１共通鍵と等しいか否かを判定する。言い換えると、サブ鍵生成判定部２１は、入力された共通鍵が現状の共通鍵と変わっているか否かを判定する。
【００４８】
サブ鍵生成判定部２１は、入力された共通鍵が変わっていない場合、鍵スケジュール部１２に鍵スケジュールを実行させない。一方、サブ鍵生成判定部２１は、入力された共通鍵が変わっている場合、新たな共通鍵を第１共通鍵として第１共通鍵保持部１１に保持させ、鍵スケジュール部１２に鍵スケジュールを実行させる。
【００４９】
鍵スケジュール部１２は、サブ鍵生成判定部２１の判定結果に応じて鍵スケジュールを実行する。すなわち、鍵スケジュール部１２は、サブ鍵生成判定部２１によって共通鍵が変わっていないと判定された場合、鍵スケジュールを実行しない。一方、鍵スケジュール部１２は、サブ鍵生成判定部２１によって共通鍵が変わっていると判定された場合、第１共通鍵保持部１１に保持された新たな共通鍵について鍵スケジュールを実行する。
【００５０】
その他の構成については、第１の実施形態の暗号化装置１と同様であるため、詳細な説明を省略する。
【００５１】
以上が、暗号化装置２の構成の一例についての説明である。次に、暗号化装置２の動作の一例についての図面を参照しながら説明する。
【００５２】
（動作）
図４は、暗号化装置２の動作の一例について説明するためのフローチャートである。すなわち、図４は、暗号化装置２によって実行される暗号化処理の手順を示すフローチャートである。なお、以下の図４のフローチャートに沿った説明においては、暗号化装置２を動作の主体として説明する。
【００５３】
図４において、まず、暗号化装置２は、共通鍵が入力されると、その共通鍵のサブ鍵が生成済みであるか否かを判定する（ステップＳ２０１）。
【００５４】
サブ鍵が生成済みの場合（ステップＳ２０１でＹｅｓ）、ステップＳ２０５およぶステップＳ２０６に進む。一方、サブ鍵が生成済みではない場合（ステップＳ２０１でＮｏ）、暗号化装置２は、入力された共通鍵を第１共通鍵として第１共通鍵保持部１１に格納する（ステップＳ２０２）。
【００５５】
次に、暗号化装置２は、共通鍵方式のブロック暗号アルゴリズムにより鍵スケジュールを行うことによって、第１共通鍵保持部１１に格納された第１共通鍵からサブ鍵を生成する（ステップＳ２０３）。
【００５６】
次に、暗号化装置２は、生成されたサブ鍵をサブ鍵保持部１３に格納する（ステップＳ２０４）。
【００５７】
暗号化装置２は、サブ鍵保持部１３に格納されたサブ鍵を用いて、入力された平文ブロックを共通鍵方式のブロック暗号アルゴリズムにより暗号化する（ステップＳ２０５）。
【００５８】
また、暗号化装置２は、ステップＳ２０５の暗号化処理と並行して、サブ鍵保持部１３に格納されたサブ鍵を用いて共通鍵復号処理を実行して共通鍵（第２共通鍵とも呼ぶ）を復号する（ステップＳ２０６）。
【００５９】
次に、暗号化装置２は、第２共通鍵保持部１５に第２共通鍵を格納する（ステップＳ２０７）。
【００６０】
次に、暗号化装置２は、第１共通鍵保持部１１に格納された第１共通鍵と、第２共通鍵保持部１５に格納された第２共通鍵とを比較する（ステップＳ２０８）。
【００６１】
そして、暗号化装置２は、第１共通鍵と第２共通鍵とが一致した場合（ステップＳ２０９でＹｅｓ）、暗号文ブロックを出力する（ステップＳ２１０）。
【００６２】
一方、暗号化装置２は、第１共通鍵と第２共通鍵とが一致しなかった場合（ステップＳ２０９でＮｏ）、サブ鍵に異常を検出してエラー処理を行い、暗号文ブロックを破棄する（ステップＳ２１１）。
【００６３】
以上が、図４のフローチャートに沿った暗号化装置２の動作の一例についての説明である。
【００６４】
以上のように、本実施形態の暗号化装置は、入力された共通鍵からサブ鍵が生成済みであった場合、生成済みのサブ鍵を用いて暗号化処理を実行する。そのため、本実施形態の暗号化装置によれば、共通鍵が変わらない限り、鍵スケジュール処理を省略できる。
【００６５】
（第３の実施形態）
次に、本発明の第３の実施形態に係る暗号化装置について図面を参照しながら説明する。本実施形態の暗号化装置は、共通鍵を入力するのではなく、暗号化指示に応じて共通鍵を生成する点で、第１の実施形態とは異なる。なお、以下の説明においては、第１の実施形態と同様の構成については同じ符号を付し、詳細な説明を省略する場合がある。
【００６６】
図５は、本実施形態の暗号化装置３の構成の一例を示すブロック図である。図５のように、暗号化装置３は、第１の実施形態の暗号化装置１に疑似乱数生成部３１および共通鍵生成部３２を加えた構成を有する。
【００６７】
疑似乱数生成部３１（疑似乱数生成手段とも呼ぶ）には、暗号化指示が入力される。疑似乱数生成部３１は、暗号化指示に応じて疑似乱数を生成する。疑似乱数生成部３１は、生成した疑似乱数を共通鍵生成部３２に出力する。なお、平文ブロックが入力されたタイミングで、疑似乱数生成部３１によって疑似乱数が生成されるように構成してもよい。
【００６８】
共通鍵生成部３２（共通鍵生成手段とも呼ぶ）には、疑似乱数生成部３１によって生成された疑似乱数が入力される。共通鍵生成部３２は、入力された疑似乱数を用いて共通鍵を生成する。共通鍵生成部３２は、生成した共通鍵を第１共通鍵として第１共通鍵保持部１１に格納する。
【００６９】
その他の構成については、第１の実施形態の暗号化装置１と同様であるため、詳細な説明を省略する。
【００７０】
以上が、暗号化装置３の構成の一例についての説明である。次に、暗号化装置３の動作の一例についての図面を参照しながら説明する。
【００７１】
（動作）
図６は、暗号化装置３の動作の一例について説明するためのフローチャートである。すなわち、図６は、暗号化装置３によって実行される暗号化処理の手順を示すフローチャートである。なお、以下の図６のフローチャートに沿った説明においては、暗号化装置３を動作の主体として説明する。
【００７２】
図６において、まず、暗号化装置３は、暗号化指示が入力されると、疑似乱数を生成する（ステップＳ３０１）。
【００７３】
次に、暗号化装置３は、生成した疑似乱数を用いて共通鍵を生成する（ステップＳ３０２）。
【００７４】
次に、暗号化装置３は、生成した共通鍵（第１共通鍵とも呼ぶ）を第１共通鍵保持部１１に格納する（ステップＳ３０３）。
【００７５】
次に、暗号化装置３は、共通鍵方式のブロック暗号アルゴリズムにより鍵スケジュールを行うことによって、第１共通鍵保持部１１に格納された第１共通鍵からサブ鍵を生成する（ステップＳ３０４）。
【００７６】
次に、暗号化装置３は、生成されたサブ鍵をサブ鍵保持部１３に格納する（ステップＳ３０５）。
【００７７】
暗号化装置３は、サブ鍵保持部１３に格納されたサブ鍵を用いて、入力された平文ブロックを共通鍵方式のブロック暗号アルゴリズムにより暗号化する（ステップＳ３０６）。
【００７８】
また、暗号化装置３は、ステップＳ３０６の暗号化処理と並行して、サブ鍵保持部１３に格納されたサブ鍵を用いて共通鍵復号処理を実行して共通鍵（第２共通鍵とも呼ぶ）を復号する（ステップＳ３０７）。
【００７９】
次に、暗号化装置３は、第２共通鍵保持部１５に第２共通鍵を格納する（ステップＳ３０８）。
【００８０】
次に、暗号化装置３は、第１共通鍵保持部１１に格納された第１共通鍵と、第２共通鍵保持部１５に格納された第２共通鍵とを比較する（ステップＳ３０９）。
【００８１】
そして、暗号化装置３は、第１共通鍵と第２共通鍵とが一致した場合（ステップＳ３１０でＹｅｓ）、暗号文ブロックを出力する（ステップＳ３１１）。
【００８２】
一方、暗号化装置３は、第１共通鍵と第２共通鍵とが一致しなかった場合（ステップＳ３１０でＮｏ）、サブ鍵に異常を検出してエラー処理を行い、暗号文ブロックを破棄する（ステップＳ３１２）。
【００８３】
以上が、図６のフローチャートに沿った暗号化装置３の動作の一例についての説明である。
【００８４】
以上のように、本実施形態の暗号化装置は、暗号化指示に応じて共通鍵を生成する。そのため、本実施形態の暗号化装置によれば、外部から取得した共通鍵を使用しないため、漏洩や改ざんの可能性のある共通鍵を用いて暗号化することがなくなり、暗号文ブロックの安全性や信頼性が向上する。
【００８５】
（第４の実施形態）
次に、本発明の第４の実施形態に係る暗号化装置について図面を参照しながら説明する。本実施形態の暗号化装置は、共通鍵の比較結果に基づいてサブ鍵に異常が疑われた場合、第１共通鍵からサブ鍵を再作成して再暗号化する点で、第１の実施形態とは異なる。なお、以下の説明においては、第１の実施形態と同様の構成については同じ符号を付し、詳細な説明を省略する場合がある。
【００８６】
図７は、本実施形態の暗号化装置４の構成の一例を示すブロック図である。図７のように、暗号化装置４は、第１の実施形態の暗号化装置１にリトライ判定部４１を加えた構成を有する。
【００８７】
リトライ判定部４１（再試行判定手段）には、共通鍵比較部１６による第１共通鍵と第２共通鍵との比較結果が入力される。リトライ判定部４１は、第１共通鍵と第２共通鍵との比較結果に基づいてサブ鍵に異常があると疑われる場合、鍵スケジュール部１２に対して、第１共通鍵からサブ鍵を再作成する指示を出す。
【００８８】
鍵スケジュール部１２は、リトライ判定部４１の指示に応じて、第１共通鍵保持部１１に格納された第１共通鍵を用いて鍵スケジュールを実行して、サブ鍵を再作成する。鍵スケジュール部１２は、再作成したサブ鍵をサブ鍵保持部１３に記憶させる。
【００８９】
その他の構成については、第１の実施形態の暗号化装置１と同様であるため、詳細な説明を省略する。
【００９０】
以上が、暗号化装置４の構成の一例についての説明である。次に、暗号化装置４の動作の一例についての図面を参照しながら説明する。
【００９１】
（動作）
図８は、暗号化装置４の動作の一例について説明するためのフローチャートである。すなわち、図８は、暗号化装置４によって実行される暗号化処理の手順を示すフローチャートである。なお、以下の図８のフローチャートに沿った説明においては、暗号化装置４を動作の主体として説明する。
【００９２】
図８において、まず、暗号化装置４は、共通鍵が入力されると、共通鍵（第１共通鍵とも呼ぶ）を第１共通鍵保持部１１に格納する（ステップＳ４０１）。
【００９３】
次に、暗号化装置４は、共通鍵方式のブロック暗号アルゴリズムにより鍵スケジュールを行うことによって、第１共通鍵保持部１１に格納された第１共通鍵からサブ鍵を生成する（ステップＳ４０２）。
【００９４】
次に、暗号化装置４は、生成されたサブ鍵をサブ鍵保持部１３に格納する（ステップＳ４０３）。
【００９５】
暗号化装置４は、サブ鍵保持部１３に格納されたサブ鍵を用いて、入力された平文ブロックを共通鍵方式のブロック暗号アルゴリズムにより暗号化する（ステップＳ４０４）。
【００９６】
また、暗号化装置４は、ステップＳ４０４の暗号化処理と並行して、サブ鍵保持部１３に格納されたサブ鍵を用いて共通鍵復号処理を実行して共通鍵（第２共通鍵とも呼ぶ）を復号する（ステップＳ４０５）。
【００９７】
次に、暗号化装置４は、復号された第２共通鍵を第２共通鍵保持部１５に格納する（ステップＳ４０６）。
【００９８】
次に、暗号化装置４は、第１共通鍵保持部１１に格納された第１共通鍵と、第２共通鍵保持部１５に格納された第２共通鍵とを比較する（ステップＳ４０７）。
【００９９】
そして、暗号化装置４は、第１共通鍵と第２共通鍵とが一致した場合（ステップＳ４０８でＹｅｓ）、サブ鍵に異常がないと判定し、暗号文ブロックを出力する（ステップＳ４０９）。
【０１００】
一方、暗号化装置４は、第１共通鍵と第２共通鍵とが一致しなかった場合（ステップＳ４０８でＮｏ）、サブ鍵に異常があると判定する。このとき、ステップＳ４０２に戻り、暗号化装置４は、鍵スケジュール処理を再実行することによって、第１共通鍵保持部１１に格納された第１共通鍵から新しいサブ鍵を生成する。
【０１０１】
以上が、図８のフローチャートに沿った暗号化装置４の動作の一例についての説明である。
【０１０２】
以上のように、本実施形態の暗号化装置は、サブ鍵に漏洩や改ざんの疑いがある場合、第１共通鍵保持部に格納された第１共通鍵を用いてサブ鍵を再作成する。そして、本実施形態の暗号化装置は、再作成されたサブ鍵を用いて暗号化を実行する。そのため、本実施形態の暗号化装置によれば、システムの運用を停止することなく、リカバリーすることが可能になる。
【０１０３】
（第５の実施形態）
次に、本発明の第５の実施形態に係る暗号化装置について図面を参照しながら説明する。本実施形態の暗号化装置は、データスクランブル部を二重化し、データの異常についても検出する点で、第１の実施形態とは異なる。なお、以下の説明においては、第１の実施形態と同様の構成については同じ符号を付し、詳細な説明を省略する場合がある。
【０１０４】
（構成）
図９は、本実施形態の暗号化装置５の構成の一例を示すブロック図である。図９のように、暗号化装置５は、第１の実施形態の暗号化装置１において、データスクランブル部１７を第１データスクランブル部５１と第２データスクランブル部５２とに二重化し、暗号ブロック比較部５３を加えた構成を有する。
【０１０５】
第１データスクランブル部５１には、サブ鍵保持部１３からサブ鍵が入力されるとともに、暗号化対象データを構成する平文ブロックが入力される。第１データスクランブル部５１は、サブ鍵を用いて、入力された平文ブロックを暗号化する。第１データスクランブル部５１は、暗号化されたデータである暗号文ブロック（第１暗号文ブロックとも呼ぶ）を暗号ブロック比較部５３に出力する。
【０１０６】
第２データスクランブル部５２には、サブ鍵保持部１３からサブ鍵が入力されるとともに、暗号化対象データを構成する平文ブロックが入力される。第２データスクランブル部５２は、サブ鍵を用いて、入力された平文ブロックを暗号化することによって暗号文ブロックを生成する。第２データスクランブル部５２は、生成した暗号文ブロック（第２暗号文ブロックとも呼ぶ）を暗号ブロック比較部５３に出力する。
【０１０７】
暗号ブロック比較部５３（暗号ブロック比較手段とも呼ぶ）には、第１データスクランブル部５１から第１暗号文ブロックが入力され、第２データスクランブル部５２から第２暗号文ブロックが入力される。暗号ブロック比較部５３は、入力された第１暗号文ブロックと第２暗号文ブロックとを比較する。なお、暗号ブロック比較部５３は、暗号文ブロックの比較に加えて、認証付き暗号利用モードを適用してもよい。
【０１０８】
暗号ブロック比較部５３は、第１暗号文ブロックと第２暗号文ブロックとが異なる場合、第１暗号文ブロックおよび第２暗号文ブロックの少なくともいずれかに異常があると判定する。すなわち、暗号ブロック比較部５３は、第１暗号文ブロックと第２暗号文ブロックとが異なる場合、暗号文ブロックまたはその暗号文ブロックに対応する平文ブロックに異常があると判定する。暗号ブロック比較部５３は、暗号文ブロックまたは平文ブロックに異常があると判定すると、暗号文ブロックを出力せずに異常があることを出力判定部１８に通知する。
【０１０９】
一方、暗号ブロック比較部５３は、第１暗号文ブロックと第２暗号文ブロックとが同じ場合、第１暗号文ブロックおよび第２暗号文ブロックが正常であると判定する。すなわち、暗号ブロック比較部５３は、第１暗号文ブロックと第２暗号文ブロックとが同じ場合、暗号文ブロックが正常であると判定する。暗号ブロック比較部５３は、暗号文ブロックが正常であると判定すると、第１暗号文ブロックおよび第２暗号文ブロックのいずれかを暗号文ブロックとして出力判定部１８に出力する。
【０１１０】
出力判定部１８は、暗号ブロック比較部５３から異常があるとの通知を受けると、暗号文ブロックの出力を停止する。例えば、出力判定部１８は、異常があるとの通知を受けた際に、図示しない表示装置などに通知結果を表示させる指示を出すように構成してもよい。
【０１１１】
一方、出力判定部１８は、暗号ブロック比較部５３から暗号文ブロックを取得すると、取得した暗号文ブロックを出力する。
【０１１２】
その他の構成については、第１の実施形態の暗号化装置１と同様であるため、詳細な説明を省略する。
【０１１３】
以上が、暗号化装置５の構成の一例についての説明である。次に、暗号化装置５の動作の一例についての図面を参照しながら説明する。
【０１１４】
（動作）
図１０は、暗号化装置５の動作の一例について説明するためのフローチャートである。すなわち、図１０は、暗号化装置５によって実行される暗号化処理の手順を示すフローチャートである。なお、以下の図１０のフローチャートに沿った説明においては、暗号化装置５を動作の主体として説明する。
【０１１５】
図１０において、まず、暗号化装置５は、共通鍵が入力されると、共通鍵（第１共通鍵とも呼ぶ）を第１共通鍵保持部１１に格納する（ステップＳ５０１）。
【０１１６】
次に、暗号化装置５は、共通鍵方式のブロック暗号アルゴリズムにより鍵スケジュールを行うことによって、第１共通鍵保持部１１に格納された第１共通鍵からサブ鍵を生成する（ステップＳ５０２）。
【０１１７】
次に、暗号化装置５は、生成されたサブ鍵をサブ鍵保持部１３に格納する（ステップＳ５０３）。
【０１１８】
暗号化装置５は、サブ鍵保持部１３に格納されたサブ鍵を用いて、入力された平文ブロックを共通鍵方式のブロック暗号アルゴリズムにより二重に暗号化する（ステップＳ５０４）。すなわち、暗号化装置５は、同一の平文ブロックから二つの暗号化ブロックを生成する。
【０１１９】
次に、暗号化装置５は、同一の平文ブロックから生成された二つの暗号文ブロックを比較する（ステップＳ５０５）。
【０１２０】
また、暗号化装置５は、ステップＳ５０４およびステップＳ５０５の処理と並行して、サブ鍵保持部１３に格納されたサブ鍵を用いて共通鍵復号処理を実行して共通鍵（第２共通鍵とも呼ぶ）を復号する（ステップＳ５０６）。
【０１２１】
次に、暗号化装置５は、復号された第２共通鍵を第２共通鍵保持部１５に格納する（ステップＳ５０７）。
【０１２２】
次に、暗号化装置５は、第１共通鍵保持部１１に格納された第１共通鍵と、第２共通鍵保持部１５に格納された第２共通鍵とを比較する（ステップＳ５０８）。
【０１２３】
そして、暗号化装置５は、第１共通鍵と第２共通鍵とが一致した場合（ステップＳ５０９でＹｅｓ）、暗号文ブロックを出力する（ステップＳ５１０）。
【０１２４】
一方、暗号化装置５は、第１共通鍵と第２共通鍵とが一致しなかった場合（ステップＳ５０９でＮｏ）、サブ鍵に異常を検出してエラー処理を行い、暗号文ブロックを破棄する（ステップＳ５１１）。
【０１２５】
以上が、図１０のフローチャートに沿った暗号化装置５の動作の一例についての説明である。
【０１２６】
以上のように、本実施形態の暗号化装置は、平文ブロックを二重に暗号化して二つの暗号化ブロックを生成する。そして、本実施形態の暗号化装置は、二つの暗号化ブロックを比較することによってデータの異常を検出できる。
【０１２７】
（第６の実施形態）
次に、本発明の第６の実施形態に係る復号装置について図面を参照しながら説明する。本実施形態の復号装置は、第１の実施形態の暗号化装置から出力された暗号文ブロックを復号する。なお、本実施形態の復号装置は、第２〜第５の実施形態の暗号化装置から出力された暗号文ブロックを復号するように構成してもよい。
【０１２８】
（構成）
図１１は、本実施形態に係る復号装置６の構成の一例を示すブロック図である。図１１のように、復号装置６は、第１共通鍵保持部６１、鍵スケジュール部６２、サブ鍵保持部６３、共通鍵復号部６４、第２共通鍵保持部６５、共通鍵比較部６６、データデスクランブル部６７、出力判定部６８を備える。
【０１２９】
第１共通鍵保持部６１（第１共通鍵保持手段とも呼ぶ）は、入力された共通鍵（以下、第１共通鍵とも呼び）を保持する。例えば、第１共通鍵保持部６１は、レジスタやメモリによって実現される。
【０１３０】
鍵スケジュール部６２（サブ鍵生成手段とも呼ぶ）は、第１共通鍵保持部６１に保持された第１共通鍵を取得する。鍵スケジュール部６２は、取得した第１共通鍵からサブ鍵を生成する。例えば、鍵スケジュール部６２は、全てのラウンドで用いられるＮ個のサブ鍵を第１共通鍵から生成する（Ｎは自然数）。鍵スケジュール部６２は、生成したサブ鍵をサブ鍵保持部６３に記憶させる。
【０１３１】
サブ鍵保持部６３（サブ鍵保持手段とも呼ぶ）は、鍵スケジュール部６２によって生成されたサブ鍵が記憶される。例えば、サブ鍵保持部６３は、レジスタやメモリによって実現される。
【０１３２】
共通鍵復号部６４（共通鍵復号手段とも呼ぶ）は、サブ鍵保持部６３に記憶されたサブ鍵から共通鍵（以下、第２共通鍵とも呼ぶ）を復号する。例えば、共通鍵復号部６４は、サブ鍵保持部６３に格納されたＮ個のサブ鍵から第２共通鍵を復号する（Ｎは自然数）。共通鍵復号部６４は、復号された第２共通鍵を第２共通鍵保持部６５に保持させる。
【０１３３】
第２共通鍵保持部６５（第２共通鍵保持手段とも呼ぶ）は、共通鍵復号部６４によって復号された第２共通鍵を保持する。例えば、第２共通鍵保持部６５は、レジスタやメモリによって実現される。
【０１３４】
共通鍵比較部６６（共通鍵比較手段とも呼ぶ）は、第１共通鍵保持部６１に保持された第１共通鍵と、第２共通鍵保持部６５に保持された第２共通鍵とを比較する。共通鍵比較部６６は、第１共通鍵と第２共通鍵の比較結果を出力判定部６８に出力する。
【０１３５】
データデスクランブル部６７（復号手段とも呼ぶ）には、サブ鍵保持部６３からサブ鍵が入力されるとともに、暗号化ブロックが入力される。データデスクランブル部６７は、サブ鍵を用いて、入力された暗号化ブロックを復号する。データデスクランブル部６７は、復号された平文ブロックを出力判定部６８に出力する。
【０１３６】
出力判定部６８（出力判定手段とも呼ぶ）には、データデスクランブル部６７から平文ブロックが入力されるとともに、共通鍵比較部６６から第１共通鍵と第２共通鍵との比較結果が入力される。出力判定部６８は、共通鍵比較部６６による比較結果に基づいて、平文ブロックを出力するか否か判定する。出力判定部６８は、第１共通鍵と第２共通鍵とが同じ場合、平文ブロックを出力すると判定する。一方、出力判定部６８は、第１共通鍵と第２共通鍵とが異なる場合、サブ鍵に故障や改ざんなどの異常（エラーとも呼ぶ）を検出し、平文ブロックを出力せずに破棄する。
【０１３７】
以上が、復号装置６の構成についての説明である。なお、復号装置６の動作は、第１の実施形態の暗号化装置の暗号化処理（ステップＳ１０４）を復号処理に置換すればよいので詳細な説明を省略する。
【０１３８】
以上のように、本実施形態の復号装置によれば、処理性能に影響を与えることなく、安全かつ高速に大量のデータを復号できる。
【０１３９】
（第７の実施形態）
次に、本発明の第７の実施形態に係る回線暗号システムについて図面を参照しながら説明する。図１２は、本実施形態の回線暗号システム７の構成の一例を示すブロック図である。図１２のように、回線暗号システム７は、少なくとも一つの暗号化装置７１と、少なくとも一つの復号装置７２とを備える。
【０１４０】
暗号化装置７１は、第１〜第５の実施形態の暗号化装置１〜５のいずれかに相当する。例えば、暗号化装置７１と復号装置７２とは、有線回線および無線回線の少なくともいずれかによって接続される。暗号化装置７１は、入力される平文ブロックを暗号化することによって生成される暗号化ブロックを復号装置７２に向けて送信する。
【０１４１】
復号装置７２は、第６の実施形態の復号装置６に相当する。復号装置７２は、暗号化装置７１から暗号化ブロックを受信する。復号装置７２は、共通鍵を用いて、受信した暗号化ブロックから平文ブロックを復号する。
【０１４２】
以上のように、本実施形態の回線暗号システムによれば、処理性能に影響を与えることなく、大量のデータを安全かつ高速に送受信できる通信システムを構築できる。
【０１４３】
（ハードウェア）
ここで、本発明の各実施形態に係る暗号化装置または復号装置を実現するハードウェア構成について、図１３のコンピュータ９０を一例として挙げて説明する。なお、図１３のコンピュータ９０は、各実施形態の暗号化装置または復号装置を実現するための構成例であって、本発明の範囲を限定するものではない。
【０１４４】
図１３のように、コンピュータ９０は、プロセッサ９１、主記憶装置９２、補助記憶装置９３、入出力インターフェース９５および通信インターフェース９６を備える。図１３においては、インターフェースをＩ／Ｆ（Interface）と略して表記する。プロセッサ９１、主記憶装置９２、補助記憶装置９３、入出力インターフェース９５および通信インターフェース９６は、バス９９を介して互いにデータ通信可能に接続される。また、プロセッサ９１、主記憶装置９２、補助記憶装置９３および入出力インターフェース９５は、通信インターフェース９６を介して、インターネットやイントラネットなどのネットワークに接続される。
【０１４５】
プロセッサ９１は、補助記憶装置９３等に格納されたプログラムを主記憶装置９２に展開し、展開されたプログラムを実行する。本実施形態においては、コンピュータ９０にインストールされたソフトウェアプログラムを用いる構成とすればよい。プロセッサ９１は、本実施形態に係る暗号化装置または復号装置による処理を実行する。
【０１４６】
主記憶装置９２は、プログラムが展開される領域を有する。主記憶装置９２は、例えばＤＲＡＭ（Dynamic Random Access Memory）などの揮発性メモリとすればよい。また、ＭＲＡＭ（Magnetoresistive Random Access Memory）などの不揮発性メモリを主記憶装置９２として構成・追加してもよい。
【０１４７】
補助記憶装置９３は、種々なデータを記憶する。例えば、補助記憶装置９３は、ハードディスクやフラッシュメモリなどのローカルディスクによって構成される。なお、種々のデータを主記憶装置９２に記憶させる構成とし、補助記憶装置９３を省略することも可能である。
【０１４８】
入出力インターフェース９５は、コンピュータ９０と周辺機器とを接続するためのインターフェースである。通信インターフェース９６は、規格や仕様に基づいて、インターネットやイントラネットなどのネットワークを通じて、外部のシステムや装置に接続するためのインターフェースである。入出力インターフェース９５および通信インターフェース９６は、外部機器と接続するインターフェースとして共通化してもよい。
【０１４９】
コンピュータ９０には、必要に応じて、キーボードやマウス、タッチパネルなどの入力機器を接続するように構成してもよい。それらの入力機器は、情報や設定の入力に使用される。なお、タッチパネルを入力機器として用いる場合は、表示機器の表示画面が入力機器のインターフェースを兼ねる構成とすればよい。プロセッサ９１と入力機器との間のデータ通信は、入出力インターフェース９５に仲介させればよい。
【０１５０】
また、コンピュータ９０には、情報を表示するための表示機器を備え付けてもよい。表示機器を備え付ける場合、コンピュータ９０には、表示機器の表示を制御するための表示制御装置（図示しない）が備えられていることが好ましい。表示機器は、入出力インターフェース９５を介してコンピュータ９０に接続すればよい。
【０１５１】
また、コンピュータ９０には、必要に応じて、ディスクドライブを備え付けてもよい。ディスクドライブは、バス９９に接続される。ディスクドライブは、プロセッサ９１と図示しない記録媒体（プログラム記録媒体）との間で、記録媒体からのデータ・プログラムの読み出し、コンピュータ９０の処理結果の記録媒体への書き込みなどを仲介する。記録媒体は、例えば、ＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disc）などの光学記録媒体で実現できる。また、記録媒体は、ＵＳＢ（Universal Serial Bus）メモリやＳＤ（Secure Digital）カードなどの半導体記録媒体や、フレキシブルディスクなどの磁気記録媒体、その他の記録媒体によって実現してもよい。
【０１５２】
以上が、本発明の各実施形態に係る暗号化装置または復号装置を可能とするためのハードウェア構成の一例である。なお、図１３のハードウェア構成は、各実施形態に係る暗号化装置または復号装置の演算処理を実行するためのハードウェア構成の一例であって、本発明の範囲を限定するものではない。また、各実施形態に係る暗号化装置または復号装置に関する処理をコンピュータに実行させるプログラムも本発明の範囲に含まれる。さらに、各実施形態に係るプログラムを記録したプログラム記録媒体も本発明の範囲に含まれる。
【０１５３】
各実施形態の暗号化装置または復号装置の構成要素は、任意に組み合わせることができる。また、各実施形態の暗号化装置または復号装置の構成要素は、ソフトウェアによって実現してもよいし、回路によって実現してもよい。
【０１５４】
以上、実施形態を参照して本発明を説明してきたが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
〔付記〕
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
（付記１）
第１共通鍵を保持する第１共通鍵保持手段と、
前記第１共通鍵保持手段に保持された前記第１共通鍵から少なくとも一つのサブ鍵を鍵スケジュールで生成するサブ鍵生成手段と、
前記サブ鍵生成手段によって生成される前記サブ鍵を保持するサブ鍵保持手段と、
前記サブ鍵保持手段に保持された前記サブ鍵を取得して第２共通鍵を復号する共通鍵復号手段と、
前記共通鍵復号手段によって復号される前記第２共通鍵を保持する第２共通鍵保持手段と、
前記第１共通鍵保持手段に保持された前記第１共通鍵と、前記第２共通鍵保持手段に保持された前記第２共通鍵とを比較する共通鍵比較手段と、
前記サブ鍵保持手段に保持された前記サブ鍵を用いて平文ブロックを暗号化して暗号文ブロックを生成する暗号化手段と、
共通鍵比較手段による前記第１共通鍵と前記第２共通鍵との比較結果と、前記暗号化手段によって生成された前記暗号文ブロックとが入力され、前記共通鍵比較手段による比較結果に基づいて前記暗号文ブロックを出力するか否かを判定する出力判定手段とを備える暗号化装置。
（付記２）
前記出力判定手段は、
前記第１共通鍵と前記第２共通鍵とが同じ場合に前記暗号文ブロックを出力し、
前記第１共通鍵と前記第２共通鍵とが異なる場合に前記暗号文ブロックを破棄する付記１に記載の暗号化装置。
（付記３）
入力された共通鍵と、前記第１共通鍵保持手段に保持された前記第１共通鍵とを比較し、前記サブ鍵を生成するか否かを判定するサブ鍵判定手段を備え、
前記サブ鍵判定手段は、
入力された前記共通鍵と前記第１共通鍵とが異なる場合、入力された前記共通鍵を前記第１共通鍵として前記第１共通鍵保持手段に保持させ、前記第１共通鍵保持手段に新たに保持させた前記第１共通鍵から前記サブ鍵を生成することを前記サブ鍵生成手段に指示し、
前記入力された共通鍵と前記第１共通鍵とが等しい場合、前記サブ鍵を生成することを前記サブ鍵生成手段に指示しない付記１または２に記載の暗号化装置。
（付記４）
暗号化指示に応じて疑似乱数を生成させる疑似乱数発生手段と、
前記疑似乱数発生手段によって生成された前記疑似乱数を用いて共通鍵を生成し、生成した前記共通鍵を前記第１共通鍵として前記第１共通鍵保持手段に保持させる共通鍵生成手段とを備える付記１または２に記載の暗号化装置。
（付記５）
前記共通鍵比較手段による前記第１共通鍵と前記第２共通鍵との比較結果に基づいて、前記サブ鍵に異常があると疑われるか否かを判定する再試行判定手段を備え、
前記再試行判定手段は、
前記サブ鍵に異常があると疑われる場合、前記サブ鍵を再生成することを前記サブ鍵生成手段に指示し、
前記サブ鍵に異常があると疑われない場合、前記共通鍵比較手段による比較結果を前記出力判定手段に出力する付記１乃至４のいずれか一項に記載の暗号化装置。
（付記６）
前記暗号化手段が二重化され、
二重化された前記暗号化手段によって同一の前記平文ブロックから生成される少なくとも二つの前記暗号文ブロックが入力され、入力された少なくとも二つの前記暗号文ブロックを比較する暗号ブロック比較手段を備え、
前記暗号ブロック比較手段は、
入力された少なくとも二つの前記暗号文ブロックが異なる場合は異常があると判定して前記出力判定手段に前記暗号文ブロックを出力せず、
入力された少なくとも二つの前記暗号文ブロックが等しい場合は正常であると判定して前記出力判定手段に前記暗号文ブロックを出力する付記１乃至５のいずれか一項に記載の暗号化装置。
（付記７）
第１共通鍵を保持する第１共通鍵保持手段と、
前記第１共通鍵保持手段に保持された前記第１共通鍵から少なくとも一つのサブ鍵を鍵スケジュールで生成するサブ鍵生成手段と、
前記サブ鍵生成手段によって生成される前記サブ鍵を保持するサブ鍵保持手段と、
前記サブ鍵保持手段に保持された前記サブ鍵を取得して第２共通鍵を復号する共通鍵復号手段と、
前記共通鍵復号手段によって復号される前記第２共通鍵を保持する第２共通鍵保持手段と、
前記第１共通鍵保持手段に保持された前記第１共通鍵と、前記第２共通鍵保持手段に保持された前記第２共通鍵とを比較する共通鍵比較手段と、
前記サブ鍵保持手段に保持された前記サブ鍵を用いて暗号文ブロックから平文ブロックを復号する復号手段と、
共通鍵比較手段による前記第１共通鍵と前記第２共通鍵との比較結果と、前記復号手段によって復号された前記平文ブロックとが入力され、前記共通鍵比較手段による比較結果に基づいて前記平文ブロックを出力するか否かを判定する出力判定手段とを備える復号装置。
（付記８）
第１共通鍵から少なくとも一つのサブ鍵を鍵スケジュールで生成し、生成された前記サブ鍵を用いて平文ブロックを暗号化して暗号文ブロックを生成するとともに、生成された前記サブ鍵を用いて第２共通鍵を復号して、前記第１共通鍵と前記第２共通鍵との比較結果に基づいて前記暗号文ブロックを出力するか否かを判定する暗号化装置と、
前記第１共通鍵から少なくとも一つのサブ鍵を鍵スケジュールで生成し、生成された前記サブ鍵を用いて前記暗号文ブロックから前記平文ブロックを復号するとともに、生成された前記サブ鍵を用いて前記第２共通鍵を復号して、前記第１共通鍵と前記第２共通鍵との比較結果に基づいて前記平文ブロックを出力するか否かを判定する復号装置とを備え、
前記暗号化装置は、
前記平文ブロックを暗号化した前記暗号文ブロックを前記復号装置に送信し、
前記復号装置は、
前記暗号化装置から受信した前記暗号文ブロックから前記平文ブロックを復号する回線暗号システム。
（付記９）
第１共通鍵を第１共通鍵保持手段に保持し、
前記第１共通鍵保持手段に保持された前記第１共通鍵から少なくとも一つのサブ鍵を鍵スケジュールで生成し、
生成された前記サブ鍵をサブ鍵保持手段に保持し、
前記サブ鍵保持手段に保持された前記サブ鍵を用いて第２共通鍵を復号し、
復号された前記第２共通鍵を第２共通鍵保持手段に保持し、
前記第１共通鍵保持手段に保持された前記第１共通鍵と、前記第２共通鍵保持手段に保持された前記第２共通鍵とを比較し、
前記サブ鍵保持手段に保持された前記サブ鍵を用いて平文ブロックを暗号化して暗号文ブロックを生成し、
前記第１共通鍵と前記第２共通鍵との比較結果に基づいて前記暗号文ブロックを出力するか否かを判定する暗号化方法。
（付記１０）
第１共通鍵を第１共通鍵保持手段に保持する処理と、
前記第１共通鍵保持手段に保持された前記第１共通鍵から少なくとも一つのサブ鍵を鍵スケジュールで生成する処理と、
生成された前記サブ鍵をサブ鍵保持手段に保持する処理と、
前記サブ鍵保持手段に保持された前記サブ鍵を用いて第２共通鍵を復号する処理と、
復号された前記第２共通鍵を第２共通鍵保持手段に保持する処理と、
前記第１共通鍵保持手段に保持された前記第１共通鍵と、前記第２共通鍵保持手段に保持された前記第２共通鍵とを比較する処理と、
前記サブ鍵保持手段に保持された前記サブ鍵を用いて平文ブロックを暗号化して暗号文ブロックを生成する処理と、
前記第１共通鍵と前記第２共通鍵との比較結果に基づいて前記暗号文ブロックを出力するか否かを判定する処理とをコンピュータに実行させるプログラム。
（付記１１）
第１共通鍵を第１共通鍵保持手段に保持し、
前記第１共通鍵保持手段に保持された前記第１共通鍵から少なくとも一つのサブ鍵を鍵スケジュールで生成し、
生成された前記サブ鍵をサブ鍵保持手段に保持し、
前記サブ鍵保持手段に保持された前記サブ鍵を用いて第２共通鍵を復号し、
復号された前記第２共通鍵を第２共通鍵保持手段に保持し、
前記第１共通鍵保持手段に保持された前記第１共通鍵と、前記第２共通鍵保持手段に保持された前記第２共通鍵とを比較し、
前記サブ鍵保持手段に保持された前記サブ鍵を用いて暗号文ブロックから平文データを復号し、
前記第１共通鍵と前記第２共通鍵との比較結果に基づいて前記平文データを出力するか否かを判定する暗号化方法。
（付記１２）
第１共通鍵を第１共通鍵保持手段に保持する処理と、
前記第１共通鍵保持手段に保持された前記第１共通鍵から少なくとも一つのサブ鍵を鍵スケジュールで生成する処理と、
生成された前記サブ鍵をサブ鍵保持手段に保持する処理と、
前記サブ鍵保持手段に保持された前記サブ鍵を用いて第２共通鍵を復号する処理と、
復号された前記第２共通鍵を保持する処理と、
前記第１共通鍵保持手段に保持された前記第１共通鍵と、前記第２共通鍵保持手段に保持された前記第２共通鍵とを比較する処理と、
前記サブ鍵保持手段に保持された前記サブ鍵を用いて暗号文ブロックから平文データを復号する処理と、
前記第１共通鍵と前記第２共通鍵との比較結果に基づいて前記平文データを出力するか否かを判定する処理とをコンピュータに実行させるプログラム。
【符号の説明】
【０１５５】
１、２、３、４、５    暗号化装置
６    復号装置
７    回線暗号システム
１１    第１共通鍵保持部
１２    鍵スケジュール部
１３    サブ鍵保持部
１４    共通鍵復号部
１５    第２共通鍵保持部
１６    共通鍵比較部
１７    データスクランブル部
１８    出力判定部
２１    サブ鍵生成判定部
３１    疑似乱数生成部
３２    共通鍵生成部
４１    リトライ判定部
５１    第１データスクランブル部
５２    第２データスクランブル部
５３    暗号ブロック比較部
６７    データデスクランブル部
７１    暗号化装置
７２    復号装置
【図１】
2019124713.tif 000003
【図２】
2019124713.tif 000004
【図３】
2019124713.tif 000005
【図４】
2019124713.tif 000006
【図５】
2019124713.tif 000007
【図６】
2019124713.tif 000008
【図７】
2019124713.tif 000009
【図８】
2019124713.tif 000010
【図９】
2019124713.tif 000011
【図１０】
2019124713.tif 000012
【図１１】
2019124713.tif 000013
【図１２】
2019124713.tif 000014
【図１３】
2019124713.tif 000015