(57)【要約】【課題】ＤＥＳやＡＥＳなどの公知の暗号方式を用いて、禁止符号のマーカコードを発生させないこと。【解決手段】対象データを所定のサイズ毎に暗号化を行い、暗号化された結果が所定の禁止符号であるか否かを判定し、当該暗号化された結果が所定の禁止符号である場合に、当該暗号化された結果のデータを再暗号化する。【選択図】  図５
2004219669.tif 000002
【特許請求の範囲】
【請求項１】
対象データを所定のサイズ毎に暗号化を行う暗号化工程と、前記暗号化工程で暗号化された結果が所定の禁止符号であるか否かを判定する判定工程と、
前記暗号化工程で暗号化された結果が所定の禁止符号である場合に、当該暗号化された結果のデータを再暗号化する再暗号化工程と
を備えることを特徴とする情報処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像データの暗号化復号手法に関する。特に、フォーマットに特有のマーカーコードを含む画像データの暗号化復号を行う画像処理方法及び装置と記憶媒体、プログラムに関するものである。
【０００２】
【従来の技術】
近年、コンピュータとそのネットワークの急速な発達及び普及により、文字データ、画像データ、音声データなど、多種の情報がデジタル化されている。デジタル情報は、経年変化などによる劣化がなく、いつまでも完全な状態で保存できる一方、容易に複製が可能であり、著作権の保護が大きな問題となっている。そのため著作権保護のためのセキュリティ技術は急速に重要性を増している。
【０００３】
著作権を保護する技術の一つに“暗号技術”がある。特に、画像データなどのデジタルコンテンツの暗号化方式として、送信者と受信者で同一の暗号鍵を秘密に共有する共通鍵暗号方式（秘密鍵暗号方式、対称暗号方式、慣用暗号方式とも呼ばれる）がある。共通鍵暗号方式は適当な長さの文字列（ブロック）ごとに同じ鍵で暗号化するブロック暗号と文字列またはビットごとに鍵を変えていくストリーム暗号に分けることができる。ブロック暗号の中ではＤＥＳ（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）やＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）などが良く知られている。
【０００４】
ストリーム暗号には多表を用いるビジネル暗号や１回限りの使い捨ての鍵を用いるバーナム暗号等が知られている（例えば非特許文献１を参照）。よって、画像データ全体の暗号化による著作権保護は上記の共通鍵暗号方式のうちの一つを用いることにより容易に実現できる。すなわち、送信者と受信者で暗号鍵を共有し、送信者が暗号化した画像データを受信者がその鍵を用いて復号すればよい。
【０００５】
一方、画像データを圧縮する高能率符号化の１方式としては、静止画像の国際標準符号化方式としてＩＳＯとＩＴＵ−Ｔにより勧告されたＪＰＥＧ方式が広く用いられている。このＪＰＥＧ方式は離散コサイン変換を基本とした方式であるが、圧縮率を高めるとブロック状の歪みが生じるという問題点があった。そこで、画像のさらなる高解像度化要求と、より高い圧縮率を実現するために先の離散コサイン変換とは異なる変換方式として離散ウェーブレット変換を利用した符号化方式が提案され、現在ＪＰＥＧ２０００として標準化が進んでいる。
【０００６】
図１はＪＰＥＧ２０００エンコーダのブロック図である。入力画像はまずウェーブレット変換（ＤＷＴ）によりサブバンド分解され（１０１）、その後量子化される（１０２）。図２は分解レベルが２のとき（解像度レベル数３）のサブバンド分解の例であり、ｌｅｖｅｌ０からｌｅｖｅｌ２までの解像度レベルが存在する。このとき、小さい解像度レベルに属する係数ほど低い周波数の情報を含むことになる。量子化されたウェーブレット係数は、ＥＢＣＯＴアルゴリズムにより符号化される。以下ではこのアルゴリズムを、コードプロック分割（１０３）、係数モデリング（１０４）、算術符号化（１０５）とレート制御（１０６）、レイヤ形成（１０７）、パケット生成（１０８）の五つの部分に分けて説明する。
【０００７】
（１）  コードプロック分割
各サブバンドは、コードプロックと呼ばれる正方形のブロック（例えば６４ｘ６４など）に分割される。これらのコードブロックは、それぞれ独立に符号化される。
【０００８】
（２）  係数モデリング
各コードブロックのウェーブレット係数列に対し、ピットプレーンに基づく係数モデリングを行う。これにより、係数ビットが重要度順に並んだエンペデッド符号列を生成する。ＭＳＢからＬＳＢまでのすべてのビットプレーンは、それぞれ文脈に応じて三つのサブビットプレーン（パス）分解される。各サブビットブレーンの境界は打切り点（Ｔｒｕｎｃａｔｉｏｎ  ｐｏｉｎｔ）と呼ばれ、後でデータを切り捨てる際の最小の分割単位となる。
【０００９】
（３）  算術符号化とレート制御
係数モデリングにより生成されたエンベデッド符号列に対して、適応算術符号化を施す。その後、サブビットブレーンの境界である打切り点を単位として、算術符号列を適宜打ち切ることにより、目的のビットレートを得る。
【００１０】
（４）  レイヤ形成
複数の画質で順次表示する必要がある場合、すなわちＳＮＲスケーラブルが必要であるとき、次に符号のレイヤ形成を行う。各レイヤはそれぞれ、各コードブロックのエンベデノド符号の一部を含む。高いレイヤほど画像の再生にあたって重要な成分を含むことになる。
【００１１】
（５）  パケット生成
各レイヤを複数のボディと呼ばれる単位に分解し、それぞれにヘッダ情報を付加してパケットを生成する。ここで各ボディは、それぞれ対応する解像度レベルの情報をもつ。したがって生成されるパケットの総数は、レイヤ数と解像度レベル数の積となる。ヘッダ情報には、各コードブロックの算術符号列の長さ、サブビットブレーンの個数などの情報が含まれる。図４のように、すべてのパケットをまとめ、グローバルヘッダ情報を付加したものが、最終的なＪＰＥＧ２０００の符号列となる。ただし、以上のような各種ヘッダ情報やデータ分割の最小単位であるサブビットプレーンは、１バイトの整数倍のサイズとすることをＪＰＥＧ２０００では規定している。
【００１２】
【非特許文献１】
各暗号の詳細は池野、小山著「現代暗号理論」電子情報通信学会、１９８６．の第２章及び第４章
【００１３】
【発明が解決しようとする課題】
以上説明したように、ディジタル画像データにはセキュリティーの問題があり、画像全体の暗号化は前述のＤＥＳやＡＥＳなどの暗号方式を用いることにより解決される。しかし、この場合復号すると、画像全体の暗号化が復号され、部分的な保護はできない。例えば、高解像度部分のみ（図２のｌｅｖｅｌ１以上）を暗号化し、ｌｅｖｅｌ０はそのままにすることにより、低解像度のｌｅｖｅｌ０の画像は開示するが、全体である高解像度画像は保護することができる。ただし、この場合、暗号化する高解像度部分以外は通常のＪＰＥＧ２０００の符号列になっているので、高解像度部分の暗号化方式としてＤＥＳやＡＥＳをそのまま用いることはできない。
【００１４】
それは、ＪＰＥＧ２０００の符号列の部分的な暗号化にはマーカコードに関する制約が伴うためである。マーカコードは、ＪＰＥＧ２０００において特別な意味を保つ符号であり、暗号化により偽のマーカコードが生成されると、正常な再生が妨げられることがある。すなわち、マーカコードは図４に示す圧縮データ部（ボディ）においては、生成が禁止された禁止符号的な役割をもつ。
【００１５】
ＪＰＥＧ２０００を対象とした場合、マーカコードとはＦＦ９０ｈ−ＦＦＦＦｈの値を有するマーカおよびマーカセグメントコードを意味する。マーカとは定義情報を格納するコードである。これらは２バイトで表され、先頭の１バイトはＦＦｈである。さらに用途に応じてＦＦｘｘｈという２バイトデータとしてマーカは表現される。一方、マーカセグメントは１つのマーカとそれに追随するパラメータとからなる。４種類のマーカ、ＳＯＣ（ＦＦ４Ｆｈ：ｓｔａｒｔ  ｏｆ  ｃｏｄｅ−ｓｔｒｅａｍ）、  ＥＯＣ（ＦＦＤ９ｈ：ｅｎｄ  ｏｆ  ｃｏｄｅ−ｓｔｒｅａｍ）、  ＳＯＤ（ＦＦ９３ｈ：ｓｔａｒｔ  ｏｆ  ｄａｔａ）、ＥＰＨ（ＦＦ９２ｈ：ｅｎｄ  ｏｆ  ｐａｃｋｅｔ  ｈｅａｄｅｒ）のみが独立したマーカであり、その他のマーカは、すべてマーカセグメントの一部である。以後、マーカおよびマーカセグメントをまとめてマーカとよぶ。ＪＰＥＧ２０００では、特にＦＦ９０ｈ−ＦＦＦＦｈの範囲のマーカに二つの特別な意味を持たせている。一つは、これらのマーカがコードストリームの区切りを意味することである。これにより、パケットおよびバケットヘッダを位置づけることが可能となる。他の一つは、これらのマーカが圧縮データ自身〈図４のボディ〉の中に存在しないことである。すなわち、ＪＰＥＧ２０００エンコーダはこれらのコードを発生しないように設計されている。よって、上記の部分的なＪＰＥＧ２０００データの暗号化において回避したいのは、この２バイトを単位とするＦＦ９０ｈ―ＦＦＦＦｈのマーカコードの生成である。
【００１６】
本発明は以上の問題に鑑みてなされたものであり、ＤＥＳやＡＥＳなどの公知の暗号方式を用いて、禁止符号のマーカコードを発生させない技術を提供することを目的とする。
【００１７】
【課題を解決するための手段】
本発明の目的を達成するために、例えば本発明の情報処理方法は以下の構成を備える。
【００１８】
すなわち、対象データを所定のサイズ毎に暗号化を行う暗号化工程と、
前記暗号化工程で暗号化された結果が所定の禁止符号であるか否かを判定する判定工程と、
前記暗号化工程で暗号化された結果が所定の禁止符号である場合に、当該暗号化された結果のデータを再暗号化する再暗号化工程と
を備えることを特徴とする。
【００１９】
【発明の実施の形態】
以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。
【００２０】
［第１の実施形態］
まず、用いる暗号方式としてＤＥＳを例として考える。ＤＥＳの基本的な動作は、
１  データを６４ビット長のブロックに分割する
２  各ブロックを５６ビット長のカギで暗号化する
の２つだが、ブロックとカギの使い方によってＥＣＢ、ＣＢ、ＯＦＢ、ＣＦＢの４つのモードがある。
【００２１】
ＤＥＳの基本型と言えるモードがＥＣＢ（Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｄｅ  Ｂｌｏｃｋ）である。上で述べた基本動作がそのまま行われる。つまり、データをブロックに分割した後、各ブロックを秘密カギで暗号化し、それらのブロックを元の順番でつなぎ合わせる。ＣＢＣ（Ｃｉｐｈｅｒ  Ｂｌｏｃｋ  Ｃｈａｉｎｉｎｇ）は、暗号化された前ブロックと、まだ暗号化されていない現在のブロックとのＸＯＲ（排他的論理和）をとり、これを秘密カギで暗号化するモード。“Ｃｈａｉｎｉｎｇ（連鎖）”という言葉が使われているように、各ブロックの暗号化が「連鎖的」に進められる。一方ＣＦＢ（Ｃｉｐｈｅｒ  Ｆｅｅｄｂａｃｋ）は、前ブロックの暗号化結果の１部（ｍビット）が次ブロックのｍビットと  ＸＯＲ  をとる値としてフィードバックされるモードである。したがってＣＢＣとＣＦＢでは、ブロック内で発生したビット・エラーが、以降のブロックの暗号化に影響を与えることになる。ＯＦＢ（Ｏｕｔｐｕｔ  Ｆｅｅｄｂａｃｋ）は、ある初期値を第１ブロックとして暗号文を生成し、その暗号文（の１部）を次の暗号文の入力として用いると同時にその１部（ｍビット）を乱数として対応するｍビットのデータとＸＯＲ  をとるモードである。この仕組みによりブロック内のビット・エラーが、ほかのブロックを暗号化する際に影響を及ぼさない。“Ｏｕｔｐｕｔ  Ｆｅｅｄｂａｃｋ（出力フィードバック）”という名前は、前ブロックで生成された暗号文出力を次ブロックで使用する暗号文出力を生成させるためのパラメータとして、フィードバックさせることに由来している。上記各モードにおいて、ｍビットを適切に選択することにより、任意のビット長毎の暗号化を実現できる。
【００２２】
また、図３は本実施形態を含む以下全ての実施形態を実現するコンピュータ（情報処理装置）の基本構成を示すブロック図である。尚、透かし情報処理装置の実現に当たっては、図３に示される全ての機能を使用することは必須ではない。
【００２３】
図３において、コンピュータ３０１は、一般に普及しているパーソナルコンピュータであり、スキャナ等の画像入力装置３１７から読み取られた画像を入力し、編集や保管を行うことが可能である。また、画像入力装置３１７で得られた画像をプリンタ３１６から印刷させることができる。尚、ユーザからの各種指示等は、マウス３１３、キーボード３１４からの入力操作により行われる。
【００２４】
コンピュータ３０１の内部では、バス３０７により後述する各ブロックが接続され、種々のデータの受け渡しが可能である。図３において、ＭＰＵ３０２は、コンピュータ３０１内部の各ブロックの動作を制御し、あるいは内部に記憶されたプログラムを実行することができる。主記憶装置３０３は、ＭＰＵ３０２において行われる処理のために、一時的にプログラムや処理対象の画像データを格納しておく装置である。ハードディスク（ＨＤＤ）３０４は、主記憶装置３０３等に転送されるプログラムや画像データをあらかじめ格納したり、処理後の画像データを保存することのできる装置である。
【００２５】
スキャナインタフェース（Ｉ／Ｆ）３１５は、原稿やフィルム等を読み取って、画像データを生成するスキャナ３１７と接続され、スキャナ３１７で得られた画像データを入力することのできるＩ／Ｆである。プリンタインタフェース３０８は、画像データを印刷するプリンタ３１６と接続され、印刷する画像データをプリンタ３１６に送信することのできるＩ／Ｆである。
【００２６】
ＣＤドライブ３０９は、外部記憶媒体の一つであるＣＤ（ＣＤ−Ｒ／ＣＤ−ＲＷ）に記憶されたデータを読み込んだり、あるいは書き出すことができる装置である。ＦＤＤドライブ３１１は、ＣＤドライブ３０９と同様にＦＤＤからの読み込みや、ＦＤＤへの書き出しをすることができる装置である。ＤＶＤドライブ３１０は、ＦＤＤドライブ３１１と同様に、ＤＶＤからの読み込みや、ＤＶＤへの書き出しをすることができる装置である。尚、ＣＤ、ＦＤＤ、ＤＶＤ等に画像編集用のプログラム、あるいはプリンタドライバが記憶されている場合には、これらプログラムをＨＤＤ３０４上にインストールし、必要に応じて主記憶装置３０３に転送されるようになっている。
【００２７】
インタフェース（Ｉ／Ｆ）３１２は、マウス３１３やキーボード３１４からの入力指示を受け付けるために、これらと接続されるＩ／Ｆである。また、モニタ３０６は、透かし情報の抽出処理結果や処理過程を表示することのできる表示装置である。さらに、ビデオコントローラ３０５は、表示データをモニタ３０６に送信するための装置である。
【００２８】
尚、本発明は、複数の機器（例えば、ホストコンピュータ、インタフェース機器、リーダ、プリンタ等）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置等）に適用してもよい。
【００２９】
図５に暗号化処理に関するフローチャートを示す。このフローは図３に示すコンピュータ、特にマウス３１３やキーボード３１４からの入力指示により３０３の主記憶装置にロードしたプログラムを３０２のＭＰＵなどを用いて実行することによって実現できる。また、初期値としてｊ＝２とする。
【００３０】
まず、ＪＰＥＧ２０００  Ｓｔｒｅａｍ中の暗号化するｎバイトを定める（ステップＳ５０１）。ここではＦＦ９０ｈ−ＦＦＦＦｈまでのマーカコードが存在しない圧縮データ（図４のボディのデータ）の中の連続するｎバイトを想定する。この元となるＪＰＥＧ２０００Ｓｔｒｅａｍは３０４のハードディスクや３０９のＣＤドライブ、ＤＶＤドライブ３１０、ＦＤＤドライブ３１１などに接続された各記憶媒体にあらかじめ記憶されていてもよいし、３０３の主記憶装置にロードしたＪＰＥＧ２０００の圧縮プログラムを３０２のＭＰＵなどを用いて実行したものでもよいし、図３に不図示のネットワークを介して送られても良い。
【００３１】
次に、ｎバイトの先頭から２バイトを取出し、その２バイトを暗号化する（ステップＳ５０２）。この暗号化は前述したＤＥＳのＣＦＢやＯＦＢなどのモードを用いて実行できる。その暗号結果がＦＦ９０ｈ−ＦＦＦＦｈのマーカコード（禁止符号）であるかどうかを調べる（ステップＳ５０３）。禁止符号であれば、もう一度その暗号結果に対して暗号化処理を行うためにステップＳ５０２の処理に戻る。
【００３２】
次に、暗号結果が禁止符号でない場合、前に位置する暗号結果の後半１バイトと今回の暗号結果の前半１バイトをつなげて１つの符号（ここでは前連接符号と呼ぶ）として、それが禁止符号となっているかを調べる（ステップＳ５０４）。
【００３３】
その結果が禁止符号であれば、もう一度暗号化処理を行うためにステップＳ５０２の処理に戻る。これは、ＪＰＥＧ２０００  Ｓｔｒｅａｍの最小単位は１バイトであるので、前後に連接された形でも禁止符号が存在することを防ぐためである。ここでは、最初の２バイトであるので、前に位置する暗号結果がないので、禁止符号ではなく、次のステップＳ５０５に進む。次に、その２バイト目が最後のｎバイト目かどうかを調べる（ステップＳ５０５）。ｎバイトなら終了する。そうでない場合、その２バイト目が（ｎ−１）バイト目、すなわち残り１バイトであるかを調べる（ステップＳ５０６）。
【００３４】
残り１バイトであれば、ｊ＝１とする（ステップＳ５０７）。ここでは、ｎバイト目でも、（ｎ−１）バイト目でもないとして次の２バイトを取り出す（ステップＳ５０８）。その後、その２バイトに対してステップＳ５０２〜ステップＳ５０８の処理を繰り返す。例えば、ｎ＝４の場合、その２バイト目はｎである４バイト目にあたるためステップＳ５０５において終了する。また、ｎ＝５の場合、ステップＳＳ５０６において残り１バイトと判定されるのでｊ＝１として、次の５バイト目のみを取り出す（ステップＳ５０７）。
【００３５】
このとき、ステップＳ５０２においてその１バイトのみを暗号化する。この１バイトの暗号化は前述したＤＥＳのＣＦＢやＯＦＢなどのモードを用いて同様に実行できる。このとき、暗号結果は２バイトコードではないので、ステップＳ５０３において禁止符号とは認識されない。次に、前連接符号が禁止符号であるかどうかを調べる（ステップＳ５０４）。もし、前連接符号が禁止符号である場合、もう一度その暗号結果に対して暗号化処理を行うためにステップＳ５０２の処理に戻る。次に、そのバイトが最後のｎバイト目かどうかを調べる（ステップＳ５０５）。ここでは、ｎ＝５であるので処理を終了する。
【００３６】
次に、図６に復号処理に関するフローチャートを示す。このフローも図３に示す情報処理装置、特にマウス３１３やキーボード３１４からの入力指示により３０３の主記憶装置にロードしたプログラムを３０２のＭＰＵなどを用いて実行することによって実現できる。また、初期値としてｊ＝２、Ｂ＝１とする。
【００３７】
まず、ＪＰＥＧ２０００  Ｓｔｒｅａｍ中復号するｎバイトを定める（ステップＳ６０１）。この復号部分は図５のに示した暗号化処理によって暗号化された部分であり、その部分はあらかじめ図６の復号処理の前に知られているとする。この復号されるＪＰＥＧ２０００  Ｓｔｒｅａｍは３０４のハードディスクや３０９のＣＤドライブ、ＤＶＤドライブ３１０、ＦＤＤドライブ３１１などに接続された各記憶媒体にあらかじめ記憶されていてもよいし、３０３の主記憶装置にロードしたＪＰＥＧ２０００の圧縮プログラムと図５の暗号化プログラムを３０２のＭＰＵなどを用いて実行したものでもよいし、図３に不図示のネットワークを介して送られても良い。
【００３８】
次に、前の復号前の２バイトの後半１バイトがＦＦであるかを調べる（ステップＳ６０２）。ＦＦであればＢ＝ＦＦとする（ステップＳ６０３）。ここでは、最初の２バイトであるので前の復号前の値はなく、Ｂ＝０のままである。次に、取り出した２バイトを復号する（ステップＳ６０４）。この復号は前述したＤＥＳのＣＦＢやＯＦＢなどのモードを用いて実行できる。その復号結果がＦＦ９０ｈ−ＦＦＦＦｈのマーカコード（禁止符号）であれば（ステップＳ６０５）、もう一度その復号結果に対して復号処理を行うためにステップＳ６０４の処理に戻る。
【００３９】
これは、最終的な復号結果である圧縮データ（図４のボディ）は禁止符号を持たず、図５の暗号化処理において、暗号結果が禁止符号であれば多重暗号化されているので、復号結果が禁止符号であれば暗号結果であり、再び復号する必要があるためである。次に、復号結果が禁止符号でない場合、その復号結果の前半１バイトの前にＢを連接させた符号（ここではＢ連接符号と呼ぶ）が禁止符号であるかを調べる（ステップＳ６０６）。ここでは、Ｂ＝０であるので禁止符号ではなく、ステップＳ６０７に進む。
【００４０】
次に、その２バイト目が最後のｎバイト目かどうかを調べる（ステップＳ６０７）。ｎバイトなら終了する。そうでない場合、その２バイト目が（ｎ−１）バイト目、すなわち残り１バイトであるかを調べる（ステップＳ６０８）。残り１バイトであれば、ｊ＝１とする（ステップＳ６０９）。ここでは、ｎバイト目でも、（ｎ−１）バイト目でもないとして次の２バイトを取り出し（ステップＳ６１０）、Ｂ＝０とする（ステップＳ６１１）。２順目の処理のステップＳ６０２において、前順における復号前の後半１バイトがＦＦと判定された場合を考える。これは、最初に保存されている暗号化されたＪＰＥＧ２０００  Ｓｔｒｅａｍを見れば確認できる。よって、Ｂ＝ＦＦとなる（ステップＳ６０３）。
【００４１】
次に、取り出した２バイトを復号する（ステップＳ６０４）。その復号結果がＦＦ９０ｈ−ＦＦＦＦｈのマーカコード（禁止符号）であれば（ステップＳ６０５）、もう一度その復号結果に対して復号処理を行うためにステップＳ６０４の処理に戻る。次に、復号結果が禁止符号でない場合、その復号結果の前半１バイトの前にＢを連接させた符号（ここではＢ連接符号と呼ぶ）が禁止符号であるかを調べる（ステップＳ６０６）。
【００４２】
このＢ連接符号が禁止符号である場合、もう一度その復号結果に対して復号処理を行うために６０４の処理に戻る。これは、ＪＰＥＧ２０００  Ｓｔｒｅａｍの最小単位は１バイトであるので、前後に連接された形でも禁止符号が存在することを防ぐためである。次に、その２バイト目が最後のｎバイト目かどうかを調べる（ステップＳ６０７）。ｎバイトなら終了する。そうでない場合、その２バイト目がｎ−１バイト目、すなわち残り１バイトであるかを調べる（ステップＳ６０８）。
【００４３】
残り１バイトであれば、ｊ＝１とする（ステップＳ６０９）。例えば、ｎ＝４の場合、その２バイト目はｎである４バイト目にあたるため６０７で終了する。また、ｎ＝５の場合、６０８において残り１バイトと判定されるのでｊ＝１として（ステップＳ６０９）、次の５バイト目のみを取り出す（ステップＳ６１０）。その後、ステップＳ６０２からステップＳ６０６の処理を繰り返すが、ステップＳ６０７においてｎ＝５と判定され終了する。
【００４４】
［第２の実施形態］
第１の実施形態では、暗号化および復号するｎバイトが連続している場合を示した。本実施形態では、暗号化および復号するｎバイトが連続しない場合を示す。このような場合は、図４に示すボディの特定のバイトのみを暗号化・復号する場合、または暗号化・復号にかかる処理量を削減するためにｍバイト置きに暗号化・復号する場合などが考えられる。
【００４５】
図７に暗号化処理に関するフローチャートを示す。このフローは図３に示す情報処理装置、特にマウス３１３やキーボード３１４からの入力指示により３０３の主記憶装置にロードしたプログラムを３０２のＭＰＵなどを用いて実行することによって実現できる。
【００４６】
まず、ＪＰＥＧ２０００  Ｓｔｒｅａｍ中暗号化するｎバイトを定める（ステップＳ７０１）。ここではＦＦ９０ｈ−ＦＦＦＦｈまでのマーカコードが存在しない圧縮データ（図４のボディのデータ）の中のｎバイトを想定する。この元となるＪＰＥＧ２０００  Ｓｔｒｅａｍは３０４のハードディスクや３０９のＣＤドライブ、ＤＶＤドライブ３１０、ＦＤＤドライブ３１１などに接続された各記憶媒体にあらかじめ記憶されていてもよいし、３０３の主記憶装置にロードしたＪＰＥＧ２０００の圧縮プログラムを３０２のＭＰＵなどを用いて実行したものでもよいし、図３に不図示のネットワークを介して送られても良い。
【００４７】
次に、ｎバイトから１バイトを取出し、その１バイトを暗号化する（ステップＳ７０２）。この暗号化は前述したＤＥＳのＣＦＢやＯＦＢなどのモードを用いて実行できる。その暗号結果の前に位置する暗号化されていないバイトとの連接符号（前連接符号）がＦＦ９０ｈ−ＦＦＦＦｈのマーカコード（禁止符号）であるかどうかを調べる（ステップＳ７０３）。
【００４８】
禁止符号であれば、もう一度その暗号結果に対して暗号化処理を行うためにステップＳ７０２の処理に戻る。次に、その暗号結果の後に位置する暗号化されていないバイトとの連接符号（後連接符号）が禁止符号であるかどうかを調べる（ステップＳ７０４）。禁止符号であれば、もう一度その暗号結果に対して暗号化処理を行うためにステップＳ７０２の処理に戻る。次に、そのバイトが最後のｎバイト目かどうかを調べる（ステップＳ７０５）。ｎバイトなら終了する。そうでない場合、次の１バイトに進む（ステップＳ７０６）。その後、ステップＳ７０２からステップＳ７０６の処理を繰り返し、ｎバイトの処理が終了すれば終わる。
【００４９】
次に、図８に復号処理に関するフローチャートを示す。このフローも図３に示す情報処理装置、特にマウス３１３やキーボード３１４からの入力指示により３０３の主記憶装置にロードしたプログラムを３０２のＭＰＵなどを用いて実行することによって実現できる。
【００５０】
まず、ＪＰＥＧ２０００  Ｓｔｒｅａｍ中復号するｎバイトを定める（ステップＳ８０１）。この復号部分は図７の暗号化処理によって暗号化された部分であり、その部分はあらかじめ図８の復号処理の前に知られているとする。この復号されるＪＰＥＧ２０００Ｓｔｒｅａｍは３０４のハードディスクや３０９のＣＤドライブ、ＤＶＤドライブ３１０、ＦＤＤドライブ３１１などに接続された各記憶媒体にあらかじめ記憶されていてもよいし、３０３の主記憶装置にロードしたＪＰＥＧ２０００の圧縮プログラムと図５の暗号化プログラムを３０２のＭＰＵなどを用いて実行したものでもよいし、図３に不図示のネットワークを介して送られても良い。
【００５１】
次に、取り出した１バイトを復号する（ステップＳ８０２）。この復号は前述したＤＥＳのＣＦＢやＯＦＢなどのモードを用いて実行できる。その復号結果の前に位置する暗号化されていないバイトとの連接符号（前連接符号）がＦＦ９０ｈ−ＦＦＦＦｈのマーカコード（禁止符号）であるかを調べる（ステップＳ８０３）。禁止符号であれば、もう一度その復号結果に対して復号処理を行うためにステップＳ８０２の処理に戻る。次に、その復号結果の後に位置する暗号化されていないバイトとの連接符号（後連接符号）が禁止符号であるかどうかを調べる（ステップＳ８０４）。禁止符号であれば、もう一度その復号結果に対して復号処理を行うためにステップＳ８０２の処理に戻る。次に、そのバイトが最後のｎバイト目かどうかを調べる（ステップＳ８０５）。ｎバイトなら終了する。そうでない場合、次の１バイトに進む（ステップＳ８０６）。その後、ステップＳ８０２からステップＳ８０６の処理を繰り返し、ｎバイトの処理が終了すれば終わる。
【００５２】
［第３の実施形態］
上述の実施形態ではＤＥＳを例として説明したが、本発明はＤＥＳに限らずＡＥＳやＭＩＳＴＹ、Ｃａｍｅｌｌｉａなど通常の共通鍵暗号を用いることができるのは明らかである。この場合、本発明の暗号化・復号手法の強度は用いた暗号方式に応じた安全性をもつ。
【００５３】
また、暗号化モードもＣＦＢやＯＦＢに限らず任意長のデータを暗号化できる手法であれば、それらに限定されない。
【００５４】
また、上述の実施形態では禁止符号はＦＦ９０ｈ−ＦＦＦＦｈのマーカコードとして説明したが、禁止符号はそれらを含む符号またはＦＦのみなどそれらの１部を含む符号であっても良い。
【００５５】
また、上述の実施形態ではＪＰＥＧ２０００を対象に禁止符号はＦＦ９０ｈ−ＦＦＦＦｈのマーカコードとして説明したが、他の符号化標準を対象とするときはそれによって規定される禁止符号に対して、同様の原理で対応できることは明らかである。
【００５６】
また、上述の実施形態では１バイトまたは２バイトを単位として説明したが、２バイト以上の場合に対しても適用可能である。ただし、禁止符号が２バイトで暗号化・復号単位が２バイト以上の場合、図５、６の５０３、６０５を暗号化・復号結果の中に禁止符号が含まれるかどうか調べるようにする必要がある。
【００５７】
［第４の実施形態］
本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体（または記憶媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【００５８】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００５９】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００６０】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【００６１】
本発明の実施態様の例を以下に示す。
【００６２】
［実施態様１］  対象データを所定のサイズ毎に暗号化を行う暗号化手段と、
前記暗号化手段によって暗号化された結果が所定の禁止符号であるか否かを判定する判定手段と、
前記暗号化手段によって暗号化された結果が所定の禁止符号である場合に、当該暗号化された結果のデータを再暗号化する再暗号化手段と
を備えることを特徴とする情報処理装置。
【００６３】
［実施態様２］  対象データを所定のサイズ毎に暗号化を行う暗号化手段と、
前記暗号化手段によって暗号化された第１の結果が所定の禁止符号であるか否かを判定する第１の判定手段と、
前記暗号化手段が前記第１の結果の従前に暗号化した第２の結果と、前記第１の結果との連結結果が所定の禁止符号であるか否かを判定する第２の判定手段と、
前記第１の判定手段、前記第２の判定手段のいずれかが所定の禁止符号であると判定した場合、前記第１の結果のデータを再暗号化する再暗号化手段と、
を備えることを特徴とする情報処理装置。
【００６４】
［実施態様３］  対象データを所定のサイズ毎に特定データについて暗号化を行う暗号化手段と、
前記暗号化手段によって暗号化された結果と、前記特定データの前または後のデータとの連結結果が所定の禁止符号であるか否かを判定する判定手段と、
前記判定手段が所定の禁止符号であると判定した場合、前記暗号化された結果のデータを再暗号化する再暗号化手段と、
を備えることを特徴とする情報処理装置。
【００６５】
［実施態様４］  前記暗号化手段、前記再暗号化手段は、ＤＥＳやＡＥＳなどを含む共通鍵暗号方式に従って暗号化を行うことを特徴とする実施態様１乃至３の何れか１項に記載の情報処理装置。
【００６６】
［実施態様５］  所定の禁止符号は、ＪＰＥＧ２０００におけるＦＦ９０Ｈ−ＦＦＦＦｈのマーカコードの一部を含む符号であることを特徴とする実施態様１乃至３の何れか１項に記載の情報処理装置。
【００６７】
［実施態様６］  暗号化された対象データを所定のサイズ毎に復号する復号手段と、
前記復号手段が注目データを復号することで得られる復号結果が所定の禁止符号であるか否かを判定する判定手段と、
前記判定手段が所定の禁止符号であると判定した場合、前記復号結果を再復号する再復号手段と、
を備えることを特徴とする情報処理装置。
【００６８】
［実施態様７］  暗号化された対象データを所定のサイズ毎に復号する復号手段と、
前記復号手段が注目データを復号することで得られる復号結果が所定の禁止符号であるか否かを判定する第１の判定手段と、
前記注目データの従前に復号対象であったデータに応じて変化するデータと、前記注目データとの連結結果が所定の禁止符号であるか否かを判定する第２の判定手段と
前記第１の判定手段、前記第２の判定手段のいずれかが所定の禁止符号であると判定した場合、前記復号結果を再復号する再復号手段と、
を備えることを特徴とする情報処理装置。
【００６９】
［実施態様８］  暗号化された対象データを所定のサイズ毎に特定データについて復号する復号手段と、
前記特定データの復号結果と、当該特定データの前または後のデータとの連結結果が所定の禁止符号であるか否かを判定する判定手段と
前記判定手段が所定の禁止符号であると判定した場合、前記復号結果を再復号する再復号手段と、
を備えることを特徴とする情報処理装置。
【００７０】
［実施態様９］  前記復号手段、前記再復号手段は、ＤＥＳやＡＥＳなどを含む共通鍵暗号方式に従って復号を行うことを特徴とする実施態様６乃至８の何れか１項に記載の情報処理装置。
【００７１】
［実施態様１０］  所定の禁止符号は、ＪＰＥＧ２０００におけるＦＦ９０Ｈ−ＦＦＦＦｈのマーカコードの一部を含む符号であることを特徴とする実施態様６乃至８の何れか１項に記載の情報処理装置。
【００７２】
［実施態様１１］  対象データを所定のサイズ毎に暗号化を行う暗号化工程と、
前記暗号化工程で暗号化された結果が所定の禁止符号であるか否かを判定する判定工程と、
前記暗号化工程で暗号化された結果が所定の禁止符号である場合に、当該暗号化された結果のデータを再暗号化する再暗号化工程と
を備えることを特徴とする情報処理方法。
【００７３】
［実施態様１２］  対象データを所定のサイズ毎に暗号化を行う暗号化工程と、
前記暗号化工程で暗号化された第１の結果が所定の禁止符号であるか否かを判定する第１の判定工程と、
前記暗号化工程で前記第１の結果の従前に暗号化した第２の結果と、前記第１の結果との連結結果が所定の禁止符号であるか否かを判定する第２の判定工程と、
前記第１の判定工程、前記第２の判定工程のいずれかで所定の禁止符号であると判定した場合、前記第１の結果のデータを再暗号化する再暗号化工程と
を備えることを特徴とする情報処理方法。
【００７４】
［実施態様１３］  対象データを所定のサイズ毎に特定データについて暗号化を行う暗号化工程と、
前記暗号化工程で暗号化された結果と、前記特定データの前または後のデータとの連結結果が所定の禁止符号であるか否かを判定する判定工程と、
前記判定工程で所定の禁止符号であると判定した場合、前記暗号化された結果のデータを再暗号化する再暗号化工程と
を備えることを特徴とする情報処理方法。
【００７５】
［実施態様１４］  暗号化された対象データを所定のサイズ毎に復号する復号工程と、
前記復号工程で注目データを復号することで得られる復号結果が所定の禁止符号であるか否かを判定する判定工程と、
前記判定工程で所定の禁止符号であると判定した場合、前記復号結果を再復号する再復号工程と
を備えることを特徴とする情報処理方法。
【００７６】
［実施態様１５］  暗号化された対象データを所定のサイズ毎に復号する復号工程と、
前記復号工程が注目データを復号することで得られる復号結果が所定の禁止符号であるか否かを判定する第１の判定工程と、
前記注目データの従前に復号対象であったデータに応じて変化するデータと、前記注目データとの連結結果が所定の禁止符号であるか否かを判定する第２の判定工程と
前記第１の判定工程、前記第２の判定工程のいずれかで所定の禁止符号であると判定した場合、前記復号結果を再復号する再復号工程と
を備えることを特徴とする情報処理方法。
【００７７】
［実施態様１６］  暗号化された対象データを所定のサイズ毎に特定データについて復号する復号工程と、
前記特定データの復号結果と、当該特定データの前または後のデータとの連結結果が所定の禁止符号であるか否かを判定する判定工程と
前記判定工程で所定の禁止符号であると判定した場合、前記復号結果を再復号する再復号工程と、
を備えることを特徴とする情報処理方法。
【００７８】
［実施態様１７］  コンピュータを実施態様１乃至１０の何れか１項に記載の情報処理装置として機能させることを特徴とするプログラム。
【００７９】
［実施態様１８］  コンピュータに実施態様１１乃至１６の何れか１項に記載の情報処理方法を実行させることを特徴とするプログラム。
【００８０】
［実施態様１９］  実施態様１７又は１８に記載のプログラムを格納するコンピュータ読み取り可能な記憶媒体。
【００８１】
【発明の効果】
以上の説明により、本発明によって、ＤＥＳやＡＥＳなどの公知の暗号方式を用いて、禁止符号のマーカコードを発生させない手法を実現できる。
【図面の簡単な説明】
【図１】ＪＰＥＧ２０００エンコーダのブロック図である。
【図２】ＪＰＥＧ２０００におけるＤＷＴによるサブバンド分解を説明する概要図である。
【図３】本発明の実施形態を実現するコンピュータ（情報処理装置）の基本構成を示すブロック図である。
【図４】ＪＰＥＧ２０００  Ｓｔｒｅａｍの構成を説明する概念図である。
【図５】本発明の第１の実施形態に係る暗号化処理に関するフローチャートである。
【図６】本発明の第１の実施形態に係る復号処理に関するフローチャートである。
【図７】本発明の第２の実施形態に係る暗号化処理に関するフローチャートである。
【図８】本発明の第２の実施形態に係る復号処理に関するフローチャートである。
【図１】
2004219669.tif 000003
【図２】
2004219669.tif 000004
【図３】
2004219669.tif 000005
【図４】
2004219669.tif 000006
【図５】
2004219669.tif 000007
【図６】
2004219669.tif 000008
【図７】
2004219669.tif 000009
【図８】
2004219669.tif 000010
【手続補正書】
【提出日】平成15年1月20日(2003.1.20)
【手続補正１】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2004219669.tif 000011
【図２】
2004219669.tif 000012
【図３】
2004219669.tif 000013
【図４】
2004219669.tif 000014
【図５】
2004219669.tif 000015
【図６】
2004219669.tif 000016
【図７】
2004219669.tif 000017
【図８】
2004219669.tif 000018