(57)【要約】【課題】ユーザ毎に異なる暗号化ライブラリを生成できる暗号化ライブラリ生成装置を提供する。【解決手段】第１情報から鍵暗号鍵を生成し、コンテンツの暗号化に使用する鍵であるコンテンツ鍵を該鍵暗号鍵で暗号化する処理をコンピュータに実行させるプログラムである暗号化ライブラリを生成する暗号化ライブラリ生成装置は、前記第１情報及び第２情報を入力するための入力手段と、前記第２情報から前記コンテンツ鍵を暗号化するための暗号アルゴリズムを決定する決定手段と、前記第１情報と、前記決定手段が決定した前記暗号アルゴリズムに基づき前記暗号化ライブラリを生成する生成手段と、前記生成手段が生成した前記暗号化ライブラリを難読化する難読化手段と、を備えている。【選択図】図１
2014103554.tif 000002
【特許請求の範囲】
【請求項１】
第１情報から鍵暗号鍵を生成し、コンテンツの暗号化に使用する鍵であるコンテンツ鍵を該鍵暗号鍵で暗号化する処理をコンピュータに実行させるプログラムである暗号化ライブラリを生成する暗号化ライブラリ生成装置であって、
前記第１情報を指定する情報及び第２情報を入力するための入力手段と、
前記第２情報から前記コンテンツ鍵を暗号化するための暗号アルゴリズムを決定する決定手段と、
前記第１情報を指定する情報と、前記決定手段が決定した前記暗号アルゴリズムに基づき前記暗号化ライブラリを生成する生成手段と、
前記生成手段が生成した前記暗号化ライブラリを難読化する難読化手段と、
を備えていることを特徴とする暗号化ライブラリ生成装置。
【請求項２】
前記生成手段が生成する前記暗号化ライブラリは、前記コンテンツを前記コンテンツ鍵で暗号化する処理をさらにコンピュータに実行させることを特徴とする請求項１に記載の暗号化ライブラリ生成装置。
【請求項３】
前記生成手段が生成する前記暗号化ライブラリは、暗号化された前記コンテンツ鍵を前記鍵暗号鍵で復号し、暗号化された前記コンテンツを前記コンテンツ鍵で復号する処理をさらにコンピュータに実行させることを特徴とする請求項２に記載の暗号化ライブラリ生成装置。
【請求項４】
前記決定手段は、基本暗号アルゴリズムを前記第２情報に応じて変更することで、前記コンテンツ鍵を暗号化するための暗号アルゴリズムを決定することを特徴とする請求項１から３のいずれか１項に記載の暗号化ライブラリ生成装置。
【請求項５】
前記第１情報は、前記暗号化ライブラリを実行するコンピュータに付与された情報であることを特徴とする請求項１から４のいずれか１項に記載の暗号化ライブラリ生成装置。
【請求項６】
前記第１情報を指定する情報及び前記第２情報は、前記暗号化ライブラリを取得するユーザの装置が前記入力手段に入力することを特徴とする請求項１から５のいずれか１項に記載の暗号化ライブラリ生成装置。
【請求項７】
請求項１から６のいずれか１項に記載の暗号化ライブラリ生成装置としてコンピュータを機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーション・プログラムが利用する、或いは、アプリケーション・プログラムに組み込まれる暗号化のためのライブラリを生成して配信する技術に関する。
【背景技術】
【０００２】
アプリケーション・プログラム（以下、単にアプリケーションと呼ぶ。）が扱う様々なデータは、しばしばセキュアに取り扱う必要に迫られることがあり、データの暗号化が利用される。データを暗号化する際、暗号鍵を安全に保存し、かつ、暗号処理を秘匿するために、暗号処理を行うプログラムのコードを容易に解読させない様にする必要がある。しかしながら、汎用的なオペレーティング・システム上で動作するアプリケーションをセキュアに実装することは一般的には簡単ではない。
【０００３】
このため、特許文献１は、ソフトウェアを難読化する構成を開示している。しかしながら、ソフトウェアの難読化のためには、多くの実装ノウハウを持ったプログラマが必要でありコストがかかる。また難読化の性能は、実装に大きく依存し、その性能の評価も困難である。その上、ソフトウェアの難読化は、その処理内容を秘匿化することによりセキュリティを向上させるものであるため、第三者にその処理内容を提供することは困難である。また、非特許文献２は、基本となる暗号アルゴリズムと、入力された値とに基づき、基本となる暗号アルゴリズムとは異なる暗号アルゴリズムを生成・決定する構成を開示している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−１９１９９４号公報
【非特許文献】
【０００５】
【非特許文献１】福富英次、他、「アルゴリズム可変な暗号化方式の安全性」、電子情報通信学会技術研究報告、情報セキュリティ１０５（４８４）、４３−４６、２００５年１２月９日
【発明の概要】
【発明が解決しようとする課題】
【０００６】
暗号処理をソフトウェアで実装する際に、個々のプログラマが個別に実装するのではなく、暗号化ライブラリとして第三者から取得できれば便利である。しかしながら、アプリケーションをセキュアに実装するためには、使用する暗号化ライブラリは、その利用者毎に異なるものである必要がある。また、その処理を特定され難くする必要もある。
【０００７】
本発明は、ユーザ毎に異なる暗号化ライブラリを生成できる暗号化ライブラリ生成装置及びプログラムを提供するものである。
【課題を解決するための手段】
【０００８】
本発明の一側面によると、第１情報から鍵暗号鍵を生成し、コンテンツの暗号化に使用する鍵であるコンテンツ鍵を該鍵暗号鍵で暗号化する処理をコンピュータに実行させるプログラムである暗号化ライブラリを生成する暗号化ライブラリ生成装置であって、前記第１情報及び第２情報を入力するための入力手段と、前記第２情報から前記コンテンツ鍵を暗号化するための暗号アルゴリズムを決定する決定手段と、前記第１情報と、前記決定手段が決定した前記暗号アルゴリズムに基づき前記暗号化ライブラリを生成する生成手段と、前記生成手段が生成した前記暗号化ライブラリを難読化する難読化手段と、を備えていることを特徴とする。
【発明の効果】
【０００９】
ユーザ毎に異なる暗号化ライブラリを生成し配信することができる。
【図面の簡単な説明】
【００１０】
【図１】一実施形態による暗号化ライブラリ生成装置。
【図２】一実施形態による暗号化ライブラリ生成装置を含むシステム構成図。
【図３】一実施形態による暗号化ライブラリ生成装置が生成した暗号化ライブラリを使用しての暗号化処理を説明するブロック図。
【図４】一実施形態による暗号化ライブラリ生成装置が生成した暗号化ライブラリを使用しての復号処理を説明するブロック図。
【発明を実施するための形態】
【００１１】
以下、本発明の例示的な実施形態について図面を参照して説明する。なお、以下の各図においては、実施形態の説明に必要ではない構成要素については図から省略する。
【００１２】
まず、本実施形態による暗号化ライブラリ生成装置の説明を行う前に、当該暗号化ライブラリ生成装置が生成した暗号化ライブラリを使用するアプリケーションが実行する暗号化処理と復号処理について説明する。
【００１３】
図３は、本実施形態による暗号化ライブラリを使用するアプリケーションが実行する暗号化処理を示すブロック図である。乱数生成部は、コンテンツ鍵として使用する乱数を生成し、暗号化部は、暗号対象のコンテンツをコンテンツ鍵で暗号化する。暗号化には、例えば、ＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）を使用することができる。
【００１４】
また、鍵暗号鍵生成部は、例えば、当該アプリケーションを実行しているコンピュータに設定されている情報、例えば、ＭＡＣアドレスやシリアル番号等から鍵暗号鍵を生成する。なお、鍵暗号鍵は、ＭＡＣアドレス等のコンピュータに設定されている値をそのまま使用することも、コンピュータに設定されている値と、任意に生成した値や予め決めた値とを演算して生成することもできる。
【００１５】
鍵暗号化部は、コンテンツ鍵を鍵暗号鍵で暗号化する。なお、鍵暗号化部が使用する暗号化のアルゴリズムについては後述する。以上の様に、暗号化処理において、暗号化されたコンテンツと、暗号化されたコンテンツ鍵が出力される。
【００１６】
図４は、本実施形態による暗号化ライブラリを使用するアプリケーションが実行する復号処理を示すブロック図である。鍵暗号鍵生成部は、暗号処理で使用するものと同じであり、暗号化処理で使用したのと同じ鍵暗号鍵を生成する。鍵復号部は、暗号処理で生成した暗号化されたコンテンツ鍵を、鍵暗号鍵で復号してコンテンツ鍵を出力する。復号部は、暗号処理で生成した暗号化されたデータを、コンテンツ鍵で復号して保護対象のコンテンツを出力する。
【００１７】
続いて、上記暗号化処理及び復号処理のための暗号化ライブラリを生成する、本実施形態による暗号化ライブラリ生成装置について説明する。図２は、一実施形態による、暗号化ライブラリ生成装置１００を含むシステム構成図である。暗号化ライブラリ生成装置１００は、ネットワーク２００経由でユーザ装置３００と通信可能であり、ユーザ装置３００からの入力に従い、ユーザ装置３００のユーザにカスタマイズした暗号化ライブラリを生成してユーザ装置３００に配信する。ユーザ装置３００は、暗号化ライブラリ生成装置１００から取得した暗号化ライブラリを使用して、暗号化が必要なアプリケーションの開発を行う。
【００１８】
図１は、本実施形態による暗号化ライブラリ生成装置１００の概略的な構成図である。入力部１１は、ユーザ装置３００から第１情報及び第２情報の２つの情報を受け取る。第１情報は、鍵暗号鍵の生成に使用する元となる値を指定するものである。また、第２情報はコンテンツ鍵を暗号化するための暗号アルゴリズムを決定する元の情報である。関数決定部１２は、ユーザ装置３００から第２情報の値に基づき、図３の鍵暗号化部及び図４の鍵復号部で使用する暗号アルゴリズムを決定する。なお、暗号アルゴリズムの決定は、非特許文献１に記載されている様に、基本となる暗号アルゴリズムを第２情報が示す値で変更することにより行う。
【００１９】
ライブラリ生成部１３には、関数生成部１１が決定した暗号アルゴリズムと、ユーザ装置３００からの第１情報が入力される。第１情報は、図３及び図４の鍵暗号鍵生成部が、鍵暗号鍵の生成に使用する情報を特定するものであり、例えば、ＭＡＣアドレスや、シリアル番号、アカウント情報といった、暗号化ライブラリを実行するコンピュータで利用可能な値が特定される。また、固定的な値を第１情報で指定する形態とすることもできる。ライブラリ生成部１３は、第１情報と、暗号アルゴリズムに基づき、図３の暗号化処理及び図４の復号処理を行うためのプログラムである暗号化ライブラリを生成する。
【００２０】
難読化処理部１４は、ライブラリ生成部１３が生成した暗号化ライブラリに対して、任意の公知の難読化処理を行い難読化する。なお、難読化処理部１４は、乱数を発生させ、この乱数に応じてダミーの変数等を挿入する位置等を制御する。これにより、難読化処理についてもユーザ毎に異ならせる。また、難読化処理部１４が発生させた乱数を使用するのではなく、ユーザに関する値や、ユーザが入力した値を代わりに使用することもできる。なお、難読化処理された暗号化ライブラリをコンピュータで実行する際には特段の処理を行う必要はなく、コンピュータは、難読化処理された暗号化ライブラリをそのまま実行することができる。配信部１５は、難読化された暗号化ライブラリをユーザ装置３００に送信する。
【００２１】
以上、本実施形態による暗号化ライブラリ生成装置１００が生成する暗号化ライブラリにおいて、鍵暗号化鍵を生成するための元データと、鍵暗号化のためのアルゴリズムを決定する値をユーザが選択する。よって、生成された暗号化ライブラリはユーザ固有のものとすることができる。さらに、ユーザ装置３００への配布前に難読化処理を行うため、暗号処理の解析は困難である。よって、本実施形態による暗号化ライブラリ生成装置１００による、複数のユーザ装置３００に安全な暗号化ライブラリを提供することが可能になる。
【００２２】
なお、本発明による暗号化ライブラリ生成装置は、コンピュータを上記暗号化ライブラリ生成装置として動作させるプログラムにより実現することができる。これらコンピュータプログラムは、コンピュータが読み取り可能な記憶媒体に記憶されて、又は、ネットワーク経由で配布が可能なものである。
【図１】
2014103554.tif 000003
【図２】
2014103554.tif 000004
【図３】
2014103554.tif 000005
【図４】
2014103554.tif 000006