【文献】
青柳 真紀子 ほか,関数型暗号を適用したスマートデバイス機能制御機構の実装,マルチメディア,分散,協調とモバイル(DICOMO2014)シンポジウム論文集,日本,一般社団法人情報処理学会,2014年 7月 9日,Vol.2014 No.1,pp.758−764
【文献】
森 拓海 ほか,関数型暗号を用いた簡単操作で使えるファイル共有システム,マルチメディア,分散,協調とモバイル(DICOMO2014)シンポジウム論文集,日本,2014年 7月 2日,Vol.2014 No.1,pp.746−751
【文献】
松田 規 ほか,関数型暗号におけるICカード上の復号演算の効率化に関する考察,2013年 暗号と情報セキュリティシンポジウム SCIS2013 [CD−ROM],日本,2013年暗号と情報セキュリティシンポジウム実行委員会,2013年 1月22日,3F3−5,pp.1−4
【文献】
Matthew Green, et al.,Outsourcing the Decryption of ABE Ciphertexts,20th USENIX Security Symposium,米国,[オンライン],2011年 8月,[検索日 平成29年 9月25日]、インターネット,URL,<https://www.usenix.org/legacy/event/sec11/tech/full_papers/Green.pdf>
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0013】
以下、本発明の実施の形態について図面を参照して詳細に説明する。なお、以下の実施の形態は、この発明の技術的思想を具体化するための暗号化システムを例示するものであり、装置の構成やデータの構成等は以下の実施の形態に限定されるものではない。
【0014】
本発明の実施の形態に係る暗号化システムは、サーバ等による集中管理を必要としない暗号/復号システムである。すなわち、サーバ等の集中管理装置へのアクセス不可に起因する可用性リスクを回避するため、鍵生成機能(暗号/復号プログラム)を端末に内蔵し、また、復号条件をインターネット(WAN)、LAN、LOCALに分散配置するようにしている。このように可用性対策を行うと、機密性が低下するおそれがあるが、鍵管理サーバ運用ではなく復号条件の複雑さにより機密性を確保し、また、復号条件への攻撃を防止するため条件のハッシュ化を行うようにしている。
【0015】
これにより、本発明の実施の形態に係る暗号化システムによれば、利用端末の持ち出しやネットワーク・サーバ故障により鍵発行局などの外部システムと利用端末が通信できない場合もファイルの復号、暗号化を処理できるため、高い可用性を確保できる。また、暗号化システムとして、暗号化、復号の際に鍵発行局など(外部サービス)での処理を不要にできるため、外部サービスの構築、運用のコストを削減できる。また、ユーザが指定する復号条件に応じて機密性を確保できる。その条件として、例えば、外部認証サービスでの認証やファイル作成者による確認など、パスワード利用より高度な条件を指定できる。また、暗号文を復号する際にパスワードではなく条件適合によって復号可否が決定されるため、条件に依存してはユーザからの入力を必要としない利便性の高い暗号化システムを構築できる。
【0016】
次に、関数型暗号について説明する。関数型暗号は、公開鍵暗号の発展形である。関数型暗号では、暗号化及び復号の少なくとも何れかの条件を、単一のパラメータや複数のパラメータとその論理演算式として与えることができる。論理演算式は、論理和(OR条件)、論理積(AND条件)、否定(NOT条件)、及びそれらの組合せの少なくとも何れかからなる。単一のパラメータを利用するものはIDベース暗号と呼ばれ、複数のパラメータとその論理演算式で暗号化及び復号を行う方式は関数型暗号と呼ばれる。関数型暗号は、IDベース暗号の拡張暗号と言える。IDベース暗号及び関数型暗号では、あらかじめペアとなるマスター公開鍵、マスター秘密鍵のセットを生成し、マスター公開鍵、マスター秘密鍵とパラメータの演算によって、パラメータ毎に異なる公開鍵及び秘密鍵を生成する(参考文献1、2及び3参照)。参考文献4は、利用者端末装置の利用環境をパラメータとして、利用者端末装置上の任意のアプリケーションの起動を制御するファイルの暗号化及び復号を行うことで、複雑なアプリケーションの起動及び停止制御のためのロジックを実装することなく実現している。
[参考文献1]小林鉄太郎、山本剛、鈴木幸太郎、平田真一、「IDベース暗号の応用とキーワード検索暗号」、NTT技術ジャーナル、2010年、p.17〜20
[参考文献2]特開2011−004366号公報
[参考文献3]国際公開第WO2010/123122号パンフレット
[特許文献4]特開2013−074302号公報
【0017】
図1は、本発明の実施の形態に係る暗号化システムの構成図である。この暗号化システムでは、関数型暗号技術を利用する際に鍵管理サーバの役割を削減し、復号条件によって安全性を確保する。これにより、第三者サーバの必要性を無くし、可用性を向上させる。
【0018】
具体的には、
図1に示すように、ユーザオフィス1に設置されたユーザ端末U1,U2,U3がネットワーク2を介して条件提示サーバ3に接続されている。条件提示サーバ3は、条件を提示するサーバであり、ユーザ認証部3A、時刻管理部3B、認可部3C等を備える。図中の実線部分は最低限必要な機器を表し、点線部分は追加が可能なシステムを表している。すなわち、最低限必要な機器は1台のユーザ端末U1のみであり、その他のユーザ端末U2,U3や条件提示サーバ3は、必要に応じて追加することが可能である。
【0019】
図2は、本発明の実施の形態に係る暗号化システムの機能ブロック図である。ここでは、ユーザ端末U1を例示しているが、その他のユーザ端末U2,U3についても同様である。
【0020】
ユーザ端末U1は、ユーザが操作するノートパソコン等の各種端末であって、条件確認機能部10と、暗号化機能部20と、HDD30とを備える。条件確認機能部10は、条件を確認するための機能部であって、条件1確認部10_1,…,条件n確認部10_nを備える。条件1確認部10_1,…,条件n確認部10_nは、それぞれ、復号条件1,…,nに対応しているものとする。暗号化機能部20は、ファイルを暗号化及び復号する機能部であって、鍵生成部21と、暗号化・復号部22と、ファイル管理部23とを備える。HDD30は、平文ファイルF1や暗号ファイルF2等の各種データを記憶する記憶装置である。
【0021】
鍵生成部21は、サービス開始時にサービス公開鍵SPk,サービス秘密鍵SSkを生成して保管する機能と、ユーザの要求に対して鍵を生成して返送する機能と、ユーザ環境内で生成したサービス公開鍵SPk,サービス秘密鍵SSkをサービス利用者間で共有できるように共有、変換する機能とを備える。
【0022】
条件1確認部10_1は、復号条件x(利用中ユーザ名など)に合わせた情報を取得し、条件設定時に指定した手法(AD問い合わせ等)により正当性を確認する機能と、ユーザの操作、環境情報などを元に外部サーバに問い合わせを行い、応答を取得し、サーバ証明書等により応答の正当性を確認する機能と、条件に対して取得した情報を暗号化・復号部22に対して転送する機能とを備える。その他の条件2確認部10_2,…,条件n確認部10_nについても同様である。
【0023】
暗号化・復号部22は、条件確認機能部10からの入力を元にファイルを復号する機能と、条件確認機能部10からの入力を元にファイルを復号できるか判定する機能と、ユーザ指定の復号条件を用いてファイルを暗号化する機能と、デフォルトの復号条件を用いてファイルを暗号化する機能とを備える。
【0024】
ファイル管理部23は、ドキュメントファイルとシステムファイルを識別する機能と、ユーザがアクセスするフォルダにあるファイルの中に平文ドキュメントファイルがある場合、その平文ドキュメントファイルを自動暗号化する機能と、定期的にファイルをスキャンし、平文ドキュメントファイルを自動暗号化する機能とを備える。
【0025】
もちろん、ユーザ端末U1や外部サーバにその他の機能部を備えてもよい。例えば、外部サーバにユーザ管理部を備えてもよい。ユーザ管理部は、利用ユーザを追加削除する機能と、利用条件を追加削除する機能とを備える。
【0026】
図3は、本発明の実施の形態に係る暗号化システムの動作を示すフローチャートである。ここでは、ファイル読み出し操作が行われた場合について説明する。
【0027】
まず、ファイルブラウザ、ファイル編集アプリケーションなど(以下、アプリケーション40)を経由してファイルの読み込みが要求されると(ステップS1)、ファイルの読み出し要求を暗号化機能部20でキャッチし、復号の要否を確認する(ステップS2)。ステップS2において復号が必要であることを確認した場合、ファイル復号に必要な条件を確認する(ステップS3)。ステップS3において復号可であることを確認した場合、条件に応じた鍵を生成し、暗号ファイルF2を復号し、平文ファイルF1をメモリ上等にキャッシュし(ステップS4)、アプリケーション40へ平文キャッシュを返送し、ファイルオープンして処理を終了する(ステップS5)。ステップS3において復号不可であることを確認した場合、復号エラーを表示し(ステップS6)、暗号ファイルF2をアプリケーション40へ返送して処理を終了する(ステップS7)。ステップS2において復号が不要であることを確認した場合も、暗号ファイルF2をアプリケーション40へ返送して処理を終了する(ステップS7)。これにより、通常のファイル利用時には平文ファイルF1をアプリケーション40に返送するのに対して、不正利用時、ファイル持ち出し時、転送時などには暗号ファイルF2をアプリケーション40に返送することができる。
【0028】
図4は、本発明の実施の形態に係る暗号化システムの動作を示すフローチャートである。ここでは、ファイル書き込み操作が行われた場合について説明する。
【0029】
まず、アプリケーション40を経由してファイルの書き込みが要求されると(ステップS11)、ファイルの書き込み要求を暗号化機能部20でキャッチし、暗号化の要否を確認する(ステップS12)。ステップS12において暗号化が必要であることを確認した場合、デフォルト復号条件を利用して平文ファイルF1を暗号化し(ステップS13)、暗号ファイルF2をHDD30に書き込む(ステップS14)。ステップS12において暗号化が不要であることを確認した場合、平文ファイルF1をHDD30に書き込む(ステップS15)。これにより、ドキュメントファイルは暗号ファイルF2として書き込むことができるのに対して、システムファイルなどは平文ファイルF1のまま書き込むことができる。
【0030】
図5は、比較例に係る暗号化システムの説明図であり、既存技術の応用を示している。ここでは、ファイル書込み操作により、平文データが暗号化され、暗号データが生成される様子を示している(符号51→52→53参照)。また、ファイル読み出し操作により、暗号データが復号され、平文データが生成される様子を示している(符号53→54→55参照)。
【0031】
既存技術を応用した場合、鍵を発行する第三者サーバが必要になり、コストが増加する(符号56参照)。また、可用性を確保するシステムにおける復号条件f(x=A&xx=B)の取得方法と内容が具体化されていない(符号53参照)。fは関数、x及びxxは条件、A及びBは条件に相当するパラメータである。更に、復号条件f(x=A&xx=B)をそのまま暗号データに記載するため、偽装が可能で機密性が低下する(符号53参照)。
【0032】
図6は、本発明の実施の形態に係る暗号化システムの説明図である。ここでも、
図5と同様、平文データが暗号化され、暗号データが生成される様子を示している(符号61→62→63参照)。また、暗号データが復号され、平文データが生成される様子を示している(符号63→64→65参照)。
【0033】
既に説明した通り、既存技術を応用した場合、鍵を発行する第三者サーバが必要になり、コストが増加する。そこで、本実施例では、
図6に示すように、サービス秘密鍵SSkを保持した鍵生成機能を復号機能と同一環境で実施するようにしている(符号65参照)。言い換えると、鍵生成部21を暗号化・復号部22と同一環境のユーザ端末U1に備えている。これにより、復号の度に外部に問い合わせをせずに高速化を図ることが可能であり、また、鍵生成サーバが不要になる。更に、プログラム組み込みのサービス秘密鍵SSkに基づく復号鍵DSkを生成でき、暗号文の汎用性が向上するメリットもある。
【0034】
なお、サービス秘密鍵SSkをサイドチャネル攻撃などにより取得されるリスクがあるが、復号の条件を秘匿化することで、サービス秘密鍵SSk単体では暗号化データに対応した復号鍵DSkを生成できない。条件が判明すると、偽装などの攻撃が考えられ、安全性を確保できなくなるため、ハッシュ化しておくのが望ましい(後述する)。
【0035】
図7は、本発明の実施の形態に係る暗号化システムの説明図である。既に説明した通り、既存技術では、可用性を確保するシステムにおける復号条件の取得方法と内容が具体化されていない。そこで、本実施例では、
図7に示すように、復号条件の取得方法と内容を具体化している。図中の「○」は可能(推奨)を意味し、「△」は可能を意味し、「×」は不可を意味する。偽造が困難で、社内外で利用できる条件を前提に、必要に応じてオフライン利用をサポートする条件が望ましい。
【0036】
例えば、自社利用ファイルについては、f(Oauth=A & SAML=B)のように、安全性の高い外部証明をメインに利用し、複数中分類を併用してもよい。また、他社共有ファイルについては、f(Oauth=A & SAML=B | Oauth=C & SAML=D)のように、自社利用ファイルをベースに、他社で利用できる外部証明を追加指定し、複数中分類を併用してもよい。また、自社オフライン持ち出しファイルについては、f(Oauth=A & SAML=B | mail=C & TPM=D & WiFi SSID=E)のように、自社利用ファイルをベースに、オフライン時は内部証明を追加し、複数中分類を併用してもよい。また、他社オフライン持ち出しファイルについては、f(Oauth=A & SAML=B | Oauth=C & SAML=D | mail=E & TPM=F & WiFi SSID=G)のように、他社共有ファイルをベースに、オフライン時は内部証明を追加し、複数中分類を併用してもよい。
【0037】
図8は、本発明の実施の形態に係る暗号化システムの説明図である。既に説明した通り、既存技術では、可用性を確保するシステムにおける復号条件の取得方法と内容が具体化されていない。そこで、本実施例では、以下に説明するように、インターネットからの条件確認、LANでの条件確認、Local(当該ユーザ端末)での条件確認を適宜選択することが可能となっている。
【0038】
ここで、インターネットからの条件確認としては、ユーザ認証部3Aに正規ユーザであることを確認してもらうこと、時刻管理部3Bから復号可能時刻であることを確認してもらうこと、認可部3Cからファイルへのアクセス可否を確認してもらうことが該当する。具体的には、
図8に示すように、XML,REST,NTPなどのプロトコルによってサーバ応答結果を返送してもらう。条件比較は平文のみとなるので、復号可能環境での攻撃により偽装が可能となる。偽装対策のため、サーバ応答に含まれる電文以外にも電文への署名やSSLなどの識別情報が添付された場合のみ利用するようにする。
【0039】
また、LANでの条件確認としては、オフィス内アクセスであることを周辺社員から確認してもらうことが該当する。具体的には、XMPPなどのメッセンジャープロトコルによって同暗号化ツールを利用している環境内で作成者を探し、承認の要求とその応答をもらう。例えば、承認電文としては、ユーザが決めた合言葉などを用いることができる。
【0040】
更に、Localでの条件確認としては、環境情報(端末情報,位置情報)を条件に対応して利用すること、ユーザ情報(メールアドレス等一意に判定できる情報)を条件に対応して利用することが該当する。
【0041】
図9は、本発明の実施の形態に係る暗号化システムの説明図である。ここでも、
図6と同様、平文データが暗号化され、暗号データが生成される様子を示している(符号71→72→73参照)。また、暗号データが復号され、平文データが生成される様子を示している(符号73→74→75参照)。サービス秘密鍵SSkを保持した鍵生成機能を復号機能と同一環境で実施する点も同様である(符号75参照)。
【0042】
既に説明した通り、既存技術では、復号条件f(x=A&xx=B)をそのまま暗号データに記載するため、偽装が可能で機密性が低下する。そこで、本実施例では、条件をc=(Hash(x=A&xx=B),x&xx)とし、ハッシュ値cを暗号データに記載するようにしている。そして、ハッシュ値cに含まれるx&xxに相当するパラメータを取得し、ハッシュを取ることで、条件に対応するパラメータを確認できなくする。復号テスト時はx&xxに対応するパラメータを代入し、ハッシュを取り、そのハッシュ値が暗号データに記載されているハッシュ値cと一致するか確認する。ハッシュが一致しない場合は復号鍵DSkを生成することなく復号エラーを表示してもよい。
【0043】
このような構成によれば、サービス秘密鍵SSkがサイドチャネル攻撃で漏洩しても、復号条件が特定されない限り、暗号データを復号できる復号鍵DSkが生成できない。すなわち、システムとして、復号条件によって機密性を確保できる。鍵生成ではパラメータに対して復号鍵DSkを生成するため、暗号文内の条件文記載方法に影響を受けない。
【0044】
以下、具体例を挙げながら本暗号化システムの構成を更に詳しく説明する。
【0045】
図10は、本発明の実施の形態に係る暗号化システムの利用時のファイル操作手順の説明図である。ここでは、LANなどのネットワーク2Aを介して接続されたユーザ端末U1とユーザ端末U1´との間でファイルを送受信する場合について説明する。
【0046】
まず、ユーザ端末U1におけるファイル読み出し時について説明する。アプリケーション40は、ファイルの読み出しを暗号化機能部20に対して要求する。暗号化機能部20は、要求のあったアプリケーションをファイル管理部23で確認し、復号が必要な場合、HDD30から暗号ファイルF2を読み出し、条件確認機能部10へ問い合わせる。条件確認機能部10は、ファイルの復号条件とユーザ端末U1の環境条件から復号可否を確認し、復号可能の場合、環境条件を暗号化機能部20へ返送する。暗号化機能部20は、条件確認機能部10から受信した環境条件を用いて鍵生成部21で復号鍵を生成し、暗号化・復号部22で復号する。復号済みデータはメモリ経由でアプリケーション40へ返送される。アプリケーション40は、暗号化機能部20から受け取った平文データを読み込む。
【0047】
次に、ユーザ端末U1におけるファイル書き込み時について説明する。アプリケーション40は、ファイルの書き込みを暗号化機能部20に対して要求する。暗号化機能部20は、要求のあったファイル・アプリケーションをファイル管理部23で確認し、暗号化対象の場合、デフォルトの復号条件を適用して暗号化する。暗号データはHDD30へ書き込む。
【0048】
次に、ユーザ端末U1’におけるファイル読み出し時について説明する。アプリケーション40’は、ファイルの読み出しを暗号化機能部20’に対して要求する。暗号化機能部20’は、要求のあったアプリケーションをファイル管理部23’で確認し、復号が必要な場合、HDD30’から暗号ファイルF2’を読み出し、条件確認機能部10’へ問い合わせる。条件確認機能部10’は、ファイルの復号条件とユーザ端末U1’の環境条件から復号可否を確認し、復号可能の場合、環境条件を暗号化機能部20’へ返送する。暗号化機能部20’は、条件確認機能部10’から受信した環境条件を用いて鍵生成部21’で復号鍵を生成し、暗号化・復号部22’で復号する。復号済みデータはメモリ経由でアプリケーション40’へ返送される。アプリケーション40’は、暗号化機能部20’から受け取った平文データを読み込む。
【0049】
次に、ユーザ端末U1,U1’間のファイル送受信時について説明する。アプリケーション40は、ファイルの読み出しを暗号化機能部20に対して要求する。暗号化機能部20は、要求のあったアプリケーションをファイル管理部23で確認し、外部持ち出しなど復号が必要ない場合、HDD30から暗号ファイルF2を読み出し、ユーザに権限変更の要否を確認し、アプリケーション40へ応答する。アプリケーション40は、暗号ファイルF2を外部のアプリケーション40’へ送信する。アプリケーション40’は、暗号ファイルF2を受信し、HDD30’に保存する。
【0050】
図11は、本発明の実施の形態に係る暗号化システムの説明図である。この図に示すように、鍵発行局の構成としては暗号化ツール組み込みを採用するのが望ましい。すなわち、鍵発行局を持たずに、サービス秘密鍵SSkとサービス公開鍵SPkの双方を公開する。クライアント端末内で、自環境に対する復号鍵DSkを発行する。このような構成によれば、サービス秘密鍵SSkを安全性の担保にするのではなく、復号条件特定の複雑さを利用することで、共通の鍵発行局を用いなくても暗号化システムを利用できる。ただし、復号条件の特定、偽装が安全性に与える影響が大きいため、鍵生成機能を復号機能と同一環境で実施する必要がある。
【0051】
図12は、本発明の実施の形態に係る暗号化システムの説明図である。この図に示すように、復号条件に対する処理としてはハッシュ化を行うのが望ましい。すなわち、復号環境条件をハッシュ化して、ハッシュが一致する場合、復号可能とする。このような構成によれば、ハッシュ化により難読化し、偽装対策とオフラインでの復号可能性の双方を確保できる。ただし、条件に設定された数値の取りうる範囲がMD5(“部長”)のように容易に推測できる物だけでは、総当りによる偽装の可能性があるため、簡単に確認できるもの以外に値域が広い条件も利用することを条件とする。
【0052】
以上説明したように、本発明の実施の形態に係る暗号化システムが備えるユーザ端末U1は、関数型暗号による暗号化システムに利用されるユーザ端末であって、復号条件に基づいて復号可否を確認する条件確認機能部10と、条件確認機能部10により復号可能であることが確認された場合、その復号条件に応じた復号鍵DSkをプログラム組み込みのサービス秘密鍵SSkに基づいて生成する鍵生成部21と、鍵生成部21により生成された復号鍵DSkを用いてファイルを復号する暗号化・復号部22とを備える。これにより、関数型暗号による暗号化システムを構築する場合でも、鍵発行局などの外部サーバが不要であるため、ネットワーク切断や該当サーバの過負荷によりシステムの「可用性」が低下する問題が発生しない。
【0053】
また、復号条件は、インターネット、LAN、及び当該ユーザ端末U1(Local)に分散して配置される。これにより、復号条件に合わせた情報をインターネット、LAN、またはLocalから取得することができるため、ネットワーク切断や該当サーバの過負荷に影響を受けにくい。
【0054】
また、復号条件をハッシュ化して暗号データに記載しておき、その暗号データに記載されているハッシュ値と復号テスト時に算出したハッシュ値とが一致する場合に復号可能であると判定する。これにより、ハッシュが一致しない場合は復号鍵DSkを生成することなく復号エラーを表示することができるため、復号処理を軽減することが可能である。もちろん、ハッシュ化することにより復号条件への攻撃を防止する効果もある。
【0055】
なお、ここでは、関数型暗号による暗号化システムを例示したが、本発明はこれに限定されるものではない。例えば、IDベース暗号や属性ベース暗号などによる暗号化システムに本発明を適用することも可能である。
【0056】
また、本発明は、このようなユーザ端末U1として実現することができるだけでなく、このようなユーザ端末U1が備える特徴的な処理部をステップとする暗号化復号方法として実現したり、それらのステップをコンピュータに実行させるプログラムとして実現したりすることもできる。そして、そのようなプログラムは、CD−ROM等の記録媒体やインターネット等の伝送媒体を介して配信することができるのは言うまでもない。