JP2009049731A - 暗号化方法,復号方法,および,鍵管理方法 - Google Patents
暗号化方法,復号方法,および,鍵管理方法 Download PDFInfo
- Publication number
- JP2009049731A JP2009049731A JP2007214250A JP2007214250A JP2009049731A JP 2009049731 A JP2009049731 A JP 2009049731A JP 2007214250 A JP2007214250 A JP 2007214250A JP 2007214250 A JP2007214250 A JP 2007214250A JP 2009049731 A JP2009049731 A JP 2009049731A
- Authority
- JP
- Japan
- Prior art keywords
- content
- key
- encryption
- encrypted
- decryption
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】
ユーザ権限に応じて,コンテンツの部分的に開示可能にする暗号化方法において,復号時に復号結果の検証を可能にする。
【解決手段】
暗号化対象コンテンツをひとつ以上のブロックに分割し,個々のブロックに対して,共通鍵暗号技術におけるコンテンツ暗号化鍵をランダムに生成,生成されたコンテンツ暗号化鍵を用いて各ブロックを暗号化する。さらに,ユーザ権限に応じた選択的に開示できるよう,ユーザに閲覧権限のあるデータのコンテンツ暗号化鍵を連結し,さらに全てのブロックの暗号文を連結して得られたハッシュ値と連結して,予め権限のあるユーザに割り当てられた公開鍵暗号技術の公開鍵を用いて暗号化し鍵暗号化データを作成する。復号時には,鍵暗号データを復号し,復号したハッシュ値と受信したデータ暗号化部のハッシュ値を比較し,復号結果の完全性を検証する。
【選択図】図1
ユーザ権限に応じて,コンテンツの部分的に開示可能にする暗号化方法において,復号時に復号結果の検証を可能にする。
【解決手段】
暗号化対象コンテンツをひとつ以上のブロックに分割し,個々のブロックに対して,共通鍵暗号技術におけるコンテンツ暗号化鍵をランダムに生成,生成されたコンテンツ暗号化鍵を用いて各ブロックを暗号化する。さらに,ユーザ権限に応じた選択的に開示できるよう,ユーザに閲覧権限のあるデータのコンテンツ暗号化鍵を連結し,さらに全てのブロックの暗号文を連結して得られたハッシュ値と連結して,予め権限のあるユーザに割り当てられた公開鍵暗号技術の公開鍵を用いて暗号化し鍵暗号化データを作成する。復号時には,鍵暗号データを復号し,復号したハッシュ値と受信したデータ暗号化部のハッシュ値を比較し,復号結果の完全性を検証する。
【選択図】図1
Description
本発明はディジタルコンテンツの暗号化,復号方法に係わり,権限に応じた,ディジタルコンテンツの選択的な開示を可能とする技術である。
近年,情報通信機器の発展によって,従来紙で行われていた業務処理が電子化されるようになってきている。これに伴い,従来紙で行われていた書類の申請・承認などの手続き(業務フロー)も,ネットワークを利用して電子的に行われるようになってきている(例えば,特許文献1)。このようなネットワークを通してやり取りされるディジタルコンテンツには,例えば個人情報など,そのディジタルコンテンツを閲覧するユーザによっては開示が制限されるべき情報も含まれている。このような情報は,一度漏洩してしまうと,損害補償,信頼の失墜など,計り知れない損害を与えることになる。
ここでコンテンツとは,申請書や申込書や会議の議事録などに記載された文章,音声,または映像などの記録,或いはこれらの2つ以上を任意に組み合わせた情報のことであり,特にこれらがディジタルデータとして表現されている場合,ディジタルコンテンツと呼ぶ。ただし,以下の説明においては,ディジタルコンテンツを単にコンテンツという。
従来,ユーザの役割に応じてコンテンツを選択的に開示する場合には,コンテンツをデータベースで一元的に管理し,データベースへのアクセスを制御することによって,権限のないユーザに情報を開示しないようにする方法がとられている。また,ネットワークを通してやり取りされるコンテンツに対しては,暗号化を行うことによって情報を保護する方法が知られている。
従来,ネットワークを介してコンテンツを安全にやり取りするために暗号化を行う場合の議論は,主に,送信者と受信者が1対1である場合について行われている。この場面で用いる暗号化においては,復号結果が正しく復号できたか否かを検証可能な方法が知られている。例えば,サイズの大きいコンテンツを,公開鍵暗号を用いて暗号化する手法としてハイブリット暗号が知られているが,ハイブリット暗号では,以下のような方法によって復号結果が正しく復号されたか否かを検証する方法が知られている。
ハイブリット暗号とは,共通鍵暗号技術における鍵(以下では,コンテンツ暗号化鍵と呼ぶ)を用いてコンテンツの暗号化を行い,コンテンツ暗号化鍵を公開鍵暗号技術における公開鍵を用いて暗号化する方法である。
以下では,暗号化されたコンテンツを暗号化コンテンツと呼び,暗号化コンテンツ内のコンテンツを共通鍵暗号技術によって暗号化された結果をコンテンツ暗号化データ,コンテンツ暗号化鍵を公開鍵暗号技術によって暗号化した結果を鍵暗号化データとそれぞれ呼ぶ。
このハイブリット暗号においては,コンテンツ暗号化鍵の公開鍵によって暗号化する際,暗号化対象のデータのハッシュ値を含めて暗号化処理を行う方法やコンテンツ暗号化鍵の生成時に,MAC(Message Authentication Code)用の鍵を同時に生成し,コンテンツに対してMACの生成を付与し,これを暗号化コンテンツに付与する方法が知られている。これらの方法によって,暗号化コンテンツを復号する際,鍵暗号化データから得られるハッシュ値(或いは,暗号化コンテンツに付与されたMAC)と,コンテンツ暗号化データを復号した結果から計算することによって得られるハッシュ値(或いは,MAC)を比較することによって,復号結果の完全性を検証する方法が知られている。
暗号技術を用いて,コンテンツを権限のないユーザに対して開示しないようにする方法としては,ユーザに配付する鍵を工夫することによって,ひとつのコンテンツを複数のユーザに配付する場合に,特定のユーザにのみコンテンツが開示されるように,暗号化する方法(例えば,非特許文献2)などが知られている。
また,部分暗号化を用いることによって,例えば個人情報などのコンテンツ内の特定部分を,特定のユーザにのみ開示する方法が知られている。例えば,非特許文献1は,汎用的なデータ記述言語であるXML(eXtended Markup Language)における暗号化の標準であるが,本標準の中では,XMLなどのコンテンツの一部分だけを暗号化する方法がサポートされており,これを用いることによって,上記の部分暗号化を実現できる。
"XML Encryption Syntax and Processing", [online], W3C Recommendation, 10 December, 2002, [平成19年5月24日検索], インターネット<URL:http://www.w3.org/xmlenc-core/>
Y. Dodis and N. Fazio, "Public-key Broadcast Encryption for Stateless Receivers", Digital Rights Management, DRM’02,LNCS 2696,pp.61−80,2002.
M. Abe, R. Gennaro, K. Kurosawa, "Tag-KEM/DEM:A New Framework for Hybrid Encryption", [online], Cryptology ePrint Archive: Report 2005/027, [平成19年5月24日検索], インターネット<http://eprint.iacr.org/2005/027>
前述のとおり,非特許文献2によって,ひとつのコンテンツを複数のユーザに送信した場合に,特定のユーザだけにコンテンツが閲覧できるようにコンテンツを暗号化して送付する方法が知られている。しかしながら,非特許文献2では,コンテンツの一部の開示・非開示を,受信したユーザに応じて,制御する方法については述べられていない。
また,非特許文献1による部分暗号化を用いた場合,コンテンツを複数のユーザに同時に配信した場合に,受信したユーザがその部分を復号するための秘密鍵を持つか否かによって,コンテンツの部分的な選択的な開示を行うことができる。しかしながら,このような部分暗号化を用いた場合には,復号結果が正しく復号されたか否かを検証する方法については知られていない。
復号結果が正しく復号されたか否かの検証を可能とする方法としては,前述のとおり非特許文献3に挙げたような方法が知られているが,このような場合には1対1通信におけるコンテンツの暗号化を対象としており,上記のようなコンテンツを受信したユーザに応じて,その一部を選択的に開示するような暗号化方法に対して,その復号結果が正しく復号できたか否かの完全性検証を行う方法は知られていない。
例えば,非特許文献3に挙げられたように,コンテンツ全体に対するハッシュ値やMACの計算を行い,これを用いて復号時に復号結果の完全性検証を行うような方法では,本発明で述べる受信するユーザの秘密鍵に応じて,復号結果が異なるような暗号化方法には適用することができない。なぜならば,上記のハイブリット暗号のような1対1通信における暗号化では,受信した暗号文全体の完全性を検証すればよいのに対して,ユーザに応じて復号結果が異なるような暗号化においては,完全性を保証すべき範囲が状況に応じて異なる場合があるためである。さらに,受信した暗号化コンテンツ全体の完全性を保証する場合には,非特許文献3に挙げられたようなコンテンツ全体に対するハッシュ値を計算するだけでは,不十分な場合もある。
本発明は,暗号技術による,受信したユーザに応じて,コンテンツを部分的に選択的に開示することと,復号結果が正しく復号されたかの完全性を検証すること,の両立を可能にする技術を提供する。
また,本発明は,コンテンツ内のある同一領域を,権限の異なる複数のユーザが閲覧することを可能とする技術を提供する。
また,本発明は,コンテンツ内のある同一領域を,権限の異なる複数のユーザが閲覧することを可能とする技術を提供する。
具体的には,コンテンツを,複数の領域に分割し,各領域(以下,部分コンテンツという)ごとに共通鍵暗号技術における鍵(コンテンツ暗号化鍵)を別々に生成し,各部分コンテンツの暗号化を行う。さらに,生成したコンテンツ暗号化鍵一つについて,そのコンテンツを閲覧するユーザの権限毎に予め設定された公開鍵暗号技術の公開鍵を用いて,それぞれ暗号化を行う。コンテンツ暗号化鍵の暗号化の際には,同一権限のユーザが閲覧できる領域がひとつ以上ある場合には,これらのコンテンツ暗号化鍵を連結する。さらに,各々の部分コンテンツの暗号化結果(暗号化部分コンテンツ)を連結したデータ(コンテンツ暗号化データ)のハッシュ値)を求め,上記連結されたコンテンツ暗号化鍵と連結し,連結したデータに対して暗号化処理を行う。以下では,この暗号化結果を部分鍵暗号化データと呼び,これらをまとめたデータを鍵暗号化データとよぶ。
上記の処理によって生成される暗号化処理後のコンテンツ(暗号化コンテンツ)は,コンテンツ暗号化データと鍵暗号化データを含んで構成される。上記暗号化コンテンツは,さらに,コンテンツの区切り情報や,どの領域がどの権限を持つユーザによって閲覧できるか(アクセス制御情報)などの情報をさらに含んでも良い。
上記によって生成されたコンテンツを復号する際には,上記暗号化に用いた公開鍵に対応するひとつ以上の秘密鍵を用いて、前述の鍵暗号化データを復号し、その復号結果から得られるハッシュ値と,コンテンツ暗号化データから再計算によって得られるハッシュ値との比較を行う。比較結果が一致した場合には,前述の鍵暗号化データから得られたコンテンツ暗号化鍵を用いて,コンテンツ暗号化データの復号を行うが,比較結果が一致しなかった場合には,コンテンツ暗号化データの復号を行わない。このとき、復号時に利用する秘密鍵をユーザの権限に対応付けて、生成、配付を行うことによって、ユーザの権限に応じた選択的開示、と上記ハッシュ値を利用したコンテンツの完全性検証が可能となる。
また,例えば,上記ハッシュ値の計算において、公開鍵ごとに,復号可能な部分の暗号化部分コンテンツ(或いは,暗号化前の部分コンテンツ)を連結して,そのハッシュ値を計算するようにしてもよい。このようにすることによって、上記の完全性検証の範囲をユーザごとに必要部分(復号可能な部分)を検証するようにしてもよい。
なお、上記の例では暗号化コンテンツの特徴量としてハッシュ値を用いた場合について述べたが、これはメッセージ認証子(MAC:Message Authentication Code)や電子署名値であってもよい。特に、暗号化コンテンツ全体の完全性を保証したい場合には、上記のハッシュ値を用いた方法よりは電子署名値を用いた方法が有用である。
より具体的な本発明の態様の一つは,ディジタルコンテンツの暗号化方法であって,
暗号化装置が,
ディジタルコンテンツを複数の部分コンテンツに分割し,
共通鍵暗号技術による,上記部分コンテンツごとに異なるコンテンツ暗号化鍵を用いて,各々の上記部分コンテンツを暗号化した暗号化部分コンテンツを生成し,
ユーザ権限ごとに,復号可能な上記暗号化部分コンテンツを割り当て,
割り当てられた上記暗号化部分コンテンツを生成した一つ以上の上記コンテンツ暗号化鍵と,上記暗号化部分コンテンツを復号する際の完全性の検証に用いる,ユーザ権限ごとの上記暗号化部分コンテンツの特徴量の完全性検証用データと,を,公開鍵暗号技術による上記ユーザ権限ごとに異なる公開鍵を用いて暗号化した鍵暗号化データを生成し,
上記暗号化部分コンテンツと上記鍵暗号化データとを含む暗号化ディジタルコンテンツを生成する
ことを特徴とする。
暗号化装置が,
ディジタルコンテンツを複数の部分コンテンツに分割し,
共通鍵暗号技術による,上記部分コンテンツごとに異なるコンテンツ暗号化鍵を用いて,各々の上記部分コンテンツを暗号化した暗号化部分コンテンツを生成し,
ユーザ権限ごとに,復号可能な上記暗号化部分コンテンツを割り当て,
割り当てられた上記暗号化部分コンテンツを生成した一つ以上の上記コンテンツ暗号化鍵と,上記暗号化部分コンテンツを復号する際の完全性の検証に用いる,ユーザ権限ごとの上記暗号化部分コンテンツの特徴量の完全性検証用データと,を,公開鍵暗号技術による上記ユーザ権限ごとに異なる公開鍵を用いて暗号化した鍵暗号化データを生成し,
上記暗号化部分コンテンツと上記鍵暗号化データとを含む暗号化ディジタルコンテンツを生成する
ことを特徴とする。
上記暗号化方法において,さらに,
上記暗号化装置が,
上記特徴量として,ひとつ以上の,上記部分コンテンツ,または,上記暗号化部分コンテンツをまとめたデータのハッシュ値を求め,
上記ハッシュ値を上記完全性検証用データとしてもよい。
上記暗号化装置が,
上記特徴量として,ひとつ以上の,上記部分コンテンツ,または,上記暗号化部分コンテンツをまとめたデータのハッシュ値を求め,
上記ハッシュ値を上記完全性検証用データとしてもよい。
または,上記暗号化装置が,
上記ユーザ権限ごとに,メッセージ認証子生成用鍵を生成し,
ひとつ以上の,上記部分コンテンツ、または、上記暗号化部分コンテンツと、上記鍵暗号化データとをまとめたデータに,上記メッセージ認証子生成用鍵を作用させて,上記特徴量としてメッセージ認証子を作成し,
上記メッセージ認証子生成用鍵と上記メッセージ認証子とを上記完全性検証用データとしてもよい。
上記ユーザ権限ごとに,メッセージ認証子生成用鍵を生成し,
ひとつ以上の,上記部分コンテンツ、または、上記暗号化部分コンテンツと、上記鍵暗号化データとをまとめたデータに,上記メッセージ認証子生成用鍵を作用させて,上記特徴量としてメッセージ認証子を作成し,
上記メッセージ認証子生成用鍵と上記メッセージ認証子とを上記完全性検証用データとしてもよい。
または,上記暗号化装置が,
電子署名生成のための署名生成用秘密鍵と署名検証用公開鍵の生成を行い,
ひとつ以上の,上記部分コンテンツ、または、上記暗号化部分コンテンツと、上記鍵暗号化データとをまとめたデータに,生成した上記署名生成用秘密鍵を作用させて,上記特徴量として,署名値を求め,
生成した上記署名検証用公開鍵と上記署名値とを上記完全性検証用データとしてもよい。
電子署名生成のための署名生成用秘密鍵と署名検証用公開鍵の生成を行い,
ひとつ以上の,上記部分コンテンツ、または、上記暗号化部分コンテンツと、上記鍵暗号化データとをまとめたデータに,生成した上記署名生成用秘密鍵を作用させて,上記特徴量として,署名値を求め,
生成した上記署名検証用公開鍵と上記署名値とを上記完全性検証用データとしてもよい。
本発明の他の態様は,上記暗号化方法によって暗号化されたディジタルコンテンツの復号方法であって,
復号装置が,
上記ユーザ権限に対して割り当てられた秘密鍵のいずれかを用いて,
当該秘密鍵に対応する公開鍵によって暗号化された鍵暗号化データを復号し,
復号結果から当該公開鍵によって暗号化された,上記ひとつ以上のコンテンツ暗号化鍵を抽出し,
上記抽出されたコンテンツ暗号化鍵によって暗号化された結果である暗号化部分コンテンツの復号を行い,
復号された暗号化部分コンテンツを用いた復号ディジタルコンテンツを生成する
ことを特徴とするものである。
復号装置が,
上記ユーザ権限に対して割り当てられた秘密鍵のいずれかを用いて,
当該秘密鍵に対応する公開鍵によって暗号化された鍵暗号化データを復号し,
復号結果から当該公開鍵によって暗号化された,上記ひとつ以上のコンテンツ暗号化鍵を抽出し,
上記抽出されたコンテンツ暗号化鍵によって暗号化された結果である暗号化部分コンテンツの復号を行い,
復号された暗号化部分コンテンツを用いた復号ディジタルコンテンツを生成する
ことを特徴とするものである。
また,本発明のさらに他の態様は,上記暗号化方法で用いる鍵管理方法であって,
鍵管理装置が,
ユーザと,ユーザ権限,それぞれに対し公開鍵暗号技術における秘密鍵と公開鍵の割り当てを行い,
上記ユーザと,上記ユーザ権限との対応関係に基づき,上記ユーザが有するユーザ権限の秘密鍵を当該ユーザの公開鍵を用いて暗号化し,
暗号化した上記ユーザ権限の秘密鍵を鍵更新装置に送付し,
上記鍵更新装置が,
上記ユーザに割り当てられた秘密鍵を用いて,上記暗号化されたユーザ権限の秘密鍵を復号する
ことを特徴とするものである。
鍵管理装置が,
ユーザと,ユーザ権限,それぞれに対し公開鍵暗号技術における秘密鍵と公開鍵の割り当てを行い,
上記ユーザと,上記ユーザ権限との対応関係に基づき,上記ユーザが有するユーザ権限の秘密鍵を当該ユーザの公開鍵を用いて暗号化し,
暗号化した上記ユーザ権限の秘密鍵を鍵更新装置に送付し,
上記鍵更新装置が,
上記ユーザに割り当てられた秘密鍵を用いて,上記暗号化されたユーザ権限の秘密鍵を復号する
ことを特徴とするものである。
また,上記暗号化方法において,上記暗号化装置が,
第一の順序制御用乱数を生成し,
一つ以上の上記コンテンツ暗号化鍵を含む第一のコンテンツ暗号化鍵集合と,上記順序制御用乱数とを連結し,
上記連結したデータを,上記ユーザ権限に対して割り当てられた公開鍵を用いて暗号化し,
上記暗号化結果を,一つ以上の上記コンテンツ暗号化鍵を含む,上記第一のコンテンツ暗号化鍵集合とは異なる,第二のコンテンツ暗号化鍵集合の暗号化に用いる第二の順序制御用乱数としてもよい。
第一の順序制御用乱数を生成し,
一つ以上の上記コンテンツ暗号化鍵を含む第一のコンテンツ暗号化鍵集合と,上記順序制御用乱数とを連結し,
上記連結したデータを,上記ユーザ権限に対して割り当てられた公開鍵を用いて暗号化し,
上記暗号化結果を,一つ以上の上記コンテンツ暗号化鍵を含む,上記第一のコンテンツ暗号化鍵集合とは異なる,第二のコンテンツ暗号化鍵集合の暗号化に用いる第二の順序制御用乱数としてもよい。
また,上記暗号化方法によって暗号化されたディジタルコンテンツの復号方法として,
復号装置が,
上記ユーザ権限に対して割り当てられた秘密鍵を取得し,
第二の上記順序制御用乱数を,上記取得した秘密鍵を用いて復号し,
上記第二の順序制御用乱数の復号結果から,上記第一の順序制御用乱数と第二のコンテンツ暗号化鍵集合とを抽出し,
上記第二のコンテンツ暗号化鍵集合に含まれるコンテンツ暗号化鍵を用いて,暗号化された部分コンテンツを復号して復号ディジタルコンテンツの生成を行い,
上記第一の順序制御用乱数と,上記暗号化された複数の部分コンテンツと,を用いた暗号化ディジタルコンテンツを生成してもよい。
復号装置が,
上記ユーザ権限に対して割り当てられた秘密鍵を取得し,
第二の上記順序制御用乱数を,上記取得した秘密鍵を用いて復号し,
上記第二の順序制御用乱数の復号結果から,上記第一の順序制御用乱数と第二のコンテンツ暗号化鍵集合とを抽出し,
上記第二のコンテンツ暗号化鍵集合に含まれるコンテンツ暗号化鍵を用いて,暗号化された部分コンテンツを復号して復号ディジタルコンテンツの生成を行い,
上記第一の順序制御用乱数と,上記暗号化された複数の部分コンテンツと,を用いた暗号化ディジタルコンテンツを生成してもよい。
また,上記暗号化方法において,上記暗号化装置が,
上記分割により得られた部分コンテンツをさらに複数の小領域に分割し,
上記部分コンテンツごとに生成された上記コンテンツ暗号化鍵から上記小領域ごとの小領域暗号化鍵を生成し,
生成された小領域暗号化鍵を用いて,分割により得られた上記小領域を暗号化してもよい。
上記分割により得られた部分コンテンツをさらに複数の小領域に分割し,
上記部分コンテンツごとに生成された上記コンテンツ暗号化鍵から上記小領域ごとの小領域暗号化鍵を生成し,
生成された小領域暗号化鍵を用いて,分割により得られた上記小領域を暗号化してもよい。
本発明によれば,受信したユーザに応じた,部分コンテンツの選択的な開示と,復号結果の完全性の検証と,の両立が可能となる。
また,本発明によれば,権限の異なる複数のユーザによる,部分コンテンツの閲覧が可能になる。
以下,本発明の実施例を詳細に説明する。
図1は,第一の実施例におけるコンテンツの流通を例示した図である。図示したように,本システムでは,コンテンツ120を暗号化する暗号化装置102と暗号化コンテンツ121を受信する復号装置A103,復号装置B104,復号装置C105がネットワーク100を介して,送受信を行う。なお,図では暗号化コンテンツ121は,ネットワーク100を介して送受信が行われているが,これと異なっていてもよい。例えば,暗号化コンテンツ121を,USBメモリなどの外部記憶媒体に記録して,オフラインで復号装置に与えてもよい。また,図では,復号装置A103,復号装置B104,復号装置C105の復号装置から構成された図を示したが,復号装置は必ずしも三台である必要はない。さらに,図では暗号化装置102には公開鍵A111,公開鍵B112,公開鍵C113が,また,復号装置A103,復号装置B104,復号装置C105には,それぞれ秘密鍵A114,秘密鍵B115,秘密鍵C116が格納されているが,必ずしもこのとおりでなくともよく,暗号化装置102に3つ以上の公開鍵を格納してもよい。また,秘密鍵に対しては,セキュリティの観点から,ICカードなどの耐タンパ性を有する媒体を用いて格納し,復号時に復号装置に具備された読取装置を介して、ICカードを供給することによって,復号処理が行えるようにすることが望ましい。
以下では,復号装置A103,復号装置B104,復号装置C105,秘密鍵A114,秘密鍵B115,秘密鍵C116,及び,公開鍵A111,公開鍵B112,公開鍵C113,を区別する必要性がない場合,これらを単に復号装置,秘密鍵,公開鍵と呼ぶ。なお,復号装置と暗号化装置は,必ずしも別々の装置である必要はなく,同一の装置であってもよい。
鍵管理装置101は,権限と秘密鍵,公開鍵の対応付けを行い,さらにユーザに権限に応じた秘密鍵の配付を行うとともに,公開鍵の暗号化装置102への公開,配付を行う。なお,公開鍵の暗号化装置102への公開は,例えば,Webサーバなどを用いて,各ユーザやグループなどの情報,及び,対応する公開鍵の情報が暗号化装置102からアクセスできるようにし,暗号化装置102は暗号時,或いは,それ以前に暗号化に必要な公開鍵を上記Webサーバから取得できるようにすればよい。また,このとき,Webサーバから取得した公開鍵が,鍵管理装置101で管理されているものであることを確認するために,公開鍵に対して公開鍵証明書を発行することが望ましい。
なお,前述のとおり,秘密鍵については,セキュリティ上の観点からは,ICカードなどの耐タンパ性を有する記憶媒体に格納しておくことが望ましい。また,上記のようにWebサーバを用いて公開鍵を公開する場合でも,Webサーバと鍵管理装置101を別々に実装するなど,秘密鍵が直接ネットワーク100から閲覧できないようにすることが望ましい。
図2は,暗号化装置102の構成の概略を示した図である。暗号化装置102は,CPU207と,CPU207の作業領域として機能するRAM208と,HDなどの外部記憶装置209と,当該電子計算機220が利用可能な,FD,CD−ROMなどの着脱可能な外部記憶媒体201からデータを取り込む読取装置205と,ディスプレイなどの出力装置205と,マウスやキーボードなどの入力装置203と,ネットワークを介して他の装置と通信を行う通信装置207と,上記の各構成要素間のデータ通信をつかさどるインターフェイス206と,を含んで構成される,一般的な構成を有する電子計算機220である。
また,暗号化装置102の外部記憶装置209には,コンテンツ作成・読込プログラム223(以下プログラムを単にPGと記す),暗号化PG222,コンテンツ送信PG221が格納される。これらのプログラムは,CPU207において実行され,それぞれコンテンツ作成・読込処理部225,暗号化処理部226,及び,コンテンツ送信処理部227という処理部が,当該装置上に具現化される。また,暗号化装置102の外部記憶装置209には,暗号化対象となるコンテンツ120,及び,暗号化の結果えられる暗号化コンテンツ121,暗号化時に利用する公開鍵210が格納される。なお,公開鍵210は,必要に応じてひとつ以上,外部記憶装置209に格納される。
復号装置も暗号化装置102と同様の構成を持つ。ただし,復号装置の外部記憶装置209には,暗号化コンテンツ106,秘密鍵,及び,コンテンツ受信PG,コンテンツ送信PG221,復号PG,復号コンテンツ表示PGが格納される。なお,暗号化装置102と同様に,コンテンツ受信PG,コンテンツ送信PG,復号PGは,CPU207により実行され,それぞれコンテンツ受信処理部,コンテンツ送信処理部,復号処理部,復号コンテンツ表示処理部が,当該装置上に具現化される。
鍵管理装置101も暗号化装置102と同様の構成を持つ。ただし,鍵管理装置101の外部記憶装置209には,鍵管理PG,秘密鍵・公開鍵生成PG,公開鍵配付PG,秘密鍵配付PG,公開鍵,秘密鍵が格納される。なお,鍵管理PG,秘密鍵・公開鍵生成PG,公開鍵配付PG,秘密鍵配付PGは,暗号化装置102と同様に,CPU207によって実行され,鍵管理処理部,秘密鍵・公開鍵生成処理部,公開鍵配付処理,秘密鍵配付処理部が,当該装置上に具現化される。
これらのプログラムは,あらかじめ,上記電子計算機220内のRAM208または外部記憶装置209に格納されていても良いし,必要なときに,上記外部記憶媒体201から,または通信媒体(ネットワーク100,またはネットワーク100を伝搬する搬送波やデジタル信号など)を介して他の装置から,導入されてもよい。また,プログラムをコード,または,モジュール,ということがある。
なお,鍵管理装置101において,秘密鍵は必ずしも鍵管理装置101の外部記憶装置209に格納しておく必要はない。例えば,秘密鍵を,耐タンパ性を有するデバイス内で生成し,鍵管理装置101は,その参照を管理するようにしてもよい。このようにすることによって,鍵管理装置101の管理者であっても,直接秘密鍵を操作することが困難になり,セキュリティ上の観点からは望ましい。
図3に本実施例におけるコンテンツ120のデータフローの概略を示す。なお,図では復号装置A103,復号装置B104を用いて説明を行っているが,暗号化装置102,又は,復号装置と暗号化コンテンツ121の送受信を行う復号装置は,上記に限らなくてもよい。
301:開始。
302:暗号化装置102内のコンテンツ作成・読込処理部225が,コンテンツ120の作成,または,読込みを行う。
303:暗号化装置102内の暗号化処理部226が,コンテンツ120の暗号化を行い,暗号化コンテンツ121を作成する。
304:暗号化装置102内のコンテンツ送信処理部227が,暗号化コンテンツ121を暗号化装置A103に送信する。
305:復号装置A103内のコンテンツ受信処理部が,暗号化コンテンツ121を受信する。
306:復号装置A103内の復号処理部が,暗号化コンテンツ121を復号し,復号コンテンツ表示イメージ122を生成し,出力装置204を用いて出力する。
307:復号装置A103内のコンテンツ送信処理部が,暗号化コンテンツ121を復号装置B104に送信する。
308:復号装置B104内のコンテンツ受信処理部が,暗号化コンテンツ121を受信する。
301:開始。
302:暗号化装置102内のコンテンツ作成・読込処理部225が,コンテンツ120の作成,または,読込みを行う。
303:暗号化装置102内の暗号化処理部226が,コンテンツ120の暗号化を行い,暗号化コンテンツ121を作成する。
304:暗号化装置102内のコンテンツ送信処理部227が,暗号化コンテンツ121を暗号化装置A103に送信する。
305:復号装置A103内のコンテンツ受信処理部が,暗号化コンテンツ121を受信する。
306:復号装置A103内の復号処理部が,暗号化コンテンツ121を復号し,復号コンテンツ表示イメージ122を生成し,出力装置204を用いて出力する。
307:復号装置A103内のコンテンツ送信処理部が,暗号化コンテンツ121を復号装置B104に送信する。
308:復号装置B104内のコンテンツ受信処理部が,暗号化コンテンツ121を受信する。
ステップ308において,復号装置A103内のコンテンツ受信処理部は,暗号化装置102から受信した暗号化コンテンツ121を,復号装置B104に送信する。また,ステップ306の復号処理部による暗号化コンテンツ121の復号において,復号されたコンテンツ(以下,復号コンテンツと呼ぶ)と,復号コンテンツ表示イメージ122は,復号コンテンツから開示された部分の情報が漏洩することを厳密に防ぐためには,復号装置内の外部記憶装置209内に格納しないこと,格納した場合でも閲覧が終了した後には直ちに削除すること,或いは,表示イメージ上からの復号領域のコピー(内容抽出)や印刷処理を禁止することが望ましい。ただし,コピーや印刷、保存(復号コンテンツの外部記憶装置209への格納)処理は,アプリケーションによっては必要となる場合もあるので,本暗号化方法の利用形態としてこれらを禁止するものではない。
なお,図3のステップ307では、復号装置A103内のコンテンツ送信処理部が,暗号化コンテンツ121を他の復号装置B104に送信しているが,これと異なっていてもよい。例えば,複数の復号装置に平行して暗号化コンテンツ121を送付したり,或いは,暗号化コンテンツ121を,コンテンツ送信処理部を用いて送信したりするのではなく,外部記憶媒体201に格納し,復号装置B104に送付してもよい。また,ステップ307において,他の復号装置に送信する必要がなければ,復号装置A103内の外部記憶装置209内で,暗号化コンテンツ121,或いは,復号コンテンツを保管して処理を終了する,コンテンツ保管用のデータベースサーバに送信し,暗号化コンテンツ121は削除するなどしてもよい。
図4は,ステップ303において実行される暗号化処理部226が行う、暗号化処理の手順の概略を示している。なお,暗号化処理部226への入力は,暗号化対象となるコンテンツ120を部分コンテンツに分割するためのコンテンツ区切り情報S=(S[1],...,S[n]),どの公開鍵がどの部分コンテンツを復号できるかを示すアクセス制御情報AD=(AD[1],...,AD[m]),及び,暗号化に利用する公開鍵pk[1],...,pk[m](図1では公開鍵A111,公開鍵B112,公開鍵C113に対応する)である。
コンテンツ区切り情報とは,暗号化対象となるコンテンツ120を,先頭からAバイト目からCバイト目,表データであればA行B列,画像データであれば座標表現,XMLデータであればXPath式といった表現を用いて,暗号化対象となるコンテンツを部分コンテンツに分割するための情報を記述する。例えば,バイト単位でコンテンツを区切り,その第一の部分コンテンツを1バイト目から2バイト目,10バイト目から20バイト目としたい場合には,S[1]={1,2,10,20}のように指定する。また,対象とするデータがXMLである場合には,上記の{1,2,10,20}を該当する領域を指し示すXPath式によって置き換えればよく,暗号化対象となるデータフォーマット,コンテンツ120の区切り方法に応じて適宜変更すればよい。アクセス制御情報はAD[i]には,公開鍵pk[i]によって復号できる部分コンテンツのコンテンツ区切り情報S=(S[1],...,S[n])への参照(例えば,コンテンツ区切り情報S[j]のインデックスj(j=1,...,n))を記述する。
ここでは,説明を簡単にするため,インデックス番号を用いて以下説明を行うが,具体的にはインデックス番号を直接用いる必要はなく,公開鍵,コンテンツ区切り情報,アクセス制御情報,部分コンテンツ等が対応付けられていればよい。例えば,公開鍵pk[i]のインデックスiは,鍵管理装置101で識別番号を付与し,これを利用するなどすればよい。なお,コンテンツ区切り情報,アクセス制御情報の具体的な記述方法については,XMLを用いた場合を例に挙げ,図7で説明する。
以下に,図4に示した暗号化処理部226が行う処理手順の概略を示す。
401:開始。
402:コンテンツ120をコンテンツ区切り情報Sを元に部分コンテンツ(M[1],...,M[n])に分割する。
403:各部分コンテンツM[i](i=1,...,n)に対して,共通鍵暗号技術の鍵(コンテンツ暗号化鍵)K[i]をランダムに生成する。
404:各部分コンテンツM[i](i=1,...,n)を,ステップ403において生成したコンテンツ暗号化鍵K[i]を用いて暗号化する(暗号化結果を暗号化部分コンテンツと呼び,D[i]であらわす)。
405:暗号化部分コンテンツD[1],...,D[n]を連結し,連結データに対してハッシュ関数を適用して,連結データの特徴量としてハッシュ値Hを計算する。
406:アクセス制御情報AD[i](i=1,...,m)からインデックス集合(j1,・・・,ju)を取得,取得したインデックスから対応するコンテンツ暗号化鍵K[j1],K[j2],...,K[ju]を取り出し,これらを連結する。さらに前ステップで計算したハッシュ値Hをこれに連結し,公開鍵pk[i]を用いて暗号化する(暗号化結果を鍵暗号化データE[i]とよぶ)。
407:コンテンツ暗号化データD=(D[1],...,D[n]),鍵暗号化データE=(E[1],...,E[m]), アクセス制御情報AD=(AD[1],...,AD[m])から,暗号化コンテンツCを生成する。
408:終了。
401:開始。
402:コンテンツ120をコンテンツ区切り情報Sを元に部分コンテンツ(M[1],...,M[n])に分割する。
403:各部分コンテンツM[i](i=1,...,n)に対して,共通鍵暗号技術の鍵(コンテンツ暗号化鍵)K[i]をランダムに生成する。
404:各部分コンテンツM[i](i=1,...,n)を,ステップ403において生成したコンテンツ暗号化鍵K[i]を用いて暗号化する(暗号化結果を暗号化部分コンテンツと呼び,D[i]であらわす)。
405:暗号化部分コンテンツD[1],...,D[n]を連結し,連結データに対してハッシュ関数を適用して,連結データの特徴量としてハッシュ値Hを計算する。
406:アクセス制御情報AD[i](i=1,...,m)からインデックス集合(j1,・・・,ju)を取得,取得したインデックスから対応するコンテンツ暗号化鍵K[j1],K[j2],...,K[ju]を取り出し,これらを連結する。さらに前ステップで計算したハッシュ値Hをこれに連結し,公開鍵pk[i]を用いて暗号化する(暗号化結果を鍵暗号化データE[i]とよぶ)。
407:コンテンツ暗号化データD=(D[1],...,D[n]),鍵暗号化データE=(E[1],...,E[m]), アクセス制御情報AD=(AD[1],...,AD[m])から,暗号化コンテンツCを生成する。
408:終了。
ステップ406における暗号化処理は,公開鍵暗号技術による暗号化であるが,対象となるデータが大きくなる場合には,共通鍵暗号技術を使って暗号化を行い,暗号化に使用した共通鍵を公開鍵暗号技術を使用して暗号化するハイブリット暗号技術を利用するなどすればよい。
また,ステップ406において,コンテンツ暗号化鍵だけでなく,アクセス制御情報AD[i]も連結して公開鍵pk[i]による暗号化を行い,アクセス制御情報自体を秘匿にしてもよい。アクセス制御情報を秘匿することにより,どのユーザがどの領域を閲覧できるか,を秘匿することが可能になり,より強固な秘密保持が可能になる。
前述の通り,暗号化処理部226では,入力として,コンテンツ120のほか,コンテンツ区切り情報,アクセス制御情報,暗号化に利用する公開鍵などの情報が必要となる。ここで,コンテンツ区切り情報は,例えば,前述のように先頭からAバイト目からBバイト目,或いは,表などのデータであれば,A行B列,などといった情報を予め設定しておくことが必要となる。これを行うためには,暗号化処理部226の実行に先立ち,予め特定のソフトウェアでマウスなどの入力装置を用いてコンテンツ120を分割してもよいし,XMLなどのデータ構造であれば要素単位,或いは,表データであればセル単位,或いは,文書解析ソフトを利用して文書の構文解析を行い,その結果を用いてコンテンツ120を分割してもよい。なお,申請書のようにフォーマットが決められているコンテンツ120であれば,暗号化処理部226を実行する都度,コンテンツ区切り情報を作成する必要はなく,予めフォーマットに対応するコンテンツ区切り情報を作成しておき,暗号化装置102の外部記憶装置209に格納しておいてもよい。
なお,上記の例に示したように,一つの部分コンテンツが複数の小領域(例えば,1バイト目から2バイト目,10バイト目から20バイト目などの物理的に離れた複数の領域からなる場合)を含んで構成してもよい。この場合,暗号化の際に,これらを連結して暗号化処理を行い,復号の際には復号結果から得られたデータから,再度,個々の領域に分割することが必要となる場合がある。この場合には,例えば,暗号化処理を行う前に,ASN.1やXMLなどのフォーマットを用いて,予めひとつの部分コンテンツ内に含まれる個々の領域を明確にしておくなどしておけばよい。
また,データの連結を行う際に,単純に各小領域を連結するのではなく,暗号化に用いる共通鍵暗号アルゴリズムとして,AES(Advanced Encryption Standard)などのブロック暗号を用いる場合には,ブロック暗号のデータ処理サイズに着目して,パディングを行ってもよい。例えば,1バイト目から2バイト目,10バイト目から20バイト目の二つの小領域からなる領域を,ブロック暗号を用いて暗号化する場合には,パティング処理を行い,暗号処理単位(例えば,128ビット(16バイト))で,各小領域のデータサイズを調整し,暗号化処理を行う。上記の例では,第一の小領域(1バイト目から2バイト目)には15バイト分たとえば,“10....0(各数値はビットを表す)”をパディングし,第二の小領域(10バイト目から20バイト目)には,6バイト分“10....0(各数値はビットを表す)”をパディングし,これらパディングされたデータを連結し,共通鍵暗号による暗号化処理を行う。このようなパディング処理を行うことによって,処理ブロックごとに暗号処理が行われるようになるため,暗号化された小領域の管理が容易になり,XMLや表データなどでは,暗号化された小領域を元の領域に格納し,復号時に特定の小領域を取り出すことが容易になる。上記では、ブロック暗号を用いた場合について説明したが、ストリーム暗号を用いる場合でも、ストリーム暗号の出力乱数の出力単位に着目して、上記と同様の処理を行ってもよい。
なお,上記のようにひとつの部分コンテンツが複数の小領域を含んで構成される場合には,その領域に割り当てられたコンテンツ暗号化鍵から,例えば,乱数生成器を利用して,小領域暗号化用の小領域暗号化鍵を生成し,これを用いて個々の小領域を暗号化してもよい。このようにすることによって,上記のようなデータの連結を行う必要がなくなる。
なお,ステップ401,ステップ402では,コンテンツ120を部分コンテンツに分割し,その全てを暗号化しているが,部分コンテンツの内,全てのユーザに共通して閲覧させるべき部分が含まれる場合など,場合に応じて,その一部を暗号化しなくてもよい。また,上記のステップ405では,暗号化された暗号化部分コンテンツを全て連結して,ハッシュ値Hを計算しているが,これと異なっていてもよい。例えば,上記のように部分コンテンツの一部を暗号化しないような場合においては,暗号化部分コンテンツと,暗号化しなかった部分コンテンツとを連結し、アクセス制御情報AD=(AD[1],...,AD[m])を含めて,ハッシュ値を計算してもよい。
また,例えば,公開鍵ごとに,復号可能な部分の暗号化部分コンテンツ(或いは,暗号化前の部分コンテンツ)を連結して,そのハッシュ値を計算するようにしてもよい。上記のステップ405のように,全ての暗号化部分コンテンツを連結する場合には,暗号化コンテンツ121の復号時において,暗号化コンテンツ121の全てが復号結果の完全性検証の範囲になるが,対応する秘密鍵によって復号された暗号化部分コンテンツ(及び,暗号化されなかった部分コンテンツ)が復号結果の完全性検証の範囲となる。
このようなハッシュ値の計算方法では,図3に示したように復号装置A103から復号装置B104といった,復号装置から復号装置へと暗号化コンテンツ121を送信する場合に,不要になった部分コンテンツを削除した場合でも,受信側で復号結果の完全性の検証が可能になり,暗号化コンテンツ121のデータサイズを削減できる場合がある。
さらに,上記ではハッシュ値を用いているが,MAC用の鍵を生成して,ハッシュ値の代わりにメッセージ認証子(MAC:Message Authentication Code)を用いてもよい。なお,MAC値を用いる場合においては,ステップ405,406の処理におけるハッシュ値Hの計算を,以下のようにステップ405‘,406’,407’に修正してもよい。
405‘:MAC生成鍵MK[1],...,MK[m]を生成し,アクセス制御情報AD[i]からインデックス集合(j1,・・・,ju)を取得,取得したインデックスから対応するコンテンツ暗号化鍵K[j1],K[j2],...,K[ju]を取り出し,これらを連結する。さらに生成したMAC生成鍵MK[i]をこれに連結し,公開鍵pk[i]を用いて暗号化する(これをE’[i]とする)。
406‘:暗号化部分コンテンツ(D[1],...,D[n]),及び、ステップ405’で計算したE[1],...,E[n]を連結し,連結したデータにMAC生成鍵MK[i]を作用させてMAC MA[i]を計算する。
407‘:コンテンツ暗号化データD=(D[1],...,D[n]),鍵暗号化データE=(E[1],...,E[m]), アクセス制御情報AD=(AD[1],...,AD[m]),MAC MA=(MA[1],...,MA[m])から,暗号化コンテンツCを生成する。
405‘:MAC生成鍵MK[1],...,MK[m]を生成し,アクセス制御情報AD[i]からインデックス集合(j1,・・・,ju)を取得,取得したインデックスから対応するコンテンツ暗号化鍵K[j1],K[j2],...,K[ju]を取り出し,これらを連結する。さらに生成したMAC生成鍵MK[i]をこれに連結し,公開鍵pk[i]を用いて暗号化する(これをE’[i]とする)。
406‘:暗号化部分コンテンツ(D[1],...,D[n]),及び、ステップ405’で計算したE[1],...,E[n]を連結し,連結したデータにMAC生成鍵MK[i]を作用させてMAC MA[i]を計算する。
407‘:コンテンツ暗号化データD=(D[1],...,D[n]),鍵暗号化データE=(E[1],...,E[m]), アクセス制御情報AD=(AD[1],...,AD[m]),MAC MA=(MA[1],...,MA[m])から,暗号化コンテンツCを生成する。
さらに,上記のMACを利用する代わりに,公開鍵暗号技術による電子署名を利用してもよい。
その場合、上記のステップ405‘、406‘、407‘は、以下のようになる。
405”:電子署名生成用秘密鍵sk’、電子署名検証用公開鍵vk‘を生成し,アクセス制御情報AD[i]からインデックス集合(j1,・・・,ju)を取得,取得したインデックスから対応するコンテンツ暗号化鍵K[j1],K[j2],...,K[ju]を取り出し,これらを連結する。さらに生成した電子署名検証用公開鍵vk’をこれに連結し,公開鍵pk[i]を用いて暗号化する(これをE’[i]とする)。
406”:暗号化部分コンテンツ(D[1],...,D[n]),及び、ステップ405’で計算したE[1],...,E[n]を連結し,連結したデータに電子署名生成用秘密鍵sk‘を作用させて電子署名値 σを計算する。
407”:コンテンツ暗号化データD=(D[1],...,D[n]),鍵暗号化データE=(E[1],...,E[m]), アクセス制御情報AD=(AD[1],...,AD[m]),電子署名値σ、電子署名検証用公開鍵vk’から,暗号化コンテンツCを生成する。
その場合、上記のステップ405‘、406‘、407‘は、以下のようになる。
405”:電子署名生成用秘密鍵sk’、電子署名検証用公開鍵vk‘を生成し,アクセス制御情報AD[i]からインデックス集合(j1,・・・,ju)を取得,取得したインデックスから対応するコンテンツ暗号化鍵K[j1],K[j2],...,K[ju]を取り出し,これらを連結する。さらに生成した電子署名検証用公開鍵vk’をこれに連結し,公開鍵pk[i]を用いて暗号化する(これをE’[i]とする)。
406”:暗号化部分コンテンツ(D[1],...,D[n]),及び、ステップ405’で計算したE[1],...,E[n]を連結し,連結したデータに電子署名生成用秘密鍵sk‘を作用させて電子署名値 σを計算する。
407”:コンテンツ暗号化データD=(D[1],...,D[n]),鍵暗号化データE=(E[1],...,E[m]), アクセス制御情報AD=(AD[1],...,AD[m]),電子署名値σ、電子署名検証用公開鍵vk’から,暗号化コンテンツCを生成する。
このような,電子署名値を利用した方法を用いることの利点は,前述のハッシュ値を利用した場合と比較して,完全性保証を確認する範囲が広くなることである。ハッシュ値を用いた方法では,ハッシュ値の計算(ステップ405)には,鍵暗号化データE=(E[1],...,E[m])がハッシュ値の計算範囲には含まれないが,電子署名を用いた方法では,電子署名値σの計算(ステップ406”)に,鍵暗号化データE=(E[1],...,E[m])が含まれる。これは,ハッシュ値を利用した方法では,復号時における完全性検証の範囲に鍵暗号化データE=(E[1],...,E[m])が含まれないのに対して,電子署名値を利用した方法では含まれるという違いが生じる。
電子署名値やハッシュ値を用いて,例えばアクセス制御情報自体も秘匿にしたい場合に,以下のようにすればよい。
すなわち,ハッシュ値を用いる場合に,アクセス制御情報自体を秘匿するためには,暗号化処理部226がステップ407で生成する暗号化コンテンツ121からアクセス制御情報ADを削除し,代わりにステップ405においてコンテンツ暗号化鍵K[j1],K[j2],...,K[ju],ハッシュ値H,だけでなく,アクセス制御情報AD[i]を含めて暗号化を行い,鍵暗号化データE[i]を生成する。電子署名を用いる場合には,ステップ405”において、ハッシュ値Hの代わりに電子署名検証用公開鍵vk‘を用い,ステップ407’’で,上記ステップ407と同じ処理をすればよい。
ハッシュ値Hを利用した方法では,暗号化コンテンツを受信するユーザごとに鍵暗号化データE[i]を分離することが可能であるが,電子署名を利用した方法では,ユーザごとに鍵暗号化データを分離した場合には,復号時に電子署名値σを用いた検証が失敗するため,復号結果を得ることができない。すなわち,電子署名を用いる場合には,暗号化コンテンツを受信するユーザごとに分割して送付することができないような暗号化方法となる。これは,ハッシュ値の計算では鍵暗号化データE=(E[1],...,E[m])が検証範囲に含まれないため,復号時のハッシュ値(後述するステップ606)による検証では、鍵暗号化データの一部が削除されていることを検出できないからである。
なお,ハッシュ値を用いる方法を採用するか、電子署名を用いた方法を採用するかは,本実施形態の用途に応じて決定するべきであり,必ずしも電子署名値を利用した方法が必須であるわけではない。
なお、上記のようにして、アクセス制御情報を秘匿にした場合には、後述する復号処理部の処理と異なり、まず、鍵暗号化データE[j]の復号をはじめに行い、その復号結果からアクセス制御情報AD[j]の抽出をおこなう(ステップ601〜ステップ608参照)。
なお,上記では,暗号化時に一時的に生成した電子署名生成用秘密鍵を用いているが,例えば,認証局(CA)から検証用公開鍵に対して証明書の発行を受けた電子署名生成用秘密鍵sk’、とそれに対応する電子署名検証用公開鍵vk‘を用いてもよい。
なお,ハッシュ値の計算と同様,上記のMA[i]、(或いは、電子署名値σ)の計算において,復号可能な部分の暗号化部分コンテンツ(或いは,暗号化前の部分コンテンツ)を連結して,MA[i]、(或いは、σ)を計算してもよい。
図5に示したのは,暗号化処理部が出力する暗号化コンテンツ121のデータ構造の概略である。図5に示したように,暗号化コンテンツ121は,暗号化部分コンテンツを含んで構成されるコンテンツ暗号化データ部505のほか,鍵暗号化データを含んで構成される鍵暗号化データ部504,コンテンツ区切り情報502,アクセス制御情報503を含んで構成される。なお,図5では,鍵暗号化データ部504,コンテンツ区切り情報502,アクセス制御情報503を,模式的にそれぞれ別々の領域として保管するように記述したが,必ずしもこの通りではない。
図5に示したデータ表現は,例えば,XMLやASN.1などのデータフォーマットを用いて表現される。例として,XMLを用いた具体的なデータフォーマットについて後述する(図7参照)。
図6は,図5に示した暗号化コンテンツ121を復号するための復号処理部による処理手順の概略を示している。復号処理部への入力は,暗号化コンテンツ121,及び,復号用の秘密鍵sk[j]である。
601:開始。
602:暗号化コンテンツ121から,コンテンツ区切り情報502,アクセス制御情報503,鍵暗号化データ部504,コンテンツ暗号化データ部505,をとりだす。
603:アクセス制御情報AD[j]から,インデックス集合(j1,...,ju)を取得する。
604:秘密鍵sk[j]を用いて,鍵暗号化データE[j]を復号し,コンテンツ暗号化鍵K[j1],K[j2],...,K[ju],及び,ハッシュ値Hを取得する。
605:コンテンツ暗号化データ部のハッシュ値H‘を計算し,前ステップで取得したハッシュ値Hと比較する。
606:H=H‘であれば,ステップ607へ。そうでなければ,復号失敗としてステップ608へ。
607:ステップ604で取得したコンテンツ暗号化鍵K[j1],K[j2],...,K[ju]を用いて,暗号化部分コンテンツD[j1],D[j2],...,D[ju]を復号する。さらに,コンテンツ区切り情報Sを元に復号コンテンツM‘を生成する。
608:終了。
601:開始。
602:暗号化コンテンツ121から,コンテンツ区切り情報502,アクセス制御情報503,鍵暗号化データ部504,コンテンツ暗号化データ部505,をとりだす。
603:アクセス制御情報AD[j]から,インデックス集合(j1,...,ju)を取得する。
604:秘密鍵sk[j]を用いて,鍵暗号化データE[j]を復号し,コンテンツ暗号化鍵K[j1],K[j2],...,K[ju],及び,ハッシュ値Hを取得する。
605:コンテンツ暗号化データ部のハッシュ値H‘を計算し,前ステップで取得したハッシュ値Hと比較する。
606:H=H‘であれば,ステップ607へ。そうでなければ,復号失敗としてステップ608へ。
607:ステップ604で取得したコンテンツ暗号化鍵K[j1],K[j2],...,K[ju]を用いて,暗号化部分コンテンツD[j1],D[j2],...,D[ju]を復号する。さらに,コンテンツ区切り情報Sを元に復号コンテンツM‘を生成する。
608:終了。
上記では簡単のため秘密鍵sk[j]がひとつの場合について説明したが,秘密鍵が複数与えられた場合でも,上記の手順(ステップ603からステップ607)の処理を繰り返すことで,複数の秘密鍵に対する復号結果を得ることができる。このとき,二つの異なる秘密鍵sk[j1],sk[j2]で処理を行った場合に,それぞれの処理結果に矛盾が生じた場合(例えば,同一の暗号化部分コンテンツC[1]を復号した結果が異なっている場合など)には,エラーを出力して処理を終了することが望ましい。
前述のとおり,秘密鍵はICカードなどの耐タンパ性を持ったデバイスに保管することが望まれる。この様な場合には,単純に秘密鍵を復号装置の読取装置205を通して供給し,復号装置内で上記の復号処理部を処理するのではなく,例えば,ステップ604の処理をICカード内で処理するなど,秘密鍵に関わる処理をICカード内で閉じて実行することが望ましい。
また,上記の復号処理部では,秘密鍵sk[j]によって復号可能な領域全てを復号し復号コンテンツM‘を生成しているが,閲覧に必要な領域が一部であれば,その部分のみを復号して復号コンテンツM’を生成してもよい。
なお,図4の暗号化処理部226の説明において,ハッシュ値Hの計算に対して,複数の計算方法がありえることを説明したが,復号処理部側で復号結果の完全性の検証を行うためには,ステップ605のハッシュ値H‘の計算は,ステップ405のハッシュ値Hの計算と等価である必要がある。
また,図4において,ステップ405,406をステップ405‘,406’に変更した場合には,上記のステップ604,605,606を以下のようにステップ604‘,605’,606‘に修正すればよい。
604‘:秘密鍵sk[j]を用いて,鍵暗号化データE[j]を復号し,コンテンツ暗号化鍵K[j1],K[j2],...,K[ju],及び,MK[i]を取得する。
605‘:MK[i]をもちいて暗号化コンテンツ121からMAC MA‘[i]を計算し,前ステップで取得したMA[i]と比較する。
606‘:MA[i]=MA‘[i]であれば,ステップ607へ。そうでなければ,復号失敗としてステップ608へ。
604‘:秘密鍵sk[j]を用いて,鍵暗号化データE[j]を復号し,コンテンツ暗号化鍵K[j1],K[j2],...,K[ju],及び,MK[i]を取得する。
605‘:MK[i]をもちいて暗号化コンテンツ121からMAC MA‘[i]を計算し,前ステップで取得したMA[i]と比較する。
606‘:MA[i]=MA‘[i]であれば,ステップ607へ。そうでなければ,復号失敗としてステップ608へ。
ステップ604,605,606の処理では,暗号化コンテンツ121のコンテンツ暗号化データを対象としてハッシュ値を計算したが,上記の修正を行った場合には,MACの計算対象範囲が,MA[1],...,MA[m]を除く,暗号化コンテンツ121全体になる。
なお,暗号化処理部の説明で述べたように,MACの代わりに電子署名を用いる場合には,以下のようになる。
604”:秘密鍵sk[j]を用いて,鍵暗号化データE[j]を復号し,コンテンツ暗号化鍵K[j1],K[j2],...,K[ju],及び,電子署名検証用公開鍵vk”を取得する。605”:電子署名用公開鍵vk’を用いて暗号化コンテンツ121からの電子署名σによる検証を行う。
606”:ステップ605における電子署名σの検証が成功すればステップ607へ。そうでなければ,復号失敗としてステップ608へ。
604”:秘密鍵sk[j]を用いて,鍵暗号化データE[j]を復号し,コンテンツ暗号化鍵K[j1],K[j2],...,K[ju],及び,電子署名検証用公開鍵vk”を取得する。605”:電子署名用公開鍵vk’を用いて暗号化コンテンツ121からの電子署名σによる検証を行う。
606”:ステップ605における電子署名σの検証が成功すればステップ607へ。そうでなければ,復号失敗としてステップ608へ。
上記のステップ604”において、暗号化コンテンツ121内に含まれる電子署名検証用公開鍵vk’と上記鍵暗号化データE[j]から得られた電子署名検証用公開鍵vk”の比較を行い、異なっていれば、処理を終了(ステップ608へ)し、そうでなければ次のステップ(ステップ605”へ)するようにしてもよい。
図7は,図5に示した暗号化コンテンツ121をXMLを用いて表現した場合のデータ表現方法の一例である。
図5に示したように,暗号化コンテンツ121は,コンテンツ区切り情報502,アクセス制御情報503,鍵暗号化データ部504からなるヘッダ501と,コンテンツ暗号化データ505を含んで構成される。
図7に示したように,本フォーマットでは,MRES要素701を含んで構成され,MRES要素701は,共通パラメータを格納するためのMRES_Param要素702,アクセス制御情報503,及び,鍵暗号化データ504を格納するためのAccessControlList705,及び,コンテンツの区切り情報502を示すEncryptedDataReferenceList要素710を含んで構成させる。
MRES_Param要素702には,暗号PG222,復号PG内で共通的に使用されるパラメータを表すためのもので,例えば,部分コンテンツの暗号化に用いる共通鍵暗号のアルゴリズムや,コンテンツ暗号化鍵の暗号化に用いる公開鍵暗号のアルゴリズム名などを記述する。図7の例では,コンテンツ暗号化鍵の暗号化アルゴリズムを指定するためにKeyEncryptionAlgorithm要素703,部分コンテンツを暗号化するための暗号化アルゴリズムを指定するためのDataEncryptionAlgorithm要素704によって記述する。各要素内のAlgorithm属性は,使用するアルゴリズムの識別子を記述するためのものであり,例えばAES−128をCBCモードで利用する場合には,
http://www.w3.org/2001/04/xmlenc#aes128-cbc
と記述すればよい。
http://www.w3.org/2001/04/xmlenc#aes128-cbc
と記述すればよい。
MRES_Param要素702には,上記のほか,暗号時,復号時に必要となる様々な情報を記述してよい。たとえば,対象となるファイルのファイル情報(ファイルのフォーマットやエンコード方法などのメタ情報)を記述してもよい。
AccessibleControlList要素705は,EncryptedKeyData要素707とReferenceList要素708からなるEncryptedKey要素706を含んで構成される。EncryptedKeyData要素707は,鍵暗号化データを格納するための要素であり,ReferenceList要素708は,アクセス制御情報を格納するための要素である。EncryptedKeyData要素707には,鍵暗号化データをBASE64を用いて符号化した文字列を記述し,属性値であるKey_idには,秘密鍵を特定する情報を記述する。これには,例えば,鍵管理装置101において秘密鍵に対して,一意な識別番号を発行し,これを記述すればよい。
次に,ReferenceList要素708であるが,ここには,復号可能な部分コンテンツのリスト(アクセス制御情報AD[i])を記述する。本XMLを用いた例では,コンテンツ区切り情報に当たるAccessibleDataReference要素711の属性値であるData_idを指定することにより,EncryptedKeyData要素707の鍵暗号化データを復号することによって得られるコンテンツ暗号化鍵によって復号できる部分コンテンツのリストを記述する。
EncryptedDataReferenceList要素710は,コンテンツ区切り情報を記述するEncryptedDataReference要素711を含んで構成される。EncryptedDataReference要素711には,ReferenceList要素712のXPath要素713を用いて,暗号化対象となるデータ(XMLである場合にはXMLの要素)を指定するためのXpath式を指定する。また,対象データがXMLデータ以外である場合には,Xpath要素713を適宜変更し,対象となるデータを指定する。
EncryptedDataReference要素711のもうひとつの子要素である,EncryptedData要素714は,XPath要素713から得られたデータを暗号化した結果を格納するための要素である。なお,暗号化したデータを,EncryptedData要素を用いずに,元の部分コンテンツがあった領域に置き換えることによって,格納してもよい。
また,EncryptedDataReference要素711の属性であるdata_idには,EncryptedDataReference要素711をEncryotedKey要素706内のAccessibleDataReference要素709から指定するために,EncryptedDataReference要素711を一意に識別するための識別子を,is_encryptedには,その部分コンテンツが復号されているか否かの情報を格納する。
なお,暗号化処理部,復号処理部の処理(図4,図6)において,コンテンツ区切り情報,暗号化コンテンツ,などは配列を用いて表現していたが,これらの配列表現と図7に示したようなXML表現における対応関係は,例えば,図7のフォーマットにおいて上から記述された要素から昇順に0,1,...とインデックス番号を振っていくことによって,容易に配列表現への変更が可能である。
また,図7は暗号化コンテンツ121を表現するためのデータ表現方法の一例であり,要素名などは任意に変更してよい。また,データ表現方法をXMLではなく,例えば,ASN.1などの他のデータフォーマットを用いて表現してもよい。
図8は,暗号化コンテンツ121が図7に示したようなXMLを用いて構成されている場合に,暗号化コンテンツ121から復号コンテンツ表示イメージ122を生成する,復号コンテンツ表示処理部が行う処理の概略を示している。
復号処理部は,図6に示した処理を通して暗号化コンテンツ121から復号コンテンツ813を生成する。生成された復号コンテンツ813を,復号コンテンツ変換処理部が,表示イメージソース812に変換し,表示イメージソース812を表示処理部が,ディスプレイなどの出力装置204に出力し、復号コンテンツ表示イメージ122を表示する。なお,XMLを用いて,これをWebブラウザに表示する場合には,図8に示した,これらの復号コンテンツ813,表示イメージソース812は,XML,HTML(HyperText Markup Language)であり,復号コンテンツ変換処理部,表示処理部は,それぞれ,XSLT(XSL Transform,XSLはExtensible Styelsheet Languageの略)用プログラム,Webブラウザに対応する。なお,復号コンテンツ変換処理部がXSLTである場合には,変換規則を記述した表示スタイル定義情報811としてXSLを利用することが一般的である。
なお,図8では暗号化コンテンツ121が,図7に示したようなXMLを用いて表現された場合について示したが,これと異なっていてもよい。例えば,復号コンテンツ713がJPEGなどの画像データ,或いは,PDF(Portable Document Format)ファイルなどの場合には,図8に示した復号コンテンツである場合には,復号処理部内の復号コンテンツ813の生成において,生成された復号コンテンツ813をJPEG,或いは,PDFファイルを直接出力することによって,復号コンテンツ変換処理部,及び,表示スタイル定義情報811は不要であり,生成された復号コンテンツ813を直接画像ビューアなどの表示処理部に入力することによって,復号コンテンツ表示イメージ122を得ることができる。
なお,表示処理部における復号コンテンツ表示イメージ122の閲覧において,セキュリティ上の観点からは,表示処理部が復号コンテンツの保存,或いは,復号コンテンツ表示イメージ122上からのコピーを防止することが望ましい。
本実施形態では,コンテンツを,予め権限に対応付けて生成された秘密鍵,公開鍵210を用いて,暗号化し,ユーザは,各自の権限に応じて配付された秘密鍵を用いて暗号化コンテンツの復号を行う。
この構成において,ユーザに対して鍵の割り当てを行う最も簡単な方法は,鍵管理装置101において,権限ごとに秘密鍵,公開鍵210を発行し,秘密鍵をICカードに格納し,それぞれの権限を持ったユーザに配付するとともに,公開鍵210をWebサーバなどを用いて公開することである。この場合,ユーザの権限の変更などが生じた場合には,新たにICカードを発行してユーザに配付する,或いは,ユーザからICカードを回収することによって,各ユーザに対して適切な権限の元で復号PG801が実行されることが望まれる。
図9は,鍵管理装置101における鍵管理方法の概略の一例を示している。上述した権限ごとに秘密鍵を生成し,それぞれをICカードなどの耐タンパ性を有するデバイスに格納し,ユーザに配付する単純な鍵管理では,権限ごとにICカードの発行,回収を行う必要がある。そこで,図9に示したような鍵管理を行うことによって,ICカードの発行,回収の手間を軽減することが可能となる。以下に,図9に示した鍵管理の概略を述べる。
図9に示したごとく,本鍵管理方法では,鍵管理装置101と鍵更新装置905を含んで構成され,これらをネットワーク100を介して接続する。また,鍵管理装置101には,図9に示したごとく,ユーザと権限の管理を行うために,本鍵管理方法では,権限鍵管理テーブル901,ユーザ鍵管理テーブル902と,ユーザ鍵と権限鍵を対応付ける対応テーブル903を保管する。これらのテーブルは,例えばデータベースなどを用いて,鍵管理装置101の外部記憶装置209に保管する。
なお,鍵更新装置905は,暗号化装置,復号装置,鍵管理装置101と同様に,図2に示した一般的な構成を有する電子計算機を用いて実装できる。また,鍵更新装置905内の外部記憶装置201には,鍵更新PG,受信PG,暗号化された秘密鍵が格納される。なお,鍵更新PG,受信PG,は,暗号化装置102と同様に,CPU207によって実行され,鍵更新処理部,受信処理部という形で具現化される。
前述したとおり,セキュリティ上の観点からは鍵管理装置101内の秘密鍵に関する情報は,直接ネットワーク100から閲覧できないようにすることが望まれる。そのため,本鍵管理方法において,鍵更新装置905は,暗号化装置,復号装置とは,ファイアオールなどを用いて,異なるネットワーク上に設置することが望ましい。
図9に示したごとく,鍵管理装置101は、秘密鍵・公開鍵生成PGを実行して権限A,権限B,権限Cに対し,それぞれ,秘密鍵A114,公開鍵A111,秘密鍵B115,公開鍵B112,及び,秘密鍵C116,公開鍵C113を生成する。
また,ユーザα,ユーザβ,ユーザγに対して,秘密鍵α914,公開鍵α911,秘密鍵α915,公開鍵β912,秘密鍵γ916,公開鍵γ913を生成する。
鍵の配付を行う場合には,予めユーザの秘密鍵をICカードなどの耐タンパ性のあるデバイスに格納して,各ユーザに配付する(以下では,ICカードに秘密鍵を格納したものとして,説明する)。
次に,ユーザに権限に対応した鍵を配付する場合には,以下のようにする。
例えば,図9に示したようにユーザαに対して,権限A,権限Cを割り当てる場合には,鍵管理装置101内の秘密鍵配布PGを実行して、対応する秘密鍵A114,秘密鍵C116をユーザαの公開鍵α911で暗号化して,ネットワーク100を介して,鍵更新装置905に送付する。
鍵更新装置905では,受信処理部が鍵管理装置101から送付された暗号化された暗号化された秘密鍵A114,秘密鍵C116を受信し,さらに鍵更新処理部が,これをICカード内の秘密鍵α914を用いて復号,ICカードに秘密鍵A114,秘密鍵C116を格納する。このとき,秘密鍵α914による復号は,ICカード内で行うことが,セキュリティ上の観点からは望ましい。なお,上記の処理において,ユーザαに失われた権限がある場合には,上記の暗号化された秘密鍵とともに,不要になった(失われた権限に対応する)秘密鍵の情報を鍵管理装置101が送付し,この情報を元に鍵更新処理部が上記秘密鍵のICカードへの格納処理に加えて,ICカード内の不要な鍵を削除する処理を行うことが望ましい。
また,ユーザ権限に割り当てられた秘密鍵を送付する際には,ICカード内の個人鍵を利用した認証など,配付対象となるユーザの認証を行なうことが望ましい。
なお,以上の説明ではユーザ鍵は,公開鍵暗号技術を用いていたが,ユーザ鍵は鍵管理装置101とユーザの所持するICカード間の通信に限って利用することにすれば,ユーザ鍵に共通鍵暗号技術の秘密鍵を用いてもよい。この場合,上記の鍵管理装置101の鍵配布処理部による暗号化,及び,鍵更新装置905における鍵更新処理部によるICカード内での権限鍵の復号は,共通鍵暗号技術における秘密鍵を用いて行う。
以上のようなネットワークを介してユーザに秘密鍵の配付をすることによって,ICカードの送付や回収といった物理的な媒体を直接渡す手間が少なくなる。また,ユーザには,各ユーザ固有のICカードを一枚発行すればよいだけであるため,権限の変化が生じた場合でも,ICカード内の権限鍵の書き換えを行うだけでよいため,ICカードの再発行や回収といった管理者の手間を軽減できる。
なお,図9では,鍵管理方法の一例として,権限,ユーザが,それぞれ3の場合について取り上げていたが,権限,ユーザの数は,鍵管理装置101で管理するユーザ数,権限数に応じて変化する。図9の鍵管理に示した鍵管理方法は,本実施形態における暗号化方法を実現するための一例であり,これと異なった鍵管理方法を用いてもよい。
本実施形態の適用先の一つとして,ワークフローシステムやワンストップサービスなどがあげられる。
この場合,閲覧するユーザは,承認,或いは,登録などの予め定められた順序に従って暗号化コンテンツ121を閲覧することになる。このような場合,ワークフローシステムの管理サーバなどを用いて,閲覧者の閲覧順序を管理することが一般的であるが,本実施形態における暗号化方法を用いることによって,暗号化による順序関係の保護を行うことができる。暗号化を用いて閲覧者の順序関係を制御することによって,例えばサーバの制御ミスによる,誤送信や不正行為によって,正規の順序とは異なる順序でフローが実行されることを防ぐことができる。さらに,このような暗号化による順序関係の保護によって,不正な順序での処理ができなくなり,サーバを必要としない,ワークフローシステムを実現するために役立つ。
以下に,本実施形態を用いた閲覧順序の制御方法を述べる。なお,以下ではi番目に閲覧するユーザをUiとし,ユーザUiは公開鍵pk[i]に対応する秘密鍵sk[i]を所持しているものとする。なお,実施例1で用いた図1〜3,5,7〜9を本実施例でも参照する。
図10は,順序関係を制御するための暗号化処理部226が行う処理の概略を示している。図10に示したように,本処理部は,ステップ405までは,図4に示したステップ401からステップ404と同じである。
405 :暗号化部分コンテンツD[i]を連結し,ハッシュ値Hを計算する。
1002:i←m+1とし,順序制御用乱数R[m+1]←NULLとする。
1003:i>0であれば,ステップ1004へ。そうでなければ,ステップ1006へ。
1004:アクセス制御情報A[i]からインデックス集合(J1,...,Ju)を取得し,取得したインデックスから対応するコンテンツ暗号化鍵K[J1],...,K[Ju]を取り出し,これらを連結する。さらに,ハッシュ値H,及び,R[i]をこれに連結し,公開鍵pk[i]を用いて暗号化を行い,鍵暗号化データE[i]を生成する。
1005:i←i−1とし,さらにR[i]←E[i]とし,ステップ1003へ。
1006:コンテンツ暗号化データD=(D[1],...,D[n]),鍵暗号化データE=E[1], アクセス制御情報AD=(AD[1],点,AD[m])から,暗号化コンテンツC1を生成する。
1007:終了。
405 :暗号化部分コンテンツD[i]を連結し,ハッシュ値Hを計算する。
1002:i←m+1とし,順序制御用乱数R[m+1]←NULLとする。
1003:i>0であれば,ステップ1004へ。そうでなければ,ステップ1006へ。
1004:アクセス制御情報A[i]からインデックス集合(J1,...,Ju)を取得し,取得したインデックスから対応するコンテンツ暗号化鍵K[J1],...,K[Ju]を取り出し,これらを連結する。さらに,ハッシュ値H,及び,R[i]をこれに連結し,公開鍵pk[i]を用いて暗号化を行い,鍵暗号化データE[i]を生成する。
1005:i←i−1とし,さらにR[i]←E[i]とし,ステップ1003へ。
1006:コンテンツ暗号化データD=(D[1],...,D[n]),鍵暗号化データE=E[1], アクセス制御情報AD=(AD[1],点,AD[m])から,暗号化コンテンツC1を生成する。
1007:終了。
ステップ1002において,順序制御用乱数R[m+1]の初期値をNULLとしているが,例えば,乱数生成器を用いて生成した乱数データを初期値としてもよい。
ステップ1004において,順序制御乱数R[i]がコンテンツ暗号化鍵,ハッシュ値と連結されて,公開鍵暗号pk[i]により暗号化される。順序制御用乱数R[i]は,その前のループ(ステップ1003からステップ1005)の暗号化結果E[i+1]であるから,これによって,公開鍵pk[i]に対応する秘密鍵sk[i]による復号の終了後でなければ,R[i](=E[i+1])を得ることができなくなり,これによって,暗号化による閲覧順序の制御が可能となる。
また,このとき,順序制御用乱数R[i]に対して,コンテンツ暗号化鍵だけでなく,アクセス制御情報AD[i]も連結して暗号化し,アクセス制御情報自体をi番目にコンテンツを閲覧するユーザ以外には秘匿にしてもよい。
なお,上記の暗号化処理部の処理では,ステップ405においてハッシュ値Hの計算を行っている。ここで,ステップ405でのハッシュ値Hの処理を省略し,ステップ1004において,順序制御用R[i]と暗号化部分コンテンツD[i]を連結したものに対してハッシュ値の計算を行ってもよい。
また,実施例1で述べたようにハッシュ値の変わりにMACを用いる,或いは,ハッシュ値の計算の際に,暗号化部分コンテンツD[i]全てを単純に連結させるのではなく,一部を暗号化前の部分コンテンツM[i]で置き換えるなどしてもよい。
以上に説明した順序関係を制御する暗号化方法の暗号化処理部に対して復号処理部が行う処理の概略を図11に示す。なお,復号するユーザの秘密鍵をsk[j]とする。
1101:開始。
1102:暗号化コンテンツCjから,コンテンツ暗号化データD=(D[1],...,D[n]),鍵暗号化データE=E[j], アクセス制御情報AD=(AD[1],...,AD[m])を取得する。
1103:アクセス制御情報AD[j]からインデックス集合(j1,...,ju)を取得する。
1104:秘密鍵sk[j]を用いて,鍵暗号化データE[j](すなわち,順序制御用乱数R[j-1])を復号し,コンテンツ暗号化鍵K[j1],K[j2],...,K[ju],ハッシュ値H,及び,順序制御用乱数R[j]を取得する。
1105:コンテンツ暗号化データDのハッシュ値H‘を計算し,前ステップで取得したハッシュ値Hと比較する。
1106:H=H‘ならば,ステップ1107へ。そうでなければ,復号失敗としてステップ1109へ。
1107:コンテンツ暗号化鍵K[j1],K[j2],...,K[ju]を用いて,暗号化部分コンテンツD[j1],D[j2],...,D[ju]を復号し,復号コンテンツM’を生成する。
1108:E[i+1]←R[j]とし,コンテンツ暗号化データD=([1],D[2],...,D[n]),アクセス制御情報AD=(AD[1],...,AD[m]),鍵暗号化データE(=E[i+1])から,暗号化コンテンツCi+1を生成する。
1109:終了。
1101:開始。
1102:暗号化コンテンツCjから,コンテンツ暗号化データD=(D[1],...,D[n]),鍵暗号化データE=E[j], アクセス制御情報AD=(AD[1],...,AD[m])を取得する。
1103:アクセス制御情報AD[j]からインデックス集合(j1,...,ju)を取得する。
1104:秘密鍵sk[j]を用いて,鍵暗号化データE[j](すなわち,順序制御用乱数R[j-1])を復号し,コンテンツ暗号化鍵K[j1],K[j2],...,K[ju],ハッシュ値H,及び,順序制御用乱数R[j]を取得する。
1105:コンテンツ暗号化データDのハッシュ値H‘を計算し,前ステップで取得したハッシュ値Hと比較する。
1106:H=H‘ならば,ステップ1107へ。そうでなければ,復号失敗としてステップ1109へ。
1107:コンテンツ暗号化鍵K[j1],K[j2],...,K[ju]を用いて,暗号化部分コンテンツD[j1],D[j2],...,D[ju]を復号し,復号コンテンツM’を生成する。
1108:E[i+1]←R[j]とし,コンテンツ暗号化データD=([1],D[2],...,D[n]),アクセス制御情報AD=(AD[1],...,AD[m]),鍵暗号化データE(=E[i+1])から,暗号化コンテンツCi+1を生成する。
1109:終了。
以上のステップ1108において,本復号処理部では,図6とは異なり,復号コンテンツM‘を生成(ステップ1107)するだけでなく,次に閲覧するユーザのための暗号化コンテンツCi+1を生成する。
なお,以上の図10,図11では,i番目に閲覧するユーザが一人(権限がひとつ)の場合を示したが,権限の異なる複数人(これを,Ui (1),...,Ui (s)とする)いてもよい。この場合,単純には,ステップ1004における処理を異なる公開鍵pk(1)[i],...,pk(s)[i]を用いて暗号化し,複数の鍵暗号化データE(1)[i],...,E(s)[i]を生成し,これらを連結したものを順序制御用乱数R[i−1]とすればよい。
また,上記のようにi番目に権限の異なる複数のユーザがいる場合,順序制御用乱数R[i]に対して,秘密分散法を用いることによって,s人のユーザの内t人が閲覧した(復号PGを実行した)場合に,i+1番目のユーザが閲覧できるようにする,閾値処理を行うこともできる。さらに,閾値分散処理の代わりに,AONT(All Or Nothing Transform)を用いれば,s人全てが閲覧した(復号PGを実行した)後で,i+1番目のユーザが閲覧するようにすることもできる。
秘密分散法,AONTには,いくつの方法が提案されているが,例えば以下のような文献が知られている。
A. Shamir, “How to share a secret”, Communications of the ACM, 22(11), pp. 612-613, November, 1979.
R. Rivest, “All-Or-Nothing encryption and the package transform”, Fast Sortware Encryption `97,Lecture Notes in Computer Science, LNCS. 1267, pp. 210-218, Springer-Verlag, 1997.
閾値処理を用いてs人のユーザの内t人が閲覧した場合に,k+1番目のユーザが閲覧できるようにするためには,以下のようにする。
A. Shamir, “How to share a secret”, Communications of the ACM, 22(11), pp. 612-613, November, 1979.
R. Rivest, “All-Or-Nothing encryption and the package transform”, Fast Sortware Encryption `97,Lecture Notes in Computer Science, LNCS. 1267, pp. 210-218, Springer-Verlag, 1997.
閾値処理を用いてs人のユーザの内t人が閲覧した場合に,k+1番目のユーザが閲覧できるようにするためには,以下のようにする。
まず,前述のs暗号化処理部226のステップ1004の実行前に,i=kの場合には,順序制御用乱数R[i]に対し,閾値秘密分散法を適用し,分散順序制御乱数R(1)[i],...,R(s)[i]を生成する。ここで,R(1)[i],...,R(s)[i]は,閾値分散処理を用いて,s個の順序制御用乱数の内t個から,元の順序制御用乱数R[i]が復元できるようにしておく。これらの分散順序制御用乱数R(1)[i],...,R(s)[i]に対して,それぞれステップ1004を実行し,E(1)[i],...,E(s)[i]を生成する(このとき,分散順序制御用乱数R(1)[i],...,R(s)[i]に対して,連結されるコンテンツ暗号化鍵は,必ずしも全ての分散順序制御用乱数R(1)[i],...,R(s)[i]に対して同じである必要はない)。
なお,上記の閾値分散法の処理を適用する場合に,適用元とのなる順序制御用乱数のサイズが大きい場合には,その一部に対して閾値分散処理を適用してもよい。
次に,ステップ1005において,E(1)[i],...,E(s)[i]を連結して,その結果を次の順序制御用乱数R[i]として,処理を続ける。
復号の際には,k−1番目の暗号化コンテンツCk−1の復号の結果得られる鍵暗号化データ EをE(1)[i],...,E(s)[i]に分割し,ステップ1108の処理において,それぞれに対して暗号化コンテンツCk (1),...,Ck (s)を生成すればよい。
また,k+1番目のユーザUk+1は,k番目のユーザUk (1),...,Uk (s)のうちt人から受信したそれぞれの暗号化コンテンツから鍵暗号化データE(1)[i],...,E(s)[i]を抽出し,秘密分散法を用いて順序制御用乱数R[i]を復元し,復号処理部のステップ1004を実行すればよい。
なお,暗号処理部において,i=kの場合のステップ1005において,E(1)[i],...,E(s)[i]を連結して,その結果を次の順序制御用乱数R[i]とする必要ななく,E(1)[i] ,...,E(s)[i]に対して,それぞれ,順序制御用乱数R(1)[i],...,R(s)[i]し,以下それぞれのR(1)[i],...,R(s)[i]に対して処理を続け,適当な段階でE(1)[i],...,E(s)[i]を連結して,その結果を次の順序制御用乱数R[i]として,処理を続けてもよい。
上記の処理によって,暗号化を利用した順序関係の制御が可能となり,意図しない(或いは,不正な)処理によって,正規の処理順序とは異なる処理順序によって処理が実行されることを防ぐことができる。このような,暗号化による順序関係の制御は,前述のようにワークフローシステムやワンストップサービスなどにおいて,有用である。
例えば,クレジットカードの申込書を処理するためのワークフローシステムを考える。クレジットカードの申込書には,申込者の氏名,年齢,自宅住所,勤務先などのほか,年収や銀行の口座番号などが記載されている。クレジットカード発行のための手続きは,これらの情報を参照し,記載内容が間違っていないかといった申請内容の確認,年収情報などを参照した与信審査,そして,銀行の口座番号を参考にした引き落とし口座の登録などの処理を行う必要がある。また,例えば記載内容を確認処理においては,個人情報保護の観点から,確認処理を細分化し,あるユーザには,個人の氏名だけを,また別のユーザには勤務先だけを確認させるなどすることによって,申込者個人を特定させないことが望まれる。
本実施形態を用いれば,上記の処理を,各処理において必要な情報のみを開示し,かつ,不正な(或いは誤った)処理により,正規以外の処理順序で申請書の処理業務が実行されることを防ぐことができる。
なお,上記ではクレジットカードの申込書を例としてあげたが,本実施形態による適用例はこれにとどまることはなく,ワークフローシステムやワンストップサービスなどさまざまなシーンに適用できる。
M:コンテンツ,n:部分コンテンツの個数,C:暗号化コンテンツ,M[i]:i番目の部分コンテンツ,C[i]:i番目の暗号化部分コンテンツ,E:暗号化コンテンツ内の鍵暗号化データ部(E=E[1],...,E[m])),E[i]:i番目の鍵暗号化データ,D:暗号化コンテンツ内のデータ暗号化部,H,H‘:暗号化コンテンツのハッシュ値,pk[i]:公開鍵,sk[i]:秘密鍵,AD:アクセス制御情報(AD=(AD[1],...,AD[m])),AD[i]:i番目のアクセス制御情報,S:コンテンツ区切り情報(S=(S[1],...,S[n])),S[i]:i番目のコンテンツ区切り情報。
Claims (14)
- ディジタルコンテンツの暗号化方法であって,
暗号化装置が,
ディジタルコンテンツを複数の部分コンテンツに分割し,
共通鍵暗号技術による,前記部分コンテンツごとに異なるコンテンツ暗号化鍵を用いて,各々の前記部分コンテンツを暗号化した暗号化部分コンテンツを生成し,
ユーザ権限ごとに,復号可能な前記暗号化部分コンテンツを割り当て,
割り当てられた前記暗号化部分コンテンツを生成した一つ以上の前記コンテンツ暗号化鍵と,前記暗号化部分コンテンツを復号する際の完全性の検証に用いる,ユーザ権限ごとの前記暗号化部分コンテンツの特徴量の完全性検証用データと,を,公開鍵暗号技術による前記ユーザ権限ごとに異なる公開鍵を用いて暗号化した鍵暗号化データを生成し,
前記暗号化部分コンテンツと前記鍵暗号化データとを含む暗号化ディジタルコンテンツを生成する
ことを特徴とする暗号化方法。 - 請求項1に記載のディジタルコンテンツの暗号化方法であって,
前記暗号化装置が,
前記特徴量として,ひとつ以上の,前記部分コンテンツ,または,前記暗号化部分コンテンツをまとめたデータのハッシュ値を求め,
前記ハッシュ値を前記完全性検証用データとする
ことを特徴とする暗号化方法。 - 請求項1に記載のディジタルコンテンツの暗号化方法であって,
前記暗号化装置が,
前記ユーザ権限ごとに,メッセージ認証子生成用鍵を生成し,
ひとつ以上の,前記部分コンテンツ、または、前記暗号化部分コンテンツと、前記鍵暗号化データとをまとめたデータに,前記メッセージ認証子生成用鍵を作用させて,前記特徴量としてメッセージ認証子を作成し,
前記メッセージ認証子生成用鍵と前記メッセージ認証子とを前記完全性検証用データとする
ことを特徴とする暗号化方法。 - 請求項1に記載のディジタルコンテンツの暗号化方法であって,
前記暗号化装置が,
電子署名生成のための署名生成用秘密鍵と署名検証用公開鍵の生成を行い,
ひとつ以上の,前記部分コンテンツ、または、前記暗号化部分コンテンツと、前記鍵暗号化データとをまとめたデータに,生成した前記署名生成用秘密鍵を作用させて,前記特徴量として,
署名値を求め,
生成した前記署名検証用公開鍵と前記署名値とを前記完全性検証用データとする
ことを特徴とする暗号化方法。 - 請求項1に記載のディジタルコンテンツの暗号化方法であって,
前記暗号化装置が,
前記ディジタルコンテンツの分割位置を示すコンテンツ区切り情報と,前記暗号化ディジタルコンテンツ内に含まれる前記鍵暗号化データからなる鍵暗号化データ部と,前記ユーザ権限との対応情報を表すアクセス制御情報,および,完全性検証用データを,前記暗号化ディジタルコンテンツのヘッダ情報に含める,
ことを特徴とする暗号化方法。 - 請求項1に記載された暗号化方法によって暗号化されたディジタルコンテンツの復号方法であって,
復号装置が,
前記ユーザ権限に対して割り当てられた秘密鍵のいずれかを用いて,
当該秘密鍵に対応する公開鍵によって暗号化された鍵暗号化データを復号し,
復号結果から当該公開鍵によって暗号化された,前記ひとつ以上のコンテンツ暗号化鍵を抽出し,
前記抽出されたコンテンツ暗号化鍵によって暗号化された結果である暗号化部分コンテンツの復号を行い,
復号された暗号化部分コンテンツを用いた復号ディジタルコンテンツを生成する
ことを特徴とする復号方法。 - 請求項6に記載の復号方法であって,
前記復号装置が,
前記復号ディジタルコンテンツの生成において,さらに,前記完全性検証用データの抽出を行い,
抽出した前記完全性検証用データを用いて,生成した前記復号ディジタルコンテンツの完全性を検証し,
完全性の検証に失敗した場合には,前記復号ディジタルコンテンツの生成処理を停止する
ことを特徴とする復号方法。 - 請求項1に記載のディジタルコンテンツの暗号化方法で用いる鍵管理方法であって,
鍵管理装置が,
ユーザと,ユーザ権限,それぞれに対し公開鍵暗号技術における秘密鍵と公開鍵の割り当てを行い,
前記ユーザと,前記ユーザ権限との対応関係に基づき,前記ユーザが有するユーザ権限の秘密鍵を当該ユーザの公開鍵を用いて暗号化し,
暗号化した前記ユーザ権限の秘密鍵を鍵更新装置に送付し,
前記鍵更新装置が,
前記ユーザに割り当てられた秘密鍵を用いて,前記暗号化されたユーザ権限の秘密鍵を復号する
ことを特徴とする鍵管理方法。 - 請求項1に記載のディジタルコンテンツの暗号化方法であって,
前記暗号化装置が,
第一の順序制御用乱数を生成し,
一つ以上の前記コンテンツ暗号化鍵を含む第一のコンテンツ暗号化鍵集合と,前記順序制御用乱数とを連結し,
前記連結したデータを,前記ユーザ権限に対して割り当てられた公開鍵を用いて暗号化し,
前記暗号化結果を,一つ以上の前記コンテンツ暗号化鍵を含む,前記第一のコンテンツ暗号化鍵集合とは異なる,第二のコンテンツ暗号化鍵集合の暗号化に用いる第二の順序制御用乱数とする
ことを特徴とする暗号化方法。 - 請求項9に記載のディジタルコンテンツの暗号化方法によって暗号化されたディジタルコンテンツの復号方法であって,
復号装置が,
前記ユーザ権限に対して割り当てられた秘密鍵を取得し,
第二の前記順序制御用乱数を,前記取得した秘密鍵を用いて復号し, 前記第二の順序制御用乱数の復号結果から,前記第一の順序制御用乱数と第二のコンテンツ暗号化鍵集合とを抽出し,
前記第二のコンテンツ暗号化鍵集合に含まれるコンテンツ暗号化鍵を用いて,暗号化された部分コンテンツを復号して復号ディジタルコンテンツの生成を行い,
前記第一の順序制御用乱数と,前記暗号化された複数の部分コンテンツと,を用いた暗号化ディジタルコンテンツを生成する
ことを特徴とする復号方法。 - 請求項9に記載の暗号化方法であって,
前記暗号化装置が,
前記第二の順序制御用乱数に対し,秘密分散処理を適用することによって,複数の第二の分散順序制御用乱数を生成し,
前記第二の分散順序制御用乱数それぞれに対し,コンテンツ暗号化鍵集合との連結を行い,
前記コンテンツ暗号化鍵集合が連結された第二の分散順序制御用乱数それぞれに対して,前記権限に対して割り当てられた公開鍵による暗号化を行い,
前記暗号化された結果それぞれを第三の分散順序制御用乱数として連結し,
前記第三の分散順序制御用乱数を連結した結果を用いた第三の順序制御用乱数を生成する
ことを特徴する暗号化方法。 - 請求項11に記載のディジタルコンテンツの暗号化方法によって暗号化されたディジタルコンテンツの復号方法であって,
復号装置が,
前記第三の順序制御用乱数から前記複数の第三の分散順序制御用乱数を抽出し,
前記第三の分散順序制御用乱数それぞれに対して,暗号化された複数の部分コンテンツを連結することによって,複数の暗号化ディジタルコンテンツを生成する
ことを特徴とする復号方法。 - 請求項11に記載のディジタルコンテンツの暗号化方法によって暗号化されたディジタルコンテンツの復号方法であって,
復号装置が,
前記第二の分散順序制御用乱数に,秘密分散処理の復元処理を行うことによって,前記第二の順序制御用乱数を復元し,
当該復号装置に提供されるユーザ権限に対して割り当てられた秘密鍵を用いて,前記第二の順序制御用乱数の復号を行い,
前記第二の順序制御用乱数の復号化結果から前記第一利用者の順序制御用乱数である第一の順序制御用乱数と第二のコンテンツ暗号化鍵集合とを抽出し,
前記第二のコンテンツ暗号化鍵集合からコンテンツ暗号化鍵を取得し,取得した前記コンテンツ暗号化鍵を用いて,暗号化された部分コンテンツの復号を行い,復号ディジタルコンテンツを生成し,
前記第一の順序制御用乱数と,前記暗号化された複数の部分コンテンツと,から暗号化ディジタルコンテンツを生成する
ことを特徴とする復号方法。 - 請求項1に記載のディジタルコンテンツの暗号化方法であって,
前記分割により得られた部分コンテンツをさらに複数の小領域に分割し,
前記部分コンテンツごとに生成された前記コンテンツ暗号化鍵から前記小領域ごとの小領域暗号化鍵を生成し,
生成された小領域暗号化鍵を用いて,分割により得られた前記小領域を暗号化する
ことを特徴とする暗号化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007214250A JP2009049731A (ja) | 2007-08-21 | 2007-08-21 | 暗号化方法,復号方法,および,鍵管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007214250A JP2009049731A (ja) | 2007-08-21 | 2007-08-21 | 暗号化方法,復号方法,および,鍵管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009049731A true JP2009049731A (ja) | 2009-03-05 |
Family
ID=40501504
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007214250A Pending JP2009049731A (ja) | 2007-08-21 | 2007-08-21 | 暗号化方法,復号方法,および,鍵管理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009049731A (ja) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011211382A (ja) * | 2010-03-29 | 2011-10-20 | Hitachi Ltd | 暗号化装置、復号化装置、および経路探索システム |
CN104639332A (zh) * | 2015-02-25 | 2015-05-20 | 山东超越数控电子有限公司 | 一种固态硬盘加密密钥的保护方法 |
JP2017505000A (ja) * | 2013-12-02 | 2017-02-09 | マスターカード インターナショナル インコーポレーテッド | セキュアエレメントを用いずに移動装置に対する遠隔通知サービスメッセージをセキュアに送信するための方法およびシステム |
US10728021B2 (en) * | 2014-09-30 | 2020-07-28 | Nec Corporation | Method and system for encrypting data with an all-or-nothing encryption scheme having additional randomness |
KR20230102761A (ko) * | 2021-12-30 | 2023-07-07 | 주식회사 더스팟 | 복호화 정보에 따른 유저 데이터 수집 방법 |
KR20230102762A (ko) * | 2021-12-30 | 2023-07-07 | 주식회사 더스팟 | 복호화 데이터 범위에 따른 유저 데이터 수집 방법 |
CN116707908A (zh) * | 2023-06-07 | 2023-09-05 | 广东圣千科技有限公司 | 一种消息的智能加密方法及系统 |
US11790057B2 (en) | 2021-08-17 | 2023-10-17 | Sap Se | Controlling program execution using an access key |
CN117319709A (zh) * | 2023-11-29 | 2023-12-29 | 珠海大横琴科技发展有限公司 | 视频会议数据的安全保障方法、设备及存储介质 |
-
2007
- 2007-08-21 JP JP2007214250A patent/JP2009049731A/ja active Pending
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011211382A (ja) * | 2010-03-29 | 2011-10-20 | Hitachi Ltd | 暗号化装置、復号化装置、および経路探索システム |
JP2017505000A (ja) * | 2013-12-02 | 2017-02-09 | マスターカード インターナショナル インコーポレーテッド | セキュアエレメントを用いずに移動装置に対する遠隔通知サービスメッセージをセキュアに送信するための方法およびシステム |
US10728021B2 (en) * | 2014-09-30 | 2020-07-28 | Nec Corporation | Method and system for encrypting data with an all-or-nothing encryption scheme having additional randomness |
CN104639332A (zh) * | 2015-02-25 | 2015-05-20 | 山东超越数控电子有限公司 | 一种固态硬盘加密密钥的保护方法 |
US11790057B2 (en) | 2021-08-17 | 2023-10-17 | Sap Se | Controlling program execution using an access key |
KR20230102761A (ko) * | 2021-12-30 | 2023-07-07 | 주식회사 더스팟 | 복호화 정보에 따른 유저 데이터 수집 방법 |
KR20230102762A (ko) * | 2021-12-30 | 2023-07-07 | 주식회사 더스팟 | 복호화 데이터 범위에 따른 유저 데이터 수집 방법 |
KR102650003B1 (ko) * | 2021-12-30 | 2024-03-21 | 주식회사 더스팟 | 복호화 데이터 범위에 따른 유저 데이터 수집 방법 |
KR102650001B1 (ko) * | 2021-12-30 | 2024-03-21 | 주식회사 더스팟 | 복호화 정보에 따른 유저 데이터 수집 방법 |
CN116707908A (zh) * | 2023-06-07 | 2023-09-05 | 广东圣千科技有限公司 | 一种消息的智能加密方法及系统 |
CN117319709A (zh) * | 2023-11-29 | 2023-12-29 | 珠海大横琴科技发展有限公司 | 视频会议数据的安全保障方法、设备及存储介质 |
CN117319709B (zh) * | 2023-11-29 | 2024-04-23 | 珠海大横琴科技发展有限公司 | 视频会议数据的安全保障方法、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11461434B2 (en) | Method and system for secure distribution of selected content to be protected | |
US11664984B2 (en) | Method and system for secure distribution of selected content to be protected on an appliance-specific basis with definable permitted associated usage rights for the selected content | |
JP2010050760A (ja) | コンテンツ保護装置、および、コンテンツ利用装置 | |
KR100753932B1 (ko) | 컨텐츠 암호화 방법, 이를 이용한 네트워크를 통한 컨텐츠제공 시스템 및 그 방법 | |
US8619982B2 (en) | Method and system for secure distribution of selected content to be protected on an appliance specific basis | |
JP2009049731A (ja) | 暗号化方法,復号方法,および,鍵管理方法 | |
JP5395372B2 (ja) | 通信装置、鍵サーバ及びデータ | |
US20070219915A1 (en) | Digital content encryption and decryption method and workflow system using digital content | |
CN109067814B (zh) | 媒体数据加密方法、系统、设备及存储介质 | |
US20100098246A1 (en) | Smart card based encryption key and password generation and management | |
CN102100031A (zh) | 用于在用户接口中提供安全服务的设备及方法 | |
JP4619046B2 (ja) | オリジナルコンテンツ生成装置及び派生コンテンツ生成装置 | |
JP5142599B2 (ja) | 情報処理装置及びその制御方法、コンピュータプログラム | |
WO2010067797A1 (ja) | 通信装置、サーバ装置及び通信プログラム | |
CN112954388A (zh) | 一种数据文件的获取方法、装置、终端设备和存储介质 | |
JP4748762B2 (ja) | 署名生成方法及び情報処理装置 | |
JP4829737B2 (ja) | 個人情報保護システム、鍵管理装置および鍵生成プログラム、署名鍵生成装置および署名鍵生成プログラム、個人情報管理装置および個人情報収集プログラム、ならびに、受信端末および個人情報管理プログラム | |
JP2004139170A (ja) | 電子メールシステム | |
CN116009854A (zh) | 一种数据加解密的处理方法及加解密工具 | |
JP4612033B2 (ja) | 上映ライセンス管理システム,上映ライセンス管理方法および上映ライセンス管理プログラム | |
JPH11258987A (ja) | 鍵回復システム |