(57)【要約】【課題】  配信される動画ストリーム等の特定のコンテンツにおける暗号化処理を高速に実現する。【解決手段】  部分暗号化装置は、暗号化処理により生成される暗号化用ビット列を、部分暗号化用ビット列と伸張関数への入力ビットとに分割し、伸張関数により決定される伸張規則に従い部分暗号化用ビット列を伸張し、当該伸張した部分暗号化列と被暗号化用ビット列を排他的論理和演算して暗号化する。【選択図】      図１
2006270343.tif 000002
【特許請求の範囲】
【請求項１】
特定のコンテンツの一部を暗号化する部分暗号化装置であって、
暗号化処理により生成される暗号化用ビット列を、部分暗号化用ビット列と、伸張関数入力ビット列とに分割する暗号化用ビット列分割部と、
前記伸張関数により決定される伸張規則に従い、前記部分暗号化用ビット列を伸張する部分暗号化ビット列伸張部と、
前記伸張した部分暗号化列と被暗号化用ビット列を排他的論理和演算して暗号化する暗号化処理部と、
を備えることを特徴とする部分暗号化装置。
【請求項２】
前記部分暗号化ビット列伸張部は、
前記伸張関数入力ビット列を、伸張処理ビット列と再利用定義ビット列とに分割し、前記伸張処理ビット列に関して任意のパートに分割して得られる各パートを数値に変換し、定義されたブロックＮに対してＮ×数値の長さを非暗号化領域決定ビット列として伸張する伸張関数生成部と、
前記再利用定義ビット列、非暗号化領域決定ビット列、および部分暗号化用ビット列とを入力とし、前記部分暗号化ビット列をブロック単位に分割し、前記再利用定義ビット列に従い、前回利用した部分暗号化用ビット列を再利用、もしくは次の部分暗号化用ビット列を利用して再利用処理を実行する部分暗号化ビット列伸張処理部と、
を備えることを特徴とする請求項１に記載の部分暗号化装置。
【請求項３】
特定のコンテンツの一部を暗号化する部分暗号化方法であって、
暗号化処理により生成される暗号化用ビット列を、部分暗号化用ビット列と、伸張関数入力ビット列とに分割するステップと、
前記伸張関数により決定される伸張規則に従い、前記部分暗号化用ビット列を伸張するステップと、
前記伸張した部分暗号化列と被暗号化用ビット列を排他的論理和演算して暗号化するステップと、
を有することを特徴とする部分暗号化方法。
【請求項４】
特定のコンテンツの一部を暗号化する部分暗号化装置に用いられるプログラムであって、
暗号化処理により生成される暗号化用ビット列を、部分暗号化用ビット列と、伸張関数入力ビット列とに分割する処理と、
前記伸張関数により決定される伸張規則に従い、前記部分暗号化用ビット列を伸張する処理と、
前記伸張した部分暗号化列と被暗号化用ビット列を排他的論理和演算して暗号化する処理と、
をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、配信される動画ストリーム等、特定のコンテンツの一部を暗号化する用途に用いて好適な、部分暗号化装置および方法ならびにプログラムに関する。
【背景技術】
【０００２】
近年、コンピュータを利用した様々なサービスが提供されている。多くのサービスにおいては、通信内容の秘匿を実現するために、暗号が利用される。暗号化方式として、最も一般的なものは、一つの鍵で暗号化・復号化を行う共通鍵暗号化方式であるが、この共通暗号化方式には、ブロック単位で暗号化していくブロック暗号と、１ビットずつ逐次暗号化していくストリーム暗号がある。
上記したストリーム暗号を生成するための方法および装置の一例が以下の特許文献に開示されている。
【特許文献１】特表２００２−５３６９１２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上記したストリーム暗号方式によれば、平文の全ての領域を暗号化するため高速処理は困難であった。従来は、全てのコンテンツに対し汎用的に使えることを目指しているが、動画配信のストリーム等、特定のコンテンツについては一部分のみ暗号化すれば十分なものもある。
【０００４】
本発明は上記事情に基づいてなされたものであり、ストリーム暗号化処理において、平文をランダムに部分暗号化することにより高速暗号化処理を実現する、部分暗号化装置および方法ならびにプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記した課題を解決するために本発明は、特定のコンテンツの一部を暗号化する部分暗号化装置であって、暗号化処理により生成される暗号化用ビット列を、部分暗号化用ビット列と、伸張関数入力ビット列とに分割する暗号化用ビット列分割部と、前記伸張関数により決定される伸張規則に従い、前記部分暗号化用ビット列を伸張する部分暗号化ビット列伸張部と、前記伸張した部分暗号化列と被暗号化用ビット列を排他的論理和演算して暗号化する暗号化処理部と、を備えることを特徴とする。
【０００６】
また、本発明において、前記部分暗号化ビット列伸張部は、前記伸張関数への入力ビットを、伸張処理ビット列と再利用定義ビット列とに分割し、前記伸張処理ビット列に関して任意のパートに分割して得られる各パートを数値に変換し、定義されたブロックＮに対してＮ×数値の長さを非暗号化領域決定ビット列として伸張する伸張関数生成部と、前記再利用定義ビット列、非暗号化領域決定ビット列、および部分暗号化用ビット列とを入力とし、前記部分暗号化ビット列をブロック単位に分割し、前記再利用定義ビット列に従い、前回利用した部分暗号化用ビット列を再利用、もしくは次の部分暗号化用ビット列を利用して再利用処理を実行する部分暗号化ビット列伸張処理部と、を備えることを特徴とする。
【０００７】
また、本発明は、特定のコンテンツの一部を暗号化する部分暗号化方法であって、暗号化処理により生成される暗号化用ビット列を、部分暗号化用ビット列と、伸張関数への入力ビットとに分割するステップと、前記伸張関数により決定される伸張規則に従い、前記部分暗号化用ビット列を伸張するステップと、前記伸張した部分暗号化列と被暗号化用ビット列を排他的論理和演算して暗号化するステップと、を有することを特徴とする。
【０００８】
また、本発明は、特定のコンテンツの一部を暗号化する部分暗号化装置に用いられるプログラムであって、暗号化処理により生成される暗号化用ビット列を、部分暗号化用ビット列と、伸張関数への入力ビットとに分割する処理と、前記伸張関数により決定される伸張規則に従い、前記部分暗号化用ビット列を伸張する処理と、前記伸張した部分暗号化列と被暗号化用ビット列を排他的論理和演算して暗号化する処理と、をコンピュータに実行させることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、暗号化処理により生成される暗号化用ビット列を、部分暗号化用ビット列と伸張関数への入力ビットとに分割し、伸張関数により決定される伸張規則に従い部分暗号化用ビット列を伸張し、当該伸張した部分暗号化列と被暗号化用ビット列を排他的論理和演算して暗号化することにより、特定のコンテンツにおける暗号化処理を高速に実現できる。
また、生成される暗号化列を非常に簡易な処理で伸張するため、ＣＰＵにかかる負担も少なくて済む。
【発明を実施するための最良の形態】
【００１０】
図１は、本発明の実施形態に係る部分暗号化装置の内部構成を示すブロック図である。
本発明の実施形態に係る部分暗号化装置は、暗号化用ビット列分割部１と、部分暗号化ビット列伸張部２と、暗号化処理部３とで構成される。
【００１１】
暗号化用ビット列分割部１は、暗号化処理により生成される暗号化用ビット列、例えば、共通鍵暗号を、部分暗号化用ビット列と、伸張関数入力ビット列とに分割して部分暗号化ビット列伸張部２へ供給する。
部分暗号化ビット列伸張部２は、伸張関数により決定される伸張規則に従い、前記部分暗号化用ビット列を伸張して暗号化処理部３へ供給するものであり、伸張関数生成部２１と、部分暗号化ビット列伸張処理部２２とで構成される。
【００１２】
伸張関数生成部２１は、伸張関数入力ビット列を、伸張処理ビット列と再利用定義ビット列とに分割し、伸張処理ビット列に関して任意のパートに分割して得られる各パートを数値に変換し、定義されたブロックＮに対してＮ×数値の長さ分を非暗号化領域決定ビット列として伸張する。
また、部分暗号化ビット列伸張処理部２２は、再利用定義ビット列、非暗号化領域決定ビット列、および部分暗号化用ビット列とを入力とし、部分暗号化ビット列をブロック単位に分割し、再利用定義ビット列に従い、前回利用した部分暗号化列を再利用もしくは次の部分暗号化列を利用して伸張処理を実行する。
なお、暗号化処理部３は、伸張した部分暗号化ビット列と被暗号化用ビット列とを排他的論理和演算（ＸＯＲ）して暗号化する。
【００１３】
図２は、本発明の実施形態に係る部分暗号化方法の各工程を説明するために引用したフローチャートである。
以下、図２に示すフローチャートを参照しながら各工程、および図１に示す本発明実施形態の動作について詳細に説明する。
【００１４】
まず、通常のアルゴリズムに従い出力される暗号化用ビット列、ここでは共通鍵を暗号化用ビット列分割部１で受け付け、当該暗号化用ビット列分割部１で部分暗号化用ビット列（Ａ）と、伸張関数入力ビット列（Ｂ）に分割する（Ｓ２１）。
部分暗号化用ビット列（Ａ）は、部分暗号化用ビット列伸張部２の部分暗号化列伸張処理部２２へ、伸張関数入力ビット列（Ｂ）は、部分暗号化用ビット列伸張部２の伸張関数発生部２１へそれぞれ供給される（Ｓ２２）。
【００１５】
伸張関数生成部２１では以下のように伸張関数を実行する。すなわち、まずは、伸張関数入力ビット列（Ｂ）を、再利用定義ビット列（Ｃ）と、入力ビット列（Ｄ）とに分割する（Ｓ２３）。そのうち、入力ビット列（Ｄ）をいくつかのパートに分割し、その各パートを数値に変換する。そして、定義されたブロックＮに対してＮ×数値の長さ分について暗号化しない非暗号化領域ビット列として生成する（Ｓ２４、Ｓ２５）。
【００１６】
一方、部分暗号化列伸張部２２では、暗号化用ビット列分割部１を介して入力される部分暗号化用ビット列をブロック単位に分割し、例えば、入力ビット“０１０１”に従い、“０”であれば、前回利用した部分暗号化列を再利用し、“１”であれば次の部分暗号化列を利用して部分暗号化用ビット列の再利用処理を行う（Ｓ２４、Ｓ２６）。
部分暗号化ビット列伸張部２は、以上のようにして伸張関数により定義されたルールに従い部分暗号化用ビット列を伸張する（Ｓ２７）。
【００１７】
最後に、暗号化処理部３は、被暗号化用ビット列と、部分暗号化用ビット列伸張部２から出力される伸張した暗号化ビット列とを排他的論理和演算（ＸＯＲ）を実行することで部分的な暗号化を実現する（Ｓ２８）。
【００１８】
以上説明のように本発明は、暗号化処理により生成される暗号化用ビット列を、部分暗号化用ビット列と伸張関数への入力ビットとに分割し、伸張関数により決定される伸張規則に従い部分暗号化用ビット列を伸張し、当該伸張した部分暗号化列と被暗号化用ビット列を排他的論理和演算して暗号化することにより、特定のコンテンツにおける暗号化処理を高速に実現するものである。
また、本発明によれば、生成される暗号化列を非常に簡易な処理で伸張するため、ＣＰＵにかかる負担も少なくて済むという効果も得られる。
【００１９】
なお、図１に示す暗号化用ビット列分割部１、部分暗号化ビット列伸張部２、暗号化処理部３、伸張関数生成部２１、部分暗号化ビット列伸張処理部２２のそれぞれで実行される手順をコンピュータ読み取り可能な記録媒体に記録し、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによっても本発明の部分暗号化装置を実現することができる。ここでいうコンピュータシステムとは、ＯＳや周辺機器等のハードウェアを含む。
【００２０】
また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【００２１】
以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【図面の簡単な説明】
【００２２】
【図１】本発明の実施形態に係る部分暗号化装置の内部構成を示したブロック図である。
【図２】本発明の実施形態に係る部分暗号化方法の各工程を説明するために引用したフローチャートである。
【符号の説明】
【００２３】
１…暗号化用ビット列分割部、２…部分暗号化ビット列伸張部、３…暗号化処理部、２１…伸張関数生成部、２２…部分暗号化ビット列伸張処理部
【図１】
2006270343.tif 000003
【図２】
2006270343.tif 000004