JP2004140668A - 情報処理方法 - Google Patents
情報処理方法 Download PDFInfo
- Publication number
- JP2004140668A JP2004140668A JP2002304498A JP2002304498A JP2004140668A JP 2004140668 A JP2004140668 A JP 2004140668A JP 2002304498 A JP2002304498 A JP 2002304498A JP 2002304498 A JP2002304498 A JP 2002304498A JP 2004140668 A JP2004140668 A JP 2004140668A
- Authority
- JP
- Japan
- Prior art keywords
- tile
- key
- encryption
- group
- encrypted
- 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.)
- Withdrawn
Links
- 230000010365 information processing Effects 0.000 title claims description 23
- 238000003672 processing method Methods 0.000 title claims description 18
- 238000000034 method Methods 0.000 claims description 72
- 239000011159 matrix material Substances 0.000 abstract description 71
- 238000010586 diagram Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 16
- 238000004590 computer program Methods 0.000 description 15
- 230000006835 compression Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 5
- 238000013139 quantization Methods 0.000 description 5
- 238000013478 data encryption standard Methods 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2347—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving video stream encryption
- H04N21/23476—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving video stream encryption by partially encrypting, e.g. encrypting the ending portion of a movie
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/083—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
- H04L9/0833—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
- H04L9/0836—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key using tree structure or hierarchical structure
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234327—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by decomposing into layers, e.g. base layer and one or more enhancement layers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/266—Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/266—Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
- H04N21/2662—Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/16—Analogue secrecy systems; Analogue subscription systems
- H04N7/167—Systems rendering the television signal unintelligible and subsequently intelligible
- H04N7/1675—Providing digital key or authorisation information for generation or regeneration of the scrambling sequence
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/60—Digital content management, e.g. content distribution
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Facsimile Transmission Control (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
【課題】複数のタイル及び階層構造を有する画像データに対して、タイル及び階層構造毎に異なる暗号鍵を用いて暗号化した場合にも、複数の鍵を管理する必要がないようにする。
【解決手段】タイル単位に圧縮符号化されたコードストリームcが入力される。暗号化タイルパート指定部は、隣接する複数のタイルで1つのタイルグループを構成し、更に、隣接するタイルグループで1つの更なるタイルグループを構成することを繰り返すことで、タイルグループの階層構造を定義したとき、どの階層のどのタイルグループについて暗号化を行うかを決定し、暗号化タイル情報taとして出力する。一方、鍵行列生成部12は、入力したコードストリームcの全体に対する暗号化鍵ckを生成し、階層構造の各ノードの暗号化鍵を次々に生成し、その結果を鍵行列kaとして出力する。暗号化部13は、暗号化対象となるタイルについては、そのタイル用に生成された鍵を用いて暗号化し、暗号化後野コードストリームc’を出力する。
【選択図】 図1
【解決手段】タイル単位に圧縮符号化されたコードストリームcが入力される。暗号化タイルパート指定部は、隣接する複数のタイルで1つのタイルグループを構成し、更に、隣接するタイルグループで1つの更なるタイルグループを構成することを繰り返すことで、タイルグループの階層構造を定義したとき、どの階層のどのタイルグループについて暗号化を行うかを決定し、暗号化タイル情報taとして出力する。一方、鍵行列生成部12は、入力したコードストリームcの全体に対する暗号化鍵ckを生成し、階層構造の各ノードの暗号化鍵を次々に生成し、その結果を鍵行列kaとして出力する。暗号化部13は、暗号化対象となるタイルについては、そのタイル用に生成された鍵を用いて暗号化し、暗号化後野コードストリームc’を出力する。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、デジタル画像データの圧縮符号化したデータを暗号化する技術に関するものである。
【0002】
【従来の技術】
従来、画像データなどを秘匿して伝送するために、画像データ全体の暗号化やスクランブルなどが行なわれてきた。これは、予め画像データ全体を一つの暗号鍵を用いて暗号化し、この暗号鍵に対応する復号鍵を有するものだけが正しく復号することが可能であるようにする技術である。
【0003】
しかし、階層構造を有する画像データの場合、その階層構造に応じて画像データの再生の可・不可を制御する目的で、画像全体ではなく階層構造毎に異なる暗号鍵を用いて暗号化処理が行うことが望まれる。また、画像データが複数のタイルから構成され、タイル毎に再生を制御する目的で、タイル毎に異なる暗号鍵を用いて暗号化処理が行われることが望まれる。更に、これらを合わせた場合として、複数のタイルから構成され、更に夫々のタイルが階層構造を有する画像データの場合、タイルと階層構造に応じた画像データの再生を制御する目的で、タイル中の階層構造毎に異なる暗号鍵を用いて暗号化処理が行われる。
【0004】
このように、タイル及び階層構造毎に異なる暗号鍵を用いて暗号化することによりタイル、及び階層構造毎に画像データの再生を制御することが可能である。
【0005】
【発明が解決しようとする課題】
しかしながら、暗号化された画像データの所定のタイル、及び階層構造を復号処理するためには、暗号化処理に用いた暗号鍵をすべて管理し、復号処理の際に適当な復号鍵を供給する必要がある。
【0006】
また、このようにタイル、及び階層構造毎に異なる暗号鍵を用いて暗号化した場合、暗号化されるタイル及び階層構造と、それを復号するための復号鍵との対応付けをする必要があり、その鍵情報の管理が複雑化することは避けられない。
【0007】
また、当然のことながら、その鍵情報が正しく管理されていない場合には、正しく復号処理を行うこともできない。
【0008】
本発明は上記従来例に鑑みてなされたものであり、複数のタイル及び階層構造を有する画像データに対して、タイル及び階層構造毎に異なる暗号鍵を用いて暗号化した場合にも、複数の鍵を管理する必要がない技術を提供することを目的とする。
【0009】
【課題を解決するための手段】
この課題を解決するため、例えば本発明の情報処理方法は以下のような工程を備える。すなわち。
【0010】
タイル単位に圧縮符号化された画像データを入力し、暗号化する情報処理方法であって、
隣接する複数のタイルで1つのタイルグループを構成し、更に、隣接するタイルグループで1つの更なるタイルグループを構成することを繰り返すことで、タイルグループの階層構造を定義し、
符号化データで表現される画像全体から、最上位階層の暗号化鍵情報を生成し、
前記階層構造中の、上位に位置するタイルグループに対して生成された暗号化鍵情報に基づき、下位層に位置するタイルグループ或いはタイルに対する暗号化鍵情報を生成することを、末端に位置するタイルまで行ない、
前記タイルグループのツリー構造中の、所望とする階層の所望とするタイルグループを暗号化対象とする指定入力が与えられた場合、当該指定入力されたタイルグループに属する下位層の末端に位置するタイルに対して暗号化を行うよう設定し、
暗号化を行うよう設定された個々のタイルに対し、当該タイルに対して生成された暗号化キーを用いて暗号化処理を行ない、当該暗号化した符号化データ及び暗号化されていないタイルの符号化データを出力する
ことを特徴とする。
【0011】
【発明の実施の形態】
以下、添付図面に従って本発明に係る実施形態を説明する。
【0012】
<第1の実施形態>
以下、図14を用いて本実施の形態に適用されるシステム全体について説明する。
【0013】
図14に示すように、本実施の形態におけるシステムは、暗号化処理部(或いは暗号化する装置)141、アクセス鍵生成部(或いはアクセス鍵生成装置)142、及び復号処理部(或いは復号装置)143から構成される。
【0014】
暗号化処理部には、コードストリームc(画像データの符号化データであるが、その詳細は後述)が入力され、コードストリームcからコンテンツ鍵ck、及び暗号化されたコードストリームc’が出力される。アクセス鍵生成処理部142は、このコンテンツ鍵ck、及びアクセスレベルanを入力し、アクセス鍵akを生成する。そして、復号処理部143は、アクセス鍵ak、及び暗号化されたコードストリームc’が入力され、復号処理されたコードストリームc’’が出力される。ここで、c’=c’’である場合、暗号化する以前の画像データに復元されることになる。
【0015】
本実施形態においては、アクセス鍵生成部142、及び復号処理部143は互いに耐タンパー(耐改ざん)であるようにする。例えば、暗号化処理部142はデジタルカメラで撮影した画像を暗号化し、インターネット上のWebサーバやFTPサーバにアップロードする装置で実行され、アクセス鍵生成処理部142はアクセス鍵を発行するサーバで実行され、復号処理部143は暗号化された画像データをダウンロードするネットワーククライアントで実行されるようにする。
【0016】
[暗号化処理部]
以下、図1を用いて本実施形態に適用される暗号化処理部(機能)を説明する。
【0017】
図1に示すように、本実施形態における暗号化処理部は、コードストリームcを入力し、入力されたコードストリームからコードストリーム鍵ck、及びコードストリームcが暗号化された暗号化コードストリームc’が生成され、生成されたコードストリーム鍵ck、及び暗号化コードストリームc’が出力される。
【0018】
本実施形態における暗号化処理部は、暗号化タイルパート指定部11、鍵行列生成部12、暗号化部13から構成される。
【0019】
なお、ここで説明する暗号化処理はソフトウェア処理により実現されても良い。その場合には、上記各部は上記処理に必要な機能を概念的なものとして捉えたものと考慮されるべきものである。
【0020】
まずはじめに、暗号化タイルパート指定部11の処理の詳細を説明する。暗号化タイルパート指定部11には、コードストリームcが入力され、入力されたコードストリームから、タイルパートを抽出され、抽出されたタイルパートのうち暗号化対象とするタイルパートを指定するための暗号化タイルパート情報taを出力する。
【0021】
そこで先ず、本実施形態におけるコードストリーム、及びタイルパートについて説明する。コードストリームとは、画像データを圧縮符号化した際の符号列である。本実施形態においては、ISO/IEC JTC1/SC29/WG1 10918−1において標準化されている、通称JPEG2000と呼ばれる圧縮符号化方式によって符号化された符号列のことをコードストリームと呼ぶ。
【0022】
JPEG2000の圧縮符号化時において、画像は先ず複数の矩形領域に分割され、矩形領域毎にウェーブレット変換により独立に符号化処理が施される。この矩形領域を「タイル」と呼ぶ。更に、符号化されたタイルに対応するコードストリームは、少なくとも一つ以上のタイルパートと呼ばれる領域に分割できる。
【0023】
より詳しく説明すると、1つのタイルに対し1回目のウェーブレット変換により得られる成分係数は公知の通り、LL1、LH1、HL1、HH1の各周波数成分領域を生成する。このうち、{LH1+HL1+HH1}を1つのパートとして扱う。2回めのウェーブレット変換はLL1に対して行うが、このとき生成されるLL2、LH2、HL2、HH2のうち{LH2+HL2+HH2}も1つのパートとして扱う。
【0024】
また、更に、LL2に対して更なるウェーブレット変換(3回めのウェーブレット変換)を行う場合には、その結果生じる{LH3+HL3+HH3}がパートとして扱われ、残りのLL3が単独のパートとして扱われる。この後、量子化、エントロピー符号化が施され符号化される。上記のタイルパートとは、上記のウェーブレット変換を行う毎に生成された周波数成分の集合の符号化結果を示している。以上が1つのタイルの符号が複数のタイルパートの符号で構成される理由である。
【0025】
なお、JPEG2000では、全タイルに対して固定回数のウェーブレット変換を行ういう決まりはない。換言すれば、タイル毎に、ウェーブレット変換の回数は異なっていてもよいことになっている。
【0026】
以下の実施形態におけるタイルパートとは、上記のような意味を前提にして説明するが、これ以外については後述することとする。
【0027】
タイル、及びタイルパートの具体例を図2を用いて説明する。図2(a)は、ある画像をタイルに分割した際の例である。図2(a)において、21は画像全体を8×8=64個のタイルに分割した例を示している。また、図2(b)は、ある1つのタイルを符号化した際のコードストリームの例を示している。図2(b)に示す例では、1つのタイルは22、23、24、25の4つのタイルパートで構成されていることを示している。
【0028】
ここで、タイルパートについて説明する。JPEG2000において、タイルは複数のタイルパートとよばれるいくつかに分割することが可能である。タイルパートは、全てのタイルの中でのタイルパートの順序が保たれさえすれば、異なったタイルからのタイルパートを挟み込むことが可能である。例えば、
タイルインデックス0のタイルパートインデックス0
タイルインデックス1のタイルパートインデックス0
タイルインデックス0のタイルパートインデックス1
タイルインデックス1のタイルパートインデックス1
:
のようにコードストリームを構成することにより、複数のタイルに属するタイルパートを平行に再生することができる。
【0029】
更に、夫々のタイルパートは、ヘッダ部分とデータ部分から構成されている。ここでヘッダ部分とは、データ部分の伸張復号のために必要な種々の情報を格納するための領域であり、タイルパートヘッダと呼ぶ。図2(b)では、タイルパート22が、ヘッダ部分26、データ部分27で構成されていることを示しているが、他のタイルパートも同様である。
【0030】
また、JPEG2000においては、コードストリームcはコードストリームcの復号量に応じて様々な再生方法を実現できるように、所望の再生方法に応じてデータを並べることができる。このようなデータの並べ方をプログレッションオーダと呼ぶ。例えば、復号量の少ない段階では低解像度の画像を再生し、復号量が多くなるにつれてより高解像度の画像を再生するようなプログレッションオーダや、復号量に応じて画質が向上するようなプログレッションオーダでコードストリームcを構成できる。
【0031】
本実施形態においては、コードストリームcは、予め、所望のアクセス制御の方法や度合いに応じたプログレッションオーダ、及びタイルパートで圧縮符号化されていることを前提とする。
【0032】
これに関して、例を用いて説明する。例えば、所定のタイルを3レベルの解像度に応じたアクセス制御をしたい場合を想定する(1つのタイルが3つのタイルパートで構成される場合に相当するものであり、ウェーブレット変換を2回行う場合と考えると分かりやすい)。この場合には、予め、解像度を優先させたプログレッションオーダとなるようにタイルを圧縮符号化し、更にタイルを3つのタイルパートに分割しておく。
【0033】
尚、本実施形態においては入力されるコードストリームcが、予め、所望のアクセス制御の方法や度合いに応じたプログレッションオーダ、及びタイルパートを用いて圧縮符号化されていることを前提としているが、本発明はこれに限定されることはない。即ち、コードストリームcが所望のアクセス制御の方法や度合いに応じたプログレッションオーダやタイルパートを用いて圧縮符号化が施されていない場合には、コードストリームcが入力された後に、所望のアクセス制御の方法や度合いに応じたプログレッションオーダやタイルパートを用いて圧縮符号化し直すようにすれば良い。
【0034】
次にタイルグループについて説明する。本実施形態においては、複数のタイルをグループ化して扱う。グループ化された1つのタイルのグループを「タイルグループ」と呼ぶ。本実施形態においては、グループ化の一例として隣接する2×2の4つのタイルを1つのタイルグループとして扱う。更に、2×2の4つのタイルグループを1つのタイルグループとする。こうして画像全体がひとつのタイルグループとなるまでグループ化を繰り返し行う。
【0035】
タイルグループ化の具体例を図3を用いて説明する。図3の31には、図2に示した例と同様に画像全体を64個のタイルに分割した例を示す。32には、31において隣接する4個のタイルをグループ化し、画像全体を16個のタイルグループで表現した例を示す。更に、33には、32において隣接する4個のタイルグループをグループ化し、画像全体を4個のタイルグループで表現した例を示す。更に、34には、33において隣接する4個のタイルグループをグループ化し、画像全体を1個のタイルグループで表現した例を示す。
【0036】
以上、説明したタイル、タイルパート、及びタイルグループの構成の具体例を図4Aを用いて説明する。
【0037】
図4Aには、画像全体が64個のタイルに分割された場合のタイルグループ、タイル及びタイルパートの構成の例を示す。図4Aに示すように、本実施形態におけるタイルグループ、及びタイルパートは画像全体をルートノードとするツリー構造で表現できる。各ノードがタイルグループ、及びタイルパートに対応する。
【0038】
図4Aにおいてルートノードは画像全体(図3における34)を示す。ルートノード(レベル0)は、レベル1に属する4つの子ノードに対応するタイルグループ(図3における33)から構成されている。ここで、レベルとはツリー構造における各階層構造の段階を示すインデックスである。ルートノードをレベル0であると定義する。更に、ツリー構造における親子の関係を親から子に向かって1回たどる毎に、レベルを1つずつ増やすようにする。
【0039】
すると、レベル1に属するノードは、夫々、レベル2に属する4つの子ノードに対応するタイルグループ(図3における32)から構成されると言い換えることができる。同様に、レベル2に属する4つの子ノードは、夫々、レベル3に属する4つの子ノードに対応するタイル(図3における31)から構成されることになる。そして、レベル4以降は、その直後のレベルに属するひとつの子ノードに対応するタイルパートからだけ構成されている。
【0040】
更に、レベル4以降は、ツリー構造において、大きなタイルパートインデックスが親ノードに対応し、タイルパートが小さくなる順に、ツリー構造を形成していることに注意する(タイルパートのインデックスが0のタイルパートは、最も低周波成分領域に対応する)。
【0041】
この様に、本実施形態におけるタイルグループ、及びタイルパートはツリー構造で表現できる。
【0042】
更に、タイル、タイルパート、及びタイルグループは夫々を特定することが可能なインデックスが割り当てられる。
【0043】
タイルには、“0”を起源として画像の左上に位置するタイルからラスタ順にタイルインデックスが割り当てられる。
【0044】
また、タイルパートには、夫々のタイルにおいて“0”を起源としてコードストリームをデコードする順にタイルパートインデックスが割り当てられる。実施形態では、JPEG2000を例にして説明しているので、タイルパートインデックス“0”は、最も低周波成分領域を指し示すものであり、以下、高周波成分になるにつれてタイルパートインデックスは大きくなる。
【0045】
更に、タイルグループは、夫々を構成する下位レベルのタイルグループ若しくはタイルにおいて“0”を起源として画像の左上に位置するタイル、タイルグループからラスタ順にインデックスが割り当てられる。割り当てられたインデックスは、その親のインデックスに連結されて、タイルグループインデックスとして割り当てられる。要するに、復号する際に、必須のもの程、タイルパートインデックスの数字が小さいように割り当てる。
【0046】
以降の説明においては、以上説明したようにタイルグループインデックスが割り当てられるようにするが、本発明はこれに限定されることなく、種々のタイルグループインデックスの割り当て方が可能である。例えば、各ノードの親のタイルグループインデックスに子ノードのグループインデックスを連結させて表現することも可能である。子ノードは、親のタイルグループ内においてラスタ順に0からインデックスが割り当てられるようにする。
【0047】
この割り当て方によれば、図4Aにおける「1−0」で示されるタイルグループは、タイルインデックスで表現すると「0−0」と表現できる。同様に、「2−1」は、「0−0−1」と表現できる。
【0048】
図4Bは、図4Aと等価のツリー構造を、タイルインデックス&タイルパートインデックスで示したものである。なお、図示において、例えば「0−0−0−0(3)」における「0−0−0−3」はタイルインデックスであることは上記の通りであるが、末尾の「(3)」はタイルパートインデックスである。タイルパートインデックスが小さいほど優先的に復号する、すなわち、低周波成分の符号化データであることを示している。
【0049】
以上、本実施形態におけるコードストリーム、タイルグループ/タイル/タイルパートの構造、及びタイルグループインデックス/タイルインデックス/タイルパートインデックスについて説明した。
【0050】
本実施形態における暗号化タイルパート指定部11では、入力されたコードストリームc中のメインヘッダ部分、及びタイルパートヘッダ部分に属する情報を読み出し、タイル、タイルパート、及びタイルグループの構成を解析する。そして、暗号化の対象とするタイルグループ、タイル、及びタイルパートを指定し、暗号化タイルパート情報taとして出力する。
【0051】
暗号化の対象とするタイルグループ、タイル、及びタイルパートは、ユーザによって明示的に指定されても良いし、RAMやHDなどに予め記憶されている情報を用いるようにしても良い。
【0052】
ユーザによって指定されるようにする場合、コードストリームcを解析した結果を、例えば図4Bに示すようなツリー構造として、モニタなどを用いてユーザに示すようにする。そして、ユーザは所望のタイルグループ、或いはタイルパートに対応するノードを指定する。或るタイルグループ或いはタイルパートが指定されると、その指定された位置から図示の破線で示される位置に向かう方向に存在するタイルグループ或いはタイルパートも暗号化する対象として決定される。
【0053】
例えば、図4Bにおいて、「0−0−0−0(2)」が指定された場合、「0−0−0−0(2)」とその上位にある「0−0−0−0(3)」が暗号化対象として決定される。ただし、タイル「0−0−0−1(1)」乃至「0−0−0−3(0)」は暗号化対象とはならず、解読キーがなくても復号し再現できることを意味する
また、タイルグループ「0−0」が指定された場合には、破線に向かう方向、すなわち、その下位のタイルグループ「0−0−0」、「0−0−1」、「0−0−2」、「0−0−3」が暗号化対象として決定される。ここで、タイルグループ「0−0−0」について着目すると、そのタイルグループにはタイル「0−0−0−0」乃至「0−0−0−3」が含まれるので、それらも暗号化対象として決定され、結果的に、それぞれのタイルの全タイルパートも暗号化対象として決定されることになる。すなわち、1つのタイルグループを指定した場合、そのタイルグループに含まれる下位のタイルグループ、最終的には下位に位置する各タイルの全タイルパートが暗号化対象して決定されることになる。
【0054】
このことは、例えば解像度に応じてアクセス制御をする場合、高解像度に対するアクセス権を有するユーザは、自動的に、低解像度に対するアクセス権を有することを意味する。また、タイルグループを指定した場合には、そのタイルグループに属するタイル、更にタイルパートは全て暗号化対象とすることを意味する。
【0055】
以上、説明した様に暗号化対象となるタイル、或いはタイルパートが決定される。暗号化対象として指定されたタイルパートは暗号化対象タイルパート情報taとして出力される。ここで、taはタイルインデックスと、そのタイルに属するタイルパートのうち暗号化されるタイルパートのインデックスの最小値との組で構成される。
【0056】
図5に画像全体が64個のタイルから構成されるコードストリームに対するtaの一例を示す。図5に示すように、例えばタイルインデックス0のタイルは暗号化されるタイルパートの最小値が0となっており、これはこのタイルに属するタイルパートを全て暗号化することを意味する。一方、タイルインデックス1のタイルは暗号化されるタイルパートの最小値が2となっており、これはこのタイルに属するタイルパートのうちタイルパートインデックスが0、及び1のタイルパートは暗号化されず、タイルパートインデックスが2以上のタイルパートに対して暗号化することを意味する。
【0057】
なお、ユーザが暗号化対象を決定する場合(taを決定する場合)には、特定の暗号化させる1つのタイル、或いは、タイルパートを指定しても良いが、暗号鍵無しで再現できる最高解像度(或いは暗号化鍵で再現する最低解像度)の限界を指定することが望ましい。そこで、図4Bのような画面を表示させたとき、縦一列のタイルグループ或いはタイルパートを一度に設定できるようにするため、縦線を表示し、その表示位置をポインティングデバイスで水平に移動させることで、暗号化する対象を決定するようにすることが望ましいであろう。ただし、ここでは、個々にユーザが指定する場合を説明することとする。
【0058】
以上、説明したように、暗号化タイルパート指定部11から、暗号化対象タイルパート情報taが出力され、暗号化部13に入力される。
【0059】
次に、鍵行列生成部12の処理の詳細を説明する。鍵行列生成部12には、コードストリームcが入力され、入力されたコードストリームcから、鍵行列kaが生成され、生成された鍵行列ka及びコードストリーム鍵ckが出力される。
【0060】
ここで、鍵行列生成部12で実行される鍵行列生成処理について図6を用いて、詳細に説明をする。図6は鍵行列生成部12で実行される鍵行列生成処理を示すフローチャートである。
【0061】
まず、ステップS61でコードストリーム鍵ckが生成される。コードストリーム鍵ckは、コードストリームcのハッシュ値として次式(式(1))の様に算出される。
ck=K(0)=H(c) (式1)
ここで、H()は、一方向性(不可逆)、及び衝突耐性を有する関数であり、例えば、ハッシュ関数や、DESなどの暗号化処理などが適用可能である。コードストリーム鍵ckとは、図4に示したツリー構造におけるルートノードに対応する値であり、入力した1画像分のデータに基づいて生成する。
【0062】
次いで、ステップS62において、パラメータiを初期値“1”、そしてパラメータjを“0”に初期化する。パラメータiは前述したツリー構造におけるレベルを示すインデックスであり、パラメータjは前述した各レベルにおけるノードを表すインデックスである。特に、iとjの組み合わせ(i,j)をタイルグループインデックスと呼ぶ。
【0063】
次のステップS63では、タイルグループインデックス(i,j)のタイルグループ鍵が生成される。タイルグループ鍵は、その親のタイルグループ鍵、及びタイルグループインデックス(i,j)のハッシュ値として式(2)の様に算出される。
K(i,j)= H(K(i−1,k), i,j) (式2)
ここで、kはタイルグループ(i,j)の親ノードに対応するノードを表すインデックスである。即ち、親ノードに対応するタイルグループ鍵K(i−1,k)と、生成するタイルグループ鍵に対応するノードのタイルグループインデックス(i,j)とからタイルグループ鍵が生成される。しかしながら、本発明はこれに限定されることなく、親ノードに対応する鍵と、生成するタイルグループ鍵に対応するノードに含まれるタイルインデックスとからタイルグループ鍵を生成するようにしてもよい。例えば、生成するタイルグループに対応するノードから順に木(ツリー)をたどり、タイルに対応するノードを調べ、当該タイルのタイルインデックを用いるようにすれば良い。要するに、上位ノード(ルートノード側にあるノード)に対する鍵ckと、その下位(下層)方向にあるノードのインデックスに基づいて、下位にあるノードの鍵を派生することを順に繰り返すことになる。
【0064】
ステップS64では、レベルiにおいて全てのノードに対応するタイルグループ鍵が生成されたか否かが判定される。判定結果が真の場合はステップS66に進み、判定結果が偽の場合はステップS65に進む。
【0065】
ステップS65では、パラメータjが1だけ増やされ、その後ステップS63が再度処理される。つまり、パラメータiで示されるレベルに属する全タイルグループについて鍵が生成されることになる。
【0066】
一方、パラメータiで示されるレベルに対するタイルグループ鍵が生成されると、処理はステップS66に進み、変数jを初期化し、全てのレベルが処理されたか否かが判定される。判定結果が真の場合はステップS68に進み、判定結果が偽の場合はステップS67に進んで、次のレベルの処理を行うべく、パラメータiを1だけ増加させ、ステップS63以降の処理を繰り返す。
【0067】
さて、処理がステップS68に進むとき、末端のノード、すなわち、タイルグループではなく、個々のタイルに対する鍵の生成が行われると、処理はステップS68に進む。
【0068】
ステップS68では、パラメータmを“0”、パラメータnを“N−1”で初期化する。ここで、パラメータNとは、タイルmを構成するタイルパートの総数である。
【0069】
ステップS69では、タイルインデックスm、タイルパートインデックスnに相当するタイルパート鍵が生成される。タイルパート鍵は、その親のタイルパート鍵のハッシュ値として式(3)の様に算出される。
K(m,n+1)=H(K(m, n)) (式3)
生成されたタイルパート鍵は鍵行列kaとして記録される。ここで、鍵行列kaの例を図7を用いて説明する。図7には本実施形態に適用可能な鍵行列kaの一例を示す。従って、或るタイルパートの最も大きなインデックスを持つタイルパートの鍵は、そのタイルパートが属するタイルに対して生成された鍵(ステップS63で生成された鍵)を元に生成し、以下、タイルパートのインデックスが小さくものは、それより1つ大きなインデックスのタイルパートに与えられたキーを用いて派生することになる。
【0070】
図7は、画像全体が64個のタイルから構成され、タイルパートの数の最大が5である場合の鍵行列kaの例を示している。図7に示すように、鍵行列kaの各行はタイルに相当し、各列はタイルパートに相当する。行列の要素値としては、ステップS68で算出したタイルパートの鍵を記録する。タイルパートが存在しない要素にはNULLなど記録するようにする。
【0071】
ステップS69に続いてステップS70が処理される。このステップS70では、タイルパートインデックスnに属する全てのノードに対応するタイルパート鍵が生成されたか否かが判定される。判定結果が真の場合はステップS72に進み、判定結果が偽の場合はステップS71に進んでパラメータnを“1”だけ減じ、ステップS69の処理を行うことになる。
【0072】
こうして、タイルインデックスmで示される全タイルパートに対する処理が終わると、ステップS72に進み、変数nを初期化し、全てのタイルが処理されたか否かが判定される。判定結果が真の場合は、鍵行列生成処理を終了し、判定結果が偽の場合はステップS73に進み、次のタイルに対する処理を行うべくパラメータmを“1”け増加させ、ステップS69以降の処理を繰り返すことになる。
【0073】
以上、説明したように、鍵行列生成処理により鍵行列kaが生成される。生成された鍵行列kaは暗号化部13に入力される。
【0074】
次に、暗号化部13の処理の詳細を説明する。暗号化部13は、コードストリームc、暗号化対象タイルパート情報ta、及び鍵行列kaを入力し、暗号化タイルパート情報taに示されたコードストリームcのタイルパートを、鍵行列kaに記録されているタイルパート鍵を用いて暗号化し、暗号化されたコードストリームc’を出力する。具体的には次の通りである。
【0075】
暗号化部13は、先ず、暗号化タイルパート指定部11からの暗号化タイルパート情報taに基づき、実際に暗号化対象となるタイルパートであるかどうかを判断するための暗号化タイルパート行列を生成する。暗号化タイルパート行列の例は図8に示す通りである。図示の行列において、行はタイルを表し、列はタイルパートを表す。更に、要素の値としては、暗号化対象とならないタイルパートは0、暗号化対象となるタイルパートは1、存在しないタイルパートは2で示されている。「2」が格納される理由は、タイルをウェーブレット変換する際の変換回数がタイル毎に異なる、すなわち、各タイルのタイルパートの個数が異なっていても構わないことに対処するためである。因に、図8の場合には、ウェーブレット変換の最大回数は5回であることを示している(ウェーブレット変換回数+1がタイルパートの個数であることは既に説明した)。
【0076】
暗号化タイルパート情報taには、各タイル中で暗号化されるタイルパートインデックスの最小値が記録されており、更に本実施形態においては、夫々のタイル中で、暗号化タイルパート情報taに記録されたタイルパートインデックスよりも大きな値を持つタイルパートは暗号化されるために、図5に示す暗号化タイルパート情報からは、図8に示すように暗号化対象となるタイルパートが特定される。
【0077】
次に、暗号化対象タイルパート行列と鍵行列kaを比較し、暗号化対象タイルパート行列の要素値が1であるタイルパートに対して、鍵行列ka中の同じ座標に位置する鍵を用いて、コードストリームc中のタイルパートを暗号化する(暗号化対象タイルパート行列の要素値が0のタイルパートについては暗号化しない)。こうして、暗号化対象となっているタイルパート全てに対して暗号化を施し、コードストリームc中の該当するタイルパートのデータは、暗号化されたタイルパートのデータで置換えられ、出力される。
【0078】
また、暗号化したタイルパートは、該タイルパートが暗号化されていることを示すための情報Infをタイルパートヘッダに記録しておく。これは、後述する暗号復号処理の際に、タイルパートが暗号化されているか否かを判定するために用いる。
【0079】
更に、JPEG2000においては、タイルパートを構成するコードストリームcは、パケットと呼ばれる単位から構成されている。そして、パケットはヘッダ部分とデータ部分から構成されている。本実施形態においては、ヘッダ部分は暗号化せずに、データ部分だけを暗号化するようにする。このように暗号化することによって、例え暗号化したとしても、画像として正しく伸張復号することが可能である。
【0080】
暗号化の方法としては、本実施形態においては特に限定せず、DES(Data Encryption Standard)や、AES(Advanced Encryption Standard)など種々の暗号アルゴリズムを適用可能である。
【0081】
以上の様に、暗号化タイルパート行列に示された全てのタイルパートが暗号化されたコードストリームは、暗号化コードストリームc’として出力される。以上、図14における暗号化処理部141について説明した。
【0082】
上記本実施形態における暗号化処理部141は、一般に、パーソナルコンピュータ等の情報処理装置で実現できることは容易に類推できよう。また、パーソナルコンピュータ等の情報処理装置で、上記機能を実現すれば良いわけであるから、実施形態での特徴は情報処理方法、更には、コンピュータプログラムや、コンピュータプログラムを格納するCDROM等のコンピュータ可読記憶媒体にまで及ぶものである。
【0083】
[アクセス鍵生成処理部]
次に、図9を用いて本実施形態に適用されるアクセス鍵生成部(機能)を説明する。
【0084】
図9に示すように、アクセス鍵生成部は、コードストリーム鍵ck、及びアクセスを許可するインデックスanが入力され、入力されたコードストリーム鍵ckからアクセスを許可するインデックスanに対応するアクセス鍵ak(暗号化を解除する鍵)が生成され、生成されたアクセス鍵akが出力される。ここで、アクセスを許可するインデックスanとは、アクセスを許可するタイルグループインデックス、或いはタイルとタイルパートインデックスである。
【0085】
図4に示したように、本実施形態においては、タイルグループ、及びタイルパートはツリー構造で表現できる。図4に示したツリー構造を構成するノードのうち、ひとつのノードを、アクセスを許可するインデックスanで指定し、指定されたノードに対応するアクセス鍵を生成する。
【0086】
指定されたノードのアクセス鍵を生成する方式としては、入力されたコードストリーム鍵ckをルートノードに対応させ、図6に示したような方法で順に各ノードに対応する鍵を生成し、これをノードのインデックスがアクセスを許可するインデックスanになるまで繰り返すようにすれば良い。
【0087】
生成されたアクセス鍵は、図10に示すようなフォーマットに従ってakとして出力される。図10に示すように、akは、アクセス鍵、アクセス鍵が対応するタイルグループ或いはタイルパートのインデックス、及びタイルパートインデックスかタイルグループインデックスかを示す情報から構成される。図10に示すようなフォーマットに格納された後、akは後述する暗号復号処理部に渡される(実際は、暗号復号処理部からの要求に応じて提供する)。出力されたアクセス鍵は安全に暗号復号処理部に送信するために、暗号化されてakに記録するようにしても良い。
【0088】
アクセス鍵生成部におけるアクセス鍵生成処理について、例を用いて説明する。
【0089】
例えば、アクセスを許可するインデックスanとして、タイルグループインデックス「0−0−0」(図4B参照)を指定したとする。すると、入力されたコードストリーム鍵ck(ルートノードに対応する)から、タイルグループインデックス「0−0」に対応するタイルグループ鍵をハッシュ関数を用いて生成する。更に、生成されたタイルグループ「0−0」のタイルグループ鍵から、タイルグループ0−0−0のタイルグループ鍵を生成し、それをタイルグループ鍵0−0−0のアクセス鍵ak(図10)として出力する。
【0090】
[暗号復号処理部]
先ず、実施形態における暗号復号処理部143と、アクセス鍵生成処理部142との大まかな動作を説明し、その後で、具体的な暗号復号処理部143の処理内容を説明することとする。暗号復号処理部143はインターネットに接続し得る一般のユーザが所有しているPC、アクセス鍵生成処理部142は暗号化を解除するための認証サーバとして考えると分かりやすいので、それを前提にして説明する。
【0091】
暗号化されたコードストリームc’を受信した暗号復号処理部(クライアントPC)143は、非暗号化のタイルパートの符号データに基づいて画像を再現する。従って、再現できる画像の解像度は自ずと限られていることになる。このとき、その暗号復号処理部のユーザが、より高い解像度を再現できるよう望む場合、暗号化されているタイルパートから上位に遡って、要求するレベルのノードをユーザからの指示に従い決定する。このノードのレベル(タイルグループインデックスかタイルパートインデックス)をアクセス鍵生成処理部142(認証サーバ)にインデックスanとして要求する。この結果、アクセス鍵生成処理部142からは、要求したノードに対するアクセス鍵akが送られてくるので、受信したアクセス鍵akに基づき、その下位に向かう暗号を解除するための鍵群を生成する。そして、その鍵を用いて符号データの暗号化を解除し、復号を行なう。
【0092】
なお、アクセス鍵生成処理部142としては、アクセス鍵akを取得したい旨の要求をクライアント(復号処理部に対応する)から受信した場合、認証処理や課金等の処理を経て、そのアクセス鍵を提供することになるであろう。従って、このアクセス鍵生成処理部142をインターネットに認証サーバとして設置する場合、複数の暗号化処理部、複数の復号処理部を想定して設置する必要があり、必然、多数の画像を特定する情報と共に、それら個々の画像に対するコードストリーム鍵を登録できるようにしておく。そして、復号処理部143は、画像を特定する情報と暗号を解除するためのノードインデックスを通知することで、目的とする画像の目的とするノードレベルのアクセス鍵akを得るようになる。アクセス鍵生成処理部142(認証サーバ)としては、1つの画像について、その画像を特定する情報(IDやファイル名等)と、その画像のルートノードに対する1つのコードストリームだけ記憶していれば良いので、記憶管理する情報量も少なくできよう。
【0093】
上記を踏まえ、以下、図11を用いて本実施形態に適用される暗号復号処理部(機能)を説明する。
【0094】
図11に示すように、本実施形態における暗号復号処理部は、鍵行列生成部111、暗号復号部112、及び暗号化タイルパート判定部113から構成される。
【0095】
まずはじめに、鍵行列生成部111の処理の詳細を説明する。鍵行列生成部111には、アクセス鍵生成処理部142に要求したタイルグループインデックス、或いはタイルパートインデックスに対するアクセス鍵akが入力される。そして、入力されたアクセス鍵akから、鍵行列ka’(各ノード(タイル及びタイルパート)に対応する解読キー)を生成し、その生成された鍵行列ka’を出力する。
【0096】
ここで、鍵行列生成部111で実行される鍵行列生成処理について図12を用いて、詳細に説明をする。図12は鍵行列生成部111で実行される鍵行列生成処理を示すフローチャートである。
【0097】
まず、ステップS121で入力されたアクセス鍵akがタイルグループに対応するものか、或いはタイルパートに対応するものかが判定される。この判定のためには、図10に示した「タイルパートインデックスかタイルグループインデックスかを示す情報」を利用する。判定結果がタイルグループインデックスの場合にはステップS122に進み、判定結果がタイルパートインデックスの場合にはステップS128に進む。
【0098】
ステップS122(タイルグループインデックスの場合)では、パラメータi、及びパラメータjを、図10に示したアクセス鍵フォーマット中の「アクセス鍵値に対応するインデックス」に初期化する。パラメータiは前述したツリー構造におけるレベルを示すインデックスであり、パラメータjは前述した各レベルにおけるノードを表すインデックスである。即ち、iとjの組み合わせ(i,j)はタイルグループインデックスである。
【0099】
一方、タイルパートインデックスであると判断し、ステップS128に進んだ場合には、パラメータm、及びパラメータnを、図10に示したアクセス鍵フォーマット中の「アクセス鍵値に対応するインデックス」に初期化にする。ここで、パラメータmはタイルインデックス、パラメータnはタイルグループインデックスを示す。
【0100】
その他の処理は、図6における鍵生成処理と同様の処理であるので詳細な説明は省略する。
【0101】
以上、説明したように、鍵行列生成処理により鍵行列ka’が生成される。生成された鍵行列ka’は暗号復号部112に入力される。
【0102】
次に、暗号化タイルパート判定部113の処理の詳細を説明する。暗号化タイルパート判定部113には、暗号化されたコードストリームc’が入力され、入力されたコードストリームc’からタイルパートが抽出され、抽出されたタイルパートが暗号化されているか否かが判定され、暗号化タイルパート情報ta’が出力される。
【0103】
本実施形態における暗号化部分判定部113では、入力されたコードストリームc’中のタイルパートヘッダ部分を解析し、タイルパート部分に「タイルパートが暗号化されていることを示す情報」Infが記録されているか否かを調べる。判定された情報は、暗号化タイルパート情報ta’として出力される。暗号化タイルパート情報ta’の一例を図13に示す。
【0104】
図13は、画像全体が64個のタイルから構成され、タイルパートの数の最大が5である場合の暗号化タイルパート情報ta’の例を示す。図13に示すように、暗号化タイルパート情報ta’の各行はタイルに相当し、各列はタイルパートに相当する。行列の要素値としては、暗号化されていない場合には0を、暗号化されている場合には1を、存在しないタイルパートには2を記録する。
【0105】
次に、暗号復号部112の処理の詳細を説明する。暗号復号部112には、暗号化されたコードストリームc’、鍵行列ka’、及び暗号化タイルパート情報ta’が入力され、暗号化タイルパート情報ta’に示されたコードストリームc’のタイルパートが、鍵行列ka’に記録されているタイルパート鍵を用いて復号され、復号されたコードストリームc’が出力される。
【0106】
暗号化処理部13では、暗号化タイルパート行列ta’と鍵行列ka’を比較し、暗号化タイルパート行列ta’の要素値が1であるタイルパートに対して、鍵行列ka’中の同じ座標に位置する鍵を用いて、コードストリームc中のタイルパートを暗号復号処理する。そして、コードストリームc’のタイルパートは、暗号復号処理されたタイルパートに置き換えられる。
【0107】
また、暗号復号処理したタイルパートは、タイルパートヘッダに記録されている、該タイルパートが暗号化されていることを示す為の情報Infを消去する。
【0108】
更に、ヘッダ部分は暗号復号処理せずにデータ部分だけを暗号復号処理するようにする。
【0109】
暗号復号処理の方法としては、暗号化処理部で実行した方法に対応する方法でなければならない。
【0110】
以上の様に、アクセス鍵に応じて、暗号化されたコードストリームc’が暗号復号され、暗号復号されたコードストリームは、暗号復号コードストリームc’’として出力される。
【0111】
従って、図14における復号処理部143が、アクセス鍵生成処理部142からアクセス鍵akを受信しないで、暗号化されたコードストリームc’を受信し復号処理したとしても、暗号化されていないタイルパートについては復号が成功するだけとなり、予め許容された解像度以下の画像の再現までが可能となる。換言すれば、復号処理部143のユーザが、より鮮明な画像を望む場合には、アクセス鍵akを取得し、再度復号化処理を行えば良いことになる。
【0112】
以上説明したように本第1の実施形態によれば、複数のタイル及び階層構造を有する画像データに対して、タイル及び階層構造毎に異なる暗号鍵を用いて暗号化した場合にも、複数の鍵を管理する必要がないようにすることが可能となる。更に、複数のタイル及び階層構造と、それらに対応する復号鍵を記録し、正しく復号処理を実行することか可能となる。
【0113】
なお、上記の実施形態でのタイルパートとは、ウェーブレット変換処理を行った際に生成される各周波数成分領域の集合単位とするものであったが、これに限定されるものではない。
【0114】
例えば、一般に画像の圧縮符号化では、ウェーブレット変換や直交変換等の周波数変換処理して得られたデータを量子化し、エントロピー符号化を施すが、量子化して得られた各係数値のビット単位のプレーン毎に符号化することを行う提案も既に幾つかなされており、これに適用させても良いからである。より具体的に説明するため、図15を用いて説明する。
【0115】
図15は、量子化した後の係数値のブロックを示している。図示では説明を単純化するため、4×4としているが勿論、これより大きくても構わないし、一般に、このサイズよりも大きなものとなる。座標(i,j)として表現したとき、図示は、(1,1)の係数値が「5」、(3,1)が「3」、(1、3)が「2」という値を持ち、それ以外は「0」となっている例を示している。この中で値が最も大きいものが「5」であり、バイナリー(2進)で表記すると「101」となる。つまり、図示の場合、全ての係数が3ビットで表現できるので、ビット2のプレーン、ビット1のプレーン、ビット0のプレーンの3つのプレーンがあれば十分に表現でき、ビットプレーン毎に符号化を行う。
【0116】
一方、データの重要度から見た場合、高位のビットほどその重要であるから、結局のところ、ビット2のプレーンがそのブロックの画質に支配的となり、以下、画質に与える影響の大きな順は、ビット1のプレーン、ビット0のプレーンとなる。これは、ちょうど、先に説明したウェーブレット変換を複数回行った際の、最も低周波成分の係数値(LL成分)が、ビット2のプレーンであり、最も高周波成分の係数の集合{LH1+HL1+HH1}がビット0のプレーンに対応するのと同様の意味を持つことに他ならない。
【0117】
一方、周波数変換し、量子化した後の値の最大値によって、符号化する対象のプレーンの数が決定されるわけであるから、そのプレーンの数は個々のタイルによって異なる。仮に、固定の量子化ステップで量子化し、その時に取り得る値が0乃至63であるとしたとき、最大で6つのプレーン(ビット0〜5のプレーン)が発生し得ることになる。図15は、このような状況において、たまたま全ての係数が3ビット(ビット0乃至2)以内で表現でき、ビット3乃至5のプレーンは生成する必要はない。すなわち、使用していないビットプレーンについては、そのデータが存在しなくても良いから、先に説明した図8に示した暗号化タイルパート行列内に「2」が格納される。
【0118】
従って、タイルパートは、上記のように、符号化する際に用いたビットプレーンの数を割り当て、最も上位のビットプレーンに対して小さなタイルパートのインデックスを割り当てることでも、全く同様の効果が期待できる。或いは、符号化する際に用いたビットプレーンのいくつかのまとまりをレイヤとし、最も上位のレイヤに対して小さなタイルパートのインデックスを割り当てるようにしてもよい。
【0119】
また、画像を符号化する際、原画像中のM×N画素で表現される部分画像(プレシンクト)を更に幾つかに分割し、個々の分割領域をタイルパートとして定義しても構わない。
【0120】
さらに、複数の成分(輝度成分や、色成分など)から構成される画像を符号化する際、所定の成分(例えば、輝度値)をタイルパートとして定義しても構わない。
【0121】
以上を簡単にまとめると、実施形態における暗号化対象の指定とその暗号化処理は2通り存在することになる。
【0122】
1つ目は、或るタイルグループを暗号化対象として指定したとき、そのタイルグループに属する下位のレベルのタイルグループ、最終的には指定されたタイルグループに属する全タイルが暗号化対象として設定される。そして、ルート(レベル0)のタイルグループに対して生成された暗号化キーから派生して生成されたキーを用いて、暗号化対象のタイルデータが暗号化される。
【0123】
この結果、暗号化キーとしては1つで済み、尚且つ、所望とするタイルグループに属するタイルについて暗号化させることができる。
【0124】
2つ目は、或るタイルパートに対して暗号化対象として指定したとき、その指定されたタイルパートのインデックス以上のインデックスを有するタイルパートを暗号化させることができることである。換言すれば、暗号化対象として指定したタイルパートより小さいインデックスを有するタイルパートについては非暗号化となるので、解像度の低い画像については無条件に再現できるものの、それを越える解像度について、解読キーを有しない限り不可にできる。
【0125】
[第2の実施形態]
第1の実施形態においては、図1において鍵行列指定部12と暗号化部13を分離させ、鍵行列指定部12の出力である鍵行列kaを暗号化部13に入力するようにしていた。また、図11における鍵行列ka’も同様である。鍵行列ka、及び鍵行列ka’の大きさは画像を構成するタイル数とタイルパートの最大値によって決定する。よって、多くのタイルを有する画像であったり、タイルパートの最大値が場合には、鍵行列ka、及び鍵行列ka’の大きさが大きくなってしまうことがある。
【0126】
しかしながら本発明は、これに限定されることなく、鍵行列生成部12、及び鍵行列生成部111は必ずしも鍵行列ka、及び鍵行列a’を全画像分まとめて出力する必要はない。ひとつの鍵が生成される度に、生成された鍵を暗号化部13、或いは暗号復号部112に出力するようにするようにすることも可能である。このようにすることによって、鍵のために必要とされるメモリ量を小さくすることが可能となる。
【0127】
以上説明したように本実施形態によれば、複数のタイル及び階層構造を有する画像データに対して、タイル及び階層構造毎に異なる暗号鍵を用いて暗号化した場合にも、複数の鍵を管理する必要がないようにすることが可能となる。更に、複数のタイル及び階層構造と、それらに対応する復号鍵を記録し、正しく復号処理を実行することか可能となる。
【0128】
[第3の実施形態]
第1の実施形態においては、タイルグループ鍵、及びタイル鍵の生成のために(式2)を用い、タイルパート鍵の生成のために(式3)を用いるようにした。
【0129】
しかしながら、本発明はこれに限定されることはなく、鍵生成のために種々の処理を行うことが可能である。例えば、図6におけるS63において、タイル鍵を、その親のタイル鍵のハッシュ値として(式2’)の様に算出しても良い。
K(j+1)=H(K(j)) (式2’)
ここで、jはタイルインデックスである。また、図6におけるS69において、タイルパート鍵を、タイル鍵とタイルパートインデックスのハッシュ値として(式3’)の様に算出しても良い。
K(m、n)=H(K(m)、n) (式3’)
ここで、mはタイルインデックス、nはタイルパートインデックスである。
【0130】
このように生成された鍵のツリー構造を図16に示す。図16は、4つのタイルと、夫々のタイルが3つのタイルパートから構成されるコードストリームcに対応する鍵を、前記(式2’)及び(式3’)を用いて生成した際の鍵のツリー構造を示す図である。
【0131】
以上のような処理とすることにより、各々タイルに対する鍵は親のノードに対応するタイル鍵からハッシュ関数だけによって生成することができる。例えば、タイルインデックス2とタイルインデックス3に対応するタイルへのアクセスを許可するような場合に、第1の実施形態においては、アクセス鍵生成処理部において、タイルインデックス2とタイルインデックス3に対応する2つのタイル鍵を生成し、暗号復号部に送信しなければならなかった。一方で、本実施形態においては、アクセス鍵生成処理部においてタイルインデックス2に対応する1つのタイル鍵だけを生成し、暗号復号部に送信するようにすればよく、効率的である。
【0132】
また、各々のタイルパートに対する鍵は親のノードに対応するタイル鍵と、当該タイルパートのタイルパートインデックスとから、ハッシュ関数を用いて算出できる。例えば、第1の実施形態では、タイルパート1に対応するタイルパートだけへのアクセスを許可することは困難であった。これは、タイルパート1へアクセスを許可することは、同時にその子ノードに対応するタイルパート0への許可をアクセスすることになったからである。一方で、本実施形態においては、タイルパート1に対応するタイルパート鍵は、その親ノードに対応するタイル鍵と、当該タイルパートインデックス1から生成できるため、より柔軟なアクセス制御を実現可能である。
【0133】
更に、図6のおけるS63において、タイル鍵を(式2’)のように生成し、S69において、タイルパート鍵を(式3)のように生成したり、或いは、S63において、タイル鍵を(式2)のように生成し、S69において、タイルパート鍵を(式3’)のように生成するようにすることも可能であることは明らかである。
【0134】
[第4の実施形態]
第3の実施形態においては、タイルパート鍵が、親ノードに対応するタイル鍵と、当該タイルパートに対応するタイルパートインデックスとから生成される例を説明した。更に、本実施の形態においては、タイルパート鍵がグループ化されて生成される例を説明する。
【0135】
本実施形態におけるタイルパート鍵生成処理を図17を用いて説明する。図17は本実施形態におけるタイルパート鍵生成処理を説明するフローチャートである。図6に示したフローチャートにおけるS68からS74までの処理を、図17に示す処理に置き換えるようにすればよい。
【0136】
まず、ステップS171において、パラメータi及びjが“0”に初期化される。パラメータiはツリー構造におけるレベルを示すインデックスであり、パラメータjは各レベルにおけるノードを表すインデックスである。特に、iとjのくみあわせ(i、j)をタイルパートグループインデックスと呼ぶ。
【0137】
次のステップS172では、タイルパートグループインデックス(i,j)のタイルパートグループ鍵が生成される。タイルパートグループ鍵は、その親のタイルパートグループ鍵、及びタイルパートグループインデックス(i,j)のハッシュ値として式(4)のように算出される。
K(i,j)=H(K(i−1、k),i,j) (式4)
ここで、kはタイルパートグループ(i,j)の親ノードに対応するノードを表すインデックスである。即ち、親ノードに対応するタイルパートグループ鍵K(i−1,k)と、生成するタイルパートグループ鍵に対応するノードのタイルパートグループインデックス(i,j)とからタイルパートグループ鍵が生成される。しかしながら、本発明はこれに限定されることなく、親ノードに対応する鍵と、生成するタイルパートグループ鍵に対応するノードに含まれるタイルパートインデックスとからタイルパートグループ鍵を生成するようにしてもよい。
【0138】
例えば、生成するタイルパートグループに対応するノードから順に木をたどり、タイルパートに対応するノードを調べ、当該タイルパートのタイルパートインデックを用いるようにすれば良い。要するに、上位ノード(ルートノード側にあるノード)に対する鍵ckと、その下位(下層)方向にあるノードのインデックスに基づいて、下位にあるノードの鍵を派生することを順に繰り返すことになる。
【0139】
ここで、(式4)を用いて生成されたタイルパートグループ鍵のうち、最も子ノードに位置するレベルの鍵はタイルパート鍵である。タイルパート鍵の場合には、生成した鍵を鍵行列kaに記録される。
【0140】
ステップS173では、レベルiにおいて全てのノードに対応するタイルパートグループ鍵が生成されたか否かが判定される。判定結果が真の場合はステップS175に進み、判定結果が偽の場合はステップS174に進む。
【0141】
ステップS174では、パラメータjが1だけ増やされ、その後ステップS172が再度処理される。つまり、パラメータiで示されるレベルに属する全タイルパートグループについて鍵が生成されることになる。
【0142】
一方、パラメータiで示されるレベルに対するタイルパートグループ鍵が生成されると、処理はステップS175に進み、全てのレベルが処理されたか否かが判定される。判定結果が真の場合は処理を終了する。判定結果が偽の場合はステップS176に進んで、次のレベルの処理を行うべく、パラメータiを1だけ増加させ、ステップS172以降の処理を繰り返す。
【0143】
以上のように、タイルパートをグループ化して鍵行列を生成することによって、複数のタイルパートに対するアクセス制御をする際にはタイルパートグループ鍵をアクセス鍵生成処理部で生成するようにすればよく、効率的にアクセス制御することが可能となる。
【0144】
また以上説明した実施形態における、暗号化処理部141、アクセス鍵生成処理部142、更には、復号処理部143は、それぞれパーソナルコンピュータ等の情報処理装置でもって実現できるし、その機能を実現する手順としての方法の発明として捉えることができる。また、コンピュータにより実現できるわけであるから、本発明はそれぞれの装置で実行されるコンピュータプログラム、更には、そのコンピュータプログラムを格納し、コンピュータが読み込めるCDROM等のコンピュータ可読記憶媒体にも適用できるのは明らかであろう。
【0145】
従って、上記実施形態に係る実施態様を列挙すると、次の通りである。すなわち、暗号化処理部141としての情報処理方法及び装置、並びにコンピュータプログラム及びコンピュータ可読記憶媒体は、次のようになる。
【0146】
[実施態様1] タイル単位に圧縮符号化された画像データを入力し、暗号化する情報処理方法であって、
隣接する複数のタイルで1つのタイルグループを構成し、更に、隣接するタイルグループで1つの更なるタイルグループを構成することを繰り返すことで、タイルグループの階層構造を定義し、
符号化データで表現される画像全体から、最上位階層の暗号化鍵情報を生成し、
前記階層構造中の、上位に位置するタイルグループに対して生成された暗号化鍵情報に基づき、下位層に位置するタイルグループ或いはタイルに対する暗号化鍵情報を生成することを、末端に位置するタイルまで行ない、
前記タイルグループのツリー構造中の、所望とする階層の所望とするタイルグループを暗号化対象とする指定入力が与えられた場合、当該指定入力されたタイルグループに属する下位層の末端に位置するタイルに対して暗号化を行うよう設定し、
暗号化を行うよう設定された個々のタイルに対し、当該タイルに対して生成された暗号化キーを用いて暗号化処理を行ない、当該暗号化した符号化データ及び暗号化されていないタイルの符号化データを出力する
ことを特徴とする情報処理方法。
【0147】
[実施態様2] 前記暗号化鍵情報は、上位階層から下位階層に向かう一方向性を有する関数を用いて生成することを特徴とする実施態様1に記載の情報処理方法。
【0148】
[実施態様3] 前記関数は、下位階層にあるタイルグループもしくはタイルの座標位置情報をパラメータとして鍵情報を生成することを特徴とする実施態様2に記載の情報処理方法。
【0149】
[実施態様4] 前記最上位階層の暗号化鍵情報は、所定のインターネット上の認証用サーバに出力することを特徴とする実施態様1に記載の情報処理方法。
【0150】
[実施態様5] 更に、入力した符号化データを、タイル及びタイルグループの階層構造として表示する工程を備え、
前記所望とする階層の所望とするタイルグループは、前記表示工程での表示された階層構造から指定することを特徴とする実施態様1に記載の情報処理方法。
【0151】
[実施態様6] タイル単位に圧縮符号化されたデータを入力し、暗号化する情報処理装置であって、
隣接する複数のタイルで1つのタイルグループを構成し、更に、隣接するタイルグループで1つの更なるタイルグループを構成することを繰り返すことで、タイルグループの階層構造を定義する手段と、
符号化データで表現される画像全体から、最上位階層の暗号化鍵情報を生成する手段と、
前記階層構造中の、上位に位置するタイルグループに対して生成された暗号化鍵情報に基づき、下位層に位置するタイルグループ或いはタイルに対する暗号化鍵情報を生成することを、末端に位置するタイルまで行なう手段と、
前記タイルグループのツリー構造中の、所望とする階層の所望とするタイルグループを暗号化対象とする指定入力が与えられた場合、当該指定入力されたタイルグループに属する下位層の末端に位置するタイルに対して暗号化を行うよう設定する手段と、
暗号化を行うよう設定された個々のタイルに対し、当該タイルに対して生成された暗号化キーを用いて暗号化処理を行ない、当該暗号化した符号化データ及び暗号化されていないタイルの符号化データを出力する手段と
を備えることを特徴とする情報処理装置。
【0152】
[実施態様7] コンピュータが読み込み実行することで、タイル単位に圧縮符号化されたデータを入力し、暗号化する情報処理装置として機能するコンピュータプログラムであって、
隣接する複数のタイルで1つのタイルグループを構成し、更に、隣接するタイルグループで1つの更なるタイルグループを構成することを繰り返すことで、タイルグループの階層構造を定義する手段と、
符号化データで表現される画像全体から、最上位階層の暗号化鍵情報を生成する手段と、
前記階層構造中の、上位に位置するタイルグループに対して生成された暗号化鍵情報に基づき、下位層に位置するタイルグループ或いはタイルに対する暗号化鍵情報を生成することを、末端に位置するタイルまで行なう手段と、
前記タイルグループのツリー構造中の、所望とする階層の所望とするタイルグループを暗号化対象とする指定入力が与えられた場合、当該指定入力されたタイルグループに属する下位層の末端に位置するタイルに対して暗号化を行うよう設定する手段と、
暗号化を行うよう設定された個々のタイルに対し、当該タイルに対して生成された暗号化キーを用いて暗号化処理を行ない、当該暗号化した符号化データ及び暗号化されていないタイルの符号化データを出力する手段と
して機能することを特徴とするコンピュータプログラム。
【0153】
[実施態様8] 実施態様7に記載のコンピュータプログラムを格納することを特徴とするコンピュータ可読記憶媒体。
【0154】
また、復号処理部143としての情報処理方法及び装置、並びにコンピュータプログラム及びコンピュータ可読記憶媒体は、次のようになる。
【0155】
[実施態様9] 暗号化/非暗号化されたタイル単位の符号化データが混在した情報を入力し、画像を再現する情報処理方法であって、
入力した情報に基づき、隣接する複数のタイルで1つのタイルグループを構成し、更に、隣接するタイルグループで1つの更なるタイルグループを構成することを繰り返すことで、タイルグループの階層構造を定義し、
暗号化されたタイルを包含する所望とする上位のタイルグループに対する、暗号解除を行うための鍵情報を入力し、
入力した鍵情報に基づき、当該鍵情報が示すタイルグループの下位層の鍵情報を生成することを、末端のタイルまで行い、
生成された各タイルに対する鍵情報を用いて、暗号化された各タイルの符号化データの暗号化を解除し、復号する
ことを特徴とする情報処理方法。
【0156】
[実施態様10] 暗号化/非暗号化されたタイル単位の符号化データが混在した情報を入力し、画像を再現する情報処理装置であって、
入力した情報に基づき、隣接する複数のタイルで1つのタイルグループを構成し、更に、隣接するタイルグループで1つの更なるタイルグループを構成することを繰り返すことで、タイルグループの階層構造を定義する手段と、
暗号化されたタイルを包含する所望とする上位のタイルグループに対する、暗号解除を行うための鍵情報を入力する手段と、
入力した鍵情報に基づき、当該鍵情報が示すタイルグループの下位層の鍵情報を生成することを、末端のタイルまで行う手段と、
生成された各タイルに対する鍵情報を用いて、暗号化された各タイルの符号化データの暗号化を解除し、復号する手段と
を備えることを特徴とする情報処理装置。
【0157】
[実施態様11] コンピュータが読み込み実行することで、暗号化/非暗号化されたタイル単位の符号化データが混在した情報を入力し、画像を再現する情報処理装置として機能するコンピュータプログラムであって、
入力した情報に基づき、隣接する複数のタイルで1つのタイルグループを構成し、更に、隣接するタイルグループで1つの更なるタイルグループを構成することを繰り返すことで、タイルグループの階層構造を定義する手段と、
暗号化されたタイルを包含する所望とする上位のタイルグループに対する、暗号解除を行うための鍵情報を入力する手段と、
入力した鍵情報に基づき、当該鍵情報が示すタイルグループの下位層の鍵情報を生成することを、末端のタイルまで行う手段と、
生成された各タイルに対する鍵情報を用いて、暗号化された各タイルの符号化データの暗号化を解除し、復号する手段と
して機能することを特徴とするコンピュータプログラム。
【0158】
[実施態様12] 実施態様11に記載のコンピュータプログラムを格納することを特徴とするコンピュータ可読記憶媒体。
【0159】
更に、アクセス鍵生成処理部142としてのサーバ及びその制御方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体は、次のようになる。
【0160】
[実施態様13] 暗号化/非暗号化されたタイル単位の符号化データが混在した画像のための暗号解除鍵を提供するネットワークに接続されるサーバの処理方法であって、
隣接する複数のタイルで1つのタイルグループを構成し、更に、隣接するタイルグループで1つの更なるタイルグループを構成することを繰り返す階層構造を有する画像の最上位に位置する基本解除鍵情報を記憶し、
解除させたい階層中のタイルグループを指定する情報を前記ネットワーク上のクライアントから受信したとき、指定された階層の指定されたタイルグループに到達するまで、前記基本解除鍵から下位層に向かって順次解除鍵情報を派生し、該当するタイルグループに対する解除鍵情報が生成された場合に、当該解除鍵情報を前記クライアントに通知する
ことを特徴とするサーバの処理方法。
【0161】
[実施態様14] 暗号化/非暗号化されたタイル単位の符号化データが混在した画像のための暗号解除鍵を提供するネットワークに接続されるサーバであって、
隣接する複数のタイルで1つのタイルグループを構成し、更に、隣接するタイルグループで1つの更なるタイルグループを構成することを繰り返す階層構造を有する画像の最上位に位置する基本解除鍵情報を記憶する手段と、
解除させたい階層中のタイルグループを指定する情報を前記ネットワーク上のクライアントから受信したとき、指定された階層の指定されたタイルグループに到達するまで、前記基本解除鍵から下位層に向かって順次解除鍵情報を派生し、該当するタイルグループに対する解除鍵情報が生成された場合に、当該解除鍵情報を前記クライアントに通知する手段と
を備えることを特徴とするサーバ。
【0162】
[実施態様15] コンピュータが読み込み実行することで、暗号化/非暗号化されたタイル単位の符号化データが混在した画像のための暗号解除鍵を提供するネットワークに接続されるサーバとして機能するコンピュータプログラムであって、
隣接する複数のタイルで1つのタイルグループを構成し、更に、隣接するタイルグループで1つの更なるタイルグループを構成することを繰り返す階層構造を有する画像の最上位に位置する基本解除鍵情報を記憶する手段と、
解除させたい階層中のタイルグループを指定する情報を前記ネットワーク上のクライアントから受信したとき、指定された階層の指定されたタイルグループに到達するまで、前記基本解除鍵から下位層に向かって順次解除鍵情報を派生し、該当するタイルグループに対する解除鍵情報が生成された場合に、当該解除鍵情報を前記クライアントに通知する手段と
して機能することを特徴とするコンピュータプログラム。
【0163】
[実施態様16] 実施態様15に記載のコンピュータプログラムを格納することを特徴とするコンピュータ可読記憶媒体。
【0164】
【発明の効果】
以上説明したように本発明によれば、複数のタイル及び階層構造を有する画像データに対して、タイル及び階層構造毎に異なる暗号鍵を用いて暗号化した場合にも、複数の鍵を管理する必要がないようにすることが可能となる。
【図面の簡単な説明】
【図1】本実施形態における暗号処理部のブロック構成図である。
【図2】本実施形態におけるタイル及びタイルパートを示す図である。
【図3】本実施形態におけるタイルグループ化を説明するための図である。
【図4A】第1の実施形態におけるタイルパート、及びタイルグループのツリー構造を示す図である。
【図4B】図4Aのツリー構造をタイルインデックス、タイルパートインデックスで示すツリー構造図である。
【図5】本実施形態における暗号化対象タイルパート情報を説明する図である。
【図6】本実施形態における鍵行列生成処理のフローチャートである。
【図7】本実施形態における鍵行列の構造を示す図である。
【図8】本実施形態における暗号化タイルパート行列の一例を示す図である。
【図9】本実施形態におけるアクセス鍵生成処理部のブロック構成図である。
【図10】本実施形態におけるアクセス鍵のフォーマットを示す図である。
【図11】本実施形態における復号処理部のブロック構成図である。
【図12】本実施形態における鍵行列生成処理を説明する図である。
【図13】本実施形態における暗号化タイルパート情報の一例を示す図である。
【図14】本実施形態におけるシステムの全体構成図である。
【図15】タイルパートの他の形態を示す図である。
【図16】第3の実施形態におけるタイルパート、及びタイルグループのツリー構造を示す図である。
【図17】第4の実施形態における処理の一部分を示すフローチャートである。
【発明の属する技術分野】
本発明は、デジタル画像データの圧縮符号化したデータを暗号化する技術に関するものである。
【0002】
【従来の技術】
従来、画像データなどを秘匿して伝送するために、画像データ全体の暗号化やスクランブルなどが行なわれてきた。これは、予め画像データ全体を一つの暗号鍵を用いて暗号化し、この暗号鍵に対応する復号鍵を有するものだけが正しく復号することが可能であるようにする技術である。
【0003】
しかし、階層構造を有する画像データの場合、その階層構造に応じて画像データの再生の可・不可を制御する目的で、画像全体ではなく階層構造毎に異なる暗号鍵を用いて暗号化処理が行うことが望まれる。また、画像データが複数のタイルから構成され、タイル毎に再生を制御する目的で、タイル毎に異なる暗号鍵を用いて暗号化処理が行われることが望まれる。更に、これらを合わせた場合として、複数のタイルから構成され、更に夫々のタイルが階層構造を有する画像データの場合、タイルと階層構造に応じた画像データの再生を制御する目的で、タイル中の階層構造毎に異なる暗号鍵を用いて暗号化処理が行われる。
【0004】
このように、タイル及び階層構造毎に異なる暗号鍵を用いて暗号化することによりタイル、及び階層構造毎に画像データの再生を制御することが可能である。
【0005】
【発明が解決しようとする課題】
しかしながら、暗号化された画像データの所定のタイル、及び階層構造を復号処理するためには、暗号化処理に用いた暗号鍵をすべて管理し、復号処理の際に適当な復号鍵を供給する必要がある。
【0006】
また、このようにタイル、及び階層構造毎に異なる暗号鍵を用いて暗号化した場合、暗号化されるタイル及び階層構造と、それを復号するための復号鍵との対応付けをする必要があり、その鍵情報の管理が複雑化することは避けられない。
【0007】
また、当然のことながら、その鍵情報が正しく管理されていない場合には、正しく復号処理を行うこともできない。
【0008】
本発明は上記従来例に鑑みてなされたものであり、複数のタイル及び階層構造を有する画像データに対して、タイル及び階層構造毎に異なる暗号鍵を用いて暗号化した場合にも、複数の鍵を管理する必要がない技術を提供することを目的とする。
【0009】
【課題を解決するための手段】
この課題を解決するため、例えば本発明の情報処理方法は以下のような工程を備える。すなわち。
【0010】
タイル単位に圧縮符号化された画像データを入力し、暗号化する情報処理方法であって、
隣接する複数のタイルで1つのタイルグループを構成し、更に、隣接するタイルグループで1つの更なるタイルグループを構成することを繰り返すことで、タイルグループの階層構造を定義し、
符号化データで表現される画像全体から、最上位階層の暗号化鍵情報を生成し、
前記階層構造中の、上位に位置するタイルグループに対して生成された暗号化鍵情報に基づき、下位層に位置するタイルグループ或いはタイルに対する暗号化鍵情報を生成することを、末端に位置するタイルまで行ない、
前記タイルグループのツリー構造中の、所望とする階層の所望とするタイルグループを暗号化対象とする指定入力が与えられた場合、当該指定入力されたタイルグループに属する下位層の末端に位置するタイルに対して暗号化を行うよう設定し、
暗号化を行うよう設定された個々のタイルに対し、当該タイルに対して生成された暗号化キーを用いて暗号化処理を行ない、当該暗号化した符号化データ及び暗号化されていないタイルの符号化データを出力する
ことを特徴とする。
【0011】
【発明の実施の形態】
以下、添付図面に従って本発明に係る実施形態を説明する。
【0012】
<第1の実施形態>
以下、図14を用いて本実施の形態に適用されるシステム全体について説明する。
【0013】
図14に示すように、本実施の形態におけるシステムは、暗号化処理部(或いは暗号化する装置)141、アクセス鍵生成部(或いはアクセス鍵生成装置)142、及び復号処理部(或いは復号装置)143から構成される。
【0014】
暗号化処理部には、コードストリームc(画像データの符号化データであるが、その詳細は後述)が入力され、コードストリームcからコンテンツ鍵ck、及び暗号化されたコードストリームc’が出力される。アクセス鍵生成処理部142は、このコンテンツ鍵ck、及びアクセスレベルanを入力し、アクセス鍵akを生成する。そして、復号処理部143は、アクセス鍵ak、及び暗号化されたコードストリームc’が入力され、復号処理されたコードストリームc’’が出力される。ここで、c’=c’’である場合、暗号化する以前の画像データに復元されることになる。
【0015】
本実施形態においては、アクセス鍵生成部142、及び復号処理部143は互いに耐タンパー(耐改ざん)であるようにする。例えば、暗号化処理部142はデジタルカメラで撮影した画像を暗号化し、インターネット上のWebサーバやFTPサーバにアップロードする装置で実行され、アクセス鍵生成処理部142はアクセス鍵を発行するサーバで実行され、復号処理部143は暗号化された画像データをダウンロードするネットワーククライアントで実行されるようにする。
【0016】
[暗号化処理部]
以下、図1を用いて本実施形態に適用される暗号化処理部(機能)を説明する。
【0017】
図1に示すように、本実施形態における暗号化処理部は、コードストリームcを入力し、入力されたコードストリームからコードストリーム鍵ck、及びコードストリームcが暗号化された暗号化コードストリームc’が生成され、生成されたコードストリーム鍵ck、及び暗号化コードストリームc’が出力される。
【0018】
本実施形態における暗号化処理部は、暗号化タイルパート指定部11、鍵行列生成部12、暗号化部13から構成される。
【0019】
なお、ここで説明する暗号化処理はソフトウェア処理により実現されても良い。その場合には、上記各部は上記処理に必要な機能を概念的なものとして捉えたものと考慮されるべきものである。
【0020】
まずはじめに、暗号化タイルパート指定部11の処理の詳細を説明する。暗号化タイルパート指定部11には、コードストリームcが入力され、入力されたコードストリームから、タイルパートを抽出され、抽出されたタイルパートのうち暗号化対象とするタイルパートを指定するための暗号化タイルパート情報taを出力する。
【0021】
そこで先ず、本実施形態におけるコードストリーム、及びタイルパートについて説明する。コードストリームとは、画像データを圧縮符号化した際の符号列である。本実施形態においては、ISO/IEC JTC1/SC29/WG1 10918−1において標準化されている、通称JPEG2000と呼ばれる圧縮符号化方式によって符号化された符号列のことをコードストリームと呼ぶ。
【0022】
JPEG2000の圧縮符号化時において、画像は先ず複数の矩形領域に分割され、矩形領域毎にウェーブレット変換により独立に符号化処理が施される。この矩形領域を「タイル」と呼ぶ。更に、符号化されたタイルに対応するコードストリームは、少なくとも一つ以上のタイルパートと呼ばれる領域に分割できる。
【0023】
より詳しく説明すると、1つのタイルに対し1回目のウェーブレット変換により得られる成分係数は公知の通り、LL1、LH1、HL1、HH1の各周波数成分領域を生成する。このうち、{LH1+HL1+HH1}を1つのパートとして扱う。2回めのウェーブレット変換はLL1に対して行うが、このとき生成されるLL2、LH2、HL2、HH2のうち{LH2+HL2+HH2}も1つのパートとして扱う。
【0024】
また、更に、LL2に対して更なるウェーブレット変換(3回めのウェーブレット変換)を行う場合には、その結果生じる{LH3+HL3+HH3}がパートとして扱われ、残りのLL3が単独のパートとして扱われる。この後、量子化、エントロピー符号化が施され符号化される。上記のタイルパートとは、上記のウェーブレット変換を行う毎に生成された周波数成分の集合の符号化結果を示している。以上が1つのタイルの符号が複数のタイルパートの符号で構成される理由である。
【0025】
なお、JPEG2000では、全タイルに対して固定回数のウェーブレット変換を行ういう決まりはない。換言すれば、タイル毎に、ウェーブレット変換の回数は異なっていてもよいことになっている。
【0026】
以下の実施形態におけるタイルパートとは、上記のような意味を前提にして説明するが、これ以外については後述することとする。
【0027】
タイル、及びタイルパートの具体例を図2を用いて説明する。図2(a)は、ある画像をタイルに分割した際の例である。図2(a)において、21は画像全体を8×8=64個のタイルに分割した例を示している。また、図2(b)は、ある1つのタイルを符号化した際のコードストリームの例を示している。図2(b)に示す例では、1つのタイルは22、23、24、25の4つのタイルパートで構成されていることを示している。
【0028】
ここで、タイルパートについて説明する。JPEG2000において、タイルは複数のタイルパートとよばれるいくつかに分割することが可能である。タイルパートは、全てのタイルの中でのタイルパートの順序が保たれさえすれば、異なったタイルからのタイルパートを挟み込むことが可能である。例えば、
タイルインデックス0のタイルパートインデックス0
タイルインデックス1のタイルパートインデックス0
タイルインデックス0のタイルパートインデックス1
タイルインデックス1のタイルパートインデックス1
:
のようにコードストリームを構成することにより、複数のタイルに属するタイルパートを平行に再生することができる。
【0029】
更に、夫々のタイルパートは、ヘッダ部分とデータ部分から構成されている。ここでヘッダ部分とは、データ部分の伸張復号のために必要な種々の情報を格納するための領域であり、タイルパートヘッダと呼ぶ。図2(b)では、タイルパート22が、ヘッダ部分26、データ部分27で構成されていることを示しているが、他のタイルパートも同様である。
【0030】
また、JPEG2000においては、コードストリームcはコードストリームcの復号量に応じて様々な再生方法を実現できるように、所望の再生方法に応じてデータを並べることができる。このようなデータの並べ方をプログレッションオーダと呼ぶ。例えば、復号量の少ない段階では低解像度の画像を再生し、復号量が多くなるにつれてより高解像度の画像を再生するようなプログレッションオーダや、復号量に応じて画質が向上するようなプログレッションオーダでコードストリームcを構成できる。
【0031】
本実施形態においては、コードストリームcは、予め、所望のアクセス制御の方法や度合いに応じたプログレッションオーダ、及びタイルパートで圧縮符号化されていることを前提とする。
【0032】
これに関して、例を用いて説明する。例えば、所定のタイルを3レベルの解像度に応じたアクセス制御をしたい場合を想定する(1つのタイルが3つのタイルパートで構成される場合に相当するものであり、ウェーブレット変換を2回行う場合と考えると分かりやすい)。この場合には、予め、解像度を優先させたプログレッションオーダとなるようにタイルを圧縮符号化し、更にタイルを3つのタイルパートに分割しておく。
【0033】
尚、本実施形態においては入力されるコードストリームcが、予め、所望のアクセス制御の方法や度合いに応じたプログレッションオーダ、及びタイルパートを用いて圧縮符号化されていることを前提としているが、本発明はこれに限定されることはない。即ち、コードストリームcが所望のアクセス制御の方法や度合いに応じたプログレッションオーダやタイルパートを用いて圧縮符号化が施されていない場合には、コードストリームcが入力された後に、所望のアクセス制御の方法や度合いに応じたプログレッションオーダやタイルパートを用いて圧縮符号化し直すようにすれば良い。
【0034】
次にタイルグループについて説明する。本実施形態においては、複数のタイルをグループ化して扱う。グループ化された1つのタイルのグループを「タイルグループ」と呼ぶ。本実施形態においては、グループ化の一例として隣接する2×2の4つのタイルを1つのタイルグループとして扱う。更に、2×2の4つのタイルグループを1つのタイルグループとする。こうして画像全体がひとつのタイルグループとなるまでグループ化を繰り返し行う。
【0035】
タイルグループ化の具体例を図3を用いて説明する。図3の31には、図2に示した例と同様に画像全体を64個のタイルに分割した例を示す。32には、31において隣接する4個のタイルをグループ化し、画像全体を16個のタイルグループで表現した例を示す。更に、33には、32において隣接する4個のタイルグループをグループ化し、画像全体を4個のタイルグループで表現した例を示す。更に、34には、33において隣接する4個のタイルグループをグループ化し、画像全体を1個のタイルグループで表現した例を示す。
【0036】
以上、説明したタイル、タイルパート、及びタイルグループの構成の具体例を図4Aを用いて説明する。
【0037】
図4Aには、画像全体が64個のタイルに分割された場合のタイルグループ、タイル及びタイルパートの構成の例を示す。図4Aに示すように、本実施形態におけるタイルグループ、及びタイルパートは画像全体をルートノードとするツリー構造で表現できる。各ノードがタイルグループ、及びタイルパートに対応する。
【0038】
図4Aにおいてルートノードは画像全体(図3における34)を示す。ルートノード(レベル0)は、レベル1に属する4つの子ノードに対応するタイルグループ(図3における33)から構成されている。ここで、レベルとはツリー構造における各階層構造の段階を示すインデックスである。ルートノードをレベル0であると定義する。更に、ツリー構造における親子の関係を親から子に向かって1回たどる毎に、レベルを1つずつ増やすようにする。
【0039】
すると、レベル1に属するノードは、夫々、レベル2に属する4つの子ノードに対応するタイルグループ(図3における32)から構成されると言い換えることができる。同様に、レベル2に属する4つの子ノードは、夫々、レベル3に属する4つの子ノードに対応するタイル(図3における31)から構成されることになる。そして、レベル4以降は、その直後のレベルに属するひとつの子ノードに対応するタイルパートからだけ構成されている。
【0040】
更に、レベル4以降は、ツリー構造において、大きなタイルパートインデックスが親ノードに対応し、タイルパートが小さくなる順に、ツリー構造を形成していることに注意する(タイルパートのインデックスが0のタイルパートは、最も低周波成分領域に対応する)。
【0041】
この様に、本実施形態におけるタイルグループ、及びタイルパートはツリー構造で表現できる。
【0042】
更に、タイル、タイルパート、及びタイルグループは夫々を特定することが可能なインデックスが割り当てられる。
【0043】
タイルには、“0”を起源として画像の左上に位置するタイルからラスタ順にタイルインデックスが割り当てられる。
【0044】
また、タイルパートには、夫々のタイルにおいて“0”を起源としてコードストリームをデコードする順にタイルパートインデックスが割り当てられる。実施形態では、JPEG2000を例にして説明しているので、タイルパートインデックス“0”は、最も低周波成分領域を指し示すものであり、以下、高周波成分になるにつれてタイルパートインデックスは大きくなる。
【0045】
更に、タイルグループは、夫々を構成する下位レベルのタイルグループ若しくはタイルにおいて“0”を起源として画像の左上に位置するタイル、タイルグループからラスタ順にインデックスが割り当てられる。割り当てられたインデックスは、その親のインデックスに連結されて、タイルグループインデックスとして割り当てられる。要するに、復号する際に、必須のもの程、タイルパートインデックスの数字が小さいように割り当てる。
【0046】
以降の説明においては、以上説明したようにタイルグループインデックスが割り当てられるようにするが、本発明はこれに限定されることなく、種々のタイルグループインデックスの割り当て方が可能である。例えば、各ノードの親のタイルグループインデックスに子ノードのグループインデックスを連結させて表現することも可能である。子ノードは、親のタイルグループ内においてラスタ順に0からインデックスが割り当てられるようにする。
【0047】
この割り当て方によれば、図4Aにおける「1−0」で示されるタイルグループは、タイルインデックスで表現すると「0−0」と表現できる。同様に、「2−1」は、「0−0−1」と表現できる。
【0048】
図4Bは、図4Aと等価のツリー構造を、タイルインデックス&タイルパートインデックスで示したものである。なお、図示において、例えば「0−0−0−0(3)」における「0−0−0−3」はタイルインデックスであることは上記の通りであるが、末尾の「(3)」はタイルパートインデックスである。タイルパートインデックスが小さいほど優先的に復号する、すなわち、低周波成分の符号化データであることを示している。
【0049】
以上、本実施形態におけるコードストリーム、タイルグループ/タイル/タイルパートの構造、及びタイルグループインデックス/タイルインデックス/タイルパートインデックスについて説明した。
【0050】
本実施形態における暗号化タイルパート指定部11では、入力されたコードストリームc中のメインヘッダ部分、及びタイルパートヘッダ部分に属する情報を読み出し、タイル、タイルパート、及びタイルグループの構成を解析する。そして、暗号化の対象とするタイルグループ、タイル、及びタイルパートを指定し、暗号化タイルパート情報taとして出力する。
【0051】
暗号化の対象とするタイルグループ、タイル、及びタイルパートは、ユーザによって明示的に指定されても良いし、RAMやHDなどに予め記憶されている情報を用いるようにしても良い。
【0052】
ユーザによって指定されるようにする場合、コードストリームcを解析した結果を、例えば図4Bに示すようなツリー構造として、モニタなどを用いてユーザに示すようにする。そして、ユーザは所望のタイルグループ、或いはタイルパートに対応するノードを指定する。或るタイルグループ或いはタイルパートが指定されると、その指定された位置から図示の破線で示される位置に向かう方向に存在するタイルグループ或いはタイルパートも暗号化する対象として決定される。
【0053】
例えば、図4Bにおいて、「0−0−0−0(2)」が指定された場合、「0−0−0−0(2)」とその上位にある「0−0−0−0(3)」が暗号化対象として決定される。ただし、タイル「0−0−0−1(1)」乃至「0−0−0−3(0)」は暗号化対象とはならず、解読キーがなくても復号し再現できることを意味する
また、タイルグループ「0−0」が指定された場合には、破線に向かう方向、すなわち、その下位のタイルグループ「0−0−0」、「0−0−1」、「0−0−2」、「0−0−3」が暗号化対象として決定される。ここで、タイルグループ「0−0−0」について着目すると、そのタイルグループにはタイル「0−0−0−0」乃至「0−0−0−3」が含まれるので、それらも暗号化対象として決定され、結果的に、それぞれのタイルの全タイルパートも暗号化対象として決定されることになる。すなわち、1つのタイルグループを指定した場合、そのタイルグループに含まれる下位のタイルグループ、最終的には下位に位置する各タイルの全タイルパートが暗号化対象して決定されることになる。
【0054】
このことは、例えば解像度に応じてアクセス制御をする場合、高解像度に対するアクセス権を有するユーザは、自動的に、低解像度に対するアクセス権を有することを意味する。また、タイルグループを指定した場合には、そのタイルグループに属するタイル、更にタイルパートは全て暗号化対象とすることを意味する。
【0055】
以上、説明した様に暗号化対象となるタイル、或いはタイルパートが決定される。暗号化対象として指定されたタイルパートは暗号化対象タイルパート情報taとして出力される。ここで、taはタイルインデックスと、そのタイルに属するタイルパートのうち暗号化されるタイルパートのインデックスの最小値との組で構成される。
【0056】
図5に画像全体が64個のタイルから構成されるコードストリームに対するtaの一例を示す。図5に示すように、例えばタイルインデックス0のタイルは暗号化されるタイルパートの最小値が0となっており、これはこのタイルに属するタイルパートを全て暗号化することを意味する。一方、タイルインデックス1のタイルは暗号化されるタイルパートの最小値が2となっており、これはこのタイルに属するタイルパートのうちタイルパートインデックスが0、及び1のタイルパートは暗号化されず、タイルパートインデックスが2以上のタイルパートに対して暗号化することを意味する。
【0057】
なお、ユーザが暗号化対象を決定する場合(taを決定する場合)には、特定の暗号化させる1つのタイル、或いは、タイルパートを指定しても良いが、暗号鍵無しで再現できる最高解像度(或いは暗号化鍵で再現する最低解像度)の限界を指定することが望ましい。そこで、図4Bのような画面を表示させたとき、縦一列のタイルグループ或いはタイルパートを一度に設定できるようにするため、縦線を表示し、その表示位置をポインティングデバイスで水平に移動させることで、暗号化する対象を決定するようにすることが望ましいであろう。ただし、ここでは、個々にユーザが指定する場合を説明することとする。
【0058】
以上、説明したように、暗号化タイルパート指定部11から、暗号化対象タイルパート情報taが出力され、暗号化部13に入力される。
【0059】
次に、鍵行列生成部12の処理の詳細を説明する。鍵行列生成部12には、コードストリームcが入力され、入力されたコードストリームcから、鍵行列kaが生成され、生成された鍵行列ka及びコードストリーム鍵ckが出力される。
【0060】
ここで、鍵行列生成部12で実行される鍵行列生成処理について図6を用いて、詳細に説明をする。図6は鍵行列生成部12で実行される鍵行列生成処理を示すフローチャートである。
【0061】
まず、ステップS61でコードストリーム鍵ckが生成される。コードストリーム鍵ckは、コードストリームcのハッシュ値として次式(式(1))の様に算出される。
ck=K(0)=H(c) (式1)
ここで、H()は、一方向性(不可逆)、及び衝突耐性を有する関数であり、例えば、ハッシュ関数や、DESなどの暗号化処理などが適用可能である。コードストリーム鍵ckとは、図4に示したツリー構造におけるルートノードに対応する値であり、入力した1画像分のデータに基づいて生成する。
【0062】
次いで、ステップS62において、パラメータiを初期値“1”、そしてパラメータjを“0”に初期化する。パラメータiは前述したツリー構造におけるレベルを示すインデックスであり、パラメータjは前述した各レベルにおけるノードを表すインデックスである。特に、iとjの組み合わせ(i,j)をタイルグループインデックスと呼ぶ。
【0063】
次のステップS63では、タイルグループインデックス(i,j)のタイルグループ鍵が生成される。タイルグループ鍵は、その親のタイルグループ鍵、及びタイルグループインデックス(i,j)のハッシュ値として式(2)の様に算出される。
K(i,j)= H(K(i−1,k), i,j) (式2)
ここで、kはタイルグループ(i,j)の親ノードに対応するノードを表すインデックスである。即ち、親ノードに対応するタイルグループ鍵K(i−1,k)と、生成するタイルグループ鍵に対応するノードのタイルグループインデックス(i,j)とからタイルグループ鍵が生成される。しかしながら、本発明はこれに限定されることなく、親ノードに対応する鍵と、生成するタイルグループ鍵に対応するノードに含まれるタイルインデックスとからタイルグループ鍵を生成するようにしてもよい。例えば、生成するタイルグループに対応するノードから順に木(ツリー)をたどり、タイルに対応するノードを調べ、当該タイルのタイルインデックを用いるようにすれば良い。要するに、上位ノード(ルートノード側にあるノード)に対する鍵ckと、その下位(下層)方向にあるノードのインデックスに基づいて、下位にあるノードの鍵を派生することを順に繰り返すことになる。
【0064】
ステップS64では、レベルiにおいて全てのノードに対応するタイルグループ鍵が生成されたか否かが判定される。判定結果が真の場合はステップS66に進み、判定結果が偽の場合はステップS65に進む。
【0065】
ステップS65では、パラメータjが1だけ増やされ、その後ステップS63が再度処理される。つまり、パラメータiで示されるレベルに属する全タイルグループについて鍵が生成されることになる。
【0066】
一方、パラメータiで示されるレベルに対するタイルグループ鍵が生成されると、処理はステップS66に進み、変数jを初期化し、全てのレベルが処理されたか否かが判定される。判定結果が真の場合はステップS68に進み、判定結果が偽の場合はステップS67に進んで、次のレベルの処理を行うべく、パラメータiを1だけ増加させ、ステップS63以降の処理を繰り返す。
【0067】
さて、処理がステップS68に進むとき、末端のノード、すなわち、タイルグループではなく、個々のタイルに対する鍵の生成が行われると、処理はステップS68に進む。
【0068】
ステップS68では、パラメータmを“0”、パラメータnを“N−1”で初期化する。ここで、パラメータNとは、タイルmを構成するタイルパートの総数である。
【0069】
ステップS69では、タイルインデックスm、タイルパートインデックスnに相当するタイルパート鍵が生成される。タイルパート鍵は、その親のタイルパート鍵のハッシュ値として式(3)の様に算出される。
K(m,n+1)=H(K(m, n)) (式3)
生成されたタイルパート鍵は鍵行列kaとして記録される。ここで、鍵行列kaの例を図7を用いて説明する。図7には本実施形態に適用可能な鍵行列kaの一例を示す。従って、或るタイルパートの最も大きなインデックスを持つタイルパートの鍵は、そのタイルパートが属するタイルに対して生成された鍵(ステップS63で生成された鍵)を元に生成し、以下、タイルパートのインデックスが小さくものは、それより1つ大きなインデックスのタイルパートに与えられたキーを用いて派生することになる。
【0070】
図7は、画像全体が64個のタイルから構成され、タイルパートの数の最大が5である場合の鍵行列kaの例を示している。図7に示すように、鍵行列kaの各行はタイルに相当し、各列はタイルパートに相当する。行列の要素値としては、ステップS68で算出したタイルパートの鍵を記録する。タイルパートが存在しない要素にはNULLなど記録するようにする。
【0071】
ステップS69に続いてステップS70が処理される。このステップS70では、タイルパートインデックスnに属する全てのノードに対応するタイルパート鍵が生成されたか否かが判定される。判定結果が真の場合はステップS72に進み、判定結果が偽の場合はステップS71に進んでパラメータnを“1”だけ減じ、ステップS69の処理を行うことになる。
【0072】
こうして、タイルインデックスmで示される全タイルパートに対する処理が終わると、ステップS72に進み、変数nを初期化し、全てのタイルが処理されたか否かが判定される。判定結果が真の場合は、鍵行列生成処理を終了し、判定結果が偽の場合はステップS73に進み、次のタイルに対する処理を行うべくパラメータmを“1”け増加させ、ステップS69以降の処理を繰り返すことになる。
【0073】
以上、説明したように、鍵行列生成処理により鍵行列kaが生成される。生成された鍵行列kaは暗号化部13に入力される。
【0074】
次に、暗号化部13の処理の詳細を説明する。暗号化部13は、コードストリームc、暗号化対象タイルパート情報ta、及び鍵行列kaを入力し、暗号化タイルパート情報taに示されたコードストリームcのタイルパートを、鍵行列kaに記録されているタイルパート鍵を用いて暗号化し、暗号化されたコードストリームc’を出力する。具体的には次の通りである。
【0075】
暗号化部13は、先ず、暗号化タイルパート指定部11からの暗号化タイルパート情報taに基づき、実際に暗号化対象となるタイルパートであるかどうかを判断するための暗号化タイルパート行列を生成する。暗号化タイルパート行列の例は図8に示す通りである。図示の行列において、行はタイルを表し、列はタイルパートを表す。更に、要素の値としては、暗号化対象とならないタイルパートは0、暗号化対象となるタイルパートは1、存在しないタイルパートは2で示されている。「2」が格納される理由は、タイルをウェーブレット変換する際の変換回数がタイル毎に異なる、すなわち、各タイルのタイルパートの個数が異なっていても構わないことに対処するためである。因に、図8の場合には、ウェーブレット変換の最大回数は5回であることを示している(ウェーブレット変換回数+1がタイルパートの個数であることは既に説明した)。
【0076】
暗号化タイルパート情報taには、各タイル中で暗号化されるタイルパートインデックスの最小値が記録されており、更に本実施形態においては、夫々のタイル中で、暗号化タイルパート情報taに記録されたタイルパートインデックスよりも大きな値を持つタイルパートは暗号化されるために、図5に示す暗号化タイルパート情報からは、図8に示すように暗号化対象となるタイルパートが特定される。
【0077】
次に、暗号化対象タイルパート行列と鍵行列kaを比較し、暗号化対象タイルパート行列の要素値が1であるタイルパートに対して、鍵行列ka中の同じ座標に位置する鍵を用いて、コードストリームc中のタイルパートを暗号化する(暗号化対象タイルパート行列の要素値が0のタイルパートについては暗号化しない)。こうして、暗号化対象となっているタイルパート全てに対して暗号化を施し、コードストリームc中の該当するタイルパートのデータは、暗号化されたタイルパートのデータで置換えられ、出力される。
【0078】
また、暗号化したタイルパートは、該タイルパートが暗号化されていることを示すための情報Infをタイルパートヘッダに記録しておく。これは、後述する暗号復号処理の際に、タイルパートが暗号化されているか否かを判定するために用いる。
【0079】
更に、JPEG2000においては、タイルパートを構成するコードストリームcは、パケットと呼ばれる単位から構成されている。そして、パケットはヘッダ部分とデータ部分から構成されている。本実施形態においては、ヘッダ部分は暗号化せずに、データ部分だけを暗号化するようにする。このように暗号化することによって、例え暗号化したとしても、画像として正しく伸張復号することが可能である。
【0080】
暗号化の方法としては、本実施形態においては特に限定せず、DES(Data Encryption Standard)や、AES(Advanced Encryption Standard)など種々の暗号アルゴリズムを適用可能である。
【0081】
以上の様に、暗号化タイルパート行列に示された全てのタイルパートが暗号化されたコードストリームは、暗号化コードストリームc’として出力される。以上、図14における暗号化処理部141について説明した。
【0082】
上記本実施形態における暗号化処理部141は、一般に、パーソナルコンピュータ等の情報処理装置で実現できることは容易に類推できよう。また、パーソナルコンピュータ等の情報処理装置で、上記機能を実現すれば良いわけであるから、実施形態での特徴は情報処理方法、更には、コンピュータプログラムや、コンピュータプログラムを格納するCDROM等のコンピュータ可読記憶媒体にまで及ぶものである。
【0083】
[アクセス鍵生成処理部]
次に、図9を用いて本実施形態に適用されるアクセス鍵生成部(機能)を説明する。
【0084】
図9に示すように、アクセス鍵生成部は、コードストリーム鍵ck、及びアクセスを許可するインデックスanが入力され、入力されたコードストリーム鍵ckからアクセスを許可するインデックスanに対応するアクセス鍵ak(暗号化を解除する鍵)が生成され、生成されたアクセス鍵akが出力される。ここで、アクセスを許可するインデックスanとは、アクセスを許可するタイルグループインデックス、或いはタイルとタイルパートインデックスである。
【0085】
図4に示したように、本実施形態においては、タイルグループ、及びタイルパートはツリー構造で表現できる。図4に示したツリー構造を構成するノードのうち、ひとつのノードを、アクセスを許可するインデックスanで指定し、指定されたノードに対応するアクセス鍵を生成する。
【0086】
指定されたノードのアクセス鍵を生成する方式としては、入力されたコードストリーム鍵ckをルートノードに対応させ、図6に示したような方法で順に各ノードに対応する鍵を生成し、これをノードのインデックスがアクセスを許可するインデックスanになるまで繰り返すようにすれば良い。
【0087】
生成されたアクセス鍵は、図10に示すようなフォーマットに従ってakとして出力される。図10に示すように、akは、アクセス鍵、アクセス鍵が対応するタイルグループ或いはタイルパートのインデックス、及びタイルパートインデックスかタイルグループインデックスかを示す情報から構成される。図10に示すようなフォーマットに格納された後、akは後述する暗号復号処理部に渡される(実際は、暗号復号処理部からの要求に応じて提供する)。出力されたアクセス鍵は安全に暗号復号処理部に送信するために、暗号化されてakに記録するようにしても良い。
【0088】
アクセス鍵生成部におけるアクセス鍵生成処理について、例を用いて説明する。
【0089】
例えば、アクセスを許可するインデックスanとして、タイルグループインデックス「0−0−0」(図4B参照)を指定したとする。すると、入力されたコードストリーム鍵ck(ルートノードに対応する)から、タイルグループインデックス「0−0」に対応するタイルグループ鍵をハッシュ関数を用いて生成する。更に、生成されたタイルグループ「0−0」のタイルグループ鍵から、タイルグループ0−0−0のタイルグループ鍵を生成し、それをタイルグループ鍵0−0−0のアクセス鍵ak(図10)として出力する。
【0090】
[暗号復号処理部]
先ず、実施形態における暗号復号処理部143と、アクセス鍵生成処理部142との大まかな動作を説明し、その後で、具体的な暗号復号処理部143の処理内容を説明することとする。暗号復号処理部143はインターネットに接続し得る一般のユーザが所有しているPC、アクセス鍵生成処理部142は暗号化を解除するための認証サーバとして考えると分かりやすいので、それを前提にして説明する。
【0091】
暗号化されたコードストリームc’を受信した暗号復号処理部(クライアントPC)143は、非暗号化のタイルパートの符号データに基づいて画像を再現する。従って、再現できる画像の解像度は自ずと限られていることになる。このとき、その暗号復号処理部のユーザが、より高い解像度を再現できるよう望む場合、暗号化されているタイルパートから上位に遡って、要求するレベルのノードをユーザからの指示に従い決定する。このノードのレベル(タイルグループインデックスかタイルパートインデックス)をアクセス鍵生成処理部142(認証サーバ)にインデックスanとして要求する。この結果、アクセス鍵生成処理部142からは、要求したノードに対するアクセス鍵akが送られてくるので、受信したアクセス鍵akに基づき、その下位に向かう暗号を解除するための鍵群を生成する。そして、その鍵を用いて符号データの暗号化を解除し、復号を行なう。
【0092】
なお、アクセス鍵生成処理部142としては、アクセス鍵akを取得したい旨の要求をクライアント(復号処理部に対応する)から受信した場合、認証処理や課金等の処理を経て、そのアクセス鍵を提供することになるであろう。従って、このアクセス鍵生成処理部142をインターネットに認証サーバとして設置する場合、複数の暗号化処理部、複数の復号処理部を想定して設置する必要があり、必然、多数の画像を特定する情報と共に、それら個々の画像に対するコードストリーム鍵を登録できるようにしておく。そして、復号処理部143は、画像を特定する情報と暗号を解除するためのノードインデックスを通知することで、目的とする画像の目的とするノードレベルのアクセス鍵akを得るようになる。アクセス鍵生成処理部142(認証サーバ)としては、1つの画像について、その画像を特定する情報(IDやファイル名等)と、その画像のルートノードに対する1つのコードストリームだけ記憶していれば良いので、記憶管理する情報量も少なくできよう。
【0093】
上記を踏まえ、以下、図11を用いて本実施形態に適用される暗号復号処理部(機能)を説明する。
【0094】
図11に示すように、本実施形態における暗号復号処理部は、鍵行列生成部111、暗号復号部112、及び暗号化タイルパート判定部113から構成される。
【0095】
まずはじめに、鍵行列生成部111の処理の詳細を説明する。鍵行列生成部111には、アクセス鍵生成処理部142に要求したタイルグループインデックス、或いはタイルパートインデックスに対するアクセス鍵akが入力される。そして、入力されたアクセス鍵akから、鍵行列ka’(各ノード(タイル及びタイルパート)に対応する解読キー)を生成し、その生成された鍵行列ka’を出力する。
【0096】
ここで、鍵行列生成部111で実行される鍵行列生成処理について図12を用いて、詳細に説明をする。図12は鍵行列生成部111で実行される鍵行列生成処理を示すフローチャートである。
【0097】
まず、ステップS121で入力されたアクセス鍵akがタイルグループに対応するものか、或いはタイルパートに対応するものかが判定される。この判定のためには、図10に示した「タイルパートインデックスかタイルグループインデックスかを示す情報」を利用する。判定結果がタイルグループインデックスの場合にはステップS122に進み、判定結果がタイルパートインデックスの場合にはステップS128に進む。
【0098】
ステップS122(タイルグループインデックスの場合)では、パラメータi、及びパラメータjを、図10に示したアクセス鍵フォーマット中の「アクセス鍵値に対応するインデックス」に初期化する。パラメータiは前述したツリー構造におけるレベルを示すインデックスであり、パラメータjは前述した各レベルにおけるノードを表すインデックスである。即ち、iとjの組み合わせ(i,j)はタイルグループインデックスである。
【0099】
一方、タイルパートインデックスであると判断し、ステップS128に進んだ場合には、パラメータm、及びパラメータnを、図10に示したアクセス鍵フォーマット中の「アクセス鍵値に対応するインデックス」に初期化にする。ここで、パラメータmはタイルインデックス、パラメータnはタイルグループインデックスを示す。
【0100】
その他の処理は、図6における鍵生成処理と同様の処理であるので詳細な説明は省略する。
【0101】
以上、説明したように、鍵行列生成処理により鍵行列ka’が生成される。生成された鍵行列ka’は暗号復号部112に入力される。
【0102】
次に、暗号化タイルパート判定部113の処理の詳細を説明する。暗号化タイルパート判定部113には、暗号化されたコードストリームc’が入力され、入力されたコードストリームc’からタイルパートが抽出され、抽出されたタイルパートが暗号化されているか否かが判定され、暗号化タイルパート情報ta’が出力される。
【0103】
本実施形態における暗号化部分判定部113では、入力されたコードストリームc’中のタイルパートヘッダ部分を解析し、タイルパート部分に「タイルパートが暗号化されていることを示す情報」Infが記録されているか否かを調べる。判定された情報は、暗号化タイルパート情報ta’として出力される。暗号化タイルパート情報ta’の一例を図13に示す。
【0104】
図13は、画像全体が64個のタイルから構成され、タイルパートの数の最大が5である場合の暗号化タイルパート情報ta’の例を示す。図13に示すように、暗号化タイルパート情報ta’の各行はタイルに相当し、各列はタイルパートに相当する。行列の要素値としては、暗号化されていない場合には0を、暗号化されている場合には1を、存在しないタイルパートには2を記録する。
【0105】
次に、暗号復号部112の処理の詳細を説明する。暗号復号部112には、暗号化されたコードストリームc’、鍵行列ka’、及び暗号化タイルパート情報ta’が入力され、暗号化タイルパート情報ta’に示されたコードストリームc’のタイルパートが、鍵行列ka’に記録されているタイルパート鍵を用いて復号され、復号されたコードストリームc’が出力される。
【0106】
暗号化処理部13では、暗号化タイルパート行列ta’と鍵行列ka’を比較し、暗号化タイルパート行列ta’の要素値が1であるタイルパートに対して、鍵行列ka’中の同じ座標に位置する鍵を用いて、コードストリームc中のタイルパートを暗号復号処理する。そして、コードストリームc’のタイルパートは、暗号復号処理されたタイルパートに置き換えられる。
【0107】
また、暗号復号処理したタイルパートは、タイルパートヘッダに記録されている、該タイルパートが暗号化されていることを示す為の情報Infを消去する。
【0108】
更に、ヘッダ部分は暗号復号処理せずにデータ部分だけを暗号復号処理するようにする。
【0109】
暗号復号処理の方法としては、暗号化処理部で実行した方法に対応する方法でなければならない。
【0110】
以上の様に、アクセス鍵に応じて、暗号化されたコードストリームc’が暗号復号され、暗号復号されたコードストリームは、暗号復号コードストリームc’’として出力される。
【0111】
従って、図14における復号処理部143が、アクセス鍵生成処理部142からアクセス鍵akを受信しないで、暗号化されたコードストリームc’を受信し復号処理したとしても、暗号化されていないタイルパートについては復号が成功するだけとなり、予め許容された解像度以下の画像の再現までが可能となる。換言すれば、復号処理部143のユーザが、より鮮明な画像を望む場合には、アクセス鍵akを取得し、再度復号化処理を行えば良いことになる。
【0112】
以上説明したように本第1の実施形態によれば、複数のタイル及び階層構造を有する画像データに対して、タイル及び階層構造毎に異なる暗号鍵を用いて暗号化した場合にも、複数の鍵を管理する必要がないようにすることが可能となる。更に、複数のタイル及び階層構造と、それらに対応する復号鍵を記録し、正しく復号処理を実行することか可能となる。
【0113】
なお、上記の実施形態でのタイルパートとは、ウェーブレット変換処理を行った際に生成される各周波数成分領域の集合単位とするものであったが、これに限定されるものではない。
【0114】
例えば、一般に画像の圧縮符号化では、ウェーブレット変換や直交変換等の周波数変換処理して得られたデータを量子化し、エントロピー符号化を施すが、量子化して得られた各係数値のビット単位のプレーン毎に符号化することを行う提案も既に幾つかなされており、これに適用させても良いからである。より具体的に説明するため、図15を用いて説明する。
【0115】
図15は、量子化した後の係数値のブロックを示している。図示では説明を単純化するため、4×4としているが勿論、これより大きくても構わないし、一般に、このサイズよりも大きなものとなる。座標(i,j)として表現したとき、図示は、(1,1)の係数値が「5」、(3,1)が「3」、(1、3)が「2」という値を持ち、それ以外は「0」となっている例を示している。この中で値が最も大きいものが「5」であり、バイナリー(2進)で表記すると「101」となる。つまり、図示の場合、全ての係数が3ビットで表現できるので、ビット2のプレーン、ビット1のプレーン、ビット0のプレーンの3つのプレーンがあれば十分に表現でき、ビットプレーン毎に符号化を行う。
【0116】
一方、データの重要度から見た場合、高位のビットほどその重要であるから、結局のところ、ビット2のプレーンがそのブロックの画質に支配的となり、以下、画質に与える影響の大きな順は、ビット1のプレーン、ビット0のプレーンとなる。これは、ちょうど、先に説明したウェーブレット変換を複数回行った際の、最も低周波成分の係数値(LL成分)が、ビット2のプレーンであり、最も高周波成分の係数の集合{LH1+HL1+HH1}がビット0のプレーンに対応するのと同様の意味を持つことに他ならない。
【0117】
一方、周波数変換し、量子化した後の値の最大値によって、符号化する対象のプレーンの数が決定されるわけであるから、そのプレーンの数は個々のタイルによって異なる。仮に、固定の量子化ステップで量子化し、その時に取り得る値が0乃至63であるとしたとき、最大で6つのプレーン(ビット0〜5のプレーン)が発生し得ることになる。図15は、このような状況において、たまたま全ての係数が3ビット(ビット0乃至2)以内で表現でき、ビット3乃至5のプレーンは生成する必要はない。すなわち、使用していないビットプレーンについては、そのデータが存在しなくても良いから、先に説明した図8に示した暗号化タイルパート行列内に「2」が格納される。
【0118】
従って、タイルパートは、上記のように、符号化する際に用いたビットプレーンの数を割り当て、最も上位のビットプレーンに対して小さなタイルパートのインデックスを割り当てることでも、全く同様の効果が期待できる。或いは、符号化する際に用いたビットプレーンのいくつかのまとまりをレイヤとし、最も上位のレイヤに対して小さなタイルパートのインデックスを割り当てるようにしてもよい。
【0119】
また、画像を符号化する際、原画像中のM×N画素で表現される部分画像(プレシンクト)を更に幾つかに分割し、個々の分割領域をタイルパートとして定義しても構わない。
【0120】
さらに、複数の成分(輝度成分や、色成分など)から構成される画像を符号化する際、所定の成分(例えば、輝度値)をタイルパートとして定義しても構わない。
【0121】
以上を簡単にまとめると、実施形態における暗号化対象の指定とその暗号化処理は2通り存在することになる。
【0122】
1つ目は、或るタイルグループを暗号化対象として指定したとき、そのタイルグループに属する下位のレベルのタイルグループ、最終的には指定されたタイルグループに属する全タイルが暗号化対象として設定される。そして、ルート(レベル0)のタイルグループに対して生成された暗号化キーから派生して生成されたキーを用いて、暗号化対象のタイルデータが暗号化される。
【0123】
この結果、暗号化キーとしては1つで済み、尚且つ、所望とするタイルグループに属するタイルについて暗号化させることができる。
【0124】
2つ目は、或るタイルパートに対して暗号化対象として指定したとき、その指定されたタイルパートのインデックス以上のインデックスを有するタイルパートを暗号化させることができることである。換言すれば、暗号化対象として指定したタイルパートより小さいインデックスを有するタイルパートについては非暗号化となるので、解像度の低い画像については無条件に再現できるものの、それを越える解像度について、解読キーを有しない限り不可にできる。
【0125】
[第2の実施形態]
第1の実施形態においては、図1において鍵行列指定部12と暗号化部13を分離させ、鍵行列指定部12の出力である鍵行列kaを暗号化部13に入力するようにしていた。また、図11における鍵行列ka’も同様である。鍵行列ka、及び鍵行列ka’の大きさは画像を構成するタイル数とタイルパートの最大値によって決定する。よって、多くのタイルを有する画像であったり、タイルパートの最大値が場合には、鍵行列ka、及び鍵行列ka’の大きさが大きくなってしまうことがある。
【0126】
しかしながら本発明は、これに限定されることなく、鍵行列生成部12、及び鍵行列生成部111は必ずしも鍵行列ka、及び鍵行列a’を全画像分まとめて出力する必要はない。ひとつの鍵が生成される度に、生成された鍵を暗号化部13、或いは暗号復号部112に出力するようにするようにすることも可能である。このようにすることによって、鍵のために必要とされるメモリ量を小さくすることが可能となる。
【0127】
以上説明したように本実施形態によれば、複数のタイル及び階層構造を有する画像データに対して、タイル及び階層構造毎に異なる暗号鍵を用いて暗号化した場合にも、複数の鍵を管理する必要がないようにすることが可能となる。更に、複数のタイル及び階層構造と、それらに対応する復号鍵を記録し、正しく復号処理を実行することか可能となる。
【0128】
[第3の実施形態]
第1の実施形態においては、タイルグループ鍵、及びタイル鍵の生成のために(式2)を用い、タイルパート鍵の生成のために(式3)を用いるようにした。
【0129】
しかしながら、本発明はこれに限定されることはなく、鍵生成のために種々の処理を行うことが可能である。例えば、図6におけるS63において、タイル鍵を、その親のタイル鍵のハッシュ値として(式2’)の様に算出しても良い。
K(j+1)=H(K(j)) (式2’)
ここで、jはタイルインデックスである。また、図6におけるS69において、タイルパート鍵を、タイル鍵とタイルパートインデックスのハッシュ値として(式3’)の様に算出しても良い。
K(m、n)=H(K(m)、n) (式3’)
ここで、mはタイルインデックス、nはタイルパートインデックスである。
【0130】
このように生成された鍵のツリー構造を図16に示す。図16は、4つのタイルと、夫々のタイルが3つのタイルパートから構成されるコードストリームcに対応する鍵を、前記(式2’)及び(式3’)を用いて生成した際の鍵のツリー構造を示す図である。
【0131】
以上のような処理とすることにより、各々タイルに対する鍵は親のノードに対応するタイル鍵からハッシュ関数だけによって生成することができる。例えば、タイルインデックス2とタイルインデックス3に対応するタイルへのアクセスを許可するような場合に、第1の実施形態においては、アクセス鍵生成処理部において、タイルインデックス2とタイルインデックス3に対応する2つのタイル鍵を生成し、暗号復号部に送信しなければならなかった。一方で、本実施形態においては、アクセス鍵生成処理部においてタイルインデックス2に対応する1つのタイル鍵だけを生成し、暗号復号部に送信するようにすればよく、効率的である。
【0132】
また、各々のタイルパートに対する鍵は親のノードに対応するタイル鍵と、当該タイルパートのタイルパートインデックスとから、ハッシュ関数を用いて算出できる。例えば、第1の実施形態では、タイルパート1に対応するタイルパートだけへのアクセスを許可することは困難であった。これは、タイルパート1へアクセスを許可することは、同時にその子ノードに対応するタイルパート0への許可をアクセスすることになったからである。一方で、本実施形態においては、タイルパート1に対応するタイルパート鍵は、その親ノードに対応するタイル鍵と、当該タイルパートインデックス1から生成できるため、より柔軟なアクセス制御を実現可能である。
【0133】
更に、図6のおけるS63において、タイル鍵を(式2’)のように生成し、S69において、タイルパート鍵を(式3)のように生成したり、或いは、S63において、タイル鍵を(式2)のように生成し、S69において、タイルパート鍵を(式3’)のように生成するようにすることも可能であることは明らかである。
【0134】
[第4の実施形態]
第3の実施形態においては、タイルパート鍵が、親ノードに対応するタイル鍵と、当該タイルパートに対応するタイルパートインデックスとから生成される例を説明した。更に、本実施の形態においては、タイルパート鍵がグループ化されて生成される例を説明する。
【0135】
本実施形態におけるタイルパート鍵生成処理を図17を用いて説明する。図17は本実施形態におけるタイルパート鍵生成処理を説明するフローチャートである。図6に示したフローチャートにおけるS68からS74までの処理を、図17に示す処理に置き換えるようにすればよい。
【0136】
まず、ステップS171において、パラメータi及びjが“0”に初期化される。パラメータiはツリー構造におけるレベルを示すインデックスであり、パラメータjは各レベルにおけるノードを表すインデックスである。特に、iとjのくみあわせ(i、j)をタイルパートグループインデックスと呼ぶ。
【0137】
次のステップS172では、タイルパートグループインデックス(i,j)のタイルパートグループ鍵が生成される。タイルパートグループ鍵は、その親のタイルパートグループ鍵、及びタイルパートグループインデックス(i,j)のハッシュ値として式(4)のように算出される。
K(i,j)=H(K(i−1、k),i,j) (式4)
ここで、kはタイルパートグループ(i,j)の親ノードに対応するノードを表すインデックスである。即ち、親ノードに対応するタイルパートグループ鍵K(i−1,k)と、生成するタイルパートグループ鍵に対応するノードのタイルパートグループインデックス(i,j)とからタイルパートグループ鍵が生成される。しかしながら、本発明はこれに限定されることなく、親ノードに対応する鍵と、生成するタイルパートグループ鍵に対応するノードに含まれるタイルパートインデックスとからタイルパートグループ鍵を生成するようにしてもよい。
【0138】
例えば、生成するタイルパートグループに対応するノードから順に木をたどり、タイルパートに対応するノードを調べ、当該タイルパートのタイルパートインデックを用いるようにすれば良い。要するに、上位ノード(ルートノード側にあるノード)に対する鍵ckと、その下位(下層)方向にあるノードのインデックスに基づいて、下位にあるノードの鍵を派生することを順に繰り返すことになる。
【0139】
ここで、(式4)を用いて生成されたタイルパートグループ鍵のうち、最も子ノードに位置するレベルの鍵はタイルパート鍵である。タイルパート鍵の場合には、生成した鍵を鍵行列kaに記録される。
【0140】
ステップS173では、レベルiにおいて全てのノードに対応するタイルパートグループ鍵が生成されたか否かが判定される。判定結果が真の場合はステップS175に進み、判定結果が偽の場合はステップS174に進む。
【0141】
ステップS174では、パラメータjが1だけ増やされ、その後ステップS172が再度処理される。つまり、パラメータiで示されるレベルに属する全タイルパートグループについて鍵が生成されることになる。
【0142】
一方、パラメータiで示されるレベルに対するタイルパートグループ鍵が生成されると、処理はステップS175に進み、全てのレベルが処理されたか否かが判定される。判定結果が真の場合は処理を終了する。判定結果が偽の場合はステップS176に進んで、次のレベルの処理を行うべく、パラメータiを1だけ増加させ、ステップS172以降の処理を繰り返す。
【0143】
以上のように、タイルパートをグループ化して鍵行列を生成することによって、複数のタイルパートに対するアクセス制御をする際にはタイルパートグループ鍵をアクセス鍵生成処理部で生成するようにすればよく、効率的にアクセス制御することが可能となる。
【0144】
また以上説明した実施形態における、暗号化処理部141、アクセス鍵生成処理部142、更には、復号処理部143は、それぞれパーソナルコンピュータ等の情報処理装置でもって実現できるし、その機能を実現する手順としての方法の発明として捉えることができる。また、コンピュータにより実現できるわけであるから、本発明はそれぞれの装置で実行されるコンピュータプログラム、更には、そのコンピュータプログラムを格納し、コンピュータが読み込めるCDROM等のコンピュータ可読記憶媒体にも適用できるのは明らかであろう。
【0145】
従って、上記実施形態に係る実施態様を列挙すると、次の通りである。すなわち、暗号化処理部141としての情報処理方法及び装置、並びにコンピュータプログラム及びコンピュータ可読記憶媒体は、次のようになる。
【0146】
[実施態様1] タイル単位に圧縮符号化された画像データを入力し、暗号化する情報処理方法であって、
隣接する複数のタイルで1つのタイルグループを構成し、更に、隣接するタイルグループで1つの更なるタイルグループを構成することを繰り返すことで、タイルグループの階層構造を定義し、
符号化データで表現される画像全体から、最上位階層の暗号化鍵情報を生成し、
前記階層構造中の、上位に位置するタイルグループに対して生成された暗号化鍵情報に基づき、下位層に位置するタイルグループ或いはタイルに対する暗号化鍵情報を生成することを、末端に位置するタイルまで行ない、
前記タイルグループのツリー構造中の、所望とする階層の所望とするタイルグループを暗号化対象とする指定入力が与えられた場合、当該指定入力されたタイルグループに属する下位層の末端に位置するタイルに対して暗号化を行うよう設定し、
暗号化を行うよう設定された個々のタイルに対し、当該タイルに対して生成された暗号化キーを用いて暗号化処理を行ない、当該暗号化した符号化データ及び暗号化されていないタイルの符号化データを出力する
ことを特徴とする情報処理方法。
【0147】
[実施態様2] 前記暗号化鍵情報は、上位階層から下位階層に向かう一方向性を有する関数を用いて生成することを特徴とする実施態様1に記載の情報処理方法。
【0148】
[実施態様3] 前記関数は、下位階層にあるタイルグループもしくはタイルの座標位置情報をパラメータとして鍵情報を生成することを特徴とする実施態様2に記載の情報処理方法。
【0149】
[実施態様4] 前記最上位階層の暗号化鍵情報は、所定のインターネット上の認証用サーバに出力することを特徴とする実施態様1に記載の情報処理方法。
【0150】
[実施態様5] 更に、入力した符号化データを、タイル及びタイルグループの階層構造として表示する工程を備え、
前記所望とする階層の所望とするタイルグループは、前記表示工程での表示された階層構造から指定することを特徴とする実施態様1に記載の情報処理方法。
【0151】
[実施態様6] タイル単位に圧縮符号化されたデータを入力し、暗号化する情報処理装置であって、
隣接する複数のタイルで1つのタイルグループを構成し、更に、隣接するタイルグループで1つの更なるタイルグループを構成することを繰り返すことで、タイルグループの階層構造を定義する手段と、
符号化データで表現される画像全体から、最上位階層の暗号化鍵情報を生成する手段と、
前記階層構造中の、上位に位置するタイルグループに対して生成された暗号化鍵情報に基づき、下位層に位置するタイルグループ或いはタイルに対する暗号化鍵情報を生成することを、末端に位置するタイルまで行なう手段と、
前記タイルグループのツリー構造中の、所望とする階層の所望とするタイルグループを暗号化対象とする指定入力が与えられた場合、当該指定入力されたタイルグループに属する下位層の末端に位置するタイルに対して暗号化を行うよう設定する手段と、
暗号化を行うよう設定された個々のタイルに対し、当該タイルに対して生成された暗号化キーを用いて暗号化処理を行ない、当該暗号化した符号化データ及び暗号化されていないタイルの符号化データを出力する手段と
を備えることを特徴とする情報処理装置。
【0152】
[実施態様7] コンピュータが読み込み実行することで、タイル単位に圧縮符号化されたデータを入力し、暗号化する情報処理装置として機能するコンピュータプログラムであって、
隣接する複数のタイルで1つのタイルグループを構成し、更に、隣接するタイルグループで1つの更なるタイルグループを構成することを繰り返すことで、タイルグループの階層構造を定義する手段と、
符号化データで表現される画像全体から、最上位階層の暗号化鍵情報を生成する手段と、
前記階層構造中の、上位に位置するタイルグループに対して生成された暗号化鍵情報に基づき、下位層に位置するタイルグループ或いはタイルに対する暗号化鍵情報を生成することを、末端に位置するタイルまで行なう手段と、
前記タイルグループのツリー構造中の、所望とする階層の所望とするタイルグループを暗号化対象とする指定入力が与えられた場合、当該指定入力されたタイルグループに属する下位層の末端に位置するタイルに対して暗号化を行うよう設定する手段と、
暗号化を行うよう設定された個々のタイルに対し、当該タイルに対して生成された暗号化キーを用いて暗号化処理を行ない、当該暗号化した符号化データ及び暗号化されていないタイルの符号化データを出力する手段と
して機能することを特徴とするコンピュータプログラム。
【0153】
[実施態様8] 実施態様7に記載のコンピュータプログラムを格納することを特徴とするコンピュータ可読記憶媒体。
【0154】
また、復号処理部143としての情報処理方法及び装置、並びにコンピュータプログラム及びコンピュータ可読記憶媒体は、次のようになる。
【0155】
[実施態様9] 暗号化/非暗号化されたタイル単位の符号化データが混在した情報を入力し、画像を再現する情報処理方法であって、
入力した情報に基づき、隣接する複数のタイルで1つのタイルグループを構成し、更に、隣接するタイルグループで1つの更なるタイルグループを構成することを繰り返すことで、タイルグループの階層構造を定義し、
暗号化されたタイルを包含する所望とする上位のタイルグループに対する、暗号解除を行うための鍵情報を入力し、
入力した鍵情報に基づき、当該鍵情報が示すタイルグループの下位層の鍵情報を生成することを、末端のタイルまで行い、
生成された各タイルに対する鍵情報を用いて、暗号化された各タイルの符号化データの暗号化を解除し、復号する
ことを特徴とする情報処理方法。
【0156】
[実施態様10] 暗号化/非暗号化されたタイル単位の符号化データが混在した情報を入力し、画像を再現する情報処理装置であって、
入力した情報に基づき、隣接する複数のタイルで1つのタイルグループを構成し、更に、隣接するタイルグループで1つの更なるタイルグループを構成することを繰り返すことで、タイルグループの階層構造を定義する手段と、
暗号化されたタイルを包含する所望とする上位のタイルグループに対する、暗号解除を行うための鍵情報を入力する手段と、
入力した鍵情報に基づき、当該鍵情報が示すタイルグループの下位層の鍵情報を生成することを、末端のタイルまで行う手段と、
生成された各タイルに対する鍵情報を用いて、暗号化された各タイルの符号化データの暗号化を解除し、復号する手段と
を備えることを特徴とする情報処理装置。
【0157】
[実施態様11] コンピュータが読み込み実行することで、暗号化/非暗号化されたタイル単位の符号化データが混在した情報を入力し、画像を再現する情報処理装置として機能するコンピュータプログラムであって、
入力した情報に基づき、隣接する複数のタイルで1つのタイルグループを構成し、更に、隣接するタイルグループで1つの更なるタイルグループを構成することを繰り返すことで、タイルグループの階層構造を定義する手段と、
暗号化されたタイルを包含する所望とする上位のタイルグループに対する、暗号解除を行うための鍵情報を入力する手段と、
入力した鍵情報に基づき、当該鍵情報が示すタイルグループの下位層の鍵情報を生成することを、末端のタイルまで行う手段と、
生成された各タイルに対する鍵情報を用いて、暗号化された各タイルの符号化データの暗号化を解除し、復号する手段と
して機能することを特徴とするコンピュータプログラム。
【0158】
[実施態様12] 実施態様11に記載のコンピュータプログラムを格納することを特徴とするコンピュータ可読記憶媒体。
【0159】
更に、アクセス鍵生成処理部142としてのサーバ及びその制御方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体は、次のようになる。
【0160】
[実施態様13] 暗号化/非暗号化されたタイル単位の符号化データが混在した画像のための暗号解除鍵を提供するネットワークに接続されるサーバの処理方法であって、
隣接する複数のタイルで1つのタイルグループを構成し、更に、隣接するタイルグループで1つの更なるタイルグループを構成することを繰り返す階層構造を有する画像の最上位に位置する基本解除鍵情報を記憶し、
解除させたい階層中のタイルグループを指定する情報を前記ネットワーク上のクライアントから受信したとき、指定された階層の指定されたタイルグループに到達するまで、前記基本解除鍵から下位層に向かって順次解除鍵情報を派生し、該当するタイルグループに対する解除鍵情報が生成された場合に、当該解除鍵情報を前記クライアントに通知する
ことを特徴とするサーバの処理方法。
【0161】
[実施態様14] 暗号化/非暗号化されたタイル単位の符号化データが混在した画像のための暗号解除鍵を提供するネットワークに接続されるサーバであって、
隣接する複数のタイルで1つのタイルグループを構成し、更に、隣接するタイルグループで1つの更なるタイルグループを構成することを繰り返す階層構造を有する画像の最上位に位置する基本解除鍵情報を記憶する手段と、
解除させたい階層中のタイルグループを指定する情報を前記ネットワーク上のクライアントから受信したとき、指定された階層の指定されたタイルグループに到達するまで、前記基本解除鍵から下位層に向かって順次解除鍵情報を派生し、該当するタイルグループに対する解除鍵情報が生成された場合に、当該解除鍵情報を前記クライアントに通知する手段と
を備えることを特徴とするサーバ。
【0162】
[実施態様15] コンピュータが読み込み実行することで、暗号化/非暗号化されたタイル単位の符号化データが混在した画像のための暗号解除鍵を提供するネットワークに接続されるサーバとして機能するコンピュータプログラムであって、
隣接する複数のタイルで1つのタイルグループを構成し、更に、隣接するタイルグループで1つの更なるタイルグループを構成することを繰り返す階層構造を有する画像の最上位に位置する基本解除鍵情報を記憶する手段と、
解除させたい階層中のタイルグループを指定する情報を前記ネットワーク上のクライアントから受信したとき、指定された階層の指定されたタイルグループに到達するまで、前記基本解除鍵から下位層に向かって順次解除鍵情報を派生し、該当するタイルグループに対する解除鍵情報が生成された場合に、当該解除鍵情報を前記クライアントに通知する手段と
して機能することを特徴とするコンピュータプログラム。
【0163】
[実施態様16] 実施態様15に記載のコンピュータプログラムを格納することを特徴とするコンピュータ可読記憶媒体。
【0164】
【発明の効果】
以上説明したように本発明によれば、複数のタイル及び階層構造を有する画像データに対して、タイル及び階層構造毎に異なる暗号鍵を用いて暗号化した場合にも、複数の鍵を管理する必要がないようにすることが可能となる。
【図面の簡単な説明】
【図1】本実施形態における暗号処理部のブロック構成図である。
【図2】本実施形態におけるタイル及びタイルパートを示す図である。
【図3】本実施形態におけるタイルグループ化を説明するための図である。
【図4A】第1の実施形態におけるタイルパート、及びタイルグループのツリー構造を示す図である。
【図4B】図4Aのツリー構造をタイルインデックス、タイルパートインデックスで示すツリー構造図である。
【図5】本実施形態における暗号化対象タイルパート情報を説明する図である。
【図6】本実施形態における鍵行列生成処理のフローチャートである。
【図7】本実施形態における鍵行列の構造を示す図である。
【図8】本実施形態における暗号化タイルパート行列の一例を示す図である。
【図9】本実施形態におけるアクセス鍵生成処理部のブロック構成図である。
【図10】本実施形態におけるアクセス鍵のフォーマットを示す図である。
【図11】本実施形態における復号処理部のブロック構成図である。
【図12】本実施形態における鍵行列生成処理を説明する図である。
【図13】本実施形態における暗号化タイルパート情報の一例を示す図である。
【図14】本実施形態におけるシステムの全体構成図である。
【図15】タイルパートの他の形態を示す図である。
【図16】第3の実施形態におけるタイルパート、及びタイルグループのツリー構造を示す図である。
【図17】第4の実施形態における処理の一部分を示すフローチャートである。
Claims (1)
- タイル単位に圧縮符号化された画像データを入力し、暗号化する情報処理方法であって、
隣接する複数のタイルで1つのタイルグループを構成し、更に、隣接するタイルグループで1つの更なるタイルグループを構成することを繰り返すことで、タイルグループの階層構造を定義し、
符号化データで表現される画像全体から、最上位階層の暗号化鍵情報を生成し、
前記階層構造中の、上位に位置するタイルグループに対して生成された暗号化鍵情報に基づき、下位層に位置するタイルグループ或いはタイルに対する暗号化鍵情報を生成することを、末端に位置するタイルまで行ない、
前記タイルグループのツリー構造中の、所望とする階層の所望とするタイルグループを暗号化対象とする指定入力が与えられた場合、当該指定入力されたタイルグループに属する下位層の末端に位置するタイルに対して暗号化を行うよう設定し、
暗号化を行うよう設定された個々のタイルに対し、当該タイルに対して生成された暗号化キーを用いて暗号化処理を行ない、当該暗号化した符号化データ及び暗号化されていないタイルの符号化データを出力する
ことを特徴とする情報処理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002304498A JP2004140668A (ja) | 2002-10-18 | 2002-10-18 | 情報処理方法 |
US10/686,579 US7356149B2 (en) | 2002-10-18 | 2003-10-17 | Information processing method and apparatus, computer program, and computer-readable storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002304498A JP2004140668A (ja) | 2002-10-18 | 2002-10-18 | 情報処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004140668A true JP2004140668A (ja) | 2004-05-13 |
Family
ID=32105115
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002304498A Withdrawn JP2004140668A (ja) | 2002-10-18 | 2002-10-18 | 情報処理方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7356149B2 (ja) |
JP (1) | JP2004140668A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009231930A (ja) * | 2008-03-19 | 2009-10-08 | Ricoh Co Ltd | 鍵生成装置および鍵生成方法 |
US20200313880A1 (en) * | 2019-03-25 | 2020-10-01 | Stmicroelectronics (Rousset) Sas | Encryption and/or decryption key device, system and method |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4181802B2 (ja) * | 2002-06-28 | 2008-11-19 | キヤノン株式会社 | 情報処理装置、情報処理方法、プログラム、記憶媒体 |
WO2005018136A1 (ja) * | 2003-07-11 | 2005-02-24 | Canon Kabushiki Kaisha | 鍵情報処理方法及びその装置、並びにプログラム |
US20050114691A1 (en) * | 2003-11-21 | 2005-05-26 | Gilg Thomas J. | Micro electronic device with plurality of encryption/decryption logic |
JP2005341316A (ja) | 2004-05-27 | 2005-12-08 | Sony Corp | 情報処理システムおよび方法、情報処理装置および方法、並びにプログラム |
JP4310285B2 (ja) * | 2005-02-09 | 2009-08-05 | キヤノン株式会社 | 情報処理方法及び装置、並びにコンピュータプログラム及びコンピュータ可読記憶媒体 |
JP2007013440A (ja) | 2005-06-29 | 2007-01-18 | Toshiba Corp | メディア鍵生成方法、メディア鍵生成装置、再生装置、及び記録再生装置 |
JP5043421B2 (ja) | 2005-12-28 | 2012-10-10 | キヤノン株式会社 | 情報処理装置およびその方法 |
JP2007318694A (ja) * | 2006-05-29 | 2007-12-06 | Canon Inc | 画像処理方法、画像処理装置 |
IT1403450B1 (it) * | 2011-01-19 | 2013-10-17 | Sisvel S P A | Flusso video costituito da frame video combinati, e procedimento e dispositivi per la sua generazione, trasmissione, ricezione e riproduzione |
JP5921120B2 (ja) | 2011-09-07 | 2016-05-24 | キヤノン株式会社 | 情報処理装置、情報処理方法 |
CN104040934B (zh) | 2011-12-15 | 2018-04-24 | 英特尔公司 | 当被云服务操控时保护图像隐私 |
EP2642744A1 (en) * | 2012-03-19 | 2013-09-25 | Nagravision S.A. | Method and system for scrambling and descrambling a digital image |
WO2013147908A1 (en) | 2012-03-31 | 2013-10-03 | Intel Corporation | Methods and systems for cryptographic access control of video |
JP6493403B2 (ja) * | 2014-06-30 | 2019-04-03 | ソニー株式会社 | ファイル生成装置および方法、並びにコンテンツ再生装置および方法 |
KR102460069B1 (ko) * | 2015-09-30 | 2022-10-28 | 삼성전자주식회사 | 보안 인증 장치 및 보안 인증 방법 |
CN106803964B (zh) * | 2017-01-16 | 2019-06-18 | 西安电子科技大学 | 群体图像编码结构生成方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4754482A (en) * | 1985-11-26 | 1988-06-28 | Samco Investment Company | Method and apparatus for synchronizing encrypting and decrypting systems |
US4944023A (en) * | 1987-05-19 | 1990-07-24 | Ricoh Company, Ltd. | Method of describing image information |
EP0768774A3 (en) * | 1995-10-16 | 1999-08-04 | Sony Corporation | Method and apparatus for data encryption using a key generation hierarchy |
JP4026933B2 (ja) | 1998-06-24 | 2007-12-26 | キヤノン株式会社 | 情報処理装置及び方法並びに記録媒体 |
US6741758B2 (en) | 2000-04-07 | 2004-05-25 | Canon Kabushiki Kaisha | Image processor and image processing method |
JP4595182B2 (ja) * | 2000-09-07 | 2010-12-08 | ソニー株式会社 | 情報記録装置、情報再生装置、情報記録方法、情報再生方法、および情報記録媒体、並びにプログラム提供媒体 |
ATE505905T1 (de) | 2001-02-09 | 2011-04-15 | Canon Kk | Informationsverarbeitungsgerät und seine steuerverfahren, computerprogramm, und speichermedium |
JP2002325170A (ja) | 2001-04-24 | 2002-11-08 | Canon Inc | 画像処理装置及びその方法並びにプログラムコード、記憶媒体 |
US20020171743A1 (en) * | 2001-05-16 | 2002-11-21 | Konica Corporation | Electronic device and digital still camera |
JP3977216B2 (ja) | 2001-09-27 | 2007-09-19 | キヤノン株式会社 | 情報処理装置及び方法及び情報処理プログラム及び記憶媒体 |
JP3937841B2 (ja) | 2002-01-10 | 2007-06-27 | キヤノン株式会社 | 情報処理装置及びその制御方法 |
JP4181802B2 (ja) | 2002-06-28 | 2008-11-19 | キヤノン株式会社 | 情報処理装置、情報処理方法、プログラム、記憶媒体 |
-
2002
- 2002-10-18 JP JP2002304498A patent/JP2004140668A/ja not_active Withdrawn
-
2003
- 2003-10-17 US US10/686,579 patent/US7356149B2/en not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009231930A (ja) * | 2008-03-19 | 2009-10-08 | Ricoh Co Ltd | 鍵生成装置および鍵生成方法 |
US20200313880A1 (en) * | 2019-03-25 | 2020-10-01 | Stmicroelectronics (Rousset) Sas | Encryption and/or decryption key device, system and method |
Also Published As
Publication number | Publication date |
---|---|
US20040081334A1 (en) | 2004-04-29 |
US7356149B2 (en) | 2008-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2004140667A (ja) | 情報処理方法 | |
US7457419B2 (en) | Information processing method and apparatus for encrypting encoded data | |
JP2004140668A (ja) | 情報処理方法 | |
KR101002100B1 (ko) | 보호 매체 콘텐츠에 대한 액세스 특권의 다수 레벨 제어를위한 방법 | |
US6456985B1 (en) | Image encrypting method and device, image decrypting method and device, and recording medium | |
CN100576916C (zh) | 媒体数据编码设备 | |
US7463736B2 (en) | Data process apparatus and method therefor | |
US20040174999A1 (en) | Image data encryption method and apparatus, computer program, and computer-readable storage medium | |
JP4612787B2 (ja) | 画像データの暗号化装置の制御方法及び画像データ変換装置の制御方法、及び、それらの装置、並びにコンピュータプログラム及びコンピュータ可読記憶媒体 | |
US7644445B2 (en) | Secure key management for scalable codestreams | |
US20060149762A1 (en) | Key information processing method, device thereof, and program | |
CN100571388C (zh) | 对渐次加密的可伸缩数据序列进行伸缩变换的方法 | |
US20070217607A1 (en) | Repetition Coded Compression For Encrypting Highly Correlated Data | |
JP4181802B2 (ja) | 情報処理装置、情報処理方法、プログラム、記憶媒体 | |
JP2000101853A (ja) | 画像暗号化方法、画像暗号化装置、画像暗号化の手順を記録した記録媒体及び画像暗号化の画像ファイルを記録する記録媒体 | |
JP5269984B2 (ja) | 暗号鍵生成装置 | |
JPH1198487A (ja) | 画像符号化装置及び画像復号化装置 | |
Wen et al. | Triple-image bit-level encryption algorithm based on double cross 2D hyperchaotic map | |
US7522724B2 (en) | System and method of transmission of generalized scalable bit-streams | |
Sharma et al. | Visual cryptographic techniques for secret image sharing: a review | |
JP2002009757A (ja) | データ暗号化装置及びデータ復号化装置 | |
JP2007020225A (ja) | 画像データ暗号化装置及びその制御方法 | |
Wu et al. | Flexible access control to JPEG 2000 image code-streams | |
JP4956179B2 (ja) | データ処理装置、データ処理方法、データ処理プログラム並びに記憶媒体 | |
Kumar et al. | A secure system for digital video applications using an intelligent crypto model |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20060110 |