説明

暗号化装置、復号化装置、これらを備えた暗号システム、暗号プログラム及び復号プログラム

【課題】暗号化処理の効率化を図る。
【解決手段】 乱数列生成部113は、ディスク装置130のIO単位の倍数単位で、乱数列を生成する。暗号化部114は、ディスクIO単位で元データの一部を順次取得し、各元データの一部を、乱数列生成部113が生成したディスクIO単位の倍数のデータ長の乱数列のうち、ディスクIO単位のデータ長の乱数列を用いて暗号化する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、乱数列を用いて元データを暗号化する技術、及び乱数列を用いて暗号データを復号化する技術に関する。
【背景技術】
【0002】
元データの暗号化する方法の一つとして、この元データと乱数列との排他的論理和で暗号データを得る方法がある。
【0003】
一般的に、様々なデータ長の元データを暗号化するため、元データを取得した後、この元データのデータ長に合ったデータ長の乱数列を生成し、この乱数列を用いて、元データを暗号化している。また、元データのデータ長が比較的長い場合には、元データを幾つかに分割し、分割後の各元データを順次取得し、取得したデータのデータ長に合わせて、乱数列を生成し、この乱数列を用いて取得したデータを暗号化している。
【0004】
ところで、近年、IP電話やテレビ会議では、第三者の盗聴を防ぐために、暗号処理技術が用いられている。このようなIP電話やテレビ会議では、リアルタイムにデータを送信する必要があるため、暗号化処理の効率化が求められている。
【0005】
そこで、以下の特許文献1では、元データの一部のみを部分的に乱数列を用いて暗号化することで、暗号化処理時間の短縮を図っている。例えば、映画等の画像データを部分的に暗号化し、この画像データに関する配信契約を行っている者のみがきれいな画像データを見ることができ、他の者は、一部が乱れた画像しか見ることができないようにしている。
【0006】
【特許文献1】特開2006−270343号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献1に記載の技術では、この技術をテレビ会議に利用した場合、第三者であっても、会議の内容を部分的に把握することができ、秘密漏洩の可能性が極めて高くなってしまうという問題点がある。
【0008】
本発明は、このような従来の問題点に着目し、暗号化処理の効率化を図りつつ、高い秘密保持性を確保することを目的とする。
【課題を解決するための手段】
【0009】
前記問題点を解決するため、元データの暗号化に係る発明は、
予め定められたデータ長の倍数単位で、鍵を用いて乱数列を作成し、
前記予め定められたデータ長単位で元データの一部を順次取得し、各元データの一部を、前記予め定められたデータ長の倍数のデータ長の乱数列のうち、該予め定められたデータ長の乱数列を用いて暗号化し、該予め定められたデータ長単位の暗号データを順次作成する、ことを特徴とする。
【0010】
また、前記問題点を解決するため、暗号データの復号化に係る発明は、
予め定められたデータ長の倍数単位で、鍵を用いて乱数列を作成し、
前記予め定められたデータ長単位で暗号データの一部を順次取得し、各暗号データの一部を、前記予め定められたデータ長の倍数のデータ長の乱数列のうち、該予め定められたデータ長の乱数列を用いて順次復号化する、ことを特徴とする。
【0011】
また、元データの暗号化に係る他の発明は、
元データを暗号化する際に用いる鍵を公開鍵として取得し、該公開鍵と対を成す鍵の所有先である前記復号化装置と関連付けて、該公開鍵を記憶し、
前記元データを取得し、前記公開鍵を用いて該元データを暗号化して暗号データを作成し、
前記公開鍵を暗号化すると共に、暗号化された該公開鍵を電子透かしとし、
暗号化され且つ電子透かしとなった前記公開鍵を、暗号化の際に取得する前記元データの一部に挿入し、
前記暗号データを復号化装置へ送信する、
ことを特徴とする。
【0012】
係る発明によれば、復号化装置側で暗号データを復号化し、これを漏洩したとしても、漏洩したデータ中に、暗号化され且つ電子透かしとなった公開鍵が含まれているので、この公開鍵により、漏洩元を特定することができる。
【発明の効果】
【0013】
本発明によれば、暗号化手段が元データを暗号化する元データの取得単位、又は復号化手段が暗号データを復号化する暗号データの取得単位の倍数で、暗号化又は復号化の際に用いる乱数列を生成するので、乱数列生成工程の回数を減らすことができ、暗号化、復号化の効率化を図ることができる。
【発明を実施するための最良の形態】
【0014】
以下、本発明に係る暗号システムの各種実施形態について、図面を用いて説明する。
【0015】
「第一の実施形態」
まず、本発明に係る暗号システムの第一の実施形態について、図1〜図6を用いて説明する。
【0016】
本実施形態の暗号システムは、図1に示すように、コンテンツである画像データを暗号化して送信する暗号化装置100と、暗号化された画像データを受信して復号化する復号化装置200と、を備えている。暗号化装置100と復号化装置200とは、相互に通信可能にネットワークNで接続されている。
【0017】
暗号化装置100は、コンピュータで、各種演算処理を実行するCPU110と、このCPU110のワークエリア等になるメモリ120と、各種プログラムやデータ等が格納されているディスク装置130と、入力装置140と、通信インタフェース150と、を備えている。
【0018】
ディスク装置130には、暗号プログラム、通信プログラム、コンテンツの暗号化の際に用いる鍵が格納されている。さらに、このディスク装置130には、入力装置140から入力されたコンテンツが元データとして格納されている。なお、ここでは、各プログラム等と元データとを同一の記憶装置に格納しているが、各プログラム等を格納する記憶装置の他に、元データ専用の記憶装置を設けてもよい。
【0019】
CPU110は、機能的に、元データを暗号化する暗号処理部111と、暗号化された元データ、つまり暗号データをパケット化して、通信インタフェース150を介して復号化装置200へ送信する通信処理部119とを有している。この暗号化処理部111は、ディスク装置130に格納されている暗号プログラムをCPU110が実行することで機能する。また、この通信処理部119は、ディスク装置130に格納されている通信プログラムをCPU110が実行することで機能する。
【0020】
暗号処理部111は、ディスク装置130に格納されている元データをディスクIOサイズ単位又はその倍数単位で取得する元データ取得部112と、乱数列を生成する乱数列生成部113と、乱数列を用いて元データを暗号化する暗号化部114と、暗号化部114からの暗号データを通信パケットに挿入できるサイズに分割して、送信処理部119へ送る暗号データ出力部115と、を有している。
【0021】
復号化装置200は、コンピュータで、各種演算処理を実行するCPU210と、このCPU210のワークエリア等になるメモリ220と、各種プログラムやデータ等が格納されているディスク装置230と、再生装置240と、通信インタフェース250と、を備えている。
【0022】
ディスク装置230には、復号プログラム、通信プログラム、暗号データの復号化の際に用いる鍵が格納されている。さらに、このディスク装置230には、暗号データが復号化された復号データ(元データ)が格納される。なお、ここでは、各プログラム等と復号データとを同一の記憶装置に格納するようにしているが、各プログラム等を格納する記憶装置の他に、復号データ専用の記憶装置を設けてもよい。
【0023】
CPU210は、機能的に、暗号データを復号化する復号処理部211と、通信インタフェース250を介して通信パケットを受信して分解し、この通信パケットから暗号データを得る通信処理部219とを有している。この復号化処理部211は、ディスク装置230に格納されている復号プログラムをCPU210が実行することで機能する。また、この通信処理部219は、ディスク装置230に格納されている通信プログラムをCPU210が実行することで機能する。
【0024】
復号処理部211は、通信処理部219で得られた暗号データを取得してディスクIOサイズ単位又はその倍数単位で出力する暗号データ取得部212と、乱数列を生成する乱数列生成部213と、乱数列を用いて暗号データを復号化する復号化部214と、復号化部214からの復号データ(元データ)をディスク装置230又は再生装置240へ出力する復号データ出力部215と、を有している。
【0025】
次に、図2に示すフローチャートに従って、暗号化装置100の暗号化処理部111の動作について説明する。この暗号化処理部111は、例えば、入力装置140からの暗号化開始の指示を受け付けると起動する。
【0026】
暗号化処理部111の元データ取得部112は、ディスク装置130に読み込むべき元データがあるか否かを判断する(S10)。元データがあれば、このディスク装置130から、このディスク装置130のディスクIOサイズ単位又はその倍数単位で元データを順次読み込む(S11)。なお、ディスクIOサイズ単位は、予め設定されている値であるが、ここでは、126KB、256KB、512KB、1024KB等のいずれかである。次に、乱数生成部113は、暗号化部114に乱数列が存在するか否かを判断し(S12)、乱数列が存在しなければ、元データの読み込み単位の倍数のデータサイズの乱数列を生成する(S13)。ステップ12で乱数列が存在すると判断された場合、ステップ13で乱数列が生成された場合、暗号化部114は、ディスクIOサイズ又はその倍数サイズの元データと、同じくディスクIOサイズ又はその倍数サイズの乱数列とを排他的論理和をとって、元データを暗号化する、すなわち、ディスクIOサイズ又はその倍数サイズの暗号データを生成する(S14)。
【0027】
暗号化部115で生成されたディスクIOサイズ又はその倍数サイズの暗号データは、暗号出力部115で、復号化装置200へ送る送信パケットのペイロードに収まるサイズに分割され、元データ取得部112で得られた各種データと共に、通信処理部119に出力される(S15)。暗号データ出力部115から暗号データ等が通信処理部119へ出力されると、ステップ10へ戻る。
【0028】
通信処理部119では、図6に示すように、暗号データ19をペイロード18に収めた送信パケット10が生成され、通信インタフェース150を介して、復号化装置200へ送信される。この送信パケット10のヘッダ11には、パケット名12、送信先アドレス13、ペイロード18に収められる暗号データ19のシーケンス番号、この暗号データ19のオフセット位置、この暗号データ19のタイムスタンプ16、この暗号データ19を復号化する際に用いる乱数列の生成のための鍵17が収められている。
【0029】
オフセット位置とは、ペイロード18に収められる暗号データが元データのどの位置の部分に該当するかを示すもので、具体的には、元データの先頭位置を基準にして、この暗号データが示す元データ部分の先頭位置を示すものである。また、タイムスタンプとは、元データの先頭位置の再生時刻から、ペイロードに含まれている暗号データが示す元データ部分の先頭再生時刻までの時間を示すものである。
【0030】
オフセット位置及びタイムスタンプは、いずれも、元データ中に含まれているデータであるため、元データ取得部112は、ディスク装置130から元データを取得する際に、これらのデータを把握し、これを暗号データ出力部115に渡す。暗号データ出力部115は、自らが作成したシーケンス番号14、元データ取得部112から送られてきたオフセット位置15及びタイムスタンプ16、さらに、ディスク装置130に格納されている鍵17を、送信パケット10のペイロード18に収まるサイズの暗号データ19と共に、通信処理部119に渡す。そして、通信処理部119は、前述したように、送信パケット10のヘッダ11に、シーケンス番号14、オフセット位置15、タイムスタンプ16、鍵17等を収め、ペイロード18に暗号データ19を収めて、通信インタフェース150を介して、この送信パケット10を復号化装置200へ送信する。
【0031】
次に、図4及び図5を用いて、本実施形態における暗号化装置100による効果について説明する。
【0032】
図4に示すように、ディスク装置130には、比較的データ長が長い画像データが格納されているとする。元データ取得部112は、このディスク装置130から、ディスクIOサイズ(例えば、250KB)の元データを取得する(S11)。一方、乱数列生成部113は、ディスクIOサイズの倍数分、例えば、2倍の乱数列を生成する(S13)。暗号化部114は、元データ取得部112が取得したディスクIOサイズの元データに対して、乱数列生成部113が生成した乱数列のうちの1/2の乱数列、つまり、ディスクIOサイズの乱数列を用いて、この元データを暗号化する(S14)。暗号データ出力部115は、ディスクIOサイズの暗号データをパケットに収まるサイズに分割して、通信制御部119へ出力する(S15)。
【0033】
再び、元データ取得部112は、ディスク装置130から、ディスクIOサイズの元データを取得する(S11)。この時点で、先に生成された乱数列のうちの1/2の乱数列、つまり、ディスクIOサイズの乱数列は残っているので、暗号化部114は、元データ取得部112が新たに取得した元データに対して、残っている乱数列を用いて、この元データを暗号化する(S14)。すなわち、図5のシーケンス図に示すように、2回目に元データが読み込まれると(S11)、乱数列の生成工程(S13)を経ずに、直ちに、この元データが暗号化される(S14)。
【0034】
以上のように、ディスクIOサイズで元データを取得する場合、ディスクIOサイズの2倍のサイズで乱数列を生成すると、2回の元データの読み込みに対して、1回の乱数列生成で済む。当然、元データの3倍のサイズの乱数列と生成すると、3回の元データの読み込みに対して、一回の乱数列生成で済む。従って、本実施形態では、元データの全てを暗号化しつつも、暗号化処理の効率を高めることができる。
【0035】
また、本実施形態では、ディスクIOサイズ単位で処理を行っているため、コンピュータによる暗号化処理が効率よく行える。さらに、暗号化は、データサイズが大きいほど処理速度が速くなる傾向にあるため、ディスクIOサイズとして256KB等の比較的大きなサイズを設定することでも、暗号化処理の効率をさらに高めることができる。
【0036】
次に、図3に示すフローチャートに従って、復号化装置200の復号化処理部211の動作について説明する。この復号化処理部211は、例えば、通信インタフェース250が暗号化装置100からのパケットを受信すると、または、外部からからの復号化開始の指示を受け付けると起動する。
【0037】
復号化処理部211の暗号データ取得部212は、通信処理部219に、暗号化装置100からの通信パケットの分解で得られた暗号データがあるか否かを判断し(S20)、暗号データがあれば、この通信処理部219から暗号データを順次読み込み、メモリ220上に配置する(S21)。さらに、暗号データ取得部212は、暗号化装置100からの通信パケットのヘッダに収められた各種データも併せて順次読み込む。そして、読み込んだ各種データのうち、シーケンス番号14(図6)が「1」、つまり、最初の暗号データを取得すると、この暗号データの復号データを復号データ出力部215から出力する出力タイミングを定める。その後は、この出力タイミングを基準にして、各暗号データに対する復号データの出力タイミングを該当暗号データのタイムスタンプ16(図6)に基づいて定める。暗号データ取得部212は、この出力タイミングに余裕があるか否かを判断し(S22)、余裕が有れば、メモリ220上の暗号データのデータサイズがディスクIOサイズ又はその倍数サイズになったか否かを判断する(S23)。
【0038】
以下、出力タイミングに余裕がある限り、メモリ220上の暗号データのデータサイズがディスクIOサイズ又はその倍数サイズになるまで、通信処理部219から暗号データを順次読み込み、各暗号データのシーケンス番号順に又はオフセット位置に従って、各暗号データをメモリ220上に配置する。
【0039】
メモリ220上の暗号データのデータサイズがディスクIOサイズ又はその倍数サイズにならなくとも、つまり暗号データが一部欠けていても、出力タイミングに余裕がなくなると、又は、メモリ220上の暗号データのデータサイズがディスクIOサイズ又はその倍数サイズになると、乱数生成部213は、復号化部214に乱数列が存在するか否かを判断する(S25)。そして、乱数列が存在しなければ、ディスクIOサイズ又はその倍数サイズの、倍数乱数列を生成する(S26)。この際、乱数列生成部213は、暗号化装置200からの通信パケットのヘッダに収められた鍵17(図6)を用いて乱数列を生成する。ステップ25で乱数列が存在すると判断された場合、ステップ26で乱数列が生成された場合、復号化部214は、ディスクIOサイズ又はその倍数サイズの暗号データに対して、同じくディスクIOサイズ又はその倍数サイズの乱数列を用いて、暗号データを復号化し、ディスクIOサイズの復号データを生成する(S29)。
【0040】
この復号データは、復号データ出力部215からディスク装置230又は再生装置240へ出力される(S28)。なお、復号データ出力部215からの出力先が、ディスク装置230であるか、再生装置240であるかにより、ステップ22で用いられる出力タイミングは変わる。すなわち、出力先が再生装置240である場合よりも、出力先がディスク装置230である場合の方が、出力タイミングは厳格である必要はなく且つ遅めに設定してもよい。
【0041】
復号データ出力部215から復号データが出力されると(S28)、ステップ20へ戻る。
【0042】
ところで、シーケンス番号が最後の暗号データをメモリ220上に配置した際、このメモリ220上の暗号データのサイズは、ディスクIOサイズ又はその倍数サイズになっていないことの方が多い。このため、ステップ23で、メモリ220上の暗号データのサイズがディスクIOサイズ又はその倍数サイズになっていないと判断した場合(ステップ23でNOの場合)、暗号データ取得部212は、最後の暗号データであるか否かを判断し、最後の暗号データで無ければステップ20に戻り、最後の暗号データであればステップ25に進む。
【0043】
次に、図4及び図5を用いて、本実施形態における復号化装置200による効果について説明する。
【0044】
暗号化装置100からは、前述したように、ペイロードに暗号データを収めた複数のパケットが送られてくる。復号化装置200の通信処理部219は、これらのパケットを順次分解し、各パケットから暗号データ等を得る。復号化装置200の暗号データ取得部212は、図4に示すように、通信処理部219から順次暗号データを読み出し、各暗号データのシーケンス番号順に又はオフセット位置に従って、各暗号データをメモリ220上に配置する(S21)。
【0045】
乱数生成部213は、メモリ220上の暗号データのデータサイズがディスクIOサイズになると、又は、メモリ220上の暗号データのデータサイズがディスクIOサイズにならなくとも、つまり暗号データが一部欠けていても、出力タイミングに余裕がなくなると、ディスクIOサイズの倍数分、例えば、2倍の乱数列を生成する(S26)。復号化部214は、暗号データ取得部212が取得したディスクIOサイズ(このサイズでない場合もある)の暗号データに対して、乱数列生成部213が生成した乱数列のうちの1/2の乱数列、つまり、ディスクIOサイズの乱数列を用いて、この暗号データを復号化する(S27)。そして、復号データ出力部215は、ディスクIOサイズの復号データをディスク装置230又は再生装置240へ出力する(S28)。
【0046】
再び、暗号データ取得部212は、メモリ220上の暗号データサイズがディスクIOサイズになるまで、通信処理部219から順次暗号データを読み出し、各暗号データのシーケンス番号順に又はオフセット位置に従って、各暗号データをメモリ220上に配置する(S21)。この時点で、先に生成された乱数列のうちの1/2の乱数列、つまり、ディスクIOサイズの乱数列は残っているので、復号化部214は、暗号データ取得部212が新たに取得したディスクIOサイズの暗号データに対して、残っている乱数列を用いて、この暗号データを復号化する(S27)。すなわち、図5のシーケンス図に示すように、2回目に暗号データがディスクIOサイズになるまで読み込まれると(S21)、乱数列の生成工程(S26)を経ずに、直ちに、この暗号データが復号化される(S27)。
【0047】
以上のように、ディスクIOサイズで暗号データを取得する場合、ディスクIOサイズの2倍のサイズで乱数列を生成すると、2回のディスクIOサイズの暗号データの読み込みに対して、1回の乱数列生成で済む。当然、暗号データの3倍のサイズの乱数列と生成すると、3回の暗号データの読み込みに対して、一回の乱数列生成で済む。従って、本実施形態では、復号化処理の効率を高めることができる。
【0048】
また、この復号化装置200においても、前述の暗号化装置100と同様に、ディスクIOサイズ単位又はその倍数サイズで処理を行っているため、コンピュータによる復号化処理が効率よく行える。さらに、復号化は、データサイズが大きいほど処理速度が速くなる傾向にあるため、ディスクIOサイズとして256KB等の比較的大きなサイズを設定することでも、復号化処理の効率をさらに高めることができる。
【0049】
なお、本実施形態において、暗号化装置100におけるディスクIOサイズ単位と復号化装置200におけるディスクIOサイズ単位とを同じサイズにしている。これは、暗号化装置100での暗号化処理と、復号化装置200での復号化処理との同期を取り、元データをできる限りリアルタイムに再生できるようにするためである。このため、リアルタイム性があまり要求されない場合、例えば、復号化装置200で復号化データを一旦ディスク装置230に格納するような場合には、暗号化装置100におけるディスクIOサイズ単位と復号化装置200におけるディスクIOサイズ単位とが異なっていてもよいし、同じディスクIOサイズ単位であっても、一方がこのディスクIOサイズ単位でデータを処理し、他方がこのディスクIOサイズ単位の2,3,…倍でデータを処理するようにしてもよい。
【0050】
また、本実施形態の暗号化装置100では、元データを一旦ディスク装置130に格納した後、このディスク装置130に格納されている元データを読み出して、これを暗号化しているが、入力装置140から入力された元データを直接取得して、これを暗号化してもよい。さらに、本実施形態の復号化装置200では、通信インタフェース250で受信したパケット中の暗号データを暗号データ取得部212が取得しているが、通信インタフェース250で受信したパケット中の暗号データを一旦ディスク装置230に格納し、暗号データ取得部212がこのディスク装置230から暗号データを取得するようにしてもよい。
【0051】
「第二の実施形態」
次に、本発明に係る暗号システムの第二の実施形態について、図7〜図9を用いて説明する。
【0052】
本実施形態の暗号システムは、図1を用いて説明した第一の実施形態の暗号システムと基本的に同じ構成である。但し、暗号化装置100における暗号処理と復号化装置200の復号処理のそれぞれにおける処理手順が若干異なっている。
【0053】
すなわち、第一の実施形態の暗号化処理(図2)及び復号化処理(図3)では、データ読込後に(S11,S21)、乱数列の有無の判断(S12,S25)及び乱数列の生成(S13,S26)を行っているが、本実施形態の暗号化処理(図7)及び復号化処理(図8)では、データ読込前に(S11,S21)、乱数列の有無の判断(S12a,S25a)及び乱数列の生成(S13a,S26a)を行う。
【0054】
このように、乱数例の生成を前倒しに行うことで、第一の実施形態のシーケンス図(図5)と本実施形態のシーケンス図(図9)とを比較すれば理解できるように、X回目のデータ読込(S11,S21)と(X+1)回目のデータ読込(S11,S21)の間の間隔を短くすることができ、より暗号化処理及び復号化処理の効率を高めることができる。
【0055】
「第三の実施形態」
次に、本発明に係る暗号システムの第三の実施形態について、図10を用いて説明する。
【0056】
本実施形態の暗号システムは、第一及び第二の実施形態とハードウェア構成は同じであるものの、暗号化装置及び復号化装置のCPUの機能構成が異なっている。
【0057】
本実施形態の暗号化装置100aの暗号処理部111aは、第一及び第二の実施形態と同様に、元データ取得部112と乱数列生成部113と暗号化部114と暗号データ出力部115とを備えている他に、復号化装置200aから乱数列を生成する際に使用する公開鍵17aを復号化装置200aから受信するためのID受信処理制御部116と、IDである公開鍵17aを暗号化するID暗号化部117と、元データ取得部112が取得した元データに暗号化された公開鍵を電子透かしとして挿入する電子透かし挿入部118と、を備えている。
【0058】
また、本実施形態の復号化装置200aの復号化処理部211aは、第一及び第二の実施形態と同様に、暗号データ取得部212と乱数列生成部213と復号化部214と復号データ出力部215とを備えている他に、暗号化装置200aで乱数列を生成する際に使用する公開鍵17aを通信処理部219にパケット化させて暗号化装置200aへ送信させるID送信処理制御部216を備えている。
【0059】
次に、本実施形態の暗号システムの動作について説明する。
【0060】
まず、元データの暗号化及び復号化の前処理について説明する。
【0061】
まず、復号化装置200の図示されていない入出力装置は、前述の公開鍵17aと、この公開鍵17aとペアとなる秘密鍵17bとを取り込んで、ディスク装置230に格納する。この公開鍵17aと秘密鍵17bは、例えば、復号化装置200の所有者が、暗号化装置100の運営者と暗号化されたコンテンツの配信の契約を結んだときに定められる。
【0062】
次に、ID送信処理制御部216は、ディスク装置230に格納されている公開鍵17aを取得し、これを通信処理部219に渡してパケット化させ、暗号化装置100aへ送信させる。
【0063】
暗号化装置100aの通信処理部119は、このパケットを受信すると、パケットを分解して、このパケットのペイロードに収められている公開鍵17aと、このパケットのヘッダに収められている送信元AとをID受信処理制御部116に渡す。このID受信処理制御部116は、公開鍵17aと送信元Aとを関連付けて、ディスク装置130に格納する。
【0064】
以上で前処理が終了する。
【0065】
次に、暗号化装置100aでの暗号化処理について説明する。
【0066】
まず、ID暗号化部117は、ディスク装置130に格納されている公開鍵17aと、これを暗号化する際に使用する鍵とを取得し、この鍵を用いて公開鍵17aを暗号化すると共に、この暗号データを電子透かしとする。
【0067】
元データ取得部112がディスク装置130から元データをディスクIO単位で順次読み込むと、電子透かし挿入部118は、元データ取得部112が読み込んだ元データに電子透かしを挿入する。電子透かし挿入部118は、一回の元データ読込毎に、この電子透かしを一つこの元データに挿入してもよいし、複数回の元データ読込毎に、この電子透かしを一つ元データに挿入してもよいし、さらに、一回の元データ読込毎に、この電子透かしを複数この元データに挿入してもよい。
【0068】
一方、乱数列生成部113も、ディスク装置130に格納されている公開鍵17aを取得する。そして、この公開鍵17aを用いて、ディスクIO単位の倍数の乱数列を生成する。そして、暗号化部114は、電子透かしが挿入された元データに対して、乱数列を用いて暗号化処理を施す。この暗号データは、暗号データ出力部115、通信処理部119等を経て、復号化装置200へ送られる。
【0069】
復号化装置200の暗号データ取得部212は、暗号化装置100からの暗号データを取得する。一方、復号化装置200の乱数列生成部213は、ディスク装置230に格納されている秘密鍵17bを取得し、この秘密鍵17bを用いて、ディスクIO単位の倍数の乱数列を生成する。そして、復号化部214は、暗号データに対して、乱数列を用いて復号化処理を施す。この復号データは、復号データ出力部215を経て、ディスク装置230又は再生装置240へ出力される。
【0070】
復号化装置200の所有者Aは、暗号化装置100から送られてきた暗号化されたコンテンツを再生装置240で再生しても、基本的に、コンテンツ中に含まれている公開鍵17aを認識することはできない。これは、この公開鍵17aがコンテンツ中に電子透かしとして挿入されているからである。
【0071】
仮に、復号化装置200の所有者Aが、このコンテンツを第三者に配信等した場合、暗号化装置100の運営者は、このコンテンツ中に公開鍵17aの存在を把握することができれば、この公開鍵17aと復号化装置200の所有者Aとが関連付けられているため、このコンテンツの漏洩元をこの所有者Aに特定することができる。
【0072】
しかしながら、公開鍵17aは、第三者が入手可能であるため、悪意の第三者がこの公開鍵17aを入手し、電子透かし技術を用いて、コンテンツ中に公開鍵17aを埋め込んで、例えば、これを不特定多数の者に配信すると、コンテンツの漏洩元が分からなくなる。
【0073】
このため、本実施形態では、公開鍵17aを電子透かしとして埋め込むにあたり、この公開鍵17aを暗号化してから、電子透かしとして埋め込むようにしている。
【0074】
したがって、本実施形態では、コンテンツの漏洩元を特定でき、確実なコンテンツ管理を行うことができる。
【0075】
なお、本実施形態では、第一又は第二の実施形態の暗号化処理及び復号化処理を採用しているが、鍵を用いて元データを暗号化し、この鍵とペアとなる鍵で暗号データを復号化するものであれば、いかなる方法で暗号化処理、復号化処理するものでも適用できることは言うまでもない。
【図面の簡単な説明】
【0076】
【図1】本発明に係る第一の実施形態における暗号システムの構成図である。
【図2】本発明に係る第一の実施形態における暗号化処理のフローチャートである。
【図3】本発明に係る第一の実施形態における復号化処理のフローチャートである。
【図4】本発明に係る第一の実施形態における元データの読取サイズと乱数列の生成サイズとの関係、暗号データの取得サイズと乱数列の生成サイズとの関係を示す説明図である。
【図5】本発明に係る第一の実施形態における暗号システムのシーケンス図である。
【図6】本発明に係る第一の実施形態における暗号化装置からの送信パケットのデータ構成を示す説明図である。
【図7】本発明に係る第二の実施形態における暗号化処理のフローチャートである。
【図8】本発明に係る第二の実施形態における復号化処理のフローチャートである。
【図9】本発明に係る第二の実施形態における暗号システムのシーケンス図である。
【図10】本発明に係る第三の実施形態における暗号システムの構成図である。
【符号の説明】
【0077】
17a:公開鍵、17b:秘密鍵、100,100a:暗号化装置、110,110a:CPU、111,111a:暗号処理部、112:元データ取得部、113:乱数列生成部、114:暗号化部、115:暗号データ出力部、116:ID受信処理制御部、117:ID暗号化部、118:電子透かし挿入部、119:通信処理部、120,220:メモリ、130,230:ディスク装置、140:入力装置、150,250:通信インタフェース、200,200a:復号化装置、210,210a:CPU、211,211a:復号化処理部、212:暗号データ取得部、213:乱数列生成部、214:復号化部、215:復号データ出力部、216:ID送信処理制御部

【特許請求の範囲】
【請求項1】
乱数列を用いて元データを暗号化する暗号化装置において、
予め定められたデータ長の倍数単位で、鍵を用いて乱数列を作成する乱数列作成手段と、
前記予め定められたデータ長単位で元データの一部を順次取得し、各元データの一部を、前記乱数列生成手段で生成された前記予め定められたデータ長の倍数のデータ長の乱数列のうち、該予め定められたデータ長の乱数列を用いて暗号化し、該予め定められたデータ長単位の暗号データを順次作成する暗号化手段と、
を有していることを特徴とする暗号化装置。
【請求項2】
請求項1に記載の暗号化装置において、
前記乱数列作成手段は、前記暗号化手段が前記データ長単位の元データの一部を取得する前に、前記予め定められたデータ長の倍数単位の乱数列を作成する、
ことを特徴とする暗号化装置。
【請求項3】
請求項1及び2のいずれか一項に記載の暗号化装置において、
前記元データが記憶される記憶装置を有し、
前記暗号化手段は、前記憶装置のデータ入出力単位の倍数を前記データ長単位として、該記憶装置から前記元データの一部を取得し、該データ長単位の元データの一部を暗号化する、
ことを特徴とする暗号化装置。
【請求項4】
請求項1から3のいずれか一項に記載の暗号化装置において、
前記暗号化手段で作成された前記データ長単位の暗号データを1以上に分割して、分割された暗号データをパケットのペイロードに含め、該分割された暗号データの送信先と、該分割された暗号データが前記元データのどの位置のデータを暗号化したかを示すオフセット位置と、該元データを再生開始してから該分割された暗号データの部分を再生するまでの時間を示すタイムスタンプとを前記パケットのヘッダに含めたパケットを生成し、該パケットを通信網に送出する送信手段と、
を有していることを特徴とする暗号化装置。
【請求項5】
請求項4に記載の暗号化装置において、
前記送信手段は、前記パケットのヘッダに、該パケットのペイロードに含まれる前記分割された暗号データの暗号化の際に用いられた乱数列の前記鍵と対を成す鍵を含める、
ことを特徴とする暗号化装置。
【請求項6】
乱数列を用いて元データが暗号化された暗号データを、該乱数列を用いて復号化する復号化装置において、
予め定められたデータ長の倍数単位で、鍵を用いて乱数列を作成する乱数列作成手段と、
前記予め定められたデータ長単位で暗号データの一部を順次取得し、各暗号データの一部を、前記乱数列生成手段で生成された前記予め定められたデータ長の倍数のデータ長の乱数列のうち、該予め定められたデータ長の乱数列を用いて順次復号化する復号化手段と、
を有していることを特徴とする復号化装置。
【請求項7】
請求項6に記載の復号化装置において、
前記乱数列作成手段は、前記復号化手段が前記データ長単位の暗号データの一部を取得する前に、前記予め定められたデータ長の倍数単位の乱数列を作成する、
ことを特徴とする復号化装置。
【請求項8】
請求項6及び7のいずれか一項に記載の復号化装置において、
前記暗号データ又は該暗号データが復号化されたデータが記憶される記憶装置を有し、
前記復号化手段は、前記記憶装置のデータ入出力単位の倍数を前記データ長単位として、前記暗号データの一部を取得し、該データ長単位の暗号データの一部を復号化する、
ことを特徴とする復号化装置。
【請求項9】
請求項4に記載の暗号化装置と、
前記暗号化装置で暗号化された暗号データを復号化する復号化装置と、
を備え、
前記復号化装置は、
前記暗号化装置からの1以上の前記パケットを受信し、各パケットを分解して前記分割された暗号データを取り出す受信手段と、
前記受信手段が取り出した前記各パケットを分解して得られた前記分割された暗号データを、該各パケットのヘッダに含まれている前記オフセット位置に従って、前記分割された暗号データを順に並べて、前記データ長単位の暗号データの一部を得る暗号データ取得手段と、
前記分割された暗号データの暗号化の際に用いられた乱数列の前記鍵と対を成す鍵を用いて、前記データ長単位の倍数単位で、乱数列を作成する乱数列作成手段と、
前記暗号データ取得手段で得られた前記データ長単位の暗号データの一部を、前記乱数列生成手段で生成された前記データ長単位の倍数のデータ長の乱数列のうち、該データ長単位のデータ長の乱数列を用いて順次復号化する復号化手段と、を有している、
ことを特徴とする暗号システム。
【請求項10】
請求項9に記載の暗号システムにおいて、
前記復号化装置は、
前記復号化手段が復号化したデータを再生する再生手段、又は該復号化したデータを記憶する記憶手段を有している、
ことを特徴とする暗号システム。
【請求項11】
請求項10及び11のいずれか一項に記載の暗号システムにおいて、
前記復号化装置は、
公開鍵と、該公開鍵と対を成す秘密鍵とを記憶している記憶手段と、
前記記憶手段が記憶している前記公開鍵を前記暗号化装置に送信する公開鍵送信手段と、
を有し、
前記暗号化装置は、
前記復号化装置からの前記公開鍵を受信する公開鍵受信手段と、
前記公開鍵を暗号化すると共に、暗号化された該公開鍵を電子透かしとする公開鍵暗号化手段と、
暗号化され且つ電子透かしとなった前記公開鍵を、前記暗号化手段が取得する前記元データの一部に挿入する電子透かし挿入手段と、
を有し、
前記復号化装置の前記乱数列生成手段は、前記秘密鍵を用いて前記乱数列を生成する、
ことを特徴とする暗号システム。
【請求項12】
乱数列を用いて元データを暗号化する暗号プログラムにおいて、
予め定められたデータ長の倍数単位で、鍵を用いて乱数列を作成する乱数列作成ステップと、
コンピュータの入力手段又は記憶手段から、前記予め定められたデータ長単位で元データの一部を順次取得し、各元データの一部を、前記乱数列生成ステップで生成された前記予め定められたデータ長の倍数のデータ長の乱数列のうち、該予め定められたデータ長の乱数列を用いて暗号化し、該予め定められたデータ長単位の暗号データを順次作成する暗号化ステップと、
を前記コンピュータに実行させることを特徴とする暗号プログラム。
【請求項13】
請求項12に記載の暗号プログラムにおいて、
前記乱数列作成では、前記暗号化ステップで前記データ長単位の元データの一部を取得する前に、前記予め定められたデータ長の倍数単位の乱数列を作成する、
ことを特徴とする暗号プログラム。
【請求項14】
請求項12及び13のいずれか一項に記載の暗号化装置において、
前記コンピュータは、前記元データが記憶される記憶装置を有し、
前記暗号化ステップでは、前記憶装置のデータ入出力単位の倍数を前記データ長単位として、該記憶装置から前記元データの一部を取得し、該データ長単位の元データの一部を暗号化する、
ことを特徴とする暗号プログラム。
【請求項15】
乱数列を用いて元データが暗号化された暗号データを、該乱数列を用いて復号化する復号プログラムにおいて、
予め定められたデータ長の倍数単位で、鍵を用いて乱数列を作成する乱数列作成ステップと、
コンピュータの入力手段又は記憶手段から、前記予め定められたデータ長単位で暗号データの一部を順次取得し、各暗号データの一部を、前記乱数列生成手段で生成された前記予め定められたデータ長の倍数のデータ長の乱数列のうち、該予め定められたデータ長の乱数列を用いて順次復号化する復号化ステップと、
を前記コンピュータに実行させることを特徴とする復号プログラム。
【請求項16】
請求項15に記載の復号プログラムにおいて、
前記乱数列作成ステップでは、前記復号化ステップで前記データ長単位の暗号データの一部を取得する前に、前記予め定められたデータ長の倍数単位の乱数列を作成する、
ことを特徴とする復号プログラム。
【請求項17】
請求項15及び16のいずれか一項に記載の復号プログラムにおいて、
前記コンピュータは、前記暗号データ又は該暗号データが復号化されたデータが記憶される記憶装置を有し、
前記復号化ステップでは、前記記憶装置のデータ入出力単位の倍数を前記データ長単位として、前記暗号データの一部を取得し、該データ長単位の暗号データの一部を復号化する、
ことを特徴とする復号プログラム。
【請求項18】
鍵を用いて元データを暗号化して暗号データを生成し、前記鍵と対を成す鍵を用いて該暗号データを復号化する復号化装置へ該暗号データを送信する暗号化装置において、
前記元データを暗号化する際に用いる前記鍵を公開鍵として取得し、該公開鍵と対を成す鍵の所有先である前記復号化装置と関連付けて、該公開鍵を記憶する公開鍵取得手段と、
前記元データを取得し、前記公開鍵を用いて該元データを暗号化して暗号データを作成する暗号化手段と、
前記公開鍵を暗号化すると共に、暗号化された該公開鍵を電子透かしとする公開鍵暗号化手段と、
暗号化され且つ電子透かしとなった前記公開鍵を、前記暗号化手段が取得する前記元データの一部に挿入する電子透かし挿入手段と、
前記暗号化手段により作成された前記暗号データを前記復号化装置へ送信する暗号データ送信手段と、
を備えていることを特徴とする暗号化装置。
【請求項19】
請求項18に記載の暗号化装置において、
前記公開鍵取得手段は、前記復号化装置から送信された公開鍵を受信する公開鍵受信手段を有する、
ことを特徴とする暗号化装置。
【請求項20】
請求項18及び19のいずれか一項に記載の暗号化装置と、
前記暗号化装置からの前記暗号データを復号化する復号化装置と、
を備え、
前記復号化装置は、
前記暗号化装置からの前記暗号データを受信する暗号データ受信手段と、
前記暗号データ受信手段が受信した前記暗号データを、前記公開鍵と対を成す秘密鍵を用いて復号化し、復号データを生成する復号化手段と、
前記復号化手段により生成された前記復号データを出力する復号データ出力手段と、
を有する、
ことを特徴とする暗号システム。
【請求項21】
鍵を用いて元データを暗号化して暗号データを生成し、前記鍵と対を成す鍵を用いて該暗号データを復号化する復号化装置へ該暗号データを送信する暗号プログラムにおいて、
前記元データを暗号化する際に用いる前記鍵を公開鍵として取得し、該公開鍵と対成す鍵の所有先である前記復号化装置と関連付けて、該公開鍵をコンピュータの記憶手段に記憶する公開鍵取得ステップと、
前記元データを取得し、前記公開鍵を用いて該元データを暗号化して暗号データを作成する暗号化ステップと、
前記公開鍵を暗号化すると共に、暗号化された該公開鍵を電子透かしとする公開鍵暗号化ステップと、
暗号化され且つ電子透かしとなった前記公開鍵を、前記暗号化ステップで取得する前記元データの一部に挿入する電子透かし挿入ステップと、
前記暗号化ステップで作成された前記暗号データを前記復号化装置へ送信するための出力処理を実行する暗号データ出力処理ステップと、
を前記コンピュータに実行させることを特徴とする暗号プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2009−164953(P2009−164953A)
【公開日】平成21年7月23日(2009.7.23)
【国際特許分類】
【出願番号】特願2008−1255(P2008−1255)
【出願日】平成20年1月8日(2008.1.8)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】