JP4672971B2 - 暗号化・復号方法及び装置 - Google Patents
暗号化・復号方法及び装置 Download PDFInfo
- Publication number
- JP4672971B2 JP4672971B2 JP2003184941A JP2003184941A JP4672971B2 JP 4672971 B2 JP4672971 B2 JP 4672971B2 JP 2003184941 A JP2003184941 A JP 2003184941A JP 2003184941 A JP2003184941 A JP 2003184941A JP 4672971 B2 JP4672971 B2 JP 4672971B2
- Authority
- JP
- Japan
- Prior art keywords
- code
- encryption
- attention
- decoding
- prohibited
- 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.)
- Expired - Fee Related
Links
Images
Description
【発明の属する技術分野】
本発明は、データの暗号化・復号手法に関する。特に、フォーマットに特有のマーカーコードを含む画像データの暗号化復号を行う方法及び装置、プログラムに関するものである。
【0002】
【従来の技術】
近年、コンピュータとそのネットワークの急速な発達及び普及により、文字データ、画像データ、音声データなど、多種の情報がデジタル化されている。デジタル情報は、経年変化などによる劣化がなく、いつまでも完全な状態で保存できる一方、容易に複製が可能であり、著作権の保護が大きな問題となっている。そのため著作権保護のためのセキュリティ技術は急速に重要性を増している。
【0003】
著作権を保護する技術の一つに“暗号技術”がある。特に、画像データなどのデジタルコンテンツの暗号化方式として、送信者と受信者で同一の暗号鍵を秘密に共有する共通鍵暗号方式(秘密鍵暗号方式、対称暗号方式、慣用暗号方式とも呼ばれる)がある。共通鍵暗号方式は適当な長さの文字列(ブロック)ごとに同じ鍵で暗号化するブロック暗号と文字列またはビットごとに鍵を変えていくストリーム暗号に分けることができる。ブロック暗号の中ではDES(Data Encryption Standard)やAES(Advanced Encryption Standard)などが良く知られている。
【0004】
ストリーム暗号としては、多表を用いるビジネル暗号や1回限りの使い捨ての鍵を用いるバーナム暗号等が知られている(例えば非特許文献1を参照)。よって、画像データ全体の暗号化による著作権保護は、上記の共通鍵暗号方式のうちの一つを用いることにより容易に実現できる。すなわち、送信者と受信者で暗号鍵を共有し、送信者が暗号化した画像データを受信者がその鍵を用いて復号すればよい。
【0005】
一方、画像データを圧縮する高能率符号化の1方式としては、静止画像の国際標準符号化方式としてISOとITU−Tにより勧告されたJPEG方式が広く用いられている。このJPEG方式は離散コサイン変換を基本とした方式であるが、圧縮率を高めるとブロック状の歪みが生じるという問題点があった。そこで、画像のさらなる高解像度化要求と、より高い圧縮率を実現するために先の離散コサイン変換とは異なる変換方式として離散ウェーブレット変換を利用した符号化方式が提案され、現在JPEG2000として標準化が進んでいる。
【0006】
図1はJPEG2000エンコーダの機能ブロック図である。入力画像はまず離散ウェーブレット変換(DWT)によりサブバンド分解され(101)、その後量子化される(102)。図2は分解レベルが2のとき(解像度レベル数3)のサブバンド分解の例であり、level0からlevel2までの解像度レベルが存在する。このとき、小さい解像度レベルに属する係数ほど低い周波数の情報を含むことになる。量子化されたウェーブレット係数は、EBCOTアルゴリズムにより符号化される。以下ではこのアルゴリズムを、コードブロック分割(103)、係数モデリング(104)、算術符号化(105)とレート制御(106)、レイヤ形成(107)、パケット生成(108)の5つの部分に分けて説明する。
【0007】
(1)コードブロック分割
各サブバンドは、コードブロックと呼ばれる正方形のブロック(例えば64x64など)に分割される。これらのコードブロックは、それぞれ独立に符号化される。
【0008】
(2)係数モデリング
各コードブロックのウェーブレット係数列に対し、ピットプレーンに基づく係数モデリングを行う。これにより、係数ビットが重要度順に並んだエンペデッド符号列を生成する。MSBからLSBまでのすべてのビットプレーンは、それぞれ文脈に応じて三つのサブビットプレーン(パス)分解される。各サブビットブレーンの境界は打切り点(Truncation point)と呼ばれ、後でデータを切り捨てる際の最小の分割単位となる。
【0009】
(3)算術符号化とレート制御
係数モデリングにより生成されたエンベデッド符号列に対して、適応算術符号化を施す。その後、サブビットブレーンの境界である打切り点を単位として、算術符号列を適宜打ち切ることにより、目的のビットレートを得る。
【0010】
(4)レイヤ形成
複数の画質で順次表示する必要がある場合、すなわちSNRスケーラブルが必要であるとき、次に符号のレイヤ形成を行う。各レイヤはそれぞれ、各コードブロックのエンベデッド符号の一部を含む。高いレイヤほど画像の再生にあたって重要な成分を含むことになる。
【0011】
(5)パケット生成
各レイヤを複数のボディと呼ばれる単位に分解し、それぞれにヘッダ情報を付加してパケットを生成する。ここで各ボディは、それぞれ対応する解像度レベルの情報をもつ。したがって生成されるパケットの総数は、レイヤ数と解像度レベル数の積となる。ヘッダ情報には、各コードブロックの算術符号列の長さ、サブビットプレーンの個数などの情報が含まれる。図4のように、すべてのパケットをまとめ、グローバルヘッダ情報を付加したものが、最終的なJPEG2000の符号列となる。ただし、以上のような各種ヘッダ情報やデータ分割の最小単位であるサブビットプレーンは、1バイトの整数倍のサイズとすることをJPEG2000では規定している。
【0012】
【非特許文献1】
池野、小山著「現代暗号理論」電子情報通信学会、1986.の第2章及び第4章
【0013】
【発明が解決しようとする課題】
以上説明したように、ディジタル画像データにはセキュリティーの問題があり、画像全体の暗号化は前述のDESやAESなどの暗号方式を用いることにより解決される。しかし、この場合、復号すると画像全体の暗号化が復号され、部分的な保護はできない。そこで例えば、高解像度部分のみ(図2のlevel1以上)を暗号化し、level0はそのままにすることにより、低解像度のlevel0の画像は開示するが、全体である高解像度画像は保護することができる。ただし、この場合、暗号化する高解像度部分以外は通常のJPEG2000の符号列になっているので、高解像度部分の暗号化方式としてDESやAESを単純にそのまま用いることはできない。
【0014】
なぜなら、JPEG2000の符号列の部分的な暗号化にはマーカコードに関する制約が伴うためである。マーカコードは、JPEG2000において特別な意味を保つ符号であり、暗号化により偽のマーカコードが生成されると、正常な再生が妨げられることがある。すなわち、マーカコードは図4に示す圧縮データ部(ボディ)においては、生成が禁止された禁止符号的な役割をもつ。
【0015】
JPEG2000を対象とした場合、マーカコードとはFF90h−FFFFhの値を有するマーカおよびマーカセグメントコードを意味する。マーカとは定義情報を格納するコードである。これらは2バイトで表され、先頭の1バイトはFFhである。さらに用途に応じてFFxxhという2バイトデータとしてマーカは表現される。一方、マーカセグメントは1つのマーカとそれに追随するパラメータとからなる。4種類のマーカ、SOC(FF4Fh:start of code−stream)、EOC(FFD9h:end of code−stream)、SOD(FF93h:start of data)、EPH(FF92h:end of packet header)のみが独立したマーカであり、その他のマーカは、すべてマーカセグメントの一部である。以後、マーカおよびマーカセグメントをまとめてマーカとよぶ。JPEG2000では、特にFF90h−FFFFhの範囲のマーカに二つの特別な意味を持たせている。一つは、これらのマーカがコードストリームの区切りを意味することである。これにより、パケットおよびパケットヘッダを位置づけることが可能となる。他の一つは、これらのマーカが圧縮データ自身〈図4のボディ〉の中に存在しないことである。すなわち、JPEG2000エンコーダはこれらのコードを発生しないように設計されている。よって、上記の部分的なJPEG2000データの暗号化において回避したいのは、この2バイトを単位とするFF90h―FFFFhのマーカコードの生成である。
【0016】
そこで、本発明は以上の問題に鑑みてなされたものであり、DESやAESなどの既存の暗号方式を用いながら、暗号化データに禁止符号のマーカコードを発生させないようにすることを目的とする。
【0017】
【課題を解決するための手段】
上記目的を達成するため、本発明によれば、暗号化手段と、判定手段と、暗号化結果決定手段とを備えた暗号化装置により実行される暗号化方法に、前記暗号化手段が、符号を暗号化する暗号化工程と、前記判定手段が、該暗号化工程により注目符号を暗号化した暗号化注目符号について、該暗号化注目符号、該暗号化注目符号または前記注目符号と該注目符号の前後の符号または前記暗号化工程により当該前後の符号を暗号化した符号との所定の組み合わせの中に禁止符号が存在するか否かを判定する判定工程と、前記暗号化結果決定手段が、該判定工程により禁止符号が存在しないと判定されたとき、前記暗号化注目符号を前記注目符号の暗号化結果として決定する暗号化結果決定工程とを有し、前記判定工程が、前記暗号化注目符号が禁止符号か否かを判定する第1の判定工程と、前記暗号化注目符号の後ろから所定数のシンボルと前記注目符号の直後の符号の始めから所定数のシンボルとの組合せが禁止符号か否かを判定する第2の判定工程と、前記注目符号の直前の符号の後ろから所定数のシンボルと前記暗号化注目符号の始めから所定数のシンボルとの組合せが禁止符号か否かを判定する第3の判定工程とを含むことを特徴とする。
【0018】
また、本発明の他の態様によれば、復号手段と、判定手段と、復号結果決定手段とを備えた暗号化装置により実行される暗号化方法に、前記復号手段が、暗号化された符号を復号する復号工程と、前記判定手段が、該復号工程により注目符号を復号した復号注目符号について、該復号注目符号、該復号注目符号または前記注目符号と該注目符号の前後の符号または前記復号工程により当該前後の符号を復号した符号との所定の組み合わせの中に禁止符号が存在するか否かを判定する判定工程と、前記復号結果決定手段が、該判定工程により禁止符号が存在しないと判定されたとき、前記復号注目符号を前記注目符号の復号結果として決定する復号結果決定工程とを有し、前記判定工程が、前記復号注目符号が禁止符号か否かを判定する第1の判定工程と、前記復号注目符号の後ろから所定数のシンボルと前記注目符号の直後の符号の始めから所定数のシンボルとの組合せが禁止符号か否かを判定する第2の判定工程と、前記注目符号の直前の符号の後ろから所定数のシンボルと前記復号注目符号の始めから所定数のシンボルとの組合せが禁止符号か否かを判定する第3の判定工程とを含むことを特徴とする。
【0019】
【発明の実施の形態】
以下、図面を参照しながら、本発明の実施形態について説明する。
【0020】
[第1の実施形態]
まず、用いる暗号方式としてDESを例として考える。DESの基本的な動作は、▲1▼データを64ビット長のブロックに分割する、▲2▼各ブロックを56ビット長のカギで暗号化する、の2つだが、ブロックとカギの使い方によってECB、CB、OFB、CFBの4つのモードがある。
【0021】
DESの基本型と言えるモードがECB(Electronic Code Block)だ。上で述べた基本動作がそのまま行われる。つまり、データをブロックに分割した後、各ブロックを秘密カギで暗号化し、それらのブロックを元の順番でつなぎ合わせる。CBC(Cipher Block Chaining)は、暗号化された前ブロックと、まだ暗号化されていない現在のブロックとのXOR(排他的論理和)をとり、これを秘密カギで暗号化するモード。“Chaining(連鎖)”という言葉が使われているように、各ブロックの暗号化が「連鎖的」に進められる。
【0022】
一方CFB(Cipher Feedback)は、前ブロックの暗号化結果の1部(mビット)が次ブロックのmビットと XOR をとる値としてフィードバックされるモードである。したがってCBCとCFBでは、ブロック内で発生したビット・エラーが、以降のブロックの暗号化に影響を与えることになる。
【0023】
OFB(Output Feedback)は、ある初期値を第1ブロックとして暗号文を生成し、その暗号文(の1部)を次の暗号文の入力として用いると同時にその1部(mビット)を乱数として対応するmビットのデータとXOR をとるモードである。この仕組みによりブロック内のビット・エラーが、ほかのブロックを暗号化する際に影響を及ぼさない。“Output Feedback(出力フィードバック)”という名前は、前ブロックで生成された暗号文出力を次ブロックで使用する暗号文出力を生成させるためのパラメータとして、フィードバックさせることに由来している。上記各モードにおいて、mビットを適切に選択することにより、任意のビット長毎の暗号化を実現できる。
【0024】
また、図3は、本発明における各実施形態を実現する情報処理装置のハードウェア構成を説明するためのブロック図である。尚、透かし情報処理装置の実現に当たっては、図3に示される全ての機能を使用することは必須ではない。
【0025】
図3において、コンピュータ301は、一般に普及しているパーソナルコンピュータであり、スキャナ等の画像入力装置317から読み取られた画像を入力し、編集や保管を行うことが可能である。また、画像入力装置317で得られた画像をプリンタ316から印刷させることができる。尚、ユーザからの各種指示等は、マウス313、キーボード314からの入力操作により行われる。
【0026】
コンピュータ301の内部では、バス307により後述する各ブロックが接続され、種々のデータの受け渡しが可能である。図3において、MPU302は、コンピュータ301内部の各ブロックの動作を制御し、あるいは内部に記憶されたプログラムを実行することができる。主記憶装置303は、MPU302において行われる処理のために、一時的にプログラムや処理対象の画像データを格納しておく装置である。特に、後述する暗号化・復号処理手順に対応するプログラムや、暗号化・復号対象となるデータ、暗号化・復号結果のデータなどを記憶する領域を有する。ハードディスク(HDD)304は、主記憶装置303等に転送されるプログラムや画像データをあらかじめ格納したり、処理後の画像データを保存することのできる装置である。
【0027】
スキャナインタフェース(I/F)315は、原稿やフィルム等を読み取って、画像データを生成するスキャナ317と接続され、スキャナ317で得られた画像データを入力することのできるI/Fである。プリンタインタフェース308は、画像データを印刷するプリンタ316と接続され、印刷する画像データをプリンタ316に送信することのできるI/Fである。
【0028】
CDドライブ309は、外部記憶媒体の一つであるCD(CD−R/CD−RW)に記憶されたデータを読み込んだり、あるいは書き出すことができる装置である。FDDドライブ311は、CDドライブ309と同様にFDDからの読み込みや、FDDへの書き出しをすることができる装置である。DVDドライブ310は、FDDドライブ311と同様に、DVDからの読み込みや、DVDへの書き出しをすることができる装置である。尚、CD、FDD、DVD等に画像編集用のプログラム、あるいはプリンタドライバが記憶されている場合には、これらプログラムをHDD304上にインストールし、必要に応じて主記憶装置303に転送されるようになっている。
【0029】
インタフェース(I/F)312は、マウス313やキーボード314からの入力指示を受け付けるために、これらと接続されるI/Fである。また、モニタ306は、透かし情報の抽出処理結果や処理過程を表示することのできる表示装置である。さらに、ビデオコントローラ305は、表示データをモニタ306に送信するための装置である。
【0030】
図5に暗号化処理手順を表わすフローチャートを示す。このフローは図3に示す情報処理装置、特にマウス313やキーボード314からの入力指示により主記憶装置303にロードしたプログラムをMPU302などを用いて実行することによって実現できる。
【0031】
まず、JPEG2000 Stream中の暗号化対象となる最初のデータ位置にある第i符号を暗号化し、第i暗号化符号を得る(ステップS501)。ここで、暗号化対象はFF90h−FFFFhまでのマーカコード(以降、禁止符号と呼ぶ)が存在しない圧縮データ(図4のボディのデータ)の中の連続するデータを想定し、i=1とする。また、ここで符号とはJPEG2000の禁止符号の単位である2バイトからなるデータを想定する。
【0032】
この元となるJPEG2000 Streamはハードディスク304やCDドライブ309、DVDドライブ310、FDDドライブ311などに接続された各記憶媒体にあらかじめ記憶されていてもよいし、主記憶装置303にロードしたJPEG2000の圧縮プログラムをMPU302などを用いて実行したものでもよいし、図3に不図示のネットワークを介して送られても良い。また、暗号化処理は前述したDESのCFBやOFBなどのモードを用いて実行できる。
【0033】
次に、i+1番目の符号、すなわち2番目の符号を同様に暗号化する(ステップS502)。次に、第i暗号化符号がFF90h−FFFFhの禁止符号であるかどうかを調べる(ステップS503)。
【0034】
第i暗号化符号が禁止符号でない場合、第i符号の後ろの1バイトと第i+1暗号化データの始めの1バイトをつなげて1つの符号(ここでは後連接符号1と呼ぶ)としてそれが禁止符号となっているかを調べる(ステップS504)。それが禁止符号でない場合、第i暗号化データの後ろの1バイトと第i+1データの始めの1バイトを連接させた符号(ここでは後連接符号2と呼ぶ)が禁止符号となっているかを調べる(ステップS505)。
【0035】
それが禁止符号でない場合、i−1番目の符号の後ろの1バイトと第i暗号化データの始めの1バイトをつなげて1つの符号(ここでは前連接符号1と呼ぶ)としてそれが禁止符号となっているかを調べる(ステップS506)。ここで、i−1番目の符号とは、この時点で暗号化対象であるi番目の符号の前に位置する符号を指し、前の処理により暗号化されていてもよい。ただし、第i符号が1番目の符号の場合のみ、第i−1符号は存在しないのでステップS506の処理は省略できる。
【0036】
以上が全て禁止符号でない場合、第i暗号化符号は第i符号の暗号化結果として確定される(ステップS507)。ステップS503〜506において、1つでも禁止符号となっている場合、第i符号の暗号化は行わない。すなわち、第i符号の暗号化結果出力は第i符号のままとする。
【0037】
次に、第i符号が暗号化対象の最後の符号であるかどうかを調べ、最終符号なら終了する(ステップS508)。ただし、第i符号が最終符号の場合、その後の第i+1符号はないので、ステップS502、504、506の処理は省略できる。第i符号が最終符号でなければ、ステップS509でi=i+1としてステップS502の処理から継続する。
【0038】
ここで、後連接符号1〜2と前連接符号1を検査するのは、JPEG2000Streamの最小単位は1バイトであるので、前後に連接された形でも禁止符号が存在することを防ぐためである。
【0039】
次に、図6に復号処理手順を表わすフローチャートを示す。このフローも図3に示す情報処理装置、特にマウス313やキーボード314からの入力指示により主記憶装置303にロードしたプログラムをMPU302などを用いて実行することによって実現できる。
【0040】
まず、JPEG2000 Stream中の復号対象となる最初のデータ位置にある第i符号を復号し、第i復号符号を得る(ステップS601)。この元となるJPEG2000 Streamはあらかじめ図5の手順によって暗号化されたデータであり、図5の手順により暗号化されなかった部分も含めて、ここでは暗号化データとして扱う(図5の手順で暗号化されなかった部分は以降の説明において復号されないことがわかる)。
【0041】
さらに、この元となるJPEG2000 Streamは304のハードディスクや309のCDドライブ、DVDドライブ310、FDDドライブ311などに接続された各記憶媒体にあらかじめ記憶されていてもよいし、303の主記憶装置にロードしたJPEG2000の圧縮プログラムを302のMPUなどを用いて実行したものでもよいし、図3に不図示のネットワークを介して送られても良い。また、復号処理は前述したDESのCFBやOFBなどのモードを用いて実行できる。
【0042】
次に、i+1番目の暗号化符号、すなわち2番目の暗号化符号を同様に復号する(ステップS602)。次に、第i復号符号がFF90h−FFFFhの禁止符号であるかどうかを調べる(ステップS603)。
【0043】
第i復号符号が禁止符号でない場合、第i復号符号の後ろの1バイトと第i+1暗号化データの始めの1バイトをつなげて1つの符号(ここでは後連接符号4と呼ぶ)としてそれが禁止符号となっているかを調べる(ステップS604)。それが禁止符号でない場合、第i暗号化データの後ろの1バイトと第i+1復号データの始めの1バイトを連接させた符号(ここでは後連接符号5と呼ぶ)が禁止符号となっているかを調べる(ステップS605)。
【0044】
それが禁止符号でない場合、第i−1データの後ろの1バイトと第i復号データの始めの1バイトを連接させた符号(ここでは前連接符号2と呼ぶ)が禁止符号となっているかを調べる(ステップS606)。ここで、i−1番目の符号とは、この時点で復号対象であるi番目の符号の前に位置する符号を指し、前の処理により復号されていてもいなくてもよい。ただし、第i符号が1番目の符号の場合のみ、第i−1符号は存在しないのでステップS606の処理は省略できる。
【0045】
以上が全て禁止符号でない場合、第i復号符号は第i暗号化符号の復号結果として確定される(ステップS607)。ステップS603〜606において、1つでも禁止符号となっている場合、第i暗号化符号の復号は行わない。すなわち、第i暗号化符号の復号結果出力は第i暗号化符号のままとする。
【0046】
次に、第i暗号化符号が復号対象の最後の符号であるかどうかを調べ、最終符号なら終了する(ステップS608)。ただし、第i暗号化符号が最終符号の場合、第i+1暗号化符号はないので、ステップS602、604、606の処理は省略できる。第i暗号化符号が最終符号でなければ、ステップS609でi=i+1として、ステップS602の処理から継続する。
【0047】
ここで、DESにおけるOFBモードやCFBモードは入力データに対して同じ乱数データをEXORすることにより暗号化及び復号が実現される。よって、暗号化と復号は同じ処理になる。すなわち、図5の処理において暗号化された符号は、図6の処理において再度暗号化されることで復号されて元の符号に戻る。ここで、ステップS503〜506の検査はステップS603〜606の検査と同じ検査を行うことになり、図5の処理において暗号化されなかった符号は図6の処理において復号されない。よって、図6の処理で復号される符号は図5において暗号化された符号だけであるので、図5の処理が行われた符号は図6に処理により元の符号に戻すことができる。
【0048】
[第2の実施形態]
図5の処理では暗号化する対象が連続している場合を想定したが、以下に暗号化対象が連続していない場合に対する処理を説明する。
【0049】
図7に暗号化処理に関するフローチャートを示す。このフローは図3に示す情報処理装置、特にマウス313やキーボード314からの入力指示により主記憶装置303にロードしたプログラムをMPU302などを用いて実行することによって実現できる。
【0050】
まず、JPEG2000 Stream中の暗号化対象となるデータ位置にある第i符号へ行く(ステップS701)。
【0051】
第i符号を暗号化し、第i暗号化符号を得る(ステップS702)。ここで、暗号化対象はFF90h−FFFFhまでのマーカコード(以降、禁止符号と呼ぶ)が存在しない圧縮データ(図4のボディのデータ)を想定し、s符号(s>1)おきに暗号化を行う場合を考える。
【0052】
また、ここで符号とはJPEG2000の禁止符号の単位である2バイトからなるデータを想定する。この元となるJPEG2000 Streamはハードディスク304やCDドライブ309、DVDドライブ310、FDDドライブ311などに接続された各記憶媒体にあらかじめ記憶されていてもよいし、主記憶装置303にロードしたJPEG2000の圧縮プログラムをMPU302などを用いて実行したものでもよいし、図3に不図示のネットワークを介して送られても良い。また、暗号化処理は前述したDESのCFBやOFBなどのモードを用いて実行できる。
【0053】
次に、第i暗号化符号がFF90h−FFFFhの禁止符号であるかどうかを調べる(ステップS703)。第i暗号化符号が禁止符号でない場合、第i暗号化データの後ろの1バイトと第i+1データの始めの1バイトを連接させた符号(ここでは後連接符号2と呼ぶ)が禁止符号となっているかを調べる(ステップS704)。
【0054】
それが禁止符号でない場合、i−1番目の符号の後ろの1バイトと第i暗号化データの始めの1バイトをつなげて1つの符号(ここでは前連接符号1と呼ぶ)としてそれが禁止符号となっているかを調べる(ステップS705)。ここで、i−1番目の符号とは、この時点で暗号化対象であるi番目の符号の前に位置する符号を指し、前の処理により暗号化されていてもよい。また、第i符号が1番目の符号の場合のみ、第i−1符号は存在しないのでステップS705の処理は省略できる。
【0055】
以上が全て禁止符号でない場合、第i暗号化符号は第i符号の暗号化結果として確定される(ステップS706)。ステップS703〜705において、1つでも禁止符号となっている場合、第i符号の暗号化は行わない。すなわち、第i符号の暗号化結果出力は第i符号のままとする。
【0056】
次に、第i符号が暗号化対象の最後の符号であるかどうかを調べ、最終符号なら終了する(ステップS707)。そうでなければ、ステップS708でi=i+sとしてステップS702の処理から継続する。
【0057】
ここで、図5と異なり、後連接符号2と前連接符号1のみを検査するのは、sは2以上であるので暗号化は離散的に行われ、第i符号の前後の符号は暗号化されていないためである。
【0058】
次に、図7の暗号化処理手順に対する復号処理手順を表わすフローチャートを図8に示す。このフローも、図3に示す情報処理装置、特にマウス313やキーボード314からの入力指示により主記憶装置303にロードしたプログラムをMPU302などを用いて実行することによって実現できる。
【0059】
まず、JPEG2000 Stream中の復号対象となるデータ位置にある第i暗号化符号へ行く(ステップS801)。次に、第i暗号化符号を復号し、第i復号符号を得る(ステップS802)。この元となるJPEG2000 Streamはあらかじめ図7の手法によって暗号化されたデータであり、図7の手順により暗号化されなかった部分も含めて、ここでは暗号化データとして扱う(図7の手順で暗号化されなかった部分は以降の説明において復号されないことがわかる)。
【0060】
さらに、この元となるJPEG2000 Streamはハードディスク304やCDドライブ309、DVDドライブ310、FDDドライブ311などに接続された各記憶媒体にあらかじめ記憶されていてもよいし、主記憶装置303にロードしたJPEG2000の圧縮プログラムをMPU302などを用いて実行したものでもよいし、図3に不図示のネットワークを介して送られても良い。また、復号処理は前述したDESのCFBやOFBなどのモードを用いて実行できる。
【0061】
次に、第i復号符号がFF90h−FFFFhの禁止符号であるかどうかを調べる(ステップS803)。第i復号符号が禁止符号でない場合、第i復号符号の後ろの1バイトと第i+1データの始めの1バイトをつなげて1つの符号(ここでは後連接符号4と呼ぶ)としてそれが禁止符号となっているかを調べる(ステップS804)。
【0062】
それが禁止符号でない場合、第i−1データの後ろの1バイトと第i復号データの始めの1バイトを連接させた符号(ここでは前連接符号2と呼ぶ)が禁止符号となっているかを調べる(ステップS805)。ここで、i−1番目の符号とは、この時点で復号対象であるi番目の符号の前に位置する符号を指し、前の処理により復号されていてもいなくてもよい。ただし、第i符号が1番目の符号の場合のみ、第i−1符号は存在しないのでステップS805の処理は省略できる。
【0063】
以上が全て禁止符号でない場合、第i復号符号は第i暗号化符号の復号結果として確定される(ステップS807)。ステップS803〜805において、1つでも禁止符号となっている場合、第i暗号化符号の復号は行わない。すなわち、第i暗号化符号の復号結果出力は第i暗号化符号のままとする。
【0064】
次に、第i暗号化符号が復号対象の最後の符号であるかどうかを調べ、最終符号なら終了する(ステップS808)。そうでなければ、ステップS808でi=i+sとして、ステップS802の処理から継続する。
【0065】
ここで、DESにおけるOFBモードやCFBモードは入力データに対して同じ乱数データをEXORすることにより暗号化及び復号が実現される。よって、暗号化と復号は同じ処理になる。すなわち、図5の処理において暗号化された符号は、図6の処理において再度暗号化されることで復号されて元の符号に戻る。ここで、ステップS703〜706の検査はステップS803〜806の検査と同じ検査を行うことになり、図7の処理において暗号化されなかった符号は図8の処理において復号されない。よって、図8の処理で復号される符号は図7において暗号化された符号だけであるので、図7の処理が行われた符号は図8に処理により元の符号に戻すことができる。
【0066】
また、上述の実施例ではDESを例として説明したが、本発明はDESに限らずAESやMISTY、Camelliaなど通常の共通鍵暗号を用いることができるのは明らかである。また、バーナム暗号でも良い。この場合、本発明の暗号化・復号手法の強度は用いた暗号方式に応じた安全性をもつ。
【0067】
また、暗号化モードもCFBやOFBに限らず任意長のデータを暗号化できる手法であれば、それらに限定されない。
【0068】
また、上述の実施例では禁止符号はFF90h−FFFFhのマーカコードとして説明したが、禁止符号はそれらを含む符号またはFFのみなどそれらの1部を含む符号であっても良い。
【0069】
また、上述の実施例ではJPEG2000を対象に禁止符号はFF90h−FFFFhのマーカコードとして説明したが、他の符号化標準を対象とするときはそれによって規定される禁止符号に対して、同様の原理で対応できることは明らかである。
【0070】
また、上述の実施例では1バイトまたは2バイトを単位として説明したが、2バイト以上の場合に対しても適用可能である。
【0071】
尚、本発明は、複数の機器(例えば、ホストコンピュータ、インタフェース機器、リーダ、プリンタ等)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置等)に適用してもよい。
【0072】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体(または記憶媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【0073】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0074】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0075】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【0076】
【発明の効果】
以上説明したように、本発明によれば、既存の暗号方式を用いながら、暗号化データに禁止符号のマーカコードを発生させないようにすることができるという効果がある。この場合、暗号の強度は元の暗号方式と同等に保つことができる。
【図面の簡単な説明】
【図1】JPEG2000エンコーダの機能ブロック図である。
【図2】JPEG2000におけるDWTによるサブバンド分解の説明図である。
【図3】本発明の実施の形態に係る処理装置の構成を示すブロックである。
【図4】JPEG2000 Streamの構成を説明する概念図である。
【図5】第1の実施形態に係る暗号化処理手順を表わすフローチャートである。
【図6】第1の実施形態に係る復号処理手順を表わすフローチャートである。
【図7】第2の実施形態に係る暗号化処理手順を表わすフローチャートである。
【図8】第2の実施形態に係る復号処理手順を表わすフローチャートである。
Claims (14)
- 暗号化手段と、判定手段と、暗号化結果決定手段とを備えた暗号化装置により実行される暗号化方法であって、
前記暗号化手段が、符号を暗号化する暗号化工程と、
前記判定手段が、該暗号化工程により注目符号を暗号化した暗号化注目符号について、該暗号化注目符号、該暗号化注目符号または前記注目符号と該注目符号の前後の符号または前記暗号化工程により当該前後の符号を暗号化した符号との所定の組み合わせの中に禁止符号が存在するか否かを判定する判定工程と、
前記暗号化結果決定手段が、該判定工程により禁止符号が存在しないと判定されたとき、前記暗号化注目符号を前記注目符号の暗号化結果として決定する暗号化結果決定工程とを有し、
前記判定工程が、
前記暗号化注目符号が禁止符号か否かを判定する第1の判定工程と、
前記暗号化注目符号の後ろから所定数のシンボルと前記注目符号の直後の符号の始めから所定数のシンボルとの組合せが禁止符号か否かを判定する第2の判定工程と、
前記注目符号の直前の符号の後ろから所定数のシンボルと前記暗号化注目符号の始めから所定数のシンボルとの組合せが禁止符号か否かを判定する第3の判定工程とを含むことを特徴とした暗号化方法。 - 前記暗号化結果決定工程では、前記暗号化結果決定手段が、前記判定工程により禁止符号が存在すると判定されたとき、前記注目符号自体を当該注目符号の暗号化結果として決定することを特徴とした請求項1に記載の暗号化方法。
- 前記暗号化工程では、前記暗号化手段が、所定符号おきに暗号化することを特徴とした請求項1に記載の暗号化方法。
- 前記判定工程が更に、前記注目符号の後ろから所定数のシンボルと前記注目符号の直後の符号を暗号化した符号の始めから所定数のシンボルとの組合せが禁止符号か否かを判定する第4の判定工程を含むことを特徴とした請求項1に記載の暗号化方法。
- 前記暗号化工程では、前記暗号化手段が、共通鍵暗号方式を用いて暗号化を行なうことを特徴とした請求項1に記載の暗号化方法。
- 前記禁止符号は、JPEG2000におけるマーカコードの一部を含む符号であることを特徴とした請求項1に記載の暗号化方法。
- 復号手段と、判定手段と、復号結果決定手段とを備えた暗号化装置により実行される暗号化方法であって、
前記復号手段が、暗号化された符号を復号する復号工程と、
前記判定手段が、該復号工程により注目符号を復号した復号注目符号について、該復号注目符号、該復号注目符号または前記注目符号と該注目符号の前後の符号または前記復号工程により当該前後の符号を復号した符号との所定の組み合わせの中に禁止符号が存在するか否かを判定する判定工程と、
前記復号結果決定手段が、該判定工程により禁止符号が存在しないと判定されたとき、前記復号注目符号を前記注目符号の復号結果として決定する復号結果決定工程とを有し、
前記判定工程が、
前記復号注目符号が禁止符号か否かを判定する第1の判定工程と、
前記復号注目符号の後ろから所定数のシンボルと前記注目符号の直後の符号の始めから所定数のシンボルとの組合せが禁止符号か否かを判定する第2の判定工程と、
前記注目符号の直前の符号の後ろから所定数のシンボルと前記復号注目符号の始めから所定数のシンボルとの組合せが禁止符号か否かを判定する第3の判定工程とを含むことを特徴とした復号方法。 - 前記復号結果決定工程では、前記復号結果決定手段が、前記判定工程により禁止符号が存在すると判定されたとき、前記注目符号自体を当該注目符号の復号結果として決定することを特徴とした請求項7に記載の復号方法。
- 前記復号工程では、前記復号手段が、所定符号おきに復号することを特徴とした請求項7に記載の復号方法。
- 前記判定工程が更に、前記注目符号の後ろから所定数のシンボルと前記注目符号の直後の符号を復号した符号の始めから所定数のシンボルとの組合せが禁止符号か否かを判定する第4の判定工程を含むことを特徴とした請求項7に記載の復号方法。
- 前記復号工程では、前記復号手段が、共通鍵暗号方式を用いて復号を行なうことを特徴とした請求項7に記載の復号方法。
- 前記禁止符号は、JPEG2000におけるマーカコードの一部を含む符号であることを特徴とした請求項7に記載の復号方法。
- 符号を暗号化する暗号化手段と、
該暗号化手段により注目符号を暗号化した暗号化注目符号について、該暗号化注目符号、該暗号化注目符号または前記注目符号と該注目符号の前後の符号または前記暗号化手段により当該前後の符号を暗号化した符号との所定の組み合わせの中に禁止符号が存在するか否かを判定する判定手段と、
該判定手段により禁止符号が存在しないと判定されたとき、前記暗号化注目符号を前記注目符号の暗号化結果として決定する暗号化結果決定手段とを有し、
前記判定手段が、
前記暗号化注目符号が禁止符号か否かを判定する第1の判定手段と、
前記暗号化注目符号の後ろから所定数のシンボルと前記注目符号の直後の符号の始めから所定数のシンボルとの組合せが禁止符号か否かを判定する第2の判定手段と、
前記注目符号の直前の符号の後ろから所定数のシンボルと前記暗号化注目符号の始めから所定数のシンボルとの組合せが禁止符号か否かを判定する第3の判定手段とを備えることを特徴とした暗号化装置。 - 暗号化された符号を復号する復号手段と、
該復号手段により注目符号を復号した復号注目符号について、該復号注目符号、該復号注目符号または前記注目符号と該注目符号の前後の符号または前記復号手段により当該前後の符号を復号した符号との所定の組み合わせの中に禁止符号が存在するか否かを判定する判定手段と、
該判定手段により禁止符号が存在しないと判定されたとき、前記復号注目符号を前記注目符号の復号結果として決定する復号結果決定手段とを有し、
前記判定手段が、
前記復号注目符号が禁止符号か否かを判定する第1の判定工程と、
前記復号注目符号の後ろから所定数のシンボルと前記注目符号の直後の符号の始めから所定数のシンボルとの組合せが禁止符号か否かを判定する第2の判定工程と、
前記注目符号の直前の符号の後ろから所定数のシンボルと前記復号注目符号の始めから所定数のシンボルとの組合せが禁止符号か否かを判定する第3の判定工程とを備えることを特徴とした復号装置。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003184941A JP4672971B2 (ja) | 2003-06-27 | 2003-06-27 | 暗号化・復号方法及び装置 |
US10/753,319 US7512811B2 (en) | 2003-01-14 | 2004-01-09 | Encryption/decryption method for data limited in value range, apparatus and program therefor |
EP04250117A EP1439660B1 (en) | 2003-01-14 | 2004-01-12 | Encryption/decryption method for data limited in value range, apparatus and program therefor |
CNB200410001836XA CN100342683C (zh) | 2003-01-14 | 2004-01-14 | 在值域上有限制的数据的加密/解密方法及其装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003184941A JP4672971B2 (ja) | 2003-06-27 | 2003-06-27 | 暗号化・復号方法及び装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005020564A JP2005020564A (ja) | 2005-01-20 |
JP4672971B2 true JP4672971B2 (ja) | 2011-04-20 |
Family
ID=34184555
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003184941A Expired - Fee Related JP4672971B2 (ja) | 2003-01-14 | 2003-06-27 | 暗号化・復号方法及び装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4672971B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4906449B2 (ja) * | 2006-09-13 | 2012-03-28 | 株式会社リコー | 画像処理装置、電子署名付与方法及び電子署名付与プログラム |
JP2008072661A (ja) * | 2006-09-15 | 2008-03-27 | Ricoh Co Ltd | 情報処理装置、情報処理方法、プログラム及び記録媒体 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0767140A (ja) * | 1993-08-27 | 1995-03-10 | Sony Corp | 符号化伝送方法 |
JPH07162411A (ja) * | 1993-12-07 | 1995-06-23 | Matsushita Electric Ind Co Ltd | 暗号方法および暗号装置 |
JP2003153228A (ja) * | 2001-11-15 | 2003-05-23 | Sony Corp | 画像符号化装置及び画像復号化装置 |
WO2003096608A1 (fr) * | 2002-05-10 | 2003-11-20 | Sony Corporation | Procede de transmission de donnees et dispositif de transmission de donnees |
-
2003
- 2003-06-27 JP JP2003184941A patent/JP4672971B2/ja not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0767140A (ja) * | 1993-08-27 | 1995-03-10 | Sony Corp | 符号化伝送方法 |
JPH07162411A (ja) * | 1993-12-07 | 1995-06-23 | Matsushita Electric Ind Co Ltd | 暗号方法および暗号装置 |
JP2003153228A (ja) * | 2001-11-15 | 2003-05-23 | Sony Corp | 画像符号化装置及び画像復号化装置 |
WO2003096608A1 (fr) * | 2002-05-10 | 2003-11-20 | Sony Corporation | Procede de transmission de donnees et dispositif de transmission de donnees |
Also Published As
Publication number | Publication date |
---|---|
JP2005020564A (ja) | 2005-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9317720B2 (en) | Method, system, and program for securely providing keys to encode and decode data in a storage cartridge | |
US7055039B2 (en) | Protection of digital content using block cipher crytography | |
JP4240614B2 (ja) | 埋め込み装置及びコンピュータ読み取り可能な記憶媒体 | |
KR100579673B1 (ko) | 암호화/복호화 시스템, 암호화 시스템 및 복호화 시스템 | |
US20030231767A1 (en) | Efficient encryption of image data | |
KR100950857B1 (ko) | 변환 부호화 가능 콘텐츠의 구성요소들에 대한 다수의 암호무결성 검사값을 발생시키기 위하여 단일 암호 무결성검사를 사용하기 위한 시스템 및 방법 | |
US7512811B2 (en) | Encryption/decryption method for data limited in value range, apparatus and program therefor | |
TW200828938A (en) | Method for securely extending key stream to encrypt high-entropy data | |
KR20140051163A (ko) | 암호 해쉬 함수들의 실행을 보호하는 방법 및 시스템 | |
JP2018515815A (ja) | データ暗号化装置及び方法、並びにデータ復号化装置及び方法 | |
Ahmed et al. | A perceptually scalable and jpeg compression tolerant image encryption scheme | |
CN107078901A (zh) | 采用部分数据加密的编码器、解码器和方法 | |
Solichin et al. | Enhancing data security using DES-based cryptography and DCT-based steganography | |
US7039192B1 (en) | Methods for data encryption using multiple layer steganography | |
JP4025283B2 (ja) | 符号埋込方法、識別情報復元方法及び装置 | |
Prasetyadi et al. | File encryption and hiding application based on AES and append insertion steganography | |
JP4703805B2 (ja) | 暗号化装置、暗号化方法、復号化装置、復号化方法および通信システム | |
JP4672971B2 (ja) | 暗号化・復号方法及び装置 | |
JP4371663B2 (ja) | 情報処理装置、情報処理方法 | |
JP2010145691A (ja) | コンテンツ暗号化装置、コンテンツ復号化装置およびデータ変換方法 | |
JP2009124456A (ja) | 情報処理装置と情報処理方法と情報処理プログラム及び情報記録媒体 | |
WO2021044465A1 (ja) | 暗号化装置、復号装置、コンピュータプログラム、暗号化方法、復号方法及びデータ構造 | |
JPH11225140A (ja) | データ暗号化装置および復号装置と、そのプログラム記録媒体 | |
JP2008072661A (ja) | 情報処理装置、情報処理方法、プログラム及び記録媒体 | |
CN1692437A (zh) | 用于数据复制保护的设备和系统及其方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060627 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091201 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100201 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20100201 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20100630 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100914 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101214 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20101220 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20110118 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110120 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 4672971 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140128 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |