IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 電子商取引安全技術研究組合の特許一覧

特許7489634デジタル署名システム及びデジタル署名方法
<>
  • 特許-デジタル署名システム及びデジタル署名方法 図1
  • 特許-デジタル署名システム及びデジタル署名方法 図2
  • 特許-デジタル署名システム及びデジタル署名方法 図3
  • 特許-デジタル署名システム及びデジタル署名方法 図4
  • 特許-デジタル署名システム及びデジタル署名方法 図5
  • 特許-デジタル署名システム及びデジタル署名方法 図6
  • 特許-デジタル署名システム及びデジタル署名方法 図7
  • 特許-デジタル署名システム及びデジタル署名方法 図8
  • 特許-デジタル署名システム及びデジタル署名方法 図9
  • 特許-デジタル署名システム及びデジタル署名方法 図10
  • 特許-デジタル署名システム及びデジタル署名方法 図11
  • 特許-デジタル署名システム及びデジタル署名方法 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-16
(45)【発行日】2024-05-24
(54)【発明の名称】デジタル署名システム及びデジタル署名方法
(51)【国際特許分類】
   H04L 9/32 20060101AFI20240517BHJP
【FI】
H04L9/32 200B
H04L9/32 200E
【請求項の数】 11
(21)【出願番号】P 2019202025
(22)【出願日】2019-11-07
(65)【公開番号】P2021077961
(43)【公開日】2021-05-20
【審査請求日】2022-10-14
【国等の委託研究の成果に係る記載事項】(出願人による申告)令和元年度、国立研究開発法人新エネルギー・産業技術総合開発機構「IoT推進のための横断技術開発プロジェクト」委託研究、産業技術力強化法第17条の適用を受ける特許出願
(73)【特許権者】
【識別番号】518082091
【氏名又は名称】株式会社SCU
(74)【代理人】
【識別番号】100114306
【弁理士】
【氏名又は名称】中辻 史郎
(74)【代理人】
【識別番号】100148655
【弁理士】
【氏名又は名称】諏訪 淳一
(72)【発明者】
【氏名】松本 勉
(72)【発明者】
【氏名】四方順司
【審査官】行田 悦資
(56)【参考文献】
【文献】国際公開第2008/075420(WO,A1)
【文献】特開2011-155709(JP,A)
【文献】特開2007-089156(JP,A)
【文献】特開2011-055425(JP,A)
【文献】特開2017-118447(JP,A)
【文献】米国特許出願公開第2011/0184585(US,A1)
【文献】WANG, H. et al.,Group Authentication Based on Error Correction Coding Theory,Acta Electronica Sinica,vol. 47, no. 7,中国,2019年07月25日,pp.1393-1400,<DOI:10.3969/j.issn.0372-2112.2019.07.001>
【文献】黒澤 馨,現代暗号への招待,第1版,株式会社サイエンス社,2010年09月10日,pp.129-130
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/32
G09C 1/00
(57)【特許請求の範囲】
【請求項1】
複数の送信装置からそれぞれメッセージ及び各メッセージの個別署名を受け付け、受け付けた複数の個別署名に基づいて集約署名を生成し、生成した集約署名と複数の送信装置からそれぞれ受け付けた各メッセージとを受信装置に対して送信する集約処理装置を備えたデジタル署名システムであって、
前記受信装置は、前記集約署名が不正であるか否かを判定し、前記集約署名が不正であると判定された場合、前記集約署名に対して適応型のグループテストを行い不正な個別署名を特定し、特定した不正の個別署名を送った送信装置からの個別署名が所定不正回数以上、不正であると判定された場合、次回以降、不正があった個別署名を集約署名から分離して集約署名を行う指示を前記集約処理装置に送信し、
前記集約処理装置は、不正があった個別署名と該個別署名に対応するメッセージとの対と、不正があった個別署名を除いた集約署名と該集約署名に対応するメッセージ群とを前記受信装置に送信し、
前記受信装置は、前記個別署名と前記集約署名とに対する検証処理を行う
とを特徴とするデジタル署名システム。
【請求項2】
前記個別署名は、安全性を確保するために十分な計算量を要する巡回群を用いて生成され、前記集約署名は、個別署名と同じ巡回群上で複数の個別署名の加算演算により生成されることを特徴とする請求項1に記載のデジタル署名システム。
【請求項3】
前記巡回群は、有限体上の楕円曲線であることを特徴とする請求項2に記載のデジタル署名システム。
【請求項4】
各送信装置は、秘密鍵をxi(iは各送信装置を示す正整数)とし、位数rで安全性を確保するために十分な計算量を要する巡回群をG1とし、巡回群G1の生成元をgとし、送信すべきメッセージをmiとした場合に、公開情報としてG1上の値xi・gを生成して公開するとともに、メッセージmiにハッシュ関数を適用して位数rで安全性を確保するために十分な計算量を要する巡回群G2のハッシュ値hiを算出し、算出したハッシュ値hiを秘密鍵xiによりG2上で変換した個別署名σi(=xi・hi)を生成することを特徴とする請求項に記載のデジタル署名システム。
【請求項5】
前記集約処理装置は、受信した各個別署名σiを巡回群G2上で加算した集約署名Tを生成することを特徴とする請求項に記載のデジタル署名システム。
【請求項6】
前記受信装置は、受信した各メッセージmiにハッシュ関数を適用して巡回群G2に属するハッシュ値hiを算出し、さらにG1、G2上のペアリングe(xi・g,hi)を各受信装置iに関して全て乗算した乗算値及びペアリングe(g,T)の値を算出し、該乗算値とペアリングe(g,T)の値とが一致した場合に、前記集約署名が正当であると判定することを特徴とする請求項に記載のデジタル署名システム。
【請求項7】
前記受信装置は、不正があった個別署名の検証処理と不正があった個別署名を除いた集約署名の検証処理を行った後、不正があった個別署名が正当であると判定された場合、次回以降、不正があった個別署名を含めた集約署名に復帰させる指示を前記集約処理装置に送信することを特徴とする請求項に記載のデジタル署名システム。
【請求項8】
前記受信装置は、前記集約署名が不正であると判定された場合、不正があった個別署名に関する情報をログ情報として記録することを特徴とする請求項1~のいずれか一つに記載のデジタル署名システム。
【請求項9】
前記受信装置は、前記集約署名が不正であると判定された場合、不正があった個別署名に関する情報を報知することを特徴とする請求項1~のいずれか一つに記載のデジタル署名システム。
【請求項10】
前記集約処理装置は、前記受信装置内に設けられることを特徴とする請求項1~のいずれか一つに記載のデジタル署名システム。
【請求項11】
複数の送信装置からそれぞれメッセージ及び各メッセージの個別署名を受け付け、受け付けた複数の個別署名に基づいて集約署名を生成し、生成した集約署名と複数の送信装置からそれぞれ受け付けた各メッセージとを受信装置に対して送信するデジタル署名方法であって、
前記受信装置は、前記集約署名が不正であるか否かを判定し、前記集約署名が不正であると判定された場合、前記集約署名に対して所定のグループテストを行い不正な個別署名を特定し、特定した不正の個別署名を送った送信装置からの個別署名が所定不正回数以上、不正であると判定された場合、次回以降、不正があった個別署名を集約署名から分離して集約署名を行う指示を集約処理装置に送信し、
前記集約処理装置は、不正があった個別署名と該個別署名に対応するメッセージとの対と、不正があった個別署名を除いた集約署名と該集約署名に対応するメッセージ群とを前記受信装置に送信し、
前記受信装置は、前記個別署名と前記集約署名とに対する検証処理を行う
とを特徴とするデジタル署名方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、集約署名が不正であった場合に、不正な個別署名を迅速に特定することができるデジタル署名システム及びデジタル署名方法に関する。
【背景技術】
【0002】
従来、複数の個別のデジタル署名を一つの署名に集約した集約署名を送信し、個別のデジタル署名の一つに不正なものが含まれていたならば、集約署名が不正であると検出する集約署名技術が知られている(非特許文献1参照)。
【先行技術文献】
【非特許文献】
【0003】
【文献】Boneh D,Gentry G,Lynn B and Shachan H,“Aggregate and Verifiably Encrypted Signatures from Bilinear Maps,”EUROCRYPT 2003,LNCS 2656,pp.416-432,2003
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記の集約署名技術では、集約署名が不正であることを検出できるものの、集約署名に含まれた、どの個別署名が不正であるのかを特定することができない。このため、集約署名が不正であると検出された場合に、再度、各メッセージと各個別署名との対を受信側に送信し、受信側で各個別署名のすべての正当性を再検証する必要があり、集約署名を行ったのにもかかわらず、署名に対する検証処理の遅延が発生するという問題があった。
【0005】
本発明は、上記従来技術の課題を解決するためになされたものであって、集約署名が不正であった場合に、不正な個別署名を迅速に特定することができるデジタル署名システム及びデジタル署名方法を提供することを目的とする。
【課題を解決するための手段】
【0006】
上述した課題を解決し、目的を達成するため、本発明は、複数の送信装置からそれぞれメッセージ及び各メッセージの個別署名を受け付け、受け付けた複数の個別署名に基づいて集約署名を生成し、生成した集約署名と複数の送信装置からそれぞれ受け付けた各メッセージとを受信装置に対して送信する集約処理装置を備えたデジタル署名システムであって、前記受信装置は、前記集約署名が不正であるか否かを判定し、前記集約署名が不正であると判定された場合、前記集約署名に対して適応型のグループテストを行い不正な個別署名を特定し、特定した不正の個別署名を送った送信装置からの個別署名が所定不正回数以上、不正であると判定された場合、次回以降、不正があった個別署名を集約署名から分離して集約署名を行う指示を前記集約処理装置に送信し、前記集約処理装置は、不正があった個別署名と該個別署名に対応するメッセージとの対と、不正があった個別署名を除いた集約署名と該集約署名に対応するメッセージ群とを前記受信装置に送信し、前記受信装置は、前記個別署名と前記集約署名とに対する検証処理を行うことを特徴とする。
【0007】
また、本発明は、上記発明において、前記個別署名は、安全性を確保するために十分な計算量を要する巡回群を用いて生成され、前記集約署名は、個別署名と同じ巡回群上で複数の個別署名の加算演算により生成されることを特徴とする。
【0008】
また、本発明は、上記発明において、前記巡回群は、有限体上の楕円曲線であることを特徴とする。
【0011】
また、本発明は、上記発明において、各送信装置は、秘密鍵をxi(iは各送信装置を示す正整数)とし、位数rで安全性を確保するために十分な計算量を要する巡回群をG1とし、巡回群G1の生成元をgとし、送信すべきメッセージをmiとした場合に、公開情報としてG1上の値xi・gを生成して公開するとともに、メッセージmiにハッシュ関数を適用して位数rで安全性を確保するために十分な計算量を要する巡回群G2のハッシュ値hiを算出し、算出したハッシュ値hiを秘密鍵xiによりG2上で変換した個別署名σi(=xi・hi)を生成することを特徴とする。
【0012】
また、本発明は、上記発明において、前記集約処理装置は、受信した各個別署名σ i を巡回群G2上で加算した集約署名Tを生成することを特徴とする。
【0013】
また、本発明は、上記発明において、前記受信装置は、受信した各メッセージmiにハッシュ関数を適用して巡回群G2に属するハッシュ値hiを算出し、さらにG1、G2上のペアリングe(xi・g,hi)を各受信装置iに関して全て乗算した乗算値及びペアリングe(g,T)の値を算出し、該乗算値とペアリングe(g,T)の値とが一致した場合に、前記集約署名が正当であると判定することを特徴とする。
【0015】
また、本発明は、上記発明において、前記受信装置は、不正があった個別署名の検証処理と不正があった個別署名を除いた集約署名の検証処理を行った後、不正があった個別署名が正当であると判定された場合、次回以降、不正があった個別署名を含めた集約署名に復帰させる指示を前記集約処理装置に送信することを特徴とする。
【0016】
また、本発明は、上記発明において、前記受信装置は、前記集約署名が不正であると判定された場合、不正があった個別署名に関する情報をログ情報として記録することを特徴とする。
【0017】
また、本発明は、上記発明において、前記受信装置は、前記集約署名が不正であると判定された場合、不正があった個別署名に関する情報を報知することを特徴とする。
【0018】
また、本発明は、上記発明において、前記集約処理装置は、前記受信装置内に設けられることを特徴とする。
【0020】
また、本発明は、複数の送信装置からそれぞれメッセージ及び各メッセージの個別署名を受け付け、受け付けた複数の個別署名に基づいて集約署名を生成し、生成した集約署名と複数の送信装置からそれぞれ受け付けた各メッセージとを受信装置に対して送信するデジタル署名方法であって、前記受信装置は、前記集約署名が不正であるか否かを判定し、前記集約署名が不正であると判定された場合、前記集約署名に対して適応型のグループテストを行い不正な個別署名を特定し、特定した不正の個別署名を送った送信装置からの個別署名が所定不正回数以上、不正であると判定された場合、次回以降、不正があった個別署名を集約署名から分離して集約署名を行う指示を集約処理装置に送信し、前記集約処理装置は、不正があった個別署名と該個別署名に対応するメッセージとの対と、不正があった個別署名を除いた集約署名と該集約署名に対応するメッセージ群とを前記受信装置に送信し、前記受信装置は、前記個別署名と前記集約署名とに対する検証処理を行うことを特徴とする。
【発明の効果】
【0021】
本発明によれば、集約署名が不正であった場合でも、不正のあった個別署名を迅速に特定することができる。
【図面の簡単な説明】
【0022】
図1図1は、実施例に係るデジタル署名システムのシステム構成を示す図である。
図2図2は、2分木によるグループテスト処理を行った場合における不正の個別署名を特定する処理の一例を示す説明図である。
図3図3は、楕円曲線をy2=x3+ax+bとする連続体上で表現した図である。
図4図4は、図1に示した送信装置の構成を示す機能ブロック図である
図5図5は、図4に示した送信装置の個別署名生成処理手順の一例を示すフローチャートである。
図6図6は、図1に示した集約処理装置の構成を示す機能ブロック図である。
図7図7は、図6に示した集約処理装置の集約署名生成処理手順の一例を示すフローチャートである。
図8図8は、図1に示した受信装置の構成を示す機能ブロック図である。
図9図9は、図8に示した受信装置の検証処理手順の一例を示すフローチャートである。
図10図10は、変形例1の受信装置による検証処理手順の一例を示すフローチャートである。
図11図11は、非適応型のグループテスト処理に用いる集約署名グループと個別署名との関係を検証マトリクスで示した図である。
図12図12は、図11で示した検証マトリクスによる非適応型のグループテスト処理の一例を示す説明図である。
【発明を実施するための形態】
【0023】
以下に、添付図面を参照して、本発明に係るデジタル署名システム及びデジタル署名方法の実施例を詳細に説明する。
【実施例
【0024】
<デジタル署名システムのシステム構成>
まず、本実施例に係るデジタル署名システム1の構成について説明する。図1は、本実施例に係るデジタル署名システム1のシステム構成を示す図である。図1に示すように、デジタル署名システム1は、複数の送信装置11~18からなる送信装置群10が集約処理装置20を介して受信装置30に接続される。複数の送信装置11~18と集約処理装置20との間は、ネットワークNを介して接続される。また、集約処理装置20と受信装置30との間は、ネットワークNを介して接続される。なお、受信装置30は、クラウドCD上の装置とすることもできる。
【0025】
各送信装置11~18は、各送信装置11~18がそれぞれ生成する、あるいは取得した個別のメッセージm1~m8に対する個別署名σ1~σ8を生成する個別署名生成処理を行う。そして、各送信装置11~18は、メッセージm1~m8と個別署名σ1~σ8との対をそれぞれ集約処理装置20に送信する。メッセージm1~m8の内容は任意であるが、本実施例では、例えば、各種のセンサー出力情報であり、具体的には、監視カメラが撮像した監視画像などである。メッセージm1~m8には、センサー出力に、機種、場所、時間等の属性情報が含まれる。
【0026】
集約処理装置20は、複数の送信装置11~18から送られた個別署名σ1~σ8を加算した集約署名T(=σ1+σ2+…+σ8)を算出する集約署名処理を行う。そして、集約処理装置20は、メッセージm1~m8と生成した集約署名Tとを受信装置30に送信する。
【0027】
受信装置30は、集約署名Tが不正であるか否かを判定する検証処理を行う。受信装置30は、集約署名Tが不正であると判定された場合、不正な個別署名を特定するため、集約署名に対する所定のグループテスト処理を行う。所定のグループテスト処理は、適応型のグループテスト処理である。
【0028】
適応型のグループテスト処理は、最初の集約署名に含まれる個別署名群を、複数の個別署名群に分割した集約署名群を生成し、この集約署名群のうち、不正である判定された集約署名に含まれる個別署名群をさらに分割する処理を段階的に繰り返し行うことによって不正であると判定された個別署名を絞り込んで特定するものである。この不正のあった集約署名に対する分割指示は、集約処理装置20と受信装置30との間のフィードバックチャネルFCを介して、受信装置30から集約処理装置20に通知される。フィードバックチャネルFCは、集約処理装置20と受信装置30との間の認証チャネルであることが好ましいが、認証チャネルでない場合、この分割指示のメッセージは、別途のデジタル署名処理を行えばよい。
【0029】
この分割指示の内容は、最初の集約署名及びグループテスト処理中の集約署名に不正があったと判定される度に集約処理装置20に指示してもよいが、予め分割内容を、集約処理装置20と受信装置30との間で取り決めておいてもよい。例えば、図2に示すように、2分木処理を行うように取り決めておいてもよい。
【0030】
図2は、2分木によるグループテスト処理を行った場合における不正の個別署名を特定する処理の一例を示す説明図である。図2に示すように、全ての個別署名σ1~σ8を含んだ最初に受け取る集約署名Tをグループ「1」とし、このグループ「1」には不正な個別署名σ2が含んでいる場合、受信装置30は、グループ「1」に対する集約署名を不正と判定する。
【0031】
その後、集約処理装置20は、受信装置30からの指示を受けて、グループ「1」を、個別署名σ1~σ4を含むグループ「2-1」と個別署名σ5~σ8を含むグループ「2-2」とに2分割し、それぞれ集約署名を生成して受信装置30に送信する。受信装置30は、不正な個別署名σ2を含むグループ「2-1」の集約署名を不正として判定し、グループ「2-2」の集約署名を正当として判定する。
【0032】
さらに次の段階では、集約処理装置20は、受信装置30からの指示を受けて、不正と判定されたグループ「2-1」を、個別署名σ1,σ2を含むグループ「3-1」と個別署名σ3,σ4を含むグループ「3-2」とに2分割し、それぞれ集約署名を生成して受信装置30に送信する。受信装置30は、不正な個別署名σ2を含むグループ「3-1」の集約署名を不正として判定し、グループ「3-2」の集約署名を正当として判定する。
【0033】
さらに次の段階では、集約処理装置20は、受信装置30からの指示を受けて、不正と判定されたグループ「3-1」を、個別署名σ1を含むグループ「4-1」と個別署名σ2を含むグループ「4-2」とに2分割し、それぞれ集約署名を生成して受信装置30に送信する。受信装置30は、不正な個別署名σ2を含むグループ「4-2」の集約署名を不正として判定し、グループ「4-1」の集約署名を正当として判定する。これにより、不正な個別署名は個別署名σ2であると特定される。その結果、不正なメッセージは、送信装置12から送られたメッセージm2であると特定され、メッセージm2は破棄されるとともにログ情報に記憶され、その旨の報知処理がなされる。
【0034】
<有限体上の楕円曲線>
ところで、本実施例の個別署名や集約署名には、有限体上の楕円曲線が用いられる。有限体上の楕円曲線は、y2=x3+ax+bを満たす有限体Fqの元の組(x,y)として表される点の集合に無限遠点∞を追加した集合E(Fq)であり、次のように定義される。
E(Fq)={(x,y)∈Fq2:y2=x3+ax+b}∪{∞}
ただし、この楕円曲線は、非特異であり、どの点でも必ず接線が1本だけ引ける。この楕円曲線上では加法演算が可能になる。
【0035】
図3は、楕円曲線をy2=x3+ax+bとする連続体上で表現した図である。図3に示すように、点Pと点Qとの加算点P+Qは、点Pと点Qとを通る直線L1がy2=x3+ax+bと交わる第3の点のx軸に関する線対称点となる。P=Qのとき、点Pにおける接線L2が交わる第3の点のx軸に関する線対称点が加算点2Pとなる。さらに、点Pと点2Pとの加算点3Pも容易に求められる。すなわち、ある点Pから、P,2P,3P,…とする点を生成することができ、この点Pを生成元という。これらの点の集合は、再び元の点Pに戻り、巡回群となる。
【0036】
加法演算は、代数的に示せば、楕円曲線上の2点P=(x1,y1),Q=(x2,y2)に対して、その和P+Q=(x3,y3)を、
3=λ2-x1-x2
3=λ(x1-x2)-y1
として与えられる。ここで、λは、直線の傾きである
傾きλは、
P≠Qのとき、λ=(y2-y1)/(x2-x1
P=Qのとき、λ=(3x1 2+a)/(2y1
で与えられる。
【0037】
<ペアリング演算>
ペアリングeは、2入力に対し1出力の関数であって、各入力に対して線形性が成り立つ双線形関数である。具体的には、入力が楕円曲線上の2点で、出力が有限体の元である。ペアリング演算に用いる関数は、まず、上記の集合E(Fq)に対して、有限体Fq上の楕円曲線の中で位数r(素数)をもつ加法の巡回群をG1として定義する。
1:E(Fq)[r]
さらに、Fqの2次拡大体(Fq2)の中で位数r(素数)をもつ位数rの巡回群(剰余群)G2を次のように定義する。なお、k次拡大体(Fqk)であってもよい。
2:E(Fq2)/rE(Fq2
さらに、Fq2の中の乗法部分群GT(位数r)を次のように定義する。
T:{x∈Fq2|xr=1}
ペアリングはこの乗法部分群GT上で次のような値となる。
【0038】
すなわち、次のように、G1の値P,G2の値Qが入力されると、GT上の有理関数fpの値として出力される。
e(P,Q)=fp(Q)^((q2-1)/r)
ここで、ペアリングは、非縮退性、双線形性、計算可能性を有する。
(1)非縮退性
任意のP(またはQ)に対してe(P,Q)=1ならばQ=∞(またはP=∞)
(2)双線形性
e(P1+P2,Q)=e(P1,Q)e(P2,Q)
e(P,Q1+Q2)=e(P,Q1)e(P,Q2
したがって、
e(aP,bQ)=e(P,Q)ab=e(bP,aQ)
となる。
(3)計算可能性
多項式時間で計算可能である。
【0039】
ペアリングには、各種のペアリング、例えばTateペアリングやWeilペアリングやAteペアリングなどがあるが、本実施例では、Tateペアリングを用いるため、巡回群G1とG2の値から乗法部分群GT上の値を生成している。なお、Tateペアリングは、例えばMillerアルゴリズムを用いてペアリング演算を高速に行うことができる。
【0040】
<送信装置の構成>
図4は、図1に示した送信装置11の構成を示す機能ブロック図である。なお、他の送信装置12~18は、送信装置11と同一の構成である。図4に示すように、送信装置11は、センサー部41、表示操作部42、通信部43、記憶部44、及び制御部45を有する。
【0041】
センサー部41は、画像情報などのメッセージm1を取得するデバイスであり、例えば監視カメラである。センサー部41は、メッセージm1を取得できればよく、例えば、温度センサーなどのデバイスであってもよい。なお、センサー部41は、送信装置11の外部に配置されていてもよい。
【0042】
表示操作部42は、タッチパネルディスプレイ等であり、操作入力を受け付けるとともに、各種情報を表示する。通信部43は、集約処理装置20と通信するためのインタフェース部である。なお、具体的な通信の手段については、周知の有線通信又は無線通信を用いることができる。
【0043】
記憶部44は、ハードディスク装置や不揮発性メモリ等からなる記憶デバイスであり、巡回群G1、巡回群G2、公開情報g,x1・g、メッセージm1、秘密鍵x1、ハッシュ値h1、個別署名σ1等を記憶する。
【0044】
制御部45は、送信装置11の全体を制御する制御部であり、メッセージ生成部45a、秘密鍵生成部45b、公開情報生成部45c、ハッシュ値生成部45d、個別署名生成部45e、及び送信処理部45fを有する。実際には、これらの機能部に対応するプログラムを図示しないROMや不揮発性メモリに記憶しておき、これらのプログラムをCPU(Central Processing Unit)にロードして実行することにより、メッセージ生成部45a、秘密鍵生成部45b、公開情報生成部45c、ハッシュ値生成部45d、個別署名生成部45e、及び送信処理部45fにそれぞれ対応するプロセスを実行させることになる。
【0045】
メッセージ生成部45aは、センサー部41が取得した情報に、センサー部41を含む装置名、場所、時間などの属性情報を付加したメッセージm1を生成する。
【0046】
秘密鍵生成部45bは、乱数発生部が生成した乱数の1つを取得し、秘密鍵x1として生成する。公開情報生成部45cは、秘密鍵x1と巡回群G1の生成元gとの演算値x1・gを公開情報x1・gとして生成する。公開情報x1・gは、巡回群G1に属する。生成元gと公開情報x1・gは、公開情報として公開される。なお、公開情報x1・gは、送信装置11に固有の情報である。したがって、例えば送信装置12では、公開情報x2・gが公開される。公開情報x1・gは、図示しない認証サーバ上に公開してもよいし、公開情報x2・gを利用する装置に直接、送信してもよい。
【0047】
ハッシュ値生成部45dは、所定のハッシュ関数Hを用いて、メッセージm1のハッシュ値h1を生成する。ここにHは、メッセージを一方向的に短いビット列に変換する通常の暗号学的ハッシュ関数と、ビット列を巡回群G2の元に変換する関数の合成関数として実現される。よって、ハッシュ値h1は、巡回群G2に属する。
【0048】
個別署名生成部45eは、秘密鍵x1によりハッシュ値h1を変換した演算値x1・h1を個別署名σ1として生成する。個別署名σ1は、巡回群G2に属する。
【0049】
送信処理部45fは、生成された個別署名σ1とメッセージm1とを対として集約処理装置20に送信する処理を行う。
【0050】
<送信装置の処理>
次に、図4に示した送信装置11の個別署名生成処理手順の一例について説明する。図5は、図4に示した送信装置11の個別署名生成処理手順の一例を示すフローチャートである。まず、秘密鍵生成部45bは、乱数を用いて秘密鍵x1を生成する(ステップS101)。その後、公開情報生成部45cは、秘密鍵x1を用いて、送信装置11の公開情報x1・gを生成するともに公開情報x1・gを公開する(ステップS102)。
【0051】
その後、ハッシュ値生成部45dは、メッセージm1のハッシュ値h1を算出する(ステップS103)。その後、個別署名生成部45eは、秘密鍵x1によりハッシュ値h1を変換した値x1・h1を算出し、これを個別署名σ1として生成する(ステップS104)。
【0052】
その後、送信処理部45fは、生成されたメッセージm1と個別署名σ1とを対として集約処理装置20に送信し(ステップS105)、本処理を終了する。
【0053】
<集約処理装置の構成>
図6は、図1に示した集約処理装置20の構成を示す機能ブロック図である。図6に示すように、集約処理装置20は、表示操作部51、通信部52、記憶部53、及び制御部54を有する。
【0054】
表示操作部51は、タッチパネルディスプレイ等であり、操作入力を受け付けるとともに、各種情報を表示する。通信部52は、送信装置11~18及び受信装置30と通信するためのインタフェース部である。なお、具体的な通信の手段については、周知の有線通信又は無線通信を用いることができる。
【0055】
記憶部53は、ハードディスク装置や不揮発性メモリ等からなる記憶デバイスであり、巡回群G2、メッセージm1~m8、個別署名σ1~σ8、集約署名T等を記憶する。
【0056】
制御部54は、集約処理装置20の全体を制御する制御部であり、集約署名生成部54a、送信処理部54b、及びグループテスト処理対応部54cを有する。実際には、これらの機能部に対応するプログラムを図示しないROMや不揮発性メモリに記憶しておき、これらのプログラムをCPU(Central Processing Unit)にロードして実行することにより、集約署名生成部54a、送信処理部54b、及びグループテスト処理対応部54cにそれぞれ対応するプロセスを実行させることになる。
【0057】
集約署名生成部54aは、受信した個別署名σ1~σ8を加算した1つの集約署名Tを生成する。集約署名Tは、巡回群G2に属する。
【0058】
送信処理部54bは、生成された集約署名Tと、受信したメッセージm1~m8とを受信装置30に送信する処理を行う。
【0059】
グループテスト処理対応部54cは、受信装置30からグループテスト処理の指示を受けて、前回生成した集約署名内の個別署名群を分割した複数のグループの個別署名に対する集約署名の生成を集約署名生成部54aに指示し、生成された複数の集約署名の送信処理を送信処理部54bに指示する。
【0060】
<集約処理装置の処理>
次に、図6に示した集約処理装置20の集約署名生成処理手順の一例について説明する。図7は、図6に示した集約処理装置20の集約署名生成処理手順の一例を示すフローチャートである。まず、集約処理装置20は、各送信装置11~18から個別署名σ1~σ8及びメッセージm1~m8を受信する(ステップS201)。
【0061】
その後、集約署名生成部54aは、受信した個別署名σ1~σ8を加算した1つの集約署名Tを生成する(ステップS202)。この集約署名Tは、巡回群G2に属する。その後、送信処理部54bは、生成した集約署名T、及び受信したメッセージm1~m8を受信装置30に送信する(ステップS203)。
【0062】
その後、グループテスト処理対応部54cは、受信装置30からグループテスト処理の指示があったか否か判定する(ステップS204)。グループテスト処理の指示があった場合(ステップS204;Yes)には、前回生成した集約署名内の個別署名群を分割した複数のグループの個別署名に対する集約署名の生成を集約署名生成部54aに指示して複数の集約署名を生成し、生成された複数の集約署名の送信処理を送信処理部54bに行わせる処理を繰り返し(ステップS205)、その後、本処理を終了する。一方、グループテスト処理の指示がない場合(ステップS204;No)には、そのまま本処理を終了する。
【0063】
<受信装置の構成>
図8は、図1に示した受信装置30の構成を示す機能ブロック図である。図8に示すように、受信装置30は、表示操作部61、通信部62、記憶部63、及び制御部64を有する。
【0064】
表示操作部61は、タッチパネルディスプレイ等であり、操作入力を受け付けるとともに、各種情報を表示する。通信部62は、集約処理装置20と通信するためのインタフェース部である。なお、具体的な通信の手段については、周知の有線通信又は無線通信を用いることができる。
【0065】
記憶部63は、ハードディスク装置や不揮発性メモリ等からなる記憶デバイスであり、巡回群G1、巡回群G2、乗法部分群GT、公開情報g,x1・g~x8・g、メッセージm1~m8、ハッシュ値h1~h8、集約署名T、ログ情報LD等を記憶する。
【0066】
制御部64は、受信装置30の全体を制御する制御部であり、ハッシュ値生成部64a、集約署名検証部64b、グループテスト処理部64c、ログ情報生成部64d、及び報知処理部64eを有する。実際には、これらの機能部に対応するプログラムを図示しないROMや不揮発性メモリに記憶しておき、これらのプログラムをCPU(Central Processing Unit)にロードして実行することにより、ハッシュ値生成部64a、集約署名検証部64b、グループテスト処理部64c、ログ情報生成部64d、及び報知処理部64eにそれぞれ対応するプロセスを実行させることになる。
【0067】
ハッシュ値生成部64aは、所定のハッシュ関数Hを用いて、メッセージm1~m8に対するハッシュ値h1~h8をそれぞれ生成する。ハッシュ値h1~h8は、巡回群G2に属する。
【0068】
集約署名検証部64bは、公開されている生成元gと集約署名Tとのペアリングe(g,T)を演算し、この演算値を演算値V1として算出する。また、集約署名検証部64bは、公開情報x1・g,…,x8・gとハッシュ値生成部64aが算出したハッシュ値h1,…,h8との各ペアリングe(x1・g,h1),e(x2・g,h2),…,e(x8・g,h8)を演算し、演算した値を乗算した演算値e(x1・g,h1)・e(x2・g,h2)・…・e(x8・g,h8)を演算値V2として算出する。そして、集約署名検証部64bは、演算値V1と演算値V2とが一致する場合には、集約署名Tには不正な個別署名がなく、集約署名が正当であると判定し、演算値V1と演算値V2とが一致しない場合には、集約署名Tには不正な個別署名があり、集約署名Tが不正であると判定する。
【0069】
グループテスト処理部64cは、集約署名検証部64bが、集約署名Tが不正であると判定した場合、適用型のグループテスト処理を行う。グループテスト処理部64cは、フィードバックチャネルFCを介して、不正であった前回の集約署名内の個別署名群を分割した複数のグループの個別署名に対する集約署名の生成を集約処理装置20に指示し、集約署名検証部64bに対して、集約処理装置20が生成された複数の集約署名に対する検証処理を繰り返し行わせて、不正な個別署名を特定する処理を行う。
【0070】
ログ情報生成部64dは、集約署名検証部64bが、集約署名Tが不正であると判定した場合、不正があった個別署名に関する情報をログ情報LDとして記憶部63に記録する
【0071】
報知処理部64eは、集約署名検証部64bが、集約署名Tが不正であると判定した場合、不正があった個別署名に関する情報を報知する。この報知は、表示操作部61に表示出力してもよいし、図示しないスピーカから警報を発してもよいし、図示しない他の装置にその旨を出力してもよい。
【0072】
<受信装置の処理>
次に、図8に示した受信装置30の検証処理手順の一例について説明する。図9は、図8に示した受信装置30の検証処理手順の一例を示すフローチャートである。まず、受信装置30は、集約処理装置20から集約署名T及びメッセージm1~m8を受信する(ステップS301)。
【0073】
その後、ハッシュ値生成部64aは、所定のハッシュ関数Hを用いて、メッセージm1~m8に対するハッシュ値h1~h8をそれぞれ算出する(ステップS302)。
【0074】
その後、集約署名検証部64bは、公開されている生成元gと集約署名Tとのペアリングe(g,T)を演算し、この演算値を演算値V1として算出する(ステップS303)。さらに、集約署名検証部64bは、公開情報x1・g,…,x8・gとハッシュ値生成部64aが算出したハッシュ値h1~h8との各ペアリングe(x1・g,h1),e(x2・g,h2),…,e(x8・g,h8)を演算し、演算した値を乗算した演算値e(x1・g,h1)・e(x2・g,h2)・…・e(x8・g,h8)を演算値V2として算出する(ステップS304)。
【0075】
その後、集約署名検証部64bは、演算値V1と演算値V2とが一致するか否かを判定する(ステップS305)。
【0076】
ここで、演算値V1は、ペアリングの双線形性により、次のようになる。
1=e(g,T)
=e(g,x1・h1+x2・h2+…+x8・h8
=e(g,h1x1・e(g,h2x2・…・e(g,h8x8
=e(x1・g,h1)・e(x2・g,h2)・…・e(x8.g,h8
=V2
であり、個別署名に不正がない場合、演算値V1と演算値V2とは一致する。
【0077】
集約署名検証部64bは、演算値V1と演算値V2とが一致する場合(ステップS305;Yes)には、集約署名Tが正当であるとして本処理を終了する。一方、集約署名検証部64bは、演算値V1と演算値V2とが一致しない場合(ステップS305;No)には、集約署名Tに不正な個別署名が含まれており、グループテスト処理部64cに対してグループテスト処理を行わせ、不正な個別署名の特定を行う(ステップS306)。
【0078】
その後、ログ情報生成部64dは、不正があった個別署名に関する情報をログ情報LDとして記憶部63に記録する(ステップS307)。さらに、報知処理部64eは、不正があった個別署名に関する情報を報知し(ステップS308)、本処理を終了する。
【0079】
上記の実施例では、8つの個別署名σ1~σ8を集約署名する一例について説明したが、集約署名する個別署名は、複数であればよい。
【0080】
本実施例では、集約署名Tが不正であると判定された場合、グループテスト処理を用いて不正であった個別署名を特定するようにしているので、個々の個別署名すべてについて検証するよりも、不正であった個別署名を迅速に特定することができる。この不正であった個別署名の迅速な特定は、不正なメッセージあるいは不正な送信装置を迅速に特定することできることになる。
【0081】
例えば、個別署名数をnとし、従来方式による不正な個別署名(個数d)の特定処理では、すべての個別署名に対してn回の検証処理を行う必要があった。これに対し、本実施例では、2分木による適応型のグループテスト処理を行った場合、検証処理の回数は、
2d・log(n/d)+2d-1
となる。d≦(n/8)の場合、
2d・log(n/d)+2d-1<n
となって検証回数が減少し、従来方式に比して不正な個別署名を迅速に特定できることになる。
【0082】
また、本実施例では、集約処理装置20が各送信装置11~18の秘密鍵x1~x8を持たなくても不正な個別署名を特定することができるため、セキュリティの向上を図ることができる。
【0083】
さらに、本実施例では、集約処理装置20から受信装置30に送信されるデータは、各個別署名に替えて、各個別署名を加算した1つの集約署名としているので、集約処理装置20と受信装置30との間の送信データ量を大幅に低減することができる。
【0084】
また、集約処理装置20の機能は、受信装置30内に設けてもよい。
【0085】
<変形例1>
本変形例では、同一の送信装置11~18から不正な個別署名が多く発生する場合には、この不正な個別署名から除外した集約署名を行うようにしている。
【0086】
図10は、変形例1の受信装置30による検証処理手順の一例を示すフローチャートである。図10に示すように、まず、受信装置30は、集約署名Tとともに個別署名を受信したか否かを判定する(ステップS401)。個別署名を受信していない場合(ステップS401;No)には、上記の実施例と同様に、集約署名検証部64bが集約署名Tの検証処理を行う(ステップS402)。この検証処理は、ステップS302~S304の処理に対応する。
【0087】
そして、グループテスト処理部64cは、集約署名Tが不正であるか否かを判定する(ステップS403)。グループテスト処理部64cは、集約署名Tが不正でない場合(ステップS403;No)には、本処理を終了する。一方、グループテスト処理部64cは、集約署名Tが不正である場合(ステップS403;Yes)には、実施例と同様に、グループテスト処理を行って(ステップS404)、不正の個別署名を特定する。
【0088】
その後、ログ情報生成部64dは、不正があった個別署名に関する情報をログ情報LDとして記憶部63に記録する(ステップS405)。さらに、報知処理部64eは、不正があった個別署名に関する情報を報知し、不正があったメッセージを廃棄する(ステップS406)。
【0089】
さらに、ログ情報LDを参照して、同一の不正な個別署名が所定不正回数以上であるか否かを判定する(ステップS407)。同一の不正な個別署名が所定不正回数以上でない場合(ステップS407;No)には、本処理を終了する。一方、同一の不正な個別署名が所定不正回数以上である場合(ステップS407;Yes)には、次回以降、不正な個別署名を分離した集約署名を行い、不正な個別署名はそのまま受信装置に送信するように指示し(ステップS408)、本処理を終了する。なお、ステップS407では、同一の不正な個別署名が所定不正回数以上であるか否かを判定しているが、この所定不正回数以上が所定期間、あるいは所定回数、連続して発生していることを条件として加えてもよい。
【0090】
一方、個別署名を受信している場合(ステップS401;Yes)、集約署名検証部64bは、分離された個別署名が除かれた集約署名及び個別署名に対する検証処理を行う(ステップS411)。個別署名を受信している場合とは、ステップS408で指示された個別署名がある場合である。集約署名検証部64bは、集約署名に対する検証処理と同様に、個別署名の検証処理を行う。
【0091】
その後、ステップS411が行った検証処理結果を参照して、集約署名に不正があるか否かを判定する(ステップS412)。集約署名に不正がある場合(ステップS412;Yes)には、ステップS404に移行し、集約署名に対するグループテスト処理を行う。一方、集約署名に不正がない場合(ステップS412;No)には、さらに個別署名に不正があるか否かを判定する(ステップS413)。個別署名に不正がある場合(ステップS413;Yes)には、ステップS405に移行し、不正があった個別署名に関する情報とログ情報LDとして記録する(ステップS405)。
【0092】
一方、個別署名に不正がない場合(ステップS413;No)には、次回以降、この個別署名を生成する送信装置からの個別署名を集約署名に含めて復帰させる指示を、集約処理装置20に送り(ステップS414)、本処理を終了する。なお、ステップS414による、個別署名の集約署名への復帰処理は、ステップS407の判定処理と同様に、不正であった個別署名が正当になった回数が所定正当回数以上となった場合に行うようにしてもよい。
【0093】
変形例1では、不正の個別署名を送った送信装置からの個別署名が所定不正回数以上、不正であると判定された場合、次回以降、不正があった個別署名を集約署名から分離して集約署名を行うようにしているので、不正の個別署名が特定された後における集約署名の不正発生を抑えることができる。
【0094】
<変形例2>
実施例では、所定のグループテスト処理として適応型のグループテスト処理を行って、不正の個別署名を追跡するようにしていたが、本変形例2では、所定のグループテスト処理として非適応型のグループテスト処理を行うようにしている。この非適応型のグループテスト処理を行っても、不正のあった個別署名を特定することができる。なお、変形例2であっても、集約処理装置20が送信する最初の集約署名は、すべての個別署名を含むものであり、この集約署名が不正であった場合に、非適応型のグループテスト処理を行う。
【0095】
非適応型のグループテスト処理は、重複を許した個別署名の集合(これをプールとよぶ)を複数個予め設定しておき、集約処理装置20は、設定したプールに対応する集約署名をプールの数分生成して受信装置30に送信し、受信装置30は、送られた複数の集約署名の結果をもとに、不正のあった個別署名を特定するようにしている。適応型のグループテスト処理が多段階で不正の個別署名を特定するのに対し、非適応型のグループテスト処理は、一度の検証処理で不正があった個別署名を特定する。
【0096】
例えば、図11に示すように、12個の個別署名σ1~σ12を検証する場合、個別署名の重複を許した9つの集約署名プールA1~A9を生成する。図11では、集約署名プールA1~A9は、それぞれ、(σ1,σ4,σ7,σ10)、(σ1,σ5,σ8,σ11)、(σ1,σ6,σ9,σ12)、(σ2,σ4,σ9,σ11)、(σ2,σ5,σ7,σ12)、(σ2,σ6,σ8,σ10)、(σ3,σ4,σ8,σ12)、(σ3,σ5,σ9,σ10)、(σ3,σ6,σ7,σ11)とする個別署名を有するプールである。集約署名プールA1~A9に対する個別署名σ1~σ12の対応関係は、検証マトリクスMTによって表すことができる。このマトリックスはdisjunct matrixあるいはcover-free family とよばれている。検証マトリクスMTで、「1」は集約署名プールに含まれる個別署名であることを表し、「0」は、集約署名プールに含まれない個別署名であることを表す。
【0097】
ここで、集約処理装置20は、集約署名プールA1~A9のそれぞれにおいて集約署名を生成し、受信装置30に送信する。受信装置30は、これら集約署名プールA1~A9の集約署名に対する検証処理を行う。
【0098】
図12に示すように、個別署名σ3,σ5が不正である場合、各集約署名プールA1~A9に対する検証結果は、集約署名が不正である場合に「1」とし、集約署名が正当である場合に「0」とすると、「0,1,0,0,1,0,1,1,1、」となる。なお、個別署名σ1~σ12に不正がない場合、検証結果は、すべて「0」になる。受信装置30は、正当と判定された集約署名プールA1,A3,A4,A6をピックアップし、各集約署名プールA1,A3,A4,A6の行を初期値「1」とし、各集約署名プールA1,A3,A4,A6に含まれる個別署名σ1~σ12を「0」に設定する。そして、受信装置30は、個別署名σ1~σ12の列の値が全て「1」となる個別署名を、不正があった個別署名として特定する。図12では、個別署名σ3,σ5の列の値が全て「1」であり、個別署名σ3,σ5が不正なものであることを特定できる。
【0099】
なお、変形例2は、非適応型のグループテスト処理を行っている。非適応型のグループテスト処理は、適応型のグループテスト処理に比して、一般に集約署名の演算量が多いが、予め集約署名を行う複数の集約署名プールに分けており、各集約署名の検証によって不正のあった複数の個別署名を同時に特定することができる。また、検証マトリックスは、disjunct matrix の代わりに検証の演算量は増えるがプールの数を減らせる separable matrix と呼ばれる配列を使うことも可能である。
【0100】
また、上記の実施例では、有限体上の楕円曲線を用いた場合を示したが、本発明はこれに限定されるものではなく、安全性を確保するために十分な計算量を要する他の巡回群を用いた場合に適用することもできる。
【0101】
また、上記の実施例で図示した各構成は機能概略的なものであり、必ずしも物理的に図示の構成をされていることを要しない。すなわち、各装置の分散・統合の形態は図示のものに限られず、その全部又は一部を各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。
【産業上の利用可能性】
【0102】
本発明のデジタル署名システム及びデジタル署名方法は、集約署名が不正であった場合でも、不正のあった個別署名を迅速に特定する場合に有用である。
【符号の説明】
【0103】
1 デジタル署名システム
10 送信装置群
11~18 送信装置
20 集約処理装置
30 受信装置
41 センサー部
42,51,61 表示操作部
43,52,62 通信部
44,53,63 記憶部
45,54,64 制御部
45a メッセージ生成部
45b 秘密鍵生成部
45c 公開情報生成部
45d,64a ハッシュ値生成部
45e 個別署名生成部
45f,54b 送信処理部
54a 集約署名生成部
54c グループテスト処理対応部
64b 集約署名検証部
64c グループテスト処理部
64d ログ情報生成部
64e 報知処理部
1~A9 集約署名グループ
CD クラウド
FC フィードバックチャネル
g 生成元
1・g 公開情報
1 巡回群
2 巡回群
T 乗法部分群
H ハッシュ関数
1~h8 ハッシュ値
LD ログ情報
1~m8 メッセージ
MT 検証マトリクス
N ネットワーク
T 集約署名
1,V2 演算値
1 秘密鍵
σ1~σ12 個別署名
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12