JP2008178048A - 電子署名プログラム、該プログラムを記録した記録媒体、電子署名装置、および電子署名方法 - Google Patents

電子署名プログラム、該プログラムを記録した記録媒体、電子署名装置、および電子署名方法 Download PDF

Info

Publication number
JP2008178048A
JP2008178048A JP2007012048A JP2007012048A JP2008178048A JP 2008178048 A JP2008178048 A JP 2008178048A JP 2007012048 A JP2007012048 A JP 2007012048A JP 2007012048 A JP2007012048 A JP 2007012048A JP 2008178048 A JP2008178048 A JP 2008178048A
Authority
JP
Japan
Prior art keywords
binary tree
random number
hash value
partial data
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.)
Granted
Application number
JP2007012048A
Other languages
English (en)
Other versions
JP4359622B2 (ja
JP2008178048A5 (ja
Inventor
Masahiko Takenaka
正彦 武仲
Tetsuya Izu
哲也 伊豆
Koji Yoshioka
孝司 吉岡
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2007012048A priority Critical patent/JP4359622B2/ja
Priority to US11/984,314 priority patent/US8037312B2/en
Publication of JP2008178048A publication Critical patent/JP2008178048A/ja
Publication of JP2008178048A5 publication Critical patent/JP2008178048A5/ja
Application granted granted Critical
Publication of JP4359622B2 publication Critical patent/JP4359622B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6254Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • G06F21/645Protecting data integrity, e.g. using checksums, certificates or signatures using a third party
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2151Time stamp
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/42Anonymization, e.g. involving pseudonyms

Abstract

【課題】ストリーミングデータの原本性の保証、署名対象からのプライバシー保護可能なデータ抽出、および署名関連データの大幅なデータ量削減を実現すること。
【解決手段】先頭から順にハッシュ値h1,h2がペアとなりハッシュ値h3,h4がペアとなる。ハッシュ値h2,h3はペアを構成しない。部分データ数nが奇数であるため、ハッシュ値h5は孤立する。分岐元となる上位のハッシュ値を2段目のハッシュ値として生成する。ハッシュ値h1,h2の分岐元ノードとなるハッシュ値h1,2が生成されハッシュ値h3,h4の分岐元ノードとなるハッシュ値h3,4が生成される。3段目のハッシュ値h1,4も同様に生成される。ハッシュ値h1,4が単一となったため、リーフで孤立したハッシュ値h5を用いて、分岐元ノードを示すハッシュ値h1,5を生成する。ハッシュ値h1,5がルートhRとなる。
【選択図】図6

Description

この発明は、動画像や音声といった署名対象のストリーミングデータからの部分的な抽出(具体的には変更・抽出・墨塗りなどを含む)、署名対象のストリーミングデータからの抽出箇所の特定、ならびに、抽出されたストリーミングデータの正当性を担保し、第三者証明を可能にする電子署名プログラム、該プログラムを記録した記録媒体、電子署名装置、および電子署名方法に関する。
店舗や繁華街、集合住宅などでの監視カメラ設置や、業務車両へのドライブレコーダ設置等が一般化し、動画像を証拠物件として取り扱う事例が増加している。また、電話による取引やサポート業務のトラブル対策として、顧客とオペレータとの会話を録音し証拠として保持することも常識となりつつある。
現在、動画像や音声を証拠とする場合、ビデオテープや画像・音声ファイルをそのまま提供している。しかし、画像・音声保存のデジタル化が進めば、それらの改ざんや編集は容易になり、証拠として取り扱う場合は署名やタイムスタンプといった第三者証明が必要となる。現に電話オペレータの音声をタイムスタンプ付で録音・記録するサービスや製品が販売されており、今後このような技術のニーズが高まることが予想される。
一方で、増加する監視カメラ等に対して、撮影された映像の利用に対するプライバシーの保護が問題となり、議論が行われている。また、個人情報保護法の施行などにより、個人のプライバシー情報の利用が厳しく制限され、本人の要求があれば、開示や部分的な削除などが必要である。
証拠性とプライバシー保護の両立という課題に対して、電子文書の一部に対する部分的な原本性(完全性)の保証や秘匿(墨塗り)する墨塗り署名技術の研究が進んでいる。特に、下記非特許文献1および下記特許文献1は、電子署名を施した文書の原本性を保証しながら、一部を追加や変更、墨塗り(秘匿)、削除が可能な署名技術である。
これらの署名技術を適用することにより、署名付き電子文書に対して墨塗りを施した状態でも署名検証が可能、かつ、墨塗り(非特許文献1の場合「変更」や「追加」も可能)箇所以外は改変がないことを第三者証明することが可能となる。
ここで、非特許文献1の署名技術について説明する。この署名技術はPIAT技術と呼ばれる部分完全性保証署名技術であり、署名者と抽出者と検証者とからなる三者モデルにより署名対象となる電子データの部分完全性保証をおこなう。
署名者とは、署名対象となる電子データに対して署名を施す者またはその者が扱うコンピュータ装置であり、署名することで署名対象の電子データの内容を保証する。署名対象のうちどの部分が抽出されるかわからないという条件下で署名を施す必要がある。
抽出者とは、署名対象となる電子データから一部の電子データを抽出(墨塗り・変更)する者またはその者が扱うコンピュータ装置であり、署名者が署名した電子データから、部分的に電子データを抽出して、検証者に開示する。抽出された電子データを抽出データと称す。抽出方法には、顕名抽出と匿名抽出の2種類の方法がある。抽出者が抽出処理を匿名でおこなう方法を匿名抽出、抽出者の情報を同時に開示し、誰がその抽出処理をおこなったかを明示する方法を顕名抽出と呼ぶ。
検証者とは、抽出者により開示された抽出データが署名者によって保証されているかどうかを検証する者またはその者が扱うコンピュータ装置である。匿名抽出の場合、開示された抽出データは署名者が署名をした電子データの一部であることを検証する。顕名抽出の場合には、開示された抽出データは、署名者が署名をした電子データの一部であることに加え、その抽出処理が抽出者によっておこなわれたことを検証する。つぎに、PIAT技術のアルゴリズムについて説明する。
図22は、PIAT技術の署名者用のアルゴリズムの概要を示す説明図である。図22において、署名者は、署名対象となる電子文書(全文字列)2200を部分データ(各行の文字列)に分割し、各部分データのハッシュ値を計算して、ハッシュ値集合2201を作成する。その後、作成したハッシュ値集合2201に対して署名者の電子署名をおこない、ハッシュ値集合2201と署名者の電子署名2202をあわせて署名者のPIAT署名2203とする。
図23は、PIAT技術の抽出者用のアルゴリズムの概要を示す説明図である。図23において、抽出者は、署名者がPIAT署名を施したデータから、部分データ(抽出データ2300)を抽出する。その後、署名者と同様の操作を施す。そして、そのハッシュ値集合2301と抽出者の電子署名2302をあわせて抽出者のPIAT署名2203とする。ここで、抽出ではなく削除部分を明確に示したい場合は、墨塗り処理となり、削除後の部分データを“XXXXXXX”など墨塗りであることが区別可能な部分データに変更する。
図24は、PIAT技術の検証者用のアルゴリズムの概要を示す説明図である。図24において、検証者は、まず、署名者と抽出者のPIAT署名から、ハッシュ値集合2201,2301の完全性を検証する。つぎ、開示された抽出データ2300からハッシュ値集合2301を作成し、そのハッシュ値集合2301が抽出者のPIAT署名2303に含まれるハッシュ値集合2301と同一であることを検証する。
最後に、署名者のハッシュ値集合2201と抽出者のハッシュ値集合2301を比較することにより、ハッシュ値が同一であるデータの位置が電子文書2200における抽出位置であることがわかる。もし、抽出データ2300のハッシュ値集合2301が署名者のPIAT署名2203のハッシュ値集合2201に含まれていない場合は、その抽出データ2300は改ざんされていることになる。
PIAT技術では、基本的に顕名抽出を前提としており、誰がどの部分を抽出したかまで検証可能である。しかし、匿名抽出の場合は、抽出者がおこなうPIAT署名処理は省略可能で、その場合、検証者は、署名者のPIAT署名内のハッシュ値集合とその電子署名の検証処理、開示された抽出データからのハッシュ値集合の生成処理、および署名者のPIAT署名内のハッシュ値集合との比較処理をおこなう。
また、上記非特許文献1の署名技術(PIAT技術)を、電子文書のみならず、そのままMPEG−1のような動画像ファイルや音声ファイルといったストリーミングデータに適用することもできる。
この場合、署名対象となるストリーミングデータを部分データに分割する。MPEG−1のストリーミングデータを抽出可能なように部分データに分割する場合、画像単位とGOP(Group of Picture)単位が考えられる。
しかし、MPEG−1ではフレーム間予測技術が用いられているため、PフレームおよびBフレームでは画像単位の独立性がなく、抽出が制限されることが考えられる。一方、GOPは、何枚かの画像をまとめた動画像の最小単位であり、その単位で独立した再生が可能であり、動画像を途中から再生したり編集したりするための構造である。ここでは、単純化のために、部分データへの分割をGOP単位とする。
署名者は、署名対象の動画像ファイル(たとえば、MPEG−1ファイル)をGOP単位で分割し、各GOPのハッシュ値を計算して、ハッシュ値集合を作成する。その後、作成したハッシュ値集合に対して署名者の電子署名を施し、ハッシュ値集合と電子署名をあわせてPIAT署名とする。
抽出者は、署名者がPIAT署名を施した署名対象の動画像ファイルから、必要な部分の動画像を抽出する。匿名抽出の場合はそのまま抽出した動画像と署名者のPIAT署名を開示する。顕名抽出の場合はその後、署名者と同様の操作を行って、抽出者のPIAT署名を作成し、抽出動画像、署名者のPIAT署名および抽出者のPIAT署名を開示する。
検証者は、顕名抽出の場合、まず、署名者のPIAT署名および抽出者のPIAT署名から、ハッシュ値集合の完全性を検証する。つぎに、開示された抽出動画像からハッシュ値集合を作成し、抽出者のPIAT署名に含まれるハッシュ値集合と同一であることを検証する。
最後に、署名者のハッシュ値集合と抽出者のハッシュ値集合を比較することにより、ハッシュ値が同一であるデータの位置が署名対象の動画像ファイルの抽出位置であることがわかる。匿名抽出の場合は、署名者のPIAT署名内のハッシュ値集合とその電子署名の検証処理、開示された抽出動画像からのハッシュ値集合の生成処理、および署名者のPIAT署名内のハッシュ値集合との比較処理をおこない、部分情報であるかどうかを確認する。
つぎに、特許文献1の署名技術について説明する。特許文献1の署名技術は、署名関連データの一部であるハッシュ値を二分木で管理することで署名関連データ量を削減することができ、その署名対象となるデータは、上述したPIAT技術と同様、電子文書のみならず、動画像や音声のようなストリーミングデータも署名対象となる。ここでは、署名対象を動画像のストリーミングデータとした場合を例にあげて説明する。
図25は、動画像のストリーミングデータを署名対象とした特許文献1の署名技術における署名者による署名処理を示す説明図である。図25において、特許文献1の署名技術では、署名対象となる動画像ファイルFをGOP単位で分割した部分動画像f1〜f5のハッシュ値h1〜h5を完全二分木で管理する。そのためにはダミーデータDの追加が必要となる。
署名者は、まず、署名対象の動画像ファイルFの末尾にダミーデータDを付加し、1段目の処理として、GOP単位でハッシュ値h1〜h8を算出する。つぎに、2段目の処理として、隣接するハッシュ値hx,hyにおいて、ハッシュ値hxの末尾とハッシュ値hyの先頭を連結して、あらたなハッシュ値hx,yを算出する。
3段目以降もハッシュ値が単一になるまで繰り返して、ハッシュ値二分木Tを生成する。単一になったハッシュ値をルートRaと称す。図25では、4段目のハッシュ値でルートRaが生成される。署名者は、ルートRaに自己の電子署名Saを施す。
そして、このとき保存される開示情報Aは、元の動画像ファイルFと、ダミーデータD(またはダミーデータDの部分動画像f6〜f8のハッシュ値をリーフとするルートハッシュ値列{h6,h7,8}と、署名者の電子署名Saが施されたルートRaである。
図26は、動画像ファイルを署名対象とした特許文献1の署名技術における抽出者による抽出処理を示す説明図である。抽出者は、署名対象の動画像ファイルFから部分動画像f3,f4を抽出し、1段目の処理として、動画像ファイルFおよびダミーデータDの各部分動画像f1〜f8のハッシュ値h1〜h8を算出する。このあと、抽出された部分動画像f3,f4以外のすべての部分動画像f1,f2,f5〜f8を消去する。
そして、2段目以降、隣接するハッシュ値hxの末尾とハッシュ値hyの先頭を連結して、あらたなハッシュ値hx,yを算出し、ハッシュ値が単一になるまで繰り返してハッシュ値二分木Tを生成する。図26では、4段目のハッシュ値でルートRbが生成される。抽出者は、ルートRbに自己の電子署名Sbを施す。
そして、このとき開示される署名関連データBは、抽出された動画像f3,f4と、消去された部分動画像f1,f2,f5〜f8のみのハッシュ値から得られるルートハッシュ値h1,2,h5,8と、抽出者の電子署名Sbが施されたルートRbである。
吉岡 孝司、武仲 正彦著 「電子文書の訂正・流通を考慮した部分完全性保証技術の提案」 第3回情報科学技術フォーラム FIT 2004,M−066,2004年 特開2006−60722号公報
しかしながら、上述した署名技術では、動画像ファイルや音声ファイルのように大きなストリーミングデータの一部を抽出するような場合、抽出された動画像以外の動画像のハッシュ値をすべて保持しなければならないため、署名関連データのデータ量が膨大になるという問題があった。
また、上記特許文献1の署名技術では、署名関連データの一部であるハッシュ値を二分木により管理することで署名関連データのデータ量を削減することができるが、ハッシュ値を完全二分木で管理するためにはダミーデータの追加が必要となる。
したがって、ダミーデータDが付加された分、保持しなければならない情報量(ダミーデータDまたはダミーデータDのみからなるハッシュツリーTのハッシュ値群)が増加する場合があるという問題があった。
また、ダミーデータDが付加された分、そのハッシュ値計算が必要となり、処理時間も増加するという問題があった。さらに、署名対象の動画像ファイルの末尾のデータをダミーデータに置き換えることで、署名対象の動画像ファイルの偽造(短縮)ができてしまうという問題があった。
また、抽出された部分動画像f3,f4の唯一性を保証するために必要な署名関連データの一部である乱数もそのまま保持しなければならならない。図27は、部分動画像f1〜f5に付加された乱数を示す説明図である。図27において、GOP単位の部分動画像f1〜f5ごとのハッシュ値h1〜h5を単一のハッシュ値hにまとめることができるが、部分動画像f1〜f5の数と同数の乱数r1〜r5が必要となり、署名関連データのデータ量が膨大になるという問題があった。
また、上述したように、動画像ファイルなどのストリーミングデータに対し単純にPIAT技術を適用すれば、動画像の抽出をおこなっても署名対象の動画像ファイルの一部であることを署名技術で保証することができる。
しかしながら、上述したように、署名対象の動画像ファイルが記録時間の長い動画像ファイルやフレームレートの高い動画像ファイルである場合、フレーム数やGOP数が大きくなりPIAT署名に含まれるハッシュ値集合のデータ量が増加してしまうという問題がある。
また、署名対象の動画像ファイルの内容がアニメーションである場合、同じフレームやGOPが繰り返し出現する。PIAT技術では、同じ画像が部分データに出現すると、ハッシュ値集合により消去部分の動画像が復元できる可能性がある。部分データの唯一性を保証するために、同じ画像が部分データに出現する場合、元の部分データ毎に乱数を付加する必要がある。
図28は、アニメーションの動画像ファイルを示す説明図である。図28において、画像E1,E2を消去しても、画像E1〜E3のハッシュ値h1〜h3が同一であれば、消去された画像E1,E2は画像E3と同一画像であるため、消去された画像E1,E2は画像E3のハッシュ値から復元されてしまう。この復元を防止するには、各画像E1〜E4に乱数を付加しなければならない。
しかしながら、乱数を付加する場合、さらにGOP数×乱数長のデータを追加的に保持する必要があるため、動画像以外の保存データがさらに増加してしまうという問題がある。たとえば、テレビジョン程度のフレームレートの一時間の動画像にPIAT署名を施す場合、署名データは数百キロ[Byte]〜数メガ[Byte]必要となり、画像データからすればデータ量は小さいものの、署名関連データの増大が問題となることが考えられる。
この発明は、上述した従来技術による問題点を解消するため、動画像や音声などの署名対象となるストリーミングデータの原本性の保証、署名対象からのプライバシー保護可能なデータ抽出、および署名関連データの大幅なデータ量削減を実現することができる電子署名プログラム、該プログラムを記録した記録媒体、電子署名装置、および電子署名方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、第1の発明にかかる電子署名プログラム、該プログラムを記録した記録媒体、電子署名装置、および電子署名方法は、動画像または音声に関するストリーミングデータを所定単位の複数の部分データに分割し、各部分データに関する数値を一方向性関数に与えることにより、前記複数の部分データに関する前記一方向性関数の出力値列を生成し、生成された出力値列のみをリーフとする前記ストリーミングデータに関する二分木を生成し、生成された二分木のルートを示す出力値を用いて、前記ストリーミングデータに対する署名者の電子署名を生成することを特徴とする。
また、上記発明において、前記ストリーミングデータの中から任意の部分データ列を抽出し、残余の部分データを削除し、前記ストリーミングデータに関する二分木の中から、削除部分データに関する出力値のみをリーフとする前記削除部分データに関する二分木を抽出し、当該二分木のルートを示す出力値列を前記抽出手段によって抽出された部分データ列とともに出力することとしてもよい。
また、上記発明において、前記削除部分データに関する二分木のルートを示す出力値列を用いて、抽出された部分データ列を抽出した抽出者の電子署名を生成することとしてもよい。
また、上記発明において、前記部分データ列を前記所定単位の複数の部分データに分割し、前記部分データ列から分割された各部分データに関する数値を前記一方向性関数に与えることにより、前記複数の部分データに関する前記一方向性関数の出力値列を生成し、生成された前記複数の部分データに関する出力値列と、前記削除部分データに関する二分木と、に基づいて、前記ストリーミングデータに関する二分木を生成することとしてもよい。
第2の発明にかかる電子署名プログラム、該プログラムを記録した記録媒体、電子署名装置、および電子署名方法は、動画像または音声に関するストリーミングデータを所定単位の複数の部分データに分割し、乱数を取得し、乱数をルート乱数とする二分木を、当該二分木のリーフ列を構成する乱数列が前記分割手段によって分割された部分データの個数と同数となるように生成し、生成された二分木のリーフ乱数列と、前記複数の部分データとに基づいて、前記複数の部分データに関するハッシュ値列を生成することを特徴とする。
また、上記発明において、分岐元乱数と第1の数値とを用いた数値を一方向性関数に与えることにより、その出力値を第1の分岐先乱数として出力するとともに、前記分岐元乱数と前記第1の数値とは異なる第2の数値とを用いた数値を前記一方向性関数に与えることにより、その出力値を前記第1の分岐先乱数とは異なる第2の分岐先乱数として出力することにより、前記二分木を生成することとしてもよい。
また、上記発明において、前記分岐元乱数の位置情報と前記第2の分岐先乱数の位置情報とに基づいて、前記第2の分岐先乱数を生成しないことにより、前記二分木を生成することとしてもよい。
また、上記発明において、前記ストリーミングデータの中から任意の部分データ列を抽出し、残余の部分データを削除し、前記部分データ列を前記所定単位の複数の部分データに分割し、前記二分木の中から、分割された複数の部分データに対応する乱数列のみをリーフ乱数列とする二分木を抽出して、前記部分データ列とともに出力することとしてもよい。
本発明にかかる電子署名プログラム、該プログラムを記録した記録媒体、電子署名装置、および電子署名方法は、動画像や音声などの署名対象となるストリーミングデータの原本性の保証、署名対象からのプライバシー保護可能なデータ抽出、および署名関連データの大幅なデータ量削減を実現することができるという効果を奏する。
以下に添付図面を参照して、この発明にかかる電子署名プログラム、該プログラムを記録した記録媒体、電子署名装置、および電子署名方法の好適な実施の形態を詳細に説明する。
(電子署名装置のハードウェア構成)
まず、この発明の実施の形態にかかる電子署名装置のハードウェア構成について説明する。図1は、この発明の実施の形態にかかる電子署名装置のハードウェア構成を示すブロック図である。
図1において、電子署名装置100は、コンピュータ本体110と、入力装置120と、出力装置130と、から構成されており、不図示のルータやモデムを介してLAN,WANやインターネットなどのネットワーク140に接続可能である。
コンピュータ本体110は、CPU,メモリ,インターフェースを有する。CPUは、電子署名装置100の全体の制御を司る。メモリは、ROM,RAM,HD,光ディスク111,フラッシュメモリから構成される。メモリはCPUのワークエリアとして使用される。
また、メモリには各種プログラムが格納されており、CPUからの命令に応じてロードされる。HDおよび光ディスク111はディスクドライブによりデータのリード/ライトが制御される。また、光ディスク111およびフラッシュメモリはコンピュータ本体110に対し着脱自在である。インターフェースは、入力装置120からの入力、出力装置130への出力、ネットワーク140に対する送受信の制御をおこなう。
また、入力装置120としては、キーボード121、マウス122、スキャナ123などがある。キーボード121は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式であってもよい。マウス122は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。スキャナ123は、画像を光学的に読み取る。読み取られた画像は画像データとして取り込まれ、コンピュータ本体110内のメモリに格納される。なお、スキャナ123にOCR機能を持たせてもよい。
また、出力装置130としては、ディスプレイ131、プリンタ132、スピーカ133などがある。ディスプレイ131は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。また、プリンタ132は、画像データや文書データを印刷する。またスピーカ133は、効果音や読み上げ音などの音声を出力する。
(電子署名装置100の機能的構成)
つぎに、この発明の実施の形態にかかる電子署名装置100の機能的構成について説明する。電子署名装置100は、署名処理、抽出処理、および検証処理を実行することができる。ここでは、上記処理ごとの機能的構成について説明する。
図2は、署名時における電子署名装置100の機能的構成を示す説明図である。図2において、電子署名装置100は、二分木生成部201と、電子署名処理部202と、から構成されている。二分木生成部201には、開示情報である動画像や音声などのストリーミングデータSTが入力される。また、乱数使用モードの場合、ルート乱数rRの生成依頼を受け付ける。乱数使用モードとは、乱数を使用してハッシュ値を算出するモードである。
また、二分木生成部201は、ストリーミングデータSTが与えられると、ハッシュ値をノードとしてツリー構造化されたハッシュ値二分木を生成し、そのルートとなるルートハッシュ値hRを電子署名処理部202に出力する。また、ルート乱数rRの生成依頼を受け付けると、乱数をノードとしてツリー構造化された乱数二分木を生成し、そのルートとなるルート乱数rRを開示情報として出力する。
また、電子署名処理部202は、二分木生成部201から出力されたルートハッシュ値を用いて、署名者の電子署名SAを生成する。電子署名処理部202による電子署名の生成は、既存の電子署名技術により実行される。
図3は、抽出時における電子署名装置100の機能的構成を示す説明図である。図3において、電子署名装置100は、抽出部301と、二分木生成部201と、電子署名処理部202と、から構成されている。抽出部301は、抽出情報を受け付ける。抽出情報とは、抽出者が抽出しようとするストリーミングデータSTの範囲である。
抽出部301は、抽出情報を受け付けると、ストリーミングデータSTの中からその抽出情報に該当する範囲のデータ列(以下、「抽出データ列Lde」と称す。)を抽出する。抽出データ列Ldeは一または複数の連続する部分データ(以下、「抽出データ」と称す。)からなり、開示情報として出力される。匿名抽出である場合、この抽出データ列Ldeと署名者の電子署名SAとを開示情報として出力することとなる。
また、二分木生成部201は、抽出情報を受け付けると、抽出データ列Ldeを検証するためのルートハッシュ値列LhRDを開示情報として出力する。また、乱数使用モードの場合、署名時に得られたルート乱数rRを受け付けると、抽出データ列Ldeに応じたルート乱数列LrREを開示情報として出力する。
また、電子署名処理部202は、顕名抽出である場合、二分木生成部201によって生成されたハッシュ値二分木を用いて、抽出者の電子署名SBを生成する。また、乱数使用モードの場合、さらに、乱数二分木も用いて抽出者の電子署名SBを生成する。顕名抽出である場合、生成された抽出者の電子署名SBは、抽出データ列Ldeおよび署名者の電子署名SAとともに開示情報として出力される。
図4は、検証時における電子署名装置100の機能的構成を示す説明図である。図4において、電子署名装置100は、二分木生成部201と、電子署名処理部202と、から構成されている。二分木生成部201は、抽出データ列Ldeおよびルートハッシュ値列LhRDを受け付けて、ハッシュ値二分木を生成し、ハッシュ値二分木のルートハッシュ値列LhRDを電子署名処理部202に出力する。乱数使用モードの場合、ルート乱数列LrREを受け付けて、乱数二分木を生成する。そして、抽出データ列Ldeの各抽出データに応じた乱数となるリーフを用いて、ハッシュ値二分木を生成(復元)する。
電子署名処理部202は、匿名抽出の場合、署名者の電子署名SAを受け付けて、復元されたハッシュ値二分木のルートハッシュ値から、署名者の電子署名SAの正当性を検証する。顕名抽出の場合、それに加えて、抽出者の電子署名SBを受け付けて、ルート乱数列LrREおよびルートハッシュ値列LhRDから、抽出者の電子署名SBの正当性を検証する。電子署名処理部202による電子署名の検証(確認)は、既存の電子署名技術により実行される。
(二分木生成部201の機能的構成)
つぎに、上述した二分木生成部201の機能的構成について説明する。二分木生成部201の機能は署名・抽出時と検証時とで構成が異なるため、署名・抽出時と検証時とで分けて説明する。
<署名・抽出時>
図5は、署名・抽出時における二分木生成部201の機能的構成を示すブロック図である。二分木生成部201は、ストリーミングデータSTに対するハッシュ値二分木Thや乱数二分木Trなどの各種二分木を生成する機能である。
図5において、二分木生成部201は、分割部501と、ハッシュ値計算部502と、ハッシュ値列生成部503と、ハッシュ値二分木生成部504と、削除ハッシュ値二分木生成部505と、乱数生成部506と、スイッチ507と、乱数二分木生成部508と、抽出乱数二分木生成部509と、を備えている。
分割部501は、ストリーミングデータSTが入力されると、所定単位の部分データに分割する。部分データの集合が部分データ列となる。分割単位は、任意に設定することができる。たとえば、署名対象となるストリーミングデータSTがMPEG−1である場合、画像単位とGOP(Group of Picture)単位で分割することができる。
また、ハッシュ値計算部502は、数値が入力されるとその数値をハッシュ関数に与えることによりハッシュ値を計算し、数値の入力元に返す。なお、本実施の形態では、一方向性関数の一例としてハッシュ関数を用い、その出力値をハッシュ値としているが、一方向性関数であれば、ハッシュ関数に限らず、他の方式や他の関数であってもよい。本実施の形態では、代表例としてハッシュ関数を用いる。
ハッシュ値列生成部503は、ハッシュ値計算部502と連携して分割単位となる各部分データのハッシュ値からなるハッシュ値列を生成する。具体的には、たとえば、部分データを既存の電子署名技術により数値化し、ハッシュ値計算部502に与える。そして、ハッシュ値計算部502により算出されたハッシュ値をハッシュ値計算部502から受け取ることにより、ハッシュ値列を生成する。なお、生成されるハッシュ値列のハッシュ値数をnとする。
ここで、ある部分データdiのハッシュ値をhiとし、既存の電子署名技術により生成される部分データdiのハッシュパラメータをeiとすると、部分データdiのハッシュ値hiは下記式(1)によりあらわされる。
i=H(ei)・・・(1)
ここで、H()はハッシュ関数である。また、部分データdiについて乱数riが与えられたとすると、部分データdiのハッシュ値hiは下記式(2)によりあらわされる。
i=H(ei‖ri)・・・(2)
ここで、x‖yは、前の数値xの末尾と後の数値yの先頭との結合を示す。具体的には、たとえば、x=123、y=456である場合、x‖y=123456となる。
ハッシュ値二分木生成部504は、ハッシュ値計算部502と連携して、ハッシュ値列生成部503によって生成されたハッシュ値列をリーフ群とするハッシュ値二分木Thを生成する。リーフの数はハッシュ値の数nと同数である。
ハッシュ値二分木Thでは、ノード(リーフやルート含む)が階層構造化される。具体的には、下位の分岐先のノードを示すハッシュ値をha,hbとした場合、分岐元のノードとなるハッシュ値ha,bは、下記式(3)によりあらわされる。
a,b=H(ha‖hb)・・・(3)
ハッシュ値二分木生成部504は、下位の分岐先のノードを示すハッシュ値ha,hbをハッシュ値計算部502に与え、ハッシュ値計算部502はha,bを計算して、二分木生成部201に返す。なお、ハッシュ値ha,hbは同一階層の隣り合うノードを示すハッシュ値である。なお、本実施の形態において、ハッシュ値の符号の添え字は、そのハッシュ値の二分木上の位置を特定する位置情報となる。抽出したり復元する際には、この位置情報を手掛かりとする。
ハッシュ値二分木生成部504では、部分データ数n、すなわちリーフ数nが奇数か偶数かによって生成手法が異なる。具体的には、
1)部分データ数nが奇数でかつn−1が偶数である場合、
2)部分データ数nが偶数でかつn−1が偶数である場合、
3)部分データ数nが奇数でかつn−1が奇数である場合、
4)部分データ数nが偶数でかつn−1が奇数である場合、
によって生成手法が異なる。
まず、1)部分データ数nが奇数でかつn−1が偶数である場合について説明する。図6は、部分データ数nが奇数でかつn−1が偶数である場合に生成されるハッシュ値二分木Thを示す説明図である。図6では、n=5として説明する。
図6において、各部分データd1〜d5は、分割部501によりストリーミングデータSTをGOP単位で分割されたデータである。各ハッシュ値h1〜h5は、各部分データd1〜d5に対応するハッシュ値であり、ハッシュ値列{h1,h2,h3,h4,h5}としてハッシュ値列生成部503によって生成される。このハッシュ値列{h1,h2,h3,h4,h5}がハッシュ値二分木Thのリーフ群となる。
ハッシュ値二分木生成部504では、先頭のハッシュ値から順に、隣り合うハッシュ値とペアを組む。他のペアに属するハッシュ値をペアにすることはできない。図6では、先頭のハッシュ値から順に、ハッシュ値h1,h2がペアとなり、ハッシュ値h3,h4がペアとなる。ハッシュ値h2,h3はペアを構成しない。また、部分データ数nが奇数であるため、ハッシュ値h5は孤立する。
リーフを1段目のハッシュ値とした場合、その分岐元となる上位のハッシュ値を2段目のハッシュ値として、上記式(3)を用いて生成する。上記式(3)により、ハッシュ値h1,h2の分岐元ノードとなるハッシュ値h1,2が生成され、ハッシュ値h3,h4の分岐元ノードとなるハッシュ値h3,4が生成される。3段目のハッシュ値h1,4も同様に、2段目のハッシュ値h1,2,h3,4を用いて、上記式(3)により生成される。
分岐先ノードを示すハッシュ値h1,4が単一となったため、そのハッシュ値h1,4とリーフで孤立したハッシュ値h5を用いて、上記式(3)により、分岐元ノードを示すハッシュ値h1,5を生成する。ここで生成されたハッシュ値h1,5がルート(ハッシュ値)hRとなる。そして、このハッシュ値二分木Thからルート(ハッシュ値)hRを抽出して電子署名処理部202に出力することで、署名者の電子署名SAが生成される。
なお、2)部分データ数nが偶数でかつn−1が偶数である場合については、図6において部分データd5がないとした場合に相当する。すなわち、リーフ群となるハッシュ値列{h1,h2,h3,h4}となるため、3段目の分岐元ノードを示すハッシュ値h1,4がルートハッシュ値hRとなる。そして、このハッシュ値二分木Thからルート(ハッシュ値)hRを抽出して電子署名処理部202に出力することで、署名者の電子署名SAが生成される。
つぎに、3)部分データ数nが奇数でかつn−1が奇数である場合について説明する。図7は、部分データ数nが奇数でかつn−1が奇数である場合に生成されるハッシュ値二分木Thを示す説明図である。図7では、n=7として説明する。
図7では、リーフ以外の階層となる2段目においてハッシュ値の個数が奇数(3個)となる。この場合、先頭のハッシュ値から順に、ハッシュ値h1,2とハッシュ値h3,4とがペアとなり、1段目のハッシュ値h7とともにハッシュ値h5,6も孤立する。したがって、3段目においては、孤立したハッシュ値h5,6,h7から、上記式(3)を用いて分岐元ノードとなるハッシュ値h5,7を生成する。
最後に、4段目において、ハッシュ値h1,4,h5,7から、上記式(3)を用いて分岐元ノードとなるハッシュ値h1,7を生成する。ここで生成されたハッシュ値h1,7がルート(ハッシュ値)hRとなる。そして、このハッシュ値二分木Thからルート(ハッシュ値)hRを抽出して電子署名処理部202に出力することで、署名者の電子署名SAが生成される。
なお、4)部分データ数nが偶数でかつn−1が奇数である場合については、図7において部分データd7がないとした場合に相当する。すなわち、リーフ群となるハッシュ値列{h1,h2,h3,h4,h5,h6}となるため、リーフのハッシュ値h7は存在せず、3段目のハッシュ値h5,7も生成されない。
したがって、2段目の孤立したハッシュ値h5,6は、3段目のハッシュ値h1,4と結合することで、上記式(3)を用いて分岐元ノードとなるハッシュ値h1,6を生成する。このハッシュ値h1,6がルートハッシュ値hRとなる。そして、このハッシュ値二分木Thからルート(ハッシュ値)hRを抽出して電子署名処理部202に出力することで、署名者の電子署名SAが生成される。
これにより,署名時における生成データ量は、従来のようにハッシュ値集合を使用しないため、ストリーミングデータSTの再生時間に依存せず、署名者の電子署名SAのデータ量にまで削減できる。
また、図5において、削除ハッシュ値二分木生成部505は、抽出時に実行される機能であり、ストリーミングデータSTのうち削除データのハッシュ値のみをリーフとする二分木(以下、「削除ハッシュ値二分木Td」と称す。)を生成する。削除データとは、ストリーミングデータSTのうち抽出データ以外の部分データである。
そして、削除ハッシュ値二分木Tdのルートとなるルートハッシュ値列LhRDを抽出して、開示情報として出力する。なお、抽出データの個数をcとすると、ルートハッシュ値列LrRDに含まれるルートハッシュ値hRの個数の最大値の上限は2・log2{(n/c)/2}となる。
図8は、削除ハッシュ値二分木Tdの生成例を示す説明図である。図8では、図5に示したストリーミングデータSTを用いて説明する。図8において、削除ハッシュ値二分木Tdを生成する場合、抽出データのリーフは使用せず、削除データのリーフのみを使用する。まず、1段目において、リーフを示すハッシュ値h1,h2,h5が選ばれる。
つぎに、2段目において、ハッシュ値二分木生成部504と同様、ハッシュ値計算部502と連携して二分木処理を実行する。すなわち、上記式(3)により、ハッシュ値h1,h2の分岐元ノードとなるハッシュ値h1,2を生成する。
2段目のハッシュ値h1,2はもともと結合すべきハッシュ値が存在しないため孤立しており、これ以上上位階層のハッシュ値に変化しない。これにより、ハッシュ値h1,h2をリーフとし、ハッシュ値h1,2をルートハッシュ値hRD1とするルートハッシュ値二分木Td1が生成される。
また、ハッシュ値h5も同様孤立しているため、これ以上上位階層のハッシュ値に変化しない。これにより、ハッシュ値h5のみからなるルートハッシュ値二分木ThTd2が生成される。すなわち、ルートハッシュ値二分木Td2では、ハッシュ値h5がルートハッシュ値hRD2となる。そして、ルートハッシュ値h1,2,h5からなるルートハッシュ値列LhRDを、開示情報として出力する。
また、図5において、乱数生成部506は、既存の乱数発生器により構成され、任意の乱数を生成する。スイッチ507は、既存のルート乱数と乱数生成部506によって生成された新規の乱数とを選択する。そして、選択された乱数を今回用いるルート乱数rRとして乱数二分木生成部508および抽出乱数二分木生成部509に出力するとともに、ルート乱数rR自身も開示情報として出力する。ルート乱数rRとは、後述する乱数二分木Trのルートに位置する乱数である。この乱数生成部506およびスイッチ507によりルート乱数rRを取得することができる。
また、乱数二分木生成部508は、ハッシュ値計算部502と連携して、乱数二分木Trを生成する。使用する乱数に必要な性質は,使用する乱数の部分集合から,それ以外の乱数が予測できないことである。そのため、ハッシュ値のデータ量削減とは逆に、ルート乱数rRからリーフ乱数へハッシュ関数を使用して乱数二分木Trを生成する。
また、ハッシュ値二分木Thは完全二分木ではなかったが、乱数生成では、必要な乱数の量を超える完全二分木とする。なお、本実施の形態において、乱数の符号の添え字は、その乱数の二分木上の位置を特定する位置情報となる。抽出したり復元する際には、この位置情報を手掛かりとする。
乱数二分木生成部508はスイッチ507から出力されてくるルート乱数rRを基点として、リーフとなる乱数(リーフ乱数)まで算出して、階層構造化された乱数二分木Trを生成する。リーフ乱数の個数は、部分データ数nと一致するように生成する。ここで、乱数二分木Trの生成例について説明する。
分岐先の2つのノードを示すハッシュ値の分岐元となる乱数をri,jとする。分岐先のノードを示す2つの乱数は、下記式(4),(5)によってあらわされる。
Figure 2008178048
Figure 2008178048
また、乱数二分木Trを生成する際、まず、ルート乱数rRがri,jとなる。ここで、ri,j=rRのとき、iは先頭の部分データの昇順番号と一致(i=1)する。
一方、jは、部分データ数nから計算される。具体的には、下記式(6)によってあらわされる。
Figure 2008178048
また、上記において、以下の条件Aを満たした場合、上記式(4)で示した一方の分岐先乱数はリーフ乱数rjとなる。
Figure 2008178048
また、上記において、以下の条件Bを満たした場合、上記式(5)で示した他方の分岐先乱数はリーフ乱数rjとなる。
Figure 2008178048
ここで、5)部分データ数n=5である場合について説明する。図9は、部分データ数n=5である場合に生成される乱数二分木Trを示す説明図である。図9では、図5に示したストリーミングデータSTを用いて説明する。図9において、jは下記式(7)のようになるので、1段目にルート乱数rR=r1,8を設定する。
Figure 2008178048
つぎに、2段目において、ルート乱数rR=r1,8を分岐元乱数とする2つの分岐先乱数r1,4,r5,8を生成する。そして、3段目において、乱数r1,4を分岐元乱数とする2つの分岐先乱数r1,2,r3,4を生成する。また、乱数r5,8については、ri,j=rn,n+3に該当するため、一方の分岐先乱数となる乱数r5,6のみ生成する。
このあと、4段目において、乱数r1,2を分岐元乱数とする2つの分岐先乱数r1,1=r1,r2,2=r2を生成する。乱数r3,4についても同様に、乱数r3,4を分岐元乱数とする2つの分岐先乱数r3,3=r3,r4,4=r4を生成する。
また、乱数r5,6については、ri,j=rn,n+1に該当するため、一方の分岐先乱数ri,((i+j)/2(となる乱数r5,5=r5のみ生成する。これにより、ルート乱数rRのみを保持しておくだけで、他のすべての乱数を生成することができる。このあと、上記式(2)を用いることで、ハッシュ値列生成部503により、乱数riを考慮したハッシュ値hiを部分データdiごとに生成することができる。
なお、6)部分データ数n=4である場合については、図9において部分データd5がないとした場合に相当する。すなわち、ルート乱数rRは乱数r1,4となり、乱数r1,8,乱数r5,6,乱数r5は生成されない。
つぎに、7)部分データ数n=7である場合について説明する。図10は、部分データ数n=7である場合に生成される乱数二分木Trを示す説明図である。図9では、図7に示したストリーミングデータSTを用いて説明する。なお、図9と異なる箇所のみ説明する。
3段目において、乱数r5,8を分岐元乱数とする2つの分岐先乱数r5,6,r7,8を生成する。つぎに、4段目において、乱数r5,6を分岐元乱数とする2つの分岐先乱数r5,5=r5,r6,6=r6を生成する。乱数r7,8については、一方の分岐先乱数は下記式(8)のようになるため、もう一方の分岐先乱数は下記式(9)のように、乱数r7,7=r7のみ生成する。
Figure 2008178048
これにより、ルート乱数rRのみを保持しておくだけで、他のすべての乱数を生成することができる。このあと、上記式(2)を用いることで、ハッシュ値列生成部503により、乱数riを考慮したハッシュ値hiを部分データdiごとに生成することができる。
なお、8)部分データ数n=6である場合については、図10において部分データd7がないとした場合も同様である。すなわち、乱数r5,8から乱数r7,8が生成されないため、乱数r7は生成されない。
また、図5において、抽出乱数二分木生成部509は、抽出時に実行される機能であり、乱数二分木Trのうち、抽出データに対応する乱数のみをリーフとする乱数二分木Tr(以下、「抽出乱数二分木Tre」と称す。)を生成する。そして、抽出乱数二分木Treのルート乱数rREのみからなるルート乱数列LrREを開示情報として出力する。
図11は、抽出乱数二分木Treの生成例を示す説明図である。図11では、図5に示したストリーミングデータSTを用いて説明する。図11において、抽出データd3,d4に対応するリーフ乱数は、乱数r3,r4である。したがって、乱数二分木Trのうち乱数r3,r4のみをリーフとし、r3,4をルート乱数rREとする乱数二分木Trを抽出する。このルート乱数rREさえあれば、それより大きい乱数二分木Trがなくても抽出データd3,d4に必要なリーフ乱数r3,r4を生成することができる。
<検証時>
図12は、検証時における二分木生成部201の機能的構成を示すブロック図である。分割部501は、図5に示した署名・抽出時と同じ機能である。すなわち、抽出データ列Ldeが入力されると、所定単位の部分データに分割する。分割単位は、署名・抽出時と同一の単位とする。また、ハッシュ値計算部502は、数値が入力されるとその数値をハッシュ関数に与えることによりハッシュ値を計算し、数値の入力元に返す。
ハッシュ値列生成部503は、ハッシュ値計算部502と連携して分割単位となる各抽出データのハッシュ値からなるハッシュ値列を生成する。具体的には、たとえば、抽出データを既存の電子署名技術により数値化し、ハッシュ値計算部502に与える。そして、ハッシュ値計算部502により算出されたハッシュ値をハッシュ値計算部502から受け取ることにより、ハッシュ値列を生成する。なお、ハッシュ値の具体的な生成方法は、図5に示した内容と同一である。
また、乱数二分木生成部508は、図5に示した機能と同様な手法により、開示情報である抽出乱数二分木Treのルート乱数列LrREを取得して、乱数二分木Trを生成する。通常は、ルート乱数列LrREを構成するルート乱数は一つであるため、このルート乱数を基点として乱数二分木Trを生成する。そして、生成された乱数二分木Trのリーフ乱数列をハッシュ値列生成部503に出力する。
ハッシュ値二分木生成部504は、ハッシュ値計算部502と連携して、ストリーミングデータSTのハッシュ値二分木Thを復元する。具体的には、ハッシュ値列生成部503によって生成された抽出データ列のハッシュ値列と、開示情報である削除ハッシュ値二分木Tdのルートハッシュ値列LRDとを用いて、元のハッシュ値二分木Thを復元する。ここで、ハッシュ値二分木Thの復元例について説明する。
図13は、ハッシュ値二分木Thの復元例(その1)を示す説明図である。図13では、図5に示したストリーミングデータSTを用いて説明する。図13において、ハッシュ値二分木Thを復元する場合、抽出データ列Ldeを構成する各抽出データd3,d4のハッシュ値h3,h4を生成する。ハッシュ値h3,h4を生成することにより、ハッシュ値h3,h4からハッシュ値h3,4を生成することができる。
また、抽出時の開示情報である削除ハッシュ値二分木Tdのルートハッシュ値列LhRDを構成するルートハッシュ値h1,2,h5を取得する。ルートハッシュ値h1,2はストリーミングデータSTから削除された部分データd1,d2のハッシュ値h1,h2を合成したハッシュ値である。
したがって、計算によって得られたハッシュ値h3,h4と合成することができ、ハッシュ値h1,4を生成することができる。そして、孤立しているルートハッシュ値h5とハッシュ値h1,4とを合成することで、ハッシュ値h1,5を生成することができる。このハッシュ値h1,5がルートハッシュ値rRとなる。これにより、元のハッシュ値二分木Thを復元することができる。
図14は、ハッシュ値二分木Thの復元例(その2)を示す説明図である。図14では、図7に示したストリーミングデータSTを用いて説明する。図14において、ハッシュ値二分木Thを復元する場合、抽出データ列Ldeを構成する各抽出データのハッシュ値h2,h3を生成する。ハッシュ値h2,h3を生成することにより、ハッシュ値h2,h3からハッシュ値h3,4を生成することができる。
図14において、ハッシュ値二分木Thを復元する場合、抽出データ列Ldeを構成する各抽出データのハッシュ値h2,h3を生成する。ハッシュ値h2,h3を生成することにより、ハッシュ値h2,h3からハッシュ値h3,4を生成することができる。
また、抽出時の開示情報である削除ハッシュ値二分木Tdのルートハッシュ値列LhRDを構成するルートハッシュ値h1,2,h5,6,h7を取得する。ルートハッシュ値h1,2はストリーミングデータSTから削除された部分データd1,d2のハッシュ値h1,h2を合成したハッシュ値である。したがって、計算によって得られたハッシュ値h2,h3と合成することにより、ハッシュ値h1,4を生成することができる。
また、ルートハッシュ値h5,6はストリーミングデータSTから削除された部分データd5,d6のハッシュ値h5,h6を合成したハッシュ値である。したがって、孤立しているルートハッシュ値h7とルートハッシュ値h5,6とを合成することにより、ハッシュ値h5,7を生成することができる。
このあと、同階層のハッシュ値h1,4とハッシュ値h5,7とを合成することにより、ハッシュ値h1,7を生成することができる。このハッシュ値h1,7がルートハッシュ値rRとなる。これにより、元のハッシュ値二分木Thを復元することができる。
(署名処理手順)
つぎに、この発明の実施の形態にかかる電子署名装置100による署名処理手順について説明する。図15は、この発明の実施の形態にかかる電子署名装置100による署名処理手順を示すフローチャートである。図15において、まず、分割部501により、ストリーミングデータSTを読み込んで、所定の分割単位(たとえば、GOP)に分割する(ステップS1501)。
つぎに、乱数使用モードか否かを判断する(ステップS1502)。乱数使用モードである場合(ステップS1502:Yes)、乱数二分木生成部508による乱数二分木生成処理を実行する(ステップS1503)。一方、乱数使用モードでない場合(ステップS1502:No)、ステップS1504に移行する。
つぎに、ステップS1504において、ハッシュ値列生成部503によりハッシュ値列生成処理を実行する(ステップS1504)。そして、ハッシュ値二分木生成部504により、ハッシュ値二分木Thを生成する(ステップS1505)。
このあと、電子署名処理部202により、ハッシュ値二分木Thのルートハッシュ値hRを用いて署名者の電子署名SAを生成する(ステップS1506)。このあと、署名者の電子署名SAや必要に応じて生成されたルート乱数rRなどの開示情報を保存する(ステップS1507)。
(乱数二分木生成処理手順)
つぎに、図15に示した乱数二分木生成処理(ステップS1503)による乱数二分木生成処理手順について説明する。図16は、図15に示した乱数二分木生成処理(ステップS1503)による乱数二分木生成処理手順を示すフローチャートである。
図16において、インデックスi=1、部分データ数nとし(ステップS1601)、部分データ数nにより、インデックスjの値を設定する(ステップS1602)。jの値は、上述した5)から8)を基準に設定される。
そして、乱数生成部506により乱数ri,jを生成して、ルート乱数rRに設定する(ステップS1603)。このあと、このルート乱数rRを乱数集合Srに入れる(ステップS1604)。
つぎに、乱数集合Srが空集合(Sr=Φ)であるか否かを判断し(ステップS1605)、Sr≠Φである場合(ステップS1605:No)、乱数集合Srの中から任意の乱数ri,jを抽出し、乱数集合Srから削除する(ステップS1606)。そして、分岐先乱数算出処理を実行し(ステップS1607)、ステップS1605に戻る。一方、ステップS1605において、Sr=Φである場合(ステップS1605:Yes)、ハッシュ値列生成処理(ステップS1504)に移行する。
(分岐先乱数算出処理手順)
つぎに、図16に示した分岐先乱数算出処理(ステップS1607)による分岐先乱数算出処理手順について説明する。図17は、図16に示した分岐先乱数算出処理(ステップS1607)による分岐先乱数算出処理手順を示すフローチャートである。
図17において、上記式(4)に示したように、乱数ri,jに対する乱数(下記式(10)を参照)を算出する(ステップS1701)。
Figure 2008178048
そして、以下の式(11)を満たしているか否かを判断する(ステップS1702)。
Figure 2008178048
式(11)を満たしている場合(ステップS1702:Yes)、上記式(10)の乱数をリーフ乱数Riに設定して(ステップS1703)、ステップS1706に移行する。
一方、ステップS1702において、上記式(11)を満たしていない場合(ステップS1702:No)、上記式(10)の乱数を乱数ri,jの第1の分岐先乱数に設定する(ステップS1704)。そして、この第1の分岐先乱数を乱数集合Srに入れて(ステップS1705)、ステップS1706に移行する。
ステップS1706において、i=nであるか否かを判断する(ステップS1706)。i=nでない場合(ステップS1706:No)、上記式(5)に示したように、乱数ri,jに対する乱数(下記式(12)を参照)を算出する(ステップS1707)。一方、i=nである場合(ステップS1706:Yes)、i=n+3であるか否かを判断する(ステップS1708)。この判断は、上述した5)〜8)をチェックする処理である。
Figure 2008178048
i=n+3である場合(ステップS1708:Yes)、ステップS1605に移行する。たとえば、乱数ri,jが図9に示した乱数r5,8である場合、この処理のように、乱数r7,8は生成されない。一方、i=n+3でない場合(ステップS1708:No)、j=i+1であるか否かを判断する(ステップS1709)。
j=i+1である場合(ステップS1709:Yes)、ステップS1605に移行する。たとえば、乱数ri,jが図9に示した乱数r5,6である場合、この処理のように、乱数r6,6は生成されない。一方、j=i+1でない場合(ステップS1709:No)、ステップS1707に移行する。
また、ステップS1707のあと、以下の式(13)を満たしているか否かを判断する(ステップS1710)。
Figure 2008178048
上記式(13)を満たしている場合(ステップS1710:Yes)、上記式(12)に示した乱数をリーフ乱数rjに設定する(ステップS1711)。
一方、上記式(13)を満たしていない場合(ステップS1710:No)、上記式(12)に示した乱数を乱数ri,jの第2の分岐先乱数に設定する(ステップS1712)。そして、この第2の分岐先乱数を乱数集合Srに入れて(ステップS1713)、ステップS1605に移行する。
(ハッシュ値列生成処理手順)
つぎに、図15に示したハッシュ値列生成処理(ステップS1504)によるハッシュ値列生成処理手順について説明する。図18は、図15に示したハッシュ値列生成処理(ステップS1504)によるハッシュ値列生成処理手順を示すフローチャートである。
図18において、インデックスi=1、部分データ数nとし(ステップS1801)、乱数使用モードか否かを判断する(ステップS1802)。乱数使用モードでない場合(ステップS1802:No)、上記式(1)により、部分データdiのハッシュパラメータeiを算出する(ステップS1803)。一方、乱数使用モードである場合(ステップS1802:Yes)、上記式(2)により、部分データdiと乱数riとにより、ハッシュパラメータeiを算出する(ステップS1804)。
そして、ハッシュパラメータeiをハッシュ関数H()に与えることにより、ハッシュ値hiを算出する(ステップS1805)。そして、ハッシュ値hiをハッシュ値列Lh1に追加する(ステップS1806)。
このあと、i>nであるか否かを判断し(ステップS1807)、i>nでない場合(ステップS1807:No)、iを1つインクリメントして(ステップS1808)、ステップS1802に戻る。一方、i>nである場合(ステップS1807:Yes)、ステップS1505に移行する。
(ハッシュ値二分木生成処理手順)
つぎに、図15に示したハッシュ値二分木生成処理(ステップS1505)によるハッシュ値二分木生成処理手順について説明する。図19は、図15に示したハッシュ値二分木生成処理(ステップS1505)によるハッシュ値列生成処理手順を示すフローチャートである。
図19において、生成されるハッシュ値二分木Thの階層を示す段数m=1とし、ハッシュ値列Lhmに含まれているハッシュ値の総数をNとする(ステップS1901)。段数m=1のハッシュ値列Lhmは、ハッシュ値列生成処理で生成されたハッシュ値列である。
つぎに、ハッシュ値列Lhmを読み込み(ステップS1902)、N=1であるか否かを判断する(ステップS1903)。N=1でない場合(ステップS1903:No)、ハッシュ値列Lhmの先頭からハッシュ値を2つ抽出して、ハッシュ値列Lhmから削除する(ステップS1904)。
そして、上述した式(3)で示したように、抽出された2つのハッシュ値を結合して発すパラメータとしてハッシュ関数H()に与えることにより、あらたなハッシュ値を算出する(ステップS1905)。そして、算出ハッシュ値を次の段のハッシュ値列Lhm+1に追加する(ステップS1906)。
そして、ハッシュ値列Lhm内のハッシュ値の残存数NhがNh≧2であるか否かを判断する(ステップS1907)。Nh≧2である場合(ステップS1907:Yes)、ステップS1904に戻る。一方、Nh≧2でない場合(ステップS1907:No)、Nh=1であるか否かを判断する(ステップS1908)。
Nh=1である場合(ステップS1908:Yes)、ハッシュ値列Lhm内の残存ハッシュ値を孤立ハッシュ値hkとしてメモリに保存して(ステップS1909)、ステップS1910に移行する。
一方、Nh=1でない場合(ステップS1908:No)、段数mを1つインクリメントし、つぎの段のハッシュ値列Lhmのハッシュ値総数Nを半分(N/2)にして(ステップS1910)、ステップS1902に戻る。
また、ステップS1903において、N=1である場合(ステップS1903:Yes)、孤立ハッシュ値hkがあるか否かを判断する(ステップS1911)。孤立ハッシュ値hkがある場合(ステップS1911:Yes)、ハッシュ値列Lhm内の単一のハッシュ値と孤立ハッシュ値とを用いて、図6および図7に示したようにルートハッシュ値hRを算出する(ステップS1912)。一方、孤立ハッシュ値hkがない場合(ステップS1911:No)、ハッシュ値二分木Thがすでに完成されているため、ステップS1913に移行する。
これにより、ハッシュ値二分木Thが生成される。このあと、ハッシュ値二分木Thをメモリに保存し(ステップS1913)、ルートハッシュ値hRを電子署名処理部202に出力して(ステップS1914)、ステップS1506に移行する。
(データ抽出処理手順)
つぎに、この発明の実施の形態にかかる電子署名装置100によるデータ抽出処理手順について説明する。図20は、この発明の実施の形態にかかる電子署名装置100によるデータ抽出処理手順を示すフローチャートである。図20において、まず、抽出部301により、ストリーミングデータSTの抽出範囲を示す抽出情報を待ち受ける(ステップS2001:No)。
抽出情報が入力された場合(ステップS2001:Yes)、該当する部分データを抽出して、他の部分データを削除する(ステップS2002)。そして、削除ハッシュ値二分木生成部505により、削除ハッシュ値二分木Tdを生成し(ステップS2003)、その中からルートハッシュ値列LhRDを抽出する(ステップS2004)。
つぎに、乱数使用モードであるか否かを判断する(ステップS2005)。乱数使用モードである場合(ステップS2005:Yes)、抽出乱数二分木生成部509により抽出乱数二分木Treを生成して(ステップS2006)、そのルート乱数列LrREを抽出する(ステップS2007)。このあと、ステップS2008に移行する。一方、乱数使用モードでない場合(ステップS2005:No)、ステップS2008に移行する。
ステップS2008において、電子署名処理部202により、抽出者の電子署名SBを生成する(ステップS2008)。通常モードの場合は、ルートハッシュ値列LhRDを用いて抽出者の電子署名SBを生成する。
一方、乱数使用モードでは、ルートハッシュ値列LhRDおよびルート乱数列LrREを用いて抽出者の電子署名SBを生成する。いずれにしても、既存の署名技術により生成することができる。このあと、抽出データ列Lde、抽出者の電子署名SB、ルートハッシュ値列LhRD、ルート乱数列LrRE、署名者の電子署名SAなどの開示情報を保存する(ステップS2009)。
(検証処理手順)
つぎに、この発明の実施の形態にかかる電子署名装置100による検証処理手順について説明する。図21は、この発明の実施の形態にかかる電子署名装置100によるデータ抽出処理手順を示すフローチャートである。
図21において、まず、抽出時の開示情報を取得して(ステップS2101)、分割部501により、抽出データ列Ldeを署名時と同一の分割単位で分割する(ステップS2102)。そして、ハッシュ値列生成部503により、各抽出データのハッシュ値列を生成する(ステップS2103)。
そして、削除ハッシュ値二分木Tdのルートハッシュ値列LhRDと、抽出データのハッシュ値とを用いて、ハッシュ値二分木生成部504により、ハッシュ値二分木Thを復元する(ステップS2104)。そして、復元されたハッシュ値二分木Thのルートハッシュ値rRを抽出し(ステップS2105)、抽出されたルートハッシュ値rRを用いて署名者/抽出者の電子署名SA,SBの正当性を確認する検証処理を実行する(ステップS2106)。
以上説明したように、本実施の形態によれば、署名・抽出時におけるデータ量を大幅に削減することができる。また、検証時では,開示されたストリーミングデータSTと消去部分のルートハッシュ値列LhRDから原本のルートハッシュ値hRを計算し署名検証をおこなうことで、原本のストリーミングデータSTの一部が抽出されたことを確認できる。また、顕名署名の場合、ルートハッシュ値列LhRDとその署名を検証することで,誰が消去したのかも確認可能である。
このように、この発明の実施の形態によれば、PIAT技術による抽出されたストリーミングデータ(抽出データ列Lde)の原本性保証機能はそのままで、データ量を大幅に削減することができる。
また、本実施の形態では、完全二分木ではなく、一般形の二分木を使用している。そのため上述した特許文献1のようなダミーデータDを付加する必要がなく、原本情報のダミーデータDへの偽造が不可能である。さらに、ダミーデータDを保持したり、ダミーデータDのハッシュ値を計算したりする必要もないため、計算量も削減することができる。
また、本実施の形態では、ルート乱数rRさえ保持しておくだけで、乱数二分木Trを復元することができるため、乱数二分木Trを構成するすべての乱数を保持しなくてもよい。したがって、データ量の削減を図ることができる。
また、検証処理では、開示されたルート乱数列LrREから、乱数二分木構成のアルゴリズムを使用して、抽出データ列Ldeを復元することができる。この抽出データ列Ldeと抽出データ列Lde,およびルートハッシュ値列LhRDから原本のルートハッシュ値rRを計算し署名検証をおこなうことで,原本のストリーミングデータSTの一部が抽出されたことを確認できる。また、顕名署名の場合、ルートハッシュ値列LhRDとその署名者の電子署名SAを検証することで、誰が消去したのかも確認することができる。
このように、本実施の形態では、長時間の動画像や音声データなどのストリーミングデータSTに対してPIAT署名を行っても、必要な署名データ量をデータ長のlogオーダで削減可能であり、実用性が高い電子署名をおこなうことができる。図29は、動画像のストリーミングデータにPIAT署名を適用する場合の削減効果を示す図表である。図29において、計算量のHはハッシュ値の計算回数、Rは乱数生成回数を示す。
以上説明したように、本実施の形態によれば、動画像や音声などの署名対象となるストリーミングデータの原本性の保証、署名対象からのプライバシー保護可能なデータ抽出、および署名関連データの大幅なデータ量削減を実現することができるという効果を奏する。
なお、本実施の形態で説明した電子署名方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
また、本実施の形態で説明した電子署名装置100は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けIC(以下、単に「ASIC」と称す。)やFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。具体的には、たとえば、上述した電子署名装置100の機能的構成をHDL記述によって機能定義し、そのHDL記述を論理合成してASICやPLDに与えることにより、電子署名装置100を製造することができる。
(付記1)コンピュータを、
動画像または音声に関するストリーミングデータを所定単位の複数の部分データに分割する分割手段、
前記分割手段によって得られた各部分データに関する数値を一方向性関数に与えることにより、前記複数の部分データに関する前記一方向性関数の出力値列を生成する出力値列生成手段、
前記出力値列生成手段によって生成された出力値列のみをリーフとする前記ストリーミングデータに関する二分木を生成する二分木生成手段、
前記二分木生成手段によって生成された二分木のルートを示す出力値を用いて、前記ストリーミングデータに対する署名者の電子署名を生成する電子署名生成手段、
として機能させることを特徴とする電子署名プログラム。
(付記2)前記コンピュータを、
前記ストリーミングデータの中から任意の部分データ列を抽出し、残余の部分データを削除する抽出手段として機能させ、
前記二分木生成手段は、
前記ストリーミングデータに関する二分木の中から、前記抽出手段によって削除された部分データ(以下、「削除部分データ」という)に関する出力値のみをリーフとする前記削除部分データに関する二分木を抽出し、当該二分木のルートを示す出力値列を前記抽出手段によって抽出された部分データ列とともに出力することを特徴とする付記1に記載の電子署名プログラム。
(付記3)前記電子署名生成手段は、
前記削除部分データに関する二分木のルートを示す出力値列を用いて、前記抽出手段によって抽出された部分データ列を抽出した抽出者の電子署名を生成することを特徴とする付記2に記載の電子署名プログラム。
(付記4)前記分割手段は、
前記部分データ列を前記所定単位の複数の部分データに分割し、
前記出力値列生成手段は、
前記分割手段によって前記部分データ列から分割された各部分データに関する数値を前記一方向性関数に与えることにより、前記複数の部分データに関する前記一方向性関数の出力値列を生成し、
前記二分木生成手段は、
前記出力値列生成手段によって生成された前記複数の部分データに関する出力値列と、前記削除部分データに関する二分木と、に基づいて、前記ストリーミングデータに関する二分木を生成することを特徴とする付記2または3に記載の電子署名プログラム。
(付記5)コンピュータを、
動画像または音声に関するストリーミングデータを所定単位の複数の部分データに分割する分割手段、
乱数を取得する取得手段、
前記取得手段によって取得された乱数をルート乱数とする二分木を、当該二分木のリーフ列を構成する乱数列が前記分割手段によって分割された部分データの個数と同数となるように生成する二分木生成手段、
前記二分木生成手段によって生成された二分木のリーフ乱数列と、前記複数の部分データとに基づいて、前記複数の部分データに関する出力値列を生成する出力値列生成手段、
として機能させることを特徴とする電子署名プログラム。
(付記6)前記二分木生成手段は、
分岐元乱数と第1の数値とを用いた数値を一方向性関数に与えることにより、その出力値を第1の分岐先乱数として出力するとともに、前記分岐元乱数と前記第1の数値とは異なる第2の数値とを用いた数値を前記一方向性関数に与えることにより、その出力値を前記第1の分岐先乱数とは異なる第2の分岐先乱数として出力することにより、前記二分木を生成することを特徴とする付記5に記載の電子署名プログラム。
(付記7)前記二分木生成手段は、
前記分岐元乱数の位置情報と前記第2の分岐先乱数の位置情報とに基づいて、前記第2の分岐先乱数を生成しないことにより、前記二分木を生成することを特徴とする付記6に記載の電子署名プログラム。
(付記8)前記コンピュータを、
前記ストリーミングデータの中から任意の部分データ列を抽出し、残余の部分データを削除する抽出手段として機能させ、
前記分割手段は、
前記部分データ列を前記所定単位の複数の部分データに分割し、
前記二分木生成手段は、
前記二分木の中から、前記分割手段によって分割された複数の部分データに対応する乱数列のみをリーフ乱数列とする二分木を抽出して、前記部分データ列とともに出力することを特徴とする付記5〜7のいずれか一つに記載の電子署名プログラム。
(付記9)付記1〜8のいずれか一つに記載の電子署名プログラムを記録した前記コンピュータに読み取り可能な記録媒体。
(付記10)動画像または音声に関するストリーミングデータを所定単位の複数の部分データに分割する分割手段と、
前記分割手段によって得られた各部分データに関する数値を一方向性関数に与えることにより、前記複数の部分データに関する前記一方向性関数の出力値列を生成する出力値列生成手段と、
前記出力値列生成手段によって生成された出力値列のみをリーフとする前記ストリーミングデータに関する二分木を生成する二分木生成手段と、
前記二分木生成手段によって生成された二分木のルートを示す出力値を用いて、前記ストリーミングデータに対する署名者の電子署名を生成する電子署名生成手段と、
を備えることを特徴とする電子署名装置。
(付記11)動画像または音声に関するストリーミングデータを所定単位の複数の部分データに分割する分割手段と、
乱数を取得する取得手段と、
前記取得手段によって取得された乱数をルート乱数とする二分木を、当該二分木のリーフ列を構成する乱数列が前記分割手段によって分割された部分データの個数と同数となるように生成する二分木生成手段と、
前記二分木生成手段によって生成された二分木のリーフ乱数列と、前記複数の部分データとに基づいて、前記複数の部分データに関する出力値列を生成する出力値列生成手段と、
を備えることを特徴とする電子署名装置。
(付記12)動画像または音声に関するストリーミングデータを所定単位の複数の部分データに分割する分割工程と、
前記分割工程によって得られた各部分データに関する数値を一方向性関数に与えることにより、前記複数の部分データに関する前記一方向性関数の出力値列を生成する出力値列生成工程と、
前記出力値列生成工程によって生成された出力値列のみをリーフとする前記ストリーミングデータに関する二分木を生成する二分木生成工程と、
前記二分木生成工程によって生成された二分木のルートを示す出力値を用いて、前記ストリーミングデータに対する署名者の電子署名を生成する電子署名生成工程と、
を含んだことを特徴とする電子署名方法。
(付記13)動画像または音声に関するストリーミングデータを所定単位の複数の部分データに分割する分割工程と、
乱数を取得する取得工程と、
前記取得工程によって取得された乱数をルート乱数とする二分木を、当該二分木のリーフ列を構成する乱数列が前記分割工程によって分割された部分データの個数と同数となるように生成する二分木生成工程と、
前記二分木生成工程によって生成された二分木のリーフ乱数列と、前記複数の部分データとに基づいて、前記複数の部分データに関する出力値列を生成する出力値列生成工程と、
を含んだことを特徴とする電子署名方法。
以上のように、本発明にかかる電子署名プログラム、該プログラムを記録した記録媒体、電子署名装置、および電子署名方法は、動画像や音声などのストリーミングデータに対する電子署名に適している。
この発明の実施の形態にかかる電子署名装置のハードウェア構成を示すブロック図である。 署名時における電子署名装置の機能的構成を示す説明図である。 抽出時における電子署名装置の機能的構成を示す説明図である。 検証時における電子署名装置の機能的構成を示す説明図である。 署名・抽出時における二分木生成部の機能的構成を示すブロック図である。 部分データ数nが奇数でかつn−1が偶数である場合に生成されるハッシュ値二分木を示す説明図である。 部分データ数nが奇数でかつn−1が奇数である場合に生成されるハッシュ値二分木を示す説明図である。 削除ハッシュ値二分木の生成例を示す説明図である。 部分データ数n=5である場合に生成される乱数二分木Trを示す説明図である。 部分データ数n=7である場合に生成される乱数二分木Trを示す説明図である。 抽出乱数二分木の生成例を示す説明図である。 検証時における二分木生成部の機能的構成を示すブロック図である。 ハッシュ値二分木Thの復元例(その1)を示す説明図である。 ハッシュ値二分木Thの復元例(その2)を示す説明図である。 この発明の実施の形態にかかる電子署名装置による署名処理手順を示すフローチャートである。 図15に示した乱数二分木生成処理(ステップS1503)による乱数二分木生成処理手順を示すフローチャートである。 図16に示した分岐先乱数算出処理(ステップS1607)による分岐先乱数算出処理手順を示すフローチャートである。 図15に示したハッシュ値列生成処理(ステップS1504)によるハッシュ値列生成処理手順を示すフローチャートである。 図15に示したハッシュ値二分木生成処理(ステップS1505)によるハッシュ値列生成処理手順を示すフローチャートである。 この発明の実施の形態にかかる電子署名装置によるデータ抽出処理手順を示すフローチャートである。 この発明の実施の形態にかかる電子署名装置によるデータ抽出処理手順を示すフローチャートである。 PIAT技術の署名者用のアルゴリズムの概要を示す説明図である。 PIAT技術の抽出者用のアルゴリズムの概要を示す説明図である。 PIAT技術の検証者用のアルゴリズムの概要を示す説明図である。 動画像のストリーミングデータを署名対象とした特許文献1の署名技術における署名者による署名処理を示す説明図である。 動画像ファイルを署名対象とした特許文献1の署名技術における抽出者による抽出処理を示す説明図である。 部分動画像に付加された乱数を示す説明図である。 アニメーションの動画像ファイルを示す説明図である。 動画像のストリーミングデータにPIAT署名を適用する場合の削減効果を示す図表である。
符号の説明
100 電子署名装置
201 二分木生成部
202 電子署名処理部
301 抽出部
501 分割部
502 ハッシュ値計算部
503 ハッシュ値列生成部
504 ハッシュ値二分木生成部
505 削除ハッシュ値二分木生成部
506 乱数生成部
507 スイッチ
508 乱数二分木生成部
509 抽出乱数二分木生成部

Claims (10)

  1. コンピュータを、
    動画像または音声に関するストリーミングデータを所定単位の複数の部分データに分割する分割手段、
    前記分割手段によって得られた各部分データに関する数値を一方向性関数に与えることにより、前記複数の部分データに関する前記一方向性関数の出力値列を生成する出力値列生成手段、
    前記出力値列生成手段によって生成された出力値列のみをリーフとする前記ストリーミングデータに関する二分木を生成する二分木生成手段、
    前記二分木生成手段によって生成された二分木のルートを示す出力値を用いて、前記ストリーミングデータに対する署名者の電子署名を生成する電子署名生成手段、
    として機能させることを特徴とする電子署名プログラム。
  2. 前記コンピュータを、
    前記ストリーミングデータの中から任意の部分データ列を抽出し、残余の部分データを削除する抽出手段として機能させ、
    前記二分木生成手段は、
    前記ストリーミングデータに関する二分木の中から、前記抽出手段によって削除された部分データ(以下、「削除部分データ」という)に関する出力値のみをリーフとする前記削除部分データに関する二分木を抽出し、当該二分木のルートを示す出力値列を前記抽出手段によって抽出された部分データ列とともに出力することを特徴とする請求項1に記載の電子署名プログラム。
  3. 前記電子署名生成手段は、
    前記削除部分データに関する二分木のルートを示す出力値列を用いて、前記抽出手段によって抽出された部分データ列を抽出した抽出者の電子署名を生成することを特徴とする請求項2に記載の電子署名プログラム。
  4. 前記分割手段は、
    前記部分データ列を前記所定単位の複数の部分データに分割し、
    前記出力値列生成手段は、
    前記分割手段によって前記部分データ列から分割された各部分データに関する数値を前記一方向性関数に与えることにより、前記複数の部分データに関する前記一方向性関数の出力値列を生成し、
    前記二分木生成手段は、
    前記出力値列生成手段によって生成された前記複数の部分データに関する出力値列と、前記削除部分データに関する二分木と、に基づいて、前記ストリーミングデータに関する二分木を生成することを特徴とする請求項2または3に記載の電子署名プログラム。
  5. コンピュータを、
    動画像または音声に関するストリーミングデータを所定単位の複数の部分データに分割する分割手段、
    乱数を取得する取得手段、
    前記取得手段によって取得された乱数をルート乱数とする二分木を、当該二分木のリーフ列を構成する乱数列が前記分割手段によって分割された部分データの個数と同数となるように生成する二分木生成手段、
    前記二分木生成手段によって生成された二分木のリーフ乱数列と、前記複数の部分データとに基づいて、前記複数の部分データに関する出力値列を生成する出力値列生成手段、
    として機能させることを特徴とする電子署名プログラム。
  6. 請求項1〜5のいずれか一つに記載の電子署名プログラムを記録した前記コンピュータに読み取り可能な記録媒体。
  7. 動画像または音声に関するストリーミングデータを所定単位の複数の部分データに分割する分割手段と、
    前記分割手段によって得られた各部分データに関する数値を一方向性関数に与えることにより、前記複数の部分データに関する前記一方向性関数の出力値列を生成する出力値列生成手段と、
    前記出力値列生成手段によって生成された出力値列のみをリーフとする前記ストリーミングデータに関する二分木を生成する二分木生成手段と、
    前記二分木生成手段によって生成された二分木のルートを示す出力値を用いて、前記ストリーミングデータに対する署名者の電子署名を生成する電子署名生成手段と、
    を備えることを特徴とする電子署名装置。
  8. 動画像または音声に関するストリーミングデータを所定単位の複数の部分データに分割する分割手段と、
    乱数を取得する取得手段と、
    前記取得手段によって取得された乱数をルート乱数とする二分木を、当該二分木のリーフ列を構成する乱数列が前記分割手段によって分割された部分データの個数と同数となるように生成する二分木生成手段と、
    前記二分木生成手段によって生成された二分木のリーフ乱数列と、前記複数の部分データとに基づいて、前記複数の部分データに関する出力値列を生成する出力値列生成手段と、
    を備えることを特徴とする電子署名装置。
  9. 動画像または音声に関するストリーミングデータを所定単位の複数の部分データに分割する分割工程と、
    前記分割工程によって得られた各部分データに関する数値を一方向性関数に与えることにより、前記複数の部分データに関する前記一方向性関数の出力値列を生成する出力値列生成工程と、
    前記出力値列生成工程によって生成された出力値列のみをリーフとする前記ストリーミングデータに関する二分木を生成する二分木生成工程と、
    前記二分木生成工程によって生成された二分木のルートを示す出力値を用いて、前記ストリーミングデータに対する署名者の電子署名を生成する電子署名生成工程と、
    を含んだことを特徴とする電子署名方法。
  10. 動画像または音声に関するストリーミングデータを所定単位の複数の部分データに分割する分割工程と、
    乱数を取得する取得工程と、
    前記取得工程によって取得された乱数をルート乱数とする二分木を、当該二分木のリーフ列を構成する乱数列が前記分割工程によって分割された部分データの個数と同数となるように生成する二分木生成工程と、
    前記二分木生成工程によって生成された二分木のリーフ乱数列と、前記複数の部分データとに基づいて、前記複数の部分データに関する出力値列を生成する出力値列生成工程と、
    を含んだことを特徴とする電子署名方法。
JP2007012048A 2007-01-22 2007-01-22 電子署名プログラム、および電子署名装置 Active JP4359622B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007012048A JP4359622B2 (ja) 2007-01-22 2007-01-22 電子署名プログラム、および電子署名装置
US11/984,314 US8037312B2 (en) 2007-01-22 2007-11-15 Method and apparatus for digital signature authentication, and computer product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007012048A JP4359622B2 (ja) 2007-01-22 2007-01-22 電子署名プログラム、および電子署名装置

Publications (3)

Publication Number Publication Date
JP2008178048A true JP2008178048A (ja) 2008-07-31
JP2008178048A5 JP2008178048A5 (ja) 2009-04-09
JP4359622B2 JP4359622B2 (ja) 2009-11-04

Family

ID=39704701

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007012048A Active JP4359622B2 (ja) 2007-01-22 2007-01-22 電子署名プログラム、および電子署名装置

Country Status (2)

Country Link
US (1) US8037312B2 (ja)
JP (1) JP4359622B2 (ja)

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010098431A (ja) * 2008-10-15 2010-04-30 Fujitsu Ltd 音声データの管理方法、音声データの管理プログラム
JP2010107832A (ja) * 2008-10-31 2010-05-13 Mitsubishi Electric Corp ハッシュ生成装置及び検証装置及びハッシュ生成プログラム及びハッシュ生成方法
WO2010097942A1 (ja) 2009-02-27 2010-09-02 富士通株式会社 電子署名プログラム、電子署名装置、および電子署名方法
WO2010097923A1 (ja) 2009-02-26 2010-09-02 富士通株式会社 画像管理方法、画像管理プログラム、画像管理システム
JP2010251877A (ja) * 2009-04-13 2010-11-04 Hitachi Kokusai Electric Inc 署名装置
JP2010262456A (ja) * 2009-05-01 2010-11-18 Brother Ind Ltd 分散保存システム、ノード装置、ノードプログラム、及びページ情報取得方法
JP2010262457A (ja) * 2009-05-01 2010-11-18 Brother Ind Ltd 管理装置、ノード装置、ノードプログラム、ページ情報送信プログラム、及びページ情報送信方法
JP2010262455A (ja) * 2009-05-01 2010-11-18 Brother Ind Ltd 管理装置、情報生成プログラム、及び情報生成方法
EP2306737A2 (en) 2009-09-30 2011-04-06 Fujitsu Limited Signature generating device and method, signature verifying device and method, and computer product
JP2011180784A (ja) * 2010-02-26 2011-09-15 Fujitsu Ltd データ管理装置、データ管理方法、およびデータ管理プログラム
JP2011254475A (ja) * 2010-06-01 2011-12-15 Toshiba Corp 改ざん検出装置及び改ざん検出方法
US8761521B2 (en) 2010-03-31 2014-06-24 Fujitsu Limited Still image verifying apparatus and method
US8909921B2 (en) 2008-02-19 2014-12-09 Fujitsu Limited Signature management method and signature management device
US9053370B2 (en) 2009-12-21 2015-06-09 Fujitsu Limited Digital signature apparatus and method
US9253530B2 (en) 2008-02-19 2016-02-02 Fujitsu Limited Stream data management program, method and system
JP2017169184A (ja) * 2016-03-14 2017-09-21 株式会社リコー データ処理装置、データ処理システム及びプログラム
JP2017169183A (ja) * 2016-03-14 2017-09-21 株式会社リコー データ生成装置、データ記録システム及びプログラム
JP2018054841A (ja) * 2016-09-28 2018-04-05 株式会社リコー データ生成装置、データ生成方法、プログラム及びデータ記録システム

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4584300B2 (ja) * 2007-12-19 2010-11-17 富士通株式会社 電子署名プログラム、コンピュータにより読み取り可能な記録媒体、電子署名装置、電子署名方法
JP2009182864A (ja) * 2008-01-31 2009-08-13 Hitachi Kokusai Electric Inc 署名装置、検証装置、プログラム、署名方法、検証方法及びシステム
US8874920B2 (en) * 2008-02-26 2014-10-28 Texas Instruments Incorporated Verifying cryptographic signature from stored primitives of previously received signature
US8565239B2 (en) * 2009-07-14 2013-10-22 Broadcom Corporation Node based path selection randomization
US8503456B2 (en) * 2009-07-14 2013-08-06 Broadcom Corporation Flow based path selection randomization
US9553728B2 (en) * 2011-02-25 2017-01-24 Nokia Technologies Oy Method and apparatus for providing end-to-end security for distributed computations
JP5776927B2 (ja) * 2011-03-28 2015-09-09 ソニー株式会社 情報処理装置及び方法、並びにプログラム
EP2849099B1 (en) * 2013-09-11 2021-07-28 Dassault Systèmes A computer-implemented method for designing an industrial product modeled with a binary tree.
JP6269155B2 (ja) * 2014-02-24 2018-01-31 富士通株式会社 配信方法、端末装置、及び配信システム
KR101977109B1 (ko) * 2015-11-17 2019-08-28 (주)마크애니 해시함수 기반의 대규모 동시 전자서명 서비스 시스템 및 그 방법
US11228445B2 (en) * 2018-06-19 2022-01-18 Docusign, Inc. File validation using a blockchain
FR3113963B1 (fr) * 2020-09-10 2023-06-30 Thales Sa Chaine de confiance avancee en aeronautique domaine de l'invention
CN112989405A (zh) * 2021-02-05 2021-06-18 武汉北大高科软件股份有限公司 一种数据存证的可信化存储方法、装置、设备和存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0972374A1 (en) 1998-02-04 2000-01-19 Sun Microsystems, Inc. Method and apparatus for efficient authentication and integrity checking using hierarchical hashing
JP2000286836A (ja) 1999-03-30 2000-10-13 Fujitsu Ltd 認証装置および記録媒体
US6959384B1 (en) 1999-12-14 2005-10-25 Intertrust Technologies Corporation Systems and methods for authenticating and protecting the integrity of data streams and other data
IL140141A (en) 1999-12-14 2007-07-24 Ibm Transcoding in data communications
US20060136728A1 (en) * 2003-08-15 2006-06-22 Gentry Craig B Method and apparatus for authentication of data streams with adaptively controlled losses
WO2005027008A1 (en) * 2003-09-10 2005-03-24 Ntt Docomo, Inc. Method and apparatus for secure and small credits for verifiable service provider metering
JP2006060722A (ja) 2004-08-24 2006-03-02 Hitachi Ltd 電子文書の真正性保証方法および電子文書の公開システム
JP4599194B2 (ja) 2005-03-08 2010-12-15 株式会社東芝 復号装置、復号方法、及びプログラム

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9253530B2 (en) 2008-02-19 2016-02-02 Fujitsu Limited Stream data management program, method and system
US8909921B2 (en) 2008-02-19 2014-12-09 Fujitsu Limited Signature management method and signature management device
JP2010098431A (ja) * 2008-10-15 2010-04-30 Fujitsu Ltd 音声データの管理方法、音声データの管理プログラム
JP2010107832A (ja) * 2008-10-31 2010-05-13 Mitsubishi Electric Corp ハッシュ生成装置及び検証装置及びハッシュ生成プログラム及びハッシュ生成方法
WO2010097923A1 (ja) 2009-02-26 2010-09-02 富士通株式会社 画像管理方法、画像管理プログラム、画像管理システム
US8549306B2 (en) 2009-02-26 2013-10-01 Fujitsu Limited Image managing method and image managing system
WO2010097942A1 (ja) 2009-02-27 2010-09-02 富士通株式会社 電子署名プログラム、電子署名装置、および電子署名方法
US8566597B2 (en) 2009-02-27 2013-10-22 Fujitsu Limited Digital signature program, digital signature apparatus, and digital signature method
JP5174233B2 (ja) * 2009-02-27 2013-04-03 富士通株式会社 電子署名プログラム、電子署名装置、および電子署名方法
JP2010251877A (ja) * 2009-04-13 2010-11-04 Hitachi Kokusai Electric Inc 署名装置
JP2010262456A (ja) * 2009-05-01 2010-11-18 Brother Ind Ltd 分散保存システム、ノード装置、ノードプログラム、及びページ情報取得方法
JP2010262457A (ja) * 2009-05-01 2010-11-18 Brother Ind Ltd 管理装置、ノード装置、ノードプログラム、ページ情報送信プログラム、及びページ情報送信方法
JP2010262455A (ja) * 2009-05-01 2010-11-18 Brother Ind Ltd 管理装置、情報生成プログラム、及び情報生成方法
US8667302B2 (en) 2009-09-30 2014-03-04 Fujitsu Limited Signature generating device and method, signature verifying device and method, and computer product
JP2011075867A (ja) * 2009-09-30 2011-04-14 Fujitsu Ltd 署名生成装置、署名検証装置、署名生成方法、署名検証方法、署名生成プログラム、および署名検証プログラム
EP2306737A2 (en) 2009-09-30 2011-04-06 Fujitsu Limited Signature generating device and method, signature verifying device and method, and computer product
US9053370B2 (en) 2009-12-21 2015-06-09 Fujitsu Limited Digital signature apparatus and method
JP2011180784A (ja) * 2010-02-26 2011-09-15 Fujitsu Ltd データ管理装置、データ管理方法、およびデータ管理プログラム
US8761521B2 (en) 2010-03-31 2014-06-24 Fujitsu Limited Still image verifying apparatus and method
JP2011254475A (ja) * 2010-06-01 2011-12-15 Toshiba Corp 改ざん検出装置及び改ざん検出方法
JP2017169184A (ja) * 2016-03-14 2017-09-21 株式会社リコー データ処理装置、データ処理システム及びプログラム
JP2017169183A (ja) * 2016-03-14 2017-09-21 株式会社リコー データ生成装置、データ記録システム及びプログラム
JP2018054841A (ja) * 2016-09-28 2018-04-05 株式会社リコー データ生成装置、データ生成方法、プログラム及びデータ記録システム

Also Published As

Publication number Publication date
JP4359622B2 (ja) 2009-11-04
US8037312B2 (en) 2011-10-11
US20080256362A1 (en) 2008-10-16

Similar Documents

Publication Publication Date Title
JP4359622B2 (ja) 電子署名プログラム、および電子署名装置
JP2008178048A5 (ja)
US9870508B1 (en) Securely authenticating a recording file from initial collection through post-production and distribution
JP4584300B2 (ja) 電子署名プログラム、コンピュータにより読み取り可能な記録媒体、電子署名装置、電子署名方法
JP5383297B2 (ja) 署名装置
US9477846B2 (en) Signature device and signature method
US11899653B2 (en) Digital content integrity verification systems and methods
US7778438B2 (en) Method for multi-media recognition, data conversion, creation of metatags, storage and search retrieval
US7017045B1 (en) Multimedia watermarking system and method
JP5239849B2 (ja) 電子署名方法、電子署名プログラムおよび電子署名装置
US20070248226A1 (en) System and method for fast and scalable multimedia authentication in real time environment
EP2107711B1 (en) Method and apparatus for digital signature authentication, and computer product
KR101855442B1 (ko) 미디어 파일 위변조 검증 방법
KR20070029575A (ko) 정보 처리 장치, 검증 처리 장치, 및 그 제어방법
JP2011130391A (ja) 署名装置、署名方法、および署名プログラム
JP2009200595A (ja) 署名管理プログラム、署名管理方法及び署名管理装置
JP6543764B2 (ja) デジタルビデオコンテンツのセキュリティ認証方法及びそのシステム
JP4390570B2 (ja) 多段署名検証システム、電子署名付与装置、データ追加装置及び電子署名検証装置
CN116015945A (zh) 基于电子签名的电子档案安全传输方法、系统及介质
JP2017118447A (ja) 管理局装置、著作権保護装置、編集装置、検証装置、管理プログラム、著作権保護プログラム、編集プログラム、及び検証プログラム
KR101162707B1 (ko) 일반 전자서명 알고리즘만으로 구현이 가능한 트랩도어 기반 편집 가능 전자서명 방법
JP5988554B2 (ja) 情報処理装置、情報処理方法及びプログラム
JP5256985B2 (ja) 音声データの管理方法、音声データの管理プログラム
KR101703880B1 (ko) 시큐어로깅을 위한 포워드시큐어 압축 서명 장치 및 방법
CN113537931A (zh) 电子印章的生成及使用电子印章进行验证的方法及装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081205

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090512

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090713

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090810

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120814

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4359622

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120814

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130814

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250