JP2022092105A - 情報処理プログラム、情報処理方法、情報処理装置および情報処理システム - Google Patents

情報処理プログラム、情報処理方法、情報処理装置および情報処理システム Download PDF

Info

Publication number
JP2022092105A
JP2022092105A JP2020204679A JP2020204679A JP2022092105A JP 2022092105 A JP2022092105 A JP 2022092105A JP 2020204679 A JP2020204679 A JP 2020204679A JP 2020204679 A JP2020204679 A JP 2020204679A JP 2022092105 A JP2022092105 A JP 2022092105A
Authority
JP
Japan
Prior art keywords
information
electronic document
proof
certificate information
verification
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2020204679A
Other languages
English (en)
Inventor
敏彦 栗田
Toshihiko Kurita
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2020204679A priority Critical patent/JP2022092105A/ja
Priority to EP21195524.0A priority patent/EP4012585B1/en
Priority to US17/474,094 priority patent/US11784828B2/en
Priority to CN202111153790.3A priority patent/CN114626099A/zh
Publication of JP2022092105A publication Critical patent/JP2022092105A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/42User authentication using separate channels for security data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • G06F21/645Protecting data integrity, e.g. using checksums, certificates or signatures using a third party
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3268Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]

Abstract

【課題】電子文書に付加する証明書の情報量を抑えて伝送効率の悪化を回避すること。【解決手段】企業A(署名装置201)は、送付者(利用者端末202)からの署名要求に応じて、認証企業X(認証サーバ205)から、企業Aや企業Aの代表者(署名者)としてのCredentialを取得する。企業A(署名装置201)は、CredentialからProofを作成し、ProofをProof(1)とProof(2)とに分割する。企業A(署名装置201)は、ID流通基盤220を介して、Proof(2)を検証企業Y(検証サーバ204)に送信する。企業A(署名装置201)は、電子文書DにProof(1)を付加して、企業Aの秘密鍵で署名(電子署名S)を行い、「電子文書D+Proof(1)+電子署名S」を送付者(利用者端末202)に送信する。【選択図】図12

Description

本発明は、情報処理プログラム、情報処理方法、情報処理装置および情報処理システムに関する。
近年、デジタル化されたアイデンティティ情報(ID情報)を、証明書として本人の同意のもとに安心・安全・簡単に流通させる、分散型のID流通基盤が注目されている。ID流通基盤のユースケースとしては、例えば、文書に組織や代表者の電子署名を付与して送付し、相手側で電子署名を用いて文書の真正性を検証するものがある。
先行技術としては、端末が、電子割符を用いて原データから複数の分割データを生成し、一部の分割データを証明サーバに送信し、他の分割データを保管サーバに送信し、証明サーバが、分割データの非改ざんを証明する証明情報を生成し、証明情報と時刻情報を含む証拠情報を生成し、分割データと証拠情報を関連付けて記憶するものがある。また、クライアント端末から送られてくる電子文書を原本性保証電子保存装置に保存し、クライアント端末から送られてくる電子文書参照要求に応じて、原本性保証電子保存装置に保存されている該当する電子文書を読み出して、クライアント端末に送る技術がある。
特開2013-179569号公報 特開2004-013488号公報
しかしながら、従来技術では、電子文書の真正性を検証するにあたり、署名者の属性を確認したり、その正しさを検証したりすることが難しい。例えば、署名者の属性を証明する証明書を電子文書に添付することが考えられるが、電子文書に対する証明書の情報量が増加して、伝送効率の悪化を招くという問題がある。
一つの側面では、本発明は、電子文書に付加する証明書の情報量を抑えて伝送効率の悪化を回避することを目的とする。
1つの実施態様では、電子文書に対する署名要求に応じて、前記電子文書のデータ量に基づいて、署名者の属性情報と当該属性情報を証明するための証明情報とを含む証明書情報から、第1の部分証明書情報と第2の部分証明書情報とを作成し、前記電子文書および前記第1の部分証明書情報に対する電子署名を生成し、生成した前記電子署名を前記電子文書および前記第1の部分証明書情報に付与して、前記電子文書の提出元に送信し、前記電子文書の提出元と提出先とを接続する経路とは異なる別の経路を用いて、前記署名者の証明書情報の真正性を検証する検証装置に前記第2の部分証明書情報を送信する、情報処理プログラムが提供される。
本発明の一側面によれば、電子文書に付加する証明書の情報量を抑えて伝送効率の悪化を回避することができるという効果を奏する。
図1は、実施の形態にかかる情報処理方法の一実施例を示す説明図である。 図2は、情報処理システム200のシステム構成例を示す説明図である。 図3は、署名装置201のハードウェア構成例を示すブロック図である。 図4は、検証サーバ204のハードウェア構成例を示すブロック図である。 図5は、マッチングテーブル230の記憶内容の一例を示す説明図である。 図6は、Credentialの具体例を示す説明図である。 図7は、Proofの具体例を示す説明図である。 図8は、証明情報の具体例を示す説明図である。 図9は、署名装置201の機能的構成例を示すブロック図である。 図10は、Proof(1)の組合せパターン例を示す説明図である。 図11は、検証サーバ204の機能的構成例を示すブロック図である。 図12は、情報処理システム200の動作例を示す説明図である。 図13は、電子署名の付与例および検証例を示す説明図である。 図14Aは、Proofの再構成例を示す説明図(その1)である。 図14Bは、Proofの再構成例を示す説明図(その2)である。 図14Cは、Proofの再構成例を示す説明図(その3)である。 図15は、Proofの検証依頼を行う際の操作例を示す説明図である。 図16は、情報処理システム200の検証処理手順の一例を示すシーケンス図(その1)である。 図17は、情報処理システム200の検証処理手順の一例を示すシーケンス図(その2)である。 図18は、情報処理システム200の検証処理手順の一例を示すシーケンス図(その3)である。 図19は、署名装置201のProof分割処理の具体的な処理手順の一例を示すフローチャートである。 図20は、検証サーバ204の検証処理の具体的な処理手順の一例を示すフローチャートである。
以下に図面を参照して、本発明にかかる情報処理プログラム、情報処理方法、情報処理装置および情報処理システムの実施の形態を詳細に説明する。
(実施の形態)
図1は、実施の形態にかかる情報処理方法の一実施例を示す説明図である。図1において、情報処理装置101は、電子署名を用いて電子文書の真正性を検証するにあたり、署名者の属性を確認し、その正しさを検証可能にするコンピュータである。電子文書は、電子的形態で使用されるコンテンツである。
例えば、電子文書は、各種アプリケーションによって作成される文書や画像である。また、電子文書は、紙の文書などをスキャナにより読み込んで電子データとして保存したものであってもよい。電子署名は、データ(電子文書)の真正性(正当性)を証明するための情報である。電子署名は、例えば、公開鍵暗号方式を利用することによって実現することができる。
ここで、電子署名を用いて電子文書の真正性を検証するにあたり、署名者の属性を把握した上で、電子文書の正しさを担保したい場合がある。例えば、ある企業の請求書を発行する際に、その企業の代表者の署名が必要であるとする。この場合、署名者の属性を確認できなければ、請求書が改ざんされていないことは確認できても、本当に代表者の署名であるかどうかわからない。
すなわち、電子署名を付与しただけでは、署名者の属性を確認したり、その正しさを検証したりすることができない。このため、例えば、署名者の属性を証明する証明書情報を電子文書に添付することが考えられる。証明書情報は、署名者の属性情報と、当該属性情報を証明するための証明情報とを含む。
属性情報は、ヒトやモノが持つ固有の性質・特徴に関する情報(名前、性別、年齢、職業、役職など)である。証明情報は、属性情報を証明するための情報であり、例えば、複数の変数群を含む。証明書情報の検証は、例えば、属性情報と、証明情報と、証明書の発行者の公開鍵とをもとに、ゼロ知識証明と呼ばれるプロトコルを用いて行われる。
しかしながら、証明情報は、データ量(サイズ)が大きくなる傾向がある。例えば、証明情報は、元の電子文書や属性情報に比べて10倍程度のデータ量となることが多い。このため、電子文書に証明書情報を付与すると、電子文書に対するデータ量が大きくなり、通信のオーバーヘッドが増加して伝送効率が低下する。
そこで、本実施の形態では、電子文書の真正性を検証するにあたり、署名者の属性を確認し、その正しさを検証可能にするとともに、電子文書に付加する証明書の情報量を抑えて伝送効率の悪化を回避する情報処理方法について説明する。以下、情報処理装置101の処理例について説明する。
(1)情報処理装置101は、電子文書に対する署名要求に応じて、電子文書のデータ量に基づいて、証明書情報から第1の部分証明書情報と第2の部分証明書情報とを作成する。ここで、署名要求は、電子文書に対して電子署名を付与するよう要求するものである。署名要求には、署名対象となる電子文書が含まれる。
証明書情報は、署名者の属性情報と、当該属性情報を証明するための証明情報とを含む。証明書情報は、例えば、認証機関により発行される署名者の属性証明書情報(Credential)に基づき作成されるProofである。属性証明書情報は、利用者(署名者)の属性証明書を示す情報である。
属性証明書情報は、例えば、利用者がアイデンティティ情報に結びついた正当な者であることを証明するための情報である。アイデンティティ情報は、例えば、利用者を定義する属性(属性と属性値)の集合である。属性は、例えば、氏名、住所、生年月日、マイナンバー、年齢、職業、役職、経歴などである。
認証機関は、利用者(署名者)のアイデンティティ情報を管理する機関であり、例えば、特定の企業(認証企業)や、企業内の特定の部署である。より詳細に説明すると、例えば、証明書情報は、属性証明書情報の一部の情報を開示したものであってもよく、属性証明書情報の一部の情報を秘匿化したものであってもよく、属性証明書情報がある条件を満たすかを証明したものであってもよい。
具体的には、例えば、情報処理装置101は、証明書情報を属性情報と証明情報とに分割し、属性情報の要約値と証明情報の要約値とを生成する。要約値は、例えば、データ(属性情報、証明情報)に対してハッシュ関数(暗号学的一方向性ハッシュ関数)を用いて生成されるハッシュ値である。
暗号学的一方向性ハッシュ関数を用いて生成されるハッシュ値は、生成元のデータからしか生成することができない唯一の情報となり、生成されたハッシュ値から元のデータを復元することができないという特徴を有する。また、ハッシュ関数によれば、例えば、データを一定のサイズ(長さ)に圧縮することができる。
そして、情報処理装置101は、電子文書のデータ量に対する第1の部分証明書情報のデータ量の割合が所定値以下となるように、属性情報、証明情報、属性情報の要約値および証明情報の要約値を、第1の部分証明書情報と第2の部分証明書情報とに分割する。所定値は、任意に設定可能であり、例えば、20%程度の値に設定される。
図1の例では、電子文書110の提出元102からの署名要求に応じて、電子文書110のデータ量に対する第1の部分証明書情報121のデータ量の割合が所定値以下となるように、証明書情報120から第1の部分証明書情報121と第2の部分証明書情報122とが作成された場合を想定する。
(2)情報処理装置101は、第1の部分証明書情報および電子文書に対する電子署名を生成する。具体的には、例えば、情報処理装置101は、電子文書に第1の部分証明書情報を付加し、署名者の秘密鍵に基づいて、第1の部分証明書情報を付加した電子文書に対する電子署名を生成する。
より詳細に説明すると、例えば、情報処理装置101は、ハッシュ関数を用いて、第1の部分証明書情報を付加した電子文書のハッシュ値を算出する。そして、情報処理装置101は、署名者の秘密鍵を用いて、算出したハッシュ値を暗号化することにより、電子署名を生成する。
図1の例では、署名者104の秘密鍵に基づいて、第1の部分証明書情報121を付加した電子文書110に対する電子署名130が生成される。なお、情報処理装置101は、署名者104の秘密鍵に基づいて、電子文書110、第1の部分証明書情報121のそれぞれに対する電子署名を生成することにしてもよい。
(3)情報処理装置101は、生成した電子署名を、電子文書および第1の部分証明書情報に付与して、電子文書の提出元に送信する。また、情報処理装置101は、電子文書の提出元と提出先とを接続する経路とは異なる別の経路を用いて、検証装置105に第2の部分証明書情報を送信する。
電子文書の提出元は、提出先に電子文書(例えば、ある企業Aの請求書)を送付する送付者(例えば、ある企業Aの従業員)に相当する。電子文書の提出先は、提出元から送付された電子文書を受信する受信者(例えば、ある企業Aの経理担当者や、請求先の企業Bの従業員)に相当する。検証装置105は、署名者の証明書情報(属性情報)の真正性を検証する検証者に相当する。
情報処理装置101と検証装置105は、電子文書の提出元と電子文書の提出先とを接続する経路とは異なる別の経路によって接続される。別の経路は、例えば、ID流通基盤によって提供される。ID流通基盤は、デジタル化されたアイデンティティ情報を、安心・安全・簡単に流通させるためのプラットフォームである。
検証装置105は、電子文書の提出先から第1の部分証明書情報を受信し、情報処理装置101から第2の部分証明書情報を受信する。そして、検証装置105は、受信した第1の部分証明書情報と、受信した第2の部分証明書情報とに基づいて、証明書情報の真正性を検証する。
図1の例では、第1の部分証明書情報121を付加した電子文書110に電子署名130が付与されて、電子文書110の提出元102に送信される。また、電子文書110の提出元102と提出先103とを接続する経路とは異なる別の経路を用いて、検証装置105に第2の部分証明書情報122が送信される。
このように、情報処理装置101によれば、電子署名を用いて電子文書の真正性を検証するにあたり、署名者の属性を確認可能にするとともに、その正しさを検証可能にすることができる。また、証明書情報を2つに分割することで、電子文書に付加する証明書の情報量を抑えることができる。
図1の例では、電子文書110の真正性を検証するにあたり、電子文書110の提出先103において、署名者の属性や、その正しさを確認することが可能となる。また、証明書情報120を2つに分割することで、電子文書110に付加する証明書の情報量を抑えて、伝送効率の悪化を回避することができる。
(情報処理システム200のシステム構成例)
つぎに、実施の形態にかかる情報処理システム200のシステム構成例について説明する。情報処理システム200は、図1に示した情報処理装置101を含むコンピュータシステムの一例である。情報処理システム200は、例えば、デジタル化されたアイデンティティ情報(ID情報)を、証明書として本人の同意のもとに流通させるID流通基盤に適用される。
以下の説明では、図1に示した情報処理装置101を、情報処理システム200内の署名装置201に適用した場合を例に挙げて説明する。また、署名者の属性証明書情報を「Credential(クレデンシャル)」と表記し、属性証明書情報から作成される証明書情報を「Proof(プルーフ)」と表記する場合がある。
図2は、情報処理システム200のシステム構成例を示す説明図である。図2において、情報処理システム200は、署名装置201と、利用者端末202と、利用者端末203と、検証サーバ204と、認証サーバ205と、を含む。情報処理システム200において、署名装置201、利用者端末202、利用者端末203および検証サーバ204は、有線または無線のネットワーク210を介して接続される。ネットワーク210は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどである。また、署名装置201、検証サーバ204および認証サーバ205は、ID流通基盤220に含まれる。ID流通基盤220において、署名装置201、検証サーバ204および認証サーバ205は、専用のネットワークを介して接続される。ID流通基盤220は、1つのプラットフォームであり、例えば、クラウドにより実現される。
ここで、署名装置201は、電子文書に署名(電子署名)を行うコンピュータである。署名装置201は、例えば、署名者が使用するPC(Personal Computer)である。
利用者端末202は、電子文書の提出元(送付者)となる利用者が使用するコンピュータである。利用者端末203は、電子文書の提出先(受信者)となる利用者が使用するコンピュータである。利用者端末202,203は、例えば、PC、タブレットPCなどである。図1に示した提出元102は、例えば、利用者端末202に相当する。図1に示した提出先103は、例えば、利用者端末203に相当する。
検証サーバ204は、マッチングテーブル230を有し、署名者のProof(証明書情報)の真正性を検証するコンピュータである。図1に示した検証装置105は、例えば、検証サーバ204に相当する。マッチングテーブル230の記憶内容の一例については、図5を用いて後述する。
認証サーバ205は、利用者(署名者)のCredential(属性証明書情報)を管理するコンピュータである。認証サーバ205は、例えば、認証企業(認証機関)のサーバである。Credentialの具体例については、図6を用いて後述する。また、Credentialから作成されるProofの具体例については、図7を用いて後述する。
なお、図2の例では、署名装置201、利用者端末202(提出元)、利用者端末203(提出先)、検証サーバ204および認証サーバ205を、それぞれ1台のみ表記したが、これに限らない。例えば、情報処理システム200には、署名装置201、利用者端末202(提出元)、利用者端末203(提出先)、検証サーバ204および認証サーバ205が、それぞれ複数台含まれていてもよい。
(署名装置201のハードウェア構成例)
つぎに、署名装置201のハードウェア構成例について説明する。
図3は、署名装置201のハードウェア構成例を示すブロック図である。図3において、署名装置201は、CPU(Central Processing Unit)301と、メモリ302と、ディスクドライブ303と、ディスク304と、通信I/F(Interface)305と、ディスプレイ306と、入力装置307と、可搬型記録媒体I/F308と、可搬型記録媒体309と、を有する。また、各構成部はバス300によってそれぞれ接続される。
ここで、CPU301は、署名装置201の全体の制御を司る。CPU301は、複数のコアを有していてもよい。メモリ302は、例えば、ROM、RAMおよびフラッシュROMなどを有する記憶部である。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることで、コーディングされている処理をCPU301に実行させる。
ディスクドライブ303は、CPU301の制御に従ってディスク304に対するデータのリード/ライトを制御する。ディスク304は、ディスクドライブ303の制御で書き込まれたデータを記憶する。ディスク304としては、例えば、磁気ディスク、光ディスクなどが挙げられる。
通信I/F305は、通信回線を通じてネットワーク(例えば、図2に示したネットワーク210、ID流通基盤220)に接続され、ネットワークを介して外部のコンピュータ(例えば、利用者端末202、検証サーバ204、認証サーバ205)に接続される。そして、通信I/F305は、ネットワークと自装置内部とのインターフェースを司り、外部装置からのデータの入出力を制御する。
ディスプレイ306は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する表示装置である。ディスプレイ306としては、例えば、液晶ディスプレイや有機EL(Electroluminescence)ディスプレイなどを採用することができる。
入力装置307は、文字、数字、各種指示などの入力のためのキーを有し、データの入力を行う。入力装置307は、キーボードやマウスなどであってもよく、また、タッチパネル式の入力パッドやテンキーなどであってもよい。
可搬型記録媒体I/F308は、CPU301の制御に従って可搬型記録媒体309に対するデータのリード/ライトを制御する。可搬型記録媒体309は、可搬型記録媒体I/F308の制御で書き込まれたデータを記憶する。可搬型記録媒体309としては、例えば、CD(Compact Disc)-ROM、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)メモリなどが挙げられる。
なお、署名装置201は、上述した構成部のうち、例えば、ディスクドライブ303、ディスク304、可搬型記録媒体I/F308、可搬型記録媒体309を有していなくてもよい。また、図2に示した利用者端末202,203についても、署名装置201と同様のハードウェア構成により実現することができる。
(検証サーバ204のハードウェア構成例)
つぎに、検証サーバ204のハードウェア構成例について説明する。
図4は、検証サーバ204のハードウェア構成例を示すブロック図である。図4において、検証サーバ204は、CPU401と、メモリ402と、ディスクドライブ403と、ディスク404と、通信I/F405と、可搬型記録媒体I/F406と、可搬型記録媒体407と、を有する。また、各構成部は、バス400によってそれぞれ接続される。
ここで、CPU401は、検証サーバ204の全体の制御を司る。CPU401は、複数のコアを有していてもよい。メモリ402は、例えば、ROM、RAMおよびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMがOSのプログラムを記憶し、ROMがアプリケーションプログラムを記憶し、RAMがCPU401のワークエリアとして使用される。メモリ402に記憶されるプログラムは、CPU401にロードされることで、コーディングされている処理をCPU401に実行させる。
ディスクドライブ403は、CPU401の制御に従ってディスク404に対するデータのリード/ライトを制御する。ディスク404は、ディスクドライブ403の制御で書き込まれたデータを記憶する。ディスク404としては、例えば、磁気ディスク、光ディスクなどが挙げられる。
通信I/F405は、通信回線を通じてネットワーク(例えば、図2に示したネットワーク210、ID流通基盤220)に接続され、ネットワークを介して外部のコンピュータ(例えば、図2に示した署名装置201、利用者端末203)に接続される。そして、通信I/F405は、ネットワークと装置内部とのインターフェースを司り、外部のコンピュータからのデータの入出力を制御する。通信I/F405には、例えば、モデムやLANアダプタなどを採用することができる。
可搬型記録媒体I/F406は、CPU401の制御に従って可搬型記録媒体407に対するデータのリード/ライトを制御する。可搬型記録媒体407は、可搬型記録媒体I/F406の制御で書き込まれたデータを記憶する。
なお、検証サーバ204は、上述した構成部のほかに、例えば、入力装置、ディスプレイ等を有することにしてもよい。また、検証サーバ204は、上述した構成部のうち、例えば、ディスクドライブ403、ディスク404、可搬型記録媒体I/F406、可搬型記録媒体407を有していなくてもよい。また、図2に示した認証サーバ205についても、検証サーバ204と同様のハードウェア構成により実現することができる。
(マッチングテーブル230の記憶内容)
つぎに、図5を用いて、検証サーバ204が有するマッチングテーブル230の記憶内容について説明する。マッチングテーブル230は、例えば、図4に示した検証サーバ204のメモリ402、ディスク404などの記憶装置により実現される。
図5は、マッチングテーブル230の記憶内容の一例を示す説明図である。図5において、マッチングテーブル230は、a_hash、b_hash、aおよびbのフィールドを有し、各フィールドに情報を設定することで、マッチングデータ(例えば、マッチングデータ500-1~500-3)をレコードとして記憶する。
ここで、a_hashは、Proofに含まれる属性情報のハッシュ値である。b_hashは、Proofに含まれる証明情報のハッシュ値である。aは、Proofに含まれる属性情報である。bは、Proofに含まれる証明情報である。
例えば、マッチングデータ500-1は、a_hash「xxx1」とb_hash「yyy1」とを示す。マッチング情報500-1のaおよびbの各フィールドは空白である。
(Credentialの具体例)
つぎに、図6を用いて、Credentialの具体例について説明する。
図6は、Credentialの具体例を示す説明図である。図6において、Credential600は、認証サーバ205から発行されるCredential(属性証明書情報)の一例である。Credential600は、署名者の属性を証明する情報である。
ここでは、署名者の属性として、役職「社長」、氏名「富士太郎」、住所「川崎市中原区XXX」、生年月日「1988/1/1」、マイナンバー「123456…」、年齢「32」が示されている。また、Credential600には、電子署名の仕組みに基づき、発行者(例えば、認証企業)の秘密鍵で署名「XXXX」が付与されている。
(Proofの具体例)
つぎに、図7を用いて、Proofの具体例について説明する。
図7は、Proofの具体例を示す説明図である。図7において、Proof700は、図6に示したCredential600から作成されるProof(証明書情報)の一例である。Proof700は、属性情報710と、証明情報720とを含む。
属性情報710は、開示属性の情報711と、秘匿属性の情報712と、条件証明の情報713とを含む。開示属性の情報711は、Credential600のうち開示する情報である。秘匿属性の情報712は、Credential600のうち開示する必要のない属性を墨塗処理により秘匿した情報である。
条件証明の情報713は、Credential600に含まれる年齢が30才以上であるかという条件を満たすことを証明した情報(範囲証明)である。証明情報720は、属性情報710を証明するための情報(複数の変数群)である。証明情報720の具体例については、図8を用いて後述する。
図8は、証明情報の具体例を示す説明図である。図8において、証明情報800(例えば、図7に示した証明情報720に相当)は、ZKP(ゼロ知識証明)のレスポンス群を含む。primary_proofは、属性に関するZKPのレスポンス群である。revealed_attributesは、開示属性を示す。
name#1:value#1等は、個々の開示属性の値を示す。個々の開示属性の値のビット数は、個々の開示属性の値に依存する。unrevealed_attributesは、秘匿属性を示す。mj_hat#1等は、個々の秘匿属性のZKPのレスポンスを示す。個々の秘匿属性のZKPのレスポンスのビット数は、例えば、592[bit]である。
credential_siganture_ZKPは、Credentialの署名(A,v,e)のZKPのレスポンスを示す。credential_siganture_ZKPのビット数は、例えば、5564[bit]である(a_prime:2048[bit]、e_hat:456[bit]、v_hat:3060[bit])。
predicate_attributeは、条件証明を示す。u_hat1,,u_hat4等は、各条件証明に対するZKPのレスポンスを示す。predicate_attributeのビット数は、例えば、8515[bit]である(u_hat1,,u_hat4:2368[bit]、r_hat1,,r_hat4:2388[bit]、r_hat_delta:672[bit]、alfa_hat:2787[bit])。
non_revoc_proofは、非失効証明のZKPのレスポンスを示す。non_revoc_proof(x_list)のビット数は、例えば、14336[bit]である。aggregated_proofは、チャレンジhashを示す。aggregated_proof(c_hash)のビット数は、例えば、256[bit]である。
証明情報800によれば、ZKP(ゼロ知識証明)レスポンスとチャレンジhashから、ZKPプロトコルにより証明属性の正しさを検証することができる。
(署名装置201の機能的構成例)
図9は、署名装置201の機能的構成例を示すブロック図である。図9において、署名装置201は、受付部901と、取得部902と、作成部903と、分割部904と、生成部905と、第1の通信部906と、第2の通信部907と、を含む。取得部902~第2の通信部907は制御部となる機能であり、具体的には、例えば、図3に示したメモリ302、ディスク304、可搬型記録媒体309などの記憶装置に記憶されたプログラムをCPU301に実行させることにより、または、通信I/F305により、その機能を実現する。各機能部の処理結果は、例えば、メモリ302、ディスク304などの記憶装置に記憶される。
受付部901は、電子文書に対する署名要求を受け付ける。署名要求は、電子文書に対して電子署名を付与するよう要求するものである。署名要求には、署名対象となる電子文書が含まれる。以下の説明では、署名対象となる電子文書を「電子文書D」と表記する場合がある。
具体的には、例えば、受付部901は、図2に示した利用者端末202から署名要求を受信することにより、電子文書Dに対する署名要求を受け付ける。また、受付部901は、図3に示した入力装置307を用いたユーザの操作入力により、電子文書Dに対する署名要求を受け付けることにしてもよい。
取得部902は、認証機関により発行される署名者のCredential(属性証明書情報)を取得する。具体的には、例えば、取得部902は、電子文書Dに対する署名要求に応じて、図2に示した認証サーバ205(例えば、認証企業)から、ID流通基盤220経由で、Credential600(図6参照)を取得する。
ただし、署名者のCredentialは、例えば、電子文書Dに対する署名要求に先だって、予め取得されることにしてもよい。
作成部903は、署名者のCredentialに基づいて、署名者のProof(証明書情報)を作成する。Proofは、署名者の属性情報と、当該属性情報を証明するための証明情報とを含む。属性情報は、例えば、Credentialに含まれる属性の情報(開示属性)、Credentialに含まれる属性の情報を秘匿化した情報(秘匿属性)およびCredentialに含まれる属性の情報が特定の条件を満たすことを証明する情報(条件証明)のうちの少なくともいずれかを含む。
具体的には、例えば、作成部903は、入力装置307を用いたユーザの操作入力により、取得されたCredential600に基づいて、開示する必要のない属性を秘匿したり、ある条件を満たすかを証明したりすることで、Proof700(図7参照)を作成する。
なお、署名装置201は、Credentialをもとに作成されたProofを、他のコンピュータや可搬型記録媒体I/F308などから取得することにしてもよい。
分割部904は、電子文書Dのデータ量に基づいて、Proof(証明書情報)から、第1の部分証明書情報と第2の部分証明書情報とを作成する。以下の説明では、Proofから作成される第1の部分証明書情報を「Proof(1)」と表記し、Proofから作成される第2の部分証明書情報を「Proof(2)」と表記する場合がある。
具体的には、例えば、分割部904は、Proofを属性情報と証明情報とに分割し、属性情報のハッシュ値と証明情報のハッシュ値とを生成する。そして、分割部904は、電子文書Dのデータ量に対するProof(1)のデータ量の割合が所定値α以下となるように、属性情報、証明情報、属性情報の要約値および証明情報の要約値を、Proof(1)とProof(2)とに分割する。
この際、分割部904は、例えば、第1の組合せ(a,b)、第2の組合せ(a,b_hash)および第3の組合せ(a_hash,b_hash)のうち、第1の組合せ(a,b)または第2の組合せ(a,b_hash)を、第3の組合せ(a_hash,b_hash)よりも優先してProof(1)とする。
また、分割部904は、第1の組合せ(a,b)を、第2の組合せ(a,b_hash)および第3の組合せ(a_hash,b_hash)よりも優先してProof(1)とすることにしてもよい。ただし、aは、属性情報である。bは、証明情報である。a_hashは、属性情報のハッシュ値である。b_hashは、証明情報のハッシュ値である。
ここで、図10を用いて、Proof(1)の組合せパターンについて説明する。
図10は、Proof(1)の組合せパターン例を示す説明図である。図10において、(i)は、属性情報と証明情報とからなる第1の組合せ(a,b)を示す。(ii)は、属性情報と証明情報のハッシュ値とからなる第2の組合せ(a,b_hash)を示す。(iii)は、属性情報のハッシュ値と証明情報のハッシュ値とからなる第3の組合せ(a_hash,b_hash)を示す。
総データ量は「(iii)→(ii)→(i)」の順に大きくなるものの、(i)および(ii)には属性情報そのものが含まれる。所定値αを「α=0.2(20%)」とする。この場合、分割部904は、例えば、電子文書Dのデータ量に対するProof(1)のデータ量の割合が0.2以下(20%以下)となるように、「(i)→(ii)→(iii)」の順に優先して、Proof(1)とする。
Proof(1)の組合せパターンが(i)の場合、Proof(2)は、(a_hash,b_hash)となる。Proof(1)の組合せパターンが(ii)の場合、Proof(2)は、(a_hash,b)となる。Proof(1)の組合せパターンが(iii)の場合、Proof(2)は、(a,b)となる。
生成部905は、電子文書DおよびProof(1)に対する電子署名を生成する。具体的には、例えば、生成部905は、電子文書DにProof(1)を付加する。つぎに、生成部905は、ハッシュ関数を用いて、Proof(1)を付加した電子文書Dのハッシュ値を算出する。そして、生成部905は、署名者の秘密鍵を用いて、算出したハッシュ値を暗号化することにより、電子署名を生成する。
以下の説明では、Proof(1)を付加した電子文書Dに対する電子署名を「電子署名S」と表記する場合がある。なお、電子署名Sの生成例については、図13を用いて後述する。
第1の通信部906は、生成された電子署名Sを電子文書DおよびProof(1)に付与して、電子文書Dの提出元に送信する。ここで、電子文書Dの提出元は、提出先に電子文書Dを送付する送付者に相当する。電子文書Dの提出元は、例えば、電子文書Dに対する署名要求の要求元である利用者端末202である。
具体的には、例えば、第1の通信部906は、Proof(1)を付加した電子文書Dに電子署名Sを付与する。そして、第1の通信部906は、ネットワーク210を介して、要求元である利用者端末202に署名応答を送信する。署名応答には、Proof(1)を付加した電子文書Dと、当該電子文書Dに付与された電子署名Sとが含まれる。
利用者端末202は、例えば、署名応答を受信すると、ネットワーク210を介して、署名応答に含まれるProof(1)を付加した電子文書Dと、当該電子文書Dに付与された電子署名Sとを、電子文書Dの提出先となる利用者端末203に送信する。電子文書Dの提出先は、提出元から送付された電子文書Dを受信する受信者に相当する。提出先への送信は、例えば、電子メール等で行われる。
第2の通信部907は、電子文書Dの提出元と提出先とを接続する経路とは異なる別の経路を用いて、検証サーバ204にProof(2)を送信する。検証サーバ204は、Proofの真正性を検証する検証装置の一例である。具体的には、例えば、第2の通信部907は、ネットワーク210とは異なる別の経路であるID流通基盤220経由で、検証サーバ204にProof(2)を送信する。
これにより、Proofの一部(Proof(2))がID流通基盤220経由で送信されるため、電子文書Dに対する証明書の情報量を抑えて、ネットワーク210を介した通信のオーバーヘッドが増加するのを防ぐことができる。ID流通基盤220は、クラウド等で実現されるため、インターネット等のネットワーク210に比べて、Proof(2)のやり取りにともなう通信量の増加が問題になりにくい。
(検証サーバ204の機能的構成例)
図11は、検証サーバ204の機能的構成例を示すブロック図である。図11において、検証サーバ204は、第1の通信部1101と、登録部1102と、第2の通信部1103と、検証部1104と、を含む。第1の通信部1101~検証部1104は制御部となる機能であり、具体的には、例えば、図4に示したメモリ402、ディスク404、可搬型記録媒体407などの記憶装置に記憶されたプログラムをCPU401に実行させることにより、または、通信I/F405により、その機能を実現する。各機能部の処理結果は、例えば、メモリ402、ディスク404などの記憶装置に記憶される。
第1の通信部1101は、電子文書Dの提出元と提出先とを接続する経路とは異なる別の経路を用いて、署名装置201からProof(2)を受信する。具体的には、例えば、第1の通信部1101は、ネットワーク210とは異なる別の経路であるID流通基盤220経由で、署名装置201からProof(2)を受信する。
登録部1102は、署名装置201からProof(2)を受信した場合、マッチングデータを登録する。例えば、Proof(2)を(a_hash,b_hash)とする。この場合、登録部1102は、a_hashとb_hashとを対応付けて、図5に示したマッチングテーブル230に登録する。この結果、新たなマッチングデータ(例えば、マッチングデータ500-1)がレコードとして記憶される。
また、Proof(2)を(a_hash,b)とする。この場合、登録部1102は、ハッシュ関数を用いて、b(認証情報)からb_hashを算出する。ただし、署名装置201において、Proof(1),Proof(2)を作成する際に用いられたハッシュ関数と同じ関数を用いる。そして、登録部1102は、a_hashとb_hashとbとを対応付けて、マッチングテーブル230に登録する。この結果、新たなマッチングデータ(例えば、マッチングデータ500-2)がレコードとして記憶される。
また、Proof(2)を(a,b)とする。この場合、登録部1102は、ハッシュ関数を用いて、a(属性情報)からa_hashを算出する。また、登録部1102は、ハッシュ関数を用いて、b(認証情報)からb_hashを算出する。そして、登録部1102は、a_hashとb_hashとaとbとを対応付けて、マッチングテーブル230に登録する。この結果、新たなマッチングデータ(例えば、マッチングデータ500-3)がレコードとして記憶される。
第2の通信部1103は、電子文書Dの提出先からProof(1)を受信する。具体的には、例えば、第2の通信部1103は、ネットワーク210を介して、利用者端末203から検証依頼を受信する。検証依頼は、署名者のProofの真正性の検証を依頼するものである。検証依頼には、Proof(1)が含まれる。
検証依頼は、さらに、電子文書Dの検証を依頼するものであってもよい。この場合、検証依頼には、例えば、Proof(1)を付加した電子文書Dと、当該電子文書Dに付与された電子署名Sとが含まれる。すなわち、検証サーバ204は、利用者端末203から、Proofの真正性の検証依頼とともに、電子文書Dの真正性の検証依頼を受け付けることにしてもよい。
検証部1104は、電子文書Dの提出先から受信したProof(1)と、署名装置201から受信したProof(2)とに基づいて、Proofの真正性を検証する。具体的には、例えば、検証部1104は、電子文書Dの提出先からの検証依頼に応じて、受信したProof(1)とProof(2)とからProofを再構成する。そして、検証部1104は、再構成したProofの属性情報と証明情報とから、Proofを検証する。
Proofの検証は、例えば、属性情報(図7参照)と、証明情報(図8参照)と、Credentialの発行者の公開鍵とをもとに、既存のゼロ知識証明と呼ばれるプロトコルを用いて行われる。ゼロ知識証明では、ZKP(ゼロ知識証明)レスポンスとチャレンジhashから、ZKPプロトコルにより証明属性の正しさを検証する。
より詳細に説明すると、例えば、検証部1104は、証明属性およびチャレンジhashを、ZKPレスポンスで決められた演算方法(例えば、AND、OR)で演算して得られる値とZKPレスポンスとから、証明属性の正しさを検証する((証明属性,チャレンジhash)→ZKPレスポンス)。
なお、Proofの真正性を検証する際の検証サーバ204の動作例については、図14A~図14Cを用いて後述する。
また、検証部1104は、電子署名Sを用いて、電子文書Dの真正性を検証することにしてもよい。具体的には、例えば、検証部1104は、利用者端末203から、Proofの真正性の検証依頼とともに、電子文書Dの真正性の検証依頼を受け付けた場合、Proofの真正性を検証するとともに、電子文書Dの真正性を検証する。
より詳細に説明すると、例えば、検証部1104は、Proof(1)が付加された電子文書Dのハッシュ値を算出する。つぎに、検証部1104は、署名者の公開鍵を取得し、取得した公開鍵を用いて、電子文書Dに付与された電子署名Sを復号する。そして、検証部1104は、復号して得られたハッシュ値と、算出したハッシュ値とを比較する。
ここで、ハッシュ値が一致する場合、検証部1104は、検証OK(検証成功)とする。検証OKは、電子文書D(電子文書D+Proof(1))が改ざんされていない正しい情報であることを示す。一方、ハッシュ値が一致しない場合には、検証部1104は、検証NG(検証失敗)とする。検証NGは、電子文書D(電子文書D+Proof(1))が正しい情報ではないことを示す。例えば、電子文書DまたはProof(1)の少なくともいずれかが改ざんされると、検証NGとなる。
なお、電子文書Dの真正性を検証する際の検証サーバ204の動作例については、図13を用いて後述する。
第2の通信部1103は、電子文書Dの提出先(受信者)に検証結果を送信する。具体的には、例えば、第2の通信部1103は、ネットワーク210を介して、検証要求の要求元である利用者端末203に検証結果を送信する。検証結果には、例えば、Proofが正しいものであるか否かを示す検証結果(検証OKまたは検証NG)が含まれる。
また、検証結果には、例えば、Proofに含まれる属性情報(または、属性情報および証明情報)が含まれる。これにより、利用者端末203(受信者)において、署名者の属性およびその真正性を確認することが可能となる。
ただし、Proof(1)の組合せパターンが(i)または(ii)の場合、検証結果に属性情報を含めないことにしてもよい。Proof(1)の組合せパターンが(i)または(ii)の場合、Proof(1)に属性情報そのものが含まれているため、利用者端末203(受信者)において、Proof(1)を受信したタイミング、すなわち、Proofの検証前に属性情報を確認することが可能である。
また、電子文書Dの真正性の検証依頼を受け付けた場合には、検証結果には、さらに、電子文書Dが正しいものであるか否かを示す検証結果(検証OKまたは検証NG)も含まれる。ただし、電子署名Sを用いた電子文書Dの真正性の検証は、利用者端末203(受信者)において行われることにしてもよい。
(情報処理システム200の動作例)
つぎに、情報処理システム200の動作例について説明する。ここでは、電子文書Dの送付者(提出元)を「企業Aの従業員」とし、送付者が電子文書Dを所属企業である企業A(署名装置201)に送って署名を要求する場合を想定する。電子文書Dは、例えば、請求書である。また、Credentialを発行する認証機関を「認証企業X」とし、電子文書D(電子署名S)やProofを検証する検証者を「検証企業Y」とする。
図12は、情報処理システム200の動作例を示す説明図である。図12において、送付者(利用者端末202)は、電子文書Dを含む署名要求を企業A(署名装置201)に送信する。企業A(署名装置201)は、署名要求に応じて、認証企業X(認証サーバ205)から、企業Aや企業Aの代表者(署名者)としてのCredentialを取得する。ただし、Credentialは、予め取得されていてもよい。
企業A(署名装置201)は、CredentialからProofを作成し、ProofをProof(1)とProof(2)とに分割する。企業A(署名装置201)は、ID流通基盤220を介して、Proof(2)を検証企業Y(検証サーバ204)に送信する。
企業A(署名装置201)は、電子文書DにProof(1)を付加して、企業Aの秘密鍵で署名(電子署名S)を行う。電子署名Sの付与例については、図13を用いて後述する。企業A(署名装置201)は、「電子文書D+Proof(1)+電子署名S」を送付者(利用者端末202)に送信する。
送付者(利用者端末202)は、ネットワーク210を介して、電子メール等により、「電子文書D+Proof(1)+電子署名S」を受信者(利用者端末203)に送信する。受信者(利用者端末203)は、受信した「電子文書D+Proof(1)+電子署名S」を検証企業Y(検証サーバ204)に送信して、電子文書D(電子署名S)とProofの検証を依頼する。
なお、受信者(利用者端末203)において、検証企業Y(検証サーバ204)への検証依頼を行う際の操作例については、図15を用いて後述する。
検証企業Y(検証サーバ204)は、受信者(利用者端末203)から受信したProof(1)と、企業A(署名装置201)から受信したProof(2)とのマッチングを取ってProofを再構成し、Proofの検証を行う。Proofの再構成例については、図14A~図14Cを用いて後述する。
また、検証企業Y(検証サーバ204)は、企業Aの公開鍵に基づいて、電子署名S(電子文書D)の検証を行う。電子署名S(電子文書D)の検証例については、図13を用いて後述する。そして、検証企業Y(検証サーバ204)は、受信者(利用者端末203)に検証結果を送信する。検証結果には、例えば、Proofの検証結果と、電子署名S(電子文書D)の検証結果と、Proofに含まれる属性情報とが含まれる。
これにより、電子署名Sを用いて電子文書Dの真正性を検証するにあたり、署名者(企業Aや企業Aの代表者)の属性を確認可能にするとともに、その正しさを検証可能にすることができる。
(電子署名Sの付与例および検証例)
つぎに、図13を用いて、電子署名Sの付与例および検証例について説明する。
図13は、電子署名の付与例および検証例を示す説明図である。図13において、電子署名Sを付与するにあたり、企業A(署名装置201)は、電子文書DにProof(1)を付加して、「電子文書D+Proof(1)」のハッシュ値を算出する。つぎに、企業A(署名装置201)は、自身の秘密鍵を用いて、算出したハッシュ値を暗号化することにより、電子署名Sを生成する。そして、企業A(署名装置201)は、生成した電子署名Sを、Proof(1)を付加した電子文書Dに付与する。
図13において、電子署名S(電子文書D)を検証するにあたり、検証企業Y(検証サーバ204)は、「電子文書D+Proof(1)」のハッシュ値を算出する。ただし、企業A(署名装置201)において、電子署名Sを生成する際に用いられたハッシュ関数と同じ関数を用いる。
つぎに、検証企業Y(検証サーバ204)は、企業Aの公開鍵を取得し、取得した公開鍵を用いて、電子署名Sを復号する。そして、検証企業Y(検証サーバ204)は、復号して得られたハッシュ値と、算出したハッシュ値とを比較する。
ここで、ハッシュ値が一致する場合、検証企業Y(検証サーバ204)は、検証OK(Proof(1)が付加された電子文書Dが正しいものである)とする。一方、ハッシュ値が一致しない場合には、検証企業Y(検証サーバ204)は、検証NG(Proof(1)が付加された電子文書Dが正しいものではない)とする。
(Proofの再構成例)
つぎに、図14A~図14Cを用いて、Proofの再構成例について説明する。
図14A~図14Cは、Proofの再構成例を示す説明図である。まず、図14Aにおいて、Proof(1)の組合せパターンが(i)の場合について説明する。この場合、Proof(1)には、a(属性情報:ppp1)とb(証明情報:qqq1)とが含まれる。一方、Proof(2)には、a_hash(属性情報のハッシュ値:xxx1)とb_hash(証明情報のハッシュ値:yyy1)とが含まれる。
検証企業Y(検証サーバ204)は、企業A(署名装置201)からProof(2)を受信すると、a_hash(属性情報のハッシュ値:xxx1)とb_hash(証明情報のハッシュ値:yyy1)とを対応付けて、マッチングテーブル230に登録する。この結果、マッチングデータ500-1(図5参照)がレコードとして記憶される。
検証企業Y(検証サーバ204)は、受信者(利用者端末203)からProof(1)を含む検証依頼を受信すると、Proof(1)に含まれるa(属性情報)のハッシュ値(a_hash)を算出する。また、検証企業Y(検証サーバ204)は、Proof(1)に含まれるb(証明情報)のハッシュ値(b_hash)を算出する。
つぎに、検証企業Y(検証サーバ204)は、マッチングテーブル230を参照して、算出したa_hashとb_hashとに対応するマッチングデータを検索する。ここで、マッチングデータが検索された場合、検証企業Y(検証サーバ204)は、Proofを再構成する。
例えば、マッチングデータ500-1が検索された場合、検証企業Y(検証サーバ204)は、Proof(1)に含まれるa(属性情報:ppp1)とb(証明情報:qqq1)とから、aとbより成るProofを再構成する。そして、検証企業Y(検証サーバ204)は、再構成したProofの属性情報:ppp1と証明情報:qqq1とから、Proofを検証する。
なお、a_hashとb_hashとに対応するマッチングデータが検索されなかった場合、検証企業Y(検証サーバ204)は、Proofの検証結果を検証NGとする。例えば、送付者(提出元)などによりProof(1)が改ざんされると、マッチングテーブル230から対応するマッチングデータが検索されず、検証NGとなる。
つぎに、図14Bにおいて、Proof(1)の組合せパターンが(ii)の場合について説明する。この場合、Proof(1)には、a(属性情報:ppp2)とb_hash(証明情報のハッシュ値:yyy2)とが含まれる。一方、Proof(2)には、a_hash(属性情報のハッシュ値:xxx2)とb(証明情報:qqq2)とが含まれる。
検証企業Y(検証サーバ204)は、企業A(署名装置201)からProof(2)を受信すると、b(認証情報:qqq2)からb_hash(証明情報のハッシュ値:yyy2)を算出する。そして、検証企業Y(検証サーバ204)は、a_hash(属性情報のハッシュ値:xxx2)とb_hash(証明情報のハッシュ値:yyy2)とb(証明情報:qqq2)とを対応付けて、マッチングテーブル230に登録する。この結果、マッチングデータ500-2(図5参照)がレコードとして記憶される。
検証企業Y(検証サーバ204)は、受信者(利用者端末203)からProof(1)を含む検証依頼を受信すると、Proof(1)に含まれるa(属性情報)のハッシュ値(a_hash)を算出する。つぎに、検証企業Y(検証サーバ204)は、マッチングテーブル230を参照して、算出したa_hashと、Proof(1)に含まれるb_hash(証明情報のハッシュ値)とに対応するマッチングデータを検索する。ここで、マッチングデータが検索された場合、検証企業Y(検証サーバ204)は、Proofを再構成する。
例えば、マッチングデータ500-2が検索された場合、検証企業Y(検証サーバ204)は、Proof(1)に含まれるa(属性情報:ppp2)と、マッチングデータ500-2に含まれるb(証明情報:qqq2)とから、aとbより成るProofを再構成する。そして、検証企業Y(検証サーバ204)は、再構成したProofの属性情報:ppp2と証明情報:qqq2とから、Proofを検証する。
つぎに、図14Cにおいて、Proof(1)の組合せパターンが(iii)の場合について説明する。この場合、Proof(1)には、a_hash(属性情報のハッシュ値:xxx3)とb_hash(証明情報のハッシュ値:yyy3)とが含まれる。一方、Proof(2)には、a(属性情報:ppp3)とb(証明情報:qqq3)とが含まれる。
検証企業Y(検証サーバ204)は、企業A(署名装置201)からProof(2)を受信すると、a(属性情報:ppp3)からa_hash(属性情報のハッシュ値:xxx3)を算出する。また、検証企業Y(検証サーバ204)は、b(認証情報:qqq3)からb_hash(証明情報のハッシュ値:yyy3)を算出する。
そして、検証企業Y(検証サーバ204)は、a_hash(属性情報のハッシュ値:xxx3)とb_hash(証明情報のハッシュ値:yyy3)とa(属性情報:ppp3)とb(証明情報:qqq3)とを対応付けて、マッチングテーブル230に登録する。この結果、マッチングデータ500-3(図5参照)がレコードとして記憶される。
検証企業Y(検証サーバ204)は、受信者(利用者端末203)からProof(1)を含む検証依頼を受信すると、マッチングテーブル230を参照して、Proof(1)に含まれるa_hash(属性情報のハッシュ値)とb_hash(証明情報のハッシュ値)とに対応するマッチングデータを検索する。ここで、マッチングデータが検索された場合、検証企業Y(検証サーバ204)は、Proofを再構成する。
例えば、マッチングデータ500-3が検索された場合、検証企業Y(検証サーバ204)は、マッチングデータ500-3に含まれるa(属性情報:ppp3)とb(証明情報:qqq3)とから、aとbより成るProofを再構成する。そして、検証企業Y(検証サーバ204)は、再構成したProofの属性情報:ppp3と証明情報:qqq3とから、Proofを検証する。
(Proofの検証依頼を行う際の操作例)
つぎに、図15を用いて、受信者(利用者端末203)から検証企業Y(検証サーバ204)へのProofの検証依頼を行う際の操作例について説明する。
図15は、Proofの検証依頼を行う際の操作例を示す説明図である。図15において、受信者の利用者端末203において、送付者(利用者端末202)から受信した電子文書1500が表示されている。電子文書1500は、電子文書Dの一例である。電子文書1500には、電子署名1510が付与されている。
ここでは、送付者(利用者端末202)から受信者(利用者端末203)に送信されたProof(1)に属性情報そのものが含まれている場合を想定する。
利用者端末203において、受信者の操作入力により、電子署名1510を選択すると、属性情報1520が表示される。属性情報1520は、電子署名1510の署名者の属性を示す情報(Proofの一部)であり、送付者(利用者端末202)からのProof(1)に含まれる。属性情報1520には、Proofが未検証であることを示す未検証ボタン1521が表示されている。
属性情報1520によれば、受信者は、Proofの検証を行う前に、電子署名1510の署名者の属性を確認することができる。ここでは、受信者は、電子文書1500(企業Aから企業Bへの請求書)に対して、企業Aの代表者(社長)の署名が行われていることを確認することができる。
また、利用者端末203において、受信者の操作入力により、未検証ボタン1521を選択すると、Proofの検証依頼が検証企業Y(検証サーバ204)に送信される。この検証依頼は、電子文書1500についての検証も依頼するものであってもよい。
また、利用者端末203において、検証企業Y(検証サーバ204)から検証結果を受信すると、受信した検証結果(不図示)が表示される。これにより、受信者は、署名者の属性の正しさを確認することができる。ここでは、受信者は、電子文書1500に対する署名者の属性(勤務先、役職、名前)が正しいか否かを確認することができる。検証企業Y(検証サーバ204)から検証結果を受信すると、属性情報1520に含まれる未検証ボタン1521は非表示(あるいは、検証済み)となる。
なお、Proof(1)に属性情報が含まれていない場合、受信者は、検証企業Y(検証サーバ204)からProof等の検証結果とともに属性情報を受け取って、署名者の属性およびその正しさを確認することができる。この場合、受信者は、Proof等の検証結果を受け取ったタイミングで、署名者の属性およびその正しさを確認することができる。
(情報処理システム200の検証処理手順)
つぎに、図16~図18を用いて、情報処理システム200の検証処理手順について説明する。
図16~図18は、情報処理システム200の検証処理手順の一例を示すシーケンス図である。図16のシーケンス図において、まず、利用者端末202(提出元)は、電子文書Dに対する署名要求を署名装置201に送信する(ステップS1601)。署名装置201は、利用者端末202(提出元)から署名要求を受信すると、Credential要求を認証サーバ205に送信する(ステップS1602)。
Credential要求は、認証機関により発行される署名者のCredential(属性証明書情報)を要求するものである。認証サーバ205は、署名装置201からCredential要求を受信すると、署名者のCredentialを取得する(ステップS1603)。
そして、認証サーバ205は、取得した署名者のCredentialを含むCredential応答を署名装置201に送信する(ステップS1604)。なお、署名者のCredentialは、例えば、認証サーバ205が有する不図示の属性証明書DB(Database)に記憶されている。
つぎに、署名装置201は、受信した署名者のCredentialに基づいて、署名者のProof(証明書情報)を作成して(ステップS1605)、図17に示すステップS1701に移行する。
図17のシーケンス図において、まず、署名装置201は、電子文書Dのデータ量に基づいて、作成したProofをProof(1)とProof(2)とに分割するProof分割処理を実行する(ステップS1701)。署名装置201のProof分割処理の具体的な処理手順については、図19を用いて後述する。
そして、署名装置201は、ID流通基盤220を介して、検証サーバ204にProof(2)を送信する(ステップS1702)。つぎに、署名装置201は、電子文書DにProof(1)を付加する(ステップS1703)。そして、署名装置201は、署名者の秘密鍵を用いて、Proof(1)を付加した電子文書Dのハッシュ値を暗号化することにより、電子署名Sを生成する(ステップS1704)。
つぎに、署名装置201は、署名応答を利用者端末202(提出元)に送信して(ステップS1705)、図18に示すステップS1801に移行する。署名応答には、Proof(1)を付加した電子文書Dと、当該電子文書Dに付与された電子署名Sとが含まれる(電子文書D+Proof(1)+電子署名S)。
図18のシーケンス図において、まず、利用者端末202(提出元)は、署名装置201から署名応答を受信すると、Proof(1)を付加した電子文書Dと、当該電子文書Dに付与された電子署名Sとを利用者端末203(提出先)に送信する(ステップS1801)。
利用者端末203(提出先)は、利用者端末202(提出元)からProof(1)を付加した電子文書Dと、当該電子文書Dに付与された電子署名Sとを受信すると、検証サーバ204に検証依頼を送信する(ステップS1802)。検証依頼は、Proofの検証を依頼するとともに、電子文書Dの検証を依頼するものである。
検証依頼には、Proof(1)を付加した電子文書Dと、当該電子文書Dに付与された電子署名Sとが含まれる(電子文書D+Proof(1)+電子署名S)。なお、Proof(1)に属性情報そのものが含まれている場合には、利用者端末203(提出先)は、この時点で、署名者の属性情報を表示可能である。
検証サーバ204は、利用者端末203(提出先)から検証依頼を受信すると、検証処理を実行する(ステップS1803)。検証サーバ204の検証処理の具体的な処理手順については、図20を用いて後述する。そして、検証サーバ204は、利用者端末203(提出先)に検証結果を送信する(ステップS1804)。
利用者端末203(提出先)は、検証サーバ204から検証結果を受信すると、受信した検証結果を表示する(ステップS1805)。検証結果には、例えば、Proofの検証結果と、電子文書D(電子署名S)の検証結果と、署名者の属性情報とが含まれる。
これにより、利用者端末203(提出先)において、受信者は、電子文書Dの真正性を確認するとともに、署名者の属性およびその正しさを確認することができる。
つぎに、図19を用いて、図17に示したステップS1701の署名装置201のProof分割処理の具体的な処理手順について説明する。ただし、所定値αを「α=0.2(20%)」とする。
図19は、署名装置201のProof分割処理の具体的な処理手順の一例を示すフローチャートである。図19のフローチャートにおいて、まず、署名装置201は、Proofを属性情報と証明情報とに分割する(ステップS1901)。そして、署名装置201は、分割した属性情報のハッシュ値を算出する(ステップS1902)。
つぎに、署名装置201は、分割した証明情報のハッシュ値を算出する(ステップS1903)。そして、署名装置201は、電子文書Dのデータ量に対する、属性情報のデータ量と証明情報のデータ量との合計値の割合が0.2以下であるか否かを判断する(ステップS1904)。
なお、図19中のステップS1904において、Dは、電子文書Dのデータ量を示す。aは、属性情報のデータ量を示す。bは、証明情報のデータ量を示す。a_hashは、属性情報のハッシュ値のデータ量を示す。b_hashは、証明情報のハッシュ値のデータ量を示す。「a+b≦0.2*D」は、電子文書Dのデータ量に対する、属性情報のデータ量と証明情報のデータ量との合計値の割合が0.2以下であることを示す。
ここで、0.2以下の場合(ステップS1904:Yes)、署名装置201は、Proof(1)を属性情報と証明情報とからなる組合せ(a,b)とする(ステップS1905)。そして、署名装置201は、Proof(2)を属性情報のハッシュ値と証明情報のハッシュ値とからなる組合せ(a_hash,b_hash)として(ステップS1906)、Proof分割処理を呼び出したステップに戻る。
また、ステップS1904において、0.2以下ではない場合(ステップS1904:No)、署名装置201は、電子文書Dのデータ量に対する、属性情報のデータ量と証明情報のハッシュ値のデータ量との合計値の割合が0.2以下であるか否かを判断する(ステップS1907)。
なお、図19中のステップS1907において、「a+b_hash≦0.2*D」は、電子文書Dのデータ量に対する、属性情報のデータ量と証明情報のハッシュ値のデータ量との合計値の割合が0.2以下であることを示す。
ここで、0.2以下の場合(ステップS1907:Yes)、署名装置201は、Proof(1)を属性情報と証明情報のハッシュ値とからなる組合せ(a,b_hash)とする(ステップS1908)。そして、署名装置201は、Proof(2)を属性情報のハッシュ値と証明情報とからなる組合せ(a_hash,b)として(ステップS1909)、Proof分割処理を呼び出したステップに戻る。
また、ステップS1907において、0.2以下ではない場合(ステップS1907:No)、署名装置201は、Proof(1)を属性情報のハッシュ値と証明情報のハッシュ値とからなる組合せ(a_hash,b_hash)する(ステップS1910)。そして、署名装置201は、Proof(2)を属性情報と証明情報とからなる組合せ(a,b)として(ステップS1911)、Proof分割処理を呼び出したステップに戻る。
これにより、Proofを属性情報と証明情報とに分け、電子文書Dのデータ量に対して20%以下になるように、Proof(1)に含める範囲を決定することができる。
つぎに、図20を用いて、図18に示したステップS1803の検証サーバ204の検証処理手順について説明する。
図20は、検証サーバ204の検証処理の具体的な処理手順の一例を示すフローチャートである。図20のフローチャートにおいて、まず、検証サーバ204は、署名者の公開鍵を取得する(ステップS2001)。そして、検証サーバ204は、取得した公開鍵に基づいて、検証依頼に含まれる電子署名Sを用いて、電子文書Dの真正性を検証する(ステップS2002)。
つぎに、検証サーバ204は、検証依頼に含まれるProof(1)の組合せパターンに応じて、a_hashとb_hashとを取得する(ステップS2003)。そして、検証サーバ204は、マッチングテーブル230から、取得したa_hashとb_hashとの組合せに対応するマッチングデータを検索する(ステップS2004)。
つぎに、検証サーバ204は、マッチングデータが検索されたか否かを判断する(ステップS2005)。ここで、マッチングデータが検索された場合(ステップS2005:Yes)、検証サーバ204は、a(属性情報)とb(証明情報)とを取得する(ステップS2006)。
つぎに、検証サーバ204は、取得したa(属性情報)とb(証明情報)とからProofを再構成する(ステップS2007)。そして、検証サーバ204は、再構成したProofの属性情報と証明情報とから、Proofの真正性を検証する(ステップS2008)。
つぎに、検証サーバ204は、電子文書Dの真正性を検証した結果と、Proofの真正性を検証した結果とに基づいて、検証結果を生成して(ステップS2009)、検証処理を呼び出したステップに戻る。
また、ステップS2005において、マッチングデータが検索されなかった場合(ステップS2005:No)、検証サーバ204は、Proofの検証結果を検証NGとして(ステップS2010)、ステップS2009に移行する。
これにより、電子署名Sを用いて電子文書Dの真正性を検証するとともに、Proofの真正性を検証することができる。例えば、a_hashとb_hashとの組合せに対応するマッチングデータを検索することで、Proofが改ざんされていないことを検証することができる。また、再構成したProofの属性情報と証明情報とから、Proofの真正性を検証することで、改ざんされていない情報そのものが、証明されている情報であるかを検証することができる。
以上説明したように、実施の形態にかかる署名装置201によれば、電子文書Dに対する署名要求に応じて、電子文書Dのデータ量に基づいて、Proof(証明書情報)から、Proof(1)とProof(2)とを作成することができる。また、署名装置201によれば、電子文書DおよびProof(1)に対する電子署名Sを生成し、電子署名Sを電子文書DおよびProof(1)に付与して、電子文書Dの提出元(利用者端末202)に送信し、ID流通基盤220を用いて、検証サーバ204にProof(2)を送信することができる。ID流通基盤220は、電子文書Dの提出元(利用者端末203)と提出先(利用者端末203)とを接続する経路(ネットワーク210)とは異なる別の経路である。
これにより、電子署名Sを用いて電子文書Dの真正性を検証するにあたり、署名者の属性を確認可能にするとともに、その正しさを検証可能にすることができる。また、Proofを2つに分割することで、電子文書Dに付加する証明書の情報量を抑えることができる。また、2つ揃って1つのProofとなるため、Proof(1)とProof(2)とを、経路を分けて別々に送ることで、一方がハッキングされたとしても証明可能なProof全体を知ることはできず、Proofに対するセキュリティを高めることができる。
また、署名装置201によれば、電子文書Dのデータ量に対するProof(1)のデータ量の割合が所定値α以下となるように、属性情報、証明情報、属性情報のハッシュ値および証明情報のハッシュ値を、Proof(1)とProof(2)とに分割することができる。
これにより、Proofを属性情報と証明情報とに分け、電子文書Dのデータ量に対して所定値以下になるように、Proof(1)に含める範囲を決定することができる。このため、Proof(1)の電子文書Dに対するデータ量が大きくなって、通信のオーバーヘッドが増加するのを防ぐことができる。なお、ID流通基盤220はクラウド等で実現され、インターネット等のネットワーク210に比べて、Proof(2)のやり取りにともなう通信量の増加が問題になりにくい。
また、署名装置201によれば、第1の組合せ(a,b)、第2の組合せ(a,b_hash)および第3の組合せ(a_hash,b_hash)のうち、第1の組合せ(a,b)または第2の組合せ(a,b_hash)を、第3の組合せ(a_hash,b_hash)よりも優先してProof(1)とすることができる。
これにより、電子文書Dの提出先(受信者)において、Proofの検証を行う前に、署名者の属性情報を確認することが可能となる。例えば、送付者からメール等で属性情報を含むProof(1)を送ることで(組合せパターンが(i)または(ii))、受信者は、ID流通基盤220にアクセスすることなく(検証サーバ204から属性情報を取得しなくても)、署名者の属性情報(属性名、属性値)を確認することができる。
また、署名装置201によれば、電子文書Dに対する署名要求に応じて、認証サーバ205から、ID流通基盤220経由で、署名者のCredential(属性証明書情報)を取得し、取得したCredentialに基づいて、署名者のProofを作成することができる。
これにより、認証機関により発行される署名者のCredentialをもとに、開示する必要のない属性を秘匿したり、ある条件を満たすかを証明したりすることで、Proofを作成することができる。
また、実施の形態にかかる検証サーバ204によれば、署名装置201からProof(2)を受信し、電子文書Dの提出先からProof(1)を受信し、受信したProof(1)と、受信したProof(2)とに基づいて、Proofの真正性を検証することができる。
これにより、別ルートで得られるProof(1)とProof(2)からProofを再構成して、属性情報が証明されている正しい情報であるかを検証することができる。
また、実施の形態にかかる検証サーバ204によれば、電子文書Dの提出先から、Proof(1)が付加された電子文書Dと、当該電子文書Dに付与された電子署名Sとを受信し、電子署名Sを用いて、Proof(1)が付加された電子文書Dの真正性を検証することができる。
これにより、電子文書Dが改ざんされていない正しい情報であるかを検証することができる。また、Proof(1)が付加された電子文書Dに署名し、かつ、別途Proof(2)を取得しないとProofを再構成できないため、電子文書DからのProofの分離や改ざんを困難にすることができる。
これらのことから、実施の形態にかかる情報処理システム200によれば、電子署名Sを用いて電子文書Dの真正性を検証するにあたり、署名者の属性を確認し、その正しさを検証可能にするとともに、電子文書Dに付加する証明書の情報量を抑えて伝送効率の悪化を回避することができる。
なお、本実施の形態で説明した情報処理方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本情報処理プログラムは、ハードディスク、フレキシブルディスク、CD-ROM、DVD、USBメモリ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本情報処理プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)電子文書に対する署名要求に応じて、前記電子文書のデータ量に基づいて、署名者の属性情報と当該属性情報を証明するための証明情報とを含む証明書情報から、第1の部分証明書情報と第2の部分証明書情報とを作成し、
前記電子文書および前記第1の部分証明書情報に対する電子署名を生成し、
生成した前記電子署名を前記電子文書および前記第1の部分証明書情報に付与して、前記電子文書の提出元に送信し、
前記電子文書の提出元と提出先とを接続する経路とは異なる別の経路を用いて、前記署名者の証明書情報の真正性を検証する検証装置に前記第2の部分証明書情報を送信する、
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
(付記2)前記作成する処理は、
前記電子文書のデータ量に対する第1の部分証明書情報のデータ量の割合が所定値以下となるように、前記属性情報、前記証明情報、前記属性情報の要約値および前記証明情報の要約値を、前記第1の部分証明書情報と第2の部分証明書情報とに分割する、ことを特徴とする付記1に記載の情報処理プログラム。
(付記3)前記作成する処理は、
前記属性情報と前記証明情報との第1の組合せ、前記属性情報と前記証明情報の要約値との第2の組合せ、および、前記属性情報の要約値と前記証明情報の要約値との第3の組合せのうち、前記第1の組合せまたは前記第2の組合せを、前記第3の組合せよりも優先して前記第1の部分証明書情報とする、ことを特徴とする付記2に記載の情報処理プログラム。
(付記4)前記証明書情報は、認証機関により発行される前記署名者の属性証明書情報に基づき作成される、ことを特徴とする付記1~3のいずれか一つに記載の情報処理プログラム。
(付記5)前記属性情報は、前記属性証明書情報に含まれる属性の情報、前記属性証明書情報に含まれる属性の情報を秘匿化した情報、および、前記属性証明書情報に含まれる属性の情報が特定の条件を満たすことを証明する情報のうちの少なくともいずれかを含む、ことを特徴とする付記4に記載の情報処理プログラム。
(付記6)前記署名者の証明書情報の真正性は、前記検証装置に送信された前記第2の部分証明書情報と、前記電子文書の提出先から前記検証装置に送信される第1の部分証明書情報とに基づき検証される、ことを特徴とする付記1~5のいずれか一つに記載の情報処理プログラム。
(付記7)前記電子文書の真正性は、前記電子署名に基づき検証される、ことを特徴とする付記1~6のいずれか一つに記載の情報処理プログラム。
(付記8)電子文書に対する署名要求に応じて、前記電子文書のデータ量に基づいて、署名者の属性情報と当該属性情報を証明するための証明情報とを含む証明書情報から、第1の部分証明書情報と第2の部分証明書情報とを作成し、
前記電子文書および前記第1の部分証明書情報に対する電子署名を生成し、
生成した前記電子署名を前記電子文書および前記第1の部分証明書情報に付与して、前記電子文書の提出元に送信し、
前記電子文書の提出元と提出先とを接続する経路とは異なる別の経路を用いて、前記署名者の証明書情報の真正性を検証する検証装置に前記第2の部分証明書情報を送信する、
処理をコンピュータが実行することを特徴とする情報処理方法。
(付記9)電子文書に対する署名要求に応じて、前記電子文書のデータ量に基づいて、署名者の属性情報と当該属性情報を証明するための証明情報とを含む証明書情報から、第1の部分証明書情報と第2の部分証明書情報とを作成し、
前記電子文書および前記第1の部分証明書情報に対する電子署名を生成し、
生成した前記電子署名を前記電子文書および前記第1の部分証明書情報に付与して、前記電子文書の提出元に送信し、
前記電子文書の提出元と提出先とを接続する経路とは異なる別の経路を用いて、前記署名者の証明書情報の真正性を検証する検証装置に前記第2の部分証明書情報を送信する、
制御部を有することを特徴とする情報処理装置。
(付記10)電子文書に対する署名要求に応じて、前記電子文書のデータ量に基づいて、署名者の属性情報と当該属性情報を証明するための証明情報とを含む証明書情報から、第1の部分証明書情報と第2の部分証明書情報とを作成し、前記電子文書および前記第1の部分証明書情報に対する電子署名を生成し、生成した前記電子署名を前記電子文書および前記第1の部分証明書情報に付与して、前記電子文書の提出元に送信し、前記電子文書の提出元と提出先とを接続する経路とは異なる別の経路を用いて、前記第2の部分証明書情報を検証装置に送信する情報処理装置と、
前記情報処理装置から前記第2の部分証明書情報を受信し、前記電子文書の提出先から第1の部分証明書情報を受信し、受信した前記第2の部分証明書情報と、受信した前記第1の部分証明書情報とに基づいて、前記署名者の証明書情報の真正性を検証する検証装置と、
を含むことを特徴とする情報処理システム。
101 情報処理装置
102 提出元
103 提出先
104 署名者
105 検証装置
110,1500 電子文書
120 証明書情報
121 第1の部分証明書情報
122 第2の部分証明書情報
130,1510 電子署名
200 情報処理システム
201 署名装置
202,203 利用者端末
204 検証サーバ
205 認証サーバ
210 ネットワーク
220 ID流通基盤
230 マッチングテーブル
300,400 バス
301,401 CPU
302,402 メモリ
303,403 ディスクドライブ
304,404 ディスク
305,405 通信I/F
306 ディスプレイ
307 入力装置
308,406 可搬型記録媒体I/F
309,407 可搬型記録媒体
600 Credential
700 Proof
710,1520 属性情報
720,800 証明情報
901 受付部
902 取得部
903 作成部
904 分割部
905 生成部
906,1101 第1の通信部
907,1103 第2の通信部
1102 登録部
1104 検証部

Claims (9)

  1. 電子文書に対する署名要求に応じて、前記電子文書のデータ量に基づいて、署名者の属性情報と当該属性情報を証明するための証明情報とを含む証明書情報から、第1の部分証明書情報と第2の部分証明書情報とを作成し、
    前記電子文書および前記第1の部分証明書情報に対する電子署名を生成し、
    生成した前記電子署名を前記電子文書および前記第1の部分証明書情報に付与して、前記電子文書の提出元に送信し、
    前記電子文書の提出元と提出先とを接続する経路とは異なる別の経路を用いて、前記署名者の証明書情報の真正性を検証する検証装置に前記第2の部分証明書情報を送信する、
    処理をコンピュータに実行させることを特徴とする情報処理プログラム。
  2. 前記作成する処理は、
    前記電子文書のデータ量に対する第1の部分証明書情報のデータ量の割合が所定値以下となるように、前記属性情報、前記証明情報、前記属性情報の要約値および前記証明情報の要約値を、前記第1の部分証明書情報と第2の部分証明書情報とに分割する、ことを特徴とする請求項1に記載の情報処理プログラム。
  3. 前記作成する処理は、
    前記属性情報と前記証明情報との第1の組合せ、前記属性情報と前記証明情報の要約値との第2の組合せ、および、前記属性情報の要約値と前記証明情報の要約値との第3の組合せのうち、前記第1の組合せまたは前記第2の組合せを、前記第3の組合せよりも優先して前記第1の部分証明書情報とする、ことを特徴とする請求項2に記載の情報処理プログラム。
  4. 前記証明書情報は、認証機関により発行される前記署名者の属性証明書情報に基づき作成される、ことを特徴とする請求項1~3のいずれか一つに記載の情報処理プログラム。
  5. 前記署名者の証明書情報の真正性は、前記検証装置に送信された前記第2の部分証明書情報と、前記電子文書の提出先から前記検証装置に送信される第1の部分証明書情報とに基づき検証される、ことを特徴とする請求項1~4のいずれか一つに記載の情報処理プログラム。
  6. 前記電子文書の真正性は、前記電子署名に基づき検証される、ことを特徴とする請求項1~5のいずれか一つに記載の情報処理プログラム。
  7. 電子文書に対する署名要求に応じて、前記電子文書のデータ量に基づいて、署名者の属性情報と当該属性情報を証明するための証明情報とを含む証明書情報から、第1の部分証明書情報と第2の部分証明書情報とを作成し、
    前記電子文書および前記第1の部分証明書情報に対する電子署名を生成し、
    生成した前記電子署名を前記電子文書および前記第1の部分証明書情報に付与して、前記電子文書の提出元に送信し、
    前記電子文書の提出元と提出先とを接続する経路とは異なる別の経路を用いて、前記署名者の証明書情報の真正性を検証する検証装置に前記第2の部分証明書情報を送信する、
    処理をコンピュータが実行することを特徴とする情報処理方法。
  8. 電子文書に対する署名要求に応じて、前記電子文書のデータ量に基づいて、署名者の属性情報と当該属性情報を証明するための証明情報とを含む証明書情報から、第1の部分証明書情報と第2の部分証明書情報とを作成し、
    前記電子文書および前記第1の部分証明書情報に対する電子署名を生成し、
    生成した前記電子署名を前記電子文書および前記第1の部分証明書情報に付与して、前記電子文書の提出元に送信し、
    前記電子文書の提出元と提出先とを接続する経路とは異なる別の経路を用いて、前記署名者の証明書情報の真正性を検証する検証装置に前記第2の部分証明書情報を送信する、
    制御部を有することを特徴とする情報処理装置。
  9. 電子文書に対する署名要求に応じて、前記電子文書のデータ量に基づいて、署名者の属性情報と当該属性情報を証明するための証明情報とを含む証明書情報から、第1の部分証明書情報と第2の部分証明書情報とを作成し、前記電子文書および前記第1の部分証明書情報に対する電子署名を生成し、生成した前記電子署名を前記電子文書および前記第1の部分証明書情報に付与して、前記電子文書の提出元に送信し、前記電子文書の提出元と提出先とを接続する経路とは異なる別の経路を用いて、前記第2の部分証明書情報を検証装置に送信する情報処理装置と、
    前記情報処理装置から前記第2の部分証明書情報を受信し、前記電子文書の提出先から第1の部分証明書情報を受信し、受信した前記第2の部分証明書情報と、受信した前記第1の部分証明書情報とに基づいて、前記署名者の証明書情報の真正性を検証する検証装置と、
    を含むことを特徴とする情報処理システム。
JP2020204679A 2020-12-10 2020-12-10 情報処理プログラム、情報処理方法、情報処理装置および情報処理システム Pending JP2022092105A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2020204679A JP2022092105A (ja) 2020-12-10 2020-12-10 情報処理プログラム、情報処理方法、情報処理装置および情報処理システム
EP21195524.0A EP4012585B1 (en) 2020-12-10 2021-09-08 Computer-readable recording medium storing information processing program, information processing method, information processing device, and information processing system
US17/474,094 US11784828B2 (en) 2020-12-10 2021-09-14 Computer-readable recording medium storing information processing program, information processing method, information processing device, and information processing system
CN202111153790.3A CN114626099A (zh) 2020-12-10 2021-09-29 计算机可读记录介质以及信息处理方法、设备和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020204679A JP2022092105A (ja) 2020-12-10 2020-12-10 情報処理プログラム、情報処理方法、情報処理装置および情報処理システム

Publications (1)

Publication Number Publication Date
JP2022092105A true JP2022092105A (ja) 2022-06-22

Family

ID=77666371

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020204679A Pending JP2022092105A (ja) 2020-12-10 2020-12-10 情報処理プログラム、情報処理方法、情報処理装置および情報処理システム

Country Status (4)

Country Link
US (1) US11784828B2 (ja)
EP (1) EP4012585B1 (ja)
JP (1) JP2022092105A (ja)
CN (1) CN114626099A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022125979A1 (en) * 2020-12-10 2022-06-16 The Alfred E. Mann Foundation For Scientific Research Single-certificate multi-factor authentication

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001095078A1 (en) * 2000-06-06 2001-12-13 Ingeo Systems, Inc. Creating and verifying electronic documents
JP2004013488A (ja) 2002-06-06 2004-01-15 Ricoh Co Ltd 原本性保証電子文書保管サービス方法
JP4827468B2 (ja) * 2005-07-25 2011-11-30 キヤノン株式会社 情報処理装置及び情報処理装置の制御方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体
US20070168671A1 (en) * 2006-01-16 2007-07-19 Fujitsu Limited Digital document management system, digital document management method, and digital document management program
JP4455571B2 (ja) * 2006-11-21 2010-04-21 キヤノン株式会社 文書検証装置
US8233432B2 (en) * 2007-08-31 2012-07-31 Silicon Image, Inc. Ensuring physical locality of entities sharing data
JP5400319B2 (ja) * 2008-04-24 2014-01-29 キヤノン株式会社 電子文書制御装置、方法およびプログラム
JP2013179569A (ja) 2012-01-30 2013-09-09 Seiko Instruments Inc データ証明システムおよびデータ証明サーバ
WO2017182343A1 (en) * 2016-04-21 2017-10-26 Philips Lighting Holding B.V. Systems and methods for verifying credentials
CN110998580A (zh) * 2019-04-29 2020-04-10 阿里巴巴集团控股有限公司 在区块链系统中确认交易有效性的方法和设备

Also Published As

Publication number Publication date
US11784828B2 (en) 2023-10-10
EP4012585A1 (en) 2022-06-15
EP4012585B1 (en) 2023-03-29
US20220191044A1 (en) 2022-06-16
CN114626099A (zh) 2022-06-14

Similar Documents

Publication Publication Date Title
US6959382B1 (en) Digital signature service
US8433897B2 (en) Group signature system, apparatus and storage medium
CN109687963A (zh) 基于公钥池的抗量子计算联盟链交易方法和系统
JP4893751B2 (ja) 文書検証プログラム、記録媒体、文書検証方法および文書検証装置
US9021572B2 (en) Anonymous access to a service by means of aggregated certificates
US20020038290A1 (en) Digital notary system and method
CN110572258B (zh) 一种云密码计算平台及计算服务方法
CN112035883A (zh) 去中心化身份系统中用户信用评分的方法和计算机可读介质
US8220040B2 (en) Verifying that group membership requirements are met by users
JP2008131058A (ja) 属性認証システム、同システムにおけるユーザの行動履歴検索方法およびプログラム
CN109981287A (zh) 一种代码签名方法及其存储介质
Zhao et al. Design and implementation of the digital education transaction subject two-factor identity authentication system based on blockchain
JP2002215027A (ja) 属性証明プログラム及び装置
EP4012585B1 (en) Computer-readable recording medium storing information processing program, information processing method, information processing device, and information processing system
KR20210103615A (ko) 블록체인 기반 사용자 인증 방법
JP5287727B2 (ja) 情報通信システム、オーガニゼーション装置およびユーザ装置
JPWO2008126460A1 (ja) 電子データ認証方法、電子データ認証プログラムおよび電子データ認証システム
JP5771822B2 (ja) デジタルデータ内容証明システム
JPH11215121A (ja) 認証装置および方法
US20230031804A1 (en) Computer-readable recording medium storing information processing program, information processing apparatus, and system
JP2021081777A (ja) 組織間の情報連携を制御するシステム
JP7084525B1 (ja) 組織署名鍵共有装置、組織署名鍵共有システム、組織署名鍵共有プログラム及び方法
US20240146537A1 (en) Computer-readable recording medium storing data management program, data management method, and data management apparatus
WO2022130507A1 (ja) ユーザ情報管理システム、ユーザ情報管理方法、ユーザエージェントおよびプログラム
US20230246846A1 (en) Attribute information conversion device, computer-readable recording medium storing attribute information conversion program, and attribute information conversion method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230804

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240319

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240321

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240507