JP2009182864A - 署名装置、検証装置、プログラム、署名方法、検証方法及びシステム - Google Patents

署名装置、検証装置、プログラム、署名方法、検証方法及びシステム Download PDF

Info

Publication number
JP2009182864A
JP2009182864A JP2008021790A JP2008021790A JP2009182864A JP 2009182864 A JP2009182864 A JP 2009182864A JP 2008021790 A JP2008021790 A JP 2008021790A JP 2008021790 A JP2008021790 A JP 2008021790A JP 2009182864 A JP2009182864 A JP 2009182864A
Authority
JP
Japan
Prior art keywords
signature
hash value
data
value
calculated
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.)
Pending
Application number
JP2008021790A
Other languages
English (en)
Other versions
JP2009182864A5 (ja
Inventor
Keisuke Hakuta
恵輔 伯田
Hisanobu Sato
尚宜 佐藤
Toru Owada
徹 大和田
Sumie Nakabayashi
澄江 中林
Munemitsu Kuwabara
宗光 桑原
Shinya Ogura
慎矢 小倉
Tomomi Takada
智己 高田
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.)
Hitachi Kokusai Electric Inc
Original Assignee
Hitachi Kokusai Electric Inc
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 Hitachi Kokusai Electric Inc filed Critical Hitachi Kokusai Electric Inc
Priority to JP2008021790A priority Critical patent/JP2009182864A/ja
Priority to US12/333,823 priority patent/US20090199010A1/en
Priority to EP08022421A priority patent/EP2086163A3/en
Publication of JP2009182864A publication Critical patent/JP2009182864A/ja
Publication of JP2009182864A5 publication Critical patent/JP2009182864A5/ja
Pending legal-status Critical Current

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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】複数のデータからの任意抜粋保存に対応し、署名長を比較的短くできる効率的な署名技術を提供すること。
【解決手段】署名装置180の署名処理部189では、数学関数計算部190において、複数のデータの各々から算出したハッシュ値を連結した連結値からさらにハッシュ値を算出する処理を繰り返し行うことで一つのハッシュ値hを算出し、算出した当該一つのハッシュ値から署名値を算出する。そして、署名処理部189は、複数のデータに含まれる一のデータに対して、算出した署名値と、一つのハッシュ値hを算出するまでに、当該一のデータから算出されたハッシュ値に連結された他のハッシュ値と、を含めて署名を生成する。
【選択図】図2

Description

本発明は、複数のデータから署名を生成し、生成した署名を検証する技術に関する。
監視対象とするエリアに監視カメラを設置し、この監視カメラで撮影した映像を、インターネットを通じて警備会社などの監視センタに送信し、遠隔地を一括監視する映像監視システムでは、データサイズの大きな映像(例えば、JPEGやMPEGなど)を監視センタなどに設置した蓄積サーバに長期間保存しておき、保存した映像に対する証拠性を確保するためにデジタル署名の適用が望まれている。
特に、中小規模の映像監視システムでは、低コスト化などのために、蓄積サーバの容量に制約があり、映像データを抜粋して保存したり、監視側の装置から映像データの一部の送信を要求された場合に、連続する映像データから抜粋して監視側の装置に送信したりするのが一般的である。
このような映像データを抜粋保存する際に適用可能な署名技術として、例えば、特許文献1に記載の技術がある。
特許文献1に記載の技術では、抜粋保存する際に選択したデータ、および、抜粋保存する際に選択されなかったデータのハッシュ値、全てのデータのハッシュ値から生成した署名値、を署名付きデータとして署名検証側のサーバに送信する。
署名検証側のサーバでは、選択されたデータのハッシュ値を算出して、選択されなかったデータのハッシュ値に連結して、署名の検証を行う。
特開2007−28014号公報
特許文献1に記載の技術では、抜粋保存する際に選択したデータ、および、抜粋保存する際に選択されなかったデータのハッシュ値、全てのデータのハッシュ値から生成した署名値、を署名付きデータとして署名検証側のサーバに送信するため、署名対象のデータ数が多い場合、署名長が長くなってしまう。署名長が長くなると、記憶領域を圧迫し、送受信の効率性に大きな影響を及ぼし、署名の検証にも多くの時間がかかってしまうという課題がある。
そこで、本発明は、複数のデータからの任意抜粋保存に対応し、署名長を比較的短くできる効率的な署名技術を提供することを目的とする。
以上の課題を解決するため、本発明は、複数のデータの各々から算出したハッシュ値を連結した連結値からさらにハッシュ値を算出する処理を繰り返し行うことで一つのハッシュ値を算出し、算出した当該一つのハッシュ値から署名値を算出し、当該署名値と、当該署名値を算出するまでに連結したハッシュ値と、を特定する情報から署名を生成する。
例えば、本発明は、複数のデータの各々に署名を生成する署名装置であって、前記複数のデータの各々からハッシュ値を算出する第一の処理と、算出されたハッシュ値を連結した連結値からハッシュ値を算出する処理を繰り返すことで、一つのハッシュ値を算出する第二の処理と、前記一つのハッシュ値から署名鍵を用いて署名値を算出する第三の処理と、前記複数のデータに含まれる一のデータに対して、前記署名値と、前記一つのハッシュ値を算出するまでに、前記一のデータから算出されたハッシュ値に連結された他のハッシュ値と、を含む署名を生成する第四の処理と、を行う制御部を備えること、を特徴とする。
以上のように、本発明によれば、複数のデータからの任意抜粋保存に対応し、署名長を比較的短くできる効率的な署名技術を提供することができる。
図1は、本発明の第一の実施形態である映像監視システム100の概略図である。
図示するように、映像監視システム100は、映像生成装置110、エンコーダ120、蓄積装置130、表示装置140及び検証装置150を備え、映像生成装置110とエンコーダ120はネットワーク170を介して情報を送受信することができ、エンコーダ120と蓄積装置130はネットワーク171を介して情報を送受信することができ、蓄積装置130と表示装置140はネットワーク172を介して情報を送受信することができるようにされている。
なお、本実施形態においては、検証装置150は、ネットワーク170、171、172にいずれにも接続されていないが、これらの少なくともいずれか一つに接続することができるようにしてもよい。
映像生成装置110は、撮像素子を備えるカメラ等により構成される映像処理部を有する(図示せず)。
また、映像生成装置110は、映像データを記憶部に記憶し、他の映像生成装置110、蓄積装置130及び表示装置140の少なくとも何れかの装置からの要求、または、映像生成装置110自身の判断により、ネットワーク171を介して、他の映像生成装置110、蓄積装置130及び表示装置140の少なくとも何れかの装置に配信する配信機能を有する。ここで、映像生成装置110の判断とは、例えば、差分等により動体を検知した場合等を指す。
エンコーダ120は、映像データをネットワーク伝送に適した形式に変換する機能も有する。例えば、映像データがアナログ信号である場合にはデジタル変換処理を行なったり、ネットワーク171の伝送帯域に応じて圧縮処理を行ったりする。
なお、本実施形態においては、映像生成装置110とエンコーダ120とを別々の装置として説明したが、これらが同じ装置(筐体)内に実現されていてもよい。
蓄積装置130は、映像生成装置110、または、他の蓄積装置130が配信した映像データを受信して、記憶部に記憶する記憶制御部を有する(図示せず)。
蓄積装置130の記憶制御部は、受信した複数の映像データの中から任意に一つ以上を抜粋して記憶部に記憶することも可能である。抜粋されなかった映像データは記憶部には保存されず、破棄される。抜粋保存を行う際、抜粋保存の対象となる映像データの個数は、蓄積装置130において設定を受け付けてもよいし、映像生成装置110において決定し蓄積装置130に設定されてもよい。
また、蓄積装置130は、他の蓄積装置130及び表示装置140の少なくとも何れか一方からの映像要求、または、蓄積装置130自身の判断により、ネットワーク172を介して、映像データを蓄積装置130又は表示装置140に配信する配信機能も有する。
表示装置140は、蓄積装置130から映像データを受信して表示する処理を制御する表示処理部を有する(図示せず)。また、表示処理部は、受信した複数の映像データの中から任意に少なくとも一つ以上を抜粋して記憶部に保存すること可能である。抜粋されなかった映像データは破棄される。抜粋保存を行う際、抜粋保存の対象となる映像データの個数は、表示装置140において設定を受け付けてもよいし、映像生成装置110又は蓄積装置130において決定し表示装置141に設定されてもよい。
ここで、本実施形態においては、以上に記載した映像生成装置110、エンコーダ120、蓄積装置130及び表示装置140のいずれについても、以下に記載する署名装置180の各機能部をさらに備えることで、署名装置180として利用することができる。
即ち、映像生成装置110、エンコーダ120、蓄積装置130及び表示装置140の何れかで生成した署名付き映像データを、映像生成装置110、エンコーダ120、蓄積装置130及び表示装置140の何れかにおいて抜粋保存しておき、抜粋して保存しておいた署名付き映像データを後述するように検証装置150で検証することで、映像データの真正性を証明することができるようになる。
図2は、署名装置180の概略図である。
図示するように署名装置180は、記憶部181と、制御部186と、入力部191と、出力部192と、送受信部193と、を備える。
記憶部181は、署名鍵記憶部182と、検証鍵記憶部183と、映像データ記憶部184と、署名付きデータ記憶部185と、を備える。
署名鍵記憶部182には、映像データに対して署名を行う署名鍵skが記憶される。
検証鍵記憶部183には、署名鍵skを用いて生成された署名に対して検証を行うための検証鍵pkが記憶される。
映像データ記憶部184には、映像生成装置110で撮影された予め定められたデータ形式にされた複数の映像データが記憶される。
署名付きデータ記憶部185には、後述する署名処理部189で映像データから生成された署名付き映像データが記憶される。
制御部186は、全体制御部189と、映像処理部188と、署名処理部189と、数学関数計算部190と、を備える。
全体制御部189は、署名装置180における処理の全体を制御する。
映像処理部188は、映像生成装置110で撮影された映像データを映像データ記憶部184に記憶する処理を行う。
署名処理部189は、映像データ記憶部184に記憶されている映像データに署名を付すことにより、署名付き映像データを生成し、署名付きデータ記憶部185に記憶する処理を行う。
数学関数計算部190は、予め定められたハッシュ関数を用いて、入力されたデータのハッシュ値を算出する処理を行う。
また、数学関数計算部190は、予め定められた署名生成エンジン及び署名鍵記憶部182に記憶されている署名鍵skを用いて、入力されたデータの署名値を生成する処理を行う。
ここで、図3(署名の生成処理を示す概略図)を用いて、本実施形態における署名処理部189及び数学関数計算部190が署名付き映像データを生成する処理の概略を説明する。
図3では、8個の映像データM,M,・・・,Mに対する署名付き映像データを生成する。
ここで、本実施形態においては、図示するように、映像データから算出されるハッシュ値を二つ連結してさらにハッシュ値を算出するハッシュ木の構造を用いる。
まず、署名処理部189は、映像データ記憶部184に記憶されている各映像データに1〜8までの自然数の連番を付すことにより、映像データM,M,・・・,Mとし、各映像データM(i=1,2,・・・,8)を数学関数計算部190に入力することで、各映像データMの0段目のハッシュ値h0,iを算出する。
次に、署名処理部189は、各映像データMのハッシュ値h0.iを順番に2個ずつ連結した値h0,j||h0,j+1(jは奇数の自然数)を算出し、1段目のハッシュ値h1,iを算出する。なお、1段目では、0段目のハッシュ値を二つ連結しているため、4(=8/2)個のハッシュ値が算出される。
以上のように、署名処理部189は、k段目のハッシュ値を2個ずつ連結したhk,j||hk,j+1に対するハッシュ値を計算する処理をハッシュ値が一つになるまで繰り返し、最終的に算出されたハッシュ値h3,1と署名鍵記憶部182に記憶されている署名鍵skを数学関数計算部190に入力することで、数学関数計算部190は、署名鍵skを用いてハッシュ値h3,1から署名値σを算出する。
そして、署名処理部189は、任意の映像データMから算出されるハッシュ値に連結されたハッシュ値と、算出した署名値σと、映像データMの番号(ハッシュ木に入力する位置)を特定する情報と、を有する署名を生成し、映像データMに添付することで、署名付き映像データを生成する。
ここで、例えば、署名付き映像データを生成する映像データをMとすると、映像データMから算出されるハッシュ値(図3では、h0,5、h1,3、h2,2)に連結されるハッシュ値は、h0,6、h1,4、h2,1であるため、これらのハッシュ値を署名に含める。なお、これらのハッシュ値は、映像データMから算出されるハッシュ値に連結する順序がわかるように署名に含めておく(本実施形態では、連結する順に署名に含めるようにしている)。
なお、複数の映像データM,・・・,Mは必ずしも時系列に沿って連続する映像とは限らない。
図2に戻り、入力部191は、情報の入力を受け付ける。
出力部192は、情報を出力する。
送受信部193は、ネットワークを介して情報の送受信を行うためのインターフェースである。
以上に記載した署名装置180は、例えば、図4(コンピュータ500の概略図)に示すような、CPU(Central Processing Unit)501と、メモリ502と、HDD(Hard Disk Drive)等の外部記憶装置503と、CD−ROM(Compact Disk Read Only Memory)やDVD−ROM(Digital Versatile Disk Read Only Memory)等の可搬性を有する記憶媒体504から情報を読み出す読取装置505と、キーボードやマウスなどの入力装置506と、ディスプレイなどの出力装置507と、通信ネットワークに接続するためのNIC(Network Interface Card)等の通信装置508と、を備えた一般的なコンピュータ500で実現できる。
例えば、記憶部181は、CPU501がメモリ502又は外部記憶装置503を利用することにより実現可能であり、制御部186は、外部記憶装置503に記憶されている所定のプログラムをメモリ502にロードしてCPU501で実行することで実現可能であり、入力部191は、CPU501が入力装置506を利用することで実現可能であり、出力部192は、CPU501が出力装置507を利用することで実現可能であり、送受信部193は、CPU501が通信装置508を利用することで実現可能である。
この所定のプログラムは、読取装置505を介して記憶媒体504から、あるいは、通信装置508を介してネットワークから、外部記憶装置503にダウンロードされ、それから、メモリ502上にロードされてCPU501により実行されるようにしてもよい。また、読取装置505を介して記憶媒体504から、あるいは、通信装置508を介してネットワークから、メモリ502上に直接ロードされ、CPU501により実行されるようにしてもよい。
図5は、検証装置150の概略図である。
図示するように、検証装置150は、記憶部151と、制御部154と、入力部158と、出力部159と、を備える。
記憶部151は、検証鍵記憶部152と、署名付きデータ記憶部153と、を備える。
検証鍵記憶部152には、署名装置180で生成された署名付き映像データに対して検証を行うための検証鍵pkが記憶される。
署名付きデータ記憶部153には、署名装置180で生成された署名付き映像データが記憶される。
制御部154は、全体制御部155と、検証処理部156と、数学関数計算部157と、を備える。
全体制御部155は、検証装置150における処理の全体を制御する。
検証処理部156は、署名付きデータ記憶部153に記憶されている署名付き映像データを検証する処理を行う。
数学関数計算部157は、予め定められたハッシュ関数を用いて、入力されたデータのハッシュ値を算出する処理を行う。
また、数学関数計算部158は、予め定められた署名検証エンジン及び検証鍵記憶部152に記憶されている検証鍵pkを用いて、入力された署名値から復号データを生成する処理を行う。
ここで、図6(検証処理を示す概略図)を用いて、本実施形態における検証処理部156及び数学関数計算部157において署名付き映像データを検証する処理の概略を説明する。
図6では、図3に示した8個の映像データM,M,・・・,Mの内の一つの映像データMから生成された署名Sを検証する場合を例にして説明する。
まず、検証処理部156は、署名付き映像データより映像データMを抽出して、数学関数計算部157に入力することで、ハッシュ木の0段目のハッシュ値h0,iを算出する。
次に、検証処理部156は、署名付きデータよりハッシュ木の0段目のハッシュ値h0,a(aは、iが奇数の場合にはa=i+1、偶数の場合には、a=i−1)を抽出し、算出したハッシュ値h0,iに連結して(iが奇数の場合にはh0,i||h0,a、iが偶数の場合にはh0,a||h0,i)、数学関数計算部157に入力することで、ハッシュ僕の1段目のハッシュ値h1,iを算出する。
例えば、図6の例では、映像データMから算出されるハッシュ値h0,5に、署名付き映像データに含まれているハッシュ値h0,6を連結した値(h0,5||h0,6)から、ハッシュ値h1,3を算出する。
検証処理部156は、以上の処理を署名付き映像データに含まれている全てのハッシュ値を連結するまで繰り返し行うことで、最終的にハッシュ値h3,1を算出する。
そして、検証処理部156は、署名付き映像データに含まれている署名値σと、検証鍵記憶部152に記憶されている検証鍵pkを数学関数計算部157に入力することで、数学関数計算部157は、検証鍵pkを用いて署名値σから検証値を算出する。
さらに、検証処理部156は、算出したハッシュ値h3,1と、算出した検証値と、が一致する場合には、映像データMの真正性が検証されたと判断する。
図5に戻り、入力部158は、情報の入力を受け付ける。
出力部159は、情報を出力する。
以上に記載した検証装置150は、例えば、図4に示すような一般的なコンピュータ500で実現できる。
例えば、記憶部151は、CPU501がメモリ502又は外部記憶装置503を利用することにより実現可能であり、制御部154は、外部記憶装置503に記憶されている所定のプログラムをメモリ502にロードしてCPU501で実行することで実現可能であり、入力部158は、CPU501が入力装置506を利用することで実現可能であり、出力部159は、CPU501が出力装置507を利用することで実現可能である。
この所定のプログラムは、読取装置505を介して記憶媒体504から、あるいは、通信装置508を介してネットワークから、外部記憶装置503にダウンロードされ、それから、メモリ502上にロードされてCPU501により実行されるようにしてもよい。また、読取装置505を介して記憶媒体504から、あるいは、通信装置508を介してネットワークから、メモリ502上に直接ロードされ、CPU501により実行されるようにしてもよい。
図7は、署名装置180で署名付き映像データを生成する処理を示すフローチャートである。
まず、署名装置180の署名処理部189は、映像データ記憶部184から、複数の映像データM,・・・,M(kは2なる自然数で、mは1以上の自然数)を取得し、また、署名鍵記憶部182から署名鍵skを取得して、記憶部181に署名格納領域s[1],・・・,s[k]を確保する(S10)。
次に、署名処理部189は、カウンタiに1を代入する(S11)。
次に、署名処理部189は、i≦k(=2)であるか否かを判定し(S12)、i≦kが成立する場合(ステップS12でYes)ステップS13に進み、i≦kが成立しない場合(ステップS12でNo)ステップS15に進む。
ステップS13で、数学関数計算部190は、映像データMのハッシュ値h0,i=h(M)を計算する。ここで、hはSHA−256などの暗号学的ハッシュ関数を表す。
そして、署名処理部189は、iに1をインクリメント(i←i+1)して(S14)、ステップS12に戻り処理を繰り返す。
一方、ステップS15では、署名処理部189は、カウンタiに1(i←1)、カウンタjに1(j←1)を代入する。
次に、署名処理部189は、j≦mであるか否かを判定し(S16)、j≦mが成立する場合(ステップS16でYes)ステップS17に進み、j≦mが成立しない場合(ステップS16でNo)ステップS21に進む。
ステップS17では、署名処理部189は、i≦2m−jであるか否かを判定し、i≦2m−jが成立する場合(ステップS17でYes)ステップS18に進み、i≦2m−jが成立しない場合(ステップS17でNo)ステップS20に進む。
ステップS18では、署名処理部189がハッシュ値hj−1,2i−1及びハッシュ値hj−1、2iを連結した値(hj−1,2i−1||hj−1、2i)を数学関数計算部190に入力することで、数学関数計算部190が、ハッシュ値h=h(hj−1,2i−1||hj−1、2i)を算出する。
次に、署名処理部189は、iに1をインクリメント(i←i+1)して(S19)、ステップS17に戻り処理を繰り返す。
一方、ステップS20では、署名処理部189は、jに1をインクリメント(j←j+1)するとともにiを初期値(i←1)に戻し、ステップS16に戻り処理を繰り返す。
また、ステップS21では、署名処理部189は、署名鍵skを用いて、ハッシュ値hm,1から署名値σを算出する。
そして、署名処理部189は、iを初期値(i←1)に戻す(S22)。
次に、署名処理部189は、1≦i≦2であるか否かを判定し(S23)、1≦i≦2が成立する場合(ステップS23でYes)、ステップS24に進み、1≦i≦2が成立しない場合(ステップS23でNo)、処理を終了する。
ステップS24では、署名処理部189は、図8に示すアルゴリズムを用いてa(i,0),a(i,1),・・・,a(i,m−1)を算出することで、署名に含めるハッシュ値を特定する(S25)。
そして、署名処理部19は、映像データMの署名として(h0,a(i,0),h1,a(i,1),・・・,hm−1,a(i,m−1),m,i,σ)をs[i]に代入する(S25)。
図8は、署名に含めるハッシュ値を特定するための数列を算出する処理を示すフローチャートである。
まず、署名処理部189は、映像データMに割り振られる番号iと、署名対象個数k(=2)の2を底とする対数mを特定する(S30)。
次に、署名処理部189は、a(i,0)にiを代入(a(i,0)←i)する(S31)。
次に、署名処理部189は、a(i,0)が偶数であるか否かを判定し(S32)、a(i,0)が偶数である場合(ステップS32でYes)ステップS33に進み、a(i,0)が奇数である場合(ステップS22でNo)ステップS34に進む。
ステップS33では、署名処理部129は、a(i,0)にa(i,0)−1を代入(a(i,0)←a(i,0)−1)する。
一方、ステップS34では、署名処理部129は、a(i,0)にa(i,0)+1を代入(a(i,0)←a(i,0)+1)する。
次に、署名処理部189は、カウンタjを初期化(j←1)する(S35)。
次に、署名処理部189は、j≦m−1であるか否かを判定し(S36)、j≦m−1が成立する場合(ステップS35でYes)にはステップS37に進み、j≦m−1が成立しない場合(ステップS35でNo)にはステップS38に進む。
ステップS38では、署名処理部189は、b(i,j−1)にa(i,j−1)/2を代入(b(i,j−1)←a(i,j−1)/2)する。
一方、ステップS39では、署名処理部189は、b(i,j−1)にa(i,j−1)−1/2を代入(b(i,j−1)←a(i,j−1)−1/2)する。
次に、署名処理部189は、b(i,j−1)が偶数である否かを判定し(S40)、b(i,j−1)が偶数である場合(ステップS37でYes)ステップS41に進み、b(i,j−1)が奇数である場合(ステップS37でNo)ステップS42に進む。
ステップS41では、署名処理部189は、a(i,j)にb(i,j−1)−1を代入(a(i,j)←b(i,j−1)−1)する。
一方、ステップS42では、署名処理部189は、a(i,j)にb(i,j−1)+1を代入(a(i,j)←b(i,j−1)+1)する。
そして、署名処理部189は、jに1をインクリメント(j←j+1)して(S43)、ステップS36に戻り処理を繰り返す。
一方、ステップS44では、署名処理部189は、算出した数列a(i,0),・・・,a(i,m−1)により、ハッシュ値を特定する。
以上のようにして、署名装置180では、映像データM,・・・,Mから署名S,・・・,Sを生成する。
そして、映像生成装置110、エンコーダ120、蓄積装置130又は表示装置140で映像データM,・・・,Mを抜粋保存する場合には、任意の自然数i(i=1,・・・,k)を選択し、iに対応するメッセージMと、メッセージMに対応する署名Sと、を署名付き映像データとして保存する。
なお、抜粋保存される映像データは、MPEG4の場合は基準画像、または、基準画像が含まれている映像データを用いる。
図9は、検証装置150で署名付き映像データ(M、S)の検証処理を示すフローチャートである。
まず、検証処理部156は、署名付きデータ記憶部153より映像データM及び署名Si=(h0,a(i,0),h1,a(i,1),h2,a(i,2),・・・,hm−1,a(i,m−1),m,i,σ)を取得し、また、検証鍵記憶部152より検証鍵pkを取得する(S50)。
次に、検証処理部156は、bにiを代入(b←i)し、数学関数計算部157に映像メッセージMを入力することで、ハッシュ値h0,i=h(M)を算出する(S51)。
次に、検証処理部156は、カウンタjに1を代入(j←1)する(S52)。
次に、検証処理部156は、j≦mであるか否かを判定し(S53)、j≦mが成立する場合(ステップS53でYes)にはステップS54に進み、j≦mが成立しない場合(ステップS53でNo)にはステップS56に進む。
ステップS54では、検証処理部156は、bj−1が偶数であるか否かを判定し、bj−1が偶数の場合(ステップS54でYes)にはステップS55に進み、bj−1が奇数の場合(ステップS54でNo)にはステップS56に進む。
ステップS55では、検証処理部156は、bにbj−1/2を代入(b←bj−1/2)し、数学関数計算部157を用いてハッシュ値hj,Bj=h(hj−1,a(i,j−1)||hj−1,Bj−1)を計算する。なお、Bj=bであり、Bj−1=bj−1である。
一方、ステップS56では、検証処理部156は、bに(bj−1+1)/2を代入(b←(bj−1+1)/2)し、数学関数計算部157を用いてハッシュ値hj,Bj=h(hj−1,Bj−1||hj−1,a(i,j−1))を計算する。なお、Bj=bであり、Bj−1=bj−1である。
次に、検証処理部156は、jにj+1を代入(j←j+1)して(S57)、ステップS53に戻り処理を繰り返す。
次に、ステップS58では、数学関数処理部157は、署名検証関数Vを用いてhm,Bm=V(σ,pk)であるか否かを判定し、一致する場合(ステップS58でYes)有効と判断し(S59)、一致しない場合(ステップS58でNo)無効と判断する(S60)。なお、Bm=bである。
以上のように、本実施形態によれば、映像メッセージMと、これに対応する署名Sと、を任意に選択して保存しても、容易に検証を行うことができる。
なお、以上に記載した実施形態において、署名S[i]には、番号iが含まれている。これは、例えば、図6に示すように、署名(h0,6,h1,4,h2,1,σ,5)に対する検証では、映像データMに対するハッシュ値h0,5を計算した後、計算したハッシュ値h0,5と、署名に含まれるハッシュ値h0,6と、の結合h0,5||h0,6に対するハッシュ値h1,3を計算する。このとき、計算したハッシュ値h0,5と、署名に含まれるハッシュ値h0,6と、の結合の順序、すなわち、h0,5||h0,6であるか、h0,6||h0,5であるか、を決定する必要があるためである。
また、同様の理由により、署名を検証する際、ハッシュ値の結合の順序を決定するために、図9のステップS54に示すようにbj−1の偶奇判定が必要となる。
また、署名s[i]に、底を2とする署名対象個数の対数mが含まれるのは、本実施形態に記載の署名の生成及び署名の検証をソフトウェアなどで実現する際、署名s[i]に何個のハッシュ値が含まれているのかを示す値が必要となるためである。
なお、本実施形態では署名s[i]に含まれているハッシュ値の個数を判断するためにmを用いたが、このような態様に限定されず、署名s[i]に含まれているハッシュ値の個数を判断できればどのような情報や形式であってもよい。例えば、署名s[i]=(i,σ,h0,a(i,0),h1,a(i,1),h2,a(i,2),・・・,hm−1,a(i,m−1))のように署名に含まれる順序を入れ替えることで、ハッシュ値の個数を特定することができるようにしてもよい。即ち、このような署名の形式であれば、署名s[i]の4番目(データのビット数で特定可能)の成分h0,a(i,0)からハッシュ値が挿入されていると決めておけば、hm−1,a(i,m−1)が署名s[i]に含まれる最後の成分(署名データs[i]の終端EOF(End Of File))であることがわかり、署名s[i]に含まれているハッシュ値の個数がmであることがわかる。
なお、図3及び図6では、ハッシュ木の2段目まではハッシュ関数h、ハッシュ木3段目(最終段)ではハッシュ関数Hを用いている。このハッシュ関数hとハッシュ関数Hは同一のハッシュ関数(例えばSHA−256など)を用いてもよく、また、別々のハッシュ関数を用いてもよい。例えば、実システムへの適用時にはハッシュ関数Hと署名生成エンジンの部分をRSA−PSS、ECDSAなどの署名方式に置き換えて使用してもよく、ハッシュ関数Hと署名生成エンジンの部分を署名方式に置き換える場合、図3及び図6のハッシュ木の最終段を含めて(図3及び図6の場合はh2,1||h2,2、一般の場合はhm−1,1||hm−1,2に対して)、署名生成することになる。
さらに、以上に記載した実施形態においては、映像データM,・・・,M(k=2)のハッシュ値をハッシュ木の0段目としたが、このような態様に限定されず、例えば、各映像データM(1≦i≦k)の各々に対応して予め定めた値rを連結したデータm=M||rのハッシュ値をハッシュ木の0段目としてもよい。
ここで、値rは、任意の値を用いることが可能であり、例えば、署名装置180のMACアドレスやIPアドレス、署名生成時の時刻(年月日時等)を用いることができる。このようなデータmを用いることにより、映像データの正当性ばかりでなく、署名装置180や署名の生成時刻の正当性も検証することができる。なお、このような値rを映像データMに連結した場合には、データmと署名sとを署名付きデータとして抜粋保存する。
また、本実施形態では、署名対象データを映像データとして説明したが、他のデータでもよい。
本実施形態に記載の署名方式が高い安全性を備える理由は以下のとおりである。(ハッシュ関数Hと署名生成エンジンの部分の)署名方式(例えば、RSA−PSSやECDSAなど)が暗号学的に安全(安全性証明可能)であり、かつ、ハッシュ関数が理想的なランダム関数(ランダムオラクルモデル)であると仮定し、攻撃モデルと安全性の定義を上述の方式にあわせて変更することにより、上述の複数のデータに対する署名生成/検証方式も暗号学的に安全(安全性証明可能)であることが証明できるからである。
また、本実施形態に記載の署名方式が高い効率性を備える理由は以下の通りである。上述のとおり、公開鍵暗号では、その数学関数に最も処理時間を要し、ハッシュ関数の処理時間は、数学関数の処理時間と比較すると、非常に短い。それゆえ複数の映像データM,・・・,Mに署名を生成する際に、本実施形態では、上述の署名方式では数学関数(署名関数、署名検証関数)を1回だけ計算すればよく、処理時間を短縮することができる。
本実施形態では、署名対象個数nが2べきの数(k=2)の場合のみを説明したが、2べきの数だけでなく、任意個の複数の映像データに対する署名生成も可能である。
署名対象個数が2べきの数でない場合、例えば、図10(署名の生成処理を示す概略図)のような方法を用いることができる。
図10に示す署名の生成方法では、複数の署名データ(図10では、M〜M11)のうちの最大の2べき数の映像データ(図10では、M〜M)で図3と同様の方法で一つのハッシュ値(第一のハッシュ値)を算出し、残りの映像データ(図10では、M〜M11)で一つのハッシュ値(第二のハッシュ値)を算出して、最後に第一のハッシュ値と第二のハッシュ値とを連結して署名生成エンジンに入力するハッシュ値を算出するようにしている。ここで、2べき数の映像データの残りの映像データ(図10では、M〜M11)については、ハッシュ木の特定の段数での連結を行わずに一つのハッシュ値を算出することができるまでハッシュ値の算出を行う。
また、図10に示す署名の生成方法で生成された署名の検証については、図11(検証処理を示す概略図)に示すように、署名する映像データM、映像データMから算出されたハッシュ値h0,5に連結するハッシュ値(図11では、h0,6、h1,4、h2,1、h3,2)、署名値σ、及び、映像データMの番号5を署名に含めておくことで、図6と同様に検証可能である。
次に、本発明の第二の実施形態について説明する。
本発明の第二の実施形態については、第一の実施形態と比較して署名装置280が異なっているため、以下、署名装置280に関連する事項について説明する。
図12は、本発明の第二の実施形態における署名装置280の概略図である。
図示するように署名装置280は、記憶部181と、制御部286と、入力部191と、出力部192と、送受信部193と、を備え、第一の実施形態と比較して制御部286が異なっているため、以下、制御部286に関連する事項について説明する。
制御部286は、全体制御部189と、映像処理部188と、署名処理部289と、数学関数計算部190と、を備え、第一の実施形態と比較して署名処理部289が異なっているため、以下、署名処理部289に関連する事項について説明する。
本実施形態における署名処理部289は、映像データ記憶部184に記憶されている映像データの数が2べき数に該当しない場合に、特定のデータを新たに生成し、署名対象となる映像データの個数を2べきの数にして、第一の実施形態と同様の方法で、署名を生成するようにしている。
ここで、署名処理部289が新たに生成するデータは、予め定められた固定値でもよく、また、乱数でもよい。
図13は、署名装置280での署名の生成処理を示すフローチャートである。
まず、署名装置280の署名処理部289は、Datainfo、署名鍵istate_s、乱数生成用シードseed_r[sLen]、及び、署名格納用領域s[n][fLen]を取得する(S70)。
ここで、fLen=idLen+emLen+hLen*mを満たす正の整数であり、idLenはidのバイト長、emLenは(RSA−PSSやECDSAなどの)デジタル署名方式の署名長、hLenはハッシュ関数の出力バイト長、mは2m−1<n≦2を満たす正の整数である。
一般に署名生成毎に署名対象個数nは変わる(可変である)ので、nに依存するfLenも可変である。
Datainfoは、図14(Datainfoのフォーマットを示す概略図)に示すように署名対象とする複数の映像データM,・・・,M、署名対象個数n、及び、上記各映像データMのバイト長Lenを格納するための記憶領域であり、映像データ格納用の領域サイズは予め固定されている(例えば、1MByteなど)。
また、Datainfoに保存されている映像データ量が上記領域サイズに達していなくても、署名対象数が予め定められた数(これをNMAXとする)に達すると署名生成を行う。
なお、複数の映像データM,・・・,Mは同一の映像生成装置110によって生成された映像とは限らず、異なる複数の映像生成装置110によって生成された映像でもよい。
さらに、複数の映像データM,・・・,Mは同一の映像生成装置110によって生成された時系列に沿って連続する映像データとは限らない。時系列に沿って連続する複数の映像データに対して署名生成を行う場合は、署名生成を行う前に、予め時系列に沿って連続する複数の映像データM,・・・,Mを上記記憶領域Mに格納しておけばよい。例えば、MPEG4の場合、時系列に沿って連続する複数の映像データM,・・・,Mは、GOV(Group of Video)と呼ばれる単位で記憶されている。この場合、Mは基準画像(Iフレーム)または差分画像(Pフレーム)のように、Mをフレーム1枚としてもよいし、Mは1つのGOVであってもよいし、Mは基準画像、MはMの差分画像(複数)、Mは(Mとは異なる)基準画像、MはMの差分画像(複数)のようにしてもよい。
また、署名格納用領域sign[n][fLen]は、例えば、図15(署名格納用領域のフォーマットを示す概略図)に記載のようなフォーマットをもつ。
さらに、図15に記載の署名格納用領域内のID(i=1,・・・,n)部分は、例えば、図16(IDのフォーマットを示す概略図)に記載のようなフォーマットである。
図16に記載のアルゴリズム識別子(algID)は、署名生成の際に用いた署名方式に対応する値を記憶する領域であり、署名方式に対応する値は、例えば、署名されていない場合は0x00、RSA−PSSは0x01、ECDSAは0x02などのように予め定められている。
また、図16に記載の鍵IDは、署名の生成に用いる署名鍵が正当な鍵であるかどうかを確認するために用いる領域である。
図13に戻り、ステップS70に続き、署名処理部289は、N≦NMAXであるか否かを判定し(S71)、N≦NMAXが成立する場合(ステップS71でYes)ステップS72に進み、N≦NMAXが成立しない場合(ステップS71でNo)ステップS83に進む。
ステップS83では、署名処理部289は、エラーを示す−100を出力部192に出力して処理を終了する。
次に、署名処理部289は、tempにh(p×q)を代入する(S72)。
次に、署名処理部289は、カウンタjを初期化(j←1)する(S73)。
次に、署名処理部289は、j≦nであるか否かを判定し(S74)、j≦nが成立する場合(ステップS74でYes)にはステップS75に進み、j≦nが成立しない場合(ステップS74でNo)にはステップS77に進む。
ステップS75では、署名処理部289は、鍵ID(keyID)にtempを代入する。
そして、署名処理部289は、jに1をインクリメント(j←j+1)して(S76)、ステップS74に戻り処理を繰り返す。
一方、ステップS77では、署名処理部289は、2m−1<n≦2なるmを計算する。
そして、署名処理部289は、n<2であるか否かを判定し(S78)、n<2が成立する場合(ステップS78でYes)にはステップS79に進み、n<2が成立しない場合(ステップS78でNo)にはステップS80に進む。
ステップS79では、署名処理部289は、記憶部181に領域Mn+1,・・・,M(k=2)を確保し、これらの領域Mn+1,・・・,M(k=2)に予め定められた固定値又は乱数を入力する(S79)。
次に、署名処理部289は、署名生成計算のために、領域hj,k(1≦j≦m、1≦k≦2m−j)を動的確保し、領域確保に成功したか否かを確認する(S80)。そして、署名処理部は、領域確保に成功した場合(ステップS80でYes)にはステップS81に進み、領域確保に失敗した場合(ステップS80でNo)にはステップS84に進む。
ステップS84では、署名処理部289は、エラーを示す−100を出力部192に出力して処理を終了する。
一方、ステップS81では、署名処理部289は、署名方式を決定し、図7に示すアルゴリズムを用いて、複数の映像データM,・・・,M、istate_s、seed_r[sLen]、s[fLen][1],・・・,s[fLen][n]の署名生成を行い、使用した署名方式に対応する値をアルゴリズム識別子に代入する。
次に、署名処理部289は、ステップS80で確保した領域を解放して(S82)、処理を終了する。
なお、以上のフローチャートでは、ステップS79で2べき数に不足する全てのデータに対して領域を確保しているが、このような態様に限定されず、例えば、連結するハッシュ値が必要となった段階で領域を確保するようにしてもよい。
図17は、検証装置150における検証処理を示すフローチャートである。
ここでは、署名装置280で生成された、映像データdata、映像データdataの署名(h0,a(i,0),h1,a(i,1),・・・,hm−1,a(i,m−1),m,n,i,σ)を含むような図18(s[i]のフォーマットを示す概略図)に記載のフォーマットをもつs[i]、及び、検証鍵pkから署名σが「有効」であるか否かを計算する手順について説明する。
まず、検証装置150の検証処理部156は、映像データdata、映像データdataのバイト長dataLen、映像データdataの署名sign[fLen]、及び、検証鍵istate_pを取得する(S90)。
次に、検証処理部156は、sign[fLen]から鍵ID(keyID)を取り出す(S91)。
次に、検証処理部156は、公開鍵istate_pとkeyIDを用いて公開鍵istate_pの正当性を確認する(S92)。正当な場合(S92でYes)にはステップS93に進み、正当ではない場合(ステップS92でNo)にはステップS98に進む。
ここで、署名方式として(通常のN=p×q型)RSAを用いている場合を例に、ステップS92における正当性の確認について説明する。
RSA署名では、同程度ビット長の素数p、q、および、ランダムな整数0≦d<(p−1)×(q−1)に対して、(p,q,d)を署名鍵、N=p×q、e=1/dmod(p−1)×(q−1)に対して(N,e)を検証鍵とする。NはRSAモジュラスと呼ばれる。keyIDは予めRSAモジュラスNのハッシュ値h(N)の一部(または全体)を格納しておく領域であり、署名生成時に上記ハッシュ値h(N)の一部(または全体)が格納されているとする。
正当性の確認は、検証鍵(N,e)からh(N)を計算し、上記h(N)の一部(または全体)と上記予めkeyIDに保存されているRSAモジュラスNのハッシュ値h(N)の一部(または全体)と比較し、一致する場合、検証鍵は正当であるとし、一致しない場合、検証鍵は不等(正当ではない)と判断する。このような正当性の確認により、入力された署名が正等な検証鍵を用いて検証されたか否かを確認することができる。
また、keyIDは検証鍵の正当性確認だけでなく、署名検証に必要な検証鍵を効率的に検索する役割も担っている。即ち、署名検証処理では、どの装置で生成された署名なのかを確認し、署名を生成した装置の検証鍵を効率的に検索する必要がある。そのため、検証装置150は予め複数の映像生成装置110、エンコーダ120、蓄積装置130又は表示装置140の署名鍵に対応する検証鍵と、h(N)の一部(または全体)と、の組を、例えば、図19(検証鍵の管理方法を示す概略図)に記載の方法で紐付けしてリストとして保持しておくと、署名検証の際に、keyIDに保存された値と一致する検証鍵リストのID(これをIDとする)に対応する検証鍵(これを検証鍵iとする)を効率的に検索することができるからである。
図17に戻り、ステップS98では、検証処理部156は、outputdataにエラーを示す−201を代入して、ステップS97に進む。
一方、ステップS93では、検証処理部156は、i≦n≦2であるか否かを判定し、i≦n≦2が成立する場合(ステップS93でYes)にはステップS94に進み、i≦n≦2が成立しない場合(ステップS93でNo)にはステップS99に進む。
ステップS99では、検証処理部156は、outputdataにエラーを示す−201を代入して、ステップS97に進む。
一方、ステップS94では、検証処理部156は、署名検証計算のために領域を動的確保し、領域確保に成功したか否か確認する。そして、検証処理部156は、領域確保に成功した場合(ステップS94でYes)にはステップS95に進み、領域確保に失敗した場合(ステップS94でNo)にはステップS100に進む。
ステップS100では、検証処理部156は、エラーを示す−100を出力部159に出力して、処理を終了する。
一方、ステップS95では、検証処理部156は、図9に示すアルゴリズムを用いて(data,dataLen[2],sign[fLen],istate_p)の署名検証を行う。
そして、検証処理部156は、ステップS94で確保した領域を解放する(S96)。
ステップS97において、検証処理部156は、出力部159に正常終了を示す0を出力して、処理を終了する。
本実施形態では、検証対象の署名が入力として与えられる場合についてのみ説明したが、映像データに署名データが付加されていない場合も起こり得る。例えば、検証装置150が図1に示すように他の装置とネットワークで繋がっていない状況下で、ユーザが、映像生成装置110、エンコーダ120、蓄積装置130、表示装置140の何れかの装置から映像データと署名データをUSBメモリや外付けHDDなどの外部記憶装置に取り出し、検証装置150へ移動する際に誤って署名を取り出さなかった場合、ユーザが署名を誤って削除してしまった場合などがある。
このように映像データに署名データが付加されていない場合は、本実施形態に記載の署名検証関数を呼び出す上位関数が(例えば、検証処理部156が)、署名が付加されていないことを確認し、署名検証が行えないことを表示するように実現されていてもよい。
図3に記載のハッシュ関数hとハッシュ関数Hは同一のハッシュ関数(例えばSHA-256など)でもよく、また、実システムへの適用時にはハッシュ関数Hと署名生成エンジンの部分をRSA−PSS、ECDSAなどの署名方式に置き換えて使用してもよいことは第一の実施形態と同様である。
なお、上記複数の映像データM,・・・,M(k=2)の代わりに、各i(1≦i≦2)に対し、予め定められた値r を用いてm=M||rとし、m,・・・,mを複数のデータとして本実施形態に記載の方法で署名生成を行ってもよいことも第一の実施形態と同様である。
また、本実施形態では、署名対象データを映像データとして説明したが、他のデータでもよいことも第一の実施形態と同様である。
さらに、本実施形態において署名生成に使用する方式は、図13のステップS81で決定せず、予め使用する署名方式を決定しておき、ステップS70でメッセージDatainfoや署名鍵istate_sなどと一緒に、上記使用する署名方式に対応する値を入力してもよい。
また、以上の記載した実施形態において、署名検証の出力値や返り値(outputdata)は本実施形態に記載の値とは別の値でもよく、出力値や返り値をみて、どのようなエラーが出たのかを把握することができればよい。
以上の通り、本実施形態の署名方式によれば、複数の映像データに対して、ハッシュ木の構造を用いて署名を生成し、署名検証に必要となるハッシュ値の添え字を計算することにより、複数の映像データからの任意抜粋保存に対応し、高い安全性と高い効率性を兼ね備えた署名生成や検証が可能になる。
なお、上記各実施形態では、署名処理部189、289や検証処理部156を、ソフトウェアで実現するものとして説明したが、専用のハードウェアを用いて実現してもよい。また、数学関数計算部190、157を専用ハードウェアで実現しても良い。
映像監視システムの概略図。 署名装置の概略図。 署名の生成処理を示す概略図。 コンピュータの概略図。 検証装置の概略図。 検証処理を示す概略図。 署名付き映像データを生成する処理を示すフローチャート。 署名に含めるハッシュ値を特定するための数列を算出する処理を示すフローチャート。 署名付き映像データの検証処理を示すフローチャート。 署名の生成処理を示す概略図。 検証処理を示す概略図。 署名装置の概略図。 署名装置での署名の生成処理を示すフローチャート。 Datainfoのフォーマットを示す概略図。 署名格納用領域のフォーマットを示す概略図。 IDのフォーマットを示す概略図。 検証処理を示すフローチャート。 s[i]のフォーマットを示す概略図。 検証鍵の管理方法を示す概略図。
符号の説明
100 映像監視システム
110 映像生成装置
120 エンコーダ
130 蓄積装置
140 表示装置
150 検証装置
151 記憶部
152 検証鍵記憶部
153 署名付きデータ記憶部
154 制御部
155 全体制御部
156 検証処理部
157 数学関数計算部
158 入力部
159 出力部
180 署名装置
181 記憶部
182 署名鍵記憶部
183 検証鍵記憶部
184 映像データ記憶部
185 署名付きデータ記憶部
186 制御部
187 全体制御部
188 映像処理部
189、289 署名処理部
190 数学関数計算部

Claims (21)

  1. 複数のデータの各々に署名を生成する署名装置であって、
    前記複数のデータの各々からハッシュ値を算出する第一の処理と、
    算出されたハッシュ値を連結した連結値からハッシュ値を算出する処理を繰り返すことで、一つのハッシュ値を算出する第二の処理と、
    前記一つのハッシュ値から署名鍵を用いて署名値を算出する第三の処理と、
    前記複数のデータに含まれる一のデータに対して、前記署名値と、前記一つのハッシュ値を算出するまでに、前記一のデータから算出されたハッシュ値に連結された他のハッシュ値と、を含む署名を生成する第四の処理と、
    を行う制御部を備えること、
    を特徴とする署名装置。
  2. 請求項1に記載の署名装置であって、
    前記第二の処理は、前記第一の処理で算出されたハッシュ値を、予め定められた順番に従って二つ連結することで連結値を生成してハッシュ値を算出するものであり、
    前記第四の処理で生成する署名には、前記番号が含まれること、
    を特徴とする署名装置。
  3. 請求項1又は2に記載の署名装置であって、
    前記第一の処理は、前記複数のデータの各々に対して、予め定められた値を連結した値にからハッシュ値を算出すること、
    を特徴とする署名装置。
  4. 請求項3に記載の署名装置であって、
    前記第一の処理において、前記複数のデータの各々に対して連結する値は、前記署名装置を識別するための識別情報であり、
    前記第四の署名で生成する署名には、前記識別番号が含まれること、
    を特徴とする署名装置。
  5. 請求項3に記載の署名装置であって、
    前記第一の処理において、前記複数のデータの各々に対して連結する値は、時刻情報であり、
    前記第四の署名で生成する署名には、前記時刻情報が含まれること、
    を特徴とする署名装置。
  6. 請求項1乃至5のいずれか一項に記載の署名装置であって、
    前記制御部は、
    前記複数のデータが、2べき数ではない場合には、任意の値によりデータを生成して付加することで、署名値の算出対象とするデータの数を2べき数にする第五の処理を、少なくとも前記第二の処理の前に行うこと、
    を特徴とする署名装置。
  7. 複数のデータの各々に付された署名を検証する検証装置であって、
    前記複数のデータに含まれる一のデータの前記署名には、署名値と、当該署名値を算出するための一つハッシュ値を算出するまでに、前記一のデータから算出されたハッシュ値に連結された他のハッシュ値と、が含まれており、
    前記一のデータからからハッシュ値を算出する第一の処理と、
    算出されたハッシュ値に前記他のハッシュ値を連結する処理を繰り返すことで、一つのハッシュ値を算出する第二の処理と、
    前記署名値から検証鍵を用いて一つのハッシュ値を算出する第三の処理と、
    前記第二の処理で算出された一つのハッシュ値と、前記第三の処理で算出された一つのハッシュ値と、を検証する第四の処理と、
    を行う制御部を備えること、
    を特徴とする検証装置。
  8. 請求項7に記載の検証装置であって、
    前記署名には、前記一のデータから算出されたハッシュ値を他のハッシュ値に連結する順番を特定する情報が含まれており、
    前記第二の処理は、前記順番に従って、前記一のデータから算出されたハッシュ値を他のハッシュ値に連結した連結値からハッシュ値を算出すること、
    を特徴とする検証装置。
  9. 請求項7又は8に記載の検証装置であって、
    前記署名には、前記一のデータに連結した所定の値を特定する情報が含まれており、
    前記第一の処理は、前記一のデータに前記所定の値を連結した値からハッシュ値を算出すること、
    を特徴とする検証装置。
  10. コンピュータを、複数のデータの各々に署名を生成する署名装置として機能させるプログラムであって、
    前記コンピュータを、
    前記複数のデータの各々からハッシュ値を算出する第一の処理と、
    算出されたハッシュ値を連結した連結値からハッシュ値を算出する処理を繰り返すことで、一つのハッシュ値を算出する第二の処理と、
    前記一つのハッシュ値から署名鍵を用いて署名値を算出する第三の処理と、
    前記複数のデータに含まれる一のデータに対して、前記署名値と、前記一つのハッシュ値を算出するまでに、前記一のデータから算出されたハッシュ値に連結された他のハッシュ値と、を含む署名を生成する第四の処理と、
    を行う制御手段として機能させること、
    を特徴とするプログラム。
  11. 請求項10に記載のプログラムであって、
    前記第二の処理は、前記第一の処理で算出されたハッシュ値を、予め定められた順番に従って二つ連結することで連結値を生成してハッシュ値を算出するものであり、
    前記第四の処理で生成する署名には、前記番号が含まれること、
    を特徴とするプログラム。
  12. 請求項10又は11に記載のプログラムであって、
    前記第一の処理は、前記複数のデータの各々に対して、予め定められた値を連結した値にからハッシュ値を算出すること、
    を特徴とするプログラム。
  13. 請求項12に記載のプログラムであって、
    前記第一の処理において、前記複数のデータの各々に対して連結する値は、前記署名装置を識別するための識別情報であり、
    前記第四の署名で生成する署名には、前記識別番号が含まれること、
    を特徴とするプログラム。
  14. 請求項12に記載のプログラムであって、
    前記第一の処理において、前記複数のデータの各々に対して連結する値は、時刻情報であり、
    前記第四の署名で生成する署名には、前記時刻情報が含まれること、
    を特徴とするプログラム。
  15. 請求項10乃至14のいずれか一項に記載のプログラムであって、
    前記制御手段は、
    前記複数のデータが、2べき数ではない場合には、任意の値によりデータを生成して付加することで、署名値の算出対象とするデータの数を2べき数にする第五の処理を、少なくとも前記第二の処理の前に行うこと、
    を特徴とするプログラム。
  16. コンピュータを、複数のデータの各々に付された署名を検証する検証装置として機能させるプログラムであって、
    前記複数のデータに含まれる一のデータの前記署名には、署名値と、当該署名値を算出するための一つハッシュ値を算出するまでに、前記一のデータから算出されたハッシュ値に連結された他のハッシュ値と、が含まれており、
    前記コンピュータを、
    前記一のデータからからハッシュ値を算出する第一の処理と、
    算出されたハッシュ値に前記他のハッシュ値を連結する処理を繰り返すことで、一つのハッシュ値を算出する第二の処理と、
    前記署名値から検証鍵を用いて一つのハッシュ値を算出する第三の処理と、
    前記第二の処理で算出された一つのハッシュ値と、前記第三の処理で算出された一つのハッシュ値と、を検証する第四の処理と、
    を行う制御手段として機能させること、
    を特徴とするプログラム。
  17. 請求項16に記載のプログラムであって、
    前記署名には、前記一のデータから算出されたハッシュ値を他のハッシュ値に連結する順番を特定する情報が含まれており、
    前記第二の処理は、前記順番に従って、前記一のデータから算出されたハッシュ値を他のハッシュ値に連結した連結値からハッシュ値を算出すること、
    を特徴とするプログラム。
  18. 請求項16又は17に記載のプログラムであって、
    前記署名には、前記一のデータに連結した所定の値を特定する情報が含まれており、
    前記第一の処理は、前記一のデータに前記所定の値を連結した値からハッシュ値を算出すること、
    を特徴とするプログラム。
  19. 複数のデータの各々に署名を生成する制御部を備える署名装置が行う署名方法であって、
    前記制御部が、前記複数のデータの各々からハッシュ値を算出する第一の過程と、
    前記制御部が、算出されたハッシュ値を連結した連結値からハッシュ値を算出する処理を繰り返すことで、一つのハッシュ値を算出する第二の過程と、
    前記制御部が、前記一つのハッシュ値から署名鍵を用いて署名値を算出する第三の過程と、
    前記制御部が、前記複数のデータに含まれる一のデータに対して、前記署名値と、前記一つのハッシュ値を算出するまでに、前記一のデータから算出されたハッシュ値に連結された他のハッシュ値と、を含む署名を生成する第四の過程と、
    を備えること、
    を特徴とする署名方法。
  20. 複数のデータの各々に付された署名を検証する制御部を備える検証装置が行う検証方法であって、
    前記複数のデータに含まれる一のデータの前記署名には、署名値と、当該署名値を算出するための一つハッシュ値を算出するまでに、前記一のデータから算出されたハッシュ値に連結された他のハッシュ値と、が含まれており、
    前記制御部が、前記一のデータからからハッシュ値を算出する第一の過程と、
    前記制御部が、算出されたハッシュ値に前記他のハッシュ値を連結する処理を繰り返すことで、一つのハッシュ値を算出する第二の過程と、
    前記制御部が、前記署名値から検証鍵を用いて一つのハッシュ値を算出する第三の過程と、
    前記制御部が、前記第二の過程で算出された一つのハッシュ値と、前記第三の過程で算出された一つのハッシュ値と、を検証する第三の過程と、
    を備えること、
    を特徴とする検証方法。
  21. 複数のデータの各々に署名を生成する署名装置と、当該署名装置で生成された署名を検証する検証装置と、を備えるシステムであって、
    前記署名装置は、
    前記複数のデータの各々からハッシュ値を算出する第一の処理と、
    算出されたハッシュ値を連結した連結値からハッシュ値を算出する処理を繰り返すことで、一つのハッシュ値を算出する第二の処理と、
    前記一つのハッシュ値から署名鍵を用いて署名値を算出する第三の処理と、
    前記複数のデータに含まれる一のデータに対して、前記署名値と、前記一つのハッシュ値を算出するまでに、前記一のデータから算出されたハッシュ値に連結された他のハッシュ値と、を含む署名を生成する第四の処理と、
    を行う制御部を備え、
    前記検証装置は、
    前記一のデータからからハッシュ値を算出する第五の処理と、
    算出されたハッシュ値に前記他のハッシュ値を連結する処理を繰り返すことで、一つのハッシュ値を算出する第六の処理と、
    前記署名値から検証鍵を用いて一つのハッシュ値を算出する第七の処理と、
    前記第二の処理で算出された一つのハッシュ値と、前記第七の処理で算出された一つのハッシュ値と、を検証する第八の処理と、
    を行う制御部を備えること、
    を特徴とするシステム。
JP2008021790A 2008-01-31 2008-01-31 署名装置、検証装置、プログラム、署名方法、検証方法及びシステム Pending JP2009182864A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2008021790A JP2009182864A (ja) 2008-01-31 2008-01-31 署名装置、検証装置、プログラム、署名方法、検証方法及びシステム
US12/333,823 US20090199010A1 (en) 2008-01-31 2008-12-12 Signature device, verification device, program, signature method, verification method, and system
EP08022421A EP2086163A3 (en) 2008-01-31 2008-12-23 Signature device, verification device, program, signature method, verification method, and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008021790A JP2009182864A (ja) 2008-01-31 2008-01-31 署名装置、検証装置、プログラム、署名方法、検証方法及びシステム

Publications (2)

Publication Number Publication Date
JP2009182864A true JP2009182864A (ja) 2009-08-13
JP2009182864A5 JP2009182864A5 (ja) 2010-11-11

Family

ID=40651310

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008021790A Pending JP2009182864A (ja) 2008-01-31 2008-01-31 署名装置、検証装置、プログラム、署名方法、検証方法及びシステム

Country Status (3)

Country Link
US (1) US20090199010A1 (ja)
EP (1) EP2086163A3 (ja)
JP (1) JP2009182864A (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5381543B2 (ja) * 2009-09-18 2014-01-08 富士通株式会社 データ処理装置、署名処理プログラム、検証プログラム、及び署名プログラム
EP3202103B1 (en) 2014-09-30 2021-06-16 Telefonaktiebolaget LM Ericsson (publ) Technique for handling data in a data network
JP2016122917A (ja) * 2014-12-24 2016-07-07 パナソニックIpマネジメント株式会社 署名生成装置、署名検証装置、署名生成方法及び署名検証方法
US10396995B2 (en) 2015-02-20 2019-08-27 Telefonaktiebolaget Lm Ericsson (Publ) Method of providing a hash value for a piece of data, electronic device and computer program
PT3259871T (pt) * 2015-02-20 2020-11-10 Ericsson Telefon Ab L M Método para proporcionar um valor de dispersão para uma parte de dados, dispositivo eletrónico e programa de computador
US10043039B2 (en) 2015-04-10 2018-08-07 Telefonaktiebolaget Lm Ericsson (Publ) Verification paths of leaves of a tree
US10511598B2 (en) * 2016-03-29 2019-12-17 Intel Corporation Technologies for dynamic loading of integrity protected modules into secure enclaves
EP3376705A1 (en) * 2017-03-17 2018-09-19 Koninklijke Philips N.V. Elliptic curve point multiplication device and method in a white-box context
JP6959155B2 (ja) * 2017-05-15 2021-11-02 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 検証方法、検証装置およびプログラム
US10715498B2 (en) * 2017-07-18 2020-07-14 Google Llc Methods, systems, and media for protecting and verifying video files

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6097811A (en) * 1995-11-02 2000-08-01 Micali; Silvio Tree-based certificate revocation system
JP2002215029A (ja) * 2001-01-22 2002-07-31 Seiko Epson Corp 情報認証装置及びこれを使用したデジタルカメラ
US20050114666A1 (en) * 1999-08-06 2005-05-26 Sudia Frank W. Blocked tree authorization and status systems
US20070248226A1 (en) * 2006-04-25 2007-10-25 The University Of Hong Kong System and method for fast and scalable multimedia authentication in real time environment

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US20020184504A1 (en) * 2001-03-26 2002-12-05 Eric Hughes Combined digital signature
US7315866B2 (en) * 2003-10-02 2008-01-01 Agency For Science, Technology And Research Method for incremental authentication of documents
JP4788212B2 (ja) 2005-07-13 2011-10-05 富士ゼロックス株式会社 デジタル署名プログラム及びデジタル署名システム
JP4359622B2 (ja) * 2007-01-22 2009-11-04 富士通株式会社 電子署名プログラム、および電子署名装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6097811A (en) * 1995-11-02 2000-08-01 Micali; Silvio Tree-based certificate revocation system
US20050114666A1 (en) * 1999-08-06 2005-05-26 Sudia Frank W. Blocked tree authorization and status systems
JP2002215029A (ja) * 2001-01-22 2002-07-31 Seiko Epson Corp 情報認証装置及びこれを使用したデジタルカメラ
US20070248226A1 (en) * 2006-04-25 2007-10-25 The University Of Hong Kong System and method for fast and scalable multimedia authentication in real time environment

Also Published As

Publication number Publication date
US20090199010A1 (en) 2009-08-06
EP2086163A2 (en) 2009-08-05
EP2086163A3 (en) 2010-03-24

Similar Documents

Publication Publication Date Title
JP2009182864A (ja) 署名装置、検証装置、プログラム、署名方法、検証方法及びシステム
JP5383297B2 (ja) 署名装置
US11336464B2 (en) Identity authentication method and system, as well as computing device and storage medium
JP6013988B2 (ja) データ収集システム、データ収集方法、ゲートウェイ装置及びデータ集約プログラム
CN1741449B (zh) 数据处理系统及其控制方法、计算机程序和可读记录介质
US20080095360A1 (en) Signature System and Signature Method
CN109903450B (zh) 电子投票方法以及系统
CN103957196B (zh) 一种信息安全设备的同步方法和系统
US20180144434A1 (en) Model anti-collusion watermark
US20130322620A1 (en) Apparatus and method for generating secret key for id-based encryption system and recording medium having program recorded thereon for causing computer to execute the method
TWI773161B (zh) 數位簽章私鑰驗證方法
JP2000324334A (ja) 画像処理装置、方法及びシステム、並びに撮像装置、撮像方法、コンピュータ読み取り可能な記憶媒体
CN116032613A (zh) 区块链数字凭证交换方法、文件存储访问方法和系统
JP5518668B2 (ja) 電子署名用鍵管理装置、電子署名用鍵管理方法、電子署名用鍵管理プログラム
CN110266478B (zh) 一种信息处理方法、电子设备
JP2004304338A (ja) データ登録システム、データ登録方法及びプログラム
US20110085659A1 (en) Method and apparatus for generating a signature for a message and method and apparatus for verifying such a signature
CN103370900B (zh) 一种信息处理装置
CN116112216A (zh) 云数据验证方法、装置、电子设备及非易失性存储介质
CN113486375B (zh) 设备信息的存储方法和装置、存储介质及电子装置
CN112184440A (zh) 数据处理方法、装置、节点设备及存储介质
JP6031729B1 (ja) Rfidタグコード生成装置およびその方法、認証装置およびその方法、ならびにプログラム
WO2018128581A1 (en) A transaction management method
US20110208969A1 (en) Method and apparatus for providing authenticity and integrity to stored data
Bexheti et al. Securely Storing and Sharing Memory Cues in Memory Augmentation Systems: A Practical Approach

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100916

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100916

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130319

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130604

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130823

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20130902

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20131108