JP5268413B2 - 開示制限処理装置及びデータ処理システム及びプログラム - Google Patents

開示制限処理装置及びデータ処理システム及びプログラム Download PDF

Info

Publication number
JP5268413B2
JP5268413B2 JP2008110995A JP2008110995A JP5268413B2 JP 5268413 B2 JP5268413 B2 JP 5268413B2 JP 2008110995 A JP2008110995 A JP 2008110995A JP 2008110995 A JP2008110995 A JP 2008110995A JP 5268413 B2 JP5268413 B2 JP 5268413B2
Authority
JP
Japan
Prior art keywords
digital data
signature
intermediate value
value
data
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
Application number
JP2008110995A
Other languages
English (en)
Other versions
JP2009267470A (ja
Inventor
充洋 服部
伊藤  隆
規 松田
健 米田
宏郷 辻
和美 齋藤
英憲 太田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2008110995A priority Critical patent/JP5268413B2/ja
Publication of JP2009267470A publication Critical patent/JP2009267470A/ja
Application granted granted Critical
Publication of JP5268413B2 publication Critical patent/JP5268413B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、デジタルデータの少なくとも一部の開示を制限しながら、データの真正性を保証する技術に関する。
デジタルデータの真正性を保証する技術として、従来から電子署名技術が知られている(例えば、非特許文献1)。
一般の電子署名技術の場合、元のデジタルデータが1ビットでも改変されると、すべて改ざんとみなされる。
しかし、データによっては適切な変更が必要となる場合がある。
例えば、国などの行政機関が国民からの情報公開請求に基づいて資料を公開する場合、国家機密や防衛機密、あるいはプライバシーに関わる内容については秘匿した上で公開する必要があるが、これは適切な変更であり、本来であれば改ざんとみなされるべきではない。
そこでこのような適切な変更を許容する電子署名技術として、デジタルデータの部分的な秘匿、すなわち墨塗りを可能とする技術が開発されている(例えば、特許文献1、特許文献2)。
特許文献1においては、以下に述べる方式でデジタルデータに対する墨塗りを可能にしている。
署名者は、あらかじめデジタルデータをいくつかのブロックに分割し(分割された個々のブロックをデータブロックと呼ぶ)、各ブロックに乱数を割り当てた上で、乱数とデータブロックとの結合データのハッシュ値をブロックごとに計算し、全ハッシュ値の結合データに対して電子署名を発行する。
墨塗り者は、署名者からデジタルデータと乱数と電子署名を受け取ると、墨塗りをしたいブロックのデータと乱数をハッシュ値に置き換えて墨塗りデータを作成し、電子署名ととともに検証者に渡す。
検証者は、墨塗りされていないブロックのハッシュ値を計算し、全ハッシュ値の結合データを求め、それを用いて電子署名を検証する。
もし墨塗り以外の改ざんがされていなければ、検証者が計算した結合データと電子署名の中の結合データとが一致することから、改ざんなしと検証される。
以上のように、特許文献1においてはデータをハッシュ値に置き換えることにより墨塗りを実現している。
特許文献2においては、以下に述べる方式でデジタルデータに対する墨塗りを可能にしている。
署名者は、まず一方向性関数をデジタルデータのビット長と同じ個数だけ直列に並べたものを用意する。
そして、それにシードを入力して、得られた各段の出力のハードコアビットとデジタルデータとの排他的論理和を計算することでデジタルデータを暗号化する。
そして、暗号化デジタルデータと、一方向性関数の最後の出力とを結合したデータに対して電子署名を発行する。
墨塗り者は、署名者からデジタルデータとシードと電子署名を受け取ると、署名者と同様に一方向性関数を使って、デジタルデータの先頭から途中までを暗号化した部分暗号化デジタルデータを作成する。
そして、残りの部分を暗号化するのに必要な一方向性関数の中間値を求め、部分暗号化デジタルデータと電子署名とともに検証者に渡す。検証者は、受け取った中間値を用いて残る部分を暗号化して暗号化デジタルデータを作成し、それを用いて電子署名を検証する。
もし墨塗り以外の改ざんがされていなければ、検証者が計算した暗号化デジタルデータと電子署名の中の暗号化デジタルデータとが一致することから、改ざんなしと検証される。
以上のように、特許文献2においてはデータを暗号化することにより墨塗りを実現している。
特開2005−51734号公報 特開2007−158984号公報 A. Menezes、 P. van Oorschot、 S. Vanstone著、 「Handbook of applied cryptography」、 CRC Press、 pp.425−488、 1996.
特許文献1の墨塗り署名方式では、上述のようにデータをハッシュ値に置き換えることにより墨塗りを実現している。
このため、一旦墨塗りをしてしまうとその部分については元のデータに戻すことができない。墨塗り者が検証者に墨塗りデータを送付した後、墨塗り部分を開示する場合には、あらためて該当部分のデータを再送付しなければならない。
そのため、特に携帯電話や衛星通信などの狭帯域通信を利用する場合には、データの再送付により通信帯域を占有してしまうという課題がある。
また、特許文献2では、先頭から途中までを暗号化した部分暗号化データを生成するものであり、先頭から連続した領域しか墨塗りできないという課題がある。
つまり、デジタルデータの任意の領域を墨塗りすることができないという課題がある。
本発明は、上記の課題を解決することを主な目的の一つとし、墨塗り部分を開示する際にデータの再送付が不要で、また、任意の領域の墨塗りが可能な方式を提供することを目的の一つとする。
さらに、本発明は、墨塗り部分についての事後の開示の可否を制御できる方式を提供することを目的の一つとする。
本発明に係る開示制限処理装置は、
デジタルデータに対する電子署名を生成する署名装置と、デジタルデータに対する電子署名を検証するとともに検証に成功したデジタルデータを表示する検証装置との間で、デジタルデータにおける開示を制限する処理を行う開示制限処理装置であって、
前記署名装置が管理するn(n≧2)個のパーツに分けることができるデジタルデータと、前記署名装置が生成した初期値と、前記署名装置が所定の演算手順に従って一方向性演算を行って前記初期値から生成したn個の鍵を用いて暗号化したデジタルデータのn個のパーツと一方向性演算を規定回数行った後に得られる終端値とに対して生成した電子署名とを入力するデータ入力部と、
入力した前記初期値に対して、前記署名装置と同じ演算手順にて一方向性演算を行ってn個の鍵を順序付けて生成する鍵生成部と、
前記デジタルデータを順序付けてn個のパーツに分け、n個のパーツのうちの1つ以上のパーツを対象パーツとして指定し、前記鍵生成部により生成されたn個の鍵のうち対応する順序の鍵を用いて各対象パーツに対して暗号化処理又は復号処理を行い、1つ以上のパーツが暗号化されている開示制限デジタルデータを生成する開示制限デジタルデータ生成部と、
前記鍵生成部によるn個の鍵の生成過程において導出される複数の中間値の中から、前記開示制限デジタルデータのパーツのうち暗号化されていない非暗号化パーツを前記検証装置が暗号化する際に用いる中間値を前記署名装置における演算手順に基づいて暗号用中間値として抽出する中間値抽出部と、
前記開示制限デジタルデータと、前記電子署名と、前記暗号用中間値とを出力するデータ出力部とを有することを特徴とする。
本発明によれば、署名装置が生成した初期値から署名装置と同じ演算手順にて一方向性演算を行ったn個の鍵を用いるので、デジタルデータのn個のパーツのうちの任意のパーツを暗号化された状態にすることができ、また、暗号化されているパーツの制限を解除する際に、復号に必要な中間値を送付すれば足り、デジタルデータ自体を送付する必要がない。
実施の形態1.
図1は、本実施の形態に係るデータ処理システムのシステム構成例と取り扱うデータの例の概略を表す図である。
図1において、署名装置101は、デジタルデータに対して電子署名(以下、単に署名とも言う)と初期値とを発行する装置である。
墨塗り装置102は、署名装置101から受け取ったデジタルデータに対して墨塗り(デジタルデータにおける開示を制限する処理)を実施し、墨塗りデータを作成するとともに、受け取った初期値を更新して中間値を生成する装置である。墨塗り装置102は、開示制限処理装置の例である。
検証装置103は、墨塗り装置102から受け取った墨塗りデータと署名と中間値とを用いて、墨塗りデータに対する署名を検証し、検証に成功したデジタルデータを表示する装置である。
ネットワーク104は、署名装置101、墨塗り装置102、および検証装置103の間でデータを送受信するための通信網である。
元データ105は、署名対象となるデジタルデータである。元データ105は、n(n≧2)個のパーツに分けることができる。本実施の形態では、パーツとして、各々が少なくとも1ビットのn個のブロックに分けることができるデジタルデータを用いる例を説明する。
署名106は、元データ105に対する電子署名である。
初期値107は、墨塗りに用いる鍵群を生成するための値であり、望ましくは乱数値である。
署名鍵108は、電子署名を発行するために用いる鍵であり、公開鍵暗号系における秘密鍵である。
墨塗りデータ109は、元データ105を元にして墨塗り装置102が一部または全部の領域の秘匿処理を施したデータである。墨塗りデータ109は、開示制限デジタルデータの例である。
中間値110は、墨塗り装置102において初期値107を更新して作成した値である。中間値110は、暗号化に用いられる暗号用中間値、復号に用いられる復号用中間値、終端値を導出するための終端値用中間値等がある。
検証鍵111は、電子署名を検証するために用いる鍵であり、公開鍵暗号系における公開鍵である。署名鍵108と検証鍵111は対になっている。
なお、図1においては墨塗り装置102が1台である場合を示しているが、これは複数台あってもよいし、あるいは署名装置が墨塗り装置を兼ねていてもよい。
また、図1においては署名装置101、墨塗り装置102、および検証装置103がすべてネットワーク104を介して接続されている例を示しているが、これらは一部のみ接続されていてもよいし、全く接続されていなくてもよい。
接続されていない部分については、メモリカードなどの記憶媒体に必要なデータを格納して運べばよい。
また、上記説明では署名鍵108および検証鍵111がそれぞれ公開鍵暗号系における秘密鍵および公開鍵である場合に関して述べたが、これらは秘密鍵暗号系における共通鍵であってもよい。この場合の電子署名はいわゆるMAC(Message Authentication Code)と呼ばれるものである。
なお、署名鍵108が公開鍵暗号系における秘密鍵の場合には、例えば署名装置101内の耐タンパ性のデバイスに格納し、漏洩や改ざんを防止することも望ましい。
署名鍵108および検証鍵111が共通鍵の場合は、両者をそれぞれ署名装置101および検証装置103内の耐タンパ性のデバイスに格納することも望ましい。
図2は、署名装置101の内部構成例を表す図である。
図2において、データ入出力部201は、署名装置101へのデータの入力や、署名装置101からのデータの出力を行う。
ユーザ入力部202は、図示しないユーザからの操作を受け付ける。
表示部203は、ユーザに操作結果などの各種情報を表示する。
初期値生成部204は、墨塗りに用いる鍵群を生成するのに用いる乱数値を生成する。署名生成部205は、初期値生成部204で生成された初期値を用いて、デジタルデータに対する署名を生成する。
詳細は後述するが、署名生成部205は、所定の演算手順に従って一方向性演算を行って初期値から生成したn個の鍵を用いて暗号化した元データのn個のパーツと一方向性演算を規定回数行った後に得られる終端値とに対して電子署名を生成する。
図3は、墨塗り装置102の内部構成例を表す図である。
データ入出力部211は、墨塗り装置102へのデータの入力や、墨塗り装置102からのデータの出力を行う。
より具体的には、データ入出力部211は、署名装置101が管理する元データ105と、署名装置101が生成した初期値107と、署名装置101が生成した電子署名106を入力する。
また、データ入出力部211は、墨塗りデータ109と、電子署名106と、中間値110とを出力する。
データ入出力部211は、データ入力部及びデータ出力部の例である。
ユーザ入力部212は、図示しないユーザからの操作を受け付ける。
表示部213は、ユーザに操作結果などの各種情報を表示する。
墨塗り部214は、署名装置101から受け取ったデジタルデータに対して墨塗りを実施し墨塗りデータを作成するとともに、受け取った初期値を更新して中間値を生成する。
より具体的には、墨塗り部214は、入力した初期値107に対して、署名装置101と同じ演算手順にて一方向性演算を行ってn個の鍵を順序付けて生成する。
また、墨塗り部214は、入力した元データ105を順序付けてn個のブロックに分け、n個のブロックのうちの1つ以上のブロックを対象ブロック(対象パーツ)として指定し、生成したn個の鍵のうち対応する順序の鍵を用いて各対象ブロックに対して暗号化処理又は復号処理を行い、1つ以上のブロックが暗号化されている墨塗りデータ109を生成する。
また、n個の鍵の生成過程において導出される複数の中間値の中から、墨塗りデータ109のブロックのうち暗号化されていない非暗号化ブロック(非暗号化パーツ)を検証装置103が暗号化する際に用いる中間値を署名装置101における演算手順に基づいて暗号用中間値として抽出する。墨塗り部214は、暗号用中間値として、検証装置103が署名装置101と同じ演算手順にて一方向性演算を行うことで非暗号化ブロックを暗号化する暗号鍵が生成できる中間値を抽出する。
また、墨塗り部214は、データ入出力部211により墨塗りデータ109が出力された後に、墨塗りデータ109に含まれる暗号化されている暗号化ブロックのうち開示制限が解除される暗号化ブロックを制限解除ブロック(制限解除パーツ)として指定する。
また、墨塗り部214は、n個の鍵の生成過程において導出される複数の中間値の中から、検証装置103が制限解除ブロックを復号する際に用いる中間値を署名装置101における演算手順に基づいて復号用中間値として抽出する。墨塗り部214は、復号用中間値として、検証装置103が署名装置101と同じ演算手順にて一方向性演算を行うことで制限解除ブロックを復号する復号鍵が生成できる中間値を抽出する。
墨塗り部214は、鍵生成部、開示制限デジタルデータ生成部、中間値抽出部及び制限解除パーツ指定部の例である。
中間値記憶部215は、墨塗り部214により算出された中間値群を記憶する。
図4は、検証装置103の内部構成例を表す図である。
データ入出力部221は、検証装置103へのデータの入力や、検証装置103からのデータの出力を行う。
ユーザ入力部222は、図示しないユーザからの操作を受け付ける。
表示部223は、ユーザに操作結果などの各種情報を表示する。
署名検証部224は、墨塗り装置102から受け取った墨塗りデータと署名と中間値とを用いて、墨塗りデータに対する署名を検証する。
なお、図2〜図4においては署名装置101、墨塗り装置102、および検証装置103のそれぞれがユーザ入力部と表示部を備える構成となっているが、これらの構成要素はなくてもよい。
例えば、自動で署名や墨塗りなどの操作を行う場合には、ユーザの操作を必要としないため、これらの構成要素を省略してもよい。
また、初期値107は乱数値であることが望ましく、したがって初期値生成部204は擬似乱数生成器であることが望ましい。
図5は、署名装置101および墨塗り装置102において初期値107を元にして墨塗りに用いる鍵群および署名生成に用いる終端値を生成する方法を示した図である。
図5において、一方向性関数f301および一方向性関数g302は、それぞれ入力から出力を求めることは容易であるが出力から入力を求めることが極めて困難であるような関数である。
鍵K303は、全てのブロックのデータを墨塗りした場合に検証に用いる鍵である。
鍵K304…鍵K305は、ブロックの墨塗りに用いる鍵である。
終端値G306は、墨塗り装置による元データのすりかえを防止するために電子署名に封入する値である。
鍵群307は、鍵K303、鍵K304…鍵K305の総称である。
中間値群308は、初期値S107と鍵群との間にある中間値の総称であり、鍵群自身をも含む。
なお、図5の一方向性関数f301および一方向性関数g302は可換であるものとする。
すなわち、ある入力xに対してfをa回、gをb回適用したときに、その適用順序に関わらず同一の出力が得られるものとする。
このときの出力をf(a)(b)(x)と表す。
fおよびgの具体的な関数の例としては、RSA(登録商標)公開鍵暗号における2つの暗号化関数f(x)=xe1 mod N、g(x)=xe2 mod Nが挙げられる。
ここでeおよびeは相異なる公開鍵であり、望ましくは互いに素ではない公開鍵である。
ただし、関数はこれに限定されるものではなく、上述のように可換性のある一方向性関数であればよい。
図6は、署名装置101において元データ105に対して電子署名を発行する方法を示した図である。
図6に示すように、署名装置101では、元データ105をいくつかのブロック(ここではMからMまでのn個)に分割するとともに、ブロックの順序に対して、対応する順序の鍵を適用して、全てのブロックを暗号化してCからCの暗号化ブロックとし、n個の暗号化ブロックに終端値Gを付加して署名対象データ401とし、署名対象データ401に署名鍵108を適用して署名106とする。
図7は、元データに対して電子署名を生成する手順例を示したフローチャートである。
次に、図1から図7を用いて、署名装置101においてブロック単位で墨塗り可能な電子署名を生成する手順を説明する。
元データ105に対して電子署名を生成する場合、署名生成部205が、まず元データをいくつかのブロック(ここではMからMまでのn個とする)に分割する(ステップ501)。
ブロックは任意の大きさであってよく、ブロックごとに異なっていてもよい。
次に初期値生成部204において初期値S107を生成する(ステップ502)。
次に、署名生成部205が、初期値S107から出発し、図5に示すように一方向性関数f301および一方向性関数g302を適用して鍵群K、K…Kおよび終端値G306を算出する(ステップ503)。
ここで鍵Kはf(n)(S)、鍵Kはf(n−1)(1)(S)…鍵Kはg(n)(S)であり、終端値G306はf(n)(n)(S)である。
次に、署名生成部205が、Kを除く鍵群K…Kを用いて元データのブロックM…Mをすべて墨塗りし、終端値G306を結合して署名対象データ401を生成する(ステップ504)。
この墨塗りの具体的な方法は、ブロック暗号やストリーム暗号などの共通鍵暗号による暗号化である。
すなわち、Eを暗号化関数、Kをその鍵としてC=EKi(M)によりMをCに暗号化する。最後に署名対象データ401に対し、署名鍵108を用いて署名106を発行する(ステップ505)。
ここで署名対象データとして終端値G306を含めるのは、墨塗り装置102による元データのすりかえを防ぐためであるが、詳細は後述する。
次に、図1から図6と図8を用いて、墨塗り装置102においてブロック単位でデジタルデータの墨塗りを行う手順を説明する。
図8は、デジタルデータに対して墨塗りを行う手順例を示したフローチャートである。
デジタルデータに対して墨塗りを行う場合、データ入出力部211が、まず署名装置101から元データ、署名、および初期値を受け取る(ステップ601)。
次に、墨塗り部214が、初期値Sから出発し、署名装置101と同様にして鍵群K、K…Kを算出する(ステップ602)。
次に、墨塗り部214が、Kを除く鍵群K…Kを用いて元データを墨塗りする(ステップ603)。
ここで、署名生成の際は元データのすべてのブロックについて墨塗りを行ったが、ここでは墨塗りすべきデータブロックに関してのみ墨塗りを行い、それ以外のブロックは墨塗りをせずそのままにしておく。
最後に、墨塗り部214が、検証装置103において開示ブロック(墨塗りしていない非暗号化ブロック)を墨塗りするのに必要な暗号用中間値を求める(ステップ604)。
例えばn個のブロックのうち最初のMのみ墨塗りした場合は、残りのMからMを墨塗りするために鍵Kから鍵Kまでが必要となるが、g(2)(S)が分かれば鍵Kから鍵Kまでが導出できることから、必要な暗号用中間値はg(2)(S)である。
また、MからMn−1までを墨塗りし、MおよびMを開示ブロックとした場合は、必要な暗号用中間値はKおよびKである。なお、全てのブロックを墨塗りした場合は、暗号用中間値としてKを選ぶものとする。
なお、墨塗り部214は、鍵群K、K…Kの算出の際に得られた中間値群を中間値記憶部215に格納しておき、中間値記憶部215から該当する中間値を暗号用中間値として抽出するようにしてもよいし、初期値から暗号用中間値を新たに算出してもよい。
ここで、開示する領域が複数のブロックにまたがっていても、それが連続した領域であれば、上述のように開示領域の墨塗りに必要な暗号用中間値は1個である。
したがって、元データの中で開示する領域が全体でL個に分かれている場合、各領域がどのブロックにまたがっているかに関わらず、墨塗りに必要な暗号用中間値の個数はL個である。
なお、図8においては鍵群と中間値群を得るために署名装置101から初期値を受け取って墨塗り装置102上で導出する構成となっているが、代わりに初期値、中間値群、鍵群を署名装置101から受け取る構成としてもよい。
そして、この場合は、受け取った中間値群、鍵群の中から必要なもののみを抽出して使用する。また、初期値は受け取らなくてもよい。
なお、このように初期値、中間値群、鍵群を署名装置101から受け取る場合は、署名装置101と墨塗り装置102の間の通信量は増加するが、墨塗り装置102において導出のための演算をする必要がないため、演算能力の低い装置であっても墨塗りができるというメリットがある。
また、図8においては署名装置101から元データを受け取り、墨塗りしたい部分を暗号化する構成となっているが、代わりに全ブロックが墨塗りされた墨塗りデータを受け取り、開示したい部分を復号する構成としてもよい。
墨塗り装置102において多くのデータが墨塗りされることが署名生成の段階で予想される場合、このような構成にすることで、墨塗り装置102における演算量を削減することができる。
次に、図1から図6と図9から図10を用いて、検証装置103において墨塗りデータの検証を行う手順を説明する。
図9は、墨塗りデータに関して検証を行う手順例を示したフローチャートである。
図10は、墨塗りデータから検証対象データを導出する様子を示した図である。
図10に示すように、検証装置103では、一部のブロックが暗号化されている墨塗りデータ109のうちの暗号化されていない非暗号化ブロックに対して、その非暗号化ブロックの順序に対応する順序の鍵を適用して、全てのブロックが暗号化された状態とし、CからCの暗号化ブロックに終端値Gを付加して検証対象データ801とし、検証対象データ801と署名106とにより検証を行う。
墨塗りデータの検証を行う場合、データ入出力部221は、まず墨塗り装置102から墨塗りデータ、署名、および中間値を受け取る(ステップ701)。
次に、署名検証部224が、受け取った中間値から、墨塗りデータの中の開示ブロックを墨塗りするのに必要な鍵群と終端値Gを算出する(ステップ702)。
次に、署名検証部224が、開示ブロックを墨塗りし、終端値Gと結合することで検証対象データ801を生成する(ステップ703)。
最後に、署名検証部224が、検証鍵を用いて署名から署名対象データを取り出し、検証対象データと比較する。
両者が一致すれば、墨塗り以外の改ざんが行われていないことが分かるので検証に成功する。
なお、署名対象データと検証対象データを比較するのではなく、それぞれのハッシュ値を比較する構成としてもよい。
ここで、署名対象データおよび検証対象データとして終端値Gを含める理由を述べる。
もし終端値Gを含めなければ、墨塗り装置102において、次のようにして検証装置103に検出されぬように署名装置101が作成した元データを別のデータにすりかえることができる。
墨塗り装置102はまず署名装置101から与えられた初期値Sを元に、署名装置101と同様に元データを墨塗りし、墨塗りデータC、C…Cを得る。
次に、初期値Sとは異なる初期値S’を独自に生成し、鍵群K’、K’…K’を導出する。そしてこれらの鍵群を用いて、墨塗りデータC、C…Cを復号し、本来の元データとは異なるデータM’、M’…M’を得る。
墨塗り装置102は、これを新たに本来の元データであるとして、鍵群K’、K’…K’を用いて墨塗りを行い署名とともに検証装置103に送付する。
検証装置103では、検証手順によって正しい墨塗りデータC、C…Cが得られるため、墨塗り以外の改ざんはないと判断されてしまう。
このようにして、元データのすりかえが可能となる。
これを防ぐために、署名対象データ及び検証対象データとして、終端値Gを含める。
終端値Gはどの中間値からも一意に導出可能であるため、墨塗り装置102における墨塗りの仕方に関わらず検証装置103において導出可能であり、これを用いてすりかえを検出することができる。
次に、図5および図11を用いて、墨塗り装置102が検証装置103に墨塗りデータを送信した後、一部または全部の墨塗り部分を開示する方法を説明する。
図11は、墨塗り装置102が検証装置103に墨塗りデータを送信した後、一部または全部の墨塗り部分を開示する手順例を示したフローチャートである。
一部または全部の墨塗り部分を開示するには、まず墨塗り装置102において、墨塗り部214が墨塗りデータの中で開示すべき制限解除ブロックを指定するとともに、制限解除ブロックを復号するのに必要な復号用中間値を算出する(ステップ901)。
制限解除ブロックの指定は、例えば、ユーザ入力部212により入力されたユーザからのブロックの指定に基づいて墨塗り部214が指定していもよいし、不図示の記録装置からブロックを指定するデータを読み込み、読み込んだデータにおいて指定されているブロックを指定してもよい。
例えばMからMまでのブロックすべてが墨塗りされており、このうちMを除くMからMn−1までを開示する場合、墨塗り部214において、図5より復号用中間値としてf(1)(1)(S)が算出される。
次に、データ入出力部211が、この復号用中間値を検証装置103に送付する(ステップ902)。
検証装置103は、データ入出力部221が、まず墨塗り装置102から復号用中間値を受け取る(ステップ903)。
次に、署名検証部224が、復号用中間値から鍵群と終端値Gを導出する(ステップ904)。
次に、署名検証部224が、終端値Gを検証する(ステップ905)。
これは、ステップ904により得た終端値Gと、当初の墨塗りデータを検証した際に計算していた終端値Gとが一致しているかを調べることにより行う。
もし一致していなければ、署名時とは異なる鍵群が用いられていることが分かるので処理を中止する。最後に、得られた鍵群を用いて墨塗りブロックを復号する(ステップ906)。
なお、上記説明では墨塗り装置102が墨塗り部分の開示を行う構成としたが、署名装置101が行う構成としてもよい。
また、上記説明では、墨塗り装置102において、墨塗り部214が復号用中間値を算出することとしたが、墨塗りデータの生成段階で生成した中間値群を中間値記憶部215に格納しておき、中間値記憶部215から該当する中間値を復号用中間値として抽出するようにしてもよい。
最後に、墨塗り部分の事後の開示の可否を制御する方法を説明する。
ここでは複数の墨塗り装置がある場合を取り上げ、墨塗り装置Aが墨塗り装置Bへ墨塗りデータを送る際に事後の開示の可否を制御する方法を説明する。
墨塗り装置Aは署名装置101から元データ、初期値、署名を受け取り、データブロックM…Mn−1を墨塗りしてC…Cn−1にし、Mを開示しておくものとする。
そしてCの事後の開示を不可にした上で墨塗りデータ、中間値、署名を墨塗り装置Bに渡すものとする。
この場合、中間値としては、検証時の墨塗りのためにKが導出できなければならず、また事後の開示のためにK…Kn−1が導出できなければならない。
そして、Cの事後の開示を防止するためKが導出できないようなものでなければならない。
以上のことから、墨塗り装置Aは中間値としてg(2)(S)を選択する。そして、元データおよび署名とともに、墨塗り装置Bへ送付する。
以上のように、本実施の形態によれば、デジタルデータを任意の大きさのブロックに分割し、ブロックごとの墨塗りと、事後の開示とを可能にする電子署名方式を実現することができる。
特に、事後の開示の場合、データそのものを送付することなく中間値を送付するのみで実現できるため、従来の技術に比べ墨塗り装置と検証装置との間の通信量を削減することができ、また、メモリ使用量を抑制することができる。
また、本実施の形態によれば、墨塗り部分についての事後の開示の可否を制御可能な電子署名方式を実現することができる。
また、本実施の形態によれば、元データの中で開示する領域が全体でL個に分かれている場合、各領域がどのブロックにまたがっているかに関わらず、墨塗り装置から検証装置に送付する中間値の個数をL個とすることができ、墨塗り装置と検証装置との間の通信量を削減することができ、また、メモリ使用量を抑制することができる。
なお、前述の特許文献2の方式では、明示的に示されてはいないものの、検証者から墨塗り部分の開示を求められたとき、墨塗り者は、データそのものではなく該当する箇所を復号するのに必要な一方向性関数の中間値を渡すことも可能であると考えられる。この場合、検証者は受け取った中間値を用いて部分暗号化デジタルデータを復号することにより、元のデータを復元することができる。
このように墨の取り除きができるのは、墨塗りの際にデータをハッシュ値に置き換えるのではなく暗号化しているためである。
しかし、前述したように、特許文献2では、先頭から途中までを暗号化した部分暗号化データを生成するものであり、先頭から連続した領域しか墨塗りできないという課題がある。
つまり、デジタルデータの任意の領域を墨塗りすることができないという課題がある。
この点、本実施の形態によれば、以上において説明したように、デジタルデータのn個のブロックのうちの任意のブロックを墨塗りすることができる。
以上、本実施の形態では、任意のブロックの墨塗り/墨の取り除きを可能にするために、2つの可換な一方向性関数を組み合わせ、その出力を鍵としてデータを暗号化したことを説明した。
実施の形態2.
以上の実施の形態1は、デジタルデータをブロックに分割し、ブロック単位で墨塗りができるようにしたものであるが、次にブロックに分割する必要なくビットごとに墨塗りができる実施の形態を示す。
つまり、実施の形態1では、パーツの例としてデジタルデータを任意のブロックに分ける場合を説明したが、本実施の形態では、パーツの例としてビットごとに分ける場合を説明する。
本実施の形態では、署名装置、墨塗り装置、および検証装置の内部構成、および初期値から鍵群と終端値を導出する方法は実施の形態1と同様である。
図12は、本実施の形態に関して、署名装置101において元データ1001に対して署名を発行する方法を示した図である。
図12において、元データ1001はmからmまでのnビットからなるデジタルデータである。
1002は鍵K304のハードコアビットである。ここで、1ビット出力の関数B(x)の出力を一方向性関数F(x)から推測することが難しい場合、B(x)をF(x)のハードコアビットと言う。
例えばRSA(登録商標)関数F(x)=x mod Nにおけるxの最下位ビットはハードコアビットである。
1003は鍵Kのハードコアビットである。
1004は鍵K305のハードコアビットである。
図12に示すように、署名装置101では、元データ105の各ビットに対して、各ビットの順序に対応する順序の鍵のハードコアビットを適用して、全てのビットを暗号化してcからcの暗号化ビットとし、n個の暗号化ビットに終端値G306を付加して署名対象データ1005とし、署名対象データ1005に署名鍵108を適用して署名1006とする。
図13は、本実施の形態に関して、デジタルデータに対して電子署名を生成する手順例を示したフローチャートである。
図14は、本実施の形態に関して、デジタルデータに対して墨塗りを行う手順例を示したフローチャートである。
図15は、本実施の形態に関して、墨塗りデータの署名の検証を行う手順例を示したフローチャートである。
次に、図5と図12から図15を用いて、本実施の形態における署名の生成方法、墨塗り方法、および検証方法を述べる。
署名装置101がnビットの元データ1001に対して電子署名を生成する場合、まず初期値生成部204において初期値S107を生成する(ステップ1101)。
次に、署名生成部205が、初期値S107から出発し、図5に示すように一方向性関数f301および一方向性関数g302を適用して鍵群K、K…Kおよび終端値G306を算出する(ステップ1102)。
次に、署名生成部205が、元データのビット列m、m…mと、鍵群K、K…Kのハードコアビットの列k、k…kとの排他的論理和c、c…cをとることで元データを墨塗りする(ステップ1103)。
そして、署名生成部205が、cからcまでと終端値Gを結合して署名対象データ1005にする。
最後に、署名生成部205が、署名対象データ1005に対し、署名鍵108を用いて署名1006を発行する(ステップ1104)。
墨塗り装置102がデジタルデータに対して墨塗りを行う場合、データ入出力部211が、まず署名装置101から元データ、署名、および初期値を受け取る(ステップ1201)。
次に、墨塗り部214が、初期値Sから出発し、署名装置101と同様にして鍵群K、K…Kを算出する(ステップ1202)。
次に、墨塗り部214が、鍵群K、K…Kのハードコアビットk、k…kを用いて元データを墨塗りする(ステップ1203)。
ここで、署名生成の場合は元データのすべてのビットについて墨塗りを行ったが、ここでは墨塗りすべきビットに関してのみ墨塗りを行い、それ以外のビットは墨塗りせずそのままにしておく。最後に、墨塗り部214が、開示ビット(墨塗りしていない非暗号化ビット)を墨塗りするのに必要な中間値を求める(ステップ1204)。
検証装置103が墨塗りデータの検証を行う場合、データ入出力部221が、まず墨塗り装置102から墨塗りデータ、署名、および中間値を受け取る(ステップ1301)。
次に、署名検証部224が、受け取った中間値から、墨塗りデータの中の開示ビットを墨塗りするのに必要な鍵群と終端値Gを算出する(ステップ1302)。
次に、署名検証部224が、開示ビットを墨塗りし、終端値Gと結合することで検証対象データを生成する(ステップ1303)。
最後に、署名検証部224が、検証鍵を用いて署名から署名対象データを取り出し、検証対象データと比較する。両者が一致すれば、墨塗り以外の改ざんが行われていないことが分かるので検証に成功する。
以上のように、本実施の形態によれば、デジタルデータをブロックに分割することなく、ビットごとに墨塗りすることができる。
また、実施の形態1と同様にして、墨塗り装置が検証装置に墨塗りデータを送信した後、中間値を送付するだけで一部または全部の墨塗り部分を開示することができる。
また、実施の形態1と同様にして、本実施の形態においても墨塗り部分についての事後の開示の可否を制御可能な電子署名方式を実現することができる。
以上、本実施の形態では、ブロックごとの墨塗りだけでなく、ビットごとの墨塗りが可能であることを説明した。
実施の形態3.
以上の実施の形態1および2は、墨塗りに用いる鍵群の生成のために2つの可換な一方向性関数を用いていたが、次にこのような可換な一方向性関数を用いない場合における実施の形態を示す。
図16は、本実施の形態における鍵群および終端値の生成過程例を表した図である。
図16において、初期値S1401、鍵群1402、および終端値G1403はそれぞれ図5における初期値S107、鍵群307、および終端値G306に対応している。
中間値群1404は、初期値S1401から終端値G1403に至るまでの中間値の総称であり、初期値は含まず終端値は含む。
本実施の形態における鍵群および終端値の生成過程は以下のとおりである。
初期値S1401に対し、2種類の一方向性関数を適用して、その出力をそれぞれa、aとする。
次に、aとaのそれぞれに同じように2種類の一方向性関数を適用して、その出力をそれぞれa11、a12およびa21、a22とする。
これを繰り返し、鍵群K、K…Kを生成する。
ここでnはブロックの個数である。
次に、鍵群K、K…Kに対しある一方向性関数をそれぞれ適用して、b、b…bを得る。次に、bとbとを結合したデータをある一方向性関数に入力して、b12を得る。これを繰り返し、最終的に終端値G1403を得る。
なお、一方向性関数の例としては、ハッシュ関数SHA−1やRabin関数、あるいは擬似乱数生成器などが挙げられる。
ここで、上記では鍵群の導出のために2種類の一方向性関数を適用するとしたが、1種類の一方向性関数を適用し、入力を一部変更する構成としてもよい。
例えば、一方向性関数として1種類のハッシュ関数Hを用いた場合、初期値からaとaを導出する際に、a=H(0||S)、a=H(1||S)としてもよい。ここで記号||はデータの結合を表す。
あるいは、1種類の一方向性関数を適用し、出力を分割する構成としてもよい。例えば、一方向性関数として擬似乱数生成器を用いて、入力の2倍の長さを出力し、出力の前半をa、後半をaとしてもよい。
また、上記のように図16では二分木を形成する構成としているが、分岐数は任意の数であってよく、分岐ごとに異なっていてもよい。
その場合には、最大分岐数をNとして一方向性関数をN種類用意するか、入力を最大N通り変化させるか、あるいは出力を入力の最大N倍の長さにすればよい。
複数のブロックを一括して墨塗りまたは開示する可能性が高いことが署名時に分かっている場合には、分岐数をそのブロック数とすることにより、墨塗り装置から検証装置に送付すべき中間値の個数を低減することができるということが、後述の説明より理解されよう。
本実施の形態における署名方法は実施の形態1とほぼ同様であり、以下に述べる手順で行う。
元データ105に対して電子署名を生成する場合、署名装置101において署名生成部205が、まず元データをいくつかのブロック(ここではMからMまでのn個とする)に分割する。
次に、初期値生成部204において初期値S107を生成する。
次に、署名生成部205が、初期値S107から出発し、図16に示すように一方向性関数を適用して鍵群K、K…Kおよび終端値G306を算出する。
次に、署名生成部205が、鍵群K…Kを用いて元データのブロックM…Mをすべて墨塗りし、署名対象データ401を生成する。
この墨塗りの具体的な方法は、ブロック暗号やストリーム暗号などの共通鍵暗号による暗号化である。すなわち、Eを暗号化関数、Kをその鍵としてC=EKi(M)によりMをCに暗号化する。
そして、署名生成部205は、CからCまでと終端値G306を結合して署名対象データ401にする。
最後に署名対象データ401に対し、署名鍵108を用いて署名106を発行する。
墨塗り方法は以下のとおりである。
ここでは例として元データがMからMまでの8ブロックであるとし、先頭ブロックMを墨塗りする場合について説明する。
まず、墨塗り装置102においてデータ入出力部211が、署名装置101から元データ、署名、および初期値を受け取る。
次に、墨塗り部214が、初期値Sから出発し、署名装置101と同様にして鍵群K、K…Kを算出する。
次に、墨塗り部214が、鍵Kを用いてMを墨塗りする。
最後に、墨塗り部214が、開示ブロックの墨塗りに必要な暗号用中間値と終端値の導出に必要な終端値用中間値を求める。
開示ブロックの墨塗りのためにはK…Kが必要である。
ところが、KとKはa12から導出することができ、またKからKまではaから導出することができる。
したがって開示ブロックの墨塗りのために必要な暗号用中間値はKとa12とaである。
一方、終端値の導出には、bがあればよい。なぜならば、b、b34、およびb58がそれぞれK、a12、およびaから導出可能であり、これらにより終端値Gが導出可能だからである。
以上より、開示ブロックの墨塗りと終端値の導出に必要な中間値は、K、a12、a、およびbである。
なお、すべてのブロックを墨塗りする場合には、中間値は終端値Gである。
ここで、実施の形態1であれば、元データ全体の中で開示する領域がL個に分割されている場合、各領域がどのブロックにまたがっているかに関わらず、墨塗りに必要な中間値の個数はL個であったが、本実施の形態では一般にL個以上になる。
したがって、墨塗り装置から検証装置に送付すべき中間値の個数は実施の形態1に比べて増えることになる。
検証方法は以下のとおりである。
まず、検証装置103において、データ入出力部221が墨塗り装置102から墨塗りデータ、署名、および中間値を受け取る。
次に、署名検証部224が、受け取った中間値から、墨塗りデータの中の開示ブロックを墨塗りするのに必要な鍵群と終端値Gを算出する。
次に、署名検証部224が、開示ブロックを墨塗りし、終端値Gと結合することで検証対象データを生成する。
最後に、検証鍵を用いて署名から署名対象データを取り出し、検証対象データと比較する。両者が一致すれば、墨塗り以外の改ざんが行われていないことが分かるので検証に成功する。
次に、墨塗り装置102が検証装置103に墨塗りデータを送信した後、一部または全部の墨塗り部分を開示する方法を説明する。
ここでは図16を用いて、全てのブロックが墨塗りされた状態から、M…Mを開示する場合を例にして説明する。
この場合、鍵群K…Kを導出するのにaが必要であり、終端値Gを導出するのにb58が必要であるから、墨塗り装置102から検証装置103に対してaおよびb58を送付すればよい。
検証装置103はaおよびb58を受け取ると、鍵群K、…、Kと終端値Gを導出する。
次に、終端値Gを検証する。
もし終端値Gが当初の墨塗りデータを検証した際に計算していた終端値Gと異なっていれば、署名時とは異なる鍵群が用いられていることが分かるので処理を中止する。
一致していれば、最後に鍵群K…Kを用いて墨を取り除いてM…Mを復元する。
最後に、墨塗り部分の事後の開示の可否を制御する方法を説明する。
ここでは複数の墨塗り装置がある場合を取り上げ、墨塗り装置Aが墨塗り装置Bへ墨塗りデータを送る際に事後の開示の可否を制御する方法を説明する。
また、元データはM…Mの8ブロックであり、図16の鍵群および終端値により署名されているものとする。
墨塗り装置Aは署名装置101から元データ、初期値、署名を受け取り、データブロックM…Mを墨塗りしてC…Cにし、Mを開示しておくものとする。
そしてCの事後の開示を不可にした上で墨塗りデータ、中間値、署名を墨塗り装置Bに渡すものとする。
この場合、中間値としては、検証時の墨塗りのためにKが導出できなければならず、また事後の開示のためにK…Kが導出できなければならない。
そして、Cの事後の開示を防止するためKが導出できないようなものでなければならない。
以上のことから、墨塗り装置Aは中間値としてb、K、a12、およびaを選択する。
以上のように、本実施の形態によれば、デジタルデータを任意の大きさのブロックに分割し、ブロックごとの墨塗りと、事後の開示とを可能にする電子署名方式を実現することができる。
特に、事後の開示の場合、データそのものを送付することなく中間値を送付するのみで実現できるため、従来の技術に比べ墨塗り装置と検証装置との間の通信量を削減することができる。
また、本実施の形態によれば、墨塗り部分についての事後の開示の可否を制御可能な電子署名方式を実現することができる。
また、本実施の形態によれば、2つの可換な一方向性関数を用いることなく、上記電子署名方式を実現することができる。
以上、本実施の形態では、同じく任意のブロックの墨塗り/墨の取り除きを可能にするために、一方向性関数を用いて木構造を形成したことを説明した。
以上、様々な実施の形態を示して本発明を説明したが、当業者であれば、本発明の趣旨と範囲は本明細書内の特定の説明に限定されるものではないことが理解されることは言うまでもない。
したがって、例えばブロックごとの墨塗りとビットごとの墨塗りとを組み合わせ、デジタルデータのある領域はブロックに分割して墨塗りをし、ある領域はビットごとの墨塗りをするということも可能である。
あるいは、実施の形態3の方式において、鍵のハードコアビットをとることによりビットごとの墨塗りをすることも可能である。
最後に、実施の形態1〜3に示した署名装置101、墨塗り装置102、検証装置103のハードウェア構成例について説明する。
図17は、実施の形態1〜3に示す署名装置101、墨塗り装置102、検証装置103のハードウェア資源の一例を示す図である。
なお、図17の構成は、あくまでも署名装置101、墨塗り装置102、検証装置103のハードウェア構成の一例を示すものであり、署名装置101、墨塗り装置102、検証装置103のハードウェア構成は図17に記載の構成に限らず、他の構成であってもよい。
図17において、署名装置101、墨塗り装置102、検証装置103は、プログラムを実行するCPU911(Central Processing Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。
CPU911は、バス912を介して、例えば、ROM(Read Only Memory)913、RAM(Random Access Memory)914、通信ボード915、表示装置901、キーボード902、マウス903、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。
更に、CPU911は、FDD904(Flexible Disk Drive)、コンパクトディスク装置905(CDD)、プリンタ装置906、スキャナ装置907と接続していてもよい。また、磁気ディスク装置920の代わりに、光ディスク装置、メモリカード(登録商標)読み書き装置などの記憶装置でもよい。
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、磁気ディスク装置920の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置の一例である。
通信ボード915、キーボード902、マウス903、スキャナ装置907、FDD904などは、入力装置の一例である。
また、通信ボード915、表示装置901、プリンタ装置906などは、出力装置の一例である。
通信ボード915は、図1に示すように、ネットワークに接続されている。例えば、通信ボード915は、LAN(ローカルエリアネットワーク)、インターネット、WAN(ワイドエリアネットワーク)などに接続されていても構わない。
磁気ディスク装置920には、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。
プログラム群923のプログラムは、CPU911がオペレーティングシステム921、ウィンドウシステム922を利用しながら実行する。
また、RAM914には、CPU911に実行させるオペレーティングシステム921のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。
また、RAM914には、CPU911による処理に必要な各種データが格納される。
また、ROM913には、BIOS(Basic Input Output System)プログラムが格納され、磁気ディスク装置920にはブートプログラムが格納されている。
署名装置101、墨塗り装置102、検証装置103の起動時には、ROM913のBIOSプログラム及び磁気ディスク装置920のブートプログラムが実行され、BIOSプログラム及びブートプログラムによりオペレーティングシステム921が起動される。
上記プログラム群923には、実施の形態1〜3の説明において「〜部」として説明している機能を実行するプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。
ファイル群924には、実施の形態1〜3の説明において、「〜の判断」、「〜の計算」、「〜の算出」、「〜の生成」、「〜の比較」、「〜の評価」、「〜の更新」、「〜の設定」、「〜の登録」、「〜の選択」等として説明している処理の結果を示す情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。
「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのCPUの動作に用いられる。
抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態1〜3で説明しているフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、CDD905のコンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク、DVD等の記録媒体に記録される。また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
また、実施の形態1〜3の説明において「〜部」として説明しているものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明しているものは、ROM913に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。すなわち、プログラムは、実施の形態1〜3の「〜部」としてコンピュータを機能させるものである。あるいは、実施の形態1〜3の「〜部」の手順や方法をコンピュータに実行させるものである。
このように、実施の形態1〜3に示す署名装置101、墨塗り装置102、検証装置103は、処理装置たるCPU、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス、通信ボード等、出力装置たる表示装置、通信ボード等を備えるコンピュータであり、上記したように「〜部」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
実施の形態1に係るシステム構成例を示す図。 実施の形態1に係る署名装置の構成例を示す図。 実施の形態1に係る墨塗り装置の構成例を示す図。 実施の形態1に係る検証装置の構成例を示す図。 実施の形態1に係る初期値から中間値群、鍵群、終端値を生成する例を示す図。 実施の形態1に係る電子署名を生成する手順を示す図。 実施の形態1に係る電子署名を生成する手順を示すフローチャート図。 実施の形態1に係る墨塗りデータを生成する手順を示すフローチャート図。 実施の形態1に係る墨塗りデータに対して検証を行う手順を示すフローチャート図。 実施の形態1に係る墨塗りデータから検証対象データを導出する手順を示す図。 実施の形態1に係る墨塗り部分を開示する手順を示すフローチャート図。 実施の形態2に係る電子署名を生成する手順を示すフローチャート図。 実施の形態2に係る電子署名を生成する手順を示すフローチャート図。 実施の形態2に係る墨塗りデータを生成する手順を示すフローチャート図。 実施の形態2に係る墨塗りデータに対して検証を行う手順を示すフローチャート図。 実施の形態3に係る中間値群のツリー構造を示すフローチャート図。 実施の形態1〜3に係る署名装置、墨塗り装置及び検証装置のハードウェア構成例を示す図。
符号の説明
101 署名装置、102 墨塗り装置、103 検証装置、104 ネットワーク、105 元データ、106 署名、107 初期値、108 署名鍵、109 墨塗りデータ、110 中間値、111 検証鍵、201 データ入出力部、202 ユーザ入力部、203 表示部、204 初期値生成部、205 署名生成部、211 データ入出力部、212 ユーザ入力部、213 表示部、214 墨塗り部、215 中間値記憶部、221 データ入出力部、222 ユーザ入力部、223 表示部、224 署名検証部。

Claims (20)

  1. デジタルデータに対する電子署名を生成する署名装置と、デジタルデータに対する電子署名を検証するとともに検証に成功したデジタルデータを表示する検証装置との間で、デジタルデータにおける開示を制限する処理を行う開示制限処理装置であって、
    前記署名装置が管理するn(n≧2)個のパーツに分けることができるデジタルデータと、前記署名装置が生成した初期値と、前記署名装置が所定の演算手順に従って前記初期値に対して一方向性演算を行って前記初期値から生成したn個の鍵を用いて暗号化したデジタルデータのn個のパーツと前記初期値に対する一方向性演算を規定回数行った後に得られる終端値とに対して生成した電子署名とを入力するデータ入力部と、
    入力した前記初期値に対して、前記署名装置と同じ演算手順にて一方向性演算を行ってn個の鍵を順序付けて生成する鍵生成部と、
    前記デジタルデータを順序付けてn個のパーツに分け、n個のパーツのうちの1つ以上のパーツを対象パーツとして指定し、前記鍵生成部により生成されたn個の鍵のうち対応する順序の鍵を用いて各対象パーツに対して暗号化処理又は復号処理を行い、1つ以上のパーツが暗号化されている開示制限デジタルデータを生成する開示制限デジタルデータ生成部と、
    前記鍵生成部によるn個の鍵の生成過程において導出される、前記n個の鍵が含まれる複数の中間値の中から、前記開示制限デジタルデータのパーツのうち暗号化されていない非暗号化パーツを前記検証装置が暗号化する際に用いる中間値を前記署名装置における演算手順に基づいて暗号用中間値として抽出する中間値抽出部と、
    前記開示制限デジタルデータと、前記電子署名と、前記暗号用中間値とを出力するデータ出力部とを有することを特徴とする開示制限処理装置。
  2. 前記中間値抽出部は、
    前記暗号用中間値として、前記検証装置が前記署名装置と同じ演算手順にて一方向性演算を行うことで非暗号化パーツを暗号化する暗号鍵が生成できる中間値を抽出することを特徴とする請求項1に記載の開示制限処理装置。
  3. 前記開示制限処理装置は、更に、
    前記データ出力部により前記開示制限デジタルデータが出力された後に、前記開示制限デジタルデータに含まれる暗号化されている暗号化パーツのうち開示制限が解除される暗号化パーツを制限解除パーツとして指定する制限解除パーツ指定部を有し、
    前記中間値抽出部は、
    前記鍵生成部によるn個の鍵の生成過程において導出される、前記n個の鍵が含まれる複数の中間値の中から、前記検証装置が前記制限解除パーツを復号する際に用いる中間値を前記署名装置における演算手順に基づいて復号用中間値として抽出し、
    前記データ出力部は、
    前記中間値抽出部により抽出された前記復号用中間値を出力することを特徴とする請求項1又は2に記載の開示制限処理装置。
  4. 前記中間値抽出部は、
    前記復号用中間値として、前記検証装置が前記署名装置と同じ演算手順にて一方向性演算を行うことで制限解除パーツを復号する復号鍵が生成できる中間値を抽出することを特徴とする請求項3に記載の開示制限処理装置。
  5. 前記データ入力部は、
    前記署名装置が可換な2つの一方向性関数を組み合わせて前記初期値に対して一方向性演算を行って前記初期値から生成したn個の鍵を用いて暗号化したデジタルデータのn個のパーツと2つの一方向性関数を組み合わせた一方向性演算を前記初期値に対して規定回数行った後に得られる終端値とに対して生成した電子署名を入力し、
    前記鍵生成部は、
    入力された前記初期値に対して、前記署名装置と同じ演算手順にて2つの一方向性関数を組み合わせた一方向性演算を行ってn個の鍵を生成することを特徴とする請求項1〜4のいずれかに記載の開示制限処理装置。
  6. 前記鍵生成部は、
    2つの一方向性関数の組合せパターンをn通り記憶し、n通りの組合せパターンに従って前記初期値に対して一方向性演算を行い、n個の鍵を生成することを特徴とする請求項5に記載の開示制限処理装置。
  7. 前記中間値抽出部は、
    前記鍵生成部によるn個の鍵の生成過程において導出された、前記n個の鍵が含まれる複数の中間値の中から、前記検証装置が前記終端値を導出するために必要な中間値を前記署名装置における演算手順に基づいて終端値用中間値として抽出し、
    前記データ出力部は、
    前記開示制限デジタルデータと、前記電子署名と、前記暗号用中間値と、前記終端値用中間値とを出力することを特徴とする請求項1〜4のいずれかに記載の開示制限処理装置。
  8. 前記開示制限処理装置は、更に、
    前記データ出力部により前記開示制限デジタルデータが出力された後に、前記開示制限デジタルデータに含まれる暗号化されている暗号化パーツのうち開示制限が解除される暗号化パーツを制限解除パーツとして指定する制限解除パーツ指定部を有し、
    前記中間値抽出部は、
    前記鍵生成部によるn個の鍵の生成過程において導出される、前記n個の鍵が含まれる複数の中間値の中から、前記制限解除パーツを前記検証装置が復号する際に用いる中間値を前記署名装置における演算手順に基づいて復号用中間値として抽出するとともに、前記復号用中間値以外の中間値であって、前記検証装置が前記終端値を導出するために必要な中間値を前記署名装置における演算手順に基づいて終端値用中間値として抽出し、
    前記データ出力部は、
    前記中間値抽出部により抽出された前記復号用中間値と前記終端値用中間値とを出力することを特徴とする請求項1〜4、7のいずれかに記載の開示制限処理装置。
  9. デジタルデータに対する電子署名を生成する署名装置と、デジタルデータに対する電子署名を検証するとともに検証に成功したデジタルデータを表示する検証装置との間で、デジタルデータにおける開示を制限する処理を行う開示制限処理装置であって、
    前記署名装置が管理するn(n≧2)個のパーツに分けることができるデジタルデータと、前記署名装置が所定の演算手順に従って前記初期値に対して一方向性演算を行って初期値から生成した順序付けられたn個の鍵と、n個の鍵の生成過程において導出された、前記n個の鍵が含まれる複数の中間値と、前記署名装置がn個の鍵を用いて暗号化したデジタルデータのn個のパーツと前記初期値に対する一方向性演算を規定回数行った後に得られる終端値とに対して生成した電子署名とを入力するデータ入力部と、
    前記デジタルデータを順序付けてn個のパーツに分け、n個のパーツのうちの1つ以上のパーツを対象パーツとして指定し、前記データ入力部により入力されたn個の鍵のうち対応する順序の鍵を用いて各対象パーツに対して暗号化処理又は復号処理を行い、1つ以上のパーツが暗号化されている開示制限デジタルデータを生成する開示制限デジタルデータ生成部と、
    前記データ入力部により入力された複数の中間値の中から、前記開示制限デジタルデータのパーツのうち暗号化されていない非暗号化パーツを前記検証装置が暗号化する際に用いる中間値を前記署名装置における演算手順に基づいて暗号用中間値として抽出する中間値抽出部と、
    前記開示制限デジタルデータと、前記電子署名と、前記暗号用中間値とを出力するデータ出力部とを有することを特徴とする開示制限処理装置。
  10. 前記開示制限処理装置は、更に、
    前記データ出力部により前記開示制限デジタルデータが出力された後に、前記開示制限デジタルデータに含まれる暗号化されている暗号化パーツのうち開示制限が解除される暗号化パーツを制限解除パーツとして指定する制限解除パーツ指定部を有し、
    前記中間値抽出部は、
    前記データ入力部により入力された複数の中間値の中から、前記制限解除パーツを前記検証装置が復号する際に用いる中間値を前記署名装置における演算手順に基づいて復号用中間値として抽出し、
    前記データ出力部は、
    前記中間値抽出部により抽出された前記復号用中間値を出力することを特徴とする請求項9に記載の開示制限処理装置。
  11. 前記データ入力部は、
    前記署名装置が可換な2つの一方向性関数を組み合わせて前記初期値に対して一方向性演算を行って前記初期値から生成したn個の鍵と、前記署名装置がn個の鍵を用いて暗号化したデジタルデータのn個のパーツと2つの一方向性関数を組み合わせた一方向性演算を前記初期値に対して規定回数行った後に得られる終端値とに対して生成した電子署名とを入力することを特徴とする請求項9又は10に記載の開示制限処理装置。
  12. 前記中間値抽出部は、
    前記署名装置によるn個の鍵の生成過程において導出された、前記n個の鍵が含まれる複数の中間値の中から、前記暗号用中間値以外の中間値であって、前記検証装置が前記終端値を導出するために必要な中間値を前記署名装置における演算手順に基づいて終端値用中間値として抽出し、
    前記データ出力部は、
    前記開示制限デジタルデータと、前記電子署名と、前記暗号用中間値と、前記終端値用中間値とを出力することを特徴とする請求項9又は10に記載の開示制限処理装置。
  13. 前記データ入力部は、
    2nビット以上のデジタルデータを入力し、
    前記開示制限デジタルデータ生成部は、
    前記デジタルデータを、各々が少なくとも1ビットn個のブロックに分けることを特徴とする請求項1〜12のいずれかに記載の開示制限処理装置。
  14. 前記データ入力部は、
    nビットのデジタルデータを入力し、
    前記開示制限デジタルデータ生成部は、
    前記デジタルデータをビットごとにn個に分けることを特徴とする請求項1〜12のいずれかに記載の開示制限処理装置。
  15. 前記開示制限デジタルデータ生成部は、
    前記デジタルデータのいずれかのビットを対象ビットとして指定し、対応する順序の鍵のハードコアビットを用いて各対象ビットに対して暗号化処理又は復号処理を行い、1つ以上のビットが暗号化されている開示制限デジタルデータを生成することを特徴とする請求項14に記載の開示制限処理装置。
  16. デジタルデータに対する電子署名を署名鍵を用いて生成する署名装置と、
    デジタルデータに対する電子署名を検証鍵を用いて検証するとともに検証に成功したデジタルデータを表示する検証装置と、
    デジタルデータにおける開示を制限する処理を行う開示制限処理装置とを有するデータ処理システムであって、
    前記署名装置は、
    デジタルデータを順序付けてn(n≧2)個のパーツに分け、
    鍵の生成に用いる初期値を生成し、所定の演算手順に従って前記初期値に対して一方向性演算を行って前記初期値からn個の鍵を順序付けて生成するとともに、前記初期値に対する一方向性演算を規定回数行って終端値を生成し、
    各々に対応する順序の鍵を用いてデジタルデータのn個のパーツを暗号化し、暗号化したn個のパーツと前記終端値とに対して前記署名鍵を用いて電子署名を生成し、
    前記デジタルデータと、前記初期値と、前記電子署名とを出力し、
    前記開示制限処理装置は、
    前記署名装置から出力された前記デジタルデータと、前記初期値と、前記電子署名とを入力し、
    入力した前記初期値に対して、前記署名装置と同じ演算手順にて一方向性演算を行ってn個の鍵を順序付けて生成し、
    入力した前記デジタルデータを順序付けてn個のパーツに分け、n個のパーツのうちの1つ以上のパーツを対象パーツとして指定し、生成したn個の鍵のうち対応する順序の鍵を用いて各対象パーツに対して暗号化処理又は復号処理を行い、1つ以上のパーツが暗号化されている開示制限デジタルデータを生成し、
    n個の鍵の生成過程において導出される、前記n個の鍵が含まれる複数の中間値の中から、前記開示制限デジタルデータのパーツのうち暗号化されていない非暗号化パーツを前記検証装置が暗号化する際に用いる中間値を前記署名装置における演算手順に基づいて暗号用中間値として抽出し、
    前記開示制限デジタルデータと、前記電子署名と、前記暗号用中間値とを出力し、
    前記検証装置は、
    前記開示制限処理装置から出力された前記開示制限デジタルデータと、前記電子署名と、前記暗号用中間値とを入力し、
    前記署名装置における演算手順に基づいて、前記暗号用中間値を用いて、前記終端値を導出するとともに、各非暗号化パーツの暗号化に用いる暗号鍵を導出し、
    導出した暗号鍵を用いて各非暗号化パーツの暗号化処理を行い、前記開示制限デジタルデータのn個のパーツが全て暗号化された状態にし、
    前記電子署名に対して前記検証鍵を用いて暗号化されたn個のパーツ及び終端値を抽出し、
    前記電子署名から抽出した暗号化されたn個のパーツ及び終端値と、前記開示制限デジタルデータにおける暗号化されたn個のパーツ及び導出した終端値とを比較することを特徴とするデータ処理システム。
  17. 前記開示制限処理装置は、
    前記開示制限デジタルデータを出力した後に、前記開示制限デジタルデータに含まれる暗号化されている暗号化パーツのうち開示制限が解除される暗号化パーツを制限解除パーツとして指定し、
    n個の鍵の生成過程において導出される、前記n個の鍵が含まれる複数の中間値の中から、前記検証装置が前記制限解除パーツを復号する際に用いる中間値を前記署名装置における演算手順に基づいて復号用中間値として抽出し、
    抽出した前記復号用中間値を出力し、
    前記検証装置は、
    前記開示制限処理装置から出力された前記復号用中間値を入力し、
    前記署名装置における演算手順に基づいて、前記復号用中間値を用いて、各制限解除パーツの復号に用いる復号鍵を導出し、
    導出した復号鍵を用いて各制限解除パーツを復号することを特徴とする請求項16に記載のデータ処理システム。
  18. 前記署名装置は、
    可換な2つの一方向性関数を組み合わせて前記初期値に対して一方向性演算を行って前記初期値からn個の鍵を生成し、
    前記開示制限処理装置は、
    入力した前記初期値に対して、前記署名装置と同じ演算手順にて2つの一方向性関数を組み合わせた一方向性演算を行ってn個の鍵を生成することを特徴とする請求項16又は17に記載のデータ処理システム。
  19. 前記開示制限処理装置は、
    n個の鍵の生成過程において導出された、前記n個の鍵が含まれる複数の中間値の中から、前記暗号用中間値以外の中間値であって、前記検証装置が前記終端値を導出するために必要な中間値を前記署名装置における演算手順に基づいて終端値用中間値として抽出し、
    前記開示制限デジタルデータと、前記電子署名と、前記暗号用中間値と、前記終端値用中間値とを出力し、
    前記検証装置は、
    前記開示制限処理装置から出力された前記開示制限デジタルデータと、前記電子署名と、前記暗号用中間値と、前記終端値用中間値とを入力し、
    前記署名装置における演算手順に基づいて、前記暗号用中間値と前記終端値用中間値とを用いて、前記終端値を導出することを特徴とする請求項16〜18のいずれかに記載のデータ処理システム。
  20. コンピュータを、請求項1又は9に記載の開示制限処理装置として機能させるためのプログラム。
JP2008110995A 2008-04-22 2008-04-22 開示制限処理装置及びデータ処理システム及びプログラム Expired - Fee Related JP5268413B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008110995A JP5268413B2 (ja) 2008-04-22 2008-04-22 開示制限処理装置及びデータ処理システム及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008110995A JP5268413B2 (ja) 2008-04-22 2008-04-22 開示制限処理装置及びデータ処理システム及びプログラム

Publications (2)

Publication Number Publication Date
JP2009267470A JP2009267470A (ja) 2009-11-12
JP5268413B2 true JP5268413B2 (ja) 2013-08-21

Family

ID=41392818

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008110995A Expired - Fee Related JP5268413B2 (ja) 2008-04-22 2008-04-22 開示制限処理装置及びデータ処理システム及びプログラム

Country Status (1)

Country Link
JP (1) JP5268413B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118101181B (zh) * 2024-02-21 2024-08-30 之江实验室 一种风险识别的方法、装置、存储介质及电子设备

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004133801A (ja) * 2002-10-11 2004-04-30 Toshiba Corp コンテンツ提供システム及びコンテンツ提供方法
JP4208678B2 (ja) * 2003-07-11 2009-01-14 キヤノン株式会社 鍵情報処理方法及びその装置、プログラム
CN1954538B (zh) * 2004-05-12 2012-06-20 艾利森电话股份有限公司 用于安全广播的密钥管理消息
JP2006060722A (ja) * 2004-08-24 2006-03-02 Hitachi Ltd 電子文書の真正性保証方法および電子文書の公開システム
WO2006075146A1 (en) * 2005-01-12 2006-07-20 British Telecommunications Public Limited Company Radio frequency identification tag security systems
JP5034498B2 (ja) * 2006-02-20 2012-09-26 株式会社日立製作所 ディジタルコンテンツの暗号化,復号方法,及び,ディジタルコンテンツを利用した業務フローシステム

Also Published As

Publication number Publication date
JP2009267470A (ja) 2009-11-12

Similar Documents

Publication Publication Date Title
US12101415B2 (en) Method of RSA signature or decryption protected using a homomorphic encryption
US9515818B2 (en) Multi-block cryptographic operation
CN106888080B (zh) 保护白盒feistel网络实施方案以防错误攻击
US11212082B2 (en) Ciphertext based quorum cryptosystem
US20080084996A1 (en) Authenticated encryption method and apparatus
US11336425B1 (en) Cryptographic machines characterized by a Finite Lab-Transform (FLT)
JP2001007800A (ja) 暗号化装置および方法
KR20120079639A (ko) 화이트박스 암호 테이블을 이용한 콘텐츠 보호 장치, 콘텐츠 암호화 및 복호화 장치
JP2010140473A (ja) 命令レベルのソフトウェア暗号化のための方法及び装置
JP6517436B2 (ja) 暗号化デバイス及び符号化デバイス
EP3667647B1 (en) Encryption device, encryption method, decryption device, and decryption method
JP7024666B2 (ja) Idベースハッシュ証明系構成装置、idベース暗号装置及びプログラム
EP3477889B1 (en) Using white-box in a leakage-resilient primitive
JPWO2021009860A5 (ja)
CN107278357B (zh) 密码系统和方法
JP2009288616A (ja) 秘密分散方法、プログラム、及び装置
Yadav et al. Hybrid cryptography approach to secure the data in computing environment
JP5268413B2 (ja) 開示制限処理装置及びデータ処理システム及びプログラム
JP2011040932A (ja) 認証付き暗号化装置、認証付き暗号化方法、検証付き復号装置、検証付き復号方法、暗号システム、プログラム、記録媒体
CN117725605A (zh) 一种远端自动编制电子档案文件信息保密的方法和系统
US12328397B2 (en) Memory processing apparatus, memory verification apparatus, memory updating apparatus, memory protection system, method, and computer readable medium
CN115603892A (zh) 执行密码操作的方法、对应的处理设备和计算机程序产品
CN114676452A (zh) 一种数据安全存储方法和装置
JP7573788B1 (ja) 認証暗号装置、認証暗号方法及び認証暗号プログラム
JP5818768B2 (ja) マスク生成装置、情報処理装置、及びその方法、プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110324

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130219

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130325

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: 20130409

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130507

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees