(57)【要約】【課題】処理負荷を低減できる暗号方法を提供することを目的とする。【解決手段】ステップＳ１にて、例えばＭＰＥＧフォーマットを構成するＩピクチャのバイトストリームを２つのバイトストリームに分割し、ステップＳ２にて、当該２つのバイトストリーム同士を排他的論理和演算処理し、ステップＳ３にて、分割回数が規定の回数を満たしているかを判断し、規定の回数を満たしていないときは、当該２つのバイトストリームのうちいずれか一方をさらにステップＳ１にて２つのバイトストリームに分割して、ステップＳ２にてさらに分割した当該２つのバイトストリーム同士を排他的論理和演算処理し、ステップＳ３にて、分割回数が規定の回数を満たしているときは、ステップＳ４にて、最もデータ量の少ないバイトストリームに暗号化処理を施す。【選択図】図２
2007336244.tif 000002
【特許請求の範囲】
【請求項１】
（ａ）所定のビット数を１単位として、ビットストリームを第１及び第２の前記ビットストリームに分割するステップと、
（ｂ）前記ステップ（ａ）の実行後、前記第２の前記ビットストリームを暗号化鍵とし、前記第１の前記ビットストリームに第１の暗号化処理を施して、第３の前記ビットストリームを生成するステップと、
（ｃ）前記暗号化鍵を前記ビットストリームとして、前記ステップ（ａ）および（ｂ）の一組をｍ（ｍ≧２）回繰り返して、前記第１及び前記第２の前記ビットストリームを更新し、前記第３の前記ビットストリームをｍ個求めるステップと、
（ｄ）前記ステップ（ｃ）の実行後、最新の前記第２の前記ビットストリームに対して、第２の暗号化処理を施すステップと
を実行する、暗号化方法。
【請求項２】
（ｅ）前記ｍ個の前記第３の前記ビットストリームのうち、少なくともいずれか一つの前記ビットストリームに第３の前記暗号化処理を施すステップを更に実行する、請求項１に記載の暗号化方法。
【請求項３】
前記ステップ（ａ）は、０と１が同数である２ｑ（ｑ≧１）個のビット列の各ビット値に応じて、前記ビットストリームを前記１単位毎に前記第１又は前記第２の前記ビットストリームに振り分けて、前記ビットストリームをいずれもｋｑ（ｋ：自然数）単位の前記第１及び前記第２の前記ビットストリームに分割する、請求項１又は２に記載の暗号化方法。
【請求項４】
第１の暗号化処理が施されている第３のビットストリームのｍ（ｍ≧２）個と、第２の暗号化処理が施されている第２のビットストリームとから成るビットストリームに対する復号化方法であって、
（イ）前記第２の前記ビットストリームに対して、前記第２の前記暗号化処理に対応する第２の復号化処理を施すステップと、
（ロ）前記ステップ（イ）の実行後、前記復号化された前記第２の前記ビットストリームを復号化鍵として、前記第３の前記ビットストリームに対して、前記第１の前記暗号化処理に対応する第１の復号化処理を施して、第１の前記ビットストリームを生成するステップと、
（ハ）前記ステップ（ロ）の実行後、所定のビット数を１単位として、前記第１の前記ビットストリームと、前記復号化された前記第２の前記ビットストリームとを連結するステップと、
（ニ）前記ステップ（ハ）で連結して生成したビットストリームを、前記復号化された前記第２の前記ビットストリームとして、前記ステップ（ロ）および（ハ）の一組をｍ回繰り返すステップと
を実行する、復号化方法。
【請求項５】
前記第３の前記ビットストリームのうち、少なくともいずれかのビットストリームは第３の暗号化処理が施されており、
（ホ）前記ステップ（ロ）に先立ち、前記第３の前記暗号化処理が施されている前記第３の前記ビットストリームに対して、前記第３の前記暗号化処理に対応する第３の復号化処理を施すステップを更に実行する、請求項４に記載の復号化方法。
【請求項６】
前記ステップ（ハ）は、０と１が同数である２ｑ（ｑ≧１）個のビット列の各ビット値に応じて、前記第１又は前記第２の前記ビットストリームから前記１単位毎にデータを取り出して、前記第１及び前記第２の前記ビットストリームを連結する、請求項４又は５に記載の復号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号化方法および復号化方法に関し、特にビットストリームを分割して暗号化する技術に関する。
【背景技術】
【０００２】
圧縮処理された画像のビットストリームへの暗号適用方式として、ＶＥＡ(Video Encryption Algorithm)が非特許文献１に開示されている。非特許文献１に記載の技術では、ＭＰＥＧ圧縮された動画像情報のＩピクチャを扱う。Ｉピクチャを構成するビットストリームをバイト（ｂｙｔｅ）単位でａ1ａ2ａ3・・・ａ2n-1ａ2n（但し、ａiはバイトを表す）と表した場合に、以下の処理によりＩピクチャを暗号化している。なお、バイト単位で表現されるビットストリームをバイトストリームと呼ぶ。
【０００３】
（Ｐ１）バイトストリームを偶数リストａ2ａ4・・・ａ2nと奇数リストａ1ａ3・・・ａ2n-1に分割する。
（Ｐ２）偶数リストと奇数リストに対してビット単位で排他的論理和演算処理を行い、バイトストリームｃ1ｃ2ｃ3・・・ｃnを生成する。
（Ｐ３）暗号化関数Ｅを用いて偶数リストａ2ａ4・・・ａ2nを暗号化する。
（Ｐ４）バイトストリームｃ1ｃ2ｃ3・・・ｃnＥ（ａ2ａ4・・・ａ2n）を暗号結果として出力する。
【０００４】
従って、処理負荷の重い暗号化処理（Ｐ３）を施す情報量が全体の情報量の半分になり、装置への処理負荷を軽減することができる。
【０００５】
【非特許文献１】Lintian Qiao and Klara Nahrstedt、「A New Algorithm for MPEG Video Encryption」、In Proceedings of The First International Conference on Imaging Science, Systems, and Technology (CISST'97)、1997、p.21-29
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、装置の演算処理能力によっては、ステップＰ３における暗号化処理を施す情報量が全体の情報量の半分では不十分な場合がある。
【０００７】
そこで、本発明は、暗号化処理を施す情報量をさらに低減できる暗号化方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
第１の発明に係る暗号化方法は、（ａ）所定のビット数を１単位として、ビットストリームを第１及び第２の前記ビットストリームに分割するステップと、（ｂ）前記ステップ（ａ）の実行後、前記第２の前記ビットストリームを暗号化鍵とし、前記第１の前記ビットストリームに第１の暗号化処理を施して、第３の前記ビットストリームを生成するステップと、（ｃ）前記暗号化鍵を前記ビットストリームとして、前記ステップ（ａ）および（ｂ）の一組をｍ（ｍ≧２）回繰り返して、前記第１及び前記第２の前記ビットストリームを更新し、前記第３の前記ビットストリームをｍ個求めるステップと、（ｄ）前記ステップ（ｃ）の実行後、最新の前記第２の前記ビットストリームに対して、第２の暗号化処理を施すステップとを実行する。
【０００９】
第２の発明に係る暗号化方法は、第１の発明に係る暗号化方法であって、（ｅ）前記ｍ個の前記第３の前記ビットストリームのうち、少なくともいずれか一つの前記ビットストリームに第３の前記暗号化処理を施すステップを更に実行する。
【００１０】
第３の発明に係る暗号化方法は、第１又は第２の発明に係る暗号化方法であって、前記ステップ（ａ）は、０と１が同数である２ｑ（ｑ≧１）個のビット列の各ビット値に応じて、前記ビットストリームを前記１単位毎に前記第１又は前記第２の前記ビットストリームに振り分けて、前記ビットストリームをいずれもｋｑ（ｋ：整数）単位の前記第１及び前記第２の前記ビットストリームに分割する。
【００１１】
第４の発明に係る復号化方法は、第１の暗号化処理が施されている第３のビットストリームのｍ（ｍ≧２）個と、第２の暗号化処理が施されている第２のビットストリームとから成るビットストリームに対する復号化方法であって、（イ）前記第２の前記ビットストリームに対して、前記第２の前記暗号化処理に対応する第２の復号化処理を施すステップと、（ロ）前記ステップ（イ）の実行後、前記復号化された前記第２の前記ビットストリームを復号化鍵として、前記第３の前記ビットストリームに対して、前記第１の前記暗号化処理に対応する第１の復号化処理を施して、第１の前記ビットストリームを生成するステップと、（ハ）前記ステップ（ロ）の実行後、所定のビット数を１単位として、前記第１の前記ビットストリームと、前記復号化された前記第２の前記ビットストリームとを連結するステップと、（ニ）前記ステップ（ハ）で連結して生成したビットストリームを、前記復号化された前記第２の前記ビットストリームとして、前記ステップ（ロ）および（ハ）の一組をｍ回繰り返すステップとを実行する。
【００１２】
第５の発明に係る復号化方法は、第４の発明に係る復号化方法であって、前記第３の前記ビットストリームのうち、少なくともいずれかのビットストリームは第３の暗号化処理が施されており、（ホ）前記ステップ（ロ）に先立ち、前記第３の前記暗号化処理が施されている前記第３の前記ビットストリームに対して、前記第３の前記暗号化処理に対応する第３の復号化処理を施すステップを更に実行する。
【００１３】
第６の発明に係る復号化方法は、第４又は第５の発明に係る復号化方法であって、前記ステップ（ハ）は、０と１が同数である２ｑ（ｑ≧１）個のビット列の各ビット値に応じて、前記第１又は前記第２の前記ビットストリームから前記１単位毎にデータを取り出して、前記第１及び前記第２の前記ビットストリームを連結する。
【発明の効果】
【００１４】
第１の発明に係る暗号化方法によると、ビットストリームを分割して生成した第１及び第２のビットストリームのうち、さらに第２のビットストリームを分割する分割方法をｍ回繰り返して行い、ｍ個の第１のビットストリームには処理負荷の軽い第１の暗号化処理を施し、最後に分割生成された第２のビットストリームには第１の暗号化処理よりも処理負荷の重い第２の暗号化処理を施すことができるので、第２の暗号化処理を施す情報量を分割前の情報量に比べて低減することができ、全体として処理負荷を軽減することができる。また、本暗号化方法を実行する装置の演算処理能力に応じて、分割回数を任意に設定できるので、装置の演算処理能力を問うことなく、ビットストリームを暗号化することができる。
【００１５】
第２の発明に係る暗号化方法によると、少なくともいずれか一つの第３のビットストリームに第３の暗号化処理を施すので、暗号強度をさらに向上することができる。
【００１６】
第３の発明に係る暗号化方法によると、０と１が同数の中で、０と１をランダムに並べてビット列を構成できるので、第３者にとって予測しにくい規則を用いて、ビットストリームを第１及び第２ビットストリームに分割できる。従って、暗号強度をさらに向上することができる。
【００１７】
第４の発明に係る復号化方法によると、第１の発明に係る暗号化方法を用いて暗号化したビットストリームを適切に復号化できるとともに、第２の復号化処理を施す情報量を低減することができ、全体として処理負荷を軽減することができる。
【００１８】
第５の発明に係る復号化方法によると、第２の発明に係る暗号化方法を用いて暗号化したビットストリームを適切に復号化できる。
【００１９】
第６の発明に係る復号化方法によると、第３の発明に係る暗号化方法を用いて暗号化したビットストリームを適切に復号化できる。
【発明を実施するための最良の形態】
【００２０】
以下、ＭＰＥＧ圧縮された動画像情報のＩピクチャを対象として、本発明に係る実施の形態の暗号化方法について説明する。なお、本暗号化方法は、ＭＰＥＧ圧縮された動画像情報のＩピクチャに限らず、音声データ、文字データ等あらゆる情報データに適用可能である。なお、本実施の形態ではビットストリームをバイト単位で処理しているため、以下の説明では、バイトストリームとして説明する。
【００２１】
図１は、本実施の形態に係る暗号化方法を実現する暗号化装置の概略構成図を示している。本暗号化装置は、分割器１０１と、排他的論理和演算処理部１０２と、分割回数判断部１０３と、暗号化器１０４と、連結部１０５とを備えている。
【００２２】
分割器１０１は、入力されるバイトストリームを２つのバイトストリームに分割し、当該２つのバイトストリームを排他的論理和演算処理部１０２に出力する。
【００２３】
排他的論理和演算処理部１０２は、入力された２つのバイトストリーム同士を１ビット毎で排他的論理和演算処理し、入力されたいずれか一方のバイトストリームと、排他的論理和演算処理した結果とを分割回数判断部１０３に出力する。
【００２４】
分割回数判断部１０３は、分割器１０１から入力される分割回数が規定の回数を満たしているかどうかを判断する。なお、分割回数とは分割器１０１が実行したバッファストリームの分割回数のことである。分割回数が規定の回数を満たしていなければ、入力されるバイトストリームを分割器１０１に出力し、排他的論理和演算処理した結果を連結部１０５に出力する。分割回数が規定の回数を満たしていれば、分割回数判断部１０３は、入力されるバイトストリームを暗号化器１０４に出力し、排他的論理和演算処理した結果を連結部１０５に出力する。
【００２５】
暗号化器１０４は、入力されるバイトストリームに、例えばＡＥＳ（Advanced Encryption Standard）を用いて暗号化処理を施し、結果を連結部１０５に出力する。
【００２６】
連結部１０５は、分割回数判断部１０３から入力される排他的論理和演算処理した結果と、暗号化器１０４から入力される暗号化処理の結果とを、それぞれ入力された順番で連結する。
【００２７】
なお、分割器１０１、排他的論理和演算処理部１０２、分割回数判断部１０３、暗号化器１０４、連結部１０５の一部または全部は、ハードウェアで構成されていてもよく、これらの機能がＣＰＵなどを用いて実行するソフトウェアで実現されていてもよい。
【００２８】
続いて、本暗号化装置の動作について具体的に説明する。図２は、本実施の形態に係る暗号化方法の処理の流れを示すフローチャートである。以下、図２乃至図１２を参照して、本暗号化装置の動作について説明する。
【００２９】
図２において、まず、ステップＳ１にて、分割器１０１は、入力されたＩピクチャを構成するバイトストリームを、互いに等しいバイト数から成る２つのバイトストリームに分割する。なお、後述するように、ステップＳ１による分割は複数回実行されるので、入力されるバイトストリームのバイト数は２の累乗の整数倍となるように区分することが望ましい。
【００３０】
図３は、１回目のステップＳ１〜Ｓ３で実行される処理によるバイトストリームの流れを示す図であり、図４，５は、当該処理によるバイトストリームの模式図である。図４に示すように、分割器１０１は、Ｉピクチャを構成するバイトストリーム（ａ1ａ2・・・ａ2n-1ａ2n）１０（但し、ａi（ｉ＝１〜２ｎ）はバイトを表す）を、奇数番目のバイトを抽出したバイトストリーム（ａ1ａ3・・・ａ2n-3ａ2n-1）１１と偶数番目のバイトを抽出したバイトストリーム（ａ2ａ4・・・ａ2n-2ａ2n）２１とに分割する。すなわち、ステップＳ１では、偶数、奇数というように、バイトストリーム１０を構成するバイト単位のデータを交互に振り分けて、２つのバイトストリーム１１，２１に分割する。そして、図３に示すように、分割器１０１は、得られたバイトストリーム１１，２１を排他的論理和演算処理部１０２に出力し、分割回数を１回として、分割回数判断部１０３に出力する。
【００３１】
次に、ステップＳ２にて、図５に示すように、排他的論理和演算処理部１０２は、バイトストリーム１１とバイトストリーム２１を１ビット毎で排他的論理和演算処理し、バイトストリーム（ｃ1ｃ2・・・ｃn）３１（但し、ｃj（ｊ＝１〜ｎ）はバイトａ2j，ａ2j-1の排他的論理和となるバイトを表す）を生成する。この処理は、バイトストリーム２１を暗号化鍵として、バイトストリーム１１に暗号化処理を施していると見なすことができる。この暗号化処理（排他的論理和演算処理）は、例えばＡＥＳなどによる暗号化処理に比べて、非常に処理負荷が軽い。そして、図３に示すように、排他的論理和演算処理部１０２は、暗号化鍵としたバイトストリーム２１と、得られたバイトストリーム３１を分割回数判断部１０３に出力する。
【００３２】
次に、図２において、ステップＳ３にて、分割回数判断部１０３は、入力された分割回数が規定の回数（例えば、３回）を満たしているかを判断する。入力された分割回数は１回であり、規定の回数を満たしていないので、図３に示すように、分割回数判断部１０３は、暗号化鍵としたバイトストリーム２１を分割器１０１に出力し、バイトストリーム３１を連結部１０５に出力する。
【００３３】
図６は、２回目のステップＳ１〜Ｓ３で実行される処理によるバイトストリームの流れを示す図であり、図７，８は、当該処理によるバイトストリームの模式図である。図７において、２回目のステップＳ１により、分割器１０１は、１回前のステップＳ２で暗号化鍵としたバイトストリーム（ａ2ａ4・・・ａ2n-2ａ2n）２１をバイトストリーム（ａ2ａ6・・・ａ2n-6ａ2n-2）１２とバイトストリーム（ａ4ａ8・・・ａ2n-4ａ2n）２２とに分割する。そして、図６に示すように、分割器１０１は、得られたバイトストリーム１２，２２を排他的論理和演算処理部１０２に出力し、分割回数を２回として、分割回数判断部１０３に出力する。
【００３４】
次に、２回目のステップＳ２により、排他的論理和演算処理部１０２は、図８に示すように、バイトストリーム１２とバイトストリーム２２を１ビット毎で排他的論理和演算処理し、バイトストリーム（ｄ1ｄ2・・・ｄn/2）３２（但し、ｄs（ｓ＝１〜ｎ／２）はバイトａ4sー2，ａ4sの排他的論理和となるバイトを表す）を生成する。この処理は、バイトストリーム２２を暗号化鍵として、バイトストリーム１２に暗号化処理を施していると見なすことができる。そして、図６に示すように、排他的論理和演算処理部１０２は、暗号化鍵としたバイトストリーム２２と、得られたバイトストリーム３２を分割回数判断部１０３に出力する。
【００３５】
次に、図２において、ステップＳ３にて、分割回数判断部１０３は、入力された分割回数が規定の回数（３回）を満たしているかを判断する。入力された分割回数は２回であり、規定の回数（３回）に未だ至っていないので、もう一度ステップＳ１およびＳ２を実行する。即ち、図６に示すように、分割回数判断部１０３は、暗号化鍵としたバイトストリーム２２を分割器１０１に出力し、バイトストリーム３２を連結部１０５に出力する。
【００３６】
図９は、３回目のステップＳ１〜Ｓ３およびＳ４，Ｓ５で実行される処理によるバイトストリームの流れを示す図であり、図１０〜１２は、当該処理によるバイトストリームの模式図である。図１０において、３回目のステップＳ１により、分割器１０１は、１回前のステップＳ２で暗号化鍵としたバイトストリーム（ａ4ａ8・・・ａ2n-4ａ2n）２２をバイトストリーム（ａ4ａ12・・・ａ2n-12ａ2nー4）１３とバイトストリーム（ａ8ａ16・・・ａ2n-8ａ2n）２３とに分割する。そして、図９に示すように、分割器１０１は、得られたバイトストリーム１３，２３を排他的論理和演算処理部１０２に出力し、分割回数を３回として、分割回数判断部１０３に出力する。
【００３７】
次に、３回目のステップＳ２により、排他的論理和演算処理部１０２は、図１１に示すように、バイトストリーム１３とバイトストリーム２３を１ビット毎で排他的論理和演算処理し、バイトストリーム（ｅ1ｅ2・・・ｅn/4）３３（但し、ｅt（ｔ＝１〜ｎ／４）はバイトａ8tー4，ａ8tの排他的論理和となるバイトを表す）を生成する。この処理は、バイトストリーム２３を暗号化鍵として、バイトストリーム１３に暗号化処理を施していると見なすことができる。そして、排他的論理和演算処理部１０２は、暗号化鍵としたバイトストリーム２３と、得られたバイトストリーム３３を分割回数判断部１０３に出力する。
【００３８】
次に、図２において、ステップＳ３にて、分割回数判断部１０３は、入力された分割回数が規定の回数（３回）を満たしているかを判断する。入力された分割回数は３回であり、規定の回数（３回）に至ったので、図９に示すように、分割回数判断部１０３は、暗号化鍵としたバイトストリーム２３を暗号化器１０４に出力し、バイトストリーム３３を連結部１０５に出力する。
【００３９】
次に、図２において、ステップＳ４にて、暗号化器１０４は、３回目（最後）のステップＳ２で、暗号化鍵としたバイトストリーム２３に例えばＡＥＳによって暗号化関数Ｅを用いて暗号化処理を施し、バイトストリーム３０を得る。そして、図９に示すように、暗号化器１０４は、得られたバイトストリーム３０を連結部１０５に出力する。
【００４０】
次に、図２において、ステップＳ５にて、連結部１０５は、バイトストリーム３０と、ｎ／４バイトのバイトストリーム３３と、ｎ／２バイトのバイトストリーム３２と、ｎバイトのバイトストリーム３１を連結して、暗号文としてのバイトストリーム（暗号化データ）４を生成する（図１２も参照）。
【００４１】
従って、ＭＰＥＧ圧縮された動画像情報のＩピクチャ全体のバイト数２ｎのうち、２ｎ・７／８バイトが処理負荷の軽い暗号化処理（排他的論理和演算処理）対象であり、２ｎ／８バイトが処理負荷の重い暗号化処理対象（ＡＥＳなど）であるので、ＡＥＳなどの処理負荷の重い暗号化処理を施す情報量を低減することができ、本暗号化方法を適用した暗号化装置への処理負荷を軽減することができる。しかも、排他的論理和に用いる暗号化鍵（暗号化鍵と見なしたバイトストリーム）は実質的に使い捨て（one time pad）なので、暗号強度を向上することができる。
【００４２】
また、分割回数をｍ（ｍ＜２ｎ：ｍは２以上の整数）とすると、ＡＥＳなどの処理負荷の重い暗号化処理を施すバイト数は２ｎ／２mとなり、暗号化装置の演算処理能力に合わせて分割回数ｍを設定することで、暗号化装置の演算処理能力を問うことなくＩピクチャを暗号化することができる。なお、分割回数ｍを増やすほど、処理負荷の重い暗号化処理を施すバイト数は低減されるが、暗号強度の観点から、当該暗号化処理を施すビット数は１２８ビット（１６バイト）以上であることが望ましい。この場合、実用的なレベルの暗号強度を維持したまま、処理負荷を軽減することができる。
【００４３】
また、ステップＳ１による１回の分割でバイト数を半分ずつに分割し、その都度、排他的論理和演算処理をしているので、例えば、バイトストリームから一度に複数のバイトストリームに分割し、その各々同士を排他的論理和演算処理する場合に比べて、排他的論理和演算処理の実行回数を少なくすることができる。例えば、１２８ビットのバイトストリームを１６ビットのバイトストリームまで分割する場合、１２８ビットのバイトストリームを１６ビット毎に等分割すると、８つのバイトストリームに分割され、８つのバイトストリームを排他的論理和演算処理する必要があるため、結局、７回の排他的論理和演算処理が実行される。一方、本発明においては、１回目の分割による６４ビットのバイトストリーム同士と、２回目の分割による３２ビットのバイトストリーム同士と、３回目の分割による１６ビットのバイトストリーム同士の排他的論理和演算処理の３回ですむ。
【００４４】
次に、本暗号化方法により暗号化したバイトストリームを復号化する方法を説明する。図１３は、本復号化方法を実現する復号化装置の概略構成図である。本復号化装置は、分離部２０１と、復号化器２０２と、排他的論理和演算処理部２０３と、連結部２０４とを備えている。
【００４５】
分離部２０１は、暗号化されたバイトストリームを分割回数に基づいて複数のバイトストリームに分離して、復号化器２０２に出力する。復号化器２０２は、例えばＡＥＳなどの暗号化処理が施されたバイトストリームに対してＡＥＳなどの復号化処理を施す。排他的論理和演算処理部２０３は、２つのバイトストリームを１ビット毎に排他的論理和演算処理する。連結部２０４は、２つのバイトストリームを連結して１つのバイトストリームを生成する。なお、各部の具体的な説明は、以下の動作説明において述べる。
【００４６】
なお、分離部２０１と、復号化器２０２と、排他的論理和演算処理部２０３と、連結部２０４の一部または全部は、ハードウェアで構成されていてもよく、これらの機能がＣＰＵなどを用いて実行するソフトウェアで実現されていてもよい。
【００４７】
続いて、本復号化装置の具体的な動作を説明する。図１４〜図１６は、復号化処理におけるバイトストリームの流れを示す図である。図１４に示すように、まず、分離部２０１には暗号化処理で実行された分割回数と、暗号化されたバイトストリームが入力される。分離部２０１は、例えば入力されたバッファストリーム４を分割回数（３回）に基づいて、バイトストリーム３０，３１，３２，３３に分離して、復号化器２０２に出力し、分割回数を連結部１０５に出力する。復号化器２０２は、例えばＡＥＳによって暗号化関数Ｅに対応する復号化関数Ｅ-1を用いてバイトストリーム３０を復号化し、バイトストリーム２３を得る。そして、バイトストリーム２３，３１，３２，３３を排他的論理和演算処理部２０３に出力する。
【００４８】
排他的論理和演算処理部２０３は、バイトストリーム２３とバイトストリーム３３とを１ビット毎に排他的論理和演算処理してバイトストリーム１３を得て、バイトストリーム１３，２３を連結部２０４に出力する。連結部２０４は、バイトストリーム２３とバイトストリーム１３から交互にバイトを取り出し、取り出した順に連結してバイトストリーム２２を生成する。そして、連結回数は１回であり、分割回数（３回）に満たないので、連結部２０４は、バイトストリーム２２を排他的論理和演算処理部２０３に出力する。なお、連結回数とは、連結部２０４にて実行されるバイトストリームの連結の回数のことである。
【００４９】
図１５に示すように、排他的論理和演算処理部２０３は、当該バイトストリーム２２とバイトストリーム３２とを１ビット毎に排他的論理和演算処理してバイトストリーム１２を得て、バイトストリーム１２，２２を連結部２０４に出力する。連結部２０４はバイトストリーム１２とバイトストリーム２２から交互にバイトを取り出し、取り出した順に連結してバイトストリーム２１を生成する。そして、連結回数は２回であり、未だ分割回数（３回）に至っていないので、連結部２０４は、バイトストリーム２１を排他的論理和演算処理部２０３に出力する。
【００５０】
図１６に示すように、排他的論理和演算処理部２０３は、当該バイトストリーム２１とバイトストリーム３１とを１ビット毎に排他的論理和演算処理してバイトストリーム１１を得て、バイトストリーム１１，２１を連結部２０４に出力する。連結部２０４はバイトストリーム１１とバイトストリーム２１から交互にバイトを取り出し、取り出した順に連結してバイトストリーム１０を生成する。そして、連結回数は３回であり、分割回数（３回）に至ったので、バイトストリーム１０を復号データとして出力する。
【００５１】
なお、排他的論理和演算処理部２０３が実行する排他的論理和演算処理は復号化処理と見なすことができる。例えば、バイトストリーム２３，３３同士の排他的論理和演算処理は、バイトストリーム２３を復号化鍵として、バイトストリーム３３に復号化処理を施していると見なすことができる。そして、当該復号化処理（排他的論理和演算処理）は、ＡＥＳなどの復号化処理に比べて、非常に処理負荷が軽い。
【００５２】
このような復号化方法によると、本実施の形態に係る暗号化方法で暗号化されたバイトストリームを適切に復号化できるとともに、暗号化処理と同様、ＡＥＳなどの処理負荷が重い復号化処理を施すバイト数を低減できるので、本復号化方法を適用した装置への処理負荷を軽減することができる。
【００５３】
なお、分割回数は必ずしも連結部２０４に入力される必要がない。排他的論理和演算処理部２０３が、バイトストリーム１１，２１を連結部２０４に出力する際に、排他的論理和演算処理すべきバイトストリームはなく、バイトストリーム１１，２１が最後のバイトストリームであることを連結部２０４に通知しても良い。
【００５４】
続いて、本実施の形態に係る暗号化方法の第１の応用例について説明する。本実施の形態では、ステップＳ４にて、ＡＥＳなどの暗号化処理をバイトストリーム２３に施しているが、これに限らず、バイトストリーム２３以外にも施して構わない。例えば、３回目のステップＳ３にて、分割回数判断部１０３がバイトストリーム３３も暗号化器１０４に出力し、ステップＳ４において、暗号化器１０４がバイトストリーム２３にＡＥＳなどの暗号化処理を施した後、バイトストリーム２３への暗号化処理に用いた暗号化キーとは別の暗号化キーを用いて、バイトストリーム３３にもＡＥＳなどの暗号化処理を施しても構わない。また、バイトストリーム３１，３２，３３のうち、少なくともいずれかのバイトストリームにもＡＥＳなどの暗号化処理を施しても構わない。この場合、分割回数を適宜に設定することで、ＡＥＳなどの暗号化処理を施すバイト数を全体の数分の１に低減しながら（処理負荷を軽減しながら）、さらに暗号強度を向上することができる。
【００５５】
次に、第１の応用例に係る暗号化方法により暗号化したビットストリームを復号化する方法を説明する。例えば、第１の応用例に係る暗号化方法によってバイトストリーム３３にもＡＥＳなどの暗号化処理が施されているとすると、復号化器２０２が、バイトストリーム３０を例えばＡＥＳによって復号化関数Ｅ-1を用いて復号化してバイトストリーム２３を得る時に、ＡＥＳによる暗号化処理が施されたバイトストリーム３３も同様に復号化しておけばよい。その後の処理は、実施の形態に係る復号化処理と同一である。
【００５６】
このような復号化方法によると、第１の応用例に係る暗号化方法で暗号化されたバイトストリームを適切に復号化できるとともに、ＡＥＳなどの処理負荷の重い復号化処理を施すバイト数は全体の数分の１に低減されているので、処理負荷が軽減される。
【００５７】
続いて、本実施の形態に係る暗号化方法の第２の応用例について説明する。本実施の形態では、ステップＳ１にて、分割器１０１は、バイトストリームを構成するバイト単位のデータを交互に振り分けて、２つのバイトストリームに分割するとして説明したが、これに限らず、他の分割規則に基づいて分割しても構わない。例えば、バイトストリームのうち、８ｒ＋１，８ｒ＋３，８ｒ＋５，８ｒ＋６番目（ｒ：０以上の整数）のバイトを抽出したバイトストリームと、８ｒ＋２，８ｒ＋４，８ｒ＋７，８ｒ＋８番目のバイトを抽出したバイトストリームとに分割しても良い。
【００５８】
この場合、例えば、分割キーとして、”１０１０１１００”を設け、当該分割キーをバイトストリーム（ａ1ａ2・・・ａ2n-1ａ2n）１０に適用する。なお、分割キーを０と１が同数である２ｑ（ｑ≧１）個のビット列と見なすことができる。具体的には、分割キーにおける”１”がバイトストリームのｉ（＝１〜２ｎ）番目のａiに適用されると、ａiは第１バイトストリームに分類され、分割キーにおける”０”がバイトストリームのｉ番目のａiに適用されると、ａiは第２バイトストリームに分類される。バイトストリーム１０に当該分割キーをａ1から８バイト毎に繰り返し適用することで、当該バイトストリーム１０を、互いにｎバイト数の第１バイトストリームａ1ａ3ａ5ａ6・・・と第２バイトストリームａ2ａ4ａ7ａ8・・・とに分割することができる（図１７参照）。従って、バイトストリームに含まれるバイト単位の並びのうち、少なくとも一部を不規則に振り分けて分割することができる。
【００５９】
すなわち、バイト単位のデータを交互に振り分けるという分割規則では、第３者に予測される可能性が高いが、本分割キーのように不規則性を含む分割規則であれば、第３者に予測される可能性を低減することができる。分割キーを知らなければ、復号化時に適切にバイトストリーム同士を連結することができないため、さらに暗号強度を向上することができる。
【００６０】
なお、例えば、０と１が同数である２ｑビット数の分割キーがバイトストリーム１０にｋ（ｋ：自然数）回繰り返して適用されるとすると、いずれもｋｑバイト数の第１及び第２バイトストリームに分割される。
【００６１】
また、分割キーは乱数により発生させても良い。例えば、乱数により初めの４ビットを生成し、次に当該４ビットの”１””０”を反転させた４ビットを生成し、元の４ビットと反転した４ビットを連結して８ビットの分割キーを生成することができる。このとき、分割キーを構成する”１”と”０”が同数となるため、バイトストリームを互いに等しいバイト数のバイトストリームに２分割することができる。また、乱数により分割キーを発生させる場合は、さらに暗号強度を向上することができる。
【００６２】
なお、分割キーを例えば１２８ビット以上のビット数で構成し、当該分割キーをＡＥＳなどの暗号化処理用の暗号化キーとして用いても良い。この場合、暗号化キーと分割キーを併用することができるので、管理を容易にすることができる。
【００６３】
なお、第２の応用例に係る暗号化方法により暗号化したバイトストリームを復号化する方法は、連結部２０４が分割キーに基づいてバイトストリーム同士を連結するという点を除いて、本実施の形態に係る復号化方法と同一である。例えば、分割キー”１０１０１１００”に基づいて第１及び第２バイトストリームを連結してバイトストリーム１０を生成する場合を説明する（図１７参照）。分割キーのうち”１”は、第１のバイトストリームの先頭のバイトが取り出され、”０”は第２のバイトストリームの先頭のバイトが取り出され、それぞれが順に連結される。
【００６４】
具体的に、分割キーの最初のビットは”１”なので、第１バイトストリームの先頭のバイトａ1が取り出され、２番目のビットは”０”なので、第２バイトストリームの先頭のバイトａ2が取り出され、３番目のビットは”１”なので、第１バイトストリームの先頭のバイトａ3が取り出され（ａ1は既に取り出されているので先頭はａ3である）、この順でバイトが連結される。分割キーの全てのビットについて終了すると、再び分割キーの最初のビットに戻って繰り返し実行されて連結後のバイトストリーム１０が生成される。
【００６５】
このような復号化方法によると、第２の応用例に係る暗号化方法で暗号化されたバイトストリームを適切に復号化できるとともに、ＡＥＳなどの処理負荷の重い復号化処理を施すバイト数は全体の数分の１に低減されているので、処理負荷が軽減される。
【００６６】
なお、本発明においては、ビットストリームをバイト単位で分割しているが、これに限らずビット単位で分割しても構わないし、任意のビット数を有するブロック単位で分割しても構わない。
【図面の簡単な説明】
【００６７】
【図１】本実施の形態に係る暗号化方法を適用した暗号化装置の概略構成図である。
【図２】本実施の形態に係る暗号化方法を示すフローチャートである。
【図３】バイトストリームの流れを示す図である。
【図４】バイトストリームの分割を示す図である。
【図５】２つのバイトストリームの排他的論理和を示す図である。
【図６】バイトストリームの流れを示す図である。
【図７】バイトストリームの分割を示す図である。
【図８】２つのバイトストリームの排他的論理和を示す図である。
【図９】バイトストリームの流れを示す図である。
【図１０】バイトストリームの分割を示す図である。
【図１１】２つのバイトストリームの排他的論理和を示す図である。
【図１２】本実施の形態に係る暗号化方法を用いて暗号化したバイトストリームを示す図である。
【図１３】本実施の形態に係る復号化方法を適用した復号化装置の概略構成図である。
【図１４】バイトストリームの流れを示す図である。
【図１５】バイトストリームの流れを示す図である。
【図１６】バイトストリームの流れを示す図である。
【図１７】分割キーをバイトストリームに適用して２つのバイトストリームに分割する様子を示す模式図である。
【符号の説明】
【００６８】
１０，１１，２１，３１，１２，２２，３２，１３，２３，３３，３０  バイトストリーム
１０１  分割器
１０２，２０３  排他的論理和演算処理部
１０３  暗号化器
１０４  分割回数判断部
２０２  復号化器
２０４  連結部
Ｓ１〜Ｓ５  ステップ
【図１】
2007336244.tif 000003
【図２】
2007336244.tif 000004
【図３】
2007336244.tif 000005
【図４】
2007336244.tif 000006
【図５】
2007336244.tif 000007
【図６】
2007336244.tif 000008
【図７】
2007336244.tif 000009
【図８】
2007336244.tif 000010
【図９】
2007336244.tif 000011
【図１０】
2007336244.tif 000012
【図１１】
2007336244.tif 000013
【図１２】
2007336244.tif 000014
【図１３】
2007336244.tif 000015
【図１４】
2007336244.tif 000016
【図１５】
2007336244.tif 000017
【図１６】
2007336244.tif 000018
【図１７】
2007336244.tif 000019