JP5597075B2 - Signature generation apparatus, verification apparatus, signature generation method, and signature generation program - Google Patents

Signature generation apparatus, verification apparatus, signature generation method, and signature generation program Download PDF

Info

Publication number
JP5597075B2
JP5597075B2 JP2010204937A JP2010204937A JP5597075B2 JP 5597075 B2 JP5597075 B2 JP 5597075B2 JP 2010204937 A JP2010204937 A JP 2010204937A JP 2010204937 A JP2010204937 A JP 2010204937A JP 5597075 B2 JP5597075 B2 JP 5597075B2
Authority
JP
Japan
Prior art keywords
software
signature
public
key
signature information
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.)
Active
Application number
JP2010204937A
Other languages
Japanese (ja)
Other versions
JP2012060621A (en
Inventor
勝樹 稲村
俊昭 田中
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
KDDI Corp
Original Assignee
KDDI Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by KDDI Corp filed Critical KDDI Corp
Priority to JP2010204937A priority Critical patent/JP5597075B2/en
Publication of JP2012060621A publication Critical patent/JP2012060621A/en
Application granted granted Critical
Publication of JP5597075B2 publication Critical patent/JP5597075B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、ソフトウェアの完全性を確認するための署名生成装置、検証装置、署名生成方法及び署名生成プログラムに関する。   The present invention relates to a signature generation apparatus, a verification apparatus, a signature generation method, and a signature generation program for confirming software integrity.

従来、コンピュータ向けのソフトウェアが数多く作成されている。これらの中には、機能が類似している物、あるいは発展的に進化した物がある。このようなソフトウェアを作成する上で、業務の効率化や開発時間の短縮を目的として、基本機能に特化した汎用的なソフトウェア等、既存のソフトウェア(以下、部品ソフトウェアと呼ぶ)を組み込んで、新たな機能を有するソフトウェア(以下、コンポーネントソフトウェアと呼ぶ)を作成する手法が採用される場合がある。また、この手法を用いるための開発環境も整備されてきている。   Conventionally, a lot of software for computers has been created. Some of these have similar functions or evolved. In creating such software, for the purpose of improving work efficiency and shortening development time, existing software such as general-purpose software specialized for basic functions (hereinafter referred to as component software) is incorporated. There is a case in which a method of creating software having a new function (hereinafter referred to as component software) is employed. A development environment for using this method has also been prepared.

ところで、ソフトウェアは、許可無く改竄されたり、ウィルスが混入されたりすることで、正常に利用できないことがある。この対策のため、電子署名を用いて、ソフトウェアが改竄されていないか、又はウィルス等の悪意のあるソフトウェアが混入されていないか否かを確認する方法が提案されている(例えば、特許文献1〜4参照)。   By the way, software may not be used normally because it is tampered without permission or a virus is mixed. As a countermeasure, there has been proposed a method of using an electronic signature to check whether software has been tampered with or malicious software such as a virus has been mixed (for example, Patent Document 1). To 4).

特開平3−286334号公報JP-A-3-286334 特開2003−202931号公報JP 2003-202931 A 特開2004−248045号公報JP 2004-2448045 A 特開2004−222330号公報JP 2004-222330 A

しかしながら、これらの方法は、一つのソフトウェアに対して、その完全性を保証するためのものである。したがって、前述のコンポーネントソフトウェアに対して、これらの方法を適用すると、ソフトウェアが組み込まれる度に、完全性の確認及び電子署名の生成のために多くの処理が発生していた。   However, these methods are intended to guarantee the integrity of a piece of software. Therefore, when these methods are applied to the above-described component software, a lot of processing has occurred to check the integrity and generate an electronic signature each time the software is installed.

本発明は、コンポーネントソフトウェアの完全性を効率的に確認できる署名生成装置、検証装置、署名生成方法及び署名生成プログラムを提供することを目的とする。   An object of the present invention is to provide a signature generation device, a verification device, a signature generation method, and a signature generation program that can efficiently check the integrity of component software.

本発明では、以下のような解決手段を提供する。   The present invention provides the following solutions.

(1)本発明に係る署名生成装置は、ソフトウェアの完全性を保証する公開署名情報を生成する署名生成装置であって、前記ソフトウェアに対応して、非公開の署名鍵、及び公開されている検証鍵を記憶する記憶部と、一方向性ハッシュ関数演算を行う第1ハッシュ演算部と、前記第1ハッシュ演算部により前記ソフトウェアから演算されたハッシュ値に対して、前記署名鍵を乗じて前記公開署名情報を生成する署名情報生成部と、前記ソフトウェア、前記検証鍵、及び前記公開署名情報を公開する公開部と、を備え、前記署名情報生成部は、前記ソフトウェアが当該ソフトウェアを構成する部品ソフトウェアを有する場合、前記部品ソフトウェアの公開署名情報と、前記部品ソフトウェアから演算されたハッシュ値に対して前記署名鍵を乗じた結果と、前記ソフトウェアから演算されたハッシュ値に対して前記署名鍵を乗じた結果とを総和して、前記公開署名情報を生成する。   (1) A signature generation apparatus according to the present invention is a signature generation apparatus that generates public signature information that guarantees the integrity of software, and is provided with a private signature key and a public key corresponding to the software. A storage unit that stores a verification key, a first hash calculation unit that performs a one-way hash function calculation, and a hash value calculated from the software by the first hash calculation unit multiplied by the signature key A signature information generating unit that generates public signature information; and a public unit that publishes the software, the verification key, and the public signature information. The signature information generating unit is a component of which the software constitutes the software When it has software, the signature key is multiplied by the public signature information of the component software and the hash value calculated from the component software. And results, by summing the result obtained by multiplying the signature key to the hash value calculated from the software, to generate the public signature information.

このような構成によれば、署名生成装置は、部品ソフトウェアから得られたハッシュ値と、コンポーネントソフトウェアの署名鍵との積により、木構造において連続する2つのノード間の関係を表し、さらに部品ソフトウェアの公開署名情報を用いて、コンポーネントソフトウェアの公開署名情報を生成する。署名生成装置は、この公開署名情報により、コンポーネントソフトウェアを構成する部品ソフトウェアの木構造を表現できるので、コンポーネントソフトウェアの完全性を効率的に確認できる。   According to such a configuration, the signature generation device represents the relationship between two nodes that are continuous in the tree structure by the product of the hash value obtained from the component software and the signature key of the component software. The public signature information of the component software is generated using the public signature information. Since the signature generation apparatus can represent the tree structure of the component software that constitutes the component software based on the public signature information, the integrity of the component software can be efficiently confirmed.

(2)また、上記署名生成装置では、前記署名鍵は、所定の自然数からなり、前記検証鍵は、GDH(GAP−Diffie−Hellman)グループの要素である楕円曲線上の点と前記署名鍵とに基づいて生成される、当該楕円曲線上の点からなる。   (2) In the signature generation device, the signature key is formed of a predetermined natural number, and the verification key includes a point on an elliptic curve that is an element of a GDH (GAP-Diffie-Hellman) group and the signature key. It consists of points on the elliptic curve generated based on

このような構成によれば、署名生成装置は、署名鍵を知らない第三者がGDHグループの要素である楕円曲線上の点から署名鍵を求めることを、計算量的に困難にすることができる。また、署名者の数(ノードの数)が増えても、生成される公開署名情報は楕円曲線上の点であるため、情報のサイズ(容量)は増大せず一定値以下に抑制され、署名生成装置は、効率的に署名情報を生成することができる。   According to such a configuration, the signature generation apparatus may make it difficult for a third party who does not know the signature key to obtain the signature key from a point on the elliptic curve that is an element of the GDH group. it can. Even if the number of signers (number of nodes) increases, the generated public signature information is a point on the elliptic curve, so the size (capacity) of the information does not increase and is suppressed to a certain value or less. The generation device can generate signature information efficiently.

(3)また、上記署名生成装置では、前記公開部は、前記ソフトウェアを最上位ノードとし、前記部品ソフトウェアを下位ノードとする木構造の構成を示すリストデータを、さらに公開する。   (3) Further, in the signature generation apparatus, the disclosure unit further discloses list data indicating a configuration of a tree structure having the software as a highest node and the component software as a lower node.

このような構成によれば、署名生成装置は、コンポーネントソフトウェアを最上位ノードとし、部品ソフトウェアを下位ノードとする木構造の構成を示すリストデータを、さらに公開する。したがって、コンポーネントソフトウェアの完全性を確認する際に、木構造を容易に把握できるので、検証の処理効率が向上する。   According to such a configuration, the signature generation apparatus further publishes list data indicating a configuration of a tree structure in which component software is the highest node and component software is a lower node. Therefore, when checking the integrity of the component software, the tree structure can be easily grasped, so that the verification processing efficiency is improved.

(4)また、上記署名生成装置では、前記公開部は、前記第1ハッシュ演算部により前記ソフトウェアから演算されたハッシュ値を、さらに公開する。   (4) In the signature generation device, the disclosure unit further discloses the hash value calculated from the software by the first hash calculation unit.

このような構成によれば、署名生成装置は、部品ソフトウェアに対する一方向性ハッシュ関数演算の処理負荷を低減することができる。   According to such a configuration, the signature generation apparatus can reduce the processing load of the one-way hash function calculation for the component software.

(5)本発明に係る検証装置は、上記署名生成装置により公開された前記公開署名情報を検証する検証装置であって、前記ソフトウェア又は当該ソフトウェアから演算されたハッシュ値、及び対応する検証鍵、並びに当該ソフトウェアを構成する全ての部品ソフトウェア又は当該部品ソフトウェアから演算されたハッシュ値、及び対応する検証鍵を収集する収集部と、前記収集部により収集されたソフトウェアのそれぞれに対して、一方向性ハッシュ関数演算を行う第2ハッシュ演算部と、前記収集部により収集された全てのソフトウェアに対応する検証鍵、及び当該全てのソフトウェアから演算されたハッシュ値に基づいて、前記公開署名情報の正当性を検証する検証部と、を備える。   (5) A verification device according to the present invention is a verification device for verifying the public signature information published by the signature generation device, wherein the software or a hash value calculated from the software, and a corresponding verification key, In addition, all the component software constituting the software or the hash value calculated from the component software and the corresponding verification key are collected, and the software collected by the collection unit is unidirectional. Validity of the public signature information based on a second hash calculation unit that performs a hash function calculation, verification keys corresponding to all software collected by the collection unit, and hash values calculated from all the software And a verification unit for verifying.

このような構成によれば、検証装置は、コンポーネントソフトウェア及び部品ソフトウェアの検証鍵とハッシュ値とに基づいて、コンポーネントソフトウェアに対する公開署名情報の正当性を検証する。よって、検証装置では、各部品ソフトウェアに対して生成される個々の署名情報等を検証することなく、検証対象であるコンポーネントソフトウェアに対して生成される公開署名情報を検証することにより、木構造における署名順序を証明することができる。すなわち、検証装置は、処理負荷を低減して検証処理を実行することができる。   According to such a configuration, the verification device verifies the validity of the public signature information for the component software based on the verification key and the hash value of the component software and component software. Therefore, the verification apparatus verifies the public signature information generated for the component software to be verified without verifying the individual signature information generated for each component software. The signature order can be verified. In other words, the verification apparatus can execute the verification process while reducing the processing load.

(6)本発明に係る検証装置は、上記署名生成装置により公開された前記公開署名情報を検証する検証装置であって、前記ソフトウェア及び当該ソフトウェアを構成する全ての部品ソフトウェアから演算されたハッシュ値、並びに対応する検証鍵を収集する収集部と、前記収集部により収集された全てのソフトウェアに対応する検証鍵、及び当該全てのソフトウェアから演算されたハッシュ値に基づいて、前記公開署名情報の正当性を検証する検証部と、を備える。   (6) The verification device according to the present invention is a verification device for verifying the public signature information published by the signature generation device, and a hash value calculated from the software and all component software constituting the software And a collection unit that collects corresponding verification keys, verification keys corresponding to all software collected by the collection unit, and hash values calculated from all the software, A verification unit for verifying the characteristics.

このような構成によれば、検証装置は、検証対象であるコンポーネントソフトウェア及び部品ソフトウェアに対して、一方向性ハッシュ関数演算の処理負荷を低減することができる。   According to such a configuration, the verification apparatus can reduce the processing load of the one-way hash function calculation on the component software and the component software that are the verification targets.

(7)本発明に係る署名生成方法は、ソフトウェアの完全性を保証する公開署名情報をコンピュータが生成する署名生成方法であって、前記ソフトウェアに対応して、非公開の署名鍵、及び公開されている検証鍵を記憶する記憶ステップと、一方向性ハッシュ関数演算を行うハッシュ演算ステップと、前記ハッシュ演算ステップにおいて前記ソフトウェアから演算されたハッシュ値に対して、前記署名鍵を乗じて前記公開署名情報を生成する署名情報生成ステップと、前記ソフトウェア、前記検証鍵、及び前記公開署名情報を公開する公開ステップと、を含み、前記署名情報生成ステップにおいて、前記ソフトウェアが当該ソフトウェアを構成する部品ソフトウェアを有する場合、前記部品ソフトウェアの公開署名情報と、前記部品ソフトウェアから演算されたハッシュ値に対して前記署名鍵を乗じた結果と、前記ソフトウェアから演算されたハッシュ値に対して前記署名鍵を乗じた結果とを総和して、前記公開署名情報を生成する。   (7) A signature generation method according to the present invention is a signature generation method in which a computer generates public signature information that guarantees the integrity of software. A storage step for storing the verification key, a hash calculation step for performing a one-way hash function calculation, and multiplying the hash value calculated from the software in the hash calculation step by the signature key A signature information generation step for generating information; and a disclosure step for releasing the software, the verification key, and the public signature information. In the signature information generation step, the software includes component software constituting the software. If so, the component software public signature information and the component software The public signature information is generated by summing a result obtained by multiplying the hash value calculated from a by the signature key and a result obtained by multiplying the hash value calculated from the software by the signature key. .

このような構成によれば、署名生成方法をコンピュータが実行することにより、(1)と同様の効果が期待できる。   According to such a configuration, the same effect as in (1) can be expected when the computer executes the signature generation method.

(8)本発明に係る署名生成プログラムは、ソフトウェアの完全性を保証する公開署名情報をコンピュータに生成させる署名生成プログラムであって、前記ソフトウェアに対応して、非公開の署名鍵、及び公開されている検証鍵を記憶する記憶ステップと、一方向性ハッシュ関数演算を行うハッシュ演算ステップと、前記ハッシュ演算ステップにおいて前記ソフトウェアから演算されたハッシュ値に対して、前記署名鍵を乗じて前記公開署名情報を生成する署名情報生成ステップと、前記ソフトウェア、前記検証鍵、及び前記公開署名情報を公開する公開ステップと、を実行させ、前記署名情報生成ステップにおいて、前記ソフトウェアが当該ソフトウェアを構成する部品ソフトウェアを有する場合、前記部品ソフトウェアの公開署名情報と、前記部品ソフトウェアから演算されたハッシュ値に対して前記署名鍵を乗じた結果と、前記ソフトウェアから演算されたハッシュ値に対して前記署名鍵を乗じた結果とを総和して、前記公開署名情報を生成させる。   (8) A signature generation program according to the present invention is a signature generation program that causes a computer to generate public signature information that guarantees the integrity of software. A storage step for storing the verification key, a hash calculation step for performing a one-way hash function calculation, and multiplying the hash value calculated from the software in the hash calculation step by the signature key A signature information generation step for generating information, and a disclosure step for publishing the software, the verification key, and the public signature information. In the signature information generation step, component software that constitutes the software The component software public signature information and The sum of the result of multiplying the hash value calculated from the component software by the signature key and the result of multiplying the hash value calculated from the software by the signature key to obtain the public signature information Generate.

このような構成によれば、署名生成プログラムをコンピュータに実行させることにより、(1)と同様の効果が期待できる。   According to such a configuration, the same effect as in (1) can be expected by causing the computer to execute the signature generation program.

本発明によれば、コンポーネントソフトウェアの完全性を効率的に確認できる。   According to the present invention, it is possible to efficiently confirm the integrity of component software.

第1実施形態に係る署名生成装置の構成を示すブロック図である。It is a block diagram which shows the structure of the signature production | generation apparatus concerning 1st Embodiment. 第1実施形態に係る検証装置の構成を示すブロック図である。It is a block diagram which shows the structure of the verification apparatus which concerns on 1st Embodiment. 第1実施形態に係る公開署名情報を公開する方法を示すフローチャートである。It is a flowchart which shows the method of publishing the public signature information which concerns on 1st Embodiment. 第1実施形態に係る公開署名情報の正当性を検証する方法を示すフローチャートである。It is a flowchart which shows the method to verify the correctness of the public signature information which concerns on 1st Embodiment. 第1実施形態に係る署名生成装置の動作についての説明に供する図である。It is a figure where it uses for description about operation | movement of the signature production | generation apparatus which concerns on 1st Embodiment. 第2実施形態に係る署名生成装置の構成を示すブロック図である。It is a block diagram which shows the structure of the signature production | generation apparatus concerning 2nd Embodiment. 第2実施形態に係る検証装置の構成を示すブロック図である。It is a block diagram which shows the structure of the verification apparatus which concerns on 2nd Embodiment.

<第1実施形態>
以下、本発明の実施形態の一例である第1実施形態について説明する。本実施形態に係る署名生成装置1は、ソフトウェアの完全性を保証するための公開署名情報を生成する。ここで、署名対象がコンポーネントソフトウェアである場合、このコンポーネントソフトウェアは、1又は複数の部品ソフトウェアから構成される。これらの部品ソフトウェアは、さらに下位の部品ソフトウェアから構成される場合もある。署名生成装置1は、このように、コンポーネントソフトウェアを最上位ノードとし、部品ソフトウェアを下位ノードとする木構造状に構成された各ノードにおける、ソフトウェアの完全性を保証するための公開署名情報を生成する。また、各ノードのソフトウェアに対して生成された公開署名情報は、検証装置2により正当性が検証され、ソフトウェアの完全性が確認される。
<First Embodiment>
Hereinafter, a first embodiment, which is an example of an embodiment of the present invention, will be described. The signature generation apparatus 1 according to the present embodiment generates public signature information for guaranteeing software integrity. Here, when the signature target is component software, this component software is composed of one or a plurality of component software. These component software may be composed of lower component software. In this way, the signature generation apparatus 1 generates public signature information for guaranteeing software integrity in each node configured in a tree structure with the component software as the highest node and the component software as the lower node. To do. Further, the validity of the public signature information generated for the software of each node is verified by the verification device 2 and the integrity of the software is confirmed.

なお、木構造とは、対称か非対称かを問わず、任意の構造を持つ木構造全てを指す。本発明は、この任意の構造を持つ木構造に対して適応可能である。   Note that the tree structure refers to all tree structures having an arbitrary structure, whether symmetrical or asymmetric. The present invention can be applied to a tree structure having this arbitrary structure.

ところで、各ノード(コンポーネントソフトウェア又は部品ソフトウェア)には、非公開の署名鍵と、公開されている検証鍵とが認証局(CA)によってそれぞれ割り当てられている。署名鍵は、所定の自然数(x)からなり、検証鍵は、GDH(GAP−Diffie−Hellman)グループ(G)の要素である楕円曲線上の点(g)と署名鍵(x)とに基づいて生成される楕円曲線上の点(v=xg)からなることが好ましい。このように構成されることにより、署名鍵(x)を知らない第三者が「v」や「g」の値から署名鍵(x)を求めることは計算量的に困難となる。   By the way, a private signature key and a public verification key are assigned to each node (component software or component software) by a certificate authority (CA). The signature key is composed of a predetermined natural number (x), and the verification key is based on the point (g) on the elliptic curve that is an element of the GDH (GAP-Diffie-Hellman) group (G) and the signature key (x). It is preferable to consist of points (v = xg) on the elliptic curve generated in the above. With this configuration, it is difficult for a third party who does not know the signature key (x) to obtain the signature key (x) from the values of “v” and “g”.

ここで、本実施形態で採用される具体的な署名方式について説明する。署名生成装置1では、ベースとなる署名方式としてGAP−Diffie−Hellman(GDH)署名を採用する。GDH署名とは、Decision−Diffie−Hellman(DDH)問題をペアリングと呼ばれるある種のブラックボックス関数e(P,Q)を用いることで、解くことが可能であることを利用した署名である。   Here, a specific signature scheme employed in the present embodiment will be described. The signature generation device 1 employs a GAP-Diffie-Hellman (GDH) signature as a base signature scheme. The GDH signature is a signature that utilizes the fact that the Decision-Diffie-Hellman (DDH) problem can be solved by using a certain black box function e (P, Q) called pairing.

次に、ペアリング演算を用いたGDH署名について説明する。楕円曲線上のDiffie−Hellman問題に関連して、GDHグループが定義されている。GDHグループについて簡単に説明する。Gをある楕円曲線上の点の集合とする。「g」を集合Gの要素としたとき、集合Gにおける楕円曲線上のDecisional Diffie−Hellman(DDH)問題とComputational Diffie−Hellman(CDH)問題が以下のように定義される。   Next, the GDH signature using the pairing operation will be described. A GDH group has been defined in connection with the Diffie-Hellman problem on an elliptic curve. The GDH group will be briefly described. Let G be a set of points on an elliptic curve. When “g” is an element of the set G, the Decision Diffie-Hellman (DDH) problem and the Computational Diffie-Hellman (CDH) problem on the elliptic curve in the set G are defined as follows.

DDH問題:あるa、b、cという自然数があり、g、ag、bg、cgが与えられた時、c=abかどうかを判定する問題。
CDH問題:あるa、b、cという自然数があり、g、ag、bgが与えられた時、abgを計算する問題。
DDH problem: A problem of determining whether c = ab when there are natural numbers a, b, and c and g, ag, bg, and cg are given.
CDH problem: A problem of calculating abg when there is a natural number of a, b, and c, and g, ag, and bg are given.

このとき、DDH問題は、計算量的に簡単であるが、CDH問題は、計算量的に難問である場合、この集合GをGDHグループと定義する。   At this time, the DDH problem is simple in terms of calculation amount, but if the CDH problem is difficult in terms of calculation amount, this set G is defined as a GDH group.

これに対し、ある楕円曲線上の点をP,Qとし、そのP,Qによっては次にあげる性質を持つことができるペアリングと呼ばれるブラックボックス関数e(P,Q)を定義できるものが存在する。
e(P,Q+Q)=e(P,Q)e(P,Q) ・・・(1)
e(P+P,Q)=e(P,Q)e(P,Q) ・・・(2)
e(aP,bQ)=e(bP,aQ)=e(abP,Q)=e(P,abQ)=e(P,Q)ab ・・・(3)
On the other hand, there are those that can define a black box function e (P, Q) called pairing that can have the following properties depending on P and Q as points on a certain elliptic curve. To do.
e (P, Q 1 + Q 2 ) = e (P, Q 1 ) e (P, Q 2 ) (1)
e (P 1 + P 2 , Q) = e (P 1 , Q) e (P 2 , Q) (2)
e (aP, bQ) = e (bP, aQ) = e (abP, Q) = e (P, abQ) = e (P, Q) ab (3)

よって、gがペアリング演算の可能な楕円曲線上の点である場合には、上記の性質から、(3)式にg、ag、bg、cgを入力すると、
e(ag,bg)=e(g,g)ab ・・・(4)
e(g,cg)=e(g,g) ・・・(5)
となり、両者の値が一致するかどうかにより、「ab=c」であるかどうかを判定でき、gはGDHグループGの要素となりうる。
Therefore, when g is a point on an elliptic curve that can be paired, if g, ag, bg, and cg are input to the equation (3) from the above property,
e (ag, bg) = e (g, g) ab (4)
e (g, cg) = e (g, g) c (5)
Thus, whether or not “ab = c” can be determined depending on whether or not both values match, and g can be an element of the GDH group G.

この性質を利用してGDH署名が構成される。集合Gは、GDHグループであり、gは集合Gの要素となる点とする。また、一方向性ハッシュ関数Hを、通常使用される任意のビット長のサイズの数値データが固定のビット長のサイズの数値データに写像変換される方式とは異なり、
H:{0,1}→G
のように任意のビット長のサイズの数値データを楕円曲線上の点として表現されるGDHグループGの要素に写像変換する方式であると定義する。
A GDH signature is constructed using this property. The set G is a GDH group, and g is a point that is an element of the set G. In addition, unlike the method in which the one-way hash function H is mapped and converted into numerical data having an arbitrary bit length size that is normally used, the numerical data having a fixed bit length size,
H: {0,1} * → G
It is defined that this is a method in which numerical data of an arbitrary bit length size is mapped and converted to elements of the GDH group G expressed as points on an elliptic curve.

このとき、GDH署名は以下のように定義される。
鍵生成:自然数xを選び、gからv=xgを計算する。xを署名鍵、楕円曲線上の点vを検証鍵とする。
署名:署名者は、メッセージ「m∈{0,1}」に対しh=H(m)を計算し、さらに自分の署名鍵を用いてσ=xhを計算する。σをmに対する署名として公開する。
検証:検証者は、メッセージmからh=H(m)を計算し、g、v、h、σを準備する。e(g,σ)とe(v,h)を計算し、両者の値が一致したら、署名σは、正しい署名と判定する。
At this time, the GDH signature is defined as follows.
Key generation: A natural number x is selected, and v = xg is calculated from g. Let x be the signature key and point v on the elliptic curve be the verification key.
Signature: The signer calculates h = H (m) for the message “mε {0,1} * ”, and further calculates σ = xh using his signature key. Publish σ as a signature for m.
Verification: The verifier calculates h = H (m) from the message m, and prepares g, v, h, and σ. e (g, σ) and e (v, h) are calculated, and if both values match, the signature σ is determined to be a correct signature.

このとき、hの値は集合Gの要素となるので、ある自然数yを用いてh=ygと表現できる。その結果、正しく署名が行われていれば(g,v,h,σ)=(g,xg,yg,xyg)となる。したがって、正当な署名であれば上記の検証でのペアリング演算は、e(g,σ)=e(g,xyg)=e(g,g)xy=e(xg,yg)=e(v,h)となり、値が一致することから、検証可能となる。なお、GDHグループの条件であるCDH問題の困難性から、署名鍵xを知らない第三者がg、v、hの値から署名σを導出することは不可能である。 At this time, since the value of h becomes an element of the set G, it can be expressed as h = yg using a certain natural number y. As a result, if the signature is correctly performed, (g, v, h, σ) = (g, xg, yg, xyg). Therefore, if the signature is valid, the pairing operation in the above verification is e (g, σ) = e (g, xyg) = e (g, g) xy = e (xg, yg) = e (v , H) and the values match, so that verification is possible. Note that due to the difficulty of the CDH problem that is a condition of the GDH group, it is impossible for a third party who does not know the signature key x to derive the signature σ from the values of g, v, and h.

図1は、本実施形態に係る署名生成装置1の構成を示すブロック図である。
署名生成装置1は、記憶部11と、受信部12と、一方向性ハッシュ関数演算部13と、署名情報生成部14と、公開部15と、を備える。
FIG. 1 is a block diagram showing the configuration of the signature generation apparatus 1 according to this embodiment.
The signature generation device 1 includes a storage unit 11, a reception unit 12, a one-way hash function calculation unit 13, a signature information generation unit 14, and a disclosure unit 15.

記憶部11は、自身のノード(署名者uup)が作成したソフトウェア(mup)に対応して割り当てられている署名鍵(xup)と検証鍵(vup=xupg)とを記憶する。 The storage unit 11 stores a signature key (x up ) and a verification key (v up = x up g) assigned to the software (m up ) created by its own node (signer u up ). To do.

受信部12は、署名対象である自身のソフトウェアが構成要素として部品ソフトウェアを有する場合、1又は複数の下位ノード(署名者ulow)が作成した部品ソフトウェア(mlow)と、これらの部品ソフトウェアに対して後述の公開部15により公開されている公開署名情報(σlow)と、を受信する。さらに、受信部12は、公開部15により同様に公開されている、部品ソフトウェアを最上位ノードとする木構造の構成を示すリストデータを受信する。 Receiver 12, if its software is signature subject has parts software as a component, one or a plurality of lower nodes and (signer u low) component software that created the (m low), these components Software On the other hand, the public signature information (σ low ) released by the later-described public unit 15 is received. Further, the receiving unit 12 receives the list data indicating the configuration of the tree structure having the component software as the highest node, which is similarly disclosed by the disclosure unit 15.

一方向性ハッシュ関数演算部13は、受信部12により受信された部品ソフトウェア(mlow)のそれぞれと、署名対象である自身のソフトウェア(mup)とに一方向性ハッシュ関数演算を行う。 The one-way hash function calculation unit 13 performs a one-way hash function calculation on each of the component software (m low ) received by the reception unit 12 and its own software (m up ) that is a signature target.

署名情報生成部14は、部品ソフトウェアの公開署名情報(σlow)と、部品ソフトウェア(mlow)それぞれから演算されたハッシュ値(hlow=H(mlow))に自身の署名鍵(xup)により演算(楕円曲線上の乗算)を行った結果(xuplow)と、自身のソフトウェア(mup)から演算されたハッシュ値(hup=H(mup))に自身の署名鍵(xup)により演算(楕円曲線上の乗算)を行った結果(xupup)と、を総和して、自身のソフトウェアに対する公開署名情報(σup=Σlow(σlow+xuplow)+xupup)を生成する(Σlowは、直下のノード全てについての総和を示す)。 The signature information generation unit 14 adds its signature key (x up ) to the public signature information (σ low ) of the component software and the hash value (h low = H (m low )) calculated from each of the component software (m low ). ) To calculate the result (multiply on the elliptic curve) (x up h low ) and the hash value (h up = H (m up )) calculated from its own software (m up ) (x Stay up-) by calculation (multiplication on the elliptic curve) the result of the (x Stay up-h Stay up-), and summing the public signature information for its own software (σ up = Σ low (σ low + x up h low ) + X up h up ) (Σ low indicates the sum of all the nodes immediately below).

なお、署名情報生成部14は、部品ソフトウェアがない場合、自身のソフトウェア(mup)から演算されたハッシュ値(hup)に自身の署名鍵(xup)により演算(楕円曲線上の乗算)を行った結果(xupup)のみを、自身のソフトウェアに対する公開署名情報(σup=xupup)とする。 Incidentally, the signature information generation section 14, if there is no component software, own software (m Stay up-) calculated from the hash value (h Stay up-) in its own signature key (x Stay up-) computed by (multiplication on the elliptic curve) Only the result of performing (x up h up ) is used as public signature information (σ up = x up h up ) for its own software.

公開部15は、自身のソフトウェア(mup)、検証鍵(vup)、及び署名情報生成部14により生成された公開署名情報(σup)を公開する。 The public unit 15 publishes its own software (m up ), verification key (v up ), and public signature information (σ up ) generated by the signature information generation unit 14.

このような構成によれば、署名生成装置1は、各ノードにおいて、部品ソフトウェアと部品ソフトウェアの公開署名情報とを用いて、コンポーネントソフトウェアの公開署名情報を生成する。この公開署名情報は、自身のノードに至るまでの木構造を表現し、かつ楕円曲線上の点のみで生成される。すなわち、署名者(部品ソフトウェアの数)が多くなっても、署名サイズは増大せず、一定値以下に抑制される。また、署名生成装置1は、自身のソフトウェアに対して生成した公開署名情報(σup)を、ソフトウェアの利用者(検証装置2)や、さらに上位のコンポーネントソフトウェアの作成者(署名生成装置1)へ提供できる。 According to such a configuration, the signature generation apparatus 1 generates component software public signature information using component software and component software public signature information at each node. This public signature information expresses a tree structure up to its own node and is generated only by points on the elliptic curve. That is, even if the number of signers (the number of component software) increases, the signature size does not increase and is suppressed to a certain value or less. Also, the signature generation apparatus 1 uses the public signature information (σ up ) generated for its own software as a software user (verification apparatus 2) or a higher-level component software creator (signature generation apparatus 1). Can be provided.

また、公開部15は、自身のソフトウェアを最上位ノードとし、部品ソフトウェアを下位ノードとする木構造の構成を示すリストデータ(L)を、さらに公開する。
このリストデータは、例えば、
L={(u,{up1,up2,・・・},ID(m)),
(up1,{},ID(mp1)),
(up2,{},ID(mp2)),・・・}
のように、構成される。ここで、署名者uは、コンポーネントソフトウェアmの公開署名情報を生成し、mを構成する部品ソフトウェア(mp1、mp2、・・・)は、それぞれ署名者(up1、up2、・・・)によって公開署名情報が生成されている。なお、ID(mα)は、ソフトウェアmαの識別子(ID)である。
Further, the disclosure unit 15 further discloses list data (L) indicating the structure of the tree structure having its own software as the highest node and component software as the lower node.
This list data is, for example,
L = {(u p, { u p1, u p2, ···}, ID (m p)),
(U p1 , {}, ID (m p1 )),
(U p2 , {}, ID (m p2 )), ...}
It is configured like this. Here, the signer u p generates the public signature information of the component software m p , and the component software (m p1 , m p2 ,...) Constituting the m p is the signer (u p1 , u p2). , ...), public signature information is generated. The ID (m α ) is an identifier (ID) of the software m α .

このような構成によれば、上位のノードにおいてコンポーネントソフトウェアの公開署名情報を生成する際の処理効率や、後述の検証装置2における検証の処理効率が向上する。   According to such a configuration, the processing efficiency when generating the public signature information of the component software in the upper node and the verification processing efficiency in the verification device 2 described later are improved.

次に、署名生成装置1により公開された公開署名情報(σ)を検証する検証装置2について説明する。なお、検証装置2は、署名生成装置1と統合されていてもよい。   Next, the verification device 2 that verifies the public signature information (σ) disclosed by the signature generation device 1 will be described. Note that the verification device 2 may be integrated with the signature generation device 1.

図2は、本実施形態に係る検証装置2の構成を示すブロック図である。
検証装置2は、収集部21と、一方向性ハッシュ関数演算部22と、検証部23と、を備える。
FIG. 2 is a block diagram showing the configuration of the verification apparatus 2 according to this embodiment.
The verification device 2 includes a collection unit 21, a one-way hash function calculation unit 22, and a verification unit 23.

収集部21は、検証対象のソフトウェア及び対応する検証鍵と、このソフトウェアよりも下位のノードに位置する全ての部品ソフトウェア及び対応する検証鍵とを収集する。このとき、収集部21は、検証対象のソフトウェアと共に公開されているリストデータ(L)を取得し、このリストデータにより示されている木構造の構成に従って、各ノードの部品ソフトウェア及び対応する検証鍵を収集する。   The collection unit 21 collects the software to be verified and the corresponding verification key, and all the component software and the corresponding verification key that are located in nodes lower than the software. At this time, the collection unit 21 acquires the list data (L) published together with the software to be verified, and in accordance with the configuration of the tree structure indicated by the list data, the component software of each node and the corresponding verification key To collect.

一方向性ハッシュ関数演算部22は、収集部21により収集された各ソフトウェア(m)に対して、一方向性ハッシュ関数演算を行う(h=H(m))。 The one-way hash function calculation unit 22 performs a one-way hash function calculation on each software (m i ) collected by the collection unit 21 (h i = H (m i )).

検証部23は、収集部21により収集された全てのノードのソフトウェアに対応する検証鍵と、一方向性ハッシュ関数演算部22により得られた全てのノードのソフトウェアから演算されたハッシュ値と、リストデータ(L)から得られる各ノード(署名者)の配置、及び各署名者と署名を行ったソフトウェアとの対応関係に関する情報と、に基づいて、公開署名情報(σ)の正当性を検証する。   The verification unit 23 includes verification keys corresponding to the software of all nodes collected by the collection unit 21, hash values calculated from the software of all nodes obtained by the one-way hash function calculation unit 22, and a list. The validity of the public signature information (σ) is verified based on the arrangement of each node (signer) obtained from the data (L) and the information on the correspondence between each signer and the software that signed the signature. .

具体的には、検証部23は、各ノードの検証鍵とハッシュ値とから、「{Πi∈all−node(e(v,h))}{Π(e(vup,hlow))}」を計算し、この計算結果と「e(g,σ)」の値とが一致することを確認することによって、公開署名情報(σ)の正当性を検証する。なお、式中で、直結する上下関係のノードをそれぞれ、「up」(上位ノード)及び「low」(下位ノード)と表した。 Specifically, the verification unit 23 calculates “{Π i∈all-node (e (v i , h i ))} {Π (e (v up , h low )” from the verification key and the hash value of each node. ))} ”And the validity of the public signature information (σ) is verified by confirming that the calculation result matches the value of“ e (g, σ) ”. In the expression, the directly connected nodes are represented as “up” (upper node) and “low” (lower node), respectively.

このようにして、検証装置2は、各ノードのソフトウェアに対して生成される個々の署名情報等を検証することなく、検証対象のコンポーネントソフトウェアに対して公開された公開署名情報を数値演算のみで検証できる。これにより、検証装置2は、メモリコストや処理負荷を低減し、木構造で構成されているコンポーネントソフトウェアの完全性を効率的に確認することができる。また、検証装置2は、コンポーネントソフトウェアを構成する各部品ソフトウェアの完全性も確認できるので、改竄やウィルスの混入等があった箇所を容易に特定できる。   In this way, the verification device 2 can perform only the numerical calculation on the public signature information disclosed for the component software to be verified without verifying the individual signature information generated for the software of each node. Can be verified. Thereby, the verification apparatus 2 can reduce the memory cost and the processing load, and can efficiently confirm the integrity of the component software configured by the tree structure. Further, since the verification device 2 can also confirm the completeness of each component software that constitutes the component software, it is possible to easily identify a location where falsification or virus contamination has occurred.

次に、署名生成装置1において、各ノードにおけるソフトウェアの公開署名情報を生成する方法と、検証装置2において、公開署名情報の正当性を検証する方法について説明する。   Next, a method for generating software public signature information at each node in the signature generation apparatus 1 and a method for verifying the validity of the public signature information in the verification apparatus 2 will be described.

署名生成装置1は、図3に示すように、記憶ステップS1と、受信ステップS2と、一方向性ハッシュ関数演算ステップS3と、署名情報生成ステップS4と、公開ステップS5とにより、各ノードにおけるソフトウェアの公開署名情報(σ)を公開する。   As shown in FIG. 3, the signature generation apparatus 1 includes a storage step S1, a reception step S2, a one-way hash function calculation step S3, a signature information generation step S4, and a disclosure step S5. Publish public signature information (σ).

記憶ステップS1において、記憶部11は、署名対象のソフトウェアに対応して、秘密情報である署名鍵と、公開情報である検証鍵とを取得して記憶する。   In the storing step S1, the storage unit 11 acquires and stores a signature key that is secret information and a verification key that is public information corresponding to the software to be signed.

受信ステップS2において、受信部12は、直下のノード(署名者ulowの部品ソフトウェア)が存在する場合に、この部品ソフトウェア(mlow)、及び直下のノードの部品ソフトウェアに対して生成された公開署名情報(σlow)を受信する。 In the reception step S2, when there is a node immediately below (part software of the signer u low ), the receiving unit 12 generates the disclosure generated for the part software (m low ) and the part software of the node immediately below. Signature information (σ low ) is received.

一方向性ハッシュ関数演算ステップS3において、一方向性ハッシュ関数演算部13は、直下のノードの部品ソフトウェア(mlow)及び自身のノードのソフトウェア(mup)に対して、それぞれ一方向性ハッシュ関数演算を行う。 In the one-way hash function calculation step S3, the one-way hash function calculation unit 13 applies the one-way hash function to the component software (m low ) of the node immediately below and the software (m up ) of its own node, respectively. Perform the operation.

署名情報生成ステップS4において、署名情報生成部14は、自身のノードのソフトウェアから演算により得られたハッシュ値(hup)に自身の署名鍵(xup)を乗じた結果と、直下のノードがある場合に、この直下のノードの部品ソフトウェアから演算により得られたハッシュ値(hlow)に自身の署名鍵(xup)を乗じた結果と、直下のノードから受信した公開署名情報(σlow)と、を用いて自身のノードのソフトウェアに対して公開署名情報(σup)を生成する。 In the signature information generation step S4, the signature information generation unit 14 determines that the result obtained by multiplying the hash value (h up ) obtained by calculation from the software of its own node by its signature key (x up ) and In some cases, the result of multiplying the hash value (h low ) obtained from the component software of the node immediately below by its own signature key (x up ) and the public signature information (σ low) received from the node immediately below ) To generate public signature information (σ up ) for the software of its own node.

公開ステップS5において、公開部15は、署名情報生成ステップS4により生成された公開署名情報、及び木構造の構成を示すリストデータを、ソフトウェア及び検証鍵と共に公開し、直上のノードの署名生成装置1又は検証装置2により参照可能とする。   In the publication step S5, the publication unit 15 publishes the public signature information generated in the signature information generation step S4 and the list data indicating the structure of the tree structure together with the software and the verification key, and the signature generation apparatus 1 of the immediately above node. Alternatively, it can be referred to by the verification device 2.

このように、署名生成装置1に係る署名生成方法によれば、木構造の各ノードにおいて、直下のノードの部品ソフトウェアから得られたハッシュ値と、自身のノードのソフトウェアから得られたハッシュ値とに対して、自身のノードに割り当てられている署名鍵によって演算を行い、さらに直下のノードの部品ソフトウェアに対して生成された公開署名情報を用いて、自身の公開署名情報を生成する。この公開署名情報は、自身のノードに至るまでの署名経路を保持し、かつ楕円曲線上の点のみで生成される。すなわち、署名者(ノードの数)が多くなっても、署名サイズは増大せず、一定値以下に抑制することができる。   As described above, according to the signature generation method according to the signature generation apparatus 1, in each node of the tree structure, the hash value obtained from the component software of the node immediately below, and the hash value obtained from the software of its own node, On the other hand, the calculation is performed with the signature key assigned to the own node, and the public signature information is generated using the public signature information generated for the component software of the node immediately below. This public signature information retains the signature path leading to its own node and is generated only by points on the elliptic curve. That is, even if the number of signers (number of nodes) increases, the signature size does not increase and can be suppressed to a certain value or less.

また、検証装置2は、図4に示すように、収集ステップS11と、一方向性ハッシュ関数演算ステップS12と、検証ステップS13とにより、公開署名情報(σ)の正当性を検証する。   Further, as shown in FIG. 4, the verification device 2 verifies the validity of the public signature information (σ) by the collection step S11, the one-way hash function calculation step S12, and the verification step S13.

収集ステップS11において、収集部21は、署名が行われた全てのノードのソフトウェア(m)、及びこれら全てのノードの検証鍵(v)を収集する。 In the collecting step S11, the collecting unit 21 collects the software (m i ) of all the nodes for which the signature has been performed, and the verification keys (v i ) of all the nodes.

一方向性ハッシュ関数演算ステップS12において、一方向性ハッシュ関数演算部22は、収集ステップS11により収集されたソフトウェアのそれぞれに対して、一方向性ハッシュ関数演算を行う。   In the one-way hash function calculation step S12, the one-way hash function calculation unit 22 performs a one-way hash function calculation on each of the software collected in the collection step S11.

検証ステップS13において、検証部23は、収集ステップS11により収集された全てのノードの検証鍵、全てのノードのソフトウェアから一方向性ハッシュ関数演算ステップS12により得られたハッシュ値、及びリストデータに基づいて公開署名情報(σ)の正当性を検証する。   In the verification step S13, the verification unit 23 is based on the verification keys of all the nodes collected in the collection step S11, the hash values obtained in the one-way hash function calculation step S12 from the software of all the nodes, and the list data. To verify the validity of the public signature information (σ).

このようにして、検証装置2に係る検証方法では、各ノードのソフトウェアに対して生成される個々の公開署名情報等を検証することなく、検証対象のソフトウェアに対して公開された公開署名情報を数値演算のみで検証できる。これにより、検証装置2は、メモリコストや処理負荷を低減し、木構造で構成されているコンポーネントソフトウェアの完全性を効率的に確認することができる。   In this way, in the verification method according to the verification device 2, the public signature information published for the verification target software is not verified without verifying the individual public signature information generated for the software of each node. It can be verified only by numerical operations. Thereby, the verification apparatus 2 can reduce the memory cost and the processing load, and can efficiently confirm the integrity of the component software configured by the tree structure.

[実施例]
ここで、木構造が3分木3階層で構成されている場合における各ノードの署名生成装置1の動作について図5を参照しながら具体的に説明する。なお、第1層は、最終コンポーネントソフトウェアの作成者かつ署名者であるルートノードである。また、第2層は、最終コンポーネントソフトウェアを構成する中間コンポーネントソフトウェアの作成者かつ署名者である中間ノードである。また、第3層は、中間コンポーネントソフトウェアを構成する部品ソフトウェアの作成者かつ署名者であるリーフノードである。
[Example]
Here, the operation of the signature generation apparatus 1 of each node in the case where the tree structure is composed of three levels of the triple tree will be specifically described with reference to FIG. The first layer is a root node that is the creator and signer of the final component software. The second layer is an intermediate node that is a creator and a signer of the intermediate component software constituting the final component software. The third layer is a leaf node that is the creator and signer of the part software that constitutes the intermediate component software.

すなわち、第1層には、一つのルートノードが配置されている。また、第2層には、三つの中間ノードが配置され、urootの直下にuからuが配置されている。また、第3層には、九つのリーフノードが配置され、uの直下にu11からu13が配置され、uの直下にu21からu23が配置され、uの直下にu31からu33が配置されている。 That is, one root node is arranged in the first layer. The second layer, three intermediate node is arranged, is u 3 are arranged from u 1 immediately below the u root. Further, the third layer is disposed leaf nodes nine is, u 13 from u 11 immediately below the u 1 are arranged, u 23 is arranged from the u 21 immediately below the u 2, u directly below the u 3 31 to u 33 are arranged.

また、認証局(CA)は、予め各ノードに署名鍵と検証鍵を、以下のように付与している。なお、sとtはそれぞれ、1≦s≦3、1≦t≦3となる整数の符号である。
第1層:(署名鍵,検証鍵)=(xroot,vroot)=(xroot,xrootg)
第2層:(署名鍵,検証鍵)=(x,v)=(x,xg)
第3層:(署名鍵,検証鍵)=(xst,vst)=(xst,xstg)
The certificate authority (CA) assigns a signature key and a verification key to each node in advance as follows. Note that s and t are integer signs such that 1 ≦ s ≦ 3 and 1 ≦ t ≦ 3, respectively.
Layer 1: (signature key, verification key) = ( xroot , vroot ) = ( xroot , xroot g)
2nd layer: (signature key, verification key) = (x s , v s ) = (x s , x s g)
3rd layer: (signature key, verification key) = (x st , v st ) = (x st , x st g)

第3層の九つのリーフノード(署名者ust)は、署名対象である自身の作成した部品ソフトウェア(mst)に対してハッシュ値(hst=H(mst))を求め、ハッシュ値に自身の署名鍵xstを乗じて、公開署名情報(σst=xstst)を生成する。また、リーフノード(署名者ust)は、生成した公開署名情報(σst)と、部品ソフトウェア(mst)とを公開する。 The nine leaf nodes (signer u st ) of the third layer obtain the hash value (h st = H (m st )) for the component software (m st ) created by the signature target itself, and the hash value Is multiplied by its own signature key x st to generate public signature information (σ st = x st h st ). Further, the leaf node (signer u st ) publishes the generated public signature information (σ st ) and the component software (m st ).

第2層の三つの中間ノード(署名者u)は、まず署名対象である自身の作成した中間コンポーネントソフトウェア(m)から、ハッシュ値(h=H(m))を求める。
次に、中間ノード(署名者u)は、直下のリーフノード(署名者us1、us2、us3)から受信した部品ソフトウェア(ms1、ms2、ms3)から、ハッシュ値(hs1=H(ms1)、hs2=H(ms2)、hs3=H(ms3))を求める。
The three intermediate nodes (signer u s ) in the second layer first obtain a hash value (h s = H (m s )) from the intermediate component software (m s ) created by the user as a signature target.
Next, the intermediate node (signer u s ) obtains the hash value (h) from the component software (m s1 , m s2 , m s3 ) received from the leaf node (signer u s1 , u s2 , u s3 ) immediately below. s1 = H (m s1 ), h s2 = H (m s2 ), h s3 = H (m s3 )).

さらに、中間ノード(署名者u)は、直下のリーフノードから受信した公開署名情報(σs1、σs2、σs3)を用いて、
σ=σs1+xs1+σs2+xs2+σs3+xs3
+x ・・・(6)
=xs1s1+xs1+xs2s2+xs2
+xs3s3+xs3+x ・・・(7)
を計算する。そして、中間ノード(署名者u)は、生成した公開署名情報(σ)と、中間コンポーネントソフトウェア(m)とを公開する。
Further, the intermediate node (signer u s ) uses the public signature information (σ s1 , σ s2 , σ s3 ) received from the leaf node immediately below,
σ s = σ s1 + x sh h s1 + σ s2 + x sh h s2 + σ s3 + x sh h s3
+ X sh h s (6)
= X s1 h s1 + x s h s1 + x s2 h s2 + x s h s2
+ X s3 h s3 + x s h s3 + x s h s (7)
Calculate Then, the intermediate node (signer u s ) releases the generated public signature information (σ s ) and the intermediate component software (m s ).

第1層のルートノード(署名者uroot)は、まず署名対象である自身の作成した最終コンポーネントソフトウェア(mroot)から、ハッシュ値(hroot=H(mroot))を求める。
次に、ルートノード(署名者uroot)は、直下の中間ノード(署名者u、u、u)から受信した中間コンポーネントソフトウェア(m、m、m)から、ハッシュ値(h=H(m)、h=H(m)、h=H(m))を求める。
The root node (signer u root ) of the first layer first obtains a hash value (h root = H (m root )) from the final component software (m root ) created by itself as a signature target.
Next, the root node (signer u root ) obtains a hash value (m 1 , m 2 , m 3 ) from the intermediate component software (m 1 , m 2 , m 3 ) received from the immediately lower intermediate node (signers u 1 , u 2 , u 3 ). h 1 = H (m 1 ), h 2 = H (m 2 ), h 3 = H (m 3 )).

さらに、ルートノード(署名者uroot)は、直下の中間ノードから受信した公開署名情報(σ、σ、σ)を用いて、
σ=σ+xroot+σ+xroot+σ+xroot
+xrootroot ・・・(8)
=x1111+x11+x1212+x12
+x1313+x13+x+xroot
+x2121+x21+x2222+x22
+x2323+x23+x+xroot
+x3131+x31+x3232+x32
+x3333+x33+x+xroot
+xrootroot ・・・(9)
を計算する。そして、ルートノード(署名者uroot)は、生成した公開署名情報(σ)と、最終コンポーネントソフトウェア(mroot)とを公開する。
Further, the root node (signer u root ) uses the public signature information (σ 1 , σ 2 , σ 3 ) received from the immediate intermediate node,
σ = σ 1 + x root h 1 + σ 2 + x root h 2 + σ 3 + x root h 3
+ X root h root (8)
= X 11 h 11 + x 1 h 11 + x 12 h 12 + x 1 h 12
+ X 13 h 13 + x 1 h 13 + x 1 h 1 + x root h 1
+ X 21 h 21 + x 2 h 21 + x 22 h 22 + x 2 h 22
+ X 23 h 23 + x 2 h 23 + x 2 h 2 + x root h 2
+ X 31 h 31 + x 3 h 31 + x 32 h 32 + x 3 h 32
+ X 33 h 33 + x 3 h 33 + x 3 h 3 + x root h 3
+ X root h root (9)
Calculate Then, the root node (signer u root ) publishes the generated public signature information (σ) and final component software (m root ).

このようにして、署名生成装置1は、木構造上において連続(隣接)する2つのノード間の関係を署名鍵とハッシュ値の積で表すことにより、木構造を表現することができる。また、ノードの数が増えても、公開されるのは、署名対象のコンポーネントソフトウェアに対して生成される公開署名情報(σ)である。この署名情報は楕円曲線上の点であるため、情報のサイズ(容量)は増大せず、一定値以下に抑制される。したがって、署名生成装置1は、効率的に署名情報を生成することができる。   In this way, the signature generation device 1 can express the tree structure by expressing the relationship between two nodes that are continuous (adjacent) on the tree structure by the product of the signature key and the hash value. Even when the number of nodes increases, the public signature information (σ) generated for the signature target component software is released. Since this signature information is a point on an elliptic curve, the size (capacity) of the information does not increase and is suppressed to a certain value or less. Therefore, the signature generation apparatus 1 can generate signature information efficiently.

また、検証装置2は、以下の検証過程1から検証過程3により公開署名情報(σ)の正当性を検証する。   The verification device 2 verifies the validity of the public signature information (σ) through the following verification process 1 to verification process 3.

(検証過程1)検証装置2は、署名を行った全てのノードが署名対象としたソフトウェア(mroot、m、m、m、m11、m12、m13、m21、m22、m23、m31、m32、m33)を収集し、これらに対してハッシュ値(hroot=H(mroot)、h=H(m)、h=H(m)、h=H(m)、h11=H(m11)、h12=H(m12)、h13=H(m13)、h21=H(m21)、h22=H(m22)、h23=H(m23)、h31=H(m31)、h32=H(m32)、h33=H(m33))を求める。 (Verification process 1) The verification device 2 includes software (m root , m 1 , m 2 , m 3 , m 11 , m 12 , m 13 , m 21 , m 22 ) that all nodes that have signed the signatures. , M 23 , m 31 , m 32 , m 33 ) and hash values (h root = H (m root ), h 1 = H (m 1 ), h 2 = H (m 2 ) , H 3 = H (m 3 ), h 11 = H (m 11 ), h 12 = H (m 12 ), h 13 = H (m 13 ), h 21 = H (m 21 ), h 22 = H (M 22 ), h 23 = H (m 23 ), h 31 = H (m 31 ), h 32 = H (m 32 ), h 33 = H (m 33 )).

(検証過程2)検証装置2は、署名を行った全てのノードの検証鍵(vroot、v、v、v、v11、v12、v13、v21、v22、v23、v31、v32、v33)を収集する。 (Verification Process 2) verification device 2, verification key (v root of all the nodes were signed, v 1, v 2, v 3, v 11, v 12, v 13, v 21, v 22, v 23 , V 31 , v 32 , v 33 ).

(検証過程3)検証装置2は、公開された公開署名情報(σ)の正当性を検証する。具体的には、検証装置2は、検証過程1で求めたハッシュ値と、収集した全てのノードの検証鍵とから、
e(v11,h11)・e(v,h11
・e(v12,h12)・e(v,h12
・e(v13,h13)・e(v,h13
・e(v,h)・e(vroot,h
・e(v21,h21)・e(v,h21
・e(v22,h22)・e(v,h22
・e(v23,h23)・e(v,h23
・e(v,h)・e(vroot,h
・e(v31,h31)・e(v,h31
・e(v32,h32)・e(v,h32
・e(v33,h33)・e(v,h33
・e(v,h)・e(vroot,h
・e(vroot,hroot) ・・・(10)
を計算し、この値とe(g,σ)の値とが一致することを確認する。検証装置2は、これらの値が一致した場合には、公開署名情報(σ)が正当であると判断する。
(Verification process 3) The verification apparatus 2 verifies the validity of the publicly available public signature information (σ). Specifically, the verification device 2 uses the hash value obtained in the verification process 1 and the verification keys of all the collected nodes,
e (v 11 , h 11 ) · e (v 1 , h 11 )
· E (v 12, h 12 ) · e (v 1, h 12)
· E (v 13, h 13 ) · e (v 1, h 13)
E (v 1 , h 1 ) e (v root , h 1 )
· E (v 21, h 21 ) · e (v 2, h 21)
E (v 22 , h 22 ) e (v 2 , h 22 )
E (v 23 , h 23 ) e (v 2 , h 23 )
E (v 2 , h 2 ) e (v root , h 2 )
· E (v 31, h 31 ) · e (v 3, h 31)
E (v 32 , h 32 ) e (v 3 , h 32 )
E (v 33 , h 33 ) e (v 3 , h 33 )
E (v 3 , h 3 ) e (v root , h 3 )
・ E (v root , h root ) (10)
And confirm that this value matches the value of e (g, σ). If these values match, the verification device 2 determines that the public signature information (σ) is valid.

ここで、(検証過程3)における「e(g,σ)」を展開すると、
e(g,σ)
=e(g,x1111)・e(g,x11
・e(g,x1212)・e(g,x12
・e(g,x1313)・e(g,x13
・e(g,x)・e(g,xroot
・e(g,x2121)・e(g,x21
・e(g,x2222)・e(g,x22
・e(g,x2323)・e(g,x23
・e(g,x)・e(g,xroot
・e(g,x3131)・e(g,x31
・e(g,x3232)・e(g,x32
・e(g,x3333)・e(g,x33
・e(g,x)・e(g,xroot
・e(g,xrootroot) ・・・(11)
=e(x11g,h11)・e(xg,h11
・e(x12g,h12)・e(xg,h12
・e(x13g,h13)・e(xg,h13
・e(xg,h)・e(xrootg,h
・e(x21g,h21)・e(xg,h21
・e(x22g,h22)・e(xg,h22
・e(x23g,h23)・e(xg,h23
・e(xg,h)・e(xrootg,h
・e(x31g,h31)・e(xg,h31
・e(x32g,h32)・e(xg,h32
・e(x33g,h33)・e(xg,h33
・e(xg,h)・e(xrootg,h
・e(xrootg,hroot) ・・・(12)
=e(v11,h11)・e(v,h11
・e(v12,h12)・e(v,h12
・e(v13,h13)・e(v,h13
・e(v,h)・e(vroot,h
・e(v21,h21)・e(v,h21
・e(v22,h22)・e(v,h22
・e(v23,h23)・e(v,h23
・e(v,h)・e(vroot,h
・e(v31,h31)・e(v,h31
・e(v32,h32)・e(v,h32
・e(v33,h33)・e(v,h33
・e(v,h)・e(vroot,h
・e(vroot,hroot) ・・・(13)
となり、署名の過程が正しく行われていれば、(10)式と一致する。よって、公開されているソフトウェア作成者の検証鍵と、全ての部品ソフトウェア、中間コンポーネントソフトウェア及び最終コンポーネントソフトウェアから求めたハッシュ値とから、公開署名情報の検証が可能となる。
Here, when “e (g, σ)” in (Verification process 3) is expanded,
e (g, σ)
= E (g, x 11 h 11 ) · e (g, x 1 h 11 )
· E (g, x 12 h 12) · e (g, x 1 h 12)
· E (g, x 13 h 13) · e (g, x 1 h 13)
E (g, x 1 h 1 ) e (g, x root h 1 )
· E (g, x 21 h 21) · e (g, x 2 h 21)
· E (g, x 22 h 22) · e (g, x 2 h 22)
· E (g, x 23 h 23) · e (g, x 2 h 23)
E (g, x 2 h 2 ) e (g, x root h 2 )
E (g, x 31 h 31 ) e (g, x 3 h 31 )
E (g, x 32 h 32 ) e (g, x 3 h 32 )
E (g, x 33 h 33 ) e (g, x 3 h 33 )
E (g, x 3 h 3 ) e (g, x root h 3 )
E (g, x root h root ) (11)
= E (x 11 g, h 11 ) · e (x 1 g, h 11 )
· E (x 12 g, h 12) · e (x 1 g, h 12)
E (x 13 g, h 13 ) e (x 1 g, h 13 )
E (x 1 g, h 1 ) e (x root g, h 1 )
E (x 21 g, h 21 ) e (x 2 g, h 21 )
E (x 22 g, h 22 ) e (x 2 g, h 22 )
E (x 23 g, h 23 ) e (x 2 g, h 23 )
E (x 2 g, h 2 ) e (x root g, h 2 )
E (x 31 g, h 31 ) e (x 3 g, h 31 )
E (x 32 g, h 32 ) e (x 3 g, h 32 )
E (x 33 g, h 33 ) e (x 3 g, h 33 )
E (x 3 g, h 3 ) e (x root g, h 3 )
・ E (x root g, h root ) (12)
= E (v 11 , h 11 ) · e (v 1 , h 11 )
· E (v 12, h 12 ) · e (v 1, h 12)
· E (v 13, h 13 ) · e (v 1, h 13)
E (v 1 , h 1 ) e (v root , h 1 )
· E (v 21, h 21 ) · e (v 2, h 21)
E (v 22 , h 22 ) e (v 2 , h 22 )
E (v 23 , h 23 ) e (v 2 , h 23 )
E (v 2 , h 2 ) e (v root , h 2 )
· E (v 31, h 31 ) · e (v 3, h 31)
E (v 32 , h 32 ) e (v 3 , h 32 )
E (v 33 , h 33 ) e (v 3 , h 33 )
E (v 3 , h 3 ) e (v root , h 3 )
・ E (v root , h root ) (13)
Thus, if the signature process is correctly performed, the expression (10) is satisfied. Therefore, it is possible to verify the public signature information from the publicly available verification key of the software creator and the hash values obtained from all the component software, intermediate component software, and final component software.

ここで、σの値に着目すると、署名者ustはhstにのみ署名処理(xststの演算)を行っており、他のh及びhrootにはこのような署名処理を行っていない。これにより、署名者ustが最初、すなわち木構造におけるリーフノードの署名者であることが分かる。 Here, paying attention to the value of sigma, the signer u st is performed signature processing only h st (the calculation of x st h st), the other h s and h root performing such signature process Not. Thereby, it is understood that the signer u st is the first, that is, the signer of the leaf node in the tree structure.

また、「xst」の項により、この最初の署名者が署名処理したhstに対して署名処理を行っているのがユーザuであることが表されているので、この署名者uが2番目(中間ノード)の署名者であることが分かる。署名者uは同時にhに対して署名処理(x)を行っている。同様に「xroot」の項により、このhに対して署名処理を行っているのが署名者urootであることが表されているので、この署名者urootが3番目の署名者であることが分かる。 Also, the "x s h st" section, since it has been expressed that the this first signer is performing the signature process on h st signed process is user u s, the signer it can be seen u s is the signer of the second (intermediate nodes). Signer u s is doing a signature processing on h s (x s h s) at the same time. Similarly, the section “x root h s ” indicates that it is the signer u root that has signed the h s , so this signer u root is the third signature. It can be seen that

さらに、hrootに対して署名処理を行っている署名者はなく、署名者urootで収束しているため、この3番目の署名者がルートノードであることが分かる。 Furthermore, since there is no signer who is performing the signature processing for h root and the signer u root has converged, it can be seen that this third signer is the root node.

また、(11)式において、CDH問題や楕円曲線上の離散対数問題から、秘密情報である署名鍵を知らない第三者が、右辺の各項(xαβ又はxββ)を任意に取り除くことはできないため、第三者による順序の入れ替えは不可能である。すなわち、本署名方式は、木構造における署名順序を署名鍵とハッシュ値の積により表現することができる。 Further, in the equation (11), a third party who does not know the signature key that is the secret information from the CDH problem or the discrete logarithm problem on the elliptic curve can change each term (x α h β or x β h β ) on the right side. Since it cannot be removed arbitrarily, it is impossible to change the order by a third party. That is, according to the present signature method, the signature order in the tree structure can be expressed by the product of the signature key and the hash value.

また、署名者の数(ノードの数)が増えても、公開される情報は公開署名情報(σ)のみである。この公開署名情報(σ)は一つの楕円曲線上の点であるため、情報のサイズ(容量)は増大せず、一定値以下に抑制される。   Even if the number of signers (the number of nodes) increases, the public information is only the public signature information (σ). Since this public signature information (σ) is a point on one elliptic curve, the size (capacity) of the information does not increase and is suppressed to a certain value or less.

さらに、検証装置2では、検証過程3で示した数値演算のみで検証することにより、ノード間をどのような順序で署名されてきたかを証明することができる。したがって、検証装置2は、メモリコストや処理負荷を低減し、木構造で構成されているコンポーネントソフトウェアの完全性を効率的に確認することができる。   Further, the verification device 2 can prove in what order the nodes have been signed by performing verification only by the numerical operation shown in the verification process 3. Therefore, the verification apparatus 2 can reduce the memory cost and the processing load, and can efficiently check the integrity of the component software configured with a tree structure.

<第2実施形態>
以下、本発明の実施形態の一例である第2実施形態について説明する。なお、第1実施形態と同様の構成については、同一の符号を付し、説明を省略又は簡略化する。
Second Embodiment
Hereinafter, a second embodiment which is an example of an embodiment of the present invention will be described. In addition, about the structure similar to 1st Embodiment, the same code | symbol is attached | subjected and description is abbreviate | omitted or simplified.

図6は、本実施形態に係る署名生成装置1aの構成を示すブロック図である。
署名生成装置1aは、受信部12a、一方向性ハッシュ関数演算部13a及び公開部15aの構成が第1実施形態と異なる。
FIG. 6 is a block diagram showing a configuration of the signature generation device 1a according to the present embodiment.
The signature generation device 1a is different from the first embodiment in the configuration of the reception unit 12a, the one-way hash function calculation unit 13a, and the disclosure unit 15a.

すなわち、受信部12aは、直下のノードから、ソフトウェア(mlow)の代わりにハッシュ値(hlow)を受信して署名情報生成部14へ供給する。これにより、一方向性ハッシュ関数演算部13aは、直下のノードのソフトウェア(mlow)に一方向性ハッシュ関数演算を行う必要がなくなる。 That is, the receiving unit 12a receives the hash value (h low ) from the node immediately below instead of the software (m low ) and supplies it to the signature information generating unit 14. This eliminates the need for the one-way hash function calculation unit 13a to perform one-way hash function calculation on the software (m low ) of the node immediately below.

また、公開部15aは、ソフトウェア(mup)、検証鍵(vup)、公開署名情報(σup)及びリストデータ(Lup)に加えて、一方向性ハッシュ関数演算部13aにより自身の署名対象であるソフトウェアから演算されたハッシュ値を、さらに公開する。これにより、直上のノードの署名生成装置1a又は検証装置2aは、この公開されているハッシュ値を、ソフトウェアそのものの代わりに利用する。 In addition to the software (m up ), the verification key (v up ), the public signature information (σ up ), and the list data (L up ), the public unit 15 a has its own signature by the one-way hash function calculation unit 13 a. The hash value calculated from the target software is further disclosed. As a result, the signature generation apparatus 1a or the verification apparatus 2a of the node immediately above uses the public hash value instead of the software itself.

図7は、本実施形態に係る検証装置2aの構成を示すブロック図である。
検証装置2aは、収集部21aの構成が第1実施形態と異なる。さらに、検証装置2aは、第1実施形態における一方向性ハッシュ関数演算部22を必要としない。
FIG. 7 is a block diagram showing the configuration of the verification apparatus 2a according to this embodiment.
The verification device 2a is different from the first embodiment in the configuration of the collection unit 21a. Furthermore, the verification device 2a does not require the one-way hash function calculation unit 22 in the first embodiment.

すなわち、収集部21aは、各ノードから、ソフトウェア(m)の代わりにハッシュ値(h)を受信して検証部23へ供給する。これにより、検証装置2aは、各ノードのソフトウェア(m)に一方向性ハッシュ関数演算を行う必要がなくなる。 That is, the collecting section 21a, supplied from each node, the hash value instead of software (m i) (h i) received by the verification unit 23. This eliminates the need for the verification device 2a to perform a one-way hash function operation on the software ( mi ) of each node.

本実施形態によれば、署名生成装置1a及び検証装置2aにおける一方向性ハッシュ関数演算の処理負荷を低減することができる。
具体的には、第1実施形態の署名生成装置1における一方向性ハッシュ関数演算ステップS3の処理負荷が低減され、検証装置2における一方向性ハッシュ関数演算ステップS12は不要となる。
According to this embodiment, the processing load of the one-way hash function calculation in the signature generation device 1a and the verification device 2a can be reduced.
Specifically, the processing load of the one-way hash function calculation step S3 in the signature generation device 1 of the first embodiment is reduced, and the one-way hash function calculation step S12 in the verification device 2 becomes unnecessary.

なお、各ノードにおける署名処理では、直下のノードからソフトウェア(m)又はハッシュ値(h)のいずれかを受信すればよく、署名生成装置1a及び検証装置2a内において統一されていなくてもよい。 In the signature processing in each node, it is only necessary to receive either software (m i ) or hash value (h i ) from the node immediately below, and even if it is not unified in the signature generation device 1a and the verification device 2a. Good.

以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、本実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本実施形態に記載されたものに限定されるものではない。   As mentioned above, although embodiment of this invention was described, this invention is not restricted to embodiment mentioned above. Further, the effects described in the present embodiment are merely a list of the most preferable effects resulting from the present invention, and the effects of the present invention are not limited to those described in the present embodiment.

前述の実施形態において、ペアリング関数への入力である2つの引数は、ペアリングの演算が可能な楕円曲線上の点gのスカラー倍として表されるが、この楕円曲線は、第1引数と第2引数とで共通でなくてもよい。すなわち、ペアリング関数の第1引数用と第2引数用とに、それぞれ異なる楕円曲線(G又はG)上の2点(g又はg)が与えられていてもよい。
この場合、前述の実施形態の説明におけるペアリング関数の第1引数に表れるgはgに、第2引数に表れるgはgに読み替えられる。また、楕円曲線上の点を用いて生成される前述の各種公開情報(検証鍵、ハッシュ値、公開署名情報)は、ペアリング関数の第1引数又は第2引数のいずれに入力されるかに応じて、G若しくはGのいずれかを用いて1種類、又は双方を用いて2種類生成される。
このことにより、公開情報の数、すなわち演算回数が増加する場合があるが、ペアリング関数の演算において並列して処理できるため、計算時間の短縮が期待できる。
In the above-described embodiment, the two arguments that are inputs to the pairing function are expressed as a scalar multiple of the point g on the elliptic curve that can be paired. The second argument may not be common. That is, two points (g 1 or g 2 ) on different elliptic curves (G 1 or G 2 ) may be given for the first argument and the second argument of the pairing function, respectively.
In this case, g appearing in the first argument of the pairing function in the description of the foregoing embodiments the g 1, g appearing in the second argument is read as g 2. Whether the various public information (verification key, hash value, public signature information) generated using the points on the elliptic curve is input to the first argument or the second argument of the pairing function. Accordingly, one type is generated using either G 1 or G 2 , or two types are generated using both.
As a result, the number of public information, that is, the number of operations may increase, but since the processing can be performed in parallel in the calculation of the pairing function, the calculation time can be expected to be shortened.

また、署名生成装置1(又は1a)及び検証装置2(2a)による一連の処理は、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。また、当該プログラムは、CD−ROMのようなリムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。   A series of processing by the signature generation apparatus 1 (or 1a) and the verification apparatus 2 (2a) can also be performed by software. When a series of processing is performed by software, a program constituting the software is installed in a general-purpose computer or the like. The program may be recorded on a removable medium such as a CD-ROM and distributed to the user, or may be distributed by being downloaded to the user's computer via a network.

1、1a 署名生成装置
2、2a 検証装置
11 記憶部
12、12a 受信部
13、13a 一方向性ハッシュ関数演算部(第1ハッシュ演算部)
14 署名情報生成部
15、15a 公開部
21、21a 収集部
22 一方向性ハッシュ関数演算部(第2ハッシュ演算部)
23 検証部
1, 1a Signature generation device 2, 2a Verification device 11 Storage unit 12, 12a Reception unit 13, 13a Unidirectional hash function calculation unit (first hash calculation unit)
14 Signature information generation unit 15, 15a Disclosure unit 21, 21a Collection unit 22 One-way hash function calculation unit (second hash calculation unit)
23 Verification Department

Claims (8)

ソフトウェアの完全性を保証する公開署名情報を生成する署名生成装置であって、
前記ソフトウェアに対応して、非公開の署名鍵、及び公開されている検証鍵を記憶する記憶部と、
一方向性ハッシュ関数演算を行う第1ハッシュ演算部と、
前記第1ハッシュ演算部により前記ソフトウェアから演算されたハッシュ値に対して、前記署名鍵を乗じて前記公開署名情報を生成する署名情報生成部と、
前記ソフトウェア、前記検証鍵、及び前記公開署名情報を公開する公開部と、を備え、
前記署名情報生成部は、前記ソフトウェアが既に公開されている1又は複数の部品ソフトウェアから構成される場合、前記部品ソフトウェアの公開署名情報と、前記部品ソフトウェアから演算されたハッシュ値に対して前記署名鍵を乗じた結果と、前記ソフトウェアから演算されたハッシュ値に対して前記署名鍵を乗じた結果とを総和して、前記公開署名情報を生成する署名生成装置。
A signature generation device that generates public signature information that guarantees the integrity of software,
Corresponding to the software, a storage unit that stores a private signature key and a public verification key;
A first hash calculation unit for performing a one-way hash function calculation;
A signature information generation unit that generates the public signature information by multiplying the hash value calculated from the software by the first hash calculation unit by the signature key;
The software, the verification key, and a public unit that publishes the public signature information,
The signature information generation section, said the software can Ru already composed of one or more components software is published, the public signature information of the component software, the signature to the hash value calculated from the component software A signature generation device that generates the public signature information by summing a result obtained by multiplying a key and a result obtained by multiplying the hash value calculated from the software by the signature key.
前記署名鍵は、所定の自然数からなり、
前記検証鍵は、GDH(GAP−Diffie−Hellman)グループの要素である楕円曲線上の点と前記署名鍵とに基づいて生成される、当該楕円曲線上の点からなる請求項1に記載の署名生成装置。
The signing key consists of a predetermined natural number,
The signature according to claim 1, wherein the verification key includes a point on the elliptic curve generated based on a point on the elliptic curve that is an element of a GDH (GAP-Diffie-Hellman) group and the signature key. Generator.
前記公開部は、前記ソフトウェアを最上位ノードとし、前記部品ソフトウェアを下位ノードとする木構造の構成を示すリストデータを、さらに公開する請求項1又は請求項2に記載の署名生成装置。   The signature generation apparatus according to claim 1 or 2, wherein the disclosure unit further discloses list data indicating a configuration of a tree structure having the software as a highest node and the component software as a lower node. 前記公開部は、前記第1ハッシュ演算部により前記ソフトウェアから演算されたハッシュ値を、さらに公開する請求項1から請求項3のいずれかに記載の署名生成装置。   The signature generation device according to any one of claims 1 to 3, wherein the disclosure unit further discloses the hash value calculated from the software by the first hash calculation unit. 請求項1から請求項4のいずれかに記載の署名生成装置により公開された前記公開署名情報を検証する検証装置であって、
前記ソフトウェア又は当該ソフトウェアから演算されたハッシュ値、及び対応する検証鍵、並びに当該ソフトウェアを構成する全ての部品ソフトウェア又は当該部品ソフトウェアから演算されたハッシュ値、及び対応する検証鍵を収集する収集部と、
前記収集部により収集されたソフトウェアのそれぞれに対して、一方向性ハッシュ関数演算を行う第2ハッシュ演算部と、
前記収集部により収集された全てのソフトウェアに対応する検証鍵、及び当該全てのソフトウェアから演算されたハッシュ値に基づいて、前記公開署名情報の正当性を検証する検証部と、を備える検証装置。
A verification device that verifies the public signature information published by the signature generation device according to claim 1,
A collection unit that collects the software or a hash value calculated from the software and a corresponding verification key, and all component software constituting the software or a hash value calculated from the component software and a corresponding verification key; ,
A second hash operation unit that performs a one-way hash function operation on each of the software collected by the collection unit;
A verification apparatus comprising: a verification key corresponding to all software collected by the collection unit; and a verification unit that verifies validity of the public signature information based on hash values calculated from all the software.
請求項4に記載の署名生成装置により公開された前記公開署名情報を検証する検証装置であって、
前記ソフトウェア及び当該ソフトウェアを構成する全ての部品ソフトウェアから演算されたハッシュ値、並びに対応する検証鍵を収集する収集部と、
前記収集部により収集された全てのソフトウェアに対応する検証鍵、及び当該全てのソフトウェアから演算されたハッシュ値に基づいて、前記公開署名情報の正当性を検証する検証部と、を備える検証装置。
A verification device that verifies the public signature information published by the signature generation device according to claim 4,
A collection unit that collects the hash values calculated from the software and all component software constituting the software, and a corresponding verification key;
A verification apparatus comprising: a verification key corresponding to all software collected by the collection unit; and a verification unit that verifies validity of the public signature information based on hash values calculated from all the software.
ソフトウェアの完全性を保証する公開署名情報をコンピュータが生成する署名生成方法であって、
前記ソフトウェアに対応して、非公開の署名鍵、及び公開されている検証鍵を前記コンピュータの記憶部に記憶する記憶ステップと、
前記コンピュータを、一方向性ハッシュ関数演算を行う第1ハッシュ演算部として機能させるハッシュ演算ステップと、
前記コンピュータを、前記ハッシュ演算ステップにおいて前記ソフトウェアから演算されたハッシュ値に対して、前記署名鍵を乗じて前記公開署名情報を生成する署名情報生成部として機能させる署名情報生成ステップと、
前記コンピュータを、前記ソフトウェア、前記検証鍵、及び前記公開署名情報を公開する公開部として機能させる公開ステップと、を含み、
前記署名情報生成ステップにおいて、前記ソフトウェアが既に公開されている1又は複数の部品ソフトウェアから構成される場合、前記部品ソフトウェアの公開署名情報と、前記部品ソフトウェアから演算されたハッシュ値に対して前記署名鍵を乗じた結果と、前記ソフトウェアから演算されたハッシュ値に対して前記署名鍵を乗じた結果とを総和して、前記公開署名情報を生成する署名生成方法。
A signature generation method in which a computer generates public signature information that guarantees the integrity of software,
A storage step of storing a private signature key and a public verification key in the storage unit of the computer corresponding to the software;
A hash calculation step for causing the computer to function as a first hash calculation unit for performing a one-way hash function calculation;
Said computer for calculating hash values from the software in the hash calculation step, the signature information generation step to function as the signature information generation unit configured to generate the public signature information by multiplying the signature key,
A public step of causing the computer to function as a public unit for publicizing the software, the verification key, and the public signature information,
In the signature information generation step, wherein if the software is the Ru already composed of one or more components software is published, and the component software public signature information, the signature to the hash value which the computed from the component software A signature generation method for generating the public signature information by summing a result obtained by multiplying a key and a result obtained by multiplying a hash value calculated from the software by the signature key.
ソフトウェアの完全性を保証する公開署名情報をコンピュータに生成させる署名生成プログラムであって、
前記ソフトウェアに対応して、非公開の署名鍵、及び公開されている検証鍵を前記コンピュータの記憶部に記憶する記憶ステップと、
前記コンピュータを、一方向性ハッシュ関数演算を行う第1ハッシュ演算部として機能させるハッシュ演算ステップと、
前記コンピュータを、前記ハッシュ演算ステップにおいて前記ソフトウェアから演算されたハッシュ値に対して、前記署名鍵を乗じて前記公開署名情報を生成する署名情報生成部として機能させる署名情報生成ステップと、
前記コンピュータを、前記ソフトウェア、前記検証鍵、及び前記公開署名情報を公開する公開部として機能させる公開ステップと、を実行させ、
前記署名情報生成ステップにおいて、前記ソフトウェアが既に公開されている1又は複数の部品ソフトウェアから構成される場合、前記部品ソフトウェアの公開署名情報と、前記部品ソフトウェアから演算されたハッシュ値に対して前記署名鍵を乗じた結果と、前記ソフトウェアから演算されたハッシュ値に対して前記署名鍵を乗じた結果とを総和して、前記公開署名情報を生成させる署名生成プログラム。
A signature generation program that causes a computer to generate public signature information that guarantees software integrity,
A storage step of storing a private signature key and a public verification key in the storage unit of the computer corresponding to the software;
A hash calculation step for causing the computer to function as a first hash calculation unit for performing a one-way hash function calculation;
Said computer for calculating hash values from the software in the hash calculation step, the signature information generation step to function as the signature information generation unit configured to generate the public signature information by multiplying the signature key,
Causing the computer to function as a public unit that publishes the software, the verification key, and the public signature information, and
In the signature information generation step, wherein if the software is the Ru already composed of one or more components software is published, and the component software public signature information, the signature to the hash value which the computed from the component software A signature generation program for generating the public signature information by summing a result obtained by multiplying the key and a result obtained by multiplying the hash value calculated from the software by the signature key.
JP2010204937A 2010-09-13 2010-09-13 Signature generation apparatus, verification apparatus, signature generation method, and signature generation program Active JP5597075B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010204937A JP5597075B2 (en) 2010-09-13 2010-09-13 Signature generation apparatus, verification apparatus, signature generation method, and signature generation program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010204937A JP5597075B2 (en) 2010-09-13 2010-09-13 Signature generation apparatus, verification apparatus, signature generation method, and signature generation program

Publications (2)

Publication Number Publication Date
JP2012060621A JP2012060621A (en) 2012-03-22
JP5597075B2 true JP5597075B2 (en) 2014-10-01

Family

ID=46057113

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010204937A Active JP5597075B2 (en) 2010-09-13 2010-09-13 Signature generation apparatus, verification apparatus, signature generation method, and signature generation program

Country Status (1)

Country Link
JP (1) JP5597075B2 (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4788212B2 (en) * 2005-07-13 2011-10-05 富士ゼロックス株式会社 Digital signature program and digital signature system
JP2010050760A (en) * 2008-08-22 2010-03-04 Hitachi Ltd Content protection apparatus, and content utilization apparatus
JP5183401B2 (en) * 2008-09-29 2013-04-17 Kddi株式会社 Aggregate signature generation system, aggregate signature generation method, and aggregate signature generation program

Also Published As

Publication number Publication date
JP2012060621A (en) 2012-03-22

Similar Documents

Publication Publication Date Title
JP5488596B2 (en) Signature device, signature verification device, anonymous authentication system, signature method, signature authentication method, and programs thereof
US9009481B2 (en) System and method for protecting cryptographic assets from a white-box attack
JP2023052834A (en) System for securing verification key from alternation and verifying validity of proof of correctness
JP2012014203A5 (en)
KR20160042435A (en) Method and device for generating digital signature
JP4818663B2 (en) System and method for homogenous map-based signature generation and verification
CN113037479B (en) Data verification method and device
US20160149708A1 (en) Electronic signature system
CN112149156B (en) System and selector for disclosing recorded attributes and data entries and method therefor
Anada et al. RSA public keys with inside structure: Proofs of key generation and identities for web-of-trust
Mishra et al. BB-tree based secure and dynamic public auditing convergence for cloud storage
Gayoso Martínez et al. Secure elliptic curves in cryptography
JP5597075B2 (en) Signature generation apparatus, verification apparatus, signature generation method, and signature generation program
CN112737793B (en) Method and device for updating block chain domain name configuration
Na et al. Comparative analysis of schnorr digital signature and ecdsa for efficiency using private ethereum network
JP6634171B2 (en) Apparatus, method and program for certifying public key reliability
JP2012216916A (en) Multiple signature system, verification system, multiple signature method, and multiple signature program
CN114026586A (en) Zero knowledge or pay protocol for granting access to encrypted assets
JP2011029785A (en) Multiple signature system, verification system, multiple signature method and multiple signature program
WO2011033642A1 (en) Signature generation device and signature verification device
Xu et al. Comment on an improved signature without using one-way hash functions
Do et al. Digital signature schemes from two hard problems
JP2012175634A (en) Aggregate signature system, verification system, aggregate signature method, and aggregate signature program
JP5497595B2 (en) Aggregate signature system, verification system, aggregate signature method, and aggregate signature program
JP2011029783A (en) Multiple signature system, verification system, multiple signature method and multiple signature program

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20120803

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130308

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140204

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140404

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140808

R150 Certificate of patent or registration of utility model

Ref document number: 5597075

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150